aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniil Cherednik <dcherednik@ydb.tech>2023-08-25 09:14:00 +0000
committerDaniil Cherednik <dcherednik@ydb.tech>2023-08-25 09:14:00 +0000
commit1aea989538126dcf9bb99aa87313ba942e679e7b (patch)
tree5f89fae597bbf8cfaf58c56fd2313d1896a956bb
parent41effae1b14cbd91927d4d7746c935f773ee87ef (diff)
downloadydb-1aea989538126dcf9bb99aa87313ba942e679e7b.tar.gz
Create stable-23-3 branch
x-stable-origin-commit: 3224c68a1e19d5457dc64c1c4f3260f7cd718558
-rw-r--r--library/cpp/CMakeLists.darwin-x86_64.txt1
-rw-r--r--library/cpp/CMakeLists.linux-aarch64.txt1
-rw-r--r--library/cpp/CMakeLists.linux-x86_64.txt1
-rw-r--r--library/cpp/CMakeLists.windows-x86_64.txt1
-rw-r--r--library/cpp/actors/core/event_load.h3
-rw-r--r--library/cpp/actors/core/event_pb.h118
-rw-r--r--library/cpp/actors/interconnect/interconnect_channel.cpp67
-rw-r--r--library/cpp/actors/interconnect/interconnect_channel.h8
-rw-r--r--library/cpp/actors/interconnect/interconnect_handshake.cpp4
-rw-r--r--library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp79
-rw-r--r--library/cpp/actors/interconnect/interconnect_tcp_session.h3
-rw-r--r--library/cpp/actors/interconnect/types.h1
-rw-r--r--library/cpp/actors/protos/interconnect.proto2
-rw-r--r--library/cpp/actors/util/CMakeLists.darwin-x86_64.txt2
-rw-r--r--library/cpp/actors/util/CMakeLists.linux-aarch64.txt2
-rw-r--r--library/cpp/actors/util/CMakeLists.linux-x86_64.txt2
-rw-r--r--library/cpp/actors/util/CMakeLists.windows-x86_64.txt2
-rw-r--r--library/cpp/actors/util/rc_buf.h129
-rw-r--r--library/cpp/actors/util/rope.cpp13
-rw-r--r--library/cpp/actors/util/rope.h21
-rw-r--r--library/cpp/actors/util/shared_data_rope_backend.h4
-rw-r--r--library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt2
-rw-r--r--library/cpp/actors/util/ya.make2
-rw-r--r--library/cpp/disjoint_sets/CMakeLists.darwin-x86_64.txt17
-rw-r--r--library/cpp/disjoint_sets/CMakeLists.linux-aarch64.txt18
-rw-r--r--library/cpp/disjoint_sets/CMakeLists.linux-x86_64.txt18
-rw-r--r--library/cpp/disjoint_sets/CMakeLists.txt17
-rw-r--r--library/cpp/disjoint_sets/CMakeLists.windows-x86_64.txt17
-rw-r--r--library/cpp/disjoint_sets/disjoint_sets.cpp1
-rw-r--r--library/cpp/disjoint_sets/disjoint_sets.h81
-rw-r--r--library/cpp/disjoint_sets/ya.make7
-rw-r--r--library/cpp/grpc/client/grpc_client_low.h13
-rw-r--r--library/cpp/grpc/server/grpc_request.h22
-rw-r--r--ydb/core/base/CMakeLists.darwin-x86_64.txt13
-rw-r--r--ydb/core/base/CMakeLists.linux-aarch64.txt13
-rw-r--r--ydb/core/base/CMakeLists.linux-x86_64.txt13
-rw-r--r--ydb/core/base/CMakeLists.windows-x86_64.txt13
-rw-r--r--ydb/core/base/appdata.h5
-rw-r--r--ydb/core/base/blobstorage.h4
-rw-r--r--ydb/core/base/board_lookup.cpp41
-rw-r--r--ydb/core/base/board_publish.cpp41
-rw-r--r--ydb/core/base/events.h2
-rw-r--r--ydb/core/base/memobserver.h51
-rw-r--r--ydb/core/base/nameservice.h1
-rw-r--r--ydb/core/base/statestorage.h13
-rw-r--r--ydb/core/base/ya.make6
-rw-r--r--ydb/core/blob_depot/agent/agent_impl.h30
-rw-r--r--ydb/core/blob_depot/agent/defs.h1
-rw-r--r--ydb/core/blob_depot/agent/read.cpp23
-rw-r--r--ydb/core/blob_depot/agent/storage_discover.cpp25
-rw-r--r--ydb/core/blob_depot/agent/storage_get.cpp25
-rw-r--r--ydb/core/blob_depot/agent/storage_range.cpp33
-rw-r--r--ydb/core/blob_depot/assimilator.cpp2
-rw-r--r--ydb/core/blob_depot/data_decommit.cpp4
-rw-r--r--ydb/core/blobstorage/backpressure/defs.h2
-rw-r--r--ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy.h4
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_discover.cpp4
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_discover_m3dc.cpp2
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_discover_m3of4.cpp4
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp5
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp6
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h6
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp2
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_put.cpp2
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_range.cpp2
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h3
-rw-r--r--ydb/core/blobstorage/dsproxy/mock/model.h3
-rw-r--r--ydb/core/blobstorage/dsproxy/ut/dsproxy_get_ut.cpp18
-rw-r--r--ydb/core/blobstorage/dsproxy/ut/dsproxy_patch_ut.cpp2
-rw-r--r--ydb/core/blobstorage/dsproxy/ut/dsproxy_sequence_ut.cpp2
-rw-r--r--ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp4
-rw-r--r--ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut_base.h2
-rw-r--r--ydb/core/blobstorage/groupinfo/ut/ya.make2
-rw-r--r--ydb/core/blobstorage/nodewarden/node_warden_impl.cpp4
-rw-r--r--ydb/core/blobstorage/other/mon_get_blob_page.cpp2
-rw-r--r--ydb/core/blobstorage/pdisk/ut/ya.make2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/blob_depot_event_managers.cpp4
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/counting_events.cpp2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/discover.cpp2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/get.cpp2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/lib/activity.h2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/patch.cpp2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp2
-rw-r--r--ydb/core/blobstorage/ut_blobstorage/ya.make2
-rw-r--r--ydb/core/blobstorage/ut_group/main.cpp2
-rw-r--r--ydb/core/blobstorage/ut_pdiskfit/ut/ya.make2
-rw-r--r--ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp2
-rw-r--r--ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h2
-rw-r--r--ydb/core/blobstorage/vdisk/query/query_readactor.cpp2
-rw-r--r--ydb/core/blobstorage/vdisk/scrub/scrub_actor.cpp1
-rw-r--r--ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp2
-rw-r--r--ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.cpp2
-rw-r--r--ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.cpp2
-rw-r--r--ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.cpp2
-rw-r--r--ydb/core/client/server/msgbus_server_get.cpp2
-rw-r--r--ydb/core/client/server/msgbus_server_pq_metacache.cpp15
-rw-r--r--ydb/core/client/server/msgbus_server_pq_metacache.h1
-rw-r--r--ydb/core/cms/cluster_info.cpp12
-rw-r--r--ydb/core/cms/cluster_info.h20
-rw-r--r--ydb/core/cms/cms.cpp6
-rw-r--r--ydb/core/cms/cms_impl.h1
-rw-r--r--ydb/core/cms/cms_tx_load_state.cpp1
-rw-r--r--ydb/core/cms/cms_ut_common.cpp25
-rw-r--r--ydb/core/cms/cms_ut_common.h2
-rw-r--r--ydb/core/cms/config.h4
-rw-r--r--ydb/core/cms/console/configs_dispatcher.cpp2
-rw-r--r--ydb/core/cms/console/console.cpp5
-rw-r--r--ydb/core/cms/console/console__load_state.cpp1
-rw-r--r--ydb/core/cms/console/console_configs_manager.cpp10
-rw-r--r--ydb/core/cms/console/console_impl.h1
-rw-r--r--ydb/core/cms/console/console_ut_configs.cpp50
-rw-r--r--ydb/core/cms/http.cpp9
-rw-r--r--ydb/core/cms/sentinel.cpp70
-rw-r--r--ydb/core/cms/sentinel.h16
-rw-r--r--ydb/core/cms/sentinel_impl.h3
-rw-r--r--ydb/core/cms/sentinel_ut.cpp14
-rw-r--r--ydb/core/cms/ui/cms.css6
-rw-r--r--ydb/core/cms/ui/configs.js9
-rw-r--r--ydb/core/cms/ui/index.html9
-rw-r--r--ydb/core/discovery/discovery.cpp4
-rw-r--r--ydb/core/driver_lib/run/auto_config_initializer.cpp2
-rw-r--r--ydb/core/driver_lib/run/kikimr_services_initializers.cpp79
-rw-r--r--ydb/core/driver_lib/run/kikimr_services_initializers.h8
-rw-r--r--ydb/core/driver_lib/run/run.cpp43
-rw-r--r--ydb/core/driver_lib/run/run.h3
-rw-r--r--ydb/core/driver_lib/version/version.cpp18
-rw-r--r--ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/core/erasure/ut_perf/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/core/erasure/ut_rope/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/core/external_sources/external_source.h4
-rw-r--r--ydb/core/external_sources/object_storage.cpp25
-rw-r--r--ydb/core/formats/arrow/arrow_helpers.cpp3
-rw-r--r--ydb/core/formats/arrow/converter.cpp24
-rw-r--r--ydb/core/formats/arrow/ssa_runtime_version.h2
-rw-r--r--ydb/core/fq/libs/actors/clusters_from_connections.cpp43
-rw-r--r--ydb/core/fq/libs/actors/pending_fetcher.cpp15
-rw-r--r--ydb/core/fq/libs/actors/proxy_private.cpp12
-rw-r--r--ydb/core/fq/libs/actors/proxy_private.h5
-rw-r--r--ydb/core/fq/libs/actors/run_actor.cpp5
-rw-r--r--ydb/core/fq/libs/actors/task_get.cpp17
-rw-r--r--ydb/core/fq/libs/cloud_audit/yq_cloud_audit_service.cpp2
-rw-r--r--ydb/core/fq/libs/common/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/fq/libs/common/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/fq/libs/common/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/fq/libs/common/util.cpp38
-rw-r--r--ydb/core/fq/libs/common/util.h24
-rw-r--r--ydb/core/fq/libs/common/ya.make1
-rw-r--r--ydb/core/fq/libs/compute/common/config.h69
-rw-r--r--ydb/core/fq/libs/compute/common/run_actor_params.cpp5
-rw-r--r--ydb/core/fq/libs/compute/common/run_actor_params.h4
-rw-r--r--ydb/core/fq/libs/compute/common/utils.h27
-rw-r--r--ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/fq/libs/compute/ydb/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/fq/libs/compute/ydb/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/fq/libs/compute/ydb/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/fq/libs/compute/ydb/actors_factory.cpp4
-rw-r--r--ydb/core/fq/libs/compute/ydb/actors_factory.h2
-rw-r--r--ydb/core/fq/libs/compute/ydb/base_compute_actor.h14
-rw-r--r--ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp86
-rw-r--r--ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.h11
-rw-r--r--ydb/core/fq/libs/compute/ydb/control_plane/ya.make1
-rw-r--r--ydb/core/fq/libs/compute/ydb/events/events.h75
-rw-r--r--ydb/core/fq/libs/compute/ydb/executer_actor.cpp34
-rw-r--r--ydb/core/fq/libs/compute/ydb/result_writer_actor.cpp238
-rw-r--r--ydb/core/fq/libs/compute/ydb/result_writer_actor.h2
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-x86_64.txt29
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-aarch64.txt30
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-x86_64.txt30
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt17
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.windows-x86_64.txt29
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.cpp660
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.h22
-rw-r--r--ydb/core/fq/libs/compute/ydb/synchronization_service/ya.make21
-rw-r--r--ydb/core/fq/libs/compute/ydb/ya.make1
-rw-r--r--ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp12
-rw-r--r--ydb/core/fq/libs/compute/ydb/ydb_run_actor.cpp4
-rw-r--r--ydb/core/fq/libs/config/protos/CMakeLists.darwin-x86_64.txt13
-rw-r--r--ydb/core/fq/libs/config/protos/CMakeLists.linux-aarch64.txt13
-rw-r--r--ydb/core/fq/libs/config/protos/CMakeLists.linux-x86_64.txt13
-rw-r--r--ydb/core/fq/libs/config/protos/CMakeLists.windows-x86_64.txt13
-rw-r--r--ydb/core/fq/libs/config/protos/activation.proto13
-rw-r--r--ydb/core/fq/libs/config/protos/compute.proto25
-rw-r--r--ydb/core/fq/libs/config/protos/ya.make1
-rw-r--r--ydb/core/fq/libs/control_plane_config/control_plane_config.cpp14
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-aarch64.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-x86_64.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/CMakeLists.windows-x86_64.txt2
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-x86_64.txt30
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-aarch64.txt31
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-x86_64.txt31
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt17
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.windows-x86_64.txt30
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/base_actor.h107
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.cpp425
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.h75
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/counters.h297
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/query_utils.cpp218
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/query_utils.h25
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/request_actor.h259
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/utils.h40
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/ya.make22
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.cpp498
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.h61
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/config.cpp12
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/config.h7
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.cpp2031
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.h7
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/events/events.h209
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/events/type_traits.h100
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp87
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/utils.h11
-rw-r--r--ydb/core/fq/libs/control_plane_proxy/ya.make2
-rw-r--r--ydb/core/fq/libs/control_plane_storage/events/events.h54
-rw-r--r--ydb/core/fq/libs/control_plane_storage/internal/task_get.cpp6
-rw-r--r--ydb/core/fq/libs/control_plane_storage/message_builders.h34
-rw-r--r--ydb/core/fq/libs/control_plane_storage/probes.h4
-rw-r--r--ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto2
-rw-r--r--ydb/core/fq/libs/control_plane_storage/request_validators.cpp64
-rw-r--r--ydb/core/fq/libs/control_plane_storage/request_validators.h15
-rw-r--r--ydb/core/fq/libs/control_plane_storage/validators.cpp9
-rw-r--r--ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp29
-rw-r--r--ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_compute_database.cpp72
-rw-r--r--ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp48
-rw-r--r--ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_impl.h14
-rw-r--r--ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp2
-rw-r--r--ydb/core/fq/libs/init/init.cpp19
-rw-r--r--ydb/core/fq/libs/protos/fq_private.proto1
-rw-r--r--ydb/core/fq/libs/rate_limiter/quoter_service/quoter_service.cpp2
-rw-r--r--ydb/core/fq/libs/test_connection/request_validators.h4
-rw-r--r--ydb/core/fq/libs/test_connection/test_connection.cpp13
-rw-r--r--ydb/core/fq/libs/test_connection/test_connection.h2
-rw-r--r--ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/core/grpc_services/CMakeLists.linux-aarch64.txt2
-rw-r--r--ydb/core/grpc_services/CMakeLists.linux-x86_64.txt2
-rw-r--r--ydb/core/grpc_services/CMakeLists.windows-x86_64.txt2
-rw-r--r--ydb/core/grpc_services/base/base.h15
-rw-r--r--ydb/core/grpc_services/query/rpc_attach_session.cpp18
-rw-r--r--ydb/core/grpc_services/query/rpc_execute_query.cpp2
-rw-r--r--ydb/core/grpc_services/query/rpc_execute_script.cpp38
-rw-r--r--ydb/core/grpc_services/query/rpc_fetch_script_results.cpp25
-rw-r--r--ydb/core/grpc_services/query/service_query.h1
-rw-r--r--ydb/core/grpc_services/rpc_common/rpc_common_kqp_session.cpp87
-rw-r--r--ydb/core/grpc_services/rpc_delete_session.cpp63
-rw-r--r--ydb/core/grpc_services/rpc_describe_table.cpp5
-rw-r--r--ydb/core/grpc_services/rpc_execute_data_query.cpp3
-rw-r--r--ydb/core/grpc_services/rpc_fq.cpp30
-rw-r--r--ydb/core/grpc_services/rpc_rate_limiter_api.cpp2
-rw-r--r--ydb/core/grpc_services/rpc_read_rows.cpp8
-rw-r--r--ydb/core/grpc_services/ya.make2
-rw-r--r--ydb/core/health_check/health_check.cpp57
-rw-r--r--ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/http_proxy/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/http_proxy/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/http_proxy/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/http_proxy/auth_factory.cpp4
-rw-r--r--ydb/core/http_proxy/http_req.cpp22
-rw-r--r--ydb/core/http_proxy/ya.make1
-rw-r--r--ydb/core/io_formats/csv_arrow.cpp41
-rw-r--r--ydb/core/kesus/tablet/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/kesus/tablet/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/kesus/tablet/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/kesus/tablet/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/kesus/tablet/rate_accounting.h2
-rw-r--r--ydb/core/kesus/tablet/ya.make1
-rw-r--r--ydb/core/keyvalue/keyvalue_collect_operation.h4
-rw-r--r--ydb/core/keyvalue/keyvalue_collector.cpp32
-rw-r--r--ydb/core/keyvalue/keyvalue_collector_ut.cpp47
-rw-r--r--ydb/core/keyvalue/keyvalue_events.h35
-rw-r--r--ydb/core/keyvalue/keyvalue_flat_impl.h67
-rw-r--r--ydb/core/keyvalue/keyvalue_index_record.cpp51
-rw-r--r--ydb/core/keyvalue/keyvalue_index_record.h4
-rw-r--r--ydb/core/keyvalue/keyvalue_intermediate.cpp10
-rw-r--r--ydb/core/keyvalue/keyvalue_intermediate.h11
-rw-r--r--ydb/core/keyvalue/keyvalue_state.cpp305
-rw-r--r--ydb/core/keyvalue/keyvalue_state.h45
-rw-r--r--ydb/core/keyvalue/keyvalue_state_collect.cpp266
-rw-r--r--ydb/core/keyvalue/keyvalue_storage_read_request.cpp59
-rw-r--r--ydb/core/keyvalue/keyvalue_storage_read_request_ut.cpp13
-rw-r--r--ydb/core/keyvalue/keyvalue_storage_request.cpp25
-rw-r--r--ydb/core/keyvalue/keyvalue_ut.cpp3
-rw-r--r--ydb/core/kqp/common/events/events.h2
-rw-r--r--ydb/core/kqp/common/events/query.h5
-rw-r--r--ydb/core/kqp/common/events/script_executions.h13
-rw-r--r--ydb/core/kqp/common/kqp_yql.cpp21
-rw-r--r--ydb/core/kqp/common/kqp_yql.h10
-rw-r--r--ydb/core/kqp/compile_service/kqp_compile_actor.cpp12
-rw-r--r--ydb/core/kqp/compile_service/kqp_compile_service.cpp12
-rw-r--r--ydb/core/kqp/compile_service/kqp_compile_service.h3
-rw-r--r--ydb/core/kqp/compute_actor/kqp_compute_actor.cpp6
-rw-r--r--ydb/core/kqp/compute_actor/kqp_compute_actor.h3
-rw-r--r--ydb/core/kqp/compute_actor/kqp_scan_compute_manager.cpp2
-rw-r--r--ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp30
-rw-r--r--ydb/core/kqp/counters/kqp_counters.cpp11
-rw-r--r--ydb/core/kqp/counters/kqp_counters.h7
-rw-r--r--ydb/core/kqp/executer_actor/kqp_data_executer.cpp141
-rw-r--r--ydb/core/kqp/executer_actor/kqp_executer.h4
-rw-r--r--ydb/core/kqp/executer_actor/kqp_executer_impl.cpp7
-rw-r--r--ydb/core/kqp/executer_actor/kqp_executer_impl.h247
-rw-r--r--ydb/core/kqp/executer_actor/kqp_literal_executer.cpp2
-rw-r--r--ydb/core/kqp/executer_actor/kqp_partition_helper.cpp17
-rw-r--r--ydb/core/kqp/executer_actor/kqp_planner.cpp149
-rw-r--r--ydb/core/kqp/executer_actor/kqp_planner.h31
-rw-r--r--ydb/core/kqp/executer_actor/kqp_scan_executer.cpp81
-rw-r--r--ydb/core/kqp/executer_actor/kqp_shards_resolver.cpp2
-rw-r--r--ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp22
-rw-r--r--ydb/core/kqp/executer_actor/kqp_tasks_graph.h12
-rw-r--r--ydb/core/kqp/expr_nodes/kqp_expr_nodes.json33
-rw-r--r--ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/kqp/gateway/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/kqp/gateway/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/kqp/gateway/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/kqp/gateway/actors/kqp_ic_gateway_actors.h66
-rw-r--r--ydb/core/kqp/gateway/behaviour/CMakeLists.txt1
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-x86_64.txt40
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-aarch64.txt42
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-x86_64.txt42
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt17
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.windows-x86_64.txt40
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.cpp25
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.h25
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/manager.cpp152
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/manager.h24
-rw-r--r--ydb/core/kqp/gateway/behaviour/external_data_source/ya.make17
-rw-r--r--ydb/core/kqp/gateway/behaviour/tablestore/manager.cpp9
-rw-r--r--ydb/core/kqp/gateway/kqp_gateway.h1
-rw-r--r--ydb/core/kqp/gateway/kqp_ic_gateway.cpp169
-rw-r--r--ydb/core/kqp/gateway/kqp_metadata_loader.cpp40
-rw-r--r--ydb/core/kqp/gateway/ya.make1
-rw-r--r--ydb/core/kqp/host/kqp_gateway_proxy.cpp56
-rw-r--r--ydb/core/kqp/host/kqp_host.cpp45
-rw-r--r--ydb/core/kqp/host/kqp_host.h10
-rw-r--r--ydb/core/kqp/host/kqp_host_impl.h2
-rw-r--r--ydb/core/kqp/host/kqp_runner.cpp10
-rw-r--r--ydb/core/kqp/host/kqp_type_ann.cpp38
-rw-r--r--ydb/core/kqp/node_service/kqp_node_service.cpp23
-rw-r--r--ydb/core/kqp/node_service/kqp_node_ut.cpp7
-rw-r--r--ydb/core/kqp/opt/kqp_opt.cpp14
-rw-r--r--ydb/core/kqp/opt/kqp_opt_build_txs.cpp11
-rw-r--r--ydb/core/kqp/opt/kqp_opt_effects.cpp128
-rw-r--r--ydb/core/kqp/opt/kqp_opt_impl.h2
-rw-r--r--ydb/core/kqp/opt/kqp_opt_kql.cpp184
-rw-r--r--ydb/core/kqp/opt/kqp_opt_phy_check.cpp42
-rw-r--r--ydb/core/kqp/opt/kqp_query_plan.cpp27
-rw-r--r--ydb/core/kqp/opt/logical/kqp_opt_log.cpp31
-rw-r--r--ydb/core/kqp/opt/logical/kqp_opt_log_indexes.cpp156
-rw-r--r--ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp177
-rw-r--r--ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp204
-rw-r--r--ydb/core/kqp/opt/logical/kqp_opt_log_rules.h2
-rw-r--r--ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp1
-rw-r--r--ydb/core/kqp/opt/physical/kqp_opt_phy_build_stage.cpp11
-rw-r--r--ydb/core/kqp/opt/physical/kqp_opt_phy_source.cpp37
-rw-r--r--ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/kqp/provider/ya.make1
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_datasink.cpp70
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_datasource.cpp114
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_exec.cpp223
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_expr_nodes.json3
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_gateway.h30
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp85
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_opt_build.cpp66
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_provider.h1
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_provider_impl.h7
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_settings.h2
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_type_ann.cpp64
-rw-r--r--ydb/core/kqp/proxy_service/CMakeLists.darwin-x86_64.txt4
-rw-r--r--ydb/core/kqp/proxy_service/CMakeLists.linux-aarch64.txt4
-rw-r--r--ydb/core/kqp/proxy_service/CMakeLists.linux-x86_64.txt4
-rw-r--r--ydb/core/kqp/proxy_service/CMakeLists.windows-x86_64.txt4
-rw-r--r--ydb/core/kqp/proxy_service/kqp_proxy_service.cpp300
-rw-r--r--ydb/core/kqp/proxy_service/kqp_proxy_service.h1
-rw-r--r--ydb/core/kqp/proxy_service/kqp_proxy_service_impl.h56
-rw-r--r--ydb/core/kqp/proxy_service/kqp_script_executions.cpp621
-rw-r--r--ydb/core/kqp/proxy_service/kqp_script_executions_impl.h3
-rw-r--r--ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp191
-rw-r--r--ydb/core/kqp/proxy_service/kqp_table_creator.cpp381
-rw-r--r--ydb/core/kqp/proxy_service/kqp_table_creator.h12
-rw-r--r--ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-x86_64.txt44
-rw-r--r--ydb/core/kqp/proxy_service/proto/CMakeLists.linux-aarch64.txt45
-rw-r--r--ydb/core/kqp/proxy_service/proto/CMakeLists.linux-x86_64.txt45
-rw-r--r--ydb/core/kqp/proxy_service/proto/CMakeLists.txt17
-rw-r--r--ydb/core/kqp/proxy_service/proto/CMakeLists.windows-x86_64.txt44
-rw-r--r--ydb/core/kqp/proxy_service/proto/result_set_meta.proto12
-rw-r--r--ydb/core/kqp/proxy_service/proto/ya.make11
-rw-r--r--ydb/core/kqp/proxy_service/ya.make7
-rw-r--r--ydb/core/kqp/query_compiler/kqp_query_compiler.cpp71
-rw-r--r--ydb/core/kqp/query_data/kqp_prepared_query.cpp3
-rw-r--r--ydb/core/kqp/query_data/kqp_prepared_query.h4
-rw-r--r--ydb/core/kqp/query_data/kqp_query_data.cpp30
-rw-r--r--ydb/core/kqp/query_data/kqp_query_data.h18
-rw-r--r--ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp397
-rw-r--r--ydb/core/kqp/rm_service/kqp_rm_service.cpp77
-rw-r--r--ydb/core/kqp/rm_service/kqp_rm_service.h3
-rw-r--r--ydb/core/kqp/rm_service/kqp_rm_ut.cpp27
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp25
-rw-r--r--ydb/core/kqp/run_script_actor/ya.make1
-rw-r--r--ydb/core/kqp/runtime/kqp_read_actor.cpp114
-rw-r--r--ydb/core/kqp/runtime/kqp_read_actor.h1
-rw-r--r--ydb/core/kqp/runtime/kqp_sequencer_actor.cpp23
-rw-r--r--ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp5
-rw-r--r--ydb/core/kqp/session_actor/kqp_query_state.h6
-rw-r--r--ydb/core/kqp/session_actor/kqp_session_actor.cpp39
-rw-r--r--ydb/core/kqp/session_actor/kqp_session_actor.h6
-rw-r--r--ydb/core/kqp/session_actor/kqp_worker_actor.cpp21
-rw-r--r--ydb/core/kqp/session_actor/kqp_worker_common.h3
-rw-r--r--ydb/core/kqp/ut/common/kqp_ut_common.cpp21
-rw-r--r--ydb/core/kqp/ut/common/kqp_ut_common.h16
-rw-r--r--ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp376
-rw-r--r--ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp43
-rw-r--r--ydb/core/kqp/ut/opt/kqp_kv_ut.cpp138
-rw-r--r--ydb/core/kqp/ut/opt/kqp_ne_ut.cpp13
-rw-r--r--ydb/core/kqp/ut/opt/kqp_not_null_ut.cpp32
-rw-r--r--ydb/core/kqp/ut/opt/kqp_ranges_ut.cpp4
-rw-r--r--ydb/core/kqp/ut/opt/kqp_sort_ut.cpp44
-rw-r--r--ydb/core/kqp/ut/pg/kqp_pg_ut.cpp122
-rw-r--r--ydb/core/kqp/ut/query/kqp_explain_ut.cpp1
-rw-r--r--ydb/core/kqp/ut/query/kqp_limits_ut.cpp4
-rw-r--r--ydb/core/kqp/ut/scan/kqp_scan_ut.cpp106
-rw-r--r--ydb/core/kqp/ut/scan/kqp_split_ut.cpp19
-rw-r--r--ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp231
-rw-r--r--ydb/core/kqp/ut/service/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/kqp/ut/service/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/kqp/ut/service/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/kqp/ut/service/kqp_query_service_ut.cpp270
-rw-r--r--ydb/core/kqp/ut/service/kqp_service_ut.cpp91
-rw-r--r--ydb/core/kqp/ut/service/ya.make1
-rw-r--r--ydb/core/kqp/ut/yql/kqp_yql_ut.cpp51
-rw-r--r--ydb/core/local_pgwire/local_pgwire_connection.cpp68
-rw-r--r--ydb/core/local_pgwire/local_pgwire_util.h54
-rw-r--r--ydb/core/local_pgwire/pgwire_kqp_proxy.cpp152
-rw-r--r--ydb/core/mind/bscontroller/bsc.cpp16
-rw-r--r--ydb/core/mind/bscontroller/cmds_drive_status.cpp2
-rw-r--r--ydb/core/mind/bscontroller/config.cpp6
-rw-r--r--ydb/core/mind/bscontroller/config_fit_groups.cpp16
-rw-r--r--ydb/core/mind/bscontroller/config_fit_pdisks.cpp7
-rw-r--r--ydb/core/mind/bscontroller/group_mapper.cpp7
-rw-r--r--ydb/core/mind/bscontroller/group_mapper.h1
-rw-r--r--ydb/core/mind/bscontroller/impl.h35
-rw-r--r--ydb/core/mind/bscontroller/register_node.cpp11
-rw-r--r--ydb/core/mind/bscontroller/self_heal.cpp18
-rw-r--r--ydb/core/mind/bscontroller/self_heal.h1
-rw-r--r--ydb/core/mind/bscontroller/ut_selfheal/env.h5
-rw-r--r--ydb/core/mind/bscontroller/ut_selfheal/main.cpp82
-rw-r--r--ydb/core/mind/dynamic_nameserver_mon.cpp4
-rw-r--r--ydb/core/mind/hive/hive_impl.cpp11
-rw-r--r--ydb/core/mind/hive/hive_impl.h1
-rw-r--r--ydb/core/mind/hive/node_info.cpp6
-rw-r--r--ydb/core/mind/hive/node_info.h1
-rw-r--r--ydb/core/mind/local.cpp9
-rw-r--r--ydb/core/mind/local.h2
-rw-r--r--ydb/core/mind/node_broker.cpp16
-rw-r--r--ydb/core/mind/node_broker_impl.h4
-rw-r--r--ydb/core/mind/node_broker_ut.cpp32
-rw-r--r--ydb/core/mind/tenant_slot_broker.cpp36
-rw-r--r--ydb/core/mind/tenant_slot_broker__load_state.cpp3
-rw-r--r--ydb/core/mind/tenant_slot_broker_impl.h8
-rw-r--r--ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp2
-rw-r--r--ydb/core/mon/async_http_mon.cpp11
-rw-r--r--ydb/core/mon_alloc/monitor.cpp47
-rw-r--r--ydb/core/mon_alloc/monitor.h2
-rw-r--r--ydb/core/mon_alloc/stats.cpp6
-rw-r--r--ydb/core/mon_alloc/stats.h8
-rw-r--r--ydb/core/mon_alloc/tcmalloc.cpp12
-rw-r--r--ydb/core/persqueue/mirrorer.cpp4
-rw-r--r--ydb/core/persqueue/partition.cpp4
-rw-r--r--ydb/core/persqueue/partition_monitoring.cpp2
-rw-r--r--ydb/core/persqueue/partition_read.cpp2
-rw-r--r--ydb/core/persqueue/partition_write.cpp12
-rw-r--r--ydb/core/persqueue/pq_impl.cpp4
-rw-r--r--ydb/core/persqueue/pq_impl.h2
-rw-r--r--ydb/core/persqueue/read_balancer.h4
-rw-r--r--ydb/core/persqueue/read_speed_limiter.h2
-rw-r--r--ydb/core/persqueue/ut/mirrorer_ut.cpp87
-rw-r--r--ydb/core/persqueue/ut/partition_ut.cpp16
-rw-r--r--ydb/core/persqueue/ut/pq_ut.cpp38
-rw-r--r--ydb/core/persqueue/ut/pqtablet_mock.cpp8
-rw-r--r--ydb/core/persqueue/ut/pqtablet_mock.h1
-rw-r--r--ydb/core/persqueue/write_meta.cpp5
-rw-r--r--ydb/core/persqueue/writer/source_id_encoding.cpp10
-rw-r--r--ydb/core/persqueue/writer/source_id_encoding.h3
-rw-r--r--ydb/core/pgproxy/pg_connection.cpp45
-rw-r--r--ydb/core/pgproxy/pg_proxy_events.h1
-rw-r--r--ydb/core/protos/auth.proto8
-rw-r--r--ydb/core/protos/blobstorage_config.proto4
-rw-r--r--ydb/core/protos/cms.proto2
-rw-r--r--ydb/core/protos/config.proto37
-rw-r--r--ydb/core/protos/counters_columnshard.proto7
-rw-r--r--ydb/core/protos/counters_keyvalue.proto1
-rw-r--r--ydb/core/protos/flat_scheme_op.proto6
-rwxr-xr-xydb/core/protos/grpc_pq_old.proto3
-rw-r--r--ydb/core/protos/kqp.proto13
-rw-r--r--ydb/core/protos/kqp_physical.proto27
-rw-r--r--ydb/core/protos/local.proto2
-rw-r--r--ydb/core/protos/msgbus_kv.proto16
-rw-r--r--ydb/core/protos/node_whiteboard.proto2
-rw-r--r--ydb/core/protos/stream.proto2
-rw-r--r--ydb/core/protos/tx_datashard.proto5
-rw-r--r--ydb/core/quoter/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/core/quoter/CMakeLists.linux-aarch64.txt2
-rw-r--r--ydb/core/quoter/CMakeLists.linux-x86_64.txt2
-rw-r--r--ydb/core/quoter/CMakeLists.windows-x86_64.txt2
-rw-r--r--ydb/core/quoter/kesus_quoter_proxy.cpp2
-rw-r--r--ydb/core/quoter/probes.h2
-rw-r--r--ydb/core/quoter/public/CMakeLists.darwin-x86_64.txt34
-rw-r--r--ydb/core/quoter/public/CMakeLists.linux-aarch64.txt35
-rw-r--r--ydb/core/quoter/public/CMakeLists.linux-x86_64.txt35
-rw-r--r--ydb/core/quoter/public/CMakeLists.txt17
-rw-r--r--ydb/core/quoter/public/CMakeLists.windows-x86_64.txt34
-rw-r--r--ydb/core/quoter/public/quoter.cpp (renamed from ydb/core/base/quoter.cpp)4
-rw-r--r--ydb/core/quoter/public/quoter.h (renamed from ydb/core/base/quoter.h)32
-rw-r--r--ydb/core/quoter/public/ya.make17
-rw-r--r--ydb/core/quoter/quoter_service.cpp4
-rw-r--r--ydb/core/quoter/quoter_service.h2
-rw-r--r--ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.cpp2
-rw-r--r--ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.h2
-rw-r--r--ydb/core/quoter/ya.make1
-rw-r--r--ydb/core/security/ticket_parser_impl.h22
-rw-r--r--ydb/core/tablet/node_whiteboard.cpp24
-rw-r--r--ydb/core/tablet/tablet_counters_aggregator.cpp8
-rw-r--r--ydb/core/tablet/tablet_pipe_ut.cpp25
-rw-r--r--ydb/core/tablet/tablet_pipecache_ut.cpp6
-rw-r--r--ydb/core/tablet_flat/datetime_ut.cpp5
-rw-r--r--ydb/core/tablet_flat/decimal_ut.cpp5
-rw-r--r--ydb/core/tablet_flat/flat_bio_actor.cpp5
-rw-r--r--ydb/core/tablet_flat/flat_bio_actor.h2
-rw-r--r--ydb/core/tablet_flat/flat_cxx_database.h17
-rw-r--r--ydb/core/tablet_flat/flat_executor_leases_ut.cpp8
-rw-r--r--ydb/core/tablet_flat/flat_executor_txloglogic.cpp4
-rw-r--r--ydb/core/tablet_flat/flat_executor_ut.cpp5
-rw-r--r--ydb/core/tablet_flat/flat_load_blob_queue.cpp8
-rw-r--r--ydb/core/tablet_flat/flat_sausagecache.cpp10
-rw-r--r--ydb/core/tablet_flat/flat_sausagecache.h14
-rw-r--r--ydb/core/tablet_flat/shared_cache_events.h4
-rw-r--r--ydb/core/tablet_flat/shared_sausagecache.cpp266
-rw-r--r--ydb/core/tablet_flat/shared_sausagecache.h6
-rw-r--r--ydb/core/tablet_flat/tablet_flat_executed.cpp26
-rw-r--r--ydb/core/tablet_flat/tablet_flat_executed.h26
-rw-r--r--ydb/core/tablet_flat/test/libs/exec/dummy.h6
-rw-r--r--ydb/core/tablet_flat/test/libs/exec/runner.h5
-rw-r--r--ydb/core/tablet_flat/ut/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/tablet_flat/ut/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/tablet_flat/ut/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/tablet_flat/ut/ut_shared_sausagecache.cpp166
-rw-r--r--ydb/core/tablet_flat/ut/ut_slice_loader.cpp2
-rw-r--r--ydb/core/tablet_flat/ut/ya.make1
-rw-r--r--ydb/core/tablet_flat/ut_util/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/tablet_flat/ut_util/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/tablet_flat/ut_util/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/tablet_flat/ut_util/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/tablet_flat/ut_util/ya.make1
-rw-r--r--ydb/core/tablet_flat/util_string.h14
-rw-r--r--ydb/core/tablet_flat/util_string_ut.cpp32
-rw-r--r--ydb/core/test_tablet/test_shard_impl.h1
-rw-r--r--ydb/core/testlib/actors/test_runtime.h8
-rw-r--r--ydb/core/testlib/basics/services.cpp4
-rw-r--r--ydb/core/testlib/cs_helper.cpp6
-rw-r--r--ydb/core/testlib/fake_coordinator.h5
-rw-r--r--ydb/core/testlib/fake_scheme_shard.h16
-rw-r--r--ydb/core/testlib/tablet_helpers.cpp28
-rw-r--r--ydb/core/testlib/tenant_runtime.cpp24
-rw-r--r--ydb/core/testlib/test_client.cpp2
-rw-r--r--ydb/core/tx/columnshard/blob_cache.cpp2
-rw-r--r--ydb/core/tx/columnshard/blob_manager.cpp25
-rw-r--r--ydb/core/tx/columnshard/blob_manager.h8
-rw-r--r--ydb/core/tx/columnshard/columnshard.cpp25
-rw-r--r--ydb/core/tx/columnshard/columnshard__export.cpp6
-rw-r--r--ydb/core/tx/columnshard/columnshard__read_blob_ranges.cpp2
-rw-r--r--ydb/core/tx/columnshard/columnshard__write_index.cpp10
-rw-r--r--ydb/core/tx/columnshard/columnshard_impl.cpp82
-rw-r--r--ydb/core/tx/columnshard/columnshard_impl.h34
-rw-r--r--ydb/core/tx/columnshard/engines/column_engine_logs.cpp29
-rw-r--r--ydb/core/tx/columnshard/engines/reader/granule.cpp12
-rw-r--r--ydb/core/tx/columnshard/engines/ut_program.cpp17
-rw-r--r--ydb/core/tx/columnshard/inflight_request_tracker.h15
-rw-r--r--ydb/core/tx/columnshard/ut_schema/ut_columnshard_schema.cpp4
-rw-r--r--ydb/core/tx/columnshard/write_actor.cpp2
-rw-r--r--ydb/core/tx/coordinator/coordinator.h2
-rw-r--r--ydb/core/tx/coordinator/coordinator_impl.cpp5
-rw-r--r--ydb/core/tx/coordinator/coordinator_impl.h4
-rw-r--r--ydb/core/tx/datashard/build_index.cpp31
-rw-r--r--ydb/core/tx/datashard/conflicts_cache.h4
-rw-r--r--ydb/core/tx/datashard/datashard.cpp10
-rw-r--r--ydb/core/tx/datashard/datashard__kqp_scan.cpp30
-rw-r--r--ydb/core/tx/datashard/datashard__op_rows.cpp46
-rw-r--r--ydb/core/tx/datashard/datashard__propose_tx_base.cpp2
-rw-r--r--ydb/core/tx/datashard/datashard__read_iterator.cpp68
-rw-r--r--ydb/core/tx/datashard/datashard_impl.h36
-rw-r--r--ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp263
-rw-r--r--ydb/core/tx/datashard/datashard_ut_upload_rows.cpp39
-rw-r--r--ydb/core/tx/datashard/export_s3_base_uploader.h2
-rw-r--r--ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp176
-rw-r--r--ydb/core/tx/mediator/mediator_impl.cpp7
-rw-r--r--ydb/core/tx/mediator/mediator_impl.h6
-rw-r--r--ydb/core/tx/replication/controller/controller.cpp42
-rw-r--r--ydb/core/tx/replication/controller/controller_impl.h3
-rw-r--r--ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp8
-rw-r--r--ydb/core/tx/schemeshard/schemeshard__operation_create_cdc_stream.cpp1
-rw-r--r--ydb/core/tx/schemeshard/schemeshard__operation_create_external_data_source.cpp1
-rw-r--r--ydb/core/tx/schemeshard/schemeshard__operation_create_external_table.cpp23
-rw-r--r--ydb/core/tx/schemeshard/schemeshard_impl.cpp12
-rw-r--r--ydb/core/tx/schemeshard/schemeshard_impl.h1
-rw-r--r--ydb/core/tx/schemeshard/schemeshard_utils.cpp5
-rw-r--r--ydb/core/tx/schemeshard/ut_export.cpp88
-rw-r--r--ydb/core/tx/schemeshard/ut_helpers/test_env.cpp68
-rw-r--r--ydb/core/tx/schemeshard/ut_move.cpp25
-rw-r--r--ydb/core/tx/schemeshard/ut_sequence.cpp34
-rw-r--r--ydb/core/tx/sequenceshard/sequenceshard_impl.cpp17
-rw-r--r--ydb/core/tx/sequenceshard/sequenceshard_impl.h2
-rw-r--r--ydb/core/tx/tiering/s3_actor.cpp124
-rw-r--r--ydb/core/tx/tx_allocator/txallocator_impl.cpp8
-rw-r--r--ydb/core/tx/tx_allocator/txallocator_impl.h12
-rw-r--r--ydb/core/tx/tx_proxy/upload_rows_common_impl.h2
-rw-r--r--ydb/core/util/cache_cache.h40
-rw-r--r--ydb/core/util/cache_cache_ut.cpp59
-rw-r--r--ydb/core/util/ut/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/util/ut/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/util/ut/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/util/ut/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/util/ut/ya.make1
-rw-r--r--ydb/core/util/ya.make1
-rw-r--r--ydb/core/viewer/json_cluster.h103
-rw-r--r--ydb/core/viewer/json_compute.h157
-rw-r--r--ydb/core/viewer/json_healthcheck.h34
-rw-r--r--ydb/core/viewer/json_nodes.h59
-rw-r--r--ydb/core/viewer/json_query.h133
-rw-r--r--ydb/core/viewer/json_storage.h241
-rw-r--r--ydb/core/viewer/json_tenantinfo.h8
-rw-r--r--ydb/core/viewer/monitoring/index.html2
-rw-r--r--ydb/core/viewer/monitoring/static/css/main.a0419d3f.css2
-rw-r--r--ydb/core/viewer/monitoring/static/css/main.ff5b549d.css2
-rw-r--r--ydb/core/viewer/monitoring/static/js/5210.0bde5996.chunk.js (renamed from ydb/core/viewer/monitoring/static/js/5210.6e07cb51.chunk.js)4
-rw-r--r--ydb/core/viewer/monitoring/static/js/5215.82cc072c.chunk.js (renamed from ydb/core/viewer/monitoring/static/js/5215.2d9f2122.chunk.js)4
-rw-r--r--ydb/core/viewer/monitoring/static/js/8206.9a658249.chunk.js (renamed from ydb/core/viewer/monitoring/static/js/8206.d2f5a912.chunk.js)4
-rw-r--r--ydb/core/viewer/monitoring/static/js/main.8120faa2.js3
-rw-r--r--ydb/core/viewer/monitoring/static/js/main.8a169fdc.js3
-rw-r--r--ydb/core/viewer/protos/viewer.proto14
-rw-r--r--ydb/core/viewer/viewer_helper.h16
-rw-r--r--ydb/core/viewer/viewer_request.cpp4
-rw-r--r--ydb/core/viewer/ya.make10
-rw-r--r--ydb/core/wrappers/events/object_exists.h10
-rw-r--r--ydb/core/wrappers/fake_storage.cpp20
-rw-r--r--ydb/core/wrappers/s3_storage.cpp2
-rw-r--r--ydb/core/wrappers/ut_helpers/s3_mock.cpp14
-rw-r--r--ydb/core/wrappers/ut_helpers/s3_mock.h2
-rw-r--r--ydb/core/ydb_convert/table_description.cpp6
-rw-r--r--ydb/core/ydb_convert/table_settings.h2
-rw-r--r--ydb/core/ymq/actor/action.h2
-rw-r--r--ydb/core/ymq/actor/cleanup_queue_data.cpp87
-rw-r--r--ydb/core/ymq/actor/cleanup_queue_data.h2
-rw-r--r--ydb/core/ymq/actor/index_events_processor.cpp40
-rw-r--r--ydb/core/ymq/actor/index_events_processor.h3
-rw-r--r--ydb/core/ymq/actor/local_rate_limiter_allocator.cpp2
-rw-r--r--ydb/core/ymq/actor/queue_leader.cpp2
-rw-r--r--ydb/core/ymq/actor/queue_schema.h2
-rw-r--r--ydb/core/ymq/actor/service.cpp2
-rw-r--r--ydb/core/ymq/base/run_query.cpp4
-rw-r--r--ydb/core/ymq/base/run_query.h3
-rw-r--r--ydb/library/CMakeLists.txt2
-rw-r--r--ydb/library/persqueue/topic_parser/topic_parser.cpp125
-rw-r--r--ydb/library/persqueue/topic_parser/topic_parser.h10
-rw-r--r--ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp40
-rw-r--r--ydb/library/time_series_vec/CMakeLists.darwin-x86_64.txt15
-rw-r--r--ydb/library/time_series_vec/CMakeLists.linux-aarch64.txt16
-rw-r--r--ydb/library/time_series_vec/CMakeLists.linux-x86_64.txt16
-rw-r--r--ydb/library/time_series_vec/CMakeLists.txt17
-rw-r--r--ydb/library/time_series_vec/CMakeLists.windows-x86_64.txt15
-rw-r--r--ydb/library/time_series_vec/time_series_vec.h (renamed from ydb/core/util/time_series_vec.h)0
-rw-r--r--ydb/library/time_series_vec/time_series_vec_ut.cpp (renamed from ydb/core/util/time_series_vec_ut.cpp)0
-rw-r--r--ydb/library/time_series_vec/ut/CMakeLists.darwin-x86_64.txt75
-rw-r--r--ydb/library/time_series_vec/ut/CMakeLists.linux-aarch64.txt80
-rw-r--r--ydb/library/time_series_vec/ut/CMakeLists.linux-x86_64.txt82
-rw-r--r--ydb/library/time_series_vec/ut/CMakeLists.txt17
-rw-r--r--ydb/library/time_series_vec/ut/CMakeLists.windows-x86_64.txt70
-rw-r--r--ydb/library/time_series_vec/ut/ya.make24
-rw-r--r--ydb/library/time_series_vec/ya.make11
-rw-r--r--ydb/library/wilson_ids/CMakeLists.darwin-x86_64.txt14
-rw-r--r--ydb/library/wilson_ids/CMakeLists.linux-aarch64.txt15
-rw-r--r--ydb/library/wilson_ids/CMakeLists.linux-x86_64.txt15
-rw-r--r--ydb/library/wilson_ids/CMakeLists.txt17
-rw-r--r--ydb/library/wilson_ids/CMakeLists.windows-x86_64.txt14
-rw-r--r--ydb/library/wilson_ids/wilson.h (renamed from ydb/core/base/wilson.h)2
-rw-r--r--ydb/library/wilson_ids/ya.make7
-rw-r--r--ydb/library/ya.make2
-rw-r--r--ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp33
-rw-r--r--ydb/library/yql/core/cbo/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/library/yql/core/cbo/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/library/yql/core/cbo/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/library/yql/core/cbo/cbo_optimizer.cpp57
-rw-r--r--ydb/library/yql/core/cbo/cbo_optimizer.h3
-rw-r--r--ydb/library/yql/core/cbo/ya.make4
-rw-r--r--ydb/library/yql/core/common_opt/yql_co_simple1.cpp11
-rw-r--r--ydb/library/yql/core/extract_predicate/extract_predicate.h21
-rw-r--r--ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp2
-rw-r--r--ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp483
-rw-r--r--ydb/library/yql/core/extract_predicate/extract_predicate_impl.h2
-rw-r--r--ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp6
-rw-r--r--ydb/library/yql/core/services/yql_transform_pipeline.cpp8
-rw-r--r--ydb/library/yql/core/type_ann/type_ann_core.cpp2
-rw-r--r--ydb/library/yql/core/yql_expr_type_annotation.cpp54
-rw-r--r--ydb/library/yql/core/yql_expr_type_annotation.h6
-rw-r--r--ydb/library/yql/core/yql_graph_transformer.cpp2
-rw-r--r--ydb/library/yql/core/yql_opt_utils.cpp55
-rw-r--r--ydb/library/yql/core/yql_opt_utils.h1
-rw-r--r--ydb/library/yql/core/yql_type_annotation.cpp3
-rw-r--r--ydb/library/yql/dq/actors/compute/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/library/yql/dq/actors/compute/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/library/yql/dq/actors/compute/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/library/yql/dq/actors/compute/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp2
-rw-r--r--ydb/library/yql/dq/actors/compute/dq_compute_actor.h35
-rw-r--r--ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io.h10
-rw-r--r--ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.cpp4
-rw-r--r--ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.h12
-rw-r--r--ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h5
-rw-r--r--ydb/library/yql/dq/actors/compute/ya.make1
-rw-r--r--ydb/library/yql/dq/integration/yql_dq_integration.h8
-rw-r--r--ydb/library/yql/dq/opt/dq_opt_build.cpp78
-rw-r--r--ydb/library/yql/dq/opt/dq_opt_build.h9
-rw-r--r--ydb/library/yql/dq/runtime/dq_output_channel.cpp28
-rw-r--r--ydb/library/yql/dq/type_ann/dq_type_ann.cpp29
-rw-r--r--ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp2
-rw-r--r--ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp9
-rw-r--r--ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp150
-rw-r--r--ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp68
-rw-r--r--ydb/library/yql/minikql/computation/mkql_computation_node_holders.h73
-rw-r--r--ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp8
-rw-r--r--ydb/library/yql/minikql/mkql_node.cpp98
-rw-r--r--ydb/library/yql/minikql/mkql_node.h97
-rw-r--r--ydb/library/yql/minikql/mkql_program_builder.cpp21
-rw-r--r--ydb/library/yql/minikql/mkql_runtime_version.h11
-rw-r--r--ydb/library/yql/providers/common/codec/yql_codec.cpp9
-rw-r--r--ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp6
-rw-r--r--ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h3
-rw-r--r--ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp5
-rw-r--r--ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp5
-rw-r--r--ydb/library/yql/providers/common/provider/yql_provider.cpp5
-rw-r--r--ydb/library/yql/providers/common/provider/yql_provider.h1
-rw-r--r--ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/library/yql/providers/common/structured_token/ut/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/library/yql/providers/common/structured_token/ut/ya.make1
-rw-r--r--ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp48
-rw-r--r--ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp5
-rw-r--r--ydb/library/yql/providers/common/structured_token/yql_structured_token.h1
-rw-r--r--ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp71
-rw-r--r--ydb/library/yql/providers/common/structured_token/yql_token_builder.h10
-rw-r--r--ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp10
-rw-r--r--ydb/library/yql/providers/dq/common/yql_dq_settings.cpp7
-rw-r--r--ydb/library/yql/providers/dq/common/yql_dq_settings.h2
-rw-r--r--ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp11
-rw-r--r--ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp2
-rw-r--r--ydb/library/yql/providers/pq/provider/yql_pq_dq_integration.cpp2
-rw-r--r--ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp33
-rw-r--r--ydb/library/yql/providers/s3/actors/yql_s3_read_actor.h3
-rw-r--r--ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp2
-rw-r--r--ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.json10
-rw-r--r--ydb/library/yql/providers/s3/provider/yql_s3_datasink_type_ann.cpp54
-rw-r--r--ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp7
-rw-r--r--ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp15
-rw-r--r--ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp6
-rw-r--r--ydb/library/yql/providers/s3/provider/yql_s3_phy_opt.cpp270
-rw-r--r--ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp2
-rw-r--r--ydb/library/yql/sql/pg/optimizer_ut.cpp57
-rw-r--r--ydb/library/yql/sql/pg/pg_sql.cpp159
-rw-r--r--ydb/library/yql/sql/pg/pg_sql_ut.cpp90
-rw-r--r--ydb/library/yql/sql/v1/CMakeLists.darwin-x86_64.txt9
-rw-r--r--ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt9
-rw-r--r--ydb/library/yql/sql/v1/CMakeLists.linux-x86_64.txt9
-rw-r--r--ydb/library/yql/sql/v1/CMakeLists.windows-x86_64.txt9
-rw-r--r--ydb/library/yql/sql/v1/aggregation.cpp1
-rw-r--r--ydb/library/yql/sql/v1/context.h2
-rw-r--r--ydb/library/yql/sql/v1/insert.cpp2
-rw-r--r--ydb/library/yql/sql/v1/join.cpp2
-rw-r--r--ydb/library/yql/sql/v1/node.cpp931
-rw-r--r--ydb/library/yql/sql/v1/node.h294
-rw-r--r--ydb/library/yql/sql/v1/query.cpp10
-rw-r--r--ydb/library/yql/sql/v1/select.cpp3
-rw-r--r--ydb/library/yql/sql/v1/source.cpp949
-rw-r--r--ydb/library/yql/sql/v1/source.h300
-rw-r--r--ydb/library/yql/sql/v1/sql.cpp11882
-rw-r--r--ydb/library/yql/sql/v1/sql_call_expr.cpp440
-rw-r--r--ydb/library/yql/sql/v1/sql_call_expr.h93
-rw-r--r--ydb/library/yql/sql/v1/sql_expression.cpp2197
-rw-r--r--ydb/library/yql/sql/v1/sql_expression.h145
-rw-r--r--ydb/library/yql/sql/v1/sql_group_by.cpp471
-rw-r--r--ydb/library/yql/sql/v1/sql_group_by.h73
-rw-r--r--ydb/library/yql/sql/v1/sql_into_tables.cpp261
-rw-r--r--ydb/library/yql/sql/v1/sql_into_tables.h30
-rw-r--r--ydb/library/yql/sql/v1/sql_query.cpp2272
-rw-r--r--ydb/library/yql/sql/v1/sql_query.h78
-rw-r--r--ydb/library/yql/sql/v1/sql_select.cpp1405
-rw-r--r--ydb/library/yql/sql/v1/sql_select.h74
-rw-r--r--ydb/library/yql/sql/v1/sql_translation.cpp4249
-rw-r--r--ydb/library/yql/sql/v1/sql_translation.h302
-rw-r--r--ydb/library/yql/sql/v1/sql_ut.cpp65
-rw-r--r--ydb/library/yql/sql/v1/sql_values.cpp133
-rw-r--r--ydb/library/yql/sql/v1/sql_values.h39
-rw-r--r--ydb/library/yql/sql/v1/ya.make9
-rw-r--r--ydb/public/api/grpc/ydb_query_v1.proto9
-rw-r--r--ydb/public/api/protos/draft/fq.proto14
-rw-r--r--ydb/public/api/protos/ydb_query.proto91
-rw-r--r--ydb/public/api/protos/ydb_topic.proto8
-rw-r--r--ydb/public/lib/CMakeLists.txt1
-rw-r--r--ydb/public/lib/ut_helpers/CMakeLists.darwin-x86_64.txt22
-rw-r--r--ydb/public/lib/ut_helpers/CMakeLists.linux-aarch64.txt23
-rw-r--r--ydb/public/lib/ut_helpers/CMakeLists.linux-x86_64.txt23
-rw-r--r--ydb/public/lib/ut_helpers/CMakeLists.txt17
-rw-r--r--ydb/public/lib/ut_helpers/CMakeLists.windows-x86_64.txt22
-rw-r--r--ydb/public/lib/ut_helpers/ut_helpers_query.cpp112
-rw-r--r--ydb/public/lib/ut_helpers/ut_helpers_query.h17
-rw-r--r--ydb/public/lib/ut_helpers/ya.make16
-rw-r--r--ydb/public/sdk/cpp/client/CMakeLists.txt1
-rw-r--r--ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-x86_64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-aarch64.txt21
-rw-r--r--ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-x86_64.txt21
-rw-r--r--ydb/public/sdk/cpp/client/helpers/CMakeLists.txt17
-rw-r--r--ydb/public/sdk/cpp/client/helpers/CMakeLists.windows-x86_64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/helpers/helpers.cpp68
-rw-r--r--ydb/public/sdk/cpp/client/helpers/helpers.h18
-rw-r--r--ydb/public/sdk/cpp/client/helpers/ya.make13
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/CMakeLists.txt2
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/grpc_connections.h3
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-x86_64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-aarch64.txt21
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-x86_64.txt21
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt17
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.windows-x86_64.txt20
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.cpp172
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.h78
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/ya.make14
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_client/session_client.h19
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-x86_64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-aarch64.txt23
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-x86_64.txt23
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt17
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.windows-x86_64.txt22
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.cpp (renamed from ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.cpp)205
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.h145
-rw-r--r--ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/ya.make15
-rw-r--r--ydb/public/sdk/cpp/client/resources/ydb_sdk_version.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h10
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.ipp16
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h8
-rw-r--r--ydb/public/sdk/cpp/client/ydb_proto/accessor.cpp4
-rw-r--r--ydb/public/sdk/cpp/client/ydb_proto/accessor.h1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/client.cpp334
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/client.h79
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/client_session.cpp62
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/client_session.h40
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp13
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h4
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/impl/ya.make1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/query.cpp8
-rw-r--r--ydb/public/sdk/cpp/client/ydb_query/query.h28
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-aarch64.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-x86_64.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.windows-x86_64.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/client_session.cpp136
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/client_session.h50
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp4
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.h4
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.h90
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp143
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/table_client.h91
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/impl/ya.make2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/table.cpp24
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/table.h3
-rw-r--r--ydb/public/sdk/cpp/client/ydb_table/ya.make1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp6
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.cpp32
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h3
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.cpp31
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h31
-rw-r--r--ydb/public/sdk/cpp/client/ydb_topic/topic.h76
-rw-r--r--ydb/public/sdk/cpp/ya.make3
-rw-r--r--ydb/services/datastreams/datastreams_proxy.cpp15
-rw-r--r--ydb/services/lib/actors/pq_schema_actor.cpp5
-rw-r--r--ydb/services/metadata/abstract/parsing.h8
-rw-r--r--ydb/services/metadata/manager/abstract.h3
-rw-r--r--ydb/services/metadata/secret/snapshot.cpp3
-rw-r--r--ydb/services/persqueue_v1/actors/events.h9
-rw-r--r--ydb/services/persqueue_v1/actors/partition_actor.cpp10
-rw-r--r--ydb/services/persqueue_v1/actors/partition_actor.h2
-rw-r--r--ydb/services/persqueue_v1/actors/read_session_actor.ipp22
-rw-r--r--ydb/services/persqueue_v1/actors/write_session_actor.ipp67
-rw-r--r--ydb/services/persqueue_v1/persqueue_ut.cpp30
-rw-r--r--ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp79
-rw-r--r--ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/services/ydb/ut/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/services/ydb/ut/ya.make1
-rw-r--r--ydb/services/ydb/ydb_bulk_upsert_olap_ut.cpp55
-rw-r--r--ydb/services/ydb/ydb_bulk_upsert_ut.cpp4
-rw-r--r--ydb/services/ydb/ydb_olapstore_ut.cpp1
-rw-r--r--ydb/services/ydb/ydb_query.cpp6
-rw-r--r--ydb/services/ydb/ydb_query_ut.cpp156
-rw-r--r--ydb/tests/CMakeLists.txt1
-rw-r--r--ydb/tests/functional/CMakeLists.txt9
-rw-r--r--ydb/tests/functional/api/test_insert.py3
-rw-r--r--ydb/tests/functional/api/test_isolation.py3
-rw-r--r--ydb/tests/functional/canonical/canondata/result.json20
-rw-r--r--ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-plan_/index_topsort_index_with_nonselector_aliases.sql.plan41
-rw-r--r--ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-result_sets_/index_topsort_index_with_nonselector_aliases.sql.results3
-rw-r--r--ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-plan_/index_topsort_index_with_selector_aliases.sql.plan41
-rw-r--r--ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-result_sets_/index_topsort_index_with_selector_aliases.sql.results3
-rw-r--r--ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_join_group_by_lookup.script-script_/join_group_by_lookup.script.plan2
-rw-r--r--ydb/tests/functional/canonical/sql/index/topsort_index_with_nonselector_aliases.sql8
-rw-r--r--ydb/tests/functional/canonical/sql/index/topsort_index_with_selector_aliases.sql8
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-02
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-106
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-116
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-126
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-136
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-146
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-156
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-166
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-172
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-186
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-192
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2027
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2127
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22116
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2323
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-242
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-252
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-262
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-272
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-282
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-292
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-306
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-316
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-326
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-336
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-346
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-352
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-366
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-376
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-386
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-396
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-406
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-416
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-424
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-52
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-62
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-76
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-86
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-98
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-104
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-114
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-124
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-134
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-144
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-154
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-164
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-184
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-214
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-224
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-304
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-314
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-324
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-334
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-344
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-364
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-374
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-384
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-394
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-404
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-414
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-422
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-74
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-84
-rw-r--r--ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-94
-rw-r--r--ydb/tests/functional/encryption/ya.make2
-rw-r--r--ydb/tests/functional/kqp/CMakeLists.txt10
-rw-r--r--ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-x86_64.txt66
-rw-r--r--ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-aarch64.txt69
-rw-r--r--ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-x86_64.txt71
-rw-r--r--ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt17
-rw-r--r--ydb/tests/functional/kqp/kqp_indexes/CMakeLists.windows-x86_64.txt59
-rw-r--r--ydb/tests/functional/kqp/kqp_indexes/main.cpp149
-rw-r--r--ydb/tests/functional/kqp/kqp_indexes/ya.make23
-rw-r--r--ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-x86_64.txt74
-rw-r--r--ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-aarch64.txt77
-rw-r--r--ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-x86_64.txt79
-rw-r--r--ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt17
-rw-r--r--ydb/tests/functional/kqp/kqp_query_session/CMakeLists.windows-x86_64.txt67
-rw-r--r--ydb/tests/functional/kqp/kqp_query_session/main.cpp121
-rw-r--r--ydb/tests/functional/kqp/kqp_query_session/ya.make28
-rw-r--r--ydb/tests/functional/kqp/ya.make4
-rw-r--r--ydb/tests/functional/large_serializable/test_serializable.py4
-rw-r--r--ydb/tests/functional/large_serializable/ya.make5
-rw-r--r--ydb/tests/functional/limits/ya.make4
-rw-r--r--ydb/tests/functional/restarts/ya.make2
-rw-r--r--ydb/tests/functional/script_execution/test_update_script_tables.py74
-rw-r--r--ydb/tests/functional/script_execution/ya.make32
-rw-r--r--ydb/tests/functional/sqs/large/ya.make2
-rw-r--r--ydb/tests/functional/sqs/merge_split_common_table/std/ya.make13
-rw-r--r--ydb/tests/functional/sqs/multinode/ya.make13
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_1.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_2.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_3.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_4.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_2.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_3.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_4.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_5.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_1.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_5.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_1.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_10.plan8
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_11.plan6
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_12.plan8
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_2.plan8
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_3.plan8
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_4.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_5.plan8
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_6.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_7.plan8
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_8.plan8
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_9.plan8
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_2.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_3.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_2.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_8.plan8
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_13.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_5.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_10.plan11
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_58.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_92.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_13.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_30.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_84.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_88.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_12.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_24.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_69.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-4.test_/query_125.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_120.plan9
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_35.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_106.plan9
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_84.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_100.plan2
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_118.plan6
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_53.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_64.plan9
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_101.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_102.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_77.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_78.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_55.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_56.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_64.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_65.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_103.plan9
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_104.plan9
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_115.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_116.plan4
-rw-r--r--ydb/tests/functional/suite_tests/canondata/test_stream_query.TestStreamQuery.test_sql_suite_results-window.test_/window.test.out27
-rw-r--r--ydb/tests/functional/suite_tests/stream_query/window.test7
-rw-r--r--ydb/tests/functional/ya.make2
-rw-r--r--ydb/tests/library/harness/kikimr_config.py11
-rw-r--r--ydb/tests/library/harness/resources/default_yaml.yml1
1093 files changed, 36613 insertions, 20909 deletions
diff --git a/library/cpp/CMakeLists.darwin-x86_64.txt b/library/cpp/CMakeLists.darwin-x86_64.txt
index 2e5648a15c..86cbdf3d7e 100644
--- a/library/cpp/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/CMakeLists.darwin-x86_64.txt
@@ -32,6 +32,7 @@ add_subdirectory(dbg_output)
add_subdirectory(deprecated)
add_subdirectory(diff)
add_subdirectory(digest)
+add_subdirectory(disjoint_sets)
add_subdirectory(dns)
add_subdirectory(enumbitset)
add_subdirectory(execprofile)
diff --git a/library/cpp/CMakeLists.linux-aarch64.txt b/library/cpp/CMakeLists.linux-aarch64.txt
index 09cf4909bb..4f422c15bc 100644
--- a/library/cpp/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/CMakeLists.linux-aarch64.txt
@@ -31,6 +31,7 @@ add_subdirectory(dbg_output)
add_subdirectory(deprecated)
add_subdirectory(diff)
add_subdirectory(digest)
+add_subdirectory(disjoint_sets)
add_subdirectory(dns)
add_subdirectory(enumbitset)
add_subdirectory(execprofile)
diff --git a/library/cpp/CMakeLists.linux-x86_64.txt b/library/cpp/CMakeLists.linux-x86_64.txt
index 2e5648a15c..86cbdf3d7e 100644
--- a/library/cpp/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/CMakeLists.linux-x86_64.txt
@@ -32,6 +32,7 @@ add_subdirectory(dbg_output)
add_subdirectory(deprecated)
add_subdirectory(diff)
add_subdirectory(digest)
+add_subdirectory(disjoint_sets)
add_subdirectory(dns)
add_subdirectory(enumbitset)
add_subdirectory(execprofile)
diff --git a/library/cpp/CMakeLists.windows-x86_64.txt b/library/cpp/CMakeLists.windows-x86_64.txt
index 2e5648a15c..86cbdf3d7e 100644
--- a/library/cpp/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/CMakeLists.windows-x86_64.txt
@@ -32,6 +32,7 @@ add_subdirectory(dbg_output)
add_subdirectory(deprecated)
add_subdirectory(diff)
add_subdirectory(digest)
+add_subdirectory(disjoint_sets)
add_subdirectory(dns)
add_subdirectory(enumbitset)
add_subdirectory(execprofile)
diff --git a/library/cpp/actors/core/event_load.h b/library/cpp/actors/core/event_load.h
index 30cc26aa46..0062ee40db 100644
--- a/library/cpp/actors/core/event_load.h
+++ b/library/cpp/actors/core/event_load.h
@@ -24,6 +24,7 @@ namespace NActors {
size_t Size = 0; // full size of serialized event section (a chunk in rope)
size_t Tailroom = 0; // tailroom for the chunk
size_t Alignment = 0; // required alignment
+ bool IsInline = false; // if true, goes through ordinary channel
};
struct TEventSerializationInfo {
@@ -51,7 +52,7 @@ namespace NActors {
, SerializationInfo(original.SerializationInfo)
{
if (!SerializationInfo.Sections.empty()) {
- SerializationInfo.Sections.push_back(TEventSectionInfo{0, extraBuffer.size(), 0, 0});
+ SerializationInfo.Sections.push_back(TEventSectionInfo{0, extraBuffer.size(), 0, 0, true});
}
Append(std::move(extraBuffer));
}
diff --git a/library/cpp/actors/core/event_pb.h b/library/cpp/actors/core/event_pb.h
index 4c4f49b1cc..a4fdb33fb4 100644
--- a/library/cpp/actors/core/event_pb.h
+++ b/library/cpp/actors/core/event_pb.h
@@ -6,6 +6,7 @@
#include <google/protobuf/io/zero_copy_stream.h>
#include <google/protobuf/arena.h>
#include <library/cpp/actors/protos/actors.pb.h>
+#include <library/cpp/containers/stack_vector/stack_vec.h>
#include <util/generic/deque.h>
#include <util/system/context.h>
#include <util/system/filemap.h>
@@ -14,6 +15,9 @@
#include <array>
#include <span>
+// enable only when patch with this macro was successfully deployed
+#define USE_EXTENDED_PAYLOAD_FORMAT 0
+
namespace NActors {
class TRopeStream : public NProtoBuf::io::ZeroCopyInputStream {
@@ -144,6 +148,7 @@ namespace NActors {
class TEventPBBase: public TEventBase<TEv, TEventType> , public TRecHolder {
// a vector of data buffers referenced by record; if filled, then extended serialization mechanism applies
TVector<TRope> Payload;
+ size_t TotalPayloadSize = 0;
public:
using TRecHolder::Record;
@@ -191,8 +196,8 @@ namespace NActors {
result += SerializeNumber(Payload.size(), buf);
for (const TRope& rope : Payload) {
result += SerializeNumber(rope.GetSize(), buf);
- result += rope.GetSize();
}
+ result += TotalPayloadSize;
}
return result;
}
@@ -207,9 +212,20 @@ namespace NActors {
if (const auto& info = input->GetSerializationInfo(); info.IsExtendedFormat) {
// check marker
- if (!iter.Valid() || *iter.ContiguousData() != PayloadMarker) {
+ if (!iter.Valid() || (*iter.ContiguousData() != PayloadMarker && *iter.ContiguousData() != ExtendedPayloadMarker)) {
Y_FAIL("invalid event");
}
+
+ const bool dataIsSeparate = *iter.ContiguousData() == ExtendedPayloadMarker; // ropes go after sizes
+
+ auto fetchRope = [&](size_t len) {
+ TRope::TConstIterator begin = iter;
+ iter += len;
+ size -= len;
+ ev->Payload.emplace_back(begin, iter);
+ ev->TotalPayloadSize += len;
+ };
+
// skip marker
iter += 1;
--size;
@@ -218,6 +234,10 @@ namespace NActors {
if (numRopes == Max<size_t>()) {
Y_FAIL("invalid event");
}
+ TStackVec<size_t, 16> ropeLens;
+ if (dataIsSeparate) {
+ ropeLens.reserve(numRopes);
+ }
while (numRopes--) {
// parse length of the rope
const size_t len = DeserializeNumber(iter, size);
@@ -225,10 +245,14 @@ namespace NActors {
Y_FAIL("invalid event len# %zu size# %" PRIu64, len, size);
}
// extract the rope
- TRope::TConstIterator begin = iter;
- iter += len;
- size -= len;
- ev->Payload.emplace_back(begin, iter);
+ if (dataIsSeparate) {
+ ropeLens.push_back(len);
+ } else {
+ fetchRope(len);
+ }
+ }
+ for (size_t len : ropeLens) {
+ fetchRope(len);
}
}
@@ -261,6 +285,10 @@ namespace NActors {
return CreateSerializationInfoImpl(0);
}
+ bool AllowExternalDataChannel() const {
+ return TotalPayloadSize >= 4096;
+ }
+
public:
void ReservePayload(size_t size) {
Payload.reserve(size);
@@ -268,6 +296,7 @@ namespace NActors {
ui32 AddPayload(TRope&& rope) {
const ui32 id = Payload.size();
+ TotalPayloadSize += rope.size();
Payload.push_back(std::move(rope));
InvalidateCachedByteSize();
return id;
@@ -284,37 +313,49 @@ namespace NActors {
void StripPayload() {
Payload.clear();
+ TotalPayloadSize = 0;
}
protected:
TEventSerializationInfo CreateSerializationInfoImpl(size_t preserializedSize) const {
TEventSerializationInfo info;
-
- if (Payload) {
- char temp[MaxNumberBytes];
- info.Sections.push_back(TEventSectionInfo{0, 1 + SerializeNumber(Payload.size(), temp), 0, 0}); // payload marker and rope count
- for (const TRope& rope : Payload) {
- const size_t ropeSize = rope.GetSize();
- info.Sections.back().Size += SerializeNumber(ropeSize, temp);
- info.Sections.push_back(TEventSectionInfo{0, ropeSize, 0, 0}); // data as a separate section
+ info.IsExtendedFormat = static_cast<bool>(Payload);
+
+ if (static_cast<const TEv&>(*this).AllowExternalDataChannel()) {
+ if (Payload) {
+ char temp[MaxNumberBytes];
+#if USE_EXTENDED_PAYLOAD_FORMAT
+ size_t headerLen = 1 + SerializeNumber(Payload.size(), temp);
+ for (const TRope& rope : Payload) {
+ headerLen += SerializeNumber(rope.size(), temp);
+ }
+ info.Sections.push_back(TEventSectionInfo{0, headerLen, 0, 0, true});
+ for (const TRope& rope : Payload) {
+ info.Sections.push_back(TEventSectionInfo{0, rope.size(), 0, 0, false});
+ }
+#else
+ info.Sections.push_back(TEventSectionInfo{0, 1 + SerializeNumber(Payload.size(), temp), 0, 0, true}); // payload marker and rope count
+ for (const TRope& rope : Payload) {
+ const size_t ropeSize = rope.GetSize();
+ info.Sections.back().Size += SerializeNumber(ropeSize, temp);
+ info.Sections.push_back(TEventSectionInfo{0, ropeSize, 0, 0, false}); // data as a separate section
+ }
+#endif
}
- info.IsExtendedFormat = true;
- } else {
- info.IsExtendedFormat = false;
- }
- const size_t byteSize = Max<ssize_t>(0, Record.ByteSize()) + preserializedSize;
- info.Sections.push_back(TEventSectionInfo{0, byteSize, 0, 0}); // protobuf itself
+ const size_t byteSize = Max<ssize_t>(0, Record.ByteSize()) + preserializedSize;
+ info.Sections.push_back(TEventSectionInfo{0, byteSize, 0, 0, true}); // protobuf itself
#ifndef NDEBUG
- size_t total = 0;
- for (const auto& section : info.Sections) {
- total += section.Size;
- }
- size_t serialized = CalculateSerializedSize();
- Y_VERIFY(total == serialized, "total# %zu serialized# %zu byteSize# %zd Payload.size# %zu", total,
- serialized, byteSize, Payload.size());
+ size_t total = 0;
+ for (const auto& section : info.Sections) {
+ total += section.Size;
+ }
+ size_t serialized = CalculateSerializedSize();
+ Y_VERIFY(total == serialized, "total# %zu serialized# %zu byteSize# %zd Payload.size# %zu", total,
+ serialized, byteSize, Payload.size());
#endif
+ }
return info;
}
@@ -343,6 +384,27 @@ namespace NActors {
char buf[MaxNumberBytes];
return append(buf, SerializeNumber(number, buf));
};
+
+#if USE_EXTENDED_PAYLOAD_FORMAT
+ char marker = ExtendedPayloadMarker;
+ append(&marker, 1);
+ if (!appendNumber(Payload.size())) {
+ return false;
+ }
+ for (const TRope& rope : Payload) {
+ if (!appendNumber(rope.GetSize())) {
+ return false;
+ }
+ }
+ if (size) {
+ chunker->BackUp(std::exchange(size, 0));
+ }
+ for (const TRope& rope : Payload) {
+ if (!chunker->WriteRope(&rope)) {
+ return false;
+ }
+ }
+#else
char marker = PayloadMarker;
append(&marker, 1);
if (!appendNumber(Payload.size())) {
@@ -364,6 +426,7 @@ namespace NActors {
if (size) {
chunker->BackUp(size);
}
+#endif
}
if (preserialized && !chunker->WriteString(&preserialized)) {
@@ -376,6 +439,7 @@ namespace NActors {
protected:
mutable size_t CachedByteSize = 0;
+ static constexpr char ExtendedPayloadMarker = 0x06;
static constexpr char PayloadMarker = 0x07;
static constexpr size_t MaxNumberBytes = (sizeof(size_t) * CHAR_BIT + 6) / 7;
diff --git a/library/cpp/actors/interconnect/interconnect_channel.cpp b/library/cpp/actors/interconnect/interconnect_channel.cpp
index e69483a8e9..6987c344de 100644
--- a/library/cpp/actors/interconnect/interconnect_channel.cpp
+++ b/library/cpp/actors/interconnect/interconnect_channel.cpp
@@ -75,6 +75,8 @@ namespace NActors {
State = EState::BODY;
Iter = event.Buffer->GetBeginIter();
SerializationInfo = &event.Buffer->GetSerializationInfo();
+ SectionIndex = 0;
+ PartLenRemain = 0;
} else if (event.Event) {
State = EState::BODY;
IEventBase *base = event.Event.Get();
@@ -83,15 +85,16 @@ namespace NActors {
}
SerializationInfoContainer = base->CreateSerializationInfo();
SerializationInfo = &SerializationInfoContainer;
+ SectionIndex = 0;
+ PartLenRemain = 0;
} else { // event without buffer and IEventBase instance
State = EState::DESCRIPTOR;
SerializationInfoContainer = {};
SerializationInfo = &SerializationInfoContainer;
}
- EventInExternalDataChannel = Params.UseExternalDataChannel && !SerializationInfo->Sections.empty();
if (!event.EventSerializedSize) {
State = EState::DESCRIPTOR;
- } else if (EventInExternalDataChannel) {
+ } else if (Params.UseExternalDataChannel && !SerializationInfo->Sections.empty()) {
State = EState::SECTIONS;
SectionIndex = 0;
}
@@ -130,11 +133,15 @@ namespace NActors {
char *p = sectionInfo;
const auto& section = SerializationInfo->Sections[SectionIndex];
- *p++ = static_cast<ui8>(EXdcCommand::DECLARE_SECTION);
+ char& type = *p++;
+ type = static_cast<ui8>(EXdcCommand::DECLARE_SECTION);
p += NInterconnect::NDetail::SerializeNumber(section.Headroom, p);
p += NInterconnect::NDetail::SerializeNumber(section.Size, p);
p += NInterconnect::NDetail::SerializeNumber(section.Tailroom, p);
p += NInterconnect::NDetail::SerializeNumber(section.Alignment, p);
+ if (section.IsInline && Params.UseXdcShuffle) {
+ type = static_cast<ui8>(EXdcCommand::DECLARE_SECTION_INLINE);
+ }
Y_VERIFY(p <= std::end(sectionInfo));
const size_t declareLen = p - sectionInfo;
@@ -161,6 +168,8 @@ namespace NActors {
if (SectionIndex == SerializationInfo->Sections.size()) {
State = EState::BODY;
+ SectionIndex = 0;
+ PartLenRemain = 0;
}
break;
@@ -179,6 +188,8 @@ namespace NActors {
task.Append<External>(data, len);
}
*bytesSerialized += len;
+ Y_VERIFY_DEBUG(len <= PartLenRemain);
+ PartLenRemain -= len;
event.EventActuallySerialized += len;
if (event.EventActuallySerialized > MaxSerializedEventSize) {
@@ -189,15 +200,12 @@ namespace NActors {
bool complete = false;
if (event.Event) {
while (!complete) {
- TMutableContiguousSpan out = task.AcquireSpanForWriting<External>();
+ TMutableContiguousSpan out = task.AcquireSpanForWriting<External>().SubSpan(0, PartLenRemain);
if (!out.size()) {
break;
}
- ui32 bytesFed = 0;
for (const auto& [buffer, size] : Chunker.FeedBuf(out.data(), out.size())) {
addChunk(buffer, size, false);
- bytesFed += size;
- Y_VERIFY(bytesFed <= out.size());
}
complete = Chunker.IsComplete();
if (complete) {
@@ -206,7 +214,7 @@ namespace NActors {
}
} else if (event.Buffer) {
while (const size_t numb = Min<size_t>(External ? task.GetExternalFreeAmount() : task.GetInternalFreeAmount(),
- Iter.ContiguousSize())) {
+ Iter.ContiguousSize(), PartLenRemain)) {
const char *obuf = Iter.ContiguousData();
addChunk(obuf, numb, true);
Iter += numb;
@@ -223,14 +231,43 @@ namespace NActors {
}
bool TEventOutputChannel::FeedPayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed) {
- return EventInExternalDataChannel
- ? FeedExternalPayload(task, event, weightConsumed)
- : FeedInlinePayload(task, event, weightConsumed);
+ for (;;) {
+ // calculate inline or external part size (it may cover a few sections, not just single one)
+ while (!PartLenRemain) {
+ const auto& sections = SerializationInfo->Sections;
+ if (!Params.UseExternalDataChannel || sections.empty()) {
+ // all data goes inline
+ IsPartInline = true;
+ PartLenRemain = Max<size_t>();
+ } else if (!Params.UseXdcShuffle) {
+ // when UseXdcShuffle feature is not supported by the remote side, we transfer whole event over XDC
+ IsPartInline = false;
+ PartLenRemain = Max<size_t>();
+ } else {
+ Y_VERIFY(SectionIndex < sections.size());
+ IsPartInline = sections[SectionIndex].IsInline;
+ while (SectionIndex < sections.size() && IsPartInline == sections[SectionIndex].IsInline) {
+ PartLenRemain += sections[SectionIndex].Size;
+ ++SectionIndex;
+ }
+ }
+ }
+
+ // serialize bytes
+ const auto complete = IsPartInline
+ ? FeedInlinePayload(task, event, weightConsumed)
+ : FeedExternalPayload(task, event, weightConsumed);
+ if (!complete) { // no space to serialize
+ return false;
+ } else if (*complete) { // event serialized
+ return true;
+ }
+ }
}
- bool TEventOutputChannel::FeedInlinePayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed) {
+ std::optional<bool> TEventOutputChannel::FeedInlinePayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed) {
if (task.GetInternalFreeAmount() <= sizeof(TChannelPart)) {
- return false;
+ return std::nullopt;
}
auto partBookmark = task.Bookmark(sizeof(TChannelPart));
@@ -253,10 +290,10 @@ namespace NActors {
return complete;
}
- bool TEventOutputChannel::FeedExternalPayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed) {
+ std::optional<bool> TEventOutputChannel::FeedExternalPayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed) {
const size_t partSize = sizeof(TChannelPart) + sizeof(ui8) + sizeof(ui16) + (Params.Encryption ? 0 : sizeof(ui32));
if (task.GetInternalFreeAmount() < partSize || task.GetExternalFreeAmount() == 0) {
- return false;
+ return std::nullopt;
}
// clear external checksum for this chunk
diff --git a/library/cpp/actors/interconnect/interconnect_channel.h b/library/cpp/actors/interconnect/interconnect_channel.h
index 2c5a286fe8..ef2da2fda7 100644
--- a/library/cpp/actors/interconnect/interconnect_channel.h
+++ b/library/cpp/actors/interconnect/interconnect_channel.h
@@ -46,6 +46,7 @@ namespace NActors {
enum class EXdcCommand : ui8 {
DECLARE_SECTION = 1,
PUSH_DATA,
+ DECLARE_SECTION_INLINE,
};
struct TExSerializedEventTooLarge : std::exception {
@@ -133,7 +134,8 @@ namespace NActors {
TCoroutineChunkSerializer Chunker;
TEventSerializationInfo SerializationInfoContainer;
const TEventSerializationInfo *SerializationInfo = nullptr;
- bool EventInExternalDataChannel;
+ bool IsPartInline = false;
+ size_t PartLenRemain = 0;
size_t SectionIndex = 0;
std::vector<char> XdcData;
@@ -141,8 +143,8 @@ namespace NActors {
bool SerializeEvent(TTcpPacketOutTask& task, TEventHolder& event, size_t *bytesSerialized);
bool FeedPayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed);
- bool FeedInlinePayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed);
- bool FeedExternalPayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed);
+ std::optional<bool> FeedInlinePayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed);
+ std::optional<bool> FeedExternalPayload(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed);
bool FeedDescriptor(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed);
diff --git a/library/cpp/actors/interconnect/interconnect_handshake.cpp b/library/cpp/actors/interconnect/interconnect_handshake.cpp
index 00ebaa5217..4a57fc226c 100644
--- a/library/cpp/actors/interconnect/interconnect_handshake.cpp
+++ b/library/cpp/actors/interconnect/interconnect_handshake.cpp
@@ -752,6 +752,7 @@ namespace NActors {
request.SetRequestExtendedTraceFmt(true);
request.SetRequestExternalDataChannel(Common->Settings.EnableExternalDataChannel);
request.SetRequestXxhash(true);
+ request.SetRequestXdcShuffle(true);
request.SetHandshakeId(*HandshakeId);
SendExBlock(MainChannel, request, "ExRequest");
@@ -790,6 +791,7 @@ namespace NActors {
Params.AuthOnly = Params.Encryption && success.GetAuthOnly();
Params.UseExternalDataChannel = success.GetUseExternalDataChannel();
Params.UseXxhash = success.GetUseXxhash();
+ Params.UseXdcShuffle = success.GetUseXdcShuffle();
if (success.HasServerScopeId()) {
ParsePeerScopeId(success.GetServerScopeId());
}
@@ -1041,6 +1043,7 @@ namespace NActors {
Params.AuthOnly = Params.Encryption && request.GetRequestAuthOnly() && Common->Settings.TlsAuthOnly;
Params.UseExternalDataChannel = request.GetRequestExternalDataChannel() && Common->Settings.EnableExternalDataChannel;
Params.UseXxhash = request.GetRequestXxhash();
+ Params.UseXdcShuffle = request.GetRequestXdcShuffle();
if (Params.UseExternalDataChannel) {
if (request.HasHandshakeId()) {
@@ -1080,6 +1083,7 @@ namespace NActors {
success.SetUseExtendedTraceFmt(true);
success.SetUseExternalDataChannel(Params.UseExternalDataChannel);
success.SetUseXxhash(Params.UseXxhash);
+ success.SetUseXdcShuffle(Params.UseXdcShuffle);
SendExBlock(MainChannel, record, "ExReply");
// extract sender actor id (self virtual id)
diff --git a/library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp b/library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp
index bb7e069883..3b42884355 100644
--- a/library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp
+++ b/library/cpp/actors/interconnect/interconnect_tcp_input_session.cpp
@@ -449,7 +449,7 @@ namespace NActors {
} else if (IgnorePayload) { // throw payload out
Payload.EraseFront(part.Size);
} else if (!part.IsLastPart()) { // just ordinary inline event data
- Payload.ExtractFront(part.Size, &pendingEvent.Payload);
+ Payload.ExtractFront(part.Size, &pendingEvent.InternalPayload);
} else { // event final block
TEventDescr2 v2;
@@ -529,8 +529,9 @@ namespace NActors {
const char *ptr = XdcCommands.data();
const char *end = ptr + XdcCommands.size();
while (ptr != end) {
- switch (static_cast<EXdcCommand>(*ptr++)) {
- case EXdcCommand::DECLARE_SECTION: {
+ switch (const auto cmd = static_cast<EXdcCommand>(*ptr++)) {
+ case EXdcCommand::DECLARE_SECTION:
+ case EXdcCommand::DECLARE_SECTION_INLINE: {
// extract and validate command parameters
const ui64 headroom = NInterconnect::NDetail::DeserializeNumber(&ptr, end);
const ui64 size = NInterconnect::NDetail::DeserializeNumber(&ptr, end);
@@ -542,17 +543,22 @@ namespace NActors {
}
if (!IgnorePayload) { // process command if packet is being applied
- // allocate buffer and push it into the payload
auto& pendingEvent = context.PendingEvents.back();
- pendingEvent.SerializationInfo.Sections.push_back(TEventSectionInfo{headroom, size, tailroom, alignment});
- auto buffer = TRcBuf::Uninitialized(size, headroom, tailroom);
- if (size) {
- context.XdcBuffers.push_back(buffer.GetContiguousSpanMut());
+ const bool isInline = cmd == EXdcCommand::DECLARE_SECTION_INLINE;
+ pendingEvent.SerializationInfo.Sections.push_back(TEventSectionInfo{headroom, size, tailroom,
+ alignment, isInline});
+
+ Y_VERIFY(!isInline || Params.UseXdcShuffle);
+ if (!isInline) {
+ // allocate buffer and push it into the payload
+ auto buffer = TRcBuf::Uninitialized(size, headroom, tailroom);
+ if (size) {
+ context.XdcBuffers.push_back(buffer.GetContiguousSpanMut());
+ }
+ pendingEvent.ExternalPayload.Insert(pendingEvent.ExternalPayload.End(), TRope(std::move(buffer)));
+ pendingEvent.XdcSizeLeft += size;
+ ++XdcSections;
}
- pendingEvent.Payload.Insert(pendingEvent.Payload.End(), TRope(std::move(buffer)));
- pendingEvent.XdcSizeLeft += size;
-
- ++XdcSections;
}
continue;
}
@@ -608,18 +614,57 @@ namespace NActors {
if (!pendingEvent.EventData || pendingEvent.XdcSizeLeft) {
break; // event is not ready yet
}
-
auto& descr = *pendingEvent.EventData;
+
+ // create aggregated payload
+ TRope payload;
+ if (!pendingEvent.SerializationInfo.Sections.empty()) {
+ // unshuffle inline and external payloads into single event content
+ TRope *prev = nullptr;
+ size_t accumSize = 0;
+ for (const auto& s : pendingEvent.SerializationInfo.Sections) {
+ TRope *rope = s.IsInline
+ ? &pendingEvent.InternalPayload
+ : &pendingEvent.ExternalPayload;
+ if (rope != prev) {
+ if (accumSize) {
+ prev->ExtractFront(accumSize, &payload);
+ }
+ prev = rope;
+ accumSize = 0;
+ }
+ accumSize += s.Size;
+ }
+ if (accumSize) {
+ prev->ExtractFront(accumSize, &payload);
+ }
+
+ if (pendingEvent.InternalPayload || pendingEvent.ExternalPayload) {
+ LOG_CRIT_IC_SESSION("ICIS19", "unprocessed payload remains after shuffling"
+ " Type# 0x%08" PRIx32 " InternalPayload.size# %zu ExternalPayload.size# %zu",
+ descr.Type, pendingEvent.InternalPayload.size(), pendingEvent.ExternalPayload.size());
+ Y_VERIFY_DEBUG(false);
+ throw TExReestablishConnection{TDisconnectReason::FormatError()};
+ }
+ }
+
+ // we add any remains of internal payload to the end
+ if (auto& rope = pendingEvent.InternalPayload) {
+ rope.ExtractFront(rope.size(), &payload);
+ }
+ // and ensure there is no unprocessed external payload
+ Y_VERIFY(!pendingEvent.ExternalPayload);
+
#if IC_FORCE_HARDENED_PACKET_CHECKS
- if (descr.Len != pendingEvent.Payload.GetSize()) {
+ if (descr.Len != payload.GetSize()) {
LOG_CRIT_IC_SESSION("ICIS17", "event length mismatch Type# 0x%08" PRIx32 " received# %zu expected# %" PRIu32,
- descr.Type, pendingEvent.Payload.GetSize(), descr.Len);
+ descr.Type, payload.GetSize(), descr.Len);
throw TExReestablishConnection{TDisconnectReason::ChecksumError()};
}
#endif
if (descr.Checksum) {
ui32 checksum = 0;
- for (const auto&& [data, size] : pendingEvent.Payload) {
+ for (const auto&& [data, size] : payload) {
checksum = Crc32cExtendMSanCompatible(checksum, data, size);
}
if (checksum != descr.Checksum) {
@@ -633,7 +678,7 @@ namespace NActors {
descr.Flags & ~IEventHandle::FlagExtendedFormat,
descr.Recipient,
descr.Sender,
- MakeIntrusive<TEventSerializedData>(std::move(pendingEvent.Payload), std::move(pendingEvent.SerializationInfo)),
+ MakeIntrusive<TEventSerializedData>(std::move(payload), std::move(pendingEvent.SerializationInfo)),
descr.Cookie,
Params.PeerScopeId,
std::move(descr.TraceId));
diff --git a/library/cpp/actors/interconnect/interconnect_tcp_session.h b/library/cpp/actors/interconnect/interconnect_tcp_session.h
index adc9fd3710..e1c555e629 100644
--- a/library/cpp/actors/interconnect/interconnect_tcp_session.h
+++ b/library/cpp/actors/interconnect/interconnect_tcp_session.h
@@ -126,7 +126,8 @@ namespace NActors {
struct TPerChannelContext {
struct TPendingEvent {
TEventSerializationInfo SerializationInfo;
- TRope Payload;
+ TRope InternalPayload;
+ TRope ExternalPayload;
std::optional<TEventData> EventData;
// number of bytes remaining through XDC channel
diff --git a/library/cpp/actors/interconnect/types.h b/library/cpp/actors/interconnect/types.h
index 7628fbd968..14b1a1c7a6 100644
--- a/library/cpp/actors/interconnect/types.h
+++ b/library/cpp/actors/interconnect/types.h
@@ -57,6 +57,7 @@ namespace NActors {
bool AuthOnly = {};
bool UseExternalDataChannel = {};
bool UseXxhash = {};
+ bool UseXdcShuffle = {};
TString AuthCN;
NActors::TScopeId PeerScopeId;
};
diff --git a/library/cpp/actors/protos/interconnect.proto b/library/cpp/actors/protos/interconnect.proto
index 538ede33d1..0e88f3bce5 100644
--- a/library/cpp/actors/protos/interconnect.proto
+++ b/library/cpp/actors/protos/interconnect.proto
@@ -74,6 +74,7 @@ message THandshakeRequest {
optional bool RequestExtendedTraceFmt = 20;
optional bool RequestExternalDataChannel = 21;
optional bool RequestXxhash = 24;
+ optional bool RequestXdcShuffle = 25;
optional bytes CompatibilityInfo = 22;
@@ -102,6 +103,7 @@ message THandshakeSuccess {
optional bool UseExtendedTraceFmt = 13;
optional bool UseExternalDataChannel = 14;
optional bool UseXxhash = 16;
+ optional bool UseXdcShuffle = 17;
optional bytes CompatibilityInfo = 15;
}
diff --git a/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt
index 6ab1bb43c3..be68d418f7 100644
--- a/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt
@@ -12,6 +12,7 @@ add_library(cpp-actors-util)
target_link_libraries(cpp-actors-util PUBLIC
contrib-libs-cxxsupp
yutil
+ cpp-containers-absl_flat_hash
cpp-deprecated-atomic
library-cpp-pop_count
)
@@ -19,6 +20,7 @@ target_sources(cpp-actors-util PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp
diff --git a/library/cpp/actors/util/CMakeLists.linux-aarch64.txt b/library/cpp/actors/util/CMakeLists.linux-aarch64.txt
index 4582852947..9c5183c2bd 100644
--- a/library/cpp/actors/util/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/util/CMakeLists.linux-aarch64.txt
@@ -13,6 +13,7 @@ target_link_libraries(cpp-actors-util PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
+ cpp-containers-absl_flat_hash
cpp-deprecated-atomic
library-cpp-pop_count
)
@@ -20,6 +21,7 @@ target_sources(cpp-actors-util PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp
diff --git a/library/cpp/actors/util/CMakeLists.linux-x86_64.txt b/library/cpp/actors/util/CMakeLists.linux-x86_64.txt
index 4582852947..9c5183c2bd 100644
--- a/library/cpp/actors/util/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/util/CMakeLists.linux-x86_64.txt
@@ -13,6 +13,7 @@ target_link_libraries(cpp-actors-util PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
+ cpp-containers-absl_flat_hash
cpp-deprecated-atomic
library-cpp-pop_count
)
@@ -20,6 +21,7 @@ target_sources(cpp-actors-util PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp
diff --git a/library/cpp/actors/util/CMakeLists.windows-x86_64.txt b/library/cpp/actors/util/CMakeLists.windows-x86_64.txt
index 6ab1bb43c3..be68d418f7 100644
--- a/library/cpp/actors/util/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/util/CMakeLists.windows-x86_64.txt
@@ -12,6 +12,7 @@ add_library(cpp-actors-util)
target_link_libraries(cpp-actors-util PUBLIC
contrib-libs-cxxsupp
yutil
+ cpp-containers-absl_flat_hash
cpp-deprecated-atomic
library-cpp-pop_count
)
@@ -19,6 +20,7 @@ target_sources(cpp-actors-util PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp
diff --git a/library/cpp/actors/util/rc_buf.h b/library/cpp/actors/util/rc_buf.h
index 60d0ef904a..7b6c68d269 100644
--- a/library/cpp/actors/util/rc_buf.h
+++ b/library/cpp/actors/util/rc_buf.h
@@ -294,6 +294,13 @@ struct IContiguousChunk : TThrRefBase {
return GetDataMut();
}
+ /**
+ * Should return true if GetDataMut() would not copy contents when called.
+ */
+ virtual bool IsPrivate() const {
+ return true;
+ }
+
virtual size_t GetOccupiedMemorySize() const = 0;
};
@@ -434,8 +441,12 @@ class TRcBuf {
using T = std::decay_t<decltype(value)>;
if constexpr (std::is_same_v<T, NActors::TSharedData> || std::is_same_v<T, TInternalBackend>) {
return value.IsPrivate();
+ } else if constexpr (std::is_same_v<T, TString>) {
+ return value.IsDetached();
+ } else if constexpr (std::is_same_v<T, IContiguousChunk::TPtr>) {
+ return value.RefCount() == 1 && value->IsPrivate();
} else {
- return false;
+ static_assert(TDependentFalse<T>);
}
});
}
@@ -446,14 +457,12 @@ class TRcBuf {
}
return Visit(Owner, [](EType, auto& value) -> TContiguousSpan {
using T = std::decay_t<decltype(value)>;
- if constexpr (std::is_same_v<T, TString>) {
- return {&(*value.cbegin()), value.size()};
- } else if constexpr (std::is_same_v<T, NActors::TSharedData> || std::is_same_v<T, TInternalBackend>) {
+ if constexpr (std::is_same_v<T, TString> || std::is_same_v<T, NActors::TSharedData> || std::is_same_v<T, TInternalBackend>) {
return {value.data(), value.size()};
} else if constexpr (std::is_same_v<T, IContiguousChunk::TPtr>) {
return value->GetData();
} else {
- return {};
+ static_assert(TDependentFalse<T>, "unexpected type");
}
});
}
@@ -479,7 +488,7 @@ class TRcBuf {
} else if constexpr (std::is_same_v<T, IContiguousChunk::TPtr>) {
return value->GetDataMut();
} else {
- return {};
+ static_assert(TDependentFalse<T>, "unexpected type");
}
});
}
@@ -497,7 +506,7 @@ class TRcBuf {
} else if constexpr (std::is_same_v<T, IContiguousChunk::TPtr>) {
return value->UnsafeGetDataMut();
} else {
- return {};
+ static_assert(TDependentFalse<T>, "unexpected type");
}
});
}
@@ -515,7 +524,7 @@ class TRcBuf {
} else if constexpr (std::is_same_v<T, IContiguousChunk::TPtr>) {
return value->GetOccupiedMemorySize();
} else {
- Y_FAIL();
+ static_assert(TDependentFalse<T>, "unexpected type");
}
});
}
@@ -582,28 +591,26 @@ class TRcBuf {
return false;
}
- template <class TResult>
- TResult GetRaw() const {
+ template <typename TResult, typename TCallback>
+ std::invoke_result_t<TCallback, const TResult*> ApplySpecificValue(TCallback&& callback) const {
+ static_assert(std::is_same_v<TResult, TString> ||
+ std::is_same_v<TResult, NActors::TSharedData> ||
+ std::is_same_v<TResult, TInternalBackend> ||
+ std::is_same_v<TResult, IContiguousChunk::TPtr>);
+
if (!Owner) {
- return TResult{};
+ return callback(nullptr);
}
- return Visit(Owner, [](EType, auto& value) {
+ return Visit(Owner, [&](EType, auto& value) {
using T = std::decay_t<decltype(value)>;
if constexpr (std::is_same_v<T, TResult>) {
- return value;
+ return callback(&value);
} else {
- Y_FAIL();
- return TResult{}; // unreachable
+ return callback(nullptr);
}
});
}
- NActors::TSharedData GetRawTrimmed(size_t size) const {
- NActors::TSharedData result = GetRaw<NActors::TSharedData>();
- result.TrimBack(size);
- return result;
- }
-
explicit operator bool() const {
return static_cast<bool>(Owner);
}
@@ -845,28 +852,6 @@ public:
return Backend.ContainsNativeType<TType>();
}
- template <class TResult>
- TResult GetRaw() const {
- return Backend.GetRaw<TResult>();
- }
-
- NActors::TSharedData GetRawTrimmed(size_t size) const {
- return Backend.GetRawTrimmed(size);
- }
-
- bool ReferencesWholeContainer() const {
- return Backend.GetData().size() == GetSize();
- }
-
-
- bool ReferencesTrimableToWholeContainer() const {
- if (ContainsNativeType<NActors::TSharedData>()) {
- return Backend.GetData().size() == (GetSize() + UnsafeTailroom());
- } else {
- return ReferencesWholeContainer();
- }
- }
-
bool CanGrowFront() const noexcept {
return Backend.CanGrowFront(Begin);
}
@@ -891,14 +876,20 @@ public:
return Begin;
}
- char* GetDataMut() {
- const char* oldBegin = Backend.GetData().data();
- ptrdiff_t offset = Begin - oldBegin;
- size_t size = GetSize();
- char* newBegin = Backend.GetDataMut().data();
- Begin = newBegin + offset;
- End = Begin + size;
- return newBegin + offset;
+ char* GetDataMut(size_t headroom = 0, size_t tailroom = 0) {
+ const TContiguousSpan backendData = Backend.GetData();
+ if (IsPrivate() || (backendData.data() == GetData() && backendData.size() == GetSize())) { // if we own container or reference it whole
+ const char* oldBegin = backendData.data();
+ ptrdiff_t offset = Begin - oldBegin;
+ size_t size = GetSize();
+ char* newBegin = Backend.GetDataMut().data();
+ Begin = newBegin + offset;
+ End = Begin + size;
+ return newBegin + offset;
+ } else { // make a copy of referenced data
+ *this = Copy(GetContiguousSpan(), headroom, tailroom);
+ return Backend.GetDataMut().data();
+ }
}
char* UnsafeGetDataMut() {
@@ -913,18 +904,30 @@ public:
template <class TResult>
TResult ExtractUnderlyingContainerOrCopy() const {
- if (ContainsNativeType<TResult>() && (ReferencesWholeContainer() || ReferencesTrimableToWholeContainer())) {
- using T = std::decay_t<TResult>;
- if constexpr (std::is_same_v<T, NActors::TSharedData>) {
- return GetRawTrimmed(GetSize());
- } else {
- return GetRaw<TResult>();
+ static_assert(std::is_same_v<TResult, TString> ||
+ std::is_same_v<TResult, NActors::TSharedData> ||
+ std::is_same_v<TResult, TInternalBackend>);
+
+ constexpr bool isSharedData = std::is_same_v<TResult, NActors::TSharedData>;
+ TResult res;
+
+ const bool found = Backend.ApplySpecificValue<TResult>([&](const TResult *raw) {
+ if (raw && raw->data() == Begin && (isSharedData ? End <= Begin + raw->size() : End == Begin + raw->size())) {
+ if constexpr (isSharedData) {
+ raw->TrimBack(size());
+ }
+ res = TResult(*raw);
+ return true;
}
+ return false;
+ });
+
+ if (!found) {
+ res = TResult::Uninitialized(GetSize());
+ char* data = NContiguousDataDetails::TContainerTraits<TResult>::UnsafeGetDataMut(res);
+ std::memcpy(data, GetData(), GetSize());
}
- TResult res = TResult::Uninitialized(GetSize());
- char* data = NContiguousDataDetails::TContainerTraits<TResult>::UnsafeGetDataMut(res);
- std::memcpy(data, Begin, End - Begin);
return res;
}
@@ -932,7 +935,7 @@ public:
return {GetData(), GetSize()};
}
- TStringBuf Slice(size_t pos = 0, size_t len = -1) const noexcept {
+ TStringBuf Slice(size_t pos = 0, size_t len = Max<size_t>()) const noexcept {
pos = Min(pos, size());
len = Min(len, size() - pos);
return {const_cast<TRcBuf*>(this)->UnsafeGetDataMut() + pos, len};
@@ -1078,6 +1081,10 @@ public:
return GetDataMut();
}
+ bool IsPrivate() const {
+ return Backend.IsPrivate();
+ }
+
size_t UnsafeHeadroom() const {
return Begin - Backend.GetData().data();
}
diff --git a/library/cpp/actors/util/rope.cpp b/library/cpp/actors/util/rope.cpp
new file mode 100644
index 0000000000..0927774099
--- /dev/null
+++ b/library/cpp/actors/util/rope.cpp
@@ -0,0 +1,13 @@
+#include "rope.h"
+#include <library/cpp/containers/absl_flat_hash/flat_hash_set.h>
+
+size_t TRope::GetOccupiedMemorySize() const {
+ size_t res = 0;
+ absl::flat_hash_set<const void*> chunks;
+ for (const auto& chunk : Chain) {
+ if (const auto [it, inserted] = chunks.insert(chunk.Backend.UniqueId()); inserted) {
+ res += chunk.Backend.GetOccupiedMemorySize();
+ }
+ }
+ return res;
+}
diff --git a/library/cpp/actors/util/rope.h b/library/cpp/actors/util/rope.h
index 3c65588181..201ce06f0d 100644
--- a/library/cpp/actors/util/rope.h
+++ b/library/cpp/actors/util/rope.h
@@ -455,6 +455,10 @@ public:
return !Size;
}
+ bool empty() const {
+ return IsEmpty();
+ }
+
operator bool() const {
return Chain;
}
@@ -699,10 +703,7 @@ public:
// Use this method carefully -- it may significantly reduce performance when misused.
TString ConvertToString() const {
- // TODO(innokentii): could be microoptimized for single TString case
- TString res = TString::Uninitialized(GetSize());
- Begin().ExtractPlainDataAndAdvance(res.Detach(), res.size());
- return res;
+ return ExtractUnderlyingContainerOrCopy<TString>();
}
/**
@@ -710,14 +711,14 @@ public:
*/
template <class TResult>
TResult ExtractUnderlyingContainerOrCopy() const {
- if (IsContiguous() && GetSize() != 0) {
- const auto& chunk = Begin().GetChunk();
- return chunk.ExtractUnderlyingContainerOrCopy<TResult>();
+ if (Chain.begin() != Chain.end() && ++Chain.begin() == Chain.end()) {
+ return Chain.GetFirstChunk().ExtractUnderlyingContainerOrCopy<TResult>();
}
- TResult res = TResult::Uninitialized(GetSize());
+ const size_t size = GetSize();
+ TResult res = TResult::Uninitialized(size);
char* data = NContiguousDataDetails::TContainerTraits<TResult>::UnsafeGetDataMut(res);
- Begin().ExtractPlainDataAndAdvance(data, res.size());
+ Begin().ExtractPlainDataAndAdvance(data, size);
return res;
}
@@ -805,6 +806,8 @@ public:
return TRcBuf(Begin().GetChunk());
}
+ size_t GetOccupiedMemorySize() const;
+
friend bool operator==(const TRope& x, const TRope& y) { return Compare(x, y) == 0; }
friend bool operator!=(const TRope& x, const TRope& y) { return Compare(x, y) != 0; }
friend bool operator< (const TRope& x, const TRope& y) { return Compare(x, y) < 0; }
diff --git a/library/cpp/actors/util/shared_data_rope_backend.h b/library/cpp/actors/util/shared_data_rope_backend.h
index 2abfcf5584..a221ae668b 100644
--- a/library/cpp/actors/util/shared_data_rope_backend.h
+++ b/library/cpp/actors/util/shared_data_rope_backend.h
@@ -29,6 +29,10 @@ public:
return {const_cast<char *>(Buffer.data()), Buffer.size()};
}
+ bool IsPrivate() const override {
+ return Buffer.IsPrivate();
+ }
+
size_t GetOccupiedMemorySize() const override {
return Buffer.size();
}
diff --git a/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt
index cb32e0652f..f02b2d926c 100644
--- a/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt
@@ -22,6 +22,8 @@ target_link_options(library-cpp-actors-util-ut PRIVATE
-Wl,-platform_version,macos,11.0,11.0
-fPIC
-fPIC
+ -framework
+ CoreFoundation
)
target_sources(library-cpp-actors-util-ut PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/cpu_load_log_ut.cpp
diff --git a/library/cpp/actors/util/ya.make b/library/cpp/actors/util/ya.make
index 912b55868d..48d595c156 100644
--- a/library/cpp/actors/util/ya.make
+++ b/library/cpp/actors/util/ya.make
@@ -19,6 +19,7 @@ SRCS(
memory_tracker.cpp
memory_tracker.h
recentwnd.h
+ rope.cpp
rope.h
rc_buf.cpp
rc_buf.h
@@ -37,6 +38,7 @@ SRCS(
)
PEERDIR(
+ library/cpp/containers/absl_flat_hash
library/cpp/deprecated/atomic
library/cpp/pop_count
)
diff --git a/library/cpp/disjoint_sets/CMakeLists.darwin-x86_64.txt b/library/cpp/disjoint_sets/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..83a72be4c8
--- /dev/null
+++ b/library/cpp/disjoint_sets/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-disjoint_sets)
+target_link_libraries(library-cpp-disjoint_sets PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-disjoint_sets PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/disjoint_sets/disjoint_sets.cpp
+)
diff --git a/library/cpp/disjoint_sets/CMakeLists.linux-aarch64.txt b/library/cpp/disjoint_sets/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..66c7676cda
--- /dev/null
+++ b/library/cpp/disjoint_sets/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-disjoint_sets)
+target_link_libraries(library-cpp-disjoint_sets PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-disjoint_sets PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/disjoint_sets/disjoint_sets.cpp
+)
diff --git a/library/cpp/disjoint_sets/CMakeLists.linux-x86_64.txt b/library/cpp/disjoint_sets/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..66c7676cda
--- /dev/null
+++ b/library/cpp/disjoint_sets/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,18 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-disjoint_sets)
+target_link_libraries(library-cpp-disjoint_sets PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-disjoint_sets PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/disjoint_sets/disjoint_sets.cpp
+)
diff --git a/library/cpp/disjoint_sets/CMakeLists.txt b/library/cpp/disjoint_sets/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/library/cpp/disjoint_sets/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/disjoint_sets/CMakeLists.windows-x86_64.txt b/library/cpp/disjoint_sets/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..83a72be4c8
--- /dev/null
+++ b/library/cpp/disjoint_sets/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(library-cpp-disjoint_sets)
+target_link_libraries(library-cpp-disjoint_sets PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+)
+target_sources(library-cpp-disjoint_sets PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/disjoint_sets/disjoint_sets.cpp
+)
diff --git a/library/cpp/disjoint_sets/disjoint_sets.cpp b/library/cpp/disjoint_sets/disjoint_sets.cpp
new file mode 100644
index 0000000000..5720e6c41a
--- /dev/null
+++ b/library/cpp/disjoint_sets/disjoint_sets.cpp
@@ -0,0 +1 @@
+#include "disjoint_sets.h"
diff --git a/library/cpp/disjoint_sets/disjoint_sets.h b/library/cpp/disjoint_sets/disjoint_sets.h
new file mode 100644
index 0000000000..5768886704
--- /dev/null
+++ b/library/cpp/disjoint_sets/disjoint_sets.h
@@ -0,0 +1,81 @@
+#pragma once
+
+#include <util/system/yassert.h>
+#include <util/generic/vector.h>
+
+// Implementation of disjoint-set data structure with union by rank and path compression.
+// See http://en.wikipedia.org/wiki/Disjoint-set_data_structure
+class TDisjointSets {
+public:
+ using TElement = size_t;
+
+private:
+ mutable TVector<TElement> Parents;
+ TVector<size_t> Ranks;
+ TVector<size_t> Sizes;
+ size_t NumberOfSets;
+
+public:
+ TDisjointSets(size_t setCount)
+ : Parents(setCount)
+ , Ranks(setCount, 0)
+ , Sizes(setCount, 1)
+ , NumberOfSets(setCount)
+ {
+ for (size_t i = 0; i < setCount; ++i)
+ Parents[i] = i;
+ }
+
+ TElement CanonicSetElement(TElement item) const {
+ if (Parents[item] != item)
+ Parents[item] = CanonicSetElement(Parents[item]);
+ return Parents[item];
+ }
+
+ size_t SizeOfSet(TElement item) const {
+ return Sizes[CanonicSetElement(item)];
+ }
+
+ size_t InitialSetCount() const {
+ return Parents.size();
+ }
+
+ size_t SetCount() const {
+ return NumberOfSets;
+ }
+
+ void UnionSets(TElement item1, TElement item2) {
+ TElement canonic1 = CanonicSetElement(item1);
+ TElement canonic2 = CanonicSetElement(item2);
+ if (canonic1 == canonic2)
+ return;
+
+ --NumberOfSets;
+ if (Ranks[canonic1] < Ranks[canonic2]) {
+ Parents[canonic1] = canonic2;
+ Sizes[canonic2] += Sizes[canonic1];
+ } else {
+ Parents[canonic2] = canonic1;
+ Sizes[canonic1] += Sizes[canonic2];
+ Ranks[canonic2] += Ranks[canonic1] == Ranks[canonic2] ? 1 : 0;
+ }
+ }
+
+ void Expand(size_t setCount) {
+ if (setCount < Parents.size()) {
+ return;
+ }
+
+ size_t prevSize = Parents.size();
+ Parents.resize(setCount);
+ Ranks.resize(setCount);
+ Sizes.resize(setCount);
+ NumberOfSets += setCount - prevSize;
+
+ for (size_t i = prevSize; i < setCount; ++i) {
+ Parents[i] = i;
+ Ranks[i] = 0;
+ Sizes[i] = 1;
+ }
+ }
+};
diff --git a/library/cpp/disjoint_sets/ya.make b/library/cpp/disjoint_sets/ya.make
new file mode 100644
index 0000000000..2104298baa
--- /dev/null
+++ b/library/cpp/disjoint_sets/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ disjoint_sets.cpp
+)
+
+END()
diff --git a/library/cpp/grpc/client/grpc_client_low.h b/library/cpp/grpc/client/grpc_client_low.h
index bf0f8e0f9f..037463cb78 100644
--- a/library/cpp/grpc/client/grpc_client_low.h
+++ b/library/cpp/grpc/client/grpc_client_low.h
@@ -387,16 +387,21 @@ private:
bool Replied_ = false;
};
-template<class TResponse>
-class IStreamRequestReadProcessor : public TThrRefBase {
+class IStreamRequestCtrl : public TThrRefBase {
public:
- using TPtr = TIntrusivePtr<IStreamRequestReadProcessor>;
- using TReadCallback = std::function<void(TGrpcStatus&&)>;
+ using TPtr = TIntrusivePtr<IStreamRequestCtrl>;
/**
* Asynchronously cancel the request
*/
virtual void Cancel() = 0;
+};
+
+template<class TResponse>
+class IStreamRequestReadProcessor : public IStreamRequestCtrl {
+public:
+ using TPtr = TIntrusivePtr<IStreamRequestReadProcessor>;
+ using TReadCallback = std::function<void(TGrpcStatus&&)>;
/**
* Scheduled initial server metadata read from the stream
diff --git a/library/cpp/grpc/server/grpc_request.h b/library/cpp/grpc/server/grpc_request.h
index d9871f801d..caf47e2677 100644
--- a/library/cpp/grpc/server/grpc_request.h
+++ b/library/cpp/grpc/server/grpc_request.h
@@ -201,13 +201,11 @@ public:
}
void Reply(NProtoBuf::Message* resp, ui32 status) override {
- ResponseStatus = status;
- WriteDataOk(resp);
+ WriteDataOk(resp, status);
}
void Reply(grpc::ByteBuffer* resp, ui32 status) override {
- ResponseStatus = status;
- WriteByteDataOk(resp);
+ WriteByteDataOk(resp, status);
}
void ReplyError(grpc::StatusCode code, const TString& msg, const TString& details) override {
@@ -276,7 +274,7 @@ private:
Y_VERIFY(wasInProgress, "Finished grpc call that was not in progress");
}
- void WriteDataOk(NProtoBuf::Message* resp) {
+ void WriteDataOk(NProtoBuf::Message* resp, ui32 status) {
auto makeResponseString = [&] {
TString x;
TOutProtoPrinter printer;
@@ -291,6 +289,7 @@ private:
makeResponseString().data(), this->Context.peer().c_str());
StateFunc_ = &TThis::SetFinishDone;
ResponseSize = sz;
+ ResponseStatus = status;
Y_VERIFY(this->Context.c_call());
OnBeforeCall();
Finished_ = true;
@@ -302,11 +301,12 @@ private:
// because of std::function cannot hold move-only captured object
// we allocate shared object on heap to avoid message copy
auto uResp = MakeIntrusive<TUniversalResponse<TOut>>(resp);
- auto cb = [this, uResp = std::move(uResp), sz, &makeResponseString]() {
- GRPC_LOG_DEBUG(Logger_, "[%p] issuing response Name# %s data# %s peer# %s (pushed to grpc)",
- this, Name_, makeResponseString().data(), this->Context.peer().c_str());
+ auto cb = [this, uResp = std::move(uResp), sz, status]() {
+ GRPC_LOG_DEBUG(Logger_, "[%p] issuing response Name# %s peer# %s (pushed to grpc)",
+ this, Name_, this->Context.peer().c_str());
StateFunc_ = &TThis::NextReply;
ResponseSize += sz;
+ ResponseStatus = status;
OnBeforeCall();
StreamWriter_->Write(*uResp, GetGRpcTag());
};
@@ -314,13 +314,14 @@ private:
}
}
- void WriteByteDataOk(grpc::ByteBuffer* resp) {
+ void WriteByteDataOk(grpc::ByteBuffer* resp, ui32 status) {
auto sz = resp->Length();
if (Writer_) {
GRPC_LOG_DEBUG(Logger_, "[%p] issuing response Name# %s data# byteString peer# %s", this, Name_,
this->Context.peer().c_str());
StateFunc_ = &TThis::SetFinishDone;
ResponseSize = sz;
+ ResponseStatus = status;
OnBeforeCall();
Finished_ = true;
Writer_->Finish(TUniversalResponseRef<TOut>(resp), grpc::Status::OK, GetGRpcTag());
@@ -331,11 +332,12 @@ private:
// because of std::function cannot hold move-only captured object
// we allocate shared object on heap to avoid buffer copy
auto uResp = MakeIntrusive<TUniversalResponse<TOut>>(resp);
- auto cb = [this, uResp = std::move(uResp), sz]() {
+ auto cb = [this, uResp = std::move(uResp), sz, status]() {
GRPC_LOG_DEBUG(Logger_, "[%p] issuing response Name# %s data# byteString peer# %s (pushed to grpc)",
this, Name_, this->Context.peer().c_str());
StateFunc_ = &TThis::NextReply;
ResponseSize += sz;
+ ResponseStatus = status;
OnBeforeCall();
StreamWriter_->Write(*uResp, GetGRpcTag());
};
diff --git a/ydb/core/base/CMakeLists.darwin-x86_64.txt b/ydb/core/base/CMakeLists.darwin-x86_64.txt
index b26c3a19a1..97be49a337 100644
--- a/ydb/core/base/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/base/CMakeLists.darwin-x86_64.txt
@@ -9,12 +9,6 @@
add_subdirectory(services)
add_subdirectory(ut)
add_subdirectory(ut_board_subscriber)
-get_built_tool_path(
- TOOL_enum_parser_bin
- TOOL_enum_parser_dependency
- tools/enum_parser/enum_parser
- enum_parser
-)
add_library(ydb-core-base)
target_link_libraries(ydb-core-base PUBLIC
@@ -44,7 +38,6 @@ target_link_libraries(ydb-core-base PUBLIC
api-protos-out
library-yql-minikql
cpp-deprecated-atomic
- tools-enum_parser-enum_serialization_runtime
)
target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp
@@ -62,7 +55,6 @@ target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/path.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/pathid.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/base/quoter.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/services_assert.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.cpp
@@ -83,8 +75,3 @@ target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage_grouptype.cpp
)
-generate_enum_serilization(ydb-core-base
- ${CMAKE_SOURCE_DIR}/ydb/core/base/quoter.h
- INCLUDE_HEADERS
- ydb/core/base/quoter.h
-)
diff --git a/ydb/core/base/CMakeLists.linux-aarch64.txt b/ydb/core/base/CMakeLists.linux-aarch64.txt
index 247b95949a..d5ef84e8db 100644
--- a/ydb/core/base/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/base/CMakeLists.linux-aarch64.txt
@@ -9,12 +9,6 @@
add_subdirectory(services)
add_subdirectory(ut)
add_subdirectory(ut_board_subscriber)
-get_built_tool_path(
- TOOL_enum_parser_bin
- TOOL_enum_parser_dependency
- tools/enum_parser/enum_parser
- enum_parser
-)
add_library(ydb-core-base)
target_link_libraries(ydb-core-base PUBLIC
@@ -45,7 +39,6 @@ target_link_libraries(ydb-core-base PUBLIC
api-protos-out
library-yql-minikql
cpp-deprecated-atomic
- tools-enum_parser-enum_serialization_runtime
)
target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp
@@ -63,7 +56,6 @@ target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/path.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/pathid.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/base/quoter.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/services_assert.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.cpp
@@ -84,8 +76,3 @@ target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage_grouptype.cpp
)
-generate_enum_serilization(ydb-core-base
- ${CMAKE_SOURCE_DIR}/ydb/core/base/quoter.h
- INCLUDE_HEADERS
- ydb/core/base/quoter.h
-)
diff --git a/ydb/core/base/CMakeLists.linux-x86_64.txt b/ydb/core/base/CMakeLists.linux-x86_64.txt
index 247b95949a..d5ef84e8db 100644
--- a/ydb/core/base/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/base/CMakeLists.linux-x86_64.txt
@@ -9,12 +9,6 @@
add_subdirectory(services)
add_subdirectory(ut)
add_subdirectory(ut_board_subscriber)
-get_built_tool_path(
- TOOL_enum_parser_bin
- TOOL_enum_parser_dependency
- tools/enum_parser/enum_parser
- enum_parser
-)
add_library(ydb-core-base)
target_link_libraries(ydb-core-base PUBLIC
@@ -45,7 +39,6 @@ target_link_libraries(ydb-core-base PUBLIC
api-protos-out
library-yql-minikql
cpp-deprecated-atomic
- tools-enum_parser-enum_serialization_runtime
)
target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp
@@ -63,7 +56,6 @@ target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/path.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/pathid.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/base/quoter.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/services_assert.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.cpp
@@ -84,8 +76,3 @@ target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage_grouptype.cpp
)
-generate_enum_serilization(ydb-core-base
- ${CMAKE_SOURCE_DIR}/ydb/core/base/quoter.h
- INCLUDE_HEADERS
- ydb/core/base/quoter.h
-)
diff --git a/ydb/core/base/CMakeLists.windows-x86_64.txt b/ydb/core/base/CMakeLists.windows-x86_64.txt
index b26c3a19a1..97be49a337 100644
--- a/ydb/core/base/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/base/CMakeLists.windows-x86_64.txt
@@ -9,12 +9,6 @@
add_subdirectory(services)
add_subdirectory(ut)
add_subdirectory(ut_board_subscriber)
-get_built_tool_path(
- TOOL_enum_parser_bin
- TOOL_enum_parser_dependency
- tools/enum_parser/enum_parser
- enum_parser
-)
add_library(ydb-core-base)
target_link_libraries(ydb-core-base PUBLIC
@@ -44,7 +38,6 @@ target_link_libraries(ydb-core-base PUBLIC
api-protos-out
library-yql-minikql
cpp-deprecated-atomic
- tools-enum_parser-enum_serialization_runtime
)
target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp
@@ -62,7 +55,6 @@ target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/path.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/pathid.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/base/quoter.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/services_assert.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.cpp
@@ -83,8 +75,3 @@ target_sources(ydb-core-base PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.cpp
${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage_grouptype.cpp
)
-generate_enum_serilization(ydb-core-base
- ${CMAKE_SOURCE_DIR}/ydb/core/base/quoter.h
- INCLUDE_HEADERS
- ydb/core/base/quoter.h
-)
diff --git a/ydb/core/base/appdata.h b/ydb/core/base/appdata.h
index dc2b02faa2..eb72ebea57 100644
--- a/ydb/core/base/appdata.h
+++ b/ydb/core/base/appdata.h
@@ -177,6 +177,9 @@ struct TAppData {
// Used to disable object deletion in schemeshard for cleanup tests
bool DisableSchemeShardCleanupOnDropForTest = false;
+ // Used to exclude indexes, cdc streams & sequences from table description on DataShards
+ bool DisableRichTableDescriptionForTest = false;
+
TMaybe<ui32> ZstdBlockSizeForTest;
// Used to disable checking nodes with sys tablets only in cms
@@ -188,6 +191,8 @@ struct TAppData {
TString ClusterName;
+ bool YamlConfigEnabled = false;
+
TAppData(
ui32 sysPoolId, ui32 userPoolId, ui32 ioPoolId, ui32 batchPoolId,
TMap<TString, ui32> servicePools,
diff --git a/ydb/core/base/blobstorage.h b/ydb/core/base/blobstorage.h
index b9ccac7686..b8ff78474b 100644
--- a/ydb/core/base/blobstorage.h
+++ b/ydb/core/base/blobstorage.h
@@ -1194,7 +1194,7 @@ struct TEvBlobStorage {
TLogoBlobID Id;
ui32 Shift;
ui32 RequestedSize;
- TString Buffer;
+ TRope Buffer;
TVector<TPartMapItem> PartMap;
bool Keep = false;
bool DoNotKeep = false;
@@ -1245,7 +1245,7 @@ struct TEvBlobStorage {
str << " RequestedSize# " << response.RequestedSize;
}
if (isFull) {
- str << " Buffer# " << response.Buffer.Quote();
+ str << " Buffer# " << response.Buffer.ConvertToString().Quote();
}
str << "}";
if (ErrorReason.size()) {
diff --git a/ydb/core/base/board_lookup.cpp b/ydb/core/base/board_lookup.cpp
index fc1e0f5fb2..c453dc754b 100644
--- a/ydb/core/base/board_lookup.cpp
+++ b/ydb/core/base/board_lookup.cpp
@@ -27,6 +27,7 @@ class TBoardLookupActor : public TActorBootstrapped<TBoardLookupActor> {
const EBoardLookupMode Mode;
const ui32 StateStorageGroupId;
const bool Subscriber;
+ TBoardRetrySettings BoardRetrySettings;
static constexpr int MAX_REPLICAS_COUNT_EXP = 32; // Replicas.size() <= 2**MAX_REPLICAS_COUNT_EXP
@@ -59,7 +60,7 @@ class TBoardLookupActor : public TActorBootstrapped<TBoardLookupActor> {
bool IsScheduled = false;
ui32 ReconnectNumber = 0;
NMonotonic::TMonotonic LastReconnectAt = TMonotonic::Zero();
- TDuration CurrentDelay = TDuration::MilliSeconds(100);
+ TDuration CurrentDelay = TDuration::Zero();
};
TVector<TReplica> Replicas;
@@ -69,13 +70,20 @@ class TBoardLookupActor : public TActorBootstrapped<TBoardLookupActor> {
ui32 WaitForReplicasToSuccess;
+ const TDuration& GetCurrentDelay(TReplica& replica) {
+ if (replica.CurrentDelay == TDuration::Zero()) {
+ replica.CurrentDelay = BoardRetrySettings.StartDelayMs;
+ }
+ return replica.CurrentDelay;
+ }
+
TDuration GetReconnectDelayForReplica(TReplica& replica) {
auto newDelay = replica.CurrentDelay;
newDelay *= 2;
- if (newDelay > TDuration::Seconds(5)) {
- newDelay = TDuration::Seconds(5);
+ if (newDelay > BoardRetrySettings.MaxDelayMs) {
+ newDelay = BoardRetrySettings.MaxDelayMs;
}
- newDelay *= AppData()->RandomProvider->Uniform(100, 115);
+ newDelay *= AppData()->RandomProvider->Uniform(50, 200);
newDelay /= 100;
replica.CurrentDelay = newDelay;
return replica.CurrentDelay;
@@ -402,7 +410,7 @@ class TBoardLookupActor : public TActorBootstrapped<TBoardLookupActor> {
CheckCompletion();
}
- void ReconnectReplica(ui32 replicaIdx) {
+ void ReconnectReplica(ui32 replicaIdx, bool fromReconnect = false) {
auto& replica = Replicas[replicaIdx];
if (!Subscriber) {
@@ -413,12 +421,20 @@ class TBoardLookupActor : public TActorBootstrapped<TBoardLookupActor> {
}
auto now = TlsActivationContext->Monotonic();
- if (now - replica.LastReconnectAt < replica.CurrentDelay) {
+ if (now - replica.LastReconnectAt < GetCurrentDelay(replica)) {
auto at = replica.LastReconnectAt + GetReconnectDelayForReplica(replica);
replica.IsScheduled = true;
Schedule(at - now, new TEvPrivate::TEvReconnectReplicas(replicaIdx));
return;
}
+ if (!fromReconnect) {
+ auto delay = TDuration::Seconds(1);
+ delay *= AppData()->RandomProvider->Uniform(10, 200);
+ delay /= 100;
+ replica.IsScheduled = true;
+ Schedule(delay, new TEvPrivate::TEvReconnectReplicas(replicaIdx));
+ return;
+ }
replica.ReconnectNumber++;
replica.State = EReplicaState::Reconnect;
@@ -433,7 +449,7 @@ class TBoardLookupActor : public TActorBootstrapped<TBoardLookupActor> {
void Handle(TEvPrivate::TEvReconnectReplicas::TPtr& ev) {
const auto& idx = ev->Get()->ReplicaIdx;
Replicas[idx].IsScheduled = false;
- ReconnectReplica(idx);
+ ReconnectReplica(idx, true);
}
std::pair<ui64, ui64> DecodeCookie(ui64 cookie) {
@@ -477,12 +493,15 @@ public:
return NKikimrServices::TActivity::BOARD_LOOKUP_ACTOR;
}
- TBoardLookupActor(const TString &path, TActorId owner, EBoardLookupMode mode, ui32 groupId)
+ TBoardLookupActor(
+ const TString &path, TActorId owner, EBoardLookupMode mode, ui32 groupId,
+ TBoardRetrySettings boardRetrySettings)
: Path(path)
, Owner(owner)
, Mode(mode)
, StateStorageGroupId(groupId)
, Subscriber(Mode == EBoardLookupMode::Subscription)
+ , BoardRetrySettings(std::move(boardRetrySettings))
{}
void Bootstrap() {
@@ -524,8 +543,10 @@ public:
}
};
-IActor* CreateBoardLookupActor(const TString &path, const TActorId &owner, ui32 groupId, EBoardLookupMode mode) {
- return new TBoardLookupActor(path, owner, mode, groupId);
+IActor* CreateBoardLookupActor(
+ const TString &path, const TActorId &owner, ui32 groupId, EBoardLookupMode mode,
+ TBoardRetrySettings boardRetrySettings) {
+ return new TBoardLookupActor(path, owner, mode, groupId, std::move(boardRetrySettings));
}
}
diff --git a/ydb/core/base/board_publish.cpp b/ydb/core/base/board_publish.cpp
index 8b73b4ad40..c808bb0326 100644
--- a/ydb/core/base/board_publish.cpp
+++ b/ydb/core/base/board_publish.cpp
@@ -100,10 +100,11 @@ class TBoardPublishActor : public TActorBootstrapped<TBoardPublishActor> {
const ui32 StateStorageGroupId;
const ui32 TtlMs;
const bool Register;
+ const TBoardRetrySettings BoardRetrySettings;
struct TRetryState {
NMonotonic::TMonotonic LastRetryAt = TMonotonic::Zero();
- TDuration CurrentDelay = TDuration::MilliSeconds(100);
+ TDuration CurrentDelay = TDuration::Zero();
};
struct TReplicaPublishActorState {
@@ -113,13 +114,20 @@ class TBoardPublishActor : public TActorBootstrapped<TBoardPublishActor> {
THashMap<TActorId, TReplicaPublishActorState> ReplicaPublishActors; // replica -> publish actor
+ const TDuration& GetCurrentDelay(TRetryState& state) {
+ if (state.CurrentDelay == TDuration::Zero()) {
+ state.CurrentDelay = BoardRetrySettings.StartDelayMs;
+ }
+ return state.CurrentDelay;
+ }
+
TDuration GetRetryDelay(TRetryState& state) {
auto newDelay = state.CurrentDelay;
newDelay *= 2;
- if (newDelay > TDuration::Seconds(1)) {
- newDelay = TDuration::Seconds(1);
+ if (newDelay > BoardRetrySettings.MaxDelayMs) {
+ newDelay = BoardRetrySettings.MaxDelayMs;
}
- newDelay *= AppData()->RandomProvider->Uniform(10, 200);
+ newDelay *= AppData()->RandomProvider->Uniform(50, 200);
newDelay /= 100;
state.CurrentDelay = newDelay;
return state.CurrentDelay;
@@ -183,7 +191,7 @@ class TBoardPublishActor : public TActorBootstrapped<TBoardPublishActor> {
const TActorId replica = ev->Get()->Replica;
auto& retryState = ReplicaPublishActors[replica].RetryState;
- if (now - retryState.LastRetryAt < retryState.CurrentDelay) {
+ if (now - retryState.LastRetryAt < GetCurrentDelay(retryState)) {
auto at = retryState.LastRetryAt + GetRetryDelay(retryState);
Schedule(at - now, new TEvPrivate::TEvRetryPublishActor(replica));
return;
@@ -196,11 +204,19 @@ class TBoardPublishActor : public TActorBootstrapped<TBoardPublishActor> {
void Handle(TEvPrivate::TEvRetryPublishActor::TPtr &ev) {
const auto& replica = ev->Get()->Replica;
- RetryReplica(replica);
+ RetryReplica(replica, true);
}
- void RetryReplica(const TActorId& replica) {
+ void RetryReplica(const TActorId& replica, bool fromRetry = false) {
+ if (!fromRetry) {
+ auto delay = TDuration::Seconds(2);
+ delay *= AppData()->RandomProvider->Uniform(50, 200);
+ delay /= 100;
+ Schedule(delay, new TEvPrivate::TEvRetryPublishActor(replica));
+ return;
+ }
+
auto replicaPublishActorsIt = ReplicaPublishActors.find(replica);
if (replicaPublishActorsIt == ReplicaPublishActors.end()) {
return;
@@ -221,13 +237,16 @@ public:
return NKikimrServices::TActivity::BOARD_PUBLISH_ACTOR;
}
- TBoardPublishActor(const TString &path, const TString &payload, const TActorId &owner, ui32 groupId, ui32 ttlMs, bool reg)
+ TBoardPublishActor(
+ const TString &path, const TString &payload, const TActorId &owner, ui32 groupId, ui32 ttlMs, bool reg,
+ TBoardRetrySettings boardRetrySettings)
: Path(path)
, Payload(payload)
, Owner(owner)
, StateStorageGroupId(groupId)
, TtlMs(ttlMs)
, Register(reg)
+ , BoardRetrySettings(std::move(boardRetrySettings))
{
Y_UNUSED(TtlMs);
Y_UNUSED(Register);
@@ -257,8 +276,10 @@ public:
}
};
-IActor* CreateBoardPublishActor(const TString &path, const TString &payload, const TActorId &owner, ui32 groupId, ui32 ttlMs, bool reg) {
- return new TBoardPublishActor(path, payload, owner, groupId, ttlMs, reg);
+IActor* CreateBoardPublishActor(
+ const TString &path, const TString &payload, const TActorId &owner, ui32 groupId, ui32 ttlMs, bool reg,
+ TBoardRetrySettings boardRetrySettings) {
+ return new TBoardPublishActor(path, payload, owner, groupId, ttlMs, reg, std::move(boardRetrySettings));
}
TString MakeEndpointsBoardPath(const TString &database) {
diff --git a/ydb/core/base/events.h b/ydb/core/base/events.h
index fd7b78ff2b..ce0ee341e9 100644
--- a/ydb/core/base/events.h
+++ b/ydb/core/base/events.h
@@ -98,7 +98,7 @@ struct TKikimrEvents : TEvents {
ES_IAM_SERVICE,
ES_FOLDER_SERVICE,
ES_GRPC_MON,
- ES_QUOTA,
+ ES_QUOTA, // must be in sync with ydb/core/quoter/public/quoter.h
ES_COORDINATED_QUOTA,
ES_ACCESS_SERVICE,
ES_USER_ACCOUNT_SERVICE,
diff --git a/ydb/core/base/memobserver.h b/ydb/core/base/memobserver.h
new file mode 100644
index 0000000000..033fc6aa57
--- /dev/null
+++ b/ydb/core/base/memobserver.h
@@ -0,0 +1,51 @@
+#pragma once
+
+#include "defs.h"
+
+namespace NKikimr {
+
+class TMemObserver : public TThrRefBase {
+public:
+ struct TMemStat {
+ ui64 Used;
+ ui64 HardLimit;
+ ui64 SoftLimit;
+ };
+
+ using TCallback = std::function<void()>;
+
+ void Subscribe(TCallback callback) {
+ auto guard = Guard(Mutex);
+ Callbacks.push_back(std::move(callback));
+ }
+
+ void SetStat(TMemStat stat) {
+ auto guard = Guard(Mutex);
+ Stat = stat;
+ }
+
+ void NotifyStat(TMemStat stat) {
+ TVector<TCallback> copy;
+ {
+ auto guard = Guard(Mutex);
+ copy = Callbacks;
+ Stat = stat;
+ }
+
+ for (const auto &c : copy) {
+ c();
+ }
+ }
+
+ TMemStat GetStat() {
+ auto guard = Guard(Mutex);
+ return Stat;
+ }
+
+private:
+ TVector<TCallback> Callbacks;
+ TMutex Mutex;
+ TMemStat Stat;
+};
+
+}
diff --git a/ydb/core/base/nameservice.h b/ydb/core/base/nameservice.h
index dc023bc8ac..9066abffaa 100644
--- a/ydb/core/base/nameservice.h
+++ b/ydb/core/base/nameservice.h
@@ -7,6 +7,7 @@ namespace NKikimr {
struct TDynamicNameserviceConfig : public TThrRefBase {
ui32 MaxStaticNodeId;
ui32 MaxDynamicNodeId;
+ ui32 MinDynamicNodeId;
};
} // NKikimr
diff --git a/ydb/core/base/statestorage.h b/ydb/core/base/statestorage.h
index 261477786e..38b6babefd 100644
--- a/ydb/core/base/statestorage.h
+++ b/ydb/core/base/statestorage.h
@@ -540,6 +540,11 @@ enum class EBoardLookupMode {
Subscription,
};
+struct TBoardRetrySettings {
+ TDuration StartDelayMs = TDuration::MilliSeconds(2000);
+ TDuration MaxDelayMs = TDuration::MilliSeconds(5000);
+};
+
TIntrusivePtr<TStateStorageInfo> BuildStateStorageInfo(char (&namePrefix)[TActorId::MaxServiceIDLength], const NKikimrConfig::TDomainsConfig::TStateStorage& config);
void BuildStateStorageInfos(const NKikimrConfig::TDomainsConfig::TStateStorage& config,
TIntrusivePtr<TStateStorageInfo> &stateStorageInfo,
@@ -556,8 +561,12 @@ IActor* CreateStateStorageTabletGuardian(ui64 tabletId, const TActorId &leader,
IActor* CreateStateStorageFollowerGuardian(ui64 tabletId, const TActorId &follower); // created as followerCandidate
IActor* CreateStateStorageBoardReplica(const TIntrusivePtr<TStateStorageInfo> &, ui32);
IActor* CreateSchemeBoardReplica(const TIntrusivePtr<TStateStorageInfo>&, ui32);
-IActor* CreateBoardLookupActor(const TString &path, const TActorId &owner, ui32 groupId, EBoardLookupMode mode);
-IActor* CreateBoardPublishActor(const TString &path, const TString &payload, const TActorId &owner, ui32 groupId, ui32 ttlMs, bool reg);
+IActor* CreateBoardLookupActor(
+ const TString &path, const TActorId &owner, ui32 groupId, EBoardLookupMode mode,
+ TBoardRetrySettings boardRetrySettings = {});
+IActor* CreateBoardPublishActor(
+ const TString &path, const TString &payload, const TActorId &owner, ui32 groupId, ui32 ttlMs, bool reg,
+ TBoardRetrySettings boardRetrySettings = {});
TString MakeEndpointsBoardPath(const TString &database);
diff --git a/ydb/core/base/ya.make b/ydb/core/base/ya.make
index e6e2fe75a0..664180b0d5 100644
--- a/ydb/core/base/ya.make
+++ b/ydb/core/base/ya.make
@@ -34,13 +34,12 @@ SRCS(
location.h
logoblob.cpp
logoblob.h
+ memobserver.h
nameservice.h
path.cpp
pathid.cpp
pool_stats_collector.cpp
pool_stats_collector.h
- quoter.cpp
- quoter.h
resource_profile.h
row_version.cpp
row_version.h
@@ -78,7 +77,6 @@ SRCS(
tx_processing.cpp
user_registry.h
blobstorage_grouptype.cpp
- wilson.h
)
PEERDIR(
@@ -108,8 +106,6 @@ PEERDIR(
library/cpp/deprecated/atomic
)
-GENERATE_ENUM_SERIALIZATION(quoter.h)
-
END()
RECURSE_FOR_TESTS(
diff --git a/ydb/core/blob_depot/agent/agent_impl.h b/ydb/core/blob_depot/agent/agent_impl.h
index 1620172c25..7509890e00 100644
--- a/ydb/core/blob_depot/agent/agent_impl.h
+++ b/ydb/core/blob_depot/agent/agent_impl.h
@@ -149,6 +149,34 @@ namespace NKikimr::NBlobDepot {
void RegisterRequestInFlight(TRequestInFlight *requestInFlight);
};
+ struct TReadOutcome {
+ struct TOk {
+ TRope Data;
+ };
+ struct TNodata {
+ };
+ struct TError {
+ NKikimrProto::EReplyStatus Status;
+ TString ErrorReason;
+ };
+ std::variant<TOk, TNodata, TError> Value;
+
+ TString ToString() const {
+ return std::visit(TOverloaded{
+ [](const TOk& value) {
+ return TStringBuilder() << "{Ok Data.size# " << value.Data.size() << "}";
+ },
+ [](const TNodata& /*value*/) {
+ return TStringBuilder() << "{Nodata}";
+ },
+ [](const TError& value) {
+ return TStringBuilder() << "{Error Status# " << NKikimrProto::EReplyStatus_Name(value.Status)
+ << " ErrorReason# " << value.ErrorReason.Quote() << "}";
+ }
+ }, Value);
+ }
+ };
+
class TBlobDepotAgent
: public TActorBootstrapped<TBlobDepotAgent>
, public TRequestSender
@@ -342,7 +370,7 @@ namespace NKikimr::NBlobDepot {
virtual void Initiate() = 0;
virtual void OnUpdateBlock() {}
- virtual void OnRead(ui64 /*tag*/, NKikimrProto::EReplyStatus /*status*/, TString /*dataOrErrorReason*/) {}
+ virtual void OnRead(ui64 /*tag*/, TReadOutcome&& /*outcome*/) {}
virtual void OnIdAllocated(bool /*success*/) {}
virtual void OnDestroy(bool /*success*/) {}
diff --git a/ydb/core/blob_depot/agent/defs.h b/ydb/core/blob_depot/agent/defs.h
index 09f2cba7af..774204b591 100644
--- a/ydb/core/blob_depot/agent/defs.h
+++ b/ydb/core/blob_depot/agent/defs.h
@@ -6,6 +6,7 @@
#include <ydb/core/blob_depot/types.h>
#include <ydb/core/blobstorage/vdisk/common/vdisk_events.h>
+#include <ydb/core/util/fragmented_buffer.h>
#include <ydb/core/util/stlog.h>
#include <util/generic/hash_multi_map.h>
diff --git a/ydb/core/blob_depot/agent/read.cpp b/ydb/core/blob_depot/agent/read.cpp
index f577a74bfb..e3c793a1ed 100644
--- a/ydb/core/blob_depot/agent/read.cpp
+++ b/ydb/core/blob_depot/agent/read.cpp
@@ -8,7 +8,7 @@ namespace NKikimr::NBlobDepot {
{
TReadArg ReadArg;
const ui64 Size;
- TString Buffer;
+ TFragmentedBuffer Buffer;
bool Terminated = false;
bool StopProcessingParts = false;
ui32 NumPartsPending = 0;
@@ -25,20 +25,22 @@ namespace NKikimr::NBlobDepot {
void EndWithSuccess(TQuery *query) {
Y_VERIFY(!Terminated);
- query->OnRead(ReadArg.Tag, NKikimrProto::OK, std::move(Buffer));
+ Y_VERIFY(Buffer.IsMonolith());
+ Y_VERIFY(Buffer.GetMonolith().size() == Size);
+ query->OnRead(ReadArg.Tag, TReadOutcome{TReadOutcome::TOk{Buffer.GetMonolith()}});
Abort();
}
void EndWithError(TQuery *query, NKikimrProto::EReplyStatus status, TString errorReason) {
Y_VERIFY(!Terminated);
Y_VERIFY(status != NKikimrProto::NODATA && status != NKikimrProto::OK);
- query->OnRead(ReadArg.Tag, status, errorReason);
+ query->OnRead(ReadArg.Tag, TReadOutcome{TReadOutcome::TError{status, std::move(errorReason)}});
Abort();
}
void EndWithNoData(TQuery *query) {
Y_VERIFY(!Terminated);
- query->OnRead(ReadArg.Tag, NKikimrProto::NODATA, {});
+ query->OnRead(ReadArg.Tag, TReadOutcome{TReadOutcome::TNodata{}});
Abort();
}
@@ -188,20 +190,9 @@ namespace NKikimr::NBlobDepot {
return readContext.EndWithError(this, blob.Status, TStringBuilder() << "failed to read BlobId# " << blob.Id);
}
- auto& buffer = readContext.Buffer;
const ui64 offset = partContext.Offsets[i];
-
Y_VERIFY(offset < readContext.Size && blob.Buffer.size() <= readContext.Size - offset);
-
- if (!buffer && !offset) {
- buffer = std::move(blob.Buffer);
- buffer.resize(readContext.Size);
- } else {
- if (!buffer) {
- buffer = TString::Uninitialized(readContext.Size);
- }
- memcpy(buffer.Detach() + offset, blob.Buffer.data(), blob.Buffer.size());
- }
+ readContext.Buffer.Write(offset, std::move(blob.Buffer));
}
if (!--readContext.NumPartsPending) {
diff --git a/ydb/core/blob_depot/agent/storage_discover.cpp b/ydb/core/blob_depot/agent/storage_discover.cpp
index da5deaf459..9e5c29c97b 100644
--- a/ydb/core/blob_depot/agent/storage_discover.cpp
+++ b/ydb/core/blob_depot/agent/storage_discover.cpp
@@ -146,31 +146,28 @@ namespace NKikimr::NBlobDepot {
}
}
- void OnRead(ui64 /*tag*/, NKikimrProto::EReplyStatus status, TString dataOrErrorReason) override {
+ void OnRead(ui64 /*tag*/, TReadOutcome&& outcome) override {
STLOG(PRI_DEBUG, BLOB_DEPOT_AGENT, BDA20, "OnRead", (AgentId, Agent.LogId),
- (QueryId, GetQueryId()), (Status, status));
+ (QueryId, GetQueryId()), (Outcome, outcome));
- switch (status) {
- case NKikimrProto::OK:
- Buffer = std::move(dataOrErrorReason);
+ std::visit(TOverloaded{
+ [&](TReadOutcome::TOk& ok) {
+ Buffer = ok.Data.ConvertToString();
DoneWithData = true;
CheckIfDone();
- break;
-
- case NKikimrProto::NODATA: {
+ },
+ [&](TReadOutcome::TNodata& /*nodata*/) {
// we are reading blob from the original group and it may be partially written -- it is totally
// okay to have some; we need to advance to the next readable blob
auto *range = Resolve.MutableItems(0)->MutableKeyRange();
range->SetEndingKey(Id.AsBinaryString());
range->ClearIncludeEnding();
IssueResolve();
- break;
+ },
+ [&](TReadOutcome::TError& error) {
+ EndWithError(error.Status, error.ErrorReason);
}
-
- default:
- EndWithError(status, std::move(dataOrErrorReason));
- break;
- }
+ }, outcome.Value);
}
void CheckIfDone() {
diff --git a/ydb/core/blob_depot/agent/storage_get.cpp b/ydb/core/blob_depot/agent/storage_get.cpp
index e09c1be28e..300e9d50dc 100644
--- a/ydb/core/blob_depot/agent/storage_get.cpp
+++ b/ydb/core/blob_depot/agent/storage_get.cpp
@@ -102,17 +102,28 @@ namespace NKikimr::NBlobDepot {
return true;
}
- void OnRead(ui64 tag, NKikimrProto::EReplyStatus status, TString buffer) override {
+ void OnRead(ui64 tag, TReadOutcome&& outcome) override {
STLOG(PRI_DEBUG, BLOB_DEPOT_AGENT, BDA35, "OnRead", (AgentId, Agent.LogId), (QueryId, GetQueryId()),
- (Tag, tag), (Status, status), (Buffer.size, status == NKikimrProto::OK ? buffer.size() : 0),
- (ErrorReason, status != NKikimrProto::OK ? buffer : ""));
+ (Tag, tag), (Outcome, outcome));
auto& resp = Response->Responses[tag];
Y_VERIFY(resp.Status == NKikimrProto::UNKNOWN);
- resp.Status = status;
- if (status == NKikimrProto::OK) {
- resp.Buffer = std::move(buffer);
- }
+ std::visit(TOverloaded{
+ [&](TReadOutcome::TOk& ok) {
+ resp.Status = NKikimrProto::OK;
+ resp.Buffer = std::move(ok.Data);
+ },
+ [&](TReadOutcome::TNodata& /*nodata*/) {
+ resp.Status = NKikimrProto::NODATA;
+ },
+ [&](TReadOutcome::TError& error) {
+ resp.Status = error.Status;
+ if (Response->ErrorReason) {
+ Response->ErrorReason += ", ";
+ }
+ Response->ErrorReason += error.ErrorReason;
+ }
+ }, outcome.Value);
--AnswersRemain;
CheckAndFinish();
}
diff --git a/ydb/core/blob_depot/agent/storage_range.cpp b/ydb/core/blob_depot/agent/storage_range.cpp
index c4a736ca96..b3072aa500 100644
--- a/ydb/core/blob_depot/agent/storage_range.cpp
+++ b/ydb/core/blob_depot/agent/storage_range.cpp
@@ -114,32 +114,35 @@ namespace NKikimr::NBlobDepot {
}
}
- void OnRead(ui64 tag, NKikimrProto::EReplyStatus status, TString dataOrErrorReason) override {
+ void OnRead(ui64 tag, TReadOutcome&& outcome) override {
--ReadsInFlight;
Y_VERIFY(tag < Reads.size());
TRead& read = Reads[tag];
- switch (status) {
- case NKikimrProto::OK: {
- Y_VERIFY(dataOrErrorReason.size() == read.Id.BlobSize());
- const bool inserted = FoundBlobs.try_emplace(read.Id, std::move(dataOrErrorReason)).second;
+ const bool success = std::visit(TOverloaded{
+ [&](TReadOutcome::TOk& ok) {
+ Y_VERIFY(ok.Data.size() == read.Id.BlobSize());
+ const bool inserted = FoundBlobs.try_emplace(read.Id, ok.Data.ConvertToString()).second;
Y_VERIFY_S(inserted, "AgentId# " << Agent.LogId << " QueryId# " << GetQueryId()
<< " duplicate BlobId# " << read.Id << " received");
- break;
- }
-
- case NKikimrProto::NODATA:
+ return true;
+ },
+ [&](TReadOutcome::TNodata& /*nodata*/) {
// this blob has just vanished since we found it in index -- may be it was partially written and
// now gone; it's okay to have this situation, not a data loss
- break;
+ return true;
+ },
+ [&](TReadOutcome::TError& error) {
+ EndWithError(error.Status, TStringBuilder() << "failed to retrieve BlobId# "
+ << read.Id << " Error# " << error.ErrorReason);
+ return false;
+ }
+ }, outcome.Value);
- default:
- return EndWithError(status, TStringBuilder() << "failed to retrieve BlobId# "
- << read.Id << " Error# " << dataOrErrorReason);
+ if (success) {
+ CheckAndFinish();
}
-
- CheckAndFinish();
}
void CheckAndFinish() {
diff --git a/ydb/core/blob_depot/assimilator.cpp b/ydb/core/blob_depot/assimilator.cpp
index dd9d4dd5df..ce05524e84 100644
--- a/ydb/core/blob_depot/assimilator.cpp
+++ b/ydb/core/blob_depot/assimilator.cpp
@@ -378,7 +378,7 @@ namespace NKikimr::NBlobDepot {
const auto blobSeqId = TBlobSeqId::FromSequentalNumber(channel.Index, Self->Executor()->Generation(), value);
const TLogoBlobID id = blobSeqId.MakeBlobId(Self->TabletID(), EBlobType::VG_DATA_BLOB, 0, resp.Id.BlobSize());
const ui64 putId = NextPutId++;
- SendToBSProxy(SelfId(), channel.GroupId, new TEvBlobStorage::TEvPut(id, resp.Buffer, TInstant::Max()), putId);
+ SendToBSProxy(SelfId(), channel.GroupId, new TEvBlobStorage::TEvPut(id, TRcBuf(resp.Buffer), TInstant::Max()), putId);
const bool inserted = channel.AssimilatedBlobsInFlight.insert(value).second; // prevent from barrier advancing
Y_VERIFY(inserted);
const bool inserted1 = PutIdToKey.try_emplace(putId, TData::TKey(resp.Id), it->first).second;
diff --git a/ydb/core/blob_depot/data_decommit.cpp b/ydb/core/blob_depot/data_decommit.cpp
index c1dda2ef7f..050845c4c9 100644
--- a/ydb/core/blob_depot/data_decommit.cpp
+++ b/ydb/core/blob_depot/data_decommit.cpp
@@ -245,7 +245,7 @@ namespace NKikimr::NBlobDepot {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// PUT QUERIES are used to store retrieved MustRestoreFirst blobs in local storage
- void IssuePut(TKey key, TString&& buffer, bool keep, bool doNotKeep) {
+ void IssuePut(TKey key, TRope&& buffer, bool keep, bool doNotKeep) {
std::vector<ui8> channels(1);
if (Self->PickChannels(NKikimrBlobDepot::TChannelKind::Data, channels)) {
TChannelInfo& channel = Self->Channels[channels.front()];
@@ -254,7 +254,7 @@ namespace NKikimr::NBlobDepot {
const TLogoBlobID id = blobSeqId.MakeBlobId(Self->TabletID(), EBlobType::VG_DATA_BLOB, 0, buffer.size());
STLOG(PRI_DEBUG, BLOB_DEPOT, BDT91, "going to TEvPut", (Id, Self->GetLogId()), (Sender, Ev->Sender),
(Cookie, Ev->Cookie), (Key, key), (BlobId, id));
- SendToBSProxy(SelfId(), channel.GroupId, new TEvBlobStorage::TEvPut(id, std::move(buffer), TInstant::Max()),
+ SendToBSProxy(SelfId(), channel.GroupId, new TEvBlobStorage::TEvPut(id, TRcBuf(buffer), TInstant::Max()),
(ui64)keep | (ui64)doNotKeep << 1);
const bool inserted = channel.AssimilatedBlobsInFlight.insert(value).second; // prevent from barrier advancing
Y_VERIFY(inserted);
diff --git a/ydb/core/blobstorage/backpressure/defs.h b/ydb/core/blobstorage/backpressure/defs.h
index 6fc9da407f..6a327bf203 100644
--- a/ydb/core/blobstorage/backpressure/defs.h
+++ b/ydb/core/blobstorage/backpressure/defs.h
@@ -10,7 +10,7 @@
#include <ydb/core/blobstorage/lwtrace_probes/blobstorage_probes.h>
#include <ydb/core/protos/blobstorage.pb.h>
#include <ydb/core/base/interconnect_channels.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <library/cpp/actors/core/interconnect.h>
#include <library/cpp/monlib/dynamic_counters/counters.h>
#include <library/cpp/actors/core/hfunc.h>
diff --git a/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-x86_64.txt
index 26ad3f0a64..8a9975fbf2 100644
--- a/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-x86_64.txt
@@ -22,6 +22,8 @@ target_link_options(ydb-core-blobstorage-crypto-ut PRIVATE
-Wl,-platform_version,macos,11.0,11.0
-fPIC
-fPIC
+ -framework
+ CoreFoundation
)
target_sources(ydb-core-blobstorage-crypto-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha_ut.cpp
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy.h b/ydb/core/blobstorage/dsproxy/dsproxy.h
index 6d06f68f79..ce7f1a2478 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy.h
+++ b/ydb/core/blobstorage/dsproxy/dsproxy.h
@@ -18,7 +18,7 @@
#include <library/cpp/actors/wilson/wilson_span.h>
#include <ydb/core/base/appdata.h>
#include <ydb/core/base/group_stat.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <library/cpp/containers/stack_vector/stack_vec.h>
#include <util/generic/hash_set.h>
@@ -596,7 +596,7 @@ void EncryptInplace(TRope& rope, ui32 offset, ui32 size, const TLogoBlobID& id,
void Decrypt(char *destination, const char *source, size_t shift, size_t sizeBytes, const TLogoBlobID &id,
const TBlobStorageGroupInfo &info);
-void DecryptInplace(TRope& rope, const TLogoBlobID& id, const TBlobStorageGroupInfo& info);
+void DecryptInplace(TRope& rope, ui32 offset, ui32 shift, ui32 size, const TLogoBlobID& id, const TBlobStorageGroupInfo& info);
IActor* CreateBlobStorageGroupRangeRequest(const TIntrusivePtr<TBlobStorageGroupInfo> &info,
const TIntrusivePtr<TGroupQueues> &state, const TActorId &source,
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_discover.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_discover.cpp
index ca296d76ad..0f97eae7b3 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_discover.cpp
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_discover.cpp
@@ -748,14 +748,14 @@ class TBlobStorageGroupDiscoverRequest : public TBlobStorageGroupRequestActor<TB
if (IsGetBlockDone) {
std::unique_ptr<TEvBlobStorage::TEvDiscoverResult> result(
new TEvBlobStorage::TEvDiscoverResult(
- response.Id, MinGeneration, response.Buffer, BlockedGen));
+ response.Id, MinGeneration, response.Buffer.ConvertToString(), BlockedGen));
A_LOG_DEBUG_S("BSD16", "Handle TEvGetResult status# OK Die. TEvDiscoverResult# "
<< result->Print(false));
SendResult(result);
return;
}
PendingResult.reset(new TEvBlobStorage::TEvDiscoverResult(response.Id, MinGeneration,
- response.Buffer, BlockedGen));
+ response.Buffer.ConvertToString(), BlockedGen));
A_LOG_DEBUG_S("BSD17", "Handle TEvGetResult status# OK"
<< " Setting pending result# " << PendingResult->ToString());
Y_VERIFY(TotalRecieved < TotalSent);
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3dc.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3dc.cpp
index 31ceba6c38..e85995a2f3 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3dc.cpp
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3dc.cpp
@@ -611,7 +611,7 @@ public:
case NKikimrProto::OK:
// okay response -- blob is read and stored in all replicas
Y_VERIFY(resp.Id == ResultBlobId);
- Buffer = resp.Buffer;
+ Buffer = resp.Buffer.ConvertToString();
GetFinished = true;
TryToSatisfyRequest();
break;
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3of4.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3of4.cpp
index 4e7ff9c2ce..40a3bf4431 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3of4.cpp
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_discover_m3of4.cpp
@@ -338,8 +338,8 @@ public:
break;
case NKikimrProto::OK:
- SendResponseAndDie(std::make_unique<TEvBlobStorage::TEvDiscoverResult>(resp.Id, MinGeneration, resp.Buffer,
- BlockedGeneration));
+ SendResponseAndDie(std::make_unique<TEvBlobStorage::TEvDiscoverResult>(resp.Id, MinGeneration,
+ resp.Buffer.ConvertToString(), BlockedGeneration));
break;
default:
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp
index 62cf2a90ff..06d43748bb 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp
@@ -70,12 +70,13 @@ namespace NKikimr {
Encrypt(destination, source, shift, sizeBytes, id, info);
}
- void DecryptInplace(TRope& rope, const TLogoBlobID& id, const TBlobStorageGroupInfo& info) {
+ void DecryptInplace(TRope& rope, ui32 offset, ui32 shift, ui32 size, const TLogoBlobID& id, const TBlobStorageGroupInfo& info) {
if (info.GetEncryptionMode() == TBlobStorageGroupInfo::EEM_NONE) {
return;
}
auto span = rope.GetContiguousSpanMut();
- Decrypt(span.data(), span.data(), 0, span.size(), id, info);
+ Y_VERIFY(offset < span.size() && size <= span.size() - offset);
+ Decrypt(span.data() + offset, span.data() + offset, shift, size, id, info);
}
} // NKikimr
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp
index ca277ffb8b..40dcb64808 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp
@@ -133,10 +133,8 @@ void TGetImpl::PrepareReply(NKikimrProto::EReplyStatus status, TString errorReas
ui32 size = query.Size ? Min(query.Size, query.Id.BlobSize() - shift) : query.Id.BlobSize() - shift;
if (!PhantomCheck) {
- TString data = TString::Uninitialized(size);
- char *dataBuffer = data.Detach();
- blobState.Whole.Data.Read(shift, dataBuffer, size);
- Decrypt(dataBuffer, dataBuffer, shift, size, query.Id, *Info);
+ TRope data = blobState.Whole.Data.Read(shift, size);
+ DecryptInplace(data, 0, shift, size, query.Id, *Info);
outResponse.Buffer = std::move(data);
Y_VERIFY(outResponse.Buffer, "%s empty response buffer", RequestPrefix.data());
ReplyBytes += outResponse.Buffer.size();
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h b/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h
index 91a0df16e0..b4dafc0339 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h
@@ -222,6 +222,12 @@ public:
if (replyStatus == NKikimrProto::OK) {
// TODO(cthulhu): Verify shift and response size, and cookie
R_LOG_DEBUG_SX(logCtx, "BPG58", "Got# OK orderNumber# " << orderNumber << " vDiskId# " << vdisk.ToString());
+ resultBuffer.Compact();
+ if (resultBuffer.GetOccupiedMemorySize() > resultBuffer.size() * 2) {
+ auto temp = TRcBuf::Uninitialized(resultBuffer.size());
+ resultBuffer.ExtractFrontPlain(temp.GetDataMut(), temp.size());
+ resultBuffer.Insert(resultBuffer.End(), std::move(temp));
+ }
Blackboard.AddResponseData(blobId, orderNumber, resultShift, std::move(resultBuffer), result.GetKeep(),
result.GetDoNotKeep());
} else if (replyStatus == NKikimrProto::NODATA) {
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp
index 8950f18d7d..01621b1fb3 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp
@@ -187,7 +187,7 @@ public:
return;
}
- Buffer = result->Responses[0].Buffer;
+ Buffer = result->Responses[0].Buffer.ConvertToString();
ApplyDiffs();
std::unique_ptr<TEvBlobStorage::TEvPut> put = std::make_unique<TEvBlobStorage::TEvPut>(PatchedId, Buffer, Deadline,
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_put.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_put.cpp
index 1b7d434371..b5ff53a6b8 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_put.cpp
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_put.cpp
@@ -389,7 +389,7 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActor<TBlobSt
}
TEvBlobStorage::TEvPut *put;
- DecryptInplace(item.Buffer, item.BlobId, *Info);
+ DecryptInplace(item.Buffer, 0, 0, item.Buffer.size(), item.BlobId, *Info);
ev->Bunch.emplace_back(new IEventHandle(
TActorId() /*recipient*/,
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_range.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_range.cpp
index d1783af11f..a3925bf52c 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_range.cpp
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_range.cpp
@@ -283,7 +283,7 @@ class TBlobStorageGroupRangeRequest : public TBlobStorageGroupRequestActor<TBlob
Y_VERIFY(response.Id == BlobsToGet[i].BlobId);
if (getResult.Responses[i].Status == NKikimrProto::OK) {
- result->Responses.emplace_back(response.Id, std::move(response.Buffer), response.Keep, response.DoNotKeep);
+ result->Responses.emplace_back(response.Id, response.Buffer.ConvertToString(), response.Keep, response.DoNotKeep);
} else if (getResult.Responses[i].Status != NKikimrProto::NODATA || BlobsToGet[i].RequiredToBePresent) {
// it's okay to get NODATA if blob wasn't confirmed -- this blob is simply thrown out of resulting
// set; otherwise we return error about lost data
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h b/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h
index 818b4ed062..92f3092bf3 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h
@@ -3,6 +3,8 @@
#include "defs.h"
#include "dsproxy_strategy_m3of4_base.h"
+#include <util/random/shuffle.h>
+
namespace NKikimr {
class TMirror3of4GetStrategy : public TMirror3of4StrategyBase {
@@ -95,6 +97,7 @@ namespace NKikimr {
}
// leave the slow group for the last query
auto pred = [](const auto *x, const auto *y) { return x->NumSlowDisks < y->NumSlowDisks; };
+ Shuffle(candidates.begin(), candidates.end());
std::stable_sort(candidates.begin(), candidates.end(), pred);
// pick the first candidate
Y_VERIFY(candidates);
diff --git a/ydb/core/blobstorage/dsproxy/mock/model.h b/ydb/core/blobstorage/dsproxy/mock/model.h
index ead4f90bb6..608b95bfaf 100644
--- a/ydb/core/blobstorage/dsproxy/mock/model.h
+++ b/ydb/core/blobstorage/dsproxy/mock/model.h
@@ -129,7 +129,8 @@ namespace NFake {
const ui32 size = Min<ui32>(maxSize, !query.Size ? Max<ui32>() : query.Size);
// calculate substring; use 0 instead of query.Shift because it may exceed the buffer
- response.Buffer = data.Buffer.ConvertToString().substr(size ? query.Shift : 0, size);
+ const ui32 offset = size ? query.Shift : 0;
+ response.Buffer = TRope(data.Buffer.Position(offset), data.Buffer.Position(offset + size));
} else {
// ensure this blob is not under GC
Y_VERIFY(!IsCollectedByBarrier(id), "Id# %s", id.ToString().data());
diff --git a/ydb/core/blobstorage/dsproxy/ut/dsproxy_get_ut.cpp b/ydb/core/blobstorage/dsproxy/ut/dsproxy_get_ut.cpp
index 59f0c116c3..638f4bc597 100644
--- a/ydb/core/blobstorage/dsproxy/ut/dsproxy_get_ut.cpp
+++ b/ydb/core/blobstorage/dsproxy/ut/dsproxy_get_ut.cpp
@@ -120,7 +120,7 @@ void TestIntervalsAndCrcAllOk(TErasureType::EErasureSpecies erasureSpecies, bool
UNIT_ASSERT_VALUES_EQUAL(a.Status, NKikimrProto::OK);
UNIT_ASSERT_VALUES_EQUAL(q.Shift, a.Shift);
UNIT_ASSERT_VALUES_EQUAL(q.Size, a.RequestedSize);
- blobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer);
+ blobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer.ConvertToString());
}
}
}
@@ -451,7 +451,7 @@ private:
UNIT_ASSERT_VALUES_EQUAL(a.Status, NKikimrProto::OK);
UNIT_ASSERT_VALUES_EQUAL(q.Shift, a.Shift);
UNIT_ASSERT_VALUES_EQUAL(q.Size, a.RequestedSize);
- BlobSet->Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer);
+ BlobSet->Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer.ConvertToString());
}
}
};
@@ -765,7 +765,7 @@ Y_UNIT_TEST(TestBlock42VGetCountWithErasure) {
if (a.Status == NKikimrProto::OK) {
UNIT_ASSERT_VALUES_EQUAL(q.Shift, a.Shift);
UNIT_ASSERT_VALUES_EQUAL(q.Size, a.RequestedSize);
- blobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer);
+ blobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer.ConvertToString());
} else {
TStringStream str;
str << " isRestore# " << isRestore
@@ -909,7 +909,7 @@ Y_UNIT_TEST(TestBlock42WipedOneDiskAndErrorDurringGet) {
if (a.Status == NKikimrProto::OK) {
UNIT_ASSERT_VALUES_EQUAL(q.Shift, a.Shift);
UNIT_ASSERT_VALUES_EQUAL(q.Size, a.RequestedSize);
- blobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer);
+ blobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer.ConvertToString());
} else {
TStringStream str;
str << " isRestore# " << isRestore
@@ -1007,7 +1007,7 @@ void TestIntervalsWipedError(TErasureType::EErasureSpecies erasureSpecies, bool
if (a.Status == NKikimrProto::OK) {
UNIT_ASSERT_VALUES_EQUAL(q.Shift, a.Shift);
UNIT_ASSERT_VALUES_EQUAL(q.Size, a.RequestedSize);
- simulator.BlobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer);
+ simulator.BlobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer.ConvertToString());
} else {
TStringStream str;
str << " isRestore# " << isRestore
@@ -1183,7 +1183,7 @@ void TestWipedErrorWithTwoBlobs(TErasureType::EErasureSpecies erasureSpecies, bo
if (a.Status == NKikimrProto::OK) {
UNIT_ASSERT_VALUES_EQUAL(q.Shift, a.Shift);
UNIT_ASSERT_VALUES_EQUAL(q.Size, a.RequestedSize);
- blobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer);
+ blobSet.Check(queryIdx % blobCount, q.Id, q.Shift, q.Size, a.Buffer.ConvertToString());
} else {
TStringStream str;
str << " isRestore# " << isRestore
@@ -1280,7 +1280,7 @@ void SpecificTest(ui32 badA, ui32 badB, ui32 blobSize, TMap<i64, i64> sizeForOff
if (a.Status == NKikimrProto::OK) {
UNIT_ASSERT_VALUES_EQUAL(qb.Shift, a.Shift);
UNIT_ASSERT_VALUES_EQUAL(qb.Size, a.RequestedSize);
- simulator.BlobSet.Check(0, qb.Id, qb.Shift, qb.Size, a.Buffer);
+ simulator.BlobSet.Check(0, qb.Id, qb.Shift, qb.Size, a.Buffer.ConvertToString());
} else {
TStringStream str;
str << " isRestore# false setIdx# 0 status# " << a.Status;
@@ -1492,7 +1492,7 @@ public:
UNIT_ASSERT_VALUES_EQUAL_C(a.Status, NKikimrProto::OK, currentTestState.Str());
UNIT_ASSERT_VALUES_EQUAL_C(q.Shift, a.Shift, currentTestState.Str());
UNIT_ASSERT_VALUES_EQUAL_C(q.Size, a.RequestedSize, currentTestState.Str());
- BlobSet.Check(queryIdx, q.Id, q.Shift, q.Size, a.Buffer);
+ BlobSet.Check(queryIdx, q.Id, q.Shift, q.Size, a.Buffer.ConvertToString());
}
}
RequestsOrder.resize(InitialRequestsSize);
@@ -1711,7 +1711,7 @@ public:
UNIT_ASSERT_VALUES_EQUAL(a.Status, NKikimrProto::OK);
UNIT_ASSERT_VALUES_EQUAL(q.Shift, a.Shift);
UNIT_ASSERT_VALUES_EQUAL(q.Size, a.RequestedSize);
- BlobSet.Check(queryIdx, q.Id, q.Shift, q.Size, a.Buffer);
+ BlobSet.Check(queryIdx, q.Id, q.Shift, q.Size, a.Buffer.ConvertToString());
}
}
};
diff --git a/ydb/core/blobstorage/dsproxy/ut/dsproxy_patch_ut.cpp b/ydb/core/blobstorage/dsproxy/ut/dsproxy_patch_ut.cpp
index 151a316c2c..6639d79f13 100644
--- a/ydb/core/blobstorage/dsproxy/ut/dsproxy_patch_ut.cpp
+++ b/ydb/core/blobstorage/dsproxy/ut/dsproxy_patch_ut.cpp
@@ -303,7 +303,7 @@ void ConductGet(TTestBasicRuntime &runtime, const TTestArgs &args, ENaivePatchCa
getResult->Responses[0].Id = args.OriginalId;
getResult->Responses[0].Status = NKikimrProto::ERROR;
} else {
- getResult->Responses[0].Buffer = args.Buffer;
+ getResult->Responses[0].Buffer = TRope(args.Buffer);
getResult->Responses[0].Id = args.OriginalId;
getResult->Responses[0].Status = NKikimrProto::OK;
}
diff --git a/ydb/core/blobstorage/dsproxy/ut/dsproxy_sequence_ut.cpp b/ydb/core/blobstorage/dsproxy/ut/dsproxy_sequence_ut.cpp
index 42aeb6db2b..f6c35e627c 100644
--- a/ydb/core/blobstorage/dsproxy/ut/dsproxy_sequence_ut.cpp
+++ b/ydb/core/blobstorage/dsproxy/ut/dsproxy_sequence_ut.cpp
@@ -1227,7 +1227,7 @@ Y_UNIT_TEST(TestGivenBlock42PutWhenPartialGetThenSingleDiskRequestOk) {
UNIT_ASSERT_C(getResult->Responses[0].Status == NKikimrProto::OK, "Status# " <<
NKikimrProto::EReplyStatus_Name(getResult->Responses[0].Status));
TString expectedData = data.substr(shift, size);
- TString actualData = getResult->Responses[0].Buffer;
+ TString actualData = getResult->Responses[0].Buffer.ConvertToString();
UNIT_ASSERT_STRINGS_EQUAL_C(expectedData, actualData, "ExpectedSize# " << expectedData.size()
<< " resultSize$ " << actualData.size() << " part# " << part << " disk# " << disk
<< " expectedFirst# " << (ui32) (ui8) expectedData[0] << " actualFirst# " <<
diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp b/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp
index a7ae711ba7..04fea4b01c 100644
--- a/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp
+++ b/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp
@@ -454,8 +454,8 @@ protected:
VERBOSE_COUT(" response[" << i <<"]: " << StatusToString(response.Status));
if (response.Status == NKikimrProto::OK) {
//TODO: Process response.Id (should be same logoblobid as in request)
- LastResponse.Data[i] = response.Buffer;
- VERBOSE_COUT(" shift: " << response.Shift << " data: " << response.Buffer.c_str());
+ LastResponse.Data[i] = response.Buffer.ConvertToString();
+ VERBOSE_COUT(" shift: " << response.Shift << " data: " << response.Buffer.ConvertToString());
}
}
}
diff --git a/ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut_base.h b/ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut_base.h
index ef7ae14e61..72e227eea7 100644
--- a/ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut_base.h
+++ b/ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut_base.h
@@ -166,7 +166,7 @@ public:
UNIT_ASSERT_VALUES_EQUAL(msg->ResponseSz, 1);
const TEvBlobStorage::TEvGetResult::TResponse& item = msg->Responses[0];
if (data) {
- *data = item.Buffer;
+ *data = item.Buffer.ConvertToString();
}
return item.Status;
}
diff --git a/ydb/core/blobstorage/groupinfo/ut/ya.make b/ydb/core/blobstorage/groupinfo/ut/ya.make
index 2be8b98663..b3787a39ae 100644
--- a/ydb/core/blobstorage/groupinfo/ut/ya.make
+++ b/ydb/core/blobstorage/groupinfo/ut/ya.make
@@ -25,7 +25,7 @@ SRCS(
blobstorage_groupinfo_ut.cpp
)
-IF (BUILD_TYPE == "RELEASE")
+IF (BUILD_TYPE != "DEBUG")
SRCS(
blobstorage_groupinfo_blobmap_ut.cpp
blobstorage_groupinfo_partlayout_ut.cpp
diff --git a/ydb/core/blobstorage/nodewarden/node_warden_impl.cpp b/ydb/core/blobstorage/nodewarden/node_warden_impl.cpp
index 2359bd8e3e..0fe3e64c39 100644
--- a/ydb/core/blobstorage/nodewarden/node_warden_impl.cpp
+++ b/ydb/core/blobstorage/nodewarden/node_warden_impl.cpp
@@ -8,6 +8,9 @@ using namespace NKikimr;
using namespace NStorage;
TVector<NPDisk::TDriveData> TNodeWarden::ListLocalDrives() {
+ return {};
+
+#if 0
TVector<NPDisk::TDriveData> drives = ListDevicesWithPartlabel();
try {
@@ -30,6 +33,7 @@ TVector<NPDisk::TDriveData> TNodeWarden::ListLocalDrives() {
});
return drives;
+#endif
}
void TNodeWarden::StartInvalidGroupProxy() {
diff --git a/ydb/core/blobstorage/other/mon_get_blob_page.cpp b/ydb/core/blobstorage/other/mon_get_blob_page.cpp
index 95308879a3..8814ebd17f 100644
--- a/ydb/core/blobstorage/other/mon_get_blob_page.cpp
+++ b/ydb/core/blobstorage/other/mon_get_blob_page.cpp
@@ -59,7 +59,7 @@ namespace {
} else {
result.LogoBlobId = msg->Responses[0].Id;
result.Status = msg->Responses[0].Status;
- result.Buffer = msg->Responses[0].Buffer;
+ result.Buffer = msg->Responses[0].Buffer.ConvertToString();
result.PartMap = std::move(msg->Responses[0].PartMap);
}
result.DebugInfo = std::move(msg->DebugInfo);
diff --git a/ydb/core/blobstorage/pdisk/ut/ya.make b/ydb/core/blobstorage/pdisk/ut/ya.make
index f6d01054c4..ff8f3e0ce4 100644
--- a/ydb/core/blobstorage/pdisk/ut/ya.make
+++ b/ydb/core/blobstorage/pdisk/ut/ya.make
@@ -39,7 +39,7 @@ SRCS(
mock/pdisk_mock.cpp
)
-IF (BUILD_TYPE == "RELEASE")
+IF (BUILD_TYPE != "DEBUG")
SRCS(
blobstorage_pdisk_ut_yard.cpp
)
diff --git a/ydb/core/blobstorage/ut_blobstorage/blob_depot_event_managers.cpp b/ydb/core/blobstorage/ut_blobstorage/blob_depot_event_managers.cpp
index ec262c1fb8..8751595d1f 100644
--- a/ydb/core/blobstorage/ut_blobstorage/blob_depot_event_managers.cpp
+++ b/ydb/core/blobstorage/ut_blobstorage/blob_depot_event_managers.cpp
@@ -169,7 +169,7 @@ void VerifyTEvGetResult(TAutoPtr<TEventHandle<TEvBlobStorage::TEvGetResult>> res
UNIT_ASSERT_VALUES_UNEQUAL(responses[0].Status, NKikimrProto::NODATA);
}
if (responses[0].Status == NKikimrProto::OK && !isIndexOnly) {
- UNIT_ASSERT_VALUES_EQUAL(responses[0].Buffer, blob.Data);
+ UNIT_ASSERT_VALUES_EQUAL(responses[0].Buffer.ConvertToString(), blob.Data);
}
} else if (blob.Status == TBlobInfo::EStatus::UNKNOWN) {
if (mustRestoreFirst && responses[0].Status == NKikimrProto::OK) {
@@ -255,7 +255,7 @@ void VerifyTEvGetResult(TAutoPtr<TEventHandle<TEvBlobStorage::TEvGetResult>> res
} else if (blobs[i].Status == TBlobInfo::EStatus::WRITTEN) {
UNIT_ASSERT_VALUES_UNEQUAL(responses[i].Status, NKikimrProto::NODATA);
if (responses[i].Status == NKikimrProto::OK && !isIndexOnly) {
- UNIT_ASSERT_VALUES_EQUAL(responses[i].Buffer, blobs[i].Data);
+ UNIT_ASSERT_VALUES_EQUAL(responses[i].Buffer.ConvertToString(), blobs[i].Data);
}
} else if (blobs[i].Status == TBlobInfo::EStatus::UNKNOWN) {
if (mustRestoreFirst && responses[i].Status == NKikimrProto::OK) {
diff --git a/ydb/core/blobstorage/ut_blobstorage/counting_events.cpp b/ydb/core/blobstorage/ut_blobstorage/counting_events.cpp
index f3397ec388..3b26ca9e22 100644
--- a/ydb/core/blobstorage/ut_blobstorage/counting_events.cpp
+++ b/ydb/core/blobstorage/ut_blobstorage/counting_events.cpp
@@ -39,7 +39,7 @@ Y_UNIT_TEST_SUITE(CountingEvents) {
UNIT_ASSERT(getResult);
UNIT_ASSERT_VALUES_EQUAL(getResult->ResponseSz, 1);
UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Status, status);
- UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Buffer, data);
+ UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Buffer.ConvertToString(), data);
};
void SendCollect(const TTestInfo &test, const TLogoBlobID &blobId,
diff --git a/ydb/core/blobstorage/ut_blobstorage/discover.cpp b/ydb/core/blobstorage/ut_blobstorage/discover.cpp
index 976ad9f490..ab65e20e05 100644
--- a/ydb/core/blobstorage/ut_blobstorage/discover.cpp
+++ b/ydb/core/blobstorage/ut_blobstorage/discover.cpp
@@ -23,7 +23,7 @@ Y_UNIT_TEST_SUITE(Discover) {
UNIT_ASSERT_VALUES_EQUAL(getResult->ResponseSz, 1);
UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Status, status);
if (status == NKikimrProto::EReplyStatus::OK) {
- UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Buffer, data);
+ UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Buffer.ConvertToString(), data);
}
}
diff --git a/ydb/core/blobstorage/ut_blobstorage/get.cpp b/ydb/core/blobstorage/ut_blobstorage/get.cpp
index 3d3b101dc0..c0ebf5da0a 100644
--- a/ydb/core/blobstorage/ut_blobstorage/get.cpp
+++ b/ydb/core/blobstorage/ut_blobstorage/get.cpp
@@ -29,7 +29,7 @@ Y_UNIT_TEST_SUITE(Get) {
UNIT_ASSERT_VALUES_EQUAL(getResult->ResponseSz, 1);
UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Status, status);
if (checkResultData && status == NKikimrProto::EReplyStatus::OK) {
- UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Buffer, data);
+ UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Buffer.ConvertToString(), data);
}
}
diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/activity.h b/ydb/core/blobstorage/ut_blobstorage/lib/activity.h
index 8c6f3bfd48..9e4c0cb701 100644
--- a/ydb/core/blobstorage/ut_blobstorage/lib/activity.h
+++ b/ydb/core/blobstorage/ut_blobstorage/lib/activity.h
@@ -122,7 +122,7 @@ public:
UNIT_ASSERT_VALUES_EQUAL(response.Status, NKikimrProto::OK);
UNIT_ASSERT_EQUAL(response.Status, NKikimrProto::OK);
if (Committed.count(response.Id)) {
- UNIT_ASSERT_VALUES_EQUAL(Committed.at(response.Id), response.Buffer);
+ UNIT_ASSERT_VALUES_EQUAL(Committed.at(response.Id), response.Buffer.ConvertToString());
Committed.erase(response.Id);
}
if (!--ReadsInFlight) {
diff --git a/ydb/core/blobstorage/ut_blobstorage/patch.cpp b/ydb/core/blobstorage/ut_blobstorage/patch.cpp
index b68c05b80e..b35e3930df 100644
--- a/ydb/core/blobstorage/ut_blobstorage/patch.cpp
+++ b/ydb/core/blobstorage/ut_blobstorage/patch.cpp
@@ -34,7 +34,7 @@ Y_UNIT_TEST_SUITE(BlobPatching) {
UNIT_ASSERT(getResult);
UNIT_ASSERT_VALUES_EQUAL(getResult->ResponseSz, 1);
UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Status, status);
- UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Buffer, data);
+ UNIT_ASSERT_VALUES_EQUAL(getResult->Responses[0].Buffer.ConvertToString(), data);
};
void SendPatch(const TTestInfo &test, const TLogoBlobID &originalBlobId, const TLogoBlobID &patchedBlobId, ui32 mask,
diff --git a/ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp b/ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp
index b0e49b75fd..f88f6245bf 100644
--- a/ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp
+++ b/ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp
@@ -39,7 +39,7 @@ void Test() {
auto& r = res->Get()->Responses[0];
UNIT_ASSERT_VALUES_EQUAL(r.Status, status);
if (status == NKikimrProto::OK) {
- UNIT_ASSERT_VALUES_EQUAL(r.Buffer, data);
+ UNIT_ASSERT_VALUES_EQUAL(r.Buffer.ConvertToString(), data);
}
};
diff --git a/ydb/core/blobstorage/ut_blobstorage/ya.make b/ydb/core/blobstorage/ut_blobstorage/ya.make
index d0d30e5374..6fd28749c2 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ya.make
+++ b/ydb/core/blobstorage/ut_blobstorage/ya.make
@@ -31,7 +31,7 @@ SRCS(
sync.cpp
)
-IF (BUILD_TYPE == "RELEASE")
+IF (BUILD_TYPE != "DEBUG")
SRCS(
big_cluster.cpp
get.cpp
diff --git a/ydb/core/blobstorage/ut_group/main.cpp b/ydb/core/blobstorage/ut_group/main.cpp
index 07a0801130..3c6b4ba17e 100644
--- a/ydb/core/blobstorage/ut_group/main.cpp
+++ b/ydb/core/blobstorage/ut_group/main.cpp
@@ -532,7 +532,7 @@ public:
Y_VERIFY(response.Status == NKikimrProto::OK);
const auto it = Committed.find(response.Id);
Y_VERIFY(it != Committed.end());
- Y_VERIFY(it->second == response.Buffer);
+ Y_VERIFY(it->second == response.Buffer.ConvertToString());
Committed.erase(it);
}
--readsInFlight;
diff --git a/ydb/core/blobstorage/ut_pdiskfit/ut/ya.make b/ydb/core/blobstorage/ut_pdiskfit/ut/ya.make
index 6f64babbe7..b4e9ff9707 100644
--- a/ydb/core/blobstorage/ut_pdiskfit/ut/ya.make
+++ b/ydb/core/blobstorage/ut_pdiskfit/ut/ya.make
@@ -7,7 +7,7 @@ IF (OS_LINUX AND NOT WITH_VALGRIND)
TAG(ya:fat)
- IF (BUILD_TYPE == "RELEASE")
+ IF (BUILD_TYPE != "DEBUG")
SRCS(
main.cpp
)
diff --git a/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp b/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp
index 0a46ceaa5d..f5571e1c6a 100644
--- a/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp
+++ b/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp
@@ -10,7 +10,7 @@
#include <ydb/core/blobstorage/vdisk/common/vdisk_lsnmngr.h>
#include <ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.h>
#include <ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <library/cpp/monlib/service/pages/templates.h>
using namespace NKikimrServices;
diff --git a/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h b/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h
index 99c8717171..619b190e9d 100644
--- a/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h
+++ b/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h
@@ -2,7 +2,7 @@
#include "defs.h"
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <library/cpp/actors/wilson/wilson_span.h>
namespace NKikimr {
diff --git a/ydb/core/blobstorage/vdisk/query/query_readactor.cpp b/ydb/core/blobstorage/vdisk/query/query_readactor.cpp
index 664e57d90b..b59131079b 100644
--- a/ydb/core/blobstorage/vdisk/query/query_readactor.cpp
+++ b/ydb/core/blobstorage/vdisk/query/query_readactor.cpp
@@ -1,6 +1,6 @@
#include "query_readbatch.h"
#include <ydb/core/blobstorage/base/vdisk_priorities.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <library/cpp/actors/wilson/wilson_span.h>
#include <util/generic/algorithm.h>
diff --git a/ydb/core/blobstorage/vdisk/scrub/scrub_actor.cpp b/ydb/core/blobstorage/vdisk/scrub/scrub_actor.cpp
index 3d1e6988d8..a691f6124e 100644
--- a/ydb/core/blobstorage/vdisk/scrub/scrub_actor.cpp
+++ b/ydb/core/blobstorage/vdisk/scrub/scrub_actor.cpp
@@ -37,6 +37,7 @@ namespace NKikimr {
hFunc(TEvNonrestoredCorruptedBlobNotify, Handle);
hFunc(NPDisk::TEvLogResult, Handle);
hFunc(NPDisk::TEvCutLog, Handle);
+ hFunc(TEvTakeHullSnapshotResult, Handle);
case TEvents::TSystem::Poison:
throw TExPoison();
diff --git a/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp b/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp
index 9dcb1ec4b6..122f771b2c 100644
--- a/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp
+++ b/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp
@@ -20,7 +20,7 @@
#include <ydb/core/util/queue_inplace.h>
#include <ydb/core/util/stlog.h>
#include <ydb/core/base/counters.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <ydb/core/node_whiteboard/node_whiteboard.h>
#include <library/cpp/monlib/service/pages/templates.h>
diff --git a/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.cpp b/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.cpp
index f22c213961..f56a9ae359 100644
--- a/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.cpp
+++ b/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.cpp
@@ -2,7 +2,7 @@
#include <ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.h>
#include <ydb/core/blobstorage/vdisk/common/vdisk_response.h>
#include <ydb/core/blobstorage/vdisk/common/circlebufresize.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
namespace NKikimr {
diff --git a/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.cpp b/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.cpp
index b9e7424838..43c5f5f3fd 100644
--- a/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.cpp
+++ b/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.cpp
@@ -3,7 +3,7 @@
#include <ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.h>
#include <ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.h>
#include <ydb/core/util/queue_inplace.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <library/cpp/actors/wilson/wilson_span.h>
namespace NKikimr {
diff --git a/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.cpp b/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.cpp
index 6a03ebf0c5..d3d1506342 100644
--- a/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.cpp
+++ b/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.cpp
@@ -136,7 +136,7 @@ namespace NKikimr {
return;
}
- Buffer = result->Responses[0].Buffer;
+ Buffer = result->Responses[0].Buffer.ConvertToString();
ApplyDiffs();
TInstant deadline = TActivationContext::Now() + TDuration::MilliSeconds(SubRequestDurationMs);
diff --git a/ydb/core/client/server/msgbus_server_get.cpp b/ydb/core/client/server/msgbus_server_get.cpp
index 326de522b1..b912bea015 100644
--- a/ydb/core/client/server/msgbus_server_get.cpp
+++ b/ydb/core/client/server/msgbus_server_get.cpp
@@ -52,7 +52,7 @@ public:
if (msg->Status == NKikimrProto::OK && msg->ResponseSz == 1) {
const TEvBlobStorage::TEvGetResult::TResponse& resp = msg->Responses[0];
Response.SetStatus(resp.Status);
- Response.SetBuffer(resp.Buffer);
+ Response.SetBuffer(resp.Buffer.ConvertToString());
}
IssueResponse(ctx);
}
diff --git a/ydb/core/client/server/msgbus_server_pq_metacache.cpp b/ydb/core/client/server/msgbus_server_pq_metacache.cpp
index 53bc326c32..dcb9138e89 100644
--- a/ydb/core/client/server/msgbus_server_pq_metacache.cpp
+++ b/ydb/core/client/server/msgbus_server_pq_metacache.cpp
@@ -229,10 +229,17 @@ private:
req->Record.MutableRequest()->SetQuery(VersionQuery);
} else {
req->Record.MutableRequest()->SetQuery(TopicsQuery);
- NClient::TParameters params;
- params["$Path"] = LastTopicKey.Path;
- params["$Cluster"] = LastTopicKey.Cluster;
- req->Record.MutableRequest()->MutableParameters()->Swap(&params);
+
+ NYdb::TParams params = NYdb::TParamsBuilder()
+ .AddParam("$Path")
+ .Utf8(LastTopicKey.Path)
+ .Build()
+ .AddParam("$Cluster")
+ .Utf8(LastTopicKey.Cluster)
+ .Build()
+ .Build();
+
+ req->Record.MutableRequest()->MutableYdbParameters()->swap(*(NYdb::TProtoAccessor::GetProtoMapPtr(params)));
}
Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), req.Release(), 0, Generation->Val());
}
diff --git a/ydb/core/client/server/msgbus_server_pq_metacache.h b/ydb/core/client/server/msgbus_server_pq_metacache.h
index 023814a97d..4c003fe7f2 100644
--- a/ydb/core/client/server/msgbus_server_pq_metacache.h
+++ b/ydb/core/client/server/msgbus_server_pq_metacache.h
@@ -7,6 +7,7 @@
#include <ydb/core/tx/scheme_cache/scheme_cache.h>
#include <ydb/public/api/protos/draft/persqueue_error_codes.pb.h>
+#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
#include <util/generic/string.h>
#include <util/generic/vector.h>
diff --git a/ydb/core/cms/cluster_info.cpp b/ydb/core/cms/cluster_info.cpp
index f9f078f1f8..3dfa3c73ae 100644
--- a/ydb/core/cms/cluster_info.cpp
+++ b/ydb/core/cms/cluster_info.cpp
@@ -401,7 +401,7 @@ void TClusterInfo::SetNodeState(ui32 nodeId, NKikimrCms::EState state, const NKi
}
}
- node.UpdateNodeState();
+ node.UpdateNodeState();
}
void TClusterInfo::ClearNode(ui32 nodeId)
@@ -895,7 +895,7 @@ void TClusterInfo::ApplyStateStorageInfo(TIntrusiveConstPtr<TStateStorageInfo> i
ringInfo->SetDisabled();
for(auto replica : ring.Replicas) {
- Y_VERIFY(HasNode(replica.NodeId()));
+ CheckNodeExistenceWithVerify(replica.NodeId());
ringInfo->AddNode(Nodes[replica.NodeId()]);
StateStorageReplicas.insert(replica.NodeId());
StateStorageNodeToRingId[replica.NodeId()] = ringId;
@@ -918,9 +918,15 @@ void TClusterInfo::GenerateTenantNodesCheckers() {
void TClusterInfo::GenerateSysTabletsNodesCheckers() {
for (auto tablet : BootstrapConfig.GetTablet()) {
- SysNodesCheckers[tablet.GetType()] = TSimpleSharedPtr<TSysTabletsNodesCounter>(new TSysTabletsNodesCounter(tablet.GetType()));
+ SysNodesCheckers[tablet.GetType()] = TSimpleSharedPtr<TSysTabletsNodesCounter>(new TSysTabletsNodesCounter(tablet.GetType()));
for (auto nodeId : tablet.GetNode()) {
+ if (!HasNode(nodeId)) {
+ BLOG_ERROR(TStringBuilder() << "Got node " << nodeId
+ << " with system tablet, which exists in configuration, "
+ "but does not exist in cluster.");
+ continue;
+ }
NodeToTabletTypes[nodeId].push_back(tablet.GetType());
NodeRef(nodeId).AddNodeGroup(SysNodesCheckers[tablet.GetType()]);
}
diff --git a/ydb/core/cms/cluster_info.h b/ydb/core/cms/cluster_info.h
index 12424eafab..33d1fd495b 100644
--- a/ydb/core/cms/cluster_info.h
+++ b/ydb/core/cms/cluster_info.h
@@ -695,6 +695,14 @@ public:
return StateStorageNodeToRingId[nodeId];
}
+ void CheckNodeExistenceWithVerify(ui32 nodeId) const {
+ Y_VERIFY(HasNode(nodeId), "%s",
+ (TStringBuilder()
+ << "Node " << nodeId
+ << " does not exist in cluster, but exists in configuration.")
+ .c_str());
+ }
+
bool HasNode(ui32 nodeId) const {
return Nodes.contains(nodeId);
}
@@ -708,7 +716,7 @@ public:
}
const TNodeInfo &Node(ui32 nodeId) const {
- Y_VERIFY(HasNode(nodeId));
+ CheckNodeExistenceWithVerify(nodeId);
return *Nodes.find(nodeId)->second;
}
@@ -726,7 +734,7 @@ public:
auto pr = HostNameToNodeId.equal_range(hostName);
for (auto it = pr.first; it != pr.second; ++it) {
nodeId = it->second;
- Y_VERIFY(HasNode(nodeId));
+ CheckNodeExistenceWithVerify(nodeId);
nodes.push_back(Nodes.find(nodeId)->second.Get());
}
@@ -739,7 +747,7 @@ public:
auto pr = TenantToNodeId.equal_range(tenant);
for (auto it = pr.first; it != pr.second; ++it) {
const ui32 nodeId = it->second;
- Y_VERIFY(HasNode(nodeId));
+ CheckNodeExistenceWithVerify(nodeId);
nodes.push_back(Nodes.find(nodeId)->second.Get());
}
@@ -928,7 +936,7 @@ public:
private:
TNodeInfo &NodeRef(ui32 nodeId) const {
- Y_VERIFY(HasNode(nodeId));
+ CheckNodeExistenceWithVerify(nodeId);
return *Nodes.find(nodeId)->second;
}
@@ -947,7 +955,7 @@ private:
for (auto it = range.first; it != range.second; ++it) {
nodeId = it->second;
- Y_VERIFY(HasNode(nodeId));
+ CheckNodeExistenceWithVerify(nodeId);
auto &node = NodeRef(nodeId);
if (filterByServices && !(node.Services & filterByServices)) {
@@ -989,7 +997,7 @@ private:
auto pr = HostNameToNodeId.equal_range(hostName);
for (auto it = pr.first; it != pr.second; ++it) {
const ui32 nodeId = it->second;
- Y_VERIFY(HasNode(nodeId));
+ CheckNodeExistenceWithVerify(nodeId);
const auto &node = Node(nodeId);
for (const auto &id : node.PDisks) {
Y_VERIFY(HasPDisk(id));
diff --git a/ydb/core/cms/cms.cpp b/ydb/core/cms/cms.cpp
index e71a37aa33..263ea0fe8d 100644
--- a/ydb/core/cms/cms.cpp
+++ b/ydb/core/cms/cms.cpp
@@ -33,11 +33,17 @@ namespace NKikimr::NCms {
using namespace NNodeWhiteboard;
using namespace NKikimrCms;
+void TCms::DefaultSignalTabletActive(const TActorContext &)
+{
+ // must be empty
+}
+
void TCms::OnActivateExecutor(const TActorContext &ctx)
{
if (AppData(ctx)->DomainsInfo->Domains.size() > 1) {
NotSupportedReason = "Multiple domains are not supported.";
Become(&TThis::StateNotSupported);
+ SignalTabletActive(ctx);
return;
}
diff --git a/ydb/core/cms/cms_impl.h b/ydb/core/cms/cms_impl.h
index f8daaada1c..bd31ae2624 100644
--- a/ydb/core/cms/cms_impl.h
+++ b/ydb/core/cms/cms_impl.h
@@ -274,6 +274,7 @@ private:
}
}
+ void DefaultSignalTabletActive(const TActorContext &ctx) override;
void OnActivateExecutor(const TActorContext &ctx) override;
void OnDetach(const TActorContext &ctx) override;
void OnTabletDead(TEvTablet::TEvTabletDead::TPtr &ev, const TActorContext &ctx) override;
diff --git a/ydb/core/cms/cms_tx_load_state.cpp b/ydb/core/cms/cms_tx_load_state.cpp
index 663d474602..c77e30157a 100644
--- a/ydb/core/cms/cms_tx_load_state.cpp
+++ b/ydb/core/cms/cms_tx_load_state.cpp
@@ -224,6 +224,7 @@ public:
void Complete(const TActorContext &ctx) override {
LOG_DEBUG(ctx, NKikimrServices::CMS, "TTxLoadState Complete");
Self->Become(&TCms::StateWork);
+ Self->SignalTabletActive(ctx);
Self->SchedulePermissionsCleanup(ctx);
Self->ScheduleNotificationsCleanup(ctx);
Self->ScheduleLogCleanup(ctx);
diff --git a/ydb/core/cms/cms_ut_common.cpp b/ydb/core/cms/cms_ut_common.cpp
index 96421cc7a5..6b9dad6058 100644
--- a/ydb/core/cms/cms_ut_common.cpp
+++ b/ydb/core/cms/cms_ut_common.cpp
@@ -1,7 +1,7 @@
#include "cms_impl.h"
#include "cms_ut_common.h"
-#include "ut_helpers.h"
#include "sentinel.h"
+#include "ut_helpers.h"
#include <ydb/core/base/tabletid.h>
#include <ydb/core/blobstorage/crypto/default.h>
@@ -56,7 +56,7 @@ void TFakeNodeWhiteboardService::Handle(TEvBlobStorage::TEvControllerConfigReque
{
TGuard<TMutex> guard(Mutex);
auto &rec = ev->Get()->Record;
- auto *resp = new TEvBlobStorage::TEvControllerConfigResponse;
+ auto resp = MakeHolder<TEvBlobStorage::TEvControllerConfigResponse>();
if (rec.GetRequest().CommandSize() && rec.GetRequest().GetCommand(0).HasQueryBaseConfig()) {
resp->Record.CopyFrom(Config);
} else if (rec.GetRequest().CommandSize() && rec.GetRequest().GetCommand(0).HasReadDriveStatus()) {
@@ -69,27 +69,27 @@ void TFakeNodeWhiteboardService::Handle(TEvBlobStorage::TEvControllerConfigReque
driveStatus.MutableHostKey()->SetIcPort(drive.GetHostKey().GetIcPort());
driveStatus.SetPath(drive.GetPath());
driveStatus.SetStatus(NKikimrBlobStorage::ACTIVE);
- } else if (rec.GetRequest().CommandSize() && rec.GetRequest().GetCommand(0).HasUpdateDriveStatus()) { // assume that all commands are UpdateDriveStatus
+ } else if (rec.GetRequest().CommandSize() && rec.GetRequest().GetCommand(0).HasUpdateDriveStatus()) {
+ // assume that all commands are UpdateDriveStatus
if (NoisyBSCPipe && ++NoisyBSCPipeCounter % 3) {
ctx.Send(ev->Sender, new TEvSentinel::TEvBSCPipeDisconnected, 0);
- delete resp;
return;
}
bool success = true;
for (ui32 i = 0; i < rec.GetRequest().CommandSize(); ++i) {
- auto cmd = rec.GetRequest().GetCommand(i).GetUpdateDriveStatus();
- auto id = NCms::TPDiskID(cmd.GetHostKey().GetNodeId(), cmd.GetPDiskId());
- if (auto& pattern = BSControllerResponsePatterns[id]; !pattern.empty() && !pattern[0]) {
- success = false;
+ const auto &cmd = rec.GetRequest().GetCommand(i).GetUpdateDriveStatus();
+ const auto id = NCms::TPDiskID(cmd.GetHostKey().GetNodeId(), cmd.GetPDiskId());
+ if (auto& pattern = BSControllerResponsePatterns[id]; !pattern.empty()) {
+ success = success && pattern[0];
+ resp->Record.MutableResponse()->AddStatus()->SetSuccess(pattern[0]);
pattern.erase(pattern.begin());
- resp->Record.MutableResponse()->AddStatus()->SetSuccess(false);
} else {
resp->Record.MutableResponse()->AddStatus()->SetSuccess(true);
}
}
resp->Record.MutableResponse()->SetSuccess(success);
}
- ctx.Send(ev->Sender, resp, 0, ev->Cookie);
+ ctx.Send(ev->Sender, std::move(resp), 0, ev->Cookie);
}
void TFakeNodeWhiteboardService::Handle(TEvWhiteboard::TEvTabletStateRequest::TPtr &ev,
@@ -505,6 +505,7 @@ static void SetupServices(TTestActorRuntime &runtime,
runtime.Initialize(app.Unwrap());
auto dnsConfig = new TDynamicNameserviceConfig();
dnsConfig->MaxStaticNodeId = 1000;
+ dnsConfig->MinDynamicNodeId = 1001;
dnsConfig->MaxDynamicNodeId = 2000;
runtime.GetAppData().DynamicNameserviceConfig = dnsConfig;
runtime.GetAppData().DisableCheckingSysNodesCms = true;
@@ -1177,10 +1178,10 @@ NKikimrCms::TGetLogTailResponse TCmsTestEnv::GetLogTail(ui32 type,
return rec;
}
-void TCmsTestEnv::AddBSCFailures(const NCms::TPDiskID& id, TVector<bool> failuresPattern) {
+void TCmsTestEnv::AddBSCFailures(const NCms::TPDiskID& id, TVector<bool> &&failuresPattern) {
TGuard<TMutex> guard(TFakeNodeWhiteboardService::Mutex);
auto& vec = TFakeNodeWhiteboardService::BSControllerResponsePatterns[id];
- vec.insert(vec.end(), failuresPattern.begin(), failuresPattern.end());
+ std::move(failuresPattern.begin(), failuresPattern.end(), std::back_inserter(vec));
}
void TCmsTestEnv::EnableNoisyBSCPipe() {
diff --git a/ydb/core/cms/cms_ut_common.h b/ydb/core/cms/cms_ut_common.h
index 9d4d81b9e5..88513c84f1 100644
--- a/ydb/core/cms/cms_ut_common.h
+++ b/ydb/core/cms/cms_ut_common.h
@@ -363,7 +363,7 @@ public:
ui32 limit = 100,
ui32 offset = 0);
- void AddBSCFailures(const NCms::TPDiskID &id, TVector<bool> failuresPattern);
+ void AddBSCFailures(const NCms::TPDiskID &id, TVector<bool> &&failuresPattern);
void EnableNoisyBSCPipe();
diff --git a/ydb/core/cms/config.h b/ydb/core/cms/config.h
index 21ec4721f1..6eeb540711 100644
--- a/ydb/core/cms/config.h
+++ b/ydb/core/cms/config.h
@@ -11,7 +11,7 @@
namespace NKikimr::NCms {
struct TCmsSentinelConfig {
- bool Enable = false;
+ bool Enable = true;
bool DryRun = false;
TDuration UpdateConfigInterval;
@@ -23,8 +23,6 @@ struct TCmsSentinelConfig {
TDuration RetryChangeStatus;
ui32 ChangeStatusRetries;
- TDuration BSCBatchTimeout;
-
ui32 DefaultStateLimit;
TMap<EPDiskState, ui32> StateLimits;
diff --git a/ydb/core/cms/console/configs_dispatcher.cpp b/ydb/core/cms/console/configs_dispatcher.cpp
index a16b30130a..21c6d39a64 100644
--- a/ydb/core/cms/console/configs_dispatcher.cpp
+++ b/ydb/core/cms/console/configs_dispatcher.cpp
@@ -665,6 +665,8 @@ void TConfigsDispatcher::Handle(TEvConsole::TEvConfigSubscriptionNotification::T
newYamlProtoConfig = YamlProtoConfig;
}
+ AppData()->YamlConfigEnabled = YamlConfigEnabled;
+
std::swap(YamlProtoConfig, newYamlProtoConfig);
THashSet<ui32> affectedKinds;
diff --git a/ydb/core/cms/console/console.cpp b/ydb/core/cms/console/console.cpp
index 0b9f8633fc..a89c91da23 100644
--- a/ydb/core/cms/console/console.cpp
+++ b/ydb/core/cms/console/console.cpp
@@ -12,6 +12,11 @@
namespace NKikimr::NConsole {
+void TConsole::DefaultSignalTabletActive(const TActorContext &)
+{
+ // must be empty
+}
+
void TConsole::OnActivateExecutor(const TActorContext &ctx)
{
auto domains = AppData(ctx)->DomainsInfo;
diff --git a/ydb/core/cms/console/console__load_state.cpp b/ydb/core/cms/console/console__load_state.cpp
index b70c1dedb1..f2977c7f06 100644
--- a/ydb/core/cms/console/console__load_state.cpp
+++ b/ydb/core/cms/console/console__load_state.cpp
@@ -66,6 +66,7 @@ public:
LOG_DEBUG(ctx, NKikimrServices::CMS, "TConsole::TTxLoadState Complete");
Self->Become(&TConsole::StateWork);
+ Self->SignalTabletActive(ctx);
ctx.Send(Self->TenantsManager->SelfId(), new TTenantsManager::TEvPrivate::TEvStateLoaded);
ctx.Send(Self->ConfigsManager->SelfId(), new TConfigsManager::TEvPrivate::TEvStateLoaded);
diff --git a/ydb/core/cms/console/console_configs_manager.cpp b/ydb/core/cms/console/console_configs_manager.cpp
index 110b26505b..26c1058d80 100644
--- a/ydb/core/cms/console/console_configs_manager.cpp
+++ b/ydb/core/cms/console/console_configs_manager.cpp
@@ -76,13 +76,6 @@ void TConfigsManager::Bootstrap(const TActorContext &ctx)
false,
NKikimrServices::CMS_CONFIGS);
ConfigsProvider = ctx.Register(new TConfigsProvider(ctx.SelfID));
-
- if (!YamlConfig.empty()) {
- auto resp = MakeHolder<TConfigsProvider::TEvPrivate::TEvUpdateYamlConfig>(
- YamlConfig,
- VolatileYamlConfigs);
- ctx.Send(ConfigsProvider, resp.Release());
- }
}
void TConfigsManager::Detach()
@@ -918,6 +911,9 @@ void TConfigsManager::Handle(TEvPrivate::TEvStateLoaded::TPtr &/*ev*/, const TAc
ctx.Send(ConfigsProvider, new TConfigsProvider::TEvPrivate::TEvSetConfigs(ConfigIndex.GetConfigItems()));
ctx.Send(ConfigsProvider, new TConfigsProvider::TEvPrivate::TEvSetSubscriptions(SubscriptionIndex.GetSubscriptions()));
ctx.Send(GetNameserviceActorId(), new TEvInterconnect::TEvListNodes());
+ if (!YamlConfig.empty()) {
+ ctx.Send(ConfigsProvider, new TConfigsProvider::TEvPrivate::TEvUpdateYamlConfig(YamlConfig, VolatileYamlConfigs));
+ }
ScheduleLogCleanup(ctx);
}
diff --git a/ydb/core/cms/console/console_impl.h b/ydb/core/cms/console/console_impl.h
index a3033e79f9..d5e8a7d98a 100644
--- a/ydb/core/cms/console/console_impl.h
+++ b/ydb/core/cms/console/console_impl.h
@@ -54,6 +54,7 @@ private:
ITransaction *CreateTxLoadState();
ITransaction *CreateTxSetConfig(TEvConsole::TEvSetConfigRequest::TPtr &ev);
+ void DefaultSignalTabletActive(const TActorContext &ctx) override;
void OnActivateExecutor(const TActorContext &ctx) override;
void OnDetach(const TActorContext &ctx) override;
void OnTabletDead(TEvTablet::TEvTabletDead::TPtr &ev, const TActorContext &ctx) override;
diff --git a/ydb/core/cms/console/console_ut_configs.cpp b/ydb/core/cms/console/console_ut_configs.cpp
index 9cd532740b..3f1c1f9bcd 100644
--- a/ydb/core/cms/console/console_ut_configs.cpp
+++ b/ydb/core/cms/console/console_ut_configs.cpp
@@ -2450,9 +2450,15 @@ Y_UNIT_TEST_SUITE(TConsoleConfigTests) {
namespace {
class TConfigProxy : public TActor<TConfigProxy>, public TTabletExecutedFlat {
+ void DefaultSignalTabletActive(const TActorContext &) override
+ {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &ctx) override
{
Become(&TThis::StateWork);
+ SignalTabletActive(ctx);
ctx.Send(Sink, new TEvents::TEvWakeup);
}
@@ -2481,11 +2487,7 @@ public:
STFUNC(StateInit)
{
- switch (ev->GetTypeRewrite()) {
- HFunc(TEvConsole::TEvConfigNotificationRequest, Handle);
- default:
- StateInitImpl(ev, SelfId());
- }
+ StateInitImpl(ev, SelfId());
}
STFUNC(StateWork)
@@ -3920,6 +3922,44 @@ Y_UNIT_TEST_SUITE(TConsoleInMemoryConfigSubscriptionTests) {
UNIT_ASSERT_VALUES_EQUAL(notification->Get()->Record.HasYamlConfig(), false);
}
+ Y_UNIT_TEST(TestConsoleRestart) {
+ TTenantTestRuntime runtime(MultipleNodesConsoleTestConfig());
+ InitializeTestConfigItems();
+
+ TActorId edgeId = runtime.AllocateEdgeActor(1);
+
+ ITEM_DOMAIN_LOG_1.MutableConfig()->MutableLogConfig()->SetClusterName("cluster-1");
+
+ CheckConfigure(runtime, Ydb::StatusIds::SUCCESS,
+ MakeAddAction(ITEM_DOMAIN_LOG_1));
+
+ CheckReplaceConfig(runtime, Ydb::StatusIds::SUCCESS, YAML_CONFIG_1);
+
+ GracefulRestartTablet(runtime, MakeConsoleID(0), runtime.AllocateEdgeActor(0));
+
+ auto subscriber = NConsole::CreateConfigsSubscriber(
+ edgeId,
+ TVector<ui32>({(ui32)NKikimrConsole::TConfigItem::LogConfigItem}),
+ NKikimrConfig::TAppConfig(),
+ 0,
+ true,
+ 1);
+ runtime.Register(subscriber, 1);
+
+ NKikimrConfig::TAppConfig config;
+ config.MutableLogConfig()->SetClusterName("cluster-1");
+
+ auto item = config.MutableVersion()->AddItems();
+ item->SetKind(NKikimrConsole::TConfigItem::LogConfigItem);
+ item->SetId(1);
+ item->SetGeneration(1);
+
+ auto notification = runtime.GrabEdgeEventRethrow<TEvConsole::TEvConfigSubscriptionNotification>(edgeId);
+ UNIT_ASSERT_VALUES_EQUAL(notification->Get()->Record.GetGeneration(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(notification->Get()->Record.GetConfig().ShortDebugString(), config.ShortDebugString());
+ UNIT_ASSERT_VALUES_EQUAL(notification->Get()->Record.GetYamlConfig(), YAML_CONFIG_1_UPDATED);
+ }
+
Y_UNIT_TEST(TestComplexYamlConfigChanges) {
TTenantTestRuntime runtime(MultipleNodesConsoleTestConfig());
InitializeTestConfigItems();
diff --git a/ydb/core/cms/http.cpp b/ydb/core/cms/http.cpp
index 76870e745b..ad3b63594e 100644
--- a/ydb/core/cms/http.cpp
+++ b/ydb/core/cms/http.cpp
@@ -194,6 +194,15 @@ private:
return;
}
+ if (msg->Request.GetPathInfo() == "/yaml-config-enabled") {
+
+ ctx.Send(ev->Sender, new NMon::TEvHttpInfoRes(TString(NMonitoring::HTTPOKJSON)
+ + R"({"enabled":)" + (AppData()->YamlConfigEnabled ? "true" : "false") + "}",
+ 0,
+ NMon::IEvHttpInfoRes::EContentType::Custom));
+ return;
+ }
+
ReplyWithFile(ev, ctx, TString{msg->Request.GetPathInfo()});
}
diff --git a/ydb/core/cms/sentinel.cpp b/ydb/core/cms/sentinel.cpp
index f4e779befd..ec533b9785 100644
--- a/ydb/core/cms/sentinel.cpp
+++ b/ydb/core/cms/sentinel.cpp
@@ -1,9 +1,11 @@
#include "cms_impl.h"
+#include "cms_state.h"
#include "sentinel.h"
#include "sentinel_impl.h"
#include <ydb/core/base/appdata.h>
#include <ydb/core/base/counters.h>
+#include <ydb/core/base/tablet_pipe.h>
#include <ydb/core/blobstorage/base/blobstorage_events.h>
#include <ydb/core/node_whiteboard/node_whiteboard.h>
#include <ydb/library/services/services.pb.h>
@@ -13,8 +15,6 @@
#include <library/cpp/actors/core/log.h>
#include <util/generic/algorithm.h>
-#include <util/generic/hash_set.h>
-#include <util/generic/map.h>
#include <util/string/builder.h>
#include <util/string/join.h>
@@ -287,29 +287,22 @@ TClusterMap::TPDiskIDSet TGuardian::GetAllowedPDisks(const TClusterMap& all, TSt
return result;
}
-/// Actors
-
-template <typename TDerived>
-class TSentinelChildBase: public TActorBootstrapped<TDerived> {
-public:
- using TBase = TSentinelChildBase<TDerived>;
+/// Misc
- explicit TSentinelChildBase(const TActorId& parent, TCmsStatePtr cmsState)
- : Parent(parent)
- , CmsState(cmsState)
- , Config(CmsState->Config.SentinelConfig)
- {
- }
+IActor* CreateBSControllerPipe(TCmsStatePtr cmsState) {
+ auto domains = AppData()->DomainsInfo;
+ const ui32 domainUid = domains->GetDomainUidByTabletId(cmsState->CmsTabletId);
+ const ui64 bscId = MakeBSControllerID(domains->GetDefaultStateStorageGroup(domainUid));
-protected:
- const TActorId Parent;
- TCmsStatePtr CmsState;
- const TCmsSentinelConfig& Config;
+ NTabletPipe::TClientConfig config;
+ config.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries();
+ return NTabletPipe::CreateClient(cmsState->CmsActorId, bscId, config);
+}
-}; // TSentinelChildBase
+/// Actors
template <typename TEvUpdated, typename TDerived>
-class TUpdaterBase: public TSentinelChildBase<TDerived> {
+class TUpdaterBase: public TActorBootstrapped<TDerived> {
public:
using TBase = TUpdaterBase<TEvUpdated, TDerived>;
@@ -321,8 +314,10 @@ protected:
public:
explicit TUpdaterBase(const TActorId& parent, TCmsStatePtr cmsState, TSentinelState::TPtr sentinelState)
- : TSentinelChildBase<TDerived>(parent, cmsState)
+ : Parent(parent)
+ , CmsState(cmsState)
, SentinelState(sentinelState)
+ , Config(CmsState->Config.SentinelConfig)
{
for (auto& [_, info] : SentinelState->PDisks) {
info->ClearTouched();
@@ -330,7 +325,10 @@ public:
}
protected:
+ const TActorId Parent;
+ TCmsStatePtr CmsState;
TSentinelState::TPtr SentinelState;
+ const TCmsSentinelConfig& Config;
}; // TUpdaterBase
@@ -357,14 +355,11 @@ class TConfigUpdater: public TUpdaterBase<TEvSentinel::TEvConfigUpdated, TConfig
}
void OnRetry(TEvents::TEvWakeup::TPtr& ev) {
- const auto* msg = ev->Get();
- switch (static_cast<RetryCookie>(msg->Tag)) {
+ switch (static_cast<RetryCookie>(ev->Get()->Tag)) {
case RetryCookie::BSC:
- RequestBSConfig();
- break;
+ return RequestBSConfig();
case RetryCookie::CMS:
- RequestCMSClusterState();
- break;
+ return RequestCMSClusterState();
default:
Y_FAIL("Unexpected case");
}
@@ -375,7 +370,7 @@ class TConfigUpdater: public TUpdaterBase<TEvSentinel::TEvConfigUpdated, TConfig
<< ": attempt# " << SentinelState->ConfigUpdaterState.BSCAttempt);
if (!CmsState->BSControllerPipe) {
- CmsState->BSControllerPipe = this->Register(CreateBSCClientActor(CmsState));
+ CmsState->BSControllerPipe = this->Register(CreateBSControllerPipe(CmsState));
}
auto request = MakeHolder<TEvBlobStorage::TEvControllerConfigRequest>();
@@ -948,7 +943,7 @@ class TSentinel: public TActorBootstrapped<TSentinel> {
}
if (!CmsState->BSControllerPipe) {
- CmsState->BSControllerPipe = Register(CreateBSCClientActor(CmsState));
+ CmsState->BSControllerPipe = Register(CreateBSControllerPipe(CmsState));
}
LOG_D("Change pdisk status"
@@ -1064,13 +1059,18 @@ class TSentinel: public TActorBootstrapped<TSentinel> {
const auto& response = ev->Get()->Record.GetResponse();
LOG_D("Handle TEvBlobStorage::TEvControllerConfigResponse"
- << ": response# " << response.ShortDebugString());
+ << ": response# " << response.ShortDebugString()
+ << ", cookie# " << ev->Cookie);
if (ev->Cookie != SentinelState->ChangeRequestId) {
+ LOG_W("Ignore TEvBlobStorage::TEvControllerConfigResponse"
+ << ": cookie# " << ev->Cookie
+ << ", expected# " << SentinelState->ChangeRequestId);
return;
}
if (SentinelState->ChangeRequests.empty()) {
+ LOG_W("Ignore TEvBlobStorage::TEvControllerConfigResponse: empty queue");
return;
}
@@ -1212,16 +1212,6 @@ private:
}; // TSentinel
-IActor* CreateBSCClientActor(const TCmsStatePtr& cmsState) {
- auto domains = AppData()->DomainsInfo;
- const ui32 domainUid = domains->GetDomainUidByTabletId(cmsState->CmsTabletId);
- const ui64 bscId = MakeBSControllerID(domains->GetDefaultStateStorageGroup(domainUid));
-
- NTabletPipe::TClientConfig config;
- config.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries();
- return NTabletPipe::CreateClient(cmsState->CmsActorId, bscId, config);
-}
-
} // NSentinel
IActor* CreateSentinel(TCmsStatePtr state) {
diff --git a/ydb/core/cms/sentinel.h b/ydb/core/cms/sentinel.h
index 9fa1e4e034..f0d1249348 100644
--- a/ydb/core/cms/sentinel.h
+++ b/ydb/core/cms/sentinel.h
@@ -2,7 +2,6 @@
#include "defs.h"
#include "cms_state.h"
-#include "pdiskid.h"
namespace NKikimr::NCms {
@@ -14,10 +13,7 @@ struct TEvSentinel {
EvUpdateState,
EvStateUpdated,
- EvStatusChanged,
-
EvTimeout,
-
EvBSCPipeDisconnected,
EvEnd,
@@ -32,18 +28,6 @@ struct TEvSentinel {
struct TEvStateUpdated: public TEventLocal<TEvStateUpdated, EvStateUpdated> {};
struct TEvTimeout: public TEventLocal<TEvTimeout, EvTimeout> {};
-
- struct TEvStatusChanged: public TEventLocal<TEvStatusChanged, EvStatusChanged> {
- TPDiskID Id;
- bool Success;
-
- explicit TEvStatusChanged(const TPDiskID& id, bool success)
- : Id(id)
- , Success(success)
- {
- }
- };
-
struct TEvBSCPipeDisconnected: public TEventLocal<TEvBSCPipeDisconnected, EvBSCPipeDisconnected> {};
}; // TEvSentinel
diff --git a/ydb/core/cms/sentinel_impl.h b/ydb/core/cms/sentinel_impl.h
index d8b034dd86..8ed385184d 100644
--- a/ydb/core/cms/sentinel_impl.h
+++ b/ydb/core/cms/sentinel_impl.h
@@ -1,7 +1,6 @@
#pragma once
#include "defs.h"
-#include "cms_state.h"
#include "pdiskid.h"
#include "pdisk_state.h"
@@ -173,6 +172,4 @@ private:
}; // TGuardian
-IActor* CreateBSCClientActor(const TCmsStatePtr& cmsState);
-
} // namespace NKikimr::NCms::NSentinel
diff --git a/ydb/core/cms/sentinel_ut.cpp b/ydb/core/cms/sentinel_ut.cpp
index 05410b5a90..6b6f6ff338 100644
--- a/ydb/core/cms/sentinel_ut.cpp
+++ b/ydb/core/cms/sentinel_ut.cpp
@@ -11,8 +11,7 @@
#include <util/random/random.h>
#include <util/string/builder.h>
-namespace NKikimr {
-namespace NCmsTest {
+namespace NKikimr::NCmsTest {
static constexpr ui32 DefaultStateLimit = 5;
static constexpr ui32 DefaultErrorStateLimit = 60;
@@ -38,7 +37,6 @@ constexpr NCms::EPDiskState FaultyStates[] = {
};
Y_UNIT_TEST_SUITE(TSentinelBaseTests) {
-
using namespace NCms;
using namespace NCms::NSentinel;
using TPDiskID = NCms::TPDiskID;
@@ -313,11 +311,9 @@ Y_UNIT_TEST_SUITE(TSentinelBaseTests) {
}
}
-
} // TSentinelBaseTests
Y_UNIT_TEST_SUITE(TSentinelTests) {
-
using namespace NCms;
using namespace NCms::NSentinel;
using TPDiskID = NCms::TPDiskID;
@@ -525,7 +521,6 @@ Y_UNIT_TEST_SUITE(TSentinelTests) {
private:
TCmsStatePtr State;
- std::atomic<bool> NosiyBlobstoragePipe = false;
TActorId Sentinel;
}; // TTestEnv
@@ -617,12 +612,12 @@ Y_UNIT_TEST_SUITE(TSentinelTests) {
Y_UNIT_TEST(BSControllerUnresponsive) {
TTestEnv env(8, 4);
-
env.EnableNoisyBSCPipe();
const TPDiskID id1 = env.RandomPDiskID();
const TPDiskID id2 = env.RandomPDiskID();
const TPDiskID id3 = env.RandomPDiskID();
+
for (size_t i = 0; i < sizeof(ErrorStates) / sizeof(ErrorStates[0]); ++i) {
env.AddBSCFailures(id1, {false, true});
env.AddBSCFailures(id2, {false, false, false, false, false, false});
@@ -640,6 +635,7 @@ Y_UNIT_TEST_SUITE(TSentinelTests) {
const TPDiskID id1 = env.RandomPDiskID();
const TPDiskID id2 = env.RandomPDiskID();
const TPDiskID id3 = env.RandomPDiskID();
+
for (size_t i = 0; i < sizeof(ErrorStates) / sizeof(ErrorStates[0]); ++i) {
env.AddBSCFailures(id1, {true, false, false, true, false, false});
// will fail for all requests assuming there is only 5 retries
@@ -652,7 +648,7 @@ Y_UNIT_TEST_SUITE(TSentinelTests) {
env.SetPDiskState({id1, id2, id3}, NKikimrBlobStorage::TPDiskState::Normal, EPDiskStatus::ACTIVE);
}
}
+
} // TSentinelTests
-} // NCmsTest
-} // NKikimr
+}
diff --git a/ydb/core/cms/ui/cms.css b/ydb/core/cms/ui/cms.css
index 66c9ccf28b..0877344afc 100644
--- a/ydb/core/cms/ui/cms.css
+++ b/ydb/core/cms/ui/cms.css
@@ -543,3 +543,9 @@ td {
}
}
+
+#yaml-configs-enabled-warning {
+ background: rgb(201, 48, 44);
+ border-color: rgb(172, 41, 37);
+ color: white;
+}
diff --git a/ydb/core/cms/ui/configs.js b/ydb/core/cms/ui/configs.js
index f3b807e451..b7b59e442f 100644
--- a/ydb/core/cms/ui/configs.js
+++ b/ydb/core/cms/ui/configs.js
@@ -308,11 +308,20 @@ function loadConfigItems() {
$.get(url).done(onConfigItemsLoaded).fail(onConfigItemsFailed);
}
+function onYamlConfigEnabledFetched(data) {
+ if (data && data['enabled']) {
+ $('#yaml-configs-enabled-warning').show();
+ }
+}
+
function loadConfigsContent() {
for (var kind of ConfigsState.editableItemKinds)
getOrCreateItemKind(cmsEnums.parse('ItemKinds', kind));
loadConfigItems();
+
+ var url = 'cms/yaml-config-enabled';
+ $.get(url).done(onYamlConfigEnabledFetched);
}
function loadTypes() {
diff --git a/ydb/core/cms/ui/index.html b/ydb/core/cms/ui/index.html
index ea56f98c73..7c2f3072af 100644
--- a/ydb/core/cms/ui/index.html
+++ b/ydb/core/cms/ui/index.html
@@ -67,6 +67,15 @@
</ul>
<div class="tab-content" style="padding-top: 10px">
<div id="configs" class="tab-pane fade in active show">
+ <div id="yaml-configs-enabled-warning" style="display: none" class="yaml-box mb-2">
+ <div class="p-3 px-4" id="yaml-heading-zero">
+ <div class="mb-0 py-1">
+ <div class="d-inline">
+ <b>YAML config is enabled on this cluster. These configs won't take effect.</b>
+ </div>
+ </div>
+ </div>
+ </div>
<div id="configs-error" class="error"></div>
<div id="configs-success" class="success"></div>
<div id="config-items"></div>
diff --git a/ydb/core/discovery/discovery.cpp b/ydb/core/discovery/discovery.cpp
index 93dc41a003..8d3ea7e79f 100644
--- a/ydb/core/discovery/discovery.cpp
+++ b/ydb/core/discovery/discovery.cpp
@@ -462,7 +462,7 @@ public:
case NSchemeCache::TSchemeCacheNavigate::EStatus::PathErrorUnknown:
case NSchemeCache::TSchemeCacheNavigate::EStatus::RootUnknown:
return Reply(new TEvDiscovery::TEvError(TEvDiscovery::TEvError::DATABASE_NOT_EXIST,
- "Requested database not exists"));
+ "Requested database does not exist"));
default:
DLOG_D("Unexpected status"
<< ": entry# " << entry.ToString());
@@ -534,7 +534,7 @@ public:
auto* domainInfo = AppData()->DomainsInfo->GetDomainByName(domainName);
if (!domainInfo) {
return Reply(new TEvDiscovery::TEvError(TEvDiscovery::TEvError::DATABASE_NOT_EXIST,
- "Database " + domainName + " not exists"));
+ "Database " + domainName + " does not exist"));
}
TString database;
diff --git a/ydb/core/driver_lib/run/auto_config_initializer.cpp b/ydb/core/driver_lib/run/auto_config_initializer.cpp
index 77fe5d2b5c..62d5e97ea1 100644
--- a/ydb/core/driver_lib/run/auto_config_initializer.cpp
+++ b/ydb/core/driver_lib/run/auto_config_initializer.cpp
@@ -290,7 +290,7 @@ namespace NKikimr::NAutoConfigInitializer {
}
executor->SetType(NKikimrConfig::TActorSystemConfig::TExecutor::BASIC);
executor->SetThreads(threadsCount);
- executor->SetThreads(Max(cfg.MaxThreadCount, threadsCount));
+ executor->SetMaxThreads(Max(cfg.MaxThreadCount, threadsCount));
executor->SetPriority(priorities[poolIdx]);
executor->SetName(names[poolIdx]);
diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
index 3b406b11af..8b40a35063 100644
--- a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
+++ b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
@@ -1050,36 +1050,40 @@ void TLocalServiceInitializer::InitializeServices(
// setup local
TLocalConfig::TPtr localConfig(new TLocalConfig());
- localConfig->TabletClassInfo[TTabletTypes::SchemeShard] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&CreateFlatTxSchemeShard, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::DataShard] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&CreateDataShard, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::KeyValue] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&CreateKeyValueFlat, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::PersQueue] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&CreatePersQueue, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::PersQueueReadBalancer] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&CreatePersQueueReadBalancer, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::Coordinator] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&CreateFlatTxCoordinator, TMailboxType::Revolving, importantPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::Mediator] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&CreateTxMediator, TMailboxType::Revolving, importantPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::Kesus] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&NKesus::CreateKesusTablet, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::Hive] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&CreateDefaultHive, TMailboxType::ReadAsFilled, importantPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::SysViewProcessor] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&NSysView::CreateSysViewProcessor, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::TestShard] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&NTestShard::CreateTestShard, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::ColumnShard] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&CreateColumnShard, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::SequenceShard] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&NSequenceShard::CreateSequenceShard, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::ReplicationController] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&NReplication::CreateController, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
- localConfig->TabletClassInfo[TTabletTypes::BlobDepot] = TLocalConfig::TTabletClassInfo(
- new TTabletSetupInfo(&NBlobDepot::CreateBlobDepot, TMailboxType::ReadAsFilled, appData->UserPoolId, TMailboxType::ReadAsFilled, appData->SystemPoolId));
+
+ std::unordered_map<TTabletTypes::EType, NKikimrLocal::TTabletAvailability> tabletAvailabilities;
+ for (const auto& availability : Config.GetDynamicNodeConfig().GetTabletAvailability()) {
+ tabletAvailabilities.emplace(availability.GetType(), availability);
+ }
+
+ auto addToLocalConfig = [&localConfig, &tabletAvailabilities, tabletPool = appData->SystemPoolId](TTabletTypes::EType tabletType,
+ TTabletSetupInfo::TTabletCreationFunc op,
+ NActors::TMailboxType::EType mailboxType,
+ ui32 poolId) {
+ auto availIt = tabletAvailabilities.find(tabletType);
+ auto localIt = localConfig->TabletClassInfo.emplace(tabletType, new TTabletSetupInfo(op, mailboxType, poolId, TMailboxType::ReadAsFilled, tabletPool)).first;
+ if (availIt != tabletAvailabilities.end()) {
+ localIt->second.MaxCount = availIt->second.GetMaxCount();
+ localIt->second.Priority = availIt->second.GetPriority();
+ }
+ };
+
+ addToLocalConfig(TTabletTypes::SchemeShard, &CreateFlatTxSchemeShard, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::DataShard, &CreateDataShard, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::KeyValue, &CreateKeyValueFlat, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::PersQueue, &CreatePersQueue, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::PersQueueReadBalancer, &CreatePersQueueReadBalancer, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::Coordinator, &CreateFlatTxCoordinator, TMailboxType::Revolving, importantPoolId);
+ addToLocalConfig(TTabletTypes::Mediator, &CreateTxMediator, TMailboxType::Revolving, importantPoolId);
+ addToLocalConfig(TTabletTypes::Kesus, &NKesus::CreateKesusTablet, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::Hive, &CreateDefaultHive, TMailboxType::ReadAsFilled, importantPoolId);
+ addToLocalConfig(TTabletTypes::SysViewProcessor, &NSysView::CreateSysViewProcessor, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::TestShard, &NTestShard::CreateTestShard, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::ColumnShard, &CreateColumnShard, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::SequenceShard, &NSequenceShard::CreateSequenceShard, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::ReplicationController, &NReplication::CreateController, TMailboxType::ReadAsFilled, appData->UserPoolId);
+ addToLocalConfig(TTabletTypes::BlobDepot, &NBlobDepot::CreateBlobDepot, TMailboxType::ReadAsFilled, appData->UserPoolId);
+
TTenantPoolConfig::TPtr tenantPoolConfig = new TTenantPoolConfig(Config.GetTenantPoolConfig(), localConfig);
if (!tenantPoolConfig->IsEnabled && !tenantPoolConfig->StaticSlots.empty())
@@ -1101,8 +1105,9 @@ void TLocalServiceInitializer::InitializeServices(
// TSharedCacheInitializer
-TSharedCacheInitializer::TSharedCacheInitializer(const TKikimrRunConfig& runConfig)
+TSharedCacheInitializer::TSharedCacheInitializer(const TKikimrRunConfig& runConfig, TIntrusivePtr<TMemObserver> memObserver)
: IKikimrServicesInitializer(runConfig)
+ , MemObserver(std::move(memObserver))
{}
void TSharedCacheInitializer::InitializeServices(
@@ -1121,6 +1126,10 @@ void TSharedCacheInitializer::InitializeServices(
config->TotalAsyncQueueInFlyLimit = cfg.GetAsyncQueueInFlyLimit();
config->TotalScanQueueInFlyLimit = cfg.GetScanQueueInFlyLimit();
+ if (cfg.HasActivePagesReservationPercent()) {
+ config->ActivePagesReservationPercent = cfg.GetActivePagesReservationPercent();
+ }
+
TIntrusivePtr<::NMonitoring::TDynamicCounters> tabletGroup = GetServiceCounters(appData->Counters, "tablets");
TIntrusivePtr<::NMonitoring::TDynamicCounters> sausageGroup = tabletGroup->GetSubgroup("type", "S_CACHE");
@@ -1131,7 +1140,7 @@ void TSharedCacheInitializer::InitializeServices(
config->Counters = new TSharedPageCacheCounters(sausageGroup);
setup->LocalServices.push_back(std::pair<TActorId, TActorSetupCmd>(MakeSharedPageCacheId(0),
- TActorSetupCmd(CreateSharedPageCache(std::move(config)), TMailboxType::ReadAsFilled, appData->UserPoolId)));
+ TActorSetupCmd(CreateSharedPageCache(std::move(config), MemObserver), TMailboxType::ReadAsFilled, appData->UserPoolId)));
auto *configurator = NConsole::CreateSharedCacheConfigurator();
setup->LocalServices.emplace_back(TActorId(),
@@ -1999,8 +2008,9 @@ void TPersQueueClusterTrackerInitializer::InitializeServices(NActors::TActorSyst
// TMemProfMonitorInitializer
-TMemProfMonitorInitializer::TMemProfMonitorInitializer(const TKikimrRunConfig& runConfig)
+TMemProfMonitorInitializer::TMemProfMonitorInitializer(const TKikimrRunConfig& runConfig, TIntrusivePtr<TMemObserver> memObserver)
: IKikimrServicesInitializer(runConfig)
+ , MemObserver(std::move(memObserver))
{}
void TMemProfMonitorInitializer::InitializeServices(
@@ -2014,6 +2024,7 @@ void TMemProfMonitorInitializer::InitializeServices(
}
IActor* monitorActor = CreateMemProfMonitor(
+ MemObserver,
1, // seconds
appData->Counters,
filePathPrefix);
@@ -2097,7 +2108,7 @@ void TKqpServiceInitializer::InitializeServices(NActors::TActorSystemSetup* setu
GlobalObjects.AddGlobalObject(std::make_shared<NYql::NLog::YqlLoggerScope>(
new NYql::NLog::TTlsLogBackend(new TNullLogBackend())));
- auto proxy = NKqp::CreateKqpProxyService(Config.GetLogConfig(), Config.GetTableServiceConfig(),
+ auto proxy = NKqp::CreateKqpProxyService(Config.GetLogConfig(), Config.GetTableServiceConfig(), Config.GetAuthConfig().GetTokenAccessorConfig(),
std::move(settings), Factories->QueryReplayBackendFactory, std::move(kqpProxySharedResources));
setup->LocalServices.push_back(std::make_pair(
NKqp::MakeKqpProxyID(NodeId),
diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.h b/ydb/core/driver_lib/run/kikimr_services_initializers.h
index 3075e8dcb3..ad5aebe6dd 100644
--- a/ydb/core/driver_lib/run/kikimr_services_initializers.h
+++ b/ydb/core/driver_lib/run/kikimr_services_initializers.h
@@ -85,8 +85,10 @@ public:
};
class TSharedCacheInitializer : public IKikimrServicesInitializer {
+ TIntrusivePtr<TMemObserver> MemObserver;
+
public:
- TSharedCacheInitializer(const TKikimrRunConfig& runConfig);
+ TSharedCacheInitializer(const TKikimrRunConfig& runConfig, TIntrusivePtr<TMemObserver> memObserver);
void InitializeServices(NActors::TActorSystemSetup *setup, const NKikimr::TAppData *appData) override;
};
@@ -354,8 +356,10 @@ public:
};
class TMemProfMonitorInitializer : public IKikimrServicesInitializer {
+ TIntrusivePtr<TMemObserver> MemObserver;
+
public:
- TMemProfMonitorInitializer(const TKikimrRunConfig& runConfig);
+ TMemProfMonitorInitializer(const TKikimrRunConfig& runConfig, TIntrusivePtr<TMemObserver> memObserver);
void InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) override;
};
diff --git a/ydb/core/driver_lib/run/run.cpp b/ydb/core/driver_lib/run/run.cpp
index a2f29d7a98..a06d5935dd 100644
--- a/ydb/core/driver_lib/run/run.cpp
+++ b/ydb/core/driver_lib/run/run.cpp
@@ -310,6 +310,7 @@ public:
auto &dnConfig = Config.GetDynamicNameserviceConfig();
TIntrusivePtr<TDynamicNameserviceConfig> config = new TDynamicNameserviceConfig;
config->MaxStaticNodeId = dnConfig.GetMaxStaticNodeId();
+ config->MinDynamicNodeId = dnConfig.GetMinDynamicNodeId();
config->MaxDynamicNodeId = dnConfig.GetMaxDynamicNodeId();
appData->DynamicNameserviceConfig = config;
}
@@ -364,10 +365,26 @@ public:
}
};
+class TYamlConfigInitializer : public IAppDataInitializer {
+ const NKikimrConfig::TAppConfig& Config;
+
+public:
+ TYamlConfigInitializer(const TKikimrRunConfig& runConfig)
+ : Config(runConfig.AppConfig)
+ {
+ }
+
+ virtual void Initialize(NKikimr::TAppData* appData) override
+ {
+ appData->YamlConfigEnabled = Config.GetYamlConfigEnabled();
+ }
+};
+
TKikimrRunner::TKikimrRunner(std::shared_ptr<TModuleFactories> factories)
: ModuleFactories(std::move(factories))
, Counters(MakeIntrusive<::NMonitoring::TDynamicCounters>())
, PollerThreads(new NInterconnect::TPollerThreads)
+ , MemObserver(MakeIntrusive<TMemObserver>())
{
}
@@ -907,19 +924,13 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) {
opts.SetUseAuth(appConfig.GetDomainsConfig().GetSecurityConfig().GetEnforceUserTokenRequirement());
}
- if (grpcConfig.HasKeepAliveEnable()) {
- if (grpcConfig.GetKeepAliveEnable()) {
- Y_VERIFY(grpcConfig.HasKeepAliveIdleTimeoutTriggerSec(), "KeepAliveIdleTimeoutTriggerSec not set");
- Y_VERIFY(grpcConfig.HasKeepAliveMaxProbeCount(), "KeepAliveMaxProbeCount not set");
- Y_VERIFY(grpcConfig.HasKeepAliveProbeIntervalSec(), "KeepAliveProbeIntervalSec not set");
- opts.SetKeepAliveEnable(true);
- opts.SetKeepAliveIdleTimeoutTriggerSec(grpcConfig.GetKeepAliveIdleTimeoutTriggerSec());
- opts.SetKeepAliveMaxProbeCount(grpcConfig.GetKeepAliveMaxProbeCount());
- opts.SetKeepAliveProbeIntervalSec(grpcConfig.GetKeepAliveProbeIntervalSec());
- }
- else {
- opts.SetKeepAliveEnable(false);
- }
+ if (grpcConfig.GetKeepAliveEnable()) {
+ opts.SetKeepAliveEnable(true);
+ opts.SetKeepAliveIdleTimeoutTriggerSec(grpcConfig.GetKeepAliveIdleTimeoutTriggerSec());
+ opts.SetKeepAliveMaxProbeCount(grpcConfig.GetKeepAliveMaxProbeCount());
+ opts.SetKeepAliveProbeIntervalSec(grpcConfig.GetKeepAliveProbeIntervalSec());
+ } else {
+ opts.SetKeepAliveEnable(false);
}
NConsole::SetGRpcLibraryFunction();
@@ -1147,6 +1158,8 @@ void TKikimrRunner::InitializeAppData(const TKikimrRunConfig& runConfig)
appDataInitializers.AddAppDataInitializer(new TLabelsInitializer(runConfig));
// setup cluster name
appDataInitializers.AddAppDataInitializer(new TClusterNameInitializer(runConfig));
+ // setup yaml config info
+ appDataInitializers.AddAppDataInitializer(new TYamlConfigInitializer(runConfig));
appDataInitializers.Initialize(AppData.Get());
}
@@ -1396,7 +1409,7 @@ TIntrusivePtr<TServiceInitializersList> TKikimrRunner::CreateServiceInitializers
sil->AddServiceInitializer(new TLocalServiceInitializer(runConfig));
}
if (serviceMask.EnableSharedCache) {
- sil->AddServiceInitializer(new TSharedCacheInitializer(runConfig));
+ sil->AddServiceInitializer(new TSharedCacheInitializer(runConfig, MemObserver));
}
if (serviceMask.EnableBlobCache) {
sil->AddServiceInitializer(new TBlobCacheInitializer(runConfig));
@@ -1493,7 +1506,7 @@ TIntrusivePtr<TServiceInitializersList> TKikimrRunner::CreateServiceInitializers
sil->AddServiceInitializer(new TNetClassifierInitializer(runConfig));
}
- sil->AddServiceInitializer(new TMemProfMonitorInitializer(runConfig));
+ sil->AddServiceInitializer(new TMemProfMonitorInitializer(runConfig, MemObserver));
#if defined(ENABLE_MEMORY_TRACKING)
sil->AddServiceInitializer(new TMemoryTrackerInitializer(runConfig));
diff --git a/ydb/core/driver_lib/run/run.h b/ydb/core/driver_lib/run/run.h
index 89dda5dde7..8c6becf2a3 100644
--- a/ydb/core/driver_lib/run/run.h
+++ b/ydb/core/driver_lib/run/run.h
@@ -16,6 +16,7 @@
#include <ydb/core/client/server/grpc_server.h>
#include <ydb/core/fq/libs/shared_resources/interface/shared_resources.h>
#include <ydb/core/kqp/common/kqp.h>
+#include <ydb/core/base/memobserver.h>
#include <ydb/core/tablet/node_tablet_monitor.h>
#include <ydb/core/tablet/tablet_setup.h>
#include <ydb/core/ymq/http/http.h>
@@ -65,6 +66,8 @@ protected:
std::shared_ptr<TLogBackend> LogBackend;
TAutoPtr<TActorSystem> ActorSystem;
+ TIntrusivePtr<TMemObserver> MemObserver;
+
TKikimrRunner(std::shared_ptr<TModuleFactories> factories = {});
virtual ~TKikimrRunner();
diff --git a/ydb/core/driver_lib/version/version.cpp b/ydb/core/driver_lib/version/version.cpp
index f15616302d..f80e70c7d5 100644
--- a/ydb/core/driver_lib/version/version.cpp
+++ b/ydb/core/driver_lib/version/version.cpp
@@ -20,15 +20,20 @@ const TCurrent* TCompatibilityInfo::GetCurrent() {
TGuard<TSpinLock> g(TCompatibilityInfo::LockCurrent);
if (!CompatibilityInfo) {
- // using TYdbVersion = TCompatibilityInfo::TProtoConstructor::TYdbVersion;
+ using TYdbVersion = TCompatibilityInfo::TProtoConstructor::TYdbVersion;
// using TCompatibilityRule = TCompatibilityInfo::TProtoConstructor::TCompatibilityRule;
using TCurrentCompatibilityInfo = TCompatibilityInfo::TProtoConstructor::TCurrentCompatibilityInfo;
auto current = TCurrentCompatibilityInfo{
- .Build = "trunk"
+ .Build = "ydb",
+ .YdbVersion = TYdbVersion{
+ .Year = 23,
+ .Major = 3,
+ }
}.ToPB();
- // bool success = CompleteFromTag(current);
+ bool success = CompleteFromTag(current);
+ Y_UNUSED(success);
// Y_VERIFY_DEBUG(success);
CompatibilityInfo = TCurrent();
@@ -41,12 +46,13 @@ const TCurrent* TCompatibilityInfo::GetCurrent() {
// obsolete version control
TMaybe<NActors::TInterconnectProxyCommon::TVersionInfo> VERSION = NActors::TInterconnectProxyCommon::TVersionInfo{
// version of this binary
- "trunk",
+ "stable-23-3",
// compatible versions; must include all compatible old ones, including this one; version verification occurs on both
// peers and connection is accepted if at least one of peers accepts the version of the other peer
{
- "trunk"
+ "stable-23-2",
+ "stable-23-3"
}
};
@@ -70,7 +76,7 @@ const TStored* TCompatibilityInfo::GetUnknown() {
UnknownYdbRelease = TStored();
UnknownYdbRelease->CopyFrom(TStoredCompatibilityInfo{
.Build = "ydb",
- .YdbVersion = TYdbVersion{ .Year = 22, .Major = 5, .Minor = 7, .Hotfix = 0 }
+ .YdbVersion = TYdbVersion{ .Year = 23, .Major = 2, .Minor = 11, .Hotfix = 0 }
}.ToPB());
}
diff --git a/ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt
index 69913df2c5..ff15eec7e5 100644
--- a/ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt
@@ -23,6 +23,8 @@ target_link_options(ydb-core-erasure-ut PRIVATE
-Wl,-platform_version,macos,11.0,11.0
-fPIC
-fPIC
+ -framework
+ CoreFoundation
)
target_sources(ydb-core-erasure-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_ut.cpp
diff --git a/ydb/core/erasure/ut_perf/CMakeLists.darwin-x86_64.txt b/ydb/core/erasure/ut_perf/CMakeLists.darwin-x86_64.txt
index 3535dbf830..82951db456 100644
--- a/ydb/core/erasure/ut_perf/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/erasure/ut_perf/CMakeLists.darwin-x86_64.txt
@@ -22,6 +22,8 @@ target_link_options(ydb-core-erasure-ut_perf PRIVATE
-Wl,-platform_version,macos,11.0,11.0
-fPIC
-fPIC
+ -framework
+ CoreFoundation
)
target_sources(ydb-core-erasure-ut_perf PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp
diff --git a/ydb/core/erasure/ut_rope/CMakeLists.darwin-x86_64.txt b/ydb/core/erasure/ut_rope/CMakeLists.darwin-x86_64.txt
index 9d531bfbea..f07378583d 100644
--- a/ydb/core/erasure/ut_rope/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/erasure/ut_rope/CMakeLists.darwin-x86_64.txt
@@ -23,6 +23,8 @@ target_link_options(ydb-core-erasure-ut_rope PRIVATE
-Wl,-platform_version,macos,11.0,11.0
-fPIC
-fPIC
+ -framework
+ CoreFoundation
)
target_sources(ydb-core-erasure-ut_rope PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope_ut.cpp
diff --git a/ydb/core/external_sources/external_source.h b/ydb/core/external_sources/external_source.h
index 763fdea0ba..60d1e6a067 100644
--- a/ydb/core/external_sources/external_source.h
+++ b/ydb/core/external_sources/external_source.h
@@ -16,7 +16,7 @@ struct IExternalSource : public TThrRefBase {
Packs TSchema, TGeneral into some string in arbitrary
format: proto, json, text, and others. The output returns a
string called content. Further, this string will be stored inside.
- After that, it is passed to the GetParamters method.
+ After that, it is passed to the GetParameters method.
Can throw an exception in case of an error.
*/
virtual TString Pack(const NKikimrExternalSources::TSchema& schema,
@@ -35,7 +35,7 @@ struct IExternalSource : public TThrRefBase {
this data will be displayed in the viewer.
Can throw an exception in case of an error
*/
- virtual TMap<TString, TString> GetParamters(const TString& content) const = 0;
+ virtual TMap<TString, TVector<TString>> GetParameters(const TString& content) const = 0;
};
}
diff --git a/ydb/core/external_sources/object_storage.cpp b/ydb/core/external_sources/object_storage.cpp
index 4277114392..000ec785ec 100644
--- a/ydb/core/external_sources/object_storage.cpp
+++ b/ydb/core/external_sources/object_storage.cpp
@@ -50,17 +50,21 @@ struct TObjectStorageExternalSource : public IExternalSource {
return TString{NYql::S3ProviderName};
}
- virtual TMap<TString, TString> GetParamters(const TString& content) const override {
+ virtual TMap<TString, TVector<TString>> GetParameters(const TString& content) const override {
NKikimrExternalSources::TObjectStorage objectStorage;
objectStorage.ParseFromStringOrThrow(content);
- TMap<TString, TString> parameters{objectStorage.format_setting().begin(), objectStorage.format_setting().end()};
+ TMap<TString, TVector<TString>> parameters;
+ for (const auto& [key, value] : objectStorage.format_setting()) {
+ parameters[key] = {value};
+ }
+
if (objectStorage.format()) {
- parameters["format"] = objectStorage.format();
+ parameters["format"] = {objectStorage.format()};
}
if (objectStorage.compression()) {
- parameters["compression"] = objectStorage.compression();
+ parameters["compression"] = {objectStorage.compression()};
}
NSc::TValue projection;
@@ -69,13 +73,14 @@ struct TObjectStorageExternalSource : public IExternalSource {
}
if (!projection.DictEmpty()) {
- parameters["projection"] = projection.ToJson();
+ parameters["projection"] = {projection.ToJson()};
}
- NSc::TValue partitionedBy;
- partitionedBy.AppendAll(objectStorage.partitioned_by());
- if (!partitionedBy.ArrayEmpty()) {
- parameters["partitioned_by"] = partitionedBy.ToJson();
+ if (!objectStorage.partitioned_by().empty()) {
+ parameters["partitioned_by"].reserve(objectStorage.partitioned_by().size());
+ for (const TString& column : objectStorage.partitioned_by()) {
+ parameters["partitioned_by"].emplace_back(column);
+ }
}
return parameters;
@@ -325,7 +330,7 @@ private:
.Primitive(NYdb::EPrimitiveType::Date)
.Build(),
NYdb::TTypeBuilder{}
- .Primitive(NYdb::EPrimitiveType::Date)
+ .Primitive(NYdb::EPrimitiveType::Datetime)
.Build()
};
return ValidateProjectionType(columnType, columnName, availableTypes);
diff --git a/ydb/core/formats/arrow/arrow_helpers.cpp b/ydb/core/formats/arrow/arrow_helpers.cpp
index b4837eae5d..b9512531d9 100644
--- a/ydb/core/formats/arrow/arrow_helpers.cpp
+++ b/ydb/core/formats/arrow/arrow_helpers.cpp
@@ -181,7 +181,8 @@ std::shared_ptr<arrow::RecordBatch> ExtractColumns(const std::shared_ptr<arrow::
Y_VERIFY(columns.back());
if (!columns.back()->type()->Equals(field->type())) {
- AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_incoming_batch")("reason", "invalid_column_type")("column", field->name())("column_type", field->type()->ToString());
+ AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_incoming_batch")("reason", "invalid_column_type")("column", field->name())
+ ("column_type", field->type()->ToString())("incoming_type", columns.back()->type()->ToString());
return nullptr;
}
}
diff --git a/ydb/core/formats/arrow/converter.cpp b/ydb/core/formats/arrow/converter.cpp
index df99fbc05a..d54053fb33 100644
--- a/ydb/core/formats/arrow/converter.cpp
+++ b/ydb/core/formats/arrow/converter.cpp
@@ -126,22 +126,33 @@ static std::shared_ptr<arrow::Array> InplaceConvertColumn(const std::shared_ptr<
switch (colType.GetTypeId()) {
case NScheme::NTypeIds::Bytes: {
Y_VERIFY(column->type()->id() == arrow::Type::STRING);
- return std::make_shared<arrow::BinaryArray>(column->data());
+ return std::make_shared<arrow::BinaryArray>(
+ arrow::ArrayData::Make(arrow::binary(), column->data()->length,
+ column->data()->buffers, column->data()->null_count, column->data()->offset));
}
case NScheme::NTypeIds::Date: {
Y_VERIFY(arrow::is_primitive(column->type()->id()));
Y_VERIFY(arrow::bit_width(column->type()->id()) == 16);
- return std::make_shared<arrow::NumericArray<arrow::UInt16Type>>(column->data());
+
+ auto newData = column->data()->Copy();
+ newData->type = arrow::uint16();
+ return std::make_shared<arrow::NumericArray<arrow::UInt16Type>>(newData);
}
case NScheme::NTypeIds::Datetime: {
Y_VERIFY(arrow::is_primitive(column->type()->id()));
Y_VERIFY(arrow::bit_width(column->type()->id()) == 32);
- return std::make_shared<arrow::NumericArray<arrow::Int32Type>>(column->data());
+
+ auto newData = column->data()->Copy();
+ newData->type = arrow::uint32();
+ return std::make_shared<arrow::NumericArray<arrow::UInt32Type>>(newData);
}
case NScheme::NTypeIds::Timestamp: {
Y_VERIFY(arrow::is_primitive(column->type()->id()));
Y_VERIFY(arrow::bit_width(column->type()->id()) == 64);
- return std::make_shared<arrow::TimestampArray>(column->data());
+
+ auto newData = column->data()->Copy();
+ newData->type = arrow::timestamp(arrow::TimeUnit::MICRO);
+ return std::make_shared<arrow::TimestampArray>(newData);
}
default:
return {};
@@ -153,6 +164,7 @@ std::shared_ptr<arrow::RecordBatch> InplaceConvertColumns(const std::shared_ptr<
std::vector<std::shared_ptr<arrow::Array>> columns = batch->columns();
std::vector<std::shared_ptr<arrow::Field>> fields;
fields.reserve(batch->num_columns());
+
for (i32 i = 0; i < batch->num_columns(); ++i) {
auto& colName = batch->column_name(i);
auto it = columnsToConvert.find(TString(colName.data(), colName.size()));
@@ -163,7 +175,9 @@ std::shared_ptr<arrow::RecordBatch> InplaceConvertColumns(const std::shared_ptr<
}
auto resultSchemaFixed = std::make_shared<arrow::Schema>(std::move(fields));
auto convertedBatch = arrow::RecordBatch::Make(resultSchemaFixed, batch->num_rows(), std::move(columns));
- Y_VERIFY(convertedBatch->ValidateFull() == arrow::Status::OK());
+
+ Y_VERIFY(convertedBatch->Validate().ok());
+ Y_VERIFY_DEBUG(convertedBatch->ValidateFull().ok());
return convertedBatch;
}
diff --git a/ydb/core/formats/arrow/ssa_runtime_version.h b/ydb/core/formats/arrow/ssa_runtime_version.h
index d20420a6d9..148f9a32e2 100644
--- a/ydb/core/formats/arrow/ssa_runtime_version.h
+++ b/ydb/core/formats/arrow/ssa_runtime_version.h
@@ -19,7 +19,7 @@ namespace NKikimr::NSsa {
// Bump this version every time incompatible runtime functions are introduced.
#ifndef SSA_RUNTIME_VERSION
-#define SSA_RUNTIME_VERSION 3U
+#define SSA_RUNTIME_VERSION 2U
#endif
// History:
diff --git a/ydb/core/fq/libs/actors/clusters_from_connections.cpp b/ydb/core/fq/libs/actors/clusters_from_connections.cpp
index 43021c9601..8b734d81aa 100644
--- a/ydb/core/fq/libs/actors/clusters_from_connections.cpp
+++ b/ydb/core/fq/libs/actors/clusters_from_connections.cpp
@@ -87,6 +87,23 @@ void FillSolomonClusterConfig(NYql::TSolomonClusterConfig& clusterConfig,
FillClusterAuth(clusterConfig, monitoring.auth(), authToken, accountIdSignatures);
}
+template <typename TConnection>
+void FillGenericClusterConfig(
+ NYql::TGenericClusterConfig& clusterCfg,
+ const TConnection& connection,
+ const TString& connectionName,
+ NConnector::NApi::EDataSourceKind dataSourceKind,
+ const TString& authToken,
+ const THashMap<TString, TString>& accountIdSignatures
+){
+ clusterCfg.SetKind(dataSourceKind);
+ clusterCfg.SetName(connectionName);
+ clusterCfg.SetDatabaseId(connection.database_id());
+ clusterCfg.mutable_credentials()->mutable_basic()->set_username(connection.login());
+ clusterCfg.mutable_credentials()->mutable_basic()->set_password(connection.password());
+ FillClusterAuth(clusterCfg, connection.auth(), authToken, accountIdSignatures);
+}
+
} //namespace
NYql::TPqClusterConfig CreatePqClusterConfig(const TString& name,
@@ -152,14 +169,13 @@ void AddClustersFromConnections(
break;
}
case FederatedQuery::ConnectionSetting::kClickhouseCluster: {
- const auto& ch = conn.content().setting().clickhouse_cluster();
- auto* clusterCfg = gatewaysConfig.MutableGeneric()->AddClusterMapping();
- clusterCfg->SetKind(NYql::NConnector::NApi::EDataSourceKind::CLICKHOUSE);
- clusterCfg->SetName(connectionName);
- clusterCfg->SetDatabaseId(ch.database_id());
- clusterCfg->mutable_credentials()->mutable_basic()->set_username(ch.login());
- clusterCfg->mutable_credentials()->mutable_basic()->set_password(ch.password());
- FillClusterAuth(*clusterCfg, ch.auth(), authToken, accountIdSignatures);
+ FillGenericClusterConfig(
+ *gatewaysConfig.MutableGeneric()->AddClusterMapping(),
+ conn.content().setting().clickhouse_cluster(),
+ connectionName,
+ NYql::NConnector::NApi::EDataSourceKind::CLICKHOUSE,
+ authToken,
+ accountIdSignatures);
clusters.emplace(connectionName, GenericProviderName);
break;
}
@@ -184,6 +200,17 @@ void AddClustersFromConnections(
clusters.emplace(connectionName, SolomonProviderName);
break;
}
+ case FederatedQuery::ConnectionSetting::kPostgresqlCluster: {
+ FillGenericClusterConfig(
+ *gatewaysConfig.MutableGeneric()->AddClusterMapping(),
+ conn.content().setting().postgresql_cluster(),
+ connectionName,
+ NYql::NConnector::NApi::EDataSourceKind::POSTGRESQL,
+ authToken,
+ accountIdSignatures);
+ clusters.emplace(connectionName, GenericProviderName);
+ break;
+ }
// Do not replace with default. Adding a new connection should cause a compilation error
case FederatedQuery::ConnectionSetting::CONNECTION_NOT_SET:
diff --git a/ydb/core/fq/libs/actors/pending_fetcher.cpp b/ydb/core/fq/libs/actors/pending_fetcher.cpp
index 0183e09ed3..a584951edc 100644
--- a/ydb/core/fq/libs/actors/pending_fetcher.cpp
+++ b/ydb/core/fq/libs/actors/pending_fetcher.cpp
@@ -25,7 +25,6 @@
#include <ydb/library/yql/providers/generic/connector/libcpp/client.h>
#include <ydb/library/yql/dq/integration/transform/yql_dq_task_transform.h>
#include <ydb/library/yql/providers/ydb/provider/yql_ydb_provider.h>
-#include <ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider.h>
#include <ydb/library/yql/sql/settings/translation_settings.h>
#include <library/cpp/yson/node/node_io.h>
#include <ydb/library/yql/minikql/mkql_alloc.h>
@@ -42,7 +41,6 @@
#include <ydb/public/sdk/cpp/client/ydb_driver/driver.h>
#include <ydb/public/sdk/cpp/client/ydb_value/value.h>
#include <ydb/public/sdk/cpp/client/ydb_result/result.h>
-#include <ydb/public/lib/fq/scope.h>
#include <ydb/core/fq/libs/common/compression.h>
#include <ydb/core/fq/libs/common/entity_id.h>
@@ -158,7 +156,6 @@ public:
}
void Bootstrap() {
-
if (Monitoring) {
Monitoring->RegisterActorPage(Monitoring->RegisterIndexPage("fq_diag", "Federated Query diagnostics"),
"fetcher", "Pending Fetcher", false, TActivationContext::ActorSystem(), SelfId());
@@ -395,12 +392,13 @@ private:
resources,
task.execution_id(),
task.operation_id(),
- computeConnection
+ computeConnection,
+ NProtoInterop::CastFromProto(task.result_ttl())
);
auto runActorId =
- ComputeConfig.GetComputeType(task) == NConfig::EComputeType::YDB
- ? Register(CreateYdbRunActor(SelfId(), queryCounters, std::move(params), CreateActorFactory(params, queryCounters)))
+ ComputeConfig.GetComputeType(task.query_type(), task.scope()) == NConfig::EComputeType::YDB
+ ? Register(CreateYdbRunActor(std::move(params), queryCounters))
: Register(CreateRunActor(SelfId(), queryCounters, std::move(params)));
RunActorMap[runActorId] = TRunActorInfo { .QueryId = queryId, .QueryName = task.query_name() };
@@ -409,6 +407,11 @@ private:
}
}
+ NActors::IActor* CreateYdbRunActor(TRunActorParams&& params, const ::NYql::NCommon::TServiceCounters& queryCounters) const {
+ auto actorFactory = CreateActorFactory(params, queryCounters);
+ return ::NFq::CreateYdbRunActor(SelfId(), queryCounters, std::move(params), actorFactory);
+ }
+
STRICT_STFUNC(StateFunc,
hFunc(NActors::TEvents::TEvWakeup, HandleWakeup)
hFunc(NActors::TEvents::TEvUndelivered, OnUndelivered)
diff --git a/ydb/core/fq/libs/actors/proxy_private.cpp b/ydb/core/fq/libs/actors/proxy_private.cpp
index 5c054d6872..bdb3441412 100644
--- a/ydb/core/fq/libs/actors/proxy_private.cpp
+++ b/ydb/core/fq/libs/actors/proxy_private.cpp
@@ -31,9 +31,9 @@ public:
TIntrusivePtr<ITimeProvider> timeProvider,
TIntrusivePtr<IRandomProvider> randomProvider,
::NMonitoring::TDynamicCounterPtr counters,
- const NConfig::TTokenAccessorConfig& tokenAccessorConfig)
+ const ::NFq::TSigner::TPtr& signer)
: PrivateProxyConfig(privateProxyConfig)
- , TokenAccessorConfig(tokenAccessorConfig)
+ , Signer(signer)
, TimeProvider(timeProvider)
, RandomProvider(randomProvider)
, Counters(counters->GetSubgroup("subsystem", "private_api"))
@@ -96,7 +96,7 @@ private:
}
Register(
- CreateGetTaskRequestActor(ev->Sender, TokenAccessorConfig, TimeProvider, ev->Release(), Counters),
+ CreateGetTaskRequestActor(ev->Sender, Signer, TimeProvider, ev->Release(), Counters),
NActors::TMailboxType::HTSwap, SelfId().PoolID());
}
@@ -188,7 +188,7 @@ private:
private:
const NConfig::TPrivateProxyConfig PrivateProxyConfig;
- const NConfig::TTokenAccessorConfig TokenAccessorConfig;
+ const ::NFq::TSigner::TPtr Signer;
TIntrusivePtr<ITimeProvider> TimeProvider;
TIntrusivePtr<IRandomProvider> RandomProvider;
::NMonitoring::TDynamicCounterPtr Counters;
@@ -204,8 +204,8 @@ IActor* CreateYqlAnalyticsPrivateProxy(
TIntrusivePtr<ITimeProvider> timeProvider,
TIntrusivePtr<IRandomProvider> randomProvider,
::NMonitoring::TDynamicCounterPtr counters,
- const NConfig::TTokenAccessorConfig& tokenAccessorConfig) {
- return new TYqlAnalyticsPrivateProxy(privateProxyConfig, timeProvider, randomProvider, counters, tokenAccessorConfig);
+ const ::NFq::TSigner::TPtr& signer) {
+ return new TYqlAnalyticsPrivateProxy(privateProxyConfig, timeProvider, randomProvider, counters, signer);
}
} // namespace NFq
diff --git a/ydb/core/fq/libs/actors/proxy_private.h b/ydb/core/fq/libs/actors/proxy_private.h
index 880bf6274e..3627ec1ea7 100644
--- a/ydb/core/fq/libs/actors/proxy_private.h
+++ b/ydb/core/fq/libs/actors/proxy_private.h
@@ -2,6 +2,7 @@
#include <ydb/core/fq/libs/config/protos/fq_config.pb.h>
#include <ydb/core/fq/libs/events/events.h>
+#include <ydb/core/fq/libs/signer/signer.h>
#include <ydb/library/yql/minikql/computation/mkql_computation_node.h>
#include <ydb/library/yql/providers/dq/provider/yql_dq_gateway.h>
@@ -28,7 +29,7 @@ NActors::IActor* CreateYqlAnalyticsPrivateProxy(
TIntrusivePtr<ITimeProvider> timeProvider,
TIntrusivePtr<IRandomProvider> randomProvider,
::NMonitoring::TDynamicCounterPtr counters,
- const NConfig::TTokenAccessorConfig& tockenAccessorConfig
+ const ::NFq::TSigner::TPtr& signer
);
NActors::IActor* CreatePingTaskRequestActor(
@@ -40,7 +41,7 @@ NActors::IActor* CreatePingTaskRequestActor(
NActors::IActor* CreateGetTaskRequestActor(
const NActors::TActorId& sender,
- const NConfig::TTokenAccessorConfig& tockenAccessorConfig,
+ const ::NFq::TSigner::TPtr& signer,
TIntrusivePtr<ITimeProvider> timeProvider,
TAutoPtr<TEvents::TEvGetTaskRequest> ev,
::NMonitoring::TDynamicCounterPtr counters
diff --git a/ydb/core/fq/libs/actors/run_actor.cpp b/ydb/core/fq/libs/actors/run_actor.cpp
index 1399465abd..f2977c626e 100644
--- a/ydb/core/fq/libs/actors/run_actor.cpp
+++ b/ydb/core/fq/libs/actors/run_actor.cpp
@@ -1559,6 +1559,8 @@ private:
apply("WatermarksGranularityMs", "1000");
apply("WatermarksLateArrivalDelayMs", "5000");
apply("WatermarksIdlePartitions", "true");
+ apply("EnableChannelStats", "true");
+ apply("ExportStats", "true");
switch (Params.QueryType) {
case FederatedQuery::QueryContent::STREAMING: {
@@ -2039,6 +2041,9 @@ private:
case FederatedQuery::ConnectionSetting::kMonitoring:
html << "MONITORING";
break;
+ case FederatedQuery::ConnectionSetting::kPostgresqlCluster:
+ html << "POSTGRESQL";
+ break;
default:
html << "UNDEFINED";
break;
diff --git a/ydb/core/fq/libs/actors/task_get.cpp b/ydb/core/fq/libs/actors/task_get.cpp
index a02c998c81..580c67df43 100644
--- a/ydb/core/fq/libs/actors/task_get.cpp
+++ b/ydb/core/fq/libs/actors/task_get.cpp
@@ -34,23 +34,19 @@ class TGetTaskRequestActor
public:
TGetTaskRequestActor(
const NActors::TActorId& sender,
- const NConfig::TTokenAccessorConfig& tokenAccessorConfig,
+ const ::NFq::TSigner::TPtr& signer,
TIntrusivePtr<ITimeProvider> timeProvider,
TAutoPtr<TEvents::TEvGetTaskRequest> ev,
TDynamicCounterPtr counters)
- : TokenAccessorConfig(tokenAccessorConfig)
- , Sender(sender)
+ : Sender(sender)
, TimeProvider(timeProvider)
, Ev(std::move(ev))
, Counters(std::move(counters->GetSubgroup("subsystem", "private_api")->GetSubgroup("subcomponent", "GetTask")))
, LifetimeDuration(Counters->GetHistogram("LifetimeDurationMs", ExponentialHistogram(10, 2, 50)))
, RequestedMBytes(Counters->GetHistogram("RequestedMB", ExponentialHistogram(6, 2, 3)))
, StartTime(TInstant::Now())
- {
- if (TokenAccessorConfig.GetHmacSecretFile()) {
- Signer = ::NFq::CreateSignerFromFile(TokenAccessorConfig.GetHmacSecretFile());
- }
- }
+ , Signer(signer)
+ {}
static constexpr char ActorName[] = "YQ_PRIVATE_GET_TASK";
@@ -144,7 +140,6 @@ private:
hFunc(TEvControlPlaneConfig::TEvGetTenantInfoResponse, Handle)
)
- const NConfig::TTokenAccessorConfig TokenAccessorConfig;
const TActorId Sender;
TIntrusivePtr<ITimeProvider> TimeProvider;
TAutoPtr<TEvents::TEvGetTaskRequest> Ev;
@@ -163,13 +158,13 @@ private:
IActor* CreateGetTaskRequestActor(
const NActors::TActorId& sender,
- const NConfig::TTokenAccessorConfig& tokenAccessorConfig,
+ const ::NFq::TSigner::TPtr& signer,
TIntrusivePtr<ITimeProvider> timeProvider,
TAutoPtr<TEvents::TEvGetTaskRequest> ev,
TDynamicCounterPtr counters) {
return new TGetTaskRequestActor(
sender,
- tokenAccessorConfig,
+ signer,
timeProvider,
std::move(ev),
counters);
diff --git a/ydb/core/fq/libs/cloud_audit/yq_cloud_audit_service.cpp b/ydb/core/fq/libs/cloud_audit/yq_cloud_audit_service.cpp
index 5b34cfd43b..1c7620b303 100644
--- a/ydb/core/fq/libs/cloud_audit/yq_cloud_audit_service.cpp
+++ b/ydb/core/fq/libs/cloud_audit/yq_cloud_audit_service.cpp
@@ -63,6 +63,8 @@ std::string MapConnectionType(const FederatedQuery::ConnectionSetting::Connectio
return "ObjectStorage";
case FederatedQuery::ConnectionSetting::ConnectionCase::kMonitoring:
return "Monitoring";
+ case FederatedQuery::ConnectionSetting::ConnectionCase::kPostgresqlCluster:
+ return "PostgreSQLCluster";
default:
Y_ENSURE(false, "Invalid connection case " << i32(connectionCase));
}
diff --git a/ydb/core/fq/libs/common/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/common/CMakeLists.darwin-x86_64.txt
index a6a0765c5d..af28035aad 100644
--- a/ydb/core/fq/libs/common/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/fq/libs/common/CMakeLists.darwin-x86_64.txt
@@ -26,5 +26,6 @@ target_sources(fq-libs-common PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/debug_info.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/util.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.cpp
)
diff --git a/ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt
index e88b073786..eba7bc83ba 100644
--- a/ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt
@@ -27,5 +27,6 @@ target_sources(fq-libs-common PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/debug_info.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/util.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.cpp
)
diff --git a/ydb/core/fq/libs/common/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/common/CMakeLists.linux-x86_64.txt
index e88b073786..eba7bc83ba 100644
--- a/ydb/core/fq/libs/common/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/fq/libs/common/CMakeLists.linux-x86_64.txt
@@ -27,5 +27,6 @@ target_sources(fq-libs-common PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/debug_info.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/util.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.cpp
)
diff --git a/ydb/core/fq/libs/common/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/common/CMakeLists.windows-x86_64.txt
index a6a0765c5d..af28035aad 100644
--- a/ydb/core/fq/libs/common/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/fq/libs/common/CMakeLists.windows-x86_64.txt
@@ -26,5 +26,6 @@ target_sources(fq-libs-common PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/debug_info.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/util.cpp
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.cpp
)
diff --git a/ydb/core/fq/libs/common/util.cpp b/ydb/core/fq/libs/common/util.cpp
new file mode 100644
index 0000000000..053de08889
--- /dev/null
+++ b/ydb/core/fq/libs/common/util.cpp
@@ -0,0 +1,38 @@
+#include "util.h"
+
+#include <util/generic/string.h>
+#include <util/string/builder.h>
+#include <util/string/subst.h>
+
+namespace NFq {
+
+TString EscapeString(const TString& value,
+ const TString& enclosingSeq,
+ const TString& replaceWith) {
+ auto escapedValue = value;
+ SubstGlobal(escapedValue, enclosingSeq, replaceWith);
+ return escapedValue;
+}
+
+TString EscapeString(const TString& value, char enclosingChar) {
+ auto escapedValue = value;
+ SubstGlobal(escapedValue,
+ TString{enclosingChar},
+ TStringBuilder{} << '\\' << enclosingChar);
+ return escapedValue;
+}
+
+TString EncloseAndEscapeString(const TString& value, char enclosingChar) {
+ return TStringBuilder{} << enclosingChar << EscapeString(value, enclosingChar)
+ << enclosingChar;
+}
+
+TString EncloseAndEscapeString(const TString& value,
+ const TString& enclosingSeq,
+ const TString& replaceWith) {
+ return TStringBuilder{} << enclosingSeq
+ << EscapeString(value, enclosingSeq, replaceWith)
+ << enclosingSeq;
+}
+
+} // namespace NFq
diff --git a/ydb/core/fq/libs/common/util.h b/ydb/core/fq/libs/common/util.h
index e61a7c86b3..b7aedf6e6c 100644
--- a/ydb/core/fq/libs/common/util.h
+++ b/ydb/core/fq/libs/common/util.h
@@ -5,7 +5,10 @@
#include <google/protobuf/repeated_field.h>
+#include <library/cpp/iterator/mapped.h>
+#include <util/generic/string.h>
#include <util/generic/vector.h>
+#include <util/string/join.h>
namespace NFq {
@@ -22,4 +25,25 @@ TVector<TElement> VectorFromProto(const ::google::protobuf::RepeatedPtrField<TEl
return { field.begin(), field.end() };
}
+template <typename TIter, typename TFunc>
+TString JoinMapRange(TString delim, const TIter beg, const TIter end, const TFunc func) {
+ auto mappedBegin =
+ MakeMappedIterator(beg, func);
+ auto mappedEnd =
+ MakeMappedIterator(end, func);
+ return JoinRange(delim, mappedBegin, mappedEnd);
+}
+
+TString EscapeString(const TString& value,
+ const TString& enclosingSeq,
+ const TString& replaceWith);
+
+TString EscapeString(const TString& value, char enclosingChar);
+
+TString EncloseAndEscapeString(const TString& value, char enclosingChar);
+
+TString EncloseAndEscapeString(const TString& value,
+ const TString& enclosingSeq,
+ const TString& replaceWith);
+
} // namespace NFq
diff --git a/ydb/core/fq/libs/common/ya.make b/ydb/core/fq/libs/common/ya.make
index f30242480e..3246b6455e 100644
--- a/ydb/core/fq/libs/common/ya.make
+++ b/ydb/core/fq/libs/common/ya.make
@@ -7,6 +7,7 @@ SRCS(
debug_info.cpp
entity_id.cpp
entity_id.h
+ util.cpp
rows_proto_splitter.cpp
rows_proto_splitter.h
)
diff --git a/ydb/core/fq/libs/compute/common/config.h b/ydb/core/fq/libs/compute/common/config.h
index ddce299551..f735dcdeeb 100644
--- a/ydb/core/fq/libs/compute/common/config.h
+++ b/ydb/core/fq/libs/compute/common/config.h
@@ -1,11 +1,10 @@
#pragma once
#include <ydb/core/fq/libs/config/protos/compute.pb.h>
-#include <ydb/core/fq/libs/protos/fq_private.pb.h>
-
-#include <util/generic/algorithm.h>
#include <util/digest/multi.h>
+#include <util/generic/algorithm.h>
+#include <util/generic/yexception.h>
namespace NFq {
@@ -13,24 +12,40 @@ class TComputeConfig {
public:
explicit TComputeConfig(const NFq::NConfig::TComputeConfig& computeConfig)
: ComputeConfig(computeConfig)
- {}
+ , DefaultCompute(ComputeConfig.GetDefaultCompute() != NFq::NConfig::EComputeType::UNKNOWN
+ ? ComputeConfig.GetDefaultCompute()
+ : NFq::NConfig::EComputeType::IN_PLACE) {
+ for (const auto& mapping : ComputeConfig.GetComputeMapping()) {
+ if (mapping.HasActivation()) {
+ auto percentage = mapping.GetActivation().GetPercentage();
+ Y_ENSURE(percentage == 0 || percentage == 100,
+ "Activation percentage must be either 0 or 100");
+ }
+ }
+ }
- NFq::NConfig::EComputeType GetComputeType(const Fq::Private::GetTaskResult::Task& task) const {
- for (const auto& rule: ComputeConfig.GetComputeMapping().GetRule()) {
- const bool isMatched = AllOf(rule.GetKey(),
- [&task](const auto& key) {
- switch (key.key_case()) {
- case NConfig::TComputeMappingRuleKey::kQueryType:
- return key.GetQueryType() == task.query_type();
- case NConfig::TComputeMappingRuleKey::KEY_NOT_SET:
- return false;
+ NFq::NConfig::EComputeType GetComputeType(const FederatedQuery::QueryContent::QueryType queryType, const TString& scope) const {
+ for (const auto& mapping : ComputeConfig.GetComputeMapping()) {
+ if (mapping.GetQueryType() == queryType) {
+ if (mapping.HasActivation()) {
+ const auto& activation = mapping.GetActivation();
+ const auto& includeScopes = activation.GetIncludeScopes();
+ const auto& excludeScopes = activation.GetExcludeScopes();
+ auto isActivatedCase1 =
+ activation.GetPercentage() == 0 &&
+ Find(includeScopes, scope) == includeScopes.end();
+ auto isActivatedCase2 =
+ activation.GetPercentage() == 100 &&
+ Find(excludeScopes, scope) != excludeScopes.end();
+ if (isActivatedCase1 || isActivatedCase2) {
+ return mapping.GetCompute();
}
- });
- if (isMatched) {
- return rule.GetCompute();
+ }
+ return mapping.GetCompute();
}
}
- return NFq::NConfig::EComputeType::IN_PLACE;
+
+ return DefaultCompute;
}
NFq::NConfig::TYdbStorageConfig GetConnection(const TString& scope) const {
@@ -52,15 +67,29 @@ public:
if (it != databaseMapping.GetScopeToComputeDatabase().end()) {
return it->second.GetConnection();
}
- return databaseMapping.GetCommon().empty() ? NFq::NConfig::TYdbStorageConfig{} : databaseMapping.GetCommon(MultiHash(scope) % databaseMapping.GetCommon().size()).GetConnection();
+ return databaseMapping.GetCommon().empty()
+ ? NFq::NConfig::TYdbStorageConfig{}
+ : databaseMapping
+ .GetCommon(MultiHash(scope) % databaseMapping.GetCommon().size())
+ .GetConnection();
+ }
+
+ bool YdbComputeControlPlaneEnabled(const TString& scope) const {
+ return ComputeConfig.GetYdb().GetEnable() &&
+ ComputeConfig.GetYdb().GetControlPlane().GetEnable() &&
+ (GetComputeType(FederatedQuery::QueryContent::ANALYTICS, scope) ==
+ NFq::NConfig::EComputeType::YDB ||
+ GetComputeType(FederatedQuery::QueryContent::STREAMING, scope) ==
+ NFq::NConfig::EComputeType::YDB);
}
- bool YdbComputeControlPlaneEnabled() const {
- return ComputeConfig.GetYdb().GetEnable() && ComputeConfig.GetYdb().GetControlPlane().GetEnable();
+ const NFq::NConfig::TComputeConfig& GetProto() const {
+ return ComputeConfig;
}
private:
NFq::NConfig::TComputeConfig ComputeConfig;
+ NFq::NConfig::EComputeType DefaultCompute;
};
} /* NFq */
diff --git a/ydb/core/fq/libs/compute/common/run_actor_params.cpp b/ydb/core/fq/libs/compute/common/run_actor_params.cpp
index a939a8969f..b621f895c8 100644
--- a/ydb/core/fq/libs/compute/common/run_actor_params.cpp
+++ b/ydb/core/fq/libs/compute/common/run_actor_params.cpp
@@ -53,7 +53,8 @@ TRunActorParams::TRunActorParams(
const Fq::Private::TaskResources& resources,
const TString& executionId,
const TString& operationId,
- const NFq::NConfig::TYdbStorageConfig& computeConnection
+ const NFq::NConfig::TYdbStorageConfig& computeConnection,
+ TDuration resultTtl
)
: YqSharedResources(yqSharedResources)
, CredentialsProviderFactory(credentialsProviderFactory)
@@ -104,6 +105,7 @@ TRunActorParams::TRunActorParams(
, ExecutionId(executionId)
, OperationId(operationId, true)
, ComputeConnection(computeConnection)
+ , ResultTtl(resultTtl)
{
}
@@ -128,6 +130,7 @@ IOutputStream& operator<<(IOutputStream& out, const TRunActorParams& params) {
<< " ExecutionId: " << params.ExecutionId
<< " OperationId: " << (params.OperationId.GetKind() != Ydb::TOperationId::UNUSED ? ProtoToString(params.OperationId) : "<empty>")
<< " ComputeConnection: " << params.ComputeConnection.ShortDebugString()
+ << " ResultTtl: " << params.ResultTtl
<< " }";
}
diff --git a/ydb/core/fq/libs/compute/common/run_actor_params.h b/ydb/core/fq/libs/compute/common/run_actor_params.h
index 2e307bbb4e..f3c1f54dbe 100644
--- a/ydb/core/fq/libs/compute/common/run_actor_params.h
+++ b/ydb/core/fq/libs/compute/common/run_actor_params.h
@@ -73,7 +73,8 @@ struct TRunActorParams { // TODO2 : Change name
const Fq::Private::TaskResources& resources,
const TString& executionId,
const TString& operationId,
- const NFq::NConfig::TYdbStorageConfig& computeConnection
+ const NFq::NConfig::TYdbStorageConfig& computeConnection,
+ TDuration resultTtl
);
TRunActorParams(const TRunActorParams& params) = default;
@@ -133,6 +134,7 @@ struct TRunActorParams { // TODO2 : Change name
TString ExecutionId;
NYdb::TOperation::TOperationId OperationId;
NFq::NConfig::TYdbStorageConfig ComputeConnection;
+ TDuration ResultTtl;
};
} /* NFq */
diff --git a/ydb/core/fq/libs/compute/common/utils.h b/ydb/core/fq/libs/compute/common/utils.h
new file mode 100644
index 0000000000..7f59368904
--- /dev/null
+++ b/ydb/core/fq/libs/compute/common/utils.h
@@ -0,0 +1,27 @@
+#pragma once
+
+#include <ydb/core/fq/libs/compute/common/config.h>
+#include <ydb/core/fq/libs/shared_resources/shared_resources.h>
+#include <ydb/core/fq/libs/ydb/ydb.h>
+#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
+
+namespace NFq {
+
+inline std::shared_ptr<NYdb::NTable::TTableClient> CreateNewTableClient(const TString& scope,
+ const NFq::TComputeConfig& computeConfig,
+ const NFq::NConfig::TYdbStorageConfig& connection,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory) {
+
+ NFq::NConfig::TYdbStorageConfig computeConnection = computeConfig.GetConnection(scope);
+ computeConnection.set_endpoint(connection.endpoint());
+ computeConnection.set_database(connection.database());
+ computeConnection.set_usessl(connection.usessl());
+
+ auto tableSettings = GetClientSettings<NYdb::NTable::TClientSettings>(computeConnection,
+ credentialsProviderFactory);
+ return std::make_shared<NYdb::NTable::TTableClient>(yqSharedResources->UserSpaceYdbDriver,
+ tableSettings);
+}
+
+} // namespace NFq
diff --git a/ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-x86_64.txt
index a89b1eff25..34751517aa 100644
--- a/ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/fq/libs/compute/ydb/CMakeLists.darwin-x86_64.txt
@@ -8,6 +8,7 @@
add_subdirectory(control_plane)
add_subdirectory(events)
+add_subdirectory(synchronization_service)
add_library(libs-compute-ydb)
target_compile_options(libs-compute-ydb PRIVATE
diff --git a/ydb/core/fq/libs/compute/ydb/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/compute/ydb/CMakeLists.linux-aarch64.txt
index fb3627b959..0f21cc1288 100644
--- a/ydb/core/fq/libs/compute/ydb/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/fq/libs/compute/ydb/CMakeLists.linux-aarch64.txt
@@ -8,6 +8,7 @@
add_subdirectory(control_plane)
add_subdirectory(events)
+add_subdirectory(synchronization_service)
add_library(libs-compute-ydb)
target_compile_options(libs-compute-ydb PRIVATE
diff --git a/ydb/core/fq/libs/compute/ydb/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/compute/ydb/CMakeLists.linux-x86_64.txt
index fb3627b959..0f21cc1288 100644
--- a/ydb/core/fq/libs/compute/ydb/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/fq/libs/compute/ydb/CMakeLists.linux-x86_64.txt
@@ -8,6 +8,7 @@
add_subdirectory(control_plane)
add_subdirectory(events)
+add_subdirectory(synchronization_service)
add_library(libs-compute-ydb)
target_compile_options(libs-compute-ydb PRIVATE
diff --git a/ydb/core/fq/libs/compute/ydb/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/compute/ydb/CMakeLists.windows-x86_64.txt
index a89b1eff25..34751517aa 100644
--- a/ydb/core/fq/libs/compute/ydb/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/fq/libs/compute/ydb/CMakeLists.windows-x86_64.txt
@@ -8,6 +8,7 @@
add_subdirectory(control_plane)
add_subdirectory(events)
+add_subdirectory(synchronization_service)
add_library(libs-compute-ydb)
target_compile_options(libs-compute-ydb PRIVATE
diff --git a/ydb/core/fq/libs/compute/ydb/actors_factory.cpp b/ydb/core/fq/libs/compute/ydb/actors_factory.cpp
index 6f299dd6aa..f347334d46 100644
--- a/ydb/core/fq/libs/compute/ydb/actors_factory.cpp
+++ b/ydb/core/fq/libs/compute/ydb/actors_factory.cpp
@@ -53,8 +53,8 @@ struct TActorFactory : public IActorFactory {
std::unique_ptr<NActors::IActor> CreateResultWriter(const NActors::TActorId& parent,
const NActors::TActorId& connector,
const NActors::TActorId& pinger,
- const TString& executionId) const override {
- return CreateResultWriterActor(Params, parent, connector, pinger, executionId, Counters);
+ const NKikimr::NOperationId::TOperationId& operationId) const override {
+ return CreateResultWriterActor(Params, parent, connector, pinger, operationId, Counters);
}
std::unique_ptr<NActors::IActor> CreateResourcesCleaner(const NActors::TActorId& parent,
diff --git a/ydb/core/fq/libs/compute/ydb/actors_factory.h b/ydb/core/fq/libs/compute/ydb/actors_factory.h
index 64292e0156..afbdbb13ae 100644
--- a/ydb/core/fq/libs/compute/ydb/actors_factory.h
+++ b/ydb/core/fq/libs/compute/ydb/actors_factory.h
@@ -26,7 +26,7 @@ struct IActorFactory : public TThrRefBase {
virtual std::unique_ptr<NActors::IActor> CreateResultWriter(const NActors::TActorId& parent,
const NActors::TActorId& connector,
const NActors::TActorId& pinger,
- const TString& executionId) const = 0;
+ const NKikimr::NOperationId::TOperationId& operationId) const = 0;
virtual std::unique_ptr<NActors::IActor> CreateResourcesCleaner(const NActors::TActorId& parent,
const NActors::TActorId& connector,
const NYdb::TOperation::TOperationId& operationId) const = 0;
diff --git a/ydb/core/fq/libs/compute/ydb/base_compute_actor.h b/ydb/core/fq/libs/compute/ydb/base_compute_actor.h
index 8148271ec2..a4fa8f363e 100644
--- a/ydb/core/fq/libs/compute/ydb/base_compute_actor.h
+++ b/ydb/core/fq/libs/compute/ydb/base_compute_actor.h
@@ -20,7 +20,14 @@ public:
using TBase::PassAway;
TBaseComputeActor(const ::NYql::NCommon::TServiceCounters& queryCounters, const TString& stepName)
- : Counters(MakeIntrusive<TComputeRequestCounters>("Total", queryCounters.Counters->GetSubgroup("step", stepName)))
+ : BaseCounters(queryCounters.Counters)
+ , Counters(MakeIntrusive<TComputeRequestCounters>("Total", queryCounters.Counters->GetSubgroup("step", stepName)))
+ , TotalStartTime(TInstant::Now())
+ {}
+
+ TBaseComputeActor(const ::NMonitoring::TDynamicCounterPtr& baseCounters, const TString& stepName)
+ : BaseCounters(baseCounters)
+ , Counters(MakeIntrusive<TComputeRequestCounters>("Total", baseCounters->GetSubgroup("step", stepName)))
, TotalStartTime(TInstant::Now())
{}
@@ -53,7 +60,12 @@ public:
return Counters->Counters;
}
+ ::NMonitoring::TDynamicCounterPtr GetBaseCounters() const {
+ return BaseCounters;
+ }
+
private:
+ ::NMonitoring::TDynamicCounterPtr BaseCounters;
TComputeRequestCountersPtr Counters;
TInstant TotalStartTime;
};
diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-x86_64.txt
index 7b5b602ee1..467f9c192c 100644
--- a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-x86_64.txt
@@ -16,6 +16,7 @@ target_link_libraries(compute-ydb-control_plane PUBLIC
yutil
cpp-actors-core
cpp-actors-protos
+ compute-ydb-synchronization_service
libs-control_plane_storage-proto
libs-quota_manager-proto
ydb-core-protos
diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-aarch64.txt
index 7c699add78..c0c463675b 100644
--- a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-aarch64.txt
@@ -17,6 +17,7 @@ target_link_libraries(compute-ydb-control_plane PUBLIC
yutil
cpp-actors-core
cpp-actors-protos
+ compute-ydb-synchronization_service
libs-control_plane_storage-proto
libs-quota_manager-proto
ydb-core-protos
diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-x86_64.txt
index 7c699add78..c0c463675b 100644
--- a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.linux-x86_64.txt
@@ -17,6 +17,7 @@ target_link_libraries(compute-ydb-control_plane PUBLIC
yutil
cpp-actors-core
cpp-actors-protos
+ compute-ydb-synchronization_service
libs-control_plane_storage-proto
libs-quota_manager-proto
ydb-core-protos
diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.windows-x86_64.txt
index 7b5b602ee1..467f9c192c 100644
--- a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.windows-x86_64.txt
@@ -16,6 +16,7 @@ target_link_libraries(compute-ydb-control_plane PUBLIC
yutil
cpp-actors-core
cpp-actors-protos
+ compute-ydb-synchronization_service
libs-control_plane_storage-proto
libs-quota_manager-proto
ydb-core-protos
diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp b/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp
index 6ddd625a1d..ce8f98d83a 100644
--- a/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp
+++ b/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp
@@ -1,10 +1,11 @@
#include "compute_database_control_plane_service.h"
#include <ydb/core/fq/libs/compute/ydb/events/events.h>
-#include <ydb/core/fq/libs/control_plane_storage/events/events.h>
+#include <ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.h>
#include <ydb/core/fq/libs/config/protos/compute.pb.h>
-#include <ydb/core/fq/libs/control_plane_storage/control_plane_storage.h>
#include <ydb/core/fq/libs/config/protos/issue_id.pb.h>
+#include <ydb/core/fq/libs/control_plane_storage/control_plane_storage.h>
+#include <ydb/core/fq/libs/control_plane_storage/events/events.h>
#include <ydb/core/fq/libs/ydb/ydb.h>
#include <ydb/library/security/ydb_credentials_provider_factory.h>
@@ -32,15 +33,30 @@ using namespace NFq;
class TCreateDatabaseRequestActor : public NActors::TActorBootstrapped<TCreateDatabaseRequestActor> {
public:
- TCreateDatabaseRequestActor(const TActorId& databaseClientActorId, TEvYdbCompute::TEvCreateDatabaseRequest::TPtr& request)
+ TCreateDatabaseRequestActor(const TActorId& databaseClientActorId, const TActorId& synchronizationServiceActorId, const NFq::NConfig::TComputeConfig& config, TEvYdbCompute::TEvCreateDatabaseRequest::TPtr& request)
: DatabaseClientActorId(databaseClientActorId)
+ , SynchronizationServiceActorId(synchronizationServiceActorId)
+ , Config(config)
, Request(request)
{}
static constexpr char ActorName[] = "FQ_CREATE_DATABASE_REQUEST_ACTOR";
void Bootstrap() {
- Send(NFq::ControlPlaneStorageServiceActorId(), new TEvControlPlaneStorage::TEvDescribeDatabaseRequest{Request.Get()->Get()->CloudId, Request.Get()->Get()->Scope});
+ const auto& controlPlane = Config.GetYdb().GetControlPlane();
+ switch (controlPlane.type_case()) {
+ case NConfig::TYdbComputeControlPlane::TYPE_NOT_SET:
+ case NConfig::TYdbComputeControlPlane::kSingle: {
+ *Result.mutable_connection() = Config.GetYdb().GetControlPlane().GetSingle().GetConnection();
+ Send(SynchronizationServiceActorId, new TEvYdbCompute::TEvSynchronizeRequest{Request.Get()->Get()->CloudId, Request.Get()->Get()->Scope, Config.GetYdb().GetControlPlane().GetSingle().GetConnection()});
+ }
+ break;
+ case NConfig::TYdbComputeControlPlane::kCms:
+ case NConfig::TYdbComputeControlPlane::kYdbcp:
+ Send(NFq::ControlPlaneStorageServiceActorId(), new TEvControlPlaneStorage::TEvDescribeDatabaseRequest{Request.Get()->Get()->CloudId, Request.Get()->Get()->Scope});
+ break;
+ }
+
Become(&TCreateDatabaseRequestActor::StateFunc);
}
@@ -48,6 +64,7 @@ public:
hFunc(TEvControlPlaneStorage::TEvDescribeDatabaseResponse, Handle);
hFunc(TEvYdbCompute::TEvCreateDatabaseResponse, Handle);
hFunc(TEvControlPlaneStorage::TEvCreateDatabaseResponse, Handle);
+ hFunc(TEvYdbCompute::TEvSynchronizeResponse, Handle);
)
void Handle(TEvControlPlaneStorage::TEvDescribeDatabaseResponse::TPtr& ev) {
@@ -64,8 +81,8 @@ public:
return;
}
- Send(Request->Sender, new TEvYdbCompute::TEvCreateDatabaseResponse{result});
- PassAway();
+ Result = result;
+ Send(SynchronizationServiceActorId, new TEvYdbCompute::TEvSynchronizeRequest{Request.Get()->Get()->CloudId, Request.Get()->Get()->Scope, result.connection()});
}
void Handle(TEvYdbCompute::TEvCreateDatabaseResponse::TPtr& ev) {
@@ -86,6 +103,16 @@ public:
return;
}
+ Send(SynchronizationServiceActorId, new TEvYdbCompute::TEvSynchronizeRequest{Request.Get()->Get()->CloudId, Request.Get()->Get()->Scope, Result.connection()});
+ }
+
+ void Handle(TEvYdbCompute::TEvSynchronizeResponse::TPtr& ev) {
+ const auto& response = *ev.Get()->Get();
+ if (response.Status != NYdb::EStatus::SUCCESS) {
+ FailedAndPassAway(response.Issues);
+ return;
+ }
+
Send(Request->Sender, new TEvYdbCompute::TEvCreateDatabaseResponse{Result});
PassAway();
}
@@ -95,7 +122,10 @@ public:
PassAway();
}
+private:
TActorId DatabaseClientActorId;
+ TActorId SynchronizationServiceActorId;
+ NFq::NConfig::TComputeConfig Config;
TEvYdbCompute::TEvCreateDatabaseRequest::TPtr Request;
FederatedQuery::Internal::ComputeDatabaseInternal Result;
};
@@ -107,14 +137,29 @@ class TComputeDatabaseControlPlaneServiceActor : public NActors::TActorBootstrap
};
public:
- TComputeDatabaseControlPlaneServiceActor(const NFq::NConfig::TComputeConfig& config, const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory)
+ TComputeDatabaseControlPlaneServiceActor(const NFq::NConfig::TComputeConfig& config,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
+ const NConfig::TCommonConfig& commonConfig,
+ const TSigner::TPtr& signer,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const ::NMonitoring::TDynamicCounterPtr& counters)
: Config(config)
+ , CommonConfig(commonConfig)
+ , Signer(signer)
+ , YqSharedResources(yqSharedResources)
, CredentialsProviderFactory(credentialsProviderFactory)
+ , Counters(counters)
{}
static constexpr char ActorName[] = "FQ_COMPUTE_DATABASE_SERVICE_ACTOR";
void Bootstrap() {
+ SynchronizationServiceActorId = Register(CreateSynchronizationServiceActor(CommonConfig,
+ Config,
+ Signer,
+ YqSharedResources,
+ CredentialsProviderFactory,
+ Counters).release());
const auto& controlPlane = Config.GetYdb().GetControlPlane();
switch (controlPlane.type_case()) {
case NConfig::TYdbComputeControlPlane::TYPE_NOT_SET:
@@ -173,9 +218,7 @@ public:
void Handle(TEvYdbCompute::TEvCreateDatabaseRequest::TPtr& ev) {
if (Config.GetYdb().GetControlPlane().HasSingle()) {
- FederatedQuery::Internal::ComputeDatabaseInternal result;
- *result.mutable_connection() = Config.GetYdb().GetControlPlane().GetSingle().GetConnection();
- Send(ev->Sender, new TEvYdbCompute::TEvCreateDatabaseResponse(result));
+ Register(new TCreateDatabaseRequestActor(TActorId{}, SynchronizationServiceActorId, Config, ev));
return;
}
@@ -183,12 +226,12 @@ public:
auto it = ScopeToDatabaseClient.find(scope);
if (it != ScopeToDatabaseClient.end()) {
FillRequest(ev, it->second.Config);
- Register(new TCreateDatabaseRequestActor(it->second.ActorId, ev));
+ Register(new TCreateDatabaseRequestActor(it->second.ActorId, SynchronizationServiceActorId, Config, ev));
return;
}
const auto& clientConfig = CommonDatabaseClients[MultiHash(scope) % CommonDatabaseClients.size()];
FillRequest(ev, clientConfig.Config);
- Register(new TCreateDatabaseRequestActor(clientConfig.ActorId, ev));
+ Register(new TCreateDatabaseRequestActor(clientConfig.ActorId, SynchronizationServiceActorId, Config, ev));
}
void FillRequest(TEvYdbCompute::TEvCreateDatabaseRequest::TPtr& ev, const NConfig::TComputeDatabaseConfig& config) {
@@ -198,14 +241,29 @@ public:
}
private:
+ TActorId SynchronizationServiceActorId;
NFq::NConfig::TComputeConfig Config;
TVector<TClientConfig> CommonDatabaseClients;
TMap<TString, TClientConfig> ScopeToDatabaseClient;
+ NConfig::TCommonConfig CommonConfig;
+ TSigner::TPtr Signer;
+ TYqSharedResources::TPtr YqSharedResources;
NKikimr::TYdbCredentialsProviderFactory CredentialsProviderFactory;
+ ::NMonitoring::TDynamicCounterPtr Counters;
};
-std::unique_ptr<NActors::IActor> CreateComputeDatabaseControlPlaneServiceActor(const NFq::NConfig::TComputeConfig& config, const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory) {
- return std::make_unique<TComputeDatabaseControlPlaneServiceActor>(config, credentialsProviderFactory);
+std::unique_ptr<NActors::IActor> CreateComputeDatabaseControlPlaneServiceActor(const NFq::NConfig::TComputeConfig& config,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
+ const NConfig::TCommonConfig& commonConfig,
+ const TSigner::TPtr& signer,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const ::NMonitoring::TDynamicCounterPtr& counters) {
+ return std::make_unique<TComputeDatabaseControlPlaneServiceActor>(config,
+ credentialsProviderFactory,
+ commonConfig,
+ signer,
+ yqSharedResources,
+ counters);
}
NActors::TActorId ComputeDatabaseControlPlaneServiceActorId() {
diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.h b/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.h
index 7b2a13dfcb..5b36e44858 100644
--- a/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.h
+++ b/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.h
@@ -2,6 +2,10 @@
#include <ydb/core/fq/libs/config/protos/compute.pb.h>
+#include <ydb/core/fq/libs/config/protos/common.pb.h>
+#include <ydb/core/fq/libs/shared_resources/shared_resources.h>
+#include <ydb/core/fq/libs/signer/signer.h>
+
#include <ydb/library/security/ydb_credentials_provider_factory.h>
#include <ydb/library/ycloud/impl/grpc_service_settings.h>
@@ -11,7 +15,12 @@ namespace NFq {
NActors::TActorId ComputeDatabaseControlPlaneServiceActorId();
-std::unique_ptr<NActors::IActor> CreateComputeDatabaseControlPlaneServiceActor(const NFq::NConfig::TComputeConfig& config, const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory);
+std::unique_ptr<NActors::IActor> CreateComputeDatabaseControlPlaneServiceActor(const NFq::NConfig::TComputeConfig& config,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
+ const NConfig::TCommonConfig& commonConfig,
+ const TSigner::TPtr& signer,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const ::NMonitoring::TDynamicCounterPtr& counters);
std::unique_ptr<NActors::IActor> CreateYdbcpGrpcClientActor(const NCloud::TGrpcClientSettings& settings, const NYdb::TCredentialsProviderPtr& credentialsProvider);
diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/ya.make b/ydb/core/fq/libs/compute/ydb/control_plane/ya.make
index 5692cef436..5e80ad8045 100644
--- a/ydb/core/fq/libs/compute/ydb/control_plane/ya.make
+++ b/ydb/core/fq/libs/compute/ydb/control_plane/ya.make
@@ -9,6 +9,7 @@ SRCS(
PEERDIR(
library/cpp/actors/core
library/cpp/actors/protos
+ ydb/core/fq/libs/compute/ydb/synchronization_service
ydb/core/fq/libs/control_plane_storage/proto
ydb/core/fq/libs/quota_manager/proto
ydb/core/protos
diff --git a/ydb/core/fq/libs/compute/ydb/events/events.h b/ydb/core/fq/libs/compute/ydb/events/events.h
index e6e88325ce..442483958d 100644
--- a/ydb/core/fq/libs/compute/ydb/events/events.h
+++ b/ydb/core/fq/libs/compute/ydb/events/events.h
@@ -36,10 +36,14 @@ struct TEvYdbCompute {
EvExecuterResponse,
EvStatusTrackerResponse,
EvResultWriterResponse,
+ EvResultSetWriterResponse,
EvResourcesCleanerResponse,
EvFinalizerResponse,
EvStopperResponse,
+ EvSynchronizeRequest,
+ EvSynchronizeResponse,
+
EvEnd
};
@@ -47,13 +51,21 @@ struct TEvYdbCompute {
// Events
struct TEvExecuteScriptRequest : public NActors::TEventLocal<TEvExecuteScriptRequest, EvExecuteScriptRequest> {
- TEvExecuteScriptRequest(TString sql, TString idempotencyKey)
+ TEvExecuteScriptRequest(TString sql, TString idempotencyKey, const TDuration& resultTtl, const TDuration& operationTimeout, Ydb::Query::Syntax syntax, Ydb::Query::ExecMode execMode)
: Sql(std::move(sql))
, IdempotencyKey(std::move(idempotencyKey))
+ , ResultTtl(resultTtl)
+ , OperationTimeout(operationTimeout)
+ , Syntax(syntax)
+ , ExecMode(execMode)
{}
TString Sql;
TString IdempotencyKey;
+ TDuration ResultTtl;
+ TDuration OperationTimeout;
+ Ydb::Query::Syntax Syntax = Ydb::Query::SYNTAX_YQL_V1;
+ Ydb::Query::ExecMode ExecMode = Ydb::Query::EXEC_MODE_EXECUTE;
};
struct TEvExecuteScriptResponse : public NActors::TEventLocal<TEvExecuteScriptResponse, EvExecuteScriptResponse> {
@@ -88,25 +100,27 @@ struct TEvYdbCompute {
, Status(status)
{}
- TEvGetOperationResponse(NYdb::NQuery::EExecStatus execStatus, NYql::TIssues issues)
+ TEvGetOperationResponse(NYdb::NQuery::EExecStatus execStatus, const TVector<Ydb::Query::ResultSetMeta>& resultSetsMeta, NYql::TIssues issues)
: ExecStatus(execStatus)
+ , ResultSetsMeta(resultSetsMeta)
, Issues(std::move(issues))
, Status(NYdb::EStatus::SUCCESS)
{}
NYdb::NQuery::EExecStatus ExecStatus = NYdb::NQuery::EExecStatus::Unspecified;
+ TVector<Ydb::Query::ResultSetMeta> ResultSetsMeta;
NYql::TIssues Issues;
NYdb::EStatus Status;
};
struct TEvFetchScriptResultRequest : public NActors::TEventLocal<TEvFetchScriptResultRequest, EvFetchScriptResultRequest> {
- TEvFetchScriptResultRequest(TString executionId, int64_t resultSetId, const TString& fetchToken)
- : ExecutionId(std::move(executionId))
+ TEvFetchScriptResultRequest(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetId, const TString& fetchToken)
+ : OperationId(operationId)
, ResultSetId(resultSetId)
, FetchToken(fetchToken)
{}
- TString ExecutionId;
+ NKikimr::NOperationId::TOperationId OperationId;
int64_t ResultSetId = 0;
TString FetchToken;
};
@@ -272,6 +286,57 @@ struct TEvYdbCompute {
NYql::TIssues Issues;
NYdb::EStatus Status;
};
+
+
+ struct TEvResultSetWriterResponse : public NActors::TEventLocal<TEvResultSetWriterResponse, EvResultSetWriterResponse> {
+ TEvResultSetWriterResponse(ui64 resultSetId, NYql::TIssues issues, NYdb::EStatus status)
+ : ResultSetId(resultSetId)
+ , Issues(std::move(issues))
+ , Status(status)
+ {}
+
+ TEvResultSetWriterResponse(ui64 resultSetId, int64_t rowsCount, bool truncated)
+ : ResultSetId(resultSetId)
+ , Status(NYdb::EStatus::SUCCESS)
+ , RowsCount(rowsCount)
+ , Truncated(truncated)
+ {}
+
+ const ui64 ResultSetId;
+ NYql::TIssues Issues;
+ NYdb::EStatus Status;
+ int64_t RowsCount = 0;
+ bool Truncated = false;
+ };
+
+ struct TEvSynchronizeRequest : public NActors::TEventLocal<TEvSynchronizeRequest, EvSynchronizeRequest> {
+ TEvSynchronizeRequest(const TString& cloudId, const TString& scope, const NFq::NConfig::TYdbStorageConfig& connectionConfig)
+ : CloudId(cloudId)
+ , Scope(scope)
+ , ConnectionConfig(connectionConfig)
+ {}
+
+ TString CloudId;
+ TString Scope;
+ NFq::NConfig::TYdbStorageConfig ConnectionConfig;
+ };
+
+ struct TEvSynchronizeResponse : public NActors::TEventLocal<TEvSynchronizeResponse, EvSynchronizeResponse> {
+ TEvSynchronizeResponse(const TString& scope)
+ : Scope(scope)
+ , Status(NYdb::EStatus::SUCCESS)
+ {}
+
+ TEvSynchronizeResponse(const TString& scope, NYql::TIssues issues, NYdb::EStatus status)
+ : Scope(scope)
+ , Issues(std::move(issues))
+ , Status(status)
+ {}
+
+ TString Scope;
+ NYql::TIssues Issues;
+ NYdb::EStatus Status;
+ };
};
}
diff --git a/ydb/core/fq/libs/compute/ydb/executer_actor.cpp b/ydb/core/fq/libs/compute/ydb/executer_actor.cpp
index 49d5378ef8..27325504bf 100644
--- a/ydb/core/fq/libs/compute/ydb/executer_actor.cpp
+++ b/ydb/core/fq/libs/compute/ydb/executer_actor.cpp
@@ -114,7 +114,39 @@ public:
}
void SendExecuteScript() {
- Register(new TRetryActor<TEvYdbCompute::TEvExecuteScriptRequest, TEvYdbCompute::TEvExecuteScriptResponse, TString, TString>(Counters.GetCounters(ERequestType::RT_EXECUTE_SCRIPT), SelfId(), Connector, Params.Sql, Params.JobId));
+ Register(new TRetryActor<TEvYdbCompute::TEvExecuteScriptRequest, TEvYdbCompute::TEvExecuteScriptResponse, TString, TString, TDuration, TDuration, Ydb::Query::Syntax, Ydb::Query::ExecMode>(Counters.GetCounters(ERequestType::RT_EXECUTE_SCRIPT), SelfId(), Connector, Params.Sql, Params.JobId, Params.ResultTtl, Params.ExecutionTtl, GetSyntax(), GetExecuteMode()));
+ }
+
+ Ydb::Query::Syntax GetSyntax() const {
+ switch (Params.QuerySyntax) {
+ case FederatedQuery::QueryContent::PG:
+ return Ydb::Query::SYNTAX_PG;
+ case FederatedQuery::QueryContent::YQL_V1:
+ return Ydb::Query::SYNTAX_YQL_V1;
+ case FederatedQuery::QueryContent::QUERY_SYNTAX_UNSPECIFIED:
+ case FederatedQuery::QueryContent_QuerySyntax_QueryContent_QuerySyntax_INT_MAX_SENTINEL_DO_NOT_USE_:
+ case FederatedQuery::QueryContent_QuerySyntax_QueryContent_QuerySyntax_INT_MIN_SENTINEL_DO_NOT_USE_:
+ return Ydb::Query::SYNTAX_UNSPECIFIED;
+ }
+ }
+
+ Ydb::Query::ExecMode GetExecuteMode() const {
+ switch (Params.ExecuteMode) {
+ case FederatedQuery::RUN:
+ return Ydb::Query::ExecMode::EXEC_MODE_EXECUTE;
+ case FederatedQuery::PARSE:
+ return Ydb::Query::ExecMode::EXEC_MODE_PARSE;
+ case FederatedQuery::VALIDATE:
+ return Ydb::Query::ExecMode::EXEC_MODE_VALIDATE;
+ case FederatedQuery::EXPLAIN:
+ return Ydb::Query::ExecMode::EXEC_MODE_EXPLAIN;
+ case FederatedQuery::EXECUTE_MODE_UNSPECIFIED:
+ case FederatedQuery::COMPILE:
+ case FederatedQuery::SAVE:
+ case FederatedQuery::ExecuteMode_INT_MAX_SENTINEL_DO_NOT_USE_:
+ case FederatedQuery::ExecuteMode_INT_MIN_SENTINEL_DO_NOT_USE_:
+ return Ydb::Query::ExecMode::EXEC_MODE_UNSPECIFIED;
+ }
}
void SendPingTask() {
diff --git a/ydb/core/fq/libs/compute/ydb/result_writer_actor.cpp b/ydb/core/fq/libs/compute/ydb/result_writer_actor.cpp
index e2bc818868..65297ced74 100644
--- a/ydb/core/fq/libs/compute/ydb/result_writer_actor.cpp
+++ b/ydb/core/fq/libs/compute/ydb/result_writer_actor.cpp
@@ -22,31 +22,29 @@
#include <library/cpp/actors/core/log.h>
#include <library/cpp/protobuf/interop/cast.h>
-#define LOG_E(stream) LOG_ERROR_S(*TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " ExecutionId: " << ExecutionId << " " << stream)
-#define LOG_W(stream) LOG_WARN_S( *TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " ExecutionId: " << ExecutionId << " " << stream)
-#define LOG_I(stream) LOG_INFO_S( *TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " ExecutionId: " << ExecutionId << " " << stream)
-#define LOG_D(stream) LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " ExecutionId: " << ExecutionId << " " << stream)
-#define LOG_T(stream) LOG_TRACE_S(*TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " ExecutionId: " << ExecutionId << " " << stream)
+#define LOG_E(stream) LOG_ERROR_S(*TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " OperationId: " << ProtoToString(OperationId) << " " << stream)
+#define LOG_W(stream) LOG_WARN_S( *TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " OperationId: " << ProtoToString(OperationId) << " " << stream)
+#define LOG_I(stream) LOG_INFO_S( *TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " OperationId: " << ProtoToString(OperationId) << " " << stream)
+#define LOG_D(stream) LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " OperationId: " << ProtoToString(OperationId) << " " << stream)
+#define LOG_T(stream) LOG_TRACE_S(*TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [ResultWriter] QueryId: " << Params.QueryId << " OperationId: " << ProtoToString(OperationId) << " " << stream)
namespace NFq {
using namespace NActors;
using namespace NFq;
-class TResultWriterActor : public TBaseComputeActor<TResultWriterActor> {
+class TResultSetWriterActor : public TBaseComputeActor<TResultSetWriterActor> {
public:
enum ERequestType {
RT_FETCH_SCRIPT_RESULT,
- RT_WRITE_RESULT,
- RT_PING,
+ RT_WRITE_RESULT_SET,
RT_MAX
};
class TCounters: public virtual TThrRefBase {
std::array<TComputeRequestCountersPtr, RT_MAX> Requests = CreateArray<RT_MAX, TComputeRequestCountersPtr>({
{ MakeIntrusive<TComputeRequestCounters>("FetchScriptResult") },
- { MakeIntrusive<TComputeRequestCounters>("WriteResult") },
- { MakeIntrusive<TComputeRequestCounters>("Ping") }
+ { MakeIntrusive<TComputeRequestCounters>("WriteResultSet") }
});
::NMonitoring::TDynamicCounterPtr Counters;
@@ -65,57 +63,40 @@ public:
}
};
- TResultWriterActor(const TRunActorParams& params, const TActorId& parent, const TActorId& connector, const TActorId& pinger, const TString& executionId, const ::NYql::NCommon::TServiceCounters& queryCounters)
- : TBaseComputeActor(queryCounters, "ResultWriter")
+ TResultSetWriterActor(const TRunActorParams& params, int64_t resultSetId, const TActorId& parent, const TActorId& connector, const NKikimr::NOperationId::TOperationId& operationId, const ::NMonitoring::TDynamicCounterPtr& counters)
+ : TBaseComputeActor(counters, "ResultSetWriter")
, Params(params)
+ , ResultSetId(resultSetId)
, Parent(parent)
, Connector(connector)
- , Pinger(pinger)
- , ExecutionId(executionId)
+ , OperationId(operationId)
, Counters(GetStepCountersSubgroup())
{}
- static constexpr char ActorName[] = "FQ_RESULT_WRITER_ACTOR";
+ static constexpr char ActorName[] = "FQ_RESULT_SET_WRITER_ACTOR";
void Start() {
- LOG_I("Start result writer actor. Compute state: " << FederatedQuery::QueryMeta::ComputeStatus_Name(Params.Status));
- Become(&TResultWriterActor::StateFunc);
+ LOG_I("Start result set writer actor, id: " << ResultSetId);
+ Become(&TResultSetWriterActor::StateFunc);
SendFetchScriptResultRequest();
}
STRICT_STFUNC(StateFunc,
hFunc(TEvYdbCompute::TEvFetchScriptResultResponse, Handle);
hFunc(NFq::TEvInternalService::TEvWriteResultResponse, Handle);
- hFunc(TEvents::TEvForwardPingResponse, Handle);
)
- void Handle(const TEvents::TEvForwardPingResponse::TPtr& ev) {
- auto pingCounters = Counters.GetCounters(ERequestType::RT_PING);
- pingCounters->InFly->Dec();
- pingCounters->LatencyMs->Collect((TInstant::Now() - StartTime).MilliSeconds());
- if (ev.Get()->Get()->Success) {
- pingCounters->Ok->Inc();
- LOG_I("The result has been moved");
- Send(Parent, new TEvYdbCompute::TEvResultWriterResponse({}, NYdb::EStatus::SUCCESS));
- CompleteAndPassAway();
- } else {
- pingCounters->Error->Inc();
- LOG_E("Move result error");
- Send(Parent, new TEvYdbCompute::TEvResultWriterResponse(NYql::TIssues{NYql::TIssue{TStringBuilder{} << "Move result error. ExecutionId: " << ExecutionId}}, NYdb::EStatus::INTERNAL_ERROR));
- FailedAndPassAway();
- }
- }
-
void Handle(const TEvYdbCompute::TEvFetchScriptResultResponse::TPtr& ev) {
const auto& response = *ev.Get()->Get();
if (response.Status != NYdb::EStatus::SUCCESS) {
LOG_E("Can't fetch script result: " << ev->Get()->Issues.ToOneLineString());
- Send(Parent, new TEvYdbCompute::TEvResultWriterResponse(ev->Get()->Issues, NYdb::EStatus::INTERNAL_ERROR));
+ Send(Parent, new TEvYdbCompute::TEvResultSetWriterResponse(ResultSetId, ev->Get()->Issues, NYdb::EStatus::INTERNAL_ERROR));
FailedAndPassAway();
return;
}
StartTime = TInstant::Now();
+ Truncated |= response.ResultSet->Truncated();
FetchToken = response.NextFetchToken;
auto emptyResultSet = response.ResultSet->RowsCount() == 0;
const auto resultSetProto = NYdb::TProtoAccessor::GetProto(*response.ResultSet);
@@ -124,27 +105,20 @@ public:
auto chunk = CreateProtoRequestWithoutResultSet(Offset);
Offset += response.ResultSet->RowsCount();
*chunk.mutable_result_set() = resultSetProto;
- auto writeResultCounters = Counters.GetCounters(ERequestType::RT_WRITE_RESULT);
+ auto writeResultCounters = Counters.GetCounters(ERequestType::RT_WRITE_RESULT_SET);
writeResultCounters->InFly->Inc();
Send(NFq::MakeInternalServiceActorId(), new NFq::TEvInternalService::TEvWriteResultRequest(std::move(chunk)));
}
if (!FetchToken) {
- PingTaskRequest.mutable_result_id()->set_value(Params.ResultId);
- PingTaskRequest.set_result_set_count(1);
- auto& resultSetMeta = *PingTaskRequest.add_result_set_meta();
- resultSetMeta.set_rows_count(Offset);
- for (const auto& column: resultSetProto.columns()) {
- *resultSetMeta.add_column() = column;
- }
if (emptyResultSet) {
- SendFinalPingRequest();
+ SendReplyAndPassAway();
}
}
}
void Handle(const NFq::TEvInternalService::TEvWriteResultResponse::TPtr& ev) {
- auto writeResultCounters = Counters.GetCounters(ERequestType::RT_WRITE_RESULT);
+ auto writeResultCounters = Counters.GetCounters(ERequestType::RT_WRITE_RESULT_SET);
writeResultCounters->InFly->Dec();
writeResultCounters->LatencyMs->Collect((TInstant::Now() - StartTime).MilliSeconds());
if (ev.Get()->Get()->Status.IsSuccess()) {
@@ -153,12 +127,12 @@ public:
if (FetchToken) {
SendFetchScriptResultRequest();
} else {
- SendFinalPingRequest();
+ SendReplyAndPassAway();
}
} else {
writeResultCounters->Error->Inc();
LOG_E("Error writing result for offset " << Offset);
- Send(Parent, new TEvYdbCompute::TEvResultWriterResponse(NYql::TIssues{NYql::TIssue{TStringBuilder{} << "Error writing result for offset " << Offset}}, NYdb::EStatus::INTERNAL_ERROR));
+ Send(Parent, new TEvYdbCompute::TEvResultSetWriterResponse(ResultSetId, NYql::TIssues{NYql::TIssue{TStringBuilder{} << "Error writing result for offset " << Offset}}, NYdb::EStatus::INTERNAL_ERROR));
FailedAndPassAway();
}
}
@@ -167,35 +141,181 @@ public:
auto fetchScriptResultCounters = Counters.GetCounters(ERequestType::RT_FETCH_SCRIPT_RESULT);
fetchScriptResultCounters->InFly->Inc();
StartTime = TInstant::Now();
- Register(new TRetryActor<TEvYdbCompute::TEvFetchScriptResultRequest, TEvYdbCompute::TEvFetchScriptResultResponse, TString, int64_t, TString>(Counters.GetCounters(ERequestType::RT_FETCH_SCRIPT_RESULT), SelfId(), Connector, ExecutionId, 0, FetchToken));
+ Register(new TRetryActor<TEvYdbCompute::TEvFetchScriptResultRequest, TEvYdbCompute::TEvFetchScriptResultResponse, NKikimr::NOperationId::TOperationId, int64_t, TString>(Counters.GetCounters(ERequestType::RT_FETCH_SCRIPT_RESULT), SelfId(), Connector, OperationId, ResultSetId, FetchToken));
}
- void SendFinalPingRequest() {
- auto pingCounters = Counters.GetCounters(ERequestType::RT_PING);
- pingCounters->InFly->Inc();
- Send(Pinger, new TEvents::TEvForwardPingRequest(PingTaskRequest));
+ void SendReplyAndPassAway() {
+ Send(Parent, new TEvYdbCompute::TEvResultSetWriterResponse(ResultSetId, Offset, Truncated));
+ PassAway();
}
Fq::Private::WriteTaskResultRequest CreateProtoRequestWithoutResultSet(ui64 startRowIndex) {
Fq::Private::WriteTaskResultRequest protoReq;
protoReq.set_owner_id(Params.Owner);
protoReq.mutable_result_id()->set_value(Params.ResultId);
+ protoReq.set_result_set_id(ResultSetId);
protoReq.set_offset(startRowIndex);
- protoReq.set_result_set_id(0);
- protoReq.set_request_id(0);
*protoReq.mutable_deadline() = NProtoInterop::CastToProto(Params.Deadline);
return protoReq;
}
private:
TRunActorParams Params;
+ uint32_t ResultSetId = 0;
TActorId Parent;
TActorId Connector;
- TActorId Pinger;
- TString ExecutionId;
+ NKikimr::NOperationId::TOperationId OperationId;
TCounters Counters;
TInstant StartTime;
int64_t Offset = 0;
+ bool Truncated = false;
+ TString FetchToken;
+};
+
+class TResultWriterActor : public TBaseComputeActor<TResultWriterActor> {
+public:
+ enum ERequestType {
+ RT_GET_OPERATION,
+ RT_PING,
+ RT_MAX
+ };
+
+ class TCounters: public virtual TThrRefBase {
+ std::array<TComputeRequestCountersPtr, RT_MAX> Requests = CreateArray<RT_MAX, TComputeRequestCountersPtr>({
+ { MakeIntrusive<TComputeRequestCounters>("GetOperation") },
+ { MakeIntrusive<TComputeRequestCounters>("Ping") }
+ });
+
+ ::NMonitoring::TDynamicCounterPtr Counters;
+
+ public:
+ explicit TCounters(const ::NMonitoring::TDynamicCounterPtr& counters)
+ : Counters(counters)
+ {
+ for (auto& request: Requests) {
+ request->Register(Counters);
+ }
+ }
+
+ TComputeRequestCountersPtr GetCounters(ERequestType type) {
+ return Requests[type];
+ }
+ };
+
+ TResultWriterActor(const TRunActorParams& params, const TActorId& parent, const TActorId& connector, const TActorId& pinger, const NKikimr::NOperationId::TOperationId& operationId, const ::NYql::NCommon::TServiceCounters& queryCounters)
+ : TBaseComputeActor(queryCounters, "ResultWriter")
+ , Params(params)
+ , Parent(parent)
+ , Connector(connector)
+ , Pinger(pinger)
+ , OperationId(operationId)
+ , Counters(GetStepCountersSubgroup())
+ {}
+
+ static constexpr char ActorName[] = "FQ_RESULT_WRITER_ACTOR";
+
+ void Start() {
+ LOG_I("Start result writer actor. Compute state: " << FederatedQuery::QueryMeta::ComputeStatus_Name(Params.Status));
+ Become(&TResultWriterActor::StateFunc);
+ SendGetOperation();
+ }
+
+ void SendGetOperation() {
+ Register(new TRetryActor<TEvYdbCompute::TEvGetOperationRequest, TEvYdbCompute::TEvGetOperationResponse, NYdb::TOperation::TOperationId>(Counters.GetCounters(ERequestType::RT_GET_OPERATION), SelfId(), Connector, OperationId));
+ }
+
+ void WriteNextResultSet() {
+ if (CurrentResultSetId < (int64_t)PingTaskRequest.result_set_meta_size()) {
+ Register(new TResultSetWriterActor(Params,
+ CurrentResultSetId++,
+ SelfId(),
+ Connector,
+ OperationId,
+ GetBaseCounters()));
+ return;
+ }
+
+ SendFinalPingRequest();
+ }
+
+ STRICT_STFUNC(StateFunc,
+ hFunc(TEvYdbCompute::TEvGetOperationResponse, Handle);
+ hFunc(TEvYdbCompute::TEvResultSetWriterResponse, Handle);
+ hFunc(TEvents::TEvForwardPingResponse, Handle);
+ )
+
+ void Handle(const TEvYdbCompute::TEvGetOperationResponse::TPtr& ev) {
+ const auto& response = *ev.Get()->Get();
+ if (response.Status != NYdb::EStatus::SUCCESS) {
+ LOG_E("Can't get operation: " << ev->Get()->Issues.ToOneLineString());
+ Send(Parent, new TEvYdbCompute::TEvResultWriterResponse(ev->Get()->Issues, ev->Get()->Status));
+ FailedAndPassAway();
+ return;
+ }
+
+ for (const auto& resultSetMeta: ev.Get()->Get()->ResultSetsMeta) {
+ auto& meta = *PingTaskRequest.add_result_set_meta();
+ for (const auto& column: resultSetMeta.columns()) {
+ *meta.add_column() = column;
+ }
+ }
+
+ WriteNextResultSet();
+ }
+
+ void Handle(const TEvents::TEvForwardPingResponse::TPtr& ev) {
+ auto pingCounters = Counters.GetCounters(ERequestType::RT_PING);
+ pingCounters->InFly->Dec();
+ pingCounters->LatencyMs->Collect((TInstant::Now() - StartTime).MilliSeconds());
+ if (ev.Get()->Get()->Success) {
+ pingCounters->Ok->Inc();
+ LOG_I("The result has been moved");
+ Send(Parent, new TEvYdbCompute::TEvResultWriterResponse({}, NYdb::EStatus::SUCCESS));
+ CompleteAndPassAway();
+ } else {
+ pingCounters->Error->Inc();
+ LOG_E("Move result error");
+ Send(Parent, new TEvYdbCompute::TEvResultWriterResponse(NYql::TIssues{NYql::TIssue{TStringBuilder{} << "Move result error. OperationId: " << ProtoToString(OperationId)}}, NYdb::EStatus::INTERNAL_ERROR));
+ FailedAndPassAway();
+ }
+ }
+
+ void Handle(const TEvYdbCompute::TEvResultSetWriterResponse::TPtr& ev) {
+ const auto& response = *ev.Get()->Get();
+ if (response.Status != NYdb::EStatus::SUCCESS) {
+ LOG_E("Can't fetch script result: " << ev->Get()->Issues.ToOneLineString());
+ Send(Parent, new TEvYdbCompute::TEvResultWriterResponse(ev->Get()->Issues, NYdb::EStatus::INTERNAL_ERROR));
+ FailedAndPassAway();
+ return;
+ }
+ if (response.ResultSetId >= static_cast<ui64>(PingTaskRequest.result_set_meta_size())) {
+ LOG_E("Can't fetch script result: internal error");
+ Send(Parent, new TEvYdbCompute::TEvResultWriterResponse(ev->Get()->Issues, NYdb::EStatus::INTERNAL_ERROR));
+ FailedAndPassAway();
+ return;
+ }
+ auto* meta = PingTaskRequest.mutable_result_set_meta(response.ResultSetId);
+ meta->set_rows_count(response.RowsCount);
+ meta->set_truncated(response.Truncated);
+ WriteNextResultSet();
+ }
+
+ void SendFinalPingRequest() {
+ auto pingCounters = Counters.GetCounters(ERequestType::RT_PING);
+ pingCounters->InFly->Inc();
+ PingTaskRequest.set_result_set_count(PingTaskRequest.result_set_meta_size());
+ Send(Pinger, new TEvents::TEvForwardPingRequest(PingTaskRequest));
+ }
+
+private:
+ TRunActorParams Params;
+ int64_t CurrentResultSetId = 0;
+ TActorId Parent;
+ TActorId Connector;
+ TActorId Pinger;
+ NKikimr::NOperationId::TOperationId OperationId;
+ TCounters Counters;
+ TInstant StartTime;
TString FetchToken;
Fq::Private::PingTaskRequest PingTaskRequest;
};
@@ -204,9 +324,9 @@ std::unique_ptr<NActors::IActor> CreateResultWriterActor(const TRunActorParams&
const TActorId& parent,
const TActorId& connector,
const TActorId& pinger,
- const TString& executionId,
+ const NKikimr::NOperationId::TOperationId& operationId,
const ::NYql::NCommon::TServiceCounters& queryCounters) {
- return std::make_unique<TResultWriterActor>(params, parent, connector, pinger, executionId, queryCounters);
+ return std::make_unique<TResultWriterActor>(params, parent, connector, pinger, operationId, queryCounters);
}
}
diff --git a/ydb/core/fq/libs/compute/ydb/result_writer_actor.h b/ydb/core/fq/libs/compute/ydb/result_writer_actor.h
index 82418704f4..a87c0967d3 100644
--- a/ydb/core/fq/libs/compute/ydb/result_writer_actor.h
+++ b/ydb/core/fq/libs/compute/ydb/result_writer_actor.h
@@ -12,7 +12,7 @@ std::unique_ptr<NActors::IActor> CreateResultWriterActor(const TRunActorParams&
const NActors::TActorId& parent,
const NActors::TActorId& connector,
const NActors::TActorId& pinger,
- const TString& executionId,
+ const NKikimr::NOperationId::TOperationId& operationId,
const ::NYql::NCommon::TServiceCounters& queryCounters);
}
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..5856408bd5
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(compute-ydb-synchronization_service)
+target_compile_options(compute-ydb-synchronization_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(compute-ydb-synchronization_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ libs-control_plane_storage-proto
+ api-grpc
+ library-db_pool-protos
+ lib-operation_id-protos
+ libs-quota_manager-proto
+ api-grpc-draft
+ ydb-library-services
+)
+target_sources(compute-ydb-synchronization_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.cpp
+)
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..9044c80a4a
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(compute-ydb-synchronization_service)
+target_compile_options(compute-ydb-synchronization_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(compute-ydb-synchronization_service PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ libs-control_plane_storage-proto
+ api-grpc
+ library-db_pool-protos
+ lib-operation_id-protos
+ libs-quota_manager-proto
+ api-grpc-draft
+ ydb-library-services
+)
+target_sources(compute-ydb-synchronization_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.cpp
+)
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..9044c80a4a
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(compute-ydb-synchronization_service)
+target_compile_options(compute-ydb-synchronization_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(compute-ydb-synchronization_service PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ libs-control_plane_storage-proto
+ api-grpc
+ library-db_pool-protos
+ lib-operation_id-protos
+ libs-quota_manager-proto
+ api-grpc-draft
+ ydb-library-services
+)
+target_sources(compute-ydb-synchronization_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.cpp
+)
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..5856408bd5
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(compute-ydb-synchronization_service)
+target_compile_options(compute-ydb-synchronization_service PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(compute-ydb-synchronization_service PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ cpp-actors-protos
+ libs-control_plane_storage-proto
+ api-grpc
+ library-db_pool-protos
+ lib-operation_id-protos
+ libs-quota_manager-proto
+ api-grpc-draft
+ ydb-library-services
+)
+target_sources(compute-ydb-synchronization_service PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.cpp
+)
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.cpp b/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.cpp
new file mode 100644
index 0000000000..3480c506d9
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.cpp
@@ -0,0 +1,660 @@
+#include "synchronization_service.h"
+
+
+#include <ydb/core/fq/libs/compute/common/config.h>
+#include <ydb/core/fq/libs/compute/common/utils.h>
+#include <ydb/core/fq/libs/compute/ydb/events/events.h>
+#include <ydb/core/fq/libs/config/protos/compute.pb.h>
+#include <ydb/core/fq/libs/config/protos/issue_id.pb.h>
+#include <ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.h>
+#include <ydb/core/fq/libs/control_plane_storage/control_plane_storage.h>
+#include <ydb/core/fq/libs/control_plane_storage/events/events.h>
+#include <ydb/core/fq/libs/ydb/ydb.h>
+#include <ydb/library/security/ydb_credentials_provider_factory.h>
+
+#include <ydb/public/lib/fq/scope.h>
+#include <ydb/public/sdk/cpp/client/ydb_query/client.h>
+#include <ydb/public/sdk/cpp/client/ydb_operation/operation.h>
+
+#include <library/cpp/actors/core/actor.h>
+#include <library/cpp/actors/core/actor_bootstrapped.h>
+#include <library/cpp/actors/core/actorsystem.h>
+#include <library/cpp/actors/core/hfunc.h>
+#include <library/cpp/actors/core/log.h>
+
+
+#define LOG_E(stream) LOG_ERROR_S(*TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [SynchronizationService]: " << stream)
+#define LOG_W(stream) LOG_WARN_S( *TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [SynchronizationService]: " << stream)
+#define LOG_I(stream) LOG_INFO_S( *TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [SynchronizationService]: " << stream)
+#define LOG_D(stream) LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [SynchronizationService]: " << stream)
+#define LOG_T(stream) LOG_TRACE_S(*TlsActivationContext, NKikimrServices::FQ_RUN_ACTOR, "[ydb] [SynchronizationService]: " << stream)
+
+namespace NFq {
+
+using namespace NActors;
+using namespace NFq;
+
+class TSynchronizeScopeActor : public NActors::TActorBootstrapped<TSynchronizeScopeActor> {
+public:
+ TSynchronizeScopeActor(const TActorId& parentActorId,
+ const TString& cloudId,
+ const TString& scope,
+ const NConfig::TCommonConfig& commonConfig,
+ const NConfig::TComputeConfig& computeConfig,
+ const NFq::NConfig::TYdbStorageConfig& connectionConfig,
+ const TSigner::TPtr& signer,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
+ const ::NMonitoring::TDynamicCounterPtr& counters)
+ : ParentActorId(parentActorId)
+ , CloudId(cloudId)
+ , Scope(scope)
+ , CommonConfig(commonConfig)
+ , ComputeConfig(computeConfig)
+ , ConnectionConfig(connectionConfig)
+ , Signer(signer)
+ , YqSharedResources(yqSharedResources)
+ , CredentialsProviderFactory(credentialsProviderFactory)
+ , Counters(counters)
+ {}
+
+ static constexpr char ActorName[] = "FQ_SYNCHRONIZE_SCOPE_ACTOR";
+
+ void Bootstrap() {
+ LOG_I("Start synchronization for the scope " << Scope);
+ Client = CreateNewTableClient(ConnectionConfig,
+ YqSharedResources,
+ CredentialsProviderFactory);
+ Become(&TSynchronizeScopeActor::StateFetchConnectionsFunc);
+
+ const auto& controlPlane = ComputeConfig.GetProto().GetYdb().GetControlPlane();
+ switch (controlPlane.type_case()) {
+ case NConfig::TYdbComputeControlPlane::TYPE_NOT_SET:
+ case NConfig::TYdbComputeControlPlane::kSingle:
+ LOG_I("Start fetch connections stage for the scope (single) " << Scope);
+ SendListConnections();
+ break;
+ case NConfig::TYdbComputeControlPlane::kCms:
+ case NConfig::TYdbComputeControlPlane::kYdbcp:
+ Send(NFq::ControlPlaneStorageServiceActorId(), new TEvControlPlaneStorage::TEvDescribeDatabaseRequest{CloudId, Scope});
+ return;
+ }
+ }
+
+ STRICT_STFUNC(StateFetchConnectionsFunc,
+ hFunc(TEvControlPlaneStorage::TEvListConnectionsResponse, Handle);
+ hFunc(TEvControlPlaneStorage::TEvDescribeDatabaseResponse, Handle);
+ hFunc(TEvControlPlaneStorage::TEvModifyDatabaseResponse, Handle);
+ )
+
+ void Handle(const TEvControlPlaneStorage::TEvDescribeDatabaseResponse::TPtr& ev) {
+ const auto& issues = ev.Get()->Get()->Issues;
+ if (issues) {
+ LOG_E("DescribeDatabaseResponse, scope = " << Scope << " (failed): " << issues.ToOneLineString());
+ ReplyErrorAndPassAway(issues, "Error describe a database at the synchronization stage");
+ return;
+ }
+ const auto& result = ev.Get()->Get()->Record;
+ if (result.synchronized()) {
+ LOG_I("Synchronization has already completed for the scope " << Scope);
+ ReplyAndPassAway();
+ } else {
+ LOG_I("Start fetch connections stage for the scope (cms or ydbcp) " << Scope);
+ SendListConnections();
+ }
+ }
+
+ void Handle(const TEvControlPlaneStorage::TEvListConnectionsResponse::TPtr& ev) {
+ const auto& issues = ev.Get()->Get()->Issues;
+ if (issues) {
+ LOG_E("ListConnectionsResponse, scope = " << Scope << " page token = " << PageToken << " (failed): " << issues.ToOneLineString());
+ ReplyErrorAndPassAway(issues, "Error getting a list of connections at the synchronization stage");
+ return;
+ }
+
+ const auto& result = ev->Get()->Result;
+ for (const auto& connection: result.connection()) {
+ const auto& id = connection.meta().id();
+ LOG_I("Received connection: scope = " << Scope << " , id = " << id << ", type = " << static_cast<int>(connection.content().setting().connection_case()));
+ Connections[id] = connection;
+ }
+
+ const TString& nextPageToken = result.next_page_token();
+ if (nextPageToken) {
+ PageToken = nextPageToken;
+ SendListConnections();
+ } else {
+ LOG_I("Start fetch bindings stage for the scope " << Scope);
+ Become(&TSynchronizeScopeActor::StateFetchBindingsFunc);
+ PageToken = {};
+ SendListBindings();
+ }
+ }
+
+ STRICT_STFUNC(StateFetchBindingsFunc,
+ hFunc(TEvControlPlaneStorage::TEvListBindingsResponse, Handle);
+ hFunc(TEvControlPlaneStorage::TEvDescribeBindingResponse, Handle);
+ hFunc(TEvControlPlaneStorage::TEvModifyDatabaseResponse, Handle);
+ )
+
+ void Handle(const TEvControlPlaneStorage::TEvListBindingsResponse::TPtr& ev) {
+ const auto& issues = ev.Get()->Get()->Issues;
+ if (issues) {
+ LOG_E("ListBindingsResponse, scope = " << Scope << " page token = " << PageToken << " (failed): " << issues.ToOneLineString());
+ ReplyErrorAndPassAway(issues, "Error getting a list of bindings at the synchronization stage");
+ return;
+ }
+
+ const auto& result = ev->Get()->Result;
+ for (const auto& binding: result.binding()) {
+ const auto& id = binding.meta().id();
+ LOG_I("Received binding id: scope = " << Scope << " , id = " << id << ", type = " << FederatedQuery::BindingSetting::BindingType_Name(binding.type()));
+
+ BindingIds.insert(binding.meta().id());
+ }
+
+ const TString& nextPageToken = result.next_page_token();
+ if (nextPageToken) {
+ PageToken = nextPageToken;
+ SendListBindings();
+ } else {
+ LOG_I("Start describe bindings stage for the scope " << Scope);
+ PageToken = {};
+ SendDescribeBindings();
+ }
+ }
+
+ void Handle(const TEvControlPlaneStorage::TEvDescribeBindingResponse::TPtr& ev) {
+ const auto& issues = ev.Get()->Get()->Issues;
+ if (issues) {
+ LOG_E("DescribeBindingResponse, scope = " << Scope << " (failed): " << issues.ToOneLineString());
+ ReplyErrorAndPassAway(issues, "Error getting a describe of binding at the synchronization stage");
+ return;
+ }
+ const auto& result = ev->Get()->Result;
+ const auto& id = result.binding().meta().id();
+ LOG_I("Received binding: scope = " << Scope << " , id = " << id << ", type = " << static_cast<int>(result.binding().content().setting().binding_case()));
+ Bindings[result.binding().meta().id()] = result.binding();
+
+ if (BindingIds.size() == Bindings.size()) {
+ LOG_I("Start create external data sources stage for the scope " << Scope);
+ Become(&TSynchronizeScopeActor::StateCreateExternalDataSourcesFunc);
+ CreateExternalDataSources();
+ }
+ }
+
+ STRICT_STFUNC(StateCreateExternalDataSourcesFunc,
+ hFunc(TEvControlPlaneProxy::TEvCreateConnectionRequest, Handle);
+ hFunc(TEvControlPlaneProxy::TEvCreateConnectionResponse, Handle);
+ hFunc(TEvControlPlaneStorage::TEvModifyDatabaseResponse, Handle);
+ )
+
+ void Handle(const TEvControlPlaneProxy::TEvCreateConnectionRequest::TPtr&) {
+ CreatedConnections++;
+ if (CreatedConnections == Connections.size()) {
+ LOG_I("Start create external tables stage for the scope " << Scope);
+ Become(&TSynchronizeScopeActor::StateCreateExternalTablesFunc);
+ CreateExternalTables();
+ }
+ }
+
+ void Handle(const TEvControlPlaneProxy::TEvCreateConnectionResponse::TPtr& ev) {
+ LOG_E("Create external data source response (error): " << CreatedConnections << " of " << Connections.size() << ", issues = " << ev.Get()->Get()->Issues.ToOneLineString());
+ ReplyErrorAndPassAway(ev.Get()->Get()->Issues, "Сonnection creation error at the synchronization stage");
+ }
+
+ STRICT_STFUNC(StateCreateExternalTablesFunc,
+ hFunc(TEvControlPlaneProxy::TEvCreateBindingRequest, Handle);
+ hFunc(TEvControlPlaneProxy::TEvCreateBindingResponse, Handle);
+ hFunc(TEvControlPlaneStorage::TEvModifyDatabaseResponse, Handle);
+ )
+
+ void Handle(const TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr&) {
+ CreatedBindings++;
+ if (CreatedBindings == Bindings.size()) {
+ SendFinalModifyDatabase();
+ }
+ }
+
+ void Handle(const TEvControlPlaneProxy::TEvCreateBindingResponse::TPtr& ev) {
+ LOG_E("Create external table response (error): " << CreatedBindings << " of " << Bindings.size() << ", issues = " << ev.Get()->Get()->Issues.ToOneLineString());
+ ReplyErrorAndPassAway(ev.Get()->Get()->Issues, "Binding creation error at the synchronization stage");
+ }
+
+ void Handle(const TEvControlPlaneStorage::TEvModifyDatabaseResponse::TPtr& ev) {
+ const auto& issues = ev->Get()->Issues;
+ if (ev->Get()->Issues) {
+ LOG_E("ModifyDatabaseResponse, scope = " << Scope << " (failed): " << issues.ToOneLineString());
+ ReplyErrorAndPassAway(issues, "Error modify a database at the synchronization stage");
+ return;
+ }
+
+ LOG_I("Synchronization has already completed for the scope (cms or ydbcp) " << Scope);
+ ReplyAndPassAway();
+ }
+
+private:
+ std::shared_ptr<NYdb::NTable::TTableClient> CreateNewTableClient(const NFq::NConfig::TYdbStorageConfig& connection,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory) {
+ return ::NFq::CreateNewTableClient(Scope, ComputeConfig, connection, yqSharedResources, credentialsProviderFactory);
+ }
+
+ NYql::TIssues ValidateSources() {
+ NYql::TIssues issues;
+ issues.AddIssues(ValidateAuth());
+ issues.AddIssues(ValidateNameUniqueness());
+ return issues;
+ }
+
+ NYql::TIssues ValidateNameUniqueness() {
+ TMap<TString, TString> names;
+ for (const auto& [_, connection]: Connections) {
+ const auto& meta = connection.meta();
+ const auto& content = connection.content();
+ auto it = names.find(content.name());
+ if (it != names.end()) {
+ return NYql::TIssues{NYql::TIssue{TStringBuilder{} << "Two sources have the same name: connection id = " << meta.id() << " and " << it->second}};
+ }
+ names[content.name()] = TStringBuilder{} << "connection id = " << meta.id();
+ }
+
+ for (const auto& [_, binding]: Bindings) {
+ const auto& meta = binding.meta();
+ const auto& content = binding.content();
+ auto it = names.find(content.name());
+ if (it != names.end()) {
+ return NYql::TIssues{NYql::TIssue{TStringBuilder{} << "Two sources have the same name: binding id = " << meta.id() << " and " << it->second}};
+ }
+ names[content.name()] = TStringBuilder{} << "binding id = " << meta.id();
+ }
+ return {};
+ }
+
+ NYql::TIssues ValidateAuth() {
+ for (const auto& [_, connection]: Connections) {
+ const auto& auth = GetAuth(connection);
+ const auto& meta = connection.meta();
+ const auto& content = connection.content();
+ switch (auth.identity_case()) {
+ case FederatedQuery::IamAuth::kNone:
+ case FederatedQuery::IamAuth::kServiceAccount:
+ return {};
+ case FederatedQuery::IamAuth::kCurrentIam:
+ case FederatedQuery::IamAuth::IDENTITY_NOT_SET:
+ return NYql::TIssues{NYql::TIssue{TStringBuilder{} << "Unsupported auth method for connection id " << meta.id() << " with name " << content.name() << " at the synchronization stage"}};
+ }
+ }
+ return {};
+ }
+
+ FederatedQuery::IamAuth GetAuth(const FederatedQuery::Connection& connection) {
+ switch (connection.content().setting().connection_case()) {
+ case FederatedQuery::ConnectionSetting::kObjectStorage:
+ return connection.content().setting().object_storage().auth();
+ case FederatedQuery::ConnectionSetting::kYdbDatabase:
+ return connection.content().setting().ydb_database().auth();
+ case FederatedQuery::ConnectionSetting::kClickhouseCluster:
+ return connection.content().setting().clickhouse_cluster().auth();
+ case FederatedQuery::ConnectionSetting::kDataStreams:
+ return connection.content().setting().data_streams().auth();
+ case FederatedQuery::ConnectionSetting::kMonitoring:
+ return connection.content().setting().monitoring().auth();
+ case FederatedQuery::ConnectionSetting::kPostgresqlCluster:
+ return connection.content().setting().postgresql_cluster().auth();
+ case FederatedQuery::ConnectionSetting::CONNECTION_NOT_SET:
+ return FederatedQuery::IamAuth{};
+ }
+ }
+
+ void ExcludeUnsupportedExternalDataSources() {
+ TVector<TString> excludeIds;
+ for (const auto& [_, connection]: Connections) {
+ const auto& meta = connection.meta();
+ const auto& content = connection.content();
+ const auto& setting = content.setting();
+ switch (setting.connection_case()) {
+ case FederatedQuery::ConnectionSetting::kObjectStorage:
+ break;
+ case FederatedQuery::ConnectionSetting::kYdbDatabase:
+ case FederatedQuery::ConnectionSetting::kClickhouseCluster:
+ case FederatedQuery::ConnectionSetting::kDataStreams:
+ case FederatedQuery::ConnectionSetting::kMonitoring:
+ case FederatedQuery::ConnectionSetting::kPostgresqlCluster:
+ case FederatedQuery::ConnectionSetting::CONNECTION_NOT_SET:
+ LOG_I("Exclude connection by type: scope = " << Scope << " , id = " << meta.id() << ", type = " << static_cast<int>(setting.connection_case()));
+ excludeIds.push_back(meta.id());
+ break;
+ }
+
+ switch (content.acl().visibility()) {
+ case FederatedQuery::Acl::SCOPE:
+ break;
+ case FederatedQuery::Acl::VISIBILITY_UNSPECIFIED:
+ case FederatedQuery::Acl::PRIVATE:
+ case FederatedQuery::Acl_Visibility_Acl_Visibility_INT_MIN_SENTINEL_DO_NOT_USE_:
+ case FederatedQuery::Acl_Visibility_Acl_Visibility_INT_MAX_SENTINEL_DO_NOT_USE_:
+ LOG_I("Exclude connection by visibility: scope = " << Scope << " , id = " << meta.id() << ", visibility = " << FederatedQuery::Acl::Visibility_Name(content.acl().visibility()));
+ excludeIds.push_back(meta.id());
+ }
+ }
+ for (const auto& excludeId: excludeIds) {
+ Connections.erase(excludeId);
+ }
+ }
+
+ void ExcludeUnsupportedExternalTables() {
+ TVector<TString> excludeIds;
+ for (const auto& [_, binding]: Bindings) {
+ const auto& meta = binding.meta();
+ const auto& content = binding.content();
+ const auto& setting = content.setting();
+ switch (setting.binding_case()) {
+ case FederatedQuery::BindingSetting::kObjectStorage:
+ break;
+ case FederatedQuery::BindingSetting::kDataStreams:
+ case FederatedQuery::BindingSetting::BINDING_NOT_SET:
+ LOG_I("Exclude binding by type: scope = " << Scope << " , id = " << meta.id() << ", type = " << static_cast<int>(setting.binding_case()));
+ excludeIds.push_back(meta.id());
+ break;
+ }
+
+ switch (content.acl().visibility()) {
+ case FederatedQuery::Acl::SCOPE:
+ break;
+ case FederatedQuery::Acl::VISIBILITY_UNSPECIFIED:
+ case FederatedQuery::Acl::PRIVATE:
+ case FederatedQuery::Acl_Visibility_Acl_Visibility_INT_MIN_SENTINEL_DO_NOT_USE_:
+ case FederatedQuery::Acl_Visibility_Acl_Visibility_INT_MAX_SENTINEL_DO_NOT_USE_:
+ LOG_I("Exclude binding by visibility: scope = " << Scope << " , id = " << meta.id() << ", visibility = " << FederatedQuery::Acl::Visibility_Name(content.acl().visibility()));
+ excludeIds.push_back(meta.id());
+ }
+ }
+ for (const auto& excludeId: excludeIds) {
+ Bindings.erase(excludeId);
+ BindingIds.erase(excludeId);
+ }
+ }
+
+ void CreateExternalDataSources() {
+ ExcludeUnsupportedExternalDataSources();
+ ExcludeUnsupportedExternalTables();
+ auto issues = ValidateSources();
+ if (issues) {
+ LOG_I("Validate sources (error): scope = " << Scope << " " << issues.ToOneLineString());
+ ReplyErrorAndPassAway(issues);
+ return;
+ }
+
+ for (const auto& connection: Connections) {
+ FederatedQuery::CreateConnectionRequest proto;
+ *proto.mutable_content() = connection.second.content();
+ TEvControlPlaneProxy::TEvCreateConnectionRequest::TPtr request =
+ (NActors::TEventHandle<TEvControlPlaneProxy::TEvCreateConnectionRequest>*)
+ new IEventHandle(SelfId(), SelfId(), new TEvControlPlaneProxy::TEvCreateConnectionRequest{{}, proto, {}, {}, {}});
+
+ request.Get()->Get()->YDBClient = Client;
+
+ Register(NFq::NPrivate::MakeCreateConnectionActor(
+ SelfId(),
+ request,
+ TDuration::Seconds(30),
+ Counters,
+ CommonConfig,
+ Signer,
+ true
+ ));
+ }
+ if (Connections.empty()) {
+ SendFinalModifyDatabase();
+ }
+ }
+
+ void CreateExternalTables() {
+ for (const auto& binding: Bindings) {
+ FederatedQuery::CreateBindingRequest proto;
+ *proto.mutable_content() = binding.second.content();
+ TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr request =
+ (NActors::TEventHandle<TEvControlPlaneProxy::TEvCreateBindingRequest>*)
+ new IEventHandle(SelfId(), SelfId(), new TEvControlPlaneProxy::TEvCreateBindingRequest{{}, proto, {}, {}, {}});
+
+ request.Get()->Get()->YDBClient = Client;
+ auto it = Connections.find(binding.second.content().connection_id());
+ if (it == Connections.end()) {
+ ReplyErrorAndPassAway(NYql::TIssues{NYql::TIssue{TStringBuilder{} << "Can't find conection id = " << binding.second.content().connection_id()}});
+ return;
+ }
+ request.Get()->Get()->ConnectionName = it->second.content().name();
+
+ Register(NFq::NPrivate::MakeCreateBindingActor(
+ SelfId(),
+ request,
+ TDuration::Seconds(30),
+ Counters,
+ true
+ ));
+ }
+
+ if (Bindings.empty()) {
+ SendFinalModifyDatabase();
+ }
+ }
+
+ void ReplyAndPassAway() {
+ Send(ParentActorId, new TEvYdbCompute::TEvSynchronizeResponse{Scope});
+ PassAway();
+ }
+
+ void ReplyErrorAndPassAway(NYql::TIssues issues, const TString& errorMessage = {}) {
+ if (errorMessage) {
+ issues.AddIssue(errorMessage);
+ }
+ Send(ParentActorId, new TEvYdbCompute::TEvSynchronizeResponse{Scope, issues, NYdb::EStatus::GENERIC_ERROR});
+ PassAway();
+ }
+
+ void SendListConnections() const {
+ LOG_T("Send list connections: scope = " << Scope << ", page token = " << PageToken);
+ auto request = CreateListRequest<FederatedQuery::ListConnectionsRequest>(PageToken);
+ TPermissions permissions = CreateSuperUserPermissions();
+ std::unique_ptr<TEvControlPlaneStorage::TEvListConnectionsRequest> event{new TEvControlPlaneStorage::TEvListConnectionsRequest{
+ Scope, request, "internal@user", "internal@token", {},
+ permissions, {}, {}, {}
+ }};
+ Send(ControlPlaneStorageServiceActorId(), event.release());
+ }
+
+ void SendListBindings() const {
+ LOG_T("Send list bindings: scope = " << Scope << ", page token = " << PageToken);
+ auto request = CreateListRequest<FederatedQuery::ListBindingsRequest>(PageToken);
+ TPermissions permissions = CreateSuperUserPermissions();
+ std::unique_ptr<TEvControlPlaneStorage::TEvListBindingsRequest> event{new TEvControlPlaneStorage::TEvListBindingsRequest{
+ Scope, request, "internal@user", "internal@token", {},
+ permissions, {}, {}, {}
+ }};
+ Send(ControlPlaneStorageServiceActorId(), event.release());
+ }
+
+ void SendDescribeBindings() {
+ for (const auto& bindingId: BindingIds) {
+ SendDescribeBinding(bindingId);
+ }
+
+ if (BindingIds.empty()) {
+ LOG_I("Start create external data sources stage for the scope (bindigns list is empty) " << Scope);
+ Become(&TSynchronizeScopeActor::StateCreateExternalDataSourcesFunc);
+ CreateExternalDataSources();
+ }
+ }
+
+ void SendDescribeBinding(const TString& bindingId) const {
+ LOG_T("Send describe binding: scope = " << Scope << ", binding id = " << bindingId);
+ FederatedQuery::DescribeBindingRequest request;
+ request.set_binding_id(bindingId);
+ TPermissions permissions = CreateSuperUserPermissions();
+ std::unique_ptr<TEvControlPlaneStorage::TEvDescribeBindingRequest> event{new TEvControlPlaneStorage::TEvDescribeBindingRequest{
+ Scope, request, "internal@user", "internal@token", {},
+ permissions, {}, {}, {}
+ }};
+ Send(ControlPlaneStorageServiceActorId(), event.release());
+ }
+
+ void SendFinalModifyDatabase() {
+ const auto& controlPlane = ComputeConfig.GetProto().GetYdb().GetControlPlane();
+ switch (controlPlane.type_case()) {
+ case NConfig::TYdbComputeControlPlane::TYPE_NOT_SET:
+ case NConfig::TYdbComputeControlPlane::kSingle:
+ LOG_I("Synchronization has already completed for the scope (single) " << Scope);
+ ReplyAndPassAway();
+ break;
+ case NConfig::TYdbComputeControlPlane::kCms:
+ case NConfig::TYdbComputeControlPlane::kYdbcp:
+ std::unique_ptr<TEvControlPlaneStorage::TEvModifyDatabaseRequest> event{new TEvControlPlaneStorage::TEvModifyDatabaseRequest{CloudId, Scope}};
+ event->Synchronized = true;
+ Send(ControlPlaneStorageServiceActorId(), event.release());
+ return;
+ }
+ }
+
+ TPermissions CreateSuperUserPermissions() const {
+ TPermissions permissions;
+ permissions.SetAll();
+ return permissions;
+ }
+
+ template<typename T>
+ T CreateListRequest(const TString& pageToken) const {
+ T request;
+ request.set_page_token(pageToken);
+ request.set_limit(10);
+ return request;
+ }
+
+private:
+ TActorId ParentActorId;
+ TString CloudId;
+ TString Scope;
+ NConfig::TCommonConfig CommonConfig;
+ NFq::TComputeConfig ComputeConfig;
+ NFq::NConfig::TYdbStorageConfig ConnectionConfig;
+ TSigner::TPtr Signer;
+ TYqSharedResources::TPtr YqSharedResources;
+ NKikimr::TYdbCredentialsProviderFactory CredentialsProviderFactory;
+
+ TString PageToken;
+ TSet<TString> BindingIds;
+ uint64_t CreatedConnections = 0;
+ uint64_t CreatedBindings = 0;
+ TMap<TString, FederatedQuery::Connection> Connections;
+ TMap<TString, FederatedQuery::Binding> Bindings;
+ NFq::NPrivate::TCounters Counters;
+ std::shared_ptr<NYdb::NTable::TTableClient> Client;
+};
+
+class TSynchronizatinServiceActor : public NActors::TActorBootstrapped<TSynchronizatinServiceActor> {
+ enum class EScopeStatus {
+ IN_PROGRESS = 0,
+ SYNCHRONIZED = 1
+ };
+
+ struct TScopeState {
+ EScopeStatus Status;
+ TVector<TEvYdbCompute::TEvSynchronizeRequest::TPtr> Requests;
+ };
+
+public:
+ TSynchronizatinServiceActor(const NConfig::TCommonConfig& commonConfig,
+ const NConfig::TComputeConfig& computeConfig,
+ const TSigner::TPtr& signer,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
+ const ::NMonitoring::TDynamicCounterPtr& counters)
+ : CommonConfig(commonConfig)
+ , ComputeConfig(computeConfig)
+ , Signer(signer)
+ , YqSharedResources(yqSharedResources)
+ , CredentialsProviderFactory(credentialsProviderFactory)
+ , Counters(counters)
+ {}
+
+ static constexpr char ActorName[] = "FQ_SYNCHRONIZATION_SERVICE_ACTOR";
+
+ void Bootstrap() {
+ Become(&TSynchronizatinServiceActor::StateFunc);
+ }
+
+ STRICT_STFUNC(StateFunc,
+ hFunc(TEvYdbCompute::TEvSynchronizeRequest, Handle);
+ hFunc(TEvYdbCompute::TEvSynchronizeResponse, Handle);
+ )
+
+ void Handle(TEvYdbCompute::TEvSynchronizeRequest::TPtr& ev) {
+ const TString& cloudId = ev->Get()->CloudId;
+ const TString& scope = ev->Get()->Scope;
+ if (!ComputeConfig.GetYdb().GetSynchronizationService().GetEnable()) {
+ Send(ev->Sender, new TEvYdbCompute::TEvSynchronizeResponse{scope});
+ return;
+ }
+
+ const NFq::NConfig::TYdbStorageConfig& connectionConfig = ev->Get()->ConnectionConfig;
+ auto it = Cache.find(scope);
+ if (it == Cache.end()) {
+ auto& item = Cache[scope];
+ item.Status = EScopeStatus::IN_PROGRESS;
+ item.Requests.push_back(ev);
+ Register(new TSynchronizeScopeActor{SelfId(), cloudId, scope, CommonConfig, ComputeConfig, connectionConfig, Signer, YqSharedResources, CredentialsProviderFactory, Counters});
+ return;
+ }
+
+ switch (it->second.Status) {
+ case EScopeStatus::SYNCHRONIZED: {
+ Send(ev->Sender, new TEvYdbCompute::TEvSynchronizeResponse{scope});
+ break;
+ }
+ case EScopeStatus::IN_PROGRESS: {
+ it->second.Requests.push_back(ev);
+ break;
+ }
+ }
+ }
+
+ void Handle(TEvYdbCompute::TEvSynchronizeResponse::TPtr& ev) {
+ auto it = Cache.find(ev->Get()->Scope);
+ if (it == Cache.end()) {
+ LOG_E("Response: not found for scope " << ev->Get()->Scope);
+ return;
+ }
+
+ for (const auto& request: it->second.Requests) {
+ Send(request->Sender, new TEvYdbCompute::TEvSynchronizeResponse{ev->Get()->Scope, ev->Get()->Issues, ev->Get()->Status});
+ }
+
+ it->second.Requests.clear();
+
+ if (ev->Get()->Status == NYdb::EStatus::SUCCESS) {
+ it->second.Status = EScopeStatus::SYNCHRONIZED;
+ } else {
+ Cache.erase(it);
+ }
+ }
+
+private:
+ TMap<TString, TScopeState> Cache;
+ NConfig::TCommonConfig CommonConfig;
+ NConfig::TComputeConfig ComputeConfig;
+ TSigner::TPtr Signer;
+ TYqSharedResources::TPtr YqSharedResources;
+ NKikimr::TYdbCredentialsProviderFactory CredentialsProviderFactory;
+ ::NMonitoring::TDynamicCounterPtr Counters;
+};
+
+std::unique_ptr<NActors::IActor> CreateSynchronizationServiceActor(const NConfig::TCommonConfig& commonConfig,
+ const NConfig::TComputeConfig& computeConfig,
+ const TSigner::TPtr& signer,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
+ const ::NMonitoring::TDynamicCounterPtr& counters) {
+ return std::make_unique<TSynchronizatinServiceActor>(commonConfig, computeConfig, signer, yqSharedResources, credentialsProviderFactory, counters);
+}
+
+}
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.h b/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.h
new file mode 100644
index 0000000000..b52c2c2789
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/synchronization_service.h
@@ -0,0 +1,22 @@
+#pragma once
+
+#include <ydb/core/fq/libs/config/protos/compute.pb.h>
+
+#include <ydb/library/security/ydb_credentials_provider_factory.h>
+#include <ydb/library/ycloud/impl/grpc_service_settings.h>
+#include <ydb/core/fq/libs/config/protos/common.pb.h>
+#include <ydb/core/fq/libs/signer/signer.h>
+#include <ydb/core/fq/libs/shared_resources/shared_resources.h>
+
+#include <library/cpp/actors/core/actor.h>
+
+namespace NFq {
+
+std::unique_ptr<NActors::IActor> CreateSynchronizationServiceActor(const NConfig::TCommonConfig& commonConfig,
+ const NConfig::TComputeConfig& computeConfig,
+ const TSigner::TPtr& signer,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
+ const ::NMonitoring::TDynamicCounterPtr& counters);
+
+}
diff --git a/ydb/core/fq/libs/compute/ydb/synchronization_service/ya.make b/ydb/core/fq/libs/compute/ydb/synchronization_service/ya.make
new file mode 100644
index 0000000000..5b30916fce
--- /dev/null
+++ b/ydb/core/fq/libs/compute/ydb/synchronization_service/ya.make
@@ -0,0 +1,21 @@
+LIBRARY()
+
+SRCS(
+ synchronization_service.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/core
+ library/cpp/actors/protos
+ ydb/core/fq/libs/control_plane_storage/proto
+ ydb/public/api/grpc
+ ydb/library/db_pool/protos
+ ydb/public/lib/operation_id/protos
+ ydb/core/fq/libs/quota_manager/proto
+ ydb/public/api/grpc/draft
+ ydb/library/services
+)
+
+YQL_LAST_ABI_VERSION()
+
+END()
diff --git a/ydb/core/fq/libs/compute/ydb/ya.make b/ydb/core/fq/libs/compute/ydb/ya.make
index 62fba34c4d..f837263e60 100644
--- a/ydb/core/fq/libs/compute/ydb/ya.make
+++ b/ydb/core/fq/libs/compute/ydb/ya.make
@@ -39,4 +39,5 @@ END()
RECURSE(
control_plane
events
+ synchronization_service
)
diff --git a/ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp b/ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp
index 225d8f34cc..01197e381e 100644
--- a/ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp
+++ b/ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp
@@ -43,8 +43,14 @@ public:
)
void Handle(const TEvYdbCompute::TEvExecuteScriptRequest::TPtr& ev) {
+ const auto& event = *ev->Get();
+ NYdb::NQuery::TExecuteScriptSettings settings;
+ settings.ResultsTtl(event.ResultTtl);
+ settings.OperationTimeout(event.OperationTimeout);
+ settings.Syntax(event.Syntax);
+ settings.ExecMode(event.ExecMode);
QueryClient
- ->ExecuteScript(ev->Get()->Sql)
+ ->ExecuteScript(event.Sql, settings)
.Apply([actorSystem = NActors::TActivationContext::ActorSystem(), recipient = ev->Sender, cookie = ev->Cookie](auto future) {
try {
auto response = future.ExtractValueSync();
@@ -66,7 +72,7 @@ public:
try {
auto response = future.ExtractValueSync();
if (response.Status().IsSuccess()) {
- actorSystem->Send(recipient, new TEvYdbCompute::TEvGetOperationResponse(response.Metadata().ExecStatus, response.Status().GetIssues()), 0, cookie);
+ actorSystem->Send(recipient, new TEvYdbCompute::TEvGetOperationResponse(response.Metadata().ExecStatus, response.Metadata().ResultSetsMeta, response.Status().GetIssues()), 0, cookie);
} else {
actorSystem->Send(recipient, new TEvYdbCompute::TEvGetOperationResponse(response.Status().GetIssues(), response.Status().GetStatus()), 0, cookie);
}
@@ -80,7 +86,7 @@ public:
NYdb::NQuery::TFetchScriptResultsSettings settings;
settings.FetchToken(ev->Get()->FetchToken);
QueryClient
- ->FetchScriptResults(ev->Get()->ExecutionId, ev->Get()->ResultSetId, settings)
+ ->FetchScriptResults(ev->Get()->OperationId, ev->Get()->ResultSetId, settings)
.Apply([actorSystem = NActors::TActivationContext::ActorSystem(), recipient = ev->Sender, cookie = ev->Cookie](auto future) {
try {
auto response = future.ExtractValueSync();
diff --git a/ydb/core/fq/libs/compute/ydb/ydb_run_actor.cpp b/ydb/core/fq/libs/compute/ydb/ydb_run_actor.cpp
index a415510075..877d6d2864 100644
--- a/ydb/core/fq/libs/compute/ydb/ydb_run_actor.cpp
+++ b/ydb/core/fq/libs/compute/ydb/ydb_run_actor.cpp
@@ -92,7 +92,7 @@ public:
ExecStatus = response.ExecStatus;
LOG_I("StatusTrackerResponse (success) " << response.Status << " ExecStatus: " << static_cast<int>(response.ExecStatus) << " Issues: " << response.Issues.ToOneLineString());
if (response.ExecStatus == NYdb::NQuery::EExecStatus::Completed) {
- Register(ActorFactory->CreateResultWriter(SelfId(), Connector, Pinger, Params.ExecutionId).release());
+ Register(ActorFactory->CreateResultWriter(SelfId(), Connector, Pinger, Params.OperationId).release());
} else {
Register(ActorFactory->CreateResourcesCleaner(SelfId(), Connector, Params.OperationId).release());
}
@@ -163,7 +163,7 @@ public:
break;
case FederatedQuery::QueryMeta::COMPLETING:
if (Params.OperationId.GetKind() != Ydb::TOperationId::UNUSED) {
- Register(ActorFactory->CreateResultWriter(SelfId(), Connector, Pinger, Params.ExecutionId).release());
+ Register(ActorFactory->CreateResultWriter(SelfId(), Connector, Pinger, Params.OperationId).release());
} else {
Register(ActorFactory->CreateFinalizer(SelfId(), Pinger, ExecStatus).release());
}
diff --git a/ydb/core/fq/libs/config/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/config/protos/CMakeLists.darwin-x86_64.txt
index 98a204fd31..af844d5199 100644
--- a/ydb/core/fq/libs/config/protos/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/fq/libs/config/protos/CMakeLists.darwin-x86_64.txt
@@ -282,6 +282,18 @@ get_built_tool_path(
contrib/tools/protoc/plugins/cpp_styleguide
cpp_styleguide
)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
add_library(libs-config-protos)
target_link_libraries(libs-config-protos PUBLIC
@@ -294,6 +306,7 @@ target_link_libraries(libs-config-protos PUBLIC
contrib-libs-protobuf
)
target_proto_messages(libs-config-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/activation.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/audit.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/common.proto
diff --git a/ydb/core/fq/libs/config/protos/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/config/protos/CMakeLists.linux-aarch64.txt
index 1ec6d5c4fa..494977cd87 100644
--- a/ydb/core/fq/libs/config/protos/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/fq/libs/config/protos/CMakeLists.linux-aarch64.txt
@@ -282,6 +282,18 @@ get_built_tool_path(
contrib/tools/protoc/plugins/cpp_styleguide
cpp_styleguide
)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
add_library(libs-config-protos)
target_link_libraries(libs-config-protos PUBLIC
@@ -295,6 +307,7 @@ target_link_libraries(libs-config-protos PUBLIC
contrib-libs-protobuf
)
target_proto_messages(libs-config-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/activation.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/audit.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/common.proto
diff --git a/ydb/core/fq/libs/config/protos/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/config/protos/CMakeLists.linux-x86_64.txt
index 1ec6d5c4fa..494977cd87 100644
--- a/ydb/core/fq/libs/config/protos/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/fq/libs/config/protos/CMakeLists.linux-x86_64.txt
@@ -282,6 +282,18 @@ get_built_tool_path(
contrib/tools/protoc/plugins/cpp_styleguide
cpp_styleguide
)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
add_library(libs-config-protos)
target_link_libraries(libs-config-protos PUBLIC
@@ -295,6 +307,7 @@ target_link_libraries(libs-config-protos PUBLIC
contrib-libs-protobuf
)
target_proto_messages(libs-config-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/activation.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/audit.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/common.proto
diff --git a/ydb/core/fq/libs/config/protos/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/config/protos/CMakeLists.windows-x86_64.txt
index 98a204fd31..af844d5199 100644
--- a/ydb/core/fq/libs/config/protos/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/fq/libs/config/protos/CMakeLists.windows-x86_64.txt
@@ -282,6 +282,18 @@ get_built_tool_path(
contrib/tools/protoc/plugins/cpp_styleguide
cpp_styleguide
)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
add_library(libs-config-protos)
target_link_libraries(libs-config-protos PUBLIC
@@ -294,6 +306,7 @@ target_link_libraries(libs-config-protos PUBLIC
contrib-libs-protobuf
)
target_proto_messages(libs-config-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/activation.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/audit.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.proto
${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/common.proto
diff --git a/ydb/core/fq/libs/config/protos/activation.proto b/ydb/core/fq/libs/config/protos/activation.proto
new file mode 100644
index 0000000000..4f64805a88
--- /dev/null
+++ b/ydb/core/fq/libs/config/protos/activation.proto
@@ -0,0 +1,13 @@
+syntax = "proto3";
+option cc_enable_arenas = true;
+
+package NFq.NConfig;
+option java_package = "ru.yandex.kikimr.proto";
+
+////////////////////////////////////////////////////////////
+
+message TActivationPercentage {
+ uint32 Percentage = 1;
+ repeated string IncludeScopes = 2;
+ repeated string ExcludeScopes = 3;
+}
diff --git a/ydb/core/fq/libs/config/protos/compute.proto b/ydb/core/fq/libs/config/protos/compute.proto
index 385120d3ff..2166d7d1b0 100644
--- a/ydb/core/fq/libs/config/protos/compute.proto
+++ b/ydb/core/fq/libs/config/protos/compute.proto
@@ -4,11 +4,16 @@ option cc_enable_arenas = true;
package NFq.NConfig;
option java_package = "ru.yandex.kikimr.proto";
+import "ydb/core/fq/libs/config/protos/activation.proto";
import "ydb/core/fq/libs/config/protos/storage.proto";
import "ydb/public/api/protos/draft/fq.proto";
////////////////////////////////////////////////////////////
+message TSynchronizationService {
+ bool Enable = 1;
+}
+
message TInPlaceCompute {
}
@@ -46,6 +51,7 @@ message TYdbComputeControlPlane {
message TYdbCompute {
bool Enable = 1;
TYdbComputeControlPlane ControlPlane = 2;
+ TSynchronizationService SynchronizationService = 3;
}
enum EComputeType {
@@ -54,24 +60,15 @@ enum EComputeType {
YDB = 2;
}
-message TComputeMappingRuleKey {
- oneof key {
- FederatedQuery.QueryContent.QueryType QueryType = 1;
- // FederatedQuery.QueryContent.EngineType EngineType = 2;
- }
-}
-
-message TComputeMappingRule {
- repeated TComputeMappingRuleKey Key = 1;
- EComputeType Compute = 2;
-}
-
message TComputeMapping {
- repeated TComputeMappingRule Rule = 1;
+ FederatedQuery.QueryContent.QueryType QueryType = 1;
+ EComputeType Compute = 2;
+ TActivationPercentage Activation = 3;
}
message TComputeConfig {
TInPlaceCompute InPlace = 1;
TYdbCompute Ydb = 2;
- TComputeMapping ComputeMapping = 3;
+ EComputeType DefaultCompute = 3;
+ repeated TComputeMapping ComputeMapping = 4;
}
diff --git a/ydb/core/fq/libs/config/protos/ya.make b/ydb/core/fq/libs/config/protos/ya.make
index a71cc23aa5..2bf50a9a41 100644
--- a/ydb/core/fq/libs/config/protos/ya.make
+++ b/ydb/core/fq/libs/config/protos/ya.make
@@ -1,6 +1,7 @@
PROTO_LIBRARY()
SRCS(
+ activation.proto
audit.proto
checkpoint_coordinator.proto
common.proto
diff --git a/ydb/core/fq/libs/control_plane_config/control_plane_config.cpp b/ydb/core/fq/libs/control_plane_config/control_plane_config.cpp
index 549744794f..ce474bda42 100644
--- a/ydb/core/fq/libs/control_plane_config/control_plane_config.cpp
+++ b/ydb/core/fq/libs/control_plane_config/control_plane_config.cpp
@@ -1,36 +1,24 @@
#include "control_plane_config.h"
#include <ydb/core/fq/libs/actors/logging/log.h>
-#include <ydb/core/fq/libs/config/yq_issue.h>
-#include <ydb/core/fq/libs/common/cache.h>
-#include <ydb/core/fq/libs/common/entity_id.h>
#include <ydb/core/fq/libs/control_plane_storage/control_plane_storage.h>
#include <ydb/core/fq/libs/control_plane_storage/events/events.h>
#include <ydb/core/fq/libs/control_plane_storage/util.h>
#include <ydb/core/fq/libs/quota_manager/quota_manager.h>
#include <ydb/core/fq/libs/shared_resources/db_exec.h>
-#include <ydb/core/fq/libs/test_connection/events/events.h>
-#include <ydb/core/fq/libs/ydb/util.h>
#include <ydb/core/fq/libs/ydb/ydb.h>
#include <ydb/core/fq/libs/control_plane_storage/schema.h>
#include <ydb/core/fq/libs/db_schema/db_schema.h>
-#include <ydb/core/fq/libs/quota_manager/quota_manager.h>
#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/core/actor.h>
-#include <ydb/library/ydb_issue/issue_helpers.h>
#include <ydb/library/db_pool/db_pool.h>
#include <ydb/library/yql/public/issue/yql_issue_message.h>
-#include <ydb/library/security/util.h>
-#include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h>
-#include <util/generic/maybe.h>
#include <util/generic/ptr.h>
#include <util/datetime/base.h>
#include <util/digest/multi.h>
-#include <util/generic/yexception.h>
-#include <util/string/join.h>
#include <util/system/hostname.h>
namespace NFq {
@@ -205,7 +193,7 @@ private:
"WriteStateTime", true
);
- if (oldInfo) {
+ if (oldInfo) {
executer.Process(SelfId(),
[this, oldInfo=oldInfo](TStateTimeExecuter&) {
this->ReflectTenantChanges(oldInfo);
diff --git a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-x86_64.txt
index 631673b30c..959fb59769 100644
--- a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(actors)
add_subdirectory(events)
add_subdirectory(ut)
@@ -23,6 +24,7 @@ target_link_libraries(fq-libs-control_plane_proxy PUBLIC
libs-compute-ydb
compute-ydb-control_plane
fq-libs-control_plane_config
+ libs-control_plane_proxy-actors
libs-control_plane_proxy-events
fq-libs-control_plane_storage
libs-rate_limiter-events
diff --git a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-aarch64.txt
index df189785d0..d24f05ca43 100644
--- a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(actors)
add_subdirectory(events)
add_subdirectory(ut)
@@ -24,6 +25,7 @@ target_link_libraries(fq-libs-control_plane_proxy PUBLIC
libs-compute-ydb
compute-ydb-control_plane
fq-libs-control_plane_config
+ libs-control_plane_proxy-actors
libs-control_plane_proxy-events
fq-libs-control_plane_storage
libs-rate_limiter-events
diff --git a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-x86_64.txt
index df189785d0..d24f05ca43 100644
--- a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(actors)
add_subdirectory(events)
add_subdirectory(ut)
@@ -24,6 +25,7 @@ target_link_libraries(fq-libs-control_plane_proxy PUBLIC
libs-compute-ydb
compute-ydb-control_plane
fq-libs-control_plane_config
+ libs-control_plane_proxy-actors
libs-control_plane_proxy-events
fq-libs-control_plane_storage
libs-rate_limiter-events
diff --git a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.windows-x86_64.txt
index 631673b30c..959fb59769 100644
--- a/ydb/core/fq/libs/control_plane_proxy/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/fq/libs/control_plane_proxy/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(actors)
add_subdirectory(events)
add_subdirectory(ut)
@@ -23,6 +24,7 @@ target_link_libraries(fq-libs-control_plane_proxy PUBLIC
libs-compute-ydb
compute-ydb-control_plane
fq-libs-control_plane_config
+ libs-control_plane_proxy-actors
libs-control_plane_proxy-events
fq-libs-control_plane_storage
libs-rate_limiter-events
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..9cf705e7cd
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-control_plane_proxy-actors)
+target_compile_options(libs-control_plane_proxy-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-control_plane_proxy-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ library-cpp-iterator
+ fq-libs-common
+ libs-control_plane_proxy-events
+ libs-control_plane_storage-events
+ fq-libs-result_formatter
+ core-kqp-provider
+ library-db_pool-protos
+)
+target_sources(libs-control_plane_proxy-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..d6df134d3a
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-control_plane_proxy-actors)
+target_compile_options(libs-control_plane_proxy-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-control_plane_proxy-actors PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ library-cpp-iterator
+ fq-libs-common
+ libs-control_plane_proxy-events
+ libs-control_plane_storage-events
+ fq-libs-result_formatter
+ core-kqp-provider
+ library-db_pool-protos
+)
+target_sources(libs-control_plane_proxy-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..d6df134d3a
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-control_plane_proxy-actors)
+target_compile_options(libs-control_plane_proxy-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-control_plane_proxy-actors PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ library-cpp-iterator
+ fq-libs-common
+ libs-control_plane_proxy-events
+ libs-control_plane_storage-events
+ fq-libs-result_formatter
+ core-kqp-provider
+ library-db_pool-protos
+)
+target_sources(libs-control_plane_proxy-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..9cf705e7cd
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,30 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-control_plane_proxy-actors)
+target_compile_options(libs-control_plane_proxy-actors PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(libs-control_plane_proxy-actors PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-fmt
+ library-cpp-iterator
+ fq-libs-common
+ libs-control_plane_proxy-events
+ libs-control_plane_storage-events
+ fq-libs-result_formatter
+ core-kqp-provider
+ library-db_pool-protos
+)
+target_sources(libs-control_plane_proxy-actors PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.cpp
+)
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/base_actor.h b/ydb/core/fq/libs/control_plane_proxy/actors/base_actor.h
new file mode 100644
index 0000000000..a90e0f4425
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/base_actor.h
@@ -0,0 +1,107 @@
+#pragma once
+
+#include "counters.h"
+
+#include <contrib/libs/fmt/include/fmt/format.h>
+#include <library/cpp/actors/core/actor.h>
+#include <library/cpp/actors/core/actor_bootstrapped.h>
+
+#include <ydb/core/fq/libs/actors/logging/log.h>
+#include <ydb/core/fq/libs/config/protos/issue_id.pb.h>
+#include <ydb/core/fq/libs/config/yq_issue.h>
+#include <ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.h>
+#include <ydb/library/yql/public/issue/yql_issue.h>
+
+namespace NFq {
+namespace NPrivate {
+
+using namespace NActors;
+using namespace NThreading;
+using namespace NYdb;
+
+template<typename T>
+struct TBaseActorTypeTag {
+ using TRequest = typename T::TRequest;
+ using TResponse = typename T::TResponse;
+};
+
+template<typename TDerived>
+class TBaseActor : public NActors::TActorBootstrapped<TDerived> {
+public:
+ using TBase = NActors::TActorBootstrapped<TDerived>;
+ using TBase::Become;
+ using TBase::PassAway;
+ using TBase::SelfId;
+ using TBase::Send;
+
+ using TEventRequestPtr = typename TBaseActorTypeTag<TDerived>::TRequest::TPtr;
+ using TEventResponse = typename TBaseActorTypeTag<TDerived>::TResponse;
+
+public:
+ TBaseActor(const TActorId& proxyActorId,
+ const TEventRequestPtr request,
+ TDuration requestTimeout,
+ const NPrivate::TRequestCommonCountersPtr& counters)
+ : Request(std::move(request))
+ , Counters(counters)
+ , ProxyActorId(proxyActorId)
+ , ResponseActorId(Request->Sender)
+ , RequestTimeout(requestTimeout) { }
+
+ void Bootstrap() {
+ CPP_LOG_T("TBaseActor Bootstrap started. Actor id: " << SelfId());
+ Become(&TDerived::StateFunc, RequestTimeout, new NActors::TEvents::TEvWakeup());
+ Counters->InFly->Inc();
+ BootstrapImpl();
+ }
+
+ void SendErrorMessageToSender(const NYql::TIssue& issue) {
+ Counters->Error->Inc();
+ NYql::TIssues issues;
+ issues.AddIssue(issue);
+ Send(ResponseActorId, new TEventResponse(issues, {}), 0, Request->Cookie);
+ PassAway();
+ }
+
+ void SendRequestToSender() {
+ Counters->Ok->Inc();
+ Send(Request->Forward(ProxyActorId));
+ PassAway();
+ }
+
+ void HandleTimeout() {
+ CPP_LOG_D("TBaseActor Timeout occurred. Actor id: "
+ << SelfId());
+ Counters->Timeout->Inc();
+ SendErrorMessageToSender(MakeErrorIssue(
+ TIssuesIds::TIMEOUT,
+ "Timeout occurred. Try repeating the request later"));
+ }
+
+ void HandleError(const TString& message, EStatus status, const NYql::TIssues& issues) {
+ TString errorMessage = TStringBuilder{} << message << ". Status " << status;
+ HandleError(errorMessage, issues);
+ }
+
+ void HandleError(const TString& message, const NYql::TIssues& issues) {
+ CPP_LOG_E(message);
+ NYql::TIssue issue = MakeErrorIssue(TIssuesIds::INTERNAL_ERROR, message);
+ for (auto& subIssue : issues) {
+ issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
+ }
+ SendErrorMessageToSender(std::move(issue));
+ }
+
+private:
+ virtual void BootstrapImpl() = 0;
+
+protected:
+ const TEventRequestPtr Request;
+ const NPrivate::TRequestCommonCountersPtr Counters;
+ const TActorId ProxyActorId;
+ const TActorId ResponseActorId;
+ const TDuration RequestTimeout;
+};
+
+} // namespace NPrivate
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.cpp b/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.cpp
new file mode 100644
index 0000000000..69adc07df2
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.cpp
@@ -0,0 +1,425 @@
+#include "control_plane_storage_requester_actor.h"
+#include "base_actor.h"
+#include "util/generic/maybe.h"
+
+#include <contrib/libs/fmt/include/fmt/format.h>
+#include <library/cpp/actors/core/event.h>
+
+#include <ydb/core/fq/libs/control_plane_proxy/events/events.h>
+#include <ydb/core/fq/libs/control_plane_storage/control_plane_storage.h>
+#include <ydb/core/fq/libs/control_plane_storage/events/events.h>
+#include <ydb/library/yql/public/issue/yql_issue.h>
+#include <ydb/public/api/protos/draft/fq.pb.h>
+#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
+
+namespace NFq {
+namespace NPrivate {
+
+using namespace NActors;
+using namespace ::NFq::NConfig;
+using namespace NKikimr;
+using namespace NThreading;
+
+template<class TEventRequest, class TEventResponse, class TCPSEventRequest, class TCPSEventResponse>
+class TControlPlaneStorageRequesterActor;
+
+template<class TEventRequest, class TEventResponse, class TCPSEventRequest, class TCPSEventResponse>
+struct TBaseActorTypeTag<
+ TControlPlaneStorageRequesterActor<TEventRequest, TEventResponse, TCPSEventRequest, TCPSEventResponse>> {
+ using TRequest = TEventRequest;
+ using TResponse = TEventResponse;
+};
+
+template<class TEventRequest, class TEventResponse, class TCPSEventRequest, class TCPSEventResponse>
+class TControlPlaneStorageRequesterActor :
+ public TBaseActor<
+ TControlPlaneStorageRequesterActor<TEventRequest, TEventResponse, TCPSEventRequest, TCPSEventResponse>> {
+private:
+ using TBase = TBaseActor<
+ TControlPlaneStorageRequesterActor<TEventRequest, TEventResponse, TCPSEventRequest, TCPSEventResponse>>;
+ using TBase::SelfId;
+ using TBase::Send;
+ using TBase::Request;
+
+ using TEventRequestPtr = typename TEventRequest::TPtr;
+
+public:
+ using TCPSRequestFactory =
+ std::function<typename TCPSEventRequest::TProto(const TEventRequestPtr& request)>;
+ using TErrorMessageFactoryMethod = std::function<TString(const NYql::TIssues& issues)>;
+ using TEntityNameExtractorFactoryMethod =
+ std::function<void(const TEventRequestPtr& request,
+ const typename TCPSEventResponse::TProto& response)>;
+
+ TControlPlaneStorageRequesterActor(const TActorId& proxyActorId,
+ const TEventRequestPtr request,
+ TDuration requestTimeout,
+ const NPrivate::TRequestCommonCountersPtr& counters,
+ TPermissions permissions,
+ TCPSRequestFactory cpsRequestFactory,
+ TErrorMessageFactoryMethod errorMessageFactoryMethod,
+ TEntityNameExtractorFactoryMethod entityNameExtractorFactoryMethod)
+ : TBaseActor<
+ TControlPlaneStorageRequesterActor<TEventRequest, TEventResponse, TCPSEventRequest, TCPSEventResponse>>(
+ proxyActorId, std::move(request), requestTimeout, counters)
+ , Permissions(permissions)
+ , CPSRequestFactory(cpsRequestFactory)
+ , ErrorMessageFactoryMethod(errorMessageFactoryMethod)
+ , EntityNameExtractorFactoryMethod(entityNameExtractorFactoryMethod) { }
+
+ static constexpr char ActorName[] = "YQ_CONTROL_PLANE_PROXY_REQUEST_CONTROL_PLANE_STORAGE";
+
+ void BootstrapImpl() override {
+ SendCPSRequest();
+ }
+
+ void SendCPSRequest() {
+ CPP_LOG_I("TControlPlaneStorageRequesterActor Sending CPS request. Actor id: " << TBase::SelfId());
+ const auto& request = Request;
+ auto event = new TCPSEventRequest(request->Get()->Scope,
+ CPSRequestFactory(request),
+ request->Get()->User,
+ request->Get()->Token,
+ request->Get()->CloudId,
+ Permissions,
+ request->Get()->Quotas,
+ request->Get()->TenantInfo,
+ {});
+ Send(ControlPlaneStorageServiceActorId(), event);
+ }
+
+ STRICT_STFUNC(StateFunc,
+ cFunc(NActors::TEvents::TSystem::Wakeup, TBase::HandleTimeout);
+ hFunc(TCPSEventResponse, Handle);
+ )
+
+ void Handle(typename TCPSEventResponse::TPtr& event) {
+ CPP_LOG_I("TControlPlaneStorageRequesterActor Handling CPS response. Actor id: " << TBase::SelfId());
+ auto issues = event->Get()->Issues;
+ if (!issues.Empty()) {
+ CPP_LOG_I("TControlPlaneStorageRequesterActor Handling CPS response. Request finished with issues. Actor id: " << TBase::SelfId());
+ TString errorMessage = ErrorMessageFactoryMethod(issues);
+ TBase::HandleError(errorMessage, issues);
+ return;
+ }
+
+ CPP_LOG_I("TControlPlaneStorageRequesterActor Handling CPS response. Request finished successfully. Actor id: " << TBase::SelfId());
+ EntityNameExtractorFactoryMethod(Request, event->Get()->Result);
+ TBase::SendRequestToSender();
+ }
+
+private:
+ TPermissions Permissions;
+ TCPSRequestFactory CPSRequestFactory;
+ TErrorMessageFactoryMethod ErrorMessageFactoryMethod;
+ TEntityNameExtractorFactoryMethod EntityNameExtractorFactoryMethod;
+};
+
+/// Discover connection_name
+TString DescribeConnectionErrorMessageFactoryMethod(const NYql::TIssues& issues) {
+ Y_UNUSED(issues);
+ return "Couldn't resolve connection";
+};
+NActors::IActor* MakeDiscoverYDBConnectionName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions) {
+ auto cpsRequestFactory =
+ [](const TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr& event) {
+ FederatedQuery::DescribeConnectionRequest result;
+ auto connectionId = event->Get()->Request.content().connection_id();
+ result.set_connection_id(connectionId);
+ return result;
+ };
+ auto entityNameExtractorFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr& event,
+ const FederatedQuery::DescribeConnectionResult& result) {
+ event->Get()->ConnectionName = result.connection().content().name();
+ };
+
+ return new TControlPlaneStorageRequesterActor<TEvControlPlaneProxy::TEvCreateBindingRequest,
+ TEvControlPlaneProxy::TEvCreateBindingResponse,
+ TEvControlPlaneStorage::TEvDescribeConnectionRequest,
+ TEvControlPlaneStorage::TEvDescribeConnectionResponse>(
+ proxyActorId,
+ request,
+ requestTimeout,
+ counters.GetCommonCounters(RTC_DESCRIBE_CPS_ENTITY),
+ permissions,
+ cpsRequestFactory,
+ DescribeConnectionErrorMessageFactoryMethod,
+ entityNameExtractorFactoryMethod);
+}
+
+NActors::IActor* MakeDiscoverYDBConnectionName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions) {
+ auto cpsRequestFactory =
+ [](const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& event) {
+ FederatedQuery::DescribeConnectionRequest result;
+ auto connectionId = event->Get()->Request.connection_id();
+ result.set_connection_id(connectionId);
+ return result;
+ };
+ auto entityNameExtractorFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& event,
+ const FederatedQuery::DescribeConnectionResult& result) {
+ event->Get()->OldConnectionContent = result.connection().content();
+ };
+
+ return new TControlPlaneStorageRequesterActor<TEvControlPlaneProxy::TEvModifyConnectionRequest,
+ TEvControlPlaneProxy::TEvModifyConnectionResponse,
+ TEvControlPlaneStorage::TEvDescribeConnectionRequest,
+ TEvControlPlaneStorage::TEvDescribeConnectionResponse>(
+ proxyActorId,
+ request,
+ requestTimeout,
+ counters.GetCommonCounters(RTC_DESCRIBE_CPS_ENTITY),
+ permissions,
+ cpsRequestFactory,
+ DescribeConnectionErrorMessageFactoryMethod,
+ entityNameExtractorFactoryMethod);
+}
+
+NActors::IActor* MakeDiscoverYDBConnectionName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvDeleteConnectionRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions) {
+ auto cpsRequestFactory =
+ [](const TEvControlPlaneProxy::TEvDeleteConnectionRequest::TPtr& event) {
+ FederatedQuery::DescribeConnectionRequest result;
+ auto connectionId = event->Get()->Request.connection_id();
+ result.set_connection_id(connectionId);
+ return result;
+ };
+ auto entityNameExtractorFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvDeleteConnectionRequest::TPtr& event,
+ const FederatedQuery::DescribeConnectionResult& result) {
+ event->Get()->ConnectionContent = result.connection().content();
+ };
+
+ return new TControlPlaneStorageRequesterActor<TEvControlPlaneProxy::TEvDeleteConnectionRequest,
+ TEvControlPlaneProxy::TEvDeleteConnectionResponse,
+ TEvControlPlaneStorage::TEvDescribeConnectionRequest,
+ TEvControlPlaneStorage::TEvDescribeConnectionResponse>(
+ proxyActorId,
+ request,
+ requestTimeout,
+ counters.GetCommonCounters(RTC_DESCRIBE_CPS_ENTITY),
+ permissions,
+ cpsRequestFactory,
+ DescribeConnectionErrorMessageFactoryMethod,
+ entityNameExtractorFactoryMethod);
+}
+
+NActors::IActor* MakeDiscoverYDBConnectionName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions) {
+ auto cpsRequestFactory =
+ [](const TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& event) {
+ FederatedQuery::DescribeConnectionRequest result;
+ auto connectionId = event->Get()->OldBindingContent->connection_id();
+ result.set_connection_id(connectionId);
+ return result;
+ };
+ auto entityNameExtractorFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& event,
+ const FederatedQuery::DescribeConnectionResult& result) {
+ event->Get()->ConnectionName = result.connection().content().name();
+ };
+
+ return new TControlPlaneStorageRequesterActor<TEvControlPlaneProxy::TEvModifyBindingRequest,
+ TEvControlPlaneProxy::TEvModifyBindingResponse,
+ TEvControlPlaneStorage::TEvDescribeConnectionRequest,
+ TEvControlPlaneStorage::TEvDescribeConnectionResponse>(
+ proxyActorId,
+ request,
+ requestTimeout,
+ counters.GetCommonCounters(RTC_DESCRIBE_CPS_ENTITY),
+ permissions,
+ cpsRequestFactory,
+ DescribeConnectionErrorMessageFactoryMethod,
+ entityNameExtractorFactoryMethod);
+}
+
+/// Discover binding_name
+
+NActors::IActor* MakeDiscoverYDBBindingName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions) {
+ auto cpsRequestFactory =
+ [](const TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& event) {
+ FederatedQuery::DescribeBindingRequest result;
+ result.set_binding_id(event->Get()->Request.binding_id());
+ return result;
+ };
+
+ auto errorMessageFactoryMethod = [](const NYql::TIssues& issues) -> TString {
+ Y_UNUSED(issues);
+ return "Couldn't resolve binding name";
+ };
+ auto entityNameExtractorFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& event,
+ const FederatedQuery::DescribeBindingResult& result) {
+ event->Get()->OldBindingContent = result.binding().content();
+ };
+
+ return new TControlPlaneStorageRequesterActor<TEvControlPlaneProxy::TEvModifyBindingRequest,
+ TEvControlPlaneProxy::TEvModifyBindingResponse,
+ TEvControlPlaneStorage::TEvDescribeBindingRequest,
+ TEvControlPlaneStorage::TEvDescribeBindingResponse>(
+ proxyActorId,
+ request,
+ requestTimeout,
+ counters.GetCommonCounters(RTC_DESCRIBE_CPS_ENTITY),
+ permissions,
+ cpsRequestFactory,
+ errorMessageFactoryMethod,
+ entityNameExtractorFactoryMethod);
+}
+
+NActors::IActor* MakeDiscoverYDBBindingName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvDeleteBindingRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions) {
+ auto cpsRequestFactory =
+ [](const TEvControlPlaneProxy::TEvDeleteBindingRequest::TPtr& event) {
+ FederatedQuery::DescribeBindingRequest result;
+ result.set_binding_id(event->Get()->Request.binding_id());
+ return result;
+ };
+
+ auto errorMessageFactoryMethod = [](const NYql::TIssues& issues) -> TString {
+ Y_UNUSED(issues);
+ return "Couldn't resolve binding name";
+ };
+ auto entityNameExtractorFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvDeleteBindingRequest::TPtr& event,
+ const FederatedQuery::DescribeBindingResult& result) {
+ event->Get()->OldBindingName = result.binding().content().name();
+ };
+
+ return new TControlPlaneStorageRequesterActor<TEvControlPlaneProxy::TEvDeleteBindingRequest,
+ TEvControlPlaneProxy::TEvDeleteBindingResponse,
+ TEvControlPlaneStorage::TEvDescribeBindingRequest,
+ TEvControlPlaneStorage::TEvDescribeBindingResponse>(
+ proxyActorId,
+ request,
+ requestTimeout,
+ counters.GetCommonCounters(RTC_DESCRIBE_CPS_ENTITY),
+ permissions,
+ cpsRequestFactory,
+ errorMessageFactoryMethod,
+ entityNameExtractorFactoryMethod);
+}
+
+NActors::IActor* MakeListBindingIds(
+ const TActorId proxyActorId,
+ const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions) {
+ auto cpsRequestFactory =
+ [](const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& event) {
+ FederatedQuery::ListBindingsRequest result;
+ auto connectionId = event->Get()->Request.connection_id();
+ result.mutable_filter()->set_connection_id(connectionId);
+ result.set_limit(100);
+ if (event->Get()->NextListingBindingsToken) {
+ result.set_page_token(*event->Get()->NextListingBindingsToken);
+ }
+ return result;
+ };
+
+ auto errorMessageFactoryMethod = [](const NYql::TIssues& issues) -> TString {
+ Y_UNUSED(issues);
+ return "Couldn't resolve binding id(s)";
+ };
+ auto entityNameExtractorFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& event,
+ const FederatedQuery::ListBindingsResult& result) {
+ for (auto& binding: result.binding()) {
+ event->Get()->OldBindingIds.emplace_back(binding.meta().id());
+ }
+
+ TString nextPageToken = result.next_page_token();
+ if (nextPageToken == "") {
+ event->Get()->NextListingBindingsToken = Nothing();
+ event->Get()->OldBindingNamesDiscoveryFinished = true;
+ } else {
+ event->Get()->NextListingBindingsToken = nextPageToken;
+ }
+ };
+
+ return new TControlPlaneStorageRequesterActor<
+ TEvControlPlaneProxy::TEvModifyConnectionRequest,
+ TEvControlPlaneProxy::TEvModifyConnectionResponse,
+ TEvControlPlaneStorage::TEvListBindingsRequest,
+ TEvControlPlaneStorage::TEvListBindingsResponse>(proxyActorId,
+ request,
+ requestTimeout,
+ counters.GetCommonCounters(
+ RTC_DESCRIBE_CPS_ENTITY),
+ permissions,
+ cpsRequestFactory,
+ errorMessageFactoryMethod,
+ entityNameExtractorFactoryMethod);
+}
+
+NActors::IActor* MakeDescribeListedBinding(
+ const TActorId proxyActorId,
+ const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions) {
+ auto cpsRequestFactory =
+ [](const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& event) {
+ auto bindingId = event->Get()->OldBindingIds[event->Get()->OldBindingContents.size()];
+
+ FederatedQuery::DescribeBindingRequest result;
+ result.set_binding_id(bindingId);
+ return result;
+ };
+
+ auto errorMessageFactoryMethod = [](const NYql::TIssues& issues) -> TString {
+ Y_UNUSED(issues);
+ return "Couldn't resolve binding content";
+ };
+ auto entityNameExtractorFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& event,
+ const FederatedQuery::DescribeBindingResult& result) {
+ event->Get()->OldBindingContents.push_back(result.binding().content());
+ };
+
+ return new TControlPlaneStorageRequesterActor<
+ TEvControlPlaneProxy::TEvModifyConnectionRequest,
+ TEvControlPlaneProxy::TEvModifyConnectionResponse,
+ TEvControlPlaneStorage::TEvDescribeBindingRequest,
+ TEvControlPlaneStorage::TEvDescribeBindingResponse>(
+ proxyActorId,
+ request,
+ requestTimeout,
+ counters.GetCommonCounters(RTC_DESCRIBE_CPS_ENTITY),
+ permissions,
+ cpsRequestFactory,
+ errorMessageFactoryMethod,
+ entityNameExtractorFactoryMethod);
+}
+
+} // namespace NPrivate
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.h b/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.h
new file mode 100644
index 0000000000..38b6557e14
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.h
@@ -0,0 +1,75 @@
+#pragma once
+
+#include "counters.h"
+
+#include <library/cpp/actors/core/actor.h>
+#include <ydb/core/fq/libs/control_plane_proxy/events/events.h>
+
+namespace NFq {
+namespace NPrivate {
+
+using namespace NActors;
+
+/// Discover connection_name
+NActors::IActor* MakeDiscoverYDBConnectionName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions);
+
+NActors::IActor* MakeDiscoverYDBConnectionName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions);
+
+NActors::IActor* MakeDiscoverYDBConnectionName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvDeleteConnectionRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions);
+
+NActors::IActor* MakeDiscoverYDBConnectionName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions);
+
+/// Discover binding_name
+
+NActors::IActor* MakeDiscoverYDBBindingName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions);
+
+NActors::IActor* MakeDiscoverYDBBindingName(
+ const TActorId& proxyActorId,
+ const TEvControlPlaneProxy::TEvDeleteBindingRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions);
+
+/// ModifyConnection
+
+NActors::IActor* MakeListBindingIds(
+ const TActorId sender,
+ const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions);
+
+NActors::IActor* MakeDescribeListedBinding(
+ const TActorId sender,
+ const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& request,
+ TCounters& counters,
+ TDuration requestTimeout,
+ TPermissions permissions);
+
+} // namespace NPrivate
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/counters.h b/ydb/core/fq/libs/control_plane_proxy/actors/counters.h
new file mode 100644
index 0000000000..8ab5730295
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/counters.h
@@ -0,0 +1,297 @@
+#pragma once
+
+#include <library/cpp/monlib/dynamic_counters/counters.h>
+#include <ydb/core/fq/libs/common/util.h>
+#include <ydb/core/fq/libs/common/cache.h>
+
+namespace NFq {
+namespace NPrivate {
+
+struct TRequestScopeCounters : public virtual TThrRefBase {
+ const TString Name;
+
+ ::NMonitoring::TDynamicCounterPtr Counters;
+ ::NMonitoring::TDynamicCounters::TCounterPtr InFly;
+ ::NMonitoring::TDynamicCounters::TCounterPtr Ok;
+ ::NMonitoring::TDynamicCounters::TCounterPtr Error;
+ ::NMonitoring::TDynamicCounters::TCounterPtr Timeout;
+ ::NMonitoring::TDynamicCounters::TCounterPtr Retry;
+
+ explicit TRequestScopeCounters(const TString& name)
+ : Name(name) { }
+
+ void Register(const ::NMonitoring::TDynamicCounterPtr& counters) {
+ Counters = counters;
+ ::NMonitoring::TDynamicCounterPtr subgroup =
+ counters->GetSubgroup("request_scope", Name);
+ InFly = subgroup->GetCounter("InFly", false);
+ Ok = subgroup->GetCounter("Ok", true);
+ Error = subgroup->GetCounter("Error", true);
+ Timeout = subgroup->GetCounter("Timeout", true);
+ Timeout = subgroup->GetCounter("Retry", true);
+ }
+
+ virtual ~TRequestScopeCounters() override {
+ Counters->RemoveSubgroup("request_scope", Name);
+ }
+
+private:
+ static ::NMonitoring::IHistogramCollectorPtr GetLatencyHistogramBuckets() {
+ return ::NMonitoring::ExplicitHistogram(
+ {0, 1, 2, 5, 10, 20, 50, 100, 500, 1000, 2000, 5000, 10000, 30000, 50000, 500000});
+ }
+};
+
+struct TRequestCommonCounters : public virtual TThrRefBase {
+ const TString Name;
+
+ ::NMonitoring::TDynamicCounterPtr Counters;
+ ::NMonitoring::TDynamicCounters::TCounterPtr InFly;
+ ::NMonitoring::TDynamicCounters::TCounterPtr Ok;
+ ::NMonitoring::TDynamicCounters::TCounterPtr Error;
+ ::NMonitoring::TDynamicCounters::TCounterPtr Timeout;
+ ::NMonitoring::TDynamicCounters::TCounterPtr Retry;
+ ::NMonitoring::THistogramPtr LatencyMs;
+
+ explicit TRequestCommonCounters(const TString& name)
+ : Name(name) { }
+
+ void Register(const ::NMonitoring::TDynamicCounterPtr& counters) {
+ Counters = counters;
+ ::NMonitoring::TDynamicCounterPtr subgroup =
+ counters->GetSubgroup("request_common", Name);
+ InFly = subgroup->GetCounter("InFly", false);
+ Ok = subgroup->GetCounter("Ok", true);
+ Error = subgroup->GetCounter("Error", true);
+ Timeout = subgroup->GetCounter("Timeout", true);
+ Retry = subgroup->GetCounter("Retry", true);
+ LatencyMs = subgroup->GetHistogram("LatencyMs", GetLatencyHistogramBuckets());
+ }
+
+ virtual ~TRequestCommonCounters() override {
+ Counters->RemoveSubgroup("request_common", Name);
+ }
+
+private:
+ static ::NMonitoring::IHistogramCollectorPtr GetLatencyHistogramBuckets() {
+ return ::NMonitoring::ExplicitHistogram(
+ {0, 1, 2, 5, 10, 20, 50, 100, 500, 1000, 2000, 5000, 10000, 30000, 50000, 500000});
+ }
+};
+
+using TRequestScopeCountersPtr = TIntrusivePtr<TRequestScopeCounters>;
+using TRequestCommonCountersPtr = TIntrusivePtr<TRequestCommonCounters>;
+
+struct TRequestCounters {
+ TRequestScopeCountersPtr Scope;
+ TRequestCommonCountersPtr Common;
+
+ void IncInFly() {
+ Scope->InFly->Inc();
+ Common->InFly->Inc();
+ }
+
+ void DecInFly() {
+ Scope->InFly->Dec();
+ Common->InFly->Dec();
+ }
+
+ void IncOk() {
+ Scope->Ok->Inc();
+ Common->Ok->Inc();
+ }
+
+ void IncError() {
+ Scope->Error->Inc();
+ Common->Error->Inc();
+ }
+
+ void IncTimeout() {
+ Scope->Timeout->Inc();
+ Common->Timeout->Inc();
+ }
+};
+
+enum ERequestTypeScope {
+ RTS_CREATE_QUERY,
+ RTS_LIST_QUERIES,
+ RTS_DESCRIBE_QUERY,
+ RTS_GET_QUERY_STATUS,
+ RTS_MODIFY_QUERY,
+ RTS_DELETE_QUERY,
+ RTS_CONTROL_QUERY,
+ RTS_GET_RESULT_DATA,
+ RTS_LIST_JOBS,
+ RTS_DESCRIBE_JOB,
+ RTS_CREATE_CONNECTION,
+ RTS_LIST_CONNECTIONS,
+ RTS_DESCRIBE_CONNECTION,
+ RTS_MODIFY_CONNECTION,
+ RTS_DELETE_CONNECTION,
+ RTS_TEST_CONNECTION,
+ RTS_CREATE_BINDING,
+ RTS_LIST_BINDINGS,
+ RTS_DESCRIBE_BINDING,
+ RTS_MODIFY_BINDING,
+ RTS_DELETE_BINDING,
+ RTS_MAX,
+};
+
+enum ERequestTypeCommon {
+ RTC_RESOLVE_FOLDER,
+ RTC_CREATE_QUERY,
+ RTC_LIST_QUERIES,
+ RTC_DESCRIBE_QUERY,
+ RTC_GET_QUERY_STATUS,
+ RTC_MODIFY_QUERY,
+ RTC_DELETE_QUERY,
+ RTC_CONTROL_QUERY,
+ RTC_GET_RESULT_DATA,
+ RTC_LIST_JOBS,
+ RTC_DESCRIBE_JOB,
+ RTC_CREATE_CONNECTION,
+ RTC_LIST_CONNECTIONS,
+ RTC_DESCRIBE_CONNECTION,
+ RTC_MODIFY_CONNECTION,
+ RTC_DELETE_CONNECTION,
+ RTC_TEST_CONNECTION,
+ RTC_CREATE_BINDING,
+ RTC_LIST_BINDINGS,
+ RTC_DESCRIBE_BINDING,
+ RTC_MODIFY_BINDING,
+ RTC_DELETE_BINDING,
+ RTC_RESOLVE_SUBJECT_TYPE,
+ RTC_DESCRIBE_CPS_ENTITY,
+ RTC_CREATE_YDB_SESSION,
+ RTC_CREATE_CONNECTION_IN_YDB,
+ RTC_CREATE_BINDING_IN_YDB,
+ RTC_MODIFY_CONNECTION_IN_YDB,
+ RTC_MODIFY_BINDING_IN_YDB,
+ RTC_DELETE_CONNECTION_IN_YDB,
+ RTC_DELETE_BINDING_IN_YDB,
+ RTC_CREATE_COMPUTE_DATABASE,
+ RTC_MAX,
+};
+
+class TCounters : public virtual TThrRefBase {
+ struct TMetricsScope {
+ TString CloudId;
+ TString Scope;
+
+ TMetricsScope() = default;
+
+ TMetricsScope(const TString& cloudId, const TString& scope)
+ : CloudId(cloudId)
+ , Scope(scope)
+ { }
+
+ bool operator<(const TMetricsScope& right) const {
+ return std::tie(CloudId, Scope) < std::tie(right.CloudId, right.Scope);
+ }
+ };
+
+ using TScopeCounters = std::array<TRequestScopeCountersPtr, RTS_MAX>;
+ using TScopeCountersPtr = std::shared_ptr<TScopeCounters>;
+
+ std::array<TRequestCommonCountersPtr, RTC_MAX> CommonRequests = CreateArray<RTC_MAX, TRequestCommonCountersPtr>({
+ {MakeIntrusive<TRequestCommonCounters>("ResolveFolder")},
+ {MakeIntrusive<TRequestCommonCounters>("CreateQuery")},
+ {MakeIntrusive<TRequestCommonCounters>("ListQueries")},
+ {MakeIntrusive<TRequestCommonCounters>("DescribeQuery")},
+ {MakeIntrusive<TRequestCommonCounters>("GetQueryStatus")},
+ {MakeIntrusive<TRequestCommonCounters>("ModifyQuery")},
+ {MakeIntrusive<TRequestCommonCounters>("DeleteQuery")},
+ {MakeIntrusive<TRequestCommonCounters>("ControlQuery")},
+ {MakeIntrusive<TRequestCommonCounters>("GetResultData")},
+ {MakeIntrusive<TRequestCommonCounters>("ListJobs")},
+ {MakeIntrusive<TRequestCommonCounters>("DescribeJob")},
+ {MakeIntrusive<TRequestCommonCounters>("CreateConnection")},
+ {MakeIntrusive<TRequestCommonCounters>("ListConnections")},
+ {MakeIntrusive<TRequestCommonCounters>("DescribeConnection")},
+ {MakeIntrusive<TRequestCommonCounters>("ModifyConnection")},
+ {MakeIntrusive<TRequestCommonCounters>("DeleteConnection")},
+ {MakeIntrusive<TRequestCommonCounters>("TestConnection")},
+ {MakeIntrusive<TRequestCommonCounters>("CreateBinding")},
+ {MakeIntrusive<TRequestCommonCounters>("ListBindings")},
+ {MakeIntrusive<TRequestCommonCounters>("DescribeBinding")},
+ {MakeIntrusive<TRequestCommonCounters>("ModifyBinding")},
+ {MakeIntrusive<TRequestCommonCounters>("DeleteBinding")},
+ {MakeIntrusive<TRequestCommonCounters>("ResolveSubjectType")},
+ {MakeIntrusive<TRequestCommonCounters>("DescribeCPSEntity")},
+ {MakeIntrusive<TRequestCommonCounters>("CreateYDBSession")},
+ {MakeIntrusive<TRequestCommonCounters>("CreateConnectionInYDB")},
+ {MakeIntrusive<TRequestCommonCounters>("CreateBindingInYDB")},
+ {MakeIntrusive<TRequestCommonCounters>("ModifyConnectionInYDB")},
+ {MakeIntrusive<TRequestCommonCounters>("ModifyBindingInYDB")},
+ {MakeIntrusive<TRequestCommonCounters>("DeleteConnectionInYDB")},
+ {MakeIntrusive<TRequestCommonCounters>("DeleteBindingInYDB")},
+ {MakeIntrusive<TRequestCommonCounters>("CreateComputeDatabase")},
+ });
+
+ TTtlCache<TMetricsScope, TScopeCountersPtr, TMap> ScopeCounters{TTtlCacheSettings{}.SetTtl(TDuration::Days(1))};
+ ::NMonitoring::TDynamicCounterPtr Counters;
+
+public:
+ explicit TCounters(const ::NMonitoring::TDynamicCounterPtr& counters)
+ : Counters(counters)
+ {
+ for (auto& request : CommonRequests) {
+ request->Register(Counters);
+ }
+ }
+
+ TRequestCounters GetCounters(const TString& cloudId, const TString& scope, ERequestTypeScope scopeType, ERequestTypeCommon commonType) {
+ return {GetScopeCounters(cloudId, scope, scopeType), GetCommonCounters(commonType)};
+ }
+
+ TRequestCommonCountersPtr GetCommonCounters(ERequestTypeCommon type) {
+ return CommonRequests[type];
+ }
+
+ TRequestScopeCountersPtr GetScopeCounters(const TString& cloudId, const TString& scope, ERequestTypeScope type) {
+ TMetricsScope key{cloudId, scope};
+ TMaybe<TScopeCountersPtr> cacheVal;
+ ScopeCounters.Get(key, &cacheVal);
+ if (cacheVal) {
+ return (**cacheVal)[type];
+ }
+
+ auto scopeRequests = std::make_shared<TScopeCounters>(CreateArray<RTS_MAX, TRequestScopeCountersPtr>({
+ {MakeIntrusive<TRequestScopeCounters>("CreateQuery")},
+ {MakeIntrusive<TRequestScopeCounters>("ListQueries")},
+ {MakeIntrusive<TRequestScopeCounters>("DescribeQuery")},
+ {MakeIntrusive<TRequestScopeCounters>("GetQueryStatus")},
+ {MakeIntrusive<TRequestScopeCounters>("ModifyQuery")},
+ {MakeIntrusive<TRequestScopeCounters>("DeleteQuery")},
+ {MakeIntrusive<TRequestScopeCounters>("ControlQuery")},
+ {MakeIntrusive<TRequestScopeCounters>("GetResultData")},
+ {MakeIntrusive<TRequestScopeCounters>("ListJobs")},
+ {MakeIntrusive<TRequestScopeCounters>("DescribeJob")},
+ {MakeIntrusive<TRequestScopeCounters>("CreateConnection")},
+ {MakeIntrusive<TRequestScopeCounters>("ListConnections")},
+ {MakeIntrusive<TRequestScopeCounters>("DescribeConnection")},
+ {MakeIntrusive<TRequestScopeCounters>("ModifyConnection")},
+ {MakeIntrusive<TRequestScopeCounters>("DeleteConnection")},
+ {MakeIntrusive<TRequestScopeCounters>("TestConnection")},
+ {MakeIntrusive<TRequestScopeCounters>("CreateBinding")},
+ {MakeIntrusive<TRequestScopeCounters>("ListBindings")},
+ {MakeIntrusive<TRequestScopeCounters>("DescribeBinding")},
+ {MakeIntrusive<TRequestScopeCounters>("ModifyBinding")},
+ {MakeIntrusive<TRequestScopeCounters>("DeleteBinding")},
+ }));
+
+ auto scopeCounters = Counters
+ ->GetSubgroup("cloud_id", cloudId)
+ ->GetSubgroup("scope", scope);
+
+ for (auto& request : *scopeRequests) {
+ request->Register(scopeCounters);
+ }
+ cacheVal = scopeRequests;
+ ScopeCounters.Put(key, cacheVal);
+ return (*scopeRequests)[type];
+ }
+};
+
+} // namespace NPrivate
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.cpp b/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.cpp
new file mode 100644
index 0000000000..494e44034a
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.cpp
@@ -0,0 +1,218 @@
+#include "query_utils.h"
+
+#include <contrib/libs/fmt/include/fmt/format.h>
+#include <util/generic/maybe.h>
+
+#include <ydb/core/fq/libs/common/util.h>
+#include <ydb/core/fq/libs/result_formatter/result_formatter.h>
+#include <ydb/core/kqp/provider/yql_kikimr_results.h>
+#include <ydb/public/api/protos/draft/fq.pb.h>
+
+namespace NFq {
+namespace NPrivate {
+
+TString MakeCreateExternalDataTableQuery(const FederatedQuery::BindingContent& content,
+ const TString& connectionName) {
+ using namespace fmt::literals;
+
+ auto bindingName = content.name();
+ auto objectStorageParams = content.setting().object_storage();
+ const auto& subset = objectStorageParams.subset(0);
+
+ // Schema
+ NYql::TExprContext context;
+ auto columnsTransformFunction = [&context](const Ydb::Column& column) -> TString {
+ NYdb::TTypeParser typeParser(column.type());
+ auto node = MakeType(typeParser, context);
+ auto typeName = NYql::FormatType(node);
+ const TString notNull =
+ (node->GetKind() == NYql::ETypeAnnotationKind::Optional) ? "" : "NOT NULL";
+ return fmt::format(" {columnName} {columnType} {notNull}",
+ "columnName"_a = EncloseAndEscapeString(column.name(), '`'),
+ "columnType"_a = typeName,
+ "notNull"_a = notNull);
+ };
+
+ // WithOptions
+ auto withOptions = std::unordered_map<TString, TString>{};
+ withOptions.insert({"DATA_SOURCE", TStringBuilder{} << '"' << connectionName << '"'});
+ withOptions.insert({"LOCATION", EncloseAndEscapeString(subset.path_pattern(), '"')});
+ if (!subset.format().Empty()) {
+ withOptions.insert({"FORMAT", EncloseAndEscapeString(subset.format(), '"')});
+ }
+ if (!subset.compression().Empty()) {
+ withOptions.insert(
+ {"COMPRESSION", EncloseAndEscapeString(subset.compression(), '"')});
+ }
+ for (auto& kv : subset.format_setting()) {
+ withOptions.insert({EncloseAndEscapeString(kv.first, '`'),
+ EncloseAndEscapeString(kv.second, '"')});
+ }
+
+ if (!subset.partitioned_by().empty()) {
+ auto partitionBy = TStringBuilder{}
+ << "\"["
+ << JoinMapRange(", ",
+ subset.partitioned_by().begin(),
+ subset.partitioned_by().end(),
+ [](const TString& value) {
+ return EscapeString(value, '"');
+ })
+ << "]\"";
+ withOptions.insert({"PARTITIONED_BY", partitionBy});
+ }
+
+ for (auto& kv : subset.projection()) {
+ withOptions.insert({EncloseAndEscapeString(kv.first, '`'),
+ EncloseAndEscapeString(kv.second, '"')});
+ }
+
+ return fmt::format(
+ R"(
+ CREATE EXTERNAL TABLE {externalTableName} (
+ {columns}
+ ) WITH (
+ {withOptions}
+ );)",
+ "externalTableName"_a = EncloseAndEscapeString(bindingName, '`'),
+ "columns"_a = JoinMapRange(",\n",
+ subset.schema().column().begin(),
+ subset.schema().column().end(),
+ columnsTransformFunction),
+ "withOptions"_a = JoinMapRange(",\n",
+ withOptions.begin(),
+ withOptions.end(),
+ [](const std::pair<TString, TString>& kv) -> TString {
+ return TStringBuilder{} << " " << kv.first
+ << " = " << kv.second;
+ }));
+}
+
+TString SignAccountId(const TString& id, const TSigner::TPtr& signer) {
+ return signer ? signer->SignAccountId(id) : TString{};
+}
+
+TString CreateSecretObjectQuery(const FederatedQuery::IamAuth& auth,
+ const TString& name,
+ const TSigner::TPtr& signer) {
+ using namespace fmt::literals;
+ switch (auth.identity_case()) {
+ case FederatedQuery::IamAuth::kServiceAccount: {
+ if (!signer) {
+ return {};
+ }
+ return fmt::format(R"(
+ UPSERT OBJECT {external_source} (TYPE SECRET) WITH value={signature};
+ )",
+ "external_source"_a = EncloseAndEscapeString(name, '`'),
+ "signature"_a = EncloseAndEscapeString(
+ SignAccountId(auth.service_account().id(), signer), '`'));
+ }
+ case FederatedQuery::IamAuth::kNone:
+ case FederatedQuery::IamAuth::kCurrentIam:
+ // Do not replace with default. Adding a new auth item should cause a compilation error
+ case FederatedQuery::IamAuth::IDENTITY_NOT_SET:
+ return {};
+ }
+}
+
+TString CreateAuthParamsQuery(const FederatedQuery::IamAuth& auth,
+ const TString& name,
+ const TSigner::TPtr& signer) {
+ using namespace fmt::literals;
+ switch (auth.identity_case()) {
+ case FederatedQuery::IamAuth::kNone:
+ return R"(, AUTH_METHOD="NONE")";
+ case FederatedQuery::IamAuth::kServiceAccount:
+ return fmt::format(R"(,
+ AUTH_METHOD="SERVICE_ACCOUNT",
+ SERVICE_ACCOUNT_ID={service_account_id},
+ SERVICE_ACCOUNT_SECRET_NAME={secret_name}
+ )",
+ "service_account_id"_a =
+ EncloseAndEscapeString(auth.service_account().id(), '"'),
+ "external_source"_a = EncloseAndEscapeString(name, '"'),
+ "secret_name"_a =
+ EncloseAndEscapeString(signer ? name : TString{}, '"'));
+ case FederatedQuery::IamAuth::kCurrentIam:
+ // Do not replace with default. Adding a new auth item should cause a compilation error
+ case FederatedQuery::IamAuth::IDENTITY_NOT_SET:
+ return {};
+ }
+}
+
+TString MakeCreateExternalDataSourceQuery(
+ const FederatedQuery::ConnectionContent& connectionContent,
+ const TString& objectStorageEndpoint,
+ const TSigner::TPtr& signer) {
+ using namespace fmt::literals;
+
+ auto sourceName = connectionContent.name();
+ auto bucketName = connectionContent.setting().object_storage().bucket();
+
+ return fmt::format(
+ R"(
+ {upsert_object};
+ CREATE EXTERNAL DATA SOURCE {external_source} WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="{location}"
+ {auth_params}
+ );
+ )",
+ "external_source"_a = EncloseAndEscapeString(sourceName, '`'),
+ "location"_a = objectStorageEndpoint + "/" + EscapeString(bucketName, '"') + "/",
+ "upsert_object"_a =
+ CreateSecretObjectQuery(connectionContent.setting().object_storage().auth(),
+ connectionContent.name(),
+ signer),
+ "auth_params"_a =
+ CreateAuthParamsQuery(connectionContent.setting().object_storage().auth(),
+ connectionContent.name(),
+ signer));
+}
+
+TString DropSecretObjectQuery(const FederatedQuery::IamAuth& auth,
+ const TString& name,
+ const TSigner::TPtr& signer) {
+ using namespace fmt::literals;
+ switch (auth.identity_case()) {
+ case FederatedQuery::IamAuth::kServiceAccount: {
+ if (!signer) {
+ return {};
+ }
+ return fmt::format("DROP OBJECT {secret_name} (TYPE SECRET);",
+ "secret_name"_a =
+ EncloseAndEscapeString(name, '`'));
+ }
+ case FederatedQuery::IamAuth::kNone:
+ case FederatedQuery::IamAuth::kCurrentIam:
+ // Do not replace with default. Adding a new auth item should cause a compilation error
+ case FederatedQuery::IamAuth::IDENTITY_NOT_SET:
+ return {};
+ }
+}
+
+TString MakeDeleteExternalDataSourceQuery(
+ const FederatedQuery::ConnectionContent& connectionContent,
+ const TSigner::TPtr& signer) {
+ using namespace fmt::literals;
+ return fmt::format(
+ R"(
+ {drop_secret_statement};
+ DROP EXTERNAL DATA SOURCE {external_source};
+ )",
+ "drop_secret_statement"_a =
+ DropSecretObjectQuery(connectionContent.setting().object_storage().auth(),
+ connectionContent.name(),
+ signer),
+ "external_source"_a = EncloseAndEscapeString(connectionContent.name(), '`'));
+}
+
+TString MakeDeleteExternalDataTableQuery(const TString& tableName) {
+ using namespace fmt::literals;
+ return fmt::format("DROP EXTERNAL TABLE {external_table};",
+ "external_table"_a = EncloseAndEscapeString(tableName, '`'));
+}
+
+} // namespace NPrivate
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.h b/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.h
new file mode 100644
index 0000000000..480ee99ee7
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/query_utils.h
@@ -0,0 +1,25 @@
+#pragma once
+
+#include <util/generic/string.h>
+#include <ydb/core/fq/libs/control_plane_storage/events/events.h>
+#include <ydb/core/fq/libs/signer/signer.h>
+
+namespace NFq {
+namespace NPrivate {
+
+TString MakeCreateExternalDataTableQuery(const FederatedQuery::BindingContent& content,
+ const TString& connectionName);
+
+TString MakeCreateExternalDataSourceQuery(
+ const FederatedQuery::ConnectionContent& connectionContent,
+ const TString& objectStorageEndpoint,
+ const TSigner::TPtr& signer);
+
+TString MakeDeleteExternalDataSourceQuery(
+ const FederatedQuery::ConnectionContent& connectionContent,
+ const TSigner::TPtr& signer);
+
+TString MakeDeleteExternalDataTableQuery(const TString& tableName);
+
+} // namespace NPrivate
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/request_actor.h b/ydb/core/fq/libs/control_plane_proxy/actors/request_actor.h
new file mode 100644
index 0000000000..12084c0ce5
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/request_actor.h
@@ -0,0 +1,259 @@
+#pragma once
+
+#include "counters.h"
+#include "utils.h"
+
+#include <contrib/libs/fmt/include/fmt/format.h>
+#include <library/cpp/actors/core/event.h>
+#include <util/generic/maybe.h>
+
+#include <ydb/core/fq/libs/actors/logging/log.h>
+#include <ydb/core/fq/libs/control_plane_proxy/events/events.h>
+#include <ydb/core/fq/libs/control_plane_storage/events/events.h>
+#include <ydb/library/yql/public/issue/yql_issue.h>
+
+namespace NFq {
+namespace NPrivate {
+
+template<class TRequestProto, class TRequest, class TResponse, class TRequestProxy, class TResponseProxy>
+class TRequestActor :
+ public NActors::TActorBootstrapped<
+ TRequestActor<TRequestProto, TRequest, TResponse, TRequestProxy, TResponseProxy>> {
+protected:
+ using TBase = NActors::TActorBootstrapped<
+ TRequestActor<TRequestProto, TRequest, TResponse, TRequestProxy, TResponseProxy>>;
+ using TBase::SelfId;
+ using TBase::Send;
+ using TBase::PassAway;
+ using TBase::Become;
+ using TBase::Schedule;
+
+ typename TRequestProxy::TPtr RequestProxy;
+ ::NFq::TControlPlaneProxyConfig Config;
+ TActorId ServiceId;
+ TRequestCounters Counters;
+ TInstant StartTime;
+ std::function<void(const TDuration&, bool /* isSuccess */, bool /* isTimeout */)> Probe;
+ TPermissions Permissions;
+ ui32 RetryCount = 0;
+ bool ReplyWithResponseOnSuccess = true;
+
+public:
+ static constexpr char ActorName[] = "YQ_CONTROL_PLANE_PROXY_REQUEST_ACTOR";
+
+ explicit TRequestActor(typename TRequestProxy::TPtr requestProxy,
+ const ::NFq::TControlPlaneProxyConfig& config,
+ const TActorId& serviceId,
+ const TRequestCounters& counters,
+ const std::function<void(const TDuration&, bool, bool)>& probe,
+ const TPermissions& availablePermissions,
+ bool replyWithResponseOnSuccess = true)
+ : RequestProxy(requestProxy)
+ , Config(config)
+ , ServiceId(serviceId)
+ , Counters(counters)
+ , StartTime(TInstant::Now())
+ , Probe(probe)
+ , Permissions(ExtractPermissions(RequestProxy, availablePermissions))
+ , ReplyWithResponseOnSuccess(replyWithResponseOnSuccess) {
+ Counters.IncInFly();
+ }
+
+public:
+ void Bootstrap() {
+ CPP_LOG_T("Request actor. Actor id: " << SelfId());
+ Become(&TRequestActor::StateFunc,
+ Config.RequestTimeout,
+ new NActors::TEvents::TEvWakeup());
+ Send(ControlPlaneConfigActorId(),
+ new TEvControlPlaneConfig::TEvGetTenantInfoRequest());
+ OnBootstrap();
+ }
+
+ virtual void OnBootstrap() { }
+
+ STRICT_STFUNC(StateFunc, cFunc(NActors::TEvents::TSystem::Wakeup, HandleTimeout);
+ hFunc(TResponse, Handle);
+ cFunc(TEvControlPlaneConfig::EvGetTenantInfoRequest, HandleRetry);
+ hFunc(TEvControlPlaneConfig::TEvGetTenantInfoResponse, Handle);)
+
+ void HandleRetry() {
+ Send(ControlPlaneConfigActorId(),
+ new TEvControlPlaneConfig::TEvGetTenantInfoRequest());
+ }
+
+ void Handle(TEvControlPlaneConfig::TEvGetTenantInfoResponse::TPtr& ev) {
+ RequestProxy->Get()->TenantInfo = std::move(ev->Get()->TenantInfo);
+ if (RequestProxy->Get()->TenantInfo) {
+ SendRequestIfCan();
+ } else {
+ RetryCount++;
+ Schedule(Now() + Config.ConfigRetryPeriod * (1 << RetryCount),
+ new TEvControlPlaneConfig::TEvGetTenantInfoRequest());
+ }
+ }
+
+ void HandleTimeout() {
+ CPP_LOG_D("Request timeout. " << RequestProxy->Get()->Request.DebugString());
+ NYql::TIssues issues;
+ NYql::TIssue issue =
+ MakeErrorIssue(TIssuesIds::TIMEOUT,
+ "Request timeout. Try repeating the request later");
+ issues.AddIssue(issue);
+ Counters.IncTimeout();
+ ReplyWithError(issues, true);
+ }
+
+ void Handle(typename TResponse::TPtr& ev) {
+ auto& response = *ev->Get();
+ ProcessResponse(response);
+ }
+
+ template<typename T>
+ void ProcessResponse(const T& response) {
+ if (response.Issues) {
+ ReplyWithError(response.Issues);
+ } else {
+ ReplyWithSuccess(response.Result);
+ }
+ }
+
+ template<typename T>
+ requires requires(T t) { t.AuditDetails; }
+ void ProcessResponse(const T& response) {
+ if (response.Issues) {
+ ReplyWithError(response.Issues);
+ } else {
+ ReplyWithSuccess(response.Result, response.AuditDetails);
+ }
+ }
+
+ void ReplyWithError(const NYql::TIssues& issues, bool isTimeout = false) {
+ const TDuration delta = TInstant::Now() - StartTime;
+ Counters.IncError();
+ Probe(delta, false, isTimeout);
+ Send(RequestProxy->Sender, new TResponseProxy(issues, RequestProxy->Get()->SubjectType), 0, RequestProxy->Cookie);
+ PassAway();
+ }
+
+ template<class... TArgs>
+ void ReplyWithSuccess(TArgs&&... args) {
+ const TDuration delta = TInstant::Now() - StartTime;
+ Counters.IncOk();
+ Probe(delta, true, false);
+ if (ReplyWithResponseOnSuccess) {
+ Send(RequestProxy->Sender,
+ new TResponseProxy(std::forward<TArgs>(args)..., RequestProxy->Get()->SubjectType),
+ 0,
+ RequestProxy->Cookie);
+ } else {
+ RequestProxy->Get()->Response =
+ std::make_unique<TResponseProxy>(std::forward<TArgs>(args)..., RequestProxy->Get()->SubjectType);
+ RequestProxy->Get()->ControlPlaneYDBOperationWasPerformed = true;
+ Send(RequestProxy->Forward(ControlPlaneProxyActorId()));
+ }
+ PassAway();
+ }
+
+ virtual bool CanSendRequest() const { return bool(RequestProxy->Get()->TenantInfo); }
+
+ void SendRequestIfCan() {
+ if (CanSendRequest()) {
+ Send(ServiceId,
+ new TRequest(RequestProxy->Get()->Scope,
+ RequestProxy->Get()->Request,
+ RequestProxy->Get()->User,
+ RequestProxy->Get()->Token,
+ RequestProxy->Get()->CloudId,
+ Permissions,
+ RequestProxy->Get()->Quotas,
+ RequestProxy->Get()->TenantInfo,
+ RequestProxy->Get()->ComputeDatabase.GetOrElse({})),
+ 0,
+ RequestProxy->Cookie);
+ }
+ }
+
+ virtual ~TRequestActor() {
+ Counters.DecInFly();
+ Counters.Common->LatencyMs->Collect((TInstant::Now() - StartTime).MilliSeconds());
+ }
+};
+
+class TCreateQueryRequestActor :
+ public TRequestActor<FederatedQuery::CreateQueryRequest,
+ TEvControlPlaneStorage::TEvCreateQueryRequest,
+ TEvControlPlaneStorage::TEvCreateQueryResponse,
+ TEvControlPlaneProxy::TEvCreateQueryRequest,
+ TEvControlPlaneProxy::TEvCreateQueryResponse> {
+ bool QuoterResourceCreated = false;
+
+public:
+ using TBaseRequestActor = TRequestActor<FederatedQuery::CreateQueryRequest,
+ TEvControlPlaneStorage::TEvCreateQueryRequest,
+ TEvControlPlaneStorage::TEvCreateQueryResponse,
+ TEvControlPlaneProxy::TEvCreateQueryRequest,
+ TEvControlPlaneProxy::TEvCreateQueryResponse>;
+ using TBaseRequestActor::TBaseRequestActor;
+
+ STFUNC(StateFunc) {
+ switch (ev->GetTypeRewrite()) {
+ hFunc(TEvRateLimiter::TEvCreateResourceResponse, Handle);
+ default:
+ return TBaseRequestActor::StateFunc(ev);
+ }
+ }
+
+ void OnBootstrap() override {
+ Become(&TCreateQueryRequestActor::StateFunc);
+ if (RequestProxy->Get()->Quotas) {
+ SendCreateRateLimiterResourceRequest();
+ } else {
+ SendRequestIfCan();
+ }
+ }
+
+ void SendCreateRateLimiterResourceRequest() {
+ if (auto quotaIt = RequestProxy->Get()->Quotas->find(QUOTA_CPU_PERCENT_LIMIT); quotaIt != RequestProxy->Get()->Quotas->end()) {
+ const double cloudLimit = static_cast<double>(quotaIt->second.Limit.Value *
+ 10); // percent -> milliseconds
+ CPP_LOG_T("Create rate limiter resource for cloud with limit " << cloudLimit
+ << "ms");
+ Send(RateLimiterControlPlaneServiceId(),
+ new TEvRateLimiter::TEvCreateResource(RequestProxy->Get()->CloudId, cloudLimit));
+ } else {
+ NYql::TIssues issues;
+ NYql::TIssue issue =
+ MakeErrorIssue(TIssuesIds::INTERNAL_ERROR,
+ TStringBuilder() << "CPU quota for cloud \"" << RequestProxy->Get()->CloudId
+ << "\" was not found");
+ issues.AddIssue(issue);
+ CPP_LOG_W("Failed to get cpu quota for cloud " << RequestProxy->Get()->CloudId);
+ ReplyWithError(issues);
+ }
+ }
+
+ void Handle(TEvRateLimiter::TEvCreateResourceResponse::TPtr& ev) {
+ CPP_LOG_D(
+ "Create response from rate limiter service. Success: " << ev->Get()->Success);
+ if (ev->Get()->Success) {
+ QuoterResourceCreated = true;
+ SendRequestIfCan();
+ } else {
+ NYql::TIssue issue("Failed to create rate limiter resource");
+ for (const NYql::TIssue& i : ev->Get()->Issues) {
+ issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(i));
+ }
+ NYql::TIssues issues;
+ issues.AddIssue(issue);
+ ReplyWithError(issues);
+ }
+ }
+
+ bool CanSendRequest() const override {
+ return (QuoterResourceCreated || !RequestProxy->Get()->Quotas) && TBaseRequestActor::CanSendRequest();
+ }
+};
+
+}
+}
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/utils.h b/ydb/core/fq/libs/control_plane_proxy/actors/utils.h
new file mode 100644
index 0000000000..8967e804f6
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/utils.h
@@ -0,0 +1,40 @@
+#pragma once
+
+#include <ydb/core/fq/libs/compute/common/utils.h>
+
+namespace NFq {
+
+template<typename T>
+std::shared_ptr<NYdb::NTable::TTableClient> CreateNewTableClient(const T& ev,
+ const NFq::TComputeConfig& computeConfig,
+ const TYqSharedResources::TPtr& yqSharedResources,
+ const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory) {
+ const auto& scope = ev->Get()->Scope;
+ return CreateNewTableClient(scope, computeConfig, ev->Get()->ComputeDatabase->connection(), yqSharedResources, credentialsProviderFactory);
+}
+
+inline static const TMap<TString, TPermissions::TPermission> PermissionsItems = {
+ {"yq.resources.viewPublic@as", TPermissions::VIEW_PUBLIC},
+ {"yq.resources.viewPrivate@as", TPermissions::VIEW_PRIVATE},
+ {"yq.queries.viewAst@as", TPermissions::VIEW_AST},
+ {"yq.resources.managePublic@as", TPermissions::MANAGE_PUBLIC},
+ {"yq.resources.managePrivate@as", TPermissions::MANAGE_PRIVATE},
+ {"yq.queries.invoke@as", TPermissions::QUERY_INVOKE},
+ {"yq.queries.viewQueryText@as", TPermissions::VIEW_QUERY_TEXT},
+};
+
+template<typename T>
+TPermissions ExtractPermissions(T& ev, const TPermissions& availablePermissions) {
+ TPermissions permissions;
+ for (const auto& permission : ev->Get()->Permissions) {
+ if (auto it = PermissionsItems.find(permission); it != PermissionsItems.end()) {
+ // cut off permissions that should not be used in other services
+ if (availablePermissions.Check(it->second)) {
+ permissions.Set(it->second);
+ }
+ }
+ }
+ return permissions;
+}
+
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/ya.make b/ydb/core/fq/libs/control_plane_proxy/actors/ya.make
new file mode 100644
index 0000000000..b08611e3de
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+SRCS(
+ control_plane_storage_requester_actor.cpp
+ query_utils.cpp
+ ydb_schema_query_actor.cpp
+)
+
+PEERDIR(
+ contrib/libs/fmt
+ library/cpp/iterator
+ ydb/core/fq/libs/common
+ ydb/core/fq/libs/control_plane_proxy/events
+ ydb/core/fq/libs/control_plane_storage/events
+ ydb/core/fq/libs/result_formatter
+ ydb/core/kqp/provider
+ ydb/library/db_pool/protos
+)
+
+YQL_LAST_ABI_VERSION()
+
+END()
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.cpp b/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.cpp
new file mode 100644
index 0000000000..8352a5b820
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.cpp
@@ -0,0 +1,498 @@
+#include "base_actor.h"
+#include "query_utils.h"
+
+#include <contrib/libs/fmt/include/fmt/format.h>
+#include <util/string/join.h>
+#include <ydb/core/fq/libs/common/util.h>
+#include <ydb/core/fq/libs/config/yq_issue.h>
+#include <ydb/core/fq/libs/control_plane_proxy/events/events.h>
+#include <ydb/public/api/protos/draft/fq.pb.h>
+#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
+
+namespace NFq {
+namespace NPrivate {
+
+using namespace NActors;
+using namespace ::NFq::NConfig;
+using namespace NKikimr;
+using namespace NThreading;
+using namespace NYdb;
+using namespace NYdb::NTable;
+
+template<class TEventRequest, class TEventResponse>
+class TSchemaQueryYDBActor;
+
+template<class TEventRequest, class TEventResponse>
+struct TBaseActorTypeTag<TSchemaQueryYDBActor<TEventRequest, TEventResponse>> {
+ using TRequest = TEventRequest;
+ using TResponse = TEventResponse;
+};
+
+struct TSchemaQueryTask {
+ TString SQL;
+ TMaybe<TString> RollbackSQL;
+};
+
+template<class TEventRequest, class TEventResponse>
+class TSchemaQueryYDBActor :
+ public TBaseActor<TSchemaQueryYDBActor<TEventRequest, TEventResponse>> {
+private:
+ struct TEvPrivate {
+ enum EEv {
+ EvQueryExecutionResponse = EventSpaceBegin(NActors::TEvents::ES_PRIVATE),
+ EvEnd
+ };
+
+ static_assert(EvEnd < EventSpaceEnd(NActors::TEvents::ES_PRIVATE),
+ "expect EvEnd < EventSpaceEnd(TEvents::ES_PRIVATE)");
+
+ struct TEvQueryExecutionResponse :
+ NActors::TEventLocal<TEvQueryExecutionResponse, EvQueryExecutionResponse> {
+ TStatus Result;
+ size_t TaskIndex = 0u;
+ bool Rollback = false;
+ TMaybe<TStatus> MaybeInitialStatus;
+
+ TEvQueryExecutionResponse(TStatus result,
+ size_t taskIndex,
+ bool rollback,
+ TMaybe<TStatus> MaybeInitialStatus)
+ : Result(std::move(result))
+ , TaskIndex(taskIndex)
+ , Rollback(rollback)
+ , MaybeInitialStatus(std::move(MaybeInitialStatus)) { }
+ };
+ };
+
+ using TBase = TBaseActor<TSchemaQueryYDBActor<TEventRequest, TEventResponse>>;
+ using TBase::SelfId;
+ using TBase::Request;
+
+ using TEventRequestPtr = typename TEventRequest::TPtr;
+
+public:
+ using TTasks = std::vector<TSchemaQueryTask>;
+ using TTasksFactoryMethod = std::function<TTasks(const TEventRequestPtr& request)>;
+ using TQueryFactoryMethod = std::function<TString(const TEventRequestPtr& request)>;
+ using TErrorMessageFactoryMethod = std::function<TString(const TStatus& status)>;
+
+ TSchemaQueryYDBActor(const TActorId& proxyActorId,
+ const TEventRequestPtr request,
+ TDuration requestTimeout,
+ const NPrivate::TRequestCommonCountersPtr& counters,
+ TQueryFactoryMethod queryFactoryMethod,
+ TErrorMessageFactoryMethod errorMessageFactoryMethod,
+ bool successOnAlreadyExists = false)
+ : TBaseActor<TSchemaQueryYDBActor<TEventRequest, TEventResponse>>(
+ proxyActorId, std::move(request), requestTimeout, counters)
+ , Tasks{TSchemaQueryTask{.SQL = queryFactoryMethod(Request)}}
+ , ErrorMessageFactoryMethod(errorMessageFactoryMethod)
+ , SuccessOnAlreadyExists(successOnAlreadyExists)
+ { }
+
+ TSchemaQueryYDBActor(const TActorId& proxyActorId,
+ const TEventRequestPtr request,
+ TDuration requestTimeout,
+ const NPrivate::TRequestCommonCountersPtr& counters,
+ TTasksFactoryMethod tasksFactoryMethod,
+ TErrorMessageFactoryMethod errorMessageFactoryMethod,
+ bool successOnAlreadyExists = false)
+ : TBaseActor<TSchemaQueryYDBActor<TEventRequest, TEventResponse>>(
+ proxyActorId, std::move(request), requestTimeout, counters)
+ , Tasks(tasksFactoryMethod(Request))
+ , ErrorMessageFactoryMethod(errorMessageFactoryMethod)
+ , SuccessOnAlreadyExists(successOnAlreadyExists)
+ { }
+
+ static constexpr char ActorName[] = "YQ_CONTROL_PLANE_PROXY_YDB_SCHEMA_QUERY_ACTOR";
+
+ void BootstrapImpl() override {
+ CPP_LOG_I("TSchemaQueryYDBActor BootstrapImpl. Actor id: " << TBase::SelfId());
+ InitiateSchemaQueryExecution(0, false, Nothing());
+ }
+
+ TMaybe<TString> SelectTask(size_t taskIndex, bool rollback) {
+ if (!rollback) {
+ if (taskIndex < Tasks.size()) {
+ return Tasks[taskIndex].SQL;
+ }
+ return Nothing();
+ }
+
+ while (true) {
+ const auto& maybeRollback = Tasks[taskIndex].RollbackSQL;
+ if (maybeRollback) {
+ return maybeRollback;
+ }
+ if (taskIndex == 0u) {
+ return Nothing();
+ }
+ taskIndex--;
+ }
+ }
+
+ bool InitiateSchemaQueryExecution(size_t taskIndex,
+ bool rollback,
+ const TMaybe<TStatus>& maybeInitialStatus) {
+ CPP_LOG_I(
+ "TSchemaQueryYDBActor Executing schema query. Actor id: " << TBase::SelfId());
+ auto schemeQuery = SelectTask(taskIndex, rollback);
+ if (schemeQuery) {
+ CPP_LOG_I("TSchemaQueryYDBActor Executing schema query. schemeQuery: "
+ << schemeQuery);
+ Request->Get()
+ ->YDBClient
+ ->RetryOperation([query = *schemeQuery](TSession session) {
+ return session.ExecuteSchemeQuery(query);
+ })
+ .Subscribe([actorSystem = NActors::TActivationContext::ActorSystem(),
+ self = SelfId(),
+ taskIndex,
+ rollback,
+ maybeInitialStatus](const TAsyncStatus& future) {
+ actorSystem->Send(self,
+ new typename TEvPrivate::TEvQueryExecutionResponse{
+ std::move(future.GetValueSync()),
+ taskIndex,
+ rollback,
+ std::move(maybeInitialStatus)});
+ });
+ }
+ return schemeQuery.Defined();
+ }
+
+ STRICT_STFUNC(StateFunc,
+ cFunc(NActors::TEvents::TSystem::Wakeup, TBase::HandleTimeout);
+ hFunc(TEvPrivate::TEvQueryExecutionResponse, Handle);
+ )
+
+ void FinishSuccessfully() {
+ CPP_LOG_I("TSchemaQueryYDBActor Handling query execution response. Query finished successfully. Actor id: "
+ << TBase::SelfId());
+ Request->Get()->ComputeYDBOperationWasPerformed = true;
+ TBase::SendRequestToSender();
+ }
+
+ void SendError(const TStatus& executeSchemeQueryStatus) {
+ CPP_LOG_I("TSchemaQueryYDBActor Handling query execution response. Query finished with issues. Actor id: "
+ << TBase::SelfId());
+ TString errorMessage = ErrorMessageFactoryMethod(executeSchemeQueryStatus);
+
+ TBase::HandleError(errorMessage,
+ executeSchemeQueryStatus.GetStatus(),
+ executeSchemeQueryStatus.GetIssues());
+ }
+
+
+
+ void Handle(typename TEvPrivate::TEvQueryExecutionResponse::TPtr& event) {
+ const auto& executeSchemeQueryStatus = event->Get()->Result;
+ auto isRollback = event->Get()->Rollback;
+ auto successExecutionRunMode = IsSuccess(executeSchemeQueryStatus) && !isRollback;
+ auto successExecutionRollbackMode = IsSuccess(executeSchemeQueryStatus) && isRollback;
+ auto failedExecutionRunMode = !IsSuccess(executeSchemeQueryStatus) && !isRollback;
+
+ if (successExecutionRunMode) {
+ if (!InitiateSchemaQueryExecution(event->Get()->TaskIndex + 1, false, Nothing())) {
+ FinishSuccessfully();
+ return;
+ }
+ } else if (successExecutionRollbackMode) {
+ if (event->Get()->TaskIndex == 0 ||
+ !InitiateSchemaQueryExecution(event->Get()->TaskIndex - 1,
+ true,
+ std::move(event->Get()->MaybeInitialStatus))) {
+ SendError(*event->Get()->MaybeInitialStatus);
+ return;
+ }
+ } else if (failedExecutionRunMode) {
+ if (event->Get()->TaskIndex == 0 ||
+ !InitiateSchemaQueryExecution(event->Get()->TaskIndex - 1,
+ true,
+ std::move(event->Get()->Result))) {
+ SendError(event->Get()->Result);
+ return;
+ }
+ } else {
+ // Failed during rollback
+ const auto& initialIssues = *(event->Get()->MaybeInitialStatus);
+
+ auto originalIssue =
+ MakeErrorIssue(TIssuesIds::INTERNAL_ERROR, "Couldn't execute SQL script");
+ for (const auto& subIssue : initialIssues.GetIssues()) {
+ originalIssue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
+ }
+ auto rollbackIssue =
+ MakeErrorIssue(TIssuesIds::INTERNAL_ERROR,
+ "Couldn't execute rollback SQL script");
+ for (const auto& subIssue : event->Get()->Result.GetIssues()) {
+ originalIssue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
+ }
+ SendError(TStatus{initialIssues.GetStatus(),
+ NYql::TIssues{std::move(originalIssue),
+ std::move(rollbackIssue)}});
+ return;
+ }
+ }
+
+private:
+ bool IsSuccess(const TStatus& status) const {
+ return status.IsSuccess() || (SuccessOnAlreadyExists && (status.GetStatus() == NYdb::EStatus::ALREADY_EXISTS || status.GetIssues().ToOneLineString().Contains("error: path exist")));
+ }
+
+private:
+ TTasks Tasks;
+ TErrorMessageFactoryMethod ErrorMessageFactoryMethod;
+ bool SuccessOnAlreadyExists = false;
+};
+
+/// Connection actors
+NActors::IActor* MakeCreateConnectionActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvCreateConnectionRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters,
+ const NConfig::TCommonConfig& commonConfig,
+ TSigner::TPtr signer,
+ bool successOnAlreadyExists) {
+ auto queryFactoryMethod =
+ [objectStorageEndpoint = commonConfig.GetObjectStorageEndpoint(),
+ signer = std::move(signer)](
+ const TEvControlPlaneProxy::TEvCreateConnectionRequest::TPtr& request) -> TString {
+ return MakeCreateExternalDataSourceQuery(request->Get()->Request.content(),
+ objectStorageEndpoint,
+ signer);
+ };
+
+ auto errorMessageFactoryMethod = [](const TStatus& queryStatus) -> TString {
+ if (queryStatus.GetStatus() == NYdb::EStatus::ALREADY_EXISTS) {
+ return "External data source with such name already exists";
+ } else {
+ return "Couldn't create external data source in YDB";
+ }
+ };
+
+ return new TSchemaQueryYDBActor<TEvControlPlaneProxy::TEvCreateConnectionRequest,
+ TEvControlPlaneProxy::TEvCreateConnectionResponse>(
+ proxyActorId,
+ std::move(request),
+ requestTimeout,
+ counters.GetCommonCounters(RTC_CREATE_CONNECTION_IN_YDB),
+ queryFactoryMethod,
+ errorMessageFactoryMethod,
+ successOnAlreadyExists);
+}
+
+NActors::IActor* MakeModifyConnectionActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters,
+ const NConfig::TCommonConfig& commonConfig,
+ TSigner::TPtr signer) {
+ auto queryFactoryMethod =
+ [objectStorageEndpoint = commonConfig.GetObjectStorageEndpoint(),
+ signer = std::move(signer)](
+ const TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& request)
+ -> std::vector<TSchemaQueryTask> {
+ using namespace fmt::literals;
+
+ auto& oldConnectionContent = (*request->Get()->OldConnectionContent);
+ auto& newConnectionContent = request->Get()->Request.content();
+
+ auto deleteOldEntities = fmt::format(
+ R"(
+ {delete_external_data_tables};
+ {delete_external_data_source};
+ )",
+ "delete_external_data_tables"_a =
+ JoinMapRange("\n",
+ request->Get()->OldBindingContents.begin(),
+ request->Get()->OldBindingContents.end(),
+ [](const FederatedQuery::BindingContent& binding) {
+ return MakeDeleteExternalDataTableQuery(binding.name());
+ }),
+ "delete_external_data_source"_a =
+ MakeDeleteExternalDataSourceQuery(oldConnectionContent, signer));
+
+ auto createOldEntities = fmt::format(
+ R"(
+ {create_external_data_source};
+ {create_external_data_tables};
+ )",
+ "create_external_data_source"_a = MakeCreateExternalDataSourceQuery(
+ oldConnectionContent, objectStorageEndpoint, signer),
+ "create_external_data_tables"_a = JoinMapRange(
+ "\n",
+ request->Get()->OldBindingContents.begin(),
+ request->Get()->OldBindingContents.end(),
+ [&oldConnectionContent](const FederatedQuery::BindingContent& binding) {
+ return MakeCreateExternalDataTableQuery(binding,
+ oldConnectionContent.name());
+ }));
+
+ auto createNewEntities = fmt::format(
+ R"(
+ {create_external_data_source};
+ {create_external_data_tables};
+ )",
+ "create_external_data_source"_a = MakeCreateExternalDataSourceQuery(
+ newConnectionContent, objectStorageEndpoint, signer),
+ "create_external_data_tables"_a = JoinMapRange(
+ "\n",
+ request->Get()->OldBindingContents.begin(),
+ request->Get()->OldBindingContents.end(),
+ [&newConnectionContent](const FederatedQuery::BindingContent& binding) {
+ return MakeCreateExternalDataTableQuery(binding,
+ newConnectionContent.name());
+ }));
+
+ return {TSchemaQueryTask{.SQL = TString{deleteOldEntities},
+ .RollbackSQL = TString{createOldEntities}},
+ TSchemaQueryTask{.SQL = TString{createNewEntities}}};
+ };
+
+ auto errorMessageFactoryMethod = [](const TStatus& queryStatus) -> TString {
+ Y_UNUSED(queryStatus);
+ return "Couldn't modify external data source in YDB";
+ };
+
+ return new TSchemaQueryYDBActor<TEvControlPlaneProxy::TEvModifyConnectionRequest,
+ TEvControlPlaneProxy::TEvModifyConnectionResponse>(
+ proxyActorId,
+ std::move(request),
+ requestTimeout,
+ counters.GetCommonCounters(RTC_MODIFY_CONNECTION_IN_YDB),
+ queryFactoryMethod,
+ errorMessageFactoryMethod);
+}
+
+NActors::IActor* MakeDeleteConnectionActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvDeleteConnectionRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters,
+ TSigner::TPtr signer) {
+ auto queryFactoryMethod =
+ [signer = std::move(signer)](
+ const TEvControlPlaneProxy::TEvDeleteConnectionRequest::TPtr& request) -> TString {
+ return MakeDeleteExternalDataSourceQuery(*request->Get()->ConnectionContent,
+ signer);
+ };
+
+ auto errorMessageFactoryMethod = [](const TStatus& queryStatus) -> TString {
+ if (queryStatus.GetStatus() == NYdb::EStatus::ALREADY_EXISTS) {
+ return "External data source with such name already exists";
+ } else {
+ return "Couldn't delete external data source in YDB";
+ }
+ };
+
+ return new TSchemaQueryYDBActor<TEvControlPlaneProxy::TEvDeleteConnectionRequest,
+ TEvControlPlaneProxy::TEvDeleteConnectionResponse>(
+ proxyActorId,
+ std::move(request),
+ requestTimeout,
+ counters.GetCommonCounters(RTC_DELETE_CONNECTION_IN_YDB),
+ queryFactoryMethod,
+ errorMessageFactoryMethod);
+}
+
+/// Bindings actors
+NActors::IActor* MakeCreateBindingActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters,
+ bool successOnAlreadyExists) {
+ auto queryFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr& request) -> TString {
+ auto externalSourceName = *request->Get()->ConnectionName;
+ return MakeCreateExternalDataTableQuery(request->Get()->Request.content(),
+ externalSourceName);
+ };
+
+ auto errorMessageFactoryMethod = [](const TStatus& queryStatus) -> TString {
+ if (queryStatus.GetStatus() == NYdb::EStatus::ALREADY_EXISTS) {
+ return "External data table with such name already exists";
+ } else {
+ return "Couldn't create external data table in YDB";
+ }
+ };
+
+ return new TSchemaQueryYDBActor<TEvControlPlaneProxy::TEvCreateBindingRequest,
+ TEvControlPlaneProxy::TEvCreateBindingResponse>(
+ proxyActorId,
+ std::move(request),
+ requestTimeout,
+ counters.GetCommonCounters(RTC_CREATE_BINDING_IN_YDB),
+ queryFactoryMethod,
+ errorMessageFactoryMethod,
+ successOnAlreadyExists);
+}
+
+NActors::IActor* MakeModifyBindingActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters) {
+ auto queryFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& request) -> std::vector<TSchemaQueryTask> {
+ auto sourceName = *request->Get()->ConnectionName;
+ auto oldTableName = request->Get()->OldBindingContent->name();
+
+ auto deleteOldEntities = MakeDeleteExternalDataTableQuery(oldTableName);
+ auto createOldEntities =
+ MakeCreateExternalDataTableQuery(*request->Get()->OldBindingContent, sourceName);
+ auto createNewEntities =
+ MakeCreateExternalDataTableQuery(request->Get()->Request.content(), sourceName);
+
+ return {TSchemaQueryTask{.SQL = deleteOldEntities, .RollbackSQL = createOldEntities},
+ TSchemaQueryTask{.SQL = createNewEntities}};
+ };
+
+ auto errorMessageFactoryMethod = [](const TStatus& queryStatus) -> TString {
+ Y_UNUSED(queryStatus);
+ return "Couldn't modify external data table in YDB";
+ };
+
+ return new TSchemaQueryYDBActor<TEvControlPlaneProxy::TEvModifyBindingRequest,
+ TEvControlPlaneProxy::TEvModifyBindingResponse>(
+ proxyActorId,
+ std::move(request),
+ requestTimeout,
+ counters.GetCommonCounters(RTC_MODIFY_BINDING_IN_YDB),
+ queryFactoryMethod,
+ errorMessageFactoryMethod);
+}
+
+NActors::IActor* MakeDeleteBindingActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvDeleteBindingRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters) {
+ auto queryFactoryMethod =
+ [](const TEvControlPlaneProxy::TEvDeleteBindingRequest::TPtr& request) -> TString {
+ return MakeDeleteExternalDataTableQuery(*request->Get()->OldBindingName);
+ };
+
+ auto errorMessageFactoryMethod = [](const TStatus& queryStatus) -> TString {
+ if (queryStatus.GetStatus() == NYdb::EStatus::ALREADY_EXISTS) {
+ return "External data source with such name already exists";
+ } else {
+ return "Couldn't delete external data source in YDB";
+ }
+ };
+
+ return new TSchemaQueryYDBActor<TEvControlPlaneProxy::TEvDeleteBindingRequest,
+ TEvControlPlaneProxy::TEvDeleteBindingResponse>(
+ proxyActorId,
+ std::move(request),
+ requestTimeout,
+ counters.GetCommonCounters(RTC_DELETE_BINDING_IN_YDB),
+ queryFactoryMethod,
+ errorMessageFactoryMethod);
+}
+
+} // namespace NPrivate
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.h b/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.h
new file mode 100644
index 0000000000..36b7a06370
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.h
@@ -0,0 +1,61 @@
+#pragma once
+
+#include "counters.h"
+
+#include <library/cpp/actors/core/actor.h>
+#include <ydb/core/fq/libs/config/protos/common.pb.h>
+#include <ydb/core/fq/libs/control_plane_proxy/events/events.h>
+#include <ydb/core/fq/libs/signer/signer.h>
+
+namespace NFq {
+namespace NPrivate {
+
+using namespace NActors;
+
+/// Connection manipulation actors
+NActors::IActor* MakeCreateConnectionActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvCreateConnectionRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters,
+ const NConfig::TCommonConfig& commonConfig,
+ TSigner::TPtr signer,
+ bool successOnAlreadyExists = false);
+
+NActors::IActor* MakeModifyConnectionActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters,
+ const NConfig::TCommonConfig& commonConfig,
+ TSigner::TPtr signer);
+
+NActors::IActor* MakeDeleteConnectionActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvDeleteConnectionRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters,
+ TSigner::TPtr signer);
+
+/// Binding manipulation actors
+NActors::IActor* MakeCreateBindingActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters,
+ bool successOnAlreadyExists = false);
+
+NActors::IActor* MakeModifyBindingActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters);
+
+NActors::IActor* MakeDeleteBindingActor(
+ const TActorId& proxyActorId,
+ TEvControlPlaneProxy::TEvDeleteBindingRequest::TPtr request,
+ TDuration requestTimeout,
+ TCounters& counters);
+
+} // namespace NPrivate
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/config.cpp b/ydb/core/fq/libs/control_plane_proxy/config.cpp
index 37ad16e836..20cb82e9df 100644
--- a/ydb/core/fq/libs/control_plane_proxy/config.cpp
+++ b/ydb/core/fq/libs/control_plane_proxy/config.cpp
@@ -4,13 +4,6 @@ namespace NFq {
namespace {
-TDuration GetDuration(const TString& value, const TDuration& defaultValue)
-{
- TDuration result = defaultValue;
- TDuration::TryParse(value, result);
- return result;
-}
-
NConfig::TControlPlaneProxyConfig FillDefaultParameters(NConfig::TControlPlaneProxyConfig config)
{
if (!config.GetRequestTimeout()) {
@@ -32,9 +25,12 @@ NConfig::TControlPlaneProxyConfig FillDefaultParameters(NConfig::TControlPlanePr
TControlPlaneProxyConfig::TControlPlaneProxyConfig(
const NConfig::TControlPlaneProxyConfig& config,
+ const NConfig::TControlPlaneStorageConfig& storageConfig,
const NConfig::TComputeConfig& computeConfig,
- const NConfig::TCommonConfig& commonConfig)
+ const NConfig::TCommonConfig& commonConfig,
+ const NYql::TS3GatewayConfig& s3Config)
: Proto(FillDefaultParameters(config))
+ , StorageConfig(TControlPlaneStorageConfig(storageConfig, s3Config, commonConfig))
, ComputeConfig(computeConfig)
, CommonConfig(commonConfig)
, RequestTimeout(GetDuration(Proto.GetRequestTimeout(), TDuration::Seconds(30)))
diff --git a/ydb/core/fq/libs/control_plane_proxy/config.h b/ydb/core/fq/libs/control_plane_proxy/config.h
index ae98bb989b..9a1932e1d2 100644
--- a/ydb/core/fq/libs/control_plane_proxy/config.h
+++ b/ydb/core/fq/libs/control_plane_proxy/config.h
@@ -4,13 +4,16 @@
#include <ydb/core/fq/libs/config/protos/common.pb.h>
#include <ydb/core/fq/libs/config/protos/compute.pb.h>
#include <ydb/core/fq/libs/config/protos/control_plane_proxy.pb.h>
+#include <ydb/core/fq/libs/control_plane_storage/config.h>
#include <util/datetime/base.h>
+#include <util/generic/set.h>
namespace NFq {
struct TControlPlaneProxyConfig {
NConfig::TControlPlaneProxyConfig Proto;
+ TControlPlaneStorageConfig StorageConfig;
TComputeConfig ComputeConfig;
NConfig::TCommonConfig CommonConfig;
TDuration RequestTimeout;
@@ -19,8 +22,10 @@ struct TControlPlaneProxyConfig {
TControlPlaneProxyConfig(
const NConfig::TControlPlaneProxyConfig& config,
+ const NConfig::TControlPlaneStorageConfig& storageConfig,
const NConfig::TComputeConfig& computeConfig,
- const NConfig::TCommonConfig& commonConfig);
+ const NConfig::TCommonConfig& commonConfig,
+ const NYql::TS3GatewayConfig& s3Config);
};
} // NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.cpp b/ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.cpp
index 6988efd69b..c2db1d6771 100644
--- a/ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.cpp
+++ b/ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.cpp
@@ -4,30 +4,29 @@
#include "utils.h"
#include <ydb/core/fq/libs/actors/logging/log.h>
-#include <ydb/core/fq/libs/common/cache.h>
#include <ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.h>
#include <ydb/core/fq/libs/compute/ydb/events/events.h>
#include <ydb/core/fq/libs/control_plane_config/control_plane_config.h>
#include <ydb/core/fq/libs/control_plane_storage/control_plane_storage.h>
+#include <ydb/core/fq/libs/control_plane_storage/request_validators.h>
#include <ydb/core/fq/libs/control_plane_storage/events/events.h>
-#include <ydb/core/fq/libs/control_plane_storage/util.h>
#include <ydb/core/fq/libs/quota_manager/quota_manager.h>
#include <ydb/core/fq/libs/rate_limiter/events/control_plane_events.h>
#include <ydb/core/fq/libs/result_formatter/result_formatter.h>
#include <ydb/core/fq/libs/test_connection/events/events.h>
#include <ydb/core/fq/libs/test_connection/test_connection.h>
-#include <ydb/core/fq/libs/ydb/util.h>
#include <ydb/core/fq/libs/ydb/ydb.h>
#include <ydb/core/fq/libs/config/yq_issue.h>
+#include <ydb/core/fq/libs/control_plane_proxy/actors/control_plane_storage_requester_actor.h>
+#include <ydb/core/fq/libs/control_plane_proxy/actors/request_actor.h>
+#include <ydb/core/fq/libs/control_plane_proxy/actors/utils.h>
+#include <ydb/core/fq/libs/control_plane_proxy/actors/ydb_schema_query_actor.h>
#include <ydb/core/fq/libs/control_plane_proxy/events/events.h>
-#include <ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.h>
+#include <ydb/public/lib/fq/scope.h>
-#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/core/actor.h>
-
-#include <ydb/library/ydb_issue/issue_helpers.h>
-#include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h>
+#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <ydb/library/ycloud/api/access_service.h>
#include <ydb/library/ycloud/impl/access_service.h>
@@ -47,6 +46,7 @@
#include <ydb/library/folder_service/folder_service.h>
#include <ydb/library/folder_service/events.h>
+#include <memory>
#include <contrib/libs/fmt/include/fmt/format.h>
@@ -56,142 +56,15 @@ namespace NFq {
namespace {
using namespace NActors;
-using namespace NFq::NConfig;
+using namespace ::NFq::NConfig;
using namespace NKikimr;
using namespace NThreading;
using namespace NYdb;
using namespace NYdb::NTable;
+using namespace ::NFq::NPrivate;
LWTRACE_USING(YQ_CONTROL_PLANE_PROXY_PROVIDER);
-struct TRequestScopeCounters: public virtual TThrRefBase {
- const TString Name;
-
- ::NMonitoring::TDynamicCounterPtr Counters;
- ::NMonitoring::TDynamicCounters::TCounterPtr InFly;
- ::NMonitoring::TDynamicCounters::TCounterPtr Ok;
- ::NMonitoring::TDynamicCounters::TCounterPtr Error;
- ::NMonitoring::TDynamicCounters::TCounterPtr Timeout;
- ::NMonitoring::TDynamicCounters::TCounterPtr Retry;
-
- explicit TRequestScopeCounters(const TString& name)
- : Name(name)
- { }
-
- void Register(const ::NMonitoring::TDynamicCounterPtr& counters) {
- Counters = counters;
- ::NMonitoring::TDynamicCounterPtr subgroup = counters->GetSubgroup("request_scope", Name);
- InFly = subgroup->GetCounter("InFly", false);
- Ok = subgroup->GetCounter("Ok", true);
- Error = subgroup->GetCounter("Error", true);
- Timeout = subgroup->GetCounter("Timeout", true);
- Timeout = subgroup->GetCounter("Retry", true);
- }
-
- virtual ~TRequestScopeCounters() override {
- Counters->RemoveSubgroup("request_scope", Name);
- }
-
-private:
- static ::NMonitoring::IHistogramCollectorPtr GetLatencyHistogramBuckets() {
- return ::NMonitoring::ExplicitHistogram({0, 1, 2, 5, 10, 20, 50, 100, 500, 1000, 2000, 5000, 10000, 30000, 50000, 500000});
- }
-};
-
-struct TRequestCommonCounters: public virtual TThrRefBase {
- const TString Name;
-
- ::NMonitoring::TDynamicCounterPtr Counters;
- ::NMonitoring::TDynamicCounters::TCounterPtr InFly;
- ::NMonitoring::TDynamicCounters::TCounterPtr Ok;
- ::NMonitoring::TDynamicCounters::TCounterPtr Error;
- ::NMonitoring::TDynamicCounters::TCounterPtr Timeout;
- ::NMonitoring::TDynamicCounters::TCounterPtr Retry;
- ::NMonitoring::THistogramPtr LatencyMs;
-
- explicit TRequestCommonCounters(const TString& name)
- : Name(name)
- { }
-
- void Register(const ::NMonitoring::TDynamicCounterPtr& counters) {
- Counters = counters;
- ::NMonitoring::TDynamicCounterPtr subgroup = counters->GetSubgroup("request_common", Name);
- InFly = subgroup->GetCounter("InFly", false);
- Ok = subgroup->GetCounter("Ok", true);
- Error = subgroup->GetCounter("Error", true);
- Timeout = subgroup->GetCounter("Timeout", true);
- Retry = subgroup->GetCounter("Retry", true);
- LatencyMs = subgroup->GetHistogram("LatencyMs", GetLatencyHistogramBuckets());
- }
-
- virtual ~TRequestCommonCounters() override {
- Counters->RemoveSubgroup("request_common", Name);
- }
-
-private:
- static ::NMonitoring::IHistogramCollectorPtr GetLatencyHistogramBuckets() {
- return ::NMonitoring::ExplicitHistogram({0, 1, 2, 5, 10, 20, 50, 100, 500, 1000, 2000, 5000, 10000, 30000, 50000, 500000});
- }
-};
-
-using TRequestScopeCountersPtr = TIntrusivePtr<TRequestScopeCounters>;
-using TRequestCommonCountersPtr = TIntrusivePtr<TRequestCommonCounters>;
-
-struct TRequestCounters {
- TRequestScopeCountersPtr Scope;
- TRequestCommonCountersPtr Common;
-
- void IncInFly() {
- Scope->InFly->Inc();
- Common->InFly->Inc();
- }
-
- void DecInFly() {
- Scope->InFly->Dec();
- Common->InFly->Dec();
- }
-
- void IncOk() {
- Scope->Ok->Inc();
- Common->Ok->Inc();
- }
-
- void DecOk() {
- Scope->Ok->Dec();
- Common->Ok->Dec();
- }
-
- void IncError() {
- Scope->Error->Inc();
- Common->Error->Inc();
- }
-
- void DecError() {
- Scope->Error->Dec();
- Common->Error->Dec();
- }
-
- void IncTimeout() {
- Scope->Timeout->Inc();
- Common->Timeout->Inc();
- }
-
- void DecTimeout() {
- Scope->Timeout->Dec();
- Common->Timeout->Dec();
- }
-
- void IncRetry() {
- Scope->Retry->Inc();
- Common->Retry->Inc();
- }
-
- void DecRetry() {
- Scope->Retry->Dec();
- Common->Retry->Dec();
- }
-};
-
template<class TEventRequest, class TResponseProxy>
class TGetQuotaActor : public NActors::TActorBootstrapped<TGetQuotaActor<TEventRequest, TResponseProxy>> {
using TBase = NActors::TActorBootstrapped<TGetQuotaActor<TEventRequest, TResponseProxy>>;
@@ -346,7 +219,6 @@ public:
PassAway();
}
-
private:
static TString GetSubjectType(const yandex::cloud::priv::servicecontrol::v1::Subject& subject) {
switch (subject.type_case()) {
@@ -370,631 +242,6 @@ private:
}
};
-TString EscapeString(const TString& value, char enclosingChar) {
- auto escapedValue = value;
- SubstGlobal(
- escapedValue, TString{enclosingChar}, TStringBuilder{} << '\\' << enclosingChar);
- return escapedValue;
-}
-
-TString EncloseAndEscapeString(const TString& value, char enclosingChar) {
- return TStringBuilder{} << enclosingChar << EscapeString(value, enclosingChar) << enclosingChar;
-}
-
-class TCreateConnectionInYDBActor :
- public NActors::TActorBootstrapped<TCreateConnectionInYDBActor> {
- struct TEvPrivate {
- enum EEv {
- EvCreateSessionResponse = EventSpaceBegin(NActors::TEvents::ES_PRIVATE),
- EvCreateConnectionExecutionResponse,
- EvEnd
- };
-
- static_assert(
- EvEnd < EventSpaceEnd(NActors::TEvents::ES_PRIVATE),
- "expect EvEnd < EventSpaceEnd(TEvents::ES_PRIVATE)");
-
- struct TEvCreateSessionResponse :
- NActors::TEventLocal<TEvCreateSessionResponse, EvCreateSessionResponse> {
- TAsyncCreateSessionResult Result;
-
- TEvCreateSessionResponse(TAsyncCreateSessionResult result)
- : Result(std::move(result)) { }
- };
-
- struct TEvCreateConnectionExecutionResponse :
- NActors::TEventLocal<TEvCreateConnectionExecutionResponse, EvCreateConnectionExecutionResponse> {
- TAsyncStatus Result;
-
- TEvCreateConnectionExecutionResponse(TAsyncStatus result)
- : Result(std::move(result)) { }
- };
- };
-
- using TBase = NActors::TActorBootstrapped<TCreateConnectionInYDBActor>;
- using TBase::Become;
- using TBase::PassAway;
- using TBase::Register;
- using TBase::SelfId;
- using TBase::Send;
- using IRetryPolicy =
- IRetryPolicy<NCloud::TEvAccessService::TEvAuthenticateResponse::TPtr&>;
- using TTableClientPtr = std::unique_ptr<NYdb::NTable::TTableClient>;
-
- using TEventRequest = TEvControlPlaneProxy::TEvCreateConnectionRequest::TPtr;
- using TResponce = TEvControlPlaneProxy::TEvCreateConnectionResponse;
-
- TActorId Sender;
- TRequestCommonCountersPtr Counters;
- TEventRequest Event;
- ui32 Cookie;
- TDuration RequestTimeout;
- TInstant StartTime;
- TString Scope;
- TTableClientPtr TableClient;
- TString ObjectStorageEndpoint;
-
-public:
- TCreateConnectionInYDBActor(
- const TRequestCommonCountersPtr& counters,
- const NFq::TComputeConfig& computeConfig,
- const TYqSharedResources::TPtr& yqSharedResources,
- const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
- const TString& objectStorageEndpoint,
- TActorId sender,
- TEventRequest event,
- ui32 cookie,
- const TString& scope,
- TDuration requestTimeout)
- : Sender(sender)
- , Counters(counters)
- , Event(event)
- , Cookie(cookie)
- , RequestTimeout(requestTimeout)
- , StartTime(TInstant::Now())
- , Scope(scope)
- , TableClient(CreateNewTableClient(
- computeConfig, yqSharedResources, credentialsProviderFactory))
- , ObjectStorageEndpoint(objectStorageEndpoint) { }
-
- static constexpr char ActorName[] = "YQ_CONTROL_PLANE_PROXY_CREATE_CONNECTION_IN_YDB";
-
- void Bootstrap() {
- CPP_LOG_T("Create connection in YDB. Actor id: " << SelfId());
-
- if (auto issues = ValidateRequest(Event->Get()->Request); !issues.Empty()) {
- NYql::TIssue issue = MakeErrorIssue(
- TIssuesIds::INTERNAL_ERROR, "CreateConnectionRequest is not valid");
- for (auto& subIssue : issues) {
- issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
- }
- SendErrorMessageToSender(std::move(issue));
- return;
- }
-
- Become(
- &TCreateConnectionInYDBActor::StateFunc,
- RequestTimeout,
- new NActors::TEvents::TEvWakeup());
- Counters->InFly->Inc();
- InitiateConnectionCreation();
- }
-
- NYql::TIssues ValidateRequest(const FederatedQuery::CreateConnectionRequest& request) {
- NYql::TIssues issues;
- if (request.content().name().Contains('/')) {
- issues.AddIssue(MakeErrorIssue(
- TIssuesIds::INTERNAL_ERROR, "'/' is not allowed in connection name"));
- }
- return issues;
- }
-
- void InitiateConnectionCreation() {
- auto request = Event->Get()->Request;
- TableClient->CreateSession().Subscribe(
- [actorSystem = NActors::TActivationContext::ActorSystem(),
- self = SelfId()](const TAsyncCreateSessionResult& future) {
- actorSystem->Send(
- self, new TEvPrivate::TEvCreateSessionResponse(std::move(future)));
- });
- }
-
- void Handle(TEvPrivate::TEvCreateSessionResponse::TPtr& event) {
- using namespace fmt::literals;
- auto createSessionResult = event->Get()->Result.GetValueSync();
- if (!createSessionResult.IsSuccess()) {
- TString errorMessage = TStringBuilder{}
- << "Couldn't create YDB session. Status"
- << createSessionResult.GetStatus();
- CPP_LOG_E(errorMessage);
-
- NYql::TIssue issue =
- MakeErrorIssue(TIssuesIds::INTERNAL_ERROR, "Couldn't create YDB session");
- for (auto& subIssue : createSessionResult.GetIssues()) {
- issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
- }
- SendErrorMessageToSender(std::move(issue));
- return;
- }
-
- auto request = Event->Get()->Request;
- auto session = createSessionResult.GetSession();
- auto bucketName = request.content().setting().object_storage().bucket();
- SubstGlobal(bucketName, TString{'"'}, "\\\"");
- session
- .ExecuteSchemeQuery(fmt::format(
- R"(
- CREATE EXTERNAL DATA SOURCE {external_source} WITH (
- SOURCE_TYPE="ObjectStorage",
- LOCATION="{location}",
- AUTH_METHOD="NONE"
- );
- )",
- "external_source"_a = EncloseAndEscapeString(request.content().name(), '`'),
- "location"_a = ObjectStorageEndpoint + "/" + bucketName + "/"))
- .Subscribe([actorSystem = NActors::TActivationContext::ActorSystem(),
- self = SelfId()](const TAsyncStatus& future) {
- actorSystem->Send(
- self,
- new TEvPrivate::TEvCreateConnectionExecutionResponse(std::move(future)));
- });
- }
-
- void Handle(TEvPrivate::TEvCreateConnectionExecutionResponse::TPtr& event) {
- Counters->InFly->Dec();
- Counters->LatencyMs->Collect((TInstant::Now() - StartTime).MilliSeconds());
-
- const auto& status = event->Get()->Result.GetValueSync();
- if (!status.IsSuccess()) {
- TString errorMessage;
- if (status.GetStatus() == NYdb::EStatus::ALREADY_EXISTS) {
- errorMessage = "External data source with such name already exists";
- } else {
- errorMessage = TStringBuilder{}
- << "Couldn't create external data source in YDB. Status"
- << status.GetStatus();
- }
-
- CPP_LOG_E(errorMessage);
-
- NYql::TIssue issue = MakeErrorIssue(
- TIssuesIds::INTERNAL_ERROR, "Couldn't create external data source in YDB");
- for (auto& subIssue : status.GetIssues()) {
- issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
- }
- SendErrorMessageToSender(std::move(issue));
- return;
- }
-
- CPP_LOG_T("External data source in YDB was successfully created");
- Counters->Ok->Inc();
- Event->Get()->ComputeYDBOperationWasPerformed = true;
-
- TActivationContext::Send(Event->Forward(ControlPlaneProxyActorId()));
- PassAway();
- }
-
- void PassAway() override { TActor::PassAway(); }
-
- STRICT_STFUNC(StateFunc, cFunc(NActors::TEvents::TSystem::Wakeup, HandleTimeout);
- hFunc(TEvPrivate::TEvCreateSessionResponse, Handle);
- hFunc(TEvPrivate::TEvCreateConnectionExecutionResponse, Handle);)
-
- void HandleTimeout() {
- CPP_LOG_D(
- "Timeout occurred while creating external data source in YDB. Actor id: "
- << SelfId());
- Counters->Timeout->Inc();
- SendErrorMessageToSender(MakeErrorIssue(
- TIssuesIds::TIMEOUT,
- "Timeout occurred while creating external data source in YDB. Try repeating the request later"));
- }
-
- void SendErrorMessageToSender(NYql::TIssue issue) {
- Counters->Error->Inc();
- NYql::TIssues issues;
- issues.AddIssue(issue);
- Send(
- Sender,
- new TEvControlPlaneProxy::TEvCreateConnectionResponse(issues, {}),
- 0,
- Cookie); // Change to template
- PassAway();
- }
-
-private:
- TTableClientPtr CreateNewTableClient(
- const NFq::TComputeConfig& computeConfig,
- const TYqSharedResources::TPtr& yqSharedResources,
- const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory) {
-
- NFq::NConfig::TYdbStorageConfig computeConnection = computeConfig.GetConnection(Scope);
- computeConnection.set_endpoint(Event->Get()->ComputeDatabase->connection().endpoint());
- computeConnection.set_database(Event->Get()->ComputeDatabase->connection().database());
- computeConnection.set_usessl(Event->Get()->ComputeDatabase->connection().usessl());
-
- auto tableSettings = GetClientSettings<NYdb::NTable::TClientSettings>(
- computeConnection, credentialsProviderFactory);
- return std::make_unique<NYdb::NTable::TTableClient>(
- yqSharedResources->UserSpaceYdbDriver, tableSettings);
- }
-};
-
-class TCreateBindingInYDBActor :
- public NActors::TActorBootstrapped<TCreateBindingInYDBActor> {
- struct TEvPrivate {
- enum EEv {
- EvCreateSessionResponse = EventSpaceBegin(NActors::TEvents::ES_PRIVATE),
- EvCreateBindingExecutionResponse,
- EvEnd
- };
-
- static_assert(
- EvEnd < EventSpaceEnd(NActors::TEvents::ES_PRIVATE),
- "expect EvEnd < EventSpaceEnd(TEvents::ES_PRIVATE)");
-
- struct TEvCreateSessionResponse :
- NActors::TEventLocal<TEvCreateSessionResponse, EvCreateSessionResponse> {
- TAsyncCreateSessionResult Result;
-
- TEvCreateSessionResponse(TAsyncCreateSessionResult result)
- : Result(std::move(result)) { }
- };
-
- struct TEvCreateBindingExecutionResponse :
- NActors::TEventLocal<TEvCreateBindingExecutionResponse, EvCreateBindingExecutionResponse> {
- TAsyncStatus Result;
-
- TEvCreateBindingExecutionResponse(TAsyncStatus result)
- : Result(std::move(result)) { }
- };
- };
-
- using TBase = NActors::TActorBootstrapped<TCreateBindingInYDBActor>;
- using TBase::Become;
- using TBase::PassAway;
- using TBase::Register;
- using TBase::SelfId;
- using TBase::Send;
- using IRetryPolicy =
- IRetryPolicy<NCloud::TEvAccessService::TEvAuthenticateResponse::TPtr&>;
- using TTableClientPtr = std::unique_ptr<NYdb::NTable::TTableClient>;
-
- using TEventRequest = TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr;
- using TResponce = TEvControlPlaneProxy::TEvCreateBindingResponse;
- using TResponseProxy = TEvControlPlaneProxy::TEvCreateBindingResponse;
-
- TActorId Sender;
- TRequestCommonCountersPtr Counters;
- TEventRequest Event;
- ui32 Cookie;
- TInstant StartTime;
- TPermissions Permissions;
- TDuration RequestTimeout;
- TString Scope;
- TTableClientPtr TableClient;
- TString ConnectionName;
-
-public:
- TCreateBindingInYDBActor(
- const TRequestCommonCountersPtr& counters,
- const NFq::TComputeConfig& computeConfig,
- const TYqSharedResources::TPtr& yqSharedResources,
- const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
- TActorId sender,
- TEventRequest event,
- ui32 cookie,
- TPermissions permissions,
- const TString& scope,
- TDuration requestTimeout)
- : Sender(sender)
- , Counters(counters)
- , Event(event)
- , Cookie(cookie)
- , StartTime(TInstant::Now())
- , Permissions(std::move(permissions))
- , RequestTimeout(requestTimeout)
- , Scope(scope)
- , TableClient(CreateNewTableClient(
- computeConfig, yqSharedResources, credentialsProviderFactory)) { }
-
- static constexpr char ActorName[] = "YQ_CONTROL_PLANE_PROXY_CREATE_BINDING_IN_YDB";
-
- void Bootstrap() {
- CPP_LOG_T("Create external table in YDB. Actor id: " << SelfId());
-
- if (auto issues = ValidateRequest(Event->Get()->Request); !issues.Empty()) {
- NYql::TIssue issue = MakeErrorIssue(
- TIssuesIds::INTERNAL_ERROR, "CreateBindingRequest is not valid");
- for (auto& subIssue : issues) {
- issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
- }
- SendErrorMessageToSender(std::move(issue));
- return;
- }
-
- Become(
- &TCreateBindingInYDBActor::StateFunc,
- RequestTimeout,
- new NActors::TEvents::TEvWakeup());
- Counters->InFly->Inc();
- ResolveConnectionId();
- }
-
- void ResolveConnectionId() {
- FederatedQuery::DescribeConnectionRequest request;
- auto connectionId = Event->Get()->Request.content().connection_id();
- request.set_connection_id(connectionId);
- CPP_LOG_T(
- "Create external table in YDB. Resolving connection id. Actor id: "
- << SelfId() << " connection_id: " << connectionId);
- auto event = new TEvControlPlaneStorage::TEvDescribeConnectionRequest(
- Scope,
- request,
- Event->Get()->User,
- Event->Get()->Token,
- Event->Get()->CloudId,
- Permissions,
- Event->Get()->Quotas,
- Event->Get()->TenantInfo,
- {});
- Send(ControlPlaneStorageServiceActorId(), event);
- }
-
- void Handle(TEvControlPlaneStorage::TEvDescribeConnectionResponse::TPtr& event) {
- const auto& issues = event->Get()->Issues;
- if (!issues.Empty()) {
- CPP_LOG_E(
- "Couldn't resolve connection id. Actor id: " << SelfId() << " Status: "
- << issues.ToOneLineString());
-
- NYql::TIssue issue =
- MakeErrorIssue(TIssuesIds::INTERNAL_ERROR, "Couldn't resolve connection id");
- for (auto& subIssue : issues) {
- issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
- }
- SendErrorMessageToSender(std::move(issue));
- return;
- }
-
- ConnectionName = event->Get()->Result.connection().content().name();
- CPP_LOG_T(
- "Create external table in YDB. Resolved connection name. Actor id: "
- << SelfId() << " Connection name: " << ConnectionName);
- InitiateConnectionCreation();
- }
-
- void InitiateConnectionCreation() {
- auto request = Event->Get()->Request;
- TableClient->CreateSession().Subscribe(
- [actorSystem = NActors::TActivationContext::ActorSystem(),
- self = SelfId()](const TAsyncCreateSessionResult& future) {
- actorSystem->Send(
- self, new TEvPrivate::TEvCreateSessionResponse(std::move(future)));
- });
- }
-
- void Handle(TEvPrivate::TEvCreateSessionResponse::TPtr& event) {
- auto createSessionResult = event->Get()->Result.GetValueSync();
- if (!createSessionResult.IsSuccess()) {
- CPP_LOG_E(
- "Couldn't create YDB session. Actor id: "
- << SelfId() << " Status: " << createSessionResult.GetStatus());
-
- NYql::TIssue issue =
- MakeErrorIssue(TIssuesIds::INTERNAL_ERROR, "Couldn't create YDB session");
- for (auto& subIssue : createSessionResult.GetIssues()) {
- issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
- }
- SendErrorMessageToSender(std::move(issue));
- return;
- }
-
- auto session = createSessionResult.GetSession();
- auto query = CreateSchemaQuery(Event->Get()->Request);
- CPP_LOG_T(
- "Create external table in YDB. Actor id: " << SelfId() << " Query: " << query);
- session.ExecuteSchemeQuery(query).Subscribe(
- [actorSystem = NActors::TActivationContext::ActorSystem(),
- self = SelfId()](const TAsyncStatus& future) {
- actorSystem->Send(
- self, new TEvPrivate::TEvCreateBindingExecutionResponse(future));
- });
- }
-
- NYql::TIssues ValidateRequest(const FederatedQuery::CreateBindingRequest& request) {
- NYql::TIssues issues;
- if (request.content().setting().binding_case() !=
- FederatedQuery::BindingSetting::BindingCase::kObjectStorage) {
- issues.AddIssue(
- MakeErrorIssue(TIssuesIds::INTERNAL_ERROR, "Unsupported binding type"));
- }
- if (request.content().setting().object_storage().subset().size() != 1) {
- issues.AddIssue(MakeErrorIssue(
- TIssuesIds::INTERNAL_ERROR,
- "Cannot create external table due to wrong amount of subsets in request"));
- }
- if (request.content().name().Contains('/')) {
- issues.AddIssue(MakeErrorIssue(
- TIssuesIds::INTERNAL_ERROR, "'/' is not allowed in binding name"));
- }
- return issues;
- }
-
- TString CreateSchemaQuery(const FederatedQuery::CreateBindingRequest& request) {
- using namespace fmt::literals;
-
- auto bindingName = request.content().name();
- auto objectStorageParams = request.content().setting().object_storage();
- const auto& subset = objectStorageParams.subset(0);
-
- // Schema
- NYql::TExprContext context;
- auto columnsTransformFunction = [&](const Ydb::Column& column) -> TString {
- NYdb::TTypeParser typeParser(column.type());
- auto node = MakeType(typeParser, context);
- auto typeName = NYql::FormatType(node);
- return fmt::format(
- " {columnName} {columnType}",
- "columnName"_a = EncloseAndEscapeString(column.name(), '`'),
- "columnType"_a = typeName
- );
- };
- auto columnsBegin =
- MakeMappedIterator(subset.schema().column().begin(), columnsTransformFunction);
- auto columnsEnd =
- MakeMappedIterator(subset.schema().column().end(), columnsTransformFunction);
-
- // WithOptions
- auto withOptions = std::unordered_map<TString, TString>{};
- withOptions.insert(
- {"DATA_SOURCE", TStringBuilder{} << '"' << ConnectionName << '"'});
- withOptions.insert({"LOCATION", EncloseAndEscapeString(subset.path_pattern(), '"')});
- if (!subset.format().Empty()) {
- withOptions.insert({"FORMAT", EncloseAndEscapeString(subset.format(), '"')});
- }
- if (!subset.compression().Empty()) {
- withOptions.insert(
- {"COMPRESSION", EncloseAndEscapeString(subset.compression(), '"')});
- }
- for (auto& kv : subset.format_setting()) {
- withOptions.insert(
- {EncloseAndEscapeString(kv.first, '`'),
- EncloseAndEscapeString(kv.second, '"')});
- };
-
- if (!subset.partitioned_by().empty()) {
- auto stringEscapeMapper = [](const TString& value) {
- return EscapeString(value, '"');
- };
-
- auto partitionBy =
- TStringBuilder{}
- << '['
- << JoinRange(
- ", ",
- MakeMappedIterator(subset.partitioned_by().begin(), stringEscapeMapper),
- MakeMappedIterator(subset.partitioned_by().end(), stringEscapeMapper))
- << ']';
- withOptions.insert({"PARTITIONED_BY", partitionBy});
- }
-
- if (!subset.projection().empty()) {
- auto keyValueToStringMapper =
- [](const std::pair<TString, TString>& kv) -> TString {
- return fmt::format(
- " {propertyName}={propertyValue}",
- "propertyName"_a = EncloseAndEscapeString(kv.first, '"'),
- "propertyValue"_a = EncloseAndEscapeString(kv.second, '"'));
- };
-
- auto projection =
- TStringBuilder{}
- << "{\n"
- << JoinRange(
- ",\n",
- MakeMappedIterator(subset.projection().begin(), keyValueToStringMapper),
- MakeMappedIterator(subset.projection().end(), keyValueToStringMapper))
- << "\n}";
- withOptions.insert({"PROJECTION", projection});
- }
-
- auto concatEscapedKeyValueMapper =
- [](const std::pair<TString, TString>& kv) -> TString {
- return TStringBuilder{} << " " << kv.first << " = " << kv.second;
- };
-
- auto withOptionsBegin =
- MakeMappedIterator(withOptions.begin(), concatEscapedKeyValueMapper);
- auto withOptionsEnd =
- MakeMappedIterator(withOptions.end(), concatEscapedKeyValueMapper);
-
- return fmt::format(
- R"(
- CREATE EXTERNAL TABLE {externalTableName} (
- {columns}
- ) WITH (
- {withOptions}
- );)",
- "externalTableName"_a = EncloseAndEscapeString(bindingName, '`'),
- "columns"_a = JoinRange(",\n", columnsBegin, columnsEnd),
- "withOptions"_a = JoinRange(",\n", withOptionsBegin, withOptionsEnd));
- }
-
- void Handle(TEvPrivate::TEvCreateBindingExecutionResponse::TPtr& event) {
- Counters->InFly->Dec();
- Counters->LatencyMs->Collect((TInstant::Now() - StartTime).MilliSeconds());
-
- const auto& status = event->Get()->Result.GetValueSync();
- if (!status.IsSuccess()) {
- TString errorMessage;
- if (status.GetStatus() == NYdb::EStatus::ALREADY_EXISTS) {
- errorMessage = "External table with such name already exists";
- } else {
- errorMessage = TStringBuilder{}
- << "Couldn't create external table in YDB. Status: "
- << status.GetStatus();
- }
-
- CPP_LOG_E(errorMessage);
-
- NYql::TIssue issue = MakeErrorIssue(
- TIssuesIds::INTERNAL_ERROR, "Couldn't create external table in YDB");
- for (auto& subIssue : status.GetIssues()) {
- issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(subIssue));
- }
- SendErrorMessageToSender(std::move(issue));
- return;
- }
-
- Counters->Ok->Inc();
- Event->Get()->ComputeYDBOperationWasPerformed = true;
- CPP_LOG_T("External table in YDB was successfully created");
-
- TActivationContext::Send(Event->Forward(ControlPlaneProxyActorId()));
- PassAway();
- }
-
- STRICT_STFUNC(StateFunc, cFunc(NActors::TEvents::TSystem::Wakeup, HandleTimeout);
- hFunc(TEvControlPlaneStorage::TEvDescribeConnectionResponse, Handle);
- hFunc(TEvPrivate::TEvCreateSessionResponse, Handle);
- hFunc(TEvPrivate::TEvCreateBindingExecutionResponse, Handle);)
-
- void HandleTimeout() {
- CPP_LOG_D("Create external table in YDB timeout. Actor id: " << SelfId());
- Counters->Timeout->Inc();
- SendErrorMessageToSender(MakeErrorIssue(
- TIssuesIds::TIMEOUT,
- "Create external table in YDB timeout. Try repeating the request later"));
- }
-
- void SendErrorMessageToSender(NYql::TIssue issue) {
- Counters->Error->Inc();
- NYql::TIssues issues;
- issues.AddIssue(issue);
- Send(Sender, new TResponseProxy(issues, {}), 0,
- Cookie); // Change to template
- PassAway();
- }
-
-private:
- TTableClientPtr CreateNewTableClient(
- const NFq::TComputeConfig& computeConfig,
- const TYqSharedResources::TPtr& yqSharedResources,
- const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory) {
-
- NFq::NConfig::TYdbStorageConfig computeConnection = computeConfig.GetConnection(Scope);
- computeConnection.set_endpoint(Event->Get()->ComputeDatabase->connection().endpoint());
- computeConnection.set_database(Event->Get()->ComputeDatabase->connection().database());
- computeConnection.set_usessl(Event->Get()->ComputeDatabase->connection().usessl());
-
- auto tableSettings = GetClientSettings<NYdb::NTable::TClientSettings>(
- computeConnection, credentialsProviderFactory);
- return std::make_unique<NYdb::NTable::TTableClient>(
- yqSharedResources->UserSpaceYdbDriver, tableSettings);
- }
-};
-
template<class TEventRequest, class TResponseProxy>
class TResolveFolderActor : public NActors::TActorBootstrapped<TResolveFolderActor<TEventRequest, TResponseProxy>> {
using TBase = NActors::TActorBootstrapped<TResolveFolderActor<TEventRequest, TResponseProxy>>;
@@ -1021,14 +268,14 @@ class TResolveFolderActor : public NActors::TActorBootstrapped<TResolveFolderAct
public:
TResolveFolderActor(const TRequestCommonCountersPtr& counters,
TActorId sender, const ::NFq::TControlPlaneProxyConfig& config,
- const TString& folderId, const TString& token,
+ const TString& scope, const TString& token,
const std::function<void(const TDuration&, bool, bool)>& probe,
TEventRequest event,
ui32 cookie, bool quotaManagerEnabled)
: Config(config)
, Sender(sender)
, Counters(counters)
- , FolderId(folderId)
+ , FolderId(NYdb::NFq::TScope(scope).ParseFolder())
, Token(token)
, Probe(probe)
, Event(event)
@@ -1134,7 +381,6 @@ class TCreateComputeDatabaseActor : public NActors::TActorBootstrapped<TCreateCo
TActorId Sender;
TRequestCommonCountersPtr Counters;
TString CloudId;
- TString FolderId;
TString Scope;
TString Token;
std::function<void(const TDuration&, bool, bool)> Probe;
@@ -1144,29 +390,30 @@ class TCreateComputeDatabaseActor : public NActors::TActorBootstrapped<TCreateCo
public:
TCreateComputeDatabaseActor(const TRequestCommonCountersPtr& counters,
- TActorId sender, const ::NFq::TControlPlaneProxyConfig& config,
- const ::NFq::TComputeConfig& computeConfig, const TString& cloudId,
- const TString& folderId, const TString& scope,
- const std::function<void(const TDuration&, bool, bool)>& probe,
- TEventRequest event, ui32 cookie)
+ TActorId sender,
+ const ::NFq::TControlPlaneProxyConfig& config,
+ const ::NFq::TComputeConfig& computeConfig,
+ const TString& cloudId,
+ const TString& scope,
+ const std::function<void(const TDuration&, bool, bool)>& probe,
+ TEventRequest event,
+ ui32 cookie)
: Config(config)
, ComputeConfig(computeConfig)
, Sender(sender)
, Counters(counters)
, CloudId(cloudId)
- , FolderId(folderId)
, Scope(scope)
, Probe(probe)
, Event(event)
, Cookie(cookie)
- , StartTime(TInstant::Now())
- {}
+ , StartTime(TInstant::Now()) { }
static constexpr char ActorName[] = "YQ_CONTROL_PLANE_PROXY_CREATE_DATABASE";
void Bootstrap() {
- CPP_LOG_T("Create database bootstrap. CloudId: " << CloudId << " FolderId: " << FolderId << " Scope: " << Scope << " Actor id: " << SelfId());
- if (!ComputeConfig.YdbComputeControlPlaneEnabled()) {
+ CPP_LOG_T("Create database bootstrap. CloudId: " << CloudId << " Scope: " << Scope << " Actor id: " << SelfId());
+ if (!ComputeConfig.YdbComputeControlPlaneEnabled(Scope)) {
Event->Get()->ComputeDatabase = FederatedQuery::Internal::ComputeDatabaseInternal{};
TActivationContext::Send(Event->Forward(ControlPlaneProxyActorId()));
PassAway();
@@ -1174,7 +421,7 @@ public:
}
Become(&TCreateComputeDatabaseActor::StateFunc, Config.RequestTimeout, new NActors::TEvents::TEvWakeup());
Counters->InFly->Inc();
- Send(NFq::ComputeDatabaseControlPlaneServiceActorId(), CreateRequest().release(), 0, 0);
+ Send(::NFq::ComputeDatabaseControlPlaneServiceActorId(), CreateRequest().release(), 0, 0);
}
std::unique_ptr<TEvYdbCompute::TEvCreateDatabaseRequest> CreateRequest() {
@@ -1187,7 +434,7 @@ public:
)
void HandleTimeout() {
- CPP_LOG_D("Create database timeout. CloudId: " << CloudId << " FolderId: " << FolderId << " Scope: " << Scope << " Actor id: " << SelfId());
+ CPP_LOG_D("Create database timeout. CloudId: " << CloudId << " Scope: " << Scope << " Actor id: " << SelfId());
NYql::TIssues issues;
NYql::TIssue issue = MakeErrorIssue(TIssuesIds::TIMEOUT, "Create database: request timeout. Try repeating the request later");
issues.AddIssue(issue);
@@ -1218,401 +465,10 @@ public:
}
};
-template<class TRequestProto, class TRequest, class TResponse, class TResponseProxy>
-class TRequestActor : public NActors::TActorBootstrapped<TRequestActor<TRequestProto, TRequest, TResponse, TResponseProxy>> {
-protected:
- using TBase = NActors::TActorBootstrapped<TRequestActor<TRequestProto, TRequest, TResponse, TResponseProxy>>;
- using TBase::SelfId;
- using TBase::Send;
- using TBase::PassAway;
- using TBase::Become;
- using TBase::Schedule;
-
- ::NFq::TControlPlaneProxyConfig Config;
- TRequestProto RequestProto;
- TString Scope;
- TString FolderId;
- TString User;
- TString Token;
- TActorId Sender;
- ui32 Cookie;
- TActorId ServiceId;
- TRequestCounters Counters;
- TInstant StartTime;
- std::function<void(const TDuration&, bool /* isSuccess */, bool /* isTimeout */)> Probe;
- TPermissions Permissions;
- TString CloudId;
- TString SubjectType;
- const TMaybe<TQuotaMap> Quotas;
- TTenantInfo::TPtr TenantInfo;
- TMaybe<FederatedQuery::Internal::ComputeDatabaseInternal> ComputeDatabase;
- ui32 RetryCount = 0;
-
-public:
- static constexpr char ActorName[] = "YQ_CONTROL_PLANE_PROXY_REQUEST_ACTOR";
-
- explicit TRequestActor(const ::NFq::TControlPlaneProxyConfig& config,
- TActorId sender, ui32 cookie,
- const TString& scope, const TString& folderId, TRequestProto&& requestProto,
- TString&& user, TString&& token, const TActorId& serviceId,
- const TRequestCounters& counters,
- const std::function<void(const TDuration&, bool, bool)>& probe,
- TPermissions permissions,
- const TString& cloudId, const TString& subjectType, TMaybe<TQuotaMap>&& quotas = Nothing(),
- TMaybe<FederatedQuery::Internal::ComputeDatabaseInternal>&& computeDatabase = Nothing())
- : Config(config)
- , RequestProto(std::forward<TRequestProto>(requestProto))
- , Scope(scope)
- , FolderId(folderId)
- , User(std::move(user))
- , Token(std::move(token))
- , Sender(sender)
- , Cookie(cookie)
- , ServiceId(serviceId)
- , Counters(counters)
- , StartTime(TInstant::Now())
- , Probe(probe)
- , Permissions(permissions)
- , CloudId(cloudId)
- , SubjectType(subjectType)
- , Quotas(std::move(quotas))
- , ComputeDatabase(std::move(computeDatabase))
- {
- Counters.IncInFly();
- }
-
-public:
-
- void Bootstrap() {
- CPP_LOG_T("Request actor. Actor id: " << SelfId());
- Become(&TRequestActor::StateFunc, Config.RequestTimeout, new NActors::TEvents::TEvWakeup());
- Send(ControlPlaneConfigActorId(), new TEvControlPlaneConfig::TEvGetTenantInfoRequest());
- OnBootstrap();
- }
-
- virtual void OnBootstrap() {}
-
- STRICT_STFUNC(StateFunc,
- cFunc(NActors::TEvents::TSystem::Wakeup, HandleTimeout);
- hFunc(TResponse, Handle);
- cFunc(TEvControlPlaneConfig::EvGetTenantInfoRequest, HandleRetry);
- hFunc(TEvControlPlaneConfig::TEvGetTenantInfoResponse, Handle);
- )
-
- void HandleRetry() {
- Send(ControlPlaneConfigActorId(), new TEvControlPlaneConfig::TEvGetTenantInfoRequest());
- }
-
- void Handle(TEvControlPlaneConfig::TEvGetTenantInfoResponse::TPtr& ev) {
- TenantInfo = std::move(ev->Get()->TenantInfo);
- if (TenantInfo) {
- SendRequestIfCan();
- } else {
- RetryCount++;
- Schedule(Now() + Config.ConfigRetryPeriod * (1 << RetryCount), new TEvControlPlaneConfig::TEvGetTenantInfoRequest());
- }
- }
-
- void HandleTimeout() {
- CPP_LOG_D("Request timeout. " << RequestProto.DebugString());
- NYql::TIssues issues;
- NYql::TIssue issue = MakeErrorIssue(TIssuesIds::TIMEOUT, "Request timeout. Try repeating the request later");
- issues.AddIssue(issue);
- Counters.IncTimeout();
- ReplyWithError(issues, true);
- }
-
- void Handle(typename TResponse::TPtr& ev) {
- auto& response = *ev->Get();
- ProcessResponse(response);
- }
-
- template<typename T>
- void ProcessResponse(const T& response) {
- if (response.Issues) {
- ReplyWithError(response.Issues);
- } else {
- ReplyWithSuccess(response.Result);
- }
- }
-
- template<typename T> requires requires (T t) { t.AuditDetails; }
- void ProcessResponse(const T& response) {
- if (response.Issues) {
- ReplyWithError(response.Issues);
- } else {
- ReplyWithSuccess(response.Result, response.AuditDetails);
- }
- }
-
- void ReplyWithError(const NYql::TIssues& issues, bool isTimeout = false) {
- const TDuration delta = TInstant::Now() - StartTime;
- Counters.IncError();
- Probe(delta, false, isTimeout);
- Send(Sender, new TResponseProxy(issues, SubjectType), 0, Cookie);
- PassAway();
- }
-
- template <class... TArgs>
- void ReplyWithSuccess(TArgs&&... args) {
- const TDuration delta = TInstant::Now() - StartTime;
- Counters.IncOk();
- Probe(delta, true, false);
- Send(Sender, new TResponseProxy(std::forward<TArgs>(args)..., SubjectType), 0, Cookie);
- PassAway();
- }
-
- virtual bool CanSendRequest() const {
- return bool(TenantInfo);
- }
-
- void SendRequestIfCan() {
- if (CanSendRequest()) {
- Send(ServiceId, new TRequest(Scope, RequestProto, User, Token, CloudId, Permissions, Quotas, TenantInfo, ComputeDatabase.GetOrElse({})), 0, Cookie);
- }
- }
-
- virtual ~TRequestActor() {
- Counters.DecInFly();
- Counters.Common->LatencyMs->Collect((TInstant::Now() - StartTime).MilliSeconds());
- }
-};
-
-class TCreateQueryRequestActor : public TRequestActor<FederatedQuery::CreateQueryRequest,
- TEvControlPlaneStorage::TEvCreateQueryRequest,
- TEvControlPlaneStorage::TEvCreateQueryResponse,
- TEvControlPlaneProxy::TEvCreateQueryResponse>
-{
- bool QuoterResourceCreated = false;
-public:
- using TBaseRequestActor = TRequestActor<FederatedQuery::CreateQueryRequest,
- TEvControlPlaneStorage::TEvCreateQueryRequest,
- TEvControlPlaneStorage::TEvCreateQueryResponse,
- TEvControlPlaneProxy::TEvCreateQueryResponse>;
- using TBaseRequestActor::TBaseRequestActor;
-
- STFUNC(StateFunc) {
- switch (ev->GetTypeRewrite()) {
- hFunc(TEvRateLimiter::TEvCreateResourceResponse, Handle);
- default:
- return TBaseRequestActor::StateFunc(ev);
- }
- }
- void OnBootstrap() override {
- Become(&TCreateQueryRequestActor::StateFunc);
- if (Quotas) {
- SendCreateRateLimiterResourceRequest();
- } else {
- SendRequestIfCan();
- }
- }
-
- void SendCreateRateLimiterResourceRequest() {
- if (auto quotaIt = Quotas->find(QUOTA_CPU_PERCENT_LIMIT); quotaIt != Quotas->end()) {
- const double cloudLimit = static_cast<double>(quotaIt->second.Limit.Value * 10); // percent -> milliseconds
- CPP_LOG_T("Create rate limiter resource for cloud with limit " << cloudLimit << "ms");
- Send(RateLimiterControlPlaneServiceId(), new TEvRateLimiter::TEvCreateResource(CloudId, cloudLimit));
- } else {
- NYql::TIssues issues;
- NYql::TIssue issue = MakeErrorIssue(TIssuesIds::INTERNAL_ERROR, TStringBuilder() << "CPU quota for cloud \"" << CloudId << "\" was not found");
- issues.AddIssue(issue);
- CPP_LOG_W("Failed to get cpu quota for cloud " << CloudId);
- ReplyWithError(issues);
- }
- }
-
- void Handle(TEvRateLimiter::TEvCreateResourceResponse::TPtr& ev) {
- CPP_LOG_D("Create response from rate limiter service. Success: " << ev->Get()->Success);
- if (ev->Get()->Success) {
- QuoterResourceCreated = true;
- SendRequestIfCan();
- } else {
- NYql::TIssue issue("Failed to create rate limiter resource");
- for (const NYql::TIssue& i : ev->Get()->Issues) {
- issue.AddSubIssue(MakeIntrusive<NYql::TIssue>(i));
- }
- NYql::TIssues issues;
- issues.AddIssue(issue);
- ReplyWithError(issues);
- }
- }
-
- bool CanSendRequest() const override {
- return (QuoterResourceCreated || !Quotas) && TBaseRequestActor::CanSendRequest();
- }
-};
class TControlPlaneProxyActor : public NActors::TActorBootstrapped<TControlPlaneProxyActor> {
- enum ERequestTypeScope {
- RTS_CREATE_QUERY,
- RTS_LIST_QUERIES,
- RTS_DESCRIBE_QUERY,
- RTS_GET_QUERY_STATUS,
- RTS_MODIFY_QUERY,
- RTS_DELETE_QUERY,
- RTS_CONTROL_QUERY,
- RTS_GET_RESULT_DATA,
- RTS_LIST_JOBS,
- RTS_DESCRIBE_JOB,
- RTS_CREATE_CONNECTION,
- RTS_LIST_CONNECTIONS,
- RTS_DESCRIBE_CONNECTION,
- RTS_MODIFY_CONNECTION,
- RTS_DELETE_CONNECTION,
- RTS_TEST_CONNECTION,
- RTS_CREATE_BINDING,
- RTS_LIST_BINDINGS,
- RTS_DESCRIBE_BINDING,
- RTS_MODIFY_BINDING,
- RTS_DELETE_BINDING,
- RTS_MAX,
- };
-
- enum ERequestTypeCommon {
- RTC_RESOLVE_FOLDER,
- RTC_CREATE_QUERY,
- RTC_LIST_QUERIES,
- RTC_DESCRIBE_QUERY,
- RTC_GET_QUERY_STATUS,
- RTC_MODIFY_QUERY,
- RTC_DELETE_QUERY,
- RTC_CONTROL_QUERY,
- RTC_GET_RESULT_DATA,
- RTC_LIST_JOBS,
- RTC_DESCRIBE_JOB,
- RTC_CREATE_CONNECTION,
- RTC_LIST_CONNECTIONS,
- RTC_DESCRIBE_CONNECTION,
- RTC_MODIFY_CONNECTION,
- RTC_DELETE_CONNECTION,
- RTC_TEST_CONNECTION,
- RTC_CREATE_BINDING,
- RTC_LIST_BINDINGS,
- RTC_DESCRIBE_BINDING,
- RTC_MODIFY_BINDING,
- RTC_DELETE_BINDING,
- RTC_RESOLVE_SUBJECT_TYPE,
- RTC_CREATE_CONNECTION_IN_YDB,
- RTC_CREATE_BINDING_IN_YDB,
- RTC_CREATE_COMPUTE_DATABASE,
- RTC_MAX,
- };
-
- class TCounters: public virtual TThrRefBase {
- struct TMetricsScope {
- TString CloudId;
- TString Scope;
-
- TMetricsScope() = default;
-
- TMetricsScope(const TString& cloudId, const TString& scope)
- : CloudId(cloudId)
- , Scope(scope)
- {}
-
- bool operator<(const TMetricsScope& right) const {
- return std::make_pair(CloudId, Scope) < std::make_pair(right.CloudId, right.Scope);
- }
- };
-
- using TScopeCounters = std::array<TRequestScopeCountersPtr, RTS_MAX>;
- using TScopeCountersPtr = std::shared_ptr<TScopeCounters>;
-
- std::array<TRequestCommonCountersPtr, RTC_MAX> CommonRequests = CreateArray<RTC_MAX, TRequestCommonCountersPtr>({
- { MakeIntrusive<TRequestCommonCounters>("ResolveFolder") },
- { MakeIntrusive<TRequestCommonCounters>("CreateQuery") },
- { MakeIntrusive<TRequestCommonCounters>("ListQueries") },
- { MakeIntrusive<TRequestCommonCounters>("DescribeQuery") },
- { MakeIntrusive<TRequestCommonCounters>("GetQueryStatus") },
- { MakeIntrusive<TRequestCommonCounters>("ModifyQuery") },
- { MakeIntrusive<TRequestCommonCounters>("DeleteQuery") },
- { MakeIntrusive<TRequestCommonCounters>("ControlQuery") },
- { MakeIntrusive<TRequestCommonCounters>("GetResultData") },
- { MakeIntrusive<TRequestCommonCounters>("ListJobs") },
- { MakeIntrusive<TRequestCommonCounters>("DescribeJob") },
- { MakeIntrusive<TRequestCommonCounters>("CreateConnection") },
- { MakeIntrusive<TRequestCommonCounters>("ListConnections") },
- { MakeIntrusive<TRequestCommonCounters>("DescribeConnection") },
- { MakeIntrusive<TRequestCommonCounters>("ModifyConnection") },
- { MakeIntrusive<TRequestCommonCounters>("DeleteConnection") },
- { MakeIntrusive<TRequestCommonCounters>("TestConnection") },
- { MakeIntrusive<TRequestCommonCounters>("CreateBinding") },
- { MakeIntrusive<TRequestCommonCounters>("ListBindings") },
- { MakeIntrusive<TRequestCommonCounters>("DescribeBinding") },
- { MakeIntrusive<TRequestCommonCounters>("ModifyBinding") },
- { MakeIntrusive<TRequestCommonCounters>("DeleteBinding") },
- { MakeIntrusive<TRequestCommonCounters>("ResolveSubjectType") },
- { MakeIntrusive<TRequestCommonCounters>("CreateConnectionInYDB") },
- { MakeIntrusive<TRequestCommonCounters>("CreateBindingInYDB") },
- { MakeIntrusive<TRequestCommonCounters>("CreateComputeDatabase") },
- });
-
- TTtlCache<TMetricsScope, TScopeCountersPtr, TMap> ScopeCounters{TTtlCacheSettings{}.SetTtl(TDuration::Days(1))};
- ::NMonitoring::TDynamicCounterPtr Counters;
-
- public:
- explicit TCounters(const ::NMonitoring::TDynamicCounterPtr& counters)
- : Counters(counters)
- {
- for (auto& request: CommonRequests) {
- request->Register(Counters);
- }
- }
-
- TRequestCounters GetCounters(const TString& cloudId, const TString& scope, ERequestTypeScope scopeType, ERequestTypeCommon commonType) {
- return {GetScopeCounters(cloudId, scope, scopeType), GetCommonCounters(commonType)};
- }
-
- TRequestCommonCountersPtr GetCommonCounters(ERequestTypeCommon type) {
- return CommonRequests[type];
- }
-
- TRequestScopeCountersPtr GetScopeCounters(const TString& cloudId, const TString& scope, ERequestTypeScope type) {
- TMetricsScope key{cloudId, scope};
- TMaybe<TScopeCountersPtr> cacheVal;
- ScopeCounters.Get(key, &cacheVal);
- if (cacheVal) {
- return (**cacheVal)[type];
- }
-
- auto scopeRequests = std::make_shared<TScopeCounters>(CreateArray<RTS_MAX, TRequestScopeCountersPtr>({
- { MakeIntrusive<TRequestScopeCounters>("CreateQuery") },
- { MakeIntrusive<TRequestScopeCounters>("ListQueries") },
- { MakeIntrusive<TRequestScopeCounters>("DescribeQuery") },
- { MakeIntrusive<TRequestScopeCounters>("GetQueryStatus") },
- { MakeIntrusive<TRequestScopeCounters>("ModifyQuery") },
- { MakeIntrusive<TRequestScopeCounters>("DeleteQuery") },
- { MakeIntrusive<TRequestScopeCounters>("ControlQuery") },
- { MakeIntrusive<TRequestScopeCounters>("GetResultData") },
- { MakeIntrusive<TRequestScopeCounters>("ListJobs") },
- { MakeIntrusive<TRequestScopeCounters>("DescribeJob") },
- { MakeIntrusive<TRequestScopeCounters>("CreateConnection") },
- { MakeIntrusive<TRequestScopeCounters>("ListConnections") },
- { MakeIntrusive<TRequestScopeCounters>("DescribeConnection") },
- { MakeIntrusive<TRequestScopeCounters>("ModifyConnection") },
- { MakeIntrusive<TRequestScopeCounters>("DeleteConnection") },
- { MakeIntrusive<TRequestScopeCounters>("TestConnection") },
- { MakeIntrusive<TRequestScopeCounters>("CreateBinding") },
- { MakeIntrusive<TRequestScopeCounters>("ListBindings") },
- { MakeIntrusive<TRequestScopeCounters>("DescribeBinding") },
- { MakeIntrusive<TRequestScopeCounters>("ModifyBinding") },
- { MakeIntrusive<TRequestScopeCounters>("DeleteBinding") },
- }));
-
- auto scopeCounters = Counters
- ->GetSubgroup("cloud_id", cloudId)
- ->GetSubgroup("scope", scope);
-
- for (auto& request: *scopeRequests) {
- request->Register(scopeCounters);
- }
- cacheVal = scopeRequests;
- ScopeCounters.Put(key, cacheVal);
- return (*scopeRequests)[type];
- }
- };
-
+private:
TCounters Counters;
const ::NFq::TControlPlaneProxyConfig Config;
const TYqSharedResources::TPtr YqSharedResources;
@@ -1620,21 +476,27 @@ class TControlPlaneProxyActor : public NActors::TActorBootstrapped<TControlPlane
const bool QuotaManagerEnabled;
NConfig::TComputeConfig ComputeConfig;
TActorId AccessService;
+ ::NFq::TSigner::TPtr Signer;
public:
TControlPlaneProxyActor(
const NConfig::TControlPlaneProxyConfig& config,
+ const NConfig::TControlPlaneStorageConfig& storageConfig,
const NConfig::TComputeConfig& computeConfig,
const NConfig::TCommonConfig& commonConfig,
+ const NYql::TS3GatewayConfig& s3Config,
+ const ::NFq::TSigner::TPtr& signer,
const TYqSharedResources::TPtr& yqSharedResources,
const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
const ::NMonitoring::TDynamicCounterPtr& counters,
bool quotaManagerEnabled)
: Counters(counters)
- , Config(config, computeConfig, commonConfig)
+ , Config(config, storageConfig, computeConfig, commonConfig, s3Config)
, YqSharedResources(yqSharedResources)
, CredentialsProviderFactory(credentialsProviderFactory)
- , QuotaManagerEnabled(quotaManagerEnabled) { }
+ , QuotaManagerEnabled(quotaManagerEnabled)
+ , Signer(signer)
+ {}
static constexpr char ActorName[] = "YQ_CONTROL_PLANE_PROXY";
@@ -1691,30 +553,6 @@ private:
hFunc(NMon::TEvHttpInfo, Handle);
)
- inline static const TMap<TString, TPermissions::TPermission> PermissionsItems = {
- {"yq.resources.viewPublic@as", TPermissions::VIEW_PUBLIC},
- {"yq.resources.viewPrivate@as", TPermissions::VIEW_PRIVATE},
- {"yq.queries.viewAst@as", TPermissions::VIEW_AST},
- {"yq.resources.managePublic@as", TPermissions::MANAGE_PUBLIC},
- {"yq.resources.managePrivate@as", TPermissions::MANAGE_PRIVATE},
- {"yq.queries.invoke@as", TPermissions::QUERY_INVOKE},
- {"yq.queries.viewQueryText@as", TPermissions::VIEW_QUERY_TEXT},
- };
-
- template<typename T>
- TPermissions ExtractPermissions(T& ev, const TPermissions& availablePermissions) {
- TPermissions permissions;
- for (const auto& permission: ev->Get()->Permissions) {
- if (auto it = PermissionsItems.find(permission); it != PermissionsItems.end()) {
- // cut off permissions that should not be used in other services
- if (availablePermissions.Check(it->second)) {
- permissions.Set(it->second);
- }
- }
- }
- return permissions;
- }
-
template<typename T>
NYql::TIssues ValidatePermissions(T& ev, const TVector<TString>& requiredPermissions) {
NYql::TIssues issues;
@@ -1722,9 +560,9 @@ private:
return issues;
}
- for (const auto& requiredPermission: requiredPermissions) {
+ for (const auto& requiredPermission : requiredPermissions) {
if (!IsIn(ev->Get()->Permissions, requiredPermission)) {
- issues.AddIssue(MakeErrorIssue(TIssuesIds::ACCESS_DENIED, "No permission " + requiredPermission + " in a given scope yandexcloud://" + ev->Get()->FolderId));
+ issues.AddIssue(MakeErrorIssue(TIssuesIds::ACCESS_DENIED, "No permission " + requiredPermission + " in a given scope " + ev->Get()->Scope));
}
}
@@ -1736,9 +574,8 @@ private:
FederatedQuery::CreateQueryRequest request = ev->Get()->Request;
CPP_LOG_T("CreateQueryRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const int byteSize = request.ByteSize();
@@ -1753,7 +590,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvCreateQueryRequest::TPtr,
TEvControlPlaneProxy::TEvCreateQueryResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -1784,7 +621,7 @@ private:
TEvControlPlaneProxy::TEvCreateQueryResponse>
(Counters.GetCommonCounters(RTC_CREATE_COMPUTE_DATABASE),
sender, Config, Config.ComputeConfig, cloudId,
- folderId, scope, probe, ev, cookie));
+ scope, probe, ev, cookie));
return;
}
@@ -1793,14 +630,12 @@ private:
| TPermissions::TPermission::MANAGE_PUBLIC
};
- Register(new TCreateQueryRequestActor
- (Config, sender, cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe, ExtractPermissions(ev, availablePermissions),
- cloudId, subjectType, std::move(ev->Get()->Quotas),
- std::move(ev->Get()->ComputeDatabase)));
+ Register(new TCreateQueryRequestActor(ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvListQueriesRequest::TPtr& ev) {
@@ -1808,9 +643,8 @@ private:
FederatedQuery::ListQueriesRequest request = ev->Get()->Request;
CPP_LOG_T("ListQueriesRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const int byteSize = request.ByteSize();
@@ -1825,7 +659,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvListQueriesRequest::TPtr,
TEvControlPlaneProxy::TEvListQueriesResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -1859,13 +693,14 @@ private:
Register(new TRequestActor<FederatedQuery::ListQueriesRequest,
TEvControlPlaneStorage::TEvListQueriesRequest,
TEvControlPlaneStorage::TEvListQueriesResponse,
- TEvControlPlaneProxy::TEvListQueriesResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvListQueriesRequest,
+ TEvControlPlaneProxy::TEvListQueriesResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvDescribeQueryRequest::TPtr& ev) {
@@ -1873,9 +708,8 @@ private:
FederatedQuery::DescribeQueryRequest request = ev->Get()->Request;
CPP_LOG_T("DescribeQueryRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString queryId = request.query_id();
@@ -1891,7 +725,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvDescribeQueryRequest::TPtr,
TEvControlPlaneProxy::TEvDescribeQueryResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -1927,13 +761,14 @@ private:
Register(new TRequestActor<FederatedQuery::DescribeQueryRequest,
TEvControlPlaneStorage::TEvDescribeQueryRequest,
TEvControlPlaneStorage::TEvDescribeQueryResponse,
- TEvControlPlaneProxy::TEvDescribeQueryResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvDescribeQueryRequest,
+ TEvControlPlaneProxy::TEvDescribeQueryResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvGetQueryStatusRequest::TPtr& ev) {
@@ -1941,9 +776,8 @@ private:
FederatedQuery::GetQueryStatusRequest request = ev->Get()->Request;
CPP_LOG_T("GetStatusRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString queryId = request.query_id();
@@ -1959,7 +793,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvGetQueryStatusRequest::TPtr,
TEvControlPlaneProxy::TEvGetQueryStatusResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -1993,13 +827,14 @@ private:
Register(new TRequestActor<FederatedQuery::GetQueryStatusRequest,
TEvControlPlaneStorage::TEvGetQueryStatusRequest,
TEvControlPlaneStorage::TEvGetQueryStatusResponse,
- TEvControlPlaneProxy::TEvGetQueryStatusResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvGetQueryStatusRequest,
+ TEvControlPlaneProxy::TEvGetQueryStatusResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvModifyQueryRequest::TPtr& ev) {
@@ -2007,9 +842,8 @@ private:
FederatedQuery::ModifyQueryRequest request = ev->Get()->Request;
CPP_LOG_T("ModifyQueryRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString queryId = request.query_id();
@@ -2025,7 +859,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvModifyQueryRequest::TPtr,
TEvControlPlaneProxy::TEvModifyQueryResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2056,7 +890,7 @@ private:
TEvControlPlaneProxy::TEvModifyQueryResponse>
(Counters.GetCommonCounters(RTC_CREATE_COMPUTE_DATABASE),
sender, Config, Config.ComputeConfig, cloudId,
- folderId, scope, probe, ev, cookie));
+ scope, probe, ev, cookie));
return;
}
@@ -2069,13 +903,14 @@ private:
Register(new TRequestActor<FederatedQuery::ModifyQueryRequest,
TEvControlPlaneStorage::TEvModifyQueryRequest,
TEvControlPlaneStorage::TEvModifyQueryResponse,
- TEvControlPlaneProxy::TEvModifyQueryResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe, ExtractPermissions(ev, availablePermissions),
- cloudId, subjectType, {}, std::move(ev->Get()->ComputeDatabase)));
+ TEvControlPlaneProxy::TEvModifyQueryRequest,
+ TEvControlPlaneProxy::TEvModifyQueryResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvDeleteQueryRequest::TPtr& ev) {
@@ -2083,9 +918,8 @@ private:
FederatedQuery::DeleteQueryRequest request = ev->Get()->Request;
CPP_LOG_T("DeleteQueryRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString queryId = request.query_id();
@@ -2101,7 +935,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvDeleteQueryRequest::TPtr,
TEvControlPlaneProxy::TEvDeleteQueryResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2135,13 +969,14 @@ private:
Register(new TRequestActor<FederatedQuery::DeleteQueryRequest,
TEvControlPlaneStorage::TEvDeleteQueryRequest,
TEvControlPlaneStorage::TEvDeleteQueryResponse,
- TEvControlPlaneProxy::TEvDeleteQueryResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvDeleteQueryRequest,
+ TEvControlPlaneProxy::TEvDeleteQueryResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvControlQueryRequest::TPtr& ev) {
@@ -2149,9 +984,8 @@ private:
FederatedQuery::ControlQueryRequest request = ev->Get()->Request;
CPP_LOG_T("ControlQueryRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString queryId = request.query_id();
@@ -2167,7 +1001,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvControlQueryRequest::TPtr,
TEvControlPlaneProxy::TEvControlQueryResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2201,13 +1035,14 @@ private:
Register(new TRequestActor<FederatedQuery::ControlQueryRequest,
TEvControlPlaneStorage::TEvControlQueryRequest,
TEvControlPlaneStorage::TEvControlQueryResponse,
- TEvControlPlaneProxy::TEvControlQueryResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvControlQueryRequest,
+ TEvControlPlaneProxy::TEvControlQueryResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvGetResultDataRequest::TPtr& ev) {
@@ -2215,9 +1050,8 @@ private:
FederatedQuery::GetResultDataRequest request = ev->Get()->Request;
CPP_LOG_T("GetResultDataRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString queryId = request.query_id();
@@ -2236,7 +1070,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvGetResultDataRequest::TPtr,
TEvControlPlaneProxy::TEvGetResultDataResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2270,13 +1104,14 @@ private:
Register(new TRequestActor<FederatedQuery::GetResultDataRequest,
TEvControlPlaneStorage::TEvGetResultDataRequest,
TEvControlPlaneStorage::TEvGetResultDataResponse,
- TEvControlPlaneProxy::TEvGetResultDataResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvGetResultDataRequest,
+ TEvControlPlaneProxy::TEvGetResultDataResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvListJobsRequest::TPtr& ev) {
@@ -2284,9 +1119,8 @@ private:
FederatedQuery::ListJobsRequest request = ev->Get()->Request;
CPP_LOG_T("ListJobsRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString queryId = request.query_id();
@@ -2302,7 +1136,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvListJobsRequest::TPtr,
TEvControlPlaneProxy::TEvListJobsResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2336,13 +1170,14 @@ private:
Register(new TRequestActor<FederatedQuery::ListJobsRequest,
TEvControlPlaneStorage::TEvListJobsRequest,
TEvControlPlaneStorage::TEvListJobsResponse,
- TEvControlPlaneProxy::TEvListJobsResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvListJobsRequest,
+ TEvControlPlaneProxy::TEvListJobsResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvDescribeJobRequest::TPtr& ev) {
@@ -2350,9 +1185,8 @@ private:
FederatedQuery::DescribeJobRequest request = ev->Get()->Request;
CPP_LOG_T("DescribeJobRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString jobId = request.job_id();
@@ -2368,7 +1202,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvDescribeJobRequest::TPtr,
TEvControlPlaneProxy::TEvDescribeJobResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2404,13 +1238,14 @@ private:
Register(new TRequestActor<FederatedQuery::DescribeJobRequest,
TEvControlPlaneStorage::TEvDescribeJobRequest,
TEvControlPlaneStorage::TEvDescribeJobResponse,
- TEvControlPlaneProxy::TEvDescribeJobResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvDescribeJobRequest,
+ TEvControlPlaneProxy::TEvDescribeJobResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvCreateConnectionRequest::TPtr& ev) {
@@ -2418,10 +1253,9 @@ private:
FederatedQuery::CreateConnectionRequest request = ev->Get()->Request;
CPP_LOG_T("CreateConnectionRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
const bool ydbOperationWasPerformed = ev->Get()->ComputeYDBOperationWasPerformed;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const int byteSize = request.ByteSize();
@@ -2436,7 +1270,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvCreateConnectionRequest::TPtr,
TEvControlPlaneProxy::TEvCreateConnectionResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2472,39 +1306,69 @@ private:
TEvControlPlaneProxy::TEvCreateConnectionResponse>
(Counters.GetCommonCounters(RTC_CREATE_COMPUTE_DATABASE),
sender, Config, Config.ComputeConfig, cloudId,
- folderId, scope, probe, ev, cookie));
- return;
+ scope, probe, ev, cookie));
+ return;
+ }
+
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) && !ev->Get()->RequestValidationPassed) {
+ auto requestValidationIssues =
+ ::NFq::ValidateConnection(ev,
+ Config.StorageConfig.Proto.GetMaxRequestSize(),
+ Config.StorageConfig.AvailableConnections,
+ Config.StorageConfig.Proto.GetDisableCurrentIam(),
+ false);
+ if (requestValidationIssues) {
+ CPS_LOG_E("CreateConnectionRequest, validation failed: "
+ << scope << " " << user << " " << NKikimr::MaskTicket(token)
+ << " " << request.DebugString()
+ << " error: " << requestValidationIssues.ToString());
+ Send(ev->Sender,
+ new TEvControlPlaneProxy::TEvCreateConnectionResponse(
+ requestValidationIssues, subjectType),
+ 0,
+ ev->Cookie);
+ requestCounters.IncError();
+ TDuration delta = TInstant::Now() - startTime;
+ requestCounters.Common->LatencyMs->Collect(delta.MilliSeconds());
+ probe(delta, false, false);
+ return;
+ }
+ ev->Get()->RequestValidationPassed = true;
}
static const TPermissions availablePermissions {
TPermissions::TPermission::MANAGE_PUBLIC
};
- if (Config.ComputeConfig.YdbComputeControlPlaneEnabled() && !ydbOperationWasPerformed) {
- Register(new TCreateConnectionInYDBActor(
- Counters.GetCommonCounters(RTC_CREATE_CONNECTION_IN_YDB),
- Config.ComputeConfig,
- YqSharedResources,
- CredentialsProviderFactory,
- Config.CommonConfig.GetObjectStorageEndpoint(),
- sender,
- ev,
- cookie,
- scope,
- Config.RequestTimeout));
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) && !ydbOperationWasPerformed) {
+ if (!ev->Get()->YDBClient) {
+ ev->Get()->YDBClient = CreateNewTableClient(ev,
+ Config.ComputeConfig,
+ YqSharedResources,
+ CredentialsProviderFactory);
+ }
+
+ Register(NPrivate::MakeCreateConnectionActor(
+ ControlPlaneProxyActorId(),
+ std::move(ev),
+ Config.RequestTimeout,
+ Counters,
+ Config.CommonConfig,
+ Signer));
return;
}
Register(new TRequestActor<FederatedQuery::CreateConnectionRequest,
TEvControlPlaneStorage::TEvCreateConnectionRequest,
TEvControlPlaneStorage::TEvCreateConnectionResponse,
- TEvControlPlaneProxy::TEvCreateConnectionResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe, ExtractPermissions(ev, availablePermissions),
- cloudId, subjectType, {}, std::move(ev->Get()->ComputeDatabase)));
+ TEvControlPlaneProxy::TEvCreateConnectionRequest,
+ TEvControlPlaneProxy::TEvCreateConnectionResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvListConnectionsRequest::TPtr& ev) {
@@ -2512,9 +1376,8 @@ private:
FederatedQuery::ListConnectionsRequest request = ev->Get()->Request;
CPP_LOG_T("ListConnectionsRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const int byteSize = request.ByteSize();
@@ -2529,7 +1392,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvListConnectionsRequest::TPtr,
TEvControlPlaneProxy::TEvListConnectionsResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2563,13 +1426,14 @@ private:
Register(new TRequestActor<FederatedQuery::ListConnectionsRequest,
TEvControlPlaneStorage::TEvListConnectionsRequest,
TEvControlPlaneStorage::TEvListConnectionsResponse,
- TEvControlPlaneProxy::TEvListConnectionsResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvListConnectionsRequest,
+ TEvControlPlaneProxy::TEvListConnectionsResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvDescribeConnectionRequest::TPtr& ev) {
@@ -2577,9 +1441,8 @@ private:
FederatedQuery::DescribeConnectionRequest request = ev->Get()->Request;
CPP_LOG_T("DescribeConnectionRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString connectionId = request.connection_id();
@@ -2595,7 +1458,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvDescribeConnectionRequest::TPtr,
TEvControlPlaneProxy::TEvDescribeConnectionResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2629,13 +1492,14 @@ private:
Register(new TRequestActor<FederatedQuery::DescribeConnectionRequest,
TEvControlPlaneStorage::TEvDescribeConnectionRequest,
TEvControlPlaneStorage::TEvDescribeConnectionResponse,
- TEvControlPlaneProxy::TEvDescribeConnectionResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvDescribeConnectionRequest,
+ TEvControlPlaneProxy::TEvDescribeConnectionResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr& ev) {
@@ -2643,9 +1507,8 @@ private:
FederatedQuery::ModifyConnectionRequest request = ev->Get()->Request;
CPP_LOG_T("ModifyConnectionRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString connectionId = request.connection_id();
@@ -2661,7 +1524,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvModifyConnectionRequest::TPtr,
TEvControlPlaneProxy::TEvModifyConnectionResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2697,26 +1560,103 @@ private:
TEvControlPlaneProxy::TEvModifyConnectionResponse>
(Counters.GetCommonCounters(RTC_CREATE_COMPUTE_DATABASE),
sender, Config, Config.ComputeConfig, cloudId,
- folderId, scope, probe, ev, cookie));
- return;
+ scope, probe, ev, cookie));
+ return;
+ }
+
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) &&
+ !ev->Get()->RequestValidationPassed) {
+ auto requestValidationIssues =
+ ::NFq::ValidateConnection(ev,
+ Config.StorageConfig.Proto.GetMaxRequestSize(),
+ Config.StorageConfig.AvailableConnections,
+ Config.StorageConfig.Proto.GetDisableCurrentIam(),
+ false);
+ if (requestValidationIssues) {
+ CPS_LOG_E("ModifyConnectionRequest, validation failed: "
+ << scope << " " << user << " " << NKikimr::MaskTicket(token)
+ << " " << request.DebugString()
+ << " error: " << requestValidationIssues.ToString());
+ Send(ev->Sender,
+ new TEvControlPlaneProxy::TEvModifyConnectionResponse(
+ requestValidationIssues, subjectType),
+ 0,
+ ev->Cookie);
+ requestCounters.IncError();
+ TDuration delta = TInstant::Now() - startTime;
+ requestCounters.Common->LatencyMs->Collect(delta.MilliSeconds());
+ probe(delta, false, false);
+ return;
+ }
+ ev->Get()->RequestValidationPassed = true;
}
static const TPermissions availablePermissions {
TPermissions::TPermission::MANAGE_PUBLIC
| TPermissions::TPermission::MANAGE_PRIVATE
+ | TPermissions::TPermission::VIEW_PUBLIC
+ | TPermissions::TPermission::VIEW_PRIVATE
};
- Register(new TRequestActor<FederatedQuery::ModifyConnectionRequest,
- TEvControlPlaneStorage::TEvModifyConnectionRequest,
- TEvControlPlaneStorage::TEvModifyConnectionResponse,
- TEvControlPlaneProxy::TEvModifyConnectionResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions),
- cloudId, subjectType, {}, std::move(ev->Get()->ComputeDatabase)));
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) && !ev->Get()->OldConnectionContent) {
+ auto permissions = ExtractPermissions(ev, availablePermissions);
+ Register(MakeDiscoverYDBConnectionName(
+ ControlPlaneProxyActorId(), ev, Counters, Config.RequestTimeout, permissions));
+ return;
+ }
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) && !ev->Get()->OldBindingNamesDiscoveryFinished) {
+ auto permissions = ExtractPermissions(ev, availablePermissions);
+ Register(MakeListBindingIds(
+ ControlPlaneProxyActorId(), ev, Counters, Config.RequestTimeout, permissions));
+ return;
+ }
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) && ev->Get()->OldBindingIds.size() != ev->Get()->OldBindingContents.size()) {
+ auto permissions = ExtractPermissions(ev, availablePermissions);
+ Register(MakeDescribeListedBinding(
+ ControlPlaneProxyActorId(), ev, Counters, Config.RequestTimeout, permissions));
+ return;
+ }
+ const bool controlPlaneYDBOperationWasPerformed = ev->Get()->ControlPlaneYDBOperationWasPerformed;
+ if (!controlPlaneYDBOperationWasPerformed) {
+ auto shouldReplyWithResponse =
+ !Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope);
+ Register(new TRequestActor<FederatedQuery::ModifyConnectionRequest,
+ TEvControlPlaneStorage::TEvModifyConnectionRequest,
+ TEvControlPlaneStorage::TEvModifyConnectionResponse,
+ TEvControlPlaneProxy::TEvModifyConnectionRequest,
+ TEvControlPlaneProxy::TEvModifyConnectionResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions,
+ shouldReplyWithResponse));
+ return;
+ }
+
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope)) {
+ if (!ev->Get()->YDBClient) {
+ ev->Get()->YDBClient = CreateNewTableClient(ev,
+ Config.ComputeConfig,
+ YqSharedResources,
+ CredentialsProviderFactory);
+ }
+
+ if (!ev->Get()->ComputeYDBOperationWasPerformed) {
+ Register(MakeModifyConnectionActor(
+ ControlPlaneProxyActorId(),
+ ev,
+ Config.RequestTimeout,
+ Counters,
+ Config.CommonConfig,
+ Signer));
+ return;
+ }
+
+ Send(sender, ev->Get()->Response.release());
+ return;
+ }
}
void Handle(TEvControlPlaneProxy::TEvDeleteConnectionRequest::TPtr& ev) {
@@ -2724,9 +1664,8 @@ private:
FederatedQuery::DeleteConnectionRequest request = ev->Get()->Request;
CPP_LOG_T("DeleteConnectionRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString connectionId = request.connection_id();
@@ -2742,7 +1681,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvDeleteConnectionRequest::TPtr,
TEvControlPlaneProxy::TEvDeleteConnectionResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2773,26 +1712,59 @@ private:
TEvControlPlaneProxy::TEvDeleteConnectionResponse>
(Counters.GetCommonCounters(RTC_CREATE_COMPUTE_DATABASE),
sender, Config, Config.ComputeConfig, cloudId,
- folderId, scope, probe, ev, cookie));
+ scope, probe, ev, cookie));
return;
}
static const TPermissions availablePermissions {
TPermissions::TPermission::MANAGE_PUBLIC
| TPermissions::TPermission::MANAGE_PRIVATE
+ | TPermissions::TPermission::VIEW_PUBLIC
+ | TPermissions::TPermission::VIEW_PRIVATE
};
- Register(new TRequestActor<FederatedQuery::DeleteConnectionRequest,
- TEvControlPlaneStorage::TEvDeleteConnectionRequest,
- TEvControlPlaneStorage::TEvDeleteConnectionResponse,
- TEvControlPlaneProxy::TEvDeleteConnectionResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions),
- cloudId, subjectType, {}, std::move(ev->Get()->ComputeDatabase)));
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) && !ev->Get()->ConnectionContent) {
+ auto permissions = ExtractPermissions(ev, availablePermissions);
+ Register(MakeDiscoverYDBConnectionName(
+ ControlPlaneProxyActorId(), ev, Counters, Config.RequestTimeout, permissions));
+ return;
+ }
+
+ const bool controlPlaneYDBOperationWasPerformed = ev->Get()->ControlPlaneYDBOperationWasPerformed;
+ if (!controlPlaneYDBOperationWasPerformed) {
+ auto shouldReplyWithResponse =
+ !Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope);
+ Register(new TRequestActor<FederatedQuery::DeleteConnectionRequest,
+ TEvControlPlaneStorage::TEvDeleteConnectionRequest,
+ TEvControlPlaneStorage::TEvDeleteConnectionResponse,
+ TEvControlPlaneProxy::TEvDeleteConnectionRequest,
+ TEvControlPlaneProxy::TEvDeleteConnectionResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions,
+ shouldReplyWithResponse));
+ return;
+ }
+
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope)) {
+ if (!ev->Get()->YDBClient) {
+ ev->Get()->YDBClient = CreateNewTableClient(ev,
+ Config.ComputeConfig,
+ YqSharedResources,
+ CredentialsProviderFactory);
+ }
+
+ if (!ev->Get()->ComputeYDBOperationWasPerformed) {
+ Register(MakeDeleteConnectionActor(
+ ControlPlaneProxyActorId(), ev, Config.RequestTimeout, Counters, Signer));
+ return;
+ }
+
+ Send(sender, ev->Get()->Response.release());
+ }
}
void Handle(TEvControlPlaneProxy::TEvTestConnectionRequest::TPtr& ev) {
@@ -2800,11 +1772,11 @@ private:
FederatedQuery::TestConnectionRequest request = ev->Get()->Request;
CPP_LOG_T("TestConnectionRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
+
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
- TString token = ev->Get()->Token;
+ TString token = ev->Get()->Token;
const int byteSize = request.ByteSize();
TActorId sender = ev->Sender;
ui64 cookie = ev->Cookie;
@@ -2817,7 +1789,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvTestConnectionRequest::TPtr,
TEvControlPlaneProxy::TEvTestConnectionResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2851,12 +1823,9 @@ private:
Register(new TRequestActor<FederatedQuery::TestConnectionRequest,
TEvTestConnection::TEvTestConnectionRequest,
TEvTestConnection::TEvTestConnectionResponse,
- TEvControlPlaneProxy::TEvTestConnectionResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- TestConnectionActorId(),
- requestCounters,
- probe, ExtractPermissions(ev, {}), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvTestConnectionRequest,
+ TEvControlPlaneProxy::TEvTestConnectionResponse>(
+ ev, Config, TestConnectionActorId(), requestCounters, probe, {}));
}
void Handle(TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr& ev) {
@@ -2864,10 +1833,9 @@ private:
FederatedQuery::CreateBindingRequest request = ev->Get()->Request;
CPP_LOG_T("CreateBindingRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
const bool ydbOperationWasPerformed = ev->Get()->ComputeYDBOperationWasPerformed;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const int byteSize = request.ByteSize();
@@ -2882,7 +1850,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvCreateBindingRequest::TPtr,
TEvControlPlaneProxy::TEvCreateBindingResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -2916,8 +1884,34 @@ private:
TEvControlPlaneProxy::TEvCreateBindingResponse>
(Counters.GetCommonCounters(RTC_CREATE_COMPUTE_DATABASE),
sender, Config, Config.ComputeConfig, cloudId,
- folderId, scope, probe, ev, cookie));
- return;
+ scope, probe, ev, cookie));
+ return;
+ }
+
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) &&
+ !ev->Get()->RequestValidationPassed) {
+ auto requestValidationIssues =
+ ::NFq::ValidateBinding(ev,
+ Config.StorageConfig.Proto.GetMaxRequestSize(),
+ Config.StorageConfig.AvailableBindings,
+ Config.StorageConfig.GeneratorPathsLimit);
+ if (requestValidationIssues) {
+ CPS_LOG_E("CreateBindingRequest, validation failed: "
+ << scope << " " << user << " " << NKikimr::MaskTicket(token)
+ << " " << request.DebugString()
+ << " error: " << requestValidationIssues.ToString());
+ Send(ev->Sender,
+ new TEvControlPlaneProxy::TEvCreateBindingResponse(
+ requestValidationIssues, subjectType),
+ 0,
+ ev->Cookie);
+ requestCounters.IncError();
+ TDuration delta = TInstant::Now() - startTime;
+ requestCounters.Common->LatencyMs->Collect(delta.MilliSeconds());
+ probe(delta, false, false);
+ return;
+ }
+ ev->Get()->RequestValidationPassed = true;
}
static const TPermissions availablePermissions {
@@ -2926,32 +1920,37 @@ private:
| TPermissions::TPermission::MANAGE_PRIVATE
};
- if (Config.ComputeConfig.YdbComputeControlPlaneEnabled() && !ydbOperationWasPerformed) {
- auto permissions = ExtractPermissions(ev, availablePermissions);
- Register(new TCreateBindingInYDBActor(
- Counters.GetCommonCounters(RTC_CREATE_BINDING_IN_YDB),
- Config.ComputeConfig,
- YqSharedResources,
- CredentialsProviderFactory,
- sender,
- ev,
- cookie,
- std::move(permissions),
- scope,
- Config.RequestTimeout));
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) && !ydbOperationWasPerformed) {
+ if (!ev->Get()->ConnectionName) {
+ auto permissions = ExtractPermissions(ev, availablePermissions);
+ Register(MakeDiscoverYDBConnectionName(
+ ControlPlaneProxyActorId(), ev, Counters, Config.RequestTimeout, permissions));
+ return;
+ }
+
+ if (!ev->Get()->YDBClient) {
+ ev->Get()->YDBClient = CreateNewTableClient(ev,
+ Config.ComputeConfig,
+ YqSharedResources,
+ CredentialsProviderFactory);
+ }
+
+ Register(MakeCreateBindingActor(
+ ControlPlaneProxyActorId(), std::move(ev), Config.RequestTimeout, Counters));
return;
}
Register(new TRequestActor<FederatedQuery::CreateBindingRequest,
TEvControlPlaneStorage::TEvCreateBindingRequest,
TEvControlPlaneStorage::TEvCreateBindingResponse,
- TEvControlPlaneProxy::TEvCreateBindingResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe, ExtractPermissions(ev, availablePermissions),
- cloudId, subjectType, {}, std::move(ev->Get()->ComputeDatabase)));
+ TEvControlPlaneProxy::TEvCreateBindingRequest,
+ TEvControlPlaneProxy::TEvCreateBindingResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvListBindingsRequest::TPtr& ev) {
@@ -2959,9 +1958,8 @@ private:
FederatedQuery::ListBindingsRequest request = ev->Get()->Request;
CPP_LOG_T("ListBindingsRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const int byteSize = request.ByteSize();
@@ -2976,7 +1974,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvListBindingsRequest::TPtr,
TEvControlPlaneProxy::TEvListBindingsResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -3010,13 +2008,14 @@ private:
Register(new TRequestActor<FederatedQuery::ListBindingsRequest,
TEvControlPlaneStorage::TEvListBindingsRequest,
TEvControlPlaneStorage::TEvListBindingsResponse,
- TEvControlPlaneProxy::TEvListBindingsResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvListBindingsRequest,
+ TEvControlPlaneProxy::TEvListBindingsResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvDescribeBindingRequest::TPtr& ev) {
@@ -3024,9 +2023,8 @@ private:
FederatedQuery::DescribeBindingRequest request = ev->Get()->Request;
CPP_LOG_T("DescribeBindingRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString bindingId = request.binding_id();
@@ -3042,7 +2040,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvDescribeBindingRequest::TPtr,
TEvControlPlaneProxy::TEvDescribeBindingResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -3076,13 +2074,14 @@ private:
Register(new TRequestActor<FederatedQuery::DescribeBindingRequest,
TEvControlPlaneStorage::TEvDescribeBindingRequest,
TEvControlPlaneStorage::TEvDescribeBindingResponse,
- TEvControlPlaneProxy::TEvDescribeBindingResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions), cloudId, subjectType));
+ TEvControlPlaneProxy::TEvDescribeBindingRequest,
+ TEvControlPlaneProxy::TEvDescribeBindingResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions));
}
void Handle(TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr& ev) {
@@ -3090,9 +2089,8 @@ private:
FederatedQuery::ModifyBindingRequest request = ev->Get()->Request;
CPP_LOG_T("ModifyBindingRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString bindingId = request.binding_id();
@@ -3108,7 +2106,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvModifyBindingRequest::TPtr,
TEvControlPlaneProxy::TEvModifyBindingResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -3139,26 +2137,96 @@ private:
TEvControlPlaneProxy::TEvModifyBindingResponse>
(Counters.GetCommonCounters(RTC_CREATE_COMPUTE_DATABASE),
sender, Config, Config.ComputeConfig, cloudId,
- folderId, scope, probe, ev, cookie));
- return;
+ scope, probe, ev, cookie));
+ return;
+ }
+
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) &&
+ !ev->Get()->RequestValidationPassed) {
+ auto requestValidationIssues =
+ ::NFq::ValidateBinding(ev,
+ Config.StorageConfig.Proto.GetMaxRequestSize(),
+ Config.StorageConfig.AvailableBindings,
+ Config.StorageConfig.GeneratorPathsLimit);
+ if (requestValidationIssues) {
+ CPS_LOG_E("ModifyBindingRequest, validation failed: "
+ << scope << " " << user << " " << NKikimr::MaskTicket(token)
+ << " " << request.DebugString()
+ << " error: " << requestValidationIssues.ToString());
+ Send(ev->Sender,
+ new TEvControlPlaneProxy::TEvModifyBindingResponse(
+ requestValidationIssues, subjectType),
+ 0,
+ ev->Cookie);
+ requestCounters.IncError();
+ TDuration delta = TInstant::Now() - startTime;
+ requestCounters.Common->LatencyMs->Collect(delta.MilliSeconds());
+ probe(delta, false, false);
+ return;
+ }
+ ev->Get()->RequestValidationPassed = true;
}
static const TPermissions availablePermissions {
TPermissions::TPermission::MANAGE_PUBLIC
| TPermissions::TPermission::MANAGE_PRIVATE
+ | TPermissions::TPermission::VIEW_PUBLIC
+ | TPermissions::TPermission::VIEW_PRIVATE
};
- Register(new TRequestActor<FederatedQuery::ModifyBindingRequest,
- TEvControlPlaneStorage::TEvModifyBindingRequest,
- TEvControlPlaneStorage::TEvModifyBindingResponse,
- TEvControlPlaneProxy::TEvModifyBindingResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions),
- cloudId, subjectType, {}, std::move(ev->Get()->ComputeDatabase)));
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope)) {
+ if (!ev->Get()->OldBindingContent) {
+ auto permissions = ExtractPermissions(ev, availablePermissions);
+ Register(MakeDiscoverYDBBindingName(
+ ControlPlaneProxyActorId(), ev, Counters, Config.RequestTimeout, permissions));
+ return;
+ }
+ if (!ev->Get()->ConnectionName) {
+ auto permissions = ExtractPermissions(ev, availablePermissions);
+ Register(MakeDiscoverYDBConnectionName(
+ ControlPlaneProxyActorId(), ev, Counters, Config.RequestTimeout, permissions));
+ return;
+ }
+ }
+
+ const bool controlPlaneYDBOperationWasPerformed = ev->Get()->ControlPlaneYDBOperationWasPerformed;
+ if (!controlPlaneYDBOperationWasPerformed) {
+ auto shouldReplyWithResponse =
+ !Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope);
+ Register(new TRequestActor<FederatedQuery::ModifyBindingRequest,
+ TEvControlPlaneStorage::TEvModifyBindingRequest,
+ TEvControlPlaneStorage::TEvModifyBindingResponse,
+ TEvControlPlaneProxy::TEvModifyBindingRequest,
+ TEvControlPlaneProxy::TEvModifyBindingResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions,
+ shouldReplyWithResponse));
+ return;
+ }
+
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope)) {
+ if (!ev->Get()->YDBClient) {
+ ev->Get()->YDBClient = CreateNewTableClient(ev,
+ Config.ComputeConfig,
+ YqSharedResources,
+ CredentialsProviderFactory);
+ }
+
+ if (!ev->Get()->ComputeYDBOperationWasPerformed) {
+ Register(MakeModifyBindingActor(
+ ControlPlaneProxyActorId(),
+ std::move(ev),
+ Config.RequestTimeout,
+ Counters));
+ return;
+ }
+
+ Send(sender, ev->Get()->Response.release());
+ }
}
void Handle(TEvControlPlaneProxy::TEvDeleteBindingRequest::TPtr& ev) {
@@ -3166,9 +2234,8 @@ private:
FederatedQuery::DeleteBindingRequest request = ev->Get()->Request;
CPP_LOG_T("DeleteBindingRequest: " << request.DebugString());
const TString cloudId = ev->Get()->CloudId;
- const TString folderId = ev->Get()->FolderId;
const TString subjectType = ev->Get()->SubjectType;
- const TString scope = "yandexcloud://" + folderId;
+ const TString scope = ev->Get()->Scope;
TString user = ev->Get()->User;
TString token = ev->Get()->Token;
const TString bindingId = request.binding_id();
@@ -3184,7 +2251,7 @@ private:
Register(new TResolveFolderActor<TEvControlPlaneProxy::TEvDeleteBindingRequest::TPtr,
TEvControlPlaneProxy::TEvDeleteBindingResponse>
(Counters.GetCommonCounters(RTC_RESOLVE_FOLDER), sender,
- Config, folderId, token,
+ Config, scope, token,
probe, ev, cookie, QuotaManagerEnabled));
return;
}
@@ -3215,26 +2282,60 @@ private:
TEvControlPlaneProxy::TEvDeleteBindingResponse>
(Counters.GetCommonCounters(RTC_CREATE_COMPUTE_DATABASE),
sender, Config, Config.ComputeConfig, cloudId,
- folderId, scope, probe, ev, cookie));
+ scope, probe, ev, cookie));
return;
}
static const TPermissions availablePermissions {
TPermissions::TPermission::MANAGE_PUBLIC
| TPermissions::TPermission::MANAGE_PRIVATE
+ | TPermissions::TPermission::VIEW_PUBLIC
+ | TPermissions::TPermission::VIEW_PRIVATE
};
- Register(new TRequestActor<FederatedQuery::DeleteBindingRequest,
- TEvControlPlaneStorage::TEvDeleteBindingRequest,
- TEvControlPlaneStorage::TEvDeleteBindingResponse,
- TEvControlPlaneProxy::TEvDeleteBindingResponse>
- (Config, ev->Sender, ev->Cookie, scope, folderId,
- std::move(request), std::move(user), std::move(token),
- ControlPlaneStorageServiceActorId(),
- requestCounters,
- probe,
- ExtractPermissions(ev, availablePermissions),
- cloudId, subjectType, {}, std::move(ev->Get()->ComputeDatabase)));
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope) &&
+ !ev->Get()->OldBindingName) {
+ auto permissions = ExtractPermissions(ev, availablePermissions);
+ Register(MakeDiscoverYDBBindingName(
+ ControlPlaneProxyActorId(), ev, Counters, Config.RequestTimeout, permissions));
+ return;
+ }
+
+ const bool controlPlaneYDBOperationWasPerformed = ev->Get()->ControlPlaneYDBOperationWasPerformed;
+ if (!controlPlaneYDBOperationWasPerformed) {
+ auto shouldReplyWithResponse =
+ !Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope);
+ Register(new TRequestActor<FederatedQuery::DeleteBindingRequest,
+ TEvControlPlaneStorage::TEvDeleteBindingRequest,
+ TEvControlPlaneStorage::TEvDeleteBindingResponse,
+ TEvControlPlaneProxy::TEvDeleteBindingRequest,
+ TEvControlPlaneProxy::TEvDeleteBindingResponse>(
+ ev,
+ Config,
+ ControlPlaneStorageServiceActorId(),
+ requestCounters,
+ probe,
+ availablePermissions,
+ shouldReplyWithResponse));
+ return;
+ }
+
+ if (Config.ComputeConfig.YdbComputeControlPlaneEnabled(ev->Get()->Scope)) {
+ if (!ev->Get()->YDBClient) {
+ ev->Get()->YDBClient = CreateNewTableClient(ev,
+ Config.ComputeConfig,
+ YqSharedResources,
+ CredentialsProviderFactory);
+ }
+
+ if (!ev->Get()->ComputeYDBOperationWasPerformed) {
+ Register(MakeDeleteBindingActor(
+ ControlPlaneProxyActorId(), std::move(ev), Config.RequestTimeout, Counters));
+ return;
+ }
+
+ Send(sender, ev->Get()->Response.release());
+ }
}
void Handle(NMon::TEvHttpInfo::TPtr& ev) {
@@ -3259,16 +2360,22 @@ TActorId ControlPlaneProxyActorId() {
IActor* CreateControlPlaneProxyActor(
const NConfig::TControlPlaneProxyConfig& config,
+ const NConfig::TControlPlaneStorageConfig& storageConfig,
const NConfig::TComputeConfig& computeConfig,
const NConfig::TCommonConfig& commonConfig,
+ const NYql::TS3GatewayConfig& s3Config,
+ const ::NFq::TSigner::TPtr& signer,
const TYqSharedResources::TPtr& yqSharedResources,
const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
const ::NMonitoring::TDynamicCounterPtr& counters,
bool quotaManagerEnabled) {
return new TControlPlaneProxyActor(
config,
+ storageConfig,
computeConfig,
commonConfig,
+ s3Config,
+ signer,
yqSharedResources,
credentialsProviderFactory,
counters,
diff --git a/ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.h b/ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.h
index f624ae9395..70c4c2149e 100644
--- a/ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.h
+++ b/ydb/core/fq/libs/control_plane_proxy/control_plane_proxy.h
@@ -3,8 +3,10 @@
#include <ydb/core/fq/libs/actors/logging/log.h>
#include <ydb/core/fq/libs/config/protos/compute.pb.h>
#include <ydb/core/fq/libs/config/protos/control_plane_proxy.pb.h>
-#include <ydb/library/security/ydb_credentials_provider_factory.h>
#include <ydb/core/fq/libs/shared_resources/shared_resources.h>
+#include <ydb/core/fq/libs/signer/signer.h>
+
+#include <ydb/library/security/ydb_credentials_provider_factory.h>
#include <library/cpp/actors/core/actor.h>
#include <library/cpp/monlib/dynamic_counters/counters.h>
@@ -27,8 +29,11 @@ NActors::TActorId ControlPlaneProxyActorId();
NActors::IActor* CreateControlPlaneProxyActor(
const NConfig::TControlPlaneProxyConfig& config,
+ const NConfig::TControlPlaneStorageConfig& storageConfig,
const NConfig::TComputeConfig& computeConfig,
const NConfig::TCommonConfig& commonConfig,
+ const NYql::TS3GatewayConfig& s3Config,
+ const ::NFq::TSigner::TPtr& signer,
const TYqSharedResources::TPtr& yqSharedResources,
const NKikimr::TYdbCredentialsProviderFactory& credentialsProviderFactory,
const ::NMonitoring::TDynamicCounterPtr& counters,
diff --git a/ydb/core/fq/libs/control_plane_proxy/events/events.h b/ydb/core/fq/libs/control_plane_proxy/events/events.h
index e027245b72..28d61bf2ba 100644
--- a/ydb/core/fq/libs/control_plane_proxy/events/events.h
+++ b/ydb/core/fq/libs/control_plane_proxy/events/events.h
@@ -1,5 +1,9 @@
#pragma once
+#include "type_traits.h"
+
+#include <util/generic/maybe.h>
+#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
#include <ydb/core/fq/libs/control_plane_storage/events/events.h>
#include <ydb/core/fq/libs/quota_manager/events/events.h>
@@ -10,6 +14,7 @@
#include <library/cpp/actors/interconnect/events_local.h>
#include <ydb/library/yql/public/issue/yql_issue.h>
+#include <memory>
namespace NFq {
@@ -63,16 +68,21 @@ struct TEvControlPlaneProxy {
static_assert(EvEnd <= YqEventSubspaceEnd(NFq::TYqEventSubspace::ControlPlaneProxy), "All events must be in their subspace");
- template<typename ProtoMessage, ui32 EventType>
- struct TControlPlaneRequest : NActors::TEventLocal<TControlPlaneRequest<ProtoMessage, EventType>, EventType> {
- TControlPlaneRequest(const TString& folderId,
- const ProtoMessage& request,
- const TString& user,
- const TString& token,
- const TVector<TString>& permissions,
- TMaybe<TQuotaMap> quotas = Nothing(),
- TTenantInfo::TPtr tenantInfo = nullptr)
- : FolderId(folderId)
+ template<class Request>
+ struct TResponseSelector;
+
+ template<typename TDerived, typename ProtoMessage, ui32 EventType>
+ struct TBaseControlPlaneRequest : NActors::TEventLocal<TDerived, EventType> {
+ using TProxyResponse = typename TResponseSelector<TDerived>::type;
+
+ TBaseControlPlaneRequest(const TString& scope,
+ const ProtoMessage& request,
+ const TString& user,
+ const TString& token,
+ const TVector<TString>& permissions,
+ TMaybe<TQuotaMap> quotas = Nothing(),
+ TTenantInfo::TPtr tenantInfo = nullptr)
+ : Scope(scope)
, Request(request)
, User(user)
, Token(token)
@@ -80,10 +90,9 @@ struct TEvControlPlaneProxy {
, Quotas(std::move(quotas))
, TenantInfo(tenantInfo)
, ComputeYDBOperationWasPerformed(false)
- {
- }
+ , ControlPlaneYDBOperationWasPerformed(false) { }
- TString FolderId;
+ TString Scope;
TString CloudId;
ProtoMessage Request;
TString User;
@@ -93,9 +102,16 @@ struct TEvControlPlaneProxy {
TTenantInfo::TPtr TenantInfo;
TString SubjectType;
bool ComputeYDBOperationWasPerformed;
+ bool ControlPlaneYDBOperationWasPerformed;
+ std::unique_ptr<TProxyResponse> Response;
+ std::shared_ptr<NYdb::NTable::TTableClient> YDBClient;
TMaybe<FederatedQuery::Internal::ComputeDatabaseInternal> ComputeDatabase;
+ bool RequestValidationPassed = false;
};
+ template<typename ProtoMessage, ui32 EventType>
+ struct TControlPlaneRequest;
+
template<typename TDerived, typename ProtoMessage, ui32 EventType>
struct TControlPlaneResponse : NActors::TEventLocal<TDerived, EventType> {
TControlPlaneResponse(const ProtoMessage& result, const TString& subjectType)
@@ -188,6 +204,173 @@ struct TEvControlPlaneProxy {
using TEvModifyBindingResponse = TControlPlaneAuditableResponse<FederatedQuery::ModifyBindingResult, FederatedQuery::Binding, EvModifyBindingResponse>;
using TEvDeleteBindingRequest = TControlPlaneRequest<FederatedQuery::DeleteBindingRequest, EvDeleteBindingRequest>;
using TEvDeleteBindingResponse = TControlPlaneAuditableResponse<FederatedQuery::DeleteBindingResult, FederatedQuery::Binding, EvDeleteBindingResponse>;
+
+ template<>
+ struct TResponseSelector<TEvCreateQueryRequest> {
+ using type = TEvCreateQueryResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvListQueriesRequest> {
+ using type = TEvListQueriesResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvDescribeQueryRequest> {
+ using type = TEvDescribeQueryResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvGetQueryStatusRequest> {
+ using type = TEvGetQueryStatusResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvModifyQueryRequest> {
+ using type = TEvModifyQueryResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvDeleteQueryRequest> {
+ using type = TEvDeleteQueryResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvControlQueryRequest> {
+ using type = TEvControlQueryResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvGetResultDataRequest> {
+ using type = TEvGetResultDataResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvListJobsRequest> {
+ using type = TEvListJobsResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvDescribeJobRequest> {
+ using type = TEvDescribeJobResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvCreateConnectionRequest> {
+ using type = TEvCreateConnectionResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvListConnectionsRequest> {
+ using type = TEvListConnectionsResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvDescribeConnectionRequest> {
+ using type = TEvDescribeConnectionResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvModifyConnectionRequest> {
+ using type = TEvModifyConnectionResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvDeleteConnectionRequest> {
+ using type = TEvDeleteConnectionResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvTestConnectionRequest> {
+ using type = TEvTestConnectionResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvCreateBindingRequest> {
+ using type = TEvCreateBindingResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvListBindingsRequest> {
+ using type = TEvListBindingsResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvDescribeBindingRequest> {
+ using type = TEvDescribeBindingResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvModifyBindingRequest> {
+ using type = TEvModifyBindingResponse;
+ };
+ template<>
+ struct TResponseSelector<TEvDeleteBindingRequest> {
+ using type = TEvDeleteBindingResponse;
+ };
+
+ template<typename ProtoMessage, ui32 EventType>
+ struct TControlPlaneRequest :
+ public TBaseControlPlaneRequest<TControlPlaneRequest<ProtoMessage, EventType>,
+ ProtoMessage,
+ EventType> {
+ using TBaseControlPlaneRequest<TControlPlaneRequest<ProtoMessage, EventType>,
+ ProtoMessage,
+ EventType>::TBaseControlPlaneRequest;
+ };
+
+ template<>
+ struct TControlPlaneRequest<FederatedQuery::ModifyConnectionRequest, EvModifyConnectionRequest> :
+ public TBaseControlPlaneRequest<TEvModifyConnectionRequest,
+ FederatedQuery::ModifyConnectionRequest,
+ EvModifyConnectionRequest> {
+ using TBaseControlPlaneRequest<
+ TControlPlaneRequest<FederatedQuery::ModifyConnectionRequest, EvModifyConnectionRequest>,
+ FederatedQuery::ModifyConnectionRequest,
+ EvModifyConnectionRequest>::TBaseControlPlaneRequest;
+
+ TMaybe<FederatedQuery::ConnectionContent> OldConnectionContent;
+ // ListBindings
+ bool OldBindingNamesDiscoveryFinished = false;
+ TMaybe<TString> NextListingBindingsToken;
+ std::vector<TString> OldBindingIds;
+ // DescribeEachBinding
+ std::vector<FederatedQuery::BindingContent> OldBindingContents;
+ };
+
+ template<>
+ struct TControlPlaneRequest<FederatedQuery::DeleteConnectionRequest, EvDeleteConnectionRequest> :
+ public TBaseControlPlaneRequest<TEvDeleteConnectionRequest,
+ FederatedQuery::DeleteConnectionRequest,
+ EvDeleteConnectionRequest> {
+ using TBaseControlPlaneRequest<
+ TControlPlaneRequest<FederatedQuery::DeleteConnectionRequest, EvDeleteConnectionRequest>,
+ FederatedQuery::DeleteConnectionRequest,
+ EvDeleteConnectionRequest>::TBaseControlPlaneRequest;
+
+ TMaybe<FederatedQuery::ConnectionContent> ConnectionContent;
+ };
+
+ template<>
+ struct TControlPlaneRequest<FederatedQuery::CreateBindingRequest, EvCreateBindingRequest> :
+ public TBaseControlPlaneRequest<TEvCreateBindingRequest,
+ FederatedQuery::CreateBindingRequest,
+ EvCreateBindingRequest> {
+ using TBaseControlPlaneRequest<
+ TControlPlaneRequest<FederatedQuery::CreateBindingRequest, EvCreateBindingRequest>,
+ FederatedQuery::CreateBindingRequest,
+ EvCreateBindingRequest>::TBaseControlPlaneRequest;
+
+ TMaybe<TString> ConnectionName;
+ };
+
+ template<>
+ struct TControlPlaneRequest<FederatedQuery::ModifyBindingRequest, EvModifyBindingRequest> :
+ public TBaseControlPlaneRequest<TEvModifyBindingRequest,
+ FederatedQuery::ModifyBindingRequest,
+ EvModifyBindingRequest> {
+ using TBaseControlPlaneRequest<
+ TControlPlaneRequest<FederatedQuery::ModifyBindingRequest, EvModifyBindingRequest>,
+ FederatedQuery::ModifyBindingRequest,
+ EvModifyBindingRequest>::TBaseControlPlaneRequest;
+
+ TMaybe<FederatedQuery::BindingContent> OldBindingContent;
+ TMaybe<TString> ConnectionName;
+ };
+
+ template<>
+ struct TControlPlaneRequest<FederatedQuery::DeleteBindingRequest, EvDeleteBindingRequest> :
+ public TBaseControlPlaneRequest<TEvDeleteBindingRequest,
+ FederatedQuery::DeleteBindingRequest,
+ EvDeleteBindingRequest> {
+ using TBaseControlPlaneRequest<
+ TControlPlaneRequest<FederatedQuery::DeleteBindingRequest, EvDeleteBindingRequest>,
+ FederatedQuery::DeleteBindingRequest,
+ EvDeleteBindingRequest>::TBaseControlPlaneRequest;
+
+ TMaybe<TString> OldBindingName;
+ };
};
}
diff --git a/ydb/core/fq/libs/control_plane_proxy/events/type_traits.h b/ydb/core/fq/libs/control_plane_proxy/events/type_traits.h
new file mode 100644
index 0000000000..029c34cfcc
--- /dev/null
+++ b/ydb/core/fq/libs/control_plane_proxy/events/type_traits.h
@@ -0,0 +1,100 @@
+#pragma once
+
+#include <ydb/public/api/protos/draft/fq.pb.h>
+
+namespace NFq {
+namespace NEvControlPlaneProxy {
+
+template<class RequestProtoMessage>
+struct TResponseProtoMessage;
+
+template<>
+struct TResponseProtoMessage<FederatedQuery::CreateQueryRequest> {
+ using type = FederatedQuery::CreateQueryResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::ListQueriesRequest> {
+ using type = FederatedQuery::ListQueriesResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::DescribeQueryRequest> {
+ using type = FederatedQuery::DescribeQueryResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::GetQueryStatusRequest> {
+ using type = FederatedQuery::GetQueryStatusResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::ModifyQueryRequest> {
+ using type = FederatedQuery::ModifyQueryResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::DeleteQueryRequest> {
+ using type = FederatedQuery::DeleteQueryResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::ControlQueryRequest> {
+ using type = FederatedQuery::ControlQueryResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::GetResultDataRequest> {
+ using type = FederatedQuery::GetResultDataResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::ListJobsRequest> {
+ using type = FederatedQuery::ListJobsResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::DescribeJobRequest> {
+ using type = FederatedQuery::DescribeJobResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::CreateConnectionRequest> {
+ using type = FederatedQuery::CreateConnectionResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::ListConnectionsRequest> {
+ using type = FederatedQuery::ListConnectionsResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::DescribeConnectionRequest> {
+ using type = FederatedQuery::DescribeConnectionResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::ModifyConnectionRequest> {
+ using type = FederatedQuery::ModifyConnectionResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::DeleteConnectionRequest> {
+ using type = FederatedQuery::DeleteConnectionResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::TestConnectionRequest> {
+ using type = FederatedQuery::TestConnectionResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::CreateBindingRequest> {
+ using type = FederatedQuery::CreateBindingResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::ListBindingsRequest> {
+ using type = FederatedQuery::ListBindingsResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::DescribeBindingRequest> {
+ using type = FederatedQuery::DescribeBindingResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::ModifyBindingRequest> {
+ using type = FederatedQuery::ModifyBindingResult;
+};
+template<>
+struct TResponseProtoMessage<FederatedQuery::DeleteBindingRequest> {
+ using type = FederatedQuery::DeleteBindingResult;
+};
+
+template<class Request>
+struct ResponseSelector;
+
+} // namespace NEvControlPlaneProxy
+} // namespace NFq
diff --git a/ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp b/ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp
index f0aeea941b..04c5fd1495 100644
--- a/ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp
+++ b/ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp
@@ -89,8 +89,10 @@ public:
struct TTestBootstrap {
const TDuration RequestTimeout = TDuration::Seconds(10);
NConfig::TControlPlaneProxyConfig Config;
+ NConfig::TControlPlaneStorageConfig StorageConfig;
NConfig::TComputeConfig ComputeConfig;
NConfig::TCommonConfig CommonConfig;
+ NYql::TS3GatewayConfig S3Config;
TRuntimePtr Runtime;
TGrabActor* MetaStorageGrab;
@@ -147,7 +149,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::ListQueriesRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvListQueriesRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvListQueriesRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -157,7 +159,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::DescribeQueryRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvDescribeQueryRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvDescribeQueryRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -167,7 +169,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::GetQueryStatusRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvGetQueryStatusRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvGetQueryStatusRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -177,7 +179,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::ModifyQueryRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvModifyQueryRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvModifyQueryRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -187,7 +189,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::DeleteQueryRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvDeleteQueryRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvDeleteQueryRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -197,7 +199,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::ControlQueryRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvControlQueryRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvControlQueryRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -207,7 +209,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::GetResultDataRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvGetResultDataRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvGetResultDataRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -228,7 +230,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::DescribeJobRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvDescribeJobRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvDescribeJobRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -246,7 +248,7 @@ struct TTestBootstrap {
->set_id(serviceAccountId);
}
- auto request = std::make_unique<TEvControlPlaneProxy::TEvCreateConnectionRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvCreateConnectionRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -256,7 +258,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::ListConnectionsRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvListConnectionsRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvListConnectionsRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -266,7 +268,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::DescribeConnectionRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvDescribeConnectionRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvDescribeConnectionRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -284,7 +286,7 @@ struct TTestBootstrap {
->set_id(serviceAccountId);
}
- auto request = std::make_unique<TEvControlPlaneProxy::TEvModifyConnectionRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvModifyConnectionRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -294,7 +296,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::DeleteConnectionRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvDeleteConnectionRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvDeleteConnectionRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -311,7 +313,7 @@ struct TTestBootstrap {
->set_id(serviceAccountId);
}
- auto request = std::make_unique<TEvControlPlaneProxy::TEvTestConnectionRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvTestConnectionRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -321,7 +323,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::CreateBindingRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvCreateBindingRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvCreateBindingRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -331,7 +333,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::ListBindingsRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvListBindingsRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvListBindingsRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -341,7 +343,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::DescribeBindingRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvDescribeBindingRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvDescribeBindingRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -351,7 +353,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::ModifyBindingRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvModifyBindingRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvModifyBindingRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -361,7 +363,7 @@ struct TTestBootstrap {
TActorId sender = Runtime->AllocateEdgeActor();
FederatedQuery::DeleteBindingRequest proto;
- auto request = std::make_unique<TEvControlPlaneProxy::TEvDeleteBindingRequest>("my_folder", proto, user, "", permissions);
+ auto request = std::make_unique<TEvControlPlaneProxy::TEvDeleteBindingRequest>("yandexcloud://my_folder", proto, user, "", permissions);
Runtime->Send(new IEventHandle(ControlPlaneProxyActorId(), sender, request.release()));
Runtime->DispatchEvents({}, TDuration::Zero());
}
@@ -382,8 +384,11 @@ private:
runtime->SetLogPriority(NKikimrServices::STREAMS_CONTROL_PLANE_SERVICE, NLog::PRI_DEBUG);
auto controlPlaneProxy = CreateControlPlaneProxyActor(
Config,
+ StorageConfig,
ComputeConfig,
CommonConfig,
+ S3Config,
+ nullptr,
NFq::TYqSharedResources::TPtr{},
NKikimr::TYdbCredentialsProviderFactory(nullptr),
MakeIntrusive<::NMonitoring::TDynamicCounters>(),
@@ -2467,8 +2472,8 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyCheckNegativePermissionsSuccess) {
auto event = request->Get<TEvControlPlaneStorage::TEvModifyConnectionRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PRIVATE));
@@ -2486,8 +2491,8 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyCheckNegativePermissionsSuccess) {
auto event = request->Get<TEvControlPlaneStorage::TEvModifyConnectionRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PRIVATE));
@@ -2505,8 +2510,8 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyCheckNegativePermissionsSuccess) {
auto event = request->Get<TEvControlPlaneStorage::TEvDeleteConnectionRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PRIVATE));
@@ -2619,8 +2624,8 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyCheckNegativePermissionsSuccess) {
auto event = request->Get<TEvControlPlaneStorage::TEvModifyBindingRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PRIVATE));
@@ -2638,8 +2643,8 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyCheckNegativePermissionsSuccess) {
auto event = request->Get<TEvControlPlaneStorage::TEvDeleteBindingRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PRIVATE));
@@ -2930,8 +2935,8 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyShouldPassHids) {
auto event = request->Get<TEvControlPlaneStorage::TEvModifyConnectionRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PRIVATE));
@@ -2948,8 +2953,8 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyShouldPassHids) {
auto event = request->Get<TEvControlPlaneStorage::TEvDeleteConnectionRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PRIVATE));
@@ -3038,8 +3043,8 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyShouldPassHids) {
auto event = request->Get<TEvControlPlaneStorage::TEvModifyBindingRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PRIVATE));
@@ -3056,8 +3061,8 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyShouldPassHids) {
auto event = request->Get<TEvControlPlaneStorage::TEvDeleteBindingRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PRIVATE));
@@ -3338,7 +3343,7 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyShouldPassHids) {
auto event = request->Get<TEvControlPlaneStorage::TEvModifyConnectionRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
@@ -3356,7 +3361,7 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyShouldPassHids) {
auto event = request->Get<TEvControlPlaneStorage::TEvDeleteConnectionRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
@@ -3446,7 +3451,7 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyShouldPassHids) {
auto event = request->Get<TEvControlPlaneStorage::TEvModifyBindingRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
@@ -3464,7 +3469,7 @@ Y_UNIT_TEST_SUITE(TControlPlaneProxyShouldPassHids) {
auto event = request->Get<TEvControlPlaneStorage::TEvDeleteBindingRequest>();
auto permissions = event->Permissions;
UNIT_ASSERT_VALUES_EQUAL(event->Scope, "yandexcloud://my_folder");
- UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PUBLIC));
+ UNIT_ASSERT(permissions.Check(TPermissions::VIEW_PUBLIC));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_PRIVATE));
UNIT_ASSERT(!permissions.Check(TPermissions::VIEW_AST));
UNIT_ASSERT(permissions.Check(TPermissions::MANAGE_PUBLIC));
diff --git a/ydb/core/fq/libs/control_plane_proxy/utils.h b/ydb/core/fq/libs/control_plane_proxy/utils.h
index 074d459645..51c5abdf84 100644
--- a/ydb/core/fq/libs/control_plane_proxy/utils.h
+++ b/ydb/core/fq/libs/control_plane_proxy/utils.h
@@ -11,7 +11,7 @@ inline TString GetServiceAccountId(const FederatedQuery::IamAuth& auth) {
}
template<typename T>
-TString ExtractServiceAccountIdImpl2(const T& setting) {
+TString ExtractServiceAccountIdWithConnection(const T& setting) {
switch (setting.connection_case()) {
case FederatedQuery::ConnectionSetting::kYdbDatabase: {
return GetServiceAccountId(setting.ydb_database().auth());
@@ -28,6 +28,9 @@ TString ExtractServiceAccountIdImpl2(const T& setting) {
case FederatedQuery::ConnectionSetting::kClickhouseCluster: {
return GetServiceAccountId(setting.clickhouse_cluster().auth());
}
+ case FederatedQuery::ConnectionSetting::kPostgresqlCluster: {
+ return GetServiceAccountId(setting.postgresql_cluster().auth());
+ }
// Do not replace with default. Adding a new connection should cause a compilation error
case FederatedQuery::ConnectionSetting::CONNECTION_NOT_SET:
break;
@@ -36,15 +39,15 @@ TString ExtractServiceAccountIdImpl2(const T& setting) {
}
inline TString ExtractServiceAccountId(const FederatedQuery::TestConnectionRequest& c) {
- return ExtractServiceAccountIdImpl2(c.setting());
+ return ExtractServiceAccountIdWithConnection(c.setting());
}
inline TString ExtractServiceAccountId(const FederatedQuery::CreateConnectionRequest& c) {
- return ExtractServiceAccountIdImpl2(c.content().setting());
+ return ExtractServiceAccountIdWithConnection(c.content().setting());
}
inline TString ExtractServiceAccountId(const FederatedQuery::ModifyConnectionRequest& c) {
- return ExtractServiceAccountIdImpl2(c.content().setting());
+ return ExtractServiceAccountIdWithConnection(c.content().setting());
}
template<typename T>
diff --git a/ydb/core/fq/libs/control_plane_proxy/ya.make b/ydb/core/fq/libs/control_plane_proxy/ya.make
index ebcb92eada..44f5c3c634 100644
--- a/ydb/core/fq/libs/control_plane_proxy/ya.make
+++ b/ydb/core/fq/libs/control_plane_proxy/ya.make
@@ -14,6 +14,7 @@ PEERDIR(
ydb/core/fq/libs/compute/ydb
ydb/core/fq/libs/compute/ydb/control_plane
ydb/core/fq/libs/control_plane_config
+ ydb/core/fq/libs/control_plane_proxy/actors
ydb/core/fq/libs/control_plane_proxy/events
ydb/core/fq/libs/control_plane_storage
ydb/core/fq/libs/rate_limiter/events
@@ -30,6 +31,7 @@ YQL_LAST_ABI_VERSION()
END()
RECURSE(
+ actors
events
)
diff --git a/ydb/core/fq/libs/control_plane_storage/events/events.h b/ydb/core/fq/libs/control_plane_storage/events/events.h
index bc3f49e3eb..bc47f47558 100644
--- a/ydb/core/fq/libs/control_plane_storage/events/events.h
+++ b/ydb/core/fq/libs/control_plane_storage/events/events.h
@@ -168,6 +168,8 @@ struct TEvControlPlaneStorage {
EvCreateDatabaseResponse,
EvDescribeDatabaseRequest,
EvDescribeDatabaseResponse,
+ EvModifyDatabaseRequest,
+ EvModifyDatabaseResponse,
EvEnd,
};
@@ -631,7 +633,9 @@ struct TEvControlPlaneStorage {
size_t GetByteSize() const {
return sizeof(*this)
- + Scope.Size();
+ + CloudId.Size()
+ + Scope.Size()
+ + Record.ByteSizeLong();
}
TString CloudId;
@@ -645,9 +649,7 @@ struct TEvControlPlaneStorage {
explicit TEvCreateDatabaseResponse()
{}
- explicit TEvCreateDatabaseResponse(
- const NYql::TIssues& issues
- )
+ explicit TEvCreateDatabaseResponse(const NYql::TIssues& issues)
: Issues(issues)
{}
@@ -672,6 +674,8 @@ struct TEvControlPlaneStorage {
size_t GetByteSize() const {
return sizeof(*this)
+ + Request.ByteSizeLong()
+ + CloudId.Size()
+ Scope.Size();
}
@@ -683,8 +687,7 @@ struct TEvControlPlaneStorage {
struct TEvDescribeDatabaseResponse : NActors::TEventLocal<TEvDescribeDatabaseResponse, EvDescribeDatabaseResponse> {
static constexpr bool Auditable = false;
- explicit TEvDescribeDatabaseResponse(
- const FederatedQuery::Internal::ComputeDatabaseInternal& record)
+ explicit TEvDescribeDatabaseResponse(const FederatedQuery::Internal::ComputeDatabaseInternal& record)
: Record(record)
{}
@@ -705,6 +708,45 @@ struct TEvControlPlaneStorage {
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
};
+
+ struct TEvModifyDatabaseRequest : NActors::TEventLocal<TEvModifyDatabaseRequest, EvModifyDatabaseRequest> {
+ TEvModifyDatabaseRequest() = default;
+
+ explicit TEvModifyDatabaseRequest(const TString& cloudId, const TString& scope)
+ : CloudId(cloudId)
+ , Scope(scope)
+ {}
+
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + CloudId.Size()
+ + Scope.Size();
+ }
+
+ TString CloudId;
+ TString Scope;
+ TMaybe<bool> Synchronized;
+ };
+
+ struct TEvModifyDatabaseResponse : NActors::TEventLocal<TEvModifyDatabaseResponse, EvModifyDatabaseResponse> {
+ static constexpr bool Auditable = false;
+
+ explicit TEvModifyDatabaseResponse()
+ {}
+
+ explicit TEvModifyDatabaseResponse(const NYql::TIssues& issues)
+ : Issues(issues)
+ {}
+
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
+ NYql::TIssues Issues;
+ TDebugInfoPtr DebugInfo;
+ };
};
}
diff --git a/ydb/core/fq/libs/control_plane_storage/internal/task_get.cpp b/ydb/core/fq/libs/control_plane_storage/internal/task_get.cpp
index cda14c2a5c..a778a751f8 100644
--- a/ydb/core/fq/libs/control_plane_storage/internal/task_get.cpp
+++ b/ydb/core/fq/libs/control_plane_storage/internal/task_get.cpp
@@ -52,6 +52,9 @@ struct TTaskInternal {
case FederatedQuery::ConnectionSetting::kClickhouseCluster: {
return GetServiceAccountId(c.content().setting().clickhouse_cluster().auth());
}
+ case FederatedQuery::ConnectionSetting::kPostgresqlCluster: {
+ return GetServiceAccountId(c.content().setting().postgresql_cluster().auth());
+ }
// Do not replace with default. Adding a new connection should cause a compilation error
case FederatedQuery::ConnectionSetting::CONNECTION_NOT_SET:
break;
@@ -196,6 +199,8 @@ std::tuple<TString, NYdb::TParams, std::function<std::pair<TString, NYdb::TParam
throw TCodeLineException(TIssuesIds::INTERNAL_ERROR) << "Error parsing proto message for query internal. Please contact internal support";
}
+ *task.Internal.mutable_result_ttl() = NProtoInterop::CastToProto(resultSetsTtl);
+
if (disableCurrentIam) {
task.Internal.clear_token();
}
@@ -497,6 +502,7 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvGetTaskRequ
newTask->set_execution_id(task.Internal.execution_id());
newTask->set_operation_id(task.Internal.operation_id());
*newTask->mutable_compute_connection() = task.Internal.compute_connection();
+ *newTask->mutable_result_ttl() = task.Internal.result_ttl();
}
return result;
diff --git a/ydb/core/fq/libs/control_plane_storage/message_builders.h b/ydb/core/fq/libs/control_plane_storage/message_builders.h
index 5770cddce2..ed5c3975c5 100644
--- a/ydb/core/fq/libs/control_plane_storage/message_builders.h
+++ b/ydb/core/fq/libs/control_plane_storage/message_builders.h
@@ -449,21 +449,39 @@ public:
return *this;
}
- TCreateConnectionBuilder& CreateClickHouse(const TString& databaseId, const TString& login, const TString& password, const TString& serviceAccount)
- {
- auto& ch = *Request.mutable_content()->mutable_setting()->mutable_clickhouse_cluster();
+ template <typename TConnection>
+ TCreateConnectionBuilder& CreateGeneric(
+ TConnection& conn,
+ const TString& databaseId,
+ const TString& login,
+ const TString& password,
+ const TString& serviceAccount)
+ {
+ // auto& ch = *Request.mutable_content()->mutable_setting()->mutable_clickhouse_cluster();
if (serviceAccount) {
- ch.mutable_auth()->mutable_service_account()->set_id(serviceAccount);
+ conn.mutable_auth()->mutable_service_account()->set_id(serviceAccount);
} else {
- ch.mutable_auth()->mutable_current_iam();
+ conn.mutable_auth()->mutable_current_iam();
}
- ch.set_database_id(databaseId);
- ch.set_login(login);
- ch.set_password(password);
+ conn.set_database_id(databaseId);
+ conn.set_login(login);
+ conn.set_password(password);
return *this;
}
+ TCreateConnectionBuilder& CreateClickHouse(const TString& databaseId, const TString& login, const TString& password, const TString& serviceAccount)
+ {
+ auto& conn = *Request.mutable_content()->mutable_setting()->mutable_clickhouse_cluster();
+ return CreateGeneric(conn, databaseId, login, password, serviceAccount);
+ }
+
+ TCreateConnectionBuilder& CreatePostgreSQL(const TString& databaseId, const TString& login, const TString& password, const TString& serviceAccount)
+ {
+ auto& conn = *Request.mutable_content()->mutable_setting()->mutable_postgresql_cluster();
+ return CreateGeneric(conn, databaseId, login, password, serviceAccount);
+ }
+
TCreateConnectionBuilder& CreateObjectStorage(const TString& bucket, const TString& serviceAccount)
{
auto& os = *Request.mutable_content()->mutable_setting()->mutable_object_storage();
diff --git a/ydb/core/fq/libs/control_plane_storage/probes.h b/ydb/core/fq/libs/control_plane_storage/probes.h
index c0f1881cc2..4755e42658 100644
--- a/ydb/core/fq/libs/control_plane_storage/probes.h
+++ b/ydb/core/fq/libs/control_plane_storage/probes.h
@@ -115,6 +115,10 @@
GROUPS(), \
TYPES(TString, TString, TDuration, i64, bool), \
NAMES("scope", "user", "latencyMs", "size", "success")) \
+ PROBE(ModifyDatabaseRequest, \
+ GROUPS(), \
+ TYPES(TString, TString, TDuration, i64, bool), \
+ NAMES("scope", "user", "latencyMs", "size", "success")) \
// YQ_CONTROL_PLANE_STORAGE_PROVIDER
diff --git a/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto b/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto
index 5d30311219..1d7f9f3b2f 100644
--- a/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto
+++ b/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto
@@ -48,6 +48,7 @@ message QueryInternal {
string operation_id = 24;
string execution_id = 25;
NFq.NConfig.TYdbStorageConfig compute_connection = 26;
+ google.protobuf.Duration result_ttl = 27;
}
message JobInternal {
@@ -67,4 +68,5 @@ message BindingInternal {
message ComputeDatabaseInternal {
string id = 1;
NFq.NConfig.TYdbStorageConfig connection = 2;
+ bool synchronized = 3;
}
diff --git a/ydb/core/fq/libs/control_plane_storage/request_validators.cpp b/ydb/core/fq/libs/control_plane_storage/request_validators.cpp
index 82768fc6fb..ca21f6f086 100644
--- a/ydb/core/fq/libs/control_plane_storage/request_validators.cpp
+++ b/ydb/core/fq/libs/control_plane_storage/request_validators.cpp
@@ -109,7 +109,44 @@ TMap<TString, NYql::NUdf::EDataSlot> GetDataSlotColumns(const FederatedQuery::Sc
}
-NYql::TIssues ValidateConnectionSetting(const FederatedQuery::ConnectionSetting& setting, const TSet<FederatedQuery::ConnectionSetting::ConnectionCase>& availableConnections, bool disableCurrentIam, bool clickHousePasswordRequire) {
+template <typename TConnection>
+void ValidateGenericConnectionSetting(
+ const TConnection& connection,
+ const TString& dataSourceKind,
+ bool disableCurrentIam,
+ bool passwordRequired,
+ NYql::TIssues& issues
+) {
+ if (!connection.has_auth() || connection.auth().identity_case() == FederatedQuery::IamAuth::IDENTITY_NOT_SET) {
+ auto msg = TStringBuilder() << "content.setting." << dataSourceKind << "_cluster.auth is not specified";
+ issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, msg));
+ }
+
+ if (connection.auth().identity_case() == FederatedQuery::IamAuth::kCurrentIam && disableCurrentIam) {
+ issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, "current iam authorization is disabled"));
+ }
+
+ if (!connection.database_id() && !(connection.host() && connection.port())) {
+ auto msg = TStringBuilder() << "content.setting.clickhouse_cluster.{database_id or host,port} field is not specified";
+ issues.AddIssue( MakeErrorIssue(TIssuesIds::BAD_REQUEST,msg));
+ }
+
+ if (!connection.login()) {
+ auto msg = TStringBuilder() << "content.setting." << dataSourceKind << "_cluster.login is not specified";
+ issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, msg));
+ }
+
+ if (!connection.password() && passwordRequired) {
+ auto msg = TStringBuilder() << "content.setting." << dataSourceKind << "_cluster.password is not specified";
+ issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, msg));
+ }
+}
+
+NYql::TIssues ValidateConnectionSetting(
+ const FederatedQuery::ConnectionSetting &setting,
+ const TSet<FederatedQuery::ConnectionSetting::ConnectionCase> &availableConnections,
+ bool disableCurrentIam,
+ bool passwordRequired) {
NYql::TIssues issues;
if (!availableConnections.contains(setting.connection_case())) {
issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, "connection of the specified type is disabled"));
@@ -132,26 +169,11 @@ NYql::TIssues ValidateConnectionSetting(const FederatedQuery::ConnectionSetting&
break;
}
case FederatedQuery::ConnectionSetting::kClickhouseCluster: {
- const FederatedQuery::ClickHouseCluster ch = setting.clickhouse_cluster();
- if (!ch.has_auth() || ch.auth().identity_case() == FederatedQuery::IamAuth::IDENTITY_NOT_SET) {
- issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, "content.setting.clickhouse_cluster.auth field is not specified"));
- }
-
- if (ch.auth().identity_case() == FederatedQuery::IamAuth::kCurrentIam && disableCurrentIam) {
- issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, "current iam authorization is disabled"));
- }
-
- if (!ch.database_id() && !(ch.host() && ch.port())) {
- issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, "content.setting.clickhouse_cluster.{database_id or host,port} field is not specified"));
- }
-
- if (!ch.login()) {
- issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, "content.setting.clickhouse_cluster.login field is not specified"));
- }
-
- if (!ch.password() && clickHousePasswordRequire) {
- issues.AddIssue(MakeErrorIssue(TIssuesIds::BAD_REQUEST, "content.setting.clickhouse_cluster.password field is not specified"));
- }
+ ValidateGenericConnectionSetting(setting.clickhouse_cluster(), "clickhouse", disableCurrentIam, passwordRequired, issues);
+ break;
+ }
+ case FederatedQuery::ConnectionSetting::kPostgresqlCluster: {
+ ValidateGenericConnectionSetting(setting.postgresql_cluster(), "postgresql", disableCurrentIam, passwordRequired, issues);
break;
}
case FederatedQuery::ConnectionSetting::kObjectStorage: {
diff --git a/ydb/core/fq/libs/control_plane_storage/request_validators.h b/ydb/core/fq/libs/control_plane_storage/request_validators.h
index 132a8a91b2..c770cb1454 100644
--- a/ydb/core/fq/libs/control_plane_storage/request_validators.h
+++ b/ydb/core/fq/libs/control_plane_storage/request_validators.h
@@ -153,10 +153,19 @@ NYql::TIssues ValidateBinding(const T& ev, size_t maxSize, const TSet<FederatedQ
return issues;
}
-NYql::TIssues ValidateConnectionSetting(const FederatedQuery::ConnectionSetting& setting, const TSet<FederatedQuery::ConnectionSetting::ConnectionCase>& availableConnections, bool disableCurrentIam, bool clickHousePasswordRequire = true);
+NYql::TIssues ValidateConnectionSetting(
+ const FederatedQuery::ConnectionSetting& setting,
+ const TSet<FederatedQuery::ConnectionSetting::ConnectionCase>& availableConnections,
+ bool disableCurrentIam,
+ bool passwordRequired = true);
template<typename T>
-NYql::TIssues ValidateConnection(const T& ev, size_t maxSize, const TSet<FederatedQuery::ConnectionSetting::ConnectionCase>& availableConnections, bool disableCurrentIam, bool clickHousePasswordRequire = true)
+NYql::TIssues ValidateConnection(
+ const T& ev,
+ size_t maxSize,
+ const TSet<FederatedQuery::ConnectionSetting::ConnectionCase>& availableConnections,
+ bool disableCurrentIam,
+ bool passwordRequired = true)
{
const auto& request = ev->Get()->Request;
NYql::TIssues issues = ValidateEvent(ev, maxSize);
@@ -179,7 +188,7 @@ NYql::TIssues ValidateConnection(const T& ev, size_t maxSize, const TSet<Federat
}
const FederatedQuery::ConnectionSetting& setting = content.setting();
- issues.AddIssues(ValidateConnectionSetting(setting, availableConnections, disableCurrentIam, clickHousePasswordRequire));
+ issues.AddIssues(ValidateConnectionSetting(setting, availableConnections, disableCurrentIam, passwordRequired));
return issues;
}
diff --git a/ydb/core/fq/libs/control_plane_storage/validators.cpp b/ydb/core/fq/libs/control_plane_storage/validators.cpp
index 9a05d8953d..c1296ba8e0 100644
--- a/ydb/core/fq/libs/control_plane_storage/validators.cpp
+++ b/ydb/core/fq/libs/control_plane_storage/validators.cpp
@@ -90,8 +90,13 @@ TValidationQuery CreateModifyUniqueNameValidator(const TString& tableName,
ythrow TCodeLineException(TIssuesIds::INTERNAL_ERROR) << "Not valid number of lines, one is expected. Please contact internal support";
}
- FederatedQuery::Acl::Visibility oldVisibility = static_cast<FederatedQuery::Acl::Visibility>(parser.ColumnParser(VISIBILITY_COLUMN_NAME).GetOptionalInt64().GetOrElse(FederatedQuery::Acl::VISIBILITY_UNSPECIFIED));
- TString oldName = parser.ColumnParser(NAME_COLUMN_NAME).GetOptionalString().GetOrElse("");
+ FederatedQuery::Acl::Visibility oldVisibility =
+ static_cast<FederatedQuery::Acl::Visibility>(
+ parser.ColumnParser(VISIBILITY_COLUMN_NAME)
+ .GetOptionalInt64()
+ .GetOrElse(FederatedQuery::Acl::VISIBILITY_UNSPECIFIED));
+ TString oldName =
+ parser.ColumnParser(NAME_COLUMN_NAME).GetOptionalString().GetOrElse("");
if (oldVisibility == visibility && oldName == name) {
return false;
diff --git a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp
index bba5464128..3e134579bd 100644
--- a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp
+++ b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp
@@ -82,7 +82,16 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvCreateBindi
" ($scope, $binding_id, $connection_id, $user, $visibility, $name, $binding, $revision, $internal);"
);
- auto validatorName = CreateUniqueNameValidator(
+ auto connectionNameUniqueValidator = CreateUniqueNameValidator(
+ CONNECTIONS_TABLE_NAME,
+ content.acl().visibility(),
+ scope,
+ content.name(),
+ user,
+ "Connection with the same name already exists. Please choose another name",
+ YdbConnection->TablePathPrefix);
+
+ auto bindingNameUniqueValidator = CreateUniqueNameValidator(
BINDINGS_TABLE_NAME,
content.acl().visibility(),
scope,
@@ -119,7 +128,8 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvCreateBindi
validators.push_back(CreateIdempotencyKeyValidator(scope, idempotencyKey, response, YdbConnection->TablePathPrefix));
}
- validators.push_back(validatorName);
+ validators.push_back(connectionNameUniqueValidator);
+ validators.push_back(bindingNameUniqueValidator);
validators.push_back(validatorCountBindings);
validators.push_back(validatorConnectionExists);
validators.push_back(connectionValidator);
@@ -540,7 +550,18 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvModifyBindi
}
{
- auto modifyUniqueNameValidator = CreateModifyUniqueNameValidator(
+ auto connectionNameUniqueValidator = CreateUniqueNameValidator(
+ CONNECTIONS_TABLE_NAME,
+ request.content().acl().visibility(),
+ scope,
+ request.content().name(),
+ user,
+ "Connection with the same name already exists. Please choose another name",
+ YdbConnection->TablePathPrefix);
+ validators.push_back(connectionNameUniqueValidator);
+ }
+ {
+ auto bindingNameUniqueValidator = CreateModifyUniqueNameValidator(
BINDINGS_TABLE_NAME,
BINDING_ID_COLUMN_NAME,
request.content().acl().visibility(),
@@ -550,7 +571,7 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvModifyBindi
bindingId,
"Binding with the same name already exists. Please choose another name",
YdbConnection->TablePathPrefix);
- validators.push_back(modifyUniqueNameValidator);
+ validators.push_back(bindingNameUniqueValidator);
}
const auto readQuery = readQueryBuilder.Build();
diff --git a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_compute_database.cpp b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_compute_database.cpp
index 6b0d32b32f..4b0d11813a 100644
--- a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_compute_database.cpp
+++ b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_compute_database.cpp
@@ -115,4 +115,76 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvDescribeDat
});
}
+void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvModifyDatabaseRequest::TPtr& ev)
+{
+ TInstant startTime = TInstant::Now();
+ const TEvControlPlaneStorage::TEvModifyDatabaseRequest& event = *ev->Get();
+ const TString cloudId = event.CloudId;
+ const TString scope = event.Scope;
+ TRequestCounters requestCounters = Counters.GetCounters(cloudId, scope, RTS_MODIFY_DATABASE, RTC_MODIFY_DATABASE);
+ requestCounters.IncInFly();
+ requestCounters.Common->RequestBytes->Add(event.GetByteSize());
+ const auto byteSize = event.GetByteSize();
+
+ CPS_LOG_T(MakeLogPrefix(scope, "internal", scope)
+ << "ModifyDatabaseRequest");
+
+ TSqlQueryBuilder queryBuilder(YdbConnection->TablePathPrefix, "ModifyDatabase");
+ queryBuilder.AddString("scope", scope);
+ queryBuilder.AddText(
+ "SELECT `" INTERNAL_COLUMN_NAME "` FROM `" COMPUTE_DATABASES_TABLE_NAME "`\n"
+ "WHERE `" SCOPE_COLUMN_NAME "` = $scope;"
+ );
+
+ auto prepareParams = [=, synchronized = ev->Get()->Synchronized](const TVector<TResultSet>& resultSets) {
+ if (resultSets.size() != 1) {
+ ythrow TCodeLineException(TIssuesIds::INTERNAL_ERROR) << "Result set size is not equal to 1 but equal " << resultSets.size() << ". Please contact internal support";
+ }
+
+ TResultSetParser parser(resultSets.front());
+ if (!parser.TryNextRow()) {
+ ythrow TCodeLineException(TIssuesIds::ACCESS_DENIED) << "Database does not exist or permission denied. Please check the id database or your access rights";
+ }
+
+ FederatedQuery::Internal::ComputeDatabaseInternal result;
+ if (!result.ParseFromString(*parser.ColumnParser(INTERNAL_COLUMN_NAME).GetOptionalString())) {
+ ythrow TCodeLineException(TIssuesIds::INTERNAL_ERROR) << "Error parsing proto message for internal compute database. Please contact internal support";
+ }
+
+ if (synchronized) {
+ result.set_synchronized(*synchronized);
+ }
+
+ TSqlQueryBuilder writeQueryBuilder(YdbConnection->TablePathPrefix, "ModifyDatabase(write)");
+ writeQueryBuilder.AddString("internal", result.SerializeAsString());
+ writeQueryBuilder.AddText(
+ "UPDATE `" COMPUTE_DATABASES_TABLE_NAME "` SET `" INTERNAL_COLUMN_NAME "` = $internal;"
+ );
+ const auto writeQuery = writeQueryBuilder.Build();
+ return make_pair(writeQuery.Sql, writeQuery.Params);
+ };
+
+ const auto query = queryBuilder.Build();
+ auto debugInfo = Config->Proto.GetEnableDebugMode() ? std::make_shared<TDebugInfo>() : TDebugInfoPtr{};
+ auto result = ReadModifyWrite(query.Sql, query.Params, prepareParams, requestCounters, debugInfo);
+
+
+ auto prepare = [] { return std::make_tuple<NYql::TIssues>(NYql::TIssues{}); };
+ auto success = SendResponseTuple<TEvControlPlaneStorage::TEvModifyDatabaseResponse, std::tuple<NYql::TIssues>>(
+ MakeLogPrefix(scope, "internal", scope) + "ModifyDatabaseRequest",
+ NActors::TActivationContext::ActorSystem(),
+ result,
+ SelfId(),
+ ev,
+ startTime,
+ requestCounters,
+ prepare,
+ debugInfo);
+
+ success.Apply([=](const auto& future) {
+ TDuration delta = TInstant::Now() - startTime;
+ LWPROBE(ModifyDatabaseRequest, scope, "internal", delta, byteSize, future.GetValue());
+ });
+}
+
} // NFq
diff --git a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp
index 6c8f1a1c40..8edb3dc701 100644
--- a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp
+++ b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp
@@ -84,7 +84,7 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvCreateConne
" ($scope, $connection_id, $user, $visibility, $name, $connection_type, $connection, $revision, $internal);"
);
- auto validatorName = CreateUniqueNameValidator(
+ auto connectionNameUniqueValidator = CreateUniqueNameValidator(
CONNECTIONS_TABLE_NAME,
content.acl().visibility(),
scope,
@@ -93,6 +93,15 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvCreateConne
"Connection with the same name already exists. Please choose another name",
YdbConnection->TablePathPrefix);
+ auto bindingNameUniqueValidator = CreateUniqueNameValidator(
+ BINDINGS_TABLE_NAME,
+ content.acl().visibility(),
+ scope,
+ content.name(),
+ user,
+ "Binding with the same name already exists. Please choose another name",
+ YdbConnection->TablePathPrefix);
+
auto validatorCountConnections = CreateCountEntitiesValidator(
scope,
CONNECTIONS_TABLE_NAME,
@@ -104,7 +113,8 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvCreateConne
if (idempotencyKey) {
validators.push_back(CreateIdempotencyKeyValidator(scope, idempotencyKey, response, YdbConnection->TablePathPrefix));
}
- validators.push_back(validatorName);
+ validators.push_back(connectionNameUniqueValidator);
+ validators.push_back(bindingNameUniqueValidator);
validators.push_back(validatorCountConnections);
if (content.acl().visibility() == FederatedQuery::Acl::PRIVATE) {
@@ -246,6 +256,10 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvListConnect
auto& ch = *setting.mutable_clickhouse_cluster();
ch.set_password("");
}
+ if (setting.has_postgresql_cluster()) {
+ auto& pg = *setting.mutable_postgresql_cluster();
+ pg.set_password("");
+ }
}
if (result.connection_size() == limit + 1) {
@@ -348,6 +362,10 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvDescribeCon
auto& ch = *setting.mutable_clickhouse_cluster();
ch.set_password("");
}
+ if (setting.has_postgresql_cluster()) {
+ auto& pg = *setting.mutable_postgresql_cluster();
+ pg.set_password("");
+ }
return result;
};
@@ -449,14 +467,21 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvModifyConne
ythrow TCodeLineException(TIssuesIds::BAD_REQUEST) << "Changing visibility from SCOPE to PRIVATE is forbidden. Please create a new connection with visibility PRIVATE";
}
- TString clickHousePassword;
+ // FIXME: this code needs better generalization
if (request.content().setting().has_clickhouse_cluster()) {
- clickHousePassword = request.content().setting().clickhouse_cluster().password();
+ auto clickHousePassword = request.content().setting().clickhouse_cluster().password();
if (!clickHousePassword) {
clickHousePassword = content.setting().clickhouse_cluster().password();
}
content = request.content();
content.mutable_setting()->mutable_clickhouse_cluster()->set_password(clickHousePassword);
+ } else if (request.content().setting().has_postgresql_cluster()) {
+ auto postgreSQLPassword = request.content().setting().postgresql_cluster().password();
+ if (!postgreSQLPassword) {
+ postgreSQLPassword = content.setting().postgresql_cluster().password();
+ }
+ content = request.content();
+ content.mutable_setting()->mutable_postgresql_cluster()->set_password(postgreSQLPassword);
} else {
content = request.content();
}
@@ -511,7 +536,7 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvModifyConne
}
{
- auto modifyUniqueNameValidator = CreateModifyUniqueNameValidator(
+ auto connectionNameUniqueValidator = CreateModifyUniqueNameValidator(
CONNECTIONS_TABLE_NAME,
CONNECTION_ID_COLUMN_NAME,
request.content().acl().visibility(),
@@ -521,7 +546,18 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvModifyConne
connectionId,
"Connection with the same name already exists. Please choose another name",
YdbConnection->TablePathPrefix);
- validators.push_back(modifyUniqueNameValidator);
+ validators.push_back(connectionNameUniqueValidator);
+ }
+ {
+ auto bindingNameUniqueValidator = CreateUniqueNameValidator(
+ BINDINGS_TABLE_NAME,
+ request.content().acl().visibility(),
+ scope,
+ request.content().name(),
+ user,
+ "Binding with the same name already exists. Please choose another name",
+ YdbConnection->TablePathPrefix);
+ validators.push_back(bindingNameUniqueValidator);
}
const auto readQuery = readQueryBuilder.Build();
diff --git a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_impl.h b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_impl.h
index 408413ee90..514788e2e1 100644
--- a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_impl.h
+++ b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_impl.h
@@ -300,11 +300,11 @@ protected:
bool IsSuperUser(const TString& user);
template<typename T>
- NYql::TIssues ValidateConnection(T& ev, bool clickHousePasswordRequire = true)
+ NYql::TIssues ValidateConnection(T& ev, bool passwordRequired = true)
{
return ::NFq::ValidateConnection<T>(ev, Config->Proto.GetMaxRequestSize(),
Config->AvailableConnections, Config->Proto.GetDisableCurrentIam(),
- clickHousePasswordRequire);
+ passwordRequired);
}
template<typename T>
@@ -383,6 +383,7 @@ class TYdbControlPlaneStorageActor : public NActors::TActorBootstrapped<TYdbCont
RTS_PING_TASK,
RTS_CREATE_DATABASE,
RTS_DESCRIBE_DATABASE,
+ RTS_MODIFY_DATABASE,
RTS_MAX,
};
@@ -409,7 +410,8 @@ class TYdbControlPlaneStorageActor : public NActors::TActorBootstrapped<TYdbCont
"DeleteBinding",
"PingTask",
"CreateDatabase",
- "DescribeDatabase"
+ "DescribeDatabase",
+ "ModifyDatabase"
};
enum ERequestTypeCommon {
@@ -442,6 +444,7 @@ class TYdbControlPlaneStorageActor : public NActors::TActorBootstrapped<TYdbCont
RTC_PING_TASK,
RTC_CREATE_DATABASE,
RTC_DESCRIBE_DATABASE,
+ RTC_MODIFY_DATABASE,
RTC_MAX,
};
@@ -494,7 +497,8 @@ class TYdbControlPlaneStorageActor : public NActors::TActorBootstrapped<TYdbCont
{ MakeIntrusive<TRequestCommonCounters>("DeleteBinding") },
{ MakeIntrusive<TRequestCommonCounters>("PingTask") },
{ MakeIntrusive<TRequestCommonCounters>("CreateDatabase") },
- { MakeIntrusive<TRequestCommonCounters>("DescribeDatabase") }
+ { MakeIntrusive<TRequestCommonCounters>("DescribeDatabase") },
+ { MakeIntrusive<TRequestCommonCounters>("ModifyDatabase") }
});
TTtlCache<TMetricsScope, TScopeCountersPtr, TMap> ScopeCounters{TTtlCacheSettings{}.SetTtl(TDuration::Days(1))};
@@ -631,6 +635,7 @@ public:
hFunc(TEvents::TEvSchemaCreated, Handle);
hFunc(TEvControlPlaneStorage::TEvCreateDatabaseRequest, Handle);
hFunc(TEvControlPlaneStorage::TEvDescribeDatabaseRequest, Handle);
+ hFunc(TEvControlPlaneStorage::TEvModifyDatabaseRequest, Handle);
)
void Handle(TEvControlPlaneStorage::TEvCreateQueryRequest::TPtr& ev);
@@ -671,6 +676,7 @@ public:
void Handle(TEvControlPlaneStorage::TEvCreateDatabaseRequest::TPtr& ev);
void Handle(TEvControlPlaneStorage::TEvDescribeDatabaseRequest::TPtr& ev);
+ void Handle(TEvControlPlaneStorage::TEvModifyDatabaseRequest::TPtr& ev);
template <class TEventPtr, class TRequestActor, ERequestTypeCommon requestType>
void HandleRateLimiterImpl(TEventPtr& ev);
diff --git a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp
index 9c8764e5df..10912e012e 100644
--- a/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp
+++ b/ydb/core/fq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp
@@ -37,6 +37,8 @@ FederatedQuery::IamAuth::IdentityCase GetIamAuth(const FederatedQuery::Connectio
return setting.data_streams().auth().identity_case();
case FederatedQuery::ConnectionSetting::kMonitoring:
return setting.monitoring().auth().identity_case();
+ case FederatedQuery::ConnectionSetting::kPostgresqlCluster:
+ return setting.postgresql_cluster().auth().identity_case();
case FederatedQuery::ConnectionSetting::CONNECTION_NOT_SET:
return FederatedQuery::IamAuth::IDENTITY_NOT_SET;
}
diff --git a/ydb/core/fq/libs/init/init.cpp b/ydb/core/fq/libs/init/init.cpp
index 829bd738f3..4eca7d21bd 100644
--- a/ydb/core/fq/libs/init/init.cpp
+++ b/ydb/core/fq/libs/init/init.cpp
@@ -96,11 +96,19 @@ void Init(
);
}
+ NFq::TSigner::TPtr signer;
+ if (protoConfig.GetTokenAccessor().GetHmacSecretFile()) {
+ signer = ::NFq::CreateSignerFromFile(protoConfig.GetTokenAccessor().GetHmacSecretFile());
+ }
+
if (protoConfig.GetControlPlaneProxy().GetEnabled()) {
auto controlPlaneProxy = NFq::CreateControlPlaneProxyActor(
protoConfig.GetControlPlaneProxy(),
+ protoConfig.GetControlPlaneStorage(),
protoConfig.GetCompute(),
protoConfig.GetCommon(),
+ protoConfig.GetGateways().GetS3(),
+ signer,
yqSharedResources,
NKikimr::CreateYdbCredentialsProviderFactory,
yqCounters->GetSubgroup("subsystem", "ControlPlaneProxy"),
@@ -109,7 +117,12 @@ void Init(
}
if (protoConfig.GetCompute().GetYdb().GetEnable() && protoConfig.GetCompute().GetYdb().GetControlPlane().GetEnable()) {
- auto computeDatabaseService = NFq::CreateComputeDatabaseControlPlaneServiceActor(protoConfig.GetCompute(), NKikimr::CreateYdbCredentialsProviderFactory);
+ auto computeDatabaseService = NFq::CreateComputeDatabaseControlPlaneServiceActor(protoConfig.GetCompute(),
+ NKikimr::CreateYdbCredentialsProviderFactory,
+ protoConfig.GetCommon(),
+ signer,
+ yqSharedResources,
+ yqCounters->GetSubgroup("subsystem", "DatabaseControlPlane"));
actorRegistrator(NFq::ComputeDatabaseControlPlaneServiceActorId(), computeDatabaseService.release());
}
@@ -294,7 +307,7 @@ void Init(
protoConfig.GetControlPlaneStorage(),
protoConfig.GetGateways().GetS3(),
protoConfig.GetCommon(),
- protoConfig.GetTokenAccessor(),
+ signer,
yqSharedResources,
credentialsFactory,
pqCmConnections,
@@ -332,7 +345,7 @@ void Init(
TAppData::TimeProvider,
TAppData::RandomProvider,
serviceCounters.Counters,
- protoConfig.GetTokenAccessor());
+ signer);
actorRegistrator(MakeYqPrivateProxyId(), proxyPrivate);
}
diff --git a/ydb/core/fq/libs/protos/fq_private.proto b/ydb/core/fq/libs/protos/fq_private.proto
index b1e9003e87..5513f3a3eb 100644
--- a/ydb/core/fq/libs/protos/fq_private.proto
+++ b/ydb/core/fq/libs/protos/fq_private.proto
@@ -118,6 +118,7 @@ message GetTaskResult {
string operation_id = 35;
string execution_id = 36;
NFq.NConfig.TYdbStorageConfig compute_connection = 37;
+ google.protobuf.Duration result_ttl = 38;
}
repeated Task tasks = 1;
}
diff --git a/ydb/core/fq/libs/rate_limiter/quoter_service/quoter_service.cpp b/ydb/core/fq/libs/rate_limiter/quoter_service/quoter_service.cpp
index fbf4eef012..6d5dc6bc8e 100644
--- a/ydb/core/fq/libs/rate_limiter/quoter_service/quoter_service.cpp
+++ b/ydb/core/fq/libs/rate_limiter/quoter_service/quoter_service.cpp
@@ -1,6 +1,6 @@
#include "quoter_service.h"
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/base/path.h>
#include <ydb/core/fq/libs/ydb/util.h>
#include <ydb/core/fq/libs/ydb/ydb.h>
diff --git a/ydb/core/fq/libs/test_connection/request_validators.h b/ydb/core/fq/libs/test_connection/request_validators.h
index 66d6538e4c..714bd211cc 100644
--- a/ydb/core/fq/libs/test_connection/request_validators.h
+++ b/ydb/core/fq/libs/test_connection/request_validators.h
@@ -5,7 +5,7 @@
namespace NFq {
template<typename T>
-NYql::TIssues ValidateTestConnection(T& ev, size_t maxSize, const TSet<FederatedQuery::ConnectionSetting::ConnectionCase>& availableConnections, bool disableCurrentIam, bool clickHousePasswordRequire = true)
+NYql::TIssues ValidateTestConnection(T& ev, size_t maxSize, const TSet<FederatedQuery::ConnectionSetting::ConnectionCase>& availableConnections, bool disableCurrentIam, bool passwordRequired = true)
{
const auto& request = ev->Get()->Request;
NYql::TIssues issues = ValidateEvent(ev, maxSize);
@@ -15,7 +15,7 @@ NYql::TIssues ValidateTestConnection(T& ev, size_t maxSize, const TSet<Federated
}
const FederatedQuery::ConnectionSetting& setting = request.setting();
- issues.AddIssues(ValidateConnectionSetting(setting, availableConnections, disableCurrentIam, clickHousePasswordRequire));
+ issues.AddIssues(ValidateConnectionSetting(setting, availableConnections, disableCurrentIam, passwordRequired));
return issues;
}
diff --git a/ydb/core/fq/libs/test_connection/test_connection.cpp b/ydb/core/fq/libs/test_connection/test_connection.cpp
index ec1e760769..8e8733461f 100644
--- a/ydb/core/fq/libs/test_connection/test_connection.cpp
+++ b/ydb/core/fq/libs/test_connection/test_connection.cpp
@@ -114,7 +114,7 @@ public:
const NConfig::TControlPlaneStorageConfig& controlPlaneStorageConfig,
const NYql::TS3GatewayConfig& s3Config,
const NConfig::TCommonConfig& commonConfig,
- const NConfig::TTokenAccessorConfig& tokenAccessorConfig,
+ const ::NFq::TSigner::TPtr& signer,
const NFq::TYqSharedResources::TPtr& sharedResources,
const NYql::ISecuredServiceAccountCredentialsFactory::TPtr& credentialsFactory,
const NPq::NConfigurationManager::IConnections::TPtr& cmConnections,
@@ -129,12 +129,9 @@ public:
, CmConnections(cmConnections)
, FunctionRegistry(functionRegistry)
, Counters(counters)
+ , Signer(signer)
, HttpGateway(httpGateway)
- {
- if (tokenAccessorConfig.GetHmacSecretFile()) {
- Signer = ::NFq::CreateSignerFromFile(tokenAccessorConfig.GetHmacSecretFile());
- }
- }
+ {}
static constexpr char ActorName[] = "YQ_TEST_CONNECTION";
@@ -235,7 +232,7 @@ NActors::IActor* CreateTestConnectionActor(
const NConfig::TControlPlaneStorageConfig& controlPlaneStorageConfig,
const NYql::TS3GatewayConfig& s3Config,
const NConfig::TCommonConfig& commonConfig,
- const NConfig::TTokenAccessorConfig& tokenAccessorConfig,
+ const ::NFq::TSigner::TPtr& signer,
const NFq::TYqSharedResources::TPtr& sharedResources,
const NYql::ISecuredServiceAccountCredentialsFactory::TPtr& credentialsFactory,
const NPq::NConfigurationManager::IConnections::TPtr& cmConnections,
@@ -244,7 +241,7 @@ NActors::IActor* CreateTestConnectionActor(
const ::NMonitoring::TDynamicCounterPtr& counters) {
return new TTestConnectionActor(config, controlPlaneStorageConfig,
s3Config, commonConfig,
- tokenAccessorConfig, sharedResources,
+ signer, sharedResources,
credentialsFactory, cmConnections,
functionRegistry, httpGateway, counters);
}
diff --git a/ydb/core/fq/libs/test_connection/test_connection.h b/ydb/core/fq/libs/test_connection/test_connection.h
index 5b89f6e648..65517cc48b 100644
--- a/ydb/core/fq/libs/test_connection/test_connection.h
+++ b/ydb/core/fq/libs/test_connection/test_connection.h
@@ -46,7 +46,7 @@ NActors::IActor* CreateTestConnectionActor(
const NConfig::TControlPlaneStorageConfig& controlPlaneStorageConfig,
const NYql::TS3GatewayConfig& s3Config,
const NConfig::TCommonConfig& commonConfig,
- const NConfig::TTokenAccessorConfig& tokenAccessorConfig,
+ const ::NFq::TSigner::TPtr& signer,
const NFq::TYqSharedResources::TPtr& sharedResources,
const NYql::ISecuredServiceAccountCredentialsFactory::TPtr& credentialsFactory,
const NPq::NConfigurationManager::IConnections::TPtr& cmConnections,
diff --git a/ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt b/ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt
index ba88f6914a..cc90ccc9d3 100644
--- a/ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt
@@ -60,6 +60,7 @@ target_link_libraries(ydb-core-grpc_services PUBLIC
ydb-library-services
api-grpc-draft
api-protos
+ public-lib-fq
public-lib-operation_id
cpp-client-resources
services-ext_index-common
@@ -88,7 +89,6 @@ target_sources(ydb-core-grpc_services PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_export.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_coordination_node.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_table.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_delete_session.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_coordination_node.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_path.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_table.cpp
diff --git a/ydb/core/grpc_services/CMakeLists.linux-aarch64.txt b/ydb/core/grpc_services/CMakeLists.linux-aarch64.txt
index 44ae197938..7f6a2f1461 100644
--- a/ydb/core/grpc_services/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/grpc_services/CMakeLists.linux-aarch64.txt
@@ -61,6 +61,7 @@ target_link_libraries(ydb-core-grpc_services PUBLIC
ydb-library-services
api-grpc-draft
api-protos
+ public-lib-fq
public-lib-operation_id
cpp-client-resources
services-ext_index-common
@@ -89,7 +90,6 @@ target_sources(ydb-core-grpc_services PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_export.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_coordination_node.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_table.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_delete_session.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_coordination_node.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_path.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_table.cpp
diff --git a/ydb/core/grpc_services/CMakeLists.linux-x86_64.txt b/ydb/core/grpc_services/CMakeLists.linux-x86_64.txt
index 44ae197938..7f6a2f1461 100644
--- a/ydb/core/grpc_services/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/grpc_services/CMakeLists.linux-x86_64.txt
@@ -61,6 +61,7 @@ target_link_libraries(ydb-core-grpc_services PUBLIC
ydb-library-services
api-grpc-draft
api-protos
+ public-lib-fq
public-lib-operation_id
cpp-client-resources
services-ext_index-common
@@ -89,7 +90,6 @@ target_sources(ydb-core-grpc_services PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_export.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_coordination_node.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_table.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_delete_session.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_coordination_node.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_path.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_table.cpp
diff --git a/ydb/core/grpc_services/CMakeLists.windows-x86_64.txt b/ydb/core/grpc_services/CMakeLists.windows-x86_64.txt
index ba88f6914a..cc90ccc9d3 100644
--- a/ydb/core/grpc_services/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/grpc_services/CMakeLists.windows-x86_64.txt
@@ -60,6 +60,7 @@ target_link_libraries(ydb-core-grpc_services PUBLIC
ydb-library-services
api-grpc-draft
api-protos
+ public-lib-fq
public-lib-operation_id
cpp-client-resources
services-ext_index-common
@@ -88,7 +89,6 @@ target_sources(ydb-core-grpc_services PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_export.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_coordination_node.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_create_table.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_delete_session.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_coordination_node.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_path.cpp
${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_describe_table.cpp
diff --git a/ydb/core/grpc_services/base/base.h b/ydb/core/grpc_services/base/base.h
index 7f3028da4e..7f83b735e6 100644
--- a/ydb/core/grpc_services/base/base.h
+++ b/ydb/core/grpc_services/base/base.h
@@ -527,8 +527,19 @@ public:
void ReplyUnauthenticated(const TString&) override;
void ReplyUnavaliable() override;
- void ReplyWithYdbStatus(Ydb::StatusIds::StatusCode) override {
- Y_FAIL("Unimplemented");
+ void ReplyWithYdbStatus(Ydb::StatusIds::StatusCode status) override {
+ switch (status) {
+ case Ydb::StatusIds::UNAVAILABLE:
+ return ReplyUnavaliable();
+ case Ydb::StatusIds::UNAUTHORIZED:
+ RaiseIssue(NYql::TIssue{"got UNAUTHORIZED ydb status"});
+ return ReplyUnauthenticated(TString());
+ default: {
+ auto ss = TStringBuilder() << "got unexpected: " << status << "ydb status";
+ RaiseIssue(NYql::TIssue{ss});
+ return ReplyUnavaliable();
+ }
+ }
}
void RaiseIssue(const NYql::TIssue& issue) override {
diff --git a/ydb/core/grpc_services/query/rpc_attach_session.cpp b/ydb/core/grpc_services/query/rpc_attach_session.cpp
index 65907d312c..5ffcff1f86 100644
--- a/ydb/core/grpc_services/query/rpc_attach_session.cpp
+++ b/ydb/core/grpc_services/query/rpc_attach_session.cpp
@@ -43,6 +43,7 @@ public:
try {
switch (ev->GetTypeRewrite()) {
hFunc(TEvents::TEvWakeup, HandleReady);
+ hFunc(NKqp::TEvKqp::TEvCloseSessionResponse, HandleReady);
default:
UnexpectedEvent(__func__, ev);
}
@@ -78,6 +79,7 @@ private:
if (CheckSession(sessionId, req)) {
ev->Record.MutableRequest()->SetSessionId(sessionId);
+ ActorIdToProto(SelfId(), ev->Record.MutableRequest()->MutableExtSessionCtrlActorId());
SessionId = sessionId;
} else {
return ReplyFinishStream(Ydb::StatusIds::BAD_REQUEST);
@@ -92,6 +94,18 @@ private:
ReplyFinishStream(Ydb::StatusIds::SUCCESS);
}
+ void HandleReady(NKqp::TEvKqp::TEvCloseSessionResponse::TPtr& ev) {
+ const auto &event = ev->Get()->Record;
+ if (event.GetResponse().GetSessionId() == SessionId &&
+ event.GetResponse().GetClosed() &&
+ event.GetStatus() == Ydb::StatusIds::SUCCESS)
+ {
+ ReplyFinishStream(Ydb::StatusIds::SUCCESS);
+ } else {
+ InternalError("unexpected TEvCloseSessionResponse response");
+ }
+ }
+
void HandleAttaching(NKqp::TEvKqp::TEvPingSessionResponse::TPtr& ev) {
const auto& record = ev->Get()->Record;
// Do not try to attach to closing session
@@ -100,6 +114,10 @@ private:
return ReplyFinishStream(Ydb::StatusIds::NOT_FOUND);
}
+ if (record.GetResponse().GetSessionStatus() != Ydb::Table::KeepAliveResult::SESSION_STATUS_READY) {
+ return ReplyFinishStream(Ydb::StatusIds::SESSION_BUSY);
+ }
+
SubscribeClientLost();
SendAttachResult(record.GetStatus());
diff --git a/ydb/core/grpc_services/query/rpc_execute_query.cpp b/ydb/core/grpc_services/query/rpc_execute_query.cpp
index 2a7b1818bf..d7fd800374 100644
--- a/ydb/core/grpc_services/query/rpc_execute_query.cpp
+++ b/ydb/core/grpc_services/query/rpc_execute_query.cpp
@@ -251,7 +251,7 @@ private:
queryType,
SelfId(),
Request_,
- "", // sessionId
+ req->session_id(),
std::move(query),
"", // queryId
txControl,
diff --git a/ydb/core/grpc_services/query/rpc_execute_script.cpp b/ydb/core/grpc_services/query/rpc_execute_script.cpp
index 4f5c899395..1e1c32bcd2 100644
--- a/ydb/core/grpc_services/query/rpc_execute_script.cpp
+++ b/ydb/core/grpc_services/query/rpc_execute_script.cpp
@@ -23,25 +23,12 @@ using TEvExecuteScriptRequest = TGrpcRequestNoOperationCall<Ydb::Query::ExecuteS
bool FillQueryContent(const Ydb::Query::ExecuteScriptRequest& req, NKikimrKqp::TEvQueryRequest& kqpRequest,
NYql::TIssues& issues)
{
- switch (req.script_case()) {
- case Ydb::Query::ExecuteScriptRequest::kScriptContent:
- if (!CheckQuery(req.script_content().text(), issues)) {
- return false;
- }
-
- kqpRequest.MutableRequest()->SetQuery(req.script_content().text());
- return true;
-
- case Ydb::Query::ExecuteScriptRequest::kScriptId:
- issues.AddIssue(MakeIssue(NKikimrIssues::TIssuesIds::DEFAULT_ERROR,
- "Execution by script id is not supported yet"));
- return false;
-
- default:
- issues.AddIssue(MakeIssue(NKikimrIssues::TIssuesIds::DEFAULT_ERROR,
- "Unexpected query option"));
- return false;
+ if (!CheckQuery(req.script_content().text(), issues)) {
+ return false;
}
+
+ kqpRequest.MutableRequest()->SetQuery(req.script_content().text());
+ return true;
}
std::tuple<Ydb::StatusIds::StatusCode, NYql::TIssues> FillKqpRequest(
@@ -75,6 +62,9 @@ std::tuple<Ydb::StatusIds::StatusCode, NYql::TIssues> FillKqpRequest(
kqpRequest.MutableRequest()->MutableTxControl()->mutable_begin_tx()->mutable_serializable_read_write();
kqpRequest.MutableRequest()->MutableTxControl()->set_commit_tx(true);
+ kqpRequest.MutableRequest()->SetCancelAfterMs(GetDuration(req.operation_params().cancel_after()).MilliSeconds());
+ kqpRequest.MutableRequest()->SetTimeoutMs(GetDuration(req.operation_params().operation_timeout()).MilliSeconds());
+
NYql::TIssues issues;
if (!FillQueryContent(req, kqpRequest, issues)) {
return {Ydb::StatusIds::BAD_REQUEST, std::move(issues)};
@@ -96,10 +86,6 @@ public:
void Bootstrap() {
NYql::TIssues issues;
const auto& request = *Request_->GetProtoRequest();
- if (request.operation_params().has_forget_after() && request.operation_params().operation_mode() != Ydb::Operations::OperationParams::SYNC) {
- issues.AddIssue("forget_after is not supported for this type of operation");
- return Reply(Ydb::StatusIds::UNSUPPORTED, issues);
- }
if (request.operation_params().operation_mode() == Ydb::Operations::OperationParams::SYNC) {
issues.AddIssue("ExecuteScript must be asyncronous operation");
@@ -149,6 +135,14 @@ private:
ev->Record.SetTraceId(traceId.GetRef());
}
+ if (req->operation_params().has_forget_after()) {
+ ev->ForgetAfter = GetDuration(req->operation_params().forget_after());
+ }
+
+ if (req->has_results_ttl()) {
+ ev->ResultsTtl = GetDuration(req->results_ttl());
+ }
+
std::tie(status, issues) = FillKqpRequest(*req, ev->Record);
if (status != Ydb::StatusIds::SUCCESS) {
return nullptr;
diff --git a/ydb/core/grpc_services/query/rpc_fetch_script_results.cpp b/ydb/core/grpc_services/query/rpc_fetch_script_results.cpp
index a9f8d0d4e0..44f4484eea 100644
--- a/ydb/core/grpc_services/query/rpc_fetch_script_results.cpp
+++ b/ydb/core/grpc_services/query/rpc_fetch_script_results.cpp
@@ -70,7 +70,7 @@ public:
return;
}
- Register(NKqp::CreateGetScriptExecutionResultActor(SelfId(), DatabaseName, ExecutionId, req->result_set_id(), RowsOffset, req->rows_limit() + 1));
+ Register(NKqp::CreateGetScriptExecutionResultActor(SelfId(), DatabaseName, ExecutionId, req->result_set_index(), RowsOffset, req->rows_limit() + 1));
Become(&TFetchScriptResultsRPC::StateFunc);
}
@@ -128,24 +128,12 @@ private:
}
bool GetExecutionIdFromRequest() {
- switch (GetProtoRequest()->execution_case()) {
- case Ydb::Query::FetchScriptResultsRequest::kExecutionId:
- ExecutionId = GetProtoRequest()->execution_id();
- break;
- case Ydb::Query::FetchScriptResultsRequest::kOperationId:
- {
- TMaybe<TString> executionId = NKqp::ScriptExecutionIdFromOperation(GetProtoRequest()->operation_id());
- if (!executionId) {
- Reply(Ydb::StatusIds::BAD_REQUEST, "Invalid operation id");
- return false;
- }
- ExecutionId = *executionId;
- break;
- }
- case Ydb::Query::FetchScriptResultsRequest::EXECUTION_NOT_SET:
- Reply(Ydb::StatusIds::BAD_REQUEST, "No execution id");
+ TMaybe<TString> executionId = NKqp::ScriptExecutionIdFromOperation(GetProtoRequest()->operation_id());
+ if (!executionId) {
+ Reply(Ydb::StatusIds::BAD_REQUEST, "Invalid operation id");
return false;
}
+ ExecutionId = *executionId;
return true;
}
@@ -159,10 +147,9 @@ private:
namespace NQuery {
void DoFetchScriptResults(std::unique_ptr<IRequestNoOpCtx> p, const IFacilityProvider& f) {
- Y_UNUSED(f);
auto* req = dynamic_cast<TEvFetchScriptResultsRequest*>(p.release());
Y_VERIFY(req != nullptr, "Wrong using of TGRpcRequestWrapper");
- TActivationContext::AsActorContext().Register(new TFetchScriptResultsRPC(req));
+ f.RegisterActor(new TFetchScriptResultsRPC(req));
}
}
diff --git a/ydb/core/grpc_services/query/service_query.h b/ydb/core/grpc_services/query/service_query.h
index 4667760e0e..1f94a7ef6c 100644
--- a/ydb/core/grpc_services/query/service_query.h
+++ b/ydb/core/grpc_services/query/service_query.h
@@ -14,6 +14,7 @@ void DoExecuteQuery(std::unique_ptr<IRequestNoOpCtx> p, const IFacilityProvider&
void DoExecuteScript(std::unique_ptr<IRequestNoOpCtx> p, const IFacilityProvider& f);
void DoFetchScriptResults(std::unique_ptr<IRequestNoOpCtx> p, const IFacilityProvider&);
void DoCreateSession(std::unique_ptr<IRequestNoOpCtx> p, const IFacilityProvider& f);
+void DoDeleteSession(std::unique_ptr<IRequestNoOpCtx> p, const IFacilityProvider& f);
void DoAttachSession(std::unique_ptr<IRequestNoOpCtx> p, const IFacilityProvider& f);
} // namespace NQuery
diff --git a/ydb/core/grpc_services/rpc_common/rpc_common_kqp_session.cpp b/ydb/core/grpc_services/rpc_common/rpc_common_kqp_session.cpp
index 0ec44d337f..6e492cdec9 100644
--- a/ydb/core/grpc_services/rpc_common/rpc_common_kqp_session.cpp
+++ b/ydb/core/grpc_services/rpc_common/rpc_common_kqp_session.cpp
@@ -21,9 +21,15 @@ using namespace NActors;
using namespace Ydb;
using namespace NKqp;
-using TEvCreateSessionRequest = TGrpcRequestOperationCall<Ydb::Table::CreateSessionRequest,
+using TEvCreateSessionTableRequest = TGrpcRequestOperationCall<Ydb::Table::CreateSessionRequest,
Ydb::Table::CreateSessionResponse>;
+using TEvDeleteSessionTableRequest = TGrpcRequestOperationCall<Ydb::Table::DeleteSessionRequest,
+ Ydb::Table::DeleteSessionResponse>;
+
+using TEvDeleteSessionQueryRequest = TGrpcRequestOperationCall<Ydb::Query::DeleteSessionRequest,
+ Ydb::Query::DeleteSessionResponse>;
+
class TCreateSessionRPC : public TActorBootstrapped<TCreateSessionRPC> {
public:
TCreateSessionRPC(IRequestCtx* msg)
@@ -203,21 +209,98 @@ private:
};
};
+class TDeleteSessionRPC : public TActorBootstrapped<TDeleteSessionRPC> {
+public:
+ TDeleteSessionRPC(IRequestCtx* msg)
+ : Request(msg) {}
+
+ void Bootstrap(const TActorContext&) {
+ DeleteSessionImpl();
+ }
+
+private:
+ void DeleteSessionImpl() {
+ const auto sessionId = GetSessionId();
+
+ auto ev = MakeHolder<NKqp::TEvKqp::TEvCloseSessionRequest>();
+
+ if (CheckSession(sessionId, Request.get())) {
+ ev->Record.MutableRequest()->SetSessionId(sessionId);
+ } else {
+ return Reply(Ydb::StatusIds::BAD_REQUEST);
+ }
+
+ Send(NKqp::MakeKqpProxyID(SelfId().NodeId()), ev.Release()); //no respose will be sended, so don't wait for anything
+ Reply(Ydb::StatusIds::SUCCESS);
+ }
+
+ void Reply(Ydb::StatusIds::StatusCode status) {
+ Request->ReplyWithYdbStatus(status);
+ this->PassAway();
+ }
+
+ virtual const TString& GetSessionId() const = 0;
+
+protected:
+ std::shared_ptr<IRequestCtx> Request;
+};
+
+class TDeleteSessionTableService : public TDeleteSessionRPC {
+ using TCtx = IRequestOpCtx;
+
+public:
+ using TDeleteSessionRPC::TDeleteSessionRPC;
+ static TDeleteSessionRPC* New(TCtx* ctx) {
+ return new TDeleteSessionTableService(ctx);
+ }
+
+private:
+ const TString& GetSessionId() const override {
+ return TEvDeleteSessionTableRequest::GetProtoRequest(Request)->session_id();
+ };
+};
+
+class TDeleteSessionQueryService : public TDeleteSessionRPC {
+public:
+ using TDeleteSessionRPC::TDeleteSessionRPC;
+ static TDeleteSessionRPC* New(IRequestNoOpCtx* ctx) {
+ return new TDeleteSessionQueryService(ctx);
+ }
+
+private:
+ const TString& GetSessionId() const override {
+ return TEvDeleteSessionQueryRequest::GetProtoRequest(Request)->session_id();
+ };
+};
+
void DoCreateSessionRequest(std::unique_ptr<IRequestOpCtx> ctx, const IFacilityProvider& provider) {
provider.RegisterActor(TCreateSessionTableService::New(ctx.release()));
}
template<>
-IActor* TEvCreateSessionRequest::CreateRpcActor(NKikimr::NGRpcService::IRequestOpCtx* msg) {
+IActor* TEvCreateSessionTableRequest::CreateRpcActor(NKikimr::NGRpcService::IRequestOpCtx* msg) {
return TCreateSessionTableService::New(msg);
}
+void DoDeleteSessionRequest(std::unique_ptr<IRequestOpCtx> p, const IFacilityProvider& provider) {
+ provider.RegisterActor(TDeleteSessionTableService::New(p.release()));
+}
+
+template<>
+IActor* TEvDeleteSessionTableRequest::CreateRpcActor(NKikimr::NGRpcService::IRequestOpCtx* msg) {
+ return TDeleteSessionTableService::New(msg);
+}
+
namespace NQuery {
void DoCreateSession(std::unique_ptr<IRequestNoOpCtx> ctx, const IFacilityProvider& provider) {
provider.RegisterActor(TCreateSessionQueryService::New(ctx.release()));
}
+void DoDeleteSession(std::unique_ptr<IRequestNoOpCtx> ctx, const IFacilityProvider& provider) {
+ provider.RegisterActor(TDeleteSessionQueryService::New(ctx.release()));
+}
+
}
} // namespace NGRpcService
diff --git a/ydb/core/grpc_services/rpc_delete_session.cpp b/ydb/core/grpc_services/rpc_delete_session.cpp
deleted file mode 100644
index 28ab4430e4..0000000000
--- a/ydb/core/grpc_services/rpc_delete_session.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "service_table.h"
-#include <ydb/core/grpc_services/base/base.h>
-
-#include "rpc_calls.h"
-#include "rpc_kqp_base.h"
-#include "service_table.h"
-
-#include <ydb/library/yql/public/issue/yql_issue_message.h>
-#include <ydb/library/yql/public/issue/yql_issue.h>
-
-namespace NKikimr {
-namespace NGRpcService {
-
-using namespace NActors;
-using namespace Ydb;
-using namespace NKqp;
-
-using TEvDeleteSessionRequest = TGrpcRequestOperationCall<Ydb::Table::DeleteSessionRequest,
- Ydb::Table::DeleteSessionResponse>;
-
-class TDeleteSessionRPC : public TRpcKqpRequestActor<TDeleteSessionRPC, TEvDeleteSessionRequest> {
- using TBase = TRpcKqpRequestActor<TDeleteSessionRPC, TEvDeleteSessionRequest>;
-
-public:
- TDeleteSessionRPC(IRequestOpCtx* msg)
- : TBase(msg) {}
-
- void Bootstrap(const TActorContext& ctx) {
- TBase::Bootstrap(ctx);
-
- DeleteSessionImpl(ctx);
- Become(&TDeleteSessionRPC::StateWork);
- }
-
-private:
- void DeleteSessionImpl(const TActorContext& ctx) {
- const auto req = GetProtoRequest();
-
- auto ev = MakeHolder<NKqp::TEvKqp::TEvCloseSessionRequest>();
-
- if (CheckSession(req->session_id(), Request_.get())) {
- ev->Record.MutableRequest()->SetSessionId(req->session_id());
- } else {
- return Reply(Ydb::StatusIds::BAD_REQUEST, ctx);
- }
-
- ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); //no respose will be sended, so don't wait for anything
- Request_->ReplyWithYdbStatus(Ydb::StatusIds::SUCCESS);
- this->Die(ctx);
- }
-};
-
-void DoDeleteSessionRequest(std::unique_ptr<IRequestOpCtx> p, const IFacilityProvider& f) {
- f.RegisterActor(new TDeleteSessionRPC(p.release()));
-}
-
-template<>
-IActor* TEvDeleteSessionRequest::CreateRpcActor(NKikimr::NGRpcService::IRequestOpCtx* msg) {
- return new TDeleteSessionRPC(msg);
-}
-
-} // namespace NGRpcService
-} // namespace NKikimr
diff --git a/ydb/core/grpc_services/rpc_describe_table.cpp b/ydb/core/grpc_services/rpc_describe_table.cpp
index cb499db8ed..9517aac63e 100644
--- a/ydb/core/grpc_services/rpc_describe_table.cpp
+++ b/ydb/core/grpc_services/rpc_describe_table.cpp
@@ -131,12 +131,13 @@ private:
void SendProposeRequest(const TActorContext &ctx) {
const auto req = GetProtoRequest();
+ const TString path = req->path();
std::unique_ptr<TEvTxUserProxy::TEvNavigate> navigateRequest(new TEvTxUserProxy::TEvNavigate());
SetAuthToken(navigateRequest, *Request_);
SetDatabase(navigateRequest.get(), *Request_);
NKikimrSchemeOp::TDescribePath* record = navigateRequest->Record.MutableDescribePath();
- record->SetPath(req->path());
+ record->SetPath(path);
if (req->include_shard_key_bounds()) {
record->MutableOptions()->SetReturnBoundaries(true);
}
@@ -145,7 +146,7 @@ private:
record->MutableOptions()->SetReturnPartitionStats(true);
}
- if (AppData(ctx)->AllowPrivateTableDescribeForTest) {
+ if (AppData(ctx)->AllowPrivateTableDescribeForTest || path.EndsWith("/indexImplTable")) {
record->MutableOptions()->SetShowPrivateTable(true);
}
diff --git a/ydb/core/grpc_services/rpc_execute_data_query.cpp b/ydb/core/grpc_services/rpc_execute_data_query.cpp
index d315038a16..2242443121 100644
--- a/ydb/core/grpc_services/rpc_execute_data_query.cpp
+++ b/ydb/core/grpc_services/rpc_execute_data_query.cpp
@@ -11,6 +11,8 @@
#include <ydb/core/ydb_convert/ydb_convert.h>
#include <ydb/public/lib/operation_id/operation_id.h>
+#include <ydb/core/kqp/executer_actor/kqp_executer.h>
+
#include <ydb/library/yql/public/issue/yql_issue.h>
namespace NKikimr {
@@ -44,6 +46,7 @@ public:
void StateWork(TAutoPtr<IEventHandle>& ev) {
switch (ev->GetTypeRewrite()) {
HFunc(NKqp::TEvKqp::TEvQueryResponse, Handle);
+ IgnoreFunc(NKqp::TEvKqpExecuter::TEvExecuterProgress);
default: TBase::StateWork(ev);
}
}
diff --git a/ydb/core/grpc_services/rpc_fq.cpp b/ydb/core/grpc_services/rpc_fq.cpp
index b68d76d2e0..a089a9037f 100644
--- a/ydb/core/grpc_services/rpc_fq.cpp
+++ b/ydb/core/grpc_services/rpc_fq.cpp
@@ -8,6 +8,7 @@
#include <ydb/core/fq/libs/control_plane_proxy/events/events.h>
#include <ydb/core/fq/libs/control_plane_proxy/utils.h>
#include <ydb/public/api/protos/draft/fq.pb.h>
+#include <ydb/public/lib/fq/scope.h>
#include <ydb/library/aclib/aclib.h>
@@ -113,7 +114,12 @@ public:
}
const auto* req = GetProtoRequest();
- auto ev = MakeHolder<EvRequestType>(FolderId, *req, User, Token, permissions);
+ auto ev = MakeHolder<EvRequestType>(
+ NYdb::NFq::TScope{NYdb::NFq::TScope::YandexCloudScopeSchema + "://" + FolderId}.ToString(),
+ *req,
+ User,
+ Token,
+ permissions);
Send(NFq::ControlPlaneProxyActorId(), ev.Release());
Become(&TFederatedQueryRequestRPC<RpcRequestType, EvRequestType, EvResponseType>::StateFunc);
}
@@ -545,7 +551,11 @@ std::unique_ptr<TEvProxyRuntimeEvent> CreateFederatedQueryModifyConnectionReques
static const std::function permissions{ [](const FederatedQuery::ModifyConnectionRequest& request) -> TVector<NPerms::TPermission> {
TVector<NPerms::TPermission> basePermissions{
NPerms::Required("yq.connections.update"),
- NPerms::Optional("yq.resources.managePrivate")
+ NPerms::Required("yq.connections.get"),
+ NPerms::Required("yq.bindings.get"),
+ NPerms::Optional("yq.resources.managePrivate"),
+ NPerms::Optional("yq.resources.viewPublic"),
+ NPerms::Optional("yq.resources.viewPrivate")
};
if (request.content().acl().visibility() == FederatedQuery::Acl::SCOPE) {
basePermissions.push_back(NPerms::Required("yq.resources.managePublic"));
@@ -560,8 +570,11 @@ std::unique_ptr<TEvProxyRuntimeEvent> CreateFederatedQueryDeleteConnectionReques
static const std::function permissions{ [](const FederatedQuery::DeleteConnectionRequest&) -> TVector<NPerms::TPermission> {
return {
NPerms::Required("yq.connections.delete"),
+ NPerms::Required("yq.connections.get"),
NPerms::Optional("yq.resources.managePublic"),
- NPerms::Optional("yq.resources.managePrivate")
+ NPerms::Optional("yq.resources.managePrivate"),
+ NPerms::Optional("yq.resources.viewPublic"),
+ NPerms::Optional("yq.resources.viewPrivate")
};
} };
@@ -628,8 +641,12 @@ std::unique_ptr<TEvProxyRuntimeEvent> CreateFederatedQueryModifyBindingRequestOp
// so yq.resources.managePublic is always requested as optional
return {
NPerms::Required("yq.bindings.update"),
+ NPerms::Required("yq.bindings.get"),
+ NPerms::Required("yq.connections.get"),
NPerms::Optional("yq.resources.managePrivate"),
- NPerms::Optional("yq.resources.managePublic")
+ NPerms::Optional("yq.resources.managePublic"),
+ NPerms::Optional("yq.resources.viewPublic"),
+ NPerms::Optional("yq.resources.viewPrivate")
};
} };
@@ -640,8 +657,11 @@ std::unique_ptr<TEvProxyRuntimeEvent> CreateFederatedQueryDeleteBindingRequestOp
static const std::function permissions{ [](const FederatedQuery::DeleteBindingRequest&) -> TVector<NPerms::TPermission> {
return {
NPerms::Required("yq.bindings.delete"),
+ NPerms::Required("yq.bindings.get"),
NPerms::Optional("yq.resources.managePublic"),
- NPerms::Optional("yq.resources.managePrivate")
+ NPerms::Optional("yq.resources.managePrivate"),
+ NPerms::Optional("yq.resources.viewPublic"),
+ NPerms::Optional("yq.resources.viewPrivate")
};
} };
diff --git a/ydb/core/grpc_services/rpc_rate_limiter_api.cpp b/ydb/core/grpc_services/rpc_rate_limiter_api.cpp
index ebd720b0ee..ba48473032 100644
--- a/ydb/core/grpc_services/rpc_rate_limiter_api.cpp
+++ b/ydb/core/grpc_services/rpc_rate_limiter_api.cpp
@@ -5,7 +5,7 @@
#include "rpc_scheme_base.h"
#include "rpc_common/rpc_common.h"
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/kesus/tablet/events.h>
namespace NKikimr::NGRpcService {
diff --git a/ydb/core/grpc_services/rpc_read_rows.cpp b/ydb/core/grpc_services/rpc_read_rows.cpp
index 7f5d23e0bc..385e6af277 100644
--- a/ydb/core/grpc_services/rpc_read_rows.cpp
+++ b/ydb/core/grpc_services/rpc_read_rows.cpp
@@ -365,9 +365,6 @@ public:
Y_VERIFY(request.ResultSet.size() == 1);
const auto& entry = request.ResultSet.front();
- OwnerId = entry.Self->Info.GetSchemeshardId();
- TableId = entry.Self->Info.GetPathId();
-
LOG_DEBUG_S(TlsActivationContext->AsActorContext(), NKikimrServices::RPC_REQUEST, "TEvNavigateKeySetResult, " << " OwnerId: " << OwnerId << " TableId: " << TableId);
switch (entry.Status) {
case NSchemeCache::TSchemeCacheNavigate::EStatus::Ok:
@@ -386,6 +383,9 @@ public:
return ReplyWithError(Ydb::StatusIds::GENERIC_ERROR, Sprintf("Unknown error on table '%s'", GetTable().c_str()));
}
+ OwnerId = entry.Self->Info.GetSchemeshardId();
+ TableId = entry.Self->Info.GetPathId();
+
if (entry.TableId.IsSystemView()) {
return ReplyWithError(Ydb::StatusIds::SCHEME_ERROR,
Sprintf("Table '%s' is a system view. ReadRows is not supported.", GetTable().c_str()));
@@ -585,7 +585,7 @@ public:
void SendResult(const Ydb::StatusIds::StatusCode& status, const TString& errorMsg) {
auto* resp = CreateResponse();
-
+ resp->set_status(status);
if (status == Ydb::StatusIds::SUCCESS) {
Request->SetRuHeader(RuCost);
diff --git a/ydb/core/grpc_services/ya.make b/ydb/core/grpc_services/ya.make
index 18e4b06f83..fe28ae3736 100644
--- a/ydb/core/grpc_services/ya.make
+++ b/ydb/core/grpc_services/ya.make
@@ -24,7 +24,6 @@ SRCS(
rpc_export.cpp
rpc_create_coordination_node.cpp
rpc_create_table.cpp
- rpc_delete_session.cpp
rpc_describe_coordination_node.cpp
rpc_describe_path.cpp
rpc_describe_table.cpp
@@ -123,6 +122,7 @@ PEERDIR(
ydb/library/services
ydb/public/api/grpc/draft
ydb/public/api/protos
+ ydb/public/lib/fq
ydb/public/lib/operation_id
ydb/public/sdk/cpp/client/resources
ydb/services/ext_index/common
diff --git a/ydb/core/health_check/health_check.cpp b/ydb/core/health_check/health_check.cpp
index 146a06ff57..83f26fcb22 100644
--- a/ydb/core/health_check/health_check.cpp
+++ b/ydb/core/health_check/health_check.cpp
@@ -113,7 +113,6 @@ public:
TabletState,
SystemTabletState,
OverloadState,
- SyncState,
};
struct TTenantInfo {
@@ -423,7 +422,6 @@ public:
THashMap<TNodeId, THolder<NNodeWhiteboard::TEvWhiteboard::TEvSystemStateResponse>> NodeSystemState;
THashMap<TNodeId, const NKikimrWhiteboard::TSystemStateInfo*> MergedNodeSystemState;
- THashSet<TNodeId> UsedClockSkewNodes;
THashMap<TNodeId, THolder<NNodeWhiteboard::TEvWhiteboard::TEvVDiskStateResponse>> NodeVDiskState;
TList<NKikimrWhiteboard::TVDiskStateInfo> VDisksAppended;
@@ -2283,60 +2281,6 @@ public:
}
}
- bool IsRequiredClockSkewIssue(const NKikimrWhiteboard::TSystemStateInfo& nodeSystemState) {
- if (!nodeSystemState.has_clockskewpeerid()) {
- return true;
- }
- const ui32 peerId = nodeSystemState.clockskewpeerid();
- auto itPeerState = MergedNodeSystemState.find(peerId);
- if (itPeerState == MergedNodeSystemState.end() || UsedClockSkewNodes.contains(peerId)) {
- return false;
- }
- const NKikimrWhiteboard::TSystemStateInfo& peerState(*itPeerState->second);
- if (!peerState.has_clockskewpeerid()) {
- return true;
- }
- const ui32 nextPeerId = peerState.clockskewpeerid();
- if (nextPeerId != nodeSystemState.nodeid() && !UsedClockSkewNodes.contains(nextPeerId)) {
- return false;
- }
- return true;
- }
-
- void FillClockSkewResult(TNodeId nodeId, TSelfCheckContext context) {
- FillNodeInfo(nodeId, context.Location.mutable_node());
- auto itNodeSystemState = MergedNodeSystemState.find(nodeId);
- if (itNodeSystemState != MergedNodeSystemState.end()) {
- const NKikimrWhiteboard::TSystemStateInfo& nodeSystemState(*itNodeSystemState->second);
- if (IsRequiredClockSkewIssue(nodeSystemState)) {
- UsedClockSkewNodes.emplace(nodeId);
- if (nodeSystemState.has_clockskewpeerid()) {
- const ui32 peerId = nodeSystemState.clockskewpeerid();
- UsedClockSkewNodes.emplace(peerId);
- FillNodeInfo(peerId, context.Location.mutable_peer());
- }
- if (nodeSystemState.clockskewmicrosec() > 25000) {
- context.ReportStatus(Ydb::Monitoring::StatusFlag::RED, "Time difference is more than 25 ms", ETags::NodeState);
- } else if (nodeSystemState.clockskewmicrosec() > 5000) {
- context.ReportStatus(Ydb::Monitoring::StatusFlag::YELLOW, "Time difference is more than 5 ms", ETags::NodeState);
- } else {
- context.ReportStatus(Ydb::Monitoring::StatusFlag::GREEN);
- }
- }
- }
- }
-
- void FillNodesSyncResult(TOverallStateContext& context) {
- TSelfCheckResult syncContext;
- syncContext.Type = "NODES_SYNC";
- for (TNodeId nodeId : NodeIds) {
- FillClockSkewResult(nodeId, {&syncContext, "TIME"});
- }
- syncContext.ReportWithMaxChildStatus("Time difference exceeded", ETags::SyncState, {ETags::NodeState});
- context.UpdateMaxStatus(syncContext.GetOverallStatus());
- context.AddIssues(syncContext.IssueRecords);
- }
-
void FillResult(TOverallStateContext context) {
if (IsSpecificDatabaseFilter()) {
FillDatabaseResult(context, FilterDatabase, DatabaseState[FilterDatabase]);
@@ -2345,7 +2289,6 @@ public:
FillDatabaseResult(context, path, state);
}
}
- FillNodesSyncResult(context);
if (DatabaseState.empty()) {
Ydb::Monitoring::DatabaseStatus& databaseStatus(*context.Result->add_database_status());
TSelfCheckResult tabletContext;
diff --git a/ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt b/ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt
index 3be3d9f298..7b3deb955e 100644
--- a/ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-http_proxy PUBLIC
ydb-core-base
ydb-core-protos
core-grpc_services-local_rpc
+ ydb-core-security
yql-public-issue
library-http_proxy-authorization
library-http_proxy-error
diff --git a/ydb/core/http_proxy/CMakeLists.linux-aarch64.txt b/ydb/core/http_proxy/CMakeLists.linux-aarch64.txt
index ca22afad07..0d79a18710 100644
--- a/ydb/core/http_proxy/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/http_proxy/CMakeLists.linux-aarch64.txt
@@ -22,6 +22,7 @@ target_link_libraries(ydb-core-http_proxy PUBLIC
ydb-core-base
ydb-core-protos
core-grpc_services-local_rpc
+ ydb-core-security
yql-public-issue
library-http_proxy-authorization
library-http_proxy-error
diff --git a/ydb/core/http_proxy/CMakeLists.linux-x86_64.txt b/ydb/core/http_proxy/CMakeLists.linux-x86_64.txt
index ca22afad07..0d79a18710 100644
--- a/ydb/core/http_proxy/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/http_proxy/CMakeLists.linux-x86_64.txt
@@ -22,6 +22,7 @@ target_link_libraries(ydb-core-http_proxy PUBLIC
ydb-core-base
ydb-core-protos
core-grpc_services-local_rpc
+ ydb-core-security
yql-public-issue
library-http_proxy-authorization
library-http_proxy-error
diff --git a/ydb/core/http_proxy/CMakeLists.windows-x86_64.txt b/ydb/core/http_proxy/CMakeLists.windows-x86_64.txt
index 3be3d9f298..7b3deb955e 100644
--- a/ydb/core/http_proxy/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/http_proxy/CMakeLists.windows-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-http_proxy PUBLIC
ydb-core-base
ydb-core-protos
core-grpc_services-local_rpc
+ ydb-core-security
yql-public-issue
library-http_proxy-authorization
library-http_proxy-error
diff --git a/ydb/core/http_proxy/auth_factory.cpp b/ydb/core/http_proxy/auth_factory.cpp
index 5d7edb38a9..b09f212735 100644
--- a/ydb/core/http_proxy/auth_factory.cpp
+++ b/ydb/core/http_proxy/auth_factory.cpp
@@ -65,7 +65,9 @@ void TIamAuthFactory::Initialize(
NKikimr::NHttpProxy::MakeIamTokenServiceID(),
TActorSetupCmd(actor, TMailboxType::HTSwap, appData.UserPoolId)));
- actor = NKikimr::NHttpProxy::CreateMetricsActor(NKikimr::NHttpProxy::TMetricsSettings{appData.Counters->GetSubgroup("counters", "http_proxy")});
+ bool isServerless = appData.FeatureFlags.GetEnableDbCounters(); //TODO: find out it via describe
+
+ actor = NKikimr::NHttpProxy::CreateMetricsActor(NKikimr::NHttpProxy::TMetricsSettings{appData.Counters->GetSubgroup("counters", isServerless ? "http_proxy_serverless" : "http_proxy")});
localServices.push_back(std::pair<TActorId, TActorSetupCmd>(
NKikimr::NHttpProxy::MakeMetricsServiceID(),
TActorSetupCmd(actor, TMailboxType::HTSwap, appData.UserPoolId)));
diff --git a/ydb/core/http_proxy/http_req.cpp b/ydb/core/http_proxy/http_req.cpp
index 5c82d8c67a..5aae2d8114 100644
--- a/ydb/core/http_proxy/http_req.cpp
+++ b/ydb/core/http_proxy/http_req.cpp
@@ -17,6 +17,7 @@
#include <library/cpp/protobuf/json/proto2json_printer.h>
#include <library/cpp/uri/uri.h>
+#include <ydb/core/security/ticket_parser_impl.h>
#include <ydb/core/base/appdata.h>
#include <ydb/core/grpc_caching/cached_grpc_request_actor.h>
#include <ydb/core/grpc_services/local_rpc/local_rpc.h>
@@ -971,8 +972,8 @@ namespace NKikimr::NHttpProxy {
void HandleTicketParser(const TEvTicketParser::TEvAuthorizeTicketResult::TPtr& ev, const TActorContext& ctx) {
if (ev->Get()->Error) {
- return ReplyWithError(ctx, NYdb::EStatus::UNAUTHORIZED, ev->Get()->Error.Message);
- };
+ return ReplyWithError(ctx, ev->Get()->Error.Retryable ? NYdb::EStatus::UNAVAILABLE : NYdb::EStatus::UNAUTHORIZED, ev->Get()->Error.Message);
+ }
ctx.Send(Sender, new TEvServerlessProxy::TEvToken(ev->Get()->Token->GetUserSID(), "", ev->Get()->SerializedToken, {"", DatabaseId, DatabasePath, CloudId, FolderId}));
LOG_SP_DEBUG_S(ctx, NKikimrServices::HTTP_PROXY, "Authorized successfully");
@@ -1080,11 +1081,14 @@ namespace NKikimr::NHttpProxy {
SendAuthenticationRequest(ctx);
return;
}
- return ReplyWithError(ctx, NYdb::EStatus::UNAUTHORIZED, TStringBuilder() <<
- "requestid " << RequestId << "; " <<
- "can not authenticate service account user: " << ev->Get()->Status.Msg);
+ return ReplyWithError(ctx, ev->Get()->Status.InternalError || NKikimr::IsRetryableGrpcError(ev->Get()->Status)
+ ? NYdb::EStatus::UNAVAILABLE
+ : NYdb::EStatus::UNAUTHORIZED,
+ TStringBuilder() << "requestid " << RequestId
+ << "; can not authenticate service account user");
+
} else if (!ev->Get()->Response.subject().has_service_account()) {
- return ReplyWithError(ctx, NYdb::EStatus::UNAUTHORIZED,
+ return ReplyWithError(ctx, NYdb::EStatus::INTERNAL_ERROR,
"(this error should not have been reached).");
}
RetryCounter.Void();
@@ -1120,8 +1124,10 @@ namespace NKikimr::NHttpProxy {
SendIamTokenRequest(ctx);
return;
}
- return ReplyWithError(ctx, NYdb::EStatus::UNAUTHORIZED, TStringBuilder() <<
- "IAM token issue error: " << ev->Get()->Status.Msg);
+ return ReplyWithError(ctx, ev->Get()->Status.InternalError || NKikimr::IsRetryableGrpcError(ev->Get()->Status)
+ ? NYdb::EStatus::UNAVAILABLE
+ : NYdb::EStatus::UNAUTHORIZED,
+ TStringBuilder() << "IAM token issue error: " << ev->Get()->Status.Msg);
}
RetryCounter.Void();
diff --git a/ydb/core/http_proxy/ya.make b/ydb/core/http_proxy/ya.make
index 79cb89148b..05534e05a8 100644
--- a/ydb/core/http_proxy/ya.make
+++ b/ydb/core/http_proxy/ya.make
@@ -28,6 +28,7 @@ PEERDIR(
ydb/core/base
ydb/core/protos
ydb/core/grpc_services/local_rpc
+ ydb/core/security
ydb/library/yql/public/issue
ydb/library/http_proxy/authorization
ydb/library/http_proxy/error
diff --git a/ydb/core/io_formats/csv_arrow.cpp b/ydb/core/io_formats/csv_arrow.cpp
index 8834b02674..71e7ec31f5 100644
--- a/ydb/core/io_formats/csv_arrow.cpp
+++ b/ydb/core/io_formats/csv_arrow.cpp
@@ -86,23 +86,16 @@ std::shared_ptr<arrow::RecordBatch> TArrowCSV::ConvertColumnTypes(std::shared_pt
if (!parsedBatch) {
return parsedBatch;
}
- std::shared_ptr<arrow::Schema> schema;
- {
- arrow::SchemaBuilder sBuilder;
- for (auto&& f : parsedBatch->schema()->fields()) {
- Y_VERIFY(sBuilder.AddField(std::make_shared<arrow::Field>(f->name(), f->type())).ok());
- }
- auto resultSchema = sBuilder.Finish();
- Y_VERIFY(resultSchema.ok());
- schema = *resultSchema;
- }
+ const auto& schema = parsedBatch->schema();
std::vector<std::shared_ptr<arrow::Array>> resultColumns;
std::set<std::string> columnsFilter(ResultColumns.begin(), ResultColumns.end());
arrow::SchemaBuilder sBuilderFixed;
- for (auto&& f : schema->fields()) {
+
+ for (const auto& f : schema->fields()) {
auto fArr = parsedBatch->GetColumnByName(f->name());
+ Y_VERIFY(fArr);
std::shared_ptr<arrow::DataType> originalType;
if (columnsFilter.contains(f->name()) || columnsFilter.empty()) {
auto it = OriginalColumnTypes.find(f->name());
@@ -180,9 +173,33 @@ std::shared_ptr<arrow::RecordBatch> TArrowCSV::ReadNext(const TString& csv, TStr
}
std::shared_ptr<arrow::RecordBatch> batchParsed;
- Reader->ReadNext(&batchParsed).ok();
+ auto res = Reader->ReadNext(&batchParsed);
+ if (!res.ok()) {
+ errString = ErrorPrefix() + res.ToString();
+ return {};
+ }
+
+ if (batchParsed) {
+ if (!batchParsed->Validate().ok()) {
+ errString = ErrorPrefix() + batchParsed->Validate().ToString();
+ return {};
+ }
+ if (!batchParsed->schema()->HasDistinctFieldNames()) {
+ errString = ErrorPrefix() + "duplicate column names:";
+ for (auto& field : batchParsed->schema()->fields()) {
+ if (batchParsed->schema()->GetFieldIndex(field->name()) == -1) {
+ errString += " '" + field->name() + "'";
+ }
+ }
+ return {};
+ }
+ }
std::shared_ptr<arrow::RecordBatch> batch = ConvertColumnTypes(batchParsed);
+ if (batch && !batch->Validate().ok()) {
+ errString = ErrorPrefix() + batch->Validate().ToString();
+ return {};
+ }
if (batch && !ResultColumns.empty()) {
batch = NArrow::ExtractColumns(batch, ResultColumns);
diff --git a/ydb/core/kesus/tablet/CMakeLists.darwin-x86_64.txt b/ydb/core/kesus/tablet/CMakeLists.darwin-x86_64.txt
index b28e35bf89..e8bcc4199b 100644
--- a/ydb/core/kesus/tablet/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kesus/tablet/CMakeLists.darwin-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(core-kesus-tablet PUBLIC
ydb-core-metering
ydb-core-protos
ydb-core-tablet_flat
+ ydb-library-time_series_vec
ydb-library-services
)
target_sources(core-kesus-tablet PRIVATE
diff --git a/ydb/core/kesus/tablet/CMakeLists.linux-aarch64.txt b/ydb/core/kesus/tablet/CMakeLists.linux-aarch64.txt
index cc942331cd..d0a80721c3 100644
--- a/ydb/core/kesus/tablet/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kesus/tablet/CMakeLists.linux-aarch64.txt
@@ -22,6 +22,7 @@ target_link_libraries(core-kesus-tablet PUBLIC
ydb-core-metering
ydb-core-protos
ydb-core-tablet_flat
+ ydb-library-time_series_vec
ydb-library-services
)
target_sources(core-kesus-tablet PRIVATE
diff --git a/ydb/core/kesus/tablet/CMakeLists.linux-x86_64.txt b/ydb/core/kesus/tablet/CMakeLists.linux-x86_64.txt
index cc942331cd..d0a80721c3 100644
--- a/ydb/core/kesus/tablet/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kesus/tablet/CMakeLists.linux-x86_64.txt
@@ -22,6 +22,7 @@ target_link_libraries(core-kesus-tablet PUBLIC
ydb-core-metering
ydb-core-protos
ydb-core-tablet_flat
+ ydb-library-time_series_vec
ydb-library-services
)
target_sources(core-kesus-tablet PRIVATE
diff --git a/ydb/core/kesus/tablet/CMakeLists.windows-x86_64.txt b/ydb/core/kesus/tablet/CMakeLists.windows-x86_64.txt
index b28e35bf89..e8bcc4199b 100644
--- a/ydb/core/kesus/tablet/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kesus/tablet/CMakeLists.windows-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(core-kesus-tablet PUBLIC
ydb-core-metering
ydb-core-protos
ydb-core-tablet_flat
+ ydb-library-time_series_vec
ydb-library-services
)
target_sources(core-kesus-tablet PRIVATE
diff --git a/ydb/core/kesus/tablet/rate_accounting.h b/ydb/core/kesus/tablet/rate_accounting.h
index 4ac00f831c..a3f0852ed0 100644
--- a/ydb/core/kesus/tablet/rate_accounting.h
+++ b/ydb/core/kesus/tablet/rate_accounting.h
@@ -1,7 +1,7 @@
#pragma once
#include <ydb/core/protos/kesus.pb.h>
-#include <ydb/core/util/time_series_vec.h>
+#include <ydb/library/time_series_vec/time_series_vec.h>
#include <library/cpp/actors/core/actorsystem.h>
#include <library/cpp/actors/core/actor.h>
diff --git a/ydb/core/kesus/tablet/ya.make b/ydb/core/kesus/tablet/ya.make
index 555e17b403..ce4b14c681 100644
--- a/ydb/core/kesus/tablet/ya.make
+++ b/ydb/core/kesus/tablet/ya.make
@@ -44,6 +44,7 @@ PEERDIR(
ydb/core/metering
ydb/core/protos
ydb/core/tablet_flat
+ ydb/library/time_series_vec
ydb/library/services
)
diff --git a/ydb/core/keyvalue/keyvalue_collect_operation.h b/ydb/core/keyvalue/keyvalue_collect_operation.h
index 49c67c34cf..1fd19da441 100644
--- a/ydb/core/keyvalue/keyvalue_collect_operation.h
+++ b/ydb/core/keyvalue/keyvalue_collect_operation.h
@@ -50,12 +50,14 @@ struct TCollectOperation : public TThrRefBase {
TCollectOperationHeader Header;
TVector<TLogoBlobID> Keep;
TVector<TLogoBlobID> DoNotKeep;
+ TVector<TLogoBlobID> TrashGoingToCollect;
TCollectOperation(ui64 collectGeneration, ui64 collectStep,
- TVector<TLogoBlobID> &&keep, TVector<TLogoBlobID> &&doNotKeep)
+ TVector<TLogoBlobID> &&keep, TVector<TLogoBlobID> &&doNotKeep, TVector<TLogoBlobID>&& trashGoingToCollect)
: Header(collectGeneration, collectStep, keep, doNotKeep)
, Keep(std::move(keep))
, DoNotKeep(std::move(doNotKeep))
+ , TrashGoingToCollect(std::move(trashGoingToCollect))
{}
};
diff --git a/ydb/core/keyvalue/keyvalue_collector.cpp b/ydb/core/keyvalue/keyvalue_collector.cpp
index b4c72dbd14..eeb2585ff8 100644
--- a/ydb/core/keyvalue/keyvalue_collector.cpp
+++ b/ydb/core/keyvalue/keyvalue_collector.cpp
@@ -34,9 +34,6 @@ class TKeyValueCollector : public TActorBootstrapped<TKeyValueCollector> {
TVector<TMap<ui32, TGroupCollector>> CollectorForGroupForChannel;
ui32 EndChannel = 0;
- // For DoNotKeep
- TVector<TLogoBlobID> CollectedDoNotKeep;
-
public:
static constexpr NKikimrServices::TActivity::EType ActorActivityType() {
return NKikimrServices::TActivity::KEYVALUE_ACTOR;
@@ -106,7 +103,6 @@ public:
maxDoNotKeepSizeInGroupChannel = Max(maxDoNotKeepSizeInGroupChannel, collector.DoNotKeep.size());
}
}
- CollectedDoNotKeep.reserve(Min(maxDoNotKeepSizeInGroupChannel, MaxCollectGarbageFlagsPerMessage));
SendTheRequest();
Become(&TThis::StateWait);
@@ -158,10 +154,6 @@ public:
(TabletId, TabletInfo->TabletID), (Channel, GetCurretChannelId()));
CollectorForGroupForChannel.pop_back();
}
- if (CollectedDoNotKeep.size()) {
- SendPartialCompleteGC();
- return;
- }
if (CollectorForGroupForChannel.empty()) {
SendCompleteGCAndDie();
return;
@@ -196,14 +188,6 @@ public:
}
}
- void SendPartialCompleteGC() {
- STLOG(NLog::PRI_DEBUG, NKikimrServices::KEYVALUE_GC, KVC14, "Collector send PartialCompleteGC",
- (TabletId, TabletInfo->TabletID),
- (FirstDoNotKeep, (CollectedDoNotKeep.size() ? CollectedDoNotKeep[0].ToString() : "none")),
- (CollectedDoNotKeepSize, CollectedDoNotKeep.size()));
- Send(KeyValueActorId, new TEvKeyValue::TEvPartialCompleteGC(std::move(CollectedDoNotKeep)));
- }
-
void SendCompleteGCAndDie() {
STLOG(NLog::PRI_DEBUG, NKikimrServices::KEYVALUE_GC, KVC19, "Collector send CompleteGC",
(TabletId, TabletInfo->TabletID));
@@ -251,9 +235,6 @@ public:
collector.NextCountOfSentFlags += doNotKeepSize;
Copy(begin, end, doNotKeep->begin());
- if (!IsRepeatedRequest) {
- Copy(doNotKeep->cbegin(), doNotKeep->cend(), std::back_inserter(CollectedDoNotKeep));
- }
}
ui32 keepStartIdx = 0;
@@ -298,18 +279,6 @@ public:
IsRepeatedRequest = false;
}
- void HandleContinueGC(TEvKeyValue::TEvContinueGC::TPtr &ev) {
- STLOG(NLog::PRI_DEBUG, NKikimrServices::KEYVALUE_GC, KVC13, "Collector continue GC",
- (TabletId, TabletInfo->TabletID));
- if (CollectorForGroupForChannel.empty()) {
- SendCompleteGCAndDie();
- return;
- }
- CollectedDoNotKeep = std::move(ev->Get()->Buffer);
- CollectedDoNotKeep.clear();
- SendTheRequest();
- }
-
void HandleWakeUp() {
auto collectorsOfCurrentChannel = CollectorForGroupForChannel.rbegin();
if (collectorsOfCurrentChannel == CollectorForGroupForChannel.rend()) {
@@ -352,7 +321,6 @@ public:
STATEFN(StateWait) {
switch (ev->GetTypeRewrite()) {
hFunc(TEvBlobStorage::TEvCollectGarbageResult, Handle);
- hFunc(TEvKeyValue::TEvContinueGC, HandleContinueGC);
cFunc(TEvents::TEvWakeup::EventType, HandleWakeUp);
cFunc(TEvents::TEvPoisonPill::EventType, HandlePoisonPill);
default:
diff --git a/ydb/core/keyvalue/keyvalue_collector_ut.cpp b/ydb/core/keyvalue/keyvalue_collector_ut.cpp
index 94d8314b8e..a7926ca3b8 100644
--- a/ydb/core/keyvalue/keyvalue_collector_ut.cpp
+++ b/ydb/core/keyvalue/keyvalue_collector_ut.cpp
@@ -117,7 +117,7 @@ Y_UNIT_TEST(TestKeyValueCollectorEmpty) {
TVector<TLogoBlobID> keep;
TVector<TLogoBlobID> doNotKeep;
- TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep)));
+ TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep), {}));
context.SetActor(CreateKeyValueCollector(
context.GetTabletActorId(), operation, context.GetTabletInfo().Get(), 200, 200, true));
@@ -144,7 +144,7 @@ Y_UNIT_TEST(TestKeyValueCollectorSingle) {
TVector<TLogoBlobID> keep;
keep.emplace_back(0x10010000001000Bull, 5, 58949, NKeyValue::BLOB_CHANNEL, 1209816, 10);
TVector<TLogoBlobID> doNotKeep;
- TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep)));
+ TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep), {}));
context.SetActor(CreateKeyValueCollector(
context.GetTabletActorId(), operation, context.GetTabletInfo().Get(), 200, 200, true));
@@ -180,7 +180,7 @@ Y_UNIT_TEST(TestKeyValueCollectorSingleWithOneError) {
TVector<TLogoBlobID> keep;
keep.emplace_back(0x10010000001000Bull, 5, 58949, NKeyValue::BLOB_CHANNEL, 1209816, 10);
TVector<TLogoBlobID> doNotKeep;
- TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep)));
+ TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep), {}));
context.SetActor(CreateKeyValueCollector(
context.GetTabletActorId(), operation, context.GetTabletInfo().Get(), 200, 200, true));
@@ -242,7 +242,7 @@ Y_UNIT_TEST(TestKeyValueCollectorMultiple) {
ids.insert(doNotKeep[i]);
}
- TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep)));
+ TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep), {}));
context.SetActor(CreateKeyValueCollector(
context.GetTabletActorId(), operation, context.GetTabletInfo().Get(), 200, 200, true));
@@ -275,16 +275,6 @@ Y_UNIT_TEST(TestKeyValueCollectorMultiple) {
context.Send(new TEvBlobStorage::TEvCollectGarbageResult(NKikimrProto::OK, collect->TabletId,
collect->RecordGeneration, collect->PerGenerationCounter, collect->Channel));
-
- if (collect && collect->DoNotKeep && collect->DoNotKeep->size()) {
- auto complete = context.GrabEvent<TEvKeyValue::TEvPartialCompleteGC>(handle);
- THashSet<TLogoBlobID> uniqueBlobs;
- uniqueBlobs.insert(complete->CollectedDoNotKeep.begin(), complete->CollectedDoNotKeep.end());
- UNIT_ASSERT_VALUES_EQUAL(uniqueBlobs.size(), complete->CollectedDoNotKeep.size());
- complete->CollectedDoNotKeep.clear();
- auto cont = std::make_unique<TEvKeyValue::TEvContinueGC>(std::move(complete->CollectedDoNotKeep));
- context.Send(cont.release());
- }
}
UNIT_ASSERT(erased == 8);
@@ -307,11 +297,11 @@ Y_UNIT_TEST(TestKeyValueCollectorMany) {
keep.emplace_back(0x10010000001000Bull, idx, 58949, NKeyValue::BLOB_CHANNEL, 1209816, 10);
}
- TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep)));
+ TIntrusivePtr<NKeyValue::TCollectOperation> operation(new NKeyValue::TCollectOperation(100, 100, std::move(keep), std::move(doNotKeep), {}));
context.SetActor(CreateKeyValueCollector(
context.GetTabletActorId(), operation, context.GetTabletInfo().Get(), 200, 200, true));
- auto handleGC = [&](bool withContinueGC, ui32 keepSize, ui32 doNotKeepSize) {
+ auto handleGC = [&](ui32 keepSize, ui32 doNotKeepSize) {
TAutoPtr<IEventHandle> handle;
auto collect = context.GrabEvent<TEvBlobStorage::TEvCollectGarbage>(handle);
UNIT_ASSERT(collect);
@@ -319,24 +309,17 @@ Y_UNIT_TEST(TestKeyValueCollectorMany) {
UNIT_ASSERT_VALUES_EQUAL((collect->DoNotKeep ? collect->DoNotKeep->size() : 0), doNotKeepSize);
context.Send(new TEvBlobStorage::TEvCollectGarbageResult(NKikimrProto::OK, collect->TabletId,
collect->RecordGeneration, collect->PerGenerationCounter, collect->Channel));
-
- if (withContinueGC) {
- auto complete = context.GrabEvent<TEvKeyValue::TEvPartialCompleteGC>(handle);
- complete->CollectedDoNotKeep.clear();
- auto cont = std::make_unique<TEvKeyValue::TEvContinueGC>(std::move(complete->CollectedDoNotKeep));
- context.Send(cont.release());
- }
};
- handleGC(true, 20, 20); // group 0
- handleGC(true, 10, 10); // group 1
- handleGC(true, 0, 10'000); // group 2 DoNotKeep 30..10029
- handleGC(true, 30, 9'970); // group 2 DoNotKeep 10030..19999 Keep 30.59
- handleGC(false, 10'000, 0); // group 2 Keep 60..10059
- handleGC(false, 9'940, 0); // group 2 Keep 10060..20000
- handleGC(false, 0, 0); // group 3
- handleGC(false, 0, 0); // group 4
- handleGC(false, 0, 0); // group 5
+ handleGC(20, 20); // group 0
+ handleGC(10, 10); // group 1
+ handleGC(0, 10'000); // group 2 DoNotKeep 30..10029
+ handleGC(30, 9'970); // group 2 DoNotKeep 10030..19999 Keep 30.59
+ handleGC(10'000, 0); // group 2 Keep 60..10059
+ handleGC(9'940, 0); // group 2 Keep 10060..20000
+ handleGC(0, 0); // group 3
+ handleGC(0, 0); // group 4
+ handleGC(0, 0); // group 5
TAutoPtr<IEventHandle> handle;
auto eraseCollect = context.GrabEvent<TEvKeyValue::TEvCompleteGC>(handle);
diff --git a/ydb/core/keyvalue/keyvalue_events.h b/ydb/core/keyvalue/keyvalue_events.h
index e504291f51..2c64e120e3 100644
--- a/ydb/core/keyvalue/keyvalue_events.h
+++ b/ydb/core/keyvalue/keyvalue_events.h
@@ -20,13 +20,10 @@ struct TEvKeyValue {
EvNotify,
EvStoreCollect,
EvCollect,
- EvEraseCollect,
EvPeriodicRefresh,
EvReportWriteLatency,
EvUpdateWeights,
EvCompleteGC,
- EvPartialCompleteGC,
- EvContinueGC,
EvRead = EvRequest + 16,
EvReadRange,
@@ -145,25 +142,28 @@ struct TEvKeyValue {
ui64 Step;
NKeyValue::TRequestStat Stat;
NMsgBusProxy::EResponseStatus Status;
+ std::deque<std::pair<TLogoBlobID, bool>> RefCountsIncr;
TEvNotify() { }
TEvNotify(ui64 requestUid, ui64 generation, ui64 step, const NKeyValue::TRequestStat &stat,
- NMsgBusProxy::EResponseStatus status)
+ NMsgBusProxy::EResponseStatus status, std::deque<std::pair<TLogoBlobID, bool>>&& refCountsIncr)
: RequestUid(requestUid)
, Generation(generation)
, Step(step)
, Stat(stat)
, Status(status)
+ , RefCountsIncr(std::move(refCountsIncr))
{}
TEvNotify(ui64 requestUid, ui64 generation, ui64 step, const NKeyValue::TRequestStat &stat,
- NKikimrKeyValue::Statuses::ReplyStatus status)
+ NKikimrKeyValue::Statuses::ReplyStatus status, std::deque<std::pair<TLogoBlobID, bool>>&& refCountsIncr)
: RequestUid(requestUid)
, Generation(generation)
, Step(step)
, Stat(stat)
, Status(ConvertStatus(status))
+ , RefCountsIncr(std::move(refCountsIncr))
{}
static NMsgBusProxy::EResponseStatus ConvertStatus(NKikimrKeyValue::Statuses::ReplyStatus status) {
@@ -182,18 +182,10 @@ struct TEvKeyValue {
}
};
- struct TEvStoreCollect : public TEventLocal<TEvStoreCollect, EvStoreCollect> {
- TEvStoreCollect() { }
- };
-
struct TEvCollect : public TEventLocal<TEvCollect, EvCollect> {
TEvCollect() { }
};
- struct TEvEraseCollect : public TEventLocal<TEvEraseCollect, EvEraseCollect> {
- TEvEraseCollect() { }
- };
-
struct TEvPeriodicRefresh : public TEventLocal<TEvPeriodicRefresh, EvPeriodicRefresh> {
TEvPeriodicRefresh() { }
};
@@ -201,23 +193,6 @@ struct TEvKeyValue {
struct TEvCompleteGC : public TEventLocal<TEvCompleteGC, EvCompleteGC> {
TEvCompleteGC() { }
};
-
- struct TEvPartialCompleteGC : public TEventLocal<TEvPartialCompleteGC, EvPartialCompleteGC> {
- TVector<TLogoBlobID> CollectedDoNotKeep;
-
- TEvPartialCompleteGC() { }
-
- TEvPartialCompleteGC(TVector<TLogoBlobID> &&doNotKeeps)
- : CollectedDoNotKeep(std::move(doNotKeeps))
- { }
- };
-
- struct TEvContinueGC : public TEventLocal<TEvContinueGC, EvContinueGC> {
- TVector<TLogoBlobID> Buffer;
- TEvContinueGC(TVector<TLogoBlobID> &&buffer)
- : Buffer(std::move(buffer))
- { }
- };
};
} // NKikimr
diff --git a/ydb/core/keyvalue/keyvalue_flat_impl.h b/ydb/core/keyvalue/keyvalue_flat_impl.h
index 7b3eaca03b..9b42199f91 100644
--- a/ydb/core/keyvalue/keyvalue_flat_impl.h
+++ b/ydb/core/keyvalue/keyvalue_flat_impl.h
@@ -163,6 +163,33 @@ protected:
}
};
+ struct TTxDropRefCountsOnError : NTabletFlatExecutor::ITransaction {
+ std::deque<std::pair<TLogoBlobID, bool>> RefCountsIncr;
+ const ui64 RequestUid;
+ TKeyValueFlat *Self;
+
+ TTxDropRefCountsOnError(std::deque<std::pair<TLogoBlobID, bool>>&& refCountsIncr, ui64 requestUid, TKeyValueFlat *self)
+ : RefCountsIncr(std::move(refCountsIncr))
+ , RequestUid(requestUid)
+ , Self(self)
+ {}
+
+ TTxType GetTxType() const override { return TXTYPE_DROP_REF_COUNTS_ON_ERROR; }
+
+ bool Execute(NTabletFlatExecutor::TTransactionContext &txc, const TActorContext &ctx) override {
+ LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << Self->TabletID() << " TTxDropRefCountsOnError Execute");
+ if (!Self->State.GetIsDamaged()) {
+ TSimpleDbFlat db(txc.DB);
+ Self->State.DropRefCountsOnErrorInTx(std::move(RefCountsIncr), db, ctx, RequestUid);
+ }
+ return true;
+ }
+
+ void Complete(const TActorContext &ctx) override {
+ LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << Self->TabletID() << " TTxDropRefCountsOnError Complete");
+ }
+ };
+
struct TTxMonitoring : public NTabletFlatExecutor::ITransaction {
const THolder<NMon::TEvRemoteHttpInfo> Event;
const TActorId RespondTo;
@@ -203,7 +230,7 @@ protected:
};
using TExecuteMethod = void (TKeyValueState::*)(ISimpleDb &db, const TActorContext &ctx);
- using TCompleteMethod = void (TKeyValueState::*)(const TActorContext &ctx);
+ using TCompleteMethod = void (TKeyValueState::*)(const TActorContext &ctx, const TTabletStorageInfo *info);
template <typename TDerived, TExecuteMethod ExecuteMethod, TCompleteMethod CompleteMethod>
struct TTxUniversal : NTabletFlatExecutor::ITransaction {
@@ -223,7 +250,7 @@ protected:
void Complete(const TActorContext &ctx) override {
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << Self->TabletID()
<< ' ' << TDerived::Name << " Complete");
- (Self->State.*CompleteMethod)(ctx);
+ (Self->State.*CompleteMethod)(ctx, Self->Info());
}
};
@@ -240,11 +267,8 @@ protected:
}
#endif
- KV_SIMPLE_TX(StoreCollect);
- KV_SIMPLE_TX(EraseCollect);
KV_SIMPLE_TX(RegisterInitialGCCompletion);
KV_SIMPLE_TX(CompleteGC);
- KV_SIMPLE_TX(PartialCompleteGC);
TKeyValueState State;
TDeque<TAutoPtr<IEventHandle>> InitialEventsQueue;
@@ -261,6 +285,10 @@ protected:
HandleDie(ctx);
}
+ void DefaultSignalTabletActive(const TActorContext &) final {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &ctx) override {
Executor()->RegisterExternalTabletCounters(State.TakeTabletCounters());
State.SetupResourceMetrics(Executor()->GetResourceMetrics());
@@ -303,13 +331,6 @@ protected:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Online state
- void Handle(TEvKeyValue::TEvEraseCollect::TPtr &ev, const TActorContext &ctx) {
- LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletID()
- << " Handle TEvEraseCollect " << ev->Get()->ToString());
- State.OnEvEraseCollect(ctx);
- Execute(new TTxEraseCollect(this), ctx);
- }
-
void Handle(TEvKeyValue::TEvCompleteGC::TPtr &ev, const TActorContext &ctx) {
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletID()
<< " Handle TEvCompleteGC " << ev->Get()->ToString());
@@ -317,13 +338,6 @@ protected:
Execute(new TTxCompleteGC(this), ctx);
}
- void Handle(TEvKeyValue::TEvPartialCompleteGC::TPtr &ev, const TActorContext &ctx) {
- LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletID()
- << " Handle TEvPartitialCompleteGC " << ev->Get()->ToString());
- State.OnEvPartialCompleteGC(ev->Get());
- Execute(new TTxPartialCompleteGC(this), ctx);
- }
-
void Handle(TEvKeyValue::TEvCollect::TPtr &ev, const TActorContext &ctx) {
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletID()
<< " Handle TEvCollect " << ev->Get()->ToString());
@@ -347,12 +361,6 @@ protected:
}
}
- void Handle(TEvKeyValue::TEvStoreCollect::TPtr &ev, const TActorContext &ctx) {
- LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletID()
- << " Handle TEvStoreCollect " << ev->Get()->ToString());
- Execute(new TTxStoreCollect(this), ctx);
- }
-
void CheckYellowChannels(TRequestStat& stat) {
IExecutor* executor = Executor();
if ((stat.YellowMoveChannels || stat.YellowStopChannels) && executor) {
@@ -377,6 +385,10 @@ protected:
CheckYellowChannels(ev->Get()->Stat);
State.OnRequestComplete(event.RequestUid, event.Generation, event.Step, ctx, Info(), event.Status, event.Stat);
+ State.DropRefCountsOnError(event.RefCountsIncr, true, ctx);
+ if (!event.RefCountsIncr.empty()) {
+ Execute(new TTxDropRefCountsOnError(std::move(event.RefCountsIncr), event.RequestUid, this), ctx);
+ }
}
void Handle(TEvBlobStorage::TEvCollectGarbageResult::TPtr &ev, const TActorContext &ctx) {
@@ -484,7 +496,7 @@ public:
virtual void CreatedHook(const TActorContext &ctx)
{
- Y_UNUSED(ctx);
+ SignalTabletActive(ctx);
}
virtual bool HandleHook(STFUNC_SIG)
@@ -512,11 +524,8 @@ public:
hFunc(TEvKeyValue::TEvGetStorageChannelStatus, Handle);
hFunc(TEvKeyValue::TEvAcquireLock, Handle);
- HFunc(TEvKeyValue::TEvEraseCollect, Handle);
HFunc(TEvKeyValue::TEvCompleteGC, Handle);
- HFunc(TEvKeyValue::TEvPartialCompleteGC, Handle);
HFunc(TEvKeyValue::TEvCollect, Handle);
- HFunc(TEvKeyValue::TEvStoreCollect, Handle);
HFunc(TEvKeyValue::TEvRequest, Handle);
HFunc(TEvKeyValue::TEvIntermediate, Handle);
HFunc(TEvKeyValue::TEvNotify, Handle);
diff --git a/ydb/core/keyvalue/keyvalue_index_record.cpp b/ydb/core/keyvalue/keyvalue_index_record.cpp
index 35b4f8c1e0..120fe31fdf 100644
--- a/ydb/core/keyvalue/keyvalue_index_record.cpp
+++ b/ydb/core/keyvalue/keyvalue_index_record.cpp
@@ -11,7 +11,7 @@ TIndexRecord::TChainItem::TChainItem(const TLogoBlobID &id, ui64 offset)
{
}
-TIndexRecord::TChainItem::TChainItem(TRcBuf&& inlineData, ui64 offset)
+TIndexRecord::TChainItem::TChainItem(TRope&& inlineData, ui64 offset)
: InlineData(std::move(inlineData))
, Offset(offset)
{
@@ -64,16 +64,12 @@ ui32 TIndexRecord::GetReadItems(ui64 offset, ui64 size, TIntermediate::TRead& re
Y_VERIFY(it != Chain.end());
ui32 readSize = Min<ui64>(size, it->GetSize() - offset);
if (it->IsInline()) {
- if (read.Value.size() != read.ValueSize) {
- read.Value.resize(read.ValueSize);
- }
- Y_VERIFY(it->InlineData.size() >= readSize + offset, "size# %" PRIu64 " read# %" PRIu64 " offset# %" PRIu64,
- (ui64)it->InlineData.size(), (ui64)readSize, (ui64)offset);
- Y_VERIFY(read.ValueSize >= readSize + valueOffset);
- memcpy(const_cast<char *>(read.Value.data()) + valueOffset, it->InlineData.data() + offset, readSize);
+ const auto& rope = it->InlineData;
+ const auto begin = rope.Position(offset);
+ const auto end = begin + readSize;
+ read.Value.Write(valueOffset, TRope(begin, end));
} else {
- read.ReadItems.push_back(TIntermediate::TRead::TReadItem(
- it->LogoBlobId, static_cast<ui32>(offset), readSize, valueOffset));
+ read.ReadItems.emplace_back(it->LogoBlobId, static_cast<ui32>(offset), readSize, valueOffset);
}
size -= readSize;
offset = 0;
@@ -105,17 +101,18 @@ TString TIndexRecord::Serialize() const {
data->CreationUnixTime = CreationUnixTime;
ui64 offset = 0;
- for (ui32 i = 0; i < Chain.size(); ++i) {
- if (Chain[i].IsInline()) {
+ for (const auto& item : Chain) {
+ if (item.IsInline()) {
memset(data->Serialized + offset, 0, sizeof(ui64));
offset += sizeof(ui64);
- ui32 size = Chain[i].InlineData.size();
+ ui32 size = item.InlineData.size();
memcpy(data->Serialized + offset, &size, sizeof(ui32));
offset += sizeof(ui32);
- memcpy(data->Serialized + offset, Chain[i].InlineData.data(), Chain[i].InlineData.size());
- offset += Chain[i].InlineData.size();
+ auto& rope = item.InlineData;
+ rope.begin().ExtractPlainDataAndAdvance(data->Serialized + offset, rope.size());
+ offset += rope.size();
} else {
- memcpy(data->Serialized + offset, &Chain[i].LogoBlobId, sizeof(TLogoBlobID));
+ memcpy(data->Serialized + offset, &item.LogoBlobId, sizeof(TLogoBlobID));
offset += sizeof(TLogoBlobID);
}
}
@@ -169,15 +166,17 @@ bool TIndexRecord::Deserialize1(const TString &rawData, TString &outErrorInfo) {
bool TIndexRecord::Deserialize2(const TString &rawData, TString &outErrorInfo) {
Y_VERIFY(rawData.size() >= sizeof(TKeyValueData2));
- const TKeyValueData2 *data = (const TKeyValueData2 *)rawData.data();
- if (!data->CheckChecksum(rawData.size())) {
+ TRcBuf rawDataBuffer(rawData); // encode TString into TRcBuf to slice it further
+ const TContiguousSpan rawDataSpan = rawDataBuffer.GetContiguousSpan();
+ const TKeyValueData2 *data = reinterpret_cast<const TKeyValueData2*>(rawDataSpan.data());
+ if (!data->CheckChecksum(rawDataSpan.size())) {
TStringStream str;
- str << " data->CheckChecksum(rawData.size)# ERROR ";
+ str << " data->CheckChecksum(rawDataSpan.size)# ERROR ";
str << " CreationUnixTime# " << data->CreationUnixTime;
- str << " rawData.size# " << rawData.size();
+ str << " rawDataSpan.size# " << rawDataSpan.size();
str << " data# ";
- for (ui32 i = 0; i < rawData.size(); ++i) {
- ui8 d = ((const ui8*)rawData.data())[i];
+ for (ui32 i = 0; i < rawDataSpan.size(); ++i) {
+ ui8 d = ((const ui8*)rawDataSpan.data())[i];
str << Sprintf("%02x", (ui32)d);
}
outErrorInfo = str.Str();
@@ -186,7 +185,7 @@ bool TIndexRecord::Deserialize2(const TString &rawData, TString &outErrorInfo) {
Y_VERIFY(data->DataHeader.ItemType == EIT_KEYVALUE_2);
CreationUnixTime = data->CreationUnixTime;
ui64 chainOffset = 0;
- ui64 endOffset = rawData.size() - sizeof(TKeyValueData2);
+ ui64 endOffset = rawDataSpan.size() - sizeof(TKeyValueData2);
ui64 offset = 0;
while (offset < endOffset) {
if (endOffset - offset < sizeof(ui64)) {
@@ -218,8 +217,10 @@ bool TIndexRecord::Deserialize2(const TString &rawData, TString &outErrorInfo) {
outErrorInfo = " Deserialization error# DEA4";
return false;
}
- TRcBuf inlineData = TRcBuf::Uninitialized(size);
- memcpy(inlineData.GetDataMut(), data->Serialized + offset, size);
+ TRope inlineData;
+ if (size) {
+ inlineData = TRcBuf(TRcBuf::Piece, data->Serialized + offset, size, rawDataBuffer);
+ }
offset += size;
Chain.push_back(TIndexRecord::TChainItem(std::move(inlineData), chainOffset));
chainOffset += size;
diff --git a/ydb/core/keyvalue/keyvalue_index_record.h b/ydb/core/keyvalue/keyvalue_index_record.h
index f4797861ab..80ca38a42b 100644
--- a/ydb/core/keyvalue/keyvalue_index_record.h
+++ b/ydb/core/keyvalue/keyvalue_index_record.h
@@ -10,11 +10,11 @@ namespace NKeyValue {
struct TIndexRecord {
struct TChainItem {
TLogoBlobID LogoBlobId;
- TRcBuf InlineData;
+ TRope InlineData;
ui64 Offset;
TChainItem(const TLogoBlobID &id, ui64 offset);
- TChainItem(TRcBuf&& inlineData, ui64 offset);
+ TChainItem(TRope&& inlineData, ui64 offset);
bool IsInline() const;
ui64 GetSize() const;
diff --git a/ydb/core/keyvalue/keyvalue_intermediate.cpp b/ydb/core/keyvalue/keyvalue_intermediate.cpp
index 82a78d9fa2..16e6cb06eb 100644
--- a/ydb/core/keyvalue/keyvalue_intermediate.cpp
+++ b/ydb/core/keyvalue/keyvalue_intermediate.cpp
@@ -51,6 +51,12 @@ NKikimrProto::EReplyStatus TIntermediate::TRead::CumulativeStatus() const {
}
}
+TRope TIntermediate::TRead::BuildRope() {
+ TRope rope = Value ? Value.GetMonolith() : TRope();
+ Y_VERIFY(!Value || rope.size() == ValueSize);
+ return rope;
+}
+
TIntermediate::TIntermediate(TActorId respondTo, TActorId keyValueActorId, ui64 channelGeneration, ui64 channelStep,
TRequestType::EType requestType)
: Cookie(0)
@@ -81,7 +87,7 @@ void TIntermediate::UpdateStat() {
Stat.ReadNodata++;
} else if (read.Status == NKikimrProto::OK) {
Stat.Reads++;
- Stat.ReadBytes += read.Value.size();
+ Stat.ReadBytes += read.ValueSize;
}
};
auto checkRangeRead = [&] (const auto &range) {
@@ -91,7 +97,7 @@ void TIntermediate::UpdateStat() {
Stat.RangeReadItemsNodata++;
} else if (read.Status == NKikimrProto::OK) {
Stat.RangeReadItems++;
- Stat.RangeReadBytes += read.Value.size();
+ Stat.RangeReadBytes += read.ValueSize;
}
}
} else {
diff --git a/ydb/core/keyvalue/keyvalue_intermediate.h b/ydb/core/keyvalue/keyvalue_intermediate.h
index 5f5b7e20e8..3812a8e7fa 100644
--- a/ydb/core/keyvalue/keyvalue_intermediate.h
+++ b/ydb/core/keyvalue/keyvalue_intermediate.h
@@ -7,6 +7,7 @@
#include <ydb/core/protos/base.pb.h>
#include <ydb/core/protos/msgbus_kv.pb.h>
#include <ydb/core/protos/msgbus.pb.h>
+#include <ydb/core/util/fragmented_buffer.h>
#include <ydb/core/keyvalue/protos/events.pb.h>
namespace NKikimr {
@@ -34,7 +35,7 @@ struct TIntermediate {
TVector<TReadItem> ReadItems;
TString Key;
- TString Value;
+ TFragmentedBuffer Value;
ui32 Offset;
ui32 Size;
ui32 ValueSize;
@@ -50,6 +51,7 @@ struct TIntermediate {
NKikimrClient::TKeyValueRequest::EStorageChannel storageChannel);
NKikimrProto::EReplyStatus ItemsStatus() const;
NKikimrProto::EReplyStatus CumulativeStatus() const;
+ TRope BuildRope();
};
struct TRangeRead {
TDeque<TRead> Reads;
@@ -61,7 +63,7 @@ struct TIntermediate {
struct TWrite {
TVector<TLogoBlobID> LogoBlobIds;
TString Key;
- TRcBuf Data;
+ TRope Data;
TEvBlobStorage::TEvPut::ETactic Tactic;
NKikimrBlobStorage::EPutHandleClass HandleClass;
NKikimrProto::EReplyStatus Status;
@@ -87,7 +89,7 @@ struct TIntermediate {
};
struct TGetStatus {
NKikimrClient::TKeyValueRequest::EStorageChannel StorageChannel;
- TLogoBlobID LogoBlobId;
+ ui32 GroupId;
NKikimrProto::EReplyStatus Status;
TStorageStatusFlags StatusFlags;
};
@@ -148,9 +150,12 @@ struct TIntermediate {
bool IsReplied;
+ bool UsePayloadInResponse = false;
+
TRequestStat Stat;
NKikimrClient::TResponse Response;
+ std::vector<TRope> Payload;
NKikimrKeyValue::ExecuteTransactionResult ExecuteTransactionResponse;
NKikimrKeyValue::GetStorageChannelStatusResult GetStorageChannelStatusResponse;
diff --git a/ydb/core/keyvalue/keyvalue_state.cpp b/ydb/core/keyvalue/keyvalue_state.cpp
index f21cbf9176..f05fc122e1 100644
--- a/ydb/core/keyvalue/keyvalue_state.cpp
+++ b/ydb/core/keyvalue/keyvalue_state.cpp
@@ -438,28 +438,8 @@ void TKeyValueState::Load(const TString &key, const TString& value) {
break;
}
case EIT_COLLECT: {
+ // just ignore the record
Y_VERIFY(arbitraryPart.size() == 0);
- Y_VERIFY(!CollectOperation.Get());
- Y_VERIFY(value.size() >= sizeof(TCollectOperationHeader));
- const TCollectOperationHeader *header = (const TCollectOperationHeader*)value.data();
- Y_VERIFY(header->DataHeader.ItemType == EIT_COLLECT);
- ui64 totalSize = sizeof(TCollectOperationHeader)
- + sizeof(TLogoBlobID) * (header->KeepCount + header->DoNotKeepCount);
- Y_VERIFY(value.size() == totalSize);
- TVector<TLogoBlobID> keep;
- TVector<TLogoBlobID> doNotKeep;
- keep.resize(header->KeepCount);
- doNotKeep.resize(header->DoNotKeepCount);
- const char* data = value.data() + sizeof(TCollectOperationHeader);
- if (keep.size()) {
- memcpy((char *) &keep[0], data, sizeof(TLogoBlobID) * keep.size());
- }
- data += sizeof(TLogoBlobID) * keep.size();
- if (doNotKeep.size()) {
- memcpy((char *) &doNotKeep[0], data, sizeof(TLogoBlobID) * doNotKeep.size());
- }
- CollectOperation.Reset(new TCollectOperation(
- header->CollectGeneration, header->CollectStep, std::move(keep), std::move(doNotKeep)));
break;
}
case EIT_STATE: {
@@ -601,12 +581,6 @@ void TKeyValueState::InitExecute(ui64 tabletId, TActorId keyValueActorId, ui32 e
}
}
- if (CollectOperation) {
- for (const TLogoBlobID &id : CollectOperation->Keep) {
- addBlobToKeep(id);
- }
- }
-
for (const auto &channelInfo : info->Channels) {
if (channelInfo.Channel < BLOB_CHANNEL) {
continue;
@@ -630,10 +604,11 @@ void TKeyValueState::InitExecute(ui64 tabletId, TActorId keyValueActorId, ui32 e
std::tie(group, channel) = keepInfo.first;
THolder<TVector<TLogoBlobID>>& keep = keepInfo.second;
+ const ui32 step = TEvBlobStorage::TEvCollectGarbage::PerGenerationCounterStepSize(keep.Get(), nullptr);
auto ev = MakeHolder<TEvBlobStorage::TEvCollectGarbage>(info->TabletID, executorGeneration,
PerGenerationCounter, channel, true /*collect*/, barrierGeneration, barrierStep, keep.Release(),
nullptr /*doNotKeep*/, TInstant::Max(), false /*isMultiCollectAllowed*/, false /*hard*/);
- ++PerGenerationCounter;
+ PerGenerationCounter += step;
const TActorId nodeWarden = MakeBlobStorageNodeWardenID(ctx.SelfID.NodeId());
const TActorId proxy = MakeBlobStorageProxyID(group);
@@ -686,44 +661,14 @@ void TKeyValueState::InitExecute(ui64 tabletId, TActorId keyValueActorId, ui32 e
ChannelRangeSets[id.Channel()].Remove(id.Generation());
}
}
- if (CollectOperation) {
- auto &keep = CollectOperation->Keep;
- for (auto it = keep.begin(); it != keep.end(); ++it) {
- const TLogoBlobID &id = *it;
- if (id.Channel() < ChannelRangeSets.size()) {
- ChannelRangeSets[id.Channel()].Remove(id.Generation());
- }
- }
- auto &doNotKeep = CollectOperation->DoNotKeep;
- for (auto it = doNotKeep.begin(); it != doNotKeep.end(); ++it) {
- const TLogoBlobID &id = *it;
- if (id.Channel() < ChannelRangeSets.size()) {
- ChannelRangeSets[id.Channel()].Remove(id.Generation());
- }
- }
- // Patch collect operation generation and step
- Y_VERIFY(CollectOperation->Header.GetCollectGeneration() < ExecutorGeneration);
- CollectOperation->Header.SetCollectGeneration(ExecutorGeneration);
- CollectOperation->Header.SetCollectStep(0);
- }
-
- if (CollectOperation) {
- for (const TLogoBlobID &id : CollectOperation->DoNotKeep) {
- Trash.insert(id);
- THelpers::DbUpdateTrash(id, db, ctx);
- }
- THelpers::DbEraseCollect(db, ctx);
- CollectOperation = nullptr;
- }
-
+ THelpers::DbEraseCollect(db, ctx);
THelpers::DbUpdateState(StoredState, db, ctx);
-
// corner case, if no CollectGarbage events were sent
if (InitialCollectsSent == 0) {
SendCutHistory(ctx);
- RegisterInitialGCCompletionComplete(ctx);
+ RegisterInitialGCCompletionComplete(ctx, info);
} else {
IsCollectEventSent = true;
}
@@ -748,9 +693,10 @@ void TKeyValueState::RegisterInitialGCCompletionExecute(ISimpleDb &db, const TAc
THelpers::DbUpdateState(StoredState, db, ctx);
}
-void TKeyValueState::RegisterInitialGCCompletionComplete(const TActorContext &ctx) {
+void TKeyValueState::RegisterInitialGCCompletionComplete(const TActorContext &ctx, const TTabletStorageInfo *info) {
IsCollectEventSent = false;
// initiate collection if trash was loaded from local base
+ ProcessPostponedTrims(ctx, info);
PrepareCollectIfNeeded(ctx);
}
@@ -798,7 +744,7 @@ void TKeyValueState::Step() {
}
}
-TLogoBlobID TKeyValueState::AllocateLogoBlobId(ui32 size, ui32 storageChannelIdx) {
+TLogoBlobID TKeyValueState::AllocateLogoBlobId(ui32 size, ui32 storageChannelIdx, ui64 requestUid) {
ui32 generation = ExecutorGeneration;
TLogoBlobID id(TabletId, generation, NextLogoBlobStep, storageChannelIdx, size, NextLogoBlobCookie);
if (NextLogoBlobCookie < TLogoBlobID::MaxCookie) {
@@ -808,6 +754,8 @@ TLogoBlobID TKeyValueState::AllocateLogoBlobId(ui32 size, ui32 storageChannelIdx
}
Y_VERIFY(!CollectOperation || THelpers::GenerationStep(id) >
THelpers::TGenerationStep(CollectOperation->Header.GetCollectGeneration(), CollectOperation->Header.GetCollectStep()));
+ ++InFlightForStep[id.Step()];
+ ++RequestUidStepToCount[std::make_tuple(requestUid, id.Step())];
return id;
}
@@ -834,6 +782,7 @@ void TKeyValueState::RequestExecute(THolder<TIntermediate> &intermediate, ISimpl
// All reads done
intermediate->Response.SetStatus(NMsgBusProxy::MSTATUS_REJECTED);
intermediate->Response.SetErrorReason(str.Str());
+ DropRefCountsOnErrorInTx(std::move(intermediate->RefCountsIncr), db, ctx, intermediate->RequestUid);
return;
}
}
@@ -865,6 +814,7 @@ void TKeyValueState::RequestExecute(THolder<TIntermediate> &intermediate, ISimpl
// All reads done
intermediate->Response.SetStatus(NMsgBusProxy::MSTATUS_INTERNALERROR);
intermediate->Response.SetErrorReason(str.Str());
+ DropRefCountsOnErrorInTx(std::move(intermediate->RefCountsIncr), db, ctx, intermediate->RequestUid);
return;
}
}
@@ -879,10 +829,42 @@ void TKeyValueState::RequestComplete(THolder<TIntermediate> &intermediate, const
const TTabletStorageInfo *info) {
Reply(intermediate, ctx, info);
+
+ if (const auto it = TrashBeingCommitted.find(intermediate->RequestUid); it != TrashBeingCommitted.end()) {
+ Trash.insert(it->second.begin(), it->second.end());
+ TrashBeingCommitted.erase(it);
+ }
+
// Make sure there is no way for a successfull delete transaction to end without getting here
PrepareCollectIfNeeded(ctx);
}
+void TKeyValueState::DropRefCountsOnErrorInTx(std::deque<std::pair<TLogoBlobID, bool>>&& refCountsIncr, ISimpleDb& db,
+ const TActorContext& ctx, ui64 requestUid) {
+ for (const auto& [logoBlobId, initial] : refCountsIncr) {
+ Dereference(logoBlobId, db, ctx, initial, requestUid);
+ }
+}
+
+void TKeyValueState::DropRefCountsOnError(std::deque<std::pair<TLogoBlobID, bool>>& refCountsIncr, bool writesMade,
+ const TActorContext& /*ctx*/) {
+ auto pred = [&](const auto& item) {
+ const auto& [logoBlobId, initial] = item;
+ const auto it = RefCounts.find(logoBlobId);
+ Y_VERIFY(it != RefCounts.end() && it->second); // item must exist and have a refcount
+ if (it->second != 1) { // just drop the reference, item kept alive
+ --it->second;
+ } else if (initial && !writesMade) { // this was just generated BlobId and no writes were possibly made
+ RefCounts.erase(it);
+ } else { // this item has to be removed inside tx by rotation to Trash -- it may have been written somehow
+ return false;
+ }
+ return true;
+ };
+
+ refCountsIncr.erase(std::remove_if(refCountsIncr.begin(), refCountsIncr.end(), pred), refCountsIncr.end());
+}
+
///////////////////////////////////////////////////////////////////////////////
// Request processing
//
@@ -893,6 +875,9 @@ void TKeyValueState::Reply(THolder<TIntermediate> &intermediate, const TActorCon
if (intermediate->EvType == TEvKeyValue::TEvRequest::EventType) {
THolder<TEvKeyValue::TEvResponse> response(new TEvKeyValue::TEvResponse);
response->Record = intermediate->Response;
+ for (auto& item : intermediate->Payload) {
+ response->AddPayload(std::move(item));
+ }
ResourceMetrics->Network.Increment(response->Record.ByteSize());
ctx.Send(intermediate->RespondTo, response.Release());
}
@@ -936,16 +921,22 @@ void TKeyValueState::Reply(THolder<TIntermediate> &intermediate, const TActorCon
void TKeyValueState::ProcessCmd(TIntermediate::TRead &request,
NKikimrClient::TKeyValueResponse::TReadResult *legacyResponse,
- NKikimrKeyValue::StorageChannel */*response*/,
+ NKikimrKeyValue::StorageChannel* /*response*/,
ISimpleDb &/*db*/, const TActorContext &/*ctx*/, TRequestStat &/*stat*/, ui64 /*unixTime*/,
- TIntermediate* /*intermediate*/)
+ TIntermediate *intermediate)
{
NKikimrProto::EReplyStatus outStatus = request.CumulativeStatus();
request.Status = outStatus;
legacyResponse->SetStatus(outStatus);
if (outStatus == NKikimrProto::OK) {
- legacyResponse->SetValue(request.Value);
- Y_VERIFY(request.Value.size() == request.ValueSize);
+ TRope value = request.BuildRope();
+ if (intermediate->UsePayloadInResponse) {
+ legacyResponse->SetPayloadId(intermediate->Payload.size());
+ intermediate->Payload.push_back(std::move(value));
+ } else {
+ const TContiguousSpan span(value.GetContiguousSpan());
+ legacyResponse->SetValue(span.data(), span.size());
+ }
} else {
legacyResponse->SetMessage(request.Message);
if (outStatus == NKikimrProto::NODATA) {
@@ -978,7 +969,7 @@ void TKeyValueState::ProcessCmd(TIntermediate::TRangeRead &request,
NKikimrClient::TKeyValueResponse::TReadRangeResult *legacyResponse,
NKikimrKeyValue::StorageChannel */*response*/,
ISimpleDb &/*db*/, const TActorContext &/*ctx*/, TRequestStat &/*stat*/, ui64 /*unixTime*/,
- TIntermediate* /*intermediate*/)
+ TIntermediate *intermediate)
{
for (ui64 r = 0; r < request.Reads.size(); ++r) {
auto &read = request.Reads[r];
@@ -1021,8 +1012,14 @@ void TKeyValueState::ProcessCmd(TIntermediate::TRangeRead &request,
resultKv->SetStatus(outStatus);
resultKv->SetKey(read.Key);
if (request.IncludeData && (outStatus == NKikimrProto::OK || outStatus == NKikimrProto::OVERRUN)) {
- resultKv->SetValue(read.Value);
- Y_VERIFY(read.Value.size() == read.ValueSize);
+ TRope value = read.BuildRope();
+ if (intermediate->UsePayloadInResponse) {
+ resultKv->SetPayloadId(intermediate->Payload.size());
+ intermediate->Payload.push_back(std::move(value));
+ } else {
+ const TContiguousSpan span = value.GetContiguousSpan();
+ resultKv->SetValue(span.data(), span.size());
+ }
}
resultKv->SetValueSize(read.ValueSize);
resultKv->SetCreationUnixTime(read.CreationUnixTime);
@@ -1047,15 +1044,15 @@ void TKeyValueState::ProcessCmd(TIntermediate::TWrite &request,
NKikimrClient::TKeyValueResponse::TWriteResult *legacyResponse,
NKikimrKeyValue::StorageChannel *response,
ISimpleDb &db, const TActorContext &ctx, TRequestStat &/*stat*/, ui64 unixTime,
- TIntermediate* /*intermediate*/)
+ TIntermediate *intermediate)
{
TIndexRecord& record = Index[request.Key];
- Dereference(record, db, ctx);
+ Dereference(record, db, ctx, intermediate->RequestUid);
record.Chain = {};
ui32 storage_channel = 0;
if (request.Status == NKikimrProto::SCHEDULED) {
- TRcBuf inlineData = request.Data;
+ TRope inlineData = request.Data;
const size_t size = inlineData.size();
record.Chain.push_back(TIndexRecord::TChainItem(std::move(inlineData), 0));
CountWriteRecord(0, size);
@@ -1099,12 +1096,16 @@ void TKeyValueState::ProcessCmd(const TIntermediate::TDelete &request,
NKikimrClient::TKeyValueResponse::TDeleteRangeResult *legacyResponse,
NKikimrKeyValue::StorageChannel */*response*/,
ISimpleDb &db, const TActorContext &ctx, TRequestStat &stat, ui64 /*unixTime*/,
- TIntermediate* /*intermediate*/)
+ TIntermediate *intermediate)
{
TraverseRange(request.Range, [&](TIndex::iterator it) {
stat.Deletes++;
stat.DeleteBytes += it->second.GetFullValueSize();
- Dereference(it->second, db, ctx);
+ for (const auto& chain : it->second.Chain) {
+ STLOG(PRI_DEBUG, KEYVALUE_GC, KVC99, "DeleteRange", (TabletId, TabletId), (Generation, ExecutorGeneration),
+ (Key, it->first), (Id, chain.LogoBlobId));
+ }
+ Dereference(it->second, db, ctx, intermediate->RequestUid);
THelpers::DbEraseUserKey(it->first, db, ctx);
Index.erase(it);
});
@@ -1118,14 +1119,14 @@ void TKeyValueState::ProcessCmd(const TIntermediate::TRename &request,
NKikimrClient::TKeyValueResponse::TRenameResult *legacyResponse,
NKikimrKeyValue::StorageChannel */*response*/,
ISimpleDb &db, const TActorContext &ctx, TRequestStat &/*stat*/, ui64 unixTime,
- TIntermediate* /*intermediate*/)
+ TIntermediate *intermediate)
{
auto oldIter = Index.find(request.OldKey);
Y_VERIFY(oldIter != Index.end());
TIndexRecord& source = oldIter->second;
TIndexRecord& dest = Index[request.NewKey];
- Dereference(dest, db, ctx);
+ Dereference(dest, db, ctx, intermediate->RequestUid);
dest.Chain = std::move(source.Chain);
dest.CreationUnixTime = unixTime;
@@ -1164,7 +1165,7 @@ void TKeyValueState::ProcessCmd(const TIntermediate::TCopyRange &request,
TString newKey = request.PrefixToAdd + it->first.substr(request.PrefixToRemove.size());
TIndexRecord& record = Index[newKey];
- Dereference(record, db, ctx);
+ Dereference(record, db, ctx, intermediate->RequestUid);
record.Chain = sourceRecord.Chain;
record.CreationUnixTime = sourceRecord.CreationUnixTime;
UpdateKeyValue(newKey, record, db, ctx);
@@ -1191,7 +1192,7 @@ void TKeyValueState::ProcessCmd(const TIntermediate::TConcat &request,
for (TIndexRecord::TChainItem& chainItem : input.Chain) {
if (chainItem.IsInline()) {
- chain.push_back(TIndexRecord::TChainItem(TRcBuf(chainItem.InlineData), offset));
+ chain.push_back(TIndexRecord::TChainItem(TRope(chainItem.InlineData), offset));
} else {
const TLogoBlobID& id = chainItem.LogoBlobId;
chain.push_back(TIndexRecord::TChainItem(id, offset));
@@ -1202,14 +1203,14 @@ void TKeyValueState::ProcessCmd(const TIntermediate::TConcat &request,
}
if (!request.KeepInputs) {
- Dereference(input, db, ctx);
+ Dereference(input, db, ctx, intermediate->RequestUid);
THelpers::DbEraseUserKey(it->first, db, ctx);
Index.erase(it);
}
}
TIndexRecord& record = Index[request.OutputKey];
- Dereference(record, db, ctx);
+ Dereference(record, db, ctx, intermediate->RequestUid);
record.Chain = std::move(chain);
record.CreationUnixTime = unixTime;
UpdateKeyValue(request.OutputKey, record, db, ctx);
@@ -1335,7 +1336,7 @@ void TKeyValueState::CmdTrimLeakedBlobs(THolder<TIntermediate>& intermediate, IS
Y_VERIFY(it->second != 0);
} else if (!Trash.count(id)) { // we found a candidate for trash
if (numItems < intermediate->TrimLeakedBlobs->MaxItemsToTrim) {
- LOG_WARN_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId << " trimming " << id.ToString());
+ LOG_WARN_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId << " trimming " << id);
Trash.insert(id);
CountTrashRecord(id.BlobSize());
THelpers::DbUpdateTrash(id, db, ctx);
@@ -1597,9 +1598,7 @@ void TKeyValueState::ProcessCmds(THolder<TIntermediate> &intermediate, ISimpleDb
success = success && CheckCmds(intermediate, ctx, keys, info);
success = success && CheckCmdGetStatus(intermediate, ctx, keys, info);
if (!success) {
- for (const auto& [logoBlobId, initial] : std::exchange(intermediate->RefCountsIncr, {})) {
- Dereference(logoBlobId, db, ctx, initial);
- }
+ DropRefCountsOnErrorInTx(std::exchange(intermediate->RefCountsIncr, {}), db, ctx, intermediate->RequestUid);
} else {
// Read + validate
CmdRead(intermediate, db, ctx);
@@ -1645,21 +1644,22 @@ bool TKeyValueState::IncrementGeneration(THolder<TIntermediate> &intermediate, I
return true;
}
-void TKeyValueState::Dereference(const TIndexRecord& record, ISimpleDb& db, const TActorContext& ctx) {
+void TKeyValueState::Dereference(const TIndexRecord& record, ISimpleDb& db, const TActorContext& ctx, ui64 requestUid) {
for (const TIndexRecord::TChainItem& item : record.Chain) {
if (!item.IsInline()) {
- Dereference(item.LogoBlobId, db, ctx, false);
+ Dereference(item.LogoBlobId, db, ctx, false, requestUid);
}
}
}
-void TKeyValueState::Dereference(const TLogoBlobID& id, ISimpleDb& db, const TActorContext& ctx, bool initial) {
+void TKeyValueState::Dereference(const TLogoBlobID& id, ISimpleDb& db, const TActorContext& ctx, bool initial,
+ ui64 requestUid) {
auto it = RefCounts.find(id);
Y_VERIFY(it != RefCounts.end());
--it->second;
if (!it->second) {
RefCounts.erase(it);
- Trash.insert(id);
+ TrashBeingCommitted[requestUid].push_back(id);
THelpers::DbUpdateTrash(id, db, ctx);
if (initial) {
CountInitialTrashRecord(id.BlobSize());
@@ -1727,15 +1727,22 @@ void TKeyValueState::OnRequestComplete(ui64 requestUid, ui64 generation, ui64 st
CountRequestTakeOffOrEnqueue(requestType);
}
- if (StoredState.GetChannelGeneration() == generation) {
- auto it = InFlightForStep.find(step);
- Y_VERIFY(it != InFlightForStep.end(), "Unexpected step# %" PRIu64, (ui64)step);
- it->second--;
- if (it->second == 0) {
- InFlightForStep.erase(it);
+ CmdTrimLeakedBlobsUids.erase(requestUid);
+ CancelInFlight(requestUid);
+ PrepareCollectIfNeeded(ctx);
+}
- // Initiate Garbage collection process if needed
- StartCollectingIfPossible(ctx);
+void TKeyValueState::CancelInFlight(ui64 requestUid) {
+ for (auto it = RequestUidStepToCount.lower_bound(std::make_tuple(requestUid, 0)); it != RequestUidStepToCount.end() &&
+ std::get<0>(it->first) == requestUid; it = RequestUidStepToCount.erase(it)) {
+ const auto& [requestUid, step] = it->first;
+ const ui32 drop = it->second;
+ auto stepIt = InFlightForStep.find(step);
+ Y_VERIFY(stepIt != InFlightForStep.end() && drop <= stepIt->second);
+ if (drop < stepIt->second) {
+ stepIt->second -= drop;
+ } else {
+ InFlightForStep.erase(stepIt);
}
}
}
@@ -2184,7 +2191,7 @@ void TKeyValueState::SplitIntoBlobs(TIntermediate::TWrite &cmd, bool isInline, u
ui64 sizeRemain = cmd.Data.size();
while (sizeRemain) {
ui32 blobSize = Min<ui64>(sizeRemain, 8 << 20);
- cmd.LogoBlobIds.push_back(AllocateLogoBlobId(blobSize, storageChannelIdx));
+ cmd.LogoBlobIds.push_back(AllocateLogoBlobId(blobSize, storageChannelIdx, intermediate->RequestUid));
sizeRemain -= blobSize;
}
for (const TLogoBlobID& logoBlobId : cmd.LogoBlobIds) {
@@ -2196,7 +2203,7 @@ void TKeyValueState::SplitIntoBlobs(TIntermediate::TWrite &cmd, bool isInline, u
}
bool TKeyValueState::PrepareCmdWrite(const TActorContext &ctx, NKikimrClient::TKeyValueRequest &kvRequest,
- THolder<TIntermediate> &intermediate, const TTabletStorageInfo *info) {
+ TEvKeyValue::TEvRequest& ev, THolder<TIntermediate> &intermediate, const TTabletStorageInfo *info) {
intermediate->WriteIndices.reserve(kvRequest.CmdWriteSize());
for (ui32 i = 0; i < kvRequest.CmdWriteSize(); ++i) {
auto& request = kvRequest.GetCmdWrite(i);
@@ -2211,10 +2218,10 @@ bool TKeyValueState::PrepareCmdWrite(const TActorContext &ctx, NKikimrClient::TK
ReplyError(ctx, str.Str(), NMsgBusProxy::MSTATUS_INTERNALERROR, NKikimrKeyValue::Statuses::RSTATUS_INTERNAL_ERROR, intermediate);
return true;
}
- if (!request.HasValue()) {
+ if (request.GetDataCase() == NKikimrClient::TKeyValueRequest::TCmdWrite::DATA_NOT_SET) {
TStringStream str;
str << "KeyValue# " << TabletId;
- str << " Missing Value in CmdWrite(" << i << ") Marker# KV10";
+ str << " Missing Value/PayloadId in CmdWrite(" << i << ") Marker# KV10";
ReplyError(ctx, str.Str(), NMsgBusProxy::MSTATUS_INTERNALERROR, NKikimrKeyValue::Statuses::RSTATUS_INTERNAL_ERROR, intermediate);
return true;
}
@@ -2257,7 +2264,20 @@ bool TKeyValueState::PrepareCmdWrite(const TActorContext &ctx, NKikimrClient::TK
}
interm.Key = request.GetKey();
- interm.Data = TRcBuf(request.GetValue());
+
+ switch (request.GetDataCase()) {
+ case NKikimrClient::TKeyValueRequest::TCmdWrite::kValue:
+ interm.Data = TRope(request.GetValue());
+ break;
+
+ case NKikimrClient::TKeyValueRequest::TCmdWrite::kPayloadId:
+ interm.Data = ev.GetPayload(request.GetPayloadId());
+ break;
+
+ case NKikimrClient::TKeyValueRequest::TCmdWrite::DATA_NOT_SET:
+ Y_UNREACHABLE();
+ }
+
interm.Tactic = TEvBlobStorage::TEvPut::TacticDefault;
switch (request.GetTactic()) {
case NKikimrClient::TKeyValueRequest::MIN_LATENCY:
@@ -2290,7 +2310,7 @@ TKeyValueState::TPrepareResult TKeyValueState::InitGetStatusCommand(TIntermediat
TString msg;
if (storageChannel == NKikimrClient::TKeyValueRequest::INLINE) {
cmd.StorageChannel = storageChannel;
- cmd.LogoBlobId = TLogoBlobID();
+ cmd.GroupId = 0;
cmd.Status = NKikimrProto::OK;
cmd.StatusFlags = TStorageStatusFlags(ui32(NKikimrBlobStorage::StatusIsValid));
if (GetIsTabletYellowMove()) {
@@ -2311,7 +2331,7 @@ TKeyValueState::TPrepareResult TKeyValueState::InitGetStatusCommand(TIntermediat
}
cmd.StorageChannel = storageChannel;
- cmd.LogoBlobId = AllocateLogoBlobId(1, storageChannelIdx);
+ cmd.GroupId = info->GroupFor(storageChannelIdx, ExecutorGeneration);
cmd.Status = NKikimrProto::UNKNOWN;
}
return {false, msg};
@@ -2457,7 +2477,7 @@ TPrepareResult TKeyValueState::PrepareOneCmd(const TCommand::Write &request, THo
intermediate->Commands.emplace_back(TIntermediate::TWrite());
auto &cmd = std::get<TIntermediate::TWrite>(intermediate->Commands.back());
cmd.Key = request.key();
- cmd.Data = TRcBuf(request.value());
+ cmd.Data = TRope(request.value());
switch (request.tactic()) {
case TCommand::Write::TACTIC_MIN_LATENCY:
cmd.Tactic = TEvBlobStorage::TEvPut::TacticMinLatency;
@@ -2778,11 +2798,8 @@ bool TKeyValueState::PrepareExecuteTransactionRequest(const TActorContext &ctx,
TPrepareResult result = PrepareCommands(request, intermediate, info, ctx);
if (result.WithError) {
- for (const auto& [logoBlobId, initial] : std::exchange(intermediate->RefCountsIncr, {})) {
- if (const auto it = RefCounts.find(logoBlobId); it != RefCounts.end() && !--it->second) {
- RefCounts.erase(it);
- }
- }
+ DropRefCountsOnError(intermediate->RefCountsIncr, false, ctx);
+ Y_VERIFY(intermediate->RefCountsIncr.empty());
LOG_ERROR_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
<< " PrepareExecuteTransactionRequest return flase, Marker# KV73"
@@ -2890,6 +2907,16 @@ void TKeyValueState::ProcessPostponedIntermediate(const TActorContext& ctx, THol
}
}
+void TKeyValueState::ProcessPostponedTrims(const TActorContext& ctx, const TTabletStorageInfo *info) {
+ if (!IsCollectEventSent && !InitialCollectsSent) {
+ for (auto& interm : CmdTrimLeakedBlobsPostponed) {
+ CmdTrimLeakedBlobsUids.insert(interm->RequestUid);
+ RegisterRequestActor(ctx, std::move(interm), info, ExecutorGeneration);
+ }
+ CmdTrimLeakedBlobsPostponed.clear();
+ }
+}
+
void TKeyValueState::OnEvReadRequest(TEvKeyValue::TEvRead::TPtr &ev, const TActorContext &ctx,
const TTabletStorageInfo *info)
{
@@ -2902,7 +2929,6 @@ void TKeyValueState::OnEvReadRequest(TEvKeyValue::TEvRead::TPtr &ev, const TActo
CountRequestIncoming(requestType);
if (PrepareReadRequest(ctx, ev, intermediate, &requestType)) {
- ++InFlightForStep[StoredState.GetChannelStep()];
if (requestType == TRequestType::ReadOnlyInline) {
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
<< " Create storage inline read request, Marker# KV49");
@@ -2939,7 +2965,6 @@ void TKeyValueState::OnEvReadRangeRequest(TEvKeyValue::TEvReadRange::TPtr &ev, c
CountRequestIncoming(requestType);
if (PrepareReadRangeRequest(ctx, ev, intermediate, &requestType)) {
- ++InFlightForStep[StoredState.GetChannelStep()];
if (requestType == TRequestType::ReadOnlyInline) {
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
<< " Create storage inline read range request, Marker# KV58");
@@ -2977,7 +3002,6 @@ void TKeyValueState::OnEvExecuteTransaction(TEvKeyValue::TEvExecuteTransaction::
CountRequestIncoming(requestType);
if (PrepareExecuteTransactionRequest(ctx, ev, intermediate, info)) {
- ++InFlightForStep[StoredState.GetChannelStep()];
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
<< " Create storage request for WO, Marker# KV67");
RegisterRequestActor(ctx, std::move(intermediate), info, ExecutorGeneration);
@@ -2986,6 +3010,7 @@ void TKeyValueState::OnEvExecuteTransaction(TEvKeyValue::TEvExecuteTransaction::
} else {
intermediate->UpdateStat();
CountRequestOtherError(requestType);
+ CancelInFlight(intermediate->RequestUid);
}
}
@@ -3001,7 +3026,6 @@ void TKeyValueState::OnEvGetStorageChannelStatus(TEvKeyValue::TEvGetStorageChann
CountRequestIncoming(requestType);
if (PrepareGetStorageChannelStatusRequest(ctx, ev, intermediate, info)) {
- ++InFlightForStep[StoredState.GetChannelStep()];
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
<< " Create GetStorageChannelStatus request, Marker# KV75");
RegisterRequestActor(ctx, std::move(intermediate), info, ExecutorGeneration);
@@ -3025,7 +3049,6 @@ void TKeyValueState::OnEvAcquireLock(TEvKeyValue::TEvAcquireLock::TPtr &ev, cons
CountRequestIncoming(requestType);
if (PrepareAcquireLockRequest(ctx, ev, intermediate)) {
- ++InFlightForStep[StoredState.GetChannelStep()];
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
<< " Create AcquireLock request, Marker# KV80");
RegisterRequestActor(ctx, std::move(intermediate), info, ExecutorGeneration);
@@ -3056,6 +3079,8 @@ void TKeyValueState::OnEvRequest(TEvKeyValue::TEvRequest::TPtr &ev, const TActor
bool hasReads = request.CmdReadSize() || request.CmdReadRangeSize();
+ bool hasTrim = request.HasCmdTrimLeakedBlobs();
+
TRequestType::EType requestType;
if (hasWrites) {
if (hasReads) {
@@ -3071,35 +3096,40 @@ void TKeyValueState::OnEvRequest(TEvKeyValue::TEvRequest::TPtr &ev, const TActor
if (PrepareIntermediate(ev, intermediate, requestType, ctx, info)) {
// Spawn KeyValueStorageRequest actor on the same thread
- ++InFlightForStep[StoredState.GetChannelStep()];
- if (requestType == TRequestType::WriteOnly) {
- LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
- << " Create storage request for WO, Marker# KV42");
- RegisterRequestActor(ctx, std::move(intermediate), info, ExecutorGeneration);
- } else if (requestType == TRequestType::ReadOnlyInline) {
- LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
- << " Create storage request for RO_INLINE, Marker# KV45");
- RegisterRequestActor(ctx, std::move(intermediate), info, ExecutorGeneration);
- ++RoInlineIntermediatesInFlight;
+ if (hasTrim && (IsCollectEventSent || InitialCollectsSent)) {
+ CmdTrimLeakedBlobsPostponed.push_back(std::move(intermediate));
} else {
- if (IntermediatesInFlight < IntermediatesInFlightLimit) {
+ if (hasTrim) {
+ CmdTrimLeakedBlobsUids.insert(intermediate->RequestUid);
+ }
+ if (requestType == TRequestType::WriteOnly) {
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
- << " Create storage request for RO/RW, Marker# KV43");
+ << " Create storage request for WO, Marker# KV42");
RegisterRequestActor(ctx, std::move(intermediate), info, ExecutorGeneration);
- ++IntermediatesInFlight;
- } else {
+ } else if (requestType == TRequestType::ReadOnlyInline) {
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
- << " Enqueue storage request for RO/RW, Marker# KV44");
- PostponeIntermediate<TEvKeyValue::TEvRequest>(std::move(intermediate));
+ << " Create storage request for RO_INLINE, Marker# KV45");
+ RegisterRequestActor(ctx, std::move(intermediate), info, ExecutorGeneration);
+ ++RoInlineIntermediatesInFlight;
+ } else {
+ if (IntermediatesInFlight < IntermediatesInFlightLimit) {
+ LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
+ << " Create storage request for RO/RW, Marker# KV43");
+ RegisterRequestActor(ctx, std::move(intermediate), info, ExecutorGeneration);
+ ++IntermediatesInFlight;
+ } else {
+ LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
+ << " Enqueue storage request for RO/RW, Marker# KV44");
+ PostponeIntermediate<TEvKeyValue::TEvRequest>(std::move(intermediate));
+ }
}
}
CountRequestTakeOffOrEnqueue(requestType);
-
} else {
intermediate->UpdateStat();
-
CountRequestOtherError(requestType);
+ CancelInFlight(intermediate->RequestUid);
}
}
@@ -3124,6 +3154,8 @@ bool TKeyValueState::PrepareIntermediate(TEvKeyValue::TEvRequest::TPtr &ev, THol
}
intermediate->HasIncrementGeneration = request.HasCmdIncrementGeneration();
+ intermediate->UsePayloadInResponse = request.GetUsePayloadInResponse();
+
if (CheckDeadline(ctx, request, intermediate)) {
return false;
}
@@ -3150,7 +3182,7 @@ bool TKeyValueState::PrepareIntermediate(TEvKeyValue::TEvRequest::TPtr &ev, THol
error = error || PrepareCmdRename(ctx, request, intermediate);
error = error || PrepareCmdConcat(ctx, request, intermediate);
error = error || PrepareCmdDelete(ctx, request, intermediate);
- error = error || PrepareCmdWrite(ctx, request, intermediate, info);
+ error = error || PrepareCmdWrite(ctx, request, *ev->Get(), intermediate, info);
error = error || PrepareCmdGetStatus(ctx, request, intermediate, info);
error = error || PrepareCmdTrimLeakedBlobs(ctx, request, intermediate, info);
error = error || PrepareCmdSetExecutorFastLogPolicy(ctx, request, intermediate, info);
@@ -3162,11 +3194,8 @@ bool TKeyValueState::PrepareIntermediate(TEvKeyValue::TEvRequest::TPtr &ev, THol
intermediate->ConcatCount = request.CmdConcatSize();
if (error) {
- for (const auto& [logoBlobId, initial] : std::exchange(intermediate->RefCountsIncr, {})) {
- if (const auto it = RefCounts.find(logoBlobId); it != RefCounts.end() && !--it->second) {
- RefCounts.erase(it);
- }
- }
+ DropRefCountsOnError(intermediate->RefCountsIncr, false, ctx);
+ Y_VERIFY(intermediate->RefCountsIncr.empty());
LOG_DEBUG_S(ctx, NKikimrServices::KEYVALUE, "KeyValue# " << TabletId
<< " PrepareIntermediate return flase, Marker# KV41");
diff --git a/ydb/core/keyvalue/keyvalue_state.h b/ydb/core/keyvalue/keyvalue_state.h
index 882bfe5680..2f1afd766d 100644
--- a/ydb/core/keyvalue/keyvalue_state.h
+++ b/ydb/core/keyvalue/keyvalue_state.h
@@ -13,6 +13,7 @@
#include "keyvalue_simple_db.h"
#include "channel_balancer.h"
#include <util/generic/set.h>
+#include <util/generic/hash_multi_map.h>
#include <ydb/core/base/appdata.h>
#include <ydb/public/lib/base/msgbus.h>
#include <ydb/core/tablet/tablet_counters.h>
@@ -253,9 +254,13 @@ protected:
TIndex Index;
THashMap<TLogoBlobID, ui32> RefCounts;
TSet<TLogoBlobID> Trash;
+ THashMap<ui64, TVector<TLogoBlobID>> TrashBeingCommitted;
TMap<ui64, ui64> InFlightForStep;
+ TMap<std::tuple<ui64, ui32>, ui32> RequestUidStepToCount;
+ THashSet<ui64> CmdTrimLeakedBlobsUids;
+ std::vector<THolder<TIntermediate>> CmdTrimLeakedBlobsPostponed;
THashMap<ui64, TInstant> RequestInputTime;
- ui64 NextRequestUid = 0;
+ ui64 NextRequestUid = 1;
TIntrusivePtr<TCollectOperation> CollectOperation;
bool IsCollectEventSent;
bool IsSpringCleanupDone;
@@ -325,39 +330,31 @@ public:
const TActorContext &ctx, const TTabletStorageInfo *info);
bool RegisterInitialCollectResult(const TActorContext &ctx);
void RegisterInitialGCCompletionExecute(ISimpleDb &db, const TActorContext &ctx);
- void RegisterInitialGCCompletionComplete(const TActorContext &ctx);
+ void RegisterInitialGCCompletionComplete(const TActorContext &ctx, const TTabletStorageInfo *info);
void SendCutHistory(const TActorContext &ctx);
void OnInitQueueEmpty(const TActorContext &ctx);
void OnStateWork(const TActorContext &ctx);
void RequestExecute(THolder<TIntermediate> &intermediate, ISimpleDb &db, const TActorContext &ctx,
const TTabletStorageInfo *info);
void RequestComplete(THolder<TIntermediate> &intermediate, const TActorContext &ctx, const TTabletStorageInfo *info);
+ void DropRefCountsOnErrorInTx(std::deque<std::pair<TLogoBlobID, bool>>&& refCountsIncr, ISimpleDb& db, const TActorContext& ctx,
+ ui64 requestUid);
+ void DropRefCountsOnError(std::deque<std::pair<TLogoBlobID, bool>>& refCountsIncr /*in-out*/, bool writesMade,
+ const TActorContext& ctx);
+ void ProcessPostponedTrims(const TActorContext& ctx, const TTabletStorageInfo *info);
// garbage collection methods
void PrepareCollectIfNeeded(const TActorContext &ctx);
- void RemoveFromTrashDoNotKeep(ISimpleDb &db, const TActorContext &ctx, const TVector<TLogoBlobID> &collectedDoNotKeep);
- void RemoveFromTrashBySoftBarrier(ISimpleDb &db, const TActorContext &ctx, const NKeyValue::THelpers::TGenerationStep &genStep);
+ bool RemoveCollectedTrash(ISimpleDb &db, const TActorContext &ctx);
void UpdateStoredState(ISimpleDb &db, const TActorContext &ctx, const NKeyValue::THelpers::TGenerationStep &genStep);
- void UpdateGC(ISimpleDb &db, const TActorContext &ctx, bool updateTrash, bool updateState);
- void UpdateAfterPartialGC(ISimpleDb &db, const TActorContext &ctx);
- void StoreCollectExecute(ISimpleDb &db, const TActorContext &ctx);
- void StoreCollectComplete(const TActorContext &ctx);
- void EraseCollectExecute(ISimpleDb &db, const TActorContext &ctx);
- void EraseCollectComplete(const TActorContext &ctx);
void CompleteGCExecute(ISimpleDb &db, const TActorContext &ctx);
- void CompleteGCComplete(const TActorContext &ctx);
- void PartialCompleteGCExecute(ISimpleDb &db, const TActorContext &ctx);
- void PartialCompleteGCComplete(const TActorContext &ctx);
- void SendStoreCollect(const TActorContext &ctx, const THelpers::TGenerationStep &genStep,
- TVector<TLogoBlobID> &keep, TVector<TLogoBlobID> &doNotKeep);
- void StartGC(const TActorContext &ctx, const THelpers::TGenerationStep &genStep,
- TVector<TLogoBlobID> &keep, TVector<TLogoBlobID> &doNotKeep);
+ void CompleteGCComplete(const TActorContext &ctx, const TTabletStorageInfo *info);
+ void StartGC(const TActorContext &ctx, TVector<TLogoBlobID> &keep, TVector<TLogoBlobID> &doNotKeep,
+ TVector<TLogoBlobID>& trashGoingToCollect);
void StartCollectingIfPossible(const TActorContext &ctx);
ui64 OnEvCollect(const TActorContext &ctx);
void OnEvCollectDone(ui64 perGenerationCounterStepSize, TActorId collector, const TActorContext &ctx);
- void OnEvEraseCollect(const TActorContext &ctx);
void OnEvCompleteGC();
- void OnEvPartialCompleteGC(TEvKeyValue::TEvPartialCompleteGC *ev);
void Reply(THolder<TIntermediate> &intermediate, const TActorContext &ctx, const TTabletStorageInfo *info);
@@ -431,14 +428,15 @@ public:
const TTabletStorageInfo* /*info*/);
void Step();
- TLogoBlobID AllocateLogoBlobId(ui32 size, ui32 storageChannelIdx);
+ TLogoBlobID AllocateLogoBlobId(ui32 size, ui32 storageChannelIdx, ui64 requestUid);
TIntrusivePtr<TCollectOperation>& GetCollectOperation() {
return CollectOperation;
}
- void Dereference(const TIndexRecord& record, ISimpleDb& db, const TActorContext& ctx);
+ void Dereference(const TIndexRecord& record, ISimpleDb& db, const TActorContext& ctx, ui64 requestUid);
void UpdateKeyValue(const TString& key, const TIndexRecord& record, ISimpleDb& db, const TActorContext& ctx);
- void Dereference(const TLogoBlobID& id, ISimpleDb& db, const TActorContext& ctx, bool initial);
+ void Dereference(const TLogoBlobID& id, ISimpleDb& db, const TActorContext& ctx, bool initial,
+ ui64 requestUid);
ui32 GetPerGenerationCounter() {
return PerGenerationCounter;
@@ -460,6 +458,7 @@ public:
void OnRequestComplete(ui64 requestUid, ui64 generation, ui64 step, const TActorContext &ctx,
const TTabletStorageInfo *info, NMsgBusProxy::EResponseStatus status, const TRequestStat &stat);
+ void CancelInFlight(ui64 requestUid);
void OnEvIntermediate(TIntermediate &intermediate, const TActorContext &ctx);
void OnEvRequest(TEvKeyValue::TEvRequest::TPtr &ev, const TActorContext &ctx, const TTabletStorageInfo *info);
@@ -531,7 +530,7 @@ public:
THolder<TIntermediate> &intermediate);
bool PrepareCmdDelete(const TActorContext &ctx, NKikimrClient::TKeyValueRequest &kvRequest,
THolder<TIntermediate> &intermediate);
- bool PrepareCmdWrite(const TActorContext &ctx, NKikimrClient::TKeyValueRequest &kvRequest,
+ bool PrepareCmdWrite(const TActorContext &ctx, NKikimrClient::TKeyValueRequest &kvRequest, TEvKeyValue::TEvRequest& ev,
THolder<TIntermediate> &intermediate, const TTabletStorageInfo *info);
bool PrepareCmdGetStatus(const TActorContext &ctx, NKikimrClient::TKeyValueRequest &kvRequest,
THolder<TIntermediate> &intermediate, const TTabletStorageInfo *info);
diff --git a/ydb/core/keyvalue/keyvalue_state_collect.cpp b/ydb/core/keyvalue/keyvalue_state_collect.cpp
index 9ca39f19fd..27e5ecadc8 100644
--- a/ydb/core/keyvalue/keyvalue_state_collect.cpp
+++ b/ydb/core/keyvalue/keyvalue_state_collect.cpp
@@ -7,7 +7,12 @@ namespace NKeyValue {
void TKeyValueState::PrepareCollectIfNeeded(const TActorContext &ctx) {
LOG_TRACE_S(ctx, NKikimrServices::KEYVALUE, "PrepareCollectIfNeeded KeyValue# " << TabletId << " Marker# KV61");
- if (CollectOperation.Get() || InitialCollectsSent) {
+ if (CmdTrimLeakedBlobsUids) {
+ // Do not start garbage collection while we are trimming to avoid race.
+ return;
+ }
+
+ if (IsCollectEventSent || InitialCollectsSent) {
// We already are trying to collect something, just pass this time.
return;
}
@@ -25,22 +30,27 @@ void TKeyValueState::PrepareCollectIfNeeded(const TActorContext &ctx) {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// derive new collect step for this operation
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ui64 collectNeededStep = 0;
- if (maxId.Generation() == ExecutorGeneration) {
- collectNeededStep = maxId.Step(); // collect up to this maximum blob
- } else {
- // step 0 by default provides collection of all trash blobs up to maxId as the generation is less than current one
- Y_VERIFY(maxId.Generation() < ExecutorGeneration);
+ THelpers::TGenerationStep inflightGenStep(Max<ui32>(), Max<ui32>());
+ if (InFlightForStep) {
+ const auto& [step, _] = *InFlightForStep.begin();
+ Y_VERIFY(step);
+ inflightGenStep = THelpers::TGenerationStep(ExecutorGeneration, step - 1);
}
+ const auto storedGenStep = THelpers::TGenerationStep(StoredState.GetCollectGeneration(), StoredState.GetCollectStep());
+ const auto collectGenStep = Min(inflightGenStep, Max(storedGenStep, THelpers::GenerationStep(maxId)));
+ Y_VERIFY(THelpers::TGenerationStep(ExecutorGeneration, 0) <= collectGenStep);
+ Y_VERIFY(storedGenStep <= collectGenStep);
- // Don't let the CollectGeneration step backwards
- if (StoredState.GetCollectGeneration() == ExecutorGeneration && collectNeededStep < StoredState.GetCollectStep()) {
- collectNeededStep = StoredState.GetCollectStep();
+ // check if it is useful to start any collection
+ const TLogoBlobID minTrashId = *Trash.begin();
+ if (collectGenStep < THelpers::GenerationStep(minTrashId)) {
+ return; // we do not have the opportunity to collect anything here with this allowed barrier
}
// create basic collect operation with zero keep/doNotKeep flag vectors; they will be calculated just before sending
- CollectOperation.Reset(new TCollectOperation(ExecutorGeneration, collectNeededStep, {} /* keep */, {} /* doNoKeep */));
- if (collectNeededStep == NextLogoBlobStep) {
+ CollectOperation.Reset(new TCollectOperation(std::get<0>(collectGenStep), std::get<1>(collectGenStep),
+ {} /* keep */, {} /* doNoKeep */, {} /* trashGoingToCollect */));
+ if (std::get<1>(collectGenStep) == NextLogoBlobStep) {
// advance to the next step if we are going to collect everything up to current one; otherwise we can keep
// current step
Step();
@@ -49,48 +59,26 @@ void TKeyValueState::PrepareCollectIfNeeded(const TActorContext &ctx) {
StartCollectingIfPossible(ctx);
}
+bool TKeyValueState::RemoveCollectedTrash(ISimpleDb &db, const TActorContext &ctx) {
+ if (auto& trash = CollectOperation->TrashGoingToCollect) {
+ ui32 collected = 0;
+ for (ui32 maxItemsToStore = 10'000; trash && maxItemsToStore; trash.pop_back(), --maxItemsToStore) {
+ const TLogoBlobID& id = trash.back();
+ THelpers::DbEraseTrash(id, db, ctx);
+ ui32 num = Trash.erase(id);
+ Y_VERIFY(num == 1);
+ CountTrashCollected(id.BlobSize());
+ ++collected;
+ }
-void TKeyValueState::RemoveFromTrashDoNotKeep(ISimpleDb &db, const TActorContext &ctx,
- const TVector<TLogoBlobID> &collectedDoNotKeep)
-{
- for (const TLogoBlobID &id : collectedDoNotKeep) {
- THelpers::DbEraseTrash(id, db, ctx);
- ui32 num = Trash.erase(id);
- Y_VERIFY(num == 1);
- CountTrashCollected(id.BlobSize());
- }
- STLOG(NLog::PRI_DEBUG, NKikimrServices::KEYVALUE_GC, KVC24, "Remove from Trash",
- (TabletId, TabletId),
- (RemovedCount, collectedDoNotKeep.size()),
- (TrashCount, Trash.size()));
-}
+ STLOG(NLog::PRI_DEBUG, NKikimrServices::KEYVALUE_GC, KVC24, "Remove from Trash",
+ (TabletId, TabletId), (RemovedCount, collected), (TrashCount, Trash.size()));
-void TKeyValueState::RemoveFromTrashBySoftBarrier(ISimpleDb &db, const TActorContext &ctx,
- const NKeyValue::THelpers::TGenerationStep &genStep)
-{
- ui64 storedCollectGeneration = StoredState.GetCollectGeneration();
- ui64 storedCollectStep = StoredState.GetCollectStep();
-
- // remove trash entries that were not marked as 'Keep' before, but which are automatically deleted by this barrier
- // to prevent them from being added to 'DoNotKeep' list after
- ui32 counter = 0;
- for (auto it = Trash.begin(); it != Trash.end(); ) {
- THelpers::TGenerationStep trashGenStep = THelpers::GenerationStep(*it);
- bool afterStoredSoftBarrier = trashGenStep > THelpers::TGenerationStep(storedCollectGeneration, storedCollectStep);
- bool beforeSoftBarrier = trashGenStep <= genStep;
- if (afterStoredSoftBarrier && beforeSoftBarrier) {
- CountTrashCollected(it->BlobSize());
- THelpers::DbEraseTrash(*it, db, ctx);
- it = Trash.erase(it);
- if (++counter >= MaxCollectGarbageFlagsPerMessage) {
- RepeatGCTX = true;
- break;
- }
- } else {
- ++it;
- }
+ return trash.empty();
}
+
+ return true;
}
void TKeyValueState::UpdateStoredState(ISimpleDb &db, const TActorContext &ctx,
@@ -101,93 +89,18 @@ void TKeyValueState::UpdateStoredState(ISimpleDb &db, const TActorContext &ctx,
THelpers::DbUpdateState(StoredState, db, ctx);
}
-void TKeyValueState::UpdateAfterPartialGC(ISimpleDb &db, const TActorContext &ctx) {
- RemoveFromTrashDoNotKeep(db, ctx, PartialCollectedDoNotKeep);
-}
-
-void TKeyValueState::UpdateGC(ISimpleDb &db, const TActorContext &ctx, bool updateTrash, bool updateState) {
- if (IsDamaged) {
- return;
- }
- Y_VERIFY(CollectOperation);
-
- ui64 collectGeneration = CollectOperation->Header.GetCollectGeneration();
- ui64 collectStep = CollectOperation->Header.GetCollectStep();
- auto collectGenStep = THelpers::TGenerationStep(collectGeneration, collectStep);
-
- if (updateTrash) {
- for (TLogoBlobID &id: CollectOperation->DoNotKeep) {
- THelpers::DbEraseTrash(id, db, ctx);
- ui32 num = Trash.erase(id);
- Y_VERIFY(num == 1);
- CountTrashCollected(id.BlobSize());
- }
-
- RemoveFromTrashBySoftBarrier(db, ctx, collectGenStep);
- }
-
- if (updateState) {
+void TKeyValueState::CompleteGCExecute(ISimpleDb &db, const TActorContext &ctx) {
+ if (RemoveCollectedTrash(db, ctx)) {
+ const ui32 collectGeneration = CollectOperation->Header.GetCollectGeneration();
+ const ui32 collectStep = CollectOperation->Header.GetCollectStep();
+ auto collectGenStep = THelpers::TGenerationStep(collectGeneration, collectStep);
UpdateStoredState(db, ctx, collectGenStep);
+ } else {
+ RepeatGCTX = true;
}
-
-}
-
-void TKeyValueState::StoreCollectExecute(ISimpleDb &db, const TActorContext &ctx) {
- LOG_TRACE_S(ctx, NKikimrServices::KEYVALUE, "StoreCollectExecute KeyValue# " << TabletId
- << " IsDamaged# " << IsDamaged << " Marker# KV62");
-
- if (IsDamaged) {
- return;
- }
- Y_VERIFY(CollectOperation.Get());
-
- // This operation will be executed no matter what
- const ui32 collectGen = CollectOperation->Header.GetCollectGeneration();
- const ui32 collectStep = CollectOperation->Header.GetCollectStep();
- THelpers::DbUpdateCollect(collectGen,
- collectStep,
- CollectOperation->Keep,
- CollectOperation->DoNotKeep,
- db, ctx);
-
- UpdateGC(db, ctx, true, false);
-}
-
-void TKeyValueState::StoreCollectComplete(const TActorContext &ctx) {
- ctx.Send(KeyValueActorId, new TEvKeyValue::TEvCollect());
-}
-
-void TKeyValueState::EraseCollectExecute(ISimpleDb &db, const TActorContext &ctx) {
- LOG_TRACE_S(ctx, NKikimrServices::KEYVALUE, "EraseCollectExecute KeyValue# " << TabletId
- << " IsDamaged# " << IsDamaged << " Marker# KV63");
- if (IsDamaged) {
- return;
- }
- Y_VERIFY(CollectOperation);
- // Erase the collect operation
- THelpers::DbEraseCollect(db, ctx);
- // Update the state
- UpdateGC(db, ctx, false, true);
}
-void TKeyValueState::EraseCollectComplete(const TActorContext &ctx) {
- Y_VERIFY(CollectOperation);
- CollectOperation.Reset(nullptr);
- IsCollectEventSent = false;
-
- // Start new collect operation if needed
- PrepareCollectIfNeeded(ctx);
-}
-
-void TKeyValueState::CompleteGCExecute(ISimpleDb &db, const TActorContext &ctx) {
- ui64 collectGeneration = CollectOperation->Header.GetCollectGeneration();
- ui64 collectStep = CollectOperation->Header.GetCollectStep();
- auto collectGenStep = THelpers::TGenerationStep(collectGeneration, collectStep);
- RemoveFromTrashBySoftBarrier(db, ctx, collectGenStep);
- UpdateStoredState(db, ctx, collectGenStep);
-}
-
-void TKeyValueState::CompleteGCComplete(const TActorContext &ctx) {
+void TKeyValueState::CompleteGCComplete(const TActorContext &ctx, const TTabletStorageInfo *info) {
if (RepeatGCTX) {
STLOG(NLog::PRI_DEBUG, NKikimrServices::KEYVALUE_GC, KVC20, "Repeat CompleteGC",
(TabletId, TabletId),
@@ -202,38 +115,25 @@ void TKeyValueState::CompleteGCComplete(const TActorContext &ctx) {
STLOG(NLog::PRI_DEBUG, NKikimrServices::KEYVALUE_GC, KVC22, "CompleteGC Complete",
(TabletId, TabletId),
(TrashCount, Trash.size()));
+ ProcessPostponedTrims(ctx, info);
PrepareCollectIfNeeded(ctx);
}
-
-void TKeyValueState::PartialCompleteGCExecute(ISimpleDb &db, const TActorContext &ctx) {
- UpdateAfterPartialGC(db, ctx);
-}
-
-void TKeyValueState::PartialCompleteGCComplete(const TActorContext &ctx) {
- PartialCollectedDoNotKeep.clear();
- STLOG(NLog::PRI_DEBUG, NKikimrServices::KEYVALUE_GC, KVC23, "Send ContinueGC",
- (TabletId, TabletId),
- (TrashCount, Trash.size()));
- ctx.Send(CollectorActorId, new TEvKeyValue::TEvContinueGC(std::move(PartialCollectedDoNotKeep)));
-}
-
-// Prepare the completely new full collect operation with the same gen/step, but with correct keep & doNotKeep lists
-void TKeyValueState::SendStoreCollect(const TActorContext &ctx, const THelpers::TGenerationStep &genStep,
- TVector<TLogoBlobID> &keep, TVector<TLogoBlobID> &doNotKeep) {
- ui32 generation, step;
- std::tie(generation, step) = genStep;
- CollectOperation.Reset(new TCollectOperation(generation, step, std::move(keep), std::move(doNotKeep)));
- ctx.Send(KeyValueActorId, new TEvKeyValue::TEvStoreCollect());
-}
-
-void TKeyValueState::StartGC(const TActorContext &ctx, const THelpers::TGenerationStep &genStep,
- TVector<TLogoBlobID> &keep, TVector<TLogoBlobID> &doNotKeep)
-{
- ui32 generation, step;
- std::tie(generation, step) = genStep;
- CollectOperation.Reset(new TCollectOperation(generation, step, std::move(keep), std::move(doNotKeep)));
+void TKeyValueState::StartGC(const TActorContext &ctx, TVector<TLogoBlobID> &keep, TVector<TLogoBlobID> &doNotKeep,
+ TVector<TLogoBlobID>& trashGoingToCollect) {
+ // ensure we haven't filled these fields yet
+ Y_VERIFY(CollectOperation);
+ Y_VERIFY(!CollectOperation->Keep);
+ Y_VERIFY(!CollectOperation->DoNotKeep);
+ Y_VERIFY(!CollectOperation->TrashGoingToCollect);
+ // fill in correct values
+ CollectOperation->Keep = std::move(keep);
+ CollectOperation->DoNotKeep = std::move(doNotKeep);
+ CollectOperation->TrashGoingToCollect = std::move(trashGoingToCollect);
+ // issue command to collector
ctx.Send(KeyValueActorId, new TEvKeyValue::TEvCollect());
+ Y_VERIFY(!IsCollectEventSent);
+ IsCollectEventSent = true;
}
void TKeyValueState::StartCollectingIfPossible(const TActorContext &ctx) {
@@ -241,9 +141,7 @@ void TKeyValueState::StartCollectingIfPossible(const TActorContext &ctx) {
<< " IsCollectEventSent# " << IsCollectEventSent << " Marker# KV64");
// there is nothing to collect yet, or the event was already sent
- if (!CollectOperation || IsCollectEventSent) {
- return;
- }
+ Y_VERIFY(CollectOperation && !IsCollectEventSent);
// create generation:step barrier tuple for proposed garbage collection command
const auto &header = CollectOperation->Header;
@@ -251,19 +149,10 @@ void TKeyValueState::StartCollectingIfPossible(const TActorContext &ctx) {
// if we have some in flight writes, check if they do not overlap with the new barrier
if (InFlightForStep) {
- // get the first item from the map with the least value; its key contains step of blob being written
- auto leastWriteIt = InFlightForStep.begin();
- // construct generation:step pair of the oldest in flight blob
- auto inFlightGenStep = THelpers::TGenerationStep(ExecutorGeneration, leastWriteIt->first);
- // check if the new barrier would delete blob being written, in this case hold with the collect operation
- if (inFlightGenStep <= collectGenStep) {
- return;
- }
+ const auto& [step, _] = *InFlightForStep.begin();
+ Y_VERIFY(collectGenStep < THelpers::TGenerationStep(ExecutorGeneration, step));
}
- Y_VERIFY(!IsCollectEventSent);
- IsCollectEventSent = true;
-
// create stored (previously issued) generation:step barrier as a tuple
auto storedGenStep = THelpers::TGenerationStep(StoredState.GetCollectGeneration(), StoredState.GetCollectStep());
@@ -283,18 +172,30 @@ void TKeyValueState::StartCollectingIfPossible(const TActorContext &ctx) {
// create list of blobs that must have to DoNotKeep flag set; these blobs must have Keep flag written and reside in
// Trash now
TVector<TLogoBlobID> doNotKeep;
+ TVector<TLogoBlobID> trashGoingToCollect;
doNotKeep.reserve(Trash.size());
- for (const TLogoBlobID &id : Trash) {
- if (THelpers::GenerationStep(id) <= storedGenStep) {
+ trashGoingToCollect.reserve(Trash.size());
+
+ for (const TLogoBlobID& id : Trash) {
+ auto genStep = THelpers::GenerationStep(id);
+ if (collectGenStep < genStep) {
+ break;
+ }
+ if (genStep <= storedGenStep || id.Generation() < ExecutorGeneration) { // assume Keep flag was issued to these blobs
doNotKeep.push_back(id);
}
+ Y_VERIFY(genStep <= collectGenStep);
+ trashGoingToCollect.push_back(id);
}
doNotKeep.shrink_to_fit();
+ trashGoingToCollect.shrink_to_fit();
+
+ Y_VERIFY(trashGoingToCollect);
LOG_TRACE_S(ctx, NKikimrServices::KEYVALUE, "StartCollectingIfPossible KeyValue# " << TabletId
<< "Flags Keep.Size# " << keep.size() << " DoNotKeep.Size# " << doNotKeep.size() << " Marker# KV65");
- StartGC(ctx, collectGenStep, keep, doNotKeep);
+ StartGC(ctx, keep, doNotKeep, trashGoingToCollect);
}
ui64 TKeyValueState::OnEvCollect(const TActorContext &ctx) {
@@ -317,18 +218,9 @@ void TKeyValueState::OnEvCollectDone(ui64 perGenerationCounterStepSize, TActorId
CollectorActorId = collector;
}
-void TKeyValueState::OnEvEraseCollect(const TActorContext &ctx) {
- Y_UNUSED(ctx);
- CountLatencyBsCollect();
-}
-
void TKeyValueState::OnEvCompleteGC() {
CountLatencyBsCollect();
}
-void TKeyValueState::OnEvPartialCompleteGC(TEvKeyValue::TEvPartialCompleteGC *ev) {
- PartialCollectedDoNotKeep = std::move(ev->CollectedDoNotKeep);
-}
-
} // NKeyValue
} // NKikimr
diff --git a/ydb/core/keyvalue/keyvalue_storage_read_request.cpp b/ydb/core/keyvalue/keyvalue_storage_read_request.cpp
index 4d91fef7ee..c73420dd90 100644
--- a/ydb/core/keyvalue/keyvalue_storage_read_request.cpp
+++ b/ydb/core/keyvalue/keyvalue_storage_read_request.cpp
@@ -3,6 +3,7 @@
#include <ydb/core/util/stlog.h>
#include <library/cpp/actors/protos/services_common.pb.h>
+#include <util/generic/overloaded.h>
namespace NKikimr {
@@ -62,16 +63,6 @@ public:
return std::holds_alternative<TIntermediate::TRead>(GetCommand());
}
- bool IsRangeRead() const {
- return std::holds_alternative<TIntermediate::TRangeRead>(GetCommand());
- }
-
- void AddRead(TIntermediate::TRead &read) {
- for (auto &readItem : read.ReadItems) {
- ReadItems.push_back({&read, &readItem});
- }
- }
-
NKikimrBlobStorage::EGetHandleClass GetHandleClass() const {
auto visitor = [&] (auto &request) {
return request.HandleClass;
@@ -99,19 +90,22 @@ public:
}
ui32 readCount = 0;
- auto addReadItems = [&](auto &request) {
- using Type = std::decay_t<decltype(request)>;
- if constexpr (std::is_same_v<Type, TIntermediate::TRead>) {
- AddRead(request);
- readCount++;
- } else {
- for (auto &read : request.Reads) {
- AddRead(read);
- readCount++;
- }
+ auto addRead = [&](TIntermediate::TRead& read) {
+ for (auto& readItem : read.ReadItems) {
+ ReadItems.push_back({&read, &readItem});
}
+ ++readCount;
};
- std::visit(addReadItems, GetCommand());
+ std::visit(TOverloaded{
+ [&](TIntermediate::TRead& read) {
+ addRead(read);
+ },
+ [&](TIntermediate::TRangeRead& rangeRead) {
+ for (auto& read : rangeRead.Reads) {
+ addRead(read);
+ }
+ }
+ }, GetCommand());
if (ReadItems.empty()) {
auto getStatus = [&](auto &request) {
@@ -284,9 +278,6 @@ public:
read.Status = response.Status;
if (response.Status == NKikimrProto::OK) {
- if (read.Value.size() != read.ValueSize) {
- read.Value.resize(read.ValueSize);
- }
Y_VERIFY_S(response.Buffer.size() == readItem.BlobSize,
"response.Buffer.size()# " << response.Buffer.size()
<< " readItem.BlobSize# " << readItem.BlobSize);
@@ -294,11 +285,14 @@ public:
"readItem.ValueOffset# " << readItem.ValueOffset
<< " readItem.BlobSize# " << readItem.BlobSize
<< " read.ValueSize# " << read.ValueSize);
- memcpy(const_cast<char *>(read.Value.data()) + readItem.ValueOffset, response.Buffer.data(), response.Buffer.size());
IntermediateResult->Stat.GroupReadBytes[std::make_pair(response.Id.Channel(), batch.GroupId)] += response.Buffer.size();
- // FIXME: count distinct blobs?" keyvalue_storage_request.cpp:279
IntermediateResult->Stat.GroupReadIops[std::make_pair(response.Id.Channel(), batch.GroupId)] += 1;
+ read.Value.Write(readItem.ValueOffset, std::move(response.Buffer));
} else {
+ Y_VERIFY_DEBUG_S(response.Status != NKikimrProto::NODATA, "NODATA received for TEvGet"
+ << " TabletId# " << TabletInfo->TabletID
+ << " Id# " << response.Id
+ << " Key# " << read.Key);
STLOG_WITH_ERROR_DESCRIPTION(ErrorDescription, NLog::PRI_ERROR, NKikimrServices::KEYVALUE, KV317,
"Unexpected EvGetResult.",
(KeyValue, TabletInfo->TabletID),
@@ -335,7 +329,7 @@ public:
Send(IntermediateResult->KeyValueActorId, new TEvKeyValue::TEvNotify(
IntermediateResult->RequestUid,
IntermediateResult->CreatedAtGeneration, IntermediateResult->CreatedAtStep,
- IntermediateResult->Stat, status));
+ IntermediateResult->Stat, status, std::move(IntermediateResult->RefCountsIncr)));
}
std::unique_ptr<TEvKeyValue::TEvReadResponse> CreateReadResponse(NKikimrKeyValue::Statuses::ReplyStatus status,
@@ -409,7 +403,10 @@ public:
response->Record.set_requested_key(interRead.Key);
response->Record.set_requested_offset(interRead.Offset);
response->Record.set_requested_size(interRead.RequestedSize);
- response->Record.set_value(interRead.Value);
+
+ TRope value = interRead.BuildRope();
+ const TContiguousSpan span = value.GetContiguousSpan();
+ response->Record.set_value(span.data(), span.size());
if (IntermediateResult->RespondTo.NodeId() != SelfId().NodeId()) {
response->Record.set_node_id(SelfId().NodeId());
@@ -450,7 +447,11 @@ public:
for (auto &interRead : interRange.Reads) {
auto *kvp = readRangeResult.add_pair();
kvp->set_key(interRead.Key);
- kvp->set_value(interRead.Value);
+
+ TRope value = interRead.BuildRope();
+ const TContiguousSpan span = value.GetContiguousSpan();
+ kvp->set_value(span.data(), span.size());
+
kvp->set_value_size(interRead.ValueSize);
kvp->set_creation_unix_time(interRead.CreationUnixTime);
ui32 storageChannel = MainStorageChannelInPublicApi;
diff --git a/ydb/core/keyvalue/keyvalue_storage_read_request_ut.cpp b/ydb/core/keyvalue/keyvalue_storage_read_request_ut.cpp
index 2ce080f54b..224c0b86ca 100644
--- a/ydb/core/keyvalue/keyvalue_storage_read_request_ut.cpp
+++ b/ydb/core/keyvalue/keyvalue_storage_read_request_ut.cpp
@@ -46,11 +46,16 @@ struct TBlobStorageMockState {
response.Id = query.Id;
response.Shift = query.Shift;
response.RequestedSize = query.Size;
- std::tie(response.Status, response.Buffer) = getBlob(query.Id);
+
+ TString r;
+ std::tie(response.Status, r) = getBlob(query.Id);
+
if (response.Status == NKikimrProto::OK) {
- TString buffer = TString::Uninitialized(query.Size);
- memcpy(const_cast<char *>(buffer.data()), response.Buffer.data() + query.Shift, response.Buffer.size());
- response.Buffer = buffer;
+ const size_t shift = Min<size_t>(query.Shift, r.size());
+ const size_t size = Min<size_t>(query.Size ? query.Size : Max<size_t>(), r.size() - shift);
+ TString buffer = TString::Uninitialized(size);
+ memcpy(buffer.Detach(), r.data() + shift, size);
+ response.Buffer = TRope(std::move(buffer));
}
}
return getResult;
diff --git a/ydb/core/keyvalue/keyvalue_storage_request.cpp b/ydb/core/keyvalue/keyvalue_storage_request.cpp
index 1522e0b22f..b5e546a1df 100644
--- a/ydb/core/keyvalue/keyvalue_storage_request.cpp
+++ b/ydb/core/keyvalue/keyvalue_storage_request.cpp
@@ -280,19 +280,16 @@ public:
auto groupId = ev->Get()->GroupId;
decltype(request.ReadQueue)::iterator it = request.ReadQueue.begin();
for (ui32 i = 0, num = ev->Get()->ResponseSz; i < num; ++i, ++it) {
- const auto& response = ev->Get()->Responses[i];
+ auto& response = ev->Get()->Responses[i];
auto& read = *it->Read;
auto& readItem = *it->ReadItem;
if (response.Status == NKikimrProto::OK) {
- if (read.Value.size() != read.ValueSize) {
- read.Value.resize(read.ValueSize);
- }
Y_VERIFY(response.Buffer.size() == readItem.BlobSize);
Y_VERIFY(readItem.ValueOffset + readItem.BlobSize <= read.ValueSize);
- memcpy(const_cast<char *>(read.Value.data()) + readItem.ValueOffset, response.Buffer.data(), response.Buffer.size());
IntermediateResults->Stat.GroupReadBytes[std::make_pair(response.Id.Channel(), groupId)] += response.Buffer.size();
IntermediateResults->Stat.GroupReadIops[std::make_pair(response.Id.Channel(), groupId)] += 1; // FIXME: count distinct blobs?
+ read.Value.Write(readItem.ValueOffset, std::move(response.Buffer));
} else {
TStringStream err;
if (read.Message.size()) {
@@ -485,7 +482,7 @@ public:
ctx.Send(keyValueActorId, new TEvKeyValue::TEvNotify(
IntermediateResults->RequestUid,
IntermediateResults->CreatedAtGeneration, IntermediateResults->CreatedAtStep,
- IntermediateResults->Stat, status));
+ IntermediateResults->Stat, status, std::move(IntermediateResults->RefCountsIncr)));
Die(ctx);
}
@@ -600,11 +597,8 @@ public:
auto &getStatus = IntermediateResults->GetStatuses[i];
if (getStatus.Status != NKikimrProto::OK) {
Y_VERIFY(getStatus.Status == NKikimrProto::UNKNOWN);
- const ui32 groupId = TabletInfo->GroupFor(getStatus.LogoBlobId.Channel(), getStatus.LogoBlobId.Generation());
- Y_VERIFY(groupId != Max<ui32>(), "GetStatus Blob# %s is mapped to an invalid group (-1)!",
- getStatus.LogoBlobId.ToString().c_str());
SendToBSProxy(
- ctx, groupId,
+ ctx, getStatus.GroupId,
new TEvBlobStorage::TEvStatus(IntermediateResults->Deadline), i);
++GetStatusRequestsSent;
}
@@ -635,15 +629,15 @@ public:
if (request.Status != NKikimrProto::SCHEDULED) {
Y_VERIFY(request.Status == NKikimrProto::UNKNOWN);
- const TRcBuf& data = request.Data;
- const TContiguousSpan whole = data.GetContiguousSpan();
+ const TRope& data = request.Data;
+ auto iter = data.begin();
- ui64 offset = 0;
for (const TLogoBlobID& logoBlobId : request.LogoBlobIds) {
- const TContiguousSpan chunk = whole.SubSpan(offset, logoBlobId.BlobSize());
+ const auto begin = iter;
+ iter += logoBlobId.BlobSize();
THolder<TEvBlobStorage::TEvPut> put(
new TEvBlobStorage::TEvPut(
- logoBlobId, TRcBuf(TRcBuf::Piece, chunk.data(), chunk.size(), data),
+ logoBlobId, TRcBuf(TRope(begin, iter)),
IntermediateResults->Deadline, request.HandleClass,
request.Tactic));
const ui32 groupId = TabletInfo->GroupFor(logoBlobId.Channel(), logoBlobId.Generation());
@@ -656,7 +650,6 @@ public:
SendPutToGroup(ctx, groupId, TabletInfo.Get(), std::move(put), i);
++WriteRequestsSent;
- offset += logoBlobId.BlobSize();
}
}
}
diff --git a/ydb/core/keyvalue/keyvalue_ut.cpp b/ydb/core/keyvalue/keyvalue_ut.cpp
index a8babc46c1..2f2d8118f0 100644
--- a/ydb/core/keyvalue/keyvalue_ut.cpp
+++ b/ydb/core/keyvalue/keyvalue_ut.cpp
@@ -1125,9 +1125,6 @@ Y_UNIT_TEST(TestWriteReadDeleteWithRestartsAndCatchCollectGarbageEventsWithSlowI
savedInitialEvents.pop();
}
- TDispatchOptions options3;
- options3.FinalEvents.push_back(TEvKeyValue::TEvEraseCollect::EventType);
-
TestLog("Third dispatch ", collectStep);
UNIT_ASSERT_VALUES_EQUAL(collectStep, 2);
diff --git a/ydb/core/kqp/common/events/events.h b/ydb/core/kqp/common/events/events.h
index a605372921..26cf8f50b3 100644
--- a/ydb/core/kqp/common/events/events.h
+++ b/ydb/core/kqp/common/events/events.h
@@ -93,6 +93,8 @@ struct TEvKqp {
TEvScriptRequest() = default;
mutable NKikimrKqp::TEvQueryRequest Record;
+ TDuration ForgetAfter;
+ TDuration ResultsTtl;
};
struct TEvScriptResponse : public TEventLocal<TEvScriptResponse, TKqpEvents::EvScriptResponse> {
diff --git a/ydb/core/kqp/common/events/query.h b/ydb/core/kqp/common/events/query.h
index 1a0ecc14c4..49bd2cbac2 100644
--- a/ydb/core/kqp/common/events/query.h
+++ b/ydb/core/kqp/common/events/query.h
@@ -115,10 +115,6 @@ public:
return RequestCtx ? YqlText : Record.GetRequest().GetQuery();
}
- const ::NKikimrMiniKQL::TParams& GetParameters() const {
- return Record.GetRequest().GetParameters();
- }
-
const ::Ydb::Table::TransactionControl& GetTxControl() const {
return RequestCtx ? *TxControl : Record.GetRequest().GetTxControl();
}
@@ -229,7 +225,6 @@ public:
return ParametersSize;
}
- ParametersSize += Record.GetRequest().GetParameters().ByteSizeLong();
for (const auto& [name, param] : GetYdbParameters()) {
ParametersSize += name.size();
ParametersSize += param.ByteSizeLong();
diff --git a/ydb/core/kqp/common/events/script_executions.h b/ydb/core/kqp/common/events/script_executions.h
index 26e876c494..f00d6294a5 100644
--- a/ydb/core/kqp/common/events/script_executions.h
+++ b/ydb/core/kqp/common/events/script_executions.h
@@ -55,6 +55,13 @@ struct TEvGetScriptExecutionOperationResponse : public NActors::TEventLocal<TEvG
{
}
+ TEvGetScriptExecutionOperationResponse(Ydb::StatusIds::StatusCode status, NYql::TIssues issues)
+ : Ready(false)
+ , Status(status)
+ , Issues(std::move(issues))
+ {
+ }
+
bool Ready;
Ydb::StatusIds::StatusCode Status;
NYql::TIssues Issues;
@@ -82,6 +89,12 @@ struct TEvListScriptExecutionOperationsResponse : public NActors::TEventLocal<TE
{
}
+ TEvListScriptExecutionOperationsResponse(Ydb::StatusIds::StatusCode status, NYql::TIssues issues)
+ : Status(status)
+ , Issues(std::move(issues))
+ {
+ }
+
Ydb::StatusIds::StatusCode Status;
NYql::TIssues Issues;
TString NextPageToken;
diff --git a/ydb/core/kqp/common/kqp_yql.cpp b/ydb/core/kqp/common/kqp_yql.cpp
index 32294b86b9..27443b4323 100644
--- a/ydb/core/kqp/common/kqp_yql.cpp
+++ b/ydb/core/kqp/common/kqp_yql.cpp
@@ -310,17 +310,25 @@ TCoNameValueTupleList TKqpReadTableExplainPrompt::BuildNode(TExprContext& ctx, T
.Done()
);
- if (!ExpectedMaxRanges.empty()) {
+ if (ExpectedMaxRanges) {
prompt.emplace_back(
Build<TCoNameValueTuple>(ctx, pos)
.Name()
.Build(ExpectedMaxRangesName)
.Value<TCoAtom>()
- .Build(ExpectedMaxRanges)
+ .Build(ToString(*ExpectedMaxRanges))
.Done()
);
}
+ prompt.emplace_back(
+ Build<TCoNameValueTuple>(ctx, pos)
+ .Name()
+ .Build(PointPrefixLenName)
+ .Value<TCoAtom>()
+ .Build(ToString(PointPrefixLen))
+ .Done());
+
return Build<TCoNameValueTupleList>(ctx, pos)
.Add(prompt)
.Done();
@@ -345,8 +353,13 @@ TKqpReadTableExplainPrompt TKqpReadTableExplainPrompt::Parse(const NNodes::TCoNa
}
if (name == TKqpReadTableExplainPrompt::ExpectedMaxRangesName) {
- prompt.ExpectedMaxRanges = TString(tuple.Value().template Cast<TCoAtom>());
- continue;
+ prompt.ExpectedMaxRanges = FromString<ui64>(TString(tuple.Value().template Cast<TCoAtom>()));
+ continue;
+ }
+
+ if (name == TKqpReadTableExplainPrompt::PointPrefixLenName) {
+ prompt.PointPrefixLen = FromString<ui64>(TString(tuple.Value().template Cast<TCoAtom>()));
+ continue;
}
YQL_ENSURE(false, "Unknown KqpReadTableRanges explain prompt name '" << name << "'");
diff --git a/ydb/core/kqp/common/kqp_yql.h b/ydb/core/kqp/common/kqp_yql.h
index 293f98c90d..08636cbe1d 100644
--- a/ydb/core/kqp/common/kqp_yql.h
+++ b/ydb/core/kqp/common/kqp_yql.h
@@ -85,16 +85,22 @@ struct TKqpUpsertRowsSettings {
struct TKqpReadTableExplainPrompt {
static constexpr TStringBuf UsedKeyColumnsName = "UsedKeyColumns";
static constexpr TStringBuf ExpectedMaxRangesName = "ExpectedMaxRanges";
+ static constexpr TStringBuf PointPrefixLenName = "PointPrefixLen";
TVector<TString> UsedKeyColumns;
- TString ExpectedMaxRanges;
+ TMaybe<ui64> ExpectedMaxRanges;
+ ui64 PointPrefixLen = 0;
void SetUsedKeyColumns(TVector<TString> columns) {
UsedKeyColumns = columns;
}
void SetExpectedMaxRanges(size_t count) {
- ExpectedMaxRanges = ToString(count);
+ ExpectedMaxRanges = count;
+ }
+
+ void SetPointPrefixLen(size_t len) {
+ PointPrefixLen = len;
}
NNodes::TCoNameValueTupleList BuildNode(TExprContext& ctx, TPositionHandle pos) const;
diff --git a/ydb/core/kqp/compile_service/kqp_compile_actor.cpp b/ydb/core/kqp/compile_service/kqp_compile_actor.cpp
index 6fb416cb35..cd5288ef90 100644
--- a/ydb/core/kqp/compile_service/kqp_compile_actor.cpp
+++ b/ydb/core/kqp/compile_service/kqp_compile_actor.cpp
@@ -2,7 +2,7 @@
#include <ydb/core/actorlib_impl/long_timer.h>
#include <ydb/core/base/appdata.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <ydb/core/client/minikql_compile/mkql_compile_service.h>
#include <ydb/core/kqp/counters/kqp_counters.h>
#include <ydb/core/kqp/gateway/kqp_metadata_loader.h>
@@ -60,6 +60,7 @@ public:
TKqpCompileActor(const TActorId& owner, const TKqpSettings::TConstPtr& kqpSettings,
const TTableServiceConfig& serviceConfig, NYql::IHTTPGateway::TPtr httpGateway,
TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory,
const TString& uid, const TKqpQueryId& queryId,
const TIntrusiveConstPtr<NACLib::TUserToken>& userToken,
TKqpDbCountersPtr dbCounters, NWilson::TTraceId traceId)
@@ -67,6 +68,7 @@ public:
, HttpGateway(std::move(httpGateway))
, ModuleResolverState(moduleResolverState)
, Counters(counters)
+ , CredentialsFactory(std::move(credentialsFactory))
, Uid(uid)
, QueryId(queryId)
, QueryRef(QueryId.Text, QueryId.QueryParameterTypes)
@@ -121,7 +123,7 @@ public:
Config->FeatureFlags = AppData(ctx)->FeatureFlags;
KqpHost = CreateKqpHost(Gateway, QueryId.Cluster, QueryId.Database, Config, ModuleResolverState->ModuleResolver,
- HttpGateway, AppData(ctx)->FunctionRegistry, false);
+ HttpGateway, AppData(ctx)->FunctionRegistry, false, false, CredentialsFactory);
IKqpHost::TPrepareSettings prepareSettings;
prepareSettings.DocumentApiRestricted = QueryId.Settings.DocumentApiRestricted;
@@ -367,6 +369,7 @@ private:
NYql::IHTTPGateway::TPtr HttpGateway;
TIntrusivePtr<TModuleResolverState> ModuleResolverState;
TIntrusivePtr<TKqpCounters> Counters;
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr CredentialsFactory;
TString Uid;
TKqpQueryId QueryId;
TKqpQueryRef QueryRef;
@@ -405,16 +408,19 @@ void ApplyServiceConfig(TKikimrConfiguration& kqpConfig, const TTableServiceConf
kqpConfig.EnableSequentialReads = serviceConfig.GetEnableSequentialReads();
kqpConfig.EnableKqpImmediateEffects = serviceConfig.GetEnableKqpImmediateEffects();
kqpConfig.EnablePreparedDdl = serviceConfig.GetEnablePreparedDdl();
+ kqpConfig.EnableSequences = serviceConfig.GetEnableSequences();
kqpConfig.BindingsMode = RemapBindingsMode(serviceConfig.GetBindingsMode());
+ kqpConfig.PredicateExtract20 = serviceConfig.GetPredicateExtract20();
}
IActor* CreateKqpCompileActor(const TActorId& owner, const TKqpSettings::TConstPtr& kqpSettings,
const TTableServiceConfig& serviceConfig, NYql::IHTTPGateway::TPtr httpGateway,
TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory,
const TString& uid, const TKqpQueryId& query, const TIntrusiveConstPtr<NACLib::TUserToken>& userToken,
TKqpDbCountersPtr dbCounters, NWilson::TTraceId traceId)
{
- return new TKqpCompileActor(owner, kqpSettings, serviceConfig, std::move(httpGateway), moduleResolverState, counters, uid,
+ return new TKqpCompileActor(owner, kqpSettings, serviceConfig, std::move(httpGateway), moduleResolverState, counters, std::move(credentialsFactory), uid,
query, userToken, dbCounters, std::move(traceId));
}
diff --git a/ydb/core/kqp/compile_service/kqp_compile_service.cpp b/ydb/core/kqp/compile_service/kqp_compile_service.cpp
index a81fe507e6..c86c9d3fc3 100644
--- a/ydb/core/kqp/compile_service/kqp_compile_service.cpp
+++ b/ydb/core/kqp/compile_service/kqp_compile_service.cpp
@@ -2,7 +2,7 @@
#include <ydb/core/actorlib_impl/long_timer.h>
#include <ydb/core/base/appdata.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <ydb/core/cms/console/console.h>
#include <ydb/core/cms/console/configs_dispatcher.h>
#include <ydb/core/kqp/counters/kqp_counters.h>
@@ -307,6 +307,7 @@ public:
TKqpCompileService(const TTableServiceConfig& serviceConfig, const TKqpSettings::TConstPtr& kqpSettings,
TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters,
std::shared_ptr<IQueryReplayBackendFactory> queryReplayFactory,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory,
NYql::IHTTPGateway::TPtr httpGateway)
: Config(serviceConfig)
, KqpSettings(kqpSettings)
@@ -315,6 +316,7 @@ public:
, QueryCache(Config.GetCompileQueryCacheSize(), TDuration::Seconds(Config.GetCompileQueryCacheTTLSec()))
, RequestsQueue(Config.GetCompileRequestQueueSize())
, QueryReplayFactory(std::move(queryReplayFactory))
+ , CredentialsFactory(std::move(credentialsFactory))
, HttpGateway(std::move(httpGateway))
{}
@@ -370,6 +372,7 @@ private:
bool enableKqpDataQueryPredicateExtract = Config.GetEnablePredicateExtractForDataQueries();
bool enableKqpScanQueryPredicateExtract = Config.GetEnablePredicateExtractForScanQueries();
+ bool predicateExtract20 = Config.GetPredicateExtract20();
bool enableSequentialReads = Config.GetEnableSequentialReads();
bool defaultSyntaxVersion = Config.GetSqlVersion();
@@ -389,6 +392,7 @@ private:
Config.GetEnableKqpScanQuerySourceRead() != enableKqpScanQuerySourceRead ||
Config.GetEnablePredicateExtractForDataQueries() != enableKqpDataQueryPredicateExtract ||
Config.GetEnablePredicateExtractForScanQueries() != enableKqpScanQueryPredicateExtract ||
+ Config.GetPredicateExtract20() != predicateExtract20 ||
Config.GetEnableSequentialReads() != enableSequentialReads ||
Config.GetEnableKqpImmediateEffects() != enableKqpImmediateEffects) {
@@ -729,7 +733,7 @@ private:
void StartCompilation(TKqpCompileRequest&& request, const TActorContext& ctx) {
auto compileActor = CreateKqpCompileActor(ctx.SelfID, KqpSettings, Config, HttpGateway, ModuleResolverState, Counters,
- request.Uid, request.Query, request.UserToken, request.DbCounters, request.CompileServiceSpan.GetTraceId());
+ CredentialsFactory, request.Uid, request.Query, request.UserToken, request.DbCounters, request.CompileServiceSpan.GetTraceId());
auto compileActorId = ctx.ExecutorThread.RegisterActor(compileActor, TMailboxType::HTSwap,
AppData(ctx)->UserPoolId);
@@ -816,16 +820,18 @@ private:
TKqpQueryCache QueryCache;
TKqpRequestsQueue RequestsQueue;
std::shared_ptr<IQueryReplayBackendFactory> QueryReplayFactory;
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr CredentialsFactory;
NYql::IHTTPGateway::TPtr HttpGateway;
};
IActor* CreateKqpCompileService(const TTableServiceConfig& serviceConfig, const TKqpSettings::TConstPtr& kqpSettings,
TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters,
std::shared_ptr<IQueryReplayBackendFactory> queryReplayFactory,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory,
NYql::IHTTPGateway::TPtr httpGateway)
{
return new TKqpCompileService(serviceConfig, kqpSettings, moduleResolverState, counters,
- std::move(queryReplayFactory), std::move(httpGateway));
+ std::move(queryReplayFactory), std::move(credentialsFactory), std::move(httpGateway));
}
} // namespace NKqp
diff --git a/ydb/core/kqp/compile_service/kqp_compile_service.h b/ydb/core/kqp/compile_service/kqp_compile_service.h
index aca598f274..f4dcfe7b8a 100644
--- a/ydb/core/kqp/compile_service/kqp_compile_service.h
+++ b/ydb/core/kqp/compile_service/kqp_compile_service.h
@@ -3,6 +3,7 @@
#include <ydb/core/kqp/common/kqp.h>
#include <ydb/core/kqp/gateway/kqp_gateway.h>
#include <ydb/library/yql/providers/common/http_gateway/yql_http_gateway.h>
+#include <ydb/library/yql/providers/common/token_accessor/client/factory.h>
namespace NKikimr {
namespace NKqp {
@@ -10,11 +11,13 @@ namespace NKqp {
IActor* CreateKqpCompileService(const NKikimrConfig::TTableServiceConfig& serviceConfig,
const TKqpSettings::TConstPtr& kqpSettings, TIntrusivePtr<TModuleResolverState> moduleResolverState,
TIntrusivePtr<TKqpCounters> counters, std::shared_ptr<IQueryReplayBackendFactory> queryReplayFactory,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory,
NYql::IHTTPGateway::TPtr httpGateway);
IActor* CreateKqpCompileActor(const TActorId& owner, const TKqpSettings::TConstPtr& kqpSettings,
const NKikimrConfig::TTableServiceConfig& serviceConfig, NYql::IHTTPGateway::TPtr httpGateway,
TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory,
const TString& uid, const TKqpQueryId& query,
const TIntrusiveConstPtr<NACLib::TUserToken>& userToken,
TKqpDbCountersPtr dbCounters, NWilson::TTraceId traceId = {});
diff --git a/ydb/core/kqp/compute_actor/kqp_compute_actor.cpp b/ydb/core/kqp/compute_actor/kqp_compute_actor.cpp
index 7e56569c05..97e6c30fa0 100644
--- a/ydb/core/kqp/compute_actor/kqp_compute_actor.cpp
+++ b/ydb/core/kqp/compute_actor/kqp_compute_actor.cpp
@@ -55,12 +55,12 @@ TComputationNodeFactory GetKqpActorComputeFactory(TKqpScanComputeContext* comput
namespace NKqp {
-NYql::NDq::IDqAsyncIoFactory::TPtr CreateKqpAsyncIoFactory(TIntrusivePtr<TKqpCounters> counters, const NYql::IHTTPGateway::TPtr& httpGateway) {
+NYql::NDq::IDqAsyncIoFactory::TPtr CreateKqpAsyncIoFactory(TIntrusivePtr<TKqpCounters> counters, const NYql::IHTTPGateway::TPtr& httpGateway, const NYql::ISecuredServiceAccountCredentialsFactory::TPtr& credentialsFactory) {
auto factory = MakeIntrusive<NYql::NDq::TDqAsyncIoFactory>();
RegisterStreamLookupActorFactory(*factory, counters);
RegisterKqpReadActor(*factory, counters);
- RegisterS3ReadActorFactory(*factory, nullptr, httpGateway);
- RegisterS3WriteActorFactory(*factory, nullptr, httpGateway);
+ RegisterS3ReadActorFactory(*factory, credentialsFactory, httpGateway);
+ RegisterS3WriteActorFactory(*factory, credentialsFactory, httpGateway);
RegisterSequencerActorFactory(*factory, counters);
return factory;
}
diff --git a/ydb/core/kqp/compute_actor/kqp_compute_actor.h b/ydb/core/kqp/compute_actor/kqp_compute_actor.h
index e2b44eeff8..1911a336e6 100644
--- a/ydb/core/kqp/compute_actor/kqp_compute_actor.h
+++ b/ydb/core/kqp/compute_actor/kqp_compute_actor.h
@@ -4,6 +4,7 @@
#include <ydb/library/yql/dq/actors/compute/dq_compute_actor.h>
#include <ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io_factory.h>
#include <ydb/library/yql/providers/common/http_gateway/yql_http_gateway.h>
+#include <ydb/library/yql/providers/common/token_accessor/client/factory.h>
#include <ydb/core/scheme/scheme_tabledefs.h>
namespace NKikimr {
@@ -58,7 +59,7 @@ IActor* CreateKqpScanFetcher(const NKikimrKqp::TKqpSnapshot& snapshot, std::vect
const NKikimrTxDataShard::TKqpTransaction::TScanTaskMeta& meta, const NYql::NDq::TComputeRuntimeSettings& settings,
const ui64 txId, const TShardsScanningPolicy& shardsScanningPolicy, TIntrusivePtr<TKqpCounters> counters, NWilson::TTraceId traceId);
-NYql::NDq::IDqAsyncIoFactory::TPtr CreateKqpAsyncIoFactory(TIntrusivePtr<TKqpCounters> counters, const NYql::IHTTPGateway::TPtr& httpGateway);
+NYql::NDq::IDqAsyncIoFactory::TPtr CreateKqpAsyncIoFactory(TIntrusivePtr<TKqpCounters> counters, const NYql::IHTTPGateway::TPtr& httpGateway, const NYql::ISecuredServiceAccountCredentialsFactory::TPtr& credentialsFactory);
} // namespace NKqp
} // namespace NKikimr
diff --git a/ydb/core/kqp/compute_actor/kqp_scan_compute_manager.cpp b/ydb/core/kqp/compute_actor/kqp_scan_compute_manager.cpp
index 18f7cb9968..1f974e2326 100644
--- a/ydb/core/kqp/compute_actor/kqp_scan_compute_manager.cpp
+++ b/ydb/core/kqp/compute_actor/kqp_scan_compute_manager.cpp
@@ -1,5 +1,5 @@
#include "kqp_scan_compute_manager.h"
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <util/string/builder.h>
namespace NKikimr::NKqp::NScanPrivate {
diff --git a/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp b/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp
index 62a91c1d16..de296ca58c 100644
--- a/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp
+++ b/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp
@@ -1,5 +1,5 @@
#include "kqp_scan_fetcher_actor.h"
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <ydb/core/kqp/common/kqp_resolve.h>
#include <ydb/core/tx/datashard/range_ops.h>
#include <ydb/core/actorlib_impl/long_timer.h>
@@ -335,23 +335,23 @@ void TKqpScanFetcherActor::HandleExecute(TEvTxProxySchemeCache::TEvResolveKeySet
auto newShard = TShardState(partition.ShardId, ++ScansCounter);
for (ui64 j = i; j < state.Ranges.size(); ++j) {
- CA_LOG_D("Intersect state range #" << j << " " << DebugPrintRange(KeyColumnTypes, state.Ranges[j].ToTableRange(), tr)
- << " with partition range " << DebugPrintRange(KeyColumnTypes, partitionRange, tr));
-
- auto intersection = Intersect(KeyColumnTypes, partitionRange, state.Ranges[j].ToTableRange());
-
- if (!intersection.IsEmptyRange(KeyColumnTypes)) {
+ auto comparison = CompareRanges(partitionRange, state.Ranges[j].ToTableRange(), KeyColumnTypes);
+ CA_LOG_D("Compare range #" << j << " " << DebugPrintRange(KeyColumnTypes, state.Ranges[j].ToTableRange(), tr)
+ << " with partition range " << DebugPrintRange(KeyColumnTypes, partitionRange, tr)
+ << " : " << comparison);
+
+ if (comparison > 0) {
+ continue;
+ } else if (comparison == 0) {
+ auto intersection = Intersect(KeyColumnTypes, partitionRange, state.Ranges[j].ToTableRange());
CA_LOG_D("Add range to new shardId: " << partition.ShardId
<< ", range: " << DebugPrintRange(KeyColumnTypes, intersection, tr));
newShard.Ranges.emplace_back(TSerializedTableRange(intersection));
} else {
- CA_LOG_D("empty intersection");
- if (j > i) {
- i = j - 1;
- }
break;
}
+ i = j;
}
if (!newShard.Ranges.empty()) {
@@ -367,6 +367,14 @@ void TKqpScanFetcherActor::HandleExecute(TEvTxProxySchemeCache::TEvResolveKeySet
if (!state.LastKey.empty()) {
PendingShards.front().LastKey = std::move(state.LastKey);
+ while(!PendingShards.empty() && PendingShards.front().GetScanRanges(KeyColumnTypes).empty()) {
+ CA_LOG_D("Nothing to read " << PendingShards.front().ToString(KeyColumnTypes));
+ auto readShard = std::move(PendingShards.front());
+ PendingShards.pop_front();
+ PendingShards.front().LastKey = std::move(readShard.LastKey);
+ }
+
+ YQL_ENSURE(!PendingShards.empty());
}
if (IsDebugLogEnabled(TlsActivationContext->ActorSystem(), NKikimrServices::KQP_COMPUTE)
diff --git a/ydb/core/kqp/counters/kqp_counters.cpp b/ydb/core/kqp/counters/kqp_counters.cpp
index 26d1b4a266..3dd3544763 100644
--- a/ydb/core/kqp/counters/kqp_counters.cpp
+++ b/ydb/core/kqp/counters/kqp_counters.cpp
@@ -763,7 +763,15 @@ TKqpCounters::TKqpCounters(const ::NMonitoring::TDynamicCounterPtr& counters, co
RmInternalError = KqpGroup->GetCounter("RM/InternalError", true);
RmSnapshotLatency = KqpGroup->GetHistogram(
"RM/SnapshotLatency", NMonitoring::ExponentialHistogram(20, 2, 1));
+
+ NodeServiceStartEventDelivery = KqpGroup->GetHistogram(
+ "NodeService/StartEventDeliveryUs", NMonitoring::ExponentialHistogram(20, 2, 1));
+ NodeServiceProcessTime = KqpGroup->GetHistogram(
+ "jodeService/ProcessStartEventUs", NMonitoring::ExponentialHistogram(20, 2, 1));
+ NodeServiceProcessCancelTime = KqpGroup->GetHistogram(
+ "NodeService/ProcessCancelEventUs", NMonitoring::ExponentialHistogram(20, 2, 1));
RmMaxSnapshotLatency = KqpGroup->GetCounter("RM/MaxSnapshotLatency", false);
+ RmNodeNumberInSnapshot = KqpGroup->GetCounter("RM/NodeNumberInSnapshot", false);
/* Spilling */
SpillingWriteBlobs = KqpGroup->GetCounter("Spilling/WriteBlobs", true);
@@ -787,6 +795,9 @@ TKqpCounters::TKqpCounters(const ::NMonitoring::TDynamicCounterPtr& counters, co
SentIteratorCancels = KqpGroup->GetCounter("IteratorReads/SentCancels", true);
CreatedIterators = KqpGroup->GetCounter("IteratorReads/Created", true);
ReadActorsCount = KqpGroup->GetCounter("IteratorReads/ReadActorCount", false);
+ ReadActorRemoteFetch = KqpGroup->GetCounter("IteratorReads/ReadActorRemoteFetch", true);
+ ReadActorRemoteFirstFetch = KqpGroup->GetCounter("IteratorReads/ReadActorRemoteFirstFetch", true);
+ ReadActorAbsentNodeId = KqpGroup->GetCounter("IteratorReads/AbsentNodeId", true);
StreamLookupActorsCount = KqpGroup->GetCounter("IteratorReads/StreamLookupActorCount", false);
ReadActorRetries = KqpGroup->GetCounter("IteratorReads/Retries", true);
DataShardIteratorFails = KqpGroup->GetCounter("IteratorReads/DatashardFails", true);
diff --git a/ydb/core/kqp/counters/kqp_counters.h b/ydb/core/kqp/counters/kqp_counters.h
index 07f2629609..4be02be974 100644
--- a/ydb/core/kqp/counters/kqp_counters.h
+++ b/ydb/core/kqp/counters/kqp_counters.h
@@ -361,7 +361,11 @@ public:
::NMonitoring::TDynamicCounters::TCounterPtr RmExtraMemAllocs;
::NMonitoring::TDynamicCounters::TCounterPtr RmInternalError;
NMonitoring::THistogramPtr RmSnapshotLatency;
+ NMonitoring::THistogramPtr NodeServiceStartEventDelivery;
+ NMonitoring::THistogramPtr NodeServiceProcessTime;
+ NMonitoring::THistogramPtr NodeServiceProcessCancelTime;
::NMonitoring::TDynamicCounters::TCounterPtr RmMaxSnapshotLatency;
+ ::NMonitoring::TDynamicCounters::TCounterPtr RmNodeNumberInSnapshot;
// Spilling counters
::NMonitoring::TDynamicCounters::TCounterPtr SpillingWriteBlobs;
@@ -384,6 +388,9 @@ public:
::NMonitoring::TDynamicCounters::TCounterPtr SentIteratorCancels;
::NMonitoring::TDynamicCounters::TCounterPtr CreatedIterators;
::NMonitoring::TDynamicCounters::TCounterPtr ReadActorsCount;
+ ::NMonitoring::TDynamicCounters::TCounterPtr ReadActorRemoteFirstFetch;
+ ::NMonitoring::TDynamicCounters::TCounterPtr ReadActorRemoteFetch;
+ ::NMonitoring::TDynamicCounters::TCounterPtr ReadActorAbsentNodeId;
::NMonitoring::TDynamicCounters::TCounterPtr StreamLookupActorsCount;
::NMonitoring::TDynamicCounters::TCounterPtr ReadActorRetries;
::NMonitoring::TDynamicCounters::TCounterPtr DataShardIteratorFails;
diff --git a/ydb/core/kqp/executer_actor/kqp_data_executer.cpp b/ydb/core/kqp/executer_actor/kqp_data_executer.cpp
index b97955b4f3..c0a96cd4f3 100644
--- a/ydb/core/kqp/executer_actor/kqp_data_executer.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_data_executer.cpp
@@ -10,7 +10,7 @@
#include <ydb/core/base/appdata.h>
#include <ydb/core/base/tablet_pipecache.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <ydb/core/client/minikql_compile/db_key_resolver.h>
#include <ydb/core/kqp/common/kqp_yql.h>
#include <ydb/core/kqp/compute_actor/kqp_compute_actor.h>
@@ -163,10 +163,12 @@ public:
if (IsDebugLogEnabled()) {
auto sb = TStringBuilder() << "ActorState: " << CurrentStateFuncName()
- << ", waiting for " << PendingComputeActors.size() << " compute actor(s) and "
+ << ", waiting for " << (Planner ? Planner->GetPendingComputeActors().size() : 0) << " compute actor(s) and "
<< notFinished << " datashard(s): ";
- for (const auto& shardId : PendingComputeActors) {
- sb << "CA " << shardId.first << ", ";
+ if (Planner) {
+ for (const auto& shardId : Planner->GetPendingComputeActors()) {
+ sb << "CA " << shardId.first << ", ";
+ }
}
for (const auto& [shardId, shardState] : ShardStates) {
if (shardState.State != TShardState::EState::Finished) {
@@ -291,6 +293,7 @@ public:
hFunc(TEvKqpExecuter::TEvTableResolveStatus, HandleResolve);
hFunc(TEvKqpExecuter::TEvShardsResolveStatus, HandleResolve);
hFunc(TEvKqp::TEvAbortExecution, HandleAbortExecution);
+ hFunc(NMetadata::NProvider::TEvRefreshSubscriberData, HandleRefreshSubscriberData);
default:
UnexpectedEvent("WaitResolveState", ev->GetTypeRewrite());
}
@@ -625,7 +628,7 @@ private:
bool ShardPrepared(TShardState& state, const NKikimrTxColumnShard::TEvProposeTransactionResult& result) {
return ShardPreparedImpl(state, result);
}
-
+
bool ShardPrepared(TShardState& state, const NKikimrPQ::TEvProposeTransactionResult& result) {
return ShardPreparedImpl(state, result);
}
@@ -1334,8 +1337,9 @@ private:
taskMeta.ReadInfo.Reverse = reverse;
};
- void BuildDatashardTasks(TStageInfo& stageInfo) {
+ void BuildDatashardTasks(TStageInfo& stageInfo, const TMap<TString, TString>& secureParams) {
THashMap<ui64, ui64> shardTasks; // shardId -> taskId
+ auto& stage = stageInfo.Meta.GetStage(stageInfo.Id);
auto getShardTask = [&](ui64 shardId) -> TTask& {
auto it = shardTasks.find(shardId);
@@ -1343,14 +1347,16 @@ private:
return TasksGraph.GetTask(it->second);
}
auto& task = TasksGraph.AddTask(stageInfo);
+ task.Meta.Type = TTaskMeta::TTaskType::DataShard;
task.Meta.ExecuterId = SelfId();
task.Meta.ShardId = shardId;
shardTasks.emplace(shardId, task.Id);
+
+ BuildSinks(stage, task, secureParams);
+
return task;
};
- auto& stage = stageInfo.Meta.GetStage(stageInfo.Id);
-
const auto& table = GetTableKeys().GetTable(stageInfo.Meta.TableId);
const auto& keyTypes = table.KeyColumnTypes;;
@@ -1475,7 +1481,7 @@ private:
}
}
- void BuildComputeTasks(TStageInfo& stageInfo) {
+ void BuildComputeTasks(TStageInfo& stageInfo, const TMap<TString, TString>& secureParams) {
auto& stage = stageInfo.Meta.GetStage(stageInfo.Id);
ui32 partitionsCount = 1;
@@ -1527,6 +1533,10 @@ private:
for (ui32 i = 0; i < partitionsCount; ++i) {
auto& task = TasksGraph.AddTask(stageInfo);
task.Meta.ExecuterId = SelfId();
+ task.Meta.Type = TTaskMeta::TTaskType::Compute;
+
+ BuildSinks(stage, task, secureParams);
+
LOG_D("Stage " << stageInfo.Id << " create compute task: " << task.Id);
}
}
@@ -1623,51 +1633,33 @@ private:
YQL_ENSURE(result.second);
}
- void ExecuteDataComputeTask(ui64 taskId, bool shareMailbox) {
- auto& task = TasksGraph.GetTask(taskId);
- NYql::NDqProto::TDqTask* taskDesc = ArenaSerializeTaskToProto(TasksGraph, task);
-
- TComputeRuntimeSettings settings;
- if (Deadline) {
- settings.Timeout = *Deadline - TAppData::TimeProvider->Now();
+ void ExecuteAfterFetchingSecrets() {
+ bool waitSecretsSnapshot = false;
+ for (const auto& transaction : Request.Transactions) {
+ if (!transaction.Body->GetSecretNames().empty()) {
+ FetchSecrets();
+ waitSecretsSnapshot = true;
+ break;
+ }
}
- //settings.ExtraMemoryAllocationPool = NRm::EKqpMemoryPool::DataQuery;
- settings.ExtraMemoryAllocationPool = NRm::EKqpMemoryPool::Unspecified;
- settings.FailOnUndelivery = true;
- settings.StatsMode = GetDqStatsMode(Request.StatsMode);
- settings.UseSpilling = false;
-
- TComputeMemoryLimits limits;
- limits.ChannelBufferSize = 50_MB;
- limits.MkqlLightProgramMemoryLimit = Request.MkqlMemoryLimit > 0 ? std::min(500_MB, Request.MkqlMemoryLimit) : 500_MB;
- limits.MkqlHeavyProgramMemoryLimit = Request.MkqlMemoryLimit > 0 ? std::min(2_GB, Request.MkqlMemoryLimit) : 2_GB;
-
- auto& taskOpts = taskDesc->GetProgram().GetSettings();
- auto limit = taskOpts.GetHasMapJoin() /* || opts.GetHasSort()*/
- ? limits.MkqlHeavyProgramMemoryLimit
- : limits.MkqlLightProgramMemoryLimit;
-
- limits.MemoryQuotaManager = std::make_shared<TGuaranteeQuotaManager>(limit, limit);
-
- auto computeActor = CreateKqpComputeActor(SelfId(), TxId, taskDesc, AsyncIoFactory,
- AppData()->FunctionRegistry, settings, limits, NWilson::TTraceId(), TasksGraph.GetMeta().GetArenaIntrusivePtr());
-
- auto computeActorId = shareMailbox ? RegisterWithSameMailbox(computeActor) : Register(computeActor);
- task.ComputeActorId = computeActorId;
- LOG_D("Executing task: " << taskId << " on compute actor: " << task.ComputeActorId);
+ if (!waitSecretsSnapshot) {
+ Execute();
+ }
+ }
- auto result = PendingComputeActors.emplace(task.ComputeActorId, TProgressStat());
- YQL_ENSURE(result.second);
+ void OnSecretsFetched() override {
+ Execute();
}
void Execute() {
- NWilson::TSpan prepareTasksSpan(TWilsonKqp::DataExecuterPrepateTasks, ExecuterStateSpan.GetTraceId(), "PrepateTasks", NWilson::EFlags::AUTO_END);
+ NWilson::TSpan prepareTasksSpan(TWilsonKqp::DataExecuterPrepareTasks, ExecuterStateSpan.GetTraceId(), "PrepareTasks", NWilson::EFlags::AUTO_END);
LWTRACK(KqpDataExecuterStartExecute, ResponseEv->Orbit, TxId);
size_t readActors = 0;
for (ui32 txIdx = 0; txIdx < Request.Transactions.size(); ++txIdx) {
auto& tx = Request.Transactions[txIdx];
+ TMap<TString, TString> secureParams = ResolveSecretNames(tx.Body->GetSecretNames());
for (ui32 stageIdx = 0; stageIdx < tx.Body->StagesSize(); ++stageIdx) {
auto& stage = tx.Body->GetStages(stageIdx);
@@ -1705,24 +1697,24 @@ private:
if (stage.SourcesSize() > 0) {
switch (stage.GetSources(0).GetTypeCase()) {
case NKqpProto::TKqpSource::kReadRangesSource:
- if (auto actors = BuildScanTasksFromSource(stageInfo)) {
+ if (auto actors = BuildScanTasksFromSource(stageInfo, secureParams)) {
readActors += *actors;
} else {
UnknownAffectedShardCount = true;
}
break;
case NKqpProto::TKqpSource::kExternalSource:
- BuildReadTasksFromSource(stageInfo);
+ BuildReadTasksFromSource(stageInfo, secureParams);
break;
default:
YQL_ENSURE(false, "unknown source type");
}
} else if (stageInfo.Meta.ShardOperations.empty()) {
- BuildComputeTasks(stageInfo);
+ BuildComputeTasks(stageInfo, secureParams);
} else if (stageInfo.Meta.IsSysView()) {
- BuildSysViewScanTasks(stageInfo);
+ BuildSysViewScanTasks(stageInfo, secureParams);
} else {
- BuildDatashardTasks(stageInfo);
+ BuildDatashardTasks(stageInfo, secureParams);
}
if (stage.GetIsSinglePartition()) {
@@ -1859,7 +1851,7 @@ private:
void HandleResolve(TEvKqpExecuter::TEvTableResolveStatus::TPtr& ev) {
if (!TBase::HandleResolve(ev)) return;
- Execute();
+ ExecuteAfterFetchingSecrets();
}
void HandleResolve(TEvKqpExecuter::TEvShardsResolveStatus::TPtr& ev) {
@@ -2128,43 +2120,27 @@ private:
NWilson::TSpan sendTasksSpan(TWilsonKqp::DataExecuterSendTasksAndTxs, ExecuterStateSpan.GetTraceId(), "SendTasksAndTxs", NWilson::EFlags::AUTO_END);
LWTRACK(KqpDataExecuterStartTasksAndTxs, ResponseEv->Orbit, TxId, ComputeTasks.size(), DatashardTxs.size());
- // first, start compute tasks
- bool shareMailbox = (ComputeTasks.size() <= 1);
- for (ui64 taskId : ComputeTasks) {
- ExecuteDataComputeTask(taskId, shareMailbox);
- }
-
- if (ComputeTasks.size() == 0 && RemoteComputeTasks.size() == 1) {
- // query affects a single key or shard, so it might be more effective
- // to execute this task locally so we can avoid useless overhead for remote task launching.
- for(auto& [shardId, tasks]: RemoteComputeTasks) {
- for(ui64 taskId: tasks) {
- ExecuteDataComputeTask(taskId, true);
- }
+ for (auto& [shardId, tasks] : RemoteComputeTasks) {
+ auto it = ShardIdToNodeId.find(shardId);
+ YQL_ENSURE(it != ShardIdToNodeId.end());
+ for (ui64 taskId : tasks) {
+ auto& task = TasksGraph.GetTask(taskId);
+ task.Meta.NodeId = it->second;
}
+ }
- } else {
- THashMap<ui64, TVector<ui64>> tasksPerNode;
- for (auto& [shardId, tasks] : RemoteComputeTasks) {
- auto it = ShardIdToNodeId.find(shardId);
- YQL_ENSURE(it != ShardIdToNodeId.end());
- for (ui64 taskId : tasks) {
- PendingComputeTasks.insert(taskId);
- tasksPerNode[it->second].emplace_back(taskId);
- }
- }
+ Planner = CreateKqpPlanner(TasksGraph, TxId, SelfId(), {}, {}, GetSnapshot(),
+ Database, UserToken, Deadline.GetOrElse(TInstant::Zero()), Request.StatsMode, false, Nothing(),
+ ExecuterSpan, {}, ExecuterRetriesConfig, true /* isDataQuery */, Request.MkqlMemoryLimit, AsyncIoFactory, !UnknownAffectedShardCount);
- Planner = CreateKqpPlanner(TasksGraph, TxId, SelfId(), {}, std::move(tasksPerNode), GetSnapshot(),
- Database, UserToken, Deadline.GetOrElse(TInstant::Zero()), Request.StatsMode, false, Nothing(),
- ExecuterSpan, {}, ExecuterRetriesConfig, true /* isDataQuery */);
- auto err = Planner->PlanExecution();
- if (err) {
- TlsActivationContext->Send(err.release());
- return;
- }
- Planner->Submit();
+ auto err = Planner->PlanExecution();
+ if (err) {
+ TlsActivationContext->Send(err.release());
+ return;
}
+ Planner->Submit();
+
// then start data tasks with known actor ids of compute tasks
for (auto& [shardId, shardTx] : DatashardTxs) {
shardTx->SetType(NKikimrTxDataShard::KQP_TX_TYPE_DATA);
@@ -2229,9 +2205,10 @@ private:
<< ", topicTxs: " << Request.TopicOperations.GetSize()
<< ", volatile: " << VolatileTx
<< ", immediate: " << ImmediateTx
- << ", pending compute tasks" << PendingComputeTasks.size()
+ << ", pending compute tasks" << (Planner ? Planner->GetPendingComputeTasks().size() : 0)
<< ", useFollowers: " << GetUseFollowers());
+ // error
LOG_T("Updating channels after the creation of compute actors");
THashMap<TActorId, THashSet<ui64>> updates;
for (ui64 taskId : ComputeTasks) {
diff --git a/ydb/core/kqp/executer_actor/kqp_executer.h b/ydb/core/kqp/executer_actor/kqp_executer.h
index 5d6879e69c..2364a5df97 100644
--- a/ydb/core/kqp/executer_actor/kqp_executer.h
+++ b/ydb/core/kqp/executer_actor/kqp_executer.h
@@ -62,6 +62,10 @@ struct TEvKqpExecuter {
struct TEvStreamProfile : public TEventPB<TEvStreamProfile, NKikimrKqp::TEvExecuterStreamProfile,
TKqpExecuterEvents::EvStreamProfile> {};
+ // deprecated event, remove in the future releases.
+ struct TEvExecuterProgress : public TEventPB<TEvExecuterProgress, NKikimrKqp::TEvExecuterProgress,
+ TKqpExecuterEvents::EvProgress> {};
+
struct TEvTableResolveStatus : public TEventLocal<TEvTableResolveStatus,
TKqpExecuterEvents::EvTableResolveStatus>
{
diff --git a/ydb/core/kqp/executer_actor/kqp_executer_impl.cpp b/ydb/core/kqp/executer_actor/kqp_executer_impl.cpp
index 18265decf2..cf550c8b93 100644
--- a/ydb/core/kqp/executer_actor/kqp_executer_impl.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_executer_impl.cpp
@@ -23,8 +23,13 @@ void TEvKqpExecuter::TEvTxResponse::InitTxResult(const TKqpPhyTxHolder::TConstPt
const auto& result = tx->GetResults(i);
const auto& resultMeta = tx->GetTxResultsMeta()[i];
+ TMaybe<ui32> queryResultIndex;
+ if (result.HasQueryResultIndex()) {
+ queryResultIndex = result.GetQueryResultIndex();
+ }
+
TxResults.emplace_back(result.GetIsStream(), resultMeta.MkqlItemType, &resultMeta.ColumnOrder,
- result.GetQueryResultIndex());
+ queryResultIndex);
}
}
diff --git a/ydb/core/kqp/executer_actor/kqp_executer_impl.h b/ydb/core/kqp/executer_actor/kqp_executer_impl.h
index 5b34ecbf40..8537f7a5c5 100644
--- a/ydb/core/kqp/executer_actor/kqp_executer_impl.h
+++ b/ydb/core/kqp/executer_actor/kqp_executer_impl.h
@@ -14,7 +14,7 @@
#include <ydb/core/actorlib_impl/long_timer.h>
#include <ydb/core/base/appdata.h>
#include <ydb/core/base/tablet_pipecache.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <ydb/library/ydb_issue/issue_helpers.h>
#include <ydb/core/protos/tx_datashard.pb.h>
#include <ydb/core/protos/pqconfig.pb.h>
@@ -24,6 +24,9 @@
#include <ydb/core/kqp/common/kqp_yql.h>
#include <ydb/core/grpc_services/local_rate_limiter.h>
+#include <ydb/services/metadata/secret/fetcher.h>
+#include <ydb/services/metadata/secret/snapshot.h>
+
#include <ydb/library/mkql_proto/mkql_proto.h>
#include <ydb/library/yql/dq/actors/compute/dq_compute_actor.h>
@@ -31,6 +34,7 @@
#include <ydb/library/yql/dq/proto/dq_tasks.pb.h>
#include <ydb/library/yql/dq/runtime/dq_transport.h>
#include <ydb/library/yql/providers/common/http_gateway/yql_http_gateway.h>
+#include <ydb/library/yql/providers/common/structured_token/yql_token_builder.h>
#include <ydb/library/yql/public/issue/yql_issue.h>
#include <ydb/library/yql/public/issue/yql_issue_message.h>
@@ -245,25 +249,27 @@ protected:
case NYql::NDqProto::COMPUTE_STATE_EXECUTING: {
// initial TEvState event from Compute Actor
// there can be race with RM answer
- if (PendingComputeTasks.erase(taskId)) {
- auto it = PendingComputeActors.emplace(computeActor, TProgressStat());
- YQL_ENSURE(it.second);
-
- if (state.HasStats()) {
- it.first->second.Set(state.GetStats());
- }
-
- auto& task = TasksGraph.GetTask(taskId);
- task.ComputeActorId = computeActor;
+ if (Planner) {
+ if (Planner->GetPendingComputeTasks().erase(taskId)) {
+ auto it = Planner->GetPendingComputeActors().emplace(computeActor, TProgressStat());
+ YQL_ENSURE(it.second);
- THashMap<TActorId, THashSet<ui64>> updates;
- CollectTaskChannelsUpdates(task, updates);
- PropagateChannelsUpdates(updates);
- } else {
- auto it = PendingComputeActors.find(computeActor);
- if (it != PendingComputeActors.end()) {
if (state.HasStats()) {
- it->second.Set(state.GetStats());
+ it.first->second.Set(state.GetStats());
+ }
+
+ auto& task = TasksGraph.GetTask(taskId);
+ task.ComputeActorId = computeActor;
+
+ THashMap<TActorId, THashSet<ui64>> updates;
+ CollectTaskChannelsUpdates(task, updates);
+ PropagateChannelsUpdates(updates);
+ } else {
+ auto it = Planner->GetPendingComputeActors().find(computeActor);
+ if (it != Planner->GetPendingComputeActors().end()) {
+ if (state.HasStats()) {
+ it->second.Set(state.GetStats());
+ }
}
}
}
@@ -279,26 +285,28 @@ protected:
LastTaskId = taskId;
LastComputeActorId = computeActor.ToString();
- auto it = PendingComputeActors.find(computeActor);
- if (it == PendingComputeActors.end()) {
- LOG_W("Got execution state for compute actor: " << computeActor
- << ", task: " << taskId
- << ", state: " << NYql::NDqProto::EComputeState_Name((NYql::NDqProto::EComputeState) state.GetState())
- << ", too early (waiting reply from RM)");
-
- if (PendingComputeTasks.erase(taskId)) {
- LOG_E("Got execution state for compute actor: " << computeActor
- << ", for unknown task: " << state.GetTaskId()
- << ", state: " << NYql::NDqProto::EComputeState_Name((NYql::NDqProto::EComputeState) state.GetState()));
- return;
- }
- } else {
- if (state.HasStats()) {
- it->second.Set(state.GetStats());
+ if (Planner) {
+ auto it = Planner->GetPendingComputeActors().find(computeActor);
+ if (it == Planner->GetPendingComputeActors().end()) {
+ LOG_W("Got execution state for compute actor: " << computeActor
+ << ", task: " << taskId
+ << ", state: " << NYql::NDqProto::EComputeState_Name((NYql::NDqProto::EComputeState) state.GetState())
+ << ", too early (waiting reply from RM)");
+
+ if (Planner && Planner->GetPendingComputeTasks().erase(taskId)) {
+ LOG_E("Got execution state for compute actor: " << computeActor
+ << ", for unknown task: " << state.GetTaskId()
+ << ", state: " << NYql::NDqProto::EComputeState_Name((NYql::NDqProto::EComputeState) state.GetState()));
+ return;
+ }
+ } else {
+ if (state.HasStats()) {
+ it->second.Set(state.GetStats());
+ }
+ LastStats.emplace_back(std::move(it->second));
+ Planner->GetPendingComputeActors().erase(it);
+ YQL_ENSURE(Planner->GetPendingComputeTasks().find(taskId) == Planner->GetPendingComputeTasks().end());
}
- LastStats.emplace_back(std::move(it->second));
- PendingComputeActors.erase(it);
- YQL_ENSURE(PendingComputeTasks.find(taskId) == PendingComputeTasks.end());
}
}
}
@@ -369,9 +377,40 @@ protected:
return res;
}
+ NMetadata::NFetcher::ISnapshotsFetcher::TPtr GetSecretsSnapshotParser() {
+ return std::make_shared<NMetadata::NSecret::TSnapshotsFetcher>();
+ }
+
+ void FetchSecrets() {
+ YQL_ENSURE(NMetadata::NProvider::TServiceOperator::IsEnabled(), "metadata service is not active");
+ this->Send(NMetadata::NProvider::MakeServiceId(SelfId().NodeId()), new NMetadata::NProvider::TEvSubscribeExternal(GetSecretsSnapshotParser()));
+ }
+
+ void HandleRefreshSubscriberData(NMetadata::NProvider::TEvRefreshSubscriberData::TPtr& ev) {
+ this->Send(NMetadata::NProvider::MakeServiceId(SelfId().NodeId()), new NMetadata::NProvider::TEvUnsubscribeExternal(GetSecretsSnapshotParser()));
+ Secrets = ev->Get()->GetSnapshotPtrAs<NMetadata::NSecret::TSnapshot>();
+ OnSecretsFetched();
+ }
+
+ virtual void OnSecretsFetched() {}
+
+ TMap<TString, TString> ResolveSecretNames(const google::protobuf::RepeatedPtrField<TProtoStringType>& secretNames) {
+ TMap<TString, TString> secureParams;
+ for (const auto& secretName : secretNames) {
+ auto secretId = NMetadata::NSecret::TSecretId(UserToken->GetUserSID(), secretName);
+
+ TString secretValue;
+ YQL_ENSURE(Secrets->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(secretId), secretValue), "secret with name '" << secretName << "' not found");
+
+ secureParams[secretName] = secretValue;
+ }
+
+ return secureParams;
+ }
+
protected:
bool CheckExecutionComplete() {
- if (PendingComputeActors.empty() && PendingComputeTasks.empty()) {
+ if (Planner && Planner->GetPendingComputeActors().empty() && Planner->GetPendingComputeTasks().empty()) {
static_cast<TDerived*>(this)->Finalize();
UpdateResourcesUsage(true);
return true;
@@ -382,11 +421,13 @@ protected:
if (IsDebugLogEnabled()) {
TStringBuilder sb;
sb << "Waiting for: ";
- for (auto ct : PendingComputeTasks) {
- sb << "CT " << ct << ", ";
- }
- for (auto ca : PendingComputeActors) {
- sb << "CA " << ca.first << ", ";
+ if (Planner) {
+ for (auto ct : Planner->GetPendingComputeTasks()) {
+ sb << "CT " << ct << ", ";
+ }
+ for (auto ca : Planner->GetPendingComputeActors()) {
+ sb << "CA " << ca.first << ", ";
+ }
}
LOG_D(sb);
}
@@ -434,15 +475,17 @@ protected:
auto nodeId = ev->Get()->NodeId;
LOG_N("Disconnected node " << nodeId);
- for (auto computeActor : PendingComputeActors) {
- if (computeActor.first.NodeId() == nodeId) {
- return ReplyUnavailable(TStringBuilder() << "Connection with node " << nodeId << " lost.");
+ if (Planner) {
+ for (auto computeActor : Planner->GetPendingComputeActors()) {
+ if (computeActor.first.NodeId() == nodeId) {
+ return ReplyUnavailable(TStringBuilder() << "Connection with node " << nodeId << " lost.");
+ }
}
- }
- for (auto& task : TasksGraph.GetTasks()) {
- if (task.Meta.NodeId == nodeId && PendingComputeTasks.contains(task.Id)) {
- return ReplyUnavailable(TStringBuilder() << "Connection with node " << nodeId << " lost.");
+ for (auto& task : TasksGraph.GetTasks()) {
+ if (task.Meta.NodeId == nodeId && Planner->GetPendingComputeTasks().contains(task.Id)) {
+ return ReplyUnavailable(TStringBuilder() << "Connection with node " << nodeId << " lost.");
+ }
}
}
}
@@ -502,13 +545,15 @@ protected:
LOG_D("Executing task: " << taskId << " on compute actor: " << task.ComputeActorId);
- if (PendingComputeTasks.erase(taskId) == 0) {
- LOG_D("Executing task: " << taskId << ", compute actor: " << task.ComputeActorId << ", already finished");
- } else {
- auto result = PendingComputeActors.emplace(std::make_pair(task.ComputeActorId, TProgressStat()));
- YQL_ENSURE(result.second);
+ if (Planner) {
+ if (Planner->GetPendingComputeTasks().erase(taskId) == 0) {
+ LOG_D("Executing task: " << taskId << ", compute actor: " << task.ComputeActorId << ", already finished");
+ } else {
+ auto result = Planner->GetPendingComputeActors().emplace(std::make_pair(task.ComputeActorId, TProgressStat()));
+ YQL_ENSURE(result.second);
- CollectTaskChannelsUpdates(task, channelsUpdates);
+ CollectTaskChannelsUpdates(task, channelsUpdates);
+ }
}
}
@@ -602,9 +647,11 @@ protected:
LastResourceUsageUpdate = now;
TProgressStat::TEntry consumption;
- for (const auto& p : PendingComputeActors) {
- const auto& t = p.second.GetLastUsage();
- consumption += t;
+ if (Planner) {
+ for (const auto& p : Planner->GetPendingComputeActors()) {
+ const auto& t = p.second.GetLastUsage();
+ consumption += t;
+ }
}
for (const auto& p : LastStats) {
@@ -618,8 +665,10 @@ protected:
if (ru <= 100 && !force)
return;
- for (auto& p : PendingComputeActors) {
- p.second.Update();
+ if (Planner) {
+ for (auto& p : Planner->GetPendingComputeActors()) {
+ p.second.Update();
+ }
}
for (auto& p : LastStats) {
@@ -643,7 +692,7 @@ protected:
protected:
- void BuildSysViewScanTasks(TStageInfo& stageInfo) {
+ void BuildSysViewScanTasks(TStageInfo& stageInfo, const TMap<TString, TString>& secureParams) {
Y_VERIFY_DEBUG(stageInfo.Meta.IsSysView());
auto& stage = stageInfo.Meta.GetStage(stageInfo.Id);
@@ -684,16 +733,40 @@ protected:
task.Meta.Reads.ConstructInPlace();
task.Meta.Reads->emplace_back(std::move(readInfo));
task.Meta.ReadInfo.Reverse = op.GetReadRange().GetReverse();
+ task.Meta.Type = TTaskMeta::TTaskType::Compute;
+
+ BuildSinks(stage, task, secureParams);
LOG_D("Stage " << stageInfo.Id << " create sysview scan task: " << task.Id);
}
}
- void BuildReadTasksFromSource(TStageInfo& stageInfo) {
+ void BuildSinks(const NKqpProto::TKqpPhyStage& stage, TKqpTasksGraph::TTaskType& task, const TMap<TString, TString>& secureParams) {
+ if (stage.SinksSize() > 0) {
+ YQL_ENSURE(stage.SinksSize() == 1, "multiple sinks are not supported");
+ const auto& sink = stage.GetSinks(0);
+ YQL_ENSURE(sink.HasExternalSink(), "only external sinks are supported");
+ const auto& extSink = sink.GetExternalSink();
+ YQL_ENSURE(sink.GetOutputIndex() < task.Outputs.size());
+
+ auto sinkName = extSink.GetSinkName();
+ if (sinkName) {
+ auto structuredToken = NYql::CreateStructuredTokenParser(extSink.GetAuthInfo()).ToBuilder().ReplaceReferences(secureParams).ToJson();
+ task.Meta.SecureParams.emplace(sinkName, structuredToken);
+ }
+
+ auto& output = task.Outputs[sink.GetOutputIndex()];
+ output.Type = TTaskOutputType::Sink;
+ output.SinkType = extSink.GetType();
+ output.SinkSettings = extSink.GetSettings();
+ }
+ }
+
+ void BuildReadTasksFromSource(TStageInfo& stageInfo, const TMap<TString, TString>& secureParams) {
const auto& stage = stageInfo.Meta.GetStage(stageInfo.Id);
YQL_ENSURE(stage.GetSources(0).HasExternalSource());
- YQL_ENSURE(stage.InputsSize() == 0 && stage.SourcesSize() == 1, "multiple sources or sources mixed with connections");
+ YQL_ENSURE(stage.SourcesSize() == 1, "multiple sources in one task are not supported");
const auto& stageSource = stage.GetSources(0);
const auto& externalSource = stageSource.GetExternalSource();
@@ -705,11 +778,21 @@ protected:
input.SourceSettings = externalSource.GetSettings();
input.SourceType = externalSource.GetType();
- task.Meta.DqTaskParams.emplace(externalSource.GetTaskParamKey(), partitionParam);
+ task.Meta.TaskParams.emplace(externalSource.GetTaskParamKey(), partitionParam);
+
+ auto sourceName = externalSource.GetSourceName();
+ if (sourceName) {
+ auto structuredToken = NYql::CreateStructuredTokenParser(externalSource.GetAuthInfo()).ToBuilder().ReplaceReferences(secureParams).ToJson();
+ task.Meta.SecureParams.emplace(sourceName, structuredToken);
+ }
+
+ task.Meta.Type = TTaskMeta::TTaskType::Compute;
+
+ BuildSinks(stage, task, secureParams);
}
}
- TMaybe<size_t> BuildScanTasksFromSource(TStageInfo& stageInfo) {
+ TMaybe<size_t> BuildScanTasksFromSource(TStageInfo& stageInfo, const TMap<TString, TString>& secureParams) {
THashMap<ui64, std::vector<ui64>> nodeTasks;
THashMap<ui64, ui64> assignedShardsCount;
@@ -741,6 +824,7 @@ protected:
YQL_ENSURE(!shardInfo.KeyWriteRanges);
auto& task = TasksGraph.AddTask(stageInfo);
+ task.Meta.Type = TTaskMeta::TTaskType::Scan;
task.Meta.ExecuterId = this->SelfId();
if (auto ptr = ShardIdToNodeId.FindPtr(taskLocation)) {
task.Meta.NodeId = *ptr;
@@ -754,7 +838,7 @@ protected:
input.ConnectionInfo = NYql::NDq::TSourceInput{};
// allocating source settings
-
+
input.Meta.SourceSettings = TasksGraph.GetMeta().Allocate<NKikimrTxDataShard::TKqpReadRangesSourceSettings>();
NKikimrTxDataShard::TKqpReadRangesSourceSettings* settings = input.Meta.SourceSettings;
FillTableMeta(stageInfo, settings->MutableTable());
@@ -816,10 +900,18 @@ protected:
settings->SetLockTxId(*lockTxId);
settings->SetLockNodeId(self.NodeId());
}
+
+ BuildSinks(stage, task, secureParams);
};
- if (source.GetSequentialInFlightShards()) {
+ THashMap<ui64, TShardInfo> partitions = PrunePartitions(GetTableKeys(), source, stageInfo, HolderFactory(), TypeEnv());
+ if (partitions.size() > 0 && source.GetSequentialInFlightShards() > 0 && partitions.size() > source.GetSequentialInFlightShards()) {
auto [startShard, shardInfo] = MakeVirtualTablePartition(GetTableKeys(), source, stageInfo, HolderFactory(), TypeEnv());
+ if (Stats) {
+ for (auto& [shardId, _] : partitions) {
+ Stats->AffectedShards.insert(shardId);
+ }
+ }
if (shardInfo.KeyReadRanges) {
addPartiton(startShard, {}, shardInfo, source.GetSequentialInFlightShards());
return Nothing();
@@ -827,7 +919,6 @@ protected:
return 0;
}
} else {
- THashMap<ui64, TShardInfo> partitions = PrunePartitions(GetTableKeys(), source, stageInfo, HolderFactory(), TypeEnv());
for (auto& [shardId, shardInfo] : partitions) {
addPartiton(shardId, shardId, shardInfo, {});
}
@@ -921,11 +1012,13 @@ protected:
virtual void ReplyErrorAndDie(Ydb::StatusIds::StatusCode status,
google::protobuf::RepeatedPtrField<Ydb::Issue::IssueMessage>* issues)
{
- for (auto computeActor : PendingComputeActors) {
- LOG_D("terminate compute actor " << computeActor.first);
+ if (Planner) {
+ for (auto computeActor : Planner->GetPendingComputeActors()) {
+ LOG_D("terminate compute actor " << computeActor.first);
- auto ev = MakeHolder<TEvKqp::TEvAbortExecution>(NYql::NDq::YdbStatusToDqStatus(status), "Terminate execution");
- this->Send(computeActor.first, ev.Release());
+ auto ev = MakeHolder<TEvKqp::TEvAbortExecution>(NYql::NDq::YdbStatusToDqStatus(status), "Terminate execution");
+ this->Send(computeActor.first, ev.Release());
+ }
}
auto& response = *ResponseEv->Record.MutableResponse();
@@ -998,9 +1091,9 @@ protected:
const auto& txResult = ResponseEv->TxResults[channel.DstInputIndex];
IActor* proxy;
- if (txResult.IsStream) {
+ if (txResult.IsStream && txResult.QueryResultIndex.Defined()) {
proxy = CreateResultStreamChannelProxy(TxId, channel.Id, txResult.MkqlItemType,
- txResult.ColumnOrder, txResult.QueryResultIndex, Target, Stats, this->SelfId());
+ txResult.ColumnOrder, *txResult.QueryResultIndex, Target, Stats, this->SelfId());
} else {
proxy = CreateResultDataChannelProxy(TxId, channel.Id, Stats, this->SelfId(),
channel.DstInputIndex, ResponseEv.get());
@@ -1095,7 +1188,6 @@ protected:
TActorId KqpTableResolverId;
TActorId KqpShardsResolverId;
- THashMap<TActorId, TProgressStat> PendingComputeActors; // Running compute actors (pure and DS)
THashMap<TActorId, NYql::NDqProto::TComputeActorExtraData> ExtraData;
TVector<TProgressStat> LastStats;
@@ -1109,7 +1201,6 @@ protected:
NWilson::TSpan ExecuterStateSpan;
NWilson::TSpan ExecuterTableResolveSpan;
- THashSet<ui64> PendingComputeTasks; // Not started yet, waiting resources
TMap<ui64, ui64> ShardIdToNodeId;
TMap<ui64, TVector<ui64>> ShardsOnNode;
@@ -1119,6 +1210,8 @@ protected:
std::unique_ptr<TKqpPlanner> Planner;
const NKikimrConfig::TTableServiceConfig::TExecuterRetriesConfig ExecuterRetriesConfig;
+ std::shared_ptr<NMetadata::NSecret::TSnapshot> Secrets;
+
private:
static constexpr TDuration ResourceUsageUpdateInterval = TDuration::MilliSeconds(100);
};
diff --git a/ydb/core/kqp/executer_actor/kqp_literal_executer.cpp b/ydb/core/kqp/executer_actor/kqp_literal_executer.cpp
index 5180ce9ea8..751b4b3e09 100644
--- a/ydb/core/kqp/executer_actor/kqp_literal_executer.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_literal_executer.cpp
@@ -9,7 +9,7 @@
#include <ydb/core/kqp/opt/kqp_query_plan.h>
#include <ydb/library/yql/minikql/computation/mkql_computation_node.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
namespace NKikimr {
namespace NKqp {
diff --git a/ydb/core/kqp/executer_actor/kqp_partition_helper.cpp b/ydb/core/kqp/executer_actor/kqp_partition_helper.cpp
index c29ddd65cf..1283f323b8 100644
--- a/ydb/core/kqp/executer_actor/kqp_partition_helper.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_partition_helper.cpp
@@ -599,15 +599,6 @@ std::pair<ui64, TShardInfo> MakeVirtualTablePartition(const TKqpTableKeys& table
const auto& keyColumnTypes = table->KeyColumnTypes;
auto ranges = ExtractRanges(tableKeys, source, stageInfo, holderFactory, typeEnv, guard);
- TShardInfo result;
- for (auto& range: ranges) {
- if (!result.KeyReadRanges) {
- result.KeyReadRanges.ConstructInPlace();
- }
-
- result.KeyReadRanges->Add(std::move(range));
- }
-
ui64 shard = 0;
if (!ranges.empty()) {
auto& range = source.GetReverse() ? ranges.back() : ranges[0];
@@ -624,6 +615,14 @@ std::pair<ui64, TShardInfo> MakeVirtualTablePartition(const TKqpTableKeys& table
}
}
+ TShardInfo result;
+ for (auto& range: ranges) {
+ if (!result.KeyReadRanges) {
+ result.KeyReadRanges.ConstructInPlace();
+ }
+
+ result.KeyReadRanges->Add(std::move(range));
+ }
return {shard, result};
}
diff --git a/ydb/core/kqp/executer_actor/kqp_planner.cpp b/ydb/core/kqp/executer_actor/kqp_planner.cpp
index 05ba1f3fc3..f20e873ef1 100644
--- a/ydb/core/kqp/executer_actor/kqp_planner.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_planner.cpp
@@ -5,10 +5,12 @@
#include <ydb/core/kqp/common/kqp_yql.h>
#include <ydb/core/base/appdata.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <util/generic/set.h>
+using namespace NActors;
+
namespace NKikimr::NKqp {
#define LOG_D(stream) LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::KQP_EXECUTER, "TxId: " << TxId << ". " << stream)
@@ -59,7 +61,7 @@ TKqpPlanner::TKqpPlanner(TKqpTasksGraph& graph, ui64 txId, const TActorId& execu
bool withSpilling, const TMaybe<NKikimrKqp::TRlPath>& rlPath, NWilson::TSpan& executerSpan,
TVector<NKikimrKqp::TKqpNodeResources>&& resourcesSnapshot,
const NKikimrConfig::TTableServiceConfig::TExecuterRetriesConfig& executerRetriesConfig,
- bool isDataQuery)
+ bool isDataQuery, ui64 mkqlMemoryLimit, NYql::NDq::IDqAsyncIoFactory::TPtr asyncIoFactory, bool doOptimization)
: TxId(txId)
, ExecuterId(executer)
, ComputeTasks(std::move(computeTasks))
@@ -76,6 +78,9 @@ TKqpPlanner::TKqpPlanner(TKqpTasksGraph& graph, ui64 txId, const TActorId& execu
, ExecuterRetriesConfig(executerRetriesConfig)
, TasksGraph(graph)
, IsDataQuery(isDataQuery)
+ , MkqlMemoryLimit(mkqlMemoryLimit)
+ , AsyncIoFactory(asyncIoFactory)
+ , DoOptimization(doOptimization)
{
if (!Database) {
// a piece of magic for tests
@@ -281,27 +286,131 @@ std::unique_ptr<IEventHandle> TKqpPlanner::AssignTasksToNodes() {
}
}
+const IKqpGateway::TKqpSnapshot& TKqpPlanner::GetSnapshot() const {
+ return TasksGraph.GetMeta().Snapshot;
+}
+
+void TKqpPlanner::ExecuteDataComputeTask(ui64 taskId, bool shareMailbox) {
+
+ auto& task = TasksGraph.GetTask(taskId);
+ NYql::NDqProto::TDqTask* taskDesc = ArenaSerializeTaskToProto(TasksGraph, task);
+
+ NYql::NDq::TComputeRuntimeSettings settings;
+ if (Deadline) {
+ settings.Timeout = Deadline - TAppData::TimeProvider->Now();
+ }
+ //settings.ExtraMemoryAllocationPool = NRm::EKqpMemoryPool::DataQuery;
+ settings.ExtraMemoryAllocationPool = NRm::EKqpMemoryPool::Unspecified;
+ settings.FailOnUndelivery = true;
+ settings.StatsMode = GetDqStatsMode(StatsMode);
+ settings.UseSpilling = false;
+
+ NYql::NDq::TComputeMemoryLimits limits;
+ limits.ChannelBufferSize = 50_MB;
+ limits.MkqlLightProgramMemoryLimit = MkqlMemoryLimit > 0 ? std::min(500_MB, MkqlMemoryLimit) : 500_MB;
+ limits.MkqlHeavyProgramMemoryLimit = MkqlMemoryLimit > 0 ? std::min(2_GB, MkqlMemoryLimit) : 2_GB;
+
+ auto& taskOpts = taskDesc->GetProgram().GetSettings();
+ auto limit = taskOpts.GetHasMapJoin() /* || opts.GetHasSort()*/
+ ? limits.MkqlHeavyProgramMemoryLimit
+ : limits.MkqlLightProgramMemoryLimit;
+
+ limits.MemoryQuotaManager = std::make_shared<NYql::NDq::TGuaranteeQuotaManager>(limit * 2, limit);
+
+ auto computeActor = NKikimr::NKqp::CreateKqpComputeActor(ExecuterId, TxId, taskDesc, AsyncIoFactory,
+ AppData()->FunctionRegistry, settings, limits, NWilson::TTraceId(), TasksGraph.GetMeta().GetArenaIntrusivePtr());
+
+ auto computeActorId = shareMailbox ? TlsActivationContext->AsActorContext().RegisterWithSameMailbox(computeActor) : TlsActivationContext->AsActorContext().Register(computeActor);
+ task.ComputeActorId = computeActorId;
+
+ LOG_D("Executing task: " << taskId << " on compute actor: " << task.ComputeActorId);
+
+ auto result = PendingComputeActors.emplace(task.ComputeActorId, TProgressStat());
+ YQL_ENSURE(result.second);
+}
+
+ui32 TKqpPlanner::GetnScanTasks() {
+ return nScanTasks;
+}
+
+ui32 TKqpPlanner::GetnComputeTasks() {
+ return nComputeTasks;
+}
+
std::unique_ptr<IEventHandle> TKqpPlanner::PlanExecution() {
- auto err = AssignTasksToNodes();
- if (err) {
- return err;
+ nScanTasks = 0;
+
+ for (auto& task : TasksGraph.GetTasks()) {
+ switch (task.Meta.Type) {
+ case TTaskMeta::TTaskType::Compute:
+ ComputeTasks.emplace_back(task.Id);
+ break;
+ case TTaskMeta::TTaskType::Scan:
+ TasksPerNode[task.Meta.NodeId].emplace_back(task.Id);
+ nScanTasks++;
+ break;
+ }
}
- for(auto& [nodeId, tasks] : TasksPerNode) {
- SortUnique(tasks);
- auto& request = Requests.emplace_back(std::move(tasks), CalcSendMessageFlagsForNode(nodeId), nodeId);
- request.SerializedRequest = SerializeRequest(request);
- auto ev = CheckTaskSize(TxId, request.SerializedRequest->Record.GetTasks());
- if (ev != nullptr) {
- return std::make_unique<IEventHandle>(ExecuterId, ExecuterId, ev.release());
+ LOG_D("Total tasks: " << nScanTasks + nComputeTasks << ", readonly: true" // TODO ???
+ << ", " << nScanTasks << " scan tasks on " << TasksPerNode.size() << " nodes"
+ << ", execType: " << (IsDataQuery ? "Data" : "Scan")
+ << ", snapshot: {" << GetSnapshot().TxId << ", " << GetSnapshot().Step << "}");
+
+ nComputeTasks = ComputeTasks.size();
+
+ if (IsDataQuery) {
+ bool shareMailbox = (ComputeTasks.size() <= 1);
+ for (ui64 taskId : ComputeTasks) {
+ ExecuteDataComputeTask(taskId, shareMailbox);
}
+ ComputeTasks.clear();
}
+
+ if (nComputeTasks == 0 && TasksPerNode.size() == 1 && (AsyncIoFactory != nullptr) && DoOptimization) {
+ // query affects a single key or shard, so it might be more effective
+ // to execute this task locally so we can avoid useless overhead for remote task launching.
+ for(auto& [shardId, tasks]: TasksPerNode) {
+ for(ui64 taskId: tasks) {
+ ExecuteDataComputeTask(taskId, true);
+ }
+ }
+
+ } else {
+ for (ui64 taskId : ComputeTasks) {
+ PendingComputeTasks.insert(taskId);
+ }
+
+ for (auto& [shardId, tasks] : TasksPerNode) {
+ for (ui64 taskId : tasks) {
+ PendingComputeTasks.insert(taskId);
+ }
+ }
+
+ auto err = AssignTasksToNodes();
+ if (err) {
+ return err;
+ }
+
+ for(auto& [nodeId, tasks] : TasksPerNode) {
+ SortUnique(tasks);
+ auto& request = Requests.emplace_back(std::move(tasks), CalcSendMessageFlagsForNode(nodeId), nodeId);
+ request.SerializedRequest = SerializeRequest(request);
+ auto ev = CheckTaskSize(TxId, request.SerializedRequest->Record.GetTasks());
+ if (ev != nullptr) {
+ return std::make_unique<IEventHandle>(ExecuterId, ExecuterId, ev.release());
+ }
+ }
+
+ }
+
+
return nullptr;
}
TString TKqpPlanner::GetEstimationsInfo() const {
TStringStream ss;
- ss << "ComputeTasks:" << ComputeTasks.size() << ";NodeTasks:";
+ ss << "ComputeTasks:" << nComputeTasks << ";NodeTasks:";
if (auto it = TasksPerNode.find(ExecuterId.NodeId()); it != TasksPerNode.end()) {
ss << it->second.size() << ";";
} else {
@@ -311,12 +420,20 @@ TString TKqpPlanner::GetEstimationsInfo() const {
}
void TKqpPlanner::Unsubscribe() {
- for(ui64 nodeId: TrackingNodes) {
+ for (ui64 nodeId: TrackingNodes) {
TlsActivationContext->Send(std::make_unique<NActors::IEventHandle>(
TActivationContext::InterconnectProxy(nodeId), ExecuterId, new TEvents::TEvUnsubscribe()));
}
}
+THashMap<TActorId, TProgressStat>& TKqpPlanner::GetPendingComputeActors() {
+ return PendingComputeActors;
+}
+
+THashSet<ui64>& TKqpPlanner::GetPendingComputeTasks() {
+ return PendingComputeTasks;
+}
+
void TKqpPlanner::PrepareToProcess() {
auto rmConfig = GetKqpResourceManager()->GetConfig();
@@ -361,11 +478,11 @@ std::unique_ptr<TKqpPlanner> CreateKqpPlanner(TKqpTasksGraph& tasksGraph, ui64 t
const Ydb::Table::QueryStatsCollection::Mode& statsMode,
bool withSpilling, const TMaybe<NKikimrKqp::TRlPath>& rlPath, NWilson::TSpan& executerSpan,
TVector<NKikimrKqp::TKqpNodeResources>&& resourcesSnapshot, const NKikimrConfig::TTableServiceConfig::TExecuterRetriesConfig& executerRetriesConfig,
- bool isDataQuery)
+ bool isDataQuery, ui64 mkqlMemoryLimit, NYql::NDq::IDqAsyncIoFactory::TPtr asyncIoFactory, bool doOptimization)
{
return std::make_unique<TKqpPlanner>(tasksGraph, txId, executer, std::move(tasks), std::move(tasksPerNode), snapshot,
database, userToken, deadline, statsMode, withSpilling, rlPath, executerSpan,
- std::move(resourcesSnapshot), executerRetriesConfig, isDataQuery);
+ std::move(resourcesSnapshot), executerRetriesConfig, isDataQuery, mkqlMemoryLimit, asyncIoFactory, doOptimization);
}
} // namespace NKikimr::NKqp
diff --git a/ydb/core/kqp/executer_actor/kqp_planner.h b/ydb/core/kqp/executer_actor/kqp_planner.h
index 5803ca618e..997e2d4499 100644
--- a/ydb/core/kqp/executer_actor/kqp_planner.h
+++ b/ydb/core/kqp/executer_actor/kqp_planner.h
@@ -1,11 +1,15 @@
#pragma once
+#include <ydb/core/base/appdata.h>
#include <ydb/core/kqp/common/kqp.h>
+#include <ydb/core/kqp/compute_actor/kqp_compute_actor.h>
+#include <ydb/core/kqp/executer_actor/kqp_executer_stats.h>
#include <ydb/core/kqp/gateway/kqp_gateway.h>
#include <ydb/core/kqp/node_service/kqp_node_service.h>
#include <ydb/core/kqp/rm_service/kqp_rm_service.h>
#include <ydb/core/kqp/rm_service/kqp_resource_estimation.h>
+#include <library/cpp/actors/core/actor.h>
#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/wilson/wilson_span.h>
#include <library/cpp/actors/core/hfunc.h>
@@ -40,7 +44,7 @@ public:
const Ydb::Table::QueryStatsCollection::Mode& statsMode,
bool withSpilling, const TMaybe<NKikimrKqp::TRlPath>& rlPath, NWilson::TSpan& ExecuterSpan,
TVector<NKikimrKqp::TKqpNodeResources>&& resourcesSnapshot, const NKikimrConfig::TTableServiceConfig::TExecuterRetriesConfig& executerRetriesConfig,
- bool isDataQuery);
+ bool isDataQuery, ui64 mkqlMemoryLimit, NYql::NDq::IDqAsyncIoFactory::TPtr asyncIoFactory, bool doOptimization);
bool SendStartKqpTasksRequest(ui32 requestId, const TActorId& target);
std::unique_ptr<IEventHandle> PlanExecution();
@@ -49,14 +53,24 @@ public:
ui32 GetCurrentRetryDelay(ui32 requestId);
void Unsubscribe();
-private:
+ THashMap<TActorId, TProgressStat>& GetPendingComputeActors();
+ THashSet<ui64>& GetPendingComputeTasks();
+
+ ui32 GetnScanTasks();
+ ui32 GetnComputeTasks();
+private:
+
+ const IKqpGateway::TKqpSnapshot& GetSnapshot() const;
+ void ExecuteDataComputeTask(ui64 taskId, bool shareMailbox);
void PrepareToProcess();
TString GetEstimationsInfo() const;
std::unique_ptr<TEvKqpNode::TEvStartKqpTasksRequest> SerializeRequest(const TRequestData& requestData);
ui32 CalcSendMessageFlagsForNode(ui32 nodeId);
+
+
private:
const ui64 TxId;
const TActorId ExecuterId;
@@ -78,6 +92,16 @@ private:
TVector<TRequestData> Requests;
TKqpTasksGraph& TasksGraph;
const bool IsDataQuery;
+ ui64 MkqlMemoryLimit;
+ NYql::NDq::IDqAsyncIoFactory::TPtr AsyncIoFactory;
+ ui32 nComputeTasks = 0;
+ ui32 nScanTasks = 0;
+ bool DoOptimization;
+
+ THashMap<TActorId, TProgressStat> PendingComputeActors; // Running compute actors (pure and DS)
+ THashSet<ui64> PendingComputeTasks; // Not started yet, waiting resources
+
+
};
std::unique_ptr<TKqpPlanner> CreateKqpPlanner(TKqpTasksGraph& tasksGraph, ui64 txId, const TActorId& executer, TVector<ui64>&& tasks,
@@ -86,6 +110,7 @@ std::unique_ptr<TKqpPlanner> CreateKqpPlanner(TKqpTasksGraph& tasksGraph, ui64 t
const Ydb::Table::QueryStatsCollection::Mode& statsMode,
bool withSpilling, const TMaybe<NKikimrKqp::TRlPath>& rlPath, NWilson::TSpan& executerSpan,
TVector<NKikimrKqp::TKqpNodeResources>&& resourcesSnapshot,
- const NKikimrConfig::TTableServiceConfig::TExecuterRetriesConfig& ExecuterRetriesConfig, bool isDataQuery);
+ const NKikimrConfig::TTableServiceConfig::TExecuterRetriesConfig& ExecuterRetriesConfig, bool isDataQuery,
+ ui64 mkqlMemoryLimit, NYql::NDq::IDqAsyncIoFactory::TPtr asyncIoFactory, bool doOptimization);
} // namespace NKikimr::NKqp
diff --git a/ydb/core/kqp/executer_actor/kqp_scan_executer.cpp b/ydb/core/kqp/executer_actor/kqp_scan_executer.cpp
index 575c2fdfa9..5c37de25f6 100644
--- a/ydb/core/kqp/executer_actor/kqp_scan_executer.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_scan_executer.cpp
@@ -254,6 +254,7 @@ private:
task.Meta.ExecuterId = SelfId();
task.Meta.NodeId = nodeId;
task.Meta.ScanTask = true;
+ task.Meta.Type = TTaskMeta::TTaskType::Scan;
return task;
}
@@ -264,6 +265,7 @@ private:
auto& task = TasksGraph.AddTask(stageInfo);
task.Meta.NodeId = nodeId;
task.Meta.ScanTask = true;
+ task.Meta.Type = TTaskMeta::TTaskType::Scan;
tasks.push_back(task.Id);
++cnt;
return task;
@@ -400,6 +402,7 @@ private:
task.Meta.ExecuterId = SelfId();
task.Meta.NodeId = nodeId;
task.Meta.ScanTask = true;
+ task.Meta.Type = TTaskMeta::TTaskType::Scan;
task.SetMetaId(metaGlueingId);
}
}
@@ -465,6 +468,7 @@ private:
for (ui32 i = 0; i < partitionsCount; ++i) {
auto& task = TasksGraph.AddTask(stageInfo);
+ task.Meta.Type = TTaskMeta::TTaskType::Compute;
LOG_D("Stage " << stageInfo.Id << " create compute task: " << task.Id);
}
}
@@ -526,7 +530,7 @@ private:
if (stage.SourcesSize() > 0) {
switch (stage.GetSources(0).GetTypeCase()) {
case NKqpProto::TKqpSource::kReadRangesSource:
- BuildScanTasksFromSource(stageInfo);
+ BuildScanTasksFromSource(stageInfo, {});
break;
default:
YQL_ENSURE(false, "unknown source type");
@@ -534,7 +538,7 @@ private:
} else if (stageInfo.Meta.ShardOperations.empty()) {
BuildComputeTasks(stageInfo);
} else if (stageInfo.Meta.IsSysView()) {
- BuildSysViewScanTasks(stageInfo);
+ BuildSysViewScanTasks(stageInfo, {});
} else if (stageInfo.Meta.IsOlap() || stageInfo.Meta.IsDatashard()) {
BuildScanTasks(stageInfo);
} else {
@@ -570,33 +574,21 @@ private:
return;
}
- // NodeId -> {Tasks}
- THashMap<ui64, TVector<ui64>> scanTasks;
ui32 nShardScans = 0;
- ui32 nScanTasks = 0;
-
TVector<ui64> computeTasks;
InitializeChannelProxies();
+ // calc stats
for (auto& task : TasksGraph.GetTasks()) {
auto& stageInfo = TasksGraph.GetStageInfo(task.StageId);
-
+
if (task.Meta.NodeId || stageInfo.Meta.IsSysView()) {
// Task with source
if (!task.Meta.Reads) {
- scanTasks[task.Meta.NodeId].emplace_back(task.Id);
- nScanTasks++;
continue;
}
- if (stageInfo.Meta.IsSysView()) {
- computeTasks.emplace_back(task.Id);
- } else {
- scanTasks[task.Meta.NodeId].emplace_back(task.Id);
- nScanTasks++;
- }
-
nShardScans += task.Meta.Reads->size();
if (Stats) {
for(const auto& read: *task.Meta.Reads) {
@@ -604,17 +596,15 @@ private:
}
}
- } else {
- computeTasks.emplace_back(task.Id);
}
}
-
- if (computeTasks.size() + nScanTasks > Request.MaxComputeActors) {
- LOG_N("Too many compute actors: computeTasks=" << computeTasks.size() << ", scanTasks=" << nScanTasks);
+ if (TasksGraph.GetTasks().size() > Request.MaxComputeActors) {
+ // LOG_N("Too many compute actors: computeTasks=" << computeTasks.size() << ", scanTasks=" << nScanTasks);
+ LOG_N("Too many compute actors: totalTasks=" << TasksGraph.GetTasks().size());
TBase::ReplyErrorAndDie(Ydb::StatusIds::PRECONDITION_FAILED,
YqlIssue({}, TIssuesIds::KIKIMR_PRECONDITION_FAILED, TStringBuilder()
- << "Requested too many execution units: " << (computeTasks.size() + nScanTasks)));
+ << "Requested too many execution units: " << TasksGraph.GetTasks().size()));
return;
}
@@ -622,12 +612,9 @@ private:
prepareTasksSpan.End();
}
- LOG_D("Total tasks: " << TasksGraph.GetTasks().size() << ", readonly: true"
- << ", " << nScanTasks << " scan tasks on " << scanTasks.size() << " nodes"
- << ", totalShardScans: " << nShardScans << ", execType: Scan"
- << ", snapshot: {" << GetSnapshot().TxId << ", " << GetSnapshot().Step << "}");
+ LOG_D("TotalShardScans: " << nShardScans);
- ExecuteScanTx(std::move(computeTasks), std::move(scanTasks), std::move(snapshot));
+ ExecuteScanTx(std::move(snapshot));
Become(&TKqpScanExecuter::ExecuteState);
if (ExecuterStateSpan) {
@@ -667,30 +654,22 @@ public:
}
private:
- void ExecuteScanTx(TVector<ui64>&& computeTasks, THashMap<ui64, TVector<ui64>>&& tasksPerNode,
- TVector<NKikimrKqp::TKqpNodeResources>&& snapshot) {
- LWTRACK(KqpScanExecuterStartTasksAndTxs, ResponseEv->Orbit, TxId, computeTasks.size(), tasksPerNode.size());
- for (const auto& [_, tasks]: tasksPerNode) {
- for (const auto& task : tasks) {
- PendingComputeTasks.insert(task);
- }
- }
-
- for (auto& task : computeTasks) {
- PendingComputeTasks.insert(task);
- }
-
- Planner = CreateKqpPlanner(TasksGraph, TxId, SelfId(), std::move(computeTasks),
- std::move(tasksPerNode), GetSnapshot(),
+ void ExecuteScanTx(TVector<NKikimrKqp::TKqpNodeResources>&& snapshot) {
+
+ Planner = CreateKqpPlanner(TasksGraph, TxId, SelfId(), {},
+ {}, GetSnapshot(),
Database, UserToken, Deadline.GetOrElse(TInstant::Zero()), Request.StatsMode, AppData()->EnableKqpSpilling,
- Request.RlPath, ExecuterSpan, std::move(snapshot), ExecuterRetriesConfig, false /* isDataQuery */);
- LOG_D("Execute scan tx, PendingComputeTasks: " << PendingComputeTasks.size());
+ Request.RlPath, ExecuterSpan, std::move(snapshot), ExecuterRetriesConfig, false /* isDataQuery */, Request.MkqlMemoryLimit, nullptr, false);
+
+ LOG_D("Execute scan tx, PendingComputeTasks: " << TasksGraph.GetTasks().size());
auto err = Planner->PlanExecution();
if (err) {
TlsActivationContext->Send(err.release());
return;
}
+ LWTRACK(KqpScanExecuterStartTasksAndTxs, ResponseEv->Orbit, TxId, Planner->GetnComputeTasks(), Planner->GetnComputeTasks());
+
Planner->Submit();
}
@@ -698,14 +677,16 @@ private:
void ReplyErrorAndDie(Ydb::StatusIds::StatusCode status,
google::protobuf::RepeatedPtrField<Ydb::Issue::IssueMessage>* issues) override
{
- if (!PendingComputeTasks.empty()) {
- LOG_D("terminate pending resources request: " << Ydb::StatusIds::StatusCode_Name(status));
+ if (Planner) {
+ if (!Planner->GetPendingComputeTasks().empty()) {
+ LOG_D("terminate pending resources request: " << Ydb::StatusIds::StatusCode_Name(status));
- auto ev = MakeHolder<TEvKqpNode::TEvCancelKqpTasksRequest>();
- ev->Record.SetTxId(TxId);
- ev->Record.SetReason(Ydb::StatusIds::StatusCode_Name(status));
+ auto ev = MakeHolder<TEvKqpNode::TEvCancelKqpTasksRequest>();
+ ev->Record.SetTxId(TxId);
+ ev->Record.SetReason(Ydb::StatusIds::StatusCode_Name(status));
- Send(MakeKqpNodeServiceID(SelfId().NodeId()), ev.Release());
+ Send(MakeKqpNodeServiceID(SelfId().NodeId()), ev.Release());
+ }
}
TBase::ReplyErrorAndDie(status, issues);
diff --git a/ydb/core/kqp/executer_actor/kqp_shards_resolver.cpp b/ydb/core/kqp/executer_actor/kqp_shards_resolver.cpp
index cf9ac91382..0ea51cb43f 100644
--- a/ydb/core/kqp/executer_actor/kqp_shards_resolver.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_shards_resolver.cpp
@@ -85,7 +85,7 @@ private:
if (retryCount > MAX_RETRIES_COUNT) {
TString reply = TStringBuilder() << "Failed to resolve tablet: " << msg->TabletId << " after several retries.";
LOG_W(reply);
- ReplyErrorAndDie(Ydb::StatusIds::GENERIC_ERROR, std::move(reply));
+ ReplyErrorAndDie(Ydb::StatusIds::UNAVAILABLE, std::move(reply));
return;
}
diff --git a/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp b/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp
index b8e6b4c3d8..c52c248672 100644
--- a/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp
@@ -273,11 +273,17 @@ void BuildSequencerChannels(TKqpTasksGraph& graph, const TStageInfo& stageInfo,
for(const auto& column: sequencer.GetColumns()) {
auto columnIt = table.Columns.find(column);
YQL_ENSURE(columnIt != table.Columns.end(), "Unknown column: " << column);
+ const auto& columnInfo = columnIt->second;
auto* columnProto = settings->AddColumns();
columnProto->SetName(column);
- columnProto->SetId(columnIt->second.Id);
- columnProto->SetTypeId(columnIt->second.Type.GetTypeId());
+ columnProto->SetId(columnInfo.Id);
+ columnProto->SetTypeId(columnInfo.Type.GetTypeId());
+
+ auto columnType = NScheme::ProtoColumnTypeFromTypeInfoMod(columnInfo.Type, columnInfo.TypeMod);
+ if (columnType.TypeInfo) {
+ *columnProto->MutableTypeInfo() = *columnType.TypeInfo;
+ }
auto aic = autoIncrementColumns.find(column);
if (aic != autoIncrementColumns.end()) {
@@ -939,6 +945,14 @@ void FillOutputDesc(const TKqpTasksGraph& tasksGraph, NYql::NDqProto::TTaskOutpu
break;
}
+ case TTaskOutputType::Sink: {
+ auto* sink = outputDesc.MutableSink();
+ sink->SetType(output.SinkType);
+ YQL_ENSURE(output.SinkSettings);
+ sink->MutableSettings()->CopyFrom(*output.SinkSettings);
+ break;
+ }
+
default: {
YQL_ENSURE(false, "Unexpected task output type " << output.Type);
}
@@ -1029,11 +1043,11 @@ void SerializeTaskToProto(const TKqpTasksGraph& tasksGraph, const TTask& task, N
result->SetMetaId(task.GetMetaIdUnsafe());
}
- for (const auto& [paramName, paramValue] : task.Meta.DqTaskParams) {
+ for (const auto& [paramName, paramValue] : task.Meta.TaskParams) {
(*result->MutableTaskParams())[paramName] = paramValue;
}
- for (const auto& [paramName, paramValue] : task.Meta.DqSecureParams) {
+ for (const auto& [paramName, paramValue] : task.Meta.SecureParams) {
(*result->MutableSecureParams())[paramName] = paramValue;
}
diff --git a/ydb/core/kqp/executer_actor/kqp_tasks_graph.h b/ydb/core/kqp/executer_actor/kqp_tasks_graph.h
index 829ba1304f..768a1a7858 100644
--- a/ydb/core/kqp/executer_actor/kqp_tasks_graph.h
+++ b/ydb/core/kqp/executer_actor/kqp_tasks_graph.h
@@ -159,9 +159,17 @@ public:
ui64 NodeId = 0; // only in case of scans over persistent snapshots
bool ScanTask = false;
TActorId ExecuterId;
+ ui32 Type = Unknown;
- THashMap<TString, TString> DqTaskParams; // Params for sources/sinks
- THashMap<TString, TString> DqSecureParams;
+ THashMap<TString, TString> TaskParams; // Params for sources/sinks
+ THashMap<TString, TString> SecureParams;
+
+ enum TTaskType : ui32 {
+ Unknown = 0,
+ Compute = 1,
+ Scan = 2,
+ DataShard = 3,
+ };
struct TColumn {
ui32 Id = 0;
diff --git a/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json b/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json
index bb2b916b29..d208142f54 100644
--- a/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json
+++ b/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json
@@ -102,7 +102,10 @@
{
"Name": "TKqlReadTableRanges",
"Base": "TKqlReadTableRangesBase",
- "Match": {"Type": "Callable", "Name": "KqlReadTableRanges"}
+ "Match": {"Type": "Callable", "Name": "KqlReadTableRanges"},
+ "Children": [
+ {"Index": 5, "Name": "PrefixPointsExpr", "Type": "TExprBase", "Optional": true}
+ ]
},
{
"Name": "TKqpReadTableRanges",
@@ -127,7 +130,8 @@
"Base": "TKqlReadTableRangesBase",
"Match": {"Type": "Callable", "Name": "TKqlReadTableIndexRanges"},
"Children": [
- {"Index": 5, "Name": "Index", "Type": "TCoAtom"}
+ {"Index": 5, "Name": "Index", "Type": "TCoAtom"},
+ {"Index": 6, "Name": "PrefixPointsExpr", "Type": "TExprBase", "Optional": true}
]
},
{
@@ -201,9 +205,15 @@
"Match": {"Type": "Callable", "Name": "KqlStreamLookupIndex"}
},
{
- "Name": "TKqlTableEffect",
+ "Name": "TKqlEffectBase",
"Base": "TExprBase",
"Match": {"Type": "CallableBase"},
+ "Builder": {"Generate": "None"}
+ },
+ {
+ "Name": "TKqlTableEffect",
+ "Base": "TKqlEffectBase",
+ "Match": {"Type": "CallableBase"},
"Builder": {"Generate": "None"},
"Children": [
{"Index": 0, "Name": "Table", "Type": "TKqpTable"}
@@ -285,6 +295,14 @@
"Match": {"Type": "Callable", "Name": "TKqlInsertRowsIndex"}
},
{
+ "Name": "TKqlExternalEffect",
+ "Base": "TKqlEffectBase",
+ "Match": {"Type": "Callable", "Name": "KqlExternalEffect"},
+ "Children": [
+ {"Index": 0, "Name": "Input", "Type": "TExprBase"}
+ ]
+ },
+ {
"Name": "TKqpParamBinding",
"Base": "TExprBase",
"Match": {"Type": "Tuple"},
@@ -445,6 +463,15 @@
"Match": {"Type": "Callable", "Name": "KqpDeleteRows"}
},
{
+ "Name": "TKqpSinkEffect",
+ "Base": "TKqlEffectBase",
+ "Match": {"Type": "Callable", "Name": "KqpSinkEffect"},
+ "Children": [
+ {"Index": 0, "Name": "Stage", "Type": "TExprBase"},
+ {"Index": 1, "Name": "SinkIndex", "Type": "TCoAtom"}
+ ]
+ },
+ {
"Name": "TKqpOlapOperationBase",
"Base": "TCallable",
"Match": {"Type": "CallableBase"},
diff --git a/ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt
index a3e2d9ccca..7893c75ba0 100644
--- a/ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt
@@ -24,6 +24,7 @@ target_link_libraries(core-kqp-gateway PUBLIC
core-kqp-query_data
kqp-gateway-actors
gateway-behaviour-tablestore
+ gateway-behaviour-external_data_source
providers-result-expr_nodes
)
target_sources(core-kqp-gateway PRIVATE
diff --git a/ydb/core/kqp/gateway/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/gateway/CMakeLists.linux-aarch64.txt
index bbb3eb0ee8..de6fc0d227 100644
--- a/ydb/core/kqp/gateway/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kqp/gateway/CMakeLists.linux-aarch64.txt
@@ -25,6 +25,7 @@ target_link_libraries(core-kqp-gateway PUBLIC
core-kqp-query_data
kqp-gateway-actors
gateway-behaviour-tablestore
+ gateway-behaviour-external_data_source
providers-result-expr_nodes
)
target_sources(core-kqp-gateway PRIVATE
diff --git a/ydb/core/kqp/gateway/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/gateway/CMakeLists.linux-x86_64.txt
index bbb3eb0ee8..de6fc0d227 100644
--- a/ydb/core/kqp/gateway/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kqp/gateway/CMakeLists.linux-x86_64.txt
@@ -25,6 +25,7 @@ target_link_libraries(core-kqp-gateway PUBLIC
core-kqp-query_data
kqp-gateway-actors
gateway-behaviour-tablestore
+ gateway-behaviour-external_data_source
providers-result-expr_nodes
)
target_sources(core-kqp-gateway PRIVATE
diff --git a/ydb/core/kqp/gateway/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/gateway/CMakeLists.windows-x86_64.txt
index a3e2d9ccca..7893c75ba0 100644
--- a/ydb/core/kqp/gateway/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kqp/gateway/CMakeLists.windows-x86_64.txt
@@ -24,6 +24,7 @@ target_link_libraries(core-kqp-gateway PUBLIC
core-kqp-query_data
kqp-gateway-actors
gateway-behaviour-tablestore
+ gateway-behaviour-external_data_source
providers-result-expr_nodes
)
target_sources(core-kqp-gateway PRIVATE
diff --git a/ydb/core/kqp/gateway/actors/kqp_ic_gateway_actors.h b/ydb/core/kqp/gateway/actors/kqp_ic_gateway_actors.h
index 966f444a73..04e8d12567 100644
--- a/ydb/core/kqp/gateway/actors/kqp_ic_gateway_actors.h
+++ b/ydb/core/kqp/gateway/actors/kqp_ic_gateway_actors.h
@@ -3,6 +3,8 @@
#include <ydb/core/base/tablet_pipe.h>
#include <ydb/core/base/appdata.h>
#include <ydb/library/yql/providers/common/gateway/yql_provider_gateway.h>
+#include <ydb/services/metadata/secret/fetcher.h>
+#include <ydb/services/metadata/secret/snapshot.h>
#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/core/hfunc.h>
@@ -111,4 +113,68 @@ private:
TActorId ActorId;
};
+struct TDescribeObjectResponse {
+ TDescribeObjectResponse(Ydb::StatusIds::StatusCode status, NYql::TIssues issues)
+ : Status(status)
+ , Issues(std::move(issues))
+ {}
+
+ TDescribeObjectResponse(const TString& secretValue)
+ : SecretValue(secretValue)
+ , Status(Ydb::StatusIds::SUCCESS)
+ {}
+
+ TString SecretValue;
+ Ydb::StatusIds::StatusCode Status;
+ NYql::TIssues Issues;
+};
+
+class TDescribeObjectActor: public NActors::TActorBootstrapped<TDescribeObjectActor> {
+ STRICT_STFUNC(StateFunc,
+ hFunc(NMetadata::NProvider::TEvRefreshSubscriberData, Handle);
+ )
+
+ void Handle(NMetadata::NProvider::TEvRefreshSubscriberData::TPtr& ev) {
+ Send(NMetadata::NProvider::MakeServiceId(SelfId().NodeId()), new NMetadata::NProvider::TEvUnsubscribeExternal(GetSecretsSnapshotParser()));
+ auto snapshot = ev->Get()->GetSnapshotAs<NMetadata::NSecret::TSnapshot>();
+
+ TString secretValue;
+ bool isFound = snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(SecretId), secretValue);
+
+ if (isFound) {
+ Promise.SetValue(TDescribeObjectResponse(secretValue));
+ } else {
+ Promise.SetValue(TDescribeObjectResponse(Ydb::StatusIds::BAD_REQUEST, { NYql::TIssue("secret with name '" + SecretId.GetSecretId() + "' not found") }));
+ }
+
+ PassAway();
+ }
+
+ NMetadata::NFetcher::ISnapshotsFetcher::TPtr GetSecretsSnapshotParser() {
+ return std::make_shared<NMetadata::NSecret::TSnapshotsFetcher>();
+ }
+
+public:
+ TDescribeObjectActor(const TString& ownerUserId, const TString& secretId, NThreading::TPromise<TDescribeObjectResponse> promise)
+ : SecretId(ownerUserId, secretId)
+ , Promise(promise)
+ {}
+
+ void Bootstrap() {
+ if (!NMetadata::NProvider::TServiceOperator::IsEnabled()) {
+ Promise.SetValue(TDescribeObjectResponse(Ydb::StatusIds::INTERNAL_ERROR, { NYql::TIssue("metadata service is not active") }));
+ PassAway();
+ return;
+ }
+
+ this->Send(NMetadata::NProvider::MakeServiceId(SelfId().NodeId()), new NMetadata::NProvider::TEvSubscribeExternal(GetSecretsSnapshotParser()));
+
+ Become(&TDescribeObjectActor::StateFunc);
+ }
+
+private:
+ const NMetadata::NSecret::TSecretId SecretId;
+ NThreading::TPromise<TDescribeObjectResponse> Promise;
+};
+
}
diff --git a/ydb/core/kqp/gateway/behaviour/CMakeLists.txt b/ydb/core/kqp/gateway/behaviour/CMakeLists.txt
index 096e41b032..2c9386bf8a 100644
--- a/ydb/core/kqp/gateway/behaviour/CMakeLists.txt
+++ b/ydb/core/kqp/gateway/behaviour/CMakeLists.txt
@@ -6,4 +6,5 @@
# original buildsystem will not be accepted.
+add_subdirectory(external_data_source)
add_subdirectory(tablestore)
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..aae8b0714b
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/manager.cpp
+)
+
+add_global_library_for(gateway-behaviour-external_data_source.global gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.cpp
+)
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..a8d7f24f00
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/manager.cpp
+)
+
+add_global_library_for(gateway-behaviour-external_data_source.global gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.cpp
+)
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..a8d7f24f00
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,42 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/manager.cpp
+)
+
+add_global_library_for(gateway-behaviour-external_data_source.global gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.cpp
+)
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..aae8b0714b
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,40 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/manager.cpp
+)
+
+add_global_library_for(gateway-behaviour-external_data_source.global gateway-behaviour-external_data_source)
+target_compile_options(gateway-behaviour-external_data_source.global PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ services-metadata-initializer
+ services-metadata-abstract
+ kqp-gateway-actors
+ behaviour-tablestore-operations
+)
+target_sources(gateway-behaviour-external_data_source.global PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.cpp
+)
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.cpp b/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.cpp
new file mode 100644
index 0000000000..33fc6519ee
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.cpp
@@ -0,0 +1,25 @@
+#include "behaviour.h"
+#include "manager.h"
+
+namespace NKikimr::NKqp {
+
+TExternalDataSourceBehaviour::TFactory::TRegistrator<TExternalDataSourceBehaviour> TExternalDataSourceBehaviour::Registrator(TExternalDataSourceConfig::GetTypeId());
+
+NMetadata::NModifications::IOperationsManager::TPtr TExternalDataSourceBehaviour::ConstructOperationsManager() const {
+ return std::make_shared<TExternalDataSourceManager>();
+}
+
+NMetadata::NInitializer::IInitializationBehaviour::TPtr TExternalDataSourceBehaviour::ConstructInitializer() const {
+ return nullptr;
+}
+
+TString TExternalDataSourceBehaviour::GetInternalStorageTablePath() const {
+ return TExternalDataSourceConfig::GetTypeId();
+}
+
+
+TString TExternalDataSourceBehaviour::GetTypeId() const {
+ return TExternalDataSourceConfig::GetTypeId();
+}
+
+}
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.h b/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.h
new file mode 100644
index 0000000000..83ad16d89b
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/behaviour.h
@@ -0,0 +1,25 @@
+#pragma once
+#include <ydb/services/metadata/abstract/kqp_common.h>
+#include <ydb/services/metadata/abstract/initialization.h>
+
+namespace NKikimr::NKqp {
+
+class TExternalDataSourceConfig {
+public:
+ static TString GetTypeId() {
+ return "EXTERNAL_DATA_SOURCE";
+ }
+};
+
+class TExternalDataSourceBehaviour: public NMetadata::TClassBehaviour<TExternalDataSourceConfig> {
+private:
+ static TFactory::TRegistrator<TExternalDataSourceBehaviour> Registrator;
+protected:
+ virtual std::shared_ptr<NMetadata::NInitializer::IInitializationBehaviour> ConstructInitializer() const override;
+ virtual std::shared_ptr<NMetadata::NModifications::IOperationsManager> ConstructOperationsManager() const override;
+
+ virtual TString GetInternalStorageTablePath() const override;
+ virtual TString GetTypeId() const override;
+};
+
+}
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/manager.cpp b/ydb/core/kqp/gateway/behaviour/external_data_source/manager.cpp
new file mode 100644
index 0000000000..2dfc169914
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/manager.cpp
@@ -0,0 +1,152 @@
+
+#include "manager.h"
+
+#include <ydb/core/tx/tx_proxy/proxy.h>
+#include <ydb/core/kqp/gateway/actors/scheme.h>
+#include <ydb/core/kqp/provider/yql_kikimr_gateway.h>
+#include <ydb/core/base/path.h>
+#include <ydb/core/kqp/provider/yql_kikimr_gateway.h>
+
+#include <util/string/type.h>
+
+namespace NKikimr::NKqp {
+
+namespace {
+
+TString GetOrDefault(const NYql::TCreateObjectSettings& container, const TString& key, const TString& defaultValue = TString{}) {
+ auto fValue = container.GetFeaturesExtractor().Extract(key);
+ return fValue ? *fValue : defaultValue;
+}
+
+void FillCreateExternalDataSourceDesc(NKikimrSchemeOp::TExternalDataSourceDescription& externaDataSourceDesc,
+ const TString& name,
+ const NYql::TCreateObjectSettings& settings) {
+ externaDataSourceDesc.SetName(name);
+ externaDataSourceDesc.SetSourceType(GetOrDefault(settings, "source_type"));
+ externaDataSourceDesc.SetLocation(GetOrDefault(settings, "location"));
+ externaDataSourceDesc.SetInstallation(GetOrDefault(settings, "installation"));
+
+ TString authMethod = GetOrDefault(settings, "auth_method");
+ if (authMethod == "NONE") {
+ externaDataSourceDesc.MutableAuth()->MutableNone();
+ } else if (authMethod == "SERVICE_ACCOUNT") {
+ auto& sa = *externaDataSourceDesc.MutableAuth()->MutableServiceAccount();
+ sa.SetId(GetOrDefault(settings, "service_account_id"));
+ sa.SetSecretName(GetOrDefault(settings, "service_account_secret_name"));
+ }
+}
+
+NThreading::TFuture<TExternalDataSourceManager::TYqlConclusionStatus> SendSchemeRequest(TEvTxUserProxy::TEvProposeTransaction* request, TActorSystem* actorSystem, bool failedOnAlreadyExists = false)
+{
+ auto promiseScheme = NThreading::NewPromise<NKqp::TSchemeOpRequestHandler::TResult>();
+ IActor* requestHandler = new TSchemeOpRequestHandler(request, promiseScheme, failedOnAlreadyExists);
+ actorSystem->Register(requestHandler);
+ return promiseScheme.GetFuture().Apply([](const NThreading::TFuture<NKqp::TSchemeOpRequestHandler::TResult>& f) {
+ if (f.HasValue() && !f.HasException() && f.GetValue().Success()) {
+ return TExternalDataSourceManager::TYqlConclusionStatus::Success();
+ } else if (f.HasValue()) {
+ return TExternalDataSourceManager::TYqlConclusionStatus::Fail(f.GetValue().Status(), f.GetValue().Issues().ToString());
+ }
+ return TExternalDataSourceManager::TYqlConclusionStatus::Fail("no value in result");
+ });
+}
+
+}
+
+NThreading::TFuture<TExternalDataSourceManager::TYqlConclusionStatus> TExternalDataSourceManager::DoModify(const NYql::TObjectSettingsImpl& settings,
+ const ui32 nodeId,
+ NMetadata::IClassBehaviour::TPtr manager,
+ TInternalModificationContext& context) const {
+ Y_UNUSED(nodeId, manager, settings);
+ switch (context.GetActivityType()) {
+ case EActivityType::Upsert:
+ case EActivityType::Undefined:
+ case EActivityType::Alter:
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail("not implemented"));
+ case EActivityType::Create:
+ return CreateExternalDataSource(settings, context);
+ case EActivityType::Drop:
+ return DropExternalDataSource(settings, context);
+ }
+}
+
+NThreading::TFuture<TExternalDataSourceManager::TYqlConclusionStatus> TExternalDataSourceManager::CreateExternalDataSource(const NYql::TObjectSettingsImpl& settings,
+ TInternalModificationContext& context) const {
+ using TRequest = TEvTxUserProxy::TEvProposeTransaction;
+
+ try {
+ auto* actorSystem = context.GetExternalData().GetActorSystem();
+ if (!actorSystem) {
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail("This place needs an actor system. Please contact internal support"));
+ }
+
+ if (!AppData(actorSystem)->FeatureFlags.GetEnableExternalDataSources()) {
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail("External data sources are disabled. Please contact your system administrator to enable it"));
+ }
+
+ std::pair<TString, TString> pathPair;
+ {
+ TString error;
+ if (!TrySplitPathByDb(settings.GetObjectId(), context.GetExternalData().GetDatabase(), pathPair, error)) {
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail(error));
+ }
+ }
+
+ auto ev = MakeHolder<TRequest>();
+ ev->Record.SetDatabaseName(context.GetExternalData().GetDatabase());
+ if (context.GetExternalData().GetUserToken()) {
+ ev->Record.SetUserToken(context.GetExternalData().GetUserToken()->GetSerializedToken());
+ }
+ auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme();
+ schemeTx.SetWorkingDir(pathPair.first);
+ schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateExternalDataSource);
+
+ NKikimrSchemeOp::TExternalDataSourceDescription& dataSourceDesc = *schemeTx.MutableCreateExternalDataSource();
+ FillCreateExternalDataSourceDesc(dataSourceDesc, pathPair.second, settings);
+ return SendSchemeRequest(ev.Release(), actorSystem, true);
+ } catch (...) {
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail(CurrentExceptionMessage()));
+ }
+}
+
+NThreading::TFuture<TExternalDataSourceManager::TYqlConclusionStatus> TExternalDataSourceManager::DropExternalDataSource(const NYql::TObjectSettingsImpl& settings,
+ TInternalModificationContext& context) const {
+ using TRequest = TEvTxUserProxy::TEvProposeTransaction;
+
+ try {
+ auto* actorSystem = context.GetExternalData().GetActorSystem();
+ if (!actorSystem) {
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail("This place needs an actor system. Please contact internal support"));
+ }
+
+ if (!AppData(actorSystem)->FeatureFlags.GetEnableExternalDataSources()) {
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail("External data sources are disabled. Please contact your system administrator to enable it"));
+ }
+
+ std::pair<TString, TString> pathPair;
+ {
+ TString error;
+ if (!NYql::IKikimrGateway::TrySplitTablePath(settings.GetObjectId(), pathPair, error)) {
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail(error));
+ }
+ }
+
+ auto ev = MakeHolder<TRequest>();
+ ev->Record.SetDatabaseName(context.GetExternalData().GetDatabase());
+ if (context.GetExternalData().GetUserToken()) {
+ ev->Record.SetUserToken(context.GetExternalData().GetUserToken()->GetSerializedToken());
+ }
+ auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme();
+ schemeTx.SetWorkingDir(pathPair.first);
+ schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpDropExternalDataSource);
+
+ NKikimrSchemeOp::TDrop& drop = *schemeTx.MutableDrop();
+ drop.SetName(pathPair.second);
+ return SendSchemeRequest(ev.Release(), actorSystem);
+ }
+ catch (...) {
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail(CurrentExceptionMessage()));
+ }
+}
+
+}
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/manager.h b/ydb/core/kqp/gateway/behaviour/external_data_source/manager.h
new file mode 100644
index 0000000000..fb1045e203
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/manager.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include <ydb/services/metadata/manager/generic_manager.h>
+
+namespace NKikimr::NKqp {
+
+class TExternalDataSourceManager: public NMetadata::NModifications::IOperationsManager {
+ NThreading::TFuture<TYqlConclusionStatus> CreateExternalDataSource(const NYql::TObjectSettingsImpl& settings,
+ TInternalModificationContext& context) const;
+
+ NThreading::TFuture<TYqlConclusionStatus> DropExternalDataSource(const NYql::TObjectSettingsImpl& settings,
+ TInternalModificationContext& context) const;
+
+protected:
+ NThreading::TFuture<TYqlConclusionStatus> DoModify(const NYql::TObjectSettingsImpl& settings,
+ const ui32 nodeId,
+ NMetadata::IClassBehaviour::TPtr manager,
+ TInternalModificationContext& context) const override;
+
+public:
+ using NMetadata::NModifications::IOperationsManager::TYqlConclusionStatus;
+};
+
+}
diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/ya.make b/ydb/core/kqp/gateway/behaviour/external_data_source/ya.make
new file mode 100644
index 0000000000..2b52c19cc9
--- /dev/null
+++ b/ydb/core/kqp/gateway/behaviour/external_data_source/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+ manager.cpp
+ GLOBAL behaviour.cpp
+)
+
+PEERDIR(
+ ydb/services/metadata/initializer
+ ydb/services/metadata/abstract
+ ydb/core/kqp/gateway/actors
+ ydb/core/kqp/gateway/behaviour/tablestore/operations
+)
+
+YQL_LAST_ABI_VERSION()
+
+END()
diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/manager.cpp b/ydb/core/kqp/gateway/behaviour/tablestore/manager.cpp
index da3bd266c6..207e56c4a9 100644
--- a/ydb/core/kqp/gateway/behaviour/tablestore/manager.cpp
+++ b/ydb/core/kqp/gateway/behaviour/tablestore/manager.cpp
@@ -18,6 +18,11 @@ NThreading::TFuture<TTableStoreManager::TYqlConclusionStatus> TTableStoreManager
auto promise = NThreading::NewPromise<TYqlConclusionStatus>();
auto result = promise.GetFuture();
+ auto* actorSystem = context.GetExternalData().GetActorSystem();
+ if (!actorSystem) {
+ return NThreading::MakeFuture<TYqlConclusionStatus>(TYqlConclusionStatus::Fail("This place needs an actor system. Please contact internal support"));
+ }
+
switch (context.GetActivityType()) {
case EActivityType::Create:
case EActivityType::Upsert:
@@ -48,8 +53,8 @@ NThreading::TFuture<TTableStoreManager::TYqlConclusionStatus> TTableStoreManager
auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme();
operation->SerializeScheme(schemeTx);
- auto promiseScheme = NThreading::NewPromise<NKqp::TSchemeOpRequestHandler::TResult>();
- TActivationContext::AsActorContext().Register(new NKqp::TSchemeOpRequestHandler(ev.Release(), promiseScheme, false));
+ auto promiseScheme = NThreading::NewPromise<NKqp::TSchemeOpRequestHandler::TResult>();
+ actorSystem->Register(new NKqp::TSchemeOpRequestHandler(ev.Release(), promiseScheme, false));
return promiseScheme.GetFuture().Apply([](const NThreading::TFuture<NKqp::TSchemeOpRequestHandler::TResult>& f) {
if (f.HasValue() && !f.HasException() && f.GetValue().Success()) {
return TYqlConclusionStatus::Success();
diff --git a/ydb/core/kqp/gateway/kqp_gateway.h b/ydb/core/kqp/gateway/kqp_gateway.h
index c4be1e7fa2..793cf008fe 100644
--- a/ydb/core/kqp/gateway/kqp_gateway.h
+++ b/ydb/core/kqp/gateway/kqp_gateway.h
@@ -170,6 +170,7 @@ public:
virtual NThreading::TFuture<TGenericResult> ModifyScheme(NKikimrSchemeOp::TModifyScheme&& modifyScheme) = 0;
/* Compute */
+ using NYql::IKikimrGateway::ExecuteLiteral;
virtual NThreading::TFuture<TExecPhysicalResult> ExecuteLiteral(TExecPhysicalRequest&& request,
TQueryData::TPtr params, ui32 txIndex) = 0;
diff --git a/ydb/core/kqp/gateway/kqp_ic_gateway.cpp b/ydb/core/kqp/gateway/kqp_ic_gateway.cpp
index 7a762c7036..b685bde61f 100644
--- a/ydb/core/kqp/gateway/kqp_ic_gateway.cpp
+++ b/ydb/core/kqp/gateway/kqp_ic_gateway.cpp
@@ -23,6 +23,7 @@
#include <ydb/core/ydb_convert/ydb_convert.h>
#include <ydb/library/aclib/aclib.h>
#include <ydb/public/lib/base/msgbus_status.h>
+#include <ydb/public/sdk/cpp/client/ydb_params/params.h>
#include <ydb/public/api/protos/ydb_topic.pb.h>
#include <ydb/services/metadata/abstract/kqp_common.h>
#include <ydb/services/persqueue_v1/rpc_calls.h>
@@ -1296,84 +1297,6 @@ public:
}
}
- TFuture<TGenericResult> CreateExternalDataSource(const TString& cluster,
- const NYql::TCreateExternalDataSourceSettings& settings,
- bool createDir) override {
- using TRequest = TEvTxUserProxy::TEvProposeTransaction;
-
- try {
- if (!CheckCluster(cluster)) {
- return InvalidCluster<TGenericResult>(cluster);
- }
-
- std::pair<TString, TString> pathPair;
- {
- TString error;
- if (!GetPathPair(settings.ExternalDataSource, pathPair, error, createDir)) {
- return MakeFuture(ResultFromError<TGenericResult>(error));
- }
- }
-
- auto ev = MakeHolder<TRequest>();
- ev->Record.SetDatabaseName(Database);
- if (UserToken) {
- ev->Record.SetUserToken(UserToken->GetSerializedToken());
- }
- auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme();
- schemeTx.SetWorkingDir(pathPair.first);
- schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateExternalDataSource);
-
- NKikimrSchemeOp::TExternalDataSourceDescription& dataSourceDesc = *schemeTx.MutableCreateExternalDataSource();
- FillCreateExternalDataSourceDesc(dataSourceDesc, pathPair.second, settings);
- return SendSchemeRequest(ev.Release(), true);
- }
- catch (yexception& e) {
- return MakeFuture(ResultFromException<TGenericResult>(e));
- }
- }
-
- TFuture<TGenericResult> AlterExternalDataSource(const TString& cluster,
- const NYql::TAlterExternalDataSourceSettings& settings) override {
- Y_UNUSED(cluster, settings);
- return MakeErrorFuture<TGenericResult>(std::make_exception_ptr(yexception() << "The alter is not supported for the external data source"));
- }
-
- TFuture<TGenericResult> DropExternalDataSource(const TString& cluster,
- const NYql::TDropExternalDataSourceSettings& settings) override {
- using TRequest = TEvTxUserProxy::TEvProposeTransaction;
-
- try {
- if (!CheckCluster(cluster)) {
- return InvalidCluster<TGenericResult>(cluster);
- }
-
- std::pair<TString, TString> pathPair;
- {
- TString error;
- if (!GetPathPair(settings.ExternalDataSource, pathPair, error, false)) {
- return MakeFuture(ResultFromError<TGenericResult>(error));
- }
- }
-
- auto ev = MakeHolder<TRequest>();
- ev->Record.SetDatabaseName(Database);
- if (UserToken) {
- ev->Record.SetUserToken(UserToken->GetSerializedToken());
- }
-
- auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme();
- schemeTx.SetWorkingDir(pathPair.first);
- schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpDropExternalDataSource);
-
- NKikimrSchemeOp::TDrop& drop = *schemeTx.MutableDrop();
- drop.SetName(pathPair.second);
- return SendSchemeRequest(ev.Release());
- }
- catch (yexception& e) {
- return MakeFuture(ResultFromException<TGenericResult>(e));
- }
- }
-
TFuture<TGenericResult> AlterUser(const TString& cluster, const NYql::TAlterUserSettings& settings) override {
using TRequest = TEvTxUserProxy::TEvProposeTransaction;
@@ -1507,6 +1430,7 @@ public:
context.SetUserToken(*GetUserToken());
}
context.SetDatabase(Owner.Database);
+ context.SetActorSystem(Owner.ActorSystem);
return DoExecute(cBehaviour, settings, context).Apply([](const NThreading::TFuture<TYqlConclusionStatus>& f) {
if (f.HasValue() && !f.HasException() && f.GetValue().Ok()) {
TGenericResult result;
@@ -1777,6 +1701,55 @@ public:
}
}
+ TFuture<TExecuteLiteralResult> ExecuteLiteral(const TString& program, const NKikimrMiniKQL::TType& resultType, NKikimr::NKqp::TTxAllocatorState::TPtr txAlloc) override {
+ auto preparedQuery = std::make_unique<NKikimrKqp::TPreparedQuery>();
+ auto& phyQuery = *preparedQuery->MutablePhysicalQuery();
+ NKikimr::NKqp::IKqpGateway::TExecPhysicalRequest literalRequest(txAlloc);
+
+ literalRequest.NeedTxId = false;
+ literalRequest.MaxAffectedShards = 0;
+ literalRequest.TotalReadSizeLimitBytes = 0;
+ literalRequest.MkqlMemoryLimit = 100_MB;
+
+ auto& transaction = *phyQuery.AddTransactions();
+ transaction.SetType(NKqpProto::TKqpPhyTx::TYPE_COMPUTE);
+
+ auto& stage = *transaction.AddStages();
+ auto& stageProgram = *stage.MutableProgram();
+ stageProgram.SetRuntimeVersion(NYql::NDqProto::RUNTIME_VERSION_YQL_1_0);
+ stageProgram.SetRaw(program);
+ stage.SetOutputsCount(1);
+
+ auto& taskResult = *transaction.AddResults();
+ *taskResult.MutableItemType() = resultType;
+ auto& taskConnection = *taskResult.MutableConnection();
+ taskConnection.SetStageIndex(0);
+
+ NKikimr::NKqp::TPreparedQueryHolder queryHolder(preparedQuery.release(), txAlloc->HolderFactory.GetFunctionRegistry());
+
+ NKikimr::NKqp::TQueryData::TPtr params = std::make_shared<NKikimr::NKqp::TQueryData>(txAlloc);
+
+ literalRequest.Transactions.emplace_back(queryHolder.GetPhyTx(0), params);
+
+ return ExecuteLiteral(std::move(literalRequest), params, 0).Apply([](const auto& future) {
+ const auto& result = future.GetValue();
+
+ TExecuteLiteralResult literalResult;
+
+ if (result.Success()) {
+ YQL_ENSURE(result.Results.size() == 1);
+ literalResult.SetSuccess();
+ literalResult.Result = result.Results[0];
+ } else {
+ literalResult.SetStatus(result.Status());
+ literalResult.AddIssues(result.Issues());
+ }
+
+ return literalResult;
+ });
+ }
+
+
TFuture<TExecPhysicalResult> ExecuteLiteral(TExecPhysicalRequest&& request, TQueryData::TPtr params, ui32 txIndex) override {
YQL_ENSURE(!request.Transactions.empty());
YQL_ENSURE(request.DataShardLocks.empty());
@@ -1825,7 +1798,7 @@ public:
ev->Record.MutableRequest()->SetKeepSession(false);
ev->Record.MutableRequest()->SetCollectStats(settings.CollectStats);
- FillParameters(params, *ev->Record.MutableRequest()->MutableParameters());
+ FillParameters(params, ev->Record.MutableRequest()->MutableYdbParameters());
return SendKqpScanQueryRequest(ev.Release(), rowsLimit,
[] (TPromise<TQueryResult> promise, TResponse&& responseEv) {
@@ -1857,7 +1830,7 @@ public:
ev->Record.MutableRequest()->SetKeepSession(false);
ev->Record.MutableRequest()->SetCollectStats(settings.CollectStats);
- FillParameters(std::move(params), *ev->Record.MutableRequest()->MutableParameters());
+ FillParameters(std::move(params), ev->Record.MutableRequest()->MutableYdbParameters());
auto& txControl = *ev->Record.MutableRequest()->MutableTxControl();
txControl.mutable_begin_tx()->CopyFrom(txSettings);
@@ -1898,7 +1871,7 @@ public:
);
// TODO: Rewrite CollectParameters at kqp_host
- FillParameters(std::move(params), *ev->Record.MutableRequest()->MutableParameters());
+ FillParameters(std::move(params), ev->Record.MutableRequest()->MutableYdbParameters());
return SendKqpScanQueryStreamRequest(ev.Release(), target,
[](TPromise<TQueryResult> promise, TResponse&& responseEv) {
@@ -1956,7 +1929,7 @@ public:
ev->Record.MutableRequest()->SetKeepSession(false);
ev->Record.MutableRequest()->SetCollectStats(settings.CollectStats);
- FillParameters(std::move(params), *ev->Record.MutableRequest()->MutableParameters());
+ FillParameters(std::move(params), ev->Record.MutableRequest()->MutableYdbParameters());
auto& txControl = *ev->Record.MutableRequest()->MutableTxControl();
txControl.mutable_begin_tx()->CopyFrom(txSettings);
@@ -2220,39 +2193,13 @@ private:
externalTableDesc.SetContent(general.SerializeAsString());
}
- static void FillCreateExternalDataSourceDesc(NKikimrSchemeOp::TExternalDataSourceDescription& externaDataSourceDesc,
- const TString& name,
- const NYql::TCreateExternalDataSourceSettings& settings)
- {
- externaDataSourceDesc.SetName(name);
- externaDataSourceDesc.SetSourceType(settings.SourceType);
- externaDataSourceDesc.SetLocation(settings.Location);
- externaDataSourceDesc.SetInstallation(settings.Installation);
-
- if (settings.AuthMethod == "NONE") {
- externaDataSourceDesc.MutableAuth()->MutableNone();
- }
- }
-
- static void FillParameters(TQueryData::TPtr params, NKikimrMiniKQL::TParams& output) {
+ static void FillParameters(TQueryData::TPtr params, ::google::protobuf::Map<TBasicString<char>, Ydb::TypedValue>* output) {
if (!params) {
return;
}
- if (params->GetParams().empty()) {
- return;
- }
-
- output.MutableType()->SetKind(NKikimrMiniKQL::ETypeKind::Struct);
- auto type = output.MutableType()->MutableStruct();
- auto value = output.MutableValue();
- for (auto& pair : params->GetParams()) {
- auto typeMember = type->AddMember();
- typeMember->SetName(pair.first);
-
- typeMember->MutableType()->CopyFrom(pair.second.GetType());
- value->AddStruct()->CopyFrom(pair.second.GetValue());
- }
+ auto& paramsMap = params->GetParamsProtobuf();
+ output->insert(paramsMap.begin(), paramsMap.end());
}
static bool FillCreateColumnTableDesc(NYql::TKikimrTableMetadataPtr metadata,
diff --git a/ydb/core/kqp/gateway/kqp_metadata_loader.cpp b/ydb/core/kqp/gateway/kqp_metadata_loader.cpp
index d6eaf22669..256ec56975 100644
--- a/ydb/core/kqp/gateway/kqp_metadata_loader.cpp
+++ b/ydb/core/kqp/gateway/kqp_metadata_loader.cpp
@@ -299,6 +299,7 @@ TTableMetadataResult EnrichExternalTable(const TTableMetadataResult& externalTab
tableMeta->ExternalSource.DataSourceLocation = externalDataSource.Metadata->ExternalSource.DataSourceLocation;
tableMeta->ExternalSource.DataSourceInstallation = externalDataSource.Metadata->ExternalSource.DataSourceInstallation;
tableMeta->ExternalSource.DataSourceAuth = externalDataSource.Metadata->ExternalSource.DataSourceAuth;
+ tableMeta->ExternalSource.ServiceAccountIdSignature = externalDataSource.Metadata->ExternalSource.ServiceAccountIdSignature;
return result;
}
@@ -317,6 +318,33 @@ void UpdateMetadataIfSuccess(NYql::TKikimrTableMetadataPtr ptr, size_t idx, cons
}
+void UpdateExternalDataSourceSecretValue(TTableMetadataResult& externalDataSourceMetadata, const TDescribeObjectResponse& objectDescription) {
+ if (objectDescription.Status != Ydb::StatusIds::SUCCESS) {
+ externalDataSourceMetadata.AddIssues(objectDescription.Issues);
+ externalDataSourceMetadata.SetStatus(NYql::YqlStatusFromYdbStatus(objectDescription.Status));
+ } else {
+ externalDataSourceMetadata.Metadata->ExternalSource.ServiceAccountIdSignature = objectDescription.SecretValue;
+ }
+}
+
+NThreading::TFuture<TDescribeObjectResponse> LoadExternalDataSourceSecretValue(const NSchemeCache::TSchemeCacheNavigate::TEntry& entry, const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, TActorSystem* actorSystem) {
+ const auto& authDescription = entry.ExternalDataSourceInfo->Description.GetAuth();
+ switch (authDescription.identity_case()) {
+ case NKikimrSchemeOp::TAuth::kServiceAccount: {
+ const TString& secretId = authDescription.GetServiceAccount().GetSecretName();
+ auto promise = NewPromise<TDescribeObjectResponse>();
+ actorSystem->Register(new TDescribeObjectActor(userToken ? userToken->GetUserSID() : "", secretId, promise));
+ return promise.GetFuture();
+ }
+
+ case NKikimrSchemeOp::TAuth::kNone:
+ return MakeFuture(TDescribeObjectResponse(""));
+
+ case NKikimrSchemeOp::TAuth::IDENTITY_NOT_SET:
+ return MakeFuture(TDescribeObjectResponse(Ydb::StatusIds::BAD_REQUEST, { NYql::TIssue("identity case is not specified") }));
+ }
+}
+
} // anonymous namespace
@@ -580,7 +608,17 @@ NThreading::TFuture<TTableMetadataResult> TKqpTableMetadataLoader::LoadTableMeta
switch (entry.Kind) {
case EKind::KindExternalDataSource: {
- promise.SetValue(GetLoadTableMetadataResult(entry, cluster, table));
+ auto externalDataSourceMetadata = GetLoadTableMetadataResult(entry, cluster, table);
+ if (!externalDataSourceMetadata.Success()) {
+ promise.SetValue(externalDataSourceMetadata);
+ return;
+ }
+ LoadExternalDataSourceSecretValue(entry, userToken, ActorSystem)
+ .Subscribe([promise, externalDataSourceMetadata](const TFuture<TDescribeObjectResponse>& result) mutable
+ {
+ UpdateExternalDataSourceSecretValue(externalDataSourceMetadata, result.GetValue());
+ promise.SetValue(externalDataSourceMetadata);
+ });
}
break;
case EKind::KindExternalTable: {
diff --git a/ydb/core/kqp/gateway/ya.make b/ydb/core/kqp/gateway/ya.make
index 684bc256ec..ad479b21a9 100644
--- a/ydb/core/kqp/gateway/ya.make
+++ b/ydb/core/kqp/gateway/ya.make
@@ -15,6 +15,7 @@ PEERDIR(
ydb/core/kqp/query_data
ydb/core/kqp/gateway/actors
ydb/core/kqp/gateway/behaviour/tablestore
+ ydb/core/kqp/gateway/behaviour/external_data_source
ydb/library/yql/providers/result/expr_nodes
)
diff --git a/ydb/core/kqp/host/kqp_gateway_proxy.cpp b/ydb/core/kqp/host/kqp_gateway_proxy.cpp
index 70cd35bb36..b17d6d8d97 100644
--- a/ydb/core/kqp/host/kqp_gateway_proxy.cpp
+++ b/ydb/core/kqp/host/kqp_gateway_proxy.cpp
@@ -259,6 +259,17 @@ bool ConvertCreateTableSettingsToProto(NYql::TKikimrTableMetadataPtr metadata, Y
return true;
}
+THashMap<TString, TString> GetDefaultFromSequences(NYql::TKikimrTableMetadataPtr metadata) {
+ THashMap<TString, TString> sequences;
+ for(const auto& [name, column]: metadata->Columns) {
+ const auto& seq = column.DefaultFromSequence;
+ if (!seq.empty()) {
+ sequences.emplace(seq, column.Type);
+ }
+ }
+ return sequences;
+}
+
void FillCreateTableColumnDesc(NKikimrSchemeOp::TTableDescription& tableDesc, const TString& name,
NYql::TKikimrTableMetadataPtr metadata)
{
@@ -276,6 +287,11 @@ void FillCreateTableColumnDesc(NKikimrSchemeOp::TTableDescription& tableDesc, co
if (columnIt->second.Families) {
columnDesc.SetFamilyName(*columnIt->second.Families.begin());
}
+
+ const auto& seq = columnIt->second.DefaultFromSequence;
+ if (!seq.empty()) {
+ columnDesc.SetDefaultFromSequence(seq);
+ }
}
for (TString& keyColumn : metadata->KeyColumnNames) {
@@ -419,9 +435,10 @@ public:
NKikimrSchemeOp::TModifyScheme schemeTx;
schemeTx.SetWorkingDir(pathPair.first);
+ const auto sequences = GetDefaultFromSequences(metadata);
NKikimrSchemeOp::TTableDescription* tableDesc = nullptr;
- if (!metadata->Indexes.empty()) {
+ if (!metadata->Indexes.empty() || !sequences.empty()) {
schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateIndexedTable);
tableDesc = schemeTx.MutableCreateIndexedTable()->MutableTableDescription();
for (const auto& index : metadata->Indexes) {
@@ -445,6 +462,21 @@ public:
}
}
FillCreateTableColumnDesc(*tableDesc, pathPair.second, metadata);
+ for(const auto& [seq, seqType]: sequences) {
+ auto seqDesc = schemeTx.MutableCreateIndexedTable()->MutableSequenceDescription()->Add();
+ seqDesc->SetName(seq);
+ const auto type = to_lower(seqType);
+ seqDesc->SetMinValue(1);
+ if (type == "int64") {
+ seqDesc->SetMaxValue(9223372036854775807);
+ } else if (type == "int32") {
+ seqDesc->SetMaxValue(2147483647);
+ } else if (type == "int16") {
+ seqDesc->SetMaxValue(32767);
+ }
+ seqDesc->SetCycle(false);
+ }
+
} else {
schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateTable);
tableDesc = schemeTx.MutableCreateTable();
@@ -608,26 +640,14 @@ public:
FORWARD_ENSURE_NO_PREPARE(DropExternalTable, cluster, settings);
}
- TFuture<TGenericResult> CreateExternalDataSource(const TString& cluster,
- const TCreateExternalDataSourceSettings& settings, bool createDir) override
- {
- FORWARD_ENSURE_NO_PREPARE(CreateExternalDataSource, cluster, settings, createDir);
- }
-
- TFuture<TGenericResult> AlterExternalDataSource(const TString& cluster,
- const TAlterExternalDataSourceSettings& settings) override
- {
- FORWARD_ENSURE_NO_PREPARE(AlterExternalDataSource, cluster, settings);
+ TVector<TString> GetCollectedSchemeData() override {
+ return Gateway->GetCollectedSchemeData();
}
- TFuture<TGenericResult> DropExternalDataSource(const TString& cluster,
- const TDropExternalDataSourceSettings& settings) override
+ TFuture<TExecuteLiteralResult> ExecuteLiteral(const TString& program,
+ const NKikimrMiniKQL::TType& resultType, NKikimr::NKqp::TTxAllocatorState::TPtr txAlloc) override
{
- FORWARD_ENSURE_NO_PREPARE(DropExternalDataSource, cluster, settings);
- }
-
- TVector<TString> GetCollectedSchemeData() override {
- return Gateway->GetCollectedSchemeData();
+ return Gateway->ExecuteLiteral(program, resultType, txAlloc);
}
private:
diff --git a/ydb/core/kqp/host/kqp_host.cpp b/ydb/core/kqp/host/kqp_host.cpp
index 8738792815..1ce9e72f6a 100644
--- a/ydb/core/kqp/host/kqp_host.cpp
+++ b/ydb/core/kqp/host/kqp_host.cpp
@@ -893,13 +893,14 @@ public:
TKikimrConfiguration::TPtr config, IModuleResolver::TPtr moduleResolver,
NYql::IHTTPGateway::TPtr httpGateway,
const NKikimr::NMiniKQL::IFunctionRegistry* funcRegistry, bool keepConfigChanges,
- bool isInternalCall)
+ bool isInternalCall, NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory)
: Gateway(gateway)
, Cluster(cluster)
, ExprCtx(new TExprContext())
, ModuleResolver(moduleResolver)
, KeepConfigChanges(keepConfigChanges)
, IsInternalCall(isInternalCall)
+ , CredentialsFactory(std::move(credentialsFactory))
, HttpGateway(std::move(httpGateway))
, SessionCtx(new TKikimrSessionContext(funcRegistry, config, TAppData::TimeProvider, TAppData::RandomProvider))
, ClustersMap({{Cluster, TString(KikimrProviderName)}})
@@ -988,30 +989,30 @@ public:
});
}
- IAsyncQueryResultPtr ExecuteYqlScript(const TKqpQueryRef& script, NKikimrMiniKQL::TParams&& parameters,
+ IAsyncQueryResultPtr ExecuteYqlScript(const TKqpQueryRef& script, const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& parameters,
const TExecScriptSettings& settings) override
{
return CheckedProcessQuery(*ExprCtx,
- [this, &script, parameters = std::move(parameters), settings] (TExprContext& ctx) mutable {
- return ExecuteYqlScriptInternal(script, std::move(parameters), settings, ctx);
+ [this, &script, parameters, settings] (TExprContext& ctx) mutable {
+ return ExecuteYqlScriptInternal(script, parameters, settings, ctx);
});
}
- TQueryResult SyncExecuteYqlScript(const TKqpQueryRef& script, NKikimrMiniKQL::TParams&& parameters,
+ TQueryResult SyncExecuteYqlScript(const TKqpQueryRef& script, const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& parameters,
const TExecScriptSettings& settings) override
{
return CheckedSyncProcessQuery(
- [this, &script, parameters = std::move(parameters), settings] () mutable {
- return ExecuteYqlScript(script, std::move(parameters), settings);
+ [this, &script, parameters, settings] () mutable {
+ return ExecuteYqlScript(script, parameters, settings);
});
}
- IAsyncQueryResultPtr StreamExecuteYqlScript(const TKqpQueryRef& script, NKikimrMiniKQL::TParams&& parameters,
+ IAsyncQueryResultPtr StreamExecuteYqlScript(const TKqpQueryRef& script, const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& parameters,
const NActors::TActorId& target, const TExecScriptSettings& settings) override
{
return CheckedProcessQuery(*ExprCtx,
- [this, &script, parameters = std::move(parameters), target, settings](TExprContext& ctx) mutable {
- return StreamExecuteYqlScriptInternal(script, std::move(parameters), target, settings, ctx);
+ [this, &script, parameters, target, settings](TExprContext& ctx) mutable {
+ return StreamExecuteYqlScriptInternal(script, parameters, target, settings, ctx);
});
}
@@ -1401,7 +1402,7 @@ private:
SessionCtx, *ExecuteCtx);
}
- IAsyncQueryResultPtr ExecuteYqlScriptInternal(const TKqpQueryRef& script, NKikimrMiniKQL::TParams&& parameters,
+ IAsyncQueryResultPtr ExecuteYqlScriptInternal(const TKqpQueryRef& script, const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& parameters,
const TExecScriptSettings& settings, TExprContext& ctx)
{
SetupYqlTransformer(EKikimrQueryType::YqlScript);
@@ -1417,15 +1418,13 @@ private:
return nullptr;
}
- if (!ParseParameters(std::move(parameters), *(SessionCtx->Query().QueryData), ctx)) {
- return nullptr;
- }
+ (SessionCtx->Query().QueryData)->ParseParameters(parameters);
return MakeIntrusive<TAsyncExecuteYqlResult>(scriptExpr.Get(), ctx, *YqlTransformer, Cluster, SessionCtx,
*ResultProviderConfig, *PlanBuilder, sqlVersion);
}
- IAsyncQueryResultPtr StreamExecuteYqlScriptInternal(const TKqpQueryRef& script, NKikimrMiniKQL::TParams&& parameters,
+ IAsyncQueryResultPtr StreamExecuteYqlScriptInternal(const TKqpQueryRef& script, const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& parameters,
const NActors::TActorId& target,const TExecScriptSettings& settings, TExprContext& ctx)
{
SetupYqlTransformer(EKikimrQueryType::YqlScriptStreaming);
@@ -1443,9 +1442,7 @@ private:
return nullptr;
}
- if (!ParseParameters(std::move(parameters), *(SessionCtx->Query().QueryData), ctx)) {
- return nullptr;
- }
+ (SessionCtx->Query().QueryData)->ParseParameters(parameters);
return MakeIntrusive<TAsyncExecuteYqlResult>(scriptExpr.Get(), ctx, *YqlTransformer, Cluster, SessionCtx,
*ResultProviderConfig, *PlanBuilder, sqlVersion);
@@ -1497,7 +1494,7 @@ private:
auto state = MakeIntrusive<NYql::TS3State>();
state->Types = TypesCtx.Get();
state->FunctionRegistry = FuncRegistry;
- state->CredentialsFactory = nullptr; // TODO
+ state->CredentialsFactory = CredentialsFactory;
NYql::TS3GatewayConfig cfg;
state->Configuration->Init(cfg, TypesCtx);
@@ -1530,7 +1527,7 @@ private:
auto queryExecutor = MakeIntrusive<TKqpQueryExecutor>(Gateway, Cluster, SessionCtx, KqpRunner);
auto kikimrDataSource = CreateKikimrDataSource(*FuncRegistry, *TypesCtx, gatewayProxy, SessionCtx,
ExternalSourceFactory, IsInternalCall);
- auto kikimrDataSink = CreateKikimrDataSink(*FuncRegistry, *TypesCtx, gatewayProxy, SessionCtx, queryExecutor);
+ auto kikimrDataSink = CreateKikimrDataSink(*FuncRegistry, *TypesCtx, gatewayProxy, SessionCtx, ExternalSourceFactory, queryExecutor);
FillSettings.AllResultsBytesLimit = Nothing();
FillSettings.RowsLimitPerWrite = SessionCtx->Config()._ResultRowsLimit.Get().GetRef();
@@ -1574,7 +1571,7 @@ private:
.Add(TLogExprTransformer::Sync("YqlTransformer", NYql::NLog::EComponent::ProviderKqp,
NYql::NLog::ELevel::TRACE), "LogYqlTransform")
.AddPreTypeAnnotation()
- // TODO: .AddExpressionEvaluation(*FuncRegistry)
+ .AddExpressionEvaluation(*FuncRegistry)
.Add(new TFailExpressionEvaluation(), "FailExpressionEvaluation")
.AddIOAnnotation()
.AddTypeAnnotation()
@@ -1635,6 +1632,7 @@ private:
IModuleResolver::TPtr ModuleResolver;
bool KeepConfigChanges;
bool IsInternalCall;
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr CredentialsFactory;
NYql::IHTTPGateway::TPtr HttpGateway;
TIntrusivePtr<TKikimrSessionContext> SessionCtx;
@@ -1673,10 +1671,11 @@ Ydb::Table::QueryStatsCollection::Mode GetStatsMode(NYql::EKikimrStatsMode stats
TIntrusivePtr<IKqpHost> CreateKqpHost(TIntrusivePtr<IKqpGateway> gateway,
const TString& cluster, const TString& database, TKikimrConfiguration::TPtr config, IModuleResolver::TPtr moduleResolver,
- NYql::IHTTPGateway::TPtr httpGateway, const NKikimr::NMiniKQL::IFunctionRegistry* funcRegistry, bool keepConfigChanges, bool isInternalCall)
+ NYql::IHTTPGateway::TPtr httpGateway, const NKikimr::NMiniKQL::IFunctionRegistry* funcRegistry, bool keepConfigChanges, bool isInternalCall,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory)
{
return MakeIntrusive<TKqpHost>(gateway, cluster, database, config, moduleResolver, std::move(httpGateway), funcRegistry,
- keepConfigChanges, isInternalCall);
+ keepConfigChanges, isInternalCall, std::move(credentialsFactory));
}
} // namespace NKqp
diff --git a/ydb/core/kqp/host/kqp_host.h b/ydb/core/kqp/host/kqp_host.h
index b5fc46beb9..4b4887f109 100644
--- a/ydb/core/kqp/host/kqp_host.h
+++ b/ydb/core/kqp/host/kqp_host.h
@@ -3,6 +3,7 @@
#include <ydb/core/kqp/gateway/kqp_gateway.h>
#include <ydb/core/kqp/provider/yql_kikimr_provider.h>
#include <ydb/library/yql/providers/common/http_gateway/yql_http_gateway.h>
+#include <ydb/library/yql/providers/common/token_accessor/client/factory.h>
namespace NKikimr {
namespace NKqp {
@@ -88,18 +89,19 @@ public:
virtual IAsyncQueryResultPtr ExplainYqlScript(const TKqpQueryRef& script) = 0;
virtual TQueryResult SyncExplainYqlScript(const TKqpQueryRef& script) = 0;
- virtual IAsyncQueryResultPtr ExecuteYqlScript(const TKqpQueryRef& script, NKikimrMiniKQL::TParams&& parameters,
+ virtual IAsyncQueryResultPtr ExecuteYqlScript(const TKqpQueryRef& script, const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& parameters,
const TExecScriptSettings& settings) = 0;
- virtual TQueryResult SyncExecuteYqlScript(const TKqpQueryRef& script, NKikimrMiniKQL::TParams&& parameters,
+ virtual TQueryResult SyncExecuteYqlScript(const TKqpQueryRef& script, const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& parameters,
const TExecScriptSettings& settings) = 0;
- virtual IAsyncQueryResultPtr StreamExecuteYqlScript(const TKqpQueryRef& script, NKikimrMiniKQL::TParams&& parameters,
+ virtual IAsyncQueryResultPtr StreamExecuteYqlScript(const TKqpQueryRef& script, const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& parameters,
const NActors::TActorId& target, const TExecScriptSettings& settings) = 0;
};
TIntrusivePtr<IKqpHost> CreateKqpHost(TIntrusivePtr<IKqpGateway> gateway,
const TString& cluster, const TString& database, NYql::TKikimrConfiguration::TPtr config, NYql::IModuleResolver::TPtr moduleResolver,
- NYql::IHTTPGateway::TPtr httpGateway, const NKikimr::NMiniKQL::IFunctionRegistry* funcRegistry = nullptr, bool keepConfigChanges = false, bool isInternalCall = false);
+ NYql::IHTTPGateway::TPtr httpGateway, const NKikimr::NMiniKQL::IFunctionRegistry* funcRegistry = nullptr, bool keepConfigChanges = false, bool isInternalCall = false,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory = nullptr);
} // namespace NKqp
} // namespace NKikimr
diff --git a/ydb/core/kqp/host/kqp_host_impl.h b/ydb/core/kqp/host/kqp_host_impl.h
index 4cc155552d..b2972b0176 100644
--- a/ydb/core/kqp/host/kqp_host_impl.h
+++ b/ydb/core/kqp/host/kqp_host_impl.h
@@ -243,7 +243,7 @@ public:
};
TIntrusivePtr<IKqpRunner> CreateKqpRunner(TIntrusivePtr<IKqpGateway> gateway, const TString& cluster,
- TIntrusivePtr<NYql::TTypeAnnotationContext> typesCtx, TIntrusivePtr<NYql::TKikimrSessionContext> sessionCtx,
+ const TIntrusivePtr<NYql::TTypeAnnotationContext>& typesCtx, TIntrusivePtr<NYql::TKikimrSessionContext> sessionCtx,
const NMiniKQL::IFunctionRegistry& funcRegistry,
TIntrusivePtr<ITimeProvider> timeProvider, TIntrusivePtr<IRandomProvider> randomProvider);
diff --git a/ydb/core/kqp/host/kqp_runner.cpp b/ydb/core/kqp/host/kqp_runner.cpp
index d9f7c0fe34..ecbffe376e 100644
--- a/ydb/core/kqp/host/kqp_runner.cpp
+++ b/ydb/core/kqp/host/kqp_runner.cpp
@@ -14,6 +14,7 @@
#include <ydb/library/yql/core/type_ann/type_ann_expr.h>
#include <ydb/library/yql/utils/log/log.h>
#include <ydb/library/yql/core/services/yql_transform_pipeline.h>
+#include <ydb/library/yql/core/yql_opt_proposed_by_data.h>
#include <util/generic/is_in.h>
@@ -58,7 +59,7 @@ private:
class TKqpRunner : public IKqpRunner {
public:
TKqpRunner(TIntrusivePtr<IKqpGateway> gateway, const TString& cluster,
- TIntrusivePtr<TTypeAnnotationContext> typesCtx, TIntrusivePtr<TKikimrSessionContext> sessionCtx,
+ const TIntrusivePtr<TTypeAnnotationContext>& typesCtx, TIntrusivePtr<TKikimrSessionContext> sessionCtx,
const NMiniKQL::IFunctionRegistry& funcRegistry,
TIntrusivePtr<ITimeProvider> timeProvider, TIntrusivePtr<IRandomProvider> randomProvider)
: Gateway(gateway)
@@ -82,13 +83,16 @@ public:
PhysicalOptimizeTransformer = CreateKqpQueryBlocksTransformer(TTransformationPipeline(typesCtx)
.AddServiceTransformers()
.Add(TLogExprTransformer::Sync("PhysicalOptimizeTransformer", logComp, logLevel), "LogPhysicalOptimize")
+ .AddExpressionEvaluation(FuncRegistry)
.AddTypeAnnotationTransformer(CreateKqpTypeAnnotationTransformer(Cluster, sessionCtx->TablesPtr(),
*typesCtx, Config))
.Add(CreateKqpCheckQueryTransformer(), "CheckKqlQuery")
.AddPostTypeAnnotation(/* forSubgraph */ true)
.AddCommonOptimization()
.Add(CreateKqpLogOptTransformer(OptimizeCtx, *typesCtx, Config), "LogicalOptimize")
- .Add(CreateKqpPhyOptTransformer(OptimizeCtx, *typesCtx), "PhysicalOptimize")
+ .Add(CreateLogicalDataProposalsInspector(*typesCtx), "ProvidersLogicalOptimize")
+ .Add(CreateKqpPhyOptTransformer(OptimizeCtx, *typesCtx), "KqpPhysicalOptimize")
+ .Add(CreatePhysicalDataProposalsInspector(*typesCtx), "ProvidersPhysicalOptimize")
.Add(CreateKqpFinalizingOptTransformer(OptimizeCtx), "FinalizingOptimize")
.Add(CreateKqpQueryPhasesTransformer(), "QueryPhases")
.Add(CreateKqpQueryEffectsTransformer(OptimizeCtx), "QueryEffects")
@@ -347,7 +351,7 @@ private:
} // namespace
TIntrusivePtr<IKqpRunner> CreateKqpRunner(TIntrusivePtr<IKqpGateway> gateway, const TString& cluster,
- TIntrusivePtr<TTypeAnnotationContext> typesCtx, TIntrusivePtr<TKikimrSessionContext> sessionCtx,
+ const TIntrusivePtr<TTypeAnnotationContext>& typesCtx, TIntrusivePtr<TKikimrSessionContext> sessionCtx,
const NMiniKQL::IFunctionRegistry& funcRegistry,
TIntrusivePtr<ITimeProvider> timeProvider, TIntrusivePtr<IRandomProvider> randomProvider)
{
diff --git a/ydb/core/kqp/host/kqp_type_ann.cpp b/ydb/core/kqp/host/kqp_type_ann.cpp
index 9d34c2f466..d00d3e6da7 100644
--- a/ydb/core/kqp/host/kqp_type_ann.cpp
+++ b/ydb/core/kqp/host/kqp_type_ann.cpp
@@ -303,7 +303,8 @@ TStatus AnnotateReadTableRanges(const TExprNode::TPtr& node, TExprContext& ctx,
size_t argCount = (olapTable || index) ? 6 : 5;
- if (!EnsureArgsCount(*node, argCount, ctx)) {
+ // prefix
+ if (!EnsureMinArgsCount(*node, argCount, ctx) && EnsureMaxArgsCount(*node, argCount + 1, ctx)) {
return TStatus::Error;
}
@@ -1409,7 +1410,7 @@ TStatus AnnotateSequencerConnection(const TExprNode::TPtr& node, TExprContext& c
node->SetTypeAnn(ctx.MakeType<TStreamExprType>(rowType));
return TStatus::Ok;
-}
+}
TStatus AnnotateStreamLookupConnection(const TExprNode::TPtr& node, TExprContext& ctx, const TString& cluster,
const TKikimrTablesData& tablesData, bool withSystemColumns) {
@@ -1470,6 +1471,32 @@ TStatus AnnotateStreamLookupConnection(const TExprNode::TPtr& node, TExprContext
return TStatus::Ok;
}
+TStatus AnnotateExternalEffect(const TExprNode::TPtr& node, TExprContext& ctx) {
+ if (!EnsureArgsCount(*node, 1, ctx)) {
+ return TStatus::Error;
+ }
+
+ node->SetTypeAnn(node->Child(TKqlExternalEffect::idx_Input)->GetTypeAnn());
+ return TStatus::Ok;
+}
+
+TStatus AnnotateKqpSinkEffect(const TExprNode::TPtr& node, TExprContext& ctx) {
+ if (!EnsureArgsCount(*node, 2, ctx)) {
+ return TStatus::Error;
+ }
+
+ if (!TDqStageBase::Match(node->Child(TKqpSinkEffect::idx_Stage))) {
+ return TStatus::Error;
+ }
+
+ if (!EnsureAtom(*node->Child(TKqpSinkEffect::idx_SinkIndex), ctx)) {
+ return TStatus::Error;
+ }
+
+ node->SetTypeAnn(node->Child(TKqpSinkEffect::idx_Stage)->GetTypeAnn());
+ return TStatus::Ok;
+}
+
} // namespace
TAutoPtr<IGraphTransformer> CreateKqpTypeAnnotationTransformer(const TString& cluster,
@@ -1608,6 +1635,13 @@ TAutoPtr<IGraphTransformer> CreateKqpTypeAnnotationTransformer(const TString& cl
return AnnotateKqpSourceSettings(input, ctx, cluster, *tablesData, config->SystemColumnsEnabled());
}
+ if (TKqlExternalEffect::Match(input.Get())) {
+ return AnnotateExternalEffect(input, ctx);
+ }
+
+ if (TKqpSinkEffect::Match(input.Get())) {
+ return AnnotateKqpSinkEffect(input, ctx);
+ }
return dqTransformer->Transform(input, output, ctx);
});
diff --git a/ydb/core/kqp/node_service/kqp_node_service.cpp b/ydb/core/kqp/node_service/kqp_node_service.cpp
index 6e70cfdfc5..4bc3e82e9b 100644
--- a/ydb/core/kqp/node_service/kqp_node_service.cpp
+++ b/ydb/core/kqp/node_service/kqp_node_service.cpp
@@ -14,7 +14,7 @@
#include <ydb/core/kqp/runtime/kqp_read_actor.h>
#include <ydb/core/kqp/common/kqp_resolve.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/monlib/service/pages/templates.h>
@@ -146,6 +146,9 @@ public:
if (config.HasIteratorReadsRetrySettings()) {
SetIteratorReadsRetrySettings(config.GetIteratorReadsRetrySettings());
}
+ if (config.HasIteratorReadQuotaSettings()) {
+ SetIteratorReadsQuotaSettings(config.GetIteratorReadQuotaSettings());
+ }
}
void Bootstrap() {
@@ -265,10 +268,15 @@ private:
}
};
+ static constexpr double SecToUsec = 1e6;
+
void HandleWork(TEvKqpNode::TEvStartKqpTasksRequest::TPtr& ev) {
NWilson::TSpan sendTasksSpan(TWilsonKqp::KqpNodeSendTasks, NWilson::TTraceId(ev->TraceId), "KqpNode.SendTasks", NWilson::EFlags::AUTO_END);
+ NHPTimer::STime workHandlerStart = ev->SendTime;
auto& msg = ev->Get()->Record;
+ Counters->NodeServiceStartEventDelivery->Collect(NHPTimer::GetTimePassed(&workHandlerStart) * SecToUsec);
+
auto requester = ev->Sender;
ui64 txId = msg.GetTxId();
@@ -500,6 +508,8 @@ private:
Send(request.Executer, reply.Release(), IEventHandle::FlagTrackDelivery, txId);
+ Counters->NodeServiceProcessTime->Collect(NHPTimer::GetTimePassed(&workHandlerStart) * SecToUsec);
+
bucket.NewRequest(txId, requester, std::move(request), memoryPool);
}
@@ -510,11 +520,14 @@ private:
}
void HandleWork(TEvKqpNode::TEvCancelKqpTasksRequest::TPtr& ev) {
+ THPTimer timer;
ui64 txId = ev->Get()->Record.GetTxId();
auto& reason = ev->Get()->Record.GetReason();
LOG_W("TxId: " << txId << ", terminate transaction, reason: " << reason);
TerminateTx(txId, reason);
+
+ Counters->NodeServiceProcessCancelTime->Collect(timer.Passed() * SecToUsec);
}
void TerminateTx(ui64 txId, const TString& reason) {
@@ -586,10 +599,18 @@ private:
SetIteratorReadsRetrySettings(event.GetConfig().GetTableServiceConfig().GetIteratorReadsRetrySettings());
}
+ if (event.GetConfig().GetTableServiceConfig().HasIteratorReadQuotaSettings()) {
+ SetIteratorReadsQuotaSettings(event.GetConfig().GetTableServiceConfig().GetIteratorReadQuotaSettings());
+ }
+
auto responseEv = MakeHolder<NConsole::TEvConsole::TEvConfigNotificationResponse>(event);
Send(ev->Sender, responseEv.Release(), IEventHandle::FlagTrackDelivery, ev->Cookie);
}
+ void SetIteratorReadsQuotaSettings(const NKikimrConfig::TTableServiceConfig::TIteratorReadQuotaSettings& settings) {
+ SetDefaultIteratorQuotaSettings(settings.GetMaxRows(), settings.GetMaxBytes());
+ }
+
void SetIteratorReadsRetrySettings(const NKikimrConfig::TTableServiceConfig::TIteratorReadsRetrySettings& settings) {
auto ptr = MakeIntrusive<NKikimr::NKqp::TIteratorReadBackoffSettings>();
ptr->StartRetryDelay = TDuration::MilliSeconds(settings.GetStartDelayMs());
diff --git a/ydb/core/kqp/node_service/kqp_node_ut.cpp b/ydb/core/kqp/node_service/kqp_node_ut.cpp
index 6b2479aeeb..e4380cf062 100644
--- a/ydb/core/kqp/node_service/kqp_node_ut.cpp
+++ b/ydb/core/kqp/node_service/kqp_node_ut.cpp
@@ -99,6 +99,11 @@ NKikimrConfig::TTableServiceConfig MakeKqpResourceManagerConfig() {
config.MutableResourceManager()->SetPublishStatisticsIntervalSec(0);
config.MutableResourceManager()->SetEnableInstantMkqlMemoryAlloc(true);
+ auto* infoExchangerRetrySettings = config.MutableResourceManager()->MutableInfoExchangerSettings();
+ auto* exchangerSettings = infoExchangerRetrySettings->MutableExchangerSettings();
+ exchangerSettings->SetStartDelayMs(10);
+ exchangerSettings->SetMaxDelayMs(10);
+
return config;
}
@@ -180,7 +185,7 @@ public:
WaitForBootstrap();
auto httpGateway = NYql::IHTTPGateway::Make();
- auto asyncIoFactory = CreateKqpAsyncIoFactory(KqpCounters, httpGateway);
+ auto asyncIoFactory = CreateKqpAsyncIoFactory(KqpCounters, httpGateway, nullptr);
auto kqpNode = CreateKqpNodeService(config, KqpCounters, CompFactory.Get(), asyncIoFactory);
KqpNodeActorId = Runtime->Register(kqpNode);
Runtime->EnableScheduleForActor(KqpNodeActorId, true);
diff --git a/ydb/core/kqp/opt/kqp_opt.cpp b/ydb/core/kqp/opt/kqp_opt.cpp
index 8bea802beb..50ece581fd 100644
--- a/ydb/core/kqp/opt/kqp_opt.cpp
+++ b/ydb/core/kqp/opt/kqp_opt.cpp
@@ -104,4 +104,18 @@ TKqpTable BuildTableMeta(const TKikimrTableDescription& tableDesc, const TPositi
return BuildTableMeta(*tableDesc.Metadata, pos, ctx);
}
+bool IsBuiltEffect(const TExprBase& effect) {
+ // Stage with effect output
+ if (effect.Maybe<TDqOutput>()) {
+ return true;
+ }
+
+ // Stage with sink effect
+ if (effect.Maybe<TKqpSinkEffect>()) {
+ return true;
+ }
+
+ return false;
+}
+
} // namespace NKikimr::NKqp::NOpt
diff --git a/ydb/core/kqp/opt/kqp_opt_build_txs.cpp b/ydb/core/kqp/opt/kqp_opt_build_txs.cpp
index 162554768a..3054575846 100644
--- a/ydb/core/kqp/opt/kqp_opt_build_txs.cpp
+++ b/ydb/core/kqp/opt/kqp_opt_build_txs.cpp
@@ -21,9 +21,9 @@ using TStatus = IGraphTransformer::TStatus;
namespace {
-TAutoPtr<NYql::IGraphTransformer> CreateKqpBuildPhyStagesTransformer(bool allowDependantConsumers) {
- bool useWideChannels = false;
- return NDq::CreateDqBuildPhyStagesTransformer(allowDependantConsumers, useWideChannels);
+TAutoPtr<NYql::IGraphTransformer> CreateKqpBuildPhyStagesTransformer(bool allowDependantConsumers, TTypeAnnotationContext& typesCtx) {
+ EChannelMode mode = EChannelMode::CHANNEL_SCALAR;
+ return NDq::CreateDqBuildPhyStagesTransformer(allowDependantConsumers, typesCtx, mode);
}
class TKqpBuildTxTransformer : public TSyncTransformerBase {
@@ -390,6 +390,7 @@ private:
.Body(ctx.ReplaceNodes(stage.Program().Body().Ptr(), argsMap))
.Build()
.Settings(stage.Settings())
+ .Outputs(stage.Outputs())
.Done();
}
@@ -471,7 +472,7 @@ public:
.Add(TExprLogTransformer::Sync("TxOpt", NYql::NLog::EComponent::ProviderKqp, NYql::NLog::ELevel::TRACE), "TxOpt")
.Add(*TypeAnnTransformer, "TypeAnnotation")
.AddPostTypeAnnotation(/* forSubgraph */ true)
- .Add(CreateKqpBuildPhyStagesTransformer(/* allowDependantConsumers */ false), "BuildPhysicalStages")
+ .Add(CreateKqpBuildPhyStagesTransformer(/* allowDependantConsumers */ false, typesCtx), "BuildPhysicalStages")
.Add(*BuildTxTransformer, "BuildPhysicalTx")
.Add(CreateKqpTxPeepholeTransformer(TypeAnnTransformer.Get(), typesCtx, config, /* withFinalStageRules */ false), "Peephole")
.Build(false);
@@ -481,7 +482,7 @@ public:
.Add(TExprLogTransformer::Sync("TxOpt", NYql::NLog::EComponent::ProviderKqp, NYql::NLog::ELevel::TRACE), "TxOpt")
.Add(*TypeAnnTransformer, "TypeAnnotation")
.AddPostTypeAnnotation(/* forSubgraph */ true)
- .Add(CreateKqpBuildPhyStagesTransformer(config->SpillingEnabled()), "BuildPhysicalStages")
+ .Add(CreateKqpBuildPhyStagesTransformer(config->SpillingEnabled(), typesCtx), "BuildPhysicalStages")
.Add(*BuildTxTransformer, "BuildPhysicalTx")
.Add(CreateKqpTxPeepholeTransformer(TypeAnnTransformer.Get(), typesCtx, config, /* withFinalStageRules */ false), "Peephole")
.Build(false);
diff --git a/ydb/core/kqp/opt/kqp_opt_effects.cpp b/ydb/core/kqp/opt/kqp_opt_effects.cpp
index 69db639676..74b880ac3d 100644
--- a/ydb/core/kqp/opt/kqp_opt_effects.cpp
+++ b/ydb/core/kqp/opt/kqp_opt_effects.cpp
@@ -1,6 +1,7 @@
#include "kqp_opt_impl.h"
#include <ydb/library/yql/core/yql_opt_utils.h>
+#include <ydb/library/yql/dq/integration/yql_dq_integration.h>
namespace NKikimr::NKqp::NOpt {
@@ -363,63 +364,102 @@ bool BuildDeleteRowsEffect(const TKqlDeleteRows& node, TExprContext& ctx, const
return true;
}
-bool BuildEffects(TPositionHandle pos, const TVector<TKqlTableEffect>& effects,
- TExprContext& ctx, const TKqpOptimizeContext& kqpCtx, TVector<TExprBase>& builtEffects)
+bool BuildEffects(TPositionHandle pos, const TVector<TExprBase>& effects,
+ TExprContext& ctx, const TKqpOptimizeContext& kqpCtx,
+ TVector<TExprBase>& builtEffects)
{
TVector<TCoArgument> inputArgs;
TVector<TExprBase> inputs;
TVector<TExprBase> newEffects;
+ TVector<TExprBase> newSinkEffects;
newEffects.reserve(effects.size());
+ newSinkEffects.reserve(effects.size());
for (const auto& effect : effects) {
- TCoArgument inputArg = Build<TCoArgument>(ctx, pos)
- .Name("inputArg")
- .Done();
-
- TMaybeNode<TExprBase> input;
TMaybeNode<TExprBase> newEffect;
+ bool sinkEffect = false;
+ YQL_ENSURE(effect.Maybe<TKqlEffectBase>());
+ if (effect.Maybe<TKqlTableEffect>()) {
+ TMaybeNode<TExprBase> input;
+ TCoArgument inputArg = Build<TCoArgument>(ctx, pos)
+ .Name("inputArg")
+ .Done();
+
+ if (auto maybeUpsertRows = effect.Maybe<TKqlUpsertRows>()) {
+ if (!BuildUpsertRowsEffect(maybeUpsertRows.Cast(), ctx, kqpCtx, inputArg, input, newEffect)) {
+ return false;
+ }
+ }
- if (auto maybeUpsertRows = effect.Maybe<TKqlUpsertRows>()) {
- if (!BuildUpsertRowsEffect(maybeUpsertRows.Cast(), ctx, kqpCtx, inputArg, input, newEffect)) {
- return false;
+ if (auto maybeDeleteRows = effect.Maybe<TKqlDeleteRows>()) {
+ if (!BuildDeleteRowsEffect(maybeDeleteRows.Cast(), ctx, kqpCtx, inputArg, input, newEffect)) {
+ return false;
+ }
}
- }
- if (auto maybeDeleteRows = effect.Maybe<TKqlDeleteRows>()) {
- if (!BuildDeleteRowsEffect(maybeDeleteRows.Cast(), ctx, kqpCtx, inputArg, input, newEffect)) {
+ if (input) {
+ inputArgs.push_back(inputArg);
+ inputs.push_back(input.Cast());
+ }
+ } else if (auto maybeExt = effect.Maybe<TKqlExternalEffect>()) {
+ sinkEffect = true;
+ TKqlExternalEffect externalEffect = maybeExt.Cast();
+ TExprBase input = externalEffect.Input();
+ auto maybeStage = input.Maybe<TDqStageBase>();
+ if (!maybeStage) {
return false;
}
+ auto stage = maybeStage.Cast();
+ const auto outputsList = stage.Outputs();
+ if (!outputsList) {
+ return false;
+ }
+ TDqStageOutputsList outputs = outputsList.Cast();
+ YQL_ENSURE(outputs.Size() == 1, "Multiple sinks are not supported yet");
+ TDqOutputAnnotationBase output = outputs.Item(0);
+ if (!output.Maybe<TDqSink>()) {
+ return false;
+ }
+ newEffect = Build<TKqpSinkEffect>(ctx, effect.Pos())
+ .Stage(maybeStage.Cast().Ptr())
+ .SinkIndex().Build("0")
+ .Done();
}
YQL_ENSURE(newEffect);
- newEffects.push_back(newEffect.Cast());
-
- if (input) {
- inputArgs.push_back(inputArg);
- inputs.push_back(input.Cast());
+ if (sinkEffect) {
+ newSinkEffects.push_back(newEffect.Cast());
+ } else {
+ newEffects.push_back(newEffect.Cast());
}
}
- auto stage = Build<TDqStage>(ctx, pos)
- .Inputs()
- .Add(inputs)
- .Build()
- .Program()
- .Args(inputArgs)
- .Body<TKqpEffects>()
- .Add(newEffects)
+ if (!newEffects.empty()) {
+ auto stage = Build<TDqStage>(ctx, pos)
+ .Inputs()
+ .Add(inputs)
.Build()
- .Build()
- .Settings().Build()
- .Done();
-
- for (ui32 i = 0; i < newEffects.size(); ++i) {
- auto effect = Build<TDqOutput>(ctx, pos)
- .Stage(stage)
- .Index().Build(ToString(0))
+ .Program()
+ .Args(inputArgs)
+ .Body<TKqpEffects>()
+ .Add(newEffects)
+ .Build()
+ .Build()
+ .Settings().Build()
.Done();
- builtEffects.push_back(effect);
+ for (ui32 i = 0; i < newEffects.size(); ++i) {
+ auto effect = Build<TDqOutput>(ctx, pos)
+ .Stage(stage)
+ .Index().Build(ToString(0))
+ .Done();
+
+ builtEffects.push_back(effect);
+ }
+ }
+
+ if (!newSinkEffects.empty()) {
+ builtEffects.insert(builtEffects.end(), newSinkEffects.begin(), newSinkEffects.end());
}
return true;
@@ -432,20 +472,20 @@ TMaybeNode<TKqlQuery> BuildEffects(const TKqlQuery& query, TExprContext& ctx,
TVector<TExprBase> builtEffects;
if constexpr (GroupEffectsByTable) {
- TMap<TStringBuf, TVector<TKqlTableEffect>> tableEffectsMap;
+ TMap<TStringBuf, TVector<TExprBase>> tableEffectsMap;
for (const auto& maybeEffect : query.Effects()) {
if (const auto maybeList = maybeEffect.Maybe<TExprList>()) {
for (const auto effect : maybeList.Cast()) {
YQL_ENSURE(effect.Maybe<TKqlTableEffect>());
auto tableEffect = effect.Cast<TKqlTableEffect>();
- tableEffectsMap[tableEffect.Table().Path()].push_back(tableEffect);
+ tableEffectsMap[tableEffect.Table().Path()].push_back(effect);
}
} else {
YQL_ENSURE(maybeEffect.Maybe<TKqlTableEffect>());
auto tableEffect = maybeEffect.Cast<TKqlTableEffect>();
- tableEffectsMap[tableEffect.Table().Path()].push_back(tableEffect);
+ tableEffectsMap[tableEffect.Table().Path()].push_back(maybeEffect);
}
}
@@ -460,18 +500,12 @@ TMaybeNode<TKqlQuery> BuildEffects(const TKqlQuery& query, TExprContext& ctx,
for (const auto& maybeEffect : query.Effects()) {
if (const auto maybeList = maybeEffect.Maybe<TExprList>()) {
for (const auto effect : maybeList.Cast()) {
- YQL_ENSURE(effect.Maybe<TKqlTableEffect>());
- auto tableEffect = effect.Cast<TKqlTableEffect>();
-
- if (!BuildEffects(query.Pos(), {tableEffect}, ctx, kqpCtx, builtEffects)) {
+ if (!BuildEffects(query.Pos(), {effect}, ctx, kqpCtx, builtEffects)) {
return {};
}
}
} else {
- YQL_ENSURE(maybeEffect.Maybe<TKqlTableEffect>());
- auto tableEffect = maybeEffect.Cast<TKqlTableEffect>();
-
- if (!BuildEffects(query.Pos(), {tableEffect}, ctx, kqpCtx, builtEffects)) {
+ if (!BuildEffects(query.Pos(), {maybeEffect}, ctx, kqpCtx, builtEffects)) {
return {};
}
}
@@ -502,7 +536,7 @@ TAutoPtr<IGraphTransformer> CreateKqpQueryEffectsTransformer(const TIntrusivePtr
bool requireBuild = false;
bool hasBuilt = false;
for (const auto& effect : query.Effects()) {
- if (!effect.Maybe<TDqOutput>()) {
+ if (!IsBuiltEffect(effect)) {
requireBuild = true;
} else {
hasBuilt = true;
diff --git a/ydb/core/kqp/opt/kqp_opt_impl.h b/ydb/core/kqp/opt/kqp_opt_impl.h
index 1b6c528e9d..8370b0994b 100644
--- a/ydb/core/kqp/opt/kqp_opt_impl.h
+++ b/ydb/core/kqp/opt/kqp_opt_impl.h
@@ -60,4 +60,6 @@ TVector<std::pair<NYql::TExprNode::TPtr, const NYql::TIndexDescription*>> BuildS
const std::function<NYql::NNodes::TExprBase (const NYql::TKikimrTableMetadata&,
NYql::TPositionHandle, NYql::TExprContext&)>& tableBuilder);
+bool IsBuiltEffect(const NYql::NNodes::TExprBase& effect);
+
} // namespace NKikimr::NKqp::NOpt
diff --git a/ydb/core/kqp/opt/kqp_opt_kql.cpp b/ydb/core/kqp/opt/kqp_opt_kql.cpp
index aa755e193f..1c25cc2ad4 100644
--- a/ydb/core/kqp/opt/kqp_opt_kql.cpp
+++ b/ydb/core/kqp/opt/kqp_opt_kql.cpp
@@ -235,7 +235,7 @@ TCoAtomList BuildUpsertInputColumns(const TCoAtomList& inputColumns,
for(const auto& item: inputColumns) {
result.push_back(item.Ptr());
}
-
+
for(const auto& item: autoincrement) {
result.push_back(item.Ptr());
}
@@ -245,27 +245,40 @@ TCoAtomList BuildUpsertInputColumns(const TCoAtomList& inputColumns,
.Done();
}
-TExprBase BuildUpsertTable(const TKiWriteTable& write, const TCoAtomList& inputColumns,
- const TCoAtomList& autoincrement,
- const TKikimrTableDescription& tableData, TExprContext& ctx)
+std::pair<TExprBase, TCoAtomList> BuildWriteInput(const TKiWriteTable& write, const TKikimrTableDescription& table,
+ const TCoAtomList& inputColumns, const TCoAtomList& autoIncrement,
+ TPositionHandle pos, TExprContext& ctx)
{
auto input = write.Input();
+ const bool isWriteReplace = (GetTableOp(write) == TYdbOperation::Replace);
- TCoAtomList inputCols = BuildUpsertInputColumns(inputColumns, autoincrement, write.Pos(), ctx);
+ TCoAtomList inputCols = BuildUpsertInputColumns(inputColumns, autoIncrement, pos, ctx);
- if (autoincrement.Ref().ChildrenSize() > 0) {
- input = BuildKqlSequencer(input, tableData, inputCols, autoincrement, write.Pos(), ctx);
+ if (autoIncrement.Ref().ChildrenSize() > 0) {
+ input = BuildKqlSequencer(input, table, inputCols, autoIncrement, pos, ctx);
}
- auto baseInput = Build<TKqpWriteConstraint>(ctx, write.Pos())
+ if (isWriteReplace) {
+ std::tie(input, inputCols) = CreateRowsToReplace(input, inputColumns, table, write.Pos(), ctx);
+ }
+
+ auto baseInput = Build<TKqpWriteConstraint>(ctx, pos)
.Input(input)
- .Columns(GetPgNotNullColumns(tableData, write.Pos(), ctx))
+ .Columns(GetPgNotNullColumns(table, pos, ctx))
.Done();
+ return {baseInput, inputCols};
+}
+
+TExprBase BuildUpsertTable(const TKiWriteTable& write, const TCoAtomList& inputColumns,
+ const TCoAtomList& autoincrement,
+ const TKikimrTableDescription& table, TExprContext& ctx)
+{
+ const auto [input, columns] = BuildWriteInput(write, table, inputColumns, autoincrement, write.Pos(), ctx);
auto effect = Build<TKqlUpsertRows>(ctx, write.Pos())
- .Table(BuildTableMeta(tableData, write.Pos(), ctx))
- .Input(baseInput.Ptr())
- .Columns(inputCols.Ptr())
+ .Table(BuildTableMeta(table, write.Pos(), ctx))
+ .Input(input.Ptr())
+ .Columns(columns.Ptr())
.Done();
return effect;
@@ -273,64 +286,52 @@ TExprBase BuildUpsertTable(const TKiWriteTable& write, const TCoAtomList& inputC
TExprBase BuildUpsertTableWithIndex(const TKiWriteTable& write, const TCoAtomList& inputColumns,
const TCoAtomList& autoincrement,
- const TKikimrTableDescription& tableData, TExprContext& ctx)
+ const TKikimrTableDescription& table, TExprContext& ctx)
{
- // todo: support later.
- Y_UNUSED(autoincrement);
+ const auto [input, columns] = BuildWriteInput(write, table, inputColumns, autoincrement, write.Pos(), ctx);
auto effect = Build<TKqlUpsertRowsIndex>(ctx, write.Pos())
- .Table(BuildTableMeta(tableData, write.Pos(), ctx))
- .Input<TKqpWriteConstraint>()
- .Input(write.Input())
- .Columns(GetPgNotNullColumns(tableData, write.Pos(), ctx))
- .Build()
- .Columns(inputColumns)
+ .Table(BuildTableMeta(table, write.Pos(), ctx))
+ .Input(input.Ptr())
+ .Columns(columns.Ptr())
.Done();
-
return effect;
}
TExprBase BuildReplaceTable(const TKiWriteTable& write, const TCoAtomList& inputColumns,
- const TKikimrTableDescription& tableData, TExprContext& ctx)
+ const TCoAtomList& autoincrement,
+ const TKikimrTableDescription& table, TExprContext& ctx)
{
- const auto [data, columns] = CreateRowsToReplace(write.Input(), inputColumns, tableData, write.Pos(), ctx);
-
+ const auto [input, columns] = BuildWriteInput(write, table, inputColumns, autoincrement, write.Pos(), ctx);
return Build<TKqlUpsertRows>(ctx, write.Pos())
- .Table(BuildTableMeta(tableData, write.Pos(), ctx))
- .Input<TKqpWriteConstraint>()
- .Input(data)
- .Columns(GetPgNotNullColumns(tableData, write.Pos(), ctx))
- .Build()
+ .Table(BuildTableMeta(table, write.Pos(), ctx))
+ .Input(input.Ptr())
.Columns(columns)
.Done();
}
TExprBase BuildReplaceTableWithIndex(const TKiWriteTable& write, const TCoAtomList& inputColumns,
- const TKikimrTableDescription& tableData, TExprContext& ctx)
+ const TCoAtomList& autoincrement,
+ const TKikimrTableDescription& table, TExprContext& ctx)
{
- const auto [data, columns] = CreateRowsToReplace(write.Input(), inputColumns, tableData, write.Pos(), ctx);
-
+ const auto [input, columns] = BuildWriteInput(write, table, inputColumns, autoincrement, write.Pos(), ctx);
auto effect = Build<TKqlUpsertRowsIndex>(ctx, write.Pos())
- .Table(BuildTableMeta(tableData, write.Pos(), ctx))
- .Input<TKqpWriteConstraint>()
- .Input(data)
- .Columns(GetPgNotNullColumns(tableData, write.Pos(), ctx))
- .Build()
- .Columns(columns)
+ .Table(BuildTableMeta(table, write.Pos(), ctx))
+ .Input(input.Ptr())
+ .Columns(columns.Ptr())
.Done();
return effect;
}
TExprBase BuildInsertTable(const TKiWriteTable& write, bool abort, const TCoAtomList& inputColumns,
- const TKikimrTableDescription& tableData, TExprContext& ctx)
+ const TCoAtomList& autoincrement,
+ const TKikimrTableDescription& table, TExprContext& ctx)
{
+ const auto [input, columns] = BuildWriteInput(write, table, inputColumns, autoincrement, write.Pos(), ctx);
auto effect = Build<TKqlInsertRows>(ctx, write.Pos())
- .Table(BuildTableMeta(tableData, write.Pos(), ctx))
- .Input<TKqpWriteConstraint>()
- .Input(write.Input())
- .Columns(GetPgNotNullColumns(tableData, write.Pos(), ctx))
- .Build()
- .Columns(inputColumns)
+ .Table(BuildTableMeta(table, write.Pos(), ctx))
+ .Input(input.Ptr())
+ .Columns(columns)
.OnConflict()
.Value(abort ? "abort"sv : "revert"sv)
.Build()
@@ -340,15 +341,14 @@ TExprBase BuildInsertTable(const TKiWriteTable& write, bool abort, const TCoAtom
}
TExprBase BuildInsertTableWithIndex(const TKiWriteTable& write, bool abort, const TCoAtomList& inputColumns,
- const TKikimrTableDescription& tableData, TExprContext& ctx)
+ const TCoAtomList& autoincrement,
+ const TKikimrTableDescription& table, TExprContext& ctx)
{
+ const auto [input, columns] = BuildWriteInput(write, table, inputColumns, autoincrement, write.Pos(), ctx);
auto effect = Build<TKqlInsertRowsIndex>(ctx, write.Pos())
- .Table(BuildTableMeta(tableData, write.Pos(), ctx))
- .Input<TKqpWriteConstraint>()
- .Input(write.Input())
- .Columns(GetPgNotNullColumns(tableData, write.Pos(), ctx))
- .Build()
- .Columns(inputColumns)
+ .Table(BuildTableMeta(table, write.Pos(), ctx))
+ .Input(input.Ptr())
+ .Columns(columns.Ptr())
.OnConflict()
.Value(abort ? "abort"sv : "revert"sv)
.Build()
@@ -719,10 +719,10 @@ TExprBase WriteTableSimple(const TKiWriteTable& write, const TCoAtomList& inputC
case TYdbOperation::Upsert:
return BuildUpsertTable(write, inputColumns, autoincrement, tableData, ctx);
case TYdbOperation::Replace:
- return BuildReplaceTable(write, inputColumns, tableData, ctx);
+ return BuildReplaceTable(write, inputColumns, autoincrement, tableData, ctx);
case TYdbOperation::InsertAbort:
case TYdbOperation::InsertRevert:
- return BuildInsertTable(write, op == TYdbOperation::InsertAbort, inputColumns, tableData, ctx);
+ return BuildInsertTable(write, op == TYdbOperation::InsertAbort, inputColumns, autoincrement, tableData, ctx);
case TYdbOperation::UpdateOn:
return BuildUpdateOnTable(write, inputColumns, tableData, ctx);
case TYdbOperation::Delete:
@@ -743,10 +743,10 @@ TExprBase WriteTableWithIndexUpdate(const TKiWriteTable& write, const TCoAtomLis
case TYdbOperation::Upsert:
return BuildUpsertTableWithIndex(write, inputColumns, autoincrement, tableData, ctx);
case TYdbOperation::Replace:
- return BuildReplaceTableWithIndex(write, inputColumns, tableData, ctx);
+ return BuildReplaceTableWithIndex(write, inputColumns, autoincrement, tableData, ctx);
case TYdbOperation::InsertAbort:
case TYdbOperation::InsertRevert:
- return BuildInsertTableWithIndex(write, op == TYdbOperation::InsertAbort, inputColumns, tableData, ctx);
+ return BuildInsertTableWithIndex(write, op == TYdbOperation::InsertAbort, inputColumns, autoincrement, tableData, ctx);
case TYdbOperation::UpdateOn:
return BuildUpdateOnTableWithIndex(write, inputColumns, tableData, ctx);
case TYdbOperation::DeleteOn:
@@ -758,7 +758,9 @@ TExprBase WriteTableWithIndexUpdate(const TKiWriteTable& write, const TCoAtomLis
Y_UNREACHABLE();
}
-TExprBase HandleWriteTable(const TKiWriteTable& write, TExprContext& ctx, const TKikimrTablesData& tablesData) {
+TVector<TExprBase> HandleWriteTable(const TKiWriteTable& write, TExprContext& ctx, const TKikimrTablesData& tablesData,
+ const TIntrusivePtr<TKqpOptimizeContext>& kqpCtx)
+{
auto& tableData = GetTableData(tablesData, write.DataSink().Cluster(), write.Table().Value());
auto inputColumnsSetting = GetSetting(write.Settings().Ref(), "input_columns");
@@ -769,10 +771,25 @@ TExprBase HandleWriteTable(const TKiWriteTable& write, TExprContext& ctx, const
YQL_ENSURE(autoincrementColumnsSetting);
auto autoincrementColumns = TCoNameValueTuple(autoincrementColumnsSetting).Value().Cast<TCoAtomList>();
+ if (autoincrementColumns.Ref().ChildrenSize() > 0 && !kqpCtx->Config->EnableSequences) {
+ const TString err = "Sequences are not supported.";
+ ctx.AddError(YqlIssue(ctx.GetPosition(write.Pos()), TIssuesIds::KIKIMR_BAD_REQUEST, err));
+ return {};
+ }
+
+ auto op = GetTableOp(write);
+ if (autoincrementColumns.Ref().ChildrenSize() > 0) {
+ if (op == TYdbOperation::UpdateOn || op == TYdbOperation::DeleteOn) {
+ const TString err = "Key columns are not specified.";
+ ctx.AddError(YqlIssue(ctx.GetPosition(write.Pos()), TIssuesIds::KIKIMR_BAD_REQUEST, err));
+ return {};
+ }
+ }
+
if (HasIndexesToWrite(tableData)) {
- return WriteTableWithIndexUpdate(write, inputColumns, autoincrementColumns, tableData, ctx);
+ return { WriteTableWithIndexUpdate(write, inputColumns, autoincrementColumns, tableData, ctx) } ;
} else {
- return WriteTableSimple(write, inputColumns, autoincrementColumns, tableData, ctx);
+ return { WriteTableSimple(write, inputColumns, autoincrementColumns, tableData, ctx) } ;
}
}
@@ -799,6 +816,32 @@ TVector<TExprBase> HandleDeleteTable(const TKiDeleteTable& del, TExprContext& ct
}
}
+TExprNode::TPtr HandleExternalWrite(const TCallable& effect, TExprContext& ctx, TTypeAnnotationContext& typesCtx) {
+ if (effect.Ref().ChildrenSize() <= 1) {
+ return {};
+ }
+ // As a rule data sink is a second child for all write callables
+ TExprBase dataSinkArg(effect.Ref().Child(1));
+ if (auto maybeDataSink = dataSinkArg.Maybe<TCoDataSink>()) {
+ TStringBuf dataSinkCategory = maybeDataSink.Cast().Category();
+ auto dataSinkProviderIt = typesCtx.DataSinkMap.find(dataSinkCategory);
+ if (dataSinkProviderIt != typesCtx.DataSinkMap.end()) {
+ if (auto* dqIntegration = dataSinkProviderIt->second->GetDqIntegration()) {
+ if (auto canWrite = dqIntegration->CanWrite(*effect.Raw(), ctx)) {
+ YQL_ENSURE(*canWrite, "Erros handling write");
+ if (auto result = dqIntegration->WrapWrite(effect.Ptr(), ctx)) {
+ return Build<TKqlExternalEffect>(ctx, effect.Pos())
+ .Input(result)
+ .Done()
+ .Ptr();
+ }
+ }
+ }
+ }
+ }
+ return {};
+}
+
} // namespace
const TKikimrTableDescription& GetTableData(const TKikimrTablesData& tablesData,
@@ -819,17 +862,20 @@ TIntrusivePtr<TKikimrTableMetadata> GetIndexMetadata(const TKqlReadTableIndex& r
}
TMaybe<TKqlQueryList> BuildKqlQuery(TKiDataQueryBlocks dataQueryBlocks, const TKikimrTablesData& tablesData,
- TExprContext& ctx, bool withSystemColumns, const TIntrusivePtr<TKqpOptimizeContext>& kqpCtx, NYql::TTypeAnnotationContext& typesCtx)
+ TExprContext& ctx, bool withSystemColumns, const TIntrusivePtr<TKqpOptimizeContext>& kqpCtx, TTypeAnnotationContext& typesCtx)
{
TVector<TKqlQuery> queryBlocks;
queryBlocks.reserve(dataQueryBlocks.ArgCount());
-
for (const auto& block : dataQueryBlocks) {
- TVector <TExprBase> kqlEffects;
+ TVector<TExprBase> kqlEffects;
for (const auto& effect : block.Effects()) {
if (auto maybeWrite = effect.Maybe<TKiWriteTable>()) {
- auto result = HandleWriteTable(maybeWrite.Cast(), ctx, tablesData);
- kqlEffects.push_back(result);
+ auto result = HandleWriteTable(maybeWrite.Cast(), ctx, tablesData, kqpCtx);
+ if (result.empty()) {
+ return {};
+ }
+
+ kqlEffects.insert(kqlEffects.end(), result.begin(), result.end());
}
if (auto maybeUpdate = effect.Maybe<TKiUpdateTable>()) {
@@ -841,9 +887,13 @@ TMaybe<TKqlQueryList> BuildKqlQuery(TKiDataQueryBlocks dataQueryBlocks, const TK
auto results = HandleDeleteTable(maybeDelete.Cast(), ctx, tablesData, withSystemColumns, kqpCtx);
kqlEffects.insert(kqlEffects.end(), results.begin(), results.end());
}
+
+ if (TExprNode::TPtr result = HandleExternalWrite(effect, ctx, typesCtx)) {
+ kqlEffects.emplace_back(result);
+ }
}
- TVector <TKqlQueryResult> kqlResults;
+ TVector<TKqlQueryResult> kqlResults;
kqlResults.reserve(block.Results().Size());
for (const auto& kiResult : block.Results()) {
kqlResults.emplace_back(
@@ -868,7 +918,7 @@ TMaybe<TKqlQueryList> BuildKqlQuery(TKiDataQueryBlocks dataQueryBlocks, const TK
TOptimizeExprSettings optSettings(nullptr);
optSettings.VisitChanges = true;
auto status = OptimizeExpr(queryBlock.Ptr(), optResult,
- [&tablesData, withSystemColumns, &kqpCtx, &typesCtx](const TExprNode::TPtr& input, TExprContext &ctx) {
+ [&tablesData, withSystemColumns, &kqpCtx, &typesCtx](const TExprNode::TPtr& input, TExprContext& ctx) {
auto node = TExprBase(input);
TExprNode::TPtr effect;
diff --git a/ydb/core/kqp/opt/kqp_opt_phy_check.cpp b/ydb/core/kqp/opt/kqp_opt_phy_check.cpp
index 90ab8da99a..6353167edc 100644
--- a/ydb/core/kqp/opt/kqp_opt_phy_check.cpp
+++ b/ydb/core/kqp/opt/kqp_opt_phy_check.cpp
@@ -35,7 +35,7 @@ TAutoPtr<IGraphTransformer> CreateKqpCheckPhysicalQueryTransformer() {
}
for (const auto& effect : query.Effects()) {
- if (!effect.Maybe<TDqOutput>()) {
+ if (!IsBuiltEffect(effect)) {
ctx.AddError(TIssue(ctx.GetPosition(effect.Pos()), "Failed to build query effects."));
return TStatus::Error;
}
@@ -86,10 +86,12 @@ TAutoPtr<IGraphTransformer> CreateKqpCheckPhysicalQueryTransformer() {
YQL_ENSURE(stageType);
auto stageResultType = stageType->Cast<TTupleExprType>();
const auto& stageConsumers = GetConsumers(stage, parentsMap);
+ bool stageWithResult = false;
TDynBitMap usedOutputs;
for (auto consumer : stageConsumers) {
if (auto maybeOutput = TExprBase(consumer).Maybe<TDqOutput>()) {
+ stageWithResult = true;
auto output = maybeOutput.Cast();
auto outputIndex = FromString<ui32>(output.Index().Value());
if (usedOutputs.Test(outputIndex)) {
@@ -100,18 +102,38 @@ TAutoPtr<IGraphTransformer> CreateKqpCheckPhysicalQueryTransformer() {
}
usedOutputs.Set(outputIndex);
} else {
- YQL_ENSURE(false, "Stage #" << PrintKqpStageOnly(stage, ctx) << " has unexpected consumer: "
- << consumer->Content());
+ // There can be also an effect with stage that has dq sinks
+ // Check the following structure:
+ // TKqlQuery (tuple with 2 elems) - results and effects
+ auto stageParentsIt = parentsMap.find(stage.Raw());
+ YQL_ENSURE(stageParentsIt != parentsMap.end());
+ if (stageParentsIt->second.size() != 1) {
+ hasMultipleConsumers = true;
+ } else {
+ const TExprNode* effectNode = *stageParentsIt->second.begin();
+ auto effectParentIt = parentsMap.find(effectNode);
+ YQL_ENSURE(effectParentIt != parentsMap.end());
+ if (effectParentIt->second.size() != 1) {
+ hasMultipleConsumers = true;
+ } else {
+ const TExprNode* queryNode = *effectParentIt->second.begin();
+ YQL_ENSURE(queryNode->GetTypeAnn()->GetKind() == ETypeAnnotationKind::Tuple,
+ "Stage #" << PrintKqpStageOnly(stage, ctx) << " has unexpected consumer: "
+ << consumer->Content());
+ }
+ }
}
}
- for (size_t i = 0; i < stageResultType->GetSize(); ++i) {
- if (!usedOutputs.Test(i)) {
- hasBrokenStage = true;
- YQL_CLOG(ERROR, ProviderKqp) << "Stage #" << PrintKqpStageOnly(stage, ctx)
- << ", output " << i << " (" << FormatType(stageResultType->GetItems()[i]) << ")"
- << " not used";
- return false;
+ if (stageWithResult) {
+ for (size_t i = 0; i < stageResultType->GetSize(); ++i) {
+ if (!usedOutputs.Test(i)) {
+ hasBrokenStage = true;
+ YQL_CLOG(ERROR, ProviderKqp) << "Stage #" << PrintKqpStageOnly(stage, ctx)
+ << ", output " << i << " (" << FormatType(stageResultType->GetItems()[i]) << ")"
+ << " not used";
+ return false;
+ }
}
}
}
diff --git a/ydb/core/kqp/opt/kqp_query_plan.cpp b/ydb/core/kqp/opt/kqp_query_plan.cpp
index 7183872618..543047c883 100644
--- a/ydb/core/kqp/opt/kqp_query_plan.cpp
+++ b/ydb/core/kqp/opt/kqp_query_plan.cpp
@@ -190,10 +190,15 @@ public:
}
for (const auto& stage: Tx.Stages()) {
- if (stage.Cast<TDqStageBase>().Program().Body().Maybe<TKqpEffects>()) {
- auto &planNode = AddPlanNode(phaseNode);
+ TDqStageBase stageBase = stage.Cast<TDqStageBase>();
+ if (stageBase.Program().Body().Maybe<TKqpEffects>()) {
+ auto& planNode = AddPlanNode(phaseNode);
planNode.TypeName = "Effect";
Visit(TExprBase(stage), planNode);
+ } else if (stageBase.Outputs()) { // Sink
+ auto& planNode = AddPlanNode(phaseNode);
+ planNode.TypeName = "Sink";
+ Visit(TExprBase(stage), planNode);
}
}
@@ -795,9 +800,11 @@ private:
}
if (explainPrompt.ExpectedMaxRanges) {
- op.Properties["ReadRangesExpectedSize"] = explainPrompt.ExpectedMaxRanges;
+ op.Properties["ReadRangesExpectedSize"] = ToString(*explainPrompt.ExpectedMaxRanges);
}
+ op.Properties["ReadRangesPointPrefixLen"] = ToString(explainPrompt.PointPrefixLen);
+
auto& columns = op.Properties["ReadColumns"];
for (const auto& col : sourceSettings.Columns()) {
readInfo.Columns.emplace_back(TString(col.Value()));
@@ -882,7 +889,7 @@ private:
Visit(settings.Cast(), stagePlanNode);
} else {
TOperator op;
- op.Properties["Name"] = TString(source.Cast().DataSource().Cast<TCoDataSource>().Category().Value());
+ op.Properties["Name"] = source.Cast().DataSource().Cast<TCoDataSource>().Category().StringValue();
AddOperator(stagePlanNode, "Source", op);
}
} else {
@@ -894,6 +901,16 @@ private:
Visit(inputCn.Output().Stage(), inputPlanNode);
}
}
+
+ if (auto outputs = expr.Cast<TDqStageBase>().Outputs()) {
+ for (auto output : outputs.Cast()) {
+ if (output.Maybe<TDqSink>()) {
+ TOperator op;
+ op.Properties["Name"] = output.DataSink().Cast<TCoDataSink>().Category().StringValue();
+ AddOperator(stagePlanNode, "Sink", op);
+ }
+ }
+ }
} else {
Visit(expr.Ptr(), planNode);
@@ -1254,7 +1271,7 @@ private:
}
if (explainPrompt.ExpectedMaxRanges) {
- op.Properties["ReadRangesExpectedSize"] = explainPrompt.ExpectedMaxRanges;
+ op.Properties["ReadRangesExpectedSize"] = *explainPrompt.ExpectedMaxRanges;
}
auto& columns = op.Properties["ReadColumns"];
diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log.cpp
index 1e72036017..dd887361f5 100644
--- a/ydb/core/kqp/opt/logical/kqp_opt_log.cpp
+++ b/ydb/core/kqp/opt/logical/kqp_opt_log.cpp
@@ -28,6 +28,7 @@ public:
{
#define HNDL(name) "KqpLogical-"#name, Hndl(&TKqpLogicalOptTransformer::name)
AddHandler(0, &TCoFlatMap::Match, HNDL(PushPredicateToReadTable));
+ AddHandler(0, &TCoFlatMap::Match, HNDL(PushExtractedPredicateToReadTable));
AddHandler(0, &TCoAggregate::Match, HNDL(RewriteAggregate));
AddHandler(0, &TCoTake::Match, HNDL(RewriteTakeSortToTopSort));
AddHandler(0, &TCoFlatMap::Match, HNDL(RewriteSqlInToEquiJoin));
@@ -36,7 +37,8 @@ public:
AddHandler(0, &TDqJoin::Match, HNDL(JoinToIndexLookup));
AddHandler(0, &TCoCalcOverWindowBase::Match, HNDL(ExpandWindowFunctions));
AddHandler(0, &TCoCalcOverWindowGroup::Match, HNDL(ExpandWindowFunctions));
- AddHandler(0, &TCoFlatMap::Match, HNDL(PushExtractedPredicateToReadTable));
+ AddHandler(0, &TCoFlatMap::Match, HNDL(LatePushExtractedPredicateToReadTable));
+ AddHandler(0, &TCoTopSort::Match, HNDL(RewriteTopSortOverRename));
AddHandler(0, &TCoTop::Match, HNDL(RewriteTopSortOverIndexRead));
AddHandler(0, &TCoTopSort::Match, HNDL(RewriteTopSortOverIndexRead));
AddHandler(0, &TCoTake::Match, HNDL(RewriteTakeOverIndexRead));
@@ -69,19 +71,34 @@ public:
}
protected:
+ TMaybeNode<TExprBase> PushPredicateToReadTable(TExprBase node, TExprContext& ctx) {
+ if (KqpCtx.Config->PredicateExtract20) {
+ return node;
+ }
+ TExprBase output = KqpPushPredicateToReadTable(node, ctx, KqpCtx);
+ DumpAppliedRule("PushPredicateToReadTable", node.Ptr(), output.Ptr(), ctx);
+ return output;
+ }
TMaybeNode<TExprBase> PushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx) {
+ if (!KqpCtx.Config->PredicateExtract20) {
+ return node;
+ }
TExprBase output = KqpPushExtractedPredicateToReadTable(node, ctx, KqpCtx, TypesCtx);
DumpAppliedRule("PushExtractedPredicateToReadTable", node.Ptr(), output.Ptr(), ctx);
return output;
}
- TMaybeNode<TExprBase> PushPredicateToReadTable(TExprBase node, TExprContext& ctx) {
- TExprBase output = KqpPushPredicateToReadTable(node, ctx, KqpCtx);
- DumpAppliedRule("PushPredicateToReadTable", node.Ptr(), output.Ptr(), ctx);
+ TMaybeNode<TExprBase> LatePushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx) {
+ if (KqpCtx.Config->PredicateExtract20) {
+ return node;
+ }
+ TExprBase output = KqpPushExtractedPredicateToReadTable(node, ctx, KqpCtx, TypesCtx);
+ DumpAppliedRule("PushExtractedPredicateToReadTable", node.Ptr(), output.Ptr(), ctx);
return output;
}
+
TMaybeNode<TExprBase> RewriteAggregate(TExprBase node, TExprContext& ctx) {
TExprBase output = DqRewriteAggregate(node, ctx, TypesCtx, false, KqpCtx.Config->HasOptEnableOlapPushdown(), KqpCtx.Config->HasOptUseFinalizeByKey());
DumpAppliedRule("RewriteAggregate", node.Ptr(), output.Ptr(), ctx);
@@ -124,6 +141,12 @@ protected:
return output;
}
+ TMaybeNode<TExprBase> RewriteTopSortOverRename(TExprBase node, TExprContext& ctx) {
+ TExprBase output = KqpRewriteTopSortOverRename(node, ctx);
+ DumpAppliedRule("RewriteTopSortOverRename", node.Ptr(), output.Ptr(), ctx);
+ return output;
+ }
+
TMaybeNode<TExprBase> RewriteTopSortOverIndexRead(TExprBase node, TExprContext& ctx, const TGetParents& getParents) {
TExprBase output = KqpRewriteTopSortOverIndexRead(node, ctx, KqpCtx, *getParents());
DumpAppliedRule("RewriteTopSortOverIndexRead", node.Ptr(), output.Ptr(), ctx);
diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_indexes.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_indexes.cpp
index ddaf183731..f8818534ad 100644
--- a/ydb/core/kqp/opt/logical/kqp_opt_log_indexes.cpp
+++ b/ydb/core/kqp/opt/logical/kqp_opt_log_indexes.cpp
@@ -5,6 +5,8 @@
#include <ydb/library/yql/dq/opt/dq_opt_phy.h>
#include <ydb/library/yql/core/yql_opt_utils.h>
+#include <util/generic/hash.h>
+
namespace NKikimr::NKqp::NOpt {
using namespace NYql;
@@ -14,43 +16,45 @@ using namespace NYql::NNodes;
namespace {
TCoAtomList BuildKeyColumnsList(const TKikimrTableDescription& table, TPositionHandle pos, TExprContext& ctx) {
- TVector<TExprBase> columnsToSelect;
- columnsToSelect.reserve(table.Metadata->KeyColumnNames.size());
- for (auto key : table.Metadata->KeyColumnNames) {
- auto value = table.Metadata->Columns.at(key);
+ TSet<TString> columnsToSelect(table.Metadata->KeyColumnNames.begin(), table.Metadata->KeyColumnNames.end());
+ TVector<TExprBase> columnsList;
+ columnsList.reserve(columnsToSelect.size());
+ for (auto column : columnsToSelect) {
auto atom = Build<TCoAtom>(ctx, pos)
- .Value(value.Name)
+ .Value(column)
.Done();
- columnsToSelect.push_back(atom);
+ columnsList.emplace_back(std::move(atom));
}
return Build<TCoAtomList>(ctx, pos)
- .Add(columnsToSelect)
+ .Add(columnsList)
.Done();
}
TCoAtomList MergeColumns(const NNodes::TCoAtomList& col1, const TVector<TString>& col2, TExprContext& ctx) {
- TVector<TCoAtom> columns;
- THashSet<TString> uniqColumns;
- columns.reserve(col1.Size() + col2.size());
-
+ TMap<TString, TCoAtom> columns;
for (const auto& c : col1) {
- YQL_ENSURE(uniqColumns.emplace(c.StringValue()).second);
- columns.push_back(c);
+ YQL_ENSURE(columns.insert({c.StringValue(), c}).second);
}
for (const auto& c : col2) {
- if (uniqColumns.emplace(c).second) {
+ if (!columns.contains(c)) {
auto atom = Build<TCoAtom>(ctx, col1.Pos())
.Value(c)
.Done();
- columns.push_back(atom);
+ columns.insert({c, std::move(atom)});
}
}
+ TVector<TCoAtom> columnsList;
+ columnsList.reserve(columns.size());
+ for (auto [_, column] : columns) {
+ columnsList.emplace_back(std::move(column));
+ }
+
return Build<TCoAtomList>(ctx, col1.Pos())
- .Add(columns)
+ .Add(columnsList)
.Done();
}
@@ -428,6 +432,126 @@ bool CanPushFlatMap(const TCoFlatMapBase& flatMap, const TKikimrTableDescription
return true;
}
+// Check if the TopSort key selectors are a single member or members only list
+bool IsMemberOnlyKeySelector(const TCoLambda& lambda) {
+ // If its a single selector:
+ if (lambda.Body().Maybe<TCoMember>()) {
+ // Check that the member is applied to lambda argument
+ auto member = lambda.Body().Cast<TCoMember>();
+ if (member.Struct().Raw() != lambda.Args().Arg(0).Raw()) {
+ return false;
+ }
+ return true;
+ } else if (lambda.Body().Maybe<TExprList>()) {
+ for (auto item : lambda.Body().Cast<TExprList>()) {
+ if (!item.Maybe<TCoMember>()) {
+ return false;
+ }
+ // Check that the member is applied to lambda argument
+ auto member = item.Cast<TCoMember>();
+ if (member.Struct().Raw() != lambda.Args().Arg(0).Raw()) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ return false;
+}
+
+// Construct a new lambda with renamed attributes based on the mapping
+TCoLambda RenameKeySelector(const TCoLambda& lambda, TExprContext& ctx, const THashMap<TString,TString>& map) {
+ // If its single member lambda body
+ if (lambda.Body().Maybe<TCoMember>()) {
+ auto attrRef = lambda.Body().Cast<TCoMember>().Name().StringValue();
+ auto mapped = map.Value(attrRef,attrRef);
+
+ return Build<TCoLambda>(ctx, lambda.Pos())
+ .Args({"argument"})
+ .Body<TCoMember>()
+ .Struct("argument")
+ .Name().Build(mapped)
+ .Build()
+ .Done();
+ }
+ // Else its a list of members lambda body
+ else {
+ TCoArgument arg = Build<TCoArgument>(ctx, lambda.Pos())
+ .Name("Arg")
+ .Done();
+
+ TVector<TExprBase> members;
+
+ for (auto item : lambda.Body().Cast<TExprList>()) {
+ auto attrRef = item.Cast<TCoMember>().Name().StringValue();
+ auto mapped = map.Value(attrRef,attrRef);
+
+ auto member = Build<TCoMember>(ctx, lambda.Pos())
+ .Struct(arg)
+ .Name().Build(mapped)
+ .Done();
+ members.push_back(member);
+ }
+
+ return Build<TCoLambda>(ctx, lambda.Pos())
+ .Args({arg})
+ .Body<TExprList>()
+ .Add(members)
+ .Build()
+ .Done();
+ }
+}
+
+
+// If we have a top-sort over rename, we can push it throught is, so that the
+// RewriteTopSortOverIndexRead rule can fire next. If the flatmap renames some of the sort
+// attributes, we need to use the original names in the top-sort. When pushing TopSort below
+// FlatMap, we change FlatMap to OrderedFlatMap to preserve the order of its input.
+TExprBase KqpRewriteTopSortOverRename(const TExprBase& node, TExprContext& ctx) {
+
+ // Check that we have a top-sort and a flat-map directly below it
+ if(!node.Maybe<TCoTopBase>()) {
+ return node;
+ }
+
+ const auto topBase = node.Maybe<TCoTopBase>().Cast();
+
+ if (!topBase.Input().Maybe<TCoFlatMap>()) {
+ return node;
+ }
+
+ auto flatMap = topBase.Input().Maybe<TCoFlatMap>().Cast();
+
+ // Check that the flat-map is a rename and compute the mapping
+ TExprNode::TPtr structNode;
+ THashMap<TString, TString> renameMap;
+ if (!IsRenameFlatMapWithMapping(flatMap, structNode, renameMap)) {
+ return node;
+ }
+
+ // Check that the TopSort selector list is member only
+ if (!IsMemberOnlyKeySelector(topBase.KeySelectorLambda())) {
+ return node;
+ }
+
+ // Rename the attributes in sort key selector of the sort
+ TCoLambda newKeySelector = RenameKeySelector(topBase.KeySelectorLambda(), ctx, renameMap);
+
+ // Swap top sort and rename operators
+ auto flatMapInput = Build<TCoTopBase>(ctx, node.Pos())
+ .CallableName(node.Ref().Content())
+ .Input(flatMap.Input())
+ .KeySelectorLambda(newKeySelector)
+ .SortDirections(topBase.SortDirections())
+ .Count(topBase.Count())
+ .Done();
+
+ return Build<TCoOrderedFlatMap>(ctx, node.Pos())
+ .Input(flatMapInput)
+ .Lambda(ctx.DeepCopyLambda(flatMap.Lambda().Ref()))
+ .Done();
+}
+
// The index and main table have same number of rows, so we can push a copy of TCoTopSort or TCoTake
// through TKqlLookupTable.
// The simplest way is to match TopSort or Take over TKqlReadTableIndex.
diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp
index f361929389..38de2ebb3e 100644
--- a/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp
+++ b/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp
@@ -187,79 +187,81 @@ TMaybeNode<TKqlKeyInc> GetRightTableKeyPrefix(const TKqlKeyRange& range) {
return rangeFrom;
}
-TExprBase BuildLookupIndex(TExprContext& ctx, const TPositionHandle pos, const TKqlReadTableBase& read,
+TExprBase BuildLookupIndex(TExprContext& ctx, const TPositionHandle pos,
+ const TKqpTable& table, const TCoAtomList& columns,
const TExprBase& keysToLookup, const TVector<TCoAtom>& lookupNames, const TString& indexName,
const TKqpOptimizeContext& kqpCtx)
{
if (kqpCtx.IsScanQuery()) {
YQL_ENSURE(kqpCtx.Config->EnableKqpScanQueryStreamIdxLookupJoin, "Stream lookup is not enabled for index lookup join");
return Build<TKqlStreamLookupIndex>(ctx, pos)
- .Table(read.Table())
+ .Table(table)
.LookupKeys<TCoSkipNullMembers>()
.Input(keysToLookup)
.Members()
.Add(lookupNames)
.Build()
.Build()
- .Columns(read.Columns())
+ .Columns(columns)
.Index()
.Build(indexName)
.Done();
}
return Build<TKqlLookupIndex>(ctx, pos)
- .Table(read.Table())
+ .Table(table)
.LookupKeys<TCoSkipNullMembers>()
.Input(keysToLookup)
.Members()
.Add(lookupNames)
.Build()
.Build()
- .Columns(read.Columns())
+ .Columns(columns)
.Index()
.Build(indexName)
.Done();
}
-TExprBase BuildLookupTable(TExprContext& ctx, const TPositionHandle pos, const TKqlReadTableBase& read,
+TExprBase BuildLookupTable(TExprContext& ctx, const TPositionHandle pos,
+ const TKqpTable& table, const TCoAtomList& columns,
const TExprBase& keysToLookup, const TVector<TCoAtom>& lookupNames, const TKqpOptimizeContext& kqpCtx)
{
if (kqpCtx.IsScanQuery()) {
YQL_ENSURE(kqpCtx.Config->EnableKqpScanQueryStreamIdxLookupJoin, "Stream lookup is not enabled for index lookup join");
return Build<TKqlStreamLookupTable>(ctx, pos)
- .Table(read.Table())
+ .Table(table)
.LookupKeys<TCoSkipNullMembers>()
.Input(keysToLookup)
.Members()
.Add(lookupNames)
.Build()
.Build()
- .Columns(read.Columns())
+ .Columns(columns)
.Done();
}
if (kqpCtx.Config->EnableKqpDataQueryStreamLookup) {
return Build<TKqlStreamLookupTable>(ctx, pos)
- .Table(read.Table())
+ .Table(table)
.LookupKeys<TCoSkipNullMembers>()
.Input(keysToLookup)
.Members()
.Add(lookupNames)
.Build()
.Build()
- .Columns(read.Columns())
+ .Columns(columns)
.Done();
}
return Build<TKqlLookupTable>(ctx, pos)
- .Table(read.Table())
+ .Table(table)
.LookupKeys<TCoSkipNullMembers>()
.Input(keysToLookup)
.Members()
.Add(lookupNames)
.Build()
.Build()
- .Columns(read.Columns())
+ .Columns(columns)
.Done();
}
@@ -336,7 +338,10 @@ bool IsParameterToListOfStructsRepack(const TExprBase& expr) {
//#define DBG(...) YQL_CLOG(DEBUG, ProviderKqp) << __VA_ARGS__
#define DBG(...)
+template<typename ReadType>
TMaybeNode<TExprBase> KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext& ctx, const TKqpOptimizeContext& kqpCtx) {
+ static_assert(std::is_same_v<ReadType, TKqlReadTableBase> || std::is_same_v<ReadType, TKqlReadTableRangesBase>, "unsupported read type");
+
if (!join.RightLabel().Maybe<TCoAtom>()) {
// Lookup only in tables
return {};
@@ -350,64 +355,97 @@ TMaybeNode<TExprBase> KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext
TString lookupTable;
TString indexName;
- auto rightReadMatch = MatchRead<TKqlReadTableBase>(join.RightInput());
- if (!rightReadMatch) {
- if (auto readRangesMatch = MatchRead<TKqlReadTableRangesBase>(join.RightInput())) {
- // for now only fullscans are supported
- auto read = readRangesMatch->Read.Cast<TKqlReadTableRangesBase>();
- if (TCoVoid::Match(read.Ranges().Raw())) {
- rightReadMatch = readRangesMatch;
- rightReadMatch->Read =
- Build<TKqlReadTable>(ctx, join.Pos())
- .Settings(read.Settings())
- .Table(read.Table())
- .Columns(read.Columns())
- .Range<TKqlKeyRange>()
- .From<TKqlKeyInc>().Build()
- .To<TKqlKeyInc>().Build()
- .Build()
- .Done();
- if (auto indexRead = read.Maybe<TKqlReadTableIndexRanges>()) {
- const auto& tableDesc = GetTableData(*kqpCtx.Tables, kqpCtx.Cluster, read.Table().Path());
- const auto& [indexMeta, _ ] = tableDesc.Metadata->GetIndexMetadata(indexRead.Index().Cast().StringValue());
- lookupTable = indexMeta->Name;
- indexName = indexRead.Cast().Index().StringValue();
- }
- } else {
- return {};
- }
- } else {
+ auto rightReadMatch = MatchRead<ReadType>(join.RightInput());
+ if (!rightReadMatch || rightReadMatch->FlatMap && !IsPassthroughFlatMap(rightReadMatch->FlatMap.Cast(), nullptr)) {
+ return {};
+ }
+
+ auto rightRead = rightReadMatch->Read.template Cast<ReadType>();
+
+ TMaybeNode<TCoAtomList> lookupColumns;
+ TMaybe<TKqlKeyInc> rightTableKeyPrefix;
+ if constexpr (std::is_same_v<ReadType, TKqlReadTableBase>) {
+ Y_ENSURE(rightRead.template Maybe<TKqlReadTable>() || rightRead.template Maybe<TKqlReadTableIndex>());
+ const TKqlReadTableBase read = rightRead;
+ if (!read.Table().SysView().Value().empty()) {
+ // Can't lookup in system views
return {};
}
- }
- if (rightReadMatch->FlatMap && !IsPassthroughFlatMap(rightReadMatch->FlatMap.Cast(), nullptr)) {
- return {};
- }
+ auto maybeRightTableKeyPrefix = GetRightTableKeyPrefix(read.Range());
+ if (!maybeRightTableKeyPrefix) {
+ return {};
+ }
- auto rightRead = rightReadMatch->Read.Cast<TKqlReadTableBase>();
+ lookupColumns = read.Columns();
+ rightTableKeyPrefix = maybeRightTableKeyPrefix.Cast();
- Y_ENSURE(rightRead.Maybe<TKqlReadTable>() || rightRead.Maybe<TKqlReadTableIndex>());
+ if (auto indexRead = rightRead.template Maybe<TKqlReadTableIndex>()) {
+ indexName = indexRead.Cast().Index().StringValue();
+ lookupTable = GetIndexMetadata(indexRead.Cast(), *kqpCtx.Tables, kqpCtx.Cluster)->Name;
+ } else {
+ lookupTable = read.Table().Path().StringValue();
+ }
+ } else if constexpr (std::is_same_v<ReadType, TKqlReadTableRangesBase>){
+ auto read = rightReadMatch->Read.template Cast<TKqlReadTableRangesBase>();
+ lookupColumns = read.Columns();
+
+ if (auto indexRead = read.template Maybe<TKqlReadTableIndexRanges>()) {
+ const auto& tableDesc = GetTableData(*kqpCtx.Tables, kqpCtx.Cluster, read.Table().Path());
+ const auto& [indexMeta, _ ] = tableDesc.Metadata->GetIndexMetadata(indexRead.Index().Cast().StringValue());
+ lookupTable = indexMeta->Name;
+ indexName = indexRead.Cast().Index().StringValue();
+ } else {
+ lookupTable = read.Table().Path().StringValue();
+ }
- const TKqlReadTableBase read = rightRead;
- if (!read.Table().SysView().Value().empty()) {
- // Can't lookup in system views
- return {};
- }
+ const auto& rightTableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookupTable);
- auto maybeRightTableKeyPrefix = GetRightTableKeyPrefix(read.Range());
- if (!maybeRightTableKeyPrefix) {
- return {};
- }
- auto rightTableKeyPrefix = maybeRightTableKeyPrefix.Cast();
+ if (TCoVoid::Match(read.Ranges().Raw())) {
+ rightTableKeyPrefix = Build<TKqlKeyInc>(ctx, read.Ranges().Pos()).Done();
+ } else {
+ auto prompt = TKqpReadTableExplainPrompt::Parse(read);
+ if (prompt.ExpectedMaxRanges != TMaybe<ui64>(1)) {
+ return {};
+ }
+
+ TMaybeNode<TExprBase> row;
+ if (read.template Maybe<TKqlReadTableRanges>()) {
+ row = read.template Cast<TKqlReadTableRanges>().PrefixPointsExpr();
+ }
+ if (rightRead.template Maybe<TKqlReadTableIndexRanges>()) {
+ row = read.template Cast<TKqlReadTableIndexRanges>().PrefixPointsExpr();
+ }
+ if (!row.IsValid()) {
+ return {};
+ }
+ row = Build<TCoHead>(ctx, read.Ranges().Pos()).Input(row.Cast()).Done();
- if (auto indexRead = rightRead.Maybe<TKqlReadTableIndex>()) {
- indexName = indexRead.Cast().Index().StringValue();
- lookupTable = GetIndexMetadata(indexRead.Cast(), *kqpCtx.Tables, kqpCtx.Cluster)->Name;
- } else if (!indexName) {
- lookupTable = read.Table().Path().StringValue();
+ size_t prefixLen = prompt.PointPrefixLen;
+ TVector<TString> keyColumns;
+ for (size_t i = 0; i < prefixLen; ++i) {
+ YQL_ENSURE(i < rightTableDesc.Metadata->KeyColumnNames.size());
+ keyColumns.push_back(rightTableDesc.Metadata->KeyColumnNames[i]);
+ }
+
+ TVector<TExprBase> components;
+ for (auto column : keyColumns) {
+ TCoAtom columnAtom(ctx.NewAtom(read.Ranges().Pos(), column));
+ components.push_back(
+ Build<TCoMember>(ctx, read.Ranges().Pos())
+ .Struct(row.Cast())
+ .Name(columnAtom)
+ .Done());
+ }
+
+ rightTableKeyPrefix = Build<TKqlKeyInc>(ctx, read.Ranges().Pos())
+ .Add(components)
+ .Done();
+ }
}
+ Y_ENSURE(rightTableKeyPrefix);
+
const auto& rightTableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookupTable);
TMap<std::string_view, TString> rightJoinKeyToLeft;
@@ -446,12 +484,12 @@ TMaybeNode<TExprBase> KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext
auto leftColumn = rightJoinKeyToLeft.FindPtr(rightColumnName);
- if (fixedPrefix < rightTableKeyPrefix.ArgCount()) {
+ if (fixedPrefix < rightTableKeyPrefix->ArgCount()) {
if (leftColumn) {
return {};
}
- member = rightTableKeyPrefix.Arg(fixedPrefix).Ptr();
+ member = rightTableKeyPrefix->Arg(fixedPrefix).Ptr();
fixedPrefix++;
} else {
if (!leftColumn) {
@@ -562,8 +600,8 @@ TMaybeNode<TExprBase> KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext
.Done();
TExprBase lookup = indexName
- ? BuildLookupIndex(ctx, join.Pos(), read, keysToLookup, lookupNames, indexName, kqpCtx)
- : BuildLookupTable(ctx, join.Pos(), read, keysToLookup, lookupNames, kqpCtx);
+ ? BuildLookupIndex(ctx, join.Pos(), rightRead.Table(), rightRead.Columns(), keysToLookup, lookupNames, indexName, kqpCtx)
+ : BuildLookupTable(ctx, join.Pos(), rightRead.Table(), rightRead.Columns(), keysToLookup, lookupNames, kqpCtx);
// Skip null keys in lookup part as for equijoin semantics null != null,
// so we can't have nulls in lookup part
@@ -574,7 +612,6 @@ TMaybeNode<TExprBase> KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext
.Build()
.Done();
- auto lookupColumns = read.Columns();
if (rightReadMatch->ExtractMembers) {
lookupColumns = rightReadMatch->ExtractMembers.Cast().Members();
}
@@ -585,7 +622,7 @@ TMaybeNode<TExprBase> KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext
auto arg = TCoArgument(ctx.NewArgument(join.Pos(), "row"));
auto rightLabel = join.RightLabel().Cast<TCoAtom>().Value();
- TVector<TExprBase> renames = CreateRenames(rightReadMatch->FlatMap, lookupColumns, arg, rightLabel,
+ TVector<TExprBase> renames = CreateRenames(rightReadMatch->FlatMap, lookupColumns.Cast(), arg, rightLabel,
join.Pos(), ctx);
lookup = Build<TCoMap>(ctx, join.Pos())
@@ -628,12 +665,16 @@ TExprBase KqpJoinToIndexLookup(const TExprBase& node, TExprContext& ctx, const T
auto flipJoin = FlipLeftSemiJoin(join, ctx);
DBG("-- Flip join");
- if (auto indexLookupJoin = KqpJoinToIndexLookupImpl(flipJoin, ctx, kqpCtx)) {
+ if (auto indexLookupJoin = KqpJoinToIndexLookupImpl<TKqlReadTableBase>(flipJoin, ctx, kqpCtx)) {
+ return indexLookupJoin.Cast();
+ } else if (auto indexLookupJoin = KqpJoinToIndexLookupImpl<TKqlReadTableRangesBase>(flipJoin, ctx, kqpCtx)) {
return indexLookupJoin.Cast();
}
}
- if (auto indexLookupJoin = KqpJoinToIndexLookupImpl(join, ctx, kqpCtx)) {
+ if (auto indexLookupJoin = KqpJoinToIndexLookupImpl<TKqlReadTableBase>(join, ctx, kqpCtx)) {
+ return indexLookupJoin.Cast();
+ } else if (auto indexLookupJoin = KqpJoinToIndexLookupImpl<TKqlReadTableRangesBase>(join, ctx, kqpCtx)) {
return indexLookupJoin.Cast();
}
diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp
index fc9cc2c70f..7549578202 100644
--- a/ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp
+++ b/ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp
@@ -10,6 +10,7 @@
#include <ydb/library/yql/providers/common/provider/yql_table_lookup.h>
#include <ydb/library/yql/core/extract_predicate/extract_predicate.h>
+
namespace NKikimr::NKqp::NOpt {
using namespace NYql;
@@ -19,6 +20,28 @@ using namespace NYql::NNodes;
namespace {
+bool IsValidForRange(const NYql::TExprNode::TPtr& node) {
+ TExprBase expr(node);
+ if (auto sqlin = expr.Maybe<TCoSqlIn>()) {
+ auto collection = sqlin.Cast().Collection().Ptr();
+ bool result = true;
+ VisitExpr(collection,
+ [&](const TExprNode::TPtr& node) {
+ if (node->IsCallable({"DqPhyPrecompute", "DqPrecompute"})) {
+ return false;
+ }
+ if (node->IsCallable() && (node->Content().StartsWith("Dq") || node->Content().StartsWith("Kql") || node->Content().StartsWith("Kqp"))) {
+ result = false;
+ return false;
+ }
+ return true;
+ });
+ return result;
+ }
+
+ return true;
+}
+
TMaybeNode<TExprBase> TryBuildTrivialReadTable(TCoFlatMap& flatmap, TKqlReadTableRangesBase readTable,
const TKqpMatchReadResult& readMatch, const TKikimrTableDescription& tableDesc, TExprContext& ctx,
const TKqpOptimizeContext& kqpCtx, TMaybeNode<TCoAtom> indexName)
@@ -207,28 +230,57 @@ TExprBase KqpPushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx
const auto& mainTableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, read.Table().Path());
auto& tableDesc = indexName ? kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, mainTableDesc.Metadata->GetIndexMetadata(TString(indexName.Cast())).first->Name) : mainTableDesc;
- // test for trivial cases (explicit literals or parameters)
- if (auto expr = TryBuildTrivialReadTable(flatmap, read, *readMatch, tableDesc, ctx, kqpCtx, indexName)) {
- return expr.Cast();
- }
-
THashSet<TString> possibleKeys;
TPredicateExtractorSettings settings;
settings.MergeAdjacentPointRanges = true;
settings.HaveNextValueCallable = true;
+ settings.BuildLiteralRange = true;
+
+ if (!kqpCtx.Config->PredicateExtract20) {
+ // test for trivial cases (explicit literals or parameters)
+ if (auto expr = TryBuildTrivialReadTable(flatmap, read, *readMatch, tableDesc, ctx, kqpCtx, indexName)) {
+ return expr.Cast();
+ }
+ } else {
+ settings.IsValidForRange = IsValidForRange;
+ }
+
auto extractor = MakePredicateRangeExtractor(settings);
YQL_ENSURE(tableDesc.SchemeNode);
bool prepareSuccess = extractor->Prepare(flatmap.Lambda().Ptr(), *mainTableDesc.SchemeNode, possibleKeys, ctx, typesCtx);
YQL_ENSURE(prepareSuccess);
- auto buildResult = extractor->BuildComputeNode(tableDesc.Metadata->KeyColumnNames, ctx);
+ auto buildResult = extractor->BuildComputeNode(tableDesc.Metadata->KeyColumnNames, ctx, typesCtx);
+
TExprNode::TPtr ranges = buildResult.ComputeNode;
if (!ranges) {
return node;
}
+ TExprNode::TPtr prefixPointsExpr;
+ IPredicateRangeExtractor::TBuildResult pointsExtractionResult;
+
+ if (buildResult.PointPrefixLen > 0) {
+ TPredicateExtractorSettings pointSettings = settings;
+ pointSettings.MergeAdjacentPointRanges = false;
+ pointSettings.HaveNextValueCallable = false;
+ pointSettings.MaxRanges = Nothing();
+ TVector<TString> pointKeys;
+ for (size_t i = 0; i < buildResult.PointPrefixLen; ++i) {
+ pointKeys.push_back(tableDesc.Metadata->KeyColumnNames[i]);
+ }
+ auto extractor = MakePredicateRangeExtractor(pointSettings);
+ YQL_ENSURE(extractor->Prepare(flatmap.Lambda().Ptr(), *mainTableDesc.SchemeNode, possibleKeys, ctx, typesCtx));
+
+ pointsExtractionResult = extractor->BuildComputeNode(pointKeys, ctx, typesCtx);
+ YQL_ENSURE(pointsExtractionResult.ComputeNode);
+ prefixPointsExpr = BuildPointsList(pointsExtractionResult, pointKeys, ctx);
+ YQL_CLOG(DEBUG, ProviderKqp) << "Points extracted: " << KqpExprToPrettyString(*prefixPointsExpr, ctx);
+ YQL_CLOG(DEBUG, ProviderKqp) << "Residual lambda: " << KqpExprToPrettyString(*pointsExtractionResult.PrunedLambda, ctx);
+ }
+
TExprNode::TPtr residualLambda = buildResult.PrunedLambda;
TVector<TString> usedColumns;
@@ -248,23 +300,129 @@ TExprBase KqpPushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx
YQL_CLOG(DEBUG, ProviderKqp) << "Residual lambda: " << KqpExprToPrettyString(*residualLambda, ctx);
TMaybe<TExprBase> input;
- if (indexName) {
- input = Build<TKqlReadTableIndexRanges>(ctx, read.Pos())
- .Table(read.Table())
- .Ranges(ranges)
- .Columns(read.Columns())
- .Settings(read.Settings())
- .ExplainPrompt(prompt.BuildNode(ctx, read.Pos()))
- .Index(indexName.Cast())
- .Done();
- } else {
- input = Build<TKqlReadTableRanges>(ctx, read.Pos())
- .Table(read.Table())
- .Ranges(ranges)
- .Columns(read.Columns())
- .Settings(read.Settings())
- .ExplainPrompt(prompt.BuildNode(ctx, read.Pos()))
- .Done();
+ if (kqpCtx.Config->PredicateExtract20 &&
+ (tableDesc.Metadata->Kind == EKikimrTableKind::Datashard ||
+ tableDesc.Metadata->Kind == EKikimrTableKind::SysView))
+ {
+ auto buildLookup = [&] (TExprNode::TPtr keys, TMaybe<TExprBase>& result) {
+ if (indexName) {
+ if (kqpCtx.IsDataQuery()) {
+ result = Build<TKqlLookupIndex>(ctx, node.Pos())
+ .Table(read.Table())
+ .Columns(read.Columns())
+ .LookupKeys(keys)
+ .Index(indexName.Cast())
+ .Done();
+ } else if (kqpCtx.IsScanQuery() && kqpCtx.Config->EnableKqpScanQueryStreamLookup) {
+ result = Build<TKqlStreamLookupIndex>(ctx, node.Pos())
+ .Table(read.Table())
+ .Columns(read.Columns())
+ .LookupKeys(keys)
+ .Index(indexName.Cast())
+ .LookupKeys(keys)
+ .Done();
+ }
+ } else if (kqpCtx.IsDataQuery()) {
+ result = Build<TKqlLookupTable>(ctx, node.Pos())
+ .Table(read.Table())
+ .Columns(read.Columns())
+ .LookupKeys(keys)
+ .Done();
+ } else if (kqpCtx.IsScanQuery() && kqpCtx.Config->EnableKqpScanQueryStreamLookup) {
+ result = Build<TKqlStreamLookupTable>(ctx, node.Pos())
+ .Table(read.Table())
+ .Columns(read.Columns())
+ .LookupKeys(keys)
+ .Done();
+ }
+ };
+
+ if (buildResult.LiteralRange) {
+ bool ispoint = buildResult.PointPrefixLen == tableDesc.Metadata->KeyColumnNames.size();
+ if (ispoint) {
+ TVector<TExprBase> structMembers;
+ for (size_t i = 0; i < tableDesc.Metadata->KeyColumnNames.size(); ++i) {
+ auto member = Build<TCoNameValueTuple>(ctx, node.Pos())
+ .Name().Build(tableDesc.Metadata->KeyColumnNames[i])
+ .Value(buildResult.LiteralRange->Left.Columns[i])
+ .Done();
+
+ structMembers.push_back(member);
+ }
+ TExprBase keys = Build<TCoAsList>(ctx, node.Pos())
+ .Add<TCoAsStruct>()
+ .Add(structMembers)
+ .Build()
+ .Done();
+
+ buildLookup(keys.Ptr(), input);
+ } else {
+ auto fromExpr = buildResult.LiteralRange->Left.Inclusive
+ ? Build<TKqlKeyInc>(ctx, read.Pos()).Add(buildResult.LiteralRange->Left.Columns).Done().Cast<TKqlKeyTuple>()
+ : Build<TKqlKeyExc>(ctx, read.Pos()).Add(buildResult.LiteralRange->Left.Columns).Done().Cast<TKqlKeyTuple>();
+
+ auto toExpr = buildResult.LiteralRange->Right.Inclusive
+ ? Build<TKqlKeyInc>(ctx, read.Pos()).Add(buildResult.LiteralRange->Right.Columns).Done().Cast<TKqlKeyTuple>()
+ : Build<TKqlKeyExc>(ctx, read.Pos()).Add(buildResult.LiteralRange->Right.Columns).Done().Cast<TKqlKeyTuple>();
+
+ auto keyRange = Build<TKqlKeyRange>(ctx, read.Pos())
+ .From(fromExpr)
+ .To(toExpr)
+ .Done();
+
+ if (indexName) {
+ input = Build<TKqlReadTableIndex>(ctx, read.Pos())
+ .Table(read.Table())
+ .Columns(read.Columns())
+ .Settings(read.Settings())
+ .Range(keyRange)
+ .Index(indexName.Cast())
+ .Done();
+ } else {
+ input = Build<TKqlReadTable>(ctx, read.Pos())
+ .Table(read.Table())
+ .Columns(read.Columns())
+ .Settings(read.Settings())
+ .Range(keyRange)
+ .Done();
+ }
+ }
+ } else if (buildResult.PointPrefixLen == buildResult.UsedPrefixLen &&
+ // readranges is better in case of one range because supports limits and lookupjoin
+ !(buildResult.ExpectedMaxRanges == TMaybe<size_t>(1) && buildResult.PointPrefixLen < tableDesc.Metadata->KeyColumnNames.size()))
+ {
+ YQL_ENSURE(prefixPointsExpr);
+ residualLambda = pointsExtractionResult.PrunedLambda;
+ buildLookup(prefixPointsExpr, input);
+ }
+ }
+
+ if (!input) {
+ TMaybeNode<TExprBase> prefix;
+ if (kqpCtx.Config->PredicateExtract20) {
+ prefix = prefixPointsExpr;
+ }
+
+ if (indexName) {
+ input = Build<TKqlReadTableIndexRanges>(ctx, read.Pos())
+ .Table(read.Table())
+ .Ranges(ranges)
+ .Columns(read.Columns())
+ .Settings(read.Settings())
+ .ExplainPrompt(prompt.BuildNode(ctx, read.Pos()))
+ .Index(indexName.Cast())
+ .PrefixPointsExpr(prefix)
+ .Done();
+ } else {
+ input = Build<TKqlReadTableRanges>(ctx, read.Pos())
+ .Table(read.Table())
+ .Ranges(ranges)
+ .Columns(read.Columns())
+ .Settings(read.Settings())
+ .ExplainPrompt(prompt.BuildNode(ctx, read.Pos()))
+ .PrefixPointsExpr(prefix)
+ .Done();
+ }
}
*input = readMatch->BuildProcessNodes(*input, ctx);
diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_rules.h b/ydb/core/kqp/opt/logical/kqp_opt_log_rules.h
index 02d8348189..24db774faf 100644
--- a/ydb/core/kqp/opt/logical/kqp_opt_log_rules.h
+++ b/ydb/core/kqp/opt/logical/kqp_opt_log_rules.h
@@ -47,6 +47,8 @@ NYql::NNodes::TExprBase KqpRewriteLookupTable(const NYql::NNodes::TExprBase& nod
NYql::NNodes::TExprBase KqpRewriteTopSortOverIndexRead(const NYql::NNodes::TExprBase& node, NYql::TExprContext&,
const TKqpOptimizeContext& kqpCtx, const NYql::TParentsMap& parentsMap);
+NYql::NNodes::TExprBase KqpRewriteTopSortOverRename(const NYql::NNodes::TExprBase& node, NYql::TExprContext& ctx);
+
NYql::NNodes::TExprBase KqpRewriteTakeOverIndexRead(const NYql::NNodes::TExprBase& node, NYql::TExprContext&,
const TKqpOptimizeContext& kqpCtx, const NYql::TParentsMap& parentsMap);
diff --git a/ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp b/ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp
index 1a1068757d..16b322b860 100644
--- a/ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp
+++ b/ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp
@@ -250,6 +250,7 @@ TMaybeNode<TKqpPhysicalTx> PeepholeOptimize(const TKqpPhysicalTx& tx, TExprConte
.Inputs(ctx.ReplaceNodes(stage.Inputs().Ptr(), stagesMap))
.Program(ctx.DeepCopyLambda(TKqpProgram(newProgram).Lambda().Ref()))
.Settings(stage.Settings())
+ .Outputs(stage.Outputs())
.Done();
stages.emplace_back(newStage);
diff --git a/ydb/core/kqp/opt/physical/kqp_opt_phy_build_stage.cpp b/ydb/core/kqp/opt/physical/kqp_opt_phy_build_stage.cpp
index 93c77adc98..e75b949b5a 100644
--- a/ydb/core/kqp/opt/physical/kqp_opt_phy_build_stage.cpp
+++ b/ydb/core/kqp/opt/physical/kqp_opt_phy_build_stage.cpp
@@ -495,6 +495,17 @@ NYql::NNodes::TExprBase KqpBuildSequencerStages(NYql::NNodes::TExprBase node, NY
.AutoIncrementColumns(sequencer.AutoIncrementColumns())
.InputItemType(sequencer.InputItemType())
.Done();
+ } else if (sequencer.Input().Maybe<TDqCnUnionAll>()) {
+ auto output = sequencer.Input().Cast<TDqCnUnionAll>().Output();
+
+ cnSequencer = Build<TKqpCnSequencer>(ctx, sequencer.Pos())
+ .Output(output)
+ .Table(sequencer.Table())
+ .Columns(sequencer.Columns())
+ .AutoIncrementColumns(sequencer.AutoIncrementColumns())
+ .InputItemType(sequencer.InputItemType())
+ .Done();
+
} else {
return node;
}
diff --git a/ydb/core/kqp/opt/physical/kqp_opt_phy_source.cpp b/ydb/core/kqp/opt/physical/kqp_opt_phy_source.cpp
index 1e9b774c0a..058de92c93 100644
--- a/ydb/core/kqp/opt/physical/kqp_opt_phy_source.cpp
+++ b/ydb/core/kqp/opt/physical/kqp_opt_phy_source.cpp
@@ -20,6 +20,7 @@ using namespace NYql::NNodes;
bool UseSource(const TKqpOptimizeContext& kqpCtx, const NYql::TKikimrTableDescription& tableDesc) {
bool useSource = kqpCtx.Config->EnableKqpScanQuerySourceRead && kqpCtx.IsScanQuery();
useSource = useSource || (kqpCtx.Config->EnableKqpDataQuerySourceRead && kqpCtx.IsDataQuery());
+ useSource = useSource || kqpCtx.IsGenericQuery();
useSource = useSource &&
tableDesc.Metadata->Kind != EKikimrTableKind::SysView &&
tableDesc.Metadata->Kind != EKikimrTableKind::Olap;
@@ -81,6 +82,7 @@ TExprBase KqpRewriteReadTable(TExprBase node, TExprContext& ctx, const TKqpOptim
auto settings = TKqpReadTableSettings::Parse(matched->Settings);
auto selectColumns = matched->Columns;
TVector<TCoAtom> skipNullColumns;
+ TExprNode::TPtr limit;
if (settings.SkipNullKeys) {
THashSet<TString> seenColumns;
TVector<TCoAtom> columns;
@@ -99,10 +101,13 @@ TExprBase KqpRewriteReadTable(TExprBase node, TExprContext& ctx, const TKqpOptim
columns.push_back(atom);
}
}
-
+
matched->Columns = Build<TCoAtomList>(ctx, matched->Columns.Pos()).Add(columns).Done();
settings.SkipNullKeys.clear();
+ limit = settings.ItemsLimit;
+ settings.ItemsLimit = nullptr;
+
matched->Settings = settings.BuildNode(ctx, matched->Settings.Pos());
}
@@ -125,24 +130,36 @@ TExprBase KqpRewriteReadTable(TExprBase node, TExprContext& ctx, const TKqpOptim
TCoArgument arg{ctx.NewArgument(stage.Pos(), TStringBuilder() << "_kqp_source_arg")};
args.insert(args.begin(), arg);
+
+ TExprNode::TPtr replaceExpr =
+ Build<TCoToFlow>(ctx, matched->Expr.Pos())
+ .Input(arg)
+ .Done()
+ .Ptr();
+
if (skipNullColumns) {
- argReplaces[matched->Expr.Raw()] =
+ replaceExpr =
Build<TCoExtractMembers>(ctx, node.Pos())
.Members(selectColumns)
.Input<TCoSkipNullMembers>()
- .Input<TCoToFlow>().Input(arg).Build()
+ .Input(replaceExpr)
.Members().Add(skipNullColumns).Build()
.Build()
.Done().Ptr();
- } else {
- argReplaces[matched->Expr.Raw()] =
- Build<TCoToFlow>(ctx, matched->Expr.Pos())
- .Input(arg)
- .Done()
- .Ptr();
}
- auto source =
+ if (limit) {
+ limit = ctx.ReplaceNodes(std::move(limit), argReplaces);
+ replaceExpr =
+ Build<TCoTake>(ctx, node.Pos())
+ .Input(replaceExpr)
+ .Count(limit)
+ .Done().Ptr();
+ }
+
+ argReplaces[matched->Expr.Raw()] = replaceExpr;
+
+ auto source =
Build<TDqSource>(ctx, matched->Expr.Pos())
.Settings<TKqpReadRangesSourceSettings>()
.Table(matched->Table)
diff --git a/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt
index 4b843449f5..324ba1b41a 100644
--- a/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt
@@ -36,6 +36,7 @@ target_link_libraries(core-kqp-provider PUBLIC
public-lib-scheme_types
cpp-client-ydb_topic
yql-core-expr_nodes
+ yql-core-peephole_opt
parser-pg_wrapper-interface
providers-common-codec
providers-common-config
diff --git a/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt
index 46d277a850..125cf43faa 100644
--- a/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt
@@ -37,6 +37,7 @@ target_link_libraries(core-kqp-provider PUBLIC
public-lib-scheme_types
cpp-client-ydb_topic
yql-core-expr_nodes
+ yql-core-peephole_opt
parser-pg_wrapper-interface
providers-common-codec
providers-common-config
diff --git a/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt
index 46d277a850..125cf43faa 100644
--- a/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt
@@ -37,6 +37,7 @@ target_link_libraries(core-kqp-provider PUBLIC
public-lib-scheme_types
cpp-client-ydb_topic
yql-core-expr_nodes
+ yql-core-peephole_opt
parser-pg_wrapper-interface
providers-common-codec
providers-common-config
diff --git a/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt
index 4b843449f5..324ba1b41a 100644
--- a/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt
@@ -36,6 +36,7 @@ target_link_libraries(core-kqp-provider PUBLIC
public-lib-scheme_types
cpp-client-ydb_topic
yql-core-expr_nodes
+ yql-core-peephole_opt
parser-pg_wrapper-interface
providers-common-codec
providers-common-config
diff --git a/ydb/core/kqp/provider/ya.make b/ydb/core/kqp/provider/ya.make
index c25d4d5aa8..e49a6415fc 100644
--- a/ydb/core/kqp/provider/ya.make
+++ b/ydb/core/kqp/provider/ya.make
@@ -35,6 +35,7 @@ PEERDIR(
ydb/public/lib/scheme_types
ydb/public/sdk/cpp/client/ydb_topic
ydb/library/yql/core/expr_nodes
+ ydb/library/yql/core/peephole_opt
ydb/library/yql/parser/pg_wrapper/interface
ydb/library/yql/providers/common/codec
ydb/library/yql/providers/common/config
diff --git a/ydb/core/kqp/provider/yql_kikimr_datasink.cpp b/ydb/core/kqp/provider/yql_kikimr_datasink.cpp
index e7b0857fff..3bf5acc332 100644
--- a/ydb/core/kqp/provider/yql_kikimr_datasink.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_datasink.cpp
@@ -5,6 +5,8 @@
#include <ydb/library/yql/core/yql_expr_optimize.h>
+#include <ydb/library/yql/utils/log/log.h>
+
namespace NYql {
namespace {
@@ -340,13 +342,15 @@ public:
TTypeAnnotationContext& types,
TIntrusivePtr<IKikimrGateway> gateway,
TIntrusivePtr<TKikimrSessionContext> sessionCtx,
+ const NExternalSource::IExternalSourceFactory::TPtr& externalSourceFactory,
TIntrusivePtr<IKikimrQueryExecutor> queryExecutor)
: FunctionRegistry(functionRegistry)
, Types(types)
, Gateway(gateway)
, SessionCtx(sessionCtx)
+ , ExternalSourceFactory(externalSourceFactory)
, IntentDeterminationTransformer(CreateKiSinkIntentDeterminationTransformer(sessionCtx))
- , TypeAnnotationTransformer(CreateKiSinkTypeAnnotationTransformer(gateway, sessionCtx))
+ , TypeAnnotationTransformer(CreateKiSinkTypeAnnotationTransformer(gateway, sessionCtx, types))
, LogicalOptProposalTransformer(CreateKiLogicalOptProposalTransformer(sessionCtx, types))
, PhysicalOptProposalTransformer(CreateKiPhysicalOptProposalTransformer(sessionCtx))
, CallableExecutionTransformer(CreateKiSinkCallableExecutionTransformer(gateway, sessionCtx, queryExecutor))
@@ -496,6 +500,57 @@ public:
.Ptr();
}
+ TExprNode::TPtr RewriteIOExternal(const TKikimrKey& key, const TExprNode::TPtr& node, TExprContext& ctx) {
+ TKiDataSink dataSink(node->ChildPtr(1));
+ auto& tableDesc = SessionCtx->Tables().GetTable(TString{dataSink.Cluster()}, key.GetTablePath());
+ if (!tableDesc.Metadata || tableDesc.Metadata->Kind != EKikimrTableKind::External) {
+ return nullptr;
+ }
+
+ if (tableDesc.Metadata->ExternalSource.SourceType != ESourceType::ExternalDataSource && tableDesc.Metadata->ExternalSource.SourceType != ESourceType::ExternalTable) {
+ YQL_CVLOG(NLog::ELevel::ERROR, NLog::EComponent::ProviderKikimr) << "Skip RewriteIO for external entity: unknown entity type: " << (int)tableDesc.Metadata->ExternalSource.SourceType;
+ return nullptr;
+ }
+
+ ctx.Step.Repeat(TExprStep::DiscoveryIO)
+ .Repeat(TExprStep::Epochs)
+ .Repeat(TExprStep::Intents)
+ .Repeat(TExprStep::LoadTablesMetadata)
+ .Repeat(TExprStep::RewriteIO);
+
+ const auto& externalSource = ExternalSourceFactory->GetOrCreate(tableDesc.Metadata->ExternalSource.Type);
+ if (tableDesc.Metadata->ExternalSource.SourceType == ESourceType::ExternalDataSource) {
+ auto writeArgs = node->ChildrenList();
+ writeArgs[1] = Build<TCoDataSink>(ctx, node->Pos())
+ .Category(ctx.NewAtom(node->Pos(), externalSource->GetName()))
+ .FreeArgs()
+ .Add(writeArgs[1]->ChildrenList()[1])
+ .Build()
+ .Done().Ptr();
+ return ctx.ChangeChildren(*node, std::move(writeArgs));
+ } else { // tableDesc.Metadata->ExternalSource.SourceType == ESourceType::ExternalTable
+ TExprNode::TPtr path = ctx.NewCallable(node->Pos(), "String", { ctx.NewAtom(node->Pos(), tableDesc.Metadata->ExternalSource.TableLocation) });
+ auto table = ctx.NewList(node->Pos(), {ctx.NewAtom(node->Pos(), "table"), path});
+ auto keyNode = ctx.NewCallable(node->Pos(), "Key", {table});
+ auto r = Build<TCoWrite>(ctx, node->Pos())
+ .World(node->Child(0))
+ .DataSink()
+ .Category(ctx.NewAtom(node->Pos(), externalSource->GetName()))
+ .FreeArgs()
+ .Add(ctx.NewAtom(node->Pos(), tableDesc.Metadata->ExternalSource.DataSourcePath))
+ .Build()
+ .Build()
+ .FreeArgs()
+ .Add(keyNode)
+ .Add(node->Child(3))
+ .Add(BuildExternalTableSettings(node->Pos(), ctx, tableDesc.Metadata->Columns, externalSource, tableDesc.Metadata->ExternalSource.TableContent))
+ .Build()
+ .Done().Ptr();
+ return r;
+ }
+ return nullptr;
+ }
+
TExprNode::TPtr RewriteIO(const TExprNode::TPtr& node, TExprContext& ctx) override {
YQL_ENSURE(node->IsCallable(WriteName), "Expected Write!, got: " << node->Content());
@@ -504,6 +559,10 @@ public:
switch (key.GetKeyType()) {
case TKikimrKey::Type::Table: {
+ if (TExprNode::TPtr resultNode = RewriteIOExternal(key, node, ctx)) {
+ return resultNode;
+ }
+
NCommon::TWriteTableSettings settings = NCommon::ParseWriteTableSettings(TExprList(node->Child(4)), ctx);
YQL_ENSURE(settings.Mode);
auto mode = settings.Mode.Cast();
@@ -585,6 +644,10 @@ public:
settings.NotNullColumns = Build<TCoAtomList>(ctx, node->Pos()).Done();
}
+ if (!settings.SerialColumns.IsValid()) {
+ settings.SerialColumns = Build<TCoAtomList>(ctx, node->Pos()).Done();
+ }
+
return Build<TKiCreateTable>(ctx, node->Pos())
.World(node->Child(0))
.DataSink(node->Child(1))
@@ -592,6 +655,7 @@ public:
.Columns(settings.Columns.Cast())
.PrimaryKey(settings.PrimaryKey.Cast())
.NotNullColumns(settings.NotNullColumns.Cast())
+ .SerialColumns(settings.SerialColumns.Cast())
.Settings(settings.Other)
.Indexes(settings.Indexes.Cast())
.Changefeeds(settings.Changefeeds.Cast())
@@ -832,6 +896,7 @@ private:
const TTypeAnnotationContext& Types;
TIntrusivePtr<IKikimrGateway> Gateway;
TIntrusivePtr<TKikimrSessionContext> SessionCtx;
+ NExternalSource::IExternalSourceFactory::TPtr ExternalSourceFactory;
TAutoPtr<IGraphTransformer> IntentDeterminationTransformer;
TAutoPtr<IGraphTransformer> TypeAnnotationTransformer;
@@ -965,9 +1030,10 @@ TIntrusivePtr<IDataProvider> CreateKikimrDataSink(
TTypeAnnotationContext& types,
TIntrusivePtr<IKikimrGateway> gateway,
TIntrusivePtr<TKikimrSessionContext> sessionCtx,
+ const NExternalSource::IExternalSourceFactory::TPtr& externalSourceFactory,
TIntrusivePtr<IKikimrQueryExecutor> queryExecutor)
{
- return new TKikimrDataSink(functionRegistry, types, gateway, sessionCtx, queryExecutor);
+ return new TKikimrDataSink(functionRegistry, types, gateway, sessionCtx, externalSourceFactory, queryExecutor);
}
TAutoPtr<IGraphTransformer> CreateKiSinkIntentDeterminationTransformer(
diff --git a/ydb/core/kqp/provider/yql_kikimr_datasource.cpp b/ydb/core/kqp/provider/yql_kikimr_datasource.cpp
index a1e6093217..139731f4d3 100644
--- a/ydb/core/kqp/provider/yql_kikimr_datasource.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_datasource.cpp
@@ -16,6 +16,52 @@
#include <util/generic/is_in.h>
namespace NYql {
+
+static Ydb::Type CreateYdbType(const NKikimr::NScheme::TTypeInfo& typeInfo, bool notNull) {
+ Ydb::Type ydbType;
+ if (typeInfo.GetTypeId() == NKikimr::NScheme::NTypeIds::Pg) {
+ auto* typeDesc = typeInfo.GetTypeDesc();
+ auto* pg = ydbType.mutable_pg_type();
+ pg->set_type_name(NKikimr::NPg::PgTypeNameFromTypeDesc(typeDesc));
+ pg->set_oid(NKikimr::NPg::PgTypeIdFromTypeDesc(typeDesc));
+ } else {
+ auto& item = notNull
+ ? ydbType
+ : *ydbType.mutable_optional_type()->mutable_item();
+ item.set_type_id((Ydb::Type::PrimitiveTypeId)typeInfo.GetTypeId());
+ }
+ return ydbType;
+}
+
+TExprNode::TPtr BuildExternalTableSettings(TPositionHandle pos, TExprContext& ctx, const TMap<TString, NYql::TKikimrColumnMetadata>& columns, const NKikimr::NExternalSource::IExternalSource::TPtr& source, const TString& content) {
+ TVector<std::pair<TString, const NYql::TTypeAnnotationNode*>> typedColumns;
+ typedColumns.reserve(columns.size());
+ for (const auto& [n, c] : columns) {
+ NYdb::TTypeParser parser(NYdb::TType(CreateYdbType(c.TypeInfo, c.NotNull)));
+ auto type = NFq::MakeType(parser, ctx);
+ typedColumns.emplace_back(n, type);
+ }
+
+ const TString ysonSchema = NYql::NCommon::WriteTypeToYson(NFq::MakeStructType(typedColumns, ctx), NYson::EYsonFormat::Text);
+ TExprNode::TListType items;
+ auto schema = ctx.NewAtom(pos, ysonSchema);
+ auto type = ctx.NewCallable(pos, "SqlTypeFromYson"sv, { schema });
+ auto order = ctx.NewCallable(pos, "SqlColumnOrderFromYson"sv, { schema });
+ auto userSchema = ctx.NewAtom(pos, "userschema"sv);
+ items.emplace_back(ctx.NewList(pos, {userSchema, type, order}));
+
+ for (const auto& [key, values]: source->GetParameters(content)) {
+ TExprNode::TListType children = {ctx.NewAtom(pos, NormalizeName(key))};
+ children.reserve(values.size() + 1);
+ for (const TString& value : values) {
+ children.emplace_back(ctx.NewAtom(pos, value));
+ }
+
+ items.emplace_back(ctx.NewList(pos, std::move(children)));
+ }
+ return ctx.NewList(pos, std::move(items));
+}
+
namespace {
using namespace NKikimr;
@@ -197,10 +243,29 @@ public:
LoadResults.clear();
return false;
}
- it->second->AddCluster(metadata.ExternalSource.DataSourcePath, {{
+
+ THashMap<TString, TString> properties = {{
{"location", metadata.ExternalSource.DataSourceLocation },
{"installation", metadata.ExternalSource.DataSourceInstallation }
- }});
+ }};
+
+ switch (metadata.ExternalSource.DataSourceAuth.identity_case()) {
+ case NKikimrSchemeOp::TAuth::kServiceAccount:
+ properties["serviceAccountId"] = metadata.ExternalSource.DataSourceAuth.GetServiceAccount().GetId();
+ properties["serviceAccountIdSignature"] = metadata.ExternalSource.ServiceAccountIdSignature;
+ properties["serviceAccountIdSignatureReference"] = metadata.ExternalSource.DataSourceAuth.GetServiceAccount().GetSecretName();
+ break;
+
+ case NKikimrSchemeOp::TAuth::kNone:
+ break;
+
+ case NKikimrSchemeOp::TAuth::IDENTITY_NOT_SET:
+ res.AddIssue(TIssue("Identity case is not specified"));
+ return false;
+ }
+
+ it->second->AddCluster(metadata.ExternalSource.DataSourcePath, properties);
+
return true;
}
@@ -349,7 +414,7 @@ public:
, IntentDeterminationTransformer(new TKiSourceIntentDeterminationTransformer(sessionCtx))
, LoadTableMetadataTransformer(CreateKiSourceLoadTableMetadataTransformer(gateway, sessionCtx, types, externalSourceFactory, isInternalCall))
, TypeAnnotationTransformer(CreateKiSourceTypeAnnotationTransformer(sessionCtx, types))
- , CallableExecutionTransformer(CreateKiSourceCallableExecutionTransformer(gateway, sessionCtx))
+ , CallableExecutionTransformer(CreateKiSourceCallableExecutionTransformer(gateway, sessionCtx, types))
{
Y_UNUSED(FunctionRegistry);
@@ -532,47 +597,6 @@ public:
return false;
}
- static Ydb::Type CreateYdbType(const NScheme::TTypeInfo& typeInfo, bool notNull) {
- Ydb::Type ydbType;
- if (typeInfo.GetTypeId() == NScheme::NTypeIds::Pg) {
- auto* typeDesc = typeInfo.GetTypeDesc();
- auto* pg = ydbType.mutable_pg_type();
- pg->set_type_name(NKikimr::NPg::PgTypeNameFromTypeDesc(typeDesc));
- pg->set_oid(NKikimr::NPg::PgTypeIdFromTypeDesc(typeDesc));
- } else {
- auto& item = notNull
- ? ydbType
- : *ydbType.mutable_optional_type()->mutable_item();
- item.set_type_id((Ydb::Type::PrimitiveTypeId)typeInfo.GetTypeId());
- }
- return ydbType;
- }
-
- TExprNode::TPtr BuildSettings(TPositionHandle pos, TExprContext& ctx, const TMap<TString, NYql::TKikimrColumnMetadata>& columns, const NExternalSource::IExternalSource::TPtr& source, const TString& content) {
- TVector<std::pair<TString, const NYql::TTypeAnnotationNode*>> typedColumns;
- typedColumns.reserve(columns.size());
- for (const auto& [n, c] : columns) {
- NYdb::TTypeParser parser(NYdb::TType(CreateYdbType(c.TypeInfo, c.NotNull)));
- auto type = NFq::MakeType(parser, ctx);
- typedColumns.emplace_back(n, type);
- }
-
- const TString ysonSchema = NYql::NCommon::WriteTypeToYson(NFq::MakeStructType(typedColumns, ctx), NYson::EYsonFormat::Text);
- TExprNode::TListType items;
- auto schema = ctx.NewAtom(pos, ysonSchema);
- auto type = ctx.NewCallable(pos, "SqlTypeFromYson"sv, { schema });
- auto order = ctx.NewCallable(pos, "SqlColumnOrderFromYson"sv, { schema });
- auto userSchema = ctx.NewAtom(pos, "userschema"sv);
- items.emplace_back(ctx.NewList(pos, {userSchema, type, order}));
-
- for (const auto& [key, value]: source->GetParamters(content)) {
- auto keyAtom = ctx.NewAtom(pos, key);
- auto valueAtom = ctx.NewAtom(pos, value);
- items.emplace_back(ctx.NewList(pos, {keyAtom, valueAtom}));
- }
- return ctx.NewList(pos, std::move(items));
- }
-
TExprNode::TPtr RewriteIO(const TExprNode::TPtr& node, TExprContext& ctx) override {
auto read = node->Child(0);
if (!read->IsCallable(ReadName)) {
@@ -645,7 +669,7 @@ public:
.FreeArgs()
.Add(ctx.NewCallable(node->Pos(), "MrTableConcat", {key}))
.Add(ctx.NewCallable(node->Pos(), "Void", {}))
- .Add(BuildSettings(node->Pos(), ctx, tableDesc.Metadata->Columns, source, tableDesc.Metadata->ExternalSource.TableContent))
+ .Add(BuildExternalTableSettings(node->Pos(), ctx, tableDesc.Metadata->Columns, source, tableDesc.Metadata->ExternalSource.TableContent))
.Build()
.Done().Ptr();
auto retChildren = node->ChildrenList();
diff --git a/ydb/core/kqp/provider/yql_kikimr_exec.cpp b/ydb/core/kqp/provider/yql_kikimr_exec.cpp
index b27072bc9d..1557ede0b7 100644
--- a/ydb/core/kqp/provider/yql_kikimr_exec.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_exec.cpp
@@ -9,6 +9,8 @@
#include <ydb/library/yql/core/type_ann/type_ann_expr.h>
#include <ydb/library/yql/core/type_ann/type_ann_core.h>
#include <ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.h>
+#include <ydb/library/yql/providers/common/mkql/yql_provider_mkql.h>
+#include <ydb/library/yql/providers/common/mkql/yql_type_mkql.h>
#include <ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.h>
#include <ydb/core/ydb_convert/ydb_convert.h>
@@ -16,6 +18,12 @@
#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
#include <ydb/public/api/protos/ydb_topic.pb.h>
+#include <ydb/library/yql/dq/tasks/dq_task_program.h>
+
+#include <ydb/library/yql/minikql/mkql_program_builder.h>
+
+#include <ydb/core/kqp/provider/yql_kikimr_results.h>
+
namespace NYql {
namespace {
@@ -171,33 +179,6 @@ namespace {
return dropGroupSettings;
}
- TString GetOrDefault(const TCreateObjectSettings& container, const TString& key, const TString& defaultValue = TString{}) {
- auto fValue = container.GetFeaturesExtractor().Extract(key);
- return fValue ? *fValue : defaultValue;
- }
-
- TCreateExternalDataSourceSettings ParseCreateExternalDataSourceSettings(const TCreateObjectSettings& settings) {
- TCreateExternalDataSourceSettings out;
- out.ExternalDataSource = settings.GetObjectId();
- out.SourceType = GetOrDefault(settings, "source_type");
- out.AuthMethod = GetOrDefault(settings, "auth_method");
- out.Installation = GetOrDefault(settings, "installation");
- out.Location = GetOrDefault(settings, "location");
- return out;
- }
-
- TAlterExternalDataSourceSettings ParseAlterExternalDataSourceSettings(const TAlterObjectSettings& settings) {
- TAlterExternalDataSourceSettings out;
- out.ExternalDataSource = settings.GetObjectId();
- return out;
- }
-
- TDropExternalDataSourceSettings ParseDropExternalDataSourceSettings(const TDropObjectSettings& settings) {
- TDropExternalDataSourceSettings out;
- out.ExternalDataSource = settings.GetObjectId();
- return out;
- }
-
TCreateTableStoreSettings ParseCreateTableStoreSettings(TKiCreateTable create, const TTableSettings& settings) {
TCreateTableStoreSettings out;
out.TableStore = TString(create.Table());
@@ -253,12 +234,11 @@ namespace {
auto type = columnType->Cast<TTypeExprType>()->GetType();
auto notNull = type->GetKind() != ETypeAnnotationKind::Optional;
- auto actualType = notNull ? type : type->Cast<TOptionalExprType>()->GetItemType();
- auto dataType = actualType->Cast<TDataExprType>();
+ auto actualType = RemoveAllOptionals(type);
TKikimrColumnMetadata columnMeta;
columnMeta.Name = columnName;
- columnMeta.Type = dataType->GetName();
+ columnMeta.Type = FormatType(actualType);
columnMeta.NotNull = notNull;
out.ColumnOrder.push_back(columnName);
@@ -519,11 +499,88 @@ private:
};
class TKiSourceCallableExecutionTransformer : public TAsyncCallbackTransformer<TKiSourceCallableExecutionTransformer> {
+private:
+ IGraphTransformer::TStatus PeepHole(TExprNode::TPtr input, TExprNode::TPtr& output, TExprContext& ctx) const {
+ TPeepholeSettings peepholeSettings;
+ bool hasNonDeterministicFunctions;
+ auto status = PeepHoleOptimizeNode(input, output, ctx, TypesCtx, nullptr, hasNonDeterministicFunctions, peepholeSettings);
+ if (status.Level != TStatus::Ok) {
+ ctx.AddError(TIssue(ctx.GetPosition(output->Pos()), TString("Peephole optimization failed for Dq stage")));
+ return status;
+ }
+ return status;
+ }
+
+ IGraphTransformer::TStatus GetLambdaBody(TExprNode::TPtr resInput, NKikimrMiniKQL::TType& resultType, TExprContext& ctx, TString& lambda) {
+ auto pos = resInput->Pos();
+ auto typeAnn = resInput->GetTypeAnn();
+
+ const auto kind = resInput->GetTypeAnn()->GetKind();
+ const bool data = kind != ETypeAnnotationKind::Flow && kind != ETypeAnnotationKind::Stream && kind != ETypeAnnotationKind::Optional;
+ auto node = ctx.WrapByCallableIf(kind != ETypeAnnotationKind::Stream, "ToStream",
+ ctx.WrapByCallableIf(data, "Just", std::move(resInput)));
+
+ auto peepHoleStatus = PeepHole(node, node, ctx);
+ if (peepHoleStatus.Level != IGraphTransformer::TStatus::Ok) {
+ return peepHoleStatus;
+ }
+
+ auto guard = Guard(SessionCtx->Query().QueryData->GetAllocState()->Alloc);
+
+ auto input = Build<TDqPhyStage>(ctx, pos)
+ .Inputs()
+ .Build()
+ .Program<TCoLambda>()
+ .Args({})
+ .Body(node)
+ .Build()
+ .Settings().Build()
+ .Done().Ptr();
+
+ NCommon::TMkqlCommonCallableCompiler compiler;
+
+ auto programLambda = TDqPhyStage(input).Program();
+
+ TVector<TExprBase> fakeReads;
+ auto paramsType = NDq::CollectParameters(programLambda, ctx);
+ lambda = NDq::BuildProgram(
+ programLambda, *paramsType, compiler, SessionCtx->Query().QueryData->GetAllocState()->TypeEnv,
+ *SessionCtx->Query().QueryData->GetAllocState()->HolderFactory.GetFunctionRegistry(),
+ ctx, fakeReads);
+
+ NKikimr::NMiniKQL::TProgramBuilder programBuilder(SessionCtx->Query().QueryData->GetAllocState()->TypeEnv,
+ *SessionCtx->Query().QueryData->GetAllocState()->HolderFactory.GetFunctionRegistry());
+
+ TStringStream errorStream;
+ auto type = NYql::NCommon::BuildType(*typeAnn, programBuilder, errorStream);
+ ExportTypeToProto(type, resultType);
+
+ return IGraphTransformer::TStatus::Ok;
+ }
+
+ TString EncodeResultToYson(const NKikimrMiniKQL::TResult& result, bool& truncated) {
+ TStringStream ysonStream;
+ NYson::TYsonWriter writer(&ysonStream, NYson::EYsonFormat::Binary);
+ NYql::IDataProvider::TFillSettings fillSettings;
+ KikimrResultToYson(ysonStream, writer, result, {}, fillSettings, truncated);
+
+ TStringStream out;
+ NYson::TYsonWriter writer2((IOutputStream*)&out);
+ writer2.OnBeginMap();
+ writer2.OnKeyedItem("Data");
+ writer2.OnRaw(ysonStream.Str());
+ writer2.OnEndMap();
+
+ return out.Str();
+ }
+
public:
TKiSourceCallableExecutionTransformer(TIntrusivePtr<IKikimrGateway> gateway,
- TIntrusivePtr<TKikimrSessionContext> sessionCtx)
+ TIntrusivePtr<TKikimrSessionContext> sessionCtx,
+ TTypeAnnotationContext& types)
: Gateway(gateway)
- , SessionCtx(sessionCtx) {}
+ , SessionCtx(sessionCtx)
+ , TypesCtx(types) {}
std::pair<TStatus, TAsyncTransformCallbackFuture> CallbackTransform(const TExprNode::TPtr& input,
TExprNode::TPtr& output, TExprContext& ctx)
@@ -544,14 +601,44 @@ public:
}
if (input->Content() == "Result") {
- auto resultInput = TExprBase(input->ChildPtr(0));
- auto exec = resultInput.Maybe<TCoNth>().Tuple().Maybe<TCoRight>().Input();
- YQL_ENSURE(exec.Maybe<TKiExecDataQuery>());
+ auto result = TMaybeNode<TResult>(input).Cast();
+ NKikimrMiniKQL::TType resultType;
+ TString program;
+ TStatus status = GetLambdaBody(result.Input().Ptr(), resultType, ctx, program);
+ if (status.Level != TStatus::Ok) {
+ return SyncStatus(status);
+ }
+ auto asyncResult = Gateway->ExecuteLiteral(program, resultType, SessionCtx->Query().QueryData->GetAllocState());
+
+ return std::make_pair(IGraphTransformer::TStatus::Async, asyncResult.Apply(
+ [this](const NThreading::TFuture<IKikimrGateway::TExecuteLiteralResult>& future) {
+ return TAsyncTransformCallback(
+ [future, this](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) {
+
+ const auto& literalResult = future.GetValueSync();
+
+ if (!literalResult.Success()) {
+ for (const auto& issue : literalResult.Issues()) {
+ ctx.AddError(issue);
+ }
+ input->SetState(TExprNode::EState::Error);
+ return IGraphTransformer::TStatus::Error;
+ }
- ui32 index = FromString<ui32>(resultInput.Cast<TCoNth>().Index().Value());
- YQL_ENSURE(index == 0);
+ bool truncated = false;
+ auto yson = this->EncodeResultToYson(literalResult.Result, truncated);
+ if (truncated) {
+ input->SetState(TExprNode::EState::Error);
+ ctx.AddError(TIssue(ctx.GetPosition(input->Pos()), "EvaluteExpr result is too big and was truncated"));
+ return IGraphTransformer::TStatus::Error;
+ }
- return RunResOrPullForExec(TResOrPullBase(input), exec.Cast(), ctx, 0);
+ output = input;
+ input->SetState(TExprNode::EState::ExecutionComplete);
+ input->SetResult(ctx.NewAtom(input->Pos(), yson));
+ return IGraphTransformer::TStatus::Ok;
+ });
+ }));
}
if (input->Content() == ConfigureName) {
@@ -677,6 +764,7 @@ private:
private:
TIntrusivePtr<IKikimrGateway> Gateway;
TIntrusivePtr<TKikimrSessionContext> SessionCtx;
+ TTypeAnnotationContext& TypesCtx;
};
template <class TKiObject, class TSettings>
@@ -770,48 +858,6 @@ public:
using TBase::TBase;
};
-class TCreateExternalDataSourceTransformer: public TObjectModifierTransformer<TKiCreateObject, TCreateObjectSettings> {
-private:
- using TBase = TObjectModifierTransformer<TKiCreateObject, TCreateObjectSettings>;
-protected:
- virtual TFuture<IKikimrGateway::TGenericResult> DoExecute(const TString& cluster, const TCreateObjectSettings& settings) override {
- if (!SessionCtx->Config().FeatureFlags.GetEnableExternalDataSources()) {
- return MakeErrorFuture<IKikimrGateway::TGenericResult>(std::make_exception_ptr(yexception() << "External data sources are disabled. Please contact your system administrator to enable it"));
- }
- return GetGateway()->CreateExternalDataSource(cluster, ParseCreateExternalDataSourceSettings(settings), true);
- }
-public:
- using TBase::TBase;
-};
-
-class TAlterExternalDataSourceTransformer: public TObjectModifierTransformer<TKiAlterObject, TAlterObjectSettings> {
-private:
- using TBase = TObjectModifierTransformer<TKiAlterObject, TAlterObjectSettings>;
-protected:
- virtual TFuture<IKikimrGateway::TGenericResult> DoExecute(const TString& cluster, const TAlterObjectSettings& settings) override {
- if (!SessionCtx->Config().FeatureFlags.GetEnableExternalDataSources()) {
- return MakeErrorFuture<IKikimrGateway::TGenericResult>(std::make_exception_ptr(yexception() << "External data sources are disabled. Please contact your system administrator to enable it"));
- }
- return GetGateway()->AlterExternalDataSource(cluster, ParseAlterExternalDataSourceSettings(settings));
- }
-public:
- using TBase::TBase;
-};
-
-class TDropExternalDataSourceTransformer: public TObjectModifierTransformer<TKiDropObject, TDropObjectSettings> {
-private:
- using TBase = TObjectModifierTransformer<TKiDropObject, TDropObjectSettings>;
-protected:
- virtual TFuture<IKikimrGateway::TGenericResult> DoExecute(const TString& cluster, const TDropObjectSettings& settings) override {
- if (!SessionCtx->Config().FeatureFlags.GetEnableExternalDataSources()) {
- return MakeErrorFuture<IKikimrGateway::TGenericResult>(std::make_exception_ptr(yexception() << "External data sources are disabled. Please contact your system administrator to enable it"));
- }
- return GetGateway()->DropExternalDataSource(cluster, ParseDropExternalDataSourceSettings(settings));
- }
-public:
- using TBase::TBase;
-};
-
class TKiSinkCallableExecutionTransformer : public TAsyncCallbackTransformer<TKiSinkCallableExecutionTransformer> {
public:
TKiSinkCallableExecutionTransformer(
@@ -1677,21 +1723,15 @@ public:
}
if (auto kiObject = TMaybeNode<TKiCreateObject>(input)) {
- return kiObject.Cast().TypeId() == "EXTERNAL_DATA_SOURCE"
- ? TCreateExternalDataSourceTransformer("CREATE EXTERNAL DATA SOURCE", Gateway, SessionCtx).Execute(kiObject.Cast(), input, ctx)
- : TCreateObjectTransformer("CREATE OBJECT", Gateway, SessionCtx).Execute(kiObject.Cast(), input, ctx);
+ return TCreateObjectTransformer("CREATE OBJECT", Gateway, SessionCtx).Execute(kiObject.Cast(), input, ctx);
}
if (auto kiObject = TMaybeNode<TKiAlterObject>(input)) {
- return kiObject.Cast().TypeId() == "EXTERNAL_DATA_SOURCE"
- ? TAlterExternalDataSourceTransformer("ALTER EXTERNAL DATA SOURCE", Gateway, SessionCtx).Execute(kiObject.Cast(), input, ctx)
- : TAlterObjectTransformer("ALTER OBJECT", Gateway, SessionCtx).Execute(kiObject.Cast(), input, ctx);
+ return TAlterObjectTransformer("ALTER OBJECT", Gateway, SessionCtx).Execute(kiObject.Cast(), input, ctx);
}
if (auto kiObject = TMaybeNode<TKiDropObject>(input)) {
- return kiObject.Cast().TypeId() == "EXTERNAL_DATA_SOURCE"
- ? TDropExternalDataSourceTransformer("DROP EXTERNAL DATA SOURCE", Gateway, SessionCtx).Execute(kiObject.Cast(), input, ctx)
- : TDropObjectTransformer("DROP OBJECT", Gateway, SessionCtx).Execute(kiObject.Cast(), input, ctx);
+ return TDropObjectTransformer("DROP OBJECT", Gateway, SessionCtx).Execute(kiObject.Cast(), input, ctx);
}
if (auto maybeCreateGroup = TMaybeNode<TKiCreateGroup>(input)) {
@@ -1955,9 +1995,10 @@ private:
TAutoPtr<IGraphTransformer> CreateKiSourceCallableExecutionTransformer(
TIntrusivePtr<IKikimrGateway> gateway,
- TIntrusivePtr<TKikimrSessionContext> sessionCtx)
+ TIntrusivePtr<TKikimrSessionContext> sessionCtx,
+ TTypeAnnotationContext& types)
{
- return new TKiSourceCallableExecutionTransformer(gateway, sessionCtx);
+ return new TKiSourceCallableExecutionTransformer(gateway, sessionCtx, types);
}
TAutoPtr<IGraphTransformer> CreateKiSinkCallableExecutionTransformer(
diff --git a/ydb/core/kqp/provider/yql_kikimr_expr_nodes.json b/ydb/core/kqp/provider/yql_kikimr_expr_nodes.json
index 2d76383907..54208ac7cd 100644
--- a/ydb/core/kqp/provider/yql_kikimr_expr_nodes.json
+++ b/ydb/core/kqp/provider/yql_kikimr_expr_nodes.json
@@ -119,7 +119,8 @@
{"Index": 9, "Name": "TableSettings", "Type": "TCoNameValueTupleList"},
{"Index": 10, "Name": "Changefeeds", "Type": "TCoChangefeedList"},
{"Index": 11, "Name": "TableType", "Type": "TCoAtom"},
- {"Index": 12, "Name": "NotNullColumns", "Type": "TCoAtomList"}
+ {"Index": 12, "Name": "NotNullColumns", "Type": "TCoAtomList"},
+ {"Index": 13, "Name": "SerialColumns", "Type": "TCoAtomList"}
]
},
{
diff --git a/ydb/core/kqp/provider/yql_kikimr_gateway.h b/ydb/core/kqp/provider/yql_kikimr_gateway.h
index e700162e66..d834179a69 100644
--- a/ydb/core/kqp/provider/yql_kikimr_gateway.h
+++ b/ydb/core/kqp/provider/yql_kikimr_gateway.h
@@ -15,6 +15,7 @@
#include <ydb/services/metadata/abstract/kqp_common.h>
#include <ydb/services/metadata/manager/abstract.h>
+#include <ydb/core/kqp/query_data/kqp_query_data.h>
#include <ydb/core/protos/flat_scheme_op.pb.h>
#include <ydb/core/protos/kqp.pb.h>
#include <ydb/core/scheme/scheme_types_proto.h>
@@ -336,6 +337,7 @@ struct TExternalSource {
TString DataSourcePath;
TString DataSourceLocation;
TString DataSourceInstallation;
+ TString ServiceAccountIdSignature;
NKikimrSchemeOp::TAuth DataSourceAuth;
};
@@ -586,22 +588,6 @@ struct TDropExternalTableSettings {
TString ExternalTable;
};
-struct TCreateExternalDataSourceSettings {
- TString ExternalDataSource;
- TString SourceType;
- TString Location;
- TString Installation;
- TString AuthMethod;
-};
-
-struct TAlterExternalDataSourceSettings {
- TString ExternalDataSource;
-};
-
-struct TDropExternalDataSourceSettings {
- TString ExternalDataSource;
-};
-
struct TKikimrListPathItem {
TKikimrListPathItem(TString name, bool isDirectory) {
Name = name;
@@ -683,6 +669,10 @@ public:
google::protobuf::RepeatedPtrField<NKqpProto::TResultSetMeta> ResultSetsMeta;
};
+ struct TExecuteLiteralResult : public TGenericResult {
+ NKikimrMiniKQL::TResult Result;
+ };
+
struct TLoadTableMetadataSettings {
TLoadTableMetadataSettings& WithTableStats(bool enable) {
RequestStats_ = enable;
@@ -780,14 +770,10 @@ public:
virtual NThreading::TFuture<TGenericResult> DropExternalTable(const TString& cluster, const TDropExternalTableSettings& settings) = 0;
- virtual NThreading::TFuture<TGenericResult> CreateExternalDataSource(const TString& cluster, const TCreateExternalDataSourceSettings& settings, bool createDir) = 0;
-
- virtual NThreading::TFuture<TGenericResult> AlterExternalDataSource(const TString& cluster, const TAlterExternalDataSourceSettings& settings) = 0;
-
- virtual NThreading::TFuture<TGenericResult> DropExternalDataSource(const TString& cluster, const TDropExternalDataSourceSettings& settings) = 0;
-
virtual TVector<TString> GetCollectedSchemeData() = 0;
+ virtual NThreading::TFuture<TExecuteLiteralResult> ExecuteLiteral(const TString& program, const NKikimrMiniKQL::TType& resultType, NKikimr::NKqp::TTxAllocatorState::TPtr txAlloc) = 0;
+
public:
using TCreateDirFunc = std::function<void(const TString&, const TString&, NThreading::TPromise<TGenericResult>)>;
diff --git a/ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp b/ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp
index a390e09ac6..85ad54cd1d 100644
--- a/ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp
@@ -1,5 +1,6 @@
#include <ydb/core/client/minikql_compile/mkql_compile_service.h>
#include <ydb/core/client/minikql_result_lib/converter.h>
+#include <ydb/core/kqp/gateway/actors/kqp_ic_gateway_actors.h>
#include <ydb/core/kqp/gateway/kqp_gateway.h>
#include <ydb/core/kqp/gateway/kqp_metadata_loader.h>
#include <ydb/core/kqp/ut/common/kqp_ut_common.h>
@@ -134,13 +135,12 @@ void TestDropTableCommon(TIntrusivePtr<IKikimrGateway> gateway) {
}
void TestCreateExternalDataSource(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGateway> gateway, const TString& path) {
- NYql::TCreateExternalDataSourceSettings settings;
- settings.ExternalDataSource = path;
- settings.SourceType = "ObjectStorage";
- settings.AuthMethod = "NONE";
- settings.Installation = "cloud";
-
- auto responseFuture = gateway->CreateExternalDataSource(TestCluster, settings, true);
+ TCreateObjectSettings settings("EXTERNAL_DATA_SOURCE", path, {
+ {"source_type", "ObjectStorage"},
+ {"auth_method", "NONE"},
+ {"installation", "cloud"}
+ });
+ auto responseFuture = gateway->CreateObject(TestCluster, settings);
responseFuture.Wait();
auto response = responseFuture.GetValue();
response.Issues().PrintTo(Cerr);
@@ -160,7 +160,6 @@ void TestCreateExternalDataSource(TTestActorRuntime& runtime, TIntrusivePtr<IKik
void TestCreateExternalTable(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGateway> gateway, const TString& path, bool fail = false) {
NYql::TCreateExternalTableSettings settings;
-
settings.ExternalTable = path;
settings.DataSourcePath = "/Root/f1/f2/external_data_source";
settings.Location = "/";
@@ -191,7 +190,6 @@ void TestCreateExternalTable(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGa
}
void TestDropExternalTable(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGateway> gateway, const TString& path) {
-
auto responseFuture = gateway->DropExternalTable(TestCluster, TDropExternalTableSettings{.ExternalTable=path});
responseFuture.Wait();
auto response = responseFuture.GetValue();
@@ -205,7 +203,8 @@ void TestDropExternalTable(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGate
}
void TestDropExternalDataSource(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGateway> gateway, const TString& path) {
- auto responseFuture = gateway->DropExternalDataSource(TestCluster, TDropExternalDataSourceSettings{.ExternalDataSource=path});
+ TDropObjectSettings settings("EXTERNAL_DATA_SOURCE", path, {});
+ auto responseFuture = gateway->DropObject(TestCluster, settings);
responseFuture.Wait();
auto response = responseFuture.GetValue();
response.Issues().PrintTo(Cerr);
@@ -241,12 +240,14 @@ Y_UNIT_TEST_SUITE(KikimrIcGateway) {
Y_UNIT_TEST(TestCreateExternalTable) {
TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false));
+ kikimr.GetTestServer().GetRuntime()->GetAppData(0).FeatureFlags.SetEnableExternalDataSources(true);
TestCreateExternalDataSource(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_data_source");
TestCreateExternalTable(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_table");
}
Y_UNIT_TEST(TestCreateSameExternalTable) {
TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false));
+ kikimr.GetTestServer().GetRuntime()->GetAppData(0).FeatureFlags.SetEnableExternalDataSources(true);
TestCreateExternalDataSource(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_data_source");
TestCreateExternalTable(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_table");
TestCreateExternalTable(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_table", true);
@@ -254,6 +255,7 @@ Y_UNIT_TEST_SUITE(KikimrIcGateway) {
Y_UNIT_TEST(TestDropExternalTable) {
TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false));
+ kikimr.GetTestServer().GetRuntime()->GetAppData(0).FeatureFlags.SetEnableExternalDataSources(true);
TestCreateExternalDataSource(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_data_source");
TestCreateExternalTable(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_table");
TestDropExternalTable(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_table");
@@ -261,6 +263,7 @@ Y_UNIT_TEST_SUITE(KikimrIcGateway) {
Y_UNIT_TEST(TestDropExternalDataSource) {
TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false));
+ kikimr.GetTestServer().GetRuntime()->GetAppData(0).FeatureFlags.SetEnableExternalDataSources(true);
TestCreateExternalDataSource(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_data_source");
TestDropExternalDataSource(*kikimr.GetTestServer().GetRuntime(), GetIcGateway(kikimr.GetTestServer()), "/Root/f1/f2/external_data_source");
}
@@ -298,6 +301,68 @@ Y_UNIT_TEST_SUITE(KikimrIcGateway) {
UNIT_ASSERT_VALUES_EQUAL(response.Metadata->ExternalSource.DataSourceLocation, "my-bucket");
UNIT_ASSERT_VALUES_EQUAL(response.Metadata->Columns.size(), 2);
}
+
+ void CreateSecretObject(const TString& secretId, const TString& secretValue, TSession& session, TTestActorRuntime* runtime) {
+ auto createSecretQuery = TStringBuilder() << "CREATE OBJECT " << secretId << " (TYPE SECRET) WITH value = `" << secretValue << "`;";
+ auto createSecretQueryResult = session.ExecuteSchemeQuery(createSecretQuery).GetValueSync();
+ UNIT_ASSERT_C(createSecretQueryResult.GetStatus() == NYdb::EStatus::SUCCESS, createSecretQueryResult.GetIssues().ToString());
+
+ TDuration maximalWaitTime = TDuration::Seconds(20);
+ TInstant start = TInstant::Now();
+ bool created = false;
+ while (!created && TInstant::Now() - start <= maximalWaitTime) {
+ auto promise = NThreading::NewPromise<TDescribeObjectResponse>();
+ runtime->Register(new TDescribeObjectActor("", secretId, promise));
+ TDescribeObjectResponse response = promise.GetFuture().GetValueSync();
+
+ if (response.Status == Ydb::StatusIds::SUCCESS) {
+ created = true;
+ break;
+ }
+
+ Sleep(TDuration::Seconds(2));
+ }
+
+ UNIT_ASSERT_C(created, "Creating secret object timeout.\n");
+ }
+
+ Y_UNIT_TEST(TestLoadSecretValueFromExternalDataSourceMetadata) {
+ TKikimrRunner kikimr;
+ kikimr.GetTestServer().GetRuntime()->GetAppData(0).FeatureFlags.SetEnableExternalDataSources(true);
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ TString secretId = "mySaSecretId";
+ TString secretValue = "mySaSecretValue";
+ CreateSecretObject(secretId, secretValue, session, kikimr.GetTestServer().GetRuntime());
+
+ TString externalDataSourceName = "/Root/ExternalDataSource";
+ TString externalTableName = "/Root/ExternalTable";
+ auto query = TStringBuilder() << R"(
+ CREATE EXTERNAL DATA SOURCE `)" << externalDataSourceName << R"(` WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="my-bucket",
+ AUTH_METHOD="SERVICE_ACCOUNT",
+ SERVICE_ACCOUNT_ID="",
+ SERVICE_ACCOUNT_SECRET_NAME=")" << secretId << R"("
+ );
+ CREATE EXTERNAL TABLE `)" << externalTableName << R"(` (
+ Key Uint64,
+ Value String
+ ) WITH (
+ DATA_SOURCE=")" << externalDataSourceName << R"(",
+ LOCATION="/"
+ );)";
+ auto result = session.ExecuteSchemeQuery(query).GetValueSync();
+ UNIT_ASSERT_C(result.GetStatus() == NYdb::EStatus::SUCCESS, result.GetIssues().ToString());
+
+ auto responseFuture = GetIcGateway(kikimr.GetTestServer())->LoadTableMetadata(TestCluster, externalTableName, IKikimrGateway::TLoadTableMetadataSettings());
+ responseFuture.Wait();
+
+ auto response = responseFuture.GetValue();
+ UNIT_ASSERT_C(response.Success(), response.Issues().ToOneLineString());
+ UNIT_ASSERT_VALUES_EQUAL(response.Metadata->ExternalSource.ServiceAccountIdSignature, secretValue);
+ }
}
} // namespace NYql
diff --git a/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp b/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp
index c50913c001..c2f5a31f4d 100644
--- a/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp
@@ -328,25 +328,33 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
return result;
}
- for (const auto& dataSource : types.DataSources) {
- if (auto* dqIntegration = dataSource->GetDqIntegration(); dqIntegration
- && dqIntegration->CanRead(*node.Ptr(), ctx)
- && dqIntegration->EstimateReadSize(TDqSettings::TDefault::DataSizePerJob, TDqSettings::TDefault::MaxTasksPerStage, *node.Ptr(), ctx)) {
- txRes.Ops.insert(node.Raw());
- for (size_t i = 0, childrenSize = node.Raw()->ChildrenSize(); i < childrenSize; ++i) {
- if (TExprNode::TPtr child = node.Raw()->ChildPtr(i)) {
- bool isWorldChild = false;
- if (child->IsWorld()) {
- isWorldChild = true;
- } else if (auto* typeAnn = child->GetTypeAnn(); typeAnn && typeAnn->GetKind() == ETypeAnnotationKind::World) {
- isWorldChild = true;
- }
- if (isWorldChild) {
- return ExploreTx(TExprBase(child), ctx, dataSink, txRes, tablesData, types);
+ if (node.Ref().ChildrenSize() > 1) {
+ TExprBase dataSourceArg(node.Ref().Child(1));
+ if (auto maybeDataSource = dataSourceArg.Maybe<TCoDataSource>()) {
+ TStringBuf dataSourceCategory = maybeDataSource.Cast().Category();
+ auto dataSourceProviderIt = types.DataSourceMap.find(dataSourceCategory);
+ if (dataSourceProviderIt != types.DataSourceMap.end()) {
+ if (auto* dqIntegration = dataSourceProviderIt->second->GetDqIntegration()) {
+ if (dqIntegration->CanRead(*node.Ptr(), ctx)
+ && dqIntegration->EstimateReadSize(
+ TDqSettings::TDefault::DataSizePerJob,
+ TDqSettings::TDefault::MaxTasksPerStage,
+ *node.Ptr(),
+ ctx))
+ {
+ txRes.Ops.insert(node.Raw());
+ for (size_t i = 0, childrenSize = node.Raw()->ChildrenSize(); i < childrenSize; ++i) {
+ if (TExprNode::TPtr child = node.Raw()->ChildPtr(i)) {
+ auto* typeAnn = child->GetTypeAnn();
+ if (typeAnn && typeAnn->GetKind() == ETypeAnnotationKind::World) {
+ return ExploreTx(TExprBase(child), ctx, dataSink, txRes, tablesData, types);
+ }
+ }
+ }
+ YQL_ENSURE(false, "Node \"" << node.Ref().Content() << "\" is expected to contain world child");
}
}
}
- return true;
}
}
@@ -382,6 +390,32 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
return result;
}
+ if (node.Ref().ChildrenSize() > 1) {
+ TExprBase dataSinkArg(node.Ref().Child(1));
+ if (auto maybeDataSink = dataSinkArg.Maybe<TCoDataSink>()) {
+ TStringBuf dataSinkCategory = maybeDataSink.Cast().Category();
+ auto dataSinkProviderIt = types.DataSinkMap.find(dataSinkCategory);
+ if (dataSinkProviderIt != types.DataSinkMap.end()) {
+ if (auto* dqIntegration = dataSinkProviderIt->second->GetDqIntegration()) {
+ if (auto canWrite = dqIntegration->CanWrite(node.Ref(), ctx)) {
+ YQL_ENSURE(*canWrite, "Errors handling write");
+ txRes.Ops.insert(node.Raw());
+ txRes.AddEffect(node, THashMap<TString, TPrimitiveYdbOperations>{});
+ for (size_t i = 0, childrenSize = node.Raw()->ChildrenSize(); i < childrenSize; ++i) {
+ if (TExprNode::TPtr child = node.Raw()->ChildPtr(i)) {
+ auto* typeAnn = child->GetTypeAnn();
+ if (typeAnn && typeAnn->GetKind() == ETypeAnnotationKind::World) {
+ return ExploreTx(TExprBase(child), ctx, dataSink, txRes, tablesData, types);
+ }
+ }
+ }
+ YQL_ENSURE(false, "Node \"" << node.Ref().Content() << "\" is expected to contain world child");
+ }
+ }
+ }
+ }
+ }
+
if (auto maybeUpdate = node.Maybe<TKiUpdateTable>()) {
auto update = maybeUpdate.Cast();
if (!checkDataSink(update.DataSink())) {
diff --git a/ydb/core/kqp/provider/yql_kikimr_provider.h b/ydb/core/kqp/provider/yql_kikimr_provider.h
index a6345a57fd..a743c6ceb4 100644
--- a/ydb/core/kqp/provider/yql_kikimr_provider.h
+++ b/ydb/core/kqp/provider/yql_kikimr_provider.h
@@ -484,6 +484,7 @@ TIntrusivePtr<IDataProvider> CreateKikimrDataSink(
TTypeAnnotationContext& types,
TIntrusivePtr<IKikimrGateway> gateway,
TIntrusivePtr<TKikimrSessionContext> sessionCtx,
+ const NKikimr::NExternalSource::IExternalSourceFactory::TPtr& sourceFactory,
TIntrusivePtr<IKikimrQueryExecutor> queryExecutor);
} // namespace NYql
diff --git a/ydb/core/kqp/provider/yql_kikimr_provider_impl.h b/ydb/core/kqp/provider/yql_kikimr_provider_impl.h
index 4adb83d704..414c128e65 100644
--- a/ydb/core/kqp/provider/yql_kikimr_provider_impl.h
+++ b/ydb/core/kqp/provider/yql_kikimr_provider_impl.h
@@ -162,7 +162,7 @@ struct TKiExecDataQuerySettings {
TAutoPtr<IGraphTransformer> CreateKiSourceTypeAnnotationTransformer(TIntrusivePtr<TKikimrSessionContext> sessionCtx,
TTypeAnnotationContext& types);
TAutoPtr<IGraphTransformer> CreateKiSinkTypeAnnotationTransformer(TIntrusivePtr<IKikimrGateway> gateway,
- TIntrusivePtr<TKikimrSessionContext> sessionCtx);
+ TIntrusivePtr<TKikimrSessionContext> sessionCtx, TTypeAnnotationContext& types);
TAutoPtr<IGraphTransformer> CreateKiLogicalOptProposalTransformer(TIntrusivePtr<TKikimrSessionContext> sessionCtx,
TTypeAnnotationContext& types);
TAutoPtr<IGraphTransformer> CreateKiPhysicalOptProposalTransformer(TIntrusivePtr<TKikimrSessionContext> sessionCtx);
@@ -175,7 +175,8 @@ TAutoPtr<IGraphTransformer> CreateKiSinkIntentDeterminationTransformer(TIntrusiv
TAutoPtr<IGraphTransformer> CreateKiSourceCallableExecutionTransformer(
TIntrusivePtr<IKikimrGateway> gateway,
- TIntrusivePtr<TKikimrSessionContext> sessionCtx);
+ TIntrusivePtr<TKikimrSessionContext> sessionCtx,
+ TTypeAnnotationContext& types);
TAutoPtr<IGraphTransformer> CreateKiSinkCallableExecutionTransformer(
TIntrusivePtr<IKikimrGateway> gateway,
@@ -219,4 +220,6 @@ bool IsKikimrSystemColumn(const TStringBuf columnName);
bool ValidateTableHasIndex(TKikimrTableMetadataPtr metadata, TExprContext& ctx, const TPositionHandle& pos);
+TExprNode::TPtr BuildExternalTableSettings(TPositionHandle pos, TExprContext& ctx, const TMap<TString, NYql::TKikimrColumnMetadata>& columns, const NKikimr::NExternalSource::IExternalSource::TPtr& source, const TString& content);
+
} // namespace NYql
diff --git a/ydb/core/kqp/provider/yql_kikimr_settings.h b/ydb/core/kqp/provider/yql_kikimr_settings.h
index 8acf67c89c..aabf39f817 100644
--- a/ydb/core/kqp/provider/yql_kikimr_settings.h
+++ b/ydb/core/kqp/provider/yql_kikimr_settings.h
@@ -141,9 +141,11 @@ struct TKikimrConfiguration : public TKikimrSettings, public NCommon::TSettingDi
bool EnableKqpScanQueryStreamIdxLookupJoin = false;
bool EnablePredicateExtractForScanQuery = true;
bool EnablePredicateExtractForDataQuery = false;
+ bool PredicateExtract20 = false;
bool EnableKqpImmediateEffects = false;
bool EnableSequentialReads = false;
bool EnablePreparedDdl = false;
+ bool EnableSequences = false;
NSQLTranslation::EBindingsMode BindingsMode = NSQLTranslation::EBindingsMode::ENABLED;
};
diff --git a/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp b/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp
index aa0842e432..f07c2a564c 100644
--- a/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp
@@ -7,6 +7,7 @@
#include <ydb/library/yql/core/yql_expr_optimize.h>
#include <ydb/library/yql/core/yql_expr_type_annotation.h>
#include <ydb/library/yql/core/yql_opt_utils.h>
+#include <ydb/library/yql/dq/integration/yql_dq_integration.h>
#include <ydb/library/yql/parser/pg_wrapper/interface/type_desc.h>
#include <ydb/library/yql/providers/common/provider/yql_provider.h>
#include <ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h>
@@ -292,9 +293,10 @@ class TKiSinkTypeAnnotationTransformer : public TKiSinkVisitorTransformer
{
public:
TKiSinkTypeAnnotationTransformer(TIntrusivePtr<IKikimrGateway> gateway,
- TIntrusivePtr<TKikimrSessionContext> sessionCtx)
+ TIntrusivePtr<TKikimrSessionContext> sessionCtx, TTypeAnnotationContext& types)
: Gateway(gateway)
- , SessionCtx(sessionCtx) {}
+ , SessionCtx(sessionCtx)
+ , Types(types) {}
private:
virtual TStatus HandleWriteTable(TKiWriteTable node, TExprContext& ctx) override {
@@ -382,7 +384,7 @@ private:
if (rowType->FindItem(keyColumnName)) {
continue;
}
-
+
if (!columnInfo.IsAutoIncrement()) {
ctx.AddError(YqlIssue(pos, TIssuesIds::KIKIMR_PRECONDITION_FAILED, TStringBuilder()
<< "Missing key column in input: " << keyColumnName
@@ -398,17 +400,20 @@ private:
op == TYdbOperation::Upsert || op == TYdbOperation::Replace) {
for (const auto& [name, meta] : table->Metadata->Columns) {
if (meta.NotNull) {
- if (!rowType->FindItem(name)) {
+ if (!rowType->FindItem(name) && !meta.IsAutoIncrement()) {
ctx.AddError(YqlIssue(pos, TIssuesIds::KIKIMR_NO_COLUMN_DEFAULT_VALUE, TStringBuilder()
<< "Missing not null column in input: " << name
<< ". All not null columns should be initialized"));
return TStatus::Error;
}
- if (rowType->FindItemType(name)->GetKind() == ETypeAnnotationKind::Pg) {
+
+ const auto* itemType = rowType->FindItemType(name);
+ if (itemType && itemType->GetKind() == ETypeAnnotationKind::Pg) {
//no type-level notnull check for pg types.
continue;
}
- if (rowType->FindItemType(name)->HasOptionalOrNull()) {
+
+ if (itemType && itemType->HasOptionalOrNull()) {
ctx.AddError(YqlIssue(pos, TIssuesIds::KIKIMR_BAD_COLUMN_TYPE, TStringBuilder()
<< "Can't set NULL or optional value to not null column: " << name
<< ". All not null columns should be initialized"));
@@ -619,6 +624,11 @@ virtual TStatus HandleCreateTable(TKiCreateTable create, TExprContext& ctx) over
notNullColumns.emplace(column.Value());
}
+ THashSet<TString> serialColumns;
+ for(const auto& column : create.SerialColumns()) {
+ serialColumns.emplace(column.Value());
+ }
+
for (auto item : create.Columns()) {
auto columnTuple = item.Cast<TExprList>();
auto nameNode = columnTuple.Item(0).Cast<TCoAtom>();
@@ -639,6 +649,14 @@ virtual TStatus HandleCreateTable(TKiCreateTable create, TExprContext& ctx) over
} else {
notNull = !isOptional;
}
+
+ auto scIt = serialColumns.find(columnName);
+ bool isSerial = false;
+ if (scIt != serialColumns.end()) {
+ // notNull = true;
+ isSerial = true;
+ }
+
if (actualType->GetKind() != ETypeAnnotationKind::Data
&& actualType->GetKind() != ETypeAnnotationKind::Pg
) {
@@ -657,6 +675,10 @@ virtual TStatus HandleCreateTable(TKiCreateTable create, TExprContext& ctx) over
TKikimrColumnMetadata columnMeta;
columnMeta.Name = columnName;
columnMeta.Type = GetColumnTypeName(actualType);
+ if (isSerial) {
+ columnMeta.DefaultFromSequence = "_serial_column_" + columnMeta.Name;
+ }
+
if (actualType->GetKind() == ETypeAnnotationKind::Pg) {
auto pgTypeId = actualType->Cast<TPgExprType>()->GetId();
columnMeta.TypeInfo = NKikimr::NScheme::TTypeInfo(
@@ -1481,9 +1503,28 @@ virtual TStatus HandleCreateTable(TKiCreateTable create, TExprContext& ctx) over
}
if (!KikimrSupportedEffects().contains(effect.CallableName())) {
- ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
- << "Unsupported Kikimr data query effect: " << effect.CallableName()));
- return TStatus::Error;
+ bool supported = false;
+ if (effect.Ref().ChildrenSize() > 1) {
+ TExprBase dataSinkArg(effect.Ref().Child(1));
+ if (auto maybeDataSink = dataSinkArg.Maybe<TCoDataSink>()) {
+ TStringBuf dataSinkCategory = maybeDataSink.Cast().Category();
+ auto dataSinkProviderIt = Types.DataSinkMap.find(dataSinkCategory);
+ if (dataSinkProviderIt != Types.DataSinkMap.end()) {
+ if (auto* dqIntegration = dataSinkProviderIt->second->GetDqIntegration()) {
+ auto canWrite = dqIntegration->CanWrite(*effect.Raw(), ctx);
+ if (canWrite) {
+ supported = *canWrite; // if false, we will exit this function a few lines later
+ }
+ }
+ }
+ }
+ }
+
+ if (!supported) {
+ ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
+ << "Unsupported Kikimr data query effect: " << effect.CallableName()));
+ return TStatus::Error;
+ }
}
}
@@ -1579,6 +1620,7 @@ virtual TStatus HandleCreateTable(TKiCreateTable create, TExprContext& ctx) over
private:
TIntrusivePtr<IKikimrGateway> Gateway;
TIntrusivePtr<TKikimrSessionContext> SessionCtx;
+ TTypeAnnotationContext& Types;
};
} // namespace
@@ -1590,9 +1632,9 @@ TAutoPtr<IGraphTransformer> CreateKiSourceTypeAnnotationTransformer(TIntrusivePt
}
TAutoPtr<IGraphTransformer> CreateKiSinkTypeAnnotationTransformer(TIntrusivePtr<IKikimrGateway> gateway,
- TIntrusivePtr<TKikimrSessionContext> sessionCtx)
+ TIntrusivePtr<TKikimrSessionContext> sessionCtx, TTypeAnnotationContext& types)
{
- return new TKiSinkTypeAnnotationTransformer(gateway, sessionCtx);
+ return new TKiSinkTypeAnnotationTransformer(gateway, sessionCtx, types);
}
const TTypeAnnotationNode* GetReadTableRowType(TExprContext& ctx, const TKikimrTablesData& tablesData,
diff --git a/ydb/core/kqp/proxy_service/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/proxy_service/CMakeLists.darwin-x86_64.txt
index 2ce9ff4dd0..74fe7fa615 100644
--- a/ydb/core/kqp/proxy_service/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kqp/proxy_service/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(proto)
add_subdirectory(ut)
add_library(core-kqp-proxy_service)
@@ -16,6 +17,7 @@ target_link_libraries(core-kqp-proxy_service PUBLIC
contrib-libs-cxxsupp
yutil
cpp-actors-core
+ cpp-actors-http
cpp-protobuf-json
ydb-core-actorlib_impl
ydb-core-base
@@ -23,6 +25,7 @@ target_link_libraries(core-kqp-proxy_service PUBLIC
core-kqp-common
kqp-common-events
core-kqp-counters
+ kqp-proxy_service-proto
core-kqp-run_script_actor
ydb-core-mind
ydb-core-protos
@@ -41,4 +44,5 @@ target_sources(core-kqp-proxy_service PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_peer_stats_calculator.cpp
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_table_creator.cpp
)
diff --git a/ydb/core/kqp/proxy_service/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/proxy_service/CMakeLists.linux-aarch64.txt
index fc1b20b171..87e67e8adf 100644
--- a/ydb/core/kqp/proxy_service/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kqp/proxy_service/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(proto)
add_subdirectory(ut)
add_library(core-kqp-proxy_service)
@@ -17,6 +18,7 @@ target_link_libraries(core-kqp-proxy_service PUBLIC
contrib-libs-cxxsupp
yutil
cpp-actors-core
+ cpp-actors-http
cpp-protobuf-json
ydb-core-actorlib_impl
ydb-core-base
@@ -24,6 +26,7 @@ target_link_libraries(core-kqp-proxy_service PUBLIC
core-kqp-common
kqp-common-events
core-kqp-counters
+ kqp-proxy_service-proto
core-kqp-run_script_actor
ydb-core-mind
ydb-core-protos
@@ -42,4 +45,5 @@ target_sources(core-kqp-proxy_service PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_peer_stats_calculator.cpp
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_table_creator.cpp
)
diff --git a/ydb/core/kqp/proxy_service/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/proxy_service/CMakeLists.linux-x86_64.txt
index fc1b20b171..87e67e8adf 100644
--- a/ydb/core/kqp/proxy_service/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kqp/proxy_service/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(proto)
add_subdirectory(ut)
add_library(core-kqp-proxy_service)
@@ -17,6 +18,7 @@ target_link_libraries(core-kqp-proxy_service PUBLIC
contrib-libs-cxxsupp
yutil
cpp-actors-core
+ cpp-actors-http
cpp-protobuf-json
ydb-core-actorlib_impl
ydb-core-base
@@ -24,6 +26,7 @@ target_link_libraries(core-kqp-proxy_service PUBLIC
core-kqp-common
kqp-common-events
core-kqp-counters
+ kqp-proxy_service-proto
core-kqp-run_script_actor
ydb-core-mind
ydb-core-protos
@@ -42,4 +45,5 @@ target_sources(core-kqp-proxy_service PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_peer_stats_calculator.cpp
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_table_creator.cpp
)
diff --git a/ydb/core/kqp/proxy_service/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/proxy_service/CMakeLists.windows-x86_64.txt
index 2ce9ff4dd0..74fe7fa615 100644
--- a/ydb/core/kqp/proxy_service/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kqp/proxy_service/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(proto)
add_subdirectory(ut)
add_library(core-kqp-proxy_service)
@@ -16,6 +17,7 @@ target_link_libraries(core-kqp-proxy_service PUBLIC
contrib-libs-cxxsupp
yutil
cpp-actors-core
+ cpp-actors-http
cpp-protobuf-json
ydb-core-actorlib_impl
ydb-core-base
@@ -23,6 +25,7 @@ target_link_libraries(core-kqp-proxy_service PUBLIC
core-kqp-common
kqp-common-events
core-kqp-counters
+ kqp-proxy_service-proto
core-kqp-run_script_actor
ydb-core-mind
ydb-core-protos
@@ -41,4 +44,5 @@ target_sources(core-kqp-proxy_service PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_peer_stats_calculator.cpp
${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_table_creator.cpp
)
diff --git a/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp b/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp
index 7ee094c6c3..1e29a4f787 100644
--- a/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp
+++ b/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp
@@ -31,6 +31,7 @@
#include <library/cpp/actors/core/interconnect.h>
#include <library/cpp/actors/core/hfunc.h>
#include <library/cpp/actors/core/log.h>
+#include <library/cpp/actors/http/http.h>
#include <library/cpp/actors/interconnect/interconnect.h>
#include <library/cpp/lwtrace/mon/mon_lwtrace.h>
#include <library/cpp/monlib/service/pages/templates.h>
@@ -104,6 +105,16 @@ TString EncodeSessionId(ui32 nodeId, const TString& id) {
return NOperationId::ProtoToString(opId);
}
+void ParseGrpcEndpoint(const TString& endpoint, TString& address, bool& useSsl) {
+ TStringBuf scheme;
+ TStringBuf host;
+ TStringBuf uri;
+ NHttp::CrackURL(endpoint, scheme, host, uri);
+
+ address = ToString(host);
+ useSsl = scheme == "grpcs";
+}
+
class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
struct TEvPrivate {
enum EEv {
@@ -158,11 +169,13 @@ public:
TKqpProxyService(const NKikimrConfig::TLogConfig& logConfig,
const NKikimrConfig::TTableServiceConfig& tableServiceConfig,
+ const NKikimrProto::TTokenAccessorConfig& tokenAccessorConfig,
TVector<NKikimrKqp::TKqpSetting>&& settings,
std::shared_ptr<IQueryReplayBackendFactory> queryReplayFactory,
std::shared_ptr<TKqpProxySharedResources>&& kqpProxySharedResources)
: LogConfig(logConfig)
, TableServiceConfig(tableServiceConfig)
+ , TokenAccessorConfig(tokenAccessorConfig)
, KqpSettings(std::make_shared<const TKqpSettings>(std::move(settings)))
, QueryReplayFactory(std::move(queryReplayFactory))
, HttpGateway(NYql::IHTTPGateway::Make()) // TODO: pass config and counters
@@ -172,9 +185,22 @@ public:
{}
void Bootstrap() {
+ if (TokenAccessorConfig.GetEnabled()) {
+ TString caContent;
+ if (const auto& path = TokenAccessorConfig.GetSslCaCert()) {
+ caContent = TUnbufferedFileInput(path).ReadAll();
+ }
+
+ TString endpointAddress;
+ bool useSsl = false;
+ ParseGrpcEndpoint(TokenAccessorConfig.GetEndpoint(), endpointAddress, useSsl);
+
+ CredentialsFactory = NYql::CreateSecuredServiceAccountCredentialsOverTokenAccessorFactory(endpointAddress, useSsl, caContent, TokenAccessorConfig.GetConnectionPoolSize());
+ }
+
NLwTraceMonPage::ProbeRegistry().AddProbesList(LWTRACE_GET_PROBES(KQP_PROVIDER));
Counters = MakeIntrusive<TKqpCounters>(AppData()->Counters, &TlsActivationContext->AsActorContext());
- AsyncIoFactory = CreateKqpAsyncIoFactory(Counters, HttpGateway);
+ AsyncIoFactory = CreateKqpAsyncIoFactory(Counters, HttpGateway, CredentialsFactory);
ModuleResolverState = MakeIntrusive<TModuleResolverState>();
LocalSessions = std::make_unique<TLocalSessionsRegistry>(AppData()->RandomProvider);
@@ -210,7 +236,7 @@ public:
// Create compile service
CompileService = TlsActivationContext->ExecutorThread.RegisterActor(CreateKqpCompileService(TableServiceConfig,
- KqpSettings, ModuleResolverState, Counters, std::move(QueryReplayFactory), HttpGateway));
+ KqpSettings, ModuleResolverState, Counters, std::move(QueryReplayFactory), CredentialsFactory, HttpGateway));
TlsActivationContext->ExecutorThread.ActorSystem->RegisterLocalService(
MakeKqpCompileServiceID(SelfId().NodeId()), CompileService);
@@ -233,8 +259,6 @@ public:
AskSelfNodeInfo();
SendWhiteboardRequest();
ScheduleIdleSessionCheck(TDuration::Seconds(2));
-
- CheckScriptExecutionsTablesExistence();
}
TDuration GetSessionIdleDuration() const {
@@ -339,17 +363,26 @@ public:
KQP_PROXY_LOG_D("Received node white board pool stats: " << pool.usage());
NodeResources.SetCpuUsage(pool.usage());
NodeResources.SetThreads(pool.threads());
+
+ PublishResourceUsage();
}
void DoPublishResources() {
- SendBoardPublishPoison();
-
SendWhiteboardRequest();
+
if (AppData()->TenantName.empty() || !SelfDataCenterId) {
KQP_PROXY_LOG_E("Cannot start publishing usage, tenants: " << AppData()->TenantName << ", " << SelfDataCenterId.value_or("empty"));
return;
}
+ SendBoardPublishPoison();
+
+ if (TableServiceConfig.GetEnablePublishKqpProxyByRM()) {
+ LastPublishResourcesAt = TAppData::TimeProvider->Now();
+ Send(KqpRmServiceActor, std::make_unique<TEvKqp::TEvKqpProxyPublishRequest>());
+ return;
+ }
+
auto groupId = GetDefaultStateStorageGroupId(AppData()->TenantName);
if (!groupId) {
KQP_PROXY_LOG_D("Unable to determine default state storage group id for database " <<
@@ -365,22 +398,14 @@ public:
}
void PublishResourceUsage() {
- const auto& sbs = TableServiceConfig.GetSessionBalancerSettings();
- auto now = TAppData::TimeProvider->Now();
- TDuration batchingInterval = TDuration::MilliSeconds(sbs.GetBoardPublishIntervalMs());
-
- if (TableServiceConfig.GetEnablePublishKqpProxyByRM()) {
- if (!LastPublishResourcesAt.has_value() || now - *LastPublishResourcesAt < batchingInterval) {
- LastPublishResourcesAt = TAppData::TimeProvider->Now();
- Send(KqpRmServiceActor, std::make_unique<TEvKqp::TEvKqpProxyPublishRequest>());
- }
- return;
- }
-
if (ResourcesPublishScheduled) {
return;
}
+ const auto& sbs = TableServiceConfig.GetSessionBalancerSettings();
+ auto now = TAppData::TimeProvider->Now();
+ TDuration batchingInterval = TDuration::MilliSeconds(sbs.GetBoardPublishIntervalMs());
+
if (LastPublishResourcesAt && now - *LastPublishResourcesAt < batchingInterval) {
ResourcesPublishScheduled = true;
Schedule(batchingInterval, new TEvPrivate::TEvReadyToPublishResources());
@@ -402,6 +427,11 @@ public:
if (BoardPublishActor) {
Send(BoardPublishActor, new TEvents::TEvPoison);
}
+
+ LocalSessions->ForEachNode([this](TNodeId node) {
+ Send(TActivationContext::InterconnectProxy(node), new TEvents::TEvUnsubscribe);
+ });
+
return TActor::PassAway();
}
@@ -608,24 +638,14 @@ public:
KQP_PROXY_LOG_D(TKqpRequestInfo(traceId, sessionId) << "TEvQueryRequest, set timer for: " << timerDuration << " timeout: " << timeout << " cancelAfter: " << cancelAfter);
auto status = timerDuration == cancelAfter ? NYql::NDqProto::StatusIds::CANCELLED : NYql::NDqProto::StatusIds::TIMEOUT;
StartQueryTimeout(requestId, timerDuration, status);
- Send(targetId, ev->Release().Release(), IEventHandle::FlagTrackDelivery, requestId);
KQP_PROXY_LOG_D("Sent request to target, requestId: " << requestId
<< ", targetId: " << targetId << ", sessionId: " << sessionId);
+ Send(targetId, ev->Release().Release(), IEventHandle::FlagTrackDelivery, requestId);
}
void Handle(TEvKqp::TEvScriptRequest::TPtr& ev) {
- if (AppData()->FeatureFlags.GetEnableScriptExecutionOperations()) {
- if (ScriptExecutionsCreationStatus == EScriptExecutionsCreationStatus::Pending) {
- NYql::TIssues issues;
- issues.AddIssue("Not ready");
- Send(ev->Sender, new TEvKqp::TEvScriptResponse(Ydb::StatusIds::UNAVAILABLE, std::move(issues)));
- } else {
- Register(CreateScriptExecutionCreatorActor(std::move(ev)));
- }
- } else {
- NYql::TIssues issues;
- issues.AddIssue("ExecuteScript feature is not enabled");
- Send(ev->Sender, new TEvKqp::TEvScriptResponse(Ydb::StatusIds::UNSUPPORTED, std::move(issues)));
+ if (CheckScriptExecutionsTablesReady<TEvKqp::TEvScriptResponse>(ev)) {
+ Register(CreateScriptExecutionCreatorActor(std::move(ev)));
}
}
@@ -664,20 +684,28 @@ public:
const auto traceId = event.GetTraceId();
TKqpRequestInfo requestInfo(traceId);
const auto sessionId = request.GetSessionId();
+ // If set rpc layer will controll session lifetime
+ const TActorId ctrlActor = request.HasExtSessionCtrlActorId()
+ ? ActorIdFromProto(request.GetExtSessionCtrlActorId())
+ : TActorId();
const TKqpSessionInfo* sessionInfo = LocalSessions->FindPtr(sessionId);
auto dbCounters = sessionInfo ? sessionInfo->DbCounters : nullptr;
Counters->ReportPingSession(dbCounters, request.ByteSize());
- TActorId targetId;
// Local session
if (sessionInfo) {
- KQP_PROXY_LOG_D("Received ping session request, has local session, trace_id: " << traceId);
+ const bool sameNode = ev->Sender.NodeId() == SelfId().NodeId();
+ KQP_PROXY_LOG_D("Received ping session request, has local session: " << sessionId
+ << ", rpc ctrl: " << ctrlActor
+ << ", sameNode: " << sameNode
+ << ", trace_id: " << traceId);
- targetId = sessionInfo->WorkerId;
const bool isIdle = LocalSessions->IsSessionIdle(sessionInfo);
if (isIdle) {
LocalSessions->StopIdleCheck(sessionInfo);
- LocalSessions->StartIdleCheck(sessionInfo, GetSessionIdleDuration());
+ if (!ctrlActor) {
+ LocalSessions->StartIdleCheck(sessionInfo, GetSessionIdleDuration());
+ }
}
auto result = std::make_unique<TEvKqp::TEvPingSessionResponse>();
@@ -687,16 +715,38 @@ public:
? Ydb::Table::KeepAliveResult::SESSION_STATUS_READY
: Ydb::Table::KeepAliveResult::SESSION_STATUS_BUSY;
record.MutableResponse()->SetSessionStatus(sessionStatus);
- Send(ev->Sender, result.release(), 0, ev->Cookie);
+ if (ctrlActor && isIdle) {
+ //TODO: fix
+ ui32 flags = IEventHandle::FlagTrackDelivery;
+ if (sameNode) {
+ KQP_PROXY_LOG_T("Attach local session: " << sessionInfo->WorkerId
+ << " to rpc: " << ctrlActor << " on same node");
+
+ LocalSessions->AttachSession(sessionInfo, 0, ctrlActor);
+ } else {
+ const TNodeId nodeId = ev->Sender.NodeId();
+ KQP_PROXY_LOG_T("Subscribe local session: " << sessionInfo->WorkerId
+ << " to remote: " << ev->Sender << " , nodeId: " << nodeId << ", with rpc: " << ctrlActor);
+
+ LocalSessions->AttachSession(sessionInfo, nodeId, ctrlActor);
+
+ flags |= IEventHandle::FlagSubscribeOnSession;
+ }
+ Send(ev->Sender, result.release(), flags, ev->Cookie);
+ } else {
+ Send(ev->Sender, result.release(), 0, ev->Cookie);
+ }
return;
}
// Forward request to another proxy
ui64 requestId = PendingRequests.RegisterRequest(ev->Sender, ev->Cookie, traceId, TKqpEvents::EvPingSessionRequest);
- KQP_PROXY_LOG_D("Received ping session request, request_id: " << requestId << ", trace_id: " << traceId);
+ KQP_PROXY_LOG_D("Received ping session request, request_id: " << requestId
+ << ", sender: " << ev->Sender
+ << ", trace_id: " << traceId);
- targetId = TryGetSessionTargetActor(sessionId, requestInfo, requestId);
+ const TActorId targetId = TryGetSessionTargetActor(sessionId, requestInfo, requestId);
if (!targetId) {
return;
}
@@ -788,11 +838,14 @@ public:
if (!TableServiceConfig.GetEnablePublishKqpProxyByRM()) {
LookupPeerProxyData();
} else {
- GetKqpResourceManager()->RequestClusterResourcesInfo(
- [as = TlsActivationContext->ActorSystem(), self = SelfId()](TVector<NKikimrKqp::TKqpNodeResources>&& resources) {
- TAutoPtr<IEventHandle> eh = new IEventHandle(self, self, new TEvPrivate::TEvResourcesSnapshot(std::move(resources)));
- as->Send(eh);
- });
+ if (SelfDataCenterId && !AppData()->TenantName.empty() && !IsLookupByRmScheduled) {
+ IsLookupByRmScheduled = true;
+ GetKqpResourceManager()->RequestClusterResourcesInfo(
+ [as = TlsActivationContext->ActorSystem(), self = SelfId()](TVector<NKikimrKqp::TKqpNodeResources>&& resources) {
+ TAutoPtr<IEventHandle> eh = new IEventHandle(self, self, new TEvPrivate::TEvResourcesSnapshot(std::move(resources)));
+ as->Send(eh);
+ });
+ }
}
if (!ShutdownRequested) {
const auto& sbs = TableServiceConfig.GetSessionBalancerSettings();
@@ -834,33 +887,38 @@ public:
}
void Handle(TEvPrivate::TEvResourcesSnapshot::TPtr& ev) {
- if (ev->Get()->Snapshot.empty()) {
- PeerProxyNodeResources.clear();
- KQP_PROXY_LOG_E("Can not find default state storage group for database " <<
- AppData()->TenantName);
- return;
- }
+ IsLookupByRmScheduled = false;
+
+ TVector<NKikimrKqp::TKqpProxyNodeResources> proxyResources;
+ std::vector<ui64> localDatacenterProxies;
+ proxyResources.reserve(ev->Get()->Snapshot.size());
- Y_VERIFY(SelfDataCenterId);
- PeerProxyNodeResources.resize(ev->Get()->Snapshot.size());
- size_t idx = 0;
auto getDataCenterId = [](const auto& entry) {
return entry.HasDataCenterId() ? entry.GetDataCenterId() : DataCenterToString(entry.GetDataCenterNumId());
};
- LocalDatacenterProxies.clear();
- for(auto& nodeResource : ev->Get()->Snapshot) {
- auto* proxyNodeResources = nodeResource.MutableKqpProxyNodeResources();
- proxyNodeResources->SetNodeId(nodeResource.GetNodeId());
-
- PeerProxyNodeResources[idx] = std::move(*proxyNodeResources);
+ for(auto& nodeResources : ev->Get()->Snapshot) {
+ auto* proxyNodeResources = nodeResources.MutableKqpProxyNodeResources();
- if (getDataCenterId(PeerProxyNodeResources[idx]) == *SelfDataCenterId) {
- LocalDatacenterProxies.emplace_back(PeerProxyNodeResources[idx].GetNodeId());
+ if (proxyNodeResources->HasNodeId()) {
+ proxyResources.push_back(std::move(*proxyNodeResources));
+ if (getDataCenterId(proxyResources.back()) == *SelfDataCenterId) {
+ localDatacenterProxies.emplace_back(proxyResources.back().GetNodeId());
+ }
}
- ++idx;
}
+ if (proxyResources.empty()) {
+ PeerProxyNodeResources.clear();
+ KQP_PROXY_LOG_D("Received unexpected data from rm for database " <<
+ AppData()->TenantName);
+ return;
+ }
+
+ Y_VERIFY(SelfDataCenterId);
+ PeerProxyNodeResources = std::move(proxyResources);
+ LocalDatacenterProxies = std::move(localDatacenterProxies);
+
PeerStats = CalcPeerStats(PeerProxyNodeResources, *SelfDataCenterId);
TryKickSession();
}
@@ -1116,13 +1174,21 @@ public:
const TKqpSessionInfo* info = LocalSessions->FindPtr(reqInfo->SessionId);
if (msg->Round == 0 && info) {
- TString message = TStringBuilder() << "request's " << (msg->Status == NYql::NDqProto::StatusIds::TIMEOUT ? "timeout" : "cancelAfter") << " exceeded";
+ TString message = TStringBuilder()
+ << "request's " << (msg->Status == NYql::NDqProto::StatusIds::TIMEOUT ? "timeout" : "cancelAfter")
+ << " exceeded";
+
Send(info->WorkerId, new TEvKqp::TEvAbortExecution(msg->Status, message));
- auto newEv = ev->Release().Release();
- newEv->TickNextRound();
- Schedule(newEv->Timeout, newEv);
+
+ // We must not reply before session actor in case of CANCEL AFTER settings
+ if (msg->Status != NYql::NDqProto::StatusIds::CANCELLED) {
+ auto newEv = ev->Release().Release();
+ newEv->TickNextRound();
+ Schedule(newEv->Timeout, newEv);
+ }
} else {
- TString message = TStringBuilder() << "Query did not complete within specified timeout, session id " << reqInfo->SessionId;
+ TString message = TStringBuilder()
+ << "Query did not complete within specified timeout, session id " << reqInfo->SessionId;
ReplyProcessError(NYql::NDq::DqStatusToYdbStatus(msg->Status), message, requestId);
}
}
@@ -1172,6 +1238,8 @@ public:
hFunc(NKqp::TEvGetScriptExecutionOperation, Handle);
hFunc(NKqp::TEvListScriptExecutionOperations, Handle);
hFunc(NKqp::TEvCancelScriptExecutionOperation, Handle);
+ hFunc(TEvInterconnect::TEvNodeConnected, Handle);
+ hFunc(TEvInterconnect::TEvNodeDisconnected, Handle);
default:
Y_FAIL("TKqpProxyService: unexpected event type: %" PRIx32 " event: %s",
ev->GetTypeRewrite(), ev->ToString().data());
@@ -1273,7 +1341,7 @@ private:
auto config = CreateConfig(KqpSettings, workerSettings);
- IActor* sessionActor = CreateKqpSessionActor(SelfId(), sessionId, KqpSettings, workerSettings, HttpGateway, AsyncIoFactory, ModuleResolverState, Counters);
+ IActor* sessionActor = CreateKqpSessionActor(SelfId(), sessionId, KqpSettings, workerSettings, HttpGateway, AsyncIoFactory, CredentialsFactory, ModuleResolverState, Counters);
auto workerId = TlsActivationContext->ExecutorThread.RegisterActor(sessionActor, TMailboxType::HTSwap, AppData()->UserPoolId);
TKqpSessionInfo* sessionInfo = LocalSessions->Create(
sessionId, workerId, database, dbCounters, supportsBalancing, GetSessionIdleDuration());
@@ -1320,13 +1388,26 @@ private:
void RemoveSession(const TString& sessionId, const TActorId& workerId) {
if (!sessionId.empty()) {
- LocalSessions->Erase(sessionId);
+ auto [nodeId, rpcActor] = LocalSessions->Erase(sessionId);
KqpProxySharedResources->AtomicLocalSessionCount.store(LocalSessions->size());
PublishResourceUsage();
if (ShutdownRequested) {
ShutdownState->Update(LocalSessions->size());
}
+ // No more session with kqp proxy on this node
+ if (nodeId) {
+ Send(TActivationContext::InterconnectProxy(nodeId), new TEvents::TEvUnsubscribe);
+ }
+
+ if (rpcActor) {
+ auto closeEv = MakeHolder<TEvKqp::TEvCloseSessionResponse>();
+ closeEv->Record.SetStatus(Ydb::StatusIds::SUCCESS);
+ closeEv->Record.MutableResponse()->SetSessionId(sessionId);
+ closeEv->Record.MutableResponse()->SetClosed(true);
+ Send(rpcActor, closeEv.Release());
+ }
+
return;
}
@@ -1357,38 +1438,95 @@ private:
NYql::NDq::SetYqlLogLevels(yqlPriority);
}
- void CheckScriptExecutionsTablesExistence() {
- if (AppData()->FeatureFlags.GetEnableScriptExecutionOperations()) {
- Register(CreateScriptExecutionsTablesCreator(MakeHolder<TEvPrivate::TEvScriptExecutionsTablesCreationFinished>()));
- } else {
- ScriptExecutionsCreationStatus = EScriptExecutionsCreationStatus::Finished;
+ template<typename TResponse, typename TEvent>
+ bool CheckScriptExecutionsTablesReady(TEvent& ev) {
+ if (!AppData()->FeatureFlags.GetEnableScriptExecutionOperations()) {
+ NYql::TIssues issues;
+ issues.AddIssue("ExecuteScript feature is not enabled");
+ Send(ev->Sender, new TResponse(Ydb::StatusIds::UNSUPPORTED, std::move(issues)));
+ return false;
+ }
+
+ switch (ScriptExecutionsCreationStatus) {
+ case EScriptExecutionsCreationStatus::NotStarted:
+ ScriptExecutionsCreationStatus = EScriptExecutionsCreationStatus::Pending;
+ Register(CreateScriptExecutionsTablesCreator(MakeHolder<TEvPrivate::TEvScriptExecutionsTablesCreationFinished>()));
+ [[fallthrough]];
+ case EScriptExecutionsCreationStatus::Pending:
+ if (DelayedEventsQueue.size() < 10000) {
+ DelayedEventsQueue.emplace_back(std::move(ev));
+ } else {
+ NYql::TIssues issues;
+ issues.AddIssue("Too many queued requests");
+ Send(ev->Sender, new TResponse(Ydb::StatusIds::OVERLOADED, std::move(issues)));
+ }
+ return false;
+ case EScriptExecutionsCreationStatus::Finished:
+ return true;
}
}
void Handle(TEvPrivate::TEvScriptExecutionsTablesCreationFinished::TPtr&) {
ScriptExecutionsCreationStatus = EScriptExecutionsCreationStatus::Finished;
+ while (!DelayedEventsQueue.empty()) {
+ Send(std::move(DelayedEventsQueue.front()));
+ DelayedEventsQueue.pop_front();
+ }
}
void Handle(NKqp::TEvForgetScriptExecutionOperation::TPtr& ev) {
- Register(CreateForgetScriptExecutionOperationActor(std::move(ev)));
+ if (CheckScriptExecutionsTablesReady<TEvForgetScriptExecutionOperationResponse>(ev)) {
+ Register(CreateForgetScriptExecutionOperationActor(std::move(ev)));
+ }
}
void Handle(NKqp::TEvGetScriptExecutionOperation::TPtr& ev) {
- Register(CreateGetScriptExecutionOperationActor(std::move(ev)));
+ if (CheckScriptExecutionsTablesReady<TEvGetScriptExecutionOperationResponse>(ev)) {
+ Register(CreateGetScriptExecutionOperationActor(std::move(ev)));
+ }
}
void Handle(NKqp::TEvListScriptExecutionOperations::TPtr& ev) {
- Register(CreateListScriptExecutionOperationsActor(std::move(ev)));
+ if (CheckScriptExecutionsTablesReady<TEvListScriptExecutionOperationsResponse>(ev)) {
+ Register(CreateListScriptExecutionOperationsActor(std::move(ev)));
+ }
}
void Handle(NKqp::TEvCancelScriptExecutionOperation::TPtr& ev) {
- Register(CreateCancelScriptExecutionOperationActor(std::move(ev)));
+ if (CheckScriptExecutionsTablesReady<TEvCancelScriptExecutionOperationResponse>(ev)) {
+ Register(CreateCancelScriptExecutionOperationActor(std::move(ev)));
+ }
+ }
+
+ void Handle(TEvInterconnect::TEvNodeConnected::TPtr& ev) {
+ TNodeId nodeId = ev->Get()->NodeId;
+ auto sessions = LocalSessions->FindSessions(nodeId);
+ if (sessions) {
+ KQP_PROXY_LOG_T("Got TEvNodeConnected event from node: " << nodeId
+ << ", has " << sessions.size() << " sessions");
+ } else {
+ KQP_PROXY_LOG_E("Got TEvNodeConnected event from node without sessions: " << nodeId);
+ }
+ }
+
+ void Handle(TEvInterconnect::TEvNodeDisconnected::TPtr& ev) {
+ TNodeId nodeId = ev->Get()->NodeId;
+ auto sessions = LocalSessions->FindSessions(nodeId);
+ KQP_PROXY_LOG_D("Node: " << nodeId << " disconnected, had " << sessions.size() << " sessions.");
+ const static auto IdleDurationAfterDisconnect = TDuration::Seconds(1);
+ // Just start standard idle check with small timeout
+ // It allows to use common code to close and delete expired session
+ for (const auto sessionInfo : sessions) {
+ LocalSessions->StartIdleCheck(sessionInfo, IdleDurationAfterDisconnect);
+ }
}
private:
NKikimrConfig::TLogConfig LogConfig;
NKikimrConfig::TTableServiceConfig TableServiceConfig;
+ NKikimrProto::TTokenAccessorConfig TokenAccessorConfig;
TKqpSettings::TConstPtr KqpSettings;
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr CredentialsFactory;
std::shared_ptr<IQueryReplayBackendFactory> QueryReplayFactory;
NYql::IHTTPGateway::TPtr HttpGateway;
@@ -1425,21 +1563,25 @@ private:
NYql::NDq::IDqAsyncIoFactory::TPtr AsyncIoFactory;
enum class EScriptExecutionsCreationStatus {
+ NotStarted,
Pending,
Finished,
};
- EScriptExecutionsCreationStatus ScriptExecutionsCreationStatus = EScriptExecutionsCreationStatus::Pending;
+ EScriptExecutionsCreationStatus ScriptExecutionsCreationStatus = EScriptExecutionsCreationStatus::NotStarted;
+ std::deque<THolder<IEventHandle>> DelayedEventsQueue;
+ bool IsLookupByRmScheduled = false;
};
} // namespace
IActor* CreateKqpProxyService(const NKikimrConfig::TLogConfig& logConfig,
const NKikimrConfig::TTableServiceConfig& tableServiceConfig,
+ const NKikimrProto::TTokenAccessorConfig& tokenAccessorConfig,
TVector<NKikimrKqp::TKqpSetting>&& settings,
std::shared_ptr<IQueryReplayBackendFactory> queryReplayFactory,
std::shared_ptr<TKqpProxySharedResources> kqpProxySharedResources)
{
- return new TKqpProxyService(logConfig, tableServiceConfig, std::move(settings),
+ return new TKqpProxyService(logConfig, tableServiceConfig, tokenAccessorConfig, std::move(settings),
std::move(queryReplayFactory),std::move(kqpProxySharedResources));
}
diff --git a/ydb/core/kqp/proxy_service/kqp_proxy_service.h b/ydb/core/kqp/proxy_service/kqp_proxy_service.h
index 654617b624..868bab3975 100644
--- a/ydb/core/kqp/proxy_service/kqp_proxy_service.h
+++ b/ydb/core/kqp/proxy_service/kqp_proxy_service.h
@@ -49,6 +49,7 @@ TPeerStats CalcPeerStats(const TVector<NKikimrKqp::TKqpProxyNodeResources>& data
IActor* CreateKqpProxyService(const NKikimrConfig::TLogConfig& logConfig,
const NKikimrConfig::TTableServiceConfig& tableServiceConfig,
+ const NKikimrProto::TTokenAccessorConfig& tokenAccessorConfig,
TVector<NKikimrKqp::TKqpSetting>&& settings,
std::shared_ptr<IQueryReplayBackendFactory> queryReplayFactory,
std::shared_ptr<TKqpProxySharedResources> kqpProxySharedResources);
diff --git a/ydb/core/kqp/proxy_service/kqp_proxy_service_impl.h b/ydb/core/kqp/proxy_service/kqp_proxy_service_impl.h
index 19f28f9a6c..3d9d7ea88a 100644
--- a/ydb/core/kqp/proxy_service/kqp_proxy_service_impl.h
+++ b/ydb/core/kqp/proxy_service/kqp_proxy_service_impl.h
@@ -12,6 +12,8 @@
namespace NKikimr::NKqp {
+using TNodeId = ui32;
+
struct TKqpProxyRequest {
TActorId Sender;
ui64 SenderCookie = 0;
@@ -83,6 +85,8 @@ struct TKqpSessionInfo {
NActors::TMonotonic IdleTimeout;
// position in the idle list.
std::list<TKqpSessionInfo*>::iterator IdlePos;
+ TNodeId AttachedNodeId;
+ TActorId AttachedRpcId;
TKqpSessionInfo(const TString& sessionId, const TActorId& workerId,
const TString& database, TKqpDbCountersPtr dbCounters, std::vector<i32>&& pos,
@@ -95,6 +99,7 @@ struct TKqpSessionInfo {
, ReadyPos(std::move(pos))
, IdleTimeout(idleTimeout)
, IdlePos(idlePos)
+ , AttachedNodeId(0)
{
}
};
@@ -107,6 +112,8 @@ class TLocalSessionsRegistry {
std::vector<std::vector<TString>> ReadySessions;
TIntrusivePtr<IRandomProvider> RandomProvider;
std::list<TKqpSessionInfo*> IdleSessions;
+ // map rpc node to local sessions
+ THashMap<TNodeId, THashSet<const TKqpSessionInfo*>> AttachedNodesIndex;
public:
TLocalSessionsRegistry(TIntrusivePtr<IRandomProvider> randomProvider)
@@ -114,6 +121,13 @@ public:
, RandomProvider(randomProvider)
{}
+ bool AttachSession(const TKqpSessionInfo* sessionInfo, TNodeId nodeId, TActorId rpcActor) {
+ const_cast<TKqpSessionInfo*>(sessionInfo)->AttachedNodeId = nodeId;
+ const_cast<TKqpSessionInfo*>(sessionInfo)->AttachedRpcId = rpcActor;
+ auto& actors = AttachedNodesIndex[nodeId];
+ return actors.insert(sessionInfo).second;
+ }
+
TKqpSessionInfo* Create(const TString& sessionId, const TActorId& workerId,
const TString& database, TKqpDbCountersPtr dbCounters, bool supportsBalancing,
TDuration idleDuration)
@@ -213,9 +227,11 @@ public:
return ShutdownInFlightSessions.size();
}
- void Erase(const TString& sessionId) {
+ std::pair<TNodeId, TActorId> Erase(const TString& sessionId) {
auto it = LocalSessions.find(sessionId);
+ auto result = std::make_pair<TNodeId, TActorId>(0, TActorId());
if (it != LocalSessions.end()) {
+ result.second = it->second.AttachedRpcId;
auto counter = SessionsCountPerDatabase.find(it->second.Database);
if (counter != SessionsCountPerDatabase.end()) {
counter->second--;
@@ -228,8 +244,22 @@ public:
RemoveSessionFromLists(&(it->second));
ShutdownInFlightSessions.erase(sessionId);
TargetIdIndex.erase(it->second.WorkerId);
+
+ if (const auto nodeId = it->second.AttachedNodeId) {
+ auto attIt = AttachedNodesIndex.find(nodeId);
+ if (attIt != AttachedNodesIndex.end()) {
+ attIt->second.erase(&(it->second));
+ if (attIt->second.empty()) {
+ result.first = nodeId;
+ AttachedNodesIndex.erase(attIt);
+ }
+ }
+ }
+
LocalSessions.erase(it);
}
+
+ return result;
}
bool IsPendingShutdown(const TString& sessionId) const {
@@ -257,10 +287,30 @@ public:
return LocalSessions.FindPtr(sessionId);
}
- void Erase(const TActorId& targetId) {
+ const THashSet<const TKqpSessionInfo*>& FindSessions(const TNodeId& nodeId) const {
+ auto it = AttachedNodesIndex.find(nodeId);
+ if (it == AttachedNodesIndex.end()) {
+ static THashSet<const TKqpSessionInfo*> empty;
+ return empty;
+ }
+ return it->second;
+ }
+
+ std::pair<TNodeId, TActorId> Erase(const TActorId& targetId) {
+ auto result = std::make_pair<TNodeId, TActorId>(0, TActorId());
+
auto it = TargetIdIndex.find(targetId);
if (it != TargetIdIndex.end()){
- Erase(it->second);
+ result = Erase(it->second);
+ }
+
+ return result;
+ }
+
+ template<typename TCb>
+ void ForEachNode(TCb&& cb) {
+ for (const auto& n : AttachedNodesIndex) {
+ cb(n.first);
}
}
diff --git a/ydb/core/kqp/proxy_service/kqp_script_executions.cpp b/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
index e27b4bbe77..099bcc5a51 100644
--- a/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
+++ b/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
@@ -1,22 +1,18 @@
#include "kqp_script_executions.h"
#include "kqp_script_executions_impl.h"
+#include "kqp_table_creator.h"
-#include <ydb/core/base/path.h>
-#include <ydb/core/base/tablet_pipe.h>
#include <ydb/core/grpc_services/rpc_kqp_base.h>
#include <ydb/core/kqp/common/events/events.h>
#include <ydb/core/kqp/common/kqp_script_executions.h>
+#include <ydb/core/kqp/proxy_service/proto/result_set_meta.pb.h>
#include <ydb/core/kqp/run_script_actor/kqp_run_script_actor.h>
#include <ydb/library/services/services.pb.h>
-#include <ydb/core/tx/scheme_cache/scheme_cache.h>
-#include <ydb/core/tx/schemeshard/schemeshard.h>
-#include <ydb/core/tx/tx_proxy/proxy.h>
#include <ydb/library/query_actor/query_actor.h>
#include <ydb/library/yql/public/issue/yql_issue_message.h>
#include <ydb/public/api/protos/ydb_issue_message.pb.h>
#include <ydb/public/api/protos/ydb_operation.pb.h>
#include <ydb/public/lib/operation_id/operation_id.h>
-#include <ydb/public/lib/scheme_types/scheme_type_id.h>
#include <ydb/public/sdk/cpp/client/ydb_params/params.h>
#include <ydb/public/sdk/cpp/client/ydb_result/result.h>
@@ -30,7 +26,6 @@
#include <util/generic/guid.h>
#include <util/generic/utility.h>
-#include <util/random/random.h>
namespace NKikimr::NKqp {
@@ -47,6 +42,10 @@ namespace {
#define KQP_PROXY_LOG_C(stream) LOG_CRIT_S(*TlsActivationContext, NKikimrServices::KQP_PROXY, stream)
constexpr TDuration LEASE_DURATION = TDuration::Seconds(30);
+constexpr TDuration DEADLINE_OFFSET = TDuration::Minutes(20);
+constexpr TDuration BRO_RUN_INTERVAL = TDuration::Minutes(60);
+constexpr TDuration DEFAULT_OPERATION_TTL = TDuration::Days(1);
+constexpr TDuration DEFAULT_RESULTS_TTL = TDuration::Days(1);
TString SerializeIssues(const NYql::TIssues& issues) {
NYql::TIssue root;
@@ -80,229 +79,6 @@ public:
};
-class TTableCreator : public NActors::TActorBootstrapped<TTableCreator> {
-public:
- TTableCreator(TVector<TString> pathComponents, TVector<NKikimrSchemeOp::TColumnDescription> columns, TVector<TString> keyColumns)
- : PathComponents(std::move(pathComponents))
- , Columns(std::move(columns))
- , KeyColumns(std::move(keyColumns))
- {
- Y_VERIFY(!PathComponents.empty());
- Y_VERIFY(!Columns.empty());
- }
-
- void Registered(NActors::TActorSystem* sys, const NActors::TActorId& owner) override {
- NActors::TActorBootstrapped<TTableCreator>::Registered(sys, owner);
- Owner = owner;
- }
-
- STRICT_STFUNC(StateFuncCheck,
- hFunc(TEvTxProxySchemeCache::TEvNavigateKeySetResult, Handle);
- sFunc(NActors::TEvents::TEvWakeup, CheckTableExistence);
- )
-
- STRICT_STFUNC(StateFuncCreate,
- hFunc(TEvTxUserProxy::TEvProposeTransactionStatus, Handle);
- hFunc(NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletionResult, Handle);
- sFunc(NActors::TEvents::TEvWakeup, RunCreateTableRequest);
- hFunc(TEvTabletPipe::TEvClientConnected, Handle);
- hFunc(TEvTabletPipe::TEvClientDestroyed, Handle);
- hFunc(NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletionRegistered, Handle);
- )
-
- void Bootstrap() {
- Become(&TTableCreator::StateFuncCheck);
- CheckTableExistence();
- }
-
- void CheckTableExistence() {
- auto request = MakeHolder<NSchemeCache::TSchemeCacheNavigate>();
- auto pathComponents = SplitPath(AppData()->TenantName);
- request->DatabaseName = CanonizePath(pathComponents);
- auto& entry = request->ResultSet.emplace_back();
- entry.Operation = NSchemeCache::TSchemeCacheNavigate::OpTable;
- pathComponents.insert(pathComponents.end(), PathComponents.begin(), PathComponents.end());
- entry.Path = pathComponents;
- entry.ShowPrivatePath = true;
- entry.RequestType = NSchemeCache::TSchemeCacheNavigate::TEntry::ERequestType::ByPath;
- Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvNavigateKeySet(request.Release()));
- }
-
- void RunCreateTableRequest() {
- auto request = MakeHolder<TEvTxUserProxy::TEvProposeTransaction>();
- NKikimrSchemeOp::TModifyScheme& modifyScheme = *request->Record.MutableTransaction()->MutableModifyScheme();
- auto pathComponents = SplitPath(AppData()->TenantName);
- for (size_t i = 0; i < PathComponents.size() - 1; ++i) {
- pathComponents.emplace_back(PathComponents[i]);
- }
- modifyScheme.SetWorkingDir(CanonizePath(pathComponents));
- modifyScheme.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateTable);
- modifyScheme.SetInternal(true);
- modifyScheme.SetAllowAccessToPrivatePaths(true);
- NKikimrSchemeOp::TTableDescription& tableDesc = *modifyScheme.MutableCreateTable();
- tableDesc.SetName(TableName());
- for (const TString& k : KeyColumns) {
- tableDesc.AddKeyColumnNames(k);
- }
- for (const NKikimrSchemeOp::TColumnDescription& col : Columns) {
- *tableDesc.AddColumns() = col;
- }
- Send(MakeTxProxyID(), std::move(request));
- }
-
- void Handle(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) {
- using EStatus = NSchemeCache::TSchemeCacheNavigate::EStatus;
- const NSchemeCache::TSchemeCacheNavigate& request = *ev->Get()->Request;
- Y_VERIFY(request.ResultSet.size() == 1);
- const NSchemeCache::TSchemeCacheNavigate::TEntry& result = request.ResultSet[0];
- if (result.Status != EStatus::Ok) {
- KQP_PROXY_LOG_D("Describe table " << TableName() << " result: " << result.Status);
- }
-
- switch (result.Status) {
- case EStatus::Unknown:
- [[fallthrough]];
- case EStatus::PathNotTable:
- [[fallthrough]];
- case EStatus::PathNotPath:
- [[fallthrough]];
- case EStatus::RedirectLookupError:
- Fail(result.Status);
- break;
- case EStatus::RootUnknown:
- [[fallthrough]];
- case EStatus::PathErrorUnknown:
- Become(&TTableCreator::StateFuncCreate);
- RunCreateTableRequest();
- break;
- case EStatus::LookupError:
- [[fallthrough]];
- case EStatus::TableCreationNotComplete:
- Retry();
- break;
- case EStatus::Ok:
- Success();
- break;
- }
- }
-
- void Handle(TEvTxUserProxy::TEvProposeTransactionStatus::TPtr& ev) {
- KQP_PROXY_LOG_D("TEvProposeTransactionStatus " << TableName() << ": " << ev->Get()->Record);
- const auto ssStatus = ev->Get()->Record.GetSchemeShardStatus();
- switch (ev->Get()->Status()) {
- case NTxProxy::TResultStatus::ExecComplete:
- [[fallthrough]];
- case NTxProxy::TResultStatus::ExecAlready:
- if (ssStatus == NKikimrScheme::EStatus::StatusSuccess || ssStatus == NKikimrScheme::EStatus::StatusAlreadyExists) {
- Success(ev);
- } else {
- Fail(ev);
- }
- break;
- case NTxProxy::TResultStatus::ProxyShardNotAvailable:
- Retry();
- break;
- case NTxProxy::TResultStatus::ExecError:
- if (ssStatus == NKikimrScheme::EStatus::StatusMultipleModifications) {
- SubscribeOnTransaction(ev);
- // In the process of creating a database, errors of the form may occur -
- // database doesn't have storage pools at all to create tablet
- // channels to storage pool binding by profile id
- } else if (ssStatus == NKikimrScheme::EStatus::StatusInvalidParameter) {
- Retry();
- } else {
- Fail(ev);
- }
- break;
- case NTxProxy::TResultStatus::ExecInProgress:
- SubscribeOnTransaction(ev);
- break;
- default:
- Fail(ev);
- }
- }
-
- void Retry() {
- Schedule(TDuration::MilliSeconds(50 + RandomNumber<ui64>(30)), new NActors::TEvents::TEvWakeup());
- }
-
- void SubscribeOnTransaction(TEvTxUserProxy::TEvProposeTransactionStatus::TPtr& ev) {
- NActors::IActor* pipeActor = NTabletPipe::CreateClient(SelfId(), ev->Get()->Record.GetSchemeShardTabletId());
- Y_VERIFY(pipeActor);
- SchemePipeActorId = Register(pipeActor);
- auto request = MakeHolder<NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletion>();
- const ui64 txId = ev->Get()->Status() == NTxProxy::TResultStatus::ExecInProgress ? ev->Get()->Record.GetTxId() : ev->Get()->Record.GetPathCreateTxId();
- request->Record.SetTxId(txId);
- NTabletPipe::SendData(SelfId(), SchemePipeActorId, std::move(request));
- KQP_PROXY_LOG_D("Subscribe on create table " << TableName() << " tx: " << txId);
- }
-
- void Handle(TEvTabletPipe::TEvClientConnected::TPtr& ev) {
- if (ev->Get()->Status != NKikimrProto::OK) {
- KQP_PROXY_LOG_E("Create table " << TableName() << ". Tablet to pipe not conected: " << NKikimrProto::EReplyStatus_Name(ev->Get()->Status) << ", retry");
- NTabletPipe::CloseClient(SelfId(), SchemePipeActorId);
- SchemePipeActorId = {};
- Retry();
- }
- }
-
- void Handle(TEvTabletPipe::TEvClientDestroyed::TPtr&) {
- KQP_PROXY_LOG_E("Create table " << TableName() << ". Tablet to pipe destroyed, retry");
- SchemePipeActorId = {};
- }
-
- void Handle(NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletionRegistered::TPtr&) {
- }
-
- void Handle(NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletionResult::TPtr& ev) {
- KQP_PROXY_LOG_D("Create table " << TableName() << ". Transaction completed: " << ev->Get()->Record.GetTxId());
- Success(ev);
- }
-
- void Fail(NSchemeCache::TSchemeCacheNavigate::EStatus status) {
- KQP_PROXY_LOG_E("Failed to create table " << TableName() << ": " << status);
- Reply();
- }
-
- void Fail(TEvTxUserProxy::TEvProposeTransactionStatus::TPtr& ev) {
- KQP_PROXY_LOG_E("Failed to create table " << TableName() << ": " << ev->Get()->Status() << ". Response: " << ev->Get()->Record);
- Reply();
- }
-
- void Success() {
- Reply();
- }
-
- void Success(TEvTxUserProxy::TEvProposeTransactionStatus::TPtr& ev) {
- KQP_PROXY_LOG_I("Successfully created table " << TableName() << ": " << ev->Get()->Status());
- Reply();
- }
-
- void Success(NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletionResult::TPtr& ev) {
- KQP_PROXY_LOG_I("Successfully created table " << TableName() << ". TxId: " << ev->Get()->Record.GetTxId());
- Reply();
- }
-
- void Reply() {
- Send(Owner, new TEvPrivate::TEvCreateTableResponse());
- if (SchemePipeActorId) {
- NTabletPipe::CloseClient(SelfId(), SchemePipeActorId);
- }
- PassAway();
- }
-
- const TString& TableName() const {
- return PathComponents.back();
- }
-
-private:
- const TVector<TString> PathComponents;
- const TVector<NKikimrSchemeOp::TColumnDescription> Columns;
- const TVector<TString> KeyColumns;
- NActors::TActorId Owner;
- NActors::TActorId SchemePipeActorId;
-};
-
class TScriptExecutionsTablesCreator : public TActorBootstrapped<TScriptExecutionsTablesCreator> {
public:
explicit TScriptExecutionsTablesCreator(THolder<NActors::IEventBase> resultEvent)
@@ -334,10 +110,18 @@ private:
return Col(columnName, NScheme::TypeName(columnType));
}
+ static NKikimrSchemeOp::TTTLSettings TtlCol(const TString& columnName) {
+ NKikimrSchemeOp::TTTLSettings settings;
+ settings.MutableEnabled()->SetExpireAfterSeconds(DEADLINE_OFFSET.Seconds());
+ settings.MutableEnabled()->SetColumnName(columnName);
+ settings.MutableEnabled()->MutableSysSettings()->SetRunInterval(BRO_RUN_INTERVAL.MicroSeconds());
+ return settings;
+ }
+
void RunCreateScriptExecutions() {
TablesCreating++;
Register(
- new TTableCreator(
+ CreateTableCreator(
{ ".metadata", "script_executions" },
{
Col("database", NScheme::NTypeIds::Text),
@@ -353,13 +137,14 @@ private:
Col("ast", NScheme::NTypeIds::Text),
Col("issues", NScheme::NTypeIds::JsonDocument),
Col("plan", NScheme::NTypeIds::JsonDocument),
- Col("store_deadline", NScheme::NTypeIds::Timestamp), // Will be deleted from database after this deadline.
Col("meta", NScheme::NTypeIds::JsonDocument),
Col("parameters", NScheme::NTypeIds::String), // TODO: store aparameters separately to support bigger storage.
Col("result_set_metas", NScheme::NTypeIds::JsonDocument),
Col("stats", NScheme::NTypeIds::JsonDocument),
+ Col("expire_at", NScheme::NTypeIds::Timestamp), // Will be deleted from database after this deadline.
},
- { "database", "execution_id" }
+ { "database", "execution_id" },
+ TtlCol("expire_at")
)
);
}
@@ -367,7 +152,7 @@ private:
void RunCreateScriptExecutionLeases() {
TablesCreating++;
Register(
- new TTableCreator(
+ CreateTableCreator(
{ ".metadata", "script_execution_leases" },
{
Col("database", NScheme::NTypeIds::Text),
@@ -383,7 +168,7 @@ private:
void RunCreateScriptResultSets() {
TablesCreating++;
Register(
- new TTableCreator(
+ CreateTableCreator(
{ ".metadata", "result_sets" },
{
Col("database", NScheme::NTypeIds::Text),
@@ -393,7 +178,8 @@ private:
Col("expire_at", NScheme::NTypeIds::Timestamp),
Col("result_set", NScheme::NTypeIds::String),
},
- { "database", "execution_id", "result_set_id", "row_id" }
+ { "database", "execution_id", "result_set_id", "row_id" },
+ TtlCol("expire_at")
)
);
}
@@ -443,10 +229,12 @@ Ydb::Query::ExecMode GetExecModeFromAction(NKikimrKqp::EQueryAction action) {
class TCreateScriptOperationQuery : public TQueryBase {
public:
- TCreateScriptOperationQuery(const TString& executionId, const NActors::TActorId& runScriptActorId, const NKikimrKqp::TEvQueryRequest& req, TDuration leaseDuration = TDuration::Zero())
+ TCreateScriptOperationQuery(const TString& executionId, const NActors::TActorId& runScriptActorId, const NKikimrKqp::TEvQueryRequest& req, TDuration operationTtl, TDuration resultsTtl, TDuration leaseDuration = TDuration::Zero())
: ExecutionId(executionId)
, RunScriptActorId(runScriptActorId)
, Request(req)
+ , OperationTtl(operationTtl)
+ , ResultsTtl(resultsTtl)
, LeaseDuration(leaseDuration ? leaseDuration : LEASE_DURATION)
{
}
@@ -461,17 +249,22 @@ public:
DECLARE $execution_mode AS Int32;
DECLARE $query_text AS Text;
DECLARE $syntax AS Int32;
+ DECLARE $meta AS JsonDocument;
DECLARE $lease_duration AS Interval;
UPSERT INTO `.metadata/script_executions`
- (database, execution_id, run_script_actor_id, execution_status, execution_mode, start_ts, query_text, syntax)
- VALUES ($database, $execution_id, $run_script_actor_id, $execution_status, $execution_mode, CurrentUtcTimestamp(), $query_text, $syntax);
+ (database, execution_id, run_script_actor_id, execution_status, execution_mode, start_ts, query_text, syntax, meta)
+ VALUES ($database, $execution_id, $run_script_actor_id, $execution_status, $execution_mode, CurrentUtcTimestamp(), $query_text, $syntax, $meta);
UPSERT INTO `.metadata/script_execution_leases`
(database, execution_id, lease_deadline, lease_generation)
VALUES ($database, $execution_id, CurrentUtcTimestamp() + $lease_duration, 1);
)";
+ NKikimrKqp::TScriptExecutionOperationMeta meta;
+ SetDuration(OperationTtl, *meta.MutableOperationTtl());
+ SetDuration(ResultsTtl, *meta.MutableResultsTtl());
+
NYdb::TParamsBuilder params;
params
.AddParam("$database")
@@ -495,6 +288,9 @@ public:
.AddParam("$syntax")
.Int32(Request.GetRequest().GetSyntax())
.Build()
+ .AddParam("$meta")
+ .JsonDocument(NProtobufJson::Proto2Json(meta, NProtobufJson::TProto2JsonConfig()))
+ .Build()
.AddParam("$lease_duration")
.Interval(static_cast<i64>(LeaseDuration.MicroSeconds()))
.Build();
@@ -519,7 +315,9 @@ private:
const TString ExecutionId;
const NActors::TActorId RunScriptActorId;
NKikimrKqp::TEvQueryRequest Request;
- TDuration LeaseDuration;
+ const TDuration OperationTtl;
+ const TDuration ResultsTtl;
+ const TDuration LeaseDuration;
};
struct TCreateScriptExecutionActor : public TActorBootstrapped<TCreateScriptExecutionActor> {
@@ -533,10 +331,12 @@ struct TCreateScriptExecutionActor : public TActorBootstrapped<TCreateScriptExec
Become(&TCreateScriptExecutionActor::StateFunc);
ExecutionId = CreateGuidAsString();
-
+ auto operationTtl = Event->Get()->ForgetAfter ? Event->Get()->ForgetAfter : DEFAULT_OPERATION_TTL;
+ auto resultsTtl = Event->Get()->ResultsTtl ? Event->Get()->ResultsTtl : DEFAULT_RESULTS_TTL;
+ resultsTtl = Min(operationTtl, resultsTtl);
// Start request
RunScriptActorId = Register(CreateRunScriptActor(ExecutionId, Event->Get()->Record, Event->Get()->Record.GetRequest().GetDatabase(), 1, LeaseDuration));
- Register(new TCreateScriptOperationQuery(ExecutionId, RunScriptActorId, Event->Get()->Record, LeaseDuration));
+ Register(new TCreateScriptOperationQuery(ExecutionId, RunScriptActorId, Event->Get()->Record, operationTtl, resultsTtl, LeaseDuration));
}
void Handle(TEvPrivate::TEvCreateScriptOperationResponse::TPtr& ev) {
@@ -739,7 +539,7 @@ public:
using TQueryBase::TQueryBase;
void FinishScriptExecution(const TString& database, const TString& executionId, Ydb::StatusIds::StatusCode operationStatus, Ydb::Query::ExecStatus execStatus,
- const NYql::TIssues& issues = LeaseExpiredIssues(), TTxControl txControl = TTxControl::ContinueAndCommitTx(),
+ TDuration operationTtl, TDuration resultsTtl, const NYql::TIssues& issues = LeaseExpiredIssues(), TTxControl txControl = TTxControl::ContinueAndCommitTx(),
TMaybe<NKqpProto::TKqpStatsQuery> kqpStats = Nothing(), TMaybe<TString> queryPlan = Nothing(), TMaybe<TString> queryAst = Nothing()) {
TString sql = R"(
-- TScriptExecutionFinisherBase::FinishScriptExecution
@@ -751,6 +551,8 @@ public:
DECLARE $plan AS JsonDocument;
DECLARE $stats AS JsonDocument;
DECLARE $ast AS Text;
+ DECLARE $operation_ttl AS Interval;
+ DECLARE $results_ttl AS Interval;
UPDATE `.metadata/script_executions`
SET
@@ -760,11 +562,17 @@ public:
plan = $plan,
end_ts = CurrentUtcTimestamp(),
stats = $stats,
- ast = $ast
+ ast = $ast,
+ expire_at = CurrentUtcTimestamp() + $operation_ttl
WHERE database = $database AND execution_id = $execution_id;
DELETE FROM `.metadata/script_execution_leases`
WHERE database = $database AND execution_id = $execution_id;
+
+ UPDATE `.metadata/result_sets`
+ SET
+ expire_at = CurrentUtcTimestamp() + $results_ttl
+ where database = $database AND execution_id = $execution_id;
)";
TString serializedStats = "{}";
@@ -801,13 +609,21 @@ public:
.Build()
.AddParam("$ast")
.Utf8(queryAst.GetOrElse(""))
+ .Build()
+ .AddParam("$operation_ttl")
+ .Interval(static_cast<i64>(operationTtl.MicroSeconds()))
+ .Build()
+ .AddParam("$results_ttl")
+ .Interval(static_cast<i64>(resultsTtl.MicroSeconds()))
.Build();
RunDataQuery(sql, &params, txControl);
}
- void FinishScriptExecution(const TString& database, const TString& executionId, Ydb::StatusIds::StatusCode operationStatus, Ydb::Query::ExecStatus execStatus, const TString& message, TTxControl txControl = TTxControl::ContinueAndCommitTx()) {
- FinishScriptExecution(database, executionId, operationStatus, execStatus, IssuesFromMessage(message), txControl);
+ void FinishScriptExecution(const TString& database, const TString& executionId, Ydb::StatusIds::StatusCode operationStatus, Ydb::Query::ExecStatus execStatus,
+ TDuration operationTtl, TDuration resultsTtl, const TString& message, TTxControl txControl = TTxControl::ContinueAndCommitTx(),
+ TMaybe<NKqpProto::TKqpStatsQuery> kqpStats = Nothing(), TMaybe<TString> queryPlan = Nothing(), TMaybe<TString> queryAst = Nothing()) {
+ FinishScriptExecution(database, executionId, operationStatus, execStatus, operationTtl, resultsTtl, IssuesFromMessage(message), txControl, kqpStats, queryPlan, queryAst);
}
static NYql::TIssues IssuesFromMessage(const TString& message) {
@@ -821,6 +637,16 @@ public:
}
};
+TMaybe<std::pair<TDuration, TDuration>> GetTtlFromSerializedMeta(const TString& serializedMeta) {
+ NKikimrKqp::TScriptExecutionOperationMeta meta;
+ try {
+ NProtobufJson::Json2Proto(serializedMeta, meta, NProtobufJson::TJson2ProtoConfig());
+ return std::pair(GetDuration(meta.GetOperationTtl()), GetDuration(meta.GetResultsTtl()));
+ } catch (NJson::TJsonException &e) {
+ return Nothing();
+ }
+}
+
class TScriptExecutionFinisher : public TScriptExecutionFinisherBase {
public:
TScriptExecutionFinisher(
@@ -854,6 +680,9 @@ public:
SELECT lease_generation FROM `.metadata/script_execution_leases`
WHERE database = $database AND execution_id = $execution_id;
+
+ SELECT meta FROM `.metadata/script_executions`
+ WHERE database = $database AND execution_id = $execution_id;
)";
NYdb::TParamsBuilder params;
@@ -870,7 +699,7 @@ public:
void OnQueryResult() override {
if (!FinishWasRun) {
- if (ResultSets.size() != 1) {
+ if (ResultSets.size() != 2) {
Finish(Ydb::StatusIds::INTERNAL_ERROR, "Unexpected database response");
return;
}
@@ -893,7 +722,24 @@ public:
return;
}
- FinishScriptExecution(Database, ExecutionId, OperationStatus, ExecStatus, Issues, TTxControl::ContinueAndCommitTx(), std::move(QueryStats), std::move(QueryPlan), std::move(QueryAst));
+ NYdb::TResultSetParser metaResult(ResultSets[1]);
+ metaResult.TryNextRow();
+
+ const auto serializedMeta = metaResult.ColumnParser("meta").GetOptionalJsonDocument();
+ if (!serializedMeta) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Missing opeartion metainformation");
+ return;
+ }
+
+ const auto ttl = GetTtlFromSerializedMeta(*serializedMeta);
+ if (!ttl) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Metainformation is corrupted");
+ return;
+ }
+
+ const auto [operationTtl, resultsTtl] = *ttl;
+ FinishScriptExecution(Database, ExecutionId, OperationStatus, ExecStatus, operationTtl, resultsTtl,
+ Issues, TTxControl::ContinueAndCommitTx(), std::move(QueryStats), std::move(QueryPlan), std::move(QueryAst));
FinishWasRun = true;
} else {
Finish();
@@ -934,8 +780,9 @@ public:
DECLARE $database AS Text;
DECLARE $execution_id AS Text;
- SELECT operation_status, execution_status, issues, run_script_actor_id FROM `.metadata/script_executions`
- WHERE database = $database AND execution_id = $execution_id;
+ SELECT operation_status, execution_status, issues, run_script_actor_id, meta FROM `.metadata/script_executions`
+ WHERE database = $database AND execution_id = $execution_id AND
+ (expire_at > CurrentUtcTimestamp() OR expire_at IS NULL);
SELECT lease_deadline FROM `.metadata/script_execution_leases`
WHERE database = $database AND execution_id = $execution_id;
@@ -961,7 +808,7 @@ public:
}
NYdb::TResultSetParser result(ResultSets[0]);
if (result.RowsCount() == 0) {
- Finish(Ydb::StatusIds::BAD_REQUEST, "No such execution");
+ Finish(Ydb::StatusIds::NOT_FOUND, "No such execution");
return;
}
@@ -992,7 +839,18 @@ public:
if (operationStatus) {
Finish(Ydb::StatusIds::INTERNAL_ERROR, "Invalid operation state");
} else if (*leaseDeadline < RunStartTime) {
- FinishScriptExecution(Database, ExecutionId, StatusOnExpiredLease, Ydb::Query::EXEC_STATUS_ABORTED);
+ auto serializedMeta = result.ColumnParser("meta").GetOptionalJsonDocument();
+ if (!serializedMeta) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Missing opeartion metainformation");
+ return;
+ }
+ const auto ttl = GetTtlFromSerializedMeta(*serializedMeta);
+ if (!ttl) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Metainformation is corrupted");
+ return;
+ }
+ const auto [operationTtl, resultsTtl] = *ttl;
+ FinishScriptExecution(Database, ExecutionId, StatusOnExpiredLease, Ydb::Query::EXEC_STATUS_ABORTED, operationTtl, resultsTtl);
SetQueryResultHandler(&TCheckLeaseStatusActor::OnFinishScriptExecution);
} else {
// OperationStatus is Nothing(): currently running
@@ -1058,7 +916,8 @@ public:
operation_status,
execution_status
FROM `.metadata/script_executions`
- WHERE database = $database AND execution_id = $execution_id;
+ WHERE database = $database AND execution_id = $execution_id AND
+ (expire_at > CurrentUtcTimestamp() OR expire_at IS NULL);
SELECT
lease_deadline
@@ -1106,6 +965,11 @@ public:
DELETE
FROM `.metadata/script_executions`
WHERE database = $database AND execution_id = $execution_id;
+
+ DELETE
+ FROM `.metadata/result_sets`
+ WHERE database = $database AND execution_id = $execution_id;
+
)";
NYdb::TResultSetParser deadlineResult(ResultSets[1]);
@@ -1158,140 +1022,13 @@ private:
NYql::TIssues Issues;
};
-class TGetScriptExecutionOperationBase : public TScriptExecutionFinisherBase {
+class TGetScriptExecutionOperationActor : public TScriptExecutionFinisherBase {
public:
- explicit TGetScriptExecutionOperationBase(TEvGetScriptExecutionOperation::TPtr ev, Ydb::Query::ExecuteScriptMetadata&& metadata = Ydb::Query::ExecuteScriptMetadata(), NYql::TIssues&& issues = {})
+ explicit TGetScriptExecutionOperationActor(TEvGetScriptExecutionOperation::TPtr ev)
: Request(std::move(ev))
- , Metadata(metadata)
- , Issues(issues)
, StartActorTime(TInstant::Now())
{}
- bool CheakLeaseDeadline(NYdb::TResultSetParser& deadlineResult) {
- deadlineResult.TryNextRow();
-
- TMaybe<TInstant> leaseDeadline = deadlineResult.ColumnParser(0).GetOptionalTimestamp();
- if (!leaseDeadline) {
- Finish(Ydb::StatusIds::INTERNAL_ERROR, "Unexpected operation state");
- return false;
- }
-
- if (*leaseDeadline < StartActorTime) {
- LeaseExpired = true;
- Ready = true;
-
- FinishScriptExecution(Request->Get()->Database, Metadata.execution_id(), Ydb::StatusIds::ABORTED, Ydb::Query::EXEC_STATUS_ABORTED, Issues);
- SetQueryResultHandler(&TGetScriptExecutionOperationBase::OnFinishOperation);
- return false;
- }
-
- return true;
- }
-
- void OnFinishOperation() {
- Issues = LeaseExpiredIssues();
- Metadata.set_exec_status(Ydb::Query::EXEC_STATUS_ABORTED);
- Finish(Ydb::StatusIds::SUCCESS, std::move(Issues));
- }
-
- void Reply(Ydb::StatusIds::StatusCode status, NYql::TIssues&& issues) {
- if (status == Ydb::StatusIds::SUCCESS) {
- TMaybe<google::protobuf::Any> metadata;
- metadata.ConstructInPlace().PackFrom(Metadata);
-
- Send(Request->Sender, new TEvGetScriptExecutionOperationResponse(Ready, status, std::move(Issues), std::move(metadata)));
- } else {
- Send(Request->Sender, new TEvGetScriptExecutionOperationResponse(false, status, std::move(issues), Nothing()));
- }
- }
-
-protected:
- TEvGetScriptExecutionOperation::TPtr Request;
- Ydb::Query::ExecuteScriptMetadata Metadata;
- NYql::TIssues Issues;
- TInstant StartActorTime;
- bool LeaseExpired = false;
- bool Ready = false;
-};
-
-class TGetScriptExecutionOperationAfterTliActor : public TGetScriptExecutionOperationBase {
-public:
- TGetScriptExecutionOperationAfterTliActor(TEvGetScriptExecutionOperation::TPtr ev, Ydb::Query::ExecuteScriptMetadata&& metadata, NYql::TIssues&& issues)
- : TGetScriptExecutionOperationBase(std::move(ev), std::move(metadata), std::move(issues))
- {}
-
- void OnRunQuery() override {
- TString sql = R"(
- -- TGetScriptExecutionOperationAfterTliActor::OnRunQuery
- DECLARE $database AS Text;
- DECLARE $execution_id AS Text;
-
- SELECT execution_status
- FROM `.metadata/script_executions`
- WHERE database = $database AND execution_id = $execution_id;
-
- SELECT lease_deadline
- FROM `.metadata/script_execution_leases`
- WHERE database = $database AND execution_id = $execution_id;
- )";
-
- NYdb::TParamsBuilder params;
- params
- .AddParam("$database")
- .Utf8(Request->Get()->Database)
- .Build()
- .AddParam("$execution_id")
- .Utf8(Metadata.execution_id())
- .Build();
-
- RunDataQuery(sql, &params, TTxControl::BeginTx());
- SetQueryResultHandler(&TGetScriptExecutionOperationAfterTliActor::OnGetInfo);
- }
-
- void OnGetInfo() {
- if (ResultSets.size() != 2) {
- Finish(Ydb::StatusIds::INTERNAL_ERROR, "Unexpected database response");
- return;
- }
- NYdb::TResultSetParser result(ResultSets[0]);
- if (result.RowsCount() == 0) {
- Finish(Ydb::StatusIds::NOT_FOUND, "No such execution");
- return;
- }
-
- result.TryNextRow();
-
- const TMaybe<i32> executionStatus = result.ColumnParser("execution_status").GetOptionalInt32();
- if (executionStatus) {
- Metadata.set_exec_status(static_cast<Ydb::Query::ExecStatus>(*executionStatus));
- }
-
- NYdb::TResultSetParser deadlineResult(ResultSets[1]);
- if (deadlineResult.RowsCount() == 0) {
- Ready = true;
- } else if (!CheakLeaseDeadline(deadlineResult)) {
- return;
- }
-
- CommitTransaction();
- }
-
- void OnFinish(Ydb::StatusIds::StatusCode status, NYql::TIssues&& issues) override {
- if (status == Ydb::StatusIds::ABORTED && LeaseExpired) {
- Metadata.set_exec_status(Ydb::Query::EXEC_STATUS_ABORTED);
- status = Ydb::StatusIds::SUCCESS;
- }
-
- Reply(status, std::move(issues));
- }
-};
-
-class TGetScriptExecutionOperationActor : public TGetScriptExecutionOperationBase {
-public:
- explicit TGetScriptExecutionOperationActor(TEvGetScriptExecutionOperation::TPtr ev)
- : TGetScriptExecutionOperationBase(std::move(ev))
- {}
-
void OnRunQuery() override {
TString sql = R"(
-- TGetScriptExecutionOperationActor::OnRunQuery
@@ -1308,9 +1045,11 @@ public:
plan,
issues,
stats,
- ast
+ ast,
+ meta
FROM `.metadata/script_executions`
- WHERE database = $database AND execution_id = $execution_id;
+ WHERE database = $database AND execution_id = $execution_id AND
+ (expire_at > CurrentUtcTimestamp() OR expire_at IS NULL);
SELECT
lease_deadline
@@ -1420,24 +1159,66 @@ public:
return;
}
- if (!CheakLeaseDeadline(deadlineResult)) {
+ auto serializedMeta = result.ColumnParser("meta").GetOptionalJsonDocument();
+ if (!serializedMeta) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Missing operation metainformation");
+ return;
+ }
+
+ const auto ttl = GetTtlFromSerializedMeta(*serializedMeta);
+ if (!ttl) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Metainformation is corrupted");
+ return;
+ }
+
+ const auto [operationTtl, resultsTtl] = *ttl;
+ deadlineResult.TryNextRow();
+
+ TMaybe<TInstant> leaseDeadline = deadlineResult.ColumnParser(0).GetOptionalTimestamp();
+ if (!leaseDeadline) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Unexpected operation state");
return;
}
+
+ if (*leaseDeadline < StartActorTime) {
+ LeaseExpired = true;
+ FinishScriptExecution(Request->Get()->Database, Metadata.execution_id(), Ydb::StatusIds::ABORTED, Ydb::Query::EXEC_STATUS_ABORTED, operationTtl, resultsTtl, Issues);
+ SetQueryResultHandler(&TGetScriptExecutionOperationActor::OnFinishOperation);
+ }
}
- CommitTransaction();
+ if (!LeaseExpired) {
+ CommitTransaction();
+ }
+ }
+
+ void OnFinishOperation() {
+ Ready = true;
+ Issues = LeaseExpiredIssues();
+ Metadata.set_exec_status(Ydb::Query::EXEC_STATUS_ABORTED);
+
+ Finish(Ydb::StatusIds::SUCCESS, std::move(Issues));
}
void OnFinish(Ydb::StatusIds::StatusCode status, NYql::TIssues&& issues) override {
- if (status == Ydb::StatusIds::ABORTED && LeaseExpired) {
- Register(new TGetScriptExecutionOperationAfterTliActor(std::move(Request), std::move(Metadata), std::move(Issues)));
+ if (status == Ydb::StatusIds::SUCCESS) {
+ TMaybe<google::protobuf::Any> metadata;
+ metadata.ConstructInPlace().PackFrom(Metadata);
+
+ Send(Request->Sender, new TEvGetScriptExecutionOperationResponse(Ready, Ydb::StatusIds::SUCCESS, std::move(Issues), std::move(metadata)));
} else {
- Reply(status, std::move(issues));
+ Send(Request->Sender, new TEvGetScriptExecutionOperationResponse(false, status, std::move(issues), Nothing()));
}
}
private:
+ TEvGetScriptExecutionOperation::TPtr Request;
+ TInstant StartActorTime;
TString ExecutionId;
+ bool Ready = false;
+ bool LeaseExpired = false;
+ NYql::TIssues Issues;
+ Ydb::Query::ExecuteScriptMetadata Metadata;
};
class TListScriptExecutionOperationsQuery : public TQueryBase {
@@ -1484,7 +1265,7 @@ public:
execution_mode,
issues
FROM `.metadata/script_executions`
- WHERE database = $database
+ WHERE database = $database AND (expire_at > CurrentUtcTimestamp() OR expire_at IS NULL)
)";
if (PageToken) {
sql << R"(
@@ -1978,11 +1759,11 @@ private:
class TGetScriptExecutionResultQuery : public TQueryBase {
public:
- TGetScriptExecutionResultQuery(const TString& database, const TString& executionId, i32 resultSetId, i64 offset, i64 limit)
- : Database(database), ExecutionId(executionId), ResultSetId(resultSetId), Offset(offset), Limit(limit)
+ TGetScriptExecutionResultQuery(const TString& database, const TString& executionId, i32 resultSetIndex, i64 offset, i64 limit)
+ : Database(database), ExecutionId(executionId), ResultSetIndex(resultSetIndex), Offset(offset), Limit(limit)
{
Response = MakeHolder<TEvKqp::TEvFetchScriptResultsResponse>();
- Response->Record.SetResultSetIndex(ResultSetId);
+ Response->Record.SetResultSetIndex(ResultSetIndex);
}
void OnRunQuery() override {
@@ -1994,10 +1775,11 @@ public:
DECLARE $offset AS Int64;
DECLARE $limit AS Uint64;
- SELECT result_set_metas, operation_status, issues
+ SELECT result_set_metas, operation_status, issues, end_ts, meta
FROM `.metadata/script_executions`
WHERE database = $database
- AND execution_id = $execution_id;
+ AND execution_id = $execution_id
+ AND (expire_at > CurrentUtcTimestamp() OR expire_at IS NULL);
SELECT row_id, result_set
FROM `.metadata/result_sets`
@@ -2018,7 +1800,7 @@ public:
.Utf8(ExecutionId)
.Build()
.AddParam("$result_set_id")
- .Int32(ResultSetId)
+ .Int32(ResultSetIndex)
.Build()
.AddParam("$offset")
.Int64(Offset)
@@ -2040,7 +1822,7 @@ public:
NYdb::TResultSetParser result(ResultSets[0]);
if (!result.TryNextRow()) {
- Finish(Ydb::StatusIds::BAD_REQUEST, "Script execution not found");
+ Finish(Ydb::StatusIds::NOT_FOUND, "Script execution not found");
return;
}
@@ -2050,6 +1832,29 @@ public:
return;
}
+ const auto serializedMeta = result.ColumnParser("meta").GetOptionalJsonDocument();
+ if (!serializedMeta) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Missing operation metainformation");
+ return;
+ }
+
+ const auto endTs = result.ColumnParser("end_ts").GetOptionalTimestamp();
+ if (!endTs) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Missing operation end timestamp");
+ return;
+ }
+
+ const auto ttl = GetTtlFromSerializedMeta(*serializedMeta);
+ if (!ttl) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Metainformation is corrupted");
+ return;
+ }
+ const auto [_, resultsTtl] = *ttl;
+ if ((*endTs + resultsTtl) < TInstant::Now()){
+ Finish(Ydb::StatusIds::NOT_FOUND, "Results are expired");
+ return;
+ }
+
Ydb::StatusIds::StatusCode operationStatusCode = static_cast<Ydb::StatusIds::StatusCode>(*operationStatus);
if (operationStatusCode != Ydb::StatusIds::SUCCESS) {
const TMaybe<TString> issuesSerialized = result.ColumnParser("issues").GetOptionalJsonDocument();
@@ -2074,12 +1879,12 @@ public:
}
const NJson::TJsonValue* metaValue;
- if (!value.GetValuePointer(ResultSetId, &metaValue)) {
+ if (!value.GetValuePointer(ResultSetIndex, &metaValue)) {
Finish(Ydb::StatusIds::BAD_REQUEST, "Result set index is invalid");
return;
}
- Ydb::Query::ResultSetMeta meta;
+ Ydb::Query::Internal::ResultSetMeta meta;
NProtobufJson::Json2Proto(*metaValue, meta);
*Response->Record.MutableResultSet()->mutable_columns() = meta.columns();
@@ -2121,7 +1926,7 @@ public:
private:
const TString Database;
const TString ExecutionId;
- const i32 ResultSetId;
+ const i32 ResultSetIndex;
const i64 Offset;
const i64 Limit;
THolder<TEvKqp::TEvFetchScriptResultsResponse> Response;
@@ -2129,13 +1934,13 @@ private:
class TGetScriptExecutionResultActor : public TActorBootstrapped<TGetScriptExecutionResultActor> {
public:
- TGetScriptExecutionResultActor(const NActors::TActorId& replyActorId, const TString& database, const TString& executionId, i32 resultSetId, i64 offset, i64 limit)
- : ReplyActorId(replyActorId), Database(database), ExecutionId(executionId), ResultSetId(resultSetId), Offset(offset), Limit(limit)
+ TGetScriptExecutionResultActor(const NActors::TActorId& replyActorId, const TString& database, const TString& executionId, i32 resultSetIndex, i64 offset, i64 limit)
+ : ReplyActorId(replyActorId), Database(database), ExecutionId(executionId), ResultSetIndex(resultSetIndex), Offset(offset), Limit(limit)
{
}
void Bootstrap() {
- Register(new TGetScriptExecutionResultQuery(Database, ExecutionId, ResultSetId, Offset, Limit));
+ Register(new TGetScriptExecutionResultQuery(Database, ExecutionId, ResultSetIndex, Offset, Limit));
Become(&TGetScriptExecutionResultActor::StateFunc);
}
@@ -2153,7 +1958,7 @@ private:
const NActors::TActorId ReplyActorId;
const TString Database;
const TString ExecutionId;
- const i32 ResultSetId;
+ const i32 ResultSetIndex;
const i64 Offset;
const i64 Limit;
};
@@ -2211,14 +2016,14 @@ NActors::IActor* CreateSaveScriptExecutionResultActor(const NActors::TActorId& r
return new TSaveScriptExecutionResultActor(replyActorId, database, executionId, resultSetId, expireAt, firstRow, std::move(serializedRows));
}
-NActors::IActor* CreateGetScriptExecutionResultActor(const NActors::TActorId& replyActorId, const TString& database, const TString& executionId, i32 resultSetId, i64 offset, i64 limit) {
- return new TGetScriptExecutionResultActor(replyActorId, database, executionId, resultSetId, offset, limit);
+NActors::IActor* CreateGetScriptExecutionResultActor(const NActors::TActorId& replyActorId, const TString& database, const TString& executionId, i32 resultSetIndex, i64 offset, i64 limit) {
+ return new TGetScriptExecutionResultActor(replyActorId, database, executionId, resultSetIndex, offset, limit);
}
namespace NPrivate {
-NActors::IActor* CreateCreateScriptOperationQueryActor(const TString& executionId, const NActors::TActorId& runScriptActorId, const NKikimrKqp::TEvQueryRequest& record, TDuration leaseDuration) {
- return new TCreateScriptOperationQuery(executionId, runScriptActorId, record, leaseDuration);
+NActors::IActor* CreateCreateScriptOperationQueryActor(const TString& executionId, const NActors::TActorId& runScriptActorId, const NKikimrKqp::TEvQueryRequest& record, TDuration operationTtl, TDuration resultsTtl, TDuration leaseDuration) {
+ return new TCreateScriptOperationQuery(executionId, runScriptActorId, record, operationTtl, resultsTtl, leaseDuration);
}
NActors::IActor* CreateCheckLeaseStatusActor(const TString& database, const TString& executionId, Ydb::StatusIds::StatusCode statusOnExpiredLease, ui64 cookie) {
diff --git a/ydb/core/kqp/proxy_service/kqp_script_executions_impl.h b/ydb/core/kqp/proxy_service/kqp_script_executions_impl.h
index 1846a5454a..d5efc733a2 100644
--- a/ydb/core/kqp/proxy_service/kqp_script_executions_impl.h
+++ b/ydb/core/kqp/proxy_service/kqp_script_executions_impl.h
@@ -70,7 +70,8 @@ struct TEvPrivate {
// Writes new script into db.
// If lease duration is zero, default one will be taken.
-NActors::IActor* CreateCreateScriptOperationQueryActor(const TString& executionId, const NActors::TActorId& runScriptActorId, const NKikimrKqp::TEvQueryRequest& record, TDuration leaseDuration = TDuration::Zero());
+NActors::IActor* CreateCreateScriptOperationQueryActor(const TString& executionId, const NActors::TActorId& runScriptActorId, const NKikimrKqp::TEvQueryRequest& record,
+ TDuration operationTtl, TDuration resultsTtl, TDuration leaseDuration = TDuration::Zero());
// Checks lease of execution, finishes execution if its lease is off, returns current status
NActors::IActor* CreateCheckLeaseStatusActor(const TString& database, const TString& executionId, Ydb::StatusIds::StatusCode statusOnExpiredLease = Ydb::StatusIds::ABORTED, ui64 cookie = 0);
diff --git a/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp b/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp
index cb997c85fc..e4ba0d1a73 100644
--- a/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp
+++ b/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp
@@ -1,5 +1,6 @@
#include "kqp_script_executions.h"
#include "kqp_script_executions_impl.h"
+#include "kqp_table_creator.h"
#include <ydb/core/testlib/test_client.h>
#include <ydb/core/testlib/basics/appdata.h>
@@ -17,8 +18,48 @@ using namespace NSchemeShard;
namespace {
constexpr TDuration TestLeaseDuration = TDuration::Seconds(1);
+constexpr TDuration TestOperationTtl = TDuration::Minutes(1);
+constexpr TDuration TestResultsTtl = TDuration::Minutes(1);
const TString TestDatabase = "test_db";
+NKikimrSchemeOp::TColumnDescription Col(const TString& columnName, const char* columnType) {
+ NKikimrSchemeOp::TColumnDescription desc;
+ desc.SetName(columnName);
+ desc.SetType(columnType);
+ return desc;
+}
+
+NKikimrSchemeOp::TColumnDescription Col(const TString& columnName, NScheme::TTypeId columnType) {
+ return Col(columnName, NScheme::TypeName(columnType));
+}
+
+[[maybe_unused]] NKikimrSchemeOp::TTTLSettings TtlCol(const TString& columnName) {
+ NKikimrSchemeOp::TTTLSettings settings;
+ settings.MutableEnabled()->SetExpireAfterSeconds(TDuration::Minutes(20).Seconds());
+ settings.MutableEnabled()->SetColumnName(columnName);
+ settings.MutableEnabled()->MutableSysSettings()->SetRunInterval(TDuration::Minutes(60).MicroSeconds());
+ return settings;
+}
+
+const TVector<NKikimrSchemeOp::TColumnDescription> DEFAULT_COLUMNS = {
+ Col("col1", NScheme::NTypeIds::Int32),
+ Col("col2", NScheme::NTypeIds::Int32),
+ Col("col3", NScheme::NTypeIds::String)
+};
+
+const TVector<NKikimrSchemeOp::TColumnDescription> EXTENDED_COLUMNS = {
+ Col("col1", NScheme::NTypeIds::Int32),
+ Col("col2", NScheme::NTypeIds::Int32),
+ Col("col3", NScheme::NTypeIds::String),
+ Col("col4", NScheme::NTypeIds::JsonDocument),
+ Col("col5", NScheme::NTypeIds::Interval)
+};
+
+const TVector<TString> TEST_TABLE_PATH = { ".test", "test_table" };
+
+const TVector<TString> TEST_KEY_COLUMNS = {"col1"};
+
+
struct TScriptExecutionsYdbSetup {
TScriptExecutionsYdbSetup() {
Init();
@@ -82,7 +123,7 @@ struct TScriptExecutionsYdbSetup {
}
// Creates query in db. Returns execution id
- TString CreateQueryInDb(const TString& query = "SELECT 42", TDuration leaseDuration = TestLeaseDuration) {
+ TString CreateQueryInDb(const TString& query = "SELECT 42", TDuration leaseDuration = TestLeaseDuration, TDuration operationTtl = TestOperationTtl, TDuration resultsTtl = TestResultsTtl) {
TString executionId = CreateGuidAsString();
NKikimrKqp::TEvQueryRequest req;
req.MutableRequest()->SetDatabase(TestDatabase);
@@ -90,7 +131,7 @@ struct TScriptExecutionsYdbSetup {
req.MutableRequest()->SetAction(NKikimrKqp::QUERY_ACTION_EXECUTE);
const ui32 node = 0;
TActorId edgeActor = GetRuntime()->AllocateEdgeActor(node);
- GetRuntime()->Register(NPrivate::CreateCreateScriptOperationQueryActor(executionId, NActors::TActorId(), req, leaseDuration), 0, 0, TMailboxType::Simple, 0, edgeActor);
+ GetRuntime()->Register(NPrivate::CreateCreateScriptOperationQueryActor(executionId, NActors::TActorId(), req, operationTtl, resultsTtl, leaseDuration), 0, 0, TMailboxType::Simple, 0, edgeActor);
auto reply = GetRuntime()->GrabEdgeEvent<NPrivate::TEvPrivate::TEvCreateScriptOperationResponse>(edgeActor);
UNIT_ASSERT(reply->Get()->Status == Ydb::StatusIds::SUCCESS);
@@ -98,6 +139,53 @@ struct TScriptExecutionsYdbSetup {
return reply->Get()->ExecutionId;
}
+ void CreateTableInDbSync(TVector<NKikimrSchemeOp::TColumnDescription> columns = DEFAULT_COLUMNS, i32 numberOfRequests = 1, TVector<TString> pathComponents = TEST_TABLE_PATH, TVector<TString> keyColumns = TEST_KEY_COLUMNS,
+ TMaybe<NKikimrSchemeOp::TTTLSettings> ttlSettings = Nothing()) {
+
+ TVector<TActorId> edgeActors;
+ for (i32 i = 0; i < numberOfRequests; ++i) {
+ edgeActors.push_back(CreateTableInDbAsync(columns, pathComponents, keyColumns, ttlSettings));
+ }
+ WaitTableCreation(std::move(edgeActors));
+ }
+
+ TActorId CreateTableInDbAsync(TVector<NKikimrSchemeOp::TColumnDescription> columns = DEFAULT_COLUMNS, TVector<TString> pathComponents = TEST_TABLE_PATH, TVector<TString> keyColumns = TEST_KEY_COLUMNS,
+ TMaybe<NKikimrSchemeOp::TTTLSettings> ttlSettings = Nothing()) {
+ const ui32 node = 0;
+ TActorId edgeActor = GetRuntime()->AllocateEdgeActor(node);
+ GetRuntime()->Register(CreateTableCreator(std::move(pathComponents), std::move(columns), std::move(keyColumns), std::move(ttlSettings)), 0, 0, TMailboxType::Simple, 0, edgeActor);
+ return edgeActor;
+ }
+
+ void WaitTableCreation(TVector<TActorId> edgeActors) {
+ for (const auto& actor: edgeActors) {
+ GetRuntime()->GrabEdgeEvent<NPrivate::TEvPrivate::TEvCreateTableResponse>(actor);
+ }
+ }
+
+ void VerifyColumnsList( TVector<TString> pathComponents = TEST_TABLE_PATH, TVector<NKikimrSchemeOp::TColumnDescription> columns = DEFAULT_COLUMNS) {
+ TStringBuilder path;
+ path << "/dc-1/";
+ for (size_t i = 0; i < pathComponents.size() - 1; ++i) {
+ path << pathComponents[i] << "/";
+ }
+ path << pathComponents.back();
+
+ auto result = TableClientSession->DescribeTable(path).ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ const auto& existingColumns = result.GetTableDescription().GetColumns();
+ UNIT_ASSERT_C(existingColumns.size() == columns.size(), "Expected size: " << columns.size() << ", actual size: " << existingColumns.size());
+
+ THashSet<TString> existingNames;
+ for (const auto& col: existingColumns) {
+ existingNames.emplace(col.Name);
+ }
+
+ for (const auto& col: columns) {
+ UNIT_ASSERT_C(existingNames.contains(col.GetName()), "Column \"" << col.GetName() << "\" is not present" );
+ }
+ }
+
NPrivate::TEvPrivate::TEvLeaseCheckResult::TPtr CheckLeaseStatus(const TString& executionId) {
const ui32 node = 0;
TActorId edgeActor = GetRuntime()->AllocateEdgeActor(node);
@@ -230,4 +318,103 @@ Y_UNIT_TEST_SUITE(ScriptExecutionsTest) {
UNIT_ASSERT(!updateResponse->ExecutionEntryExists);
}
}
+
+Y_UNIT_TEST_SUITE(TableCreation) {
+
+ Y_UNIT_TEST(SimpleTableCreation) {
+ TScriptExecutionsYdbSetup ydb;
+
+ ydb.CreateTableInDbSync();
+ ydb.VerifyColumnsList();
+ }
+
+ Y_UNIT_TEST(ConcurrentTableCreation) {
+ TScriptExecutionsYdbSetup ydb;
+
+ constexpr i32 requests = 20;
+
+ ydb.CreateTableInDbSync(DEFAULT_COLUMNS, requests);
+ ydb.VerifyColumnsList();
+ }
+
+ Y_UNIT_TEST(MultipleTablesCreation) {
+ TScriptExecutionsYdbSetup ydb;
+
+ constexpr i32 requests = 2;
+
+ TVector<TActorId> edgeActors;
+ for (i32 i = 0; i < requests; ++i) {
+ edgeActors.push_back(ydb.CreateTableInDbAsync(DEFAULT_COLUMNS, { ".test", "test_table" + ToString(i)}));
+ }
+
+ ydb.WaitTableCreation(std::move(edgeActors));
+
+ for(i32 i = 0; i < requests; i++) {
+ ydb.VerifyColumnsList({".test", "test_table" + ToString(i)});
+ }
+ }
+
+ Y_UNIT_TEST(ConcurrentMultipleTablesCreation) {
+ TScriptExecutionsYdbSetup ydb;
+
+ constexpr i32 tables = 2;
+ constexpr i32 requests = 20;
+
+ TVector<TActorId> edgeActors;
+ for (i32 i = 0; i < tables; ++i) {
+ for (i32 j = 0; j < requests; ++j){
+ edgeActors.push_back(ydb.CreateTableInDbAsync(DEFAULT_COLUMNS, { ".test", "test_table" + ToString(i)}));
+ }
+ }
+
+ ydb.WaitTableCreation(std::move(edgeActors));
+
+ for(i32 i = 0; i < tables; i++) {
+ ydb.VerifyColumnsList({".test", "test_table" + ToString(i)});
+ }
+ }
+
+ Y_UNIT_TEST(ConcurrentTableCreationWithDifferentVersions) {
+ TScriptExecutionsYdbSetup ydb;
+
+ constexpr i32 requests = 10;
+
+ TVector<TActorId> edgeActors;
+ for (i32 i = 0; i < requests; ++i) {
+ edgeActors.push_back(ydb.CreateTableInDbAsync(i % 2 ? EXTENDED_COLUMNS : DEFAULT_COLUMNS));
+
+ }
+
+ ydb.WaitTableCreation(edgeActors);
+ ydb.VerifyColumnsList(TEST_TABLE_PATH, EXTENDED_COLUMNS);
+ }
+
+ Y_UNIT_TEST(SimpleUpdateTable) {
+ TScriptExecutionsYdbSetup ydb;
+
+ ydb.CreateTableInDbSync(DEFAULT_COLUMNS);
+ ydb.CreateTableInDbSync(EXTENDED_COLUMNS);
+ ydb.VerifyColumnsList(TEST_TABLE_PATH, EXTENDED_COLUMNS);
+ }
+
+ Y_UNIT_TEST(ConcurrentUpdateTable) {
+ TScriptExecutionsYdbSetup ydb;
+
+ constexpr i32 requests = 10;
+
+ ydb.CreateTableInDbSync(DEFAULT_COLUMNS);
+ ydb.CreateTableInDbSync(EXTENDED_COLUMNS, requests);
+
+ ydb.VerifyColumnsList(TEST_TABLE_PATH, EXTENDED_COLUMNS);
+ }
+
+ Y_UNIT_TEST(CreateOldTable) {
+ TScriptExecutionsYdbSetup ydb;
+
+ ydb.CreateTableInDbSync(EXTENDED_COLUMNS);
+ ydb.CreateTableInDbSync(DEFAULT_COLUMNS);
+ ydb.VerifyColumnsList(TEST_TABLE_PATH, EXTENDED_COLUMNS);
+ }
+
+}
} // namespace NKikimr::NKqp
diff --git a/ydb/core/kqp/proxy_service/kqp_table_creator.cpp b/ydb/core/kqp/proxy_service/kqp_table_creator.cpp
new file mode 100644
index 0000000000..32b7686bd4
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/kqp_table_creator.cpp
@@ -0,0 +1,381 @@
+#include "kqp_script_executions.h"
+#include "kqp_script_executions_impl.h"
+#include "kqp_table_creator.h"
+
+#include <ydb/core/base/path.h>
+#include <ydb/core/base/tablet_pipe.h>
+#include <ydb/library/services/services.pb.h>
+#include <ydb/core/tx/scheme_cache/scheme_cache.h>
+#include <ydb/core/tx/schemeshard/schemeshard.h>
+#include <ydb/core/tx/schemeshard/schemeshard_path.h>
+#include <ydb/core/tx/tx_proxy/proxy.h>
+#include <ydb/library/yql/public/issue/yql_issue_message.h>
+#include <ydb/public/api/protos/ydb_issue_message.pb.h>
+#include <ydb/public/lib/scheme_types/scheme_type_id.h>
+
+#include <library/cpp/actors/core/actor_bootstrapped.h>
+#include <library/cpp/actors/core/hfunc.h>
+#include <library/cpp/actors/core/interconnect.h>
+#include <library/cpp/actors/core/log.h>
+#include <library/cpp/retry/retry_policy.h>
+
+#include <util/generic/guid.h>
+#include <util/generic/utility.h>
+#include <util/random/random.h>
+
+namespace NKikimr::NKqp {
+
+using namespace NKikimr::NKqp::NPrivate;
+
+namespace {
+
+#define KQP_PROXY_LOG_T(stream) LOG_TRACE_S(*TlsActivationContext, NKikimrServices::KQP_PROXY, stream)
+#define KQP_PROXY_LOG_D(stream) LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::KQP_PROXY, stream)
+#define KQP_PROXY_LOG_I(stream) LOG_INFO_S(*TlsActivationContext, NKikimrServices::KQP_PROXY, stream)
+#define KQP_PROXY_LOG_N(stream) LOG_NOTICE_S(*TlsActivationContext, NKikimrServices::KQP_PROXY, stream)
+#define KQP_PROXY_LOG_W(stream) LOG_WARN_S(*TlsActivationContext, NKikimrServices::KQP_PROXY, stream)
+#define KQP_PROXY_LOG_E(stream) LOG_ERROR_S(*TlsActivationContext, NKikimrServices::KQP_PROXY, stream)
+#define KQP_PROXY_LOG_C(stream) LOG_CRIT_S(*TlsActivationContext, NKikimrServices::KQP_PROXY, stream)
+
+class TTableCreator : public NActors::TActorBootstrapped<TTableCreator> {
+
+using TTableCreatorRetryPolicy = IRetryPolicy<bool>;
+
+public:
+ TTableCreator(TVector<TString> pathComponents, TVector<NKikimrSchemeOp::TColumnDescription> columns, TVector<TString> keyColumns,
+ TMaybe<NKikimrSchemeOp::TTTLSettings> ttlSettings = Nothing())
+ : PathComponents(std::move(pathComponents))
+ , Columns(std::move(columns))
+ , KeyColumns(std::move(keyColumns))
+ , TtlSettings(std::move(ttlSettings))
+ , LogPrefix("Table " + TableName() + " updater. ")
+ {
+ Y_VERIFY(!PathComponents.empty());
+ Y_VERIFY(!Columns.empty());
+ }
+
+ void Registered(NActors::TActorSystem* sys, const NActors::TActorId& owner) override {
+ NActors::TActorBootstrapped<TTableCreator>::Registered(sys, owner);
+ Owner = owner;
+ }
+
+ STRICT_STFUNC(StateFuncCheck,
+ hFunc(TEvTxProxySchemeCache::TEvNavigateKeySetResult, Handle);
+ sFunc(NActors::TEvents::TEvWakeup, CheckTableExistence);
+ hFunc(TEvTabletPipe::TEvClientDestroyed, Handle);
+ )
+
+ STRICT_STFUNC(StateFuncUpgrade,
+ hFunc(TEvTxUserProxy::TEvProposeTransactionStatus, Handle);
+ hFunc(NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletionResult, Handle);
+ sFunc(NActors::TEvents::TEvWakeup, RunTableRequest);
+ hFunc(TEvTabletPipe::TEvClientConnected, Handle);
+ hFunc(TEvTabletPipe::TEvClientDestroyed, Handle);
+ hFunc(NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletionRegistered, Handle);
+ )
+
+ void Bootstrap() {
+ Become(&TTableCreator::StateFuncCheck);
+ CheckTableExistence();
+ }
+
+ void CheckTableExistence() {
+ auto request = MakeHolder<NSchemeCache::TSchemeCacheNavigate>();
+ auto pathComponents = SplitPath(AppData()->TenantName);
+ request->DatabaseName = CanonizePath(pathComponents);
+ auto& entry = request->ResultSet.emplace_back();
+ entry.Operation = NSchemeCache::TSchemeCacheNavigate::OpTable;
+ pathComponents.insert(pathComponents.end(), PathComponents.begin(), PathComponents.end());
+ entry.Path = pathComponents;
+ entry.ShowPrivatePath = true;
+ entry.RequestType = NSchemeCache::TSchemeCacheNavigate::TEntry::ERequestType::ByPath;
+ Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvNavigateKeySet(request.Release()));
+ }
+
+ void RunTableRequest() {
+ auto request = MakeHolder<TEvTxUserProxy::TEvProposeTransaction>();
+ NKikimrSchemeOp::TModifyScheme& modifyScheme = *request->Record.MutableTransaction()->MutableModifyScheme();
+ auto pathComponents = SplitPath(AppData()->TenantName);
+ for (size_t i = 0; i < PathComponents.size() - 1; ++i) {
+ pathComponents.emplace_back(PathComponents[i]);
+ }
+ modifyScheme.SetWorkingDir(CanonizePath(pathComponents));
+ KQP_PROXY_LOG_D(LogPrefix << "Full table path:" << modifyScheme.GetWorkingDir() << "/" << TableName());
+ modifyScheme.SetOperationType(OperationType);
+ modifyScheme.SetInternal(true);
+ modifyScheme.SetAllowAccessToPrivatePaths(true);
+ NKikimrSchemeOp::TTableDescription* tableDesc;
+ if (OperationType == NKikimrSchemeOp::ESchemeOpCreateTable) {
+ tableDesc = modifyScheme.MutableCreateTable();
+ for (const TString& k : KeyColumns) {
+ tableDesc->AddKeyColumnNames(k);
+ }
+ } else {
+ Y_VERIFY_DEBUG(OperationType == NKikimrSchemeOp::ESchemeOpAlterTable);
+ tableDesc = modifyScheme.MutableAlterTable();
+ }
+ tableDesc->SetName(TableName());
+ for (const NKikimrSchemeOp::TColumnDescription& col : Columns) {
+ *tableDesc->AddColumns() = col;
+ }
+ if (TtlSettings) {
+ tableDesc->MutableTTLSettings()->CopyFrom(*TtlSettings);
+ }
+ Send(MakeTxProxyID(), std::move(request));
+ }
+
+ void Handle(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) {
+ using EStatus = NSchemeCache::TSchemeCacheNavigate::EStatus;
+ const NSchemeCache::TSchemeCacheNavigate& request = *ev->Get()->Request;
+ Y_VERIFY(request.ResultSet.size() == 1);
+ const NSchemeCache::TSchemeCacheNavigate::TEntry& result = request.ResultSet[0];
+ if (result.Status != EStatus::Ok) {
+ KQP_PROXY_LOG_D(LogPrefix << "Describe result: " << result.Status);
+ }
+
+ switch (result.Status) {
+ case EStatus::Unknown:
+ [[fallthrough]];
+ case EStatus::PathNotTable:
+ [[fallthrough]];
+ case EStatus::PathNotPath:
+ [[fallthrough]];
+ case EStatus::RedirectLookupError:
+ Fail(result.Status);
+ break;
+ case EStatus::RootUnknown:
+ [[fallthrough]];
+ case EStatus::PathErrorUnknown:
+ Become(&TTableCreator::StateFuncUpgrade);
+ OperationType = NKikimrSchemeOp::ESchemeOpCreateTable;
+ KQP_PROXY_LOG_N(LogPrefix << "Creating table");
+ RunTableRequest();
+ break;
+ case EStatus::LookupError:
+ [[fallthrough]];
+ case EStatus::TableCreationNotComplete:
+ Retry();
+ break;
+ case EStatus::Ok:
+ ExcludeExistingColumns(result.Columns);
+ if (!Columns.empty()) {
+ OperationType = NKikimrSchemeOp::ESchemeOpAlterTable;
+ Become(&TTableCreator::StateFuncUpgrade);
+ RunTableRequest();
+ } else {
+ Success();
+ }
+ break;
+ }
+ }
+
+ void Handle(TEvTxUserProxy::TEvProposeTransactionStatus::TPtr& ev) {
+ KQP_PROXY_LOG_D(LogPrefix << "TEvProposeTransactionStatus: " << ev->Get()->Record);
+ const auto ssStatus = ev->Get()->Record.GetSchemeShardStatus();
+ switch (ev->Get()->Status()) {
+ case NTxProxy::TResultStatus::ExecComplete:
+ [[fallthrough]];
+ case NTxProxy::TResultStatus::ExecAlready:
+ if (ssStatus == NKikimrScheme::EStatus::StatusSuccess || ssStatus == NKikimrScheme::EStatus::StatusAlreadyExists) {
+ Success(ev);
+ } else {
+ Fail(ev);
+ }
+ break;
+ case NTxProxy::TResultStatus::ProxyShardNotAvailable:
+ Retry();
+ break;
+ case NTxProxy::TResultStatus::ExecError:
+ if (ssStatus == NKikimrScheme::EStatus::StatusMultipleModifications) {
+ SubscribeOnTransactionOrFallback(ev);
+ // In the process of creating a database, errors of the form may occur -
+ // database doesn't have storage pools at all to create tablet
+ // channels to storage pool binding by profile id
+ // Also, this status is returned when column types mismatch -
+ // need to fallback to rebuild column diff
+ } else if (ssStatus == NKikimrScheme::EStatus::StatusInvalidParameter) {
+ FallBack(true /* long delay */);
+ } else {
+ Fail(ev);
+ }
+ break;
+ case NTxProxy::TResultStatus::ExecInProgress:
+ SubscribeOnTransactionOrFallback(ev);
+ break;
+ default:
+ Fail(ev);
+ }
+ }
+
+ void Retry(bool longDelay = false) {
+ auto delay = GetRetryDelay(longDelay);
+ if (delay) {
+ Schedule(*delay, new NActors::TEvents::TEvWakeup());
+ } else {
+ Fail();
+ }
+
+ }
+
+ void FallBack(bool longDelay = false) {
+ if (SchemePipeActorId){
+ PipeClientClosedByUs = true;
+ NTabletPipe::CloseClient(SelfId(), SchemePipeActorId);
+ }
+ Become(&TTableCreator::StateFuncCheck);
+ Retry(longDelay);
+ }
+
+ void SubscribeOnTransactionOrFallback(TEvTxUserProxy::TEvProposeTransactionStatus::TPtr& ev) {
+ const ui64 txId = ev->Get()->Status() == NTxProxy::TResultStatus::ExecInProgress ? ev->Get()->Record.GetTxId() : ev->Get()->Record.GetPathCreateTxId();
+ if (txId == 0) {
+ KQP_PROXY_LOG_D(LogPrefix << "Unable to subscribe to concurrent transaction, falling back");
+ FallBack();
+ return;
+ }
+ PipeClientClosedByUs = false;
+ NActors::IActor* pipeActor = NTabletPipe::CreateClient(SelfId(), ev->Get()->Record.GetSchemeShardTabletId());
+ Y_VERIFY(pipeActor);
+ SchemePipeActorId = Register(pipeActor);
+ auto request = MakeHolder<NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletion>();
+ request->Record.SetTxId(txId);
+ NTabletPipe::SendData(SelfId(), SchemePipeActorId, std::move(request));
+ KQP_PROXY_LOG_D(LogPrefix << "Subscribe on create table tx: " << txId);
+ }
+
+ void Handle(TEvTabletPipe::TEvClientConnected::TPtr& ev) {
+ if (ev->Get()->Status != NKikimrProto::OK) {
+ KQP_PROXY_LOG_E(LogPrefix << "Request: " << GetOperationType() << ". Tablet to pipe not connected: " << NKikimrProto::EReplyStatus_Name(ev->Get()->Status) << ", retry");
+ PipeClientClosedByUs = true;
+ NTabletPipe::CloseClient(SelfId(), SchemePipeActorId);
+ SchemePipeActorId = {};
+ Retry();
+ }
+ }
+
+ void Handle(TEvTabletPipe::TEvClientDestroyed::TPtr&) {
+ SchemePipeActorId = {};
+ if (!PipeClientClosedByUs) {
+ KQP_PROXY_LOG_E(LogPrefix << "Request: " << GetOperationType() << ". Tablet to pipe destroyed, retry");
+ Retry();
+ }
+ PipeClientClosedByUs = false;
+ }
+
+ void Handle(NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletionRegistered::TPtr&) {
+ }
+
+ void Handle(NSchemeShard::TEvSchemeShard::TEvNotifyTxCompletionResult::TPtr& ev) {
+ KQP_PROXY_LOG_D(LogPrefix << "Request: " << GetOperationType() << ". Transaction completed: " << ev->Get()->Record.GetTxId() << ". Doublechecking...");
+ FallBack();
+ }
+
+ void Fail(NSchemeCache::TSchemeCacheNavigate::EStatus status) {
+ KQP_PROXY_LOG_E(LogPrefix << "Failed to upgrade table: " << status);
+ Reply();
+ }
+
+ void Fail(TEvTxUserProxy::TEvProposeTransactionStatus::TPtr& ev) {
+ KQP_PROXY_LOG_E(LogPrefix << "Failed " << GetOperationType() << " request: " << ev->Get()->Status() << ". Response: " << ev->Get()->Record);
+ Reply();
+ }
+
+ void Fail() {
+ KQP_PROXY_LOG_E(LogPrefix << "Retry limit exceeded");
+ Reply();
+ }
+
+ void Success() {
+ Reply();
+ }
+
+ void Success(TEvTxUserProxy::TEvProposeTransactionStatus::TPtr& ev) {
+ KQP_PROXY_LOG_I(LogPrefix << "Successful " << GetOperationType() << " request: " << ev->Get()->Status());
+ Reply();
+ }
+
+ void Reply() {
+ Send(Owner, new TEvPrivate::TEvCreateTableResponse());
+ if (SchemePipeActorId) {
+ NTabletPipe::CloseClient(SelfId(), SchemePipeActorId);
+ }
+ PassAway();
+ }
+
+ const TString& TableName() const {
+ return PathComponents.back();
+ }
+
+private:
+ void ExcludeExistingColumns(const THashMap<ui32, TSysTables::TTableColumnInfo>& existingColumns) {
+ THashSet<TString> existingNames;
+ TStringBuilder columns;
+ for (const auto& [_, colInfo] : existingColumns) {
+ existingNames.insert(colInfo.Name);
+ if (columns) {
+ columns << ", ";
+ }
+ columns << colInfo.Name;
+ }
+
+ TVector<NKikimrSchemeOp::TColumnDescription> filteredColumns;
+ TStringBuilder filtered;
+ for (auto& col : Columns) {
+ if (!existingNames.contains(col.GetName())) {
+ if (filtered) {
+ filtered << ", ";
+ }
+ filtered << col.GetName();
+ filteredColumns.emplace_back(std::move(col));
+ }
+ }
+ if (filteredColumns.empty()) {
+ KQP_PROXY_LOG_D(LogPrefix << "Column diff is empty, finishing");
+ } else {
+ KQP_PROXY_LOG_N(LogPrefix << "Adding columns. New columns: " << filtered << ". Existing columns: " << columns);
+ }
+
+
+ Columns = std::move(filteredColumns);
+ }
+
+ TStringBuf GetOperationType() const {
+ return OperationType == NKikimrSchemeOp::EOperationType::ESchemeOpCreateTable ? "create" : "alter";
+ }
+
+ TMaybe<TDuration> GetRetryDelay(bool longDelay = false) {
+ if (!RetryState) {
+ RetryState = CreateRetryState();
+ }
+ return RetryState->GetNextRetryDelay(longDelay);
+ }
+
+ static TTableCreatorRetryPolicy::IRetryState::TPtr CreateRetryState() {
+ return TTableCreatorRetryPolicy::GetFixedIntervalPolicy(
+ [](bool longDelay){return longDelay ? ERetryErrorClass::LongRetry : ERetryErrorClass::ShortRetry;}
+ , TDuration::MilliSeconds(100)
+ , TDuration::MilliSeconds(300)
+ , 100
+ )->CreateRetryState();
+ }
+
+ const TVector<TString> PathComponents;
+ TVector<NKikimrSchemeOp::TColumnDescription> Columns;
+ const TVector<TString> KeyColumns;
+ const TMaybe<NKikimrSchemeOp::TTTLSettings> TtlSettings;
+ NKikimrSchemeOp::EOperationType OperationType = NKikimrSchemeOp::EOperationType::ESchemeOpCreateTable;
+ NActors::TActorId Owner;
+ NActors::TActorId SchemePipeActorId;
+ bool PipeClientClosedByUs = false;
+ const TString LogPrefix;
+ TTableCreatorRetryPolicy::IRetryState::TPtr RetryState;
+};
+
+} // namespace
+
+NActors::IActor* CreateTableCreator(TVector<TString> pathComponents, TVector<NKikimrSchemeOp::TColumnDescription> columns, TVector<TString> keyColumns,
+ TMaybe<NKikimrSchemeOp::TTTLSettings> ttlSettings) {
+ return new TTableCreator(std::move(pathComponents), std::move(columns), std::move(keyColumns), std::move(ttlSettings));
+}
+
+} // namespace NKikimr::NKqp \ No newline at end of file
diff --git a/ydb/core/kqp/proxy_service/kqp_table_creator.h b/ydb/core/kqp/proxy_service/kqp_table_creator.h
new file mode 100644
index 0000000000..2e1e6afd21
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/kqp_table_creator.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include <ydb/core/protos/flat_scheme_op.pb.h>
+
+#include <library/cpp/actors/core/actor.h>
+
+namespace NKikimr::NKqp {
+
+NActors::IActor* CreateTableCreator(TVector<TString> pathComponents, TVector<NKikimrSchemeOp::TColumnDescription> columns, TVector<TString> keyColumns,
+ TMaybe<NKikimrSchemeOp::TTTLSettings> ttlSettings = Nothing());
+
+} // namespace NKikimr::NKqp \ No newline at end of file
diff --git a/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..77043f71f6
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(kqp-proxy_service-proto)
+target_link_libraries(kqp-proxy_service-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(kqp-proxy_service-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto
+)
+target_proto_addincls(kqp-proxy_service-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(kqp-proxy_service-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..d82687a820
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(kqp-proxy_service-proto)
+target_link_libraries(kqp-proxy_service-proto PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(kqp-proxy_service-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto
+)
+target_proto_addincls(kqp-proxy_service-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(kqp-proxy_service-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..d82687a820
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,45 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(kqp-proxy_service-proto)
+target_link_libraries(kqp-proxy_service-proto PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(kqp-proxy_service-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto
+)
+target_proto_addincls(kqp-proxy_service-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(kqp-proxy_service-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/kqp/proxy_service/proto/CMakeLists.txt b/ydb/core/kqp/proxy_service/proto/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/core/kqp/proxy_service/proto/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/proxy_service/proto/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..77043f71f6
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(kqp-proxy_service-proto)
+target_link_libraries(kqp-proxy_service-proto PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-protos
+ contrib-libs-protobuf
+)
+target_proto_messages(kqp-proxy_service-proto PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto
+)
+target_proto_addincls(kqp-proxy_service-proto
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(kqp-proxy_service-proto
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/kqp/proxy_service/proto/result_set_meta.proto b/ydb/core/kqp/proxy_service/proto/result_set_meta.proto
new file mode 100644
index 0000000000..831ef5d86c
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/proto/result_set_meta.proto
@@ -0,0 +1,12 @@
+syntax = "proto3";
+option cc_enable_arenas = true;
+
+package Ydb.Query.Internal;
+
+import "ydb/public/api/protos/ydb_value.proto";
+
+message ResultSetMeta {
+ repeated Ydb.Column columns = 1;
+
+ bool truncated = 2;
+}
diff --git a/ydb/core/kqp/proxy_service/proto/ya.make b/ydb/core/kqp/proxy_service/proto/ya.make
new file mode 100644
index 0000000000..6646cb856c
--- /dev/null
+++ b/ydb/core/kqp/proxy_service/proto/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ result_set_meta.proto
+)
+
+PEERDIR(
+ ydb/public/api/protos
+)
+
+END()
diff --git a/ydb/core/kqp/proxy_service/ya.make b/ydb/core/kqp/proxy_service/ya.make
index 96ae9140e6..f7f95f81fa 100644
--- a/ydb/core/kqp/proxy_service/ya.make
+++ b/ydb/core/kqp/proxy_service/ya.make
@@ -4,10 +4,12 @@ SRCS(
kqp_proxy_service.cpp
kqp_proxy_peer_stats_calculator.cpp
kqp_script_executions.cpp
+ kqp_table_creator.cpp
)
PEERDIR(
library/cpp/actors/core
+ library/cpp/actors/http
library/cpp/protobuf/json
ydb/core/actorlib_impl
ydb/core/base
@@ -15,6 +17,7 @@ PEERDIR(
ydb/core/kqp/common
ydb/core/kqp/common/events
ydb/core/kqp/counters
+ ydb/core/kqp/proxy_service/proto
ydb/core/kqp/run_script_actor
ydb/core/mind
ydb/core/protos
@@ -34,6 +37,10 @@ YQL_LAST_ABI_VERSION()
END()
+RECURSE(
+ proto
+)
+
RECURSE_FOR_TESTS(
ut
)
diff --git a/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp b/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
index 051ea75b2d..fd5775c124 100644
--- a/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
+++ b/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
@@ -17,6 +17,7 @@
#include <ydb/library/yql/minikql/mkql_node_serialization.h>
#include <ydb/library/yql/providers/common/mkql/yql_type_mkql.h>
#include <ydb/library/yql/providers/common/provider/yql_provider_names.h>
+#include <ydb/library/yql/providers/common/structured_token/yql_token_builder.h>
#include <ydb/library/yql/providers/dq/common/yql_dq_settings.h>
namespace NKikimr {
@@ -707,6 +708,20 @@ private:
stageProto.SetOutputsCount(outputsCount);
+ // Dq sinks
+ if (auto maybeOutputsNode = stage.Outputs()) {
+ auto outputsNode = maybeOutputsNode.Cast();
+ for (size_t i = 0; i < outputsNode.Size(); ++i) {
+ auto outputNode = outputsNode.Item(i);
+ auto maybeSinkNode = outputNode.Maybe<TDqSink>();
+ YQL_ENSURE(maybeSinkNode);
+ auto sinkNode = maybeSinkNode.Cast();
+ auto* sinkProto = stageProto.AddSinks();
+ FillSink(sinkNode, sinkProto, ctx);
+ sinkProto->SetOutputIndex(FromString(TStringBuf(sinkNode.Index())));
+ }
+ }
+
auto paramsType = CollectParameters(stage, ctx);
auto programBytecode = NDq::BuildProgram(stage.Program(), *paramsType, *KqlCompiler, TypeEnv, FuncRegistry,
ctx, {});
@@ -750,10 +765,7 @@ private:
i.MutableProgram()->MutableSettings()->SetLevelDataPrediction(rPredictor.GetLevelDataVolume(i.GetProgram().GetSettings().GetStageLevel()));
}
-
- YQL_ENSURE(hasEffectStage == txSettings.WithEffects);
-
- txProto.SetHasEffects(txSettings.WithEffects);
+ txProto.SetHasEffects(hasEffectStage);
for (const auto& paramBinding : tx.ParamBindings()) {
TString paramName(paramBinding.Name().Value());
@@ -834,6 +846,10 @@ private:
FillTable(*tableMeta, std::move(tableColumns), *txProto.AddTables());
}
+
+ for (const auto& secretName : SecretNames) {
+ txProto.AddSecretNames(secretName);
+ }
}
void FillKqpSource(const TDqSource& source, NKqpProto::TKqpSource* protoSource, bool allowSystemColumns,
@@ -906,7 +922,7 @@ private:
void FillSource(const TDqSource& source, NKqpProto::TKqpSource* protoSource, bool allowSystemColumns,
THashMap<TStringBuf, THashSet<TStringBuf>>& tablesMap, TExprContext& ctx)
{
- const TStringBuf dataSourceCategory = source.DataSource().Cast<TCoDataSource>().Category().Value();
+ const TStringBuf dataSourceCategory = source.DataSource().Cast<TCoDataSource>().Category();
if (dataSourceCategory == NYql::KikimrProviderName || dataSourceCategory == NYql::YdbProviderName || dataSourceCategory == NYql::KqpReadRangesSourceName) {
FillKqpSource(source, protoSource, allowSystemColumns, tablesMap);
} else {
@@ -930,6 +946,44 @@ private:
for (const TString& partitionParam : partitionParams) {
externalSource.AddPartitionedTaskParams(partitionParam);
}
+
+ THashMap<TString, TString> secureParams;
+ NYql::NCommon::FillSecureParams(source.Ptr(), TypesCtx, secureParams);
+ if (!secureParams.empty()) {
+ YQL_ENSURE(secureParams.size() == 1, "Only one SecureParams per source allowed");
+ auto it = secureParams.begin();
+ externalSource.SetSourceName(it->first);
+ auto token = it->second;
+ externalSource.SetAuthInfo(CreateStructuredTokenParser(token).ToBuilder().RemoveSecrets().ToJson());
+ CreateStructuredTokenParser(token).ListReferences(SecretNames);
+ }
+ }
+ }
+
+ void FillSink(const TDqSink& sink, NKqpProto::TKqpSink* protoSink, TExprContext& ctx) {
+ Y_UNUSED(ctx);
+ const TStringBuf dataSinkCategory = sink.DataSink().Cast<TCoDataSink>().Category();
+ // Delegate sink filling to dq integration of specific provider
+ const auto provider = TypesCtx.DataSinkMap.find(dataSinkCategory);
+ YQL_ENSURE(provider != TypesCtx.DataSinkMap.end(), "Unsupported data sink category: \"" << dataSinkCategory << "\"");
+ NYql::IDqIntegration* dqIntegration = provider->second->GetDqIntegration();
+ YQL_ENSURE(dqIntegration, "Unsupported dq sink for provider: \"" << dataSinkCategory << "\"");
+ auto& externalSink = *protoSink->MutableExternalSink();
+ google::protobuf::Any& settings = *externalSink.MutableSettings();
+ TString& sinkType = *externalSink.MutableType();
+ dqIntegration->FillSinkSettings(sink.Ref(), settings, sinkType);
+ YQL_ENSURE(!settings.type_url().empty(), "Data sink provider \"" << dataSinkCategory << "\" did't fill dq sink settings for its dq sink node");
+ YQL_ENSURE(sinkType, "Data sink provider \"" << dataSinkCategory << "\" did't fill dq sink settings type for its dq sink node");
+
+ THashMap<TString, TString> secureParams;
+ NYql::NCommon::FillSecureParams(sink.Ptr(), TypesCtx, secureParams);
+ if (!secureParams.empty()) {
+ YQL_ENSURE(secureParams.size() == 1, "Only one SecureParams per sink allowed");
+ auto it = secureParams.begin();
+ externalSink.SetSinkName(it->first);
+ auto token = it->second;
+ externalSink.SetAuthInfo(CreateStructuredTokenParser(token).ToBuilder().RemoveSecrets().ToJson());
+ CreateStructuredTokenParser(token).ListReferences(SecretNames);
}
}
@@ -1027,9 +1081,9 @@ private:
sequencerProto.AddAutoIncrementColumns(column.StringValue());
}
- auto resultColumns = sequencer.Columns();
- for(const auto& column: resultColumns) {
- sequencerProto.AddColumns(column.StringValue());
+ YQL_ENSURE(resultItemType->GetKind() == ETypeAnnotationKind::Struct);
+ for(const auto* column: resultItemType->Cast<TStructExprType>()->GetItems()) {
+ sequencerProto.AddColumns(TString(column->GetName()));
}
return;
@@ -1101,6 +1155,7 @@ private:
TKqlCompileContext KqlCtx;
TIntrusivePtr<NCommon::IMkqlCallableCompiler> KqlCompiler;
TTypeAnnotationContext& TypesCtx;
+ TSet<TString> SecretNames;
};
} // namespace
diff --git a/ydb/core/kqp/query_data/kqp_prepared_query.cpp b/ydb/core/kqp/query_data/kqp_prepared_query.cpp
index 93d7141299..a0a814c74b 100644
--- a/ydb/core/kqp/query_data/kqp_prepared_query.cpp
+++ b/ydb/core/kqp/query_data/kqp_prepared_query.cpp
@@ -74,6 +74,9 @@ TKqpPhyTxHolder::TKqpPhyTxHolder(const std::shared_ptr<const NKikimrKqp::TPrepar
auto& result = TxResultsMeta[i];
result.MkqlItemType = ImportTypeFromProto(txResult.GetItemType(), Alloc->TypeEnv);
+ //Hack to prevent data race. Side effect of IsPresortSupported - fill cached value.
+ //So no more concurent write subsequently
+ result.MkqlItemType->IsPresortSupported();
if (txResult.ColumnHintsSize() > 0) {
result.ColumnOrder.reserve(txResult.GetColumnHints().size());
auto* structType = static_cast<NKikimr::NMiniKQL::TStructType*>(result.MkqlItemType);
diff --git a/ydb/core/kqp/query_data/kqp_prepared_query.h b/ydb/core/kqp/query_data/kqp_prepared_query.h
index 984d33bc93..d1d190dbac 100644
--- a/ydb/core/kqp/query_data/kqp_prepared_query.h
+++ b/ydb/core/kqp/query_data/kqp_prepared_query.h
@@ -89,6 +89,10 @@ public:
return Proto->GetSchemeOperation();
}
+ const google::protobuf::RepeatedPtrField<TProtoStringType>& GetSecretNames() const {
+ return Proto->GetSecretNames();
+ }
+
TProtoStringType DebugString() const {
return Proto->ShortDebugString();
}
diff --git a/ydb/core/kqp/query_data/kqp_query_data.cpp b/ydb/core/kqp/query_data/kqp_query_data.cpp
index 8a7a94adcf..206341fe2d 100644
--- a/ydb/core/kqp/query_data/kqp_query_data.cpp
+++ b/ydb/core/kqp/query_data/kqp_query_data.cpp
@@ -7,6 +7,7 @@
#include <ydb/library/yql/minikql/mkql_string_util.h>
#include <ydb/library/yql/public/udf/udf_data_type.h>
#include <ydb/library/yql/utils/yql_panic.h>
+#include <ydb/public/sdk/cpp/client/ydb_params/params.h>
#include <ydb/library/yverify_stream/yverify_stream.h>
namespace NKikimr::NKqp {
@@ -157,6 +158,14 @@ const TQueryData::TParamMap& TQueryData::GetParams() {
return Params;
}
+const TQueryData::TParamProtobufMap& TQueryData::GetParamsProtobuf() {
+ for(auto& [name, _] : UnboxedData) {
+ GetParameterTypedValue(name);
+ }
+
+ return ParamsProtobuf;
+}
+
NKikimr::NMiniKQL::TType* TQueryData::GetParameterType(const TString& name) {
auto it = UnboxedData.find(name);
if (it == UnboxedData.end()) {
@@ -309,6 +318,27 @@ const NKikimrMiniKQL::TParams* TQueryData::GetParameterMiniKqlValue(const TStrin
return &(it->second);
}
+const Ydb::TypedValue* TQueryData::GetParameterTypedValue(const TString& name) {
+ if (UnboxedData.find(name) == UnboxedData.end())
+ return nullptr;
+
+ auto it = ParamsProtobuf.find(name);
+ if (it == ParamsProtobuf.end()) {
+ with_lock(AllocState->Alloc) {
+ const auto& [type, uv] = GetParameterUnboxedValue(name);
+
+ auto& tv = ParamsProtobuf[name];
+
+ ExportTypeToProto(type, *tv.mutable_type());
+ ExportValueToProto(type, uv, *tv.mutable_value());
+
+ return &tv;
+ }
+ }
+
+ return &(it->second);
+}
+
const NKikimr::NMiniKQL::TTypeEnvironment& TQueryData::TypeEnv() {
return AllocState->TypeEnv;
}
diff --git a/ydb/core/kqp/query_data/kqp_query_data.h b/ydb/core/kqp/query_data/kqp_query_data.h
index 437b3036a4..21c2f61608 100644
--- a/ydb/core/kqp/query_data/kqp_query_data.h
+++ b/ydb/core/kqp/query_data/kqp_query_data.h
@@ -79,14 +79,14 @@ struct TKqpExecuterTxResult {
bool IsStream = true;
NKikimr::NMiniKQL::TType* MkqlItemType;
const TVector<ui32>* ColumnOrder = nullptr;
- ui32 QueryResultIndex = 0;
+ TMaybe<ui32> QueryResultIndex = 0;
NKikimr::NMiniKQL::TUnboxedValueBatch Rows;
explicit TKqpExecuterTxResult(
bool isStream,
NKikimr::NMiniKQL::TType* mkqlItemType,
const TVector<ui32>* сolumnOrder,
- ui32 queryResultIndex)
+ const TMaybe<ui32>& queryResultIndex)
: IsStream(isStream)
, MkqlItemType(mkqlItemType)
, ColumnOrder(сolumnOrder)
@@ -183,17 +183,23 @@ private:
NKikimrMiniKQL::TParams
>;
+ using TParamProtobufMap = ::google::protobuf::Map<
+ TString,
+ Ydb::TypedValue
+ >;
+
using TParamProvider = std::function<
bool(std::string_view name, NKikimr::NMiniKQL::TType* type, const NKikimr::NMiniKQL::TTypeEnvironment& typeEnv,
const NKikimr::NMiniKQL::THolderFactory& holderFactory, NUdf::TUnboxedValue& value)
>;
TParamMap Params;
+ TParamProtobufMap ParamsProtobuf;
TUnboxedParamsMap UnboxedData;
THashMap<ui32, TVector<TKqpExecuterTxResult>> TxResults;
TVector<TVector<TKqpPhyTxHolder::TConstPtr>> TxHolders;
TTxAllocatorState::TPtr AllocState;
- mutable TPartitionedParamMap PartitionedParams;
+ mutable TPartitionedParamMap PartitionedParams;
public:
using TPtr = std::shared_ptr<TQueryData>;
@@ -205,6 +211,8 @@ public:
const TParamMap& GetParams();
+ const TParamProtobufMap& GetParamsProtobuf();
+
const NKikimr::NMiniKQL::TTypeEnvironment& TypeEnv();
TTxAllocatorState::TPtr GetAllocState() { return AllocState; }
@@ -243,6 +251,8 @@ public:
TTypedUnboxedValue& GetParameterUnboxedValue(const TString& name);
TTypedUnboxedValue* GetParameterUnboxedValuePtr(const TString& name);
const NKikimrMiniKQL::TParams* GetParameterMiniKqlValue(const TString& name);
+ const Ydb::TypedValue* GetParameterTypedValue(const TString& name);
+
NYql::NDqProto::TData SerializeParamValue(const TString& name);
void Clear();
@@ -258,7 +268,7 @@ public:
std::tie(type, value) = *param;
return true;
}
-
+
return false;
};
diff --git a/ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp b/ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp
index 50873cec8c..cf48f3758c 100644
--- a/ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp
+++ b/ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp
@@ -2,6 +2,8 @@
#include <ydb/core/base/location.h>
#include <ydb/core/base/statestorage.h>
+#include <ydb/core/cms/console/configs_dispatcher.h>
+#include <ydb/core/cms/console/console.h>
#include <ydb/core/kqp/common/kqp.h>
#include <ydb/core/mind/tenant_pool.h>
#include <ydb/core/kqp/common/kqp_event_ids.h>
@@ -25,19 +27,30 @@ namespace NRm {
class TKqpResourceInfoExchangerActor : public TActorBootstrapped<TKqpResourceInfoExchangerActor> {
using TBase = TActorBootstrapped<TKqpResourceInfoExchangerActor>;
+ static constexpr ui32 BUCKETS_COUNT = 32;
+
struct TEvPrivate {
enum EEv {
- EvRetrySending = EventSpaceBegin(TEvents::ES_PRIVATE),
+ EvSendToNode = EventSpaceBegin(TEvents::ES_PRIVATE),
EvRegularSending,
EvRetrySubscriber,
EvUpdateSnapshotState,
+ EvRetryNode,
};
- struct TEvRetrySending :
- public TEventLocal<TEvRetrySending, EEv::EvRetrySending> {
- ui32 NodeId;
+ struct TEvSendToNode :
+ public TEventLocal<TEvSendToNode, EEv::EvSendToNode> {
+ ui32 BucketInd;
- TEvRetrySending(ui32 nodeId) : NodeId(nodeId) {
+ TEvSendToNode(ui32 bucketInd) : BucketInd(bucketInd) {
+ }
+ };
+
+ struct TEvRetryNode :
+ public TEventLocal<TEvRetryNode, EEv::EvRetryNode> {
+ ui32 BucketInd;
+
+ TEvRetryNode(ui32 bucketInd) : BucketInd(bucketInd) {
}
};
@@ -54,31 +67,64 @@ class TKqpResourceInfoExchangerActor : public TActorBootstrapped<TKqpResourceInf
};
};
- struct TRetryState {
+ struct TDelayState {
bool IsScheduled = false;
NMonotonic::TMonotonic LastRetryAt = TMonotonic::Zero();
- TDuration CurrentDelay = TDuration::MilliSeconds(50);
+ TDuration CurrentDelay = TDuration::Zero();
+ };
+
+ struct TDelaySettings {
+ TDuration StartDelayMs = TDuration::MilliSeconds(500);
+ TDuration MaxDelayMs = TDuration::MilliSeconds(2000);
};
struct TNodeState {
- TRetryState RetryState;
NMonotonic::TMonotonic LastUpdateAt = TMonotonic::Zero();
NKikimrKqp::TResourceExchangeNodeData NodeData;
};
+ struct TBucketState {
+ TDelayState RetryState;
+ TDelayState SendState;
+ THashSet<ui32> NodeIdsToSend;
+ THashSet<ui32> NodeIdsToRetry;
+ };
+
public:
TKqpResourceInfoExchangerActor(TIntrusivePtr<TKqpCounters> counters,
- std::shared_ptr<TResourceSnapshotState> resourceSnapshotState)
+ std::shared_ptr<TResourceSnapshotState> resourceSnapshotState,
+ const NKikimrConfig::TTableServiceConfig::TResourceManager::TInfoExchangerSettings& settings)
: ResourceSnapshotState(std::move(resourceSnapshotState))
, Counters(counters)
+ , Settings(settings)
{
- Y_UNUSED(counters);
+ Buckets.resize(BUCKETS_COUNT);
+
+ const auto& publisherSettings = settings.GetPublisherSettings();
+ const auto& subscriberSettings = settings.GetSubscriberSettings();
+ const auto& exchangerSettings = settings.GetExchangerSettings();
+
+ UpdateBoardRetrySettings(publisherSettings, PublisherSettings);
+ UpdateBoardRetrySettings(subscriberSettings, SubscriberSettings);
+
+ if (exchangerSettings.HasStartDelayMs()) {
+ ExchangerSettings.StartDelayMs = TDuration::MilliSeconds(exchangerSettings.GetStartDelayMs());
+ }
+ if (exchangerSettings.HasMaxDelayMs()) {
+ ExchangerSettings.MaxDelayMs = TDuration::MilliSeconds(exchangerSettings.GetMaxDelayMs());
+ }
}
void Bootstrap() {
LOG_D("Start KqpResourceInfoExchangerActor at " << SelfId());
+ ui32 tableServiceConfigKind = (ui32) NKikimrConsole::TConfigItem::TableServiceConfigItem;
+
+ Send(NConsole::MakeConfigsDispatcherID(SelfId().NodeId()),
+ new NConsole::TEvConfigsDispatcher::TEvSetConfigSubscriptionRequest({tableServiceConfigKind}),
+ IEventHandle::FlagTrackDelivery);
+
Become(&TKqpResourceInfoExchangerActor::WorkState);
Send(MakeTenantPoolRootID(), new TEvents::TEvSubscribe);
@@ -86,6 +132,21 @@ public:
private:
+ bool UpdateBoardRetrySettings(
+ const NKikimrConfig::TTableServiceConfig::TResourceManager::TRetrySettings& settings,
+ TBoardRetrySettings& retrySetting) {
+ bool ret = false;
+ if (settings.HasStartDelayMs()) {
+ ret = true;
+ retrySetting.StartDelayMs = TDuration::MilliSeconds(settings.GetStartDelayMs());
+ }
+ if (settings.HasMaxDelayMs()) {
+ ret = true;
+ retrySetting.MaxDelayMs = TDuration::MilliSeconds(settings.GetMaxDelayMs());
+ }
+ return ret;
+ }
+
static TString MakeKqpInfoExchangerBoardPath(TStringBuf database) {
return TStringBuilder() << "kqpexch+" << database;
}
@@ -94,8 +155,8 @@ private:
auto& retryState = BoardState.RetryStateForSubscriber;
auto now = TlsActivationContext->Monotonic();
- if (now - retryState.LastRetryAt < retryState.CurrentDelay) {
- auto at = retryState.LastRetryAt + GetRetryDelay(retryState);
+ if (now - retryState.LastRetryAt < GetCurrentDelay(retryState)) {
+ auto at = retryState.LastRetryAt + GetDelay(retryState);
Schedule(at - now, new TEvPrivate::TEvRetrySubscriber);
return;
}
@@ -108,7 +169,8 @@ private:
BoardState.Subscriber = TActorId();
auto subscriber = CreateBoardLookupActor(
- BoardState.Path, SelfId(), BoardState.StateStorageGroupId, EBoardLookupMode::Subscription);
+ BoardState.Path, SelfId(), BoardState.StateStorageGroupId, EBoardLookupMode::Subscription,
+ SubscriberSettings);
BoardState.Subscriber = Register(subscriber);
retryState.LastRetryAt = now;
@@ -123,7 +185,7 @@ private:
BoardState.Publisher = TActorId();
auto publisher = CreateBoardPublishActor(BoardState.Path, SelfInfo, SelfId(),
- BoardState.StateStorageGroupId, /* ttlMs */ 0, /* reg */ true);
+ BoardState.StateStorageGroupId, /* ttlMs */ 0, /* reg */ true, PublisherSettings);
BoardState.Publisher = Register(publisher);
auto& nodeState = NodesState[SelfId().NodeId()];
@@ -132,20 +194,29 @@ private:
ActorIdToProto(BoardState.Publisher, boardData->MutablePublisher());
}
- TVector<ui32> UpdateBoardInfo(const TMap<TActorId, TEvStateStorage::TBoardInfoEntry>& infos) {
+ std::pair<TVector<ui32>, bool> UpdateBoardInfo(const TMap<TActorId, TEvStateStorage::TBoardInfoEntry>& infos) {
auto nodeIds = TVector<ui32>();
+ bool isChanged = false;
auto now = TlsActivationContext->Monotonic();
- for (const auto& [id, entry] : infos) {
+ for (const auto& [publisherId, entry] : infos) {
if (entry.Dropped) {
- auto nodesStateIt = NodesState.find(id.NodeId());
+ auto nodesStateIt = NodesState.find(publisherId.NodeId());
+
if (nodesStateIt == NodesState.end()) {
continue;
}
+
+ auto bucketInd = GetBucketInd(publisherId.NodeId());
+ auto& bucket = Buckets[bucketInd];
+
auto& currentBoardData = nodesStateIt->second.NodeData.GetResourceExchangeBoardData();
auto currentPublisher = ActorIdFromProto(currentBoardData.GetPublisher());
- if (currentPublisher == id) {
+ if (currentPublisher == publisherId) {
NodesState.erase(nodesStateIt);
+ isChanged = true;
+ bucket.NodeIdsToSend.erase(publisherId.NodeId());
+ bucket.NodeIdsToRetry.erase(publisherId.NodeId());
}
continue;
}
@@ -160,11 +231,16 @@ private:
auto* currentBoardData = currentInfo.MutableResourceExchangeBoardData();
auto currentUlidString = currentBoardData->GetUlid();
+ auto bucketInd = GetBucketInd(owner.NodeId());
+ auto& bucket = Buckets[bucketInd];
+
if (currentUlidString.empty()) {
*currentBoardData = std::move(boardData);
- ActorIdToProto(id, currentBoardData->MutablePublisher());
+ ActorIdToProto(publisherId, currentBoardData->MutablePublisher());
nodeIds.push_back(owner.NodeId());
+ isChanged = true;
nodeState.LastUpdateAt = now;
+ bucket.NodeIdsToSend.insert(owner.NodeId());
continue;
}
@@ -173,19 +249,25 @@ private:
if (currentUlid < ulid) {
*currentBoardData = std::move(boardData);
- ActorIdToProto(id, currentBoardData->MutablePublisher());
+ ActorIdToProto(publisherId, currentBoardData->MutablePublisher());
currentInfo.SetRound(0);
+ isChanged = true;
(*currentInfo.MutableResources()) = NKikimrKqp::TKqpNodeResources();
nodeIds.push_back(owner.NodeId());
nodeState.LastUpdateAt = now;
+ bucket.NodeIdsToSend.insert(owner.NodeId());
continue;
}
}
- return nodeIds;
+ Counters->RmNodeNumberInSnapshot->Set(NodesState.size());
+
+ return {nodeIds, isChanged};
}
- void UpdateResourceInfo(const TVector<NKikimrKqp::TResourceExchangeNodeData>& infos) {
+ bool UpdateResourceInfo(const TVector<NKikimrKqp::TResourceExchangeNodeData>& infos) {
+ bool isChanged = false;
+
auto now = TlsActivationContext->Monotonic();
for (const auto& info : infos) {
@@ -214,9 +296,12 @@ private:
auto latency = now - nodeState.LastUpdateAt;
Counters->RmSnapshotLatency->Collect(latency.MilliSeconds());
nodeState.LastUpdateAt = now;
+ isChanged = true;
continue;
}
}
+
+ return isChanged;
}
void UpdateResourceSnapshotState() {
@@ -224,8 +309,8 @@ private:
return;
}
auto now = TlsActivationContext->Monotonic();
- if (now - ResourceSnapshotRetryState.LastRetryAt < ResourceSnapshotRetryState.CurrentDelay) {
- auto at = ResourceSnapshotRetryState.LastRetryAt + GetRetryDelay(ResourceSnapshotRetryState);
+ if (now - ResourceSnapshotRetryState.LastRetryAt < GetCurrentDelay(ResourceSnapshotRetryState)) {
+ auto at = ResourceSnapshotRetryState.LastRetryAt + GetDelay(ResourceSnapshotRetryState);
ResourceSnapshotRetryState.IsScheduled = true;
Schedule(at - now, new TEvPrivate::TEvUpdateSnapshotState);
return;
@@ -233,10 +318,10 @@ private:
TVector<NKikimrKqp::TKqpNodeResources> resources;
resources.reserve(NodesState.size());
- for (const auto& [id, state] : NodesState) {
- auto currentResources = state.NodeData.GetResources();
- if (currentResources.GetNodeId()) {
- resources.push_back(currentResources);
+ for (const auto& [nodeId, state] : NodesState) {
+ const auto& currentResources = state.NodeData.GetResources();
+ if (currentResources.HasNodeId()) {
+ resources.push_back(std::move(currentResources));
}
}
@@ -248,40 +333,92 @@ private:
ResourceSnapshotRetryState.LastRetryAt = now;
}
- void SendInfos(TVector<ui32> infoNodeIds, TVector<ui32> nodeIds = {}) {
+ void SendInfos(TVector<ui32> infoNodeIds, bool resending = false, TVector<ui32> nodeIds = {}) {
auto& nodeState = NodesState[SelfId().NodeId()];
nodeState.NodeData.SetRound(Round++);
if (!nodeIds.empty()) {
- auto snapshotMsg = CreateSnapshotMessage(infoNodeIds, true);
+ auto snapshotMsg = CreateSnapshotMessage(infoNodeIds, resending);
for (const auto& nodeId : nodeIds) {
auto nodesStateIt = NodesState.find(nodeId);
if (nodesStateIt == NodesState.end()) {
- return;
+ continue;
+ }
+
+ auto owner = ActorIdFromProto(nodesStateIt->second.NodeData.GetResourceExchangeBoardData().GetOwner());
+ if (owner != SelfId()) {
+ auto msg = MakeHolder<TEvKqpResourceInfoExchanger::TEvSendResources>();
+ msg->Record = snapshotMsg;
+ Send(owner, msg.Release(), IEventHandle::FlagSubscribeOnSession);
}
- SendingToNode(nodesStateIt->second, true, {}, snapshotMsg);
}
} else {
auto snapshotMsg = CreateSnapshotMessage(infoNodeIds, false);
- TDuration currentLatency = TDuration::MilliSeconds(0);
- auto nowMonotic = TlsActivationContext->Monotonic();
-
- for (auto& [id, state] : NodesState) {
- SendingToNode(state, true, {}, snapshotMsg);
- if (id != SelfId().NodeId()) {
- currentLatency = Max(currentLatency, nowMonotic - state.LastUpdateAt);
+ for (size_t idx = 0; idx < BUCKETS_COUNT; idx++) {
+ auto& bucket = Buckets[idx];
+ if (!bucket.NodeIdsToSend.empty()) {
+ SendingToBucketNodes(idx, bucket, false, {}, snapshotMsg);
}
}
-
- Counters->RmMaxSnapshotLatency->Set(currentLatency.MilliSeconds());
}
}
private:
+ void Handle(NConsole::TEvConfigsDispatcher::TEvSetConfigSubscriptionResponse::TPtr&) {
+ LOG_D("Subscribed for config changes.");
+ }
+
+ void Handle(NConsole::TEvConsole::TEvConfigNotificationRequest::TPtr& ev) {
+ auto &event = ev->Get()->Record;
+
+ NKikimrConfig::TTableServiceConfig tableServiceConfig;
+
+ tableServiceConfig.Swap(event.MutableConfig()->MutableTableServiceConfig());
+ LOG_D("Updated table service config.");
+
+ const auto& infoExchangerSettings = tableServiceConfig.GetResourceManager().GetInfoExchangerSettings();
+ const auto& publisherSettings = infoExchangerSettings.GetPublisherSettings();
+ const auto& subscriberSettings = infoExchangerSettings.GetSubscriberSettings();
+ const auto& exchangerSettings = infoExchangerSettings.GetExchangerSettings();
+
+ if (UpdateBoardRetrySettings(publisherSettings, PublisherSettings)) {
+ CreatePublisher();
+ }
+
+ if (UpdateBoardRetrySettings(subscriberSettings, SubscriberSettings)) {
+ CreateSubscriber();
+ }
+
+ if (exchangerSettings.HasStartDelayMs()) {
+ ExchangerSettings.StartDelayMs = TDuration::MilliSeconds(exchangerSettings.GetStartDelayMs());
+ }
+ if (exchangerSettings.HasMaxDelayMs()) {
+ ExchangerSettings.MaxDelayMs = TDuration::MilliSeconds(exchangerSettings.GetMaxDelayMs());
+ }
+
+ auto responseEv = MakeHolder<NConsole::TEvConsole::TEvConfigNotificationResponse>(event);
+ Send(ev->Sender, responseEv.Release(), IEventHandle::FlagTrackDelivery, ev->Cookie);
+ }
+
+ void Handle(TEvents::TEvUndelivered::TPtr& ev) {
+ switch (ev->Get()->SourceType) {
+ case NConsole::TEvConfigsDispatcher::EvSetConfigSubscriptionRequest:
+ LOG_C("Failed to deliver subscription request to config dispatcher.");
+ break;
+
+ case NConsole::TEvConsole::EvConfigNotificationResponse:
+ LOG_E("Failed to deliver config notification response.");
+ break;
+
+ default:
+ break;
+ }
+ }
+
void Handle(TEvTenantPool::TEvTenantPoolStatus::TPtr& ev) {
TString tenant;
for (auto &slot : ev->Get()->Record.GetSlots()) {
@@ -332,8 +469,6 @@ private:
LOG_I("Received tenant pool status for exchanger, serving tenant: " << BoardState.Tenant
<< ", board: " << BoardState.Path
<< ", ssGroupId: " << BoardState.StateStorageGroupId);
-
- Schedule(TDuration::Seconds(2), new TEvPrivate::TEvRegularSending);
}
@@ -351,11 +486,15 @@ private:
<< ", ssGroupId: " << BoardState.StateStorageGroupId
<< ", with size: " << ev->Get()->InfoEntries.size());
- auto nodeIds = UpdateBoardInfo(ev->Get()->InfoEntries);
+ auto [nodeIds, isChanged] = UpdateBoardInfo(ev->Get()->InfoEntries);
- SendInfos({SelfId().NodeId()}, std::move(nodeIds));
+ if (!nodeIds.empty()) {
+ SendInfos({SelfId().NodeId()}, true, std::move(nodeIds));
+ }
- UpdateResourceSnapshotState();
+ if (isChanged) {
+ UpdateResourceSnapshotState();
+ }
}
void Handle(TEvStateStorage::TEvBoardInfoUpdate::TPtr& ev) {
@@ -371,11 +510,15 @@ private:
<< ", ssGroupId: " << BoardState.StateStorageGroupId
<< ", with size: " << ev->Get()->Updates.size());
- auto nodeIds = UpdateBoardInfo(ev->Get()->Updates);
+ auto [nodeIds, isChanged] = UpdateBoardInfo(ev->Get()->Updates);
- SendInfos({SelfId().NodeId()}, std::move(nodeIds));
+ if (!nodeIds.empty()) {
+ SendInfos({SelfId().NodeId()}, true, std::move(nodeIds));
+ }
- UpdateResourceSnapshotState();
+ if (isChanged) {
+ UpdateResourceSnapshotState();
+ }
}
void Handle(TEvKqpResourceInfoExchanger::TEvPublishResource::TPtr& ev) {
@@ -395,40 +538,56 @@ private:
const TVector<NKikimrKqp::TResourceExchangeNodeData> resourceInfos(
ev->Get()->Record.GetSnapshot().begin(), ev->Get()->Record.GetSnapshot().end());
- UpdateResourceInfo(resourceInfos);
+ bool isChanged = UpdateResourceInfo(resourceInfos);
if (ev->Get()->Record.GetNeedResending()) {
auto nodesStateIt = NodesState.find(nodeId);
- if (nodesStateIt == NodesState.end()) {
- return;
+ if (nodesStateIt != NodesState.end()) {
+ SendInfos({SelfId().NodeId()}, false, {nodesStateIt->first});
}
- SendingToNode(nodesStateIt->second, false, {SelfId().NodeId()});
}
- UpdateResourceSnapshotState();
+ if (isChanged) {
+ UpdateResourceSnapshotState();
+ }
}
void Handle(TEvInterconnect::TEvNodeDisconnected::TPtr &ev) {
const auto& nodeId = ev->Get()->NodeId;
- auto nodesStateIt = NodesState.find(nodeId);
- if (nodesStateIt == NodesState.end()) {
+ if (NodesState.find(nodeId) == NodesState.end()) {
return;
}
- SendingToNode(nodesStateIt->second, true, {SelfId().NodeId()});
+
+ auto bucketInd = GetBucketInd(nodeId);
+ auto& bucket = Buckets[bucketInd];
+
+ bucket.NodeIdsToRetry.insert(nodeId);
+
+ SendingToBucketNodes(bucketInd, bucket, true, {SelfId().NodeId()});
}
- void Handle(TEvPrivate::TEvRetrySending::TPtr& ev) {
- const auto& nodeId = ev->Get()->NodeId;
- auto nodesStateIt = NodesState.find(nodeId);
+ void Handle(TEvPrivate::TEvSendToNode::TPtr& ev) {
+ const auto& bucketInd = ev->Get()->BucketInd;
+ auto& bucket = Buckets[bucketInd];
- if (nodesStateIt == NodesState.end()) {
- return;
+ bucket.SendState.IsScheduled = false;
+
+ if (!bucket.NodeIdsToSend.empty()) {
+ SendingToBucketNodes(bucketInd, bucket, false, {SelfId().NodeId()});
}
- nodesStateIt->second.RetryState.IsScheduled = false;
+ }
- SendingToNode(nodesStateIt->second, true, {SelfId().NodeId()});
+ void Handle(TEvPrivate::TEvRetryNode::TPtr& ev) {
+ const auto& bucketInd = ev->Get()->BucketInd;
+ auto& bucket = Buckets[bucketInd];
+
+ bucket.RetryState.IsScheduled = false;
+
+ if (!bucket.NodeIdsToRetry.empty()) {
+ SendingToBucketNodes(bucketInd, bucket, true, {SelfId().NodeId()});
+ }
}
void Handle(TEvPrivate::TEvRetrySubscriber::TPtr&) {
@@ -456,12 +615,16 @@ private:
STATEFN(WorkState) {
switch (ev->GetTypeRewrite()) {
hFunc(TEvStateStorage::TEvBoardInfo, Handle);
+ hFunc(NConsole::TEvConsole::TEvConfigNotificationRequest, Handle);
+ hFunc(NConsole::TEvConfigsDispatcher::TEvSetConfigSubscriptionResponse, Handle);
+ hFunc(TEvents::TEvUndelivered, Handle);
hFunc(TEvStateStorage::TEvBoardInfoUpdate, Handle);
hFunc(TEvTenantPool::TEvTenantPoolStatus, Handle);
hFunc(TEvKqpResourceInfoExchanger::TEvPublishResource, Handle);
hFunc(TEvKqpResourceInfoExchanger::TEvSendResources, Handle);
hFunc(TEvPrivate::TEvRetrySubscriber, Handle);
- hFunc(TEvPrivate::TEvRetrySending, Handle);
+ hFunc(TEvPrivate::TEvSendToNode, Handle);
+ hFunc(TEvPrivate::TEvRetryNode, Handle);
hFunc(TEvPrivate::TEvRegularSending, Handle);
hFunc(TEvPrivate::TEvUpdateSnapshotState, Handle);
hFunc(TEvInterconnect::TEvNodeDisconnected, Handle);
@@ -478,47 +641,84 @@ private:
TActor::PassAway();
}
- TDuration GetRetryDelay(TRetryState& state) {
+ const TDuration& GetCurrentDelay(TDelayState& state) {
+ if (state.CurrentDelay == TDuration::Zero()) {
+ state.CurrentDelay = ExchangerSettings.StartDelayMs;
+ }
+ return state.CurrentDelay;
+ }
+
+ TDuration GetDelay(TDelayState& state) {
auto newDelay = state.CurrentDelay;
newDelay *= 2;
- if (newDelay > TDuration::Seconds(2)) {
- newDelay = TDuration::Seconds(2);
+ if (newDelay > ExchangerSettings.MaxDelayMs) {
+ newDelay = ExchangerSettings.MaxDelayMs;
}
- newDelay *= AppData()->RandomProvider->Uniform(10, 200);
+ newDelay *= AppData()->RandomProvider->Uniform(50, 200);
newDelay /= 100;
state.CurrentDelay = newDelay;
return state.CurrentDelay;
}
- void SendingToNode(TNodeState& state, bool retry,
+ ui32 GetBucketInd(ui32 nodeId) {
+ return nodeId & (BUCKETS_COUNT - 1);
+ }
+
+ void SendingToBucketNodes(ui32 bucketInd, TBucketState& bucketState, bool retry,
TVector<ui32> nodeIdsForSnapshot = {}, NKikimrKqp::TResourceExchangeSnapshot snapshotMsg = {}) {
- auto& retryState = state.RetryState;
- if (retryState.IsScheduled) {
- return;
+ TDelayState* retryState;
+ if (retry) {
+ retryState = &bucketState.RetryState;
+ } else {
+ retryState = &bucketState.SendState;
}
- auto owner = ActorIdFromProto(state.NodeData.GetResourceExchangeBoardData().GetOwner());
- auto nodeId = owner.NodeId();
+ if (retryState->IsScheduled) {
+ return;
+ }
auto now = TlsActivationContext->Monotonic();
- if (retry && now - retryState.LastRetryAt < retryState.CurrentDelay) {
- auto at = retryState.LastRetryAt + GetRetryDelay(retryState);
- retryState.IsScheduled = true;
- Schedule(at - now, new TEvPrivate::TEvRetrySending(nodeId));
+ if (now - retryState->LastRetryAt < GetCurrentDelay(*retryState)) {
+ auto at = retryState->LastRetryAt + GetDelay(*retryState);
+ retryState->IsScheduled = true;
+ if (retry) {
+ Schedule(at - now, new TEvPrivate::TEvRetryNode(bucketInd));
+ } else {
+ Schedule(at - now, new TEvPrivate::TEvSendToNode(bucketInd));
+ }
return;
}
- if (owner != SelfId()) {
- auto msg = MakeHolder<TEvKqpResourceInfoExchanger::TEvSendResources>();
- if (nodeIdsForSnapshot.empty()) {
- msg->Record = std::move(snapshotMsg);
- } else {
- msg->Record = CreateSnapshotMessage(nodeIdsForSnapshot);
+ if (!nodeIdsForSnapshot.empty()) {
+ snapshotMsg = CreateSnapshotMessage(nodeIdsForSnapshot);
+ }
+
+ THashSet<ui32>* nodeIds;
+ if (retry) {
+ nodeIds = &bucketState.NodeIdsToRetry;
+ } else {
+ nodeIds = &bucketState.NodeIdsToSend;
+ }
+
+ for (const auto& nodeId: *nodeIds) {
+ auto nodesStateIt = NodesState.find(nodeId);
+ if (nodesStateIt == NodesState.end()) {
+ continue;
+ }
+ auto& nodeState = nodesStateIt->second;
+ auto owner = ActorIdFromProto(nodeState.NodeData.GetResourceExchangeBoardData().GetOwner());
+ if (owner != SelfId()) {
+ auto msg = MakeHolder<TEvKqpResourceInfoExchanger::TEvSendResources>();
+ msg->Record = snapshotMsg;
+ Send(owner, msg.Release(), IEventHandle::FlagSubscribeOnSession);
}
- Send(owner, msg.Release(), IEventHandle::FlagSubscribeOnSession);
}
- retryState.LastRetryAt = now;
+ if (retry) {
+ bucketState.NodeIdsToRetry.clear();
+ }
+
+ retryState->LastRetryAt = now;
}
NKikimrKqp::TResourceExchangeSnapshot CreateSnapshotMessage(const TVector<ui32>& nodeIds,
@@ -530,7 +730,13 @@ private:
for (const auto& nodeId: nodeIds) {
auto* el = snapshot->Add();
- *el = NodesState[nodeId].NodeData;
+
+ auto nodesStateIt = NodesState.find(nodeId);
+ if (nodesStateIt == NodesState.end()) {
+ continue;
+ }
+
+ *el = nodesStateIt->second.NodeData;
}
return snapshotMsg;
@@ -550,23 +756,30 @@ private:
ui32 StateStorageGroupId = std::numeric_limits<ui32>::max();
TActorId Publisher = TActorId();
TActorId Subscriber = TActorId();
- TRetryState RetryStateForSubscriber;
+ TDelayState RetryStateForSubscriber;
std::optional<TInstant> LastPublishTime;
};
TBoardState BoardState;
- TRetryState ResourceSnapshotRetryState;
+ TDelayState ResourceSnapshotRetryState;
+ TVector<TBucketState> Buckets;
THashMap<ui32, TNodeState> NodesState;
std::shared_ptr<TResourceSnapshotState> ResourceSnapshotState;
+ TBoardRetrySettings PublisherSettings;
+ TBoardRetrySettings SubscriberSettings;
+ TDelaySettings ExchangerSettings;
+
TIntrusivePtr<TKqpCounters> Counters;
+ NKikimrConfig::TTableServiceConfig::TResourceManager::TInfoExchangerSettings Settings;
};
NActors::IActor* CreateKqpResourceInfoExchangerActor(TIntrusivePtr<TKqpCounters> counters,
- std::shared_ptr<TResourceSnapshotState> resourceSnapshotState)
+ std::shared_ptr<TResourceSnapshotState> resourceSnapshotState,
+ const NKikimrConfig::TTableServiceConfig::TResourceManager::TInfoExchangerSettings& settings)
{
- return new TKqpResourceInfoExchangerActor(counters, std::move(resourceSnapshotState));
+ return new TKqpResourceInfoExchangerActor(counters, std::move(resourceSnapshotState), settings);
}
} // namespace NRm
diff --git a/ydb/core/kqp/rm_service/kqp_rm_service.cpp b/ydb/core/kqp/rm_service/kqp_rm_service.cpp
index ef6dab2ac6..743d4e2bc8 100644
--- a/ydb/core/kqp/rm_service/kqp_rm_service.cpp
+++ b/ydb/core/kqp/rm_service/kqp_rm_service.cpp
@@ -153,8 +153,18 @@ public:
UpdatePatternCache(Config.GetKqpPatternCacheCapacityBytes());
if (PublishResourcesByExchanger) {
+ CreateResourceInfoExchanger(Config.GetInfoExchangerSettings());
+ return;
+ }
+ }
+
+ void CreateResourceInfoExchanger(
+ const NKikimrConfig::TTableServiceConfig::TResourceManager::TInfoExchangerSettings& settings) {
+ PublishResourcesByExchanger = true;
+ if (!ResourceInfoExchanger) {
ResourceSnapshotState = std::make_shared<TResourceSnapshotState>();
- auto exchanger = CreateKqpResourceInfoExchangerActor(Counters, ResourceSnapshotState);
+ auto exchanger = CreateKqpResourceInfoExchangerActor(
+ Counters, ResourceSnapshotState, settings);
ResourceInfoExchanger = ActorSystem->Register(exchanger);
return;
}
@@ -550,11 +560,14 @@ public:
void RequestClusterResourcesInfo(TOnResourcesSnapshotCallback&& callback) override {
LOG_AS_D("Schedule Snapshot request");
if (PublishResourcesByExchanger) {
- std::shared_ptr<const TVector<NKikimrKqp::TKqpNodeResources>> infos;
+ std::shared_ptr<TVector<NKikimrKqp::TKqpNodeResources>> infos;
with_lock (ResourceSnapshotState->Lock) {
infos = ResourceSnapshotState->Snapshot;
}
- TVector<NKikimrKqp::TKqpNodeResources> resources = *infos;
+ TVector<NKikimrKqp::TKqpNodeResources> resources;
+ if (infos != nullptr) {
+ resources = *infos;
+ }
callback(std::move(resources));
return;
}
@@ -723,13 +736,13 @@ public:
void Handle(NNodeWhiteboard::TEvWhiteboard::TEvSystemStateResponse::TPtr& ev) {
const auto& record = ev->Get()->Record;
if (record.SystemStateInfoSize() != 1) {
- LOG_C("Unexpected whiteboard info");
+ LOG_D("Unexpected whiteboard info");
return;
}
const auto& info = record.GetSystemStateInfo(0);
if (AppData()->UserPoolId >= info.PoolStatsSize()) {
- LOG_C("Unexpected whiteboard info: pool size is smaller than user pool id"
+ LOG_D("Unexpected whiteboard info: pool size is smaller than user pool id"
<< ", pool size: " << info.PoolStatsSize()
<< ", user pool id: " << AppData()->UserPoolId);
return;
@@ -737,7 +750,7 @@ public:
const auto& pool = info.GetPoolStats(AppData()->UserPoolId);
- LOG_C("Received node white board pool stats: " << pool.usage());
+ LOG_D("Received node white board pool stats: " << pool.usage());
ProxyNodeResources.SetCpuUsage(pool.usage());
ProxyNodeResources.SetThreads(pool.threads());
}
@@ -778,6 +791,11 @@ private:
}
void HandleWork(TEvKqp::TEvKqpProxyPublishRequest::TPtr&) {
+ SendWhiteboardRequest();
+ if (AppData()->TenantName.empty() || !SelfDataCenterId) {
+ LOG_E("Cannot start publishing usage for kqp_proxy, tenants: " << AppData()->TenantName << ", " << SelfDataCenterId.value_or("empty"));
+ return;
+ }
PublishResourceUsage("kqp_proxy");
}
@@ -821,13 +839,14 @@ private:
}
void Handle(TEvInterconnect::TEvNodeInfo::TPtr& ev) {
- auto selfDataCenterId = TString();
+ SelfDataCenterId = TString();
if (const auto& node = ev->Get()->Node) {
- selfDataCenterId = node->Location.GetDataCenterId();
+ SelfDataCenterId = node->Location.GetDataCenterId();
}
- ProxyNodeResources.SetDataCenterNumId(DataCenterFromString(selfDataCenterId));
- ProxyNodeResources.SetDataCenterId(selfDataCenterId);
+ ProxyNodeResources.SetNodeId(SelfId().NodeId());
+ ProxyNodeResources.SetDataCenterNumId(DataCenterFromString(*SelfDataCenterId));
+ ProxyNodeResources.SetDataCenterId(*SelfDataCenterId);
PublishResourceUsage("data_center update");
}
@@ -869,6 +888,23 @@ private:
auto& config = *event.MutableConfig()->MutableTableServiceConfig()->MutableResourceManager();
ResourceManager->UpdatePatternCache(config.GetKqpPatternCacheCapacityBytes());
+ bool enablePublishResourcesByExchanger = config.GetEnablePublishResourcesByExchanger();
+ if (enablePublishResourcesByExchanger != PublishResourcesByExchanger) {
+ PublishResourcesByExchanger = enablePublishResourcesByExchanger;
+ if (enablePublishResourcesByExchanger) {
+ ResourceManager->CreateResourceInfoExchanger(config.GetInfoExchangerSettings());
+ PublishResourceUsage("exchanger enabled");
+ } else {
+ if (ResourceManager->ResourceInfoExchanger) {
+ Send(ResourceManager->ResourceInfoExchanger, new TEvents::TEvPoison);
+ ResourceManager->ResourceInfoExchanger = TActorId();
+ }
+ ResourceManager->PublishResourcesByExchanger = false;
+ ResourceManager->ResourceSnapshotState.reset();
+ PublishResourceUsage("exchanger disabled");
+ }
+ }
+
#define FORCE_VALUE(name) if (!config.Has ## name ()) config.Set ## name(config.Get ## name());
FORCE_VALUE(ComputeActorsCount)
FORCE_VALUE(ChannelBufferSize)
@@ -887,6 +923,7 @@ private:
ResourceManager->ExecutionUnitsResource.SetNewLimit(config.GetComputeActorsCount());
ResourceManager->Config.Swap(&config);
}
+
}
static void HandleWork(TEvents::TEvUndelivered::TPtr& ev) {
@@ -1010,9 +1047,10 @@ private:
ToBroker(new TEvResourceBroker::TEvNotifyActorDied);
if (ResourceManager->ResourceInfoExchanger) {
Send(ResourceManager->ResourceInfoExchanger, new TEvents::TEvPoison);
+ ResourceManager->ResourceInfoExchanger = TActorId();
}
+ ResourceManager->ResourceSnapshotState.reset();
if (WbState.BoardPublisherActorId) {
-
Send(WbState.BoardPublisherActorId, new TEvents::TEvPoison);
}
TActor::PassAway();
@@ -1055,13 +1093,17 @@ private:
NKikimrKqp::TKqpNodeResources payload;
payload.SetNodeId(SelfId().NodeId());
payload.SetTimestamp(now.Seconds());
- auto* proxyNodeResources = payload.MutableKqpProxyNodeResources();
if (KqpProxySharedResources) {
- ProxyNodeResources.SetActiveWorkersCount(KqpProxySharedResources->AtomicLocalSessionCount.load());
+ if (SelfDataCenterId) {
+ auto* proxyNodeResources = payload.MutableKqpProxyNodeResources();
+ ProxyNodeResources.SetActiveWorkersCount(KqpProxySharedResources->AtomicLocalSessionCount.load());
+ if (SelfDataCenterId) {
+ *proxyNodeResources = ProxyNodeResources;
+ }
+ }
} else {
LOG_D("Don't set KqpProxySharedResources");
}
- *proxyNodeResources = ProxyNodeResources;
ActorIdToProto(MakeKqpResourceManagerServiceID(SelfId().NodeId()), payload.MutableResourceManagerActorId()); // legacy
with_lock (ResourceManager->Lock) {
payload.SetAvailableComputeActors(ResourceManager->ExecutionUnitsResource.Available()); // legacy
@@ -1079,8 +1121,10 @@ private:
<< "reason: " << reason
<< ", payload: " << payload.ShortDebugString());
WbState.LastPublishTime = now;
- Send(ResourceManager->ResourceInfoExchanger,
- new TEvKqpResourceInfoExchanger::TEvPublishResource(std::move(payload)));
+ if (ResourceManager->ResourceInfoExchanger) {
+ Send(ResourceManager->ResourceInfoExchanger,
+ new TEvKqpResourceInfoExchanger::TEvPublishResource(std::move(payload)));
+ }
return;
}
@@ -1129,6 +1173,7 @@ private:
std::shared_ptr<TKqpResourceManager> ResourceManager;
bool PublishResourcesByExchanger;
+ std::optional<TString> SelfDataCenterId;
};
} // namespace NRm
diff --git a/ydb/core/kqp/rm_service/kqp_rm_service.h b/ydb/core/kqp/rm_service/kqp_rm_service.h
index 2f149098b3..fbcff7151c 100644
--- a/ydb/core/kqp/rm_service/kqp_rm_service.h
+++ b/ydb/core/kqp/rm_service/kqp_rm_service.h
@@ -125,7 +125,8 @@ struct TEvKqpResourceInfoExchanger {
};
NActors::IActor* CreateKqpResourceInfoExchangerActor(TIntrusivePtr<TKqpCounters> counters,
- std::shared_ptr<TResourceSnapshotState> resourceSnapshotState);
+ std::shared_ptr<TResourceSnapshotState> resourceSnapshotState,
+ const NKikimrConfig::TTableServiceConfig::TResourceManager::TInfoExchangerSettings& settings);
} // namespace NRm
diff --git a/ydb/core/kqp/rm_service/kqp_rm_ut.cpp b/ydb/core/kqp/rm_service/kqp_rm_ut.cpp
index e634bd4e0a..8057cba687 100644
--- a/ydb/core/kqp/rm_service/kqp_rm_ut.cpp
+++ b/ydb/core/kqp/rm_service/kqp_rm_ut.cpp
@@ -103,6 +103,11 @@ NKikimrConfig::TTableServiceConfig::TResourceManager MakeKqpResourceManagerConfi
config.SetQueryMemoryLimit(1000);
config.SetEnablePublishResourcesByExchanger(EnablePublishResourcesByExchanger);
+ auto* infoExchangerRetrySettings = config.MutableInfoExchangerSettings();
+ auto* exchangerSettings = infoExchangerRetrySettings->MutableExchangerSettings();
+ exchangerSettings->SetStartDelayMs(50);
+ exchangerSettings->SetMaxDelayMs(50);
+
return config;
}
@@ -505,7 +510,7 @@ void KqpRm::SnapshotSharing(bool byExchanger) {
auto rm_first = GetKqpResourceManager(ResourceManagers[0].NodeId());
auto rm_second = GetKqpResourceManager(ResourceManagers[1].NodeId());
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(4));
+ Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(1));
CheckSnapshot(0, {{1000, 100}, {1000, 100}}, rm_first);
CheckSnapshot(1, {{1000, 100}, {1000, 100}}, rm_second);
@@ -519,12 +524,10 @@ void KqpRm::SnapshotSharing(bool byExchanger) {
bool allocated = rm_first->AllocateResources(1, 2, request);
UNIT_ASSERT(allocated);
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(4));
-
allocated = rm_first->AllocateResources(2, 1, request);
UNIT_ASSERT(allocated);
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(4));
+ Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(1));
CheckSnapshot(0, {{800, 80}, {1000, 100}}, rm_second);
}
@@ -533,12 +536,10 @@ void KqpRm::SnapshotSharing(bool byExchanger) {
bool allocated = rm_second->AllocateResources(1, 2, request);
UNIT_ASSERT(allocated);
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(4));
-
allocated = rm_second->AllocateResources(2, 1, request);
UNIT_ASSERT(allocated);
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(4));
+ Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(1));
CheckSnapshot(1, {{800, 80}, {800, 80}}, rm_first);
}
@@ -547,7 +548,7 @@ void KqpRm::SnapshotSharing(bool byExchanger) {
rm_first->FreeResources(1);
rm_first->FreeResources(2);
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(4));
+ Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(1));
CheckSnapshot(0, {{1000, 100}, {800, 80}}, rm_second);
}
@@ -556,7 +557,7 @@ void KqpRm::SnapshotSharing(bool byExchanger) {
rm_second->FreeResources(1);
rm_second->FreeResources(2);
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(4));
+ Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(1));
CheckSnapshot(1, {{1000, 100}, {1000, 100}}, rm_first);
}
@@ -577,7 +578,7 @@ void KqpRm::NodesMembership(bool byExchanger) {
auto rm_first = GetKqpResourceManager(ResourceManagers[0].NodeId());
auto rm_second = GetKqpResourceManager(ResourceManagers[1].NodeId());
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(4));
+ Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(1));
CheckSnapshot(0, {{1000, 100}, {1000, 100}}, rm_first);
CheckSnapshot(1, {{1000, 100}, {1000, 100}}, rm_second);
@@ -591,7 +592,7 @@ void KqpRm::NodesMembership(bool byExchanger) {
options.FinalEvents.emplace_back(TEvents::TSystem::Poison, 1);
UNIT_ASSERT(Runtime->DispatchEvents(options));
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(4));
+ Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(1));
CheckSnapshot(0, {{1000, 100}}, rm_first);
}
@@ -611,7 +612,7 @@ void KqpRm::DisonnectNodes() {
auto rm_first = GetKqpResourceManager(ResourceManagers[0].NodeId());
auto rm_second = GetKqpResourceManager(ResourceManagers[1].NodeId());
- Runtime->DispatchEvents(TDispatchOptions(), TDuration::MilliSeconds(500));
+ Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(1));
CheckSnapshot(0, {{1000, 100}, {1000, 100}}, rm_first);
CheckSnapshot(1, {{1000, 100}, {1000, 100}}, rm_second);
@@ -627,6 +628,8 @@ void KqpRm::DisonnectNodes() {
Disconnect(0, 1);
+ Runtime->DispatchEvents(TDispatchOptions(), TDuration::Seconds(1));
+
CheckSnapshot(0, {{1000, 100}}, rm_first);
}
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt
index dc4d457a24..87db7fa45c 100644
--- a/ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt
@@ -20,6 +20,7 @@ target_link_libraries(core-kqp-run_script_actor PUBLIC
ydb-core-protos
kqp-common-events
core-kqp-executer_actor
+ kqp-proxy_service-proto
api-protos
)
target_sources(core-kqp-run_script_actor PRIVATE
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt
index 64bce9401b..0efb7fb84c 100644
--- a/ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt
@@ -21,6 +21,7 @@ target_link_libraries(core-kqp-run_script_actor PUBLIC
ydb-core-protos
kqp-common-events
core-kqp-executer_actor
+ kqp-proxy_service-proto
api-protos
)
target_sources(core-kqp-run_script_actor PRIVATE
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt
index 64bce9401b..0efb7fb84c 100644
--- a/ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(core-kqp-run_script_actor PUBLIC
ydb-core-protos
kqp-common-events
core-kqp-executer_actor
+ kqp-proxy_service-proto
api-protos
)
target_sources(core-kqp-run_script_actor PRIVATE
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt
index dc4d457a24..87db7fa45c 100644
--- a/ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt
@@ -20,6 +20,7 @@ target_link_libraries(core-kqp-run_script_actor PUBLIC
ydb-core-protos
kqp-common-events
core-kqp-executer_actor
+ kqp-proxy_service-proto
api-protos
)
target_sources(core-kqp-run_script_actor PRIVATE
diff --git a/ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp b/ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp
index 4e5d9a57bd..669512139b 100644
--- a/ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp
+++ b/ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp
@@ -5,6 +5,7 @@
#include <ydb/core/kqp/common/kqp.h>
#include <ydb/core/kqp/executer_actor/kqp_executer.h>
#include <ydb/core/kqp/proxy_service/kqp_script_executions.h>
+#include <ydb/core/kqp/proxy_service/proto/result_set_meta.pb.h>
#include <ydb/library/ydb_issue/proto/issue_id.pb.h>
#include <ydb/public/api/protos/ydb_status_codes.pb.h>
@@ -167,8 +168,9 @@ private:
FinalStatusIsSaved = true;
Register(CreateScriptExecutionFinisher(ExecutionId, Database, LeaseGeneration, Status, GetExecStatusFromStatusCode(Status),
Issues, std::move(QueryStats), std::move(QueryPlan), std::move(QueryAst)));
+ return;
}
-
+
if (RunState != ERunState::Cancelled && RunState != ERunState::Finished) {
RunState = ERunState::Finished;
TerminateActorExecution(Ydb::StatusIds::PRECONDITION_FAILED, { NYql::TIssue("Already finished") });
@@ -216,18 +218,17 @@ private:
auto resultSetIndex = ev->Get()->Record.GetQueryResultIndex();
- if (resultSetIndex > ExpireAt.size()) {
- Issues.AddIssue(MakeIssue(NKikimrIssues::TIssuesIds::DEFAULT_ERROR, "Unexpected result set index"));
- Finish(Ydb::StatusIds::INTERNAL_ERROR);
- return;
- }
-
- if (resultSetIndex == ExpireAt.size()) {
- // next ResultSet arrived
+ if (resultSetIndex >= ExpireAt.size()) {
+ // we don't know result set count, so just accept all of them
+ // it's possible to have several result sets per script
+ // they can arrive in any order and may be missed for some indices
ResultSetRowCount.resize(resultSetIndex + 1);
ResultSetByteCount.resize(resultSetIndex + 1);
Truncated.resize(resultSetIndex + 1);
ExpireAt.resize(resultSetIndex + 1);
+ }
+
+ if (ExpireAt[resultSetIndex] == TInstant::Zero()) {
ExpireAt[resultSetIndex] = TInstant::Now() + TDuration::Days(1);
}
@@ -255,7 +256,7 @@ private:
}
if (firstRow == 0 || Truncated[resultSetIndex]) {
- Ydb::Query::ResultSetMeta meta;
+ Ydb::Query::Internal::ResultSetMeta meta;
*meta.mutable_columns() = ev->Get()->Record.GetResultSet().columns();
meta.set_truncated(Truncated[resultSetIndex]);
@@ -299,10 +300,10 @@ private:
return;
}
auto& record = ev->Get()->Record.GetRef();
-
+
const auto& issueMessage = record.GetResponse().GetQueryIssues();
NYql::IssuesFromMessage(issueMessage, Issues);
-
+
if (record.GetResponse().HasQueryPlan()) {
QueryPlan = record.GetResponse().GetQueryPlan();
}
diff --git a/ydb/core/kqp/run_script_actor/ya.make b/ydb/core/kqp/run_script_actor/ya.make
index 46d6a0567d..b7bfa28dcb 100644
--- a/ydb/core/kqp/run_script_actor/ya.make
+++ b/ydb/core/kqp/run_script_actor/ya.make
@@ -11,6 +11,7 @@ PEERDIR(
ydb/core/protos
ydb/core/kqp/common/events
ydb/core/kqp/executer_actor
+ ydb/core/kqp/proxy_service/proto
ydb/public/api/protos
)
diff --git a/ydb/core/kqp/runtime/kqp_read_actor.cpp b/ydb/core/kqp/runtime/kqp_read_actor.cpp
index 160fd2cc26..09a78b55d8 100644
--- a/ydb/core/kqp/runtime/kqp_read_actor.cpp
+++ b/ydb/core/kqp/runtime/kqp_read_actor.cpp
@@ -27,35 +27,39 @@ bool IsDebugLogEnabled(const NActors::TActorSystem* actorSystem, NActors::NLog::
return settings && settings->Satisfies(NActors::NLog::EPriority::PRI_DEBUG, component);
}
-struct TDefaultRangeEvReadSettings {
- NKikimrTxDataShard::TEvRead Data;
+struct TEvReadSettings : public TAtomicRefCount<TEvReadSettings> {
+ NKikimrTxDataShard::TEvRead Read;
+ NKikimrTxDataShard::TEvReadAck Ack;
- TDefaultRangeEvReadSettings() {
- Data.SetMaxRows(32767);
- Data.SetMaxBytes(5_MB);
+ TEvReadSettings() {
+ Read.SetMaxRows(32767);
+ Read.SetMaxBytes(5_MB);
+
+ Ack.SetMaxRows(32767);
+ Ack.SetMaxBytes(5_MB);
}
+};
-} DefaultRangeEvReadSettings;
+struct TEvReadDefaultSettings {
+ THotSwap<TEvReadSettings> Settings;
+
+ TEvReadDefaultSettings() {
+ Settings.AtomicStore(MakeIntrusive<TEvReadSettings>());
+ }
+
+} DefaultSettings;
THolder<NKikimr::TEvDataShard::TEvRead> DefaultReadSettings() {
auto result = MakeHolder<NKikimr::TEvDataShard::TEvRead>();
- result->Record.MergeFrom(DefaultRangeEvReadSettings.Data);
+ auto ptr = DefaultSettings.Settings.AtomicLoad();
+ result->Record.MergeFrom(ptr->Read);
return result;
}
-struct TDefaultRangeEvReadAckSettings {
- NKikimrTxDataShard::TEvReadAck Data;
-
- TDefaultRangeEvReadAckSettings() {
- Data.SetMaxRows(32767);
- Data.SetMaxBytes(5_MB);
- }
-
-} DefaultRangeEvReadAckSettings;
-
THolder<NKikimr::TEvDataShard::TEvReadAck> DefaultAckSettings() {
auto result = MakeHolder<NKikimr::TEvDataShard::TEvReadAck>();
- result->Record.MergeFrom(DefaultRangeEvReadAckSettings.Data);
+ auto ptr = DefaultSettings.Settings.AtomicLoad();
+ result->Record.MergeFrom(ptr->Ack);
return result;
}
@@ -131,6 +135,10 @@ public:
size_t RetryAttempt = 0;
size_t SuccessBatches = 0;
+ TMaybe<ui32> NodeId = {};
+ bool IsFirst = false;
+
+
TShardState(ui64 tabletId)
: TabletId(tabletId)
{
@@ -419,8 +427,8 @@ public:
Counters->ReadActorsCount->Inc();
Snapshot = IKqpGateway::TKqpSnapshot(Settings.GetSnapshot().GetStep(), Settings.GetSnapshot().GetTxId());
- if (settings.HasMaxInFlightShards()) {
- MaxInFlight = settings.GetMaxInFlightShards();
+ if (Settings.HasMaxInFlightShards()) {
+ MaxInFlight = Settings.GetMaxInFlightShards();
}
}
@@ -662,23 +670,23 @@ public:
if (state->HasRanges()) {
for (ui64 j = rangeIndex; j < ranges.size(); ++j) {
- CA_LOG_D("Intersect state range #" << j << " " << DebugPrintRange(KeyColumnTypes, ranges[j].ToTableRange(), tr)
- << " with partition range " << DebugPrintRange(KeyColumnTypes, partitionRange, tr));
-
- auto intersection = Intersect(KeyColumnTypes, partitionRange, ranges[j].ToTableRange());
-
- if (!intersection.IsEmptyRange(KeyColumnTypes)) {
+ auto comparison = CompareRanges(partitionRange, ranges[j].ToTableRange(), KeyColumnTypes);
+ CA_LOG_D("Compare range #" << j << " " << DebugPrintRange(KeyColumnTypes, ranges[j].ToTableRange(), tr)
+ << " with partition range " << DebugPrintRange(KeyColumnTypes, partitionRange, tr)
+ << " : " << comparison);
+
+ if (comparison > 0) {
+ continue;
+ } else if (comparison == 0) {
+ auto intersection = Intersect(KeyColumnTypes, partitionRange, ranges[j].ToTableRange());
CA_LOG_D("Add range to new shardId: " << partition.ShardId
<< ", range: " << DebugPrintRange(KeyColumnTypes, intersection, tr));
newShard->AddRange(TSerializedTableRange(intersection));
} else {
- CA_LOG_D("empty intersection");
- if (j > rangeIndex) {
- rangeIndex = j - 1;
- }
break;
}
+ rangeIndex = j;
}
if (newShard->HasRanges()) {
@@ -875,6 +883,11 @@ public:
Send(PipeCacheId, new TEvPipeCache::TEvForward(ev.Release(), state->TabletId, true),
IEventHandle::FlagTrackDelivery);
+ if (!FirstShardStarted) {
+ state->IsFirst = true;
+ }
+ FirstShardStarted = true;
+
if (auto delay = ShardTimeout()) {
TlsActivationContext->Schedule(*delay, new IEventHandle(SelfId(), SelfId(), new TEvRetryShard(id, Reads[id].LastSeqNo)));
}
@@ -905,6 +918,22 @@ public:
return;
}
+ if (!record.HasNodeId()) {
+ Counters->ReadActorAbsentNodeId->Inc();
+ } else if (record.GetNodeId() != SelfId().NodeId()) {
+ auto* state = Reads[id].Shard;
+ if (!state->NodeId) {
+ state->NodeId = record.GetNodeId();
+ CA_LOG_D("Node mismatch for tablet " << state->TabletId << " " << *state->NodeId << " != SelfId: " << SelfId().NodeId());
+ if (state->IsFirst) {
+ Counters->ReadActorRemoteFirstFetch->Inc();
+ }
+ Counters->ReadActorRemoteFetch->Inc();
+ }
+ } else {
+ CA_LOG_T("Node match for tablet " << Reads[id].Shard->TabletId);
+ }
+
Counters->DataShardIteratorMessages->Inc();
if (record.GetStatus().GetCode() != Ydb::StatusIds::SUCCESS) {
Counters->DataShardIteratorFails->Inc();
@@ -1402,6 +1431,8 @@ private:
NActors::TActorId PipeCacheId;
size_t TotalRetries = 0;
+
+ bool FirstShardStarted = false;
};
@@ -1415,11 +1446,30 @@ void RegisterKqpReadActor(NYql::NDq::TDqAsyncIoFactory& factory, TIntrusivePtr<T
}
void InjectRangeEvReadSettings(const NKikimrTxDataShard::TEvRead& read) {
- ::DefaultRangeEvReadSettings.Data.MergeFrom(read);
+ auto ptr = ::DefaultSettings.Settings.AtomicLoad();
+ TEvReadSettings settings = *ptr;
+ settings.Read.MergeFrom(read);
+ ::DefaultSettings.Settings.AtomicStore(MakeIntrusive<TEvReadSettings>(settings));
}
void InjectRangeEvReadAckSettings(const NKikimrTxDataShard::TEvReadAck& ack) {
- ::DefaultRangeEvReadAckSettings.Data.MergeFrom(ack);
+ auto ptr = ::DefaultSettings.Settings.AtomicLoad();
+ TEvReadSettings settings = *ptr;
+ settings.Ack.MergeFrom(ack);
+ ::DefaultSettings.Settings.AtomicStore(MakeIntrusive<TEvReadSettings>(settings));
+}
+
+void SetDefaultIteratorQuotaSettings(ui32 rows, ui32 bytes) {
+ auto ptr = ::DefaultSettings.Settings.AtomicLoad();
+ TEvReadSettings settings = *ptr;
+
+ settings.Read.SetMaxRows(rows);
+ settings.Ack.SetMaxRows(rows);
+
+ settings.Read.SetMaxBytes(bytes);
+ settings.Ack.SetMaxBytes(bytes);
+
+ ::DefaultSettings.Settings.AtomicStore(MakeIntrusive<TEvReadSettings>(settings));
}
void InterceptReadActorPipeCache(NActors::TActorId id) {
diff --git a/ydb/core/kqp/runtime/kqp_read_actor.h b/ydb/core/kqp/runtime/kqp_read_actor.h
index 12da2c844c..4849e99c58 100644
--- a/ydb/core/kqp/runtime/kqp_read_actor.h
+++ b/ydb/core/kqp/runtime/kqp_read_actor.h
@@ -41,6 +41,7 @@ struct TIteratorReadBackoffSettings : TAtomicRefCount<TIteratorReadBackoffSettin
};
void SetReadIteratorBackoffSettings(TIntrusivePtr<TIteratorReadBackoffSettings>);
+void SetDefaultIteratorQuotaSettings(ui32 rows, ui32 bytes);
void RegisterKqpReadActor(NYql::NDq::TDqAsyncIoFactory&, TIntrusivePtr<TKqpCounters>);
diff --git a/ydb/core/kqp/runtime/kqp_sequencer_actor.cpp b/ydb/core/kqp/runtime/kqp_sequencer_actor.cpp
index 21baf45f2a..e81d3d75c9 100644
--- a/ydb/core/kqp/runtime/kqp_sequencer_actor.cpp
+++ b/ydb/core/kqp/runtime/kqp_sequencer_actor.cpp
@@ -24,6 +24,15 @@ namespace NKqp {
namespace {
+NScheme::TTypeInfo BuildTypeInfo(const ::NKikimrKqp::TKqpColumnMetadataProto& proto) {
+ NScheme::TTypeId typeId = static_cast<NScheme::TTypeId>(proto.GetTypeId());
+ if (typeId != NKikimr::NScheme::NTypeIds::Pg) {
+ return NScheme::TTypeInfo(typeId);
+ } else {
+ return NScheme::TTypeInfo(typeId, NPg::TypeDescFromPgTypeId(proto.GetTypeInfo().GetPgTypeId()));
+ }
+}
+
using namespace NKikimr::NSequenceProxy;
const NActors::TActorId SequenceProxyId = NSequenceProxy::MakeSequenceProxyServiceID();
@@ -37,8 +46,8 @@ class TKqpSequencerActor : public NActors::TActorBootstrapped<TKqpSequencerActor
explicit TColumnSequenceInfo(const ::NKikimrKqp::TKqpColumnMetadataProto& proto)
: DefaultFromSequence(proto.GetDefaultFromSequence())
- , TypeInfo(static_cast<NScheme::TTypeId>(proto.GetTypeId()))
- {
+ , TypeInfo(BuildTypeInfo(proto))
+ {
}
bool IsAutoIncrement() const {
@@ -167,17 +176,19 @@ private:
NUdf::TUnboxedValue* rowItems = nullptr;
auto newValue = HolderFactory.CreateDirectArrayHolder(Settings.GetColumns().size(), rowItems);
-
+ int inputColIdx = 0;
for(int columnIdx = 0; columnIdx < Settings.GetColumns().size(); ++columnIdx) {
auto& columnInfo = ColumnSequenceInfo[columnIdx];
if (columnInfo.IsAutoIncrement()) {
- *rowItems++ = NUdf::TUnboxedValuePod(columnInfo.AcquireNextVal());
+ i64 nextVal = columnInfo.AcquireNextVal();
+ *rowItems++ = NUdf::TUnboxedValuePod(nextVal);
rowSize += sizeof(NUdf::TUnboxedValuePod);
hasSequences &= columnInfo.HasValues();
} else {
- *rowItems++ = currentValue.GetElement(columnIdx);
- rowSize += NMiniKQL::GetUnboxedValueSize(currentValue.GetElement(columnIdx), columnInfo.TypeInfo).AllocatedBytes;
+ *rowItems++ = currentValue.GetElement(inputColIdx);
+ rowSize += NMiniKQL::GetUnboxedValueSize(currentValue.GetElement(inputColIdx), columnInfo.TypeInfo).AllocatedBytes;
+ ++inputColIdx;
}
}
diff --git a/ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp b/ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp
index d0cb21e71c..f35e58bda9 100644
--- a/ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp
+++ b/ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp
@@ -623,8 +623,7 @@ private:
}
ui64 GetNextReadId() {
- static ui64 readId = 0;
- return ++readId;
+ return ++ReadId;
}
TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() {
@@ -672,6 +671,8 @@ private:
ui64 ReadBytesCount = 0;
TIntrusivePtr<TKqpCounters> Counters;
+
+ ui64 ReadId = 0;
};
} // namespace
diff --git a/ydb/core/kqp/session_actor/kqp_query_state.h b/ydb/core/kqp/session_actor/kqp_query_state.h
index 636b08723f..1e625d4047 100644
--- a/ydb/core/kqp/session_actor/kqp_query_state.h
+++ b/ydb/core/kqp/session_actor/kqp_query_state.h
@@ -7,7 +7,7 @@
#include <library/cpp/actors/wilson/wilson_trace.h>
#include <ydb/core/base/cputime.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <ydb/core/kqp/common/kqp.h>
#include <ydb/core/kqp/common/kqp_resolve.h>
#include <ydb/core/kqp/common/kqp_timeouts.h>
@@ -332,10 +332,6 @@ public:
return RequestEv->GetTxControl();
}
- const ::NKikimrMiniKQL::TParams& GetParameters() const {
- return RequestEv->GetParameters();
- }
-
// validate the compiled query response and ensure that all table versions are not
// changed since the last compilation.
bool EnsureTableVersions(const TEvTxProxySchemeCache::TEvNavigateKeySetResult& response);
diff --git a/ydb/core/kqp/session_actor/kqp_session_actor.cpp b/ydb/core/kqp/session_actor/kqp_session_actor.cpp
index 6b4509ba2b..8c520eab9d 100644
--- a/ydb/core/kqp/session_actor/kqp_session_actor.cpp
+++ b/ydb/core/kqp/session_actor/kqp_session_actor.cpp
@@ -22,7 +22,7 @@
#include <ydb/core/base/appdata.h>
#include <ydb/core/base/cputime.h>
#include <ydb/core/base/path.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <ydb/core/protos/kqp.pb.h>
#include <ydb/core/sys_view/service/sysview_service.h>
#include <ydb/core/tx/tx_proxy/proxy.h>
@@ -128,6 +128,7 @@ public:
TKqpSessionActor(const TActorId& owner, const TString& sessionId, const TKqpSettings::TConstPtr& kqpSettings,
const TKqpWorkerSettings& workerSettings, NYql::IHTTPGateway::TPtr httpGateway,
NYql::NDq::IDqAsyncIoFactory::TPtr asyncIoFactory,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory,
TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters)
: Owner(owner)
, SessionId(sessionId)
@@ -135,6 +136,7 @@ public:
, Settings(workerSettings)
, HttpGateway(std::move(httpGateway))
, AsyncIoFactory(std::move(asyncIoFactory))
+ , CredentialsFactory(std::move(credentialsFactory))
, ModuleResolverState(std::move(moduleResolverState))
, KqpSettings(kqpSettings)
, Config(CreateConfig(kqpSettings, workerSettings))
@@ -189,29 +191,10 @@ public:
Settings.Service, std::move(id));
}
- bool ConvertParameters() {
- auto& proto = QueryState->RequestEv->Record;
-
- if (!proto.GetRequest().HasParameters() && QueryState->RequestEv->GetYdbParameters().size()) {
- try {
- ConvertYdbParamsToMiniKQLParams(QueryState->RequestEv->GetYdbParameters(), *proto.MutableRequest()->MutableParameters());
- } catch (const std::exception& ex) {
- TString message = TStringBuilder() << "Failed to parse query parameters. "<< ex.what();
- ReplyProcessError(QueryState->Sender, QueryState->ProxyRequestId, Ydb::StatusIds::BAD_REQUEST, message);
- return false;
- }
- }
-
- return true;
- }
-
void ForwardRequest(TEvKqp::TEvQueryRequest::TPtr& ev) {
- if (!ConvertParameters())
- return;
-
if (!WorkerId) {
std::unique_ptr<IActor> workerActor(CreateKqpWorkerActor(SelfId(), SessionId, KqpSettings, Settings,
- HttpGateway, ModuleResolverState, Counters));
+ HttpGateway, ModuleResolverState, Counters, CredentialsFactory));
WorkerId = RegisterWithSameMailbox(workerActor.release());
}
TlsActivationContext->Send(new IEventHandle(*WorkerId, SelfId(), QueryState->RequestEv.release(), ev->Flags, ev->Cookie,
@@ -699,7 +682,6 @@ public:
}
try {
- QueryState->QueryData->ParseParameters(QueryState->GetParameters());
QueryState->QueryData->ParseParameters(QueryState->GetYdbParameters());
} catch(const yexception& ex) {
ythrow TRequestFail(Ydb::StatusIds::BAD_REQUEST) << ex.what();
@@ -1258,6 +1240,7 @@ public:
if (QueryState->ReportStats()) {
if (QueryState->GetStatsMode() >= Ydb::Table::QueryStatsCollection::STATS_COLLECTION_FULL) {
response->SetQueryPlan(SerializeAnalyzePlan(*stats));
+ response->SetQueryAst(QueryState->CompileResult->PreparedQuery->GetPhysicalQuery().GetQueryAst());
}
response->MutableQueryStats()->Swap(stats);
}
@@ -1527,6 +1510,10 @@ public:
const auto& phyQuery = QueryState->PreparedQuery->GetPhysicalQuery();
FillColumnsMeta(phyQuery, response);
+ } else if (compileResult->Status == Ydb::StatusIds::TIMEOUT && QueryState->QueryDeadlines.CancelAt) {
+ // The compile timeout cause cancelation execution of request.
+ // So in case of cancel after we can reply with canceled status
+ ev.SetYdbStatus(Ydb::StatusIds::CANCELLED);
}
}
@@ -2014,6 +2001,7 @@ private:
TKqpWorkerSettings Settings;
NYql::IHTTPGateway::TPtr HttpGateway;
NYql::NDq::IDqAsyncIoFactory::TPtr AsyncIoFactory;
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr CredentialsFactory;
TIntrusivePtr<TModuleResolverState> ModuleResolverState;
TKqpSettings::TConstPtr KqpSettings;
std::optional<TActorId> WorkerId;
@@ -2035,10 +2023,11 @@ private:
IActor* CreateKqpSessionActor(const TActorId& owner, const TString& sessionId,
const TKqpSettings::TConstPtr& kqpSettings, const TKqpWorkerSettings& workerSettings,
- NYql::IHTTPGateway::TPtr httpGateway, NYql::NDq::IDqAsyncIoFactory::TPtr asyncIoFactory, TIntrusivePtr<TModuleResolverState> moduleResolverState,
- TIntrusivePtr<TKqpCounters> counters)
+ NYql::IHTTPGateway::TPtr httpGateway, NYql::NDq::IDqAsyncIoFactory::TPtr asyncIoFactory,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory,
+ TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters)
{
- return new TKqpSessionActor(owner, sessionId, kqpSettings, workerSettings, std::move(httpGateway), std::move(asyncIoFactory), std::move(moduleResolverState), counters);
+ return new TKqpSessionActor(owner, sessionId, kqpSettings, workerSettings, std::move(httpGateway), std::move(asyncIoFactory), std::move(credentialsFactory), std::move(moduleResolverState), counters);
}
}
diff --git a/ydb/core/kqp/session_actor/kqp_session_actor.h b/ydb/core/kqp/session_actor/kqp_session_actor.h
index 36b50632da..4dd2340f13 100644
--- a/ydb/core/kqp/session_actor/kqp_session_actor.h
+++ b/ydb/core/kqp/session_actor/kqp_session_actor.h
@@ -4,6 +4,7 @@
#include <ydb/core/kqp/gateway/kqp_gateway.h>
#include <ydb/core/protos/config.pb.h>
#include <ydb/library/yql/providers/common/http_gateway/yql_http_gateway.h>
+#include <ydb/library/yql/providers/common/token_accessor/client/factory.h>
#include <ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io_factory.h>
#include <library/cpp/actors/core/actorid.h>
@@ -29,7 +30,8 @@ struct TKqpWorkerSettings {
IActor* CreateKqpSessionActor(const TActorId& owner, const TString& sessionId,
const TKqpSettings::TConstPtr& kqpSettings, const TKqpWorkerSettings& workerSettings,
- NYql::IHTTPGateway::TPtr httpGateway, NYql::NDq::IDqAsyncIoFactory::TPtr asyncIoFactory, TIntrusivePtr<TModuleResolverState> moduleResolverState,
- TIntrusivePtr<TKqpCounters> counters);
+ NYql::IHTTPGateway::TPtr httpGateway, NYql::NDq::IDqAsyncIoFactory::TPtr asyncIoFactory,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory,
+ TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters);
} // namespace NKikimr::NKqp
diff --git a/ydb/core/kqp/session_actor/kqp_worker_actor.cpp b/ydb/core/kqp/session_actor/kqp_worker_actor.cpp
index 69cb3fdeb0..ebe9ac0335 100644
--- a/ydb/core/kqp/session_actor/kqp_worker_actor.cpp
+++ b/ydb/core/kqp/session_actor/kqp_worker_actor.cpp
@@ -96,13 +96,15 @@ public:
TKqpWorkerActor(const TActorId& owner, const TString& sessionId, const TKqpSettings::TConstPtr& kqpSettings,
const TKqpWorkerSettings& workerSettings, NYql::IHTTPGateway::TPtr httpGateway,
- TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters)
+ TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory)
: Owner(owner)
, SessionId(sessionId)
, Settings(workerSettings)
, HttpGateway(std::move(httpGateway))
, ModuleResolverState(moduleResolverState)
, Counters(counters)
+ , CredentialsFactory(std::move(credentialsFactory))
, Config(MakeIntrusive<TKikimrConfiguration>())
, CreationTime(TInstant::Now())
, QueryId(0)
@@ -138,7 +140,7 @@ public:
Config->FeatureFlags = AppData(ctx)->FeatureFlags;
KqpHost = CreateKqpHost(Gateway, Settings.Cluster, Settings.Database, Config, ModuleResolverState->ModuleResolver,
- HttpGateway, AppData(ctx)->FunctionRegistry, !Settings.LongSession);
+ HttpGateway, AppData(ctx)->FunctionRegistry, !Settings.LongSession, false, CredentialsFactory);
Become(&TKqpWorkerActor::ReadyState);
}
@@ -466,8 +468,7 @@ private:
switch (action) {
case NKikimrKqp::QUERY_ACTION_EXECUTE: {
- auto&& params = *QueryState->RequestEv->Record.MutableRequest()->MutableParameters();
- if (!ExecuteQuery(QueryState->RequestEv->GetQuery(), std::move(params), queryType, QueryState->RequestEv->GetRequestActorId())) {
+ if (!ExecuteQuery(QueryState->RequestEv->GetQuery(), QueryState->RequestEv->GetYdbParameters(), queryType, QueryState->RequestEv->GetRequestActorId())) {
onBadRequest(QueryState->Error);
return;
}
@@ -565,7 +566,7 @@ private:
Cleanup(ctx, true);
}
- bool ExecuteQuery(const TString& query, ::NKikimrMiniKQL::TParams&& parameters,
+ bool ExecuteQuery(const TString& query, const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& parameters,
NKikimrKqp::EQueryType type, const TActorId& requestActorId)
{
auto statsMode = GetStatsMode(QueryState->RequestEv.get(), EKikimrStatsMode::Basic);
@@ -595,7 +596,7 @@ private:
execSettings.Deadlines = QueryState->QueryDeadlines;
execSettings.RpcCtx = QueryState->RequestEv->GetRequestCtx();
execSettings.StatsMode = statsMode;
- QueryState->AsyncQueryResult = KqpHost->ExecuteYqlScript(query, std::move(parameters), execSettings);
+ QueryState->AsyncQueryResult = KqpHost->ExecuteYqlScript(query, parameters, execSettings);
break;
}
@@ -604,7 +605,7 @@ private:
execSettings.Deadlines = QueryState->QueryDeadlines;
execSettings.RpcCtx = QueryState->RequestEv->GetRequestCtx();
execSettings.StatsMode = statsMode;
- QueryState->AsyncQueryResult = KqpHost->StreamExecuteYqlScript(query, std::move(parameters),
+ QueryState->AsyncQueryResult = KqpHost->StreamExecuteYqlScript(query, parameters,
requestActorId, execSettings);
break;
}
@@ -1059,6 +1060,7 @@ private:
NYql::IHTTPGateway::TPtr HttpGateway;
TIntrusivePtr<TModuleResolverState> ModuleResolverState;
TIntrusivePtr<TKqpCounters> Counters;
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr CredentialsFactory;
TIntrusivePtr<TKqpRequestCounters> RequestCounters;
TKikimrConfiguration::TPtr Config;
TInstant CreationTime;
@@ -1075,9 +1077,10 @@ private:
IActor* CreateKqpWorkerActor(const TActorId& owner, const TString& sessionId,
const TKqpSettings::TConstPtr& kqpSettings, const TKqpWorkerSettings& workerSettings,
NYql::IHTTPGateway::TPtr httpGateway,
- TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters)
+ TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters,
+ NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory)
{
- return new TKqpWorkerActor(owner, sessionId, kqpSettings, workerSettings, std::move(httpGateway), moduleResolverState, counters);
+ return new TKqpWorkerActor(owner, sessionId, kqpSettings, workerSettings, std::move(httpGateway), moduleResolverState, counters, std::move(credentialsFactory));
}
} // namespace NKqp
diff --git a/ydb/core/kqp/session_actor/kqp_worker_common.h b/ydb/core/kqp/session_actor/kqp_worker_common.h
index 545a082583..5edb413c5a 100644
--- a/ydb/core/kqp/session_actor/kqp_worker_common.h
+++ b/ydb/core/kqp/session_actor/kqp_worker_common.h
@@ -9,6 +9,7 @@
#include <ydb/core/kqp/provider/yql_kikimr_settings.h>
#include <ydb/core/protos/kqp.pb.h>
#include <ydb/library/yql/providers/common/http_gateway/yql_http_gateway.h>
+#include <ydb/library/yql/providers/common/token_accessor/client/factory.h>
#include <library/cpp/actors/core/actor.h>
#include <library/cpp/actors/core/log.h>
@@ -145,7 +146,7 @@ bool HasSchemeOrFatalIssues(const NYql::TIssues& issues);
IActor* CreateKqpWorkerActor(const TActorId& owner, const TString& sessionId,
const TKqpSettings::TConstPtr& kqpSettings, const TKqpWorkerSettings& workerSettings,
NYql::IHTTPGateway::TPtr httpGateway, TIntrusivePtr<TModuleResolverState> moduleResolverState,
- TIntrusivePtr<TKqpCounters> counters);
+ TIntrusivePtr<TKqpCounters> counters, NYql::ISecuredServiceAccountCredentialsFactory::TPtr credentialsFactory);
bool IsSameProtoType(const NKikimrMiniKQL::TType& actual, const NKikimrMiniKQL::TType& expected);
diff --git a/ydb/core/kqp/ut/common/kqp_ut_common.cpp b/ydb/core/kqp/ut/common/kqp_ut_common.cpp
index 1d1248864f..e6235ee68c 100644
--- a/ydb/core/kqp/ut/common/kqp_ut_common.cpp
+++ b/ydb/core/kqp/ut/common/kqp_ut_common.cpp
@@ -443,8 +443,6 @@ void TKikimrRunner::Initialize(const TKikimrSettings& settings) {
Client->InitRootScheme(settings.DomainRoot);
- NKikimr::NKqp::WaitForKqpProxyInit(GetDriver());
-
if (settings.WithSampleTables) {
CreateSampleTables();
}
@@ -1029,25 +1027,6 @@ void CreateSampleTablesWithIndex(TSession& session, bool populateTables) {
UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
}
-void WaitForKqpProxyInit(const NYdb::TDriver& driver) {
- NYdb::NTable::TTableClient client(driver);
-
- while (true) {
- auto it = client.RetryOperationSync([=](TSession session) {
- return session.ExecuteDataQuery(R"(
- SELECT 1;
- )",
- TTxControl::BeginTx().CommitTx()
- ).GetValueSync();
- });
-
- if (it.IsSuccess()) {
- break;
- }
- Sleep(TDuration::MilliSeconds(100));
- }
-}
-
void InitRoot(Tests::TServer::TPtr server, TActorId sender) {
server->SetupRootStoragePools(sender);
}
diff --git a/ydb/core/kqp/ut/common/kqp_ut_common.h b/ydb/core/kqp/ut/common/kqp_ut_common.h
index 6d627ba351..3275666d29 100644
--- a/ydb/core/kqp/ut/common/kqp_ut_common.h
+++ b/ydb/core/kqp/ut/common/kqp_ut_common.h
@@ -86,6 +86,11 @@ struct TKikimrSettings: public TTestFeatureFlagsHolder<TKikimrSettings> {
TKikimrSettings()
{
FeatureFlags.SetForceColumnTablesCompositeMarks(true);
+ auto* tableServiceConfig = AppConfig.MutableTableServiceConfig();
+ auto* infoExchangerRetrySettings = tableServiceConfig->MutableResourceManager()->MutableInfoExchangerSettings();
+ auto* exchangerSettings = infoExchangerRetrySettings->MutableExchangerSettings();
+ exchangerSettings->SetStartDelayMs(10);
+ exchangerSettings->SetMaxDelayMs(10);
}
TKikimrSettings& SetAppConfig(const NKikimrConfig::TAppConfig& value) { AppConfig = value; return *this; }
@@ -138,8 +143,10 @@ public:
.UseQueryCache(false));
}
- NYdb::NQuery::TQueryClient GetQueryClient() const {
- return NYdb::NQuery::TQueryClient(*Driver);
+ NYdb::NQuery::TQueryClient GetQueryClient(
+ NYdb::NQuery::TClientSettings settings = NYdb::NQuery::TClientSettings()) const
+ {
+ return NYdb::NQuery::TQueryClient(*Driver, settings);
}
bool IsUsingSnapshotReads() const {
@@ -267,11 +274,6 @@ inline void AssertSuccessResult(const NYdb::TStatus& result) {
void CreateSampleTablesWithIndex(NYdb::NTable::TSession& session, bool populateTables = true);
-// KQP proxy needs to asynchronously receive tenants info before it is able to serve requests that have
-// database name specified. Before that it returns errors.
-// This method retries a simple query until it succeeds.
-void WaitForKqpProxyInit(const NYdb::TDriver& driver);
-
void InitRoot(Tests::TServer::TPtr server, TActorId sender);
THolder<NKikimr::NSchemeCache::TSchemeCacheNavigate> Navigate(TTestActorRuntime& runtime, const TActorId& sender,
diff --git a/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp b/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp
index 02596b6e12..42608e7fa3 100644
--- a/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp
+++ b/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp
@@ -5,6 +5,8 @@
#include <aws/core/auth/AWSCredentialsProvider.h>
#include <aws/core/Aws.h>
#include <aws/s3/model/CreateBucketRequest.h>
+#include <aws/s3/model/GetObjectRequest.h>
+#include <aws/s3/model/ListObjectsRequest.h>
#include <aws/s3/model/PutObjectRequest.h>
#include <aws/s3/S3Client.h>
@@ -27,8 +29,15 @@ R"({"key": "1", "value": "trololo"}
{"key": "2", "value": "hello world"}
)"sv;
+constexpr TStringBuf TEST_CONTENT_KEYS =
+R"({"key": "1"}
+{"key": "3"}
+)"sv;
+
const TString TEST_SCHEMA = R"(["StructType";[["key";["DataType";"Utf8";];];["value";["DataType";"Utf8";];];];])";
+const TString TEST_SCHEMA_IDS = R"(["StructType";[["key";["DataType";"Utf8";];];];])";
+
bool InitAwsApi() {
Aws::InitAPI(Aws::SDKOptions());
return true;
@@ -39,39 +48,126 @@ bool EnsureAwsApiInited() {
return inited;
}
-void CreateBucketWithObject(const TString& bucket, const TString& object, const TStringBuf& content) {
+Aws::S3::S3Client MakeS3Client() {
EnsureAwsApiInited();
Aws::Client::ClientConfiguration s3ClientConfig;
s3ClientConfig.endpointOverride = GetEnv("S3_ENDPOINT");
s3ClientConfig.scheme = Aws::Http::Scheme::HTTP;
- Aws::S3::S3Client s3Client(std::make_shared<Aws::Auth::AnonymousAWSCredentialsProvider>(), s3ClientConfig);
-
- {
- Aws::S3::Model::CreateBucketRequest req;
- req.SetBucket(bucket);
- req.SetACL(Aws::S3::Model::BucketCannedACL::public_read_write);
- const Aws::S3::Model::CreateBucketOutcome result = s3Client.CreateBucket(req);
- UNIT_ASSERT_C(result.IsSuccess(), "Error creating bucket \"" << bucket << "\": " << result.GetError().GetExceptionName() << ": " << result.GetError().GetMessage());
+ return Aws::S3::S3Client(std::make_shared<Aws::Auth::AnonymousAWSCredentialsProvider>(), s3ClientConfig);
+}
+
+void CreateBucket(const TString& bucket, Aws::S3::S3Client& s3Client) {
+ Aws::S3::Model::CreateBucketRequest req;
+ req.SetBucket(bucket);
+ req.SetACL(Aws::S3::Model::BucketCannedACL::public_read_write);
+ const Aws::S3::Model::CreateBucketOutcome result = s3Client.CreateBucket(req);
+ UNIT_ASSERT_C(result.IsSuccess(), "Error creating bucket \"" << bucket << "\": " << result.GetError().GetExceptionName() << ": " << result.GetError().GetMessage());
+}
+
+void CreateBucket(const TString& bucket) {
+ Aws::S3::S3Client s3Client = MakeS3Client();
+
+ CreateBucket(bucket, s3Client);
+}
+
+void UploadObject(const TString& bucket, const TString& object, const TStringBuf& content, Aws::S3::S3Client& s3Client) {
+ Aws::S3::Model::PutObjectRequest req;
+ req.WithBucket(bucket).WithKey(object);
+
+ auto inputStream = std::make_shared<std::stringstream>();
+ *inputStream << content;
+ req.SetBody(inputStream);
+ const Aws::S3::Model::PutObjectOutcome result = s3Client.PutObject(req);
+ UNIT_ASSERT_C(result.IsSuccess(), "Error uploading object \"" << object << "\" to a bucket \"" << bucket << "\": " << result.GetError().GetExceptionName() << ": " << result.GetError().GetMessage());
+}
+
+void UploadObject(const TString& bucket, const TString& object, const TStringBuf& content) {
+ Aws::S3::S3Client s3Client = MakeS3Client();
+
+ UploadObject(bucket, object, content, s3Client);
+}
+
+void CreateBucketWithObject(const TString& bucket, const TString& object, const TStringBuf& content, Aws::S3::S3Client& s3Client) {
+ CreateBucket(bucket, s3Client);
+ UploadObject(bucket, object, content, s3Client);
+}
+
+void CreateBucketWithObject(const TString& bucket, const TString& object, const TStringBuf& content) {
+ Aws::S3::S3Client s3Client = MakeS3Client();
+
+ CreateBucketWithObject(bucket, object, content, s3Client);
+}
+
+TString GetObject(const TString& bucket, const TString& object, Aws::S3::S3Client& s3Client) {
+ Aws::S3::Model::GetObjectRequest req;
+ req.WithBucket(bucket).WithKey(object);
+
+ Aws::S3::Model::GetObjectOutcome outcome = s3Client.GetObject(req);
+ UNIT_ASSERT(outcome.IsSuccess());
+ Aws::S3::Model::GetObjectResult& result = outcome.GetResult();
+ std::istreambuf_iterator<char> eos;
+ std::string objContent(std::istreambuf_iterator<char>(result.GetBody()), eos);
+ Cerr << "Got object content from \"" << bucket << "." << object << "\"\n" << objContent << Endl;
+ return objContent;
+}
+
+TString GetObject(const TString& bucket, const TString& object) {
+ Aws::S3::S3Client s3Client = MakeS3Client();
+
+ return GetObject(bucket, object, s3Client);
+}
+
+std::vector<TString> GetObjectKeys(const TString& bucket, Aws::S3::S3Client& s3Client) {
+ Aws::S3::Model::ListObjectsRequest listReq;
+ listReq.WithBucket(bucket);
+
+ Aws::S3::Model::ListObjectsOutcome outcome = s3Client.ListObjects(listReq);
+ UNIT_ASSERT(outcome.IsSuccess());
+
+ std::vector<TString> keys;
+ for (auto& obj : outcome.GetResult().GetContents()) {
+ keys.push_back(TString(obj.GetKey()));
+ Cerr << "Found S3 object: \"" << obj.GetKey() << "\"" << Endl;
}
+ return keys;
+}
+
+std::vector<TString> GetObjectKeys(const TString& bucket) {
+ Aws::S3::S3Client s3Client = MakeS3Client();
- {
- Aws::S3::Model::PutObjectRequest req;
- req.WithBucket(bucket).WithKey(object);
+ return GetObjectKeys(bucket, s3Client);
+}
- auto inputStream = std::make_shared<std::stringstream>();
- *inputStream << content;
- req.SetBody(inputStream);
- const Aws::S3::Model::PutObjectOutcome result = s3Client.PutObject(req);
- UNIT_ASSERT_C(result.IsSuccess(), "Error uploading object \"" << object << "\" to a bucket \"" << bucket << "\": " << result.GetError().GetExceptionName() << ": " << result.GetError().GetMessage());
+TString GetAllObjects(const TString& bucket, TStringBuf separator, Aws::S3::S3Client& s3Client) {
+ std::vector<TString> keys = GetObjectKeys(bucket, s3Client);
+ TString result;
+ bool firstObject = true;
+ for (const TString& key : keys) {
+ result += GetObject(bucket, key, s3Client);
+ if (!firstObject) {
+ result += separator;
+ }
+ firstObject = false;
}
+ return result;
+}
+
+TString GetAllObjects(const TString& bucket, TStringBuf separator = "") {
+ Aws::S3::S3Client s3Client = MakeS3Client();
+
+ return GetAllObjects(bucket, separator, s3Client);
+}
+
+TString GetBucketLocation(const TStringBuf bucket) {
+ return TStringBuilder() << GetEnv("S3_ENDPOINT") << '/' << bucket << '/';
}
NYdb::NQuery::TScriptExecutionOperation WaitScriptExecutionOperation(const NYdb::TOperation::TOperationId& operationId, const NYdb::TDriver& ydbDriver) {
NYdb::NOperation::TOperationClient client(ydbDriver);
NThreading::TFuture<NYdb::NQuery::TScriptExecutionOperation> op;
do {
- if (!op.Initialized()) {
+ if (op.Initialized()) {
Sleep(TDuration::MilliSeconds(10));
}
op = client.Get<NYdb::NQuery::TScriptExecutionOperation>(operationId);
@@ -111,7 +207,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
);)",
"external_source"_a = externalDataSourceName,
"external_table"_a = externalTableName,
- "location"_a = GetEnv("S3_ENDPOINT") + "/" + bucket + "/",
+ "location"_a = GetBucketLocation(bucket),
"object"_a = object
);
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
@@ -129,7 +225,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr.GetDriver());
UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecStatus, EExecStatus::Completed);
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Metadata().ExecutionId, 0).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
TResultSetParser resultSet(results.ExtractResultSet());
@@ -175,7 +271,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
);)",
"external_source"_a = externalDataSourceName,
"external_table"_a = externalTableName,
- "location"_a = GetEnv("S3_ENDPOINT") + "/" + bucket + "/",
+ "location"_a = GetBucketLocation(bucket),
"object"_a = object
);
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
@@ -235,7 +331,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
AUTH_METHOD="NONE"
);)",
"external_source"_a = externalDataSourceName,
- "location"_a = GetEnv("S3_ENDPOINT") + "/" + bucket + "/"
+ "location"_a = GetBucketLocation(bucket)
);
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
UNIT_ASSERT_C(result.GetStatus() == NYdb::EStatus::SUCCESS, result.GetIssues().ToString());
@@ -254,7 +350,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr.GetDriver());
UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecStatus, EExecStatus::Completed);
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Metadata().ExecutionId, 0).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
TResultSetParser resultSet(results.ExtractResultSet());
@@ -294,7 +390,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
);
)",
"external_source"_a = externalDataSourceName,
- "location"_a = GetEnv("S3_ENDPOINT") + "/" + bucket + "/",
+ "location"_a = GetBucketLocation(bucket),
"ydb_table"_a = ydbTable
);
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
@@ -328,7 +424,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr.GetDriver());
UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecStatus, EExecStatus::Completed);
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Metadata().ExecutionId, 0).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
TResultSetParser resultSet(results.ExtractResultSet());
@@ -374,7 +470,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
);)",
"external_source"_a = externalDataSourceName,
"external_table"_a = externalTableName,
- "location"_a = GetEnv("S3_ENDPOINT") + "/" + bucket + "/",
+ "location"_a = GetBucketLocation(bucket),
"object"_a = object
);
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
@@ -392,7 +488,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr.GetDriver());
UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecStatus, EExecStatus::Completed);
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Metadata().ExecutionId, 0).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
TResultSetParser resultSet(results.ExtractResultSet());
@@ -434,7 +530,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
);
)",
"external_source"_a = externalDataSourceName,
- "location"_a = GetEnv("S3_ENDPOINT") + "/" + bucket + "/",
+ "location"_a = GetBucketLocation(bucket),
"ydb_table"_a = ydbTable
);
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
@@ -471,7 +567,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr.GetDriver());
UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecStatus, EExecStatus::Completed);
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Metadata().ExecutionId, 0).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
TResultSetParser resultSet(results.ExtractResultSet());
@@ -524,7 +620,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr.GetDriver());
UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecStatus, EExecStatus::Completed);
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Metadata().ExecutionId, 0).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
TResultSetParser resultSet(results.ExtractResultSet());
@@ -596,7 +692,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr.GetDriver());
TFetchScriptResultsResult results(TStatus(EStatus::SUCCESS, {}));
if (readyOp.Metadata().ExecStatus == EExecStatus::Completed) {
- results = db.FetchScriptResults(scriptExecutionOperation.Metadata().ExecutionId, 0).ExtractValueSync();
+ results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
}
return {readyOp, results};
@@ -653,6 +749,224 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
}
}
+ Y_UNIT_TEST(InsertIntoBucket) {
+ using namespace fmt::literals;
+ const TString readDataSourceName = "/Root/read_data_source";
+ const TString readTableName = "/Root/read_binding";
+ const TString readBucket = "test_bucket_read";
+ const TString readObject = "test_object_read";
+ const TString writeDataSourceName = "/Root/write_data_source";
+ const TString writeTableName = "/Root/write_binding";
+ const TString writeBucket = "test_bucket_write";
+ const TString writeObject = "test_object_write/";
+
+ {
+ Aws::S3::S3Client s3Client = MakeS3Client();
+ CreateBucketWithObject(readBucket, readObject, TEST_CONTENT, s3Client);
+ CreateBucket(writeBucket, s3Client);
+ }
+
+ auto kikimr = DefaultKikimrRunner();
+ kikimr.GetTestServer().GetRuntime()->GetAppData(0).FeatureFlags.SetEnableExternalDataSources(true);
+
+ auto tc = kikimr.GetTableClient();
+ auto session = tc.CreateSession().GetValueSync().GetSession();
+ const TString query = fmt::format(R"(
+ CREATE EXTERNAL DATA SOURCE `{read_source}` WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="{read_location}",
+ AUTH_METHOD="NONE"
+ );
+ CREATE EXTERNAL TABLE `{read_table}` (
+ key Utf8 NOT NULL,
+ value Utf8 NOT NULL
+ ) WITH (
+ DATA_SOURCE="{read_source}",
+ LOCATION="{read_object}",
+ FORMAT="json_each_row"
+ );
+
+ CREATE EXTERNAL DATA SOURCE `{write_source}` WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="{write_location}",
+ AUTH_METHOD="NONE"
+ );
+ CREATE EXTERNAL TABLE `{write_table}` (
+ key Utf8 NOT NULL,
+ value Utf8 NOT NULL
+ ) WITH (
+ DATA_SOURCE="{write_source}",
+ LOCATION="{write_object}",
+ FORMAT="tsv_with_names"
+ );
+ )",
+ "read_source"_a = readDataSourceName,
+ "read_table"_a = readTableName,
+ "read_location"_a = GetBucketLocation(readBucket),
+ "read_object"_a = readObject,
+ "write_source"_a = writeDataSourceName,
+ "write_table"_a = writeTableName,
+ "write_location"_a = GetBucketLocation(writeBucket),
+ "write_object"_a = writeObject
+ );
+ auto result = session.ExecuteSchemeQuery(query).GetValueSync();
+ UNIT_ASSERT_C(result.GetStatus() == NYdb::EStatus::SUCCESS, result.GetIssues().ToString());
+
+ const TString sql = fmt::format(R"(
+ INSERT INTO `{write_table}`
+ SELECT * FROM `{read_table}`
+ )",
+ "read_table"_a=readTableName,
+ "write_table"_a = writeTableName);
+
+ auto db = kikimr.GetQueryClient();
+ auto resultFuture = db.ExecuteQuery(sql, NYdb::NQuery::TTxControl::BeginTx().CommitTx());
+ resultFuture.Wait();
+ UNIT_ASSERT_C(resultFuture.GetValueSync().IsSuccess(), resultFuture.GetValueSync().GetIssues().ToString());
+
+ TString content = GetAllObjects(writeBucket);
+ UNIT_ASSERT_STRING_CONTAINS(content, "key\tvalue\n"); // tsv header
+ UNIT_ASSERT_STRING_CONTAINS(content, "1\ttrololo\n");
+ UNIT_ASSERT_STRING_CONTAINS(content, "2\thello world\n");
+ }
+
+ Y_UNIT_TEST(JoinTwoSources) {
+ using namespace fmt::literals;
+ const TString dataSource = "/Root/data_source";
+ const TString bucket = "test_bucket_mixed";
+ const TString dataTable = "/Root/data";
+ const TString dataObject = "data";
+ const TString keysTable = "/Root/keys";
+ const TString keysObject = "keys";
+
+ {
+ Aws::S3::S3Client s3Client = MakeS3Client();
+ CreateBucket(bucket, s3Client);
+ UploadObject(bucket, dataObject, TEST_CONTENT, s3Client);
+ UploadObject(bucket, keysObject, TEST_CONTENT_KEYS, s3Client);
+ }
+
+ auto kikimr = DefaultKikimrRunner();
+ kikimr.GetTestServer().GetRuntime()->GetAppData(0).FeatureFlags.SetEnableExternalDataSources(true);
+
+ auto tc = kikimr.GetTableClient();
+ auto session = tc.CreateSession().GetValueSync().GetSession();
+ const TString query = fmt::format(R"(
+ CREATE EXTERNAL DATA SOURCE `{data_source}` WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="{bucket_location}",
+ AUTH_METHOD="NONE"
+ );
+
+ CREATE EXTERNAL TABLE `{data_table}` (
+ key Utf8 NOT NULL,
+ value Utf8 NOT NULL
+ ) WITH (
+ DATA_SOURCE="{data_source}",
+ LOCATION="{data_object}",
+ FORMAT="json_each_row"
+ );
+
+ CREATE EXTERNAL TABLE `{keys_table}` (
+ key Utf8 NOT NULL
+ ) WITH (
+ DATA_SOURCE="{data_source}",
+ LOCATION="{keys_object}",
+ FORMAT="json_each_row"
+ );
+ )",
+ "data_source"_a = dataSource,
+ "bucket_location"_a = GetBucketLocation(bucket),
+ "data_table"_a = dataTable,
+ "data_object"_a = dataObject,
+ "keys_table"_a = keysTable,
+ "keys_object"_a = keysObject
+ );
+ auto schemeQueryesult = session.ExecuteSchemeQuery(query).GetValueSync();
+ UNIT_ASSERT_C(schemeQueryesult.GetStatus() == NYdb::EStatus::SUCCESS, schemeQueryesult.GetIssues().ToString());
+
+ const TString sql = fmt::format(R"(
+ SELECT * FROM `{data_table}`
+ WHERE key IN (
+ SELECT key FROM `{keys_table}`
+ )
+ )",
+ "data_table"_a = dataTable,
+ "keys_table"_a = keysTable);
+
+ auto db = kikimr.GetQueryClient();
+ auto resultFuture = db.ExecuteQuery(sql, NYdb::NQuery::TTxControl::BeginTx().CommitTx());
+ resultFuture.Wait();
+ UNIT_ASSERT_C(resultFuture.GetValueSync().IsSuccess(), resultFuture.GetValueSync().GetIssues().ToString());
+ auto result = resultFuture.GetValueSync().GetResultSetParser(0);
+ UNIT_ASSERT_VALUES_EQUAL(result.RowsCount(), 1);
+ UNIT_ASSERT(result.TryNextRow());
+ UNIT_ASSERT_VALUES_EQUAL(result.ColumnParser("key").GetUtf8(), "1");
+ UNIT_ASSERT_VALUES_EQUAL(result.ColumnParser("value").GetUtf8(), "trololo");
+ UNIT_ASSERT(!result.TryNextRow());
+ }
+
+ Y_UNIT_TEST(ExecuteScriptWithExternalTableResolveCheckPartitionedBy) {
+ using namespace fmt::literals;
+ const TString externalDataSourceName = "/Root/external_data_source";
+ const TString externalTableName = "/Root/test_binding_resolve";
+ const TString bucket = "test_bucket1";
+ const TString object = "year=1/month=2/test_object";
+ const TString content = "data,year,month\ntest,1,2";
+
+ CreateBucketWithObject(bucket, object, content);
+
+ auto kikimr = DefaultKikimrRunner();
+ kikimr.GetTestServer().GetRuntime()->GetAppData(0).FeatureFlags.SetEnableExternalDataSources(true);
+
+ auto tc = kikimr.GetTableClient();
+ auto session = tc.CreateSession().GetValueSync().GetSession();
+ const TString query = fmt::format(R"(
+ CREATE EXTERNAL DATA SOURCE `{external_source}` WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="{location}",
+ AUTH_METHOD="NONE"
+ );
+ CREATE EXTERNAL TABLE `{external_table}` (
+ data STRING NOT NULL,
+ year UINT32 NOT NULL,
+ month UINT32 NOT NULL
+ ) WITH (
+ DATA_SOURCE="{external_source}",
+ LOCATION="/",
+ FORMAT="csv_with_names",
+ PARTITIONED_BY="[year, month]"
+ );)",
+ "external_source"_a = externalDataSourceName,
+ "external_table"_a = externalTableName,
+ "location"_a = GetBucketLocation(bucket)
+ );
+
+ auto result = session.ExecuteSchemeQuery(query).GetValueSync();
+ UNIT_ASSERT_C(result.GetStatus() == NYdb::EStatus::SUCCESS, result.GetIssues().ToString());
+
+ auto db = kikimr.GetQueryClient();
+ const TString sql = fmt::format(R"(
+ SELECT * FROM `{external_table}`
+ )", "external_table"_a = externalTableName);
+
+ auto scriptExecutionOperation = db.ExecuteScript(sql).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(scriptExecutionOperation.Status().GetStatus(), EStatus::SUCCESS, scriptExecutionOperation.Status().GetIssues().ToString());
+
+ NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr.GetDriver());
+ UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecStatus, EExecStatus::Completed);
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
+ UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
+
+ TResultSetParser resultSet(results.ExtractResultSet());
+ UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnsCount(), 3);
+ UNIT_ASSERT_VALUES_EQUAL(resultSet.RowsCount(), 1);
+
+ UNIT_ASSERT(resultSet.TryNextRow());
+ UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser("data").GetString(), "test");
+ UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser("year").GetUint32(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser("month").GetUint32(), 2);
+ }
}
} // namespace NKqp
diff --git a/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp b/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp
index 627939bf81..a99b97ae4d 100644
--- a/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp
+++ b/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp
@@ -986,7 +986,18 @@ Y_UNIT_TEST_SUITE(KqpIndexes) {
{
auto result = session.DescribeTable("/Root/TestTable/Index/indexImplTable").ExtractValueSync();
- UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), NYdb::EStatus::SCHEME_ERROR);
+ UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), NYdb::EStatus::SUCCESS);
+
+ const THashMap<std::string_view, std::string_view> columnTypes = {
+ {"Key", "String?"},
+ {"Index2", "String?"}
+ };
+
+ const auto& columns = result.GetTableDescription().GetTableColumns();
+ UNIT_ASSERT_VALUES_EQUAL(columns.size(), columnTypes.size());
+ for (const auto& column : columns) {
+ UNIT_ASSERT_VALUES_EQUAL_C(column.Type.ToString(), columnTypes.at(column.Name), column.Name);
+ }
}
{
@@ -1306,10 +1317,14 @@ Y_UNIT_TEST_SUITE(KqpIndexes) {
}
}
- Y_UNIT_TEST(SecondaryIndexOrderBy) {
+ Y_UNIT_TEST_TWIN(SecondaryIndexOrderBy, SourceRead) {
auto setting = NKikimrKqp::TKqpSetting();
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(SourceRead);
auto serverSettings = TKikimrSettings()
- .SetKqpSettings({setting});
+ .SetKqpSettings({setting})
+ .SetAppConfig(appConfig);
+
TKikimrRunner kikimr(serverSettings);
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
@@ -1507,7 +1522,7 @@ Y_UNIT_TEST_SUITE(KqpIndexes) {
query)
.ExtractValueSync();
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::SUCCESS);
- UNIT_ASSERT_C(result.GetAst().Contains("('\"ItemsLimit\""), result.GetAst());
+ UNIT_ASSERT_C(result.GetAst().Contains("('\"ItemsLimit\"") || SourceRead, result.GetAst());
UNIT_ASSERT_C(!result.GetAst().Contains("'('\"Reverse\")"), result.GetAst());
}
@@ -1533,7 +1548,7 @@ Y_UNIT_TEST_SUITE(KqpIndexes) {
query)
.ExtractValueSync();
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::SUCCESS);
- UNIT_ASSERT_C(result.GetAst().Contains("('\"ItemsLimit\""), result.GetAst());
+ UNIT_ASSERT_C(result.GetAst().Contains("('\"ItemsLimit\"") || SourceRead, result.GetAst());
UNIT_ASSERT_C(!result.GetAst().Contains("'('\"Reverse\")"), result.GetAst());
}
@@ -1560,7 +1575,7 @@ Y_UNIT_TEST_SUITE(KqpIndexes) {
query)
.ExtractValueSync();
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::SUCCESS);
- UNIT_ASSERT_C(result.GetAst().Contains("('\"ItemsLimit\""), result.GetAst());
+ UNIT_ASSERT_C(result.GetAst().Contains("('\"ItemsLimit\"") || SourceRead, result.GetAst());
UNIT_ASSERT_C(!result.GetAst().Contains("'('\"Reverse\")"), result.GetAst());
}
@@ -1602,10 +1617,13 @@ Y_UNIT_TEST_SUITE(KqpIndexes) {
}
}
- Y_UNIT_TEST(SecondaryIndexOrderBy2) {
+ Y_UNIT_TEST_TWIN(SecondaryIndexOrderBy2, SourceRead) {
auto setting = NKikimrKqp::TKqpSetting();
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(SourceRead);
auto serverSettings = TKikimrSettings()
- .SetKqpSettings({setting});
+ .SetKqpSettings({setting})
+ .SetAppConfig(appConfig);
TKikimrRunner kikimr(serverSettings);
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
@@ -1705,7 +1723,7 @@ Y_UNIT_TEST_SUITE(KqpIndexes) {
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString().c_str());
- UNIT_ASSERT_C(result.GetAst().Contains("'('\"ItemsLimit"), result.GetAst());
+ UNIT_ASSERT_C(result.GetAst().Contains("'('\"ItemsLimit") || SourceRead, result.GetAst());
UNIT_ASSERT_C(result.GetAst().Contains("'('\"Reverse\")"), result.GetAst());
}
@@ -1752,7 +1770,7 @@ Y_UNIT_TEST_SUITE(KqpIndexes) {
.ExtractValueSync();
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString().c_str());
- UNIT_ASSERT_C(result.GetAst().Contains("'('\"ItemsLimit"), result.GetAst());
+ UNIT_ASSERT_C(result.GetAst().Contains("'('\"ItemsLimit") || SourceRead, result.GetAst());
UNIT_ASSERT_C(result.GetAst().Contains("'('\"Reverse\")"), result.GetAst());
}
@@ -3153,9 +3171,12 @@ R"([[#;#;["Primary1"];[41u]];[["Secondary2"];[2u];["Primary2"];[42u]];[["Seconda
}
Y_UNIT_TEST(MultipleModifications) {
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpImmediateEffects(true);
auto setting = NKikimrKqp::TKqpSetting();
auto serverSettings = TKikimrSettings()
- .SetKqpSettings({setting});
+ .SetKqpSettings({setting})
+ .SetAppConfig(appConfig);
TKikimrRunner kikimr(serverSettings);
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
diff --git a/ydb/core/kqp/ut/opt/kqp_kv_ut.cpp b/ydb/core/kqp/ut/opt/kqp_kv_ut.cpp
index ae5482aae0..161efb88fa 100644
--- a/ydb/core/kqp/ut/opt/kqp_kv_ut.cpp
+++ b/ydb/core/kqp/ut/opt/kqp_kv_ut.cpp
@@ -12,7 +12,7 @@ extern "C" {
#include "catalog/pg_type_d.h"
}
-namespace
+namespace
{
using namespace NYdb;
@@ -42,7 +42,7 @@ void ValidateSinglePgRowResult(T& result, const TString& columnName, const TPgVa
while( parser.TryNextRow()) {
gotRows = true;
auto& col = parser.ColumnParser(columnName);
-
+
const auto pgValue = col.GetPg();
UNIT_ASSERT_VALUES_EQUAL(pgValue.Content_, expectedValue.Content_);
UNIT_ASSERT_VALUES_EQUAL(pgValue.Kind_, expectedValue.Kind_);
@@ -62,7 +62,7 @@ using namespace NYdb::NTable;
Y_UNIT_TEST_SUITE(KqpKv) {
Y_UNIT_TEST(BulkUpsert) {
auto settings = TKikimrSettings()
- .SetWithSampleTables(true);
+ .SetWithSampleTables(false);
auto kikimr = TKikimrRunner{settings};
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
@@ -107,7 +107,7 @@ Y_UNIT_TEST_SUITE(KqpKv) {
Y_UNIT_TEST(ReadRows_SpecificKey) {
auto settings = TKikimrSettings()
- .SetWithSampleTables(true);
+ .SetWithSampleTables(false);
auto kikimr = TKikimrRunner{settings};
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
@@ -147,6 +147,7 @@ Y_UNIT_TEST_SUITE(KqpKv) {
}
keys.EndList();
auto selectResult = db.ReadRows("/Root/TestTable", keys.Build()).GetValueSync();
+ Cerr << "IsSuccess(): " << selectResult.IsSuccess() << " GetStatus(): " << selectResult.GetStatus() << Endl;
UNIT_ASSERT_C(selectResult.IsSuccess(), selectResult.GetIssues().ToString());
auto res = FormatResultSetYson(selectResult.GetResultSet());
CompareYson(R"(
@@ -160,9 +161,119 @@ Y_UNIT_TEST_SUITE(KqpKv) {
)", res);
}
+ Y_UNIT_TEST(ReadRows_UnknownTable) {
+ auto settings = TKikimrSettings()
+ .SetWithSampleTables(false);
+ auto kikimr = TKikimrRunner{settings};
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ auto schemeResult = session.ExecuteSchemeQuery(R"(
+ CREATE TABLE TestTable (
+ Key Uint64,
+ Data Uint32,
+ Value Utf8,
+ PRIMARY KEY (Key)
+ );
+ )").GetValueSync();
+ UNIT_ASSERT_C(schemeResult.IsSuccess(), schemeResult.GetIssues().ToString());
+
+ NYdb::TValueBuilder keys;
+ keys.BeginList();
+ for (size_t i = 0; i < 5; ++i) {
+ keys.AddListItem()
+ .BeginStruct()
+ .AddMember("Key").Uint64(i * 1921763474923857134ull + 1858343823)
+ .EndStruct();
+ }
+ keys.EndList();
+ auto selectResult = db.ReadRows("/Root/WrongTable", keys.Build()).GetValueSync();
+ UNIT_ASSERT_C(!selectResult.IsSuccess(), selectResult.GetIssues().ToString());
+ UNIT_ASSERT_EQUAL(selectResult.GetStatus(), EStatus::SCHEME_ERROR);
+ auto res = FormatResultSetYson(selectResult.GetResultSet());
+ CompareYson("[]", res);
+ }
+
+ Y_UNIT_TEST(ReadRows_NonExistentKeys) {
+ auto settings = TKikimrSettings()
+ .SetWithSampleTables(false);
+ auto kikimr = TKikimrRunner{settings};
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ auto schemeResult = session.ExecuteSchemeQuery(R"(
+ CREATE TABLE TestTable (
+ Key Uint64,
+ Data Uint32,
+ Value Utf8,
+ PRIMARY KEY (Key)
+ );
+ )").GetValueSync();
+ UNIT_ASSERT_C(schemeResult.IsSuccess(), schemeResult.GetIssues().ToString());
+
+ NYdb::TValueBuilder rows;
+ rows.BeginList();
+ for (size_t i = 0; i < 1000; ++i) {
+ rows.AddListItem()
+ .BeginStruct()
+ .AddMember("Key").Uint64(i + 10)
+ .AddMember("Data").Uint32(i)
+ .AddMember("Value").Utf8("abcde")
+ .EndStruct();
+ }
+ rows.EndList();
+
+ auto upsertResult = db.BulkUpsert("/Root/TestTable", rows.Build()).GetValueSync();
+ UNIT_ASSERT_C(upsertResult.IsSuccess(), upsertResult.GetIssues().ToString());
+
+ {
+ NYdb::TValueBuilder keys;
+ keys.BeginList();
+ // there is no keys with i < 5
+ for (size_t i = 0; i < 5; ++i) {
+ keys.AddListItem()
+ .BeginStruct()
+ .AddMember("Key").Uint64(i)
+ .EndStruct();
+ }
+ keys.EndList();
+
+ auto selectResult = db.ReadRows("/Root/TestTable", keys.Build()).GetValueSync();
+ Cerr << "IsSuccess(): " << selectResult.IsSuccess() << " GetStatus(): " << selectResult.GetStatus() << Endl;
+ UNIT_ASSERT_C(selectResult.IsSuccess(), selectResult.GetIssues().ToString());
+ auto res = FormatResultSetYson(selectResult.GetResultSet());
+ Cerr << res << Endl;
+ CompareYson("[]", res);
+ }
+ {
+ NYdb::TValueBuilder keys;
+ keys.BeginList();
+ // there are no keys with i < 10, but 5 keys with i in [10, 15)
+ for (size_t i = 0; i < 15; ++i) {
+ keys.AddListItem()
+ .BeginStruct()
+ .AddMember("Key").Uint64(i)
+ .EndStruct();
+ }
+ keys.EndList();
+
+ auto selectResult = db.ReadRows("/Root/TestTable", keys.Build()).GetValueSync();
+ Cerr << "IsSuccess(): " << selectResult.IsSuccess() << " GetStatus(): " << selectResult.GetStatus() << Endl;
+ UNIT_ASSERT_C(selectResult.IsSuccess(), selectResult.GetIssues().ToString());
+ auto res = FormatResultSetYson(selectResult.GetResultSet());
+ CompareYson(R"([
+ [10u;0u;"abcde"];
+ [11u;1u;"abcde"];
+ [12u;2u;"abcde"];
+ [13u;3u;"abcde"];
+ [14u;4u;"abcde"]
+ ])", res);
+ }
+ }
+
Y_UNIT_TEST(ReadRows_SpecificReturnValue) {
auto settings = TKikimrSettings()
- .SetWithSampleTables(true);
+ .SetWithSampleTables(false);
auto kikimr = TKikimrRunner{settings};
auto db = kikimr.GetTableClient();
@@ -211,6 +322,7 @@ Y_UNIT_TEST_SUITE(KqpKv) {
keys.EndList();
auto selectResult = db.ReadRows(tableName, keys.Build(), {valueToReturnColumnName_1, valueToReturnColumnName_2}).GetValueSync();
+ Cerr << "IsSuccess(): " << selectResult.IsSuccess() << " GetStatus(): " << selectResult.GetStatus() << Endl;
UNIT_ASSERT_C(selectResult.IsSuccess(), selectResult.GetIssues().ToString());
auto res = FormatResultSetYson(selectResult.GetResultSet());
@@ -270,12 +382,12 @@ Y_UNIT_TEST_SUITE(KqpKv) {
{.TypeId = TIMETZOID, .TypeMod="4", .ValueContent="23:59:59.9999+00"},
{.TypeId = TIMESTAMPOID, .TypeMod="4", .ValueContent="1999-01-01 23:59:59.9999"},
{.TypeId = TIMESTAMPTZOID, .TypeMod="4", .ValueContent="1999-01-01 23:59:59.9999+00"},
- };
+ };
::ReadRowsPgParam readRowsPgNullParam{.TypeId = BOOLOID, .TypeMod={}, .ValueContent=""};
-
+
Y_UNIT_TEST(ReadRows_PgValue) {
auto settings = TKikimrSettings()
- .SetWithSampleTables(true);
+ .SetWithSampleTables(false);
auto kikimr = TKikimrRunner{settings};
auto db = kikimr.GetTableClient();
@@ -300,7 +412,7 @@ Y_UNIT_TEST_SUITE(KqpKv) {
auto result = session.CreateTable(tableName, builder.Build()).GetValueSync();
UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
-
+
const ui64 keyValue = 1;
const TPgValue pgValue(
isNull ? TPgValue::VK_NULL : TPgValue::VK_TEXT,
@@ -345,12 +457,12 @@ Y_UNIT_TEST_SUITE(KqpKv) {
{
{.TypeId = TEXTOID, .TypeMod={}, .ValueContent="i'm a text"},
{.TypeId = BITOID, .TypeMod="4", .ValueContent="0110"},
- };
+ };
::ReadRowsPgParam readRowsPgNullKeyParam{.TypeId = TEXTOID, .TypeMod={}, .ValueContent=""};
-
+
Y_UNIT_TEST(ReadRows_PgKey) {
auto settings = TKikimrSettings()
- .SetWithSampleTables(true);
+ .SetWithSampleTables(false);
auto kikimr = TKikimrRunner{settings};
auto db = kikimr.GetTableClient();
@@ -375,7 +487,7 @@ Y_UNIT_TEST_SUITE(KqpKv) {
auto result = session.CreateTable(tableName, builder.Build()).GetValueSync();
UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
-
+
const TPgValue pgValue(
isNull ? TPgValue::VK_NULL : TPgValue::VK_TEXT,
testParam.ValueContent,
diff --git a/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp b/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp
index 7448bed6f0..ed6774f98f 100644
--- a/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp
+++ b/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp
@@ -3245,8 +3245,13 @@ Y_UNIT_TEST_SUITE(KqpNewEngine) {
CompareYson(R"([[["Value1"]]])", FormatResultSetYson(result.GetResultSet(0)));
}
- Y_UNIT_TEST(PagingNoPredicateExtract) {
- TKikimrRunner kikimr;
+ Y_UNIT_TEST_TWIN(PagingNoPredicateExtract, SourceRead) {
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(SourceRead);
+ auto serverSettings = TKikimrSettings()
+ .SetAppConfig(appConfig);
+
+ TKikimrRunner kikimr{serverSettings};
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
@@ -3287,6 +3292,10 @@ Y_UNIT_TEST_SUITE(KqpNewEngine) {
// Cerr << result.GetPlan() << Endl;
+ if (SourceRead) {
+ return;
+ }
+
NJson::TJsonValue plan;
NJson::ReadJsonTree(result.GetPlan(), &plan, true);
auto reads = plan["tables"][0]["reads"].GetArraySafe();
diff --git a/ydb/core/kqp/ut/opt/kqp_not_null_ut.cpp b/ydb/core/kqp/ut/opt/kqp_not_null_ut.cpp
index 6ddd08b771..9ee24574ed 100644
--- a/ydb/core/kqp/ut/opt/kqp_not_null_ut.cpp
+++ b/ydb/core/kqp/ut/opt/kqp_not_null_ut.cpp
@@ -295,6 +295,7 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) {
auto client = kikimr.GetTableClient();
auto session = client.CreateSession().GetValueSync().GetSession();
+
{
const auto query = Q_(R"(
CREATE TABLE `/Root/TestUpdateNotNullPk` (
@@ -339,7 +340,17 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) {
}
Y_UNIT_TEST(UpdateNotNullPkPg) {
- TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false));
+ auto settings = TKikimrSettings()
+ .SetWithSampleTables(false)
+ .SetEnableNotNullDataColumns(true);
+
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(true);
+ appConfig.MutableTableServiceConfig()->SetEnableKqpScanQuerySourceRead(true);
+ settings.SetAppConfig(appConfig);
+
+ TKikimrRunner kikimr(settings);
+
auto client = kikimr.GetTableClient();
auto session = client.CreateSession().GetValueSync().GetSession();
@@ -568,7 +579,8 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) {
Y_UNIT_TEST(UpsertNotNullPg) {
auto settings = TKikimrSettings()
- .SetWithSampleTables(false);
+ .SetWithSampleTables(false)
+ .SetEnableNotNullDataColumns(true);
TKikimrRunner kikimr(settings);
auto client = kikimr.GetTableClient();
@@ -651,7 +663,8 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) {
Y_UNIT_TEST(ReplaceNotNullPg) {
auto settings = TKikimrSettings()
- .SetWithSampleTables(false);
+ .SetWithSampleTables(false)
+ .SetEnableNotNullDataColumns(true);
TKikimrRunner kikimr(settings);
auto client = kikimr.GetTableClient();
@@ -746,7 +759,13 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) {
Y_UNIT_TEST(UpdateNotNullPg) {
auto settings = TKikimrSettings()
- .SetWithSampleTables(false);
+ .SetWithSampleTables(false)
+ .SetEnableNotNullDataColumns(true);
+
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(true);
+ appConfig.MutableTableServiceConfig()->SetEnableKqpScanQuerySourceRead(true);
+ settings.SetAppConfig(appConfig);
TKikimrRunner kikimr(settings);
auto client = kikimr.GetTableClient();
@@ -1262,6 +1281,11 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) {
.SetWithSampleTables(false)
.SetEnableNotNullDataColumns(true);
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(true);
+ appConfig.MutableTableServiceConfig()->SetEnableKqpScanQuerySourceRead(true);
+ settings.SetAppConfig(appConfig);
+
TKikimrRunner kikimr(settings);
auto client = kikimr.GetTableClient();
auto session = client.CreateSession().GetValueSync().GetSession();
diff --git a/ydb/core/kqp/ut/opt/kqp_ranges_ut.cpp b/ydb/core/kqp/ut/opt/kqp_ranges_ut.cpp
index 774f44c7f6..0b74d137d4 100644
--- a/ydb/core/kqp/ut/opt/kqp_ranges_ut.cpp
+++ b/ydb/core/kqp/ut/opt/kqp_ranges_ut.cpp
@@ -654,7 +654,7 @@ Y_UNIT_TEST_SUITE(KqpRanges) {
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access().size(), 1);
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).name(), "/Root/MultiShardTable");
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).reads().rows(), 1);
- UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).partitions_count(), 2);
+ UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).partitions_count(), 1);
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(1).affected_shards(), 1);
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(1).table_access().size(), 1);
@@ -1055,7 +1055,7 @@ Y_UNIT_TEST_SUITE(KqpRanges) {
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).reads().rows(), 3);
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).updates().rows(), 0);
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).deletes().rows(), 0);
- UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).partitions_count(), 3);
+ UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).partitions_count(), 1);
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(1).affected_shards(), 1);
UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(1).table_access().size(), 1);
diff --git a/ydb/core/kqp/ut/opt/kqp_sort_ut.cpp b/ydb/core/kqp/ut/opt/kqp_sort_ut.cpp
index 18c3cc235b..59a04a4cd7 100644
--- a/ydb/core/kqp/ut/opt/kqp_sort_ut.cpp
+++ b/ydb/core/kqp/ut/opt/kqp_sort_ut.cpp
@@ -64,6 +64,9 @@ Y_UNIT_TEST_SUITE(KqpSort) {
if (!node.IsDefined()) {
node = FindPlanNodeByKv(plan, "Node Type", "Filter-TableRangeScan"); // without `Sort`
}
+ if (!node.IsDefined()) {
+ node = FindPlanNodeByKv(plan, "Node Type", "Limit-TableRangeScan"); // without `Sort`
+ }
UNIT_ASSERT_C(node.IsDefined(), result.GetPlan());
auto read = FindPlanNodeByKv(node, "Name", "TableRangeScan");
UNIT_ASSERT(read.IsDefined());
@@ -174,6 +177,9 @@ Y_UNIT_TEST_SUITE(KqpSort) {
if (!node.IsDefined()) {
node = FindPlanNodeByKv(plan, "Node Type", "Filter-TableRangeScan");
}
+ if (!node.IsDefined()) {
+ node = FindPlanNodeByKv(plan, "Node Type", "Limit-TableRangeScan");
+ }
UNIT_ASSERT_C(node.IsDefined(), result.GetPlan());
auto read = FindPlanNodeByKv(node, "Name", "TableRangeScan");
UNIT_ASSERT(read.IsDefined());
@@ -231,8 +237,13 @@ Y_UNIT_TEST_SUITE(KqpSort) {
}
}
- Y_UNIT_TEST(ReverseRangeLimitOptimized) {
- TKikimrRunner kikimr;
+ Y_UNIT_TEST_TWIN(ReverseRangeLimitOptimized, SourceRead) {
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(SourceRead);
+ auto serverSettings = TKikimrSettings()
+ .SetAppConfig(appConfig);
+
+ TKikimrRunner kikimr{serverSettings};
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
@@ -256,6 +267,9 @@ Y_UNIT_TEST_SUITE(KqpSort) {
if (!node.IsDefined()) {
node = FindPlanNodeByKv(plan, "Node Type", "Filter-TableRangeScan");
}
+ if (!node.IsDefined()) {
+ node = FindPlanNodeByKv(plan, "Node Type", "Limit-TableRangeScan");
+ }
UNIT_ASSERT_C(node.IsDefined(), result.GetPlan());
auto read = FindPlanNodeByKv(node, "Name", "TableRangeScan");
UNIT_ASSERT(read.IsDefined());
@@ -267,7 +281,7 @@ Y_UNIT_TEST_SUITE(KqpSort) {
} else {
UNIT_ASSERT(limit.IsDefined());
UNIT_ASSERT(limit.GetMapSafe().contains("Limit"));
- UNIT_ASSERT_C(result.GetAst().Contains("'\"ItemsLimit\""), result.GetAst());
+ UNIT_ASSERT_C(result.GetAst().Contains("'\"ItemsLimit\"") || SourceRead, result.GetAst());
}
}
@@ -439,8 +453,13 @@ Y_UNIT_TEST_SUITE(KqpSort) {
}
}
- Y_UNIT_TEST(TopSortExprPk) {
- TKikimrRunner kikimr;
+ Y_UNIT_TEST_TWIN(TopSortExprPk, SourceRead) {
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(SourceRead);
+ auto serverSettings = TKikimrSettings()
+ .SetAppConfig(appConfig);
+
+ TKikimrRunner kikimr{serverSettings};
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
@@ -460,7 +479,7 @@ Y_UNIT_TEST_SUITE(KqpSort) {
auto result = session.ExplainDataQuery(query).GetValueSync();
result.GetIssues().PrintTo(Cerr);
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::SUCCESS);
- UNIT_ASSERT_C(result.GetAst().Contains("ItemsLimit"), result.GetAst());
+ UNIT_ASSERT_C(result.GetAst().Contains("ItemsLimit") || SourceRead, result.GetAst());
}
{
@@ -1139,8 +1158,13 @@ Y_UNIT_TEST_SUITE(KqpSort) {
])", FormatResultSetYson(result.GetResultSet(2)));
}
- Y_UNIT_TEST(UnionAllSortLimit) {
- TKikimrRunner kikimr;
+ Y_UNIT_TEST_TWIN(UnionAllSortLimit, SourceRead) {
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(SourceRead);
+ auto serverSettings = TKikimrSettings()
+ .SetAppConfig(appConfig);
+
+ TKikimrRunner kikimr{serverSettings};
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
@@ -1159,6 +1183,10 @@ Y_UNIT_TEST_SUITE(KqpSort) {
NJson::TJsonValue plan;
NJson::ReadJsonTree(result.GetPlan(), &plan, true);
+ if (SourceRead) {
+ return;
+ }
+
for (auto& read : plan["tables"][0]["reads"].GetArraySafe()) {
UNIT_ASSERT(read.Has("limit"));
UNIT_ASSERT_VALUES_EQUAL(read["limit"], "3");
diff --git a/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp b/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp
index fa580da357..b1a75b50c3 100644
--- a/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp
+++ b/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp
@@ -1341,6 +1341,95 @@ Y_UNIT_TEST_SUITE(KqpPg) {
}
}
+ Y_UNIT_TEST(CreateTableSerialColumns) {
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableSequences(true);
+ TKikimrRunner kikimr(NKqp::TKikimrSettings().SetAppConfig(appConfig).SetWithSampleTables(false).SetEnableNotNullDataColumns(true));
+ auto client = kikimr.GetTableClient();
+ auto session = client.CreateSession().GetValueSync().GetSession();
+ {
+ const auto query = Q_(R"(
+ --!syntax_pg
+ CREATE TABLE PgSerial (
+ key serial PRIMARY KEY,
+ value int2
+ ))");
+
+ auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ }
+
+ {
+ const auto query = Q_(R"(
+ --!syntax_pg
+ INSERT INTO PgSerial (value) values (101::int2);
+ )");
+
+ auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ }
+
+ {
+ const auto query = Q_(R"(
+ --!syntax_pg
+ SELECT * FROM PgSerial;
+ )");
+
+ auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+
+ TResultSetParser parser(result.GetResultSetParser(0));
+ ui32 rows = 0;
+ for (size_t i = 0; parser.TryNextRow(); ++i) {
+ auto& c = parser.ColumnParser("key");
+ Cerr << c.GetPg().Content_ << Endl;
+ rows++;
+ }
+
+ UNIT_ASSERT_EQUAL(rows, static_cast<ui32>(1));
+ }
+
+ {
+ const auto query = Q_(R"(
+ --!syntax_pg
+ SELECT * FROM PgSerial WHERE key = 1;
+ )");
+
+ auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+
+ TResultSetParser parser(result.GetResultSetParser(0));
+ ui32 rows = 0;
+ for (size_t i = 0; parser.TryNextRow(); ++i) {
+ auto& c = parser.ColumnParser("key");
+ Cerr << c.GetPg().Content_ << Endl;
+ rows++;
+ }
+
+ UNIT_ASSERT_EQUAL(rows, static_cast<ui32>(1));
+ }
+
+ {
+ const auto query = Q_(R"(
+ --!syntax_pg
+ SELECT * FROM PgSerial WHERE value = 101;
+ )");
+
+ auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+
+ TResultSetParser parser(result.GetResultSetParser(0));
+ ui32 rows = 0;
+ for (size_t i = 0; parser.TryNextRow(); ++i) {
+ auto& c = parser.ColumnParser("key");
+ Cerr << c.GetPg().Content_ << Endl;
+ rows++;
+ }
+
+ UNIT_ASSERT_EQUAL(rows, static_cast<ui32>(1));
+ }
+ }
+
Y_UNIT_TEST(CreateNotNullPgColumn) {
TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false).SetEnableNotNullDataColumns(true));
auto client = kikimr.GetTableClient();
@@ -1556,6 +1645,39 @@ Y_UNIT_TEST_SUITE(KqpPg) {
testType(spec);
}
}
+
+ Y_UNIT_TEST(DeleteWithQueryService) {
+ TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false));
+ auto db = kikimr.GetQueryClient();
+ auto settings = NYdb::NQuery::TExecuteQuerySettings()
+ .Syntax(NYdb::NQuery::ESyntax::Pg);
+ {
+ auto client = kikimr.GetTableClient();
+ auto session = client.CreateSession().GetValueSync().GetSession();
+ const auto query = Q_(R"(
+ --!syntax_pg
+ CREATE TABLE test (
+ key int4 PRIMARY KEY,
+ value int4
+ ))");
+ auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ }
+ {
+ auto result = db.ExecuteQuery(R"(
+ DELETE FROM test;
+ )", NYdb::NQuery::TTxControl::BeginTx().CommitTx(), settings).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+ UNIT_ASSERT_C(result.GetResultSets().empty(), "results are not empty");
+ }
+ {
+ auto result = db.ExecuteQuery(R"(
+ SELECT * FROM test;
+ )", NYdb::NQuery::TTxControl::BeginTx().CommitTx(), settings).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+ CompareYson(R"([])", FormatResultSetYson(result.GetResultSet(0)));
+ }
+ }
}
} // namespace NKqp
diff --git a/ydb/core/kqp/ut/query/kqp_explain_ut.cpp b/ydb/core/kqp/ut/query/kqp_explain_ut.cpp
index c43cc93f12..e1a6d67126 100644
--- a/ydb/core/kqp/ut/query/kqp_explain_ut.cpp
+++ b/ydb/core/kqp/ut/query/kqp_explain_ut.cpp
@@ -496,6 +496,7 @@ Y_UNIT_TEST_SUITE(KqpExplain) {
Y_UNIT_TEST(FewEffects) {
TKikimrSettings settings;
+ settings.AppConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(true);
TKikimrRunner kikimr(settings);
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
diff --git a/ydb/core/kqp/ut/query/kqp_limits_ut.cpp b/ydb/core/kqp/ut/query/kqp_limits_ut.cpp
index ef15c81185..066d08746d 100644
--- a/ydb/core/kqp/ut/query/kqp_limits_ut.cpp
+++ b/ydb/core/kqp/ut/query/kqp_limits_ut.cpp
@@ -553,7 +553,9 @@ Y_UNIT_TEST_SUITE(KqpLimits) {
}
Y_UNIT_TEST(ReplySizeExceeded) {
- auto kikimr = DefaultKikimrRunner();
+ TKikimrSettings settings;
+ settings.AppConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(true);
+ TKikimrRunner kikimr(settings);
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
TKqpCounters counters(kikimr.GetTestServer().GetRuntime()->GetAppData().Counters);
diff --git a/ydb/core/kqp/ut/scan/kqp_scan_ut.cpp b/ydb/core/kqp/ut/scan/kqp_scan_ut.cpp
index 52b8ec45bb..5516f8b9d0 100644
--- a/ydb/core/kqp/ut/scan/kqp_scan_ut.cpp
+++ b/ydb/core/kqp/ut/scan/kqp_scan_ut.cpp
@@ -96,7 +96,13 @@ void CreateNullSampleTables(TKikimrRunner& kikimr) {
Y_UNIT_TEST_SUITE(KqpScan) {
Y_UNIT_TEST(StreamExecuteScanQueryCancelation) {
- TKikimrRunner kikimr;
+ NKikimrConfig::TAppConfig appConfig;
+ // This test expects SourceRead is enabled for ScanQuery
+ appConfig.MutableTableServiceConfig()->SetEnableKqpScanQuerySourceRead(true);
+ auto settings = TKikimrSettings()
+ .SetAppConfig(appConfig);
+ TKikimrRunner kikimr{settings};
+
NKqp::TKqpCounters counters(kikimr.GetTestServer().GetRuntime()->GetAppData().Counters);
NDataShard::gSkipReadIteratorResultFailPoint.Enable(-1);
@@ -115,7 +121,9 @@ Y_UNIT_TEST_SUITE(KqpScan) {
Sleep(TDuration::Seconds(1));
}
- UNIT_ASSERT_C(count, "Unable to wait second session actor (executing compiled program) start");
+ UNIT_ASSERT_C(count,
+ "Unable to wait second session actor (executing compiled program) start, cur count: "
+ << counters.GetActiveSessionActors()->Val());
}
NDataShard::gSkipRepliesFailPoint.Disable();
@@ -1816,6 +1824,100 @@ Y_UNIT_TEST_SUITE(KqpScan) {
}
}
+ Y_UNIT_TEST(SecondaryIndexCustomColumnOrder) {
+ TKikimrRunner kikimr;
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ CreateSampleTablesWithIndex(session);
+
+ { // prepare table
+ auto res = session.ExecuteSchemeQuery(R"(
+ --!syntax_v1
+ CREATE TABLE `/Root/SecondaryKeysCustomOrder` (
+ Key2 Int32,
+ Key1 String,
+ Fk2 Int32,
+ Fk1 String,
+ Value String,
+ PRIMARY KEY (Key2, Key1),
+ INDEX Index GLOBAL ON (Fk2, Fk1)
+ );
+ )").GetValueSync();
+ UNIT_ASSERT_C(res.IsSuccess(), res.GetIssues().ToString());
+
+ auto result = session.ExecuteDataQuery(R"(
+
+ REPLACE INTO `/Root/SecondaryKeysCustomOrder` (Key2, Key1, Fk2, Fk1, Value) VALUES
+ (1u, "One", 1u, "Fk1", "Value1"),
+ (2u, "Two", 2u, "Fk2", "Value2"),
+ (3u, "Three", 3u, "Fk3", Null),
+ (NULL, "Four", 4u, Null, "Value4"),
+ (5u, Null, 5u, "Fk5", "Value5");
+ )", TTxControl::BeginTx().CommitTx()).GetValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ }
+
+ {
+ auto itIndex = db.StreamExecuteScanQuery(R"(
+ SELECT Value, Fk1
+ FROM `/Root/SecondaryKeysCustomOrder` VIEW Index
+ WHERE Fk2 = 2u;
+ )").GetValueSync();
+
+ UNIT_ASSERT_C(itIndex.IsSuccess(), itIndex.GetIssues().ToString());
+ CompareYson(R"([
+ [["Value2"];["Fk2"]]
+ ])", StreamResultToYson(itIndex));
+ }
+
+ {
+ auto itIndex = db.StreamExecuteScanQuery(R"(
+ SELECT Value, Fk1, Key2
+ FROM `/Root/SecondaryKeysCustomOrder` VIEW Index
+ WHERE Fk2 >= 4u AND Fk1 IS NULL;
+ )").GetValueSync();
+
+ UNIT_ASSERT_C(itIndex.IsSuccess(), itIndex.GetIssues().ToString());
+ CompareYson(R"([
+ [["Value4"];#;#]
+ ])", StreamResultToYson(itIndex));
+ }
+
+ {
+ auto itIndex = db.StreamExecuteScanQuery(R"(
+ PRAGMA AnsiInForEmptyOrNullableItemsCollections;
+ SELECT Value, Fk1, Key1
+ FROM `/Root/SecondaryKeysCustomOrder` VIEW Index
+ WHERE (Fk2, Fk1) IN AsList((1u, "Fk1"), (2u, "Fk2"), (5u, "Fk5"))
+ ORDER BY Value;
+ )").GetValueSync();
+
+ UNIT_ASSERT_C(itIndex.IsSuccess(), itIndex.GetIssues().ToString());
+ CompareYson(R"([
+ [["Value1"];["Fk1"];["One"]];
+ [["Value2"];["Fk2"];["Two"]];
+ [["Value5"];["Fk5"];#]
+ ])", StreamResultToYson(itIndex));
+ }
+
+ {
+ auto itIndex = db.StreamExecuteScanQuery(R"(
+ SELECT r.Value, l.Value
+ FROM `/Root/SecondaryKeys` VIEW Index AS l
+ INNER JOIN `/Root/SecondaryKeysCustomOrder` VIEW Index AS r
+ ON l.Fk = r.Fk2 ORDER BY r.Value;
+ )").GetValueSync();
+
+ UNIT_ASSERT_C(itIndex.IsSuccess(), itIndex.GetIssues().ToString());
+ CompareYson(R"([
+ [["Value1"];["Payload1"]];
+ [["Value2"];["Payload2"]];
+ [["Value5"];["Payload5"]]
+ ])", StreamResultToYson(itIndex));
+ }
+ }
+
Y_UNIT_TEST(BoolFlag) {
auto kikimr = DefaultKikimrRunner({}, AppCfg());
diff --git a/ydb/core/kqp/ut/scan/kqp_split_ut.cpp b/ydb/core/kqp/ut/scan/kqp_split_ut.cpp
index a04b3aaf2b..45f9da8e54 100644
--- a/ydb/core/kqp/ut/scan/kqp_split_ut.cpp
+++ b/ydb/core/kqp/ut/scan/kqp_split_ut.cpp
@@ -616,6 +616,25 @@ Y_UNIT_TEST_SUITE(KqpSplit) {
s.AssertSuccess();
UNIT_ASSERT_VALUES_EQUAL(Format(Canonize(s.CollectedKeys, Order)), ",103,302,402,502,703");
}
+
+ Y_UNIT_TEST_SORT(IntersectionLosesRange, Order) {
+ TTestSetup s;
+ auto shards = s.Shards();
+
+ auto* shim = new TReadActorPipeCacheStub();
+ InterceptReadActorPipeCache(s.Runtime->Register(shim));
+ shim->SetupCapture(0, 1);
+ s.SendScanQuery("SELECT Key FROM `/Root/KeyValueLargePartition` where Key = 101 or (Key >= 202 and Key < 200+4) or (Key >= 701 and Key < 704)" + OrderBy(Order));
+ shim->ReadsReceived.WaitI();
+ Cerr << "starting split -----------------------------------------------------------" << Endl;
+ s.Split(shards.at(0), 190);
+ Cerr << "resume evread -----------------------------------------------------------" << Endl;
+ shim->SkipAll();
+ shim->SendCaptured(s.Runtime);
+
+ s.AssertSuccess();
+ UNIT_ASSERT_VALUES_EQUAL(Format(Canonize(s.CollectedKeys, Order)), ",101,202,203,701,702,703");
+ }
}
diff --git a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp
index bfd71fecfa..54b99ddea5 100644
--- a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp
+++ b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp
@@ -3451,6 +3451,142 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
}
}
+ Y_UNIT_TEST(SerialTypeNegative1) {
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableSequences(true);
+ TKikimrRunner kikimr(TKikimrSettings().SetAppConfig(appConfig).SetPQConfig(DefaultPQConfig()));
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ {
+ auto query = R"(
+ --!syntax_v1
+ CREATE TABLE `/Root/SerialTableNeg1` (
+ Key SerialUnknown,
+ Value String,
+ PRIMARY KEY (Key)
+ );
+ )";
+
+ auto result = session.ExecuteSchemeQuery(query).GetValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR,
+ result.GetIssues().ToString());
+ }
+ }
+
+ Y_UNIT_TEST(SerialTypeNegative2) {
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableSequences(true);
+ TKikimrRunner kikimr(TKikimrSettings().SetAppConfig(appConfig).SetPQConfig(DefaultPQConfig()));
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ {
+ auto query = R"(
+ --!syntax_v1
+ CREATE TABLE `/Root/SerialTableNeg2` (
+ Key Uint32,
+ Value Serial,
+ PRIMARY KEY (Key)
+ );
+ )";
+
+ auto result = session.ExecuteSchemeQuery(query).GetValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR,
+ result.GetIssues().ToString());
+ }
+ }
+
+ void TestSerialType(TString serialType) {
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableSequences(true);
+ TKikimrRunner kikimr(TKikimrSettings().SetAppConfig(appConfig).SetPQConfig(DefaultPQConfig()));
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ {
+ auto query = Sprintf(R"(
+ --!syntax_v1
+ CREATE TABLE `/Root/SerialTable%s` (
+ Key %s,
+ Value String,
+ PRIMARY KEY (Key)
+ );
+ )", serialType.c_str(), serialType.c_str());
+
+ auto result = session.ExecuteSchemeQuery(query).GetValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS,
+ result.GetIssues().ToString());
+ }
+
+ {
+ TString query = Sprintf(R"(
+ UPSERT INTO `/Root/SerialTable%s` (Value) VALUES ("New");
+ )", serialType.c_str());
+
+ NYdb::NTable::TExecDataQuerySettings execSettings;
+ execSettings.KeepInQueryCache(true);
+ execSettings.CollectQueryStats(ECollectQueryStatsMode::Basic);
+
+ auto result =
+ session
+ .ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx(),
+ execSettings)
+ .ExtractValueSync();
+
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS,
+ result.GetIssues().ToString());
+ }
+ {
+ TString query = Sprintf(R"(
+ SELECT * FROM `/Root/SerialTable%s`;
+ )", serialType.c_str());
+
+ NYdb::NTable::TExecDataQuerySettings execSettings;
+ execSettings.KeepInQueryCache(true);
+ execSettings.CollectQueryStats(ECollectQueryStatsMode::Basic);
+
+ auto result =
+ session
+ .ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx(),
+ execSettings)
+ .ExtractValueSync();
+
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS,
+ result.GetIssues().ToString());
+ CompareYson(R"(
+ [
+ [[1];["New"]]
+ ]
+ )",
+ NYdb::FormatResultSetYson(result.GetResultSet(0)));
+ }
+ }
+
+ Y_UNIT_TEST(SerialTypeSmallSerial) {
+ TestSerialType("SmallSerial");
+ }
+
+ Y_UNIT_TEST(SerialTypeSerial2) {
+ TestSerialType("serial2");
+ }
+
+ Y_UNIT_TEST(SerialTypeSerial) {
+ TestSerialType("Serial");
+ }
+
+ Y_UNIT_TEST(SerialTypeSerial4) {
+ TestSerialType("Serial4");
+ }
+
+ Y_UNIT_TEST(SerialTypeBigSerial) {
+ TestSerialType("BigSerial");
+ }
+
+ Y_UNIT_TEST(SerialTypeSerial8) {
+ TestSerialType("serial8");
+ }
+
Y_UNIT_TEST(ChangefeedRetentionPeriod) {
using namespace NTopic;
@@ -4303,6 +4439,37 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
UNIT_ASSERT(externalDataSource.ExternalDataSourceInfo->Description.GetAuth().HasNone());
}
+ Y_UNIT_TEST(CreateExternalDataSourceWithSa) {
+ TKikimrRunner kikimr;
+ kikimr.GetTestServer().GetRuntime()->GetAppData(0).FeatureFlags.SetEnableExternalDataSources(true);
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+ TString externalDataSourceName = "/Root/ExternalDataSource";
+ auto query = TStringBuilder() << R"(
+ CREATE EXTERNAL DATA SOURCE `)" << externalDataSourceName << R"(` WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="my-bucket",
+ AUTH_METHOD="SERVICE_ACCOUNT",
+ SERVICE_ACCOUNT_ID="mysa",
+ SERVICE_ACCOUNT_SECRET_NAME="mysasignature"
+ );)";
+ auto result = session.ExecuteSchemeQuery(query).GetValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+
+ auto& runtime = *kikimr.GetTestServer().GetRuntime();
+ auto externalDataSourceDesc = Navigate(runtime, runtime.AllocateEdgeActor(), externalDataSourceName, NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
+ const auto& externalDataSource = externalDataSourceDesc->ResultSet.at(0);
+ UNIT_ASSERT_EQUAL(externalDataSource.Kind, NSchemeCache::TSchemeCacheNavigate::EKind::KindExternalDataSource);
+ UNIT_ASSERT(externalDataSource.ExternalDataSourceInfo);
+ UNIT_ASSERT_VALUES_EQUAL(externalDataSource.ExternalDataSourceInfo->Description.GetSourceType(), "ObjectStorage");
+ UNIT_ASSERT_VALUES_EQUAL(externalDataSource.ExternalDataSourceInfo->Description.GetInstallation(), "");
+ UNIT_ASSERT_VALUES_EQUAL(externalDataSource.ExternalDataSourceInfo->Description.GetLocation(), "my-bucket");
+ UNIT_ASSERT_VALUES_EQUAL(externalDataSource.ExternalDataSourceInfo->Description.GetName(), SplitPath(externalDataSourceName).back());
+ UNIT_ASSERT(externalDataSource.ExternalDataSourceInfo->Description.GetAuth().HasServiceAccount());
+ UNIT_ASSERT_VALUES_EQUAL(externalDataSource.ExternalDataSourceInfo->Description.GetAuth().GetServiceAccount().GetId(), "mysa");
+ UNIT_ASSERT_VALUES_EQUAL(externalDataSource.ExternalDataSourceInfo->Description.GetAuth().GetServiceAccount().GetSecretName(), "mysasignature");
+ }
+
Y_UNIT_TEST(DisableCreateExternalDataSource) {
TKikimrRunner kikimr;
auto db = kikimr.GetTableClient();
@@ -4315,7 +4482,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
AUTH_METHOD="NONE"
);)";
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
- UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::INTERNAL_ERROR);
+ UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "External data sources are disabled. Please contact your system administrator to enable it");
}
@@ -4333,7 +4500,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
);)";
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
- UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Authorization method not specified");
+ UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Unknown AUTH_METHOD = UNKNOWN");
}
Y_UNIT_TEST(DropExternalDataSource) {
@@ -4874,11 +5041,8 @@ namespace {
void ReadData(const TString& query, const TString& expected, const EStatus opStatus = EStatus::SUCCESS) {
auto it = TableClient.StreamExecuteScanQuery(query).GetValueSync();
- UNIT_ASSERT_VALUES_EQUAL_C(it.GetStatus(), opStatus, it.GetIssues().ToString());
- const TString result = StreamResultToYson(it, false, opStatus);
- Cerr << "STATUS: " << opStatus << Endl <<
- "QUERY: " << query << Endl <<
- result << " vs " << expected << Endl;
+ UNIT_ASSERT_VALUES_EQUAL_C(it.GetStatus(), EStatus::SUCCESS, it.GetIssues().ToString()); // Means stream successfully get
+ TString result = StreamResultToYson(it, false, opStatus);
if (opStatus == EStatus::SUCCESS) {
UNIT_ASSERT_NO_DIFF(ReformatYson(result), ReformatYson(expected));
}
@@ -4906,7 +5070,6 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
Y_UNIT_TEST(AddColumnLongPk) {
TKikimrSettings runnerSettings;
runnerSettings.WithSampleTables = false;
- runnerSettings.FeatureFlags.SetForceColumnTablesCompositeMarks(false);
TTestHelper testHelper(runnerSettings);
TVector<TTestHelper::TColumnSchema> schema = {
@@ -5024,6 +5187,58 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
}
}
+ Y_UNIT_TEST(TtlRunInterval) {
+ TKikimrRunner kikimr;
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().ExtractValueSync().GetSession();
+
+ const auto ttl = TTtlSettings("Ts", TDuration::Zero())
+ .SetRunInterval(TDuration::Minutes(30));
+
+ // create with ttl
+ {
+ auto result = session.CreateTable("/Root/table", TTableBuilder()
+ .AddNullableColumn("Key", EPrimitiveType::Uint64)
+ .AddNullableColumn("Ts", EPrimitiveType::Timestamp)
+ .SetPrimaryKeyColumn("Key")
+ .SetTtlSettings(ttl)
+ .Build()
+ ).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+ }
+
+ {
+ auto result = session.DescribeTable("/Root/table").ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ UNIT_ASSERT_VALUES_EQUAL(result.GetTableDescription().GetTtlSettings()->GetRunInterval(), ttl.GetRunInterval());
+ }
+
+ {
+ auto result = session.AlterTable("/Root/table", TAlterTableSettings()
+ .BeginAlterTtlSettings()
+ .Drop()
+ .EndAlterTtlSettings()
+ ).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+ }
+
+ // alter table set ttl
+ {
+ auto result = session.AlterTable("/Root/table", TAlterTableSettings()
+ .BeginAlterTtlSettings()
+ .Set(ttl)
+ .EndAlterTtlSettings()
+ ).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+ }
+
+ {
+ auto result = session.DescribeTable("/Root/table").ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ UNIT_ASSERT_VALUES_EQUAL(result.GetTableDescription().GetTtlSettings()->GetRunInterval(), ttl.GetRunInterval());
+ }
+ }
+
Y_UNIT_TEST(AddColumn) {
TKikimrSettings runnerSettings;
runnerSettings.WithSampleTables = false;
diff --git a/ydb/core/kqp/ut/service/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/service/CMakeLists.darwin-x86_64.txt
index ac0ed13bd7..ce01e6c4d2 100644
--- a/ydb/core/kqp/ut/service/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kqp/ut/service/CMakeLists.darwin-x86_64.txt
@@ -24,6 +24,7 @@ target_link_libraries(ydb-core-kqp-ut-service PUBLIC
kqp-ut-common
yql-sql-pg
yql-parser-pg_wrapper
+ public-lib-ut_helpers
cpp-client-ydb_operation
client-ydb_types-operation
)
diff --git a/ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt
index 1198c83320..7bec8b6702 100644
--- a/ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt
@@ -24,6 +24,7 @@ target_link_libraries(ydb-core-kqp-ut-service PUBLIC
kqp-ut-common
yql-sql-pg
yql-parser-pg_wrapper
+ public-lib-ut_helpers
cpp-client-ydb_operation
client-ydb_types-operation
)
diff --git a/ydb/core/kqp/ut/service/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/service/CMakeLists.linux-x86_64.txt
index 457477a5d6..6850a1fbd8 100644
--- a/ydb/core/kqp/ut/service/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kqp/ut/service/CMakeLists.linux-x86_64.txt
@@ -25,6 +25,7 @@ target_link_libraries(ydb-core-kqp-ut-service PUBLIC
kqp-ut-common
yql-sql-pg
yql-parser-pg_wrapper
+ public-lib-ut_helpers
cpp-client-ydb_operation
client-ydb_types-operation
)
diff --git a/ydb/core/kqp/ut/service/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/service/CMakeLists.windows-x86_64.txt
index 10ef8e0ce5..e8ea424062 100644
--- a/ydb/core/kqp/ut/service/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kqp/ut/service/CMakeLists.windows-x86_64.txt
@@ -24,6 +24,7 @@ target_link_libraries(ydb-core-kqp-ut-service PUBLIC
kqp-ut-common
yql-sql-pg
yql-parser-pg_wrapper
+ public-lib-ut_helpers
cpp-client-ydb_operation
client-ydb_types-operation
)
diff --git a/ydb/core/kqp/ut/service/kqp_query_service_ut.cpp b/ydb/core/kqp/ut/service/kqp_query_service_ut.cpp
index 550ca5c8c8..8e85a2381b 100644
--- a/ydb/core/kqp/ut/service/kqp_query_service_ut.cpp
+++ b/ydb/core/kqp/ut/service/kqp_query_service_ut.cpp
@@ -1,9 +1,12 @@
#include <ydb/core/kqp/counters/kqp_counters.h>
#include <ydb/core/kqp/ut/common/kqp_ut_common.h>
+#include <ydb/public/lib/ut_helpers/ut_helpers_query.h>
#include <ydb/public/sdk/cpp/client/ydb_operation/operation.h>
#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
#include <ydb/public/sdk/cpp/client/ydb_types/operation/operation.h>
+#include <ydb/core/kqp/counters/kqp_counters.h>
+
namespace NKikimr {
namespace NKqp {
@@ -11,6 +14,74 @@ using namespace NYdb;
using namespace NYdb::NQuery;
Y_UNIT_TEST_SUITE(KqpQueryService) {
+ Y_UNIT_TEST(SessionFromPoolError) {
+ auto kikimr = DefaultKikimrRunner();
+ auto settings = NYdb::NQuery::TClientSettings().Database("WrongDB");
+ auto db = kikimr.GetQueryClient(settings);
+
+ auto result = db.GetSession().GetValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::NOT_FOUND, result.GetIssues().ToString());
+ }
+
+ Y_UNIT_TEST(SessionFromPoolSuccess) {
+ auto kikimr = DefaultKikimrRunner();
+ NKqp::TKqpCounters counters(kikimr.GetTestServer().GetRuntime()->GetAppData().Counters);
+
+ {
+ auto db = kikimr.GetQueryClient();
+
+ TString id;
+ {
+ auto result = db.GetSession().GetValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+ UNIT_ASSERT(result.GetSession().GetId());
+ id = result.GetSession().GetId();
+ }
+ {
+ auto result = db.GetSession().GetValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+ UNIT_ASSERT_VALUES_EQUAL(result.GetSession().GetId(), id);
+ }
+ }
+ WaitForZeroSessions(counters);
+ }
+
+ Y_UNIT_TEST(QueryOnClosedSession) {
+ auto kikimr = DefaultKikimrRunner();
+ auto clientConfig = NGRpcProxy::TGRpcClientConfig(kikimr.GetEndpoint());
+ NKqp::TKqpCounters counters(kikimr.GetTestServer().GetRuntime()->GetAppData().Counters);
+
+ {
+ auto db = kikimr.GetQueryClient();
+
+ TString id;
+ {
+ auto result = db.GetSession().GetValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+ UNIT_ASSERT(result.GetSession().GetId());
+ auto session = result.GetSession();
+ id = session.GetId();
+
+ bool allDoneOk = true;
+ NTestHelpers::CheckDelete(clientConfig, id, Ydb::StatusIds::SUCCESS, allDoneOk);
+
+ UNIT_ASSERT(allDoneOk);
+
+ auto execResult = session.ExecuteQuery("SELECT 1;",
+ NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+
+ UNIT_ASSERT_VALUES_EQUAL(execResult.GetStatus(), EStatus::BAD_SESSION);
+ }
+ // closed session must be removed from session pool
+ {
+ auto result = db.GetSession().GetValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+ UNIT_ASSERT(result.GetSession().GetId() != id);
+ }
+ }
+ WaitForZeroSessions(counters);
+ }
+
Y_UNIT_TEST(StreamExecuteQueryPure) {
auto kikimr = DefaultKikimrRunner();
auto db = kikimr.GetQueryClient();
@@ -234,7 +305,13 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
}
Y_UNIT_TEST(ExecuteQueryWrite) {
- auto kikimr = DefaultKikimrRunner();
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpImmediateEffects(true);
+ auto setting = NKikimrKqp::TKqpSetting();
+ auto serverSettings = TKikimrSettings()
+ .SetAppConfig(appConfig)
+ .SetKqpSettings({setting});
+ TKikimrRunner kikimr(serverSettings);
auto db = kikimr.GetQueryClient();
auto result = db.ExecuteQuery(R"(
@@ -331,6 +408,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
Y_UNIT_TEST(QueryDdl) {
NKikimrConfig::TAppConfig appConfig;
appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true);
+ appConfig.MutableTableServiceConfig()->SetEnableKqpImmediateEffects(true);
auto setting = NKikimrKqp::TKqpSetting();
auto serverSettings = TKikimrSettings()
.SetAppConfig(appConfig)
@@ -358,6 +436,23 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
CompareYson(R"([[[1u];["One"]]])", FormatResultSetYson(result.GetResultSet(0)));
}
+ Y_UNIT_TEST(MaterializeTxResults) {
+ auto kikimr = DefaultKikimrRunner();
+ auto db = kikimr.GetQueryClient();
+
+ auto result = db.ExecuteQuery(R"(
+ DELETE FROM KeyValue;
+ )", TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+
+ result = db.ExecuteQuery(R"(
+ SELECT * FROM KeyValue;
+ )", TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+
+ CompareYson(R"([])", FormatResultSetYson(result.GetResultSet(0)));
+ }
+
NYdb::NQuery::TScriptExecutionOperation WaitScriptExecutionOperation(const NYdb::TOperation::TOperationId& operationId, const NYdb::TDriver& ydbDriver, i32 tries = -1) {
NYdb::NOperation::TOperationClient client(ydbDriver);
NThreading::TFuture<NYdb::NQuery::TScriptExecutionOperation> op;
@@ -389,19 +484,18 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecMode, EExecMode::Execute);
UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecutionId, scriptExecutionOperation.Metadata().ExecutionId);
UNIT_ASSERT_STRING_CONTAINS(readyOp.Metadata().ScriptContent.Text, "SELECT 42");
+ UNIT_ASSERT_VALUES_EQUAL(readyOp.Metadata().ResultSetsMeta.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(readyOp.Metadata().ResultSetsMeta.front().columns_size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(readyOp.Metadata().ResultSetsMeta.front().columns(0).name(), "column0");
+ UNIT_ASSERT_EQUAL(readyOp.Metadata().ResultSetsMeta.front().columns(0).type().type_id(), Ydb::Type::PrimitiveTypeId::Type_PrimitiveTypeId_INT32);
- auto checkFetch = [&](const auto& executionOrOperation) {
- TFetchScriptResultsResult results = db.FetchScriptResults(executionOrOperation, 0).ExtractValueSync();
- UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
- TResultSetParser resultSet(results.ExtractResultSet());
- UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnsCount(), 1);
- UNIT_ASSERT_VALUES_EQUAL(resultSet.RowsCount(), 1);
- UNIT_ASSERT(resultSet.TryNextRow());
- UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(0).GetInt32(), 42);
- };
-
- checkFetch(scriptExecutionOperation.Metadata().ExecutionId);
- checkFetch(scriptExecutionOperation);
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
+ UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
+ TResultSetParser resultSet(results.ExtractResultSet());
+ UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnsCount(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(resultSet.RowsCount(), 1);
+ UNIT_ASSERT(resultSet.TryNextRow());
+ UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(0).GetInt32(), 42);
}
Y_UNIT_TEST(ExecuteMultiScript) {
@@ -421,7 +515,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
UNIT_ASSERT_STRING_CONTAINS(readyOp.Metadata().ScriptContent.Text, "SELECT 42; SELECT 101;");
{
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Metadata().ExecutionId, 0).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
TResultSetParser resultSet(results.ExtractResultSet());
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnsCount(), 1);
@@ -430,7 +524,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(0).GetInt32(), 42);
}
{
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Metadata().ExecutionId, 1).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 1).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
TResultSetParser resultSet(results.ExtractResultSet());
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnsCount(), 1);
@@ -466,6 +560,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
UNIT_ASSERT_STRING_CONTAINS(readyOp.Metadata().ScriptContent.Text, "SELECT 42");
ValidatePlan(readyOp.Metadata().ExecStats.query_plan());
+ UNIT_ASSERT(readyOp.Metadata().ExecStats.query_ast());
}
Y_UNIT_TEST(ParseScript) {
@@ -537,7 +632,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecutionId, scriptExecutionOperation.Metadata().ExecutionId);
UNIT_ASSERT_EQUAL(readyOp.Metadata().ScriptContent.Syntax, ESyntax::Pg);
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation, 0).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
CompareYson(R"([
@@ -580,6 +675,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
}
ValidatePlan(readyOp.Metadata().ExecStats.query_plan());
+ UNIT_ASSERT(readyOp.Metadata().ExecStats.query_ast());
}
Y_UNIT_TEST(ExecuteScriptStatsBasic) {
@@ -779,7 +875,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
auto op = opClient.Get<NYdb::NQuery::TScriptExecutionOperation>(scriptExecutionOperation.Id()).ExtractValueSync();
UNIT_ASSERT_C(op.Status().IsSuccess(), op.Status().GetIssues().ToString());
UNIT_ASSERT_C(op.Ready(), op.Status().GetIssues().ToString());
- UNIT_ASSERT(op.Metadata().ExecStatus == EExecStatus::Completed || op.Metadata().ExecStatus == EExecStatus::Canceled);
+ UNIT_ASSERT_C(op.Metadata().ExecStatus == EExecStatus::Completed || op.Metadata().ExecStatus == EExecStatus::Canceled, op.Status().GetIssues().ToString());
UNIT_ASSERT_EQUAL(op.Metadata().ExecutionId, scriptExecutionOperation.Metadata().ExecutionId);
UNIT_ASSERT(op.Status().GetStatus() == NYdb::EStatus::SUCCESS || op.Status().GetStatus() == NYdb::EStatus::CANCELLED);
@@ -826,14 +922,142 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
}
}
- Y_UNIT_TEST(ExecuteScriptFailsWithForgetAfter) {
+ NYdb::NQuery::TScriptExecutionOperation WaitScriptExecutionFail(const NYdb::TOperation::TOperationId& operationId, const NYdb::TDriver& ydbDriver) {
+ NYdb::NOperation::TOperationClient client(ydbDriver);
+ NThreading::TFuture<NYdb::NQuery::TScriptExecutionOperation> op;
+ do {
+ if (!op.Initialized()) {
+ Sleep(TDuration::MilliSeconds(10));
+ }
+ op = client.Get<NYdb::NQuery::TScriptExecutionOperation>(operationId);
+ } while (op.GetValueSync().Status().IsSuccess());
+ return op.GetValueSync();
+ }
+
+ void ExpectExecStatus(EExecStatus status, const TScriptExecutionOperation op, const NYdb::TDriver& ydbDriver) {
+ auto readyOp = WaitScriptExecutionOperation(op.Id(), ydbDriver);
+ UNIT_ASSERT_C(readyOp.Status().IsSuccess(), readyOp.Status().GetIssues().ToString());
+ UNIT_ASSERT_C(readyOp.Ready(), readyOp.Status().GetIssues().ToString());
+ UNIT_ASSERT(readyOp.Metadata().ExecStatus == status);
+ UNIT_ASSERT_EQUAL(readyOp.Metadata().ExecutionId, op.Metadata().ExecutionId);
+ }
+
+ void ExecuteScriptWithSettings(const TExecuteScriptSettings& settings, EExecStatus status, TString query = "SELECT 1;") {
+ auto kikimr = DefaultKikimrRunner();
+ auto db = kikimr.GetQueryClient();
+
+ auto op = db.ExecuteScript(query, settings).ExtractValueSync();
+ ExpectExecStatus(status, op, kikimr.GetDriver());
+ }
+
+ Y_UNIT_TEST(ExecuteScriptWithCancelAfter) {
+ TString query = R"(
+ SELECT * FROM EightShard WHERE Text = "Value2" AND Data = 1 ORDER BY Key;
+ SELECT * FROM TwoShard WHERE Key < 10 ORDER BY Key;
+ )";
+ auto settings = TExecuteScriptSettings().CancelAfter(TDuration::MilliSeconds(1));
+ ExecuteScriptWithSettings(settings, EExecStatus::Canceled, query);
+
+ settings = TExecuteScriptSettings().CancelAfter(TDuration::Seconds(10));
+ ExecuteScriptWithSettings(settings, EExecStatus::Completed);
+ }
+
+ Y_UNIT_TEST(ExecuteScriptWithTimeout) {
+ TString query = R"(
+ SELECT * FROM EightShard WHERE Text = "Value2" AND Data = 1 ORDER BY Key;
+ SELECT * FROM TwoShard WHERE Key < 10 ORDER BY Key;
+ )";
+ auto settings = TExecuteScriptSettings().OperationTimeout(TDuration::MilliSeconds(1));
+ ExecuteScriptWithSettings(settings, EExecStatus::Failed, query);
+
+ settings = TExecuteScriptSettings().OperationTimeout(TDuration::Seconds(100));
+ ExecuteScriptWithSettings(settings, EExecStatus::Completed);
+ }
+
+ Y_UNIT_TEST(ExecuteScriptWithCancelAfterAndTimeout) {
+ TString query = R"(
+ SELECT * FROM EightShard WHERE Text = "Value2" AND Data = 1 ORDER BY Key;
+ SELECT * FROM TwoShard WHERE Key < 10 ORDER BY Key;
+ )";
+ auto settings = TExecuteScriptSettings().CancelAfterWithTimeout(TDuration::MilliSeconds(1), TDuration::Seconds(100));
+ ExecuteScriptWithSettings(settings, EExecStatus::Canceled, query);
+
+ settings = TExecuteScriptSettings().CancelAfterWithTimeout(TDuration::Seconds(100), TDuration::MilliSeconds(1));
+ ExecuteScriptWithSettings(settings, EExecStatus::Failed, query);
+ }
+
+ void CheckScriptOperationExpires(const TExecuteScriptSettings &settings) {
auto kikimr = DefaultKikimrRunner();
auto db = kikimr.GetQueryClient();
auto scriptExecutionOperation = db.ExecuteScript(R"(
SELECT 42
- )", NYdb::NQuery::TExecuteScriptSettings().ForgetAfter(TDuration::Days(1))).ExtractValueSync();
- UNIT_ASSERT_VALUES_EQUAL_C(scriptExecutionOperation.Status().GetStatus(), EStatus::UNSUPPORTED, scriptExecutionOperation.Status().GetIssues().ToString());
+ )", settings).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(scriptExecutionOperation.Status().GetStatus(), EStatus::SUCCESS, scriptExecutionOperation.Status().GetIssues().ToString());
+
+
+ auto readyOp = WaitScriptExecutionFail(scriptExecutionOperation.Id(), kikimr.GetDriver());
+ UNIT_ASSERT_C(readyOp.Status().GetStatus() == EStatus::NOT_FOUND, readyOp.Status().GetStatus() << ":" << readyOp.Status().GetIssues().ToString());
+
+ NOperation::TOperationClient client(kikimr.GetDriver());
+
+ auto list = client.List<NYdb::NQuery::TScriptExecutionOperation>(100).ExtractValueSync();
+ UNIT_ASSERT_C(list.IsSuccess(), list.GetIssues().ToString());
+ UNIT_ASSERT(list.GetList().size() == 0);
+
+ auto status = client.Forget(scriptExecutionOperation.Id()).ExtractValueSync();
+ UNIT_ASSERT_C(status.GetStatus() == NYdb::EStatus::NOT_FOUND, status.GetIssues().ToString());
+
+ status = client.Cancel(scriptExecutionOperation.Id()).ExtractValueSync();
+ UNIT_ASSERT_C(status.GetStatus() == NYdb::EStatus::NOT_FOUND, status.GetIssues().ToString());
+
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
+ UNIT_ASSERT_C(results.GetStatus() == NYdb::EStatus::NOT_FOUND, results.GetIssues().ToString());
+ }
+
+ Y_UNIT_TEST(ExecuteScriptWithForgetAfter) {
+ CheckScriptOperationExpires(TExecuteScriptSettings().ForgetAfter(TDuration::MilliSeconds(50)));
+ }
+
+ void CheckScriptResultsExpire(const TExecuteScriptSettings& settings) {
+ auto kikimr = DefaultKikimrRunner();
+ auto db = kikimr.GetQueryClient();
+
+ auto scriptExecutionOperation = db.ExecuteScript(R"(
+ SELECT 42
+ )", settings).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(scriptExecutionOperation.Status().GetStatus(), EStatus::SUCCESS, scriptExecutionOperation.Status().GetIssues().ToString());
+
+ WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr.GetDriver());
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
+ UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
+ TResultSetParser resultSet(results.ExtractResultSet());
+ UNIT_ASSERT_C(resultSet.TryNextRow(), results.GetIssues().ToString());
+ UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(0).GetInt32(), 42);
+
+ while (results.GetStatus() != NYdb::EStatus::NOT_FOUND) {
+ UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
+ results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
+ Sleep(TDuration::MilliSeconds(10));
+ }
+
+ UNIT_ASSERT_C(results.GetStatus() == NYdb::EStatus::NOT_FOUND, results.GetIssues().ToString());
+ NOperation::TOperationClient client(kikimr.GetDriver());
+ auto op = client.Get<TScriptExecutionOperation>(scriptExecutionOperation.Id()).ExtractValueSync();
+ UNIT_ASSERT_C(op.Status().IsSuccess(), op.Status().GetIssues().ToString());
+ }
+
+ Y_UNIT_TEST(ExecuteScriptWithResultsTtl) {
+ CheckScriptResultsExpire(TExecuteScriptSettings().ResultsTtl(TDuration::MilliSeconds(2000)));
+ }
+
+ Y_UNIT_TEST(ExecuteScriptWithResultsTtlAndForgetAfter) {
+
+ auto settings = TExecuteScriptSettings().ResultsTtl(TDuration::MilliSeconds(2000)).ForgetAfter(TDuration::Seconds(30));
+ CheckScriptResultsExpire(settings);
+
+ settings = TExecuteScriptSettings().ResultsTtl(TDuration::Minutes(1)).ForgetAfter(TDuration::MilliSeconds(500));
+ CheckScriptOperationExpires(settings);
}
TScriptExecutionOperation CreateScriptExecutionOperation(size_t numberOfRows, NYdb::NQuery::TQueryClient& db, const NYdb::TDriver& ydbDriver) {
@@ -864,7 +1088,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
auto settings = TFetchScriptResultsSettings();
settings.FetchToken("?");
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation, 0, settings).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0, settings).ExtractValueSync();
UNIT_ASSERT_VALUES_EQUAL(results.GetStatus(), EStatus::BAD_REQUEST);
}
@@ -878,7 +1102,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
auto settings = TFetchScriptResultsSettings();
settings.RowsLimit(NUMBER_OF_ROWS);
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation, 0, settings).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0, settings).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
UNIT_ASSERT(results.GetNextFetchToken().Empty());
@@ -899,7 +1123,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
constexpr size_t NUMBER_OF_TESTS = 3;
for (size_t i = 0; i < NUMBER_OF_TESTS && (i + 1) * ROWS_LIMIT <= NUMBER_OF_ROWS; ++i) {
- TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation, 0, settings).ExtractValueSync();
+ TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0, settings).ExtractValueSync();
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
TResultSetParser resultSet(results.ExtractResultSet());
diff --git a/ydb/core/kqp/ut/service/kqp_service_ut.cpp b/ydb/core/kqp/ut/service/kqp_service_ut.cpp
index 01f20bd726..8556a594de 100644
--- a/ydb/core/kqp/ut/service/kqp_service_ut.cpp
+++ b/ydb/core/kqp/ut/service/kqp_service_ut.cpp
@@ -388,6 +388,97 @@ Y_UNIT_TEST_SUITE(KqpService) {
}
}, 0, InFlight, NPar::TLocalExecutor::WAIT_COMPLETE | NPar::TLocalExecutor::MED_PRIORITY);
}
+
+struct TDictCase {
+ const std::vector<TString> DictSet = {"($i.1)", "(Yql::Void)"};
+ const std::vector<TString> Compact = {"", "AsAtom('Compact')"};
+ const std::vector<TString> OneMany = {"One", "Many"};
+ const std::vector<TString> SortedHashed = {"Sorted", "Hashed"};
+
+ TString Expected;
+
+ ui32 MaxCase = DictSet.size() * Compact.size() * OneMany.size() * SortedHashed.size();
+ ui32 Case = 0;
+
+ bool InTheEnd() const {
+ return Case == MaxCase;
+ }
+
+ bool GetCase(size_t shift) {
+ return (Case >> shift) & 1;
+ }
+
+ TString GetExpected() const {
+ return Expected;
+ }
+
+ TString Get() {
+ if (InTheEnd()) {
+ Expected = "";
+ return {};
+ }
+
+ {
+ TStringStream expected;
+ expected << "[[[[1;";
+ if (OneMany[GetCase(1)] == "Many") {
+ expected << "[";
+ }
+ if (DictSet[GetCase(3)] == "(Yql::Void)") {
+ expected << "\"Void\"";
+ } else {
+ expected << "2";
+ }
+ if (OneMany[GetCase(1)] == "Many") {
+ expected << "]";
+ }
+ expected << "]]]]";
+ Expected = expected.Str();
+ }
+
+ TStringStream res;
+ res << "SELECT Yql::ToDict([(1, 2)], ($i) -> ($i.0), ($i) -> " << DictSet[GetCase(3)] << ", AsTuple(";
+ if (auto c = Compact[GetCase(2)]) {
+ res << c << ", ";
+ }
+ res << "AsAtom('" << OneMany[GetCase(1)] << "'), AsAtom('" << SortedHashed[GetCase(0)] << "')));";
+ ++Case;
+ return res.Str();
+ }
+};
+
+ // KIKIMR-18169
+ Y_UNIT_TEST_TWIN(ToDictCache, UseCache) {
+ auto settings = TKikimrSettings()
+ .SetWithSampleTables(false);
+ size_t cacheSize = UseCache ? 1_MB : 0;
+ settings.AppConfig.MutableTableServiceConfig()->MutableResourceManager()->SetKqpPatternCacheCapacityBytes(cacheSize);
+ auto kikimr = TKikimrRunner{settings};
+ auto driver = kikimr.GetDriver();
+
+ size_t InFlight = 4;
+ NPar::LocalExecutor().RunAdditionalThreads(InFlight);
+
+ TDictCase gen;
+ while (!gen.InTheEnd()) {
+ auto query = gen.Get();
+ Cout << query << Endl;
+ NPar::LocalExecutor().ExecRange([&driver, &query, &gen](int /*id*/) {
+ TTimer t;
+ NYdb::NTable::TTableClient db(driver);
+ auto session = db.CreateSession().GetValueSync().GetSession();
+ for (ui32 i = 0; i < 10; ++i) {
+ auto params = TParamsBuilder();
+
+ auto result = session.ExecuteDataQuery(query,
+ TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx(), params.Build()).ExtractValueSync();
+ AssertSuccessResult(result);
+
+ CompareYson(gen.GetExpected(), FormatResultSetYson(result.GetResultSet(0)));
+ }
+ }, 0, InFlight, NPar::TLocalExecutor::WAIT_COMPLETE | NPar::TLocalExecutor::MED_PRIORITY);
+ }
+ }
}
} // namspace NKqp
diff --git a/ydb/core/kqp/ut/service/ya.make b/ydb/core/kqp/ut/service/ya.make
index 64135e8217..23472755bc 100644
--- a/ydb/core/kqp/ut/service/ya.make
+++ b/ydb/core/kqp/ut/service/ya.make
@@ -24,6 +24,7 @@ PEERDIR(
ydb/core/kqp/ut/common
ydb/library/yql/sql/pg
ydb/library/yql/parser/pg_wrapper
+ ydb/public/lib/ut_helpers
ydb/public/sdk/cpp/client/ydb_operation
ydb/public/sdk/cpp/client/ydb_types/operation
)
diff --git a/ydb/core/kqp/ut/yql/kqp_yql_ut.cpp b/ydb/core/kqp/ut/yql/kqp_yql_ut.cpp
index 5b13979d91..cb35369dcf 100644
--- a/ydb/core/kqp/ut/yql/kqp_yql_ut.cpp
+++ b/ydb/core/kqp/ut/yql/kqp_yql_ut.cpp
@@ -252,7 +252,11 @@ Y_UNIT_TEST_SUITE(KqpYql) {
}
Y_UNIT_TEST(NonStrictDml) {
- TKikimrRunner kikimr;
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpImmediateEffects(true);
+ auto serverSettings = TKikimrSettings()
+ .SetAppConfig(appConfig);
+ TKikimrRunner kikimr(serverSettings);
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
@@ -416,6 +420,51 @@ Y_UNIT_TEST_SUITE(KqpYql) {
#
]])", FormatResultSetYson(result.GetResultSet(0)));
}
+
+ Y_UNIT_TEST(EvaluateExpr1) {
+ TKikimrRunner kikimr;
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ auto result = session.ExecuteDataQuery(Q1_(R"(
+ SELECT EvaluateExpr(2+2);
+ )"), TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+
+ CompareYson(R"([[
+ 4]
+ ])", FormatResultSetYson(result.GetResultSet(0)));
+ }
+
+ Y_UNIT_TEST(EvaluateExpr2) {
+ TKikimrRunner kikimr;
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ auto result = session.ExecuteDataQuery(Q1_(R"(
+ SELECT EvaluateExpr(12+20);
+ )"), TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+
+ CompareYson(R"([[
+ 32]
+ ])", FormatResultSetYson(result.GetResultSet(0)));
+ }
+
+ Y_UNIT_TEST(EvaluateExpr3) {
+ TKikimrRunner kikimr;
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ auto result = session.ExecuteDataQuery(Q1_(R"(
+ SELECT EvaluateExpr( EvaluateExpr(2+2) + EvaluateExpr(5*5) );
+ )"), TTxControl::BeginTx().CommitTx()).ExtractValueSync();
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
+
+ CompareYson(R"([[
+ 29]
+ ])", FormatResultSetYson(result.GetResultSet(0)));
+ }
}
} // namespace NKqp
diff --git a/ydb/core/local_pgwire/local_pgwire_connection.cpp b/ydb/core/local_pgwire/local_pgwire_connection.cpp
index 9dcbaca5ac..dcec1fab9d 100644
--- a/ydb/core/local_pgwire/local_pgwire_connection.cpp
+++ b/ydb/core/local_pgwire/local_pgwire_connection.cpp
@@ -25,6 +25,7 @@ extern NActors::IActor* CreatePgwireKqpProxy(
);
NActors::IActor* CreatePgwireKqpProxyQuery(const TActorId& owner, std::unordered_map<TString, TString> params, const TConnectionState& connection, NPG::TEvPGEvents::TEvQuery::TPtr&& evQuery);
+NActors::IActor* CreatePgwireKqpProxyParse(const TActorId& owner, std::unordered_map<TString, TString> params, const TConnectionState& connection, NPG::TEvPGEvents::TEvParse::TPtr&& evParse);
NActors::IActor* CreatePgwireKqpProxyDescribe(const TActorId& owner, std::unordered_map<TString, TString> params, const TConnectionState& connection, NPG::TEvPGEvents::TEvDescribe::TPtr&& evDescribe, const TParsedStatement& statement);
NActors::IActor* CreatePgwireKqpProxyExecute(const TActorId& owner, std::unordered_map<TString, TString> params, const TConnectionState& connection, NPG::TEvPGEvents::TEvExecute::TPtr&& evExecute, const TParsedStatement& statement);
@@ -59,12 +60,10 @@ public:
void Handle(NPG::TEvPGEvents::TEvParse::TPtr& ev) {
BLOG_D("TEvParse " << ev->Sender);
-
- auto queryData = ev->Get()->Message->GetQueryData();
- ParsedStatements[queryData.Name].QueryData = queryData;
-
- auto parseComplete = ev->Get()->Reply();
- Send(ev->Sender, parseComplete.release());
+ ++Inflight;
+ TActorId actorId = Register(CreatePgwireKqpProxyParse(SelfId(), ConnectionParams, Connection, std::move(ev)));
+ BLOG_D("Created pgwireKqpProxyParse: " << actorId);
+ return;
}
void Handle(NPG::TEvPGEvents::TEvBind::TPtr& ev) {
@@ -93,7 +92,7 @@ public:
TString statementName = ev->Get()->Message->GetDescribeData().Name;
if (statementName.empty()) {
statementName = CurrentStatement;
- BLOG_W("TEvExecute changed empty statement to " << CurrentStatement);
+ BLOG_W("TEvDescribe changed empty statement to " << CurrentStatement);
}
auto it = ParsedStatements.find(statementName);
if (it == ParsedStatements.end()) {
@@ -104,10 +103,13 @@ public:
return;
}
- ++Inflight;
- TActorId actorId = Register(CreatePgwireKqpProxyDescribe(SelfId(), ConnectionParams, Connection, std::move(ev), it->second));
- BLOG_D("Created pgwireKqpProxyDescribe: " << actorId);
- return;
+ auto response = std::make_unique<NPG::TEvPGEvents::TEvDescribeResponse>();
+ for (const auto& ydbType : it->second.ParameterTypes) {
+ response->ParameterTypes.push_back(GetPgOidFromYdbType(ydbType));
+ }
+ response->DataFields = it->second.DataFields;
+
+ Send(ev->Sender, response.release());
}
void Handle(NPG::TEvPGEvents::TEvExecute::TPtr& ev) {
@@ -142,26 +144,32 @@ public:
void Handle(TEvEvents::TEvProxyCompleted::TPtr& ev) {
--Inflight;
BLOG_D("Received TEvProxyCompleted");
- if (ev->Get()->Connection.Transaction.Status) {
- BLOG_D("Updating transaction state to " << ev->Get()->Connection.Transaction.Status);
- Connection.Transaction.Status = ev->Get()->Connection.Transaction.Status;
- switch (ev->Get()->Connection.Transaction.Status) {
- case 'I':
- case 'E':
- Connection.Transaction.Id.clear();
- BLOG_D("Transaction id cleared");
- break;
- case 'T':
- if (ev->Get()->Connection.Transaction.Id) {
- Connection.Transaction.Id = ev->Get()->Connection.Transaction.Id;
- BLOG_D("Transaction id is " << Connection.Transaction.Id);
- }
- break;
- }
+ if (ev->Get()->ParsedStatement) {
+ ParsedStatements[ev->Get()->ParsedStatement.value().QueryData.Name] = ev->Get()->ParsedStatement.value();
}
- if (ev->Get()->Connection.SessionId) {
- BLOG_D("Session id is " << ev->Get()->Connection.SessionId);
- Connection.SessionId = ev->Get()->Connection.SessionId;
+ if (ev->Get()->Connection) {
+ auto& connection(ev->Get()->Connection.value());
+ if (connection.Transaction.Status) {
+ BLOG_D("Updating transaction state to " << connection.Transaction.Status);
+ Connection.Transaction.Status = connection.Transaction.Status;
+ switch (connection.Transaction.Status) {
+ case 'I':
+ case 'E':
+ Connection.Transaction.Id.clear();
+ BLOG_D("Transaction id cleared");
+ break;
+ case 'T':
+ if (connection.Transaction.Id) {
+ Connection.Transaction.Id = connection.Transaction.Id;
+ BLOG_D("Transaction id is " << Connection.Transaction.Id);
+ }
+ break;
+ }
+ }
+ if (connection.SessionId) {
+ BLOG_D("Session id is " << connection.SessionId);
+ Connection.SessionId = connection.SessionId;
+ }
}
while (!Events.empty() && Inflight == 0) {
StateWork(Events.front());
diff --git a/ydb/core/local_pgwire/local_pgwire_util.h b/ydb/core/local_pgwire/local_pgwire_util.h
index fa0dddb2cb..9dedeb4fcc 100644
--- a/ydb/core/local_pgwire/local_pgwire_util.h
+++ b/ydb/core/local_pgwire/local_pgwire_util.h
@@ -44,6 +44,13 @@ struct TConnectionState {
TTransactionState Transaction;
};
+struct TParsedStatement {
+ NPG::TPGParse::TQueryData QueryData;
+ NPG::TPGBind::TBindData BindData;
+ std::vector<Ydb::Type> ParameterTypes;
+ std::vector<NPG::TEvPGEvents::TRowDescriptionField> DataFields;
+};
+
struct TEvEvents {
enum EEv {
EvProxyCompleted = EventSpaceBegin(NActors::TEvents::ES_PRIVATE),
@@ -53,17 +60,19 @@ struct TEvEvents {
static_assert(EvEnd < EventSpaceEnd(NActors::TEvents::ES_PRIVATE), "ES_PRIVATE event space is too small.");
struct TEvProxyCompleted : NActors::TEventLocal<TEvProxyCompleted, EvProxyCompleted> {
- TConnectionState Connection;
+ std::optional<TConnectionState> Connection;
+ std::optional<TParsedStatement> ParsedStatement;
+
+ TEvProxyCompleted() = default;
- TEvProxyCompleted(const TConnectionState& connection = {})
+ TEvProxyCompleted(const TConnectionState& connection)
: Connection(connection)
{}
- };
-};
-struct TParsedStatement {
- NPG::TPGParse::TQueryData QueryData;
- NPG::TPGBind::TBindData BindData;
+ TEvProxyCompleted(const TParsedStatement& parsedStatement)
+ : ParsedStatement(parsedStatement)
+ {}
+ };
};
inline TString ColumnPrimitiveValueToString(NYdb::TValueParser& valueParser) {
@@ -234,37 +243,6 @@ inline NYdb::NScripting::TExecuteYqlResult ConvertProtoResponseToSdkResult(Ydb::
return {NYdb::TStatus(std::move(alwaysSuccess)), std::move(res), queryStats};
}
-struct TConvertedQuery {
- TString Query;
- NYdb::TParams Params;
-};
-
-inline TConvertedQuery ConvertQuery(const TParsedStatement& statement) {
- auto& bindData = statement.BindData;
- const auto& queryData = statement.QueryData;
- NYdb::TParamsBuilder paramsBuilder;
- TStringBuilder injectedQuery;
-
- for (size_t idxParam = 0; idxParam < queryData.ParametersTypes.size(); ++idxParam) {
- int32_t paramType = queryData.ParametersTypes[idxParam];
- TString paramValue;
- if (idxParam < bindData.ParametersValue.size()) {
- std::vector<uint8_t> paramVal = bindData.ParametersValue[idxParam];
- paramValue = TString(reinterpret_cast<char*>(paramVal.data()), paramVal.size());
- }
- switch (paramType) {
- case INT2OID:
- paramsBuilder.AddParam(TStringBuilder() << ":_" << idxParam + 1).Int16(atoi(paramValue.data())).Build();
- break;
-
- }
- }
- return {
- .Query = injectedQuery + queryData.Query,
- .Params = paramsBuilder.Build(),
- };
-}
-
inline bool IsQueryEmptyChar(char c) {
return c == ' ' || c == ';' || c == '\t' || c == '\n' || c == '\r' || c == '\f' || c == '\v';
}
diff --git a/ydb/core/local_pgwire/pgwire_kqp_proxy.cpp b/ydb/core/local_pgwire/pgwire_kqp_proxy.cpp
index b26c32e494..5914fe97f1 100644
--- a/ydb/core/local_pgwire/pgwire_kqp_proxy.cpp
+++ b/ydb/core/local_pgwire/pgwire_kqp_proxy.cpp
@@ -273,6 +273,101 @@ public:
}
};
+class TPgwireKqpProxyParse : public TPgwireKqpProxy<TPgwireKqpProxyParse> {
+ using TBase = TPgwireKqpProxy<TPgwireKqpProxyParse>;
+
+ NPG::TEvPGEvents::TEvParse::TPtr EventParse_;
+ NPG::TPGParse::TQueryData QueryData_;
+
+public:
+ TPgwireKqpProxyParse(const TActorId& owner, std::unordered_map<TString, TString> params, const TConnectionState& connection, NPG::TEvPGEvents::TEvParse::TPtr&& evParse)
+ : TPgwireKqpProxy(owner, std::move(params), connection)
+ , EventParse_(std::move(evParse))
+ , QueryData_(EventParse_->Get()->Message->GetQueryData())
+ {}
+
+ void Bootstrap() {
+ auto event = MakeKqpRequest();
+ NKikimrKqp::TQueryRequest& request = *event->Record.MutableRequest();
+
+ // HACK
+ ConvertQueryToRequest(QueryData_.Query, request);
+ if (request.HasAction()) {
+ request.SetAction(NKikimrKqp::QUERY_ACTION_EXPLAIN);
+
+ request.SetUsePublicResponseDataFormat(true);
+
+ ActorIdToProto(SelfId(), event->Record.MutableRequestActorId());
+ BLOG_D("Sent event to kqpProxy " << request.ShortDebugString());
+ Send(NKqp::MakeKqpProxyID(SelfId().NodeId()), event.Release());
+ }
+ // TODO(xenoxeno): timeout
+ Become(&TPgwireKqpProxyParse::StateWork);
+ }
+
+ void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev) {
+ BLOG_D("Handling TEvKqp::TEvQueryResponse " << ev->Get()->Record.ShortDebugString());
+ NKikimrKqp::TEvQueryResponse& record = ev->Get()->Record.GetRef();
+ auto response = EventParse_->Get()->Reply();
+ try {
+ if (record.HasYdbStatus()) {
+ if (record.GetYdbStatus() == Ydb::StatusIds::SUCCESS) {
+ TParsedStatement statement;
+ statement.QueryData = std::move(QueryData_);
+ for (const auto& param : record.GetResponse().GetQueryParameters()) {
+ Ydb::Type ydbType;
+ ConvertMiniKQLTypeToYdbType(param.GetType(), ydbType);
+ statement.ParameterTypes.push_back(ydbType);
+ }
+ for (const auto& result : record.GetResponse().GetYdbResults()) {
+ for (const auto& column : result.columns()) {
+ std::optional<NYdb::TPgType> pgType = GetPgTypeFromYdbType(column.type());
+ if (pgType.has_value()) {
+ statement.DataFields.push_back({
+ .Name = column.name(),
+ .DataType = pgType->Oid,
+ .DataTypeSize = pgType->Typlen,
+ .DataTypeModifier = pgType->Typmod,
+ });
+ } else {
+ statement.DataFields.push_back({
+ .Name = column.name()
+ });
+ }
+ }
+ break; // only 1 result is accepted
+ }
+ Send(Owner_, new TEvEvents::TEvProxyCompleted(statement));
+ } else {
+ NYql::TIssues issues;
+ NYql::IssuesFromMessage(record.GetResponse().GetQueryIssues(), issues);
+ NYdb::TStatus status(NYdb::EStatus(record.GetYdbStatus()), std::move(issues));
+ response->ErrorFields.push_back({'E', "ERROR"});
+ response->ErrorFields.push_back({'M', TStringBuilder() << status});
+ }
+ } else {
+ response->ErrorFields.push_back({'E', "ERROR"});
+ response->ErrorFields.push_back({'M', "No result received"});
+ }
+ } catch (const std::exception& e) {
+ response->ErrorFields.push_back({'E', "ERROR"});
+ response->ErrorFields.push_back({'M', e.what()});
+ }
+ if (!response->ErrorFields.empty()) {
+ Send(Owner_, new TEvEvents::TEvProxyCompleted());
+ }
+ BLOG_D("Finally replying to " << EventParse_->Sender);
+ Send(EventParse_->Sender, response.release(), 0, EventParse_->Cookie);
+ PassAway();
+ }
+
+ STATEFN(StateWork) {
+ switch (ev->GetTypeRewrite()) {
+ hFunc(NKqp::TEvKqp::TEvQueryResponse, Handle);
+ }
+ }
+};
+
class TPgwireKqpProxyDescribe : public TPgwireKqpProxy<TPgwireKqpProxyDescribe> {
using TBase = TPgwireKqpProxy<TPgwireKqpProxyDescribe>;
@@ -287,12 +382,11 @@ public:
{}
void Bootstrap() {
- auto query(ConvertQuery(Statement_));
auto event = MakeKqpRequest();
NKikimrKqp::TQueryRequest& request = *event->Record.MutableRequest();
// HACK
- ConvertQueryToRequest(query.Query, request);
+ ConvertQueryToRequest(Statement_.QueryData.Query, request);
if (request.HasAction()) {
request.SetAction(NKikimrKqp::QUERY_ACTION_EXPLAIN);
@@ -305,7 +399,7 @@ public:
}
void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev) {
- BLOG_D("Handling TEvKqp::TEvQueryResponse");
+ BLOG_D("Handling TEvKqp::TEvQueryResponse " << ev->Get()->Record.ShortDebugString());
Send(Owner_, new TEvEvents::TEvProxyCompleted());
NKikimrKqp::TEvQueryResponse& record = ev->Get()->Record.GetRef();
auto response = std::make_unique<NPG::TEvPGEvents::TEvDescribeResponse>();
@@ -359,20 +453,57 @@ public:
{
}
+ static Ydb::TypedValue GetTypedValueFromParam(int16_t format, const std::vector<uint8_t>& value, const Ydb::Type& type) {
+ enum EFormatType : int16_t {
+ EFormatText = 0,
+ EFormatBinary = 1,
+ };
+
+ Ydb::TypedValue typedValue;
+ typedValue.mutable_type()->CopyFrom(type);
+ NYdb::TTypeParser parser(type);
+ if (parser.GetKind() == NYdb::TTypeParser::ETypeKind::Pg) {
+ typedValue.mutable_type()->CopyFrom(type);
+ if (format == EFormatText) {
+ typedValue.mutable_value()->set_text_value(TString(reinterpret_cast<const char*>(&value.front()), value.size()));
+ } else if (format == EFormatBinary) {
+ typedValue.mutable_value()->set_bytes_value(TString(reinterpret_cast<const char*>(&value.front()), value.size()));
+ } else {
+ Y_VERIFY(false/*unknown format type*/);
+ }
+ } else {
+ // it's not supported yet
+ Y_VERIFY(false/*non-PG type*/);
+ }
+ return typedValue;
+ }
+
void Bootstrap() {
- auto query(ConvertQuery(Statement_));
auto event = MakeKqpRequest();
NKikimrKqp::TQueryRequest& request = *event->Record.MutableRequest();
// HACK
- ConvertQueryToRequest(query.Query, request);
+ ConvertQueryToRequest(Statement_.QueryData.Query, request);
if (request.HasAction()) {
+ for (unsigned int paramNum = 0; paramNum < Statement_.BindData.ParametersValue.size(); ++paramNum) {
+ if (paramNum >= Statement_.ParameterTypes.size()) {
+ // TODO(xenoxeno): report error
+ break;
+ }
+ Ydb::Type type = Statement_.ParameterTypes[paramNum];
+ int16_t format = 0; // text
+ if (paramNum < Statement_.BindData.ParametersFormat.size()) {
+ format = Statement_.BindData.ParametersFormat[paramNum];
+ }
+ Ydb::TypedValue value = GetTypedValueFromParam(format, Statement_.BindData.ParametersValue[paramNum], type);
+ request.MutableYdbParameters()->insert({TStringBuilder() << "$p" << paramNum + 1, value});
+ }
ActorIdToProto(SelfId(), event->Record.MutableRequestActorId());
BLOG_D("Sent event to kqpProxy " << request.ShortDebugString());
Send(NKqp::MakeKqpProxyID(SelfId().NodeId()), event.Release());
}
// TODO(xenoxeno): timeout
- Become(&TPgwireKqpProxyQuery::StateWork);
+ Become(&TPgwireKqpProxyExecute::StateWork);
}
void FillResultSet(const NYdb::TResultSet& resultSet, NPG::TEvPGEvents::TEvExecuteResponse* response) {
@@ -415,7 +546,7 @@ public:
}
void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev) {
- BLOG_D("Handling TEvKqp::TEvQueryResponse");
+ BLOG_D("Handling TEvKqp::TEvQueryResponse " << ev->Get()->Record.ShortDebugString());
NKikimrKqp::TEvQueryResponse& record = ev->Get()->Record.GetRef();
ProcessKqpResponseReleaseProxy(record);
auto response = MakeResponse();
@@ -464,6 +595,13 @@ NActors::IActor* CreatePgwireKqpProxyQuery(const TActorId& owner,
return new TPgwireKqpProxyQuery(owner, std::move(params), connection, std::move(evQuery));
}
+NActors::IActor* CreatePgwireKqpProxyParse(const TActorId& owner,
+ std::unordered_map<TString, TString> params,
+ const TConnectionState& connection,
+ NPG::TEvPGEvents::TEvParse::TPtr&& evParse) {
+ return new TPgwireKqpProxyParse(owner, std::move(params), connection, std::move(evParse));
+}
+
NActors::IActor* CreatePgwireKqpProxyDescribe(const TActorId& owner,
std::unordered_map<TString, TString> params,
const TConnectionState& connection,
diff --git a/ydb/core/mind/bscontroller/bsc.cpp b/ydb/core/mind/bscontroller/bsc.cpp
index 921aa99ce8..6117764369 100644
--- a/ydb/core/mind/bscontroller/bsc.cpp
+++ b/ydb/core/mind/bscontroller/bsc.cpp
@@ -169,22 +169,6 @@ void TBlobStorageController::IssueInitialGroupContent() {
Send(StatProcessorActorId, ev.Release());
}
-void TBlobStorageController::Handle(TEvents::TEvPoisonPill::TPtr&) {
- Become(&TThis::StateBroken);
- for (TActorId *ptr : {&SelfHealId, &StatProcessorActorId, &SystemViewsCollectorId}) {
- if (const TActorId actorId = std::exchange(*ptr, {})) {
- TActivationContext::Send(new IEventHandle(TEvents::TSystem::Poison, 0, actorId, SelfId(), nullptr, 0));
- }
- }
- for (const auto& [id, info] : GroupMap) {
- if (auto& actorId = info->VirtualGroupSetupMachineId) {
- TActivationContext::Send(new IEventHandle(TEvents::TSystem::Poison, 0, actorId, SelfId(), nullptr, 0));
- actorId = {};
- }
- }
- TActivationContext::Send(new IEventHandle(TEvents::TSystem::Poison, 0, Tablet(), SelfId(), nullptr, 0));
-}
-
void TBlobStorageController::NotifyNodesAwaitingKeysForGroups(ui32 groupId) {
if (const auto it = NodesAwaitingKeysForGroup.find(groupId); it != NodesAwaitingKeysForGroup.end()) {
TSet<ui32> nodes = std::move(it->second);
diff --git a/ydb/core/mind/bscontroller/cmds_drive_status.cpp b/ydb/core/mind/bscontroller/cmds_drive_status.cpp
index 43c42725a2..f9da816720 100644
--- a/ydb/core/mind/bscontroller/cmds_drive_status.cpp
+++ b/ydb/core/mind/bscontroller/cmds_drive_status.cpp
@@ -85,7 +85,7 @@ namespace NKikimr::NBsController {
item->SetPath(pdiskInfo.Path);
item->SetStatus(pdiskInfo.Status);
item->SetPDiskId(pdiskId.PDiskId);
- item->SetSerial(pdiskInfo.ExpectedSerial);
+ //item->SetSerial(pdiskInfo.ExpectedSerial);
item->SetStatusChangeTimestamp(pdiskInfo.StatusTimestamp.GetValue());
}
return true;
diff --git a/ydb/core/mind/bscontroller/config.cpp b/ydb/core/mind/bscontroller/config.cpp
index 44ee41bb74..15c93ef89c 100644
--- a/ydb/core/mind/bscontroller/config.cpp
+++ b/ydb/core/mind/bscontroller/config.cpp
@@ -98,7 +98,7 @@ namespace NKikimr::NBsController {
}
pdisk->SetPDiskGuid(pdiskInfo.Guid);
pdisk->SetPDiskCategory(pdiskInfo.Kind.GetRaw());
- pdisk->SetExpectedSerial(pdiskInfo.ExpectedSerial);
+ //pdisk->SetExpectedSerial(pdiskInfo.ExpectedSerial);
pdisk->SetManagementStage(Self->SerialManagementStage);
if (pdiskInfo.PDiskConfig && !pdisk->MutablePDiskConfig()->ParseFromString(pdiskInfo.PDiskConfig)) {
// TODO(alexvru): report this somehow
@@ -883,8 +883,8 @@ namespace NKikimr::NBsController {
pb->SetDecommitStatus(pdisk.DecommitStatus);
pb->MutablePDiskMetrics()->CopyFrom(pdisk.Metrics);
pb->MutablePDiskMetrics()->ClearPDiskId();
- pb->SetExpectedSerial(pdisk.ExpectedSerial);
- pb->SetLastSeenSerial(pdisk.LastSeenSerial);
+ //pb->SetExpectedSerial(pdisk.ExpectedSerial);
+ //pb->SetLastSeenSerial(pdisk.LastSeenSerial);
}
void TBlobStorageController::Serialize(NKikimrBlobStorage::TVSlotId *pb, TVSlotId id) {
diff --git a/ydb/core/mind/bscontroller/config_fit_groups.cpp b/ydb/core/mind/bscontroller/config_fit_groups.cpp
index cc71480c4d..b2b4f77865 100644
--- a/ydb/core/mind/bscontroller/config_fit_groups.cpp
+++ b/ydb/core/mind/bscontroller/config_fit_groups.cpp
@@ -16,6 +16,7 @@ namespace NKikimr {
const bool IgnoreVSlotQuotaCheck;
const bool AllowUnusableDisks;
const bool SettleOnlyOnOperationalDisks;
+ const bool IsSelfHealReasonDecommit;
std::deque<ui64> ExpectedSlotSize;
const ui32 PDiskSpaceMarginPromille;
const TGroupGeometryInfo Geometry;
@@ -38,6 +39,7 @@ namespace NKikimr {
, IgnoreVSlotQuotaCheck(cmd.GetIgnoreVSlotQuotaCheck())
, AllowUnusableDisks(cmd.GetAllowUnusableDisks())
, SettleOnlyOnOperationalDisks(cmd.GetSettleOnlyOnOperationalDisks())
+ , IsSelfHealReasonDecommit(cmd.GetIsSelfHealReasonDecommit())
, ExpectedSlotSize(expectedSlotSize)
, PDiskSpaceMarginPromille(pdiskSpaceMarginPromille)
, Geometry(TBlobStorageGroupType(storagePool.ErasureSpecies), storagePool.GetGroupGeometry())
@@ -423,7 +425,7 @@ namespace NKikimr {
for (const auto& domain : realm) {
for (const TPDiskId id : domain) {
if (id != TPDiskId()) {
- if (auto *info = State.PDisks.Find(id); info && RegisterPDisk(id, *info, false)) {
+ if (auto *info = State.PDisks.Find(id); info && RegisterPDisk(id, *info, false, "X")) {
removeQ.push_back(id);
}
}
@@ -449,7 +451,7 @@ namespace NKikimr {
for (const auto& domain : realm) {
for (const TPDiskId id : domain) {
if (id != TPDiskId()) {
- if (auto *info = State.PDisks.Find(id); info && RegisterPDisk(id, *info, false)) {
+ if (auto *info = State.PDisks.Find(id); info && RegisterPDisk(id, *info, false, "X")) {
removeQ.push_back(id);
}
}
@@ -486,7 +488,7 @@ namespace NKikimr {
});
}
- bool RegisterPDisk(TPDiskId id, const TPDiskInfo& info, bool usable) {
+ bool RegisterPDisk(TPDiskId id, const TPDiskInfo& info, bool usable, TString whyUnusable = {}) {
// calculate number of used slots on this PDisk, also counting the static ones
ui32 numSlots = info.NumActiveSlots + info.StaticSlotUsage;
@@ -528,10 +530,17 @@ namespace NKikimr {
if (!info.AcceptsNewSlots()) {
usable = false;
+ whyUnusable.append('S');
}
if (SettleOnlyOnOperationalDisks && !info.Operational) {
usable = false;
+ whyUnusable.append('O');
+ }
+
+ if (!info.UsableInTermsOfDecommission(IsSelfHealReasonDecommit)) {
+ usable = false;
+ whyUnusable.append('D');
}
// register PDisk in the mapper
@@ -545,6 +554,7 @@ namespace NKikimr {
.SpaceAvailable = availableSpace,
.Operational = info.Operational,
.Decommitted = info.Decommitted(),
+ .WhyUnusable = std::move(whyUnusable),
});
}
diff --git a/ydb/core/mind/bscontroller/config_fit_pdisks.cpp b/ydb/core/mind/bscontroller/config_fit_pdisks.cpp
index 0d5e0ab246..9e21ba3514 100644
--- a/ydb/core/mind/bscontroller/config_fit_pdisks.cpp
+++ b/ydb/core/mind/bscontroller/config_fit_pdisks.cpp
@@ -99,11 +99,10 @@ namespace NKikimr {
pdiskInfo->ReadCentric = disk.ReadCentric;
pdiskInfo->BoxId = disk.BoxId;
if (pdiskInfo->PDiskConfig != disk.PDiskConfig) {
- // update PDiskConfig only for nonstatic PDisks
- if (!NKikimr::NBsController::FindStaticPDisk(disk, state)) {
- pdiskInfo->PDiskConfig = disk.PDiskConfig;
+ if (const auto id = FindStaticPDisk(disk, state); id && state.StaticPDisks.at(*id).PDiskConfig != disk.PDiskConfig) {
+ throw TExError() << "PDiskConfig mismatch for static disk" << TErrorParams::NodeId(disk.NodeId) << TErrorParams::Path(disk.Path);
} else {
- throw TExError() << "Skipping PDiskConfig update for static disk" << TErrorParams::NodeId(disk.NodeId) << TErrorParams::Path(disk.Path);
+ pdiskInfo->PDiskConfig = disk.PDiskConfig;
}
}
// run ExtractConfig as the very last step
diff --git a/ydb/core/mind/bscontroller/group_mapper.cpp b/ydb/core/mind/bscontroller/group_mapper.cpp
index c4d372409c..8ad2ff6487 100644
--- a/ydb/core/mind/bscontroller/group_mapper.cpp
+++ b/ydb/core/mind/bscontroller/group_mapper.cpp
@@ -25,7 +25,7 @@ namespace NKikimr::NBsController {
}
bool IsUsable() const {
- return Usable && !Decommitted && NumSlots < MaxSlots;
+ return Usable && NumSlots < MaxSlots;
}
void InsertGroup(ui32 groupId) {
@@ -887,10 +887,7 @@ namespace NKikimr::NBsController {
s << std::exchange(minus, "") << "f";
}
if (!pdisk->Usable) {
- s << std::exchange(minus, "") << "u";
- }
- if (pdisk->Decommitted) {
- s << std::exchange(minus, "") << "d";
+ s << std::exchange(minus, "") << pdisk->WhyUnusable;
}
if (pdisk->NumSlots >= pdisk->MaxSlots) {
s << std::exchange(minus, "") << "s[" << pdisk->NumSlots << "/" << pdisk->MaxSlots << "]";
diff --git a/ydb/core/mind/bscontroller/group_mapper.h b/ydb/core/mind/bscontroller/group_mapper.h
index a51d7a3cd6..419bd0f1dc 100644
--- a/ydb/core/mind/bscontroller/group_mapper.h
+++ b/ydb/core/mind/bscontroller/group_mapper.h
@@ -41,6 +41,7 @@ namespace NKikimr {
i64 SpaceAvailable;
const bool Operational;
const bool Decommitted;
+ TString WhyUnusable;
};
public:
diff --git a/ydb/core/mind/bscontroller/impl.h b/ydb/core/mind/bscontroller/impl.h
index 5e62afcfc2..cf7d04d44f 100644
--- a/ydb/core/mind/bscontroller/impl.h
+++ b/ydb/core/mind/bscontroller/impl.h
@@ -451,6 +451,17 @@ public:
|| DecommitStatus == NKikimrBlobStorage::EDecommitStatus::DECOMMIT_IMMINENT;
}
+ bool IsSelfHealReasonDecommit() const {
+ return DecommitStatus == NKikimrBlobStorage::EDecommitStatus::DECOMMIT_IMMINENT &&
+ Status != NKikimrBlobStorage::EDriveStatus::FAULTY &&
+ Status != NKikimrBlobStorage::EDriveStatus::TO_BE_REMOVED;
+ }
+
+ bool UsableInTermsOfDecommission(bool isSelfHealReasonDecommit) const {
+ return DecommitStatus == NKikimrBlobStorage::EDecommitStatus::DECOMMIT_NONE // acceptable in any case
+ || DecommitStatus == NKikimrBlobStorage::EDecommitStatus::DECOMMIT_REJECTED && !isSelfHealReasonDecommit;
+ }
+
bool BadInTermsOfSelfHeal() const {
return Status == NKikimrBlobStorage::EDriveStatus::FAULTY
|| Status == NKikimrBlobStorage::EDriveStatus::INACTIVE;
@@ -470,6 +481,7 @@ public:
return false;
case NKikimrBlobStorage::EDecommitStatus::DECOMMIT_PENDING:
case NKikimrBlobStorage::EDecommitStatus::DECOMMIT_IMMINENT:
+ case NKikimrBlobStorage::EDecommitStatus::DECOMMIT_REJECTED:
return true;
case NKikimrBlobStorage::EDecommitStatus::DECOMMIT_UNSET:
case NKikimrBlobStorage::EDecommitStatus::EDecommitStatus_INT_MIN_SENTINEL_DO_NOT_USE_:
@@ -1760,7 +1772,6 @@ private:
void Handle(TEvBlobStorage::TEvControllerProposeGroupKey::TPtr &ev);
void ForwardToSystemViewsCollector(STATEFN_SIG);
void Handle(TEvPrivate::TEvUpdateSystemViews::TPtr &ev);
- void Handle(TEvents::TEvPoisonPill::TPtr& ev);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Scrub handling
@@ -1984,7 +1995,6 @@ public:
fFunc(NSysView::TEvSysView::EvGetStorageStatsRequest, ForwardToSystemViewsCollector);
fFunc(TEvPrivate::EvUpdateSystemViews, EnqueueIncomingEvent);
hFunc(TEvInterconnect::TEvNodesInfo, Handle);
- hFunc(TEvents::TEvPoisonPill, Handle);
hFunc(TEvTabletPipe::TEvServerConnected, Handle);
hFunc(TEvTabletPipe::TEvServerDisconnected, Handle);
fFunc(TEvPrivate::EvUpdateSelfHealCounters, EnqueueIncomingEvent);
@@ -2012,22 +2022,10 @@ public:
}
}
- STFUNC(StateBroken) {
- HandleDefaultEvents(ev, SelfId());
- }
-
void LoadFinished() {
STLOG(PRI_DEBUG, BS_CONTROLLER, BSC09, "LoadFinished");
Become(&TThis::StateWork);
- while (!InitQueue.empty()) {
- TAutoPtr<IEventHandle> &ev = InitQueue.front();
- STLOG(PRI_DEBUG, BS_CONTROLLER, BSC08, "Dequeue", (TabletID, TabletID()), (Type, ev->GetTypeRewrite()),
- (Event, ev->ToString()));
- TActivationContext::Send(ev.Release());
- InitQueue.pop_front();
- }
-
ValidateInternalState();
UpdatePDisksCounters();
IssueInitialGroupContent();
@@ -2041,6 +2039,13 @@ public:
StartVirtualGroupSetupMachine(info.Get());
}
}
+
+ for (; !InitQueue.empty(); InitQueue.pop_front()) {
+ TAutoPtr<IEventHandle> &ev = InitQueue.front();
+ STLOG(PRI_DEBUG, BS_CONTROLLER, BSC08, "Dequeue", (TabletID, TabletID()), (Type, ev->GetTypeRewrite()),
+ (Event, ev->ToString()));
+ StateWork(ev);
+ }
}
void UpdatePDisksCounters() {
@@ -2227,7 +2232,7 @@ public:
void Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev);
void Handle(TEvTabletPipe::TEvServerDisconnected::TPtr& ev);
- void OnRegisterNode(const TActorId& serverId, TNodeId nodeId);
+ bool OnRegisterNode(const TActorId& serverId, TNodeId nodeId);
void OnWardenConnected(TNodeId nodeId);
void OnWardenDisconnected(TNodeId nodeId);
void EraseKnownDrivesOnDisconnected(TNodeInfo *nodeInfo);
diff --git a/ydb/core/mind/bscontroller/register_node.cpp b/ydb/core/mind/bscontroller/register_node.cpp
index 3717faab22..7fd5fc5e52 100644
--- a/ydb/core/mind/bscontroller/register_node.cpp
+++ b/ydb/core/mind/bscontroller/register_node.cpp
@@ -236,7 +236,9 @@ public:
UpdateNodeDrivesRecord.AddDrivesData()->CopyFrom(data);
}
- Self->OnRegisterNode(request->Recipient, nodeId);
+ if (!Self->OnRegisterNode(request->Recipient, nodeId)) {
+ return true;
+ }
Self->ProcessVDiskStatus(record.GetVDiskStatus());
// create map of group ids to their generations as reported by the node warden
@@ -408,7 +410,7 @@ void TBlobStorageController::ReadPDisk(const TPDiskId& pdiskId, const TPDiskInfo
(PDiskId, pdiskId.PDiskId));
}
}
- pDisk->SetExpectedSerial(pdisk.ExpectedSerial);
+ //pDisk->SetExpectedSerial(pdisk.ExpectedSerial);
pDisk->SetManagementStage(SerialManagementStage);
pDisk->SetSpaceColorBorder(PDiskSpaceColorBorder);
pDisk->SetEntityStatus(entityStatus);
@@ -469,7 +471,7 @@ void TBlobStorageController::Handle(TEvTabletPipe::TEvServerDisconnected::TPtr&
}
}
-void TBlobStorageController::OnRegisterNode(const TActorId& serverId, TNodeId nodeId) {
+bool TBlobStorageController::OnRegisterNode(const TActorId& serverId, TNodeId nodeId) {
if (auto it = PipeServerToNode.find(serverId); it != PipeServerToNode.end()) {
if (!it->second) {
it->second = nodeId;
@@ -477,8 +479,9 @@ void TBlobStorageController::OnRegisterNode(const TActorId& serverId, TNodeId no
} else {
Y_VERIFY_DEBUG(*it->second == nodeId);
}
+ return true;
} else {
- Y_VERIFY_DEBUG(false);
+ return false;
}
}
diff --git a/ydb/core/mind/bscontroller/self_heal.cpp b/ydb/core/mind/bscontroller/self_heal.cpp
index 94eeb42da4..c3254838b1 100644
--- a/ydb/core/mind/bscontroller/self_heal.cpp
+++ b/ydb/core/mind/bscontroller/self_heal.cpp
@@ -42,19 +42,22 @@ namespace NKikimr::NBsController {
const std::optional<TVDiskID> VDiskToReplace;
std::shared_ptr<TBlobStorageGroupInfo::TTopology> Topology;
TBlobStorageGroupInfo::TGroupVDisks FailedGroupDisks;
+ const bool IsSelfHealReasonDecommit;
THashSet<TVDiskID> PendingVDisks;
THashMap<TActorId, TVDiskID> ActorToDiskMap;
THashMap<TNodeId, TVector<TVDiskID>> NodeToDiskMap;
public:
TReassignerActor(TActorId controllerId, TGroupId groupId, TEvControllerUpdateSelfHealInfo::TGroupContent group,
- std::optional<TVDiskID> vdiskToReplace, std::shared_ptr<TBlobStorageGroupInfo::TTopology> topology)
+ std::optional<TVDiskID> vdiskToReplace, std::shared_ptr<TBlobStorageGroupInfo::TTopology> topology,
+ bool isSelfHealReasonDecommit)
: ControllerId(controllerId)
, GroupId(groupId)
, Group(std::move(group))
, VDiskToReplace(vdiskToReplace)
, Topology(std::move(topology))
, FailedGroupDisks(Topology.get())
+ , IsSelfHealReasonDecommit(isSelfHealReasonDecommit)
{}
void Bootstrap(const TActorId& parent) {
@@ -149,6 +152,7 @@ namespace NKikimr::NBsController {
auto *request = record.MutableRequest();
request->SetIgnoreGroupReserve(true);
request->SetSettleOnlyOnOperationalDisks(true);
+ request->SetIsSelfHealReasonDecommit(IsSelfHealReasonDecommit);
if (VDiskToReplace) {
auto *cmd = request->AddCommand()->MutableReassignGroupDisk();
cmd->SetGroupId(VDiskToReplace->GroupID);
@@ -405,9 +409,11 @@ namespace NKikimr::NBsController {
}
// check if it is possible to move anything out
- if (const auto v = FindVDiskToReplace(group.VDiskStatus, group.Content, now, group.Topology.get())) {
+ bool isSelfHealReasonDecommit;
+ if (const auto v = FindVDiskToReplace(group.VDiskStatus, group.Content, now, group.Topology.get(),
+ &isSelfHealReasonDecommit)) {
group.ReassignerActorId = Register(new TReassignerActor(ControllerId, group.GroupId, group.Content,
- *v, group.Topology));
+ *v, group.Topology, isSelfHealReasonDecommit));
} else {
++counter; // this group can't be reassigned right now
}
@@ -440,7 +446,7 @@ namespace NKikimr::NBsController {
ADD_RECORD_WITH_TIMESTAMP_TO_OPERATION_LOG(GroupLayoutSanitizerOperationLog,
"Start sanitizing GroupId# " << group.GroupId << " GroupGeneration# " << group.Content.Generation);
group.ReassignerActorId = Register(new TReassignerActor(ControllerId, group.GroupId, group.Content,
- std::nullopt, group.Topology));
+ std::nullopt, group.Topology, false /*isSelfHealReasonDecommit*/));
}
}
}
@@ -491,7 +497,7 @@ namespace NKikimr::NBsController {
std::optional<TVDiskID> FindVDiskToReplace(const THashMap<TVDiskID, TVDiskStatusTracker>& tracker,
const TEvControllerUpdateSelfHealInfo::TGroupContent& content, TInstant now,
- TBlobStorageGroupInfo::TTopology *topology) {
+ TBlobStorageGroupInfo::TTopology *topology, bool *isSelfHealReasonDecommit) {
// main idea of selfhealing is step-by-step healing of bad group; we can allow healing of group with more
// than one disk missing, but we should not move next faulty disk until previous one is replicated, at least
// partially (meaning only phantoms left)
@@ -537,6 +543,7 @@ namespace NKikimr::NBsController {
} else if (checker.IsDegraded(failed) < checker.IsDegraded(newFailed)) {
continue; // this group will become degraded when applying self-heal logic, skip disk
}
+ *isSelfHealReasonDecommit = vdisk.IsSelfHealReasonDecommit;
return vdiskId;
}
}
@@ -906,6 +913,7 @@ namespace NKikimr::NBsController {
slot->PDisk->ShouldBeSettledBySelfHeal(),
slot->PDisk->BadInTermsOfSelfHeal(),
slot->PDisk->Decommitted(),
+ slot->PDisk->IsSelfHealReasonDecommit(),
slot->OnlyPhantomsRemain,
slot->IsReady,
slot->Status,
diff --git a/ydb/core/mind/bscontroller/self_heal.h b/ydb/core/mind/bscontroller/self_heal.h
index e6ae183753..946f822ad1 100644
--- a/ydb/core/mind/bscontroller/self_heal.h
+++ b/ydb/core/mind/bscontroller/self_heal.h
@@ -15,6 +15,7 @@ namespace NKikimr::NBsController {
bool Faulty;
bool Bad;
bool Decommitted;
+ bool IsSelfHealReasonDecommit;
bool OnlyPhantomsRemain;
bool IsReady;
NKikimrBlobStorage::EVDiskStatus VDiskStatus;
diff --git a/ydb/core/mind/bscontroller/ut_selfheal/env.h b/ydb/core/mind/bscontroller/ut_selfheal/env.h
index 197ab4b4f7..e7e5f0e740 100644
--- a/ydb/core/mind/bscontroller/ut_selfheal/env.h
+++ b/ydb/core/mind/bscontroller/ut_selfheal/env.h
@@ -194,6 +194,11 @@ struct TEnvironmentSetup {
Runtime->Sim([&] { return working; }, [&](IEventHandle& event) { working = event.GetTypeRewrite() != TEvTablet::EvBoot; });
}
+ void Sim(TDuration duration) {
+ const auto end = Runtime->GetClock() + duration;
+ Runtime->Sim([&] { return Runtime->GetClock() <= end; });
+ }
+
void WaitForNodeWardensToConnect() {
std::vector<TActorId> edges;
for (ui32 nodeId : Runtime->GetNodes()) {
diff --git a/ydb/core/mind/bscontroller/ut_selfheal/main.cpp b/ydb/core/mind/bscontroller/ut_selfheal/main.cpp
index 603d93cc2c..30592dbf25 100644
--- a/ydb/core/mind/bscontroller/ut_selfheal/main.cpp
+++ b/ydb/core/mind/bscontroller/ut_selfheal/main.cpp
@@ -5,6 +5,7 @@
#include "env.h"
#include <ydb/core/mind/bscontroller/layout_helpers.h>
+#include <ydb/core/util/pb.h>
Y_UNIT_TEST_SUITE(BsControllerTest) {
@@ -123,4 +124,85 @@ Y_UNIT_TEST_SUITE(BsControllerTest) {
Y_UNIT_TEST(SelfHealMirror3dc) {
TestSelfHeal(3, 4, 3, 4, 128, "mirror-3-dc", TBlobStorageGroupType::ErasureMirror3dc);
}
+
+ Y_UNIT_TEST(DecommitRejected) {
+ for (const bool useRejected : {false, true}) {
+ constexpr ui32 numNodes = 3 + 3 + 6 + 3;
+ const ui32 nodeToDataCenter[numNodes] = {1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4};
+
+ auto locationGenerator = [&](ui32 nodeId) {
+ return TNodeLocation(ToString(nodeToDataCenter[nodeId - 1]), TString(), ToString(nodeId - 1), ToString(nodeId - 1));
+ };
+
+ TEnvironmentSetup env(numNodes, locationGenerator);
+
+ NKikimrBlobStorage::TConfigRequest request;
+
+ TVector<TEnvironmentSetup::TDrive> drives;
+ drives.push_back({.Path = "/dev/disk"});
+ env.DefineBox(1, drives, {{1, numNodes}}, &request);
+
+ env.DefineStoragePool(1, 1, 1, drives[0].Type, {}, &request, "mirror-3-dc");
+
+ auto response = env.Invoke(request);
+ UNIT_ASSERT_C(response.GetSuccess(), response.GetErrorDescription());
+
+ request.Clear();
+ auto *cmd = request.AddCommand()->MutableEnableSelfHeal();
+ cmd->SetEnable(true);
+ response = env.Invoke(request);
+ UNIT_ASSERT_C(response.GetSuccess(), response.GetErrorDescription());
+
+ env.Sim(TDuration::Minutes(1));
+
+ request.Clear();
+ env.QueryBaseConfig(&request);
+ response = env.Invoke(request);
+ UNIT_ASSERT_C(response.GetSuccess(), response.GetErrorDescription());
+
+ request.Clear();
+ for (const auto& pdisk : response.GetStatus(0).GetBaseConfig().GetPDisk()) {
+ const ui32 nodeId = pdisk.GetNodeId();
+ if (nodeId >= 7 && nodeId <= 9) {
+ auto *cmd = request.AddCommand()->MutableUpdateDriveStatus();
+ cmd->MutableHostKey()->SetNodeId(nodeId);
+ cmd->SetPDiskId(pdisk.GetPDiskId());
+ cmd->SetDecommitStatus(NKikimrBlobStorage::EDecommitStatus::DECOMMIT_IMMINENT);
+ }
+ if (useRejected && nodeId >= 10 && nodeId <= 12) {
+ auto *cmd = request.AddCommand()->MutableUpdateDriveStatus();
+ cmd->MutableHostKey()->SetNodeId(nodeId);
+ cmd->SetPDiskId(pdisk.GetPDiskId());
+ cmd->SetDecommitStatus(NKikimrBlobStorage::EDecommitStatus::DECOMMIT_REJECTED);
+ }
+ }
+ env.DefineStoragePool(1, 2, 1, drives[0].Type, {}, &request, "mirror-3-dc");
+ response = env.Invoke(request);
+ UNIT_ASSERT_C(response.GetSuccess(), response.GetErrorDescription());
+
+ env.Sim(TDuration::Minutes(10));
+
+ request.Clear();
+ env.QueryBaseConfig(&request);
+ response = env.Invoke(request);
+ UNIT_ASSERT_C(response.GetSuccess(), response.GetErrorDescription());
+
+ THashSet<ui32> group0nodes, group1nodes;
+
+ for (const auto& vdisk : response.GetStatus(0).GetBaseConfig().GetVSlot()) {
+ if (vdisk.GetGroupId() == 0x80000000) {
+ group0nodes.insert(vdisk.GetVSlotId().GetNodeId());
+ } else {
+ group1nodes.insert(vdisk.GetVSlotId().GetNodeId());
+ }
+ }
+
+ if (useRejected) {
+ UNIT_ASSERT_EQUAL(group0nodes, (THashSet<ui32>{{1, 2, 3, 4, 5, 6, 13, 14, 15}}));
+ } else {
+ UNIT_ASSERT_EQUAL(group0nodes, (THashSet<ui32>{{1, 2, 3, 4, 5, 6, 10, 11, 12}}));
+ }
+ UNIT_ASSERT_EQUAL(group1nodes, (THashSet<ui32>{{1, 2, 3, 10, 11, 12, 13, 14, 15}}));
+ }
+ }
}
diff --git a/ydb/core/mind/dynamic_nameserver_mon.cpp b/ydb/core/mind/dynamic_nameserver_mon.cpp
index 65a3b9664e..782f766130 100644
--- a/ydb/core/mind/dynamic_nameserver_mon.cpp
+++ b/ydb/core/mind/dynamic_nameserver_mon.cpp
@@ -173,6 +173,10 @@ void TDynamicNameserver::Handle(NMon::TEvHttpInfo::TPtr &ev, const TActorContext
<< " <td>" << config->MaxStaticNodeId << "</td>" << Endl
<< " </tr>" << Endl
<< " <tr>" << Endl
+ << " <td class='right-align'>Min dynamic node ID:</td>" << Endl
+ << " <td>" << config->MinDynamicNodeId << "</td>" << Endl
+ << " </tr>" << Endl
+ << " <tr>" << Endl
<< " <td class='right-align'>Max dynamic node ID:</td>" << Endl
<< " <td>" << config->MaxDynamicNodeId << "</td>" << Endl
<< " </tr>" << Endl
diff --git a/ydb/core/mind/hive/hive_impl.cpp b/ydb/core/mind/hive/hive_impl.cpp
index 682a54888c..30ea7e4fc2 100644
--- a/ydb/core/mind/hive/hive_impl.cpp
+++ b/ydb/core/mind/hive/hive_impl.cpp
@@ -50,11 +50,6 @@ void THive::Handle(TEvHive::TEvAdoptTablet::TPtr& ev) {
Execute(CreateAdoptTablet(rec, ev->Sender, ev->Cookie));
}
-void THive::Handle(TEvents::TEvPoisonPill::TPtr&) {
- BLOG_D("Handle TEvents::TEvPoisonPill");
- Send(Tablet(), new TEvents::TEvPoisonPill);
-}
-
void THive::Handle(TEvTabletPipe::TEvClientConnected::TPtr& ev) {
TEvTabletPipe::TEvClientConnected *msg = ev->Get();
if (msg->ClientId == BSControllerPipeClient && msg->Status != NKikimrProto::OK) {
@@ -2567,7 +2562,6 @@ void THive::ProcessEvent(std::unique_ptr<IEventHandle> event) {
hFunc(TEvLocal::TEvTabletStatus, Handle); // from bootqueue
hFunc(TEvLocal::TEvRegisterNode, Handle); // from local
hFunc(TEvBlobStorage::TEvControllerSelectGroupsResult, Handle);
- hFunc(TEvents::TEvPoisonPill, Handle);
hFunc(TEvTabletPipe::TEvClientConnected, Handle);
hFunc(TEvTabletPipe::TEvClientDestroyed, Handle);
hFunc(TEvTabletPipe::TEvServerConnected, Handle);
@@ -2639,6 +2633,10 @@ void THive::EnqueueIncomingEvent(STATEFN_SIG) {
STFUNC(THive::StateInit) {
switch (ev->GetTypeRewrite()) {
hFunc(TEvInterconnect::TEvNodesInfo, Handle);
+ // We subscribe to config updates before hive is fully loaded
+ hFunc(TEvPrivate::TEvProcessIncomingEvent, Handle);
+ fFunc(NConsole::TEvConsole::TEvConfigNotificationRequest::EventType, EnqueueIncomingEvent);
+ fFunc(NConsole::TEvConfigsDispatcher::TEvSetConfigSubscriptionResponse::EventType, EnqueueIncomingEvent);
default:
StateInitImpl(ev, SelfId());
}
@@ -2657,7 +2655,6 @@ STFUNC(THive::StateWork) {
fFunc(TEvLocal::TEvTabletStatus::EventType, EnqueueIncomingEvent); // from bootqueue
fFunc(TEvLocal::TEvRegisterNode::EventType, EnqueueIncomingEvent); // from local
fFunc(TEvBlobStorage::TEvControllerSelectGroupsResult::EventType, EnqueueIncomingEvent);
- fFunc(TEvents::TEvPoisonPill::EventType, EnqueueIncomingEvent);
fFunc(TEvTabletPipe::TEvClientConnected::EventType, EnqueueIncomingEvent);
fFunc(TEvTabletPipe::TEvClientDestroyed::EventType, EnqueueIncomingEvent);
fFunc(TEvTabletPipe::TEvServerConnected::EventType, EnqueueIncomingEvent);
diff --git a/ydb/core/mind/hive/hive_impl.h b/ydb/core/mind/hive/hive_impl.h
index 49f35e549c..282e6f6ec4 100644
--- a/ydb/core/mind/hive/hive_impl.h
+++ b/ydb/core/mind/hive/hive_impl.h
@@ -445,7 +445,6 @@ protected:
void Handle(TEvLocal::TEvTabletStatus::TPtr&);
void Handle(TEvLocal::TEvRegisterNode::TPtr&);
void Handle(TEvBlobStorage::TEvControllerSelectGroupsResult::TPtr&);
- void Handle(TEvents::TEvPoisonPill::TPtr&);
void Handle(TEvTabletPipe::TEvClientConnected::TPtr&);
void Handle(TEvTabletPipe::TEvClientDestroyed::TPtr&);
void Handle(TEvTabletPipe::TEvServerConnected::TPtr&);
diff --git a/ydb/core/mind/hive/node_info.cpp b/ydb/core/mind/hive/node_info.cpp
index bd5c0368f4..104e0a2705 100644
--- a/ydb/core/mind/hive/node_info.cpp
+++ b/ydb/core/mind/hive/node_info.cpp
@@ -4,6 +4,8 @@
namespace NKikimr {
namespace NHive {
+const ui64 TNodeInfo::MAX_TABLET_COUNT_DEFAULT_VALUE = NKikimrLocal::TTabletAvailability().GetMaxCount();
+
TNodeInfo::TNodeInfo(TNodeId nodeId, THive& hive)
: VolatileState(EVolatileState::Unknown)
, Hive(hive)
@@ -244,14 +246,14 @@ bool TNodeInfo::IsAbleToRunTablet(const TTabletInfo& tablet, TTabletDebugState*
maxCount = itTabletAvailability->second.GetMaxCount();
}
}
- if (maxCount == 0) {
+ if (maxCount == MAX_TABLET_COUNT_DEFAULT_VALUE) {
const std::unordered_map<TTabletTypes::EType, NKikimrConfig::THiveTabletLimit>& tabletLimit = Hive.GetTabletLimit();
auto itTabletLimit = tabletLimit.find(tabletType);
if (itTabletLimit != tabletLimit.end()) {
maxCount = itTabletLimit->second.GetMaxCount();
}
}
- if (maxCount != 0) {
+ if (maxCount != MAX_TABLET_COUNT_DEFAULT_VALUE) {
ui64 currentCount = GetTabletsRunningByType(tabletType);
if (currentCount >= maxCount) {
if (debugState) {
diff --git a/ydb/core/mind/hive/node_info.h b/ydb/core/mind/hive/node_info.h
index d615b44209..c6633df8c0 100644
--- a/ydb/core/mind/hive/node_info.h
+++ b/ydb/core/mind/hive/node_info.h
@@ -30,6 +30,7 @@ struct TNodeInfo {
protected:
EVolatileState VolatileState;
+ static const ui64 MAX_TABLET_COUNT_DEFAULT_VALUE;
public:
THive& Hive;
diff --git a/ydb/core/mind/local.cpp b/ydb/core/mind/local.cpp
index 961d73701a..d8aa3c61d1 100644
--- a/ydb/core/mind/local.cpp
+++ b/ydb/core/mind/local.cpp
@@ -193,8 +193,8 @@ class TLocalNodeRegistrar : public TActorBootstrapped<TLocalNodeRegistrar> {
for (const auto& [tabletType, tabletInfo] : Config->TabletClassInfo) {
NKikimrLocal::TTabletAvailability* tabletAvailability = request->Record.AddTabletAvailability();
tabletAvailability->SetType(tabletType);
- if (tabletInfo.MaxCount != 0) {
- tabletAvailability->SetMaxCount(tabletInfo.MaxCount);
+ if (tabletInfo.MaxCount) {
+ tabletAvailability->SetMaxCount(*tabletInfo.MaxCount);
}
tabletAvailability->SetPriority(tabletInfo.Priority);
}
@@ -648,12 +648,11 @@ class TLocalNodeRegistrar : public TActorBootstrapped<TLocalNodeRegistrar> {
const auto& poolStats(info.GetPoolStats(AppData()->UserPoolId));
UserPoolUsage = poolStats.usage() * poolStats.threads() * 1000000; // uS
}
+
+ // Note: we use allocated memory because MemoryUsed(AnonRSS) has lag
if (info.HasMemoryUsedInAlloc()) {
MemUsage = info.GetMemoryUsedInAlloc();
}
- /*if (info.HasMemoryUsed()) {
- MemUsage = info.GetMemoryUsed();
- }*/
double usage = 0;
diff --git a/ydb/core/mind/local.h b/ydb/core/mind/local.h
index 466e88dd33..5b198a8f90 100644
--- a/ydb/core/mind/local.h
+++ b/ydb/core/mind/local.h
@@ -355,7 +355,7 @@ struct TLocalConfig : public TThrRefBase {
struct TTabletClassInfo {
TTabletSetupInfo::TPtr SetupInfo;
- ui64 MaxCount = 0; // maximum allowed number of running tablets, 0 means unlimited
+ std::optional<ui64> MaxCount; // maximum allowed number of running tablets, nullopt means unlimited
i32 Priority = 0;
TTabletClassInfo()
diff --git a/ydb/core/mind/node_broker.cpp b/ydb/core/mind/node_broker.cpp
index 9027d0540d..e197db1022 100644
--- a/ydb/core/mind/node_broker.cpp
+++ b/ydb/core/mind/node_broker.cpp
@@ -62,7 +62,8 @@ void TNodeBroker::OnActivateExecutor(const TActorContext &ctx)
SingleDomainAlloc = SingleDomain && appData->FeatureFlags.GetEnableNodeBrokerSingleDomainMode();
MaxStaticId = Min(appData->DynamicNameserviceConfig->MaxStaticNodeId, TActorId::MaxNodeId);
- MaxDynamicId = Min(appData->DynamicNameserviceConfig->MaxDynamicNodeId, TActorId::MaxNodeId);
+ MinDynamicId = Max(MaxStaticId + 1, (ui64)Min(appData->DynamicNameserviceConfig->MinDynamicNodeId, TActorId::MaxNodeId));
+ MaxDynamicId = Max(MinDynamicId, (ui64)Min(appData->DynamicNameserviceConfig->MaxDynamicNodeId, TActorId::MaxNodeId));
ClearState();
@@ -203,10 +204,10 @@ void TNodeBroker::RecomputeFreeIds()
FreeIds.Clear();
if (SingleDomainAlloc) {
- FreeIds.Set(MaxStaticId + 1, MaxDynamicId + 1);
+ FreeIds.Set(MinDynamicId, MaxDynamicId + 1);
} else {
- auto firstId = RewriteNodeId(MaxStaticId + 1);
- if (firstId <= MaxStaticId)
+ auto firstId = RewriteNodeId(MinDynamicId);
+ if (firstId < MinDynamicId)
firstId += NodeIdStep();
auto lastId = RewriteNodeId(MaxDynamicId);
@@ -753,13 +754,6 @@ void TNodeBroker::Handle(TEvConsole::TEvReplaceConfigSubscriptionsResponse::TPtr
ProcessTx(0, CreateTxUpdateConfigSubscription(ev), ctx);
}
-void TNodeBroker::Handle(TEvents::TEvPoisonPill::TPtr &ev,
- const TActorContext &ctx)
-{
- Y_UNUSED(ev);
- ctx.Send(Tablet(), new TEvents::TEvPoisonPill);
-}
-
void TNodeBroker::Handle(TEvNodeBroker::TEvListNodes::TPtr &ev,
const TActorContext &)
{
diff --git a/ydb/core/mind/node_broker_impl.h b/ydb/core/mind/node_broker_impl.h
index 8838a213ad..3b46c172f7 100644
--- a/ydb/core/mind/node_broker_impl.h
+++ b/ydb/core/mind/node_broker_impl.h
@@ -178,7 +178,6 @@ private:
switch (ev->GetTypeRewrite()) {
HFuncTraced(TEvConsole::TEvConfigNotificationRequest, Handle);
HFuncTraced(TEvConsole::TEvReplaceConfigSubscriptionsResponse, Handle);
- HFuncTraced(TEvents::TEvPoisonPill, Handle);
HFuncTraced(TEvNodeBroker::TEvListNodes, Handle);
HFuncTraced(TEvNodeBroker::TEvResolveNode, Handle);
HFuncTraced(TEvNodeBroker::TEvRegistrationRequest, Handle);
@@ -281,8 +280,6 @@ private:
const TActorContext &ctx);
void Handle(TEvConsole::TEvReplaceConfigSubscriptionsResponse::TPtr &ev,
const TActorContext &ctx);
- void Handle(TEvents::TEvPoisonPill::TPtr &ev,
- const TActorContext &ctx);
void Handle(TEvNodeBroker::TEvListNodes::TPtr &ev,
const TActorContext &ctx);
void Handle(TEvNodeBroker::TEvResolveNode::TPtr &ev,
@@ -314,6 +311,7 @@ private:
// Current config.
NKikimrNodeBroker::TConfig Config;
ui64 MaxStaticId;
+ ui64 MinDynamicId;
ui64 MaxDynamicId;
TDuration EpochDuration;
TVector<std::pair<ui32, ui32>> BannedIds;
diff --git a/ydb/core/mind/node_broker_ut.cpp b/ydb/core/mind/node_broker_ut.cpp
index c5a1be3371..2f6de4e58f 100644
--- a/ydb/core/mind/node_broker_ut.cpp
+++ b/ydb/core/mind/node_broker_ut.cpp
@@ -153,6 +153,7 @@ void SetupServices(TTestActorRuntime &runtime,
runtime.GetAppData().DynamicNameserviceConfig = new TDynamicNameserviceConfig;
auto dnConfig = runtime.GetAppData().DynamicNameserviceConfig;
dnConfig->MaxStaticNodeId = 1023;
+ dnConfig->MinDynamicNodeId = 1024;
dnConfig->MaxDynamicNodeId = 1024 + (singleDomainMode ? (maxDynNodes - 1) : 32 * (maxDynNodes - 1));
runtime.GetAppData().FeatureFlags.SetEnableNodeBrokerSingleDomainMode(singleDomainMode);
@@ -1206,6 +1207,37 @@ Y_UNIT_TEST_SUITE(TNodeBrokerTest) {
WaitForEpochUpdate(runtime, sender);
epoch = CheckNodesList(runtime, sender, {1024}, {}, 3);
}
+
+ Y_UNIT_TEST(MinDynamicNodeIdShifted)
+ {
+ TTestBasicRuntime runtime(8, false);
+ Setup(runtime);
+ TActorId sender = runtime.AllocateEdgeActor();
+
+ // There should be no dynamic nodes initially.
+ auto epoch = GetEpoch(runtime, sender);
+ // Register node 1024.
+ CheckRegistration(runtime, sender, "host1", 1001, "host1.yandex.net", "1.2.3.4",
+ 1, 2, 3, 4, TStatus::OK, 1024, epoch.GetNextEnd());
+
+ // Update config and restart NodeBroker
+ auto dnConfig = runtime.GetAppData().DynamicNameserviceConfig;
+ dnConfig->MinDynamicNodeId += 64;
+ dnConfig->MaxDynamicNodeId += 64;
+ RestartNodeBroker(runtime);
+
+ // Register node 1088.
+ CheckRegistration(runtime, sender, "host2", 1001, "host2.yandex.net", "1.2.3.5",
+ 1, 2, 3, 5, TStatus::OK, 1088, epoch.GetNextEnd());
+
+ // Wait until epoch expiration.
+ WaitForEpochUpdate(runtime, sender);
+ epoch = GetEpoch(runtime, sender);
+
+ // Check lease extension for both nodes.
+ CheckLeaseExtension(runtime, sender, 1024, TStatus::OK, epoch);
+ CheckLeaseExtension(runtime, sender, 1088, TStatus::OK, epoch);
+ }
}
Y_UNIT_TEST_SUITE(TDynamicNameserverTest) {
diff --git a/ydb/core/mind/tenant_slot_broker.cpp b/ydb/core/mind/tenant_slot_broker.cpp
index 5be6683ff1..c8c8be0e81 100644
--- a/ydb/core/mind/tenant_slot_broker.cpp
+++ b/ydb/core/mind/tenant_slot_broker.cpp
@@ -402,6 +402,11 @@ ui64 TTenantSlotBroker::Generation() const {
return Executor()->Generation();
}
+void TTenantSlotBroker::DefaultSignalTabletActive(const TActorContext &)
+{
+ // must be empty
+}
+
void TTenantSlotBroker::OnActivateExecutor(const TActorContext &ctx)
{
RequestId = Now().GetValue();
@@ -415,8 +420,6 @@ void TTenantSlotBroker::OnActivateExecutor(const TActorContext &ctx)
tabletCounters->RemoveSubgroup("type", "TENANT_SLOT_BROKER");
Counters = new TCounters(tabletCounters->GetSubgroup("type", "TENANT_SLOT_BROKER"));
- NConsole::SubscribeViaConfigDispatcher(ctx, {(ui32)NKikimrConsole::TConfigItem::TenantSlotBrokerConfigItem}, ctx.SelfID);
-
ProcessTx(CreateTxInitScheme(), ctx);
}
@@ -437,14 +440,6 @@ void TTenantSlotBroker::OnTabletDead(TEvTablet::TEvTabletDead::TPtr &,
Die(ctx);
}
-void TTenantSlotBroker::Enqueue(TAutoPtr<IEventHandle> &ev)
-{
- LOG_DEBUG(*TlsActivationContext, NKikimrServices::TENANT_SLOT_BROKER,
- "Enqueue: %" PRIu64 ", event type: %" PRIu32 " event: %s",
- TabletID(), ev->GetTypeRewrite(), ev->ToString().data());
- InitQueue.push_back(ev);
-}
-
bool TTenantSlotBroker::OnRenderAppHtmlPage(NMon::TEvRemoteHttpInfo::TPtr ev,
const TActorContext &ctx)
{
@@ -627,16 +622,12 @@ void TTenantSlotBroker::LoadConfigFromProto(const NKikimrTenantSlotBroker::TConf
PendingTimeout = TDuration::MicroSeconds(config.GetPendingSlotTimeout());
}
-void TTenantSlotBroker::ProcessEnqueuedEvents(const TActorContext &ctx)
+void TTenantSlotBroker::SwitchToWork(const TActorContext &ctx)
{
- while (!InitQueue.empty()) {
- TAutoPtr<IEventHandle> &ev = InitQueue.front();
- LOG_DEBUG(ctx, NKikimrServices::TENANT_SLOT_BROKER,
- "Dequeue: %" PRIu64 ", event type: %" PRIu32 " event: %s",
- TabletID(), ev->GetTypeRewrite(), ev->ToString().data());
- ctx.ExecutorThread.Send(ev.Release());
- InitQueue.pop_front();
- }
+ Become(&TTenantSlotBroker::StateWork);
+ SignalTabletActive(ctx);
+
+ NConsole::SubscribeViaConfigDispatcher(ctx, {(ui32)NKikimrConsole::TConfigItem::TenantSlotBrokerConfigItem}, ctx.SelfID);
}
void TTenantSlotBroker::ClearState()
@@ -1650,13 +1641,6 @@ void TTenantSlotBroker::Handle(TEvConsole::TEvReplaceConfigSubscriptionsResponse
"Got config subscription id=" << ConfigSubscriptionId);
}
-void TTenantSlotBroker::Handle(TEvents::TEvPoisonPill::TPtr &ev,
- const TActorContext &ctx)
-{
- Y_UNUSED(ev);
- ctx.Send(Tablet(), new TEvents::TEvPoisonPill);
-}
-
void TTenantSlotBroker::Handle(TEvents::TEvUndelivered::TPtr &ev,
const TActorContext &ctx)
{
diff --git a/ydb/core/mind/tenant_slot_broker__load_state.cpp b/ydb/core/mind/tenant_slot_broker__load_state.cpp
index 345b131ea3..6b1c9a5730 100644
--- a/ydb/core/mind/tenant_slot_broker__load_state.cpp
+++ b/ydb/core/mind/tenant_slot_broker__load_state.cpp
@@ -188,8 +188,7 @@ public:
{
LOG_DEBUG(ctx, NKikimrServices::TENANT_SLOT_BROKER, "TTxLoadState Complete");
- Self->Become(&TTenantSlotBroker::StateWork);
- Self->ProcessEnqueuedEvents(ctx);
+ Self->SwitchToWork(ctx);
Self->TxCompleted(this, ctx);
}
diff --git a/ydb/core/mind/tenant_slot_broker_impl.h b/ydb/core/mind/tenant_slot_broker_impl.h
index 54772f58c3..3860ada118 100644
--- a/ydb/core/mind/tenant_slot_broker_impl.h
+++ b/ydb/core/mind/tenant_slot_broker_impl.h
@@ -945,11 +945,11 @@ private:
ui64 Generation() const;
+ void DefaultSignalTabletActive(const TActorContext &ctx) override;
void OnActivateExecutor(const TActorContext &ctx) override;
void OnDetach(const TActorContext &ctx) override;
void OnTabletDead(TEvTablet::TEvTabletDead::TPtr &ev,
const TActorContext &ctx) override;
- void Enqueue(TAutoPtr<IEventHandle> &ev) override;
bool OnRenderAppHtmlPage(NMon::TEvRemoteHttpInfo::TPtr ev,
const TActorContext &ctx) override;
@@ -957,7 +957,7 @@ private:
void Die(const TActorContext &ctx) override;
void LoadConfigFromProto(const NKikimrTenantSlotBroker::TConfig &config);
- void ProcessEnqueuedEvents(const TActorContext &ctx);
+ void SwitchToWork(const TActorContext &ctx);
void ClearState();
@@ -1061,8 +1061,6 @@ private:
const TActorContext &ctx);
void Handle(TEvConsole::TEvReplaceConfigSubscriptionsResponse::TPtr &ev,
const TActorContext &ctx);
- void Handle(TEvents::TEvPoisonPill::TPtr &ev,
- const TActorContext &ctx);
void Handle(TEvents::TEvUndelivered::TPtr &ev,
const TActorContext &ctx);
void Handle(TEvInterconnect::TEvNodeInfo::TPtr &ev,
@@ -1105,7 +1103,6 @@ private:
switch (ev->GetTypeRewrite()) {
HFuncTraced(TEvConsole::TEvConfigNotificationRequest, Handle);
HFuncTraced(TEvConsole::TEvReplaceConfigSubscriptionsResponse, Handle);
- HFuncTraced(TEvents::TEvPoisonPill, Handle);
HFuncTraced(TEvents::TEvUndelivered, Handle);
HFuncTraced(TEvInterconnect::TEvNodeInfo, Handle);
HFuncTraced(TEvPrivate::TEvCheckAllSlotsStatus, Handle);
@@ -1152,7 +1149,6 @@ public:
}
private:
- TDeque<TAutoPtr<IEventHandle>> InitQueue;
NKikimrTenantSlotBroker::TConfig Config;
TDuration PendingTimeout;
ui64 RequestId;
diff --git a/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp b/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp
index d78e767c97..98ba8a7b5f 100644
--- a/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp
+++ b/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp
@@ -349,7 +349,7 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) {
UNIT_ASSERT(getResult->ResponseSz == 1);
UNIT_ASSERT(getResult->Responses.Get());
UNIT_ASSERT_EQUAL((getResult->Responses)[0].Buffer.size(), data.size());
- UNIT_ASSERT_EQUAL((getResult->Responses)[0].Buffer, data);
+ UNIT_ASSERT_EQUAL((getResult->Responses)[0].Buffer.ConvertToString(), data);
}
void VGet(TTestActorRuntime &runtime, TActorId &sender, ui32 groupId, ui32 nodeId, TLogoBlobID logoBlobId,
diff --git a/ydb/core/mon/async_http_mon.cpp b/ydb/core/mon/async_http_mon.cpp
index fa5d69165a..220ff17217 100644
--- a/ydb/core/mon/async_http_mon.cpp
+++ b/ydb/core/mon/async_http_mon.cpp
@@ -16,6 +16,7 @@
#include <util/system/hostname.h>
+#include <ydb/core/base/counters.h>
#include <ydb/core/protos/mon.pb.h>
#include "mon_impl.h"
@@ -208,8 +209,16 @@ public:
}
SendRequest();
}
-
void ReplyWith(NHttp::THttpOutgoingResponsePtr response) {
+ TString url(Event->Get()->Request->URL.Before('?'));
+ TString status(response->Status);
+ NMonitoring::THistogramPtr ResponseTimeHgram = NKikimr::GetServiceCounters(NKikimr::AppData()->Counters, "utils")
+ ->GetSubgroup("subsystem", "mon")
+ ->GetSubgroup("url", url)
+ ->GetSubgroup("status", status)
+ ->GetHistogram("ResponseTimeMs", NMonitoring::ExponentialHistogram(20, 2, 1));
+ ResponseTimeHgram->Collect(Event->Get()->Request->Timer.Passed() * 1000);
+
Send(Event->Sender, new NHttp::TEvHttpProxy::TEvHttpOutgoingResponse(response));
}
diff --git a/ydb/core/mon_alloc/monitor.cpp b/ydb/core/mon_alloc/monitor.cpp
index d6b955f380..89162c206f 100644
--- a/ydb/core/mon_alloc/monitor.cpp
+++ b/ydb/core/mon_alloc/monitor.cpp
@@ -400,8 +400,11 @@ namespace NKikimr {
struct TDumpLogConfig {
static constexpr double RssUsageHard = 0.9;
static constexpr double RssUsageSoft = 0.85;
+ static constexpr double RssUsageSoftLimit = 0.8;
+ static constexpr double RssUsageNotifySlowLimit = 0.7;
static constexpr TDuration RepeatInterval = TDuration::Seconds(10);
static constexpr TDuration DumpInterval = TDuration::Minutes(10);
+ static constexpr TDuration NotifySlowInterval = TDuration::Seconds(10);
};
enum {
@@ -411,11 +414,13 @@ namespace NKikimr {
struct TEvDumpLogStats : public TEventLocal<TEvDumpLogStats, EvDumpLogStats> {};
+ const TIntrusivePtr<TMemObserver> MemObserver;
const TDuration Interval;
const std::unique_ptr<IAllocMonitor> AllocMonitor;
const TString FilePathPrefix;
TInstant LogMemoryStatsTime = TInstant::Now() - TDumpLogConfig::DumpInterval;
+ TInstant NotifyMemoryStatsTime = TInstant::Now() - TDumpLogConfig::NotifySlowInterval;
bool IsDangerous = false;
@@ -424,8 +429,9 @@ namespace NKikimr {
return EActivityType::ACTORLIB_STATS;
}
- TMemProfMonitor(TDuration interval, std::unique_ptr<IAllocMonitor> allocMonitor, const TString& filePathPrefix)
- : Interval(interval)
+ TMemProfMonitor(TIntrusivePtr<TMemObserver> memObserver, TDuration interval, std::unique_ptr<IAllocMonitor> allocMonitor, const TString& filePathPrefix)
+ : MemObserver(std::move(memObserver))
+ , Interval(interval)
, AllocMonitor(std::move(allocMonitor))
, FilePathPrefix(filePathPrefix)
{}
@@ -487,11 +493,10 @@ namespace NKikimr {
}
}
- void LogMemoryStatsIfNeeded(const TActorContext& ctx) noexcept {
- auto memoryUsage = TAllocState::GetMemoryUsage();
+ void LogMemoryStatsIfNeeded(const TActorContext& ctx, TMemoryUsage memoryUsage) noexcept {
auto usage = memoryUsage.Usage();
LOG_DEBUG_S(ctx, NKikimrServices::MEMORY_PROFILER, memoryUsage.ToString());
- if (IsDangerous && usage < TDumpLogConfig::RssUsageSoft) {
+ if (IsDangerous && usage < TDumpLogConfig::RssUsageSoft) {
IsDangerous = false;
} else if (!IsDangerous && usage > TDumpLogConfig::RssUsageHard) {
if (TInstant::Now() - LogMemoryStatsTime > TDumpLogConfig::DumpInterval) {
@@ -504,14 +509,37 @@ namespace NKikimr {
void HandleWakeup(const TActorContext& ctx) noexcept {
AllocMonitor->Update(Interval);
- LogMemoryStatsIfNeeded(ctx);
+
+ std::optional<TMemoryUsage> memoryUsage = TAllocState::TryGetMemoryUsage();
+ if (memoryUsage) {
+ LogMemoryStatsIfNeeded(ctx, memoryUsage.value());
+
+ TMemObserver::TMemStat stat{
+ // Note: we use allocated memory because AnonRss has lag
+ TAllocState::GetAllocatedMemoryEstimate(),
+ memoryUsage->CGroupLimit,
+ static_cast<ui64>(memoryUsage->CGroupLimit * TDumpLogConfig::RssUsageSoftLimit)};
+
+ if (memoryUsage->AnonRss > TDumpLogConfig::RssUsageNotifySlowLimit ||
+ TInstant::Now() - NotifyMemoryStatsTime > TDumpLogConfig::NotifySlowInterval) {
+ NotifyMemoryStatsTime = TInstant::Now();
+ MemObserver->NotifyStat(stat);
+ } else {
+ // fast path: don't call callback, but update current stat
+ MemObserver->SetStat(stat);
+ }
+ }
+
ctx.Schedule(Interval, new TEvents::TEvWakeup());
}
void HandleDump(TEvDumpLogStats::TPtr&, const TActorContext& ctx) noexcept {
if (IsDangerous) {
- LOG_WARN_S(ctx, NKikimrServices::MEMORY_PROFILER, TAllocState::GetMemoryUsage().ToString());
- LogMemoryStats(ctx, 256);
+ std::optional<TMemoryUsage> memoryUsage = TAllocState::TryGetMemoryUsage();
+ if (memoryUsage) {
+ LOG_WARN_S(ctx, NKikimrServices::MEMORY_PROFILER, memoryUsage->ToString());
+ LogMemoryStats(ctx, 256);
+ }
}
}
@@ -531,8 +559,9 @@ namespace NKikimr {
};
}
- IActor* CreateMemProfMonitor(ui32 intervalSec, TDynamicCountersPtr counters, const TString& filePathPrefix) {
+ IActor* CreateMemProfMonitor(TIntrusivePtr<TMemObserver> memObserver, ui32 intervalSec, TDynamicCountersPtr counters, const TString& filePathPrefix) {
return new TMemProfMonitor(
+ memObserver,
TDuration::Seconds(intervalSec),
CreateAllocMonitor(GetServiceCounters(counters, "utils")),
filePathPrefix);
diff --git a/ydb/core/mon_alloc/monitor.h b/ydb/core/mon_alloc/monitor.h
index 52ade6297a..00e4421f8b 100644
--- a/ydb/core/mon_alloc/monitor.h
+++ b/ydb/core/mon_alloc/monitor.h
@@ -1,5 +1,6 @@
#pragma once
+#include <ydb/core/base/memobserver.h>
#include <ydb/core/control/immediate_control_board_impl.h>
#include <library/cpp/actors/core/defs.h>
@@ -45,6 +46,7 @@ namespace NKikimr {
};
NActors::IActor* CreateMemProfMonitor(
+ TIntrusivePtr<TMemObserver> memObserver,
ui32 intervalSec,
TIntrusivePtr<::NMonitoring::TDynamicCounters> counters,
const TString& filePathPrefix = "");
diff --git a/ydb/core/mon_alloc/stats.cpp b/ydb/core/mon_alloc/stats.cpp
index 743bb40382..09e260f777 100644
--- a/ydb/core/mon_alloc/stats.cpp
+++ b/ydb/core/mon_alloc/stats.cpp
@@ -297,9 +297,11 @@ namespace NKikimr {
return AllocState->GetAllocatedMemoryEstimate();
}
- TMemoryUsage TAllocState::GetMemoryUsage() {
+ std::optional<TMemoryUsage> TAllocState::TryGetMemoryUsage() {
NActors::TProcStat procStat;
- procStat.Fill(getpid());
+ if (!procStat.Fill(getpid())) {
+ return { };
+ }
return TMemoryUsage {
.AnonRss = procStat.AnonRss,
.CGroupLimit = procStat.CGroupMemLim
diff --git a/ydb/core/mon_alloc/stats.h b/ydb/core/mon_alloc/stats.h
index e21c0eac3c..40c6e8fe14 100644
--- a/ydb/core/mon_alloc/stats.h
+++ b/ydb/core/mon_alloc/stats.h
@@ -18,6 +18,12 @@ namespace NKikimr {
struct IAllocState {
virtual ~IAllocState() = default;
+
+ /**
+ * @brief Number of bytes that the application is actively using to hold data.
+ *
+ * This is computed by the bytes requested from the OS minus any bytes that are held in caches.
+ */
virtual ui64 GetAllocatedMemoryEstimate() const = 0;
};
@@ -43,6 +49,6 @@ namespace NKikimr {
static std::unique_ptr<IAllocState> AllocState;
static ui64 GetAllocatedMemoryEstimate();
- static TMemoryUsage GetMemoryUsage();
+ static std::optional<TMemoryUsage> TryGetMemoryUsage();
};
}
diff --git a/ydb/core/mon_alloc/tcmalloc.cpp b/ydb/core/mon_alloc/tcmalloc.cpp
index 8f52c56478..3f31074df9 100644
--- a/ydb/core/mon_alloc/tcmalloc.cpp
+++ b/ydb/core/mon_alloc/tcmalloc.cpp
@@ -62,11 +62,6 @@ static ui64 GetProperty(
return found != properties.end() ? found->second.value : 0;
}
-static ui64 GetProperty(const char* name) {
- const auto properties = tcmalloc::MallocExtension::GetProperties();
- return GetProperty(properties, name);
-}
-
static ui64 GetCachesSize(
const std::map<std::string, tcmalloc::MallocExtension::Property>& properties)
{
@@ -452,7 +447,12 @@ public:
class TTcMallocState : public IAllocState {
public:
ui64 GetAllocatedMemoryEstimate() const override {
- return GetProperty("generic.physical_memory_used");
+ const auto properties = tcmalloc::MallocExtension::GetProperties();
+
+ ui64 used = GetProperty(properties, "generic.physical_memory_used");
+ ui64 caches = GetCachesSize(properties);
+
+ return used > caches ? used - caches : 0;
}
};
diff --git a/ydb/core/persqueue/mirrorer.cpp b/ydb/core/persqueue/mirrorer.cpp
index a5e4d3d81d..17bf715b15 100644
--- a/ydb/core/persqueue/mirrorer.cpp
+++ b/ydb/core/persqueue/mirrorer.cpp
@@ -623,9 +623,11 @@ void TMirrorer::DoProcessNextReaderEvent(const TActorContext& ctx, bool wakeup)
ProcessError(ctx, TStringBuilder() << "stream has commit offset more then partition end offset,"
<< "gap will be created [" << OffsetToRead << ";" << createStream->GetCommittedOffset() << ")"
);
+
+ OffsetToRead = createStream->GetCommittedOffset();
}
- createStream->Confirm(OffsetToRead);
+ createStream->Confirm(OffsetToRead, createStream->GetCommittedOffset());
RequestSourcePartitionStatus();
} else if (auto* destroyStream = std::get_if<TPersQueueReadEvent::TStopPartitionSessionEvent>(&event.GetRef())) {
destroyStream->Confirm();
diff --git a/ydb/core/persqueue/partition.cpp b/ydb/core/persqueue/partition.cpp
index d5eb10c59f..9cb989a21a 100644
--- a/ydb/core/persqueue/partition.cpp
+++ b/ydb/core/persqueue/partition.cpp
@@ -8,7 +8,7 @@
#include <ydb/core/base/blobstorage.h>
#include <ydb/core/base/counters.h>
#include <ydb/core/base/path.h>
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/protos/counters_pq.pb.h>
#include <ydb/core/protos/msgbus.pb.h>
#include <ydb/library/persqueue/topic_parser/topic_parser.h>
@@ -1487,7 +1487,6 @@ void TPartition::EndTransaction(const TEvPQ::TEvTxCommit& event,
Y_VERIFY(userInfo.Offset == (i64)operation.GetBegin());
userInfo.Offset = operation.GetEnd();
- userInfo.Session = "";
}
ChangePlanStepAndTxId(t.Tx->Step, t.Tx->TxId);
@@ -1740,7 +1739,6 @@ void TPartition::ProcessImmediateTx(const NKikimrPQ::TEvProposeTransaction& tx,
}
userInfo.Offset = operation.GetEnd();
- userInfo.Session = "";
}
ScheduleReplyPropose(tx,
diff --git a/ydb/core/persqueue/partition_monitoring.cpp b/ydb/core/persqueue/partition_monitoring.cpp
index d7673c652c..0348762e2b 100644
--- a/ydb/core/persqueue/partition_monitoring.cpp
+++ b/ydb/core/persqueue/partition_monitoring.cpp
@@ -8,7 +8,7 @@
#include <ydb/core/base/blobstorage.h>
#include <ydb/core/base/counters.h>
#include <ydb/core/base/path.h>
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/protos/counters_pq.pb.h>
#include <ydb/core/protos/msgbus.pb.h>
#include <ydb/library/persqueue/topic_parser/topic_parser.h>
diff --git a/ydb/core/persqueue/partition_read.cpp b/ydb/core/persqueue/partition_read.cpp
index 82b84db309..6b7e14c032 100644
--- a/ydb/core/persqueue/partition_read.cpp
+++ b/ydb/core/persqueue/partition_read.cpp
@@ -8,7 +8,7 @@
#include <ydb/core/base/blobstorage.h>
#include <ydb/core/base/counters.h>
#include <ydb/core/base/path.h>
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/protos/counters_pq.pb.h>
#include <ydb/core/protos/msgbus.pb.h>
#include <ydb/library/persqueue/topic_parser/topic_parser.h>
diff --git a/ydb/core/persqueue/partition_write.cpp b/ydb/core/persqueue/partition_write.cpp
index 232c50230a..74853c60b5 100644
--- a/ydb/core/persqueue/partition_write.cpp
+++ b/ydb/core/persqueue/partition_write.cpp
@@ -8,7 +8,7 @@
#include <ydb/core/base/blobstorage.h>
#include <ydb/core/base/counters.h>
#include <ydb/core/base/path.h>
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/protos/counters_pq.pb.h>
#include <ydb/core/protos/msgbus.pb.h>
#include <ydb/library/persqueue/topic_parser/topic_parser.h>
@@ -626,16 +626,6 @@ void TPartition::HandleOnWrite(TEvPQ::TEvWrite::TPtr& ev, const TActorContext& c
}
}
- const ui64 maxSize = Config.GetPartitionConfig().GetMaxSizeInPartition();
- const ui64 maxCount = Config.GetPartitionConfig().GetMaxCountInPartition();
- if (EndOffset - StartOffset >= maxCount || Size() >= maxSize) {
- TabletCounters.Cumulative()[COUNTER_PQ_WRITE_ERROR].Increment(ev->Get()->Msgs.size());
- TabletCounters.Cumulative()[COUNTER_PQ_WRITE_BYTES_ERROR].Increment(sz);
-
- ReplyError(ctx, ev->Get()->Cookie, NPersQueue::NErrorCode::WRITE_ERROR_PARTITION_IS_FULL,
- Sprintf("try later, partition is full - already have %" PRIu64" from %" PRIu64 " count, %" PRIu64 " from %" PRIu64 " size", EndOffset - StartOffset, maxCount, Size(), maxSize));
- return;
- }
ui64 size = 0;
for (auto& msg: ev->Get()->Msgs) {
size += msg.Data.size();
diff --git a/ydb/core/persqueue/pq_impl.cpp b/ydb/core/persqueue/pq_impl.cpp
index a556d295e8..53f7fe1757 100644
--- a/ydb/core/persqueue/pq_impl.cpp
+++ b/ydb/core/persqueue/pq_impl.cpp
@@ -1185,10 +1185,6 @@ void TPersQueue::Handle(TEvPQ::TEvInitComplete::TPtr& ev, const TActorContext& c
}
}
-void TPersQueue::DefaultSignalTabletActive(const TActorContext &ctx) {
- Y_UNUSED(ctx);
-}
-
void TPersQueue::Handle(TEvPQ::TEvError::TPtr& ev, const TActorContext& ctx)
{
diff --git a/ydb/core/persqueue/pq_impl.h b/ydb/core/persqueue/pq_impl.h
index de4a7831e3..24e1be3ccc 100644
--- a/ydb/core/persqueue/pq_impl.h
+++ b/ydb/core/persqueue/pq_impl.h
@@ -64,8 +64,6 @@ class TPersQueue : public NKeyValue::TKeyValueFlat {
//when partition is ready it's sends event to tablet
void Handle(TEvPQ::TEvInitComplete::TPtr& ev, const TActorContext&);
- void DefaultSignalTabletActive(const TActorContext&) override;
-
//partitions will send some times it's counters
void Handle(TEvPQ::TEvPartitionCounters::TPtr& ev, const TActorContext&);
diff --git a/ydb/core/persqueue/read_balancer.h b/ydb/core/persqueue/read_balancer.h
index 2827377938..2813634fa2 100644
--- a/ydb/core/persqueue/read_balancer.h
+++ b/ydb/core/persqueue/read_balancer.h
@@ -224,8 +224,8 @@ class TPersQueueReadBalancer : public TActor<TPersQueueReadBalancer>, public TTa
Die(ctx);
}
- void DefaultSignalTabletActive(const TActorContext &ctx) override {
- Y_UNUSED(ctx); //TODO: this is signal that tablet is ready for work
+ void DefaultSignalTabletActive(const TActorContext &) override {
+ // must be empty
}
void InitDone(const TActorContext &ctx) {
diff --git a/ydb/core/persqueue/read_speed_limiter.h b/ydb/core/persqueue/read_speed_limiter.h
index 68fef3f349..624e7416a2 100644
--- a/ydb/core/persqueue/read_speed_limiter.h
+++ b/ydb/core/persqueue/read_speed_limiter.h
@@ -1,6 +1,6 @@
#pragma once
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/persqueue/events/internal.h>
#include <library/cpp/actors/core/hfunc.h>
diff --git a/ydb/core/persqueue/ut/mirrorer_ut.cpp b/ydb/core/persqueue/ut/mirrorer_ut.cpp
index 559684ad3d..bfc59d125e 100644
--- a/ydb/core/persqueue/ut/mirrorer_ut.cpp
+++ b/ydb/core/persqueue/ut/mirrorer_ut.cpp
@@ -91,10 +91,18 @@ Y_UNIT_TEST_SUITE(TPersQueueMirrorer) {
msg->set_seq_no(1);
msg->set_data("data");
msg->mutable_created_at()->set_seconds(1000);
- auto* meta = msg->mutable_message_meta();
- (*meta)["meta-key"] = "meta-value";
- (*meta)["meta-key2"] = "meta-value2";
- if (!writeSession->Write(req)) {
+ {
+ auto* meta = msg->add_metadata_items();
+ meta->set_key("meta-key");
+ meta->set_value("meta-value");
+ };
+ {
+ auto* meta = msg->add_metadata_items();
+ meta->set_key("meta-key2");
+ meta->set_value("meta-value2");
+ };
+
+ if (!writeSession->Write(req)) {
UNIT_FAIL("Grpc write fail");
}
UNIT_ASSERT(writeSession->Read(&resp));
@@ -243,5 +251,76 @@ Y_UNIT_TEST_SUITE(TPersQueueMirrorer) {
}
}
+
+ Y_UNIT_TEST(ValidStartStream) {
+ using namespace NYdb::NTopic;
+
+ NPersQueue::TTestServer server;
+ TString topic = "topic1";
+ TString topicFullName = "rt3.dc1--" + topic;
+
+ server.AnnoyingClient->CreateTopic(topicFullName, 1);
+
+ auto driver = server.AnnoyingClient->GetDriver();
+ auto writer = CreateSimpleWriter(*driver, topic, "src-id-test");
+ for (auto i = 0u; i < 5; i++) {
+ auto res = writer->Write(TString(10, 'a'));
+ UNIT_ASSERT(res);
+ }
+
+ auto createTopicReader = [&](const TString& topic) {
+ auto settings = TReadSessionSettings()
+ .AppendTopics(TTopicReadSettings(topic))
+ .ConsumerName("shared/user")
+ .Decompress(false);
+
+ return TTopicClient(*driver).CreateReadSession(settings);
+ };
+ auto reader = createTopicReader(topic);
+ ui64 messagesGot = 0;
+ while(true) {
+ auto event = reader->GetEvent(true);
+ UNIT_ASSERT(event);
+ if (auto* dataEvent = std::get_if<TReadSessionEvent::TDataReceivedEvent>(&*event)) {
+ for (auto msg : dataEvent->GetCompressedMessages()) {
+ msg.Commit();
+ messagesGot++;
+ }
+ if (messagesGot == 5) {
+ reader->Close();
+ }
+ } else if (auto* lockEv = std::get_if<TReadSessionEvent::TStartPartitionSessionEvent>(&*event)) {
+ lockEv->Confirm();
+ } else if (auto* releaseEv = std::get_if<TReadSessionEvent::TStopPartitionSessionEvent>(&*event)) {
+ releaseEv->Confirm();
+ } else if (auto* closeSessionEvent = std::get_if<TSessionClosedEvent>(&*event)) {
+ UNIT_ASSERT_VALUES_EQUAL(messagesGot, 5);
+ break;
+ }
+ }
+
+ for (auto i = 0u; i < 5; i++) {
+ auto res = writer->Write(TString(10, 'b'));
+ UNIT_ASSERT(res);
+ }
+
+ auto res = writer->Close(TDuration::Seconds(10));
+ UNIT_ASSERT(res);
+
+ reader = createTopicReader(topic);
+ bool gotData = false;
+ while(!gotData) {
+ auto event = reader->GetEvent(true);
+ UNIT_ASSERT(event);
+ if (auto dataEvent = std::get_if<TReadSessionEvent::TDataReceivedEvent>(&*event)) {
+ gotData = true;
+ } else if (auto* lockEv = std::get_if<TReadSessionEvent::TStartPartitionSessionEvent>(&*event)) {
+ lockEv->Confirm(5);
+ } else if (auto* closeSessionEvent = std::get_if<TSessionClosedEvent>(&*event)) {
+ UNIT_FAIL(closeSessionEvent->DebugString());
+ break;
+ }
+ }
+ }
}
} // NKikimr::NPersQueueTests
diff --git a/ydb/core/persqueue/ut/partition_ut.cpp b/ydb/core/persqueue/ut/partition_ut.cpp
index d3cba84fd8..a120e668c5 100644
--- a/ydb/core/persqueue/ut/partition_ut.cpp
+++ b/ydb/core/persqueue/ut/partition_ut.cpp
@@ -965,7 +965,7 @@ Y_UNIT_TEST_F(CommitOffsetRanges, TPartitionFixture)
"topic-path",
true,
1);
- WaitCmdWrite({.Count=2, .UserInfos={{0, {.Session="", .Offset=2}}}});
+ WaitCmdWrite({.Count=2, .UserInfos={{0, {.Session=session, .Offset=2}}}});
SendProposeTransactionRequest(partition,
2, 0, // begin > end
@@ -1001,7 +1001,7 @@ Y_UNIT_TEST_F(CommitOffsetRanges, TPartitionFixture)
SendCmdWriteResponse(NMsgBusProxy::MSTATUS_OK);
WaitProposeTransactionResponse({.TxId=1, .Status=NKikimrPQ::TEvProposeTransactionResult::COMPLETE});
- WaitCmdWrite({.Count=2, .UserInfos={{0, {.Session="", .Offset=4}}}});
+ WaitCmdWrite({.Count=2, .UserInfos={{0, {.Session=session, .Offset=4}}}});
SendCmdWriteResponse(NMsgBusProxy::MSTATUS_OK);
WaitProposeTransactionResponse({.TxId=2, .Status=NKikimrPQ::TEvProposeTransactionResult::BAD_REQUEST});
@@ -1033,7 +1033,7 @@ Y_UNIT_TEST_F(CorrectRange_Commit, TPartitionFixture)
SendCommitTx(step, txId);
- WaitCmdWrite({.Count=3, .PlanStep=step, .TxId=txId, .UserInfos={{1, {.Session="", .Offset=2}}}});
+ WaitCmdWrite({.Count=3, .PlanStep=step, .TxId=txId, .UserInfos={{1, {.Session=session, .Offset=2}}}});
SendCmdWriteResponse(NMsgBusProxy::MSTATUS_OK);
WaitCommitTxDone({.TxId=txId, .Partition=partition});
@@ -1069,7 +1069,7 @@ Y_UNIT_TEST_F(CorrectRange_Multiple_Transactions, TPartitionFixture)
WaitCalcPredicateResult({.Step=step, .TxId=txId_3, .Partition=partition, .Predicate=false});
SendRollbackTx(step, txId_3);
- WaitCmdWrite({.Count=3, .PlanStep=step, .TxId=txId_3, .UserInfos={{1, {.Session="", .Offset=1}}}});
+ WaitCmdWrite({.Count=3, .PlanStep=step, .TxId=txId_3, .UserInfos={{1, {.Session=session, .Offset=1}}}});
SendCmdWriteResponse(NMsgBusProxy::MSTATUS_OK);
WaitCommitTxDone({.TxId=txId_1, .Partition=partition});
@@ -1101,7 +1101,7 @@ Y_UNIT_TEST_F(CorrectRange_Multiple_Consumers, TPartitionFixture)
SendCommitTx(step, txId);
WaitCmdWrite({.Count=5, .UserInfos={
- {1, {.Session="", .Offset=1}},
+ {1, {.Session="session-2", .Offset=1}},
{3, {.Session="session-1", .Offset=6}}
}});
}
@@ -1149,7 +1149,7 @@ Y_UNIT_TEST_F(AfterRestart_1, TPartitionFixture)
WaitCalcPredicateResult({.Step=step, .TxId=22222, .Partition=partition, .Predicate=true});
SendCommitTx(step, 22222);
- WaitCmdWrite({.Count=3, .PlanStep=step, .TxId=22222, .UserInfos={{1, {.Session="", .Offset=4}}}});
+ WaitCmdWrite({.Count=3, .PlanStep=step, .TxId=22222, .UserInfos={{1, {.Session=session, .Offset=4}}}});
}
Y_UNIT_TEST_F(AfterRestart_2, TPartitionFixture)
@@ -1243,8 +1243,6 @@ Y_UNIT_TEST_F(ChangeConfig, TPartitionFixture)
const ui32 partition = 3;
const ui64 begin = 0;
const ui64 end = 10;
- const TString client = "client";
- const TString session = "session";
const ui64 step = 12345;
const ui64 txId_1 = 67890;
@@ -1282,7 +1280,7 @@ Y_UNIT_TEST_F(ChangeConfig, TPartitionFixture)
WaitCmdWrite({.Count=8,
.PlanStep=step, .TxId=txId_2,
.UserInfos={
- {1, {.Consumer="client-1", .Session="", .Offset=2}},
+ {1, {.Consumer="client-1", .Session="session-1", .Offset=2}},
{3, {.Consumer="client-3", .Session="", .Offset=0, .ReadRuleGeneration=7}}
},
.DeleteRanges={
diff --git a/ydb/core/persqueue/ut/pq_ut.cpp b/ydb/core/persqueue/ut/pq_ut.cpp
index ec85e940c6..5d5f8239bd 100644
--- a/ydb/core/persqueue/ut/pq_ut.cpp
+++ b/ydb/core/persqueue/ut/pq_ut.cpp
@@ -1319,42 +1319,6 @@ Y_UNIT_TEST(TestLowWatermark) {
});
}
-
-
-Y_UNIT_TEST(TestWriteToFullPartition) {
- TTestContext tc;
- RunTestWithReboots(tc.TabletIds, [&]() {
- return tc.InitialEventsFilter.Prepare();
- }, [&](const TString& dispatchName, std::function<void(TTestActorRuntime&)> setup, bool& activeZone) {
- TFinalizer finalizer(tc);
- activeZone = false;
- tc.Prepare(dispatchName, setup, activeZone);
-
- tc.Runtime->SetScheduledLimit(100);
-
- PQTabletPrepare({.maxCountInPartition=11}, {}, tc);
-
- TVector<std::pair<ui64, TString>> data;
- activeZone = PlainOrSoSlow(true, false);
-
- TString s{32, 'c'};
- ui32 pp = 8 + 4 + 2 + 9;
- for (ui32 i = 0; i < 10; ++i) {
- data.push_back({i + 1, s.substr(pp)});
- }
- CmdWrite(0, "sourceid0", data, tc, false, {}, true); //now 1 blob
- PQTabletPrepare({.maxCountInPartition=10}, {}, tc);
- PQGetPartInfo(0, 10, tc);
- data.resize(1);
- CmdWrite(0, "sourceid1", data, tc, true);
- PQTabletPrepare({.maxCountInPartition=12}, {}, tc);
- CmdWrite(0, "sourceid1", data, tc);
- PQTabletPrepare({.maxCountInPartition=12, .maxSizeInPartition=100}, {}, tc);
- CmdWrite(0, "sourceid1", data, tc, true);
- });
-}
-
-
Y_UNIT_TEST(TestTimeRetention) {
TTestContext tc;
RunTestWithReboots(tc.TabletIds, [&]() {
@@ -1772,7 +1736,7 @@ Y_UNIT_TEST(TestChangeConfig) {
PQTabletPrepare({.maxCountInPartition=5, .maxSizeInPartition=1_MB,
.deleteTime=TDuration::Days(1).Seconds(), .partitions=10}, {{"bbb", true}, {"ccc", true}}, tc);
data.pop_back(); //to be sure that after write partition will no be full
- CmdWrite(0, "sourceid1", data, tc, true); //partition is full
+ CmdWrite(0, "sourceid1", data, tc);
CmdWrite(1, "sourceid2", data, tc);
CmdWrite(9, "sourceid3", data, tc); //now 1 blob
});
diff --git a/ydb/core/persqueue/ut/pqtablet_mock.cpp b/ydb/core/persqueue/ut/pqtablet_mock.cpp
index 488c9948f0..9aaa095431 100644
--- a/ydb/core/persqueue/ut/pqtablet_mock.cpp
+++ b/ydb/core/persqueue/ut/pqtablet_mock.cpp
@@ -52,11 +52,15 @@ void TPQTabletMock::OnTabletDead(TEvTablet::TEvTabletDead::TPtr &ev, const TActo
Die(ctx);
}
-void TPQTabletMock::OnActivateExecutor(const TActorContext &ctx)
+void TPQTabletMock::DefaultSignalTabletActive(const TActorContext &)
{
- Y_UNUSED(ctx);
+ // must be empty
+}
+void TPQTabletMock::OnActivateExecutor(const TActorContext &ctx)
+{
Become(&TThis::StateWork);
+ SignalTabletActive(ctx);
}
void TPQTabletMock::Handle(TEvTabletPipe::TEvClientConnected::TPtr& ev, const TActorContext& ctx)
diff --git a/ydb/core/persqueue/ut/pqtablet_mock.h b/ydb/core/persqueue/ut/pqtablet_mock.h
index 622a2bd8ac..1c9f5bcdd8 100644
--- a/ydb/core/persqueue/ut/pqtablet_mock.h
+++ b/ydb/core/persqueue/ut/pqtablet_mock.h
@@ -70,6 +70,7 @@ private:
void OnDetach(const TActorContext &ctx) override;
void OnTabletDead(TEvTablet::TEvTabletDead::TPtr &ev, const TActorContext &ctx) override;
+ void DefaultSignalTabletActive(const TActorContext &ctx) override;
void OnActivateExecutor(const TActorContext &ctx) override;
void Handle(TEvTabletPipe::TEvClientConnected::TPtr& ev, const TActorContext& ctx);
diff --git a/ydb/core/persqueue/write_meta.cpp b/ydb/core/persqueue/write_meta.cpp
index 2230d26429..043a1b2b92 100644
--- a/ydb/core/persqueue/write_meta.cpp
+++ b/ydb/core/persqueue/write_meta.cpp
@@ -52,9 +52,10 @@ TString GetSerializedData(const NYdb::NTopic::TReadSessionEvent::TDataReceivedEv
}
auto& fields = message.GetMessageMeta()->Fields;
if (!fields.empty()) {
- auto& messageMeta = *proto.MutableMessageMeta();
for (const auto& item : fields) {
- messageMeta[item.first] = item.second;
+ auto& metaItem = *proto.AddMessageMeta();
+ metaItem.set_key(item.first);
+ metaItem.set_value(item.second);
}
}
proto.SetSeqNo(message.GetSeqNo());
diff --git a/ydb/core/persqueue/writer/source_id_encoding.cpp b/ydb/core/persqueue/writer/source_id_encoding.cpp
index 59101a2e5f..e42a9ba7d1 100644
--- a/ydb/core/persqueue/writer/source_id_encoding.cpp
+++ b/ydb/core/persqueue/writer/source_id_encoding.cpp
@@ -221,6 +221,16 @@ void SetHashToTxParams(NClient::TParameters& parameters, const TEncodedSourceId&
}
}
+void SetHashToTParamsBuilder(NYdb::TParamsBuilder& builder, const TEncodedSourceId& encodedSrcId) {
+ switch (encodedSrcId.Generation) {
+ case ESourceIdTableGeneration::PartitionMapping:
+ builder.AddParam("$Hash").Uint64(encodedSrcId.KeysHash).Build();
+ return;
+ case ESourceIdTableGeneration::SrcIdMeta2:
+ builder.AddParam("$Hash").Uint32(encodedSrcId.Hash).Build();
+ return;
+ }
+}
} // NSourceIdEncoding
} // NPQ
diff --git a/ydb/core/persqueue/writer/source_id_encoding.h b/ydb/core/persqueue/writer/source_id_encoding.h
index a879521e61..74e672146c 100644
--- a/ydb/core/persqueue/writer/source_id_encoding.h
+++ b/ydb/core/persqueue/writer/source_id_encoding.h
@@ -3,6 +3,7 @@
#include <util/generic/fwd.h>
#include <util/generic/string.h>
#include <ydb/public/lib/deprecated/kicli/kicli.h>
+#include <ydb/public/sdk/cpp/client/ydb_params/params.h>
namespace NKikimr {
namespace NPQ {
@@ -39,6 +40,8 @@ struct TEncodedSourceId {
void SetHashToTxParams(NClient::TParameters& parameters, const TEncodedSourceId& encodedSrcId);
+void SetHashToTParamsBuilder(NYdb::TParamsBuilder& builder, const TEncodedSourceId& encodedSrcId);
+
TEncodedSourceId EncodeSrcId(const TString& topic, const TString& userSourceId, ESourceIdTableGeneration generation);
} // NSourceIdEncoding
diff --git a/ydb/core/pgproxy/pg_connection.cpp b/ydb/core/pgproxy/pg_connection.cpp
index bf781d86e5..11014bccdf 100644
--- a/ydb/core/pgproxy/pg_connection.cpp
+++ b/ydb/core/pgproxy/pg_connection.cpp
@@ -457,6 +457,19 @@ protected:
}
}
+ static void FillErrorResponse(TPGStreamOutput<TPGErrorResponse>& dataOut, const std::vector<std::pair<char, TString>>& dataIn) {
+ for (const auto& field : dataIn) {
+ dataOut << field.first << field.second << '\0';
+ }
+ dataOut << '\0';
+ }
+
+ void SendErrorResponse(const std::vector<std::pair<char, TString>>& errorFields) {
+ TPGStreamOutput<TPGErrorResponse> errorResponse;
+ FillErrorResponse(errorResponse, errorFields);
+ SendStream(errorResponse);
+ }
+
bool FlushAndPoll() {
if (FlushOutput()) {
RequestPoller();
@@ -543,13 +556,7 @@ protected:
}
}
} else {
- // error response
- TPGStreamOutput<TPGErrorResponse> errorResponse;
- for (const auto& field : ev->Get()->ErrorFields) {
- errorResponse << field.first << field.second << '\0';
- }
- errorResponse << '\0';
- SendStream(errorResponse);
+ SendErrorResponse(ev->Get()->ErrorFields);
}
if (ev->Get()->CommandCompleted) {
BecomeReadyForQuery();
@@ -579,13 +586,7 @@ protected:
SendMessage(TPGNoData());
}
} else {
- // error response
- TPGStreamOutput<TPGErrorResponse> errorResponse;
- for (const auto& field : ev->Get()->ErrorFields) {
- errorResponse << field.first << field.second << '\0';
- }
- errorResponse << '\0';
- SendStream(errorResponse);
+ SendErrorResponse(ev->Get()->ErrorFields);
}
++OutgoingSequenceNumber;
BecomeReadyForQuery();
@@ -620,13 +621,7 @@ protected:
}
}
} else {
- // error response
- TPGStreamOutput<TPGErrorResponse> errorResponse;
- for (const auto& field : ev->Get()->ErrorFields) {
- errorResponse << field.first << field.second << '\0';
- }
- errorResponse << '\0';
- SendStream(errorResponse);
+ SendErrorResponse(ev->Get()->ErrorFields);
}
if (ev->Get()->CommandCompleted) {
++OutgoingSequenceNumber;
@@ -639,8 +634,12 @@ protected:
void HandleConnected(TEvPGEvents::TEvParseResponse::TPtr& ev) {
if (IsEventExpected(ev)) {
- TPGStreamOutput<TPGParseComplete> parseComplete;
- SendStream(parseComplete);
+ if (ev->Get()->ErrorFields.empty()) {
+ TPGStreamOutput<TPGParseComplete> parseComplete;
+ SendStream(parseComplete);
+ } else {
+ SendErrorResponse(ev->Get()->ErrorFields);
+ }
++OutgoingSequenceNumber;
BecomeReadyForQuery();
} else {
diff --git a/ydb/core/pgproxy/pg_proxy_events.h b/ydb/core/pgproxy/pg_proxy_events.h
index f373264a74..27782930c5 100644
--- a/ydb/core/pgproxy/pg_proxy_events.h
+++ b/ydb/core/pgproxy/pg_proxy_events.h
@@ -146,6 +146,7 @@ struct TEvPGEvents {
struct TEvParseResponse : NActors::TEventLocal<TEvParseResponse, EvParseResponse> {
std::unique_ptr<TPGParse> OriginalMessage;
+ std::vector<std::pair<char, TString>> ErrorFields;
TEvParseResponse(std::unique_ptr<TPGParse> originalMessage)
: OriginalMessage(std::move(originalMessage))
diff --git a/ydb/core/protos/auth.proto b/ydb/core/protos/auth.proto
index 3f69a559f4..3d7d515874 100644
--- a/ydb/core/protos/auth.proto
+++ b/ydb/core/protos/auth.proto
@@ -43,6 +43,7 @@ message TAuthConfig {
optional uint32 AccessServiceGrpcKeepAliveTimeMs = 70 [default = 10000]; // CLOUD-27573
optional uint32 AccessServiceGrpcKeepAliveTimeoutMs = 71 [default = 1000]; // CLOUD-27573
optional TStaffApiTvmSettings StaffApiTvmSettings = 72;
+ optional TTokenAccessorConfig TokenAccessorConfig = 73;
}
message TUserRegistryConfig {
@@ -69,3 +70,10 @@ message TStaffApiTvmSettings {
string PlainTextSecret = 7;
}
}
+
+message TTokenAccessorConfig {
+ optional bool Enabled = 1;
+ optional string Endpoint = 2; // endpoint of token accessor daemon. If you need to use the grpcs protocol then add a prefix grpcs://
+ optional string SslCaCert = 3;
+ optional uint64 ConnectionPoolSize = 4 [default = 10];
+}
diff --git a/ydb/core/protos/blobstorage_config.proto b/ydb/core/protos/blobstorage_config.proto
index adeb0de80f..30fda97db6 100644
--- a/ydb/core/protos/blobstorage_config.proto
+++ b/ydb/core/protos/blobstorage_config.proto
@@ -191,6 +191,7 @@ enum EDecommitStatus {
DECOMMIT_NONE = 1; // no decomission
DECOMMIT_PENDING = 2; // drive is going to be removed soon, but SelfHeal logic would not remove it automatically
DECOMMIT_IMMINENT = 3; // drive is going to be settled automatically
+ DECOMMIT_REJECTED = 4; // drive is working as usual, but decommitted slots are not placed here
}
message TGroupStatus {
@@ -561,6 +562,9 @@ message TConfigRequest {
// execute this request ASAP
bool Cito = 10;
+
+ // is this command originated by self-heal decommission?
+ bool IsSelfHealReasonDecommit = 12;
}
enum ETriStateBool {
diff --git a/ydb/core/protos/cms.proto b/ydb/core/protos/cms.proto
index 4f0e2c3a2d..6658e0611f 100644
--- a/ydb/core/protos/cms.proto
+++ b/ydb/core/protos/cms.proto
@@ -408,7 +408,7 @@ message TCmsConfig {
optional uint32 Limit = 2;
}
- optional bool Enable = 1;
+ optional bool Enable = 1 [default = true];
// Updater's config
optional uint64 UpdateConfigInterval = 2 [default = 3600000000];
optional uint64 RetryUpdateConfig = 3 [default = 60000000];
diff --git a/ydb/core/protos/config.proto b/ydb/core/protos/config.proto
index 3ceb02ef2b..3f62866cb8 100644
--- a/ydb/core/protos/config.proto
+++ b/ydb/core/protos/config.proto
@@ -12,6 +12,7 @@ import "ydb/core/protos/flat_scheme_op.proto";
import "ydb/core/protos/http_config.proto";
import "ydb/core/protos/hive.proto";
import "ydb/core/protos/kqp.proto";
+import "ydb/core/protos/local.proto";
import "ydb/core/protos/netclassifier.proto";
import "ydb/core/protos/node_broker.proto";
import "ydb/core/protos/pqconfig.proto";
@@ -171,6 +172,9 @@ message TDynamicNameserviceConfig {
optional uint32 MaxStaticNodeId = 1 [default = 1000];
optional uint32 MaxDynamicNodeId = 2 [default = 200000];
optional uint64 LeaseDuration = 3 [default = 3600000000]; // DEPRECATED
+ // Soft limit, new dynamic nodes will be registered in range [MinDynamicNodeId, MaxDynamicNodeId],
+ // but already existing dynamic nodes in range (MaxStaticNodeId, MaxDynamicNodeId) will be handled properly
+ optional uint32 MinDynamicNodeId = 4 [default = 50000];
}
message TDomainsConfig {
@@ -700,6 +704,7 @@ message TDynamicNodeConfig {
optional NKikimrNodeBroker.TNodeInfo NodeInfo = 4;
optional string NodeAddress = 5; //DEPRECATED
optional string NodeHost = 6; //DEPRECATED
+ repeated NKikimrLocal.TTabletAvailability TabletAvailability = 7;
}
message TFeatureFlags {
@@ -783,11 +788,11 @@ message TFeatureFlags {
// enable http handle for self termination
optional bool EnableFailureInjectionTermination = 71 [default = false];
optional bool EnableChunkLocking = 72 [default = false];
- optional bool EnableNotNullDataColumns = 73 [default = true];
+ optional bool EnableNotNullDataColumns = 73 [default = false];
optional bool EnableGrpcAudit = 74 [default = false];
reserved 75; // EnableKqpDataQueryStreamLookup
optional bool EnableBorrowedSplitCompaction = 76 [default = true];
- optional bool EnableChangefeedInitialScan = 77 [default = false];
+ optional bool EnableChangefeedInitialScan = 77 [default = true];
reserved 78; // EnableKqpScanQuerySourceRead
optional bool EnableDynamicNodeAuthorization = 79 [default = false];
reserved 80; // EnableKqpImmediateEffect
@@ -808,7 +813,7 @@ message TFeatureFlags {
optional bool EnableImplicitQueryParameterTypes = 93 [default = true];
optional bool EnableForceImmediateEffectsExecution = 94 [default = false];
optional bool EnableTopicSplitMerge = 95 [default = false];
- optional bool EnableChangefeedDynamoDBStreamsFormat = 96 [default = false];
+ optional bool EnableChangefeedDynamoDBStreamsFormat = 96 [default = true];
optional bool ForceColumnTablesCompositeMarks = 97 [default = false];
optional bool EnableSubscriptionsInDiscovery = 98 [default = false];
optional bool EnableGetNodeLabels = 99 [default = false];
@@ -1109,6 +1114,15 @@ message TTableServiceConfig {
}
message TResourceManager {
+ message TRetrySettings {
+ optional uint32 StartDelayMs = 1;
+ optional uint32 MaxDelayMs = 2;
+ }
+ message TInfoExchangerSettings {
+ optional TRetrySettings PublisherSettings = 1;
+ optional TRetrySettings SubscriberSettings = 2;
+ optional TRetrySettings ExchangerSettings = 3;
+ }
optional uint32 ComputeActorsCount = 1 [default = 1000];
optional uint64 ChannelBufferSize = 2 [default = 8388608]; // 8 MB
reserved 3;
@@ -1127,7 +1141,8 @@ message TTableServiceConfig {
reserved 14;
optional TShardsScanningPolicy ShardsScanningPolicy = 16;
optional uint64 KqpPatternCacheCapacityBytes = 17 [default = 104857600]; // 100 MiB, 0 is for disable
- optional bool EnablePublishResourcesByExchanger = 18 [default = true];
+ optional bool EnablePublishResourcesByExchanger = 18 [default = false];
+ optional TInfoExchangerSettings InfoExchangerSettings = 19;
}
message TSpillingServiceConfig {
@@ -1268,6 +1283,11 @@ message TTableServiceConfig {
optional uint32 MaxTotalRetries = 7;
}
+ message TIteratorReadQuotaSettings {
+ optional uint32 MaxRows = 1;
+ optional uint32 MaxBytes = 2;
+ }
+
optional uint32 QueryLimitBytes = 1;
optional uint32 ParametersLimitBytes = 2;
optional uint32 SessionsLimitPerNode = 3;
@@ -1295,7 +1315,7 @@ message TTableServiceConfig {
reserved 25; // optional bool EnableKqpPatternCacheCompute = 25 [default = false];
optional bool EnableKqpScanQuerySourceRead = 26 [default = false];
- optional bool EnableKqpDataQuerySourceRead = 27 [default = true];
+ optional bool EnableKqpDataQuerySourceRead = 27 [default = false];
optional uint64 SessionIdleDurationSeconds = 28 [default = 600];
optional TAggregationConfig AggregationConfig = 29;
optional bool EnableKqpScanQueryStreamLookup = 30 [default = true];
@@ -1309,6 +1329,7 @@ message TTableServiceConfig {
optional bool EnableKqpImmediateEffects = 38 [default = true];
optional bool EnableSequentialReads = 39 [default = false];
optional bool EnablePreparedDdl = 42 [default = false];
+ optional bool EnableSequences = 43 [default = false];
enum EBindingsMode {
BM_ENABLED = 0;
@@ -1319,6 +1340,8 @@ message TTableServiceConfig {
optional EBindingsMode BindingsMode = 40 [default = BM_ENABLED];
optional TIteratorReadsRetrySettings IteratorReadsRetrySettings = 41;
+ optional bool PredicateExtract20 = 44 [default = false];
+ optional TIteratorReadQuotaSettings IteratorReadQuotaSettings = 45;
};
// Config describes immediate controls and allows
@@ -1559,7 +1582,7 @@ message TAuditConfig {
message THiveTabletLimit {
optional NKikimrTabletBase.TTabletTypes.EType Type = 1;
- optional uint64 MaxCount = 2;
+ optional uint64 MaxCount = 2 [default = 1000000]; // Default value here should match the one in NkikimrLocal.TTabletAvailability
}
message THiveTabletPreference {
@@ -1844,7 +1867,7 @@ message TLocalPgWireConfig {
}
message TKafkaProxyConfig {
- optional bool EnableKafkaProxy = 1 [default = true];
+ optional bool EnableKafkaProxy = 1 [default = false];
optional int32 ListeningPort = 2 [default = 9092];
optional string SslCertificate = 3;
diff --git a/ydb/core/protos/counters_columnshard.proto b/ydb/core/protos/counters_columnshard.proto
index 62afdf4908..804ac16744 100644
--- a/ydb/core/protos/counters_columnshard.proto
+++ b/ydb/core/protos/counters_columnshard.proto
@@ -127,6 +127,13 @@ enum ECumulativeCounters {
COUNTER_WRITE_OVERLOAD_SHARD = 72 [(CounterOpts) = {Name: "WriteOverloadShard"}];
COUNTER_INDEXING_TIME = 73 [(CounterOpts) = {Name: "IndexingTime"}];
COUNTER_COMPACTION_TIME = 74 [(CounterOpts) = {Name: "CompactionTime"}];
+ COUNTER_EXPORTING_BLOBS = 75 [(CounterOpts) = {Name: "ExportingBlobs"}];
+ COUNTER_EXPORTING_BYTES = 76 [(CounterOpts) = {Name: "ExportingBytes"}];
+ COUNTER_FORGETTING_BLOBS = 77 [(CounterOpts) = {Name: "ForgettingBlobs"}];
+ COUNTER_FORGETTING_BYTES = 78 [(CounterOpts) = {Name: "ForgettingBytes"}];
+ COUNTER_READING_EXPORTED_BLOBS = 79 [(CounterOpts) = {Name: "ReadingExportedBlobs"}];
+ COUNTER_READING_EXPORTED_BYTES = 80 [(CounterOpts) = {Name: "ReadingExportedBytes"}];
+ COUNTER_READING_EXPORTED_RANGES = 81 [(CounterOpts) = {Name: "ReadingExportedRanges"}];
}
enum EPercentileCounters {
diff --git a/ydb/core/protos/counters_keyvalue.proto b/ydb/core/protos/counters_keyvalue.proto
index ca0b2f1319..7d3d28f604 100644
--- a/ydb/core/protos/counters_keyvalue.proto
+++ b/ydb/core/protos/counters_keyvalue.proto
@@ -908,5 +908,6 @@ enum EPercentileCounters {
enum ETxTypes {
TXTYPE_INIT = 0 [(TxTypeOpts) = {Name: "TxInit"}];
TXTYPE_REQUEST = 1 [(TxTypeOpts) = {Name: "TxRequest"}];
+ TXTYPE_DROP_REF_COUNTS_ON_ERROR = 2 [(TxTypeOpts) = {Name: "TxDropRefCountsOnError"}];
}
diff --git a/ydb/core/protos/flat_scheme_op.proto b/ydb/core/protos/flat_scheme_op.proto
index 7e50110e64..eec4c42fbb 100644
--- a/ydb/core/protos/flat_scheme_op.proto
+++ b/ydb/core/protos/flat_scheme_op.proto
@@ -1732,9 +1732,15 @@ message TExternalTableDescription {
message NoneAuth {
}
+message ServiceAccountAuth {
+ optional string Id = 1;
+ optional string SecretName = 2;
+}
+
message TAuth {
oneof identity {
NoneAuth None = 3;
+ ServiceAccountAuth ServiceAccount = 4;
}
}
diff --git a/ydb/core/protos/grpc_pq_old.proto b/ydb/core/protos/grpc_pq_old.proto
index 3f2d32bba7..4aa2a5e40b 100755
--- a/ydb/core/protos/grpc_pq_old.proto
+++ b/ydb/core/protos/grpc_pq_old.proto
@@ -1,3 +1,4 @@
+import "ydb/public/api/protos/ydb_topic.proto";
package NKikimrPQClient;
message TKeyValue {
@@ -38,5 +39,5 @@ message TDataChunk {
optional bytes Data = 127; // ~ 64K
- map<string, string> MessageMeta = 128;
+ repeated Ydb.Topic.MetadataItem MessageMeta = 128;
}
diff --git a/ydb/core/protos/kqp.proto b/ydb/core/protos/kqp.proto
index 68cda11e5e..65c7408b39 100644
--- a/ydb/core/protos/kqp.proto
+++ b/ydb/core/protos/kqp.proto
@@ -2,6 +2,7 @@ package NKikimrKqp;
option java_package = "ru.yandex.kikimr.proto";
option cc_enable_arenas = true;
+import "google/protobuf/duration.proto";
import "library/cpp/actors/protos/actors.proto";
import "ydb/core/protos/type_info.proto";
import "ydb/core/protos/kqp_physical.proto";
@@ -82,7 +83,7 @@ message TQueryRequest {
reserved 4; // (deprecated) KqlSettings
optional bool KeepSession = 5;
reserved 6; // (deprecated) Cluster
- optional NKikimrMiniKQL.TParams Parameters = 7;
+ reserved 7; // (deprecated) Parameters
reserved 8; // (deprecated) SqlAutoCommit
optional EQueryAction Action = 9;
reserved 10; // (deprecated) Profile
@@ -325,6 +326,8 @@ message TEvCreateSessionResponse {
message TPingSessionRequest {
optional bytes SessionId = 1;
optional uint32 TimeoutMs = 2 [default = 5000];
+ optional bool deprecated = 3;
+ optional NActorsProto.TActorId ExtSessionCtrlActorId = 4;
}
message TEvPingSessionRequest {
@@ -633,7 +636,7 @@ message TKqpSequencerSettings {
}
message TEvFetchScriptResultsRequest {
- optional uint64 ResultSetId = 3;
+ optional uint64 ResultSetIndex = 3;
optional uint64 RowsOffset = 1;
optional uint64 RowsLimit = 2;
}
@@ -664,3 +667,9 @@ message TEvCancelScriptExecutionResponse {
optional Ydb.StatusIds.StatusCode Status = 1;
repeated Ydb.Issue.IssueMessage Issues = 2;
}
+
+// stored in column "meta" of .metadata/script_executions table
+message TScriptExecutionOperationMeta {
+ optional google.protobuf.Duration OperationTtl = 1;
+ optional google.protobuf.Duration ResultsTtl = 2;
+}
diff --git a/ydb/core/protos/kqp_physical.proto b/ydb/core/protos/kqp_physical.proto
index 46730dda52..459b77355e 100644
--- a/ydb/core/protos/kqp_physical.proto
+++ b/ydb/core/protos/kqp_physical.proto
@@ -259,7 +259,7 @@ message TKqpPhyCnStreamLookup {
message TKqpPhyCnSequencer {
TKqpPhyTableId Table = 1;
repeated string Columns = 2;
- repeated string AutoIncrementColumns = 3;
+ repeated string AutoIncrementColumns = 3;
bytes InputType = 4;
bytes OutputType = 5;
}
@@ -307,6 +307,9 @@ message TKqpExternalSource {
// Partitioning
string TaskParamKey = 3;
repeated string PartitionedTaskParams = 4;
+
+ string SourceName = 5;
+ string AuthInfo = 6;
}
message TKqpSource {
@@ -316,7 +319,23 @@ message TKqpSource {
TKqpReadRangesSource ReadRangesSource = 3;
TKqpExternalSource ExternalSource = 4;
}
-};
+}
+
+message TKqpExternalSink {
+ string Type = 1;
+ google.protobuf.Any Settings = 2;
+
+ string SinkName = 3;
+ string AuthInfo = 4;
+}
+
+message TKqpSink {
+ uint32 OutputIndex = 1;
+
+ oneof Type {
+ TKqpExternalSink ExternalSink = 2;
+ }
+}
message TKqpPhyStage {
NYql.NDqProto.TProgram Program = 1;
@@ -329,6 +348,7 @@ message TKqpPhyStage {
string StageGuid = 8;
repeated TKqpSource Sources = 9;
bool IsSinglePartition = 10;
+ repeated TKqpSink Sinks = 11;
}
message TKqpPhyResult {
@@ -336,7 +356,7 @@ message TKqpPhyResult {
NKikimrMiniKQL.TType ItemType = 2;
bool IsStream = 3;
repeated string ColumnHints = 4;
- uint32 QueryResultIndex = 5;
+ optional uint32 QueryResultIndex = 5;
}
message TKqpSchemeOperation {
@@ -363,6 +383,7 @@ message TKqpPhyTx {
bool HasEffects = 6; // at least one stage has flag TKqpPhyStage::IsEffectStage set
repeated TKqpPhyTable Tables = 7;
TKqpSchemeOperation SchemeOperation = 8;
+ repeated string SecretNames = 9;
}
message TKqpTableInfo {
diff --git a/ydb/core/protos/local.proto b/ydb/core/protos/local.proto
index 3ba2f5b24b..012da6c0ea 100644
--- a/ydb/core/protos/local.proto
+++ b/ydb/core/protos/local.proto
@@ -10,7 +10,7 @@ option java_package = "ru.yandex.kikimr.proto";
message TTabletAvailability {
optional NKikimrTabletBase.TTabletTypes.EType Type = 1;
- optional uint64 MaxCount = 2;
+ optional uint64 MaxCount = 2 [default = 1000000];
optional int32 Priority = 3;
}
diff --git a/ydb/core/protos/msgbus_kv.proto b/ydb/core/protos/msgbus_kv.proto
index 87c65e5176..c8317d9d4c 100644
--- a/ydb/core/protos/msgbus_kv.proto
+++ b/ydb/core/protos/msgbus_kv.proto
@@ -52,7 +52,10 @@ message TKeyValueRequest {
}
message TCmdWrite {
optional bytes Key = 1; // mandatory
- optional bytes Value = 2; // mandatory
+ oneof Data { // mandatory
+ bytes Value = 2;
+ uint32 PayloadId = 8;
+ }
optional EStorageChannel StorageChannel = 3; // (default = MAIN)
optional EPriority Priority = 4; // (default = REALTIME)
optional bytes KeyToCache = 5; // used in PQ
@@ -86,6 +89,7 @@ message TKeyValueRequest {
optional uint64 TabletId = 1; // mandatory
optional uint64 Generation = 2; // optional, no generation check is done if missing
optional uint64 Cookie = 3;
+ optional bool UsePayloadInResponse = 16; // use PayloadId instead of Value in TKeyValueResponse
repeated TCmdDeleteRange CmdDeleteRange = 4;
optional TCmdIncrementGeneration CmdIncrementGeneration = 5; // conflicts with any other Cmd, must be the only one
repeated TCmdRead CmdRead = 6;
@@ -108,7 +112,10 @@ message TKeyValueResponse {
message TKeyValuePair {
optional bytes Key = 1;
- optional bytes Value = 2;
+ oneof Data {
+ bytes Value = 2;
+ uint32 PayloadId = 7;
+ }
optional uint32 ValueSize = 3;
optional uint64 CreationUnixTime = 4;
optional TKeyValueRequest.EStorageChannel StorageChannel = 5; // Returns the _actual_ storage channel
@@ -124,7 +131,10 @@ message TKeyValueResponse {
}
message TReadResult {
optional uint32 Status = 1; // EReplyStatus from ydb/core/protos/base.proto
- optional bytes Value = 2;
+ oneof Data {
+ bytes Value = 2;
+ uint32 PayloadId = 4;
+ }
optional string Message = 3;
}
message TReadRangeResult {
diff --git a/ydb/core/protos/node_whiteboard.proto b/ydb/core/protos/node_whiteboard.proto
index 10f9c3e08f..82f4b547ca 100644
--- a/ydb/core/protos/node_whiteboard.proto
+++ b/ydb/core/protos/node_whiteboard.proto
@@ -306,8 +306,6 @@ message TSystemStateInfo {
optional uint64 MemoryUsedInAlloc = 29;
optional double MaxDiskUsage = 30;
optional NActorsInterconnect.TNodeLocation Location = 31;
- optional uint64 ClockSkewMicrosec = 32;
- optional uint64 ClockSkewPeerId = 33;
}
message TEvSystemStateRequest {
diff --git a/ydb/core/protos/stream.proto b/ydb/core/protos/stream.proto
index 1ec1547ec0..26c822d88d 100644
--- a/ydb/core/protos/stream.proto
+++ b/ydb/core/protos/stream.proto
@@ -10,7 +10,7 @@ message TStreamingConfig {
optional uint32 MaxQuotaSize = 4 [default = 5];
optional uint32 MaxStreamingShards = 5 [default = 5];
// Timeouts used to interrupt inactive streams.
- optional uint64 InactiveClientTimeout = 6 [default = 60000000];
+ optional uint64 InactiveClientTimeout = 6 [default = 600000000];
optional uint64 InactiveServerTimeout = 7 [default = 0];
}
diff --git a/ydb/core/protos/tx_datashard.proto b/ydb/core/protos/tx_datashard.proto
index 82b31b4de4..bd821fb52e 100644
--- a/ydb/core/protos/tx_datashard.proto
+++ b/ydb/core/protos/tx_datashard.proto
@@ -587,6 +587,9 @@ message TError {
UNKNOWN = 17;
REPLY_SIZE_EXCEEDED = 18;
EXECUTION_CANCELLED = 19;
+ // This enum value is not supported in versions 23-2 and below and would be interpreted as OK due to how proto2 enums work.
+ // Version 23-3 can handle the value, so it is safe to use only in the next major release after 23-3.
+ DISK_SPACE_EXHAUSTED = 20;
}
optional EKind Kind = 1;
@@ -1724,6 +1727,8 @@ message TEvReadResult {
optional uint64 RowCount = 12;
+ optional uint32 NodeId = 13;
+
// Data for the possibly partial result
oneof ReadResult {
TArrowBatch ArrowBatch = 900;
diff --git a/ydb/core/quoter/CMakeLists.darwin-x86_64.txt b/ydb/core/quoter/CMakeLists.darwin-x86_64.txt
index 944c9b9fff..229d5f127e 100644
--- a/ydb/core/quoter/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/quoter/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(public)
add_subdirectory(quoter_service_bandwidth_test)
add_subdirectory(ut)
@@ -20,6 +21,7 @@ target_link_libraries(ydb-core-quoter PUBLIC
core-tx-scheme_cache
ydb-core-util
yql-public-issue
+ ydb-library-time_series_vec
)
target_sources(ydb-core-quoter PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
diff --git a/ydb/core/quoter/CMakeLists.linux-aarch64.txt b/ydb/core/quoter/CMakeLists.linux-aarch64.txt
index 3bd282f84d..dcb35282ad 100644
--- a/ydb/core/quoter/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/quoter/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(public)
add_subdirectory(quoter_service_bandwidth_test)
add_subdirectory(ut)
@@ -21,6 +22,7 @@ target_link_libraries(ydb-core-quoter PUBLIC
core-tx-scheme_cache
ydb-core-util
yql-public-issue
+ ydb-library-time_series_vec
)
target_sources(ydb-core-quoter PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
diff --git a/ydb/core/quoter/CMakeLists.linux-x86_64.txt b/ydb/core/quoter/CMakeLists.linux-x86_64.txt
index 3bd282f84d..dcb35282ad 100644
--- a/ydb/core/quoter/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/quoter/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(public)
add_subdirectory(quoter_service_bandwidth_test)
add_subdirectory(ut)
@@ -21,6 +22,7 @@ target_link_libraries(ydb-core-quoter PUBLIC
core-tx-scheme_cache
ydb-core-util
yql-public-issue
+ ydb-library-time_series_vec
)
target_sources(ydb-core-quoter PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
diff --git a/ydb/core/quoter/CMakeLists.windows-x86_64.txt b/ydb/core/quoter/CMakeLists.windows-x86_64.txt
index 955aef639c..788d329b83 100644
--- a/ydb/core/quoter/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/quoter/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(public)
add_subdirectory(quoter_service_bandwidth_test)
add_library(ydb-core-quoter)
@@ -19,6 +20,7 @@ target_link_libraries(ydb-core-quoter PUBLIC
core-tx-scheme_cache
ydb-core-util
yql-public-issue
+ ydb-library-time_series_vec
)
target_sources(ydb-core-quoter PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
diff --git a/ydb/core/quoter/kesus_quoter_proxy.cpp b/ydb/core/quoter/kesus_quoter_proxy.cpp
index 2be32929a3..edf33160b3 100644
--- a/ydb/core/quoter/kesus_quoter_proxy.cpp
+++ b/ydb/core/quoter/kesus_quoter_proxy.cpp
@@ -5,7 +5,7 @@
#include <ydb/core/base/counters.h>
#include <ydb/core/base/path.h>
#include <ydb/core/kesus/tablet/events.h>
-#include <ydb/core/util/time_series_vec.h>
+#include <ydb/library/time_series_vec/time_series_vec.h>
#include <ydb/library/yql/public/issue/yql_issue_message.h>
diff --git a/ydb/core/quoter/probes.h b/ydb/core/quoter/probes.h
index c5ef9aca12..076b6f8357 100644
--- a/ydb/core/quoter/probes.h
+++ b/ydb/core/quoter/probes.h
@@ -1,5 +1,5 @@
#pragma once
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <library/cpp/lwtrace/all.h>
diff --git a/ydb/core/quoter/public/CMakeLists.darwin-x86_64.txt b/ydb/core/quoter/public/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..ab3c153e6a
--- /dev/null
+++ b/ydb/core/quoter/public/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-quoter-public)
+target_compile_options(core-quoter-public PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-quoter-public PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-library-time_series_vec
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-quoter-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
+)
+generate_enum_serilization(core-quoter-public
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
+ INCLUDE_HEADERS
+ ydb/core/quoter/public/quoter.h
+)
diff --git a/ydb/core/quoter/public/CMakeLists.linux-aarch64.txt b/ydb/core/quoter/public/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..7b75358ab9
--- /dev/null
+++ b/ydb/core/quoter/public/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-quoter-public)
+target_compile_options(core-quoter-public PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-quoter-public PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-library-time_series_vec
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-quoter-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
+)
+generate_enum_serilization(core-quoter-public
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
+ INCLUDE_HEADERS
+ ydb/core/quoter/public/quoter.h
+)
diff --git a/ydb/core/quoter/public/CMakeLists.linux-x86_64.txt b/ydb/core/quoter/public/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..7b75358ab9
--- /dev/null
+++ b/ydb/core/quoter/public/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-quoter-public)
+target_compile_options(core-quoter-public PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-quoter-public PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-library-time_series_vec
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-quoter-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
+)
+generate_enum_serilization(core-quoter-public
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
+ INCLUDE_HEADERS
+ ydb/core/quoter/public/quoter.h
+)
diff --git a/ydb/core/quoter/public/CMakeLists.txt b/ydb/core/quoter/public/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/core/quoter/public/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/core/quoter/public/CMakeLists.windows-x86_64.txt b/ydb/core/quoter/public/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..ab3c153e6a
--- /dev/null
+++ b/ydb/core/quoter/public/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(core-quoter-public)
+target_compile_options(core-quoter-public PRIVATE
+ -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(core-quoter-public PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-core
+ ydb-library-time_series_vec
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(core-quoter-public PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
+)
+generate_enum_serilization(core-quoter-public
+ ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
+ INCLUDE_HEADERS
+ ydb/core/quoter/public/quoter.h
+)
diff --git a/ydb/core/base/quoter.cpp b/ydb/core/quoter/public/quoter.cpp
index c31333fe56..6e4812e083 100644
--- a/ydb/core/base/quoter.cpp
+++ b/ydb/core/quoter/public/quoter.cpp
@@ -2,9 +2,9 @@
namespace NKikimr {
-TActorId MakeQuoterServiceID() {
+NActors::TActorId MakeQuoterServiceID() {
char x[12] = { 'q', 'u', 'o', 't', 'e', 'r', 's', 'v', 'c' };
- return TActorId(0, TStringBuf(x, 12));
+ return NActors::TActorId(0, TStringBuf(x, 12));
}
ui64 TEvQuota::TResourceLeaf::MakeTaggedRateRes(ui32 tag, ui32 rate) {
diff --git a/ydb/core/base/quoter.h b/ydb/core/quoter/public/quoter.h
index 41a19775bc..f8ffdb6833 100644
--- a/ydb/core/base/quoter.h
+++ b/ydb/core/quoter/public/quoter.h
@@ -1,16 +1,20 @@
#pragma once
-#include "defs.h"
-#include "events.h"
#include <library/cpp/actors/core/event_local.h>
#include <util/generic/deque.h>
#include <util/generic/vector.h>
-#include <ydb/core/util/time_series_vec.h>
+#include <ydb/library/time_series_vec/time_series_vec.h>
+#include <library/cpp/actors/core/events.h>
namespace NKikimr {
struct TEvQuota {
+
+ enum EEventSpaceQuoter {
+ ES_QUOTA = 4177 // must be in sync with ydb/core/base/events.h
+ };
+
enum EEv {
- EvRequest = EventSpaceBegin(TKikimrEvents::ES_QUOTA),
+ EvRequest = EventSpaceBegin(EEventSpaceQuoter::ES_QUOTA),
EvCancelRequest,
EvClearance,
@@ -24,7 +28,7 @@ struct TEvQuota {
EvEnd
};
- static_assert(EvEnd < EventSpaceEnd(TKikimrEvents::ES_QUOTA), "expect EvEnd < EventSpaceEnd(TKikimrEvents::ES_QUOTA)");
+ static_assert(EvEnd < EventSpaceEnd(EEventSpaceQuoter::ES_QUOTA), "expect EvEnd < EventSpaceEnd(TKikimrEvents::ES_QUOTA)");
struct TResourceLeaf {
static constexpr ui64 QuoterSystem = Max<ui64>(); // use as quoter id for some embedded quoters
@@ -69,7 +73,7 @@ struct TEvQuota {
};
// event cookie + sender actorid would be used as id for cancel requests
- struct TEvRequest : public TEventLocal<TEvRequest, EvRequest> {
+ struct TEvRequest : public NActors::TEventLocal<TEvRequest, EvRequest> {
const EResourceOperator Operator;
const TVector<TResourceLeaf> Reqs;
TDuration Deadline;
@@ -81,7 +85,7 @@ struct TEvQuota {
{}
};
- struct TEvClearance : public TEventLocal<TEvClearance, EvClearance> {
+ struct TEvClearance : public NActors::TEventLocal<TEvClearance, EvClearance> {
// clearance result, could be success or deadline, or one of error
enum class EResult {
GenericError,
@@ -97,12 +101,12 @@ struct TEvQuota {
// when cookie present - cancel one request
// when cookie omitted - cancel all requests from sender
- struct TEvCancelRequest : public TEventLocal<TEvClearance, EvCancelRequest> {};
+ struct TEvCancelRequest : public NActors::TEventLocal<TEvClearance, EvCancelRequest> {};
// b/w service and quoter proxy
// initial request
- struct TEvProxyRequest : public TEventLocal<TEvProxyRequest, EvProxyRequest> {
+ struct TEvProxyRequest : public NActors::TEventLocal<TEvProxyRequest, EvProxyRequest> {
const TString Resource;
TEvProxyRequest(const TString &resource)
@@ -117,7 +121,7 @@ struct TEvQuota {
EveryActiveTick,
};
- struct TEvProxySession : public TEventLocal<TEvProxySession, EvProxySession> {
+ struct TEvProxySession : public NActors::TEventLocal<TEvProxySession, EvProxySession> {
enum EResult {
GenericError,
UnknownResource,
@@ -166,7 +170,7 @@ struct TEvQuota {
TProxyStat(const TProxyStat &x) = default;
};
- struct TEvProxyStats : public TEventLocal<TEvProxyStats, EvProxyStats> {
+ struct TEvProxyStats : public NActors::TEventLocal<TEvProxyStats, EvProxyStats> {
const TDeque<TProxyStat> Stats;
TEvProxyStats(TDeque<TProxyStat> &&stats)
@@ -174,7 +178,7 @@ struct TEvQuota {
{}
};
- struct TEvProxyCloseSession : public TEventLocal<TEvProxyCloseSession, EvProxyCloseSession> {
+ struct TEvProxyCloseSession : public NActors::TEventLocal<TEvProxyCloseSession, EvProxyCloseSession> {
const TString Resource;
const ui64 ResourceId;
@@ -234,7 +238,7 @@ struct TEvQuota {
{}
};
- struct TEvProxyUpdate : public TEventLocal<TEvProxyUpdate, EvProxyUpdate> {
+ struct TEvProxyUpdate : public NActors::TEventLocal<TEvProxyUpdate, EvProxyUpdate> {
const ui64 QuoterId;
TVector<TProxyResourceUpdate> Resources;
const EUpdateState QuoterState;
@@ -249,6 +253,6 @@ struct TEvQuota {
};
//
-TActorId MakeQuoterServiceID();
+NActors::TActorId MakeQuoterServiceID();
}
diff --git a/ydb/core/quoter/public/ya.make b/ydb/core/quoter/public/ya.make
new file mode 100644
index 0000000000..f235736629
--- /dev/null
+++ b/ydb/core/quoter/public/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+ quoter.h
+ quoter.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/core
+ ydb/library/time_series_vec
+)
+
+GENERATE_ENUM_SERIALIZATION(quoter.h)
+
+YQL_LAST_ABI_VERSION()
+
+END()
diff --git a/ydb/core/quoter/quoter_service.cpp b/ydb/core/quoter/quoter_service.cpp
index 24897018b7..6996e614a6 100644
--- a/ydb/core/quoter/quoter_service.cpp
+++ b/ydb/core/quoter/quoter_service.cpp
@@ -4,6 +4,7 @@
#include "probes.h"
#include <ydb/core/base/counters.h>
+#include <ydb/core/base/events.h>
#include <library/cpp/lwtrace/mon/mon_lwtrace.h>
#include <cmath>
@@ -43,6 +44,9 @@ extern const TString DISCONNECTS_COUNTER_SENSOR_NAME = "Disconnects";
constexpr double TICK_RATE_EPSILON = 0.0000000001;
+
+static_assert(EventSpaceBegin(NKikimr::TKikimrEvents::ES_QUOTA) == EventSpaceBegin(NKikimr::TEvQuota::ES_QUOTA), "quoter event ids mismatch");
+
NMonitoring::IHistogramCollectorPtr GetLatencyHistogramBuckets() {
return NMonitoring::ExplicitHistogram({0, 1, 2, 5, 10, 20, 50, 100, 500, 1000, 2000, 5000, 10000, 30000, 50000});
}
diff --git a/ydb/core/quoter/quoter_service.h b/ydb/core/quoter/quoter_service.h
index 982f6552b9..8f4ef4b83f 100644
--- a/ydb/core/quoter/quoter_service.h
+++ b/ydb/core/quoter/quoter_service.h
@@ -1,6 +1,6 @@
#pragma once
#include "defs.h"
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
namespace NKikimr {
diff --git a/ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.cpp b/ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.cpp
index 1a48d8211a..02ca905e07 100644
--- a/ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.cpp
+++ b/ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.cpp
@@ -1,5 +1,5 @@
#include "quota_requester.h"
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <cmath>
diff --git a/ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.h b/ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.h
index cbc0463ebd..239956f728 100644
--- a/ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.h
+++ b/ydb/core/quoter/quoter_service_bandwidth_test/quota_requester.h
@@ -2,7 +2,7 @@
#include "options.h"
#include "server.h"
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <library/cpp/actors/core/actor_bootstrapped.h>
diff --git a/ydb/core/quoter/ya.make b/ydb/core/quoter/ya.make
index bfc2f307a9..707467931f 100644
--- a/ydb/core/quoter/ya.make
+++ b/ydb/core/quoter/ya.make
@@ -18,6 +18,7 @@ PEERDIR(
ydb/core/tx/scheme_cache
ydb/core/util
ydb/library/yql/public/issue
+ ydb/library/time_series_vec
)
END()
diff --git a/ydb/core/security/ticket_parser_impl.h b/ydb/core/security/ticket_parser_impl.h
index 550deb5d15..0814e47001 100644
--- a/ydb/core/security/ticket_parser_impl.h
+++ b/ydb/core/security/ticket_parser_impl.h
@@ -21,6 +21,18 @@
namespace NKikimr {
+inline bool IsRetryableGrpcError(const NGrpc::TGrpcStatus& status) {
+ switch (status.GRpcStatusCode) {
+ case grpc::StatusCode::UNAUTHENTICATED:
+ case grpc::StatusCode::PERMISSION_DENIED:
+ case grpc::StatusCode::INVALID_ARGUMENT:
+ case grpc::StatusCode::NOT_FOUND:
+ return false;
+ }
+ return true;
+}
+
+
template <typename TDerived>
class TTicketParserImpl : public TActorBootstrapped<TDerived> {
using TThis = TTicketParserImpl;
@@ -62,16 +74,6 @@ class TTicketParserImpl : public TActorBootstrapped<TDerived> {
return key.Str();
}
- static bool IsRetryableGrpcError(const NGrpc::TGrpcStatus& status) {
- switch (status.GRpcStatusCode) {
- case grpc::StatusCode::UNAUTHENTICATED:
- case grpc::StatusCode::PERMISSION_DENIED:
- case grpc::StatusCode::INVALID_ARGUMENT:
- case grpc::StatusCode::NOT_FOUND:
- return false;
- }
- return true;
- }
struct TPermissionRecord {
TString Subject;
diff --git a/ydb/core/tablet/node_whiteboard.cpp b/ydb/core/tablet/node_whiteboard.cpp
index 866330dd35..289e67c788 100644
--- a/ydb/core/tablet/node_whiteboard.cpp
+++ b/ydb/core/tablet/node_whiteboard.cpp
@@ -653,30 +653,6 @@ protected:
SystemStateInfo.SetSystemState(eFlag);
SystemStateInfo.SetChangeTime(ctx.Now().MilliSeconds());
}
-
- const TIntrusivePtr<::NMonitoring::TDynamicCounters> &counters = AppData(ctx)->Counters;
- TIntrusivePtr<::NMonitoring::TDynamicCounters> interconnectCounters = GetServiceCounters(counters, "interconnect");
- ui64 clockSkew = 0;
- ui32 peerId = 0;
- interconnectCounters->EnumerateSubgroups([&interconnectCounters, &clockSkew, &peerId](const TString &name, const TString &value) -> void {
- if (name == "peer") {
- TIntrusivePtr<::NMonitoring::TDynamicCounters> peerCounters = interconnectCounters->GetSubgroup(name, value);
- ::NMonitoring::TDynamicCounters::TCounterPtr connectedCounter = peerCounters->GetCounter("ClockSkewMicrosec");
- ui64 skew = abs(connectedCounter->Val());
- if (skew > clockSkew) {
- clockSkew = skew;
- TStringBuf tokenBuf(value);
- TString tok(tokenBuf.NextTok(':'));
- if (tok) {
- peerId = std::stoi(tok);
- }
- }
- }
- });
- if (clockSkew > 0) {
- SystemStateInfo.SetClockSkewMicrosec(clockSkew);
- SystemStateInfo.SetClockSkewPeerId(peerId);
- }
}
static void CopyTabletStateInfo(
diff --git a/ydb/core/tablet/tablet_counters_aggregator.cpp b/ydb/core/tablet/tablet_counters_aggregator.cpp
index f800f84d39..4cbf9e4632 100644
--- a/ydb/core/tablet/tablet_counters_aggregator.cpp
+++ b/ydb/core/tablet/tablet_counters_aggregator.cpp
@@ -837,13 +837,13 @@ private:
"table.datashard.size_bytes", false);
ColumnShardScanRows_ = ydbGroup->GetNamedCounter("name",
- "table.columnshard.scan.rows", false);
+ "table.columnshard.scan.rows", true);
ColumnShardScanBytes_ = ydbGroup->GetNamedCounter("name",
- "table.columnshard.scan.bytes", false);
+ "table.columnshard.scan.bytes", true);
ColumnShardBulkUpsertRows_ = ydbGroup->GetNamedCounter("name",
- "table.columnshard.bulk_upsert.rows", false);
+ "table.columnshard.bulk_upsert.rows", true);
ColumnShardBulkUpsertBytes_ = ydbGroup->GetNamedCounter("name",
- "table.columnshard.bulk_upsert.bytes", false);
+ "table.columnshard.bulk_upsert.bytes", true);
ResourcesStorageUsedBytes = ydbGroup->GetNamedCounter("name",
"resources.storage.used_bytes", false);
diff --git a/ydb/core/tablet/tablet_pipe_ut.cpp b/ydb/core/tablet/tablet_pipe_ut.cpp
index 81cbc0dc95..10f1650afa 100644
--- a/ydb/core/tablet/tablet_pipe_ut.cpp
+++ b/ydb/core/tablet/tablet_pipe_ut.cpp
@@ -170,9 +170,13 @@ namespace NKikimr {
return Die(ctx);
}
+ void DefaultSignalTabletActive(const TActorContext&) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &ctx) override {
- Y_UNUSED(ctx);
Become(&TThis::StateWork);
+ SignalTabletActive(ctx);
Cout << "Producer loaded\n";
}
@@ -219,9 +223,14 @@ namespace NKikimr {
}
private:
- void OnActivateExecutor(const TActorContext&) override {
+ void DefaultSignalTabletActive(const TActorContext&) override {
+ // must be empty
+ }
+
+ void OnActivateExecutor(const TActorContext& ctx) override {
Become(&TThis::StateWork);
Cout << "Consumer loaded\n";
+ SignalTabletActive(ctx);
PipeConnectAcceptor->Activate(SelfId(), SelfId());
}
@@ -342,9 +351,13 @@ namespace NKikimr {
}
private:
+ void DefaultSignalTabletActive(const TActorContext&) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext& ctx) override {
- Y_UNUSED(ctx);
Become(&TThis::StateWork);
+ SignalTabletActive(ctx);
Cout << "Consumer loaded\n";
}
@@ -1067,9 +1080,13 @@ Y_UNIT_TEST_SUITE(TTabletPipeTest) {
}
private:
+ void DefaultSignalTabletActive(const TActorContext&) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext& ctx) override {
- Y_UNUSED(ctx);
Become(&TThis::StateWork);
+ SignalTabletActive(ctx);
}
STFUNC(StateInit) {
diff --git a/ydb/core/tablet/tablet_pipecache_ut.cpp b/ydb/core/tablet/tablet_pipecache_ut.cpp
index 4021f35965..1d47d67979 100644
--- a/ydb/core/tablet/tablet_pipecache_ut.cpp
+++ b/ydb/core/tablet/tablet_pipecache_ut.cpp
@@ -54,9 +54,13 @@ Y_UNIT_TEST_SUITE(TPipeCacheTest) {
return Die(ctx);
}
+ void DefaultSignalTabletActive(const TActorContext&) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext& ctx) override {
- Y_UNUSED(ctx);
Become(&TThis::StateWork);
+ SignalTabletActive(ctx);
}
};
diff --git a/ydb/core/tablet_flat/datetime_ut.cpp b/ydb/core/tablet_flat/datetime_ut.cpp
index 0d7728882d..365410b678 100644
--- a/ydb/core/tablet_flat/datetime_ut.cpp
+++ b/ydb/core/tablet_flat/datetime_ut.cpp
@@ -284,8 +284,13 @@ Y_UNIT_TEST_SUITE(TFlatTableDatetime) {
}
};
+ void DefaultSignalTabletActive(const TActorContext &) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &ctx) override {
Become(&TThis::StateWork);
+ SignalTabletActive(ctx);
Execute(new TTxSchema(*this), ctx);
}
diff --git a/ydb/core/tablet_flat/decimal_ut.cpp b/ydb/core/tablet_flat/decimal_ut.cpp
index e487d4822b..caa801279b 100644
--- a/ydb/core/tablet_flat/decimal_ut.cpp
+++ b/ydb/core/tablet_flat/decimal_ut.cpp
@@ -356,8 +356,13 @@ Y_UNIT_TEST_SUITE(TFlatTableDecimals) {
}
};
+ void DefaultSignalTabletActive(const TActorContext &) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &ctx) override {
Become(&TThis::StateWork);
+ SignalTabletActive(ctx);
Execute(new TTxSchema(*this), ctx);
}
diff --git a/ydb/core/tablet_flat/flat_bio_actor.cpp b/ydb/core/tablet_flat/flat_bio_actor.cpp
index 9bbb4e1a21..d91ae40319 100644
--- a/ydb/core/tablet_flat/flat_bio_actor.cpp
+++ b/ydb/core/tablet_flat/flat_bio_actor.cpp
@@ -161,10 +161,7 @@ void TBlockIO::Handle(ui32 base, TArrayRef<TLoaded> items) noexcept
auto& state = BlockStates.at(brick.Slot);
Y_VERIFY(state.Data.size() - state.Offset >= piece.Buffer.size());
- ::memcpy(
- state.Data.mutable_data() + state.Offset,
- piece.Buffer.data(),
- piece.Buffer.size());
+ piece.Buffer.begin().ExtractPlainDataAndAdvance(state.Data.mutable_data() + state.Offset, piece.Buffer.size());
state.Offset += piece.Buffer.size();
}
diff --git a/ydb/core/tablet_flat/flat_bio_actor.h b/ydb/core/tablet_flat/flat_bio_actor.h
index caf3025c2e..faed351711 100644
--- a/ydb/core/tablet_flat/flat_bio_actor.h
+++ b/ydb/core/tablet_flat/flat_bio_actor.h
@@ -60,7 +60,7 @@ namespace NBlockIO {
};
template<typename ... TArgs>
- inline void Once(NActors::IActorOps *ops, TActorId service,
+ inline void Start(NActors::IActorOps *ops, TActorId service,
ui64 cookie, TArgs&& ... args) noexcept
{
auto self = ops->Register(new TBlockIO(service, cookie));
diff --git a/ydb/core/tablet_flat/flat_cxx_database.h b/ydb/core/tablet_flat/flat_cxx_database.h
index f15905864b..2d06c684a5 100644
--- a/ydb/core/tablet_flat/flat_cxx_database.h
+++ b/ydb/core/tablet_flat/flat_cxx_database.h
@@ -1989,20 +1989,9 @@ struct Schema {
};
template <typename... Settings>
- struct SchemaSettings;
-
- template <typename Setting>
- struct SchemaSettings<Setting> {
- static void Materialize(TToughDb& database) {
- Setting::Materialize(database);
- }
- };
-
- template <typename Setting, typename... Settings>
- struct SchemaSettings<Setting, Settings...> : SchemaSettings<Settings...> {
+ struct SchemaSettings {
static void Materialize(TToughDb& database) {
- Setting::Materialize(database);
- SchemaSettings<Settings...>::Materialize(database);
+ (Settings::Materialize(database), ...);
}
};
@@ -2105,7 +2094,7 @@ struct Schema {
}
};
- using TSettings = SchemaSettings<ExecutorLogBatching<false>>;
+ using TSettings = SchemaSettings<>;
};
template <>
diff --git a/ydb/core/tablet_flat/flat_executor_leases_ut.cpp b/ydb/core/tablet_flat/flat_executor_leases_ut.cpp
index 56222743ce..522e70854b 100644
--- a/ydb/core/tablet_flat/flat_executor_leases_ut.cpp
+++ b/ydb/core/tablet_flat/flat_executor_leases_ut.cpp
@@ -183,15 +183,15 @@ Y_UNIT_TEST_SUITE(TFlatExecutorLeases) {
Die(ctx);
}
+ void DefaultSignalTabletActive(const TActorContext&) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext&) override {
Become(&TThis::StateWork);
RunTxInitSchema();
}
- void DefaultSignalTabletActive(const TActorContext&) override {
- // nothing
- }
-
void SwitchToWork(const TActorContext& ctx) {
SignalTabletActive(ctx);
}
diff --git a/ydb/core/tablet_flat/flat_executor_txloglogic.cpp b/ydb/core/tablet_flat/flat_executor_txloglogic.cpp
index d5197d8466..2e1973b229 100644
--- a/ydb/core/tablet_flat/flat_executor_txloglogic.cpp
+++ b/ydb/core/tablet_flat/flat_executor_txloglogic.cpp
@@ -7,6 +7,7 @@
#include "logic_redo_entry.h"
#include "logic_redo_queue.h"
#include "probes.h"
+#include "util_string.h"
#include <ydb/core/tablet_flat/flat_executor.pb.h>
#include <util/system/sanitizers.h>
@@ -207,6 +208,9 @@ void TLogicRedo::MakeLogEntry(TLogCommit &commit, TString redo, TArrayRef<const
Counters->Cumulative()[TMonCo::LOG_REDO_WRITTEN].Increment(coded.size());
if (embed && coded.size() <= MaxSizeToEmbedInLog) {
+ // Note: Encode reserves MaxCompressedLength bytes
+ NUtil::ShrinkToFit(coded);
+
commit.Embedded = std::move(coded);
Queue->Push({ Cookies->Gen, commit.Step }, affects, commit.Embedded);
} else {
diff --git a/ydb/core/tablet_flat/flat_executor_ut.cpp b/ydb/core/tablet_flat/flat_executor_ut.cpp
index 49f80744a9..4154c87d36 100644
--- a/ydb/core/tablet_flat/flat_executor_ut.cpp
+++ b/ydb/core/tablet_flat/flat_executor_ut.cpp
@@ -484,8 +484,13 @@ class TTestFlatTablet : public TActor<TTestFlatTablet>, public TTabletExecutedFl
ctx.Send(Sender, new TEvents::TEvGone);
}
+ void DefaultSignalTabletActive(const TActorContext&) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext&) override {
Become(&TThis::StateWork);
+ SignalTabletActive(SelfId());
Send(Sender, new TEvents::TEvWakeup);
}
diff --git a/ydb/core/tablet_flat/flat_load_blob_queue.cpp b/ydb/core/tablet_flat/flat_load_blob_queue.cpp
index 3c97b4a535..ef6369f010 100644
--- a/ydb/core/tablet_flat/flat_load_blob_queue.cpp
+++ b/ydb/core/tablet_flat/flat_load_blob_queue.cpp
@@ -171,11 +171,13 @@ bool TLoadBlobQueue::ProcessResult(TEvBlobStorage::TEvGetResult* msg) {
ActiveBytesInFly -= x->Id.BlobSize();
+ TString buffer = x->Buffer.ConvertToString();
+
if (std::next(p.first) == p.second) {
// Common case: unique load of the blob
auto item = p.first->second;
Active.erase(p.first);
- item.Load->OnBlobLoaded(x->Id, std::move(x->Buffer), item.Cookie);
+ item.Load->OnBlobLoaded(x->Id, std::move(buffer), item.Cookie);
} else {
// May rarely happen: concurrent load of the same blob
TVector<TActiveItem> items;
@@ -188,10 +190,10 @@ bool TLoadBlobQueue::ProcessResult(TEvBlobStorage::TEvGetResult* msg) {
size_t last = items.size() - 1;
for (size_t i = 0; i < last; ++i) {
// We have to make a copy of the buffer
- items[i].Load->OnBlobLoaded(x->Id, x->Buffer, items[i].Cookie);
+ items[i].Load->OnBlobLoaded(x->Id, buffer, items[i].Cookie);
}
// Last load may consume our buffer
- items[last].Load->OnBlobLoaded(x->Id, std::move(x->Buffer), items[last].Cookie);
+ items[last].Load->OnBlobLoaded(x->Id, std::move(buffer), items[last].Cookie);
}
}
diff --git a/ydb/core/tablet_flat/flat_sausagecache.cpp b/ydb/core/tablet_flat/flat_sausagecache.cpp
index fc3a6cbdc3..327807d3fe 100644
--- a/ydb/core/tablet_flat/flat_sausagecache.cpp
+++ b/ydb/core/tablet_flat/flat_sausagecache.cpp
@@ -4,12 +4,12 @@
namespace NKikimr {
namespace NTabletFlatExecutor {
-TPrivatePageCache::TPage::TPage(ui32 size, ui32 pageId, TInfo* info)
+TPrivatePageCache::TPage::TPage(size_t size, ui32 pageId, TInfo* info)
: LoadState(LoadStateNo)
, Sticky(false)
, SharedPending(false)
- , Size(size)
, Id(pageId)
+ , Size(size)
, Info(info)
{}
@@ -462,7 +462,8 @@ void TPrivatePageCache::UpdateSharedBody(TInfo *info, ui32 pageId, TSharedPageRe
if (!page)
return;
- Y_VERIFY_DEBUG(page->SharedPending, "Shared cache accepted a page that is not pending, possible bug");
+ // Note: shared cache may accept a peinding page if it is used by multiple private caches
+ // (for expample, used by tablet and its follower)
if (Y_UNLIKELY(!page->SharedPending)) {
return;
}
@@ -486,7 +487,8 @@ void TPrivatePageCache::DropSharedBody(TInfo *info, ui32 pageId) {
if (!page)
return;
- Y_VERIFY_DEBUG(!page->SharedPending, "Shared cache dropped page sharing request, possible bug");
+ // Note: shared cache may drop a peinding page if it is used by multiple private caches
+ // (for expample, used by tablet and its follower)
if (Y_UNLIKELY(page->SharedPending)) {
// Shared cache rejected our page so we should drop it too
Stats.TotalSharedPending -= page->Size;
diff --git a/ydb/core/tablet_flat/flat_sausagecache.h b/ydb/core/tablet_flat/flat_sausagecache.h
index 3a1b830e2e..bec3c919e2 100644
--- a/ydb/core/tablet_flat/flat_sausagecache.h
+++ b/ydb/core/tablet_flat/flat_sausagecache.h
@@ -48,12 +48,12 @@ public:
LoadStateRequestedAsync,
};
- ui64 LoadState : 2;
- ui64 Sticky : 1;
- ui64 SharedPending : 1;
- ui64 : 4; // padding
- const ui64 Size : 24;
- const ui64 Id : 32;
+ ui32 LoadState : 2;
+ ui32 Sticky : 1;
+ ui32 SharedPending : 1;
+
+ const ui32 Id;
+ const size_t Size;
TInfo* const Info;
TIntrusivePtr<TPrivatePageCachePinPad> PinPad;
@@ -61,7 +61,7 @@ public:
TSharedPageRef SharedBody;
TSharedData PinnedBody;
- TPage(ui32 size, ui32 pageId, TInfo* info);
+ TPage(size_t size, ui32 pageId, TInfo* info);
TPage(const TPage&) = delete;
TPage(TPage&&) = delete;
diff --git a/ydb/core/tablet_flat/shared_cache_events.h b/ydb/core/tablet_flat/shared_cache_events.h
index e7ed55be96..a7abe542ef 100644
--- a/ydb/core/tablet_flat/shared_cache_events.h
+++ b/ydb/core/tablet_flat/shared_cache_events.h
@@ -26,6 +26,7 @@ namespace NSharedCache {
EvRequest,
EvResult,
EvUpdated,
+ EvMem,
EvEnd
@@ -130,6 +131,9 @@ namespace NSharedCache {
THashMap<TLogoBlobID, TActions> Actions;
};
+ struct TEvMem : public TEventLocal<TEvMem, EvMem> {
+ };
+
}
}
diff --git a/ydb/core/tablet_flat/shared_sausagecache.cpp b/ydb/core/tablet_flat/shared_sausagecache.cpp
index c0cb5e7987..3a6f3ac6cc 100644
--- a/ydb/core/tablet_flat/shared_sausagecache.cpp
+++ b/ydb/core/tablet_flat/shared_sausagecache.cpp
@@ -13,8 +13,11 @@
namespace NKikimr {
TSharedPageCacheCounters::TSharedPageCacheCounters(const TIntrusivePtr<::NMonitoring::TDynamicCounters> &group)
- : ActivePages(group->GetCounter("ActivePages"))
+ : MemLimitBytes(group->GetCounter("MemLimitBytes"))
+ , ConfigLimitBytes(group->GetCounter("ConfigLimitBytes"))
+ , ActivePages(group->GetCounter("ActivePages"))
, ActiveBytes(group->GetCounter("ActiveBytes"))
+ , ActiveLimitBytes(group->GetCounter("ActiveLimitBytes"))
, PassivePages(group->GetCounter("PassivePages"))
, PassiveBytes(group->GetCounter("PassiveBytes"))
, RequestedPages(group->GetCounter("RequestedPages", true))
@@ -39,9 +42,7 @@ static bool Satisfies(NLog::EPriority priority = NLog::PRI_DEBUG) {
return false;
}
-class TSharedPageCache : public TActor<TSharedPageCache> {
- THolder<TSharedPageCacheConfig> Config;
-
+class TSharedPageCache : public TActorBootstrapped<TSharedPageCache> {
using ELnLev = NUtil::ELnLev;
using TBlocks = TVector<NSharedCache::TEvResult::TLoaded>;
@@ -60,20 +61,21 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
: public TSharedPageHandle
, public TIntrusiveListItem<TPage>
{
- ui64 State : 4;
- ui64 CacheGeneration : 3;
- ui64 InMemory : 1;
- ui64 Size : 24;
- const ui64 PageId : 32;
+ ui32 State : 4;
+ ui32 CacheGeneration : 3;
+ ui32 InMemory : 1;
+
+ const ui32 PageId;
+ const size_t Size;
TCollection* Collection;
- TPage(ui32 pageId, TCollection* collection)
+ TPage(ui32 pageId, size_t size, TCollection* collection)
: State(PageStateNo)
, CacheGeneration(TCacheCacheConfig::CacheGenNone)
, InMemory(false)
- , Size(0)
, PageId(pageId)
+ , Size(size)
, Collection(collection)
{}
@@ -163,11 +165,13 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
TAutoPtr<NUtil::ILogger> Logger;
THashMap<TLogoBlobID, TCollection> Collections;
THashMap<TActorId, TCollectionsOwner> CollectionsOwners;
+ TIntrusivePtr<TMemObserver> MemObserver;
TRequestQueue AsyncRequests;
TRequestQueue ScanRequests;
- TCacheCache<TPage, TPage::TWeight> Cache;
+ THolder<TSharedPageCacheConfig> Config;
+ TCacheCache<TPage, TPage::TWeight, TCacheCacheConfig::TDefaultGeneration<TPage>> Cache;
TControlWrapper SizeOverride;
@@ -176,27 +180,91 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
ui64 StatHitBytes = 0;
ui64 StatMissPages = 0;
ui64 StatMissBytes = 0;
+ ui64 StatActiveBytes = 0;
ui64 StatPassiveBytes = 0;
+ ui64 StatLoadInFlyBytes = 0;
bool GCScheduled = false;
+ // 0 means unlimited
+ ui64 MemLimitBytes = 0;
+ ui64 ConfigLimitBytes;
+
void ActualizeCacheSizeLimit() {
if ((ui64)SizeOverride != Config->CacheConfig->Limit) {
Config->CacheConfig->SetLimit(SizeOverride);
}
- ui64 limit = Config->CacheConfig->Limit;
- limit = Max<ui64>(1,
- limit * Config->ActivePagesReservationPercent / 100,
- limit > StatPassiveBytes ? limit - StatPassiveBytes : 0);
+ ConfigLimitBytes = Config->CacheConfig->Limit;
+ ui64 limit = ConfigLimitBytes;
+ if (MemLimitBytes && ConfigLimitBytes > MemLimitBytes) {
+ limit = MemLimitBytes;
+ }
+
+ // limit of cache depends only on config and mem because passive pages may go in and out arbitrary
+ // we may have some passive bytes, so if we fully fill this Cache we may exceed the limit
+ // because of that DoGC should be called to ensure limits
Cache.UpdateCacheSize(limit);
- Evict(Cache.EnsureLimits());
+ if (Config->Counters) {
+ Config->Counters->ConfigLimitBytes->Set(ConfigLimitBytes);
+ Config->Counters->ActiveLimitBytes->Set(limit);
+ }
+ }
+
+ void DoGC() {
+ // maybe we already have enough useless pages
+ // update StatActiveBytes + StatPassiveBytes
+ ProcessGCList();
+
+ ui64 configActiveReservedBytes = ConfigLimitBytes * Config->ActivePagesReservationPercent / 100;
+
+ THashSet<TCollection*> recheck;
+ while (MemLimitBytes && GetStatAllBytes() > MemLimitBytes
+ || GetStatAllBytes() > ConfigLimitBytes && StatActiveBytes > configActiveReservedBytes) {
+ auto page = Cache.EvictNext();
+ if (!page) {
+ break;
+ }
+ EvictNow(page, recheck);
+ }
+ if (recheck) {
+ CheckExpiredCollections(std::move(recheck));
+ }
+ }
+
+ void Handle(NSharedCache::TEvMem::TPtr &) {
+ // always get the latest value
+ auto mem = MemObserver->GetStat();
+
+ if (mem.SoftLimit) {
+ ui64 usedExternal = 0;
+ // we have: mem.Used = usedExternal + StatAllBytes
+ if (mem.Used > GetStatAllBytes()) {
+ usedExternal = mem.Used - GetStatAllBytes();
+ }
+
+ // we want: MemLimitBytes + externalUsage <= mem.SoftLimit
+ MemLimitBytes = mem.SoftLimit > usedExternal
+ ? mem.SoftLimit - usedExternal
+ : 1;
+ } else {
+ MemLimitBytes = 0;
+ }
+
+ if (Config->Counters) {
+ Config->Counters->MemLimitBytes->Set(MemLimitBytes);
+ }
+
+ ActualizeCacheSizeLimit();
+
+ DoGC();
}
void Registered(TActorSystem *sys, const TActorId &owner)
{
+ NActors::TActorBootstrapped<TSharedPageCache>::Registered(sys, owner);
Owner = owner;
Logger = new NUtil::TLogger(sys, NKikimrServices::TABLET_SAUSAGECACHE);
@@ -286,8 +354,7 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
metaId.ToString().c_str(), pageId, collection.PageMap.size());
auto* page = collection.PageMap[pageId].Get();
if (!page) {
- Y_VERIFY(collection.PageMap.emplace(pageId, (page = new TPage(pageId, &collection))));
- page->Size = pageCollection.Page(pageId).Size;
+ Y_VERIFY(collection.PageMap.emplace(pageId, (page = new TPage(pageId, pageCollection.Page(pageId).Size, &collection))));
}
if (Config->Counters) {
@@ -415,12 +482,9 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
if (queue) {
RequestFromQueue(*queue);
} else {
- if (Config->Counters) {
- *Config->Counters->LoadInFlyPages += pagesToRequest.size();
- *Config->Counters->LoadInFlyBytes += pagesToRequestBytes;
- }
+ AddInFlyPages(pagesToRequest.size(), pagesToRequestBytes);
auto *fetch = new NPageCollection::TFetch(0, waitingRequest->PageCollection, std::move(pagesToRequest));
- NBlockIO::Once(this, waitingRequest->Owner, 0, waitingRequest->Priority, fetch);
+ NBlockIO::Start(this, waitingRequest->Owner, 0, waitingRequest->Priority, fetch);
}
}
} else {
@@ -432,7 +496,7 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
SendReadyBlocks(*waitingRequest);
}
- ProcessGCList();
+ DoGC();
}
void RequestFromQueue(TRequestQueue &queue) {
@@ -500,10 +564,11 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
<< " pages " << toLoad;
}
+ AddInFlyPages(toLoad.size(), sizeToLoad);
// fetch cookie -> requested size;
// event cookie -> ptr to queue
auto *fetch = new NPageCollection::TFetch(sizeToLoad, wa.PageCollection, std::move(toLoad));
- NBlockIO::Once(this, wa.Owner, (ui64)&queue, wa.Priority, fetch);
+ NBlockIO::Start(this, wa.Owner, (ui64)&queue, wa.Priority, fetch);
}
}
}
@@ -565,8 +630,7 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
auto* page = collection.PageMap[pageId].Get();
if (!page) {
if (x.second) {
- Y_VERIFY(collection.PageMap.emplace(pageId, (page = new TPage(pageId, &collection))));
- page->Size = x.second.size();
+ Y_VERIFY(collection.PageMap.emplace(pageId, (page = new TPage(pageId, x.second.size(), &collection))));
} else {
continue;
}
@@ -612,7 +676,7 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
Send(ev->Sender, msg.Release());
}
- ProcessGCList();
+ DoGC();
}
void Handle(NSharedCache::TEvUnregister::TPtr &ev) {
@@ -697,9 +761,8 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
if (!page || !page->HasMissingBody())
continue;
- if (page->State == PageStateRequested && Config->Counters) {
- --*Config->Counters->LoadInFlyPages;
- *Config->Counters->LoadInFlyBytes -= page->Size;
+ if (page->State == PageStateRequested || page->State == PageStateRequestedAsync) {
+ RemoveInFlyPage(page);
}
page->Initialize(std::move(paged.Data));
@@ -708,7 +771,7 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
}
}
- ProcessGCList();
+ DoGC();
}
void TryDropExpiredCollection(TCollection* collection) {
@@ -733,28 +796,38 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
while (auto rawPage = GCList->PopGC()) {
auto* page = static_cast<TPage*>(rawPage.Get());
- if (page->TryDrop()) {
- // We have successfully dropped the page
- // We are guaranteed no new uses for this page are possible
- Y_VERIFY(page->State == PageStateEvicted);
- RemovePassivePage(page);
-
- Y_VERIFY_DEBUG_S(page->Collection, "Evicted pages are expected to have collection");
- if (auto* collection = page->Collection) {
- Y_VERIFY_DEBUG(collection->PageMap[page->PageId].Get() == page);
- Y_VERIFY(collection->PageMap.erase(page->PageId));
- if (collection->Owners) {
- collection->DroppedPages.push_back(page->PageId);
- }
- recheck.insert(collection);
- }
- }
+ TryDrop(page, recheck);
}
if (recheck) {
CheckExpiredCollections(std::move(recheck));
}
+ TryScheduleGC();
+ }
+
+ void TryDrop(TPage* page, THashSet<TCollection*>& recheck) {
+ if (page->TryDrop()) {
+ // We have successfully dropped the page
+ // We are guaranteed no new uses for this page are possible
+ Y_VERIFY(page->State == PageStateEvicted);
+ RemovePassivePage(page);
+
+ Y_VERIFY_DEBUG_S(page->Collection, "Evicted pages are expected to have collection");
+ if (auto* collection = page->Collection) {
+ auto pageId = page->PageId;
+ Y_VERIFY_DEBUG(collection->PageMap[pageId].Get() == page);
+ Y_VERIFY(collection->PageMap.erase(pageId));
+ // Note: don't use page after erase as it may be deleted
+ if (collection->Owners) {
+ collection->DroppedPages.push_back(pageId);
+ }
+ recheck.insert(collection);
+ }
+ }
+ }
+
+ void TryScheduleGC() {
if (!GCScheduled) {
TActivationContext::AsActorContext().Schedule(TDuration::Seconds(15), new TEvents::TEvWakeup());
GCScheduled = true;
@@ -858,11 +931,10 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
continue;
}
- if (page->State == PageStateRequested && Config->Counters) {
+ if (page->State == PageStateRequested) {
// Request is technically inflight, but response will be ignored
// Pretend request is cancelled for simplicity
- --*Config->Counters->LoadInFlyPages;
- *Config->Counters->LoadInFlyBytes -= page->Size;
+ RemoveInFlyPage(page);
}
page->Collection = nullptr;
@@ -933,36 +1005,35 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
void Evict(TIntrusiveList<TPage>&& pages) {
while (!pages.Empty()) {
TPage* page = pages.PopFront();
- Y_VERIFY(page->CacheGeneration == TCacheCacheConfig::CacheGenEvicted);
+
+ Y_VERIFY_S(page->CacheGeneration == TCacheCacheConfig::CacheGenEvicted, "unexpected " << page->CacheGeneration << " page cache generation");
page->CacheGeneration = TCacheCacheConfig::CacheGenNone;
- switch (page->State) {
- case PageStateNo:
- Y_FAIL("unexpected uninitialized page");
-
- case PageStateEvicted:
- Y_FAIL("unexpected evicted page");
-
- case PageStateRequested:
- case PageStateRequestedAsync:
- case PageStatePending:
- break;
-
- case PageStateLoaded:
- page->State = PageStateEvicted;
- RemoveActivePage(page);
- AddPassivePage(page);
- if (page->UnUse()) {
- GCList->PushGC(page);
- }
- break;
-
- default:
- Y_FAIL("unknown load state");
+ Y_VERIFY_S(page->State == PageStateLoaded, "unexpected " << page->State << " page state");
+ page->State = PageStateEvicted;
+
+ RemoveActivePage(page);
+ AddPassivePage(page);
+ if (page->UnUse()) {
+ GCList->PushGC(page);
}
}
}
+ void EvictNow(TPage* page, THashSet<TCollection*>& recheck) {
+ Y_VERIFY_S(page->CacheGeneration == TCacheCacheConfig::CacheGenEvicted, "unexpected " << page->CacheGeneration << " page cache generation");
+ page->CacheGeneration = TCacheCacheConfig::CacheGenNone;
+
+ Y_VERIFY_S(page->State == PageStateLoaded, "unexpected " << page->State << " page state");
+ page->State = PageStateEvicted;
+
+ RemoveActivePage(page);
+ AddPassivePage(page);
+ if (page->UnUse()) {
+ TryDrop(page, recheck);
+ }
+ }
+
void Handle(TEvSharedPageCache::TEvConfigure::TPtr& ev) {
const auto* msg = ev->Get();
@@ -987,7 +1058,12 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
}
}
+ inline ui64 GetStatAllBytes() const {
+ return StatActiveBytes + StatPassiveBytes + StatLoadInFlyBytes;
+ }
+
inline void AddActivePage(const TPage* page) {
+ StatActiveBytes += sizeof(TPage) + page->Size;
if (Config->Counters) {
++*Config->Counters->ActivePages;
*Config->Counters->ActiveBytes += sizeof(TPage) + page->Size;
@@ -1002,7 +1078,17 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
}
}
+ inline void AddInFlyPages(ui64 count, ui64 size) {
+ StatLoadInFlyBytes += sizeof(TPage) * count + size;
+ if (Config->Counters) {
+ *Config->Counters->LoadInFlyPages += count;
+ *Config->Counters->LoadInFlyBytes += sizeof(TPage) * count + size;
+ }
+ }
+
inline void RemoveActivePage(const TPage* page) {
+ Y_VERIFY_DEBUG(StatActiveBytes >= sizeof(TPage) + page->Size);
+ StatActiveBytes -= sizeof(TPage) + page->Size;
if (Config->Counters) {
--*Config->Counters->ActivePages;
*Config->Counters->ActiveBytes -= sizeof(TPage) + page->Size;
@@ -1010,6 +1096,7 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
}
inline void RemovePassivePage(const TPage* page) {
+ Y_VERIFY_DEBUG(StatPassiveBytes >= sizeof(TPage) + page->Size);
StatPassiveBytes -= sizeof(TPage) + page->Size;
if (Config->Counters) {
--*Config->Counters->PassivePages;
@@ -1017,17 +1104,35 @@ class TSharedPageCache : public TActor<TSharedPageCache> {
}
}
+ inline void RemoveInFlyPage(const TPage* page) {
+ Y_VERIFY_DEBUG(StatLoadInFlyBytes >= sizeof(TPage) + page->Size);
+ StatLoadInFlyBytes -= sizeof(TPage) + page->Size;
+ if (Config->Counters) {
+ --*Config->Counters->LoadInFlyPages;
+ *Config->Counters->LoadInFlyBytes -= sizeof(TPage) + page->Size;
+ }
+ }
+
public:
- TSharedPageCache(THolder<TSharedPageCacheConfig> config)
- : TActor(&TThis::StateFunc)
+ TSharedPageCache(THolder<TSharedPageCacheConfig> config, TIntrusivePtr<TMemObserver> memObserver)
+ : MemObserver(std::move(memObserver))
, Config(std::move(config))
, Cache(*Config->CacheConfig)
, SizeOverride(Config->CacheConfig->Limit, 1, Max<i64>())
+ , ConfigLimitBytes(Config->CacheConfig->Limit)
{
AsyncRequests.Limit = Config->TotalAsyncQueueInFlyLimit;
ScanRequests.Limit = Config->TotalScanQueueInFlyLimit;
}
+ void Bootstrap() {
+ MemObserver->Subscribe([actorSystem = NActors::TActivationContext::ActorSystem(), selfId = SelfId()] () {
+ actorSystem->Send(selfId, new NSharedCache::TEvMem());
+ });
+
+ Become(&TThis::StateFunc);
+ }
+
STFUNC(StateFunc) {
switch (ev->GetTypeRewrite()) {
hFunc(NSharedCache::TEvAttach, Handle);
@@ -1035,6 +1140,7 @@ public:
hFunc(NSharedCache::TEvTouch, Handle);
hFunc(NSharedCache::TEvUnregister, Handle);
hFunc(NSharedCache::TEvInvalidate, Handle);
+ hFunc(NSharedCache::TEvMem, Handle);
hFunc(NBlockIO::TEvData, Handle);
hFunc(TEvSharedPageCache::TEvConfigure, Handle);
cFunc(TEvents::TSystem::Wakeup, GCWakeup);
@@ -1049,8 +1155,8 @@ public:
} // NTabletFlatExecutor
-IActor* CreateSharedPageCache(THolder<TSharedPageCacheConfig> config) {
- return new NTabletFlatExecutor::TSharedPageCache(std::move(config));
+IActor* CreateSharedPageCache(THolder<TSharedPageCacheConfig> config, TIntrusivePtr<TMemObserver> memObserver) {
+ return new NTabletFlatExecutor::TSharedPageCache(std::move(config), std::move(memObserver));
}
}
diff --git a/ydb/core/tablet_flat/shared_sausagecache.h b/ydb/core/tablet_flat/shared_sausagecache.h
index cf5e2f1c14..0afbaa99dc 100644
--- a/ydb/core/tablet_flat/shared_sausagecache.h
+++ b/ydb/core/tablet_flat/shared_sausagecache.h
@@ -1,5 +1,6 @@
#pragma once
#include "defs.h"
+#include <ydb/core/base/memobserver.h>
#include <ydb/core/protos/shared_cache.pb.h>
#include <ydb/core/util/cache_cache.h>
#include <util/system/unaligned_mem.h>
@@ -23,8 +24,11 @@ struct TEvSharedPageCache {
struct TSharedPageCacheCounters final : public TAtomicRefCount<TSharedPageCacheCounters> {
using TCounterPtr = ::NMonitoring::TDynamicCounters::TCounterPtr;
+ const TCounterPtr MemLimitBytes;
+ const TCounterPtr ConfigLimitBytes;
const TCounterPtr ActivePages;
const TCounterPtr ActiveBytes;
+ const TCounterPtr ActiveLimitBytes;
const TCounterPtr PassivePages;
const TCounterPtr PassiveBytes;
const TCounterPtr RequestedPages;
@@ -48,7 +52,7 @@ struct TSharedPageCacheConfig {
ui32 ActivePagesReservationPercent = 50;
};
-IActor* CreateSharedPageCache(THolder<TSharedPageCacheConfig> config);
+IActor* CreateSharedPageCache(THolder<TSharedPageCacheConfig> config, TIntrusivePtr<TMemObserver> memObserver);
inline TActorId MakeSharedPageCacheId(ui64 id = 0) {
char x[12] = { 's', 'h', 's', 'c' };
diff --git a/ydb/core/tablet_flat/tablet_flat_executed.cpp b/ydb/core/tablet_flat/tablet_flat_executed.cpp
index 35f653b6b1..329090555e 100644
--- a/ydb/core/tablet_flat/tablet_flat_executed.cpp
+++ b/ydb/core/tablet_flat/tablet_flat_executed.cpp
@@ -104,6 +104,15 @@ void TTabletExecutedFlat::OnTabletStop(TEvTablet::TEvTabletStop::TPtr &ev, const
ctx.Send(Tablet(), new TEvTablet::TEvTabletStopped());
}
+void TTabletExecutedFlat::HandlePoison(const TActorContext &ctx) {
+ if (Executor0) {
+ Executor0->DetachTablet(ExecutorCtx(ctx));
+ Executor0 = nullptr;
+ }
+
+ Detach(ctx);
+}
+
void TTabletExecutedFlat::HandleTabletStop(TEvTablet::TEvTabletStop::TPtr &ev, const TActorContext &ctx) {
if (Executor() && Executor()->GetStats().IsActive) {
OnTabletStop(ev, ctx);
@@ -139,20 +148,20 @@ void TTabletExecutedFlat::HandleLocalReadColumns(TEvTablet::TEvLocalReadColumns:
Execute(Factory->Make(ev), ctx);
}
-void TTabletExecutedFlat::SignalTabletActive(const TActorContext &ctx) {
- ctx.Send(Tablet(), new TEvTablet::TEvTabletActive());
+void TTabletExecutedFlat::SignalTabletActive(const TActorIdentity &id) {
+ id.Send(Tablet(), new TEvTablet::TEvTabletActive());
}
-void TTabletExecutedFlat::DefaultSignalTabletActive(const TActorContext &ctx) {
- SignalTabletActive(ctx);
+void TTabletExecutedFlat::SignalTabletActive(const TActorContext &ctx) {
+ ctx.Send(Tablet(), new TEvTablet::TEvTabletActive());
}
void TTabletExecutedFlat::Enqueue(STFUNC_SIG) {
Y_UNUSED(ev);
+ Y_VERIFY_DEBUG(false, "Unhandled StateInit event 0x%08" PRIx32, ev->GetTypeRewrite());
}
void TTabletExecutedFlat::ActivateExecutor(const TActorContext &ctx) {
- DefaultSignalTabletActive(ctx);
OnActivateExecutor(ctx);
}
@@ -247,6 +256,7 @@ void TTabletExecutedFlat::HandleGetCounters(TEvTablet::TEvGetCounters::TPtr &ev)
bool TTabletExecutedFlat::HandleDefaultEvents(TAutoPtr<IEventHandle>& ev, const TActorIdentity& id) {
auto ctx(NActors::TActivationContext::ActorContextFor(id));
switch (ev->GetTypeRewrite()) {
+ CFuncCtx(TEvents::TEvPoison::EventType, HandlePoison, ctx);
HFuncCtx(TEvTablet::TEvBoot, Handle, ctx);
HFuncCtx(TEvTablet::TEvRestored, Handle, ctx);
HFuncCtx(TEvTablet::TEvFBoot, Handle, ctx);
@@ -273,15 +283,17 @@ bool TTabletExecutedFlat::HandleDefaultEvents(TAutoPtr<IEventHandle>& ev, const
void TTabletExecutedFlat::StateInitImpl(TAutoPtr<IEventHandle>& ev, const TActorIdentity& id) {
auto ctx(NActors::TActivationContext::ActorContextFor(id));
switch (ev->GetTypeRewrite()) {
+ CFuncCtx(TEvents::TEvPoison::EventType, HandlePoison, ctx);
HFuncCtx(TEvTablet::TEvBoot, Handle, ctx);
+ HFuncCtx(TEvTablet::TEvRestored, Handle, ctx);
HFuncCtx(TEvTablet::TEvFBoot, Handle, ctx);
hFunc(TEvTablet::TEvFUpdate, Handle);
hFunc(TEvTablet::TEvFAuxUpdate, Handle);
hFunc(TEvTablet::TEvFollowerGcApplied, Handle);
- HFuncCtx(TEvTablet::TEvRestored, Handle, ctx);
+ hFunc(TEvTablet::TEvNewFollowerAttached, Handle);
+ hFunc(TEvTablet::TEvFollowerSyncComplete, Handle);
HFuncCtx(TEvTablet::TEvTabletStop, HandleTabletStop, ctx);
HFuncCtx(TEvTablet::TEvTabletDead, HandleTabletDead, ctx);
- hFunc(TEvTablet::TEvFollowerSyncComplete, Handle);
hFunc(TEvTablet::TEvUpdateConfig, Handle);
HFuncCtx(NMon::TEvRemoteHttpInfo, RenderHtmlPage, ctx);
IgnoreFunc(TEvTablet::TEvReady);
diff --git a/ydb/core/tablet_flat/tablet_flat_executed.h b/ydb/core/tablet_flat/tablet_flat_executed.h
index 6aa99827b2..82cc425b72 100644
--- a/ydb/core/tablet_flat/tablet_flat_executed.h
+++ b/ydb/core/tablet_flat/tablet_flat_executed.h
@@ -39,9 +39,27 @@ protected:
virtual void OnTabletDead(TEvTablet::TEvTabletDead::TPtr &ev, const TActorContext &ctx) = 0;
virtual bool OnRenderAppHtmlPage(NMon::TEvRemoteHttpInfo::TPtr ev, const TActorContext &ctx);
+ /**
+ * Signal tablet as active and ready to process requests (from pipes).
+ */
+ void SignalTabletActive(const TActorIdentity &id);
void SignalTabletActive(const TActorContext &ctx);
- virtual void DefaultSignalTabletActive(const TActorContext &ctx); // must be overriden with empty body to postpone 'tablet active' notification
+ /**
+ * Must be overriden as an empty method. Previously default implementation
+ * was calling SignalTabletActive, but this proved to be error prone. For
+ * compatibility reasons an empty implementation is mandatory. This method
+ * is never called, and will be removed in the future.
+ */
+ virtual void DefaultSignalTabletActive(const TActorContext &ctx) = 0;
+
+ /**
+ * Called by StateInitImpl for unhandled non-system events. Used to delay
+ * processing of requests until tablet implementation is fully initialized.
+ * Default implementation will abort when compiled in debug mode.
+ * It is recommended to delay SignalTabletActive until tablet is ready to
+ * process incoming requests instead of using Enqueue.
+ */
virtual void Enqueue(STFUNC_SIG);
void Handle(TEvTablet::TEvBoot::TPtr &ev, const TActorContext &ctx);
@@ -54,6 +72,12 @@ protected:
void Handle(TEvTablet::TEvNewFollowerAttached::TPtr&);
void Handle(TEvTablet::TEvUpdateConfig::TPtr&);
+ /**
+ * Common handler for TEvPoison, detaches from executor and calls Detach,
+ * which is expected to Die/PassAway in OnDetach.
+ */
+ void HandlePoison(const TActorContext &ctx);
+
void HandleTabletStop(TEvTablet::TEvTabletStop::TPtr &ev, const TActorContext &ctx);
void HandleTabletDead(TEvTablet::TEvTabletDead::TPtr &ev, const TActorContext &ctx);
void HandleLocalMKQL(TEvTablet::TEvLocalMKQL::TPtr &ev, const TActorContext &ctx);
diff --git a/ydb/core/tablet_flat/test/libs/exec/dummy.h b/ydb/core/tablet_flat/test/libs/exec/dummy.h
index 3f40203018..81477d209d 100644
--- a/ydb/core/tablet_flat/test/libs/exec/dummy.h
+++ b/ydb/core/tablet_flat/test/libs/exec/dummy.h
@@ -92,9 +92,15 @@ namespace NFake {
Y_FAIL("Got unexpected event %s on tablet booting", name);
}
+ void DefaultSignalTabletActive(const TActorContext&) override
+ {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext&) override
{
if (std::exchange(State, EState::Work) != EState::Work) {
+ SignalTabletActive(SelfId());
Send(Owner, new NFake::TEvReady(TabletID(), SelfId()));
} else {
Y_FAIL("Received unexpected TExecutor activation");
diff --git a/ydb/core/tablet_flat/test/libs/exec/runner.h b/ydb/core/tablet_flat/test/libs/exec/runner.h
index 5196950aa3..5361c1f0c2 100644
--- a/ydb/core/tablet_flat/test/libs/exec/runner.h
+++ b/ydb/core/tablet_flat/test/libs/exec/runner.h
@@ -163,7 +163,7 @@ namespace NFake {
{ /*_ Resource broker service, used for generic scans */
using namespace NResourceBroker;
- auto *actor = CreateResourceBrokerActor(MakeDefaultConfig(), Env.GetDynamicCounters(0));
+ auto *actor = CreateResourceBrokerActor(MakeDefaultConfig(), Env.GetDynamicCounters());
AddService(MakeResourceBrokerID(), actor, EMail::Revolving);
}
@@ -183,8 +183,9 @@ namespace NFake {
config->CacheConfig = new TCacheCacheConfig(conf.Shared, nullptr, nullptr, nullptr);
config->TotalAsyncQueueInFlyLimit = conf.AsyncQueue;
config->TotalScanQueueInFlyLimit = conf.ScanQueue;
+ config->Counters = MakeIntrusive<TSharedPageCacheCounters>(Env.GetDynamicCounters());
- auto *actor = CreateSharedPageCache(std::move(config));
+ auto *actor = CreateSharedPageCache(std::move(config), Env.GetMemObserver());
RunOn(3, MakeSharedPageCacheId(0), actor, EMail::ReadAsFilled);
}
diff --git a/ydb/core/tablet_flat/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet_flat/ut/CMakeLists.darwin-x86_64.txt
index e76cc7340f..f5e5f0917d 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.darwin-x86_64.txt
@@ -71,6 +71,7 @@ target_sources(ydb-core-tablet_flat-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_forward.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_screen.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_bloom.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_shared_sausagecache.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice_loader.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_versions.cpp
diff --git a/ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt
index 232fb00f89..4723dfaccd 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt
@@ -74,6 +74,7 @@ target_sources(ydb-core-tablet_flat-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_forward.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_screen.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_bloom.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_shared_sausagecache.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice_loader.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_versions.cpp
diff --git a/ydb/core/tablet_flat/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tablet_flat/ut/CMakeLists.linux-x86_64.txt
index 4f9b399a40..233cb18aa6 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.linux-x86_64.txt
@@ -75,6 +75,7 @@ target_sources(ydb-core-tablet_flat-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_forward.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_screen.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_bloom.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_shared_sausagecache.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice_loader.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_versions.cpp
diff --git a/ydb/core/tablet_flat/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tablet_flat/ut/CMakeLists.windows-x86_64.txt
index 716aa62ec4..b8a2359330 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.windows-x86_64.txt
@@ -64,6 +64,7 @@ target_sources(ydb-core-tablet_flat-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_forward.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_screen.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_bloom.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_shared_sausagecache.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_slice_loader.cpp
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_versions.cpp
diff --git a/ydb/core/tablet_flat/ut/ut_shared_sausagecache.cpp b/ydb/core/tablet_flat/ut/ut_shared_sausagecache.cpp
new file mode 100644
index 0000000000..26bdf4f71e
--- /dev/null
+++ b/ydb/core/tablet_flat/ut/ut_shared_sausagecache.cpp
@@ -0,0 +1,166 @@
+#include "flat_executor_ut_common.h"
+
+#include <util/system/sanitizers.h>
+
+namespace NKikimr {
+namespace NTabletFlatExecutor {
+
+Y_UNIT_TEST_SUITE(TSharedPageCache) {
+
+constexpr i64 MB = 1024*1024;
+
+enum : ui32 {
+ TableId = 101,
+ KeyColumnId = 1,
+ ValueColumnId = 2,
+};
+
+struct TTxInitSchema : public ITransaction {
+ bool Execute(TTransactionContext& txc, const TActorContext&) override {
+ if (txc.DB.GetScheme().GetTableInfo(TableId))
+ return true;
+
+ txc.DB.Alter()
+ .AddTable("test" + ToString(ui32(TableId)), TableId)
+ .AddColumn(TableId, "key", KeyColumnId, NScheme::TInt64::TypeId, false)
+ .AddColumn(TableId, "value", ValueColumnId, NScheme::TString::TypeId, false)
+ .AddColumnToKey(TableId, KeyColumnId);
+
+ return true;
+ }
+
+ void Complete(const TActorContext& ctx) override {
+ ctx.Send(ctx.SelfID, new NFake::TEvReturn);
+ }
+};
+
+struct TTxWriteRow : public ITransaction {
+ i64 Key;
+ TString Value;
+
+ explicit TTxWriteRow(i64 key, TString value)
+ : Key(key)
+ , Value(std::move(value))
+ { }
+
+ bool Execute(TTransactionContext& txc, const TActorContext&) override {
+ const auto key = NScheme::TInt64::TInstance(Key);
+
+ const auto val = NScheme::TString::TInstance(Value);
+ NTable::TUpdateOp ops{ ValueColumnId, NTable::ECellOp::Set, val };
+
+ txc.DB.Update(TableId, NTable::ERowOp::Upsert, { key }, { ops });
+
+ return true;
+ }
+
+ void Complete(const TActorContext&ctx) override {
+ ctx.Send(ctx.SelfID, new NFake::TEvReturn);
+ }
+};
+
+struct TTxReadRow : public ITransaction {
+ i64 Key;
+
+ explicit TTxReadRow(i64 key)
+ : Key(key)
+ { }
+
+ bool Execute(TTransactionContext& txc, const TActorContext&) override {
+ TVector<TRawTypeValue> rawKey;
+ rawKey.emplace_back(&Key, sizeof(Key), NScheme::TInt64::TypeId);
+
+ TVector<NTable::TTag> tags;
+ tags.push_back(KeyColumnId);
+ tags.push_back(ValueColumnId);
+
+ NTable::TRowState row;
+ auto ready = txc.DB.Select(TableId, rawKey, tags, row);
+ if (ready == NTable::EReady::Page) {
+ return false;
+ }
+
+ return true;
+ }
+
+ void Complete(const TActorContext&ctx) override {
+ ctx.Send(ctx.SelfID, new NFake::TEvReturn);
+ }
+};
+
+void LogCounters(TIntrusivePtr<TSharedPageCacheCounters> counters) {
+ Cerr << "Counters: Active:" << counters->ActiveBytes->Val() << "/" << counters->ActiveLimitBytes->Val() << ", Passive:" << counters->PassiveBytes->Val() << ", MemLimit:" << counters->MemLimitBytes->Val() << Endl;
+}
+
+void WaitMemEvent(TMyEnvBase& env) {
+ TDispatchOptions options;
+ options.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(NSharedCache::EvMem, 1));
+ env->DispatchEvents(options);
+}
+
+Y_UNIT_TEST(Limits) {
+ TMyEnvBase env;
+ auto counters = MakeIntrusive<TSharedPageCacheCounters>(env->GetDynamicCounters());
+
+ env.FireDummyTablet(ui32(NFake::TDummy::EFlg::Comp));
+ env.SendSync(new NFake::TEvExecute{ new TTxInitSchema() });
+
+ // write 300 rows, each ~100KB
+ for (i64 key = 0; key < 300; ++key) {
+ TString value(size_t(100 * 1024), char('a' + key % 26));
+ env.SendSync(new NFake::TEvExecute{ new TTxWriteRow(key, std::move(value)) });
+ }
+
+ Cerr << "...compacting" << Endl;
+ env.SendSync(new NFake::TEvCompact(TableId));
+ Cerr << "...waiting until compacted" << Endl;
+ env.WaitFor<NFake::TEvCompacted>();
+
+ for (i64 key = 0; key < 100; ++key) {
+ env.SendSync(new NFake::TEvExecute{ new TTxReadRow(key) });
+ }
+ LogCounters(counters);
+ UNIT_ASSERT_VALUES_EQUAL(counters->LoadInFlyBytes->Val(), 0);
+ UNIT_ASSERT_DOUBLES_EQUAL(counters->ActiveBytes->Val(), 8*MB / 3 * 2, MB / 2); // 2 full layers (fresh & staging)
+ UNIT_ASSERT_VALUES_EQUAL(counters->ActiveLimitBytes->Val(), 8*MB);
+ UNIT_ASSERT_VALUES_EQUAL(counters->PassiveBytes->Val(), 7772);
+ UNIT_ASSERT_VALUES_EQUAL(counters->MemLimitBytes->Val(), 0);
+
+ env->GetMemObserver()->NotifyStat({95*MB, 110*MB, 100*MB});
+ WaitMemEvent(env);
+ LogCounters(counters);
+ UNIT_ASSERT_DOUBLES_EQUAL(counters->ActiveBytes->Val(), 8*MB / 3 * 2, MB / 2);
+ UNIT_ASSERT_VALUES_EQUAL(counters->ActiveLimitBytes->Val(), 8*MB);
+ UNIT_ASSERT_VALUES_EQUAL(counters->PassiveBytes->Val(), 7772);
+ UNIT_ASSERT_VALUES_EQUAL(counters->MemLimitBytes->Val(), 5*MB + counters->ActiveBytes->Val() + counters->PassiveBytes->Val());
+
+
+ env->GetMemObserver()->NotifyStat({101*MB, 110*MB, 100*MB});
+ WaitMemEvent(env);
+ LogCounters(counters);
+ UNIT_ASSERT_DOUBLES_EQUAL(counters->ActiveBytes->Val(), 8*MB / 3 * 2 - MB, MB / 2); // 1mb evicted
+ UNIT_ASSERT_DOUBLES_EQUAL(counters->ActiveLimitBytes->Val(), 8*MB / 3 * 2 - MB, MB / 2);
+ UNIT_ASSERT_VALUES_EQUAL(counters->PassiveBytes->Val(), 7772);
+ UNIT_ASSERT_VALUES_EQUAL(counters->MemLimitBytes->Val(), counters->ActiveLimitBytes->Val());
+
+ env->GetMemObserver()->NotifyStat({95*MB, 110*MB, 100*MB});
+ WaitMemEvent(env);
+ LogCounters(counters);
+ UNIT_ASSERT_DOUBLES_EQUAL(counters->ActiveBytes->Val(), 8*MB / 3 * 2 - MB, MB / 2);
+ UNIT_ASSERT_VALUES_EQUAL(counters->ActiveLimitBytes->Val(), 8*MB);
+ UNIT_ASSERT_VALUES_EQUAL(counters->PassiveBytes->Val(), 7772);
+ UNIT_ASSERT_VALUES_EQUAL(counters->MemLimitBytes->Val(), 5*MB + counters->ActiveBytes->Val() + counters->PassiveBytes->Val()); // +5mb
+
+ env->GetMemObserver()->NotifyStat({200*MB, 110*MB, 100*MB});
+ WaitMemEvent(env);
+ LogCounters(counters);
+ UNIT_ASSERT_VALUES_EQUAL(counters->ActiveBytes->Val(), 0);
+ UNIT_ASSERT_VALUES_EQUAL(counters->ActiveLimitBytes->Val(), 1); // zero limit
+ UNIT_ASSERT_VALUES_EQUAL(counters->PassiveBytes->Val(), 7772);
+ UNIT_ASSERT_VALUES_EQUAL(counters->MemLimitBytes->Val(), 1); // zero limit
+}
+
+} // Y_UNIT_TEST_SUITE(TSharedPageCache)
+
+} // namespace NTabletFlatExecutor
+} // namespace NKikimr
diff --git a/ydb/core/tablet_flat/ut/ut_slice_loader.cpp b/ydb/core/tablet_flat/ut/ut_slice_loader.cpp
index a2516d8947..df307fb627 100644
--- a/ydb/core/tablet_flat/ut/ut_slice_loader.cpp
+++ b/ydb/core/tablet_flat/ut/ut_slice_loader.cpp
@@ -74,7 +74,7 @@ namespace {
{
const auto array = Part->Store->PageCollectionArray(Room);
- return { ui32(array.at(page).size()), ui32(EPage::Undef) };
+ return { array.at(page).size(), ui32(EPage::Undef) };
}
NPageCollection::TBorder Bounds(ui32) const noexcept override
diff --git a/ydb/core/tablet_flat/ut/ya.make b/ydb/core/tablet_flat/ut/ya.make
index eb1528e860..aeae789e3a 100644
--- a/ydb/core/tablet_flat/ut/ya.make
+++ b/ydb/core/tablet_flat/ut/ya.make
@@ -47,6 +47,7 @@ SRCS(
ut_forward.cpp
ut_screen.cpp
ut_bloom.cpp
+ ut_shared_sausagecache.cpp
ut_slice.cpp
ut_slice_loader.cpp
ut_versions.cpp
diff --git a/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-x86_64.txt
index 56f770b9f1..ef00170d4b 100644
--- a/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-x86_64.txt
@@ -27,6 +27,7 @@ target_link_options(ydb-core-tablet_flat-ut_util PRIVATE
)
target_sources(ydb-core-tablet_flat-ut_util PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_string_ut.cpp
)
set_property(
TARGET
diff --git a/ydb/core/tablet_flat/ut_util/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/ut_util/CMakeLists.linux-aarch64.txt
index 0a4c093f79..1db598c5ea 100644
--- a/ydb/core/tablet_flat/ut_util/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/ut_util/CMakeLists.linux-aarch64.txt
@@ -30,6 +30,7 @@ target_link_options(ydb-core-tablet_flat-ut_util PRIVATE
)
target_sources(ydb-core-tablet_flat-ut_util PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_string_ut.cpp
)
set_property(
TARGET
diff --git a/ydb/core/tablet_flat/ut_util/CMakeLists.linux-x86_64.txt b/ydb/core/tablet_flat/ut_util/CMakeLists.linux-x86_64.txt
index 07e40c35d5..71b81b4ee6 100644
--- a/ydb/core/tablet_flat/ut_util/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/ut_util/CMakeLists.linux-x86_64.txt
@@ -31,6 +31,7 @@ target_link_options(ydb-core-tablet_flat-ut_util PRIVATE
)
target_sources(ydb-core-tablet_flat-ut_util PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_string_ut.cpp
)
set_property(
TARGET
diff --git a/ydb/core/tablet_flat/ut_util/CMakeLists.windows-x86_64.txt b/ydb/core/tablet_flat/ut_util/CMakeLists.windows-x86_64.txt
index 71591f2c8d..3865b70295 100644
--- a/ydb/core/tablet_flat/ut_util/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet_flat/ut_util/CMakeLists.windows-x86_64.txt
@@ -20,6 +20,7 @@ target_link_libraries(ydb-core-tablet_flat-ut_util PUBLIC
)
target_sources(ydb-core-tablet_flat-ut_util PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_string_ut.cpp
)
set_property(
TARGET
diff --git a/ydb/core/tablet_flat/ut_util/ya.make b/ydb/core/tablet_flat/ut_util/ya.make
index c06ae56fd2..36aa1a0273 100644
--- a/ydb/core/tablet_flat/ut_util/ya.make
+++ b/ydb/core/tablet_flat/ut_util/ya.make
@@ -5,6 +5,7 @@ SIZE(MEDIUM)
SRCS(
util_pool_ut.cpp
+ util_string_ut.cpp
)
END()
diff --git a/ydb/core/tablet_flat/util_string.h b/ydb/core/tablet_flat/util_string.h
new file mode 100644
index 0000000000..ceb618abf5
--- /dev/null
+++ b/ydb/core/tablet_flat/util_string.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "defs.h"
+
+namespace NKikimr::NUtil {
+
+inline void ShrinkToFit(TString& input) {
+ // capacity / size > 1.5
+ if (input.capacity() * 2 > input.size() * 3) {
+ input = input.copy();
+ }
+}
+
+}
diff --git a/ydb/core/tablet_flat/util_string_ut.cpp b/ydb/core/tablet_flat/util_string_ut.cpp
new file mode 100644
index 0000000000..c26c60e34a
--- /dev/null
+++ b/ydb/core/tablet_flat/util_string_ut.cpp
@@ -0,0 +1,32 @@
+#include <library/cpp/testing/unittest/registar.h>
+#include "util_string.h"
+
+namespace NKikimr::NUtil {
+
+Y_UNIT_TEST_SUITE(UtilString) {
+ Y_UNIT_TEST(ShrinkToFit) {
+ { // don't shrink if not much changes
+ TString s;
+ s.reserve(150);
+ s += std::string(120, 'x');
+ auto before = s.data();
+ ShrinkToFit(s);
+ UNIT_ASSERT_GE(s.capacity(), 150);
+ UNIT_ASSERT_VALUES_EQUAL((size_t)s.data(), (size_t)before);
+ }
+
+ { // shrink if much changes
+ TString s, copy;
+ s.reserve(150);
+ s += std::string(80, 'x');
+ copy = s.copy();
+ auto before = s.data();
+ ShrinkToFit(s);
+ UNIT_ASSERT_LE(s.capacity(), 100);
+ UNIT_ASSERT_VALUES_UNEQUAL((size_t)s.data(), (size_t)before);
+ UNIT_ASSERT_VALUES_EQUAL(copy, s);
+ }
+ }
+}
+
+}
diff --git a/ydb/core/test_tablet/test_shard_impl.h b/ydb/core/test_tablet/test_shard_impl.h
index d6f68b4378..4f29e51967 100644
--- a/ydb/core/test_tablet/test_shard_impl.h
+++ b/ydb/core/test_tablet/test_shard_impl.h
@@ -94,6 +94,7 @@ namespace NKikimr::NTestShard {
}
void OnLoadComplete() {
+ SignalTabletActive(SelfId());
StartActivities();
}
diff --git a/ydb/core/testlib/actors/test_runtime.h b/ydb/core/testlib/actors/test_runtime.h
index 7f1df89254..2bc4e424e0 100644
--- a/ydb/core/testlib/actors/test_runtime.h
+++ b/ydb/core/testlib/actors/test_runtime.h
@@ -2,6 +2,7 @@
#include <ydb/core/base/tablet_pipe.h>
#include <ydb/core/mon/mon.h>
+#include <ydb/core/base/memobserver.h>
#include <library/cpp/actors/testlib/test_runtime.h>
#include <library/cpp/testing/unittest/tests_data.h>
@@ -31,6 +32,7 @@ namespace NActors {
~TNodeData();
ui64 GetLoggerPoolId() const override;
THolder<NActors::TMon> Mon;
+ TIntrusivePtr<NKikimr::TMemObserver> MemObserver = new NKikimr::TMemObserver;
};
struct TNodeFactory: public INodeFactory {
@@ -79,6 +81,12 @@ namespace NActors {
return f.ExtractValue();
}
+ TIntrusivePtr<NKikimr::TMemObserver> GetMemObserver(ui32 nodeIndex = 0) {
+ TGuard<TMutex> guard(Mutex);
+ auto node = GetNodeById(GetNodeId(nodeIndex));
+ return node->MemObserver;
+ }
+
void SendToPipe(ui64 tabletId, const TActorId& sender, IEventBase* payload, ui32 nodeIndex = 0,
const NKikimr::NTabletPipe::TClientConfig& pipeConfig = NKikimr::NTabletPipe::TClientConfig(), TActorId clientId = TActorId(), ui64 cookie = 0);
void SendToPipe(TActorId clientId, const TActorId& sender, IEventBase* payload,
diff --git a/ydb/core/testlib/basics/services.cpp b/ydb/core/testlib/basics/services.cpp
index 130446df02..c5f1087c94 100644
--- a/ydb/core/testlib/basics/services.cpp
+++ b/ydb/core/testlib/basics/services.cpp
@@ -4,7 +4,7 @@
#include "runtime.h"
#include <ydb/core/base/appdata.h>
#include <ydb/core/base/hive.h>
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/base/statestorage.h>
#include <ydb/core/base/statestorage_impl.h>
#include <ydb/core/base/tablet_pipe.h>
@@ -136,7 +136,7 @@ namespace NPDisk {
runtime.AddLocalService(MakeSharedPageCacheId(0),
TActorSetupCmd(
- CreateSharedPageCache(std::move(pageCollectionCacheConfig)),
+ CreateSharedPageCache(std::move(pageCollectionCacheConfig), runtime.GetMemObserver(nodeIndex)),
TMailboxType::ReadAsFilled,
0),
nodeIndex);
diff --git a/ydb/core/testlib/cs_helper.cpp b/ydb/core/testlib/cs_helper.cpp
index 60b09c7841..0a2710ee2e 100644
--- a/ydb/core/testlib/cs_helper.cpp
+++ b/ydb/core/testlib/cs_helper.cpp
@@ -74,12 +74,12 @@ void THelperSchemaless::SendDataViaActorSystem(TString testTable, std::shared_pt
request.set_data(data);
request.set_table(testTable);
- size_t responses = 0;
+ std::atomic<size_t> responses = 0;
using TEvBulkUpsertRequest = NGRpcService::TGrpcRequestOperationCall<Ydb::Table::BulkUpsertRequest,
Ydb::Table::BulkUpsertResponse>;
auto future = NRpcService::DoLocalRpc<TEvBulkUpsertRequest>(std::move(request), "", "", runtime->GetActorSystem(0));
future.Subscribe([&](const NThreading::TFuture<Ydb::Table::BulkUpsertResponse> f) mutable {
- ++responses;
+ responses.fetch_add(1);
auto op = f.GetValueSync().operation();
if (op.status() != Ydb::StatusIds::SUCCESS) {
for (auto& issue : op.issues()) {
@@ -92,7 +92,7 @@ void THelperSchemaless::SendDataViaActorSystem(TString testTable, std::shared_pt
TDispatchOptions options;
options.CustomFinalCondition = [&]() {
- return responses >= 1;
+ return responses.load() >= 1;
};
runtime->DispatchEvents(options);
diff --git a/ydb/core/testlib/fake_coordinator.h b/ydb/core/testlib/fake_coordinator.h
index 75d0816650..5ab5afae73 100644
--- a/ydb/core/testlib/fake_coordinator.h
+++ b/ydb/core/testlib/fake_coordinator.h
@@ -44,8 +44,13 @@ namespace NKikimr {
return config;
}
+ void DefaultSignalTabletActive(const TActorContext &) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &ctx) final {
Become(&TFakeCoordinator::StateWork);
+ SignalTabletActive(ctx);
SendQueued(ctx);
}
diff --git a/ydb/core/testlib/fake_scheme_shard.h b/ydb/core/testlib/fake_scheme_shard.h
index f6dc29dbe4..706db78d6e 100644
--- a/ydb/core/testlib/fake_scheme_shard.h
+++ b/ydb/core/testlib/fake_scheme_shard.h
@@ -41,14 +41,13 @@ public:
{
}
+ void DefaultSignalTabletActive(const TActorContext &) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &ctx) final {
Become(&TFakeSchemeShard::StateWork);
-
- while (!InitialEventsQueue.empty()) {
- TAutoPtr<IEventHandle> &ev = InitialEventsQueue.front();
- ctx.ExecutorThread.Send(ev.Release());
- InitialEventsQueue.pop_front();
- }
+ SignalTabletActive(ctx);
}
void OnDetach(const TActorContext &ctx) override {
@@ -60,10 +59,6 @@ public:
Die(ctx);
}
- void Enqueue(STFUNC_SIG) override {
- InitialEventsQueue.push_back(ev);
- }
-
void StateInit(STFUNC_SIG) {
StateInitImpl(ev, SelfId());
}
@@ -103,7 +98,6 @@ public:
private:
TState::TPtr State;
- TDeque<TAutoPtr<IEventHandle>> InitialEventsQueue;
};
inline void BootFakeSchemeShard(TTestActorRuntime& runtime, ui64 tabletId, TFakeSchemeShardState::TPtr state) {
diff --git a/ydb/core/testlib/tablet_helpers.cpp b/ydb/core/testlib/tablet_helpers.cpp
index e01e5947b4..89872a7e0e 100644
--- a/ydb/core/testlib/tablet_helpers.cpp
+++ b/ydb/core/testlib/tablet_helpers.cpp
@@ -172,6 +172,9 @@ namespace NKikimr {
if (ENABLE_REBOOT_DISPATCH_LOG) {
Cerr << "Leader for TabletID " << info->TabletID << " is " << info->CurrentLeaderTablet << " sender: " << event->Sender << " recipient: " << event->Recipient << Endl;
}
+ if (info->CurrentLeader) {
+ TabletSys[info->TabletID] = info->CurrentLeader;
+ }
if (info->CurrentLeaderTablet) {
TabletLeaders[info->TabletID] = info->CurrentLeaderTablet;
} else {
@@ -199,6 +202,10 @@ namespace NKikimr {
}
}
+ const TMap<ui64, TActorId>& GetTabletSys() const {
+ return TabletSys;
+ }
+
const TMap<ui64, TActorId>& GetTabletLeaders() const {
return TabletLeaders;
}
@@ -255,6 +262,7 @@ namespace NKikimr {
}
protected:
+ TMap<ui64, TActorId> TabletSys;
TMap<ui64, TActorId> TabletLeaders;
TMap<TActorId, ui64> TabletRelatedActors;
TSet<ui64> DeletedTablets;
@@ -325,8 +333,10 @@ namespace NKikimr {
if (ENABLE_REBOOT_DISPATCH_LOG)
Cerr << "!Reboot " << TabletId << " (actor " << targetActorId << ") on event " << eventType << " !\n";
- // Wait for the tablet to boot or to become deleted
+ // We synchronously kill user part of the tablet to stop user-level logic at current event
+ // However we don't kill the system part because tests historically expect pending commits to finish
runtime.Send(new IEventHandle(targetActorId, TActorId(), new TEvents::TEvPoisonPill()));
+ // Wait for the tablet to boot or to become deleted
TDispatchOptions rebootOptions;
rebootOptions.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(TEvTablet::EvRestored, 2));
rebootOptions.CustomFinalCondition = [this]() -> bool {
@@ -1100,14 +1110,13 @@ namespace NKikimr {
{
}
+ void DefaultSignalTabletActive(const TActorContext &) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &ctx) final {
Become(&TFakeHive::StateWork);
-
- while (!InitialEventsQueue.empty()) {
- TAutoPtr<IEventHandle> &ev = InitialEventsQueue.front();
- ctx.ExecutorThread.Send(ev.Release());
- InitialEventsQueue.pop_front();
- }
+ SignalTabletActive(ctx);
LOG_INFO_S(ctx, NKikimrServices::HIVE, "[" << TabletID() << "] started, primary subdomain " << PrimarySubDomainKey);
}
@@ -1121,10 +1130,6 @@ namespace NKikimr {
Die(ctx);
}
- void Enqueue(STFUNC_SIG) override {
- InitialEventsQueue.push_back(ev);
- }
-
void StateInit(STFUNC_SIG) {
StateInitImpl(ev, SelfId());
}
@@ -1464,7 +1469,6 @@ namespace NKikimr {
private:
TState::TPtr State;
TGetTabletCreationFunc GetTabletCreationFunc;
- TDeque<TAutoPtr<IEventHandle>> InitialEventsQueue;
TSubDomainKey PrimarySubDomainKey;
};
diff --git a/ydb/core/testlib/tenant_runtime.cpp b/ydb/core/testlib/tenant_runtime.cpp
index cbea26af3e..eb5fcc6efb 100644
--- a/ydb/core/testlib/tenant_runtime.cpp
+++ b/ydb/core/testlib/tenant_runtime.cpp
@@ -173,9 +173,15 @@ class TFakeSchemeShard : public TActor<TFakeSchemeShard>, public TTabletExecuted
}
}
+ void DefaultSignalTabletActive(const TActorContext &) override
+ {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &) override
{
Become(&TThis::StateWork);
+ SignalTabletActive(SelfId());
}
void OnDetach(const TActorContext &ctx) override
@@ -229,9 +235,15 @@ public:
};
class TFakeBSController : public TActor<TFakeBSController>, public TTabletExecutedFlat {
+ void DefaultSignalTabletActive(const TActorContext &) override
+ {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &) override
{
Become(&TThis::StateWork);
+ SignalTabletActive(SelfId());
}
void OnDetach(const TActorContext &ctx) override
@@ -263,9 +275,15 @@ public:
};
class TFakeTenantSlotBroker : public TActor<TFakeTenantSlotBroker>, public TTabletExecutedFlat {
+ void DefaultSignalTabletActive(const TActorContext &) override
+ {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &) override
{
Become(&TThis::StateWork);
+ SignalTabletActive(SelfId());
}
void OnDetach(const TActorContext &ctx) override
@@ -616,9 +634,15 @@ class TFakeHive : public TActor<TFakeHive>, public TTabletExecutedFlat {
ctx.Send(Sender, new TEvTest::TEvHiveStateHit);
}
+ void DefaultSignalTabletActive(const TActorContext &) override
+ {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext &) override
{
Become(&TThis::StateWork);
+ SignalTabletActive(SelfId());
}
void OnDetach(const TActorContext &ctx) override
diff --git a/ydb/core/testlib/test_client.cpp b/ydb/core/testlib/test_client.cpp
index 0e7c570ad8..304813dfd7 100644
--- a/ydb/core/testlib/test_client.cpp
+++ b/ydb/core/testlib/test_client.cpp
@@ -236,6 +236,7 @@ namespace Tests {
appData.DynamicNameserviceConfig = new TDynamicNameserviceConfig;
auto dnConfig = appData.DynamicNameserviceConfig;
dnConfig->MaxStaticNodeId = 1023;
+ dnConfig->MinDynamicNodeId = 1024;
dnConfig->MaxDynamicNodeId = 1024 + 100;
});
@@ -797,6 +798,7 @@ namespace Tests {
IActor* kqpProxyService = NKqp::CreateKqpProxyService(Settings->AppConfig.GetLogConfig(),
Settings->AppConfig.GetTableServiceConfig(),
+ Settings->AppConfig.GetAuthConfig().GetTokenAccessorConfig(),
TVector<NKikimrKqp::TKqpSetting>(Settings->KqpSettings),
nullptr, std::move(kqpProxySharedResources));
TActorId kqpProxyServiceId = Runtime->Register(kqpProxyService, nodeIdx);
diff --git a/ydb/core/tx/columnshard/blob_cache.cpp b/ydb/core/tx/columnshard/blob_cache.cpp
index 4d1c8ca332..a0edefcbf9 100644
--- a/ydb/core/tx/columnshard/blob_cache.cpp
+++ b/ydb/core/tx/columnshard/blob_cache.cpp
@@ -520,7 +520,7 @@ private:
if (res.Status == NKikimrProto::EReplyStatus::NODATA) {
fallbackRanges[blobRanges[i].BlobId].emplace_back(std::move(blobRanges[i]));
} else {
- ProcessSingleRangeResult(blobRanges[i], readCookie, res.Status, res.Buffer, ctx);
+ ProcessSingleRangeResult(blobRanges[i], readCookie, res.Status, res.Buffer.ConvertToString(), ctx);
}
}
diff --git a/ydb/core/tx/columnshard/blob_manager.cpp b/ydb/core/tx/columnshard/blob_manager.cpp
index 5690a6d049..b1f9d682e9 100644
--- a/ydb/core/tx/columnshard/blob_manager.cpp
+++ b/ydb/core/tx/columnshard/blob_manager.cpp
@@ -189,7 +189,7 @@ bool TBlobManager::LoadState(IBlobManagerDb& db) {
TGenStep genStep{blobId.Generation(), blobId.Step()};
if (genStep <= LastCollectedGenStep) {
LOG_S_WARN("BlobManager at tablet " << TabletInfo->TabletID
- << " Load not keeped blob " << unifiedBlobId.ToStringNew() << " collected by GenStep: "
+ << " Load not keeped blob " << unifiedBlobId << " collected by GenStep: "
<< std::get<0>(LastCollectedGenStep) << ":" << std::get<1>(LastCollectedGenStep));
BlobsManagerCounters.OnBrokenKeep(unifiedBlobId.BlobSize());
KeepsToErase.emplace_back(unifiedBlobId);
@@ -553,6 +553,7 @@ bool TBlobManager::ExportOneToOne(TEvictedBlob&& evict, const NKikimrTxColumnSha
return false;
}
+ Y_VERIFY(!meta.GetTierName().empty());
TString strMeta;
Y_PROTOBUF_SUPPRESS_NODISCARD meta.SerializeToString(&strMeta);
@@ -570,13 +571,15 @@ bool TBlobManager::DropOneToOne(const TUnifiedBlobId& blobId, IBlobManagerDb& db
TEvictMetadata meta;
bool extracted = ExtractEvicted(evict, meta);
if (!extracted) {
- return false; // It's not at exported blob.
+ LOG_S_DEBUG("Drop not exported blob '" << blobId << "' at tablet " << TabletInfo->TabletID);
+ return false;
}
#if 0 // TODO: SELF_CACHED logic
if (evict.State == EEvictState::SELF_CACHED) {
evict.State = EEvictState::EXTERN; // SELF_CACHED -> EXTERN for dropped
}
#endif
+ Y_VERIFY(!meta.GetTierName().empty());
db.DropEvictBlob(evict);
DroppedEvictedBlobs.emplace(std::move(evict), std::move(meta));
return true;
@@ -597,6 +600,7 @@ bool TBlobManager::UpdateOneToOne(TEvictedBlob&& evict, IBlobManagerDb& db, bool
extracted = ExtractEvicted(old, meta, true);
}
Y_VERIFY(extracted);
+ Y_VERIFY(!meta.GetTierName().empty());
switch (evict.State) {
case EEvictState::EVICTING:
@@ -660,6 +664,7 @@ bool TBlobManager::LoadOneToOneExport(IBlobManagerDb& db, THashSet<TUnifiedBlobI
NKikimrTxColumnShard::TEvictMetadata meta;
Y_VERIFY(meta.ParseFromString(metadata));
+ Y_VERIFY(!meta.GetTierName().empty());
DroppedEvictedBlobs.emplace(evict, meta);
}
@@ -685,12 +690,17 @@ TEvictedBlob TBlobManager::GetDropped(const TUnifiedBlobId& blobId, TEvictMetada
return {};
}
-void TBlobManager::GetCleanupBlobs(THashMap<TString, THashSet<TEvictedBlob>>& tierBlobs) const {
+void TBlobManager::GetCleanupBlobs(THashMap<TString, THashSet<TEvictedBlob>>& tierBlobs,
+ const THashSet<TUnifiedBlobId>& allowList) const {
TStringBuilder strBlobs;
for (auto& [evict, meta] : DroppedEvictedBlobs) {
+ if (!allowList.empty() && !allowList.contains(evict.Blob)) {
+ continue;
+ }
if (evict.State != EEvictState::EVICTING) {
- strBlobs << "'" << evict.Blob.ToStringNew() << "' ";
+ strBlobs << "'" << evict.Blob << "' ";
auto& tierName = meta.GetTierName();
+ Y_VERIFY(!tierName.empty());
tierBlobs[tierName].emplace(evict);
}
}
@@ -728,10 +738,10 @@ bool TBlobManager::BlobInUse(const NOlap::TUnifiedBlobId& blobId) const {
return BlobsUseCount.contains(blobId);
}
-void TBlobManager::SetBlobInUse(const TUnifiedBlobId& blobId, bool inUse) {
+bool TBlobManager::SetBlobInUse(const TUnifiedBlobId& blobId, bool inUse) {
if (inUse) {
BlobsUseCount[blobId]++;
- return;
+ return true;
}
auto useIt = BlobsUseCount.find(blobId);
@@ -740,7 +750,7 @@ void TBlobManager::SetBlobInUse(const TUnifiedBlobId& blobId, bool inUse) {
if (useIt->second > 0) {
// Blob is still in use
- return;
+ return false;
}
LOG_S_DEBUG("BlobManager at tablet " << TabletInfo->TabletID << " Blob " << blobId << " is no longer in use");
@@ -767,6 +777,7 @@ void TBlobManager::SetBlobInUse(const TUnifiedBlobId& blobId, bool inUse) {
}
}
}
+ return true;
}
bool TBlobManager::ExtractEvicted(TEvictedBlob& evict, TEvictMetadata& meta, bool fromDropped /*= false*/) {
diff --git a/ydb/core/tx/columnshard/blob_manager.h b/ydb/core/tx/columnshard/blob_manager.h
index f0fb3b6bff..cdcd6dac5c 100644
--- a/ydb/core/tx/columnshard/blob_manager.h
+++ b/ydb/core/tx/columnshard/blob_manager.h
@@ -98,7 +98,8 @@ public:
virtual bool LoadOneToOneExport(IBlobManagerDb& db, THashSet<TUnifiedBlobId>& droppedEvicting) = 0;
virtual TEvictedBlob GetEvicted(const TUnifiedBlobId& blob, TEvictMetadata& meta) = 0;
virtual TEvictedBlob GetDropped(const TUnifiedBlobId& blobId, TEvictMetadata& meta) = 0;
- virtual void GetCleanupBlobs(THashMap<TString, THashSet<TEvictedBlob>>& tierBlobs) const = 0;
+ virtual void GetCleanupBlobs(THashMap<TString, THashSet<TEvictedBlob>>& tierBlobs,
+ const THashSet<TUnifiedBlobId>& allowList = {}) const = 0;
virtual void GetReexportBlobs(THashMap<TString, THashSet<TEvictedBlob>>& tierBlobs) const = 0;
virtual bool HasExternBlobs() const = 0;
};
@@ -249,7 +250,8 @@ public:
bool LoadOneToOneExport(IBlobManagerDb& db, THashSet<TUnifiedBlobId>& droppedEvicting) override;
TEvictedBlob GetEvicted(const TUnifiedBlobId& blobId, TEvictMetadata& meta) override;
TEvictedBlob GetDropped(const TUnifiedBlobId& blobId, TEvictMetadata& meta) override;
- void GetCleanupBlobs(THashMap<TString, THashSet<TEvictedBlob>>& tierBlobs) const override;
+ void GetCleanupBlobs(THashMap<TString, THashSet<TEvictedBlob>>& tierBlobs,
+ const THashSet<TUnifiedBlobId>& allowList = {}) const override;
void GetReexportBlobs(THashMap<TString, THashSet<TEvictedBlob>>& tierBlobs) const override;
bool HasExternBlobs() const override {
@@ -257,7 +259,7 @@ public:
}
// Implementation of IBlobInUseTracker
- void SetBlobInUse(const TUnifiedBlobId& blobId, bool inUse) override;
+ bool SetBlobInUse(const TUnifiedBlobId& blobId, bool inUse) override;
bool BlobInUse(const NOlap::TUnifiedBlobId& blobId) const override;
private:
diff --git a/ydb/core/tx/columnshard/columnshard.cpp b/ydb/core/tx/columnshard/columnshard.cpp
index c0aff258cb..849f291e94 100644
--- a/ydb/core/tx/columnshard/columnshard.cpp
+++ b/ydb/core/tx/columnshard/columnshard.cpp
@@ -10,10 +10,8 @@ IActor* CreateColumnShard(const TActorId& tablet, TTabletStorageInfo* info) {
namespace NKikimr::NColumnShard {
-void TColumnShard::BecomeBroken(const TActorContext& ctx)
+void TColumnShard::CleanupActors(const TActorContext& ctx)
{
- Become(&TThis::StateBroken);
- ctx.Send(Tablet(), new TEvents::TEvPoisonPill);
ctx.Send(IndexingActor, new TEvents::TEvPoisonPill);
ctx.Send(CompactionActor, new TEvents::TEvPoisonPill);
ctx.Send(EvictionActor, new TEvents::TEvPoisonPill);
@@ -22,6 +20,13 @@ void TColumnShard::BecomeBroken(const TActorContext& ctx)
}
}
+void TColumnShard::BecomeBroken(const TActorContext& ctx)
+{
+ Become(&TThis::StateBroken);
+ ctx.Send(Tablet(), new TEvents::TEvPoisonPill);
+ CleanupActors(ctx);
+}
+
void TColumnShard::SwitchToWork(const TActorContext& ctx) {
Become(&TThis::StateWork);
LOG_S_INFO("Switched to work at " << TabletID() << " actor " << ctx.SelfID);
@@ -49,12 +54,6 @@ void TColumnShard::OnActivateExecutor(const TActorContext& ctx) {
Execute(CreateTxInitSchema(), ctx);
}
-void TColumnShard::Handle(TEvents::TEvPoisonPill::TPtr& ev, const TActorContext& ctx) {
- LOG_S_DEBUG("Handle TEvents::TEvPoisonPill");
- Y_UNUSED(ev);
- BecomeBroken(ctx);
-}
-
void TColumnShard::Handle(TEvTabletPipe::TEvClientConnected::TPtr& ev, const TActorContext&) {
auto tabletId = ev->Get()->TabletId;
auto clientId = ev->Get()->ClientId;
@@ -112,7 +111,7 @@ void TColumnShard::Handle(TEvPrivate::TEvReadFinished::TPtr& ev, const TActorCon
Y_UNUSED(ctx);
ui64 readCookie = ev->Get()->RequestCookie;
LOG_S_DEBUG("Finished read cookie: " << readCookie << " at tablet " << TabletID());
- InFlightReadsTracker.RemoveInFlightRequest(ev->Get()->RequestCookie, *BlobManager);
+ auto blobs = InFlightReadsTracker.RemoveInFlightRequest(ev->Get()->RequestCookie, *BlobManager);
ui64 txId = ev->Get()->TxId;
if (ScanTxInFlight.contains(txId)) {
@@ -122,8 +121,10 @@ void TColumnShard::Handle(TEvPrivate::TEvReadFinished::TPtr& ev, const TActorCon
SetCounter(COUNTER_SCAN_IN_FLY, ScanTxInFlight.size());
}
- // Cleanup just freed dropped exported blobs
- CleanForgottenBlobs(ctx);
+ if (blobs.size()) {
+ // Cleanup just freed blobs (dropped exported ones)
+ CleanForgottenBlobs(ctx, blobs);
+ }
}
void TColumnShard::Handle(TEvPrivate::TEvPeriodicWakeup::TPtr& ev, const TActorContext& ctx) {
diff --git a/ydb/core/tx/columnshard/columnshard__export.cpp b/ydb/core/tx/columnshard/columnshard__export.cpp
index 86469eed53..3649bf1a63 100644
--- a/ydb/core/tx/columnshard/columnshard__export.cpp
+++ b/ydb/core/tx/columnshard/columnshard__export.cpp
@@ -68,12 +68,12 @@ bool TTxExportFinish::Execute(TTransactionContext& txc, const TActorContext&) {
// Delayed erase of evicted blob. Blob could be already deleted.
if (present && !dropped) {
- LOG_S_INFO(TxPrefix() << "Blob exported '" << blobId.ToStringNew() << "'" << TxSuffix());
+ LOG_S_INFO(TxPrefix() << "Blob exported '" << blobId << "'" << TxSuffix());
Self->BlobManager->DeleteBlob(blobId, blobManagerDb);
Self->IncCounter(COUNTER_BLOBS_ERASED);
Self->IncCounter(COUNTER_BYTES_ERASED, blobId.BlobSize());
} else if (present && dropped) {
- LOG_S_INFO(TxPrefix() << "Stale blob exported '" << blobId.ToStringNew() << "'" << TxSuffix());
+ LOG_S_INFO(TxPrefix() << "Stale blob exported '" << blobId << "'" << TxSuffix());
TEvictMetadata meta;
evict = Self->BlobManager->GetDropped(blobId, meta);
@@ -81,7 +81,7 @@ bool TTxExportFinish::Execute(TTransactionContext& txc, const TActorContext&) {
BlobsToForget[meta.GetTierName()].emplace(std::move(evict));
} else {
- LOG_S_ERROR(TxPrefix() << "Unknown blob exported '" << blobId.ToStringNew() << "'" << TxSuffix());
+ LOG_S_ERROR(TxPrefix() << "Unknown blob exported '" << blobId << "'" << TxSuffix());
}
}
}
diff --git a/ydb/core/tx/columnshard/columnshard__read_blob_ranges.cpp b/ydb/core/tx/columnshard/columnshard__read_blob_ranges.cpp
index 9eef2df27b..08f291b55b 100644
--- a/ydb/core/tx/columnshard/columnshard__read_blob_ranges.cpp
+++ b/ydb/core/tx/columnshard/columnshard__read_blob_ranges.cpp
@@ -177,7 +177,7 @@ void TColumnShard::Handle(TEvColumnShard::TEvReadBlobRanges::TPtr& ev, const TAc
}
if (!evicted.Blob.IsValid() || !evicted.ExternBlob.IsValid()) {
- LOG_S_NOTICE("No data for blobId " << evictedBlobId->ToStringNew() << " at tablet " << TabletID());
+ LOG_S_NOTICE("No data for blobId " << *evictedBlobId << " at tablet " << TabletID());
auto result = MakeErrorResponse(msg, TabletID(), NKikimrProto::EReplyStatus::NODATA);
ctx.Send(ev->Sender, result.release(), 0, ev->Cookie);
return;
diff --git a/ydb/core/tx/columnshard/columnshard__write_index.cpp b/ydb/core/tx/columnshard/columnshard__write_index.cpp
index 075489df12..8e21967bc1 100644
--- a/ydb/core/tx/columnshard/columnshard__write_index.cpp
+++ b/ydb/core/tx/columnshard/columnshard__write_index.cpp
@@ -154,7 +154,7 @@ bool TTxWriteIndex::Execute(TTransactionContext& txc, const TActorContext& ctx)
blobsToExport.emplace(blobId, evictionFeatures);
} else {
// TODO: support S3 -> S3 eviction
- LOG_S_ERROR(TxPrefix() << "Prevent evict evicted blob '" << blobId.ToStringNew()
+ LOG_S_ERROR(TxPrefix() << "Prevent evict evicted blob '" << blobId
<< "'" << TxSuffix());
protectedBlobs.insert(blobId);
}
@@ -172,8 +172,7 @@ bool TTxWriteIndex::Execute(TTransactionContext& txc, const TActorContext& ctx)
} else if (!protectedBlobs.contains(blobId)) {
// We could drop the blob immediately
if (blobsToDrop.emplace(blobId).second) {
- LOG_S_TRACE(TxPrefix() << "Delete evicted blob '" << blobId.ToStringNew()
- << "'" << TxSuffix());
+ LOG_S_TRACE(TxPrefix() << "Delete evicted blob '" << blobId << "'" << TxSuffix());
}
}
@@ -184,7 +183,7 @@ bool TTxWriteIndex::Execute(TTransactionContext& txc, const TActorContext& ctx)
for (const auto& rec : portionInfo.Records) {
const auto& blobId = rec.BlobRange.BlobId;
if (blobsToDrop.emplace(blobId).second) {
- LOG_S_TRACE(TxPrefix() << "Delete blob '" << blobId.ToStringNew() << "'" << TxSuffix());
+ LOG_S_TRACE(TxPrefix() << "Delete blob '" << blobId << "'" << TxSuffix());
}
}
Self->IncCounter(COUNTER_RAW_BYTES_ERASED, portionInfo.RawBytesSum());
@@ -195,11 +194,12 @@ bool TTxWriteIndex::Execute(TTransactionContext& txc, const TActorContext& ctx)
TEvictMetadata meta;
auto evict = Self->BlobManager->GetDropped(blobId, meta);
Y_VERIFY(evict.State != EEvictState::UNKNOWN);
+ Y_VERIFY(!meta.GetTierName().empty());
BlobsToForget[meta.GetTierName()].emplace(std::move(evict));
if (NOlap::IsDeleted(evict.State)) {
- LOG_S_DEBUG(TxPrefix() << "Skip delete blob '" << blobId.ToStringNew() << "'" << TxSuffix());
+ LOG_S_DEBUG(TxPrefix() << "Skip delete blob '" << blobId << "'" << TxSuffix());
continue;
}
}
diff --git a/ydb/core/tx/columnshard/columnshard_impl.cpp b/ydb/core/tx/columnshard/columnshard_impl.cpp
index aeec5ffbd2..239cb41dda 100644
--- a/ydb/core/tx/columnshard/columnshard_impl.cpp
+++ b/ydb/core/tx/columnshard/columnshard_impl.cpp
@@ -143,11 +143,13 @@ TColumnShard::TColumnShard(TTabletStorageInfo* info, const TActorId& tablet)
}
void TColumnShard::OnDetach(const TActorContext& ctx) {
+ CleanupActors(ctx);
Die(ctx);
}
void TColumnShard::OnTabletDead(TEvTablet::TEvTabletDead::TPtr& ev, const TActorContext& ctx) {
Y_UNUSED(ev);
+ CleanupActors(ctx);
Die(ctx);
}
@@ -651,7 +653,7 @@ void TColumnShard::EnqueueBackgroundActivities(bool periodic, TBackgroundActivit
if (activity.HasCleanup()) {
if (auto event = SetupCleanup()) {
ctx.Send(SelfId(), event.release());
- } else {
+ } else if (periodic) {
// Small cleanup (no index changes)
CleanForgottenBlobs(ctx);
}
@@ -783,7 +785,15 @@ void TColumnShard::SetupCompaction() {
break;
}
- BackgroundController.StartCompaction(planInfo);
+ THashSet<ui64> affectedPortions;
+ for (const auto& portionInfo : indexChanges->SwitchedPortions) {
+ affectedPortions.insert(portionInfo.Portion());
+ }
+ if (!BackgroundController.StartCompaction(planInfo, affectedPortions)) {
+ LOG_S_DEBUG("Compaction not started: ignore portions with other activities at tablet " << TabletID());
+ break;
+ }
+
auto actualIndexInfo = TablesManager.GetPrimaryIndex()->GetVersionedIndex();
auto ev = std::make_unique<TEvPrivate::TEvWriteIndex>(std::move(actualIndexInfo), indexChanges,
Settings.CacheDataAfterCompaction);
@@ -830,8 +840,8 @@ std::unique_ptr<TEvPrivate::TEvEviction> TColumnShard::SetupTtl(const THashMap<u
}
auto actualIndexInfo = TablesManager.GetPrimaryIndex()->GetVersionedIndex();
- std::shared_ptr<NOlap::TColumnEngineChanges> indexChanges;
- indexChanges = TablesManager.MutablePrimaryIndex().StartTtl(eviction, actualIndexInfo.GetLastSchema()->GetIndexInfo().ArrowSchema());
+ std::shared_ptr<NOlap::TColumnEngineChanges> indexChanges =
+ TablesManager.MutablePrimaryIndex().StartTtl(eviction, actualIndexInfo.GetLastSchema()->GetIndexInfo().ArrowSchema());
if (!indexChanges) {
LOG_S_INFO("Cannot prepare TTL at tablet " << TabletID());
@@ -844,7 +854,15 @@ std::unique_ptr<TEvPrivate::TEvEviction> TColumnShard::SetupTtl(const THashMap<u
bool needWrites = !indexChanges->PortionsToEvict.empty();
LOG_S_INFO("TTL" << (needWrites ? " with writes" : "" ) << " prepared at tablet " << TabletID());
- BackgroundController.StartTtl();
+ THashSet<ui64> affectedPortions;
+ for (const auto& portionInfo : indexChanges->PortionsToDrop) {
+ affectedPortions.insert(portionInfo.Portion());
+ }
+ for (const auto& [portionInfo, _] : indexChanges->PortionsToEvict) {
+ affectedPortions.insert(portionInfo.Portion());
+ }
+
+ BackgroundController.StartTtl(std::move(affectedPortions));
auto ev = std::make_unique<TEvPrivate::TEvWriteIndex>(std::move(actualIndexInfo), indexChanges, false);
ev->SetTiering(eviction);
return std::make_unique<TEvPrivate::TEvEviction>(std::move(ev), *BlobManager, needWrites);
@@ -938,10 +956,12 @@ void TColumnShard::MapExternBlobs(const TActorContext& /*ctx*/, NOlap::TReadMeta
}
}
-void TColumnShard::CleanForgottenBlobs(const TActorContext& ctx) {
+void TColumnShard::CleanForgottenBlobs(const TActorContext& ctx, const THashSet<TUnifiedBlobId>& allowList) {
THashMap<TString, THashSet<NOlap::TEvictedBlob>> tierBlobsToForget;
- BlobManager->GetCleanupBlobs(tierBlobsToForget);
- ForgetBlobs(ctx, tierBlobsToForget);
+ BlobManager->GetCleanupBlobs(tierBlobsToForget, allowList);
+ if (tierBlobsToForget.size()) {
+ ForgetBlobs(ctx, tierBlobsToForget);
+ }
}
void TColumnShard::Reexport(const TActorContext& ctx) {
@@ -967,11 +987,15 @@ void TColumnShard::ExportBlobs(const TActorContext& ctx, std::unique_ptr<TEvPriv
const auto& tierName = event->TierName;
if (auto s3 = GetS3ActorForTier(tierName)) {
TStringBuilder strBlobs;
+ ui64 sumBytes = 0;
for (auto& [blobId, _] : event->Blobs) {
- strBlobs << "'" << blobId.ToStringNew() << "' ";
+ strBlobs << "'" << blobId << "' ";
+ sumBytes += blobId.BlobSize();
}
-
event->DstActor = s3;
+ IncCounter(COUNTER_EXPORTING_BLOBS, event->Blobs.size());
+ IncCounter(COUNTER_EXPORTING_BYTES, sumBytes);
+
LOG_S_NOTICE("Export blobs " << strBlobs << "(tier '" << tierName << "') at tablet " << TabletID());
ctx.Register(CreateExportActor(TabletID(), SelfId(), event.release()));
} else {
@@ -984,6 +1008,14 @@ void TColumnShard::ForgetTierBlobs(const TActorContext& ctx, const TString& tier
if (auto s3 = GetS3ActorForTier(tierName)) {
auto forget = std::make_unique<TEvPrivate::TEvForget>();
forget->Evicted = std::move(blobs);
+
+ ui64 sumBytes = 0;
+ for (auto& blob : forget->Evicted) {
+ sumBytes += blob.Blob.BlobSize();
+ }
+ IncCounter(COUNTER_FORGETTING_BLOBS, forget->Evicted.size());
+ IncCounter(COUNTER_FORGETTING_BYTES, sumBytes);
+
ctx.Send(s3, forget.release());
}
}
@@ -998,27 +1030,32 @@ void TColumnShard::ForgetBlobs(const TActorContext& ctx, const THashMap<TString,
for (const auto& ev : evictSet) {
auto& blobId = ev.Blob;
if (BlobManager->BlobInUse(blobId)) {
- LOG_S_DEBUG("Blob '" << blobId.ToStringNew() << "' is in use at tablet " << TabletID());
- strBlobsDelayed << "'" << blobId.ToStringNew() << "' ";
+ LOG_S_DEBUG("Blob '" << blobId << "' is in use at tablet " << TabletID());
+ strBlobsDelayed << "'" << blobId << "' ";
continue;
}
TEvictMetadata meta;
auto evict = BlobManager->GetDropped(blobId, meta);
+ if (!evict.Blob.IsValid()) {
+ LOG_S_INFO("Forget forgotten blob '" << blobId << "' at tablet " << TabletID());
+ continue;
+ }
if (tierName != meta.GetTierName()) {
- LOG_S_ERROR("Forget with unexpected tier name '" << meta.GetTierName() << "' at tablet " << TabletID());
+ LOG_S_ERROR("Forget blob '" << blobId << "' with unexpected tier name '"
+ << meta.GetTierName() << "' at tablet " << TabletID());
continue;
}
if (evict.State == EEvictState::UNKNOWN) {
- LOG_S_ERROR("Forget unknown blob '" << blobId.ToStringNew() << "' at tablet " << TabletID());
+ LOG_S_ERROR("Forget unknown blob '" << blobId << "' at tablet " << TabletID());
} else if (NOlap::CouldBeExported(evict.State)) {
Y_VERIFY(evict.Blob == blobId);
- strBlobs << "'" << blobId.ToStringNew() << "' ";
+ strBlobs << "'" << blobId << "' ";
tierBlobs.emplace_back(std::move(evict));
} else {
Y_VERIFY(evict.Blob == blobId);
- strBlobsDelayed << "'" << blobId.ToStringNew() << "' ";
+ strBlobsDelayed << "'" << blobId << "' ";
}
}
@@ -1043,6 +1080,15 @@ bool TColumnShard::GetExportedBlob(const TActorContext& ctx, TActorId dst, ui64
get->DstCookie = cookie;
get->Evicted = std::move(evicted);
get->BlobRanges = std::move(ranges);
+
+ ui64 sumBytes = 0;
+ for (auto& blobRange : get->BlobRanges) {
+ sumBytes += blobRange.Size;
+ }
+ IncCounter(COUNTER_READING_EXPORTED_BLOBS);
+ IncCounter(COUNTER_READING_EXPORTED_RANGES, get->BlobRanges.size());
+ IncCounter(COUNTER_READING_EXPORTED_BYTES, sumBytes);
+
ctx.Send(s3, get.release());
return true;
}
@@ -1051,9 +1097,7 @@ bool TColumnShard::GetExportedBlob(const TActorContext& ctx, TActorId dst, ui64
void TColumnShard::Die(const TActorContext& ctx) {
// TODO
- if (!!Tiers) {
- Tiers->Stop();
- }
+ CleanupActors(ctx);
NTabletPipe::CloseAndForgetClient(SelfId(), StatsReportPipe);
UnregisterMediatorTimeCast();
return IActor::Die(ctx);
diff --git a/ydb/core/tx/columnshard/columnshard_impl.h b/ydb/core/tx/columnshard/columnshard_impl.h
index 3826507fd9..e5b63ba038 100644
--- a/ydb/core/tx/columnshard/columnshard_impl.h
+++ b/ydb/core/tx/columnshard/columnshard_impl.h
@@ -136,7 +136,6 @@ class TColumnShard
class TTxProposeCancel;
// proto
- void Handle(TEvents::TEvPoisonPill::TPtr& ev, const TActorContext& ctx);
void Handle(TEvTabletPipe::TEvClientConnected::TPtr& ev, const TActorContext& ctx);
void Handle(TEvTabletPipe::TEvClientDestroyed::TPtr& ev, const TActorContext& ctx);
void Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev, const TActorContext& ctx);
@@ -183,6 +182,7 @@ class TColumnShard
void Die(const TActorContext& ctx) override;
+ void CleanupActors(const TActorContext& ctx);
void BecomeBroken(const TActorContext& ctx);
void SwitchToWork(const TActorContext& ctx);
@@ -215,11 +215,7 @@ class TColumnShard
protected:
STFUNC(StateInit) {
TRACE_EVENT(NKikimrServices::TX_COLUMNSHARD);
- switch (ev->GetTypeRewrite()) {
- HFunc(TEvents::TEvPoisonPill, Handle);
- default:
- StateInitImpl(ev, SelfId());
- }
+ StateInitImpl(ev, SelfId());
}
STFUNC(StateBroken) {
@@ -240,7 +236,6 @@ protected:
TRACE_EVENT(NKikimrServices::TX_COLUMNSHARD);
switch (ev->GetTypeRewrite()) {
hFunc(NMetadata::NProvider::TEvRefreshSubscriberData, Handle);
- HFunc(TEvents::TEvPoisonPill, Handle);
HFunc(TEvTabletPipe::TEvClientConnected, Handle);
HFunc(TEvTabletPipe::TEvClientDestroyed, Handle);
HFunc(TEvTabletPipe::TEvServerConnected, Handle);
@@ -335,10 +330,17 @@ private:
bool ActiveIndexing = false;
TCurrentCompaction ActiveCompactionInfo;
bool ActiveCleanup = false;
- bool ActiveTtl = false;
+ THashSet<ui64> ActiveTtlPortions;
+
public:
- void StartCompaction(const NOlap::TPlanCompactionInfo& info) {
+ bool StartCompaction(const NOlap::TPlanCompactionInfo& info, const THashSet<ui64>& portions) {
+ for (ui64 p : portions) {
+ if (ActiveTtlPortions.contains(p)) {
+ return false;
+ }
+ }
Y_VERIFY(ActiveCompactionInfo.emplace(info.GetPathId(), info).second);
+ return true;
}
void FinishCompaction(const NOlap::TPlanCompactionInfo& info) {
Y_VERIFY(ActiveCompactionInfo.erase(info.GetPathId()));
@@ -374,16 +376,16 @@ private:
return ActiveCleanup;
}
- void StartTtl() {
- Y_VERIFY(!ActiveTtl);
- ActiveTtl = true;
+ void StartTtl(THashSet<ui64>&& ttlPortions) {
+ Y_VERIFY(ActiveTtlPortions.empty());
+ ActiveTtlPortions.swap(ttlPortions);
}
void FinishTtl() {
- Y_VERIFY(ActiveTtl);
- ActiveTtl = false;
+ Y_VERIFY(!ActiveTtlPortions.empty());
+ ActiveTtlPortions.clear();
}
bool IsTtlActive() const {
- return ActiveTtl;
+ return !ActiveTtlPortions.empty();
}
bool HasSplitCompaction(const ui64 pathId) const {
@@ -505,7 +507,7 @@ private:
void EnqueueProgressTx(const TActorContext& ctx);
void EnqueueBackgroundActivities(bool periodic = false, TBackgroundActivity activity = TBackgroundActivity::All());
- void CleanForgottenBlobs(const TActorContext& ctx);
+ void CleanForgottenBlobs(const TActorContext& ctx, const THashSet<TUnifiedBlobId>& allowList = {});
void UpdateSchemaSeqNo(const TMessageSeqNo& seqNo, NTabletFlatExecutor::TTransactionContext& txc);
void ProtectSchemaSeqNo(const NKikimrTxColumnShard::TSchemaSeqNo& seqNoProto, NTabletFlatExecutor::TTransactionContext& txc);
diff --git a/ydb/core/tx/columnshard/engines/column_engine_logs.cpp b/ydb/core/tx/columnshard/engines/column_engine_logs.cpp
index 2a858f5c13..a78578d092 100644
--- a/ydb/core/tx/columnshard/engines/column_engine_logs.cpp
+++ b/ydb/core/tx/columnshard/engines/column_engine_logs.cpp
@@ -1033,29 +1033,22 @@ bool TColumnEngineForLogs::UpsertPortion(const TPortionInfo& portionInfo, bool a
bool TColumnEngineForLogs::ErasePortion(const TPortionInfo& portionInfo, bool apply, bool updateStats) {
Y_VERIFY(!portionInfo.Empty());
- ui64 granule = portionInfo.Granule();
- ui64 portion = portionInfo.Portion();
-
- if (!apply) {
- if (!Granules.contains(granule) || !Granules[granule]->GetPortions().contains(portion)) {
- LOG_S_ERROR("Cannot erase unknown portion " << portionInfo << " at tablet " << TabletId);
- return false;
- }
- return true;
- }
-
- auto& spg = Granules[granule];
+ const ui64 portion = portionInfo.Portion();
+ auto it = Granules.find(portionInfo.Granule());
+ Y_VERIFY(it != Granules.end());
+ auto& spg = it->second;
Y_VERIFY(spg);
+ auto* p = spg->GetPortionPointer(portion);
- if (updateStats) {
- auto* p = spg->GetPortionPointer(portion);
- if (p) {
+ if (!p) {
+ LOG_S_WARN("Portion erased already " << portionInfo << " at tablet " << TabletId);
+ } else if (apply) {
+ if (updateStats) {
UpdatePortionStats(*p, EStatsUpdateType::ERASE);
}
+ Y_VERIFY(spg->ErasePortion(portion));
}
- Y_VERIFY(spg->ErasePortion(portion));
-
- return true; // It must return true if (apply == true)
+ return true;
}
bool TColumnEngineForLogs::CanInsert(const TChanges& changes, const TSnapshot& commitSnap) const {
diff --git a/ydb/core/tx/columnshard/engines/reader/granule.cpp b/ydb/core/tx/columnshard/engines/reader/granule.cpp
index a6864ecb20..f46d8aabe6 100644
--- a/ydb/core/tx/columnshard/engines/reader/granule.cpp
+++ b/ydb/core/tx/columnshard/engines/reader/granule.cpp
@@ -8,16 +8,18 @@
namespace NKikimr::NOlap::NIndexedReader {
void TGranule::OnBatchReady(const TBatch& batchInfo, std::shared_ptr<arrow::RecordBatch> batch) {
- GranuleDataSize.Take(batchInfo.GetRealBatchSizeVerified());
- GranuleDataSize.Free(batchInfo.GetPredictedBatchSize());
- RawDataSizeReal += batchInfo.GetRealBatchSizeVerified();
if (Owner->GetSortingPolicy()->CanInterrupt() && ReadyFlag) {
return;
}
- AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "new_batch")("granule_id", GranuleId)
- ("batch_address", batchInfo.GetBatchAddress().ToString())("count", WaitBatches.size());
Y_VERIFY(!ReadyFlag);
Y_VERIFY(WaitBatches.erase(batchInfo.GetBatchAddress().GetBatchGranuleIdx()));
+ if (InConstruction) {
+ GranuleDataSize.Take(batchInfo.GetRealBatchSizeVerified());
+ GranuleDataSize.Free(batchInfo.GetPredictedBatchSize());
+ RawDataSizeReal += batchInfo.GetRealBatchSizeVerified();
+ }
+ AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "new_batch")("granule_id", GranuleId)
+ ("batch_address", batchInfo.GetBatchAddress().ToString())("count", WaitBatches.size())("in_construction", InConstruction);
if (batch && batch->num_rows()) {
RecordBatches.emplace_back(batch);
diff --git a/ydb/core/tx/columnshard/engines/ut_program.cpp b/ydb/core/tx/columnshard/engines/ut_program.cpp
index 6b112a6a11..99777cd56e 100644
--- a/ydb/core/tx/columnshard/engines/ut_program.cpp
+++ b/ydb/core/tx/columnshard/engines/ut_program.cpp
@@ -5,6 +5,7 @@
#include <ydb/core/tx/columnshard/columnshard_ut_common.h>
#include <ydb/core/tx/program/program.h>
#include <ydb/core/formats/arrow/converter.h>
+#include <ydb/core/formats/arrow/ssa_runtime_version.h>
#include <ydb/library/yql/core/arrow_kernels/request/request.h>
#include <ydb/library/yql/core/arrow_kernels/registry/registry.h>
@@ -467,10 +468,18 @@ Y_UNIT_TEST_SUITE(TestProgram) {
}
Y_UNIT_TEST(JsonExists) {
+ if constexpr (NSsa::RuntimeVersion < 3U) {
+ return;
+ }
+
JsonExistsImpl(false);
}
Y_UNIT_TEST(JsonExistsBinary) {
+ if constexpr (NSsa::RuntimeVersion < 3U) {
+ return;
+ }
+
JsonExistsImpl(true);
}
@@ -608,6 +617,10 @@ Y_UNIT_TEST_SUITE(TestProgram) {
}
Y_UNIT_TEST(JsonValue) {
+ if constexpr (NSsa::RuntimeVersion < 3U) {
+ return;
+ }
+
JsonValueImpl(false, NYql::EDataSlot::Utf8);
JsonValueImpl(false, NYql::EDataSlot::Bool);
JsonValueImpl(false, NYql::EDataSlot::Int64);
@@ -617,6 +630,10 @@ Y_UNIT_TEST_SUITE(TestProgram) {
}
Y_UNIT_TEST(JsonValueBinary) {
+ if constexpr (NSsa::RuntimeVersion < 3U) {
+ return;
+ }
+
JsonValueImpl(true, NYql::EDataSlot::Utf8);
JsonValueImpl(true, NYql::EDataSlot::Bool);
JsonValueImpl(true, NYql::EDataSlot::Int64);
diff --git a/ydb/core/tx/columnshard/inflight_request_tracker.h b/ydb/core/tx/columnshard/inflight_request_tracker.h
index c8b95d9ea5..b98c6826c0 100644
--- a/ydb/core/tx/columnshard/inflight_request_tracker.h
+++ b/ydb/core/tx/columnshard/inflight_request_tracker.h
@@ -14,7 +14,7 @@ public:
// it's ref count. This will prevent the blob from beeing physically deleted when DeleteBlob() is called
// until all the references are released.
// NOTE: this ref counts are in-memory only, so the blobs can be deleted if tablet restarts
- virtual void SetBlobInUse(const NOlap::TUnifiedBlobId& blobId, bool inUse) = 0;
+ virtual bool SetBlobInUse(const NOlap::TUnifiedBlobId& blobId, bool inUse) = 0;
virtual bool BlobInUse(const NOlap::TUnifiedBlobId& blobId) const = 0;
};
@@ -40,10 +40,12 @@ public:
}
// Forget completed request
- void RemoveInFlightRequest(ui64 cookie, IBlobInUseTracker& blobTracker) {
+ THashSet<NOlap::TUnifiedBlobId> RemoveInFlightRequest(ui64 cookie, IBlobInUseTracker& blobTracker) {
Y_VERIFY(RequestsMeta.contains(cookie), "Unknown request cookie %" PRIu64, cookie);
const auto& readMetaList = RequestsMeta[cookie];
+ THashSet<NOlap::TUnifiedBlobId> freedBlobs;
+
for (const auto& readMetaBase : readMetaList) {
NOlap::TReadMetadata::TConstPtr readMeta = std::dynamic_pointer_cast<const NOlap::TReadMetadata>(readMetaBase);
@@ -61,16 +63,21 @@ public:
it->second--;
}
for (auto& rec : portion.Records) {
- blobTracker.SetBlobInUse(rec.BlobRange.BlobId, false);
+ if (blobTracker.SetBlobInUse(rec.BlobRange.BlobId, false)) {
+ freedBlobs.emplace(rec.BlobRange.BlobId);
+ }
}
}
for (const auto& committedBlob : readMeta->CommittedBlobs) {
- blobTracker.SetBlobInUse(committedBlob.GetBlobId(), false);
+ if (blobTracker.SetBlobInUse(committedBlob.GetBlobId(), false)) {
+ freedBlobs.emplace(committedBlob.GetBlobId());
+ }
}
}
RequestsMeta.erase(cookie);
+ return freedBlobs;
}
// Checks if the portion is in use by any in-flight request
diff --git a/ydb/core/tx/columnshard/ut_schema/ut_columnshard_schema.cpp b/ydb/core/tx/columnshard/ut_schema/ut_columnshard_schema.cpp
index 42a0237a89..4e679ad26c 100644
--- a/ydb/core/tx/columnshard/ut_schema/ut_columnshard_schema.cpp
+++ b/ydb/core/tx/columnshard/ut_schema/ut_columnshard_schema.cpp
@@ -685,7 +685,7 @@ std::vector<std::pair<ui32, ui64>> TestTiers(bool reboots, const std::vector<TSt
deplayedExports += numExports;
numExports = 0;
} else if (numForgets) {
- counter.CaptureForgetResponse = reboots ? 2 : 1;
+ counter.CaptureForgetResponse = 1;
deplayedForgets += numForgets;
numForgets = 0;
}
@@ -1491,7 +1491,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestSchema) {
TestExport(false, {}, 2);
}
- Y_UNIT_TEST(RebootForgettWithLostAnswer) {
+ Y_UNIT_TEST(RebootForgetWithLostAnswer) {
TestExport(true, {}, 2);
}
diff --git a/ydb/core/tx/columnshard/write_actor.cpp b/ydb/core/tx/columnshard/write_actor.cpp
index ce6f5a05a7..e6a5a9b6d8 100644
--- a/ydb/core/tx/columnshard/write_actor.cpp
+++ b/ydb/core/tx/columnshard/write_actor.cpp
@@ -103,7 +103,7 @@ public:
BlobsConstructor->RegisterBlobId(blobId);
}
if (status != NOlap::IBlobConstructor::EStatus::Finished) {
- return SendResultAndDie(ctx, NKikimrProto::ERROR);
+ return SendResultAndDie(ctx, NKikimrProto::CORRUPTED);
}
if (BlobBatch.AllBlobWritesCompleted()) {
diff --git a/ydb/core/tx/coordinator/coordinator.h b/ydb/core/tx/coordinator/coordinator.h
index e7a76df3ce..771fed39ca 100644
--- a/ydb/core/tx/coordinator/coordinator.h
+++ b/ydb/core/tx/coordinator/coordinator.h
@@ -48,7 +48,7 @@ struct TEvTxCoordinator {
TEvCoordinatorStep(const NFlatTxCoordinator::TMediatorStep &mediatorStep, ui64 prevStep, ui64 mediatorId, ui64 coordinatorId, ui64 activeGeneration);
};
- struct TEvCoordinatorStepResult : public TEventPB<TEvCoordinatorStep, NKikimrTx::TEvCoordinatorStepResult, EvCoordinatorStepResult> {
+ struct TEvCoordinatorStepResult : public TEventPB<TEvCoordinatorStepResult, NKikimrTx::TEvCoordinatorStepResult, EvCoordinatorStepResult> {
TEvCoordinatorStepResult()
{}
diff --git a/ydb/core/tx/coordinator/coordinator_impl.cpp b/ydb/core/tx/coordinator/coordinator_impl.cpp
index 8af35f3123..1edc81a258 100644
--- a/ydb/core/tx/coordinator/coordinator_impl.cpp
+++ b/ydb/core/tx/coordinator/coordinator_impl.cpp
@@ -413,11 +413,6 @@ void TTxCoordinator::Handle(TEvSubDomain::TEvConfigure::TPtr &ev, const TActorCo
DoConfiguration(*ev->Get(), ctx, ev->Sender);
}
-void TTxCoordinator::Handle(TEvents::TEvPoisonPill::TPtr&, const TActorContext& ctx) {
- Become(&TThis::StateBroken);
- ctx.Send(Tablet(), new TEvents::TEvPoisonPill);
-}
-
void TTxCoordinator::Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev, const TActorContext&) {
auto res = PipeServers.emplace(
std::piecewise_construct,
diff --git a/ydb/core/tx/coordinator/coordinator_impl.h b/ydb/core/tx/coordinator/coordinator_impl.h
index 4bea09f29f..cd8968308f 100644
--- a/ydb/core/tx/coordinator/coordinator_impl.h
+++ b/ydb/core/tx/coordinator/coordinator_impl.h
@@ -659,7 +659,6 @@ private:
void Handle(TEvTxCoordinator::TEvCoordinatorConfirmPlan::TPtr &ev, const TActorContext &ctx);
void Handle(TEvSubDomain::TEvConfigure::TPtr &ev, const TActorContext &ctx);
- void Handle(TEvents::TEvPoisonPill::TPtr& ev, const TActorContext& ctx);
void Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev, const TActorContext& ctx);
void Handle(TEvTabletPipe::TEvServerDisconnected::TPtr& ev, const TActorContext& ctx);
@@ -703,7 +702,6 @@ public:
// no incomming pipes is allowed in StateInit
STFUNC_TABLET_INIT(StateInit,
- HFunc(TEvents::TEvPoisonPill, Handle);
)
STFUNC_TABLET_DEF(StateSync,
@@ -715,7 +713,6 @@ public:
HFunc(TEvTxProxy::TEvUnsubscribeReadStep, Handle);
hFunc(TEvTxProxy::TEvSubscribeLastStep, Handle);
hFunc(TEvTxProxy::TEvUnsubscribeLastStep, Handle);
- HFunc(TEvents::TEvPoisonPill, Handle);
HFunc(TEvTabletPipe::TEvServerConnected, Handle);
HFunc(TEvTabletPipe::TEvServerDisconnected, Handle);
HFunc(TEvPrivate::TEvRestoredProcessingParams, Handle);
@@ -735,7 +732,6 @@ public:
HFunc(TEvTxCoordinator::TEvMediatorQueueRestart, Handle);
HFunc(TEvTxCoordinator::TEvMediatorQueueStop, Handle);
HFunc(TEvTxCoordinator::TEvCoordinatorConfirmPlan, Handle);
- HFunc(TEvents::TEvPoisonPill, Handle);
HFunc(TEvTabletPipe::TEvServerConnected, Handle);
HFunc(TEvTabletPipe::TEvServerDisconnected, Handle);
HFunc(TEvPrivate::TEvRestoredProcessingParams, Handle);
diff --git a/ydb/core/tx/datashard/build_index.cpp b/ydb/core/tx/datashard/build_index.cpp
index 7ec1c9c1ab..79554928eb 100644
--- a/ydb/core/tx/datashard/build_index.cpp
+++ b/ydb/core/tx/datashard/build_index.cpp
@@ -554,8 +554,31 @@ TAutoPtr<NTable::IScan> CreateBuildIndexScan(
buildIndexId, target, seqNo, dataShardId, datashardActorId, schemeshardActorId, range, targetIndexColumns, targetDataColumns, tableInfo, limits);
}
+class TDataShard::TTxHandleSafeBuildIndexScan : public NTabletFlatExecutor::TTransactionBase<TDataShard> {
+public:
+ TTxHandleSafeBuildIndexScan(TDataShard* self, TEvDataShard::TEvBuildIndexCreateRequest::TPtr&& ev)
+ : TTransactionBase(self)
+ , Ev(std::move(ev))
+ {}
+
+ bool Execute(TTransactionContext&, const TActorContext& ctx) {
+ Self->HandleSafe(Ev, ctx);
+ return true;
+ }
+
+ void Complete(const TActorContext&) {
+ // nothing
+ }
+
+private:
+ TEvDataShard::TEvBuildIndexCreateRequest::TPtr Ev;
+};
+
+void TDataShard::Handle(TEvDataShard::TEvBuildIndexCreateRequest::TPtr& ev, const TActorContext&) {
+ Execute(new TTxHandleSafeBuildIndexScan(this, std::move(ev)));
+}
-void TDataShard::Handle(TEvDataShard::TEvBuildIndexCreateRequest::TPtr& ev, const TActorContext& ctx) {
+void TDataShard::HandleSafe(TEvDataShard::TEvBuildIndexCreateRequest::TPtr& ev, const TActorContext& ctx) {
const auto& record = ev->Get()->Record;
// Note: it's very unlikely that we have volatile txs before this snapshot
@@ -648,6 +671,12 @@ void TDataShard::Handle(TEvDataShard::TEvBuildIndexCreateRequest::TPtr& ev, cons
return;
}
+ if (!IsStateActive()) {
+ badRequest(TStringBuilder() << "Shard " << TabletID() << " is not ready for requests");
+ ctx.Send(ev->Sender, std::move(response));
+ return;
+ }
+
TScanOptions scanOpts;
scanOpts.SetSnapshotRowVersion(TRowVersion(snapshotKey.Step, snapshotKey.TxId));
scanOpts.SetResourceBroker("build_index", 10);
diff --git a/ydb/core/tx/datashard/conflicts_cache.h b/ydb/core/tx/datashard/conflicts_cache.h
index 61c2b1ea74..1d4215018f 100644
--- a/ydb/core/tx/datashard/conflicts_cache.h
+++ b/ydb/core/tx/datashard/conflicts_cache.h
@@ -43,7 +43,7 @@ class TTableConflictsCache {
struct TKeyHash {
using is_transparent = void;
- bool operator()(TConstArrayRef<TCell> key) const {
+ size_t operator()(TConstArrayRef<TCell> key) const {
return absl::Hash<THashableKey>()(THashableKey{ key });
}
};
@@ -155,7 +155,7 @@ private:
TDistributedWrites DistributedWrites;
NTable::ITransactionObserverPtr TxObserver;
std::vector<TRollbackOp> RollbackOps;
- bool RollbackAllowed = false;
+ bool RollbackAllowed = true;
};
class TConflictsCache {
diff --git a/ydb/core/tx/datashard/datashard.cpp b/ydb/core/tx/datashard/datashard.cpp
index 94be571196..0952806ccb 100644
--- a/ydb/core/tx/datashard/datashard.cpp
+++ b/ydb/core/tx/datashard/datashard.cpp
@@ -1459,7 +1459,6 @@ TUserTable::TPtr TDataShard::MoveUserTable(TOperation::TPtr op, const NKikimrTxD
auto newTableInfo = AlterTableSchemaVersion(ctx, txc, prevId, version, false);
newTableInfo->SetPath(move.GetDstPath());
- Y_VERIFY(move.ReMapIndexesSize() == newTableInfo->Indexes.size());
const THashMap<TPathId, TPathId> remap = GetRemapIndexes(move);
NKikimrSchemeOp::TTableDescription schema;
@@ -1477,7 +1476,6 @@ TUserTable::TPtr TDataShard::MoveUserTable(TOperation::TPtr op, const NKikimrTxD
newTableInfo->Indexes.erase(prevPathId);
}
newTableInfo->SetSchema(schema);
- Y_VERIFY(move.ReMapIndexesSize() == newTableInfo->Indexes.size());
//NOTE: Stats building is bound to table id, but move-table changes table id,
// so already built stats couldn't be inherited by moved table
@@ -2368,12 +2366,6 @@ void TDataShard::Handle(TEvents::TEvGone::TPtr &ev) {
Actors.erase(ev->Sender);
}
-void TDataShard::Handle(TEvents::TEvPoisonPill::TPtr &ev, const TActorContext &ctx) {
- LOG_DEBUG(ctx, NKikimrServices::TX_DATASHARD, "Handle TEvents::TEvPoisonPill");
- Y_UNUSED(ev);
- BecomeBroken(ctx);
-}
-
void TDataShard::Handle(TEvDataShard::TEvGetShardState::TPtr &ev, const TActorContext &ctx) {
Execute(new TTxGetShardState(this, ev), ctx);
}
@@ -2691,7 +2683,7 @@ void TDataShard::Handle(TEvTxProcessing::TEvPlanStep::TPtr &ev, const TActorCont
LOG_CRIT_S(ctx, NKikimrServices::TX_DATASHARD, "tablet " << TabletID() <<
" receive PlanStep " << ev->Get()->Record.GetStep() <<
" from unauthorized mediator " << srcMediatorId);
- BecomeBroken(ctx);
+ HandlePoison(ctx);
return;
}
diff --git a/ydb/core/tx/datashard/datashard__kqp_scan.cpp b/ydb/core/tx/datashard/datashard__kqp_scan.cpp
index 681c75ccf0..eeb95476c5 100644
--- a/ydb/core/tx/datashard/datashard__kqp_scan.cpp
+++ b/ydb/core/tx/datashard/datashard__kqp_scan.cpp
@@ -535,7 +535,31 @@ private:
TOwnedCellVec LastKey;
};
+class TDataShard::TTxHandleSafeKqpScan : public NTabletFlatExecutor::TTransactionBase<TDataShard> {
+public:
+ TTxHandleSafeKqpScan(TDataShard* self, TEvDataShard::TEvKqpScan::TPtr&& ev)
+ : TTransactionBase(self)
+ , Ev(std::move(ev))
+ {}
+
+ bool Execute(TTransactionContext&, const TActorContext& ctx) {
+ Self->HandleSafe(Ev, ctx);
+ return true;
+ }
+
+ void Complete(const TActorContext&) {
+ // nothing
+ }
+
+private:
+ TEvDataShard::TEvKqpScan::TPtr Ev;
+};
+
void TDataShard::Handle(TEvDataShard::TEvKqpScan::TPtr& ev, const TActorContext&) {
+ Execute(new TTxHandleSafeKqpScan(this, std::move(ev)));
+}
+
+void TDataShard::HandleSafe(TEvDataShard::TEvKqpScan::TPtr& ev, const TActorContext&) {
auto& request = ev->Get()->Record;
auto scanComputeActor = ev->Sender;
auto generation = request.GetGeneration();
@@ -619,6 +643,12 @@ void TDataShard::Handle(TEvDataShard::TEvKqpScan::TPtr& ev, const TActorContext&
return;
}
+ if (!IsStateActive()) {
+ reportError(request.GetTablePath(), TStringBuilder() << "TxId: " << request.GetTxId() << "."
+ << " Shard " << TabletID() << " is not ready to process requests.");
+ return;
+ }
+
Pipeline.StartStreamingTx(snapshot.GetTxId(), 1);
TSmallVec<TSerializedTableRange> ranges;
diff --git a/ydb/core/tx/datashard/datashard__op_rows.cpp b/ydb/core/tx/datashard/datashard__op_rows.cpp
index de8ac3599f..d4af5c0cda 100644
--- a/ydb/core/tx/datashard/datashard__op_rows.cpp
+++ b/ydb/core/tx/datashard/datashard__op_rows.cpp
@@ -124,6 +124,10 @@ static void ReadOnly(NKikimrTxDataShard::TEvUploadRowsResponse& response) {
response.SetStatus(NKikimrTxDataShard::TError::READONLY);
}
+static void Overloaded(NKikimrTxDataShard::TEvUploadRowsResponse& response) {
+ response.SetStatus(NKikimrTxDataShard::TError::SHARD_IS_BLOCKED);
+}
+
static void OutOfSpace(NKikimrTxDataShard::TEvEraseRowsResponse& response) {
// NOTE: this function is never called, because erase is allowed when out of space
response.SetStatus(NKikimrTxDataShard::TEvEraseRowsResponse::WRONG_SHARD_STATE);
@@ -137,6 +141,10 @@ static void ExecError(NKikimrTxDataShard::TEvEraseRowsResponse& response) {
response.SetStatus(NKikimrTxDataShard::TEvEraseRowsResponse::EXEC_ERROR);
}
+static void Overloaded(NKikimrTxDataShard::TEvEraseRowsResponse& response) {
+ response.SetStatus(NKikimrTxDataShard::TEvEraseRowsResponse::SHARD_OVERLOADED);
+}
+
template <typename TEvResponse>
using TSetStatusFunc = void(*)(typename TEvResponse::ProtoRecordType&);
@@ -159,34 +167,32 @@ template <typename TEvResponse, typename TEvRequest>
static bool MaybeReject(TDataShard* self, TEvRequest& ev, const TActorContext& ctx, const TString& txDesc, bool isWrite) {
NKikimrTxDataShard::TEvProposeTransactionResult::EStatus rejectStatus;
TString rejectReason;
- bool reject = self->CheckDataTxReject(txDesc, ctx, rejectStatus, rejectReason);
- bool outOfSpace = false;
+ if (self->CheckDataTxReject(txDesc, ctx, rejectStatus, rejectReason)) {
+ Reject<TEvResponse, TEvRequest>(self, ev, txDesc, rejectReason, &WrongShardState, ctx);
+ return true;
+ }
+
+ if (self->CheckChangesQueueOverflow()) {
+ rejectReason = TStringBuilder() << "Change queue overflow at tablet " << self->TabletID();
+ Reject<TEvResponse, TEvRequest>(self, ev, txDesc, rejectReason, &Overloaded, ctx);
+ return true;
+ }
- if (!reject && isWrite) {
+ if (isWrite) {
if (self->IsAnyChannelYellowStop()) {
- reject = true;
- outOfSpace = true;
- rejectReason = TStringBuilder() << "Cannot perform writes: out of disk space at tablet " << self->TabletID();
self->IncCounter(COUNTER_PREPARE_OUT_OF_SPACE);
+ rejectReason = TStringBuilder() << "Cannot perform writes: out of disk space at tablet " << self->TabletID();
+ Reject<TEvResponse, TEvRequest>(self, ev, txDesc, rejectReason, &OutOfSpace, ctx);
+ return true;
} else if (self->IsSubDomainOutOfSpace()) {
- reject = true;
- outOfSpace = true;
- rejectReason = "Cannot perform writes: database is out of disk space";
self->IncCounter(COUNTER_PREPARE_OUT_OF_SPACE);
+ rejectReason = "Cannot perform writes: database is out of disk space";
+ Reject<TEvResponse, TEvRequest>(self, ev, txDesc, rejectReason, &OutOfSpace, ctx);
+ return true;
}
}
- if (!reject) {
- return false;
- }
-
- if (outOfSpace) {
- Reject<TEvResponse, TEvRequest>(self, ev, txDesc, rejectReason, &OutOfSpace, ctx);
- } else {
- Reject<TEvResponse, TEvRequest>(self, ev, txDesc, rejectReason, &WrongShardState, ctx);
- }
-
- return true;
+ return false;
}
void TDataShard::Handle(TEvDataShard::TEvUploadRowsRequest::TPtr& ev, const TActorContext& ctx) {
diff --git a/ydb/core/tx/datashard/datashard__propose_tx_base.cpp b/ydb/core/tx/datashard/datashard__propose_tx_base.cpp
index 9f62e9246b..a3f67353c9 100644
--- a/ydb/core/tx/datashard/datashard__propose_tx_base.cpp
+++ b/ydb/core/tx/datashard/datashard__propose_tx_base.cpp
@@ -4,7 +4,7 @@
#include "probes.h"
#include <ydb/core/util/pb.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
LWTRACE_USING(DATASHARD_PROVIDER)
diff --git a/ydb/core/tx/datashard/datashard__read_iterator.cpp b/ydb/core/tx/datashard/datashard__read_iterator.cpp
index 29b502d665..81e84575e2 100644
--- a/ydb/core/tx/datashard/datashard__read_iterator.cpp
+++ b/ydb/core/tx/datashard/datashard__read_iterator.cpp
@@ -996,6 +996,13 @@ private:
}
};
+std::unique_ptr<TEvDataShard::TEvReadResult> MakeEvReadResult(ui32 nodeId) {
+ auto result = std::make_unique<TEvDataShard::TEvReadResult>();
+ result->Record.SetNodeId(nodeId);
+ return result;
+}
+
+
const NHPTimer::STime TReader::MaxCyclesPerIteration =
/* 10ms */ (NHPTimer::GetCyclesPerSecond() + 99) / 100;
@@ -1214,7 +1221,7 @@ public:
Y_VERIFY(ok, "Unexpected failure to attach a blocked operation");
}
Reader.reset();
- Result.reset(new TEvDataShard::TEvReadResult());
+ Result = MakeEvReadResult(ctx.SelfID.NodeId());
return EExecutionStatus::Continue;
}
@@ -1242,7 +1249,7 @@ public:
AddDependency(it->second);
// Make sure current incomplete result will not be sent
- Result.reset(new TEvDataShard::TEvReadResult());
+ Result = MakeEvReadResult(ctx.SelfID.NodeId());
return EExecutionStatus::Continue;
}
@@ -1256,7 +1263,7 @@ public:
SetMvccSnapshot(state.ReadVersion, /* isRepeatable */ true);
// Make sure current incomplete result will not be sent
- Result.reset(new TEvDataShard::TEvReadResult());
+ Result = MakeEvReadResult(ctx.SelfID.NodeId());
return EExecutionStatus::Reschedule;
}
@@ -1309,7 +1316,7 @@ public:
auto& state = *it->second;
Y_VERIFY(state.State == TReadIteratorState::EState::Init);
- Result.reset(new TEvDataShard::TEvReadResult());
+ Result = MakeEvReadResult(ctx.SelfID.NodeId());
const auto& record = Request->Record;
@@ -1454,7 +1461,7 @@ public:
if (!Result) {
LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
<< " TReadOperation::Execute() finished without Result, aborting");
- Result.reset(new TEvDataShard::TEvReadResult());
+ Result = MakeEvReadResult(ctx.SelfID.NodeId());
SetStatusError(Result->Record, Ydb::StatusIds::ABORTED, "Iterator aborted");
Result->Record.SetReadId(readId.ReadId);
Self->SendImmediateReadResult(Sender, Result.release(), 0, state.SessionId);
@@ -1822,7 +1829,8 @@ public:
}
ReplyError(
Ydb::StatusIds::INTERNAL_ERROR,
- TStringBuilder() << "Failed to sync follower: " << errMessage);
+ TStringBuilder() << "Failed to sync follower: " << errMessage,
+ ctx.SelfID.NodeId());
return true;
}
}
@@ -1846,7 +1854,8 @@ public:
Ydb::StatusIds::BAD_REQUEST,
TStringBuilder() << "Requesting ownerId: " << state.PathId.OwnerId
<< ", tableId: " << state.PathId.LocalPathId
- << ", from wrong owner: " << Self->GetPathOwnerId());
+ << ", from wrong owner: " << Self->GetPathOwnerId(),
+ ctx.SelfID.NodeId());
return true;
}
@@ -1855,7 +1864,8 @@ public:
if (it == Self->TableInfos.end()) {
ReplyError(
Ydb::StatusIds::NOT_FOUND,
- TStringBuilder() << "Unknown table id: " << tableId);
+ TStringBuilder() << "Unknown table id: " << tableId,
+ ctx.SelfID.NodeId());
return true;
}
@@ -1863,14 +1873,16 @@ public:
if (userTableInfo->IsBackup) {
ReplyError(
Ydb::StatusIds::BAD_REQUEST,
- "Can't read from a backup table");
+ "Can't read from a backup table",
+ ctx.SelfID.NodeId());
return true;
}
if (!Self->IsMvccEnabled()) {
ReplyError(
Ydb::StatusIds::UNSUPPORTED,
- "Cannot use read iterators without mvcc");
+ "Cannot use read iterators without mvcc",
+ ctx.SelfID.NodeId());
return true;
}
@@ -1940,7 +1952,8 @@ public:
TStringBuilder() << "Table id " << tableId << " has no snapshot at "
<< state.ReadVersion << " shard " << Self->TabletID()
<< " with lowWatermark " << Self->GetSnapshotManager().GetLowWatermark()
- << (Self->IsFollower() ? " RO replica" : ""));
+ << (Self->IsFollower() ? " RO replica" : ""),
+ ctx.SelfID.NodeId());
return true;
}
}
@@ -1950,26 +1963,30 @@ public:
if (Self->IsFollower()) {
ReplyError(
Ydb::StatusIds::UNSUPPORTED,
- "Followers don't support system table reads");
+ "Followers don't support system table reads",
+ ctx.SelfID.NodeId());
return true;
}
if (!state.IsHeadRead) {
ReplyError(
Ydb::StatusIds::BAD_REQUEST,
- TStringBuilder() << "Cannot read system table using snapshot " << state.ReadVersion);
+ TStringBuilder() << "Cannot read system table using snapshot " << state.ReadVersion,
+ ctx.SelfID.NodeId());
return true;
}
if (record.GetTableId().GetTableId() >= TDataShard::Schema::MinLocalTid) {
ReplyError(
Ydb::StatusIds::BAD_REQUEST,
- "Cannot read from user tables using system tables");
+ "Cannot read from user tables using system tables",
+ ctx.SelfID.NodeId());
return true;
}
if (record.GetResultFormat() != NKikimrTxDataShard::CELLVEC) {
ReplyError(
Ydb::StatusIds::UNSUPPORTED,
TStringBuilder() << "Unsupported result format "
- << (int)record.GetResultFormat() << " when reading from system tables");
+ << (int)record.GetResultFormat() << " when reading from system tables",
+ ctx.SelfID.NodeId());
return true;
}
if (record.GetTableId().HasSchemaVersion()) {
@@ -1977,7 +1994,8 @@ public:
Ydb::StatusIds::BAD_REQUEST,
TStringBuilder() << "Cannot request system table at shard " << record.GetTableId().GetOwnerId()
<< ", localTid: " << record.GetTableId().GetTableId()
- << ", with schema: " << record.GetTableId().GetSchemaVersion());
+ << ", with schema: " << record.GetTableId().GetSchemaVersion(),
+ ctx.SelfID.NodeId());
return true;
}
@@ -2056,8 +2074,8 @@ public:
}
}
- void ReplyError(Ydb::StatusIds::StatusCode code, const TString& message) {
- Reply = std::make_unique<TEvDataShard::TEvReadResult>();
+ void ReplyError(Ydb::StatusIds::StatusCode code, const TString& message, ui32 nodeId) {
+ Reply = MakeEvReadResult(nodeId);
SetStatusError(Reply->Record, code, message);
Reply->Record.SetReadId(ReadId.ReadId);
}
@@ -2139,7 +2157,7 @@ public:
<< Ev->Get()->Reader << ", readId# " << Ev->Get()->ReadId
<< ", firstUnprocessedQuery# " << state.FirstUnprocessedQuery);
- Result.reset(new TEvDataShard::TEvReadResult());
+ Result = MakeEvReadResult(ctx.SelfID.NodeId());
const auto& tableId = state.PathId.LocalPathId;
if (state.PathId.OwnerId == Self->GetPathOwnerId()) {
@@ -2338,7 +2356,7 @@ public:
LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
<< " TTxReadContinue::Execute() finished without Result, aborting");
- Result.reset(new TEvDataShard::TEvReadResult());
+ Result = MakeEvReadResult(ctx.SelfID.NodeId());
SetStatusError(Result->Record, Ydb::StatusIds::ABORTED, "Iterator aborted");
Result->Record.SetReadId(readId.ReadId);
Self->SendImmediateReadResult(request->Reader, Result.release(), 0, state.SessionId);
@@ -2399,7 +2417,7 @@ void TDataShard::Handle(TEvDataShard::TEvRead::TPtr& ev, const TActorContext& ct
auto* request = ev->Get();
const auto& record = request->Record;
if (Y_UNLIKELY(!record.HasReadId())) {
- std::unique_ptr<TEvDataShard::TEvReadResult> result(new TEvDataShard::TEvReadResult());
+ auto result = MakeEvReadResult(ctx.SelfID.NodeId());
SetStatusError(result->Record, Ydb::StatusIds::BAD_REQUEST, "Missing ReadId");
ctx.Send(ev->Sender, result.release());
return;
@@ -2414,7 +2432,7 @@ void TDataShard::Handle(TEvDataShard::TEvRead::TPtr& ev, const TActorContext& ct
}
auto replyWithError = [&] (auto code, const auto& msg) {
- std::unique_ptr<TEvDataShard::TEvReadResult> result(new TEvDataShard::TEvReadResult());
+ auto result = MakeEvReadResult(ctx.SelfID.NodeId());
SetStatusError(
result->Record,
code,
@@ -2560,7 +2578,7 @@ void TDataShard::Handle(TEvDataShard::TEvReadAck::TPtr& ev, const TActorContext&
{
LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, TabletID() << " ReadAck: " << record);
- std::unique_ptr<TEvDataShard::TEvReadResult> result(new TEvDataShard::TEvReadResult());
+ auto result = MakeEvReadResult(ctx.SelfID.NodeId());
SetStatusError(result->Record, Ydb::StatusIds::BAD_REQUEST, "Missing mandatory fields in TEvReadAck");
if (record.HasReadId())
result->Record.SetReadId(record.GetReadId());
@@ -2594,7 +2612,7 @@ void TDataShard::Handle(TEvDataShard::TEvReadAck::TPtr& ev, const TActorContext&
<< ", current seqNo# " << state.SeqNo;
LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, issueStr);
- std::unique_ptr<TEvDataShard::TEvReadResult> result(new TEvDataShard::TEvReadResult());
+ auto result = MakeEvReadResult(ctx.SelfID.NodeId());
SetStatusError(result->Record, Ydb::StatusIds::BAD_SESSION, issueStr);
result->Record.SetReadId(readId.ReadId);
SendViaSession(state.SessionId, readId.Sender, SelfId(), result.release());
@@ -2669,7 +2687,7 @@ void TDataShard::CancelReadIterators(Ydb::StatusIds::StatusCode code, const TStr
IncCounter(COUNTER_READ_ITERATOR_LIFETIME_MS, delta.MilliSeconds());
}
- std::unique_ptr<TEvDataShard::TEvReadResult> result(new TEvDataShard::TEvReadResult());
+ auto result = MakeEvReadResult(ctx.SelfID.NodeId());
SetStatusError(result->Record, code, issue);
result->Record.SetReadId(iterator.first.ReadId);
result->Record.SetSeqNo(state->SeqNo + 1);
diff --git a/ydb/core/tx/datashard/datashard_impl.h b/ydb/core/tx/datashard/datashard_impl.h
index b96f6ba8b1..573252d99c 100644
--- a/ydb/core/tx/datashard/datashard_impl.h
+++ b/ydb/core/tx/datashard/datashard_impl.h
@@ -233,6 +233,9 @@ class TDataShard
class TTxReadViaPipeline;
class TReadOperation;
+ class TTxHandleSafeKqpScan;
+ class TTxHandleSafeBuildIndexScan;
+
ITransaction *CreateTxMonitoring(TDataShard *self,
NMon::TEvRemoteHttpInfo::TPtr ev);
ITransaction *CreateTxGetInfo(TDataShard *self,
@@ -1148,7 +1151,6 @@ class TDataShard
}
void Handle(TEvents::TEvGone::TPtr &ev);
- void Handle(TEvents::TEvPoisonPill::TPtr &ev, const TActorContext &ctx);
void Handle(TEvDataShard::TEvGetShardState::TPtr &ev, const TActorContext &ctx);
void Handle(TEvDataShard::TEvSchemaChangedResult::TPtr &ev, const TActorContext &ctx);
void Handle(TEvDataShard::TEvStateChangedResult::TPtr &ev, const TActorContext &ctx);
@@ -1187,6 +1189,7 @@ class TDataShard
void Handle(TEvDataShard::TEvGetTableStats::TPtr& ev, const TActorContext& ctx);
void Handle(TEvPrivate::TEvAsyncTableStats::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDataShard::TEvKqpScan::TPtr& ev, const TActorContext& ctx);
+ void HandleSafe(TEvDataShard::TEvKqpScan::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDataShard::TEvUploadRowsRequest::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDataShard::TEvEraseRowsRequest::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDataShard::TEvConditionalEraseRowsRequest::TPtr& ev, const TActorContext& ctx);
@@ -1215,6 +1218,7 @@ class TDataShard
void Handle(TEvDataShard::TEvStoreS3DownloadInfo::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDataShard::TEvS3UploadRowsRequest::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDataShard::TEvBuildIndexCreateRequest::TPtr& ev, const TActorContext& ctx);
+ void HandleSafe(TEvDataShard::TEvBuildIndexCreateRequest::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDataShard::TEvCdcStreamScanRequest::TPtr& ev, const TActorContext& ctx);
void Handle(TEvPrivate::TEvCdcStreamScanRegistered::TPtr& ev, const TActorContext& ctx);
void Handle(TEvPrivate::TEvCdcStreamScanProgress::TPtr& ev, const TActorContext& ctx);
@@ -2710,11 +2714,7 @@ protected:
// Redundant init state required by flat executor implementation
void StateInit(TAutoPtr<NActors::IEventHandle> &ev) {
TRACE_EVENT(NKikimrServices::TX_DATASHARD);
- switch (ev->GetTypeRewrite()) {
- HFuncTraced(TEvents::TEvPoisonPill, Handle);
- default:
- StateInitImpl(ev, SelfId());
- }
+ StateInitImpl(ev, SelfId());
}
void Enqueue(STFUNC_SIG) override {
@@ -2731,7 +2731,6 @@ protected:
HFuncTraced(TEvMediatorTimecast::TEvNotifyPlanStep, Handle);
HFuncTraced(TEvPrivate::TEvMediatorRestoreBackup, Handle);
HFuncTraced(TEvPrivate::TEvRemoveLockChangeRecords, Handle);
- HFuncTraced(TEvents::TEvPoisonPill, Handle);
default:
if (!HandleDefaultEvents(ev, SelfId())) {
ALOG_WARN(NKikimrServices::TX_DATASHARD, "TDataShard::StateInactive unhandled event type: " << ev->GetTypeRewrite()
@@ -2746,7 +2745,6 @@ protected:
TRACE_EVENT(NKikimrServices::TX_DATASHARD);
switch (ev->GetTypeRewrite()) {
hFunc(TEvents::TEvGone, Handle);
- HFuncTraced(TEvents::TEvPoisonPill, Handle);
HFuncTraced(TEvDataShard::TEvGetShardState, Handle);
HFuncTraced(TEvDataShard::TEvSchemaChangedResult, Handle);
HFuncTraced(TEvDataShard::TEvStateChangedResult, Handle);
@@ -2867,7 +2865,6 @@ protected:
TRACE_EVENT(NKikimrServices::TX_DATASHARD);
switch (ev->GetTypeRewrite()) {
hFunc(TEvents::TEvGone, Handle);
- HFuncTraced(TEvents::TEvPoisonPill, Handle);
HFuncTraced(TEvDataShard::TEvProposeTransaction, HandleAsFollower);
HFuncTraced(TEvPrivate::TEvDelayedProposeTransaction, Handle);
HFuncTraced(TEvDataShard::TEvReadColumnsRequest, Handle);
@@ -2886,21 +2883,6 @@ protected:
}
}
- // State after tablet takes poison pill
- void StateBroken(TAutoPtr<NActors::IEventHandle> &ev) {
- TRACE_EVENT(NKikimrServices::TX_DATASHARD);
- switch (ev->GetTypeRewrite()) {
- hFunc(TEvents::TEvGone, Handle);
- HFuncTraced(TEvTablet::TEvTabletDead, HandleTabletDead);
- default:
- ALOG_WARN(NKikimrServices::TX_DATASHARD, "TDataShard::BrokenState at tablet " << TabletID()
- << " unhandled event type: " << ev->GetTypeRewrite()
- << " event: " << ev->ToString());
- Send(IEventHandle::ForwardOnNondelivery(ev, TEvents::TEvUndelivered::ReasonActorUnknown));
- break;
- }
- }
-
void Die(const TActorContext &ctx) override {
NTabletPipe::CloseAndForgetClient(SelfId(), SchemeShardPipe);
NTabletPipe::CloseAndForgetClient(SelfId(), StateReportPipe);
@@ -2929,12 +2911,6 @@ protected:
return IActor::Die(ctx);
}
- void BecomeBroken(const TActorContext &ctx)
- {
- Become(&TThis::StateBroken);
- ctx.Send(Tablet(), new TEvents::TEvPoisonPill);
- }
-
void SendViaSchemeshardPipe(const TActorContext &ctx, ui64 tabletId, THolder<TEvDataShard::TEvSchemaChanged> event) {
Y_VERIFY(tabletId);
Y_VERIFY(CurrentSchemeShardId == tabletId);
diff --git a/ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp b/ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp
index b5d2a176ec..971eb1476a 100644
--- a/ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp
@@ -1,9 +1,11 @@
#include <ydb/core/kqp/ut/common/kqp_ut_common.h>
#include <ydb/core/kqp/executer_actor/kqp_executer.h>
+#include <ydb/core/kqp/rm_service/kqp_snapshot_manager.h>
#include <ydb/core/tx/datashard/datashard.h>
#include <ydb/core/tx/datashard/datashard_ut_common_kqp.h>
#include <ydb/core/tx/datashard/datashard_ut_common.h>
#include <ydb/core/tx/tx_proxy/proxy.h>
+#include <ydb/core/base/blobstorage.h>
namespace NKikimr {
namespace NKqp {
@@ -243,6 +245,122 @@ Y_UNIT_TEST_SUITE(KqpScan) {
UNIT_ASSERT_VALUES_EQUAL(result, 596400);
}
+ Y_UNIT_TEST(ScanDuringSplit10) {
+ NKikimrConfig::TAppConfig appCfg;
+
+ auto* rm = appCfg.MutableTableServiceConfig()->MutableResourceManager();
+ rm->SetChannelBufferSize(100);
+ rm->SetMinChannelBufferSize(100);
+
+ TPortManager pm;
+ TServerSettings serverSettings(pm.GetPort(2134));
+ serverSettings.SetDomainName("Root")
+ .SetNodeCount(2)
+ .SetAppConfig(appCfg)
+ .SetUseRealThreads(false);
+
+ Tests::TServer::TPtr server = new TServer(serverSettings);
+ auto &runtime = *server->GetRuntime();
+ auto sender = runtime.AllocateEdgeActor();
+ auto senderSplit = runtime.AllocateEdgeActor();
+
+ EnableLogging(runtime);
+
+ SetSplitMergePartCountLimit(&runtime, -1);
+
+ InitRoot(server, sender);
+ CreateShardedTable(server, sender, "/Root", "table-1", 1);
+ ExecSQL(server, sender, FillTableQuery());
+
+ auto shards = GetTableShards(server, sender, "/Root/table-1");
+ for (const auto& shard: shards) {
+ Cerr << (TStringBuilder() << "-- shardId=" << shard << Endl);
+ Cerr.Flush();
+ }
+
+ TSet<TActorId> scans;
+ TActorId firstScanActor;
+ ui64 tabletId = 0;
+
+ ui64 result = 0;
+
+ auto captureEvents = [&](TTestActorRuntimeBase&, TAutoPtr<IEventHandle> &ev) {
+ switch (ev->GetTypeRewrite()) {
+ case NKqp::TKqpExecuterEvents::EvShardsResolveStatus: {
+ auto* msg = ev->Get<NKqp::TEvKqpExecuter::TEvShardsResolveStatus>();
+ for (auto& [shardId, nodeId]: msg->ShardNodes) {
+ tabletId = shardId;
+ Cerr << (TStringBuilder() << "-- tabletId= " << tabletId << Endl);
+ Cerr.Flush();
+ }
+ break;
+ }
+
+ case TEvDataShard::EvKqpScan: {
+ Cerr << (TStringBuilder() << "-- EvScan " << ev->Sender << " -> " << ev->Recipient << Endl);
+ Cerr.Flush();
+ break;
+ }
+
+ /*
+ * Respond to streamData with acks. Without that execution pipeline will stop
+ * producing new tuples.
+ */
+ case NKqp::TKqpExecuterEvents::EvStreamData: {
+ auto& record = ev->Get<NKqp::TEvKqpExecuter::TEvStreamData>()->Record;
+
+ Cerr << (TStringBuilder() << "-- EvStreamData: " << record.AsJSON() << Endl);
+ Cerr.Flush();
+
+ Y_ASSERT(record.GetResultSet().rows().size() == 1);
+ Y_ASSERT(record.GetResultSet().rows().at(0).items().size() == 1);
+ result = record.GetResultSet().rows().at(0).items().at(0).uint64_value();
+
+ auto resp = MakeHolder<NKqp::TEvKqpExecuter::TEvStreamDataAck>();
+ resp->Record.SetEnough(false);
+ resp->Record.SetSeqNo(ev->Get<NKqp::TEvKqpExecuter::TEvStreamData>()->Record.GetSeqNo());
+ resp->Record.SetFreeSpace(100);
+
+ runtime.Send(new IEventHandle(ev->Sender, sender, resp.Release()));
+
+ return TTestActorRuntime::EEventAction::DROP;
+ }
+
+ /* Drop message and kill tablet if we already had seen this tablet */
+ case NKqp::TKqpComputeEvents::EvScanData: {
+ if (!firstScanActor) {
+ firstScanActor = ev->Sender;
+ AsyncSplitTable(server, senderSplit, "/Root/table-1", tabletId, 10 /* splitKey */);
+ Cerr << (TStringBuilder() << "-- EvScanData from old tablet " << ev->Sender << ": pass and split" << Endl);
+ Cerr.Flush();
+ } else if (firstScanActor == ev->Sender) {
+ // data from old table scan, drop it
+ Cerr << (TStringBuilder() << "-- EvScanData from old tablet " << ev->Sender << ": drop" << Endl);
+ Cerr.Flush();
+ return TTestActorRuntime::EEventAction::DROP;
+ } else {
+ // data from new tablet scan, pass it
+ Cerr << (TStringBuilder() << "-- EvScanData from new tablet" << ev->Sender << ": pass" << Endl);
+ Cerr.Flush();
+ }
+
+ break;
+ }
+
+ default:
+ break;
+ }
+ return TTestActorRuntime::EEventAction::PROCESS;
+ };
+ runtime.SetObserverFunc(captureEvents);
+
+ auto streamSender = runtime.AllocateEdgeActor();
+ SendRequest(runtime, streamSender, MakeStreamRequest(streamSender, "SELECT sum(value) FROM `/Root/table-1`;", false));
+ auto ev = runtime.GrabEdgeEventRethrow<NKqp::TEvKqp::TEvQueryResponse>(streamSender);
+
+ UNIT_ASSERT_VALUES_EQUAL(result, 596400);
+ }
+
Y_UNIT_TEST(ScanDuringSplitThenMerge) {
NKikimrConfig::TAppConfig appCfg;
@@ -636,8 +754,151 @@ Y_UNIT_TEST_SUITE(KqpScan) {
UNIT_ASSERT_VALUES_EQUAL(incomingRangesSize, 3);
}
+ Y_UNIT_TEST(ScanAfterSplitSlowMetaRead) {
+ NKikimrConfig::TAppConfig appCfg;
+
+ auto* rm = appCfg.MutableTableServiceConfig()->MutableResourceManager();
+ rm->SetChannelBufferSize(100);
+ rm->SetMinChannelBufferSize(100);
+
+ TPortManager pm;
+ TServerSettings serverSettings(pm.GetPort(2134));
+ serverSettings.SetDomainName("Root")
+ .SetNodeCount(2)
+ .SetAppConfig(appCfg)
+ .SetUseRealThreads(false);
+
+ Tests::TServer::TPtr server = new TServer(serverSettings);
+ auto &runtime = *server->GetRuntime();
+ auto sender = runtime.AllocateEdgeActor();
+
+ EnableLogging(runtime);
+
+ InitRoot(server, sender);
+ CreateShardedTable(server, sender, "/Root", "table-1", 1);
+ ExecSQL(server, sender, FillTableQuery());
+
+ auto waitFor = [&](const auto& condition, const TString& description) {
+ if (!condition()) {
+ Cerr << "... waiting for " << description << Endl;
+ TDispatchOptions options;
+ options.CustomFinalCondition = [&]() {
+ return condition();
+ };
+ runtime.DispatchEvents(options);
+ UNIT_ASSERT_C(condition(), "... failed to wait for " << description);
+ }
+ };
+
+ std::optional<int> result;
+ std::optional<Ydb::StatusIds::StatusCode> status;
+ auto streamSender = runtime.Register(new TLambdaActor([&](TAutoPtr<IEventHandle>& ev, const TActorContext& ctx) {
+ Cerr << "... response " << ev->GetTypeRewrite() << " " << ev->GetTypeName() << " " << ev->ToString() << Endl;
+ switch (ev->GetTypeRewrite()) {
+ case NKqp::TEvKqpExecuter::TEvStreamData::EventType: {
+ auto* msg = ev->Get<NKqp::TEvKqpExecuter::TEvStreamData>();
+ auto& record = msg->Record;
+ Y_ASSERT(record.GetResultSet().rows().size() == 1);
+ Y_ASSERT(record.GetResultSet().rows().at(0).items().size() == 1);
+ result = record.GetResultSet().rows().at(0).items().at(0).uint64_value();
+
+ auto resp = MakeHolder<NKqp::TEvKqpExecuter::TEvStreamDataAck>();
+ resp->Record.SetEnough(false);
+ resp->Record.SetSeqNo(record.GetSeqNo());
+ resp->Record.SetFreeSpace(100);
+ ctx.Send(ev->Sender, resp.Release());
+ break;
+ }
+ case NKqp::TEvKqp::TEvQueryResponse::EventType: {
+ auto* msg = ev->Get<NKqp::TEvKqp::TEvQueryResponse>();
+ auto& record = msg->Record.GetRef();
+ status = record.GetYdbStatus();
+ break;
+ }
+ }
+ }));
+
+ SendRequest(runtime, streamSender, MakeStreamRequest(streamSender, "SELECT sum(value) FROM `/Root/table-1`;", false));
+ waitFor([&]{ return bool(status); }, "request status");
+
+ UNIT_ASSERT_VALUES_EQUAL(*status, Ydb::StatusIds::SUCCESS);
+
+ UNIT_ASSERT(result);
+ UNIT_ASSERT_VALUES_EQUAL(*result, 596400);
+
+ SetSplitMergePartCountLimit(&runtime, -1);
+
+ auto shards = GetTableShards(server, sender, "/Root/table-1");
+ UNIT_ASSERT_VALUES_EQUAL(shards.size(), 1u);
+
+ TVector<THolder<IEventHandle>> blockedGets;
+ TVector<THolder<IEventHandle>> blockedSnapshots;
+ auto blockGetObserver = [&](TTestActorRuntimeBase&, TAutoPtr<IEventHandle>& ev) {
+ switch (ev->GetTypeRewrite()) {
+ case NKqp::TEvKqpSnapshot::TEvCreateSnapshotResponse::EventType: {
+ Cerr << "... blocking snapshot response" << Endl;
+ blockedSnapshots.emplace_back(ev.Release());
+ return TTestActorRuntime::EEventAction::DROP;
+ }
+ case TEvBlobStorage::TEvGet::EventType: {
+ auto* msg = ev->Get<TEvBlobStorage::TEvGet>();
+ bool block = false;
+ for (ui32 i = 0; i < msg->QuerySize; ++i) {
+ if (msg->Queries[i].Id.TabletID() == shards.at(0)) {
+ Cerr << "... blocking get request to " << msg->Queries[i].Id << Endl;
+ block = true;
+ }
+ }
+ if (block) {
+ blockedGets.emplace_back(ev.Release());
+ return TTestActorRuntime::EEventAction::DROP;
+ }
+ break;
+ }
+ }
+ return TTestActorRuntime::EEventAction::PROCESS;
+ };
+ auto prevObserverFunc = runtime.SetObserverFunc(blockGetObserver);
+
+ result = {};
+ status = {};
+ SendRequest(runtime, streamSender, MakeStreamRequest(streamSender, "SELECT sum(value) FROM `/Root/table-1`;", false));
+
+ waitFor([&]{ return blockedSnapshots.size() > 0; }, "snapshot response");
+
+ // Start a split, surprisingly it will succeed despite blocked events
+ auto senderSplit = runtime.AllocateEdgeActor();
+ ui64 txId = AsyncSplitTable(server, senderSplit, "/Root/table-1", shards.at(0), 55 /* splitKey */);
+ WaitTxNotification(server, senderSplit, txId);
+
+ // Unblock snapshot and try waiting for results
+ runtime.SetObserverFunc(prevObserverFunc);
+ for (auto& ev : blockedSnapshots) {
+ ui32 nodeIdx = ev->GetRecipientRewrite().NodeId() - runtime.GetNodeId(0);
+ Cerr << "... unblocking snapshot" << Endl;
+ runtime.Send(ev.Release(), nodeIdx, true);
+ }
+ blockedSnapshots.clear();
+
+ SimulateSleep(runtime, TDuration::Seconds(1));
+ UNIT_ASSERT_C(!status, "Query finished with status: " << *status);
+ UNIT_ASSERT_C(!result, "Query returned unexpected result: " << *result);
+
+ // Unblock storage reads and wait for result
+ for (auto& ev : blockedGets) {
+ ui32 nodeIdx = ev->GetRecipientRewrite().NodeId() - runtime.GetNodeId(0);
+ Cerr << "... unblocking get" << Endl;
+ runtime.Send(ev.Release(), nodeIdx, true);
+ }
+ blockedGets.clear();
+
+ waitFor([&]{ return bool(status); }, "request finish");
+ UNIT_ASSERT_VALUES_EQUAL(*status, Ydb::StatusIds::SUCCESS);
+ UNIT_ASSERT(result);
+ UNIT_ASSERT_VALUES_EQUAL(*result, 596400);
+ }
+
}
} // namespace NKqp
} // namespace NKikimr
-
diff --git a/ydb/core/tx/datashard/datashard_ut_upload_rows.cpp b/ydb/core/tx/datashard/datashard_ut_upload_rows.cpp
index 2ae7d02e43..49e6af420d 100644
--- a/ydb/core/tx/datashard/datashard_ut_upload_rows.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_upload_rows.cpp
@@ -744,6 +744,45 @@ Y_UNIT_TEST_SUITE(TTxDataShardUploadRows) {
DoUploadTestRows(server, sender, "/Root/table-1", Ydb::Type::UINT32, Ydb::StatusIds::GENERIC_ERROR);
}
+ Y_UNIT_TEST(ShouldRejectOnChangeQueueOverflow) {
+ TPortManager pm;
+ TServerSettings serverSettings(pm.GetPort(2134));
+ serverSettings.SetDomainName("Root")
+ .SetUseRealThreads(false)
+ .SetChangesQueueItemsLimit(1);
+
+ TServer::TPtr server = new TServer(serverSettings);
+ auto &runtime = *server->GetRuntime();
+ auto sender = runtime.AllocateEdgeActor();
+
+ runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_DEBUG);
+ runtime.SetLogPriority(NKikimrServices::CHANGE_EXCHANGE, NLog::PRI_DEBUG);
+
+ InitRoot(server, sender);
+ CreateShardedTable(server, sender, "/Root", "table-1", TShardedTableOptions()
+ .Columns({
+ {"key", "Uint32", true, false},
+ {"value", "Uint32", false, false},
+ })
+ .Indexes({
+ TShardedTableOptions::TIndex{
+ "by_value", {"value"}, {}, NKikimrSchemeOp::EIndexTypeGlobalAsync
+ }
+ })
+ );
+
+ runtime.SetObserverFunc([&](TTestActorRuntimeBase&, TAutoPtr<IEventHandle>& ev) {
+ if (ev->GetTypeRewrite() == NDataShard::TEvChangeExchange::EvEnqueueRecords) {
+ return TTestActorRuntime::EEventAction::DROP;
+ }
+
+ return TTestActorRuntime::EEventAction::PROCESS;
+ });
+
+ DoUploadTestRows(server, sender, "/Root/table-1", Ydb::Type::UINT32, Ydb::StatusIds::SUCCESS);
+ DoUploadTestRows(server, sender, "/Root/table-1", Ydb::Type::UINT32, Ydb::StatusIds::OVERLOADED);
+ }
+
}
} // namespace NKikimr
diff --git a/ydb/core/tx/datashard/export_s3_base_uploader.h b/ydb/core/tx/datashard/export_s3_base_uploader.h
index 2c006e4407..4b4e07b2ff 100644
--- a/ydb/core/tx/datashard/export_s3_base_uploader.h
+++ b/ydb/core/tx/datashard/export_s3_base_uploader.h
@@ -310,6 +310,7 @@ protected:
}
if (CanRetry(error)) {
+ UploadId.Clear(); // force getting info after restart
Retry();
} else {
Error = error.GetMessage().c_str();
@@ -330,6 +331,7 @@ protected:
const auto& error = result.GetError();
if (CanRetry(error)) {
+ UploadId.Clear(); // force getting info after restart
Retry();
} else {
Y_VERIFY(Error);
diff --git a/ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp b/ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp
index a56e7b5607..f517bc1520 100644
--- a/ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp
+++ b/ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp
@@ -11,9 +11,12 @@ using namespace Tests;
Y_UNIT_TEST_SUITE(TSequence) {
Y_UNIT_TEST(CreateTableWithDefaultFromSequence) {
TPortManager pm;
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableSequences(true);
TServerSettings serverSettings(pm.GetPort(2134));
serverSettings.SetDomainName("Root")
- .SetUseRealThreads(false);
+ .SetUseRealThreads(false)
+ .SetAppConfig(appConfig);
Tests::TServer::TPtr server = new TServer(serverSettings);
auto &runtime = *server->GetRuntime();
@@ -29,7 +32,7 @@ Y_UNIT_TEST_SUITE(TSequence) {
TShardedTableOptions()
.Sequences(true)
.Columns({
- {"key", "Uint32", true, false, "default", "myseq"},
+ {"key", "Int64", true, false, "default", "myseq"},
{"value", "Uint32", true, false},
}));
@@ -39,13 +42,176 @@ Y_UNIT_TEST_SUITE(TSequence) {
}
{
+ TString result = KqpSimpleExec(runtime, "INSERT INTO `/Root/table-1` (value) VALUES (4), (5), (6);");
+ UNIT_ASSERT_VALUES_EQUAL(result, "<empty>");
+ }
+
+ {
+ TString result = KqpSimpleExec(runtime, "REPLACE INTO `/Root/table-1` (value) VALUES (7), (8), (9);");
+ UNIT_ASSERT_VALUES_EQUAL(result, "<empty>");
+ }
+
+ {
TString result = KqpSimpleExec(runtime, "SELECT * FROM `/Root/table-1`;");
UNIT_ASSERT_VALUES_EQUAL(
result,
- "{ items { uint32_value: 1 } items { uint32_value: 1 } }, "
- "{ items { uint32_value: 2 } items { uint32_value: 2 } }, "
- "{ items { uint32_value: 3 } items { uint32_value: 3 } }");
+ "{ items { int64_value: 1 } items { uint32_value: 1 } }, "
+ "{ items { int64_value: 2 } items { uint32_value: 2 } }, "
+ "{ items { int64_value: 3 } items { uint32_value: 3 } }, "
+ "{ items { int64_value: 4 } items { uint32_value: 4 } }, "
+ "{ items { int64_value: 5 } items { uint32_value: 5 } }, "
+ "{ items { int64_value: 6 } items { uint32_value: 6 } }, "
+ "{ items { int64_value: 7 } items { uint32_value: 7 } }, "
+ "{ items { int64_value: 8 } items { uint32_value: 8 } }, "
+ "{ items { int64_value: 9 } items { uint32_value: 9 } }");
+ }
+ }
+
+ Y_UNIT_TEST(CreateTableWithDefaultFromSequenceFromSelect) {
+ TPortManager pm;
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableSequences(true);
+ TServerSettings serverSettings(pm.GetPort(2134));
+ serverSettings.SetDomainName("Root")
+ .SetUseRealThreads(false)
+ .SetAppConfig(appConfig);
+
+ Tests::TServer::TPtr server = new TServer(serverSettings);
+ auto &runtime = *server->GetRuntime();
+ auto sender = runtime.AllocateEdgeActor();
+
+ // runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+ // runtime.SetLogPriority(NKikimrServices::TX_PROXY, NLog::PRI_DEBUG);
+ runtime.GetAppData().AllowReadTableImmediate = true;
+
+ InitRoot(server, sender);
+
+ CreateShardedTable(server, sender, "/Root", "table-4",
+ TShardedTableOptions()
+ .Sequences(true)
+ .Columns({
+ {"key", "Int64", true, false, "default", "myseq"},
+ {"value", "Uint32", true, false},
+ }));
+
+ {
+ TString result = KqpSimpleExec(runtime, "UPSERT INTO `/Root/table-4` (value) VALUES (303);");
+ UNIT_ASSERT_VALUES_EQUAL(result, "<empty>");
+ }
+
+ {
+ TString result = KqpSimpleExec(runtime, "SELECT key, value FROM `/Root/table-4`;");
+ UNIT_ASSERT_VALUES_EQUAL(
+ result,
+ "{ items { int64_value: 1 } items { uint32_value: 303 } }");
+ }
+
+ {
+ TString result = KqpSimpleExec(runtime, "UPSERT INTO `/Root/table-4` SELECT value FROM `/Root/table-4`;");
+ UNIT_ASSERT_VALUES_EQUAL(result, "<empty>");
+ }
+
+ {
+ TString result = KqpSimpleExec(runtime, "SELECT * FROM `/Root/table-4` ORDER BY key;");
+ UNIT_ASSERT_VALUES_EQUAL(
+ result,
+ "{ items { int64_value: 1 } items { uint32_value: 303 } }, "
+ "{ items { int64_value: 2 } items { uint32_value: 303 } }");
+ }
+
+ {
+ TString result = KqpSimpleExec(runtime, "UPSERT INTO `/Root/table-4` SELECT value FROM `/Root/table-4` where key = 1;");
+ UNIT_ASSERT_VALUES_EQUAL(result, "<empty>");
+ }
+
+ {
+ TString result = KqpSimpleExec(runtime, "SELECT * FROM `/Root/table-4` ORDER BY key;");
+ UNIT_ASSERT_VALUES_EQUAL(
+ result,
+ "{ items { int64_value: 1 } items { uint32_value: 303 } }, "
+ "{ items { int64_value: 2 } items { uint32_value: 303 } }, "
+ "{ items { int64_value: 3 } items { uint32_value: 303 } }");
+ }
+ }
+
+ Y_UNIT_TEST(CreateTableWithDefaultFromSequenceNotEnabled) {
+ TPortManager pm;
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableSequences(false);
+ TServerSettings serverSettings(pm.GetPort(2134));
+ serverSettings.SetDomainName("Root")
+ .SetUseRealThreads(false)
+ .SetAppConfig(appConfig);
+
+ Tests::TServer::TPtr server = new TServer(serverSettings);
+ auto &runtime = *server->GetRuntime();
+ auto sender = runtime.AllocateEdgeActor();
+
+ // runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+ // runtime.SetLogPriority(NKikimrServices::TX_PROXY, NLog::PRI_DEBUG);
+ runtime.GetAppData().AllowReadTableImmediate = true;
+
+ InitRoot(server, sender);
+
+ CreateShardedTable(server, sender, "/Root", "table-2",
+ TShardedTableOptions()
+ .Sequences(true)
+ .Columns({
+ {"key", "Int64", true, false, "default", "myseq"},
+ {"value", "Uint32", true, false},
+ }));
+
+ {
+ TString result = KqpSimpleExec(runtime, "UPSERT INTO `/Root/table-2` (value) VALUES (1), (2), (3);");
+ UNIT_ASSERT_VALUES_EQUAL(result, "ERROR: BAD_REQUEST");
+ }
+ }
+
+ Y_UNIT_TEST(CreateTableWithDefaultFromSequenceBadRequest) {
+ TPortManager pm;
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableSequences(true);
+ TServerSettings serverSettings(pm.GetPort(2134));
+ serverSettings.SetDomainName("Root")
+ .SetUseRealThreads(false)
+ .SetAppConfig(appConfig);
+
+ Tests::TServer::TPtr server = new TServer(serverSettings);
+ auto &runtime = *server->GetRuntime();
+ auto sender = runtime.AllocateEdgeActor();
+
+ // runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+ // runtime.SetLogPriority(NKikimrServices::TX_PROXY, NLog::PRI_DEBUG);
+ runtime.GetAppData().AllowReadTableImmediate = true;
+
+ InitRoot(server, sender);
+
+ CreateShardedTable(server, sender, "/Root", "table-3",
+ TShardedTableOptions()
+ .Sequences(true)
+ .Columns({
+ {"key", "Int64", true, false, "default", "myseq"},
+ {"value", "Uint32", true, false},
+ }));
+
+ {
+ TString result = KqpSimpleExec(
+ runtime,
+ "$to_update = AsList( "
+ " AsStruct(CAST(12 as Uint32) as value)); "
+ "UPDATE `/Root/table-3` ON SELECT * FROM AS_TABLE($to_update)");
+ UNIT_ASSERT_VALUES_EQUAL(result, "ERROR: BAD_REQUEST");
+ }
+
+ {
+ TString result = KqpSimpleExec(
+ runtime,
+ "$to_update = AsList( "
+ " AsStruct(CAST(12 as Uint32) as value)); "
+ "DELETE FROM `/Root/table-3` ON SELECT * FROM AS_TABLE($to_update)");
+ UNIT_ASSERT_VALUES_EQUAL(result, "ERROR: BAD_REQUEST");
}
+
}
} // Y_UNIT_TEST_SUITE(TSequence)
diff --git a/ydb/core/tx/mediator/mediator_impl.cpp b/ydb/core/tx/mediator/mediator_impl.cpp
index c4b202b822..bbf15fbd8d 100644
--- a/ydb/core/tx/mediator/mediator_impl.cpp
+++ b/ydb/core/tx/mediator/mediator_impl.cpp
@@ -305,13 +305,6 @@ void TTxMediator::Handle(TEvMediatorTimecast::TEvWatch::TPtr &ev, const TActorCo
ctx.ExecutorThread.Send(ev->Forward(ExecQueue));
}
-void TTxMediator::Handle(TEvents::TEvPoisonPill::TPtr &ev, const TActorContext &ctx) {
- Y_UNUSED(ev);
- LOG_DEBUG_S(ctx, NKikimrServices::TX_MEDIATOR, "tablet# " << TabletID() << " HANDLE TEvPoisonPill");
- Become(&TThis::StateBroken);
- ctx.Send(Tablet(), new TEvents::TEvPoisonPill);
-}
-
TTxMediator::TTxMediator(TTabletStorageInfo *info, const TActorId &tablet)
: TActor(&TThis::StateInit)
, TTabletExecutedFlat(info, tablet, new NMiniKQL::TMiniKQLFactory)
diff --git a/ydb/core/tx/mediator/mediator_impl.h b/ydb/core/tx/mediator/mediator_impl.h
index c98bd4246b..a44cc7d22d 100644
--- a/ydb/core/tx/mediator/mediator_impl.h
+++ b/ydb/core/tx/mediator/mediator_impl.h
@@ -334,7 +334,6 @@ class TTxMediator : public TActor<TTxMediator>, public NTabletFlatExecutor::TTab
void Handle(TEvTxCoordinator::TEvCoordinatorSync::TPtr &ev, const TActorContext &ctx);
void Handle(TEvTxCoordinator::TEvCoordinatorStep::TPtr &ev, const TActorContext &ctx);
void Handle(TEvMediatorTimecast::TEvWatch::TPtr &ev, const TActorContext &ctx);
- void Handle(TEvents::TEvPoisonPill::TPtr &ev, const TActorContext &ctx);
void DoConfigure(const TEvSubDomain::TEvConfigure &ev, const TActorContext &ctx, const TActorId &ackTo = TActorId());
@@ -389,11 +388,9 @@ public:
TTxMediator(TTabletStorageInfo *info, const TActorId &tablet);
// no incomming pipes is allowed in StateInit
- STFUNC_TABLET_INIT(StateInit,
- HFunc(TEvents::TEvPoisonPill, Handle))
+ STFUNC_TABLET_INIT(StateInit,)
STFUNC_TABLET_DEF(StateSync,
- HFunc(TEvents::TEvPoisonPill, Handle)
HFunc(TEvTxCoordinator::TEvCoordinatorSync, HandleEnqueue)
HFunc(TEvSubDomain::TEvConfigure, Handle)
HFunc(TEvMediatorTimecast::TEvWatch, HandleEnqueue)
@@ -401,7 +398,6 @@ public:
IgnoreFunc(TEvTabletPipe::TEvServerDisconnected))
STFUNC_TABLET_DEF(StateWork,
- HFunc(TEvents::TEvPoisonPill, Handle)
HFunc(TEvSubDomain::TEvConfigure, Handle)
HFunc(TEvTxCoordinator::TEvCoordinatorStep, Handle)
HFunc(TEvTxCoordinator::TEvCoordinatorSync, Handle)
diff --git a/ydb/core/tx/replication/controller/controller.cpp b/ydb/core/tx/replication/controller/controller.cpp
index 8d600042ab..be5ba9abc3 100644
--- a/ydb/core/tx/replication/controller/controller.cpp
+++ b/ydb/core/tx/replication/controller/controller.cpp
@@ -17,11 +17,13 @@ TController::TController(const TActorId& tablet, TTabletStorageInfo* info)
void TController::OnDetach(const TActorContext& ctx) {
CLOG_T(ctx, "OnDetach");
+ Cleanup(ctx);
Die(ctx);
}
void TController::OnTabletDead(TEvTablet::TEvTabletDead::TPtr&, const TActorContext& ctx) {
CLOG_T(ctx, "OnTabletDead");
+ Cleanup(ctx);
Die(ctx);
}
@@ -35,14 +37,6 @@ void TController::DefaultSignalTabletActive(const TActorContext&) {
}
STFUNC(TController::StateInit) {
- switch (ev->GetTypeRewrite()) {
- HFunc(TEvents::TEvPoison, Handle);
- default:
- return StateInitImpl(ev, SelfId());
- }
-}
-
-STFUNC(TController::StateZombie) {
StateInitImpl(ev, SelfId());
}
@@ -61,10 +55,23 @@ STFUNC(TController::StateWork) {
HFunc(TEvPrivate::TEvUpdateTenantNodes, Handle);
HFunc(TEvDiscovery::TEvDiscoveryData, Handle);
HFunc(TEvDiscovery::TEvError, Handle);
- HFunc(TEvents::TEvPoison, Handle);
+ default:
+ HandleDefaultEvents(ev, SelfId());
}
}
+void TController::Cleanup(const TActorContext& ctx) {
+ for (auto& [_, replication] : Replications) {
+ replication->Shutdown(ctx);
+ }
+
+ if (auto actorId = std::exchange(DiscoveryCache, {})) {
+ Send(actorId, new TEvents::TEvPoison());
+ }
+
+ NodesManager.Shutdown(ctx);
+}
+
void TController::SwitchToWork(const TActorContext& ctx) {
CLOG_T(ctx, "SwitchToWork");
@@ -188,23 +195,6 @@ void TController::Handle(TEvDiscovery::TEvError::TPtr& ev, const TActorContext&
NodesManager.ProcessResponse(ev, ctx);
}
-void TController::Handle(TEvents::TEvPoison::TPtr& ev, const TActorContext& ctx) {
- CLOG_T(ctx, "Handle " << ev->Get()->ToString());
-
- for (auto& [_, replication] : Replications) {
- replication->Shutdown(ctx);
- }
-
- if (auto actorId = std::exchange(DiscoveryCache, {})) {
- Send(actorId, new TEvents::TEvPoison());
- }
-
- NodesManager.Shutdown(ctx);
-
- Send(Tablet(), new TEvents::TEvPoison());
- Become(&TThis::StateZombie);
-}
-
TReplication::TPtr TController::Find(ui64 id) {
auto it = Replications.find(id);
if (it == Replications.end()) {
diff --git a/ydb/core/tx/replication/controller/controller_impl.h b/ydb/core/tx/replication/controller/controller_impl.h
index 9e1d15d78b..74cb25a3ff 100644
--- a/ydb/core/tx/replication/controller/controller_impl.h
+++ b/ydb/core/tx/replication/controller/controller_impl.h
@@ -54,9 +54,9 @@ private:
// state functions
STFUNC(StateInit);
- STFUNC(StateZombie);
STFUNC(StateWork);
+ void Cleanup(const TActorContext& ctx);
void SwitchToWork(const TActorContext& ctx);
void Reset();
@@ -74,7 +74,6 @@ private:
void Handle(TEvPrivate::TEvUpdateTenantNodes::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDiscovery::TEvDiscoveryData::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDiscovery::TEvError::TPtr& ev, const TActorContext& ctx);
- void Handle(TEvents::TEvPoison::TPtr& ev, const TActorContext& ctx);
// local transactions
class TTxInitSchema;
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp
index 47eb1b6d9c..53c54f7ba1 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp
@@ -26,7 +26,9 @@ public:
TConfigureParts(TOperationId id)
: OperationId(id)
{
- IgnoreMessages(DebugHint(), {});
+ IgnoreMessages(DebugHint(), {
+ TEvHive::TEvCreateTabletReply::EventType
+ });
}
bool HandleReply(
@@ -132,7 +134,9 @@ public:
TPropose(TOperationId id)
: OperationId(id)
{
- IgnoreMessages(DebugHint(), {});
+ IgnoreMessages(DebugHint(), {
+ TEvHive::TEvCreateTabletReply::EventType
+ });
}
bool HandleReply(
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_create_cdc_stream.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_create_cdc_stream.cpp
index c1f88c1756..26fbd74762 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_create_cdc_stream.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_create_cdc_stream.cpp
@@ -769,6 +769,7 @@ TVector<ISubOperation::TPtr> CreateNewCdcStream(TOperationId opId, const TTxTran
partitionConfig.SetLifetimeSeconds(op.GetRetentionPeriodSeconds());
partitionConfig.SetWriteSpeedInBytesPerSecond(1_MB); // TODO: configurable write speed
partitionConfig.SetBurstSize(1_MB); // TODO: configurable burst
+ partitionConfig.SetMaxCountInPartition(Max<i32>());
for (const auto& tag : table->KeyColumnIds) {
Y_VERIFY(table->Columns.contains(tag));
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_create_external_data_source.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_create_external_data_source.cpp
index c15a012a63..4afcfdacdd 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_create_external_data_source.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_create_external_data_source.cpp
@@ -50,6 +50,7 @@ bool ValidateAuth(const NKikimrSchemeOp::TAuth& auth, TString& errStr) {
errStr = "Authorization method not specified";
return false;
}
+ case NKikimrSchemeOp::TAuth::kServiceAccount:
case NKikimrSchemeOp::TAuth::kNone: {
return true;
}
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_create_external_table.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_create_external_table.cpp
index a2daebc882..077cd36ebe 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_create_external_table.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_create_external_table.cpp
@@ -60,23 +60,6 @@ bool Validate(const TString& sourceType, const NKikimrSchemeOp::TExternalTableDe
&& ValidateDataSourcePath(desc.GetDataSourcePath(), errStr);
}
-bool IsAllowedType(ui32 typeId) {
- if (!NScheme::NTypeIds::IsYqlType(typeId)) {
- return false;
- }
-
- switch (typeId) {
- case NYql::NProto::Bool:
- case NYql::NProto::Interval:
- case NYql::NProto::Decimal:
- case NYql::NProto::DyNumber:
- return false;
- default:
- break;
- }
- return true;
-}
-
Ydb::Type CreateYdbType(const NScheme::TTypeInfo& typeInfo, bool notNull) {
Ydb::Type ydbType;
if (typeInfo.GetTypeId() == NScheme::NTypeIds::Pg) {
@@ -139,12 +122,6 @@ TExternalTableInfo::TPtr CreateExternalTable(const TString& sourceType, const NK
auto typeName = NMiniKQL::AdaptLegacyYqlType(col.GetType());
const NScheme::IType* type = typeRegistry->GetType(typeName);
- if (!type || !IsAllowedType(type->GetTypeId())) {
- errStr = TStringBuilder()
- << "Type '" << col.GetType() << "' specified for column '" << colName << "' is not supported";
- return nullptr;
- }
-
NScheme::TTypeInfo typeInfo;
if (type) {
// Only allow YQL types
diff --git a/ydb/core/tx/schemeshard/schemeshard_impl.cpp b/ydb/core/tx/schemeshard/schemeshard_impl.cpp
index 57a364418e..4814d84a53 100644
--- a/ydb/core/tx/schemeshard/schemeshard_impl.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_impl.cpp
@@ -4201,7 +4201,6 @@ void TSchemeShard::Enqueue(STFUNC_SIG) {
void TSchemeShard::StateInit(STFUNC_SIG) {
TRACE_EVENT(NKikimrServices::FLAT_TX_SCHEMESHARD);
switch (ev->GetTypeRewrite()) {
- HFuncTraced(TEvents::TEvPoisonPill, Handle);
HFuncTraced(TEvents::TEvUndelivered, Handle);
//console configs
@@ -4219,7 +4218,6 @@ void TSchemeShard::StateConfigure(STFUNC_SIG) {
TRACE_EVENT(NKikimrServices::FLAT_TX_SCHEMESHARD);
switch (ev->GetTypeRewrite()) {
- HFuncTraced(TEvents::TEvPoisonPill, Handle);
HFuncTraced(TEvents::TEvUndelivered, Handle);
HFuncTraced(TEvSchemeShard::TEvInitRootShard, Handle);
@@ -4262,7 +4260,6 @@ void TSchemeShard::StateWork(STFUNC_SIG) {
TRACE_EVENT(NKikimrServices::FLAT_TX_SCHEMESHARD);
switch (ev->GetTypeRewrite()) {
- HFuncTraced(TEvents::TEvPoisonPill, Handle);
HFuncTraced(TEvents::TEvUndelivered, Handle);
HFuncTraced(TEvSchemeShard::TEvInitRootShard, Handle);
@@ -5813,11 +5810,6 @@ void TSchemeShard::RestartPipeTx(TTabletId tabletId, const TActorContext& ctx) {
}
}
-void TSchemeShard::Handle(TEvents::TEvPoisonPill::TPtr &ev, const TActorContext &ctx) {
- Y_UNUSED(ev);
- BreakTabletAndRestart(ctx);
-}
-
void TSchemeShard::Handle(NMon::TEvRemoteHttpInfo::TPtr& ev, const TActorContext& ctx) {
RenderHtmlPage(ev, ctx);
}
@@ -6238,6 +6230,10 @@ void TSchemeShard::FillTableDescriptionForShardIdx(
tableDescr->MutableReplicationConfig()->CopyFrom(tinfo->ReplicationConfig());
}
+ if (AppData()->DisableRichTableDescriptionForTest) {
+ return;
+ }
+
// Fill indexes & cdc streams (if any)
for (const auto& child : pinfo->GetChildren()) {
const auto& childName = child.first;
diff --git a/ydb/core/tx/schemeshard/schemeshard_impl.h b/ydb/core/tx/schemeshard/schemeshard_impl.h
index 639da0462f..5f3970d2a8 100644
--- a/ydb/core/tx/schemeshard/schemeshard_impl.h
+++ b/ydb/core/tx/schemeshard/schemeshard_impl.h
@@ -986,7 +986,6 @@ public:
void Handle(TEvTxProcessing::TEvPlanStep::TPtr &ev, const TActorContext &ctx);
void Handle(TEvents::TEvUndelivered::TPtr& ev, const TActorContext& ctx);
- void Handle(TEvents::TEvPoisonPill::TPtr& ev, const TActorContext& ctx);
void Handle(NMon::TEvRemoteHttpInfo::TPtr& ev, const TActorContext& ctx);
void Handle(TEvDataShard::TEvInitSplitMergeDestinationAck::TPtr& ev, const TActorContext& ctx);
diff --git a/ydb/core/tx/schemeshard/schemeshard_utils.cpp b/ydb/core/tx/schemeshard/schemeshard_utils.cpp
index 6b604381c0..ed05fbbd49 100644
--- a/ydb/core/tx/schemeshard/schemeshard_utils.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_utils.cpp
@@ -352,12 +352,15 @@ NKikimrSchemeOp::TTableDescription CalcImplTableDesc(
auto& columnName = column.GetName();
if (implTableColumns.Columns.contains(columnName)) {
auto item = result.AddColumns();
- item->CopyFrom(column);
+ *item = column;
// Indexes don't use column families
item->ClearFamily();
item->ClearFamilyName();
+ // Indexes can't have a default value
+ item->ClearDefaultValue();
+
ui32 order = Max<ui32>();
if (implKeyToImplColumn.contains(columnName)) {
order = implKeyToImplColumn.at(columnName);
diff --git a/ydb/core/tx/schemeshard/ut_export.cpp b/ydb/core/tx/schemeshard/ut_export.cpp
index cc078fc6b1..532a4321b9 100644
--- a/ydb/core/tx/schemeshard/ut_export.cpp
+++ b/ydb/core/tx/schemeshard/ut_export.cpp
@@ -1282,4 +1282,92 @@ partitioning_settings {
ShouldCheckQuotas(TSchemeLimits{.MaxExports = 0}, Ydb::StatusIds::PRECONDITION_FAILED);
ShouldCheckQuotas(TSchemeLimits{.MaxChildrenInDir = 1}, Ydb::StatusIds::CANCELLED);
}
+
+ Y_UNIT_TEST(ShouldRetryAtFinalStage) {
+ TTestBasicRuntime runtime;
+ TTestEnv env(runtime);
+ ui64 txId = 100;
+
+ TestCreateTable(runtime, ++txId, "/MyRoot", R"(
+ Name: "Table"
+ Columns { Name: "key" Type: "Utf8" }
+ Columns { Name: "value" Type: "Utf8" }
+ KeyColumnNames: ["key"]
+ )");
+ env.TestWaitNotification(runtime, txId);
+
+ WriteRow(runtime, TTestTxConfig::FakeHiveTablets, "a", "valueA");
+ WriteRow(runtime, TTestTxConfig::FakeHiveTablets, "b", "valueB");
+ runtime.SetLogPriority(NKikimrServices::DATASHARD_BACKUP, NActors::NLog::PRI_DEBUG);
+
+ TPortManager portManager;
+ const ui16 port = portManager.GetPort();
+
+ TS3Mock s3Mock({}, TS3Mock::TSettings(port));
+ UNIT_ASSERT(s3Mock.Start());
+
+ THolder<IEventHandle> injectResult;
+ auto prevObserver = runtime.SetObserverFunc([&](TTestActorRuntimeBase&, TAutoPtr<IEventHandle>& ev) {
+ switch (ev->GetTypeRewrite()) {
+ case TEvDataShard::EvProposeTransaction: {
+ auto& record = ev->Get<TEvDataShard::TEvProposeTransaction>()->Record;
+ if (record.GetTxKind() != NKikimrTxDataShard::ETransactionKind::TX_KIND_SCHEME) {
+ return TTestActorRuntime::EEventAction::PROCESS;
+ }
+
+ NKikimrTxDataShard::TFlatSchemeTransaction schemeTx;
+ UNIT_ASSERT(schemeTx.ParseFromString(record.GetTxBody()));
+
+ if (schemeTx.HasBackup()) {
+ schemeTx.MutableBackup()->MutableScanSettings()->SetRowsBatchSize(1);
+ record.SetTxBody(schemeTx.SerializeAsString());
+ }
+
+ return TTestActorRuntime::EEventAction::PROCESS;
+ }
+
+ case NWrappers::NExternalStorage::EvCompleteMultipartUploadResponse: {
+ auto response = MakeHolder<NWrappers::NExternalStorage::TEvCompleteMultipartUploadResponse>(
+ std::nullopt,
+ Aws::Utils::Outcome<Aws::S3::Model::CompleteMultipartUploadResult, Aws::S3::S3Error>(
+ Aws::Client::AWSError<Aws::S3::S3Errors>(Aws::S3::S3Errors::SLOW_DOWN, true)
+ )
+ );
+ injectResult = MakeHolder<IEventHandle>(ev->Recipient, ev->Sender, response.Release(), ev->Flags, ev->Cookie);
+ return TTestActorRuntime::EEventAction::DROP;
+ }
+
+ default: {
+ return TTestActorRuntime::EEventAction::PROCESS;
+ }
+ }
+ });
+
+ const auto exportId = ++txId;
+ TestExport(runtime, txId, "/MyRoot", Sprintf(R"(
+ ExportToS3Settings {
+ endpoint: "localhost:%d"
+ scheme: HTTP
+ number_of_retries: 10
+ items {
+ source_path: "/MyRoot/Table"
+ destination_prefix: ""
+ }
+ }
+ )", port));
+
+ if (!injectResult) {
+ TDispatchOptions opts;
+ opts.FinalEvents.emplace_back([&injectResult](IEventHandle&) -> bool {
+ return bool(injectResult);
+ });
+ runtime.DispatchEvents(opts);
+ }
+
+ runtime.SetObserverFunc(prevObserver);
+ runtime.Send(injectResult.Release(), 0, true);
+
+ env.TestWaitNotification(runtime, exportId);
+ TestGetExport(runtime, exportId, "/MyRoot");
+ }
}
diff --git a/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp b/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp
index f9bb758bbc..6770dfbb61 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp
+++ b/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp
@@ -33,14 +33,13 @@ public:
, TTabletExecutedFlat(info, tablet, new NMiniKQL::TMiniKQLFactory)
{}
+ void DefaultSignalTabletActive(const TActorContext&) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext& ctx) override {
Become(&TThis::StateWork);
-
- while (!InitialEventsQueue.empty()) {
- TAutoPtr<IEventHandle>& ev = InitialEventsQueue.front();
- ctx.ExecutorThread.Send(ev.Release());
- InitialEventsQueue.pop_front();
- }
+ SignalTabletActive(ctx);
}
void OnDetach(const TActorContext& ctx) override {
@@ -52,25 +51,15 @@ public:
Die(ctx);
}
- void Enqueue(STFUNC_SIG) override {
- InitialEventsQueue.push_back(ev);
- }
-
STFUNC(StateInit) {
StateInitImpl(ev, SelfId());
}
STFUNC(StateWork) {
switch (ev->GetTypeRewrite()) {
- HFunc(TEvTablet::TEvTabletDead, HandleTabletDead);
HFunc(TEvBlockStore::TEvUpdateVolumeConfig, Handle);
- HFunc(TEvents::TEvPoisonPill, Handle);
- }
- }
-
- STFUNC(StateBroken) {
- switch (ev->GetTypeRewrite()) {
- HFunc(TEvTablet::TEvTabletDead, HandleTabletDead);
+ default:
+ HandleDefaultEvents(ev, SelfId());
}
}
@@ -84,15 +73,6 @@ private:
response->Record.SetStatus(NKikimrBlockStore::OK);
ctx.Send(ev->Sender, response.Release());
}
-
- void Handle(TEvents::TEvPoisonPill::TPtr& ev, const TActorContext& ctx) {
- Y_UNUSED(ev);
- Become(&TThis::StateBroken);
- ctx.Send(Tablet(), new TEvents::TEvPoisonPill());
- }
-
-private:
- TDeque<TAutoPtr<IEventHandle>> InitialEventsQueue;
};
class TFakeFileStore : public TActor<TFakeFileStore>, public NTabletFlatExecutor::TTabletExecutedFlat {
@@ -102,14 +82,13 @@ public:
, TTabletExecutedFlat(info, tablet, new NMiniKQL::TMiniKQLFactory)
{}
+ void DefaultSignalTabletActive(const TActorContext&) override {
+ // must be empty
+ }
+
void OnActivateExecutor(const TActorContext& ctx) override {
Become(&TThis::StateWork);
-
- while (!InitialEventsQueue.empty()) {
- TAutoPtr<IEventHandle>& ev = InitialEventsQueue.front();
- ctx.ExecutorThread.Send(ev.Release());
- InitialEventsQueue.pop_front();
- }
+ SignalTabletActive(ctx);
}
void OnDetach(const TActorContext& ctx) override {
@@ -121,25 +100,15 @@ public:
Die(ctx);
}
- void Enqueue(STFUNC_SIG) override {
- InitialEventsQueue.push_back(ev);
- }
-
STFUNC(StateInit) {
StateInitImpl(ev, SelfId());
}
STFUNC(StateWork) {
switch (ev->GetTypeRewrite()) {
- HFunc(TEvTablet::TEvTabletDead, HandleTabletDead);
HFunc(TEvFileStore::TEvUpdateConfig, Handle);
- HFunc(TEvents::TEvPoisonPill, Handle);
- }
- }
-
- STFUNC(StateBroken) {
- switch (ev->GetTypeRewrite()) {
- HFunc(TEvTablet::TEvTabletDead, HandleTabletDead);
+ default:
+ HandleDefaultEvents(ev, SelfId());
}
}
@@ -153,15 +122,6 @@ private:
response->Record.SetStatus(NKikimrFileStore::OK);
ctx.Send(ev->Sender, response.Release());
}
-
- void Handle(TEvents::TEvPoisonPill::TPtr& ev, const TActorContext& ctx) {
- Y_UNUSED(ev);
- Become(&TThis::StateBroken);
- ctx.Send(Tablet(), new TEvents::TEvPoisonPill());
- }
-
-private:
- TDeque<TAutoPtr<IEventHandle>> InitialEventsQueue;
};
class TFakeConfigDispatcher : public TActor<TFakeConfigDispatcher> {
diff --git a/ydb/core/tx/schemeshard/ut_move.cpp b/ydb/core/tx/schemeshard/ut_move.cpp
index 19dc9f139e..70c976fe01 100644
--- a/ydb/core/tx/schemeshard/ut_move.cpp
+++ b/ydb/core/tx/schemeshard/ut_move.cpp
@@ -1166,4 +1166,29 @@ Y_UNIT_TEST_SUITE(TSchemeShardMoveTest) {
NLs::PathVersionEqual(5),
NLs::CheckColumns("TableMove", {"key", "value"}, {}, {"key"})});
}
+
+ Y_UNIT_TEST(MoveOldTableWithIndex) {
+ TTestBasicRuntime runtime;
+ TTestEnv env(runtime);
+ ui64 txId = 100;
+
+ runtime.GetAppData().DisableRichTableDescriptionForTest = true;
+
+ TestCreateIndexedTable(runtime, ++txId, "/MyRoot", R"(
+ TableDescription {
+ Name: "Table"
+ Columns { Name: "key" Type: "Uint64" }
+ Columns { Name: "value" Type: "Utf8" }
+ KeyColumnNames: ["key"]
+ }
+ IndexDescription {
+ Name: "ByValue"
+ KeyColumnNames: ["value"]
+ }
+ )");
+ env.TestWaitNotification(runtime, txId);
+
+ TestMoveTable(runtime, ++txId, "/MyRoot/Table", "/MyRoot/TableMove");
+ env.TestWaitNotification(runtime, txId);
+ }
}
diff --git a/ydb/core/tx/schemeshard/ut_sequence.cpp b/ydb/core/tx/schemeshard/ut_sequence.cpp
index 5997244e6b..2056b24ff8 100644
--- a/ydb/core/tx/schemeshard/ut_sequence.cpp
+++ b/ydb/core/tx/schemeshard/ut_sequence.cpp
@@ -302,4 +302,38 @@ Y_UNIT_TEST_SUITE(TSequence) {
TestLs(runtime, "/MyRoot/Table", false, NLs::PathNotExist);
}
+ Y_UNIT_TEST(CreateTableWithDefaultFromSequenceAndIndex) {
+ TTestBasicRuntime runtime;
+ TTestEnv env(runtime);
+ ui64 txId = 100;
+
+ runtime.SetLogPriority(NKikimrServices::FLAT_TX_SCHEMESHARD, NActors::NLog::PRI_TRACE);
+ runtime.SetLogPriority(NKikimrServices::SEQUENCESHARD, NActors::NLog::PRI_TRACE);
+
+ TestCreateIndexedTable(runtime, ++txId, "/MyRoot", R"(
+ TableDescription {
+ Name: "Table"
+ Columns { Name: "key" Type: "Uint64" DefaultFromSequence: "myseq" }
+ Columns { Name: "value" Type: "Utf8" }
+ KeyColumnNames: ["key"]
+ }
+ IndexDescription {
+ Name: "ValueIndex"
+ KeyColumnNames: ["value"]
+ }
+ SequenceDescription {
+ Name: "myseq"
+ }
+ )");
+ env.TestWaitNotification(runtime, txId);
+
+ TestLs(runtime, "/MyRoot/Table/ValueIndex", TDescribeOptionsBuilder().SetShowPrivateTable(true), NLs::PathExist);
+ TestLs(runtime, "/MyRoot/Table/myseq", TDescribeOptionsBuilder().SetShowPrivateTable(true), NLs::PathExist);
+
+ TestDropTable(runtime, ++txId, "/MyRoot", "Table");
+ env.TestWaitNotification(runtime, txId);
+
+ TestLs(runtime, "/MyRoot/Table", false, NLs::PathNotExist);
+ }
+
} // Y_UNIT_TEST_SUITE(TSequence)
diff --git a/ydb/core/tx/sequenceshard/sequenceshard_impl.cpp b/ydb/core/tx/sequenceshard/sequenceshard_impl.cpp
index 476cb31531..d28667ddcb 100644
--- a/ydb/core/tx/sequenceshard/sequenceshard_impl.cpp
+++ b/ydb/core/tx/sequenceshard/sequenceshard_impl.cpp
@@ -75,23 +75,11 @@ namespace NSequenceShard {
}
STFUNC(TSequenceShard::StateInit) {
- switch (ev->GetTypeRewrite()) {
- hFunc(TEvents::TEvPoison, Handle);
-
- default:
- StateInitImpl(ev, SelfId());
- break;
- }
- }
-
- STFUNC(TSequenceShard::StateZombie) {
StateInitImpl(ev, SelfId());
}
STFUNC(TSequenceShard::StateWork) {
switch (ev->GetTypeRewrite()) {
- hFunc(TEvents::TEvPoison, Handle);
-
hFunc(TEvTabletPipe::TEvServerConnected, Handle);
hFunc(TEvTabletPipe::TEvServerDisconnected, Handle);
@@ -117,11 +105,6 @@ namespace NSequenceShard {
Become(&TThis::StateWork);
}
- void TSequenceShard::Handle(TEvents::TEvPoison::TPtr&) {
- Send(Tablet(), new TEvents::TEvPoison());
- Become(&TThis::StateZombie);
- }
-
void TSequenceShard::Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev) {
auto* msg = ev->Get();
Y_VERIFY_DEBUG(!PipeInfos.contains(msg->ServerId), "Unexpected duplicate pipe server");
diff --git a/ydb/core/tx/sequenceshard/sequenceshard_impl.h b/ydb/core/tx/sequenceshard/sequenceshard_impl.h
index cd216d9a91..c1da07235f 100644
--- a/ydb/core/tx/sequenceshard/sequenceshard_impl.h
+++ b/ydb/core/tx/sequenceshard/sequenceshard_impl.h
@@ -85,12 +85,10 @@ namespace NSequenceShard {
private:
STFUNC(StateInit);
- STFUNC(StateZombie);
STFUNC(StateWork);
void SwitchToWork(const TActorContext& ctx);
- void Handle(TEvents::TEvPoison::TPtr& ev);
void Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev);
void Handle(TEvTabletPipe::TEvServerDisconnected::TPtr& ev);
void Handle(TEvSequenceShard::TEvMarkSchemeShardPipe::TPtr& ev, const TActorContext& ctx);
diff --git a/ydb/core/tx/tiering/s3_actor.cpp b/ydb/core/tx/tiering/s3_actor.cpp
index 19e1524820..4cd60432fa 100644
--- a/ydb/core/tx/tiering/s3_actor.cpp
+++ b/ydb/core/tx/tiering/s3_actor.cpp
@@ -7,6 +7,9 @@
#include <ydb/core/protos/flat_scheme_op.pb.h>
#include <ydb/core/wrappers/s3_wrapper.h>
+#include <ydb/core/wrappers/s3_storage_config.h>
+
+#include <contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/threading/Executor.h>
namespace NKikimr::NColumnShard {
@@ -117,6 +120,11 @@ public:
}
ExternalStorageConfig = NWrappers::IExternalStorageConfig::Construct(msg.Settings);
+ if (auto* s3Config = dynamic_cast<NWrappers::NExternalStorage::TS3ExternalStorageConfig*>(ExternalStorageConfig.get())) {
+ static constexpr ui32 MAX_THREADS = 10;
+ Aws::Client::ClientConfiguration& awsConfig = s3Config->ConfigRef();
+ awsConfig.executor = Aws::MakeShared<Aws::Utils::Threading::PooledThreadExecutor>("cs-s3", MAX_THREADS);
+ }
if (ExternalStorageActorId) {
Send(ExternalStorageActorId, new TEvents::TEvPoisonPill);
ExternalStorageActorId = {};
@@ -181,9 +189,13 @@ public:
std::vector<NOlap::TEvictedBlob> newEvicted;
newEvicted.reserve(eventEvicted.size());
- for (auto&& evict : forget.Event->Evicted) {
+ static constexpr ui32 DELETE_PORTION = 1000;
+ std::vector<TString> keys;
+ keys.reserve(DELETE_PORTION);
+
+ for (auto&& evict : eventEvicted) {
if (!evict.ExternBlob.IsS3Blob()) {
- LOG_S_ERROR("[S3] Forget not exported '" << evict.Blob.ToStringNew() << "' at tablet " << TabletId);
+ LOG_S_ERROR("[S3] Forget not exported '" << evict.Blob << "' at tablet " << TabletId);
continue;
}
@@ -198,7 +210,15 @@ public:
ForgettingKeys[key] = forgetNo;
}
- SendDeleteObject(key);
+ keys.push_back(key);
+ if (keys.size() == DELETE_PORTION) {
+ SendDeleteObjects(keys);
+ keys.clear();
+ }
+ }
+ if (keys.size()) {
+ SendDeleteObjects(keys);
+ keys.clear();
}
eventEvicted.swap(newEvicted);
@@ -211,7 +231,7 @@ public:
void Handle(TEvPrivate::TEvGetExported::TPtr& ev) {
auto& evict = ev->Get()->Evicted;
if (!evict.ExternBlob.IsS3Blob()) {
- LOG_S_ERROR("[S3] Get not exported '" << evict.Blob.ToStringNew() << "' at tablet " << TabletId);
+ LOG_S_ERROR("[S3] Get not exported '" << evict.Blob << "' at tablet " << TabletId);
return;
}
@@ -281,10 +301,9 @@ public:
const auto& resultOutcome = msg.Result;
if (!resultOutcome.IsSuccess()) {
- KeyFinished(context->GetKey(), true, LogError("CheckObjectExistsResponse", resultOutcome.GetError(), context->GetKey()));
- } else if (!msg.IsExists()) {
SendPutObject(context->GetKey(), std::move(context->DetachData()));
} else {
+ // TODO: check CRC
KeyFinished(context->GetKey(), false, "");
}
}
@@ -295,7 +314,7 @@ public:
auto& msg = *ev->Get();
const auto& resultOutcome = msg.Result;
- TString errStr;
+ std::optional<TString> errStr;
if (!resultOutcome.IsSuccess()) {
errStr = LogError("DeleteObjectResponse", resultOutcome.GetError(), msg.Key);
}
@@ -305,12 +324,12 @@ public:
return;
}
- TString key = *msg.Key;
-
- LOG_S_DEBUG("[S3] DeleteObjectResponse '" << key << "' at tablet " << TabletId);
+ ForgetObject(*msg.Key, errStr);
+ }
+ void ForgetObject(const TString& key, const std::optional<TString>& errStr) {
if (!ForgettingKeys.count(key)) {
- LOG_S_INFO("[S3] DeleteObjectResponse for unknown key '" << key << "' at tablet " << TabletId);
+ LOG_S_INFO("[S3] DeleteObject(s)Response for unknown key '" << key << "' at tablet " << TabletId);
return;
}
@@ -318,16 +337,19 @@ public:
ForgettingKeys.erase(key);
if (!Forgets.count(forgetNo)) {
- LOG_S_INFO("[S3] DeleteObjectResponse for unknown forget with key '" << key << "' at tablet " << TabletId);
+ LOG_S_INFO("[S3] DeleteObject(s)Response for unknown forget with key '" << key << "' at tablet " << TabletId);
return;
}
+ LOG_S_NOTICE("[S3] DeleteObject(s)Response '" << key << "' "
+ << (errStr ? *errStr : "OK") << " at tablet " << TabletId);
+
auto& forget = Forgets[forgetNo];
forget.KeysToDelete.erase(key);
- if (!errStr.empty()) {
+ if (errStr) {
forget.Event->Status = NKikimrProto::ERROR;
- forget.Event->ErrorStr = errStr;
+ forget.Event->ErrorStr = *errStr;
Send(ShardActor, forget.Event.release());
Forgets.erase(forgetNo);
} else if (forget.KeysToDelete.empty()) {
@@ -337,6 +359,28 @@ public:
}
}
+ void Handle(TEvExternalStorage::TEvDeleteObjectsResponse::TPtr& ev) {
+ Y_VERIFY(Initialized());
+
+ auto& msg = *ev->Get();
+ const auto& resultOutcome = msg.Result;
+ const auto& objsDeleted = resultOutcome.GetResult().GetDeleted();
+
+ std::optional<TString> errStr;
+ if (!resultOutcome.IsSuccess()) {
+ errStr = LogError("DeleteObjectsResponse", resultOutcome.GetError(), objsDeleted);
+ }
+
+ if (objsDeleted.empty()) {
+ LOG_S_ERROR("[S3] no keys in DeleteObjectsResponse at tablet " << TabletId);
+ return;
+ }
+
+ for (const auto& obj : objsDeleted) {
+ ForgetObject(TString(obj.GetKey()), errStr);
+ }
+ }
+
void Handle(TEvExternalStorage::TEvGetObjectResponse::TPtr& ev) {
Y_VERIFY(Initialized());
@@ -410,9 +454,10 @@ public:
LOG_S_DEBUG("[S3] KeyFinished for key '" << key << "' at tablet " << TabletId);
auto& ex = it->second;
- TUnifiedBlobId blobId = ex.FinishKey(key);
-
- ex.Event->AddResult(blobId, key, hasError, errStr);
+ if (ex.IsNotFinished(key)) {
+ TUnifiedBlobId blobId = ex.FinishKey(key);
+ ex.Event->AddResult(blobId, key, hasError, errStr);
+ }
if (ex.ExtractionFinished()) {
for (auto& [blobId, _] : ex.Blobs()) {
@@ -447,6 +492,7 @@ private:
cFunc(TEvents::TEvPoisonPill::EventType, PassAway);
hFunc(TEvExternalStorage::TEvPutObjectResponse, Handle);
hFunc(TEvExternalStorage::TEvDeleteObjectResponse, Handle);
+ hFunc(TEvExternalStorage::TEvDeleteObjectsResponse, Handle);
hFunc(TEvExternalStorage::TEvGetObjectResponse, Handle);
hFunc(TEvExternalStorage::TEvCheckObjectExistsResponse, Handle);
@@ -483,10 +529,10 @@ private:
}
void SendPutObjectIfNotExists(const TString& key, TString&& data) {
- auto request = Aws::S3::Model::ListObjectsRequest()
- .WithPrefix(key);
+ auto request = Aws::S3::Model::HeadObjectRequest()
+ .WithKey(key);
- LOG_S_DEBUG("[S3] PutObjectIfNotExists->ListObjectsRequest key '" << key << "' at tablet " << TabletId);
+ LOG_S_DEBUG("[S3] PutObjectIfNotExists->HeadObjectRequest key '" << key << "' at tablet " << TabletId);
std::shared_ptr<TEvCheckObjectExistsRequestContext> context = std::make_shared<TEvCheckObjectExistsRequestContext>(key, std::move(data));
Send(ExternalStorageActorId, new TEvExternalStorage::TEvCheckObjectExistsRequest(request, context));
}
@@ -516,18 +562,50 @@ private:
Send(ExternalStorageActorId, new TEvExternalStorage::TEvDeleteObjectRequest(request));
}
+ void SendDeleteObjects(const std::vector<TString>& keys) const {
+ Aws::Vector<Aws::S3::Model::ObjectIdentifier> awsKeys;
+ awsKeys.reserve(keys.size());
+ for (const auto& key : keys) {
+ awsKeys.emplace_back(Aws::S3::Model::ObjectIdentifier().WithKey(key));
+ }
+ Y_VERIFY(awsKeys.size());
+
+ auto request = Aws::S3::Model::DeleteObjectsRequest()
+ .WithDelete(Aws::S3::Model::Delete().WithObjects(std::move(awsKeys)));
+
+ Send(ExternalStorageActorId, new TEvExternalStorage::TEvDeleteObjectsRequest(request));
+ }
+
TString LogError(const TString& responseType, const Aws::S3::S3Error& error,
const std::optional<TString>& key) const {
- TString errStr = TString(error.GetExceptionName()) + " " + error.GetMessage();
+ TString errStr = /*TString(error.GetExceptionName()) + " " +*/ TString(error.GetMessage());
- LOG_S_NOTICE("[S3] Error in " << responseType << " for key '" << (key ? *key : TString())
- << "' at tablet " << TabletId << ": " << errStr);
+ LOG_S_NOTICE("[S3] Error in " << responseType << " for key '" << (key ? *key : TString()) << ": " << errStr
+ << "' at tablet " << TabletId);
if (errStr.empty() && !key) {
errStr = responseType + " with no key";
}
return errStr;
}
+
+ TString LogError(const TString& responseType, const Aws::S3::S3Error& error,
+ const Aws::Vector<Aws::S3::Model::DeletedObject>& objs) const {
+ TString errStr = /*TString(error.GetExceptionName()) + " " +*/ TString(error.GetMessage());
+
+ LOG_S_NOTICE("[S3] Error in " << responseType << " for " << ToString(objs) << ": " << errStr
+ << " at tablet " << TabletId);
+ return errStr;
+ }
+
+ static TString ToString(const Aws::Vector<Aws::S3::Model::DeletedObject>& objs) {
+ TStringBuilder ss;
+ ss << "keys";
+ for (auto& obj : objs) {
+ ss << " '" << obj.GetKey() << "'";
+ }
+ return ss;
+ }
};
IActor* CreateS3Actor(ui64 tabletId, const TActorId& parent, const TString& tierName) {
diff --git a/ydb/core/tx/tx_allocator/txallocator_impl.cpp b/ydb/core/tx/tx_allocator/txallocator_impl.cpp
index a4940b8f35..63eb70982f 100644
--- a/ydb/core/tx/tx_allocator/txallocator_impl.cpp
+++ b/ydb/core/tx/tx_allocator/txallocator_impl.cpp
@@ -50,14 +50,6 @@ void TTxAllocator::InitCounters(const TActorContext &ctx) {
MonCounters.AllocationsPresence = MonCounters.AllocatorCounters->GetCounter("AllocationPresence", true);
}
-void TTxAllocator::Handle(TEvents::TEvPoisonPill::TPtr &ev, const TActorContext &ctx) {
- Y_UNUSED(ev);
- LOG_DEBUG_S(ctx, NKikimrServices::TX_ALLOCATOR, "tablet# " << TabletID() << " HANDLE TEvPoisonPill Sender# " << ev->Sender.ToString());
-
- Become(&TThis::StateBroken);
- ctx.Send(Tablet(), new TEvents::TEvPoisonPill);
-}
-
void TTxAllocator::Handle(TEvTxAllocator::TEvAllocate::TPtr &ev, const TActorContext &ctx) {
MonCounters.AllocationsPresence->Inc();
diff --git a/ydb/core/tx/tx_allocator/txallocator_impl.h b/ydb/core/tx/tx_allocator/txallocator_impl.h
index b04a495824..a4d3850f5c 100644
--- a/ydb/core/tx/tx_allocator/txallocator_impl.h
+++ b/ydb/core/tx/tx_allocator/txallocator_impl.h
@@ -50,7 +50,6 @@ private:
void ReplyImposible(const TEvTxAllocator::TEvAllocate::TPtr &ev, const TActorContext &ctx);
void Handle(TEvTxAllocator::TEvAllocate::TPtr &ev, const TActorContext &ctx);
- void Handle(TEvents::TEvPoisonPill::TPtr &ev, const TActorContext &ctx);
public:
struct Schema : NIceDb::Schema {
@@ -96,7 +95,6 @@ public:
STFUNC(StateWork) {
switch (ev->GetTypeRewrite()) {
HFunc(TEvTxAllocator::TEvAllocate, Handle);
- HFunc(TEvents::TEvPoisonPill, Handle);
IgnoreFunc(TEvTabletPipe::TEvServerConnected);
IgnoreFunc(TEvTabletPipe::TEvServerDisconnected);
default:
@@ -109,16 +107,6 @@ public:
}
}
}
-
- STFUNC(StateBroken) {
- if (!HandleDefaultEvents(ev, SelfId())) {
- ALOG_ERROR(NKikimrServices::TX_ALLOCATOR,
- "tablet# " << TabletID() <<
- " IGNORING message type# " << ev->GetTypeRewrite() <<
- " from Sender# " << ev->Sender.ToString() <<
- " at StateBroken");
- }
- }
};
}
}
diff --git a/ydb/core/tx/tx_proxy/upload_rows_common_impl.h b/ydb/core/tx/tx_proxy/upload_rows_common_impl.h
index 55eccdba19..394b87fc2b 100644
--- a/ydb/core/tx/tx_proxy/upload_rows_common_impl.h
+++ b/ydb/core/tx/tx_proxy/upload_rows_common_impl.h
@@ -1028,9 +1028,11 @@ private:
switch (shardResponse.GetStatus()) {
case NKikimrTxDataShard::TError::WRONG_SHARD_STATE:
+ case NKikimrTxDataShard::TError::SHARD_IS_BLOCKED:
ctx.Send(SchemeCache, new TEvTxProxySchemeCache::TEvInvalidateTable(GetKeyRange()->TableId, TActorId()));
status = Ydb::StatusIds::OVERLOADED;
break;
+ case NKikimrTxDataShard::TError::DISK_SPACE_EXHAUSTED:
case NKikimrTxDataShard::TError::OUT_OF_SPACE:
status = Ydb::StatusIds::UNAVAILABLE;
break;
diff --git a/ydb/core/util/cache_cache.h b/ydb/core/util/cache_cache.h
index d94d281b42..2c4fa105a6 100644
--- a/ydb/core/util/cache_cache.h
+++ b/ydb/core/util/cache_cache.h
@@ -80,22 +80,24 @@ public:
, WarmWeight(0)
{}
- // returns evicted elements as list
- TIntrusiveList<TItem> EnsureLimits() {
- TIntrusiveList<TItem> evictedList;
- LimitFresh(evictedList);
- LimitWarm(evictedList);
- LimitStaging(evictedList);
+ TItem* EvictNext() {
+ TItem* ret = nullptr;
- // Note: levels may be rearranged even if nothing was evicted
- if (Config.ReportedFresh)
- *Config.ReportedFresh = FreshWeight;
- if (Config.ReportedWarm)
- *Config.ReportedWarm = WarmWeight;
- if (Config.ReportedStaging)
- *Config.ReportedStaging = StagingWeight;
+ if (!StagingList.Empty()) {
+ ret = EvictNext(StagingList, StagingWeight);
+ if (Config.ReportedStaging)
+ *Config.ReportedStaging = StagingWeight;
+ } else if (!FreshList.Empty()) {
+ ret = EvictNext(FreshList, FreshWeight);
+ if (Config.ReportedFresh)
+ *Config.ReportedFresh = FreshWeight;
+ } else if (!WarmList.Empty()) {
+ ret = EvictNext(WarmList, WarmWeight);
+ if (Config.ReportedWarm)
+ *Config.ReportedWarm = WarmWeight;
+ }
- return evictedList;
+ return ret;
}
// returns evicted elements as list
@@ -264,6 +266,16 @@ private:
}
}
+ TItem* EvictNext(TIntrusiveList<TItem>& list, ui64& weight) {
+ Y_VERIFY_DEBUG(!list.Empty());
+
+ TItem *evicted = list.PopBack();
+ Unlink(evicted, weight);
+ GenerationOp.Set(evicted, TCacheCacheConfig::CacheGenEvicted);
+
+ return evicted;
+ }
+
private:
TCacheCacheConfig Config;
diff --git a/ydb/core/util/cache_cache_ut.cpp b/ydb/core/util/cache_cache_ut.cpp
index 4efd16bc5b..1e4f5a84a7 100644
--- a/ydb/core/util/cache_cache_ut.cpp
+++ b/ydb/core/util/cache_cache_ut.cpp
@@ -64,16 +64,63 @@ Y_UNIT_TEST_SUITE(TCacheCacheTest) {
UNIT_ASSERT_VALUES_EQUAL(staging->Val(), 1ULL);
UNIT_ASSERT_VALUES_EQUAL(warm->Val(), 1ULL);
UNIT_ASSERT(evicted.Empty());
+ }
+
+ Y_UNIT_TEST(EvictNext) {
+ TCacheCacheConfig::TCounterPtr fresh = new NMonitoring::TCounterForPtr;
+ TCacheCacheConfig::TCounterPtr staging = new NMonitoring::TCounterForPtr;
+ TCacheCacheConfig::TCounterPtr warm = new NMonitoring::TCounterForPtr;
+
+ // 2 pages per layer
+ TCacheCacheConfig config(3, fresh, staging, warm);
+ TCacheCache<TPage, TCacheCacheConfig::TDefaultWeight<TPage>, TCacheCacheConfig::TDefaultGeneration<TPage>> cache(config);
+
+ TVector<TPage> pages(6);
+
+ cache.Touch(&pages[0]);
+ cache.Touch(&pages[1]);
+ cache.Touch(&pages[2]);
+ cache.Touch(&pages[3]);
+ cache.Touch(&pages[0]);
+ cache.Touch(&pages[1]);
+ cache.Touch(&pages[4]);
+ cache.Touch(&pages[5]);
+ UNIT_ASSERT(pages[0].CacheGeneration == TCacheCacheConfig::CacheGenWarm);
+ UNIT_ASSERT(pages[1].CacheGeneration == TCacheCacheConfig::CacheGenWarm);
+ UNIT_ASSERT(pages[2].CacheGeneration == TCacheCacheConfig::CacheGenStaging);
+ UNIT_ASSERT(pages[3].CacheGeneration == TCacheCacheConfig::CacheGenStaging);
+ UNIT_ASSERT(pages[4].CacheGeneration == TCacheCacheConfig::CacheGenFresh);
+ UNIT_ASSERT(pages[5].CacheGeneration == TCacheCacheConfig::CacheGenFresh);
+ UNIT_ASSERT_VALUES_EQUAL(fresh->Val(), 2ULL);
+ UNIT_ASSERT_VALUES_EQUAL(warm->Val(), 2ULL);
+ UNIT_ASSERT_VALUES_EQUAL(staging->Val(), 2ULL);
+
+ UNIT_ASSERT_VALUES_EQUAL(cache.EvictNext(), &pages[2]);
+ UNIT_ASSERT(pages[2].CacheGeneration == TCacheCacheConfig::CacheGenEvicted);
+ UNIT_ASSERT_VALUES_EQUAL(staging->Val(), 1ULL);
- // note: cache eviction is unintuitive at the moment
- // all levels are above their limits so EnsureLimits will evict everything
- evicted = cache.EnsureLimits();
- UNIT_ASSERT(!evicted.Empty());
+ UNIT_ASSERT_VALUES_EQUAL(cache.EvictNext(), &pages[3]);
+ UNIT_ASSERT(pages[3].CacheGeneration == TCacheCacheConfig::CacheGenEvicted);
+ UNIT_ASSERT_VALUES_EQUAL(staging->Val(), 0ULL);
+
+ UNIT_ASSERT_VALUES_EQUAL(cache.EvictNext(), &pages[4]);
+ UNIT_ASSERT(pages[4].CacheGeneration == TCacheCacheConfig::CacheGenEvicted);
+ UNIT_ASSERT_VALUES_EQUAL(fresh->Val(), 1ULL);
+
+ UNIT_ASSERT_VALUES_EQUAL(cache.EvictNext(), &pages[5]);
+ UNIT_ASSERT(pages[5].CacheGeneration == TCacheCacheConfig::CacheGenEvicted);
+ UNIT_ASSERT_VALUES_EQUAL(fresh->Val(), 0ULL);
+
+ UNIT_ASSERT_VALUES_EQUAL(cache.EvictNext(), &pages[0]);
UNIT_ASSERT(pages[0].CacheGeneration == TCacheCacheConfig::CacheGenEvicted);
+ UNIT_ASSERT_VALUES_EQUAL(warm->Val(), 1ULL);
+
+ UNIT_ASSERT_VALUES_EQUAL(cache.EvictNext(), &pages[1]);
UNIT_ASSERT(pages[1].CacheGeneration == TCacheCacheConfig::CacheGenEvicted);
- UNIT_ASSERT(pages[2].CacheGeneration == TCacheCacheConfig::CacheGenEvicted);
- }
+ UNIT_ASSERT_VALUES_EQUAL(warm->Val(), 0ULL);
+ UNIT_ASSERT_VALUES_EQUAL(cache.EvictNext(), nullptr);
+ }
}
} // namespace NKikimr
diff --git a/ydb/core/util/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/util/ut/CMakeLists.darwin-x86_64.txt
index 1cd04b6ee5..56e0a5b69f 100644
--- a/ydb/core/util/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/util/ut/CMakeLists.darwin-x86_64.txt
@@ -56,7 +56,6 @@ target_sources(ydb-core-util-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/util/queue_oneone_inplace_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/simple_cache_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/stlog_ut.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/util/time_series_vec_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/token_bucket_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/ui64id_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/ulid_ut.cpp
diff --git a/ydb/core/util/ut/CMakeLists.linux-aarch64.txt b/ydb/core/util/ut/CMakeLists.linux-aarch64.txt
index 339c04ed8a..687f3c9f88 100644
--- a/ydb/core/util/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/util/ut/CMakeLists.linux-aarch64.txt
@@ -59,7 +59,6 @@ target_sources(ydb-core-util-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/util/queue_oneone_inplace_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/simple_cache_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/stlog_ut.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/util/time_series_vec_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/token_bucket_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/ui64id_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/ulid_ut.cpp
diff --git a/ydb/core/util/ut/CMakeLists.linux-x86_64.txt b/ydb/core/util/ut/CMakeLists.linux-x86_64.txt
index 96a038eb23..5f7ca774ee 100644
--- a/ydb/core/util/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/util/ut/CMakeLists.linux-x86_64.txt
@@ -60,7 +60,6 @@ target_sources(ydb-core-util-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/util/queue_oneone_inplace_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/simple_cache_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/stlog_ut.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/util/time_series_vec_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/token_bucket_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/ui64id_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/ulid_ut.cpp
diff --git a/ydb/core/util/ut/CMakeLists.windows-x86_64.txt b/ydb/core/util/ut/CMakeLists.windows-x86_64.txt
index 64fa208c0d..c95120a8ad 100644
--- a/ydb/core/util/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/util/ut/CMakeLists.windows-x86_64.txt
@@ -49,7 +49,6 @@ target_sources(ydb-core-util-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/core/util/queue_oneone_inplace_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/simple_cache_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/stlog_ut.cpp
- ${CMAKE_SOURCE_DIR}/ydb/core/util/time_series_vec_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/token_bucket_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/ui64id_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/core/util/ulid_ut.cpp
diff --git a/ydb/core/util/ut/ya.make b/ydb/core/util/ut/ya.make
index daa702955e..c0c14508aa 100644
--- a/ydb/core/util/ut/ya.make
+++ b/ydb/core/util/ut/ya.make
@@ -45,7 +45,6 @@ SRCS(
queue_oneone_inplace_ut.cpp
simple_cache_ut.cpp
stlog_ut.cpp
- time_series_vec_ut.cpp
token_bucket_ut.cpp
ui64id_ut.cpp
ulid_ut.cpp
diff --git a/ydb/core/util/ya.make b/ydb/core/util/ya.make
index 2a1bdd22d1..1834165ee9 100644
--- a/ydb/core/util/ya.make
+++ b/ydb/core/util/ya.make
@@ -47,7 +47,6 @@ SRCS(
testactorsys.h
text.cpp
text.h
- time_series_vec.h
token_bucket.h
throughput_meter.h
tuples.h
diff --git a/ydb/core/viewer/json_cluster.h b/ydb/core/viewer/json_cluster.h
index c4732c6c60..dd3e73a840 100644
--- a/ydb/core/viewer/json_cluster.h
+++ b/ydb/core/viewer/json_cluster.h
@@ -67,17 +67,19 @@ public:
}
void SendWhiteboardTabletStateRequest() {
- TIntrusivePtr<TDomainsInfo> domains = AppData()->DomainsInfo;
- TIntrusivePtr<TDomainsInfo::TDomain> domain = domains->Domains.begin()->second;
THashSet<TTabletId> filterTablets;
- for (TTabletId id : domain->Coordinators) {
- filterTablets.emplace(id);
- }
- for (TTabletId id : domain->Mediators) {
- filterTablets.emplace(id);
- }
- for (TTabletId id : domain->TxAllocators) {
- filterTablets.emplace(id);
+ TIntrusivePtr<TDomainsInfo> domains = AppData()->DomainsInfo;
+ if (!domains->Domains.empty()) {
+ TIntrusivePtr<TDomainsInfo::TDomain> domain = domains->Domains.begin()->second;
+ for (TTabletId id : domain->Coordinators) {
+ filterTablets.emplace(id);
+ }
+ for (TTabletId id : domain->Mediators) {
+ filterTablets.emplace(id);
+ }
+ for (TTabletId id : domain->TxAllocators) {
+ filterTablets.emplace(id);
+ }
}
const NKikimrSchemeOp::TPathDescription& pathDescription(DescribeResult->GetRecord().GetPathDescription());
if (pathDescription.HasDomainDescription()) {
@@ -109,12 +111,16 @@ public:
}
void SendWhiteboardRequests() {
+ TIntrusivePtr<TDynamicNameserviceConfig> dynamicNameserviceConfig = AppData()->DynamicNameserviceConfig;
for (const auto& ni : NodesInfo->Nodes) {
TActorId whiteboardServiceId = MakeNodeWhiteboardServiceId(ni.NodeId);
SendRequest(whiteboardServiceId, new TEvWhiteboard::TEvSystemStateRequest(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, ni.NodeId);
- SendRequest(whiteboardServiceId, new TEvWhiteboard::TEvVDiskStateRequest(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, ni.NodeId);
- SendRequest(whiteboardServiceId,new TEvWhiteboard::TEvPDiskStateRequest(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, ni.NodeId);
- SendRequest(whiteboardServiceId, new TEvWhiteboard::TEvBSGroupStateRequest(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, ni.NodeId);
+
+ if (ni.NodeId <= dynamicNameserviceConfig->MaxStaticNodeId) {
+ SendRequest(whiteboardServiceId, new TEvWhiteboard::TEvVDiskStateRequest(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, ni.NodeId);
+ SendRequest(whiteboardServiceId,new TEvWhiteboard::TEvPDiskStateRequest(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, ni.NodeId);
+ SendRequest(whiteboardServiceId, new TEvWhiteboard::TEvBSGroupStateRequest(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, ni.NodeId);
+ }
}
if (Tablets) {
SendWhiteboardTabletStateRequest();
@@ -127,11 +133,13 @@ public:
if (!Event->Get()->UserToken.empty()) {
request->Record.SetUserToken(Event->Get()->UserToken);
}
- TIntrusivePtr<TDomainsInfo> domains = AppData()->DomainsInfo;
- TIntrusivePtr<TDomainsInfo::TDomain> domain = domains->Domains.begin()->second;
- TString domainPath = "/" + domain->Name;
NKikimrSchemeOp::TDescribePath* record = request->Record.MutableDescribePath();
- record->SetPath(domainPath);
+ TIntrusivePtr<TDomainsInfo> domains = AppData()->DomainsInfo;
+ if (!domains->Domains.empty()) {
+ TIntrusivePtr<TDomainsInfo::TDomain> domain = domains->Domains.begin()->second;
+ TString domainPath = "/" + domain->Name;
+ record->SetPath(domainPath);
+ }
record->MutableOptions()->SetReturnPartitioningInfo(false);
record->MutableOptions()->SetReturnPartitionConfig(false);
record->MutableOptions()->SetReturnChildren(false);
@@ -178,20 +186,22 @@ public:
if (SystemInfo.emplace(nodeId, NKikimrWhiteboard::TEvSystemStateResponse{}).second) {
RequestDone();
}
- if (VDiskInfo.emplace(nodeId, NKikimrWhiteboard::TEvVDiskStateResponse{}).second) {
- RequestDone();
- }
- if (PDiskInfo.emplace(nodeId, NKikimrWhiteboard::TEvPDiskStateResponse{}).second) {
- RequestDone();
- }
- if (BSGroupInfo.emplace(nodeId, NKikimrWhiteboard::TEvBSGroupStateResponse{}).second) {
- RequestDone();
- }
TIntrusivePtr<TDynamicNameserviceConfig> dynamicNameserviceConfig = AppData()->DynamicNameserviceConfig;
- if (Tablets && nodeId <= dynamicNameserviceConfig->MaxStaticNodeId) {
- if (TabletInfo.emplace(nodeId, NKikimrWhiteboard::TEvTabletStateResponse{}).second) {
+ if (nodeId <= dynamicNameserviceConfig->MaxStaticNodeId) {
+ if (VDiskInfo.emplace(nodeId, NKikimrWhiteboard::TEvVDiskStateResponse{}).second) {
+ RequestDone();
+ }
+ if (PDiskInfo.emplace(nodeId, NKikimrWhiteboard::TEvPDiskStateResponse{}).second) {
+ RequestDone();
+ }
+ if (BSGroupInfo.emplace(nodeId, NKikimrWhiteboard::TEvBSGroupStateResponse{}).second) {
RequestDone();
}
+ if (Tablets) {
+ if (TabletInfo.emplace(nodeId, NKikimrWhiteboard::TEvTabletStateResponse{}).second) {
+ RequestDone();
+ }
+ }
}
}
@@ -286,21 +296,23 @@ public:
if (Tablets) {
MergeWhiteboardResponses(MergedTabletInfo, TabletInfo);
TIntrusivePtr<TDomainsInfo> domains = AppData()->DomainsInfo;
- TIntrusivePtr<TDomainsInfo::TDomain> domain = domains->Domains.begin()->second;
- ui32 hiveDomain = domains->GetHiveDomainUid(domain->DefaultHiveUid);
- ui64 defaultStateStorageGroup = domains->GetDefaultStateStorageGroup(hiveDomain);
- tablets.emplace(MakeBSControllerID(defaultStateStorageGroup));
- tablets.emplace(MakeConsoleID(defaultStateStorageGroup));
- tablets.emplace(domain->SchemeRoot);
- tablets.emplace(domains->GetHive(domain->DefaultHiveUid));
- for (TTabletId id : domain->Coordinators) {
- tablets.emplace(id);
- }
- for (TTabletId id : domain->Mediators) {
- tablets.emplace(id);
- }
- for (TTabletId id : domain->TxAllocators) {
- tablets.emplace(id);
+ if (!domains->Domains.empty()) {
+ TIntrusivePtr<TDomainsInfo::TDomain> domain = domains->Domains.begin()->second;
+ ui32 hiveDomain = domains->GetHiveDomainUid(domain->DefaultHiveUid);
+ ui64 defaultStateStorageGroup = domains->GetDefaultStateStorageGroup(hiveDomain);
+ tablets.emplace(MakeBSControllerID(defaultStateStorageGroup));
+ tablets.emplace(MakeConsoleID(defaultStateStorageGroup));
+ tablets.emplace(domain->SchemeRoot);
+ tablets.emplace(domains->GetHive(domain->DefaultHiveUid));
+ for (TTabletId id : domain->Coordinators) {
+ tablets.emplace(id);
+ }
+ for (TTabletId id : domain->Mediators) {
+ tablets.emplace(id);
+ }
+ for (TTabletId id : domain->TxAllocators) {
+ tablets.emplace(id);
+ }
}
if (DescribeResult) {
@@ -395,6 +407,11 @@ public:
pbCluster.SetStorageTotal(totalStorageSize);
pbCluster.SetStorageUsed(totalStorageSize - availableStorageSize);
pbCluster.SetHosts(hosts.size());
+ TIntrusivePtr<TDomainsInfo> domains = AppData()->DomainsInfo;
+ if (!domains->Domains.empty()) {
+ TString domainName = "/" + domains->Domains.begin()->second->Name;
+ pbCluster.SetDomain(domainName);
+ }
for (const TString& dc : dataCenters) {
pbCluster.AddDataCenters(dc);
}
diff --git a/ydb/core/viewer/json_compute.h b/ydb/core/viewer/json_compute.h
index 6d8a8aecb0..b2d8624e86 100644
--- a/ydb/core/viewer/json_compute.h
+++ b/ydb/core/viewer/json_compute.h
@@ -13,6 +13,7 @@
#include <ydb/core/viewer/protos/viewer.pb.h>
#include <ydb/core/viewer/json/json.h>
#include "viewer.h"
+#include "viewer_helper.h"
#include "json_pipe_req.h"
#include "wb_aggregate.h"
#include "wb_merge.h"
@@ -34,6 +35,7 @@ class TJsonCompute : public TViewerPipeClient<TJsonCompute> {
THashMap<TTabletId, THolder<TEvHive::TEvResponseHiveNodeStats>> HiveNodeStats;
NMon::TEvHttpInfo::TPtr Event;
THashSet<TNodeId> NodeIds;
+ std::unordered_set<TNodeId> FoundNodeIds;
THashMap<TNodeId, NKikimrWhiteboard::TEvSystemStateResponse> NodeSysInfo;
TMap<TNodeId, NKikimrWhiteboard::TEvTabletStateResponse> NodeTabletInfo;
THolder<TEvInterconnect::TEvNodesInfo> NodesInfo;
@@ -51,6 +53,27 @@ class TJsonCompute : public TViewerPipeClient<TJsonCompute> {
bool ProblemNodesOnly = false;
TString Filter;
+ enum class EVersion {
+ v1,
+ v2 // only this works with sorting
+ };
+ enum class ESort {
+ NodeId,
+ Host,
+ DC,
+ Rack,
+ Version,
+ Uptime,
+ Memory,
+ CPU,
+ LoadAverage,
+ };
+ EVersion Version = EVersion::v1;
+ std::optional<ui32> Offset;
+ std::optional<ui32> Limit;
+ ESort Sort = ESort::NodeId;
+ bool ReverseSort = false;
+
public:
static constexpr NKikimrServices::TActivity::EType ActorActivityType() {
return NKikimrServices::TActivity::VIEWER_HANDLER;
@@ -92,6 +115,44 @@ public:
UptimeSeconds = FromStringWithDefault<ui32>(params.Get("uptime"), 0);
ProblemNodesOnly = FromStringWithDefault<bool>(params.Get("problems_only"), ProblemNodesOnly);
Filter = params.Get("filter");
+ if (params.Has("offset")) {
+ Offset = FromStringWithDefault<ui32>(params.Get("offset"), 0);
+ }
+ if (params.Has("limit")) {
+ Limit = FromStringWithDefault<ui32>(params.Get("limit"), std::numeric_limits<ui32>::max());
+ }
+ TString version = params.Get("version");
+ if (version == "v1") {
+ Version = EVersion::v1;
+ } else if (version == "v2") {
+ Version = EVersion::v2;
+ }
+ TStringBuf sort = params.Get("sort");
+ if (sort) {
+ if (sort.StartsWith("-") || sort.StartsWith("+")) {
+ ReverseSort = (sort[0] == '-');
+ sort.Skip(1);
+ }
+ if (sort == "NodeId") {
+ Sort = ESort::NodeId;
+ } else if (sort == "Host") {
+ Sort = ESort::Host;
+ } else if (sort == "DC") {
+ Sort = ESort::DC;
+ } else if (sort == "Rack") {
+ Sort = ESort::Rack;
+ } else if (sort == "Version") {
+ Sort = ESort::Version;
+ } else if (sort == "Uptime") {
+ Sort = ESort::Uptime;
+ } else if (sort == "Memory") {
+ Sort = ESort::Memory;
+ } else if (sort == "CPU") {
+ Sort = ESort::CPU;
+ } else if (sort == "LoadAverage") {
+ Sort = ESort::LoadAverage;
+ }
+ }
SendRequest(GetNameserviceActorId(), new TEvInterconnect::TEvListNodes());
@@ -294,6 +355,68 @@ public:
return true;
}
+ static double GetCPU(const NKikimrViewer::TComputeNodeInfo& nodeInfo) {
+ double cpu = 0;
+ if (nodeInfo.PoolStatsSize() > 0) {
+ for (const auto& ps : nodeInfo.GetPoolStats()) {
+ cpu = std::max(cpu, ps.GetUsage());
+ }
+ }
+ return cpu;
+ }
+
+ static double GetLoadAverage(const NKikimrViewer::TComputeNodeInfo& nodeInfo) {
+ if (nodeInfo.LoadAverageSize() > 0) {
+ return nodeInfo.GetLoadAverage(0);
+ }
+ return 0;
+ }
+
+ void PaginateNodes(::google::protobuf::RepeatedPtrField<NKikimrViewer::TComputeNodeInfo>& nodes) {
+ switch (Sort) {
+ case ESort::NodeId:
+ SortCollection(nodes, [](const NKikimrViewer::TComputeNodeInfo& node) { return node.GetNodeId();}, ReverseSort);
+ break;
+ case ESort::Host:
+ SortCollection(nodes, [](const NKikimrViewer::TComputeNodeInfo& node) { return node.GetHost();}, ReverseSort);
+ break;
+ case ESort::DC:
+ SortCollection(nodes, [](const NKikimrViewer::TComputeNodeInfo& node) { return node.GetDataCenter();}, ReverseSort);
+ break;
+ case ESort::Rack:
+ SortCollection(nodes, [](const NKikimrViewer::TComputeNodeInfo& node) { return node.GetRack();}, ReverseSort);
+ break;
+ case ESort::Version:
+ SortCollection(nodes, [](const NKikimrViewer::TComputeNodeInfo& node) { return node.GetVersion();}, ReverseSort);
+ break;
+ case ESort::Uptime:
+ SortCollection(nodes, [](const NKikimrViewer::TComputeNodeInfo& node) { return node.GetStartTime();}, ReverseSort);
+ break;
+ case ESort::Memory:
+ SortCollection(nodes, [](const NKikimrViewer::TComputeNodeInfo& node) { return node.GetMemoryUsed();}, ReverseSort);
+ break;
+ case ESort::CPU:
+ SortCollection(nodes, [](const NKikimrViewer::TComputeNodeInfo& node) { return GetCPU(node);}, ReverseSort);
+ break;
+ case ESort::LoadAverage:
+ SortCollection(nodes, [](const NKikimrViewer::TComputeNodeInfo& node) { return GetLoadAverage(node);}, ReverseSort);
+ break;
+ }
+
+ if (Offset.has_value()) {
+ if (size_t(nodes.size()) > Offset.value()) {
+ nodes.erase(nodes.begin(), std::next(nodes.begin(), Offset.value()));
+ } else {
+ nodes.Clear();
+ }
+ }
+ if (Limit.has_value()) {
+ if (size_t(nodes.size()) > Limit.value()) {
+ nodes.erase(std::next(nodes.begin(), Limit.value()), nodes.end());
+ }
+ }
+ }
+
void ReplyAndPassAway() {
THashMap<TNodeId, TVector<const NKikimrWhiteboard::TTabletStateInfo*>> tabletInfoIndex;
NKikimrWhiteboard::TEvTabletStateResponse tabletInfo;
@@ -317,8 +440,12 @@ public:
}
for (const std::pair<const TString, NKikimrViewer::TTenant>& prTenant : TenantByPath) {
const TString& path = prTenant.first;
- NKikimrViewer::TComputeTenantInfo& computeTenantInfo = *Result.AddTenants();
- computeTenantInfo.SetName(path);
+ if (Version == EVersion::v1) {
+ NKikimrViewer::TComputeTenantInfo& computeTenantInfo = *Result.AddTenants();
+ computeTenantInfo.SetName(path);
+ // TODO(xenoxeno)
+ computeTenantInfo.SetOverall(NKikimrViewer::EFlag::Green);
+ }
auto itSubDomainKey = SubDomainKeyByPath.find(path);
if (itSubDomainKey != SubDomainKeyByPath.end()) {
TPathId subDomainKey(itSubDomainKey->second);
@@ -326,7 +453,13 @@ public:
for (TNodeId nodeId : tenantBySubDomainKey.GetNodeIds()) {
if (!CheckNodeFilters(nodeId))
continue;
- NKikimrViewer::TComputeNodeInfo& computeNodeInfo = *computeTenantInfo.AddNodes();
+ FoundNodeIds.insert(nodeId);
+ NKikimrViewer::TComputeNodeInfo& computeNodeInfo = Version == EVersion::v1
+ ? *Result.MutableTenants(Result.TenantsSize() - 1)->AddNodes()
+ : *Result.AddNodes();
+ if (Version == EVersion::v2) {
+ computeNodeInfo.SetTenant(path);
+ }
computeNodeInfo.SetNodeId(nodeId);
auto itSysInfo = NodeSysInfo.find(nodeId);
if (itSysInfo != NodeSysInfo.end()) {
@@ -407,13 +540,17 @@ public:
}
}
}
-
- // TODO(xenoxeno)
- computeTenantInfo.SetOverall(NKikimrViewer::EFlag::Green);
}
+ Result.SetTotalNodes(NodeIds.size());
+ Result.SetFoundNodes(FoundNodeIds.size());
// TODO(xenoxeno)
Result.SetOverall(NKikimrViewer::EFlag::Green);
+
+ if (Version == EVersion::v2) {
+ PaginateNodes(*Result.MutableNodes());
+ }
+
TStringStream json;
TProtoToJson::ProtoToJson(json, Result, JsonSettings);
Send(Event->Sender, new NMon::TEvHttpInfoRes(Viewer->GetHTTPOKJSON(Event->Get(), std::move(json.Str())), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
@@ -438,13 +575,17 @@ struct TJsonRequestSchema<TJsonCompute> {
template <>
struct TJsonRequestParameters<TJsonCompute> {
static TString GetParameters() {
- return R"___([{"name":"path","in":"query","description":"schema path","required":false,"type":"string"},
+ return R"___([{"name":"version","in":"query","description":"query version (v1, v2)","required":false,"type":"string"},
+ {"name":"path","in":"query","description":"schema path","required":false,"type":"string"},
{"name":"enums","in":"query","description":"convert enums to strings","required":false,"type":"boolean"},
{"name":"ui64","in":"query","description":"return ui64 as number","required":false,"type":"boolean"},
{"name":"timeout","in":"query","description":"timeout in ms","required":false,"type":"integer"},
{"name":"uptime","in":"query","description":"return only nodes with less uptime in sec.","required":false,"type":"integer"},
{"name":"problems_only","in":"query","description":"return only problem nodes","required":false,"type":"boolean"},
- {"name":"filter","in":"query","description":"filter nodes by id or host","required":false,"type":"string"}])___";
+ {"name":"filter","in":"query","description":"filter nodes by id or host","required":false,"type":"string"},
+ {"name":"sort","in":"query","description":"sort by (NodeId,Host,DC,Rack,Version,Uptime,Memory,CPU,LoadAverage)","required":false,"type":"string"},
+ {"name":"offset","in":"query","description":"skip N nodes","required":false,"type":"integer"},
+ {"name":"limit","in":"query","description":"limit to N nodes","required":false,"type":"integer"}])___";
}
};
diff --git a/ydb/core/viewer/json_healthcheck.h b/ydb/core/viewer/json_healthcheck.h
index ea3b9f5486..c55fc74eaa 100644
--- a/ydb/core/viewer/json_healthcheck.h
+++ b/ydb/core/viewer/json_healthcheck.h
@@ -143,7 +143,8 @@ public:
e->OnMetricBegin(EMetricType::IGAUGE);
{
e->OnLabelsBegin();
- e->OnLabel("sensor", "HC_" + domain->Name);
+ e->OnLabel("sensor", "ydb_healthcheck");
+ e->OnLabel("DOMAIN", domain->Name);
e->OnLabel("DATABASE", recordCounter.first.Database ? recordCounter.first.Database : filterDatabase);
e->OnLabel("MESSAGE", recordCounter.first.Message);
e->OnLabel("STATUS", recordCounter.first.Status);
@@ -153,23 +154,22 @@ public:
e->OnInt64(TInstant::Zero(), recordCounter.second);
e->OnMetricEnd();
}
- } else {
- const auto *descriptor = Ydb::Monitoring::SelfCheck_Result_descriptor();
- auto result = descriptor->FindValueByNumber(ev->Get()->Result.self_check_result())->name();
- e->OnMetricBegin(EMetricType::IGAUGE);
- {
- e->OnLabelsBegin();
- e->OnLabel("sensor", "HC_" + domain->Name);
- e->OnLabel("DATABASE", filterDatabase);
- e->OnLabel("MESSAGE", result);
- e->OnLabel("STATUS", result);
- e->OnLabel("TYPE", "ALL");
- e->OnLabelsEnd();
- }
- e->OnInt64(TInstant::Zero(), 1);
- e->OnMetricEnd();
}
-
+ const auto *descriptor = Ydb::Monitoring::SelfCheck_Result_descriptor();
+ auto result = descriptor->FindValueByNumber(ev->Get()->Result.self_check_result())->name();
+ e->OnMetricBegin(EMetricType::IGAUGE);
+ {
+ e->OnLabelsBegin();
+ e->OnLabel("sensor", "ydb_healthcheck");
+ e->OnLabel("DOMAIN", domain->Name);
+ e->OnLabel("DATABASE", filterDatabase);
+ e->OnLabel("MESSAGE", result);
+ e->OnLabel("STATUS", result);
+ e->OnLabel("TYPE", "ALL");
+ e->OnLabelsEnd();
+ }
+ e->OnInt64(TInstant::Zero(), 1);
+ e->OnMetricEnd();
e->OnStreamEnd();
ctx.Send(Event->Sender, new NMon::TEvHttpInfoRes(HTTPOKTEXT + ss.Str(), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
diff --git a/ydb/core/viewer/json_nodes.h b/ydb/core/viewer/json_nodes.h
index 5228277179..a66e895e56 100644
--- a/ydb/core/viewer/json_nodes.h
+++ b/ydb/core/viewer/json_nodes.h
@@ -8,6 +8,7 @@
#include <ydb/core/protos/node_whiteboard.pb.h>
#include <ydb/core/viewer/protos/viewer.pb.h>
#include "viewer.h"
+#include "viewer_helper.h"
#include "json_pipe_req.h"
#include "json_sysinfo.h"
#include "json_pdiskinfo.h"
@@ -67,6 +68,7 @@ class TJsonNodes : public TViewerPipeClient<TJsonNodes> {
NodeId,
Host,
DC,
+ Rack,
Version,
Uptime,
Memory,
@@ -149,6 +151,8 @@ public:
Sort = ESort::Host;
} else if (sort == "DC") {
Sort = ESort::DC;
+ } else if (sort == "Rack") {
+ Sort = ESort::Rack;
} else if (sort == "Version") {
Sort = ESort::Version;
} else if (sort == "Uptime") {
@@ -248,40 +252,27 @@ public:
void ProcessNodeIds() {
BLOG_TRACE("ProcessNodeIds()");
- bool reverse = ReverseSort;
- std::function<void(TVector<TEvInterconnect::TNodeInfo>&)> sortFunc;
+
switch (Sort) {
case ESort::NodeId: {
- sortFunc = [=](TVector<TEvInterconnect::TNodeInfo>& nodes) {
- ::Sort(nodes, [=](const TEvInterconnect::TNodeInfo& a, const TEvInterconnect::TNodeInfo& b) {
- return reverse ^ (a.NodeId < b.NodeId);
- });
- };
+ SortCollection(NodesInfo->Nodes, [](const TEvInterconnect::TNodeInfo& node) { return node.NodeId;}, ReverseSort);
+ SortedNodeList = true;
break;
}
case ESort::Host: {
- sortFunc = [=](TVector<TEvInterconnect::TNodeInfo>& nodes) {
- ::Sort(nodes, [=](const TEvInterconnect::TNodeInfo& a, const TEvInterconnect::TNodeInfo& b) {
- return reverse ^ (a.Host < b.Host);
- });
- };
+ SortCollection(NodesInfo->Nodes, [](const TEvInterconnect::TNodeInfo& node) { return node.Host;}, ReverseSort);
+ SortedNodeList = true;
break;
}
case ESort::DC: {
- sortFunc = [=](TVector<TEvInterconnect::TNodeInfo>& nodes) {
- ::Sort(nodes, [=](const TEvInterconnect::TNodeInfo& a, const TEvInterconnect::TNodeInfo& b) {
- return reverse ^ (a.Location.GetDataCenterId() < b.Location.GetDataCenterId());
- });
- };
+ SortCollection(NodesInfo->Nodes, [](const TEvInterconnect::TNodeInfo& node) { return node.Location.GetDataCenterId();}, ReverseSort);
+ SortedNodeList = true;
break;
}
default:
break;
}
- if (sortFunc) {
- sortFunc(NodesInfo->Nodes);
- SortedNodeList = true;
- }
+
for (const auto& ni : NodesInfo->Nodes) {
if ((FilterNodeIds.empty() || FilterNodeIds.count(ni.NodeId) > 0) && ni.NodeId >= MinAllowedNodeId && ni.NodeId <= MaxAllowedNodeId) {
SendNodeRequest(ni.NodeId);
@@ -631,7 +622,6 @@ public:
ui64 totalNodes = PassedNodeIds.size();
ui64 foundNodes;
- bool reverse = ReverseSort;
if (With == EWith::Everything) {
foundNodes = totalNodes;
@@ -646,30 +636,23 @@ public:
case ESort::DC:
// already sorted
break;
+ case ESort::Rack:
+ SortCollection(*result.MutableNodes(), [](const NKikimrViewer::TNodeInfo& node) { return node.GetSystemState().GetRack();}, ReverseSort);
+ break;
case ESort::Version:
- ::Sort(*result.MutableNodes(), [reverse](const NKikimrViewer::TNodeInfo& a, const NKikimrViewer::TNodeInfo& b) {
- return reverse ^ (a.GetSystemState().GetVersion() < b.GetSystemState().GetVersion());
- });
+ SortCollection(*result.MutableNodes(), [](const NKikimrViewer::TNodeInfo& node) { return node.GetSystemState().GetVersion();}, ReverseSort);
break;
case ESort::Uptime:
- ::Sort(*result.MutableNodes(), [reverse](const NKikimrViewer::TNodeInfo& a, const NKikimrViewer::TNodeInfo& b) {
- return reverse ^ !(a.GetSystemState().GetStartTime() < b.GetSystemState().GetStartTime());
- });
+ SortCollection(*result.MutableNodes(), [](const NKikimrViewer::TNodeInfo& node) { return node.GetSystemState().GetStartTime();}, ReverseSort);
break;
case ESort::Memory:
- ::Sort(*result.MutableNodes(), [reverse](const NKikimrViewer::TNodeInfo& a, const NKikimrViewer::TNodeInfo& b) {
- return reverse ^ (a.GetSystemState().GetMemoryUsed() < b.GetSystemState().GetMemoryUsed());
- });
+ SortCollection(*result.MutableNodes(), [](const NKikimrViewer::TNodeInfo& node) { return node.GetSystemState().GetMemoryUsed();}, ReverseSort);
break;
case ESort::CPU:
- ::Sort(*result.MutableNodes(), [reverse](const NKikimrViewer::TNodeInfo& a, const NKikimrViewer::TNodeInfo& b) {
- return reverse ^ (GetCPU(a.GetSystemState()) < GetCPU(b.GetSystemState()));
- });
+ SortCollection(*result.MutableNodes(), [](const NKikimrViewer::TNodeInfo& node) { return GetCPU(node.GetSystemState());}, ReverseSort);
break;
case ESort::LoadAverage:
- ::Sort(*result.MutableNodes(), [reverse](const NKikimrViewer::TNodeInfo& a, const NKikimrViewer::TNodeInfo& b) {
- return reverse ^ (GetLoadAverage(a.GetSystemState()) < GetLoadAverage(b.GetSystemState()));
- });
+ SortCollection(*result.MutableNodes(), [](const NKikimrViewer::TNodeInfo& node) { return GetLoadAverage(node.GetSystemState());}, ReverseSort);
break;
}
}
@@ -723,7 +706,7 @@ struct TJsonRequestParameters<TJsonNodes> {
{"name":"type","in":"query","description":"nodes type to get (static,dynamic,any)","required":false,"type":"string"},
{"name":"storage","in":"query","description":"return storage info","required":false,"type":"boolean"},
{"name":"tablets","in":"query","description":"return tablets info","required":false,"type":"boolean"},
- {"name":"sort","in":"query","description":"sort by (NodeId,Host,DC,Version,Uptime,Memory,CPU,LoadAverage)","required":false,"type":"string"},
+ {"name":"sort","in":"query","description":"sort by (NodeId,Host,DC,Rack,Version,Uptime,Memory,CPU,LoadAverage)","required":false,"type":"string"},
{"name":"offset","in":"query","description":"skip N nodes","required":false,"type":"integer"},
{"name":"limit","in":"query","description":"limit to N nodes","required":false,"type":"integer"},
{"name":"timeout","in":"query","description":"timeout in ms","required":false,"type":"integer"},
diff --git a/ydb/core/viewer/json_query.h b/ydb/core/viewer/json_query.h
index 00405d45ed..bd39eb57e5 100644
--- a/ydb/core/viewer/json_query.h
+++ b/ydb/core/viewer/json_query.h
@@ -15,37 +15,93 @@
//#include <ydb/public/lib/deprecated/kicli/kicli.h>
#include <ydb/public/lib/json_value/ydb_json_value.h>
#include <ydb/public/sdk/cpp/client/ydb_result/result.h>
+#include "json_pipe_req.h"
+#include "viewer_request.h"
namespace NKikimr {
namespace NViewer {
using namespace NActors;
+using namespace NMonitoring;
using ::google::protobuf::FieldDescriptor;
-class TJsonQuery : public TActorBootstrapped<TJsonQuery> {
+class TJsonQuery : public TViewerPipeClient<TJsonQuery> {
using TThis = TJsonQuery;
- using TBase = TActorBootstrapped<TJsonQuery>;
+ using TBase = TViewerPipeClient<TJsonQuery>;
IViewer* Viewer;
TJsonSettings JsonSettings;
TActorId Initiator;
NMon::TEvHttpInfo::TPtr Event;
ui32 Timeout = 0;
TVector<Ydb::ResultSet> ResultSets;
+ TString Query;
+ TString Database;
TString Action;
TString Stats;
TString Schema = "classic";
TString Syntax;
+ TString UserToken;
public:
static constexpr NKikimrServices::TActivity::EType ActorActivityType() {
return NKikimrServices::TActivity::VIEWER_HANDLER;
}
+ void ParseCgiParameters(const TCgiParameters& params) {
+ JsonSettings.EnumAsNumbers = !FromStringWithDefault<bool>(params.Get("enums"), false);
+ JsonSettings.UI64AsString = !FromStringWithDefault<bool>(params.Get("ui64"), false);
+ Timeout = FromStringWithDefault<ui32>(params.Get("timeout"), 60000);
+ Query = params.Get("query");
+ Database = params.Get("database");
+ Stats = params.Get("stats");
+ Action = params.Get("action");
+ Schema = params.Get("schema");
+ if (Schema.empty()) {
+ Schema = "classic";
+ }
+ Syntax = params.Get("syntax");
+ }
+
+ void ParsePostContent(const TStringBuf& content) {
+ static NJson::TJsonReaderConfig JsonConfig;
+ NJson::TJsonValue requestData;
+ bool success = NJson::ReadJsonTree(content, &JsonConfig, &requestData);
+ if (success) {
+ Query = Query.empty() ? requestData["query"].GetStringSafe({}) : Query;
+ Database = Database.empty() ? requestData["database"].GetStringSafe({}) : Database;
+ Stats = Stats.empty() ? requestData["stats"].GetStringSafe({}) : Stats;
+ Action = Action.empty() ? requestData["action"].GetStringSafe({}) : Action;
+ Syntax = Syntax.empty() ? requestData["syntax"].GetStringSafe({}) : Syntax;
+ }
+ }
+
+ bool IsPostContent() {
+ if (Event->Get()->Request.GetMethod() == HTTP_METHOD_POST) {
+ const THttpHeaders& headers = Event->Get()->Request.GetHeaders();
+ auto itContentType = FindIf(headers, [](const auto& header) { return header.Name() == "Content-Type"; });
+ if (itContentType != headers.end()) {
+ TStringBuf contentTypeHeader = itContentType->Value();
+ TStringBuf contentType = contentTypeHeader.NextTok(';');
+ return contentType == "application/json";
+ }
+ }
+ return false;
+ }
+
TJsonQuery(IViewer* viewer, NMon::TEvHttpInfo::TPtr& ev)
: Viewer(viewer)
, Initiator(ev->Sender)
, Event(ev)
- {}
+ {
+ const auto& params(Event->Get()->Request.GetParams());
+ InitConfig(params);
+ ParseCgiParameters(params);
+ if (IsPostContent()) {
+ TStringBuf content = Event->Get()->Request.GetPostContent();
+ ParsePostContent(content);
+ }
+ UserToken = Event->Get()->UserToken;
+ }
STATEFN(StateWork) {
switch (ev->GetTypeRewrite()) {
@@ -56,54 +112,14 @@ public:
hFunc(NKqp::TEvKqpExecuter::TEvStreamProfile, HandleReply);
cFunc(TEvents::TSystem::Wakeup, HandleTimeout);
-
- default: {
- Cerr << "Unexpected event received in TJsonQuery::StateWork: " << ev->GetTypeRewrite() << Endl;
- }
}
}
- void Bootstrap() {
- const auto& params(Event->Get()->Request.GetParams());
+ void SendKpqProxyRequest() {
auto event = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
- JsonSettings.EnumAsNumbers = !FromStringWithDefault<bool>(params.Get("enums"), false);
- JsonSettings.UI64AsString = !FromStringWithDefault<bool>(params.Get("ui64"), false);
- Timeout = FromStringWithDefault<ui32>(params.Get("timeout"), 60000);
- TString query = params.Get("query");
- TString database = params.Get("database");
- Stats = params.Get("stats");
- Action = params.Get("action");
- Schema = params.Get("schema");
- Syntax = params.Get("syntax");
- if (Schema.empty()) {
- Schema = "classic";
- }
- if (query.empty() && Event->Get()->Request.GetMethod() == HTTP_METHOD_POST) {
- TStringBuf content = Event->Get()->Request.GetPostContent();
- const THttpHeaders& headers = Event->Get()->Request.GetHeaders();
- auto itContentType = FindIf(headers, [](const auto& header) { return header.Name() == "Content-Type"; });
- if (itContentType != headers.end()) {
- TStringBuf contentTypeHeader = itContentType->Value();
- TStringBuf contentType = contentTypeHeader.NextTok(';');
- if (contentType == "application/json") {
- static NJson::TJsonReaderConfig JsonConfig;
- NJson::TJsonValue requestData;
- bool success = NJson::ReadJsonTree(content, &JsonConfig, &requestData);
- if (success) {
- query = requestData["query"].GetStringSafe({});
- database = requestData["database"].GetStringSafe({});
- Stats = requestData["stats"].GetStringSafe({});
- Action = requestData["action"].GetStringSafe({});
- }
- }
- }
- }
- if (query.empty()) {
- ReplyAndPassAway(Viewer->GetHTTPBADREQUEST(Event->Get(), {}, "Bad Request"));
- return;
- }
NKikimrKqp::TQueryRequest& request = *event->Record.MutableRequest();
- request.SetQuery(query);
+ request.SetQuery(Query);
+ request.SetUsePublicResponseDataFormat(true);
if (Action.empty() || Action == "execute-script" || Action == "execute") {
request.SetAction(NKikimrKqp::QUERY_ACTION_EXECUTE);
request.SetType(NKikimrKqp::QUERY_TYPE_SQL_SCRIPT);
@@ -140,20 +156,28 @@ public:
request.SetStatsMode(NYql::NDqProto::DQ_STATS_MODE_PROFILE);
request.SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_PROFILE);
}
- if (database) {
- request.SetDatabase(database);
+ if (Database) {
+ request.SetDatabase(Database);
}
- if (!Event->Get()->UserToken.empty()) {
- event->Record.SetUserToken(Event->Get()->UserToken);
+ if (UserToken) {
+ event->Record.SetUserToken(UserToken);
}
if (Syntax == "yql_v1") {
request.SetSyntax(Ydb::Query::Syntax::SYNTAX_YQL_V1);
- } else if (Syntax = "pg") {
+ } else if (Syntax == "pg") {
request.SetSyntax(Ydb::Query::Syntax::SYNTAX_PG);
}
ActorIdToProto(SelfId(), event->Record.MutableRequestActorId());
Send(NKqp::MakeKqpProxyID(SelfId().NodeId()), event.Release());
+ }
+
+ void Bootstrap() {
+ if (Query.empty()) {
+ ReplyAndPassAway(Viewer->GetHTTPBADREQUEST(Event->Get(), {}, "Bad Request"));
+ return;
+ }
+ SendKpqProxyRequest();
Become(&TThis::StateWork, TDuration::MilliSeconds(Timeout), new TEvents::TEvWakeup());
}
@@ -244,10 +268,9 @@ private:
}
}
- void HandleReply(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev) {
+ void Handle(NKikimrKqp::TEvQueryResponse& record) {
TStringBuilder out;
NJson::TJsonValue jsonResponse;
- NKikimrKqp::TEvQueryResponse& record = ev->Get()->Record.GetRef();
if (record.GetYdbStatus() == Ydb::StatusIds::SUCCESS) {
MakeOkReply(out, jsonResponse, record);
} else {
@@ -263,6 +286,10 @@ private:
ReplyAndPassAway(out);
}
+ void HandleReply(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev) {
+ Handle(ev->Get()->Record.GetRef());
+ }
+
void HandleReply(NKqp::TEvKqp::TEvProcessResponse::TPtr& ev) {
Y_UNUSED(ev);
}
diff --git a/ydb/core/viewer/json_storage.h b/ydb/core/viewer/json_storage.h
index 652fb9afd3..3620e06a3f 100644
--- a/ydb/core/viewer/json_storage.h
+++ b/ydb/core/viewer/json_storage.h
@@ -8,6 +8,7 @@
#include <ydb/core/protos/node_whiteboard.pb.h>
#include <ydb/core/viewer/protos/viewer.pb.h>
#include "viewer.h"
+#include "viewer_helper.h"
#include "json_pipe_req.h"
#include "json_vdiskinfo.h"
#include "json_pdiskinfo.h"
@@ -69,6 +70,7 @@ class TJsonStorage : public TViewerPipeClient<TJsonStorage> {
TString FilterTenant;
THashSet<TString> FilterStoragePools;
TVector<TString> FilterGroupIds;
+ TString Filter;
std::unordered_set<TNodeId> FilterNodeIds;
std::unordered_set<TNodeId> NodeIds;
bool NeedGroups = true;
@@ -88,6 +90,48 @@ class TJsonStorage : public TViewerPipeClient<TJsonStorage> {
};
EWith With = EWith::Everything;
+ enum class EGroupSort {
+ PoolName,
+ Kind,
+ Erasure,
+ Degraded,
+ Usage,
+ GroupId,
+ Used,
+ Limit,
+ Read,
+ Write
+ };
+ enum class EVersion {
+ v1,
+ v2 // only this works with sorting
+ };
+ EVersion Version = EVersion::v1;
+ EGroupSort GroupSort = EGroupSort::PoolName;
+ bool ReverseSort = false;
+ std::optional<ui32> Offset;
+ std::optional<ui32> Limit;
+
+ struct TGroupRow {
+ TString PoolName;
+ TString GroupId;
+ TString Kind;
+ TString Erasure;
+ ui32 Degraded;
+ float Usage;
+ uint64 Used;
+ uint64 Limit;
+ uint64 Read;
+ uint64 Write;
+
+ TGroupRow()
+ : Used(0)
+ , Limit(0)
+ , Read(0)
+ , Write(0)
+ {}
+ };
+ THashMap<TString, TGroupRow> GroupRowsByGroupId;
public:
static constexpr NKikimrServices::TActivity::EType ActorActivityType() {
@@ -113,6 +157,7 @@ public:
NeedAdditionalNodesRequests = !FilterNodeIds.empty();
SplitIds(params.Get("group_id"), ',', FilterGroupIds);
Sort(FilterGroupIds);
+ Filter = params.Get("filter");
NeedGroups = FromStringWithDefault<bool>(params.Get("need_groups"), true);
NeedDisks = FromStringWithDefault<bool>(params.Get("need_disks"), NeedGroups);
NeedDonors = FromStringWithDefault<bool>(params.Get("need_donors"), NeedDonors);
@@ -122,6 +167,43 @@ public:
} if (params.Get("with") == "space") {
With = EWith::SpaceProblems;
}
+
+ TString version = params.Get("version");
+ if (version == "v1") {
+ Version = EVersion::v1;
+ } else if (version == "v2") {
+ Version = EVersion::v2;
+ }
+ Offset = FromStringWithDefault<ui32>(params.Get("offset"), 0);
+ Limit = FromStringWithDefault<ui32>(params.Get("limit"), std::numeric_limits<ui32>::max());
+ TStringBuf sort = params.Get("sort");
+ if (sort) {
+ if (sort.StartsWith("-") || sort.StartsWith("+")) {
+ ReverseSort = (sort[0] == '-');
+ sort.Skip(1);
+ }
+ if (sort == "PoolName") {
+ GroupSort = EGroupSort::PoolName;
+ } else if (sort == "Kind") {
+ GroupSort = EGroupSort::Kind;
+ } else if (sort == "Erasure") {
+ GroupSort = EGroupSort::Erasure;
+ } else if (sort == "Degraded") {
+ GroupSort = EGroupSort::Degraded;
+ } else if (sort == "Usage") {
+ GroupSort = EGroupSort::Usage;
+ } else if (sort == "GroupId") {
+ GroupSort = EGroupSort::GroupId;
+ } else if (sort == "Used") {
+ GroupSort = EGroupSort::Used;
+ } else if (sort == "Limit") {
+ GroupSort = EGroupSort::Limit;
+ } else if (sort == "Read") {
+ GroupSort = EGroupSort::Read;
+ } else if (sort == "Write") {
+ GroupSort = EGroupSort::Write;
+ }
+ }
}
void Bootstrap() {
@@ -385,6 +467,18 @@ public:
const TJsonSettings& jsonSettings) {
const auto& info = static_cast<const NKikimrViewer::TStorageGroupInfo&>(protoFrom);
TString groupId = info.GetGroupId();
+ if (Version == EVersion::v2) {
+ const auto& groupRow = GroupRowsByGroupId[groupId];
+ json << "\"PoolName\":\"" << groupRow.PoolName << "\",";
+ json << "\"Kind\":\"" << groupRow.Kind << "\",";
+ json << "\"Erasure\":\"" << groupRow.Erasure << "\",";
+ json << "\"Degraded\":\"" << groupRow.Degraded << "\",";
+ json << "\"Usage\":\"" << groupRow.Usage << "\",";
+ json << "\"Used\":\"" << groupRow.Used << "\",";
+ json << "\"Limit\":\"" << groupRow.Limit << "\",";
+ json << "\"Read\":\"" << groupRow.Read << "\",";
+ json << "\"Write\":\"" << groupRow.Write << "\",";
+ }
auto ib = BSGroupIndex.find(groupId);
if (ib != BSGroupIndex.end()) {
TProtoToJson::ProtoToJsonInline(json, ib->second, jsonSettings);
@@ -479,6 +573,36 @@ public:
}
}
+ bool CheckGroupFilters(const TString& groupId, const TString& poolName) {
+ if (!FilterGroupIds.empty() && !BinarySearch(FilterGroupIds.begin(), FilterGroupIds.end(), groupId)) {
+ return false;
+ }
+ switch (With) {
+ case EWith::MissingDisks:
+ if (BSGroupWithMissingDisks.count(groupId) == 0) {
+ return false;
+ }
+ break;
+ case EWith::SpaceProblems:
+ if (BSGroupWithSpaceProblems.count(groupId) == 0) {
+ return false;
+ }
+ break;
+ case EWith::Everything:
+ break;
+ }
+ if (Filter) {
+ if (poolName.Contains(Filter)) {
+ return true;
+ }
+ if (groupId.Contains(Filter)) {
+ return true;
+ }
+ return false;
+ }
+ return true;
+ }
+
void ReplyAndPassAway() {
if (NeedAdditionalNodesRequests) {
NeedAdditionalNodesRequests = false;
@@ -615,25 +739,13 @@ public:
NKikimrViewer::TStoragePoolInfo* pool = StorageInfo.AddStoragePools();
for (TString groupId : poolInfo.Groups) {
++totalGroups;
- if (!FilterGroupIds.empty() && !BinarySearch(FilterGroupIds.begin(), FilterGroupIds.end(), groupId)) {
+ if (!CheckGroupFilters(groupId, poolName)) {
continue;
}
- switch (With) {
- case EWith::MissingDisks:
- if (BSGroupWithMissingDisks.count(groupId) == 0) {
- continue;
- }
- break;
- case EWith::SpaceProblems:
- if (BSGroupWithSpaceProblems.count(groupId) == 0) {
- continue;
- }
- break;
- case EWith::Everything:
- break;
- }
++foundGroups;
- pool->AddGroups()->SetGroupId(groupId);
+ if (Version == EVersion::v1) {
+ pool->AddGroups()->SetGroupId(groupId);
+ }
auto itHiveGroup = BSGroupHiveIndex.find(groupId);
if (itHiveGroup != BSGroupHiveIndex.end()) {
pool->SetAcquiredUnits(pool->GetAcquiredUnits() + itHiveGroup->second.GetAcquiredUnits());
@@ -658,6 +770,100 @@ public:
pool->SetOverall(poolInfo.Overall);
}
+ if (Version == EVersion::v2) {
+ TVector<TGroupRow> GroupRows;
+ for (const auto& [poolName, poolInfo] : StoragePoolInfo) {
+ if ((!FilterTenant.empty() || !FilterStoragePools.empty()) && FilterStoragePools.count(poolName) == 0) {
+ continue;
+ }
+ for (TString groupId : poolInfo.Groups) {
+ ++totalGroups;
+ if (!CheckGroupFilters(groupId, poolName)) {
+ continue;
+ }
+ ++foundGroups;
+
+ TGroupRow row;
+ row.PoolName = poolName;
+ row.GroupId = groupId;
+ row.Kind = poolInfo.Kind;
+
+ bool degraded = false;
+ auto ib = BSGroupIndex.find(groupId);
+ if (ib != BSGroupIndex.end()) {
+ row.Erasure = ib->second.GetErasureSpecies();
+ const auto& vDiskIds = ib->second.GetVDiskIds();
+ for (auto iv = vDiskIds.begin(); iv != vDiskIds.end(); ++iv) {
+ const NKikimrBlobStorage::TVDiskID& vDiskId = *iv;
+ auto ie = VDisksIndex.find(vDiskId);
+ if (ie != VDisksIndex.end()) {
+ ui32 nodeId = ie->second.GetNodeId();
+ ui32 pDiskId = ie->second.GetPDiskId();
+ degraded |= ie->second.GetReplicated() || ie->second.GetVDiskState() != NKikimrWhiteboard::EVDiskState::OK;
+ row.Used += ie->second.GetAllocatedSize();
+ row.Limit += ie->second.GetAllocatedSize() + ie->second.GetAvailableSize();
+ row.Read += ie->second.GetReadThroughput();
+ row.Write += ie->second.GetWriteThroughput();
+
+ auto ip = PDisksIndex.find(std::make_pair(nodeId, pDiskId));
+ if (ip != PDisksIndex.end()) {
+ degraded |= ip->second.GetState() != NKikimrBlobStorage::TPDiskState::Normal;
+ if (!ie->second.HasAvailableSize()) {
+ row.Limit += ip->second.GetAvailableSize();
+ }
+ }
+ }
+ }
+ }
+
+ if (degraded) {
+ row.Degraded++;
+ }
+ row.Usage = (float)row.Used / row.Limit;
+ GroupRows.emplace_back(row);
+ GroupRowsByGroupId[groupId] = row;
+ }
+ }
+
+ switch (GroupSort) {
+ case EGroupSort::PoolName:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.PoolName;}, ReverseSort);
+ break;
+ case EGroupSort::GroupId:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.GroupId;}, ReverseSort);
+ break;
+ case EGroupSort::Kind:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.Kind;}, ReverseSort);
+ break;
+ case EGroupSort::Erasure:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.Erasure;}, ReverseSort);
+ break;
+ case EGroupSort::Degraded:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.Degraded;}, ReverseSort);
+ break;
+ case EGroupSort::Usage:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.Usage;}, ReverseSort);
+ break;
+ case EGroupSort::Used:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.Used;}, ReverseSort);
+ break;
+ case EGroupSort::Limit:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.Limit;}, ReverseSort);
+ break;
+ case EGroupSort::Read:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.Read;}, ReverseSort);
+ break;
+ case EGroupSort::Write:
+ SortCollection(GroupRows, [](const TGroupRow& node) { return node.Write;}, ReverseSort);
+ break;
+ }
+
+ for (const auto& groupRow: GroupRows) {
+ NKikimrViewer::TStorageGroupInfo* group = StorageInfo.AddStorageGroups();
+ group->SetGroupId(groupRow.GroupId);
+ }
+ }
+
const FieldDescriptor* field;
if (NeedGroups) {
field = NKikimrViewer::TStorageGroupInfo::descriptor()->FindFieldByName("GroupId");
@@ -732,6 +938,9 @@ struct TJsonRequestParameters<TJsonStorage> {
{"name":"need_groups","in":"query","description":"return groups information","required":false,"type":"boolean","default":true},
{"name":"need_disks","in":"query","description":"return disks information","required":false,"type":"boolean","default":true},
{"name":"with","in":"query","description":"filter groups by missing or space","required":false,"type":"string"},
+ {"name":"sort","in":"query","description":"sort by (PoolName,Type,Erasure,Degraded,Usage,GroupId,Used,Limit,Read,Write)","required":false,"type":"string"},
+ {"name":"offset","in":"query","description":"skip N nodes","required":false,"type":"integer"},
+ {"name":"limit","in":"query","description":"limit to N nodes","required":false,"type":"integer"},
{"name":"timeout","in":"query","description":"timeout in ms","required":false,"type":"integer"}])___";
}
};
diff --git a/ydb/core/viewer/json_tenantinfo.h b/ydb/core/viewer/json_tenantinfo.h
index 846f1947d0..6ffaa361fd 100644
--- a/ydb/core/viewer/json_tenantinfo.h
+++ b/ydb/core/viewer/json_tenantinfo.h
@@ -386,6 +386,10 @@ public:
TenantNodesSystemInfo[tenantId] = std::move(ev->Get()->Record);
RequestDone();
break;
+ case NKikimrViewer::TEvViewerResponse::kReserved13:
+ case NKikimrViewer::TEvViewerResponse::kReserved14:
+ case NKikimrViewer::TEvViewerResponse::kReserved15:
+ case NKikimrViewer::TEvViewerResponse::kReserved16:
case NKikimrViewer::TEvViewerResponse::RESPONSE_NOT_SET:
break;
}
@@ -418,6 +422,10 @@ public:
case NKikimrViewer::TEvViewerRequest::kSystemRequest:
SendViewerSystemRequest(tenantId);
break;
+ case NKikimrViewer::TEvViewerRequest::kReserved13:
+ case NKikimrViewer::TEvViewerRequest::kReserved14:
+ case NKikimrViewer::TEvViewerRequest::kReserved15:
+ case NKikimrViewer::TEvViewerRequest::kReserved16:
case NKikimrViewer::TEvViewerRequest::REQUEST_NOT_SET:
break;
}
diff --git a/ydb/core/viewer/monitoring/index.html b/ydb/core/viewer/monitoring/index.html
index 09deeddf5d..61fba578c7 100644
--- a/ydb/core/viewer/monitoring/index.html
+++ b/ydb/core/viewer/monitoring/index.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./static/favicon.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="YDB Monitoring"/><title>YDB Monitoring</title><script>window.systemSettings={},window.userSettings={},window.web_version=!1,window.custom_backend=!1</script><script defer="defer" src="./static/js/main.8120faa2.js"></script><link href="./static/css/main.ff5b549d.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html> \ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./static/favicon.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="YDB Monitoring"/><title>YDB Monitoring</title><script>window.systemSettings={},window.userSettings={},window.web_version=!1,window.custom_backend=!1</script><script defer="defer" src="./static/js/main.8a169fdc.js"></script><link href="./static/css/main.a0419d3f.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html> \ No newline at end of file
diff --git a/ydb/core/viewer/monitoring/static/css/main.a0419d3f.css b/ydb/core/viewer/monitoring/static/css/main.a0419d3f.css
new file mode 100644
index 0000000000..f5da3127f0
--- /dev/null
+++ b/ydb/core/viewer/monitoring/static/css/main.a0419d3f.css
@@ -0,0 +1,2 @@
+@charset "UTF-8";@import url(https://fonts.googleapis.com/css2?family=Rubik&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--data-table-header-vertical-padding:5px;--data-table-cell-vertical-padding:5px;--data-table-cell-horizontal-padding:10px;--data-table-cell-border-padding:var(--data-table-cell-horizontal-padding);--data-table-cell-align:top;--data-table-head-align:top;--data-table-row-height:30px;--data-table-sort-icon-space:18px;--data-table-sort-icon-opacity-inactive:0.15;--data-table-sort-icon-color:inherit}.data-table{box-sizing:border-box;position:relative}.data-table__box{box-sizing:border-box;height:100%;width:100%}.data-table__box_sticky-head_moving{overflow:visible;position:relative;z-index:0}.data-table__box_sticky-head_moving .data-table__th{border-bottom:0;border-top:0;padding-bottom:0;padding-top:0}.data-table__box_sticky-head_moving .data-table__head-cell{display:block;height:0;overflow:hidden}.data-table__box_sticky-head_moving .data-table__row_header-data{visibility:hidden}.data-table__box_sticky-footer_fixed,.data-table__box_sticky-head_fixed{overflow:auto}.data-table__table{border-collapse:collapse;table-layout:fixed}.data-table__table_sticky{background:var(--data-table-color-base);width:100%}.data-table__row{height:30px;height:var(--data-table-row-height)}.data-table__th{border:1px solid var(--data-table-border-color);cursor:default;font-weight:500;padding:5px 10px;padding:var(--data-table-header-vertical-padding) var(--data-table-cell-horizontal-padding);position:relative;text-align:left;vertical-align:top;vertical-align:var(--data-table-head-align)}.data-table__th_sortable{cursor:pointer}.data-table__th_sortable .data-table__head-cell{padding-right:18px;padding-right:var(--data-table-sort-icon-space)}.data-table__th_sortable.data-table__th_align_right .data-table__head-cell{padding-left:18px;padding-left:var(--data-table-sort-icon-space);padding-right:0}.data-table__th_sortable.data-table__th_align_right .data-table__sort-icon{left:0;right:auto;-webkit-transform:translateY(-50%) scaleX(-1);transform:translateY(-50%) scaleX(-1)}.data-table__td{border:1px solid var(--data-table-border-color);overflow:hidden;padding:5px 10px;padding:var(--data-table-cell-vertical-padding) var(--data-table-cell-horizontal-padding);text-overflow:ellipsis;vertical-align:top;vertical-align:var(--data-table-cell-align);white-space:nowrap}.data-table__td_index,.data-table__th_index{text-align:right}.data-table__td_align_left,.data-table__th_align_left{text-align:left}.data-table__td_align_center,.data-table__th_align_center{text-align:center}.data-table__td_align_right,.data-table__th_align_right{text-align:right}.data-table__td:first-child,.data-table__th:first-child{padding-left:10px;padding-left:var(--data-table-cell-border-padding)}.data-table__td:last-child,.data-table__th:last-child{padding-right:10px;padding-right:var(--data-table-cell-border-padding)}.data-table__index{text-align:right}.data-table__head-cell{box-sizing:border-box;display:inline-block;max-width:100%;overflow:hidden;position:relative;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.data-table__error{padding:20px;white-space:pre-wrap}.data-table__sort-icon{color:inherit;color:var(--data-table-sort-icon-color);display:inline-flex;position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.data-table__sort-icon:after{content:attr(data-index);font-size:8px;left:100%;position:absolute;top:-5px}.data-table__sort-icon_shadow{opacity:.15;opacity:var(--data-table-sort-icon-opacity-inactive)}.data-table__sort-icon_shadow:after{content:none}.data-table__icon{vertical-align:top}.data-table__no-data{background:var(--data-table-color-stripe)}.data-table__sticky_fixed{left:0;overflow:hidden;position:absolute;right:0;z-index:1}.data-table__sticky_fixed.data-table__sticky_head{top:0}.data-table__sticky_fixed.data-table__sticky_footer{bottom:0}.data-table__sticky_moving{margin-bottom:-1px;position:-webkit-sticky;position:sticky;z-index:1}.data-table_striped-rows .data-table__row_odd{background:var(--data-table-color-stripe)}.data-table_highlight-rows .data-table__row:hover{background:var(--data-table-color-hover-area)}.data-table_header_multiline .data-table__head-cell{white-space:normal}.data-table_header_pre .data-table__head-cell{white-space:pre}.data-table__foot{background:var(--data-table-color-footer-area)}.data-table__foot_has-sticky-footer_moving{visibility:hidden}.data-table_theme_yandex-cloud{--data-table-color-base:var( --yc-color-base-background,var(--yc-color-base,var(--color-base)) );--data-table-color-stripe:var( --yc-color-base-generic-ultralight,var(--yc-color-base-area,var(--color-base-area)) );--data-table-border-color:var( --yc-color-base-generic-hover,var(--yc-color-contrast-15-solid,var(--color-contrast-15-solid)) );--data-table-color-hover-area:var( --yc-color-base-simple-hover,var(--yc-color-hover-area,var(--color-hover-area)) );--data-table-color-footer-area:var(--data-table-color-base)}.data-table_theme_legacy{--data-table-color-base:#fff;--data-table-color-stripe:rgba(0,0,0,.03);--data-table-border-color:#ddd;--data-table-color-hover-area:#ffeba0;--data-table-color-footer-area:var(--data-table-color-base)}.yc-toaster{align-items:flex-end;bottom:0;display:flex;flex-direction:column;position:fixed;right:10px;width:var(--yc-toaster-desktop-width);z-index:100000}.yc-toaster_mobile{left:50%;-webkit-transform:translate(-50%);transform:translate(-50%);width:calc(100% - 20px)}.yc-root{--yc-toaster-desktop-width:312px}.yc-toast{--yc-toaster-padding:16px;background-color:var(--yc-color-base-background);border-radius:8px;box-shadow:0 0 15px var(--yc-color-sfx-shadow);box-sizing:border-box;display:flex;font-size:13px;margin-bottom:10px;opacity:0;overflow:hidden;padding:var(--yc-toaster-padding);position:absolute;width:inherit;z-index:0}.yc-toast_mobile{width:100%}.yc-toast_created{opacity:1;position:relative}.yc-toast_appearing{height:0;margin-bottom:0;opacity:0;padding:0;transition:height .35s ease}.yc-toast_show-animation{-webkit-animation:toast-set-indents .35s ease forwards,toast-move-left .25s ease .35s forwards,toast-display-end .1ms .6s forwards;animation:toast-set-indents .35s ease forwards,toast-move-left .25s ease .35s forwards,toast-display-end .1ms .6s forwards}.yc-toast_show-animation.yc-toast_mobile{-webkit-animation:toast-set-indents .35s ease forwards,toast-move-top .25s ease .35s forwards;animation:toast-set-indents .35s ease forwards,toast-move-top .25s ease .35s forwards}.yc-toast_hide-animation{-webkit-animation:toast-move-right .25s ease forwards,toast-remove-height .35s ease .25s forwards,toast-hide-end .1ms .6s forwards;animation:toast-move-right .25s ease forwards,toast-remove-height .35s ease .25s forwards,toast-hide-end .1ms .6s forwards}.yc-toast_hide-animation.yc-toast_mobile{-webkit-animation:toast-move-bottom .25s ease forwards,toast-remove-height .35s ease .25s forwards,toast-hide-end .1ms .6s forwards;animation:toast-move-bottom .25s ease forwards,toast-remove-height .35s ease .25s forwards,toast-hide-end .1ms .6s forwards}.yc-toast_default{background-color:var(--yc-color-base-float)}.yc-toast_info .yc-toast__container:before{background-color:var(--yc-color-infographics-info-light)}.yc-toast_info .yc-toast__icon{color:var(--yc-color-infographics-info-heavy)}.yc-toast_success .yc-toast__container:before{background-color:var(--yc-color-infographics-positive-light)}.yc-toast_success .yc-toast__icon{color:var(--yc-color-infographics-positive-heavy)}.yc-toast_warning .yc-toast__container:before{background-color:var(--yc-color-base-warning)}.yc-toast_warning .yc-toast__icon{color:var(--yc-color-infographics-warning-heavy)}.yc-toast_error .yc-toast__container:before{background-color:var(--yc-color-infographics-danger-light)}.yc-toast_error .yc-toast__icon{color:var(--yc-color-infographics-danger-heavy)}.yc-toast .yc-toast__container{grid-row-gap:8px;display:grid;flex:1 1 auto;height:100%;row-gap:8px;width:100%}.yc-toast .yc-toast__container:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.yc-toast__icon-container{flex:0 0 auto;padding-right:8px}.yc-toast__title{font-size:var(--yc-text-subheader-2-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-2-line-height);line-height:24px;margin:0;padding-right:28px}.yc-toast__action{margin-right:8px}.yc-toast .yc-toast__btn-close{position:absolute;right:14px;top:14px}@-webkit-keyframes toast-move-right{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes toast-move-right{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes toast-move-left{0%{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes toast-move-left{0%{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes toast-move-top{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes toast-move-top{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes toast-move-bottom{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes toast-move-bottom{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes toast-remove-height{to{height:0;margin-bottom:0;padding:0}}@keyframes toast-remove-height{to{height:0;margin-bottom:0;padding:0}}@-webkit-keyframes toast-set-indents{to{margin-bottom:10px;padding:16px}}@keyframes toast-set-indents{to{margin-bottom:10px;padding:16px}}.yc-button{--yc-button-height:0;--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;-webkit-tap-highlight-color:rgba(0,0,0,0);background:none;background:transparent;border:none;box-sizing:border-box;color:inherit;cursor:pointer;display:inline-block;font-family:var(--yc-text-body-font-family);font-size:inherit;font-weight:400;height:var(--yc-button-height);line-height:var(--yc-button-height);margin:0;outline:none;overflow:visible;padding:0;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;-webkit-transform:scale(1);transform:scale(1);transition:color .15s linear,-webkit-transform .1s ease-out;transition:transform .1s ease-out,color .15s linear;transition:transform .1s ease-out,color .15s linear,-webkit-transform .1s ease-out;-webkit-user-select:none;user-select:none;white-space:nowrap}.yc-button:before{background-color:var(--yc-button-background-color);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:background-color .15s linear;z-index:-1}.yc-button:hover:before{background-color:var(--yc-button-background-color-hover)}.yc-button:focus:before{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-button:focus:not(:focus-visible):before{box-shadow:none}.yc-button:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;-webkit-transform:scale(1);transform:scale(1);transition:none;z-index:-1}.yc-button:active{-webkit-transform:scale(.96);transform:scale(.96);transition:none}.yc-button:active:after{-webkit-transform:scale(1.042);transform:scale(1.042)}.yc-button_size_s{--yc-button-height:24px;--yc-button-border-radius:var(--yc-border-radius-s);font-size:13px}.yc-button_size_s .yc-button__text{margin:0 10px}.yc-button_size_s .yc-button__icon{width:var(--yc-button-height)}.yc-button_size_s .yc-button__icon_side_left~.yc-button__text{margin-left:22px}.yc-button_size_s .yc-button__icon_side_right~.yc-button__text{margin-right:22px}.yc-button_size_m{--yc-button-height:28px;--yc-button-border-radius:var(--yc-border-radius-m);font-size:13px}.yc-button_size_m .yc-button__text{margin:0 13px}.yc-button_size_m .yc-button__icon{width:var(--yc-button-height)}.yc-button_size_m .yc-button__icon_side_left~.yc-button__text{margin-left:25px}.yc-button_size_m .yc-button__icon_side_right~.yc-button__text{margin-right:25px}.yc-button_size_l{--yc-button-height:36px;--yc-button-border-radius:var(--yc-border-radius-l);font-size:13px}.yc-button_size_l .yc-button__text{margin:0 18px}.yc-button_size_l .yc-button__icon{width:var(--yc-button-height)}.yc-button_size_l .yc-button__icon_side_left~.yc-button__text{margin-left:33px}.yc-button_size_l .yc-button__icon_side_right~.yc-button__text{margin-right:33px}.yc-button_size_xl{--yc-button-height:44px;--yc-button-border-radius:var(--yc-border-radius-xl);font-size:15px}.yc-button_size_xl .yc-button__text{margin:0 25px}.yc-button_size_xl .yc-button__icon{width:var(--yc-button-height)}.yc-button_size_xl .yc-button__icon_side_left~.yc-button__text{margin-left:40px}.yc-button_size_xl .yc-button__icon_side_right~.yc-button__text{margin-right:40px}.yc-button_view_normal{--yc-button-background-color:var(--yc-color-base-generic);--yc-button-background-color-hover:var(--yc-color-base-generic-hover)}.yc-button_view_normal,.yc-button_view_normal:active,.yc-button_view_normal:focus,.yc-button_view_normal:hover,.yc-button_view_normal:link,.yc-button_view_normal:visited{color:var(--yc-color-text-primary)}.yc-button_view_normal.yc-button_selected{--yc-button-background-color:var(--yc-color-base-selection);--yc-button-background-color-hover:var(--yc-color-base-selection-hover)}.yc-button_view_normal.yc-button_selected,.yc-button_view_normal.yc-button_selected:active,.yc-button_view_normal.yc-button_selected:focus,.yc-button_view_normal.yc-button_selected:hover,.yc-button_view_normal.yc-button_selected:link,.yc-button_view_normal.yc-button_selected:visited{color:var(--yc-color-text-special);color:var(--yc-my-color-brand-text,var(--yc-color-text-special))}.yc-button_view_action{--yc-button-background-color:var(--yc-color-base-special);--yc-button-background-color-hover:var(--yc-color-base-special-hover)}.yc-button_view_action,.yc-button_view_action:active,.yc-button_view_action:focus,.yc-button_view_action:hover,.yc-button_view_action:link,.yc-button_view_action:visited{color:var(--yc-my-color-brand-text-contrast)}.yc-button_view_outlined,.yc-button_view_outlined-danger,.yc-button_view_outlined-info{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--yc-color-base-simple-hover)}.yc-button_view_outlined,.yc-button_view_outlined:active,.yc-button_view_outlined:focus,.yc-button_view_outlined:hover,.yc-button_view_outlined:link,.yc-button_view_outlined:visited{color:var(--yc-color-text-primary)}.yc-button_view_outlined:before{border:1px solid var(--yc-color-line-generic)}.yc-button_view_outlined-info,.yc-button_view_outlined-info:active,.yc-button_view_outlined-info:focus,.yc-button_view_outlined-info:hover,.yc-button_view_outlined-info:link,.yc-button_view_outlined-info:visited{color:var(--yc-color-text-info)}.yc-button_view_outlined-info:before{border:1px solid var(--yc-color-line-info)}.yc-button_view_outlined-danger,.yc-button_view_outlined-danger:active,.yc-button_view_outlined-danger:focus,.yc-button_view_outlined-danger:hover,.yc-button_view_outlined-danger:link,.yc-button_view_outlined-danger:visited{color:var(--yc-color-text-danger)}.yc-button_view_outlined-danger:before{border:1px solid var(--yc-color-line-danger)}.yc-button_view_raised{--yc-button-background-color:var(--yc-color-base-float);--yc-button-background-color-hover:var(--yc-color-base-float-hover)}.yc-button_view_raised,.yc-button_view_raised:active,.yc-button_view_raised:focus,.yc-button_view_raised:hover,.yc-button_view_raised:link,.yc-button_view_raised:visited{color:var(--yc-color-text-primary)}.yc-button_view_raised:before{box-shadow:0 3px 5px var(--yc-color-sfx-shadow)}.yc-button_view_raised:focus:not(:focus-visible):before{box-shadow:0 3px 5px var(--yc-color-sfx-shadow)}.yc-button_view_raised:active:before{box-shadow:0 1px 2px var(--yc-color-sfx-shadow)}.yc-button_view_raised:active:focus:before{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-button_view_raised:active:focus:not(:focus-visible):before{box-shadow:0 1px 2px var(--yc-color-sfx-shadow)}.yc-button_view_flat,.yc-button_view_flat-danger,.yc-button_view_flat-info,.yc-button_view_flat-secondary{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--yc-color-base-simple-hover)}.yc-button_view_flat,.yc-button_view_flat:active,.yc-button_view_flat:focus,.yc-button_view_flat:hover,.yc-button_view_flat:link,.yc-button_view_flat:visited{color:var(--yc-color-text-primary)}.yc-button_view_flat-info,.yc-button_view_flat-info:active,.yc-button_view_flat-info:focus,.yc-button_view_flat-info:hover,.yc-button_view_flat-info:link,.yc-button_view_flat-info:visited{color:var(--yc-color-text-info)}.yc-button_view_flat-danger,.yc-button_view_flat-danger:active,.yc-button_view_flat-danger:focus,.yc-button_view_flat-danger:hover,.yc-button_view_flat-danger:link,.yc-button_view_flat-danger:visited{color:var(--yc-color-text-danger)}.yc-button_view_flat-secondary,.yc-button_view_flat-secondary:active,.yc-button_view_flat-secondary:focus,.yc-button_view_flat-secondary:link,.yc-button_view_flat-secondary:visited{color:var(--yc-color-text-secondary)}.yc-button_view_flat-secondary:hover{color:var(--yc-color-text-primary)}.yc-button_view_normal-contrast{--yc-button-background-color:var(--yc-color-base-light);--yc-button-background-color-hover:var(--yc-color-base-light-hover)}.yc-button_view_normal-contrast,.yc-button_view_normal-contrast:active,.yc-button_view_normal-contrast:focus,.yc-button_view_normal-contrast:hover,.yc-button_view_normal-contrast:link,.yc-button_view_normal-contrast:visited{color:var(--yc-color-text-dark-primary)}.yc-button_view_outlined-contrast{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--yc-color-base-light-simple-hover)}.yc-button_view_outlined-contrast,.yc-button_view_outlined-contrast:active,.yc-button_view_outlined-contrast:focus,.yc-button_view_outlined-contrast:hover,.yc-button_view_outlined-contrast:link,.yc-button_view_outlined-contrast:visited{color:var(--yc-color-text-light-primary)}.yc-button_view_outlined-contrast:before{border:1px solid var(--yc-color-line-light)}.yc-button_view_flat-contrast{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--yc-color-base-light-simple-hover)}.yc-button_view_flat-contrast,.yc-button_view_flat-contrast:active,.yc-button_view_flat-contrast:focus,.yc-button_view_flat-contrast:hover,.yc-button_view_flat-contrast:link,.yc-button_view_flat-contrast:visited{color:var(--yc-color-text-light-primary)}.yc-button_view_flat-danger.yc-button_disabled:not(.yc-button_loading),.yc-button_view_flat-info.yc-button_disabled:not(.yc-button_loading),.yc-button_view_flat.yc-button_disabled:not(.yc-button_loading){--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;color:var(--yc-color-text-hint)}.yc-button_view_flat-contrast.yc-button_disabled:not(.yc-button_loading){--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;color:var(--yc-color-text-light-hint)}.yc-button_view_normal-contrast.yc-button_disabled:not(.yc-button_loading),.yc-button_view_outlined-contrast.yc-button_disabled:not(.yc-button_loading){--yc-button-background-color:var(--yc-color-base-light-disabled);--yc-button-background-color-hover:var(--yc-color-base-light-disabled);color:var(--yc-color-text-light-secondary)}.yc-button.yc-button_pin_round-round:before{border-radius:var(--yc-button-border-radius)}.yc-button.yc-button_pin_brick-brick:before{border-radius:0}.yc-button.yc-button_pin_clear-clear:before{border-left:0;border-radius:0;border-right:0}.yc-button.yc-button_pin_circle-circle:before{border-radius:100px}.yc-button.yc-button_pin_round-brick:before{border-radius:var(--yc-button-border-radius) 0 0 var(--yc-button-border-radius)}.yc-button.yc-button_pin_brick-round:before{border-radius:0 var(--yc-button-border-radius) var(--yc-button-border-radius) 0}.yc-button.yc-button_pin_round-clear:before{border-radius:var(--yc-button-border-radius) 0 0 var(--yc-button-border-radius);border-right:0}.yc-button.yc-button_pin_clear-round:before{border-left:0;border-radius:0 var(--yc-button-border-radius) var(--yc-button-border-radius) 0}.yc-button.yc-button_pin_brick-clear:before{border-radius:0;border-right:0}.yc-button.yc-button_pin_clear-brick:before{border-left:0;border-radius:0}.yc-button.yc-button_pin_circle-brick:before{border-radius:100px 0 0 100px}.yc-button.yc-button_pin_brick-circle:before{border-radius:0 100px 100px 0}.yc-button.yc-button_pin_circle-clear:before{border-radius:100px 0 0 100px;border-right:0}.yc-button.yc-button_pin_clear-circle:before{border-left:0;border-radius:0 100px 100px 0}.yc-button.yc-button_pin_round-round:after{border-radius:var(--yc-button-border-radius)}.yc-button.yc-button_pin_brick-brick:after{border-radius:0}.yc-button.yc-button_pin_clear-clear:after{border-left:0;border-radius:0;border-right:0}.yc-button.yc-button_pin_circle-circle:after{border-radius:100px}.yc-button.yc-button_pin_round-brick:after{border-radius:var(--yc-button-border-radius) 0 0 var(--yc-button-border-radius)}.yc-button.yc-button_pin_brick-round:after{border-radius:0 var(--yc-button-border-radius) var(--yc-button-border-radius) 0}.yc-button.yc-button_pin_round-clear:after{border-radius:var(--yc-button-border-radius) 0 0 var(--yc-button-border-radius);border-right:0}.yc-button.yc-button_pin_clear-round:after{border-left:0;border-radius:0 var(--yc-button-border-radius) var(--yc-button-border-radius) 0}.yc-button.yc-button_pin_brick-clear:after{border-radius:0;border-right:0}.yc-button.yc-button_pin_clear-brick:after{border-left:0;border-radius:0}.yc-button.yc-button_pin_circle-brick:after{border-radius:100px 0 0 100px}.yc-button.yc-button_pin_brick-circle:after{border-radius:0 100px 100px 0}.yc-button.yc-button_pin_circle-clear:after{border-radius:100px 0 0 100px;border-right:0}.yc-button.yc-button_pin_clear-circle:after{border-left:0;border-radius:0 100px 100px 0}.yc-button__text{display:inline-block;white-space:nowrap}.yc-button__icon{display:inline-block;height:100%;pointer-events:none;position:relative}.yc-button__icon:after{content:" ";visibility:hidden}.yc-button__icon-inner{align-items:center;bottom:0;display:flex;justify-content:center;left:0;right:0}.yc-button__icon-inner,.yc-button__icon_side_left,.yc-button__icon_side_right{position:absolute;top:0}.yc-button__icon_side_left{left:0}.yc-button__icon_side_right{right:0}.yc-button_disabled{cursor:default;pointer-events:none}.yc-button_disabled:not(.yc-button_loading){--yc-button-background-color:var(--yc-color-base-generic-accent-disabled);--yc-button-background-color-hover:var(--yc-color-base-generic-accent-disabled);color:var(--yc-color-text-hint)}.yc-button_disabled:not(.yc-button_loading):before,.yc-button_disabled:not(.yc-button_loading):hover:before{border:none}.yc-button_disabled:active{-webkit-transform:scale(1);transform:scale(1)}.yc-button_loading:before{-webkit-animation:yc-loading-animation .5s linear infinite;animation:yc-loading-animation .5s linear infinite;background-clip:padding-box;background-image:repeating-linear-gradient(-45deg,var(--yc-button-background-color),var(--yc-button-background-color) 4px,var(--yc-button-background-color-hover) 4px,var(--yc-button-background-color-hover) 8px);background-size:150%}.yc-button_width_auto{max-width:100%}.yc-button_width_max{width:100%}.yc-button_width_auto .yc-button__text,.yc-button_width_max .yc-button__text{display:block;overflow:hidden;text-overflow:ellipsis}.yc-icon{color:inherit;line-height:0;vertical-align:top}.ydb-tree-view{--ydb-tree-view-level:0;font-size:13px;line-height:18px}.ydb-tree-view,.ydb-tree-view *{box-sizing:border-box}.ydb-tree-view__item{align-items:center;border-bottom:1px solid var(--yc-color-line-solid);cursor:pointer;display:flex;height:24px;padding-left:calc(24px*var(--ydb-tree-view-level));padding-right:3px}.ydb-tree-view__item:hover{background-color:var(--yc-color-base-simple-hover)}.ydb-tree-view__item:hover .ydb-tree-view__actions{display:block}.ydb-tree-view__item_active{background-color:var(--yc-color-base-selection);font-weight:700}.ydb-tree-view__item_active:hover{background-color:var(--yc-color-base-selection-hover)}.ydb-tree-view__content{align-items:center;display:flex;flex-grow:1;overflow:hidden}.ydb-tree-view__icon{align-items:center;color:var(--yc-color-text-hint);display:flex;flex-shrink:0;height:24px;justify-content:center;width:24px}.ydb-tree-view__icon svg{display:block}.ydb-tree-view__text{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ydb-tree-view__actions{display:none;margin-left:6px}.ydb-tree-view .tree-view_arrow{background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 12" width="6" height="12"><path d="M0.192529 10.7483C-0.0845649 11.0562 -0.0596061 11.5304 0.248276 11.8075C0.556159 12.0846 1.03038 12.0596 1.30747 11.7517L0.192529 10.7483ZM5.25 6.25L5.80747 6.75172C6.06418 6.46649 6.06418 6.0335 5.80747 5.74828L5.25 6.25ZM1.30747 0.748277C1.03038 0.440394 0.556159 0.415435 0.248276 0.69253C-0.0596065 0.969624 -0.0845653 1.44384 0.192529 1.75172L1.30747 0.748277ZM1.30747 11.7517L5.80747 6.75172L4.69253 5.74828L0.192529 10.7483L1.30747 11.7517ZM5.80747 5.74828L1.30747 0.748277L0.192529 1.75172L4.69253 6.75172L5.80747 5.74828Z" fill="rgba%280, 0, 0, 0.85%29"/></svg>') no-repeat 50%;cursor:pointer;flex-shrink:0;height:24px;width:24px}.yc-root_theme_dark .ydb-tree-view .tree-view_arrow{background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 12" width="6" height="12"><path d="M0.192529 10.7483C-0.0845649 11.0562 -0.0596061 11.5304 0.248276 11.8075C0.556159 12.0846 1.03038 12.0596 1.30747 11.7517L0.192529 10.7483ZM5.25 6.25L5.80747 6.75172C6.06418 6.46649 6.06418 6.0335 5.80747 5.74828L5.25 6.25ZM1.30747 0.748277C1.03038 0.440394 0.556159 0.415435 0.248276 0.69253C-0.0596065 0.969624 -0.0845653 1.44384 0.192529 1.75172L1.30747 0.748277ZM1.30747 11.7517L5.80747 6.75172L4.69253 5.74828L0.192529 10.7483L1.30747 11.7517ZM5.80747 5.74828L1.30747 0.748277L0.192529 1.75172L4.69253 6.75172L5.80747 5.74828Z" fill="rgba%28255, 255, 255, 0.85%29"/></svg>') no-repeat 50%}.ydb-tree-view .tree-view_arrow:not(.tree-view_arrow-collapsed){-webkit-transform:rotate(90deg);transform:rotate(90deg)}.ydb-tree-view_no-arrow .tree-view_arrow{visibility:hidden}.ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:24px}.ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:48px}.ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:72px}.ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:96px}.ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:120px}.ydb-navigation-tree-view-loader{align-items:center;display:flex;height:24px;justify-content:center;width:20px}.ydb-navigation-tree-view-error{color:var(--yc-color-text-danger)}.ydb-navigation-tree-view-empty{color:var(--yc-color-text-secondary);font-style:italic}.info-viewer{--ydb-info-viewer-font-size:var(--yc-text-body-2-font-size);--ydb-info-viewer-line-height:var(--yc-text-body-2-line-height);--ydb-info-viewer-title-font-weight:600;--ydb-info-viewer-title-margin:15px 0 10px;--ydb-info-viewer-items-gap:7px;font-size:var(--ydb-info-viewer-font-size);line-height:var(--ydb-info-viewer-line-height)}.info-viewer__title{font-weight:var(--ydb-info-viewer-title-font-weight);margin:var(--ydb-info-viewer-title-margin)}.info-viewer__items{display:flex;flex-direction:column;gap:var(--ydb-info-viewer-items-gap);max-width:100%}.info-viewer__row{align-items:baseline;display:flex;max-width:100%;padding-top:4px}.info-viewer__label{align-items:baseline;color:var(--yc-color-text-secondary);display:flex;flex:0 1 auto;min-width:200px;white-space:nowrap}.info-viewer__label-text_multiline{max-width:180px;overflow:visible;white-space:normal}.info-viewer__dots{border-bottom:1px dotted var(--yc-color-text-secondary);display:flex;flex:1 1 auto;margin:0 2px}.info-viewer__value{display:flex;min-width:130px;word-break:break-all}.info-viewer_size_s{--ydb-info-viewer-font-size:var(--yc-text-body-1-font-size);--ydb-info-viewer-line-height:var(--yc-text-body-1-line-height);--ydb-info-viewer-title-font-weight:500;--ydb-info-viewer-title-margin:0 0 4px;--ydb-info-viewer-items-gap:4px}.info-viewer_size_s .info-viewer__row{height:auto}.info-viewer_size_s .info-viewer__label{min-width:85px}.ydb-node-endpoints-tooltip-content .info-viewer__value{min-width:70px}.entity-status{align-items:center;display:inline-flex;font-size:var(--yc-text-body-2-font-size);height:100%;line-height:var(--yc-text-body-2-line-height);max-width:100%}.entity-status__clipboard-button{align-items:center;color:var(--yc-color-text-secondary);display:none;margin-left:8px}.entity-status__clipboard-button .yc-button__text{margin:0}.entity-status__clipboard-button .yc-clipboard-button{height:24px;width:24px}.entity-status__clipboard-button_visible{display:inline-flex}.entity-status a{color:var(--yc-color-text-link);text-decoration:none}.entity-status a:hover{color:var(--yc-color-text-link-hover)}.entity-status__label{color:var(--yc-color-text-complementary);font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);margin-right:2px}.entity-status__link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-status__link_with-left-trim{direction:rtl}.entity-status__link_with-left-trim .entity-status__name{unicode-bidi:plaintext}.entity-status__status-color,.entity-status__status-icon{border-radius:3px;flex-shrink:0;margin-right:8px}.entity-status__status-color_size_xs,.entity-status__status-icon_size_xs{aspect-ratio:1;height:12px;width:12px}.entity-status__status-color_size_s,.entity-status__status-icon_size_s{aspect-ratio:1;height:16px;width:16px}.entity-status__status-color_size_m,.entity-status__status-icon_size_m{aspect-ratio:1;height:18px;width:18px}.entity-status__status-color_state_green,.entity-status__status-color_state_running{background-color:var(--yc-color-infographics-positive-heavy)}.entity-status__status-color_state_yellow{background-color:var(--yc-color-infographics-warning-heavy)}.entity-status__status-color_state_blue{background-color:var(--yc-color-infographics-info-heavy)}.entity-status__status-color_state_red{background:var(--yc-color-infographics-danger-heavy)}.entity-status__status-color_state_gray,.entity-status__status-color_state_grey{background:var(--yc-color-text-complementary)}.entity-status__status-color_state_orange{background:var(--yc-color-base-warning-orange)}.entity-status__status-icon_state_blue{color:var(--yc-color-infographics-info-heavy)}.entity-status__status-icon_state_yellow{color:var(--yc-color-infographics-warning-heavy)}.entity-status__status-icon_state_orange{color:var(--yc-color-base-warning-orange)}.entity-status__status-icon_state_red{color:var(--yc-color-infographics-danger-heavy)}.entity-status_size_m{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.yc-link{-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;text-decoration:none;touch-action:manipulation}.yc-link:focus{outline:2px solid var(--yc-color-line-misc)}.yc-link:focus:not(:focus-visible){outline:0}.yc-link_view_normal{color:var(--yc-color-text-link)}.yc-link_view_normal:hover{color:var(--yc-color-text-link-hover)}.yc-link_view_primary{color:var(--yc-color-text-primary)}.yc-link_view_primary:hover{color:var(--yc-color-text-link-hover)}.yc-link_view_secondary{color:var(--yc-color-text-secondary)}.yc-link_view_secondary:hover{color:var(--yc-color-text-link-hover)}.yc-link_view_normal-visitable{color:var(--yc-color-text-link)}.yc-link_view_normal-visitable:visited{color:var(--yc-color-text-link-visited)}.yc-link_view_normal-visitable:hover{color:var(--yc-color-text-link-hover)}.yc-link_view_normal-visitable:visited:hover{color:var(--yc-color-text-link-visited-hover)}.yc-clipboard-button{--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent}.yc-clipboard-icon__state{-webkit-animation:yc-clipboard-icon-state-dash 1s;animation:yc-clipboard-icon-state-dash 1s}@-webkit-keyframes yc-clipboard-icon-state-dash{0%{stroke-dasharray:0 15}40%{stroke-dasharray:15 0}to{stroke-dasharray:15 0}}@keyframes yc-clipboard-icon-state-dash{0%{stroke-dasharray:0 15}40%{stroke-dasharray:15 0}to{stroke-dasharray:15 0}}.yc-popup{--yc-popup-background-color:var(--yc-color-base-float);--yc-popup-border-color:var(--yc-color-line-solid);--yc-popup-border-width:1px;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;background-color:var(--yc-popup-background-color);border-radius:4px;box-shadow:0 0 0 var(--yc-popup-border-width) var(--yc-popup-border-color),0 8px 20px var(--yc-popup-border-width) var(--yc-color-sfx-shadow);outline:none;position:relative}.yc-popup>.yc-popup__arrow+*,.yc-popup>:first-child:not(.yc-popup__arrow){border-top-left-radius:inherit;border-top-right-radius:inherit}.yc-popup>:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.yc-popup__arrow-content{display:flex;height:18px;overflow:hidden;position:relative;width:18px}.yc-popup__arrow-circle-wrapper{background-color:initial;height:9px;overflow:hidden;position:relative;width:9px}.yc-popup__arrow-circle{border-radius:50%;box-shadow:inset 0 0 0 calc(5px - var(--yc-popup-border-width)) var(--yc-popup-background-color),inset 0 0 0 5px var(--yc-popup-border-color);box-sizing:border-box;height:30px;position:absolute;width:28px}.yc-popup__arrow-circle_left{bottom:-4px;right:-5px}.yc-popup__arrow-circle_right{bottom:-4px;left:-5px}.yc-popup-wrapper{visibility:hidden;z-index:1000}.yc-popup-wrapper_exit_active,.yc-popup-wrapper_open{visibility:visible}.yc-popup-wrapper_exit_active[data-popper-placement*=bottom] .yc-popup{-webkit-animation-name:yc-popup-bottom;animation-name:yc-popup-bottom}.yc-popup-wrapper_exit_active[data-popper-placement*=top] .yc-popup{-webkit-animation-name:yc-popup-top;animation-name:yc-popup-top}.yc-popup-wrapper_exit_active[data-popper-placement*=left] .yc-popup{-webkit-animation-name:yc-popup-left;animation-name:yc-popup-left}.yc-popup-wrapper_exit_active[data-popper-placement*=right] .yc-popup{-webkit-animation-name:yc-popup-right;animation-name:yc-popup-right}.yc-popup-wrapper_appear_active[data-popper-placement*=bottom] .yc-popup,.yc-popup-wrapper_enter_active[data-popper-placement*=bottom] .yc-popup{-webkit-animation-name:yc-popup-bottom-open;animation-name:yc-popup-bottom-open}.yc-popup-wrapper_appear_active[data-popper-placement*=top] .yc-popup,.yc-popup-wrapper_enter_active[data-popper-placement*=top] .yc-popup{-webkit-animation-name:yc-popup-top-open;animation-name:yc-popup-top-open}.yc-popup-wrapper_appear_active[data-popper-placement*=left] .yc-popup,.yc-popup-wrapper_enter_active[data-popper-placement*=left] .yc-popup{-webkit-animation-name:yc-popup-left-open;animation-name:yc-popup-left-open}.yc-popup-wrapper_appear_active[data-popper-placement*=right] .yc-popup,.yc-popup-wrapper_enter_active[data-popper-placement*=right] .yc-popup{-webkit-animation-name:yc-popup-right-open;animation-name:yc-popup-right-open}.yc-popup-wrapper[data-popper-placement*=bottom] .yc-popup__arrow{top:-9px}.yc-popup-wrapper[data-popper-placement*=top] .yc-popup__arrow{bottom:-9px}.yc-popup-wrapper[data-popper-placement*=top] .yc-popup__arrow-content{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.yc-popup-wrapper[data-popper-placement*=left] .yc-popup__arrow{right:-9px}.yc-popup-wrapper[data-popper-placement*=left] .yc-popup__arrow-content{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.yc-popup-wrapper[data-popper-placement*=right] .yc-popup__arrow{left:-9px}.yc-popup-wrapper[data-popper-placement*=right] .yc-popup__arrow-content{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@-webkit-keyframes yc-popup-bottom{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes yc-popup-bottom{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes yc-popup-bottom-open{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes yc-popup-bottom-open{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes yc-popup-top{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}@keyframes yc-popup-top{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}@-webkit-keyframes yc-popup-top-open{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes yc-popup-top-open{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes yc-popup-left{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}}@keyframes yc-popup-left{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}}@-webkit-keyframes yc-popup-left-open{0%{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes yc-popup-left-open{0%{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes yc-popup-right{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes yc-popup-right{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes yc-popup-right-open{0%{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes yc-popup-right-open{0%{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}.ydb-pool-bar{border:1px solid;border-radius:1px;cursor:pointer;height:20px;margin-right:2px;position:relative;width:6px}.ydb-pool-bar__popup-content{padding:10px;width:170px}.ydb-pool-bar:last-child{margin-right:0}.ydb-pool-bar_type_normal{border-color:var(--yc-color-infographics-positive-heavy)}.ydb-pool-bar_type_warning{border-color:var(--yc-color-infographics-warning-heavy)}.ydb-pool-bar_type_danger{border-color:var(--yc-color-infographics-danger-heavy)}.ydb-pool-bar__value{bottom:0;min-height:1px;position:absolute;width:100%}.ydb-pool-bar__value_type_normal{background-color:var(--yc-color-infographics-positive-heavy)}.ydb-pool-bar__value_type_warning{background-color:var(--yc-color-infographics-warning-heavy)}.ydb-pool-bar__value_type_danger{background-color:var(--yc-color-infographics-danger-heavy)}.ydb-pools-graph{display:flex}.tablets-statistic{align-items:center;display:flex;gap:2px}.tablets-statistic__tablet{border:1px solid;border-radius:2px;color:var(--yc-color-text-secondary);display:inline-block;font-size:11px;height:20px;line-height:20px;padding:0 4px;text-align:center;text-decoration:none;text-transform:uppercase}.tablets-statistic__tablet_state_green{background-color:var(--yc-color-base-positive);color:var(--yc-color-text-positive)}.tablets-statistic__tablet_state_yellow{background-color:var(--yc-color-base-warning);color:var(--yc-color-text-warning)}.tablets-statistic__tablet_state_blue{background-color:var(--yc-color-base-info);color:var(--yc-color-text-info)}.tablets-statistic__tablet_state_orange{background-color:var(--yc-color-infographics-warning-light);color:var(--yc-color-text-warning-heavy)}.tablets-statistic__tablet_state_red{background:var(--yc-color-base-danger);color:var(--yc-color-text-danger)}.tablets-statistic__tablet_state_gray{border:1px solid var(--yc-color-line-generic-hover);color:var(--yc-color-text-secondary)}.yc-radio-button{--yc-radio-button-inner-border-radius:calc(var(--yc-radio-button-border-radius) - 3px);background-color:var(--yc-color-base-generic);border-radius:var(--yc-radio-button-border-radius);box-sizing:border-box;display:inline-flex;flex-direction:row;font-family:var(--yc-text-body-font-family);font-weight:400;position:relative}.yc-radio-button__plate{bottom:0;position:absolute;top:0;transition:left .2s,width .2s}.yc-radio-button__plate[hidden]{display:none}.yc-radio-button__option{border-radius:var(--yc-radio-button-inner-border-radius);cursor:pointer;flex:1 1 auto;text-align:center;-webkit-transform:scale(1);transform:scale(1);transition:color .15s linear;-webkit-user-select:none;user-select:none}.yc-radio-button__option-outline{border-radius:var(--yc-radio-button-inner-border-radius);bottom:3px;content:"";left:3px;position:absolute;right:3px;top:3px;z-index:-1}.yc-radio-button__option-control{border:none;cursor:inherit;height:100%;left:0;margin:0;opacity:0;outline:none;padding:0;position:absolute;top:0;width:100%}.yc-radio-button__option-control:focus+.yc-radio-button__option-outline{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-radio-button__option-control:focus:not(:focus-visible)+.yc-radio-button__option-outline{box-shadow:none}.yc-radio-button__option-text{color:var(--yc-color-text-complementary);display:inline-block;white-space:nowrap}.yc-radio-button__option-text_icon{align-items:center;display:flex;height:100%}.yc-radio-button__option:hover .yc-radio-button__option-text,.yc-radio-button__option_checked .yc-radio-button__option-text{color:var(--yc-color-text-primary)}.yc-radio-button__option_checked{cursor:default}.yc-radio-button__option_disabled{cursor:default;pointer-events:none}.yc-radio-button__option_disabled .yc-radio-button__option-text{color:var(--yc-color-text-hint)}.yc-radio-button__option:before,.yc-radio-button__plate:before{border-radius:var(--yc-radio-button-inner-border-radius);bottom:3px;left:3px;position:absolute;right:3px;top:3px}.yc-radio-button__option:before{z-index:-1}.yc-radio-button__plate:before,.yc-radio-button__plate[hidden]~.yc-radio-button__option_checked:before{background-color:var(--yc-color-base-background);content:""}.yc-radio-button_size_s{--yc-radio-button-border-radius:var(--yc-border-radius-s)}.yc-radio-button_size_s .yc-radio-button__option{font-size:13px;height:24px;line-height:24px}.yc-radio-button_size_s .yc-radio-button__option-text{margin:0 10px}.yc-radio-button_size_m{--yc-radio-button-border-radius:var(--yc-border-radius-m)}.yc-radio-button_size_m .yc-radio-button__option{font-size:13px;height:28px;line-height:28px}.yc-radio-button_size_m .yc-radio-button__option-text{margin:0 13px}.yc-radio-button_size_l{--yc-radio-button-border-radius:var(--yc-border-radius-l)}.yc-radio-button_size_l .yc-radio-button__option{font-size:13px;height:36px;line-height:36px}.yc-radio-button_size_l .yc-radio-button__option-text{margin:0 18px}.yc-radio-button_size_xl{--yc-radio-button-border-radius:var(--yc-border-radius-xl)}.yc-radio-button_size_xl .yc-radio-button__option{font-size:15px;height:44px;line-height:44px}.yc-radio-button_size_xl .yc-radio-button__option-text{margin:0 25px}.yc-radio-button_width_auto{max-width:100%}.yc-radio-button_width_max{width:100%}.yc-radio-button_width_auto .yc-radio-button__option,.yc-radio-button_width_max .yc-radio-button__option{overflow:hidden}.yc-radio-button_width_auto .yc-radio-button__option-text,.yc-radio-button_width_max .yc-radio-button__option-text{display:block;overflow:hidden;text-overflow:ellipsis}.yc-text-input{display:inline-block;position:relative;width:100%}.yc-text-input__content{box-sizing:border-box;display:flex;width:100%}.yc-text-input__control{background-color:initial;border:none;box-sizing:border-box;color:var(--yc-color-text-primary);display:inline-block;flex-grow:1;font-family:var(--yc-text-body-font-family);font-weight:400;margin:0;padding:0;position:relative;vertical-align:top;width:100%}.yc-text-input__control::-webkit-input-placeholder{color:var(--yc-color-text-hint)}.yc-text-input__control::placeholder{color:var(--yc-color-text-hint)}.yc-text-input__control:focus{outline:none}.yc-text-input__control_type_textarea{overflow-x:hidden;resize:none}.yc-text-input__control_type_textarea:not(.yc-text-input__control_autosize){height:auto}.yc-text-input__control[type=number]{-webkit-appearance:textfield;appearance:textfield}.yc-text-input__label{box-sizing:border-box;max-width:50%;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap;z-index:1}.yc-text-input__error{color:var(--yc-color-text-danger);font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height);margin-top:2px}.yc-text-input__clear[class]{--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;color:var(--yc-color-text-hint)}.yc-text-input__clear[class]:hover{color:var(--yc-color-text-primary)}.yc-text-input__clear_textarea{position:absolute;right:0;top:0}.yc-text-input__clear:not(.yc-text-input__clear_textarea){margin:-1px}.yc-text-input__additional-content{align-items:center;display:flex}.yc-text-input_size_s{--yc-text-input-border-radius:var(--yc-border-radius-s)}.yc-text-input_size_s .yc-text-input__control{padding:4px 8px}.yc-text-input_size_s .yc-text-input__control,.yc-text-input_size_s .yc-text-input__label{font-size:var(--yc-text-body-short-font-size);font-weight:var(--yc-text-body-font-weight);height:22px;line-height:var(--yc-text-body-short-line-height)}.yc-text-input_size_s .yc-text-input__label{font-weight:var(--yc-text-accent-font-weight);padding:4px 4px 4px 8px}.yc-text-input_size_s .yc-text-input__additional-content{height:22px;padding-right:1px}.yc-text-input_size_m{--yc-text-input-border-radius:var(--yc-border-radius-m)}.yc-text-input_size_m .yc-text-input__control{padding:6px 8px}.yc-text-input_size_m .yc-text-input__control,.yc-text-input_size_m .yc-text-input__label{font-size:var(--yc-text-body-short-font-size);font-weight:var(--yc-text-body-font-weight);height:26px;line-height:var(--yc-text-body-short-line-height)}.yc-text-input_size_m .yc-text-input__label{font-weight:var(--yc-text-accent-font-weight);padding:6px 4px 6px 8px}.yc-text-input_size_m .yc-text-input__additional-content{height:26px;padding-right:1px}.yc-text-input_size_l{--yc-text-input-border-radius:var(--yc-border-radius-l)}.yc-text-input_size_l .yc-text-input__control{padding:10px 12px}.yc-text-input_size_l .yc-text-input__control,.yc-text-input_size_l .yc-text-input__label{font-size:var(--yc-text-body-short-font-size);font-weight:var(--yc-text-body-font-weight);height:34px;line-height:var(--yc-text-body-short-line-height)}.yc-text-input_size_l .yc-text-input__label{font-weight:var(--yc-text-accent-font-weight);padding:10px 4px 10px 12px}.yc-text-input_size_l .yc-text-input__additional-content{height:34px;padding-right:3px}.yc-text-input_size_xl{--yc-text-input-border-radius:var(--yc-border-radius-xl)}.yc-text-input_size_xl .yc-text-input__control{padding:12px}.yc-text-input_size_xl .yc-text-input__control,.yc-text-input_size_xl .yc-text-input__label{font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);height:42px;line-height:var(--yc-text-body-2-line-height)}.yc-text-input_size_xl .yc-text-input__label{font-weight:var(--yc-text-accent-font-weight);padding:12px 4px 12px 12px}.yc-text-input_size_xl .yc-text-input__additional-content{height:42px;padding-right:3px}.yc-text-input_view_normal .yc-text-input__content{border:1px solid var(--yc-color-line-generic)}.yc-text-input_view_normal .yc-text-input__content:hover{border-color:var(--yc-color-line-generic-hover)}.yc-text-input_view_normal .yc-text-input__content:focus-within{border-color:var(--yc-color-line-generic-active)}.yc-text-input_view_clear .yc-text-input__content{border:1px solid transparent;border-left:0;border-radius:0;border-right:0}.yc-text-input_view_clear .yc-text-input__control{padding-left:0;padding-right:0}.yc-text-input.yc-text-input_pin_round-round .yc-text-input__content{border-radius:var(--yc-text-input-border-radius)}.yc-text-input.yc-text-input_pin_brick-brick .yc-text-input__content{border-radius:0}.yc-text-input.yc-text-input_pin_clear-clear .yc-text-input__content{border-left:0;border-radius:0;border-right:0}.yc-text-input.yc-text-input_pin_circle-circle .yc-text-input__content{border-radius:100px}.yc-text-input.yc-text-input_pin_round-brick .yc-text-input__content{border-radius:var(--yc-text-input-border-radius) 0 0 var(--yc-text-input-border-radius)}.yc-text-input.yc-text-input_pin_brick-round .yc-text-input__content{border-radius:0 var(--yc-text-input-border-radius) var(--yc-text-input-border-radius) 0}.yc-text-input.yc-text-input_pin_round-clear .yc-text-input__content{border-radius:var(--yc-text-input-border-radius) 0 0 var(--yc-text-input-border-radius);border-right:0}.yc-text-input.yc-text-input_pin_clear-round .yc-text-input__content{border-left:0;border-radius:0 var(--yc-text-input-border-radius) var(--yc-text-input-border-radius) 0}.yc-text-input.yc-text-input_pin_brick-clear .yc-text-input__content{border-radius:0;border-right:0}.yc-text-input.yc-text-input_pin_clear-brick .yc-text-input__content{border-left:0;border-radius:0}.yc-text-input.yc-text-input_pin_circle-brick .yc-text-input__content{border-radius:100px 0 0 100px}.yc-text-input.yc-text-input_pin_brick-circle .yc-text-input__content{border-radius:0 100px 100px 0}.yc-text-input.yc-text-input_pin_circle-clear .yc-text-input__content{border-radius:100px 0 0 100px;border-right:0}.yc-text-input.yc-text-input_pin_clear-circle .yc-text-input__content{border-left:0;border-radius:0 100px 100px 0}.yc-text-input_disabled .yc-text-input__content{background-color:var(--yc-color-base-generic-accent-disabled);border-color:transparent;color:var(--yc-color-text-hint)}.yc-text-input_disabled .yc-text-input__content:hover{border-color:transparent}.yc-text-input_disabled .yc-text-input__control,.yc-text-input_disabled .yc-text-input__label{color:var(--yc-color-text-hint)}.yc-text-input_has-scrollbar .yc-text-input__clear{right:var(--yc-scrollbar-width)}.yc-text-input_has-right-content .yc-text-input__control{padding-right:2px}.yc-text-input_state_error.yc-text-input_view_normal .yc-text-input__content{border-color:var(--yc-color-line-danger)}.yc-text-input_state_error.yc-text-input_view_normal .yc-text-input__content:focus-within,.yc-text-input_state_error.yc-text-input_view_normal .yc-text-input__content:hover{border-color:var(--yc-color-line-danger)}.yc-text-input_state_error.yc-text-input_view_clear .yc-text-input__content{border-bottom:1px solid var(--yc-color-line-danger)}.yc-text-input_state_error.yc-text-input_view_clear .yc-text-input__content:focus-within,.yc-text-input_state_error.yc-text-input_view_clear .yc-text-input__content:hover{border-bottom:1px solid var(--yc-color-line-danger)}.table-skeleton{width:100%}.table-skeleton__row{align-items:center;display:flex;height:var(--data-table-row-height)}.table-skeleton__row .yc-skeleton{height:var(--yc-text-body-2-line-height)}.table-skeleton__col-1{margin-right:5%;width:10%}.table-skeleton__col-2{margin-right:5%;width:7%}.table-skeleton__col-3,.table-skeleton__col-4{margin-right:5%;width:5%}.table-skeleton__col-5{width:20%}.table-skeleton__col-full{width:100%}.yc-skeleton{background-color:var(--yc-color-base-generic);border-radius:5px;display:inline-block;overflow:hidden;position:relative;width:100%;z-index:0}.yc-skeleton:after{-webkit-animation:yc-skeleton 1.2s ease-out infinite;animation:yc-skeleton 1.2s ease-out infinite;background-image:linear-gradient(90deg,transparent,var(--yc-color-base-generic));bottom:0;content:"";left:0;position:absolute;right:0;top:0}@-webkit-keyframes yc-skeleton{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes yc-skeleton{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.ydb-table-with-controls-layout{box-sizing:border-box;display:inline-block;min-width:100%}.ydb-table-with-controls-layout__controls-wrapper{box-sizing:border-box;width:100%}.ydb-table-with-controls-layout__controls,.ydb-table-with-controls-layout__controls-wrapper{background-color:var(--yc-color-base-background);left:0;position:-webkit-sticky;position:sticky;top:0;z-index:3}.ydb-table-with-controls-layout__controls{align-items:center;display:flex;gap:12px;height:62px;padding:16px 0 18px;width:-webkit-max-content;width:max-content}.ydb-table-with-controls-layout .data-table__sticky_moving{top:62px!important}.tenants__format-label{margin-right:15px}.tenants__title{text-align:center}.tenants__tooltip{-webkit-animation:none!important;animation:none!important}.tenants__search{width:238px}.tenants__tablets{padding:0!important}.tenants__tablets .tablets-viewer__grid{grid-gap:20px}.tenants__table .data-table__table{width:100%}.tenants__table .data-table__row,.tenants__table .data-table__sticky th{height:40px}.tenants__table .data-table__box .data-table__table-wrapper{padding-bottom:20px}.tenants__type-value{margin-right:10px}.tenants__type-button{visibility:hidden}.data-table__row:hover .tenants__type-button{visibility:visible}.tenants__name-wrapper{align-items:center;display:flex}.tenants__name{overflow:hidden}.empty-state{padding:20px}.empty-state_size_m{height:400px}.empty-state__wrapper{display:grid;grid-template-areas:"image title" "image description" "image actions"}.empty-state__wrapper_size_s{height:120px;width:460px}.empty-state__wrapper_size_m{height:240px;margin:0 auto;position:relative;top:20%;width:800px}.empty-state__image{color:var(--yc-color-base-info-hover);grid-area:image;justify-self:end;margin-right:60px}.yc-root_theme_dark .empty-state__image{color:var(--yc-color-base-generic)}.empty-state__title{align-self:center;font-weight:500;grid-area:title}.empty-state__title_size_s{font-size:var(--yc-text-subheader-3-font-size);line-height:var(--yc-text-subheader-3-line-height)}.empty-state__title_size_m{font-size:var(--yc-text-header-2-font-size);line-height:var(--yc-text-header-2-line-height)}.empty-state__description{font-size:var(--yc-text-body-2-font-size);grid-area:description;line-height:var(--yc-text-body-2-line-height)}.empty-state__actions{grid-area:actions}.empty-state__actions>*{margin-right:8px}.yc-label{align-items:center;display:inline-flex;position:relative;transition-duration:.3s;transition-property:opacity,color,background-color;transition-timing-function:ease-in-out}.yc-label__text{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.yc-label .yc-label__addon{align-items:center;display:flex;justify-content:center}.yc-label .yc-label__addon_side_left,.yc-label .yc-label__addon_side_right{position:absolute;top:0}.yc-label .yc-label__addon_side_left{left:2px}.yc-label .yc-label__addon_side_right{right:0}.yc-label .yc-label__addon_interactive{--yc-button-background-color:transparent;color:inherit;cursor:pointer;transition:color,background-color;transition-duration:.3s;transition-timing-function:ease-in-out}.yc-label_size_xs{height:20px}.yc-label_size_xs .yc-label__text{line-height:20px;margin:0 8px}.yc-label_size_xs .yc-label__addon{height:20px;width:20px}.yc-label_size_xs.yc-label_has-right-addon .yc-label__text{margin-right:22px}.yc-label_size_xs.yc-label_has-left-addon .yc-label__text{margin-left:24px}.yc-label_size_xs.yc-label_style_default,.yc-label_size_xs.yc-label_style_rounded{border-radius:var(--yc-border-radius-xs)}.yc-label_size_xs.yc-label_style_default .yc-label__addon_interactive,.yc-label_size_xs.yc-label_style_rounded .yc-label__addon_interactive{--yc-button-height:20px;--yc-button-border-radius:var(--yc-border-radius-xs)}.yc-label_size_s{height:24px}.yc-label_size_s .yc-label__text{line-height:24px;margin:0 10px}.yc-label_size_s .yc-label__icon{height:24px;width:24px}.yc-label_size_s.yc-label_has-right-addon .yc-label__text{margin-right:26px}.yc-label_size_s.yc-label_has-left-addon .yc-label__text{margin-left:28px}.yc-label_size_s.yc-label_style_default,.yc-label_size_s.yc-label_style_rounded{border-radius:var(--yc-border-radius-s)}.yc-label_size_s.yc-label_style_default .yc-label__addon_interactive,.yc-label_size_s.yc-label_style_rounded .yc-label__addon_interactive{--yc-button-height:24px;--yc-button-border-radius:var(--yc-border-radius-s)}.yc-label_size_m{height:28px}.yc-label_size_m .yc-label__text{line-height:28px;margin:0 12px}.yc-label_size_m .yc-label__addon{height:28px;width:28px}.yc-label_size_m.yc-label_has-right-addon .yc-label__text{margin-right:32px}.yc-label_size_m.yc-label_has-left-addon .yc-label__text{margin-left:32px}.yc-label_size_m.yc-label_style_default{border-radius:var(--yc-border-radius-m)}.yc-label_size_m.yc-label_style_default .yc-label__addon_interactive{--yc-button-height:28px;--yc-button-border-radius:var(--yc-border-radius-m)}.yc-label_size_m.yc-label_style_rounded{border-radius:24px}.yc-label_size_m.yc-label_style_rounded .yc-label__addon_interactive{--yc-button-height:28px;--yc-button-border-radius:24px}.yc-label_disabled{opacity:.7;pointer-events:none}.yc-label_is-interactive{cursor:pointer}.yc-label_theme_normal{background-color:var(--yc-color-base-misc);color:var(--yc-color-text-misc-heavy)}.yc-label_theme_normal:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-misc-hover)}.yc-label_theme_normal:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-misc-hover)}.yc-label_theme_normal:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_normal:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_normal:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-misc-heavy)}.yc-label_theme_success{background-color:var(--yc-color-base-positive);color:var(--yc-color-text-positive-heavy)}.yc-label_theme_success:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-positive-hover)}.yc-label_theme_success:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-positive-hover)}.yc-label_theme_success:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_success:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_success:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-positive-heavy)}.yc-label_theme_info{background-color:var(--yc-color-base-info);color:var(--yc-color-text-info-heavy)}.yc-label_theme_info:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-info-hover)}.yc-label_theme_info:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-info-hover)}.yc-label_theme_info:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_info:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_info:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-info-heavy)}.yc-label_theme_warning{background-color:var(--yc-color-base-warning);color:var(--yc-color-text-warning-heavy)}.yc-label_theme_warning:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-warning-hover)}.yc-label_theme_warning:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-warning-hover)}.yc-label_theme_warning:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_warning:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_warning:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-warning-heavy)}.yc-label_theme_danger{background-color:var(--yc-color-base-danger);color:var(--yc-color-text-danger-heavy)}.yc-label_theme_danger:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-danger-hover)}.yc-label_theme_danger:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-danger-hover)}.yc-label_theme_danger:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_danger:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_danger:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-danger-heavy)}.yc-label_theme_unknown{background-color:var(--yc-color-base-neutral);color:var(--yc-color-text-complementary)}.yc-label_theme_unknown:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-neutral-hover)}.yc-label_theme_unknown:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-neutral-hover)}.yc-label_theme_unknown:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_unknown:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_unknown:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-complementary)}.progress-viewer{align-items:center;background:var(--yc-color-base-generic);border-radius:2px;color:var(--yc-color-text-light-primary);display:flex;font-size:var(--yc-text-body-2-font-size);height:23px;justify-content:center;min-width:120px;overflow:hidden;padding:0 4px;position:relative;white-space:nowrap}.progress-viewer__line{height:100%;left:0;position:absolute;top:0}.progress-viewer__line_bg_scarlet{background:var(--yc-color-infographics-danger-heavy)}.progress-viewer__line_bg_apple{background:var(--yc-color-infographics-positive-heavy)}.progress-viewer__line_bg_saffron{background:var(--yc-color-infographics-warning-heavy)}.progress-viewer__text{position:relative;z-index:1}.progress-viewer__text_text_contrast0{color:var(--yc-color-text-light-primary)}.progress-viewer__text_text_contrast70{color:var(--yc-color-text-complementary)}.progress-viewer_size_xs{font-size:var(--yc-text-body-2-font-size);height:20px;line-height:var(--yc-text-body-2-line-height)}.progress-viewer_size_s{font-size:var(--yc-text-body-1-font-size);height:28px;line-height:28px}.progress-viewer_size_m{font-size:var(--yc-text-body-2-font-size);height:32px;line-height:32px}.progress-viewer_size_ns{font-size:13px;height:24px;line-height:var(--yc-text-subheader-3-line-height)}.progress-viewer_size_n{font-size:var(--yc-text-body-1-font-size);height:36px;line-height:36px}.progress-viewer_size_l{font-size:var(--yc-text-subheader-3-font-size);height:38px;line-height:38px}.progress-viewer_size_head{font-size:var(--yc-text-body-1-font-size);line-height:36px}.ydb-node-host-wrapper{display:flex}.ydb-node-host-wrapper__host-wrapper{display:flex;width:330px}.ydb-node-host-wrapper__host{overflow:hidden}.ydb-node-host-wrapper__external-button{display:none;margin-left:4px}.data-table__row:hover .ydb-node-host-wrapper__external-button{display:inline-flex}.yc-popover{display:inline-block;position:relative}.yc-popover:not(.yc-popover_disabled){cursor:pointer}.yc-popover__tooltip{--yc-popover-padding:16px;--yc-popover-close-margin:8px;--yc-popover-close-size:24px;box-sizing:border-box;cursor:default;display:flex;flex-direction:column;max-width:var(--yc-popover-max-width);min-height:40px;padding:var(--yc-popover-padding)}.yc-popover__tooltip-title{display:inline-flex;font-size:var(--yc-text-subheader-3-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-3-line-height);margin:0 0 12px}.yc-popover__tooltip-buttons{align-self:center;display:inline-flex;flex-wrap:wrap;margin:15px -5px -5px;width:100%}.yc-popover__tooltip-button{flex:1 1;margin:5px}.yc-popover__tooltip-close{position:absolute;right:var(--yc-popover-close-margin);top:var(--yc-popover-close-margin)}.yc-popover__tooltip-content{font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height);overflow-wrap:break-word}.yc-popover__tooltip-content_secondary{opacity:.7}.yc-popover__tooltip-links>*{margin-top:8px}.yc-popover__tooltip-links>:first-child{margin-top:0}.yc-popover__tooltip-content+.yc-popover__tooltip-links>:first-child{margin-top:12px}.yc-popover__tooltip-link{display:inline-block;font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height)}.yc-popover__tooltip_theme_announcement .yc-popover__tooltip_theme_announcement,.yc-popover__tooltip_theme_announcement.yc-popover__tooltip_theme_info,.yc-popover__tooltip_theme_info .yc-popover__tooltip_theme_announcement,.yc-popover__tooltip_theme_info.yc-popover__tooltip_theme_info{color:var(--yc-color-text-primary)}.yc-popover__tooltip_force-links-appearance.yc-popover__tooltip_theme_info .yc-popover__tooltip-content a:not(.yc-button),.yc-popover__tooltip_theme_announcement .yc-popover__tooltip-content a:not(.yc-button){color:var(--yc-color-text-link);text-decoration:none}.yc-popover__tooltip_force-links-appearance.yc-popover__tooltip_theme_info .yc-popover__tooltip-content a:not(.yc-button):hover,.yc-popover__tooltip_theme_announcement .yc-popover__tooltip-content a:not(.yc-button):hover{color:var(--yc-color-text-link-hover)}.yc-popover__tooltip_theme_announcement.yc-popover__tooltip_theme_announcement{--yc-popup-background-color:var(--yc-color-base-simple-hover-solid);--yc-popup-border-color:var(--yc-color-base-simple-hover-solid)}.yc-popover__tooltip_theme_announcement .yc-popover__tooltip-buttons{width:auto}.yc-popover__tooltip_theme_special.yc-popover__tooltip_theme_special{--yc-popup-background-color:var(--yc-color-base-special);--yc-popup-border-color:var(--yc-color-base-special);color:var(--yc-color-text-light-primary)}.yc-popover__tooltip_theme_special .yc-popover__tooltip-content a:not(.yc-button){color:var(--yc-color-text-light-primary);font-weight:var(--yc-text-accent-font-weight)}.yc-popover__tooltip_theme_special .yc-popover__tooltip-content a:not(.yc-button):hover{color:var(--yc-color-text-yandex-red)}.yc-popover__tooltip_theme_special .yc-link{color:var(--yc-color-text-light-primary)}.yc-popover__tooltip_theme_special .yc-link:hover{color:var(--yc-color-text-yandex-red)}.yc-popover__tooltip_size_l{--yc-popover-padding:24px}.yc-popover__tooltip_size_l .yc-popover__tooltip-title{font-size:var(--yc-text-header-1-font-size);font-weight:var(--yc-text-header-font-weight);line-height:var(--yc-text-header-1-line-height)}.yc-popover__tooltip_size_l .yc-popover__tooltip-content{font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-2-line-height)}.yc-popover__tooltip_with-close .yc-popover__tooltip-content,.yc-popover__tooltip_with-close .yc-popover__tooltip-title{padding-right:calc(var(--yc-popover-close-margin) + var(--yc-popover-close-size) - var(--yc-popover-padding))}.yc-root{--yc-popover-max-width:300px}.ydb-nodes__search{width:238px}.ydb-nodes__show-all-wrapper{left:0;margin-bottom:15px;position:-webkit-sticky;position:sticky}.ydb-nodes__table .data-table__table{width:100%}.ydb-nodes__table .data-table__row,.ydb-nodes__table .data-table__sticky th{height:40px}.ydb-nodes__table .data-table__box .data-table__table-wrapper{padding-bottom:20px}.ydb-nodes__table .data-table__th{height:auto}.ydb-nodes__table{padding-bottom:20px}.ydb-nodes__node_unavailable{opacity:.6}.stack{--ydb-stack-base-z-index:100;--ydb-stack-offset-x:4px;--ydb-stack-offset-y:4px;--ydb-stack-offset-x-hover:4px;--ydb-stack-offset-y-hover:8px;position:relative}.stack__layer{transition:-webkit-transform .1s ease-out;transition:transform .1s ease-out;transition:transform .1s ease-out,-webkit-transform .1s ease-out}.stack__layer:first-child{position:relative;z-index:var(--ydb-stack-base-z-index)}.stack__layer+.stack__layer{height:100%;left:0;position:absolute;top:0;-webkit-transform:translate(calc(var(--ydb-stack-level)*var(--ydb-stack-offset-x)),calc(var(--ydb-stack-level)*var(--ydb-stack-offset-y)));transform:translate(calc(var(--ydb-stack-level)*var(--ydb-stack-offset-x)),calc(var(--ydb-stack-level)*var(--ydb-stack-offset-y)));width:100%;z-index:calc(var(--ydb-stack-base-z-index) - var(--ydb-stack-level))}.stack:hover .stack__layer:first-child{-webkit-transform:translate(calc(var(--ydb-stack-offset-x-hover)*-1),calc(var(--ydb-stack-offset-y-hover)*-1));transform:translate(calc(var(--ydb-stack-offset-x-hover)*-1),calc(var(--ydb-stack-offset-y-hover)*-1))}.stack:hover .stack__layer+.stack__layer{-webkit-transform:translate(calc(var(--ydb-stack-level)*(var(--ydb-stack-offset-x-hover)*2) - var(--ydb-stack-offset-x-hover)),calc(var(--ydb-stack-level)*(var(--ydb-stack-offset-y-hover)*2) - var(--ydb-stack-offset-y-hover)));transform:translate(calc(var(--ydb-stack-level)*(var(--ydb-stack-offset-x-hover)*2) - var(--ydb-stack-offset-x-hover)),calc(var(--ydb-stack-level)*(var(--ydb-stack-offset-y-hover)*2) - var(--ydb-stack-offset-y-hover)))}.storage-disk-progress-bar{background-color:var(--yc-color-infographics-misc-light);border:1px solid var(--yc-color-infographics-misc-heavy);border-radius:4px;color:var(--yc-color-text-primary);display:block;height:var(--yc-text-body-3-line-height);min-width:50px;position:relative;text-align:center}.storage-disk-progress-bar_compact{border-radius:2px;height:12px;min-width:0}.storage-disk-progress-bar_compact .storage-disk-progress-bar__filled{border-radius:1px}.storage-disk-progress-bar .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-misc-medium)}.storage-disk-progress-bar_green{background-color:var(--yc-color-infographics-positive-light);border-color:var(--yc-color-infographics-positive-heavy)}.storage-disk-progress-bar_green .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-positive-medium)}.yc-root_theme_dark .storage-disk-progress-bar_green .storage-disk-progress-bar__filled{background-color:rgba(124,227,121,.4)}.storage-disk-progress-bar_blue{background-color:var(--yc-color-infographics-info-light);border-color:var(--yc-color-infographics-info-heavy)}.storage-disk-progress-bar_blue .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-info-medium)}.storage-disk-progress-bar_yellow{background-color:var(--yc-color-infographics-yellow-light);border-color:var(--yc-color-infographics-warning-heavy)}.storage-disk-progress-bar_yellow .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-yellow-medium)}.storage-disk-progress-bar_orange{background-color:var(--yc-color-infographics-warning-light);border-color:var(--yc-color-base-warning-orange)}.storage-disk-progress-bar_orange .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-warning-medium)}.storage-disk-progress-bar_red{background-color:var(--yc-color-infographics-danger-light);border-color:var(--yc-color-infographics-danger-heavy)}.storage-disk-progress-bar_red .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-danger-medium)}.storage-disk-progress-bar__filled{border-radius:3px 0 0 3px;height:100%;left:0;position:absolute;top:0}.storage-disk-progress-bar_inverted .storage-disk-progress-bar__filled{border-radius:0 3px 3px 0;left:auto;right:0}.storage-disk-progress-bar__filled-title{color:inherit;font-size:var(--yc-text-body-1-font-size);line-height:calc(var(--yc-text-body-3-line-height) - 2px);position:relative;z-index:2}.pdisk-storage-popup,.vdisk-storage-popup{padding:12px}.vdisk-storage-popup .info-viewer+.info-viewer{border-top:1px solid var(--yc-color-line-generic);margin-top:8px;padding-top:8px}.vdisk-storage-popup__donor-label{margin-bottom:8px}.vdisk-storage,.vdisk-storage__content{border-radius:4px}.global-storage-groups__vdisks-column{overflow:visible}.global-storage-groups__vdisks-wrapper{display:flex;justify-content:center;min-width:500px}.global-storage-groups__vdisks-item{flex-grow:1;margin-right:10px;max-width:200px}.global-storage-groups__vdisks-item:last-child{margin-right:0}.global-storage-groups__vdisks-item .stack__layer{background:var(--yc-color-base-background)}.data-table__row:hover .global-storage-groups__vdisks-item .stack__layer{background:var(--ydb-data-table-color-hover)}.global-storage-groups__pool-name-wrapper{align-items:flex-end;display:flex;width:230px}.global-storage-groups__pool-name{display:inline-block;max-width:230px;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.global-storage-groups__usage-label_overload{background-color:var(--yc-color-base-danger-heavy);color:var(--yc-color-text-light-primary)}.global-storage-groups__group-id{font-weight:500}.pdisk-storage{position:relative;width:120px}.pdisk-storage__content{border-radius:4px;display:block;position:relative}.pdisk-storage__vdisks{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:4px}.pdisk-storage__vdisks-item{flex-basis:5px;flex-shrink:0}.pdisk-storage__vdisks-item .stack__layer{background:var(--yc-color-base-background)}.data-table__row:hover .pdisk-storage__vdisks-item .stack__layer{background:var(--ydb-data-table-color-hover)}.pdisk-storage__donors-stack{--ydb-stack-offset-x:0px;--ydb-stack-offset-y:-2px;--ydb-stack-offset-x-hover:0px;--ydb-stack-offset-y-hover:-7px}.pdisk-storage__media-type{color:var(--yc-color-text-secondary);font-size:var(--yc-text-body-1-font-size);line-height:var(--yc-text-body-3-line-height);position:absolute;right:4px;top:0}.global-storage-nodes__pdisks-column{overflow:visible}.global-storage-nodes__pdisks-wrapper{align-items:flex-end;display:flex;justify-content:left;width:-webkit-max-content;width:max-content}.global-storage-nodes__pdisks-item{flex-grow:1;margin-right:10px;max-width:200px}.global-storage-nodes__pdisks-item:last-child{margin-right:0}.global-storage-nodes__group-id{font-weight:500}.global-storage-nodes__node_unavailable{opacity:.6}.usage-filter{min-width:100px}.usage-filter__option{flex-grow:1}.usage-filter__option-title{font-size:var(--yc-text-body-1-font-size);height:var(--yc-text-body-1-line-height);line-height:var(--yc-text-body-1-line-height)}.usage-filter__option-meta{border-radius:3px;font-size:var(--yc-text-caption-2-font-size);line-height:var(--yc-text-caption-2-line-height);padding:0 5px;position:relative;z-index:0}.usage-filter__option-bar{background-color:var(--yc-color-infographics-info-medium);border-radius:3px;bottom:0;left:0;position:absolute;top:0;z-index:-1}.g-select{display:inline-block;max-width:100%}.g-select_width_max{width:100%}.g-select-control{text-align:right;width:100%}.g-select-control_open:focus:before{box-shadow:none}.g-select-control_open:before{border:1px solid var(--yc-color-line-generic-active)}.g-select-control_error:before{border:1px solid var(--yc-color-line-danger)}.g-select-control .yc-button__text{align-items:baseline;display:flex}.g-select-control__label{font-weight:var(--yc-text-accent-font-weight);margin-right:2px;white-space:nowrap}.g-select-control__option-text,.g-select-control__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-select-control__placeholder{color:var(--yc-color-text-hint)}.g-select-control__chevron-icon{color:var(--yc-color-text-secondary);flex:0 0 16px}.g-select-control__chevron-icon_disabled{color:var(--yc-color-text-hint)}.g-select-control__error{color:var(--yc-color-text-danger);font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height);margin-top:2px}.g-select-popup{display:flex;flex-direction:column;max-height:90vh}.yc-sheet{position:fixed;z-index:100000}.yc-sheet,.yc-sheet__veil{height:100%;left:0;top:0;width:100%}.yc-sheet__veil{background-color:var(--yc-color-sfx-veil);opacity:0;position:absolute;will-change:opacity}.yc-sheet__veil_with-transition{transition:opacity var(--yc-sheet-transition-duration) ease}.yc-sheet__sheet{left:0;max-height:90%;position:absolute;top:100%;width:100%;will-change:transform}.yc-sheet__sheet_with-transition{transition:-webkit-transform var(--yc-sheet-transition-duration) ease;transition:transform var(--yc-sheet-transition-duration) ease;transition:transform var(--yc-sheet-transition-duration) ease,-webkit-transform var(--yc-sheet-transition-duration) ease}.yc-sheet__sheet-swipe-area{height:40px;left:0;position:absolute;top:-20px;width:100%;z-index:1}.yc-sheet__sheet-top{background-color:var(--yc-color-base-float);border-top-left-radius:20px;border-top-right-radius:20px;height:20px;position:relative}.yc-sheet__sheet-top-resizer{background-color:var(--yc-color-line-generic);border-radius:4px;height:4px;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:40px}.yc-sheet__sheet-content{background-color:var(--yc-color-base-float);box-sizing:border-box;max-height:calc(90% - 20px);overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding:var(--yc-sheet-content-paddings);transition:height var(--yc-sheet-transition-duration) ease;width:100%}.yc-sheet__sheet-content_without-scroll{overflow:hidden}.yc-sheet__sheet-content-title{font-size:var(--yc-text-body-2-font-size);line-height:28px;overflow:hidden;padding-bottom:8px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.yc-root{--yc-sheet-content-paddings:0 10px;--yc-sheet-transition-duration:0.3s}.g-select-filter{padding:4px 4px 0}.g-select-filter .g-select-filter__input,.g-select-filter .g-select-filter__input:focus,.g-select-filter .g-select-filter__input:hover{border-color:var(--yc-color-line-generic-active)}.g-select-list{display:flex;margin:4px 0;overflow:hidden}.yc-popup .g-select-list:first-child,.yc-popup .g-select-list:last-child{border-radius:0}.g-select-list:not(.g-select-list_virtualized){overflow:auto}.g-select-list_mobile{max-height:calc(90vh - 20px)}.g-select-list__group-label{box-sizing:border-box;height:auto;padding:0;position:relative;width:100%}.g-select-list_size_s .g-select-list__group-label:not(.g-select-list__group-label_empty){height:28px;padding:8px 8px 4px 10px}.g-select-list_size_m .g-select-list__group-label:not(.g-select-list__group-label_empty){height:28px;padding:8px 8px 4px 13px}.g-select-list_size_l .g-select-list__group-label:not(.g-select-list__group-label_empty){height:32px;padding:10px 12px 6px 18px}.g-select-list_size_xl .g-select-list__group-label:not(.g-select-list__group-label_empty){font-size:15px;height:36px;padding:12px 12px 8px 25px}.g-select-list_mobile .g-select-list__group-label:not(.g-select-list__group-label_empty){font-size:15px;height:32px;padding:12px 12px 8px 18px}.g-select-list__item:not(:first-child) .g-select-list__group-label{margin-top:5px}.g-select-list__item:not(:first-child) .g-select-list__group-label:before{background-color:var(--yc-color-line-generic);content:"";height:1px;left:0;position:absolute;top:-3px;width:100%}.g-select-list__group-label-content{font-weight:var(--yc-text-accent-font-weight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.g-select-list__option{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;height:100%;width:100%}.g-select-list_size_s .g-select-list__option{padding:0 8px 0 10px}.g-select-list_size_s .g-select-list__option .g-select-list__option-default-label{height:28px;line-height:28px}.g-select-list_size_s .g-select-list__option .g-select-list__tick-icon{padding-left:8px}.g-select-list_size_m .g-select-list__option{padding:0 8px 0 13px}.g-select-list_size_m .g-select-list__option .g-select-list__option-default-label{height:28px;line-height:28px}.g-select-list_size_m .g-select-list__option .g-select-list__tick-icon{padding-left:8px}.g-select-list_size_l .g-select-list__option{padding:0 12px 0 18px}.g-select-list_size_l .g-select-list__option .g-select-list__option-default-label{height:32px;line-height:32px}.g-select-list_size_l .g-select-list__option .g-select-list__tick-icon{padding-left:12px}.g-select-list_size_xl .g-select-list__option{padding:0 12px 0 25px}.g-select-list_size_xl .g-select-list__option .g-select-list__option-default-label{font-size:15px;height:36px;line-height:36px}.g-select-list_size_xl .g-select-list__option .g-select-list__tick-icon{padding-left:12px}.g-select-list_mobile .g-select-list__option{padding:0 12px 0 18px}.g-select-list_mobile .g-select-list__option .g-select-list__option-default-label{font-size:15px;height:32px;line-height:32px}.g-select-list_mobile .g-select-list__option .g-select-list__tick-icon{padding-left:12px}.g-select-list__option_colored{background-color:var(--yc-color-base-selection)}.g-select-list__option_disabled{cursor:default}.g-select-list__option-default-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-select-list__option-default-label_disabled{color:var(--yc-color-text-secondary)}.g-select-list__tick-icon{box-sizing:initial;color:var(--yc-color-text-info);flex:0 0 16px;margin-left:auto;visibility:hidden}.g-select-list__tick-icon_shown{visibility:visible}.yc-list{display:flex;flex:1 1 auto;flex-direction:column;outline:none;width:100%}.yc-list__filter{flex:0 0 auto;margin-bottom:8px;padding:0 var(--yc-list-margin)}.yc-list__items{flex:1 1 auto}.yc-list__items_virtualized{height:var(--yc-list-height)}.yc-list__empty-placeholder,.yc-list__item{align-items:center;box-sizing:border-box;display:flex;overflow:hidden;padding:0 var(--yc-list-margin);-webkit-user-select:none;user-select:none}.yc-list__item{height:var(--yc-list-item-height)}.yc-list__item_sortable{cursor:move}.yc-list__item_sorting{background:var(--yc-color-base-simple-hover-solid);cursor:move;padding:0 var(--yc-list-margin);z-index:100001}.yc-list__item_active{background:var(--yc-color-base-simple-hover)}.yc-list__item_selected{background:var(--yc-color-base-selection)}.yc-list__item_sort-handle-align_right{flex-direction:row-reverse}.yc-list__item_sort-handle-align_right .yc-list__item-sort-icon{margin-left:10px;margin-right:0}.yc-list__empty-placeholder{box-sizing:border-box;color:var(--yc-color-text-hint);min-height:36px;padding-bottom:8px;padding-top:8px}.yc-list__item-content{align-items:center;display:flex;flex:1 1 auto;height:100%;overflow:hidden;text-overflow:ellipsis}.yc-list__item-sort-icon{align-items:center;color:var(--yc-color-text-hint);display:flex;flex:0 0 auto;margin-right:10px;width:6px}.g-select-empty-placeholder{color:var(--yc-color-text-hint);margin:4px}.g-select-empty-placeholder_empty{margin-top:0}.global-storage__search{width:238px}.global-storage__table .yc-tooltip{height:var(--yc-text-body-2-line-height)!important}.global-storage__table table{min-width:100%}.global-storage .entity-status,.ydb-loader{justify-content:center}.ydb-loader{align-items:center;display:flex;flex:1 1 auto;height:100%}@-webkit-keyframes yc-pulse{50%{opacity:15%}}@keyframes yc-pulse{50%{opacity:15%}}.yc-loader{align-items:center;display:inline-flex}.yc-loader__center,.yc-loader__left,.yc-loader__right{-webkit-animation:yc-pulse .8s ease infinite;animation:yc-pulse .8s ease infinite;background:var(--yc-color-base-special)}.yc-loader__left{-webkit-animation-delay:.2s;animation-delay:.2s}.yc-loader__center{-webkit-animation-delay:.4s;animation-delay:.4s}.yc-loader__right{-webkit-animation-delay:.6s;animation-delay:.6s}.yc-loader_size_s .yc-loader__left{height:13.33333px;width:5px}.yc-loader_size_s .yc-loader__center{height:20px;margin-left:5px;width:5px}.yc-loader_size_s .yc-loader__right{height:13.33333px;margin-left:5px;width:5px}.yc-loader_size_m .yc-loader__left{height:18.66667px;width:7px}.yc-loader_size_m .yc-loader__center{height:28px;margin-left:7px;width:7px}.yc-loader_size_m .yc-loader__right{height:18.66667px;margin-left:7px;width:7px}.yc-loader_size_l .yc-loader__left{height:24px;width:9px}.yc-loader_size_l .yc-loader__center{height:36px;margin-left:9px;width:9px}.yc-loader_size_l .yc-loader__right{height:24px;margin-left:9px;width:9px}.ydb-versions-nodes-tree-title__overview{align-items:center;display:flex;justify-content:space-between;width:100%}.ydb-versions-nodes-tree-title__overview-info{align-items:center;display:flex;margin-left:25px}.ydb-versions-nodes-tree-title__overview-info>:not(:first-child){margin-left:30px}.ydb-versions-nodes-tree-title__overview-container{align-items:center;display:flex}.ydb-versions-nodes-tree-title__info-label{color:var(--yc-color-text-complementary);font-weight:200}.ydb-versions-nodes-tree-title__info-label_margin_left{margin-left:5px}.ydb-versions-nodes-tree-title__info-label_margin_right{margin-right:5px}.ydb-versions-nodes-tree-title__version-color{border-radius:100%;height:16px;margin-right:10px;width:16px}.ydb-versions-nodes-tree-title__version-progress{align-items:center;display:flex;width:250px}.ydb-versions-nodes-tree-title__version-progress .yc-progress{width:200px}.yc-progress{background-color:var(--yc-color-base-generic);border-radius:3px;height:20px;line-height:20px;margin:0 auto;overflow:hidden;position:relative;text-align:center;text-shadow:0 0 1px var(--yc-color-text-dark-primary)}.yc-progress__text{height:20px;margin-bottom:-20px;position:relative}.yc-progress__text,.yc-progress__text-inner{box-sizing:border-box;color:var(--yc-color-text-light-primary);font-size:12px;padding:0 10px}.yc-progress__text-inner{height:100%;position:absolute;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;width:100%}.yc-progress__item{color:var(--yc-color-text-light-primary);float:left;font-size:12px;height:100%;overflow:hidden;position:relative;transition:width .6s ease,background-color .6s ease,-webkit-transform .6s ease;transition:transform .6s ease,width .6s ease,background-color .6s ease;transition:transform .6s ease,width .6s ease,background-color .6s ease,-webkit-transform .6s ease;width:100%}.yc-progress__item_theme_default{background-color:var(--yc-color-infographics-neutral-medium)}.yc-progress__item_theme_success{background-color:var(--yc-color-infographics-positive-medium)}.yc-progress__item_theme_warning{background-color:var(--yc-color-infographics-warning-medium)}.yc-progress__item_theme_danger{background-color:var(--yc-color-infographics-danger-medium)}.yc-progress__item_theme_info{background-color:var(--yc-color-infographics-info-medium)}.yc-progress__item_theme_misc{background-color:var(--yc-color-infographics-misc-medium)}.yc-progress__item_loading{-webkit-animation:yc-loading-animation .5s linear infinite;animation:yc-loading-animation .5s linear infinite;background-clip:padding-box;background-image:repeating-linear-gradient(-45deg,hsla(0,0%,100%,.3),hsla(0,0%,100%,.3) 4px,transparent 0,transparent 8px);background-size:150%}.yc-progress__stack{color:var(--yc-color-text-light-primary);height:20px;line-height:20px;margin:0 auto;overflow:hidden;position:relative;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;width:100%}.yc-progress_view_thin,.yc-progress_view_thin .yc-progress__stack{height:10px;line-height:10px}.yc-progress_view_thinnest,.yc-progress_view_thinnest .yc-progress__stack{height:4px;line-height:4px}.yc-progress_view_thin .yc-progress__text,.yc-progress_view_thinnest .yc-progress__text{display:none}.ydb-versions-grouped-node-tree_first-level{border:1px solid var(--yc-color-line-generic);border-radius:10px;margin-bottom:10px;margin-top:10px}.ydb-versions-grouped-node-tree__dt-wrapper{margin-left:24px;margin-right:24px;overflow-x:auto;overflow-y:hidden;position:relative;z-index:0}.ydb-versions-grouped-node-tree__dt-wrapper .data-table__head-row:first-child .data-table__th:first-child,.ydb-versions-grouped-node-tree__dt-wrapper .data-table__td:first-child{background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-versions-grouped-node-tree__dt-wrapper .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.ydb-versions-grouped-node-tree__dt-wrapper .data-table__head-row:first-child .data-table__th:nth-child(2),.ydb-versions-grouped-node-tree__dt-wrapper .data-table__td:nth-child(2){background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:80px;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-versions-grouped-node-tree__dt-wrapper .data-table__row:hover .data-table__td:nth-child(2){background-color:var(--ydb-data-table-color-hover)!important}.ydb-versions-grouped-node-tree__dt-wrapper .data-table__head-row:first-child .data-table__th:first-child,.ydb-versions-grouped-node-tree__dt-wrapper .data-table__head-row:first-child .data-table__th:nth-child(0),.ydb-versions-grouped-node-tree__dt-wrapper .data-table__td:first-child,.ydb-versions-grouped-node-tree__dt-wrapper .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.ydb-versions-grouped-node-tree__dt-wrapper .data-table__head-row:first-child .data-table__th:nth-child(2),.ydb-versions-grouped-node-tree__dt-wrapper .data-table__td:nth-child(2){box-shadow:none}.ydb-versions-grouped-node-tree__dt-wrapper .data-table__table{width:100%}.ydb-versions-grouped-node-tree__dt-wrapper .data-table__row,.ydb-versions-grouped-node-tree__dt-wrapper .data-table__sticky th{height:40px}.ydb-versions-grouped-node-tree__dt-wrapper .data-table__box .data-table__table-wrapper{padding-bottom:20px}.ydb-versions-grouped-node-tree .ydb-tree-view{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.ydb-versions-grouped-node-tree .ydb-tree-view .ydb-tree-view{margin-left:24px}.ydb-versions-grouped-node-tree .tree-view_item{border:0;border-radius:10px;height:40px;margin:0;padding:0 10px!important}.ydb-versions-grouped-node-tree .tree-view_children .tree-view_item{width:100%}.ydb-versions-grouped-node-tree .yc-progress__stack{cursor:pointer}.ydb-versions__controls{align-items:center;display:flex;padding:0 0 20px}.ydb-versions__controls .ydb-versions__label{font-weight:500;margin-right:10px}.ydb-versions__controls .ydb-versions__checkbox{margin:0}.ydb-versions__controls>*{margin-right:25px}.yc-checkbox__indicator{cursor:inherit;display:inline-block;position:relative}.yc-checkbox__indicator:before{background-color:initial;border:1px solid var(--yc-color-line-generic-accent);border-radius:4px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:background .1s linear}.yc-checkbox__indicator:after{content:" ";visibility:hidden}.yc-checkbox__icon{align-items:center;bottom:0;color:transparent;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;-webkit-transform:translateY(-5px);transform:translateY(-5px);transition:color .1s,-webkit-transform .2s;transition:color .1s,transform .2s;transition:color .1s,transform .2s,-webkit-transform .2s;visibility:hidden}.yc-checkbox__control{border:none;cursor:inherit;margin:0;opacity:0;outline:none;padding:0}.yc-checkbox__control,.yc-checkbox__outline{background:none;height:100%;left:0;position:absolute;top:0;width:100%}.yc-checkbox__outline{border-radius:4px;pointer-events:none}.yc-checkbox__control:focus+.yc-checkbox__outline{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-checkbox__control:focus:not(:focus-visible)+.yc-checkbox__outline{box-shadow:none}.yc-checkbox_size_m .yc-checkbox__icon-svg_type_tick{height:10px;width:8px}.yc-checkbox_size_m .yc-checkbox__icon-svg_type_dash{height:12px;width:12px}.yc-checkbox_size_m .yc-checkbox__indicator{height:14px;width:14px}.yc-checkbox_size_l .yc-checkbox__icon-svg_type_tick{height:9px;width:11px}.yc-checkbox_size_l .yc-checkbox__icon-svg_type_dash{height:15px;width:15px}.yc-checkbox_size_l .yc-checkbox__indicator{height:17px;width:17px}.yc-checkbox:hover .yc-checkbox__indicator:before{border-color:var(--yc-color-line-generic-accent-hover)}.yc-checkbox_checked .yc-checkbox__indicator:before,.yc-checkbox_indeterminate .yc-checkbox__indicator:before{background-color:var(--yc-color-base-special);border:transparent}.yc-checkbox_checked .yc-checkbox__icon,.yc-checkbox_indeterminate .yc-checkbox__icon{color:var(--yc-my-color-brand-text-contrast);-webkit-transform:translateX(0);transform:translateX(0);visibility:visible}.yc-checkbox_disabled .yc-checkbox__indicator:before{background-color:var(--yc-color-base-generic-accent-disabled);border:transparent}.yc-checkbox_disabled.yc-checkbox_checked .yc-checkbox__indicator:before,.yc-checkbox_disabled.yc-checkbox_indeterminate .yc-checkbox__indicator:before{background-color:var(--yc-color-base-special);opacity:.5}.yc-control-label{-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--yc-color-text-primary);cursor:pointer;display:inline-flex;font-family:var(--yc-text-body-font-family);font-weight:400;touch-action:manipulation;-webkit-user-select:none;user-select:none}.yc-control-label_disabled{cursor:default;pointer-events:none}.yc-control-label_size_m{font-size:13px;line-height:15px}.yc-control-label_size_l{font-size:15px;line-height:18px}.yc-control-label__indicator{flex-shrink:0}.yc-control-label__text{flex-grow:1;white-space:normal}.yc-control-label_disabled .yc-control-label__text{opacity:.6}.yc-control-label_size_m .yc-control-label__text{margin-left:5px}.yc-control-label_size_l .yc-control-label__text{margin-left:7px}.tag{background:var(--yc-color-base-generic);border-radius:3px;color:var(--yc-color-text-primary);font-size:12px;margin-right:5px;padding:2px 5px;text-transform:uppercase}.tag:last-child{margin-right:0}.tag_type_blue{background-color:var(--yc-color-celestial-thunder)}.tags{align-items:center;display:flex;flex-wrap:wrap}.tablet{border:1px solid var(--yc-color-base-generic-medium-hover);border-radius:4px;color:var(--yc-color-text-complementary);cursor:pointer;display:flex;font-size:10px;height:18px;justify-content:center;text-transform:uppercase;width:18px}.tablet__wrapper{margin-bottom:2px;margin-right:2px}.tablet__wrapper:last-child{margin-right:0}.tablet__popup-content{padding:10px}.tablet__type{color:var(--yc-color-text-complementary);line-height:17px}.tablet_status_gray{background-color:var(--yc-color-text-complementary)}.tablet_status_yellow{background-color:var(--yc-color-base-warning-heavy)}.tablet_status_orange{background-color:var(--yc-color-text-warning-heavy)}.tablet_status_red{background-color:var(--yc-color-base-danger-heavy)}.tablet_status_green{background-color:var(--yc-color-base-positive-heavy)}.tablet_state_blue{background-color:var(--yc-color-base-info-heavy)}.tablet_status_black{background-color:var(--yc-color-text-secondary)}.ydb-external-link-with-icon{align-items:center;display:flex;flex-wrap:nowrap;white-space:nowrap}.ydb-cluster-versions-bar{display:flex;flex-direction:column;width:600px}.ydb-cluster-versions-bar .yc-progress{width:100%}.ydb-cluster-versions-bar__versions{display:flex;flex-flow:row wrap;margin-top:6px}.ydb-cluster-versions-bar__version-title{margin-left:3px;white-space:nowrap}.ydb-cluster-versions-bar .yc-progress__stack{cursor:pointer}.ydb-cluster-info-skeleton{display:flex;flex-direction:column;gap:16px;margin-top:5px}.ydb-cluster-info-skeleton__row{align-items:flex-start;display:flex}.ydb-cluster-info-skeleton__row,.ydb-cluster-info-skeleton__row .yc-skeleton{min-height:var(--yc-text-body-2-font-size)}.ydb-cluster-info-skeleton__label{align-items:baseline;display:flex;flex:0 1 auto;width:200px}.ydb-cluster-info-skeleton__label__text{width:100px}.ydb-cluster-info-skeleton__label__dots{border-bottom:1px dotted var(--yc-color-text-secondary);margin:0 2px;width:100px}.ydb-cluster-info-skeleton__value{max-width:20%;min-width:200px}.ydb-cluster-info-skeleton__versions{height:36px;max-width:40%;min-width:400px}.cluster-info{left:0;padding-top:20px;position:-webkit-sticky;position:sticky;width:100%}.cluster-info__header{cursor:pointer;display:flex;margin-bottom:20px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.cluster-info__header__expand-button{margin-left:6px}.cluster-info__header__expand-button_rotate{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.cluster-info__title .entity-status__name{font-size:var(--yc-text-header-1-font-size);font-weight:var(--yc-text-header-font-weight);line-height:var(--yc-text-header-1-line-height)}.cluster-info__title-skeleton{height:var(--yc-text-header-1-line-height);min-width:200px;width:20%}.cluster-info__error{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.cluster-info__info{margin-bottom:20px}.cluster-info__info_hidden{display:none}.cluster-info__metric-field{margin-top:-8px}.cluster-info__system-tablets{align-items:center;display:flex;flex-wrap:wrap}.cluster-info__system-tablets .tablet{margin-top:2px}.cluster-info__metrics{margin:0 -15px;padding:0 15px!important}.cluster-info__metrics .info-viewer__items{grid-template-columns:repeat(2,minmax(auto,250px))}.cluster-info__metrics .info-viewer__label{width:50px}.cluster-info__metrics .info-viewer__value{width:130px}.cluster-info__tablets{margin-left:15px;padding:0!important}.cluster-info__links{display:flex;flex-flow:row wrap;gap:12px}.cluster-info__clipboard-button{align-items:center;display:flex;margin-left:5px}.cluster{display:flex;flex-direction:column;flex-grow:1;flex:1 1 auto;height:100%;overflow:auto;padding:0 20px}.cluster__tabs{left:0;position:-webkit-sticky;position:sticky}.yc-root{--yc-tab-item-vertical-padding:6px 20px;--yc-tab-item-vertical-height:18px}.yc-tabs_size_m{--yc-tabs-height:36px;--yc-tabs-gap:24px;--yc-tabs-border-width:2px}.yc-tabs_size_m .yc-tabs__item-counter,.yc-tabs_size_m .yc-tabs__item-title{font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height)}.yc-tabs_size_l{--yc-tabs-height:40px;--yc-tabs-gap:28px;--yc-tabs-border-width:2px}.yc-tabs_size_l .yc-tabs__item-counter,.yc-tabs_size_l .yc-tabs__item-title{font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-2-line-height)}.yc-tabs_size_xl{--yc-tabs-height:44px;--yc-tabs-gap:32px;--yc-tabs-border-width:3px}.yc-tabs_size_xl .yc-tabs__item-counter,.yc-tabs_size_xl .yc-tabs__item-title{font-size:var(--yc-text-subheader-3-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-3-line-height)}.yc-tabs__item{cursor:pointer;outline:none;-webkit-user-select:none;user-select:none}.yc-tabs__item-content{align-items:center;display:flex}.yc-tabs__item_overflow .yc-tabs__item-content{min-width:0}.yc-tabs__item-icon{margin-right:8px}.yc-tabs__item-title{white-space:nowrap}.yc-tabs__item_overflow .yc-tabs__item-title{overflow:hidden;text-overflow:ellipsis}.yc-tabs__item-counter,.yc-tabs__item-label{margin-left:8px}.yc-tabs__item-icon>svg{display:block}.yc-tabs_direction_horizontal{align-items:flex-end;box-shadow:inset 0 -1px 0 0 var(--yc-color-line-generic);display:flex;flex-wrap:wrap;overflow:hidden}.yc-tabs_direction_horizontal .yc-tabs__item{align-items:center;border-bottom:var(--yc-tabs-border-width) solid transparent;box-sizing:border-box;display:flex;height:var(--yc-tabs-height);padding-top:var(--yc-tabs-border-width)}.yc-tabs_direction_horizontal .yc-tabs__item-meta{display:none}.yc-tabs_direction_horizontal .yc-tabs__item-title{color:var(--yc-color-text-secondary)}.yc-tabs_direction_horizontal .yc-tabs__item-counter,.yc-tabs_direction_horizontal .yc-tabs__item-icon{color:var(--yc-color-text-hint)}.yc-tabs_direction_horizontal .yc-tabs__item:focus .yc-tabs__item-title,.yc-tabs_direction_horizontal .yc-tabs__item:hover .yc-tabs__item-title,.yc-tabs_direction_horizontal .yc-tabs__item_active .yc-tabs__item-title{color:var(--yc-color-text-primary)}.yc-tabs_direction_horizontal .yc-tabs__item:focus .yc-tabs__item-counter,.yc-tabs_direction_horizontal .yc-tabs__item:focus .yc-tabs__item-icon,.yc-tabs_direction_horizontal .yc-tabs__item:hover .yc-tabs__item-counter,.yc-tabs_direction_horizontal .yc-tabs__item:hover .yc-tabs__item-icon,.yc-tabs_direction_horizontal .yc-tabs__item_active .yc-tabs__item-counter,.yc-tabs_direction_horizontal .yc-tabs__item_active .yc-tabs__item-icon{color:var(--yc-color-text-secondary)}.yc-tabs_direction_horizontal .yc-tabs__item_active,.yc-tabs_direction_horizontal .yc-tabs__item_active:focus,.yc-tabs_direction_horizontal .yc-tabs__item_active:hover{border-color:var(--yc-color-base-special)}.yc-tabs_direction_horizontal .yc-tabs__item_disabled{pointer-events:none}.yc-tabs_direction_horizontal .yc-tabs__item_disabled .yc-tabs__item-title{color:var(--yc-color-text-hint)}.yc-tabs_direction_horizontal>:not(:last-child){margin-right:var(--yc-tabs-gap)}.yc-tabs_direction_vertical{display:flex;flex-direction:column}.yc-tabs_direction_vertical .yc-tabs__item{padding:var(--yc-tab-item-vertical-padding)}.yc-tabs_direction_vertical .yc-tabs__item-title{color:var(--yc-color-text-primary);line-height:var(--yc-tab-item-vertical-height)}.yc-tabs_direction_vertical .yc-tabs__item-meta{color:var(--yc-color-text-secondary);line-height:var(--yc-tab-item-vertical-height)}.yc-tabs_direction_vertical .yc-tabs__item-counter,.yc-tabs_direction_vertical .yc-tabs__item-icon{color:var(--yc-color-text-secondary)}.yc-tabs_direction_vertical .yc-tabs__item:focus,.yc-tabs_direction_vertical .yc-tabs__item:hover{background-color:var(--yc-color-base-generic-hover)}.yc-tabs_direction_vertical .yc-tabs__item_active{background-color:var(--yc-color-base-selection)}.yc-tabs_direction_vertical .yc-tabs__item_active:focus,.yc-tabs_direction_vertical .yc-tabs__item_active:hover{background-color:var(--yc-color-base-selection-hover)}.yc-tabs_direction_vertical .yc-tabs__item_disabled{pointer-events:none}.yc-tabs_direction_vertical .yc-tabs__item_disabled .yc-tabs__item-title{color:var(--yc-color-text-secondary)}.kv-split{display:flex;height:100%;outline:none;-webkit-user-select:text;user-select:text;z-index:0}.kv-split.horizontal{flex-direction:row}.kv-split.vertical{flex-direction:column;min-height:100%;width:100%}.kv-split .gutter{background:var(--yc-color-base-background);position:relative;z-index:10}.kv-split .gutter:after{background-color:var(--yc-color-base-generic-ultralight);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.kv-split .gutter.active:after,.kv-split .gutter:hover:after{background-color:var(--yc-color-line-generic-hover);transition:background-color 1s ease}.kv-split .gutter.disabled{display:none}.kv-split .gutter.gutter-vertical{cursor:row-resize;height:8px;width:100%}.kv-split .gutter.gutter-vertical:before{border-color:var(--yc-color-base-generic-hover);border-style:solid;border-width:1px 0;content:"";height:4px;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:16px}.kv-split .gutter.gutter-horizontal{cursor:col-resize;height:100%;width:8px}.kv-split .gutter.gutter-horizontal:before{border-color:var(--yc-color-base-generic-hover);border-style:solid;border-width:0 1px;content:"";height:16px;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:4px}.kv-acl{display:flex;flex-grow:1;overflow:auto;padding:0 12px 16px}.kv-acl .data-table__table{border-collapse:initial;border-spacing:0}.kv-acl .data-table__td,.kv-acl .data-table__th{vertical-align:middle}.kv-acl .data-table__box .data-table__table-wrapper{padding-bottom:20px}.kv-acl .data-table__row,.kv-acl .data-table__sticky th{height:40px}.kv-acl .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.kv-acl__result{align-self:flex-start}.kv-acl__message-container{padding:0 12px 16px}.kv-acl__loader-container{align-items:center;display:flex;height:100%;justify-content:center}.kv-acl__owner-container{background-color:var(--yc-color-base-background);padding-bottom:16px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.kv-acl__owner-container .yc-staff-card{display:inline-block}.kv-acl__text{color:var(--yc-color-text-primary);font-size:var(--yc-text-body-1-font-size);line-height:var(--yc-text-body-1-line-height)}.kv-acl__text:first-letter{color:var(--yc-color-text-danger)}.schema-viewer{padding:0 12px}.schema-viewer__key-icon{align-items:center;display:flex}.kv-pane-visibility-button_hidden{display:none}.kv-pane-visibility-button_bottom{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.kv-pane-visibility-button_bottom.rotate{-webkit-transform:rotate(0);transform:rotate(0)}.kv-pane-visibility-button_left{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.kv-pane-visibility-button_left.rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.kv-pane-visibility-button_top.rotate{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.object-summary{display:flex;flex-direction:column;flex-grow:1;height:100%;max-height:100%;overflow:hidden;position:relative;width:100%}.object-summary__overview-wrapper{display:flex;flex-grow:1;overflow:auto;padding:0 12px 16px}.object-summary_hidden{visibility:hidden}.object-summary__action-button{background-color:var(--yc-color-base-background);position:absolute;right:5px;top:19px}.object-summary__action-button_hidden{visibility:hidden}.object-summary__loader{align-items:center;display:flex;justify-content:center}.object-summary__tree-wrapper{display:flex;flex-direction:column}.object-summary__tree{flex:1 1 auto;height:100%;overflow-y:scroll;padding:0 12px 12px 16px}.object-summary__tree-header{padding:23px 12px 17px 20px}.object-summary__sticky-top{background-color:var(--yc-color-base-background);left:0;position:-webkit-sticky;position:sticky;top:0;z-index:5}.object-summary__tabs{padding:8px 12px 16px}.object-summary__tab{margin-right:40px;text-decoration:none}.object-summary__tab:first-letter{text-transform:uppercase}.object-summary__info{display:flex;flex-direction:column;overflow:hidden}.object-summary__schema{display:flex;flex-grow:1;overflow:auto}.object-summary__info-controls{display:flex;gap:4px}.object-summary__info-action-button{background-color:var(--yc-color-base-background)}.object-summary__info-action-button_hidden{display:none}.object-summary__rotated90{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.object-summary__rotated180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.object-summary__rotated270{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.object-summary__info-header{align-items:center;border-bottom:1px solid var(--yc-color-line-generic);display:flex;justify-content:space-between;padding:12px 12px 10px}.object-summary__info-title{align-items:center;display:flex;font-weight:600;overflow:hidden}.object-summary__path-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.object-summary__entity-type{background-color:var(--yc-color-base-generic);border-radius:3px;display:inline-block;font-weight:400;margin-right:5px;padding:3px 8px;text-transform:lowercase}.object-summary__entity-type_error{background-color:initial;padding:3px 0}.object-summary .yc-button__text{margin:0 6px}.kv-truncated-query{max-width:100%;vertical-align:top;white-space:pre;word-break:break-word}.kv-truncated-query__message{white-space:pre-wrap}.kv-truncated-query__message_color_secondary{color:var(--yc-color-text-secondary)}.ydb-saved-queries{display:flex;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto;padding:0 16px}.ydb-saved-queries .data-table__table{width:100%}.ydb-saved-queries .data-table__row,.ydb-saved-queries .data-table__sticky th{height:40px}.ydb-saved-queries .data-table__box .data-table__table-wrapper{padding-bottom:20px}.ydb-saved-queries__row{cursor:pointer}.ydb-saved-queries__row :hover .ydb-saved-queries__controls{display:flex}.ydb-saved-queries__query-name{overflow:hidden;text-overflow:ellipsis;white-space:pre-wrap}.ydb-saved-queries__query{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.ydb-saved-queries__query-body{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:pre}.ydb-saved-queries__controls{display:none}.ydb-saved-queries__dialog-query-name{font-weight:500}.yc-dialog{position:relative}.yc-dialog_size_s{width:480px;width:var(--yc-dialog-size-s)}.yc-dialog_size_m{width:720px;width:var(--yc-dialog-size-m)}.yc-dialog_size_l{width:900px;width:var(--yc-dialog-size-l)}.yc-dialog_has-close{--yc-dialog-header-padding:var(--yc-dialog-header-padding-top) calc(var(--yc-dialog-side-padding) + 28px) var(--yc-dialog-header-padding-bottom) var(--yc-dialog-side-padding)}:root{--yc-dialog-size-s:480px;--yc-dialog-size-m:720px;--yc-dialog-size-l:900px;--yc-dialog-side-padding:32px;--yc-dialog-header-padding-top:20px;--yc-dialog-header-padding-bottom:10px;--yc-dialog-header-padding:var(--yc-dialog-header-padding-top) var(--yc-dialog-side-padding) var(--yc-dialog-header-padding-bottom) var(--yc-dialog-side-padding);--yc-dialog-body-padding:10px var(--yc-dialog-side-padding);--yc-dialog-footer-padding:28px var(--yc-dialog-side-padding);--yc-dialog-divider-margin:0 calc(var(--yc-dialog-side-padding)*-1)}.yc-modal{-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:var(--yc-color-sfx-veil);bottom:0;display:none;left:0;margin:-9999px 0 0 -9999px;overflow:auto;position:fixed;right:0;top:0;visibility:hidden;z-index:1000}.yc-modal__table{display:table;height:100%;width:100%}.yc-modal__cell{display:table-cell;text-align:center;vertical-align:middle}.yc-modal__content{background-color:var(--yc-color-base-modal);border-radius:5px;border-radius:var(--yc-modal-border-radius);display:inline-block;margin:20px;margin:var(--yc-modal-margin);text-align:left}.yc-modal,.yc-modal__content{-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;outline:none}.yc-modal_exit_active,.yc-modal_open{display:block;margin:0;visibility:visible}.yc-modal_appear_active,.yc-modal_enter_active{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:yc-modal-open;animation-name:yc-modal-open}.yc-modal_appear_active .yc-modal__content,.yc-modal_enter_active .yc-modal__content{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:yc-modal-content-open;animation-name:yc-modal-content-open}.yc-modal_exit_active{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:yc-modal;animation-name:yc-modal}@-webkit-keyframes yc-modal{0%{opacity:1}to{opacity:0}}@keyframes yc-modal{0%{opacity:1}to{opacity:0}}@-webkit-keyframes yc-modal-open{0%{opacity:0}to{opacity:1}}@keyframes yc-modal-open{0%{opacity:0}to{opacity:1}}@-webkit-keyframes yc-modal-content-open{0%{-webkit-transform:scale(.75);transform:scale(.75)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes yc-modal-content-open{0%{-webkit-transform:scale(.75);transform:scale(.75)}to{-webkit-transform:scale(1);transform:scale(1)}}:root{--yc-modal-border-radius:5px;--yc-modal-margin:20px}.yc-dialog-btn-close{position:absolute;right:calc(var(--yc-dialog-side-padding) - 12px);top:calc(var(--yc-dialog-header-padding-top) - 6px);z-index:1}.yc-dialog-footer{align-items:center;display:flex;padding:var(--yc-dialog-footer-padding)}.yc-dialog-footer__bts-wrapper{display:flex}.yc-dialog-footer__children{align-items:center;display:flex;flex-grow:1;height:100%}.yc-dialog-footer__button{min-width:128px;position:relative}.yc-dialog-footer__bts-wrapper>.yc-dialog-footer__button{margin-left:10px}.yc-dialog-footer__error{color:var(--yc-color-text-danger);padding:10px}.yc-dialog-header{align-items:center;color:var(--yc-color-text-primary);display:flex;justify-content:flex-start;line-height:24px;padding:var(--yc-dialog-header-padding)}.yc-dialog-header__caption{font-size:var(--yc-text-subheader-3-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-3-line-height)}.yc-dialog-body{flex:1 1 100%;padding:var(--yc-dialog-body-padding)}.yc-dialog-divider{border-top:1px solid var(--yc-color-line-generic);margin:var(--yc-dialog-divider-margin)}.ydb-queries-history{display:flex;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto;padding:0 16px}.ydb-queries-history .data-table__table{width:100%}.ydb-queries-history .data-table__row,.ydb-queries-history .data-table__sticky th{height:40px}.ydb-queries-history .data-table__box .data-table__table-wrapper{padding-bottom:20px}.ydb-queries-history__query{cursor:pointer;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:pre}.monaco-editor{--monaco-monospace-font:"SF Mono",Monaco,Menlo,Consolas,"Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New",monospace;font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px}.monaco-editor.hc-black{-ms-high-contrast-adjust:none}@media screen and (-ms-high-contrast:active){.monaco-editor.vs .view-overlays .current-line,.monaco-editor.vs-dark .view-overlays .current-line{border-color:windowtext!important;border-left:0;border-right:0}.monaco-editor.vs .cursor,.monaco-editor.vs-dark .cursor{background-color:windowtext!important}.monaco-editor.vs .dnd-target,.monaco-editor.vs-dark .dnd-target{border-color:windowtext!important}.monaco-editor.vs .selected-text,.monaco-editor.vs-dark .selected-text{background-color:highlight!important}.monaco-editor.vs .view-line,.monaco-editor.vs-dark .view-line{-ms-high-contrast-adjust:none}.monaco-editor.vs .view-line span,.monaco-editor.vs-dark .view-line span{color:windowtext!important}.monaco-editor.vs .view-line span.inline-selected-text,.monaco-editor.vs-dark .view-line span.inline-selected-text{color:highlighttext!important}.monaco-editor.vs .view-overlays,.monaco-editor.vs-dark .view-overlays{-ms-high-contrast-adjust:none}.monaco-editor.vs .reference-decoration,.monaco-editor.vs .selectionHighlight,.monaco-editor.vs .wordHighlight,.monaco-editor.vs .wordHighlightStrong,.monaco-editor.vs-dark .reference-decoration,.monaco-editor.vs-dark .selectionHighlight,.monaco-editor.vs-dark .wordHighlight,.monaco-editor.vs-dark .wordHighlightStrong{background:transparent!important;border:2px dotted highlight!important;box-sizing:border-box}.monaco-editor.vs .rangeHighlight,.monaco-editor.vs-dark .rangeHighlight{background:transparent!important;border:1px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs .bracket-match,.monaco-editor.vs-dark .bracket-match{background:transparent!important;border-color:windowtext!important}.monaco-editor.vs .currentFindMatch,.monaco-editor.vs .findMatch,.monaco-editor.vs-dark .currentFindMatch,.monaco-editor.vs-dark .findMatch{background:transparent!important;border:2px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs .find-widget,.monaco-editor.vs-dark .find-widget{border:1px solid windowtext}.monaco-editor.vs .monaco-list .monaco-list-row,.monaco-editor.vs-dark .monaco-list .monaco-list-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs .monaco-list .monaco-list-row.focused,.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused{background-color:highlight!important;color:highlighttext!important}.monaco-editor.vs .monaco-list .monaco-list-row:hover,.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover{background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs .decorationsOverviewRuler,.monaco-editor.vs-dark .decorationsOverviewRuler{opacity:0}.monaco-editor.vs .minimap,.monaco-editor.vs-dark .minimap{display:none}.monaco-editor.vs .squiggly-d-error,.monaco-editor.vs-dark .squiggly-d-error{background:transparent!important;border-bottom:4px double #e47777}.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs .squiggly-c-warning,.monaco-editor.vs-dark .squiggly-b-info,.monaco-editor.vs-dark .squiggly-c-warning{border-bottom:4px double #71b771}.monaco-editor.vs .squiggly-a-hint,.monaco-editor.vs-dark .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;background-color:highlight!important;color:highlighttext!important}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-diff-editor.vs .diffOverviewRuler,.monaco-diff-editor.vs-dark .diffOverviewRuler{display:none}.monaco-editor.vs .line-delete,.monaco-editor.vs .line-insert,.monaco-editor.vs-dark .line-delete,.monaco-editor.vs-dark .line-insert{background:transparent!important;border:1px solid highlight!important;box-sizing:border-box}.monaco-editor.vs .char-delete,.monaco-editor.vs .char-insert,.monaco-editor.vs-dark .char-delete,.monaco-editor.vs-dark .char-insert{background:transparent!important}}.monaco-aria-container{left:-999em;position:absolute}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{-webkit-text-size-adjust:100%;overflow:visible;position:relative}.monaco-editor .overflow-guard{overflow:hidden;position:relative}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .inputarea{background-color:initial;border:none;color:transparent;margin:0;min-height:0;min-width:0;outline:none!important;overflow:hidden;padding:0;position:absolute;resize:none}.monaco-editor .inputarea.ime-input{z-index:10}.monaco-editor .margin-view-overlays .line-numbers{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";box-sizing:border-box;cursor:default;display:inline-block;font-variant-numeric:tabular-nums;height:100%;position:absolute;text-align:right;vertical-align:middle}.monaco-editor .relative-current-line-number{display:inline-block;text-align:left;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-mouse-cursor-text{cursor:text}.hc-black .mac .monaco-mouse-cursor-text,.hc-black.mac .monaco-mouse-cursor-text,.vs-dark .mac .monaco-mouse-cursor-text,.vs-dark.mac .monaco-mouse-cursor-text{cursor:-webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=) 1x,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC) 2x) 5 8,text}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{box-sizing:border-box;display:block;left:0;position:absolute;top:0}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{background:transparent;opacity:1;transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{display:none;position:absolute}.monaco-scrollable-element>.shadow.top{box-shadow:inset 0 6px 6px -6px #ddd;display:block;height:3px;left:3px;top:0;width:100%}.monaco-scrollable-element>.shadow.left{box-shadow:inset 6px 0 6px -6px #ddd;display:block;height:100%;left:0;top:3px;width:3px}.monaco-scrollable-element>.shadow.top-left-corner{display:block;height:3px;left:0;top:0;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:inset 6px 6px 6px -6px #ddd}.vs .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,39%,.4)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,47%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider{background:rgba(111,195,223,.6)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:hsla(0,0%,39%,.7)}.hc-black .monaco-scrollable-element>.scrollbar>.slider:hover{background:rgba(111,195,223,.8)}.monaco-scrollable-element>.scrollbar>.slider.active{background:rgba(0,0,0,.6)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active{background:hsla(0,0%,75%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider.active{background:#6fc3df}.vs-dark .monaco-scrollable-element .shadow.top{box-shadow:none}.vs-dark .monaco-scrollable-element .shadow.left{box-shadow:inset 6px 0 6px -6px #000}.vs-dark .monaco-scrollable-element .shadow.top.left{box-shadow:inset 6px 6px 6px -6px #000}.hc-black .monaco-scrollable-element .shadow.left,.hc-black .monaco-scrollable-element .shadow.top,.hc-black .monaco-scrollable-element .shadow.top.left{box-shadow:none}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .margin-view-overlays .cgmr{align-items:center;display:flex;justify-content:center;position:absolute}.monaco-editor .lines-content .cigr,.monaco-editor .lines-content .cigra{position:absolute}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkz{display:inline-block}.monaco-editor .lines-decorations{background:#fff;position:absolute;top:0}.monaco-editor .margin-view-overlays .cldr{height:100%;position:absolute}.monaco-editor .margin-view-overlays .cmdr{height:100%;left:0;position:absolute;width:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{left:-6px;position:absolute;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{left:-1px;position:absolute;width:1px}.monaco-editor .overlayWidgets{left:0;position:absolute;top:0}.monaco-editor .view-ruler{position:absolute;top:0}.monaco-editor .scroll-decoration{height:6px;left:0;position:absolute;top:0}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{overflow:hidden;position:absolute}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{background:transparent!important;border-bottom-style:solid;border-bottom-width:2px;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{background:transparent!important;border-bottom-style:solid;border-bottom-width:1px;box-sizing:border-box}@-webkit-keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@-webkit-keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@-webkit-keyframes monaco-cursor-expand{0%,20%{-webkit-transform:scaleY(1);transform:scaleY(1)}80%,to{-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes monaco-cursor-expand{0%,20%{-webkit-transform:scaleY(1);transform:scaleY(1)}80%,to{-webkit-transform:scaleY(0);transform:scaleY(0)}}.cursor-smooth{-webkit-animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{-webkit-animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{-webkit-animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{align-items:center;display:flex!important;font-size:11px!important;opacity:.7!important}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}:root{--sash-size:4px}.monaco-sash{position:absolute;touch-action:none;z-index:35}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;height:100%;top:0;width:4px;width:var(--sash-size)}.monaco-sash.horizontal{cursor:ns-resize;height:4px;height:var(--sash-size);left:0;width:100%}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";cursor:all-scroll;display:block;height:8px;height:calc(var(--sash-size)*2);position:absolute;width:8px;width:calc(var(--sash-size)*2);z-index:100}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:-2px;left:calc(var(--sash-size)*-.5);top:-4px;top:calc(var(--sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{bottom:-4px;bottom:calc(var(--sash-size)*-1);left:-2px;left:calc(var(--sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{left:-4px;left:calc(var(--sash-size)*-1);top:-2px;top:calc(var(--sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{right:-4px;right:calc(var(--sash-size)*-1);top:-2px;top:calc(var(--sash-size)*-.5)}.monaco-sash:before{background:transparent;content:"";height:100%;pointer-events:none;position:absolute;transition:background-color .1s ease-out;width:100%}.monaco-sash.vertical:before{left:calc(50% - var(--sash-hover-size)/2);width:var(--sash-hover-size)}.monaco-sash.horizontal:before{height:var(--sash-hover-size);top:calc(50% - var(--sash-hover-size)/2)}.monaco-sash.debug{background:cyan}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-diff-editor .diff-review-line-number{display:inline-block;text-align:right}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.monaco-action-bar{height:100%;white-space:nowrap}.monaco-action-bar .actions-container{align-items:center;display:flex;height:100%;margin:0 auto;padding:0;width:100%}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{align-items:center;cursor:pointer;display:block;justify-content:center;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:block}.monaco-action-bar .action-item .codicon{align-items:center;display:flex;height:16px;width:16px}.monaco-action-bar .action-label{border-radius:5px;font-size:11px;padding:3px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.4}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{border-bottom:1px solid #bbb;display:block;margin-left:.8em;margin-right:.8em;padding-top:1px}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{align-items:center;display:flex;flex:1 1;justify-content:center;margin-right:10px;max-width:170px;min-width:60px;overflow:hidden}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-label{margin-right:1px}.context-view .monaco-menu{min-width:130px}.context-view{position:absolute;z-index:2500}.context-view.fixed{clip:auto;all:initial;-webkit-animation:none 0s ease 0s 1 normal none running;animation:none 0s ease 0s 1 normal none running;-webkit-backface-visibility:visible;backface-visibility:visible;background:transparent none repeat 0 0/auto auto padding-box border-box scroll;border:none;border-collapse:initial;border-image:none;border-radius:0;border-spacing:0;bottom:auto;box-shadow:none;box-sizing:initial;caption-side:top;clear:none;color:#000;color:inherit;-webkit-column-fill:balance;column-fill:balance;-webkit-column-gap:normal;column-gap:normal;column-rule:medium none currentColor;-webkit-column-span:1;column-span:1;-webkit-columns:auto;-webkit-column-count:auto;-webkit-column-rule:medium none currentColor;-webkit-column-width:auto;columns:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:inline;empty-cells:show;float:none;font-family:serif;font-family:inherit;font-size:medium;font-size:13px;font-stretch:normal;font-style:normal;font-variant:normal;font-weight:400;height:auto;-webkit-hyphens:none;hyphens:none;left:auto;letter-spacing:normal;line-height:normal;list-style:disc none outside;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:2;outline:medium none invert;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;-webkit-perspective:none;perspective:none;-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%;position:static;position:fixed;right:auto;tab-size:8;table-layout:auto;text-align:left;text-align-last:auto;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;top:auto;-webkit-transform:none;transform:none;-webkit-transform-origin:50% 50% 0;transform-origin:initial;-webkit-transform-style:flat;transform-style:flat;transition:none 0s ease 0s;unicode-bidi:normal;vertical-align:initial;visibility:visible;white-space:normal;widows:2;width:auto;word-spacing:normal;z-index:auto;z-index:2500}@font-face{font-family:codicon;src:url(../../static/media/codicon.80a4c25b73c1f97077ed.ttf) format("truetype")}.codicon[class*=codicon-]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font:normal normal normal 16px/1 codicon;text-align:center;text-decoration:none;text-rendering:auto;user-select:none;-webkit-user-select:none;-ms-user-select:none}.codicon-wrench-subaction{opacity:.5}@-webkit-keyframes codicon-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes codicon-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{-webkit-animation:codicon-spin 1.5s steps(30) infinite;animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{-webkit-animation-duration:1s!important;animation-duration:1s!important;-webkit-animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-list{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{height:100%;position:relative;width:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{min-width:100%;width:auto}.monaco-list-row{box-sizing:border-box;overflow:hidden;position:absolute;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-list:focus .monaco-list-row.selected .codicon{color:inherit}.monaco-drag-image{border-radius:10px;display:inline-block;font-size:12px;padding:1px 7px;position:absolute;z-index:1000}.monaco-list-type-filter{align-items:center;border-radius:2px;box-sizing:border-box;cursor:all-scroll;display:flex;font-size:13px;height:20px;line-height:18px;max-width:calc(100% - 10px);overflow:hidden;padding:0 3px;position:absolute;text-align:right;text-overflow:ellipsis;top:4px;z-index:1}.monaco-list-type-filter.dragging{transition:top .2s,left .2s}.monaco-list-type-filter.ne{right:4px}.monaco-list-type-filter.nw{left:4px}.monaco-list-type-filter>.controls{align-items:center;box-sizing:border-box;display:flex;transition:width .2s;width:0}.monaco-list-type-filter.dragging>.controls,.monaco-list-type-filter:hover>.controls{width:36px}.monaco-list-type-filter>.controls>*{align-items:center;-webkit-appearance:none;-moz-appearance:none;background:none;border:none;box-sizing:border-box;cursor:pointer;display:flex;flex-shrink:0;height:16px;justify-content:center;margin:0;padding:0;width:16px}.monaco-list-type-filter>.controls>.filter{margin-left:4px}.monaco-list-type-filter-message{box-sizing:border-box;height:100%;left:0;opacity:.7;padding:40px 1em 1em;pointer-events:none;position:absolute;text-align:center;top:0;white-space:normal;width:100%}.monaco-list-type-filter-message:empty{display:none}.monaco-list-type-filter{cursor:grab}.monaco-list-type-filter.dragging{cursor:grabbing}.monaco-tl-row{align-items:center;display:flex;height:100%;position:relative}.monaco-tl-indent{height:100%;left:16px;pointer-events:none;position:absolute;top:0}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{border-left:1px solid transparent;box-sizing:border-box;display:inline-block;height:100%;transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{align-items:center;color:inherit!important;display:flex!important;flex-shrink:0;font-size:10px;justify-content:center;padding-right:6px;text-align:right;-webkit-transform:translateX(3px);transform:translateX(3px);width:16px}.monaco-tl-contents{flex:1 1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{-webkit-animation:codicon-spin 1.25s steps(30) infinite;animation:codicon-spin 1.25s steps(30) infinite}.monaco-table{display:flex;flex-direction:column;height:100%;position:relative;white-space:nowrap;width:100%}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1 1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{font-weight:700;height:100%;overflow:hidden;text-overflow:ellipsis;width:100%}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{border-left:1px solid transparent;content:"";left:calc(var(--sash-size)/2);position:absolute;width:0}.monaco-table>.monaco-split-view2,.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-split-view2{height:100%;position:relative;width:100%}.monaco-split-view2>.sash-container{height:100%;pointer-events:none;position:absolute;width:100%}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.monaco-scrollable-element{height:100%;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{position:absolute;white-space:normal}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{background-color:var(--separator-border);content:" ";left:0;pointer-events:none;position:absolute;top:0;z-index:5}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,87%,.4);border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73%,.4);box-shadow:inset 0 -1px 0 hsla(0,0%,73%,.4);color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #6fc3df;box-shadow:none;color:#fff}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50%,.17);border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6);color:#ccc}.quick-input-widget{left:50%;margin-left:-300px;padding:0 1px 6px;position:absolute;width:600px;z-index:2000}.quick-input-titlebar{align-items:center;display:flex}.quick-input-left-action-bar{display:flex;flex:1 1;margin-left:4px}.quick-input-title{padding:3px 0;text-align:center}.quick-input-right-action-bar{display:flex;flex:1 1;margin-right:4px}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px}.quick-input-header .quick-input-description{margin:4px 2px}.quick-input-header{display:flex;margin-bottom:-2px;padding:6px 6px 0}.quick-input-widget.hidden-input .quick-input-header{margin-bottom:0;padding:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{display:flex;flex-grow:1;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{left:-10000px;position:absolute}.quick-input-count{align-items:center;align-self:center;display:flex;position:absolute;right:4px}.quick-input-count .monaco-count-badge{border-radius:2px;line-height:normal;min-height:auto;padding:2px 4px;vertical-align:middle}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{align-items:center;display:flex;font-size:11px;height:27.5px;padding:0 6px}.quick-input-message{margin-top:-1px;padding:5px 5px 2px}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-progress.monaco-progress-container,.quick-input-progress.monaco-progress-container .progress-bit{height:2px}.quick-input-list{line-height:22px;margin-top:6px}.quick-input-widget.hidden-input .quick-input-list{margin-top:0}.quick-input-list .monaco-list{max-height:440px;overflow:hidden}.quick-input-list .quick-input-list-entry{box-sizing:border-box;display:flex;height:100%;overflow:hidden;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-style:solid;border-top-width:1px}.quick-input-list .monaco-list-row:first-child .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{display:flex;flex:1 1;height:100%;overflow:hidden}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-rows{display:flex;flex:1 1;flex-direction:column;height:100%;margin-left:5px;overflow:hidden;text-overflow:ellipsis}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{align-items:center;display:flex}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1 1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:sub}.quick-input-list .quick-input-list-rows .monaco-highlighted-label span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{line-height:normal;opacity:.7;overflow:hidden;text-overflow:ellipsis}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:8px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0 1;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px;margin-top:1px}.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-position:0;background-repeat:no-repeat;background-size:16px;display:inline-block;flex-shrink:0;height:22px;line-height:inherit!important;padding-right:6px;vertical-align:top;width:16px}.monaco-icon-label>.monaco-icon-label-container{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-size:.9em;margin-left:.5em;opacity:.7;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label.deprecated{opacity:.66;text-decoration:line-through}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{font-size:90%;font-weight:600;opacity:.75;padding:0 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-keybinding{align-items:center;display:flex;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{border-radius:3px;border-style:solid;border-width:1px;display:inline-block;font-size:11px;margin:0 2px;padding:3px 5px;vertical-align:middle}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-inputbox{box-sizing:border-box;display:block;font-size:inherit;padding:0;position:relative}.monaco-inputbox.idle{border:1px solid transparent}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px}.monaco-inputbox>.ibwrapper{height:100%;position:relative;width:100%}.monaco-inputbox>.ibwrapper>.input{border:none;box-sizing:border-box;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;resize:none;width:100%}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{-ms-overflow-style:none;display:block;outline:none;scrollbar-width:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{word-wrap:break-word;box-sizing:border-box;display:inline-block;left:0;position:absolute;top:0;visibility:hidden;white-space:pre-wrap;width:100%}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{word-wrap:break-word;box-sizing:border-box;display:inline-block;font-size:12px;line-height:17px;margin-top:-1px;overflow:hidden;padding:.4em;text-align:left;width:100%}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;height:16px;width:16px}.monaco-count-badge{border-radius:11px;box-sizing:border-box;display:inline-block;font-size:11px;font-weight:400;line-height:11px;min-height:18px;min-width:18px;padding:3px 6px;text-align:center}.monaco-count-badge.long{border-radius:2px;line-height:normal;min-height:auto;padding:2px 3px}.monaco-progress-container{height:5px;overflow:hidden;width:100%}.monaco-progress-container .progress-bit{display:none;height:5px;left:0;position:absolute;width:2%}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{-webkit-animation-duration:4s;animation-duration:4s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:progress;animation-name:progress;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-transform:translateZ(0);transform:translateZ(0)}@-webkit-keyframes progress{0%{-webkit-transform:translateX(0) scaleX(1);transform:translateX(0) scaleX(1)}50%{-webkit-transform:translateX(2500%) scaleX(3);transform:translateX(2500%) scaleX(3)}to{-webkit-transform:translateX(4900%) scaleX(1);transform:translateX(4900%) scaleX(1)}}@keyframes progress{0%{-webkit-transform:translateX(0) scaleX(1);transform:translateX(0) scaleX(1)}50%{-webkit-transform:translateX(2500%) scaleX(3);transform:translateX(2500%) scaleX(3)}to{-webkit-transform:translateX(4900%) scaleX(1);transform:translateX(4900%) scaleX(1)}}.monaco-text-button{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;padding:4px;text-align:center;width:100%}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{cursor:default;opacity:.4!important}.monaco-text-button>.codicon{color:inherit!important;margin:0 .2em}.monaco-button-dropdown{display:flex}.monaco-button-dropdown>.monaco-dropdown-button{margin-left:1px}.monaco-description-button{flex-direction:column}.monaco-description-button .monaco-button-label{font-weight:500}.monaco-description-button .monaco-button-description{font-style:italic}.ydb-query-result-table__cell{cursor:pointer;display:inline-block;max-width:600px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ydb-query-result-table__message{padding:15px 10px}.kv-fullscreen{background-color:var(--yc-color-base-background);bottom:0;display:flex;flex-grow:1;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:10}.kv-fullscreen__close-button{position:fixed;right:20px;top:8px;z-index:11}.kv-fullscreen__close-button .yc-button__text{align-items:center;display:flex;margin:0 6px}.kv-preview{height:100%}.kv-preview .data-table__table{border-collapse:initial;border-spacing:0}.kv-preview .data-table__td,.kv-preview .data-table__th{vertical-align:middle}.kv-preview .data-table__box .data-table__table-wrapper{padding-bottom:20px}.kv-preview .data-table__row,.kv-preview .data-table__sticky th{height:40px}.kv-preview .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.kv-preview .yc-button__text{margin:0 6px}.kv-preview__header{align-items:center;background-color:var(--yc-color-base-background);border-bottom:1px solid var(--yc-color-line-generic);display:flex;height:53px;justify-content:space-between;padding:0 20px;position:-webkit-sticky;position:sticky;top:0}.kv-preview__title{display:flex}.kv-preview__table-name{color:var(--yc-color-text-complementary);margin-left:4px}.kv-preview__controls-left{display:flex;gap:5px}.kv-preview__message-container{padding:15px 20px}.kv-preview__loader-container{align-items:center;display:flex;height:100%;justify-content:center}.kv-preview__result{height:calc(100% - 40px);overflow:auto;padding:0 10px}.kv-fullscreen .kv-preview__result{height:100%}.kv-divider{background-color:var(--yc-color-line-generic);height:100%;margin:0 4px;width:1px}.kv-query-execution-status{align-items:center;color:var(--yc-color-text-complementary);display:flex;gap:4px}.kv-query-execution-status__result-status-icon{color:var(--yc-color-text-positive)}.kv-query-execution-status__result-status-icon_error{color:var(--yc-color-text-danger)}.kv-shorty-string__toggle{font-size:.85em;margin-left:2em}.kv-result-issues{padding:0 10px}.kv-result-issues__error-message{align-items:center;background-color:var(--yc-color-base-background);display:flex;left:0;padding:10px 0;position:-webkit-sticky;position:sticky;top:0;z-index:2}.kv-result-issues__error-message-text{margin:0 10px}.kv-issues{position:relative}.kv-issue_leaf{margin-left:31px}.kv-issue__issues{padding-left:24px}.kv-issue__line{align-items:flex-start;display:flex;margin:0 0 10px;padding:0 10px 0 0}.kv-issue__place-text{color:var(--yc-color-text-secondary);display:inline-block;padding-right:10px;text-align:left}.kv-issue__message{display:flex;font-family:var(--yc-font-family-monospace);font-size:var(--yc-text-code-2-font-size);line-height:var(--yc-text-header-2-line-height);margin-left:10px;margin-right:auto}.kv-issue__message-text{flex:1 1 auto;min-width:240px;white-space:pre-wrap;word-break:break-word}.kv-issue__code{color:var(--yc-color-text-complementary);flex:0 0 auto;font-size:12px;margin-left:1.5em;padding:3px 0}.kv-issue__arrow-toggle{margin-right:5px}.kv-issue__arrow-toggle .yc-button__text{margin:0 5px}.yql-issue-severity{align-items:center;display:flex;line-height:28px;white-space:nowrap}.yql-issue-severity_severity_error .yql-issue-severity__icon,.yql-issue-severity_severity_fatal .yql-issue-severity__icon{color:var(--yc-color-text-danger)}.yql-issue-severity_severity_warning .yql-issue-severity__icon{color:var(--yc-color-text-warning)}.yql-issue-severity_severity_info .yql-issue-severity__icon{color:var(--yc-color-text-info)}.yql-issue-severity__title{color:var(--yc-color-text-complementary);margin-left:4px;text-transform:capitalize}.yc-arrow-toggle{display:inline-block;transition:-webkit-transform .1s ease-out;transition:transform .1s ease-out;transition:transform .1s ease-out,-webkit-transform .1s ease-out;vertical-align:middle}.yc-arrow-toggle_direction_bottom{-webkit-transform:matrix(1,0,0,1,0,0);transform:matrix(1,0,0,1,0,0)}.yc-arrow-toggle_direction_left{-webkit-transform:matrix(0,1,-1,0,0,0);transform:matrix(0,1,-1,0,0,0)}.yc-arrow-toggle_direction_top{-webkit-transform:matrix(-1,0,0,-1,0,0);transform:matrix(-1,0,0,-1,0,0)}.yc-arrow-toggle_direction_right{-webkit-transform:matrix(0,-1,1,0,0,0);transform:matrix(0,-1,1,0,0,0)}.ydb-query-duration{align-items:center;color:var(--yc-color-text-complementary);display:flex;margin-left:10px}.ydb-query-execute-result__result{display:flex;flex-direction:column;flex-grow:1;overflow:auto;padding:0 10px}.ydb-query-execute-result__result .data-table__table{border-collapse:initial;border-spacing:0}.ydb-query-execute-result__result .data-table__td,.ydb-query-execute-result__result .data-table__th{vertical-align:middle}.ydb-query-execute-result__result .data-table__box .data-table__table-wrapper{padding-bottom:20px}.ydb-query-execute-result__result .data-table__row,.ydb-query-execute-result__result .data-table__sticky th{height:40px}.ydb-query-execute-result__result .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.ydb-query-execute-result__result .data-table__table-wrapper{padding-bottom:0}.ydb-query-execute-result__result_fullscreen{margin-top:10px;padding:0 10px 10px;width:100%}.ydb-query-execute-result__error{padding:15px 10px}.ydb-query-execute-result__controls{align-items:center;background-color:var(--yc-color-base-background);border-bottom:1px solid var(--yc-color-line-generic);display:flex;height:53px;justify-content:space-between;padding:12px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.ydb-query-execute-result__controls-right{display:flex;gap:12px;height:100%}.ydb-query-execute-result__controls-left{display:flex;gap:4px}.ydb-query-execute-result__controls-left .yc-button__text{margin:0 6px}.ydb-query-execute-result__inspector{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important;max-width:calc(100% - 50px);padding:15px 10px}.ydb-query-execute-result__inspector .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.ydb-query-execute-result__inspector .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.ydb-query-execute-result__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.ydb-query-execute-result__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.ydb-query-execute-result__inspector .json-inspector__key{color:var(--yc-color-text-misc)}.ydb-query-execute-result__inspector .json-inspector__leaf{padding-left:20px;position:relative}.ydb-query-execute-result__inspector .json-inspector__leaf_root{padding-left:0}.ydb-query-execute-result__inspector .json-inspector__line{padding-left:20px}.ydb-query-execute-result__inspector .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.ydb-query-execute-result__inspector .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.ydb-query-execute-result__inspector .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.ydb-query-execute-result__inspector .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.ydb-query-execute-result__inspector .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.ydb-query-execute-result__inspector .json-inspector__show-original:hover:after,.ydb-query-execute-result__inspector .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.ydb-query-execute-result__inspector_fullscreen{height:100%;overflow:auto;padding:10px;width:100%}.ydb-query-execute-result__fullscreen-table-wrapper{background-color:var(--yc-color-base-background);height:100%;margin:20px;overflow:auto;width:100%}.ydb-query-execute-result__fullscreen-table-wrapper .data-table__table{width:100%}.ydb-query-execute-result__fullscreen-table-wrapper .data-table__row,.ydb-query-execute-result__fullscreen-table-wrapper .data-table__sticky th{height:40px}.ydb-query-execute-result__fullscreen-table-wrapper .data-table__box .data-table__table-wrapper{padding-bottom:20px}.ydb-query-execute-result__fullscreen-table-wrapper table{width:100%!important}.ydb-query-execute-result__fullscreen-table-wrapper .data-table__table-wrapper{padding:0!important}.json-inspector,.json-inspector__selection{font:14px/1.4 Consolas,monospace}.json-inspector__leaf{padding-left:10px}.json-inspector__line{cursor:default;display:block;position:relative}.json-inspector__line:after{bottom:0;content:"";left:-200px;pointer-events:none;position:absolute;right:-50px;top:0;z-index:-1}.json-inspector__line:hover:after{background:rgba(0,0,0,.06)}.json-inspector__leaf_composite>.json-inspector__line{cursor:pointer}.json-inspector__flatpath,.json-inspector__radio{display:none}.json-inspector__value{margin-left:5px}.json-inspector__search{margin:0 10px 10px 0;min-width:300px;padding:2px}.json-inspector__key{color:#505050}.json-inspector__not-found,.json-inspector__value_helper,.json-inspector__value_null{color:#b0b0b0}.json-inspector__value_string{color:#798953}.json-inspector__value_boolean{color:#75b5aa}.json-inspector__value_number{color:#d28445}.json-inspector__hl{background:#ff0;border-radius:2px;box-shadow:0 -1px 0 2px #ff0}.json-inspector__show-original{color:#666;cursor:pointer;display:inline-block;padding:0 6px}.json-inspector__show-original:hover{color:#111}.json-inspector__show-original:before{content:"⥂"}.json-inspector__show-original:hover:after{content:" expand"}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{-webkit-animation:fadeIn .15s ease-out;animation:fadeIn .15s ease-out}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{-webkit-animation:fadeOut .1s ease-out;animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:1px 4px}.monaco-editor .monaco-editor-overlaymessage .anchor{border:8px solid transparent;height:0!important;position:absolute;width:0!important;z-index:1000}.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .contentWidgets .codicon-light-bulb,.monaco-editor .contentWidgets .codicon-lightbulb-autofix{align-items:center;display:flex;justify-content:center}.monaco-editor .contentWidgets .codicon-light-bulb:hover,.monaco-editor .contentWidgets .codicon-lightbulb-autofix:hover{cursor:pointer}.monaco-editor .codelens-decoration{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:sub;white-space:nowrap}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer}.monaco-editor .codelens-decoration .codicon{color:currentColor!important;vertical-align:middle}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@-webkit-keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{-webkit-animation:fadein .1s linear;animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .colorpicker-hover:focus{outline:none}.colorpicker-header{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;display:flex;height:24px;image-rendering:pixelated;position:relative}.colorpicker-header .picked-color{color:#fff;cursor:pointer;flex:1 1;line-height:24px;text-align:center;width:216px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{cursor:pointer;width:74px;z-index:inherit}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{flex:1 1;height:150px;min-width:220px;overflow:hidden;position:relative}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0,0,0,.8);height:9px;margin:-5px 0 0 -5px;position:absolute;width:9px}.colorpicker-body .strip{height:150px;width:25px}.colorpicker-body .hue-strip{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);cursor:grab;margin-left:8px;position:relative}.colorpicker-body .opacity-strip{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;cursor:grab;image-rendering:pixelated;margin-left:8px;position:relative}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px rgba(0,0,0,.85);box-sizing:border-box;height:4px;left:-2px;position:absolute;top:0;width:calc(100% + 4px)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.monaco-hover{-webkit-animation:fadein .1s linear;animation:fadein .1s linear;box-sizing:initial;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;-ms-user-select:text;z-index:50}.monaco-hover.hidden{display:none}.monaco-hover .hover-contents{padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){word-wrap:break-word;max-width:500px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-hover .code:first-child,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover .code:last-child,.monaco-hover p:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:pre-wrap}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link{color:inherit}.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent;text-decoration:underline;text-underline-position:under}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;margin-right:4px;vertical-align:text-top}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{font-style:italic;opacity:.6}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{padding:8px 12px 0 20px;position:absolute;user-select:text;-webkit-user-select:text;-ms-user-select:text;white-space:pre}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{color:inherit;opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{border-bottom:1px solid transparent;text-decoration:underline;text-underline-position:under}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex}.monaco-editor .peekview-widget .head .peekview-title{align-items:center;cursor:pointer;display:flex;font-size:13px;margin-left:20px;min-width:0}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .filename{overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1 1;padding-right:2px;text-align:right}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-bottom-style:solid;border-bottom-width:0;border-top-style:solid;border-top-width:0;position:relative}.monaco-action-bar .action-item.menu-entry .action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.monaco-action-bar .action-item.menu-entry .action-label{background-image:var(--menu-entry-icon-light)}.hc-black .monaco-action-bar .action-item.menu-entry .action-label,.vs-dark .monaco-action-bar .action-item.menu-entry .action-label{background-image:var(--menu-entry-icon-dark)}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-4px;padding-left:0;padding-right:0}.monaco-editor .goto-definition-link{cursor:pointer;text-decoration:underline}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-bottom-width:1px;border-top-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;padding:3em 0;text-align:center;width:100%}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{overflow:hidden;text-overflow:ellipsis}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;height:100%;width:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-left:auto;margin-right:12px}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-custom-checkbox{border:1px solid transparent;box-sizing:border-box;cursor:pointer;float:left;height:20px;margin-left:2px;opacity:.7;overflow:hidden;padding:1px;user-select:none;-webkit-user-select:none;-ms-user-select:none;width:20px}.monaco-custom-checkbox.checked,.monaco-custom-checkbox:hover{opacity:1}.hc-black .monaco-custom-checkbox,.hc-black .monaco-custom-checkbox:hover{background:none}.monaco-custom-checkbox.monaco-simple-checkbox{background-size:16px!important;border:1px solid transparent;border-radius:3px;height:18px;margin-left:0;margin-right:9px;opacity:1;padding:0;width:18px}.monaco-custom-checkbox.monaco-simple-checkbox:not(.checked):before{visibility:hidden}.monaco-editor .find-widget{box-sizing:border-box;height:33px;line-height:19px;overflow:hidden;padding:0 4px;position:absolute;-webkit-transform:translateY(calc(-100% - 10px));transform:translateY(calc(-100% - 10px));transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear;z-index:35}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{-webkit-transform:translateY(0);transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:initial;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{display:flex;font-size:12px;margin:4px 0 0 17px}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-bottom:2px;padding-top:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{align-items:center;display:flex;height:25px}.monaco-editor .find-widget .monaco-findInput{display:flex;flex:1 1;vertical-align:middle}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{box-sizing:border-box;display:flex;flex:initial;height:25px;line-height:23px;margin:0 0 0 3px;padding:2px 0 0 2px;text-align:center;vertical-align:middle}.monaco-editor .find-widget .button{align-items:center;background-position:50%;background-repeat:no-repeat;cursor:pointer;display:flex;flex:initial;height:20px;justify-content:center;margin-left:3px;width:20px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{padding:1px 6px;top:-1px;width:auto}.monaco-editor .find-widget .button.toggle{box-sizing:border-box;height:100%;left:3px;position:absolute;top:0;width:18px}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{cursor:default;opacity:.3}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{display:flex;flex:auto;flex-grow:0;flex-shrink:0;position:relative;vertical-align:middle}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{-webkit-animation-duration:0;animation-duration:0;-webkit-animation-name:inherit!important;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{left:2px;position:relative;top:1px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls{-webkit-animation:monaco-findInput-highlight-0 .1s linear 0s;animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls{-webkit-animation:monaco-findInput-highlight-1 .1s linear 0s;animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{-webkit-animation:monaco-findInput-highlight-dark-0 .1s linear 0s;animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{-webkit-animation:monaco-findInput-highlight-dark-1 .1s linear 0s;animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@-webkit-keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@-webkit-keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@-webkit-keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@-webkit-keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded{align-items:center;cursor:pointer;display:flex;font-size:140%;justify-content:center;margin-left:2px;opacity:0;transition:opacity .5s}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:grey;content:"⋯";cursor:pointer;display:inline;line-height:1em;margin:.1em .2em 0}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer}.monaco-editor .parameter-hints-widget{display:flex;flex-direction:column;line-height:1.5em;z-index:10}.monaco-editor .parameter-hints-widget>.phwrapper{display:flex;flex-direction:row;max-width:440px}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.visible{transition:left .05s ease-in-out}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1 1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs .markdown-docs code{font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs code{border-radius:3px;padding:0 .4em}.monaco-editor .parameter-hints-widget .controls{align-items:center;display:none;flex-direction:column;justify-content:flex-end;min-width:22px}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{background-repeat:no-repeat;cursor:pointer;height:16px;width:16px}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{font-family:var(--monaco-monospace-font);height:12px;line-height:12px;opacity:.5;text-align:center}.monaco-editor .parameter-hints-widget .signature .parameter.active{font-weight:700;text-decoration:underline}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{color:inherit;z-index:100}.monaco-editor .rename-box.preview{padding:3px 3px 0}.monaco-editor .rename-box .rename-input{padding:3px;width:calc(100% - 6px)}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .snippet-placeholder{min-width:2px}.monaco-editor .finish-snippet-placeholder,.monaco-editor .snippet-placeholder{outline-style:solid;outline-width:1px}.monaco-editor .suggest-widget{display:flex;flex-direction:column;width:430px;z-index:40}.monaco-editor .suggest-widget.message{align-items:center;flex-direction:row}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{border-style:solid;border-width:1px;flex:0 1 auto;width:100%}.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{border-top:1px solid transparent;box-sizing:border-box;display:none;flex-flow:row nowrap;font-size:80%;justify-content:space-between;overflow:hidden;padding:0 4px;width:100%}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:inherit;opacity:.5}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{background-position:2px 2px;background-repeat:no-repeat;-mox-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:flex;padding-right:10px;touch-action:none;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1 1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;cursor:pointer;font-size:14px;opacity:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;right:2px;top:6px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{align-self:center;font-size:90%;margin-left:4px;opacity:.4;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-grow:1;flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{flex-shrink:4;max-width:70%;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;height:18px;position:absolute;right:10px;visibility:hidden;width:18px}.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:none;text-decoration:initial}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{background-position:50%;background-repeat:no-repeat;background-size:80%;display:block;height:16px;margin-left:2px;width:16px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{align-items:center;display:flex;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{border:.1em solid #000;display:inline-block;height:.7em;margin:0 0 0 .3em;width:.7em}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{cursor:default;display:flex;flex-direction:column}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1 1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2 1;margin:0 24px 0 0;opacity:.7;overflow:hidden;padding:4px 0 12px 5px;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{min-height:calc(1rem + 8px);padding:0;white-space:normal}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{word-wrap:break-word;white-space:pre-wrap}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .accessibilityHelpWidget{overflow:scroll;padding:10px;vertical-align:middle}.monaco-editor .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiM0MjQyNDIiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px;height:36px;margin:0;min-height:0;min-width:0;overflow:hidden;padding:0;position:absolute;resize:none;width:58px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiNDNUM1QzUiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{padding:10px;user-select:text;-webkit-user-select:text;-ms-user-select:text;z-index:50}.tokens-inspect-separator{border:0;height:1px}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{float:right;font-size:60%;font-weight:400}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.ydb-query-explain-result__result{display:flex;flex-direction:column;flex-grow:1;overflow:auto}.ydb-query-explain-result__text-message{padding:15px 20px}.ydb-query-explain-result__controls{align-items:center;background-color:var(--yc-color-base-background);border-bottom:1px solid var(--yc-color-line-generic);display:flex;height:53px;justify-content:space-between;padding:12px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.ydb-query-explain-result__controls-right{display:flex;gap:12px;height:100%}.ydb-query-explain-result__controls-left{display:flex;gap:4px}.ydb-query-explain-result__controls-left .yc-button__text{margin:0 6px}.ydb-query-explain-result__explain-canvas-container{height:100%;overflow-y:auto;width:100%}.ydb-query-explain-result__explain-canvas-container_hidden{display:none}.ydb-query-explain-result__inspector{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important;overflow-y:auto;padding:15px 20px;width:100%}.ydb-query-explain-result__inspector .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.ydb-query-explain-result__inspector .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.ydb-query-explain-result__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.ydb-query-explain-result__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.ydb-query-explain-result__inspector .json-inspector__key{color:var(--yc-color-text-misc)}.ydb-query-explain-result__inspector .json-inspector__leaf{padding-left:20px;position:relative}.ydb-query-explain-result__inspector .json-inspector__leaf_root{padding-left:0}.ydb-query-explain-result__inspector .json-inspector__line{padding-left:20px}.ydb-query-explain-result__inspector .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.ydb-query-explain-result__inspector .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.ydb-query-explain-result__inspector .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.ydb-query-explain-result__inspector .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.ydb-query-explain-result__inspector .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.ydb-query-explain-result__inspector .json-inspector__show-original:hover:after,.ydb-query-explain-result__inspector .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.ydb-query-explain-result__inspector .json-inspector__leaf.json-inspector__leaf_root.json-inspector__leaf_expanded.json-inspector__leaf_composite{max-width:calc(100% - 50px)}.ydb-query-explain-result__inspector_fullscreen{padding:10px}.ydb-query-explain-result__ast{height:100%;overflow:hidden;white-space:pre-wrap;width:100%}.ydb-query-explain-result__loader{align-items:center;display:flex;justify-content:center;margin-top:20px;width:100%}.kv-save-query__dialog-row{align-items:flex-start;display:flex}.kv-save-query__dialog-row+.kv-save-query__dialog-row{margin-top:var(--yc-text-body-1-line-height)}.kv-save-query__field-title{font-weight:500;line-height:28px;margin-right:12px;white-space:nowrap}.kv-save-query__field-title.required:after{color:var(--yc-color-text-danger);content:"*"}.kv-save-query__control-wrapper{display:flex;flex-direction:column;flex-grow:1}.kv-save-query__error{color:var(--yc-color-text-danger);display:inline-block;height:17px}.kv-save-query__embedded-tooltip{align-items:center;color:var(--yc-color-text-secondary);display:flex;height:100%;margin-left:-10px}.kv-save-query__embedded-tooltip:hover{color:var(--yc-color-text-complementary);cursor:pointer}.kv-save-query__embedded-popup{border-radius:5px;max-width:150px!important;padding:10px}.kv-save-query__embedded-popup:before{border-radius:5px}.yc-dropdown-menu__switcher-wrapper{display:inline-block}.yc-dropdown-menu__switcher-button{display:flex}.yc-dropdown-menu__menu-item_separator{border-top:1px solid var(--yc-color-line-solid);margin:.5em 0;pointer-events:none}.yc-dropdown-menu__menu-item-content{align-items:center;display:flex;gap:16px;justify-content:space-between}.yc-dropdown-menu__menu-item-chevron{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.yc-dropdown-menu__sub-menu{position:relative}.yc-dropdown-menu__sub-menu .yc-dropdown-menu__menu:after,.yc-dropdown-menu__sub-menu .yc-dropdown-menu__menu:before{content:"";height:100%;position:absolute;top:0;width:10px}.yc-dropdown-menu__sub-menu .yc-dropdown-menu__menu:before{left:-10px}.yc-dropdown-menu__sub-menu .yc-dropdown-menu__menu:after{right:-10px}.yc-menu{background-color:var(--yc-color-base-float);box-sizing:border-box;color:var(--yc-color-text-primary);display:block;list-style:none;margin:0;outline:none;overflow-x:hidden;overflow-y:auto;padding:0;-webkit-user-select:none;user-select:none}.yc-menu:after,.yc-menu:before{content:"";display:block}.yc-menu__list-group-item+.yc-menu__list-group-item,.yc-menu__list-group-item+.yc-menu__list-item,.yc-menu__list-item+.yc-menu__list-group-item{border-top:1px solid var(--yc-color-line-generic)}.yc-menu__item{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;color:var(--yc-color-text-primary);cursor:pointer;display:flex;outline:none;text-decoration:none;touch-action:manipulation}.yc-menu__item-icon{display:flex}.yc-menu__item-content{flex-grow:1}.yc-menu__item:focus,.yc-menu__item:hover,.yc-menu__item_selected{background-color:var(--yc-color-base-simple-hover)}.yc-menu__item:focus:not(:focus-visible):not(:hover):not(.yc-menu__item_active){background-color:initial}.yc-menu__item_disabled{color:var(--yc-color-text-secondary);cursor:default;pointer-events:none}.yc-menu__item_disabled:hover{background-color:initial}.yc-menu__item_active{cursor:default}.yc-menu__item_active,.yc-menu__item_active:focus,.yc-menu__item_active:hover{background-color:var(--yc-color-base-selection)}.yc-menu__item_theme_danger:not(.yc-menu__item_disabled){color:var(--yc-color-text-danger)}.yc-menu__group-label{color:var(--yc-color-text-complementary)}.yc-menu__group-list{list-style:none;margin:0;padding:0}.yc-menu_size_s{font-size:13px;line-height:24px}.yc-menu_size_s:after,.yc-menu_size_s:before{height:3px}.yc-menu_size_s .yc-menu__group-label,.yc-menu_size_s .yc-menu__item{padding:0 10px}.yc-menu_size_s .yc-menu__item-icon{margin-right:3px}.yc-menu_size_s .yc-menu__list-group-item+.yc-menu__list-group-item,.yc-menu_size_s .yc-menu__list-group-item+.yc-menu__list-item,.yc-menu_size_s .yc-menu__list-item+.yc-menu__list-group-item{margin-top:3px;padding-top:3px}.yc-menu_size_m{font-size:13px;line-height:24px}.yc-menu_size_m:after,.yc-menu_size_m:before{height:4px}.yc-menu_size_m .yc-menu__group-label,.yc-menu_size_m .yc-menu__item{padding:0 13px}.yc-menu_size_m .yc-menu__item-icon{margin-right:4px}.yc-menu_size_m .yc-menu__list-group-item+.yc-menu__list-group-item,.yc-menu_size_m .yc-menu__list-group-item+.yc-menu__list-item,.yc-menu_size_m .yc-menu__list-item+.yc-menu__list-group-item{margin-top:4px;padding-top:4px}.yc-menu_size_l{font-size:13px;line-height:28px}.yc-menu_size_l:after,.yc-menu_size_l:before{height:5px}.yc-menu_size_l .yc-menu__group-label,.yc-menu_size_l .yc-menu__item{padding:0 15px}.yc-menu_size_l .yc-menu__item-icon{margin-right:5px}.yc-menu_size_l .yc-menu__list-group-item+.yc-menu__list-group-item,.yc-menu_size_l .yc-menu__list-group-item+.yc-menu__list-item,.yc-menu_size_l .yc-menu__list-item+.yc-menu__list-group-item{margin-top:5px;padding-top:5px}.yc-menu_size_xl{font-size:15px;line-height:36px}.yc-menu_size_xl:after,.yc-menu_size_xl:before{height:6px}.yc-menu_size_xl .yc-menu__group-label,.yc-menu_size_xl .yc-menu__item{padding:0 15px}.yc-menu_size_xl .yc-menu__item-icon{margin-right:6px}.yc-menu_size_xl .yc-menu__list-group-item:not(:first-child){margin-top:6px;padding-top:6px}.yc-menu_size_xl .yc-menu__list-group-item:not(:last-child){margin-bottom:6px;padding-bottom:6px}.ydb-query-editor-controls{align-items:flex-end;display:flex;flex:0 0 40px;gap:24px;justify-content:space-between;min-height:40px;padding:5px 0}.ydb-query-editor-controls__left{display:flex;gap:12px}.ydb-query-editor-controls__run .yc-button__text{align-items:center;display:flex;gap:8px;justify-content:center}.ydb-query-editor-controls__mode-selector__button{margin-left:2px;width:189px}.ydb-query-editor-controls__mode-selector__button-content{align-items:center;display:flex;justify-content:space-between;width:163px}.ydb-query-editor-controls__mode-selector__popup{width:189px}.ydb-query-editor-controls__mode-selector__popup_extended,.ydb-query-editor-controls__mode-selector_extended .ydb-query-editor-controls__mode-selector__button{width:241px}.ydb-query-editor-controls__mode-selector_extended .ydb-query-editor-controls__mode-selector__button-content{width:215px}.query-editor{display:flex;flex:1 1 auto;flex-direction:column;height:100%;position:relative}.query-editor .data-table__table{border-collapse:initial;border-spacing:0}.query-editor .data-table__td,.query-editor .data-table__th{vertical-align:middle}.query-editor .data-table__box .data-table__table-wrapper{padding-bottom:20px}.query-editor .data-table__row,.query-editor .data-table__sticky th{height:40px}.query-editor .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.query-editor .yc-button__text{align-items:center;display:flex;justify-content:center}.query-editor__monaco{border:1px solid var(--yc-color-line-generic);display:flex;height:100%;position:relative;width:100%}.query-editor__monaco-wrapper{height:calc(100% - 49px);min-height:0;width:100%}.query-editor__pane-wrapper{background-color:var(--yc-color-base-background);display:flex;flex-direction:column;z-index:2}.query-editor__pane-wrapper_top{border-bottom:1px solid var(--yc-color-line-generic);padding:0 16px}.ydb-query{display:flex;flex:1 1 auto;flex-direction:column;max-height:100%}.ydb-query__tabs{padding:13px 20px 16px}.ydb-query__content{height:100%;overflow:hidden}.histogram{display:flex;flex:1 1 auto}.histogram__chart{align-items:baseline;border-bottom:1px solid var(--yc-color-base-generic);border-left:1px solid var(--yc-color-base-generic);display:flex;height:300px;margin-left:50px;margin-top:30px;position:relative;width:800px}.histogram__x-min{left:-3px}.histogram__x-max,.histogram__x-min{bottom:-25px;color:var(--yc-color-text-secondary);position:absolute}.histogram__x-max{right:0}.histogram__y-min{bottom:-7px;left:-30px;width:20px}.histogram__y-max,.histogram__y-min{color:var(--yc-color-text-secondary);position:absolute;text-align:right}.histogram__y-max{left:-60px;top:-5px;width:50px}.histogram__item{cursor:pointer;margin-right:.5%;width:1.5%}.heatmap{display:flex;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto}.heatmap__limits{align-items:center;display:flex;margin-left:20px}.heatmap__limits-block{display:flex;margin-right:10px}.heatmap__limits-title{color:var(--yc-color-text-secondary);margin-right:5px}.heatmap__row{align-items:center}.heatmap__row_overall{margin:15px 20px}.heatmap__row_overall .yc-progress{margin:0;width:300px}.heatmap__label{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}.heatmap__label_overall{margin-right:15px}.heatmap__items{overflow:auto}.heatmap__canvas-container{cursor:pointer;overflow:auto}.heatmap__filters{align-items:center;display:flex;margin:0 0 10px}.heatmap__filter-control{margin-right:10px;max-width:200px;min-width:100px}.heatmap__filter-control:last-child{margin-right:0}.heatmap__histogram-checkbox,.heatmap__sort-checkbox{margin-left:10px}.heatmap__row{display:flex}.heatmap .tablet,.heatmap__row{margin-bottom:2px}.kv-tablets-overall__row{align-items:center;display:flex;gap:8px}.kv-tablets-overall__row_overall .yc-progress{margin:0;width:166px}.kv-tablets-overall__label{font-weight:500}.tablets{display:flex;flex:1 1 auto;flex-direction:column}.tablets__header{align-items:center;display:flex;gap:12px;margin-bottom:16px}.tablets__items{flex:1 1 auto}.tablets__filters{align-items:center;display:flex}.tablets__filter-control{max-width:180px;min-width:100px;width:180px}.tablets .tablet{display:inline-block;line-height:18px;text-align:center}.kv-describe__message-container{padding:15px 0}.kv-describe__result{display:flex;flex:0 0 auto;overflow:auto;padding:10px 20px 20px 0}.kv-describe__tree{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important}.kv-describe__tree .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.kv-describe__tree .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.kv-describe__tree :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.kv-describe__tree .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.kv-describe__tree .json-inspector__key{color:var(--yc-color-text-misc)}.kv-describe__tree .json-inspector__leaf{padding-left:20px;position:relative}.kv-describe__tree .json-inspector__leaf_root{padding-left:0}.kv-describe__tree .json-inspector__line{padding-left:20px}.kv-describe__tree .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.kv-describe__tree .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.kv-describe__tree .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.kv-describe__tree .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.kv-describe__tree .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.kv-describe__tree .json-inspector__show-original:hover:after,.kv-describe__tree .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.hot-keys{align-items:flex-start;background-color:var(--yc-color-base-background);display:flex;flex-direction:column;flex-grow:1;max-height:100%;overflow:auto}.hot-keys__table-content{height:100%;overflow:auto;width:100%}.hot-keys__table-content .data-table__head-row:first-child .data-table__th:first-child,.hot-keys__table-content .data-table__td:first-child{background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.hot-keys__table-content .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.hot-keys__table-content .data-table__head-row:first-child .data-table__th:nth-child(0),.hot-keys__table-content .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.hot-keys__table-content .data-table__head-row:first-child .data-table__th:first-child,.hot-keys__table-content .data-table__td:first-child{box-shadow:none}.hot-keys__header{background-color:var(--yc-color-base-background);left:0;padding:10px 0;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:2}.hot-keys__loader{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.hot-keys__stub{margin:10px}.hot-keys__primary-key-column{align-items:center;display:flex;gap:5px}.node-network{border:1px solid transparent;border-radius:4px;box-sizing:border-box;color:var(--yc-color-text-complementary);cursor:pointer;display:inline-block;font-size:12px;height:14px;line-height:14px;margin-bottom:5px;margin-right:5px;padding:0 5px;text-align:center;text-transform:uppercase;width:14px}.node-network_id{height:14px;width:42px}.node-network_blur{opacity:.25}.node-network_gray{background:var(--yc-color-text-secondary)}.node-network_black{background-color:var(--yc-color-text-primary);color:var(--yc-color-text-light-primary)}.node-network_green{background-color:var(--yc-color-base-positive-heavy)}.node-network_yellow{background-color:var(--yc-color-base-warning-heavy)}.node-network_red{background-color:var(--yc-color-text-yandex-red)}.node-network:hover{border:1px solid var(--yc-color-text-primary)}.network{font-size:var(--yc-text-body-2-font-size);justify-content:space-between;line-height:var(--yc-text-body-2-line-height);max-width:1305px}.network,.network__nodes-row{display:flex;flex-grow:1;height:100%;overflow:auto}.network__nodes-row{align-items:flex-start;flex-direction:row}.network__inner{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.network__right{height:100%;padding-left:20px;width:100%}.network__left{border-right:1px solid var(--yc-color-base-generic-accent);height:100%}.network__placeholder{align-items:center;display:flex;flex-direction:column;flex-grow:1;height:100%;justify-content:center;width:100%}.network__placeholder-text{margin-top:15px}.network__placeholder-img{color:transparent}.network__nodes{display:flex;flex-wrap:wrap}.network__nodes-container{min-width:325px}.network__nodes-container_right{margin-right:60px}.network__nodes-title{border-bottom:1px solid var(--yc-color-base-generic-accent);color:var(--yc-color-text-secondary);font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);margin:0 0 15px}.network__link{color:var(--yc-color-base-special);text-decoration:none}.network__title{font-size:var(--yc-text-body-1-font-size);font-weight:500;line-height:var(--yc-text-body-1-line-height);margin:20px 0}.network__checkbox-wrapper{align-items:center;display:flex}.network__checkbox-wrapper label{white-space:nowrap}.network__label{margin-bottom:16px}.network__controls{display:flex;gap:12px;margin:0 16px 16px 0}.network__controls-wrapper{display:flex;flex:1 1 auto;flex-direction:row;flex-direction:column}.network__select{margin:0 15px;max-width:115px}.network__rack-column{align-items:center;background-color:rgba(0,0,0,.07);border-radius:4px;display:flex;flex-direction:column;margin-bottom:5px;margin-right:5px;padding:2px}.network__rack-column .node-network{margin-right:0}.yc-table-column-setup__controls{padding:4px}.yc-table-column-setup__status{color:var(--yc-color-text-secondary);margin-left:5px}.yc-table-column-setup__tick-wrap{height:10px;left:14px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);visibility:hidden;width:10px}.yc-table-column-setup__tick-wrap_visible{visibility:visible}.yc-table-column-setup__tick{color:var(--yc-color-base-special)}.yc-table-column-setup__lock-wrap{color:var(--yc-color-text-hint);left:10px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.yc-table-column-setup__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yc-table-column-setup__items{height:var(--yc-list-height);overflow-x:auto}.yc-table-column-setup__item.yc-table-column-setup__item{cursor:pointer;padding:0 8px 0 32px;position:relative}.yc-table-column-setup__item.yc-table-column-setup__item .yc-list__item-sort-icon{cursor:move}.speed-multimeter{display:flex;width:100%}.speed-multimeter__content{display:flex;flex-direction:row;flex-grow:1;justify-content:flex-end;line-height:22px}.speed-multimeter__displayed-value{display:flex;flex-direction:row;justify-content:flex-end;margin-right:10px}.speed-multimeter__bars{align-items:flex-start;display:flex;flex-direction:column;margin-right:5px;overflow:hidden;width:32px}.speed-multimeter__bar-container{height:6px;width:100%}.speed-multimeter__bar-container_highlighted{background:var(--yc-color-line-generic)}.speed-multimeter__bar{height:100%;min-width:2px}.speed-multimeter__bar_color_light{background:var(--yc-color-infographics-info-medium)}.speed-multimeter__bar_color_dark{background:var(--yc-color-infographics-info-heavy)}.speed-multimeter__bar-container+.speed-multimeter__bar-container{margin-top:2px}.speed-multimeter__popover-container{align-items:center;display:flex;justify-content:center}.speed-multimeter__popover-content{padding:10px}.speed-multimeter__popover-header{display:block;font-size:18px;line-height:24px;margin-bottom:7px}.speed-multimeter__popover-row{display:block;font-size:13px;line-height:18px}.speed-multimeter__popover-row_color_primary{color:var(--yc-color-text-primary)}.speed-multimeter__popover-row_color_secondary{color:var(--yc-color-text-secondary)}.ydb-lag-popover-content__text{margin-bottom:10px}.ydb-lag-popover-content_type_read{max-width:280px}.ydb-lag-popover-content_type_write{max-width:220px}.ydb-diagnostics-partitions-columns-header__multiline{white-space:normal}.ydb-diagnostics-partitions-columns-header__read-session{white-space:normal;width:80px}.ydb-diagnostics-partitions-columns-header__lags{white-space:nowrap}.ydb-diagnostics-partitions-columns-header__messages{white-space:normal;width:90px}.ydb-diagnostics-partitions-columns-header__messages-popover-content{max-width:200px}.ydb-diagnostics-partitions-columns__lags-header{text-align:center}.ydb-diagnostics-partitions-columns__string-with-copy{overflow:hidden;text-overflow:ellipsis;width:150px}.ydb-diagnostics-partitions{display:flex;flex-grow:1;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto}.ydb-diagnostics-partitions__controls{align-items:center;display:flex;gap:12px;padding:16px 0 18px}.ydb-diagnostics-partitions__consumer-select{width:220px}.ydb-diagnostics-partitions__select-option_empty{color:var(--yc-color-text-hint)}.ydb-diagnostics-partitions__search{width:238px}.ydb-diagnostics-partitions__search_partition{width:100px}.ydb-diagnostics-partitions__search_general{width:280px}.ydb-diagnostics-partitions__table-settings .yc-icon{width:20px}.ydb-diagnostics-partitions__table-wrapper{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.ydb-diagnostics-partitions__table-content{height:100%;overflow:auto}.ydb-diagnostics-partitions__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-partitions__table-content .data-table__td:first-child{background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-diagnostics-partitions__table-content .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.ydb-diagnostics-partitions__table-content .data-table__head-row:first-child .data-table__th:nth-child(0),.ydb-diagnostics-partitions__table-content .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.ydb-diagnostics-partitions__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-partitions__table-content .data-table__td:first-child{box-shadow:none}.ydb-diagnostics-consumers-topic-stats{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.ydb-diagnostics-consumers-topic-stats__wrapper{border-left:1px solid var(--yc-color-line-generic);display:flex;flex-direction:row;padding-left:16px}.ydb-diagnostics-consumers-topic-stats__item{display:flex;flex-direction:column;margin-right:20px}.ydb-diagnostics-consumers-topic-stats__label{color:var(--yc-color-text-secondary);margin-bottom:4px}.ydb-diagnostics-consumers-topic-stats__value{align-items:center;display:flex;height:30px;justify-content:flex-start}.ydb-diagnostics-consumers-columns-header__lags{white-space:nowrap}.ydb-diagnostics-consumers-columns__lags-header{text-align:center}.ydb-diagnostics-consumers{display:flex;flex-grow:1;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto}.ydb-diagnostics-consumers__controls{align-items:center;display:flex;gap:12px;padding:16px 0 18px}.ydb-diagnostics-consumers__search{width:238px}.ydb-diagnostics-consumers__table-settings .yc-icon{width:20px}.ydb-diagnostics-consumers__table-wrapper{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.ydb-diagnostics-consumers__table-content{height:100%;overflow:auto}.ydb-diagnostics-consumers__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-consumers__table-content .data-table__td:first-child{background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-diagnostics-consumers__table-content .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.ydb-diagnostics-consumers__table-content .data-table__head-row:first-child .data-table__th:nth-child(0),.ydb-diagnostics-consumers__table-content .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.ydb-diagnostics-consumers__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-consumers__table-content .data-table__td:first-child{box-shadow:none}.date-range__input{background:transparent;border:1px solid var(--yc-color-line-generic);border-radius:var(--yc-border-radius-m);color:var(--yc-color-text-primary);min-width:190px;padding:5px 8px}.kv-top-queries{display:flex;flex-direction:column;height:100%}.kv-top-queries .data-table__table{border-collapse:initial;border-spacing:0}.kv-top-queries .data-table__td,.kv-top-queries .data-table__th{vertical-align:middle}.kv-top-queries .data-table__box .data-table__table-wrapper{padding-bottom:20px}.kv-top-queries .data-table__row,.kv-top-queries .data-table__sticky th{height:40px}.kv-top-queries .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.kv-top-queries__loader{display:flex;justify-content:center}.kv-top-queries__controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:10px}.kv-top-queries__search{width:238px}.kv-top-queries__table{flex-grow:1;overflow:auto}.kv-top-queries__table .data-table__row{cursor:pointer}.kv-top-queries__query{overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:pre-wrap;width:500px;word-break:break-word}.kv-top-queries__user-sid{max-width:200px;overflow:hidden;text-overflow:ellipsis}.top-shards__filters{align-items:baseline;display:flex;flex-wrap:wrap;gap:16px}.top-shards{background-color:var(--yc-color-base-background);display:flex;flex-direction:column;gap:10px;height:100%}.top-shards__loader{display:flex;justify-content:center}.top-shards__table{flex-grow:1;overflow:auto}.ydb-overview-topic-stats__title{font-size:var(--yc-text-body-2-font-size);font-weight:600;line-height:var(--yc-text-body-2-line-height);margin:15px 0 10px}.ydb-overview-topic-stats .ydb-loader{margin-top:50px}.ydb-overview-topic-stats .info-viewer__row{align-items:flex-start}.ydb-overview-topic-stats .speed-multimeter{margin-top:-5px}.ydb-overview-topic-stats .speed-multimeter__content{justify-content:flex-start}.ydb-overview-topic-stats__info .info-viewer__label-text_multiline{max-width:150px}.ydb-overview-topic-stats__bytes-written{margin-top:7px;padding-left:20px}.ydb-overview-topic-stats__bytes-written .info-viewer__label{min-width:180px}.ydb-diagnostics-table-info{overflow:auto}.ydb-diagnostics-table-info__title{font-size:var(--yc-text-body-2-font-size);font-weight:600;line-height:var(--yc-text-body-2-line-height);margin:15px 0 10px}.ydb-diagnostics-table-info__row{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.ydb-diagnostics-table-info__col{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start}.ydb-diagnostics-table-info__col:not(:last-child){margin-right:50px}.ydb-diagnostics-table-info__info-block{margin-bottom:20px}.ydb-diagnostics-table-info__info-block .info-viewer__items{grid-template-columns:minmax(-webkit-max-content,280px);grid-template-columns:minmax(max-content,280px)}.issue-tree-item{align-items:center;cursor:pointer;display:flex;height:40px;justify-content:space-between}.issue-tree-item__field{display:flex;overflow:hidden}.issue-tree-item__field_status{display:flex;white-space:nowrap}.issue-tree-item__field_additional{color:var(--yc-color-text-link);cursor:pointer;width:-webkit-max-content;width:max-content}.issue-tree-item__field_additional:hover{color:var(--yc-color-text-link-hover)}.issue-tree-item__field_message{flex-shrink:0;overflow:hidden;white-space:normal;width:300px}.issue-tree-item__field-tooltip.issue-tree-item__field-tooltip{max-width:500px;min-width:500px}.issue-tree-item__field-label{color:var(--yc-color-text-secondary)}.indicator{border-radius:4px;height:12px;margin-right:4px;width:12px}.indicator_good,.indicator_green{background-color:var(--yc-color-base-positive-heavy)}.indicator_degraded,.indicator_yellow{background-color:var(--yc-color-base-warning-heavy)}.indicator_blue{background-color:var(--yc-color-base-info-heavy)}.indicator_emergency,.indicator_red{background:var(--yc-color-base-danger-heavy)}.indicator_gray,.indicator_grey,.indicator_unspecified{background:var(--yc-color-text-complementary)}.indicator_maintenance_required,.indicator_orange{background:var(--yc-color-text-warning-heavy)}.issue-tree{display:flex;width:820px}.issue-tree__block{width:100%}.issue-tree__checkbox{margin:5px 0 10px}.issue-tree__info-panel{background:var(--yc-color-base-generic);border-radius:4px;height:100%;margin:11px 0;padding:8px 20px;position:-webkit-sticky;position:sticky}.issue-tree__inspector{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important}.issue-tree__inspector .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.issue-tree__inspector .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.issue-tree__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.issue-tree__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.issue-tree__inspector .json-inspector__key{color:var(--yc-color-text-misc)}.issue-tree__inspector .json-inspector__leaf{padding-left:20px;position:relative}.issue-tree__inspector .json-inspector__leaf_root{padding-left:0}.issue-tree__inspector .json-inspector__line{padding-left:20px}.issue-tree__inspector .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.issue-tree__inspector .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.issue-tree__inspector .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.issue-tree__inspector .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.issue-tree__inspector .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.issue-tree__inspector .json-inspector__show-original:hover:after,.issue-tree__inspector .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.issue-tree__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before,.issue-tree__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:""}.issue-tree__inspector .json-inspector__line:hover:after{background:transparent}.issue-tree__inspector .json-inspector__show-original:hover:after,.issue-tree__inspector .json-inspector__show-original:hover:before{color:transparent}.issue-tree__inspector .json-inspector__value_helper{display:none}.issue-tree__inspector .json-inspector__value{overflow:hidden;word-break:break-all}.issue-tree__inspector .json-inspector__value>span{-webkit-user-select:all;user-select:all}.issue-tree .ydb-tree-view__item{height:40px}.issue-tree .ydb-tree-view .tree-view_arrow{height:40px;width:40px}.issue-tree .ydb-tree-view .ydb-tree-view__item{margin-left:calc(24px*var(--ydb-tree-view-level))!important;padding-left:0!important}.issue-tree .ydb-tree-view .issue-tree__info-panel{margin-left:calc(24px*var(--ydb-tree-view-level))}.yc-text_variant_display-1{font-size:var(--yc-text-display-1-font-size);font-weight:var(--yc-text-display-font-weight);line-height:var(--yc-text-display-1-line-height)}.yc-text_variant_display-2{font-size:var(--yc-text-display-2-font-size);font-weight:var(--yc-text-display-font-weight);line-height:var(--yc-text-display-2-line-height)}.yc-text_variant_display-3{font-size:var(--yc-text-display-3-font-size);font-weight:var(--yc-text-display-font-weight);line-height:var(--yc-text-display-3-line-height)}.yc-text_variant_display-4{font-size:var(--yc-text-display-4-font-size);font-weight:var(--yc-text-display-font-weight);line-height:var(--yc-text-display-4-line-height)}.yc-text_variant_code-1{font-size:var(--yc-text-code-1-font-size);line-height:var(--yc-text-code-1-line-height)}.yc-text_variant_code-1,.yc-text_variant_code-2{font-family:var(--yc-text-code-font-family);font-weight:var(--yc-text-code-font-weight)}.yc-text_variant_code-2{font-size:var(--yc-text-code-2-font-size);line-height:var(--yc-text-code-2-line-height)}.yc-text_variant_code-3{font-size:var(--yc-text-code-3-font-size);line-height:var(--yc-text-code-3-line-height)}.yc-text_variant_code-3,.yc-text_variant_code-inline-1{font-family:var(--yc-text-code-font-family);font-weight:var(--yc-text-code-font-weight)}.yc-text_variant_code-inline-1{font-size:var(--yc-text-code-inline-1-font-size);line-height:var(--yc-text-code-inline-1-line-height)}.yc-text_variant_code-inline-2{font-family:var(--yc-text-code-font-family);font-size:var(--yc-text-code-inline-2-font-size);font-weight:var(--yc-text-code-inline-font-weight);line-height:var(--yc-text-code-inline-2-line-height)}.yc-text_variant_code-inline-3{font-family:var(--yc-text-code-font-family);font-size:var(--yc-text-code-inline-3-font-size);font-weight:var(--yc-text-code-font-weight);line-height:var(--yc-text-code-inline-3-line-height)}.yc-text_variant_body-1{font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height)}.yc-text_variant_body-2{font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-2-line-height)}.yc-text_variant_body-3{font-size:var(--yc-text-body-3-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-3-line-height)}.yc-text_variant_body-short{font-size:var(--yc-text-body-short-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-short-line-height)}.yc-text_variant_caption-1{font-size:var(--yc-text-caption-1-font-size);font-weight:var(--yc-text-caption-font-weight);line-height:var(--yc-text-caption-1-line-height)}.yc-text_variant_caption-2{font-size:var(--yc-text-caption-2-font-size);font-weight:var(--yc-text-caption-font-weight);line-height:var(--yc-text-caption-2-line-height)}.yc-text_variant_header-1{font-size:var(--yc-text-header-1-font-size);font-weight:var(--yc-text-header-font-weight);line-height:var(--yc-text-header-1-line-height)}.yc-text_variant_header-2{font-size:var(--yc-text-header-2-font-size);font-weight:var(--yc-text-header-font-weight);line-height:var(--yc-text-header-2-line-height)}.yc-text_variant_subheader-1{font-size:var(--yc-text-subheader-1-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-1-line-height)}.yc-text_variant_subheader-2{font-size:var(--yc-text-subheader-2-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-2-line-height)}.yc-text_variant_subheader-3{font-size:var(--yc-text-subheader-3-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-3-line-height)}.yc-text_ellipsis{overflow:hidden;text-overflow:ellipsis}.yc-text_ellipsis,.yc-text_ws_nowrap{white-space:nowrap}.yc-text_ws_break-spaces{white-space:break-spaces}.yc-text_wb_break-all{word-break:break-all}.yc-color-text_color_primary{color:var(--yc-color-text-primary)}.yc-color-text_color_complementary{color:var(--yc-color-text-complementary)}.yc-color-text_color_secondary{color:var(--yc-color-text-secondary)}.yc-color-text_color_hint{color:var(--yc-color-text-hint)}.yc-color-text_color_info{color:var(--yc-color-text-info)}.yc-color-text_color_info-heavy{color:var(--yc-color-text-info-heavy)}.yc-color-text_color_positive{color:var(--yc-color-text-positive)}.yc-color-text_color_positive-heavy{color:var(--yc-color-text-positive-heavy)}.yc-color-text_color_warning{color:var(--yc-color-text-warning)}.yc-color-text_color_warning-heavy{color:var(--yc-color-text-warning-heavy)}.yc-color-text_color_danger{color:var(--yc-color-text-danger)}.yc-color-text_color_danger-heavy{color:var(--yc-color-text-danger-heavy)}.yc-color-text_color_utility{color:var(--yc-color-text-utility)}.yc-color-text_color_utility-heavy{color:var(--yc-color-text-utility-heavy)}.yc-color-text_color_misc{color:var(--yc-color-text-misc)}.yc-color-text_color_misc-heavy{color:var(--yc-color-text-misc-heavy)}.yc-color-text_color_special{color:var(--yc-color-text-special)}.yc-color-text_color_link{color:var(--yc-color-text-link)}.yc-color-text_color_link-hover{color:var(--yc-color-text-link-hover)}.yc-color-text_color_link-visited{color:var(--yc-color-text-link-visited)}.yc-color-text_color_link-visited-hover{color:var(--yc-color-text-link-visited-hover)}.yc-color-text_color_yandex-red{color:var(--yc-color-text-yandex-red)}.yc-color-text_color_dark-primary{color:var(--yc-color-text-dark-primary)}.yc-color-text_color_dark-complementary{color:var(--yc-color-text-dark-complementary)}.yc-color-text_color_dark-secondary{color:var(--yc-color-text-dark-secondary)}.yc-color-text_color_light-primary{color:var(--yc-color-text-light-primary)}.yc-color-text_color_light-complementary{color:var(--yc-color-text-light-complementary)}.yc-color-text_color_light-secondary{color:var(--yc-color-text-light-secondary)}.yc-color-text_color_light-hint{color:var(--yc-color-text-light-hint)}.yc-color-text_color_inverted-primary{color:var(--yc-color-text-inverted-primary)}.yc-color-text_color_inverted-complementary{color:var(--yc-color-text-inverted-complementary)}.yc-color-text_color_inverted-secondary{color:var(--yc-color-text-inverted-secondary)}.yc-color-text_color_inverted-hint{color:var(--yc-color-text-inverted-hint)}.healthcheck_expanded{min-width:885px}.healthcheck__details{padding:25px 20px 20px}.healthcheck__issue-preview{margin-bottom:15px}.healthcheck__issues-wrapper{height:70vh;max-height:70vh;overflow-x:hidden;overflow-y:auto}.healthcheck__loader{display:flex;justify-content:center}.healthcheck__message-container{padding:15px 0}.healthcheck__details-header{align-items:center;display:flex;margin-bottom:20px}.healthcheck__details-header-title{font-size:var(--yc-text-header-1-font-size);font-weight:var(--yc-text-header-font-weight);line-height:var(--yc-text-header-1-line-height);margin:0 10px 0 0}.healthcheck__details-header-update{margin-left:10px}.healthcheck__status-wrapper{display:flex;gap:8px;margin-bottom:20px}.healthcheck__preview-title{font-weight:600;line-height:24px}.healthcheck__preview-content{line-height:24px}.healthcheck__self-check-status-indicator{border-radius:4px;font-size:13px;line-height:24px;padding:0 8px}.healthcheck__self-check-status-indicator_good,.healthcheck__self-check-status-indicator_green{background-color:var(--yc-color-base-positive);color:var(--yc-color-text-positive)}.healthcheck__self-check-status-indicator_degraded,.healthcheck__self-check-status-indicator_yellow{background-color:var(--yc-color-base-warning);color:var(--yc-color-text-warning)}.healthcheck__self-check-status-indicator_blue{background-color:var(--yc-color-base-info);color:var(--yc-color-text-info)}.healthcheck__self-check-status-indicator_emergency,.healthcheck__self-check-status-indicator_red{background-color:var(--yc-color-base-danger);color:var(--yc-color-text-danger)}.healthcheck__self-check-status-indicator_gray,.healthcheck__self-check-status-indicator_grey,.healthcheck__self-check-status-indicator_unspecified{background-color:var(--yc-color-base-misc);color:var(--yc-color-text-misc)}.healthcheck__self-check-status-indicator_maintenance_required,.healthcheck__self-check-status-indicator_orange{background-color:var(--yc-color-infographics-warning-light);color:var(--yc-color-text-warning-heavy)}.ydb-pool-usage{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.ydb-pool-usage__info{align-items:center;display:flex;justify-content:space-between}.ydb-pool-usage__pool-name{color:var(--yc-color-text-primary)}.ydb-pool-usage__value{align-items:center;display:flex}.ydb-pool-usage__threads{font-size:var(--yc-text-body-1-font-size)}.yc-root_theme_dark .ydb-pool-usage__threads,.ydb-pool-usage__threads{color:var(--yc-color-text-hint)}.ydb-pool-usage__percents{color:var(--yc-color-text-primary);font-size:var(--yc-text-body-1-font-size);margin-right:2px}.ydb-pool-usage__visual{align-items:center;background-color:var(--yc-color-base-generic-accent);border-radius:4px;display:flex;font-size:var(--yc-text-body-2-font-size);height:6px;justify-content:center;overflow:hidden;position:relative}.ydb-pool-usage__usage-line{height:100%;left:0;position:absolute;top:0}.ydb-pool-usage__usage-line_type_green{background-color:var(--yc-color-base-positive-heavy)}.ydb-pool-usage__usage-line_type_blue{background-color:var(--yc-color-base-info-heavy)}.ydb-pool-usage__usage-line_type_yellow{background-color:var(--yc-color-text-warning-heavy)}.ydb-pool-usage__usage-line_type_red{background-color:var(--yc-color-base-danger-heavy)}.tenant-overview{padding-bottom:20px}.tenant-overview__loader{display:flex;justify-content:center}.tenant-overview__tenant-name-wrapper{align-items:center;display:flex;overflow:hidden}.tenant-overview__top{align-items:center;display:flex;line-height:24px;margin-bottom:10px}.tenant-overview__top-label{font-weight:600;gap:10px;line-height:24px;margin-bottom:20px}.tenant-overview__common-info{align-items:stretch;display:flex;flex-direction:column;gap:20px;justify-content:flex-start}.tenant-overview__system-tablets{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:35px}.tenant-overview__collapse-title{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height)}.tenant-overview__section{border-radius:10px}.tenant-overview__section_metrics .info-viewer__label{min-width:150px}.tenant-overview__section_metrics .info-viewer__value{min-width:100px}.tenant-overview__section_pools{grid-gap:7px 20px;display:grid;grid-template-columns:110px 110px}.tenant-overview__section-title{font-size:var(--yc-text-body-2-font-size);font-weight:600;line-height:var(--yc-text-body-2-line-height);margin-bottom:20px}.kv-detailed-overview{display:flex;gap:20px;height:100%;width:100%}.kv-detailed-overview__section{display:flex;flex-basis:calc(50% - 10px);flex-direction:column;flex-grow:0;flex-shrink:0;height:-webkit-max-content;height:max-content;min-width:300px;overflow-x:hidden}.kv-detailed-overview__modal .yc-modal__content{position:relative}.kv-detailed-overview__close-modal-button{position:absolute;right:13px;top:23px}.kv-detailed-overview__close-modal-button .yc-button__text{display:flex;margin:0 4px}.kv-tenant-diagnostics{display:flex;flex-direction:column;height:100%;overflow:hidden}.kv-tenant-diagnostics__header-wrapper{background-color:var(--yc-color-base-background);padding:13px 20px 16px}.kv-tenant-diagnostics__tabs{align-items:center;box-shadow:inset 0 -1px 0 0 var(--yc-color-line-generic);display:flex;justify-content:space-between}.kv-tenant-diagnostics__tabs .yc-tabs_direction_horizontal{box-shadow:none}.kv-tenant-diagnostics__tab{margin-right:40px;text-decoration:none}.kv-tenant-diagnostics__tab:first-letter{text-transform:uppercase}.kv-tenant-diagnostics__page-wrapper{flex-grow:1;overflow:auto;padding:0 20px;width:100%}.kv-tenant-diagnostics__page-wrapper .ydb-table-with-controls-layout__controls{height:46px;padding-top:0}.kv-tenant-diagnostics__page-wrapper .ydb-table-with-controls-layout .data-table__sticky_moving{top:46px!important}.yc-switch{position:relative}.yc-switch__control{cursor:pointer;opacity:0}.yc-switch__indicator{display:inline-block;position:relative}.yc-switch__indicator:before{background-color:var(--yc-color-base-generic-medium);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:background .1s linear}.yc-switch__indicator:after{content:" ";visibility:hidden}.yc-switch__slider{background-color:var(--yc-color-base-background);border-radius:50%;content:"";position:absolute;transition:-webkit-transform .15s ease-out;transition:transform .15s ease-out;transition:transform .15s ease-out,-webkit-transform .15s ease-out}.yc-switch__outline{background:none;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.yc-switch__control:focus+.yc-switch__outline{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-switch__control:focus:not(:focus-visible)+.yc-switch__outline{box-shadow:none}.yc-switch_size_m .yc-switch__indicator,.yc-switch_size_m .yc-switch__indicator:before,.yc-switch_size_m .yc-switch__outline{border-radius:10px;height:20px;width:36px}.yc-switch_size_m .yc-switch__slider{height:16px;left:2px;top:2px;width:16px}.yc-switch_size_m .yc-switch__text{margin-top:3px}.yc-switch_size_l .yc-switch__indicator,.yc-switch_size_l .yc-switch__indicator:before,.yc-switch_size_l .yc-switch__outline{border-radius:12px;height:24px;width:42px}.yc-switch_size_l .yc-switch__slider{height:18px;left:3px;top:3px;width:18px}.yc-switch_size_l .yc-switch__text{margin-top:4px}.yc-switch:hover .yc-switch__indicator:before{background-color:var(--yc-color-base-generic-medium-hover)}.yc-switch_checked .yc-switch__slider{-webkit-transform:translateX(100%);transform:translateX(100%)}.yc-switch_checked .yc-switch__indicator:before,.yc-switch_checked:hover .yc-switch__indicator:before{background-color:var(--yc-color-base-special)}.yc-switch_disabled .yc-switch__indicator:before{background-color:var(--yc-color-base-generic-accent-disabled)}.yc-switch_disabled.yc-switch_checked .yc-switch__indicator:before{background-color:var(--yc-color-base-special);opacity:.5}.object-general{display:flex;flex-direction:column;flex-grow:1;height:100%;max-height:100%;width:100%}.object-general__loader{display:flex}.tenant-page{flex:1 1 auto;flex-direction:column;overflow:hidden}.kv-node-structure,.tenant-page{display:flex;font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.kv-node-structure{flex-shrink:0;flex:1 1 auto;flex-direction:column;overflow:auto;position:relative}.kv-node-structure__pdisk{border:1px solid var(--yc-color-line-generic);border-radius:5px;display:flex;flex-direction:column;margin-bottom:8px;padding:0 10px 0 20px;width:573px}.kv-node-structure__pdisk-id{align-items:flex-end;display:flex}.kv-node-structure__pdisk-header{align-items:center;display:flex;height:48px;justify-content:space-between}.kv-node-structure__pdisk-title-wrapper{align-items:center;display:flex;font-weight:600;gap:16px}.kv-node-structure__pdisk-title-wrapper .entity-status__status-icon{margin-right:0}.kv-node-structure__pdisk-title-item{display:flex;gap:4px}.kv-node-structure__pdisk-title-item-label{color:var(--yc-color-text-secondary);font-weight:400}.kv-node-structure__pdisk-title-id{min-width:110px}.kv-node-structure__pdisk-title-type{justify-content:flex-end;min-width:50px}.kv-node-structure__pdisk-title-size{min-width:150px}.kv-node-structure__pdisk-details{margin-bottom:20px}.kv-node-structure__link{color:var(--yc-color-base-special);text-decoration:none}.kv-node-structure__vdisks-header{font-weight:600}.kv-node-structure__vdisks-container{margin-bottom:42px}.kv-node-structure__vdisk-details{max-height:90vh;min-width:200px;overflow:auto}.kv-node-structure__vdisk-details .vdisk-pdisk-node__column{margin-bottom:0}.kv-node-structure__vdisk-details .vdisk-pdisk-node__section{padding-bottom:0}.kv-node-structure__vdisk-id{align-items:center;display:flex}.kv-node-structure__vdisk-details-button_selected,.kv-node-structure__vdisk-id_selected{color:var(--yc-color-text-info)}.kv-node-structure__external-button{align-items:center;display:inline-flex;margin-left:4px;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.kv-node-structure__external-button .yc-button__text{margin:0 4px}.kv-node-structure__external-button_hidden{visibility:hidden}.kv-node-structure .data-table__row:hover .kv-node-structure__external-button_hidden{visibility:visible}.kv-node-structure__selected-vdisk{-webkit-animation:onSelectedVdiskAnimation 4s;animation:onSelectedVdiskAnimation 4s}.kv-node-structure__row{display:flex}.kv-node-structure__column{display:flex;flex-direction:column;margin-bottom:15px}.kv-node-structure__title{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}@-webkit-keyframes onSelectedVdiskAnimation{0%{background-color:var(--yc-color-base-info-hover)}}@keyframes onSelectedVdiskAnimation{0%{background-color:var(--yc-color-base-info-hover)}}.basic-node-viewer__link,.link{color:var(--yc-color-text-link);text-decoration:none}.basic-node-viewer__link:hover,.link:hover{color:var(--yc-color-text-link-hover)}.basic-node-viewer{align-items:center;display:flex;margin:15px 0}.basic-node-viewer,.basic-node-viewer__title{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.basic-node-viewer__title{font-weight:600;margin:0 20px 0 0;text-transform:uppercase}.basic-node-viewer__id{margin:0 15px 0 24px}.basic-node-viewer__label{font-size:var(--yc-text-body-2-font-size);line-height:18px;margin-right:10px;white-space:nowrap}.basic-node-viewer__label,.yc-root_theme_dark .basic-node-viewer__label{color:var(--yc-color-text-hint)}.basic-node-viewer__link{margin-left:5px}.full-node-viewer{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.full-node-viewer__common-info{align-items:stretch;display:flex;flex-direction:column;justify-content:flex-start}.full-node-viewer__section{border-radius:10px}.full-node-viewer__section_pools{grid-gap:7px 20px;display:grid;grid-template-columns:110px 110px}.full-node-viewer .info-viewer__label{min-width:60px}.full-node-viewer__section-title{font-size:var(--yc-text-body-2-font-size);font-weight:600;line-height:var(--yc-text-body-2-line-height);margin:15px 0 10px}.node{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.node__header{margin:16px 20px}.node__content{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto;position:relative}.node__storage{height:100%;overflow:auto;padding:0 20px}.node__tabs{padding:0 20px}.node__tab{margin-right:40px;text-decoration:none}.node__tab:last-child{margin-right:0}.node__tab:first-letter{text-transform:uppercase}.node__overview-wrapper{padding:0 20px 20px}.node__node-page-wrapper{height:100%;padding:20px}.ydb-critical-dialog{width:252px!important}.ydb-critical-dialog__warning-icon{margin-right:16px}.ydb-critical-dialog__body{align-items:center;display:flex;padding:16px 16px 0}.ydb-critical-dialog .yc-dialog-footer{padding:20px 4px 4px}.ydb-critical-dialog .yc-dialog-footer__children{display:none}.ydb-critical-dialog .yc-dialog-footer__button{box-sizing:border-box;margin:0;min-width:120px}.ydb-critical-dialog .yc-dialog-footer__button_action_cancel{margin-right:4px}.link,.tablet-page__link{color:var(--yc-color-text-link);text-decoration:none}.link:hover,.tablet-page__link:hover{color:var(--yc-color-text-link-hover)}.tablet-page{display:flex;flex-direction:column;padding:20px}.tablet-page__tenant{margin-bottom:20px}.tablet-page__pane-wrapper{display:flex}.tablet-page__left-pane{margin-right:70px}.tablet-page__history-title{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);margin-bottom:15px}.tablet-page__placeholder{flex:1 1 auto;justify-content:center}.tablet-page__placeholder,.tablet-page__row{align-items:center;display:flex}.tablet-page__row_header{margin-bottom:20px}.tablet-page__row_header .tablet-page__link{margin:0 10px 0 5px}.tablet-page__title{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}.tablet-page__loader{width:25px}.tablet-page .info-viewer__items{grid-template-columns:auto}.tablet-page__controls{margin:20px 0 15px}.tablet-page__control{margin-right:15px}.tablet-page__links{display:flex;list-style-type:none;margin:5px 0 10px;padding:0}.tablet-page__links>*{margin:0 10px 0 0}.tablet-page__top-label{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}.tablet-page__host{width:300px}.tablets-filters{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.tablets-filters__node{font-size:var(--yc-text-body-1-font-size);line-height:var(--yc-text-body-1-line-height);overflow:hidden}.tablets-filters__node-meta{color:var(--yc-color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tablets-filters__items{flex:1 1 auto;overflow:auto;padding:5px 20px}.tablets-filters__filters{align-items:center;display:flex;margin:10px 0;padding:0 20px}.tablets-filters__filter-label{margin-right:15px;white-space:nowrap}.tablets-filters__filter-wrapper{align-items:center;display:flex;margin-right:15px}.tablets-filters__filter-control{margin-right:10px;max-width:200px;min-width:100px}.tablets-filters__filter-control:last-child{margin-right:0}.tablets-filters__tablet{margin-bottom:2px}.tablets-filters__empty-message{display:flex;justify-content:center}.tablets-filters__tenant{padding:20px 20px 10px}.tablets-filters .tablet{display:inline-block;line-height:18px;text-align:center}.popup2{-webkit-animation:none!important;animation:none!important;max-width:300px}.histogram-tooltip,.node-tootltip,.pool-tooltip,.tablet-tooltip,.tabletsOverall-tooltip{padding:10px}.histogram-tooltip__label,.node-tootltip__label,.pool-tooltip__label,.tablet-tooltip__label,.tabletsOverall-tooltip__label{color:var(--yc-color-text-secondary);padding-right:15px}.json-tooltip{padding:20px 20px 20px 0}.json-tooltip__inspector{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important}.json-tooltip__inspector .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.json-tooltip__inspector .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.json-tooltip__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.json-tooltip__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.json-tooltip__inspector .json-inspector__key{color:var(--yc-color-text-misc)}.json-tooltip__inspector .json-inspector__leaf{padding-left:20px;position:relative}.json-tooltip__inspector .json-inspector__leaf_root{padding-left:0}.json-tooltip__inspector .json-inspector__line{padding-left:20px}.json-tooltip__inspector .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.json-tooltip__inspector .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.json-tooltip__inspector .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.json-tooltip__inspector .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.json-tooltip__inspector .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.json-tooltip__inspector .json-inspector__show-original:hover:after,.json-tooltip__inspector .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.json-tooltip__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before,.json-tooltip__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:""}.json-tooltip__inspector .json-inspector__line:hover:after{background:transparent}.json-tooltip__inspector .json-inspector__show-original:hover:after,.json-tooltip__inspector .json-inspector__show-original:hover:before{color:transparent}.json-tooltip__inspector .json-inspector__value_helper{display:none}.cell-tooltip{padding:10px;word-break:break-word}.tablet-tooltip{padding:10px}.tablet-tooltip__label{color:var(--yc-color-text-secondary);padding-right:15px}.tablet-tooltip__value_blue{color:var(--yc-color-base-special)}.header{border-bottom:1px solid var(--yc-color-line-generic);flex:0 0 40px;justify-content:space-between;padding:0 20px 0 12px}.header,.header__breadcrumb{align-items:center;display:flex}.header__breadcrumb__icon{margin-right:3px}.yc-breadcrumbs__inner{align-items:center;display:inline-flex;min-height:24px;overflow:hidden;width:100%}.yc-breadcrumbs__item{display:inline-block;flex-shrink:1;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}.yc-breadcrumbs__item_current{padding:0 8px}.yc-breadcrumbs__item_more{vertical-align:top}.yc-breadcrumbs_calculated_no .yc-breadcrumbs__item{overflow:visible}.yc-breadcrumbs__divider{align-items:center;color:var(--yc-color-text-secondary);display:flex}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item .yc-menu__item{padding-left:80px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(0) .yc-menu__item{padding-left:0!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:first-child .yc-menu__item{padding-left:8px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(2) .yc-menu__item{padding-left:16px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(3) .yc-menu__item{padding-left:24px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(4) .yc-menu__item{padding-left:32px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(5) .yc-menu__item{padding-left:40px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(6) .yc-menu__item{padding-left:48px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(7) .yc-menu__item{padding-left:56px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(8) .yc-menu__item{padding-left:64px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(9) .yc-menu__item{padding-left:72px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(10) .yc-menu__item{padding-left:80px!important}*{box-sizing:border-box}.yc-select-popup__tick-icon{box-sizing:initial}#root,body,html{box-sizing:border-box;height:100%;margin:0;overflow:auto;padding:0}:root{--yc-color-infographics-yellow-light:rgba(255,199,0,.15);--yc-color-infographics-yellow-medium:rgba(255,219,77,.4);--yc-color-base-warning-orange:#ff922e;--data-table-row-height:40px}.yc-root{--ydb-data-table-color-hover:var(--yc-color-base-float-hover)}:is(#tab,.yc-tabs-item_active .yc-tabs-item__title){color:var(--yc-color-text-primary)!important}:is(#tab,.yc-tabs-item__title){color:var(--yc-color-text-secondary)}.ycn-aside-header__pane-container{height:100%}.ycn-aside-header__content{display:flex;flex-direction:column;height:100%;overflow:auto;position:relative}.loader{align-items:center;display:flex;justify-content:center;left:50%;position:fixed;top:50%;z-index:99999999}.app{height:100%}.app,.app__main{display:flex;flex:1 1 auto;flex-direction:column}.app__main{overflow:auto}.app .data-table{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);width:100%}.app .data-table__table{border-collapse:initial;border-spacing:0;max-width:100%}.app .data-table__th{border-left:initial;border-right:initial;border-top:initial;font-weight:700}.app .data-table__sticky .data-table__th,.app .data-table__td{border-left:initial;border-right:initial;border-top:initial;height:40px;height:var(--data-table-row-height);vertical-align:middle}.app .yc-clipboard-button{align-items:center;display:inline-flex;justify-content:center}.app .yc-button__text{align-items:center;display:flex}.app .g-select .yc-button__text{align-items:baseline}.error{color:var(--yc-color-text-danger)}.data-table__row:hover .entity-status__clipboard-button{display:flex}.yc-root .data-table_highlight-rows .data-table__row:hover{background:var(--ydb-data-table-color-hover)}.yc-table-column-setup__item{cursor:pointer!important;padding:0 8px 0 32px!important}.app_embedded{font-family:Rubik,sans-serif}.yc-popup{max-width:500px}.link{color:var(--yc-color-text-link);text-decoration:none}.link_external{margin-right:10px}.link:hover{color:var(--yc-color-text-link-hover)}.authentication{align-items:center;background-blend-mode:normal;background-color:rgba(184,212,253,.1);background-image:radial-gradient(at 0 100%,rgba(0,102,255,.15) 20%,hsla(0,0%,97%,0) 40%),radial-gradient(at 55% 0,rgba(0,102,255,.15) 20%,hsla(0,0%,97%,0) 40%),radial-gradient(at 110% 100%,rgba(0,102,255,.15) 20%,hsla(0,0%,97%,0) 40%);display:flex;height:100%;justify-content:center}.authentication .yc-text-input{display:flex}.authentication__header{align-items:center;display:flex;font-size:var(--yc-text-body-1-font-size);justify-content:space-between;line-height:var(--yc-text-header-1-line-height);width:100%}.authentication__logo{align-items:center;display:flex;font-size:16px;font-weight:600;gap:8px}.authentication__title{font-size:var(--yc-text-header-2-font-size);font-weight:600;line-height:var(--yc-text-header-2-line-height);margin:34px 0 16px}.authentication__form-wrapper{align-items:center;background-color:var(--yc-color-base-background);border-radius:16px;display:flex;flex-direction:column;flex-shrink:0;justify-content:center;min-width:320px;padding:40px;width:400px}.authentication__field-wrapper{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px;width:320px}.authentication__field-wrapper .yc-text-input_state_error{flex-direction:column}.authentication__button-sign-in{display:inline-flex;justify-content:center}.authentication__show-password-button{margin-left:4px}.authentication__close{position:absolute;right:40px;top:40px}.yc-tooltip{pointer-events:none}.yc-tooltip__content{color:var(--yc-color-text-light-primary);padding:6px 12px}.yc-tooltip[class]{--yc-popup-border-width:0;--yc-popup-background-color:var(--yc-color-base-float-heavy)}.ydb-user-settings__item-with-popup{max-width:180px}.ydb-user-settings__popup{max-width:370px}.kv-navigation__internal-user{align-items:center;display:flex;justify-content:space-between;line-height:var(--yc-text-body-2-line-height);margin-left:16px}.kv-navigation__user-info-wrapper{display:flex;flex-direction:column}.kv-navigation__ydb-internal-user-title{font-weight:500}.kv-navigation__user-icon{color:var(--yc-color-text-misc)}.kv-navigation__ydb-user-wrapper{padding:10px;width:300px}.yc-root{--yc-font-family-sans:"Helvetica Neue","Arial","Helvetica",sans-serif;--yc-font-family-monospace:"Menlo","Monaco","Consolas","Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New","Courier",monospace;--yc-text-body-font-family:var(--yc-font-family-sans);--yc-text-code-font-family:var(--yc-font-family-monospace);--yc-text-header-font-weight:900;--yc-text-subheader-font-weight:900;--yc-text-display-font-weight:900;--yc-text-code-font-weight:400;--yc-text-body-font-weight:400;--yc-text-caption-font-weight:400;--yc-text-accent-font-weight:900;--yc-text-body-1-font-size:13px;--yc-text-body-1-line-height:18px;--yc-text-body-2-font-size:15px;--yc-text-body-2-line-height:20px;--yc-text-body-3-font-size:17px;--yc-text-body-3-line-height:24px;--yc-text-body-short-font-size:13px;--yc-text-body-short-line-height:16px;--yc-text-caption-1-font-size:9px;--yc-text-caption-1-line-height:12px;--yc-text-caption-2-font-size:11px;--yc-text-caption-2-line-height:16px;--yc-text-header-1-font-size:20px;--yc-text-header-1-line-height:24px;--yc-text-header-2-font-size:24px;--yc-text-header-2-line-height:28px;--yc-text-subheader-1-font-size:13px;--yc-text-subheader-1-line-height:18px;--yc-text-subheader-2-font-size:15px;--yc-text-subheader-2-line-height:20px;--yc-text-subheader-3-font-size:17px;--yc-text-subheader-3-line-height:24px;--yc-text-display-1-font-size:28px;--yc-text-display-1-line-height:36px;--yc-text-display-2-font-size:32px;--yc-text-display-2-line-height:40px;--yc-text-display-3-font-size:40px;--yc-text-display-3-line-height:48px;--yc-text-display-4-font-size:48px;--yc-text-display-4-line-height:52px;--yc-text-code-1-font-size:12px;--yc-text-code-1-line-height:18px;--yc-text-code-2-font-size:14px;--yc-text-code-2-line-height:20px;--yc-text-code-3-font-size:16px;--yc-text-code-3-line-height:24px;--yc-text-code-inline-1-font-size:12px;--yc-text-code-inline-1-line-height:14px;--yc-text-code-inline-2-font-size:14px;--yc-text-code-inline-2-line-height:16px;--yc-text-code-inline-3-font-size:16px;--yc-text-code-inline-3-line-height:20px;--yc-my-scrollbar-width:12px;--yc-my-border-radius-xs:5px;--yc-my-border-radius-s:5px;--yc-my-border-radius-m:6px;--yc-my-border-radius-l:8px;--yc-my-border-radius-xl:10px;--yc-color-telegram:#51a4db;--yc-color-facebook:#4968ad;--yc-color-twitter:#4aa0eb;--yc-color-vk:#436eab;--yc-color-youtube:#eb3323;--yc-color-github:#25292e;--yc-color-rss:#f29c39;--yc-color-linkedin:#0a66c2;--yc-space-base:4px;--yc-spacing-0:calc(var(--yc-space-base)*0);--yc-spacing-half:calc(var(--yc-space-base)*0.5);--yc-spacing-1:var(--yc-space-base);--yc-spacing-2:calc(var(--yc-space-base)*2);--yc-spacing-3:calc(var(--yc-space-base)*3);--yc-spacing-4:calc(var(--yc-space-base)*4);--yc-spacing-5:calc(var(--yc-space-base)*5);--yc-spacing-6:calc(var(--yc-space-base)*6);--yc-spacing-7:calc(var(--yc-space-base)*7);--yc-spacing-8:calc(var(--yc-space-base)*8);--yc-spacing-9:calc(var(--yc-space-base)*9);--yc-spacing-10:calc(var(--yc-space-base)*10);--yc-scrollbar-width:var(--yc-my-scrollbar-width);--yc-border-radius-xs:var(--yc-my-border-radius-xs);--yc-border-radius-s:var(--yc-my-border-radius-s);--yc-border-radius-m:var(--yc-my-border-radius-m);--yc-border-radius-l:var(--yc-my-border-radius-l);--yc-border-radius-xl:var(--yc-my-border-radius-xl);font-family:var(--yc-text-body-font-family);font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height)}.yc-root_theme_light{--yc-color-private-white-150:hsla(0,0%,100%,.15);--yc-color-private-white-300:hsla(0,0%,100%,.3);--yc-color-private-white-500:hsla(0,0%,100%,.5);--yc-color-private-white-700:hsla(0,0%,100%,.7);--yc-color-private-white-850:hsla(0,0%,100%,.85);--yc-color-private-white-950:hsla(0,0%,100%,.95);--yc-color-private-white-1000:#fff;--yc-color-private-black-50:rgba(0,0,0,.05);--yc-color-private-black-70:rgba(0,0,0,.07);--yc-color-private-black-100:rgba(0,0,0,.1);--yc-color-private-black-150:rgba(0,0,0,.15);--yc-color-private-black-250:rgba(0,0,0,.25);--yc-color-private-black-300:rgba(0,0,0,.3);--yc-color-private-black-500:rgba(0,0,0,.5);--yc-color-private-black-550:rgba(0,0,0,.55);--yc-color-private-black-700:rgba(0,0,0,.7);--yc-color-private-black-850:rgba(0,0,0,.85);--yc-color-private-black-20-solid:#fafafa;--yc-color-private-black-50-solid:#f3f3f3;--yc-color-private-black-100-solid:#e5e5e5;--yc-color-private-black-150-solid:#dadada;--yc-color-private-black-700-solid:#4c4c4c;--yc-color-private-blue-50:rgba(82,130,255,.1);--yc-color-private-blue-100:rgba(82,130,255,.16);--yc-color-private-blue-300:rgba(82,130,255,.5);--yc-color-private-blue-450:rgba(82,130,255,.75);--yc-color-private-blue-500:rgba(82,130,255,.9);--yc-color-private-blue-550:#5282ff;--yc-color-private-blue-600:#4a71d6;--yc-color-private-blue-800:#3f5799;--yc-color-private-blue-50-solid:#eef3ff;--yc-color-private-blue-100-solid:#e3ebff;--yc-color-private-blue-450-solid:#7da1ff;--yc-color-private-green-50:rgba(59,201,53,.1);--yc-color-private-green-100:rgba(59,201,53,.14);--yc-color-private-green-150:rgba(59,201,53,.25);--yc-color-private-green-200:rgba(59,201,53,.35);--yc-color-private-green-300:rgba(59,201,53,.5);--yc-color-private-green-450:rgba(63,201,46,.75);--yc-color-private-green-550:#3bc935;--yc-color-private-green-600:#07a300;--yc-color-private-green-450-solid:#6fd662;--yc-color-private-yellow-100:rgba(255,219,77,.3);--yc-color-private-yellow-200:rgba(255,219,77,.4);--yc-color-private-yellow-550:#ffdb4d;--yc-color-private-yellow-600:#f5ca45;--yc-color-private-yellow-650:#f5ab19;--yc-color-private-yellow-700:#e0b509;--yc-color-private-yellow-800:#d17700;--yc-color-private-red-50:rgba(235,50,38,.08);--yc-color-private-red-100:rgba(235,50,38,.17);--yc-color-private-red-300:rgba(255,4,0,.5);--yc-color-private-red-450:rgba(255,4,0,.7);--yc-color-private-red-500:rgba(255,4,0,.8);--yc-color-private-red-550:#ff0400;--yc-color-private-red-450-solid:#ff504d;--yc-color-private-purple-550:#9a32a6;--yc-color-private-purple-800:#5e3e65;--yc-color-private-cool-grey-50:rgba(107,132,153,.12);--yc-color-private-cool-grey-100:rgba(107,132,153,.2);--yc-color-private-cool-grey-300:rgba(107,132,153,.55);--yc-color-private-cool-grey-450:rgba(107,132,153,.75);--yc-color-private-cool-grey-550:#6b8499;--yc-color-private-cool-grey-800:#3b6080;--yc-color-private-cool-grey-50-solid:#edf0f3;--yc-color-private-cool-grey-450-solid:#90a3b2;--yc-color-private-orange-50:rgba(255,119,0,.15);--yc-color-private-orange-100:rgba(255,119,0,.2);--yc-color-private-orange-300:rgba(255,119,0,.5);--yc-color-private-orange-450:#ffb422;--yc-color-private-orange-550:#f70;--yc-my-color-brand-normal:var(--yc-color-private-blue-550);--yc-my-color-brand-normal-hover:var(--yc-color-private-blue-600);--yc-my-color-brand-light:var(--yc-color-private-blue-300);--yc-my-color-brand-selection:var(--yc-color-private-blue-50);--yc-my-color-brand-selection-hover:var(--yc-color-private-blue-100);--yc-my-color-brand-link:var(--yc-my-color-brand-normal);--yc-my-color-brand-link-hover:var(--yc-color-private-blue-800);--yc-my-color-brand-text:var(--yc-my-color-brand-normal);--yc-my-color-brand-text-contrast:var(--yc-color-text-light-primary);--yc-my-color-brand-link-visited:var(--yc-color-private-purple-550);--yc-my-color-brand-link-visited-hover:var(--yc-color-private-purple-800);--yc-color-text-primary:var(--yc-color-private-black-850);--yc-color-text-complementary:var(--yc-color-private-black-700);--yc-color-text-secondary:var(--yc-color-private-black-500);--yc-color-text-hint:var(--yc-color-private-black-300);--yc-color-text-info:var(--yc-color-private-blue-550);--yc-color-text-positive:var(--yc-color-private-green-600);--yc-color-text-warning:var(--yc-color-private-yellow-700);--yc-color-text-danger:var(--yc-color-private-red-500);--yc-color-text-utility:var(--yc-color-private-purple-550);--yc-color-text-misc:var(--yc-color-private-cool-grey-800);--yc-color-text-info-heavy:var(--yc-color-private-blue-550);--yc-color-text-positive-heavy:var(--yc-color-private-green-600);--yc-color-text-warning-heavy:var(--yc-color-private-yellow-800);--yc-color-text-danger-heavy:var(--yc-color-private-red-500);--yc-color-text-utility-heavy:var(--yc-color-private-purple-550);--yc-color-text-misc-heavy:var(--yc-color-private-cool-grey-800);--yc-color-text-special:var(--yc-my-color-brand-normal);--yc-color-text-link:var(--yc-my-color-brand-link);--yc-color-text-link-hover:var(--yc-my-color-brand-link-hover);--yc-color-text-link-visited:var(--yc-my-color-brand-link-visited);--yc-color-text-link-visited-hover:var(--yc-my-color-brand-link-visited-hover);--yc-color-text-yandex-red:var(--yc-color-private-red-550);--yc-color-text-dark-primary:var(--yc-color-private-black-850);--yc-color-text-dark-complementary:var(--yc-color-private-black-700);--yc-color-text-dark-secondary:var(--yc-color-private-black-500);--yc-color-text-light-primary:var(--yc-color-private-white-1000);--yc-color-text-light-complementary:var(--yc-color-private-white-850);--yc-color-text-light-secondary:var(--yc-color-private-white-700);--yc-color-text-light-hint:var(--yc-color-private-white-500);--yc-color-text-inverted-primary:var(--yc-color-private-white-1000);--yc-color-text-inverted-complementary:var(--yc-color-private-white-850);--yc-color-text-inverted-secondary:var(--yc-color-private-white-700);--yc-color-text-inverted-hint:var(--yc-color-private-white-500);--yc-color-base-background:var(--yc-color-private-white-1000);--yc-color-base-generic:var(--yc-color-private-black-50);--yc-color-base-generic-hover:var(--yc-color-private-black-150);--yc-color-base-generic-medium:var(--yc-color-private-black-150);--yc-color-base-generic-medium-hover:var(--yc-color-private-black-250);--yc-color-base-generic-accent:var(--yc-color-private-black-150);--yc-color-base-generic-accent-disabled:var(--yc-color-private-black-70);--yc-color-base-generic-ultralight:var(--yc-color-private-black-20-solid);--yc-color-base-simple-hover:var(--yc-color-private-black-50);--yc-color-base-simple-hover-solid:var(--yc-color-private-black-50-solid);--yc-color-base-selection:var(--yc-my-color-brand-selection);--yc-color-base-selection-hover:var(--yc-my-color-brand-selection-hover);--yc-color-base-special:var(--yc-my-color-brand-normal);--yc-color-base-special-hover:var(--yc-my-color-brand-normal-hover);--yc-color-base-action:var(--yc-color-base-special);--yc-color-base-action-hover:var(--yc-color-base-special-hover);--yc-color-base-info:var(--yc-color-private-blue-50);--yc-color-base-info-hover:var(--yc-color-private-blue-100);--yc-color-base-positive:var(--yc-color-private-green-50);--yc-color-base-positive-hover:var(--yc-color-private-green-100);--yc-color-base-warning:var(--yc-color-private-yellow-100);--yc-color-base-warning-hover:var(--yc-color-private-yellow-200);--yc-color-base-danger:var(--yc-color-private-red-50);--yc-color-base-danger-hover:var(--yc-color-private-red-100);--yc-color-base-misc:var(--yc-color-private-cool-grey-50);--yc-color-base-misc-hover:var(--yc-color-private-cool-grey-100);--yc-color-base-neutral:var(--yc-color-private-black-50);--yc-color-base-neutral-hover:var(--yc-color-private-black-150);--yc-color-base-positive-medium:var(--yc-color-private-green-150);--yc-color-base-positive-medium-hover:var(--yc-color-private-green-200);--yc-color-base-info-heavy:var(--yc-color-private-blue-450);--yc-color-base-positive-heavy:var(--yc-color-private-green-450);--yc-color-base-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-base-warning-heavy-hover:var(--yc-color-private-yellow-600);--yc-color-base-danger-heavy:var(--yc-color-private-red-450);--yc-color-base-danger-heavy-hover:var(--yc-color-private-red-500);--yc-color-base-misc-heavy:var(--yc-color-private-cool-grey-450-solid);--yc-color-base-misc-heavy-hover:var(--yc-color-private-cool-grey-550);--yc-color-base-light:var(--yc-color-private-white-1000);--yc-color-base-light-hover:var(--yc-color-private-white-850);--yc-color-base-light-simple-hover:var(--yc-color-private-white-150);--yc-color-base-light-disabled:var(--yc-color-private-white-150);--yc-color-base-light-accent-disabled:var(--yc-color-private-white-300);--yc-color-base-float:var(--yc-color-private-white-1000);--yc-color-base-float-hover:var(--yc-color-private-black-50-solid);--yc-color-base-float-heavy:var(--yc-color-private-black-700-solid);--yc-color-base-float-accent:var(--yc-color-private-white-1000);--yc-color-base-float-accent-hover:var(--yc-color-private-white-850);--yc-color-base-float-announcement:var(--yc-color-private-cool-grey-50-solid);--yc-color-base-modal:var(--yc-color-private-white-1000);--yc-color-line-generic:var(--yc-color-private-black-100);--yc-color-line-generic-hover:var(--yc-color-private-black-150);--yc-color-line-generic-active:var(--yc-color-private-black-300);--yc-color-line-generic-accent:var(--yc-color-private-black-150);--yc-color-line-generic-accent-hover:var(--yc-color-private-black-300);--yc-color-line-solid:var(--yc-color-private-black-100-solid);--yc-color-line-selection-hover:var(--yc-my-color-brand-light);--yc-color-line-selection-active:var(--yc-my-color-brand-normal);--yc-color-line-link:var(--yc-my-color-brand-normal);--yc-color-line-info:var(--yc-color-private-blue-450);--yc-color-line-positive:var(--yc-color-private-green-450);--yc-color-line-warning:var(--yc-color-private-yellow-600);--yc-color-line-danger:var(--yc-color-private-red-450);--yc-color-line-misc:var(--yc-color-private-cool-grey-450);--yc-color-line-hint:var(--yc-color-private-blue-550);--yc-color-line-light:var(--yc-color-private-white-500);--yc-color-infographics-info-light:var(--yc-color-private-blue-50);--yc-color-infographics-positive-light:var(--yc-color-private-green-50);--yc-color-infographics-warning-light:var(--yc-color-private-orange-50);--yc-color-infographics-danger-light:var(--yc-color-private-red-50);--yc-color-infographics-misc-light:var(--yc-color-private-cool-grey-50);--yc-color-infographics-neutral-light:var(--yc-color-private-black-50);--yc-color-infographics-info-medium:var(--yc-color-private-blue-300);--yc-color-infographics-positive-medium:var(--yc-color-private-green-300);--yc-color-infographics-warning-medium:var(--yc-color-private-orange-300);--yc-color-infographics-danger-medium:var(--yc-color-private-red-300);--yc-color-infographics-misc-medium:var(--yc-color-private-cool-grey-300);--yc-color-infographics-neutral-medium:var(--yc-color-private-black-150);--yc-color-infographics-info-heavy:var(--yc-color-private-blue-550);--yc-color-infographics-positive-heavy:var(--yc-color-private-green-550);--yc-color-infographics-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-infographics-danger-heavy:var(--yc-color-private-red-550);--yc-color-infographics-misc-heavy:var(--yc-color-private-cool-grey-550);--yc-color-infographics-neutral-heavy:var(--yc-color-private-black-300);--yc-color-infographics-axis:var(--yc-color-private-black-150-solid);--yc-color-infographics-tooltip-bg:var(--yc-color-private-white-950);--yc-color-sfx-veil:var(--yc-color-private-black-250);--yc-color-sfx-shadow:var(--yc-color-private-black-150);--yc-color-sfx-shadow-heavy:var(--yc-color-private-black-500);--yc-color-sfx-shadow-light:var(--yc-color-private-black-50);--yc-color-sfx-fade:var(--yc-color-private-white-300);--yc-color-promo-base-silver:#eff2f8;--yc-color-promo-base-gold:#ffdb4d;--yc-color-promo-base-asphalt:#313538;--yc-color-promo-base-tomato:#ff5958;--yc-color-promo-base-copper:#ffab3b;--yc-color-promo-base-mint:#5ecf71;--yc-color-promo-base-sky:#49a0f6;--yc-color-promo-base-neon:#9f6fee;--yc-color-promo-highlight-silver:#edf2f7;--yc-color-promo-highlight-gold:#fff1b8;--yc-color-promo-highlight-asphalt:#eaebeb;--yc-color-promo-highlight-tomato:#ffdede;--yc-color-promo-highlight-copper:#ffe6c4;--yc-color-promo-highlight-mint:#ccf0d2;--yc-color-promo-highlight-sky:#d6e9fd;--yc-color-promo-highlight-neon:#ece2fc;--yc-color-promo-accent-silver:#969a9e;--yc-color-promo-accent-gold:#ffdb4d;--yc-color-promo-accent-asphalt:#313538;--yc-color-promo-accent-tomato:#ff5958;--yc-color-promo-accent-copper:#ffab3b;--yc-color-promo-accent-mint:#5ecf71;--yc-color-promo-accent-sky:#49a0f6;--yc-color-promo-accent-neon:#9f6fee;--yc-color-promo-accent-hover-silver:#727578;--yc-color-promo-accent-hover-gold:#edbe28;--yc-color-promo-accent-hover-asphalt:#000;--yc-color-promo-accent-hover-tomato:#ee4f4e;--yc-color-promo-accent-hover-copper:#f28d04;--yc-color-promo-accent-hover-mint:#3bbc51;--yc-color-promo-accent-hover-sky:#2180de;--yc-color-promo-accent-hover-neon:#7b47cf;--yc-color-promo-text-silver:#969a9e;--yc-color-promo-text-gold:#ebb409;--yc-color-promo-text-asphalt:#313538;--yc-color-promo-text-tomato:#ff5958;--yc-color-promo-text-copper:#ffab3b;--yc-color-promo-text-mint:#5ecf71;--yc-color-promo-text-sky:#49a0f6;--yc-color-promo-text-neon:#9f6fee;--yc-color-scroll-track:var(--yc-color-base-background);--yc-color-scroll-handle:var(--yc-color-private-black-100);--yc-color-scroll-handle-hover:var(--yc-color-private-black-150);--yc-color-scroll-corner:var(--yc-color-private-black-100)}.yc-root_theme_dark,.yc-root_theme_light{background:var(--yc-color-base-background);color:var(--yc-color-text-primary)}.yc-root_theme_dark{--yc-color-private-white-50:hsla(0,0%,100%,.05);--yc-color-private-white-70:hsla(0,0%,100%,.07);--yc-color-private-white-100:hsla(0,0%,100%,.1);--yc-color-private-white-150:hsla(0,0%,100%,.15);--yc-color-private-white-250:hsla(0,0%,100%,.25);--yc-color-private-white-300:hsla(0,0%,100%,.3);--yc-color-private-white-500:hsla(0,0%,100%,.5);--yc-color-private-white-700:hsla(0,0%,100%,.7);--yc-color-private-white-850:hsla(0,0%,100%,.85);--yc-color-private-white-opaque-150:rgba(76,75,81,.95);--yc-color-private-black-200:rgba(0,0,0,.2);--yc-color-private-black-300:rgba(0,0,0,.3);--yc-color-private-black-400:rgba(0,0,0,.4);--yc-color-private-black-500:rgba(0,0,0,.5);--yc-color-private-black-600:rgba(0,0,0,.6);--yc-color-private-black-700:rgba(0,0,0,.7);--yc-color-private-black-900:rgba(0,0,0,.9);--yc-color-private-black-rock-850:#2d2c33;--yc-color-private-white-20-solid:#313037;--yc-color-private-white-100-solid:#424147;--yc-color-private-white-150-solid:#4c4c52;--yc-color-private-white-200-solid:#57565c;--yc-color-private-blue-100:rgba(133,168,255,.15);--yc-color-private-blue-150:rgba(133,168,255,.25);--yc-color-private-blue-300:rgba(133,168,255,.5);--yc-color-private-blue-450:rgba(87,126,214,.8);--yc-color-private-blue-550:#577ed6;--yc-color-private-blue-700:#6292ff;--yc-color-private-blue-850:#85a8ff;--yc-color-private-blue-150-solid:#434b66;--yc-color-private-blue-300-solid:#596a99;--yc-color-private-blue-450-solid:#4f6eb5;--yc-color-private-green-100:rgba(59,201,53,.12);--yc-color-private-green-150:rgba(59,201,53,.16);--yc-color-private-green-300:rgba(186,255,184,.6);--yc-color-private-green-350:rgba(186,255,184,.68);--yc-color-private-green-450:rgba(59,201,53,.58);--yc-color-private-green-550:rgba(59,201,53,.75);--yc-color-private-green-450-solid:#358734;--yc-color-private-yellow-100:rgba(255,219,77,.25);--yc-color-private-yellow-150:rgba(255,219,77,.4);--yc-color-private-yellow-450:rgba(255,219,77,.64);--yc-color-private-yellow-550:rgba(255,219,77,.8);--yc-color-private-yellow-700:#e0bd34;--yc-color-private-red-100:rgba(191,50,48,.3);--yc-color-private-red-150:rgba(191,50,48,.45);--yc-color-private-red-300:rgba(255,77,73,.5);--yc-color-private-red-450:rgba(208,71,69,.88);--yc-color-private-red-550:#d04745;--yc-color-private-red-450-solid:#a23130;--yc-color-private-purple-550:#a63eb2;--yc-color-private-purple-700:#b14ec6;--yc-color-private-purple-850:#c879d8;--yc-color-private-cool-grey-100:rgba(95,115,133,.18);--yc-color-private-cool-grey-150:rgba(107,132,153,.3);--yc-color-private-cool-grey-300:rgba(95,115,133,.6);--yc-color-private-cool-grey-450:rgba(95,115,133,.8);--yc-color-private-cool-grey-550:#5f7385;--yc-color-private-cool-grey-700:#8ea2b4;--yc-color-private-cool-grey-450-solid:#556575;--yc-color-private-orange-50:rgba(204,104,16,.2);--yc-color-private-orange-100:rgba(204,104,16,.3);--yc-color-private-orange-150:rgba(204,104,16,.5);--yc-color-private-orange-300:rgba(255,160,66,.5);--yc-color-private-orange-450:rgba(204,104,16,.8);--yc-color-private-orange-550:#cc6810;--yc-color-private-orange-450-solid:#ac5c17;--yc-my-color-brand-normal:var(--yc-color-private-blue-550);--yc-my-color-brand-normal-hover:var(--yc-color-private-blue-700);--yc-my-color-brand-light:var(--yc-color-private-blue-300);--yc-my-color-brand-selection:var(--yc-color-private-blue-150);--yc-my-color-brand-selection-hover:var(--yc-color-private-blue-300);--yc-my-color-brand-link:var(--yc-color-private-blue-700);--yc-my-color-brand-link-hover:var(--yc-color-private-blue-850);--yc-my-color-brand-text:var(--yc-color-private-blue-700);--yc-my-color-brand-text-contrast:var(--yc-color-text-light-primary);--yc-my-color-brand-link-visited:var(--yc-color-private-purple-700);--yc-my-color-brand-link-visited-hover:var(--yc-color-private-purple-850);--yc-color-text-primary:var(--yc-color-private-white-850);--yc-color-text-complementary:var(--yc-color-private-white-700);--yc-color-text-secondary:var(--yc-color-private-white-500);--yc-color-text-hint:var(--yc-color-private-white-300);--yc-color-text-info:var(--yc-color-private-blue-700);--yc-color-text-positive:var(--yc-color-private-green-550);--yc-color-text-warning:var(--yc-color-private-yellow-700);--yc-color-text-danger:var(--yc-color-private-red-550);--yc-color-text-utility:var(--yc-color-private-purple-550);--yc-color-text-misc:var(--yc-color-private-cool-grey-700);--yc-color-text-info-heavy:var(--yc-color-private-blue-700);--yc-color-text-positive-heavy:var(--yc-color-private-green-550);--yc-color-text-warning-heavy:var(--yc-color-private-yellow-700);--yc-color-text-danger-heavy:var(--yc-color-private-red-550);--yc-color-text-utility-heavy:var(--yc-color-private-purple-550);--yc-color-text-misc-heavy:var(--yc-color-private-cool-grey-700);--yc-color-text-special:var(--yc-my-color-brand-normal);--yc-color-text-link:var(--yc-my-color-brand-link);--yc-color-text-link-hover:var(--yc-my-color-brand-link-hover);--yc-color-text-link-visited:var(--yc-my-color-brand-link-visited);--yc-color-text-link-visited-hover:var(--yc-my-color-brand-link-visited-hover);--yc-color-text-yandex-red:var(--yc-color-private-red-550);--yc-color-text-dark-primary:var(--yc-color-private-black-900);--yc-color-text-dark-complementary:var(--yc-color-private-black-700);--yc-color-text-dark-secondary:var(--yc-color-private-black-500);--yc-color-text-light-primary:var(--yc-color-private-white-850);--yc-color-text-light-complementary:var(--yc-color-private-white-700);--yc-color-text-light-secondary:var(--yc-color-private-white-500);--yc-color-text-light-hint:var(--yc-color-private-white-300);--yc-color-text-inverted-primary:var(--yc-color-private-black-900);--yc-color-text-inverted-complementary:var(--yc-color-private-black-700);--yc-color-text-inverted-secondary:var(--yc-color-private-black-500);--yc-color-text-inverted-hint:var(--yc-color-private-black-300);--yc-color-base-background:var(--yc-color-private-black-rock-850);--yc-color-base-generic:var(--yc-color-private-white-100);--yc-color-base-generic-hover:var(--yc-color-private-white-150);--yc-color-base-generic-medium:var(--yc-color-private-white-250);--yc-color-base-generic-medium-hover:var(--yc-color-private-white-300);--yc-color-base-generic-accent:var(--yc-color-private-white-150);--yc-color-base-generic-accent-disabled:var(--yc-color-private-white-70);--yc-color-base-generic-ultralight:var(--yc-color-private-white-20-solid);--yc-color-base-simple-hover:var(--yc-color-private-white-100);--yc-color-base-simple-hover-solid:var(--yc-color-private-white-100-solid);--yc-color-base-selection:var(--yc-my-color-brand-selection);--yc-color-base-selection-hover:var(--yc-my-color-brand-selection-hover);--yc-color-base-special:var(--yc-my-color-brand-normal);--yc-color-base-special-hover:var(--yc-my-color-brand-normal-hover);--yc-color-base-action:var(--yc-color-base-special);--yc-color-base-action-hover:var(--yc-color-base-special-hover);--yc-color-base-info:var(--yc-color-private-blue-100);--yc-color-base-info-hover:var(--yc-color-private-blue-150);--yc-color-base-positive:var(--yc-color-private-green-100);--yc-color-base-positive-hover:var(--yc-color-private-green-150);--yc-color-base-warning:var(--yc-color-private-yellow-100);--yc-color-base-warning-hover:var(--yc-color-private-yellow-150);--yc-color-base-danger:var(--yc-color-private-red-100);--yc-color-base-danger-hover:var(--yc-color-private-red-150);--yc-color-base-misc:var(--yc-color-private-cool-grey-100);--yc-color-base-misc-hover:var(--yc-color-private-cool-grey-150);--yc-color-base-neutral:var(--yc-color-private-white-100);--yc-color-base-neutral-hover:var(--yc-color-private-white-150);--yc-color-base-positive-medium:var(--yc-color-private-green-300);--yc-color-base-positive-medium-hover:var(--yc-color-private-green-350);--yc-color-base-info-heavy:var(--yc-color-private-blue-450);--yc-color-base-positive-heavy:var(--yc-color-private-green-450);--yc-color-base-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-base-warning-heavy-hover:var(--yc-color-private-yellow-700);--yc-color-base-danger-heavy:var(--yc-color-private-red-450);--yc-color-base-danger-heavy-hover:var(--yc-color-private-red-550);--yc-color-base-misc-heavy:var(--yc-color-private-cool-grey-450-solid);--yc-color-base-misc-heavy-hover:var(--yc-color-private-cool-grey-550);--yc-color-base-light:var(--yc-color-private-white-850);--yc-color-base-light-hover:var(--yc-color-private-white-700);--yc-color-base-light-simple-hover:var(--yc-color-private-white-150);--yc-color-base-light-disabled:var(--yc-color-private-white-150);--yc-color-base-light-accent-disabled:var(--yc-color-private-white-300);--yc-color-base-float:var(--yc-color-private-white-100-solid);--yc-color-base-float-hover:var(--yc-color-private-white-150-solid);--yc-color-base-float-heavy:var(--yc-color-private-white-150-solid);--yc-color-base-float-accent:var(--yc-color-private-white-150-solid);--yc-color-base-float-accent-hover:var(--yc-color-private-white-200-solid);--yc-color-base-float-announcement:var(--yc-color-private-white-150-solid);--yc-color-base-modal:var(--yc-color-private-black-rock-850);--yc-color-line-generic:var(--yc-color-private-white-150);--yc-color-line-generic-hover:var(--yc-color-private-white-250);--yc-color-line-generic-active:var(--yc-color-private-white-300);--yc-color-line-generic-accent:var(--yc-color-private-white-150);--yc-color-line-generic-accent-hover:var(--yc-color-private-white-300);--yc-color-line-solid:var(--yc-color-private-white-150-solid);--yc-color-line-selection-hover:var(--yc-my-color-brand-light);--yc-color-line-selection-active:var(--yc-my-color-brand-normal);--yc-color-line-link:var(--yc-my-color-brand-normal);--yc-color-line-info:var(--yc-color-private-blue-450);--yc-color-line-positive:var(--yc-color-private-green-450);--yc-color-line-warning:var(--yc-color-private-yellow-150);--yc-color-line-danger:var(--yc-color-private-red-450);--yc-color-line-misc:var(--yc-color-private-cool-grey-450);--yc-color-line-hint:var(--yc-color-private-blue-550);--yc-color-line-light:var(--yc-color-private-white-500);--yc-color-infographics-info-light:var(--yc-color-private-blue-150);--yc-color-infographics-positive-light:var(--yc-color-private-green-150);--yc-color-infographics-warning-light:var(--yc-color-private-orange-150);--yc-color-infographics-danger-light:var(--yc-color-private-red-150);--yc-color-infographics-misc-light:var(--yc-color-private-cool-grey-150);--yc-color-infographics-neutral-light:var(--yc-color-private-white-150);--yc-color-infographics-info-medium:var(--yc-color-private-blue-300);--yc-color-infographics-positive-medium:var(--yc-color-private-green-300);--yc-color-infographics-warning-medium:var(--yc-color-private-orange-300);--yc-color-infographics-danger-medium:var(--yc-color-private-red-300);--yc-color-infographics-misc-medium:var(--yc-color-private-cool-grey-300);--yc-color-infographics-neutral-medium:var(--yc-color-private-white-150);--yc-color-infographics-info-heavy:var(--yc-color-private-blue-550);--yc-color-infographics-positive-heavy:var(--yc-color-private-green-550);--yc-color-infographics-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-infographics-danger-heavy:var(--yc-color-private-red-550);--yc-color-infographics-misc-heavy:var(--yc-color-private-cool-grey-550);--yc-color-infographics-neutral-heavy:var(--yc-color-private-white-300);--yc-color-infographics-axis:var(--yc-color-private-white-150-solid);--yc-color-infographics-tooltip-bg:var(--yc-color-private-white-opaque-150);--yc-color-sfx-veil:var(--yc-color-private-black-600);--yc-color-sfx-shadow:var(--yc-color-private-black-200);--yc-color-sfx-shadow-heavy:var(--yc-color-private-black-500);--yc-color-sfx-shadow-light:var(--yc-color-private-black-50);--yc-color-sfx-fade:var(--yc-color-private-white-250);--yc-color-promo-base-silver:#bcc0c4;--yc-color-promo-base-gold:#ffde5d;--yc-color-promo-base-asphalt:#474d52;--yc-color-promo-base-tomato:#ff6b6a;--yc-color-promo-base-copper:#ffb95a;--yc-color-promo-base-mint:#7fd68e;--yc-color-promo-base-sky:#69b4ff;--yc-color-promo-base-neon:#b384ff;--yc-color-promo-highlight-silver:#616366;--yc-color-promo-highlight-gold:#99832e;--yc-color-promo-highlight-asphalt:#5d656b;--yc-color-promo-highlight-tomato:#998585;--yc-color-promo-highlight-copper:#7f7262;--yc-color-promo-highlight-mint:#758978;--yc-color-promo-highlight-sky:#94a2af;--yc-color-promo-highlight-neon:#aea6ba;--yc-color-scroll-track:var(--yc-color-base-background);--yc-color-scroll-handle:var(--yc-color-private-white-150);--yc-color-scroll-handle-hover:var(--yc-color-private-white-250);--yc-color-scroll-corner:var(--yc-color-private-white-150)}.yc-root_theme_light-hc{--yc-color-private-white-50:hsla(0,0%,100%,.05);--yc-color-private-white-70:hsla(0,0%,100%,.07);--yc-color-private-white-100:hsla(0,0%,100%,.1);--yc-color-private-white-150:hsla(0,0%,100%,.15);--yc-color-private-white-200:hsla(0,0%,100%,.2);--yc-color-private-white-250:hsla(0,0%,100%,.25);--yc-color-private-white-300:hsla(0,0%,100%,.3);--yc-color-private-white-350:hsla(0,0%,100%,.35);--yc-color-private-white-400:hsla(0,0%,100%,.4);--yc-color-private-white-450:hsla(0,0%,100%,.45);--yc-color-private-white-500:hsla(0,0%,100%,.5);--yc-color-private-white-550:hsla(0,0%,100%,.55);--yc-color-private-white-600:hsla(0,0%,100%,.6);--yc-color-private-white-650:hsla(0,0%,100%,.65);--yc-color-private-white-700:hsla(0,0%,100%,.7);--yc-color-private-white-750:hsla(0,0%,100%,.75);--yc-color-private-white-800:hsla(0,0%,100%,.8);--yc-color-private-white-850:hsla(0,0%,100%,.85);--yc-color-private-white-900:hsla(0,0%,100%,.9);--yc-color-private-white-950:hsla(0,0%,100%,.95);--yc-color-private-white-1000:#fff;--yc-color-private-black-50:rgba(0,0,0,.05);--yc-color-private-black-100:rgba(0,0,0,.1);--yc-color-private-black-150:rgba(0,0,0,.15);--yc-color-private-black-200:rgba(0,0,0,.2);--yc-color-private-black-250:rgba(0,0,0,.25);--yc-color-private-black-300:rgba(0,0,0,.3);--yc-color-private-black-350:rgba(0,0,0,.35);--yc-color-private-black-400:rgba(0,0,0,.4);--yc-color-private-black-450:rgba(0,0,0,.45);--yc-color-private-black-500:rgba(0,0,0,.5);--yc-color-private-black-550:rgba(0,0,0,.55);--yc-color-private-black-600:rgba(0,0,0,.6);--yc-color-private-black-650:rgba(0,0,0,.65);--yc-color-private-black-700:rgba(0,0,0,.7);--yc-color-private-black-750:rgba(0,0,0,.75);--yc-color-private-black-800:rgba(0,0,0,.8);--yc-color-private-black-850:rgba(0,0,0,.85);--yc-color-private-black-900:rgba(0,0,0,.9);--yc-color-private-black-950:rgba(0,0,0,.95);--yc-color-private-black-1000:#000;--yc-color-private-black-20-solid:#fafafa;--yc-color-private-black-50-solid:#f2f2f2;--yc-color-private-black-100-solid:#e5e5e5;--yc-color-private-black-150-solid:#d9d9d9;--yc-color-private-black-200-solid:#ccc;--yc-color-private-black-250-solid:#bfbfbf;--yc-color-private-black-300-solid:#b3b3b3;--yc-color-private-black-350-solid:#a6a6a6;--yc-color-private-black-400-solid:#999;--yc-color-private-black-450-solid:#8c8c8c;--yc-color-private-black-500-solid:grey;--yc-color-private-black-550-solid:#737373;--yc-color-private-black-600-solid:#666;--yc-color-private-black-650-solid:#595959;--yc-color-private-black-700-solid:#4c4c4c;--yc-color-private-black-750-solid:#404040;--yc-color-private-black-800-solid:#333;--yc-color-private-black-850-solid:#262626;--yc-color-private-black-900-solid:#1a1a1a;--yc-color-private-black-950-solid:#0d0d0d;--yc-color-private-black-1000-solid:#000;--yc-color-private-blue-600:#4a71d6;--yc-color-private-blue-800:#3f5799;--yc-color-private-blue-50:rgba(82,130,255,.05);--yc-color-private-blue-100:rgba(82,130,255,.1);--yc-color-private-blue-150:rgba(82,130,255,.2);--yc-color-private-blue-200:rgba(82,130,255,.3);--yc-color-private-blue-250:rgba(82,130,255,.4);--yc-color-private-blue-300:rgba(82,130,255,.5);--yc-color-private-blue-350:rgba(82,130,255,.6);--yc-color-private-blue-400:rgba(82,130,255,.7);--yc-color-private-blue-450:rgba(82,130,255,.8);--yc-color-private-blue-500:rgba(82,130,255,.9);--yc-color-private-blue-550:#5282ff;--yc-color-private-blue-50-solid:#f6f9ff;--yc-color-private-blue-100-solid:#eef3ff;--yc-color-private-blue-150-solid:#dce6ff;--yc-color-private-blue-200-solid:#cbdaff;--yc-color-private-blue-250-solid:#bacdff;--yc-color-private-blue-300-solid:#a8c1ff;--yc-color-private-blue-350-solid:#97b4ff;--yc-color-private-blue-400-solid:#86a8ff;--yc-color-private-blue-450-solid:#749bff;--yc-color-private-blue-500-solid:#638fff;--yc-color-private-blue-550-solid:#5282ff;--yc-color-private-blue-600-solid:#4d79e9;--yc-color-private-blue-650-solid:#486fd4;--yc-color-private-blue-700-solid:#4366be;--yc-color-private-blue-750-solid:#3f5ca8;--yc-color-private-blue-800-solid:#3a5393;--yc-color-private-blue-850-solid:#35497d;--yc-color-private-blue-900-solid:#304067;--yc-color-private-blue-950-solid:#2c3651;--yc-color-private-blue-1000-solid:#272d3c;--yc-color-private-green-50:rgba(59,201,53,.05);--yc-color-private-green-100:rgba(59,201,53,.1);--yc-color-private-green-150:rgba(59,201,53,.2);--yc-color-private-green-200:rgba(59,201,53,.3);--yc-color-private-green-250:rgba(59,201,53,.4);--yc-color-private-green-300:rgba(59,201,53,.5);--yc-color-private-green-350:rgba(59,201,53,.6);--yc-color-private-green-400:rgba(59,201,53,.7);--yc-color-private-green-450:rgba(59,201,53,.8);--yc-color-private-green-500:rgba(59,201,53,.9);--yc-color-private-green-550:#3bc935;--yc-color-private-green-50-solid:#f5fcf5;--yc-color-private-green-100-solid:#ebfaeb;--yc-color-private-green-150-solid:#d8f4d7;--yc-color-private-green-200-solid:#c4efc2;--yc-color-private-green-250-solid:#b1e9ae;--yc-color-private-green-300-solid:#9de49a;--yc-color-private-green-350-solid:#89df86;--yc-color-private-green-400-solid:#76d972;--yc-color-private-green-450-solid:#62d45d;--yc-color-private-green-500-solid:#4fce49;--yc-color-private-green-550-solid:#3bc935;--yc-color-private-green-600-solid:#38b833;--yc-color-private-green-650-solid:#36a832;--yc-color-private-green-700-solid:#339730;--yc-color-private-green-750-solid:#31872f;--yc-color-private-green-800-solid:#2f762e;--yc-color-private-green-850-solid:#2c652c;--yc-color-private-green-900-solid:#29552b;--yc-color-private-green-950-solid:#274429;--yc-color-private-green-1000-solid:#243428;--yc-color-private-yellow-50:rgba(255,219,77,.05);--yc-color-private-yellow-100:rgba(255,219,77,.1);--yc-color-private-yellow-150:rgba(255,219,77,.2);--yc-color-private-yellow-200:rgba(255,219,77,.3);--yc-color-private-yellow-250:rgba(255,219,77,.4);--yc-color-private-yellow-300:rgba(255,219,77,.5);--yc-color-private-yellow-350:rgba(255,219,77,.6);--yc-color-private-yellow-400:rgba(255,219,77,.7);--yc-color-private-yellow-450:rgba(255,219,77,.8);--yc-color-private-yellow-500:rgba(255,219,77,.9);--yc-color-private-yellow-550:#ffdb4d;--yc-color-private-yellow-50-solid:#fffdf6;--yc-color-private-yellow-100-solid:#fffbed;--yc-color-private-yellow-150-solid:#fff8db;--yc-color-private-yellow-200-solid:#fff4ca;--yc-color-private-yellow-250-solid:#fff1b8;--yc-color-private-yellow-300-solid:#ffeda6;--yc-color-private-yellow-350-solid:#ffe994;--yc-color-private-yellow-400-solid:#ffe682;--yc-color-private-yellow-450-solid:#ffe271;--yc-color-private-yellow-500-solid:#ffdf5f;--yc-color-private-yellow-550-solid:#ffdb4d;--yc-color-private-yellow-600-solid:#e9c949;--yc-color-private-yellow-650-solid:#d3b645;--yc-color-private-yellow-700-solid:#bda441;--yc-color-private-yellow-750-solid:#a7913d;--yc-color-private-yellow-800-solid:#907f3a;--yc-color-private-yellow-850-solid:#7a6d36;--yc-color-private-yellow-900-solid:#645a32;--yc-color-private-yellow-950-solid:#4e482e;--yc-color-private-yellow-1000-solid:#38352a;--yc-color-private-red-50:rgba(255,4,0,.05);--yc-color-private-red-100:rgba(255,4,0,.1);--yc-color-private-red-150:rgba(255,4,0,.2);--yc-color-private-red-200:rgba(255,4,0,.3);--yc-color-private-red-250:rgba(255,4,0,.4);--yc-color-private-red-300:rgba(255,4,0,.5);--yc-color-private-red-350:rgba(255,4,0,.6);--yc-color-private-red-400:rgba(255,4,0,.7);--yc-color-private-red-450:rgba(255,4,0,.8);--yc-color-private-red-500:rgba(255,4,0,.9);--yc-color-private-red-550:#ff0400;--yc-color-private-red-50-solid:#fff3f2;--yc-color-private-red-100-solid:#ffe6e5;--yc-color-private-red-150-solid:#ffcdcc;--yc-color-private-red-200-solid:#ffb4b3;--yc-color-private-red-250-solid:#ff9b99;--yc-color-private-red-300-solid:#ff8280;--yc-color-private-red-350-solid:#ff6966;--yc-color-private-red-400-solid:#ff504c;--yc-color-private-red-450-solid:#ff3733;--yc-color-private-red-500-solid:#ff1e1a;--yc-color-private-red-550-solid:#ff0400;--yc-color-private-red-600-solid:#e90804;--yc-color-private-red-650-solid:#d30b08;--yc-color-private-red-700-solid:#bd0e0b;--yc-color-private-red-750-solid:#a6110f;--yc-color-private-red-800-solid:#901413;--yc-color-private-red-850-solid:#7a1717;--yc-color-private-red-900-solid:#641a1b;--yc-color-private-red-950-solid:#4e1d1e;--yc-color-private-red-1000-solid:#382022;--yc-color-private-purple-50:rgba(154,50,166,.05);--yc-color-private-purple-100:rgba(154,50,166,.1);--yc-color-private-purple-150:rgba(154,50,166,.2);--yc-color-private-purple-200:rgba(154,50,166,.3);--yc-color-private-purple-250:rgba(154,50,166,.4);--yc-color-private-purple-300:rgba(154,50,166,.5);--yc-color-private-purple-350:rgba(154,50,166,.6);--yc-color-private-purple-400:rgba(154,50,166,.7);--yc-color-private-purple-450:rgba(154,50,166,.8);--yc-color-private-purple-500:rgba(154,50,166,.9);--yc-color-private-purple-550:#9a32a6;--yc-color-private-purple-50-solid:#faf5fb;--yc-color-private-purple-100-solid:#f5eaf6;--yc-color-private-purple-150-solid:#ebd6ed;--yc-color-private-purple-200-solid:#e1c1e4;--yc-color-private-purple-250-solid:#d7addb;--yc-color-private-purple-300-solid:#cc99d2;--yc-color-private-purple-350-solid:#c284ca;--yc-color-private-purple-400-solid:#b86fc1;--yc-color-private-purple-450-solid:#ae5bb8;--yc-color-private-purple-500-solid:#a447af;--yc-color-private-purple-550-solid:#9a32a6;--yc-color-private-purple-600-solid:#8e3199;--yc-color-private-purple-650-solid:#822f8c;--yc-color-private-purple-700-solid:#762d80;--yc-color-private-purple-750-solid:#6a2c73;--yc-color-private-purple-800-solid:#5e2a66;--yc-color-private-purple-850-solid:#522959;--yc-color-private-purple-900-solid:#46284c;--yc-color-private-purple-950-solid:#3a2640;--yc-color-private-purple-1000-solid:#2e2433;--yc-color-private-cool-grey-50:rgba(107,132,153,.05);--yc-color-private-cool-grey-100:rgba(107,132,153,.1);--yc-color-private-cool-grey-150:rgba(107,132,153,.2);--yc-color-private-cool-grey-200:rgba(107,132,153,.3);--yc-color-private-cool-grey-250:rgba(107,132,153,.4);--yc-color-private-cool-grey-300:rgba(107,132,153,.5);--yc-color-private-cool-grey-350:rgba(107,132,153,.6);--yc-color-private-cool-grey-400:rgba(107,132,153,.7);--yc-color-private-cool-grey-450:rgba(107,132,153,.8);--yc-color-private-cool-grey-500:rgba(107,132,153,.9);--yc-color-private-cool-grey-550:#6b8499;--yc-color-private-cool-grey-50-solid:#f8f9fa;--yc-color-private-cool-grey-100-solid:#f0f3f5;--yc-color-private-cool-grey-150-solid:#e1e6eb;--yc-color-private-cool-grey-200-solid:#d3dae0;--yc-color-private-cool-grey-250-solid:#c4ced6;--yc-color-private-cool-grey-300-solid:#b5c1cc;--yc-color-private-cool-grey-350-solid:#a6b5c2;--yc-color-private-cool-grey-400-solid:#97a9b8;--yc-color-private-cool-grey-450-solid:#899dad;--yc-color-private-cool-grey-500-solid:#7a90a3;--yc-color-private-cool-grey-550-solid:#6b8499;--yc-color-private-cool-grey-600-solid:#647a8e;--yc-color-private-cool-grey-650-solid:#5c7182;--yc-color-private-cool-grey-700-solid:#556776;--yc-color-private-cool-grey-750-solid:#4e5d6b;--yc-color-private-cool-grey-800-solid:#465360;--yc-color-private-cool-grey-850-solid:#3f4a54;--yc-color-private-cool-grey-900-solid:#384049;--yc-color-private-cool-grey-950-solid:#31363d;--yc-color-private-cool-grey-1000-solid:#292d31;--yc-color-private-orange-50:rgba(255,119,0,.05);--yc-color-private-orange-100:rgba(255,119,0,.1);--yc-color-private-orange-150:rgba(255,119,0,.2);--yc-color-private-orange-200:rgba(255,119,0,.3);--yc-color-private-orange-250:rgba(255,119,0,.4);--yc-color-private-orange-300:rgba(255,119,0,.5);--yc-color-private-orange-350:rgba(255,119,0,.6);--yc-color-private-orange-400:rgba(255,119,0,.7);--yc-color-private-orange-450:rgba(255,119,0,.8);--yc-color-private-orange-500:rgba(255,119,0,.9);--yc-color-private-orange-550:#f70;--yc-color-private-orange-50-solid:#fff8f2;--yc-color-private-orange-100-solid:#fff1e5;--yc-color-private-orange-150-solid:#ffe4cc;--yc-color-private-orange-200-solid:#ffd6b3;--yc-color-private-orange-250-solid:#ffc999;--yc-color-private-orange-300-solid:#ffbb80;--yc-color-private-orange-350-solid:#ffad66;--yc-color-private-orange-400-solid:#ffa04c;--yc-color-private-orange-450-solid:#ff9233;--yc-color-private-orange-500-solid:#ff851a;--yc-color-private-orange-550-solid:#f70;--yc-color-private-orange-600-solid:#e96f04;--yc-color-private-orange-650-solid:#d36608;--yc-color-private-orange-700-solid:#bd5e0b;--yc-color-private-orange-750-solid:#a7550f;--yc-color-private-orange-800-solid:#904d13;--yc-color-private-orange-850-solid:#7a4517;--yc-color-private-orange-900-solid:#643c1b;--yc-color-private-orange-950-solid:#4e341e;--yc-color-private-orange-1000-solid:#382b22;--yc-my-color-brand-normal:var(--yc-color-private-blue-550);--yc-my-color-brand-normal-hover:var(--yc-color-private-blue-800);--yc-my-color-brand-light:var(--yc-color-private-blue-300);--yc-my-color-brand-selection:var(--yc-color-private-blue-250);--yc-my-color-brand-selection-hover:var(--yc-color-private-blue-450);--yc-my-color-brand-link:var(--yc-color-private-blue-650-solid);--yc-my-color-brand-link-hover:var(--yc-color-private-blue-850-solid);--yc-my-color-brand-text:var(--yc-color-private-blue-900-solid);--yc-my-color-brand-text-contrast:var(--yc-color-text-light-primary);--yc-my-color-brand-link-visited:var(--yc-color-private-purple-600-solid);--yc-my-color-brand-link-visited-hover:var(--yc-color-private-purple-850-solid);--yc-color-text-primary:var(--yc-color-private-black-1000);--yc-color-text-complementary:var(--yc-color-private-black-850);--yc-color-text-secondary:var(--yc-color-private-black-700);--yc-color-text-hint:var(--yc-color-private-black-500);--yc-color-text-info:var(--yc-color-private-blue-600-solid);--yc-color-text-positive:var(--yc-color-private-green-650-solid);--yc-color-text-warning:var(--yc-color-private-yellow-650-solid);--yc-color-text-danger:var(--yc-color-private-red-600-solid);--yc-color-text-utility:var(--yc-color-private-purple-600-solid);--yc-color-text-misc:var(--yc-color-private-cool-grey-650-solid);--yc-color-text-info-heavy:var(--yc-color-private-blue-900-solid);--yc-color-text-positive-heavy:var(--yc-color-private-green-900-solid);--yc-color-text-warning-heavy:var(--yc-color-private-orange-900-solid);--yc-color-text-danger-heavy:var(--yc-color-private-red-900-solid);--yc-color-text-utility-heavy:var(--yc-color-private-purple-900-solid);--yc-color-text-misc-heavy:var(--yc-color-private-cool-grey-950-solid);--yc-color-text-special:var(--yc-my-color-brand-normal);--yc-color-text-link:var(--yc-my-color-brand-link);--yc-color-text-link-hover:var(--yc-my-color-brand-link-hover);--yc-color-text-link-visited:var(--yc-my-color-brand-link-visited);--yc-color-text-link-visited-hover:var(--yc-my-color-brand-link-visited-hover);--yc-color-text-yandex-red:var(--yc-color-private-red-550);--yc-color-text-dark-primary:var(--yc-color-private-black-1000);--yc-color-text-dark-complementary:var(--yc-color-private-black-800);--yc-color-text-dark-secondary:var(--yc-color-private-black-600);--yc-color-text-light-primary:var(--yc-color-private-white-1000);--yc-color-text-light-complementary:var(--yc-color-private-white-850);--yc-color-text-light-secondary:var(--yc-color-private-white-700);--yc-color-text-light-hint:var(--yc-color-private-white-500);--yc-color-text-inverted-primary:var(--yc-color-private-white-1000);--yc-color-text-inverted-complementary:var(--yc-color-private-white-850);--yc-color-text-inverted-secondary:var(--yc-color-private-white-700);--yc-color-text-inverted-hint:var(--yc-color-private-white-500);--yc-color-base-background:var(--yc-color-private-white-1000);--yc-color-base-generic:var(--yc-color-private-black-150);--yc-color-base-generic-hover:var(--yc-color-private-black-300);--yc-color-base-generic-medium:var(--yc-color-private-black-250);--yc-color-base-generic-medium-hover:var(--yc-color-private-black-350);--yc-color-base-generic-accent:var(--yc-color-private-black-250);--yc-color-base-generic-accent-disabled:var(--yc-color-private-black-150);--yc-color-base-generic-ultralight:var(--yc-color-private-black-50-solid);--yc-color-base-simple-hover:var(--yc-color-private-black-150);--yc-color-base-simple-hover-solid:var(--yc-color-private-black-100-solid);--yc-color-base-selection:var(--yc-my-color-brand-selection);--yc-color-base-selection-hover:var(--yc-my-color-brand-selection-hover);--yc-color-base-special:var(--yc-my-color-brand-normal);--yc-color-base-special-hover:var(--yc-my-color-brand-normal-hover);--yc-color-base-action:var(--yc-color-base-special);--yc-color-base-action-hover:var(--yc-color-base-special-hover);--yc-color-base-info:var(--yc-color-private-blue-250);--yc-color-base-info-hover:var(--yc-color-private-blue-350);--yc-color-base-positive:var(--yc-color-private-green-250);--yc-color-base-positive-hover:var(--yc-color-private-green-350);--yc-color-base-warning:var(--yc-color-private-yellow-300);--yc-color-base-warning-hover:var(--yc-color-private-yellow-550);--yc-color-base-danger:var(--yc-color-private-red-250);--yc-color-base-danger-hover:var(--yc-color-private-red-350);--yc-color-base-misc:var(--yc-color-private-cool-grey-250);--yc-color-base-misc-hover:var(--yc-color-private-cool-grey-350);--yc-color-base-neutral:var(--yc-color-private-black-150);--yc-color-base-neutral-hover:var(--yc-color-private-black-300);--yc-color-base-positive-medium:var(--yc-color-private-green-350);--yc-color-base-positive-medium-hover:var(--yc-color-private-green-400);--yc-color-base-info-heavy:var(--yc-color-private-blue-450);--yc-color-base-positive-heavy:var(--yc-color-private-green-450);--yc-color-base-warning-heavy:var(--yc-color-private-yellow-450);--yc-color-base-warning-heavy-hover:var(--yc-color-private-yellow-700);--yc-color-base-danger-heavy:var(--yc-color-private-red-450);--yc-color-base-danger-heavy-hover:var(--yc-color-private-red-450);--yc-color-base-misc-heavy:var(--yc-color-private-cool-grey-450);--yc-color-base-misc-heavy-hover:var(--yc-color-private-cool-grey-550);--yc-color-base-light:var(--yc-color-private-white-1000);--yc-color-base-light-hover:var(--yc-color-private-white-850);--yc-color-base-light-simple-hover:var(--yc-color-private-white-300);--yc-color-base-light-disabled:var(--yc-color-private-white-150);--yc-color-base-light-accent-disabled:var(--yc-color-private-white-300);--yc-color-base-float:var(--yc-color-private-white-1000);--yc-color-base-float-hover:var(--yc-color-private-black-150-solid);--yc-color-base-float-heavy:var(--yc-color-private-black-700-solid);--yc-color-base-float-accent:var(--yc-color-private-white-1000);--yc-color-base-float-accent-hover:var(--yc-color-private-white-850);--yc-color-base-float-announcement:var(--yc-color-private-cool-grey-150-solid);--yc-color-base-modal:var(--yc-color-private-white-1000);--yc-color-line-generic:var(--yc-color-private-black-200);--yc-color-line-generic-hover:var(--yc-color-private-black-400);--yc-color-line-generic-active:var(--yc-color-private-black-700);--yc-color-line-generic-accent:var(--yc-color-private-black-300);--yc-color-line-generic-accent-hover:var(--yc-color-private-black-700);--yc-color-line-solid:var(--yc-color-private-black-200-solid);--yc-color-line-selection-hover:var(--yc-my-color-brand-light);--yc-color-line-selection-active:var(--yc-my-color-brand-normal);--yc-color-line-link:var(--yc-my-color-brand-normal);--yc-color-line-info:var(--yc-color-private-blue-450);--yc-color-line-positive:var(--yc-color-private-green-450);--yc-color-line-warning:var(--yc-color-private-yellow-600-solid);--yc-color-line-danger:var(--yc-color-private-red-450);--yc-color-line-misc:var(--yc-color-private-cool-grey-450);--yc-color-line-hint:var(--yc-color-private-blue-550);--yc-color-line-light:var(--yc-color-private-white-500);--yc-color-infographics-info-light:var(--yc-color-private-blue-50);--yc-color-infographics-positive-light:var(--yc-color-private-green-50);--yc-color-infographics-warning-light:var(--yc-color-private-orange-50);--yc-color-infographics-danger-light:var(--yc-color-private-red-50);--yc-color-infographics-misc-light:var(--yc-color-private-cool-grey-50);--yc-color-infographics-neutral-light:var(--yc-color-private-black-50);--yc-color-infographics-info-medium:var(--yc-color-private-blue-300);--yc-color-infographics-positive-medium:var(--yc-color-private-green-300);--yc-color-infographics-warning-medium:var(--yc-color-private-orange-300);--yc-color-infographics-danger-medium:var(--yc-color-private-red-300);--yc-color-infographics-misc-medium:var(--yc-color-private-cool-grey-300);--yc-color-infographics-neutral-medium:var(--yc-color-private-black-150);--yc-color-infographics-info-heavy:var(--yc-color-private-blue-550);--yc-color-infographics-positive-heavy:var(--yc-color-private-green-550);--yc-color-infographics-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-infographics-danger-heavy:var(--yc-color-private-red-550);--yc-color-infographics-misc-heavy:var(--yc-color-private-cool-grey-550);--yc-color-infographics-neutral-heavy:var(--yc-color-private-black-300);--yc-color-infographics-axis:var(--yc-color-private-black-150-solid);--yc-color-infographics-tooltip-bg:var(--yc-color-private-white-950);--yc-color-sfx-veil:var(--yc-color-private-black-450);--yc-color-sfx-shadow:var(--yc-color-private-black-300);--yc-color-sfx-shadow-heavy:var(--yc-color-private-black-600);--yc-color-sfx-shadow-light:var(--yc-color-private-black-100);--yc-color-sfx-fade:var(--yc-color-private-white-300);--yc-color-promo-base-silver:#edf2f7;--yc-color-promo-base-gold:#ffdb4d;--yc-color-promo-base-asphalt:#313538;--yc-color-promo-base-tomato:#ff5958;--yc-color-promo-base-copper:#ffab3b;--yc-color-promo-base-mint:#5ecf71;--yc-color-promo-base-sky:#49a0f6;--yc-color-promo-base-neon:#9f6fee;--yc-color-promo-highlight-silver:#edf2f7;--yc-color-promo-highlight-gold:#fff1b8;--yc-color-promo-highlight-asphalt:#eaebeb;--yc-color-promo-highlight-tomato:#ffdede;--yc-color-promo-highlight-copper:#ffe6c4;--yc-color-promo-highlight-mint:#ccf0d2;--yc-color-promo-highlight-sky:#d6e9fd;--yc-color-promo-highlight-neon:#ece2fc;--yc-color-promo-accent-silver:#969a9e;--yc-color-promo-accent-gold:#ffdb4d;--yc-color-promo-accent-asphalt:#313538;--yc-color-promo-accent-tomato:#ff5958;--yc-color-promo-accent-copper:#ffab3b;--yc-color-promo-accent-mint:#5ecf71;--yc-color-promo-accent-sky:#49a0f6;--yc-color-promo-accent-neon:#9f6fee;--yc-color-promo-accent-hover-silver:#727578;--yc-color-promo-accent-hover-gold:#edbe28;--yc-color-promo-accent-hover-asphalt:#000;--yc-color-promo-accent-hover-tomato:#ee4f4e;--yc-color-promo-accent-hover-copper:#f28d04;--yc-color-promo-accent-hover-mint:#3bbc51;--yc-color-promo-accent-hover-sky:#2180de;--yc-color-promo-accent-hover-neon:#7b47cf;--yc-color-promo-text-silver:#969a9e;--yc-color-promo-text-gold:#ebb409;--yc-color-promo-text-asphalt:#313538;--yc-color-promo-text-tomato:#ff5958;--yc-color-promo-text-copper:#ffab3b;--yc-color-promo-text-mint:#5ecf71;--yc-color-promo-text-sky:#49a0f6;--yc-color-promo-text-neon:#9f6fee;--yc-color-scroll-track:var(--yc-color-base-background);--yc-color-scroll-handle:var(--yc-color-private-black-100);--yc-color-scroll-handle-hover:var(--yc-color-private-black-150);--yc-color-scroll-corner:var(--yc-color-private-black-100)}.yc-root_theme_dark-hc,.yc-root_theme_light-hc{background:var(--yc-color-base-background);color:var(--yc-color-text-primary)}.yc-root_theme_dark-hc{--yc-color-private-white-50:hsla(0,0%,100%,.05);--yc-color-private-white-70:hsla(0,0%,100%,.07);--yc-color-private-white-100:hsla(0,0%,100%,.1);--yc-color-private-white-150:hsla(0,0%,100%,.15);--yc-color-private-white-200:hsla(0,0%,100%,.2);--yc-color-private-white-250:hsla(0,0%,100%,.25);--yc-color-private-white-300:hsla(0,0%,100%,.3);--yc-color-private-white-350:hsla(0,0%,100%,.35);--yc-color-private-white-400:hsla(0,0%,100%,.4);--yc-color-private-white-450:hsla(0,0%,100%,.45);--yc-color-private-white-500:hsla(0,0%,100%,.5);--yc-color-private-white-550:hsla(0,0%,100%,.55);--yc-color-private-white-600:hsla(0,0%,100%,.6);--yc-color-private-white-650:hsla(0,0%,100%,.65);--yc-color-private-white-700:hsla(0,0%,100%,.7);--yc-color-private-white-750:hsla(0,0%,100%,.75);--yc-color-private-white-800:hsla(0,0%,100%,.8);--yc-color-private-white-850:hsla(0,0%,100%,.85);--yc-color-private-white-900:hsla(0,0%,100%,.9);--yc-color-private-white-950:hsla(0,0%,100%,.95);--yc-color-private-white-1000:#fff;--yc-color-private-white-opaque-150:rgba(56,57,60,.97);--yc-color-private-black-20:rgba(0,0,0,.02);--yc-color-private-black-50:rgba(0,0,0,.05);--yc-color-private-black-100:rgba(0,0,0,.1);--yc-color-private-black-150:rgba(0,0,0,.15);--yc-color-private-black-200:rgba(0,0,0,.2);--yc-color-private-black-250:rgba(0,0,0,.25);--yc-color-private-black-300:rgba(0,0,0,.3);--yc-color-private-black-350:rgba(0,0,0,.35);--yc-color-private-black-400:rgba(0,0,0,.4);--yc-color-private-black-450:rgba(0,0,0,.45);--yc-color-private-black-500:rgba(0,0,0,.5);--yc-color-private-black-550:rgba(0,0,0,.55);--yc-color-private-black-600:rgba(0,0,0,.6);--yc-color-private-black-650:rgba(0,0,0,.65);--yc-color-private-black-700:rgba(0,0,0,.7);--yc-color-private-black-750:rgba(0,0,0,.75);--yc-color-private-black-800:rgba(0,0,0,.8);--yc-color-private-black-850:rgba(0,0,0,.85);--yc-color-private-black-900:rgba(0,0,0,.9);--yc-color-private-black-950:rgba(0,0,0,.95);--yc-color-private-black-1000:#000;--yc-color-private-black-rock-850:#2d2c33;--yc-color-private-black-rock-950:#222326;--yc-color-private-white-20-solid:#26272a;--yc-color-private-white-50-solid:#2d2e31;--yc-color-private-white-100-solid:#38393c;--yc-color-private-white-150-solid:#434447;--yc-color-private-white-200-solid:#4e4f51;--yc-color-private-white-250-solid:#595a5c;--yc-color-private-white-300-solid:#646567;--yc-color-private-white-350-solid:#6f7072;--yc-color-private-white-400-solid:#7a7b7d;--yc-color-private-white-450-solid:#858688;--yc-color-private-white-500-solid:#909193;--yc-color-private-white-550-solid:#9c9c9d;--yc-color-private-white-600-solid:#a7a7a8;--yc-color-private-white-650-solid:#b2b2b3;--yc-color-private-white-700-solid:#bdbdbe;--yc-color-private-white-750-solid:#c8c8c9;--yc-color-private-white-800-solid:#d3d3d4;--yc-color-private-white-850-solid:#dededf;--yc-color-private-white-900-solid:#e9e9e9;--yc-color-private-white-950-solid:#f4f4f4;--yc-color-private-white-1000-solid:#fff;--yc-color-private-blue-50:rgba(98,146,255,.05);--yc-color-private-blue-100:rgba(98,146,255,.1);--yc-color-private-blue-150:rgba(98,146,255,.2);--yc-color-private-blue-200:rgba(98,146,255,.3);--yc-color-private-blue-250:rgba(98,146,255,.5);--yc-color-private-blue-300:rgba(98,146,255,.5);--yc-color-private-blue-350:rgba(98,146,255,.6);--yc-color-private-blue-400:rgba(98,146,255,.7);--yc-color-private-blue-450:rgba(98,146,255,.8);--yc-color-private-blue-500:rgba(98,146,255,.9);--yc-color-private-blue-550:#6292ff;--yc-color-private-blue-700:#91b3ff;--yc-color-private-blue-850:#c0d3ff;--yc-color-private-blue-50-solid:#252931;--yc-color-private-blue-100-solid:#282e3c;--yc-color-private-blue-150-solid:#2f3951;--yc-color-private-blue-200-solid:#354467;--yc-color-private-blue-250-solid:#3c4f7d;--yc-color-private-blue-300-solid:#425b93;--yc-color-private-blue-350-solid:#4866a8;--yc-color-private-blue-400-solid:#4f71be;--yc-color-private-blue-450-solid:#557cd4;--yc-color-private-blue-500-solid:#5c87e9;--yc-color-private-blue-550-solid:#6292ff;--yc-color-private-blue-600-solid:#729dff;--yc-color-private-blue-650-solid:#81a8ff;--yc-color-private-blue-700-solid:#91b3ff;--yc-color-private-blue-750-solid:#a1beff;--yc-color-private-blue-800-solid:#b1c8ff;--yc-color-private-blue-850-solid:#c0d3ff;--yc-color-private-blue-900-solid:#d0deff;--yc-color-private-blue-950-solid:#dfe9ff;--yc-color-private-blue-1000-solid:#eff4ff;--yc-color-private-green-50:rgba(91,181,87,.05);--yc-color-private-green-100:rgba(91,181,87,.1);--yc-color-private-green-150:rgba(91,181,87,.2);--yc-color-private-green-200:rgba(91,181,87,.3);--yc-color-private-green-250:rgba(91,181,87,.4);--yc-color-private-green-300:rgba(91,181,87,.5);--yc-color-private-green-350:rgba(91,181,87,.6);--yc-color-private-green-400:rgba(91,181,87,.7);--yc-color-private-green-450:rgba(91,181,87,.8);--yc-color-private-green-500:rgba(91,181,87,.9);--yc-color-private-green-550:#5bb557;--yc-color-private-green-50-solid:#252a28;--yc-color-private-green-100-solid:#28322b;--yc-color-private-green-150-solid:#2d4030;--yc-color-private-green-200-solid:#334f35;--yc-color-private-green-250-solid:#395d3a;--yc-color-private-green-300-solid:#3f6c3f;--yc-color-private-green-350-solid:#447b43;--yc-color-private-green-400-solid:#4a8948;--yc-color-private-green-450-solid:#50984d;--yc-color-private-green-500-solid:#55a652;--yc-color-private-green-550-solid:#5bb557;--yc-color-private-green-600-solid:#6bbc68;--yc-color-private-green-650-solid:#7cc479;--yc-color-private-green-700-solid:#8ccb89;--yc-color-private-green-750-solid:#9dd39a;--yc-color-private-green-800-solid:#addaab;--yc-color-private-green-850-solid:#bde1bc;--yc-color-private-green-900-solid:#cee9cd;--yc-color-private-green-950-solid:#def0dd;--yc-color-private-green-1000-solid:#eff8ee;--yc-color-private-yellow-700:#e0bd34;--yc-color-private-yellow-50:rgba(255,203,0,.05);--yc-color-private-yellow-100:rgba(255,203,0,.1);--yc-color-private-yellow-150:rgba(255,203,0,.2);--yc-color-private-yellow-200:rgba(255,203,0,.3);--yc-color-private-yellow-250:rgba(255,203,0,.4);--yc-color-private-yellow-300:rgba(255,203,0,.5);--yc-color-private-yellow-350:rgba(255,203,0,.6);--yc-color-private-yellow-400:rgba(255,203,0,.7);--yc-color-private-yellow-450:rgba(255,203,0,.8);--yc-color-private-yellow-500:rgba(255,203,0,.9);--yc-color-private-yellow-550:#ffcb00;--yc-color-private-yellow-50-solid:#2d2b24;--yc-color-private-yellow-100-solid:#383422;--yc-color-private-yellow-150-solid:#4e451e;--yc-color-private-yellow-200-solid:#64551b;--yc-color-private-yellow-250-solid:#7a6617;--yc-color-private-yellow-300-solid:#907713;--yc-color-private-yellow-350-solid:#a7880f;--yc-color-private-yellow-400-solid:#bd990b;--yc-color-private-yellow-450-solid:#d3a908;--yc-color-private-yellow-500-solid:#e9ba04;--yc-color-private-yellow-550-solid:#ffcb00;--yc-color-private-yellow-600-solid:#ffd01a;--yc-color-private-yellow-650-solid:#ffd533;--yc-color-private-yellow-700-solid:#ffdb4c;--yc-color-private-yellow-750-solid:#ffe066;--yc-color-private-yellow-800-solid:#ffe580;--yc-color-private-yellow-850-solid:#ffea99;--yc-color-private-yellow-900-solid:#ffefb3;--yc-color-private-yellow-950-solid:#fff5cc;--yc-color-private-yellow-1000-solid:#fffae5;--yc-color-private-red-50:rgba(232,73,69,.05);--yc-color-private-red-100:rgba(232,73,69,.1);--yc-color-private-red-150:rgba(232,73,69,.2);--yc-color-private-red-200:rgba(232,73,69,.3);--yc-color-private-red-250:rgba(232,73,69,.4);--yc-color-private-red-300:rgba(232,73,69,.5);--yc-color-private-red-350:rgba(232,73,69,.6);--yc-color-private-red-400:rgba(232,73,69,.7);--yc-color-private-red-450:rgba(232,73,69,.8);--yc-color-private-red-500:rgba(232,73,69,.9);--yc-color-private-red-550:#e84945;--yc-color-private-red-50-solid:#2c2528;--yc-color-private-red-100-solid:#362729;--yc-color-private-red-150-solid:#4a2b2c;--yc-color-private-red-200-solid:#5d2e2f;--yc-color-private-red-250-solid:#713233;--yc-color-private-red-300-solid:#853636;--yc-color-private-red-350-solid:#993a39;--yc-color-private-red-400-solid:#ac3d3c;--yc-color-private-red-450-solid:#c0413f;--yc-color-private-red-500-solid:#d44542;--yc-color-private-red-550-solid:#e84945;--yc-color-private-red-600-solid:#ea5b58;--yc-color-private-red-650-solid:#ec6d6b;--yc-color-private-red-700-solid:#ef7f7d;--yc-color-private-red-750-solid:#f19290;--yc-color-private-red-800-solid:#f3a4a2;--yc-color-private-red-850-solid:#f6b6b5;--yc-color-private-red-900-solid:#f8c8c7;--yc-color-private-red-950-solid:#fadbda;--yc-color-private-red-1000-solid:#fdedec;--yc-color-private-purple-50:rgba(223,46,243,.05);--yc-color-private-purple-100:rgba(223,46,243,.1);--yc-color-private-purple-150:rgba(223,46,243,.2);--yc-color-private-purple-200:rgba(223,46,243,.3);--yc-color-private-purple-250:rgba(223,46,243,.4);--yc-color-private-purple-300:rgba(223,46,243,.5);--yc-color-private-purple-350:rgba(223,46,243,.6);--yc-color-private-purple-400:rgba(223,46,243,.7);--yc-color-private-purple-450:rgba(223,46,243,.8);--yc-color-private-purple-500:rgba(223,46,243,.9);--yc-color-private-purple-550:#df2ef3;--yc-color-private-purple-50-solid:#2b2430;--yc-color-private-purple-100-solid:#35243b;--yc-color-private-purple-150-solid:#48254f;--yc-color-private-purple-200-solid:#5b2664;--yc-color-private-purple-250-solid:#6e2778;--yc-color-private-purple-300-solid:#80288d;--yc-color-private-purple-350-solid:#9329a1;--yc-color-private-purple-400-solid:#a62ab6;--yc-color-private-purple-450-solid:#b92bca;--yc-color-private-purple-500-solid:#cc2ddf;--yc-color-private-purple-550-solid:#df2ef3;--yc-color-private-purple-600-solid:#e243f5;--yc-color-private-purple-650-solid:#e558f6;--yc-color-private-purple-700-solid:#e86cf7;--yc-color-private-purple-750-solid:#ec81f8;--yc-color-private-purple-800-solid:#ef96f9;--yc-color-private-purple-850-solid:#f2abfa;--yc-color-private-purple-900-solid:#f5c0fc;--yc-color-private-purple-950-solid:#f9d5fd;--yc-color-private-purple-1000-solid:#fceafe;--yc-color-private-cool-grey-50:rgba(96,128,156,.05);--yc-color-private-cool-grey-100:rgba(96,128,156,.1);--yc-color-private-cool-grey-150:rgba(96,128,156,.2);--yc-color-private-cool-grey-200:rgba(96,128,156,.3);--yc-color-private-cool-grey-250:rgba(96,128,156,.4);--yc-color-private-cool-grey-300:rgba(96,128,156,.5);--yc-color-private-cool-grey-350:rgba(96,128,156,.6);--yc-color-private-cool-grey-400:rgba(96,128,156,.7);--yc-color-private-cool-grey-450:rgba(96,128,156,.8);--yc-color-private-cool-grey-500:rgba(96,128,156,.9);--yc-color-private-cool-grey-550:#60809c;--yc-color-private-cool-grey-50-solid:#25282c;--yc-color-private-cool-grey-100-solid:#282c32;--yc-color-private-cool-grey-150-solid:#2e363e;--yc-color-private-cool-grey-200-solid:#353f49;--yc-color-private-cool-grey-250-solid:#3b4855;--yc-color-private-cool-grey-300-solid:#415161;--yc-color-private-cool-grey-350-solid:#475b6d;--yc-color-private-cool-grey-400-solid:#4d6479;--yc-color-private-cool-grey-450-solid:#546d84;--yc-color-private-cool-grey-500-solid:#5a7790;--yc-color-private-cool-grey-550-solid:#60809c;--yc-color-private-cool-grey-600-solid:#708da6;--yc-color-private-cool-grey-650-solid:#8099b0;--yc-color-private-cool-grey-700-solid:#90a6ba;--yc-color-private-cool-grey-750-solid:#a0b3c3;--yc-color-private-cool-grey-800-solid:#b0bfcd;--yc-color-private-cool-grey-850-solid:#bfccd7;--yc-color-private-cool-grey-900-solid:#cfd9e1;--yc-color-private-cool-grey-950-solid:#dfe6eb;--yc-color-private-cool-grey-1000-solid:#eff2f5;--yc-color-private-orange-50:rgba(200,99,12,.05);--yc-color-private-orange-100:rgba(200,99,12,.1);--yc-color-private-orange-150:rgba(200,99,12,.2);--yc-color-private-orange-200:rgba(200,99,12,.3);--yc-color-private-orange-250:rgba(200,99,12,.4);--yc-color-private-orange-300:rgba(200,99,12,.5);--yc-color-private-orange-350:rgba(200,99,12,.6);--yc-color-private-orange-400:rgba(200,99,12,.7);--yc-color-private-orange-450:rgba(200,99,12,.8);--yc-color-private-orange-500:rgba(200,99,12,.9);--yc-color-private-orange-550:#c8630c;--yc-color-private-orange-50-solid:#2a2625;--yc-color-private-orange-100-solid:#332923;--yc-color-private-orange-150-solid:#433021;--yc-color-private-orange-200-solid:#54361e;--yc-color-private-orange-250-solid:#643d1c;--yc-color-private-orange-300-solid:#754319;--yc-color-private-orange-350-solid:#864916;--yc-color-private-orange-400-solid:#965014;--yc-color-private-orange-450-solid:#a75611;--yc-color-private-orange-500-solid:#b75d0f;--yc-color-private-orange-550-solid:#c8630c;--yc-color-private-orange-600-solid:#ce7324;--yc-color-private-orange-650-solid:#d3823d;--yc-color-private-orange-700-solid:#d89255;--yc-color-private-orange-750-solid:#dea16d;--yc-color-private-orange-800-solid:#e3b185;--yc-color-private-orange-850-solid:#e9c19e;--yc-color-private-orange-900-solid:#efd0b6;--yc-color-private-orange-950-solid:#f4e0ce;--yc-color-private-orange-1000-solid:#faefe7;--yc-my-color-brand-normal:var(--yc-color-private-blue-450-solid);--yc-my-color-brand-normal-hover:var(--yc-color-private-blue-650-solid);--yc-my-color-brand-light:var(--yc-color-private-blue-300);--yc-my-color-brand-selection:var(--yc-color-private-blue-350);--yc-my-color-brand-selection-hover:var(--yc-color-private-blue-600-solid);--yc-my-color-brand-link:var(--yc-color-private-blue-550);--yc-my-color-brand-link-hover:var(--yc-color-private-blue-750-solid);--yc-my-color-brand-text:var(--yc-color-private-blue-850-solid);--yc-my-color-brand-text-contrast:var(--yc-color-text-light-primary);--yc-my-color-brand-link-visited:var(--yc-color-private-purple-650-solid);--yc-my-color-brand-link-visited-hover:var(--yc-color-private-purple-800-solid);--yc-color-text-primary:var(--yc-color-private-white-1000);--yc-color-text-complementary:var(--yc-color-private-white-800);--yc-color-text-secondary:var(--yc-color-private-white-600);--yc-color-text-hint:var(--yc-color-private-white-400);--yc-color-text-info:var(--yc-color-private-blue-600-solid);--yc-color-text-positive:var(--yc-color-private-green-600-solid);--yc-color-text-warning:var(--yc-color-private-yellow-600-solid);--yc-color-text-danger:var(--yc-color-private-red-600-solid);--yc-color-text-utility:var(--yc-color-private-purple-600-solid);--yc-color-text-misc:var(--yc-color-private-cool-grey-600-solid);--yc-color-text-info-heavy:var(--yc-color-private-blue-850-solid);--yc-color-text-positive-heavy:var(--yc-color-private-green-850-solid);--yc-color-text-warning-heavy:var(--yc-color-private-yellow-850-solid);--yc-color-text-danger-heavy:var(--yc-color-private-red-850-solid);--yc-color-text-utility-heavy:var(--yc-color-private-purple-850-solid);--yc-color-text-misc-heavy:var(--yc-color-private-cool-grey-850-solid);--yc-color-text-special:var(--yc-my-color-brand-normal);--yc-color-text-link:var(--yc-my-color-brand-link);--yc-color-text-link-hover:var(--yc-my-color-brand-link-hover);--yc-color-text-link-visited:var(--yc-my-color-brand-link-visited);--yc-color-text-link-visited-hover:var(--yc-my-color-brand-link-visited-hover);--yc-color-text-yandex-red:var(--yc-color-private-red-550);--yc-color-text-dark-primary:var(--yc-color-private-black-1000);--yc-color-text-dark-complementary:var(--yc-color-private-black-800);--yc-color-text-dark-secondary:var(--yc-color-private-black-600);--yc-color-text-light-primary:var(--yc-color-private-white-1000);--yc-color-text-light-complementary:var(--yc-color-private-white-800);--yc-color-text-light-secondary:var(--yc-color-private-white-600);--yc-color-text-light-hint:var(--yc-color-private-white-400);--yc-color-text-inverted-primary:var(--yc-color-private-black-1000);--yc-color-text-inverted-complementary:var(--yc-color-private-black-800);--yc-color-text-inverted-secondary:var(--yc-color-private-black-600);--yc-color-text-inverted-hint:var(--yc-color-private-black-400);--yc-color-base-background:var(--yc-color-private-black-rock-950);--yc-color-base-generic:var(--yc-color-private-white-100);--yc-color-base-generic-hover:var(--yc-color-private-white-250);--yc-color-base-generic-medium:var(--yc-color-private-white-250);--yc-color-base-generic-medium-hover:var(--yc-color-private-white-400);--yc-color-base-generic-accent:var(--yc-color-private-white-200);--yc-color-base-generic-accent-disabled:var(--yc-color-private-white-150);--yc-color-base-generic-ultralight:var(--yc-color-private-white-50);--yc-color-base-simple-hover:var(--yc-color-private-white-250);--yc-color-base-simple-hover-solid:var(--yc-color-private-white-250-solid);--yc-color-base-selection:var(--yc-my-color-brand-selection);--yc-color-base-selection-hover:var(--yc-my-color-brand-selection-hover);--yc-color-base-special:var(--yc-my-color-brand-normal);--yc-color-base-special-hover:var(--yc-my-color-brand-normal-hover);--yc-color-base-action:var(--yc-color-base-special);--yc-color-base-action-hover:var(--yc-color-base-special-hover);--yc-color-base-info:var(--yc-color-private-blue-250);--yc-color-base-info-hover:var(--yc-color-private-blue-400);--yc-color-base-positive:var(--yc-color-private-green-250);--yc-color-base-positive-hover:var(--yc-color-private-green-400);--yc-color-base-warning:var(--yc-color-private-yellow-250);--yc-color-base-warning-hover:var(--yc-color-private-yellow-400);--yc-color-base-danger:var(--yc-color-private-red-250);--yc-color-base-danger-hover:var(--yc-color-private-red-400);--yc-color-base-misc:var(--yc-color-private-cool-grey-250);--yc-color-base-misc-hover:var(--yc-color-private-cool-grey-400);--yc-color-base-neutral:var(--yc-color-private-white-100);--yc-color-base-neutral-hover:var(--yc-color-private-white-250);--yc-color-base-positive-medium:var(--yc-color-private-green-350);--yc-color-base-positive-medium-hover:var(--yc-color-private-green-400);--yc-color-base-info-heavy:var(--yc-color-private-blue-450);--yc-color-base-positive-heavy:var(--yc-color-private-green-450);--yc-color-base-warning-heavy:var(--yc-color-private-yellow-450);--yc-color-base-warning-heavy-hover:var(--yc-color-private-yellow-700);--yc-color-base-danger-heavy:var(--yc-color-private-red-450);--yc-color-base-danger-heavy-hover:var(--yc-color-private-red-450);--yc-color-base-misc-heavy:var(--yc-color-private-cool-grey-450);--yc-color-base-misc-heavy-hover:var(--yc-color-private-cool-grey-550);--yc-color-base-light:var(--yc-color-private-white-850);--yc-color-base-light-hover:var(--yc-color-private-white-700);--yc-color-base-light-simple-hover:var(--yc-color-private-white-150);--yc-color-base-light-disabled:var(--yc-color-private-white-150);--yc-color-base-light-accent-disabled:var(--yc-color-private-white-300);--yc-color-base-float:var(--yc-color-private-white-100-solid);--yc-color-base-float-hover:var(--yc-color-private-white-200-solid);--yc-color-base-float-heavy:var(--yc-color-private-white-200-solid);--yc-color-base-float-accent:var(--yc-color-private-white-300-solid);--yc-color-base-float-accent-hover:var(--yc-color-private-white-400-solid);--yc-color-base-float-announcement:var(--yc-color-private-white-200-solid);--yc-color-base-modal:var(--yc-color-private-black-rock-850);--yc-color-line-generic:var(--yc-color-private-white-150);--yc-color-line-generic-hover:var(--yc-color-private-white-250);--yc-color-line-generic-active:var(--yc-color-private-white-600);--yc-color-line-generic-accent:var(--yc-color-private-white-350);--yc-color-line-generic-accent-hover:var(--yc-color-private-white-800);--yc-color-line-solid:var(--yc-color-private-white-150-solid);--yc-color-line-selection-hover:var(--yc-my-color-brand-light);--yc-color-line-selection-active:var(--yc-my-color-brand-normal);--yc-color-line-link:var(--yc-my-color-brand-normal);--yc-color-line-info:var(--yc-color-private-blue-550);--yc-color-line-positive:var(--yc-color-private-green-550);--yc-color-line-warning:var(--yc-color-private-yellow-100);--yc-color-line-danger:var(--yc-color-private-red-550);--yc-color-line-misc:var(--yc-color-private-cool-grey-550);--yc-color-line-hint:var(--yc-color-private-blue-550);--yc-color-line-light:var(--yc-color-private-white-500);--yc-color-infographics-info-light:var(--yc-color-private-blue-150);--yc-color-infographics-positive-light:var(--yc-color-private-green-150);--yc-color-infographics-warning-light:var(--yc-color-private-orange-150);--yc-color-infographics-danger-light:var(--yc-color-private-red-150);--yc-color-infographics-misc-light:var(--yc-color-private-cool-grey-150);--yc-color-infographics-neutral-light:var(--yc-color-private-white-150);--yc-color-infographics-info-medium:var(--yc-color-private-blue-300);--yc-color-infographics-positive-medium:var(--yc-color-private-green-300);--yc-color-infographics-warning-medium:var(--yc-color-private-orange-300);--yc-color-infographics-danger-medium:var(--yc-color-private-red-300);--yc-color-infographics-misc-medium:var(--yc-color-private-cool-grey-300);--yc-color-infographics-neutral-medium:var(--yc-color-private-white-150);--yc-color-infographics-info-heavy:var(--yc-color-private-blue-550);--yc-color-infographics-positive-heavy:var(--yc-color-private-green-550);--yc-color-infographics-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-infographics-danger-heavy:var(--yc-color-private-red-550);--yc-color-infographics-misc-heavy:var(--yc-color-private-cool-grey-550);--yc-color-infographics-neutral-heavy:var(--yc-color-private-white-300);--yc-color-infographics-axis:var(--yc-color-private-white-150-solid);--yc-color-infographics-tooltip-bg:var(--yc-color-private-white-opaque-150);--yc-color-sfx-veil:var(--yc-color-private-black-700);--yc-color-sfx-shadow:var(--yc-color-private-black-200);--yc-color-sfx-shadow-heavy:var(--yc-color-private-black-400);--yc-color-sfx-shadow-light:var(--yc-color-private-black-100);--yc-color-sfx-fade:var(--yc-color-private-white-250);--yc-color-promo-base-silver:#bcc0c4;--yc-color-promo-base-gold:#ffde5d;--yc-color-promo-base-asphalt:#474d52;--yc-color-promo-base-tomato:#ff6b6a;--yc-color-promo-base-copper:#ffb95a;--yc-color-promo-base-mint:#7fd68e;--yc-color-promo-base-sky:#69b4ff;--yc-color-promo-base-neon:#b384ff;--yc-color-promo-highlight-silver:#616366;--yc-color-promo-highlight-gold:#99832e;--yc-color-promo-highlight-asphalt:#5d656b;--yc-color-promo-highlight-tomato:#998585;--yc-color-promo-highlight-copper:#7f7262;--yc-color-promo-highlight-mint:#758978;--yc-color-promo-highlight-sky:#94a2af;--yc-color-promo-highlight-neon:#aea6ba;--yc-color-scroll-track:var(--yc-color-base-background);--yc-color-scroll-handle:var(--yc-color-private-white-150);--yc-color-scroll-handle-hover:var(--yc-color-private-white-250);--yc-color-scroll-corner:var(--yc-color-private-white-150)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar){scrollbar-color:var(--yc-color-scroll-handle) var(--yc-color-scroll-track);scrollbar-width:var(--yc-scrollbar-width)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar{background:var(--yc-color-scroll-track);height:var(--yc-scrollbar-width);width:var(--yc-scrollbar-width)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar-track,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar-track{background:var(--yc-color-scroll-track)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar-corner,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar-corner{background:var(--yc-color-scroll-corner)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar-thumb,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar-thumb{background:var(--yc-color-scroll-handle)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar-thumb:hover,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar-thumb:hover{background:var(--yc-color-scroll-handle-hover)}@-webkit-keyframes yc-loading-animation{0%{background-position:-12px 0}to{background-position:0 0}}@keyframes yc-loading-animation{0%{background-position:-12px 0}to{background-position:0 0}}
+/*# sourceMappingURL=main.a0419d3f.css.map*/ \ No newline at end of file
diff --git a/ydb/core/viewer/monitoring/static/css/main.ff5b549d.css b/ydb/core/viewer/monitoring/static/css/main.ff5b549d.css
deleted file mode 100644
index dd470deea2..0000000000
--- a/ydb/core/viewer/monitoring/static/css/main.ff5b549d.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@charset "UTF-8";@import url(https://fonts.googleapis.com/css2?family=Rubik&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--data-table-header-vertical-padding:5px;--data-table-cell-vertical-padding:5px;--data-table-cell-horizontal-padding:10px;--data-table-cell-border-padding:var(--data-table-cell-horizontal-padding);--data-table-cell-align:top;--data-table-head-align:top;--data-table-row-height:30px;--data-table-sort-icon-space:18px;--data-table-sort-icon-opacity-inactive:0.15;--data-table-sort-icon-color:inherit}.data-table{box-sizing:border-box;position:relative}.data-table__box{box-sizing:border-box;height:100%;width:100%}.data-table__box_sticky-head_moving{overflow:visible;position:relative;z-index:0}.data-table__box_sticky-head_moving .data-table__th{border-bottom:0;border-top:0;padding-bottom:0;padding-top:0}.data-table__box_sticky-head_moving .data-table__head-cell{display:block;height:0;overflow:hidden}.data-table__box_sticky-head_moving .data-table__row_header-data{visibility:hidden}.data-table__box_sticky-footer_fixed,.data-table__box_sticky-head_fixed{overflow:auto}.data-table__table{border-collapse:collapse;table-layout:fixed}.data-table__table_sticky{background:var(--data-table-color-base);width:100%}.data-table__row{height:30px;height:var(--data-table-row-height)}.data-table__th{border:1px solid var(--data-table-border-color);cursor:default;font-weight:500;padding:5px 10px;padding:var(--data-table-header-vertical-padding) var(--data-table-cell-horizontal-padding);position:relative;text-align:left;vertical-align:top;vertical-align:var(--data-table-head-align)}.data-table__th_sortable{cursor:pointer}.data-table__th_sortable .data-table__head-cell{padding-right:18px;padding-right:var(--data-table-sort-icon-space)}.data-table__th_sortable.data-table__th_align_right .data-table__head-cell{padding-left:18px;padding-left:var(--data-table-sort-icon-space);padding-right:0}.data-table__th_sortable.data-table__th_align_right .data-table__sort-icon{left:0;right:auto;-webkit-transform:translateY(-50%) scaleX(-1);transform:translateY(-50%) scaleX(-1)}.data-table__td{border:1px solid var(--data-table-border-color);overflow:hidden;padding:5px 10px;padding:var(--data-table-cell-vertical-padding) var(--data-table-cell-horizontal-padding);text-overflow:ellipsis;vertical-align:top;vertical-align:var(--data-table-cell-align);white-space:nowrap}.data-table__td_index,.data-table__th_index{text-align:right}.data-table__td_align_left,.data-table__th_align_left{text-align:left}.data-table__td_align_center,.data-table__th_align_center{text-align:center}.data-table__td_align_right,.data-table__th_align_right{text-align:right}.data-table__td:first-child,.data-table__th:first-child{padding-left:10px;padding-left:var(--data-table-cell-border-padding)}.data-table__td:last-child,.data-table__th:last-child{padding-right:10px;padding-right:var(--data-table-cell-border-padding)}.data-table__index{text-align:right}.data-table__head-cell{box-sizing:border-box;display:inline-block;max-width:100%;overflow:hidden;position:relative;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.data-table__error{padding:20px;white-space:pre-wrap}.data-table__sort-icon{color:inherit;color:var(--data-table-sort-icon-color);display:inline-flex;position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.data-table__sort-icon:after{content:attr(data-index);font-size:8px;left:100%;position:absolute;top:-5px}.data-table__sort-icon_shadow{opacity:.15;opacity:var(--data-table-sort-icon-opacity-inactive)}.data-table__sort-icon_shadow:after{content:none}.data-table__icon{vertical-align:top}.data-table__no-data{background:var(--data-table-color-stripe)}.data-table__sticky_fixed{left:0;overflow:hidden;position:absolute;right:0;z-index:1}.data-table__sticky_fixed.data-table__sticky_head{top:0}.data-table__sticky_fixed.data-table__sticky_footer{bottom:0}.data-table__sticky_moving{margin-bottom:-1px;position:-webkit-sticky;position:sticky;z-index:1}.data-table_striped-rows .data-table__row_odd{background:var(--data-table-color-stripe)}.data-table_highlight-rows .data-table__row:hover{background:var(--data-table-color-hover-area)}.data-table_header_multiline .data-table__head-cell{white-space:normal}.data-table_header_pre .data-table__head-cell{white-space:pre}.data-table__foot{background:var(--data-table-color-footer-area)}.data-table__foot_has-sticky-footer_moving{visibility:hidden}.data-table_theme_yandex-cloud{--data-table-color-base:var( --yc-color-base-background,var(--yc-color-base,var(--color-base)) );--data-table-color-stripe:var( --yc-color-base-generic-ultralight,var(--yc-color-base-area,var(--color-base-area)) );--data-table-border-color:var( --yc-color-base-generic-hover,var(--yc-color-contrast-15-solid,var(--color-contrast-15-solid)) );--data-table-color-hover-area:var( --yc-color-base-simple-hover,var(--yc-color-hover-area,var(--color-hover-area)) );--data-table-color-footer-area:var(--data-table-color-base)}.data-table_theme_legacy{--data-table-color-base:#fff;--data-table-color-stripe:rgba(0,0,0,.03);--data-table-border-color:#ddd;--data-table-color-hover-area:#ffeba0;--data-table-color-footer-area:var(--data-table-color-base)}.yc-toaster{align-items:flex-end;bottom:0;display:flex;flex-direction:column;position:fixed;right:10px;width:var(--yc-toaster-desktop-width);z-index:100000}.yc-toaster_mobile{left:50%;-webkit-transform:translate(-50%);transform:translate(-50%);width:calc(100% - 20px)}.yc-root{--yc-toaster-desktop-width:312px}.yc-toast{--yc-toaster-padding:16px 16px 16px 48px;background-color:var(--yc-color-base-background);border-radius:8px;box-shadow:0 0 15px var(--yc-color-sfx-shadow);box-sizing:border-box;font-size:13px;margin-bottom:10px;overflow:hidden;padding:var(--yc-toaster-padding);position:absolute;width:inherit;z-index:0}.yc-toast_mobile{width:100%}.yc-toast_appearing{height:0;margin-bottom:0;opacity:0;padding:0;transition:height .35s ease}.yc-toast_show-animation{-webkit-animation:toast-set-indents .35s ease forwards,toast-move-left .25s ease .35s forwards,toast-display-end .1ms .6s forwards;animation:toast-set-indents .35s ease forwards,toast-move-left .25s ease .35s forwards,toast-display-end .1ms .6s forwards}.yc-toast_show-animation.yc-toast_default{-webkit-animation:toast-set-symmetrical-indents .35s ease forwards,toast-move-left .25s ease .35s forwards,toast-display-end .1ms .6s forwards;animation:toast-set-symmetrical-indents .35s ease forwards,toast-move-left .25s ease .35s forwards,toast-display-end .1ms .6s forwards}.yc-toast_show-animation.yc-toast_mobile{-webkit-animation:toast-set-indents .35s ease forwards,toast-move-top .25s ease .35s forwards;animation:toast-set-indents .35s ease forwards,toast-move-top .25s ease .35s forwards}.yc-toast_show-animation.yc-toast_mobile.yc-toast_default{-webkit-animation:toast-set-symmetrical-indents .35s ease forwards,toast-move-top .25s ease .35s forwards;animation:toast-set-symmetrical-indents .35s ease forwards,toast-move-top .25s ease .35s forwards}.yc-toast_hide-animation{-webkit-animation:toast-move-right .25s ease forwards,toast-remove-height .35s ease .25s forwards,toast-hide-end .1ms .6s forwards;animation:toast-move-right .25s ease forwards,toast-remove-height .35s ease .25s forwards,toast-hide-end .1ms .6s forwards}.yc-toast_hide-animation.yc-toast_mobile{-webkit-animation:toast-move-bottom .25s ease forwards,toast-remove-height .35s ease .25s forwards,toast-hide-end .1ms .6s forwards;animation:toast-move-bottom .25s ease forwards,toast-remove-height .35s ease .25s forwards,toast-hide-end .1ms .6s forwards}.yc-toast_created{position:relative}.yc-toast_default{--yc-toaster-padding:16px;background-color:var(--yc-color-base-float)}.yc-toast_info .yc-toast__container:before{background-color:var(--yc-color-infographics-info-light)}.yc-toast_info .yc-toast__icon{color:var(--yc-color-infographics-info-heavy)}.yc-toast_success .yc-toast__container:before{background-color:var(--yc-color-infographics-positive-light)}.yc-toast_success .yc-toast__icon{color:var(--yc-color-infographics-positive-heavy)}.yc-toast_warning .yc-toast__container:before{background-color:var(--yc-color-base-warning)}.yc-toast_warning .yc-toast__icon{color:var(--yc-color-infographics-warning-heavy)}.yc-toast_error .yc-toast__container:before{background-color:var(--yc-color-infographics-danger-light)}.yc-toast_error .yc-toast__icon{color:var(--yc-color-infographics-danger-heavy)}.yc-toast .yc-toast__container{grid-row-gap:8px;display:grid;height:100%;row-gap:8px;width:100%}.yc-toast .yc-toast__container:before{content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.yc-toast__title{font-size:var(--yc-text-subheader-2-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-2-line-height);line-height:24px;margin:0;padding-right:28px}.yc-toast .yc-toast__icon{left:16px;position:absolute;top:16px}.yc-toast__action{margin-right:8px}.yc-toast .yc-toast__btn-close{position:absolute;right:14px;top:14px}@-webkit-keyframes toast-move-right{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes toast-move-right{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes toast-move-left{0%{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes toast-move-left{0%{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes toast-move-top{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes toast-move-top{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes toast-move-bottom{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes toast-move-bottom{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes toast-remove-height{to{height:0;margin-bottom:0;padding:0}}@keyframes toast-remove-height{to{height:0;margin-bottom:0;padding:0}}@-webkit-keyframes toast-set-indents{to{margin-bottom:10px;padding:var(--yc-toaster-padding)}}@keyframes toast-set-indents{to{margin-bottom:10px;padding:var(--yc-toaster-padding)}}@-webkit-keyframes toast-set-symmetrical-indents{to{margin-bottom:10px;padding:16px}}@keyframes toast-set-symmetrical-indents{to{margin-bottom:10px;padding:16px}}.yc-button{--yc-button-height:0;--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;-webkit-tap-highlight-color:rgba(0,0,0,0);background:none;background:transparent;border:none;box-sizing:border-box;color:inherit;cursor:pointer;display:inline-block;font-family:var(--yc-text-body-font-family);font-size:inherit;font-weight:400;height:var(--yc-button-height);line-height:var(--yc-button-height);margin:0;outline:none;overflow:visible;padding:0;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;-webkit-transform:scale(1);transform:scale(1);transition:color .15s linear,-webkit-transform .1s ease-out;transition:transform .1s ease-out,color .15s linear;transition:transform .1s ease-out,color .15s linear,-webkit-transform .1s ease-out;-webkit-user-select:none;user-select:none;white-space:nowrap}.yc-button:before{background-color:var(--yc-button-background-color);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:background-color .15s linear;z-index:-1}.yc-button:hover:before{background-color:var(--yc-button-background-color-hover)}.yc-button:focus:before{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-button:focus:not(:focus-visible):before{box-shadow:none}.yc-button:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;-webkit-transform:scale(1);transform:scale(1);transition:none;z-index:-1}.yc-button:active{-webkit-transform:scale(.96);transform:scale(.96);transition:none}.yc-button:active:after{-webkit-transform:scale(1.042);transform:scale(1.042)}.yc-button_size_s{--yc-button-height:24px;--yc-button-border-radius:var(--yc-border-radius-s);font-size:13px}.yc-button_size_s .yc-button__text{margin:0 10px}.yc-button_size_s .yc-button__icon{width:var(--yc-button-height)}.yc-button_size_s .yc-button__icon_side_left~.yc-button__text{margin-left:22px}.yc-button_size_s .yc-button__icon_side_right~.yc-button__text{margin-right:22px}.yc-button_size_m{--yc-button-height:28px;--yc-button-border-radius:var(--yc-border-radius-m);font-size:13px}.yc-button_size_m .yc-button__text{margin:0 13px}.yc-button_size_m .yc-button__icon{width:var(--yc-button-height)}.yc-button_size_m .yc-button__icon_side_left~.yc-button__text{margin-left:25px}.yc-button_size_m .yc-button__icon_side_right~.yc-button__text{margin-right:25px}.yc-button_size_l{--yc-button-height:36px;--yc-button-border-radius:var(--yc-border-radius-l);font-size:13px}.yc-button_size_l .yc-button__text{margin:0 18px}.yc-button_size_l .yc-button__icon{width:var(--yc-button-height)}.yc-button_size_l .yc-button__icon_side_left~.yc-button__text{margin-left:33px}.yc-button_size_l .yc-button__icon_side_right~.yc-button__text{margin-right:33px}.yc-button_size_xl{--yc-button-height:44px;--yc-button-border-radius:var(--yc-border-radius-xl);font-size:15px}.yc-button_size_xl .yc-button__text{margin:0 25px}.yc-button_size_xl .yc-button__icon{width:var(--yc-button-height)}.yc-button_size_xl .yc-button__icon_side_left~.yc-button__text{margin-left:40px}.yc-button_size_xl .yc-button__icon_side_right~.yc-button__text{margin-right:40px}.yc-button_view_normal{--yc-button-background-color:var(--yc-color-base-generic);--yc-button-background-color-hover:var(--yc-color-base-generic-hover)}.yc-button_view_normal,.yc-button_view_normal:active,.yc-button_view_normal:focus,.yc-button_view_normal:hover,.yc-button_view_normal:link,.yc-button_view_normal:visited{color:var(--yc-color-text-primary)}.yc-button_view_normal.yc-button_loading{--yc-button-loading-color-1:var(--yc-color-base-generic);--yc-button-loading-color-2:var(--yc-color-base-generic-hover)}.yc-button_view_normal.yc-button_selected{--yc-button-background-color:var(--yc-color-base-selection);--yc-button-background-color-hover:var(--yc-color-base-selection-hover)}.yc-button_view_normal.yc-button_selected,.yc-button_view_normal.yc-button_selected:active,.yc-button_view_normal.yc-button_selected:focus,.yc-button_view_normal.yc-button_selected:hover,.yc-button_view_normal.yc-button_selected:link,.yc-button_view_normal.yc-button_selected:visited{color:var(--yc-color-text-special);color:var(--yc-my-color-brand-text,var(--yc-color-text-special))}.yc-button_view_action{--yc-button-background-color:var(--yc-color-base-special);--yc-button-background-color-hover:var(--yc-color-base-special-hover)}.yc-button_view_action,.yc-button_view_action:active,.yc-button_view_action:focus,.yc-button_view_action:hover,.yc-button_view_action:link,.yc-button_view_action:visited{color:var(--yc-my-color-brand-text-contrast)}.yc-button_view_action.yc-button_loading{--yc-button-loading-color-1:var(--yc-color-base-special);--yc-button-loading-color-2:var(--yc-color-base-special-hover)}.yc-button_view_outlined,.yc-button_view_outlined-danger,.yc-button_view_outlined-info{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--yc-color-base-simple-hover)}.yc-button_view_outlined-danger.yc-button_loading,.yc-button_view_outlined-info.yc-button_loading,.yc-button_view_outlined.yc-button_loading{--yc-button-loading-color-1:transparent;--yc-button-loading-color-2:var(--yc-color-base-simple-hover)}.yc-button_view_outlined,.yc-button_view_outlined:active,.yc-button_view_outlined:focus,.yc-button_view_outlined:hover,.yc-button_view_outlined:link,.yc-button_view_outlined:visited{color:var(--yc-color-text-primary)}.yc-button_view_outlined:before{border:1px solid var(--yc-color-line-generic-accent)}.yc-button_view_outlined-info,.yc-button_view_outlined-info:active,.yc-button_view_outlined-info:focus,.yc-button_view_outlined-info:hover,.yc-button_view_outlined-info:link,.yc-button_view_outlined-info:visited{color:var(--yc-color-text-info)}.yc-button_view_outlined-info:before{border:1px solid var(--yc-color-line-info)}.yc-button_view_outlined-danger,.yc-button_view_outlined-danger:active,.yc-button_view_outlined-danger:focus,.yc-button_view_outlined-danger:hover,.yc-button_view_outlined-danger:link,.yc-button_view_outlined-danger:visited{color:var(--yc-color-text-danger)}.yc-button_view_outlined-danger:before{border:1px solid var(--yc-color-line-danger)}.yc-button_view_raised{--yc-button-background-color:var(--yc-color-base-float);--yc-button-background-color-hover:var(--yc-color-base-float-hover)}.yc-button_view_raised,.yc-button_view_raised:active,.yc-button_view_raised:focus,.yc-button_view_raised:hover,.yc-button_view_raised:link,.yc-button_view_raised:visited{color:var(--yc-color-text-primary)}.yc-button_view_raised:before{box-shadow:0 3px 5px var(--yc-color-sfx-shadow)}.yc-button_view_raised:focus:not(:focus-visible):before{box-shadow:0 3px 5px var(--yc-color-sfx-shadow)}.yc-button_view_raised:active:before{box-shadow:0 1px 2px var(--yc-color-sfx-shadow)}.yc-button_view_raised:active:focus:before{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-button_view_raised:active:focus:not(:focus-visible):before{box-shadow:0 1px 2px var(--yc-color-sfx-shadow)}.yc-button_view_raised.yc-button_loading{--yc-button-loading-color-1:var(--yc-color-base-float);--yc-button-loading-color-2:var(--yc-color-base-float-hover)}.yc-button_view_flat,.yc-button_view_flat-danger,.yc-button_view_flat-info,.yc-button_view_flat-secondary{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--yc-color-base-simple-hover)}.yc-button_view_flat-danger.yc-button_loading,.yc-button_view_flat-info.yc-button_loading,.yc-button_view_flat-secondary.yc-button_loading,.yc-button_view_flat.yc-button_loading{--yc-button-loading-color-1:transparent;--yc-button-loading-color-2:var(--yc-color-base-simple-hover)}.yc-button_view_flat,.yc-button_view_flat:active,.yc-button_view_flat:focus,.yc-button_view_flat:hover,.yc-button_view_flat:link,.yc-button_view_flat:visited{color:var(--yc-color-text-primary)}.yc-button_view_flat-info,.yc-button_view_flat-info:active,.yc-button_view_flat-info:focus,.yc-button_view_flat-info:hover,.yc-button_view_flat-info:link,.yc-button_view_flat-info:visited{color:var(--yc-color-text-info)}.yc-button_view_flat-danger,.yc-button_view_flat-danger:active,.yc-button_view_flat-danger:focus,.yc-button_view_flat-danger:hover,.yc-button_view_flat-danger:link,.yc-button_view_flat-danger:visited{color:var(--yc-color-text-danger)}.yc-button_view_flat-secondary,.yc-button_view_flat-secondary:active,.yc-button_view_flat-secondary:focus,.yc-button_view_flat-secondary:link,.yc-button_view_flat-secondary:visited{color:var(--yc-color-text-secondary)}.yc-button_view_flat-secondary:hover{color:var(--yc-color-text-primary)}.yc-button_view_normal-contrast{--yc-button-background-color:var(--yc-color-base-light);--yc-button-background-color-hover:var(--yc-color-base-light-hover)}.yc-button_view_normal-contrast,.yc-button_view_normal-contrast:active,.yc-button_view_normal-contrast:focus,.yc-button_view_normal-contrast:hover,.yc-button_view_normal-contrast:link,.yc-button_view_normal-contrast:visited{color:var(--yc-color-text-dark-primary)}.yc-button_view_normal-contrast.yc-button_loading{--yc-button-loading-color-1:var(--yc-color-base-light);--yc-button-loading-color-2:var(--yc-color-base-light-hover)}.yc-button_view_outlined-contrast{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--yc-color-base-light-simple-hover)}.yc-button_view_outlined-contrast,.yc-button_view_outlined-contrast:active,.yc-button_view_outlined-contrast:focus,.yc-button_view_outlined-contrast:hover,.yc-button_view_outlined-contrast:link,.yc-button_view_outlined-contrast:visited{color:var(--yc-color-text-light-primary)}.yc-button_view_outlined-contrast:before{border:1px solid var(--yc-color-line-light)}.yc-button_view_outlined-contrast.yc-button_loading{--yc-button-loading-color-1:transparent;--yc-button-loading-color-2:var(--yc-color-base-light-simple-hover)}.yc-button_view_flat-contrast{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--yc-color-base-light-simple-hover)}.yc-button_view_flat-contrast,.yc-button_view_flat-contrast:active,.yc-button_view_flat-contrast:focus,.yc-button_view_flat-contrast:hover,.yc-button_view_flat-contrast:link,.yc-button_view_flat-contrast:visited{color:var(--yc-color-text-light-primary)}.yc-button_view_flat-contrast.yc-button_loading{--yc-button-loading-color-1:transparent;--yc-button-loading-color-2:var(--yc-color-base-light-simple-hover)}.yc-button_view_flat-danger.yc-button_disabled:not(.yc-button_loading),.yc-button_view_flat-info.yc-button_disabled:not(.yc-button_loading),.yc-button_view_flat.yc-button_disabled:not(.yc-button_loading){--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;color:var(--yc-color-text-hint)}.yc-button_view_flat-contrast.yc-button_disabled:not(.yc-button_loading){--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;color:var(--yc-color-text-light-hint)}.yc-button_view_normal-contrast.yc-button_disabled:not(.yc-button_loading),.yc-button_view_outlined-contrast.yc-button_disabled:not(.yc-button_loading){--yc-button-background-color:var(--yc-color-base-light-disabled);--yc-button-background-color-hover:var(--yc-color-base-light-disabled);color:var(--yc-color-text-light-secondary)}.yc-button.yc-button_pin_round-round:before{border-radius:var(--yc-button-border-radius)}.yc-button.yc-button_pin_brick-brick:before{border-radius:0}.yc-button.yc-button_pin_clear-clear:before{border-left:0;border-radius:0;border-right:0}.yc-button.yc-button_pin_circle-circle:before{border-radius:100px}.yc-button.yc-button_pin_round-brick:before{border-radius:var(--yc-button-border-radius) 0 0 var(--yc-button-border-radius)}.yc-button.yc-button_pin_brick-round:before{border-radius:0 var(--yc-button-border-radius) var(--yc-button-border-radius) 0}.yc-button.yc-button_pin_round-clear:before{border-radius:var(--yc-button-border-radius) 0 0 var(--yc-button-border-radius);border-right:0}.yc-button.yc-button_pin_clear-round:before{border-left:0;border-radius:0 var(--yc-button-border-radius) var(--yc-button-border-radius) 0}.yc-button.yc-button_pin_brick-clear:before{border-radius:0;border-right:0}.yc-button.yc-button_pin_clear-brick:before{border-left:0;border-radius:0}.yc-button.yc-button_pin_circle-brick:before{border-radius:100px 0 0 100px}.yc-button.yc-button_pin_brick-circle:before{border-radius:0 100px 100px 0}.yc-button.yc-button_pin_circle-clear:before{border-radius:100px 0 0 100px;border-right:0}.yc-button.yc-button_pin_clear-circle:before{border-left:0;border-radius:0 100px 100px 0}.yc-button.yc-button_pin_round-round:after{border-radius:var(--yc-button-border-radius)}.yc-button.yc-button_pin_brick-brick:after{border-radius:0}.yc-button.yc-button_pin_clear-clear:after{border-left:0;border-radius:0;border-right:0}.yc-button.yc-button_pin_circle-circle:after{border-radius:100px}.yc-button.yc-button_pin_round-brick:after{border-radius:var(--yc-button-border-radius) 0 0 var(--yc-button-border-radius)}.yc-button.yc-button_pin_brick-round:after{border-radius:0 var(--yc-button-border-radius) var(--yc-button-border-radius) 0}.yc-button.yc-button_pin_round-clear:after{border-radius:var(--yc-button-border-radius) 0 0 var(--yc-button-border-radius);border-right:0}.yc-button.yc-button_pin_clear-round:after{border-left:0;border-radius:0 var(--yc-button-border-radius) var(--yc-button-border-radius) 0}.yc-button.yc-button_pin_brick-clear:after{border-radius:0;border-right:0}.yc-button.yc-button_pin_clear-brick:after{border-left:0;border-radius:0}.yc-button.yc-button_pin_circle-brick:after{border-radius:100px 0 0 100px}.yc-button.yc-button_pin_brick-circle:after{border-radius:0 100px 100px 0}.yc-button.yc-button_pin_circle-clear:after{border-radius:100px 0 0 100px;border-right:0}.yc-button.yc-button_pin_clear-circle:after{border-left:0;border-radius:0 100px 100px 0}.yc-button__text{display:inline-block;white-space:nowrap}.yc-button__icon{display:inline-block;height:100%;pointer-events:none;position:relative}.yc-button__icon:after{content:" ";visibility:hidden}.yc-button__icon-inner{align-items:center;bottom:0;display:flex;justify-content:center;left:0;right:0}.yc-button__icon-inner,.yc-button__icon_side_left,.yc-button__icon_side_right{position:absolute;top:0}.yc-button__icon_side_left{left:0}.yc-button__icon_side_right{right:0}.yc-button_disabled{cursor:default;pointer-events:none}.yc-button_disabled:not(.yc-button_loading){--yc-button-background-color:var(--yc-color-base-generic-accent-disabled);--yc-button-background-color-hover:var(--yc-color-base-generic-accent-disabled);color:var(--yc-color-text-hint)}.yc-button_disabled:not(.yc-button_loading):before,.yc-button_disabled:not(.yc-button_loading):hover:before{border:none}.yc-button_disabled:active{-webkit-transform:scale(1);transform:scale(1)}.yc-button_loading:before{-webkit-animation:yc-button-loading .5s linear infinite;animation:yc-button-loading .5s linear infinite;background-clip:padding-box;background-image:repeating-linear-gradient(-45deg,var(--yc-button-loading-color-1),var(--yc-button-loading-color-1) 4px,var(--yc-button-loading-color-2) 4px,var(--yc-button-loading-color-2) 8px);background-size:150%}.yc-button_width_auto{max-width:100%}.yc-button_width_max{width:100%}.yc-button_width_auto .yc-button__text,.yc-button_width_max .yc-button__text{display:block;overflow:hidden;text-overflow:ellipsis}@-webkit-keyframes yc-button-loading{0%{background-position:-12px 0}to{background-position:0 0}}@keyframes yc-button-loading{0%{background-position:-12px 0}to{background-position:0 0}}.yc-icon{color:inherit;line-height:0;vertical-align:top}.yc-action-tooltip__layout{box-sizing:border-box;max-width:300px}.yc-action-tooltip__heading{align-items:baseline;display:flex;justify-content:space-between}.yc-action-tooltip__title{color:var(--yc-color-text-light-primary)}.yc-action-tooltip__hotkey{margin-left:8px}.yc-action-tooltip__description{color:var(--yc-color-text-light-secondary);margin-top:4px}.yc-tooltip{pointer-events:none}.yc-tooltip:before{display:none}.yc-tooltip__content{background-color:var(--yc-color-base-float-heavy);border-radius:4px;color:var(--yc-color-text-light-primary);padding:6px 12px}.yc-popup{--yc-popup-background-color:var(--yc-color-base-float);--yc-popup-border-color:var(--yc-color-line-solid);--yc-popup-border-width:1px;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;background-color:var(--yc-popup-background-color);border-radius:4px;box-shadow:0 0 0 var(--yc-popup-border-width) var(--yc-popup-border-color),0 8px 20px var(--yc-popup-border-width) var(--yc-color-sfx-shadow);outline:none;position:relative}.yc-popup>.yc-popup__arrow+*,.yc-popup>:first-child:not(.yc-popup__arrow){border-top-left-radius:inherit;border-top-right-radius:inherit}.yc-popup>:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.yc-popup__arrow-content{display:flex;height:18px;overflow:hidden;position:relative;width:18px}.yc-popup__arrow-circle-wrapper{background-color:initial;height:9px;overflow:hidden;position:relative;width:9px}.yc-popup__arrow-circle{border-radius:50%;box-shadow:inset 0 0 0 calc(5px - var(--yc-popup-border-width)) var(--yc-popup-background-color),inset 0 0 0 5px var(--yc-popup-border-color);box-sizing:border-box;height:30px;position:absolute;width:28px}.yc-popup__arrow-circle_left{bottom:-4px;right:-5px}.yc-popup__arrow-circle_right{bottom:-4px;left:-5px}.yc-popup-wrapper{visibility:hidden;z-index:1000}.yc-popup-wrapper_exit_active,.yc-popup-wrapper_open{visibility:visible}.yc-popup-wrapper_exit_active[data-popper-placement*=bottom] .yc-popup{-webkit-animation-name:yc-popup-bottom;animation-name:yc-popup-bottom}.yc-popup-wrapper_exit_active[data-popper-placement*=top] .yc-popup{-webkit-animation-name:yc-popup-top;animation-name:yc-popup-top}.yc-popup-wrapper_exit_active[data-popper-placement*=left] .yc-popup{-webkit-animation-name:yc-popup-left;animation-name:yc-popup-left}.yc-popup-wrapper_exit_active[data-popper-placement*=right] .yc-popup{-webkit-animation-name:yc-popup-right;animation-name:yc-popup-right}.yc-popup-wrapper_appear_active[data-popper-placement*=bottom] .yc-popup,.yc-popup-wrapper_enter_active[data-popper-placement*=bottom] .yc-popup{-webkit-animation-name:yc-popup-bottom-open;animation-name:yc-popup-bottom-open}.yc-popup-wrapper_appear_active[data-popper-placement*=top] .yc-popup,.yc-popup-wrapper_enter_active[data-popper-placement*=top] .yc-popup{-webkit-animation-name:yc-popup-top-open;animation-name:yc-popup-top-open}.yc-popup-wrapper_appear_active[data-popper-placement*=left] .yc-popup,.yc-popup-wrapper_enter_active[data-popper-placement*=left] .yc-popup{-webkit-animation-name:yc-popup-left-open;animation-name:yc-popup-left-open}.yc-popup-wrapper_appear_active[data-popper-placement*=right] .yc-popup,.yc-popup-wrapper_enter_active[data-popper-placement*=right] .yc-popup{-webkit-animation-name:yc-popup-right-open;animation-name:yc-popup-right-open}.yc-popup-wrapper[data-popper-placement*=bottom] .yc-popup__arrow{top:-9px}.yc-popup-wrapper[data-popper-placement*=top] .yc-popup__arrow{bottom:-9px}.yc-popup-wrapper[data-popper-placement*=top] .yc-popup__arrow-content{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.yc-popup-wrapper[data-popper-placement*=left] .yc-popup__arrow{right:-9px}.yc-popup-wrapper[data-popper-placement*=left] .yc-popup__arrow-content{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.yc-popup-wrapper[data-popper-placement*=right] .yc-popup__arrow{left:-9px}.yc-popup-wrapper[data-popper-placement*=right] .yc-popup__arrow-content{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@-webkit-keyframes yc-popup-bottom{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes yc-popup-bottom{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes yc-popup-bottom-open{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes yc-popup-bottom-open{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes yc-popup-top{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}@keyframes yc-popup-top{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}@-webkit-keyframes yc-popup-top-open{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes yc-popup-top-open{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes yc-popup-left{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}}@keyframes yc-popup-left{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}}@-webkit-keyframes yc-popup-left-open{0%{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes yc-popup-left-open{0%{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes yc-popup-right{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes yc-popup-right{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes yc-popup-right-open{0%{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes yc-popup-right-open{0%{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}.yc-hotkey{border-radius:4px;padding:1px 5px}.yc-hotkey,.yc-hotkey kbd{font-family:var(--yc-text-body-font-family);font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height)}.yc-hotkey_view_light{background-color:var(--yc-color-base-generic)}.yc-hotkey_view_light .yc-hotkey__plus{color:var(--yc-color-text-hint)}.yc-hotkey_view_dark{background-color:var(--yc-color-base-light-simple-hover);color:var(--yc-color-text-light-complementary)}.yc-hotkey_view_dark .yc-hotkey__plus{color:var(--yc-color-text-light-hint)}.yc-arrow-toggle{display:inline-block;transition:-webkit-transform .1s ease-out;transition:transform .1s ease-out;transition:transform .1s ease-out,-webkit-transform .1s ease-out;vertical-align:middle}.yc-arrow-toggle_direction_bottom{-webkit-transform:matrix(1,0,0,1,0,0);transform:matrix(1,0,0,1,0,0)}.yc-arrow-toggle_direction_left{-webkit-transform:matrix(0,1,-1,0,0,0);transform:matrix(0,1,-1,0,0,0)}.yc-arrow-toggle_direction_top{-webkit-transform:matrix(-1,0,0,-1,0,0);transform:matrix(-1,0,0,-1,0,0)}.yc-arrow-toggle_direction_right{-webkit-transform:matrix(0,-1,1,0,0,0);transform:matrix(0,-1,1,0,0,0)}.yc-breadcrumbs__inner{align-items:center;display:inline-flex;min-height:24px;overflow:hidden;width:100%}.yc-breadcrumbs__item{display:inline-block;flex-shrink:1;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}.yc-breadcrumbs__item_current{padding:0 8px}.yc-breadcrumbs__item_more{vertical-align:top}.yc-breadcrumbs_calculated_no .yc-breadcrumbs__item{overflow:visible}.yc-breadcrumbs__divider{align-items:center;color:var(--yc-color-text-secondary);display:flex}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item .yc-menu__item{padding-left:80px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(0) .yc-menu__item{padding-left:0!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:first-child .yc-menu__item{padding-left:8px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(2) .yc-menu__item{padding-left:16px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(3) .yc-menu__item{padding-left:24px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(4) .yc-menu__item{padding-left:32px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(5) .yc-menu__item{padding-left:40px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(6) .yc-menu__item{padding-left:48px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(7) .yc-menu__item{padding-left:56px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(8) .yc-menu__item{padding-left:64px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(9) .yc-menu__item{padding-left:72px!important}.yc-breadcrumbs__popup_staircase .yc-menu .yc-menu__list-item:nth-child(10) .yc-menu__item{padding-left:80px!important}.yc-link{-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;text-decoration:none;touch-action:manipulation}.yc-link:focus{outline:2px solid var(--yc-color-line-misc)}.yc-link:focus:not(:focus-visible){outline:0}.yc-link_view_normal{color:var(--yc-color-text-link)}.yc-link_view_normal:hover{color:var(--yc-color-text-link-hover)}.yc-link_view_primary{color:var(--yc-color-text-primary)}.yc-link_view_primary:hover{color:var(--yc-color-text-link-hover)}.yc-link_view_secondary{color:var(--yc-color-text-secondary)}.yc-link_view_secondary:hover{color:var(--yc-color-text-link-hover)}.yc-link_view_normal-visitable{color:var(--yc-color-text-link)}.yc-link_view_normal-visitable:visited{color:var(--yc-color-text-link-visited)}.yc-link_view_normal-visitable:hover{color:var(--yc-color-text-link-hover)}.yc-link_view_normal-visitable:visited:hover{color:var(--yc-color-text-link-visited-hover)}.yc-dropdown-menu__switcher-wrapper{display:inline-block}.yc-dropdown-menu__switcher-button{display:flex}.yc-dropdown-menu__menu-item_separator{border-top:1px solid var(--yc-color-line-solid);margin:.5em 0;pointer-events:none}.yc-menu{background-color:var(--yc-color-base-float);box-sizing:border-box;color:var(--yc-color-text-primary);display:block;list-style:none;margin:0;outline:none;overflow-x:hidden;overflow-y:auto;padding:0;-webkit-user-select:none;user-select:none}.yc-menu:after,.yc-menu:before{content:"";display:block}.yc-menu__list-group-item+.yc-menu__list-group-item,.yc-menu__list-group-item+.yc-menu__list-item,.yc-menu__list-item+.yc-menu__list-group-item{border-top:1px solid var(--yc-color-line-generic)}.yc-menu__item{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;color:var(--yc-color-text-primary);cursor:pointer;display:flex;outline:none;text-decoration:none;touch-action:manipulation}.yc-menu__item-icon{display:flex}.yc-menu__item-content{flex-grow:1}.yc-menu__item:focus,.yc-menu__item:hover{background-color:var(--yc-color-base-simple-hover)}.yc-menu__item:focus:not(:focus-visible):not(:hover):not(.yc-menu__item_active){background-color:initial}.yc-menu__item_disabled{color:var(--yc-color-text-secondary);cursor:default;pointer-events:none}.yc-menu__item_disabled:hover{background-color:initial}.yc-menu__item_active{cursor:default}.yc-menu__item_active,.yc-menu__item_active:focus,.yc-menu__item_active:hover{background-color:var(--yc-color-base-selection)}.yc-menu__item_theme_danger:not(.yc-menu__item_disabled){color:var(--yc-color-text-danger)}.yc-menu__group-label{color:var(--yc-color-text-complementary)}.yc-menu__group-list{list-style:none;margin:0;padding:0}.yc-menu_size_s{font-size:13px;line-height:24px}.yc-menu_size_s:after,.yc-menu_size_s:before{height:3px}.yc-menu_size_s .yc-menu__group-label,.yc-menu_size_s .yc-menu__item{padding:0 10px}.yc-menu_size_s .yc-menu__item-icon{margin-right:3px}.yc-menu_size_s .yc-menu__list-group-item+.yc-menu__list-group-item,.yc-menu_size_s .yc-menu__list-group-item+.yc-menu__list-item,.yc-menu_size_s .yc-menu__list-item+.yc-menu__list-group-item{margin-top:3px;padding-top:3px}.yc-menu_size_m{font-size:13px;line-height:24px}.yc-menu_size_m:after,.yc-menu_size_m:before{height:4px}.yc-menu_size_m .yc-menu__group-label,.yc-menu_size_m .yc-menu__item{padding:0 13px}.yc-menu_size_m .yc-menu__item-icon{margin-right:4px}.yc-menu_size_m .yc-menu__list-group-item+.yc-menu__list-group-item,.yc-menu_size_m .yc-menu__list-group-item+.yc-menu__list-item,.yc-menu_size_m .yc-menu__list-item+.yc-menu__list-group-item{margin-top:4px;padding-top:4px}.yc-menu_size_l{font-size:13px;line-height:28px}.yc-menu_size_l:after,.yc-menu_size_l:before{height:5px}.yc-menu_size_l .yc-menu__group-label,.yc-menu_size_l .yc-menu__item{padding:0 15px}.yc-menu_size_l .yc-menu__item-icon{margin-right:5px}.yc-menu_size_l .yc-menu__list-group-item+.yc-menu__list-group-item,.yc-menu_size_l .yc-menu__list-group-item+.yc-menu__list-item,.yc-menu_size_l .yc-menu__list-item+.yc-menu__list-group-item{margin-top:5px;padding-top:5px}.yc-menu_size_xl{font-size:15px;line-height:36px}.yc-menu_size_xl:after,.yc-menu_size_xl:before{height:6px}.yc-menu_size_xl .yc-menu__group-label,.yc-menu_size_xl .yc-menu__item{padding:0 15px}.yc-menu_size_xl .yc-menu__item-icon{margin-right:6px}.yc-menu_size_xl .yc-menu__list-group-item:not(:first-child){margin-top:6px;padding-top:6px}.yc-menu_size_xl .yc-menu__list-group-item:not(:last-child){margin-bottom:6px;padding-bottom:6px}.yc-checkbox{-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--yc-color-text-primary);cursor:pointer;display:inline-flex;font-family:var(--yc-text-body-font-family);font-weight:400;touch-action:manipulation;-webkit-user-select:none;user-select:none}.yc-checkbox__indicator{cursor:inherit;display:inline-block;flex-shrink:0;position:relative}.yc-checkbox__indicator:before{background-color:initial;border:1px solid var(--yc-color-line-generic-accent);border-radius:4px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:background .1s linear}.yc-checkbox__indicator:after{content:" ";visibility:hidden}.yc-checkbox__icon{align-items:center;bottom:0;color:transparent;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;-webkit-transform:translateY(-5px);transform:translateY(-5px);transition:color .1s,-webkit-transform .2s;transition:color .1s,transform .2s;transition:color .1s,transform .2s,-webkit-transform .2s;visibility:hidden}.yc-checkbox__control{border:none;cursor:inherit;margin:0;opacity:0;outline:none;padding:0}.yc-checkbox__control,.yc-checkbox__outline{background:none;height:100%;left:0;position:absolute;top:0;width:100%}.yc-checkbox__outline{border-radius:4px;pointer-events:none}.yc-checkbox__control:focus+.yc-checkbox__outline{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-checkbox__control:focus:not(:focus-visible)+.yc-checkbox__outline{box-shadow:none}.yc-checkbox__text{white-space:normal}.yc-checkbox_size_m{font-size:13px;line-height:15px}.yc-checkbox_size_m .yc-checkbox__icon-svg_type_tick{height:10px;width:8px}.yc-checkbox_size_m .yc-checkbox__icon-svg_type_dash{height:12px;width:12px}.yc-checkbox_size_m .yc-checkbox__indicator{height:14px;width:14px}.yc-checkbox_size_m .yc-checkbox__text{margin-left:5px}.yc-checkbox_size_l{font-size:15px;line-height:18px}.yc-checkbox_size_l .yc-checkbox__icon-svg_type_tick{height:9px;width:11px}.yc-checkbox_size_l .yc-checkbox__icon-svg_type_dash{height:15px;width:15px}.yc-checkbox_size_l .yc-checkbox__indicator{height:17px;width:17px}.yc-checkbox_size_l .yc-checkbox__text{margin-left:7px}.yc-checkbox:hover .yc-checkbox__indicator:before{border-color:var(--yc-color-line-generic-accent-hover)}.yc-checkbox_checked .yc-checkbox__indicator:before,.yc-checkbox_indeterminate .yc-checkbox__indicator:before{background-color:var(--yc-color-base-special);border:transparent}.yc-checkbox_checked .yc-checkbox__icon,.yc-checkbox_indeterminate .yc-checkbox__icon{color:var(--yc-my-color-brand-text-contrast);-webkit-transform:translateX(0);transform:translateX(0);visibility:visible}.yc-checkbox_disabled{cursor:default;pointer-events:none}.yc-checkbox_disabled .yc-checkbox__text{opacity:.6}.yc-checkbox_disabled .yc-checkbox__indicator:before{background-color:var(--yc-color-base-generic-accent-disabled);border:transparent}.yc-checkbox_disabled.yc-checkbox_checked .yc-checkbox__indicator:before,.yc-checkbox_disabled.yc-checkbox_indeterminate .yc-checkbox__indicator:before{background-color:var(--yc-color-base-special);opacity:.5}.yc-card{background-color:initial;border-radius:5px;box-sizing:border-box}.yc-card_type_action{background-color:var(--yc-color-base-float);box-shadow:0 1px 5px var(--yc-color-sfx-shadow)}.yc-card_type_action.yc-card_clickable:hover{box-shadow:0 3px 10px var(--yc-color-sfx-shadow);cursor:pointer}.yc-card_type_selection{border:1px solid var(--yc-color-line-generic);position:relative}.yc-card_type_selection:before{border-radius:5px;bottom:-1px;left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px}.yc-card_type_selection.yc-card_clickable:hover{border-color:transparent;cursor:pointer}.yc-card_type_selection.yc-card_clickable:hover:before{border:2px solid var(--yc-color-line-selection-hover);content:""}.yc-card_type_selection.yc-card_selected:not(.yc-card_disabled){border-color:transparent}.yc-card_type_selection.yc-card_selected:not(.yc-card_disabled):before{border:2px solid var(--yc-color-line-selection-active);content:""}.yc-card_type_selection.yc-card_view_clear{border-color:transparent}.yc-card_type_container.yc-card_theme_normal.yc-card_view_outlined{border:1px solid var(--yc-color-line-generic)}.yc-card_type_container.yc-card_theme_normal.yc-card_view_filled{background-color:var(--yc-color-base-generic)}.yc-card_type_container.yc-card_theme_info.yc-card_view_outlined{border:1px solid var(--yc-color-line-info)}.yc-card_type_container.yc-card_theme_info.yc-card_view_filled{background-color:var(--yc-color-base-info)}.yc-card_type_container.yc-card_theme_positive.yc-card_view_outlined{border:1px solid var(--yc-color-line-positive)}.yc-card_type_container.yc-card_theme_positive.yc-card_view_filled{background-color:var(--yc-color-base-positive)}.yc-card_type_container.yc-card_theme_warning.yc-card_view_outlined{border:1px solid var(--yc-color-line-warning)}.yc-card_type_container.yc-card_theme_warning.yc-card_view_filled{background-color:var(--yc-color-base-warning)}.yc-card_type_container.yc-card_theme_danger.yc-card_view_outlined{border:1px solid var(--yc-color-line-danger)}.yc-card_type_container.yc-card_theme_danger.yc-card_view_filled{background-color:var(--yc-color-base-danger)}.yc-card_type_container.yc-card_view_raised{background-color:var(--yc-color-base-float);box-shadow:0 1px 5px var(--yc-color-sfx-shadow)}.yc-clipboard-button{--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent}.yc-clipboard-icon__state{-webkit-animation:yc-clipboard-icon-state-dash 1s;animation:yc-clipboard-icon-state-dash 1s}@-webkit-keyframes yc-clipboard-icon-state-dash{0%{stroke-dasharray:0 15}40%{stroke-dasharray:15 0}to{stroke-dasharray:15 0}}@keyframes yc-clipboard-icon-state-dash{0%{stroke-dasharray:0 15}40%{stroke-dasharray:15 0}to{stroke-dasharray:15 0}}.yc-dialog{position:relative}.yc-dialog_size_s{width:480px;width:var(--yc-dialog-size-s)}.yc-dialog_size_m{width:720px;width:var(--yc-dialog-size-m)}.yc-dialog_size_l{width:900px;width:var(--yc-dialog-size-l)}.yc-dialog_has-close{--yc-dialog-header-padding:var(--yc-dialog-header-padding-top) calc(var(--yc-dialog-side-padding) + 28px) var(--yc-dialog-header-padding-bottom) var(--yc-dialog-side-padding)}:root{--yc-dialog-size-s:480px;--yc-dialog-size-m:720px;--yc-dialog-size-l:900px;--yc-dialog-side-padding:32px;--yc-dialog-header-padding-top:20px;--yc-dialog-header-padding-bottom:10px;--yc-dialog-header-padding:var(--yc-dialog-header-padding-top) var(--yc-dialog-side-padding) var(--yc-dialog-header-padding-bottom) var(--yc-dialog-side-padding);--yc-dialog-body-padding:10px var(--yc-dialog-side-padding);--yc-dialog-footer-padding:28px var(--yc-dialog-side-padding);--yc-dialog-divider-margin:0 calc(var(--yc-dialog-side-padding)*-1)}.yc-modal{-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:var(--yc-color-sfx-veil);bottom:0;display:none;left:0;margin:-9999px 0 0 -9999px;overflow:auto;position:fixed;right:0;top:0;visibility:hidden;z-index:1000}.yc-modal__table{display:table;height:100%;width:100%}.yc-modal__cell{display:table-cell;text-align:center;vertical-align:middle}.yc-modal__content{background-color:var(--yc-color-base-modal);border-radius:5px;border-radius:var(--yc-modal-border-radius);display:inline-block;margin:20px;margin:var(--yc-modal-margin);text-align:left}.yc-modal,.yc-modal__content{-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;outline:none}.yc-modal_exit_active,.yc-modal_open{display:block;margin:0;visibility:visible}.yc-modal_appear_active,.yc-modal_enter_active{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:yc-modal-open;animation-name:yc-modal-open}.yc-modal_appear_active .yc-modal__content,.yc-modal_enter_active .yc-modal__content{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:yc-modal-content-open;animation-name:yc-modal-content-open}.yc-modal_exit_active{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:yc-modal;animation-name:yc-modal}@-webkit-keyframes yc-modal{0%{opacity:1}to{opacity:0}}@keyframes yc-modal{0%{opacity:1}to{opacity:0}}@-webkit-keyframes yc-modal-open{0%{opacity:0}to{opacity:1}}@keyframes yc-modal-open{0%{opacity:0}to{opacity:1}}@-webkit-keyframes yc-modal-content-open{0%{-webkit-transform:scale(.75);transform:scale(.75)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes yc-modal-content-open{0%{-webkit-transform:scale(.75);transform:scale(.75)}to{-webkit-transform:scale(1);transform:scale(1)}}:root{--yc-modal-border-radius:5px;--yc-modal-margin:20px}.yc-dialog-btn-close{position:absolute;right:calc(var(--yc-dialog-side-padding) - 12px);top:calc(var(--yc-dialog-header-padding-top) - 6px);z-index:1}.yc-dialog-footer{align-items:center;display:flex;padding:var(--yc-dialog-footer-padding)}.yc-dialog-footer__bts-wrapper{display:flex}.yc-dialog-footer__children{align-items:center;display:flex;flex-grow:1;height:100%}.yc-dialog-footer__button{min-width:128px;position:relative}.yc-dialog-footer__bts-wrapper>.yc-dialog-footer__button{margin-left:10px}.yc-dialog-footer__error{color:var(--yc-color-text-danger);padding:10px}.yc-dialog-header{align-items:center;color:var(--yc-color-text-primary);display:flex;justify-content:flex-start;line-height:24px;padding:var(--yc-dialog-header-padding)}.yc-dialog-header__caption{font-size:var(--yc-text-subheader-3-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-3-line-height)}.yc-dialog-body{flex:1 1 100%;padding:var(--yc-dialog-body-padding)}.yc-dialog-divider{border-top:1px solid var(--yc-color-line-generic);margin:var(--yc-dialog-divider-margin)}.yc-help-popover{left:4px;position:relative}.yc-popover{display:inline-block;position:relative}.yc-popover:not(.yc-popover_disabled){cursor:pointer}.yc-popover__tooltip{--yc-popover-padding:16px;--yc-popover-close-margin:8px;--yc-popover-close-size:24px;box-sizing:border-box;cursor:default;display:flex;flex-direction:column;max-width:var(--yc-popover-max-width);min-height:40px;padding:var(--yc-popover-padding)}.yc-popover__tooltip-title{display:inline-flex;font-size:var(--yc-text-subheader-3-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-3-line-height);margin:0 0 12px}.yc-popover__tooltip-buttons{display:inline-flex;margin-top:20px;width:100%}.yc-popover__tooltip-buttons .yc-popover__tooltip-button:not(:first-child){margin-left:10px}.yc-popover__tooltip-button{flex:1 1}.yc-popover__tooltip-close{position:absolute;right:var(--yc-popover-close-margin);top:var(--yc-popover-close-margin)}.yc-popover__tooltip-content{font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height);overflow-wrap:break-word}.yc-popover__tooltip-content_secondary{opacity:.7}.yc-popover__tooltip-links>*{margin-top:8px}.yc-popover__tooltip-links>:first-child{margin-top:0}.yc-popover__tooltip-content+.yc-popover__tooltip-links>:first-child{margin-top:12px}.yc-popover__tooltip-link{display:inline-block;font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height)}.yc-popover__tooltip_theme_announcement .yc-popover__tooltip_theme_announcement,.yc-popover__tooltip_theme_announcement.yc-popover__tooltip_theme_info,.yc-popover__tooltip_theme_info .yc-popover__tooltip_theme_announcement,.yc-popover__tooltip_theme_info.yc-popover__tooltip_theme_info{color:var(--yc-color-text-primary)}.yc-popover__tooltip_force-links-appearance.yc-popover__tooltip_theme_info .yc-popover__tooltip-content a:not(.yc-button),.yc-popover__tooltip_theme_announcement .yc-popover__tooltip-content a:not(.yc-button){color:var(--yc-color-text-link);text-decoration:none}.yc-popover__tooltip_force-links-appearance.yc-popover__tooltip_theme_info .yc-popover__tooltip-content a:not(.yc-button):hover,.yc-popover__tooltip_theme_announcement .yc-popover__tooltip-content a:not(.yc-button):hover{color:var(--yc-color-text-link-hover)}.yc-popover__tooltip_theme_announcement.yc-popover__tooltip_theme_announcement{--yc-popup-background-color:var(--yc-color-base-simple-hover-solid);--yc-popup-border-color:var(--yc-color-base-simple-hover-solid)}.yc-popover__tooltip_theme_announcement .yc-popover__tooltip-buttons{width:auto}.yc-popover__tooltip_theme_special.yc-popover__tooltip_theme_special{--yc-popup-background-color:var(--yc-color-base-special);--yc-popup-border-color:var(--yc-color-base-special);color:var(--yc-color-text-light-primary)}.yc-popover__tooltip_theme_special .yc-popover__tooltip-content a:not(.yc-button){color:var(--yc-color-text-light-primary);font-weight:var(--yc-text-accent-font-weight)}.yc-popover__tooltip_theme_special .yc-popover__tooltip-content a:not(.yc-button):hover{color:var(--yc-color-text-yandex-red)}.yc-popover__tooltip_theme_special .yc-link{color:var(--yc-color-text-light-primary)}.yc-popover__tooltip_theme_special .yc-link:hover{color:var(--yc-color-text-yandex-red)}.yc-popover__tooltip_size_l{--yc-popover-padding:24px}.yc-popover__tooltip_size_l .yc-popover__tooltip-title{font-size:var(--yc-text-header-1-font-size);font-weight:var(--yc-text-header-font-weight);line-height:var(--yc-text-header-1-line-height)}.yc-popover__tooltip_size_l .yc-popover__tooltip-content{font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-2-line-height)}.yc-popover__tooltip_with-close .yc-popover__tooltip-content,.yc-popover__tooltip_with-close .yc-popover__tooltip-title{padding-right:calc(var(--yc-popover-close-margin) + var(--yc-popover-close-size) - var(--yc-popover-padding))}.yc-root{--yc-popover-max-width:300px}.yc-label{align-items:center;display:inline-flex;position:relative;transition-duration:.3s;transition-property:opacity,color,background-color;transition-timing-function:ease-in-out}.yc-label__text{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.yc-label__addon{align-items:center;display:flex;justify-content:center}.yc-label__addon_side_left,.yc-label__addon_side_right{position:absolute;top:0}.yc-label__addon_side_left{left:2px}.yc-label__addon_side_right{right:0}.yc-label__addon_interactive{--yc-button-background-color:transparent;color:inherit;cursor:pointer;transition:color,background-color;transition-duration:.3s;transition-timing-function:ease-in-out}.yc-label_size_s{height:20px}.yc-label_size_s .yc-label__text{line-height:20px;margin:0 8px}.yc-label_size_s .yc-label__addon{height:20px;width:20px}.yc-label_size_s.yc-label_has-right-addon .yc-label__text{margin-right:22px}.yc-label_size_s.yc-label_has-left-addon .yc-label__text{margin-left:24px}.yc-label_size_s.yc-label_style_default,.yc-label_size_s.yc-label_style_rounded{border-radius:4px}.yc-label_size_s.yc-label_style_default .yc-label__addon_interactive,.yc-label_size_s.yc-label_style_rounded .yc-label__addon_interactive{--yc-button-height:20px;--yc-button-border-radius:4px}.yc-label_size_m{height:28px}.yc-label_size_m .yc-label__text{line-height:28px;margin:0 12px}.yc-label_size_m .yc-label__addon{height:28px;width:28px}.yc-label_size_m.yc-label_has-right-addon .yc-label__text{margin-right:32px}.yc-label_size_m.yc-label_has-left-addon .yc-label__text{margin-left:32px}.yc-label_size_m.yc-label_style_default{border-radius:4px}.yc-label_size_m.yc-label_style_default .yc-label__addon_interactive{--yc-button-height:28px;--yc-button-border-radius:4px}.yc-label_size_m.yc-label_style_rounded{border-radius:24px}.yc-label_size_m.yc-label_style_rounded .yc-label__addon_interactive{--yc-button-height:28px;--yc-button-border-radius:24px}.yc-label_disabled{opacity:.7;pointer-events:none}.yc-label_is-interactive{cursor:pointer}.yc-label_theme_normal{background-color:var(--yc-color-base-misc);color:var(--yc-color-text-misc)}.yc-label_theme_normal:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-misc-hover)}.yc-label_theme_normal:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-misc-hover)}.yc-label_theme_normal:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_normal:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_normal:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-misc)}.yc-label_theme_success{background-color:var(--yc-color-base-positive);color:var(--yc-color-text-positive)}.yc-label_theme_success:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-positive-hover)}.yc-label_theme_success:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-positive-hover)}.yc-label_theme_success:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_success:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_success:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-positive)}.yc-label_theme_info{background-color:var(--yc-color-base-info);color:var(--yc-color-text-info)}.yc-label_theme_info:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-info-hover)}.yc-label_theme_info:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-info-hover)}.yc-label_theme_info:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_info:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_info:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-info)}.yc-label_theme_warning{background-color:var(--yc-color-base-warning);color:var(--yc-color-text-warning-heavy)}.yc-label_theme_warning:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-warning-hover)}.yc-label_theme_warning:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-warning-hover)}.yc-label_theme_warning:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_warning:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_warning:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-warning-heavy)}.yc-label_theme_danger{background-color:var(--yc-color-base-danger);color:var(--yc-color-text-danger)}.yc-label_theme_danger:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-danger-hover)}.yc-label_theme_danger:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-danger-hover)}.yc-label_theme_danger:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_danger:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_danger:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-danger)}.yc-label_theme_unknown{background-color:var(--yc-color-base-neutral);color:var(--yc-color-text-complementary)}.yc-label_theme_unknown:not(.yc-label_disabled).yc-label_is-interactive:hover{background-color:var(--yc-color-base-neutral-hover)}.yc-label_theme_unknown:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--yc-color-base-neutral-hover)}.yc-label_theme_unknown:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label_theme_unknown:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label_theme_unknown:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--yc-color-text-complementary)}.yc-list{display:flex;flex:1 1 auto;flex-direction:column;outline:none;width:100%}.yc-list__filter{flex:0 0 auto;margin-bottom:8px;padding:0 var(--yc-list-margin)}.yc-list__items{flex:1 1 auto}.yc-list__items_virtualized{height:var(--yc-list-height)}.yc-list__empty-placeholder,.yc-list__item{align-items:center;box-sizing:border-box;display:flex;overflow:hidden;padding:0 var(--yc-list-margin);-webkit-user-select:none;user-select:none}.yc-list__item{height:var(--yc-list-item-height)}.yc-list__item_sortable{cursor:move}.yc-list__item_sorting{background:var(--yc-color-base-simple-hover-solid);cursor:move;padding:0 var(--yc-list-margin);z-index:100001}.yc-list__item_active{background:var(--yc-color-base-simple-hover)}.yc-list__item_selected{background:var(--yc-color-base-selection)}.yc-list__item_sort-handle-align_right{flex-direction:row-reverse}.yc-list__item_sort-handle-align_right .yc-list__item-sort-icon{margin-left:10px;margin-right:0}.yc-list__empty-placeholder{box-sizing:border-box;color:var(--yc-color-text-hint);min-height:36px;padding-bottom:8px;padding-top:8px}.yc-list__item-content{align-items:center;display:flex;flex:1 1 auto;height:100%;overflow:hidden;text-overflow:ellipsis}.yc-list__item-sort-icon{align-items:center;color:var(--yc-color-text-hint);display:flex;flex:0 0 auto;margin-right:10px;width:6px}.yc-text-input,.yc-text-input__control{box-sizing:border-box;display:inline-block;position:relative;width:100%}.yc-text-input__control{background-color:initial;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-weight:400;margin:0;padding:0;vertical-align:top}.yc-text-input__control::-webkit-input-placeholder{color:var(--yc-color-text-hint)}.yc-text-input__control::placeholder{color:var(--yc-color-text-hint)}.yc-text-input__control:focus{outline:none}.yc-text-input__control_type_textarea{overflow-x:hidden}.yc-text-input__control_type_textarea:not([resize]),.yc-text-input__control_type_textarea[resize=none]{resize:none}.yc-text-input__control_type_textarea:not(.yc-text-input__control_autosize){height:auto}.yc-text-input__control[type=number]{-webkit-appearance:textfield;appearance:textfield}.yc-text-input__label{box-sizing:border-box;max-width:50%;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap;z-index:1}.yc-text-input__error{color:var(--yc-color-text-danger);font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height);margin-top:2px}.yc-text-input__clear[class]{--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;color:var(--yc-color-text-hint);position:absolute;right:0;top:0}.yc-text-input__clear[class]:hover{color:var(--yc-color-text-primary)}.yc-text-input__clear[class]:not(.yc-text-input__clear_visible){display:none}.yc-text-input_size_s{--yc-text-input-border-radius:var(--yc-border-radius-s)}.yc-text-input_size_s .yc-text-input__control{padding:4px 8px}.yc-text-input_size_s .yc-text-input__control,.yc-text-input_size_s .yc-text-input__label{font-size:var(--yc-text-body-short-font-size);font-weight:var(--yc-text-body-font-weight);height:24px;line-height:var(--yc-text-body-short-line-height)}.yc-text-input_size_s .yc-text-input__label{font-weight:var(--yc-text-accent-font-weight);padding:4px 4px 4px 8px}.yc-text-input_size_s.yc-text-input_has-clear .yc-text-input__control{padding-right:26px}.yc-text-input_size_m{--yc-text-input-border-radius:var(--yc-border-radius-m)}.yc-text-input_size_m .yc-text-input__control{padding:6px 8px}.yc-text-input_size_m .yc-text-input__control,.yc-text-input_size_m .yc-text-input__label{font-size:var(--yc-text-body-short-font-size);font-weight:var(--yc-text-body-font-weight);height:28px;line-height:var(--yc-text-body-short-line-height)}.yc-text-input_size_m .yc-text-input__label{font-weight:var(--yc-text-accent-font-weight);padding:6px 4px 6px 8px}.yc-text-input_size_m.yc-text-input_has-clear .yc-text-input__control{padding-right:26px}.yc-text-input_size_l{--yc-text-input-border-radius:var(--yc-border-radius-l)}.yc-text-input_size_l .yc-text-input__control{padding:10px 12px}.yc-text-input_size_l .yc-text-input__control,.yc-text-input_size_l .yc-text-input__label{font-size:var(--yc-text-body-short-font-size);font-weight:var(--yc-text-body-font-weight);height:36px;line-height:var(--yc-text-body-short-line-height)}.yc-text-input_size_l .yc-text-input__label{font-weight:var(--yc-text-accent-font-weight);padding:10px 4px 10px 12px}.yc-text-input_size_l.yc-text-input_has-clear .yc-text-input__control{padding-right:36px}.yc-text-input_size_xl{--yc-text-input-border-radius:var(--yc-border-radius-xl)}.yc-text-input_size_xl .yc-text-input__control{padding:12px}.yc-text-input_size_xl .yc-text-input__control,.yc-text-input_size_xl .yc-text-input__label{font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);height:44px;line-height:var(--yc-text-body-2-line-height)}.yc-text-input_size_xl .yc-text-input__label{font-weight:var(--yc-text-accent-font-weight);padding:12px 4px 12px 12px}.yc-text-input_size_xl.yc-text-input_has-clear .yc-text-input__control{padding-right:36px}.yc-text-input_view_normal .yc-text-input__control{border:1px solid var(--yc-color-line-generic)}.yc-text-input_view_normal .yc-text-input__control:hover{border:1px solid var(--yc-color-line-generic-hover)}.yc-text-input_view_normal .yc-text-input__control:focus{border:1px solid var(--yc-color-line-generic-active)}.yc-text-input_view_clear .yc-text-input__control{border:1px solid transparent;border-left:0;border-radius:0;border-right:0;padding-left:0;padding-right:0}.yc-text-input.yc-text-input_pin_round-round .yc-text-input__control{border-radius:var(--yc-text-input-border-radius)}.yc-text-input.yc-text-input_pin_brick-brick .yc-text-input__control{border-radius:0}.yc-text-input.yc-text-input_pin_clear-clear .yc-text-input__control{border-left:0;border-radius:0;border-right:0}.yc-text-input.yc-text-input_pin_circle-circle .yc-text-input__control{border-radius:100px}.yc-text-input.yc-text-input_pin_round-brick .yc-text-input__control{border-radius:var(--yc-text-input-border-radius) 0 0 var(--yc-text-input-border-radius)}.yc-text-input.yc-text-input_pin_brick-round .yc-text-input__control{border-radius:0 var(--yc-text-input-border-radius) var(--yc-text-input-border-radius) 0}.yc-text-input.yc-text-input_pin_round-clear .yc-text-input__control{border-radius:var(--yc-text-input-border-radius) 0 0 var(--yc-text-input-border-radius);border-right:0}.yc-text-input.yc-text-input_pin_clear-round .yc-text-input__control{border-left:0;border-radius:0 var(--yc-text-input-border-radius) var(--yc-text-input-border-radius) 0}.yc-text-input.yc-text-input_pin_brick-clear .yc-text-input__control{border-radius:0;border-right:0}.yc-text-input.yc-text-input_pin_clear-brick .yc-text-input__control{border-left:0;border-radius:0}.yc-text-input.yc-text-input_pin_circle-brick .yc-text-input__control{border-radius:100px 0 0 100px}.yc-text-input.yc-text-input_pin_brick-circle .yc-text-input__control{border-radius:0 100px 100px 0}.yc-text-input.yc-text-input_pin_circle-clear .yc-text-input__control{border-radius:100px 0 0 100px;border-right:0}.yc-text-input.yc-text-input_pin_clear-circle .yc-text-input__control{border-left:0;border-radius:0 100px 100px 0}.yc-text-input_disabled .yc-text-input__control{background-color:var(--yc-color-base-generic-accent-disabled);border-color:transparent;color:var(--yc-color-text-hint)}.yc-text-input_disabled .yc-text-input__control:hover{border-color:transparent}.yc-text-input_disabled .yc-text-input__label{color:var(--yc-color-text-hint)}.yc-text-input_has-scrollbar .yc-text-input__clear{right:var(--yc-scrollbar-width)}.yc-text-input_state_error.yc-text-input_view_normal .yc-text-input__control,.yc-text-input_state_error.yc-text-input_view_normal .yc-text-input__control:focus,.yc-text-input_state_error.yc-text-input_view_normal .yc-text-input__control:hover{border-color:var(--yc-color-line-danger)}.yc-text-input_state_error.yc-text-input_view_clear .yc-text-input__control,.yc-text-input_state_error.yc-text-input_view_clear .yc-text-input__control:focus,.yc-text-input_state_error.yc-text-input_view_clear .yc-text-input__control:hover{border-bottom:1px solid var(--yc-color-line-danger)}@-webkit-keyframes yc-pulse{50%{opacity:15%}}@keyframes yc-pulse{50%{opacity:15%}}.yc-loader{align-items:center;display:inline-flex}.yc-loader__center,.yc-loader__left,.yc-loader__right{-webkit-animation:yc-pulse .8s ease infinite;animation:yc-pulse .8s ease infinite;background:var(--yc-color-base-special)}.yc-loader__left{-webkit-animation-delay:.2s;animation-delay:.2s}.yc-loader__center{-webkit-animation-delay:.4s;animation-delay:.4s}.yc-loader__right{-webkit-animation-delay:.6s;animation-delay:.6s}.yc-loader_size_s .yc-loader__left{height:13.33333px;width:5px}.yc-loader_size_s .yc-loader__center{height:20px;margin-left:5px;width:5px}.yc-loader_size_s .yc-loader__right{height:13.33333px;margin-left:5px;width:5px}.yc-loader_size_m .yc-loader__left{height:18.66667px;width:7px}.yc-loader_size_m .yc-loader__center{height:28px;margin-left:7px;width:7px}.yc-loader_size_m .yc-loader__right{height:18.66667px;margin-left:7px;width:7px}.yc-loader_size_l .yc-loader__left{height:24px;width:9px}.yc-loader_size_l .yc-loader__center{height:36px;margin-left:9px;width:9px}.yc-loader_size_l .yc-loader__right{height:24px;margin-left:9px;width:9px}.yc-progress{background-color:var(--yc-color-base-generic);border-radius:3px;height:20px;line-height:20px;margin:0 auto;overflow:hidden;position:relative;text-align:center}.yc-progress__text{height:20px;margin-bottom:-20px;position:relative}.yc-progress__text,.yc-progress__text-inner{box-sizing:border-box;color:var(--yc-color-text-light-primary);font-size:12px;padding:0 10px}.yc-progress__text-inner{height:100%;position:absolute;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;width:100%}.yc-progress__item{color:var(--yc-color-text-light-primary);float:left;font-size:12px;height:100%;overflow:hidden;position:relative;transition:width .6s ease,background-color .6s ease,-webkit-transform .6s ease;transition:transform .6s ease,width .6s ease,background-color .6s ease;transition:transform .6s ease,width .6s ease,background-color .6s ease,-webkit-transform .6s ease;width:100%}.yc-progress__item_theme_default{background-color:var(--yc-color-infographics-neutral-medium)}.yc-progress__item_theme_success{background-color:var(--yc-color-infographics-positive-medium)}.yc-progress__item_theme_warning{background-color:var(--yc-color-infographics-warning-medium)}.yc-progress__item_theme_danger{background-color:var(--yc-color-infographics-danger-medium)}.yc-progress__item_theme_info{background-color:var(--yc-color-infographics-info-medium)}.yc-progress__item_theme_misc{background-color:var(--yc-color-infographics-misc-medium)}.yc-progress__stack{color:var(--yc-color-text-light-primary);height:20px;line-height:20px;margin:0 auto;overflow:hidden;position:relative;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;width:100%}.yc-progress_view_thin,.yc-progress_view_thin .yc-progress__stack{height:10px;line-height:10px}.yc-progress_view_thinnest,.yc-progress_view_thinnest .yc-progress__stack{height:4px;line-height:4px}.yc-progress_view_thin .yc-progress__text,.yc-progress_view_thinnest .yc-progress__text{display:none}.yc-promo-sheet__content[class]{background:var(--yc-promo-sheet-background);border-radius:var(--yc-promo-sheet-border-radius);color:var(--yc-promo-sheet-foreground);margin:0 var(--yc-promo-sheet-margin) var(--yc-promo-sheet-margin);padding:var(--yc-promo-sheet-padding);width:auto}.yc-promo-sheet__header{margin:0 0 var(--yc-promo-sheet-header-margin);padding:0 20px 0 0;position:relative}.yc-promo-sheet__title{font-size:var(--yc-text-header-1-font-size);line-height:var(--yc-text-header-1-line-height);margin:0}.yc-promo-sheet__close-button{position:absolute;right:-12px;top:-12px}.yc-promo-sheet__message{font-size:var(--yc-text-body-3-font-size);line-height:var(--yc-text-body-3-line-height);margin:0 0 var(--yc-promo-sheet-message-margin)}.yc-promo-sheet__image-container{margin-bottom:var(--yc-promo-sheet-image-margin)}.yc-promo-sheet__image{display:block;height:auto;width:100%}.yc-promo-sheet__action-button{display:block}.yc-root{--yc-promo-sheet-margin:8px;--yc-promo-sheet-padding:20px;--yc-promo-sheet-border-radius:12px;--yc-promo-sheet-header-margin:12px;--yc-promo-sheet-message-margin:16px;--yc-promo-sheet-image-margin:12px;--yc-promo-sheet-foreground:var(--yc-color-text-light-primary);--yc-promo-sheet-background:var(--yc-my-color-brand-normal)}.yc-sheet{position:fixed;z-index:100000}.yc-sheet,.yc-sheet__veil{height:100%;left:0;top:0;width:100%}.yc-sheet__veil{background-color:var(--yc-color-sfx-veil);opacity:0;position:absolute;will-change:opacity}.yc-sheet__veil_with-transition{transition:opacity var(--yc-sheet-transition-duration) ease}.yc-sheet__sheet{left:0;max-height:90%;position:absolute;top:100%;width:100%;will-change:transform}.yc-sheet__sheet_with-transition{transition:-webkit-transform var(--yc-sheet-transition-duration) ease;transition:transform var(--yc-sheet-transition-duration) ease;transition:transform var(--yc-sheet-transition-duration) ease,-webkit-transform var(--yc-sheet-transition-duration) ease}.yc-sheet__sheet-swipe-area{height:40px;left:0;position:absolute;top:-20px;width:100%;z-index:1}.yc-sheet__sheet-top{background-color:var(--yc-color-base-float);border-top-left-radius:20px;border-top-right-radius:20px;height:20px;position:relative}.yc-sheet__sheet-top-resizer{background-color:var(--yc-color-line-generic);border-radius:4px;height:4px;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:40px}.yc-sheet__sheet-content{background-color:var(--yc-color-base-float);box-sizing:border-box;max-height:calc(90% - 20px);overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding:var(--yc-sheet-content-paddings);transition:height var(--yc-sheet-transition-duration) ease;width:100%}.yc-sheet__sheet-content_without-scroll{overflow:hidden}.yc-sheet__sheet-content-title{font-size:var(--yc-text-body-2-font-size);line-height:28px;overflow:hidden;padding-bottom:8px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.yc-root{--yc-sheet-content-paddings:0 10px;--yc-sheet-transition-duration:0.3s}.yc-radio{-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--yc-color-text-primary);cursor:pointer;display:inline-flex;font-family:var(--yc-text-body-font-family);font-weight:400;touch-action:manipulation;-webkit-user-select:none;user-select:none}.yc-radio__indicator{cursor:inherit;display:inline-block;flex-shrink:0;position:relative}.yc-radio__indicator:before{background-color:initial;border:1px solid var(--yc-color-line-generic-accent);border-radius:50%;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:background .1s linear}.yc-radio__indicator:after{content:" ";visibility:hidden}.yc-radio__disc:before{background-color:var(--yc-my-color-brand-text-contrast);border:none;border-radius:50%;content:"";opacity:0;position:absolute;-webkit-transform:scale(.1);transform:scale(.1);transition:opacity .1s,-webkit-transform .2s;transition:opacity .1s,transform .2s;transition:opacity .1s,transform .2s,-webkit-transform .2s}.yc-radio__control{border:none;cursor:inherit;margin:0;opacity:0;outline:none;padding:0}.yc-radio__control,.yc-radio__outline{background:none;height:100%;left:0;position:absolute;top:0;width:100%}.yc-radio__outline{border-radius:50%;pointer-events:none}.yc-radio__control:focus+.yc-radio__outline{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-radio__control:focus:not(:focus-visible)+.yc-radio__outline{box-shadow:none}.yc-radio__text{white-space:normal}.yc-radio_size_m{font-size:13px;line-height:15px}.yc-radio_size_m .yc-radio__indicator{height:14px;width:14px}.yc-radio_size_m .yc-radio__text{margin-left:5px}.yc-radio_size_m .yc-radio__disc:before{bottom:5px;left:5px;right:5px;top:5px}.yc-radio_size_l{font-size:15px;line-height:18px}.yc-radio_size_l .yc-radio__indicator{height:17px;width:17px}.yc-radio_size_l .yc-radio__text{margin-left:7px}.yc-radio_size_l .yc-radio__disc:before{bottom:6px;left:6px;right:6px;top:6px}.yc-radio:hover .yc-radio__indicator:before{border-color:var(--yc-color-line-generic-accent-hover)}.yc-radio_checked .yc-radio__indicator:before{background-color:var(--yc-color-base-special);border:transparent}.yc-radio_checked .yc-radio__indicator .yc-radio__disc:before{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.yc-radio_disabled{cursor:default;pointer-events:none}.yc-radio_disabled .yc-radio__text{opacity:.6}.yc-radio_disabled .yc-radio__indicator:before{background-color:var(--yc-color-base-generic-accent-disabled);border:transparent}.yc-radio_disabled.yc-radio_checked .yc-radio__indicator:before{background-color:var(--yc-color-base-special);opacity:.5}.yc-radio-button{--yc-radio-button-inner-border-radius:calc(var(--yc-radio-button-border-radius) - 3px);background-color:var(--yc-color-base-generic);border-radius:var(--yc-radio-button-border-radius);box-sizing:border-box;display:inline-flex;flex-direction:row;font-family:var(--yc-text-body-font-family);font-weight:400;position:relative}.yc-radio-button__plate{bottom:0;position:absolute;top:0;transition:left .2s,width .2s}.yc-radio-button__plate[hidden]{display:none}.yc-radio-button__option{border-radius:var(--yc-radio-button-inner-border-radius);cursor:pointer;flex:1 1 auto;text-align:center;-webkit-transform:scale(1);transform:scale(1);transition:color .15s linear;-webkit-user-select:none;user-select:none}.yc-radio-button__option-outline{border-radius:var(--yc-radio-button-inner-border-radius);bottom:3px;content:"";left:3px;position:absolute;right:3px;top:3px;z-index:-1}.yc-radio-button__option-control{border:none;cursor:inherit;height:100%;left:0;margin:0;opacity:0;outline:none;padding:0;position:absolute;top:0;width:100%}.yc-radio-button__option-control:focus+.yc-radio-button__option-outline{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-radio-button__option-control:focus:not(:focus-visible)+.yc-radio-button__option-outline{box-shadow:none}.yc-radio-button__option-text{color:var(--yc-color-text-complementary);display:inline-block;white-space:nowrap}.yc-radio-button__option-text_icon{align-items:center;display:flex;height:100%}.yc-radio-button__option:hover .yc-radio-button__option-text,.yc-radio-button__option_checked .yc-radio-button__option-text{color:var(--yc-color-text-primary)}.yc-radio-button__option_checked{cursor:default}.yc-radio-button__option_disabled{cursor:default;pointer-events:none}.yc-radio-button__option_disabled .yc-radio-button__option-text{color:var(--yc-color-text-hint)}.yc-radio-button__option:before,.yc-radio-button__plate:before{border-radius:var(--yc-radio-button-inner-border-radius);bottom:3px;left:3px;position:absolute;right:3px;top:3px}.yc-radio-button__option:before{z-index:-1}.yc-radio-button__plate:before,.yc-radio-button__plate[hidden]~.yc-radio-button__option_checked:before{background-color:var(--yc-color-base-background);content:""}.yc-radio-button_size_s{--yc-radio-button-border-radius:var(--yc-border-radius-s)}.yc-radio-button_size_s .yc-radio-button__option{font-size:13px;height:24px;line-height:24px}.yc-radio-button_size_s .yc-radio-button__option-text{margin:0 10px}.yc-radio-button_size_m{--yc-radio-button-border-radius:var(--yc-border-radius-m)}.yc-radio-button_size_m .yc-radio-button__option{font-size:13px;height:28px;line-height:28px}.yc-radio-button_size_m .yc-radio-button__option-text{margin:0 13px}.yc-radio-button_size_l{--yc-radio-button-border-radius:var(--yc-border-radius-l)}.yc-radio-button_size_l .yc-radio-button__option{font-size:13px;height:36px;line-height:36px}.yc-radio-button_size_l .yc-radio-button__option-text{margin:0 18px}.yc-radio-button_size_xl{--yc-radio-button-border-radius:var(--yc-border-radius-xl)}.yc-radio-button_size_xl .yc-radio-button__option{font-size:15px;height:44px;line-height:44px}.yc-radio-button_size_xl .yc-radio-button__option-text{margin:0 25px}.yc-radio-button_width_auto{max-width:100%}.yc-radio-button_width_max{width:100%}.yc-radio-button_width_auto .yc-radio-button__option,.yc-radio-button_width_max .yc-radio-button__option{overflow:hidden}.yc-radio-button_width_auto .yc-radio-button__option-text,.yc-radio-button_width_max .yc-radio-button__option-text{display:block;overflow:hidden;text-overflow:ellipsis}.yc-radio-group_direction_horizontal.yc-radio-group_size_m{line-height:20px}.yc-radio-group_direction_horizontal.yc-radio-group_size_m .yc-radio-group__option:not(:last-child){margin-right:12px}.yc-radio-group_direction_horizontal.yc-radio-group_size_l{line-height:24px}.yc-radio-group_direction_horizontal.yc-radio-group_size_l .yc-radio-group__option:not(:last-child){margin-right:15px}.yc-radio-group_direction_vertical{display:flex;flex-direction:column}.yc-radio-group_direction_vertical.yc-radio-group_size_m .yc-radio-group__option:not(:last-child){margin-bottom:8px}.yc-radio-group_direction_vertical.yc-radio-group_size_l .yc-radio-group__option:not(:last-child){margin-bottom:12px}.yc-select{align-items:center;background:none;background-color:initial;border:none;border:1px solid var(--yc-color-line-generic);box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;font-family:var(--yc-text-body-font-family);font-size:inherit;font-weight:400;margin:0;min-width:34px;outline:none;padding:0;white-space:nowrap;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.yc-select,.yc-select:active,.yc-select:focus,.yc-select:hover,.yc-select:link,.yc-select:visited{color:var(--yc-color-text-primary)}.yc-select.yc-select_pin_round-round.yc-select{border-radius:var(--yc-select-border-radius)}.yc-select.yc-select_pin_brick-brick.yc-select{border-radius:0}.yc-select.yc-select_pin_clear-clear.yc-select{border-left:0;border-radius:0;border-right:0}.yc-select.yc-select_pin_circle-circle.yc-select{border-radius:100px}.yc-select.yc-select_pin_round-brick.yc-select{border-radius:var(--yc-select-border-radius) 0 0 var(--yc-select-border-radius)}.yc-select.yc-select_pin_brick-round.yc-select{border-radius:0 var(--yc-select-border-radius) var(--yc-select-border-radius) 0}.yc-select.yc-select_pin_round-clear.yc-select{border-radius:var(--yc-select-border-radius) 0 0 var(--yc-select-border-radius);border-right:0}.yc-select.yc-select_pin_clear-round.yc-select{border-left:0;border-radius:0 var(--yc-select-border-radius) var(--yc-select-border-radius) 0}.yc-select.yc-select_pin_brick-clear.yc-select{border-radius:0;border-right:0}.yc-select.yc-select_pin_clear-brick.yc-select{border-left:0;border-radius:0}.yc-select.yc-select_pin_circle-brick.yc-select{border-radius:100px 0 0 100px}.yc-select.yc-select_pin_brick-circle.yc-select{border-radius:0 100px 100px 0}.yc-select.yc-select_pin_circle-clear.yc-select{border-radius:100px 0 0 100px;border-right:0}.yc-select.yc-select_pin_clear-circle.yc-select{border-left:0;border-radius:0 100px 100px 0}.yc-select_view_clear{border-color:transparent}.yc-select_size_s{--yc-select-border-radius:var(--yc-border-radius-s);height:24px;padding:0 8px}.yc-select_size_m{--yc-select-border-radius:var(--yc-border-radius-m);height:28px;padding:0 8px}.yc-select_size_l{--yc-select-border-radius:var(--yc-border-radius-l);height:36px;padding:0 12px}.yc-select_size_xl{--yc-select-border-radius:var(--yc-border-radius-xl);font-size:15px;height:44px;padding:0 12px}.yc-select_width_auto{max-width:100%}.yc-select_width_max{width:100%}.yc-select_disabled{background-color:var(--yc-color-base-generic-accent-disabled);border-color:transparent;color:var(--yc-color-text-hint);pointer-events:none}.yc-select:hover{background-color:var(--yc-color-base-simple-hover)}.yc-select:hover:not(.yc-select_view_clear){border-color:var(--yc-color-line-generic-hover)}.yc-select:focus,.yc-select_open{border-color:var(--yc-color-line-generic-active);outline:none}.yc-select:active{-webkit-transform:scale(.98);transform:scale(.98)}.yc-select__label{font-weight:var(--yc-text-accent-font-weight);margin-right:2px;white-space:nowrap}.yc-select__placeholder{color:var(--yc-color-text-hint);white-space:nowrap}.yc-select__option-text,.yc-select__placeholder{margin-right:8px;overflow:hidden;text-overflow:ellipsis}.yc-select__chevron-icon{color:var(--yc-color-text-secondary);flex:0 0 16px;margin-left:auto}.yc-select_disabled .yc-select__chevron-icon{color:var(--yc-color-text-hint)}.yc-select-filter{padding:4px 4px 0}.yc-select-filter .yc-select-filter__input,.yc-select-filter .yc-select-filter__input:focus,.yc-select-filter .yc-select-filter__input:hover{border-color:var(--yc-color-line-generic-active)}.yc-select-list{display:flex;margin:4px 0;overflow:hidden auto}.yc-popup .yc-select-list:first-child,.yc-popup .yc-select-list:last-child{border-radius:0}.yc-select-list__group-label{box-sizing:border-box;position:relative;width:100%}.yc-select-list_size_m .yc-select-list__group-label,.yc-select-list_size_s .yc-select-list__group-label{height:28px;padding:8px 8px 4px}.yc-select-list_size_l .yc-select-list__group-label{height:32px;padding:10px 12px 6px}.yc-select-list_size_xl .yc-select-list__group-label{font-size:15px;height:36px;padding:12px 12px 8px}.yc-select-list__item:not(:first-child) .yc-select-list__group-label{margin-top:5px}.yc-select-list__item:not(:first-child) .yc-select-list__group-label:before{background-color:var(--yc-color-line-generic);content:"";height:1px;left:0;position:absolute;top:-3px;width:100%}.yc-select-list__group-label-content{font-weight:var(--yc-text-accent-font-weight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.yc-select-list__option{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;height:100%;width:100%}.yc-select-list_size_s .yc-select-list__option{padding:0 8px}.yc-select-list_size_s .yc-select-list__option .yc-select-list__option-default-label{height:28px;line-height:28px}.yc-select-list_size_s .yc-select-list__option .yc-select-list__tick-icon{padding-left:8px}.yc-select-list_size_m .yc-select-list__option{padding:0 8px}.yc-select-list_size_m .yc-select-list__option .yc-select-list__option-default-label{height:28px;line-height:28px}.yc-select-list_size_m .yc-select-list__option .yc-select-list__tick-icon{padding-left:8px}.yc-select-list_size_l .yc-select-list__option{padding:0 12px}.yc-select-list_size_l .yc-select-list__option .yc-select-list__option-default-label{height:32px;line-height:32px}.yc-select-list_size_l .yc-select-list__option .yc-select-list__tick-icon{padding-left:12px}.yc-select-list_size_xl .yc-select-list__option{padding:0 12px}.yc-select-list_size_xl .yc-select-list__option .yc-select-list__option-default-label{font-size:15px;height:36px;line-height:36px}.yc-select-list_size_xl .yc-select-list__option .yc-select-list__tick-icon{padding-left:12px}.yc-select-list__option_colored{background-color:var(--yc-color-base-selection)}.yc-select-list__option-default-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yc-select-list__option-default-label_disabled{color:var(--yc-color-text-secondary)}.yc-select-list__tick-icon{box-sizing:initial;color:var(--yc-color-text-info);flex:0 0 16px;margin-left:auto;visibility:hidden}.yc-select-list__tick-icon_shown{visibility:visible}.yc-select-empty-placeholder{color:var(--yc-color-text-hint);margin:4px}.yc-select-empty-placeholder_empty{margin-top:0}.yc-share-list{align-items:center;display:flex}.yc-share-list_layout_row{flex-direction:row}.yc-share-list_layout_row .yc-share-list__separator{align-self:stretch;margin:8px -2px}@media (min-width:639px){.yc-share-list_layout_row .yc-share-list__separator{margin:-2px 8px;width:1px}}.yc-share-list_layout_row .yc-share-list__social{flex-direction:row}.yc-share-list_layout_row .yc-share-list__link+.yc-share-list__link{margin-left:4px}.yc-share-list_layout_column{flex-direction:column}.yc-share-list_layout_column .yc-share-list__separator{height:1px;justify-self:stretch;margin:8px -2px;width:100%}.yc-share-list_layout_column .yc-share-list__social{flex-direction:column;width:100%}.yc-share-list__social{align-items:flex-start;display:flex}.yc-share-list__separator{background:var(--yc-color-line-generic)}.yc-share-list__copy-link{display:contents}@media (max-width:639px){.yc-share-list{align-items:stretch;flex-direction:column;min-width:175px}.yc-share-list__social{justify-content:space-evenly}.yc-share-list__separator{height:1px;margin:8px -2px;width:calc(100% + 4px)}}.yc-share-list__socials-container{display:flex;width:100%}.yc-share-list-item{align-items:center;display:flex}.yc-share-list-item__icon_type_telegram{color:var(--yc-color-telegram)}.yc-share-list-item__icon_type_facebook{color:var(--yc-color-facebook)}.yc-share-list-item__icon_type_twitter{color:var(--yc-color-twitter)}.yc-share-list-item__icon_type_vk{color:var(--yc-color-vk)}.yc-share-list-item__link-container{display:flex}.yc-share-list-item__link-icon{align-items:center;display:flex}.yc-share-list-item__link-title{align-items:center;display:flex;flex-grow:1;margin-left:10px}.yc-share-tooltip{position:relative}.yc-share-tooltip__tooltip{max-width:none;padding:8px}.yc-share-tooltip__container{color:var(--yc-color-text-secondary);cursor:pointer;display:flex;flex-wrap:nowrap}.yc-share-tooltip__container:hover{color:var(--yc-color-text-primary)}.yc-share-tooltip__icon-container,.yc-share-tooltip__title{align-items:center;display:flex}.yc-share-tooltip__title{padding-left:10px}.yc-skeleton{background-color:var(--yc-color-base-generic);border-radius:5px;display:inline-block;overflow:hidden;position:relative;width:100%;z-index:0}.yc-skeleton:after{-webkit-animation:yc-skeleton 1.2s ease-out infinite;animation:yc-skeleton 1.2s ease-out infinite;background-image:linear-gradient(90deg,transparent,var(--yc-color-base-generic));bottom:0;content:"";left:0;position:absolute;right:0;top:0}@-webkit-keyframes yc-skeleton{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes yc-skeleton{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.yc-spin{-webkit-animation:yc-spin 1s linear infinite;animation:yc-spin 1s linear infinite;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:inline-block}.yc-spin__inner{border:2px solid var(--yc-color-base-special);border-bottom-right-radius:25px;border-left:none;border-top-right-radius:25px;box-sizing:border-box;height:100%;margin-left:50%;width:50%}.yc-spin_size_xs{height:16px;width:16px}.yc-spin_size_s{height:24px;width:24px}.yc-spin_size_m{height:28px;width:28px}.yc-spin_size_l{height:32px;width:32px}.yc-spin_size_xl{height:36px;width:36px}@-webkit-keyframes yc-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes yc-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.yc-store-badge{height:40px}.yc-store-badge__image_platform_ios,.yc-store-badge_platform_ios{width:119px}.yc-store-badge__image_platform_ios.yc-store-badge__image_lang_ru,.yc-store-badge__image_platform_ios.yc-store-badge_lang_ru,.yc-store-badge_platform_ios.yc-store-badge__image_lang_ru,.yc-store-badge_platform_ios.yc-store-badge_lang_ru{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE5IiBoZWlnaHQ9IjQwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHg9Ii41IiB5PSIuNSIgd2lkdGg9IjExOCIgaGVpZ2h0PSIzOSIgcng9IjUuNSIgZmlsbD0iIzAwMCIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMuMTUgOC43MmMuMSAxLjI2LS4zIDIuNTItMS4xMSAzLjVhNC4xIDQuMSAwIDAgMS0zLjI0IDEuNTIgNC42MyA0LjYzIDAgMCAxIDEuMTQtMy4zNiA0Ljk2IDQuOTYgMCAwIDEgMy4yMS0xLjY2em0yLjI2IDkuMmE0Ljc4IDQuNzggMCAwIDAgMi4yNyA2Ljc4Yy0uMzMgMS4xLS44NCAyLjE1LTEuNTEgMy4xLS45IDEuMzMtMS44MyAyLjY0LTMuMzIgMi42Ni0uNy4wMi0xLjE5LS4xOS0xLjY4LS40YTQuNDEgNC40MSAwIDAgMC0zLjkyLjAyYy0uNDcuMi0uOTMuMzktMS41Ny40MS0xLjQyLjA2LTIuNS0xLjQyLTMuNDMtMi43NS0xLjg1LTIuNy0zLjMtNy42My0xLjM2LTEwLjk3YTUuMzEgNS4zMSAwIDAgMSA0LjQ3LTIuNzNjLjgtLjAyIDEuNTguMyAyLjI1LjU2LjUyLjIxLjk4LjQgMS4zNi40LjMzIDAgLjc4LS4xOCAxLjMtLjM5LjgzLS4zMyAxLjg0LS43MyAyLjg2LS42MmE1LjA3IDUuMDcgMCAwIDEgNCAyLjE2IDQuOTUgNC45NSAwIDAgMC0xLjcyIDEuNzd6bTEyLjEzLTYuNjdoLS44di44MWguODJjLjgzIDAgMS4zLjM3IDEuMy45NiAwIC41OC0uNSAxLTEuMjcgMXMtMS4zLS4zNy0xLjM1LS45NGgtLjlhMS45OCAxLjk4IDAgMCAwIDIuMjUgMS43NiAyIDIgMCAwIDAgMi4yMy0xLjc3IDEuMzkgMS4zOSAwIDAgMC0xLjMzLTEuNDR2LS4wN2ExLjM5IDEuMzkgMCAwIDAgMS4wOS0xLjM3YzAtLjk1LS44My0xLjYtMi0xLjZhMS44NyAxLjg3IDAgMCAwLTIuMTIgMS43NGguODhhMS4wNiAxLjA2IDAgMCAxIDEuMi0uOTNjLjcgMCAxLjEyLjM1IDEuMTIuOWExIDEgMCAwIDEtMS4xMi45NXptNC45Ni44M2MtMS4wNy4wNy0xLjY3LjUzLTEuNjcgMS4zNGExLjM2IDEuMzYgMCAwIDAgMS41IDEuMzUgMS41MiAxLjUyIDAgMCAwIDEuMzUtLjdoLjA3di42M2guODZ2LTMuMDhjMC0uOTUtLjY0LTEuNTEtMS43Ny0xLjUxLTEuMDIgMC0xLjc1LjUtMS44NCAxLjI3aC44NmMuMS0uMzIuNDUtLjUuOTQtLjUuNjEgMCAuOTIuMjcuOTIuNzR2LjM5bC0xLjIyLjA3em0xLjIyLjU4di4zOGExLjA2IDEuMDYgMCAwIDEtLjc0Ljk0Yy0uMTQuMDQtLjI4LjA2LS40Mi4wNC0uNDkgMC0uODQtLjIzLS44NC0uNjQgMC0uNC4yOC0uNi45LS42NWwxLjEtLjA3em0zLjI1LTEuNzJ2My43NmgtLjl2LTQuNWgyLjk3di43NGgtMi4wN3ptNS42IDMuODNjMS4xNCAwIDEuODYtLjkgMS44Ni0yLjMzIDAtMS40My0uNzItMi4zMi0xLjg3LTIuMzJhMS41NiAxLjU2IDAgMCAwLTEuNDEuODJoLS4wN3YtLjc1aC0uODZ2NmguOXYtMi4xN2guMDZhMS40NyAxLjQ3IDAgMCAwIDEuMzkuNzV6bS0uMjYtMy44NWMuNzYgMCAxLjIuNTcgMS4yIDEuNTIgMCAuOTYtLjQ0IDEuNTMtMS4yIDEuNTMtLjc1IDAtMS4yMS0uNTgtMS4yMS0xLjUyIDAtLjk0LjQ2LTEuNTMgMS4yMS0xLjUzem0zLjMgNS40di0uNzdsLjMuMDFhLjc3Ljc3IDAgMCAwIC44LS42M2wuMDctLjIyLTEuNjMtNC41MmguOTdsMS4xMyAzLjU4aC4wN2wxLjEzLTMuNThoLjk0bC0xLjY4IDQuN2MtLjM4IDEuMDktLjgxIDEuNDQtMS43MyAxLjQ0LS4wNyAwLS4yOCAwLS4zNy0uMDJ6bTUuMzYtMi45aC0uODljLjA4LjkxLjg4IDEuMzYgMS44NyAxLjM2IDEuMSAwIDEuODQtLjU3IDEuODQtMS40MmExLjAxIDEuMDEgMCAwIDAtLjg4LTEuMDJ2LS4wN2EuOTMuOTMgMCAwIDAgLjctLjkyYzAtLjc2LS42LTEuMjQtMS42OC0xLjI0YTEuNTggMS41OCAwIDAgMC0xLjc3IDEuMzJoLjg2Yy4wNS0uMzYuNDItLjU3LjkxLS41Ny41NSAwIC44MS4yNS44MS41OCAwIC4zOC0uMjcuNTktLjguNTloLS42N3YuNjloLjY4Yy42MiAwIC45NS4yLjk1LjY0IDAgLjQtLjM2LjY2LS45NS42Ni0uNTMgMC0uOS0uMi0uOTgtLjZ6bTQuMSAxLjI4di00LjVoLjg4djMuMWguMDdsMi4wNy0zLjFoLjg4djQuNWgtLjg4di0zLjEyaC0uMDZsLTIuMDggMy4xMmgtLjg4em03LjM0LTMuNzZoMS40MnYtLjc1SDcwLjF2Ljc1aDEuNDJ2My43NmguODl2LTMuNzZ6bTYuMiAyLjU0YTEuODMgMS44MyAwIDAgMS0xLjk1IDEuMyAyLjA1IDIuMDUgMCAwIDEtMi4wOC0yLjMyIDIuMDggMi4wOCAwIDAgMSAyLjA4LTIuMzVjMS4yNSAwIDIgLjg1IDIgMi4yN3YuM0g3NS41di4wNmExLjE5IDEuMTkgMCAwIDAgMS4yIDEuMjkgMS4wOCAxLjA4IDAgMCAwIDEuMDctLjU1aC44NXptLTMuMTItMS40NWgyLjI3YTEuMDggMS4wOCAwIDAgMC0xLjEtMS4xNyAxLjE1IDEuMTUgMCAwIDAtMS4xNyAxLjE3em04LjkyLTEuODRoLTIuMDN2NC41aDIuMDVjLjk5IDAgMS41OC0uNSAxLjU4LTEuM2ExLjAzIDEuMDMgMCAwIDAtLjk2LTEuMDN2LS4wN2EuOTcuOTcgMCAwIDAgLjc2LS45NWMwLS43LS41Mi0xLjE1LTEuNC0xLjE1em0tMS4xNSAxLjg1di0xLjE2aC45OGMuNDcgMCAuNy4yMi43LjU4IDAgLjM4LS4yNi41OC0uOC41OGgtLjg4em0wIDEuOThWMTIuN2guOTRjLjYgMCAuOTIuMi45Mi42NiAwIC40Mi0uMjguNjYtLjguNjZoLTEuMDZ6bS04LjU4IDE1LjA2Yy0xLjY0IDAtMi44My0uODEtMi45Ny0yLjA0aC0xLjljLjEyIDIuMjQgMS45OCAzLjY2IDQuNzMgMy42NiAyLjk0IDAgNC44LTEuNDUgNC44LTMuNzggMC0xLjgxLTEuMDYtMi44NC0zLjYxLTMuNDRsLTEuMzctLjMzYy0xLjYtLjQtMi4yNS0uOTItMi4yNS0xLjggMC0xLjEgMS4wMi0xLjg1IDIuNTItMS44NXMyLjUyLjc1IDIuNjMgMS45OWgxLjg4Yy0uMDYtMi4xNS0xLjg2LTMuNjItNC40OS0zLjYyLTIuNjUgMC00LjUxIDEuNDctNC41MSAzLjYyIDAgMS43MyAxLjA1IDIuOCAzLjMzIDMuMzRsMS42MS40YzEuNjEuMzkgMi4zLjk2IDIuMyAxLjkzIDAgMS4xLTEuMTMgMS45Mi0yLjcgMS45MnptLTM3LjExLTEuOTRoNC43M2wxLjE0IDMuMzZoMi4wNGwtNC40OS0xMi40MmgtMi4wOEwzNC40MyAzMC41aDJsMS4xNC0zLjM2em00LjI0LTEuNTVoLTMuNzVsMS44NS01LjQ1aC4wNWwxLjg1IDUuNDV6bTkuNTcgNWMyLjI3IDAgMy43OC0xLjggMy43OC00LjYyIDAtMi44LTEuNTEtNC42Mi0zLjgxLTQuNjJhMy4yMSAzLjIxIDAgMCAwLTIuODkgMS42aC0uMDN2LTEuNWgtMS44djEyLjA0aDEuODZ2LTQuNDhoLjA0YTMuMDcgMy4wNyAwIDAgMCAyLjg1IDEuNTh6bS0uNTItNy42NmMxLjQ0IDAgMi4zOSAxLjIgMi4zOSAzLjA0IDAgMS44NS0uOTUgMy4wNS0yLjQgMy4wNS0xLjQxIDAtMi4zNy0xLjIzLTIuMzctMy4wNSAwLTEuOC45Ni0zLjA0IDIuMzgtMy4wNHptMTQuMjYgMy4wNGMwIDIuODEtMS41IDQuNjItMy43NyA0LjYyYTMuMDcgMy4wNyAwIDAgMS0yLjg1LTEuNThoLS4wNXY0LjQ4SDU2LjZWMjEuNDRoMS44djEuNWguMDNhMy4yMSAzLjIxIDAgMCAxIDIuODgtMS42YzIuMyAwIDMuODEgMS44MiAzLjgxIDQuNjN6bS0xLjkgMGMwLTEuODMtLjk1LTMuMDQtMi40LTMuMDQtMS40MiAwLTIuMzcgMS4yMy0yLjM3IDMuMDQgMCAxLjgyLjk1IDMuMDUgMi4zNyAzLjA1IDEuNDUgMCAyLjQtMS4yIDIuNC0zLjA1em0yMC4xMy02LjY3djIuMTRoMS43MnYxLjQ3aC0xLjcydjVjMCAuNzcuMzQgMS4xMyAxLjEgMS4xMy4yIDAgLjQtLjAyLjYtLjA0djEuNDZjLS4zMy4wNy0uNjguMS0xLjAyLjA5LTEuODQgMC0yLjU1LS43LTIuNTUtMi40NXYtNS4xOWgtMS4zMnYtMS40N2gxLjMyVjE5LjNoMS44N3ptNyAyLjAzYy0yLjYgMC00LjI4IDEuOC00LjI4IDQuNjQgMCAyLjg2IDEuNjYgNC42NCA0LjI5IDQuNjRzNC4zLTEuNzggNC4zLTQuNjRjMC0yLjg1LTEuNjgtNC42NC00LjMtNC42NHptMCAxLjUzYzEuNTIgMCAyLjQxIDEuMTYgMi40MSAzLjExIDAgMS45Ni0uOSAzLjEtMi40IDMuMXMtMi40LTEuMTQtMi40LTMuMWMwLTEuOTUuOS0zLjEgMi40LTMuMXptNS44NC0xLjQyaDEuNzd2MS41NEg5OGEyLjE2IDIuMTYgMCAwIDEgMi4xOC0xLjYzYy4yMSAwIC40My4wMi42NC4wN3YxLjc0YTIuNiAyLjYgMCAwIDAtLjg0LS4xMiAxLjg3IDEuODcgMCAwIDAtMS45NCAyLjA5djUuMzdIOTYuMnYtOS4wNnptOS4zIDkuMTdjMi4wNCAwIDMuNjUtMS4xMyAzLjktMi43N2gtMS43N2EyLjA1IDIuMDUgMCAwIDEtMi4xIDEuMjcgMi4zNiAyLjM2IDAgMCAxLTIuNDMtMi41NnYtLjEyaDYuNHYtLjYzYzAtMi43NS0xLjU4LTQuNDctNC4wOC00LjQ3LTIuNTUgMC00LjIgMS44NC00LjIgNC42OCAwIDIuODMgMS42NCA0LjYgNC4yOCA0LjZ6bTIuMTQtNS40OGgtNC41M2EyLjMyIDIuMzIgMCAwIDEgLjY4LTEuNjIgMi4zIDIuMyAwIDAgMSAxLjYzLS42NyAyLjE4IDIuMTggMCAwIDEgMi4yMiAyLjN6IiBmaWxsPSIjZmZmIi8+PHJlY3QgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTE4IiBoZWlnaHQ9IjM5IiByeD0iNS41IiBzdHJva2U9IiM0QzRCNTEiLz48L3N2Zz4=)}.yc-store-badge__image_platform_ios.yc-store-badge__image_lang_en,.yc-store-badge__image_platform_ios.yc-store-badge_lang_en,.yc-store-badge_platform_ios.yc-store-badge__image_lang_en,.yc-store-badge_platform_ios.yc-store-badge_lang_en{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE5IiBoZWlnaHQ9IjQwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMTMgLjVINkE1LjUgNS41IDAgMCAwIC41IDZ2MjhBNS41IDUuNSAwIDAgMCA2IDM5LjVoMTA3YTUuNSA1LjUgMCAwIDAgNS41LTUuNVY2QTUuNSA1LjUgMCAwIDAgMTEzIC41eiIgZmlsbD0iIzAwMCIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMuMTUgOC43MmMuMSAxLjI2LS4zIDIuNTItMS4xMSAzLjVhNC4xIDQuMSAwIDAgMS0zLjI0IDEuNTIgNC42MyA0LjYzIDAgMCAxIDEuMTQtMy4zNiA0Ljk2IDQuOTYgMCAwIDEgMy4yMS0xLjY2em0yLjI2IDkuMmE0Ljc4IDQuNzggMCAwIDAgMi4yNyA2Ljc4Yy0uMzMgMS4xLS44NCAyLjE1LTEuNTEgMy4xLS45IDEuMzMtMS44MyAyLjY0LTMuMzIgMi42Ni0uNy4wMi0xLjE5LS4xOS0xLjY4LS40LS41Mi0uMjItMS4wNi0uNDUtMS45MS0uNDUtLjkgMC0xLjQ3LjI0LTIuMDEuNDctLjQ3LjItLjkzLjM5LTEuNTcuNDEtMS40Mi4wNi0yLjUtMS40Mi0zLjQzLTIuNzUtMS44NS0yLjctMy4zLTcuNjMtMS4zNi0xMC45N2E1LjMxIDUuMzEgMCAwIDEgNC40Ny0yLjczYy44LS4wMiAxLjU4LjMgMi4yNS41Ni41Mi4yMS45OC40IDEuMzYuNC4zMyAwIC43OC0uMTggMS4zLS4zOS44My0uMzMgMS44NC0uNzMgMi44Ni0uNjJhNS4wNiA1LjA2IDAgMCAxIDQgMi4xNiA0Ljk1IDQuOTUgMCAwIDAtMS43MiAxLjc3em00OS4yNyAxMS4xNmMtMS42NCAwLTIuODMtLjgxLTIuOTctMi4wNGgtMS45Yy4xMiAyLjI0IDEuOTggMy42NiA0LjczIDMuNjYgMi45NCAwIDQuOC0xLjQ1IDQuOC0zLjc4IDAtMS44MS0xLjA2LTIuODQtMy42MS0zLjQ0bC0xLjM3LS4zM2MtMS42LS40LTIuMjUtLjkyLTIuMjUtMS44IDAtMS4xIDEuMDItMS44NSAyLjUyLTEuODVzMi41Mi43NSAyLjYzIDEuOTloMS44OGMtLjA2LTIuMTUtMS44Ni0zLjYyLTQuNDktMy42Mi0yLjY1IDAtNC41MSAxLjQ3LTQuNTEgMy42MiAwIDEuNzMgMS4wNSAyLjggMy4zMyAzLjM0bDEuNjEuNGMxLjYxLjM5IDIuMy45NiAyLjMgMS45MyAwIDEuMS0xLjEzIDEuOTItMi43IDEuOTJ6bS0zNy4xMS0xLjk0aDQuNzNsMS4xNCAzLjM2aDIuMDRsLTQuNDktMTIuNDJoLTIuMDhMMzQuNDMgMzAuNWgybDEuMTQtMy4zNnptNC4yNC0xLjU1aC0zLjc1bDEuODUtNS40NWguMDVsMS44NSA1LjQ1em05LjU3IDVjMi4yNyAwIDMuNzgtMS44IDMuNzgtNC42MiAwLTIuOC0xLjUxLTQuNjItMy44MS00LjYyYTMuMjEgMy4yMSAwIDAgMC0yLjg5IDEuNmgtLjAzdi0xLjVoLTEuOHYxMi4wNGgxLjg2di00LjQ4aC4wNGEzLjA3IDMuMDcgMCAwIDAgMi44NSAxLjU4em0tLjUyLTcuNjZjMS40NCAwIDIuMzkgMS4yIDIuMzkgMy4wNCAwIDEuODUtLjk1IDMuMDUtMi40IDMuMDUtMS40MSAwLTIuMzctMS4yMy0yLjM3LTMuMDUgMC0xLjguOTYtMy4wNCAyLjM4LTMuMDR6bTE0LjI2IDMuMDRjMCAyLjgxLTEuNSA0LjYyLTMuNzcgNC42MmEzLjA3IDMuMDcgMCAwIDEtMi44NS0xLjU4aC0uMDV2NC40OEg1Ni42VjIxLjQ0aDEuOHYxLjVoLjAzYTMuMjEgMy4yMSAwIDAgMSAyLjg4LTEuNmMyLjMgMCAzLjgxIDEuODIgMy44MSA0LjYzem0tMS45IDBjMC0xLjgzLS45NS0zLjA0LTIuNC0zLjA0LTEuNDIgMC0yLjM3IDEuMjMtMi4zNyAzLjA0IDAgMS44Mi45NSAzLjA1IDIuMzcgMy4wNSAxLjQ1IDAgMi40LTEuMiAyLjQtMy4wNXptMjAuMTMtNi42N3YyLjE0aDEuNzJ2MS40N2gtMS43MnY1YzAgLjc3LjM0IDEuMTMgMS4xIDEuMTMuMiAwIC40LS4wMi42LS4wNHYxLjQ2Yy0uMzMuMDctLjY4LjEtMS4wMi4wOS0xLjg0IDAtMi41NS0uNy0yLjU1LTIuNDV2LTUuMTloLTEuMzJ2LTEuNDdoMS4zMlYxOS4zaDEuODd6bTcgMi4wM2MtMi42IDAtNC4yOCAxLjgtNC4yOCA0LjY0IDAgMi44NiAxLjY2IDQuNjQgNC4yOSA0LjY0czQuMy0xLjc4IDQuMy00LjY0YzAtMi44NS0xLjY4LTQuNjQtNC4zLTQuNjR6bTAgMS41M2MxLjUyIDAgMi40MSAxLjE2IDIuNDEgMy4xMSAwIDEuOTYtLjkgMy4xLTIuNCAzLjFzLTIuNC0xLjE0LTIuNC0zLjFjMC0xLjk1LjktMy4xIDIuNC0zLjF6bTUuODQtMS40MmgxLjc3djEuNTRIOThhMi4xNiAyLjE2IDAgMCAxIDIuMTgtMS42M2MuMjEgMCAuNDMuMDIuNjQuMDd2MS43NGEyLjYgMi42IDAgMCAwLS44NC0uMTIgMS44NyAxLjg3IDAgMCAwLTEuOTQgMi4wOXY1LjM3SDk2LjJ2LTkuMDZ6bTkuMyA5LjE3YzIuMDQgMCAzLjY1LTEuMTMgMy45LTIuNzdoLTEuNzdhMi4wNSAyLjA1IDAgMCAxLTIuMSAxLjI3IDIuMzYgMi4zNiAwIDAgMS0yLjQzLTIuNTZ2LS4xMmg2LjR2LS42M2MwLTIuNzUtMS41OC00LjQ3LTQuMDgtNC40Ny0yLjU1IDAtNC4yIDEuODQtNC4yIDQuNjggMCAyLjgzIDEuNjQgNC42IDQuMjggNC42em0yLjE0LTUuNDhoLTQuNTNhMi4zMiAyLjMyIDAgMCAxIC42OC0xLjYyIDIuMyAyLjMgMCAwIDEgMS42My0uNjcgMi4xOCAyLjE4IDAgMCAxIDIuMjIgMi4zek01OS45OCA4LjQ0aC0uODl2Ni4yNmguOVY4LjQ0em0tMjIuMTUuM2EyLjY0IDIuNjQgMCAwIDEgMi44IDIuOTZjMCAxLjktMS4wMyAzLTIuOCAzaC0yLjE2VjguNzNoMi4xNnptLTEuMjMgNS4xMWgxLjEyYTEuODggMS44OCAwIDAgMCAxLjk3LTIuMTQgMS44OCAxLjg4IDAgMCAwLTEuOTctMi4xNEgzNi42djQuMjh6bTUuMDgtMS40YTIuMTMgMi4xMyAwIDEgMSA0LjI1IDAgMi4xMyAyLjEzIDAgMSAxLTQuMjUgMHptMy4zMyAwYzAtLjk4LS40My0xLjU1LTEuMi0xLjU1LS43OCAwLTEuMjEuNTctMS4yMSAxLjU0IDAgLjk5LjQzIDEuNTUgMS4yIDEuNTUuNzggMCAxLjIxLS41NyAxLjIxLTEuNTV6bTUuNjQgMi4yNWguOTJsMS4yNC00LjVoLS44OWwtLjggMy40M2gtLjA3bC0uOTMtMy40NGgtLjg1bC0uOTMgMy40NGgtLjA2bC0uOC0zLjQ0aC0uOTFsMS4yNCA0LjVoLjkxbC45My0zLjNoLjA3bC45MyAzLjN6bTMuMi00LjVoLjg2di43MWguMDdhMS4zNSAxLjM1IDAgMCAxIDEuMzQtLjggMS40NyAxLjQ3IDAgMCAxIDEuNTYgMS42N3YyLjkyaC0uOVYxMmMwLS43Mi0uMy0xLjA4LS45Ni0xLjA4YTEuMDMgMS4wMyAwIDAgMC0xLjA4IDEuMTR2Mi42NGgtLjg5di00LjV6bTcuMzcgMi4yNGEyLjEzIDIuMTMgMCAxIDEgNC4yNSAwIDIuMTMgMi4xMyAwIDEgMS00LjI1IDB6bTMuMzMgMGMwLS45Ny0uNDQtMS41NC0xLjItMS41NC0uNzggMC0xLjIxLjU3LTEuMjEgMS41NCAwIC45OS40MyAxLjU1IDEuMiAxLjU1czEuMjEtLjU3IDEuMjEtMS41NXptMy41My0uMzZjLTEuMDguMDctMS42OC41My0xLjY4IDEuMzRhMS4zNiAxLjM2IDAgMCAwIDEuNSAxLjM1IDEuNTIgMS41MiAwIDAgMCAxLjM1LS43aC4wN3YuNjNoLjg2di0zLjA4YzAtLjk1LS42NC0xLjUxLTEuNzctMS41MS0xLjAyIDAtMS43NC41LTEuODQgMS4yN2guODdjLjEtLjMyLjQ0LS41LjkzLS41LjYxIDAgLjkzLjI3LjkzLjc0di4zOWwtMS4yMi4wN3ptMS4yMi41OHYuMzhhMS4wNiAxLjA2IDAgMCAxLTEuMTcuOThjLS40OCAwLS44NC0uMjMtLjg0LS42NCAwLS40LjI5LS42LjktLjY1bDEuMS0uMDd6bTIuMDUtLjIyYzAtMS40Mi43My0yLjMyIDEuODctMi4zMmExLjQ4IDEuNDggMCAwIDEgMS4zOC43OWguMDZWOC40NGguOXY2LjI2aC0uODZ2LS43MWgtLjA3YTEuNTYgMS41NiAwIDAgMS0xLjQxLjc4Yy0xLjE1IDAtMS44Ny0uOS0xLjg3LTIuMzN6bS45MiAwYzAgLjk2LjQ1IDEuNTMgMS4yIDEuNTNzMS4yMS0uNTggMS4yMS0xLjUyYzAtLjk0LS40Ny0xLjUzLTEuMjEtMS41My0uNzUgMC0xLjIuNTgtMS4yIDEuNTJ6bTcuMDYtLjg3Yy0uMS4yOC0uMTMuNTgtLjEuODdhMi4xMyAyLjEzIDAgMSAwIDQuMjUgMCAyLjEzIDIuMTMgMCAwIDAtNC4xNS0uODd6bTIuMDMtLjY3Yy43NiAwIDEuMi41NyAxLjIgMS41NCAwIC45OC0uNDQgMS41NS0xLjIgMS41NS0uNzggMC0xLjIxLS41Ni0xLjIxLTEuNTUgMC0uOTcuNDMtMS41NCAxLjItMS41NHptMy4zLS43aC44NnYuNzFoLjA3YTEuMzUgMS4zNSAwIDAgMSAxLjM1LS44IDEuNDcgMS40NyAwIDAgMSAxLjU1IDEuNjd2Mi45MmgtLjg4VjEyYzAtLjcyLS4zMi0xLjA4LS45OC0xLjA4YTEuMDMgMS4wMyAwIDAgMC0xLjA3IDEuMTR2Mi42NGgtLjl2LTQuNXptOC44Ni4wMlY5LjA3aC0uOXYxLjE1aC0uN3YuNzRoLjd2Mi41NWMwIC44Ny40IDEuMjEgMS4zOSAxLjIxLjE2IDAgLjMyLS4wMS40OC0uMDR2LS43NGwtLjM0LjAyYy0uNDQgMC0uNjMtLjItLjYzLS42OHYtMi4zMmguOTd2LS43NGgtLjk3em0yLjE4LTEuNzhoLjg5djIuNDhoLjA3YTEuMzggMS4zOCAwIDAgMSAxLjM3LS44IDEuNDkgMS40OSAwIDAgMSAxLjU1IDEuNjd2Mi45aC0uODl2LTIuNjhjMC0uNzItLjMzLTEuMDgtLjk2LTEuMDhhMS4wNSAxLjA1IDAgMCAwLTEuMTQgMS4xNHYyLjYzaC0uODlWOC40NHptOC4zMiA2LjA1Yy4zNi0uMjQuNjItLjYuNzQtMWgtLjg1YTEuMDggMS4wOCAwIDAgMS0xLjA4LjU0IDEuMTkgMS4xOSAwIDAgMS0xLjItMS4zdi0uMDRoMy4xOXYtLjMxYzAtMS40Mi0uNzYtMi4yNy0yLjAxLTIuMjdhMi4wOCAyLjA4IDAgMCAwLTIuMDggMi4zNSAyLjAzIDIuMDMgMCAwIDAgMS4yMiAyLjE2Yy4yNy4xMi41Ni4xNy44Ni4xNi40My4wNS44Ni0uMDUgMS4yMS0uM3ptLS4xMS0yLjQ2aC0yLjI3YTEuMTUgMS4xNSAwIDAgMSAxLjE2LTEuMTcgMS4wOCAxLjA4IDAgMCAxIDEuMTEgMS4xN3oiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTEzIC41SDZBNS41IDUuNSAwIDAgMCAuNSA2djI4QTUuNSA1LjUgMCAwIDAgNiAzOS41aDEwN2E1LjUgNS41IDAgMCAwIDUuNS01LjVWNkE1LjUgNS41IDAgMCAwIDExMyAuNXoiIHN0cm9rZT0iIzRDNEI1MSIvPjwvc3ZnPg==)}.yc-store-badge__image_platform_android,.yc-store-badge_platform_android{width:135px}.yc-store-badge__image_platform_android.yc-store-badge__image_lang_ru,.yc-store-badge__image_platform_android.yc-store-badge_lang_ru,.yc-store-badge_platform_android.yc-store-badge__image_lang_ru,.yc-store-badge_platform_android.yc-store-badge_lang_ru{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjQwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHg9Ii41IiB5PSIuNSIgd2lkdGg9IjEzNCIgaGVpZ2h0PSIzOSIgcng9IjUuNSIgZmlsbD0iIzAwMCIvPjxwYXRoIGQ9Ik0xMC40NyA3LjRjLS4zLjMyLS40Ni44LS40NiAxLjQydjIyLjM2YzAgLjYzLjE3IDEuMTEuNDYgMS40MWwuMDcuMDggMTIuMzQtMTIuNTJ2LS4zTDEwLjU0IDcuMzNsLS4wNy4wN3oiIGZpbGw9InVybCgjYSkiLz48cGF0aCBkPSJtMjcgMjQuMzMtNC4xMi00LjE4di0uM2w0LjExLTQuMTguMS4wNSA0Ljg2IDIuODFjMS40LjggMS40IDIuMTIgMCAyLjkybC00Ljg3IDIuODEtLjA5LjA3eiIgZmlsbD0idXJsKCNiKSIvPjxwYXRoIGQ9Ik0yNy4wOCAyNC4yOCAyMi44OCAyMCAxMC40NyAzMi42Yy40Ni41IDEuMjEuNTUgMi4wNy4wNmwxNC41NC04LjM4eiIgZmlsbD0idXJsKCNjKSIvPjxwYXRoIGQ9Ik0yNy4wOCAxNS43MyAxMi41MyA3LjM0Yy0uODYtLjUtMS42MS0uNDMtMi4wNy4wNkwyMi44OCAyMGw0LjItNC4yN3oiIGZpbGw9InVybCgjZCkiLz48cGF0aCBvcGFjaXR5PSIuMiIgZD0ibTI3IDI0LjE3LTE0LjQ3IDguMzRjLS44LjQ3LTEuNTMuNDQtMiAuMDFsLS4wNi4wOC4wNy4wN2MuNDcuNDIgMS4xOC40NSAxLjk5LS4wMWwxNC41NS04LjQtLjA5LS4wOXoiIGZpbGw9IiMwMDAiLz48cGF0aCBvcGFjaXR5PSIuMTIiIGQ9Ik0xMC40NyAzMi40NWMtLjMtLjMxLS40Ni0uOC0uNDYtMS40MXYuMTVjMCAuNjMuMTcgMS4xMS40NiAxLjQxbC4wNy0uMDctLjA3LS4wOHptMjEuNDgtMTEuMTQtNC45NyAyLjg3LjEuMDkgNC44Ni0yLjgxYy43LS40IDEuMDUtLjkzIDEuMDUtMS40Ni0uMDUuNDgtLjQuOTUtMS4wNCAxLjMxeiIgZmlsbD0iIzAwMCIvPjxwYXRoIG9wYWNpdHk9Ii4yNSIgZD0ibTEyLjUzIDcuNDkgMTkuNDIgMTEuMmMuNjMuMzYuOTkuODMgMS4wNSAxLjMxIDAtLjUyLS4zNS0xLjA2LTEuMDUtMS40NUwxMi41MyA3LjM1QzExLjEzIDYuNTQgMTAgNy4yIDEwIDguODJ2LjE1YzAtMS42MyAxLjE1LTIuMyAyLjUzLTEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTU3Ljc3IDYuNzRBMy4xOCAzLjE4IDAgMCAwIDU0LjU5IDEwYTMuMTYgMy4xNiAwIDAgMCA1LjYgMi4xMmwuMDYtLjA4LS42OC0uNy0uMDguMWEyLjIgMi4yIDAgMCAxLTEuNzMuODNjLS42MiAwLTEuMTQtLjItMS41Ni0uNjNhMi4yMiAyLjIyIDAgMCAxLS42My0xLjY1YzAtLjY5LjIxLTEuMjQuNjMtMS42NS40Mi0uNDIuOTUtLjYzIDEuNTYtLjYzLjY3IDAgMS4xOC4yMyAxLjU2LjcybC4wNy4xLjctLjY4LS4wNy0uMDhhMi44MyAyLjgzIDAgMCAwLTIuMjUtMS4wMnptLTYuODcuMDJjLS45IDAtMS42NC4zMS0yLjI0Ljk0LS42LjYzLS45IDEuNC0uOSAyLjMgMCAuOS4zIDEuNjYuOSAyLjMuNi42MyAxLjM1Ljk0IDIuMjQuOTQuOSAwIDEuNjUtLjMxIDIuMjUtLjk1LjYtLjYyLjktMS4zOC45LTIuMyAwLS44OS0uMy0xLjY1LS45LTIuMjlhMyAzIDAgMCAwLTIuMjUtLjk0ek00OC43NSAxMGMwLS42OC4yMS0xLjIyLjYzLTEuNjYuNC0uNDIuOTItLjYzIDEuNTItLjYzLjYxIDAgMS4xMi4yMiAxLjUzLjY0LjQyLjQzLjYzLjk3LjYzIDEuNjUgMCAuNjctLjIyIDEuMjItLjYzIDEuNjQtLjQxLjQzLS45Mi42NC0xLjUzLjY0LS42IDAtMS4xMS0uMi0xLjUzLS42NGEyLjI2IDIuMjYgMCAwIDEtLjYyLTEuNjR6TTQ2LjYgNi45aC00LjE3djMuMDZjLjAxIDEuMDYtLjIyIDEuNzctLjY4IDIuMmgtLjY1djIuMjJoLjk1VjEzLjFoNC4yNnYxLjI3aC45NXYtMi4yM2gtLjY2VjYuOXptLTMuMTggMy4wN1Y3Ljg1aDIuMnY0LjMxaC0yLjY4Yy4zMy0uNTguNDgtMS4zMS40OC0yLjJ6bTIxLjUyLTMuMDhoLTQuMjd2Ljk2aDEuNjV2NS4yNmguODdWMTNoLjFWNy44NWgxLjY1di0uOTZ6bTEuMzcgMGgtMS4xM2wyLjA0IDQuNTUtLjIuNDRhLjguOCAwIDAgMS0uMjMuMzNjLS4wNy4wNS0uMTguMDgtLjM1LjA4YS43LjcgMCAwIDEtLjM0LS4xbC0uMTItLjA2LS4yNi45My4wOS4wNGMuMjIuMS40NC4xNC42My4xNC4zMyAwIC42Mi0uMS44Ny0uMy4yNS0uMTkuNDUtLjQ3LjYtLjg0bDIuMzEtNS4ySDY5LjFsLTEuMzggMy4zLTEuNC0zLjN6bTguOTkgMGgtNC41djYuMjJoLjk4VjcuODVoMi41NHY1LjI2aC45OFY2Ljg5em0yLjEgMGgtLjk3djYuMjJoLjk3VjEwLjRoMi43NHYyLjdoLjk4VjYuOWgtLjk4djIuNTZINzcuNFY2Ljl6bTcuNjQtLjEzYy0uOSAwLTEuNjQuMzEtMi4yNS45NC0uNi42My0uOSAxLjQtLjkgMi4zIDAgLjkuMyAxLjY2LjkgMi4zLjYuNjMgMS4zNS45NCAyLjI1Ljk0LjkgMCAxLjY0LS4zMSAyLjI0LS45NS42LS42Mi45LTEuMzguOTEtMi4yOSAwLS45LS4zLTEuNjYtLjktMi4zYTMgMyAwIDAgMC0yLjI1LS45NHpNODMuNSA4LjM0Yy40MS0uNDIuOTMtLjYzIDEuNTMtLjYzczEuMS4yMiAxLjUzLjY1Yy40Mi40Mi42My45Ni42MyAxLjY0IDAgLjY3LS4yMiAxLjIyLS42MyAxLjY0LS40MS40My0uOTMuNjQtMS41My42NHMtMS4xMi0uMi0xLjUzLS42NGEyLjIzIDIuMjMgMCAwIDEtLjYzLTEuNjRjMC0uNjguMTktMS4yLjYzLTEuNjZ6bTkuOC0xLjQ1aC0yLjI0djYuMjJoMi4zNmMuNTEgMCAuOTYtLjE3IDEuMzUtLjU0LjM4LS4zNC41Ni0uNzguNTYtMS4zYTEuNTUgMS41NSAwIDAgMC0uODktMS40IDEuNDQgMS40NCAwIDAgMCAuNjktMS4yNGMwLS40OS0uMTgtLjktLjU1LTEuMjVhMS44NiAxLjg2IDAgMCAwLTEuMjctLjQ5em0tMS4yNyAyLjU3VjcuODRoMS4zYy4yNSAwIC40NC4wOS41OC4yNS4xNi4xNy4yMy4zNi4yMy41NiAwIC4yLS4wNy4zOS0uMjIuNTZhLjguOCAwIDAgMS0uNjEuMjVoLTEuMjh6bTAgMi43VjEwLjRoMS4zOGMuMjggMCAuNS4xLjY2LjI3YS44LjggMCAwIDEgLjI2LjZjMCAuMjItLjA5LjQxLS4yNS42MWEuNzcuNzcgMCAwIDEtLjYzLjI3aC0xLjQzeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik02OC4xIDIxLjdhNC4yIDQuMiAwIDAgMC00LjMgNC4zYzAgMi40IDEuOSA0LjMgNC4zIDQuM3M0LjMtMS44IDQuMy00LjMtMi00LjMtNC4zLTQuM3ptMCA2LjhjLTEuMyAwLTIuNC0xLjEtMi40LTIuNnMxLjEtMi42IDIuNC0yLjZjMS4zIDAgMi40IDEgMi40IDIuNnMtMS4xIDIuNi0yLjQgMi42em0tOS4zLTYuOGE0LjIgNC4yIDAgMCAwLTQuMyA0LjNjMCAyLjQgMS45IDQuMyA0LjMgNC4zczQuMy0xLjggNC4zLTQuM2MtLjEtMi41LTItNC4zLTQuMy00LjN6bTAgNi44Yy0xLjMgMC0yLjQtMS4xLTIuNC0yLjZzMS4xLTIuNiAyLjQtMi42YzEuMyAwIDIuNCAxIDIuNCAyLjZzLTEuMSAyLjYtMi40IDIuNnpNNDcuNyAyM3YxLjhINTJjLS4xIDEtLjUgMS44LTEgMi4zLS42LjYtMS42IDEuMy0zLjMgMS4zLTIuNyAwLTQuNy0yLjItNC43LTQuOCAwLTIuNiAyLjEtNC44IDQuNy00LjggMS40IDAgMi41LjYgMy4zIDEuM2wxLjMtMS4zYTYuNCA2LjQgMCAwIDAtNC41LTEuOGMtMy42IDAtNi43IDMtNi43IDYuNiAwIDMuNiAzLjEgNi42IDYuNyA2LjYgMiAwIDMuNC0uNiA0LjYtMS45IDEuMi0xLjIgMS42LTIuOSAxLjYtNC4yIDAtLjQgMC0uOC0uMS0xLjFoLTYuMnpNOTMgMjQuNGMtLjQtMS0xLjQtMi43LTMuNi0yLjdzLTQgMS43LTQgNC4zYzAgMi40IDEuOCA0LjMgNC4yIDQuMyAxLjkgMCAzLjEtMS4yIDMuNS0xLjlsLTEuNC0xYy0uNS43LTEuMSAxLjItMi4xIDEuMnMtMS42LS40LTIuMS0xLjNsNS43LTIuNC0uMi0uNXptLTUuOCAxLjRjMC0xLjYgMS4zLTIuNSAyLjItMi41LjcgMCAxLjQuNCAxLjYuOWwtMy44IDEuNnptLTQuNiA0LjFoMS45VjE3LjRoLTEuOXYxMi41em0tMy4xLTcuM2MtLjUtLjUtMS4zLTEtMi4zLTFhNC4zIDQuMyAwIDAgMC00LjEgNC4zYzAgMi40IDEuOSA0LjIgNC4xIDQuMiAxIDAgMS44LS41IDIuMi0xaC4xdi42YzAgMS42LS45IDIuNS0yLjMgMi41LTEuMSAwLTEuOS0uOC0yLjEtMS41bC0xLjYuN2MuNSAxLjEgMS43IDIuNSAzLjggMi41IDIuMiAwIDQtMS4zIDQtNC40di03LjZoLTEuOHYuN3ptLTIuMSA1LjljLTEuMyAwLTIuNC0xLjEtMi40LTIuNnMxLjEtMi42IDIuNC0yLjZjMS4zIDAgMi4zIDEuMSAyLjMgMi42cy0xIDIuNi0yLjMgMi42em0yNC40LTExLjFoLTQuNXYxMi41aDEuOXYtNC43aDIuNmMyLjEgMCA0LjEtMS41IDQuMS0zLjlzLTIuMS0zLjktNC4xLTMuOXptMCA2LjFoLTIuN3YtNC4zaDIuN2MxLjQgMCAyLjIgMS4yIDIuMiAyLjEgMCAxLS44IDIuMi0yLjIgMi4yem0xMS41LTEuOGMtMS40IDAtMi44LjYtMy4zIDEuOWwxLjcuN2MuNC0uNyAxLS45IDEuNy0uOSAxIDAgMS45LjYgMiAxLjZ2LjFjLS4zLS4yLTEuMS0uNS0xLjktLjUtMS44IDAtMy42IDEtMy42IDIuOCAwIDEuNyAxLjUgMi44IDMuMSAyLjggMS4zIDAgMS45LS42IDIuNC0xLjJoLjF2MWgxLjh2LTQuOGMtLjItMi4zLTEuOC0zLjUtNC0zLjV6bS0uMiA2LjhjLS42IDAtMS41LS4zLTEuNS0xLjEgMC0xIDEuMS0xLjMgMi0xLjMuOCAwIDEuMi4yIDEuNy40LS4xIDEuMi0xLjEgMi0yLjIgMnptMTAuNi02LjYtMi4xIDUuNGgtLjFsLTIuMi01LjRoLTJsMy4zIDcuNi0xLjkgNC4yaDEuOWw1LjEtMTEuOGgtMnptLTE2LjggOGgxLjlWMTcuNGgtMS45djEyLjV6IiBmaWxsPSIjZmZmIi8+PHJlY3QgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTM0IiBoZWlnaHQ9IjM5IiByeD0iNS41IiBzdHJva2U9IiM0QzRCNTEiLz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIyMS43OCIgeTE9IjguNTgiIHgyPSI0LjgyIiB5Mj0iMjUuMyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMwMEEwRkYiLz48c3RvcCBvZmZzZXQ9Ii4wMSIgc3RvcC1jb2xvcj0iIzAwQTFGRiIvPjxzdG9wIG9mZnNldD0iLjI2IiBzdG9wLWNvbG9yPSIjMDBCRUZGIi8+PHN0b3Agb2Zmc2V0PSIuNTEiIHN0b3AtY29sb3I9IiMwMEQyRkYiLz48c3RvcCBvZmZzZXQ9Ii43NiIgc3RvcC1jb2xvcj0iIzAwREZGRiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwRTNGRiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iMzMuNzciIHkxPSIyMCIgeDI9IjkuNjciIHkyPSIyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNGRkUwMDAiLz48c3RvcCBvZmZzZXQ9Ii40MSIgc3RvcC1jb2xvcj0iI0ZGQkQwMCIvPjxzdG9wIG9mZnNldD0iLjc4IiBzdG9wLWNvbG9yPSJvcmFuZ2UiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRjlDMDAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9IjI0LjgiIHkxPSIyMi4zMiIgeDI9IjEuOCIgeTI9IjQ0Ljk5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI0ZGM0E0NCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0MzMTE2MiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJkIiB4MT0iNy4zNCIgeTE9Ii0uMDQiIHgyPSIxNy42MSIgeTI9IjEwLjA4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzMyQTA3MSIvPjxzdG9wIG9mZnNldD0iLjA3IiBzdG9wLWNvbG9yPSIjMkRBNzcxIi8+PHN0b3Agb2Zmc2V0PSIuNDgiIHN0b3AtY29sb3I9IiMxNUNGNzQiLz48c3RvcCBvZmZzZXQ9Ii44IiBzdG9wLWNvbG9yPSIjMDZFNzc1Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDBGMDc2Ii8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+)}.yc-store-badge__image_platform_android.yc-store-badge__image_lang_en,.yc-store-badge__image_platform_android.yc-store-badge_lang_en,.yc-store-badge_platform_android.yc-store-badge__image_lang_en,.yc-store-badge_platform_android.yc-store-badge_lang_en{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjQwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMjkgLjVINkMzIC41LjUgMyAuNSA2djI4YzAgMyAyLjUgNS41IDUuNSA1LjVoMTIzYzMgMCA1LjUtMi41IDUuNS01LjVWNmMwLTMtMi41LTUuNS01LjUtNS41eiIgZmlsbD0iIzAwMCIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDcuNCA5LjZoLTMuMXYuOWgyLjJjLS4xLjUtLjIuOC0uNSAxLjFhMi41IDIuNSAwIDAgMS0zLjIgMGMtLjQtLjQtLjctMS0uNy0xLjdzLjMtMS4yLjgtMS42Yy40LS40IDEtLjYgMS42LS42LjcgMCAxLjIuMiAxLjYuN2wuMS4xLjUtLjhjLS4yLS4zLS42LS41LTEtLjctLjQtLjItLjgtLjMtMS4zLS4zLS45IDAtMS42LjMtMi4zLjktLjYuNi0uOSAxLjQtLjkgMi4zIDAgLjkuMyAxLjcuOSAyLjMuNi42IDEuNC45IDIuMy45LjkgMCAxLjctLjMgMi4zLS45LjUtLjUuOC0xLjIuOC0ybC0uMS0uNnptMSAzLjRoMy43di0uOWgtMi43di0xLjdoMi40di0uOWgtMi40VjcuOGgyLjd2LTFoLTMuN1YxM3ptNi01LjJoLTEuN3YtMUg1N3YxaC0xLjdWMTNoLS45VjcuOHptNi40LTFoLTFWMTNoMVY2Ljh6bTIuNCAxaC0xLjd2LTFoNC40djFoLTEuN1YxM2gtMVY3Ljh6bTguMi0xLjFjLS45IDAtMS43LjMtMi4zLjktLjYuNi0uOSAxLjQtLjkgMi4zIDAgLjkuMyAxLjcuOSAyLjMuNi42IDEuNC45IDIuMy45LjkgMCAxLjctLjMgMi4zLS45LjYtLjYuOS0xLjQuOS0yLjMgMC0uOS0uMy0xLjctLjktMi4zLS43LS42LTEuNC0uOS0yLjMtLjl6bTAgNS41Yy0uNiAwLTEuMS0uMi0xLjYtLjYtLjQtLjQtLjYtMS0uNi0xLjdzLjItMS4yLjYtMS43Yy40LS40LjktLjYgMS42LS42LjYgMCAxLjEuMiAxLjYuNi40LjQuNiAxIC42IDEuN3MtLjIgMS4yLS42IDEuN2MtLjUuNC0xIC42LTEuNi42em03LjktMS44VjYuOGgxVjEzaC0xbC0yLjktNC42VjEzaC0xVjYuOGgxLjFsMi44IDQuNXYtLjl6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTY4LjEgMjEuN2E0LjIgNC4yIDAgMCAwLTQuMyA0LjNjMCAyLjQgMS45IDQuMyA0LjMgNC4zczQuMy0xLjggNC4zLTQuMy0yLTQuMy00LjMtNC4zem0wIDYuOGMtMS4zIDAtMi40LTEuMS0yLjQtMi42czEuMS0yLjYgMi40LTIuNmMxLjMgMCAyLjQgMSAyLjQgMi42cy0xLjEgMi42LTIuNCAyLjZ6bS05LjMtNi44YTQuMiA0LjIgMCAwIDAtNC4zIDQuM2MwIDIuNCAxLjkgNC4zIDQuMyA0LjNzNC4zLTEuOCA0LjMtNC4zYy0uMS0yLjUtMi00LjMtNC4zLTQuM3ptMCA2LjhjLTEuMyAwLTIuNC0xLjEtMi40LTIuNnMxLjEtMi42IDIuNC0yLjZjMS4zIDAgMi40IDEgMi40IDIuNnMtMS4xIDIuNi0yLjQgMi42ek00Ny43IDIzdjEuOEg1MmMtLjEgMS0uNSAxLjgtMSAyLjMtLjYuNi0xLjYgMS4zLTMuMyAxLjNhNC43IDQuNyAwIDAgMS00LjctNC44YzAtMi42IDIuMS00LjggNC43LTQuOGE1IDUgMCAwIDEgMy4zIDEuM2wxLjMtMS4zYTYuNCA2LjQgMCAwIDAtNC41LTEuOGMtMy42IDAtNi43IDMtNi43IDYuNiAwIDMuNiAzLjEgNi42IDYuNyA2LjZhNiA2IDAgMCAwIDYuMi02LjFsLS4xLTEuMWgtNi4yek05MyAyNC40Yy0uNC0xLTEuNC0yLjctMy42LTIuN3MtNCAxLjctNCA0LjNjMCAyLjQgMS44IDQuMyA0LjIgNC4zIDEuOSAwIDMuMS0xLjIgMy41LTEuOWwtMS40LTFjLS41LjctMS4xIDEuMi0yLjEgMS4ycy0xLjYtLjQtMi4xLTEuM2w1LjctMi40LS4yLS41em0tNS44IDEuNGMwLTEuNiAxLjMtMi41IDIuMi0yLjUuNyAwIDEuNC40IDEuNi45bC0zLjggMS42em0tNC42IDQuMWgxLjlWMTcuNGgtMS45djEyLjV6bS0zLjEtNy4zYy0uNS0uNS0xLjMtMS0yLjMtMWE0LjMgNC4zIDAgMCAwLTQuMSA0LjNjMCAyLjQgMS45IDQuMiA0LjEgNC4yIDEgMCAxLjgtLjUgMi4yLTFoLjF2LjZjMCAxLjYtLjkgMi41LTIuMyAyLjUtMS4xIDAtMS45LS44LTIuMS0xLjVsLTEuNi43YTQuMSA0LjEgMCAwIDAgMy44IDIuNWMyLjIgMCA0LTEuMyA0LTQuNHYtNy42aC0xLjh2Ljd6bS0yLjEgNS45Yy0xLjMgMC0yLjQtMS4xLTIuNC0yLjZzMS4xLTIuNiAyLjQtMi42YzEuMyAwIDIuMyAxLjEgMi4zIDIuNnMtMSAyLjYtMi4zIDIuNnptMjQuNC0xMS4xaC00LjV2MTIuNWgxLjl2LTQuN2gyLjZjMi4xIDAgNC4xLTEuNSA0LjEtMy45cy0yLjEtMy45LTQuMS0zLjl6bTAgNi4xaC0yLjd2LTQuM2gyLjdjMS40IDAgMi4yIDEuMiAyLjIgMi4xIDAgMS0uOCAyLjItMi4yIDIuMnptMTEuNS0xLjhjLTEuNCAwLTIuOC42LTMuMyAxLjlsMS43LjdjLjQtLjcgMS0uOSAxLjctLjkgMSAwIDEuOS42IDIgMS42di4xYTQgNCAwIDAgMC0xLjktLjVjLTEuOCAwLTMuNiAxLTMuNiAyLjggMCAxLjcgMS41IDIuOCAzLjEgMi44IDEuMyAwIDEuOS0uNiAyLjQtMS4yaC4xdjFoMS44di00LjhjLS4yLTIuMy0xLjgtMy41LTQtMy41em0tLjIgNi44Yy0uNiAwLTEuNS0uMy0xLjUtMS4xIDAtMSAxLjEtMS4zIDItMS4zLjggMCAxLjIuMiAxLjcuNC0uMSAxLjItMS4xIDItMi4yIDJ6bTEwLjYtNi42LTIuMSA1LjRoLS4xbC0yLjItNS40aC0ybDMuMyA3LjYtMS45IDQuMmgxLjlsNS4xLTExLjhoLTJ6bS0xNi44IDhoMS45VjE3LjRoLTEuOXYxMi41eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMC41IDcuNGEyIDIgMCAwIDAtLjUgMS40djIyLjRjMCAuNi4yIDEgLjUgMS40TDIzIDIwLjN2LS40TDEwLjUgNy4zdi4xeiIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0yNyAyNC4zLTQuMS00LjF2LS40bDQtNC4xaC4ybDQuOSAyLjhjMS4zLjggMS4zIDIuMSAwIDNsLTUgMi44eiIgZmlsbD0idXJsKCNiKSIvPjxwYXRoIGQ9Ik0yNyAyNC4zIDIzIDIwIDEwLjUgMzIuNmMuNC41IDEuMi42IDIgMGwxNC42LTguM3oiIGZpbGw9InVybCgjYykiLz48cGF0aCBkPSJNMjcgMTUuNyAxMi42IDcuM2MtLjgtLjUtMS42LS40LTIgLjFMMjIuOSAyMGw0LjItNC4zeiIgZmlsbD0idXJsKCNkKSIvPjxwYXRoIG9wYWNpdHk9Ii4yIiBkPSJtMjcgMjQuMi0xNC41IDguM2MtLjguNS0xLjUuNC0yIDB2LjFjLjUuNSAxLjIuNSAyIDBsMTQuNi04LjMtLjEtLjF6IiBmaWxsPSIjMDAwIi8+PHBhdGggb3BhY2l0eT0iLjEiIGQ9Ik0xMC41IDMyLjVBMiAyIDAgMCAxIDEwIDMxdi4yYzAgLjYuMiAxLjEuNSAxLjR2LS4xek0zMiAyMS4zbC01IDIuOSA1LTIuN2MuNi0uNCAxLTEgMS0xLjUgMCAuNS0uNCAxLTEgMS4zeiIgZmlsbD0iIzAwMCIvPjxwYXRoIG9wYWNpdHk9Ii4zIiBkPSJNMTIuNSA3LjUgMzIgMTguN2MuNi40IDEgLjggMSAxLjMgMC0uNS0uMy0xLTEtMS41TDEyLjUgNy4zYy0xLjQtLjgtMi41IDAtMi41IDEuNVY5YzAtMS42IDEuMS0yLjMgMi41LTEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTI5IC41SDZDMyAuNS41IDMgLjUgNnYyOGMwIDMgMi41IDUuNSA1LjUgNS41aDEyM2MzIDAgNS41LTIuNSA1LjUtNS41VjZjMC0zLTIuNS01LjUtNS41LTUuNXoiIHN0cm9rZT0iIzRDNEI1MSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjIxLjgiIHkxPSI4LjYiIHgyPSI0LjgiIHkyPSIyNS4zIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzAwQTBGRiIvPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzAwQTFGRiIvPjxzdG9wIG9mZnNldD0iLjMiIHN0b3AtY29sb3I9IiMwMEJFRkYiLz48c3RvcCBvZmZzZXQ9Ii41IiBzdG9wLWNvbG9yPSIjMDBEMkZGIi8+PHN0b3Agb2Zmc2V0PSIuOCIgc3RvcC1jb2xvcj0iIzAwREZGRiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwRTNGRiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iMzMuOCIgeTE9IjIwIiB4Mj0iOS43IiB5Mj0iMjAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjRkZFMDAwIi8+PHN0b3Agb2Zmc2V0PSIuNCIgc3RvcC1jb2xvcj0iI0ZGQkQwMCIvPjxzdG9wIG9mZnNldD0iLjgiIHN0b3AtY29sb3I9Im9yYW5nZSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGOUMwMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iMjQuOCIgeTE9IjIyLjMiIHgyPSIxLjgiIHkyPSI0NSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNGRjNBNDQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNDMzExNjIiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZCIgeDE9IjcuMyIgeTE9IjAiIHgyPSIxNy42IiB5Mj0iMTAuMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMzMkEwNzEiLz48c3RvcCBvZmZzZXQ9Ii4xIiBzdG9wLWNvbG9yPSIjMkRBNzcxIi8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iIzE1Q0Y3NCIvPjxzdG9wIG9mZnNldD0iLjgiIHN0b3AtY29sb3I9IiMwNkU3NzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMEYwNzYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=)}.yc-stories__modal-content{border-radius:20px}.yc-stories-layout,.yc-stories-layout__modal{--yc-modal-border-radius:20px}.yc-stories-layout__wrap-outer{background-color:var(--yc-color-base-selection);display:flex;height:calc(100vh - var(--yc-modal-margin)*2);width:calc(100vw - var(--yc-modal-margin)*2)}.yc-stories-layout__wrap-inner,.yc-stories-layout__wrap-outer{border-radius:20px;max-height:640px;max-width:1280px;min-height:480px;min-width:800px}.yc-stories-layout__wrap-inner{background-color:var(--yc-color-base-background);height:100%;width:100%}.yc-stories-layout__container{background-color:var(--yc-color-base-selection);border-radius:20px;box-shadow:0 8px 20px var(--yc-color-sfx-shadow);display:flex;height:100%;position:relative;width:100%}.yc-stories-layout__left-pane{align-items:stretch;background-color:var(--yc-color-base-background);border-radius:17px;box-sizing:border-box;display:flex;flex-direction:column;flex-shrink:0;margin-bottom:8px;margin-left:8px;margin-top:8px;padding:32px;width:464px}.yc-stories-layout__right-pane{align-items:center;display:flex;flex-grow:1;padding:68px}.yc-stories-layout__counter{color:var(--yc-color-text-secondary);font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-2-line-height)}.yc-stories-layout__text-block{align-items:flex-start;display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin-bottom:8px}.yc-stories-layout__text-header{color:var(--yc-color-text-primary);font-size:var(--yc-text-display-2-font-size);font-weight:var(--yc-text-display-font-weight);line-height:var(--yc-text-display-2-line-height)}.yc-stories-layout__text-content{color:var(--yc-color-text-complementary);font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-2-line-height)}.yc-stories-layout__story-link-block,.yc-stories-layout__text-header+.yc-stories-layout__text-content{margin-top:16px}.yc-stories-layout__controls-block{display:flex;justify-content:space-between}.yc-stories-layout__controls-block button{width:calc(50% - 8px)}.yc-stories-layout__media-block{display:flex;height:100%;position:relative;width:100%}.yc-stories-image-view,.yc-stories-video-view{margin:auto;max-height:100%;max-width:100%;width:auto}.yc-stories-group__modal-content{background-color:inherit;border-radius:20px}.yc-stories-group-preview{align-items:center;display:flex;gap:8px;justify-content:center;padding-bottom:16px;-webkit-user-select:none;user-select:none}.yc-stories-group-preview__slider-preview-list-wrapper{display:flex;gap:8px}.yc-stories-group-preview__stories-preview-item{align-items:center;background-color:var(--yc-color-base-background);border-radius:8px;box-sizing:border-box;cursor:pointer;display:flex;height:40px;justify-content:center;overflow:hidden;position:relative;width:40px}.yc-stories-group-preview__stories-preview-item:after{background-color:var(--yc-color-sfx-shadow);content:"";height:40px;left:0;position:absolute;top:0;width:40px}.yc-stories-group-preview__stories-preview-item:hover:not(.yc-stories-group-preview__stories-preview-item_disabled):after,.yc-stories-group-preview__stories-preview-item_active:after{display:none}.yc-stories-group-preview__stories-preview-item_active{border:2px solid var(--yc-color-line-selection-active)}.yc-stories-group-preview__Icon_left{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.yc-stories-group-preview__Icon_right{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.yc-stories-group-preview__slider-button-wrapper{height:28px;width:28px}.yc-switch{-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--yc-color-text-primary);cursor:pointer;display:inline-flex;font-family:var(--yc-text-body-font-family);font-weight:400;position:relative;touch-action:manipulation;-webkit-user-select:none;user-select:none}.yc-switch__control{cursor:pointer;opacity:0}.yc-switch__indicator{display:inline-block;flex-shrink:0;position:relative}.yc-switch__indicator:before{background-color:var(--yc-color-base-generic-medium);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:background .1s linear}.yc-switch__indicator:after{content:" ";visibility:hidden}.yc-switch__slider{background-color:var(--yc-color-base-background);border-radius:50%;content:"";position:absolute;transition:-webkit-transform .15s ease-out;transition:transform .15s ease-out;transition:transform .15s ease-out,-webkit-transform .15s ease-out}.yc-switch__outline{background:none;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.yc-switch__control:focus+.yc-switch__outline{box-shadow:0 0 0 2px var(--yc-color-line-misc)}.yc-switch__control:focus:not(:focus-visible)+.yc-switch__outline{box-shadow:none}.yc-switch__text{white-space:normal}.yc-switch_size_m{font-size:13px;line-height:15px}.yc-switch_size_m .yc-switch__indicator,.yc-switch_size_m .yc-switch__indicator:before,.yc-switch_size_m .yc-switch__outline{border-radius:10px;height:20px;width:36px}.yc-switch_size_m .yc-switch__slider{height:16px;left:2px;top:2px;width:16px}.yc-switch_size_m .yc-switch__text{margin-left:5px;margin-top:3px}.yc-switch_size_l{font-size:15px;line-height:18px}.yc-switch_size_l .yc-switch__indicator,.yc-switch_size_l .yc-switch__indicator:before,.yc-switch_size_l .yc-switch__outline{border-radius:12px;height:24px;width:42px}.yc-switch_size_l .yc-switch__slider{height:18px;left:3px;top:3px;width:18px}.yc-switch_size_l .yc-switch__text{margin-left:7px;margin-top:4px}.yc-switch:hover .yc-switch__indicator:before{background-color:var(--yc-color-base-generic-medium-hover)}.yc-switch_checked .yc-switch__slider{-webkit-transform:translateX(100%);transform:translateX(100%)}.yc-switch_checked .yc-switch__indicator:before,.yc-switch_checked:hover .yc-switch__indicator:before{background-color:var(--yc-color-base-special)}.yc-switch_disabled{cursor:default;pointer-events:none}.yc-switch_disabled .yc-switch__text{opacity:.6}.yc-switch_disabled .yc-switch__indicator:before{background-color:var(--yc-color-base-generic-accent-disabled)}.yc-switch_disabled.yc-switch_checked .yc-switch__indicator:before{background-color:var(--yc-color-base-special);opacity:.5}.yc-table,.yc-table__scroll-container{overflow:auto;position:relative}.yc-table__scroll-container{-ms-overflow-style:none;scrollbar-width:none}.yc-table__scroll-container::-webkit-scrollbar{display:none}.yc-table__horizontal-scroll-bar{margin-top:-1px;overflow-x:auto}.yc-table__horizontal-scroll-bar-inner{height:1px;position:relative}.yc-table__horizontal-scroll-bar-inner:before{background-color:hsla(0,0%,100%,.01);content:"";height:1px;left:0;position:absolute;top:0;width:1px}.yc-table__horizontal-scroll-bar_sticky-horizontal-scroll{position:-webkit-sticky;position:sticky;z-index:3}.yc-table__table{border-collapse:initial;border-spacing:0}.yc-table__cell{border-bottom:1px solid var(--yc-color-line-generic);box-sizing:initial;line-height:18px;overflow:hidden;overflow-wrap:break-word;padding:11px 10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.yc-table__cell:first-child{padding-left:0}.yc-table__cell:last-child{padding-right:0}.yc-table__cell_align_center{text-align:center}.yc-table__cell_align_right{text-align:right}.yc-table__cell_sticky_left,.yc-table__cell_sticky_right{background:var(--yc-color-base-background);position:-webkit-sticky;position:sticky;z-index:2}.yc-table__cell_border_right{border-right:1px solid var(--yc-color-line-generic)}.yc-table__cell_edge-padding:first-child{padding-left:15px}.yc-table__cell_edge-padding:last-child{padding-right:15px}.yc-table__row_vertical-align_top{vertical-align:top}.yc-table__row_vertical-align_middle{vertical-align:middle}.yc-table__row_empty .yc-table__cell{text-align:center}.yc-table__body .yc-table__row:last-child .yc-table__cell{border-bottom-color:transparent}.yc-table__th-content{display:inline-block;font-weight:var(--yc-text-accent-font-weight)}.yc-table__th-content:first-letter{text-transform:uppercase}.yc-table__body .yc-table__row_interactive:hover{background-color:var(--yc-color-base-simple-hover-solid);cursor:pointer}.yc-table__body .yc-table__row_interactive:hover .yc-table__cell_sticky_left,.yc-table__body .yc-table__row_interactive:hover .yc-table__cell_sticky_right{background:var(--yc-color-base-simple-hover-solid)}.yc-table__body .yc-table__row_disabled{opacity:.3}.yc-table_with-primary .yc-table__body .yc-table__cell{color:var(--yc-color-text-secondary)}.yc-table_with-primary .yc-table__body .yc-table__cell_primary{color:var(--yc-color-text-primary)}.yc-table_with-sticky-scroll{overflow:visible}.yc-table__selection-checkbox{display:inline-block}.yc-table__row_selected{background:var(--yc-color-base-selection)}.yc-table__row_selected .yc-table__cell_sticky_left,.yc-table__row_selected .yc-table__cell_sticky_right{background:linear-gradient(to right,var(--yc-color-base-selection),var(--yc-color-base-selection)),linear-gradient(to right,var(--yc-color-base-background),var(--yc-color-base-background))}.yc-table__row_selected.yc-table__row_interactive:hover{background:var(--yc-color-base-selection-hover)}.yc-table__row_selected.yc-table__row_interactive:hover .yc-table__cell_sticky_left,.yc-table__row_selected.yc-table__row_interactive:hover .yc-table__cell_sticky_right{background:linear-gradient(to right,var(--yc-color-base-selection-hover),var(--yc-color-base-selection-hover)),linear-gradient(to right,var(--yc-color-base-background),var(--yc-color-base-background))}.yc-table__actions{align-items:center;display:flex;height:18px}.yc-table-action-popup__menu{max-height:200px;overflow-y:auto}.yc-table-action-popup__menu-item{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yc-table__copy{align-items:center;display:inline-flex}.yc-table__copy-content{margin-right:5px}.yc-table__copy-button{color:var(--yc-color-text-secondary);line-height:0;opacity:.5;visibility:hidden}.yc-table__copy-button:hover{opacity:1}.yc-table__cell:hover .yc-table__copy-button{visibility:visible}.yc-table__sort{align-items:center;cursor:pointer;display:inline-flex;-webkit-user-select:none;user-select:none;vertical-align:middle}.yc-table__sort-spacer{width:5px}.yc-table__sort-indicator{color:var(--yc-color-text-hint);opacity:0}.yc-table__sort_active .yc-table__sort-indicator{color:var(--yc-color-text-primary);opacity:1}.yc-table__sort:hover .yc-table__sort-indicator{opacity:1}.yc-sort-indicator__caret{padding:1px 0}.yc-sort-indicator__caret>svg{display:block}.yc-table__settings{align-items:center;display:flex;height:18px}.yc-table__settings-button{color:var(--yc-color-text-secondary)!important}.yc-table-column-setup__controls{padding:4px}.yc-table-column-setup__status{color:var(--yc-color-text-secondary);margin-left:5px}.yc-table-column-setup__tick-wrap{height:10px;left:14px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);visibility:hidden;width:10px}.yc-table-column-setup__tick-wrap_visible{visibility:visible}.yc-table-column-setup__tick{color:var(--yc-color-base-special)}.yc-table-column-setup__lock-wrap{color:var(--yc-color-text-hint);left:10px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.yc-table-column-setup__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yc-table-column-setup__items{height:var(--yc-list-height);overflow-x:auto}.yc-table-column-setup__item.yc-table-column-setup__item{cursor:pointer;padding:0 8px 0 32px;position:relative}.yc-table-column-setup__item.yc-table-column-setup__item .yc-list__item-sort-icon{cursor:move}.yc-root{--yc-tab-item-vertical-padding:6px 20px;--yc-tab-item-vertical-height:18px}.yc-tabs_size_m{--yc-tabs-height:36px;--yc-tabs-gap:24px;--yc-tabs-border-width:2px}.yc-tabs_size_m .yc-tabs__item-counter,.yc-tabs_size_m .yc-tabs__item-title{font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height)}.yc-tabs_size_l{--yc-tabs-height:40px;--yc-tabs-gap:28px;--yc-tabs-border-width:2px}.yc-tabs_size_l .yc-tabs__item-counter,.yc-tabs_size_l .yc-tabs__item-title{font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-2-line-height)}.yc-tabs_size_xl{--yc-tabs-height:44px;--yc-tabs-gap:32px;--yc-tabs-border-width:3px}.yc-tabs_size_xl .yc-tabs__item-counter,.yc-tabs_size_xl .yc-tabs__item-title{font-size:var(--yc-text-subheader-3-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-3-line-height)}.yc-tabs__item{cursor:pointer;outline:none;-webkit-user-select:none;user-select:none}.yc-tabs__item-content{align-items:center;display:flex}.yc-tabs__item_overflow .yc-tabs__item-content{min-width:0}.yc-tabs__item-icon{margin-right:8px}.yc-tabs__item-title{white-space:nowrap}.yc-tabs__item_overflow .yc-tabs__item-title{overflow:hidden;text-overflow:ellipsis}.yc-tabs__item-counter,.yc-tabs__item-label{margin-left:8px}.yc-tabs__item-icon>svg{display:block}.yc-tabs_direction_horizontal{align-items:flex-end;box-shadow:inset 0 -1px 0 0 var(--yc-color-line-generic);display:flex;flex-wrap:wrap;overflow:hidden}.yc-tabs_direction_horizontal .yc-tabs__item{align-items:center;border-bottom:var(--yc-tabs-border-width) solid transparent;box-sizing:border-box;display:flex;height:var(--yc-tabs-height);padding-top:var(--yc-tabs-border-width)}.yc-tabs_direction_horizontal .yc-tabs__item-meta{display:none}.yc-tabs_direction_horizontal .yc-tabs__item-title{color:var(--yc-color-text-secondary)}.yc-tabs_direction_horizontal .yc-tabs__item-counter,.yc-tabs_direction_horizontal .yc-tabs__item-icon{color:var(--yc-color-text-hint)}.yc-tabs_direction_horizontal .yc-tabs__item:focus .yc-tabs__item-title,.yc-tabs_direction_horizontal .yc-tabs__item:hover .yc-tabs__item-title,.yc-tabs_direction_horizontal .yc-tabs__item_active .yc-tabs__item-title{color:var(--yc-color-text-primary)}.yc-tabs_direction_horizontal .yc-tabs__item:focus .yc-tabs__item-counter,.yc-tabs_direction_horizontal .yc-tabs__item:focus .yc-tabs__item-icon,.yc-tabs_direction_horizontal .yc-tabs__item:hover .yc-tabs__item-counter,.yc-tabs_direction_horizontal .yc-tabs__item:hover .yc-tabs__item-icon,.yc-tabs_direction_horizontal .yc-tabs__item_active .yc-tabs__item-counter,.yc-tabs_direction_horizontal .yc-tabs__item_active .yc-tabs__item-icon{color:var(--yc-color-text-secondary)}.yc-tabs_direction_horizontal .yc-tabs__item_active,.yc-tabs_direction_horizontal .yc-tabs__item_active:focus,.yc-tabs_direction_horizontal .yc-tabs__item_active:hover{border-color:var(--yc-color-base-special)}.yc-tabs_direction_horizontal .yc-tabs__item_disabled{pointer-events:none}.yc-tabs_direction_horizontal .yc-tabs__item_disabled .yc-tabs__item-title{color:var(--yc-color-text-hint)}.yc-tabs_direction_horizontal>:not(:last-child){margin-right:var(--yc-tabs-gap)}.yc-tabs_direction_vertical{display:flex;flex-direction:column}.yc-tabs_direction_vertical .yc-tabs__item{padding:var(--yc-tab-item-vertical-padding)}.yc-tabs_direction_vertical .yc-tabs__item-title{color:var(--yc-color-text-primary);line-height:var(--yc-tab-item-vertical-height)}.yc-tabs_direction_vertical .yc-tabs__item-meta{color:var(--yc-color-text-secondary);line-height:var(--yc-tab-item-vertical-height)}.yc-tabs_direction_vertical .yc-tabs__item-counter,.yc-tabs_direction_vertical .yc-tabs__item-icon{color:var(--yc-color-text-secondary)}.yc-tabs_direction_vertical .yc-tabs__item:focus,.yc-tabs_direction_vertical .yc-tabs__item:hover{background-color:var(--yc-color-base-generic-hover)}.yc-tabs_direction_vertical .yc-tabs__item_active{background-color:var(--yc-color-base-selection)}.yc-tabs_direction_vertical .yc-tabs__item_active:focus,.yc-tabs_direction_vertical .yc-tabs__item_active:hover{background-color:var(--yc-color-base-selection-hover)}.yc-tabs_direction_vertical .yc-tabs__item_disabled{pointer-events:none}.yc-tabs_direction_vertical .yc-tabs__item_disabled .yc-tabs__item-title{color:var(--yc-color-text-secondary)}.yc-text_variant_display-1{font-size:var(--yc-text-display-1-font-size);font-weight:var(--yc-text-display-font-weight);line-height:var(--yc-text-display-1-line-height)}.yc-text_variant_display-2{font-size:var(--yc-text-display-2-font-size);font-weight:var(--yc-text-display-font-weight);line-height:var(--yc-text-display-2-line-height)}.yc-text_variant_display-3{font-size:var(--yc-text-display-3-font-size);font-weight:var(--yc-text-display-font-weight);line-height:var(--yc-text-display-3-line-height)}.yc-text_variant_display-4{font-size:var(--yc-text-display-4-font-size);font-weight:var(--yc-text-display-font-weight);line-height:var(--yc-text-display-4-line-height)}.yc-text_variant_code-1{font-size:var(--yc-text-code-1-font-size);line-height:var(--yc-text-code-1-line-height)}.yc-text_variant_code-1,.yc-text_variant_code-2{font-family:var(--yc-text-code-font-family);font-weight:var(--yc-text-code-font-weight)}.yc-text_variant_code-2{font-size:var(--yc-text-code-2-font-size);line-height:var(--yc-text-code-2-line-height)}.yc-text_variant_code-3{font-size:var(--yc-text-code-3-font-size);line-height:var(--yc-text-code-3-line-height)}.yc-text_variant_code-3,.yc-text_variant_code-inline-1{font-family:var(--yc-text-code-font-family);font-weight:var(--yc-text-code-font-weight)}.yc-text_variant_code-inline-1{font-size:var(--yc-text-code-inline-1-font-size);line-height:var(--yc-text-code-inline-1-line-height)}.yc-text_variant_code-inline-2{font-family:var(--yc-text-code-font-family);font-size:var(--yc-text-code-inline-2-font-size);font-weight:var(--yc-text-code-inline-font-weight);line-height:var(--yc-text-code-inline-2-line-height)}.yc-text_variant_code-inline-3{font-family:var(--yc-text-code-font-family);font-size:var(--yc-text-code-inline-3-font-size);font-weight:var(--yc-text-code-font-weight);line-height:var(--yc-text-code-inline-3-line-height)}.yc-text_variant_body-1{font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height)}.yc-text_variant_body-2{font-size:var(--yc-text-body-2-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-2-line-height)}.yc-text_variant_body-3{font-size:var(--yc-text-body-3-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-3-line-height)}.yc-text_variant_body-short{font-size:var(--yc-text-body-short-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-short-line-height)}.yc-text_variant_caption-1{font-size:var(--yc-text-caption-1-font-size);font-weight:var(--yc-text-caption-font-weight);line-height:var(--yc-text-caption-1-line-height)}.yc-text_variant_caption-2{font-size:var(--yc-text-caption-2-font-size);font-weight:var(--yc-text-caption-font-weight);line-height:var(--yc-text-caption-2-line-height)}.yc-text_variant_header-1{font-size:var(--yc-text-header-1-font-size);font-weight:var(--yc-text-header-font-weight);line-height:var(--yc-text-header-1-line-height)}.yc-text_variant_header-2{font-size:var(--yc-text-header-2-font-size);font-weight:var(--yc-text-header-font-weight);line-height:var(--yc-text-header-2-line-height)}.yc-text_variant_subheader-1{font-size:var(--yc-text-subheader-1-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-1-line-height)}.yc-text_variant_subheader-2{font-size:var(--yc-text-subheader-2-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-2-line-height)}.yc-text_variant_subheader-3{font-size:var(--yc-text-subheader-3-font-size);font-weight:var(--yc-text-subheader-font-weight);line-height:var(--yc-text-subheader-3-line-height)}.yc-text_ellipsis{overflow:hidden;text-overflow:ellipsis}.yc-text_ellipsis,.yc-text_ws_nowrap{white-space:nowrap}.yc-text_ws_break-spaces{white-space:break-spaces}.yc-text_wb_break-all{word-break:break-all}.yc-color-text_color_primary{color:var(--yc-color-text-primary)}.yc-color-text_color_complementary{color:var(--yc-color-text-complementary)}.yc-color-text_color_secondary{color:var(--yc-color-text-secondary)}.yc-color-text_color_hint{color:var(--yc-color-text-hint)}.yc-color-text_color_info{color:var(--yc-color-text-info)}.yc-color-text_color_positive{color:var(--yc-color-text-positive)}.yc-color-text_color_warning-medium{color:var(--yc-color-text-warning-medium)}.yc-color-text_color_warning-heavy{color:var(--yc-color-text-warning-heavy)}.yc-color-text_color_danger{color:var(--yc-color-text-danger)}.yc-color-text_color_utility{color:var(--yc-color-text-utility)}.yc-color-text_color_misc{color:var(--yc-color-text-misc)}.yc-color-text_color_special{color:var(--yc-color-text-special)}.yc-color-text_color_link{color:var(--yc-color-text-link)}.yc-color-text_color_link-hover{color:var(--yc-color-text-link-hover)}.yc-color-text_color_link-visited{color:var(--yc-color-text-link-visited)}.yc-color-text_color_link-visited-hover{color:var(--yc-color-text-link-visited-hover)}.yc-color-text_color_yandex-red{color:var(--yc-color-text-yandex-red)}.yc-color-text_color_dark-primary{color:var(--yc-color-text-dark-primary)}.yc-color-text_color_dark-complementary{color:var(--yc-color-text-dark-complementary)}.yc-color-text_color_dark-secondary{color:var(--yc-color-text-dark-secondary)}.yc-color-text_color_light-primary{color:var(--yc-color-text-light-primary)}.yc-color-text_color_light-complementary{color:var(--yc-color-text-light-complementary)}.yc-color-text_color_light-secondary{color:var(--yc-color-text-light-secondary)}.yc-color-text_color_light-hint{color:var(--yc-color-text-light-hint)}.yc-color-text_color_inverted-primary{color:var(--yc-color-text-inverted-primary)}.yc-color-text_color_inverted-complementary{color:var(--yc-color-text-inverted-complementary)}.yc-color-text_color_inverted-secondary{color:var(--yc-color-text-inverted-secondary)}.yc-color-text_color_inverted-hint{color:var(--yc-color-text-inverted-hint)}.yc-user{align-items:center;display:flex}.yc-user__info{display:flex;flex:1 1;flex-direction:column;font-size:var(--yc-text-body-short-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-short-line-height);max-width:165px}.yc-user__info .yc-user__name{color:var(--yc-color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yc-user__info .yc-user__description{color:var(--yc-color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yc-user__avatar+.yc-user__info{margin-left:12px}.yc-user_size_xs .yc-user__avatar+.yc-user__info{margin-left:6px}.yc-user-avatar{background-color:var(--yc-color-base-background);background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:50%;box-sizing:border-box;display:inline-block}.yc-user-avatar_size_xs{height:24px;width:24px}.yc-user-avatar_size_s{height:28px;width:28px}.yc-user-avatar_size_m{height:32px;width:32px}.yc-user-avatar_size_l{height:42px;width:42px}.yc-user-avatar_size_xl{height:50px;width:50px}.ydb-tree-view{--ydb-tree-view-level:0;font-size:13px;line-height:18px}.ydb-tree-view,.ydb-tree-view *{box-sizing:border-box}.ydb-tree-view__item{align-items:center;border-bottom:1px solid var(--yc-color-line-solid);cursor:pointer;display:flex;height:24px;padding-left:calc(24px*var(--ydb-tree-view-level));padding-right:3px}.ydb-tree-view__item:hover{background-color:var(--yc-color-base-simple-hover)}.ydb-tree-view__item:hover .ydb-tree-view__actions{display:block}.ydb-tree-view__item_active{background-color:var(--yc-color-base-selection);font-weight:700}.ydb-tree-view__item_active:hover{background-color:var(--yc-color-base-selection-hover)}.ydb-tree-view__content{align-items:center;display:flex;flex-grow:1;overflow:hidden}.ydb-tree-view__icon{align-items:center;color:var(--yc-color-text-hint);display:flex;flex-shrink:0;height:24px;justify-content:center;width:24px}.ydb-tree-view__icon svg{display:block}.ydb-tree-view__text{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ydb-tree-view__actions{display:none;margin-left:6px}.ydb-tree-view .tree-view_arrow{background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 12" width="6" height="12"><path d="M0.192529 10.7483C-0.0845649 11.0562 -0.0596061 11.5304 0.248276 11.8075C0.556159 12.0846 1.03038 12.0596 1.30747 11.7517L0.192529 10.7483ZM5.25 6.25L5.80747 6.75172C6.06418 6.46649 6.06418 6.0335 5.80747 5.74828L5.25 6.25ZM1.30747 0.748277C1.03038 0.440394 0.556159 0.415435 0.248276 0.69253C-0.0596065 0.969624 -0.0845653 1.44384 0.192529 1.75172L1.30747 0.748277ZM1.30747 11.7517L5.80747 6.75172L4.69253 5.74828L0.192529 10.7483L1.30747 11.7517ZM5.80747 5.74828L1.30747 0.748277L0.192529 1.75172L4.69253 6.75172L5.80747 5.74828Z" fill="rgba%280, 0, 0, 0.85%29"/></svg>') no-repeat 50%;cursor:pointer;flex-shrink:0;height:24px;width:24px}.yc-root_theme_dark .ydb-tree-view .tree-view_arrow{background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 12" width="6" height="12"><path d="M0.192529 10.7483C-0.0845649 11.0562 -0.0596061 11.5304 0.248276 11.8075C0.556159 12.0846 1.03038 12.0596 1.30747 11.7517L0.192529 10.7483ZM5.25 6.25L5.80747 6.75172C6.06418 6.46649 6.06418 6.0335 5.80747 5.74828L5.25 6.25ZM1.30747 0.748277C1.03038 0.440394 0.556159 0.415435 0.248276 0.69253C-0.0596065 0.969624 -0.0845653 1.44384 0.192529 1.75172L1.30747 0.748277ZM1.30747 11.7517L5.80747 6.75172L4.69253 5.74828L0.192529 10.7483L1.30747 11.7517ZM5.80747 5.74828L1.30747 0.748277L0.192529 1.75172L4.69253 6.75172L5.80747 5.74828Z" fill="rgba%28255, 255, 255, 0.85%29"/></svg>') no-repeat 50%}.ydb-tree-view .tree-view_arrow:not(.tree-view_arrow-collapsed){-webkit-transform:rotate(90deg);transform:rotate(90deg)}.ydb-tree-view_no-arrow .tree-view_arrow{visibility:hidden}.ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:24px}.ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:48px}.ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:72px}.ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:96px}.ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view .ydb-tree-view__item{padding-left:120px}.ydb-navigation-tree-view-loader{align-items:center;display:flex;height:24px;justify-content:center;width:20px}.ydb-navigation-tree-view-error{color:var(--yc-color-text-danger)}.ydb-navigation-tree-view-empty{color:var(--yc-color-text-secondary);font-style:italic}.info-viewer{--ydb-info-viewer-font-size:var(--yc-text-body-2-font-size);--ydb-info-viewer-line-height:var(--yc-text-body-2-line-height);--ydb-info-viewer-title-font-weight:600;--ydb-info-viewer-title-margin:15px 0 10px;--ydb-info-viewer-items-gap:7px;font-size:var(--ydb-info-viewer-font-size);line-height:var(--ydb-info-viewer-line-height)}.info-viewer__title{font-weight:var(--ydb-info-viewer-title-font-weight);margin:var(--ydb-info-viewer-title-margin)}.info-viewer__items{display:flex;flex-direction:column;gap:var(--ydb-info-viewer-items-gap);max-width:100%}.info-viewer__row{align-items:baseline;display:flex;max-width:100%;padding-top:4px}.info-viewer__label{align-items:baseline;color:var(--yc-color-text-secondary);display:flex;flex:0 1 auto;min-width:200px;white-space:nowrap}.info-viewer__label-text_multiline{max-width:180px;overflow:visible;white-space:normal}.info-viewer__dots{border-bottom:1px dotted var(--yc-color-text-secondary);display:flex;flex:1 1 auto;margin:0 2px}.info-viewer__value{display:flex;min-width:130px;word-break:break-all}.info-viewer_size_s{--ydb-info-viewer-font-size:var(--yc-text-body-1-font-size);--ydb-info-viewer-line-height:var(--yc-text-body-1-line-height);--ydb-info-viewer-title-font-weight:500;--ydb-info-viewer-title-margin:0 0 4px;--ydb-info-viewer-items-gap:4px}.info-viewer_size_s .info-viewer__row{height:auto}.info-viewer_size_s .info-viewer__label{min-width:85px}.ydb-node-endpoints-tooltip .info-viewer__value{min-width:70px}.entity-status{align-items:center;display:inline-flex;font-size:var(--yc-text-body-2-font-size);height:100%;line-height:var(--yc-text-body-2-line-height);max-width:100%}.entity-status__clipboard-button{align-items:center;color:var(--yc-color-text-secondary);display:none;margin-left:8px}.entity-status__clipboard-button .yc-button__text{margin:0}.entity-status__clipboard-button .yc-clipboard-button{height:24px;width:24px}.entity-status__clipboard-button_visible{display:inline-flex}.entity-status a{color:var(--yc-color-text-link);text-decoration:none}.entity-status a:hover{color:var(--yc-color-text-link-hover)}.entity-status__label{color:var(--yc-color-text-complementary);font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);margin-right:2px}.entity-status__link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-status__link_with-left-trim{direction:rtl}.entity-status__link_with-left-trim .entity-status__name{unicode-bidi:plaintext}.entity-status__status-color,.entity-status__status-icon{border-radius:3px;flex-shrink:0;margin-right:8px}.entity-status__status-color_size_xs,.entity-status__status-icon_size_xs{aspect-ratio:1;height:12px;width:12px}.entity-status__status-color_size_s,.entity-status__status-icon_size_s{aspect-ratio:1;height:16px;width:16px}.entity-status__status-color_size_m,.entity-status__status-icon_size_m{aspect-ratio:1;height:18px;width:18px}.entity-status__status-color_state_green,.entity-status__status-color_state_running{background-color:var(--yc-color-infographics-positive-heavy)}.entity-status__status-color_state_yellow{background-color:var(--yc-color-infographics-warning-heavy)}.entity-status__status-color_state_blue{background-color:var(--yc-color-infographics-info-heavy)}.entity-status__status-color_state_red{background:var(--yc-color-infographics-danger-heavy)}.entity-status__status-color_state_gray,.entity-status__status-color_state_grey{background:var(--yc-color-text-complementary)}.entity-status__status-color_state_orange{background:var(--yc-color-base-warning-orange)}.entity-status__status-icon_state_blue{color:var(--yc-color-infographics-info-heavy)}.entity-status__status-icon_state_yellow{color:var(--yc-color-infographics-warning-heavy)}.entity-status__status-icon_state_orange{color:var(--yc-color-base-warning-orange)}.entity-status__status-icon_state_red{color:var(--yc-color-infographics-danger-heavy)}.entity-status_size_m{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.pool-bar{border:1px solid;border-radius:1px;cursor:pointer;height:20px;margin-right:2px;position:relative;width:6px}.pool-bar:last-child{margin-right:0}.pool-bar_type_normal{border-color:var(--yc-color-infographics-positive-heavy)}.pool-bar_type_warning{border-color:var(--yc-color-infographics-warning-heavy)}.pool-bar_type_danger{border-color:var(--yc-color-infographics-danger-heavy)}.pool-bar__value{bottom:0;min-height:1px;position:absolute;width:100%}.pool-bar__value_type_normal{background-color:var(--yc-color-infographics-positive-heavy)}.pool-bar__value_type_warning{background-color:var(--yc-color-infographics-warning-heavy)}.pool-bar__value_type_danger{background-color:var(--yc-color-infographics-danger-heavy)}.pools-graph{display:flex}.tablets-statistic{align-items:center;display:flex;gap:2px}.tablets-statistic__tablet{border:1px solid;border-radius:2px;color:var(--yc-color-text-secondary);display:inline-block;font-size:11px;height:20px;line-height:20px;padding:0 4px;text-align:center;text-decoration:none;text-transform:uppercase}.tablets-statistic__tablet_state_green{background-color:var(--yc-color-base-positive);color:var(--yc-color-text-positive)}.tablets-statistic__tablet_state_yellow{background-color:var(--yc-color-base-warning);color:var(--yc-color-text-warning-medium)}.tablets-statistic__tablet_state_blue{background-color:var(--yc-color-base-info);color:var(--yc-color-text-info)}.tablets-statistic__tablet_state_orange{background-color:var(--yc-color-infographics-warning-light);color:var(--yc-color-text-warning-heavy)}.tablets-statistic__tablet_state_red{background:var(--yc-color-base-danger);color:var(--yc-color-text-danger)}.tablets-statistic__tablet_state_gray{border:1px solid var(--yc-color-line-generic-hover);color:var(--yc-color-text-secondary)}.tenants{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.tenants__format-label{margin-right:15px}.tenants__title{text-align:center}.tenants__tooltip{-webkit-animation:none!important;animation:none!important}.tenants__search{width:238px}.tenants__tablets{padding:0!important}.tenants__tablets .tablets-viewer__grid{grid-gap:20px}.tenants__controls{align-items:center;display:flex;gap:12px;padding:16px 0 18px}.tenants__table-wrapper{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.tenants__table-content .data-table__head-row:first-child .data-table__th:first-child,.tenants__table-content .data-table__td:first-child{background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.tenants__table-content .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.tenants__table-content .data-table__head-row:first-child .data-table__th:nth-child(0),.tenants__table-content .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.tenants__table-content .data-table__head-row:first-child .data-table__th:first-child,.tenants__table-content .data-table__td:first-child{box-shadow:none}.tenants__table-content .data-table__table{width:100%}.tenants__table-content .data-table__row,.tenants__table-content .data-table__sticky th{height:40px}.tenants__table-content .data-table__box .data-table__table-wrapper{padding-bottom:20px}.tenants__type-value{margin-right:10px}.tenants__type-button{visibility:hidden}.data-table__row:hover .tenants__type-button{visibility:visible}.tenants__name-wrapper{align-items:center;display:flex}.tenants__name{overflow:hidden}.empty-state{padding:20px}.empty-state_size_m{height:400px}.empty-state__wrapper{display:grid;grid-template-areas:"image title" "image description" "image actions"}.empty-state__wrapper_size_s{height:120px;width:460px}.empty-state__wrapper_size_m{height:240px;margin:0 auto;position:relative;top:20%;width:800px}.empty-state__image{color:var(--yc-color-base-info-hover);grid-area:image;justify-self:end;margin-right:60px}.yc-root_theme_dark .empty-state__image{color:var(--yc-color-base-generic)}.empty-state__title{align-self:center;font-weight:500;grid-area:title}.empty-state__title_size_s{font-size:var(--yc-text-subheader-3-font-size);line-height:var(--yc-text-subheader-3-line-height)}.empty-state__title_size_m{font-size:var(--yc-text-header-2-font-size);line-height:var(--yc-text-header-2-line-height)}.empty-state__description{font-size:var(--yc-text-body-2-font-size);grid-area:description;line-height:var(--yc-text-body-2-line-height)}.empty-state__actions{grid-area:actions}.empty-state__actions>*{margin-right:8px}.ydb-loader{flex:1 1 auto;height:100%}.progress-viewer,.ydb-loader{align-items:center;display:flex;justify-content:center}.progress-viewer{background:var(--yc-color-base-generic);border-radius:2px;color:var(--yc-color-text-light-primary);font-size:var(--yc-text-body-2-font-size);height:23px;min-width:120px;overflow:hidden;padding:0 4px;position:relative;white-space:nowrap}.progress-viewer__line{height:100%;left:0;position:absolute;top:0}.progress-viewer__line_bg_scarlet{background:var(--yc-color-infographics-danger-heavy)}.progress-viewer__line_bg_apple{background:var(--yc-color-infographics-positive-heavy)}.progress-viewer__line_bg_saffron{background:var(--yc-color-infographics-warning-heavy)}.progress-viewer__text{position:relative;z-index:1}.progress-viewer__text_text_contrast0{color:var(--yc-color-text-light-primary)}.progress-viewer__text_text_contrast70{color:var(--yc-color-text-complementary)}.progress-viewer_size_xs{font-size:var(--yc-text-body-2-font-size);height:20px;line-height:var(--yc-text-body-2-line-height)}.progress-viewer_size_s{font-size:var(--yc-text-body-1-font-size);height:28px;line-height:28px}.progress-viewer_size_m{font-size:var(--yc-text-body-2-font-size);height:32px;line-height:32px}.progress-viewer_size_ns{font-size:13px;height:24px;line-height:var(--yc-text-subheader-3-line-height)}.progress-viewer_size_n{font-size:var(--yc-text-body-1-font-size);height:36px;line-height:36px}.progress-viewer_size_l{font-size:var(--yc-text-subheader-3-font-size);height:38px;line-height:38px}.progress-viewer_size_head{font-size:var(--yc-text-body-1-font-size);line-height:36px}.ydb-nodes-table__host-field-wrapper{display:flex}.ydb-nodes-table__host-wrapper{display:flex;max-width:330px}.ydb-nodes-table__host{overflow:hidden}.ydb-nodes-table__external-button{display:none;margin-left:4px}.data-table__row:hover .ydb-nodes-table__external-button{display:inline-flex}.ydb-nodes{display:flex;flex-grow:1;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto}.ydb-nodes__search{width:238px}.ydb-nodes__controls{align-items:center;display:flex;gap:12px;padding:16px 0 18px}.ydb-nodes__show-all-wrapper{left:0;margin-bottom:15px;position:-webkit-sticky;position:sticky}.ydb-nodes__table-wrapper{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.ydb-nodes__table-content{height:100%;overflow:auto}.ydb-nodes__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-nodes__table-content .data-table__td:first-child{background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-nodes__table-content .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.ydb-nodes__table-content .data-table__head-row:first-child .data-table__th:nth-child(2),.ydb-nodes__table-content .data-table__td:nth-child(2){background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:80px;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-nodes__table-content .data-table__row:hover .data-table__td:nth-child(2){background-color:var(--ydb-data-table-color-hover)!important}.ydb-nodes__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-nodes__table-content .data-table__head-row:first-child .data-table__th:nth-child(0),.ydb-nodes__table-content .data-table__td:first-child,.ydb-nodes__table-content .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.ydb-nodes__table-content .data-table__head-row:first-child .data-table__th:nth-child(2),.ydb-nodes__table-content .data-table__td:nth-child(2){box-shadow:none}.ydb-nodes__table-content .data-table__table{width:100%}.ydb-nodes__table-content .data-table__row,.ydb-nodes__table-content .data-table__sticky th{height:40px}.ydb-nodes__table-content .data-table__box .data-table__table-wrapper{padding-bottom:20px}.ydb-nodes__table-content .data-table__th{height:auto}.ydb-nodes__table-content{padding-bottom:20px}.ydb-nodes__node_unavailable{opacity:.6}.storage-disk-progress-bar{background-color:var(--yc-color-infographics-misc-light);border:1px solid var(--yc-color-infographics-misc-heavy);border-radius:4px;color:var(--yc-color-text-primary);display:block;height:var(--yc-text-body-3-line-height);min-width:50px;position:relative;text-align:center}.storage-disk-progress-bar_compact{border-radius:2px;height:12px;min-width:0}.storage-disk-progress-bar_compact .storage-disk-progress-bar__filled{border-radius:1px}.storage-disk-progress-bar .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-misc-medium)}.storage-disk-progress-bar_green{background-color:var(--yc-color-infographics-positive-light);border-color:var(--yc-color-infographics-positive-heavy)}.storage-disk-progress-bar_green .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-positive-medium)}.yc-root_theme_dark .storage-disk-progress-bar_green .storage-disk-progress-bar__filled{background-color:rgba(124,227,121,.4)}.storage-disk-progress-bar_blue{background-color:var(--yc-color-infographics-info-light);border-color:var(--yc-color-infographics-info-heavy)}.storage-disk-progress-bar_blue .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-info-medium)}.storage-disk-progress-bar_yellow{background-color:var(--yc-color-infographics-yellow-light);border-color:var(--yc-color-infographics-warning-heavy)}.storage-disk-progress-bar_yellow .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-yellow-medium)}.storage-disk-progress-bar_orange{background-color:var(--yc-color-infographics-warning-light);border-color:var(--yc-color-base-warning-orange)}.storage-disk-progress-bar_orange .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-warning-medium)}.storage-disk-progress-bar_red{background-color:var(--yc-color-infographics-danger-light);border-color:var(--yc-color-infographics-danger-heavy)}.storage-disk-progress-bar_red .storage-disk-progress-bar__filled{background-color:var(--yc-color-infographics-danger-medium)}.storage-disk-progress-bar__filled{border-radius:3px 0 0 3px;height:100%;left:0;position:absolute;top:0}.storage-disk-progress-bar_inverted .storage-disk-progress-bar__filled{border-radius:0 3px 3px 0;left:auto;right:0}.storage-disk-progress-bar__filled-title{color:inherit;font-size:var(--yc-text-body-1-font-size);line-height:calc(var(--yc-text-body-3-line-height) - 2px);position:relative;z-index:2}.usage-filter{min-width:100px}.usage-filter__option{flex-grow:1}.usage-filter__option-title{font-size:var(--yc-text-body-1-font-size);height:var(--yc-text-body-1-line-height);line-height:var(--yc-text-body-1-line-height)}.usage-filter__option-meta{border-radius:3px;font-size:var(--yc-text-caption-2-font-size);line-height:var(--yc-text-caption-2-line-height);padding:0 5px;position:relative}.usage-filter__option-bar{background-color:var(--yc-color-infographics-info-medium);border-radius:3px;bottom:0;left:0;position:absolute;top:0;z-index:-1}.table-skeleton{width:100%}.table-skeleton__row{align-items:center;display:flex;height:var(--data-table-row-height)}.table-skeleton__row .yc-skeleton{height:var(--yc-text-body-2-line-height)}.table-skeleton__col-1{margin-right:5%;width:10%}.table-skeleton__col-2{margin-right:5%;width:7%}.table-skeleton__col-3,.table-skeleton__col-4{margin-right:5%;width:5%}.table-skeleton__col-5{width:20%}.table-skeleton__col-full{width:100%}.stack{--ydb-stack-base-z-index:100;--ydb-stack-offset-x:4px;--ydb-stack-offset-y:4px;--ydb-stack-offset-x-hover:4px;--ydb-stack-offset-y-hover:8px;position:relative}.stack__layer{transition:-webkit-transform .1s ease-out;transition:transform .1s ease-out;transition:transform .1s ease-out,-webkit-transform .1s ease-out}.stack__layer:first-child{position:relative;z-index:var(--ydb-stack-base-z-index)}.stack__layer+.stack__layer{height:100%;left:0;position:absolute;top:0;-webkit-transform:translate(calc(var(--ydb-stack-level)*var(--ydb-stack-offset-x)),calc(var(--ydb-stack-level)*var(--ydb-stack-offset-y)));transform:translate(calc(var(--ydb-stack-level)*var(--ydb-stack-offset-x)),calc(var(--ydb-stack-level)*var(--ydb-stack-offset-y)));width:100%;z-index:calc(var(--ydb-stack-base-z-index) - var(--ydb-stack-level))}.stack:hover .stack__layer:first-child{-webkit-transform:translate(calc(var(--ydb-stack-offset-x-hover)*-1),calc(var(--ydb-stack-offset-y-hover)*-1));transform:translate(calc(var(--ydb-stack-offset-x-hover)*-1),calc(var(--ydb-stack-offset-y-hover)*-1))}.stack:hover .stack__layer+.stack__layer{-webkit-transform:translate(calc(var(--ydb-stack-level)*(var(--ydb-stack-offset-x-hover)*2) - var(--ydb-stack-offset-x-hover)),calc(var(--ydb-stack-level)*(var(--ydb-stack-offset-y-hover)*2) - var(--ydb-stack-offset-y-hover)));transform:translate(calc(var(--ydb-stack-level)*(var(--ydb-stack-offset-x-hover)*2) - var(--ydb-stack-offset-x-hover)),calc(var(--ydb-stack-level)*(var(--ydb-stack-offset-y-hover)*2) - var(--ydb-stack-offset-y-hover)))}.pdisk-storage-popup,.vdisk-storage-popup{padding:12px}.vdisk-storage-popup .info-viewer+.info-viewer{border-top:1px solid var(--yc-color-line-generic);margin-top:8px;padding-top:8px}.vdisk-storage-popup__donor-label{margin-bottom:8px}.vdisk-storage,.vdisk-storage__content{border-radius:4px}.global-storage-groups__vdisks-column{overflow:visible}.global-storage-groups__vdisks-wrapper{display:flex;justify-content:center;min-width:500px}.global-storage-groups__vdisks-item{flex-grow:1;margin-right:10px;max-width:200px}.global-storage-groups__vdisks-item:last-child{margin-right:0}.global-storage-groups__vdisks-item .stack__layer{background:var(--yc-color-base-background)}.data-table__row:hover .global-storage-groups__vdisks-item .stack__layer{background:var(--ydb-data-table-color-hover)}.global-storage-groups__pool-name-wrapper{align-items:flex-end;display:flex;width:230px}.global-storage-groups__pool-name{display:inline-block;max-width:230px;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.global-storage-groups__usage-label_overload{background-color:var(--yc-color-base-danger-heavy);color:var(--yc-color-text-light-primary)}.global-storage-groups__group-id{font-weight:500}.pdisk-storage{position:relative;width:120px}.pdisk-storage__content{border-radius:4px;display:block;position:relative}.pdisk-storage__vdisks{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:4px}.pdisk-storage__vdisks-item{flex-basis:5px;flex-shrink:0}.pdisk-storage__vdisks-item .stack__layer{background:var(--yc-color-base-background)}.data-table__row:hover .pdisk-storage__vdisks-item .stack__layer{background:var(--ydb-data-table-color-hover)}.pdisk-storage__donors-stack{--ydb-stack-offset-x:0px;--ydb-stack-offset-y:-2px;--ydb-stack-offset-x-hover:0px;--ydb-stack-offset-y-hover:-7px}.pdisk-storage__media-type{color:var(--yc-color-text-secondary);font-size:var(--yc-text-body-1-font-size);line-height:var(--yc-text-body-3-line-height);position:absolute;right:4px;top:0}.global-storage-nodes__pdisks-column{overflow:visible}.global-storage-nodes__pdisks-wrapper{align-items:flex-end;display:flex;justify-content:left;width:-webkit-max-content;width:max-content}.global-storage-nodes__pdisks-item{flex-grow:1;margin-right:10px;max-width:200px}.global-storage-nodes__pdisks-item:last-child{margin-right:0}.global-storage-nodes__fqdn-field-wrapper{width:330px}.global-storage-nodes__fqdn-wrapper{align-items:center;display:flex;max-width:330px}.global-storage-nodes__fqdn{overflow:hidden}.global-storage-nodes__group-id{font-weight:500}.global-storage-nodes__node_unavailable{opacity:.6}.global-storage-nodes__external-button{display:none;margin-left:4px}.data-table__row:hover .global-storage-nodes__external-button{display:inline-flex}.global-storage{display:flex;flex:1 1 auto;flex-direction:column;height:100%;max-height:100%}.global-storage__controls{align-items:center;display:flex;gap:12px;padding:16px 0 18px}.global-storage__search{width:238px}.global-storage__table-wrapper{flex-grow:1;font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);overflow:auto}.global-storage__table-wrapper .yc-tooltip{height:var(--yc-text-body-2-line-height)!important}.global-storage__table-wrapper table{min-width:100%}.global-storage .entity-status{justify-content:center}.cluster{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto;padding:0 20px}.cluster__tab{text-decoration:none}.cluster__tab:first-letter{text-transform:uppercase}.cluster__format-label{margin-right:15px}.cluster__title{text-align:center}.cluster__tooltip{-webkit-animation:none!important;animation:none!important}.cluster__search{margin:0 15px 0 0;width:255px}.cluster__tablets{padding:0!important}.cluster__tablets .tablets-viewer__grid{grid-template-columns:125px}.cluster__controls{display:flex;justify-content:space-between;margin:17px 0}.cluster__table-wrapper{display:flex;flex:1 1 auto;flex-direction:column}.tag{background:var(--yc-color-base-generic);border-radius:3px;color:var(--yc-color-text-primary);font-size:12px;margin-right:5px;padding:2px 5px;text-transform:uppercase}.tag:last-child{margin-right:0}.tag_type_blue{background-color:var(--yc-color-celestial-thunder)}.tags{flex-wrap:wrap}.tablet,.tags{align-items:center;display:flex}.tablet{border:1px solid var(--yc-color-base-generic-medium-hover);border-radius:4px;color:var(--yc-color-text-complementary);cursor:pointer;font-size:10px;height:18px;justify-content:center;text-transform:uppercase;width:18px}.tablet__wrapper{margin-bottom:2px;margin-right:2px}.tablet__wrapper:last-child{margin-right:0}.tablet__type{color:var(--yc-color-text-complementary);line-height:17px}.tablet_status_gray{background-color:var(--yc-color-text-complementary)}.tablet_status_yellow{background-color:var(--yc-color-base-warning-heavy)}.tablet_status_orange{background-color:var(--yc-color-text-warning-heavy)}.tablet_status_red{background-color:var(--yc-color-base-danger-heavy)}.tablet_status_green{background-color:var(--yc-color-base-positive-heavy)}.tablet_state_blue{background-color:var(--yc-color-base-info-heavy)}.tablet_status_black{background-color:var(--yc-color-text-secondary)}.cluster-info{width:100%}.cluster-info__loader{display:flex;justify-content:center;margin-top:16px}.cluster-info__common{align-items:center;display:flex;margin-bottom:20px;margin-top:16px}.cluster-info__title{font-weight:600;margin-bottom:15px}.cluster-info__url{margin-right:14px}.cluster-info__metric-field{margin-top:-8px}.cluster-info__system-tablets{align-items:center;display:flex;flex-wrap:wrap;margin-left:15px}.cluster-info__system-tablets .tablet{margin-bottom:2px}.cluster-info__metrics{margin:0 -15px;padding:0 15px!important}.cluster-info__metrics .info-viewer__items{grid-template-columns:repeat(2,minmax(auto,250px))}.cluster-info__metrics .info-viewer__label{width:50px}.cluster-info__metrics .info-viewer__value{width:130px}.cluster-info__tablets{margin-left:15px;padding:0!important}.cluster-info__clipboard-button{align-items:center;display:flex;margin-left:5px}.object-general-tabs{padding:12px 20px 0 12px}.object-general-tabs__tab{text-decoration:none}.kv-split{display:flex;height:100%;outline:none;-webkit-user-select:text;user-select:text;z-index:0}.kv-split.horizontal{flex-direction:row}.kv-split.vertical{flex-direction:column;min-height:100%;width:100%}.kv-split .gutter{background:var(--yc-color-base-background);position:relative;z-index:10}.kv-split .gutter:after{background-color:var(--yc-color-base-generic-ultralight);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.kv-split .gutter.active:after,.kv-split .gutter:hover:after{background-color:var(--yc-color-line-generic-hover);transition:background-color 1s ease}.kv-split .gutter.disabled{display:none}.kv-split .gutter.gutter-vertical{cursor:row-resize;height:8px;width:100%}.kv-split .gutter.gutter-vertical:before{border-color:var(--yc-color-base-generic-hover);border-style:solid;border-width:1px 0;content:"";height:4px;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:16px}.kv-split .gutter.gutter-horizontal{cursor:col-resize;height:100%;width:8px}.kv-split .gutter.gutter-horizontal:before{border-color:var(--yc-color-base-generic-hover);border-style:solid;border-width:0 1px;content:"";height:16px;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:4px}.kv-acl{display:flex;flex-grow:1;overflow:auto;padding:0 12px 16px}.kv-acl .data-table__table{border-collapse:initial;border-spacing:0}.kv-acl .data-table__td,.kv-acl .data-table__th{vertical-align:middle}.kv-acl .data-table__box .data-table__table-wrapper{padding-bottom:20px}.kv-acl .data-table__row,.kv-acl .data-table__sticky th{height:40px}.kv-acl .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.kv-acl__result{align-self:flex-start}.kv-acl__message-container{padding:0 12px 16px}.kv-acl__loader-container{align-items:center;display:flex;height:100%;justify-content:center}.kv-acl__owner-container{background-color:var(--yc-color-base-background);padding-bottom:16px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.kv-acl__owner-container .yc-staff-card{display:inline-block}.kv-acl__text{color:var(--yc-color-text-primary);font-size:var(--yc-text-body-1-font-size);line-height:var(--yc-text-body-1-line-height)}.kv-acl__text:first-letter{color:var(--yc-color-text-danger)}.schema-viewer{padding:0 12px}.schema-viewer__key-icon{align-items:center;display:flex}.kv-pane-visibility-button_hidden{display:none}.kv-pane-visibility-button_bottom{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.kv-pane-visibility-button_bottom.rotate{-webkit-transform:rotate(0);transform:rotate(0)}.kv-pane-visibility-button_left{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.kv-pane-visibility-button_left.rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.kv-pane-visibility-button_top.rotate{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.object-summary{display:flex;flex-direction:column;flex-grow:1;height:100%;max-height:100%;overflow:hidden;position:relative;width:100%}.object-summary__overview-wrapper{display:flex;flex-grow:1;overflow:auto;padding:0 12px 16px}.object-summary_hidden{visibility:hidden}.object-summary__action-button{background-color:var(--yc-color-base-background);position:absolute;right:5px;top:8px}.object-summary__action-button_hidden{visibility:hidden}.object-summary__loader{align-items:center;display:flex;justify-content:center}.object-summary__tree-wrapper{display:flex;flex-direction:column}.object-summary__tree{flex:1 1 auto;height:100%;overflow-y:scroll;padding:0 12px 12px}.object-summary__tree-header{align-items:center;display:flex;flex:0 0 auto;justify-content:space-between;padding:12px 12px 8px}.object-summary__tree-title{font-weight:600}.object-summary__sticky-top{background-color:var(--yc-color-base-background);left:0;position:-webkit-sticky;position:sticky;top:0;z-index:5}.object-summary__tabs{padding:8px 12px 16px}.object-summary__tab{margin-right:40px;text-decoration:none}.object-summary__tab:first-letter{text-transform:uppercase}.object-summary__info{display:flex;flex-direction:column;overflow:hidden}.object-summary__schema{display:flex;flex-grow:1;overflow:auto}.object-summary__info-controls{display:flex;gap:4px}.object-summary__info-action-button{background-color:var(--yc-color-base-background)}.object-summary__info-action-button_hidden{display:none}.object-summary__rotated90{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.object-summary__rotated180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.object-summary__rotated270{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.object-summary__info-header{align-items:center;border-bottom:1px solid var(--yc-color-line-generic);display:flex;justify-content:space-between;padding:12px 12px 10px}.object-summary__info-title{align-items:center;display:flex;font-weight:600;overflow:hidden}.object-summary__path-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.object-summary__entity-type{background-color:var(--yc-color-base-generic);border-radius:3px;display:inline-block;font-weight:400;margin-right:5px;padding:3px 8px;text-transform:lowercase}.object-summary__entity-type_error{background-color:initial;padding:3px 0}.object-summary .yc-button__text{margin:0 6px}.monaco-editor{--monaco-monospace-font:"SF Mono",Monaco,Menlo,Consolas,"Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New",monospace;font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px}.monaco-editor.hc-black{-ms-high-contrast-adjust:none}@media screen and (-ms-high-contrast:active){.monaco-editor.vs .view-overlays .current-line,.monaco-editor.vs-dark .view-overlays .current-line{border-color:windowtext!important;border-left:0;border-right:0}.monaco-editor.vs .cursor,.monaco-editor.vs-dark .cursor{background-color:windowtext!important}.monaco-editor.vs .dnd-target,.monaco-editor.vs-dark .dnd-target{border-color:windowtext!important}.monaco-editor.vs .selected-text,.monaco-editor.vs-dark .selected-text{background-color:highlight!important}.monaco-editor.vs .view-line,.monaco-editor.vs-dark .view-line{-ms-high-contrast-adjust:none}.monaco-editor.vs .view-line span,.monaco-editor.vs-dark .view-line span{color:windowtext!important}.monaco-editor.vs .view-line span.inline-selected-text,.monaco-editor.vs-dark .view-line span.inline-selected-text{color:highlighttext!important}.monaco-editor.vs .view-overlays,.monaco-editor.vs-dark .view-overlays{-ms-high-contrast-adjust:none}.monaco-editor.vs .reference-decoration,.monaco-editor.vs .selectionHighlight,.monaco-editor.vs .wordHighlight,.monaco-editor.vs .wordHighlightStrong,.monaco-editor.vs-dark .reference-decoration,.monaco-editor.vs-dark .selectionHighlight,.monaco-editor.vs-dark .wordHighlight,.monaco-editor.vs-dark .wordHighlightStrong{background:transparent!important;border:2px dotted highlight!important;box-sizing:border-box}.monaco-editor.vs .rangeHighlight,.monaco-editor.vs-dark .rangeHighlight{background:transparent!important;border:1px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs .bracket-match,.monaco-editor.vs-dark .bracket-match{background:transparent!important;border-color:windowtext!important}.monaco-editor.vs .currentFindMatch,.monaco-editor.vs .findMatch,.monaco-editor.vs-dark .currentFindMatch,.monaco-editor.vs-dark .findMatch{background:transparent!important;border:2px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs .find-widget,.monaco-editor.vs-dark .find-widget{border:1px solid windowtext}.monaco-editor.vs .monaco-list .monaco-list-row,.monaco-editor.vs-dark .monaco-list .monaco-list-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs .monaco-list .monaco-list-row.focused,.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused{background-color:highlight!important;color:highlighttext!important}.monaco-editor.vs .monaco-list .monaco-list-row:hover,.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover{background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs .decorationsOverviewRuler,.monaco-editor.vs-dark .decorationsOverviewRuler{opacity:0}.monaco-editor.vs .minimap,.monaco-editor.vs-dark .minimap{display:none}.monaco-editor.vs .squiggly-d-error,.monaco-editor.vs-dark .squiggly-d-error{background:transparent!important;border-bottom:4px double #e47777}.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs .squiggly-c-warning,.monaco-editor.vs-dark .squiggly-b-info,.monaco-editor.vs-dark .squiggly-c-warning{border-bottom:4px double #71b771}.monaco-editor.vs .squiggly-a-hint,.monaco-editor.vs-dark .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;background-color:highlight!important;color:highlighttext!important}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-diff-editor.vs .diffOverviewRuler,.monaco-diff-editor.vs-dark .diffOverviewRuler{display:none}.monaco-editor.vs .line-delete,.monaco-editor.vs .line-insert,.monaco-editor.vs-dark .line-delete,.monaco-editor.vs-dark .line-insert{background:transparent!important;border:1px solid highlight!important;box-sizing:border-box}.monaco-editor.vs .char-delete,.monaco-editor.vs .char-insert,.monaco-editor.vs-dark .char-delete,.monaco-editor.vs-dark .char-insert{background:transparent!important}}.monaco-aria-container{left:-999em;position:absolute}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{-webkit-text-size-adjust:100%;overflow:visible;position:relative}.monaco-editor .overflow-guard{overflow:hidden;position:relative}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .inputarea{background-color:initial;border:none;color:transparent;margin:0;min-height:0;min-width:0;outline:none!important;overflow:hidden;padding:0;position:absolute;resize:none}.monaco-editor .inputarea.ime-input{z-index:10}.monaco-editor .margin-view-overlays .line-numbers{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";box-sizing:border-box;cursor:default;display:inline-block;font-variant-numeric:tabular-nums;height:100%;position:absolute;text-align:right;vertical-align:middle}.monaco-editor .relative-current-line-number{display:inline-block;text-align:left;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-mouse-cursor-text{cursor:text}.hc-black .mac .monaco-mouse-cursor-text,.hc-black.mac .monaco-mouse-cursor-text,.vs-dark .mac .monaco-mouse-cursor-text,.vs-dark.mac .monaco-mouse-cursor-text{cursor:-webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=) 1x,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC) 2x) 5 8,text}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{box-sizing:border-box;display:block;left:0;position:absolute;top:0}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{background:transparent;opacity:1;transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{display:none;position:absolute}.monaco-scrollable-element>.shadow.top{box-shadow:inset 0 6px 6px -6px #ddd;display:block;height:3px;left:3px;top:0;width:100%}.monaco-scrollable-element>.shadow.left{box-shadow:inset 6px 0 6px -6px #ddd;display:block;height:100%;left:0;top:3px;width:3px}.monaco-scrollable-element>.shadow.top-left-corner{display:block;height:3px;left:0;top:0;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:inset 6px 6px 6px -6px #ddd}.vs .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,39%,.4)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,47%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider{background:rgba(111,195,223,.6)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:hsla(0,0%,39%,.7)}.hc-black .monaco-scrollable-element>.scrollbar>.slider:hover{background:rgba(111,195,223,.8)}.monaco-scrollable-element>.scrollbar>.slider.active{background:rgba(0,0,0,.6)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active{background:hsla(0,0%,75%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider.active{background:#6fc3df}.vs-dark .monaco-scrollable-element .shadow.top{box-shadow:none}.vs-dark .monaco-scrollable-element .shadow.left{box-shadow:inset 6px 0 6px -6px #000}.vs-dark .monaco-scrollable-element .shadow.top.left{box-shadow:inset 6px 6px 6px -6px #000}.hc-black .monaco-scrollable-element .shadow.left,.hc-black .monaco-scrollable-element .shadow.top,.hc-black .monaco-scrollable-element .shadow.top.left{box-shadow:none}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .margin-view-overlays .cgmr{align-items:center;display:flex;justify-content:center;position:absolute}.monaco-editor .lines-content .cigr,.monaco-editor .lines-content .cigra{position:absolute}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkz{display:inline-block}.monaco-editor .lines-decorations{background:#fff;position:absolute;top:0}.monaco-editor .margin-view-overlays .cldr{height:100%;position:absolute}.monaco-editor .margin-view-overlays .cmdr{height:100%;left:0;position:absolute;width:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{left:-6px;position:absolute;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{left:-1px;position:absolute;width:1px}.monaco-editor .overlayWidgets{left:0;position:absolute;top:0}.monaco-editor .view-ruler{position:absolute;top:0}.monaco-editor .scroll-decoration{height:6px;left:0;position:absolute;top:0}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{overflow:hidden;position:absolute}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{background:transparent!important;border-bottom-style:solid;border-bottom-width:2px;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{background:transparent!important;border-bottom-style:solid;border-bottom-width:1px;box-sizing:border-box}@-webkit-keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@-webkit-keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@-webkit-keyframes monaco-cursor-expand{0%,20%{-webkit-transform:scaleY(1);transform:scaleY(1)}80%,to{-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes monaco-cursor-expand{0%,20%{-webkit-transform:scaleY(1);transform:scaleY(1)}80%,to{-webkit-transform:scaleY(0);transform:scaleY(0)}}.cursor-smooth{-webkit-animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{-webkit-animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{-webkit-animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate;animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{align-items:center;display:flex!important;font-size:11px!important;opacity:.7!important}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}:root{--sash-size:4px}.monaco-sash{position:absolute;touch-action:none;z-index:35}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;height:100%;top:0;width:4px;width:var(--sash-size)}.monaco-sash.horizontal{cursor:ns-resize;height:4px;height:var(--sash-size);left:0;width:100%}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";cursor:all-scroll;display:block;height:8px;height:calc(var(--sash-size)*2);position:absolute;width:8px;width:calc(var(--sash-size)*2);z-index:100}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:-2px;left:calc(var(--sash-size)*-.5);top:-4px;top:calc(var(--sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{bottom:-4px;bottom:calc(var(--sash-size)*-1);left:-2px;left:calc(var(--sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{left:-4px;left:calc(var(--sash-size)*-1);top:-2px;top:calc(var(--sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{right:-4px;right:calc(var(--sash-size)*-1);top:-2px;top:calc(var(--sash-size)*-.5)}.monaco-sash:before{background:transparent;content:"";height:100%;pointer-events:none;position:absolute;transition:background-color .1s ease-out;width:100%}.monaco-sash.vertical:before{left:calc(50% - var(--sash-hover-size)/2);width:var(--sash-hover-size)}.monaco-sash.horizontal:before{height:var(--sash-hover-size);top:calc(50% - var(--sash-hover-size)/2)}.monaco-sash.debug{background:cyan}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-diff-editor .diff-review-line-number{display:inline-block;text-align:right}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.monaco-action-bar{height:100%;white-space:nowrap}.monaco-action-bar .actions-container{align-items:center;display:flex;height:100%;margin:0 auto;padding:0;width:100%}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{align-items:center;cursor:pointer;display:block;justify-content:center;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:block}.monaco-action-bar .action-item .codicon{align-items:center;display:flex;height:16px;width:16px}.monaco-action-bar .action-label{border-radius:5px;font-size:11px;padding:3px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.4}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{border-bottom:1px solid #bbb;display:block;margin-left:.8em;margin-right:.8em;padding-top:1px}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{align-items:center;display:flex;flex:1 1;justify-content:center;margin-right:10px;max-width:170px;min-width:60px;overflow:hidden}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-label{margin-right:1px}.context-view .monaco-menu{min-width:130px}.context-view{position:absolute;z-index:2500}.context-view.fixed{clip:auto;all:initial;-webkit-animation:none 0s ease 0s 1 normal none running;animation:none 0s ease 0s 1 normal none running;-webkit-backface-visibility:visible;backface-visibility:visible;background:transparent none repeat 0 0/auto auto padding-box border-box scroll;border:none;border-collapse:initial;border-image:none;border-radius:0;border-spacing:0;bottom:auto;box-shadow:none;box-sizing:initial;caption-side:top;clear:none;color:#000;color:inherit;-webkit-column-fill:balance;column-fill:balance;-webkit-column-gap:normal;column-gap:normal;column-rule:medium none currentColor;-webkit-column-span:1;column-span:1;-webkit-columns:auto;-webkit-column-count:auto;-webkit-column-rule:medium none currentColor;-webkit-column-width:auto;columns:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:inline;empty-cells:show;float:none;font-family:serif;font-family:inherit;font-size:medium;font-size:13px;font-stretch:normal;font-style:normal;font-variant:normal;font-weight:400;height:auto;-webkit-hyphens:none;hyphens:none;left:auto;letter-spacing:normal;line-height:normal;list-style:disc none outside;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:2;outline:medium none invert;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;-webkit-perspective:none;perspective:none;-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%;position:static;position:fixed;right:auto;tab-size:8;table-layout:auto;text-align:left;text-align-last:auto;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;top:auto;-webkit-transform:none;transform:none;-webkit-transform-origin:50% 50% 0;transform-origin:initial;-webkit-transform-style:flat;transform-style:flat;transition:none 0s ease 0s;unicode-bidi:normal;vertical-align:initial;visibility:visible;white-space:normal;widows:2;width:auto;word-spacing:normal;z-index:auto;z-index:2500}@font-face{font-family:codicon;src:url(../../static/media/codicon.80a4c25b73c1f97077ed.ttf) format("truetype")}.codicon[class*=codicon-]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font:normal normal normal 16px/1 codicon;text-align:center;text-decoration:none;text-rendering:auto;user-select:none;-webkit-user-select:none;-ms-user-select:none}.codicon-wrench-subaction{opacity:.5}@-webkit-keyframes codicon-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes codicon-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{-webkit-animation:codicon-spin 1.5s steps(30) infinite;animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{-webkit-animation-duration:1s!important;animation-duration:1s!important;-webkit-animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-list{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{height:100%;position:relative;width:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{min-width:100%;width:auto}.monaco-list-row{box-sizing:border-box;overflow:hidden;position:absolute;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-list:focus .monaco-list-row.selected .codicon{color:inherit}.monaco-drag-image{border-radius:10px;display:inline-block;font-size:12px;padding:1px 7px;position:absolute;z-index:1000}.monaco-list-type-filter{align-items:center;border-radius:2px;box-sizing:border-box;cursor:all-scroll;display:flex;font-size:13px;height:20px;line-height:18px;max-width:calc(100% - 10px);overflow:hidden;padding:0 3px;position:absolute;text-align:right;text-overflow:ellipsis;top:4px;z-index:1}.monaco-list-type-filter.dragging{transition:top .2s,left .2s}.monaco-list-type-filter.ne{right:4px}.monaco-list-type-filter.nw{left:4px}.monaco-list-type-filter>.controls{align-items:center;box-sizing:border-box;display:flex;transition:width .2s;width:0}.monaco-list-type-filter.dragging>.controls,.monaco-list-type-filter:hover>.controls{width:36px}.monaco-list-type-filter>.controls>*{align-items:center;-webkit-appearance:none;-moz-appearance:none;background:none;border:none;box-sizing:border-box;cursor:pointer;display:flex;flex-shrink:0;height:16px;justify-content:center;margin:0;padding:0;width:16px}.monaco-list-type-filter>.controls>.filter{margin-left:4px}.monaco-list-type-filter-message{box-sizing:border-box;height:100%;left:0;opacity:.7;padding:40px 1em 1em;pointer-events:none;position:absolute;text-align:center;top:0;white-space:normal;width:100%}.monaco-list-type-filter-message:empty{display:none}.monaco-list-type-filter{cursor:grab}.monaco-list-type-filter.dragging{cursor:grabbing}.monaco-tl-row{align-items:center;display:flex;height:100%;position:relative}.monaco-tl-indent{height:100%;left:16px;pointer-events:none;position:absolute;top:0}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{border-left:1px solid transparent;box-sizing:border-box;display:inline-block;height:100%;transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{align-items:center;color:inherit!important;display:flex!important;flex-shrink:0;font-size:10px;justify-content:center;padding-right:6px;text-align:right;-webkit-transform:translateX(3px);transform:translateX(3px);width:16px}.monaco-tl-contents{flex:1 1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{-webkit-animation:codicon-spin 1.25s steps(30) infinite;animation:codicon-spin 1.25s steps(30) infinite}.monaco-table{display:flex;flex-direction:column;height:100%;position:relative;white-space:nowrap;width:100%}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1 1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{font-weight:700;height:100%;overflow:hidden;text-overflow:ellipsis;width:100%}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{border-left:1px solid transparent;content:"";left:calc(var(--sash-size)/2);position:absolute;width:0}.monaco-table>.monaco-split-view2,.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-split-view2{height:100%;position:relative;width:100%}.monaco-split-view2>.sash-container{height:100%;pointer-events:none;position:absolute;width:100%}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.monaco-scrollable-element{height:100%;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{position:absolute;white-space:normal}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{background-color:var(--separator-border);content:" ";left:0;pointer-events:none;position:absolute;top:0;z-index:5}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,87%,.4);border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73%,.4);box-shadow:inset 0 -1px 0 hsla(0,0%,73%,.4);color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #6fc3df;box-shadow:none;color:#fff}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50%,.17);border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6);color:#ccc}.quick-input-widget{left:50%;margin-left:-300px;padding:0 1px 6px;position:absolute;width:600px;z-index:2000}.quick-input-titlebar{align-items:center;display:flex}.quick-input-left-action-bar{display:flex;flex:1 1;margin-left:4px}.quick-input-title{padding:3px 0;text-align:center}.quick-input-right-action-bar{display:flex;flex:1 1;margin-right:4px}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px}.quick-input-header .quick-input-description{margin:4px 2px}.quick-input-header{display:flex;margin-bottom:-2px;padding:6px 6px 0}.quick-input-widget.hidden-input .quick-input-header{margin-bottom:0;padding:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{display:flex;flex-grow:1;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{left:-10000px;position:absolute}.quick-input-count{align-items:center;align-self:center;display:flex;position:absolute;right:4px}.quick-input-count .monaco-count-badge{border-radius:2px;line-height:normal;min-height:auto;padding:2px 4px;vertical-align:middle}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{align-items:center;display:flex;font-size:11px;height:27.5px;padding:0 6px}.quick-input-message{margin-top:-1px;padding:5px 5px 2px}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-progress.monaco-progress-container,.quick-input-progress.monaco-progress-container .progress-bit{height:2px}.quick-input-list{line-height:22px;margin-top:6px}.quick-input-widget.hidden-input .quick-input-list{margin-top:0}.quick-input-list .monaco-list{max-height:440px;overflow:hidden}.quick-input-list .quick-input-list-entry{box-sizing:border-box;display:flex;height:100%;overflow:hidden;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-style:solid;border-top-width:1px}.quick-input-list .monaco-list-row:first-child .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{display:flex;flex:1 1;height:100%;overflow:hidden}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-rows{display:flex;flex:1 1;flex-direction:column;height:100%;margin-left:5px;overflow:hidden;text-overflow:ellipsis}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{align-items:center;display:flex}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1 1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:sub}.quick-input-list .quick-input-list-rows .monaco-highlighted-label span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{line-height:normal;opacity:.7;overflow:hidden;text-overflow:ellipsis}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:8px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0 1;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px;margin-top:1px}.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-position:0;background-repeat:no-repeat;background-size:16px;display:inline-block;flex-shrink:0;height:22px;line-height:inherit!important;padding-right:6px;vertical-align:top;width:16px}.monaco-icon-label>.monaco-icon-label-container{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-size:.9em;margin-left:.5em;opacity:.7;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label.deprecated{opacity:.66;text-decoration:line-through}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{font-size:90%;font-weight:600;opacity:.75;padding:0 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-keybinding{align-items:center;display:flex;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{border-radius:3px;border-style:solid;border-width:1px;display:inline-block;font-size:11px;margin:0 2px;padding:3px 5px;vertical-align:middle}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-inputbox{box-sizing:border-box;display:block;font-size:inherit;padding:0;position:relative}.monaco-inputbox.idle{border:1px solid transparent}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px}.monaco-inputbox>.ibwrapper{height:100%;position:relative;width:100%}.monaco-inputbox>.ibwrapper>.input{border:none;box-sizing:border-box;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;resize:none;width:100%}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{-ms-overflow-style:none;display:block;outline:none;scrollbar-width:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{word-wrap:break-word;box-sizing:border-box;display:inline-block;left:0;position:absolute;top:0;visibility:hidden;white-space:pre-wrap;width:100%}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{word-wrap:break-word;box-sizing:border-box;display:inline-block;font-size:12px;line-height:17px;margin-top:-1px;overflow:hidden;padding:.4em;text-align:left;width:100%}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;height:16px;width:16px}.monaco-count-badge{border-radius:11px;box-sizing:border-box;display:inline-block;font-size:11px;font-weight:400;line-height:11px;min-height:18px;min-width:18px;padding:3px 6px;text-align:center}.monaco-count-badge.long{border-radius:2px;line-height:normal;min-height:auto;padding:2px 3px}.monaco-progress-container{height:5px;overflow:hidden;width:100%}.monaco-progress-container .progress-bit{display:none;height:5px;left:0;position:absolute;width:2%}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{-webkit-animation-duration:4s;animation-duration:4s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:progress;animation-name:progress;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-transform:translateZ(0);transform:translateZ(0)}@-webkit-keyframes progress{0%{-webkit-transform:translateX(0) scaleX(1);transform:translateX(0) scaleX(1)}50%{-webkit-transform:translateX(2500%) scaleX(3);transform:translateX(2500%) scaleX(3)}to{-webkit-transform:translateX(4900%) scaleX(1);transform:translateX(4900%) scaleX(1)}}@keyframes progress{0%{-webkit-transform:translateX(0) scaleX(1);transform:translateX(0) scaleX(1)}50%{-webkit-transform:translateX(2500%) scaleX(3);transform:translateX(2500%) scaleX(3)}to{-webkit-transform:translateX(4900%) scaleX(1);transform:translateX(4900%) scaleX(1)}}.monaco-text-button{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;padding:4px;text-align:center;width:100%}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{cursor:default;opacity:.4!important}.monaco-text-button>.codicon{color:inherit!important;margin:0 .2em}.monaco-button-dropdown{display:flex}.monaco-button-dropdown>.monaco-dropdown-button{margin-left:1px}.monaco-description-button{flex-direction:column}.monaco-description-button .monaco-button-label{font-weight:500}.monaco-description-button .monaco-button-description{font-style:italic}.ydb-query-result-table__cell{cursor:pointer;display:inline-block;max-width:600px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ydb-query-result-table__message{padding:15px 10px}.kv-save-query__dialog-row{align-items:flex-start;display:flex}.kv-save-query__dialog-row+.kv-save-query__dialog-row{margin-top:var(--yc-text-body-1-line-height)}.kv-save-query__field-title{font-weight:500;line-height:28px;margin-right:12px;white-space:nowrap}.kv-save-query__field-title.required:after{color:var(--yc-color-text-danger);content:"*"}.kv-save-query__control-wrapper{display:flex;flex-direction:column;flex-grow:1}.kv-save-query__error{color:var(--yc-color-text-danger);display:inline-block;height:17px}.kv-save-query__embedded-tooltip{align-items:center;color:var(--yc-color-text-secondary);display:flex;height:100%;margin-left:-10px}.kv-save-query__embedded-tooltip:hover{color:var(--yc-color-text-complementary);cursor:pointer}.kv-save-query__embedded-popup{border-radius:5px;max-width:150px!important;padding:10px}.kv-save-query__embedded-popup:before{border-radius:5px}.kv-truncated-query{max-width:100%;vertical-align:top;white-space:pre;word-break:break-word}.kv-truncated-query_color_secondary{color:var(--yc-color-text-secondary)}.saved-queries{padding:12px 16px}.saved-queries__popup-wrapper{border-radius:4px;max-width:700px!important;overflow:hidden;width:700px}.saved-queries__popup-wrapper :nth-child(2){max-height:50vh;overflow-y:auto}.saved-queries__popup-wrapper:before{border-radius:4px;width:700px}.saved-queries__saved-queries-row{align-items:center;border-bottom:1px solid var(--yc-color-line-generic);display:flex;padding:8px 5px}.saved-queries__saved-queries-row:hover{background:var(--yc-color-base-simple-hover);color:var(--yc-color-text-link-hover);cursor:pointer}.saved-queries__saved-queries-row:hover .saved-queries__query-controls{display:flex}.saved-queries__saved-queries-row_header{font-weight:500}.saved-queries__saved-queries-row_header:hover{background:var(--yc-color-base-background);color:var(--yc-color-text-primary);cursor:auto}.saved-queries__query-name{flex:0 0 90px;font-weight:500;margin-right:8px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:pre-wrap}.saved-queries__query-body{flex-grow:1;max-width:75%;overflow:hidden;text-overflow:ellipsis;white-space:pre}.saved-queries__query-body_header{display:flex;justify-content:center}.saved-queries__query-controls{display:none}.saved-queries__control-button{align-items:center;color:var(--yc-color-text-hint);display:flex;justify-content:center;width:24px}.saved-queries__control-button:hover{color:var(--yc-color-text-secondary)}.saved-queries__dialog-query-name{font-weight:500}.kv-divider{background-color:var(--yc-color-line-generic);height:100%;margin:0 4px;width:1px}.kv-fullscreen{background-color:var(--yc-color-base-background);bottom:0;display:flex;flex-grow:1;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:10}.kv-fullscreen__close-button{position:fixed;right:20px;top:8px;z-index:11}.kv-fullscreen__close-button .yc-button__text{align-items:center;display:flex;margin:0 6px}.kv-query-execution-status{align-items:center;color:var(--yc-color-text-complementary);display:flex;gap:4px}.kv-query-execution-status__result-status-icon{color:var(--yc-color-text-positive)}.kv-query-execution-status__result-status-icon_error{color:var(--yc-color-text-danger)}.kv-shorty-string__toggle{font-size:.85em;margin-left:2em}.kv-result-issues{padding:0 10px}.kv-result-issues__error-message{align-items:center;background-color:var(--yc-color-base-background);display:flex;left:0;padding:10px 0;position:-webkit-sticky;position:sticky;top:0;z-index:2}.kv-result-issues__error-message-text{margin:0 10px}.kv-issues{position:relative}.kv-issue_leaf{margin-left:31px}.kv-issue__issues{padding-left:24px}.kv-issue__line{align-items:flex-start;display:flex;margin:0 0 10px;padding:0 10px 0 0}.kv-issue__place-text{color:var(--yc-color-text-secondary);display:inline-block;padding-right:10px;text-align:left}.kv-issue__message{display:flex;font-family:var(--yc-font-family-monospace);font-size:var(--yc-text-code-2-font-size);line-height:var(--yc-text-header-2-line-height);margin-left:10px;margin-right:auto}.kv-issue__message-text{flex:1 1 auto;min-width:240px;white-space:pre-wrap;word-break:break-word}.kv-issue__code{color:var(--yc-color-text-complementary);flex:0 0 auto;font-size:12px;margin-left:1.5em;padding:3px 0}.kv-issue__arrow-toggle{margin-right:5px}.kv-issue__arrow-toggle .yc-button__text{margin:0 5px}.yql-issue-severity{align-items:center;display:flex;line-height:28px;white-space:nowrap}.yql-issue-severity_severity_error .yql-issue-severity__icon,.yql-issue-severity_severity_fatal .yql-issue-severity__icon{color:var(--yc-color-text-danger)}.yql-issue-severity_severity_warning .yql-issue-severity__icon{color:var(--yc-color-text-warning-medium)}.yql-issue-severity_severity_info .yql-issue-severity__icon{color:var(--yc-color-text-info)}.yql-issue-severity__title{color:var(--yc-color-text-complementary);margin-left:4px;text-transform:capitalize}.kv-query-result__result{display:flex;flex-direction:column;flex-grow:1;overflow:auto;padding:0 10px}.kv-query-result__result .data-table__table{border-collapse:initial;border-spacing:0}.kv-query-result__result .data-table__td,.kv-query-result__result .data-table__th{vertical-align:middle}.kv-query-result__result .data-table__box .data-table__table-wrapper{padding-bottom:20px}.kv-query-result__result .data-table__row,.kv-query-result__result .data-table__sticky th{height:40px}.kv-query-result__result .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.kv-query-result__result .data-table__table-wrapper{padding-bottom:0}.kv-query-result__result_fullscreen{margin-top:10px;padding:0 10px 10px;width:100%}.kv-query-result__error{padding:15px 10px}.kv-query-result__controls{align-items:center;background-color:var(--yc-color-base-background);border-bottom:1px solid var(--yc-color-line-generic);display:flex;height:53px;justify-content:space-between;padding:12px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.kv-query-result__controls-right{display:flex;gap:12px;height:100%}.kv-query-result__controls-left{display:flex;gap:4px}.kv-query-result__controls-left .yc-button__text{margin:0 6px}.kv-query-result__inspector{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important;max-width:calc(100% - 50px);padding:15px 10px}.kv-query-result__inspector .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.kv-query-result__inspector .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.kv-query-result__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.kv-query-result__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.kv-query-result__inspector .json-inspector__key{color:var(--yc-color-text-misc)}.kv-query-result__inspector .json-inspector__leaf{padding-left:20px;position:relative}.kv-query-result__inspector .json-inspector__leaf_root{padding-left:0}.kv-query-result__inspector .json-inspector__line{padding-left:20px}.kv-query-result__inspector .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.kv-query-result__inspector .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.kv-query-result__inspector .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.kv-query-result__inspector .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.kv-query-result__inspector .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.kv-query-result__inspector .json-inspector__show-original:hover:after,.kv-query-result__inspector .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.kv-query-result__inspector_fullscreen{height:100%;overflow:auto;padding:10px;width:100%}.kv-query-result__fullscreen-table-wrapper{background-color:var(--yc-color-base-background);height:100%;margin:20px;overflow:auto;width:100%}.kv-query-result__fullscreen-table-wrapper .data-table__table{width:100%}.kv-query-result__fullscreen-table-wrapper .data-table__row,.kv-query-result__fullscreen-table-wrapper .data-table__sticky th{height:40px}.kv-query-result__fullscreen-table-wrapper .data-table__box .data-table__table-wrapper{padding-bottom:20px}.kv-query-result__fullscreen-table-wrapper table{width:100%!important}.kv-query-result__fullscreen-table-wrapper .data-table__table-wrapper{padding:0!important}.json-inspector,.json-inspector__selection{font:14px/1.4 Consolas,monospace}.json-inspector__leaf{padding-left:10px}.json-inspector__line{cursor:default;display:block;position:relative}.json-inspector__line:after{bottom:0;content:"";left:-200px;pointer-events:none;position:absolute;right:-50px;top:0;z-index:-1}.json-inspector__line:hover:after{background:rgba(0,0,0,.06)}.json-inspector__leaf_composite>.json-inspector__line{cursor:pointer}.json-inspector__flatpath,.json-inspector__radio{display:none}.json-inspector__value{margin-left:5px}.json-inspector__search{margin:0 10px 10px 0;min-width:300px;padding:2px}.json-inspector__key{color:#505050}.json-inspector__not-found,.json-inspector__value_helper,.json-inspector__value_null{color:#b0b0b0}.json-inspector__value_string{color:#798953}.json-inspector__value_boolean{color:#75b5aa}.json-inspector__value_number{color:#d28445}.json-inspector__hl{background:#ff0;border-radius:2px;box-shadow:0 -1px 0 2px #ff0}.json-inspector__show-original{color:#666;cursor:pointer;display:inline-block;padding:0 6px}.json-inspector__show-original:hover{color:#111}.json-inspector__show-original:before{content:"⥂"}.json-inspector__show-original:hover:after{content:" expand"}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{-webkit-animation:fadeIn .15s ease-out;animation:fadeIn .15s ease-out}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{-webkit-animation:fadeOut .1s ease-out;animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:1px 4px}.monaco-editor .monaco-editor-overlaymessage .anchor{border:8px solid transparent;height:0!important;position:absolute;width:0!important;z-index:1000}.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .contentWidgets .codicon-light-bulb,.monaco-editor .contentWidgets .codicon-lightbulb-autofix{align-items:center;display:flex;justify-content:center}.monaco-editor .contentWidgets .codicon-light-bulb:hover,.monaco-editor .contentWidgets .codicon-lightbulb-autofix:hover{cursor:pointer}.monaco-editor .codelens-decoration{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:sub;white-space:nowrap}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer}.monaco-editor .codelens-decoration .codicon{color:currentColor!important;vertical-align:middle}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@-webkit-keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{-webkit-animation:fadein .1s linear;animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .colorpicker-hover:focus{outline:none}.colorpicker-header{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;display:flex;height:24px;image-rendering:pixelated;position:relative}.colorpicker-header .picked-color{color:#fff;cursor:pointer;flex:1 1;line-height:24px;text-align:center;width:216px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{cursor:pointer;width:74px;z-index:inherit}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{flex:1 1;height:150px;min-width:220px;overflow:hidden;position:relative}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0,0,0,.8);height:9px;margin:-5px 0 0 -5px;position:absolute;width:9px}.colorpicker-body .strip{height:150px;width:25px}.colorpicker-body .hue-strip{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);cursor:grab;margin-left:8px;position:relative}.colorpicker-body .opacity-strip{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;cursor:grab;image-rendering:pixelated;margin-left:8px;position:relative}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px rgba(0,0,0,.85);box-sizing:border-box;height:4px;left:-2px;position:absolute;top:0;width:calc(100% + 4px)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.monaco-hover{-webkit-animation:fadein .1s linear;animation:fadein .1s linear;box-sizing:initial;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;-ms-user-select:text;z-index:50}.monaco-hover.hidden{display:none}.monaco-hover .hover-contents{padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){word-wrap:break-word;max-width:500px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-hover .code:first-child,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover .code:last-child,.monaco-hover p:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:pre-wrap}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link{color:inherit}.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent;text-decoration:underline;text-underline-position:under}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;margin-right:4px;vertical-align:text-top}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{font-style:italic;opacity:.6}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{padding:8px 12px 0 20px;position:absolute;user-select:text;-webkit-user-select:text;-ms-user-select:text;white-space:pre}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{color:inherit;opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{border-bottom:1px solid transparent;text-decoration:underline;text-underline-position:under}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex}.monaco-editor .peekview-widget .head .peekview-title{align-items:center;cursor:pointer;display:flex;font-size:13px;margin-left:20px;min-width:0}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .filename{overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1 1;padding-right:2px;text-align:right}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-bottom-style:solid;border-bottom-width:0;border-top-style:solid;border-top-width:0;position:relative}.monaco-action-bar .action-item.menu-entry .action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.monaco-action-bar .action-item.menu-entry .action-label{background-image:var(--menu-entry-icon-light)}.hc-black .monaco-action-bar .action-item.menu-entry .action-label,.vs-dark .monaco-action-bar .action-item.menu-entry .action-label{background-image:var(--menu-entry-icon-dark)}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-4px;padding-left:0;padding-right:0}.monaco-editor .goto-definition-link{cursor:pointer;text-decoration:underline}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-bottom-width:1px;border-top-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;padding:3em 0;text-align:center;width:100%}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{overflow:hidden;text-overflow:ellipsis}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;height:100%;width:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-left:auto;margin-right:12px}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-custom-checkbox{border:1px solid transparent;box-sizing:border-box;cursor:pointer;float:left;height:20px;margin-left:2px;opacity:.7;overflow:hidden;padding:1px;user-select:none;-webkit-user-select:none;-ms-user-select:none;width:20px}.monaco-custom-checkbox.checked,.monaco-custom-checkbox:hover{opacity:1}.hc-black .monaco-custom-checkbox,.hc-black .monaco-custom-checkbox:hover{background:none}.monaco-custom-checkbox.monaco-simple-checkbox{background-size:16px!important;border:1px solid transparent;border-radius:3px;height:18px;margin-left:0;margin-right:9px;opacity:1;padding:0;width:18px}.monaco-custom-checkbox.monaco-simple-checkbox:not(.checked):before{visibility:hidden}.monaco-editor .find-widget{box-sizing:border-box;height:33px;line-height:19px;overflow:hidden;padding:0 4px;position:absolute;-webkit-transform:translateY(calc(-100% - 10px));transform:translateY(calc(-100% - 10px));transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear;z-index:35}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{-webkit-transform:translateY(0);transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:initial;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{display:flex;font-size:12px;margin:4px 0 0 17px}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-bottom:2px;padding-top:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{align-items:center;display:flex;height:25px}.monaco-editor .find-widget .monaco-findInput{display:flex;flex:1 1;vertical-align:middle}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{box-sizing:border-box;display:flex;flex:initial;height:25px;line-height:23px;margin:0 0 0 3px;padding:2px 0 0 2px;text-align:center;vertical-align:middle}.monaco-editor .find-widget .button{align-items:center;background-position:50%;background-repeat:no-repeat;cursor:pointer;display:flex;flex:initial;height:20px;justify-content:center;margin-left:3px;width:20px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{padding:1px 6px;top:-1px;width:auto}.monaco-editor .find-widget .button.toggle{box-sizing:border-box;height:100%;left:3px;position:absolute;top:0;width:18px}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{cursor:default;opacity:.3}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{display:flex;flex:auto;flex-grow:0;flex-shrink:0;position:relative;vertical-align:middle}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{-webkit-animation-duration:0;animation-duration:0;-webkit-animation-name:inherit!important;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{left:2px;position:relative;top:1px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls{-webkit-animation:monaco-findInput-highlight-0 .1s linear 0s;animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls{-webkit-animation:monaco-findInput-highlight-1 .1s linear 0s;animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{-webkit-animation:monaco-findInput-highlight-dark-0 .1s linear 0s;animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{-webkit-animation:monaco-findInput-highlight-dark-1 .1s linear 0s;animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@-webkit-keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@-webkit-keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@-webkit-keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@-webkit-keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded{align-items:center;cursor:pointer;display:flex;font-size:140%;justify-content:center;margin-left:2px;opacity:0;transition:opacity .5s}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:grey;content:"⋯";cursor:pointer;display:inline;line-height:1em;margin:.1em .2em 0}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer}.monaco-editor .parameter-hints-widget{display:flex;flex-direction:column;line-height:1.5em;z-index:10}.monaco-editor .parameter-hints-widget>.phwrapper{display:flex;flex-direction:row;max-width:440px}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.visible{transition:left .05s ease-in-out}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1 1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs .markdown-docs code{font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs code{border-radius:3px;padding:0 .4em}.monaco-editor .parameter-hints-widget .controls{align-items:center;display:none;flex-direction:column;justify-content:flex-end;min-width:22px}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{background-repeat:no-repeat;cursor:pointer;height:16px;width:16px}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{font-family:var(--monaco-monospace-font);height:12px;line-height:12px;opacity:.5;text-align:center}.monaco-editor .parameter-hints-widget .signature .parameter.active{font-weight:700;text-decoration:underline}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{color:inherit;z-index:100}.monaco-editor .rename-box.preview{padding:3px 3px 0}.monaco-editor .rename-box .rename-input{padding:3px;width:calc(100% - 6px)}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .snippet-placeholder{min-width:2px}.monaco-editor .finish-snippet-placeholder,.monaco-editor .snippet-placeholder{outline-style:solid;outline-width:1px}.monaco-editor .suggest-widget{display:flex;flex-direction:column;width:430px;z-index:40}.monaco-editor .suggest-widget.message{align-items:center;flex-direction:row}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{border-style:solid;border-width:1px;flex:0 1 auto;width:100%}.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{border-top:1px solid transparent;box-sizing:border-box;display:none;flex-flow:row nowrap;font-size:80%;justify-content:space-between;overflow:hidden;padding:0 4px;width:100%}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:inherit;opacity:.5}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{background-position:2px 2px;background-repeat:no-repeat;-mox-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:flex;padding-right:10px;touch-action:none;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1 1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;cursor:pointer;font-size:14px;opacity:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;right:2px;top:6px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{align-self:center;font-size:90%;margin-left:4px;opacity:.4;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-grow:1;flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{flex-shrink:4;max-width:70%;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;height:18px;position:absolute;right:10px;visibility:hidden;width:18px}.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:none;text-decoration:initial}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{background-position:50%;background-repeat:no-repeat;background-size:80%;display:block;height:16px;margin-left:2px;width:16px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{align-items:center;display:flex;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{border:.1em solid #000;display:inline-block;height:.7em;margin:0 0 0 .3em;width:.7em}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{cursor:default;display:flex;flex-direction:column}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1 1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2 1;margin:0 24px 0 0;opacity:.7;overflow:hidden;padding:4px 0 12px 5px;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{min-height:calc(1rem + 8px);padding:0;white-space:normal}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{word-wrap:break-word;white-space:pre-wrap}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .accessibilityHelpWidget{overflow:scroll;padding:10px;vertical-align:middle}.monaco-editor .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiM0MjQyNDIiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px;height:36px;margin:0;min-height:0;min-width:0;overflow:hidden;padding:0;position:absolute;resize:none;width:58px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiNDNUM1QzUiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{padding:10px;user-select:text;-webkit-user-select:text;-ms-user-select:text;z-index:50}.tokens-inspect-separator{border:0;height:1px}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{float:right;font-size:60%;font-weight:400}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.kv-query-explain__result{display:flex;flex-direction:column;flex-grow:1;overflow:auto}.kv-query-explain__text-message{padding:15px 20px}.kv-query-explain__controls{align-items:center;background-color:var(--yc-color-base-background);border-bottom:1px solid var(--yc-color-line-generic);display:flex;height:53px;justify-content:space-between;padding:12px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.kv-query-explain__controls-right{display:flex;gap:12px;height:100%}.kv-query-explain__controls-left{display:flex;gap:4px}.kv-query-explain__controls-left .yc-button__text{margin:0 6px}.kv-query-explain__explain-canvas-container{height:100%;overflow-y:auto;width:100%}.kv-query-explain__explain-canvas-container_hidden{display:none}.kv-query-explain__inspector{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important;overflow-y:auto;padding:15px 20px;width:100%}.kv-query-explain__inspector .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.kv-query-explain__inspector .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.kv-query-explain__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.kv-query-explain__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.kv-query-explain__inspector .json-inspector__key{color:var(--yc-color-text-misc)}.kv-query-explain__inspector .json-inspector__leaf{padding-left:20px;position:relative}.kv-query-explain__inspector .json-inspector__leaf_root{padding-left:0}.kv-query-explain__inspector .json-inspector__line{padding-left:20px}.kv-query-explain__inspector .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.kv-query-explain__inspector .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.kv-query-explain__inspector .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.kv-query-explain__inspector .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.kv-query-explain__inspector .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.kv-query-explain__inspector .json-inspector__show-original:hover:after,.kv-query-explain__inspector .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.kv-query-explain__inspector .json-inspector__leaf.json-inspector__leaf_root.json-inspector__leaf_expanded.json-inspector__leaf_composite{max-width:calc(100% - 50px)}.kv-query-explain__inspector_fullscreen{padding:10px}.kv-query-explain__ast{height:100%;overflow:hidden;white-space:pre-wrap;width:100%}.kv-query-explain__loader{align-items:center;display:flex;justify-content:center;margin-top:20px;width:100%}.query-editor{display:flex;flex:1 1 auto;flex-direction:column;height:100%;position:relative}.query-editor .data-table__table{border-collapse:initial;border-spacing:0}.query-editor .data-table__td,.query-editor .data-table__th{vertical-align:middle}.query-editor .data-table__box .data-table__table-wrapper{padding-bottom:20px}.query-editor .data-table__row,.query-editor .data-table__sticky th{height:40px}.query-editor .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.query-editor .yc-button__text{align-items:center;display:flex;justify-content:center}.query-editor__monaco{display:flex;height:100%;padding-top:9px;position:relative;width:100%}.query-editor__monaco-wrapper{height:calc(100% - 49px);min-height:0;width:100%}.query-editor__pane-wrapper{background-color:var(--yc-color-base-background);display:flex;flex-direction:column;z-index:2}.query-editor__upper-controls{align-items:center;display:flex;gap:12px;justify-content:flex-end;position:absolute;right:20px;top:-38px}.query-editor__controls{align-items:flex-end;background-color:var(--yc-color-base-background);border-bottom:1px solid var(--yc-color-line-generic);border-top:1px solid var(--yc-color-line-generic);display:flex;flex:0 0 40px;gap:12px;min-height:40px;padding:5px 20px}.query-editor__control-run{align-items:center;display:flex}.query-editor__control-run .yc-select__option-text{display:none}.query-editor__control-run .yc-button__text{align-items:center;display:flex;gap:8px;justify-content:center}.query-editor__history-controls{align-items:center;display:flex}.query-editor__history-label{color:var(--yc-color-text-secondary);margin-right:8px}.query-editor__select-query-action{margin-left:2px}.kv-queries-history{padding:12px 16px}.kv-queries-history__empty{font-weight:600;text-align:center}.kv-queries-history__popup-wrapper{border-radius:4px;max-width:700px!important;overflow:hidden;width:700px}.kv-queries-history__popup-wrapper :nth-child(2){max-height:50vh;overflow-y:auto}.kv-queries-history__popup-wrapper:before{border-radius:4px;width:700px}.kv-queries-history__saved-queries-row{align-items:center;border-bottom:1px solid var(--yc-color-line-generic);display:flex;padding:8px 5px}.kv-queries-history__saved-queries-row:hover{background:var(--yc-color-base-simple-hover);color:var(--yc-color-text-link-hover);cursor:pointer}.kv-queries-history__saved-queries-row:hover .kv-queries-history__query-controls{display:flex}.kv-queries-history__saved-queries-row_header{font-weight:600}.kv-queries-history__saved-queries-row_header:hover{background:var(--yc-color-base-background);color:var(--yc-color-text-primary);cursor:auto}.kv-queries-history__query-body{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:pre}.kv-queries-history__query-body_header{display:flex;justify-content:center}.kv-queries-history__query-controls{display:none}.kv-queries-history__control-button{align-items:center;color:var(--yc-color-text-hint);display:flex;justify-content:center;width:24px}.kv-queries-history__control-button:hover{color:var(--yc-color-text-secondary)}.kv-queries-history__dialog-query-name{font-weight:500}.kv-preview{height:100%}.kv-preview .data-table__table{border-collapse:initial;border-spacing:0}.kv-preview .data-table__td,.kv-preview .data-table__th{vertical-align:middle}.kv-preview .data-table__box .data-table__table-wrapper{padding-bottom:20px}.kv-preview .data-table__row,.kv-preview .data-table__sticky th{height:40px}.kv-preview .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.kv-preview .yc-button__text{margin:0 6px}.kv-preview__header{align-items:center;background-color:var(--yc-color-base-background);border-bottom:1px solid var(--yc-color-line-generic);display:flex;height:53px;justify-content:space-between;padding:0 20px;position:-webkit-sticky;position:sticky;top:0}.kv-preview__title{display:flex}.kv-preview__table-name{color:var(--yc-color-text-complementary);margin-left:4px}.kv-preview__controls-left{display:flex;gap:5px}.kv-preview__message-container{padding:15px 20px}.kv-preview__loader-container{align-items:center;display:flex;height:100%;justify-content:center}.kv-preview__result{height:calc(100% - 40px);overflow:auto;padding:0 10px}.kv-fullscreen .kv-preview__result{height:100%}.date-range__input{background:transparent;border:1px solid var(--yc-color-line-generic);border-radius:var(--yc-border-radius-m);color:var(--yc-color-text-primary);min-width:190px;padding:5px 8px}.kv-top-queries{display:flex;flex-direction:column;height:100%}.kv-top-queries .data-table__table{border-collapse:initial;border-spacing:0}.kv-top-queries .data-table__td,.kv-top-queries .data-table__th{vertical-align:middle}.kv-top-queries .data-table__box .data-table__table-wrapper{padding-bottom:20px}.kv-top-queries .data-table__row,.kv-top-queries .data-table__sticky th{height:40px}.kv-top-queries .data-table__th{box-shadow:inset 0 -1px 0 0 var(--yc-tabs-color-divider)}.kv-top-queries__loader{display:flex;justify-content:center}.kv-top-queries__controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:10px}.kv-top-queries__search{width:238px}.kv-top-queries__result{flex-grow:1;overflow:auto}.kv-top-queries__result .data-table,.kv-top-queries__result .data-table__table{width:100%}.kv-top-queries__result .data-table__td{vertical-align:top;white-space:pre;word-break:break-word}.kv-top-queries__result .data-table__row{cursor:pointer;max-height:80px}.speed-multimeter{display:flex;width:100%}.speed-multimeter__content{display:flex;flex-direction:row;flex-grow:1;justify-content:flex-end;line-height:22px}.speed-multimeter__displayed-value{display:flex;flex-direction:row;justify-content:flex-end;margin-right:10px}.speed-multimeter__bars{align-items:flex-start;display:flex;flex-direction:column;margin-right:5px;overflow:hidden;width:32px}.speed-multimeter__bar-container{height:6px;width:100%}.speed-multimeter__bar-container_highlighted{background:var(--yc-color-line-generic)}.speed-multimeter__bar{height:100%;min-width:2px}.speed-multimeter__bar_color_light{background:var(--yc-color-infographics-info-medium)}.speed-multimeter__bar_color_dark{background:var(--yc-color-infographics-info-heavy)}.speed-multimeter__bar-container+.speed-multimeter__bar-container{margin-top:2px}.speed-multimeter__popover-container{align-items:center;display:flex;justify-content:center}.speed-multimeter__popover-content{padding:10px}.speed-multimeter__popover-header{display:block;font-size:18px;line-height:24px;margin-bottom:7px}.speed-multimeter__popover-row{display:block;font-size:13px;line-height:18px}.speed-multimeter__popover-row_color_primary{color:var(--yc-color-text-primary)}.speed-multimeter__popover-row_color_secondary{color:var(--yc-color-text-secondary)}.ydb-lag-popover-content__text{margin-bottom:10px}.ydb-lag-popover-content_type_read{max-width:280px}.ydb-lag-popover-content_type_write{max-width:220px}.ydb-overview-topic-stats__title{font-size:var(--yc-text-body-2-font-size);font-weight:600;line-height:var(--yc-text-body-2-line-height);margin:15px 0 10px}.ydb-overview-topic-stats .ydb-loader{margin-top:50px}.ydb-overview-topic-stats .info-viewer__row{align-items:flex-start}.ydb-overview-topic-stats .speed-multimeter{margin-top:-5px}.ydb-overview-topic-stats .speed-multimeter__content{justify-content:flex-start}.ydb-overview-topic-stats__info .info-viewer__label-text_multiline{max-width:150px}.ydb-overview-topic-stats__bytes-written{margin-top:7px;padding-left:20px}.ydb-overview-topic-stats__bytes-written .info-viewer__label{min-width:180px}.ydb-diagnostics-table-info{overflow:auto}.ydb-diagnostics-table-info__title{font-size:var(--yc-text-body-2-font-size);font-weight:600;line-height:var(--yc-text-body-2-line-height);margin:15px 0 10px}.ydb-diagnostics-table-info__row{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.ydb-diagnostics-table-info__col{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start}.ydb-diagnostics-table-info__col:not(:last-child){margin-right:50px}.ydb-diagnostics-table-info__info-block{margin-bottom:20px}.ydb-diagnostics-table-info__info-block .info-viewer__items{grid-template-columns:minmax(-webkit-max-content,280px);grid-template-columns:minmax(max-content,280px)}.issue-tree-item{align-items:center;cursor:pointer;display:flex;height:40px;justify-content:space-between}.issue-tree-item__field{display:flex;overflow:hidden}.issue-tree-item__field_status{display:flex;white-space:nowrap}.issue-tree-item__field_additional{color:var(--yc-color-text-link);cursor:pointer;width:-webkit-max-content;width:max-content}.issue-tree-item__field_additional:hover{color:var(--yc-color-text-link-hover)}.issue-tree-item__field_message{flex-shrink:0;overflow:hidden;white-space:normal;width:300px}.issue-tree-item__field-tooltip.issue-tree-item__field-tooltip{max-width:500px;min-width:500px}.issue-tree-item__field-label{color:var(--yc-color-text-secondary)}.indicator{border-radius:4px;height:12px;margin-right:4px;width:12px}.indicator_good,.indicator_green{background-color:var(--yc-color-base-positive-heavy)}.indicator_degraded,.indicator_yellow{background-color:var(--yc-color-base-warning-heavy)}.indicator_blue{background-color:var(--yc-color-base-info-heavy)}.indicator_emergency,.indicator_red{background:var(--yc-color-base-danger-heavy)}.indicator_gray,.indicator_grey,.indicator_unspecified{background:var(--yc-color-text-complementary)}.indicator_maintenance_required,.indicator_orange{background:var(--yc-color-text-warning-heavy)}.issue-tree{display:flex;width:820px}.issue-tree__block{width:100%}.issue-tree__checkbox{margin:5px 0 10px}.issue-tree__info-panel{background:var(--yc-color-base-generic);border-radius:4px;height:100%;margin:11px 0;padding:8px 20px;position:-webkit-sticky;position:sticky}.issue-tree__inspector{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important}.issue-tree__inspector .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.issue-tree__inspector .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.issue-tree__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.issue-tree__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.issue-tree__inspector .json-inspector__key{color:var(--yc-color-text-misc)}.issue-tree__inspector .json-inspector__leaf{padding-left:20px;position:relative}.issue-tree__inspector .json-inspector__leaf_root{padding-left:0}.issue-tree__inspector .json-inspector__line{padding-left:20px}.issue-tree__inspector .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.issue-tree__inspector .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.issue-tree__inspector .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.issue-tree__inspector .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.issue-tree__inspector .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.issue-tree__inspector .json-inspector__show-original:hover:after,.issue-tree__inspector .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.issue-tree__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before,.issue-tree__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:""}.issue-tree__inspector .json-inspector__line:hover:after{background:transparent}.issue-tree__inspector .json-inspector__show-original:hover:after,.issue-tree__inspector .json-inspector__show-original:hover:before{color:transparent}.issue-tree__inspector .json-inspector__value_helper{display:none}.issue-tree__inspector .json-inspector__value{overflow:hidden;word-break:break-all}.issue-tree__inspector .json-inspector__value>span{-webkit-user-select:all;user-select:all}.issue-tree .ydb-tree-view__item{height:40px}.issue-tree .ydb-tree-view .tree-view_arrow{height:40px;width:40px}.issue-tree .ydb-tree-view .ydb-tree-view__item{margin-left:calc(24px*var(--ydb-tree-view-level))!important;padding-left:0!important}.issue-tree .ydb-tree-view .issue-tree__info-panel{margin-left:calc(24px*var(--ydb-tree-view-level))}.healthcheck{min-width:885px}.healthcheck__details{padding:25px 20px 20px}.healthcheck__issue-preview{margin-bottom:15px}.healthcheck__issues-wrapper{height:70vh;max-height:70vh;overflow-x:hidden;overflow-y:auto}.healthcheck__loader{display:flex;justify-content:center}.healthcheck__message-container{padding:15px 0}.healthcheck__details-header{align-items:center;display:flex;margin-bottom:20px}.healthcheck__details-header-title{font-size:var(--yc-text-header-1-font-size);font-weight:var(--yc-text-header-font-weight);line-height:var(--yc-text-header-1-line-height);margin:0 10px 0 0}.healthcheck__details-header-update{margin-left:10px}.healthcheck__status-wrapper{display:flex;gap:8px;margin-bottom:20px}.healthcheck__preview-title{font-weight:600;line-height:24px}.healthcheck__preview-content{line-height:24px}.healthcheck__self-check-status-indicator{border-radius:4px;font-size:13px;line-height:24px;padding:0 8px}.healthcheck__self-check-status-indicator_good,.healthcheck__self-check-status-indicator_green{background-color:var(--yc-color-base-positive);color:var(--yc-color-text-positive)}.healthcheck__self-check-status-indicator_degraded,.healthcheck__self-check-status-indicator_yellow{background-color:var(--yc-color-base-warning);color:var(--yc-color-text-warning-medium)}.healthcheck__self-check-status-indicator_blue{background-color:var(--yc-color-base-info);color:var(--yc-color-text-info)}.healthcheck__self-check-status-indicator_emergency,.healthcheck__self-check-status-indicator_red{background-color:var(--yc-color-base-danger);color:var(--yc-color-text-danger)}.healthcheck__self-check-status-indicator_gray,.healthcheck__self-check-status-indicator_grey,.healthcheck__self-check-status-indicator_unspecified{background-color:var(--yc-color-base-misc);color:var(--yc-color-text-misc)}.healthcheck__self-check-status-indicator_maintenance_required,.healthcheck__self-check-status-indicator_orange{background-color:var(--yc-color-infographics-warning-light);color:var(--yc-color-text-warning-heavy)}.pool-usage{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.pool-usage__info{align-items:center;display:flex;justify-content:space-between}.pool-usage__pool-name{color:var(--yc-color-text-primary)}.pool-usage__value{align-items:center;display:flex}.pool-usage__threads{font-size:var(--yc-text-body-1-font-size)}.pool-usage__threads,.yc-root_theme_dark .pool-usage__threads{color:var(--yc-color-text-hint)}.pool-usage__percents{color:var(--yc-color-text-primary);font-size:var(--yc-text-body-1-font-size);margin-right:2px}.pool-usage__visual{align-items:center;background-color:var(--yc-color-base-generic-accent);border-radius:4px;display:flex;font-size:var(--yc-text-body-2-font-size);height:6px;justify-content:center;overflow:hidden;position:relative}.pool-usage__usage-line{height:100%;left:0;position:absolute;top:0}.pool-usage__usage-line_type_green{background-color:var(--yc-color-base-positive-heavy)}.pool-usage__usage-line_type_blue{background-color:var(--yc-color-base-info-heavy)}.pool-usage__usage-line_type_yellow{background-color:var(--yc-color-text-warning-heavy)}.pool-usage__usage-line_type_red{background-color:var(--yc-color-base-danger-heavy)}.tenant-overview{padding-bottom:20px}.tenant-overview__loader{display:flex;justify-content:center}.tenant-overview__tenant-name-wrapper{align-items:center;display:flex;overflow:hidden}.tenant-overview__tenant-name-wrapper .yc-link{display:flex}.tenant-overview__tenant-name-trim{direction:rtl;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tenant-overview__tenant-name{unicode-bidi:plaintext}.tenant-overview__top{align-items:center;display:flex;line-height:24px;margin-bottom:10px}.tenant-overview__top-label{font-weight:600;gap:10px;line-height:24px;margin-bottom:20px}.tenant-overview__common-info{align-items:stretch;display:flex;flex-direction:column;gap:20px;justify-content:flex-start}.tenant-overview__system-tablets{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:35px}.tenant-overview__collapse-title{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height)}.tenant-overview__section{border-radius:10px}.tenant-overview__section_metrics .info-viewer__label{min-width:150px}.tenant-overview__section_metrics .info-viewer__value{min-width:100px}.tenant-overview__section_pools{grid-gap:7px 20px;display:grid;grid-template-columns:110px 110px}.tenant-overview__section-title{font-size:var(--yc-text-body-2-font-size);font-weight:600;line-height:var(--yc-text-body-2-line-height);margin-bottom:20px}.kv-detailed-overview{display:flex;gap:20px}.kv-detailed-overview__section{display:flex;flex-basis:calc(50% - 10px);flex-direction:column;flex-grow:0;flex-shrink:0;overflow-x:hidden}.kv-detailed-overview__modal .yc-modal__content{position:relative}.kv-detailed-overview__close-modal-button{position:absolute;right:13px;top:23px}.kv-detailed-overview__close-modal-button .yc-button__text{display:flex;margin:0 4px}.top-shards__filters{align-items:baseline;display:flex;flex-wrap:wrap;gap:16px}.top-shards{background-color:var(--yc-color-base-background);display:flex;flex-direction:column;gap:10px;height:100%}.top-shards__loader{display:flex;justify-content:center}.top-shards__table{flex-grow:1;overflow:auto}.node-network{border:1px solid transparent;border-radius:4px;box-sizing:border-box;color:var(--yc-color-text-complementary);cursor:pointer;display:inline-block;font-size:12px;height:14px;line-height:14px;margin-bottom:5px;margin-right:5px;padding:0 5px;text-align:center;text-transform:uppercase;width:14px}.node-network_id{height:14px;width:42px}.node-network_blur{opacity:.25}.node-network_gray{background:var(--yc-color-text-secondary)}.node-network_black{background-color:var(--yc-color-text-primary);color:var(--yc-color-text-light-primary)}.node-network_green{background-color:var(--yc-color-base-positive-heavy)}.node-network_yellow{background-color:var(--yc-color-base-warning-heavy)}.node-network_red{background-color:var(--yc-color-text-yandex-red)}.node-network:hover{border:1px solid var(--yc-color-text-primary)}.network{font-size:var(--yc-text-body-2-font-size);justify-content:space-between;line-height:var(--yc-text-body-2-line-height);max-width:1305px}.network,.network__nodes-row{display:flex;flex-grow:1;height:100%;overflow:auto}.network__nodes-row{align-items:flex-start;flex-direction:row}.network__inner{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.network__right{height:100%;padding-left:20px;width:100%}.network__left{border-right:1px solid var(--yc-color-base-generic-accent);height:100%}.network__placeholder{align-items:center;display:flex;flex-direction:column;flex-grow:1;height:100%;justify-content:center;width:100%}.network__placeholder-text{margin-top:15px}.network__placeholder-img{color:transparent}.network__nodes{display:flex;flex-wrap:wrap}.network__nodes-container{min-width:325px}.network__nodes-container_right{margin-right:60px}.network__nodes-title{border-bottom:1px solid var(--yc-color-base-generic-accent);color:var(--yc-color-text-secondary);font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);margin:0 0 15px}.network__link{color:var(--yc-color-base-special);text-decoration:none}.network__title{font-size:var(--yc-text-body-1-font-size);font-weight:500;line-height:var(--yc-text-body-1-line-height);margin:20px 0}.network__checkbox-wrapper{align-items:center;display:flex}.network__checkbox-wrapper label{white-space:nowrap}.network__label{margin-bottom:16px}.network__controls{display:flex;gap:12px;margin:0 16px 16px 0}.network__controls-wrapper{display:flex;flex:1 1 auto;flex-direction:row;flex-direction:column}.network__select{margin:0 15px;max-width:115px}.network__rack-column{align-items:center;background-color:rgba(0,0,0,.07);border-radius:4px;display:flex;flex-direction:column;margin-bottom:5px;margin-right:5px;padding:2px}.network__rack-column .node-network{margin-right:0}.kv-describe__message-container{padding:15px 0}.kv-describe__result{display:flex;flex:0 0 auto;overflow:auto;padding:10px 20px 20px 0}.kv-describe__tree{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important}.kv-describe__tree .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.kv-describe__tree .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.kv-describe__tree :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.kv-describe__tree .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.kv-describe__tree .json-inspector__key{color:var(--yc-color-text-misc)}.kv-describe__tree .json-inspector__leaf{padding-left:20px;position:relative}.kv-describe__tree .json-inspector__leaf_root{padding-left:0}.kv-describe__tree .json-inspector__line{padding-left:20px}.kv-describe__tree .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.kv-describe__tree .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.kv-describe__tree .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.kv-describe__tree .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.kv-describe__tree .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.kv-describe__tree .json-inspector__show-original:hover:after,.kv-describe__tree .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.hot-keys{align-items:flex-start;background-color:var(--yc-color-base-background);display:flex;flex-direction:column;flex-grow:1;max-height:100%;overflow:auto}.hot-keys__table-content{height:100%;overflow:auto;width:100%}.hot-keys__table-content .data-table__head-row:first-child .data-table__th:first-child,.hot-keys__table-content .data-table__td:first-child{background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.hot-keys__table-content .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.hot-keys__table-content .data-table__head-row:first-child .data-table__th:nth-child(0),.hot-keys__table-content .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.hot-keys__table-content .data-table__head-row:first-child .data-table__th:first-child,.hot-keys__table-content .data-table__td:first-child{box-shadow:none}.hot-keys__header{background-color:var(--yc-color-base-background);left:0;padding:10px 0;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:2}.hot-keys__loader{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.hot-keys__stub{margin:10px}.hot-keys__primary-key-column{align-items:center;display:flex;gap:5px}.histogram{display:flex;flex:1 1 auto}.histogram__chart{align-items:baseline;border-bottom:1px solid var(--yc-color-base-generic);border-left:1px solid var(--yc-color-base-generic);display:flex;height:300px;margin-left:50px;margin-top:30px;position:relative;width:800px}.histogram__x-min{left:-3px}.histogram__x-max,.histogram__x-min{bottom:-25px;color:var(--yc-color-text-secondary);position:absolute}.histogram__x-max{right:0}.histogram__y-min{bottom:-7px;left:-30px;width:20px}.histogram__y-max,.histogram__y-min{color:var(--yc-color-text-secondary);position:absolute;text-align:right}.histogram__y-max{left:-60px;top:-5px;width:50px}.histogram__item{cursor:pointer;margin-right:.5%;width:1.5%}.heatmap{display:flex;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto}.heatmap__limits{align-items:center;display:flex;margin-left:20px}.heatmap__limits-block{display:flex;margin-right:10px}.heatmap__limits-title{color:var(--yc-color-text-secondary);margin-right:5px}.heatmap__row{align-items:center}.heatmap__row_overall{margin:15px 20px}.heatmap__row_overall .yc-progress{margin:0;width:300px}.heatmap__label{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}.heatmap__label_overall{margin-right:15px}.heatmap__items{overflow:auto}.heatmap__canvas-container{cursor:pointer;overflow:auto}.heatmap__filters{align-items:center;display:flex;margin:0 0 10px}.heatmap__filter-control{margin-right:10px;max-width:200px;min-width:100px}.heatmap__filter-control:last-child{margin-right:0}.heatmap__histogram-checkbox,.heatmap__sort-checkbox{margin-left:10px}.heatmap__row{display:flex}.heatmap .tablet,.heatmap__row{margin-bottom:2px}.kv-tablets-overall__row{align-items:center;display:flex;gap:8px}.kv-tablets-overall__row_overall .yc-progress{margin:0;width:166px}.kv-tablets-overall__label{font-weight:500}.tablets{display:flex;flex:1 1 auto;flex-direction:column}.tablets__header{align-items:center;display:flex;gap:12px;margin-bottom:16px}.tablets__items{flex:1 1 auto}.tablets__filters{align-items:center;display:flex}.tablets__filter-control{max-width:180px;min-width:100px;width:180px}.tablets .tablet{display:inline-block;line-height:18px;text-align:center}.ydb-diagnostics-consumers-topic-stats{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.ydb-diagnostics-consumers-topic-stats__wrapper{border-left:1px solid var(--yc-color-line-generic);display:flex;flex-direction:row;padding-left:16px}.ydb-diagnostics-consumers-topic-stats__item{display:flex;flex-direction:column;margin-right:20px}.ydb-diagnostics-consumers-topic-stats__label{color:var(--yc-color-text-secondary);margin-bottom:4px}.ydb-diagnostics-consumers-topic-stats__value{align-items:center;display:flex;height:30px;justify-content:flex-start}.ydb-diagnostics-consumers-columns-header__lags{white-space:nowrap}.ydb-diagnostics-consumers-columns__lags-header{text-align:center}.ydb-diagnostics-consumers{display:flex;flex-grow:1;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto}.ydb-diagnostics-consumers__controls{align-items:center;display:flex;gap:12px;padding:16px 0 18px}.ydb-diagnostics-consumers__search{width:238px}.ydb-diagnostics-consumers__table-settings .yc-icon{width:20px}.ydb-diagnostics-consumers__table-wrapper{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.ydb-diagnostics-consumers__table-content{height:100%;overflow:auto}.ydb-diagnostics-consumers__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-consumers__table-content .data-table__td:first-child{background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-diagnostics-consumers__table-content .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.ydb-diagnostics-consumers__table-content .data-table__head-row:first-child .data-table__th:nth-child(0),.ydb-diagnostics-consumers__table-content .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.ydb-diagnostics-consumers__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-consumers__table-content .data-table__td:first-child{box-shadow:none}.ydb-diagnostics-partitions-columns-header__multiline{white-space:normal}.ydb-diagnostics-partitions-columns-header__read-session{white-space:normal;width:80px}.ydb-diagnostics-partitions-columns-header__lags{white-space:nowrap}.ydb-diagnostics-partitions-columns-header__messages{white-space:normal;width:90px}.ydb-diagnostics-partitions-columns-header__messages-popover-content{max-width:200px}.ydb-diagnostics-partitions-columns__lags-header{text-align:center}.ydb-diagnostics-partitions-columns__string-with-copy{max-width:150px;overflow:hidden;text-overflow:ellipsis}.ydb-diagnostics-partitions{display:flex;flex-grow:1;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto}.ydb-diagnostics-partitions__controls{align-items:center;display:flex;gap:12px;padding:16px 0 18px}.ydb-diagnostics-partitions__consumer-select{width:220px}.ydb-diagnostics-partitions__search{width:238px}.ydb-diagnostics-partitions__search_partition{width:100px}.ydb-diagnostics-partitions__search_general{width:280px}.ydb-diagnostics-partitions__table-settings .yc-icon{width:20px}.ydb-diagnostics-partitions__table-wrapper{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.ydb-diagnostics-partitions__table-content{height:100%;overflow:auto}.ydb-diagnostics-partitions__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-partitions__table-content .data-table__td:first-child{background-color:var(--yc-color-base-background);border-right:1px solid var(--yc-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-diagnostics-partitions__table-content .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.ydb-diagnostics-partitions__table-content .data-table__head-row:first-child .data-table__th:nth-child(0),.ydb-diagnostics-partitions__table-content .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.ydb-diagnostics-partitions__table-content .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-partitions__table-content .data-table__td:first-child{box-shadow:none}.kv-tenant-diagnostics{display:flex;flex-direction:column;height:100%;overflow:hidden}.kv-tenant-diagnostics__header-wrapper{background-color:var(--yc-color-base-background);padding:13px 20px 16px}.kv-tenant-diagnostics__tabs{align-items:center;box-shadow:inset 0 -1px 0 0 var(--yc-color-line-generic);display:flex;justify-content:space-between}.kv-tenant-diagnostics__tabs .yc-tabs_direction_horizontal{box-shadow:none}.kv-tenant-diagnostics__tab{margin-right:40px;text-decoration:none}.kv-tenant-diagnostics__tab:first-letter{text-transform:uppercase}.kv-tenant-diagnostics__page-wrapper{flex-grow:1;overflow:auto;padding:0 20px;width:100%}.kv-tenant-diagnostics__page-wrapper .global-storage__controls,.kv-tenant-diagnostics__page-wrapper .ydb-nodes__controls{padding-top:0}.object-general{display:flex;flex-direction:column;flex-grow:1;height:100%;max-height:100%;width:100%}.object-general__loader{display:flex}.tenant-page{display:flex;flex:1 1 auto;flex-direction:column;font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);overflow:hidden}.tenant-page .yc-tabs{overflow:visible;overflow:initial}.tenant-page__tab-content{height:calc(100% - 56px)}.full-node-viewer{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.full-node-viewer__common-info{align-items:stretch;display:flex;flex-direction:column;justify-content:flex-start}.full-node-viewer__section{border-radius:10px}.full-node-viewer__section_pools{grid-gap:7px 20px;display:grid;grid-template-columns:110px 110px}.full-node-viewer .info-viewer__label{min-width:60px}.full-node-viewer__section-title{font-weight:600;margin:15px 0 10px}.full-node-viewer__section-title,.kv-node-structure{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.kv-node-structure{display:flex;flex-shrink:0;flex:1 1 auto;flex-direction:column;overflow:auto;position:relative}.kv-node-structure__pdisk{border:1px solid var(--yc-color-line-generic);border-radius:5px;display:flex;flex-direction:column;margin-bottom:8px;padding:0 10px 0 20px;width:573px}.kv-node-structure__pdisk-id{align-items:flex-end;display:flex}.kv-node-structure__pdisk-header{align-items:center;display:flex;height:48px;justify-content:space-between}.kv-node-structure__pdisk-title-wrapper{align-items:center;display:flex;font-weight:600;gap:16px}.kv-node-structure__pdisk-title-wrapper .entity-status__status-icon{margin-right:0}.kv-node-structure__pdisk-title-item{display:flex;gap:4px}.kv-node-structure__pdisk-title-item-label{color:var(--yc-color-text-secondary);font-weight:400}.kv-node-structure__pdisk-title-id{min-width:110px}.kv-node-structure__pdisk-title-type{justify-content:flex-end;min-width:50px}.kv-node-structure__pdisk-title-size{min-width:150px}.kv-node-structure__pdisk-details{margin-bottom:20px}.kv-node-structure__link{color:var(--yc-color-base-special);text-decoration:none}.kv-node-structure__vdisks-header{font-weight:600}.kv-node-structure__vdisks-container{margin-bottom:42px}.kv-node-structure__vdisk-details{max-height:90vh;min-width:200px;overflow:auto}.kv-node-structure__vdisk-details .vdisk-pdisk-node__column{margin-bottom:0}.kv-node-structure__vdisk-details .vdisk-pdisk-node__section{padding-bottom:0}.kv-node-structure__vdisk-id{align-items:center;display:flex}.kv-node-structure__vdisk-details-button_selected,.kv-node-structure__vdisk-id_selected{color:var(--yc-color-text-info)}.kv-node-structure__external-button{align-items:center;display:inline-flex;margin-left:4px;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.kv-node-structure__external-button .yc-button__text{margin:0 4px}.kv-node-structure__external-button_hidden{visibility:hidden}.kv-node-structure .data-table__row:hover .kv-node-structure__external-button_hidden{visibility:visible}.kv-node-structure__selected-vdisk{-webkit-animation:onSelectedVdiskAnimation 4s;animation:onSelectedVdiskAnimation 4s}.kv-node-structure__row{display:flex}.kv-node-structure__column{display:flex;flex-direction:column;margin-bottom:15px}.kv-node-structure__title{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}@-webkit-keyframes onSelectedVdiskAnimation{0%{background-color:var(--yc-color-base-info-hover)}}@keyframes onSelectedVdiskAnimation{0%{background-color:var(--yc-color-base-info-hover)}}.basic-node-viewer__link,.link{color:var(--yc-color-text-link);text-decoration:none}.basic-node-viewer__link:hover,.link:hover{color:var(--yc-color-text-link-hover)}.basic-node-viewer{align-items:center;display:flex;margin:15px 0}.basic-node-viewer,.basic-node-viewer__title{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height)}.basic-node-viewer__title{font-weight:600;margin:0 20px 0 0;text-transform:uppercase}.basic-node-viewer__id{margin:0 15px 0 24px}.basic-node-viewer__label{font-size:var(--yc-text-body-2-font-size);line-height:18px;margin-right:10px;white-space:nowrap}.basic-node-viewer__label,.yc-root_theme_dark .basic-node-viewer__label{color:var(--yc-color-text-hint)}.basic-node-viewer__link{margin-left:5px}.node{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.node__header{margin:16px 20px}.node__content{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto;position:relative}.node__storage{height:100%;overflow:auto;padding:0 20px}.node__tabs{padding:0 20px}.node__tab{margin-right:40px;text-decoration:none}.node__tab:last-child{margin-right:0}.node__tab:first-letter{text-transform:uppercase}.node__overview-wrapper{padding:0 20px 20px}.node__node-page-wrapper{height:100%;padding:20px}.pdisk{max-width:100%;padding:0 15px}.pdisk .info-viewer__items{grid-template-columns:auto}.pdisk__row{display:flex}.pdisk__column{display:flex;flex-direction:column}.pdisk__title{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}.pdisk__section{padding:15px 0}.pdisk__size{margin-top:-8px}.pdisk__link{color:var(--yc-color-base-special);text-decoration:none}.kv-breadcrumbs{font-size:var(--yc-text-body-2-font-size);padding:20px 0}.full-group-viewer{display:flex;flex:1 1 auto;flex-direction:column;max-width:100%;overflow:auto;padding:0 15px}.full-group-viewer__section{border-radius:5px;display:inline-block;margin-right:40px;min-width:315px}.full-group-viewer__section .info-viewer__label{min-width:75px}.full-group-viewer .info-viewer__items{grid-template-columns:-webkit-max-content;grid-template-columns:max-content}.full-group-viewer .data-table{display:flex;flex:1 1 auto;flex-direction:column;margin-top:50px;overflow:auto}.full-group-viewer .data-table__table{width:100%}.group{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.group-viewer{align-items:center;display:flex}.group-viewer__group{margin-right:20px}.group-viewer__label{color:var(--yc-color-text-complementary);font-size:var(--yc-text-body-1-font-size);margin-right:20px}.group-viewer__name{color:var(--yc-color-base-special);display:inline-block;text-decoration:none}.group-viewer__name:before{-webkit-transform:translateY(3px);transform:translateY(3px)}.group-viewer__latency{margin-right:20px}.group-viewer__vdisks{display:flex}.group-viewer__disk-overall .entity-status:before{margin-right:5px}.group-viewer__progress{margin-right:10px}.pdisk-viewer{align-items:center;display:flex}.pdisk-viewer__item,.pdisk-viewer__size{color:var(--yc-color-text-complementary);font-size:var(--yc-text-body-2-font-size);line-height:0;margin-right:24px}.pdisk-viewer__item .entity-status{min-width:100px}.pdisk-viewer__item .entity-status a{overflow:visible;overflow:initial}.pdisk-viewer__row{align-items:center;display:flex}.pdisk-viewer__size{color:var(--yc-color-text-complementary);font-size:10px;width:120px}.pdisk-viewer__label{margin:0 5px}.pdisk-viewer__label_link{color:var(--yc-color-base-special);display:inline-block;text-decoration:none}.group-tree-viewer__row{align-items:center;display:flex;height:34px}.group-tree-viewer__disk{margin:8px 10px 8px 20px}.group-tree-viewer__vdisk{margin-right:25px}.pool{max-width:100%;padding:0 15px}.pool__row{display:flex}.pool__title{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}.pool__title_groups{margin-right:32px}.pool__controls{align-items:center;display:flex;margin:25px 0 10px}.pool__breadcrumbs{font-size:var(--yc-text-body-2-font-size);padding:20px 0}.ydb-critical-dialog{width:252px!important}.ydb-critical-dialog__warning-icon{margin-right:16px}.ydb-critical-dialog__body{align-items:center;display:flex;padding:16px 16px 0}.ydb-critical-dialog .yc-dialog-footer{padding:20px 4px 4px}.ydb-critical-dialog .yc-dialog-footer__children{display:none}.ydb-critical-dialog .yc-dialog-footer__button{box-sizing:border-box;margin:0;min-width:120px}.ydb-critical-dialog .yc-dialog-footer__button_action_cancel{margin-right:4px}.link,.tablet-page__link{color:var(--yc-color-text-link);text-decoration:none}.link:hover,.tablet-page__link:hover{color:var(--yc-color-text-link-hover)}.tablet-page{display:flex;flex-direction:column;padding:20px}.tablet-page__tenant{margin-bottom:20px}.tablet-page__pane-wrapper{display:flex}.tablet-page__left-pane{margin-right:70px}.tablet-page__history-title{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);margin-bottom:15px}.tablet-page__placeholder{flex:1 1 auto;justify-content:center}.tablet-page__placeholder,.tablet-page__row{align-items:center;display:flex}.tablet-page__row_header{margin-bottom:20px}.tablet-page__row_header .tablet-page__link{margin:0 10px 0 5px}.tablet-page__title{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}.tablet-page .info-viewer__items{grid-template-columns:auto}.tablet-page__controls{margin:20px 0 15px}.tablet-page__control{margin-right:15px}.tablet-page__links{display:flex;list-style-type:none;margin:5px 0 10px;padding:0}.tablet-page__links>*{margin:0 10px 0 0}.tablet-page__top-label{font-size:var(--yc-text-body-2-font-size);font-weight:500;line-height:var(--yc-text-body-2-line-height);margin-right:16px;text-transform:uppercase}.tablets-filters{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto}.tablets-filters__node{font-size:var(--yc-text-body-1-font-size);line-height:var(--yc-text-body-1-line-height);overflow:hidden}.tablets-filters__node-meta{color:var(--yc-color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tablets-filters__items{flex:1 1 auto;overflow:auto;padding:5px 20px}.tablets-filters__filters{align-items:center;display:flex;margin:10px 0;padding:0 20px}.tablets-filters__filter-label{margin-right:15px;white-space:nowrap}.tablets-filters__filter-wrapper{align-items:center;display:flex;margin-right:15px}.tablets-filters__filter-control{margin-right:10px;max-width:200px;min-width:100px}.tablets-filters__filter-control:last-child{margin-right:0}.tablets-filters__tablet{margin-bottom:2px}.tablets-filters__empty-message{display:flex;justify-content:center}.tablets-filters__tenant{padding:20px 20px 10px}.tablets-filters .tablet{display:inline-block;line-height:18px;text-align:center}.popup2{-webkit-animation:none!important;animation:none!important;max-width:300px}.histogram-tooltip,.node-tootltip,.pool-tooltip,.tablet-tooltip,.tabletsOverall-tooltip{padding:10px}.histogram-tooltip__label,.node-tootltip__label,.pool-tooltip__label,.tablet-tooltip__label,.tabletsOverall-tooltip__label{color:var(--yc-color-text-secondary);padding-right:15px}.json-tooltip{padding:20px 20px 20px 0}.json-tooltip__inspector{font-family:var(--yc-font-family-monospace)!important;font-size:var(--yc-text-code-1-font-size)!important;line-height:var(--yc-text-code-1-line-height)!important}.json-tooltip__inspector .json-inspector__leaf_composite:before{color:var(--yc-color-text-secondary);font-size:9px;left:20px;position:absolute}.json-tooltip__inspector .json-inspector__leaf_composite.json-inspector__leaf_root:before{left:0}.json-tooltip__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:"[+]"}.json-tooltip__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before{content:"[-]"}.json-tooltip__inspector .json-inspector__key{color:var(--yc-color-text-misc)}.json-tooltip__inspector .json-inspector__leaf{padding-left:20px;position:relative}.json-tooltip__inspector .json-inspector__leaf_root{padding-left:0}.json-tooltip__inspector .json-inspector__line{padding-left:20px}.json-tooltip__inspector .json-inspector__toolbar{border:1px solid var(--yc-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.json-tooltip__inspector .json-inspector__search{background:none;border:0 solid transparent;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--yc-color-text-primary);font-family:var(--yc-text-body-font-family);font-size:13px;height:28px;margin:0;outline:0;padding:0;vertical-align:top;width:300px}.json-tooltip__inspector .json-inspector__value_helper{color:var(--yc-color-text-secondary)}.json-tooltip__inspector .json-inspector__line:hover:after{background:var(--yc-color-base-simple-hover)}.json-tooltip__inspector .json-inspector__show-original:before{color:var(--yc-color-text-secondary)}.json-tooltip__inspector .json-inspector__show-original:hover:after,.json-tooltip__inspector .json-inspector__show-original:hover:before{color:var(--yc-color-text-primary)}.json-tooltip__inspector .json-inspector__leaf_expanded.json-inspector__leaf_composite:before,.json-tooltip__inspector :not(.json-inspector__leaf_expanded).json-inspector__leaf_composite:before{content:""}.json-tooltip__inspector .json-inspector__line:hover:after{background:transparent}.json-tooltip__inspector .json-inspector__show-original:hover:after,.json-tooltip__inspector .json-inspector__show-original:hover:before{color:transparent}.json-tooltip__inspector .json-inspector__value_helper{display:none}.cell-tooltip{padding:10px;word-break:break-word}.tablet-tooltip{padding:10px}.tablet-tooltip__label{color:var(--yc-color-text-secondary);padding-right:15px}.tablet-tooltip__value_blue{color:var(--yc-color-base-special)}.header{align-items:center;border-bottom:1px solid var(--yc-color-line-generic);display:flex;flex:0 0 40px;font-size:var(--yc-text-body-2-font-size);font-weight:600;justify-content:space-between;line-height:var(--yc-text-body-2-line-height);padding:0 20px 0 18px}.header__cluster-info-title{color:var(--yc-color-text-secondary);font-size:var(--yc-text-body-1-font-size);text-transform:uppercase}.header__cluster-info-name{font-size:var(--yc-text-body-2-font-size);font-weight:500}.header__cluster-name-wrapper{align-items:center;display:flex;gap:5px;height:100%}.header__divider{height:80%}*{box-sizing:border-box}.yc-select-popup__tick-icon{box-sizing:initial}#root,body,html{box-sizing:border-box;height:100%;margin:0;overflow:auto;padding:0}:root{--yc-color-infographics-yellow-light:rgba(255,199,0,.15);--yc-color-infographics-yellow-medium:rgba(255,219,77,.4);--yc-color-base-warning-orange:#ff922e;--data-table-row-height:40px}.yc-root{--ydb-data-table-color-hover:var(--yc-color-base-float-hover)}.yc-select__label{font-weight:600}:is(#tab,.yc-tabs-item_active .yc-tabs-item__title){color:var(--yc-color-text-primary)!important}:is(#tab,.yc-tabs-item__title){color:var(--yc-color-text-secondary)}.ycn-aside-header__pane-container{height:100%}.ycn-aside-header__content{display:flex;flex-direction:column;height:100%;overflow:auto;position:relative}.loader{align-items:center;display:flex;justify-content:center;left:50%;position:fixed;top:50%;z-index:99999999}.app{height:100%}.app,.app__main{display:flex;flex:1 1 auto;flex-direction:column}.app__main{overflow:auto}.app .data-table{font-size:var(--yc-text-body-2-font-size);line-height:var(--yc-text-body-2-line-height);width:100%}.app .data-table__table{border-collapse:initial;border-spacing:0;max-width:100%}.app .data-table__th{border-left:initial;border-right:initial;border-top:initial;font-weight:700}.app .data-table__sticky .data-table__th,.app .data-table__td{border-left:initial;border-right:initial;border-top:initial;height:40px;height:var(--data-table-row-height);vertical-align:middle}.app .yc-clipboard-button{align-items:center;display:inline-flex;justify-content:center}.app .yc-button__text{align-items:center;display:flex}.error{color:var(--yc-color-text-danger)}.data-table__row:hover .entity-status__clipboard-button{display:flex}.yc-root .data-table_highlight-rows .data-table__row:hover{background:var(--ydb-data-table-color-hover)}.yc-table-column-setup__item{cursor:pointer!important;padding:0 8px 0 32px!important}.app_embedded{font-family:Rubik,sans-serif}.yc-popup{max-width:500px}.link{color:var(--yc-color-text-link);text-decoration:none}.link_external{margin-right:10px}.link:hover{color:var(--yc-color-text-link-hover)}.authentication{align-items:center;background-blend-mode:normal;background-color:rgba(184,212,253,.1);background-image:radial-gradient(at 0 100%,rgba(0,102,255,.15) 20%,hsla(0,0%,97%,0) 40%),radial-gradient(at 55% 0,rgba(0,102,255,.15) 20%,hsla(0,0%,97%,0) 40%),radial-gradient(at 110% 100%,rgba(0,102,255,.15) 20%,hsla(0,0%,97%,0) 40%);display:flex;height:100%;justify-content:center}.authentication .yc-text-input{display:flex}.authentication__header{align-items:center;display:flex;font-size:var(--yc-text-body-1-font-size);justify-content:space-between;line-height:var(--yc-text-header-1-line-height);width:100%}.authentication__logo{align-items:center;display:flex;font-size:16px;font-weight:600;gap:8px}.authentication__title{font-size:var(--yc-text-header-2-font-size);font-weight:600;line-height:var(--yc-text-header-2-line-height);margin:34px 0 16px}.authentication__form-wrapper{align-items:center;background-color:var(--yc-color-base-background);border-radius:16px;display:flex;flex-direction:column;flex-shrink:0;justify-content:center;min-width:320px;padding:40px;width:400px}.authentication__field-wrapper{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px;width:320px}.authentication__field-wrapper .yc-text-input_state_error{flex-direction:column}.authentication__button-sign-in{display:inline-flex;justify-content:center}.authentication__show-password-button{margin-left:4px}.authentication__close{position:absolute;right:40px;top:40px}.ydb-user-settings__item-with-popup{max-width:180px}.ydb-user-settings__popup{max-width:370px}.kv-navigation__internal-user{align-items:center;display:flex;justify-content:space-between;line-height:var(--yc-text-body-2-line-height);margin-left:16px}.kv-navigation__user-info-wrapper{display:flex;flex-direction:column}.kv-navigation__ydb-internal-user-title{font-weight:500}.kv-navigation__user-icon{color:var(--yc-color-text-misc)}.kv-navigation__ydb-user-wrapper{padding:10px;width:300px}.yc-root{--yc-font-family-sans:"Helvetica Neue","Arial","Helvetica",sans-serif;--yc-font-family-monospace:"SF Mono","Menlo","Monaco","Consolas","Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New","Courier",monospace;--yc-text-body-font-family:var(--yc-font-family-sans);--yc-text-code-font-family:var(--yc-font-family-monospace);--yc-text-header-font-weight:900;--yc-text-subheader-font-weight:900;--yc-text-display-font-weight:900;--yc-text-code-font-weight:400;--yc-text-body-font-weight:400;--yc-text-caption-font-weight:400;--yc-text-accent-font-weight:900;--yc-text-body-1-font-size:13px;--yc-text-body-1-line-height:18px;--yc-text-body-2-font-size:15px;--yc-text-body-2-line-height:20px;--yc-text-body-3-font-size:17px;--yc-text-body-3-line-height:24px;--yc-text-body-short-font-size:13px;--yc-text-body-short-line-height:16px;--yc-text-caption-1-font-size:9px;--yc-text-caption-1-line-height:12px;--yc-text-caption-2-font-size:11px;--yc-text-caption-2-line-height:16px;--yc-text-header-1-font-size:20px;--yc-text-header-1-line-height:24px;--yc-text-header-2-font-size:24px;--yc-text-header-2-line-height:28px;--yc-text-subheader-1-font-size:13px;--yc-text-subheader-1-line-height:18px;--yc-text-subheader-2-font-size:15px;--yc-text-subheader-2-line-height:20px;--yc-text-subheader-3-font-size:17px;--yc-text-subheader-3-line-height:24px;--yc-text-display-1-font-size:28px;--yc-text-display-1-line-height:36px;--yc-text-display-2-font-size:32px;--yc-text-display-2-line-height:40px;--yc-text-display-3-font-size:40px;--yc-text-display-3-line-height:48px;--yc-text-display-4-font-size:48px;--yc-text-display-4-line-height:52px;--yc-text-code-1-font-size:12px;--yc-text-code-1-line-height:18px;--yc-text-code-2-font-size:14px;--yc-text-code-2-line-height:20px;--yc-text-code-3-font-size:16px;--yc-text-code-3-line-height:24px;--yc-text-code-inline-1-font-size:12px;--yc-text-code-inline-1-line-height:14px;--yc-text-code-inline-2-font-size:14px;--yc-text-code-inline-2-line-height:16px;--yc-text-code-inline-3-font-size:16px;--yc-text-code-inline-3-line-height:20px;--yc-my-scrollbar-width:12px;--yc-my-border-radius-s:5px;--yc-my-border-radius-m:6px;--yc-my-border-radius-l:8px;--yc-my-border-radius-xl:10px;--yc-color-telegram:#51a4db;--yc-color-facebook:#4968ad;--yc-color-twitter:#4aa0eb;--yc-color-vk:#436eab;--yc-color-youtube:#eb3323;--yc-color-github:#25292e;--yc-color-rss:#f29c39;--yc-color-linkedin:#0a66c2;--yc-scrollbar-width:var(--yc-my-scrollbar-width);--yc-border-radius-s:var(--yc-my-border-radius-s);--yc-border-radius-m:var(--yc-my-border-radius-m);--yc-border-radius-l:var(--yc-my-border-radius-l);--yc-border-radius-xl:var(--yc-my-border-radius-xl);font-family:var(--yc-text-body-font-family);font-size:var(--yc-text-body-1-font-size);font-weight:var(--yc-text-body-font-weight);line-height:var(--yc-text-body-1-line-height)}.yc-root_theme_light{--yc-color-private-white-150:hsla(0,0%,100%,.15);--yc-color-private-white-300:hsla(0,0%,100%,.3);--yc-color-private-white-500:hsla(0,0%,100%,.5);--yc-color-private-white-700:hsla(0,0%,100%,.7);--yc-color-private-white-850:hsla(0,0%,100%,.85);--yc-color-private-white-950:hsla(0,0%,100%,.95);--yc-color-private-white-1000:#fff;--yc-color-private-black-50:rgba(0,0,0,.05);--yc-color-private-black-70:rgba(0,0,0,.07);--yc-color-private-black-100:rgba(0,0,0,.1);--yc-color-private-black-150:rgba(0,0,0,.15);--yc-color-private-black-250:rgba(0,0,0,.25);--yc-color-private-black-300:rgba(0,0,0,.3);--yc-color-private-black-500:rgba(0,0,0,.5);--yc-color-private-black-550:rgba(0,0,0,.55);--yc-color-private-black-700:rgba(0,0,0,.7);--yc-color-private-black-850:rgba(0,0,0,.85);--yc-color-private-black-20-solid:#fafafa;--yc-color-private-black-50-solid:#f3f3f3;--yc-color-private-black-100-solid:#e5e5e5;--yc-color-private-black-150-solid:#dadada;--yc-color-private-black-700-solid:#4c4c4c;--yc-color-private-blue-50:rgba(82,130,255,.1);--yc-color-private-blue-100:rgba(82,130,255,.16);--yc-color-private-blue-300:rgba(82,130,255,.5);--yc-color-private-blue-450:rgba(82,130,255,.75);--yc-color-private-blue-500:rgba(82,130,255,.9);--yc-color-private-blue-550:#5282ff;--yc-color-private-blue-600:#4a71d6;--yc-color-private-blue-800:#3f5799;--yc-color-private-blue-50-solid:#eef3ff;--yc-color-private-blue-100-solid:#e3ebff;--yc-color-private-blue-450-solid:#7da1ff;--yc-color-private-green-50:rgba(59,201,53,.1);--yc-color-private-green-100:rgba(59,201,53,.14);--yc-color-private-green-150:rgba(59,201,53,.25);--yc-color-private-green-200:rgba(59,201,53,.35);--yc-color-private-green-300:rgba(59,201,53,.5);--yc-color-private-green-450:rgba(63,201,46,.75);--yc-color-private-green-550:#3bc935;--yc-color-private-green-600:#07a300;--yc-color-private-green-450-solid:#6fd662;--yc-color-private-yellow-100:rgba(255,219,77,.3);--yc-color-private-yellow-200:rgba(255,219,77,.4);--yc-color-private-yellow-550:#ffdb4d;--yc-color-private-yellow-600:#f5ca45;--yc-color-private-yellow-650:#f5ab19;--yc-color-private-yellow-700:#e0b509;--yc-color-private-yellow-800:#d17700;--yc-color-private-red-50:rgba(235,50,38,.08);--yc-color-private-red-100:rgba(235,50,38,.17);--yc-color-private-red-300:rgba(255,4,0,.5);--yc-color-private-red-450:rgba(255,4,0,.7);--yc-color-private-red-500:rgba(255,4,0,.8);--yc-color-private-red-550:#ff0400;--yc-color-private-red-450-solid:#ff504d;--yc-color-private-purple-550:#9a32a6;--yc-color-private-purple-800:#5e3e65;--yc-color-private-cool-grey-50:rgba(107,132,153,.12);--yc-color-private-cool-grey-100:rgba(107,132,153,.2);--yc-color-private-cool-grey-300:rgba(107,132,153,.55);--yc-color-private-cool-grey-450:rgba(107,132,153,.75);--yc-color-private-cool-grey-550:#6b8499;--yc-color-private-cool-grey-800:#3b6080;--yc-color-private-cool-grey-50-solid:#edf0f3;--yc-color-private-cool-grey-450-solid:#90a3b2;--yc-color-private-orange-50:rgba(255,119,0,.15);--yc-color-private-orange-100:rgba(255,119,0,.2);--yc-color-private-orange-300:rgba(255,119,0,.5);--yc-color-private-orange-450:#ffb422;--yc-color-private-orange-550:#f70;--yc-my-color-brand-normal:var(--yc-color-private-blue-550);--yc-my-color-brand-normal-hover:var(--yc-color-private-blue-600);--yc-my-color-brand-light:var(--yc-color-private-blue-300);--yc-my-color-brand-selection:var(--yc-color-private-blue-50);--yc-my-color-brand-selection-hover:var(--yc-color-private-blue-100);--yc-my-color-brand-link:var(--yc-my-color-brand-normal);--yc-my-color-brand-link-hover:var(--yc-color-private-blue-800);--yc-my-color-brand-text:var(--yc-my-color-brand-normal);--yc-my-color-brand-text-contrast:var(--yc-color-text-light-primary);--yc-my-color-brand-link-visited:var(--yc-color-private-purple-550);--yc-my-color-brand-link-visited-hover:var(--yc-color-private-purple-800);--yc-color-text-primary:var(--yc-color-private-black-850);--yc-color-text-complementary:var(--yc-color-private-black-700);--yc-color-text-secondary:var(--yc-color-private-black-500);--yc-color-text-hint:var(--yc-color-private-black-300);--yc-color-text-info:var(--yc-color-private-blue-550);--yc-color-text-positive:var(--yc-color-private-green-600);--yc-color-text-warning-medium:var(--yc-color-private-yellow-700);--yc-color-text-warning-heavy:var(--yc-color-private-yellow-800);--yc-color-text-danger:var(--yc-color-private-red-500);--yc-color-text-utility:var(--yc-color-private-purple-550);--yc-color-text-misc:var(--yc-color-private-cool-grey-800);--yc-color-text-special:var(--yc-my-color-brand-normal);--yc-color-text-link:var(--yc-my-color-brand-link);--yc-color-text-link-hover:var(--yc-my-color-brand-link-hover);--yc-color-text-link-visited:var(--yc-my-color-brand-link-visited);--yc-color-text-link-visited-hover:var(--yc-my-color-brand-link-visited-hover);--yc-color-text-yandex-red:var(--yc-color-private-red-550);--yc-color-text-dark-primary:var(--yc-color-private-black-850);--yc-color-text-dark-complementary:var(--yc-color-private-black-700);--yc-color-text-dark-secondary:var(--yc-color-private-black-500);--yc-color-text-light-primary:var(--yc-color-private-white-1000);--yc-color-text-light-complementary:var(--yc-color-private-white-850);--yc-color-text-light-secondary:var(--yc-color-private-white-700);--yc-color-text-light-hint:var(--yc-color-private-white-500);--yc-color-text-inverted-primary:var(--yc-color-private-white-1000);--yc-color-text-inverted-complementary:var(--yc-color-private-white-850);--yc-color-text-inverted-secondary:var(--yc-color-private-white-700);--yc-color-text-inverted-hint:var(--yc-color-private-white-500);--yc-color-base-background:var(--yc-color-private-white-1000);--yc-color-base-generic:var(--yc-color-private-black-50);--yc-color-base-generic-hover:var(--yc-color-private-black-150);--yc-color-base-generic-medium:var(--yc-color-private-black-150);--yc-color-base-generic-medium-hover:var(--yc-color-private-black-250);--yc-color-base-generic-accent:var(--yc-color-private-black-150);--yc-color-base-generic-accent-disabled:var(--yc-color-private-black-70);--yc-color-base-generic-ultralight:var(--yc-color-private-black-20-solid);--yc-color-base-simple-hover:var(--yc-color-private-black-50);--yc-color-base-simple-hover-solid:var(--yc-color-private-black-50-solid);--yc-color-base-selection:var(--yc-my-color-brand-selection);--yc-color-base-selection-hover:var(--yc-my-color-brand-selection-hover);--yc-color-base-special:var(--yc-my-color-brand-normal);--yc-color-base-special-hover:var(--yc-my-color-brand-normal-hover);--yc-color-base-action:var(--yc-color-base-special);--yc-color-base-action-hover:var(--yc-color-base-special-hover);--yc-color-base-info:var(--yc-color-private-blue-50);--yc-color-base-info-hover:var(--yc-color-private-blue-100);--yc-color-base-positive:var(--yc-color-private-green-50);--yc-color-base-positive-hover:var(--yc-color-private-green-100);--yc-color-base-warning:var(--yc-color-private-yellow-100);--yc-color-base-warning-hover:var(--yc-color-private-yellow-200);--yc-color-base-danger:var(--yc-color-private-red-50);--yc-color-base-danger-hover:var(--yc-color-private-red-100);--yc-color-base-misc:var(--yc-color-private-cool-grey-50);--yc-color-base-misc-hover:var(--yc-color-private-cool-grey-100);--yc-color-base-neutral:var(--yc-color-private-black-50);--yc-color-base-neutral-hover:var(--yc-color-private-black-150);--yc-color-base-positive-medium:var(--yc-color-private-green-150);--yc-color-base-positive-medium-hover:var(--yc-color-private-green-200);--yc-color-base-info-heavy:var(--yc-color-private-blue-450);--yc-color-base-positive-heavy:var(--yc-color-private-green-450);--yc-color-base-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-base-warning-heavy-hover:var(--yc-color-private-yellow-600);--yc-color-base-danger-heavy:var(--yc-color-private-red-450);--yc-color-base-danger-heavy-hover:var(--yc-color-private-red-500);--yc-color-base-misc-heavy:var(--yc-color-private-cool-grey-450-solid);--yc-color-base-misc-heavy-hover:var(--yc-color-private-cool-grey-550);--yc-color-base-light:var(--yc-color-private-white-1000);--yc-color-base-light-hover:var(--yc-color-private-white-850);--yc-color-base-light-simple-hover:var(--yc-color-private-white-150);--yc-color-base-light-disabled:var(--yc-color-private-white-150);--yc-color-base-light-accent-disabled:var(--yc-color-private-white-300);--yc-color-base-float:var(--yc-color-private-white-1000);--yc-color-base-float-hover:var(--yc-color-private-black-50-solid);--yc-color-base-float-heavy:var(--yc-color-private-black-700-solid);--yc-color-base-float-accent:var(--yc-color-private-white-1000);--yc-color-base-float-accent-hover:var(--yc-color-private-white-850);--yc-color-base-float-announcement:var(--yc-color-private-cool-grey-50-solid);--yc-color-base-modal:var(--yc-color-private-white-1000);--yc-color-line-generic:var(--yc-color-private-black-100);--yc-color-line-generic-hover:var(--yc-color-private-black-150);--yc-color-line-generic-active:var(--yc-color-private-black-300);--yc-color-line-generic-accent:var(--yc-color-private-black-150);--yc-color-line-generic-accent-hover:var(--yc-color-private-black-300);--yc-color-line-solid:var(--yc-color-private-black-100-solid);--yc-color-line-selection-hover:var(--yc-my-color-brand-light);--yc-color-line-selection-active:var(--yc-my-color-brand-normal);--yc-color-line-link:var(--yc-my-color-brand-normal);--yc-color-line-info:var(--yc-color-private-blue-450);--yc-color-line-positive:var(--yc-color-private-green-450);--yc-color-line-warning:var(--yc-color-private-yellow-600);--yc-color-line-danger:var(--yc-color-private-red-450);--yc-color-line-misc:var(--yc-color-private-cool-grey-450);--yc-color-line-hint:var(--yc-color-private-blue-550);--yc-color-line-light:var(--yc-color-private-white-500);--yc-color-infographics-info-light:var(--yc-color-private-blue-50);--yc-color-infographics-positive-light:var(--yc-color-private-green-50);--yc-color-infographics-warning-light:var(--yc-color-private-orange-50);--yc-color-infographics-danger-light:var(--yc-color-private-red-50);--yc-color-infographics-misc-light:var(--yc-color-private-cool-grey-50);--yc-color-infographics-neutral-light:var(--yc-color-private-black-50);--yc-color-infographics-info-medium:var(--yc-color-private-blue-300);--yc-color-infographics-positive-medium:var(--yc-color-private-green-300);--yc-color-infographics-warning-medium:var(--yc-color-private-orange-300);--yc-color-infographics-danger-medium:var(--yc-color-private-red-300);--yc-color-infographics-misc-medium:var(--yc-color-private-cool-grey-300);--yc-color-infographics-neutral-medium:var(--yc-color-private-black-150);--yc-color-infographics-info-heavy:var(--yc-color-private-blue-550);--yc-color-infographics-positive-heavy:var(--yc-color-private-green-550);--yc-color-infographics-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-infographics-danger-heavy:var(--yc-color-private-red-550);--yc-color-infographics-misc-heavy:var(--yc-color-private-cool-grey-550);--yc-color-infographics-neutral-heavy:var(--yc-color-private-black-300);--yc-color-infographics-axis:var(--yc-color-private-black-150-solid);--yc-color-infographics-tooltip-bg:var(--yc-color-private-white-950);--yc-color-sfx-veil:var(--yc-color-private-black-250);--yc-color-sfx-shadow:var(--yc-color-private-black-150);--yc-color-sfx-shadow-heavy:var(--yc-color-private-black-500);--yc-color-sfx-fade:var(--yc-color-private-white-300);--yc-color-promo-base-silver:#eff2f8;--yc-color-promo-base-gold:#ffdb4d;--yc-color-promo-base-asphalt:#313538;--yc-color-promo-base-tomato:#ff5958;--yc-color-promo-base-copper:#ffab3b;--yc-color-promo-base-mint:#5ecf71;--yc-color-promo-base-sky:#49a0f6;--yc-color-promo-base-neon:#9f6fee;--yc-color-promo-highlight-silver:#edf2f7;--yc-color-promo-highlight-gold:#fff1b8;--yc-color-promo-highlight-asphalt:#eaebeb;--yc-color-promo-highlight-tomato:#ffdede;--yc-color-promo-highlight-copper:#ffe6c4;--yc-color-promo-highlight-mint:#ccf0d2;--yc-color-promo-highlight-sky:#d6e9fd;--yc-color-promo-highlight-neon:#ece2fc;--yc-color-promo-accent-silver:#969a9e;--yc-color-promo-accent-gold:#ffdb4d;--yc-color-promo-accent-asphalt:#313538;--yc-color-promo-accent-tomato:#ff5958;--yc-color-promo-accent-copper:#ffab3b;--yc-color-promo-accent-mint:#5ecf71;--yc-color-promo-accent-sky:#49a0f6;--yc-color-promo-accent-neon:#9f6fee;--yc-color-promo-accent-hover-silver:#727578;--yc-color-promo-accent-hover-gold:#edbe28;--yc-color-promo-accent-hover-asphalt:#000;--yc-color-promo-accent-hover-tomato:#ee4f4e;--yc-color-promo-accent-hover-copper:#f28d04;--yc-color-promo-accent-hover-mint:#3bbc51;--yc-color-promo-accent-hover-sky:#2180de;--yc-color-promo-accent-hover-neon:#7b47cf;--yc-color-promo-text-silver:#969a9e;--yc-color-promo-text-gold:#ebb409;--yc-color-promo-text-asphalt:#313538;--yc-color-promo-text-tomato:#ff5958;--yc-color-promo-text-copper:#ffab3b;--yc-color-promo-text-mint:#5ecf71;--yc-color-promo-text-sky:#49a0f6;--yc-color-promo-text-neon:#9f6fee;--yc-color-scroll-track:var(--yc-color-base-background);--yc-color-scroll-handle:var(--yc-color-private-black-100);--yc-color-scroll-handle-hover:var(--yc-color-private-black-150);--yc-color-scroll-corner:var(--yc-color-private-black-100)}.yc-root_theme_dark,.yc-root_theme_light{background:var(--yc-color-base-background);color:var(--yc-color-text-primary)}.yc-root_theme_dark{--yc-color-private-white-50:hsla(0,0%,100%,.05);--yc-color-private-white-70:hsla(0,0%,100%,.07);--yc-color-private-white-100:hsla(0,0%,100%,.1);--yc-color-private-white-150:hsla(0,0%,100%,.15);--yc-color-private-white-250:hsla(0,0%,100%,.25);--yc-color-private-white-300:hsla(0,0%,100%,.3);--yc-color-private-white-500:hsla(0,0%,100%,.5);--yc-color-private-white-700:hsla(0,0%,100%,.7);--yc-color-private-white-850:hsla(0,0%,100%,.85);--yc-color-private-white-opaque-150:rgba(76,75,81,.95);--yc-color-private-black-200:rgba(0,0,0,.2);--yc-color-private-black-300:rgba(0,0,0,.3);--yc-color-private-black-400:rgba(0,0,0,.4);--yc-color-private-black-500:rgba(0,0,0,.5);--yc-color-private-black-600:rgba(0,0,0,.6);--yc-color-private-black-700:rgba(0,0,0,.7);--yc-color-private-black-900:rgba(0,0,0,.9);--yc-color-private-black-rock-850:#2d2c33;--yc-color-private-white-20-solid:#313037;--yc-color-private-white-100-solid:#424147;--yc-color-private-white-150-solid:#4c4c52;--yc-color-private-white-200-solid:#57565c;--yc-color-private-blue-100:rgba(133,168,255,.15);--yc-color-private-blue-150:rgba(133,168,255,.25);--yc-color-private-blue-300:rgba(133,168,255,.5);--yc-color-private-blue-450:rgba(87,126,214,.8);--yc-color-private-blue-550:#577ed6;--yc-color-private-blue-700:#6292ff;--yc-color-private-blue-850:#85a8ff;--yc-color-private-blue-150-solid:#434b66;--yc-color-private-blue-300-solid:#596a99;--yc-color-private-blue-450-solid:#4f6eb5;--yc-color-private-green-100:rgba(59,201,53,.12);--yc-color-private-green-150:rgba(59,201,53,.16);--yc-color-private-green-300:rgba(186,255,184,.6);--yc-color-private-green-350:rgba(186,255,184,.68);--yc-color-private-green-450:rgba(59,201,53,.58);--yc-color-private-green-550:rgba(59,201,53,.75);--yc-color-private-green-450-solid:#358734;--yc-color-private-yellow-100:rgba(255,219,77,.25);--yc-color-private-yellow-150:rgba(255,219,77,.4);--yc-color-private-yellow-450:rgba(255,219,77,.64);--yc-color-private-yellow-550:rgba(255,219,77,.8);--yc-color-private-yellow-700:#e0bd34;--yc-color-private-red-100:rgba(191,50,48,.3);--yc-color-private-red-150:rgba(191,50,48,.45);--yc-color-private-red-300:rgba(255,77,73,.5);--yc-color-private-red-450:rgba(208,71,69,.88);--yc-color-private-red-550:#d04745;--yc-color-private-red-450-solid:#a23130;--yc-color-private-purple-550:#a63eb2;--yc-color-private-purple-700:#b14ec6;--yc-color-private-purple-850:#c879d8;--yc-color-private-cool-grey-100:rgba(95,115,133,.18);--yc-color-private-cool-grey-150:rgba(107,132,153,.3);--yc-color-private-cool-grey-300:rgba(95,115,133,.6);--yc-color-private-cool-grey-450:rgba(95,115,133,.8);--yc-color-private-cool-grey-550:#5f7385;--yc-color-private-cool-grey-700:#8ea2b4;--yc-color-private-cool-grey-450-solid:#556575;--yc-color-private-orange-50:rgba(204,104,16,.2);--yc-color-private-orange-100:rgba(204,104,16,.3);--yc-color-private-orange-150:rgba(204,104,16,.5);--yc-color-private-orange-300:rgba(255,160,66,.5);--yc-color-private-orange-450:rgba(204,104,16,.8);--yc-color-private-orange-550:#cc6810;--yc-color-private-orange-450-solid:#ac5c17;--yc-my-color-brand-normal:var(--yc-color-private-blue-550);--yc-my-color-brand-normal-hover:var(--yc-color-private-blue-700);--yc-my-color-brand-light:var(--yc-color-private-blue-300);--yc-my-color-brand-selection:var(--yc-color-private-blue-150);--yc-my-color-brand-selection-hover:var(--yc-color-private-blue-300);--yc-my-color-brand-link:var(--yc-color-private-blue-700);--yc-my-color-brand-link-hover:var(--yc-color-private-blue-850);--yc-my-color-brand-text:var(--yc-color-private-blue-700);--yc-my-color-brand-text-contrast:var(--yc-color-text-light-primary);--yc-my-color-brand-link-visited:var(--yc-color-private-purple-700);--yc-my-color-brand-link-visited-hover:var(--yc-color-private-purple-850);--yc-color-text-primary:var(--yc-color-private-white-850);--yc-color-text-complementary:var(--yc-color-private-white-700);--yc-color-text-secondary:var(--yc-color-private-white-500);--yc-color-text-hint:var(--yc-color-private-white-300);--yc-color-text-info:var(--yc-color-private-blue-700);--yc-color-text-positive:var(--yc-color-private-green-550);--yc-color-text-warning-medium:var(--yc-color-private-yellow-700);--yc-color-text-warning-heavy:var(--yc-color-private-yellow-700);--yc-color-text-danger:var(--yc-color-private-red-550);--yc-color-text-utility:var(--yc-color-private-purple-550);--yc-color-text-misc:var(--yc-color-private-cool-grey-700);--yc-color-text-special:var(--yc-my-color-brand-normal);--yc-color-text-link:var(--yc-my-color-brand-link);--yc-color-text-link-hover:var(--yc-my-color-brand-link-hover);--yc-color-text-link-visited:var(--yc-my-color-brand-link-visited);--yc-color-text-link-visited-hover:var(--yc-my-color-brand-link-visited-hover);--yc-color-text-yandex-red:var(--yc-color-private-red-550);--yc-color-text-dark-primary:var(--yc-color-private-black-900);--yc-color-text-dark-complementary:var(--yc-color-private-black-700);--yc-color-text-dark-secondary:var(--yc-color-private-black-500);--yc-color-text-light-primary:var(--yc-color-private-white-850);--yc-color-text-light-complementary:var(--yc-color-private-white-700);--yc-color-text-light-secondary:var(--yc-color-private-white-500);--yc-color-text-light-hint:var(--yc-color-private-white-300);--yc-color-text-inverted-primary:var(--yc-color-private-black-900);--yc-color-text-inverted-complementary:var(--yc-color-private-black-700);--yc-color-text-inverted-secondary:var(--yc-color-private-black-500);--yc-color-text-inverted-hint:var(--yc-color-private-black-300);--yc-color-base-background:var(--yc-color-private-black-rock-850);--yc-color-base-generic:var(--yc-color-private-white-100);--yc-color-base-generic-hover:var(--yc-color-private-white-150);--yc-color-base-generic-medium:var(--yc-color-private-white-250);--yc-color-base-generic-medium-hover:var(--yc-color-private-white-300);--yc-color-base-generic-accent:var(--yc-color-private-white-150);--yc-color-base-generic-accent-disabled:var(--yc-color-private-white-70);--yc-color-base-generic-ultralight:var(--yc-color-private-white-20-solid);--yc-color-base-simple-hover:var(--yc-color-private-white-100);--yc-color-base-simple-hover-solid:var(--yc-color-private-white-100-solid);--yc-color-base-selection:var(--yc-my-color-brand-selection);--yc-color-base-selection-hover:var(--yc-my-color-brand-selection-hover);--yc-color-base-special:var(--yc-my-color-brand-normal);--yc-color-base-special-hover:var(--yc-my-color-brand-normal-hover);--yc-color-base-action:var(--yc-color-base-special);--yc-color-base-action-hover:var(--yc-color-base-special-hover);--yc-color-base-info:var(--yc-color-private-blue-100);--yc-color-base-info-hover:var(--yc-color-private-blue-150);--yc-color-base-positive:var(--yc-color-private-green-100);--yc-color-base-positive-hover:var(--yc-color-private-green-150);--yc-color-base-warning:var(--yc-color-private-yellow-100);--yc-color-base-warning-hover:var(--yc-color-private-yellow-150);--yc-color-base-danger:var(--yc-color-private-red-100);--yc-color-base-danger-hover:var(--yc-color-private-red-150);--yc-color-base-misc:var(--yc-color-private-cool-grey-100);--yc-color-base-misc-hover:var(--yc-color-private-cool-grey-150);--yc-color-base-neutral:var(--yc-color-private-white-100);--yc-color-base-neutral-hover:var(--yc-color-private-white-150);--yc-color-base-positive-medium:var(--yc-color-private-green-300);--yc-color-base-positive-medium-hover:var(--yc-color-private-green-350);--yc-color-base-info-heavy:var(--yc-color-private-blue-450);--yc-color-base-positive-heavy:var(--yc-color-private-green-450);--yc-color-base-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-base-warning-heavy-hover:var(--yc-color-private-yellow-700);--yc-color-base-danger-heavy:var(--yc-color-private-red-450);--yc-color-base-danger-heavy-hover:var(--yc-color-private-red-550);--yc-color-base-misc-heavy:var(--yc-color-private-cool-grey-450-solid);--yc-color-base-misc-heavy-hover:var(--yc-color-private-cool-grey-550);--yc-color-base-light:var(--yc-color-private-white-850);--yc-color-base-light-hover:var(--yc-color-private-white-700);--yc-color-base-light-simple-hover:var(--yc-color-private-white-150);--yc-color-base-light-disabled:var(--yc-color-private-white-150);--yc-color-base-light-accent-disabled:var(--yc-color-private-white-300);--yc-color-base-float:var(--yc-color-private-white-100-solid);--yc-color-base-float-hover:var(--yc-color-private-white-150-solid);--yc-color-base-float-heavy:var(--yc-color-private-white-150-solid);--yc-color-base-float-accent:var(--yc-color-private-white-150-solid);--yc-color-base-float-accent-hover:var(--yc-color-private-white-200-solid);--yc-color-base-float-announcement:var(--yc-color-private-white-150-solid);--yc-color-base-modal:var(--yc-color-private-black-rock-850);--yc-color-line-generic:var(--yc-color-private-white-150);--yc-color-line-generic-hover:var(--yc-color-private-white-250);--yc-color-line-generic-active:var(--yc-color-private-white-300);--yc-color-line-generic-accent:var(--yc-color-private-white-150);--yc-color-line-generic-accent-hover:var(--yc-color-private-white-300);--yc-color-line-solid:var(--yc-color-private-white-150-solid);--yc-color-line-selection-hover:var(--yc-my-color-brand-light);--yc-color-line-selection-active:var(--yc-my-color-brand-normal);--yc-color-line-link:var(--yc-my-color-brand-normal);--yc-color-line-info:var(--yc-color-private-blue-450);--yc-color-line-positive:var(--yc-color-private-green-450);--yc-color-line-warning:var(--yc-color-private-yellow-150);--yc-color-line-danger:var(--yc-color-private-red-450);--yc-color-line-misc:var(--yc-color-private-cool-grey-450);--yc-color-line-hint:var(--yc-color-private-blue-550);--yc-color-line-light:var(--yc-color-private-white-500);--yc-color-infographics-info-light:var(--yc-color-private-blue-150);--yc-color-infographics-positive-light:var(--yc-color-private-green-150);--yc-color-infographics-warning-light:var(--yc-color-private-orange-150);--yc-color-infographics-danger-light:var(--yc-color-private-red-150);--yc-color-infographics-misc-light:var(--yc-color-private-cool-grey-150);--yc-color-infographics-neutral-light:var(--yc-color-private-white-150);--yc-color-infographics-info-medium:var(--yc-color-private-blue-300);--yc-color-infographics-positive-medium:var(--yc-color-private-green-300);--yc-color-infographics-warning-medium:var(--yc-color-private-orange-300);--yc-color-infographics-danger-medium:var(--yc-color-private-red-300);--yc-color-infographics-misc-medium:var(--yc-color-private-cool-grey-300);--yc-color-infographics-neutral-medium:var(--yc-color-private-white-150);--yc-color-infographics-info-heavy:var(--yc-color-private-blue-550);--yc-color-infographics-positive-heavy:var(--yc-color-private-green-550);--yc-color-infographics-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-infographics-danger-heavy:var(--yc-color-private-red-550);--yc-color-infographics-misc-heavy:var(--yc-color-private-cool-grey-550);--yc-color-infographics-neutral-heavy:var(--yc-color-private-white-300);--yc-color-infographics-axis:var(--yc-color-private-white-150-solid);--yc-color-infographics-tooltip-bg:var(--yc-color-private-white-opaque-150);--yc-color-sfx-veil:var(--yc-color-private-black-600);--yc-color-sfx-shadow:var(--yc-color-private-black-200);--yc-color-sfx-shadow-heavy:var(--yc-color-private-black-500);--yc-color-sfx-fade:var(--yc-color-private-white-250);--yc-color-promo-base-silver:#bcc0c4;--yc-color-promo-base-gold:#ffde5d;--yc-color-promo-base-asphalt:#474d52;--yc-color-promo-base-tomato:#ff6b6a;--yc-color-promo-base-copper:#ffb95a;--yc-color-promo-base-mint:#7fd68e;--yc-color-promo-base-sky:#69b4ff;--yc-color-promo-base-neon:#b384ff;--yc-color-promo-highlight-silver:#616366;--yc-color-promo-highlight-gold:#99832e;--yc-color-promo-highlight-asphalt:#5d656b;--yc-color-promo-highlight-tomato:#998585;--yc-color-promo-highlight-copper:#7f7262;--yc-color-promo-highlight-mint:#758978;--yc-color-promo-highlight-sky:#94a2af;--yc-color-promo-highlight-neon:#aea6ba;--yc-color-scroll-track:var(--yc-color-base-background);--yc-color-scroll-handle:var(--yc-color-private-white-150);--yc-color-scroll-handle-hover:var(--yc-color-private-white-250);--yc-color-scroll-corner:var(--yc-color-private-white-150)}.yc-root_theme_light-hc{--yc-color-private-white-50:hsla(0,0%,100%,.05);--yc-color-private-white-70:hsla(0,0%,100%,.07);--yc-color-private-white-100:hsla(0,0%,100%,.1);--yc-color-private-white-150:hsla(0,0%,100%,.15);--yc-color-private-white-200:hsla(0,0%,100%,.2);--yc-color-private-white-250:hsla(0,0%,100%,.25);--yc-color-private-white-300:hsla(0,0%,100%,.3);--yc-color-private-white-350:hsla(0,0%,100%,.35);--yc-color-private-white-400:hsla(0,0%,100%,.4);--yc-color-private-white-450:hsla(0,0%,100%,.45);--yc-color-private-white-500:hsla(0,0%,100%,.5);--yc-color-private-white-550:hsla(0,0%,100%,.55);--yc-color-private-white-600:hsla(0,0%,100%,.6);--yc-color-private-white-650:hsla(0,0%,100%,.65);--yc-color-private-white-700:hsla(0,0%,100%,.7);--yc-color-private-white-750:hsla(0,0%,100%,.75);--yc-color-private-white-800:hsla(0,0%,100%,.8);--yc-color-private-white-850:hsla(0,0%,100%,.85);--yc-color-private-white-900:hsla(0,0%,100%,.9);--yc-color-private-white-950:hsla(0,0%,100%,.95);--yc-color-private-white-1000:#fff;--yc-color-private-black-50:rgba(0,0,0,.05);--yc-color-private-black-100:rgba(0,0,0,.1);--yc-color-private-black-150:rgba(0,0,0,.15);--yc-color-private-black-200:rgba(0,0,0,.2);--yc-color-private-black-250:rgba(0,0,0,.25);--yc-color-private-black-300:rgba(0,0,0,.3);--yc-color-private-black-350:rgba(0,0,0,.35);--yc-color-private-black-400:rgba(0,0,0,.4);--yc-color-private-black-450:rgba(0,0,0,.45);--yc-color-private-black-500:rgba(0,0,0,.5);--yc-color-private-black-550:rgba(0,0,0,.55);--yc-color-private-black-600:rgba(0,0,0,.6);--yc-color-private-black-650:rgba(0,0,0,.65);--yc-color-private-black-700:rgba(0,0,0,.7);--yc-color-private-black-750:rgba(0,0,0,.75);--yc-color-private-black-800:rgba(0,0,0,.8);--yc-color-private-black-850:rgba(0,0,0,.85);--yc-color-private-black-900:rgba(0,0,0,.9);--yc-color-private-black-950:rgba(0,0,0,.95);--yc-color-private-black-1000:#000;--yc-color-private-black-20-solid:#fafafa;--yc-color-private-black-50-solid:#f2f2f2;--yc-color-private-black-100-solid:#e5e5e5;--yc-color-private-black-150-solid:#d9d9d9;--yc-color-private-black-200-solid:#ccc;--yc-color-private-black-250-solid:#bfbfbf;--yc-color-private-black-300-solid:#b3b3b3;--yc-color-private-black-350-solid:#a6a6a6;--yc-color-private-black-400-solid:#999;--yc-color-private-black-450-solid:#8c8c8c;--yc-color-private-black-500-solid:grey;--yc-color-private-black-550-solid:#737373;--yc-color-private-black-600-solid:#666;--yc-color-private-black-650-solid:#595959;--yc-color-private-black-700-solid:#4c4c4c;--yc-color-private-black-750-solid:#404040;--yc-color-private-black-800-solid:#333;--yc-color-private-black-850-solid:#262626;--yc-color-private-black-900-solid:#1a1a1a;--yc-color-private-black-950-solid:#0d0d0d;--yc-color-private-black-1000-solid:#000;--yc-color-private-blue-600:#4a71d6;--yc-color-private-blue-800:#3f5799;--yc-color-private-blue-50:rgba(82,130,255,.05);--yc-color-private-blue-100:rgba(82,130,255,.1);--yc-color-private-blue-150:rgba(82,130,255,.2);--yc-color-private-blue-200:rgba(82,130,255,.3);--yc-color-private-blue-250:rgba(82,130,255,.4);--yc-color-private-blue-300:rgba(82,130,255,.5);--yc-color-private-blue-350:rgba(82,130,255,.6);--yc-color-private-blue-400:rgba(82,130,255,.7);--yc-color-private-blue-450:rgba(82,130,255,.8);--yc-color-private-blue-500:rgba(82,130,255,.9);--yc-color-private-blue-550:#5282ff;--yc-color-private-blue-50-solid:#f6f9ff;--yc-color-private-blue-100-solid:#eef3ff;--yc-color-private-blue-150-solid:#dce6ff;--yc-color-private-blue-200-solid:#cbdaff;--yc-color-private-blue-250-solid:#bacdff;--yc-color-private-blue-300-solid:#a8c1ff;--yc-color-private-blue-350-solid:#97b4ff;--yc-color-private-blue-400-solid:#86a8ff;--yc-color-private-blue-450-solid:#749bff;--yc-color-private-blue-500-solid:#638fff;--yc-color-private-blue-550-solid:#5282ff;--yc-color-private-blue-600-solid:#4d79e9;--yc-color-private-blue-650-solid:#486fd4;--yc-color-private-blue-700-solid:#4366be;--yc-color-private-blue-750-solid:#3f5ca8;--yc-color-private-blue-800-solid:#3a5393;--yc-color-private-blue-850-solid:#35497d;--yc-color-private-blue-900-solid:#304067;--yc-color-private-blue-950-solid:#2c3651;--yc-color-private-blue-1000-solid:#272d3c;--yc-color-private-green-50:rgba(59,201,53,.05);--yc-color-private-green-100:rgba(59,201,53,.1);--yc-color-private-green-150:rgba(59,201,53,.2);--yc-color-private-green-200:rgba(59,201,53,.3);--yc-color-private-green-250:rgba(59,201,53,.4);--yc-color-private-green-300:rgba(59,201,53,.5);--yc-color-private-green-350:rgba(59,201,53,.6);--yc-color-private-green-400:rgba(59,201,53,.7);--yc-color-private-green-450:rgba(59,201,53,.8);--yc-color-private-green-500:rgba(59,201,53,.9);--yc-color-private-green-550:#3bc935;--yc-color-private-green-50-solid:#f5fcf5;--yc-color-private-green-100-solid:#ebfaeb;--yc-color-private-green-150-solid:#d8f4d7;--yc-color-private-green-200-solid:#c4efc2;--yc-color-private-green-250-solid:#b1e9ae;--yc-color-private-green-300-solid:#9de49a;--yc-color-private-green-350-solid:#89df86;--yc-color-private-green-400-solid:#76d972;--yc-color-private-green-450-solid:#62d45d;--yc-color-private-green-500-solid:#4fce49;--yc-color-private-green-550-solid:#3bc935;--yc-color-private-green-600-solid:#38b833;--yc-color-private-green-650-solid:#36a832;--yc-color-private-green-700-solid:#339730;--yc-color-private-green-750-solid:#31872f;--yc-color-private-green-800-solid:#2f762e;--yc-color-private-green-850-solid:#2c652c;--yc-color-private-green-900-solid:#29552b;--yc-color-private-green-950-solid:#274429;--yc-color-private-green-1000-solid:#243428;--yc-color-private-yellow-50:rgba(255,219,77,.05);--yc-color-private-yellow-100:rgba(255,219,77,.1);--yc-color-private-yellow-150:rgba(255,219,77,.2);--yc-color-private-yellow-200:rgba(255,219,77,.3);--yc-color-private-yellow-250:rgba(255,219,77,.4);--yc-color-private-yellow-300:rgba(255,219,77,.5);--yc-color-private-yellow-350:rgba(255,219,77,.6);--yc-color-private-yellow-400:rgba(255,219,77,.7);--yc-color-private-yellow-450:rgba(255,219,77,.8);--yc-color-private-yellow-500:rgba(255,219,77,.9);--yc-color-private-yellow-550:#ffdb4d;--yc-color-private-yellow-50-solid:#fffdf6;--yc-color-private-yellow-100-solid:#fffbed;--yc-color-private-yellow-150-solid:#fff8db;--yc-color-private-yellow-200-solid:#fff4ca;--yc-color-private-yellow-250-solid:#fff1b8;--yc-color-private-yellow-300-solid:#ffeda6;--yc-color-private-yellow-350-solid:#ffe994;--yc-color-private-yellow-400-solid:#ffe682;--yc-color-private-yellow-450-solid:#ffe271;--yc-color-private-yellow-500-solid:#ffdf5f;--yc-color-private-yellow-550-solid:#ffdb4d;--yc-color-private-yellow-600-solid:#e9c949;--yc-color-private-yellow-650-solid:#d3b645;--yc-color-private-yellow-700-solid:#bda441;--yc-color-private-yellow-750-solid:#a7913d;--yc-color-private-yellow-800-solid:#907f3a;--yc-color-private-yellow-850-solid:#7a6d36;--yc-color-private-yellow-900-solid:#645a32;--yc-color-private-yellow-950-solid:#4e482e;--yc-color-private-yellow-1000-solid:#38352a;--yc-color-private-red-50:rgba(255,4,0,.05);--yc-color-private-red-100:rgba(255,4,0,.1);--yc-color-private-red-150:rgba(255,4,0,.2);--yc-color-private-red-200:rgba(255,4,0,.3);--yc-color-private-red-250:rgba(255,4,0,.4);--yc-color-private-red-300:rgba(255,4,0,.5);--yc-color-private-red-350:rgba(255,4,0,.6);--yc-color-private-red-400:rgba(255,4,0,.7);--yc-color-private-red-450:rgba(255,4,0,.8);--yc-color-private-red-500:rgba(255,4,0,.9);--yc-color-private-red-550:#ff0400;--yc-color-private-red-50-solid:#fff3f2;--yc-color-private-red-100-solid:#ffe6e5;--yc-color-private-red-150-solid:#ffcdcc;--yc-color-private-red-200-solid:#ffb4b3;--yc-color-private-red-250-solid:#ff9b99;--yc-color-private-red-300-solid:#ff8280;--yc-color-private-red-350-solid:#ff6966;--yc-color-private-red-400-solid:#ff504c;--yc-color-private-red-450-solid:#ff3733;--yc-color-private-red-500-solid:#ff1e1a;--yc-color-private-red-550-solid:#ff0400;--yc-color-private-red-600-solid:#e90804;--yc-color-private-red-650-solid:#d30b08;--yc-color-private-red-700-solid:#bd0e0b;--yc-color-private-red-750-solid:#a6110f;--yc-color-private-red-800-solid:#901413;--yc-color-private-red-850-solid:#7a1717;--yc-color-private-red-900-solid:#641a1b;--yc-color-private-red-950-solid:#4e1d1e;--yc-color-private-red-1000-solid:#382022;--yc-color-private-purple-50:rgba(154,50,166,.05);--yc-color-private-purple-100:rgba(154,50,166,.1);--yc-color-private-purple-150:rgba(154,50,166,.2);--yc-color-private-purple-200:rgba(154,50,166,.3);--yc-color-private-purple-250:rgba(154,50,166,.4);--yc-color-private-purple-300:rgba(154,50,166,.5);--yc-color-private-purple-350:rgba(154,50,166,.6);--yc-color-private-purple-400:rgba(154,50,166,.7);--yc-color-private-purple-450:rgba(154,50,166,.8);--yc-color-private-purple-500:rgba(154,50,166,.9);--yc-color-private-purple-550:#9a32a6;--yc-color-private-purple-50-solid:#faf5fb;--yc-color-private-purple-100-solid:#f5eaf6;--yc-color-private-purple-150-solid:#ebd6ed;--yc-color-private-purple-200-solid:#e1c1e4;--yc-color-private-purple-250-solid:#d7addb;--yc-color-private-purple-300-solid:#cc99d2;--yc-color-private-purple-350-solid:#c284ca;--yc-color-private-purple-400-solid:#b86fc1;--yc-color-private-purple-450-solid:#ae5bb8;--yc-color-private-purple-500-solid:#a447af;--yc-color-private-purple-550-solid:#9a32a6;--yc-color-private-purple-600-solid:#8e3199;--yc-color-private-purple-650-solid:#822f8c;--yc-color-private-purple-700-solid:#762d80;--yc-color-private-purple-750-solid:#6a2c73;--yc-color-private-purple-800-solid:#5e2a66;--yc-color-private-purple-850-solid:#522959;--yc-color-private-purple-900-solid:#46284c;--yc-color-private-purple-950-solid:#3a2640;--yc-color-private-purple-1000-solid:#2e2433;--yc-color-private-cool-grey-50:rgba(107,132,153,.05);--yc-color-private-cool-grey-100:rgba(107,132,153,.1);--yc-color-private-cool-grey-150:rgba(107,132,153,.2);--yc-color-private-cool-grey-200:rgba(107,132,153,.3);--yc-color-private-cool-grey-250:rgba(107,132,153,.4);--yc-color-private-cool-grey-300:rgba(107,132,153,.5);--yc-color-private-cool-grey-350:rgba(107,132,153,.6);--yc-color-private-cool-grey-400:rgba(107,132,153,.7);--yc-color-private-cool-grey-450:rgba(107,132,153,.8);--yc-color-private-cool-grey-500:rgba(107,132,153,.9);--yc-color-private-cool-grey-550:#6b8499;--yc-color-private-cool-grey-50-solid:#f8f9fa;--yc-color-private-cool-grey-100-solid:#f0f3f5;--yc-color-private-cool-grey-150-solid:#e1e6eb;--yc-color-private-cool-grey-200-solid:#d3dae0;--yc-color-private-cool-grey-250-solid:#c4ced6;--yc-color-private-cool-grey-300-solid:#b5c1cc;--yc-color-private-cool-grey-350-solid:#a6b5c2;--yc-color-private-cool-grey-400-solid:#97a9b8;--yc-color-private-cool-grey-450-solid:#899dad;--yc-color-private-cool-grey-500-solid:#7a90a3;--yc-color-private-cool-grey-550-solid:#6b8499;--yc-color-private-cool-grey-600-solid:#647a8e;--yc-color-private-cool-grey-650-solid:#5c7182;--yc-color-private-cool-grey-700-solid:#556776;--yc-color-private-cool-grey-750-solid:#4e5d6b;--yc-color-private-cool-grey-800-solid:#465360;--yc-color-private-cool-grey-850-solid:#3f4a54;--yc-color-private-cool-grey-900-solid:#384049;--yc-color-private-cool-grey-950-solid:#31363d;--yc-color-private-cool-grey-1000-solid:#292d31;--yc-color-private-orange-50:rgba(255,119,0,.05);--yc-color-private-orange-100:rgba(255,119,0,.1);--yc-color-private-orange-150:rgba(255,119,0,.2);--yc-color-private-orange-200:rgba(255,119,0,.3);--yc-color-private-orange-250:rgba(255,119,0,.4);--yc-color-private-orange-300:rgba(255,119,0,.5);--yc-color-private-orange-350:rgba(255,119,0,.6);--yc-color-private-orange-400:rgba(255,119,0,.7);--yc-color-private-orange-450:rgba(255,119,0,.8);--yc-color-private-orange-500:rgba(255,119,0,.9);--yc-color-private-orange-550:#f70;--yc-color-private-orange-50-solid:#fff8f2;--yc-color-private-orange-100-solid:#fff1e5;--yc-color-private-orange-150-solid:#ffe4cc;--yc-color-private-orange-200-solid:#ffd6b3;--yc-color-private-orange-250-solid:#ffc999;--yc-color-private-orange-300-solid:#ffbb80;--yc-color-private-orange-350-solid:#ffad66;--yc-color-private-orange-400-solid:#ffa04c;--yc-color-private-orange-450-solid:#ff9233;--yc-color-private-orange-500-solid:#ff851a;--yc-color-private-orange-550-solid:#f70;--yc-color-private-orange-600-solid:#e96f04;--yc-color-private-orange-650-solid:#d36608;--yc-color-private-orange-700-solid:#bd5e0b;--yc-color-private-orange-750-solid:#a7550f;--yc-color-private-orange-800-solid:#904d13;--yc-color-private-orange-850-solid:#7a4517;--yc-color-private-orange-900-solid:#643c1b;--yc-color-private-orange-950-solid:#4e341e;--yc-color-private-orange-1000-solid:#382b22;--yc-my-color-brand-normal:var(--yc-color-private-blue-550);--yc-my-color-brand-normal-hover:var(--yc-color-private-blue-800);--yc-my-color-brand-light:var(--yc-color-private-blue-300);--yc-my-color-brand-selection:var(--yc-color-private-blue-250);--yc-my-color-brand-selection-hover:var(--yc-color-private-blue-450);--yc-my-color-brand-link:var(--yc-color-private-blue-650-solid);--yc-my-color-brand-link-hover:var(--yc-color-private-blue-850-solid);--yc-my-color-brand-text:var(--yc-color-private-blue-900-solid);--yc-my-color-brand-text-contrast:var(--yc-color-text-light-primary);--yc-my-color-brand-link-visited:var(--yc-color-private-purple-600-solid);--yc-my-color-brand-link-visited-hover:var(--yc-color-private-purple-850-solid);--yc-color-text-primary:var(--yc-color-private-black-1000);--yc-color-text-complementary:var(--yc-color-private-black-850);--yc-color-text-secondary:var(--yc-color-private-black-700);--yc-color-text-hint:var(--yc-color-private-black-500);--yc-color-text-info:var(--yc-color-private-blue-900-solid);--yc-color-text-positive:var(--yc-color-private-green-900-solid);--yc-color-text-warning-medium:var(--yc-color-private-yellow-900-solid);--yc-color-text-warning-heavy:var(--yc-color-private-orange-900-solid);--yc-color-text-danger:var(--yc-color-private-red-900-solid);--yc-color-text-utility:var(--yc-color-private-purple-900-solid);--yc-color-text-misc:var(--yc-color-private-cool-grey-950-solid);--yc-color-text-special:var(--yc-my-color-brand-normal);--yc-color-text-link:var(--yc-my-color-brand-link);--yc-color-text-link-hover:var(--yc-my-color-brand-link-hover);--yc-color-text-link-visited:var(--yc-my-color-brand-link-visited);--yc-color-text-link-visited-hover:var(--yc-my-color-brand-link-visited-hover);--yc-color-text-yandex-red:var(--yc-color-private-red-550);--yc-color-text-dark-primary:var(--yc-color-private-black-1000);--yc-color-text-dark-complementary:var(--yc-color-private-black-800);--yc-color-text-dark-secondary:var(--yc-color-private-black-600);--yc-color-text-light-primary:var(--yc-color-private-white-1000);--yc-color-text-light-complementary:var(--yc-color-private-white-850);--yc-color-text-light-secondary:var(--yc-color-private-white-700);--yc-color-text-light-hint:var(--yc-color-private-white-500);--yc-color-text-inverted-primary:var(--yc-color-private-white-1000);--yc-color-text-inverted-complementary:var(--yc-color-private-white-850);--yc-color-text-inverted-secondary:var(--yc-color-private-white-700);--yc-color-text-inverted-hint:var(--yc-color-private-white-500);--yc-color-base-background:var(--yc-color-private-white-1000);--yc-color-base-generic:var(--yc-color-private-black-150);--yc-color-base-generic-hover:var(--yc-color-private-black-300);--yc-color-base-generic-medium:var(--yc-color-private-black-250);--yc-color-base-generic-medium-hover:var(--yc-color-private-black-350);--yc-color-base-generic-accent:var(--yc-color-private-black-250);--yc-color-base-generic-accent-disabled:var(--yc-color-private-black-150);--yc-color-base-generic-ultralight:var(--yc-color-private-black-50-solid);--yc-color-base-simple-hover:var(--yc-color-private-black-150);--yc-color-base-simple-hover-solid:var(--yc-color-private-black-100-solid);--yc-color-base-selection:var(--yc-my-color-brand-selection);--yc-color-base-selection-hover:var(--yc-my-color-brand-selection-hover);--yc-color-base-special:var(--yc-my-color-brand-normal);--yc-color-base-special-hover:var(--yc-my-color-brand-normal-hover);--yc-color-base-action:var(--yc-color-base-special);--yc-color-base-action-hover:var(--yc-color-base-special-hover);--yc-color-base-info:var(--yc-color-private-blue-250);--yc-color-base-info-hover:var(--yc-color-private-blue-350);--yc-color-base-positive:var(--yc-color-private-green-250);--yc-color-base-positive-hover:var(--yc-color-private-green-350);--yc-color-base-warning:var(--yc-color-private-yellow-300);--yc-color-base-warning-hover:var(--yc-color-private-yellow-550);--yc-color-base-danger:var(--yc-color-private-red-250);--yc-color-base-danger-hover:var(--yc-color-private-red-350);--yc-color-base-misc:var(--yc-color-private-cool-grey-250);--yc-color-base-misc-hover:var(--yc-color-private-cool-grey-350);--yc-color-base-neutral:var(--yc-color-private-black-150);--yc-color-base-neutral-hover:var(--yc-color-private-black-300);--yc-color-base-positive-medium:var(--yc-color-private-green-350);--yc-color-base-positive-medium-hover:var(--yc-color-private-green-400);--yc-color-base-info-heavy:var(--yc-color-private-blue-450);--yc-color-base-positive-heavy:var(--yc-color-private-green-450);--yc-color-base-warning-heavy:var(--yc-color-private-yellow-450);--yc-color-base-warning-heavy-hover:var(--yc-color-private-yellow-700);--yc-color-base-danger-heavy:var(--yc-color-private-red-450);--yc-color-base-danger-heavy-hover:var(--yc-color-private-red-450);--yc-color-base-misc-heavy:var(--yc-color-private-cool-grey-450);--yc-color-base-misc-heavy-hover:var(--yc-color-private-cool-grey-550);--yc-color-base-light:var(--yc-color-private-white-1000);--yc-color-base-light-hover:var(--yc-color-private-white-850);--yc-color-base-light-simple-hover:var(--yc-color-private-white-300);--yc-color-base-light-disabled:var(--yc-color-private-white-150);--yc-color-base-light-accent-disabled:var(--yc-color-private-white-300);--yc-color-base-float:var(--yc-color-private-white-1000);--yc-color-base-float-hover:var(--yc-color-private-black-150-solid);--yc-color-base-float-heavy:var(--yc-color-private-black-700-solid);--yc-color-base-float-accent:var(--yc-color-private-white-1000);--yc-color-base-float-accent-hover:var(--yc-color-private-white-850);--yc-color-base-float-announcement:var(--yc-color-private-cool-grey-150-solid);--yc-color-base-modal:var(--yc-color-private-white-1000);--yc-color-line-generic:var(--yc-color-private-black-200);--yc-color-line-generic-hover:var(--yc-color-private-black-400);--yc-color-line-generic-active:var(--yc-color-private-black-700);--yc-color-line-generic-accent:var(--yc-color-private-black-300);--yc-color-line-generic-accent-hover:var(--yc-color-private-black-700);--yc-color-line-solid:var(--yc-color-private-black-200-solid);--yc-color-line-selection-hover:var(--yc-my-color-brand-light);--yc-color-line-selection-active:var(--yc-my-color-brand-normal);--yc-color-line-link:var(--yc-my-color-brand-normal);--yc-color-line-info:var(--yc-color-private-blue-450);--yc-color-line-positive:var(--yc-color-private-green-450);--yc-color-line-warning:var(--yc-color-private-yellow-600-solid);--yc-color-line-danger:var(--yc-color-private-red-450);--yc-color-line-misc:var(--yc-color-private-cool-grey-450);--yc-color-line-hint:var(--yc-color-private-blue-550);--yc-color-line-light:var(--yc-color-private-white-500);--yc-color-infographics-info-light:var(--yc-color-private-blue-50);--yc-color-infographics-positive-light:var(--yc-color-private-green-50);--yc-color-infographics-warning-light:var(--yc-color-private-orange-50);--yc-color-infographics-danger-light:var(--yc-color-private-red-50);--yc-color-infographics-misc-light:var(--yc-color-private-cool-grey-50);--yc-color-infographics-neutral-light:var(--yc-color-private-black-50);--yc-color-infographics-info-medium:var(--yc-color-private-blue-300);--yc-color-infographics-positive-medium:var(--yc-color-private-green-300);--yc-color-infographics-warning-medium:var(--yc-color-private-orange-300);--yc-color-infographics-danger-medium:var(--yc-color-private-red-300);--yc-color-infographics-misc-medium:var(--yc-color-private-cool-grey-300);--yc-color-infographics-neutral-medium:var(--yc-color-private-black-150);--yc-color-infographics-info-heavy:var(--yc-color-private-blue-550);--yc-color-infographics-positive-heavy:var(--yc-color-private-green-550);--yc-color-infographics-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-infographics-danger-heavy:var(--yc-color-private-red-550);--yc-color-infographics-misc-heavy:var(--yc-color-private-cool-grey-550);--yc-color-infographics-neutral-heavy:var(--yc-color-private-black-300);--yc-color-infographics-axis:var(--yc-color-private-black-150-solid);--yc-color-infographics-tooltip-bg:var(--yc-color-private-white-950);--yc-color-sfx-veil:var(--yc-color-private-black-450);--yc-color-sfx-shadow:var(--yc-color-private-black-300);--yc-color-sfx-shadow-heavy:var(--yc-color-private-black-600);--yc-color-sfx-fade:var(--yc-color-private-white-300);--yc-color-promo-base-silver:#edf2f7;--yc-color-promo-base-gold:#ffdb4d;--yc-color-promo-base-asphalt:#313538;--yc-color-promo-base-tomato:#ff5958;--yc-color-promo-base-copper:#ffab3b;--yc-color-promo-base-mint:#5ecf71;--yc-color-promo-base-sky:#49a0f6;--yc-color-promo-base-neon:#9f6fee;--yc-color-promo-highlight-silver:#edf2f7;--yc-color-promo-highlight-gold:#fff1b8;--yc-color-promo-highlight-asphalt:#eaebeb;--yc-color-promo-highlight-tomato:#ffdede;--yc-color-promo-highlight-copper:#ffe6c4;--yc-color-promo-highlight-mint:#ccf0d2;--yc-color-promo-highlight-sky:#d6e9fd;--yc-color-promo-highlight-neon:#ece2fc;--yc-color-promo-accent-silver:#969a9e;--yc-color-promo-accent-gold:#ffdb4d;--yc-color-promo-accent-asphalt:#313538;--yc-color-promo-accent-tomato:#ff5958;--yc-color-promo-accent-copper:#ffab3b;--yc-color-promo-accent-mint:#5ecf71;--yc-color-promo-accent-sky:#49a0f6;--yc-color-promo-accent-neon:#9f6fee;--yc-color-promo-accent-hover-silver:#727578;--yc-color-promo-accent-hover-gold:#edbe28;--yc-color-promo-accent-hover-asphalt:#000;--yc-color-promo-accent-hover-tomato:#ee4f4e;--yc-color-promo-accent-hover-copper:#f28d04;--yc-color-promo-accent-hover-mint:#3bbc51;--yc-color-promo-accent-hover-sky:#2180de;--yc-color-promo-accent-hover-neon:#7b47cf;--yc-color-promo-text-silver:#969a9e;--yc-color-promo-text-gold:#ebb409;--yc-color-promo-text-asphalt:#313538;--yc-color-promo-text-tomato:#ff5958;--yc-color-promo-text-copper:#ffab3b;--yc-color-promo-text-mint:#5ecf71;--yc-color-promo-text-sky:#49a0f6;--yc-color-promo-text-neon:#9f6fee;--yc-color-scroll-track:var(--yc-color-base-background);--yc-color-scroll-handle:var(--yc-color-private-black-100);--yc-color-scroll-handle-hover:var(--yc-color-private-black-150);--yc-color-scroll-corner:var(--yc-color-private-black-100)}.yc-root_theme_dark-hc,.yc-root_theme_light-hc{background:var(--yc-color-base-background);color:var(--yc-color-text-primary)}.yc-root_theme_dark-hc{--yc-color-private-white-50:hsla(0,0%,100%,.05);--yc-color-private-white-70:hsla(0,0%,100%,.07);--yc-color-private-white-100:hsla(0,0%,100%,.1);--yc-color-private-white-150:hsla(0,0%,100%,.15);--yc-color-private-white-200:hsla(0,0%,100%,.2);--yc-color-private-white-250:hsla(0,0%,100%,.25);--yc-color-private-white-300:hsla(0,0%,100%,.3);--yc-color-private-white-350:hsla(0,0%,100%,.35);--yc-color-private-white-400:hsla(0,0%,100%,.4);--yc-color-private-white-450:hsla(0,0%,100%,.45);--yc-color-private-white-500:hsla(0,0%,100%,.5);--yc-color-private-white-550:hsla(0,0%,100%,.55);--yc-color-private-white-600:hsla(0,0%,100%,.6);--yc-color-private-white-650:hsla(0,0%,100%,.65);--yc-color-private-white-700:hsla(0,0%,100%,.7);--yc-color-private-white-750:hsla(0,0%,100%,.75);--yc-color-private-white-800:hsla(0,0%,100%,.8);--yc-color-private-white-850:hsla(0,0%,100%,.85);--yc-color-private-white-900:hsla(0,0%,100%,.9);--yc-color-private-white-950:hsla(0,0%,100%,.95);--yc-color-private-white-1000:#fff;--yc-color-private-white-opaque-150:rgba(56,57,60,.97);--yc-color-private-black-20:rgba(0,0,0,.02);--yc-color-private-black-50:rgba(0,0,0,.05);--yc-color-private-black-100:rgba(0,0,0,.1);--yc-color-private-black-150:rgba(0,0,0,.15);--yc-color-private-black-200:rgba(0,0,0,.2);--yc-color-private-black-250:rgba(0,0,0,.25);--yc-color-private-black-300:rgba(0,0,0,.3);--yc-color-private-black-350:rgba(0,0,0,.35);--yc-color-private-black-400:rgba(0,0,0,.4);--yc-color-private-black-450:rgba(0,0,0,.45);--yc-color-private-black-500:rgba(0,0,0,.5);--yc-color-private-black-550:rgba(0,0,0,.55);--yc-color-private-black-600:rgba(0,0,0,.6);--yc-color-private-black-650:rgba(0,0,0,.65);--yc-color-private-black-700:rgba(0,0,0,.7);--yc-color-private-black-750:rgba(0,0,0,.75);--yc-color-private-black-800:rgba(0,0,0,.8);--yc-color-private-black-850:rgba(0,0,0,.85);--yc-color-private-black-900:rgba(0,0,0,.9);--yc-color-private-black-950:rgba(0,0,0,.95);--yc-color-private-black-1000:#000;--yc-color-private-black-rock-850:#2d2c33;--yc-color-private-black-rock-950:#222326;--yc-color-private-white-20-solid:#26272a;--yc-color-private-white-50-solid:#2d2e31;--yc-color-private-white-100-solid:#38393c;--yc-color-private-white-150-solid:#434447;--yc-color-private-white-200-solid:#4e4f51;--yc-color-private-white-250-solid:#595a5c;--yc-color-private-white-300-solid:#646567;--yc-color-private-white-350-solid:#6f7072;--yc-color-private-white-400-solid:#7a7b7d;--yc-color-private-white-450-solid:#858688;--yc-color-private-white-500-solid:#909193;--yc-color-private-white-550-solid:#9c9c9d;--yc-color-private-white-600-solid:#a7a7a8;--yc-color-private-white-650-solid:#b2b2b3;--yc-color-private-white-700-solid:#bdbdbe;--yc-color-private-white-750-solid:#c8c8c9;--yc-color-private-white-800-solid:#d3d3d4;--yc-color-private-white-850-solid:#dededf;--yc-color-private-white-900-solid:#e9e9e9;--yc-color-private-white-950-solid:#f4f4f4;--yc-color-private-white-1000-solid:#fff;--yc-color-private-blue-50:rgba(98,146,255,.05);--yc-color-private-blue-100:rgba(98,146,255,.1);--yc-color-private-blue-150:rgba(98,146,255,.2);--yc-color-private-blue-200:rgba(98,146,255,.3);--yc-color-private-blue-250:rgba(98,146,255,.5);--yc-color-private-blue-300:rgba(98,146,255,.5);--yc-color-private-blue-350:rgba(98,146,255,.6);--yc-color-private-blue-400:rgba(98,146,255,.7);--yc-color-private-blue-450:rgba(98,146,255,.8);--yc-color-private-blue-500:rgba(98,146,255,.9);--yc-color-private-blue-550:#6292ff;--yc-color-private-blue-700:#91b3ff;--yc-color-private-blue-850:#c0d3ff;--yc-color-private-blue-50-solid:#252931;--yc-color-private-blue-100-solid:#282e3c;--yc-color-private-blue-150-solid:#2f3951;--yc-color-private-blue-200-solid:#354467;--yc-color-private-blue-250-solid:#3c4f7d;--yc-color-private-blue-300-solid:#425b93;--yc-color-private-blue-350-solid:#4866a8;--yc-color-private-blue-400-solid:#4f71be;--yc-color-private-blue-450-solid:#557cd4;--yc-color-private-blue-500-solid:#5c87e9;--yc-color-private-blue-550-solid:#6292ff;--yc-color-private-blue-600-solid:#729dff;--yc-color-private-blue-650-solid:#81a8ff;--yc-color-private-blue-700-solid:#91b3ff;--yc-color-private-blue-750-solid:#a1beff;--yc-color-private-blue-800-solid:#b1c8ff;--yc-color-private-blue-850-solid:#c0d3ff;--yc-color-private-blue-900-solid:#d0deff;--yc-color-private-blue-950-solid:#dfe9ff;--yc-color-private-blue-1000-solid:#eff4ff;--yc-color-private-green-50:rgba(91,181,87,.05);--yc-color-private-green-100:rgba(91,181,87,.1);--yc-color-private-green-150:rgba(91,181,87,.2);--yc-color-private-green-200:rgba(91,181,87,.3);--yc-color-private-green-250:rgba(91,181,87,.4);--yc-color-private-green-300:rgba(91,181,87,.5);--yc-color-private-green-350:rgba(91,181,87,.6);--yc-color-private-green-400:rgba(91,181,87,.7);--yc-color-private-green-450:rgba(91,181,87,.8);--yc-color-private-green-500:rgba(91,181,87,.9);--yc-color-private-green-550:#5bb557;--yc-color-private-green-50-solid:#252a28;--yc-color-private-green-100-solid:#28322b;--yc-color-private-green-150-solid:#2d4030;--yc-color-private-green-200-solid:#334f35;--yc-color-private-green-250-solid:#395d3a;--yc-color-private-green-300-solid:#3f6c3f;--yc-color-private-green-350-solid:#447b43;--yc-color-private-green-400-solid:#4a8948;--yc-color-private-green-450-solid:#50984d;--yc-color-private-green-500-solid:#55a652;--yc-color-private-green-550-solid:#5bb557;--yc-color-private-green-600-solid:#6bbc68;--yc-color-private-green-650-solid:#7cc479;--yc-color-private-green-700-solid:#8ccb89;--yc-color-private-green-750-solid:#9dd39a;--yc-color-private-green-800-solid:#addaab;--yc-color-private-green-850-solid:#bde1bc;--yc-color-private-green-900-solid:#cee9cd;--yc-color-private-green-950-solid:#def0dd;--yc-color-private-green-1000-solid:#eff8ee;--yc-color-private-yellow-700:#e0bd34;--yc-color-private-yellow-50:rgba(255,203,0,.05);--yc-color-private-yellow-100:rgba(255,203,0,.1);--yc-color-private-yellow-150:rgba(255,203,0,.2);--yc-color-private-yellow-200:rgba(255,203,0,.3);--yc-color-private-yellow-250:rgba(255,203,0,.4);--yc-color-private-yellow-300:rgba(255,203,0,.5);--yc-color-private-yellow-350:rgba(255,203,0,.6);--yc-color-private-yellow-400:rgba(255,203,0,.7);--yc-color-private-yellow-450:rgba(255,203,0,.8);--yc-color-private-yellow-500:rgba(255,203,0,.9);--yc-color-private-yellow-550:#ffcb00;--yc-color-private-yellow-50-solid:#2d2b24;--yc-color-private-yellow-100-solid:#383422;--yc-color-private-yellow-150-solid:#4e451e;--yc-color-private-yellow-200-solid:#64551b;--yc-color-private-yellow-250-solid:#7a6617;--yc-color-private-yellow-300-solid:#907713;--yc-color-private-yellow-350-solid:#a7880f;--yc-color-private-yellow-400-solid:#bd990b;--yc-color-private-yellow-450-solid:#d3a908;--yc-color-private-yellow-500-solid:#e9ba04;--yc-color-private-yellow-550-solid:#ffcb00;--yc-color-private-yellow-600-solid:#ffd01a;--yc-color-private-yellow-650-solid:#ffd533;--yc-color-private-yellow-700-solid:#ffdb4c;--yc-color-private-yellow-750-solid:#ffe066;--yc-color-private-yellow-800-solid:#ffe580;--yc-color-private-yellow-850-solid:#ffea99;--yc-color-private-yellow-900-solid:#ffefb3;--yc-color-private-yellow-950-solid:#fff5cc;--yc-color-private-yellow-1000-solid:#fffae5;--yc-color-private-red-50:rgba(232,73,69,.05);--yc-color-private-red-100:rgba(232,73,69,.1);--yc-color-private-red-150:rgba(232,73,69,.2);--yc-color-private-red-200:rgba(232,73,69,.3);--yc-color-private-red-250:rgba(232,73,69,.4);--yc-color-private-red-300:rgba(232,73,69,.5);--yc-color-private-red-350:rgba(232,73,69,.6);--yc-color-private-red-400:rgba(232,73,69,.7);--yc-color-private-red-450:rgba(232,73,69,.8);--yc-color-private-red-500:rgba(232,73,69,.9);--yc-color-private-red-550:#e84945;--yc-color-private-red-50-solid:#2c2528;--yc-color-private-red-100-solid:#362729;--yc-color-private-red-150-solid:#4a2b2c;--yc-color-private-red-200-solid:#5d2e2f;--yc-color-private-red-250-solid:#713233;--yc-color-private-red-300-solid:#853636;--yc-color-private-red-350-solid:#993a39;--yc-color-private-red-400-solid:#ac3d3c;--yc-color-private-red-450-solid:#c0413f;--yc-color-private-red-500-solid:#d44542;--yc-color-private-red-550-solid:#e84945;--yc-color-private-red-600-solid:#ea5b58;--yc-color-private-red-650-solid:#ec6d6b;--yc-color-private-red-700-solid:#ef7f7d;--yc-color-private-red-750-solid:#f19290;--yc-color-private-red-800-solid:#f3a4a2;--yc-color-private-red-850-solid:#f6b6b5;--yc-color-private-red-900-solid:#f8c8c7;--yc-color-private-red-950-solid:#fadbda;--yc-color-private-red-1000-solid:#fdedec;--yc-color-private-purple-50:rgba(223,46,243,.05);--yc-color-private-purple-100:rgba(223,46,243,.1);--yc-color-private-purple-150:rgba(223,46,243,.2);--yc-color-private-purple-200:rgba(223,46,243,.3);--yc-color-private-purple-250:rgba(223,46,243,.4);--yc-color-private-purple-300:rgba(223,46,243,.5);--yc-color-private-purple-350:rgba(223,46,243,.6);--yc-color-private-purple-400:rgba(223,46,243,.7);--yc-color-private-purple-450:rgba(223,46,243,.8);--yc-color-private-purple-500:rgba(223,46,243,.9);--yc-color-private-purple-550:#df2ef3;--yc-color-private-purple-50-solid:#2b2430;--yc-color-private-purple-100-solid:#35243b;--yc-color-private-purple-150-solid:#48254f;--yc-color-private-purple-200-solid:#5b2664;--yc-color-private-purple-250-solid:#6e2778;--yc-color-private-purple-300-solid:#80288d;--yc-color-private-purple-350-solid:#9329a1;--yc-color-private-purple-400-solid:#a62ab6;--yc-color-private-purple-450-solid:#b92bca;--yc-color-private-purple-500-solid:#cc2ddf;--yc-color-private-purple-550-solid:#df2ef3;--yc-color-private-purple-600-solid:#e243f5;--yc-color-private-purple-650-solid:#e558f6;--yc-color-private-purple-700-solid:#e86cf7;--yc-color-private-purple-750-solid:#ec81f8;--yc-color-private-purple-800-solid:#ef96f9;--yc-color-private-purple-850-solid:#f2abfa;--yc-color-private-purple-900-solid:#f5c0fc;--yc-color-private-purple-950-solid:#f9d5fd;--yc-color-private-purple-1000-solid:#fceafe;--yc-color-private-cool-grey-50:rgba(96,128,156,.05);--yc-color-private-cool-grey-100:rgba(96,128,156,.1);--yc-color-private-cool-grey-150:rgba(96,128,156,.2);--yc-color-private-cool-grey-200:rgba(96,128,156,.3);--yc-color-private-cool-grey-250:rgba(96,128,156,.4);--yc-color-private-cool-grey-300:rgba(96,128,156,.5);--yc-color-private-cool-grey-350:rgba(96,128,156,.6);--yc-color-private-cool-grey-400:rgba(96,128,156,.7);--yc-color-private-cool-grey-450:rgba(96,128,156,.8);--yc-color-private-cool-grey-500:rgba(96,128,156,.9);--yc-color-private-cool-grey-550:#60809c;--yc-color-private-cool-grey-50-solid:#25282c;--yc-color-private-cool-grey-100-solid:#282c32;--yc-color-private-cool-grey-150-solid:#2e363e;--yc-color-private-cool-grey-200-solid:#353f49;--yc-color-private-cool-grey-250-solid:#3b4855;--yc-color-private-cool-grey-300-solid:#415161;--yc-color-private-cool-grey-350-solid:#475b6d;--yc-color-private-cool-grey-400-solid:#4d6479;--yc-color-private-cool-grey-450-solid:#546d84;--yc-color-private-cool-grey-500-solid:#5a7790;--yc-color-private-cool-grey-550-solid:#60809c;--yc-color-private-cool-grey-600-solid:#708da6;--yc-color-private-cool-grey-650-solid:#8099b0;--yc-color-private-cool-grey-700-solid:#90a6ba;--yc-color-private-cool-grey-750-solid:#a0b3c3;--yc-color-private-cool-grey-800-solid:#b0bfcd;--yc-color-private-cool-grey-850-solid:#bfccd7;--yc-color-private-cool-grey-900-solid:#cfd9e1;--yc-color-private-cool-grey-950-solid:#dfe6eb;--yc-color-private-cool-grey-1000-solid:#eff2f5;--yc-color-private-orange-50:rgba(200,99,12,.05);--yc-color-private-orange-100:rgba(200,99,12,.1);--yc-color-private-orange-150:rgba(200,99,12,.2);--yc-color-private-orange-200:rgba(200,99,12,.3);--yc-color-private-orange-250:rgba(200,99,12,.4);--yc-color-private-orange-300:rgba(200,99,12,.5);--yc-color-private-orange-350:rgba(200,99,12,.6);--yc-color-private-orange-400:rgba(200,99,12,.7);--yc-color-private-orange-450:rgba(200,99,12,.8);--yc-color-private-orange-500:rgba(200,99,12,.9);--yc-color-private-orange-550:#c8630c;--yc-color-private-orange-50-solid:#2a2625;--yc-color-private-orange-100-solid:#332923;--yc-color-private-orange-150-solid:#433021;--yc-color-private-orange-200-solid:#54361e;--yc-color-private-orange-250-solid:#643d1c;--yc-color-private-orange-300-solid:#754319;--yc-color-private-orange-350-solid:#864916;--yc-color-private-orange-400-solid:#965014;--yc-color-private-orange-450-solid:#a75611;--yc-color-private-orange-500-solid:#b75d0f;--yc-color-private-orange-550-solid:#c8630c;--yc-color-private-orange-600-solid:#ce7324;--yc-color-private-orange-650-solid:#d3823d;--yc-color-private-orange-700-solid:#d89255;--yc-color-private-orange-750-solid:#dea16d;--yc-color-private-orange-800-solid:#e3b185;--yc-color-private-orange-850-solid:#e9c19e;--yc-color-private-orange-900-solid:#efd0b6;--yc-color-private-orange-950-solid:#f4e0ce;--yc-color-private-orange-1000-solid:#faefe7;--yc-my-color-brand-normal:var(--yc-color-private-blue-450-solid);--yc-my-color-brand-normal-hover:var(--yc-color-private-blue-650-solid);--yc-my-color-brand-light:var(--yc-color-private-blue-300);--yc-my-color-brand-selection:var(--yc-color-private-blue-350);--yc-my-color-brand-selection-hover:var(--yc-color-private-blue-600-solid);--yc-my-color-brand-link:var(--yc-color-private-blue-550);--yc-my-color-brand-link-hover:var(--yc-color-private-blue-750-solid);--yc-my-color-brand-text:var(--yc-color-private-blue-850-solid);--yc-my-color-brand-text-contrast:var(--yc-color-text-light-primary);--yc-my-color-brand-link-visited:var(--yc-color-private-purple-650-solid);--yc-my-color-brand-link-visited-hover:var(--yc-color-private-purple-800-solid);--yc-color-text-primary:var(--yc-color-private-white-1000);--yc-color-text-complementary:var(--yc-color-private-white-800);--yc-color-text-secondary:var(--yc-color-private-white-600);--yc-color-text-hint:var(--yc-color-private-white-400);--yc-color-text-info:var(--yc-color-private-blue-850-solid);--yc-color-text-positive:var(--yc-color-private-green-850-solid);--yc-color-text-warning-medium:var(--yc-color-private-yellow-800-solid);--yc-color-text-warning-heavy:var(--yc-color-private-yellow-850-solid);--yc-color-text-danger:var(--yc-color-private-red-850-solid);--yc-color-text-utility:var(--yc-color-private-purple-805-solid);--yc-color-text-misc:var(--yc-color-private-cool-grey-850-solid);--yc-color-text-special:var(--yc-my-color-brand-normal);--yc-color-text-link:var(--yc-my-color-brand-link);--yc-color-text-link-hover:var(--yc-my-color-brand-link-hover);--yc-color-text-link-visited:var(--yc-my-color-brand-link-visited);--yc-color-text-link-visited-hover:var(--yc-my-color-brand-link-visited-hover);--yc-color-text-yandex-red:var(--yc-color-private-red-550);--yc-color-text-dark-primary:var(--yc-color-private-black-1000);--yc-color-text-dark-complementary:var(--yc-color-private-black-800);--yc-color-text-dark-secondary:var(--yc-color-private-black-600);--yc-color-text-light-primary:var(--yc-color-private-white-1000);--yc-color-text-light-complementary:var(--yc-color-private-white-800);--yc-color-text-light-secondary:var(--yc-color-private-white-600);--yc-color-text-light-hint:var(--yc-color-private-white-400);--yc-color-text-inverted-primary:var(--yc-color-private-black-1000);--yc-color-text-inverted-complementary:var(--yc-color-private-black-800);--yc-color-text-inverted-secondary:var(--yc-color-private-black-600);--yc-color-text-inverted-hint:var(--yc-color-private-black-400);--yc-color-base-background:var(--yc-color-private-black-rock-950);--yc-color-base-generic:var(--yc-color-private-white-100);--yc-color-base-generic-hover:var(--yc-color-private-white-250);--yc-color-base-generic-medium:var(--yc-color-private-white-250);--yc-color-base-generic-medium-hover:var(--yc-color-private-white-400);--yc-color-base-generic-accent:var(--yc-color-private-white-200);--yc-color-base-generic-accent-disabled:var(--yc-color-private-white-150);--yc-color-base-generic-ultralight:var(--yc-color-private-white-150-solid);--yc-color-base-simple-hover:var(--yc-color-private-white-250);--yc-color-base-simple-hover-solid:var(--yc-color-private-white-250-solid);--yc-color-base-selection:var(--yc-my-color-brand-selection);--yc-color-base-selection-hover:var(--yc-my-color-brand-selection-hover);--yc-color-base-special:var(--yc-my-color-brand-normal);--yc-color-base-special-hover:var(--yc-my-color-brand-normal-hover);--yc-color-base-action:var(--yc-color-base-special);--yc-color-base-action-hover:var(--yc-color-base-special-hover);--yc-color-base-info:var(--yc-color-private-blue-250);--yc-color-base-info-hover:var(--yc-color-private-blue-400);--yc-color-base-positive:var(--yc-color-private-green-250);--yc-color-base-positive-hover:var(--yc-color-private-green-400);--yc-color-base-warning:var(--yc-color-private-yellow-250);--yc-color-base-warning-hover:var(--yc-color-private-yellow-400);--yc-color-base-danger:var(--yc-color-private-red-250);--yc-color-base-danger-hover:var(--yc-color-private-red-400);--yc-color-base-misc:var(--yc-color-private-cool-grey-250);--yc-color-base-misc-hover:var(--yc-color-private-cool-grey-400);--yc-color-base-neutral:var(--yc-color-private-white-100);--yc-color-base-neutral-hover:var(--yc-color-private-white-250);--yc-color-base-positive-medium:var(--yc-color-private-green-350);--yc-color-base-positive-medium-hover:var(--yc-color-private-green-400);--yc-color-base-info-heavy:var(--yc-color-private-blue-450);--yc-color-base-positive-heavy:var(--yc-color-private-green-450);--yc-color-base-warning-heavy:var(--yc-color-private-yellow-450);--yc-color-base-warning-heavy-hover:var(--yc-color-private-yellow-700);--yc-color-base-danger-heavy:var(--yc-color-private-red-450);--yc-color-base-danger-heavy-hover:var(--yc-color-private-red-450);--yc-color-base-misc-heavy:var(--yc-color-private-cool-grey-450);--yc-color-base-misc-heavy-hover:var(--yc-color-private-cool-grey-550);--yc-color-base-light:var(--yc-color-private-white-850);--yc-color-base-light-hover:var(--yc-color-private-white-700);--yc-color-base-light-simple-hover:var(--yc-color-private-white-150);--yc-color-base-light-disabled:var(--yc-color-private-white-150);--yc-color-base-light-accent-disabled:var(--yc-color-private-white-300);--yc-color-base-float:var(--yc-color-private-white-100-solid);--yc-color-base-float-hover:var(--yc-color-private-white-200-solid);--yc-color-base-float-heavy:var(--yc-color-private-white-200-solid);--yc-color-base-float-accent:var(--yc-color-private-white-300-solid);--yc-color-base-float-accent-hover:var(--yc-color-private-white-400-solid);--yc-color-base-float-announcement:var(--yc-color-private-white-200-solid);--yc-color-base-modal:var(--yc-color-private-black-rock-850);--yc-color-line-generic:var(--yc-color-private-white-150);--yc-color-line-generic-hover:var(--yc-color-private-white-250);--yc-color-line-generic-active:var(--yc-color-private-white-600);--yc-color-line-generic-accent:var(--yc-color-private-white-350);--yc-color-line-generic-accent-hover:var(--yc-color-private-white-800);--yc-color-line-solid:var(--yc-color-private-white-150-solid);--yc-color-line-selection-hover:var(--yc-my-color-brand-light);--yc-color-line-selection-active:var(--yc-my-color-brand-normal);--yc-color-line-link:var(--yc-my-color-brand-normal);--yc-color-line-info:var(--yc-color-private-blue-550);--yc-color-line-positive:var(--yc-color-private-green-550);--yc-color-line-warning:var(--yc-color-private-yellow-100);--yc-color-line-danger:var(--yc-color-private-red-550);--yc-color-line-misc:var(--yc-color-private-cool-grey-550);--yc-color-line-hint:var(--yc-color-private-blue-550);--yc-color-line-light:var(--yc-color-private-white-500);--yc-color-infographics-info-light:var(--yc-color-private-blue-150);--yc-color-infographics-positive-light:var(--yc-color-private-green-150);--yc-color-infographics-warning-light:var(--yc-color-private-orange-150);--yc-color-infographics-danger-light:var(--yc-color-private-red-150);--yc-color-infographics-misc-light:var(--yc-color-private-cool-grey-150);--yc-color-infographics-neutral-light:var(--yc-color-private-white-150);--yc-color-infographics-info-medium:var(--yc-color-private-blue-300);--yc-color-infographics-positive-medium:var(--yc-color-private-green-300);--yc-color-infographics-warning-medium:var(--yc-color-private-orange-300);--yc-color-infographics-danger-medium:var(--yc-color-private-red-300);--yc-color-infographics-misc-medium:var(--yc-color-private-cool-grey-300);--yc-color-infographics-neutral-medium:var(--yc-color-private-white-150);--yc-color-infographics-info-heavy:var(--yc-color-private-blue-550);--yc-color-infographics-positive-heavy:var(--yc-color-private-green-550);--yc-color-infographics-warning-heavy:var(--yc-color-private-yellow-550);--yc-color-infographics-danger-heavy:var(--yc-color-private-red-550);--yc-color-infographics-misc-heavy:var(--yc-color-private-cool-grey-550);--yc-color-infographics-neutral-heavy:var(--yc-color-private-white-300);--yc-color-infographics-axis:var(--yc-color-private-white-150-solid);--yc-color-infographics-tooltip-bg:var(--yc-color-private-white-opaque-150);--yc-color-sfx-veil:var(--yc-color-private-black-700);--yc-color-sfx-shadow:var(--yc-color-private-black-200);--yc-color-sfx-shadow-heavy:var(--yc-color-private-black-400);--yc-color-sfx-fade:var(--yc-color-private-white-250);--yc-color-promo-base-silver:#bcc0c4;--yc-color-promo-base-gold:#ffde5d;--yc-color-promo-base-asphalt:#474d52;--yc-color-promo-base-tomato:#ff6b6a;--yc-color-promo-base-copper:#ffb95a;--yc-color-promo-base-mint:#7fd68e;--yc-color-promo-base-sky:#69b4ff;--yc-color-promo-base-neon:#b384ff;--yc-color-promo-highlight-silver:#616366;--yc-color-promo-highlight-gold:#99832e;--yc-color-promo-highlight-asphalt:#5d656b;--yc-color-promo-highlight-tomato:#998585;--yc-color-promo-highlight-copper:#7f7262;--yc-color-promo-highlight-mint:#758978;--yc-color-promo-highlight-sky:#94a2af;--yc-color-promo-highlight-neon:#aea6ba;--yc-color-scroll-track:var(--yc-color-base-background);--yc-color-scroll-handle:var(--yc-color-private-white-150);--yc-color-scroll-handle-hover:var(--yc-color-private-white-250);--yc-color-scroll-corner:var(--yc-color-private-white-150)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar){scrollbar-color:var(--yc-color-scroll-handle) var(--yc-color-scroll-track);scrollbar-width:var(--yc-scrollbar-width)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar{background:var(--yc-color-scroll-track);height:var(--yc-scrollbar-width);width:var(--yc-scrollbar-width)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar-track,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar-track{background:var(--yc-color-scroll-track)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar-corner,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar-corner{background:var(--yc-color-scroll-corner)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar-thumb,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar-thumb{background:var(--yc-color-scroll-handle)}body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar) ::-webkit-scrollbar-thumb:hover,body.yc-root:not(.yc-root_mobile):not(.yc-root_native-scrollbar)::-webkit-scrollbar-thumb:hover{background:var(--yc-color-scroll-handle-hover)}
-/*# sourceMappingURL=main.ff5b549d.css.map*/ \ No newline at end of file
diff --git a/ydb/core/viewer/monitoring/static/js/5210.6e07cb51.chunk.js b/ydb/core/viewer/monitoring/static/js/5210.0bde5996.chunk.js
index 6a73e412b8..eabfd78aad 100644
--- a/ydb/core/viewer/monitoring/static/js/5210.6e07cb51.chunk.js
+++ b/ydb/core/viewer/monitoring/static/js/5210.0bde5996.chunk.js
@@ -1,2 +1,2 @@
-"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5210],{75210:function(e,n,o){o.r(n),o.d(n,{conf:function(){return t},language:function(){return r}});var t={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["var","end_var"],["var_input","end_var"],["var_output","end_var"],["var_in_out","end_var"],["var_temp","end_var"],["var_global","end_var"],["var_access","end_var"],["var_external","end_var"],["type","end_type"],["struct","end_struct"],["program","end_program"],["function","end_function"],["function_block","end_function_block"],["action","end_action"],["step","end_step"],["initial_step","end_step"],["transaction","end_transaction"],["configuration","end_configuration"],["tcp","end_tcp"],["recource","end_recource"],["channel","end_channel"],["library","end_library"],["folder","end_folder"],["binaries","end_binaries"],["includes","end_includes"],["sources","end_sources"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"/*",close:"*/"},{open:"'",close:"'",notIn:["string_sq"]},{open:'"',close:'"',notIn:["string_dq"]},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"var",close:"end_var"},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},r={defaultToken:"",tokenPostfix:".st",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","end_if","elsif","else","case","of","to","__try","__catch","__finally","do","with","by","while","repeat","end_while","end_repeat","end_case","for","end_for","task","retain","non_retain","constant","with","at","exit","return","interval","priority","address","port","on_channel","then","iec","file","uses","version","packagetype","displayname","copyright","summary","vendor","common_source","from","extends"],constant:["false","true","null"],defineKeywords:["var","var_input","var_output","var_in_out","var_temp","var_global","var_access","var_external","end_var","type","end_type","struct","end_struct","program","end_program","function","end_function","function_block","end_function_block","interface","end_interface","method","end_method","property","end_property","namespace","end_namespace","configuration","end_configuration","tcp","end_tcp","resource","end_resource","channel","end_channel","library","end_library","folder","end_folder","binaries","end_binaries","includes","end_includes","sources","end_sources","action","end_action","step","initial_step","end_step","transaction","end_transaction"],typeKeywords:["int","sint","dint","lint","usint","uint","udint","ulint","real","lreal","time","date","time_of_day","date_and_time","string","bool","byte","word","dword","array","pointer","lword"],operators:["=",">","<",":",":=","<=",">=","<>","&","+","-","*","**","MOD","^","or","and","not","xor","abs","acos","asin","atan","cos","exp","expt","ln","log","sin","sqrt","tan","sel","max","min","limit","mux","shl","shr","rol","ror","indexof","sizeof","adr","adrinst","bitadr","is_valid","ref","ref_to"],builtinVariables:[],builtinFunctions:["sr","rs","tp","ton","tof","eq","ge","le","lt","ne","round","trunc","ctd","\u0441tu","ctud","r_trig","f_trig","move","concat","delete","find","insert","left","len","replace","right","rtc"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/(\.\.)/,"delimiter"],[/\b(16#[0-9A-Fa-f\_]*)+\b/,"number.hex"],[/\b(2#[01\_]+)+\b/,"number.binary"],[/\b(8#[0-9\_]*)+\b/,"number.octal"],[/\b\d*\.\d+([eE][\-+]?\d+)?\b/,"number.float"],[/\b(L?REAL)#[0-9\_\.e]+\b/,"number.float"],[/\b(BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT)#[0-9\_]+\b/,"number"],[/\d+/,"number"],[/\b(T|DT|TOD)#[0-9:-_shmyd]+\b/,"tag"],[/\%(I|Q|M)(X|B|W|D|L)[0-9\.]+/,"tag"],[/\%(I|Q|M)[0-9\.]*/,"tag"],[/\b[A-Za-z]{1,6}#[0-9]+\b/,"tag"],[/\b(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]+\b/,"predefined"],[/\b[A_Za-z]+(_TO_)[A_Za-z]+\b/,"predefined"],[/[;]/,"delimiter"],[/[.]/,{token:"delimiter",next:"@params"}],[/[a-zA-Z_]\w*/,{cases:{"@operators":"operators","@keywords":"keyword","@typeKeywords":"type","@defineKeywords":"variable","@constant":"constant","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string_dq"}],[/'/,{token:"string.quote",bracket:"@open",next:"@string_sq"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],params:[[/\b[A-Za-z0-9_]+\b(?=\()/,{token:"identifier",next:"@pop"}],[/\b[A-Za-z0-9_]+\b/,"variable.name","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],comment2:[[/[^\(*]+/,"comment"],[/\(\*/,"comment","@push"],["\\*\\)","comment","@pop"],[/[\(*]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\/.*$/,"comment"],[/\/\*/,"comment","@comment"],[/\(\*/,"comment","@comment2"]],string_dq:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],string_sq:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]]}}}}]);
-//# sourceMappingURL=5210.6e07cb51.chunk.js.map \ No newline at end of file
+"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5210],{16886:function(e,n,o){o.r(n),o.d(n,{conf:function(){return t},language:function(){return r}});var t={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["var","end_var"],["var_input","end_var"],["var_output","end_var"],["var_in_out","end_var"],["var_temp","end_var"],["var_global","end_var"],["var_access","end_var"],["var_external","end_var"],["type","end_type"],["struct","end_struct"],["program","end_program"],["function","end_function"],["function_block","end_function_block"],["action","end_action"],["step","end_step"],["initial_step","end_step"],["transaction","end_transaction"],["configuration","end_configuration"],["tcp","end_tcp"],["recource","end_recource"],["channel","end_channel"],["library","end_library"],["folder","end_folder"],["binaries","end_binaries"],["includes","end_includes"],["sources","end_sources"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"/*",close:"*/"},{open:"'",close:"'",notIn:["string_sq"]},{open:'"',close:'"',notIn:["string_dq"]},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"var",close:"end_var"},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},r={defaultToken:"",tokenPostfix:".st",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","end_if","elsif","else","case","of","to","__try","__catch","__finally","do","with","by","while","repeat","end_while","end_repeat","end_case","for","end_for","task","retain","non_retain","constant","with","at","exit","return","interval","priority","address","port","on_channel","then","iec","file","uses","version","packagetype","displayname","copyright","summary","vendor","common_source","from","extends"],constant:["false","true","null"],defineKeywords:["var","var_input","var_output","var_in_out","var_temp","var_global","var_access","var_external","end_var","type","end_type","struct","end_struct","program","end_program","function","end_function","function_block","end_function_block","interface","end_interface","method","end_method","property","end_property","namespace","end_namespace","configuration","end_configuration","tcp","end_tcp","resource","end_resource","channel","end_channel","library","end_library","folder","end_folder","binaries","end_binaries","includes","end_includes","sources","end_sources","action","end_action","step","initial_step","end_step","transaction","end_transaction"],typeKeywords:["int","sint","dint","lint","usint","uint","udint","ulint","real","lreal","time","date","time_of_day","date_and_time","string","bool","byte","word","dword","array","pointer","lword"],operators:["=",">","<",":",":=","<=",">=","<>","&","+","-","*","**","MOD","^","or","and","not","xor","abs","acos","asin","atan","cos","exp","expt","ln","log","sin","sqrt","tan","sel","max","min","limit","mux","shl","shr","rol","ror","indexof","sizeof","adr","adrinst","bitadr","is_valid","ref","ref_to"],builtinVariables:[],builtinFunctions:["sr","rs","tp","ton","tof","eq","ge","le","lt","ne","round","trunc","ctd","\u0441tu","ctud","r_trig","f_trig","move","concat","delete","find","insert","left","len","replace","right","rtc"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/(\.\.)/,"delimiter"],[/\b(16#[0-9A-Fa-f\_]*)+\b/,"number.hex"],[/\b(2#[01\_]+)+\b/,"number.binary"],[/\b(8#[0-9\_]*)+\b/,"number.octal"],[/\b\d*\.\d+([eE][\-+]?\d+)?\b/,"number.float"],[/\b(L?REAL)#[0-9\_\.e]+\b/,"number.float"],[/\b(BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT)#[0-9\_]+\b/,"number"],[/\d+/,"number"],[/\b(T|DT|TOD)#[0-9:-_shmyd]+\b/,"tag"],[/\%(I|Q|M)(X|B|W|D|L)[0-9\.]+/,"tag"],[/\%(I|Q|M)[0-9\.]*/,"tag"],[/\b[A-Za-z]{1,6}#[0-9]+\b/,"tag"],[/\b(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]+\b/,"predefined"],[/\b[A_Za-z]+(_TO_)[A_Za-z]+\b/,"predefined"],[/[;]/,"delimiter"],[/[.]/,{token:"delimiter",next:"@params"}],[/[a-zA-Z_]\w*/,{cases:{"@operators":"operators","@keywords":"keyword","@typeKeywords":"type","@defineKeywords":"variable","@constant":"constant","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string_dq"}],[/'/,{token:"string.quote",bracket:"@open",next:"@string_sq"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],params:[[/\b[A-Za-z0-9_]+\b(?=\()/,{token:"identifier",next:"@pop"}],[/\b[A-Za-z0-9_]+\b/,"variable.name","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],comment2:[[/[^\(*]+/,"comment"],[/\(\*/,"comment","@push"],["\\*\\)","comment","@pop"],[/[\(*]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\/.*$/,"comment"],[/\/\*/,"comment","@comment"],[/\(\*/,"comment","@comment2"]],string_dq:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],string_sq:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]]}}}}]);
+//# sourceMappingURL=5210.0bde5996.chunk.js.map \ No newline at end of file
diff --git a/ydb/core/viewer/monitoring/static/js/5215.2d9f2122.chunk.js b/ydb/core/viewer/monitoring/static/js/5215.82cc072c.chunk.js
index b95875dc95..bbdb4ae905 100644
--- a/ydb/core/viewer/monitoring/static/js/5215.2d9f2122.chunk.js
+++ b/ydb/core/viewer/monitoring/static/js/5215.82cc072c.chunk.js
@@ -1,2 +1,2 @@
-"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5215],{15215:function(e,t,p){p.r(t),p.d(t,{conf:function(){return n},language:function(){return i}});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*(#|//)region\\b"),end:new RegExp("^\\s*(#|//)endregion\\b")}}},i={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.root"}],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<]+/]],doctype:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}}]);
-//# sourceMappingURL=5215.2d9f2122.chunk.js.map \ No newline at end of file
+"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5215],{12010:function(e,t,p){p.r(t),p.d(t,{conf:function(){return n},language:function(){return i}});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*(#|//)region\\b"),end:new RegExp("^\\s*(#|//)endregion\\b")}}},i={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.root"}],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<]+/]],doctype:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}}]);
+//# sourceMappingURL=5215.82cc072c.chunk.js.map \ No newline at end of file
diff --git a/ydb/core/viewer/monitoring/static/js/8206.d2f5a912.chunk.js b/ydb/core/viewer/monitoring/static/js/8206.9a658249.chunk.js
index 3037834323..73798e16ef 100644
--- a/ydb/core/viewer/monitoring/static/js/8206.d2f5a912.chunk.js
+++ b/ydb/core/viewer/monitoring/static/js/8206.9a658249.chunk.js
@@ -1,2 +1,2 @@
-"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8206],{98206:function(e,t,n){n.r(t),n.d(t,{conf:function(){return o},language:function(){return s}});var o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},s={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]);
-//# sourceMappingURL=8206.d2f5a912.chunk.js.map \ No newline at end of file
+"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8206],{21435:function(e,t,n){n.r(t),n.d(t,{conf:function(){return o},language:function(){return s}});var o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},s={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]);
+//# sourceMappingURL=8206.9a658249.chunk.js.map \ No newline at end of file
diff --git a/ydb/core/viewer/monitoring/static/js/main.8120faa2.js b/ydb/core/viewer/monitoring/static/js/main.8120faa2.js
deleted file mode 100644
index 16b4f0fc35..0000000000
--- a/ydb/core/viewer/monitoring/static/js/main.8120faa2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! For license information please see main.8120faa2.js.LICENSE.txt */
-!function(){var e={87757:function(e,t,n){e.exports=n(9780)},97851:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.STRICT=void 0,t.STRICT=!0},6438:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_SYSTEM_DATE_FORMAT=void 0,t.DEFAULT_SYSTEM_DATE_FORMAT="YYYY-MM-DD"},61819:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(97851),t),r(n(6438),t),r(n(46445),t),r(n(72132),t)},46445:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UtcTimeZone=void 0,t.UtcTimeZone="UTC"},72132:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CollatorSensitivity=void 0,t.CollatorSensitivity={ACCENT:"accent",BASE:"base",CASE:"case",VARIANT:"variant"}},60052:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.isDateTime=t.dateTime=t.createUTCDateTime=t.createDateTime=void 0;var r=i(n(8047)),o=n(61819),a=n(83671);t.createDateTime=function(e,t,n){var i=t?(0,r.default)(e,t,o.STRICT):(0,r.default)(e);return n?i.tz(n):i};t.createUTCDateTime=function(e,t){return t?r.default.utc(e,t,o.STRICT):r.default.utc(e)};t.dateTime=function(e){var n=e||{},i=n.input,s=n.format,u=n.timeZone,l=n.lang,c=r.default.locale(),d=l&&c!==l;d&&r.default.locale(l);var h=(0,a.compareStrings)(u,o.UtcTimeZone,{ignoreCase:!0})?(0,t.createUTCDateTime)(i,s):(0,t.createDateTime)(i,s,u);return d&&r.default.locale(c),h};t.isDateTime=function(e){return r.default.isDayjs(e)}},25079:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(60052),t)},77956:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseDateMath=t.parse=t.isValid=void 0;var i=n(32048),r=n(25079),o=["y","Q","M","w","d","h","m","s"];function a(e,t,n){if(e){if("string"===typeof e){var o=void 0,a="",u=void 0,l=void 0;return"now"===e.substring(0,3)?(o=(0,r.dateTime)({timeZone:n}),a=e.substring("now".length)):(-1===(u=e.indexOf("||"))?(l=e,a=""):(l=e.substring(0,u),a=e.substring(u+2)),o=(0,r.dateTime)({input:l})),a.length?s(a,o,t):o}return(0,r.isDateTime)(e)?e:(0,i.isDate)(e)?(0,r.dateTime)({input:e}):void 0}}function s(e,t,n){for(var r=e.replace(/\s/g,""),a=t,s=0,u=r.length;s<u;){var l=r.charAt(s++),c=void 0,d=void 0;if("/"===l)c=0;else if("+"===l)c=1;else{if("-"!==l)return;c=2}if(isNaN(parseInt(r.charAt(s),10)))d=1;else if(2===r.length)d=r.charAt(s);else{for(var h=s;!isNaN(parseInt(r.charAt(s),10));)if(++s>10)return;d=parseInt(r.substring(h,s),10)}if(0===c&&1!==d)return;var f=r.charAt(s++);if(!(0,i.includes)(o,f))return;0===c?a=n?a.endOf(f):a.startOf(f):1===c?a=a.add(d,f):2===c&&(a=a.subtract(d,f))}return a}t.isValid=function(e){var t=a(e);return!!t&&(!!(0,r.isDateTime)(t)&&t.isValid())},t.parse=a,t.parseDateMath=s},42259:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(77956),t)},8047:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},r=i(n(99517)),o=i(n(72547)),a=i(n(51235)),s=i(n(28699)),u=i(n(27369)),l=i(n(51277)),c=i(n(51714)),d=i(n(63540)),h=i(n(18272)),f=i(n(79748)),p=i(n(14230));r.default.extend(o.default),r.default.extend(a.default),r.default.extend(s.default),r.default.extend(l.default),r.default.extend(c.default),r.default.extend(d.default),r.default.extend(h.default),r.default.extend(f.default),r.default.extend(p.default),r.default.extend(u.default),e.exports=r.default},7406:function(e,t,n){"use strict";t.J=void 0;var i=n(25079);var r=n(42259);var o=n(10969);Object.defineProperty(t,"J",{enumerable:!0,get:function(){return o.dateTimeParse}});var a=n(23464);var s=n(6706)},10969:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(56729),t)},56729:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.dateTimeParse=void 0;var r=i(n(8047)),o=n(25079),a=n(42259);t.dateTimeParse=function(e,t){if(e){r.default.tz.setDefault(null===t||void 0===t?void 0:t.timeZone);var n=function(e,t){var n;if("string"===typeof e&&-1!==e.indexOf("now")){var i=null===(n=null===t||void 0===t?void 0:t.allowRelative)||void 0===n||n;if(!(0,a.isValid)(e)||!i)return;return(0,a.parse)(e,null===t||void 0===t?void 0:t.roundUp,null===t||void 0===t?void 0:t.timeZone)}var r=t||{},s=r.format,u=r.lang,l=(0,o.dateTime)({input:e,format:s,lang:u,timeZone:null===t||void 0===t?void 0:t.timeZone});return l.isValid()?l:void 0}(e,t);return r.default.tz.setDefault(),n}}},6706:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(28170),t)},28170:function(e,t,n){"use strict";var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var n,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(u){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(n=1,i&&(r=2&s[0]?i.return:s[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,s[1])).done)return r;switch(i=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,i=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){a.label=s[1];break}if(6===s[0]&&a.label<r[1]){a.label=r[1],r=s;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(s);break}r[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(u){s=[6,u],i=0}finally{n=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.settings=void 0;var a=o(n(8047)),s=function(){function e(){this.loadedLocales=new Set(["en"]),this.updateLocale({weekStart:1})}return e.prototype.loadLocale=function(e){return i(this,void 0,void 0,(function(){var t;return r(this,(function(i){switch(i.label){case 0:if(this.isLocaleLoaded(e))return[3,4];i.label=1;case 1:return i.trys.push([1,3,,4]),t=e.toLocaleLowerCase(),[4,n(36817)("./".concat(t,".js"))];case 2:return i.sent(),this.loadedLocales.add(t),[3,4];case 3:throw i.sent(),new Error("Can't load locale \"".concat(e,'". Either it does not exist, or there was a connection problem. Check the dayjs locations list: https://github.com/iamkun/dayjs/tree/dev/src/locale'));case 4:return[2]}}))}))},e.prototype.getLocale=function(){return a.default.locale()},e.prototype.setLocale=function(e){if(!this.isLocaleLoaded(e))throw new Error('Seems you are trying to set an unloaded locale "'.concat(e,"\". Load it first by calling settings.loadLocale('").concat(e,"'). Check the dayjs locations list: https://github.com/iamkun/dayjs/tree/dev/src/locale"));a.default.locale(e)},e.prototype.updateLocale=function(e){var t=this.getLocale();a.default.updateLocale(t,e)},e.prototype.isLocaleLoaded=function(e){var t=e.toLocaleLowerCase();return this.loadedLocales.has(t)},e}();t.settings=new s},23464:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(20425),t)},20425:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getTimeZonesList=t.guessUserTimeZone=t.getTimeZone=void 0;var r=i(n(8047)),o=n(61819);t.getTimeZone=function(e){var t;return null!==(t=null===e||void 0===e?void 0:e.timeZone)&&void 0!==t?t:o.UtcTimeZone};t.guessUserTimeZone=function(){return r.default.tz.guess()};t.getTimeZonesList=function(){var e;return(null===(e=Intl.supportedValuesOf)||void 0===e?void 0:e.call(Intl,"timeZone"))||[]}},83671:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(84078),t)},84078:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compareStrings=void 0;var i=n(61819);t.compareStrings=function(e,t,n){if(void 0===n&&(n={}),"string"!==typeof e||"string"!==typeof t)return!1;var r,o=n.ignoreCase;"boolean"===typeof o&&(r={sensitivity:o?i.CollatorSensitivity.BASE:i.CollatorSensitivity.CASE});return 0===e.localeCompare(t,void 0,r)}},24755:function(e,t,n){"use strict";n.r(t),n.d(t,{I18N:function(){return d},PluralForm:function(){return i}});var i,r=n(4942),o=n(15671),a=n(43144),s=n(29439),u=/{{(.*?)}}/g;function l(e,t){return 0===e?t.None:1===e||-1===e?t.One:t.Many}function c(e,t){var n=Math.abs(e%10),i=Math.abs(e%100);return 0===e?t.None:1===n&&11!==i?t.One:n>1&&n<5&&(i<10||i>20)?t.Few:t.Many}!function(e){e[e.One=0]="One",e[e.Few=1]="Few",e[e.Many=2]="Many",e[e.None=3]="None"}(i||(i={}));var d=function(){function e(t){(0,o.Z)(this,e),this.data={},this.lang=void 0,this.pluralizers={en:l,ru:c},this.logger=null,this.logger=(null===t||void 0===t?void 0:t.logger)||null}return(0,a.Z)(e,[{key:"setLang",value:function(e){this.lang=e}},{key:"configurePluralization",value:function(e){this.pluralizers=Object.assign({},this.pluralizers,e)}},{key:"registerKeyset",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this.data[e]&&Object.prototype.hasOwnProperty.call(this.data[e],t))throw new Error("Keyset '".concat(t,"' is already registered, aborting!"));this.data[e]=Object.assign({},this.data[e],(0,r.Z)({},t,n))}},{key:"registerKeysets",value:function(e,t){var n=this;Object.keys(t).forEach((function(i){n.registerKeyset(e,i,t[i])}))}},{key:"has",value:function(e,t,n){var i=this.getLanguageData(n);return Boolean(i&&i[e]&&i[e][t])}},{key:"i18n",value:function(e,t,n){var r=this.getLanguageData(this.lang);if("undefined"===typeof r)throw new Error("Language '".concat(this.lang,"' is not defined, make sure you call setLang for the same language you called registerKeysets for!"));if(0===Object.keys(r).length)return this.warn("Language data is empty."),t;var o=r[e];if(!o)return this.warn("Keyset not found.",e),t;if(0===Object.keys(o).length)return this.warn("Keyset is empty.",e),t;var a,l=o&&o[t];if("undefined"===typeof l)return this.warn("Missing key.",e,t),t;if(Array.isArray(l)){if(l.length<3)return this.warn("Missing required plurals",e,t),t;var c=Number(null===n||void 0===n?void 0:n.count);if(Number.isNaN(c))return this.warn("Missing params.count for key.",e,t),t;a=l[this.getLanguagePluralizer(this.lang)(c,i)]||l[i.Many],void 0===l[i.None]&&this.warn("Missing key for 0",e,t)}else a=l;return n&&(a=function(e,t){for(var n,i="",r=u.lastIndex=0;n=u.exec(e);){r!==n.index&&(i+=e.slice(r,n.index)),r=u.lastIndex;var o=n,a=(0,s.Z)(o,2),l=a[0],c=a[1];Object.prototype.hasOwnProperty.call(t,c)?i+=t[c]:i+=l}return r<e.length&&(i+=e.slice(r)),i}(a,n)),a}},{key:"keyset",value:function(e){var t=this;return function(n,i){return t.i18n(e,n,i)}}},{key:"warn",value:function(e,t,n){var i,r="";t?(r+=t,n&&(r+=".".concat(n))):r="languageData",null===(i=this.logger)||void 0===i||i.log("I18n: ".concat(e),{level:"info",logger:r,extra:{type:"i18n"}})}},{key:"getLanguageData",value:function(e){var t=e||this.lang;return t?this.data[t]:void 0}},{key:"getLanguagePluralizer",value:function(e){var t=e?this.pluralizers[e]:void 0;return t||this.warn("Pluralization is not configured for language '".concat(e,"', falling back to the english ruleset")),t||l}}]),e}()},39779:function(e,t,n){var i,r,o;"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self&&self,r=[n(91386),n(4519)],i=function(t,n){"use strict";var i,r;function o(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function a(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!==typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var a=i?Object.getOwnPropertyDescriptor(e,r):null;a&&(a.get||a.set)?Object.defineProperty(n,r,a):n[r]=e[r]}return n.default=e,t&&t.set(e,n),n}function s(e){return e&&e.__esModule?e:{default:e}}function u(e){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function d(e,t,n){return t&&c(e.prototype,t),n&&c(e,n),e}function h(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e){var t=m();return function(){var n,i=_(e);if(t){var r=_(this).constructor;n=Reflect.construct(i,arguments,r)}else n=i.apply(this,arguments);return g(this,n)}}function g(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?v(e):t}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _(e){return _=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_(e)}function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){w(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t=s(t),n=a(n);var C={x:"clientWidth",y:"clientHeight"},k={x:"clientTop",y:"clientLeft"},S={x:"innerWidth",y:"innerHeight"},x={x:"offsetWidth",y:"offsetHeight"},L={x:"offsetLeft",y:"offsetTop"},E={x:"overflowX",y:"overflowY"},N={x:"scrollWidth",y:"scrollHeight"},D={x:"scrollLeft",y:"scrollTop"},M={x:"width",y:"height"},T=function(){},O=!!function(){if("undefined"===typeof window)return!1;var e=!1;try{document.createElement("div").addEventListener("test",T,{get passive(){return e=!0,!1}})}catch(t){}return e}()&&{passive:!0},I="ReactList failed to reach a stable state.",A=40,R=function(e,t){for(var n in t)if(e[n]!==t[n])return!1;return!0},P=function(e){for(var t=e.props.axis,n=e.getEl(),i=E[t];n=n.parentElement;)switch(window.getComputedStyle(n)[i]){case"auto":case"scroll":case"overlay":return n}return window},Z=function(e){var t=e.props.axis,n=e.scrollParent;return n===window?window[S[t]]:n[C[t]]},F=function(e,t){var n=e.length,i=e.minSize,r=e.type,o=t.from,a=t.size,s=t.itemsPerRow,u=(a=Math.max(a,i))%s;return u&&(a+=s-u),a>n&&(a=n),(u=(o="simple"!==r&&o?Math.max(Math.min(o,n-a),0):0)%s)&&(o-=u,a+=u),o===t.from&&a==t.size?t:b(b({},t),{},{from:o,size:a})};e.exports=(r=i=function(e){h(i,e);var t=p(i);function i(e){var n;return l(this,i),(n=t.call(this,e)).state=F(e,{itemsPerRow:1,from:e.initialIndex,size:0}),n.cache={},n.cachedScrollPosition=null,n.prevPrevState={},n.unstable=!1,n.updateCounter=0,n}return d(i,null,[{key:"getDerivedStateFromProps",value:function(e,t){var n=F(e,t);return n===t?null:n}}]),d(i,[{key:"componentDidMount",value:function(){this.updateFrameAndClearCache=this.updateFrameAndClearCache.bind(this),window.addEventListener("resize",this.updateFrameAndClearCache),this.updateFrame(this.scrollTo.bind(this,this.props.initialIndex))}},{key:"componentDidUpdate",value:function(e){var t=this;if(this.props.axis!==e.axis&&this.clearSizeCache(),!this.unstable){if(++this.updateCounter>A)return this.unstable=!0,console.error(I);this.updateCounterTimeoutId||(this.updateCounterTimeoutId=setTimeout((function(){t.updateCounter=0,delete t.updateCounterTimeoutId}),0)),this.updateFrame()}}},{key:"maybeSetState",value:function(e,t){if(R(this.state,e))return t();this.setState(e,t)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.updateFrameAndClearCache),this.scrollParent.removeEventListener("scroll",this.updateFrameAndClearCache,O),this.scrollParent.removeEventListener("mousewheel",T,O)}},{key:"getOffset",value:function(e){var t=this.props.axis,n=e[k[t]]||0,i=L[t];do{n+=e[i]||0}while(e=e.offsetParent);return n}},{key:"getEl",value:function(){return this.el||this.items}},{key:"getScrollPosition",value:function(){if("number"===typeof this.cachedScrollPosition)return this.cachedScrollPosition;var e=this.scrollParent,t=this.props.axis,n=D[t],i=e===window?document.body[n]||document.documentElement[n]:e[n],r=this.getScrollSize()-this.props.scrollParentViewportSizeGetter(this),o=Math.max(0,Math.min(i,r)),a=this.getEl();return this.cachedScrollPosition=this.getOffset(e)+o-this.getOffset(a),this.cachedScrollPosition}},{key:"setScroll",value:function(e){var t=this.scrollParent,n=this.props.axis;if(e+=this.getOffset(this.getEl()),t===window)return window.scrollTo(0,e);e-=this.getOffset(this.scrollParent),t[D[n]]=e}},{key:"getScrollSize",value:function(){var e=this.scrollParent,t=document,n=t.body,i=t.documentElement,r=N[this.props.axis];return e===window?Math.max(n[r],i[r]):e[r]}},{key:"hasDeterminateSize",value:function(){var e=this.props,t=e.itemSizeGetter;return"uniform"===e.type||t}},{key:"getStartAndEnd",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.threshold,t=this.getScrollPosition(),n=Math.max(0,t-e),i=t+this.props.scrollParentViewportSizeGetter(this)+e;return this.hasDeterminateSize()&&(i=Math.min(i,this.getSpaceBefore(this.props.length))),{start:n,end:i}}},{key:"getItemSizeAndItemsPerRow",value:function(){var e=this.props,t=e.axis,n=e.useStaticSize,i=this.state,r=i.itemSize,o=i.itemsPerRow;if(n&&r&&o)return{itemSize:r,itemsPerRow:o};var a=this.items.children;if(!a.length)return{};var s=a[0],u=s[x[t]],l=Math.abs(u-r);if((isNaN(l)||l>=1)&&(r=u),!r)return{};for(var c=L[t],d=s[c],h=a[o=1];h&&h[c]===d;h=a[o])++o;return{itemSize:r,itemsPerRow:o}}},{key:"clearSizeCache",value:function(){this.cachedScrollPosition=null}},{key:"updateFrameAndClearCache",value:function(e){return this.clearSizeCache(),this.updateFrame(e)}},{key:"updateFrame",value:function(e){switch(this.updateScrollParent(),"function"!=typeof e&&(e=T),this.props.type){case"simple":return this.updateSimpleFrame(e);case"variable":return this.updateVariableFrame(e);case"uniform":return this.updateUniformFrame(e)}}},{key:"updateScrollParent",value:function(){var e=this.scrollParent;this.scrollParent=this.props.scrollParentGetter(this),e!==this.scrollParent&&(e&&(e.removeEventListener("scroll",this.updateFrameAndClearCache),e.removeEventListener("mousewheel",T)),this.clearSizeCache(),this.scrollParent.addEventListener("scroll",this.updateFrameAndClearCache,O),this.scrollParent.addEventListener("mousewheel",T,O))}},{key:"updateSimpleFrame",value:function(e){var t=this.getStartAndEnd().end,n=this.items.children,i=0;if(n.length){var r=this.props.axis,o=n[0],a=n[n.length-1];i=this.getOffset(a)+a[x[r]]-this.getOffset(o)}if(i>t)return e();var s=this.props,u=s.pageSize,l=s.length,c=Math.min(this.state.size+u,l);this.maybeSetState({size:c},e)}},{key:"updateVariableFrame",value:function(e){this.props.itemSizeGetter||this.cacheSizes();for(var t=this.getStartAndEnd(),n=t.start,i=t.end,r=this.props,o=r.length,a=r.pageSize,s=0,u=0,l=0,c=o-1;u<c;){var d=this.getSizeOfItem(u);if(null==d||s+d>n)break;s+=d,++u}for(var h=o-u;l<h&&s<i;){var f=this.getSizeOfItem(u+l);if(null==f){l=Math.min(l+a,h);break}s+=f,++l}this.maybeSetState(F(this.props,{from:u,itemsPerRow:1,size:l}),e)}},{key:"updateUniformFrame",value:function(e){var t=this.getItemSizeAndItemsPerRow(),n=t.itemSize,i=t.itemsPerRow;if(!n||!i)return e();var r=this.getStartAndEnd(),o=r.start,a=r.end,s=F(this.props,{from:Math.floor(o/n)*i,size:(Math.ceil((a-o)/n)+1)*i,itemsPerRow:i}),u=s.from,l=s.size;return this.maybeSetState({itemsPerRow:i,from:u,itemSize:n,size:l},e)}},{key:"getSpaceBefore",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null!=t[e])return t[e];var n=this.state,i=n.itemSize,r=n.itemsPerRow;if(i)return t[e]=Math.floor(e/r)*i;for(var o=e;o>0&&null==t[--o];);for(var a=t[o]||0,s=o;s<e;++s){t[s]=a;var u=this.getSizeOfItem(s);if(null==u)break;a+=u}return t[e]=a}},{key:"cacheSizes",value:function(){for(var e=this.cache,t=this.state.from,n=this.items.children,i=x[this.props.axis],r=0,o=n.length;r<o;++r)e[t+r]=n[r][i]}},{key:"getSizeOfItem",value:function(e){var t=this.cache,n=this.items,i=this.props,r=i.axis,o=i.itemSizeGetter,a=i.itemSizeEstimator,s=i.type,u=this.state,l=u.from,c=u.itemSize,d=u.size;if(c)return c;if(o)return o(e);if(e in t)return t[e];if("simple"===s&&e>=l&&e<l+d&&n){var h=n.children[e-l];if(h)return h[x[r]]}return a?a(e,t):void 0}},{key:"scrollTo",value:function(e){null!=e&&this.setScroll(this.getSpaceBefore(e))}},{key:"scrollAround",value:function(e){var t=this.getScrollPosition(),n=this.getSpaceBefore(e),i=n-this.props.scrollParentViewportSizeGetter(this)+this.getSizeOfItem(e),r=Math.min(i,n),o=Math.max(i,n);return t<=r?this.setScroll(r):t>o?this.setScroll(o):void 0}},{key:"getVisibleRange",value:function(){for(var e,t,n=this.state,i=n.from,r=n.size,o=this.getStartAndEnd(0),a=o.start,s=o.end,u={},l=i;l<i+r;++l){var c=this.getSpaceBefore(l,u),d=c+this.getSizeOfItem(l);null==e&&d>a&&(e=l),null!=e&&c<s&&(t=l)}return[e,t]}},{key:"renderItems",value:function(){for(var e=this,t=this.props,n=t.itemRenderer,i=t.itemsRenderer,r=this.state,o=r.from,a=r.size,s=[],u=0;u<a;++u)s.push(n(o+u,u));return i(s,(function(t){return e.items=t}))}},{key:"render",value:function(){var e=this,t=this.props,i=t.axis,r=t.length,o=t.type,a=t.useTranslate3d,s=this.state,u=s.from,l=s.itemsPerRow,c=this.renderItems();if("simple"===o)return c;var d={position:"relative"},h={},f=Math.ceil(r/l)*l,p=this.getSpaceBefore(f,h);p&&(d[M[i]]=p,"x"===i&&(d.overflowX="hidden"));var g=this.getSpaceBefore(u,h),v="x"===i?g:0,m="y"===i?g:0,_=a?"translate3d(".concat(v,"px, ").concat(m,"px, 0)"):"translate(".concat(v,"px, ").concat(m,"px)"),y={msTransform:_,WebkitTransform:_,transform:_};return n.default.createElement("div",{style:d,ref:function(t){return e.el=t}},n.default.createElement("div",{style:y},c))}}]),i}(n.Component),w(i,"displayName","ReactList"),w(i,"propTypes",{axis:t.default.oneOf(["x","y"]),initialIndex:t.default.number,itemRenderer:t.default.func,itemSizeEstimator:t.default.func,itemSizeGetter:t.default.func,itemsRenderer:t.default.func,length:t.default.number,minSize:t.default.number,pageSize:t.default.number,scrollParentGetter:t.default.func,scrollParentViewportSizeGetter:t.default.func,threshold:t.default.number,type:t.default.oneOf(["simple","variable","uniform"]),useStaticSize:t.default.bool,useTranslate3d:t.default.bool}),w(i,"defaultProps",{axis:"y",itemRenderer:function(e,t){return n.default.createElement("div",{key:t},e)},itemsRenderer:function(e,t){return n.default.createElement("div",{ref:t},e)},length:0,minSize:1,pageSize:10,scrollParentGetter:P,scrollParentViewportSizeGetter:Z,threshold:100,type:"simple",useStaticSize:!1,useTranslate3d:!1}),r)},void 0===(o="function"===typeof i?i.apply(t,r):i)||(e.exports=o)},99169:function(e,t,n){"use strict";n.d(t,{F:function(){return l}});var i=n(4519),r=n(67119),o=n(88216),a=n(93453);function s(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},a.i,e),i.createElement("path",{stroke:"currentColor",fill:"none",d:"M3 6l5 5 5-5"}))}var u=(0,r.Ge)("arrow-toggle");function l(e){var t=e.size,n=void 0===t?16:t,r=e.direction,a=void 0===r?"bottom":r,l=e.className;return i.createElement("span",{style:{width:n,height:n},className:u({direction:a},l)},i.createElement(o.J,{data:s,size:n}))}},95227:function(e,t,n){"use strict";n.d(t,{Oo:function(){return D},RP:function(){return L},Y7:function(){return x}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(4519),u=n(17571),l=n.n(u),c=n(81451),d=n(67119),h=n(8762),f=(0,d.Ge)("breadcrumbs");var p=s.memo((function(e){var t=e.data,n=e.isCurrent,i=e.isPrevCurrent,r=e.renderItem,o=t.text,a=t.href,u=t.action;return i||!n?s.createElement(h.r,{key:o,view:"secondary",href:a,title:o,onClick:u,className:f("item",{"prev-current":i})},r?r(t,n,i):o):s.createElement("div",{title:o,className:f("item",{current:!0})},r?r(t,n,i):o)}));p.displayName="Breadcrumbs.Item";var g=(0,d.Ge)("breadcrumbs");function v(e){var t=e.renderItemDivider;return s.createElement("div",{"aria-hidden":!0,className:g("divider")},t?t():"/")}v.displayName="Breadcrumbs.Separator";var m=n(60901),_=n(28510),y=JSON.parse('{"label_more":"Show more"}'),b=JSON.parse('{"label_more":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435"}'),w=(0,_.U)({en:y,ru:b},"Breadcrumbs"),C=(0,d.Ge)("breadcrumbs");function k(){return s.createElement(h.r,{view:"secondary",title:w("label_more"),className:C("item",{more:!0})},"...")}function S(e){var t=e.popupStyle,n=e.popupPlacement,i=e.items;return s.createElement(m.h,{items:i,popupClassName:C("popup",{staircase:"staircase"===t}),popupPlacement:n,switcher:s.createElement(k,null)})}S.displayName="Breadcrumbs.More";var x,L,E=200,N=(0,d.Ge)("breadcrumbs");!function(e){e[e.One=1]="One",e[e.Two=2]="Two"}(x||(x={})),function(e){e[e.Zero=0]="Zero",e[e.One=1]="One"}(L||(L={}));var D=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this,e)).handleResize=function(){var e=n.prepareInitialState(r.props);r.setState(e,r.recalculate)},r.handleResize=l()(r.handleResize,E),r.resizeObserver=new c.Z(r.handleResize),r.container=s.createRef(),r.state=n.prepareInitialState(e),r}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){this.recalculate(),this.resizeObserver.observe(this.container.current)}},{key:"componentDidUpdate",value:function(e){e.items!==this.state.allItems&&this.recalculate()}},{key:"componentWillUnmount",value:function(){this.resizeObserver.disconnect()}},{key:"render",value:function(){var e=this.props.className,t=this.state.calculated,n=this.renderRootItem();return s.createElement("div",{className:N({calculated:t?"yes":"no"},e)},s.createElement("div",{className:N("inner"),ref:this.container},n,this.renderMoreItem(),this.renderVisibleItems()))}},{key:"renderItem",value:function(e,t,n){var i=this.props.renderItemContent;return s.createElement(p,{data:e,isCurrent:t,isPrevCurrent:n,renderItem:i})}},{key:"renderItemDivider",value:function(){var e=this.props.renderItemDivider;return s.createElement(v,{renderItemDivider:e})}},{key:"renderRootItem",value:function(){var e=this.props,t=e.renderRootContent,n=e.renderItemContent,i=this.state,r=i.rootItem,o=0===i.visibleItems.length;return r?s.createElement(p,{data:r,isCurrent:o,isPrevCurrent:!1,renderItem:t||n}):null}},{key:"renderVisibleItems",value:function(){var e=this;return this.state.visibleItems.map((function(t,n,i){var r=n===i.length-1,o=n===i.length-2;return s.createElement(s.Fragment,{key:n},e.renderItemDivider(),e.renderItem(t,r,o))}))}},{key:"renderMoreItem",value:function(){var e=this.state.hiddenItems;if(0===e.length)return null;var t=this.props,n=t.popupStyle,i=t.popupPlacement,r=t.renderItemDivider;return s.createElement(s.Fragment,null,s.createElement(v,{renderItemDivider:r}),s.createElement(S,{items:e,popupPlacement:i,popupStyle:n}))}},{key:"recalculate",value:function(){var e=this.props,t=e.items,n=e.lastDisplayedItemsCount,i=e.firstDisplayedItemsCount;if(this.container.current){for(var r=Array.from(this.container.current.querySelectorAll(".".concat(N("divider")))),o=Array.from(this.container.current.querySelectorAll(".".concat(N("item")))),a=this.container.current.offsetWidth,s=o.map((function(e){return e.scrollWidth})),u=r.map((function(e){return e.offsetWidth})),l=s.reduce((function(e,t,i,r){var o=r.length-1===i,a=n===x.Two&&r.length-2===i;return o||a?e+Math.min(t,200):e+t}),0)+u.reduce((function(e,t){return e+t}),0),c=1;l>a&&c<o.length-n;)1===c&&(l+=34+u[c]),l-=s[c]+u[c],c++;this.setState({calculated:!0,visibleItems:t.slice(c-(1-i)),hiddenItems:t.slice(i,c-(1-i))})}}}],[{key:"prepareInitialState",value:function(e){var t=e.firstDisplayedItemsCount;return{calculated:!1,rootItem:t?e.items[0]:void 0,visibleItems:e.items.slice(t),hiddenItems:[],allItems:e.items}}},{key:"getDerivedStateFromProps",value:function(e,t){return t.allItems!==e.items?n.prepareInitialState(e):null}}]),n}(s.Component);D.defaultProps={popupPlacement:["bottom","top"]}},20970:function(e,t,n){"use strict";n.d(t,{z:function(){return f}});var i=n(37762),r=n(4519),o=n(67119),a=n(74601),s=n(63230),u=(0,o.Ge)("button"),l=function(e){var t=e.side,n=e.className,i=e.children;return r.createElement("span",{className:u("icon",{side:t},n)},r.createElement("span",{className:u("icon-inner")},i))};l.displayName="Button.Icon";var c=n(32711),d=(0,o.Ge)("button"),h=r.forwardRef((function(e,t){var n=e.view,i=void 0===n?"normal":n,o=e.size,a=void 0===o?"m":o,u=e.pin,l=void 0===u?"round-round":u,c=e.selected,h=void 0!==c&&c,f=e.disabled,p=void 0!==f&&f,v=e.loading,m=void 0!==v&&v,_=e.width,y=e.title,b=e.tabIndex,w=e.type,C=void 0===w?"button":w,k=e.component,S=e.href,x=e.target,L=e.rel,E=e.extraProps,N=e.onClick,D=e.onMouseEnter,M=e.onMouseLeave,T=e.onFocus,O=e.onBlur,I=e.children,A=e.id,R=e.style,P=e.className,Z=e.qa,F={title:y,tabIndex:b,onClick:N,onClickCapture:r.useCallback((function(e){s.P.publish({componentId:"Button",eventId:"click",domEvent:e,meta:{content:e.currentTarget.textContent,view:i}})}),[i]),onMouseEnter:D,onMouseLeave:M,onFocus:T,onBlur:O,id:A,style:R,className:d({view:i,size:a,pin:l,selected:h,disabled:p||m,loading:m,width:_},P),"data-qa":Z};if("string"===typeof S||k){var j={href:S,target:x,rel:"_blank"!==x||L?L:"noopener noreferrer"};return r.createElement(k||"a",Object.assign(Object.assign(Object.assign(Object.assign({},E),F),k?{}:j),{ref:t,"aria-disabled":p||m}),g(I))}return r.createElement("button",Object.assign({},E,F,{ref:t,type:C,disabled:p||m}),g(I))}));h.displayName="Button";var f=Object.assign(h,{Icon:l}),p=(0,a.s)(l);function g(e){var t=r.Children.toArray(e);if(1===t.length){var n=t[0];return p(n)?n:(0,c.y)(n)?r.createElement(f.Icon,{key:"icon"},n):r.createElement("span",{key:"text",className:d("text")},n)}var o,a,s,u,l=[],h=(0,i.Z)(t);try{for(h.s();!(u=h.n()).done;){var g=u.value,v=(0,c.y)(g),m=p(g);if(v||m)if(o||0!==l.length){if(!a&&0!==l.length){var _="right";a=v?r.createElement(f.Icon,{key:"icon-right",side:_},g):(0,r.cloneElement)(g,{side:_})}}else{var y="left";o=v?r.createElement(f.Icon,{key:"icon-left",side:y},g):(0,r.cloneElement)(g,{side:y})}else l.push(g)}}catch(b){h.e(b)}finally{h.f()}return l.length>0&&(s=r.createElement("span",{key:"text",className:d("text")},l)),[o,a,s]}},96040:function(e,t,n){"use strict";n.d(t,{X:function(){return l}});var i=n(4519),r=n(67119),o=n(66301);function a(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 10",width:"16",height:"16",fill:"currentColor"},e),i.createElement("path",{d:"M.49 5.385l1.644-1.644 4.385 4.385L4.874 9.77.49 5.385zm4.384 1.096L10.356 1 12 2.644 6.519 8.126 4.874 6.48v.001z"}))}function s(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 17 17",width:"16",height:"16",fill:"currentColor"},e),i.createElement("path",{d:"M4 7h9v3H4z"}))}var u=(0,r.Ge)("checkbox"),l=i.forwardRef((function(e,t){var n=e.size,r=void 0===n?"m":n,l=e.indeterminate,c=e.disabled,d=void 0!==c&&c,h=e.content,f=e.children,p=e.title,g=e.style,v=e.className,m=e.qa,_=(0,o.O)(e),y=_.checked,b=_.inputProps,w=h||f;return i.createElement("label",{ref:t,title:p,style:g,className:u({size:r,disabled:d,indeterminate:l,checked:y},v),"data-qa":m},i.createElement("span",{className:u("indicator")},i.createElement("span",{className:u("icon"),"aria-hidden":!0},l?i.createElement(s,{className:u("icon-svg",{type:"dash"})}):i.createElement(a,{className:u("icon-svg",{type:"tick"})})),i.createElement("input",Object.assign({},b,{className:u("control")})),i.createElement("span",{className:u("outline")})),w&&i.createElement("span",{className:u("text")},w))}))},73356:function(e,t,n){"use strict";n.d(t,{m:function(){return c}});var i=n(4519),r=n(20970),o=n(84087),a=n(83909),s=(0,n(67119).Ge)("clipboard-button"),u=24,l=1e3;function c(e){var t=e.text,n=e.size,c=void 0===n?u:n,d=e.className,h=e.qa,f=e.onCopy,p=e.timeout,g=void 0===p?l:p,v=e.options,m=(0,i.useRef)(null);return(0,i.useEffect)((function(){var e;null===(e=null===m||void 0===m?void 0:m.current)||void 0===e||e.style.setProperty("--yc-button-height","".concat(c,"px"))}),[c]),i.createElement(a.h,{text:t,timeout:g,onCopy:f,options:v},(function(e){return i.createElement(r.z,{ref:m,view:"flat",className:s(null,d),qa:h},i.createElement(r.z.Icon,null,i.createElement(o.K,{status:e,size:c,className:s("icon")})))}))}},84087:function(e,t,n){"use strict";n.d(t,{K:function(){return h}});var i,r=n(4942),o=n(4519),a=n(67119),s=n(93453),u=n(95487),l=(0,a.Ge)("clipboard-icon"),c=function(e){return o.createElement("path",{stroke:"currentColor",fill:"transparent",className:l("state"),strokeWidth:"1.5",d:e})},d=(i={},(0,r.Z)(i,u.T.Success,c("M9.5 13l3 3l5 -5")),(0,r.Z)(i,u.T.Error,c("M9.5 10l8 8m-8 0l8 -8")),i);function h(e){var t=e.size,n=e.status,i=e.className;return o.createElement("svg",Object.assign({width:t,height:t,viewBox:"0 0 24 24",className:l(null,i)},s.i),o.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}),n===u.T.Pending?null:d[n])}},83909:function(e,t,n){"use strict";n.d(t,{h:function(){return d}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(4519),u=n(17972),l=n.n(u),c=n(95487),d=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments)).state={status:n.INITIAL_STATUS},e.handleCopy=function(t,i){var r=e.props,o=r.timeout,a=r.onCopy;e.setState({status:i?c.T.Success:c.T.Error}),clearTimeout(e.timerId),e.timerId=window.setTimeout((function(){e.setState({status:n.INITIAL_STATUS}),e.timerId=void 0}),o),null===a||void 0===a||a(t,i)},e}return(0,r.Z)(n,[{key:"componentWillUnmount",value:function(){clearTimeout(this.timerId)}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.text,i=e.options,r=t(this.state.status);if(!s.isValidElement(r))throw new Error("Content must be a valid react element");return s.createElement(l(),{text:String(n),onCopy:this.handleCopy,options:i},r)}}]),n}(s.Component);d.INITIAL_STATUS=c.T.Pending},95487:function(e,t,n){"use strict";var i;n.d(t,{T:function(){return i}}),function(e){e.Pending="pending",e.Success="success",e.Error="error"}(i||(i={}))},47206:function(e,t,n){"use strict";n.d(t,{f:function(){return l}});var i=n(4519),r=n(67119),o=n(20970),a=n(88216),s=n(34740),u=(0,r.Ge)("dialog-btn-close");function l(e){var t=e.onClose;return i.createElement("div",{className:u()},i.createElement(o.z,{view:"flat",size:"l",className:u("btn"),onClick:function(e){return t(e,{isOutsideClick:!1})}},i.createElement(a.J,{data:s.a,size:12})))}},650:function(e,t,n){"use strict";n.d(t,{V:function(){return v}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(4519),u=n(67119),l=n(36296),c=n(38887),d=n(6423),h=n(20195),f=n(19806),p=n(47206),g=(0,u.Ge)("dialog"),v=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments)).handleCloseButtonClick=function(t){(0,e.props.onClose)(t.nativeEvent,"closeButtonClick")},e}return(0,r.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.container,n=e.children,i=e.open,r=e.disableBodyScrollLock,o=e.disableEscapeKeyDown,a=e.disableOutsideClick,u=e.keepMounted,c=e.size,d=e.className,h=e.modalClassName,f=e.hasCloseButton,v=e.onEscapeKeyDown,m=e.onEnterKeyDown,_=e.onOutsideClick,y=e.onClose,b=e["aria-label"],w=e["aria-labelledby"],C=e.qa;return s.createElement(l.u,{open:i,disableBodyScrollLock:r,disableEscapeKeyDown:o,disableOutsideClick:a,keepMounted:u,onEscapeKeyDown:v,onEnterKeyDown:m,onOutsideClick:_,onClose:y,className:g("modal",h),"aria-label":b,"aria-labelledby":w,container:t,qa:C},s.createElement("div",{className:g({size:c,"has-close":f},d)},n,f&&s.createElement(p.f,{onClose:this.handleCloseButtonClick})))}}]),n}(s.Component);v.defaultProps={disableBodyScrollLock:!1,disableEscapeKeyDown:!1,disableOutsideClick:!1,keepMounted:!1,hasCloseButton:!0},v.Footer=c.c,v.Header=d.f,v.Body=h.a,v.Divider=f.E},20195:function(e,t,n){"use strict";n.d(t,{a:function(){return o}});var i=n(4519),r=(0,n(67119).Ge)("dialog-body");function o(e){var t=e.className;return i.createElement("div",{className:r(null,t)},e.children)}},19806:function(e,t,n){"use strict";n.d(t,{E:function(){return o}});var i=n(4519),r=(0,n(67119).Ge)("dialog-divider");function o(e){var t=e.className;return i.createElement("div",{className:r(null,t)})}},38887:function(e,t,n){"use strict";n.d(t,{c:function(){return h}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(4519),u=n(67119),l=n(20970),c=n(22920),d=(0,u.Ge)("dialog-footer");var h=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments)).errorTooltipRef=s.createRef(),e.handleKeyDown=function(t){"Enter"===t.key&&(t.preventDefault(),e.props.onClickButtonApply&&e.props.onClickButtonApply(t))},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){this.props.listenKeyEnter&&this.attachKeyDownListeners()}},{key:"componentDidUpdate",value:function(e){!this.props.listenKeyEnter&&e.listenKeyEnter&&this.detachKeyDownListeners(),this.props.listenKeyEnter&&!e.listenKeyEnter&&this.attachKeyDownListeners()}},{key:"componentWillUnmount",value:function(){this.detachKeyDownListeners()}},{key:"render",value:function(){var e=this.props,t=e.onClickButtonCancel,n=e.onClickButtonApply,i=e.loading,r=e.textButtonCancel,o=e.textButtonApply,a=e.propsButtonCancel,u=e.propsButtonApply,h=e.preset,f=e.children,p=e.errorText,g=e.showError,v=e.renderButtons,m=s.createElement("div",{className:d("button",{action:"cancel"})},s.createElement(l.z,Object.assign({view:o?"flat":"normal",size:"l",width:"max",onClick:t,disabled:i},a),r)),_=s.createElement("div",{className:d("button",{action:"apply"})},s.createElement(l.z,Object.assign({ref:this.errorTooltipRef,type:"submit",view:"action",size:"l",width:"max",onClick:n,loading:i,className:d("button-apply",{preset:h})},u),o),p&&s.createElement(c.G,{open:g,anchorRef:this.errorTooltipRef,placement:["bottom","top"],hasArrow:!0},s.createElement("div",{className:d("error")},p)));return s.createElement("div",{className:d()},s.createElement("div",{className:d("children")},f),s.createElement("div",{className:d("bts-wrapper")},v?v(_,m):s.createElement(s.Fragment,null,r&&m,o&&_)))}},{key:"attachKeyDownListeners",value:function(){var e=this;setTimeout((function(){window.addEventListener("keydown",e.handleKeyDown)}),0)}},{key:"detachKeyDownListeners",value:function(){window.removeEventListener("keydown",this.handleKeyDown)}}]),n}(s.Component);h.defaultProps={preset:"default",showError:!1,listenKeyEnter:!1}},6423:function(e,t,n){"use strict";n.d(t,{f:function(){return o}});var i=n(4519),r=(0,n(67119).Ge)("dialog-header");function o(e){var t=e.caption,n=void 0===t?"":t,o=e.insertBefore,a=e.insertAfter,s=e.className,u=e.id;return i.createElement("div",{className:r(null,s)},o,i.createElement("div",{className:r("caption"),id:u},n),a)}},60901:function(e,t,n){"use strict";n.d(t,{h:function(){return b}});var i=n(29439),r=n(4519),o=n(67119),a=n(20970),s=n(88216),u=n(61278);var l=(0,r.createContext)({toggle:function(){},data:void 0});l.displayName="DropdownMenu.Context";var c=n(15791),d=n(22920),h=n(90047),f=n(93433),p=n(37762);var g=function(e){var t=e.text,n=e.children,i=e.action,o=(0,c._T)(e,["text","children","action"]),a=(0,r.useContext)(l),s=a.toggle,u=a.data,d=(0,r.useCallback)((function(e){null===i||void 0===i||i(e,u),s(!1)}),[i,u,s]);return r.createElement(h.v.Item,Object.assign({onClick:d},o),t||n)};g.displayName="DropdownMenu.Item";var v=(0,o.Ge)("dropdown-menu"),m={text:"",action:function(){}},_=function(e){var t=e.items,n=e.open,i=e.anchorRef,o=e.onClose,a=e.popupClassName,s=e.placement,u=e.size,l=e.menuProps,_=e.children,y=(0,r.useMemo)((function(){return _||r.createElement(h.v,Object.assign({className:v("menu"),size:u},l),function(e,t){var n,i=[],r=!1,o=(0,p.Z)(e);try{for(o.s();!(n=o.n()).done;){var a=n.value;if(Array.isArray(a)){var s=a.filter((function(e){return!e.hidden}));if(0===s.length)continue;0!==i.length&&i.push(t),i.push.apply(i,(0,f.Z)(s)),r=!0}else{if(a.hidden)continue;r&&i.push(t),i.push(a),r=!1}}}catch(u){o.e(u)}finally{o.f()}return i}(t,m).map((function(e,t){var n=e.className,i=(0,c._T)(e,["className"]);return r.createElement(g,Object.assign({key:t,className:v("menu-item",{separator:e===m},n)},i))})))}),[_,u,l,t]);return r.createElement(d.G,{open:n,anchorRef:i,className:a,placement:s,onClose:o},y)},y=(0,o.Ge)("dropdown-menu"),b=Object.assign((function(e){var t=e.items,n=void 0===t?[]:t,o=e.size,c=void 0===o?"m":o,d=e.icon,h=void 0===d?r.createElement(s.J,{data:u.Y}):d,f=e.onMenuToggle,p=e.hideOnScroll,g=void 0===p||p,v=e.data,m=e.disabled,b=e.switcher,w=e.switcherWrapperClassName,C=e.defaultSwitcherProps,k=e.defaultSwitcherClassName,S=e.onSwitcherClick,x=e.menuProps,L=e.popupClassName,E=e.popupPlacement,N=e.children,D=function(e,t){var n=(0,r.useState)(e),o=(0,i.Z)(n,2),a=o[0],s=o[1];return[a,(0,r.useCallback)((function(e){null===t||void 0===t||t(),s(e)}),[t])]}(!1,f),M=(0,i.Z)(D,2),T=M[0],O=M[1],I=(0,r.useRef)(null),A=(0,r.useCallback)((function(){O(!1)}),[O]),R=(0,r.useCallback)((function(e){e.target.contains(I.current)&&O(!1)}),[O]);(0,r.useEffect)((function(){if(T&&g)return document.addEventListener("scroll",R,!0),function(){document.removeEventListener("scroll",R,!0)}}),[T,g,R]),(0,r.useEffect)((function(){m&&T&&O(!1)}),[m,T,O]);var P=(0,r.useMemo)((function(){return{toggle:function(e){O((function(t){return"boolean"===typeof e?e:!t}))},data:v}}),[v,O]);return r.createElement(l.Provider,{value:P},r.createElement("div",{ref:I,className:y("switcher-wrapper",w),onClick:function(e){m||(null===S||void 0===S||S(e),O((function(e){return!e})))}},b||r.createElement(a.z,Object.assign({view:"flat",size:c},C,{className:y("switcher-button",k),disabled:m}),h)),r.createElement(_,{popupClassName:L,items:n,open:T,size:c,placement:E,menuProps:x,anchorRef:I,onClose:A},N))}),{Item:g})},54985:function(e,t,n){"use strict";n.d(t,{J:function(){return c}});var i=n(4519),r=n(67119),o=n(33109),a=n(88216),s=n(93453);function u(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"none"},s.i,e),i.createElement("path",{d:"M15.5 8C15.5 12.1421 12.1421 15.5 8 15.5C3.85786 15.5 0.5 12.1421 0.5 8C0.5 3.85786 3.85786 0.5 8 0.5C12.1421 0.5 15.5 3.85786 15.5 8Z",stroke:"currentColor",strokeOpacity:"0.15"}),i.createElement("path",{opacity:"0.5",fillRule:"evenodd",clipRule:"evenodd",d:"M8.46436 9.92432H7.09473C7.09115 9.72738 7.08936 9.60742 7.08936 9.56445C7.08936 9.12044 7.16276 8.75521 7.30957 8.46875C7.45638 8.18229 7.75 7.86003 8.19043 7.50195C8.63086 7.14388 8.89404 6.90934 8.97998 6.79834C9.11247 6.62288 9.17871 6.42953 9.17871 6.21826C9.17871 5.92464 9.06144 5.6731 8.8269 5.46362C8.59237 5.25415 8.27637 5.14941 7.87891 5.14941C7.49577 5.14941 7.17529 5.25863 6.91748 5.47705C6.65967 5.69548 6.48242 6.02848 6.38574 6.47607L5 6.3042C5.03939 5.66325 5.31242 5.11898 5.81909 4.67139C6.32577 4.22379 6.99088 4 7.81445 4C8.68099 4 9.37028 4.22648 9.88232 4.67944C10.3944 5.13241 10.6504 5.65966 10.6504 6.26123C10.6504 6.59424 10.5564 6.90934 10.3684 7.20654C10.1804 7.50375 9.77849 7.90836 9.1626 8.42041C8.84391 8.68539 8.64608 8.89844 8.56909 9.05957C8.49211 9.2207 8.45719 9.50895 8.46436 9.92432ZM7.09473 11.9546V10.4453H8.604V11.9546H7.09473Z",fill:"currentColor"}))}var l=(0,r.Ge)("help-popover");function c(e){return i.createElement(o.J,Object.assign({offset:{left:4}},e,{className:l(null,e.className)}),i.createElement(a.J,{data:u,size:16}))}},88216:function(e,t,n){"use strict";n.d(t,{J:function(){return l}});var i=n(4519),r=n(67119),o=n(93453);function a(e){return"object"===typeof e}function s(e){return"string"===typeof e}var u=(0,r.Ge)("icon");function l(e){var t,n,r,c=e.data,d=e.width,h=e.height,f=e.size,p=e.className,g=e.onClick,v=e.fill,m=void 0===v?"currentColor":v,_=e.stroke,y=void 0===_?"none":_,b=e.qa;if(f&&(t=f,n=f),d&&(t=d),h&&(n=h),a(c))r=c.viewBox;else if(s(c))r=function(e){var t=e.match(/viewBox=(["']?)([\d\s,-]+)\1/);return t?t[2]:void 0}(c);else if(function(e){return"object"===typeof e&&"defaultProps"in e}(c))r=c.defaultProps.viewBox;else if(function(e){return"function"===typeof e&&(!e.prototype||!e.prototype.render)}(c)){var w=c({});w&&(r=w.props.viewBox)}if(r&&(!t||!n)){var C=r.split(/\s+|\s*,\s*/);t||(t=C[2]),n||(n=C[3])}var k=Object.assign({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:t,height:n,className:u(null,p),onClick:g,fill:m,stroke:y,"data-qa":b},o.i);if(s(c)){var S=function(e){return e.replace(/(width|height)=(["']?)\d+\2/g,"")}(c);return i.createElement("svg",Object.assign({},k,{dangerouslySetInnerHTML:{__html:S}}))}if(a(c))return i.createElement("svg",Object.assign({},k,{viewBox:r}),i.createElement("use",{xlinkHref:l.prefix+(c.url||"#".concat(c.id))}));var x=c;return x.defaultProps&&(x.defaultProps.width=x.defaultProps.height=void 0),i.createElement("svg",Object.assign({},k),i.createElement(x,{width:void 0,height:void 0}))}l.displayName="Icon",l.prefix=""},79403:function(e,t,n){"use strict";n.d(t,{_:function(){return p}});var i=n(4519),r=n(67119),o=n(95487),a=n(83909),s=n(84087),u=n(88216),l=n(34740),c=n(20970),d=(0,r.Ge)("label"),h={s:{copyIconSize:12,closeIconSize:8},m:{copyIconSize:16,closeIconSize:10}},f={pin:"brick-round",className:d("addon",{side:"right",interactive:!0})},p=i.forwardRef((function(e,t){var n=e.type,r=void 0===n?"default":n,p=e.theme,g=void 0===p?"normal":p,v=e.size,m=void 0===v?"s":v,_=e.style,y=void 0===_?"default":_,b=e.icon,w=e.children,C=e.onClose,k=e.className,S=e.disabled,x=e.copyText,L=e.closeButtonLabel,E=e.copyButtonLabel,N=e.interactive,D=void 0!==N&&N,M=e.onCopy,T=e.onClick,O=Boolean(""!==w&&i.Children.count(w)>0),I="default"===r,A="close"===r&&O,R="copy"===r&&O,P=Boolean(T)&&I,Z=Boolean(R&&x),F=P||Z||D,j=h[m],H=j.copyIconSize,B=j.closeIconSize,z=b&&i.createElement("div",{className:d("addon",{side:O?"left":void 0})},b),W=O&&i.createElement("div",{className:d("text")},w),V=function(e){var n;return R?n=i.createElement(c.z,Object.assign({size:m,extraProps:{"aria-label":E||void 0}},f),i.createElement(c.z.Icon,null,i.createElement(s.K,{status:e||o.T.Pending,size:H}))):A&&(n=i.createElement(c.z,Object.assign({onClick:C,size:m,extraProps:{"aria-label":L||void 0}},f),i.createElement(u.J,{size:B,data:l.a}))),i.createElement("div",{ref:t,onClick:P?T:void 0,className:d({theme:g,size:m,style:y,type:r,"is-interactive":F,"has-right-addon":Boolean(n),"has-left-addon":Boolean(z),disabled:S},k)},z,W,n)};return Z&&x?i.createElement(a.h,{text:x,onCopy:M,timeout:1e3},(function(e){return V(e)})):V()}))},8762:function(e,t,n){"use strict";n.d(t,{r:function(){return s}});var i=n(4519),r=n(67119),o=n(63230),a=(0,r.Ge)("link"),s=i.forwardRef((function(e,t){var n=e.view,r=void 0===n?"normal":n,s=e.href,u=e.target,l=e.rel,c=e.title,d=e.children,h=e.extraProps,f=e.onClick,p=e.onFocus,g=e.onBlur,v=e.id,m=e.style,_=e.className,y=e.qa,b={title:c,children:d,onClick:f,onClickCapture:i.useCallback((function(e){o.P.publish({componentId:"Link",eventId:"click",domEvent:e})}),[]),onFocus:p,onBlur:g,id:v,style:m,className:a({view:r},_),"data-qa":y};if("string"===typeof s){var w="_blank"!==u||l?l:"noopener noreferrer";return i.createElement("a",Object.assign({},h,b,{ref:t,href:s,target:u,rel:w}))}return i.createElement("span",Object.assign({},h,b,{ref:t,tabIndex:0}))}))},99507:function(e,t,n){"use strict";n.d(t,{a:function(){return Ge},A:function(){return qe}});var i=n(29439),r=n(15671),o=n(43144),a=n(60136),s=n(29388),u=n(4519),l=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},c=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},h=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t},f=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(u){r=!0,o=u}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},p=void 0;p="undefined"!==typeof window?window:"undefined"!==typeof self?self:n.g;var g=null,v=null,m=p.clearTimeout,_=p.setTimeout,y=p.cancelAnimationFrame||p.mozCancelAnimationFrame||p.webkitCancelAnimationFrame,b=p.requestAnimationFrame||p.mozRequestAnimationFrame||p.webkitRequestAnimationFrame;function w(e){var t=void 0,n=void 0,i=void 0,r=void 0,o=void 0,a=void 0,s=void 0,u="undefined"!==typeof document&&document.attachEvent;if(!u){a=function(e){var t=e.__resizeTriggers__,n=t.firstElementChild,i=t.lastElementChild,r=n.firstElementChild;i.scrollLeft=i.scrollWidth,i.scrollTop=i.scrollHeight,r.style.width=n.offsetWidth+1+"px",r.style.height=n.offsetHeight+1+"px",n.scrollLeft=n.scrollWidth,n.scrollTop=n.scrollHeight},o=function(e){return e.offsetWidth!==e.__resizeLast__.width||e.offsetHeight!==e.__resizeLast__.height},s=function(e){if(!(e.target.className&&"function"===typeof e.target.className.indexOf&&e.target.className.indexOf("contract-trigger")<0&&e.target.className.indexOf("expand-trigger")<0)){var t=this;a(this),this.__resizeRAF__&&g(this.__resizeRAF__),this.__resizeRAF__=v((function(){o(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach((function(n){n.call(t,e)})))}))}};var l=!1,c="";i="animationstart";var d="Webkit Moz O ms".split(" "),h="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),f=document.createElement("fakeelement");if(void 0!==f.style.animationName&&(l=!0),!1===l)for(var m=0;m<d.length;m++)if(void 0!==f.style[d[m]+"AnimationName"]){c="-"+d[m].toLowerCase()+"-",i=h[m],l=!0;break}t="@"+c+"keyframes "+(n="resizeanim")+" { from { opacity: 0; } to { opacity: 0; } } ",r=c+"animation: 1ms "+n+"; "}return{addResizeListener:function(o,l){if(u)o.attachEvent("onresize",l);else{if(!o.__resizeTriggers__){var c=o.ownerDocument,d=p.getComputedStyle(o);d&&"static"===d.position&&(o.style.position="relative"),function(n){if(!n.getElementById("detectElementResize")){var i=(t||"")+".resize-triggers { "+(r||"")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',o=n.head||n.getElementsByTagName("head")[0],a=n.createElement("style");a.id="detectElementResize",a.type="text/css",null!=e&&a.setAttribute("nonce",e),a.styleSheet?a.styleSheet.cssText=i:a.appendChild(n.createTextNode(i)),o.appendChild(a)}}(c),o.__resizeLast__={},o.__resizeListeners__=[],(o.__resizeTriggers__=c.createElement("div")).className="resize-triggers";var h=c.createElement("div");h.className="expand-trigger",h.appendChild(c.createElement("div"));var f=c.createElement("div");f.className="contract-trigger",o.__resizeTriggers__.appendChild(h),o.__resizeTriggers__.appendChild(f),o.appendChild(o.__resizeTriggers__),a(o),o.addEventListener("scroll",s,!0),i&&(o.__resizeTriggers__.__animationListener__=function(e){e.animationName===n&&a(o)},o.__resizeTriggers__.addEventListener(i,o.__resizeTriggers__.__animationListener__))}o.__resizeListeners__.push(l)}},removeResizeListener:function(e,t){if(u)e.detachEvent("onresize",t);else if(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),!e.__resizeListeners__.length){e.removeEventListener("scroll",s,!0),e.__resizeTriggers__.__animationListener__&&(e.__resizeTriggers__.removeEventListener(i,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(n){}}}}}null==y||null==b?(g=m,v=function(e){return _(e,20)}):(g=function(e){var t=f(e,2),n=t[0],i=t[1];y(n),m(i)},v=function(e){var t=b((function(){m(n),e()})),n=_((function(){y(t),e()}),20);return[t,n]});var C=function(e){function t(){var e,n,i;l(this,t);for(var r=arguments.length,o=Array(r),a=0;a<r;a++)o[a]=arguments[a];return n=i=h(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(o))),i.state={height:i.props.defaultHeight||0,width:i.props.defaultWidth||0},i._onResize=function(){var e=i.props,t=e.disableHeight,n=e.disableWidth,r=e.onResize;if(i._parentNode){var o=i._parentNode.offsetHeight||0,a=i._parentNode.offsetWidth||0,s=window.getComputedStyle(i._parentNode)||{},u=parseInt(s.paddingLeft,10)||0,l=parseInt(s.paddingRight,10)||0,c=parseInt(s.paddingTop,10)||0,d=parseInt(s.paddingBottom,10)||0,h=o-c-d,f=a-u-l;(!t&&i.state.height!==h||!n&&i.state.width!==f)&&(i.setState({height:o-c-d,width:a-u-l}),r({height:o,width:a}))}},i._setRef=function(e){i._autoSizer=e},h(i,n)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),c(t,[{key:"componentDidMount",value:function(){var e=this.props.nonce;this._autoSizer&&this._autoSizer.parentNode&&this._autoSizer.parentNode.ownerDocument&&this._autoSizer.parentNode.ownerDocument.defaultView&&this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement&&(this._parentNode=this._autoSizer.parentNode,this._detectElementResize=w(e),this._detectElementResize.addResizeListener(this._parentNode,this._onResize),this._onResize())}},{key:"componentWillUnmount",value:function(){this._detectElementResize&&this._parentNode&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize)}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.className,i=e.disableHeight,r=e.disableWidth,o=e.style,a=this.state,s=a.height,l=a.width,c={overflow:"visible"},h={},f=!1;return i||(0===s&&(f=!0),c.height=0,h.height=s),r||(0===l&&(f=!0),c.width=0,h.width=l),(0,u.createElement)("div",{className:n,ref:this._setRef,style:d({},c,o)},!f&&t(h))}}]),t}(u.PureComponent);C.defaultProps={onResize:function(){},disableHeight:!1,disableWidth:!1,style:{}};var k=C,S=n(87462),x=n(94578),L=n(97326),E=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function N(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(i=e[n],r=t[n],!(i===r||E(i)&&E(r)))return!1;var i,r;return!0}var D=function(e,t){var n;void 0===t&&(t=N);var i,r=[],o=!1;return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];return o&&n===this&&t(a,r)||(i=e.apply(this,a),o=!0,n=this,r=a),i}},M="object"===typeof performance&&"function"===typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function T(e){cancelAnimationFrame(e.id)}function O(e,t){var n=M();var i={id:requestAnimationFrame((function r(){M()-n>=t?e.call(null):i.id=requestAnimationFrame(r)}))};return i}var I=null;function A(e){if(void 0===e&&(e=!1),null===I||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var i=document.createElement("div"),r=i.style;return r.width="100px",r.height="100px",t.appendChild(i),document.body.appendChild(t),t.scrollLeft>0?I="positive-descending":(t.scrollLeft=1,I=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),I}return I}var R=150,P=function(e,t){return e};function Z(e){var t,n,i=e.getItemOffset,r=e.getEstimatedTotalSize,o=e.getItemSize,a=e.getOffsetForIndexAndAlignment,s=e.getStartIndexForOffset,l=e.getStopIndexForStartIndex,c=e.initInstanceProps,d=e.shouldResetStyleCacheOnItemSizeChange,h=e.validateProps;return n=t=function(e){function t(t){var n;return(n=e.call(this,t)||this)._instanceProps=c(n.props,(0,L.Z)((0,L.Z)(n))),n._outerRef=void 0,n._resetIsScrollingTimeoutId=null,n.state={instance:(0,L.Z)((0,L.Z)(n)),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"===typeof n.props.initialScrollOffset?n.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},n._callOnItemsRendered=void 0,n._callOnItemsRendered=D((function(e,t,i,r){return n.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:i,visibleStopIndex:r})})),n._callOnScroll=void 0,n._callOnScroll=D((function(e,t,i){return n.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:i})})),n._getItemStyle=void 0,n._getItemStyle=function(e){var t,r=n.props,a=r.direction,s=r.itemSize,u=r.layout,l=n._getItemStyleCache(d&&s,d&&u,d&&a);if(l.hasOwnProperty(e))t=l[e];else{var c=i(n.props,e,n._instanceProps),h=o(n.props,e,n._instanceProps),f="horizontal"===a||"horizontal"===u,p="rtl"===a,g=f?c:0;l[e]=t={position:"absolute",left:p?void 0:g,right:p?g:void 0,top:f?0:c,height:f?"100%":h,width:f?h:"100%"}}return t},n._getItemStyleCache=void 0,n._getItemStyleCache=D((function(e,t,n){return{}})),n._onScrollHorizontal=function(e){var t=e.currentTarget,i=t.clientWidth,r=t.scrollLeft,o=t.scrollWidth;n.setState((function(e){if(e.scrollOffset===r)return null;var t=n.props.direction,a=r;if("rtl"===t)switch(A()){case"negative":a=-r;break;case"positive-descending":a=o-i-r}return a=Math.max(0,Math.min(a,o-i)),{isScrolling:!0,scrollDirection:e.scrollOffset<r?"forward":"backward",scrollOffset:a,scrollUpdateWasRequested:!1}}),n._resetIsScrollingDebounced)},n._onScrollVertical=function(e){var t=e.currentTarget,i=t.clientHeight,r=t.scrollHeight,o=t.scrollTop;n.setState((function(e){if(e.scrollOffset===o)return null;var t=Math.max(0,Math.min(o,r-i));return{isScrolling:!0,scrollDirection:e.scrollOffset<t?"forward":"backward",scrollOffset:t,scrollUpdateWasRequested:!1}}),n._resetIsScrollingDebounced)},n._outerRefSetter=function(e){var t=n.props.outerRef;n._outerRef=e,"function"===typeof t?t(e):null!=t&&"object"===typeof t&&t.hasOwnProperty("current")&&(t.current=e)},n._resetIsScrollingDebounced=function(){null!==n._resetIsScrollingTimeoutId&&T(n._resetIsScrollingTimeoutId),n._resetIsScrollingTimeoutId=O(n._resetIsScrolling,R)},n._resetIsScrolling=function(){n._resetIsScrollingTimeoutId=null,n.setState({isScrolling:!1},(function(){n._getItemStyleCache(-1,null)}))},n}(0,x.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return F(e,t),h(e),null};var n=t.prototype;return n.scrollTo=function(e){e=Math.max(0,e),this.setState((function(t){return t.scrollOffset===e?null:{scrollDirection:t.scrollOffset<e?"forward":"backward",scrollOffset:e,scrollUpdateWasRequested:!0}}),this._resetIsScrollingDebounced)},n.scrollToItem=function(e,t){void 0===t&&(t="auto");var n=this.props.itemCount,i=this.state.scrollOffset;e=Math.max(0,Math.min(e,n-1)),this.scrollTo(a(this.props,e,t,i,this._instanceProps))},n.componentDidMount=function(){var e=this.props,t=e.direction,n=e.initialScrollOffset,i=e.layout;if("number"===typeof n&&null!=this._outerRef){var r=this._outerRef;"horizontal"===t||"horizontal"===i?r.scrollLeft=n:r.scrollTop=n}this._callPropsCallbacks()},n.componentDidUpdate=function(){var e=this.props,t=e.direction,n=e.layout,i=this.state,r=i.scrollOffset;if(i.scrollUpdateWasRequested&&null!=this._outerRef){var o=this._outerRef;if("horizontal"===t||"horizontal"===n)if("rtl"===t)switch(A()){case"negative":o.scrollLeft=-r;break;case"positive-ascending":o.scrollLeft=r;break;default:var a=o.clientWidth,s=o.scrollWidth;o.scrollLeft=s-a-r}else o.scrollLeft=r;else o.scrollTop=r}this._callPropsCallbacks()},n.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&T(this._resetIsScrollingTimeoutId)},n.render=function(){var e=this.props,t=e.children,n=e.className,i=e.direction,o=e.height,a=e.innerRef,s=e.innerElementType,l=e.innerTagName,c=e.itemCount,d=e.itemData,h=e.itemKey,f=void 0===h?P:h,p=e.layout,g=e.outerElementType,v=e.outerTagName,m=e.style,_=e.useIsScrolling,y=e.width,b=this.state.isScrolling,w="horizontal"===i||"horizontal"===p,C=w?this._onScrollHorizontal:this._onScrollVertical,k=this._getRangeToRender(),x=k[0],L=k[1],E=[];if(c>0)for(var N=x;N<=L;N++)E.push((0,u.createElement)(t,{data:d,key:f(N,d),index:N,isScrolling:_?b:void 0,style:this._getItemStyle(N)}));var D=r(this.props,this._instanceProps);return(0,u.createElement)(g||v||"div",{className:n,onScroll:C,ref:this._outerRefSetter,style:(0,S.Z)({position:"relative",height:o,width:y,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:i},m)},(0,u.createElement)(s||l||"div",{children:E,ref:a,style:{height:w?"100%":D,pointerEvents:b?"none":void 0,width:w?D:"100%"}}))},n._callPropsCallbacks=function(){if("function"===typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],n=e[1],i=e[2],r=e[3];this._callOnItemsRendered(t,n,i,r)}if("function"===typeof this.props.onScroll){var o=this.state,a=o.scrollDirection,s=o.scrollOffset,u=o.scrollUpdateWasRequested;this._callOnScroll(a,s,u)}},n._getRangeToRender=function(){var e=this.props,t=e.itemCount,n=e.overscanCount,i=this.state,r=i.isScrolling,o=i.scrollDirection,a=i.scrollOffset;if(0===t)return[0,0,0,0];var u=s(this.props,a,this._instanceProps),c=l(this.props,u,a,this._instanceProps),d=r&&"backward"!==o?1:Math.max(1,n),h=r&&"forward"!==o?1:Math.max(1,n);return[Math.max(0,u-d),Math.max(0,Math.min(t-1,c+h)),u,c]},t}(u.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},n}var F=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},j=function(e,t,n){var i=e.itemSize,r=n.itemMetadataMap,o=n.lastMeasuredIndex;if(t>o){var a=0;if(o>=0){var s=r[o];a=s.offset+s.size}for(var u=o+1;u<=t;u++){var l=i(u);r[u]={offset:a,size:l},a+=l}n.lastMeasuredIndex=t}return r[t]},H=function(e,t,n,i,r){for(;i<=n;){var o=i+Math.floor((n-i)/2),a=j(e,o,t).offset;if(a===r)return o;a<r?i=o+1:a>r&&(n=o-1)}return i>0?i-1:0},B=function(e,t,n,i){for(var r=e.itemCount,o=1;n<r&&j(e,n,t).offset<i;)n+=o,o*=2;return H(e,t,Math.min(n,r-1),Math.floor(n/2),i)},z=function(e,t){var n=e.itemCount,i=t.itemMetadataMap,r=t.estimatedItemSize,o=t.lastMeasuredIndex,a=0;if(o>=n&&(o=n-1),o>=0){var s=i[o];a=s.offset+s.size}return a+(n-o-1)*r},W=Z({getItemOffset:function(e,t,n){return j(e,t,n).offset},getItemSize:function(e,t,n){return n.itemMetadataMap[t].size},getEstimatedTotalSize:z,getOffsetForIndexAndAlignment:function(e,t,n,i,r){var o=e.direction,a=e.height,s=e.layout,u=e.width,l="horizontal"===o||"horizontal"===s?u:a,c=j(e,t,r),d=z(e,r),h=Math.max(0,Math.min(d-l,c.offset)),f=Math.max(0,c.offset-l+c.size);switch("smart"===n&&(n=i>=f-l&&i<=h+l?"auto":"center"),n){case"start":return h;case"end":return f;case"center":return Math.round(f+(h-f)/2);default:return i>=f&&i<=h?i:i<f?f:h}},getStartIndexForOffset:function(e,t,n){return function(e,t,n){var i=t.itemMetadataMap,r=t.lastMeasuredIndex;return(r>0?i[r].offset:0)>=n?H(e,t,r,0,n):B(e,t,Math.max(0,r),n)}(e,n,t)},getStopIndexForStartIndex:function(e,t,n,i){for(var r=e.direction,o=e.height,a=e.itemCount,s=e.layout,u=e.width,l="horizontal"===r||"horizontal"===s?u:o,c=j(e,t,i),d=n+l,h=c.offset+c.size,f=t;f<a-1&&h<d;)f++,h+=j(e,f,i).size;return f},initInstanceProps:function(e,t){var n={itemMetadataMap:{},estimatedItemSize:e.estimatedItemSize||50,lastMeasuredIndex:-1};return t.resetAfterIndex=function(e,i){void 0===i&&(i=!0),n.lastMeasuredIndex=Math.min(n.lastMeasuredIndex,e-1),t._getItemStyleCache(-1),i&&t.forceUpdate()},n},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){e.itemSize}});var V=n(4942);function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},i=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&i.push.apply(i,Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach((function(t){(0,V.Z)(e,t,n[t])}))}return e}var U=n(6215),K=n(61120),q=n(84453),G=n(15731),$=n.n(G),Q=n(93433),X=n(91386),J=n.n(X),ee=function(){function e(){(0,r.Z)(this,e),(0,V.Z)(this,"refs",{})}return(0,o.Z)(e,[{key:"add",value:function(e,t){this.refs[e]||(this.refs[e]=[]),this.refs[e].push(t)}},{key:"remove",value:function(e,t){var n=this.getIndex(e,t);-1!==n&&this.refs[e].splice(n,1)}},{key:"isActive",value:function(){return this.active}},{key:"getActive",value:function(){var e=this;return this.refs[this.active.collection].find((function(t){return t.node.sortableInfo.index==e.active.index}))}},{key:"getIndex",value:function(e,t){return this.refs[e].indexOf(t)}},{key:"getOrderedRefs",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.active.collection;return this.refs[e].sort(te)}}]),e}();function te(e,t){return e.node.sortableInfo.index-t.node.sortableInfo.index}function ne(e,t){return Object.keys(e).reduce((function(n,i){return-1===t.indexOf(i)&&(n[i]=e[i]),n}),{})}var ie={end:["touchend","touchcancel","mouseup"],move:["touchmove","mousemove"],start:["touchstart","mousedown"]},re=function(){if("undefined"===typeof window||"undefined"===typeof document)return"";var e=window.getComputedStyle(document.documentElement,"")||["-moz-hidden-iframe"],t=(Array.prototype.slice.call(e).join("").match(/-(moz|webkit|ms)-/)||""===e.OLink&&["","o"])[1];return"ms"===t?"ms":t&&t.length?t[0].toUpperCase()+t.substr(1):""}();function oe(e,t){Object.keys(t).forEach((function(n){e.style[n]=t[n]}))}function ae(e,t){e.style["".concat(re,"Transform")]=null==t?"":"translate3d(".concat(t.x,"px,").concat(t.y,"px,0)")}function se(e,t){e.style["".concat(re,"TransitionDuration")]=null==t?"":"".concat(t,"ms")}function ue(e,t){for(;e;){if(t(e))return e;e=e.parentNode}return null}function le(e,t,n){return Math.max(e,Math.min(n,t))}function ce(e){return"px"===e.substr(-2)?parseFloat(e):0}function de(e,t){var n=t.displayName||t.name;return n?"".concat(e,"(").concat(n,")"):e}function he(e,t){var n=e.getBoundingClientRect();return{top:n.top+t.top,left:n.left+t.left}}function fe(e){return e.touches&&e.touches.length?{x:e.touches[0].pageX,y:e.touches[0].pageY}:e.changedTouches&&e.changedTouches.length?{x:e.changedTouches[0].pageX,y:e.changedTouches[0].pageY}:{x:e.pageX,y:e.pageY}}function pe(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{left:0,top:0};if(e){var i={left:n.left+e.offsetLeft,top:n.top+e.offsetTop};return e.parentNode===t?i:pe(e.parentNode,t,i)}}function ge(e){var t=e.lockOffset,n=e.width,i=e.height,r=t,o=t,a="px";if("string"===typeof t){var s=/^[+-]?\d*(?:\.\d*)?(px|%)$/.exec(t);$()(null!==s,'lockOffset value should be a number or a string of a number followed by "px" or "%". Given %s',t),r=parseFloat(t),o=parseFloat(t),a=s[1]}return $()(isFinite(r)&&isFinite(o),"lockOffset value should be a finite. Given %s",t),"%"===a&&(r=r*n/100,o=o*i/100),{x:r,y:o}}function ve(e){return e instanceof HTMLElement?function(e){var t=window.getComputedStyle(e),n=/(auto|scroll)/;return["overflow","overflowX","overflowY"].find((function(e){return n.test(t[e])}))}(e)?e:ve(e.parentNode):null}var me=27,_e=32,ye=37,be=38,we=39,Ce=40,ke={Anchor:"A",Button:"BUTTON",Canvas:"CANVAS",Input:"INPUT",Option:"OPTION",Textarea:"TEXTAREA",Select:"SELECT"};function Se(e){return null!=e.sortableHandle}var xe=function(){function e(t,n){(0,r.Z)(this,e),this.container=t,this.onScrollCallback=n}return(0,o.Z)(e,[{key:"clear",value:function(){null!=this.interval&&(clearInterval(this.interval),this.interval=null)}},{key:"update",value:function(e){var t=this,n=e.translate,i=e.minTranslate,r=e.maxTranslate,o=e.width,a=e.height,s={x:0,y:0},u={x:1,y:1},l=10,c=10,d=this.container,h=d.scrollTop,f=d.scrollLeft,p=d.scrollHeight,g=d.scrollWidth,v=0===h,m=p-h-d.clientHeight===0,_=0===f,y=g-f-d.clientWidth===0;n.y>=r.y-a/2&&!m?(s.y=1,u.y=c*Math.abs((r.y-a/2-n.y)/a)):n.x>=r.x-o/2&&!y?(s.x=1,u.x=l*Math.abs((r.x-o/2-n.x)/o)):n.y<=i.y+a/2&&!v?(s.y=-1,u.y=c*Math.abs((n.y-a/2-i.y)/a)):n.x<=i.x+o/2&&!_&&(s.x=-1,u.x=l*Math.abs((n.x-o/2-i.x)/o)),this.interval&&(this.clear(),this.isAutoScrolling=!1),0===s.x&&0===s.y||(this.interval=setInterval((function(){t.isAutoScrolling=!0;var e={left:u.x*s.x,top:u.y*s.y};t.container.scrollTop+=e.top,t.container.scrollLeft+=e.left,t.onScrollCallback(e)}),5))}}]),e}();var Le={axis:J().oneOf(["x","y","xy"]),contentWindow:J().any,disableAutoscroll:J().bool,distance:J().number,getContainer:J().func,getHelperDimensions:J().func,helperClass:J().string,helperContainer:J().oneOfType([J().func,"undefined"===typeof HTMLElement?J().any:J().instanceOf(HTMLElement)]),hideSortableGhost:J().bool,keyboardSortingTransitionDuration:J().number,lockAxis:J().string,lockOffset:J().oneOfType([J().number,J().string,J().arrayOf(J().oneOfType([J().number,J().string]))]),lockToContainerEdges:J().bool,onSortEnd:J().func,onSortMove:J().func,onSortOver:J().func,onSortStart:J().func,pressDelay:J().number,pressThreshold:J().number,keyCodes:J().shape({lift:J().arrayOf(J().number),drop:J().arrayOf(J().number),cancel:J().arrayOf(J().number),up:J().arrayOf(J().number),down:J().arrayOf(J().number)}),shouldCancelStart:J().func,transitionDuration:J().number,updateBeforeSortStart:J().func,useDragHandle:J().bool,useWindowAsScrollContainer:J().bool},Ee={lift:[_e],drop:[_e],cancel:[me],up:[be,ye],down:[Ce,we]},Ne={axis:"y",disableAutoscroll:!1,distance:0,getHelperDimensions:function(e){var t=e.node;return{height:t.offsetHeight,width:t.offsetWidth}},hideSortableGhost:!0,lockOffset:"50%",lockToContainerEdges:!1,pressDelay:0,pressThreshold:5,keyCodes:Ee,shouldCancelStart:function(e){return-1!==[ke.Input,ke.Textarea,ke.Select,ke.Option,ke.Button].indexOf(e.target.tagName)||!!ue(e.target,(function(e){return"true"===e.contentEditable}))},transitionDuration:300,useWindowAsScrollContainer:!1},De=Object.keys(Le);var Me=(0,u.createContext)({manager:{}});function Te(e){var t,n,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{withRef:!1};return n=t=function(t){function n(e){var t;(0,r.Z)(this,n),t=(0,U.Z)(this,(0,K.Z)(n).call(this,e)),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"state",{}),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"handleStart",(function(e){var n=t.props,i=n.distance,r=n.shouldCancelStart;if(2!==e.button&&!r(e)){t.touched=!0,t.position=fe(e);var o=ue(e.target,(function(e){return null!=e.sortableInfo}));if(o&&o.sortableInfo&&t.nodeIsChild(o)&&!t.state.sorting){var a=t.props.useDragHandle,s=o.sortableInfo,u=s.index,l=s.collection;if(s.disabled)return;if(a&&!ue(e.target,Se))return;t.manager.active={collection:l,index:u},function(e){return e.touches&&e.touches.length||e.changedTouches&&e.changedTouches.length}(e)||e.target.tagName!==ke.Anchor||e.preventDefault(),i||(0===t.props.pressDelay?t.handlePress(e):t.pressTimer=setTimeout((function(){return t.handlePress(e)}),t.props.pressDelay))}}})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"nodeIsChild",(function(e){return e.sortableInfo.manager===t.manager})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"handleMove",(function(e){var n=t.props,i=n.distance,r=n.pressThreshold;if(!t.state.sorting&&t.touched&&!t._awaitingUpdateBeforeSortStart){var o=fe(e),a={x:t.position.x-o.x,y:t.position.y-o.y},s=Math.abs(a.x)+Math.abs(a.y);t.delta=a,i||r&&!(s>=r)?i&&s>=i&&t.manager.isActive()&&t.handlePress(e):(clearTimeout(t.cancelTimer),t.cancelTimer=setTimeout(t.cancel,0))}})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"handleEnd",(function(){t.touched=!1,t.cancel()})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"cancel",(function(){var e=t.props.distance;t.state.sorting||(e||clearTimeout(t.pressTimer),t.manager.active=null)})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"handlePress",(function(e){try{var n=t.manager.getActive(),i=function(){if(n){var i=function(){var n=h.sortableInfo.index,i=function(e){var t=window.getComputedStyle(e);return{bottom:ce(t.marginBottom),left:ce(t.marginLeft),right:ce(t.marginRight),top:ce(t.marginTop)}}(h),r=function(e){var t=window.getComputedStyle(e);return"grid"===t.display?{x:ce(t.gridColumnGap),y:ce(t.gridRowGap)}:{x:0,y:0}}(t.container),l=t.scrollContainer.getBoundingClientRect(),g=a({index:n,node:h,collection:f});if(t.node=h,t.margin=i,t.gridGap=r,t.width=g.width,t.height=g.height,t.marginOffset={x:t.margin.left+t.margin.right+t.gridGap.x,y:Math.max(t.margin.top,t.margin.bottom,t.gridGap.y)},t.boundingClientRect=h.getBoundingClientRect(),t.containerBoundingRect=l,t.index=n,t.newIndex=n,t.axis={x:o.indexOf("x")>=0,y:o.indexOf("y")>=0},t.offsetEdge=pe(h,t.container),t.initialOffset=fe(p?Y({},e,{pageX:t.boundingClientRect.left,pageY:t.boundingClientRect.top}):e),t.initialScroll={left:t.scrollContainer.scrollLeft,top:t.scrollContainer.scrollTop},t.initialWindowScroll={left:window.pageXOffset,top:window.pageYOffset},t.helper=t.helperContainer.appendChild(function(e){var t="input, textarea, select, canvas, [contenteditable]",n=e.querySelectorAll(t),i=e.cloneNode(!0);return(0,Q.Z)(i.querySelectorAll(t)).forEach((function(e,t){"file"!==e.type&&(e.value=n[t].value),"radio"===e.type&&e.name&&(e.name="__sortableClone__".concat(e.name)),e.tagName===ke.Canvas&&n[t].width>0&&n[t].height>0&&e.getContext("2d").drawImage(n[t],0,0)})),i}(h)),oe(t.helper,{boxSizing:"border-box",height:"".concat(t.height,"px"),left:"".concat(t.boundingClientRect.left-i.left,"px"),pointerEvents:"none",position:"fixed",top:"".concat(t.boundingClientRect.top-i.top,"px"),width:"".concat(t.width,"px")}),p&&t.helper.focus(),u&&(t.sortableGhost=h,oe(h,{opacity:0,visibility:"hidden"})),t.minTranslate={},t.maxTranslate={},p){var v=d?{top:0,left:0,width:t.contentWindow.innerWidth,height:t.contentWindow.innerHeight}:t.containerBoundingRect,m=v.top,_=v.left,y=v.width,b=m+v.height,w=_+y;t.axis.x&&(t.minTranslate.x=_-t.boundingClientRect.left,t.maxTranslate.x=w-(t.boundingClientRect.left+t.width)),t.axis.y&&(t.minTranslate.y=m-t.boundingClientRect.top,t.maxTranslate.y=b-(t.boundingClientRect.top+t.height))}else t.axis.x&&(t.minTranslate.x=(d?0:l.left)-t.boundingClientRect.left-t.width/2,t.maxTranslate.x=(d?t.contentWindow.innerWidth:l.left+l.width)-t.boundingClientRect.left-t.width/2),t.axis.y&&(t.minTranslate.y=(d?0:l.top)-t.boundingClientRect.top-t.height/2,t.maxTranslate.y=(d?t.contentWindow.innerHeight:l.top+l.height)-t.boundingClientRect.top-t.height/2);s&&s.split(" ").forEach((function(e){return t.helper.classList.add(e)})),t.listenerNode=e.touches?e.target:t.contentWindow,p?(t.listenerNode.addEventListener("wheel",t.handleKeyEnd,!0),t.listenerNode.addEventListener("mousedown",t.handleKeyEnd,!0),t.listenerNode.addEventListener("keydown",t.handleKeyDown)):(ie.move.forEach((function(e){return t.listenerNode.addEventListener(e,t.handleSortMove,!1)})),ie.end.forEach((function(e){return t.listenerNode.addEventListener(e,t.handleSortEnd,!1)}))),t.setState({sorting:!0,sortingIndex:n}),c&&c({node:h,index:n,collection:f,isKeySorting:p,nodes:t.manager.getOrderedRefs(),helper:t.helper},e),p&&t.keyMove(0)},r=t.props,o=r.axis,a=r.getHelperDimensions,s=r.helperClass,u=r.hideSortableGhost,l=r.updateBeforeSortStart,c=r.onSortStart,d=r.useWindowAsScrollContainer,h=n.node,f=n.collection,p=t.manager.isKeySorting,g=function(){if("function"===typeof l){t._awaitingUpdateBeforeSortStart=!0;var n=function(e,t){try{var n=e()}catch(i){return t(!0,i)}return n&&n.then?n.then(t.bind(null,!1),t.bind(null,!0)):t(!1,value)}((function(){var t=h.sortableInfo.index;return Promise.resolve(l({collection:f,index:t,node:h,isKeySorting:p},e)).then((function(){}))}),(function(e,n){if(t._awaitingUpdateBeforeSortStart=!1,e)throw n;return n}));if(n&&n.then)return n.then((function(){}))}}();return g&&g.then?g.then(i):i()}}();return Promise.resolve(i&&i.then?i.then((function(){})):void 0)}catch(r){return Promise.reject(r)}})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"handleSortMove",(function(e){var n=t.props.onSortMove;"function"===typeof e.preventDefault&&e.cancelable&&e.preventDefault(),t.updateHelperPosition(e),t.animateNodes(),t.autoscroll(),n&&n(e)})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"handleSortEnd",(function(e){var n=t.props,i=n.hideSortableGhost,r=n.onSortEnd,o=t.manager,a=o.active.collection,s=o.isKeySorting,u=t.manager.getOrderedRefs();t.listenerNode&&(s?(t.listenerNode.removeEventListener("wheel",t.handleKeyEnd,!0),t.listenerNode.removeEventListener("mousedown",t.handleKeyEnd,!0),t.listenerNode.removeEventListener("keydown",t.handleKeyDown)):(ie.move.forEach((function(e){return t.listenerNode.removeEventListener(e,t.handleSortMove)})),ie.end.forEach((function(e){return t.listenerNode.removeEventListener(e,t.handleSortEnd)})))),t.helper.parentNode.removeChild(t.helper),i&&t.sortableGhost&&oe(t.sortableGhost,{opacity:"",visibility:""});for(var l=0,c=u.length;l<c;l++){var d=u[l],h=d.node;d.edgeOffset=null,d.boundingClientRect=null,ae(h,null),se(h,null),d.translate=null}t.autoScroller.clear(),t.manager.active=null,t.manager.isKeySorting=!1,t.setState({sorting:!1,sortingIndex:null}),"function"===typeof r&&r({collection:a,newIndex:t.newIndex,oldIndex:t.index,isKeySorting:s,nodes:u},e),t.touched=!1})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"autoscroll",(function(){var e=t.props.disableAutoscroll,n=t.manager.isKeySorting;if(e)t.autoScroller.clear();else{if(n){var i=Y({},t.translate),r=0,o=0;return t.axis.x&&(i.x=Math.min(t.maxTranslate.x,Math.max(t.minTranslate.x,t.translate.x)),r=t.translate.x-i.x),t.axis.y&&(i.y=Math.min(t.maxTranslate.y,Math.max(t.minTranslate.y,t.translate.y)),o=t.translate.y-i.y),t.translate=i,ae(t.helper,t.translate),t.scrollContainer.scrollLeft+=r,void(t.scrollContainer.scrollTop+=o)}t.autoScroller.update({height:t.height,maxTranslate:t.maxTranslate,minTranslate:t.minTranslate,translate:t.translate,width:t.width})}})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"onAutoScroll",(function(e){t.translate.x+=e.left,t.translate.y+=e.top,t.animateNodes()})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"handleKeyDown",(function(e){var n=e.keyCode,i=t.props,r=i.shouldCancelStart,o=i.keyCodes,a=Y({},Ee,void 0===o?{}:o);t.manager.active&&!t.manager.isKeySorting||!(t.manager.active||a.lift.includes(n)&&!r(e)&&t.isValidSortingTarget(e))||(e.stopPropagation(),e.preventDefault(),a.lift.includes(n)&&!t.manager.active?t.keyLift(e):a.drop.includes(n)&&t.manager.active?t.keyDrop(e):a.cancel.includes(n)?(t.newIndex=t.manager.active.index,t.keyDrop(e)):a.up.includes(n)?t.keyMove(-1):a.down.includes(n)&&t.keyMove(1))})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"keyLift",(function(e){var n=e.target,i=ue(n,(function(e){return null!=e.sortableInfo})).sortableInfo,r=i.index,o=i.collection;t.initialFocusedNode=n,t.manager.isKeySorting=!0,t.manager.active={index:r,collection:o},t.handlePress(e)})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"keyMove",(function(e){var n=t.manager.getOrderedRefs(),i=n[n.length-1].node.sortableInfo.index,r=t.newIndex+e,o=t.newIndex;if(!(r<0||r>i)){t.prevIndex=o,t.newIndex=r;var a=function(e,t,n){return e<n&&e>t?e-1:e>n&&e<t?e+1:e}(t.newIndex,t.prevIndex,t.index),s=n.find((function(e){return e.node.sortableInfo.index===a})),u=s.node,l=t.containerScrollDelta,c=s.boundingClientRect||he(u,l),d=s.translate||{x:0,y:0},h=c.top+d.y-l.top,f=c.left+d.x-l.left,p=o<r,g=p&&t.axis.x?u.offsetWidth-t.width:0,v=p&&t.axis.y?u.offsetHeight-t.height:0;t.handleSortMove({pageX:f+g,pageY:h+v,ignoreTransition:0===e})}})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"keyDrop",(function(e){t.handleSortEnd(e),t.initialFocusedNode&&t.initialFocusedNode.focus()})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"handleKeyEnd",(function(e){t.manager.active&&t.keyDrop(e)})),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"isValidSortingTarget",(function(e){var n=t.props.useDragHandle,i=e.target,r=ue(i,(function(e){return null!=e.sortableInfo}));return r&&r.sortableInfo&&!r.sortableInfo.disabled&&(n?Se(i):i.sortableInfo)}));var i=new ee;return function(e){$()(!(e.distance&&e.pressDelay),"Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.")}(e),t.manager=i,t.wrappedInstance=(0,u.createRef)(),t.sortableContextValue={manager:i},t.events={end:t.handleEnd,move:t.handleMove,start:t.handleStart},t}return(0,a.Z)(n,t),(0,o.Z)(n,[{key:"componentDidMount",value:function(){var e=this,t=this.props.useWindowAsScrollContainer,n=this.getContainer();Promise.resolve(n).then((function(n){e.container=n,e.document=e.container.ownerDocument||document;var i=e.props.contentWindow||e.document.defaultView||window;e.contentWindow="function"===typeof i?i():i,e.scrollContainer=t?e.document.scrollingElement||e.document.documentElement:ve(e.container)||e.container,e.autoScroller=new xe(e.scrollContainer,e.onAutoScroll),Object.keys(e.events).forEach((function(t){return ie[t].forEach((function(n){return e.container.addEventListener(n,e.events[t],!1)}))})),e.container.addEventListener("keydown",e.handleKeyDown)}))}},{key:"componentWillUnmount",value:function(){var e=this;this.helper&&this.helper.parentNode&&this.helper.parentNode.removeChild(this.helper),this.container&&(Object.keys(this.events).forEach((function(t){return ie[t].forEach((function(n){return e.container.removeEventListener(n,e.events[t])}))})),this.container.removeEventListener("keydown",this.handleKeyDown))}},{key:"updateHelperPosition",value:function(e){var t=this.props,n=t.lockAxis,r=t.lockOffset,o=t.lockToContainerEdges,a=t.transitionDuration,s=t.keyboardSortingTransitionDuration,u=void 0===s?a:s,l=this.manager.isKeySorting,c=e.ignoreTransition,d=fe(e),h={x:d.x-this.initialOffset.x,y:d.y-this.initialOffset.y};if(h.y-=window.pageYOffset-this.initialWindowScroll.top,h.x-=window.pageXOffset-this.initialWindowScroll.left,this.translate=h,o){var f=function(e){var t=e.height,n=e.width,r=e.lockOffset,o=Array.isArray(r)?r:[r,r];$()(2===o.length,"lockOffset prop of SortableContainer should be a single value or an array of exactly two values. Given %s",r);var a=(0,i.Z)(o,2),s=a[0],u=a[1];return[ge({height:t,lockOffset:s,width:n}),ge({height:t,lockOffset:u,width:n})]}({height:this.height,lockOffset:r,width:this.width}),p=(0,i.Z)(f,2),g=p[0],v=p[1],m={x:this.width/2-g.x,y:this.height/2-g.y},_={x:this.width/2-v.x,y:this.height/2-v.y};h.x=le(this.minTranslate.x+m.x,this.maxTranslate.x-_.x,h.x),h.y=le(this.minTranslate.y+m.y,this.maxTranslate.y-_.y,h.y)}"x"===n?h.y=0:"y"===n&&(h.x=0),l&&u&&!c&&se(this.helper,u),ae(this.helper,h)}},{key:"animateNodes",value:function(){var e=this.props,t=e.transitionDuration,n=e.hideSortableGhost,i=e.onSortOver,r=this.containerScrollDelta,o=this.windowScrollDelta,a=this.manager.getOrderedRefs(),s=this.offsetEdge.left+this.translate.x+r.left,u=this.offsetEdge.top+this.translate.y+r.top,l=this.manager.isKeySorting,c=this.newIndex;this.newIndex=null;for(var d=0,h=a.length;d<h;d++){var f=a[d].node,p=f.sortableInfo.index,g=f.offsetWidth,v=f.offsetHeight,m={height:this.height>v?v/2:this.height/2,width:this.width>g?g/2:this.width/2},_=l&&p>this.index&&p<=c,y=l&&p<this.index&&p>=c,b={x:0,y:0},w=a[d].edgeOffset;w||(w=pe(f,this.container),a[d].edgeOffset=w,l&&(a[d].boundingClientRect=he(f,r)));var C=d<a.length-1&&a[d+1],k=d>0&&a[d-1];C&&!C.edgeOffset&&(C.edgeOffset=pe(C.node,this.container),l&&(C.boundingClientRect=he(C.node,r))),p!==this.index?(t&&se(f,t),this.axis.x?this.axis.y?y||p<this.index&&(s+o.left-m.width<=w.left&&u+o.top<=w.top+m.height||u+o.top+m.height<=w.top)?(b.x=this.width+this.marginOffset.x,w.left+b.x>this.containerBoundingRect.width-m.width&&C&&(b.x=C.edgeOffset.left-w.left,b.y=C.edgeOffset.top-w.top),null===this.newIndex&&(this.newIndex=p)):(_||p>this.index&&(s+o.left+m.width>=w.left&&u+o.top+m.height>=w.top||u+o.top+m.height>=w.top+v))&&(b.x=-(this.width+this.marginOffset.x),w.left+b.x<this.containerBoundingRect.left+m.width&&k&&(b.x=k.edgeOffset.left-w.left,b.y=k.edgeOffset.top-w.top),this.newIndex=p):_||p>this.index&&s+o.left+m.width>=w.left?(b.x=-(this.width+this.marginOffset.x),this.newIndex=p):(y||p<this.index&&s+o.left<=w.left+m.width)&&(b.x=this.width+this.marginOffset.x,null==this.newIndex&&(this.newIndex=p)):this.axis.y&&(_||p>this.index&&u+o.top+m.height>=w.top?(b.y=-(this.height+this.marginOffset.y),this.newIndex=p):(y||p<this.index&&u+o.top<=w.top+m.height)&&(b.y=this.height+this.marginOffset.y,null==this.newIndex&&(this.newIndex=p))),ae(f,b),a[d].translate=b):n&&(this.sortableGhost=f,oe(f,{opacity:0,visibility:"hidden"}))}null==this.newIndex&&(this.newIndex=this.index),l&&(this.newIndex=c);var S=l?this.prevIndex:c;i&&this.newIndex!==S&&i({collection:this.manager.active.collection,index:this.index,newIndex:this.newIndex,oldIndex:S,isKeySorting:l,nodes:a,helper:this.helper})}},{key:"getWrappedInstance",value:function(){return $()(s.withRef,"To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call"),this.wrappedInstance.current}},{key:"getContainer",value:function(){var e=this.props.getContainer;return"function"!==typeof e?(0,q.findDOMNode)(this):e(s.withRef?this.getWrappedInstance():void 0)}},{key:"render",value:function(){var t=s.withRef?this.wrappedInstance:null;return(0,u.createElement)(Me.Provider,{value:this.sortableContextValue},(0,u.createElement)(e,(0,S.Z)({ref:t},ne(this.props,De))))}},{key:"helperContainer",get:function(){var e=this.props.helperContainer;return"function"===typeof e?e():this.props.helperContainer||this.document.body}},{key:"containerScrollDelta",get:function(){return this.props.useWindowAsScrollContainer?{left:0,top:0}:{left:this.scrollContainer.scrollLeft-this.initialScroll.left,top:this.scrollContainer.scrollTop-this.initialScroll.top}}},{key:"windowScrollDelta",get:function(){return{left:this.contentWindow.pageXOffset-this.initialWindowScroll.left,top:this.contentWindow.pageYOffset-this.initialWindowScroll.top}}}]),n}(u.Component),(0,V.Z)(t,"displayName",de("sortableList",e)),(0,V.Z)(t,"defaultProps",Ne),(0,V.Z)(t,"propTypes",Le),n}var Oe={index:J().number.isRequired,collection:J().oneOfType([J().number,J().string]),disabled:J().bool},Ie=Object.keys(Oe);var Ae=n(67119),Re=n(47733),Pe=n(6141),Ze=n(90680),Fe=n(61883),je=n.n(Fe);function He(e){return je()(e).reduce((function(e,t){return e[t]=u.createRef(),e}),{})}var Be=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var i;return(0,r.Z)(this,n),(i=t.call(this,e)).state=He(e.itemCount),i}return(0,o.Z)(n,[{key:"render",value:function(){var e=this,t=u.Children.map(this.props.children,(function(t,n){return u.cloneElement(t,{ref:e.state[n]})}));return u.createElement("div",null,t)}},{key:"scrollToItem",value:function(e){var t,n,i,r=null===(t=this.state[e])||void 0===t?void 0:t.current;if(r&&"function"===typeof r.getRef){var o=r.getRef();o.current&&(null===(i=(n=o.current).scrollIntoView)||void 0===i||i.call(n,{block:"nearest"}))}}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.itemCount;return n===Object.keys(t).length?t:He(n)}}]),n}(u.Component),ze=n(9629),We=(0,Ae.Ge)("list"),Ve=28,Ye=function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{withRef:!1};return n=t=function(t){function n(){var e,t;(0,r.Z)(this,n);for(var i=arguments.length,o=new Array(i),a=0;a<i;a++)o[a]=arguments[a];return t=(0,U.Z)(this,(e=(0,K.Z)(n)).call.apply(e,[this].concat(o))),(0,V.Z)((0,L.Z)((0,L.Z)(t)),"wrappedInstance",(0,u.createRef)()),t}return(0,a.Z)(n,t),(0,o.Z)(n,[{key:"componentDidMount",value:function(){this.register()}},{key:"componentDidUpdate",value:function(e){this.node&&(e.index!==this.props.index&&(this.node.sortableInfo.index=this.props.index),e.disabled!==this.props.disabled&&(this.node.sortableInfo.disabled=this.props.disabled)),e.collection!==this.props.collection&&(this.unregister(e.collection),this.register())}},{key:"componentWillUnmount",value:function(){this.unregister()}},{key:"register",value:function(){var e=this.props,t=e.collection,n=e.disabled,i=e.index,r=(0,q.findDOMNode)(this);r.sortableInfo={collection:t,disabled:n,index:i,manager:this.context.manager},this.node=r,this.ref={node:r},this.context.manager.add(t,this.ref)}},{key:"unregister",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.collection;this.context.manager.remove(e,this.ref)}},{key:"getWrappedInstance",value:function(){return $()(i.withRef,"To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call"),this.wrappedInstance.current}},{key:"render",value:function(){var t=i.withRef?this.wrappedInstance:null;return(0,u.createElement)(e,(0,S.Z)({ref:t},ne(this.props,Ie)))}}]),n}(u.Component),(0,V.Z)(t,"displayName",de("sortableElement",e)),(0,V.Z)(t,"contextType",Me),(0,V.Z)(t,"propTypes",Oe),(0,V.Z)(t,"defaultProps",{collection:0}),n}(Ze.H),Ue=Te(W,{withRef:!0}),Ke=Te(Be,{withRef:!0}),qe={items:[],itemClassName:"",filterable:!0,sortable:!1,virtualized:!0,deactivateOnLeave:!0},Ge=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.apply(this,arguments)).state={items:e.props.items,filter:""},e.refFilter=u.createRef(),e.refContainer=u.createRef(),e.blurTimer=null,e.onKeyDown=function(t){var n=e.state,i=n.activeItem,r=n.pageSize;if(!ze.S.includes(t.key))switch(t.key){case"ArrowDown":e.handleKeyMove(t,1,-1);break;case"ArrowUp":e.handleKeyMove(t,-1);break;case"PageDown":e.handleKeyMove(t,r);break;case"PageUp":e.handleKeyMove(t,-r);break;case"Home":e.handleKeyMove(t,e.state.items.length-(i||0));break;case"End":e.handleKeyMove(t,-(i||0)-1);break;case"Enter":"number"===typeof i&&e.props.onItemClick&&e.props.onItemClick(e.state.items[i],i,!0);break;default:e.refFilter.current&&e.refFilter.current.focus()}},e.renderItem=function(t){var n=t.index,i=t.style,r=e.props.sortHandleAlign,o=e.state,a=o.items,s=o.activeItem,l=a[n],c=e.props.sortable&&a.length>1&&!e.getFilter(),d=n===s||n===e.props.activeItemIndex,h=c?Ye:Ze.H;return u.createElement(h,{key:n,style:i,index:n,itemIndex:n,item:l,sortable:c,sortHandleAlign:r,renderItem:e.props.renderItem,itemClassName:e.props.itemClassName,active:d,selected:n===e.props.selectedItemIndex,onActivate:e.onItemActivate,onClick:e.props.onItemClick})},e.filterItem=function(e){return function(t){return String(t).includes(e)}},e.scrollToIndex=function(t){var n=e.getContainer();n&&n.scrollToItem(t)},e.deactivate=function(){e.blurTimer&&e.props.deactivateOnLeave&&e.setState({activeItem:void 0})},e.handleFocus=function(){e.blurTimer&&(clearTimeout(e.blurTimer),e.blurTimer=null)},e.handleBlur=function(){e.blurTimer||(e.blurTimer=setTimeout(e.deactivate,50))},e.onUpdateFilterInternal=function(t){var n=e.props,i=n.items,r=n.filterItem,o=void 0===r?e.filterItem:r,a=n.onFilterEnd;e.setState({filter:t,items:t?i.filter(o(t)):i},(function(){a&&a({items:e.state.items})}))},e.onFilterUpdate=function(t){e.props.onFilterUpdate?e.props.onFilterUpdate(t):e.onUpdateFilterInternal(t)},e.onItemsRendered=function(t){var n=t.visibleStartIndex,i=t.visibleStopIndex;e.setState({pageSize:i-n})},e.onItemActivate=function(t){e.state.sorting||e.activateItem(t,!1)},e.onMouseLeave=function(){e.deactivate()},e.onSortStart=function(){e.setState({sorting:!0})},e.onSortEnd=function(t){e.props.onSortEnd&&e.props.onSortEnd(t),e.setState({sorting:!1,activeItem:t.newIndex})},e.getItemHeight=function(t){var n=e.props.itemHeight;return"function"===typeof n?n(e.state.items[t],t):n},e.getVirtualizedItemHeight=function(t){return e.getItemHeight(t)||Ve},e}return(0,o.Z)(n,[{key:"componentDidUpdate",value:function(e){if(this.props.items!==e.items){var t=this.getFilter();t&&!this.props.onFilterUpdate?this.onUpdateFilterInternal(t):this.setState({items:this.props.items})}this.props.activeItemIndex!==e.activeItemIndex&&this.activateItem(this.props.activeItemIndex)}},{key:"componentWillUnmount",value:function(){this.blurTimer=null}},{key:"render",value:function(){var e=this,t=this.props,n=t.emptyPlaceholder,i=t.virtualized,r=t.className,o=t.itemsClassName,a=this.state.items;return u.createElement(Re.z.Consumer,null,(function(t){var s=t.mobile;return u.createElement("div",{className:We({mobile:s},r),tabIndex:-1,onFocus:e.handleFocus,onBlur:e.handleBlur,onKeyDown:e.onKeyDown},e.renderFilter(),u.createElement("div",{className:We("items",{virtualized:i},o),style:e.getItemsStyle(),onMouseLeave:e.onMouseLeave},e.renderItems(),0===a.length&&Boolean(n)&&u.createElement("div",{className:We("empty-placeholder")},n)))}))}},{key:"getItems",value:function(){return this.state.items}},{key:"getActiveItem",value:function(){return"number"===typeof this.state.activeItem?this.state.activeItem:null}},{key:"activateItem",value:function(e){"number"===typeof e&&(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&this.scrollToIndex(e),this.setState({activeItem:e})}},{key:"renderFilter",value:function(){var e=this.props,t=e.size,n=e.filterable,i=e.filter,r=void 0===i?this.state.filter:i,o=e.filterPlaceholder,a=e.filterClassName,s=void 0===a?"":a;return n?u.createElement("div",{className:We("filter",s)},u.createElement(Pe.o,{controlRef:this.refFilter,size:t,placeholder:o,value:r,hasClear:!0,onUpdate:this.onFilterUpdate})):null}},{key:"renderSimpleContainer",value:function(){var e=this,t=this.props.sortable,n=this.state.items,i=t?Ke:Be;return u.createElement(i,{helperClass:We("item",{sorting:!0}),distance:5,lockAxis:"y",onSortStart:this.onSortStart,onSortEnd:this.onSortEnd,itemCount:n.length,ref:this.refContainer},n.map((function(t,n){return e.renderItem({index:n,style:{height:e.getItemHeight(n)}})})))}},{key:"renderVirtualizedContainer",value:function(){var e=this,t=this.props.sortable?Ue:W;return u.createElement(k,null,(function(n){var i=n.width,r=n.height;return u.createElement(t,{ref:e.refContainer,width:i,height:r,itemSize:e.getVirtualizedItemHeight,itemData:e.state.items,itemCount:e.state.items.length,overscanCount:10,helperClass:We("item",{sorting:!0}),distance:5,lockAxis:"y",onItemsRendered:e.onItemsRendered,onSortStart:e.onSortStart,onSortEnd:e.onSortEnd,activeItem:e.state.activeItem},e.renderItem)}))}},{key:"renderItems",value:function(){return this.props.virtualized?this.renderVirtualizedContainer():this.renderSimpleContainer()}},{key:"getContainer",value:function(){var e=this.refContainer.current,t=e&&"getWrappedInstance"in e&&"function"===typeof e.getWrappedInstance&&e.getWrappedInstance();return this.props.sortable?t:e}},{key:"getFilter",value:function(){var e=this.props.filter;return void 0===e?this.state.filter:e}},{key:"getItemsStyle",value:function(){var e=this.props.itemsHeight;return"function"===typeof e&&(e=e(this.state.items)),e?{height:e}:void 0}},{key:"handleKeyMove",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;e.preventDefault();var r=this.state.activeItem,o=void 0===r?i:r;this.activateItem(n.findNextIndex(this.state.items,o+t,Math.sign(t)))}}],[{key:"moveListElement",value:function(e,t,n){if(t!==n){var r=e.splice(t,1),o=(0,i.Z)(r,1)[0];e.splice(n,0,o)}return e}},{key:"findNextIndex",value:function(e,t,n){for(var i=e.length,r=(t+i)%i,o=0;o<i;o+=1){if(e[r]&&!e[r].disabled)return r;r=(r+i+n)%i}}}]),n}(u.Component);Ge.defaultProps=qe},90680:function(e,t,n){"use strict";n.d(t,{H:function(){return g}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(4519),u=n(67119),l=n(63230),c=n(9629),d=n(93453);function h(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 6 10",width:"6",height:"10",fill:"currentColor"},d.i,e),s.createElement("path",{d:"M0 0h2v2H0zm0 4h2v2H0zm0 4h2v2H0zm4-8h2v2H4zm0 4h2v2H4zm0 4h2v2H4z"}))}var f=(0,u.Ge)("list"),p=function(e){return String(e)},g=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments)).ref=s.createRef(),e.getRef=function(){return e.ref},e.onClick=function(){var t,n;return null===(n=(t=e.props).onClick)||void 0===n?void 0:n.call(t,e.props.item,e.props.itemIndex)},e.onClickCapture=function(e){n.publishEvent({domEvent:e,eventId:"click"})},e.onMouseEnter=function(){return!e.props.item.disabled&&e.props.onActivate(e.props.itemIndex)},e.onMouseLeave=function(){return e.props.onActivate(void 0)},e}return(0,r.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.item,n=e.style,i=e.sortable,r=e.sortHandleAlign,o=e.itemClassName,a=e.selected,u=e.active;return s.createElement("div",{role:"listitem","data-qa":u?c.j.ACTIVE_ITEM:void 0,className:f("item",{sortable:i,active:u,selected:a,inactive:t.disabled,"sort-handle-align":r},o),style:n,onClick:t.disabled?void 0:this.onClick,onClickCapture:t.disabled?void 0:this.onClickCapture,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,ref:this.ref},this.renderSortIcon(),this.renderContent())}},{key:"renderSortIcon",value:function(){return this.props.sortable?s.createElement("div",{className:f("item-sort-icon")},s.createElement(h,null)):null}},{key:"renderContent",value:function(){var e=this.props,t=e.renderItem,n=void 0===t?p:t,i=e.item,r=e.active,o=e.itemIndex;return s.createElement("div",{className:f("item-content")},n(i,r,o))}}]),n}(s.Component);g.publishEvent=l.P.withEventPublisher("List")},9629:function(e,t,n){"use strict";n.d(t,{S:function(){return o},j:function(){return r}});var i=n(90423),r={ACTIVE_ITEM:"list-active-item"},o=[i.V.TAB]},43471:function(e,t,n){"use strict";n.d(t,{a:function(){return o}});var i=n(4519),r=(0,n(67119).Ge)("loader");function o(e){var t=e.size,n=void 0===t?"s":t,o=e.className;return i.createElement("div",{className:r({size:n},o)},i.createElement("div",{className:r("left")}),i.createElement("div",{className:r("center")}),i.createElement("div",{className:r("right")}))}},90047:function(e,t,n){"use strict";n.d(t,{v:function(){return h}});var i=n(4519),r=n(67119),o=n(63230),a=(0,r.Ge)("menu"),s=i.forwardRef((function(e,t){var n,r=e.icon,s=e.title,u=e.disabled,l=e.active,c=e.href,d=e.target,h=e.rel,f=e.onClick,p=e.style,g=e.className,v=e.theme,m=e.extraProps,_=e.children,y=e.qa,b=i.useCallback((function(e){o.P.publish({componentId:"MenuItem",eventId:"click",domEvent:e})}),[]),w={title:s,onClick:u?void 0:f,onClickCapture:u?void 0:b,style:p,tabIndex:u?-1:0,className:a("item",{disabled:u,active:l,theme:v},g),qa:y},C=[r&&i.createElement("div",{key:"icon",className:a("item-icon")},r),i.createElement("div",{key:"content",className:a("item-content")},_)];return n=c?i.createElement("a",Object.assign({},m,w,{href:c,target:d,rel:h}),C):i.createElement("div",Object.assign({},m,w),C),i.createElement("li",{ref:t,className:a("list-item")},n)})),u=n(14779),l=(0,r.Ge)("menu"),c=i.forwardRef((function(e,t){var n=e.label,r=e.children,o=e.style,a=e.className,s=e.qa,c=(0,u.u)();return i.createElement("li",{ref:t,className:l("list-group-item")},i.createElement("div",{style:o,className:l("group",a),"data-qa":s},n&&i.createElement("div",{id:c,className:l("group-label")},n),i.createElement("ul",{role:"group","aria-labelledby":c,className:l("group-list")},r)))})),d=(0,r.Ge)("menu"),h=i.forwardRef((function(e,t){var n=e.size,r=void 0===n?"m":n,o=e.children,a=e.style,s=e.className,u=e.qa;return i.createElement("ul",{ref:t,role:"menu",style:a,className:d({size:r},s),"data-qa":u},o)}));h.Item=s,h.Group=c},36296:function(e,t,n){"use strict";n.d(t,{u:function(){return p}});var i,r=n(29439),o=n(4519),a=n(21468),s=n(67119),u=n(78232),l=n(8970),c=0;function d(e){var t=e.enabled;o.useLayoutEffect((function(){if(t)return 1===++c&&function(){var e=window.innerWidth-document.documentElement.clientWidth,t=window.innerHeight-document.documentElement.clientHeight,n=function(){var e=window.getComputedStyle(document.body);return{top:Number.parseFloat(e.paddingTop),right:Number.parseFloat(e.paddingRight),bottom:Number.parseFloat(e.paddingBottom),left:Number.parseFloat(e.paddingLeft)}}();i=document.body.style.cssText,document.body.style.overflow="hidden",e&&(document.body.style.paddingRight="".concat(n.right+e,"px"));t&&(document.body.style.paddingBottom="".concat(n.bottom+t,"px"))}(),function(){0===--c&&(i?document.body.style.cssText=i:document.body.removeAttribute("style"))}}),[t])}var h=n(90247),f=(0,s.Ge)("modal");function p(e){var t=e.open,n=void 0!==t&&t,i=e.keepMounted,s=void 0!==i&&i,c=e.disableBodyScrollLock,p=void 0!==c&&c,g=e.disableEscapeKeyDown,v=e.disableOutsideClick,m=e.onEscapeKeyDown,_=e.onEnterKeyDown,y=e.onOutsideClick,b=e.onClose,w=e.children,C=e.style,k=e.className,S=e.contentClassName,x=e["aria-labelledby"],L=e["aria-label"],E=e.container,N=e.qa,D=o.useRef(null),M=o.useRef(null),T=o.useState(!1),O=(0,r.Z)(T,2),I=O[0],A=O[1];return d({enabled:!p&&(n||I)}),(0,h.s)({open:n,disableEscapeKeyDown:g,disableOutsideClick:v,onEscapeKeyDown:m,onEnterKeyDown:_,onOutsideClick:y,onClose:b,contentRefs:[M]}),o.createElement(l.h,{container:E},o.createElement(a.Z,{nodeRef:D,in:n,addEndListener:function(e){var t;return null===(t=D.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:(0,u.Y)(f),mountOnEnter:!s,unmountOnExit:!s,appear:!0,onEnter:function(){return A(!0)},onExit:function(){return A(!0)},onEntered:function(){return A(!1)},onExited:function(){return A(!1)}},o.createElement("div",{ref:D,style:C,className:f({open:n},k),"data-qa":N},o.createElement("div",{className:f("table")},o.createElement("div",{className:f("cell")},o.createElement("div",{ref:M,tabIndex:-1,role:"dialog","aria-modal":n,"aria-label":L,"aria-labelledby":x,className:f("content",S)},w))))))}},33109:function(e,t,n){"use strict";n.d(t,{J:function(){return k}});var i=n(4942),r=n(15861),o=n(87757),a=n.n(o),s=n(4519),u=n(22920),l=n(20970),c=n(88216),d=n(93453);function h(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"currentColor"},d.i,e),s.createElement("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",d:"M7.357 7.357l9.286 9.286m0-9.286l-9.286 9.286"}))}var f=(0,n(67119).Ge)("popover"),p=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];switch(e){case"special":return t?"normal-contrast":"flat-contrast";case"announcement":return t?"normal-contrast":"outlined";default:return t?"normal":"flat"}},g=function(e){var t=e.theme,n=e.tooltipActionButton,i=e.tooltipCancelButton;return n||i?s.createElement("div",{className:f("tooltip-buttons")},n&&s.createElement(l.z,{view:p(t,!0),width:"max",onClick:n.onClick,className:f("tooltip-button")},n.text),i&&s.createElement(l.z,{view:p(t,!1),width:"max",onClick:i.onClick,className:f("tooltip-button")},i.text)):null},v=function(e){var t=e.secondary,n=e.htmlContent,i=e.content,r=e.className;return n||i?n?s.createElement("div",{className:f("tooltip-content",{secondary:t}),dangerouslySetInnerHTML:{__html:n}}):i?s.createElement("div",{className:f("tooltip-content",{secondary:t},r)},i):null:null},m=n(8762),_=function(e){var t=e.links;return 0===t.length?null:s.createElement("div",{className:f("tooltip-links")},t.map((function(e,t){var n=e.text,i=e.href,r=e.target,o=void 0===r?"_blank":r,a=e.onClick;return s.createElement(s.Fragment,{key:"link-".concat(t)},s.createElement(m.r,{href:i,target:o,onClick:a,className:f("tooltip-link")},n),s.createElement("br",null))})))},y=function(e){var t=e.open,n=e.disabled,i=e.openTooltip,o=e.closeTooltip,u=e.closedManually,l=e.onClick,c=e.children,d=function(){var e=(0,r.Z)(a().mark((function e(r){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n){e.next=2;break}return e.abrupt("return");case 2:if(e.t0=!l,e.t0){e.next=7;break}return e.next=6,l(r);case 6:e.t0=e.sent;case 7:if(e.t0){e.next=10;break}return e.abrupt("return");case 10:(function(){!t?(i(),u.current=!1):(o(),u.current=!0)})();case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return s.createElement("span",{onClick:d},c)},b=n(29439),w=n(16456),C=function(e){var t=e.initialOpen,n=e.disabled,i=e.autoclosable,r=e.onOpenChange,o=e.delayOpening,a=e.delayClosing,u=e.behavior,l=e.shouldBeOpen,c=(0,s.useRef)(null),d=(0,s.useRef)(null),h=(0,s.useState)(t),f=(0,b.Z)(h,2),p=f[0],g=f[1],v=(0,s.useCallback)((function(){c.current&&(clearTimeout(c.current),c.current=null)}),[]),m=(0,s.useCallback)((function(){d.current&&(clearTimeout(d.current),d.current=null)}),[]);(0,s.useEffect)((function(){return function(){v(),m()}}),[m,v]);var _=(0,s.useCallback)((function(e){g(e),l.current=e,null===r||void 0===r||r(e)}),[r,l]),y=(0,s.useCallback)((function(){v(),_(!0)}),[_,v]),C=(0,s.useCallback)((function(){m(),_(!1)}),[_,m]);(0,s.useEffect)((function(){n&&C()}),[n,C]),function(e,t){var n=(0,s.useRef)(!0);(0,s.useEffect)((function(){n.current?n.current=!1:e()}),t)}((function(){i&&!l.current&&C()}),[i,C,l]);var k=(0,b.Z)(w.q[u],2),S=k[0],x=k[1],L=(0,s.useCallback)((function(){c.current=setTimeout((function(){c.current=null,y()}),null!==o&&void 0!==o?o:S)}),[S,o,y]),E=(0,s.useCallback)((function(){d.current=setTimeout((function(){d.current=null,C()}),null!==a&&void 0!==a?a:x)}),[C,x,a]);return{isOpen:p,closingTimeout:d,openTooltip:y,openTooltipDelayed:L,unsetOpeningTimeout:v,closeTooltip:C,closeTooltipDelayed:E,unsetClosingTimeout:m}},k=(0,s.forwardRef)((function(e,t){var n,o=e.initialOpen,d=void 0!==o&&o,p=e.disabled,m=void 0!==p&&p,b=e.autoclosable,k=void 0===b||b,S=e.openOnHover,x=void 0===S||S,L=e.delayOpening,E=e.delayClosing,N=e.behavior,D=void 0===N?w.x.Delayed:N,M=e.placement,T=void 0===M?["right","bottom"]:M,O=e.offset,I=void 0===O?{}:O,A=e.tooltipOffset,R=e.tooltipClassName,P=e.theme,Z=void 0===P?"info":P,F=e.size,j=void 0===F?"s":F,H=e.hasArrow,B=void 0===H||H,z=e.hasClose,W=void 0!==z&&z,V=e.className,Y=e.children,U=e.title,K=e.content,q=e.htmlContent,G=e.contentClassName,$=e.links,Q=e.forceLinksAppearance,X=void 0===Q||Q,J=e.tooltipActionButton,ee=e.tooltipCancelButton,te=e.onOpenChange,ne=e.onCloseClick,ie=e.onClick,re=e.anchorRef,oe=e.strategy,ae=e.qa,se=(0,s.useRef)(null),ue=(0,s.useRef)(!1),le=(0,s.useRef)(d),ce=C({initialOpen:d,disabled:m,autoclosable:k,onOpenChange:te,delayOpening:L,delayClosing:E,behavior:D,shouldBeOpen:le}),de=ce.isOpen,he=ce.closingTimeout,fe=ce.openTooltip,pe=ce.openTooltipDelayed,ge=ce.unsetOpeningTimeout,ve=ce.closeTooltip,me=ce.closeTooltipDelayed,_e=ce.unsetClosingTimeout;(0,s.useImperativeHandle)(t,(function(){return{openTooltip:fe,closeTooltip:ve}}),[fe,ve]);var ye=function(){var e=(0,r.Z)(a().mark((function e(t){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:ve(),null===ne||void 0===ne||ne(t);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),be=Boolean(U),we=s.createElement(u.G,{strategy:oe,anchorRef:re||se,className:f("tooltip",(n={theme:Z,size:j},(0,i.Z)(n,"with-close",W),(0,i.Z)(n,"force-links-appearance",X),n),R),open:de,placement:T,hasArrow:B,offset:A,onClose:re?void 0:ve,qa:ae?"".concat(ae,"-tooltip"):""},s.createElement(s.Fragment,null,U&&s.createElement("h3",{className:f("tooltip-title")},U),s.createElement(v,{secondary:!!be&&"announcement"!==Z,content:K,htmlContent:q,className:G}),$&&s.createElement(_,{links:$}),s.createElement(g,{theme:Z,tooltipActionButton:J,tooltipCancelButton:ee}),W&&s.createElement("div",{className:f("tooltip-close")},s.createElement(l.z,{size:"s",view:"flat-secondary",onClick:ye,extraProps:{"aria-label":"Close"}},s.createElement(c.J,{data:h,size:24})))));if(re)return we;return s.createElement("div",{ref:se,className:f({disabled:m},V),onMouseEnter:x?function(){_e(),de||m||ue.current?le.current=!0:pe()}:void 0,onMouseLeave:x?function(){!k||ue.current||he.current?le.current=!1:(ge(),me()),ue.current=!1}:void 0,style:{top:I.top,left:I.left},"data-qa":ae},s.createElement(y,{closeTooltip:ve,openTooltip:fe,open:de,disabled:m,onClick:ie,closedManually:ue},Y),we)}));k.displayName="Popover"},16456:function(e,t,n){"use strict";n.d(t,{q:function(){return a},x:function(){return r}});var i,r,o=n(4942);!function(e){e.Immediate="immediate",e.Delayed="delayed",e.DelayedClosing="delayedClosing"}(r||(r={}));var a=(i={},(0,o.Z)(i,r.Immediate,[0,0]),(0,o.Z)(i,r.Delayed,[300,300]),(0,o.Z)(i,r.DelayedClosing,[0,300]),i)},22920:function(e,t,n){"use strict";n.d(t,{G:function(){return je}});var i=n(93433),r=n(4519),o=n(21468),a=n(67119),s=n(78232),u=n(8970),l=n(90247),c=n(29439);function d(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function h(e){return e instanceof d(e).Element||e instanceof Element}function f(e){return e instanceof d(e).HTMLElement||e instanceof HTMLElement}function p(e){return"undefined"!==typeof ShadowRoot&&(e instanceof d(e).ShadowRoot||e instanceof ShadowRoot)}var g=Math.max,v=Math.min,m=Math.round;function _(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),i=1,r=1;if(f(e)&&t){var o=e.offsetHeight,a=e.offsetWidth;a>0&&(i=m(n.width)/a||1),o>0&&(r=m(n.height)/o||1)}return{width:n.width/i,height:n.height/r,top:n.top/r,right:n.right/i,bottom:n.bottom/r,left:n.left/i,x:n.left/i,y:n.top/r}}function y(e){var t=d(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function b(e){return e?(e.nodeName||"").toLowerCase():null}function w(e){return((h(e)?e.ownerDocument:e.document)||window.document).documentElement}function C(e){return _(w(e)).left+y(e).scrollLeft}function k(e){return d(e).getComputedStyle(e)}function S(e){var t=k(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+i)}function x(e,t,n){void 0===n&&(n=!1);var i=f(t),r=f(t)&&function(e){var t=e.getBoundingClientRect(),n=m(t.width)/e.offsetWidth||1,i=m(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),o=w(t),a=_(e,r),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(i||!i&&!n)&&(("body"!==b(t)||S(o))&&(s=function(e){return e!==d(e)&&f(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:y(e);var t}(t)),f(t)?((u=_(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):o&&(u.x=C(o))),{x:a.left+s.scrollLeft-u.x,y:a.top+s.scrollTop-u.y,width:a.width,height:a.height}}function L(e){var t=_(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function E(e){return"html"===b(e)?e:e.assignedSlot||e.parentNode||(p(e)?e.host:null)||w(e)}function N(e){return["html","body","#document"].indexOf(b(e))>=0?e.ownerDocument.body:f(e)&&S(e)?e:N(E(e))}function D(e,t){var n;void 0===t&&(t=[]);var i=N(e),r=i===(null==(n=e.ownerDocument)?void 0:n.body),o=d(i),a=r?[o].concat(o.visualViewport||[],S(i)?i:[]):i,s=t.concat(a);return r?s:s.concat(D(E(a)))}function M(e){return["table","td","th"].indexOf(b(e))>=0}function T(e){return f(e)&&"fixed"!==k(e).position?e.offsetParent:null}function O(e){for(var t=d(e),n=T(e);n&&M(n)&&"static"===k(n).position;)n=T(n);return n&&("html"===b(n)||"body"===b(n)&&"static"===k(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&f(e)&&"fixed"===k(e).position)return null;for(var n=E(e);f(n)&&["html","body"].indexOf(b(n))<0;){var i=k(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}var I="top",A="bottom",R="right",P="left",Z="auto",F=[I,A,R,P],j="start",H="end",B="clippingParents",z="viewport",W="popper",V="reference",Y=F.reduce((function(e,t){return e.concat([t+"-"+j,t+"-"+H])}),[]),U=[].concat(F,[Z]).reduce((function(e,t){return e.concat([t,t+"-"+j,t+"-"+H])}),[]),K=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,i=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&r(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),i}function G(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}var $={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"===typeof e.getBoundingClientRect)}))}function X(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,i=void 0===n?[]:n,r=t.defaultOptions,o=void 0===r?$:r;return function(e,t,n){void 0===n&&(n=o);var r={placement:"bottom",orderedModifiers:[],options:Object.assign({},$,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},a=[],s=!1,u={state:r,setOptions:function(n){var s="function"===typeof n?n(r.options):n;l(),r.options=Object.assign({},o,r.options,s),r.scrollParents={reference:h(e)?D(e):e.contextElement?D(e.contextElement):[],popper:D(t)};var c=function(e){var t=q(e);return K.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}(function(e){var t=e.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}([].concat(i,r.options.modifiers)));return r.orderedModifiers=c.filter((function(e){return e.enabled})),r.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,i=void 0===n?{}:n,o=e.effect;if("function"===typeof o){var s=o({state:r,name:t,instance:u,options:i}),l=function(){};a.push(s||l)}})),u.update()},forceUpdate:function(){if(!s){var e=r.elements,t=e.reference,n=e.popper;if(Q(t,n)){r.rects={reference:x(t,O(n),"fixed"===r.options.strategy),popper:L(n)},r.reset=!1,r.placement=r.options.placement,r.orderedModifiers.forEach((function(e){return r.modifiersData[e.name]=Object.assign({},e.data)}));for(var i=0;i<r.orderedModifiers.length;i++)if(!0!==r.reset){var o=r.orderedModifiers[i],a=o.fn,l=o.options,c=void 0===l?{}:l,d=o.name;"function"===typeof a&&(r=a({state:r,options:c,name:d,instance:u})||r)}else r.reset=!1,i=-1}}},update:G((function(){return new Promise((function(e){u.forceUpdate(),e(r)}))})),destroy:function(){l(),s=!0}};if(!Q(e,t))return u;function l(){a.forEach((function(e){return e()})),a=[]}return u.setOptions(n).then((function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)})),u}}var J={passive:!0};function ee(e){return e.split("-")[0]}function te(e){return e.split("-")[1]}function ne(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ie(e){var t,n=e.reference,i=e.element,r=e.placement,o=r?ee(r):null,a=r?te(r):null,s=n.x+n.width/2-i.width/2,u=n.y+n.height/2-i.height/2;switch(o){case I:t={x:s,y:n.y-i.height};break;case A:t={x:s,y:n.y+n.height};break;case R:t={x:n.x+n.width,y:u};break;case P:t={x:n.x-i.width,y:u};break;default:t={x:n.x,y:n.y}}var l=o?ne(o):null;if(null!=l){var c="y"===l?"height":"width";switch(a){case j:t[l]=t[l]-(n[c]/2-i[c]/2);break;case H:t[l]=t[l]+(n[c]/2-i[c]/2)}}return t}var re={top:"auto",right:"auto",bottom:"auto",left:"auto"};function oe(e){var t,n=e.popper,i=e.popperRect,r=e.placement,o=e.variation,a=e.offsets,s=e.position,u=e.gpuAcceleration,l=e.adaptive,c=e.roundOffsets,h=e.isFixed,f=a.x,p=void 0===f?0:f,g=a.y,v=void 0===g?0:g,_="function"===typeof c?c({x:p,y:v}):{x:p,y:v};p=_.x,v=_.y;var y=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),C=P,S=I,x=window;if(l){var L=O(n),E="clientHeight",N="clientWidth";if(L===d(n)&&"static"!==k(L=w(n)).position&&"absolute"===s&&(E="scrollHeight",N="scrollWidth"),r===I||(r===P||r===R)&&o===H)S=A,v-=(h&&x.visualViewport?x.visualViewport.height:L[E])-i.height,v*=u?1:-1;if(r===P||(r===I||r===A)&&o===H)C=R,p-=(h&&x.visualViewport?x.visualViewport.width:L[N])-i.width,p*=u?1:-1}var D,M=Object.assign({position:s},l&&re),T=!0===c?function(e){var t=e.x,n=e.y,i=window.devicePixelRatio||1;return{x:m(t*i)/i||0,y:m(n*i)/i||0}}({x:p,y:v}):{x:p,y:v};return p=T.x,v=T.y,u?Object.assign({},M,((D={})[S]=b?"0":"",D[C]=y?"0":"",D.transform=(x.devicePixelRatio||1)<=1?"translate("+p+"px, "+v+"px)":"translate3d("+p+"px, "+v+"px, 0)",D)):Object.assign({},M,((t={})[S]=b?v+"px":"",t[C]=y?p+"px":"",t.transform="",t))}var ae={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,i=e.name,r=n.offset,o=void 0===r?[0,0]:r,a=U.reduce((function(e,n){return e[n]=function(e,t,n){var i=ee(e),r=[P,I].indexOf(i)>=0?-1:1,o="function"===typeof n?n(Object.assign({},t,{placement:e})):n,a=o[0],s=o[1];return a=a||0,s=(s||0)*r,[P,R].indexOf(i)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,o),e}),{}),s=a[t.placement],u=s.x,l=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=l),t.modifiersData[i]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function ue(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var le={start:"end",end:"start"};function ce(e){return e.replace(/start|end/g,(function(e){return le[e]}))}function de(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&p(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function he(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function fe(e,t){return t===z?he(function(e){var t=d(e),n=w(e),i=t.visualViewport,r=n.clientWidth,o=n.clientHeight,a=0,s=0;return i&&(r=i.width,o=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=i.offsetLeft,s=i.offsetTop)),{width:r,height:o,x:a+C(e),y:s}}(e)):h(t)?function(e){var t=_(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):he(function(e){var t,n=w(e),i=y(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=g(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=g(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-i.scrollLeft+C(e),u=-i.scrollTop;return"rtl"===k(r||n).direction&&(s+=g(n.clientWidth,r?r.clientWidth:0)-o),{width:o,height:a,x:s,y:u}}(w(e)))}function pe(e,t,n){var i="clippingParents"===t?function(e){var t=D(E(e)),n=["absolute","fixed"].indexOf(k(e).position)>=0&&f(e)?O(e):e;return h(n)?t.filter((function(e){return h(e)&&de(e,n)&&"body"!==b(e)})):[]}(e):[].concat(t),r=[].concat(i,[n]),o=r[0],a=r.reduce((function(t,n){var i=fe(e,n);return t.top=g(i.top,t.top),t.right=v(i.right,t.right),t.bottom=v(i.bottom,t.bottom),t.left=g(i.left,t.left),t}),fe(e,o));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function ge(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function ve(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function me(e,t){void 0===t&&(t={});var n=t,i=n.placement,r=void 0===i?e.placement:i,o=n.boundary,a=void 0===o?B:o,s=n.rootBoundary,u=void 0===s?z:s,l=n.elementContext,c=void 0===l?W:l,d=n.altBoundary,f=void 0!==d&&d,p=n.padding,g=void 0===p?0:p,v=ge("number"!==typeof g?g:ve(g,F)),m=c===W?V:W,y=e.rects.popper,b=e.elements[f?m:c],C=pe(h(b)?b:b.contextElement||w(e.elements.popper),a,u),k=_(e.elements.reference),S=ie({reference:k,element:y,strategy:"absolute",placement:r}),x=he(Object.assign({},y,S)),L=c===W?x:k,E={top:C.top-L.top+v.top,bottom:L.bottom-C.bottom+v.bottom,left:C.left-L.left+v.left,right:L.right-C.right+v.right},N=e.modifiersData.offset;if(c===W&&N){var D=N[r];Object.keys(E).forEach((function(e){var t=[R,A].indexOf(e)>=0?1:-1,n=[I,A].indexOf(e)>=0?"y":"x";E[e]+=D[n]*t}))}return E}var _e={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var r=n.mainAxis,o=void 0===r||r,a=n.altAxis,s=void 0===a||a,u=n.fallbackPlacements,l=n.padding,c=n.boundary,d=n.rootBoundary,h=n.altBoundary,f=n.flipVariations,p=void 0===f||f,g=n.allowedAutoPlacements,v=t.options.placement,m=ee(v),_=u||(m===v||!p?[ue(v)]:function(e){if(ee(e)===Z)return[];var t=ue(e);return[ce(e),t,ce(t)]}(v)),y=[v].concat(_).reduce((function(e,n){return e.concat(ee(n)===Z?function(e,t){void 0===t&&(t={});var n=t,i=n.placement,r=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,u=n.allowedAutoPlacements,l=void 0===u?U:u,c=te(i),d=c?s?Y:Y.filter((function(e){return te(e)===c})):F,h=d.filter((function(e){return l.indexOf(e)>=0}));0===h.length&&(h=d);var f=h.reduce((function(t,n){return t[n]=me(e,{placement:n,boundary:r,rootBoundary:o,padding:a})[ee(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:n,boundary:c,rootBoundary:d,padding:l,flipVariations:p,allowedAutoPlacements:g}):n)}),[]),b=t.rects.reference,w=t.rects.popper,C=new Map,k=!0,S=y[0],x=0;x<y.length;x++){var L=y[x],E=ee(L),N=te(L)===j,D=[I,A].indexOf(E)>=0,M=D?"width":"height",T=me(t,{placement:L,boundary:c,rootBoundary:d,altBoundary:h,padding:l}),O=D?N?R:P:N?A:I;b[M]>w[M]&&(O=ue(O));var H=ue(O),B=[];if(o&&B.push(T[E]<=0),s&&B.push(T[O]<=0,T[H]<=0),B.every((function(e){return e}))){S=L,k=!1;break}C.set(L,B)}if(k)for(var z=function(e){var t=y.find((function(t){var n=C.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return S=t,"break"},W=p?3:1;W>0;W--){if("break"===z(W))break}t.placement!==S&&(t.modifiersData[i]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ye(e,t,n){return g(e,v(t,n))}var be={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,i=e.name,r=n.mainAxis,o=void 0===r||r,a=n.altAxis,s=void 0!==a&&a,u=n.boundary,l=n.rootBoundary,c=n.altBoundary,d=n.padding,h=n.tether,f=void 0===h||h,p=n.tetherOffset,m=void 0===p?0:p,_=me(t,{boundary:u,rootBoundary:l,padding:d,altBoundary:c}),y=ee(t.placement),b=te(t.placement),w=!b,C=ne(y),k="x"===C?"y":"x",S=t.modifiersData.popperOffsets,x=t.rects.reference,E=t.rects.popper,N="function"===typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,D="number"===typeof N?{mainAxis:N,altAxis:N}:Object.assign({mainAxis:0,altAxis:0},N),M=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,T={x:0,y:0};if(S){if(o){var Z,F="y"===C?I:P,H="y"===C?A:R,B="y"===C?"height":"width",z=S[C],W=z+_[F],V=z-_[H],Y=f?-E[B]/2:0,U=b===j?x[B]:E[B],K=b===j?-E[B]:-x[B],q=t.elements.arrow,G=f&&q?L(q):{width:0,height:0},$=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Q=$[F],X=$[H],J=ye(0,x[B],G[B]),ie=w?x[B]/2-Y-J-Q-D.mainAxis:U-J-Q-D.mainAxis,re=w?-x[B]/2+Y+J+X+D.mainAxis:K+J+X+D.mainAxis,oe=t.elements.arrow&&O(t.elements.arrow),ae=oe?"y"===C?oe.clientTop||0:oe.clientLeft||0:0,se=null!=(Z=null==M?void 0:M[C])?Z:0,ue=z+re-se,le=ye(f?v(W,z+ie-se-ae):W,z,f?g(V,ue):V);S[C]=le,T[C]=le-z}if(s){var ce,de="x"===C?I:P,he="x"===C?A:R,fe=S[k],pe="y"===k?"height":"width",ge=fe+_[de],ve=fe-_[he],_e=-1!==[I,P].indexOf(y),be=null!=(ce=null==M?void 0:M[k])?ce:0,we=_e?ge:fe-x[pe]-E[pe]-be+D.altAxis,Ce=_e?fe+x[pe]+E[pe]-be-D.altAxis:ve,ke=f&&_e?function(e,t,n){var i=ye(e,t,n);return i>n?n:i}(we,fe,Ce):ye(f?we:ge,fe,f?Ce:ve);S[k]=ke,T[k]=ke-fe}t.modifiersData[i]=T}},requiresIfExists:["offset"]},we=function(e,t){return ge("number"!==typeof(e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:ve(e,F))};var Ce={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,i=e.name,r=e.options,o=n.elements.arrow,a=n.modifiersData.popperOffsets,s=ee(n.placement),u=ne(s),l=[P,R].indexOf(s)>=0?"height":"width";if(o&&a){var c=we(r.padding,n),d=L(o),h="y"===u?I:P,f="y"===u?A:R,p=n.rects.reference[l]+n.rects.reference[u]-a[u]-n.rects.popper[l],g=a[u]-n.rects.reference[u],v=O(o),m=v?"y"===u?v.clientHeight||0:v.clientWidth||0:0,_=p/2-g/2,y=c[h],b=m-d[l]-c[f],w=m/2-d[l]/2+_,C=ye(y,w,b),k=u;n.modifiersData[i]=((t={})[k]=C,t.centerOffset=C-w,t)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!==typeof i||(i=t.elements.popper.querySelector(i)))&&de(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ke(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Se(e){return[I,R,A,P].some((function(t){return e[t]>=0}))}var xe=X({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,r=i.scroll,o=void 0===r||r,a=i.resize,s=void 0===a||a,u=d(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&l.forEach((function(e){e.addEventListener("scroll",n.update,J)})),s&&u.addEventListener("resize",n.update,J),function(){o&&l.forEach((function(e){e.removeEventListener("scroll",n.update,J)})),s&&u.removeEventListener("resize",n.update,J)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=ie({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,r=void 0===i||i,o=n.adaptive,a=void 0===o||o,s=n.roundOffsets,u=void 0===s||s,l={placement:ee(t.placement),variation:te(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,oe(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:u})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,oe(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},r=t.elements[e];f(r)&&b(r)&&(Object.assign(r.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});f(i)&&b(i)&&(Object.assign(i.style,o),Object.keys(r).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]},ae,_e,be,Ce,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,a=me(t,{elementContext:"reference"}),s=me(t,{altBoundary:!0}),u=ke(a,i),l=ke(s,r,o),c=Se(u),d=Se(l);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}}]}),Le=n(88807),Ee=n.n(Le),Ne=function(e){return e.reduce((function(e,t){var n=t[0],i=t[1];return e[n]=i,e}),{})},De="undefined"!==typeof window&&window.document&&window.document.createElement?r.useLayoutEffect:r.useEffect,Me=[],Te=function(e,t,n){void 0===n&&(n={});var i=r.useRef(null),o={onFirstUpdate:n.onFirstUpdate,placement:n.placement||"bottom",strategy:n.strategy||"absolute",modifiers:n.modifiers||Me},a=r.useState({styles:{popper:{position:o.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=a[0],u=a[1],l=r.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(e){var t=e.state,n=Object.keys(t.elements);u({styles:Ne(n.map((function(e){return[e,t.styles[e]||{}]}))),attributes:Ne(n.map((function(e){return[e,t.attributes[e]]})))})},requires:["computeStyles"]}}),[]),c=r.useMemo((function(){var e={onFirstUpdate:o.onFirstUpdate,placement:o.placement,strategy:o.strategy,modifiers:[].concat(o.modifiers,[l,{name:"applyStyles",enabled:!1}])};return Ee()(i.current,e)?i.current||e:(i.current=e,e)}),[o.onFirstUpdate,o.placement,o.strategy,o.modifiers,l]),d=r.useRef();return De((function(){d.current&&d.current.setOptions(c)}),[c]),De((function(){if(null!=e&&null!=t){var i=(n.createPopper||xe)(e,t,c);return d.current=i,function(){i.destroy(),d.current=null}}}),[e,t,n.createPopper]),{state:d.current?d.current.state:null,styles:s.styles,attributes:s.attributes,update:d.current?d.current.update:null,forceUpdate:d.current?d.current.forceUpdate:null}},Oe=["bottom-start","bottom","bottom-end","top-start","top","top-end","right-start","right","right-end","left-start","left","left-end"];var Ie=n(2275),Ae=(0,a.Ge)("popup");function Re(e){var t=e.styles,n=e.attributes,i=e.setArrowRef;return r.createElement("div",Object.assign({"data-popper-arrow":!0,ref:i,className:Ae("arrow"),style:t},n),r.createElement("div",{className:Ae("arrow-content")},r.createElement("div",{className:Ae("arrow-circle-wrapper")},r.createElement("div",{className:Ae("arrow-circle",{left:!0})})),r.createElement("div",{className:Ae("arrow-circle-wrapper")},r.createElement("div",{className:Ae("arrow-circle",{right:!0})}))))}var Pe=(0,a.Ge)("popup"),Ze=(0,a.Ge)("popup-wrapper"),Fe=8;function je(e){var t=e.keepMounted,n=void 0!==t&&t,a=e.hasArrow,d=void 0!==a&&a,h=e.offset,f=void 0===h?[0,4]:h,p=e.open,g=e.placement,v=e.anchorRef,m=e.disableEscapeKeyDown,_=e.disableOutsideClick,y=e.disableLayer,b=e.style,w=e.className,C=e.modifiers,k=void 0===C?[]:C,S=e.children,x=e.onEscapeKeyDown,L=e.onOutsideClick,E=e.onClose,N=e.onClick,D=e.onMouseEnter,M=e.onMouseLeave,T=e.container,O=e.strategy,I=e.qa,A=r.useRef(null);(0,l.s)({open:p,disableEscapeKeyDown:m,disableOutsideClick:_,onEscapeKeyDown:x,onOutsideClick:L,onClose:E,contentRefs:[v,A],enabled:!y});var R=function(e){var t=e.anchorRef,n=e.placement,o=void 0===n?Oe:n,a=e.offset,s=e.modifiers,u=void 0===s?[]:s,l=e.strategy,d=r.useState(null),h=(0,c.Z)(d,2),f=h[0],p=h[1],g=r.useState(null),v=(0,c.Z)(g,2),m=v[0],_=v[1],y=Array.isArray(o)?o:[o],b=Te(null===t||void 0===t?void 0:t.current,f,{strategy:l,modifiers:[{name:"arrow",options:{element:m}},{name:"offset",options:{offset:a}},{name:"flip",options:{fallbackPlacements:y.slice(1)}}].concat((0,i.Z)(u)),placement:y[0]});return{attributes:b.attributes,styles:b.styles,setPopperRef:p,setArrowRef:_}}({anchorRef:v,placement:g,offset:d?[f[0],f[1]+Fe]:f,strategy:O,modifiers:[{name:"arrow",options:{enabled:d,padding:4}},{name:"preventOverflow",options:{padding:1}}].concat((0,i.Z)(k))}),P=R.attributes,Z=R.styles,F=R.setPopperRef,j=R.setArrowRef,H=(0,Ie.c)(F,A);return r.createElement(u.h,{container:T},r.createElement(o.Z,{nodeRef:A,in:p,addEndListener:function(e){var t;return null===(t=A.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:(0,s.Y)(Ze),mountOnEnter:!n,unmountOnExit:!n,appear:!0},r.createElement("div",Object.assign({ref:H,style:Z.popper},P.popper,{className:Ze({open:p})}),r.createElement("div",{onClick:N,onMouseEnter:D,onMouseLeave:M,tabIndex:-1,className:Pe({open:p},w),style:b,"data-qa":I},d&&r.createElement(Re,{styles:Z.arrow,attributes:P.arrow,setArrowRef:j}),S))))}},8970:function(e,t,n){"use strict";n.d(t,{h:function(){return o}});var i=n(84453),r=n(50754);function o(e){var t=e.container,n=e.children,o=(0,r.X)(),a=null!==t&&void 0!==t?t:o;return a?i.createPortal(n,a):null}},32521:function(e,t,n){"use strict";n.d(t,{E:function(){return h}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(4519),u=n(67119),l=n(780),c=n.n(l),d=(0,u.Ge)("progress"),h=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.view,n=e.className;return s.createElement("div",{className:d({view:t},n)},this.renderText(),this.renderContent())}},{key:"getTheme",value:function(){if(n.isProgressWithStack(this.props))throw new Error("Unexpected behavior");var e=this.props,t=e.theme,i=e.colorStops,r=e.colorStopsValue,o=e.value;if(i){var a=i.find((function(e,t){var a="number"===typeof r?r:o;return n.isBetween(a,t>1?i[t-1].stop:0,t<i.length-1?e.stop:100)}));return a?a.theme:t}return t}},{key:"renderContent",value:function(){return n.isProgressWithStack(this.props)?this.renderStack(this.props):this.renderItem(this.props)}},{key:"renderItem",value:function(e){var t=e.value,i=d("item",{theme:this.getTheme()}),r=n.getOffset(t),o={transform:"translateX(".concat(r,"%)")};return n.isFiniteNumber(t)?s.createElement("div",{className:i,style:o},this.renderInnerText(r)):null}},{key:"renderStack",value:function(e){var t=e.stack,i=e.stackClassName,r=d("stack",i),o=e.value||n.getValueFromStack(t),a=n.getOffset(o),u={transform:"translateX(".concat(a,"%)")},l={width:"".concat(-a,"%")};return s.createElement("div",{className:r,style:u},s.createElement("div",{className:d("item"),style:l}),t.map((function(e,t){var i=e.value,r=e.color,a=e.title,u=e.theme,c=e.className,h=e.content;l={width:"".concat(i,"%"),backgroundColor:r};var f={};return"undefined"===typeof r&&(f.theme=u||"default"),n.isFiniteNumber(o)?s.createElement("div",{key:t,className:d("item",f,c),style:l,title:a},h):null})),this.renderInnerText(a))}},{key:"renderInnerText",value:function(e){var t=this.props.text;if(!t)return null;var n=d("text-inner"),i={transform:"translateX(".concat(-e,"%)")};return s.createElement("div",{className:n,style:i},t)}},{key:"renderText",value:function(){var e=this.props.text,t=d("text");return s.createElement("div",{className:t},e)}}],[{key:"isFiniteNumber",value:function(e){return isFinite(e)&&!isNaN(e)}},{key:"isBetween",value:function(e,t,n){return e>=t&&e<=n}},{key:"getOffset",value:function(e){return e<100?e-100:0}},{key:"getValueFromStack",value:function(e){return c()(e,(function(e){return e.value}))}},{key:"isProgressWithStack",value:function(e){return void 0!==e.stack}}]),n}(s.Component);h.defaultProps={text:"",theme:"default",view:"normal"}},50355:function(e,t,n){"use strict";n.d(t,{E:function(){return d}});var i=n(4519),r=n(67119),o=n(32711),a=n(81794),s=(0,r.Ge)("radio-button"),u=i.forwardRef((function(e,t){var n=e.disabled,r=void 0!==n&&n,u=e.content,l=e.children,c=(0,a.x)(e),d=c.checked,h=c.inputProps,f=u||l,p=(0,o.y)(f);return i.createElement("label",{className:s("option",{disabled:r,checked:d}),ref:t},i.createElement("input",Object.assign({},h,{className:s("option-control")})),i.createElement("span",{className:s("option-outline")}),f&&i.createElement("span",{className:s("option-text",{icon:p})},f))})),l=n(96777),c=(0,r.Ge)("radio-button"),d=i.forwardRef((function(e,t){var n=e.size,r=void 0===n?"m":n,o=e.width,a=e.style,s=e.className,d=e.qa,h=e.children,f=e.options;f||(f=i.Children.toArray(h).map((function(e){var t=e.props;return{value:t.value,content:t.content||t.children,disabled:t.disabled}})));var p=(0,i.useRef)(null),g=(0,i.useRef)(),v=(0,i.useCallback)((function(e){if(e){var t=p.current;if(t){var n=g.current;if(n&&n!==e){var i=function(e){t.style.left="".concat(e.offsetLeft,"px"),t.style.width="".concat(e.offsetWidth,"px")};i(n),t.hidden=!1,i(e)}g.current=e}}}),[]),m=(0,i.useCallback)((function(e){e.currentTarget.hidden=!0}),[]),_=(0,l.a)(Object.assign(Object.assign({},e),{options:f})),y=_.containerProps,b=_.optionsProps;return i.createElement("div",Object.assign({},y,{ref:t,style:a,className:c({size:r,width:o},s),"data-qa":d}),i.createElement("div",{ref:p,className:c("plate"),onTransitionEnd:m,hidden:!0}),b.map((function(e){return i.createElement(u,Object.assign({},e,{key:e.value,ref:e.checked?v:void 0}))})))}));d.Option=u},27982:function(e,t,n){"use strict";n.d(t,{P:function(){return H}});var i=n(29439),r=n(4519),o=n(2275),a=n(39253),s=n(90423),u={filter:""},l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_CONTROL_RECT":var n=t.payload.controlRect;return Object.assign(Object.assign({},e),{controlRect:n});case"SET_FILTER":var i=t.payload.filter;return Object.assign(Object.assign({},e),{filter:i});default:return e}},c=n(93433),d=n(51299),h=function(e){var t=e.getOptionHeight,n=e.size,i=e.option,r=e.index;if("label"in i){var o=0===r?0:d.rn;return d._X[n]+o}return t?t(i):d._X[n]},f=function(e){return"string"===typeof e.content?e.content:"string"===typeof e.children?e.children:e.text?e.text:e.value},p=function(e){return function(e){return r.Children.toArray(e)}(e).reduce((function(e,t){var n=t.props;if("label"in n){var i=n.options||function(e){return r.Children.toArray(e).reduce((function(e,t){var n=t.props;return"value"in n&&e.push(n),e}),[])}(n.children);e.push({options:i,label:n.label})}return"value"in n&&e.push(Object.assign({},n)),e}),[])},g=function(e,t){return t?t.findIndex((function(t){if("label"in t)return!1;if(t.disabled)return!1;var n,i=f(t);return(n=e,new RegExp(n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"i")).test(i)})):-1},v=function(e){var t;return(null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.getItems())||[]},m=function(e){return Boolean(e&&"label"in e)},_=function(e){var t=e.options,n=e.filter,i=e.filterOption,r=t.filter((function(e){return!!m(e)||(i?i(e,n):function(e,t){var n=f(e).toLocaleLowerCase(),i=t.toLocaleLowerCase();return Boolean(n.match(i))}(e,n))}));return r.reduce((function(e,t,n){var i=m(t),o=m(e[n-1]),a=n===r.length-1;return i&&o&&e.pop(),(!i||i&&!a)&&e.push(t),e}),[])},y=function(e){var t=e.onChange,n=e.open,o=e.disabled,a=r.useState(""),u=(0,i.Z)(a,2),l=u[0],c=u[1],h=r.useState(),f=(0,i.Z)(h,2),p=f[0],g=f[1],v=r.useCallback((function(e){if(clearTimeout(p),e){var t=window.setTimeout((function(){return c("")}),d.gX);g(t)}}),[p]),m=r.useCallback((function(e){e.stopPropagation();var t=function(e,t){var n=1===e.length,i="";return e===s.V.BACKSPACE&&t.length?i=t.slice(0,t.length-1):n&&(i=(t+e).trim()),i}(e.key,l);l!==t&&(v(t),c(t))}),[v,l]);r.useEffect((function(){return n&&!o?document.addEventListener("keydown",m):n||o||c(""),function(){n&&!o&&document.removeEventListener("keydown",m)}}),[m,n,o]),r.useEffect((function(){return n||clearTimeout(p),function(){return clearTimeout(p)}}),[n,p]),r.useEffect((function(){t(l)}),[t,l])},b=n(88216),w=n(95101),C=r.forwardRef((function(e,t){var n=e.setOpen,i=e.onKeyDown,a=e.renderControl,s=e.view,u=e.size,l=e.pin,c=e.selectedOptionsContent,h=e.width,f=e.className,p=e.qa,g=e.name,v=e.label,m=e.placeholder,_=e.open,y=e.disabled,C=r.useRef(null),k=(0,o.c)(t,C),S=Boolean(c),x=Boolean(m&&!S),L=Object.assign({view:s,size:u,pin:l,disabled:y,open:_},"string"===typeof h&&{width:h}),E={};"number"===typeof h&&(E.width=h);var N=r.useCallback((function(){return n(!_)}),[n,_]);return a?a({onKeyDown:i,onClick:N,ref:k,open:Boolean(_)}):r.createElement("button",{ref:k,name:g,className:(0,d.sj)(L,f),style:E,"aria-haspopup":"listbox",disabled:y,onClick:N,onKeyDown:i,type:"button","data-qa":p},v&&r.createElement("span",{className:(0,d.sj)("label")},v),x&&r.createElement("span",{className:(0,d.sj)("placeholder")},m),S&&r.createElement("span",{className:(0,d.sj)("option-text")},c),r.createElement(b.J,{className:(0,d.sj)("chevron-icon"),data:w.T}))}));C.displayName="SelectControl";var k=n(22920),S=function(e){var t=e.handleClose,n=e.verticalOffset,i=e.width,o=e.minWidth,a=e.open,s=e.controlRef,u=e.children,l=e.className;return r.createElement(k.G,{className:l,qa:d.Gd.POPUP,style:{width:i,minWidth:o},anchorRef:s,offset:[d.YF,n],placement:["bottom-start","top-start"],open:a,onClose:t},u)},x=n(67119),L=n(6141),E=(0,x.Ge)("select-filter"),N=r.forwardRef((function(e,t){var n=e.onChange,i=e.onKeyDown,o=e.renderFilter,a=e.size,s=e.value,u=e.placeholder,l=r.useRef(null),c=r.useRef(null);return r.useImperativeHandle(t,(function(){return{getHeight:function(){var e;return null===(e=l.current)||void 0===e?void 0:e.getBoundingClientRect().height},focus:function(){var e;return null===(e=c.current)||void 0===e?void 0:e.focus({preventScroll:!0})}}}),[]),r.createElement("div",{ref:l,className:E()},o?o({onChange:n,onKeyDown:i,value:s,ref:c}):r.createElement(L.o,{controlRef:c,controlProps:{className:E("input"),size:1},size:a,value:s,placeholder:u,onUpdate:n,onKeyDown:i}))}));N.displayName="SelectFilter";var D=n(99507),M=(0,x.Ge)("select-list"),T=function(e){var t=e.label;return r.createElement("div",{className:M("group-label")},r.createElement("div",{className:M("group-label-content")},t))},O=n(93453);function I(e){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"none"},O.i,e),r.createElement("path",{d:"M3 7.75L6.75 11.5L13 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}))}var A=(0,x.Ge)("select-list"),R=function(e){var t=e.option,n=t.content,i=t.children,o=t.disabled;return r.createElement("span",{className:A("option-default-label",{disabled:o})},n||i)},P=function(e){var t=e.renderOption,n=e.value,i=e.option,o=e.multiple,a=-1!==n.indexOf(i.value),s=t?t(i):r.createElement(R,{option:i});return r.createElement("div",{className:A("option",{colored:a&&!o})},s,o&&r.createElement(b.J,{className:A("tick-icon",{shown:a&&o}),data:I}))},Z=r.forwardRef((function(e,t){var n=e.onOptionClick,i=e.renderOption,o=e.getOptionHeight,a=e.size,s=e.flattenOptions,u=e.value,l=e.listHeight,c=e.filterHeight,f=e.multiple,p=e.virtualized,g=r.useCallback((function(e,t){return h({getOptionHeight:o,size:a,option:e,index:t})}),[o,a]),v=r.useCallback((function(e){return"label"in e?r.createElement(T,{label:e.label}):r.createElement(P,{option:e,value:u,multiple:f,renderOption:i})}),[i,u,f]);return r.createElement("div",{className:(0,d.V_)({size:a,virtualized:p}),style:{maxHeight:"calc(90vh - ".concat(c,"px)")},"data-qa":d.Gd.LIST},r.createElement(D.a,{ref:t,itemClassName:(0,d.V_)("item"),itemHeight:g,itemsHeight:p?l:void 0,items:s,filterable:!1,virtualized:p,renderItem:v,onItemClick:n}))}));Z.displayName="SelectList";var F=(0,x.Ge)("select-empty-placeholder"),j=function(e){var t=e.renderEmptyOptions,n=e.filter;return r.createElement("div",{className:F({empty:!t})},null===t||void 0===t?void 0:t({filter:n}))},H=r.forwardRef((function(e,t){var n,m=e.onUpdate,b=e.onOpenChange,w=e.onFilterChange,k=e.renderControl,x=e.renderFilter,L=e.renderOption,E=e.renderSelectedOption,D=e.renderEmptyOptions,M=e.getOptionHeight,T=e.filterOption,O=e.name,I=e.className,A=e.popupClassName,R=e.qa,P=e.value,F=e.defaultValue,H=e.defaultOpen,B=e.label,z=e.placeholder,W=e.filterPlaceholder,V=e.width,Y=e.popupWidth,U=e.virtualizationThreshold,K=void 0===U?d._7:U,q=e.view,G=void 0===q?"normal":q,$=e.size,Q=void 0===$?"m":$,X=e.pin,J=void 0===X?"round-round":X,ee=e.multiple,te=void 0!==ee&&ee,ne=e.disabled,ie=void 0!==ne&&ne,re=e.filterable,oe=void 0!==re&&re,ae=r.useReducer(l,u),se=(0,i.Z)(ae,2),ue=se[0],le=ue.controlRect,ce=ue.filter,de=se[1],he=r.useRef(null),fe=r.useRef(null),pe=r.useRef(null),ge=(0,o.c)(t,he),ve=(0,a.L)({onUpdate:m,value:P,defaultValue:F,defaultOpen:H,multiple:te}),me=ve.value,_e=ve.open,ye=ve.setOpen,be=ve.handleSelection,we=function(e){return e.reduce((function(e,t){return"label"in t?(e.push({label:t.label,disabled:!0}),e.push.apply(e,(0,c.Z)(t.options||[]))):e.push(t),e}),[])}(e.options||p(e.children)),Ce=oe&&ce?_({options:we,filter:ce,filterOption:T}):we,ke=function(e,t,n){if(0===t.length)return null;var i=e.reduce((function(e,n){return"label"in n||t.includes(n.value)&&e.push(n),e}),[]);return n?i.map((function(e,t){return r.createElement(r.Fragment,{key:e.value},n(e,t))})):i.map((function(e){return f(e)})).join(", ")}(we,me,E),Se=Ce.length>=K,xe=function(e){var t=e.getOptionHeight,n=e.size;return e.options.reduce((function(e,i,r){return e+h({getOptionHeight:t,size:n,option:i,index:r})}),0)}({options:Ce,getOptionHeight:M,size:Q}),Le=(null===(n=fe.current)||void 0===n?void 0:n.getHeight())||0,Ee=xe+Le,Ne=function(e,t){var n=null===t||void 0===t?void 0:t.width;return e&&n?n>d.T7?n:d.T7:n?n-2*d.YF:void 0}(Se,le),De=function(e){var t=e.height,n=e.controlRect;if(!n)return d.YF;var i=window.innerHeight/100,r=5*i,o=90*i,a=o<t?o:t,s="bottom-start"===(n.y+n.height/2<window.innerHeight/2?"bottom-start":"top-start")?window.innerHeight-n.y-n.height:n.y,u=d.YF;return a>s&&(u=-1*(a-s)-r-d.Kn),u}({height:Ee,controlRect:le}),Me=r.useCallback((function(){return ye(!1)}),[ye]),Te=r.useCallback((function(e){var t,n;if(e&&!("label"in e)){if(te){var i=null===(t=null===pe||void 0===pe?void 0:pe.current)||void 0===t?void 0:t.getActiveItem();null===(n=fe.current)||void 0===n||n.focus(),"number"===typeof i&&setTimeout((function(){var e;null===(e=null===pe||void 0===pe?void 0:pe.current)||void 0===e||e.activateItem(i,!0)}),50)}be(e)}}),[be,te]),Oe=r.useCallback((function(e){var t;[s.V.ENTER,s.V.SPACEBAR].includes(e.key)&&_e&&(e.preventDefault(),e.key===s.V.SPACEBAR&&Te(function(e){var t,n=v(e),i=null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.getActiveItem();return"number"===typeof i?n[i]:void 0}(pe))),null===(t=null===pe||void 0===pe?void 0:pe.current)||void 0===t||t.onKeyDown(e)}),[Te,_e]),Ie=r.useCallback((function(e){var t;null===(t=null===pe||void 0===pe?void 0:pe.current)||void 0===t||t.onKeyDown(e)}),[]),Ae=r.useCallback((function(e){null===w||void 0===w||w(e),de({type:"SET_FILTER",payload:{filter:e}})}),[w]),Re=r.useCallback((function(e){var t;if(e){var n=g(e,v(pe));"number"===typeof n&&-1!==n&&(null===(t=null===pe||void 0===pe?void 0:pe.current)||void 0===t||t.activateItem(n,!0))}}),[]);return y({onChange:Re,open:_e,disabled:oe}),r.useEffect((function(){var e,t;if(_e){!function(e){var t,n=v(e),i=n[0]&&"label"in n[0];null===(t=null===e||void 0===e?void 0:e.current)||void 0===t||t.activateItem(i?1:0,!1)}(pe);var n=null===(e=he.current)||void 0===e?void 0:e.getBoundingClientRect();oe&&(null===(t=fe.current)||void 0===t||t.focus()),de({type:"SET_CONTROL_RECT",payload:{controlRect:n}})}else de({type:"SET_FILTER",payload:{filter:""}});null===b||void 0===b||b(_e)}),[_e,oe,b]),r.createElement(r.Fragment,null,r.createElement(C,{ref:ge,className:I,qa:R,name:O,view:G,size:Q,pin:J,width:V,label:B,placeholder:z,selectedOptionsContent:ke,open:_e,disabled:ie,setOpen:ye,onKeyDown:Oe,renderControl:k}),r.createElement(S,{className:A,controlRef:he,width:Y,minWidth:Ne,verticalOffset:De,open:_e,handleClose:Me},oe&&r.createElement(N,{ref:fe,size:Q,value:ce,placeholder:W,onChange:Ae,onKeyDown:Ie,renderFilter:x}),Ce.length?r.createElement(Z,{ref:pe,size:Q,value:me,flattenOptions:Ce,listHeight:xe,filterHeight:Le,multiple:te,virtualized:Se,onOptionClick:Te,renderOption:L,getOptionHeight:M}):r.createElement(j,{filter:ce,renderEmptyOptions:D})))}));H.Option=function(){return null},H.OptionGroup=function(){return null}},51299:function(e,t,n){"use strict";n.d(t,{Gd:function(){return f},Kn:function(){return u},T7:function(){return c},V_:function(){return o},YF:function(){return l},_7:function(){return h},_X:function(){return a},gX:function(){return d},rn:function(){return s},sj:function(){return r}});var i=n(67119),r=(0,i.Ge)("select"),o=(0,i.Ge)("select-list"),a={s:28,m:28,l:32,xl:36},s=5,u=4,l=1,c=100,d=2e3,h=50,f={LIST:"select-list",POPUP:"select-popup"}},73692:function(e,t,n){"use strict";n.d(t,{O:function(){return o}});var i=n(4519),r=(0,n(67119).Ge)("skeleton");function o(e){var t=e.className,n=e.style;return i.createElement("div",{className:r(null,t),style:n})}},44306:function(e,t,n){"use strict";n.d(t,{r:function(){return s}});var i=n(4519),r=n(67119),o=n(66301),a=(0,r.Ge)("switch"),s=i.forwardRef((function(e,t){var n=e.size,r=void 0===n?"m":n,s=e.disabled,u=void 0!==s&&s,l=e.content,c=e.children,d=e.title,h=e.style,f=e.className,p=e.qa,g=(0,o.O)(e),v=g.checked,m=g.inputProps,_=l||c;return i.createElement("label",{ref:t,title:d,style:h,className:a({size:r,disabled:u,checked:v},f),"data-qa":p},i.createElement("span",{className:a("indicator")},i.createElement("input",Object.assign({},m,{className:a("control")})),i.createElement("span",{className:a("outline")}),i.createElement("span",{className:a("slider")})),_&&i.createElement("span",{className:a("text")},_))}))},27689:function(e,t,n){"use strict";n.d(t,{N:function(){return y}});var i=n(29439),r=n(4519),o=n(67119),a=n(99507),s=n(88216),u=n(22920),l=n(20970),c=n(23114),d=n(93453);function h(e){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},d.i,e),r.createElement("path",{d:"M5.95 11.008L1.863 6.572.392 7.927l5.533 6.003 9.67-10.114-1.444-1.381z"}))}function f(e){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},d.i,e),r.createElement("path",{d:"M5.75 6.232C5.75 3.811 6.953 3.5 8 3.5s2.25.31 2.25 2.732V7h-4.5v-.768zm6 .768v-.768C11.75 2.55 9.4 2 8 2s-3.75.55-3.75 4.232V7H3v7h10V7h-1.25z"}))}var p=n(28510),g=JSON.parse('{"button_switcher":"Columns","button_apply":"Apply"}'),v=JSON.parse('{"button_switcher":"\u041a\u043e\u043b\u043e\u043d\u043a\u0438","button_apply":"\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c"}'),m=(0,p.U)({en:g,ru:v},"TableColumnSetup"),_=(0,o.Ge)("table-column-setup"),y=function(e){var t=e.switcher,n=e.disabled,o=e.popupWidth,d=e.popupPlacement,p=e.className,g=e.items,v=e.getItemTitle,y=void 0===v?function(e){return e.title}:v,b=e.sortable,w=void 0===b||b,C=e.filterable,k=void 0!==C&&C,S=e.showStatus,x=r.useState(!1),L=(0,i.Z)(x,2),E=L[0],N=L[1],D=r.useState([]),M=(0,i.Z)(D,2),T=M[0],O=M[1],I=r.useState([]),A=(0,i.Z)(I,2),R=A[0],P=A[1],Z=r.useState([]),F=(0,i.Z)(Z,2),j=F[0],H=F[1],B=r.useRef(null),z=function(e){return e.filter((function(e){return e.required})).map((function(e){return Object.assign(Object.assign({},e),{disabled:!0})}))},W=function(e){return e.filter((function(e){return!e.required}))};r.useEffect((function(){g!==T&&(O(g),H(z(g)),P(W(g)))}),[T,g]);var V=function(){N(!1),H(z(T)),P(W(T))},Y=function(e){return 36*Math.min(5,e.length)+18},U=function(e){return 36*e.length},K=function(e){!function(e){P(e)}(R.map((function(t){return t===e?Object.assign(Object.assign({},t),{selected:!t.selected}):t})))},q=function(e){return r.createElement("div",{className:_("item-content")},e.required?r.createElement("div",{className:_("lock-wrap",{visible:e.selected})},r.createElement(s.J,{data:f})):r.createElement("div",{className:_("tick-wrap",{visible:e.selected})},r.createElement(s.J,{data:h,className:_("tick"),width:10,height:10})),r.createElement("div",{className:_("title")},y(e)))};return r.createElement("div",{className:_(null,p)},r.createElement("div",{className:_("control"),ref:B,onClick:function(){n||(N(!E),H(z(T)),P(W(T)))}},t||r.createElement(l.z,{disabled:n},r.createElement(s.J,{data:c.U}),m("button_switcher"),function(){if(!S)return null;var e=T.reduce((function(e,t){return t.selected?e+1:e}),0),t=g.length,n="".concat(e,"/").concat(t);return r.createElement("span",{className:_("status")},n)}())),r.createElement(u.G,{anchorRef:B,placement:d||["bottom-start","bottom-end","top-start","top-end"],open:E,onClose:function(){return V()},className:_("popup"),style:{width:o}},j.length?r.createElement(a.a,{items:j,itemHeight:36,itemsHeight:U,filterable:k,renderItem:q,itemsClassName:_("items"),itemClassName:_("item"),virtualized:!1}):null,function(){return r.createElement(a.a,{items:R,itemHeight:36,itemsHeight:Y,sortable:w,filterable:k,sortHandleAlign:"right",onSortEnd:(e=R,function(t){var n=t.oldIndex,i=t.newIndex;P(a.a.moveListElement(e.slice(),n,i))}),onItemClick:K,renderItem:q,itemsClassName:_("items"),itemClassName:_("item"),virtualized:!1});var e}(),r.createElement("div",{className:_("controls")},r.createElement(l.z,{view:"action",width:"max",onClick:function(){V();var t=j.concat(R);T!==t&&e.onUpdate(t)}},m("button_apply")))))}},64624:function(e,t,n){"use strict";n.d(t,{m:function(){return c},c:function(){return i}});var i,r=n(4519),o=n(67119),a=n(79403),s=(0,o.Ge)("tabs"),u=function(e){var t=e.id,n=e.className,i=e.title,o=e.meta,u=e.hint,l=e.icon,c=e.counter,d=e.label,h=e.active,f=e.disabled,p=e.hasOverflow,g=e.extraProps,v=e.onClick,m=(0,r.useMemo)((function(){return void 0!==u?u:"string"===typeof i?i:void 0}),[u,i]);return r.createElement("div",Object.assign({},g,{role:"tab","aria-selected":!0===h,"aria-disabled":!0===f,tabIndex:f?-1:0,className:s("item",{active:h,disabled:f,overflow:Boolean(p)},n),title:m,onClick:function(){v(t)},onKeyDown:function(e){" "===e.key&&v(t)}}),r.createElement("div",{className:s("item-content")},l&&r.createElement("div",{className:s("item-icon")},l),r.createElement("div",{className:s("item-title")},i||t),"number"===typeof c&&r.createElement("div",{className:s("item-counter")},c),d&&r.createElement(a._,{className:s("item-label"),theme:d.theme},d.content)),o&&r.createElement("div",{className:s("item-meta")},o))},l=(0,o.Ge)("tabs");!function(e){e.Horizontal="horizontal",e.Vertical="vertical"}(i||(i={}));var c=(0,r.forwardRef)((function(e,t){var n=e.direction,o=void 0===n?i.Horizontal:n,a=e.size,s=void 0===a?"m":a,c=e.activeTab,d=e.allowNotSelected,h=void 0!==d&&d,f=e.items,p=void 0===f?[]:f,g=e.className,v=e.onSelectTab,m=e.wrapTo,_=e.qa,y=(0,r.useMemo)((function(){return c||(h||0===p.length?void 0:p[0].id)}),[c,h,p]),b=function(e){v&&v(e)};return r.createElement("div",{role:"tablist",className:l({direction:o,size:s},g),"data-qa":_,ref:t},p.map((function(e,t){var n=r.createElement(u,Object.assign({key:e.id},e,{active:e.id===y,onClick:b}));return m?m(e,n,t):n})))}));c.displayName="Tabs"},97736:function(e,t,n){"use strict";n.d(t,{x:function(){return s}});var i=n(15791),r=n(4519),o=n(65509),a=n(12490),s=function(e){var t=e.as,n=void 0===t?"span":t,s=e.children,u=e.variant,l=e.className,c=e.ellipsis,d=e.color,h=e.title,f=e.titleAttribute,p=e.whiteSpace,g=e.wordBreak,v=(0,i._T)(e,["as","children","variant","className","ellipsis","color","title","titleAttribute","whiteSpace","wordBreak"]);return r.createElement(n,Object.assign({className:(0,o.f)({variant:u,ellipsis:c,whiteSpace:p,wordBreak:g},d?(0,a.V)({color:d},l):l)},v,{title:h||f}),s)}},12490:function(e,t,n){"use strict";n.d(t,{b:function(){return r},V:function(){return o}});var i=(0,n(67119).Ge)("color-text"),r=["primary","complementary","secondary","hint","info","positive","warning-medium","warning-heavy","danger","utility","misc","special","link","link-hover","link-visited","link-visited-hover","yandex-red","dark-primary","dark-complementary","dark-secondary","light-primary","light-complementary","light-secondary","light-hint","inverted-primary","inverted-complementary","inverted-secondary","inverted-hint"],o=function(e,t){var n=e.color;return i({color:n},t)}},65509:function(e,t,n){"use strict";n.d(t,{S:function(){return r},f:function(){return o}});var i=(0,n(67119).Ge)("text"),r=["display-4","display-3","display-2","display-1","header-2","header-1","subheader-3","subheader-2","subheader-1","body-3","body-2","body-1","body-short","caption-2","caption-1","code-3","code-inline-3","code-2","code-inline-2","code-1","code-inline-1"],o=function(e,t){var n=e.variant,r=void 0===n?"body-1":n,o=e.ellipsis,a=e.whiteSpace,s=e.wordBreak;return i({variant:r,ellipsis:o,ws:a,wb:s},t)}},6141:function(e,t,n){"use strict";n.d(t,{o:function(){return x}});var i=n(29439),r=n(4519),o=n(67119),a=n(2275),s=n(81451),u=n(17571),l=n.n(u),c=16;var d=n(14779),h=(0,o.Ge)("text-input");function f(e){var t,n=e.name,i=e.id,o=e.tabIndex,s=e.autoFocus,u=e.autoComplete,l=e.placeholder,c=e.value,d=e.defaultValue,f=e.onChange,p=e.onFocus,g=e.onBlur,v=e.onKeyDown,m=e.onKeyUp,_=e.onKeyPress,y=e.controlRef,b=e.controlProps,w=e.disabled,C=e.rows,k=e.minRows,S=void 0===k?1:k,x=e.maxRows,L=r.useRef(null),E=(0,a.c)(y,L),N=C||S,D=r.useCallback((function(){var e=null===L||void 0===L?void 0:L.current;if(e&&!C){var t=((c||e.value).match(/\n/g)||[]).length+1,n=getComputedStyle(e),i=parseInt(n.getPropertyValue("line-height"),10),r=parseInt(n.getPropertyValue("border-top-width"),10),o=parseInt(n.getPropertyValue("padding-top"),10),a=Math.floor(e.scrollHeight/i);x&&x<Math.max(a,t)?(e.style.height="auto",e.style.height="".concat(x*i+2*o+2*r,"px")):(e.style.height="auto",e.style.height="".concat(e.scrollHeight+2*r,"px"))}}),[C,x,c]);r.useEffect(D,[D]);return r.createElement("textarea",Object.assign({},b,{ref:E,style:Object.assign(Object.assign({},null===(t=b)||void 0===t?void 0:t.style),{height:C?"auto":void 0}),className:h("control",{type:"textarea"},null===b||void 0===b?void 0:b.className),name:n,id:i,tabIndex:o,placeholder:l,value:c,defaultValue:d,rows:N,autoFocus:s,autoComplete:u,onChange:function(e){f?f(e):D()},onFocus:p,onBlur:g,onKeyDown:v,onKeyUp:m,onKeyPress:_,disabled:w}))}var p=(0,o.Ge)("text-input");function g(e){var t=e.type,n=e.name,i=e.id,o=e.tabIndex,a=e.autoFocus,s=e.autoComplete,u=e.placeholder,l=e.value,c=e.defaultValue,d=e.onChange,h=e.onFocus,f=e.onBlur,g=e.onKeyDown,v=e.onKeyUp,m=e.onKeyPress,_=e.controlProps,y=e.controlRef,b=e.disabled;return r.createElement("input",Object.assign({},_,{ref:y,className:p("control",{type:"input"},null===_||void 0===_?void 0:_.className),type:t,name:n,id:i,tabIndex:o,placeholder:u,value:l,defaultValue:c,autoFocus:a,autoComplete:s,onChange:d,onFocus:h,onBlur:f,onKeyDown:g,onKeyUp:v,onKeyPress:m,disabled:b}))}var v=n(20970),m=n(88216),_=n(34740),y=n(28510),b=JSON.parse('{"label_clear-button":"Clear input value"}'),w=JSON.parse('{"label_clear-button":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435"}'),C=(0,y.U)({en:b,ru:w},"text-input"),k=(0,o.Ge)("text-input"),S=function(e){return"boolean"===typeof e?e?"on":"off":e},x=r.forwardRef((function(e,t){var n=e.view,o=void 0===n?"normal":n,u=e.size,h=void 0===u?"m":u,p=e.pin,y=void 0===p?"round-round":p,b=e.name,w=e.value,x=e.defaultValue,L=e.label,E=e.disabled,N=void 0!==E&&E,D=e.multiline,M=void 0!==D&&D,T=e.hasClear,O=void 0!==T&&T,I=e.error,A=e.autoComplete,R=e.onUpdate,P=e.onChange,Z=e.id,F=e.tabIndex,j=e.style,H=e.className,B=e.qa,z=e.controlProps,W=r.useState(null!==x&&void 0!==x?x:""),V=(0,i.Z)(W,2),Y=V[0],U=V[1],K=r.useRef(null),q=r.useRef(null),G=r.useState(!1),$=(0,i.Z)(G,2),Q=$[0],X=$[1],J=void 0!==w,ee=J?w:Y,te=!M&&Boolean(L),ne=(0,d.u)(),ie=te?Z||ne:Z,re=te&&!Z&&!b&&"undefined"===typeof A,oe=(0,a.c)(e.controlRef,K),ae=function(e,t){var n=(0,r.useState)({width:0,height:0}),o=(0,i.Z)(n,2),a=o[0],u=o[1];return(0,r.useLayoutEffect)((function(){if(null===e||void 0===e?void 0:e.current){var t=new s.Z(l()((function(e){if(Array.isArray(e)){var t=e[0];if(t.borderBoxSize){var n=t.borderBoxSize[0]?t.borderBoxSize[0]:t.borderBoxSize;u({width:Math.round(n.inlineSize),height:Math.round(n.blockSize)})}else{var i=t.target;u({width:Math.round(i.offsetWidth),height:Math.round(i.offsetHeight)})}}}),c));return t.observe(e.current),function(){t.disconnect()}}}),[e,t]),a}(te?q:null,h);r.useEffect((function(){var e=K.current;if(e&&M){var t=e.scrollHeight>e.clientHeight;Q!==t&&X(t)}}),[M,ee,Q]);var se=r.useMemo((function(){return function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).error?"error":void 0}({error:I})}),[I]),ue="string"===typeof I,le=Boolean(O&&!N&&ee),ce=Object.assign(Object.assign({},z),{style:Object.assign(Object.assign({},null===z||void 0===z?void 0:z.style),te&&ae.width?{paddingLeft:"".concat(ae.width,"px")}:{})}),de={id:ie,tabIndex:F,name:b,onChange:function(e){var t=e.target.value;J||U(t),P&&P(e),R&&R(t)},autoComplete:re?"off":S(A),controlProps:ce};return r.createElement("span",{ref:t,style:j,className:k({view:o,size:h,pin:"clear"===o?void 0:y,disabled:N,state:se,"has-clear":O,"has-scrollbar":Q},H),"data-qa":B},te&&r.createElement("label",{ref:q,className:k("label"),title:L,htmlFor:ie},"".concat(L)),M?r.createElement(f,Object.assign({},e,de,{controlRef:oe})):r.createElement(g,Object.assign({},e,de,{controlRef:oe})),ue&&r.createElement("div",{className:k("error")},I),O&&r.createElement(v.z,{size:h,className:k("clear",{visible:le}),onClick:function(e){var t=K.current;if(t){t.focus();var n=Object.create(e);n.target=t,n.currentTarget=t,t.value="",P&&P(n),R&&R("")}J||U("")},extraProps:{"aria-label":C("label_clear-button")}},r.createElement(m.J,{data:_.a,size:10})))}))},61165:function(e,t,n){"use strict";n.d(t,{R:function(){return i}});var i=n(4519).createContext(null);i.displayName="ToasterContext"},27448:function(e,t,n){"use strict";n.d(t,{N:function(){return d}});var i=n(93433),r=n(29439),o=n(4519),a=n(61165),s=n(71239);function u(e,t){return-1!==(0,s._)(e,t)}function l(e,t){return u(e,t)?e.filter((function(e){return e.name!==t})):e}var c=n(44593),d=o.forwardRef((function(e,t){var n=e.children,d=o.useState([]),h=(0,r.Z)(d,2),f=h[0],p=h[1],g=o.useCallback((function(e){var t=e.name;p((function(n){var r=n;return u(n,t)&&(r=l(n,t)),[].concat((0,i.Z)(r),[Object.assign(Object.assign({},e),{addedAt:Date.now()})])}))}),[]),v=o.useCallback((function(e){p((function(t){return l(t,e)}))}),[]),m=o.useCallback((function(){p((function(){return[]}))}),[]),_=o.useCallback((function(e,t){p((function(n){if(!u(n,e))return n;var r=(0,s._)(n,e);return[].concat((0,i.Z)(n.slice(0,r)),[Object.assign(Object.assign(Object.assign({},n[r]),t),{isOverride:!0})],(0,i.Z)(n.slice(r+1)))}))}),[]),y=o.useMemo((function(){return{add:g,remove:v,removeAll:m,update:_}}),[g,v,m,_]);return o.useImperativeHandle(t,(function(){return{add:g,createToast:g,remove:v,removeToast:v,removeAll:m,update:_,overrideToast:_}})),o.createElement(a.R.Provider,{value:y},o.createElement(c.i.Provider,{value:f},n))}));d.displayName="ToasterProvider"},44593:function(e,t,n){"use strict";n.d(t,{i:function(){return i}});var i=n(4519).createContext([]);i.displayName="ToastsContext"},32590:function(e,t,n){"use strict";n.d(t,{F:function(){return x}});var i=n(4942),r=n(29439),o=n(4519),a=n(67119);function s(e){var t,n,i=e.onClose,a=e.timeout,s=function(){var e=o.useState(!1),t=(0,r.Z)(e,2),n=t[0],i=t[1];return[o.useCallback((function(){i(!0)}),[]),o.useCallback((function(){i(!1)}),[]),n]}(),u=(0,r.Z)(s,3),l=u[0],c=u[1],d=u[2];return t=i,n=d?null:a,o.useEffect((function(){if("number"===typeof n){var e=setTimeout((function(){t()}),n);return function(){clearTimeout(e)}}}),[t,n]),{onMouseOver:l,onMouseLeave:c}}var u=n(88216),l=n(20970),c=n(93453);function d(e){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"none"},c.i,e),o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m13.441 4.094 8.438 14.66c.633 1.125-.176 2.496-1.477 2.496H3.562c-1.3 0-2.109-1.406-1.476-2.496l8.437-14.66c.633-1.125 2.286-1.09 2.918 0Zm-2.592 12.08c.29-.294.694-.479 1.151-.479.879 0 1.617.739 1.617 1.617 0 .395-.137.75-.364 1.027a1.62 1.62 0 0 1-1.253.59 1.591 1.591 0 0 1-1.617-1.616 1.62 1.62 0 0 1 .466-1.139Zm-.31-6.578a.381.381 0 0 0-.086.299l.246 4.78c.035.247.211.388.422.388h1.723a.408.408 0 0 0 .32-.147.478.478 0 0 0 .102-.24l.246-4.781c.035-.247-.176-.457-.422-.457h-2.215a.438.438 0 0 0-.336.158Z",fill:"currentColor"}))}var h,f=n(34740),p=n(28510),g=JSON.parse('{"label_close-button":"Close"}'),v=JSON.parse('{"label_close-button":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"}'),m=(0,p.U)({en:g,ru:v},"Toaster"),_=(0,a.Ge)("toast"),y="toast-display-end",b="toast-hide-end",w=5e3,C=12,k={info:function(e){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"none"},c.i,e),o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.281 12.25c0-4.781 3.903-8.719 8.719-8.719 4.781 0 8.719 3.938 8.719 8.719 0 4.816-3.938 8.719-8.719 8.719a8.717 8.717 0 0 1-8.719-8.719Zm10.196-3.375c0-.809-.668-1.477-1.477-1.477-.844 0-1.477.668-1.477 1.477 0 .844.633 1.477 1.477 1.477.809 0 1.477-.633 1.477-1.477Zm.07 7.875c.21 0 .422-.176.422-.422v-.844a.454.454 0 0 0-.422-.421h-.422v-3.516a.454.454 0 0 0-.422-.422h-2.25a.427.427 0 0 0-.422.422v.844c0 .246.176.421.422.421h.422v2.25h-.422a.427.427 0 0 0-.422.422v.844c0 .246.176.422.422.422h3.094Z",fill:"currentColor"}))},success:function(e){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"none"},c.i,e),o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 3.531c4.781 0 8.719 3.938 8.719 8.719 0 4.816-3.938 8.719-8.719 8.719a8.717 8.717 0 0 1-8.719-8.719c0-4.781 3.903-8.719 8.719-8.719Zm-1.828 13.36c.21.21.598.21.808 0l6.47-6.47a.596.596 0 0 0 0-.808l-.81-.773a.497.497 0 0 0-.773 0l-5.273 5.273-2.496-2.46a.497.497 0 0 0-.774 0l-.808.773a.596.596 0 0 0 0 .808l3.656 3.657Z",fill:"currentColor"}))},warning:d,error:d};function S(e){var t;return null===(t=e.current)||void 0===t?void 0:t.offsetHeight}function x(e){var t=e.content,n=e.actions,a=e.title,c=e.className,d=e.type,p=e.allowAutoHiding,g=void 0===p||p,v=e.isClosable,x=void 0===v||v,L=e.isOverride,E=void 0!==L&&L,N=e.mobile,D=void 0!==N&&N,M=function(e){var t,n=e.onRemove,i=o.useState(h.Creating),a=(0,r.Z)(i,2),s=a[0],u=a[1];o.useEffect((function(){s===h.Creating?u(h.ShowingIndents):s===h.ShowingIndents&&u(h.ShowingHeight)}),[s]),s===h.ShowingHeight&&(t=function(e){e.animationName===y&&u(h.Shown)}),s===h.Hiding&&(t=function(e){e.animationName===b&&n()});var l=o.useCallback((function(){u(h.Hiding)}),[]);return{status:s,containerProps:{onAnimationEnd:t},handleClose:l}}({onRemove:e.removeCallback}),T=M.status,O=M.containerProps,I=M.handleClose,A=function(e){var t=e.isOverride,n=e.status,i=o.useState(void 0),a=(0,r.Z)(i,2),s=a[0],u=a[1],l=o.useRef(null),c=o.useRef();o.useEffect((function(){n===h.ShowingIndents&&(c.current=S(l))}),[n]),o.useEffect((function(){var e="number"!==typeof c.current||t?S(l):c.current;u(e)}),[t]);var d={};return s&&n!==h.ShowingIndents&&n!==h.Shown&&(d.height=s),{style:d,ref:l}}({isOverride:E,status:T}),R=s({onClose:I,timeout:g?e.timeout||w:void 0}),P=(0,i.Z)({mobile:D,appearing:T===h.ShowingIndents||T===h.ShowingHeight,"show-animation":T===h.ShowingHeight,"hide-animation":T===h.Hiding,created:T!==h.Creating},d||"default",!0);return o.createElement("div",Object.assign({className:_(P,c)},O,A,R),o.createElement("div",{className:_("container")},function(e){var t=e.type;return t?o.createElement(u.J,{data:k[t],className:_("icon",(0,i.Z)({},t,!0))}):null}({type:d}),o.createElement("h3",{className:_("title")},a),x&&o.createElement(l.z,{view:"flat-secondary",className:_("btn-close"),onClick:I,extraProps:{"aria-label":m("label_close-button")}},o.createElement(u.J,{data:f.a,size:C})),Boolean(t)&&o.createElement("div",{className:_("content")},t),function(e){var t=e.actions,n=e.onClose;return t?o.createElement("div",{className:_("actions")},t.map((function(e,t){var i=e.label,r=e.onClick,a=e.view,s=void 0===a?"outlined":a,u=e.removeAfterClick,c=void 0===u||u;return o.createElement(l.z,{key:"".concat(i,"__").concat(t),className:_("action"),onClick:function(){r(),c&&n()},type:"button",view:s},i)}))):null}({actions:n,onClose:I})))}!function(e){e.Creating="creating",e.ShowingIndents="showing-indents",e.ShowingHeight="showing-height",e.Hiding="hiding",e.Shown="shown"}(h||(h={}))},51600:function(e,t,n){"use strict";n.d(t,{B:function(){return f}});var i=n(29439),r=n(4519),o=n(33767),a=n(10393),s=n(44593),u=n(32590);function l(e){var t=e.toasts,n=e.mobile,i=e.removeCallback;return r.createElement(r.Fragment,null,t.map((function(e){return r.createElement(u.F,Object.assign({},e,{key:"".concat(e.name,"_").concat(e.addedAt),mobile:n,removeCallback:function(){return i(e.name)}}))})))}var c=n(8970),d=(0,n(67119).Ge)("toaster");function h(e){var t=e.children,n=e.className,i=e.mobile,o=r.useRef("undefined"!==typeof document?document.createElement("div"):void 0);return r.useEffect((function(){var e=o.current;if(e)return document.body.appendChild(e),function(){document.body.removeChild(e)}}),[]),r.useEffect((function(){o.current&&(o.current.className=d({mobile:i},n))}),[n,i]),r.createElement(c.h,{container:o.current},t)}function f(e){var t=e.className,n=e.mobile,u=e.hasPortal,c=void 0===u||u,d=(0,o.X)(),f=(0,i.Z)(d,1)[0],p=(0,a.P)().remove,g=r.useContext(s.i),v=r.createElement(l,{toasts:g,removeCallback:p,mobile:null!==n&&void 0!==n?n:f});return c?r.createElement(h,{className:t||"",mobile:null!==n&&void 0!==n?n:f},v):v}h.displayName="ToasterPortal",f.displayName="ToasterComponent"},2113:function(e,t,n){"use strict";n.d(t,{b:function(){return _}});var i=n(15861),r=n(15671),o=n(43144),a=n(87757),s=n.n(a),u=n(4519),l=n(84453),c=n(11141),d=n.n(c),h=n(67119),f=n(71239),p=n(27448),g=n(51600),v=Symbol("Toaster instance key"),m=(0,h.Ge)("toaster"),_=function(){function e(t){var n=this;(0,r.Z)(this,e),this._toasts=[],this.className="",this.mobile=!1,this.componentAPI=null,this.add=function(e){var t;null===(t=n.componentAPI)||void 0===t||t.add(e)},this.remove=function(e){var t;null===(t=n.componentAPI)||void 0===t||t.remove(e)},this.removeAll=function(){var e;null===(e=n.componentAPI)||void 0===e||e.removeAll()},this.update=function(e,t){var i;null===(i=n.componentAPI)||void 0===i||i.update(e,t)},this.createToast=function(){var e=(0,i.Z)(s().mark((function e(t){return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n.add(t);case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.removeToast=function(e){n.remove(e)},this.overrideToast=function(e,t){n.update(e,t)},this._getToastIndex=function(e){return(0,f._)(n._toasts,e)};var o=d()(t,["additionalClass"],""),a=d()(t,["className"],""),u=d()(t,["mobile"],!1);if(window[v]instanceof e){var l=window[v];return l.className=a||o,l.mobile=u,l.setRootNodeClassName(),l}this.className=o,this.mobile=u,this._toasts=[],this._createRootNode(),this._render(),window[v]=this}return(0,o.Z)(e,[{key:"_removeToastFromDOM",value:function(e){this.remove(e)}},{key:"_createRootNode",value:function(){this._rootNode=document.createElement("div"),this.setRootNodeClassName(),document.body.appendChild(this._rootNode)}},{key:"_render",value:function(){var e=this;l.render(u.createElement(p.N,{ref:function(t){e.componentAPI=t}},u.createElement(g.B,{hasPortal:!1,mobile:this.mobile})),this._rootNode,(function(){return Promise.resolve()}))}},{key:"destroy",value:function(){this._toasts=[],l.unmountComponentAtNode(this._rootNode),document.body.removeChild(this._rootNode)}},{key:"setRootNodeClassName",value:function(){this._rootNode.className=m({mobile:this.mobile},this.className)}}]),e}()},10393:function(e,t,n){"use strict";n.d(t,{P:function(){return o}});var i=n(4519),r=n(61165);function o(){var e=i.useContext(r.R);if(null===e)throw new Error("Toaster: `useToaster` hook is used out of context");var t=e.add,n=e.remove,o=e.removeAll,a=e.update;return i.useMemo((function(){return{add:t,createToast:t,remove:n,removeToast:n,removeAll:o,update:a,overrideToast:a}}),[t,n,o,a])}},71239:function(e,t,n){"use strict";function i(e,t){return e.findIndex((function(e){return e.name===t}))}n.d(t,{_:function(){return i}})},90423:function(e,t,n){"use strict";n.d(t,{V:function(){return i}});var i={BACKSPACE:"Backspace",ENTER:"Enter",TAB:"Tab",SPACEBAR:" "}},95101:function(e,t,n){"use strict";n.d(t,{T:function(){return o}});var i=n(4519),r=n(93453);function o(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},r.i,e),i.createElement("path",{d:"M3.50172 5.44253C3.19384 5.16544 2.71962 5.19039 2.44253 5.49828C2.16544 5.80616 2.19039 6.28038 2.49828 6.55747L3.50172 5.44253ZM8 10.5L7.49828 11.0575C7.7835 11.3142 8.2165 11.3142 8.50172 11.0575L8 10.5ZM13.5017 6.55747C13.8096 6.28038 13.8346 5.80616 13.5575 5.49828C13.2804 5.19039 12.8062 5.16544 12.4983 5.44253L13.5017 6.55747ZM2.49828 6.55747L7.49828 11.0575L8.50172 9.94253L3.50172 5.44253L2.49828 6.55747ZM8.50172 11.0575L13.5017 6.55747L12.4983 5.44253L7.49828 9.94253L8.50172 11.0575Z"}))}},34740:function(e,t,n){"use strict";n.d(t,{a:function(){return o}});var i=n(4519),r=n(93453);function o(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 10 10",width:"10",height:"10",fill:"currentColor"},r.i,e),i.createElement("path",{d:"M9.75592 8.57741C10.0814 8.90285 10.0814 9.43049 9.75592 9.75592C9.43049 10.0814 8.90285 10.0814 8.57741 9.75592L5 6.17851L1.42259 9.75592C1.09715 10.0814 0.569515 10.0814 0.244078 9.75592C-0.0813592 9.43049 -0.0813592 8.90285 0.244078 8.57741L3.82149 5L0.244078 1.42259C-0.0813592 1.09715 -0.0813592 0.569515 0.244078 0.244078C0.569515 -0.0813592 1.09715 -0.0813592 1.42259 0.244078L5 3.82149L8.57741 0.244078C8.90285 -0.0813592 9.43049 -0.0813592 9.75592 0.244078C10.0814 0.569515 10.0814 1.09715 9.75592 1.42259L6.17851 5L9.75592 8.57741Z"}))}},61278:function(e,t,n){"use strict";n.d(t,{Y:function(){return o}});var i=n(4519),r=n(93453);function o(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},r.i,e),i.createElement("path",{d:"M14 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 14 6.125zm-5.906 0a1.874 1.874 0 1 1 0 3.749 1.874 1.874 0 0 1 0-3.749zM2 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 2 6.125z"}))}},23114:function(e,t,n){"use strict";n.d(t,{U:function(){return o}});var i=n(4519),r=n(93453);function o(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"currentColor"},r.i,e),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.929 4.93l.001-.002.002.001.527-.528a.575.575 0 01.786-.025l1.21 1.061a1.856 1.856 0 003.115-1.291h.004l.105-1.607a.575.575 0 01.574-.537h.746V2v.002h.747c.303 0 .554.235.574.537l.105 1.607h.005c.019.484.223.92.544 1.24a1.854 1.854 0 002.584.039l1.196-1.05a.575.575 0 01.786.026l.528.528.002-.002v.002l-.001.002.528.527a.575.575 0 01.026.786l-1.06 1.212a1.85 1.85 0 00-.492 1.258c0 .515.21.98.548 1.317.32.318.753.52 1.235.539v.004l1.606.105c.303.02.538.271.538.574V12H22v.002h-.002v.746a.575.575 0 01-.537.574l-1.607.107v.001c-.484.02-.92.223-1.24.544a1.854 1.854 0 00-.05 2.572h-.002l1.062 1.211c.2.228.188.572-.026.786l-.528.528v.002h-.001l-.528.527a.575.575 0 01-.785.026l-1.168-1.021a1.851 1.851 0 00-1.302-.534 1.86 1.86 0 00-1.857 1.786h-.004l-.105 1.607a.575.575 0 01-.54.536h-1.56a.575.575 0 01-.54-.536l-.105-1.607h-.004a1.851 1.851 0 00-.545-1.244 1.851 1.851 0 00-1.31-.542c-.504 0-.96.2-1.295.526l-1.177 1.03a.575.575 0 01-.785-.027l-.528-.528-.001-.001-.528-.528a.575.575 0 01-.026-.786l1.062-1.21-.001-.001a1.85 1.85 0 00.493-1.26c0-.515-.21-.98-.548-1.317a1.85 1.85 0 00-1.236-.539v-.001l-1.607-.107a.575.575 0 01-.537-.574v-.746H2V12h.001v-.747c0-.303.235-.554.538-.574l1.606-.105v-.004a1.851 1.851 0 001.242-.545 1.854 1.854 0 00.043-2.577L4.376 6.244a.575.575 0 01.026-.786l.528-.527-.001-.002zM16.286 12a4.286 4.286 0 11-8.572 0 4.286 4.286 0 018.572 0z"}))}},47733:function(e,t,n){"use strict";n.d(t,{z:function(){return o}});var i=n(4519),r={mobile:!1,platform:n(61288).t.BROWSER,useHistory:function(){return{action:"",replace:function(){},push:function(){},goBack:function(){}}},useLocation:function(){return{pathname:"",search:"",hash:""}},setMobile:function(){},setPlatform:function(){}},o=i.createContext(r)},61288:function(e,t,n){"use strict";n.d(t,{P:function(){return o},t:function(){return i}});var i,r=n(67119);!function(e){e.IOS="ios",e.ANDROID="android",e.BROWSER="browser"}(i||(i={}));var o=(0,r.Ge)("root")({mobile:!0}).split(/\s+/)[1]},33767:function(e,t,n){"use strict";n.d(t,{X:function(){return o}});var i=n(4519),r=n(47733);function o(){var e=i.useContext(r.z);return[e.mobile,e.setMobile]}},86525:function(e,t,n){"use strict";n.d(t,{N:function(){return o}});var i=n(4519),r={theme:n(49314).t0,setTheme:function(){}},o=i.createContext(r);o.displayName="ThemeContext"},46854:function(e,t,n){"use strict";n.d(t,{f:function(){return y}});var i=n(29439),r=n(4519),o=n(67119),a=n(49314),s=n(86525),u=n(82829),l=n(24712),c=n(4942),d=n(93433),h=(0,o.Ge)(a.Qf),f=h(),p={"native-scrollbar":!1};function g(e,t,n){var r=document.body;(r.classList.contains(f)||r.classList.add(f),n)&&n.split(" ").forEach((function(e){e&&!r.classList.contains(e)&&r.classList.add(e)}));(0,d.Z)(r.classList).forEach((function(e){e.startsWith((0,o.Ui)(h({theme:!0})))&&r.classList.remove(e)})),r.classList.add((0,o.Ui)(h({theme:e})));for(var a=0,s=Object.entries(Object.assign(Object.assign({},p),t));a<s.length;a++){var u=(0,i.Z)(s[a],2),l=u[0],g=u[1];r.classList.toggle((0,o.Ui)(h((0,c.Z)({},l,!0))),g)}}var v=function(){return window.matchMedia("(prefers-color-scheme: dark)")};function m(){var e=(0,r.useState)("object"===typeof window&&v().matches?"dark":"light"),t=(0,i.Z)(e,2),n=t[0],o=t[1];return(0,r.useEffect)((function(){var e=function(e,t){var n="function"!==typeof e.addEventListener;return n?e.addListener(t):e.addEventListener("change",t),function(){n?e.removeListener(t):e.removeEventListener("change",t)}}(v(),(function(e){o(e.matches?"dark":"light")}));return function(){return e()}}),[]),n}var _=(0,o.Ge)(a.Qf);function y(e){var t=e.theme,n=void 0===t?a.t0:t,o=e.systemLightTheme,c=void 0===o?a.CR:o,d=e.systemDarkTheme,h=void 0===d?a.y1:d,f=e.nativeScrollbar,p=void 0!==f&&f,v=e.scoped,y=void 0!==v&&v,b=e.rootClassName,w=void 0===b?"":b,C=e.children,k=(0,r.useState)(n),S=(0,i.Z)(k,2),x=S[0],L=S[1],E=(0,r.useState)({systemLightTheme:c,systemDarkTheme:h}),N=(0,i.Z)(E,2),D=N[0],M=D.systemLightTheme,T=D.systemDarkTheme,O=N[1];(0,r.useLayoutEffect)((function(){L(n),O({systemLightTheme:c,systemDarkTheme:h})}),[n,c,h]);var I="light"===m()?M:T,A="system"===x?I:x;(0,r.useEffect)((function(){y||g(A,{"native-scrollbar":p},w)}),[p,A,y,w]);var R=(0,r.useMemo)((function(){return{theme:x,themeValue:A,setTheme:L}}),[x,A]),P=(0,r.useMemo)((function(){return{themeValue:A}}),[A]),Z=(0,r.useMemo)((function(){return{themeSettings:{systemLightTheme:M,systemDarkTheme:T},setThemeSettings:O}}),[M,T]);return r.createElement(s.N.Provider,{value:R},r.createElement(l.e.Provider,{value:Z},r.createElement(u.e.Provider,{value:P},y?r.createElement("div",{className:_({theme:A,"native-scrollbar":p},w)},C):C)))}y.displayName="ThemeProvider"},24712:function(e,t,n){"use strict";n.d(t,{e:function(){return i}});var i=n(4519).createContext(void 0);i.displayName="ThemeSettingsContext"},82829:function(e,t,n){"use strict";n.d(t,{e:function(){return i}});var i=n(4519).createContext({themeValue:"light"});i.displayName="ThemeValueContext"},49314:function(e,t,n){"use strict";n.d(t,{CK:function(){return a},CR:function(){return r},Qf:function(){return s},t0:function(){return i},y1:function(){return o}});var i="system",r="light",o="dark",a=["dark","dark-hc"],s=([].concat(["light","light-hc"],a),"root")},68487:function(e,t,n){"use strict";n.d(t,{C:function(){return o}});var i=n(4519),r=n(82829);function o(){return i.useContext(r.e).themeValue}},38220:function(e,t,n){"use strict";n.d(t,{X:function(){return o},w:function(){return r}});var i=n(4519),r=i.createContext({current:null});r.displayName="PortalContext";var o=function(e){var t=e.container,n=e.children;return i.createElement(r.Provider,{value:t},n)}},67119:function(e,t,n){"use strict";n.d(t,{A7:function(){return r},Ge:function(){return o},Ui:function(){return a}});var i=n(78243),r="yc-";function o(e){return(0,i.Z)("".concat(r).concat(e))}function a(e){return e.split(/\s(.*)/)[1]}},32711:function(e,t,n){"use strict";n.d(t,{x:function(){return s},y:function(){return u}});var i=n(67119),r=n(74601),o=n(88216),a=1;function s(){return"".concat(i.A7,"uniq-").concat(a++)}var u=(0,r.s)(o.J)},39874:function(e,t,n){"use strict";var i;n.d(t,{Pe:function(){return s},Uo:function(){return i},iE:function(){return u},jQ:function(){return a}}),function(e){e.Ru="ru",e.En="en"}(i||(i={}));var r=[],o={lang:i.En},a=function(e){Object.assign(o,e),r.forEach((function(e){e(o)}))},s=function(e){return r.push(e),function(){r=r.filter((function(t){return t!==e}))}},u=function(){return o}},63230:function(e,t,n){"use strict";n.d(t,{P:function(){return u},g:function(){return s}});var i=n(15671),r=n(43144),o=n(15791),a=n(67119),s=function(){function e(t){(0,i.Z)(this,e),this.subscriptions=[],this.componentPrefix=t}return(0,r.Z)(e,[{key:"subscribe",value:function(e){this.subscriptions.push(e)}},{key:"unsubscribe",value:function(e){var t=this.subscriptions.indexOf(e);t>-1&&this.subscriptions.splice(t,1)}},{key:"publish",value:function(e){var t=this,n=e.componentId,i=(0,o._T)(e,["componentId"]);this.subscriptions.forEach((function(e){return e(Object.assign(Object.assign({},i),{componentId:t.componentPrefix?"".concat(t.componentPrefix).concat(n):n}))}))}},{key:"withEventPublisher",value:function(e,t){var n=this;return function(i){n.publish(Object.assign(Object.assign({},i),{componentId:e,qa:t}))}}}]),e}(),u=new s(a.A7)},74601:function(e,t,n){"use strict";n.d(t,{s:function(){return r}});var i=n(4519);function r(e){return function(t){if(!(0,i.isValidElement)(t))return!1;var n=t.type;return n===e||n.displayName===e.displayName}}},28510:function(e,t,n){"use strict";n.d(t,{U:function(){return s}});var i=n(29439),r=n(24755),o=n(39874),a=new r.I18N;function s(e,t){return Object.entries(e).forEach((function(e){var n=(0,i.Z)(e,2),r=n[0],o=n[1];return a.registerKeyset(r,t,o)})),a.keyset(t)}a.setLang((0,o.iE)().lang),(0,o.Pe)((function(e){a.setLang(e.lang)}))},93453:function(e,t,n){"use strict";n.d(t,{i:function(){return i}});var i={"aria-hidden":!0}},78232:function(e,t,n){"use strict";n.d(t,{Y:function(){return r}});var i=n(67119);function r(e){return{appear:(0,i.Ui)(e({appear:!0})),appearActive:(0,i.Ui)(e({appear:"active"})),appearDone:(0,i.Ui)(e({appear:"done"})),enter:(0,i.Ui)(e({enter:!0})),enterActive:(0,i.Ui)(e({enter:"active"})),enterDone:(0,i.Ui)(e({enter:"done"})),exit:(0,i.Ui)(e({exit:!0})),exitActive:(0,i.Ui)(e({exit:"active"})),exitDone:(0,i.Ui)(e({exit:"done"}))}}},66301:function(e,t,n){"use strict";n.d(t,{O:function(){return s}});var i=n(29439),r=n(4519),o=n(2275),a=n(63230);function s(e){var t=e.name,n=e.value,s=e.id,u=e.defaultChecked,l=e.checked,c=e.indeterminate,d=e.onUpdate,h=e.onChange,f=e.controlRef,p=e.controlProps,g=e.onFocus,v=e.onBlur,m=e.disabled,_=r.useRef(null),y=r.useState(null!==u&&void 0!==u&&u),b=(0,i.Z)(y,2),w=b[0],C=b[1],k="boolean"===typeof l,S=k?l:w,x=!c&&l,L=c?"mixed":S,E=(0,o.c)(f,_);r.useLayoutEffect((function(){_.current&&(_.current.indeterminate=Boolean(c))}),[c]);var N=r.useCallback((function(e){a.P.publish({componentId:"Checkbox",eventId:"click",domEvent:e,meta:{checked:e.target.checked}})}),[]);return{checked:S,inputProps:Object.assign(Object.assign({},p),{name:t,value:n,id:s,onFocus:g,onBlur:v,disabled:m,type:"checkbox",onChange:function(e){k||C(e.target.checked),h&&h(e),d&&d(e.target.checked)},onClickCapture:N,defaultChecked:u,checked:x,"aria-checked":L,ref:E})}}},2275:function(e,t,n){"use strict";n.d(t,{c:function(){return o}});var i=n(4519);function r(e,t){"function"===typeof e?e(t):e&&(e.current=t)}function o(e,t){return i.useMemo((function(){return null===e&&null===t?null:function(n){r(e,n),r(t,n)}}),[e,t])}},90247:function(e,t,n){"use strict";n.d(t,{s:function(){return s}});var i=n(4519),r=n(15671),o=n(43144),a=new(function(){function e(){var t=this;(0,r.Z)(this,e),this.stack=[],this.mouseDownTarget=null,this.handleDocumentKeyDown=function(e){var n,i,r;if("Escape"===e.code){var o=t.getTopLayer();o.disableEscapeKeyDown||(null===(n=o.onEscapeKeyDown)||void 0===n||n.call(o,e),null===(i=o.onClose)||void 0===i||i.call(o,e,"escapeKeyDown"))}if("Enter"===e.code){var a=t.getTopLayer();null===(r=a.onEnterKeyDown)||void 0===r||r.call(a,e)}},this.handleDocumentClick=function(e){var n,i,r=t.getTopLayer();!r.disableOutsideClick&&t.isOutsideClick(r,e)&&(null===(n=r.onOutsideClick)||void 0===n||n.call(r,e),null===(i=r.onClose)||void 0===i||i.call(r,e,"outsideClick"))},this.handleDocumentMouseDown=function(e){t.mouseDownTarget=e.target}}return(0,o.Z)(e,[{key:"add",value:function(e){this.stack.push(e),1===this.stack.length&&this.addListeners()}},{key:"remove",value:function(e){var t=this.stack.indexOf(e);this.stack.splice(t,1),0===this.stack.length&&this.removeListeners()}},{key:"addListeners",value:function(){document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("click",this.handleDocumentClick,!0),document.addEventListener("mousedown",this.handleDocumentMouseDown,!0)}},{key:"removeListeners",value:function(){document.removeEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("click",this.handleDocumentClick,!0),document.removeEventListener("mousedown",this.handleDocumentMouseDown,!0)}},{key:"getTopLayer",value:function(){return this.stack[this.stack.length-1]}},{key:"isOutsideClick",value:function(e,t){var n=this,i=e.contentRefs||[],r=t.target,o="function"===typeof t.composedPath?t.composedPath():[];return i.length>0&&!i.some((function(e){var t,i,a,s;return(null===(i=null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.contains)||void 0===i?void 0:i.call(t,r))||(null===(s=null===(a=null===e||void 0===e?void 0:e.current)||void 0===a?void 0:a.contains)||void 0===s?void 0:s.call(a,n.mouseDownTarget))||o.includes(null===e||void 0===e?void 0:e.current)}))}}]),e}());function s(e){var t=e.open,n=e.disableEscapeKeyDown,r=e.disableOutsideClick,o=e.onEscapeKeyDown,s=e.onEnterKeyDown,u=e.onOutsideClick,l=e.onClose,c=e.contentRefs,d=e.enabled,h=void 0===d||d,f=i.useRef({disableEscapeKeyDown:n,disableOutsideClick:r,onEscapeKeyDown:o,onEnterKeyDown:s,onOutsideClick:u,onClose:l,contentRefs:c});i.useEffect((function(){Object.assign(f.current,{disableEscapeKeyDown:n,disableOutsideClick:r,onEscapeKeyDown:o,onEnterKeyDown:s,onOutsideClick:u,onClose:l,contentRefs:c,enabled:h})}),[n,r,o,s,u,l,c,h]),i.useEffect((function(){if(t&&h){var e=f.current;return a.add(e),function(){a.remove(e)}}}),[t,h])}},50754:function(e,t,n){"use strict";n.d(t,{X:function(){return o}});var i=n(4519),r=n(38220);function o(){var e,t=(0,i.useContext)(r.w),n=null;return"object"===typeof window&&(n=window.document.body),null!==(e=t.current)&&void 0!==e?e:n}},81794:function(e,t,n){"use strict";n.d(t,{x:function(){return u}});var i=n(29439),r=n(4519),o=n(14779),a=n(2275),s=n(63230);function u(e){var t=e.name,n=e.value,u=e.checked,l=e.defaultChecked,c=e.disabled,d=e.controlRef,h=e.controlProps,f=e.onUpdate,p=e.onChange,g=e.onFocus,v=e.onBlur,m=e.id,_=(0,o.u)(),y=r.useRef(null),b=r.useState(null!==l&&void 0!==l&&l),w=(0,i.Z)(b,2),C=w[0],k=w[1],S="boolean"===typeof u,x=S?u:C,L=(0,a.c)(d,y);return{checked:x,inputProps:Object.assign(Object.assign({},h),{name:t||_,value:n,id:m,onFocus:g,onBlur:v,disabled:c,type:"radio",onChange:function(e){S||k(e.target.checked),p&&p(e),f&&f(e.target.checked)},onChangeCapture:function(e){s.P.publish({componentId:"Radio",eventId:"click",domEvent:e})},checked:u,defaultChecked:l,"aria-checked":x,ref:L})}}},96777:function(e,t,n){"use strict";n.d(t,{a:function(){return a}});var i=n(29439),r=n(4519),o=n(14779);function a(e){var t,n,a=e.name,s=e.value,u=e.defaultValue,l=e.options,c=void 0===l?[]:l,d=e.disabled,h=e.onUpdate,f=e.onChange,p=e.onFocus,g=e.onBlur,v=(0,o.u)(),m=r.useState(null!==u&&void 0!==u?u:null===(n=null===(t=c[0])||void 0===t?void 0:t.value)||void 0===n?void 0:n.toString()),_=(0,i.Z)(m,2),y=_[0],b=_[1],w="string"===typeof s,C=w?s:y,k=r.useCallback((function(e){w||b(e.target.value),f&&f(e),h&&h(e.target.value)}),[w,h,f]);return{containerProps:{role:"radiogroup","aria-disabled":d,"aria-label":e["aria-label"],"aria-labelledby":e["aria-labelledby"]},optionsProps:c.map((function(e){return{name:a||v,value:String(e.value),content:e.content,checked:C===String(e.value),disabled:d||e.disabled,onChange:k,onFocus:p,onBlur:g}}))}}},39253:function(e,t,n){"use strict";n.d(t,{L:function(){return a}});var i=n(93433),r=n(29439),o=n(4519),a=function(e){var t=e.value,n=e.defaultValue,a=void 0===n?[]:n,s=e.multiple,u=e.defaultOpen,l=void 0!==u&&u,c=e.onUpdate,d=o.useState(a),h=(0,r.Z)(d,2),f=h[0],p=h[1],g=o.useState(l),v=(0,r.Z)(g,2),m=v[0],_=v[1],y=t||f,b=!t,w=o.useCallback((function(e){if(!y.includes(e.value)){var t=[e.value];null===c||void 0===c||c(t),b&&p(t)}_(!1)}),[y,b,c]),C=o.useCallback((function(e){var t=y.includes(e.value)?y.filter((function(t){return t!==e.value})):[].concat((0,i.Z)(y),[e.value]);null===c||void 0===c||c(t),b&&p(t)}),[y,b,c]),k=o.useCallback((function(e){s?C(e):w(e)}),[s,w,C]);return{value:y,open:m,setOpen:_,handleSelection:k}}},14779:function(e,t,n){"use strict";n.d(t,{u:function(){return o}});var i=n(4519),r=n(32711);function o(){return i.useRef((0,r.x)()).current}},29670:function(e,t,n){"use strict";n.d(t,{J:function(){return o}});var i=n(4519),r={top:0,right:0,bottom:0,left:0};function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.rect,n=e.contextElement,o=i.useRef(r),a=i.useRef({contextElement:n,getBoundingClientRect:function(){var e=o.current,t=e.top,n=e.right,i=e.bottom,r=e.left;return{top:t,right:n,bottom:i,left:r,width:n-r,height:i-t}}});if(a.current.contextElement=n,t){var s=t.top,u=void 0===s?0:s,l=t.left,c=void 0===l?0:l,d=t.right,h=void 0===d?c:d,f=t.bottom,p=void 0===f?u:f;o.current={top:u,right:h,bottom:p,left:c}}else o.current=r;return a}},38184:function(e,t,n){"use strict";n.r(t),n.d(t,{ActionTooltip:function(){return ee},ArrowToggle:function(){return te.F},Breadcrumbs:function(){return ne.Oo},Button:function(){return ie.z},Card:function(){return ae},Checkbox:function(){return re.X},ClipboardButton:function(){return se.m},ClipboardIcon:function(){return ue.K},CopyToClipboard:function(){return le.h},CopyToClipboardStatus:function(){return ce.T},Dialog:function(){return de.V},DialogBody:function(){return he.a},DialogDivider:function(){return fe.E},DialogFooter:function(){return ge.c},DialogHeader:function(){return pe.f},DropdownMenu:function(){return ve.h},EventBroker:function(){return gi.g},FirstDisplayedItemsCount:function(){return ne.RP},HelpPopover:function(){return me.J},Hotkey:function(){return U},Icon:function(){return _e.J},Label:function(){return ye._},Lang:function(){return Ot.Uo},LastDisplayedItemsCount:function(){return ne.Y7},Link:function(){return be.r},List:function(){return we.a},ListItem:function(){return Ce.H},ListQa:function(){return ke.j},ListWrapper:function(){return Se},Loader:function(){return xe.a},Menu:function(){return Le.v},MobileContext:function(){return r.z},MobileProvider:function(){return d},Modal:function(){return Ee.u},Platform:function(){return u.t},Popover:function(){return Ne.J},PopoverBehavior:function(){return De.x},Popup:function(){return q.G},Portal:function(){return Me.h},PortalContext:function(){return bi.w},PortalProvider:function(){return bi.X},Progress:function(){return Te.E},PromoSheet:function(){return Ue},Radio:function(){return Ge},RadioButton:function(){return $e.E},RadioGroup:function(){return Je},Select:function(){return nt.P},SelectQa:function(){return it.Gd},ShareList:function(){return wt},ShareOptions:function(){return et},ShareSocialNetwork:function(){return et},ShareTooltip:function(){return Nt},Sheet:function(){return Ve},Skeleton:function(){return Dt.O},Spin:function(){return Tt},StoreBadge:function(){return At},Stories:function(){return qt},StoriesGroup:function(){return nn},Switch:function(){return rn.r},TEXT_COLORS:function(){return ni.b},TEXT_VARIANTS:function(){return ti.S},Table:function(){return mn},TableColumnSetup:function(){return qn.N},Tabs:function(){return Jn.m},TabsDirection:function(){return Jn.c},Text:function(){return ei.x},TextInput:function(){return ii.o},ThemeContext:function(){return b.N},ThemeProvider:function(){return C.f},ThemeSettingsContext:function(){return k.e},ThemeValueContext:function(){return w.e},Toast:function(){return oi.F},Toaster:function(){return ri.b},ToasterComponent:function(){return li.B},ToasterProvider:function(){return ci.N},Tooltip:function(){return X},User:function(){return pi},UserAvatar:function(){return hi},colorText:function(){return ni.V},configure:function(){return Ot.jQ},eventBroker:function(){return gi.P},getComponentName:function(){return _},getThemeType:function(){return N},listDefaultProps:function(){return we.A},parseHotkeys:function(){return K},rootMobileClassName:function(){return u.P},text:function(){return ti.f},toaster:function(){return ai},useEventBroker:function(){return mi},useLayer:function(){return _i.s},useMobile:function(){return h.X},usePlatform:function(){return f},usePortalContainer:function(){return wi.X},useSelect:function(){return Ci.L},useTheme:function(){return S},useThemeSettings:function(){return L},useThemeType:function(){return D},useThemeValue:function(){return x.C},useToaster:function(){return si.P},useVirtualElementRef:function(){return yi.J},withEventBrokerDomHandlers:function(){return vi},withMobile:function(){return y},withTableActions:function(){return Zn},withTableCopy:function(){return jn},withTableSelection:function(){return Mn},withTableSettings:function(){return Xn},withTableSorting:function(){return Wn},withTheme:function(){return M},withThemeValue:function(){return T},withToaster:function(){return ui}});var i={};n.r(i),n.d(i,{Facebook:function(){return ot},LinkedIn:function(){return lt},Mail:function(){return ct},Telegram:function(){return at},Twitter:function(){return st},VK:function(){return ut}});var r=n(47733),o=n(29439),a=n(15791),s=n(4519),u=n(61288);function l(){return{action:"",replace:function(){},push:function(){},goBack:function(){}}}function c(){return{pathname:"",search:"",hash:""}}function d(e){var t=e.mobile,n=void 0!==t&&t,i=e.platform,d=void 0===i?u.t.BROWSER:i,h=e.useHistory,f=void 0===h?l:h,p=e.useLocation,g=void 0===p?c:p,v=e.children,m=s.useState(n),_=(0,o.Z)(m,2),y=_[0],b=_[1],w=s.useState(d),C=(0,o.Z)(w,2),k=C[0],S=C[1],x=s.useCallback((function(){var e,t=f(),n=t.goBack,i=t.back,r=(0,a._T)(t,["goBack","back"]);return e="function"===typeof n?n:"function"===typeof i?i:function(){},Object.assign(Object.assign({},r),{goBack:e})}),[f]);document.body.classList.toggle(u.P,y);var L=s.useMemo((function(){return{mobile:y,setMobile:b,platform:k,setPlatform:S,useLocation:g,useHistory:x}}),[y,k,g,x]);return s.createElement(r.z.Provider,{value:L},v)}var h=n(33767);function f(){var e=s.useContext(r.z);return[e.platform,e.setPlatform]}var p=n(15671),g=n(43144),v=n(60136),m=n(29388);function _(e){return e.displayName||e.name||"Component"}function y(e){var t,n=_(e);return t=function(t){(0,v.Z)(i,t);var n=(0,m.Z)(i);function i(){return(0,p.Z)(this,i),n.apply(this,arguments)}return(0,g.Z)(i,[{key:"render",value:function(){return s.createElement(e,Object.assign({},this.props,{mobile:this.context.mobile,platform:this.context.platform,useHistory:this.context.useHistory,useLocation:this.context.useLocation,setMobile:this.context.setMobile,setPlatform:this.context.setPlatform}))}}]),i}(s.Component),t.displayName="withMobile(".concat(n,")"),t.contextType=r.z,t}var b=n(86525),w=n(82829),C=n(46854),k=n(24712);function S(){var e=s.useContext(b.N);return[e.theme,e.setTheme]}var x=n(68487);function L(){var e=s.useContext(k.e);if(void 0===e)throw new Error("useThemeSettings must be used within ThemeProvider");return[e.themeSettings,e.setThemeSettings]}var E=n(49314);function N(e){return E.CK.includes(e)?"dark":"light"}function D(){return N((0,x.C)())}function M(e){var t,n=_(e);return t=function(t){(0,v.Z)(i,t);var n=(0,m.Z)(i);function i(){return(0,p.Z)(this,i),n.apply(this,arguments)}return(0,g.Z)(i,[{key:"render",value:function(){return s.createElement(e,Object.assign({},this.props,{theme:this.context.theme,setTheme:this.context.setTheme}))}}]),i}(s.Component),t.displayName="withTheme(".concat(n,")"),t.contextType=b.N,t}function T(e){var t,n=_(e);return t=function(t){(0,v.Z)(i,t);var n=(0,m.Z)(i);function i(){return(0,p.Z)(this,i),n.apply(this,arguments)}return(0,g.Z)(i,[{key:"render",value:function(){return s.createElement(e,Object.assign({},this.props,{themeValue:this.context.themeValue}))}}]),i}(s.Component),t.displayName="withThemeValue(".concat(n,")"),t.contextType=w.e,t}var O=n(67119),I={pc:{NormalizeMap:{arrowup:"up",arrowdown:"down",arrowleft:"left",arrowright:"right",esc:"escape",return:"enter",mod:"ctrl",control:"ctrl",opt:"alt",option:"alt",cmd:"ctrl",command:"ctrl"},Priority:{shift:200,alt:300,ctrl:400},DisplayName:{up:"\u2191",down:"\u2193",left:"\u2190",right:"\u2192",escape:"Esc",plus:"\uff0b",enter:"Enter",ctrl:"Ctrl",alt:"Alt",shift:"Shift",tab:"Tab",backspace:"Backspace"}},mac:{NormalizeMap:{arrowup:"up",arrowdown:"down",arrowleft:"left",arrowright:"right",esc:"escape",enter:"return",mod:"command",ctrl:"control",alt:"option",opt:"option",cmd:"command"},Priority:{command:100,shift:200,option:300,control:400},DisplayName:{up:"\u25b2",down:"\u25bc",left:"\u25c0",right:"\u25b6",escape:"\u238b",plus:"\uff0b",return:"\u23ce",command:"\u2318",option:"\u2325",control:"\u2303",shift:"\u21e7",backspace:"\u232b",tab:"\u21e5"}}},A=n(20762),R=n.n(A),P=n(4688),Z=n.n(P),F=function(){return"undefined"!==typeof navigator&&/Mac|iP(hone|[oa]d)/.test(navigator.platform)};function j(e,t){return e.trim().split(t).filter(Boolean)}var H=/\s/,B="+";function z(e,t){return j(t,H).map((function(t){return R()(j(t,B).map(function(e){return function(t){var n,i=function(e,t){var n;return t=t.toLowerCase(),null!==(n=e.NormalizeMap[t])&&void 0!==n?n:t}(e,t);return{raw:t,id:i,priority:null!==(n=e.Priority[i])&&void 0!==n?n:0,displayName:e.DisplayName[i]}}}(e)).sort((function(e,t){return t.priority-e.priority})),(function(e){return e.id})).map(W)}))}function W(e){var t;return null!==(t=e.displayName)&&void 0!==t?t:Z()(e.id)}var V=(0,O.Ge)("hotkey"),Y={BetweenGroups:String.fromCharCode(160),BetweenKeys:String.fromCharCode(8239)},U=s.forwardRef((function(e,t){var n=e.value,i=e.platform,r=e.view,o=void 0===r?"light":r,a=e.qa,u=e.style,l=e.className,c=K(n,{platform:i}),d=[],h=!1;return c.forEach((function(e,t){0!==e.length&&(h?d.push(Y.BetweenGroups):h=!0,e.forEach((function(e,n){0===n||d.push(Y.BetweenKeys,s.createElement("span",{className:V("plus")},"+"),Y.BetweenKeys),d.push(s.createElement("kbd",{key:"".concat(e,"_").concat(t,"_").concat(n)},e))})))})),0===d.length?null:s.createElement("kbd",{ref:t,style:u,"data-qa":a,className:V({view:o},l)},d)}));function K(e,t){var n,i=null!==(n=t.platform)&&void 0!==n?n:F()?"mac":"pc";return z(I[i],e)}var q=n(22920);var G=n(2275),$=(0,O.Ge)("tooltip"),Q=["bottom","top"],X=function(e){var t=e.children,n=e.content,i=e.disabled,r=e.placement,a=void 0===r?Q:r,u=(0,s.useState)(null),l=(0,o.Z)(u,2),c=l[0],d=l[1],h=function(e,t){var n=t.openDelay,i=t.closeDelay,r=function(e){var t=(0,s.useState)(e),n=(0,o.Z)(t,2),i=n[0],r=n[1];return[i,(0,s.useCallback)((function(){return r(!0)}),[]),(0,s.useCallback)((function(){return r(!1)}),[]),(0,s.useCallback)((function(){return r((function(e){return!e}))}),[])]}(!1),a=(0,o.Z)(r,3),u=a[0],l=a[1],c=a[2],d=s.useRef();return(0,s.useEffect)((function(){if(e)return e.addEventListener("mouseenter",t),e.addEventListener("mouseleave",r),function(){e.removeEventListener("mouseenter",t),e.removeEventListener("mouseleave",r)};function t(){clearTimeout(d.current),d.current=window.setTimeout(l,n)}function r(){clearTimeout(d.current),d.current=window.setTimeout(c,i)}}),[e,l,c,n,i]),u}(c,e),f=s.Children.only(t),p=f.ref,g=(0,G.c)(d,p);return s.createElement(s.Fragment,null,(0,s.cloneElement)(f,{ref:g}),c?s.createElement(q.G,{className:$(null,e.className),open:h&&!i,placement:a,anchorRef:{current:c},disableEscapeKeyDown:!0,disableOutsideClick:!0,disableLayer:!0},s.createElement("div",{className:$("content",e.contentClassName)},n)):null)};var J=(0,O.Ge)("action-tooltip"),ee=function(e){var t=e.title,n=e.hotkey,i=e.description,r=e.children,o=(0,a._T)(e,["title","hotkey","description","children"]);return s.createElement(X,Object.assign({},o,{className:J(null,o.className),contentClassName:J("layout"),content:s.createElement(s.Fragment,null,s.createElement("div",{className:J("heading")},s.createElement("div",{className:J("title")},t),n&&s.createElement(U,{view:"dark",value:n,className:J("hotkey")})),i&&s.createElement("div",{className:J("description")},i))}),r)},te=n(99169),ne=n(95227),ie=n(20970),re=n(96040),oe=(0,O.Ge)("card"),ae=s.forwardRef((function(e,t){var n=e.type,i=void 0===n?"container":n,r=e.theme,o=e.view,a=e.children,u=e.className,l=e.onClick,c=e.disabled,d=e.selected,h="selection"===i,f="container"===i,p=("action"===i||h)&&Boolean(l)&&!(c||d),g=f?"normal":void 0,v=f||h?"outlined":void 0;return s.createElement("div",{ref:t,className:oe({theme:r||g,view:o||v,type:i,selected:d,disabled:c,clickable:p},u),onClick:p?l:void 0},a)})),se=n(73356),ue=n(84087),le=n(83909),ce=n(95487),de=n(650),he=n(20195),fe=n(19806),pe=n(6423),ge=n(38887),ve=n(60901),me=n(54985),_e=n(88216),ye=n(79403),be=n(8762),we=n(99507),Ce=n(90680),ke=n(9629),Se=function(e){return s.createElement(we.a,Object.assign({},e))};Se.defaultProps=we.A;var xe=n(43471),Le=n(90047),Ee=n(36296),Ne=n(33109),De=n(16456),Me=n(8970),Te=n(32521),Oe=n(34740),Ie=n(84453),Ae=(0,g.Z)((function e(t,n){(0,p.Z)(this,e),this.x=t,this.y=n,this.timeStamp=Date.now()})),Re=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;(0,p.Z)(this,e),this.points=[],this.pointsLen=t,this.clear()}return(0,g.Z)(e,[{key:"clear",value:function(){this.points=new Array(this.pointsLen)}},{key:"addMovement",value:function(e){var t=e.x,n=e.y;this.points.pop(),this.points.unshift(new Ae(t,n))}},{key:"getYAcceleration",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=this.points[0],n=this.points[e];return t&&n?(t.y-n.y)/Math.pow(t.timeStamp-n.timeStamp,2):0}}]),e}(),Pe=(0,O.Ge)("sheet"),Ze="0.3s",Fe=50,je=.08,He=-.02,Be=[],ze=function(e){(0,v.Z)(n,e);var t=(0,m.Z)(n);function n(){var e;return(0,p.Z)(this,n),(e=t.apply(this,arguments)).veilRef=s.createRef(),e.sheetRef=s.createRef(),e.sheetTopRef=s.createRef(),e.sheetContentRef=s.createRef(),e.sheetInnerContentRef=s.createRef(),e.velocityTracker=new Re,e.observer=null,e.transitionDuration=Ze,e.state={startScrollTop:0,startY:0,deltaY:0,prevInnerContentHeight:0,swipeAreaTouched:!1,contentTouched:!1,veilTouched:!1,isAnimating:!1,inWindowResizeScope:!1},e.setStyles=function(t){var n=t.status,i=t.deltaHeight,r=void 0===i?0:i;if(e.sheetRef.current&&e.veilRef.current){var o=e.sheetHeight-r,a="showing"===n?"translate3d(0, -".concat(o,"px, 0)"):"translate3d(0, 0, 0)",s=0;"showing"===n&&(s=0===r?1:o/e.sheetHeight),e.veilRef.current.style.opacity=String(s),e.sheetRef.current.style.transform=a}},e.show=function(){e.setState({isAnimating:!0},(function(){e.setStyles({status:"showing"}),e.setHash()}))},e.hide=function(){e.setState({isAnimating:!0},(function(){e.setStyles({status:"hiding"}),e.removeHash()}))},e.onSwipeAreaTouchStart=function(t){e.velocityTracker.clear(),e.setState({startY:t.nativeEvent.touches[0].clientY,swipeAreaTouched:!0})},e.onContentTouchStart=function(t){e.props.allowHideOnContentScroll&&!e.state.swipeAreaTouched&&(e.velocityTracker.clear(),e.setState({startY:t.nativeEvent.touches[0].clientY,startScrollTop:e.sheetScrollTop,contentTouched:!0}))},e.onSwipeAriaTouchMove=function(t){var n=t.nativeEvent.touches[0].clientY-e.state.startY;e.velocityTracker.addMovement({x:t.nativeEvent.touches[0].clientX,y:t.nativeEvent.touches[0].clientY}),e.setState({deltaY:n}),n<=0||e.setStyles({status:"showing",deltaHeight:n})},e.onContentTouchMove=function(t){if(e.props.allowHideOnContentScroll){var n=e.state,i=n.startScrollTop;if(!(n.swipeAreaTouched||e.sheetScrollTop>0||i>0&&i!==e.sheetScrollTop)){var r=t.nativeEvent.touches[0].clientY-e.state.startY;e.velocityTracker.addMovement({x:t.nativeEvent.touches[0].clientX,y:t.nativeEvent.touches[0].clientY}),e.setState({deltaY:r}),r<=0||e.setStyles({status:"showing",deltaHeight:r})}}},e.onTouchEndAction=function(t){var n=e.velocityTracker.getYAcceleration();e.sheetHeight<=t?e.props.hideSheet():t>Fe&&n<=je&&n>=He||n>je?e.hide():t>0&&e.show()},e.onSwipeAriaTouchEnd=function(){var t=e.state.deltaY;e.onTouchEndAction(t),e.setState({startY:0,deltaY:0,swipeAreaTouched:!1})},e.onContentTouchEnd=function(){var t=e.state,n=t.deltaY,i=t.swipeAreaTouched;e.props.allowHideOnContentScroll&&!i&&(e.onTouchEndAction(n),e.setState({startY:0,deltaY:0,contentTouched:!1}))},e.onVeilClick=function(){e.setState({veilTouched:!0}),e.hide()},e.onVeilTransitionEnd=function(){e.setState({isAnimating:!1}),"0"===e.veilOpacity&&e.props.hideSheet()},e.onContentTransitionEnd=function(t){"height"===t.propertyName&&e.sheetContentRef.current&&(e.sheetContentRef.current.style.transition="none")},e.onResizeWindow=function(){e.setState({inWindowResizeScope:!0}),e.onResize(),setTimeout((function(){return e.setState({inWindowResizeScope:!1})}),0)},e.onResize=function(){var t=e.state.prevInnerContentHeight!==e.innerContentHeight;e.sheetRef.current&&e.sheetContentRef.current&&t&&(e.sheetContentRef.current.style.transition=e.state.prevInnerContentHeight>e.innerContentHeight?"height 0s ease ".concat(e.transitionDuration):"none",e.setState({prevInnerContentHeight:e.innerContentHeight}),e.sheetContentRef.current.style.height="".concat(e.innerContentHeight,"px"),e.sheetRef.current.style.transform="translate3d(0, -".concat(e.innerContentHeight+e.sheetTopHeight,"px, 0)"))},e}return(0,g.Z)(n,[{key:"componentDidMount",value:function(){this.addListeners(),this.show(),this.setInitialStyles(),this.setState({prevInnerContentHeight:this.innerContentHeight})}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.visible,i=t.location;!e.visible&&n&&this.show(),(e.visible&&!n||this.shouldClose(e))&&this.hide(),e.location.pathname!==i.pathname&&(Be=[])}},{key:"componentWillUnmount",value:function(){this.removeListeners()}},{key:"render",value:function(){var e=this.props,t=e.content,n=e.contentClassName,i=e.swipeAreaClassName,r=e.hideTopBar,o=e.title,a=this.state,u=a.deltaY,l=a.swipeAreaTouched,c=a.contentTouched,d=a.veilTouched,h=a.isAnimating,f={"with-transition":!u||d},p={"with-transition":!a.inWindowResizeScope&&f["with-transition"]},g={"without-scroll":u>0&&c||l};return s.createElement(s.Fragment,null,s.createElement("div",{ref:this.veilRef,className:Pe("veil",f),onClick:h?void 0:this.onVeilClick,onTransitionEnd:this.onVeilTransitionEnd}),s.createElement("div",{ref:this.sheetRef,className:Pe("sheet",p)},!r&&s.createElement("div",{ref:this.sheetTopRef,className:Pe("sheet-top")},s.createElement("div",{className:Pe("sheet-top-resizer")})),s.createElement("div",{className:Pe("sheet-swipe-area",i),onTouchStart:this.onSwipeAreaTouchStart,onTouchMove:this.onSwipeAriaTouchMove,onTouchEnd:this.onSwipeAriaTouchEnd}),s.createElement("div",{ref:this.sheetContentRef,className:Pe("sheet-content",g,n),onTouchStart:this.onContentTouchStart,onTouchMove:this.onContentTouchMove,onTouchEnd:this.onContentTouchEnd,onTransitionEnd:this.onContentTransitionEnd},o&&s.createElement("div",{className:Pe("sheet-content-title")},o),s.createElement("div",{ref:this.sheetInnerContentRef},t))))}},{key:"veilOpacity",get:function(){var e;return(null===(e=this.veilRef.current)||void 0===e?void 0:e.style.opacity)||0}},{key:"sheetTopHeight",get:function(){var e;return(null===(e=this.sheetTopRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"sheetHeight",get:function(){var e;return(null===(e=this.sheetRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"innerContentHeight",get:function(){var e;return(null===(e=this.sheetInnerContentRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"sheetScrollTop",get:function(){var e;return(null===(e=this.sheetContentRef.current)||void 0===e?void 0:e.scrollTop)||0}},{key:"setInitialStyles",value:function(){if(this.sheetContentRef.current&&this.sheetInnerContentRef.current){this.transitionDuration=getComputedStyle(this.sheetContentRef.current).getPropertyValue("--yc-sheet-transition-duration");var e=this.sheetHeight-this.sheetTopHeight;this.sheetContentRef.current.style.height="".concat(e,"px")}}},{key:"addListeners",value:function(){if(window.addEventListener("resize",this.onResizeWindow),this.sheetRef.current){this.observer=new MutationObserver(this.onResize),this.observer.observe(this.sheetRef.current,{subtree:!0,childList:!0})}}},{key:"removeListeners",value:function(){window.removeEventListener("resize",this.onResizeWindow),this.observer&&this.observer.disconnect()}},{key:"setHash",value:function(){var e=this.props,t=e.id,n=e.platform,i=e.location,r=e.history;if(n!==u.t.BROWSER){var o=Object.assign(Object.assign({},i),{hash:t});switch(n){case u.t.IOS:i.hash&&Be.push(i.hash),r.replace(o);break;case u.t.ANDROID:r.push(o)}}}},{key:"removeHash",value:function(){var e,t=this.props,n=t.id,i=t.platform,r=t.location,o=t.history;if(i!==u.t.BROWSER&&r.hash==="#".concat(n))switch(i){case u.t.IOS:o.replace(Object.assign(Object.assign({},r),{hash:null!==(e=Be.pop())&&void 0!==e?e:""}));break;case u.t.ANDROID:o.goBack()}}},{key:"shouldClose",value:function(e){var t=this.props,n=t.id,i=t.platform,r=t.location,o=t.history;return i!==u.t.BROWSER&&"POP"===o.action&&e.location.hash!==r.hash&&r.hash!=="#".concat(n)}}]),n}(s.Component);ze.defaultProps={id:"sheet",allowHideOnContentScroll:!0};var We=y(function(e){var t=function(t){var n=t.useHistory,i=t.useLocation,r=(0,a._T)(t,["useHistory","useLocation"]);return s.createElement(e,Object.assign({},r,{history:n(),location:i()}))},n=e.displayName||e.name||"Component";return t.displayName="withRouterWrapper(".concat(n,")"),t}(ze)),Ve=function(e){(0,v.Z)(n,e);var t=(0,m.Z)(n);function n(){var e;return(0,p.Z)(this,n),(e=t.apply(this,arguments)).bodyScrollLocked=!1,e.state={visible:!1},e.showSheet=function(){e.lockBodyScroll(),e.setState({visible:!0})},e.hideSheet=function(){e.restoreBodyScroll(),e.props.onClose&&e.props.onClose(),e.setState({visible:!1})},e}return(0,g.Z)(n,[{key:"componentDidMount",value:function(){this.props.visible&&this.showSheet()}},{key:"componentDidUpdate",value:function(e){!e.visible&&this.props.visible&&this.showSheet()}},{key:"componentWillUnmount",value:function(){this.restoreBodyScroll()}},{key:"render",value:function(){return this.state.visible?Ie.createPortal(this.renderSheet(),document.body):null}},{key:"restoreBodyScroll",value:function(){this.bodyScrollLocked&&(n.restoreBodyScroll(),this.bodyScrollLocked=!1)}},{key:"lockBodyScroll",value:function(){n.lockBodyScroll(),this.bodyScrollLocked=!0}},{key:"renderSheet",value:function(){var e=this.props,t=e.id,n=e.children,i=e.className,r=e.contentClassName,o=e.swipeAreaClassName,a=e.title,u=e.visible,l=e.allowHideOnContentScroll,c=e.hideTopBar;return s.createElement("div",{className:Pe(null,i)},s.createElement(We,{id:t,content:n,contentClassName:r,swipeAreaClassName:o,title:a,visible:u,allowHideOnContentScroll:l,hideTopBar:c,hideSheet:this.hideSheet}))}}],[{key:"lockBodyScroll",value:function(){1===++n.bodyScrollLocksCount&&(n.bodyInitialOverflow=document.body.style.overflow,document.body.style.overflow="hidden")}},{key:"restoreBodyScroll",value:function(){0!==n.bodyScrollLocksCount&&0===--n.bodyScrollLocksCount&&(document.body.style.overflow=n.bodyInitialOverflow||"",n.bodyInitialOverflow=void 0)}}]),n}(s.Component);Ve.bodyScrollLocksCount=0,Ve.bodyInitialOverflow=void 0;var Ye=(0,O.Ge)("promo-sheet"),Ue=function(e){var t=e.title,n=e.message,i=e.actionText,r=e.closeText,a=e.actionHref,u=e.imageSrc,l=e.className,c=e.contentClassName,d=e.imageContainerClassName,h=e.imageClassName,f=e.onActionClick,p=e.onClose,g=(0,s.useState)(!0),v=(0,o.Z)(g,2),m=v[0],_=v[1],y=(0,s.useState)(!u),b=(0,o.Z)(y,2),w=b[0],C=b[1],k=(0,s.useState)(),S=(0,o.Z)(k,2),x=S[0],L=S[1],E=(0,s.useCallback)((function(e){_(!1),null===f||void 0===f||f(e)}),[f]),N=(0,s.useCallback)((function(){_(!1)}),[]),D=(0,s.useMemo)((function(){return{"aria-label":r}}),[r]);return(0,s.useEffect)((function(){if(u){var e=new Image;e.onload=function(){L({width:e.naturalWidth,height:e.naturalHeight}),C(!0),e.onload=null,e.onerror=null},e.onerror=function(){L(void 0),C(!0),e.onload=null,e.onerror=null},e.src=u}else C(!0)}),[u]),s.createElement(Ve,{className:Ye(null,l),contentClassName:Ye("content",c),visible:m&&w,hideTopBar:!0,onClose:p},s.createElement("header",{className:Ye("header")},s.createElement("h2",{className:Ye("title")},t),s.createElement(ie.z,{className:Ye("close-button"),size:"xl",view:"flat-contrast",onClick:N,extraProps:D},s.createElement(_e.J,{data:Oe.a,size:16}))),s.createElement("p",{className:Ye("message")},n),u&&s.createElement("div",{className:Ye("image-container",d)},s.createElement("img",{role:"presentation",className:Ye("image",h),src:u,alt:"",width:null===x||void 0===x?void 0:x.width,height:null===x||void 0===x?void 0:x.height})),s.createElement("div",{className:Ye("actions")},s.createElement(ie.z,{className:Ye("action-button"),size:"xl",view:"outlined-contrast",width:"max",href:a,onClick:E},i)))},Ke=n(81794),qe=(0,O.Ge)("radio"),Ge=s.forwardRef((function(e,t){var n=e.size,i=void 0===n?"m":n,r=e.disabled,o=void 0!==r&&r,a=e.content,u=e.children,l=e.title,c=e.style,d=e.className,h=e.qa,f=(0,Ke.x)(e),p=f.checked,g=f.inputProps,v=a||u;return s.createElement("label",{ref:t,title:l,style:c,className:qe({size:i,disabled:o,checked:p},d),"data-qa":h},s.createElement("span",{className:qe("indicator")},s.createElement("span",{className:qe("disc")}),s.createElement("input",Object.assign({},g,{className:qe("control")})),s.createElement("span",{className:qe("outline")})),v&&s.createElement("span",{className:qe("text")},v))})),$e=n(50355),Qe=n(96777),Xe=(0,O.Ge)("radio-group"),Je=s.forwardRef((function(e,t){var n=e.size,i=void 0===n?"m":n,r=e.direction,o=void 0===r?"horizontal":r,a=e.style,u=e.className,l=e.optionClassName,c=e.qa,d=e.children,h=e.options;h||(h=s.Children.toArray(d).map((function(e){var t=e.props;return{value:t.value,content:t.content||t.children,disabled:t.disabled}})));var f=(0,Qe.a)(Object.assign(Object.assign({},e),{options:h})),p=f.containerProps,g=f.optionsProps;return s.createElement("div",Object.assign({},p,{ref:t,style:a,className:Xe({size:i,direction:o},u),"data-qa":c}),g.map((function(e){return s.createElement(Ge,Object.assign({},e,{key:e.value,className:Xe("option",l),size:i}))})))}));Je.Option=Ge;var et,tt,nt=n(27982),it=n(51299);!function(e){e.Telegram="Telegram",e.Facebook="Facebook",e.Twitter="Twitter",e.VK="VK",e.LinkedIn="LinkedIn",e.Mail="Mail"}(et||(et={})),function(e){e.Row="row",e.Column="column"}(tt||(tt={}));var rt=n(93453);function ot(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currenColor"},rt.i,e),s.createElement("circle",{cx:"8",cy:"8",r:"8",fill:"#fff"}),s.createElement("path",{d:"M0 8a8 8 0 1 1 9.229 7.906V10.29h1.859l.352-2.304H9.23v-1.5c0-.625.31-1.25 1.302-1.25h1V3.283s-.902-.164-1.77-.164c-1.818 0-2.998 1.111-2.998 3.111v1.762H4.732v2.305h2.031v5.608A8.002 8.002 0 0 1 0 8Z",fill:"#1877F2"}))}function at(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},rt.i,e),s.createElement("g",{clipPath:"url(#clip0_3048_78838)"},s.createElement("circle",{cx:"8",cy:"8",r:"8",fill:"#2AABEE"}),s.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.619 8.013A408.555 408.555 0 0 1 8.452 6.06c2.301-.899 2.78-1.055 3.091-1.06a.571.571 0 0 1 .321.09.32.32 0 0 1 .118.211c.011.06.025.199.014.306-.125 1.23-.664 4.215-.939 5.592-.116.583-.345.778-.566.797-.482.042-.847-.298-1.313-.585-.73-.448-1.142-.728-1.85-1.166-.818-.506-.287-.784.179-1.238.122-.12 2.242-1.93 2.283-2.094.006-.02.01-.097-.038-.137-.049-.04-.12-.027-.172-.016-.073.016-1.238.739-3.495 2.169-.331.213-.63.317-.899.311-.296-.006-.865-.157-1.288-.286-.52-.158-.932-.242-.896-.51.019-.14.224-.284.617-.43Z",fill:"#fff"})),s.createElement("defs",null,s.createElement("clipPath",{id:"clip0_3048_78838"},s.createElement("path",{fill:"#fff",d:"M0 0h16v16H0z"}))))}function st(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},rt.i,e),s.createElement("circle",{cx:"8",cy:"8",r:"8",fill:"#1D9BF0"}),s.createElement("path",{d:"M12.569 6.077c.006.094.006.188.006.283 0 2.895-2.177 6.234-6.158 6.234v-.002A6.073 6.073 0 0 1 3.1 11.61a4.313 4.313 0 0 0 3.203-.908A2.17 2.17 0 0 1 4.281 9.18c.325.064.659.05.977-.037a2.185 2.185 0 0 1-1.736-2.148v-.028c.301.17.638.264.982.275a2.21 2.21 0 0 1-.67-2.926 6.118 6.118 0 0 0 4.46 2.29 2.21 2.21 0 0 1 .627-2.094 2.148 2.148 0 0 1 3.062.095c.485-.097.95-.277 1.374-.532-.161.507-.5.938-.951 1.212a4.263 4.263 0 0 0 1.243-.345c-.29.44-.657.825-1.08 1.135Z",fill:"#fff"}))}function ut(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},rt.i,e),s.createElement("g",{clipPath:"url(#clip0_3274_86056)"},s.createElement("path",{d:"M.5 7.7c0-3.394 0-5.091 1.054-6.146C2.61.5 4.306.5 7.7.5h.6c3.394 0 5.091 0 6.146 1.054C15.5 2.61 15.5 4.306 15.5 7.7v.6c0 3.394 0 5.091-1.054 6.146C13.39 15.5 11.694 15.5 8.3 15.5h-.6c-3.394 0-5.091 0-6.146-1.054C.5 13.39.5 11.694.5 8.3v-.6Z",fill:"#07F"}),s.createElement("path",{d:"M8.516 11.542c-3.663 0-5.753-2.51-5.84-6.69h1.835c.06 3.068 1.413 4.367 2.485 4.635V4.853h1.727v2.645c1.058-.114 2.17-1.32 2.545-2.645h1.727c-.287 1.634-1.493 2.839-2.35 3.334.857.402 2.23 1.454 2.752 3.355h-1.902c-.408-1.272-1.426-2.256-2.772-2.39v2.39h-.207Z",fill:"#fff"})),s.createElement("defs",null,s.createElement("clipPath",{id:"clip0_3274_86056"},s.createElement("path",{fill:"#fff",d:"M0 0h16v16H0z"}))))}function lt(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},rt.i,e),s.createElement("rect",{x:".5",y:".5",width:"15",height:"15",rx:"3",fill:"#0A66C2"}),s.createElement("path",{d:"M12.987 12.988h-2.099V9.7c0-.784-.014-1.793-1.091-1.793-1.094 0-1.261.854-1.261 1.736v3.344H6.437v-6.76h2.015v.924h.028a2.208 2.208 0 0 1 1.989-1.092c2.127 0 2.52 1.4 2.52 3.22l-.002 3.709ZM4.07 5.303a1.218 1.218 0 1 1 0-2.436 1.218 1.218 0 0 1 0 2.436Zm1.05 7.685H3.016V6.227h2.101v6.76Z",fill:"#fff"}))}function ct(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},rt.i,e),s.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.5 4h9c.25 0 .485.06.692.169L8.75 7.5a1.25 1.25 0 0 1-1.5 0L2.808 4.169C3.015 4.06 3.251 4 3.5 4ZM2.001 5.438 2 5.5v5A1.5 1.5 0 0 0 3.5 12h9a1.5 1.5 0 0 0 1.5-1.5v-5l-.001-.062L9.65 8.7a2.75 2.75 0 0 1-3.3 0L2.001 5.438ZM.5 5.5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3v-5Z"}))}var dt=n(28510),ht=JSON.parse('{"label_copy-link":"Copy link","label_copy-link-copied":"Link copied","label_share":"Share to {{name}}"}'),ft=JSON.parse('{"label_copy-link":"\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443","label_copy-link-copied":"\u0421\u0441\u044b\u043b\u043a\u0430 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0430","label_share":"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432 {{name}}"}'),pt=(0,dt.U)({en:ht,ru:ft},"yc-share-tooltip"),gt=(0,O.Ge)("share-list-item"),vt=function(e){(0,v.Z)(n,e);var t=(0,m.Z)(n);function n(){return(0,p.Z)(this,n),t.apply(this,arguments)}return(0,g.Z)(n,[{key:"render",value:function(){var e,t=this.props,n=t.type,r=t.direction,o=t.className,u=t.label,l=t.getShareLink,c=(0,a._T)(t,["type","direction","className","label","getShareLink"]),d=this.props.icon||n&&i[n],h=null!==(e=null===l||void 0===l?void 0:l(c))&&void 0!==e?e:n&&this.getShareLink(n),f=null===n||void 0===n?void 0:n.toLowerCase(),p=u||n&&et[n];return h?"column"===r?s.createElement(ie.z,{view:"flat",size:"l",href:h,target:"_blank",width:"max",className:gt(null,o),extraProps:{"aria-label":pt("label_share",{name:p})}},d&&s.createElement(_e.J,{data:d,size:16,className:gt("icon",{type:f})}),p&&s.createElement("span",{className:gt(null,o)},p)):s.createElement(ie.z,{view:"flat",size:"l",href:h,target:"_blank",className:gt(null,o),extraProps:{"aria-label":pt("label_share",{name:p})}},d&&s.createElement(_e.J,{data:d,size:24,className:gt("icon",{type:f})})):null}},{key:"getShareLink",value:function(e){var t=this.props,n=t.url,i=t.title,r=t.text;switch(e){case et.Telegram:return this.getShareUrlWithParams("https://t.me/share/url",{url:n,text:i});case et.Facebook:return this.getShareUrlWithParams("https://facebook.com/sharer.php",{u:n});case et.Twitter:return this.getShareUrlWithParams("https://twitter.com/intent/tweet",{url:n,text:i});case et.VK:return this.getShareUrlWithParams("https://vk.com/share.php",{url:n,title:i,comment:r});case et.LinkedIn:return this.getShareUrlWithParams("https://www.linkedin.com/sharing/share-offsite/",{url:n});case et.Mail:return this.getShareUrlWithParams("mailto:",{subject:i,body:r?"".concat(r,"\n").concat(n):n});default:return console.error("Unknown share type: ".concat(e)),null}}},{key:"getShareUrlWithParams",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new URL(e);return Object.entries(t).forEach((function(e){var t=(0,o.Z)(e,2),i=t[0],r=t[1];r&&n.searchParams.set(i,r)})),n.toString()}}]),n}(s.PureComponent);function mt(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},rt.i,e),s.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.47 6.53a.75.75 0 0 1 1.06 1.061l-.727.727a2.743 2.743 0 0 0 3.879 3.879l.727-.727a.75.75 0 0 1 1.06 1.06l-.726.727a4.243 4.243 0 0 1-6-6l.727-.727Zm8 1.879a.75.75 0 0 0 1.06 1.06l.727-.726a4.243 4.243 0 0 0-6-6l-.727.727a.75.75 0 0 0 1.061 1.06l.727-.727a2.743 2.743 0 0 1 3.879 3.879l-.727.727Zm-.94-1.879a.75.75 0 1 0-1.06-1.06l-4 4a.75.75 0 1 0 1.06 1.06l4-4Z"}))}var _t=n(74601),yt=(0,O.Ge)("share-list"),bt=(0,_t.s)(vt),wt=function(e){(0,v.Z)(n,e);var t=(0,m.Z)(n);function n(){var e;return(0,p.Z)(this,n),(e=t.apply(this,arguments)).state={copied:!1},e.copyLink=null,e.copyLinkRef=function(t){e.copyLink=t},e}return(0,g.Z)(n,[{key:"componentDidMount",value:function(){this.props.withCopyLink&&this.copyLink&&(this.copyLink.style.width="".concat(this.copyLink.scrollWidth,"px"))}},{key:"render",value:function(){var e=this.props,t=e.socialNets,n=e.withCopyLink,i=e.className,r=e.direction,o=e.children,a=Array.isArray(t)&&t.length>0,u=s.Children.toArray(o).filter((function(e){return bt(e)}));return s.createElement("div",{className:yt({layout:r},i)},s.createElement("div",{className:yt("socials-container")},a&&this.renderSocialShareLinks(),Boolean(null===u||void 0===u?void 0:u.length)&&u),a&&n&&s.createElement("div",{className:yt("separator")}),n&&this.renderCopyLink())}},{key:"renderSocialShareLinks",value:function(){var e=this.props,t=e.url,n=e.title,i=e.text,r=e.socialNets,o=e.direction;return s.createElement("div",{className:yt("social")},r.map((function(e){return s.createElement(vt,{key:e,type:e,url:t,title:n,text:i,className:yt("link"),direction:o})})))}},{key:"renderCopyLink",value:function(){var e=this,t=this.props,n=t.url,i=t.copyIcon,r=t.copyTitle,o=t.renderCopy,a=this.state.copied,u=r||pt(a?"label_copy-link-copied":"label_copy-link");return s.createElement("div",{className:yt("copy-link")},o?o({url:n,title:u,icon:i||mt}):s.createElement(le.h,{text:this.props.url,timeout:1500},(function(t){return s.createElement(ie.z,{ref:e.copyLinkRef,view:"flat-secondary",size:"l",disabled:t===ce.T.Success,width:"max"},s.createElement(_e.J,{data:i||mt,size:16}),u)})))}}]),n}(s.PureComponent);wt.defaultProps={socialNets:[],withCopyLink:!1},wt.Item=vt;var Ct=n(15861),kt=n(87757),St=n.n(kt);function xt(e){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},rt.i,e),s.createElement("path",{d:"M12.5 5a2.98 2.98 0 0 0-1.976.758L6.45 3.495c.027-.162.05-.325.05-.495a3 3 0 1 0-3 3c.76 0 1.447-.292 1.976-.759L9.55 7.505c-.027.162-.05.326-.05.495 0 .169.023.333.05.495l-4.074 2.264A2.975 2.975 0 0 0 3.5 10a3 3 0 1 0 3 3c0-.17-.023-.333-.05-.495l4.074-2.263A2.98 2.98 0 0 0 12.5 11a3 3 0 1 0 0-6z"}))}var Lt=(0,O.Ge)("share-tooltip"),Et={iconSize:16,socialNets:wt.defaultProps.socialNets,withCopyLink:!0,useWebShareApi:!1,placement:["bottom-end"],openByHover:!0,autoclosable:!0,closeDelay:300,direction:tt.Row},Nt=function(e){(0,v.Z)(n,e);var t=(0,m.Z)(n);function n(){var e;return(0,p.Z)(this,n),(e=t.apply(this,arguments)).handleClick=function(){var t=(0,Ct.Z)(St().mark((function t(n){var i,r,o,a,s,u;return St().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=e.props,r=i.url,o=i.title,a=i.text,s=i.useWebShareApi,(u=i.handleMetrika)&&u(),!s||!navigator||"function"!==typeof navigator.share){t.next=7;break}return t.next=5,navigator.share({url:r,title:o,text:a});case 5:return n.preventDefault(),t.abrupt("return",!1);case 7:return t.abrupt("return",!0);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),e}return(0,g.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.url,n=e.title,i=e.text,r=e.socialNets,o=e.withCopyLink,a=e.useWebShareApi,u=e.placement,l=e.openByHover,c=e.autoclosable,d=e.closeDelay,h=e.iconSize,f=e.iconClass,p=e.tooltipClassName,g=e.switcherClassName,v=e.className,m=e.direction,_=e.customIcon,y=e.buttonTitle,b=e.copyTitle,w=e.copyIcon,C=e.renderCopy,k=e.children,S=s.createElement(wt,{url:t,title:n,text:i,socialNets:r,withCopyLink:o,direction:m,copyTitle:b,copyIcon:w,renderCopy:C},k);return s.createElement(Ne.J,{placement:u,hasArrow:!1,openOnHover:l&&!a,autoclosable:c,delayClosing:d,content:S,className:Lt(null,v),tooltipClassName:Lt("tooltip",p),onClick:this.handleClick},s.createElement("div",{className:Lt("container",g)},s.createElement("div",{className:Lt("icon-container")},s.createElement(_e.J,{data:_||xt,size:h,className:Lt("icon",f)})),Boolean(y)&&s.createElement("div",{className:Lt("title")},y)))}}]),n}(s.PureComponent);Nt.defaultProps=Et;var Dt=n(73692),Mt=(0,O.Ge)("spin"),Tt=s.forwardRef((function(e,t){var n=e.size,i=void 0===n?"m":n,r=e.style,o=e.className,a=e.qa;return s.createElement("div",{ref:t,style:r,className:Mt({size:i},o),"data-qa":a},s.createElement("div",{className:Mt("inner")}))})),Ot=n(39874),It=(0,O.Ge)("store-badge");function At(e){var t=e.platform,n=e.lang,i=void 0===n?Ot.Uo.En:n,r=e.className,o=e.onClick,a=e.url,u=e.alt;return a?s.createElement("a",{className:It(null,r),onClick:o,href:a,target:"_blank",rel:"noopener noreferrer"},s.createElement("img",{className:It("image",{platform:t,lang:i}),alt:u})):s.createElement("img",{className:It({platform:t,lang:i},r),onClick:o,alt:u})}var Rt=n(47206),Pt=(0,O.Ge)("stories-image-view");function Zt(e){var t=e.media;return"image"===(t.type||"image")?s.createElement("img",{className:Pt(),src:t.url,alt:""}):null}var Ft=(0,O.Ge)("stories-video-view");function jt(e){var t=e.media;return"video"===t.type?s.createElement("video",{className:Ft(),src:t.url,controls:!1,playsInline:!0,muted:!0,autoPlay:!0,loop:!0,"webkit-playsinline":"true",poster:t.posterUrl}):null}function Ht(e){var t=e.media;return"image"===(t.type||"image")?s.createElement(Zt,{media:t}):s.createElement(jt,{media:t})}var Bt,zt=JSON.parse('{"label_back":"Back","label_next":"Next","label_close":"Close","label_more":"More","label_counter":"{{current}} of {{total}}"}'),Wt=JSON.parse('{"label_back":"\u041d\u0430\u0437\u0430\u0434","label_next":"\u0414\u0430\u043b\u044c\u0448\u0435","label_close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","label_more":"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435","label_counter":"{{current}} \u0438\u0437 {{total}}"}'),Vt=(0,dt.U)({en:zt,ru:Wt},"Stories"),Yt=(0,O.Ge)("stories-layout");!function(e){e[e.Start=1]="Start",e[e.End=2]="End",e[e.InProccess=3]="InProccess"}(Bt||(Bt={}));var Ut=function(e){var t=e.items[e.storyIndex];return s.createElement("div",{className:Yt("wrap-outer")},s.createElement("div",{className:Yt("wrap-inner")},s.createElement("div",{className:Yt("container")},s.createElement("div",{className:Yt("left-pane")},s.createElement("div",{className:Yt("counter")},Vt("label_counter",{current:e.storyIndex+1,total:e.items.length})),s.createElement("div",{className:Yt("text-block")},t&&s.createElement(s.Fragment,null,t.title&&s.createElement("div",{className:Yt("text-header")},t.title),t.description&&s.createElement("div",{className:Yt("text-content")},t.description),t.url&&s.createElement("div",{className:Yt("story-link-block")},s.createElement(be.r,{href:t.url,target:"_blank"},Vt("label_more"))))),s.createElement("div",{className:Yt("controls-block")},Bt.Start!==e.indexType&&s.createElement(ie.z,{onClick:e.handleGotoPrevious,view:"outlined",size:"l"},Vt("label_back")),Bt.InProccess!==e.indexType&&s.createElement(ie.z,{onClick:e.handleButtonClose,size:"l"},Vt("label_close")),Bt.End!==e.indexType&&s.createElement(ie.z,{onClick:e.handleGotoNext,view:"action",size:"l"},Vt("label_next")))),s.createElement("div",{className:Yt("right-pane")},s.createElement(Rt.f,{onClose:e.handleButtonClose}),(null===t||void 0===t?void 0:t.media)&&s.createElement("div",{className:Yt("media-block")},s.createElement(Ht,{media:t.media}))))))},Kt=(0,O.Ge)("stories");function qt(e){var t=e.open,n=e.onClose,i=e.items,r=e.onPreviousClick,a=e.onNextClick,u=e.initialStoryIndex,l=void 0===u?0:u,c=e.disableOutsideClick,d=void 0===c||c,h=s.useState(l),f=(0,o.Z)(h,2),p=f[0],g=f[1],v=s.useCallback((function(e,t){null===n||void 0===n||n(e,t)}),[n]),m=s.useCallback((function(e){v(e,"closeButtonClick")}),[v]),_=s.useCallback((function(){g((function(e){if(e<=0)return 0;var t=e-1;return null===r||void 0===r||r(t),t}))}),[r]),y=s.useCallback((function(){g((function(e){if(e>=i.length-1)return i.length-1;var t=e+1;return null===a||void 0===a||a(t),t}))}),[i,a]);if(0===i.length)return null;if(void 0===i[p]){var b=void 0===i[l]?0:l;return g(b),null}var w=0===p&&Bt.Start||p===i.length-1&&Bt.End||Bt.InProccess;return s.createElement(Ee.u,{open:t,onClose:v,disableOutsideClick:d,contentClassName:Kt("modal-content")},s.createElement(Ut,{items:i,storyIndex:p,indexType:w,handleButtonClose:m,handleGotoNext:y,handleGotoPrevious:_}))}var Gt=n(95101),$t=(0,O.Ge)("stories-group-preview"),Qt=function(e){var t=e.active,n=e.disabled,i=e.groupIndex,r=e.media,o=e.onSelectGroup,a=s.useCallback((function(e){e.preventDefault(),e.stopPropagation(),null===o||void 0===o||o(i)}),[o,i]);return s.createElement("div",{className:$t("stories-preview-item",{active:t,disabled:n}),onClick:a},r&&s.createElement(Ht,{media:r}))},Xt=function(e){var t=e.groupIndex,n=e.groups,i=e.onGroupSelect,r=e.offset,o=void 0===r?0:r;return s.createElement(s.Fragment,null,n.map((function(e,n){var r,a=e.thumbnailMedia,u=e.items,l=a||(null===(r=u[0])||void 0===r?void 0:r.media),c=o+n;return s.createElement(Qt,{key:n,groupIndex:c,active:c===t,disabled:0===u.length,media:l,onSelectGroup:i})})))},Jt=function(e){var t=e.groupIndex,n=e.groups,i=e.onGroupSelect,r=e.maxSliderItemsCount,a=s.useState(0),u=(0,o.Z)(a,2),l=u[0],c=u[1];s.useEffect((function(){var e=r*Math.floor(t/r);c(e)}),[t,r]);var d=s.useCallback((function(e){e.preventDefault(),e.stopPropagation(),c((function(e){return e-r}))}),[r]),h=s.useCallback((function(e){e.preventDefault(),e.stopPropagation(),c((function(e){return e+r}))}),[r]);return s.createElement(s.Fragment,null,n.length>r&&s.createElement("div",{className:$t("slider-button-wrapper")},0!==l&&s.createElement(ie.z,{view:"raised",pin:"circle-circle",onClick:d},s.createElement(_e.J,{className:$t("Icon",{left:!0}),data:Gt.T}))),s.createElement("div",{className:$t("slider-preview-list-wrapper"),style:{width:"".concat(40*r+8*(r-1),"px")}},s.createElement(Xt,{groupIndex:t,groups:n.slice(l,l+r),onGroupSelect:i,offset:l})),n.length>r&&s.createElement("div",{className:$t("slider-button-wrapper")},l<n.length-r&&s.createElement(ie.z,{view:"raised",pin:"circle-circle",onClick:h},s.createElement(_e.J,{className:$t("Icon",{right:!0}),data:Gt.T}))))},en=function(e){var t=e.groups,n=e.groupIndex,i=e.onGroupSelect,r=e.maxSliderItemsCount,o=e.onClose,a=s.useCallback((function(e){null===o||void 0===o||o(e,"outsideClick")}),[o]);return t.length<r?s.createElement("div",{className:$t(),onClick:a},s.createElement(Xt,{groupIndex:n,groups:t,onGroupSelect:i})):s.createElement("div",{className:$t(),onClick:a},s.createElement(Jt,{maxSliderItemsCount:r,groupIndex:n,groups:t,onGroupSelect:i}))},tn=(0,O.Ge)("stories-group"),nn=function(e){var t=e.open,n=e.groups,i=e.onItemSelect,r=e.disableOutsideClick,a=void 0===r||r,u=e.initialStoryIndex,l=void 0===u?[0,0]:u,c=e.maxSliderItemsCount,d=void 0===c?12:c,h=e.onClose,f=s.useState(l),p=(0,o.Z)(f,2),g=(0,o.Z)(p[0],2),v=g[0],m=g[1],_=p[1],y=s.useCallback((function(e,t){null===h||void 0===h||h(e,t)}),[h]),b=s.useCallback((function(e){y(e,"closeButtonClick")}),[y]),w=s.useCallback((function(){_((function(e){var t=(0,o.Z)(e,2),r=t[0],a=t[1];if(a>0){var s=[r,a-1];return null===i||void 0===i||i(s,!1),s}for(var u=r-1;u>=0;--u)if(0!==n[u].items.length){var l=[u,n[u].items.length-1];return null===i||void 0===i||i(l,!1),l}return e}))}),[n,i]),C=s.useCallback((function(){_((function(e){var t,r=(0,o.Z)(e,2),a=r[0],s=r[1];if(s<(null===(t=n[a])||void 0===t?void 0:t.items.length)-1){var u=[a,s+1];return null===i||void 0===i||i(u,!1),u}for(var l=a+1;l<n.length;++l)if(0!==n[l].items.length){var c=[l,0];return null===i||void 0===i||i(c,!1),c}return e}))}),[n,i]),k=s.useCallback((function(e){_([e,0]),null===i||void 0===i||i([e,0],!0)}),[i]);if(0===n.length)return null;var S=n[v],x=(null===S||void 0===S?void 0:S.items)||[];if(void 0===S||void 0===x[m]){if(n[l[0]]&&n[l[0]].items[l[1]])_(l);else for(var L=0;L<n.length;++L)if(n[L]&&0!==n[L].items.length){_([L,0]);break}return null}var E=0===v&&0===m&&Bt.Start||v===n.length-1&&m===x.length-1&&Bt.End||Bt.InProccess;return s.createElement(Ee.u,{open:t,onClose:y,disableOutsideClick:a,contentClassName:tn("modal-content")},s.createElement(en,{maxSliderItemsCount:d>0?d:1,groups:n,groupIndex:v,onGroupSelect:k,onClose:a?void 0:y}),s.createElement(Ut,{storyIndex:m,items:x,indexType:E,handleButtonClose:b,handleGotoNext:C,handleGotoPrevious:w}))},rn=n(44306),on=n(4942),an=n(11141),sn=n.n(an),un=n(71197),ln=n.n(un),cn=n(24433),dn=n.n(cn),hn=n(81451),fn=JSON.parse('{"label_empty":"No data"}'),pn=JSON.parse('{"label_empty":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445"}'),gn=(0,dt.U)({en:fn,ru:pn},"Table"),vn=(0,O.Ge)("table"),mn=function(e){(0,v.Z)(n,e);var t=(0,m.Z)(n);function n(){var e;return(0,p.Z)(this,n),(e=t.apply(this,arguments)).state={activeScrollElement:"scrollContainer",columnsStyles:Array.from(e.props.columns,(function(){return{}})),columnHeaderRefs:Array.from(e.props.columns,(function(){return s.createRef()}))},e.tableRef=s.createRef(),e.scrollContainerRef=s.createRef(),e.horizontalScrollBarRef=s.createRef(),e.horizontalScrollBarInnerRef=s.createRef(),e.renderRow=function(t,i){var r=e.props,o=r.columns,a=r.isRowDisabled,u=r.onRowClick,l=r.onRowMouseEnter,c=r.onRowMouseLeave,d=r.getRowClassNames,h=r.verticalAlign,f=r.edgePadding,p=e.state.columnsStyles,g=!!a&&a(t,i),v=Boolean(!g&&u),m=d?d(t,i):[];return s.createElement("tr",{key:n.getRowId(e.props,t,i),onClick:!g&&u?u.bind(null,t,i):void 0,onMouseEnter:!g&&l?l.bind(null,t,i):void 0,onMouseLeave:!g&&c?c.bind(null,t,i):void 0,className:vn("row",{disabled:g,interactive:v,"vertical-align":h},m.join(" "))},o.map((function(e,r){var o=e.id,a=e.align,u=e.primary,l=e.className,c=e.sticky,d=n.getBodyCellContent(e,t,i);return s.createElement("td",{key:o,style:p[r],className:vn("cell",(0,on.Z)({align:a,primary:u,sticky:c},"edge-padding",f),l)},d)})))},e.handleScrollContainerMouseenter=function(){e.setState({activeScrollElement:"scrollContainer"})},e.handleScrollContainerScroll=function(){"scrollContainer"===e.state.activeScrollElement&&e.horizontalScrollBarRef.current&&e.scrollContainerRef.current&&(e.horizontalScrollBarRef.current.scrollLeft=e.scrollContainerRef.current.scrollLeft)},e.handleHorizontalScrollBarMouseenter=function(){e.setState({activeScrollElement:"scrollBar"})},e.handleHorizontalScrollBarScroll=function(){"scrollBar"===e.state.activeScrollElement&&e.horizontalScrollBarRef.current&&e.scrollContainerRef.current&&(e.scrollContainerRef.current.scrollLeft=e.horizontalScrollBarRef.current.scrollLeft)},e}return(0,g.Z)(n,[{key:"componentDidMount",value:function(){var e=this;this.props.stickyHorizontalScroll&&(this.tableResizeObserver=new hn.Z((function(t){var n,i=t[0].contentRect;null===(n=e.horizontalScrollBarInnerRef.current)||void 0===n||n.style.setProperty("width","".concat(i.width,"px"))})),this.tableRef.current&&this.tableResizeObserver.observe(this.tableRef.current),this.scrollContainerRef.current&&(this.scrollContainerRef.current.addEventListener("scroll",this.handleScrollContainerScroll),this.scrollContainerRef.current.addEventListener("mouseenter",this.handleScrollContainerMouseenter)),this.horizontalScrollBarRef.current&&(this.horizontalScrollBarRef.current.addEventListener("scroll",this.handleHorizontalScrollBarScroll),this.horizontalScrollBarRef.current.addEventListener("mouseenter",this.handleHorizontalScrollBarMouseenter))),this.columnsResizeObserver=new hn.Z((function(){e.updateColumnStyles()})),this.tableRef.current&&this.columnsResizeObserver.observe(this.tableRef.current)}},{key:"componentDidUpdate",value:function(e){this.props.columns!==e.columns&&this.updateColumnStyles()}},{key:"componentWillUnmount",value:function(){this.props.stickyHorizontalScroll&&(this.tableResizeObserver&&this.tableResizeObserver.disconnect(),this.scrollContainerRef.current&&(this.scrollContainerRef.current.removeEventListener("scroll",this.handleScrollContainerScroll),this.scrollContainerRef.current.removeEventListener("mouseenter",this.handleScrollContainerMouseenter)),this.horizontalScrollBarRef.current&&(this.horizontalScrollBarRef.current.removeEventListener("scroll",this.handleHorizontalScrollBarScroll),this.horizontalScrollBarRef.current.removeEventListener("mouseenter",this.handleHorizontalScrollBarMouseenter))),this.columnsResizeObserver&&this.columnsResizeObserver.disconnect()}},{key:"render",value:function(){var e=this.props,t=e.columns,n=e.stickyHorizontalScroll,i=e.className,r=e.qa,o=t.some((function(e){return e.primary}));return s.createElement("div",{className:vn({"with-primary":o,"with-sticky-scroll":n},i),"data-qa":r},n?s.createElement(s.Fragment,null,s.createElement("div",{ref:this.scrollContainerRef,className:vn("scroll-container")},this.renderTable()),this.renderHorizontalScrollBar()):this.renderTable())}},{key:"renderHead",value:function(){var e=this,t=this.props,i=t.columns,r=t.edgePadding,o=this.state.columnsStyles;return s.createElement("thead",{className:vn("head")},s.createElement("tr",{className:vn("row")},i.map((function(t,i){var a=t.id,u=t.align,l=t.primary,c=t.sticky,d=t.className,h=n.getHeadCellContent(t);return s.createElement("th",{key:a,ref:e.state.columnHeaderRefs[i],style:o[i],className:vn("cell",(0,on.Z)({align:u,primary:l,sticky:c},"edge-padding",r),d)},h)}))))}},{key:"renderBody",value:function(){var e=this.props.data;return s.createElement("tbody",{className:vn("body")},e.length>0?e.map(this.renderRow):this.renderEmptyRow())}},{key:"renderTable",value:function(){return s.createElement("table",{ref:this.tableRef,className:vn("table")},this.renderHead(),this.renderBody())}},{key:"renderEmptyRow",value:function(){var e=this.props,t=e.columns,n=e.emptyMessage;return s.createElement("tr",{className:vn("row",{empty:!0})},s.createElement("td",{className:vn("cell"),colSpan:t.length},n||gn("label_empty")))}},{key:"renderHorizontalScrollBar",value:function(){var e=this.props,t=e.stickyHorizontalScroll,n=e.stickyHorizontalScrollBreakpoint,i=void 0===n?0:n;return s.createElement("div",{ref:this.horizontalScrollBarRef,className:vn("horizontal-scroll-bar",{"sticky-horizontal-scroll":t}),style:{bottom:"".concat(i,"px")},"data-qa":"sticky-horizontal-scroll-breakpoint-qa"},s.createElement("div",{ref:this.horizontalScrollBarInnerRef,className:vn("horizontal-scroll-bar-inner")}))}},{key:"updateColumnStyles",value:function(){var e=this;this.setState((function(t){var n=t.columnHeaderRefs.map((function(e){return null===e.current?void 0:e.current.getBoundingClientRect().width}));return{columnsStyles:e.props.columns.map((function(t,i){return e.getColumnStyles(i,n)}))}}))}},{key:"getColumnStyles",value:function(e,t){var n=this.props.columns[e],i={};if("string"===typeof n.width)return{maxWidth:0,width:n.width};if("undefined"!==typeof n.width&&(i.width=n.width),!n.sticky)return i;var r="left"===n.sticky?t.slice(0,e):t.slice(e+1);return i[n.sticky]=r.reduce((function(e,t){return dn()(t)?e+t:e}),0),i}}],[{key:"getRowId",value:function(e,t,n){var i=e.data,r=e.getRowId,o=null!==n&&void 0!==n?n:i.indexOf(t);return"function"===typeof r?r(t,o):String(r&&r in t?t[r]:o)}},{key:"getHeadCellContent",value:function(e){var t,n=e.id,i=e.name;return t="function"===typeof i?i():"string"===typeof i?i:n,s.createElement("span",{className:vn("th-content")},t)}},{key:"getBodyCellContent",value:function(e,t,n){var i,r,o=e.id,a=e.template,s=e.placeholder;return i="function"===typeof s?s(t,n):null!==s&&void 0!==s?s:"\u2014","function"===typeof a?r=a(t,n):"string"===typeof a?r=sn()(t,a):ln()(t,o)&&(r=sn()(t,o)),[void 0,null,""].includes(r)&&i?i:r}},{key:"getDerivedStateFromProps",value:function(e,t){return e.columns.length===t.columnHeaderRefs.length?null:{columnHeaderRefs:Array.from(e.columns,(function(){return s.createRef()}))}}}]),n}(s.Component);mn.defaultProps={edgePadding:!0};var _n=n(93433),yn=n(97326),bn=n(44046),wn=n.n(bn),Cn=n(45441),kn=n.n(Cn),Sn=n(4076),xn=n.n(Sn),Ln=n(51761),En=n.n(Ln),Nn=(0,O.Ge)("table"),Dn="_selection";function Mn(e){var t,n=_(e),i="withTableSelection(".concat(n,")");return t=function(t){(0,v.Z)(i,t);var n=(0,m.Z)(i);function i(){var e;return(0,p.Z)(this,i),(e=n.apply(this,arguments)).renderHeadCell=function(){var t=e.props,n=t.data,i=t.selectedIds,r=!0,o=n.every((function(t,n){if(e.isDisabled(t,n))return!0;r=!1;var o=mn.getRowId(e.props,t,n);return i.includes(o)}));return r&&(o=!1),e.renderCheckBox({disabled:r,checked:o,handler:e.handleAllCheckBoxUpdate})},e.renderBodyCell=function(t,n){var i=e.props.selectedIds,r=mn.getRowId(e.props,t,n),o=i.includes(r);return e.renderCheckBox({disabled:e.isDisabled(t,n),checked:o,handler:e.handleCheckBoxUpdate.bind((0,yn.Z)(e),r,n)})},e.handleCheckBoxUpdate=function(t,n,i){var r=i.target.checked,o=i.nativeEvent.shiftKey,a=e.props,s=a.data,u=a.selectedIds,l=a.onSelectionChange;if(o&&void 0!==e.lastCheckedIndex&&e.lastCheckedIndex>=0){var c=Math.min(e.lastCheckedIndex,n),d=Math.max(e.lastCheckedIndex,n),h=s.map((function(t,n){return mn.getRowId(e.props,t,n)})).filter((function(t,n){return c<=n&&n<=d&&!e.isDisabled(s[n],n)}));l(r?kn()(u,h):wn().apply(void 0,[u].concat((0,_n.Z)(h))))}else l(r?[].concat((0,_n.Z)(u),[t]):wn()(u,t));e.lastCheckedIndex=n},e.handleAllCheckBoxUpdate=function(t){var n=t.target.checked,i=e.props,r=i.data,o=i.selectedIds,a=i.onSelectionChange,s=r.map((function(t,n){return mn.getRowId(e.props,t,n)})),u=s.filter((function(t,n){return!e.isDisabled(r[n],n)}));a(n?kn()(o,u):xn()(o,s))},e.enhanceColumns=En()((function(t){return[{id:Dn,name:e.renderHeadCell,template:e.renderBodyCell,width:17,sticky:"left"===sn()(t,[0,"sticky"])?"left":void 0}].concat((0,_n.Z)(t))})),e.enhanceOnRowClick=En()((function(e){return e?function(t,n,i){var r=Nn("selection-checkbox");if(!i.nativeEvent.target.matches(".".concat(r,", .").concat(r," *")))return e(t,n,i)}:e})),e.enhanceGetRowClassNames=En()((function(t){return function(n,i){var r=e.props.selectedIds,o=t?t(n,i):[],a=mn.getRowId(e.props,n,i),s=r.includes(a);return o.push(Nn("row",{selected:s})),o}})),e.isDisabled=function(t,n){var i=e.props,r=i.isRowDisabled,o=i.isRowSelectionDisabled;return!(!o||!o(t,n))||!!r&&r(t,n)},e}return(0,g.Z)(i,[{key:"render",value:function(){var t=this.props,n=(t.selectedIds,t.onSelectionChange,t.columns),i=t.onRowClick,r=t.getRowClassNames,o=(0,a._T)(t,["selectedIds","onSelectionChange","columns","onRowClick","getRowClassNames"]);return s.createElement(e,Object.assign({},o,{columns:this.enhanceColumns(n),onRowClick:this.enhanceOnRowClick(i),getRowClassNames:this.enhanceGetRowClassNames(r)}))}},{key:"renderCheckBox",value:function(e){var t=e.disabled,n=e.checked,i=e.handler;return s.createElement(re.X,{size:"l",checked:n,disabled:t,onChange:i,className:Nn("selection-checkbox")})}}]),i}(s.Component),t.displayName=i,t}var Tn=n(61278),On="_actions";function In(e,t){var n=e.find((function(e){return e.id===On})),i=n||{id:On,name:"",sticky:"right",width:28,placeholder:""};return t(i),n?e:[].concat((0,_n.Z)(e),[i])}var An=(0,O.Ge)("table"),Rn=(0,O.Ge)("table-action-popup"),Pn=An("actions-button");function Zn(e){var t,n=_(e),i="withTableActions(".concat(n,")");return t=function(t){(0,v.Z)(i,t);var n=(0,m.Z)(i);function i(){var e;return(0,p.Z)(this,i),(e=n.apply(this,arguments)).state={popupOpen:!1,popupData:null},e.anchorRef=s.createRef(),e.renderBodyCell=function(t,n){var i=e.props,r=i.isRowDisabled;if(0===(0,i.getRowActions)(t,n).length)return null;var o=!!r&&r(t,n);return s.createElement("div",{className:An("actions")},s.createElement(ie.z,{view:"flat-secondary",disabled:o,className:Pn,onClick:e.handleActionsButtonClick.bind((0,yn.Z)(e),{item:t,index:n})},s.createElement(_e.J,{data:Tn.Y})))},e.renderPopupMenuItem=function(t,n){var i=e.state.popupData;return e.isActionGroup(t)?s.createElement(Le.v.Group,{key:n,label:t.title},t.items.map(e.renderPopupMenuItem)):s.createElement(Le.v.Item,{key:n,disabled:t.disabled,onClick:e.handleActionClick.bind((0,yn.Z)(e),t,i),theme:t.theme,className:Rn("menu-item")},t.text)},e.handleActionsButtonClick=function(t,n){var i=e.state.popupOpen,r=n.currentTarget;i&&e.anchorRef.current===r?e.closePopup():e.openPopup(r,t)},e.handleActionClick=function(t,n,i){t.handler(n.item,n.index,i),e.closePopup()},e.handlePopupClose=function(){e.closePopup()},e.enhanceColumns=En()((function(t){return In(t,(function(t){t.template=e.renderBodyCell}))})),e.enhanceOnRowClick=En()((function(e){return e?function(t,n,i){if(!i.nativeEvent.target.matches(".".concat(Pn,", .").concat(Pn," *")))return e(t,n,i)}:e})),e}return(0,g.Z)(i,[{key:"render",value:function(){var t=this.props,n=(t.getRowActions,t.columns),i=t.onRowClick,r=(0,a._T)(t,["getRowActions","columns","onRowClick"]);return s.createElement(s.Fragment,null,s.createElement(e,Object.assign({},r,{columns:this.enhanceColumns(n),onRowClick:this.enhanceOnRowClick(i)})),this.renderPopup())}},{key:"renderPopup",value:function(){var e=this.props.getRowActions,t=this.state,n=t.popupOpen,i=t.popupData;if(!i)return null;var r=e(i.item,i.index);return s.createElement(q.G,{open:n,anchorRef:this.anchorRef,placement:["bottom-end","top-end"],onClose:this.handlePopupClose},s.createElement(Le.v,{className:Rn("menu")},r.map(this.renderPopupMenuItem)))}},{key:"openPopup",value:function(e,t){this.anchorRef.current=e,this.setState({popupOpen:!0,popupData:t})}},{key:"closePopup",value:function(){this.setState({popupOpen:!1})}},{key:"isActionGroup",value:function(e){return Array.isArray(e.items)}}]),i}(s.Component),t.displayName=i,t}var Fn=(0,O.Ge)("table");function jn(e){var t,n=_(e),i="withTableCopy(".concat(n,")");return t=function(t){(0,v.Z)(i,t);var n=(0,m.Z)(i);function i(){var e;return(0,p.Z)(this,i),(e=n.apply(this,arguments)).enhanceColumns=En()((function(e){return e.map((function(e){var t=e.meta;return t&&t.copy?Object.assign(Object.assign({},e),{template:function(n,i){var r,o=mn.getBodyCellContent(Object.assign(Object.assign({},e),{placeholder:""}),n,i);return o?("function"===typeof t.copy?r=String(t.copy(n,i)):"string"!==typeof o&&"number"!==typeof o||(r=String(o)),r?s.createElement("div",{className:Fn("copy")},s.createElement("div",{className:Fn("copy-content")},o),s.createElement("div",{className:Fn("copy-button")},s.createElement(se.m,{text:r,size:14}))):o):o}}):e}))})),e.enhanceOnRowClick=En()((function(e){return e?function(t,n,i){var r=Fn("copy-button");if(!i.nativeEvent.target.matches(".".concat(r,", .").concat(r," *")))return e(t,n,i)}:e})),e}return(0,g.Z)(i,[{key:"render",value:function(){var t=this.props,n=t.columns,i=t.onRowClick,r=(0,a._T)(t,["columns","onRowClick"]);return s.createElement(e,Object.assign({},r,{columns:this.enhanceColumns(n),onRowClick:this.enhanceOnRowClick(i)}))}}]),i}(s.Component),t.displayName=i,t}var Hn=(0,O.Ge)("sort-indicator");function Bn(e){var t=e.order,n=void 0===t?"asc":t;return s.createElement("div",{className:Hn()},s.createElement("div",{className:Hn("caret"),style:{transform:"asc"===n?"scale(1, -1)":void 0}},s.createElement("svg",Object.assign({width:"6",height:"3",viewBox:"0 0 6 3",fill:"currentColor"},rt.i),s.createElement("path",{d:"M0.404698 0C0.223319 0 0.102399 0.0887574 0.0419396 0.230769C-0.0386733 0.372781 0.00163315 0.497041 0.122552 0.60355L2.72232 2.89349C2.80293 2.9645 2.88354 3 3.00446 3C3.10523 3 3.20599 2.9645 3.28661 2.89349L5.88637 0.60355C6.00729 0.497041 6.02745 0.372781 5.96699 0.230769C5.88637 0.0887574 5.76545 0 5.60423 0H0.404698Z"}))))}var zn=(0,O.Ge)("table");function Wn(e){var t,n=_(e),i="withTableSorting(".concat(n,")");return t=function(t){(0,v.Z)(i,t);var n=(0,m.Z)(i);function i(){var e,t;return(0,p.Z)(this,i),(e=n.apply(this,arguments)).state={sort:null!==(t=e.props.defaultSortState)&&void 0!==t?t:[]},e.enhanceColumns=En()((function(t){return t.map((function(t){var n=t.meta;return n&&n.sort?Object.assign(Object.assign({},t),{meta:Object.assign(Object.assign({},t.meta),{_originalName:t.name}),name:function(){var n,i=e.getSortState();if(i.length>0){var r=i.find((function(e){return e.column===t.id}));r&&(n=r.order)}var o=mn.getHeadCellContent(t),a=[s.createElement("div",{key:"content",className:zn("sort-content")},o),s.createElement("div",{key:"spacer",className:zn("sort-spacer")}),s.createElement("div",{key:"indicator",className:zn("sort-indicator")},s.createElement(Bn,{order:n||e.getColumnDefaultSortOrder(t)}))];return"right"===t.align&&a.reverse(),s.createElement("div",{className:zn("sort",{active:Boolean(n)}),onClick:e.handleColumnSortClick.bind((0,yn.Z)(e),t)},a)}}):t}))})),e.handleColumnSortClick=function(t,n){var i=e.getSortState(),r=i.findIndex((function(e){return e.column===t.id})),o=i[r],a=e.getNextSortForColumn(t,o);n.shiftKey?o?e.handleSortStateChange([].concat((0,_n.Z)(i.slice(0,r)),(0,_n.Z)(i.slice(r+1)),(0,_n.Z)(a))):e.handleSortStateChange([].concat((0,_n.Z)(i),(0,_n.Z)(a))):e.handleSortStateChange(a)},e}return(0,g.Z)(i,[{key:"render",value:function(){var t=this.props,n=t.columns,i=(0,a._T)(t,["columns"]);return s.createElement(e,Object.assign({},i,{data:this.getSortedData(),columns:this.enhanceColumns(n)}))}},{key:"getSortedData",value:function(){var e=this.props,t=e.data,n=e.columns,i=this.getSortState();return this.isControlledState()||0===i.length?t:t.slice().sort((function(e,t){for(var r,o=0,a=function(){var a=i[o++],s=n.find((function(e){return e.id===a.column})),u=null===(r=null===s||void 0===s?void 0:s.meta)||void 0===r?void 0:r.sort;if(!u)return"continue";var l="function"===typeof u?u(e,t):function(e,t,n){return e[n]===t[n]?0:e[n]>t[n]?1:-1}(e,t,a.column);return 0!==l?{v:"asc"===a.order?l:-l}:void 0};o<i.length;){var s=a();if("continue"!==s&&"object"===typeof s)return s.v}return 0}))}},{key:"getSortState",value:function(){var e=this.props.sortState,t=this.state.sort;return this.isControlledState()?e:t}},{key:"handleSortStateChange",value:function(e){var t=this.props.onSortStateChange;this.isControlledState()?t(e):this.setState({sort:e})}},{key:"isControlledState",value:function(){var e=this.props,t=e.sortState,n=e.onSortStateChange;return Boolean(t&&n)}},{key:"getColumnDefaultSortOrder",value:function(e){var t;return(null===(t=e.meta)||void 0===t?void 0:t.defaultSortOrder)||"asc"}},{key:"getNextSortForColumn",value:function(e,t){var n="desc"===this.getColumnDefaultSortOrder(e)?["desc","asc",void 0]:["asc","desc",void 0],i=n.indexOf(null===t||void 0===t?void 0:t.order),r=n[(i+1)%n.length];return r?[{column:e.id,order:r}]:[]}}]),i}(s.Component),t.displayName=i,t}var Vn=n(22560),Yn=n.n(Vn),Un=n(45999),Kn=n.n(Un),qn=n(27689),Gn=n(23114);function $n(e){if(Kn()(e.name))return e.name;var t=sn()(e,["meta","_originalName"]);return Kn()(t)?t:e.id}var Qn=(0,O.Ge)("table");function Xn(e){var t=_(e),n=function(t){var n=t.updateSettings,i=t.settings,r=t.columns,o=t.settingsPopupWidth,u=(0,a._T)(t,["updateSettings","settings","columns","settingsPopupWidth"]),l=s.useMemo((function(){return function(e,t){var n=e.filter((function(e){var n=e.id;return n!==On&&n!==Dn&&t.every((function(e){return e.id!==n}))})).map((function(e){var t;return{id:e.id,isSelected:!1!==(null===(t=e.meta)||void 0===t?void 0:t.selectedByDefault)}}));return t.filter((function(t){var n=t.id;return e.some((function(e){return n===e.id}))})).concat(n).map((function(t){var n,i=t.id,r=t.isSelected,o=e.find((function(e){return e.id===i})),a=Boolean(null===(n=null===o||void 0===o?void 0:o.meta)||void 0===n?void 0:n.selectedAlways);return{id:i,isSelected:!!a||r,isProtected:a,title:o?$n(o):i}}))}(r,i||[])}),[r,i]),c=s.useCallback((function(e){n(e.map((function(e){return{id:e.id,isSelected:e.selected}})))}),[n]),d=s.useMemo((function(){return l.map((function(e){return{id:e.id,title:e.title,selected:e.isSelected,required:e.isProtected}}))}),[l]),h=s.useMemo((function(){return In(function(e,t){var n=t.map((function(t){var n=t.id;return{isSelected:t.isSelected,columnSettings:e.find((function(e){return n===e.id}))}})).filter((function(e){var t=e.isSelected,n=e.columnSettings;return t&&n})).map((function(e){return e.columnSettings}));e[0]&&e[0].id===Dn&&n.unshift(e[0]);var i=Yn()(e);return i&&i.id===On&&n.push(i),n}(r,l),(function(e){e.name=function(){return s.createElement("div",{className:Qn("settings")},s.createElement(qn.N,{popupWidth:o,popupPlacement:["bottom-end","bottom","top-end","top"],onUpdate:c,items:d,switcher:s.createElement(ie.z,{view:"flat",className:Qn("settings-button")},s.createElement(_e.J,{data:Gn.U,size:20}))}))}}))}),[l,d,r,c,o]);return s.createElement(s.Fragment,null,s.createElement(e,Object.assign({},u,{columns:h})))};return n.displayName="withTableSettings(".concat(t,")"),n}var Jn=n(64624),ei=n(97736),ti=n(65509),ni=n(12490),ii=n(6141),ri=n(2113),oi=n(32590),ai="object"===typeof window?new ri.b:null,si=n(10393);function ui(){return function(e){function t(t){var n=(0,si.P)();return s.createElement(e,Object.assign({},t,{toaster:n}))}return t.displayName="WithToaster(".concat(_(e),")"),t}}var li=n(51600),ci=n(27448),di=(0,O.Ge)("user-avatar");function hi(e){var t=e.imgUrl,n=e.size,i=void 0===n?"m":n,r=e.title,o=e.className,a=e.onClick;return s.createElement("div",{title:r,className:di({size:i},o),style:{backgroundImage:"url(".concat(t,")")},onClick:a})}var fi=(0,O.Ge)("user");function pi(e){var t=e.name,n=e.description,i=e.imgUrl,r=e.size,o=void 0===r?"m":r,a=e.className,u="xs"===o;return s.createElement("div",{className:fi({size:o},a)},i&&s.createElement(hi,{imgUrl:i,size:o,className:fi("avatar")}),(t||n)&&s.createElement("div",{className:fi("info")},t&&s.createElement("span",{className:fi("name")},t),!u&&n&&s.createElement("span",{className:fi("description")},n)))}var gi=n(63230);function vi(e,t,n){var i=_(e),r="withEventBroker(".concat(i,")"),o=s.forwardRef((function(i,r){var o=t.reduce((function(e,t){var r=i[t];return Object.assign(Object.assign({},e),(0,on.Z)({},t,(function(e){return gi.P.publish(Object.assign({eventId:t.replace(/^on/,"").toLowerCase(),domEvent:e},n)),r&&r(e)})))}),{});return s.createElement(e,Object.assign({},i,o,{ref:r}))}));return o.displayName=r,o}function mi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:gi.P;(0,s.useEffect)((function(){return t.subscribe(e),function(){return t.unsubscribe(e)}}),[t,e])}var _i=n(90247),yi=n(29670),bi=n(38220),wi=n(50754),Ci=n(39253)},7572:function(e,t,n){var i=n(46076)(n(3650),"DataView");e.exports=i},41895:function(e,t,n){var i=n(22426),r=n(5096),o=n(14190),a=n(5911),s=n(25570);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},72953:function(e,t,n){var i=n(19792),r=n(38240),o=n(96033),a=n(87333),s=n(45460);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},23301:function(e,t,n){var i=n(46076)(n(3650),"Map");e.exports=i},69121:function(e,t,n){var i=n(32388),r=n(2871),o=n(38006),a=n(98281),s=n(31831);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},64407:function(e,t,n){var i=n(46076)(n(3650),"Promise");e.exports=i},95808:function(e,t,n){var i=n(46076)(n(3650),"Set");e.exports=i},46746:function(e,t,n){var i=n(69121),r=n(68908),o=n(73771);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new i;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=r,a.prototype.has=o,e.exports=a},91395:function(e,t,n){var i=n(72953),r=n(98971),o=n(60386),a=n(20600),s=n(12752),u=n(75130);function l(e){var t=this.__data__=new i(e);this.size=t.size}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},125:function(e,t,n){var i=n(3650).Symbol;e.exports=i},67753:function(e,t,n){var i=n(3650).Uint8Array;e.exports=i},4665:function(e,t,n){var i=n(46076)(n(3650),"WeakMap");e.exports=i},70225:function(e){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},47757:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}},25262:function(e,t,n){var i=n(48075);e.exports=function(e,t){return!!(null==e?0:e.length)&&i(e,t,0)>-1}},20093:function(e){e.exports=function(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}},97233:function(e,t,n){var i=n(55412),r=n(10878),o=n(60508),a=n(47874),s=n(10026),u=n(52841),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),c=!n&&r(e),d=!n&&!c&&a(e),h=!n&&!c&&!d&&u(e),f=n||c||d||h,p=f?i(e.length,String):[],g=p.length;for(var v in e)!t&&!l.call(e,v)||f&&("length"==v||d&&("offset"==v||"parent"==v)||h&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||s(v,g))||p.push(v);return p}},19954:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}},95610:function(e){e.exports=function(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}},18503:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}},58897:function(e){e.exports=function(e){return e.split("")}},77569:function(e,t,n){var i=n(20965);e.exports=function(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}},60602:function(e,t,n){var i=n(46746),r=n(25262),o=n(20093),a=n(19954),s=n(29937),u=n(61832),l=200;e.exports=function(e,t,n,c){var d=-1,h=r,f=!0,p=e.length,g=[],v=t.length;if(!p)return g;n&&(t=a(t,s(n))),c?(h=o,f=!1):t.length>=l&&(h=u,f=!1,t=new i(t));e:for(;++d<p;){var m=e[d],_=null==n?m:n(m);if(m=c||0!==m?m:0,f&&_===_){for(var y=v;y--;)if(t[y]===_)continue e;g.push(m)}else h(t,_,c)||g.push(m)}return g}},32099:function(e){e.exports=function(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}},87379:function(e,t,n){var i=n(95610),r=n(86109);e.exports=function e(t,n,o,a,s){var u=-1,l=t.length;for(o||(o=r),s||(s=[]);++u<l;){var c=t[u];n>0&&o(c)?n>1?e(c,n-1,o,a,s):i(s,c):a||(s[s.length]=c)}return s}},71369:function(e,t,n){var i=n(38697),r=n(64089);e.exports=function(e,t){for(var n=0,o=(t=i(t,e)).length;null!=e&&n<o;)e=e[r(t[n++])];return n&&n==o?e:void 0}},12200:function(e,t,n){var i=n(95610),r=n(60508);e.exports=function(e,t,n){var o=t(e);return r(e)?o:i(o,n(e))}},20161:function(e,t,n){var i=n(125),r=n(46937),o=n(4868),a="[object Null]",s="[object Undefined]",u=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?r(e):o(e)}},25257:function(e){var t=Object.prototype.hasOwnProperty;e.exports=function(e,n){return null!=e&&t.call(e,n)}},27534:function(e){e.exports=function(e,t){return null!=e&&t in Object(e)}},48075:function(e,t,n){var i=n(32099),r=n(97057),o=n(39139);e.exports=function(e,t,n){return t===t?o(e,t,n):i(e,r,n)}},94051:function(e,t,n){var i=n(20161),r=n(84341),o="[object Arguments]";e.exports=function(e){return r(e)&&i(e)==o}},22327:function(e,t,n){var i=n(40723),r=n(84341);e.exports=function e(t,n,o,a,s){return t===n||(null==t||null==n||!r(t)&&!r(n)?t!==t&&n!==n:i(t,n,o,a,e,s))}},40723:function(e,t,n){var i=n(91395),r=n(3704),o=n(57318),a=n(31223),s=n(81591),u=n(60508),l=n(47874),c=n(52841),d=1,h="[object Arguments]",f="[object Array]",p="[object Object]",g=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,v,m,_){var y=u(e),b=u(t),w=y?f:s(e),C=b?f:s(t),k=(w=w==h?p:w)==p,S=(C=C==h?p:C)==p,x=w==C;if(x&&l(e)){if(!l(t))return!1;y=!0,k=!1}if(x&&!k)return _||(_=new i),y||c(e)?r(e,t,n,v,m,_):o(e,t,w,n,v,m,_);if(!(n&d)){var L=k&&g.call(e,"__wrapped__"),E=S&&g.call(t,"__wrapped__");if(L||E){var N=L?e.value():e,D=E?t.value():t;return _||(_=new i),m(N,D,n,v,_)}}return!!x&&(_||(_=new i),a(e,t,n,v,m,_))}},26922:function(e,t,n){var i=n(91395),r=n(22327),o=1,a=2;e.exports=function(e,t,n,s){var u=n.length,l=u,c=!s;if(null==e)return!l;for(e=Object(e);u--;){var d=n[u];if(c&&d[2]?d[1]!==e[d[0]]:!(d[0]in e))return!1}for(;++u<l;){var h=(d=n[u])[0],f=e[h],p=d[1];if(c&&d[2]){if(void 0===f&&!(h in e))return!1}else{var g=new i;if(s)var v=s(f,p,h,e,t,g);if(!(void 0===v?r(p,f,o|a,s,g):v))return!1}}return!0}},97057:function(e){e.exports=function(e){return e!==e}},3092:function(e,t,n){var i=n(57119),r=n(19705),o=n(82222),a=n(94552),s=/^\[object .+?Constructor\]$/,u=Function.prototype,l=Object.prototype,c=u.toString,d=l.hasOwnProperty,h=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||r(e))&&(i(e)?h:s).test(a(e))}},72533:function(e,t,n){var i=n(20161),r=n(60997),o=n(84341),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&r(e.length)&&!!a[i(e)]}},37823:function(e,t,n){var i=n(92774),r=n(85870),o=n(55308),a=n(60508),s=n(23364);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?r(e[0],e[1]):i(e):s(e)}},72467:function(e,t,n){var i=n(9986),r=n(87682),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return r(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},92774:function(e,t,n){var i=n(26922),r=n(94891),o=n(47e3);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||i(n,e,t)}}},85870:function(e,t,n){var i=n(22327),r=n(11141),o=n(8976),a=n(22498),s=n(79787),u=n(47e3),l=n(64089),c=1,d=2;e.exports=function(e,t){return a(e)&&s(t)?u(l(e),t):function(n){var a=r(n,e);return void 0===a&&a===t?o(n,e):i(t,a,c|d)}}},96067:function(e){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},87402:function(e,t,n){var i=n(71369);e.exports=function(e){return function(t){return i(t,e)}}},86013:function(e){var t=Math.ceil,n=Math.max;e.exports=function(e,i,r,o){for(var a=-1,s=n(t((i-e)/(r||1)),0),u=Array(s);s--;)u[o?s:++a]=e,e+=r;return u}},38825:function(e,t,n){var i=n(55308),r=n(46770),o=n(94969);e.exports=function(e,t){return o(r(e,t,i),e+"")}},29962:function(e,t,n){var i=n(83842),r=n(24695),o=n(55308),a=r?function(e,t){return r(e,"toString",{configurable:!0,enumerable:!1,value:i(t),writable:!0})}:o;e.exports=a},65144:function(e){e.exports=function(e,t,n){var i=-1,r=e.length;t<0&&(t=-t>r?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(r);++i<r;)o[i]=e[i+t];return o}},68317:function(e){e.exports=function(e,t){for(var n,i=-1,r=e.length;++i<r;){var o=t(e[i]);void 0!==o&&(n=void 0===n?o:n+o)}return n}},55412:function(e){e.exports=function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}},40252:function(e,t,n){var i=n(125),r=n(19954),o=n(60508),a=n(17189),s=1/0,u=i?i.prototype:void 0,l=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return r(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},6893:function(e,t,n){var i=n(61855),r=/^\s+/;e.exports=function(e){return e?e.slice(0,i(e)+1).replace(r,""):e}},29937:function(e){e.exports=function(e){return function(t){return e(t)}}},60966:function(e,t,n){var i=n(46746),r=n(25262),o=n(20093),a=n(61832),s=n(553),u=n(54258),l=200;e.exports=function(e,t,n){var c=-1,d=r,h=e.length,f=!0,p=[],g=p;if(n)f=!1,d=o;else if(h>=l){var v=t?null:s(e);if(v)return u(v);f=!1,d=a,g=new i}else g=t?[]:p;e:for(;++c<h;){var m=e[c],_=t?t(m):m;if(m=n||0!==m?m:0,f&&_===_){for(var y=g.length;y--;)if(g[y]===_)continue e;t&&g.push(_),p.push(m)}else d(g,_,n)||(g!==p&&g.push(_),p.push(m))}return p}},61832:function(e){e.exports=function(e,t){return e.has(t)}},38697:function(e,t,n){var i=n(60508),r=n(22498),o=n(53200),a=n(5881);e.exports=function(e,t){return i(e)?e:r(e,t)?[e]:o(a(e))}},69919:function(e,t,n){var i=n(65144);e.exports=function(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:i(e,t,n)}},88517:function(e,t,n){var i=n(3650)["__core-js_shared__"];e.exports=i},8616:function(e,t,n){var i=n(69919),r=n(47285),o=n(81930),a=n(5881);e.exports=function(e){return function(t){t=a(t);var n=r(t)?o(t):void 0,s=n?n[0]:t.charAt(0),u=n?i(n,1).join(""):t.slice(1);return s[e]()+u}}},10787:function(e,t,n){var i=n(86013),r=n(53323),o=n(11347);e.exports=function(e){return function(t,n,a){return a&&"number"!=typeof a&&r(t,n,a)&&(n=a=void 0),t=o(t),void 0===n?(n=t,t=0):n=o(n),a=void 0===a?t<n?1:-1:o(a),i(t,n,a,e)}}},553:function(e,t,n){var i=n(95808),r=n(34519),o=n(54258),a=i&&1/o(new i([,-0]))[1]==1/0?function(e){return new i(e)}:r;e.exports=a},24695:function(e,t,n){var i=n(46076),r=function(){try{var e=i(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=r},3704:function(e,t,n){var i=n(46746),r=n(18503),o=n(61832),a=1,s=2;e.exports=function(e,t,n,u,l,c){var d=n&a,h=e.length,f=t.length;if(h!=f&&!(d&&f>h))return!1;var p=c.get(e),g=c.get(t);if(p&&g)return p==t&&g==e;var v=-1,m=!0,_=n&s?new i:void 0;for(c.set(e,t),c.set(t,e);++v<h;){var y=e[v],b=t[v];if(u)var w=d?u(b,y,v,t,e,c):u(y,b,v,e,t,c);if(void 0!==w){if(w)continue;m=!1;break}if(_){if(!r(t,(function(e,t){if(!o(_,t)&&(y===e||l(y,e,n,u,c)))return _.push(t)}))){m=!1;break}}else if(y!==b&&!l(y,b,n,u,c)){m=!1;break}}return c.delete(e),c.delete(t),m}},57318:function(e,t,n){var i=n(125),r=n(67753),o=n(20965),a=n(3704),s=n(77140),u=n(54258),l=1,c=2,d="[object Boolean]",h="[object Date]",f="[object Error]",p="[object Map]",g="[object Number]",v="[object RegExp]",m="[object Set]",_="[object String]",y="[object Symbol]",b="[object ArrayBuffer]",w="[object DataView]",C=i?i.prototype:void 0,k=C?C.valueOf:void 0;e.exports=function(e,t,n,i,C,S,x){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case b:return!(e.byteLength!=t.byteLength||!S(new r(e),new r(t)));case d:case h:case g:return o(+e,+t);case f:return e.name==t.name&&e.message==t.message;case v:case _:return e==t+"";case p:var L=s;case m:var E=i&l;if(L||(L=u),e.size!=t.size&&!E)return!1;var N=x.get(e);if(N)return N==t;i|=c,x.set(e,t);var D=a(L(e),L(t),i,C,S,x);return x.delete(e),D;case y:if(k)return k.call(e)==k.call(t)}return!1}},31223:function(e,t,n){var i=n(25534),r=1,o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,s,u){var l=n&r,c=i(e),d=c.length;if(d!=i(t).length&&!l)return!1;for(var h=d;h--;){var f=c[h];if(!(l?f in t:o.call(t,f)))return!1}var p=u.get(e),g=u.get(t);if(p&&g)return p==t&&g==e;var v=!0;u.set(e,t),u.set(t,e);for(var m=l;++h<d;){var _=e[f=c[h]],y=t[f];if(a)var b=l?a(y,_,f,t,e,u):a(_,y,f,e,t,u);if(!(void 0===b?_===y||s(_,y,n,a,u):b)){v=!1;break}m||(m="constructor"==f)}if(v&&!m){var w=e.constructor,C=t.constructor;w==C||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof C&&C instanceof C||(v=!1)}return u.delete(e),u.delete(t),v}},9198:function(e,t,n){var i="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=i},25534:function(e,t,n){var i=n(12200),r=n(30958),o=n(21198);e.exports=function(e){return i(e,o,r)}},5669:function(e,t,n){var i=n(38688);e.exports=function(e,t){var n=e.__data__;return i(t)?n["string"==typeof t?"string":"hash"]:n.map}},94891:function(e,t,n){var i=n(79787),r=n(21198);e.exports=function(e){for(var t=r(e),n=t.length;n--;){var o=t[n],a=e[o];t[n]=[o,a,i(a)]}return t}},46076:function(e,t,n){var i=n(3092),r=n(51677);e.exports=function(e,t){var n=r(e,t);return i(n)?n:void 0}},46937:function(e,t,n){var i=n(125),r=Object.prototype,o=r.hasOwnProperty,a=r.toString,s=i?i.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var i=!0}catch(u){}var r=a.call(e);return i&&(t?e[s]=n:delete e[s]),r}},30958:function(e,t,n){var i=n(47757),r=n(99500),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),i(a(e),(function(t){return o.call(e,t)})))}:r;e.exports=s},81591:function(e,t,n){var i=n(7572),r=n(23301),o=n(64407),a=n(95808),s=n(4665),u=n(20161),l=n(94552),c="[object Map]",d="[object Promise]",h="[object Set]",f="[object WeakMap]",p="[object DataView]",g=l(i),v=l(r),m=l(o),_=l(a),y=l(s),b=u;(i&&b(new i(new ArrayBuffer(1)))!=p||r&&b(new r)!=c||o&&b(o.resolve())!=d||a&&b(new a)!=h||s&&b(new s)!=f)&&(b=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,i=n?l(n):"";if(i)switch(i){case g:return p;case v:return c;case m:return d;case _:return h;case y:return f}return t}),e.exports=b},51677:function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},76341:function(e,t,n){var i=n(38697),r=n(10878),o=n(60508),a=n(10026),s=n(60997),u=n(64089);e.exports=function(e,t,n){for(var l=-1,c=(t=i(t,e)).length,d=!1;++l<c;){var h=u(t[l]);if(!(d=null!=e&&n(e,h)))break;e=e[h]}return d||++l!=c?d:!!(c=null==e?0:e.length)&&s(c)&&a(h,c)&&(o(e)||r(e))}},47285:function(e){var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},22426:function(e,t,n){var i=n(50662);e.exports=function(){this.__data__=i?i(null):{},this.size=0}},5096:function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},14190:function(e,t,n){var i=n(50662),r="__lodash_hash_undefined__",o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(i){var n=t[e];return n===r?void 0:n}return o.call(t,e)?t[e]:void 0}},5911:function(e,t,n){var i=n(50662),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return i?void 0!==t[e]:r.call(t,e)}},25570:function(e,t,n){var i=n(50662),r="__lodash_hash_undefined__";e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=i&&void 0===t?r:t,this}},86109:function(e,t,n){var i=n(125),r=n(10878),o=n(60508),a=i?i.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||r(e)||!!(a&&e&&e[a])}},10026:function(e){var t=9007199254740991,n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,i){var r=typeof e;return!!(i=null==i?t:i)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e<i}},53323:function(e,t,n){var i=n(20965),r=n(75359),o=n(10026),a=n(82222);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?r(n)&&o(t,n.length):"string"==s&&t in n)&&i(n[t],e)}},22498:function(e,t,n){var i=n(60508),r=n(17189),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(i(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}},38688:function(e){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},19705:function(e,t,n){var i=n(88517),r=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!r&&r in e}},9986:function(e){var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},79787:function(e,t,n){var i=n(82222);e.exports=function(e){return e===e&&!i(e)}},19792:function(e){e.exports=function(){this.__data__=[],this.size=0}},38240:function(e,t,n){var i=n(77569),r=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=i(t,e);return!(n<0)&&(n==t.length-1?t.pop():r.call(t,n,1),--this.size,!0)}},96033:function(e,t,n){var i=n(77569);e.exports=function(e){var t=this.__data__,n=i(t,e);return n<0?void 0:t[n][1]}},87333:function(e,t,n){var i=n(77569);e.exports=function(e){return i(this.__data__,e)>-1}},45460:function(e,t,n){var i=n(77569);e.exports=function(e,t){var n=this.__data__,r=i(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}},32388:function(e,t,n){var i=n(41895),r=n(72953),o=n(23301);e.exports=function(){this.size=0,this.__data__={hash:new i,map:new(o||r),string:new i}}},2871:function(e,t,n){var i=n(5669);e.exports=function(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}},38006:function(e,t,n){var i=n(5669);e.exports=function(e){return i(this,e).get(e)}},98281:function(e,t,n){var i=n(5669);e.exports=function(e){return i(this,e).has(e)}},31831:function(e,t,n){var i=n(5669);e.exports=function(e,t){var n=i(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}},77140:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}},47e3:function(e){e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},71244:function(e,t,n){var i=n(51761),r=500;e.exports=function(e){var t=i(e,(function(e){return n.size===r&&n.clear(),e})),n=t.cache;return t}},50662:function(e,t,n){var i=n(46076)(Object,"create");e.exports=i},87682:function(e,t,n){var i=n(97269)(Object.keys,Object);e.exports=i},56408:function(e,t,n){e=n.nmd(e);var i=n(9198),r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r&&i.process,s=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=s},4868:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},97269:function(e){e.exports=function(e,t){return function(n){return e(t(n))}}},46770:function(e,t,n){var i=n(70225),r=Math.max;e.exports=function(e,t,n){return t=r(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=r(o.length-t,0),u=Array(s);++a<s;)u[a]=o[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=o[a];return l[t]=n(u),i(e,this,l)}}},3650:function(e,t,n){var i=n(9198),r="object"==typeof self&&self&&self.Object===Object&&self,o=i||r||Function("return this")();e.exports=o},68908:function(e){var t="__lodash_hash_undefined__";e.exports=function(e){return this.__data__.set(e,t),this}},73771:function(e){e.exports=function(e){return this.__data__.has(e)}},54258:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},94969:function(e,t,n){var i=n(29962),r=n(1904)(i);e.exports=r},1904:function(e){var t=800,n=16,i=Date.now;e.exports=function(e){var r=0,o=0;return function(){var a=i(),s=n-(a-o);if(o=a,s>0){if(++r>=t)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},98971:function(e,t,n){var i=n(72953);e.exports=function(){this.__data__=new i,this.size=0}},60386:function(e){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},20600:function(e){e.exports=function(e){return this.__data__.get(e)}},12752:function(e){e.exports=function(e){return this.__data__.has(e)}},75130:function(e,t,n){var i=n(72953),r=n(23301),o=n(69121),a=200;e.exports=function(e,t){var n=this.__data__;if(n instanceof i){var s=n.__data__;if(!r||s.length<a-1)return s.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(s)}return n.set(e,t),this.size=n.size,this}},39139:function(e){e.exports=function(e,t,n){for(var i=n-1,r=e.length;++i<r;)if(e[i]===t)return i;return-1}},81930:function(e,t,n){var i=n(58897),r=n(47285),o=n(89275);e.exports=function(e){return r(e)?o(e):i(e)}},53200:function(e,t,n){var i=n(71244),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=i((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(r,(function(e,n,i,r){t.push(i?r.replace(o,"$1"):n||e)})),t}));e.exports=a},64089:function(e,t,n){var i=n(17189),r=1/0;e.exports=function(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-r?"-0":t}},94552:function(e){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},61855:function(e){var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},89275:function(e){var t="\\ud800-\\udfff",n="["+t+"]",i="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",r="\\ud83c[\\udffb-\\udfff]",o="[^"+t+"]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",u="(?:"+i+"|"+r+")"+"?",l="[\\ufe0e\\ufe0f]?",c=l+u+("(?:\\u200d(?:"+[o,a,s].join("|")+")"+l+u+")*"),d="(?:"+[o+i+"?",i,a,s,n].join("|")+")",h=RegExp(r+"(?="+r+")|"+d+c,"g");e.exports=function(e){return e.match(h)||[]}},4688:function(e,t,n){var i=n(5881),r=n(1932);e.exports=function(e){return r(i(e).toLowerCase())}},83842:function(e){e.exports=function(e){return function(){return e}}},14762:function(e,t,n){var i=n(82222),r=n(61135),o=n(1584),a="Expected a function",s=Math.max,u=Math.min;e.exports=function(e,t,n){var l,c,d,h,f,p,g=0,v=!1,m=!1,_=!0;if("function"!=typeof e)throw new TypeError(a);function y(t){var n=l,i=c;return l=c=void 0,g=t,h=e.apply(i,n)}function b(e){var n=e-p;return void 0===p||n>=t||n<0||m&&e-g>=d}function w(){var e=r();if(b(e))return C(e);f=setTimeout(w,function(e){var n=t-(e-p);return m?u(n,d-(e-g)):n}(e))}function C(e){return f=void 0,_&&l?y(e):(l=c=void 0,h)}function k(){var e=r(),n=b(e);if(l=arguments,c=this,p=e,n){if(void 0===f)return function(e){return g=e,f=setTimeout(w,t),v?y(e):h}(p);if(m)return clearTimeout(f),f=setTimeout(w,t),y(p)}return void 0===f&&(f=setTimeout(w,t)),h}return t=o(t)||0,i(n)&&(v=!!n.leading,d=(m="maxWait"in n)?s(o(n.maxWait)||0,t):d,_="trailing"in n?!!n.trailing:_),k.cancel=function(){void 0!==f&&clearTimeout(f),g=0,l=p=c=f=void 0},k.flush=function(){return void 0===f?h:C(r())},k}},4076:function(e,t,n){var i=n(60602),r=n(87379),o=n(38825),a=n(30818),s=o((function(e,t){return a(e)?i(e,r(t,1,a,!0)):[]}));e.exports=s},20965:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},11141:function(e,t,n){var i=n(71369);e.exports=function(e,t,n){var r=null==e?void 0:i(e,t);return void 0===r?n:r}},71197:function(e,t,n){var i=n(25257),r=n(76341);e.exports=function(e,t){return null!=e&&r(e,t,i)}},8976:function(e,t,n){var i=n(27534),r=n(76341);e.exports=function(e,t){return null!=e&&r(e,t,i)}},55308:function(e){e.exports=function(e){return e}},10878:function(e,t,n){var i=n(94051),r=n(84341),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,u=i(function(){return arguments}())?i:function(e){return r(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},60508:function(e){var t=Array.isArray;e.exports=t},75359:function(e,t,n){var i=n(57119),r=n(60997);e.exports=function(e){return null!=e&&r(e.length)&&!i(e)}},30818:function(e,t,n){var i=n(75359),r=n(84341);e.exports=function(e){return r(e)&&i(e)}},47874:function(e,t,n){e=n.nmd(e);var i=n(3650),r=n(79151),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,s=a&&a.exports===o?i.Buffer:void 0,u=(s?s.isBuffer:void 0)||r;e.exports=u},57119:function(e,t,n){var i=n(20161),r=n(82222),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!r(e))return!1;var t=i(e);return t==a||t==s||t==o||t==u}},60997:function(e){var t=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=t}},24433:function(e,t,n){var i=n(20161),r=n(84341),o="[object Number]";e.exports=function(e){return"number"==typeof e||r(e)&&i(e)==o}},82222:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},84341:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},45999:function(e,t,n){var i=n(20161),r=n(60508),o=n(84341),a="[object String]";e.exports=function(e){return"string"==typeof e||!r(e)&&o(e)&&i(e)==a}},17189:function(e,t,n){var i=n(20161),r=n(84341),o="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||r(e)&&i(e)==o}},52841:function(e,t,n){var i=n(72533),r=n(29937),o=n(56408),a=o&&o.isTypedArray,s=a?r(a):i;e.exports=s},21198:function(e,t,n){var i=n(97233),r=n(72467),o=n(75359);e.exports=function(e){return o(e)?i(e):r(e)}},22560:function(e){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},51761:function(e,t,n){var i=n(69121),r="Expected a function";function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(r);var n=function n(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(o.Cache||i),n}o.Cache=i,e.exports=o},34519:function(e){e.exports=function(){}},61135:function(e,t,n){var i=n(3650);e.exports=function(){return i.Date.now()}},23364:function(e,t,n){var i=n(96067),r=n(87402),o=n(22498),a=n(64089);e.exports=function(e){return o(e)?i(a(e)):r(e)}},61883:function(e,t,n){var i=n(10787)();e.exports=i},99500:function(e){e.exports=function(){return[]}},79151:function(e){e.exports=function(){return!1}},780:function(e,t,n){var i=n(37823),r=n(68317);e.exports=function(e,t){return e&&e.length?r(e,i(t,2)):0}},17571:function(e,t,n){var i=n(14762),r=n(82222),o="Expected a function";e.exports=function(e,t,n){var a=!0,s=!0;if("function"!=typeof e)throw new TypeError(o);return r(n)&&(a="leading"in n?!!n.leading:a,s="trailing"in n?!!n.trailing:s),i(e,t,{leading:a,maxWait:t,trailing:s})}},11347:function(e,t,n){var i=n(1584),r=1/0,o=17976931348623157e292;e.exports=function(e){return e?(e=i(e))===r||e===-r?(e<0?-1:1)*o:e===e?e:0:0===e?e:0}},1584:function(e,t,n){var i=n(6893),r=n(82222),o=n(17189),a=NaN,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return a;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=i(e);var n=u.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):s.test(e)?a:+e}},5881:function(e,t,n){var i=n(40252);e.exports=function(e){return null==e?"":i(e)}},45441:function(e,t,n){var i=n(87379),r=n(38825),o=n(60966),a=n(30818),s=r((function(e){return o(i(e,1,a,!0))}));e.exports=s},20762:function(e,t,n){var i=n(37823),r=n(60966);e.exports=function(e,t){return e&&e.length?r(e,i(t,2)):[]}},1932:function(e,t,n){var i=n(8616)("toUpperCase");e.exports=i},44046:function(e,t,n){var i=n(60602),r=n(38825),o=n(30818),a=r((function(e,t){return o(e)?i(e,t):[]}));e.exports=a},21468:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var i=n(87462),r=n(63366),o=n(94578);function a(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var s=n(4519),u=n(84453),l=!1,c=s.createContext(null),d=function(e){return e.scrollTop},h="unmounted",f="exited",p="entering",g="entered",v="exiting",m=function(e){function t(t,n){var i;i=e.call(this,t,n)||this;var r,o=n&&!n.isMounting?t.enter:t.appear;return i.appearStatus=null,t.in?o?(r=f,i.appearStatus=p):r=g:r=t.unmountOnExit||t.mountOnEnter?h:f,i.state={status:r},i.nextCallback=null,i}(0,o.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===h?{status:f}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==p&&n!==g&&(t=p):n!==p&&n!==g||(t=v)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,i=this.props.timeout;return e=t=n=i,null!=i&&"number"!==typeof i&&(e=i.exit,t=i.enter,n=void 0!==i.appear?i.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===p){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:u.findDOMNode(this);n&&d(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===f&&this.setState({status:h})},n.performEnter=function(e){var t=this,n=this.props.enter,i=this.context?this.context.isMounting:e,r=this.props.nodeRef?[i]:[u.findDOMNode(this),i],o=r[0],a=r[1],s=this.getTimeouts(),c=i?s.appear:s.enter;!e&&!n||l?this.safeSetState({status:g},(function(){t.props.onEntered(o)})):(this.props.onEnter(o,a),this.safeSetState({status:p},(function(){t.props.onEntering(o,a),t.onTransitionEnd(c,(function(){t.safeSetState({status:g},(function(){t.props.onEntered(o,a)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),i=this.props.nodeRef?void 0:u.findDOMNode(this);t&&!l?(this.props.onExit(i),this.safeSetState({status:v},(function(){e.props.onExiting(i),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:f},(function(){e.props.onExited(i)}))}))}))):this.safeSetState({status:f},(function(){e.props.onExited(i)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(i){n&&(n=!1,t.nextCallback=null,e(i))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:u.findDOMNode(this),i=null==e&&!this.props.addEndListener;if(n&&!i){if(this.props.addEndListener){var r=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],o=r[0],a=r[1];this.props.addEndListener(o,a)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===h)return null;var t=this.props,n=t.children,i=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,(0,r.Z)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return s.createElement(c.Provider,{value:null},"function"===typeof n?n(e,i):s.cloneElement(s.Children.only(n),i))},t}(s.Component);function _(){}m.contextType=c,m.propTypes={},m.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:_,onEntering:_,onEntered:_,onExit:_,onExiting:_,onExited:_},m.UNMOUNTED=h,m.EXITED=f,m.ENTERING=p,m.ENTERED=g,m.EXITING=v;var y=m,b=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return i=t,void((n=e).classList?n.classList.remove(i):"string"===typeof n.className?n.className=a(n.className,i):n.setAttribute("class",a(n.className&&n.className.baseVal||"",i)));var n,i}))},w=function(e){function t(){for(var t,n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return(t=e.call.apply(e,[this].concat(i))||this).appliedClasses={appear:{},enter:{},exit:{}},t.onEnter=function(e,n){var i=t.resolveArguments(e,n),r=i[0],o=i[1];t.removeClasses(r,"exit"),t.addClass(r,o?"appear":"enter","base"),t.props.onEnter&&t.props.onEnter(e,n)},t.onEntering=function(e,n){var i=t.resolveArguments(e,n),r=i[0],o=i[1]?"appear":"enter";t.addClass(r,o,"active"),t.props.onEntering&&t.props.onEntering(e,n)},t.onEntered=function(e,n){var i=t.resolveArguments(e,n),r=i[0],o=i[1]?"appear":"enter";t.removeClasses(r,o),t.addClass(r,o,"done"),t.props.onEntered&&t.props.onEntered(e,n)},t.onExit=function(e){var n=t.resolveArguments(e)[0];t.removeClasses(n,"appear"),t.removeClasses(n,"enter"),t.addClass(n,"exit","base"),t.props.onExit&&t.props.onExit(e)},t.onExiting=function(e){var n=t.resolveArguments(e)[0];t.addClass(n,"exit","active"),t.props.onExiting&&t.props.onExiting(e)},t.onExited=function(e){var n=t.resolveArguments(e)[0];t.removeClasses(n,"exit"),t.addClass(n,"exit","done"),t.props.onExited&&t.props.onExited(e)},t.resolveArguments=function(e,n){return t.props.nodeRef?[t.props.nodeRef.current,e]:[e,n]},t.getClassNames=function(e){var n=t.props.classNames,i="string"===typeof n,r=i?""+(i&&n?n+"-":"")+e:n[e];return{baseClassName:r,activeClassName:i?r+"-active":n[e+"Active"],doneClassName:i?r+"-done":n[e+"Done"]}},t}(0,o.Z)(t,e);var n=t.prototype;return n.addClass=function(e,t,n){var i=this.getClassNames(t)[n+"ClassName"],r=this.getClassNames("enter").doneClassName;"appear"===t&&"done"===n&&r&&(i+=" "+r),"active"===n&&e&&d(e),i&&(this.appliedClasses[t][n]=i,function(e,t){e&&t&&t.split(" ").forEach((function(t){return i=t,void((n=e).classList?n.classList.add(i):function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}(n,i)||("string"===typeof n.className?n.className=n.className+" "+i:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+i)));var n,i}))}(e,i))},n.removeClasses=function(e,t){var n=this.appliedClasses[t],i=n.base,r=n.active,o=n.done;this.appliedClasses[t]={},i&&b(e,i),r&&b(e,r),o&&b(e,o)},n.render=function(){var e=this.props,t=(e.classNames,(0,r.Z)(e,["classNames"]));return s.createElement(y,(0,i.Z)({},t,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},t}(s.Component);w.defaultProps={classNames:""},w.propTypes={};var C=w},15791:function(e,t,n){"use strict";n.d(t,{_T:function(){return i}});function i(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}Object.create;Object.create},56787:function(e,t,n){e.exports=n(74034)},63866:function(e,t,n){"use strict";var i=n(32865),r=n(87520),o=n(95136),a=n(97387),s=n(11279),u=n(90660),l=n(97993);e.exports=function(e){return new Promise((function(t,c){var d=e.data,h=e.headers;i.isFormData(d)&&delete h["Content-Type"];var f=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",g=e.auth.password||"";h.Authorization="Basic "+btoa(p+":"+g)}var v=a(e.baseURL,e.url);if(f.open(e.method.toUpperCase(),o(v,e.params,e.paramsSerializer),!0),f.timeout=e.timeout,f.onreadystatechange=function(){if(f&&4===f.readyState&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in f?s(f.getAllResponseHeaders()):null,i={data:e.responseType&&"text"!==e.responseType?f.response:f.responseText,status:f.status,statusText:f.statusText,headers:n,config:e,request:f};r(t,c,i),f=null}},f.onabort=function(){f&&(c(l("Request aborted",e,"ECONNABORTED",f)),f=null)},f.onerror=function(){c(l("Network Error",e,null,f)),f=null},f.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),c(l(t,e,"ECONNABORTED",f)),f=null},i.isStandardBrowserEnv()){var m=n(4915),_=(e.withCredentials||u(v))&&e.xsrfCookieName?m.read(e.xsrfCookieName):void 0;_&&(h[e.xsrfHeaderName]=_)}if("setRequestHeader"in f&&i.forEach(h,(function(e,t){"undefined"===typeof d&&"content-type"===t.toLowerCase()?delete h[t]:f.setRequestHeader(t,e)})),i.isUndefined(e.withCredentials)||(f.withCredentials=!!e.withCredentials),e.responseType)try{f.responseType=e.responseType}catch(y){if("json"!==e.responseType)throw y}"function"===typeof e.onDownloadProgress&&f.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){f&&(f.abort(),c(e),f=null)})),void 0===d&&(d=null),f.send(d)}))}},74034:function(e,t,n){"use strict";var i=n(32865),r=n(23198),o=n(19988),a=n(72889);function s(e){var t=new o(e),n=r(o.prototype.request,t);return i.extend(n,o.prototype,t),i.extend(n,t),n}var u=s(n(1488));u.Axios=o,u.create=function(e){return s(a(u.defaults,e))},u.Cancel=n(44011),u.CancelToken=n(2518),u.isCancel=n(66788),u.all=function(e){return Promise.all(e)},u.spread=n(27974),e.exports=u,e.exports.default=u},44011:function(e){"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},2518:function(e,t,n){"use strict";var i=n(44011);function r(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new i(e),t(n.reason))}))}r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e;return{token:new r((function(t){e=t})),cancel:e}},e.exports=r},66788:function(e){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},19988:function(e,t,n){"use strict";var i=n(32865),r=n(95136),o=n(66515),a=n(80812),s=n(72889);function u(e){this.defaults=e,this.interceptors={request:new o,response:new o}}u.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)n=n.then(t.shift(),t.shift());return n},u.prototype.getUri=function(e){return e=s(this.defaults,e),r(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},i.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))}})),i.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))}})),e.exports=u},66515:function(e,t,n){"use strict";var i=n(32865);function r(){this.handlers=[]}r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){i.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=r},97387:function(e,t,n){"use strict";var i=n(88817),r=n(79154);e.exports=function(e,t){return e&&!i(t)?r(e,t):t}},97993:function(e,t,n){"use strict";var i=n(13401);e.exports=function(e,t,n,r,o){var a=new Error(e);return i(a,t,n,r,o)}},80812:function(e,t,n){"use strict";var i=n(32865),r=n(55470),o=n(66788),a=n(1488);function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return s(e),e.headers=e.headers||{},e.data=r(e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),i.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return s(e),t.data=r(t.data,t.headers,e.transformResponse),t}),(function(t){return o(t)||(s(e),t&&t.response&&(t.response.data=r(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},13401:function(e){"use strict";e.exports=function(e,t,n,i,r){return e.config=t,n&&(e.code=n),e.request=i,e.response=r,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},72889:function(e,t,n){"use strict";var i=n(32865);e.exports=function(e,t){t=t||{};var n={},r=["url","method","params","data"],o=["headers","auth","proxy"],a=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];i.forEach(r,(function(e){"undefined"!==typeof t[e]&&(n[e]=t[e])})),i.forEach(o,(function(r){i.isObject(t[r])?n[r]=i.deepMerge(e[r],t[r]):"undefined"!==typeof t[r]?n[r]=t[r]:i.isObject(e[r])?n[r]=i.deepMerge(e[r]):"undefined"!==typeof e[r]&&(n[r]=e[r])})),i.forEach(a,(function(i){"undefined"!==typeof t[i]?n[i]=t[i]:"undefined"!==typeof e[i]&&(n[i]=e[i])}));var s=r.concat(o).concat(a),u=Object.keys(t).filter((function(e){return-1===s.indexOf(e)}));return i.forEach(u,(function(i){"undefined"!==typeof t[i]?n[i]=t[i]:"undefined"!==typeof e[i]&&(n[i]=e[i])})),n}},87520:function(e,t,n){"use strict";var i=n(97993);e.exports=function(e,t,n){var r=n.config.validateStatus;!r||r(n.status)?e(n):t(i("Request failed with status code "+n.status,n.config,null,n.request,n))}},55470:function(e,t,n){"use strict";var i=n(32865);e.exports=function(e,t,n){return i.forEach(n,(function(n){e=n(e,t)})),e}},1488:function(e,t,n){"use strict";var i=n(32865),r=n(16118),o={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!i.isUndefined(e)&&i.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s={adapter:function(){var e;return("undefined"!==typeof XMLHttpRequest||"undefined"!==typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(e=n(63866)),e}(),transformRequest:[function(e,t){return r(t,"Accept"),r(t,"Content-Type"),i.isFormData(e)||i.isArrayBuffer(e)||i.isBuffer(e)||i.isStream(e)||i.isFile(e)||i.isBlob(e)?e:i.isArrayBufferView(e)?e.buffer:i.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):i.isObject(e)?(a(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};i.forEach(["delete","get","head"],(function(e){s.headers[e]={}})),i.forEach(["post","put","patch"],(function(e){s.headers[e]=i.merge(o)})),e.exports=s},23198:function(e){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];return e.apply(t,n)}}},95136:function(e,t,n){"use strict";var i=n(32865);function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var o;if(n)o=n(t);else if(i.isURLSearchParams(t))o=t.toString();else{var a=[];i.forEach(t,(function(e,t){null!==e&&"undefined"!==typeof e&&(i.isArray(e)?t+="[]":e=[e],i.forEach(e,(function(e){i.isDate(e)?e=e.toISOString():i.isObject(e)&&(e=JSON.stringify(e)),a.push(r(t)+"="+r(e))})))})),o=a.join("&")}if(o){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},79154:function(e){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4915:function(e,t,n){"use strict";var i=n(32865);e.exports=i.isStandardBrowserEnv()?{write:function(e,t,n,r,o,a){var s=[];s.push(e+"="+encodeURIComponent(t)),i.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),i.isString(r)&&s.push("path="+r),i.isString(o)&&s.push("domain="+o),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},88817:function(e){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},90660:function(e,t,n){"use strict";var i=n(32865);e.exports=i.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function r(e){var i=e;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=r(window.location.href),function(t){var n=i.isString(t)?r(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},16118:function(e,t,n){"use strict";var i=n(32865);e.exports=function(e,t){i.forEach(e,(function(n,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[i])}))}},11279:function(e,t,n){"use strict";var i=n(32865),r=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,o,a={};return e?(i.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=i.trim(e.substr(0,o)).toLowerCase(),n=i.trim(e.substr(o+1)),t){if(a[t]&&r.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},27974:function(e){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},32865:function(e,t,n){"use strict";var i=n(23198),r=Object.prototype.toString;function o(e){return"[object Array]"===r.call(e)}function a(e){return"undefined"===typeof e}function s(e){return null!==e&&"object"===typeof e}function u(e){return"[object Function]"===r.call(e)}function l(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),o(e))for(var n=0,i=e.length;n<i;n++)t.call(null,e[n],n,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.call(null,e[r],r,e)}e.exports={isArray:o,isArrayBuffer:function(e){return"[object ArrayBuffer]"===r.call(e)},isBuffer:function(e){return null!==e&&!a(e)&&null!==e.constructor&&!a(e.constructor)&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!==typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"===typeof e},isNumber:function(e){return"number"===typeof e},isObject:s,isUndefined:a,isDate:function(e){return"[object Date]"===r.call(e)},isFile:function(e){return"[object File]"===r.call(e)},isBlob:function(e){return"[object Blob]"===r.call(e)},isFunction:u,isStream:function(e){return s(e)&&u(e.pipe)},isURLSearchParams:function(e){return"undefined"!==typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"===typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!==typeof window&&"undefined"!==typeof document)},forEach:l,merge:function e(){var t={};function n(n,i){"object"===typeof t[i]&&"object"===typeof n?t[i]=e(t[i],n):t[i]=n}for(var i=0,r=arguments.length;i<r;i++)l(arguments[i],n);return t},deepMerge:function e(){var t={};function n(n,i){"object"===typeof t[i]&&"object"===typeof n?t[i]=e(t[i],n):t[i]="object"===typeof n?e({},n):n}for(var i=0,r=arguments.length;i<r;i++)l(arguments[i],n);return t},extend:function(e,t,n){return l(t,(function(t,r){e[r]=n&&"function"===typeof t?i(t,n):t})),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},78243:function(e,t,n){"use strict";var i=n(44763),r=i.setup();function o(e){var t=r(e);function n(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var i,r=e.shift(),o=e[0],a=e[1];return"string"===typeof r&&"string"!==typeof o||(a=o,o=null),i=t(r,o),a&&(i=i.mix(a)),i.toString()}return n.builder=function(){return t},n}o.setup=function(e){r=i.setup(e)},o.reset=function(){r=i.setup()},t.Z=o},44763:function(e){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(1);t.ERROR_BLOCK_NAME_TYPE="Block name should be a string",t.ERROR_BLOCK_NAME_EMPTY="Block name should be non-empty";var r={ns:"",el:"__",mod:"_",modValue:"_"},o=function(e){return"string"==typeof e},a=function(e){return"string"!=typeof e},s=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=i.assign({},t);return o.mixes=o.mixes.concat(n),d(o,e)},u=function(e,t,n){for(var r=[],o=3;o<arguments.length;o++)r[o-3]=arguments[o];var a=i.assign({},t),s=i.assign({},a.states||{});return s[n]=i.assign.apply(void 0,[{},s[n]||{}].concat(r)),a.states=s,d(a,e)},l=function(e,t,n,i){return String.prototype.split.call(c(e,t),n,i)},c=function(e,t){var n=t.name,i=t.mods,r=t.mixes,o=t.states,a=[n];if(i&&(a=a.concat(Object.keys(i).filter((function(e){return i[e]})).map((function(t){var r=i[t];return!0===r?n+e.mod+t:n+e.mod+t+e.modValue+r})))),o&&Object.keys(o).forEach((function(e){var t=o[e];a=a.concat(Object.keys(t).filter((function(e){return t[e]})).map((function(t){return e+t})))})),e.ns&&(a=a.map((function(t){return e.ns+t}))),r&&(a=a.concat(function(e){return void 0===e&&(e=[]),e.map((function(e){return Array.isArray(e)?e.join(" "):"object"==typeof e&&null!==e||"function"==typeof e?e.toString():"string"==typeof e?e:""})).filter((function(e){return!!e}))}(r))),e.classMap){var s=e.classMap;a=a.map((function(e){return s[e]||e}))}return a.join(" ")},d=function(e,t){return{mix:s.bind(null,t,e),split:l.bind(null,t,e),is:u.bind(null,t,e,"is-"),has:u.bind(null,t,e,"has-"),state:u.bind(null,t,e,"is-"),toString:c.bind(null,t,e)}},h=function(e,t){var n={name:e,mods:{},mixes:[],states:{"is-":{},"has-":{}}},r=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!n.length)return c(e,t);var s=i.assign({},t),u=n.filter(o).reduce((function(t,n){return t+e.el+n}),"");u&&(s.name=s.name+u);var l=n.filter(a).reduce((function(e,t){return i.assign(e,t)}),{});return s.mods=i.assign({},s.mods,l),d(s,e)}.bind(null,t,n);return r.mix=s.bind(null,t,n),r.split=l.bind(null,t,n),r.is=u.bind(null,t,n,"is-"),r.has=u.bind(null,t,n,"has-"),r.state=u.bind(null,t,n,"is-"),r.toString=c.bind(null,t,n),r};t.setup=function(e){return void 0===e&&(e={}),function(n){if("string"!=typeof n)throw new Error(t.ERROR_BLOCK_NAME_TYPE);var o=n.trim();if(!o)throw new Error(t.ERROR_BLOCK_NAME_EMPTY);return h(o,i.assign({},r,e))}},t.block=t.setup(),t.default=t.block},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assign=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var i=0;i<t.length;i++){var r=t[i];for(var o in r)r.hasOwnProperty(o)&&(e[o]=r[o])}return e}}])},15017:function(e,t,n){"use strict";var i=n(11333),r=n(17448),o=r(i("String.prototype.indexOf"));e.exports=function(e,t){var n=i(e,!!t);return"function"===typeof n&&o(e,".prototype.")>-1?r(n):n}},17448:function(e,t,n){"use strict";var i=n(62018),r=n(11333),o=r("%Function.prototype.apply%"),a=r("%Function.prototype.call%"),s=r("%Reflect.apply%",!0)||i.call(a,o),u=r("%Object.getOwnPropertyDescriptor%",!0),l=r("%Object.defineProperty%",!0),c=r("%Math.max%");if(l)try{l({},"a",{value:1})}catch(h){l=null}e.exports=function(e){var t=s(i,a,arguments);u&&l&&(u(t,"length").configurable&&l(t,"length",{value:1+c(0,e.length-(arguments.length-1))}));return t};var d=function(){return s(i,o,arguments)};l?l(e.exports,"apply",{value:d}):e.exports.apply=d},80358:function(e,t,n){"use strict";var i=n(22710),r={"text/plain":"Text","text/html":"Url",default:"Text"},o="Copy to clipboard: #{key}, Enter";e.exports=function(e,t){var n,a,s,u,l,c,d=!1;t||(t={}),n=t.debug||!1;try{if(s=i(),u=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(i){if(i.stopPropagation(),t.format)if(i.preventDefault(),"undefined"===typeof i.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=r[t.format]||r.default;window.clipboardData.setData(o,e)}else i.clipboardData.clearData(),i.clipboardData.setData(t.format,e);t.onCopy&&(i.preventDefault(),t.onCopy(i.clipboardData))})),document.body.appendChild(c),u.selectNodeContents(c),l.addRange(u),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");d=!0}catch(h){n&&console.error("unable to copy using execCommand: ",h),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),d=!0}catch(h){n&&console.error("unable to copy using clipboardData: ",h),n&&console.error("falling back to prompt"),a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:o),window.prompt(a,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(u):l.removeAllRanges()),c&&document.body.removeChild(c),s()}return d}},5426:function(e,t,n){"use strict";var i=n(58105),r={};var o=function(e){};function a(e,t,n,i,r,a,s,u){if(o(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,i,r,a,s,u],d=0;(l=new Error(t.replace(/%s/g,(function(){return c[d++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}var s="mixins";e.exports=function(e,t,n){var o=[],u={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},l={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},c={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)h(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=i({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=i({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=p(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=i({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(!t)return;for(var n in t){var i=t[n];if(t.hasOwnProperty(n)){if(a(!(n in c),'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n),n in e)return a("DEFINE_MANY_MERGED"===(l.hasOwnProperty(n)?l[n]:null),"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),void(e[n]=p(e[n],i));e[n]=i}}}(e,t)},autobind:function(){}};function d(e,t){var n=u.hasOwnProperty(t)?u[t]:null;y.hasOwnProperty(t)&&a("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&a("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function h(e,n){if(n){a("function"!==typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),a(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var i=e.prototype,r=i.__reactAutoBindPairs;for(var o in n.hasOwnProperty(s)&&c.mixins(e,n.mixins),n)if(n.hasOwnProperty(o)&&o!==s){var l=n[o],h=i.hasOwnProperty(o);if(d(h,o),c.hasOwnProperty(o))c[o](e,l);else{var f=u.hasOwnProperty(o);if("function"===typeof l&&!f&&!h&&!1!==n.autobind)r.push(o,l),i[o]=l;else if(h){var v=u[o];a(f&&("DEFINE_MANY_MERGED"===v||"DEFINE_MANY"===v),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",v,o),"DEFINE_MANY_MERGED"===v?i[o]=p(i[o],l):"DEFINE_MANY"===v&&(i[o]=g(i[o],l))}else i[o]=l}}}else;}function f(e,t){for(var n in a(e&&t&&"object"===typeof e&&"object"===typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(a(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function p(e,t){return function(){var n=e.apply(this,arguments),i=t.apply(this,arguments);if(null==n)return i;if(null==i)return n;var r={};return f(r,n),f(r,i),r}}function g(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function v(e,t){return t.bind(e)}var m={componentDidMount:function(){this.__isMounted=!0}},_={componentWillUnmount:function(){this.__isMounted=!1}},y={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},b=function(){};return i(b.prototype,e.prototype,y),function(e){var t=function(e,i,o){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var i=t[n],r=t[n+1];e[i]=v(e,r)}}(this),this.props=e,this.context=i,this.refs=r,this.updater=o||n,this.state=null;var s=this.getInitialState?this.getInitialState():null;a("object"===typeof s&&!Array.isArray(s),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=s};for(var i in t.prototype=new b,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],o.forEach(h.bind(null,t)),h(t,m),h(t,e),h(t,_),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),a(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),u)t.prototype[i]||(t.prototype[i]=null);return t}}},94278:function(e,t,n){"use strict";var i=n(4519),r=n(5426);if("undefined"===typeof i)throw Error("create-react-class could not find the React object. If you are using script tags, make sure that React is being loaded before create-react-class.");var o=(new i.Component).updater;e.exports=r(i.Component,i.isValidElement,o)},77801:function(e){e.exports=Date.now||function(){return(new Date).getTime()}},99517:function(e){e.exports=function(){"use strict";var e=1e3,t=6e4,n=36e5,i="millisecond",r="second",o="minute",a="hour",s="day",u="week",l="month",c="quarter",d="year",h="date",f="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},m=function(e,t,n){var i=String(e);return!i||i.length>=t?e:""+Array(t+1-i.length).join(n)+e},_={s:m,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),i=Math.floor(n/60),r=n%60;return(t<=0?"+":"-")+m(i,2,"0")+":"+m(r,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var i=12*(n.year()-t.year())+(n.month()-t.month()),r=t.clone().add(i,l),o=n-r<0,a=t.clone().add(i+(o?-1:1),l);return+(-(i+(n-r)/(o?r-a:a-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:u,d:s,D:h,h:a,m:o,s:r,ms:i,Q:c}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},y="en",b={};b[y]=v;var w=function(e){return e instanceof x},C=function e(t,n,i){var r;if(!t)return y;if("string"==typeof t){var o=t.toLowerCase();b[o]&&(r=o),n&&(b[o]=n,r=o);var a=t.split("-");if(!r&&a.length>1)return e(a[0])}else{var s=t.name;b[s]=t,r=s}return!i&&r&&(y=r),r||!i&&y},k=function(e,t){if(w(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new x(n)},S=_;S.l=C,S.i=w,S.w=function(e,t){return k(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var x=function(){function v(e){this.$L=C(e.locale,null,!0),this.parse(e)}var m=v.prototype;return m.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(S.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var i=t.match(p);if(i){var r=i[2]-1||0,o=(i[7]||"0").substring(0,3);return n?new Date(Date.UTC(i[1],r,i[3]||1,i[4]||0,i[5]||0,i[6]||0,o)):new Date(i[1],r,i[3]||1,i[4]||0,i[5]||0,i[6]||0,o)}}return new Date(t)}(e),this.$x=e.x||{},this.init()},m.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},m.$utils=function(){return S},m.isValid=function(){return!(this.$d.toString()===f)},m.isSame=function(e,t){var n=k(e);return this.startOf(t)<=n&&n<=this.endOf(t)},m.isAfter=function(e,t){return k(e)<this.startOf(t)},m.isBefore=function(e,t){return this.endOf(t)<k(e)},m.$g=function(e,t,n){return S.u(e)?this[t]:this.set(n,e)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(e,t){var n=this,i=!!S.u(t)||t,c=S.p(e),f=function(e,t){var r=S.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return i?r:r.endOf(s)},p=function(e,t){return S.w(n.toDate()[e].apply(n.toDate("s"),(i?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},g=this.$W,v=this.$M,m=this.$D,_="set"+(this.$u?"UTC":"");switch(c){case d:return i?f(1,0):f(31,11);case l:return i?f(1,v):f(0,v+1);case u:var y=this.$locale().weekStart||0,b=(g<y?g+7:g)-y;return f(i?m-b:m+(6-b),v);case s:case h:return p(_+"Hours",0);case a:return p(_+"Minutes",1);case o:return p(_+"Seconds",2);case r:return p(_+"Milliseconds",3);default:return this.clone()}},m.endOf=function(e){return this.startOf(e,!1)},m.$set=function(e,t){var n,u=S.p(e),c="set"+(this.$u?"UTC":""),f=(n={},n[s]=c+"Date",n[h]=c+"Date",n[l]=c+"Month",n[d]=c+"FullYear",n[a]=c+"Hours",n[o]=c+"Minutes",n[r]=c+"Seconds",n[i]=c+"Milliseconds",n)[u],p=u===s?this.$D+(t-this.$W):t;if(u===l||u===d){var g=this.clone().set(h,1);g.$d[f](p),g.init(),this.$d=g.set(h,Math.min(this.$D,g.daysInMonth())).$d}else f&&this.$d[f](p);return this.init(),this},m.set=function(e,t){return this.clone().$set(e,t)},m.get=function(e){return this[S.p(e)]()},m.add=function(i,c){var h,f=this;i=Number(i);var p=S.p(c),g=function(e){var t=k(f);return S.w(t.date(t.date()+Math.round(e*i)),f)};if(p===l)return this.set(l,this.$M+i);if(p===d)return this.set(d,this.$y+i);if(p===s)return g(1);if(p===u)return g(7);var v=(h={},h[o]=t,h[a]=n,h[r]=e,h)[p]||1,m=this.$d.getTime()+i*v;return S.w(m,this)},m.subtract=function(e,t){return this.add(-1*e,t)},m.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var i=e||"YYYY-MM-DDTHH:mm:ssZ",r=S.z(this),o=this.$H,a=this.$m,s=this.$M,u=n.weekdays,l=n.months,c=function(e,n,r,o){return e&&(e[n]||e(t,i))||r[n].slice(0,o)},d=function(e){return S.s(o%12||12,e,"0")},h=n.meridiem||function(e,t,n){var i=e<12?"AM":"PM";return n?i.toLowerCase():i},p={YY:String(this.$y).slice(-2),YYYY:this.$y,M:s+1,MM:S.s(s+1,2,"0"),MMM:c(n.monthsShort,s,l,3),MMMM:c(l,s),D:this.$D,DD:S.s(this.$D,2,"0"),d:String(this.$W),dd:c(n.weekdaysMin,this.$W,u,2),ddd:c(n.weekdaysShort,this.$W,u,3),dddd:u[this.$W],H:String(o),HH:S.s(o,2,"0"),h:d(1),hh:d(2),a:h(o,a,!0),A:h(o,a,!1),m:String(a),mm:S.s(a,2,"0"),s:String(this.$s),ss:S.s(this.$s,2,"0"),SSS:S.s(this.$ms,3,"0"),Z:r};return i.replace(g,(function(e,t){return t||p[e]||r.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(i,h,f){var p,g=S.p(h),v=k(i),m=(v.utcOffset()-this.utcOffset())*t,_=this-v,y=S.m(this,v);return y=(p={},p[d]=y/12,p[l]=y,p[c]=y/3,p[u]=(_-m)/6048e5,p[s]=(_-m)/864e5,p[a]=_/n,p[o]=_/t,p[r]=_/e,p)[g]||_,f?y:S.a(y)},m.daysInMonth=function(){return this.endOf(l).$D},m.$locale=function(){return b[this.$L]},m.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),i=C(e,t,!0);return i&&(n.$L=i),n},m.clone=function(){return S.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},v}(),L=x.prototype;return k.prototype=L,[["$ms",i],["$s",r],["$m",o],["$H",a],["$W",s],["$M",l],["$y",d],["$D",h]].forEach((function(e){L[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),k.extend=function(e,t){return e.$i||(e(t,x,k),e.$i=!0),k},k.locale=C,k.isDayjs=w,k.unix=function(e){return k(1e3*e)},k.en=b[y],k.Ls=b,k.p={},k}()},20707:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"af",weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),weekStart:1,weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"}};return n.default.locale(i,null,!0),i}(n(99517))},28106:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"am",weekdays:"\u12a5\u1211\u12f5_\u1230\u129e_\u121b\u12ad\u1230\u129e_\u1228\u1261\u12d5_\u1210\u1219\u1235_\u12a0\u122d\u1265_\u1245\u12f3\u121c".split("_"),weekdaysShort:"\u12a5\u1211\u12f5_\u1230\u129e_\u121b\u12ad\u1230_\u1228\u1261\u12d5_\u1210\u1219\u1235_\u12a0\u122d\u1265_\u1245\u12f3\u121c".split("_"),weekdaysMin:"\u12a5\u1211_\u1230\u129e_\u121b\u12ad_\u1228\u1261_\u1210\u1219_\u12a0\u122d_\u1245\u12f3".split("_"),months:"\u1303\u1295\u12cb\u122a_\u134c\u1265\u122f\u122a_\u121b\u122d\u127d_\u12a4\u1355\u122a\u120d_\u121c\u12ed_\u1301\u1295_\u1301\u120b\u12ed_\u12a6\u1308\u1235\u1275_\u1234\u1355\u1274\u121d\u1260\u122d_\u12a6\u12ad\u1276\u1260\u122d_\u1296\u126c\u121d\u1260\u122d_\u12f2\u1234\u121d\u1260\u122d".split("_"),monthsShort:"\u1303\u1295\u12cb_\u134c\u1265\u122f_\u121b\u122d\u127d_\u12a4\u1355\u122a_\u121c\u12ed_\u1301\u1295_\u1301\u120b\u12ed_\u12a6\u1308\u1235_\u1234\u1355\u1274_\u12a6\u12ad\u1276_\u1296\u126c\u121d_\u12f2\u1234\u121d".split("_"),weekStart:1,yearStart:4,relativeTime:{future:"\u1260%s",past:"%s \u1260\u134a\u1275",s:"\u1325\u1242\u1275 \u1230\u12a8\u1295\u12f6\u127d",m:"\u12a0\u1295\u12f5 \u12f0\u1242\u1243",mm:"%d \u12f0\u1242\u1243\u12ce\u127d",h:"\u12a0\u1295\u12f5 \u1230\u12d3\u1275",hh:"%d \u1230\u12d3\u1273\u1275",d:"\u12a0\u1295\u12f5 \u1240\u1295",dd:"%d \u1240\u1293\u1275",M:"\u12a0\u1295\u12f5 \u12c8\u122d",MM:"%d \u12c8\u122b\u1275",y:"\u12a0\u1295\u12f5 \u12d3\u1218\u1275",yy:"%d \u12d3\u1218\u1273\u1275"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM D \u1363 YYYY",LLL:"MMMM D \u1363 YYYY HH:mm",LLLL:"dddd \u1363 MMMM D \u1363 YYYY HH:mm"},ordinal:function(e){return e+"\u129b"}};return n.default.locale(i,null,!0),i}(n(99517))},28440:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-dz",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},32087:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-iq",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0634\u0628\u0627\u0637_\u0622\u0630\u0627\u0631_\u0646\u064a\u0633\u0627\u0646_\u0623\u064a\u0627\u0631_\u062d\u0632\u064a\u0631\u0627\u0646_\u062a\u0645\u0648\u0632_\u0622\u0628_\u0623\u064a\u0644\u0648\u0644_\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644_ \u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644".split("_"),weekStart:1,weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0634\u0628\u0627\u0637_\u0622\u0630\u0627\u0631_\u0646\u064a\u0633\u0627\u0646_\u0623\u064a\u0627\u0631_\u062d\u0632\u064a\u0631\u0627\u0646_\u062a\u0645\u0648\u0632_\u0622\u0628_\u0623\u064a\u0644\u0648\u0644_\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644_ \u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},69545:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-kw",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},28263:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-ly",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekStart:6,weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},meridiem:function(e){return e>12?"\u0645":"\u0635"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},93205:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-ma",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekStart:6,weekdaysShort:"\u0627\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},10681:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-sa",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},58187:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-tn",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekStart:1,weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},32871:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),r={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},o={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},a={name:"ar",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),months:i,monthsShort:i,weekStart:6,relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",m:"\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",yy:"%d \u0623\u0639\u0648\u0627\u0645"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return o[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return r[e]})).replace(/,/g,"\u060c")},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"}};return n.default.locale(a,null,!0),a}(n(99517))},40885:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"az",weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"bir ne\xe7\u0259 saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},ordinal:function(e){return e}};return n.default.locale(i,null,!0),i}(n(99517))},56654:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"be",weekdays:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),months:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),weekStart:1,weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},77737:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bg",weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekStart:1,ordinal:function(e){var t=e%100;if(t>10&&t<20)return e+"-\u0442\u0438";var n=e%10;return 1===n?e+"-\u0432\u0438":2===n?e+"-\u0440\u0438":7===n||8===n?e+"-\u043c\u0438":e+"-\u0442\u0438"},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"}};return n.default.locale(i,null,!0),i}(n(99517))},69666:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bi",weekdays:"Sande_Mande_Tusde_Wenesde_Tosde_Fraede_Sarade".split("_"),months:"Januari_Februari_Maj_Eprel_Mei_Jun_Julae_Okis_Septemba_Oktoba_Novemba_Disemba".split("_"),weekStart:1,weekdaysShort:"San_Man_Tus_Wen_Tos_Frae_Sar".split("_"),monthsShort:"Jan_Feb_Maj_Epr_Mai_Jun_Jul_Oki_Sep_Okt_Nov_Dis".split("_"),weekdaysMin:"San_Ma_Tu_We_To_Fr_Sar".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"lo %s",past:"%s bifo",s:"sam seken",m:"wan minit",mm:"%d minit",h:"wan haoa",hh:"%d haoa",d:"wan dei",dd:"%d dei",M:"wan manis",MM:"%d manis",y:"wan yia",yy:"%d yia"}};return n.default.locale(i,null,!0),i}(n(99517))},27308:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bm",weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),weekStart:1,weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"}};return n.default.locale(i,null,!0),i}(n(99517))},13561:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},r={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"},o={name:"bn-bd",weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekStart:0,preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(e){return r[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return i[e]}))},ordinal:function(e){var t=["\u0987","\u09b2\u09be","\u09b0\u09be","\u09a0\u09be","\u09b6\u09c7"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"},formats:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY \u0996\u09cd\u09b0\u09bf\u09b8\u09cd\u099f\u09be\u09ac\u09cd\u09a6",LL:"D MMMM YYYY \u0996\u09cd\u09b0\u09bf\u09b8\u09cd\u099f\u09be\u09ac\u09cd\u09a6",LLL:"D MMMM YYYY \u0996\u09cd\u09b0\u09bf\u09b8\u09cd\u099f\u09be\u09ac\u09cd\u09a6, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY \u0996\u09cd\u09b0\u09bf\u09b8\u09cd\u099f\u09be\u09ac\u09cd\u09a6, A h:mm \u09b8\u09ae\u09df"},meridiem:function(e){return e<4?"\u09b0\u09be\u09a4":e<6?"\u09ad\u09cb\u09b0":e<12?"\u09b8\u0995\u09be\u09b2":e<15?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<18?"\u09ac\u09bf\u0995\u09be\u09b2":e<20?"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be":"\u09b0\u09be\u09a4"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"}};return n.default.locale(o,null,!0),o}(n(99517))},95051:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},r={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"},o={name:"bn",weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(e){return r[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return i[e]}))},ordinal:function(e){return e},formats:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"}};return n.default.locale(o,null,!0),o}(n(99517))},87409:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bo",weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f7c\u0f53\u0f0b\u0f63\u0f0b",s:"\u0f4f\u0f7c\u0f42\u0f0b\u0f59\u0f58\u0f0b",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",mm:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b %d",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",hh:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b %d",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",dd:"\u0f49\u0f72\u0f53\u0f0b %d",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",MM:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b %d",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",yy:"\u0f63\u0f7c\u0f0b %d"}};return n.default.locale(i,null,!0),i}(n(99517))},81149:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e){return e>9?i(e%10):e}function r(e,t,n){return e+" "+function(e,t){return 2===t?function(e){return{m:"v",b:"v",d:"z"}[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}var o={name:"br",weekdays:"Sul_Lun_Meurzh_Merc\u02bcher_Yaou_Gwener_Sadorn".split("_"),months:"Genver_C\u02bchwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),weekStart:1,weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),monthsShort:"Gen_C\u02bchwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},relativeTime:{future:"a-benn %s",past:"%s \u02bczo",s:"un nebeud segondenno\xf9",m:"ur vunutenn",mm:r,h:"un eur",hh:"%d eur",d:"un devezh",dd:r,M:"ur miz",MM:r,y:"ur bloaz",yy:function(e){switch(i(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},meridiem:function(e){return e<12?"a.m.":"g.m."}};return n.default.locale(o,null,!0),o}(n(99517))},52362:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bs",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),weekStart:1,weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},30242:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ca",weekdays:"Diumenge_Dilluns_Dimarts_Dimecres_Dijous_Divendres_Dissabte".split("_"),weekdaysShort:"Dg._Dl._Dt._Dc._Dj._Dv._Ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),months:"Gener_Febrer_Mar\xe7_Abril_Maig_Juny_Juliol_Agost_Setembre_Octubre_Novembre_Desembre".split("_"),monthsShort:"Gen._Febr._Mar\xe7_Abr._Maig_Juny_Jul._Ag._Set._Oct._Nov._Des.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",ll:"D MMM YYYY",lll:"D MMM YYYY, H:mm",llll:"ddd D MMM YYYY, H:mm"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:function(e){return e+(1===e||3===e?"r":2===e?"n":4===e?"t":"\xe8")}};return n.default.locale(i,null,!0),i}(n(99517))},61822:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e){return e>1&&e<5&&1!=~~(e/10)}function r(e,t,n,r){var o=e+" ";switch(n){case"s":return t||r?"p\xe1r sekund":"p\xe1r sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?o+(i(e)?"minuty":"minut"):o+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?o+(i(e)?"hodiny":"hodin"):o+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?o+(i(e)?"dny":"dn\xed"):o+"dny";case"M":return t||r?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return t||r?o+(i(e)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):o+"m\u011bs\xedci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?o+(i(e)?"roky":"let"):o+"lety"}}var o={name:"cs",weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),months:"leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),monthsShort:"led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_"),weekStart:1,yearStart:4,ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},52289:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"cv",weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),weekStart:1,weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},65452:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"cy",weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),weekStart:1,weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"}};return n.default.locale(i,null,!0),i}(n(99517))},27498:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"da",weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n._man._tirs._ons._tors._fre._l\xf8r.".split("_"),weekdaysMin:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj_juni_juli_aug._sept._okt._nov._dec.".split("_"),weekStart:1,ordinal:function(e){return e+"."},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"}};return n.default.locale(i,null,!0),i}(n(99517))},13578:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function r(e,t,n){var r=i[n];return Array.isArray(r)&&(r=r[t?0:1]),r.replace("%d",e)}var o={name:"de-at",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),ordinal:function(e){return e+"."},weekStart:1,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},18534:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function r(e,t,n){var r=i[n];return Array.isArray(r)&&(r=r[t?0:1]),r.replace("%d",e)}var o={name:"de-ch",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),ordinal:function(e){return e+"."},weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},83467:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function r(e,t,n){var r=i[n];return Array.isArray(r)&&(r=r[t?0:1]),r.replace("%d",e)}var o={name:"de",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},69174:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"dv",weekdays:"\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8_\u0780\u07aa\u0786\u07aa\u0783\u07aa_\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa".split("_"),months:"\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9_\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9_\u0789\u07a7\u0783\u07a8\u0797\u07aa_\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa_\u0789\u07ad_\u0796\u07ab\u0782\u07b0_\u0796\u07aa\u078d\u07a6\u0787\u07a8_\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa_\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa_\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa_\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa_\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa".split("_"),weekStart:7,weekdaysShort:"\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8_\u0780\u07aa\u0786\u07aa\u0783\u07aa_\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa".split("_"),monthsShort:"\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9_\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9_\u0789\u07a7\u0783\u07a8\u0797\u07aa_\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa_\u0789\u07ad_\u0796\u07ab\u0782\u07b0_\u0796\u07aa\u078d\u07a6\u0787\u07a8_\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa_\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa_\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa_\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa_\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa".split("_"),weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"}};return n.default.locale(i,null,!0),i}(n(99517))},90049:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"el",weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),months:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03b9_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0\u03c4_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),ordinal:function(e){return e},weekStart:1,relativeTime:{future:"\u03c3\u03b5 %s",past:"\u03c0\u03c1\u03b9\u03bd %s",s:"\u03bc\u03b5\u03c1\u03b9\u03ba\u03ac \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1 \u03bc\u03ae\u03bd\u03b1",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1 \u03c7\u03c1\u03cc\u03bd\u03bf",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"}};return n.default.locale(i,null,!0),i}(n(99517))},52875:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-au",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},42854:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-ca",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},73200:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-gb",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekStart:1,yearStart:4,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}};return n.default.locale(i,null,!0),i}(n(99517))},69027:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-ie",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},86886:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-il",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},52882:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-in",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekStart:1,yearStart:4,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}};return n.default.locale(i,null,!0),i}(n(99517))},85822:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-nz",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},47175:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-sg",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},45611:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-tt",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekStart:1,yearStart:4,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}};return n.default.locale(i,null,!0),i}(n(99517))},22898:function(e){e.exports=function(){"use strict";return{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}}}()},28486:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"eo",weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),weekStart:1,weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"}};return n.default.locale(i,null,!0),i}(n(99517))},48402:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es-do",weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekStart:1,relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"}};return n.default.locale(i,null,!0),i}(n(99517))},70610:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es-mx",weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},38309:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es-pr",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"}};return n.default.locale(i,null,!0),i}(n(99517))},9842:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es-us",weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"}};return n.default.locale(i,null,!0),i}(n(99517))},59110:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"}};return n.default.locale(i,null,!0),i}(n(99517))},65104:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e,t,n,i){var r={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],m:["\xfche minuti","\xfcks minut"],mm:["%d minuti","%d minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:["%d tunni","%d tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:["%d kuu","%d kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:["%d aasta","%d aastat"]};return t?(r[n][2]?r[n][2]:r[n][1]).replace("%d",e):(i?r[n][0]:r[n][1]).replace("%d",e)}var r={name:"et",weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:"%d p\xe4eva",M:i,MM:i,y:i,yy:i},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return n.default.locale(r,null,!0),r}(n(99517))},95386:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"eu",weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),weekStart:1,weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"}};return n.default.locale(i,null,!0),i}(n(99517))},26736:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fa",weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c_\u062f\u0648_\u0633\u0647\u200c_\u0686\u0647_\u067e\u0646_\u062c\u0645_\u0634\u0646".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekStart:6,months:"\u0641\u0631\u0648\u0631\u062f\u06cc\u0646_\u0627\u0631\u062f\u06cc\u0628\u0647\u0634\u062a_\u062e\u0631\u062f\u0627\u062f_\u062a\u06cc\u0631_\u0645\u0631\u062f\u0627\u062f_\u0634\u0647\u0631\u06cc\u0648\u0631_\u0645\u0647\u0631_\u0622\u0628\u0627\u0646_\u0622\u0630\u0631_\u062f\u06cc_\u0628\u0647\u0645\u0646_\u0627\u0633\u0641\u0646\u062f".split("_"),monthsShort:"\u0641\u0631\u0648_\u0627\u0631\u062f_\u062e\u0631\u062f_\u062a\u06cc\u0631_\u0645\u0631\u062f_\u0634\u0647\u0631_\u0645\u0647\u0631_\u0622\u0628\u0627_\u0622\u0630\u0631_\u062f\u06cc_\u0628\u0647\u0645_\u0627\u0633\u0641".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"}};return n.default.locale(i,null,!0),i}(n(99517))},22614:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e,t,n,i){var r={s:"muutama sekunti",m:"minuutti",mm:"%d minuuttia",h:"tunti",hh:"%d tuntia",d:"p\xe4iv\xe4",dd:"%d p\xe4iv\xe4\xe4",M:"kuukausi",MM:"%d kuukautta",y:"vuosi",yy:"%d vuotta",numbers:"nolla_yksi_kaksi_kolme_nelj\xe4_viisi_kuusi_seitsem\xe4n_kahdeksan_yhdeks\xe4n".split("_")},o={s:"muutaman sekunnin",m:"minuutin",mm:"%d minuutin",h:"tunnin",hh:"%d tunnin",d:"p\xe4iv\xe4n",dd:"%d p\xe4iv\xe4n",M:"kuukauden",MM:"%d kuukauden",y:"vuoden",yy:"%d vuoden",numbers:"nollan_yhden_kahden_kolmen_nelj\xe4n_viiden_kuuden_seitsem\xe4n_kahdeksan_yhdeks\xe4n".split("_")},a=i&&!t?o:r,s=a[n];return e<10?s.replace("%d",a.numbers[e]):s.replace("%d",e)}var r={name:"fi",weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM[ta] YYYY",LLL:"D. MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, D. MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"D. MMM YYYY",lll:"D. MMM YYYY, [klo] HH.mm",llll:"ddd, D. MMM YYYY, [klo] HH.mm"}};return n.default.locale(r,null,!0),r}(n(99517))},99022:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fo",weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),weekStart:1,weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",m:"ein minuttur",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0ur",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"}};return n.default.locale(i,null,!0),i}(n(99517))},28983:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fr-ca",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"}};return n.default.locale(i,null,!0),i}(n(99517))},49347:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fr-ch",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),weekStart:1,weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"}};return n.default.locale(i,null,!0),i}(n(99517))},43344:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fr",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(e){return e+(1===e?"er":"")}};return n.default.locale(i,null,!0),i}(n(99517))},49007:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fy",weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),weekStart:1,weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"}};return n.default.locale(i,null,!0),i}(n(99517))},54199:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ga",weekdays:"D\xe9 Domhnaigh_D\xe9 Luain_D\xe9 M\xe1irt_D\xe9 C\xe9adaoin_D\xe9ardaoin_D\xe9 hAoine_D\xe9 Satharn".split("_"),months:"Ean\xe1ir_Feabhra_M\xe1rta_Aibre\xe1n_Bealtaine_M\xe9itheamh_I\xfail_L\xfanasa_Me\xe1n F\xf3mhair_Deaireadh F\xf3mhair_Samhain_Nollaig".split("_"),weekStart:1,weekdaysShort:"Dom_Lua_M\xe1i_C\xe9a_D\xe9a_hAo_Sat".split("_"),monthsShort:"Ean\xe1_Feab_M\xe1rt_Aibr_Beal_M\xe9it_I\xfail_L\xfana_Me\xe1n_Deai_Samh_Noll".split("_"),weekdaysMin:"Do_Lu_M\xe1_Ce_D\xe9_hA_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"i %s",past:"%s \xf3 shin",s:"c\xfapla soicind",m:"n\xf3im\xe9ad",mm:"%d n\xf3im\xe9ad",h:"uair an chloig",hh:"%d uair an chloig",d:"l\xe1",dd:"%d l\xe1",M:"m\xed",MM:"%d m\xed",y:"bliain",yy:"%d bliain"}};return n.default.locale(i,null,!0),i}(n(99517))},97279:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"gd",weekdays:"Did\xf2mhnaich_Diluain_Dim\xe0irt_Diciadain_Diardaoin_Dihaoine_Disathairne".split("_"),months:"Am Faoilleach_An Gearran_Am M\xe0rt_An Giblean_An C\xe8itean_An t-\xd2gmhios_An t-Iuchar_An L\xf9nastal_An t-Sultain_An D\xe0mhair_An t-Samhain_An D\xf9bhlachd".split("_"),weekStart:1,weekdaysShort:"Did_Dil_Dim_Dic_Dia_Dih_Dis".split("_"),monthsShort:"Faoi_Gear_M\xe0rt_Gibl_C\xe8it_\xd2gmh_Iuch_L\xf9n_Sult_D\xe0mh_Samh_D\xf9bh".split("_"),weekdaysMin:"D\xf2_Lu_M\xe0_Ci_Ar_Ha_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"}};return n.default.locale(i,null,!0),i}(n(99517))},58326:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"gl",weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),weekStart:1,weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),ordinal:function(e){return e+"\xba"},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"fai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"}};return n.default.locale(i,null,!0),i}(n(99517))},35618:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"gom-latn",weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),weekStart:1,weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"}};return n.default.locale(i,null,!0),i}(n(99517))},72741:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"gu",weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"}};return n.default.locale(i,null,!0),i}(n(99517))},26006:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:"%d \u05e9\u05e2\u05d5\u05ea",hh2:"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd",d:"\u05d9\u05d5\u05dd",dd:"%d \u05d9\u05de\u05d9\u05dd",dd2:"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd",M:"\u05d7\u05d5\u05d3\u05e9",MM:"%d \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd",MM2:"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd",y:"\u05e9\u05e0\u05d4",yy:"%d \u05e9\u05e0\u05d9\u05dd",yy2:"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd"};function r(e,t,n){return(i[n+(2===e?"2":"")]||i[n]).replace("%d",e)}var o={name:"he",weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5_\u05e9\u05f3".split("_"),months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5_\u05e4\u05d1\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0_\u05d9\u05d5\u05dc_\u05d0\u05d5\u05d2_\u05e1\u05e4\u05d8_\u05d0\u05d5\u05e7_\u05e0\u05d5\u05d1_\u05d3\u05e6\u05de".split("_"),relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},ordinal:function(e){return e},format:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"}};return n.default.locale(o,null,!0),o}(n(99517))},95160:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"hi",weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"}};return n.default.locale(i,null,!0),i}(n(99517))},15417:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),r="sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),o=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/,a=function(e,t){return o.test(t)?i[e.month()]:r[e.month()]};a.s=r,a.f=i;var s={name:"hr",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),months:a,monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},relativeTime:{future:"za %s",past:"prije %s",s:"sekunda",m:"minuta",mm:"%d minuta",h:"sat",hh:"%d sati",d:"dan",dd:"%d dana",M:"mjesec",MM:"%d mjeseci",y:"godina",yy:"%d godine"},ordinal:function(e){return e+"."}};return n.default.locale(s,null,!0),s}(n(99517))},15123:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ht",weekdays:"dimanch_lendi_madi_m\xe8kredi_jedi_vandredi_samdi".split("_"),months:"janvye_fevriye_mas_avril_me_jen_jiy\xe8_out_septanm_okt\xf2b_novanm_desanm".split("_"),weekdaysShort:"dim._len._mad._m\xe8k._jed._van._sam.".split("_"),monthsShort:"jan._fev._mas_avr._me_jen_jiy\xe8._out_sept._okt._nov._des.".split("_"),weekdaysMin:"di_le_ma_m\xe8_je_va_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"nan %s",past:"sa gen %s",s:"k\xe8k segond",m:"yon minit",mm:"%d minit",h:"in\xe8dtan",hh:"%d z\xe8",d:"yon jou",dd:"%d jou",M:"yon mwa",MM:"%d mwa",y:"yon ane",yy:"%d ane"}};return n.default.locale(i,null,!0),i}(n(99517))},4802:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"hu",weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"%s m\xfalva",past:"%s",s:function(e,t,n,i){return"n\xe9h\xe1ny m\xe1sodperc"+(i||t?"":"e")},m:function(e,t,n,i){return"egy perc"+(i||t?"":"e")},mm:function(e,t,n,i){return e+" perc"+(i||t?"":"e")},h:function(e,t,n,i){return"egy "+(i||t?"\xf3ra":"\xf3r\xe1ja")},hh:function(e,t,n,i){return e+" "+(i||t?"\xf3ra":"\xf3r\xe1ja")},d:function(e,t,n,i){return"egy "+(i||t?"nap":"napja")},dd:function(e,t,n,i){return e+" "+(i||t?"nap":"napja")},M:function(e,t,n,i){return"egy "+(i||t?"h\xf3nap":"h\xf3napja")},MM:function(e,t,n,i){return e+" "+(i||t?"h\xf3nap":"h\xf3napja")},y:function(e,t,n,i){return"egy "+(i||t?"\xe9v":"\xe9ve")},yy:function(e,t,n,i){return e+" "+(i||t?"\xe9v":"\xe9ve")}},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},82474:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"hy-am",weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),months:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),weekStart:1,weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"}};return n.default.locale(i,null,!0),i}(n(99517))},59745:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"id",weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},48139:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:["nokkrar sek\xfandur","nokkrar sek\xfandur","nokkrum sek\xfandum"],m:["m\xedn\xfata","m\xedn\xfatu","m\xedn\xfatu"],mm:["m\xedn\xfatur","m\xedn\xfatur","m\xedn\xfatum"],h:["klukkustund","klukkustund","klukkustund"],hh:["klukkustundir","klukkustundir","klukkustundum"],d:["dagur","dag","degi"],dd:["dagar","daga","d\xf6gum"],M:["m\xe1nu\xf0ur","m\xe1nu\xf0","m\xe1nu\xf0i"],MM:["m\xe1nu\xf0ir","m\xe1nu\xf0i","m\xe1nu\xf0um"],y:["\xe1r","\xe1r","\xe1ri"],yy:["\xe1r","\xe1r","\xe1rum"]};function r(e,t,n,r){var o=function(e,t,n,r){var o=r?0:n?1:2,a=2===e.length&&t%10==1?e[0]:e,s=i[a][o];return 1===e.length?s:"%d "+s}(n,e,r,t);return o.replace("%d",e)}var o={name:"is",weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),weekStart:1,weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},32436:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"it-ch",weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),weekStart:1,weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"}};return n.default.locale(i,null,!0),i}(n(99517))},46869:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"it",weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),weekStart:1,monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"tra %s",past:"%s fa",s:"qualche secondo",m:"un minuto",mm:"%d minuti",h:"un' ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:function(e){return e+"\xba"}};return n.default.locale(i,null,!0),i}(n(99517))},7942:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ja",weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e){return e+"\u65e5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiem:function(e){return e<12?"\u5348\u524d":"\u5348\u5f8c"},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u6570\u79d2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65e5",dd:"%d\u65e5",M:"1\u30f6\u6708",MM:"%d\u30f6\u6708",y:"1\u5e74",yy:"%d\u5e74"}};return n.default.locale(i,null,!0),i}(n(99517))},24512:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"jv",weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),weekStart:1,weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),ordinal:function(e){return e},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"}};return n.default.locale(i,null,!0),i}(n(99517))},11499:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ka",weekdays:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),months:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekStart:1,formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"%s \u10e8\u10d4\u10db\u10d3\u10d4\u10d2",past:"%s \u10ec\u10d8\u10dc",s:"\u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8\u10e1",d:"\u10d3\u10e6\u10d4\u10e1",dd:"%d \u10d3\u10e6\u10d8\u10e1 \u10d2\u10d0\u10dc\u10db\u10d0\u10d5\u10da\u10dd\u10d1\u10d0\u10e8\u10d8",M:"\u10d7\u10d5\u10d8\u10e1",MM:"%d \u10d7\u10d5\u10d8\u10e1",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10da\u10d8\u10e1"},ordinal:function(e){return e}};return n.default.locale(i,null,!0),i}(n(99517))},17700:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"kk",weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekStart:1,relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},42661:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"km",weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekStart:1,weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"}};return n.default.locale(i,null,!0),i}(n(99517))},4439:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"kn",weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"}};return n.default.locale(i,null,!0),i}(n(99517))},24989:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ko",weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},meridiem:function(e){return e<12?"\uc624\uc804":"\uc624\ud6c4"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"}};return n.default.locale(i,null,!0),i}(n(99517))},31316:function(e,t,n){!function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=n(t),r={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},o={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},a=["\u06a9\u0627\u0646\u0648\u0648\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0634\u0648\u0628\u0627\u062a","\u0626\u0627\u062f\u0627\u0631","\u0646\u06cc\u0633\u0627\u0646","\u0626\u0627\u06cc\u0627\u0631","\u062d\u0648\u0632\u06d5\u06cc\u0631\u0627\u0646","\u062a\u06d5\u0645\u0645\u0648\u0648\u0632","\u0626\u0627\u0628","\u0626\u06d5\u06cc\u0644\u0648\u0648\u0644","\u062a\u0634\u0631\u06cc\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645","\u062a\u0634\u0631\u06cc\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u06a9\u0627\u0646\u0648\u0648\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645"],s={name:"ku",months:a,monthsShort:a,weekdays:"\u06cc\u06d5\u06a9\u0634\u06d5\u0645\u0645\u06d5_\u062f\u0648\u0648\u0634\u06d5\u0645\u0645\u06d5_\u0633\u06ce\u0634\u06d5\u0645\u0645\u06d5_\u0686\u0648\u0627\u0631\u0634\u06d5\u0645\u0645\u06d5_\u067e\u06ce\u0646\u062c\u0634\u06d5\u0645\u0645\u06d5_\u0647\u06d5\u06cc\u0646\u06cc_\u0634\u06d5\u0645\u0645\u06d5".split("_"),weekdaysShort:"\u06cc\u06d5\u06a9\u0634\u06d5\u0645_\u062f\u0648\u0648\u0634\u06d5\u0645_\u0633\u06ce\u0634\u06d5\u0645_\u0686\u0648\u0627\u0631\u0634\u06d5\u0645_\u067e\u06ce\u0646\u062c\u0634\u06d5\u0645_\u0647\u06d5\u06cc\u0646\u06cc_\u0634\u06d5\u0645\u0645\u06d5".split("_"),weekStart:6,weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u0647\u0640_\u0634".split("_"),preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return o[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return r[e]})).replace(/,/g,"\u060c")},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiem:function(e){return e<12?"\u067e.\u0646":"\u062f.\u0646"},relativeTime:{future:"\u0644\u06d5 %s",past:"\u0644\u06d5\u0645\u06d5\u0648\u067e\u06ce\u0634 %s",s:"\u0686\u06d5\u0646\u062f \u0686\u0631\u06a9\u06d5\u06cc\u06d5\u06a9",m:"\u06cc\u06d5\u06a9 \u062e\u0648\u0644\u06d5\u06a9",mm:"%d \u062e\u0648\u0644\u06d5\u06a9",h:"\u06cc\u06d5\u06a9 \u06a9\u0627\u062a\u0698\u0645\u06ce\u0631",hh:"%d \u06a9\u0627\u062a\u0698\u0645\u06ce\u0631",d:"\u06cc\u06d5\u06a9 \u0695\u06c6\u0698",dd:"%d \u0695\u06c6\u0698",M:"\u06cc\u06d5\u06a9 \u0645\u0627\u0646\u06af",MM:"%d \u0645\u0627\u0646\u06af",y:"\u06cc\u06d5\u06a9 \u0633\u0627\u06b5",yy:"%d \u0633\u0627\u06b5"}};i.default.locale(s,null,!0),e.default=s,e.englishToArabicNumbersMap=r,Object.defineProperty(e,"__esModule",{value:!0})}(t,n(99517))},88412:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ky",weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),weekStart:1,weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"}};return n.default.locale(i,null,!0),i}(n(99517))},69139:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"lb",weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),weekStart:1,weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"}};return n.default.locale(i,null,!0),i}(n(99517))},69052:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"lo",weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"}};return n.default.locale(i,null,!0),i}(n(99517))},41244:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),r="sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),o=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,a=function(e,t){return o.test(t)?i[e.month()]:r[e.month()]};a.s=r,a.f=i;var s={name:"lt",weekdays:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),weekdaysShort:"sek_pir_ant_tre_ket_pen_\u0161e\u0161".split("_"),weekdaysMin:"s_p_a_t_k_pn_\u0161".split("_"),months:a,monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"u\u017e %s",past:"prie\u0161 %s",s:"kelias sekundes",m:"minut\u0119",mm:"%d minutes",h:"valand\u0105",hh:"%d valandas",d:"dien\u0105",dd:"%d dienas",M:"m\u0117nes\u012f",MM:"%d m\u0117nesius",y:"metus",yy:"%d metus"},format:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"}};return n.default.locale(s,null,!0),s}(n(99517))},99648:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"lv",weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),weekStart:1,weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:"da\u017e\u0101m sekund\u0113m",m:"min\u016btes",mm:"%d min\u016bt\u0113m",h:"stundas",hh:"%d stund\u0101m",d:"dienas",dd:"%d dien\u0101m",M:"m\u0113ne\u0161a",MM:"%d m\u0113ne\u0161iem",y:"gada",yy:"%d gadiem"}};return n.default.locale(i,null,!0),i}(n(99517))},81888:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"me",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),weekStart:1,weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},87700:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mi",weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),weekStart:1,weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"}};return n.default.locale(i,null,!0),i}(n(99517))},14880:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mk",weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),weekStart:1,weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"}};return n.default.locale(i,null,!0),i}(n(99517))},71405:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ml",weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"}};return n.default.locale(i,null,!0),i}(n(99517))},1792:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mn",weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},relativeTime:{future:"%s",past:"%s",s:"\u0441\u0430\u044f\u0445\u0430\u043d",m:"\u043c",mm:"%d\u043c",h:"1\u0446",hh:"%d\u0446",d:"1\u04e9",dd:"%d\u04e9",M:"1\u0441",MM:"%d\u0441",y:"1\u0436",yy:"%d\u0436"}};return n.default.locale(i,null,!0),i}(n(99517))},62936:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mr",weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"}};return n.default.locale(i,null,!0),i}(n(99517))},4967:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ms-my",weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),weekStart:1,weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),ordinal:function(e){return e},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"}};return n.default.locale(i,null,!0),i}(n(99517))},23603:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ms",weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH.mm",LLLL:"dddd, D MMMM YYYY HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},76408:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mt",weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),weekStart:1,weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"}};return n.default.locale(i,null,!0),i}(n(99517))},72460:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"my",weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),weekStart:1,weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"}};return n.default.locale(i,null,!0),i}(n(99517))},27680:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"nb",weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"}};return n.default.locale(i,null,!0),i}(n(99517))},23964:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ne",weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),relativeTime:{future:"%s \u092a\u091b\u093f",past:"%s \u0905\u0918\u093f",s:"\u0938\u0947\u0915\u0947\u0928\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u0918\u0928\u094d\u091f\u093e",hh:"%d \u0918\u0928\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},ordinal:function(e){return(""+e).replace(/\d/g,(function(e){return"\u0966\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f"[e]}))},formats:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"}};return n.default.locale(i,null,!0),i}(n(99517))},76803:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"nl-be",weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),weekStart:1,weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"}};return n.default.locale(i,null,!0),i}(n(99517))},90792:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"nl",weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),ordinal:function(e){return"["+e+(1===e||8===e||e>=20?"ste":"de")+"]"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"een minuut",mm:"%d minuten",h:"een uur",hh:"%d uur",d:"een dag",dd:"%d dagen",M:"een maand",MM:"%d maanden",y:"een jaar",yy:"%d jaar"}};return n.default.locale(i,null,!0),i}(n(99517))},23693:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"nn",weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_la".split("_"),months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"om %s",past:"for %s sidan",s:"nokre sekund",m:"eitt minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nadar",y:"eitt \xe5r",yy:"%d \xe5r"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},76136:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"oc-lnc",weekdays:"dimenge_diluns_dimars_dim\xe8cres_dij\xf2us_divendres_dissabte".split("_"),weekdaysShort:"Dg_Dl_Dm_Dc_Dj_Dv_Ds".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),months:"geni\xe8r_febri\xe8r_mar\xe7_abrial_mai_junh_julhet_agost_setembre_oct\xf2bre_novembre_decembre".split("_"),monthsShort:"gen_feb_mar\xe7_abr_mai_junh_julh_ago_set_oct_nov_dec".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"unas segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},ordinal:function(e){return e+"\xba"}};return n.default.locale(i,null,!0),i}(n(99517))},8565:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"pa-in",weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"}};return n.default.locale(i,null,!0),i}(n(99517))},86348:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function r(e,t,n){var r=e+" ";switch(n){case"m":return t?"minuta":"minut\u0119";case"mm":return r+(i(e)?"minuty":"minut");case"h":return t?"godzina":"godzin\u0119";case"hh":return r+(i(e)?"godziny":"godzin");case"MM":return r+(i(e)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return r+(i(e)?"lata":"lat")}}var o="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_"),a="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),s=/D MMMM/,u=function(e,t){return s.test(t)?o[e.month()]:a[e.month()]};u.s=a,u.f=o;var l={name:"pl",weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),months:u,monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:r,mm:r,h:r,hh:r,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:r,y:"rok",yy:r},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(l,null,!0),l}(n(99517))},86064:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"pt-br",weekdays:"domingo_segunda-feira_ter\xe7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xe1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_s\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),ordinal:function(e){return e+"\xba"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"}};return n.default.locale(i,null,!0),i}(n(99517))},68239:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"pt",weekdays:"domingo_segunda-feira_ter\xe7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xe1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sab".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_Sa".split("_"),months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),ordinal:function(e){return e+"\xba"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"alguns segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"}};return n.default.locale(i,null,!0),i}(n(99517))},70233:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"rn",weekdays:"Ku wa Mungu_Ku wa Mbere_Ku wa Kabiri_Ku wa Gatatu_Ku wa Kane_Ku wa Gatanu_Ku wa Gatandatu".split("_"),weekdaysShort:"Kngu_Kmbr_Kbri_Ktat_Kkan_Ktan_Kdat".split("_"),weekdaysMin:"K7_K1_K2_K3_K4_K5_K6".split("_"),months:"Nzero_Ruhuhuma_Ntwarante_Ndamukiza_Rusama_Ruhenshi_Mukakaro_Myandagaro_Nyakanga_Gitugutu_Munyonyo_Kigarama".split("_"),monthsShort:"Nzer_Ruhuh_Ntwar_Ndam_Rus_Ruhen_Muk_Myand_Nyak_Git_Muny_Kig".split("_"),weekStart:1,ordinal:function(e){return e},relativeTime:{future:"mu %s",past:"%s",s:"amasegonda",m:"Umunota",mm:"%d iminota",h:"isaha",hh:"%d amasaha",d:"Umunsi",dd:"%d iminsi",M:"ukwezi",MM:"%d amezi",y:"umwaka",yy:"%d imyaka"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},9656:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ro",weekdays:"Duminic\u0103_Luni_Mar\u021bi_Miercuri_Joi_Vineri_S\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),months:"Ianuarie_Februarie_Martie_Aprilie_Mai_Iunie_Iulie_August_Septembrie_Octombrie_Noiembrie_Decembrie".split("_"),monthsShort:"Ian._Febr._Mart._Apr._Mai_Iun._Iul._Aug._Sept._Oct._Nov._Dec.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"peste %s",past:"acum %s",s:"c\xe2teva secunde",m:"un minut",mm:"%d minute",h:"o or\u0103",hh:"%d ore",d:"o zi",dd:"%d zile",M:"o lun\u0103",MM:"%d luni",y:"un an",yy:"%d ani"},ordinal:function(e){return e}};return n.default.locale(i,null,!0),i}(n(99517))},98848:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),r="\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),o="\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),a="\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),s=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function u(e,t,n){var i,r;return"m"===n?t?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":e+" "+(i=+e,r={mm:t?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[n].split("_"),i%10==1&&i%100!=11?r[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?r[1]:r[2])}var l=function(e,t){return s.test(t)?i[e.month()]:r[e.month()]};l.s=r,l.f=i;var c=function(e,t){return s.test(t)?o[e.month()]:a[e.month()]};c.s=a,c.f=o;var d={name:"ru",weekdays:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u0432\u0441\u043a_\u043f\u043d\u0434_\u0432\u0442\u0440_\u0441\u0440\u0434_\u0447\u0442\u0432_\u043f\u0442\u043d_\u0441\u0431\u0442".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),months:l,monthsShort:c,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",m:u,mm:u,h:"\u0447\u0430\u0441",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},ordinal:function(e){return e},meridiem:function(e){return e<4?"\u043d\u043e\u0447\u0438":e<12?"\u0443\u0442\u0440\u0430":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"}};return n.default.locale(d,null,!0),d}(n(99517))},36411:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"rw",weekdays:"Ku Cyumweru_Kuwa Mbere_Kuwa Kabiri_Kuwa Gatatu_Kuwa Kane_Kuwa Gatanu_Kuwa Gatandatu".split("_"),months:"Mutarama_Gashyantare_Werurwe_Mata_Gicurasi_Kamena_Nyakanga_Kanama_Nzeri_Ukwakira_Ugushyingo_Ukuboza".split("_"),relativeTime:{future:"mu %s",past:"%s",s:"amasegonda",m:"Umunota",mm:"%d iminota",h:"isaha",hh:"%d amasaha",d:"Umunsi",dd:"%d iminsi",M:"ukwezi",MM:"%d amezi",y:"umwaka",yy:"%d imyaka"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){return e}};return n.default.locale(i,null,!0),i}(n(99517))},14166:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sd",weekdays:"\u0622\u0686\u0631_\u0633\u0648\u0645\u0631_\u0627\u06b1\u0627\u0631\u0648_\u0627\u0631\u0628\u0639_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639_\u0687\u0646\u0687\u0631".split("_"),months:"\u062c\u0646\u0648\u0631\u064a_\u0641\u064a\u0628\u0631\u0648\u0631\u064a_\u0645\u0627\u0631\u0686_\u0627\u067e\u0631\u064a\u0644_\u0645\u0626\u064a_\u062c\u0648\u0646_\u062c\u0648\u0644\u0627\u0621\u0650_\u0622\u06af\u0633\u067d_\u0633\u064a\u067e\u067d\u0645\u0628\u0631_\u0622\u06aa\u067d\u0648\u0628\u0631_\u0646\u0648\u0645\u0628\u0631_\u068a\u0633\u0645\u0628\u0631".split("_"),weekStart:1,weekdaysShort:"\u0622\u0686\u0631_\u0633\u0648\u0645\u0631_\u0627\u06b1\u0627\u0631\u0648_\u0627\u0631\u0628\u0639_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639_\u0687\u0646\u0687\u0631".split("_"),monthsShort:"\u062c\u0646\u0648\u0631\u064a_\u0641\u064a\u0628\u0631\u0648\u0631\u064a_\u0645\u0627\u0631\u0686_\u0627\u067e\u0631\u064a\u0644_\u0645\u0626\u064a_\u062c\u0648\u0646_\u062c\u0648\u0644\u0627\u0621\u0650_\u0622\u06af\u0633\u067d_\u0633\u064a\u067e\u067d\u0645\u0628\u0631_\u0622\u06aa\u067d\u0648\u0628\u0631_\u0646\u0648\u0645\u0628\u0631_\u068a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u0622\u0686\u0631_\u0633\u0648\u0645\u0631_\u0627\u06b1\u0627\u0631\u0648_\u0627\u0631\u0628\u0639_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639_\u0687\u0646\u0687\u0631".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"}};return n.default.locale(i,null,!0),i}(n(99517))},71400:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"se",weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),weekStart:1,weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"}};return n.default.locale(i,null,!0),i}(n(99517))},11545:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"si",weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),months:"\u0daf\u0dd4\u0dbb\u0dd4\u0dad\u0dd4_\u0db1\u0dc0\u0db8\u0dca_\u0db8\u0dd0\u0daf\u0dd2\u0db1\u0dca_\u0db6\u0d9a\u0dca_\u0dc0\u0dd9\u0dc3\u0d9a\u0dca_\u0db4\u0ddc\u0dc3\u0ddc\u0db1\u0dca_\u0d87\u0dc3\u0dc5_\u0db1\u0dd2\u0d9a\u0dd2\u0dab\u0dd2_\u0db6\u0dd2\u0db1\u0dbb_\u0dc0\u0db4\u0dca_\u0d89\u0dbd\u0dca_\u0d8b\u0db3\u0dd4\u0dc0\u0db4\u0dca".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),monthsShort:"\u0daf\u0dd4\u0dbb\u0dd4_\u0db1\u0dc0_\u0db8\u0dd0\u0daf\u0dd2_\u0db6\u0d9a\u0dca_\u0dc0\u0dd9\u0dc3_\u0db4\u0ddc\u0dc3\u0ddc_\u0d87\u0dc3_\u0db1\u0dd2\u0d9a\u0dd2_\u0db6\u0dd2\u0db1_\u0dc0\u0db4\u0dca_\u0d89\u0dbd\u0dca_\u0d8b\u0db3\u0dd4".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),ordinal:function(e){return e},formats:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",m:"\u0dc0\u0dd2\u0db1\u0dcf\u0da9\u0dd2\u0dba",mm:"\u0dc0\u0dd2\u0db1\u0dcf\u0da9\u0dd2 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"}};return n.default.locale(i,null,!0),i}(n(99517))},71778:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e){return e>1&&e<5&&1!=~~(e/10)}function r(e,t,n,r){var o=e+" ";switch(n){case"s":return t||r?"p\xe1r sek\xfand":"p\xe1r sekundami";case"m":return t?"min\xfata":r?"min\xfatu":"min\xfatou";case"mm":return t||r?o+(i(e)?"min\xfaty":"min\xfat"):o+"min\xfatami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?o+(i(e)?"hodiny":"hod\xedn"):o+"hodinami";case"d":return t||r?"de\u0148":"d\u0148om";case"dd":return t||r?o+(i(e)?"dni":"dn\xed"):o+"d\u0148ami";case"M":return t||r?"mesiac":"mesiacom";case"MM":return t||r?o+(i(e)?"mesiace":"mesiacov"):o+"mesiacmi";case"y":return t||r?"rok":"rokom";case"yy":return t||r?o+(i(e)?"roky":"rokov"):o+"rokmi"}}var o={name:"sk",weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),months:"janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_"),weekStart:1,yearStart:4,ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},relativeTime:{future:"za %s",past:"pred %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},39552:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sl",weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),weekStart:1,weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:"nekaj sekund",m:"minuta",mm:"%d minut",h:"ura",hh:"%d ur",d:"dan",dd:"%d dni",M:"mesec",MM:"%d mesecev",y:"leto",yy:"%d let"}};return n.default.locale(i,null,!0),i}(n(99517))},61622:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sq",weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),weekStart:1,weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"}};return n.default.locale(i,null,!0),i}(n(99517))},64306:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={words:{m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u043c\u0438\u043d\u0443\u0442\u0430"],mm:["%d \u043c\u0438\u043d\u0443\u0442","%d \u043c\u0438\u043d\u0443\u0442\u0430","%d \u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["%d \u0441\u0430\u0442","%d \u0441\u0430\u0442\u0430","%d \u0441\u0430\u0442\u0438"],d:["\u0458\u0435\u0434\u0430\u043d \u0434\u0430\u043d","\u0458\u0435\u0434\u043d\u043e\u0433 \u0434\u0430\u043d\u0430"],dd:["%d \u0434\u0430\u043d","%d \u0434\u0430\u043d\u0430","%d \u0434\u0430\u043d\u0430"],M:["\u0458\u0435\u0434\u0430\u043d \u043c\u0435\u0441\u0435\u0446","\u0458\u0435\u0434\u043d\u043e\u0433 \u043c\u0435\u0441\u0435\u0446\u0430"],MM:["%d \u043c\u0435\u0441\u0435\u0446","%d \u043c\u0435\u0441\u0435\u0446\u0430","%d \u043c\u0435\u0441\u0435\u0446\u0438"],y:["\u0458\u0435\u0434\u043d\u0443 \u0433\u043e\u0434\u0438\u043d\u0443","\u0458\u0435\u0434\u043d\u0435 \u0433\u043e\u0434\u0438\u043d\u0435"],yy:["%d \u0433\u043e\u0434\u0438\u043d\u0443","%d \u0433\u043e\u0434\u0438\u043d\u0435","%d \u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammarCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},relativeTimeFormatter:function(e,t,n,r){var o=i.words[n];if(1===n.length)return"y"===n&&t?"\u0458\u0435\u0434\u043d\u0430 \u0433\u043e\u0434\u0438\u043d\u0430":r||t?o[0]:o[1];var a=i.correctGrammarCase(e,o);return"yy"===n&&t&&"%d \u0433\u043e\u0434\u0438\u043d\u0443"===a?e+" \u0433\u043e\u0434\u0438\u043d\u0430":a.replace("%d",e)}},r={name:"sr-cyrl",weekdays:"\u041d\u0435\u0434\u0435\u0459\u0430_\u041f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0423\u0442\u043e\u0440\u0430\u043a_\u0421\u0440\u0435\u0434\u0430_\u0427\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u041f\u0435\u0442\u0430\u043a_\u0421\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u041d\u0435\u0434._\u041f\u043e\u043d._\u0423\u0442\u043e._\u0421\u0440\u0435._\u0427\u0435\u0442._\u041f\u0435\u0442._\u0421\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),months:"\u0408\u0430\u043d\u0443\u0430\u0440_\u0424\u0435\u0431\u0440\u0443\u0430\u0440_\u041c\u0430\u0440\u0442_\u0410\u043f\u0440\u0438\u043b_\u041c\u0430\u0458_\u0408\u0443\u043d_\u0408\u0443\u043b_\u0410\u0432\u0433\u0443\u0441\u0442_\u0421\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u041e\u043a\u0442\u043e\u0431\u0430\u0440_\u041d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0414\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0408\u0430\u043d._\u0424\u0435\u0431._\u041c\u0430\u0440._\u0410\u043f\u0440._\u041c\u0430\u0458_\u0408\u0443\u043d_\u0408\u0443\u043b_\u0410\u0432\u0433._\u0421\u0435\u043f._\u041e\u043a\u0442._\u041d\u043e\u0432._\u0414\u0435\u0446.".split("_"),weekStart:1,relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:i.relativeTimeFormatter,mm:i.relativeTimeFormatter,h:i.relativeTimeFormatter,hh:i.relativeTimeFormatter,d:i.relativeTimeFormatter,dd:i.relativeTimeFormatter,M:i.relativeTimeFormatter,MM:i.relativeTimeFormatter,y:i.relativeTimeFormatter,yy:i.relativeTimeFormatter},ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"}};return n.default.locale(r,null,!0),r}(n(99517))},23139:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={words:{m:["jedan minut","jednog minuta"],mm:["%d minut","%d minuta","%d minuta"],h:["jedan sat","jednog sata"],hh:["%d sat","%d sata","%d sati"],d:["jedan dan","jednog dana"],dd:["%d dan","%d dana","%d dana"],M:["jedan mesec","jednog meseca"],MM:["%d mesec","%d meseca","%d meseci"],y:["jednu godinu","jedne godine"],yy:["%d godinu","%d godine","%d godina"]},correctGrammarCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},relativeTimeFormatter:function(e,t,n,r){var o=i.words[n];if(1===n.length)return"y"===n&&t?"jedna godina":r||t?o[0]:o[1];var a=i.correctGrammarCase(e,o);return"yy"===n&&t&&"%d godinu"===a?e+" godina":a.replace("%d",e)}},r={name:"sr",weekdays:"Nedelja_Ponedeljak_Utorak_Sreda_\u010cetvrtak_Petak_Subota".split("_"),weekdaysShort:"Ned._Pon._Uto._Sre._\u010cet._Pet._Sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),months:"Januar_Februar_Mart_April_Maj_Jun_Jul_Avgust_Septembar_Oktobar_Novembar_Decembar".split("_"),monthsShort:"Jan._Feb._Mar._Apr._Maj_Jun_Jul_Avg._Sep._Okt._Nov._Dec.".split("_"),weekStart:1,relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:i.relativeTimeFormatter,mm:i.relativeTimeFormatter,h:i.relativeTimeFormatter,hh:i.relativeTimeFormatter,d:i.relativeTimeFormatter,dd:i.relativeTimeFormatter,M:i.relativeTimeFormatter,MM:i.relativeTimeFormatter,y:i.relativeTimeFormatter,yy:i.relativeTimeFormatter},ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"}};return n.default.locale(r,null,!0),r}(n(99517))},40359:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ss",weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),weekStart:1,weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"}};return n.default.locale(i,null,!0),i}(n(99517))},80357:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sv-fi",weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekStart:1,yearStart:4,ordinal:function(e){var t=e%10;return"["+e+(1===t||2===t?"a":"e")+"]"},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY, [kl.] HH.mm",LLLL:"dddd, D. MMMM YYYY, [kl.] HH.mm",l:"D.M.YYYY",ll:"D. MMM YYYY",lll:"D. MMM YYYY, [kl.] HH.mm",llll:"ddd, D. MMM YYYY, [kl.] HH.mm"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"}};return n.default.locale(i,null,!0),i}(n(99517))},73306:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sv",weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekStart:1,yearStart:4,ordinal:function(e){var t=e%10;return"["+e+(1===t||2===t?"a":"e")+"]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"}};return n.default.locale(i,null,!0),i}(n(99517))},73237:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sw",weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekStart:1,ordinal:function(e){return e},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},77067:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ta",weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"}};return n.default.locale(i,null,!0),i}(n(99517))},15083:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"te",weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"}};return n.default.locale(i,null,!0),i}(n(99517))},6927:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tet",weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),weekStart:1,weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"}};return n.default.locale(i,null,!0),i}(n(99517))},24567:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tg",weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),weekStart:1,weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"}};return n.default.locale(i,null,!0),i}(n(99517))},34419:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"th",weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},54216:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tk",weekdays:"\xddek\u015fenbe_Du\u015fenbe_Si\u015fenbe_\xc7ar\u015fenbe_Pen\u015fenbe_Anna_\u015eenbe".split("_"),weekdaysShort:"\xddek_Du\u015f_Si\u015f_\xc7ar_Pen_Ann_\u015een".split("_"),weekdaysMin:"\xddk_D\u015f_S\u015f_\xc7r_Pn_An_\u015en".split("_"),months:"\xddanwar_Fewral_Mart_Aprel_Ma\xfd_I\xfdun_I\xfdul_Awgust_Sent\xfdabr_Okt\xfdabr_No\xfdabr_Dekabr".split("_"),monthsShort:"\xddan_Few_Mar_Apr_Ma\xfd_I\xfdn_I\xfdl_Awg_Sen_Okt_No\xfd_Dek".split("_"),weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s so\u0148",past:"%s \xf6\u0148",s:"birn\xe4\xe7e sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir a\xfd",MM:"%d a\xfd",y:"bir \xfdyl",yy:"%d \xfdyl"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},91107:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tl-ph",weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),weekStart:1,weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"}};return n.default.locale(i,null,!0),i}(n(99517))},25875:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tlh",weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),weekStart:1,weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},72145:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tr",weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},92611:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tzl",weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),weekStart:1,weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),ordinal:function(e){return e},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"}};return n.default.locale(i,null,!0),i}(n(99517))},17715:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tzm-latn",weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekStart:6,weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"}};return n.default.locale(i,null,!0),i}(n(99517))},85408:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tzm",weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekStart:6,weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"}};return n.default.locale(i,null,!0),i}(n(99517))},62948:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ug-cn",weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekStart:1,weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"}};return n.default.locale(i,null,!0),i}(n(99517))},42024:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),r="\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_"),o=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function a(e,t,n){var i,r;return"m"===n?t?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===n?t?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":e+" "+(i=+e,r={ss:t?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:t?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:t?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[n].split("_"),i%10==1&&i%100!=11?r[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?r[1]:r[2])}var s=function(e,t){return o.test(t)?i[e.month()]:r[e.month()]};s.s=r,s.f=i;var u={name:"uk",weekdays:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0434\u043b_\u043f\u043d\u0434_\u0432\u0442\u0440_\u0441\u0440\u0434_\u0447\u0442\u0432_\u043f\u0442\u043d_\u0441\u0431\u0442".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),months:s,monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekStart:1,relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",m:a,mm:a,h:a,hh:a,d:"\u0434\u0435\u043d\u044c",dd:a,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:a,y:"\u0440\u0456\u043a",yy:a},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"}};return n.default.locale(u,null,!0),u}(n(99517))},53008:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ur",weekdays:"\u0627\u062a\u0648\u0627\u0631_\u067e\u06cc\u0631_\u0645\u0646\u06af\u0644_\u0628\u062f\u06be_\u062c\u0645\u0639\u0631\u0627\u062a_\u062c\u0645\u0639\u06c1_\u06c1\u0641\u062a\u06c1".split("_"),months:"\u062c\u0646\u0648\u0631\u06cc_\u0641\u0631\u0648\u0631\u06cc_\u0645\u0627\u0631\u0686_\u0627\u067e\u0631\u06cc\u0644_\u0645\u0626\u06cc_\u062c\u0648\u0646_\u062c\u0648\u0644\u0627\u0626\u06cc_\u0627\u06af\u0633\u062a_\u0633\u062a\u0645\u0628\u0631_\u0627\u06a9\u062a\u0648\u0628\u0631_\u0646\u0648\u0645\u0628\u0631_\u062f\u0633\u0645\u0628\u0631".split("_"),weekStart:1,weekdaysShort:"\u0627\u062a\u0648\u0627\u0631_\u067e\u06cc\u0631_\u0645\u0646\u06af\u0644_\u0628\u062f\u06be_\u062c\u0645\u0639\u0631\u0627\u062a_\u062c\u0645\u0639\u06c1_\u06c1\u0641\u062a\u06c1".split("_"),monthsShort:"\u062c\u0646\u0648\u0631\u06cc_\u0641\u0631\u0648\u0631\u06cc_\u0645\u0627\u0631\u0686_\u0627\u067e\u0631\u06cc\u0644_\u0645\u0626\u06cc_\u062c\u0648\u0646_\u062c\u0648\u0644\u0627\u0626\u06cc_\u0627\u06af\u0633\u062a_\u0633\u062a\u0645\u0628\u0631_\u0627\u06a9\u062a\u0648\u0628\u0631_\u0646\u0648\u0645\u0628\u0631_\u062f\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u0627\u062a\u0648\u0627\u0631_\u067e\u06cc\u0631_\u0645\u0646\u06af\u0644_\u0628\u062f\u06be_\u062c\u0645\u0639\u0631\u0627\u062a_\u062c\u0645\u0639\u06c1_\u06c1\u0641\u062a\u06c1".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"}};return n.default.locale(i,null,!0),i}(n(99517))},21413:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"uz-latn",weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),weekStart:1,weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"}};return n.default.locale(i,null,!0),i}(n(99517))},63609:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"uz",weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),weekStart:1,weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"}};return n.default.locale(i,null,!0),i}(n(99517))},2606:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"vi",weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),weekStart:1,weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"}};return n.default.locale(i,null,!0),i}(n(99517))},14953:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"x-pseudo",weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),weekStart:1,weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"}};return n.default.locale(i,null,!0),i}(n(99517))},57091:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"yo",weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekStart:1,weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"}};return n.default.locale(i,null,!0),i}(n(99517))},6432:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"zh-cn",weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,t){return"W"===t?e+"\u5468":e+"\u65e5"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},meridiem:function(e,t){var n=100*e+t;return n<600?"\u51cc\u6668":n<900?"\u65e9\u4e0a":n<1100?"\u4e0a\u5348":n<1300?"\u4e2d\u5348":n<1800?"\u4e0b\u5348":"\u665a\u4e0a"}};return n.default.locale(i,null,!0),i}(n(99517))},35732:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"zh-hk",months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),ordinal:function(e,t){return"W"===t?e+"\u9031":e+"\u65e5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",m:"\u4e00\u5206\u9418",mm:"%d \u5206\u9418",h:"\u4e00\u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"\u4e00\u5929",dd:"%d \u5929",M:"\u4e00\u500b\u6708",MM:"%d \u500b\u6708",y:"\u4e00\u5e74",yy:"%d \u5e74"}};return n.default.locale(i,null,!0),i}(n(99517))},30795:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"zh-tw",weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,t){return"W"===t?e+"\u9031":e+"\u65e5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"},meridiem:function(e,t){var n=100*e+t;return n<600?"\u51cc\u6668":n<900?"\u65e9\u4e0a":n<1100?"\u4e0a\u5348":n<1300?"\u4e2d\u5348":n<1800?"\u4e0b\u5348":"\u665a\u4e0a"}};return n.default.locale(i,null,!0),i}(n(99517))},73972:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"zh",weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,t){return"W"===t?e+"\u5468":e+"\u65e5"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},relativeTime:{future:"%s\u540e",past:"%s\u524d",s:"\u51e0\u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},meridiem:function(e,t){var n=100*e+t;return n<600?"\u51cc\u6668":n<900?"\u65e9\u4e0a":n<1100?"\u4e0a\u5348":n<1300?"\u4e2d\u5348":n<1800?"\u4e0b\u5348":"\u665a\u4e0a"}};return n.default.locale(i,null,!0),i}(n(99517))},72547:function(e){e.exports=function(){"use strict";return function(e,t,n){var i=t.prototype,r=function(e){var t=e.date,i=e.utc;return Array.isArray(t)?i?t.length?new Date(Date.UTC.apply(null,t)):new Date:1===t.length?n(String(t[0])).toDate():new(Function.prototype.bind.apply(Date,[null].concat(t))):t},o=i.parse;i.parse=function(e){e.date=r.bind(this)(e),o.bind(this)(e)}}}()},51235:function(e){e.exports=function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,i=/\d\d?/,r=/\d*[^-_:/,()\s\d]+/,o={},a=function(e){return(e=+e)+(e>68?1900:2e3)},s=function(e){return function(t){this[e]=+t}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],l=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},c=function(e,t){var n,i=o.meridiem;if(i){for(var r=1;r<=24;r+=1)if(e.indexOf(i(r,0,t))>-1){n=r>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[r,function(e){this.afternoon=c(e,!1)}],a:[r,function(e){this.afternoon=c(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,s("seconds")],ss:[i,s("seconds")],m:[i,s("minutes")],mm:[i,s("minutes")],H:[i,s("hours")],h:[i,s("hours")],HH:[i,s("hours")],hh:[i,s("hours")],D:[i,s("day")],DD:[n,s("day")],Do:[r,function(e){var t=o.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var i=1;i<=31;i+=1)t(i).replace(/\[|\]/g,"")===e&&(this.day=i)}],M:[i,s("month")],MM:[n,s("month")],MMM:[r,function(e){var t=l("months"),n=(l("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[r,function(e){var t=l("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,s("year")],YY:[n,function(e){this.year=a(e)}],YYYY:[/\d{4}/,s("year")],Z:u,ZZ:u};function h(n){var i,r;i=n,r=o&&o.formats;for(var a=(n=i.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,i){var o=i&&i.toUpperCase();return n||r[i]||e[i]||r[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),s=a.length,u=0;u<s;u+=1){var l=a[u],c=d[l],h=c&&c[0],f=c&&c[1];a[u]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(e){for(var t={},n=0,i=0;n<s;n+=1){var r=a[n];if("string"==typeof r)i+=r.length;else{var o=r.regex,u=r.parser,l=e.slice(i),c=o.exec(l)[0];u.call(t,c),e=e.replace(c,"")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var i=t.prototype,r=i.parse;i.parse=function(e){var t=e.date,i=e.utc,a=e.args;this.$u=i;var s=a[1];if("string"==typeof s){var u=!0===a[2],l=!0===a[3],c=u||l,d=a[2];l&&(d=a[2]),o=this.$locale(),!u&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if(["x","X"].indexOf(t)>-1)return new Date(("X"===t?1e3:1)*e);var i=h(t)(e),r=i.year,o=i.month,a=i.day,s=i.hours,u=i.minutes,l=i.seconds,c=i.milliseconds,d=i.zone,f=new Date,p=a||(r||o?1:f.getDate()),g=r||f.getFullYear(),v=0;r&&!o||(v=o>0?o-1:f.getMonth());var m=s||0,_=u||0,y=l||0,b=c||0;return d?new Date(Date.UTC(g,v,p,m,_,y,b+60*d.offset*1e3)):n?new Date(Date.UTC(g,v,p,m,_,y,b)):new Date(g,v,p,m,_,y,b)}catch(e){return new Date("")}}(t,s,i),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),c&&t!=this.format(s)&&(this.$d=new Date("")),o={}}else if(s instanceof Array)for(var f=s.length,p=1;p<=f;p+=1){a[1]=s[p-1];var g=n.apply(this,a);if(g.isValid()){this.$d=g.$d,this.$L=g.$L,this.init();break}p===f&&(this.$d=new Date(""))}else r.call(this,e)}}}()},28699:function(e){e.exports=function(){"use strict";var e="day";return function(t,n,i){var r=function(t){return t.add(4-t.isoWeekday(),e)},o=n.prototype;o.isoWeekYear=function(){return r(this).year()},o.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var n,o,a,s=r(this),u=(n=this.isoWeekYear(),a=4-(o=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),o.isoWeekday()>4&&(a+=7),o.add(a,e));return s.diff(u,"week")+1},o.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var a=o.startOf;o.startOf=function(e,t){var n=this.$utils(),i=!!n.u(t)||t;return"isoweek"===n.p(e)?i?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):a.bind(this)(e,t)}}}()},79748:function(e){e.exports=function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(t,n,i){var r=n.prototype,o=r.format;i.en.formats=e,r.format=function(t){void 0===t&&(t="YYYY-MM-DDTHH:mm:ssZ");var n=this.$locale().formats,i=function(t,n){return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,i,r){var o=r&&r.toUpperCase();return i||n[r]||e[r]||n[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))}(t,void 0===n?{}:n);return o.call(this,i)}}}()},27369:function(e){e.exports=function(){"use strict";return function(e,t,n){var i=t.prototype,r=function(e){var t,r=e.date,o=e.utc,a={};if(!((t=r)instanceof Date||t instanceof Array||i.$utils().u(t)||"Object"!==t.constructor.name)){if(!Object.keys(r).length)return new Date;var s=o?n.utc():n();Object.keys(r).forEach((function(e){var t,n;a[(t=e,n=i.$utils().p(t),"date"===n?"day":n)]=r[e]}));var u=a.day||(a.year||a.month>=0?1:s.date()),l=a.year||s.year(),c=a.month>=0?a.month:a.year||a.day?0:s.month(),d=a.hour||0,h=a.minute||0,f=a.second||0,p=a.millisecond||0;return o?new Date(Date.UTC(l,c,u,d,h,f,p)):new Date(l,c,u,d,h,f,p)}return r},o=i.parse;i.parse=function(e){e.date=r.bind(this)(e),o.bind(this)(e)};var a=i.set,s=i.add,u=i.subtract,l=function(e,t,n,i){void 0===i&&(i=1);var r=Object.keys(t),o=this;return r.forEach((function(n){o=e.bind(o)(t[n]*i,n)})),o};i.set=function(e,t){return t=void 0===t?e:t,"Object"===e.constructor.name?l.bind(this)((function(e,t){return a.bind(this)(t,e)}),t,e):a.bind(this)(e,t)},i.add=function(e,t){return"Object"===e.constructor.name?l.bind(this)(s,e,t):s.bind(this)(e,t)},i.subtract=function(e,t){return"Object"===e.constructor.name?l.bind(this)(s,e,t,-1):u.bind(this)(e,t)}}}()},51277:function(e){e.exports=function(){"use strict";var e="month",t="quarter";return function(n,i){var r=i.prototype;r.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var o=r.add;r.add=function(n,i){return n=Number(n),this.$utils().p(i)===t?this.add(3*n,e):o.bind(this)(n,i)};var a=r.startOf;r.startOf=function(n,i){var r=this.$utils(),o=!!r.u(i)||i;if(r.p(n)===t){var s=this.quarter()-1;return o?this.month(3*s).startOf(e).startOf("day"):this.month(3*s+2).endOf(e).endOf("day")}return a.bind(this)(n,i)}}}()},51714:function(e){e.exports=function(){"use strict";return function(e,t,n){e=e||{};var i=t.prototype,r={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function o(e,t,n,r){return i.fromToBase(e,t,n,r)}n.en.relativeTime=r,i.fromToBase=function(t,i,o,a,s){for(var u,l,c,d=o.$locale().relativeTime||r,h=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],f=h.length,p=0;p<f;p+=1){var g=h[p];g.d&&(u=a?n(t).diff(o,g.d,!0):o.diff(t,g.d,!0));var v=(e.rounding||Math.round)(Math.abs(u));if(c=u>0,v<=g.r||!g.r){v<=1&&p>0&&(g=h[p-1]);var m=d[g.l];s&&(v=s(""+v)),l="string"==typeof m?m.replace("%d",v):m(v,i,g.l,c);break}}if(i)return l;var _=c?d.future:d.past;return"function"==typeof _?_(l):_.replace("%s",l)},i.to=function(e,t){return o(e,t,this,!0)},i.from=function(e,t){return o(e,t,this)};var a=function(e){return e.$u?n.utc():n()};i.toNow=function(e){return this.to(a(this),e)},i.fromNow=function(e){return this.from(a(this),e)}}}()},63540:function(e){e.exports=function(){"use strict";var e={year:0,month:1,day:2,hour:3,minute:4,second:5},t={};return function(n,i,r){var o,a=function(e,n,i){void 0===i&&(i={});var r=new Date(e),o=function(e,n){void 0===n&&(n={});var i=n.timeZoneName||"short",r=e+"|"+i,o=t[r];return o||(o=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),t[r]=o),o}(n,i);return o.formatToParts(r)},s=function(t,n){for(var i=a(t,n),o=[],s=0;s<i.length;s+=1){var u=i[s],l=u.type,c=u.value,d=e[l];d>=0&&(o[d]=parseInt(c,10))}var h=o[3],f=24===h?0:h,p=o[0]+"-"+o[1]+"-"+o[2]+" "+f+":"+o[4]+":"+o[5]+":000",g=+t;return(r.utc(p).valueOf()-(g-=g%1e3))/6e4},u=i.prototype;u.tz=function(e,t){void 0===e&&(e=o);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString("en-US",{timeZone:e}),s=Math.round((i-new Date(a))/1e3/60),u=r(a).$set("millisecond",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-s,!0);if(t){var l=u.utcOffset();u=u.add(n-l,"minute")}return u.$x.$timezone=e,u},u.offsetName=function(e){var t=this.$x.$timezone||r.tz.guess(),n=a(this.valueOf(),t,{timeZoneName:e}).find((function(e){return"timezonename"===e.type.toLowerCase()}));return n&&n.value};var l=u.startOf;u.startOf=function(e,t){if(!this.$x||!this.$x.$timezone)return l.call(this,e,t);var n=r(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return l.call(n,e,t).tz(this.$x.$timezone,!0)},r.tz=function(e,t,n){var i=n&&t,a=n||t||o,u=s(+r(),a);if("string"!=typeof e)return r(e).tz(a);var l=function(e,t,n){var i=e-60*t*1e3,r=s(i,n);if(t===r)return[i,t];var o=s(i-=60*(r-t)*1e3,n);return r===o?[i,r]:[e-60*Math.min(r,o)*1e3,Math.max(r,o)]}(r.utc(e,i).valueOf(),u,a),c=l[0],d=l[1],h=r(c).utcOffset(d);return h.$x.$timezone=a,h},r.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},r.tz.setDefault=function(e){o=e}}}()},14230:function(e){e.exports=function(){"use strict";return function(e,t,n){n.updateLocale=function(e,t){var i=n.Ls[e];if(i)return(t?Object.keys(t):[]).forEach((function(e){i[e]=t[e]})),i}}}()},18272:function(e){e.exports=function(){"use strict";var e="minute",t=/[+-]\d\d(?::?\d\d)?/g,n=/([+-]|\d\d)/g;return function(i,r,o){var a=r.prototype;o.utc=function(e){return new r({date:e,utc:!0,args:arguments})},a.utc=function(t){var n=o(this.toDate(),{locale:this.$L,utc:!0});return t?n.add(this.utcOffset(),e):n},a.local=function(){return o(this.toDate(),{locale:this.$L,utc:!1})};var s=a.parse;a.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),s.call(this,e)};var u=a.init;a.init=function(){if(this.$u){var e=this.$d;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else u.call(this)};var l=a.utcOffset;a.utcOffset=function(i,r){var o=this.$utils().u;if(o(i))return this.$u?0:o(this.$offset)?l.call(this):this.$offset;if("string"==typeof i&&(i=function(e){void 0===e&&(e="");var i=e.match(t);if(!i)return null;var r=(""+i[0]).match(n)||["-",0,0],o=r[0],a=60*+r[1]+ +r[2];return 0===a?0:"+"===o?a:-a}(i),null===i))return this;var a=Math.abs(i)<=16?60*i:i,s=this;if(r)return s.$offset=a,s.$u=0===i,s;if(0!==i){var u=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(s=this.local().add(a+u,e)).$offset=a,s.$x.$localOffset=u}else s=this.utc();return s};var c=a.format;a.format=function(e){var t=e||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return c.call(this,t)},a.valueOf=function(){var e=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*e},a.isUTC=function(){return!!this.$u},a.toISOString=function(){return this.toDate().toISOString()},a.toString=function(){return this.toDate().toUTCString()};var d=a.toDate;a.toDate=function(e){return"s"===e&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():d.call(this)};var h=a.diff;a.diff=function(e,t,n){if(e&&this.$u===e.$u)return h.call(this,e,t,n);var i=this.local(),r=o(e).local();return h.call(i,r,t,n)}}}()},31870:function(e,t,n){var i=n(77801);e.exports=function(e,t,n){var r,o,a,s,u;function l(){var c=i()-s;c<t&&c>0?r=setTimeout(l,t-c):(r=null,n||(u=e.apply(a,o),r||(a=o=null)))}return null==t&&(t=100),function(){a=this,o=arguments,s=i();var c=n&&!r;return r||(r=setTimeout(l,t)),c&&(u=e.apply(a,o),a=o=null),u}}},59312:function(e,t,n){var i,r=r||{version:"4.2.0"};if(t.fabric=r,"undefined"!==typeof document&&"undefined"!==typeof window)document instanceof("undefined"!==typeof HTMLDocument?HTMLDocument:Document)?r.document=document:r.document=document.implementation.createHTMLDocument(""),r.window=window;else{var o=new(n(24960).JSDOM)(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;r.document=o.document,r.jsdomImplForWrapper=n(26759).implForWrapper,r.nodeCanvas=n(56272).Canvas,r.window=o,DOMParser=r.window.DOMParser}function a(e,t){var n=e.canvas,i=t.targetCanvas,r=i.getContext("2d");r.translate(0,i.height),r.scale(1,-1);var o=n.height-i.height;r.drawImage(n,0,o,i.width,i.height,0,0,i.width,i.height)}function s(e,t){var n=t.targetCanvas.getContext("2d"),i=t.destinationWidth,r=t.destinationHeight,o=i*r*4,a=new Uint8Array(this.imageBuffer,0,o),s=new Uint8ClampedArray(this.imageBuffer,0,o);e.readPixels(0,0,i,r,e.RGBA,e.UNSIGNED_BYTE,a);var u=new ImageData(s,i,r);n.putImageData(u,0,0)}r.isTouchSupported="ontouchstart"in r.window||"ontouchstart"in r.document||r.window&&r.window.navigator&&r.window.navigator.maxTouchPoints>0,r.isLikelyNode="undefined"!==typeof Buffer&&"undefined"===typeof window,r.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],r.DPI=96,r.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",r.commaWsp="(?:\\s+,?\\s*|,\\s*)",r.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,r.reNonWord=/[ \n\.,;!\?\-]/,r.fontPaths={},r.iMatrix=[1,0,0,1,0,0],r.svgNS="http://www.w3.org/2000/svg",r.perfLimitSizeTotal=2097152,r.maxCacheSideLimit=4096,r.minCacheSideLimit=256,r.charWidthsCache={},r.textureSize=2048,r.disableStyleCopyPaste=!1,r.enableGLFiltering=!0,r.devicePixelRatio=r.window.devicePixelRatio||r.window.webkitDevicePixelRatio||r.window.mozDevicePixelRatio||1,r.browserShadowBlurConstant=1,r.arcToSegmentsCache={},r.boundsOfCurveCache={},r.cachesBoundsOfCurve=!0,r.forceGLPutImageData=!1,r.initFilterBackend=function(){return r.enableGLFiltering&&r.isWebglSupported&&r.isWebglSupported(r.textureSize)?(console.log("max texture size: "+r.maxTextureSize),new r.WebglFilterBackend({tileSize:r.textureSize})):r.Canvas2dFilterBackend?new r.Canvas2dFilterBackend:void 0},"undefined"!==typeof document&&"undefined"!==typeof window&&(window.fabric=r),function(){function e(e,t){if(this.__eventListeners[e]){var n=this.__eventListeners[e];t?n[n.indexOf(t)]=!1:r.util.array.fill(n,!1)}}r.Observable={fire:function(e,t){if(!this.__eventListeners)return this;var n=this.__eventListeners[e];if(!n)return this;for(var i=0,r=n.length;i<r;i++)n[i]&&n[i].call(this,t||{});return this.__eventListeners[e]=n.filter((function(e){return!1!==e})),this},on:function(e,t){if(this.__eventListeners||(this.__eventListeners={}),1===arguments.length)for(var n in e)this.on(n,e[n]);else this.__eventListeners[e]||(this.__eventListeners[e]=[]),this.__eventListeners[e].push(t);return this},off:function(t,n){if(!this.__eventListeners)return this;if(0===arguments.length)for(t in this.__eventListeners)e.call(this,t);else if(1===arguments.length&&"object"===typeof arguments[0])for(var i in t)e.call(this,i,t[i]);else e.call(this,t,n);return this}}}(),r.Collection={_objects:[],add:function(){if(this._objects.push.apply(this._objects,arguments),this._onObjectAdded)for(var e=0,t=arguments.length;e<t;e++)this._onObjectAdded(arguments[e]);return this.renderOnAddRemove&&this.requestRenderAll(),this},insertAt:function(e,t,n){var i=this._objects;return n?i[t]=e:i.splice(t,0,e),this._onObjectAdded&&this._onObjectAdded(e),this.renderOnAddRemove&&this.requestRenderAll(),this},remove:function(){for(var e,t=this._objects,n=!1,i=0,r=arguments.length;i<r;i++)-1!==(e=t.indexOf(arguments[i]))&&(n=!0,t.splice(e,1),this._onObjectRemoved&&this._onObjectRemoved(arguments[i]));return this.renderOnAddRemove&&n&&this.requestRenderAll(),this},forEachObject:function(e,t){for(var n=this.getObjects(),i=0,r=n.length;i<r;i++)e.call(t,n[i],i,n);return this},getObjects:function(e){return"undefined"===typeof e?this._objects.concat():this._objects.filter((function(t){return t.type===e}))},item:function(e){return this._objects[e]},isEmpty:function(){return 0===this._objects.length},size:function(){return this._objects.length},contains:function(e){return this._objects.indexOf(e)>-1},complexity:function(){return this._objects.reduce((function(e,t){return e+=t.complexity?t.complexity():0}),0)}},r.CommonMethods={_setOptions:function(e){for(var t in e)this.set(t,e[t])},_initGradient:function(e,t){!e||!e.colorStops||e instanceof r.Gradient||this.set(t,new r.Gradient(e))},_initPattern:function(e,t,n){!e||!e.source||e instanceof r.Pattern?n&&n():this.set(t,new r.Pattern(e,n))},_setObject:function(e){for(var t in e)this._set(t,e[t])},set:function(e,t){return"object"===typeof e?this._setObject(e):this._set(e,t),this},_set:function(e,t){this[e]=t},toggle:function(e){var t=this.get(e);return"boolean"===typeof t&&this.set(e,!t),this},get:function(e){return this[e]}},function(e){var t=Math.sqrt,n=Math.atan2,i=Math.pow,o=Math.PI/180,a=Math.PI/2;r.util={cos:function(e){if(0===e)return 1;switch(e<0&&(e=-e),e/a){case 1:case 3:return 0;case 2:return-1}return Math.cos(e)},sin:function(e){if(0===e)return 0;var t=1;switch(e<0&&(t=-1),e/a){case 1:return t;case 2:return 0;case 3:return-t}return Math.sin(e)},removeFromArray:function(e,t){var n=e.indexOf(t);return-1!==n&&e.splice(n,1),e},getRandomInt:function(e,t){return Math.floor(Math.random()*(t-e+1))+e},degreesToRadians:function(e){return e*o},radiansToDegrees:function(e){return e/o},rotatePoint:function(e,t,n){e.subtractEquals(t);var i=r.util.rotateVector(e,n);return new r.Point(i.x,i.y).addEquals(t)},rotateVector:function(e,t){var n=r.util.sin(t),i=r.util.cos(t);return{x:e.x*i-e.y*n,y:e.x*n+e.y*i}},transformPoint:function(e,t,n){return n?new r.Point(t[0]*e.x+t[2]*e.y,t[1]*e.x+t[3]*e.y):new r.Point(t[0]*e.x+t[2]*e.y+t[4],t[1]*e.x+t[3]*e.y+t[5])},makeBoundingBoxFromPoints:function(e,t){if(t)for(var n=0;n<e.length;n++)e[n]=r.util.transformPoint(e[n],t);var i=[e[0].x,e[1].x,e[2].x,e[3].x],o=r.util.array.min(i),a=r.util.array.max(i)-o,s=[e[0].y,e[1].y,e[2].y,e[3].y],u=r.util.array.min(s);return{left:o,top:u,width:a,height:r.util.array.max(s)-u}},invertTransform:function(e){var t=1/(e[0]*e[3]-e[1]*e[2]),n=[t*e[3],-t*e[1],-t*e[2],t*e[0]],i=r.util.transformPoint({x:e[4],y:e[5]},n,!0);return n[4]=-i.x,n[5]=-i.y,n},toFixed:function(e,t){return parseFloat(Number(e).toFixed(t))},parseUnit:function(e,t){var n=/\D{0,2}$/.exec(e),i=parseFloat(e);switch(t||(t=r.Text.DEFAULT_SVG_FONT_SIZE),n[0]){case"mm":return i*r.DPI/25.4;case"cm":return i*r.DPI/2.54;case"in":return i*r.DPI;case"pt":return i*r.DPI/72;case"pc":return i*r.DPI/72*12;case"em":return i*t;default:return i}},falseFunction:function(){return!1},getKlass:function(e,t){return e=r.util.string.camelize(e.charAt(0).toUpperCase()+e.slice(1)),r.util.resolveNamespace(t)[e]},getSvgAttributes:function(e){var t=["instantiated_by_use","style","id","class"];switch(e){case"linearGradient":t=t.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);break;case"radialGradient":t=t.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);break;case"stop":t=t.concat(["offset","stop-color","stop-opacity"])}return t},resolveNamespace:function(t){if(!t)return r;var n,i=t.split("."),o=i.length,a=e||r.window;for(n=0;n<o;++n)a=a[i[n]];return a},loadImage:function(e,t,n,i){if(e){var o=r.util.createImage(),a=function(){t&&t.call(n,o,!1),o=o.onload=o.onerror=null};o.onload=a,o.onerror=function(){r.log("Error loading "+o.src),t&&t.call(n,null,!0),o=o.onload=o.onerror=null},0!==e.indexOf("data")&&void 0!==i&&null!==i&&(o.crossOrigin=i),"data:image/svg"===e.substring(0,14)&&(o.onload=null,r.util.loadImageInDom(o,a)),o.src=e}else t&&t.call(n,e)},loadImageInDom:function(e,t){var n=r.document.createElement("div");n.style.width=n.style.height="1px",n.style.left=n.style.top="-100%",n.style.position="absolute",n.appendChild(e),r.document.querySelector("body").appendChild(n),e.onload=function(){t(),n.parentNode.removeChild(n),n=null}},enlivenObjects:function(e,t,n,i){var o=[],a=0,s=(e=e||[]).length;function u(){++a===s&&t&&t(o.filter((function(e){return e})))}s?e.forEach((function(e,t){e&&e.type?r.util.getKlass(e.type,n).fromObject(e,(function(n,r){r||(o[t]=n),i&&i(e,n,r),u()})):u()})):t&&t(o)},enlivenPatterns:function(e,t){function n(){++o===a&&t&&t(i)}var i=[],o=0,a=(e=e||[]).length;a?e.forEach((function(e,t){e&&e.source?new r.Pattern(e,(function(e){i[t]=e,n()})):(i[t]=e,n())})):t&&t(i)},groupSVGElements:function(e,t,n){var i;return e&&1===e.length?e[0]:(t&&(t.width&&t.height?t.centerPoint={x:t.width/2,y:t.height/2}:(delete t.width,delete t.height)),i=new r.Group(e,t),"undefined"!==typeof n&&(i.sourcePath=n),i)},populateWithProperties:function(e,t,n){if(n&&"[object Array]"===Object.prototype.toString.call(n))for(var i=0,r=n.length;i<r;i++)n[i]in e&&(t[n[i]]=e[n[i]])},drawDashedLine:function(e,i,r,o,a,s){var u=o-i,l=a-r,c=t(u*u+l*l),d=n(l,u),h=s.length,f=0,p=!0;for(e.save(),e.translate(i,r),e.moveTo(0,0),e.rotate(d),i=0;c>i;)(i+=s[f++%h])>c&&(i=c),e[p?"lineTo":"moveTo"](i,0),p=!p;e.restore()},createCanvasElement:function(){return r.document.createElement("canvas")},copyCanvasElement:function(e){var t=r.util.createCanvasElement();return t.width=e.width,t.height=e.height,t.getContext("2d").drawImage(e,0,0),t},toDataURL:function(e,t,n){return e.toDataURL("image/"+t,n)},createImage:function(){return r.document.createElement("img")},multiplyTransformMatrices:function(e,t,n){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],n?0:e[0]*t[4]+e[2]*t[5]+e[4],n?0:e[1]*t[4]+e[3]*t[5]+e[5]]},qrDecompose:function(e){var r=n(e[1],e[0]),a=i(e[0],2)+i(e[1],2),s=t(a),u=(e[0]*e[3]-e[2]*e[1])/s,l=n(e[0]*e[2]+e[1]*e[3],a);return{angle:r/o,scaleX:s,scaleY:u,skewX:l/o,skewY:0,translateX:e[4],translateY:e[5]}},calcRotateMatrix:function(e){if(!e.angle)return r.iMatrix.concat();var t=r.util.degreesToRadians(e.angle),n=r.util.cos(t),i=r.util.sin(t);return[n,i,-i,n,0,0]},calcDimensionsMatrix:function(e){var t="undefined"===typeof e.scaleX?1:e.scaleX,n="undefined"===typeof e.scaleY?1:e.scaleY,i=[e.flipX?-t:t,0,0,e.flipY?-n:n,0,0],o=r.util.multiplyTransformMatrices,a=r.util.degreesToRadians;return e.skewX&&(i=o(i,[1,0,Math.tan(a(e.skewX)),1],!0)),e.skewY&&(i=o(i,[1,Math.tan(a(e.skewY)),0,1],!0)),i},composeMatrix:function(e){var t=[1,0,0,1,e.translateX||0,e.translateY||0],n=r.util.multiplyTransformMatrices;return e.angle&&(t=n(t,r.util.calcRotateMatrix(e))),(1!==e.scaleX||1!==e.scaleY||e.skewX||e.skewY||e.flipX||e.flipY)&&(t=n(t,r.util.calcDimensionsMatrix(e))),t},resetObjectTransform:function(e){e.scaleX=1,e.scaleY=1,e.skewX=0,e.skewY=0,e.flipX=!1,e.flipY=!1,e.rotate(0)},saveObjectTransform:function(e){return{scaleX:e.scaleX,scaleY:e.scaleY,skewX:e.skewX,skewY:e.skewY,angle:e.angle,left:e.left,flipX:e.flipX,flipY:e.flipY,top:e.top}},isTransparent:function(e,t,n,i){i>0&&(t>i?t-=i:t=0,n>i?n-=i:n=0);var r,o=!0,a=e.getImageData(t,n,2*i||1,2*i||1),s=a.data.length;for(r=3;r<s&&!1!==(o=a.data[r]<=0);r+=4);return a=null,o},parsePreserveAspectRatioAttribute:function(e){var t,n="meet",i=e.split(" ");return i&&i.length&&("meet"!==(n=i.pop())&&"slice"!==n?(t=n,n="meet"):i.length&&(t=i.pop())),{meetOrSlice:n,alignX:"none"!==t?t.slice(1,4):"none",alignY:"none"!==t?t.slice(5,8):"none"}},clearFabricFontCache:function(e){(e=(e||"").toLowerCase())?r.charWidthsCache[e]&&delete r.charWidthsCache[e]:r.charWidthsCache={}},limitDimsByArea:function(e,t){var n=Math.sqrt(t*e),i=Math.floor(t/n);return{x:Math.floor(n),y:i}},capValue:function(e,t,n){return Math.max(e,Math.min(t,n))},findScaleToFit:function(e,t){return Math.min(t.width/e.width,t.height/e.height)},findScaleToCover:function(e,t){return Math.max(t.width/e.width,t.height/e.height)},matrixToSVG:function(e){return"matrix("+e.map((function(e){return r.util.toFixed(e,r.Object.NUM_FRACTION_DIGITS)})).join(" ")+")"},sizeAfterTransform:function(e,t,n){var i=e/2,o=t/2,a=[{x:-i,y:-o},{x:i,y:-o},{x:-i,y:o},{x:i,y:o}],s=r.util.calcDimensionsMatrix(n),u=r.util.makeBoundingBoxFromPoints(a,s);return{x:u.width,y:u.height}}}}(t),function(){var e=Array.prototype.join,t={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},n={m:"l",M:"L"};function i(e,t,n,i,o,a,s,u,l,c,d){var h=r.util.cos(e),f=r.util.sin(e),p=r.util.cos(t),g=r.util.sin(t),v=n*o*p-i*a*g+s,m=i*o*p+n*a*g+u;return["C",c+l*(-n*o*f-i*a*h),d+l*(-i*o*f+n*a*h),v+l*(n*o*g+i*a*p),m+l*(i*o*g-n*a*p),v,m]}function o(e,t,n,o,s,u,l){var c=Math.PI,d=l*c/180,h=r.util.sin(d),f=r.util.cos(d),p=0,g=0,v=-f*e*.5-h*t*.5,m=-f*t*.5+h*e*.5,_=(n=Math.abs(n))*n,y=(o=Math.abs(o))*o,b=m*m,w=v*v,C=_*y-_*b-y*w,k=0;if(C<0){var S=Math.sqrt(1-C/(_*y));n*=S,o*=S}else k=(s===u?-1:1)*Math.sqrt(C/(_*b+y*w));var x=k*n*m/o,L=-k*o*v/n,E=f*x-h*L+.5*e,N=h*x+f*L+.5*t,D=a(1,0,(v-x)/n,(m-L)/o),M=a((v-x)/n,(m-L)/o,(-v-x)/n,(-m-L)/o);0===u&&M>0?M-=2*c:1===u&&M<0&&(M+=2*c);for(var T=Math.ceil(Math.abs(M/c*2)),O=[],I=M/T,A=8/3*Math.sin(I/4)*Math.sin(I/4)/Math.sin(I/2),R=D+I,P=0;P<T;P++)O[P]=i(D,R,f,h,n,o,E,N,A,p,g),p=O[P][5],g=O[P][6],D=R,R+=I;return O}function a(e,t,n,i){var r=Math.atan2(t,e),o=Math.atan2(i,n);return o>=r?o-r:2*Math.PI-(r-o)}function s(t,n,i,o,a,s,u,l){var c;if(r.cachesBoundsOfCurve&&(c=e.call(arguments),r.boundsOfCurveCache[c]))return r.boundsOfCurveCache[c];var d,h,f,p,g,v,m,_,y=Math.sqrt,b=Math.min,w=Math.max,C=Math.abs,k=[],S=[[],[]];h=6*t-12*i+6*a,d=-3*t+9*i-9*a+3*u,f=3*i-3*t;for(var x=0;x<2;++x)if(x>0&&(h=6*n-12*o+6*s,d=-3*n+9*o-9*s+3*l,f=3*o-3*n),C(d)<1e-12){if(C(h)<1e-12)continue;0<(p=-f/h)&&p<1&&k.push(p)}else(m=h*h-4*f*d)<0||(0<(g=(-h+(_=y(m)))/(2*d))&&g<1&&k.push(g),0<(v=(-h-_)/(2*d))&&v<1&&k.push(v));for(var L,E,N,D=k.length,M=D;D--;)L=(N=1-(p=k[D]))*N*N*t+3*N*N*p*i+3*N*p*p*a+p*p*p*u,S[0][D]=L,E=N*N*N*n+3*N*N*p*o+3*N*p*p*s+p*p*p*l,S[1][D]=E;S[0][M]=t,S[1][M]=n,S[0][M+1]=u,S[1][M+1]=l;var T=[{x:b.apply(null,S[0]),y:b.apply(null,S[1])},{x:w.apply(null,S[0]),y:w.apply(null,S[1])}];return r.cachesBoundsOfCurve&&(r.boundsOfCurveCache[c]=T),T}function u(e,t,n){for(var i=n[1],r=n[2],a=n[3],s=n[4],u=n[5],l=o(n[6]-e,n[7]-t,i,r,s,u,a),c=0,d=l.length;c<d;c++)l[c][1]+=e,l[c][2]+=t,l[c][3]+=e,l[c][4]+=t,l[c][5]+=e,l[c][6]+=t;return l}function l(e,t,n,i){return Math.sqrt((n-e)*(n-e)+(i-t)*(i-t))}function c(e,t,n,i,r,o,a,s){return function(u){var l,c=(l=u)*l*l,d=function(e){return 3*e*e*(1-e)}(u),h=function(e){return 3*e*(1-e)*(1-e)}(u),f=function(e){return(1-e)*(1-e)*(1-e)}(u);return{x:a*c+r*d+n*h+e*f,y:s*c+o*d+i*h+t*f}}}function d(e,t,n,i,r,o){return function(a){var s,u=(s=a)*s,l=function(e){return 2*e*(1-e)}(a),c=function(e){return(1-e)*(1-e)}(a);return{x:r*u+n*l+e*c,y:o*u+i*l+t*c}}}function h(e,t,n){var i,r,o={x:t,y:n},a=0;for(r=.01;r<=1;r+=.01)i=e(r),a+=l(o.x,o.y,i.x,i.y),o=i;return a}function f(e){for(var t,n,i,r=0,o=e.length,a=0,s=0,u=0,f=0,p=[],g=0;g<o;g++){switch(i={x:a,y:s,command:(t=e[g])[0]},t[0]){case"M":i.length=0,u=a=t[1],f=s=t[2];break;case"L":i.length=l(a,s,t[1],t[2]),a=t[1],s=t[2];break;case"C":n=c(a,s,t[1],t[2],t[3],t[4],t[5],t[6]),i.length=h(n,a,s),a=t[5],s=t[6];break;case"Q":n=d(a,s,t[1],t[2],t[3],t[4]),i.length=h(n,a,s),a=t[3],s=t[4];break;case"Z":case"z":i.destX=u,i.destY=f,i.length=l(a,s,u,f),a=u,s=f}r+=i.length,p.push(i)}return p.push({length:r,x:a,y:s}),p}r.util.parsePath=function(e){var i,o,a,s,u,l=[],c=[],d=r.rePathCommand,h="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",f="("+h+")"+r.commaWsp,p="([01])"+r.commaWsp+"?",g=new RegExp(f+"?"+f+"?"+f+p+p+f+"?("+h+")","g");if(!e||!e.match)return l;for(var v,m=0,_=(u=e.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi)).length;m<_;m++){s=(i=u[m]).slice(1).trim(),c.length=0;var y=i.charAt(0);if(v=[y],"a"===y.toLowerCase())for(var b;b=g.exec(s);)for(var w=1;w<b.length;w++)c.push(b[w]);else for(;a=d.exec(s);)c.push(a[0]);w=0;for(var C=c.length;w<C;w++)o=parseFloat(c[w]),isNaN(o)||v.push(o);var k=t[y.toLowerCase()],S=n[y]||y;if(v.length-1>k)for(var x=1,L=v.length;x<L;x+=k)l.push([y].concat(v.slice(x,x+k))),y=S;else l.push(v)}return l},r.util.makePathSimpler=function(e){var t,n,i,r,o,a,s=0,l=0,c=e.length,d=0,h=0,f=[];for(n=0;n<c;++n){switch(i=!1,(t=e[n].slice(0))[0]){case"l":t[0]="L",t[1]+=s,t[2]+=l;case"L":s=t[1],l=t[2];break;case"h":t[1]+=s;case"H":t[0]="L",t[2]=l,s=t[1];break;case"v":t[1]+=l;case"V":t[0]="L",l=t[1],t[1]=s,t[2]=l;break;case"m":t[0]="M",t[1]+=s,t[2]+=l;case"M":s=t[1],l=t[2],d=t[1],h=t[2];break;case"c":t[0]="C",t[1]+=s,t[2]+=l,t[3]+=s,t[4]+=l,t[5]+=s,t[6]+=l;case"C":o=t[3],a=t[4],s=t[5],l=t[6];break;case"s":t[0]="S",t[1]+=s,t[2]+=l,t[3]+=s,t[4]+=l;case"S":"C"===r?(o=2*s-o,a=2*l-a):(o=s,a=l),s=t[3],l=t[4],t[0]="C",t[5]=t[3],t[6]=t[4],t[3]=t[1],t[4]=t[2],t[1]=o,t[2]=a,o=t[3],a=t[4];break;case"q":t[0]="Q",t[1]+=s,t[2]+=l,t[3]+=s,t[4]+=l;case"Q":o=t[1],a=t[2],s=t[3],l=t[4];break;case"t":t[0]="T",t[1]+=s,t[2]+=l;case"T":"Q"===r?(o=2*s-o,a=2*l-a):(o=s,a=l),t[0]="Q",s=t[1],l=t[2],t[1]=o,t[2]=a,t[3]=s,t[4]=l;break;case"a":t[0]="A",t[6]+=s,t[7]+=l;case"A":i=!0,f=f.concat(u(s,l,t)),s=t[6],l=t[7];break;case"z":case"Z":s=d,l=h}i||f.push(t),r=t[0]}return f},r.util.getPathSegmentsInfo=f,r.util.fromArcToBeizers=u,r.util.getBoundsOfCurve=s,r.util.getPointOnPath=function(e,t,n){n||(n=f(e));for(var i=n[n.length-1]*t,o=0;i-n[o]>0&&o<n.length;)i-=n[o],o++;var a=n[o],s=i/a.length,u=a.length,l=e[o];switch(u){case"Z":case"z":return new r.Point(a.x,a.y).lerp(new r.Point(a.destX,a.destY),s);case"L":return new r.Point(a.x,a.y).lerp(new r.Point(l[1],l[2]),s);case"C":return c(a.x,a.y,l[1],l[2],l[3],l[4],l[5],l[6])(s);case"Q":return d(a.x,a.y,l[1],l[2],l[3],l[4])(s)}},r.util.getBoundsOfArc=function(e,t,n,i,r,a,u,l,c){for(var d,h=0,f=0,p=[],g=o(l-e,c-t,n,i,a,u,r),v=0,m=g.length;v<m;v++)d=s(h,f,g[v][1],g[v][2],g[v][3],g[v][4],g[v][5],g[v][6]),p.push({x:d[0].x+e,y:d[0].y+t}),p.push({x:d[1].x+e,y:d[1].y+t}),h=g[v][5],f=g[v][6];return p},r.util.drawArc=function(e,t,n,i){u(t,n,i=i.slice(0).unshift("X")).forEach((function(t){e.bezierCurveTo.apply(e,t.slice(1))}))}}(),function(){var e=Array.prototype.slice;function t(e,t,n){if(e&&0!==e.length){var i=e.length-1,r=t?e[i][t]:e[i];if(t)for(;i--;)n(e[i][t],r)&&(r=e[i][t]);else for(;i--;)n(e[i],r)&&(r=e[i]);return r}}r.util.array={fill:function(e,t){for(var n=e.length;n--;)e[n]=t;return e},invoke:function(t,n){for(var i=e.call(arguments,2),r=[],o=0,a=t.length;o<a;o++)r[o]=i.length?t[o][n].apply(t[o],i):t[o][n].call(t[o]);return r},min:function(e,n){return t(e,n,(function(e,t){return e<t}))},max:function(e,n){return t(e,n,(function(e,t){return e>=t}))}}}(),function(){function e(t,n,i){if(i)if(!r.isLikelyNode&&n instanceof Element)t=n;else if(n instanceof Array){t=[];for(var o=0,a=n.length;o<a;o++)t[o]=e({},n[o],i)}else if(n&&"object"===typeof n)for(var s in n)"canvas"===s||"group"===s?t[s]=null:n.hasOwnProperty(s)&&(t[s]=e({},n[s],i));else t=n;else for(var s in n)t[s]=n[s];return t}r.util.object={extend:e,clone:function(t,n){return e({},t,n)}},r.util.object.extend(r.util,r.Observable)}(),function(){function e(e,t){var n=e.charCodeAt(t);if(isNaN(n))return"";if(n<55296||n>57343)return e.charAt(t);if(55296<=n&&n<=56319){if(e.length<=t+1)throw"High surrogate without following low surrogate";var i=e.charCodeAt(t+1);if(56320>i||i>57343)throw"High surrogate without following low surrogate";return e.charAt(t)+e.charAt(t+1)}if(0===t)throw"Low surrogate without preceding high surrogate";var r=e.charCodeAt(t-1);if(55296>r||r>56319)throw"Low surrogate without preceding high surrogate";return!1}r.util.string={camelize:function(e){return e.replace(/-+(.)?/g,(function(e,t){return t?t.toUpperCase():""}))},capitalize:function(e,t){return e.charAt(0).toUpperCase()+(t?e.slice(1):e.slice(1).toLowerCase())},escapeXml:function(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},graphemeSplit:function(t){var n,i=0,r=[];for(i=0;i<t.length;i++)!1!==(n=e(t,i))&&r.push(n);return r}}}(),function(){var e=Array.prototype.slice,t=function(){},n=function(){for(var e in{toString:1})if("toString"===e)return!1;return!0}(),i=function(e,t,i){for(var r in t)r in e.prototype&&"function"===typeof e.prototype[r]&&(t[r]+"").indexOf("callSuper")>-1?e.prototype[r]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=i;var r=t[e].apply(this,arguments);if(this.constructor.superclass=n,"initialize"!==e)return r}}(r):e.prototype[r]=t[r],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};function o(){}function a(t){for(var n=null,i=this;i.constructor.superclass;){var r=i.constructor.superclass.prototype[t];if(i[t]!==r){n=r;break}i=i.constructor.superclass.prototype}return n?arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this):console.log("tried to callSuper "+t+", method not found in prototype chain",this)}r.util.createClass=function(){var n=null,r=e.call(arguments,0);function s(){this.initialize.apply(this,arguments)}"function"===typeof r[0]&&(n=r.shift()),s.superclass=n,s.subclasses=[],n&&(o.prototype=n.prototype,s.prototype=new o,n.subclasses.push(s));for(var u=0,l=r.length;u<l;u++)i(s,r[u],n);return s.prototype.initialize||(s.prototype.initialize=t),s.prototype.constructor=s,s.prototype.callSuper=a,s}}(),function(){var e=!!r.document.createElement("div").attachEvent,t=["touchstart","touchmove","touchend"];r.util.addListener=function(t,n,i,r){t&&t.addEventListener(n,i,!e&&r)},r.util.removeListener=function(t,n,i,r){t&&t.removeEventListener(n,i,!e&&r)},r.util.getPointer=function(e){var t=e.target,n=r.util.getScrollLeftTop(t),i=function(e){var t=e.changedTouches;return t&&t[0]?t[0]:e}(e);return{x:i.clientX+n.left,y:i.clientY+n.top}},r.util.isTouchEvent=function(e){return t.indexOf(e.type)>-1||"touch"===e.pointerType}}(),function(){var e=r.document.createElement("div"),t="string"===typeof e.style.opacity,n="string"===typeof e.style.filter,i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,o=function(e){return e};t?o=function(e,t){return e.style.opacity=t,e}:n&&(o=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+100*t+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+100*t+")",e}),r.util.setStyle=function(e,t){var n=e.style;if(!n)return e;if("string"===typeof t)return e.style.cssText+=";"+t,t.indexOf("opacity")>-1?o(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var i in t){if("opacity"===i)o(e,t[i]);else n["float"===i||"cssFloat"===i?"undefined"===typeof n.styleFloat?"cssFloat":"styleFloat":i]=t[i]}return e}}(),function(){var e=Array.prototype.slice;var t,n,i=function(t){return e.call(t,0)};try{t=i(r.document.childNodes)instanceof Array}catch(s){}function o(e,t){var n=r.document.createElement(e);for(var i in t)"class"===i?n.className=t[i]:"for"===i?n.htmlFor=t[i]:n.setAttribute(i,t[i]);return n}function a(e){for(var t=0,n=0,i=r.document.documentElement,o=r.document.body||{scrollLeft:0,scrollTop:0};e&&(e.parentNode||e.host)&&((e=e.parentNode||e.host)===r.document?(t=o.scrollLeft||i.scrollLeft||0,n=o.scrollTop||i.scrollTop||0):(t+=e.scrollLeft||0,n+=e.scrollTop||0),1!==e.nodeType||"fixed"!==e.style.position););return{left:t,top:n}}t||(i=function(e){for(var t=new Array(e.length),n=e.length;n--;)t[n]=e[n];return t}),n=r.document.defaultView&&r.document.defaultView.getComputedStyle?function(e,t){var n=r.document.defaultView.getComputedStyle(e,null);return n?n[t]:void 0}:function(e,t){var n=e.style[t];return!n&&e.currentStyle&&(n=e.currentStyle[t]),n},function(){var e=r.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";r.util.makeElementUnselectable=function(e){return"undefined"!==typeof e.onselectstart&&(e.onselectstart=r.util.falseFunction),t?e.style[t]="none":"string"===typeof e.unselectable&&(e.unselectable="on"),e},r.util.makeElementSelectable=function(e){return"undefined"!==typeof e.onselectstart&&(e.onselectstart=null),t?e.style[t]="":"string"===typeof e.unselectable&&(e.unselectable=""),e}}(),r.util.setImageSmoothing=function(e,t){e.imageSmoothingEnabled=e.imageSmoothingEnabled||e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled||e.oImageSmoothingEnabled,e.imageSmoothingEnabled=t},r.util.getById=function(e){return"string"===typeof e?r.document.getElementById(e):e},r.util.toArray=i,r.util.addClass=function(e,t){e&&-1===(" "+e.className+" ").indexOf(" "+t+" ")&&(e.className+=(e.className?" ":"")+t)},r.util.makeElement=o,r.util.wrapElement=function(e,t,n){return"string"===typeof t&&(t=o(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t},r.util.getScrollLeftTop=a,r.util.getElementOffset=function(e){var t,i,r=e&&e.ownerDocument,o={left:0,top:0},s={left:0,top:0},u={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!r)return s;for(var l in u)s[u[l]]+=parseInt(n(e,l),10)||0;return t=r.documentElement,"undefined"!==typeof e.getBoundingClientRect&&(o=e.getBoundingClientRect()),i=a(e),{left:o.left+i.left-(t.clientLeft||0)+s.left,top:o.top+i.top-(t.clientTop||0)+s.top}},r.util.getNodeCanvas=function(e){var t=r.jsdomImplForWrapper(e);return t._canvas||t._image},r.util.cleanUpJsdomNode=function(e){if(r.isLikelyNode){var t=r.jsdomImplForWrapper(e);t&&(t._image=null,t._canvas=null,t._currentSrc=null,t._attributes=null,t._classList=null)}}}(),function(){function e(){}r.util.request=function(t,n){n||(n={});var i=n.method?n.method.toUpperCase():"GET",o=n.onComplete||function(){},a=new r.window.XMLHttpRequest,s=n.body||n.parameters;return a.onreadystatechange=function(){4===a.readyState&&(o(a),a.onreadystatechange=e)},"GET"===i&&(s=null,"string"===typeof n.parameters&&(t=function(e,t){return e+(/\?/.test(e)?"&":"?")+t}(t,n.parameters))),a.open(i,t,!0),"POST"!==i&&"PUT"!==i||a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),a.send(s),a}}(),r.log=console.log,r.warn=console.warn,function(){function e(){return!1}function t(e,t,n,i){return-n*Math.cos(e/i*(Math.PI/2))+n+t}var n=r.window.requestAnimationFrame||r.window.webkitRequestAnimationFrame||r.window.mozRequestAnimationFrame||r.window.oRequestAnimationFrame||r.window.msRequestAnimationFrame||function(e){return r.window.setTimeout(e,1e3/60)},i=r.window.cancelAnimationFrame||r.window.clearTimeout;function o(){return n.apply(r.window,arguments)}r.util.animate=function(n){o((function(i){n||(n={});var r,a=i||+new Date,s=n.duration||500,u=a+s,l=n.onChange||e,c=n.abort||e,d=n.onComplete||e,h=n.easing||t,f="startValue"in n?n.startValue:0,p="endValue"in n?n.endValue:100,g=n.byValue||p-f;n.onStart&&n.onStart(),function e(t){var n=(r=t||+new Date)>u?s:r-a,i=n/s,v=h(n,f,g,s),m=Math.abs((v-f)/g);if(!c())return r>u?(l(p,1,1),void d(p,1,1)):(l(v,m,i),void o(e));d(p,1,1)}(a)}))},r.util.requestAnimFrame=o,r.util.cancelAnimFrame=function(){return i.apply(r.window,arguments)}}(),function(){function e(e,t,n){var i="rgba("+parseInt(e[0]+n*(t[0]-e[0]),10)+","+parseInt(e[1]+n*(t[1]-e[1]),10)+","+parseInt(e[2]+n*(t[2]-e[2]),10);return i+=","+(e&&t?parseFloat(e[3]+n*(t[3]-e[3])):1),i+=")"}r.util.animateColor=function(t,n,i,o){var a=new r.Color(t).getSource(),s=new r.Color(n).getSource(),u=o.onComplete,l=o.onChange;o=o||{},r.util.animate(r.util.object.extend(o,{duration:i||500,startValue:a,endValue:s,byValue:s,easing:function(t,n,i,r){return e(n,i,o.colorEasing?o.colorEasing(t,r):1-Math.cos(t/r*(Math.PI/2)))},onComplete:function(t,n,i){if(u)return u(e(s,s,0),n,i)},onChange:function(t,n,i){if(l){if(Array.isArray(t))return l(e(t,t,0),n,i);l(t,n,i)}}}))}}(),function(){function e(e,t,n,i){return e<Math.abs(t)?(e=t,i=n/4):i=0===t&&0===e?n/(2*Math.PI)*Math.asin(1):n/(2*Math.PI)*Math.asin(t/e),{a:e,c:t,p:n,s:i}}function t(e,t,n){return e.a*Math.pow(2,10*(t-=1))*Math.sin((t*n-e.s)*(2*Math.PI)/e.p)}function n(e,t,n,r){return n-i(r-e,0,n,r)+t}function i(e,t,n,i){return(e/=i)<1/2.75?n*(7.5625*e*e)+t:e<2/2.75?n*(7.5625*(e-=1.5/2.75)*e+.75)+t:e<2.5/2.75?n*(7.5625*(e-=2.25/2.75)*e+.9375)+t:n*(7.5625*(e-=2.625/2.75)*e+.984375)+t}r.util.ease={easeInQuad:function(e,t,n,i){return n*(e/=i)*e+t},easeOutQuad:function(e,t,n,i){return-n*(e/=i)*(e-2)+t},easeInOutQuad:function(e,t,n,i){return(e/=i/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t},easeInCubic:function(e,t,n,i){return n*(e/=i)*e*e+t},easeOutCubic:function(e,t,n,i){return n*((e=e/i-1)*e*e+1)+t},easeInOutCubic:function(e,t,n,i){return(e/=i/2)<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t},easeInQuart:function(e,t,n,i){return n*(e/=i)*e*e*e+t},easeOutQuart:function(e,t,n,i){return-n*((e=e/i-1)*e*e*e-1)+t},easeInOutQuart:function(e,t,n,i){return(e/=i/2)<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t},easeInQuint:function(e,t,n,i){return n*(e/=i)*e*e*e*e+t},easeOutQuint:function(e,t,n,i){return n*((e=e/i-1)*e*e*e*e+1)+t},easeInOutQuint:function(e,t,n,i){return(e/=i/2)<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t},easeInSine:function(e,t,n,i){return-n*Math.cos(e/i*(Math.PI/2))+n+t},easeOutSine:function(e,t,n,i){return n*Math.sin(e/i*(Math.PI/2))+t},easeInOutSine:function(e,t,n,i){return-n/2*(Math.cos(Math.PI*e/i)-1)+t},easeInExpo:function(e,t,n,i){return 0===e?t:n*Math.pow(2,10*(e/i-1))+t},easeOutExpo:function(e,t,n,i){return e===i?t+n:n*(1-Math.pow(2,-10*e/i))+t},easeInOutExpo:function(e,t,n,i){return 0===e?t:e===i?t+n:(e/=i/2)<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(2-Math.pow(2,-10*--e))+t},easeInCirc:function(e,t,n,i){return-n*(Math.sqrt(1-(e/=i)*e)-1)+t},easeOutCirc:function(e,t,n,i){return n*Math.sqrt(1-(e=e/i-1)*e)+t},easeInOutCirc:function(e,t,n,i){return(e/=i/2)<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t},easeInElastic:function(n,i,r,o){var a=0;return 0===n?i:1===(n/=o)?i+r:(a||(a=.3*o),-t(e(r,r,a,1.70158),n,o)+i)},easeOutElastic:function(t,n,i,r){var o=0;if(0===t)return n;if(1===(t/=r))return n+i;o||(o=.3*r);var a=e(i,i,o,1.70158);return a.a*Math.pow(2,-10*t)*Math.sin((t*r-a.s)*(2*Math.PI)/a.p)+a.c+n},easeInOutElastic:function(n,i,r,o){var a=0;if(0===n)return i;if(2===(n/=o/2))return i+r;a||(a=o*(.3*1.5));var s=e(r,r,a,1.70158);return n<1?-.5*t(s,n,o)+i:s.a*Math.pow(2,-10*(n-=1))*Math.sin((n*o-s.s)*(2*Math.PI)/s.p)*.5+s.c+i},easeInBack:function(e,t,n,i,r){return void 0===r&&(r=1.70158),n*(e/=i)*e*((r+1)*e-r)+t},easeOutBack:function(e,t,n,i,r){return void 0===r&&(r=1.70158),n*((e=e/i-1)*e*((r+1)*e+r)+1)+t},easeInOutBack:function(e,t,n,i,r){return void 0===r&&(r=1.70158),(e/=i/2)<1?n/2*(e*e*((1+(r*=1.525))*e-r))+t:n/2*((e-=2)*e*((1+(r*=1.525))*e+r)+2)+t},easeInBounce:n,easeOutBounce:i,easeInOutBounce:function(e,t,r,o){return e<o/2?.5*n(2*e,0,r,o)+t:.5*i(2*e-o,0,r,o)+.5*r+t}}}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.util.object.clone,r=t.util.toFixed,o=t.util.parseUnit,a=t.util.multiplyTransformMatrices,s={cx:"left",x:"left",r:"radius",cy:"top",y:"top",display:"visible",visibility:"visible",transform:"transformMatrix","fill-opacity":"fillOpacity","fill-rule":"fillRule","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","letter-spacing":"charSpacing","paint-order":"paintFirst","stroke-dasharray":"strokeDashArray","stroke-dashoffset":"strokeDashOffset","stroke-linecap":"strokeLineCap","stroke-linejoin":"strokeLineJoin","stroke-miterlimit":"strokeMiterLimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-decoration":"textDecoration","text-anchor":"textAnchor",opacity:"opacity","clip-path":"clipPath","clip-rule":"clipRule","vector-effect":"strokeUniform","image-rendering":"imageSmoothing"},u={stroke:"strokeOpacity",fill:"fillOpacity"},l="font-size",c="clip-path";function d(e){return e in s?s[e]:e}function h(e,n,i,r){var s,u="[object Array]"===Object.prototype.toString.call(n);if("fill"!==e&&"stroke"!==e||"none"!==n){if("strokeUniform"===e)return"non-scaling-stroke"===n;if("strokeDashArray"===e)n="none"===n?null:n.replace(/,/g," ").split(/\s+/).map(parseFloat);else if("transformMatrix"===e)n=i&&i.transformMatrix?a(i.transformMatrix,t.parseTransformAttribute(n)):t.parseTransformAttribute(n);else if("visible"===e)n="none"!==n&&"hidden"!==n,i&&!1===i.visible&&(n=!1);else if("opacity"===e)n=parseFloat(n),i&&"undefined"!==typeof i.opacity&&(n*=i.opacity);else if("textAnchor"===e)n="start"===n?"left":"end"===n?"right":"center";else if("charSpacing"===e)s=o(n,r)/r*1e3;else if("paintFirst"===e){var l=n.indexOf("fill"),c=n.indexOf("stroke");n="fill";(l>-1&&c>-1&&c<l||-1===l&&c>-1)&&(n="stroke")}else{if("href"===e||"xlink:href"===e||"font"===e)return n;if("imageSmoothing"===e)return"optimizeQuality"===n;s=u?n.map(o):o(n,r)}}else n="";return!u&&isNaN(s)?n:s}function f(e){return new RegExp("^("+e.join("|")+")\\b","i")}function p(e,t){var n,i,r,o,a=[];for(r=0,o=t.length;r<o;r++)n=t[r],i=e.getElementsByTagName(n),a=a.concat(Array.prototype.slice.call(i));return a}function g(e,t){var n,i=!0;return(n=v(e,t.pop()))&&t.length&&(i=function(e,t){var n,i=!0;for(;e.parentNode&&1===e.parentNode.nodeType&&t.length;)i&&(n=t.pop()),i=v(e=e.parentNode,n);return 0===t.length}(e,t)),n&&i&&0===t.length}function v(e,t){var n,i,r=e.nodeName,o=e.getAttribute("class"),a=e.getAttribute("id");if(n=new RegExp("^"+r,"i"),t=t.replace(n,""),a&&t.length&&(n=new RegExp("#"+a+"(?![a-zA-Z\\-]+)","i"),t=t.replace(n,"")),o&&t.length)for(i=(o=o.split(" ")).length;i--;)n=new RegExp("\\."+o[i]+"(?![a-zA-Z\\-]+)","i"),t=t.replace(n,"");return 0===t.length}function m(e,t){var n;if(e.getElementById&&(n=e.getElementById(t)),n)return n;var i,r,o,a=e.getElementsByTagName("*");for(r=0,o=a.length;r<o;r++)if(t===(i=a[r]).getAttribute("id"))return i}t.svgValidTagNamesRegEx=f(["path","circle","polygon","polyline","ellipse","rect","line","image","text"]),t.svgViewBoxElementsRegEx=f(["symbol","image","marker","pattern","view","svg"]),t.svgInvalidAncestorsRegEx=f(["pattern","defs","symbol","metadata","clipPath","mask","desc"]),t.svgValidParentsRegEx=f(["symbol","g","a","svg","clipPath","defs"]),t.cssRules={},t.gradientDefs={},t.clipPaths={},t.parseTransformAttribute=function(){function e(e,n,i){e[i]=Math.tan(t.util.degreesToRadians(n[0]))}var n=t.iMatrix,i=t.reNum,r=t.commaWsp,o="(?:"+("(?:(matrix)\\s*\\(\\s*("+i+")"+r+"("+i+")"+r+"("+i+")"+r+"("+i+")"+r+"("+i+")"+r+"("+i+")\\s*\\))")+"|"+("(?:(translate)\\s*\\(\\s*("+i+")(?:"+r+"("+i+"))?\\s*\\))")+"|"+("(?:(scale)\\s*\\(\\s*("+i+")(?:"+r+"("+i+"))?\\s*\\))")+"|"+("(?:(rotate)\\s*\\(\\s*("+i+")(?:"+r+"("+i+")"+r+"("+i+"))?\\s*\\))")+"|"+("(?:(skewX)\\s*\\(\\s*("+i+")\\s*\\))")+"|"+("(?:(skewY)\\s*\\(\\s*("+i+")\\s*\\))")+")",a=new RegExp("^\\s*(?:"+("(?:"+o+"(?:"+r+"*"+o+")*)")+"?)\\s*$"),s=new RegExp(o,"g");return function(i){var r=n.concat(),u=[];if(!i||i&&!a.test(i))return r;i.replace(s,(function(i){var a=new RegExp(o).exec(i).filter((function(e){return!!e})),s=a[1],l=a.slice(2).map(parseFloat);switch(s){case"translate":!function(e,t){e[4]=t[0],2===t.length&&(e[5]=t[1])}(r,l);break;case"rotate":l[0]=t.util.degreesToRadians(l[0]),function(e,n){var i=t.util.cos(n[0]),r=t.util.sin(n[0]),o=0,a=0;3===n.length&&(o=n[1],a=n[2]),e[0]=i,e[1]=r,e[2]=-r,e[3]=i,e[4]=o-(i*o-r*a),e[5]=a-(r*o+i*a)}(r,l);break;case"scale":!function(e,t){var n=t[0],i=2===t.length?t[1]:t[0];e[0]=n,e[3]=i}(r,l);break;case"skewX":e(r,l,2);break;case"skewY":e(r,l,1);break;case"matrix":r=l}u.push(r.concat()),r=n.concat()}));for(var l=u[0];u.length>1;)u.shift(),l=t.util.multiplyTransformMatrices(l,u[0]);return l}}();var _=new RegExp("^\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*$");function y(e){if(t.svgViewBoxElementsRegEx.test(e.nodeName)){var n,i,r,a,s,u,l=e.getAttribute("viewBox"),c=1,d=1,h=e.getAttribute("width"),f=e.getAttribute("height"),p=e.getAttribute("x")||0,g=e.getAttribute("y")||0,v=e.getAttribute("preserveAspectRatio")||"",m=!l||!(l=l.match(_)),y=!h||!f||"100%"===h||"100%"===f,b=m&&y,w={},C="",k=0,S=0;if(w.width=0,w.height=0,w.toBeParsed=b,m&&(p||g)&&"#document"!==e.parentNode.nodeName&&(C=" translate("+o(p)+" "+o(g)+") ",s=(e.getAttribute("transform")||"")+C,e.setAttribute("transform",s),e.removeAttribute("x"),e.removeAttribute("y")),b)return w;if(m)return w.width=o(h),w.height=o(f),w;if(n=-parseFloat(l[1]),i=-parseFloat(l[2]),r=parseFloat(l[3]),a=parseFloat(l[4]),w.minX=n,w.minY=i,w.viewBoxWidth=r,w.viewBoxHeight=a,y?(w.width=r,w.height=a):(w.width=o(h),w.height=o(f),c=w.width/r,d=w.height/a),"none"!==(v=t.util.parsePreserveAspectRatioAttribute(v)).alignX&&("meet"===v.meetOrSlice&&(d=c=c>d?d:c),"slice"===v.meetOrSlice&&(d=c=c>d?c:d),k=w.width-r*c,S=w.height-a*c,"Mid"===v.alignX&&(k/=2),"Mid"===v.alignY&&(S/=2),"Min"===v.alignX&&(k=0),"Min"===v.alignY&&(S=0)),1===c&&1===d&&0===n&&0===i&&0===p&&0===g)return w;if((p||g)&&"#document"!==e.parentNode.nodeName&&(C=" translate("+o(p)+" "+o(g)+") "),s=C+" matrix("+c+" 0 0 "+d+" "+(n*c+k)+" "+(i*d+S)+") ","svg"===e.nodeName){for(u=e.ownerDocument.createElementNS(t.svgNS,"g");e.firstChild;)u.appendChild(e.firstChild);e.appendChild(u)}else(u=e).removeAttribute("x"),u.removeAttribute("y"),s=u.getAttribute("transform")+s;return u.setAttribute("transform",s),w}}function b(e,t){var n="xlink:href",i=m(e,t.getAttribute(n).substr(1));if(i&&i.getAttribute(n)&&b(e,i),["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"].forEach((function(e){i&&!t.hasAttribute(e)&&i.hasAttribute(e)&&t.setAttribute(e,i.getAttribute(e))})),!t.children.length)for(var r=i.cloneNode(!0);r.firstChild;)t.appendChild(r.firstChild);t.removeAttribute(n)}t.parseSVGDocument=function(e,n,r,o){if(e){!function(e){for(var n=p(e,["use","svg:use"]),i=0;n.length&&i<n.length;){var r,o,a,s,u=n[i],l=(u.getAttribute("xlink:href")||u.getAttribute("href")).substr(1),c=u.getAttribute("x")||0,d=u.getAttribute("y")||0,h=m(e,l).cloneNode(!0),f=(h.getAttribute("transform")||"")+" translate("+c+", "+d+")",g=n.length,v=t.svgNS;if(y(h),/^svg$/i.test(h.nodeName)){var _=h.ownerDocument.createElementNS(v,"g");for(o=0,s=(a=h.attributes).length;o<s;o++)r=a.item(o),_.setAttributeNS(v,r.nodeName,r.nodeValue);for(;h.firstChild;)_.appendChild(h.firstChild);h=_}for(o=0,s=(a=u.attributes).length;o<s;o++)"x"!==(r=a.item(o)).nodeName&&"y"!==r.nodeName&&"xlink:href"!==r.nodeName&&"href"!==r.nodeName&&("transform"===r.nodeName?f=r.nodeValue+" "+f:h.setAttribute(r.nodeName,r.nodeValue));h.setAttribute("transform",f),h.setAttribute("instantiated_by_use","1"),h.removeAttribute("id"),u.parentNode.replaceChild(h,u),n.length===g&&i++}}(e);var a,s,u=t.Object.__uid++,l=y(e),c=t.util.toArray(e.getElementsByTagName("*"));if(l.crossOrigin=o&&o.crossOrigin,l.svgUid=u,0===c.length&&t.isLikelyNode){var d=[];for(a=0,s=(c=e.selectNodes('//*[name(.)!="svg"]')).length;a<s;a++)d[a]=c[a];c=d}var h=c.filter((function(e){return y(e),t.svgValidTagNamesRegEx.test(e.nodeName.replace("svg:",""))&&!function(e,t){for(;e&&(e=e.parentNode);)if(e.nodeName&&t.test(e.nodeName.replace("svg:",""))&&!e.getAttribute("instantiated_by_use"))return!0;return!1}(e,t.svgInvalidAncestorsRegEx)}));if(!h||h&&!h.length)n&&n([],{});else{var f={};c.filter((function(e){return"clipPath"===e.nodeName.replace("svg:","")})).forEach((function(e){var n=e.getAttribute("id");f[n]=t.util.toArray(e.getElementsByTagName("*")).filter((function(e){return t.svgValidTagNamesRegEx.test(e.nodeName.replace("svg:",""))}))})),t.gradientDefs[u]=t.getGradientDefs(e),t.cssRules[u]=t.getCSSRules(e),t.clipPaths[u]=f,t.parseElements(h,(function(e,i){n&&(n(e,l,i,c),delete t.gradientDefs[u],delete t.cssRules[u],delete t.clipPaths[u])}),i(l),r,o)}}};var w=new RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+t.reNum+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+t.reNum+"))?\\s+(.*)");n(t,{parseFontDeclaration:function(e,t){var n=e.match(w);if(n){var i=n[1],r=n[3],a=n[4],s=n[5],u=n[6];i&&(t.fontStyle=i),r&&(t.fontWeight=isNaN(parseFloat(r))?r:parseFloat(r)),a&&(t.fontSize=o(a)),u&&(t.fontFamily=u),s&&(t.lineHeight="normal"===s?1:s)}},getGradientDefs:function(e){var t,n=p(e,["linearGradient","radialGradient","svg:linearGradient","svg:radialGradient"]),i=0,r={};for(i=n.length;i--;)(t=n[i]).getAttribute("xlink:href")&&b(e,t),r[t.getAttribute("id")]=t;return r},parseAttributes:function(e,i,a){if(e){var s,f,p,v={};"undefined"===typeof a&&(a=e.getAttribute("svgUid")),e.parentNode&&t.svgValidParentsRegEx.test(e.parentNode.nodeName)&&(v=t.parseAttributes(e.parentNode,i,a));var m=i.reduce((function(t,n){return(s=e.getAttribute(n))&&(t[n]=s),t}),{}),_=n(function(e,n){var i={};for(var r in t.cssRules[n])if(g(e,r.split(" ")))for(var o in t.cssRules[n][r])i[o]=t.cssRules[n][r][o];return i}(e,a),t.parseStyleAttribute(e));m=n(m,_),_[c]&&e.setAttribute(c,_[c]),f=p=v.fontSize||t.Text.DEFAULT_SVG_FONT_SIZE,m[l]&&(m[l]=f=o(m[l],p));var y,b,w={};for(var C in m)b=h(y=d(C),m[C],v,f),w[y]=b;w&&w.font&&t.parseFontDeclaration(w.font,w);var k=n(v,w);return t.svgValidParentsRegEx.test(e.nodeName)?k:function(e){for(var n in u)if("undefined"!==typeof e[u[n]]&&""!==e[n]){if("undefined"===typeof e[n]){if(!t.Object.prototype[n])continue;e[n]=t.Object.prototype[n]}if(0!==e[n].indexOf("url(")){var i=new t.Color(e[n]);e[n]=i.setAlpha(r(i.getAlpha()*e[u[n]],2)).toRgba()}}return e}(k)}},parseElements:function(e,n,i,r,o){new t.ElementsParser(e,n,i,r,o).parse()},parseStyleAttribute:function(e){var t={},n=e.getAttribute("style");return n?("string"===typeof n?function(e,t){var n,i;e.replace(/;\s*$/,"").split(";").forEach((function(e){var r=e.split(":");n=r[0].trim().toLowerCase(),i=r[1].trim(),t[n]=i}))}(n,t):function(e,t){var n,i;for(var r in e)"undefined"!==typeof e[r]&&(n=r.toLowerCase(),i=e[r],t[n]=i)}(n,t),t):t},parsePointsAttribute:function(e){if(!e)return null;var t,n,i=[];for(t=0,n=(e=(e=e.replace(/,/g," ").trim()).split(/\s+/)).length;t<n;t+=2)i.push({x:parseFloat(e[t]),y:parseFloat(e[t+1])});return i},getCSSRules:function(e){var n,i,r=e.getElementsByTagName("style"),o={};for(n=0,i=r.length;n<i;n++){var a=r[n].textContent||"";""!==(a=a.replace(/\/\*[\s\S]*?\*\//g,"")).trim()&&a.match(/[^{]*\{[\s\S]*?\}/g).map((function(e){return e.trim()})).forEach((function(e){var r=e.match(/([\s\S]*?)\s*\{([^}]*)\}/),a={},s=r[2].trim().replace(/;$/,"").split(/\s*;\s*/);for(n=0,i=s.length;n<i;n++){var u=s[n].split(/\s*:\s*/),l=u[0],c=u[1];a[l]=c}(e=r[1]).split(",").forEach((function(e){""!==(e=e.replace(/^svg/i,"").trim())&&(o[e]?t.util.object.extend(o[e],a):o[e]=t.util.object.clone(a))}))}))}return o},loadSVGFromURL:function(e,n,i,r){e=e.replace(/^\n\s*/,"").trim(),new t.util.request(e,{method:"get",onComplete:function(e){var o=e.responseXML;if(!o||!o.documentElement)return n&&n(null),!1;t.parseSVGDocument(o.documentElement,(function(e,t,i,r){n&&n(e,t,i,r)}),i,r)}})},loadSVGFromString:function(e,n,i,r){var o=(new t.window.DOMParser).parseFromString(e.trim(),"text/xml");t.parseSVGDocument(o.documentElement,(function(e,t,i,r){n(e,t,i,r)}),i,r)}})}(t),r.ElementsParser=function(e,t,n,i,r,o){this.elements=e,this.callback=t,this.options=n,this.reviver=i,this.svgUid=n&&n.svgUid||0,this.parsingOptions=r,this.regexUrl=/^url\(['"]?#([^'"]+)['"]?\)/g,this.doc=o},(i=r.ElementsParser.prototype).parse=function(){this.instances=new Array(this.elements.length),this.numElements=this.elements.length,this.createObjects()},i.createObjects=function(){var e=this;this.elements.forEach((function(t,n){t.setAttribute("svgUid",e.svgUid),e.createObject(t,n)}))},i.findTag=function(e){return r[r.util.string.capitalize(e.tagName.replace("svg:",""))]},i.createObject=function(e,t){var n=this.findTag(e);if(n&&n.fromElement)try{n.fromElement(e,this.createCallback(t,e),this.options)}catch(i){r.log(i)}else this.checkIfDone()},i.createCallback=function(e,t){var n=this;return function(i){var o;n.resolveGradient(i,t,"fill"),n.resolveGradient(i,t,"stroke"),i instanceof r.Image&&i._originalElement&&(o=i.parsePreserveAspectRatioAttribute(t)),i._removeTransformMatrix(o),n.resolveClipPath(i,t),n.reviver&&n.reviver(t,i),n.instances[e]=i,n.checkIfDone()}},i.extractPropertyDefinition=function(e,t,n){var i=e[t],o=this.regexUrl;if(o.test(i)){o.lastIndex=0;var a=o.exec(i)[1];return o.lastIndex=0,r[n][this.svgUid][a]}},i.resolveGradient=function(e,t,n){var i=this.extractPropertyDefinition(e,n,"gradientDefs");if(i){var o=t.getAttribute(n+"-opacity"),a=r.Gradient.fromElement(i,e,o,this.options);e.set(n,a)}},i.createClipPathCallback=function(e,t){return function(e){e._removeTransformMatrix(),e.fillRule=e.clipRule,t.push(e)}},i.resolveClipPath=function(e,t){var n,i,o,a,s=this.extractPropertyDefinition(e,"clipPath","clipPaths");if(s){o=[],i=r.util.invertTransform(e.calcTransformMatrix());for(var u=s[0].parentNode,l=t;l.parentNode&&l.getAttribute("clip-path")!==e.clipPath;)l=l.parentNode;l.parentNode.appendChild(u);for(var c=0;c<s.length;c++)n=s[c],this.findTag(n).fromElement(n,this.createClipPathCallback(e,o),this.options);s=1===o.length?o[0]:new r.Group(o),a=r.util.multiplyTransformMatrices(i,s.calcTransformMatrix()),s.clipPath&&this.resolveClipPath(s,l);var d=r.util.qrDecompose(a);s.flipX=!1,s.flipY=!1,s.set("scaleX",d.scaleX),s.set("scaleY",d.scaleY),s.angle=d.angle,s.skewX=d.skewX,s.skewY=0,s.setPositionByOrigin({x:d.translateX,y:d.translateY},"center","center"),e.clipPath=s}else delete e.clipPath},i.checkIfDone=function(){0===--this.numElements&&(this.instances=this.instances.filter((function(e){return null!=e})),this.callback(this.instances,this.elements))},function(e){"use strict";var t=e.fabric||(e.fabric={});function n(e,t){this.x=e,this.y=t}t.Point?t.warn("fabric.Point is already defined"):(t.Point=n,n.prototype={type:"point",constructor:n,add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.x<e.x&&this.y<e.y},lte:function(e){return this.x<=e.x&&this.y<=e.y},gt:function(e){return this.x>e.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return"undefined"===typeof t&&(t=.5),t=Math.max(Math.min(1,t),0),new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return this.lerp(e)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){return this.x=e,this.y=t,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setFromPoint:function(e){return this.x=e.x,this.y=e.y,this},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n},clone:function(){return new n(this.x,this.y)}})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});function n(e){this.status=e,this.points=[]}t.Intersection?t.warn("fabric.Intersection is already defined"):(t.Intersection=n,t.Intersection.prototype={constructor:n,appendPoint:function(e){return this.points.push(e),this},appendPoints:function(e){return this.points=this.points.concat(e),this}},t.Intersection.intersectLineLine=function(e,i,r,o){var a,s=(o.x-r.x)*(e.y-r.y)-(o.y-r.y)*(e.x-r.x),u=(i.x-e.x)*(e.y-r.y)-(i.y-e.y)*(e.x-r.x),l=(o.y-r.y)*(i.x-e.x)-(o.x-r.x)*(i.y-e.y);if(0!==l){var c=s/l,d=u/l;0<=c&&c<=1&&0<=d&&d<=1?(a=new n("Intersection")).appendPoint(new t.Point(e.x+c*(i.x-e.x),e.y+c*(i.y-e.y))):a=new n}else a=new n(0===s||0===u?"Coincident":"Parallel");return a},t.Intersection.intersectLinePolygon=function(e,t,i){var r,o,a,s,u=new n,l=i.length;for(s=0;s<l;s++)r=i[s],o=i[(s+1)%l],a=n.intersectLineLine(e,t,r,o),u.appendPoints(a.points);return u.points.length>0&&(u.status="Intersection"),u},t.Intersection.intersectPolygonPolygon=function(e,t){var i,r=new n,o=e.length;for(i=0;i<o;i++){var a=e[i],s=e[(i+1)%o],u=n.intersectLinePolygon(a,s,t);r.appendPoints(u.points)}return r.points.length>0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,i,r){var o=i.min(r),a=i.max(r),s=new t.Point(a.x,o.y),u=new t.Point(o.x,a.y),l=n.intersectLinePolygon(o,s,e),c=n.intersectLinePolygon(s,a,e),d=n.intersectLinePolygon(a,u,e),h=n.intersectLinePolygon(u,o,e),f=new n;return f.appendPoints(l.points),f.appendPoints(c.points),f.appendPoints(d.points),f.appendPoints(h.points),f.points.length>0&&(f.status="Intersection"),f})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}function i(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}t.Color?t.warn("fabric.Color is already defined."):(t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),"transparent"===e&&(t=[255,255,255,0]),t||(t=n.sourceFromHex(e)),t||(t=n.sourceFromRgb(e)),t||(t=n.sourceFromHsl(e)),t||(t=[0,0,0,1]),t&&this.setSource(t)},_rgbToHsl:function(e,n,i){e/=255,n/=255,i/=255;var r,o,a,s=t.util.array.max([e,n,i]),u=t.util.array.min([e,n,i]);if(a=(s+u)/2,s===u)r=o=0;else{var l=s-u;switch(o=a>.5?l/(2-s-u):l/(s+u),s){case e:r=(n-i)/l+(n<i?6:0);break;case n:r=(i-e)/l+2;break;case i:r=(e-n)/l+4}r/=6}return[Math.round(360*r),Math.round(100*o),Math.round(100*a)]},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHsl:function(){var e=this.getSource(),t=this._rgbToHsl(e[0],e[1],e[2]);return"hsl("+t[0]+","+t[1]+"%,"+t[2]+"%)"},toHsla:function(){var e=this.getSource(),t=this._rgbToHsl(e[0],e[1],e[2]);return"hsla("+t[0]+","+t[1]+"%,"+t[2]+"%,"+e[3]+")"},toHex:function(){var e,t,n,i=this.getSource();return e=1===(e=i[0].toString(16)).length?"0"+e:e,t=1===(t=i[1].toString(16)).length?"0"+t:t,n=1===(n=i[2].toString(16)).length?"0"+n:n,e.toUpperCase()+t.toUpperCase()+n.toUpperCase()},toHexa:function(){var e,t=this.getSource();return e=1===(e=(e=Math.round(255*t[3])).toString(16)).length?"0"+e:e,this.toHex()+e.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((.3*e[0]+.59*e[1]+.11*e[2]).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(.3*t[0]+.59*t[1]+.11*t[2]).toFixed(0),i=t[3];return e=e||127,n=Number(n)<Number(e)?0:255,this.setSource([n,n,n,i]),this},overlayWith:function(e){e instanceof n||(e=new n(e));var t,i=[],r=this.getAlpha(),o=this.getSource(),a=e.getSource();for(t=0;t<3;t++)i.push(Math.round(.5*o[t]+.5*a[t]));return i[3]=r,this.setSource(i),this}},t.Color.reRGBa=/^rgba?\(\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*(?:\s*,\s*((?:\d*\.?\d+)?)\s*)?\)$/i,t.Color.reHSLa=/^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3}\%)\s*,\s*(\d{1,3}\%)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/i,t.Color.reHex=/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i,t.Color.colorNameMap={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",darkgreen:"#006400",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",lightgreen:"#90EE90",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399",red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"},t.Color.fromRgb=function(e){return n.fromSource(n.sourceFromRgb(e))},t.Color.sourceFromRgb=function(e){var t=e.match(n.reRGBa);if(t){var i=parseInt(t[1],10)/(/%$/.test(t[1])?100:1)*(/%$/.test(t[1])?255:1),r=parseInt(t[2],10)/(/%$/.test(t[2])?100:1)*(/%$/.test(t[2])?255:1),o=parseInt(t[3],10)/(/%$/.test(t[3])?100:1)*(/%$/.test(t[3])?255:1);return[parseInt(i,10),parseInt(r,10),parseInt(o,10),t[4]?parseFloat(t[4]):1]}},t.Color.fromRgba=n.fromRgb,t.Color.fromHsl=function(e){return n.fromSource(n.sourceFromHsl(e))},t.Color.sourceFromHsl=function(e){var t=e.match(n.reHSLa);if(t){var r,o,a,s=(parseFloat(t[1])%360+360)%360/360,u=parseFloat(t[2])/(/%$/.test(t[2])?100:1),l=parseFloat(t[3])/(/%$/.test(t[3])?100:1);if(0===u)r=o=a=l;else{var c=l<=.5?l*(u+1):l+u-l*u,d=2*l-c;r=i(d,c,s+1/3),o=i(d,c,s),a=i(d,c,s-1/3)}return[Math.round(255*r),Math.round(255*o),Math.round(255*a),t[4]?parseFloat(t[4]):1]}},t.Color.fromHsla=n.fromHsl,t.Color.fromHex=function(e){return n.fromSource(n.sourceFromHex(e))},t.Color.sourceFromHex=function(e){if(e.match(n.reHex)){var t=e.slice(e.indexOf("#")+1),i=3===t.length||4===t.length,r=8===t.length||4===t.length,o=i?t.charAt(0)+t.charAt(0):t.substring(0,2),a=i?t.charAt(1)+t.charAt(1):t.substring(2,4),s=i?t.charAt(2)+t.charAt(2):t.substring(4,6),u=r?i?t.charAt(3)+t.charAt(3):t.substring(6,8):"FF";return[parseInt(o,16),parseInt(a,16),parseInt(s,16),parseFloat((parseInt(u,16)/255).toFixed(2))]}},t.Color.fromSource=function(e){var t=new n;return t.setSource(e),t})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=["e","se","s","sw","w","nw","n","ne","e"],i=["ns","nesw","ew","nwse"],r={},o="left",a="top",s="right",u="bottom",l="center",c={top:u,bottom:a,left:s,right:o,center:l},d=t.util.radiansToDegrees,h=Math.sign||function(e){return(e>0)-(e<0)||+e};function f(e,t){var n=e.angle+d(Math.atan2(t.y,t.x))+360;return Math.round(n%360/45)}function p(e,n){var i=n.transform.target,r=i.canvas,o=t.util.object.clone(n);o.target=i,r&&r.fire("object:"+e,o),i.fire(e,n)}function g(e,t){var n=t.canvas,i=e[n.uniScaleKey];return n.uniformScaling&&!i||!n.uniformScaling&&i}function v(e){return e.originX===l&&e.originY===l}function m(e,t,n){var i=e.lockScalingX,r=e.lockScalingY;return!(!i||!r)||(!(t||!i&&!r||!n)||(!(!i||"x"!==t)||!(!r||"y"!==t)))}function _(e,t,n,i){return{e:e,transform:t,pointer:{x:n,y:i}}}function y(e){return function(t,n,i,r){var o=n.target,a=o.getCenterPoint(),s=o.translateToOriginPoint(a,n.originX,n.originY),u=e(t,n,i,r);return o.setPositionByOrigin(s,n.originX,n.originY),u}}function b(e,n,i,r,o){var a=e.target,s=a.controls[e.corner],u=a.canvas.getZoom(),l=a.padding/u,c=a.toLocalPoint(new t.Point(r,o),n,i);return c.x>=l&&(c.x-=l),c.x<=-l&&(c.x+=l),c.y>=l&&(c.y-=l),c.y<=l&&(c.y+=l),c.x-=s.offsetX,c.y-=s.offsetY,c}function w(e){return e.flipX&&!e.flipY||!e.flipX&&e.flipY}function C(e,t,n,i,r){if(0!==e[t]){var o=r/e._getTransformedDimensions()[i]*e[n];e.set(n,o)}}function k(e,t,n,i){var r,l=t.target,c=l._getTransformedDimensions(0,l.skewY),h=b(t,t.originX,t.originY,n,i),f=Math.abs(2*h.x)-c.x,g=l.skewX;f<2?r=0:(r=d(Math.atan2(f/l.scaleX,c.y/l.scaleY)),t.originX===o&&t.originY===u&&(r=-r),t.originX===s&&t.originY===a&&(r=-r),w(l)&&(r=-r));var v=g!==r;if(v){var m=l._getTransformedDimensions().y;l.set("skewX",r),C(l,"skewY","scaleY","y",m),p("skewing",_(e,t,n,i))}return v}function S(e,t,n,i){var r,l=t.target,c=l._getTransformedDimensions(l.skewX,0),h=b(t,t.originX,t.originY,n,i),f=Math.abs(2*h.y)-c.y,g=l.skewY;f<2?r=0:(r=d(Math.atan2(f/l.scaleY,c.x/l.scaleX)),t.originX===o&&t.originY===u&&(r=-r),t.originX===s&&t.originY===a&&(r=-r),w(l)&&(r=-r));var v=g!==r;if(v){var m=l._getTransformedDimensions().x;l.set("skewY",r),C(l,"skewX","scaleX","x",m),p("skewing",_(e,t,n,i))}return v}function x(e,t,n,i,r){r=r||{};var o,a,s,u,l,d,f=t.target,y=f.lockScalingX,w=f.lockScalingY,C=r.by,k=g(e,f),S=m(f,C,k),x=t.gestureScale;if(S)return!1;if(x)a=t.scaleX*x,s=t.scaleY*x;else{if(o=b(t,t.originX,t.originY,n,i),l="y"!==C?h(o.x):1,d="x"!==C?h(o.y):1,t.signX||(t.signX=l),t.signY||(t.signY=d),f.lockScalingFlip&&(t.signX!==l||t.signY!==d))return!1;if(u=f._getTransformedDimensions(),k&&!C){var L,E=Math.abs(o.x)+Math.abs(o.y),N=t.original,D=E/(Math.abs(u.x*N.scaleX/f.scaleX)+Math.abs(u.y*N.scaleY/f.scaleY));a=N.scaleX*D,s=N.scaleY*D}else a=Math.abs(o.x*f.scaleX/u.x),s=Math.abs(o.y*f.scaleY/u.y);v(t)&&(a*=2,s*=2),t.signX!==l&&"y"!==C&&(t.originX=c[t.originX],a*=-1,t.signX=l),t.signY!==d&&"x"!==C&&(t.originY=c[t.originY],s*=-1,t.signY=d)}var M=f.scaleX,T=f.scaleY;return C?("x"===C&&f.set("scaleX",a),"y"===C&&f.set("scaleY",s)):(!y&&f.set("scaleX",a),!w&&f.set("scaleY",s)),(L=M!==f.scaleX||T!==f.scaleY)&&p("scaling",_(e,t,n,i)),L}r.scaleCursorStyleHandler=function(e,t,i){var r=g(e,i),o="";if(0!==t.x&&0===t.y?o="x":0===t.x&&0!==t.y&&(o="y"),m(i,o,r))return"not-allowed";var a=f(i,t);return n[a]+"-resize"},r.skewCursorStyleHandler=function(e,t,n){var r="not-allowed";if(0!==t.x&&n.lockSkewingY)return r;if(0!==t.y&&n.lockSkewingX)return r;var o=f(n,t)%4;return i[o]+"-resize"},r.scaleSkewCursorStyleHandler=function(e,t,n){return e[n.canvas.altActionKey]?r.skewCursorStyleHandler(e,t,n):r.scaleCursorStyleHandler(e,t,n)},r.rotationWithSnapping=y((function(e,t,n,i){var r=t,o=r.target,a=o.translateToOriginPoint(o.getCenterPoint(),r.originX,r.originY);if(o.lockRotation)return!1;var s,u=Math.atan2(r.ey-a.y,r.ex-a.x),l=Math.atan2(i-a.y,n-a.x),c=d(l-u+r.theta);if(o.snapAngle>0){var h=o.snapAngle,f=o.snapThreshold||h,g=Math.ceil(c/h)*h,v=Math.floor(c/h)*h;Math.abs(c-v)<f?c=v:Math.abs(c-g)<f&&(c=g)}return c<0&&(c=360+c),c%=360,s=o.angle!==c,o.angle=c,s&&p("rotating",_(e,t,n,i)),s})),r.scalingEqually=y((function(e,t,n,i){return x(e,t,n,i)})),r.scalingX=y((function(e,t,n,i){return x(e,t,n,i,{by:"x"})})),r.scalingY=y((function(e,t,n,i){return x(e,t,n,i,{by:"y"})})),r.scalingYOrSkewingX=function(e,t,n,i){return e[t.target.canvas.altActionKey]?r.skewHandlerX(e,t,n,i):r.scalingY(e,t,n,i)},r.scalingXOrSkewingY=function(e,t,n,i){return e[t.target.canvas.altActionKey]?r.skewHandlerY(e,t,n,i):r.scalingX(e,t,n,i)},r.changeWidth=y((function(e,t,n,i){var r,o=t.target,a=b(t,t.originX,t.originY,n,i),s=o.strokeWidth/(o.strokeUniform?o.scaleX:1),u=v(t)?2:1,l=o.width,c=Math.abs(a.x*u/o.scaleX)-s;return o.set("width",Math.max(c,0)),(r=l!==c)&&p("resizing",_(e,t,n,i)),r})),r.skewHandlerX=function(e,t,n,i){var r,u=t.target,c=u.skewX,d=t.originY;return!u.lockSkewingX&&(0===c?r=b(t,l,l,n,i).x>0?o:s:(c>0&&(r=d===a?o:s),c<0&&(r=d===a?s:o),w(u)&&(r=r===o?s:o)),t.originX=r,y(k)(e,t,n,i))},r.skewHandlerY=function(e,t,n,i){var r,s=t.target,c=s.skewY,d=t.originX;return!s.lockSkewingY&&(0===c?r=b(t,l,l,n,i).y>0?a:u:(c>0&&(r=d===o?a:u),c<0&&(r=d===o?u:a),w(s)&&(r=r===a?u:a)),t.originY=r,y(S)(e,t,n,i))},r.dragHandler=function(e,t,n,i){var r=t.target,o=n-t.offsetX,a=i-t.offsetY,s=!r.get("lockMovementX")&&r.left!==o,u=!r.get("lockMovementY")&&r.top!==a;return s&&r.set("left",o),u&&r.set("top",a),(s||u)&&p("moving",_(e,t,n,i)),s||u},r.scaleOrSkewActionName=function(e,t,n){var i=e[n.canvas.altActionKey];return 0===t.x?i?"skewX":"scaleY":0===t.y?i?"skewY":"scaleX":void 0},r.rotationStyleHandler=function(e,t,n){return n.lockRotation?"not-allowed":t.cursorStyle},r.fireEvent=p,r.wrapWithFixedAnchor=y,r.getLocalPoint=b,t.controlsUtils=r}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.degreesToRadians,i=t.controlsUtils;i.renderCircleControl=function(e,t,n,i,r){var o=(i=i||{}).cornerSize||r.cornerSize,a="undefined"!==typeof i.transparentCorners?i.transparentCorners:this.transparentCorners,s=a?"stroke":"fill",u=!a&&(i.cornerStrokeColor||r.cornerStrokeColor);e.save(),e.fillStyle=i.cornerColor||r.cornerColor,e.strokeStyle=i.cornerStrokeColor||r.cornerStrokeColor,e.lineWidth=1,e.beginPath(),e.arc(t,n,o/2,0,2*Math.PI,!1),e[s](),u&&e.stroke(),e.restore()},i.renderSquareControl=function(e,t,i,r,o){var a=(r=r||{}).cornerSize||o.cornerSize,s="undefined"!==typeof r.transparentCorners?r.transparentCorners:o.transparentCorners,u=s?"stroke":"fill",l=!s&&(r.cornerStrokeColor||o.cornerStrokeColor),c=a/2;e.save(),e.fillStyle=r.cornerColor||o.cornerColor,e.strokeStyle=r.strokeCornerColor||o.strokeCornerColor,e.lineWidth=1,e.translate(t,i),e.rotate(n(o.angle)),e[u+"Rect"](-c,-c,a,a),l&&e.strokeRect(-c,-c,a,a),e.restore()}}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});t.Control=function(e){for(var t in e)this[t]=e[t]},t.Control.prototype={visible:!0,actionName:"scale",angle:0,x:0,y:0,offsetX:0,offsetY:0,cursorStyle:"crosshair",withConnection:!1,actionHandler:function(){},mouseDownHandler:function(){},mouseUpHandler:function(){},getActionHandler:function(){return this.actionHandler},getMouseDownHandler:function(){return this.mouseDownHandler},getMouseUpHandler:function(){return this.mouseUpHandler},cursorStyleHandler:function(e,t){return t.cursorStyle},getActionName:function(e,t){return t.actionName},getVisibility:function(e,t){var n=e._controlsVisibility;return n&&"undefined"!==typeof n[t]?n[t]:this.visible},setVisibility:function(e){this.visible=e},positionHandler:function(e,n){return t.util.transformPoint({x:this.x*e.x+this.offsetX,y:this.y*e.y+this.offsetY},n)},render:function(e,n,i,r,o){if("circle"===((r=r||{}).cornerStyle||o.cornerStyle))t.controlsUtils.renderCircleControl.call(this,e,n,i,r,o);else t.controlsUtils.renderSquareControl.call(this,e,n,i,r,o)}}}(t),function(){function e(e,t){var n,i,o,a,s=e.getAttribute("style"),u=e.getAttribute("offset")||0;if(u=(u=parseFloat(u)/(/%$/.test(u)?100:1))<0?0:u>1?1:u,s){var l=s.split(/\s*;\s*/);for(""===l[l.length-1]&&l.pop(),a=l.length;a--;){var c=l[a].split(/\s*:\s*/),d=c[0].trim(),h=c[1].trim();"stop-color"===d?n=h:"stop-opacity"===d&&(o=h)}}return n||(n=e.getAttribute("stop-color")||"rgb(0,0,0)"),o||(o=e.getAttribute("stop-opacity")),i=(n=new r.Color(n)).getAlpha(),o=isNaN(parseFloat(o))?1:parseFloat(o),o*=i*t,{offset:u,color:n.toRgb(),opacity:o}}var t=r.util.object.clone;r.Gradient=r.util.createClass({offsetX:0,offsetY:0,gradientTransform:null,gradientUnits:"pixels",type:"linear",initialize:function(e){e||(e={}),e.coords||(e.coords={});var t,n=this;Object.keys(e).forEach((function(t){n[t]=e[t]})),this.id?this.id+="_"+r.Object.__uid++:this.id=r.Object.__uid++,t={x1:e.coords.x1||0,y1:e.coords.y1||0,x2:e.coords.x2||0,y2:e.coords.y2||0},"radial"===this.type&&(t.r1=e.coords.r1||0,t.r2=e.coords.r2||0),this.coords=t,this.colorStops=e.colorStops.slice()},addColorStop:function(e){for(var t in e){var n=new r.Color(e[t]);this.colorStops.push({offset:parseFloat(t),color:n.toRgb(),opacity:n.getAlpha()})}return this},toObject:function(e){var t={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return r.util.populateWithProperties(this,t,e),t},toSVG:function(e,n){var i,o,a,s,u=t(this.coords,!0),l=(n=n||{},t(this.colorStops,!0)),c=u.r1>u.r2,d=this.gradientTransform?this.gradientTransform.concat():r.iMatrix.concat(),h=-this.offsetX,f=-this.offsetY,p=!!n.additionalTransform,g="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox";if(l.sort((function(e,t){return e.offset-t.offset})),"objectBoundingBox"===g?(h/=e.width,f/=e.height):(h+=e.width/2,f+=e.height/2),"path"===e.type&&(h-=e.pathOffset.x,f-=e.pathOffset.y),d[4]-=h,d[5]-=f,s='id="SVGID_'+this.id+'" gradientUnits="'+g+'"',s+=' gradientTransform="'+(p?n.additionalTransform+" ":"")+r.util.matrixToSVG(d)+'" ',"linear"===this.type?a=["<linearGradient ",s,' x1="',u.x1,'" y1="',u.y1,'" x2="',u.x2,'" y2="',u.y2,'">\n']:"radial"===this.type&&(a=["<radialGradient ",s,' cx="',c?u.x1:u.x2,'" cy="',c?u.y1:u.y2,'" r="',c?u.r1:u.r2,'" fx="',c?u.x2:u.x1,'" fy="',c?u.y2:u.y1,'">\n']),"radial"===this.type){if(c)for((l=l.concat()).reverse(),i=0,o=l.length;i<o;i++)l[i].offset=1-l[i].offset;var v=Math.min(u.r1,u.r2);if(v>0){var m=v/Math.max(u.r1,u.r2);for(i=0,o=l.length;i<o;i++)l[i].offset+=m*(1-l[i].offset)}}for(i=0,o=l.length;i<o;i++){var _=l[i];a.push("<stop ",'offset="',100*_.offset+"%",'" style="stop-color:',_.color,"undefined"!==typeof _.opacity?";stop-opacity: "+_.opacity:";",'"/>\n')}return a.push("linear"===this.type?"</linearGradient>\n":"</radialGradient>\n"),a.join("")},toLive:function(e){var t,n,i,o=r.util.object.clone(this.coords);if(this.type){for("linear"===this.type?t=e.createLinearGradient(o.x1,o.y1,o.x2,o.y2):"radial"===this.type&&(t=e.createRadialGradient(o.x1,o.y1,o.r1,o.x2,o.y2,o.r2)),n=0,i=this.colorStops.length;n<i;n++){var a=this.colorStops[n].color,s=this.colorStops[n].opacity,u=this.colorStops[n].offset;"undefined"!==typeof s&&(a=new r.Color(a).setAlpha(s).toRgba()),t.addColorStop(u,a)}return t}}}),r.util.object.extend(r.Gradient,{fromElement:function(t,n,i,o){var a=parseFloat(i)/(/%$/.test(i)?100:1);a=a<0?0:a>1?1:a,isNaN(a)&&(a=1);var s,u,l,c,d=t.getElementsByTagName("stop"),h="userSpaceOnUse"===t.getAttribute("gradientUnits")?"pixels":"percentage",f=t.getAttribute("gradientTransform")||"",p=[],g=0,v=0;for("linearGradient"===t.nodeName||"LINEARGRADIENT"===t.nodeName?(s="linear",u=function(e){return{x1:e.getAttribute("x1")||0,y1:e.getAttribute("y1")||0,x2:e.getAttribute("x2")||"100%",y2:e.getAttribute("y2")||0}}(t)):(s="radial",u=function(e){return{x1:e.getAttribute("fx")||e.getAttribute("cx")||"50%",y1:e.getAttribute("fy")||e.getAttribute("cy")||"50%",r1:0,x2:e.getAttribute("cx")||"50%",y2:e.getAttribute("cy")||"50%",r2:e.getAttribute("r")||"50%"}}(t)),l=d.length;l--;)p.push(e(d[l],a));return c=r.parseTransformAttribute(f),function(e,t,n,i){var r,o;Object.keys(t).forEach((function(e){"Infinity"===(r=t[e])?o=1:"-Infinity"===r?o=0:(o=parseFloat(t[e],10),"string"===typeof r&&/^(\d+\.\d+)%|(\d+)%$/.test(r)&&(o*=.01,"pixels"===i&&("x1"!==e&&"x2"!==e&&"r2"!==e||(o*=n.viewBoxWidth||n.width),"y1"!==e&&"y2"!==e||(o*=n.viewBoxHeight||n.height)))),t[e]=o}))}(0,u,o,h),"pixels"===h&&(g=-n.left,v=-n.top),new r.Gradient({id:t.getAttribute("id"),type:s,coords:u,colorStops:p,gradientUnits:h,gradientTransform:c,offsetX:g,offsetY:v})}})}(),function(){"use strict";var e=r.util.toFixed;r.Pattern=r.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(e,t){if(e||(e={}),this.id=r.Object.__uid++,this.setOptions(e),!e.source||e.source&&"string"!==typeof e.source)t&&t(this);else{var n=this;this.source=r.util.createImage(),r.util.loadImage(e.source,(function(e,i){n.source=e,t&&t(n,i)}),null,this.crossOrigin)}},toObject:function(t){var n,i,o=r.Object.NUM_FRACTION_DIGITS;return"string"===typeof this.source.src?n=this.source.src:"object"===typeof this.source&&this.source.toDataURL&&(n=this.source.toDataURL()),i={type:"pattern",source:n,repeat:this.repeat,crossOrigin:this.crossOrigin,offsetX:e(this.offsetX,o),offsetY:e(this.offsetY,o),patternTransform:this.patternTransform?this.patternTransform.concat():null},r.util.populateWithProperties(this,i,t),i},toSVG:function(e){var t="function"===typeof this.source?this.source():this.source,n=t.width/e.width,i=t.height/e.height,r=this.offsetX/e.width,o=this.offsetY/e.height,a="";return"repeat-x"!==this.repeat&&"no-repeat"!==this.repeat||(i=1,o&&(i+=Math.abs(o))),"repeat-y"!==this.repeat&&"no-repeat"!==this.repeat||(n=1,r&&(n+=Math.abs(r))),t.src?a=t.src:t.toDataURL&&(a=t.toDataURL()),'<pattern id="SVGID_'+this.id+'" x="'+r+'" y="'+o+'" width="'+n+'" height="'+i+'">\n<image x="0" y="0" width="'+t.width+'" height="'+t.height+'" xlink:href="'+a+'"></image>\n</pattern>\n'},setOptions:function(e){for(var t in e)this[t]=e[t]},toLive:function(e){var t=this.source;if(!t)return"";if("undefined"!==typeof t.src){if(!t.complete)return"";if(0===t.naturalWidth||0===t.naturalHeight)return""}return e.createPattern(t,this.repeat)}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;t.Shadow?t.warn("fabric.Shadow is already defined."):(t.Shadow=t.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1,initialize:function(e){for(var n in"string"===typeof e&&(e=this._parseShadow(e)),e)this[n]=e[n];this.id=t.Object.__uid++},_parseShadow:function(e){var n=e.trim(),i=t.Shadow.reOffsetsAndBlur.exec(n)||[];return{color:(n.replace(t.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)").trim(),offsetX:parseInt(i[1],10)||0,offsetY:parseInt(i[2],10)||0,blur:parseInt(i[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(e){var i=40,r=40,o=t.Object.NUM_FRACTION_DIGITS,a=t.util.rotateVector({x:this.offsetX,y:this.offsetY},t.util.degreesToRadians(-e.angle)),s=new t.Color(this.color);return e.width&&e.height&&(i=100*n((Math.abs(a.x)+this.blur)/e.width,o)+20,r=100*n((Math.abs(a.y)+this.blur)/e.height,o)+20),e.flipX&&(a.x*=-1),e.flipY&&(a.y*=-1),'<filter id="SVGID_'+this.id+'" y="-'+r+'%" height="'+(100+2*r)+'%" x="-'+i+'%" width="'+(100+2*i)+'%" >\n\t<feGaussianBlur in="SourceAlpha" stdDeviation="'+n(this.blur?this.blur/2:0,o)+'"></feGaussianBlur>\n\t<feOffset dx="'+n(a.x,o)+'" dy="'+n(a.y,o)+'" result="oBlur" ></feOffset>\n\t<feFlood flood-color="'+s.toRgb()+'" flood-opacity="'+s.getAlpha()+'"/>\n\t<feComposite in2="oBlur" operator="in" />\n\t<feMerge>\n\t\t<feMergeNode></feMergeNode>\n\t\t<feMergeNode in="SourceGraphic"></feMergeNode>\n\t</feMerge>\n</filter>\n'},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var e={},n=t.Shadow.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach((function(t){this[t]!==n[t]&&(e[t]=this[t])}),this),e}}),t.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:px)?(?:\s?|$))?(-?\d+(?:px)?(?:\s?|$))?(\d+(?:px)?)?(?:\s?|$)(?:$|\s)/)}(t),function(){"use strict";if(r.StaticCanvas)r.warn("fabric.StaticCanvas is already defined.");else{var e=r.util.object.extend,t=r.util.getElementOffset,n=r.util.removeFromArray,i=r.util.toFixed,o=r.util.transformPoint,a=r.util.invertTransform,s=r.util.getNodeCanvas,u=r.util.createCanvasElement,l=new Error("Could not initialize `canvas` element");r.StaticCanvas=r.util.createClass(r.CommonMethods,{initialize:function(e,t){t||(t={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(e,t)},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!1,renderOnAddRemove:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,viewportTransform:r.iMatrix.concat(),backgroundVpt:!0,overlayVpt:!0,enableRetinaScaling:!0,vptCoords:{},skipOffscreen:!0,clipPath:void 0,_initStatic:function(e,t){var n=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(e),this._initOptions(t),this.interactive||this._initRetinaScaling(),t.overlayImage&&this.setOverlayImage(t.overlayImage,n),t.backgroundImage&&this.setBackgroundImage(t.backgroundImage,n),t.backgroundColor&&this.setBackgroundColor(t.backgroundColor,n),t.overlayColor&&this.setOverlayColor(t.overlayColor,n),this.calcOffset()},_isRetinaScaling:function(){return 1!==r.devicePixelRatio&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?r.devicePixelRatio:1},_initRetinaScaling:function(){if(this._isRetinaScaling()){var e=r.devicePixelRatio;this.__initRetinaScaling(e,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(e,this.upperCanvasEl,this.contextTop)}},__initRetinaScaling:function(e,t,n){t.setAttribute("width",this.width*e),t.setAttribute("height",this.height*e),n.scale(e,e)},calcOffset:function(){return this._offset=t(this.lowerCanvasEl),this},setOverlayImage:function(e,t,n){return this.__setBgOverlayImage("overlayImage",e,t,n)},setBackgroundImage:function(e,t,n){return this.__setBgOverlayImage("backgroundImage",e,t,n)},setOverlayColor:function(e,t){return this.__setBgOverlayColor("overlayColor",e,t)},setBackgroundColor:function(e,t){return this.__setBgOverlayColor("backgroundColor",e,t)},__setBgOverlayImage:function(e,t,n,i){return"string"===typeof t?r.util.loadImage(t,(function(t,o){if(t){var a=new r.Image(t,i);this[e]=a,a.canvas=this}n&&n(t,o)}),this,i&&i.crossOrigin):(i&&t.setOptions(i),this[e]=t,t&&(t.canvas=this),n&&n(t,!1)),this},__setBgOverlayColor:function(e,t,n){return this[e]=t,this._initGradient(t,e),this._initPattern(t,e,n),this},_createCanvasElement:function(){var e=u();if(!e)throw l;if(e.style||(e.style={}),"undefined"===typeof e.getContext)throw l;return e},_initOptions:function(e){var t=this.lowerCanvasEl;this._setOptions(e),this.width=this.width||parseInt(t.width,10)||0,this.height=this.height||parseInt(t.height,10)||0,this.lowerCanvasEl.style&&(t.width=this.width,t.height=this.height,t.style.width=this.width+"px",t.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(e){e&&e.getContext?this.lowerCanvasEl=e:this.lowerCanvasEl=r.util.getById(e)||this._createCanvasElement(),r.util.addClass(this.lowerCanvasEl,"lower-canvas"),this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(e,t){return this.setDimensions({width:e},t)},setHeight:function(e,t){return this.setDimensions({height:e},t)},setDimensions:function(e,t){var n;for(var i in t=t||{},e)n=e[i],t.cssOnly||(this._setBackstoreDimension(i,e[i]),n+="px",this.hasLostContext=!0),t.backstoreOnly||this._setCssDimension(i,n);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(),this._initRetinaScaling(),this.calcOffset(),t.cssOnly||this.requestRenderAll(),this},_setBackstoreDimension:function(e,t){return this.lowerCanvasEl[e]=t,this.upperCanvasEl&&(this.upperCanvasEl[e]=t),this.cacheCanvasEl&&(this.cacheCanvasEl[e]=t),this[e]=t,this},_setCssDimension:function(e,t){return this.lowerCanvasEl.style[e]=t,this.upperCanvasEl&&(this.upperCanvasEl.style[e]=t),this.wrapperEl&&(this.wrapperEl.style[e]=t),this},getZoom:function(){return this.viewportTransform[0]},setViewportTransform:function(e){var t,n,i,r=this._activeObject;for(this.viewportTransform=e,n=0,i=this._objects.length;n<i;n++)(t=this._objects[n]).group||t.setCoords(!0);return r&&r.setCoords(),this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll(),this},zoomToPoint:function(e,t){var n=e,i=this.viewportTransform.slice(0);e=o(e,a(this.viewportTransform)),i[0]=t,i[3]=t;var r=o(e,i);return i[4]+=n.x-r.x,i[5]+=n.y-r.y,this.setViewportTransform(i)},setZoom:function(e){return this.zoomToPoint(new r.Point(0,0),e),this},absolutePan:function(e){var t=this.viewportTransform.slice(0);return t[4]=-e.x,t[5]=-e.y,this.setViewportTransform(t)},relativePan:function(e){return this.absolutePan(new r.Point(-e.x-this.viewportTransform[4],-e.y-this.viewportTransform[5]))},getElement:function(){return this.lowerCanvasEl},_onObjectAdded:function(e){this.stateful&&e.setupState(),e._set("canvas",this),e.setCoords(),this.fire("object:added",{target:e}),e.fire("added")},_onObjectRemoved:function(e){this.fire("object:removed",{target:e}),e.fire("removed"),delete e.canvas},clearContext:function(e){return e.clearRect(0,0,this.width,this.height),this},getContext:function(){return this.contextContainer},clear:function(){return this._objects.length=0,this.backgroundImage=null,this.overlayImage=null,this.backgroundColor="",this.overlayColor="",this._hasITextHandlers&&(this.off("mouse:up",this._mouseUpITextHandler),this._iTextInstances=null,this._hasITextHandlers=!1),this.clearContext(this.contextContainer),this.fire("canvas:cleared"),this.renderOnAddRemove&&this.requestRenderAll(),this},renderAll:function(){var e=this.contextContainer;return this.renderCanvas(e,this._objects),this},renderAndReset:function(){this.isRendering=0,this.renderAll()},requestRenderAll:function(){return this.isRendering||(this.isRendering=r.util.requestAnimFrame(this.renderAndResetBound)),this},calcViewportBoundaries:function(){var e={},t=this.width,n=this.height,i=a(this.viewportTransform);return e.tl=o({x:0,y:0},i),e.br=o({x:t,y:n},i),e.tr=new r.Point(e.br.x,e.tl.y),e.bl=new r.Point(e.tl.x,e.br.y),this.vptCoords=e,e},cancelRequestedRender:function(){this.isRendering&&(r.util.cancelAnimFrame(this.isRendering),this.isRendering=0)},renderCanvas:function(e,t){var n=this.viewportTransform,i=this.clipPath;this.cancelRequestedRender(),this.calcViewportBoundaries(),this.clearContext(e),r.util.setImageSmoothing(e,this.imageSmoothingEnabled),this.fire("before:render",{ctx:e}),this._renderBackground(e),e.save(),e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),this._renderObjects(e,t),e.restore(),!this.controlsAboveOverlay&&this.interactive&&this.drawControls(e),i&&(i.canvas=this,i.shouldCache(),i._transformDone=!0,i.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(e)),this._renderOverlay(e),this.controlsAboveOverlay&&this.interactive&&this.drawControls(e),this.fire("after:render",{ctx:e})},drawClipPathOnCanvas:function(e){var t=this.viewportTransform,n=this.clipPath;e.save(),e.transform(t[0],t[1],t[2],t[3],t[4],t[5]),e.globalCompositeOperation="destination-in",n.transform(e),e.scale(1/n.zoomX,1/n.zoomY),e.drawImage(n._cacheCanvas,-n.cacheTranslationX,-n.cacheTranslationY),e.restore()},_renderObjects:function(e,t){var n,i;for(n=0,i=t.length;n<i;++n)t[n]&&t[n].render(e)},_renderBackgroundOrOverlay:function(e,t){var n=this[t+"Color"],i=this[t+"Image"],r=this.viewportTransform,o=this[t+"Vpt"];if(n||i){if(n){e.save(),e.beginPath(),e.moveTo(0,0),e.lineTo(this.width,0),e.lineTo(this.width,this.height),e.lineTo(0,this.height),e.closePath(),e.fillStyle=n.toLive?n.toLive(e,this):n,o&&e.transform(r[0],r[1],r[2],r[3],r[4],r[5]),e.transform(1,0,0,1,n.offsetX||0,n.offsetY||0);var a=n.gradientTransform||n.patternTransform;a&&e.transform(a[0],a[1],a[2],a[3],a[4],a[5]),e.fill(),e.restore()}i&&(e.save(),o&&e.transform(r[0],r[1],r[2],r[3],r[4],r[5]),i.render(e),e.restore())}},_renderBackground:function(e){this._renderBackgroundOrOverlay(e,"background")},_renderOverlay:function(e){this._renderBackgroundOrOverlay(e,"overlay")},getCenter:function(){return{top:this.height/2,left:this.width/2}},centerObjectH:function(e){return this._centerObject(e,new r.Point(this.getCenter().left,e.getCenterPoint().y))},centerObjectV:function(e){return this._centerObject(e,new r.Point(e.getCenterPoint().x,this.getCenter().top))},centerObject:function(e){var t=this.getCenter();return this._centerObject(e,new r.Point(t.left,t.top))},viewportCenterObject:function(e){var t=this.getVpCenter();return this._centerObject(e,t)},viewportCenterObjectH:function(e){var t=this.getVpCenter();return this._centerObject(e,new r.Point(t.x,e.getCenterPoint().y)),this},viewportCenterObjectV:function(e){var t=this.getVpCenter();return this._centerObject(e,new r.Point(e.getCenterPoint().x,t.y))},getVpCenter:function(){var e=this.getCenter(),t=a(this.viewportTransform);return o({x:e.left,y:e.top},t)},_centerObject:function(e,t){return e.setPositionByOrigin(t,"center","center"),e.setCoords(),this.renderOnAddRemove&&this.requestRenderAll(),this},toDatalessJSON:function(e){return this.toDatalessObject(e)},toObject:function(e){return this._toObjectMethod("toObject",e)},toDatalessObject:function(e){return this._toObjectMethod("toDatalessObject",e)},_toObjectMethod:function(t,n){var i=this.clipPath,o={version:r.version,objects:this._toObjects(t,n)};return i&&(o.clipPath=this._toObject(this.clipPath,t,n)),e(o,this.__serializeBgOverlay(t,n)),r.util.populateWithProperties(this,o,n),o},_toObjects:function(e,t){return this._objects.filter((function(e){return!e.excludeFromExport})).map((function(n){return this._toObject(n,e,t)}),this)},_toObject:function(e,t,n){var i;this.includeDefaultValues||(i=e.includeDefaultValues,e.includeDefaultValues=!1);var r=e[t](n);return this.includeDefaultValues||(e.includeDefaultValues=i),r},__serializeBgOverlay:function(e,t){var n={},i=this.backgroundImage,r=this.overlayImage;return this.backgroundColor&&(n.background=this.backgroundColor.toObject?this.backgroundColor.toObject(t):this.backgroundColor),this.overlayColor&&(n.overlay=this.overlayColor.toObject?this.overlayColor.toObject(t):this.overlayColor),i&&!i.excludeFromExport&&(n.backgroundImage=this._toObject(i,e,t)),r&&!r.excludeFromExport&&(n.overlayImage=this._toObject(r,e,t)),n},svgViewportTransformation:!0,toSVG:function(e,t){e||(e={}),e.reviver=t;var n=[];return this._setSVGPreamble(n,e),this._setSVGHeader(n,e),this.clipPath&&n.push('<g clip-path="url(#'+this.clipPath.clipPathId+')" >\n'),this._setSVGBgOverlayColor(n,"background"),this._setSVGBgOverlayImage(n,"backgroundImage",t),this._setSVGObjects(n,t),this.clipPath&&n.push("</g>\n"),this._setSVGBgOverlayColor(n,"overlay"),this._setSVGBgOverlayImage(n,"overlayImage",t),n.push("</svg>"),n.join("")},_setSVGPreamble:function(e,t){t.suppressPreamble||e.push('<?xml version="1.0" encoding="',t.encoding||"UTF-8",'" standalone="no" ?>\n','<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ','"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')},_setSVGHeader:function(e,t){var n,o=t.width||this.width,a=t.height||this.height,s='viewBox="0 0 '+this.width+" "+this.height+'" ',u=r.Object.NUM_FRACTION_DIGITS;t.viewBox?s='viewBox="'+t.viewBox.x+" "+t.viewBox.y+" "+t.viewBox.width+" "+t.viewBox.height+'" ':this.svgViewportTransformation&&(n=this.viewportTransform,s='viewBox="'+i(-n[4]/n[0],u)+" "+i(-n[5]/n[3],u)+" "+i(this.width/n[0],u)+" "+i(this.height/n[3],u)+'" '),e.push("<svg ",'xmlns="http://www.w3.org/2000/svg" ','xmlns:xlink="http://www.w3.org/1999/xlink" ','version="1.1" ','width="',o,'" ','height="',a,'" ',s,'xml:space="preserve">\n',"<desc>Created with Fabric.js ",r.version,"</desc>\n","<defs>\n",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(t),"</defs>\n")},createSVGClipPathMarkup:function(e){var t=this.clipPath;return t?(t.clipPathId="CLIPPATH_"+r.Object.__uid++,'<clipPath id="'+t.clipPathId+'" >\n'+this.clipPath.toClipPathSVG(e.reviver)+"</clipPath>\n"):""},createSVGRefElementsMarkup:function(){var e=this;return["background","overlay"].map((function(t){var n=e[t+"Color"];if(n&&n.toLive){var i=e[t+"Vpt"],o=e.viewportTransform,a={width:e.width/(i?o[0]:1),height:e.height/(i?o[3]:1)};return n.toSVG(a,{additionalTransform:i?r.util.matrixToSVG(o):""})}})).join("")},createSVGFontFacesMarkup:function(){var e,t,n,i,o,a,s,u,l="",c={},d=r.fontPaths,h=[];for(this._objects.forEach((function e(t){h.push(t),t._objects&&t._objects.forEach(e)})),s=0,u=h.length;s<u;s++)if(t=(e=h[s]).fontFamily,-1!==e.type.indexOf("text")&&!c[t]&&d[t]&&(c[t]=!0,e.styles))for(o in n=e.styles)for(a in i=n[o])!c[t=i[a].fontFamily]&&d[t]&&(c[t]=!0);for(var f in c)l+=["\t\t@font-face {\n","\t\t\tfont-family: '",f,"';\n","\t\t\tsrc: url('",d[f],"');\n","\t\t}\n"].join("");return l&&(l=['\t<style type="text/css">',"<![CDATA[\n",l,"]]>","</style>\n"].join("")),l},_setSVGObjects:function(e,t){var n,i,r,o=this._objects;for(i=0,r=o.length;i<r;i++)(n=o[i]).excludeFromExport||this._setSVGObject(e,n,t)},_setSVGObject:function(e,t,n){e.push(t.toSVG(n))},_setSVGBgOverlayImage:function(e,t,n){this[t]&&!this[t].excludeFromExport&&this[t].toSVG&&e.push(this[t].toSVG(n))},_setSVGBgOverlayColor:function(e,t){var n=this[t+"Color"],i=this.viewportTransform,o=this.width,a=this.height;if(n)if(n.toLive){var s=n.repeat,u=r.util.invertTransform(i),l=this[t+"Vpt"]?r.util.matrixToSVG(u):"";e.push('<rect transform="'+l+" translate(",o/2,",",a/2,')"',' x="',n.offsetX-o/2,'" y="',n.offsetY-a/2,'" ','width="',"repeat-y"===s||"no-repeat"===s?n.source.width:o,'" height="',"repeat-x"===s||"no-repeat"===s?n.source.height:a,'" fill="url(#SVGID_'+n.id+')"',"></rect>\n")}else e.push('<rect x="0" y="0" width="100%" height="100%" ','fill="',n,'"',"></rect>\n")},sendToBack:function(e){if(!e)return this;var t,i,r,o=this._activeObject;if(e===o&&"activeSelection"===e.type)for(t=(r=o._objects).length;t--;)i=r[t],n(this._objects,i),this._objects.unshift(i);else n(this._objects,e),this._objects.unshift(e);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(e){if(!e)return this;var t,i,r,o=this._activeObject;if(e===o&&"activeSelection"===e.type)for(r=o._objects,t=0;t<r.length;t++)i=r[t],n(this._objects,i),this._objects.push(i);else n(this._objects,e),this._objects.push(e);return this.renderOnAddRemove&&this.requestRenderAll(),this},sendBackwards:function(e,t){if(!e)return this;var i,r,o,a,s,u=this._activeObject,l=0;if(e===u&&"activeSelection"===e.type)for(s=u._objects,i=0;i<s.length;i++)r=s[i],(o=this._objects.indexOf(r))>0+l&&(a=o-1,n(this._objects,r),this._objects.splice(a,0,r)),l++;else 0!==(o=this._objects.indexOf(e))&&(a=this._findNewLowerIndex(e,o,t),n(this._objects,e),this._objects.splice(a,0,e));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewLowerIndex:function(e,t,n){var i,r;if(n)for(i=t,r=t-1;r>=0;--r){if(e.intersectsWithObject(this._objects[r])||e.isContainedWithinObject(this._objects[r])||this._objects[r].isContainedWithinObject(e)){i=r;break}}else i=t-1;return i},bringForward:function(e,t){if(!e)return this;var i,r,o,a,s,u=this._activeObject,l=0;if(e===u&&"activeSelection"===e.type)for(i=(s=u._objects).length;i--;)r=s[i],(o=this._objects.indexOf(r))<this._objects.length-1-l&&(a=o+1,n(this._objects,r),this._objects.splice(a,0,r)),l++;else(o=this._objects.indexOf(e))!==this._objects.length-1&&(a=this._findNewUpperIndex(e,o,t),n(this._objects,e),this._objects.splice(a,0,e));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewUpperIndex:function(e,t,n){var i,r,o;if(n)for(i=t,r=t+1,o=this._objects.length;r<o;++r){if(e.intersectsWithObject(this._objects[r])||e.isContainedWithinObject(this._objects[r])||this._objects[r].isContainedWithinObject(e)){i=r;break}}else i=t+1;return i},moveTo:function(e,t){return n(this._objects,e),this._objects.splice(t,0,e),this.renderOnAddRemove&&this.requestRenderAll()},dispose:function(){return this.isRendering&&(r.util.cancelAnimFrame(this.isRendering),this.isRendering=0),this.forEachObject((function(e){e.dispose&&e.dispose()})),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose&&this.backgroundImage.dispose(),this.backgroundImage=null,this.overlayImage&&this.overlayImage.dispose&&this.overlayImage.dispose(),this.overlayImage=null,this._iTextInstances=null,this.contextContainer=null,r.util.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0,this},toString:function(){return"#<fabric.Canvas ("+this.complexity()+"): { objects: "+this._objects.length+" }>"}}),e(r.StaticCanvas.prototype,r.Observable),e(r.StaticCanvas.prototype,r.Collection),e(r.StaticCanvas.prototype,r.DataURLExporter),e(r.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(e){var t=u();if(!t||!t.getContext)return null;var n=t.getContext("2d");return n&&"setLineDash"===e?"undefined"!==typeof n.setLineDash:null}}),r.StaticCanvas.prototype.toJSON=r.StaticCanvas.prototype.toObject,r.isLikelyNode&&(r.StaticCanvas.prototype.createPNGStream=function(){var e=s(this.lowerCanvasEl);return e&&e.createPNGStream()},r.StaticCanvas.prototype.createJPEGStream=function(e){var t=s(this.lowerCanvasEl);return t&&t.createJPEGStream(e)})}}(),r.BaseBrush=r.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,_setBrushStyles:function(){var e=this.canvas.contextTop;e.strokeStyle=this.color,e.lineWidth=this.width,e.lineCap=this.strokeLineCap,e.miterLimit=this.strokeMiterLimit,e.lineJoin=this.strokeLineJoin,r.StaticCanvas.supports("setLineDash")&&e.setLineDash(this.strokeDashArray||[])},_saveAndTransform:function(e){var t=this.canvas.viewportTransform;e.save(),e.transform(t[0],t[1],t[2],t[3],t[4],t[5])},_setShadow:function(){if(this.shadow){var e=this.canvas,t=this.shadow,n=e.contextTop,i=e.getZoom();e&&e._isRetinaScaling()&&(i*=r.devicePixelRatio),n.shadowColor=t.color,n.shadowBlur=t.blur*i,n.shadowOffsetX=t.offsetX*i,n.shadowOffsetY=t.offsetY*i}},needsFullRender:function(){return new r.Color(this.color).getAlpha()<1||!!this.shadow},_resetShadow:function(){var e=this.canvas.contextTop;e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0}}),r.PencilBrush=r.util.createClass(r.BaseBrush,{decimate:.4,initialize:function(e){this.canvas=e,this._points=[]},_drawSegment:function(e,t,n){var i=t.midPointFrom(n);return e.quadraticCurveTo(t.x,t.y,i.x,i.y),i},onMouseDown:function(e,t){this.canvas._isMainEvent(t.e)&&(this._prepareForDrawing(e),this._captureDrawingPath(e),this._render())},onMouseMove:function(e,t){if(this.canvas._isMainEvent(t.e)&&this._captureDrawingPath(e)&&this._points.length>1)if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var n=this._points,i=n.length,r=this.canvas.contextTop;this._saveAndTransform(r),this.oldEnd&&(r.beginPath(),r.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(r,n[i-2],n[i-1],!0),r.stroke(),r.restore()}},onMouseUp:function(e){return!this.canvas._isMainEvent(e.e)||(this.oldEnd=void 0,this._finalizeAndAddPath(),!1)},_prepareForDrawing:function(e){var t=new r.Point(e.x,e.y);this._reset(),this._addPoint(t),this.canvas.contextTop.moveTo(t.x,t.y)},_addPoint:function(e){return!(this._points.length>1&&e.eq(this._points[this._points.length-1]))&&(this._points.push(e),!0)},_reset:function(){this._points=[],this._setBrushStyles(),this._setShadow()},_captureDrawingPath:function(e){var t=new r.Point(e.x,e.y);return this._addPoint(t)},_render:function(){var e,t,n=this.canvas.contextTop,i=this._points[0],o=this._points[1];if(this._saveAndTransform(n),n.beginPath(),2===this._points.length&&i.x===o.x&&i.y===o.y){var a=this.width/1e3;i=new r.Point(i.x,i.y),o=new r.Point(o.x,o.y),i.x-=a,o.x+=a}for(n.moveTo(i.x,i.y),e=1,t=this._points.length;e<t;e++)this._drawSegment(n,i,o),i=this._points[e],o=this._points[e+1];n.lineTo(i.x,i.y),n.stroke(),n.restore()},convertPointsToSVGPath:function(e){var t,n=[],i=this.width/1e3,o=new r.Point(e[0].x,e[0].y),a=new r.Point(e[1].x,e[1].y),s=e.length,u=1,l=0,c=s>2;for(c&&(u=e[2].x<a.x?-1:e[2].x===a.x?0:1,l=e[2].y<a.y?-1:e[2].y===a.y?0:1),n.push("M ",o.x-u*i," ",o.y-l*i," "),t=1;t<s;t++){if(!o.eq(a)){var d=o.midPointFrom(a);n.push("Q ",o.x," ",o.y," ",d.x," ",d.y," ")}o=e[t],t+1<e.length&&(a=e[t+1])}return c&&(u=o.x>e[t-2].x?1:o.x===e[t-2].x?0:-1,l=o.y>e[t-2].y?1:o.y===e[t-2].y?0:-1),n.push("L ",o.x+u*i," ",o.y+l*i),n},createPath:function(e){var t=new r.Path(e,{fill:null,stroke:this.color,strokeWidth:this.width,strokeLineCap:this.strokeLineCap,strokeMiterLimit:this.strokeMiterLimit,strokeLineJoin:this.strokeLineJoin,strokeDashArray:this.strokeDashArray});return this.shadow&&(this.shadow.affectStroke=!0,t.shadow=new r.Shadow(this.shadow)),t},decimatePoints:function(e,t){if(e.length<=2)return e;var n,i=this.canvas.getZoom(),o=Math.pow(t/i,2),a=e.length-1,s=e[0],u=[s];for(n=1;n<a;n++)Math.pow(s.x-e[n].x,2)+Math.pow(s.y-e[n].y,2)>=o&&(s=e[n],u.push(s));return 1===u.length&&u.push(new r.Point(u[0].x,u[0].y)),u},_finalizeAndAddPath:function(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var e=this.convertPointsToSVGPath(this._points).join("");if("M 0 0 Q 0 0 0 0 L 0 0"!==e){var t=this.createPath(e);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:t}),this.canvas.add(t),this.canvas.requestRenderAll(),t.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:t})}else this.canvas.requestRenderAll()}}),r.CircleBrush=r.util.createClass(r.BaseBrush,{width:10,initialize:function(e){this.canvas=e,this.points=[]},drawDot:function(e){var t=this.addPoint(e),n=this.canvas.contextTop;this._saveAndTransform(n),this.dot(n,t),n.restore()},dot:function(e,t){e.fillStyle=t.fill,e.beginPath(),e.arc(t.x,t.y,t.radius,0,2*Math.PI,!1),e.closePath(),e.fill()},onMouseDown:function(e){this.points.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(e)},_render:function(){var e,t,n=this.canvas.contextTop,i=this.points;for(this._saveAndTransform(n),e=0,t=i.length;e<t;e++)this.dot(n,i[e]);n.restore()},onMouseMove:function(e){this.needsFullRender()?(this.canvas.clearContext(this.canvas.contextTop),this.addPoint(e),this._render()):this.drawDot(e)},onMouseUp:function(){var e,t,n=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;var i=[];for(e=0,t=this.points.length;e<t;e++){var o=this.points[e],a=new r.Circle({radius:o.radius,left:o.x,top:o.y,originX:"center",originY:"center",fill:o.fill});this.shadow&&(a.shadow=new r.Shadow(this.shadow)),i.push(a)}var s=new r.Group(i);s.canvas=this.canvas,this.canvas.fire("before:path:created",{path:s}),this.canvas.add(s),this.canvas.fire("path:created",{path:s}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=n,this.canvas.requestRenderAll()},addPoint:function(e){var t=new r.Point(e.x,e.y),n=r.util.getRandomInt(Math.max(0,this.width-20),this.width+20)/2,i=new r.Color(this.color).setAlpha(r.util.getRandomInt(0,100)/100).toRgba();return t.radius=n,t.fill=i,this.points.push(t),t}}),r.SprayBrush=r.util.createClass(r.BaseBrush,{width:10,density:20,dotWidth:1,dotWidthVariance:1,randomOpacity:!1,optimizeOverlapping:!0,initialize:function(e){this.canvas=e,this.sprayChunks=[]},onMouseDown:function(e){this.sprayChunks.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.addSprayChunk(e),this.render(this.sprayChunkPoints)},onMouseMove:function(e){this.addSprayChunk(e),this.render(this.sprayChunkPoints)},onMouseUp:function(){var e=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;for(var t=[],n=0,i=this.sprayChunks.length;n<i;n++)for(var o=this.sprayChunks[n],a=0,s=o.length;a<s;a++){var u=new r.Rect({width:o[a].width,height:o[a].width,left:o[a].x+1,top:o[a].y+1,originX:"center",originY:"center",fill:this.color});t.push(u)}this.optimizeOverlapping&&(t=this._getOptimizedRects(t));var l=new r.Group(t);this.shadow&&l.set("shadow",new r.Shadow(this.shadow)),this.canvas.fire("before:path:created",{path:l}),this.canvas.add(l),this.canvas.fire("path:created",{path:l}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=e,this.canvas.requestRenderAll()},_getOptimizedRects:function(e){var t,n,i,r={};for(n=0,i=e.length;n<i;n++)r[t=e[n].left+""+e[n].top]||(r[t]=e[n]);var o=[];for(t in r)o.push(r[t]);return o},render:function(e){var t,n,i=this.canvas.contextTop;for(i.fillStyle=this.color,this._saveAndTransform(i),t=0,n=e.length;t<n;t++){var r=e[t];"undefined"!==typeof r.opacity&&(i.globalAlpha=r.opacity),i.fillRect(r.x,r.y,r.width,r.width)}i.restore()},_render:function(){var e,t,n=this.canvas.contextTop;for(n.fillStyle=this.color,this._saveAndTransform(n),e=0,t=this.sprayChunks.length;e<t;e++)this.render(this.sprayChunks[e]);n.restore()},addSprayChunk:function(e){this.sprayChunkPoints=[];var t,n,i,o,a=this.width/2;for(o=0;o<this.density;o++){t=r.util.getRandomInt(e.x-a,e.x+a),n=r.util.getRandomInt(e.y-a,e.y+a),i=this.dotWidthVariance?r.util.getRandomInt(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):this.dotWidth;var s=new r.Point(t,n);s.width=i,this.randomOpacity&&(s.opacity=r.util.getRandomInt(0,100)/100),this.sprayChunkPoints.push(s)}this.sprayChunks.push(this.sprayChunkPoints)}}),r.PatternBrush=r.util.createClass(r.PencilBrush,{getPatternSrc:function(){var e=r.util.createCanvasElement(),t=e.getContext("2d");return e.width=e.height=25,t.fillStyle=this.color,t.beginPath(),t.arc(10,10,10,0,2*Math.PI,!1),t.closePath(),t.fill(),e},getPatternSrcFunction:function(){return String(this.getPatternSrc).replace("this.color",'"'+this.color+'"')},getPattern:function(){return this.canvas.contextTop.createPattern(this.source||this.getPatternSrc(),"repeat")},_setBrushStyles:function(){this.callSuper("_setBrushStyles"),this.canvas.contextTop.strokeStyle=this.getPattern()},createPath:function(e){var t=this.callSuper("createPath",e),n=t._getLeftTopCoords().scalarAdd(t.strokeWidth/2);return t.stroke=new r.Pattern({source:this.source||this.getPatternSrcFunction(),offsetX:-n.x,offsetY:-n.y}),t}}),function(){var e=r.util.getPointer,t=r.util.degreesToRadians,n=Math.abs,i=r.StaticCanvas.supports("setLineDash"),o=r.util.isTouchEvent,a=.5;for(var s in r.Canvas=r.util.createClass(r.StaticCanvas,{initialize:function(e,t){t||(t={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(e,t),this._initInteractive(),this._createCacheCanvas()},uniformScaling:!0,uniScaleKey:"shiftKey",centeredScaling:!1,centeredRotation:!1,centeredKey:"altKey",altActionKey:"shiftKey",interactive:!0,selection:!0,selectionKey:"shiftKey",altSelectionKey:null,selectionColor:"rgba(100, 100, 255, 0.3)",selectionDashArray:[],selectionBorderColor:"rgba(255, 255, 255, 0.3)",selectionLineWidth:1,selectionFullyContained:!1,hoverCursor:"move",moveCursor:"move",defaultCursor:"default",freeDrawingCursor:"crosshair",rotationCursor:"crosshair",notAllowedCursor:"not-allowed",containerClass:"canvas-container",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,isDrawingMode:!1,preserveObjectStacking:!1,snapAngle:0,snapThreshold:null,stopContextMenu:!1,fireRightClick:!1,fireMiddleClick:!1,targets:[],_hoveredTarget:null,_hoveredTargets:[],_initInteractive:function(){this._currentTransform=null,this._groupSelector=null,this._initWrapperElement(),this._createUpperCanvas(),this._initEventListeners(),this._initRetinaScaling(),this.freeDrawingBrush=r.PencilBrush&&new r.PencilBrush(this),this.calcOffset()},_chooseObjectsToRender:function(){var e,t,n,i=this.getActiveObjects();if(i.length>0&&!this.preserveObjectStacking){t=[],n=[];for(var r=0,o=this._objects.length;r<o;r++)e=this._objects[r],-1===i.indexOf(e)?t.push(e):n.push(e);i.length>1&&(this._activeObject._objects=n),t.push.apply(t,n)}else t=this._objects;return t},renderAll:function(){!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&this.renderTopLayer(this.contextTop);var e=this.contextContainer;return this.renderCanvas(e,this._chooseObjectsToRender()),this},renderTopLayer:function(e){e.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(e),this.contextTopDirty=!0),e.restore()},renderTop:function(){var e=this.contextTop;return this.clearContext(e),this.renderTopLayer(e),this.fire("after:render"),this},_normalizePointer:function(e,t){var n=e.calcTransformMatrix(),i=r.util.invertTransform(n),o=this.restorePointerVpt(t);return r.util.transformPoint(o,i)},isTargetTransparent:function(e,t,n){if(e.shouldCache()&&e._cacheCanvas&&e!==this._activeObject){var i=this._normalizePointer(e,{x:t,y:n}),o=Math.max(e.cacheTranslationX+i.x*e.zoomX,0),a=Math.max(e.cacheTranslationY+i.y*e.zoomY,0);return r.util.isTransparent(e._cacheContext,Math.round(o),Math.round(a),this.targetFindTolerance)}var s=this.contextCache,u=e.selectionBackgroundColor,l=this.viewportTransform;return e.selectionBackgroundColor="",this.clearContext(s),s.save(),s.transform(l[0],l[1],l[2],l[3],l[4],l[5]),e.render(s),s.restore(),e===this._activeObject&&e._renderControls(s,{hasBorders:!1,transparentCorners:!1},{hasBorders:!1}),e.selectionBackgroundColor=u,r.util.isTransparent(s,t,n,this.targetFindTolerance)},_isSelectionKeyPressed:function(e){return"[object Array]"===Object.prototype.toString.call(this.selectionKey)?!!this.selectionKey.find((function(t){return!0===e[t]})):e[this.selectionKey]},_shouldClearSelection:function(e,t){var n=this.getActiveObjects(),i=this._activeObject;return!t||t&&i&&n.length>1&&-1===n.indexOf(t)&&i!==t&&!this._isSelectionKeyPressed(e)||t&&!t.evented||t&&!t.selectable&&i&&i!==t},_shouldCenterTransform:function(e,t,n){var i;if(e)return"scale"===t||"scaleX"===t||"scaleY"===t||"resizing"===t?i=this.centeredScaling||e.centeredScaling:"rotate"===t&&(i=this.centeredRotation||e.centeredRotation),i?!n:n},_getOriginFromCorner:function(e,t){var n={x:e.originX,y:e.originY};return"ml"===t||"tl"===t||"bl"===t?n.x="right":"mr"!==t&&"tr"!==t&&"br"!==t||(n.x="left"),"tl"===t||"mt"===t||"tr"===t?n.y="bottom":"bl"===t||"mb"===t||"br"===t?n.y="top":"mtr"===t&&(n.x="center",n.y="center"),n},_getActionFromCorner:function(e,t,n,i){if(!t||!e)return"drag";var r=i.controls[t];return r.getActionName(n,r,i)},_setupCurrentTransform:function(e,n,i){if(n){var o=this.getPointer(e),a=n.__corner,s=i&&a?n.controls[a].getActionHandler():r.controlsUtils.dragHandler,u=this._getActionFromCorner(i,a,e,n),l=this._getOriginFromCorner(n,a),c=e[this.centeredKey],d={target:n,action:u,actionHandler:s,corner:a,scaleX:n.scaleX,scaleY:n.scaleY,skewX:n.skewX,skewY:n.skewY,offsetX:o.x-n.left,offsetY:o.y-n.top,originX:l.x,originY:l.y,ex:o.x,ey:o.y,lastX:o.x,lastY:o.y,theta:t(n.angle),width:n.width*n.scaleX,shiftKey:e.shiftKey,altKey:c,original:r.util.saveObjectTransform(n)};this._shouldCenterTransform(n,u,c)&&(d.originX="center",d.originY="center"),d.original.originX=l.x,d.original.originY=l.y,this._currentTransform=d,this._beforeTransform(e)}},setCursor:function(e){this.upperCanvasEl.style.cursor=e},_drawSelection:function(e){var t=this._groupSelector,o=t.left,s=t.top,u=n(o),l=n(s);if(this.selectionColor&&(e.fillStyle=this.selectionColor,e.fillRect(t.ex-(o>0?0:-o),t.ey-(s>0?0:-s),u,l)),this.selectionLineWidth&&this.selectionBorderColor)if(e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor,this.selectionDashArray.length>1&&!i){var c=t.ex+a-(o>0?0:u),d=t.ey+a-(s>0?0:l);e.beginPath(),r.util.drawDashedLine(e,c,d,c+u,d,this.selectionDashArray),r.util.drawDashedLine(e,c,d+l-1,c+u,d+l-1,this.selectionDashArray),r.util.drawDashedLine(e,c,d,c,d+l,this.selectionDashArray),r.util.drawDashedLine(e,c+u-1,d,c+u-1,d+l,this.selectionDashArray),e.closePath(),e.stroke()}else r.Object.prototype._setLineDash.call(this,e,this.selectionDashArray),e.strokeRect(t.ex+a-(o>0?0:u),t.ey+a-(s>0?0:l),u,l)},findTarget:function(e,t){if(!this.skipTargetFind){var n,i,r=this.getPointer(e,!0),a=this._activeObject,s=this.getActiveObjects(),u=o(e);if(this.targets=[],s.length>1&&!t&&a===this._searchPossibleTargets([a],r))return a;if(1===s.length&&a._findTargetCorner(r,u))return a;if(1===s.length&&a===this._searchPossibleTargets([a],r)){if(!this.preserveObjectStacking)return a;n=a,i=this.targets,this.targets=[]}var l=this._searchPossibleTargets(this._objects,r);return e[this.altSelectionKey]&&l&&n&&l!==n&&(l=n,this.targets=i),l}},_checkTarget:function(e,t,n){if(t&&t.visible&&t.evented&&(t.containsPoint(e)||t._findTargetCorner(e))){if(!this.perPixelTargetFind&&!t.perPixelTargetFind||t.isEditing)return!0;if(!this.isTargetTransparent(t,n.x,n.y))return!0}},_searchPossibleTargets:function(e,t){for(var n,i,o=e.length;o--;){var a=e[o],s=a.group?this._normalizePointer(a.group,t):t;if(this._checkTarget(s,a,t)){(n=e[o]).subTargetCheck&&n instanceof r.Group&&(i=this._searchPossibleTargets(n._objects,t))&&this.targets.push(i);break}}return n},restorePointerVpt:function(e){return r.util.transformPoint(e,r.util.invertTransform(this.viewportTransform))},getPointer:function(t,n){if(this._absolutePointer&&!n)return this._absolutePointer;if(this._pointer&&n)return this._pointer;var i,r=e(t),o=this.upperCanvasEl,a=o.getBoundingClientRect(),s=a.width||0,u=a.height||0;s&&u||("top"in a&&"bottom"in a&&(u=Math.abs(a.top-a.bottom)),"right"in a&&"left"in a&&(s=Math.abs(a.right-a.left))),this.calcOffset(),r.x=r.x-this._offset.left,r.y=r.y-this._offset.top,n||(r=this.restorePointerVpt(r));var l=this.getRetinaScaling();return 1!==l&&(r.x/=l,r.y/=l),i=0===s||0===u?{width:1,height:1}:{width:o.width/s,height:o.height/u},{x:r.x*i.width,y:r.y*i.height}},_createUpperCanvas:function(){var e=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),t=this.lowerCanvasEl,n=this.upperCanvasEl;n?n.className="":(n=this._createCanvasElement(),this.upperCanvasEl=n),r.util.addClass(n,"upper-canvas "+e),this.wrapperEl.appendChild(n),this._copyCanvasStyle(t,n),this._applyCanvasStyle(n),this.contextTop=n.getContext("2d")},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=r.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),r.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),r.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(e){var t=this.width||e.width,n=this.height||e.height;r.util.setStyle(e,{position:"absolute",width:t+"px",height:n+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),e.width=t,e.height=n,r.util.makeElementUnselectable(e)},_copyCanvasStyle:function(e,t){t.style.cssText=e.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},getActiveObject:function(){return this._activeObject},getActiveObjects:function(){var e=this._activeObject;return e?"activeSelection"===e.type&&e._objects?e._objects.slice(0):[e]:[]},_onObjectRemoved:function(e){e===this._activeObject&&(this.fire("before:selection:cleared",{target:e}),this._discardActiveObject(),this.fire("selection:cleared",{target:e}),e.fire("deselected")),e===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),this.callSuper("_onObjectRemoved",e)},_fireSelectionEvents:function(e,t){var n=!1,i=this.getActiveObjects(),r=[],o=[],a={e:t};e.forEach((function(e){-1===i.indexOf(e)&&(n=!0,e.fire("deselected",a),o.push(e))})),i.forEach((function(t){-1===e.indexOf(t)&&(n=!0,t.fire("selected",a),r.push(t))})),e.length>0&&i.length>0?(a.selected=r,a.deselected=o,a.updated=r[0]||o[0],a.target=this._activeObject,n&&this.fire("selection:updated",a)):i.length>0?(a.selected=r,a.target=this._activeObject,this.fire("selection:created",a)):e.length>0&&(a.deselected=o,this.fire("selection:cleared",a))},setActiveObject:function(e,t){var n=this.getActiveObjects();return this._setActiveObject(e,t),this._fireSelectionEvents(n,t),this},_setActiveObject:function(e,t){return this._activeObject!==e&&(!!this._discardActiveObject(t,e)&&(!e.onSelect({e:t})&&(this._activeObject=e,!0)))},_discardActiveObject:function(e,t){var n=this._activeObject;if(n){if(n.onDeselect({e:e,object:t}))return!1;this._activeObject=null}return!0},discardActiveObject:function(e){var t=this.getActiveObjects(),n=this.getActiveObject();return t.length&&this.fire("before:selection:cleared",{target:n,e:e}),this._discardActiveObject(e),this._fireSelectionEvents(t,e),this},dispose:function(){var e=this.wrapperEl;return this.removeListeners(),e.removeChild(this.upperCanvasEl),e.removeChild(this.lowerCanvasEl),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach(function(e){r.util.cleanUpJsdomNode(this[e]),this[e]=void 0}.bind(this)),e.parentNode&&e.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,r.StaticCanvas.prototype.dispose.call(this),this},clear:function(){return this.discardActiveObject(),this.clearContext(this.contextTop),this.callSuper("clear")},drawControls:function(e){var t=this._activeObject;t&&t._renderControls(e)},_toObject:function(e,t,n){var i=this._realizeGroupTransformOnObject(e),r=this.callSuper("_toObject",e,t,n);return this._unwindGroupTransformOnObject(e,i),r},_realizeGroupTransformOnObject:function(e){if(e.group&&"activeSelection"===e.group.type&&this._activeObject===e.group){var t={};return["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"].forEach((function(n){t[n]=e[n]})),this._activeObject.realizeTransform(e),t}return null},_unwindGroupTransformOnObject:function(e,t){t&&e.set(t)},_setSVGObject:function(e,t,n){var i=this._realizeGroupTransformOnObject(t);this.callSuper("_setSVGObject",e,t,n),this._unwindGroupTransformOnObject(t,i)},setViewportTransform:function(e){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),r.StaticCanvas.prototype.setViewportTransform.call(this,e)}}),r.StaticCanvas)"prototype"!==s&&(r.Canvas[s]=r.StaticCanvas[s])}(),function(){var e=r.util.addListener,t=r.util.removeListener,n={passive:!1};function i(e,t){return e.button&&e.button===t-1}r.util.object.extend(r.Canvas.prototype,{mainTouchId:null,_initEventListeners:function(){this.removeListeners(),this._bindEvents(),this.addOrRemove(e,"add")},_getEventPrefix:function(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove:function(e,t){var i=this.upperCanvasEl,o=this._getEventPrefix();e(r.window,"resize",this._onResize),e(i,o+"down",this._onMouseDown),e(i,o+"move",this._onMouseMove,n),e(i,o+"out",this._onMouseOut),e(i,o+"enter",this._onMouseEnter),e(i,"wheel",this._onMouseWheel),e(i,"contextmenu",this._onContextMenu),e(i,"dblclick",this._onDoubleClick),e(i,"dragover",this._onDragOver),e(i,"dragenter",this._onDragEnter),e(i,"dragleave",this._onDragLeave),e(i,"drop",this._onDrop),this.enablePointerEvents||e(i,"touchstart",this._onTouchStart,n),"undefined"!==typeof eventjs&&t in eventjs&&(eventjs[t](i,"gesture",this._onGesture),eventjs[t](i,"drag",this._onDrag),eventjs[t](i,"orientation",this._onOrientationChange),eventjs[t](i,"shake",this._onShake),eventjs[t](i,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(t,"remove");var e=this._getEventPrefix();t(r.document,e+"up",this._onMouseUp),t(r.document,"touchend",this._onTouchEnd,n),t(r.document,e+"move",this._onMouseMove,n),t(r.document,"touchmove",this._onMouseMove,n)},_bindEvents:function(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onGesture=this._onGesture.bind(this),this._onDrag=this._onDrag.bind(this),this._onShake=this._onShake.bind(this),this._onLongPress=this._onLongPress.bind(this),this._onOrientationChange=this._onOrientationChange.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._simpleEventHandler.bind(this,"drop"),this.eventsBound=!0)},_onGesture:function(e,t){this.__onTransformGesture&&this.__onTransformGesture(e,t)},_onDrag:function(e,t){this.__onDrag&&this.__onDrag(e,t)},_onMouseWheel:function(e){this.__onMouseWheel(e)},_onMouseOut:function(e){var t=this._hoveredTarget;this.fire("mouse:out",{target:t,e:e}),this._hoveredTarget=null,t&&t.fire("mouseout",{e:e});var n=this;this._hoveredTargets.forEach((function(i){n.fire("mouse:out",{target:t,e:e}),i&&t.fire("mouseout",{e:e})})),this._hoveredTargets=[],this._iTextInstances&&this._iTextInstances.forEach((function(e){e.isEditing&&e.hiddenTextarea.focus()}))},_onMouseEnter:function(e){this._currentTransform||this.findTarget(e)||(this.fire("mouse:over",{target:null,e:e}),this._hoveredTarget=null,this._hoveredTargets=[])},_onOrientationChange:function(e,t){this.__onOrientationChange&&this.__onOrientationChange(e,t)},_onShake:function(e,t){this.__onShake&&this.__onShake(e,t)},_onLongPress:function(e,t){this.__onLongPress&&this.__onLongPress(e,t)},_onDragOver:function(e){e.preventDefault();var t=this._simpleEventHandler("dragover",e);this._fireEnterLeaveEvents(t,e)},_onContextMenu:function(e){return this.stopContextMenu&&(e.stopPropagation(),e.preventDefault()),!1},_onDoubleClick:function(e){this._cacheTransformEventData(e),this._handleEvent(e,"dblclick"),this._resetTransformEventData(e)},getPointerId:function(e){var t=e.changedTouches;return t?t[0]&&t[0].identifier:this.enablePointerEvents?e.pointerId:-1},_isMainEvent:function(e){return!0===e.isPrimary||!1!==e.isPrimary&&("touchend"===e.type&&0===e.touches.length||(!e.changedTouches||e.changedTouches[0].identifier===this.mainTouchId))},_onTouchStart:function(i){i.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(i)),this.__onMouseDown(i),this._resetTransformEventData();var o=this.upperCanvasEl,a=this._getEventPrefix();e(r.document,"touchend",this._onTouchEnd,n),e(r.document,"touchmove",this._onMouseMove,n),t(o,a+"down",this._onMouseDown)},_onMouseDown:function(i){this.__onMouseDown(i),this._resetTransformEventData();var o=this.upperCanvasEl,a=this._getEventPrefix();t(o,a+"move",this._onMouseMove,n),e(r.document,a+"up",this._onMouseUp),e(r.document,a+"move",this._onMouseMove,n)},_onTouchEnd:function(i){if(!(i.touches.length>0)){this.__onMouseUp(i),this._resetTransformEventData(),this.mainTouchId=null;var o=this._getEventPrefix();t(r.document,"touchend",this._onTouchEnd,n),t(r.document,"touchmove",this._onMouseMove,n);var a=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((function(){e(a.upperCanvasEl,o+"down",a._onMouseDown),a._willAddMouseDown=0}),400)}},_onMouseUp:function(i){this.__onMouseUp(i),this._resetTransformEventData();var o=this.upperCanvasEl,a=this._getEventPrefix();this._isMainEvent(i)&&(t(r.document,a+"up",this._onMouseUp),t(r.document,a+"move",this._onMouseMove,n),e(o,a+"move",this._onMouseMove,n))},_onMouseMove:function(e){!this.allowTouchScrolling&&e.preventDefault&&e.preventDefault(),this.__onMouseMove(e)},_onResize:function(){this.calcOffset()},_shouldRender:function(e){var t=this._activeObject;return!!(!!t!==!!e||t&&e&&t!==e)||(t&&t.isEditing,!1)},__onMouseUp:function(e){var t,n=this._currentTransform,o=this._groupSelector,a=!1,s=!o||0===o.left&&0===o.top;if(this._cacheTransformEventData(e),t=this._target,this._handleEvent(e,"up:before"),i(e,3))this.fireRightClick&&this._handleEvent(e,"up",3,s);else{if(i(e,2))return this.fireMiddleClick&&this._handleEvent(e,"up",2,s),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)this._onMouseUpInDrawingMode(e);else if(this._isMainEvent(e)){if(n&&(this._finalizeCurrentTransform(e),a=n.actionPerformed),!s){var u=t===this._activeObject;this._maybeGroupObjects(e),a||(a=this._shouldRender(t)||!u&&t===this._activeObject)}if(t){var l=t._findTargetCorner(this.getPointer(e,!0),r.util.isTouchEvent(e)),c=t.controls[l],d=c&&c.getMouseUpHandler(e,t,c);d&&d(e,t,c),t.isMoving=!1}this._setCursorFromEvent(e,t),this._handleEvent(e,"up",1,s),this._groupSelector=null,this._currentTransform=null,t&&(t.__corner=0),a?this.requestRenderAll():s||this.renderTop()}}},_simpleEventHandler:function(e,t){var n=this.findTarget(t),i=this.targets,r={e:t,target:n,subTargets:i};if(this.fire(e,r),n&&n.fire(e,r),!i)return n;for(var o=0;o<i.length;o++)i[o].fire(e,r);return n},_handleEvent:function(e,t,n,i){var r=this._target,o=this.targets||[],a={e:e,target:r,subTargets:o,button:n||1,isClick:i||!1,pointer:this._pointer,absolutePointer:this._absolutePointer,transform:this._currentTransform};"up"===t&&(a.currentTarget=this.findTarget(e),a.currentSubTargets=this.targets),this.fire("mouse:"+t,a),r&&r.fire("mouse"+t,a);for(var s=0;s<o.length;s++)o[s].fire("mouse"+t,a)},_finalizeCurrentTransform:function(e){var t,n=this._currentTransform,i=n.target,r={e:e,target:i,transform:n,action:n.action};i._scaling&&(i._scaling=!1),i.setCoords(),(n.actionPerformed||this.stateful&&i.hasStateChanged())&&(n.actionPerformed&&(t=this._addEventOptions(r,n),this._fire(t,r)),this._fire("modified",r))},_addEventOptions:function(e,t){var n,i;switch(t.action){case"scaleX":n="scaled",i="x";break;case"scaleY":n="scaled",i="y";break;case"skewX":n="skewed",i="x";break;case"skewY":n="skewed",i="y";break;case"scale":n="scaled",i="equally";break;case"rotate":n="rotated";break;case"drag":n="moved"}return e.by=i,n},_onMouseDownInDrawingMode:function(e){this._isCurrentlyDrawing=!0,this.getActiveObject()&&this.discardActiveObject(e).requestRenderAll();var t=this.getPointer(e);this.freeDrawingBrush.onMouseDown(t,{e:e,pointer:t}),this._handleEvent(e,"down")},_onMouseMoveInDrawingMode:function(e){if(this._isCurrentlyDrawing){var t=this.getPointer(e);this.freeDrawingBrush.onMouseMove(t,{e:e,pointer:t})}this.setCursor(this.freeDrawingCursor),this._handleEvent(e,"move")},_onMouseUpInDrawingMode:function(e){var t=this.getPointer(e);this._isCurrentlyDrawing=this.freeDrawingBrush.onMouseUp({e:e,pointer:t}),this._handleEvent(e,"up")},__onMouseDown:function(e){this._cacheTransformEventData(e),this._handleEvent(e,"down:before");var t=this._target;if(i(e,3))this.fireRightClick&&this._handleEvent(e,"down",3);else if(i(e,2))this.fireMiddleClick&&this._handleEvent(e,"down",2);else if(this.isDrawingMode)this._onMouseDownInDrawingMode(e);else if(this._isMainEvent(e)&&!this._currentTransform){var n=this._pointer;this._previousPointer=n;var o=this._shouldRender(t),a=this._shouldGroup(e,t);if(this._shouldClearSelection(e,t)?this.discardActiveObject(e):a&&(this._handleGrouping(e,t),t=this._activeObject),!this.selection||t&&(t.selectable||t.isEditing||t===this._activeObject)||(this._groupSelector={ex:n.x,ey:n.y,top:0,left:0}),t){var s=t===this._activeObject;t.selectable&&this.setActiveObject(t,e);var u=t._findTargetCorner(this.getPointer(e,!0),r.util.isTouchEvent(e));if(t.__corner=u,t===this._activeObject&&(u||!a)){var l=t.controls[u],c=l&&l.getMouseDownHandler(e,t,l);c&&c(e,t,l),this._setupCurrentTransform(e,t,s)}}this._handleEvent(e,"down"),(o||a)&&this.requestRenderAll()}},_resetTransformEventData:function(){this._target=null,this._pointer=null,this._absolutePointer=null},_cacheTransformEventData:function(e){this._resetTransformEventData(),this._pointer=this.getPointer(e,!0),this._absolutePointer=this.restorePointerVpt(this._pointer),this._target=this._currentTransform?this._currentTransform.target:this.findTarget(e)||null},_beforeTransform:function(e){var t=this._currentTransform;this.stateful&&t.target.saveState(),this.fire("before:transform",{e:e,transform:t})},__onMouseMove:function(e){var t,n;if(this._handleEvent(e,"move:before"),this._cacheTransformEventData(e),this.isDrawingMode)this._onMouseMoveInDrawingMode(e);else if(this._isMainEvent(e)){var i=this._groupSelector;i?(n=this._pointer,i.left=n.x-i.ex,i.top=n.y-i.ey,this.renderTop()):this._currentTransform?this._transformObject(e):(t=this.findTarget(e)||null,this._setCursorFromEvent(e,t),this._fireOverOutEvents(t,e)),this._handleEvent(e,"move"),this._resetTransformEventData()}},_fireOverOutEvents:function(e,t){var n=this._hoveredTarget,i=this._hoveredTargets,r=this.targets,o=Math.max(i.length,r.length);this.fireSyntheticInOutEvents(e,t,{oldTarget:n,evtOut:"mouseout",canvasEvtOut:"mouse:out",evtIn:"mouseover",canvasEvtIn:"mouse:over"});for(var a=0;a<o;a++)this.fireSyntheticInOutEvents(r[a],t,{oldTarget:i[a],evtOut:"mouseout",evtIn:"mouseover"});this._hoveredTarget=e,this._hoveredTargets=this.targets.concat()},_fireEnterLeaveEvents:function(e,t){var n=this._draggedoverTarget,i=this._hoveredTargets,r=this.targets,o=Math.max(i.length,r.length);this.fireSyntheticInOutEvents(e,t,{oldTarget:n,evtOut:"dragleave",evtIn:"dragenter"});for(var a=0;a<o;a++)this.fireSyntheticInOutEvents(r[a],t,{oldTarget:i[a],evtOut:"dragleave",evtIn:"dragenter"});this._draggedoverTarget=e},fireSyntheticInOutEvents:function(e,t,n){var i,r,o,a=n.oldTarget,s=a!==e,u=n.canvasEvtIn,l=n.canvasEvtOut;s&&(i={e:t,target:e,previousTarget:a},r={e:t,target:a,nextTarget:e}),o=e&&s,a&&s&&(l&&this.fire(l,r),a.fire(n.evtOut,r)),o&&(u&&this.fire(u,i),e.fire(n.evtIn,i))},__onMouseWheel:function(e){this._cacheTransformEventData(e),this._handleEvent(e,"wheel"),this._resetTransformEventData()},_transformObject:function(e){var t=this.getPointer(e),n=this._currentTransform;n.reset=!1,n.target.isMoving=!0,n.shiftKey=e.shiftKey,n.altKey=e[this.centeredKey],this._performTransformAction(e,n,t),n.actionPerformed&&this.requestRenderAll()},_performTransformAction:function(e,t,n){var i=n.x,r=n.y,o=t.action,a=!1,s=t.actionHandler;s&&(a=s(e,t,i,r)),"drag"===o&&a&&this.setCursor(t.target.moveCursor||this.moveCursor),t.actionPerformed=t.actionPerformed||a},_fire:r.controlsUtils.fireEvent,_setCursorFromEvent:function(e,t){if(!t)return this.setCursor(this.defaultCursor),!1;var n=t.hoverCursor||this.hoverCursor,i=this._activeObject&&"activeSelection"===this._activeObject.type?this._activeObject:null,r=(!i||!i.contains(t))&&t._findTargetCorner(this.getPointer(e,!0));r?this.setCursor(this.getCornerCursor(r,t,e)):(t.subTargetCheck&&this.targets.concat().reverse().map((function(e){n=e.hoverCursor||n})),this.setCursor(n))},getCornerCursor:function(e,t,n){var i=t.controls[e];return i.cursorStyleHandler(n,i,t)}})}(),function(){var e=Math.min,t=Math.max;r.util.object.extend(r.Canvas.prototype,{_shouldGroup:function(e,t){var n=this._activeObject;return n&&this._isSelectionKeyPressed(e)&&t&&t.selectable&&this.selection&&(n!==t||"activeSelection"===n.type)&&!t.onSelect({e:e})},_handleGrouping:function(e,t){var n=this._activeObject;n.__corner||(t!==n||(t=this.findTarget(e,!0))&&t.selectable)&&(n&&"activeSelection"===n.type?this._updateActiveSelection(t,e):this._createActiveSelection(t,e))},_updateActiveSelection:function(e,t){var n=this._activeObject,i=n._objects.slice(0);n.contains(e)?(n.removeWithUpdate(e),this._hoveredTarget=e,this._hoveredTargets=this.targets.concat(),1===n.size()&&this._setActiveObject(n.item(0),t)):(n.addWithUpdate(e),this._hoveredTarget=n,this._hoveredTargets=this.targets.concat()),this._fireSelectionEvents(i,t)},_createActiveSelection:function(e,t){var n=this.getActiveObjects(),i=this._createGroup(e);this._hoveredTarget=i,this._setActiveObject(i,t),this._fireSelectionEvents(n,t)},_createGroup:function(e){var t=this._objects,n=t.indexOf(this._activeObject)<t.indexOf(e)?[this._activeObject,e]:[e,this._activeObject];return this._activeObject.isEditing&&this._activeObject.exitEditing(),new r.ActiveSelection(n,{canvas:this})},_groupSelectedObjects:function(e){var t,n=this._collectObjects(e);1===n.length?this.setActiveObject(n[0],e):n.length>1&&(t=new r.ActiveSelection(n.reverse(),{canvas:this}),this.setActiveObject(t,e))},_collectObjects:function(n){for(var i,o=[],a=this._groupSelector.ex,s=this._groupSelector.ey,u=a+this._groupSelector.left,l=s+this._groupSelector.top,c=new r.Point(e(a,u),e(s,l)),d=new r.Point(t(a,u),t(s,l)),h=!this.selectionFullyContained,f=a===u&&s===l,p=this._objects.length;p--&&!((i=this._objects[p])&&i.selectable&&i.visible&&(h&&i.intersectsWithRect(c,d)||i.isContainedWithinRect(c,d)||h&&i.containsPoint(c)||h&&i.containsPoint(d))&&(o.push(i),f)););return o.length>1&&(o=o.filter((function(e){return!e.onSelect({e:n})}))),o},_maybeGroupObjects:function(e){this.selection&&this._groupSelector&&this._groupSelectedObjects(e),this.setCursor(this.defaultCursor),this._groupSelector=null}})}(),r.util.object.extend(r.StaticCanvas.prototype,{toDataURL:function(e){e||(e={});var t=e.format||"png",n=e.quality||1,i=(e.multiplier||1)*(e.enableRetinaScaling?this.getRetinaScaling():1),o=this.toCanvasElement(i,e);return r.util.toDataURL(o,t,n)},toCanvasElement:function(e,t){e=e||1;var n=((t=t||{}).width||this.width)*e,i=(t.height||this.height)*e,o=this.getZoom(),a=this.width,s=this.height,u=o*e,l=this.viewportTransform,c=(l[4]-(t.left||0))*e,d=(l[5]-(t.top||0))*e,h=this.interactive,f=[u,0,0,u,c,d],p=this.enableRetinaScaling,g=r.util.createCanvasElement(),v=this.contextTop;return g.width=n,g.height=i,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=f,this.width=n,this.height=i,this.calcViewportBoundaries(),this.renderCanvas(g.getContext("2d"),this._objects),this.viewportTransform=l,this.width=a,this.height=s,this.calcViewportBoundaries(),this.interactive=h,this.enableRetinaScaling=p,this.contextTop=v,g}}),r.util.object.extend(r.StaticCanvas.prototype,{loadFromJSON:function(e,t,n){if(e){var i="string"===typeof e?JSON.parse(e):r.util.object.clone(e),o=this,a=i.clipPath,s=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete i.clipPath,this._enlivenObjects(i.objects,(function(e){o.clear(),o._setBgOverlay(i,(function(){a?o._enlivenObjects([a],(function(n){o.clipPath=n[0],o.__setupCanvas.call(o,i,e,s,t)})):o.__setupCanvas.call(o,i,e,s,t)}))}),n),this}},__setupCanvas:function(e,t,n,i){var r=this;t.forEach((function(e,t){r.insertAt(e,t)})),this.renderOnAddRemove=n,delete e.objects,delete e.backgroundImage,delete e.overlayImage,delete e.background,delete e.overlay,this._setOptions(e),this.renderAll(),i&&i()},_setBgOverlay:function(e,t){var n={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(e.backgroundImage||e.overlayImage||e.background||e.overlay){var i=function(){n.backgroundImage&&n.overlayImage&&n.backgroundColor&&n.overlayColor&&t&&t()};this.__setBgOverlay("backgroundImage",e.backgroundImage,n,i),this.__setBgOverlay("overlayImage",e.overlayImage,n,i),this.__setBgOverlay("backgroundColor",e.background,n,i),this.__setBgOverlay("overlayColor",e.overlay,n,i)}else t&&t()},__setBgOverlay:function(e,t,n,i){var o=this;if(!t)return n[e]=!0,void(i&&i());"backgroundImage"===e||"overlayImage"===e?r.util.enlivenObjects([t],(function(t){o[e]=t[0],n[e]=!0,i&&i()})):this["set"+r.util.string.capitalize(e,!0)](t,(function(){n[e]=!0,i&&i()}))},_enlivenObjects:function(e,t,n){e&&0!==e.length?r.util.enlivenObjects(e,(function(e){t&&t(e)}),null,n):t&&t([])},_toDataURL:function(e,t){this.clone((function(n){t(n.toDataURL(e))}))},_toDataURLWithMultiplier:function(e,t,n){this.clone((function(i){n(i.toDataURLWithMultiplier(e,t))}))},clone:function(e,t){var n=JSON.stringify(this.toJSON(t));this.cloneWithoutData((function(t){t.loadFromJSON(n,(function(){e&&e(t)}))}))},cloneWithoutData:function(e){var t=r.util.createCanvasElement();t.width=this.width,t.height=this.height;var n=new r.Canvas(t);this.backgroundImage?(n.setBackgroundImage(this.backgroundImage.src,(function(){n.renderAll(),e&&e(n)})),n.backgroundImageOpacity=this.backgroundImageOpacity,n.backgroundImageStretch=this.backgroundImageStretch):e&&e(n)}}),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.util.object.clone,r=t.util.toFixed,o=t.util.string.capitalize,a=t.util.degreesToRadians,s=t.StaticCanvas.supports("setLineDash"),u=!t.isLikelyNode;t.Object||(t.Object=t.util.createClass(t.CommonMethods,{type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:u,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,initialize:function(e){e&&this.setOptions(e)},_createCacheCanvas:function(){this._cacheProperties={},this._cacheCanvas=t.util.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0},_limitCacheSize:function(e){var n=t.perfLimitSizeTotal,i=e.width,r=e.height,o=t.maxCacheSideLimit,a=t.minCacheSideLimit;if(i<=o&&r<=o&&i*r<=n)return i<a&&(e.width=a),r<a&&(e.height=a),e;var s=i/r,u=t.util.limitDimsByArea(s,n),l=t.util.capValue,c=l(a,u.x,o),d=l(a,u.y,o);return i>c&&(e.zoomX/=i/c,e.width=c,e.capped=!0),r>d&&(e.zoomY/=r/d,e.height=d,e.capped=!0),e},_getCacheCanvasDimensions:function(){var e=this.getTotalObjectScaling(),t=this._getTransformedDimensions(0,0),n=t.x*e.scaleX/this.scaleX,i=t.y*e.scaleY/this.scaleY;return{width:n+2,height:i+2,zoomX:e.scaleX,zoomY:e.scaleY,x:n,y:i}},_updateCacheCanvas:function(){var e=this.canvas;if(this.noScaleCache&&e&&e._currentTransform){var n=e._currentTransform.target,i=e._currentTransform.action;if(this===n&&i.slice&&"scale"===i.slice(0,5))return!1}var r,o,a=this._cacheCanvas,s=this._limitCacheSize(this._getCacheCanvasDimensions()),u=t.minCacheSideLimit,l=s.width,c=s.height,d=s.zoomX,h=s.zoomY,f=l!==this.cacheWidth||c!==this.cacheHeight,p=this.zoomX!==d||this.zoomY!==h,g=f||p,v=0,m=0,_=!1;if(f){var y=this._cacheCanvas.width,b=this._cacheCanvas.height,w=l>y||c>b;_=w||(l<.9*y||c<.9*b)&&y>u&&b>u,w&&!s.capped&&(l>u||c>u)&&(v=.1*l,m=.1*c)}return!!g&&(_?(a.width=Math.ceil(l+v),a.height=Math.ceil(c+m)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,a.width,a.height)),r=s.x/2,o=s.y/2,this.cacheTranslationX=Math.round(a.width/2-r)+r,this.cacheTranslationY=Math.round(a.height/2-o)+o,this.cacheWidth=l,this.cacheHeight=c,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(d,h),this.zoomX=d,this.zoomY=h,!0)},setOptions:function(e){this._setOptions(e),this._initGradient(e.fill,"fill"),this._initGradient(e.stroke,"stroke"),this._initPattern(e.fill,"fill"),this._initPattern(e.stroke,"stroke")},transform:function(e){var t=this.group&&!this.group._transformDone||this.group&&this.canvas&&e===this.canvas.contextTop,n=this.calcTransformMatrix(!t);e.transform(n[0],n[1],n[2],n[3],n[4],n[5])},toObject:function(e){var n=t.Object.NUM_FRACTION_DIGITS,i={type:this.type,version:t.version,originX:this.originX,originY:this.originY,left:r(this.left,n),top:r(this.top,n),width:r(this.width,n),height:r(this.height,n),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:r(this.strokeWidth,n),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeMiterLimit:r(this.strokeMiterLimit,n),scaleX:r(this.scaleX,n),scaleY:r(this.scaleY,n),angle:r(this.angle,n),flipX:this.flipX,flipY:this.flipY,opacity:r(this.opacity,n),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:r(this.skewX,n),skewY:r(this.skewY,n)};return this.clipPath&&(i.clipPath=this.clipPath.toObject(e),i.clipPath.inverted=this.clipPath.inverted,i.clipPath.absolutePositioned=this.clipPath.absolutePositioned),t.util.populateWithProperties(this,i,e),this.includeDefaultValues||(i=this._removeDefaultValues(i)),i},toDatalessObject:function(e){return this.toObject(e)},_removeDefaultValues:function(e){var n=t.util.getKlass(e.type).prototype;return n.stateProperties.forEach((function(t){"left"!==t&&"top"!==t&&(e[t]===n[t]&&delete e[t],"[object Array]"===Object.prototype.toString.call(e[t])&&"[object Array]"===Object.prototype.toString.call(n[t])&&0===e[t].length&&0===n[t].length&&delete e[t])})),e},toString:function(){return"#<fabric."+o(this.type)+">"},getObjectScaling:function(){var e=t.util.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(e.scaleX),scaleY:Math.abs(e.scaleY)}},getTotalObjectScaling:function(){var e=this.getObjectScaling(),t=e.scaleX,n=e.scaleY;if(this.canvas){var i=this.canvas.getZoom(),r=this.canvas.getRetinaScaling();t*=i*r,n*=i*r}return{scaleX:t,scaleY:n}},getObjectOpacity:function(){var e=this.opacity;return this.group&&(e*=this.group.getObjectOpacity()),e},_set:function(e,n){var i="scaleX"===e||"scaleY"===e,r=this[e]!==n,o=!1;return i&&(n=this._constrainScale(n)),"scaleX"===e&&n<0?(this.flipX=!this.flipX,n*=-1):"scaleY"===e&&n<0?(this.flipY=!this.flipY,n*=-1):"shadow"!==e||!n||n instanceof t.Shadow?"dirty"===e&&this.group&&this.group.set("dirty",n):n=new t.Shadow(n),this[e]=n,r&&(o=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(e)>-1?(this.dirty=!0,o&&this.group.set("dirty",!0)):o&&this.stateProperties.indexOf(e)>-1&&this.group.set("dirty",!0)),this},setOnGroup:function(){},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:t.iMatrix.concat()},isNotVisible:function(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible},render:function(e){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(e.save(),this._setupCompositeOperation(e),this.drawSelectionBackground(e),this.transform(e),this._setOpacity(e),this._setShadow(e,this),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(e)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(e),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),e.restore())},renderCache:function(e){e=e||{},this._cacheCanvas||this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,e.forClipping),this.dirty=!1)},_removeCacheCanvas:function(){this._cacheCanvas=null,this.cacheWidth=0,this.cacheHeight=0},hasStroke:function(){return this.stroke&&"transparent"!==this.stroke&&0!==this.strokeWidth},hasFill:function(){return this.fill&&"transparent"!==this.fill},needsItsOwnCache:function(){return!("stroke"!==this.paintFirst||!this.hasFill()||!this.hasStroke()||"object"!==typeof this.shadow)||!!this.clipPath},shouldCache:function(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching},willDrawShadow:function(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)},drawClipPathOnCache:function(e){var n=this.clipPath;if(e.save(),n.inverted?e.globalCompositeOperation="destination-out":e.globalCompositeOperation="destination-in",n.absolutePositioned){var i=t.util.invertTransform(this.calcTransformMatrix());e.transform(i[0],i[1],i[2],i[3],i[4],i[5])}n.transform(e),e.scale(1/n.zoomX,1/n.zoomY),e.drawImage(n._cacheCanvas,-n.cacheTranslationX,-n.cacheTranslationY),e.restore()},drawObject:function(e,t){var n=this.fill,i=this.stroke;t?(this.fill="black",this.stroke="",this._setClippingProperties(e)):(this._renderBackground(e),this._setStrokeStyles(e,this),this._setFillStyles(e,this)),this._render(e),this._drawClipPath(e),this.fill=n,this.stroke=i},_drawClipPath:function(e){var t=this.clipPath;t&&(t.canvas=this.canvas,t.shouldCache(),t._transformDone=!0,t.renderCache({forClipping:!0}),this.drawClipPathOnCache(e))},drawCacheOnCanvas:function(e){e.scale(1/this.zoomX,1/this.zoomY),e.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)},isCacheDirty:function(e){if(this.isNotVisible())return!1;if(this._cacheCanvas&&!e&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&!e){var t=this.cacheWidth/this.zoomX,n=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-t/2,-n/2,t,n)}return!0}return!1},_renderBackground:function(e){if(this.backgroundColor){var t=this._getNonTransformedDimensions();e.fillStyle=this.backgroundColor,e.fillRect(-t.x/2,-t.y/2,t.x,t.y),this._removeShadow(e)}},_setOpacity:function(e){this.group&&!this.group._transformDone?e.globalAlpha=this.getObjectOpacity():e.globalAlpha*=this.opacity},_setStrokeStyles:function(e,t){t.stroke&&(e.lineWidth=t.strokeWidth,e.lineCap=t.strokeLineCap,e.lineDashOffset=t.strokeDashOffset,e.lineJoin=t.strokeLineJoin,e.miterLimit=t.strokeMiterLimit,e.strokeStyle=t.stroke.toLive?t.stroke.toLive(e,this):t.stroke)},_setFillStyles:function(e,t){t.fill&&(e.fillStyle=t.fill.toLive?t.fill.toLive(e,this):t.fill)},_setClippingProperties:function(e){e.globalAlpha=1,e.strokeStyle="transparent",e.fillStyle="#000000"},_setLineDash:function(e,t,n){t&&0!==t.length&&(1&t.length&&t.push.apply(t,t),s?e.setLineDash(t):n&&n(e))},_renderControls:function(e,n){var i,r,o,s=this.getViewportTransform(),u=this.calcTransformMatrix();r="undefined"!==typeof(n=n||{}).hasBorders?n.hasBorders:this.hasBorders,o="undefined"!==typeof n.hasControls?n.hasControls:this.hasControls,u=t.util.multiplyTransformMatrices(s,u),i=t.util.qrDecompose(u),e.save(),e.translate(i.translateX,i.translateY),e.lineWidth=1*this.borderScaleFactor,this.group||(e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),n.forActiveSelection?(e.rotate(a(i.angle)),r&&this.drawBordersInGroup(e,i,n)):(e.rotate(a(this.angle)),r&&this.drawBorders(e,n)),o&&this.drawControls(e,n),e.restore()},_setShadow:function(e){if(this.shadow){var n,i=this.shadow,r=this.canvas,o=r&&r.viewportTransform[0]||1,a=r&&r.viewportTransform[3]||1;n=i.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),r&&r._isRetinaScaling()&&(o*=t.devicePixelRatio,a*=t.devicePixelRatio),e.shadowColor=i.color,e.shadowBlur=i.blur*t.browserShadowBlurConstant*(o+a)*(n.scaleX+n.scaleY)/4,e.shadowOffsetX=i.offsetX*o*n.scaleX,e.shadowOffsetY=i.offsetY*a*n.scaleY}},_removeShadow:function(e){this.shadow&&(e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0)},_applyPatternGradientTransform:function(e,t){if(!t||!t.toLive)return{offsetX:0,offsetY:0};var n=t.gradientTransform||t.patternTransform,i=-this.width/2+t.offsetX||0,r=-this.height/2+t.offsetY||0;return"percentage"===t.gradientUnits?e.transform(this.width,0,0,this.height,i,r):e.transform(1,0,0,1,i,r),n&&e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),{offsetX:i,offsetY:r}},_renderPaintInOrder:function(e){"stroke"===this.paintFirst?(this._renderStroke(e),this._renderFill(e)):(this._renderFill(e),this._renderStroke(e))},_render:function(){},_renderFill:function(e){this.fill&&(e.save(),this._applyPatternGradientTransform(e,this.fill),"evenodd"===this.fillRule?e.fill("evenodd"):e.fill(),e.restore())},_renderStroke:function(e){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(e),e.save(),this.strokeUniform&&this.group){var t=this.getObjectScaling();e.scale(1/t.scaleX,1/t.scaleY)}else this.strokeUniform&&e.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(e,this.strokeDashArray,this._renderDashedStroke),this.stroke.toLive&&"percentage"===this.stroke.gradientUnits?this._applyPatternForTransformedGradient(e,this.stroke):this._applyPatternGradientTransform(e,this.stroke),e.stroke(),e.restore()}},_applyPatternForTransformedGradient:function(e,n){var i,r=this._limitCacheSize(this._getCacheCanvasDimensions()),o=t.util.createCanvasElement(),a=this.canvas.getRetinaScaling(),s=r.x/this.scaleX/a,u=r.y/this.scaleY/a;o.width=s,o.height=u,(i=o.getContext("2d")).beginPath(),i.moveTo(0,0),i.lineTo(s,0),i.lineTo(s,u),i.lineTo(0,u),i.closePath(),i.translate(s/2,u/2),i.scale(r.zoomX/this.scaleX/a,r.zoomY/this.scaleY/a),this._applyPatternGradientTransform(i,n),i.fillStyle=n.toLive(e),i.fill(),e.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),e.scale(a*this.scaleX/r.zoomX,a*this.scaleY/r.zoomY),e.strokeStyle=i.createPattern(o,"no-repeat")},_findCenterFromElement:function(){return{x:this.left+this.width/2,y:this.top+this.height/2}},_assignTransformMatrixProps:function(){if(this.transformMatrix){var e=t.util.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",e.scaleX),this.set("scaleY",e.scaleY),this.angle=e.angle,this.skewX=e.skewX,this.skewY=0}},_removeTransformMatrix:function(e){var n=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),n=t.util.transformPoint(n,this.transformMatrix)),this.transformMatrix=null,e&&(this.scaleX*=e.scaleX,this.scaleY*=e.scaleY,this.cropX=e.cropX,this.cropY=e.cropY,n.x+=e.offsetLeft,n.y+=e.offsetTop,this.width=e.width,this.height=e.height),this.setPositionByOrigin(n,"center","center")},clone:function(e,n){var i=this.toObject(n);this.constructor.fromObject?this.constructor.fromObject(i,e):t.Object._fromObject("Object",i,e)},cloneAsImage:function(e,n){var i=this.toCanvasElement(n);return e&&e(new t.Image(i)),this},toCanvasElement:function(e){e||(e={});var n=t.util,i=n.saveObjectTransform(this),r=this.group,o=this.shadow,a=Math.abs,s=(e.multiplier||1)*(e.enableRetinaScaling?t.devicePixelRatio:1);delete this.group,e.withoutTransform&&n.resetObjectTransform(this),e.withoutShadow&&(this.shadow=null);var u,l,c,d,h=t.util.createCanvasElement(),f=this.getBoundingRect(!0,!0),p=this.shadow,g={x:0,y:0};p&&(l=p.blur,u=p.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),g.x=2*Math.round(a(p.offsetX)+l)*a(u.scaleX),g.y=2*Math.round(a(p.offsetY)+l)*a(u.scaleY)),c=f.width+g.x,d=f.height+g.y,h.width=Math.ceil(c),h.height=Math.ceil(d);var v=new t.StaticCanvas(h,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});"jpeg"===e.format&&(v.backgroundColor="#fff"),this.setPositionByOrigin(new t.Point(v.width/2,v.height/2),"center","center");var m=this.canvas;v.add(this);var _=v.toCanvasElement(s||1,e);return this.shadow=o,this.set("canvas",m),r&&(this.group=r),this.set(i).setCoords(),v._objects=[],v.dispose(),v=null,_},toDataURL:function(e){return e||(e={}),t.util.toDataURL(this.toCanvasElement(e),e.format||"png",e.quality||1)},isType:function(e){return this.type===e},complexity:function(){return 1},toJSON:function(e){return this.toObject(e)},rotate:function(e){var t=("center"!==this.originX||"center"!==this.originY)&&this.centeredRotation;return t&&this._setOriginToCenter(),this.set("angle",e),t&&this._resetOrigin(),this},centerH:function(){return this.canvas&&this.canvas.centerObjectH(this),this},viewportCenterH:function(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this},centerV:function(){return this.canvas&&this.canvas.centerObjectV(this),this},viewportCenterV:function(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this},center:function(){return this.canvas&&this.canvas.centerObject(this),this},viewportCenter:function(){return this.canvas&&this.canvas.viewportCenterObject(this),this},getLocalPointer:function(e,n){n=n||this.canvas.getPointer(e);var i=new t.Point(n.x,n.y),r=this._getLeftTopCoords();return this.angle&&(i=t.util.rotatePoint(i,r,a(-this.angle))),{x:i.x-r.x,y:i.y-r.y}},_setupCompositeOperation:function(e){this.globalCompositeOperation&&(e.globalCompositeOperation=this.globalCompositeOperation)}}),t.util.createAccessors&&t.util.createAccessors(t.Object),n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object._fromObject=function(e,n,r,o){var a=t[e];n=i(n,!0),t.util.enlivenPatterns([n.fill,n.stroke],(function(e){"undefined"!==typeof e[0]&&(n.fill=e[0]),"undefined"!==typeof e[1]&&(n.stroke=e[1]),t.util.enlivenObjects([n.clipPath],(function(e){n.clipPath=e[0];var t=o?new a(n[o],n):new a(n);r&&r(t)}))}))},t.Object.__uid=0)}(t),function(){var e=r.util.degreesToRadians,t={left:-.5,center:0,right:.5},n={top:-.5,center:0,bottom:.5};r.util.object.extend(r.Object.prototype,{translateToGivenOrigin:function(e,i,o,a,s){var u,l,c,d=e.x,h=e.y;return"string"===typeof i?i=t[i]:i-=.5,"string"===typeof a?a=t[a]:a-=.5,"string"===typeof o?o=n[o]:o-=.5,"string"===typeof s?s=n[s]:s-=.5,l=s-o,((u=a-i)||l)&&(c=this._getTransformedDimensions(),d=e.x+u*c.x,h=e.y+l*c.y),new r.Point(d,h)},translateToCenterPoint:function(t,n,i){var o=this.translateToGivenOrigin(t,n,i,"center","center");return this.angle?r.util.rotatePoint(o,t,e(this.angle)):o},translateToOriginPoint:function(t,n,i){var o=this.translateToGivenOrigin(t,"center","center",n,i);return this.angle?r.util.rotatePoint(o,t,e(this.angle)):o},getCenterPoint:function(){var e=new r.Point(this.left,this.top);return this.translateToCenterPoint(e,this.originX,this.originY)},getPointByOrigin:function(e,t){var n=this.getCenterPoint();return this.translateToOriginPoint(n,e,t)},toLocalPoint:function(t,n,i){var o,a,s=this.getCenterPoint();return o="undefined"!==typeof n&&"undefined"!==typeof i?this.translateToGivenOrigin(s,"center","center",n,i):new r.Point(this.left,this.top),a=new r.Point(t.x,t.y),this.angle&&(a=r.util.rotatePoint(a,s,-e(this.angle))),a.subtractEquals(o)},setPositionByOrigin:function(e,t,n){var i=this.translateToCenterPoint(e,t,n),r=this.translateToOriginPoint(i,this.originX,this.originY);this.set("left",r.x),this.set("top",r.y)},adjustPosition:function(n){var i,o,a=e(this.angle),s=this.getScaledWidth(),u=r.util.cos(a)*s,l=r.util.sin(a)*s;i="string"===typeof this.originX?t[this.originX]:this.originX-.5,o="string"===typeof n?t[n]:n-.5,this.left+=u*(o-i),this.top+=l*(o-i),this.setCoords(),this.originX=n},_setOriginToCenter:function(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var e=this.getCenterPoint();this.originX="center",this.originY="center",this.left=e.x,this.top=e.y},_resetOrigin:function(){var e=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=e.x,this.top=e.y,this._originalOriginX=null,this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}})}(),function(){var e=r.util,t=e.degreesToRadians,n=e.multiplyTransformMatrices,i=e.transformPoint;e.object.extend(r.Object.prototype,{oCoords:null,aCoords:null,lineCoords:null,ownMatrixCache:null,matrixCache:null,controls:{},_getCoords:function(e,t){return t?e?this.calcACoords():this.calcLineCoords():(this.aCoords&&this.lineCoords||this.setCoords(!0),e?this.aCoords:this.lineCoords)},getCoords:function(e,t){return n=this._getCoords(e,t),[new r.Point(n.tl.x,n.tl.y),new r.Point(n.tr.x,n.tr.y),new r.Point(n.br.x,n.br.y),new r.Point(n.bl.x,n.bl.y)];var n},intersectsWithRect:function(e,t,n,i){var o=this.getCoords(n,i);return"Intersection"===r.Intersection.intersectPolygonRectangle(o,e,t).status},intersectsWithObject:function(e,t,n){return"Intersection"===r.Intersection.intersectPolygonPolygon(this.getCoords(t,n),e.getCoords(t,n)).status||e.isContainedWithinObject(this,t,n)||this.isContainedWithinObject(e,t,n)},isContainedWithinObject:function(e,t,n){for(var i=this.getCoords(t,n),r=t?e.aCoords:e.lineCoords,o=0,a=e._getImageLines(r);o<4;o++)if(!e.containsPoint(i[o],a))return!1;return!0},isContainedWithinRect:function(e,t,n,i){var r=this.getBoundingRect(n,i);return r.left>=e.x&&r.left+r.width<=t.x&&r.top>=e.y&&r.top+r.height<=t.y},containsPoint:function(e,t,n,i){var r=this._getCoords(n,i),o=(t=t||this._getImageLines(r),this._findCrossPoints(e,t));return 0!==o&&o%2===1},isOnScreen:function(e){if(!this.canvas)return!1;var t=this.canvas.vptCoords.tl,n=this.canvas.vptCoords.br;return!!this.getCoords(!0,e).some((function(e){return e.x<=n.x&&e.x>=t.x&&e.y<=n.y&&e.y>=t.y}))||(!!this.intersectsWithRect(t,n,!0,e)||this._containsCenterOfCanvas(t,n,e))},_containsCenterOfCanvas:function(e,t,n){var i={x:(e.x+t.x)/2,y:(e.y+t.y)/2};return!!this.containsPoint(i,null,!0,n)},isPartiallyOnScreen:function(e){if(!this.canvas)return!1;var t=this.canvas.vptCoords.tl,n=this.canvas.vptCoords.br;return!!this.intersectsWithRect(t,n,!0,e)||this.getCoords(!0,e).every((function(e){return(e.x>=n.x||e.x<=t.x)&&(e.y>=n.y||e.y<=t.y)}))&&this._containsCenterOfCanvas(t,n,e)},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_findCrossPoints:function(e,t){var n,i,r,o=0;for(var a in t)if(!((r=t[a]).o.y<e.y&&r.d.y<e.y)&&!(r.o.y>=e.y&&r.d.y>=e.y)&&(r.o.x===r.d.x&&r.o.x>=e.x?i=r.o.x:(0,n=(r.d.y-r.o.y)/(r.d.x-r.o.x),i=-(e.y-0*e.x-(r.o.y-n*r.o.x))/(0-n)),i>=e.x&&(o+=1),2===o))break;return o},getBoundingRect:function(t,n){var i=this.getCoords(t,n);return e.makeBoundingBoxFromPoints(i)},getScaledWidth:function(){return this._getTransformedDimensions().x},getScaledHeight:function(){return this._getTransformedDimensions().y},_constrainScale:function(e){return Math.abs(e)<this.minScaleLimit?e<0?-this.minScaleLimit:this.minScaleLimit:0===e?1e-4:e},scale:function(e){return this._set("scaleX",e),this._set("scaleY",e),this.setCoords()},scaleToWidth:function(e,t){var n=this.getBoundingRect(t).width/this.getScaledWidth();return this.scale(e/this.width/n)},scaleToHeight:function(e,t){var n=this.getBoundingRect(t).height/this.getScaledHeight();return this.scale(e/this.height/n)},calcCoords:function(e){return e?this.calcACoords():this.calcOCoords()},calcLineCoords:function(){var n=this.getViewportTransform(),r=this.padding,o=t(this.angle),a=e.cos(o)*r,s=e.sin(o)*r,u=a+s,l=a-s,c=this.calcACoords(),d={tl:i(c.tl,n),tr:i(c.tr,n),bl:i(c.bl,n),br:i(c.br,n)};return r&&(d.tl.x-=l,d.tl.y-=u,d.tr.x+=u,d.tr.y-=l,d.bl.x-=u,d.bl.y+=l,d.br.x+=l,d.br.y+=u),d},calcOCoords:function(){var e=this._calcRotateMatrix(),t=this._calcTranslateMatrix(),i=this.getViewportTransform(),r=n(i,t),o=n(r,e),a=(o=n(o,[1/i[0],0,0,1/i[3],0,0]),this._calculateCurrentDimensions()),s={};return this.forEachControl((function(e,t,n){s[t]=e.positionHandler(a,o,n)})),s},calcACoords:function(){var e=this._calcRotateMatrix(),t=this._calcTranslateMatrix(),r=n(t,e),o=this._getTransformedDimensions(),a=o.x/2,s=o.y/2;return{tl:i({x:-a,y:-s},r),tr:i({x:a,y:-s},r),bl:i({x:-a,y:s},r),br:i({x:a,y:s},r)}},setCoords:function(e){return this.aCoords=this.calcACoords(),this.lineCoords=this.group?this.aCoords:this.calcLineCoords(),e||(this.oCoords=this.calcOCoords(),this._setCornerCoords&&this._setCornerCoords()),this},_calcRotateMatrix:function(){return e.calcRotateMatrix(this)},_calcTranslateMatrix:function(){var e=this.getCenterPoint();return[1,0,0,1,e.x,e.y]},transformMatrixKey:function(e){var t="_",n="";return!e&&this.group&&(n=this.group.transformMatrixKey(e)+t),n+this.top+t+this.left+t+this.scaleX+t+this.scaleY+t+this.skewX+t+this.skewY+t+this.angle+t+this.originX+t+this.originY+t+this.width+t+this.height+t+this.strokeWidth+this.flipX+this.flipY},calcTransformMatrix:function(e){var t=this.calcOwnMatrix();if(e||!this.group)return t;var i=this.transformMatrixKey(e),r=this.matrixCache||(this.matrixCache={});return r.key===i?r.value:(this.group&&(t=n(this.group.calcTransformMatrix(!1),t)),r.key=i,r.value=t,t)},calcOwnMatrix:function(){var t=this.transformMatrixKey(!0),n=this.ownMatrixCache||(this.ownMatrixCache={});if(n.key===t)return n.value;var i=this._calcTranslateMatrix(),r={angle:this.angle,translateX:i[4],translateY:i[5],scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY};return n.key=t,n.value=e.composeMatrix(r),n.value},_calcDimensionsTransformMatrix:function(t,n,i){return e.calcDimensionsMatrix({skewX:t,skewY:n,scaleX:this.scaleX*(i&&this.flipX?-1:1),scaleY:this.scaleY*(i&&this.flipY?-1:1)})},_getNonTransformedDimensions:function(){var e=this.strokeWidth;return{x:this.width+e,y:this.height+e}},_getTransformedDimensions:function(t,n){"undefined"===typeof t&&(t=this.skewX),"undefined"===typeof n&&(n=this.skewY);var i,r,o=this._getNonTransformedDimensions(),a=0===t&&0===n;if(this.strokeUniform?(i=this.width,r=this.height):(i=o.x,r=o.y),a)return this._finalizeDimensions(i*this.scaleX,r*this.scaleY);var s=e.sizeAfterTransform(i,r,{scaleX:this.scaleX,scaleY:this.scaleY,skewX:t,skewY:n});return this._finalizeDimensions(s.x,s.y)},_finalizeDimensions:function(e,t){return this.strokeUniform?{x:e+this.strokeWidth,y:t+this.strokeWidth}:{x:e,y:t}},_calculateCurrentDimensions:function(){var e=this.getViewportTransform(),t=this._getTransformedDimensions();return i(t,e,!0).scalarAdd(2*this.padding)}})}(),r.util.object.extend(r.Object.prototype,{sendToBack:function(){return this.group?r.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas&&this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?r.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas&&this.canvas.bringToFront(this),this},sendBackwards:function(e){return this.group?r.StaticCanvas.prototype.sendBackwards.call(this.group,this,e):this.canvas&&this.canvas.sendBackwards(this,e),this},bringForward:function(e){return this.group?r.StaticCanvas.prototype.bringForward.call(this.group,this,e):this.canvas&&this.canvas.bringForward(this,e),this},moveTo:function(e){return this.group&&"activeSelection"!==this.group.type?r.StaticCanvas.prototype.moveTo.call(this.group,this,e):this.canvas&&this.canvas.moveTo(this,e),this}}),function(){function e(e,t){if(t){if(t.toLive)return e+": url(#SVGID_"+t.id+"); ";var n=new r.Color(t),i=e+": "+n.toRgb()+"; ",o=n.getAlpha();return 1!==o&&(i+=e+"-opacity: "+o.toString()+"; "),i}return e+": none; "}var t=r.util.toFixed;r.util.object.extend(r.Object.prototype,{getSvgStyles:function(t){var n=this.fillRule?this.fillRule:"nonzero",i=this.strokeWidth?this.strokeWidth:"0",r=this.strokeDashArray?this.strokeDashArray.join(" "):"none",o=this.strokeDashOffset?this.strokeDashOffset:"0",a=this.strokeLineCap?this.strokeLineCap:"butt",s=this.strokeLineJoin?this.strokeLineJoin:"miter",u=this.strokeMiterLimit?this.strokeMiterLimit:"4",l="undefined"!==typeof this.opacity?this.opacity:"1",c=this.visible?"":" visibility: hidden;",d=t?"":this.getSvgFilter(),h=e("fill",this.fill);return[e("stroke",this.stroke),"stroke-width: ",i,"; ","stroke-dasharray: ",r,"; ","stroke-linecap: ",a,"; ","stroke-dashoffset: ",o,"; ","stroke-linejoin: ",s,"; ","stroke-miterlimit: ",u,"; ",h,"fill-rule: ",n,"; ","opacity: ",l,";",d,c].join("")},getSvgSpanStyles:function(t,n){var i="; ",r=t.fontFamily?"font-family: "+(-1===t.fontFamily.indexOf("'")&&-1===t.fontFamily.indexOf('"')?"'"+t.fontFamily+"'":t.fontFamily)+i:"",o=t.strokeWidth?"stroke-width: "+t.strokeWidth+i:"",a=(r=r,t.fontSize?"font-size: "+t.fontSize+"px"+i:""),s=t.fontStyle?"font-style: "+t.fontStyle+i:"",u=t.fontWeight?"font-weight: "+t.fontWeight+i:"",l=t.fill?e("fill",t.fill):"",c=t.stroke?e("stroke",t.stroke):"",d=this.getSvgTextDecoration(t);return d&&(d="text-decoration: "+d+i),[c,o,r,a,s,u,d,l,t.deltaY?"baseline-shift: "+-t.deltaY+"; ":"",n?"white-space: pre; ":""].join("")},getSvgTextDecoration:function(e){return["overline","underline","line-through"].filter((function(t){return e[t.replace("-","")]})).join(" ")},getSvgFilter:function(){return this.shadow?"filter: url(#SVGID_"+this.shadow.id+");":""},getSvgCommons:function(){return[this.id?'id="'+this.id+'" ':"",this.clipPath?'clip-path="url(#'+this.clipPath.clipPathId+')" ':""].join("")},getSvgTransform:function(e,t){var n=e?this.calcTransformMatrix():this.calcOwnMatrix();return'transform="'+r.util.matrixToSVG(n)+(t||"")+'" '},_setSVGBg:function(e){if(this.backgroundColor){var n=r.Object.NUM_FRACTION_DIGITS;e.push("\t\t<rect ",this._getFillAttributes(this.backgroundColor),' x="',t(-this.width/2,n),'" y="',t(-this.height/2,n),'" width="',t(this.width,n),'" height="',t(this.height,n),'"></rect>\n')}},toSVG:function(e){return this._createBaseSVGMarkup(this._toSVG(e),{reviver:e})},toClipPathSVG:function(e){return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(e),{reviver:e})},_createBaseClipPathSVGMarkup:function(e,t){var n=(t=t||{}).reviver,i=t.additionalTransform||"",r=[this.getSvgTransform(!0,i),this.getSvgCommons()].join(""),o=e.indexOf("COMMON_PARTS");return e[o]=r,n?n(e.join("")):e.join("")},_createBaseSVGMarkup:function(e,t){var n,i,o=(t=t||{}).noStyle,a=t.reviver,s=o?"":'style="'+this.getSvgStyles()+'" ',u=t.withShadow?'style="'+this.getSvgFilter()+'" ':"",l=this.clipPath,c=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",d=l&&l.absolutePositioned,h=this.stroke,f=this.fill,p=this.shadow,g=[],v=e.indexOf("COMMON_PARTS"),m=t.additionalTransform;return l&&(l.clipPathId="CLIPPATH_"+r.Object.__uid++,i='<clipPath id="'+l.clipPathId+'" >\n'+l.toClipPathSVG(a)+"</clipPath>\n"),d&&g.push("<g ",u,this.getSvgCommons()," >\n"),g.push("<g ",this.getSvgTransform(!1),d?"":u+this.getSvgCommons()," >\n"),n=[s,c,o?"":this.addPaintOrder()," ",m?'transform="'+m+'" ':""].join(""),e[v]=n,f&&f.toLive&&g.push(f.toSVG(this)),h&&h.toLive&&g.push(h.toSVG(this)),p&&g.push(p.toSVG(this)),l&&g.push(i),g.push(e.join("")),g.push("</g>\n"),d&&g.push("</g>\n"),a?a(g.join("")):g.join("")},addPaintOrder:function(){return"fill"!==this.paintFirst?' paint-order="'+this.paintFirst+'" ':""}})}(),function(){var e=r.util.object.extend,t="stateProperties";function n(t,n,i){var r={};i.forEach((function(e){r[e]=t[e]})),e(t[n],r,!0)}function i(e,t,n){if(e===t)return!0;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var r=0,o=e.length;r<o;r++)if(!i(e[r],t[r]))return!1;return!0}if(e&&"object"===typeof e){var a,s=Object.keys(e);if(!t||"object"!==typeof t||!n&&s.length!==Object.keys(t).length)return!1;for(r=0,o=s.length;r<o;r++)if("canvas"!==(a=s[r])&&"group"!==a&&!i(e[a],t[a]))return!1;return!0}}r.util.object.extend(r.Object.prototype,{hasStateChanged:function(e){var n="_"+(e=e||t);return Object.keys(this[n]).length<this[e].length||!i(this[n],this,!0)},saveState:function(e){var i=e&&e.propertySet||t,r="_"+i;return this[r]?(n(this,r,this[i]),e&&e.stateProperties&&n(this,r,e.stateProperties),this):this.setupState(e)},setupState:function(e){var n=(e=e||{}).propertySet||t;return e.propertySet=n,this["_"+n]={},this.saveState(e),this}})}(),function(){var e=r.util.degreesToRadians;r.util.object.extend(r.Object.prototype,{_findTargetCorner:function(e,t){if(!this.hasControls||this.group||!this.canvas||this.canvas._activeObject!==this)return!1;var n,i,r,o=e.x,a=e.y,s=Object.keys(this.oCoords),u=s.length-1;for(this.__corner=0;u>=0;u--)if(r=s[u],this.isControlVisible(r)&&(i=this._getImageLines(t?this.oCoords[r].touchCorner:this.oCoords[r].corner),0!==(n=this._findCrossPoints({x:o,y:a},i))&&n%2===1))return this.__corner=r,r;return!1},forEachControl:function(e){for(var t in this.controls)e(this.controls[t],t,this)},_setCornerCoords:function(){var t,n,i=this.oCoords,o=e(45-this.angle),a=r.util.cos(o),s=r.util.sin(o),u=.707106*this.cornerSize,l=.707106*this.touchCornerSize,c=u*a,d=u*s,h=l*a,f=l*s;for(var p in i)t=i[p].x,n=i[p].y,i[p].corner={tl:{x:t-d,y:n-c},tr:{x:t+c,y:n-d},bl:{x:t-c,y:n+d},br:{x:t+d,y:n+c}},i[p].touchCorner={tl:{x:t-f,y:n-h},tr:{x:t+h,y:n-f},bl:{x:t-h,y:n+f},br:{x:t+f,y:n+h}}},drawSelectionBackground:function(t){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;t.save();var n=this.getCenterPoint(),i=this._calculateCurrentDimensions(),r=this.canvas.viewportTransform;return t.translate(n.x,n.y),t.scale(1/r[0],1/r[3]),t.rotate(e(this.angle)),t.fillStyle=this.selectionBackgroundColor,t.fillRect(-i.x/2,-i.y/2,i.x,i.y),t.restore(),this},drawBorders:function(e,t){t=t||{};var n=this._calculateCurrentDimensions(),i=this.borderScaleFactor,r=n.x+i,o=n.y+i,a="undefined"!==typeof t.hasControls?t.hasControls:this.hasControls,s=!1;return e.save(),e.strokeStyle=t.borderColor||this.borderColor,this._setLineDash(e,t.borderDashArray||this.borderDashArray,null),e.strokeRect(-r/2,-o/2,r,o),a&&(e.beginPath(),this.forEachControl((function(t,n,i){t.withConnection&&t.getVisibility(i,n)&&(s=!0,e.moveTo(t.x*r,t.y*o),e.lineTo(t.x*r+t.offsetX,t.y*o+t.offsetY))})),s&&e.stroke()),e.restore(),this},drawBordersInGroup:function(e,t,n){n=n||{};var i=r.util.sizeAfterTransform(this.width,this.height,t),o=this.strokeWidth,a=this.strokeUniform,s=this.borderScaleFactor,u=i.x+o*(a?this.canvas.getZoom():t.scaleX)+s,l=i.y+o*(a?this.canvas.getZoom():t.scaleY)+s;return e.save(),this._setLineDash(e,n.borderDashArray||this.borderDashArray,null),e.strokeStyle=n.borderColor||this.borderColor,e.strokeRect(-u/2,-l/2,u,l),e.restore(),this},drawControls:function(e,t){return t=t||{},e.save(),e.setTransform(this.canvas.getRetinaScaling(),0,0,this.canvas.getRetinaScaling(),0,0),e.strokeStyle=e.fillStyle=t.cornerColor||this.cornerColor,this.transparentCorners||(e.strokeStyle=t.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(e,t.cornerDashArray||this.cornerDashArray,null),this.setCoords(),this.forEachControl((function(n,i,r){n.getVisibility(r,i)&&n.render(e,r.oCoords[i].x,r.oCoords[i].y,t,r)})),e.restore(),this},isControlVisible:function(e){return this.controls[e]&&this.controls[e].getVisibility(this,e)},setControlVisible:function(e,t){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[e]=t,this},setControlsVisibility:function(e){for(var t in e||(e={}),e)this.setControlVisible(t,e[t]);return this},onDeselect:function(){},onSelect:function(){}})}(),r.util.object.extend(r.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(e,t){var n=function(){},i=(t=t||{}).onComplete||n,o=t.onChange||n,a=this;return r.util.animate({startValue:e.left,endValue:this.getCenter().left,duration:this.FX_DURATION,onChange:function(t){e.set("left",t),a.requestRenderAll(),o()},onComplete:function(){e.setCoords(),i()}}),this},fxCenterObjectV:function(e,t){var n=function(){},i=(t=t||{}).onComplete||n,o=t.onChange||n,a=this;return r.util.animate({startValue:e.top,endValue:this.getCenter().top,duration:this.FX_DURATION,onChange:function(t){e.set("top",t),a.requestRenderAll(),o()},onComplete:function(){e.setCoords(),i()}}),this},fxRemove:function(e,t){var n=function(){},i=(t=t||{}).onComplete||n,o=t.onChange||n,a=this;return r.util.animate({startValue:e.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(t){e.set("opacity",t),a.requestRenderAll(),o()},onComplete:function(){a.remove(e),i()}}),this}}),r.util.object.extend(r.Object.prototype,{animate:function(){if(arguments[0]&&"object"===typeof arguments[0]){var e,t,n=[];for(e in arguments[0])n.push(e);for(var i=0,r=n.length;i<r;i++)e=n[i],t=i!==r-1,this._animate(e,arguments[0][e],arguments[1],t)}else this._animate.apply(this,arguments);return this},_animate:function(e,t,n,i){var o,a=this;t=t.toString(),n=n?r.util.object.clone(n):{},~e.indexOf(".")&&(o=e.split("."));var s=a.colorProperties.indexOf(e)>-1||o&&a.colorProperties.indexOf(o[1])>-1,u=o?this.get(o[0])[o[1]]:this.get(e);"from"in n||(n.from=u),s||(t=~t.indexOf("=")?u+parseFloat(t.replace("=","")):parseFloat(t));var l={startValue:n.from,endValue:t,byValue:n.by,easing:n.easing,duration:n.duration,abort:n.abort&&function(){return n.abort.call(a)},onChange:function(t,r,s){o?a[o[0]][o[1]]=t:a.set(e,t),i||n.onChange&&n.onChange(t,r,s)},onComplete:function(e,t,r){i||(a.setCoords(),n.onComplete&&n.onComplete(e,t,r))}};s?r.util.animateColor(l.startValue,l.endValue,l.duration,l):r.util.animate(l)}}),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.util.object.clone,r={x1:1,x2:1,y1:1,y2:1},o=t.StaticCanvas.supports("setLineDash");function a(e,t){var n=e.origin,i=e.axis1,r=e.axis2,o=e.dimension,a=t.nearest,s=t.center,u=t.farthest;return function(){switch(this.get(n)){case a:return Math.min(this.get(i),this.get(r));case s:return Math.min(this.get(i),this.get(r))+.5*this.get(o);case u:return Math.max(this.get(i),this.get(r))}}}t.Line?t.warn("fabric.Line is already defined"):(t.Line=t.util.createClass(t.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,cacheProperties:t.Object.prototype.cacheProperties.concat("x1","x2","y1","y2"),initialize:function(e,t){e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.width=Math.abs(this.x2-this.x1),this.height=Math.abs(this.y2-this.y1),this.left="left"in e?e.left:this._getLeftToOriginX(),this.top="top"in e?e.top:this._getTopToOriginY()},_set:function(e,t){return this.callSuper("_set",e,t),"undefined"!==typeof r[e]&&this._setWidthHeight(),this},_getLeftToOriginX:a({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:a({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(e){if(e.beginPath(),!this.strokeDashArray||this.strokeDashArray&&o){var t=this.calcLinePoints();e.moveTo(t.x1,t.y1),e.lineTo(t.x2,t.y2)}e.lineWidth=this.strokeWidth;var n=e.strokeStyle;e.strokeStyle=this.stroke||e.fillStyle,this.stroke&&this._renderStroke(e),e.strokeStyle=n},_renderDashedStroke:function(e){var n=this.calcLinePoints();e.beginPath(),t.util.drawDashedLine(e,n.x1,n.y1,n.x2,n.y2,this.strokeDashArray),e.closePath()},_findCenterFromElement:function(){return{x:(this.x1+this.x2)/2,y:(this.y1+this.y2)/2}},toObject:function(e){return n(this.callSuper("toObject",e),this.calcLinePoints())},_getNonTransformedDimensions:function(){var e=this.callSuper("_getNonTransformedDimensions");return"butt"===this.strokeLineCap&&(0===this.width&&(e.y-=this.strokeWidth),0===this.height&&(e.x-=this.strokeWidth)),e},calcLinePoints:function(){var e=this.x1<=this.x2?-1:1,t=this.y1<=this.y2?-1:1,n=e*this.width*.5,i=t*this.height*.5;return{x1:n,x2:e*this.width*-.5,y1:i,y2:t*this.height*-.5}},_toSVG:function(){var e=this.calcLinePoints();return["<line ","COMMON_PARTS",'x1="',e.x1,'" y1="',e.y1,'" x2="',e.x2,'" y2="',e.y2,'" />\n']}}),t.Line.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" ")),t.Line.fromElement=function(e,i,r){r=r||{};var o=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),a=[o.x1||0,o.y1||0,o.x2||0,o.y2||0];i(new t.Line(a,n(o,r)))},t.Line.fromObject=function(e,n){var r=i(e,!0);r.points=[e.x1,e.y1,e.x2,e.y2],t.Object._fromObject("Line",r,(function(e){delete e.points,n&&n(e)}),"points")})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI;t.Circle?t.warn("fabric.Circle is already defined."):(t.Circle=t.util.createClass(t.Object,{type:"circle",radius:0,startAngle:0,endAngle:2*n,cacheProperties:t.Object.prototype.cacheProperties.concat("radius","startAngle","endAngle"),_set:function(e,t){return this.callSuper("_set",e,t),"radius"===e&&this.setRadius(t),this},toObject:function(e){return this.callSuper("toObject",["radius","startAngle","endAngle"].concat(e))},_toSVG:function(){var e,i=(this.endAngle-this.startAngle)%(2*n);if(0===i)e=["<circle ","COMMON_PARTS",'cx="0" cy="0" ','r="',this.radius,'" />\n'];else{var r=t.util.cos(this.startAngle)*this.radius,o=t.util.sin(this.startAngle)*this.radius,a=t.util.cos(this.endAngle)*this.radius,s=t.util.sin(this.endAngle)*this.radius,u=i>n?"1":"0";e=['<path d="M '+r+" "+o," A "+this.radius+" "+this.radius," 0 ",+u+" 1"," "+a+" "+s,'" ',"COMMON_PARTS"," />\n"]}return e},_render:function(e){e.beginPath(),e.arc(0,0,this.radius,this.startAngle,this.endAngle,!1),this._renderPaintInOrder(e)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){return this.radius=e,this.set("width",2*e).set("height",2*e)}}),t.Circle.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("cx cy r".split(" ")),t.Circle.fromElement=function(e,n){var i,r=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!("radius"in(i=r)&&i.radius>=0))throw new Error("value of `r` attribute is required and can not be negative");r.left=(r.left||0)-r.radius,r.top=(r.top||0)-r.radius,n(new t.Circle(r))},t.Circle.fromObject=function(e,n){return t.Object._fromObject("Circle",e,n)})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});t.Triangle?t.warn("fabric.Triangle is already defined"):(t.Triangle=t.util.createClass(t.Object,{type:"triangle",width:100,height:100,_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this._renderPaintInOrder(e)},_renderDashedStroke:function(e){var n=this.width/2,i=this.height/2;e.beginPath(),t.util.drawDashedLine(e,-n,i,0,-i,this.strokeDashArray),t.util.drawDashedLine(e,0,-i,n,i,this.strokeDashArray),t.util.drawDashedLine(e,n,i,-n,i,this.strokeDashArray),e.closePath()},_toSVG:function(){var e=this.width/2,t=this.height/2;return["<polygon ","COMMON_PARTS",'points="',[-e+" "+t,"0 "+-t,e+" "+t].join(","),'" />']}}),t.Triangle.fromObject=function(e,n){return t.Object._fromObject("Triangle",e,n)})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=2*Math.PI;t.Ellipse?t.warn("fabric.Ellipse is already defined."):(t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,cacheProperties:t.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(e){this.callSuper("initialize",e),this.set("rx",e&&e.rx||0),this.set("ry",e&&e.ry||0)},_set:function(e,t){switch(this.callSuper("_set",e,t),e){case"rx":this.rx=t,this.set("width",2*t);break;case"ry":this.ry=t,this.set("height",2*t)}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(e){return this.callSuper("toObject",["rx","ry"].concat(e))},_toSVG:function(){return["<ellipse ","COMMON_PARTS",'cx="0" cy="0" ','rx="',this.rx,'" ry="',this.ry,'" />\n']},_render:function(e){e.beginPath(),e.save(),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(0,0,this.rx,0,n,!1),e.restore(),this._renderPaintInOrder(e)}}),t.Ellipse.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" ")),t.Ellipse.fromElement=function(e,n){var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES);i.left=(i.left||0)-i.rx,i.top=(i.top||0)-i.ry,n(new t.Ellipse(i))},t.Ellipse.fromObject=function(e,n){return t.Object._fromObject("Ellipse",e,n)})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend;t.Rect?t.warn("fabric.Rect is already defined"):(t.Rect=t.util.createClass(t.Object,{stateProperties:t.Object.prototype.stateProperties.concat("rx","ry"),type:"rect",rx:0,ry:0,cacheProperties:t.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(e){this.callSuper("initialize",e),this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx?Math.min(this.rx,this.width/2):0,n=this.ry?Math.min(this.ry,this.height/2):0,i=this.width,r=this.height,o=-this.width/2,a=-this.height/2,s=0!==t||0!==n,u=.4477152502;e.beginPath(),e.moveTo(o+t,a),e.lineTo(o+i-t,a),s&&e.bezierCurveTo(o+i-u*t,a,o+i,a+u*n,o+i,a+n),e.lineTo(o+i,a+r-n),s&&e.bezierCurveTo(o+i,a+r-u*n,o+i-u*t,a+r,o+i-t,a+r),e.lineTo(o+t,a+r),s&&e.bezierCurveTo(o+u*t,a+r,o,a+r-u*n,o,a+r-n),e.lineTo(o,a+n),s&&e.bezierCurveTo(o,a+u*n,o+u*t,a,o+t,a),e.closePath(),this._renderPaintInOrder(e)},_renderDashedStroke:function(e){var n=-this.width/2,i=-this.height/2,r=this.width,o=this.height;e.beginPath(),t.util.drawDashedLine(e,n,i,n+r,i,this.strokeDashArray),t.util.drawDashedLine(e,n+r,i,n+r,i+o,this.strokeDashArray),t.util.drawDashedLine(e,n+r,i+o,n,i+o,this.strokeDashArray),t.util.drawDashedLine(e,n,i+o,n,i,this.strokeDashArray),e.closePath()},toObject:function(e){return this.callSuper("toObject",["rx","ry"].concat(e))},_toSVG:function(){return["<rect ","COMMON_PARTS",'x="',-this.width/2,'" y="',-this.height/2,'" rx="',this.rx,'" ry="',this.ry,'" width="',this.width,'" height="',this.height,'" />\n']}}),t.Rect.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" ")),t.Rect.fromElement=function(e,i,r){if(!e)return i(null);r=r||{};var o=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);o.left=o.left||0,o.top=o.top||0,o.height=o.height||0,o.width=o.width||0;var a=new t.Rect(n(r?t.util.object.clone(r):{},o));a.visible=a.visible&&a.width>0&&a.height>0,i(a)},t.Rect.fromObject=function(e,n){return t.Object._fromObject("Rect",e,n)})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.util.array.min,r=t.util.array.max,o=t.util.toFixed;t.Polyline?t.warn("fabric.Polyline is already defined"):(t.Polyline=t.util.createClass(t.Object,{type:"polyline",points:null,cacheProperties:t.Object.prototype.cacheProperties.concat("points"),initialize:function(e,t){t=t||{},this.points=e||[],this.callSuper("initialize",t),this._setPositionDimensions(t)},_setPositionDimensions:function(e){var t,n=this._calcDimensions(e);this.width=n.width,this.height=n.height,e.fromSVG||(t=this.translateToGivenOrigin({x:n.left-this.strokeWidth/2,y:n.top-this.strokeWidth/2},"left","top",this.originX,this.originY)),"undefined"===typeof e.left&&(this.left=e.fromSVG?n.left:t.x),"undefined"===typeof e.top&&(this.top=e.fromSVG?n.top:t.y),this.pathOffset={x:n.left+this.width/2,y:n.top+this.height/2}},_calcDimensions:function(){var e=this.points,t=i(e,"x")||0,n=i(e,"y")||0;return{left:t,top:n,width:(r(e,"x")||0)-t,height:(r(e,"y")||0)-n}},toObject:function(e){return n(this.callSuper("toObject",e),{points:this.points.concat()})},_toSVG:function(){for(var e=[],n=this.pathOffset.x,i=this.pathOffset.y,r=t.Object.NUM_FRACTION_DIGITS,a=0,s=this.points.length;a<s;a++)e.push(o(this.points[a].x-n,r),",",o(this.points[a].y-i,r)," ");return["<"+this.type+" ","COMMON_PARTS",'points="',e.join(""),'" />\n']},commonRender:function(e){var t,n=this.points.length,i=this.pathOffset.x,r=this.pathOffset.y;if(!n||isNaN(this.points[n-1].y))return!1;e.beginPath(),e.moveTo(this.points[0].x-i,this.points[0].y-r);for(var o=0;o<n;o++)t=this.points[o],e.lineTo(t.x-i,t.y-r);return!0},_render:function(e){this.commonRender(e)&&this._renderPaintInOrder(e)},_renderDashedStroke:function(e){var n,i;e.beginPath();for(var r=0,o=this.points.length;r<o;r++)n=this.points[r],i=this.points[r+1]||n,t.util.drawDashedLine(e,n.x,n.y,i.x,i.y,this.strokeDashArray)},complexity:function(){return this.get("points").length}}),t.Polyline.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat(),t.Polyline.fromElementGenerator=function(e){return function(i,r,o){if(!i)return r(null);o||(o={});var a=t.parsePointsAttribute(i.getAttribute("points")),s=t.parseAttributes(i,t[e].ATTRIBUTE_NAMES);s.fromSVG=!0,r(new t[e](a,n(s,o)))}},t.Polyline.fromElement=t.Polyline.fromElementGenerator("Polyline"),t.Polyline.fromObject=function(e,n){return t.Object._fromObject("Polyline",e,n,"points")})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});t.Polygon?t.warn("fabric.Polygon is already defined"):(t.Polygon=t.util.createClass(t.Polyline,{type:"polygon",_render:function(e){this.commonRender(e)&&(e.closePath(),this._renderPaintInOrder(e))},_renderDashedStroke:function(e){this.callSuper("_renderDashedStroke",e),e.closePath()}}),t.Polygon.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat(),t.Polygon.fromElement=t.Polyline.fromElementGenerator("Polygon"),t.Polygon.fromObject=function(e,n){return t.Object._fromObject("Polygon",e,n,"points")})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.array.min,i=t.util.array.max,r=t.util.object.extend,o=Object.prototype.toString,a=t.util.toFixed;t.Path?t.warn("fabric.Path is already defined"):(t.Path=t.util.createClass(t.Object,{type:"path",path:null,cacheProperties:t.Object.prototype.cacheProperties.concat("path","fillRule"),stateProperties:t.Object.prototype.stateProperties.concat("path"),initialize:function(e,n){n=n||{},this.callSuper("initialize",n),e||(e=[]);var i="[object Array]"===o.call(e);this.path=i?t.util.makePathSimpler(e):t.util.makePathSimpler(t.util.parsePath(e)),this.path&&t.Polyline.prototype._setPositionDimensions.call(this,n)},_renderPathCommands:function(e){var t,n=0,i=0,r=0,o=0,a=0,s=0,u=-this.pathOffset.x,l=-this.pathOffset.y;e.beginPath();for(var c=0,d=this.path.length;c<d;++c)switch((t=this.path[c])[0]){case"L":r=t[1],o=t[2],e.lineTo(r+u,o+l);break;case"M":n=r=t[1],i=o=t[2],e.moveTo(r+u,o+l);break;case"C":r=t[5],o=t[6],a=t[3],s=t[4],e.bezierCurveTo(t[1]+u,t[2]+l,a+u,s+l,r+u,o+l);break;case"Q":e.quadraticCurveTo(t[1]+u,t[2]+l,t[3]+u,t[4]+l),r=t[3],o=t[4],a=t[1],s=t[2];break;case"z":case"Z":r=n,o=i,e.closePath()}},_render:function(e){this._renderPathCommands(e),this._renderPaintInOrder(e)},toString:function(){return"#<fabric.Path ("+this.complexity()+'): { "top": '+this.top+', "left": '+this.left+" }>"},toObject:function(e){return r(this.callSuper("toObject",e),{path:this.path.map((function(e){return e.slice()}))})},toDatalessObject:function(e){var t=this.toObject(["sourcePath"].concat(e));return t.sourcePath&&delete t.path,t},_toSVG:function(){return["<path ","COMMON_PARTS",'d="',this.path.map((function(e){return e.join(" ")})).join(" "),'" stroke-linecap="round" ',"/>\n"]},_getOffsetTransform:function(){var e=t.Object.NUM_FRACTION_DIGITS;return" translate("+a(-this.pathOffset.x,e)+", "+a(-this.pathOffset.y,e)+")"},toClipPathSVG:function(e){var t=this._getOffsetTransform();return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:e,additionalTransform:t})},toSVG:function(e){var t=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:e,additionalTransform:t})},complexity:function(){return this.path.length},_calcDimensions:function(){for(var e,r,o=[],a=[],s=0,u=0,l=0,c=0,d=0,h=this.path.length;d<h;++d){switch((e=this.path[d])[0]){case"L":l=e[1],c=e[2],r=[];break;case"M":s=l=e[1],u=c=e[2],r=[];break;case"C":r=t.util.getBoundsOfCurve(l,c,e[1],e[2],e[3],e[4],e[5],e[6]),l=e[5],c=e[6];break;case"Q":r=t.util.getBoundsOfCurve(l,c,e[1],e[2],e[1],e[2],e[3],e[4]),l=e[3],c=e[4];break;case"z":case"Z":l=s,c=u}r.forEach((function(e){o.push(e.x),a.push(e.y)})),o.push(l),a.push(c)}var f=n(o)||0,p=n(a)||0;return{left:f,top:p,width:(i(o)||0)-f,height:(i(a)||0)-p}}}),t.Path.fromObject=function(e,n){if("string"===typeof e.sourcePath){var i=e.sourcePath;t.loadSVGFromURL(i,(function(t){var i=t[0];i.setOptions(e),n&&n(i)}))}else t.Object._fromObject("Path",e,n,"path")},t.Path.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat(["d"]),t.Path.fromElement=function(e,n,i){var o=t.parseAttributes(e,t.Path.ATTRIBUTE_NAMES);o.fromSVG=!0,n(new t.Path(o.d,r(o,i)))})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.array.min,i=t.util.array.max;t.Group||(t.Group=t.util.createClass(t.Object,t.Collection,{type:"group",strokeWidth:0,subTargetCheck:!1,cacheProperties:[],useSetOnGroup:!1,initialize:function(e,t,n){t=t||{},this._objects=[],n&&this.callSuper("initialize",t),this._objects=e||[];for(var i=this._objects.length;i--;)this._objects[i].group=this;if(n)this._updateObjectsACoords();else{var r=t&&t.centerPoint;void 0!==t.originX&&(this.originX=t.originX),void 0!==t.originY&&(this.originY=t.originY),r||this._calcBounds(),this._updateObjectsCoords(r),delete t.centerPoint,this.callSuper("initialize",t)}this.setCoords()},_updateObjectsACoords:function(){for(var e=this._objects.length;e--;)this._objects[e].setCoords(true)},_updateObjectsCoords:function(e){e=e||this.getCenterPoint();for(var t=this._objects.length;t--;)this._updateObjectCoords(this._objects[t],e)},_updateObjectCoords:function(e,t){var n=e.left,i=e.top;e.set({left:n-t.x,top:i-t.y}),e.group=this,e.setCoords(!0)},toString:function(){return"#<fabric.Group: ("+this.complexity()+")>"},addWithUpdate:function(e){return this._restoreObjectsState(),t.util.resetObjectTransform(this),e&&(this._objects.push(e),e.group=this,e._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},removeWithUpdate:function(e){return this._restoreObjectsState(),t.util.resetObjectTransform(this),this.remove(e),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},_onObjectAdded:function(e){this.dirty=!0,e.group=this,e._set("canvas",this.canvas)},_onObjectRemoved:function(e){this.dirty=!0,delete e.group},_set:function(e,n){var i=this._objects.length;if(this.useSetOnGroup)for(;i--;)this._objects[i].setOnGroup(e,n);if("canvas"===e)for(;i--;)this._objects[i]._set(e,n);t.Object.prototype._set.call(this,e,n)},toObject:function(e){var n=this.includeDefaultValues,i=this._objects.map((function(t){var i=t.includeDefaultValues;t.includeDefaultValues=n;var r=t.toObject(e);return t.includeDefaultValues=i,r})),r=t.Object.prototype.toObject.call(this,e);return r.objects=i,r},toDatalessObject:function(e){var n,i=this.sourcePath;if(i)n=i;else{var r=this.includeDefaultValues;n=this._objects.map((function(t){var n=t.includeDefaultValues;t.includeDefaultValues=r;var i=t.toDatalessObject(e);return t.includeDefaultValues=n,i}))}var o=t.Object.prototype.toDatalessObject.call(this,e);return o.objects=n,o},render:function(e){this._transformDone=!0,this.callSuper("render",e),this._transformDone=!1},shouldCache:function(){var e=t.Object.prototype.shouldCache.call(this);if(e)for(var n=0,i=this._objects.length;n<i;n++)if(this._objects[n].willDrawShadow())return this.ownCaching=!1,!1;return e},willDrawShadow:function(){if(t.Object.prototype.willDrawShadow.call(this))return!0;for(var e=0,n=this._objects.length;e<n;e++)if(this._objects[e].willDrawShadow())return!0;return!1},isOnACache:function(){return this.ownCaching||this.group&&this.group.isOnACache()},drawObject:function(e){for(var t=0,n=this._objects.length;t<n;t++)this._objects[t].render(e);this._drawClipPath(e)},isCacheDirty:function(e){if(this.callSuper("isCacheDirty",e))return!0;if(!this.statefullCache)return!1;for(var t=0,n=this._objects.length;t<n;t++)if(this._objects[t].isCacheDirty(!0)){if(this._cacheCanvas){var i=this.cacheWidth/this.zoomX,r=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-i/2,-r/2,i,r)}return!0}return!1},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},realizeTransform:function(e){var n=e.calcTransformMatrix(),i=t.util.qrDecompose(n),r=new t.Point(i.translateX,i.translateY);return e.flipX=!1,e.flipY=!1,e.set("scaleX",i.scaleX),e.set("scaleY",i.scaleY),e.skewX=i.skewX,e.skewY=i.skewY,e.angle=i.angle,e.setPositionByOrigin(r,"center","center"),e},_restoreObjectState:function(e){return this.realizeTransform(e),delete e.group,e.setCoords(),this},destroy:function(){return this._objects.forEach((function(e){e.set("dirty",!0)})),this._restoreObjectsState()},toActiveSelection:function(){if(this.canvas){var e=this._objects,n=this.canvas;this._objects=[];var i=this.toObject();delete i.objects;var r=new t.ActiveSelection([]);return r.set(i),r.type="activeSelection",n.remove(this),e.forEach((function(e){e.group=r,e.dirty=!0,n.add(e)})),r.canvas=n,r._objects=e,n._activeObject=r,r.setCoords(),r}},ungroupOnCanvas:function(){return this._restoreObjectsState()},setObjectsCoords:function(){return this.forEachObject((function(e){e.setCoords(true)})),this},_calcBounds:function(e){for(var t,n,i,r=[],o=[],a=["tr","br","bl","tl"],s=0,u=this._objects.length,l=a.length;s<u;++s)for((t=this._objects[s]).aCoords=t.calcACoords(),i=0;i<l;i++)n=a[i],r.push(t.aCoords[n].x),o.push(t.aCoords[n].y);this._getBounds(r,o,e)},_getBounds:function(e,r,o){var a=new t.Point(n(e),n(r)),s=new t.Point(i(e),i(r)),u=a.y||0,l=a.x||0,c=s.x-a.x||0,d=s.y-a.y||0;this.width=c,this.height=d,o||this.setPositionByOrigin({x:l,y:u},"left","top")},_toSVG:function(e){for(var t=["<g ","COMMON_PARTS"," >\n"],n=0,i=this._objects.length;n<i;n++)t.push("\t\t",this._objects[n].toSVG(e));return t.push("</g>\n"),t},getSvgStyles:function(){var e="undefined"!==typeof this.opacity&&1!==this.opacity?"opacity: "+this.opacity+";":"",t=this.visible?"":" visibility: hidden;";return[e,this.getSvgFilter(),t].join("")},toClipPathSVG:function(e){for(var t=[],n=0,i=this._objects.length;n<i;n++)t.push("\t",this._objects[n].toClipPathSVG(e));return this._createBaseClipPathSVGMarkup(t,{reviver:e})}}),t.Group.fromObject=function(e,n){var i=e.objects,r=t.util.object.clone(e,!0);delete r.objects,"string"!==typeof i?t.util.enlivenObjects(i,(function(i){t.util.enlivenObjects([e.clipPath],(function(r){var o=t.util.object.clone(e,!0);o.clipPath=r[0],delete o.objects,n&&n(new t.Group(i,o,!0))}))})):t.loadSVGFromURL(i,(function(o){var a=t.util.groupSVGElements(o,e,i);a.set(r),n&&n(a)}))})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});t.ActiveSelection||(t.ActiveSelection=t.util.createClass(t.Group,{type:"activeSelection",initialize:function(e,n){n=n||{},this._objects=e||[];for(var i=this._objects.length;i--;)this._objects[i].group=this;n.originX&&(this.originX=n.originX),n.originY&&(this.originY=n.originY),this._calcBounds(),this._updateObjectsCoords(),t.Object.prototype.initialize.call(this,n),this.setCoords()},toGroup:function(){var e=this._objects.concat();this._objects=[];var n=t.Object.prototype.toObject.call(this),i=new t.Group([]);if(delete n.type,i.set(n),e.forEach((function(e){e.canvas.remove(e),e.group=i})),i._objects=e,!this.canvas)return i;var r=this.canvas;return r.add(i),r._activeObject=i,i.setCoords(),i},onDeselect:function(){return this.destroy(),!1},toString:function(){return"#<fabric.ActiveSelection: ("+this.complexity()+")>"},shouldCache:function(){return!1},isOnACache:function(){return!1},_renderControls:function(e,t,n){e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,this.callSuper("_renderControls",e,t),"undefined"===typeof(n=n||{}).hasControls&&(n.hasControls=!1),n.forActiveSelection=!0;for(var i=0,r=this._objects.length;i<r;i++)this._objects[i]._renderControls(e,n);e.restore()}}),t.ActiveSelection.fromObject=function(e,n){t.util.enlivenObjects(e.objects,(function(i){delete e.objects,n&&n(new t.ActiveSelection(i,e,!0))}))})}(t),function(e){"use strict";var t=r.util.object.extend;e.fabric||(e.fabric={}),e.fabric.Image?r.warn("fabric.Image is already defined."):(r.Image=r.util.createClass(r.Object,{type:"image",strokeWidth:0,srcFromAttribute:!1,_lastScaleX:1,_lastScaleY:1,_filterScalingX:1,_filterScalingY:1,minimumScaleTrigger:.5,stateProperties:r.Object.prototype.stateProperties.concat("cropX","cropY"),cacheKey:"",cropX:0,cropY:0,imageSmoothing:!0,initialize:function(e,t){t||(t={}),this.filters=[],this.cacheKey="texture"+r.Object.__uid++,this.callSuper("initialize",t),this._initElement(e,t)},getElement:function(){return this._element||{}},setElement:function(e,t){return this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._element=e,this._originalElement=e,this._initConfig(t),0!==this.filters.length&&this.applyFilters(),this.resizeFilter&&this.applyResizeFilters(),this},removeTexture:function(e){var t=r.filterBackend;t&&t.evictCachesForKey&&t.evictCachesForKey(e)},dispose:function(){this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._cacheContext=void 0,["_originalElement","_element","_filteredEl","_cacheCanvas"].forEach(function(e){r.util.cleanUpJsdomNode(this[e]),this[e]=void 0}.bind(this))},getCrossOrigin:function(){return this._originalElement&&(this._originalElement.crossOrigin||null)},getOriginalSize:function(){var e=this.getElement();return{width:e.naturalWidth||e.width,height:e.naturalHeight||e.height}},_stroke:function(e){if(this.stroke&&0!==this.strokeWidth){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,-n),e.lineTo(t,-n),e.lineTo(t,n),e.lineTo(-t,n),e.lineTo(-t,-n),e.closePath()}},_renderDashedStroke:function(e){var t=-this.width/2,n=-this.height/2,i=this.width,o=this.height;e.save(),this._setStrokeStyles(e,this),e.beginPath(),r.util.drawDashedLine(e,t,n,t+i,n,this.strokeDashArray),r.util.drawDashedLine(e,t+i,n,t+i,n+o,this.strokeDashArray),r.util.drawDashedLine(e,t+i,n+o,t,n+o,this.strokeDashArray),r.util.drawDashedLine(e,t,n+o,t,n,this.strokeDashArray),e.closePath(),e.restore()},toObject:function(e){var n=[];this.filters.forEach((function(e){e&&n.push(e.toObject())}));var i=t(this.callSuper("toObject",["cropX","cropY"].concat(e)),{src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:n});return this.resizeFilter&&(i.resizeFilter=this.resizeFilter.toObject()),i},hasCrop:function(){return this.cropX||this.cropY||this.width<this._element.width||this.height<this._element.height},_toSVG:function(){var e,t=[],n=[],i=this._element,o=-this.width/2,a=-this.height/2,s="",u="";if(!i)return[];if(this.hasCrop()){var l=r.Object.__uid++;t.push('<clipPath id="imageCrop_'+l+'">\n','\t<rect x="'+o+'" y="'+a+'" width="'+this.width+'" height="'+this.height+'" />\n',"</clipPath>\n"),s=' clip-path="url(#imageCrop_'+l+')" '}if(this.imageSmoothing||(u='" image-rendering="optimizeSpeed'),n.push("\t<image ","COMMON_PARTS",'xlink:href="',this.getSvgSrc(!0),'" x="',o-this.cropX,'" y="',a-this.cropY,'" width="',i.width||i.naturalWidth,'" height="',i.height||i.height,u,'"',s,"></image>\n"),this.stroke||this.strokeDashArray){var c=this.fill;this.fill=null,e=["\t<rect ",'x="',o,'" y="',a,'" width="',this.width,'" height="',this.height,'" style="',this.getSvgStyles(),'"/>\n'],this.fill=c}return t="fill"!==this.paintFirst?t.concat(e,n):t.concat(n,e)},getSrc:function(e){var t=e?this._element:this._originalElement;return t?t.toDataURL?t.toDataURL():this.srcFromAttribute?t.getAttribute("src"):t.src:this.src||""},setSrc:function(e,t,n){return r.util.loadImage(e,(function(e,i){this.setElement(e,n),this._setWidthHeight(),t&&t(this,i)}),this,n&&n.crossOrigin),this},toString:function(){return'#<fabric.Image: { src: "'+this.getSrc()+'" }>'},applyResizeFilters:function(){var e=this.resizeFilter,t=this.minimumScaleTrigger,n=this.getTotalObjectScaling(),i=n.scaleX,o=n.scaleY,a=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!e||i>t&&o>t)return this._element=a,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=i,void(this._lastScaleY=o);r.filterBackend||(r.filterBackend=r.initFilterBackend());var s=r.util.createCanvasElement(),u=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,l=a.width,c=a.height;s.width=l,s.height=c,this._element=s,this._lastScaleX=e.scaleX=i,this._lastScaleY=e.scaleY=o,r.filterBackend.applyFilters([e],a,l,c,this._element,u),this._filterScalingX=s.width/this._originalElement.width,this._filterScalingY=s.height/this._originalElement.height},applyFilters:function(e){if(e=(e=e||this.filters||[]).filter((function(e){return e&&!e.isNeutralState()})),this.set("dirty",!0),this.removeTexture(this.cacheKey+"_filtered"),0===e.length)return this._element=this._originalElement,this._filteredEl=null,this._filterScalingX=1,this._filterScalingY=1,this;var t=this._originalElement,n=t.naturalWidth||t.width,i=t.naturalHeight||t.height;if(this._element===this._originalElement){var o=r.util.createCanvasElement();o.width=n,o.height=i,this._element=o,this._filteredEl=o}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,n,i),this._lastScaleX=1,this._lastScaleY=1;return r.filterBackend||(r.filterBackend=r.initFilterBackend()),r.filterBackend.applyFilters(e,this._originalElement,n,i,this._element,this.cacheKey),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height),this},_render:function(e){r.util.setImageSmoothing(e,this.imageSmoothing),!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(e),this._renderPaintInOrder(e)},drawCacheOnCanvas:function(e){r.util.setImageSmoothing(e,this.imageSmoothing),r.Object.prototype.drawCacheOnCanvas.call(this,e)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(e){var t=this._element;if(t){var n=this._filterScalingX,i=this._filterScalingY,r=this.width,o=this.height,a=Math.min,s=Math.max,u=s(this.cropX,0),l=s(this.cropY,0),c=t.naturalWidth||t.width,d=t.naturalHeight||t.height,h=u*n,f=l*i,p=a(r*n,c-h),g=a(o*i,d-f),v=-r/2,m=-o/2,_=a(r,c/n-u),y=a(o,d/n-l);t&&e.drawImage(t,h,f,p,g,v,m,_,y)}},_needsResize:function(){var e=this.getTotalObjectScaling();return e.scaleX!==this._lastScaleX||e.scaleY!==this._lastScaleY},_resetWidthHeight:function(){this.set(this.getOriginalSize())},_initElement:function(e,t){this.setElement(r.util.getById(e),t),r.util.addClass(this.getElement(),r.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e,t){e&&e.length?r.util.enlivenObjects(e,(function(e){t&&t(e)}),"fabric.Image.filters"):t&&t()},_setWidthHeight:function(e){e||(e={});var t=this.getElement();this.width=e.width||t.naturalWidth||t.width||0,this.height=e.height||t.naturalHeight||t.height||0},parsePreserveAspectRatioAttribute:function(){var e,t=r.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),n=this._element.width,i=this._element.height,o=1,a=1,s=0,u=0,l=0,c=0,d=this.width,h=this.height,f={width:d,height:h};return!t||"none"===t.alignX&&"none"===t.alignY?(o=d/n,a=h/i):("meet"===t.meetOrSlice&&(e=(d-n*(o=a=r.util.findScaleToFit(this._element,f)))/2,"Min"===t.alignX&&(s=-e),"Max"===t.alignX&&(s=e),e=(h-i*a)/2,"Min"===t.alignY&&(u=-e),"Max"===t.alignY&&(u=e)),"slice"===t.meetOrSlice&&(e=n-d/(o=a=r.util.findScaleToCover(this._element,f)),"Mid"===t.alignX&&(l=e/2),"Max"===t.alignX&&(l=e),e=i-h/a,"Mid"===t.alignY&&(c=e/2),"Max"===t.alignY&&(c=e),n=d/o,i=h/a)),{width:n,height:i,scaleX:o,scaleY:a,offsetLeft:s,offsetTop:u,cropX:l,cropY:c}}}),r.Image.CSS_CANVAS="canvas-img",r.Image.prototype.getSvgSrc=r.Image.prototype.getSrc,r.Image.fromObject=function(e,t){var n=r.util.object.clone(e);r.util.loadImage(n.src,(function(e,i){i?t&&t(null,!0):r.Image.prototype._initFilters.call(n,n.filters,(function(i){n.filters=i||[],r.Image.prototype._initFilters.call(n,[n.resizeFilter],(function(i){n.resizeFilter=i[0],r.util.enlivenObjects([n.clipPath],(function(i){n.clipPath=i[0];var o=new r.Image(e,n);t(o,!1)}))}))}))}),null,n.crossOrigin)},r.Image.fromURL=function(e,t,n){r.util.loadImage(e,(function(e,i){t&&t(new r.Image(e,n),i)}),null,n&&n.crossOrigin)},r.Image.ATTRIBUTE_NAMES=r.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),r.Image.fromElement=function(e,n,i){var o=r.parseAttributes(e,r.Image.ATTRIBUTE_NAMES);r.Image.fromURL(o["xlink:href"],n,t(i?r.util.object.clone(i):{},o))})}(t),r.util.object.extend(r.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.angle%360;return e>0?90*Math.round((e-1)/90):90*Math.round(e/90)},straighten:function(){return this.rotate(this._getAngleValueForStraighten()),this},fxStraighten:function(e){var t=function(){},n=(e=e||{}).onComplete||t,i=e.onChange||t,o=this;return r.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){o.rotate(e),i()},onComplete:function(){o.setCoords(),n()}}),this}}),r.util.object.extend(r.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.requestRenderAllBound}),this}}),function(){"use strict";function e(e,t){var n="precision "+t+" float;\nvoid main(){}",i=e.createShader(e.FRAGMENT_SHADER);return e.shaderSource(i,n),e.compileShader(i),!!e.getShaderParameter(i,e.COMPILE_STATUS)}function t(e){e&&e.tileSize&&(this.tileSize=e.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}r.isWebglSupported=function(t){if(r.isLikelyNode)return!1;t=t||r.WebglFilterBackend.prototype.tileSize;var n=document.createElement("canvas"),i=n.getContext("webgl")||n.getContext("experimental-webgl"),o=!1;if(i){r.maxTextureSize=i.getParameter(i.MAX_TEXTURE_SIZE),o=r.maxTextureSize>=t;for(var a=["highp","mediump","lowp"],s=0;s<3;s++)if(e(i,a[s])){r.webGlPrecision=a[s];break}}return this.isSupported=o,o},r.WebglFilterBackend=t,t.prototype={tileSize:2048,resources:{},setupGLContext:function(e,t){this.dispose(),this.createWebGLCanvas(e,t),this.aPosition=new Float32Array([0,0,0,1,1,0,1,1]),this.chooseFastestCopyGLTo2DMethod(e,t)},chooseFastestCopyGLTo2DMethod:function(e,t){var n,i="undefined"!==typeof window.performance;try{new ImageData(1,1),n=!0}catch(p){n=!1}var o="undefined"!==typeof ArrayBuffer,u="undefined"!==typeof Uint8ClampedArray;if(i&&n&&o&&u){var l=r.util.createCanvasElement(),c=new ArrayBuffer(e*t*4);if(r.forceGLPutImageData)return this.imageBuffer=c,void(this.copyGLTo2D=s);var d,h,f={imageBuffer:c,destinationWidth:e,destinationHeight:t,targetCanvas:l};l.width=e,l.height=t,d=window.performance.now(),a.call(f,this.gl,f),h=window.performance.now()-d,d=window.performance.now(),s.call(f,this.gl,f),h>window.performance.now()-d?(this.imageBuffer=c,this.copyGLTo2D=s):this.copyGLTo2D=a}},createWebGLCanvas:function(e,t){var n=r.util.createCanvasElement();n.width=e,n.height=t;var i={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},o=n.getContext("webgl",i);o||(o=n.getContext("experimental-webgl",i)),o&&(o.clearColor(0,0,0,0),this.canvas=n,this.gl=o)},applyFilters:function(e,t,n,i,r,o){var a,s=this.gl;o&&(a=this.getCachedTexture(o,t));var u={originalWidth:t.width||t.originalWidth,originalHeight:t.height||t.originalHeight,sourceWidth:n,sourceHeight:i,destinationWidth:n,destinationHeight:i,context:s,sourceTexture:this.createTexture(s,n,i,!a&&t),targetTexture:this.createTexture(s,n,i),originalTexture:a||this.createTexture(s,n,i,!a&&t),passes:e.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:r},l=s.createFramebuffer();return s.bindFramebuffer(s.FRAMEBUFFER,l),e.forEach((function(e){e&&e.applyTo(u)})),function(e){var t=e.targetCanvas,n=t.width,i=t.height,r=e.destinationWidth,o=e.destinationHeight;n===r&&i===o||(t.width=r,t.height=o)}(u),this.copyGLTo2D(s,u),s.bindTexture(s.TEXTURE_2D,null),s.deleteTexture(u.sourceTexture),s.deleteTexture(u.targetTexture),s.deleteFramebuffer(l),r.getContext("2d").setTransform(1,0,0,1,0,0),u},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(e,t,n,i){var r=e.createTexture();return e.bindTexture(e.TEXTURE_2D,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),i?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.UNSIGNED_BYTE,null),r},getCachedTexture:function(e,t){if(this.textureCache[e])return this.textureCache[e];var n=this.createTexture(this.gl,t.width,t.height,t);return this.textureCache[e]=n,n},evictCachesForKey:function(e){this.textureCache[e]&&(this.gl.deleteTexture(this.textureCache[e]),delete this.textureCache[e])},copyGLTo2D:a,captureGPUInfo:function(){if(this.gpuInfo)return this.gpuInfo;var e=this.gl,t={renderer:"",vendor:""};if(!e)return t;var n=e.getExtension("WEBGL_debug_renderer_info");if(n){var i=e.getParameter(n.UNMASKED_RENDERER_WEBGL),r=e.getParameter(n.UNMASKED_VENDOR_WEBGL);i&&(t.renderer=i.toLowerCase()),r&&(t.vendor=r.toLowerCase())}return this.gpuInfo=t,t}}}(),function(){"use strict";var e=function(){};function t(){}r.Canvas2dFilterBackend=t,t.prototype={evictCachesForKey:e,dispose:e,clearWebGLCaches:e,resources:{},applyFilters:function(e,t,n,i,r){var o=r.getContext("2d");o.drawImage(t,0,0,n,i);var a={sourceWidth:n,sourceHeight:i,imageData:o.getImageData(0,0,n,i),originalEl:t,originalImageData:o.getImageData(0,0,n,i),canvasEl:r,ctx:o,filterBackend:this};return e.forEach((function(e){e.applyTo(a)})),a.imageData.width===n&&a.imageData.height===i||(r.width=a.imageData.width,r.height=a.imageData.height),o.putImageData(a.imageData,0,0),a}}}(),r.Image=r.Image||{},r.Image.filters=r.Image.filters||{},r.Image.filters.BaseFilter=r.util.createClass({type:"BaseFilter",vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvoid main() {\nvTexCoord = aPosition;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:"precision highp float;\nvarying vec2 vTexCoord;\nuniform sampler2D uTexture;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\n}",initialize:function(e){e&&this.setOptions(e)},setOptions:function(e){for(var t in e)this[t]=e[t]},createProgram:function(e,t,n){t=t||this.fragmentSource,n=n||this.vertexSource,"highp"!==r.webGlPrecision&&(t=t.replace(/precision highp float/g,"precision "+r.webGlPrecision+" float"));var i=e.createShader(e.VERTEX_SHADER);if(e.shaderSource(i,n),e.compileShader(i),!e.getShaderParameter(i,e.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+e.getShaderInfoLog(i));var o=e.createShader(e.FRAGMENT_SHADER);if(e.shaderSource(o,t),e.compileShader(o),!e.getShaderParameter(o,e.COMPILE_STATUS))throw new Error("Fragment shader compile error for "+this.type+": "+e.getShaderInfoLog(o));var a=e.createProgram();if(e.attachShader(a,i),e.attachShader(a,o),e.linkProgram(a),!e.getProgramParameter(a,e.LINK_STATUS))throw new Error('Shader link error for "${this.type}" '+e.getProgramInfoLog(a));var s=this.getAttributeLocations(e,a),u=this.getUniformLocations(e,a)||{};return u.uStepW=e.getUniformLocation(a,"uStepW"),u.uStepH=e.getUniformLocation(a,"uStepH"),{program:a,attributeLocations:s,uniformLocations:u}},getAttributeLocations:function(e,t){return{aPosition:e.getAttribLocation(t,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(e,t,n){var i=t.aPosition,r=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,r),e.enableVertexAttribArray(i),e.vertexAttribPointer(i,2,e.FLOAT,!1,0,0),e.bufferData(e.ARRAY_BUFFER,n,e.STATIC_DRAW)},_setupFrameBuffer:function(e){var t,n,i=e.context;e.passes>1?(t=e.destinationWidth,n=e.destinationHeight,e.sourceWidth===t&&e.sourceHeight===n||(i.deleteTexture(e.targetTexture),e.targetTexture=e.filterBackend.createTexture(i,t,n)),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,e.targetTexture,0)):(i.bindFramebuffer(i.FRAMEBUFFER,null),i.finish())},_swapTextures:function(e){e.passes--,e.pass++;var t=e.targetTexture;e.targetTexture=e.sourceTexture,e.sourceTexture=t},isNeutralState:function(){var e=this.mainParameter,t=r.Image.filters[this.type].prototype;if(e){if(Array.isArray(t[e])){for(var n=t[e].length;n--;)if(this[e][n]!==t[e][n])return!1;return!0}return t[e]===this[e]}return!1},applyTo:function(e){e.webgl?(this._setupFrameBuffer(e),this.applyToWebGL(e),this._swapTextures(e)):this.applyTo2d(e)},retrieveShader:function(e){return e.programCache.hasOwnProperty(this.type)||(e.programCache[this.type]=this.createProgram(e.context)),e.programCache[this.type]},applyToWebGL:function(e){var t=e.context,n=this.retrieveShader(e);0===e.pass&&e.originalTexture?t.bindTexture(t.TEXTURE_2D,e.originalTexture):t.bindTexture(t.TEXTURE_2D,e.sourceTexture),t.useProgram(n.program),this.sendAttributeData(t,n.attributeLocations,e.aPosition),t.uniform1f(n.uniformLocations.uStepW,1/e.sourceWidth),t.uniform1f(n.uniformLocations.uStepH,1/e.sourceHeight),this.sendUniformData(t,n.uniformLocations),t.viewport(0,0,e.destinationWidth,e.destinationHeight),t.drawArrays(t.TRIANGLE_STRIP,0,4)},bindAdditionalTexture:function(e,t,n){e.activeTexture(n),e.bindTexture(e.TEXTURE_2D,t),e.activeTexture(e.TEXTURE0)},unbindAdditionalTexture:function(e,t){e.activeTexture(t),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE0)},getMainParameter:function(){return this[this.mainParameter]},setMainParameter:function(e){this[this.mainParameter]=e},sendUniformData:function(){},createHelpLayer:function(e){if(!e.helpLayer){var t=document.createElement("canvas");t.width=e.sourceWidth,t.height=e.sourceHeight,e.helpLayer=t}},toObject:function(){var e={type:this.type},t=this.mainParameter;return t&&(e[t]=this[t]),e},toJSON:function(){return this.toObject()}}),r.Image.filters.BaseFilter.fromObject=function(e,t){var n=new r.Image.filters[e.type](e);return t&&t(n),n},function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.ColorMatrix=i(n.BaseFilter,{type:"ColorMatrix",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nuniform mat4 uColorMatrix;\nuniform vec4 uConstants;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor *= uColorMatrix;\ncolor += uConstants;\ngl_FragColor = color;\n}",matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0,initialize:function(e){this.callSuper("initialize",e),this.matrix=this.matrix.slice(0)},applyTo2d:function(e){var t,n,i,r,o,a=e.imageData.data,s=a.length,u=this.matrix,l=this.colorsOnly;for(o=0;o<s;o+=4)t=a[o],n=a[o+1],i=a[o+2],l?(a[o]=t*u[0]+n*u[1]+i*u[2]+255*u[4],a[o+1]=t*u[5]+n*u[6]+i*u[7]+255*u[9],a[o+2]=t*u[10]+n*u[11]+i*u[12]+255*u[14]):(r=a[o+3],a[o]=t*u[0]+n*u[1]+i*u[2]+r*u[3]+255*u[4],a[o+1]=t*u[5]+n*u[6]+i*u[7]+r*u[8]+255*u[9],a[o+2]=t*u[10]+n*u[11]+i*u[12]+r*u[13]+255*u[14],a[o+3]=t*u[15]+n*u[16]+i*u[17]+r*u[18]+255*u[19])},getUniformLocations:function(e,t){return{uColorMatrix:e.getUniformLocation(t,"uColorMatrix"),uConstants:e.getUniformLocation(t,"uConstants")}},sendUniformData:function(e,t){var n=this.matrix,i=[n[0],n[1],n[2],n[3],n[5],n[6],n[7],n[8],n[10],n[11],n[12],n[13],n[15],n[16],n[17],n[18]],r=[n[4],n[9],n[14],n[19]];e.uniformMatrix4fv(t.uColorMatrix,!1,i),e.uniform4fv(t.uConstants,r)}}),t.Image.filters.ColorMatrix.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Brightness=i(n.BaseFilter,{type:"Brightness",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uBrightness;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor.rgb += uBrightness;\ngl_FragColor = color;\n}",brightness:0,mainParameter:"brightness",applyTo2d:function(e){if(0!==this.brightness){var t,n=e.imageData.data,i=n.length,r=Math.round(255*this.brightness);for(t=0;t<i;t+=4)n[t]=n[t]+r,n[t+1]=n[t+1]+r,n[t+2]=n[t+2]+r}},getUniformLocations:function(e,t){return{uBrightness:e.getUniformLocation(t,"uBrightness")}},sendUniformData:function(e,t){e.uniform1f(t.uBrightness,this.brightness)}}),t.Image.filters.Brightness.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.Image.filters,r=t.util.createClass;i.Convolute=r(i.BaseFilter,{type:"Convolute",opaque:!1,matrix:[0,0,0,0,1,0,0,0,0],fragmentSource:{Convolute_3_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[9];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 3.0; h+=1.0) {\nfor (float w = 0.0; w < 3.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_3_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[9];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 3.0; h+=1.0) {\nfor (float w = 0.0; w < 3.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_5_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[25];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 5.0; h+=1.0) {\nfor (float w = 0.0; w < 5.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_5_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[25];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 5.0; h+=1.0) {\nfor (float w = 0.0; w < 5.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_7_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[49];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 7.0; h+=1.0) {\nfor (float w = 0.0; w < 7.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_7_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[49];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 7.0; h+=1.0) {\nfor (float w = 0.0; w < 7.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_9_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[81];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 9.0; h+=1.0) {\nfor (float w = 0.0; w < 9.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_9_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[81];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 9.0; h+=1.0) {\nfor (float w = 0.0; w < 9.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}"},retrieveShader:function(e){var t=Math.sqrt(this.matrix.length),n=this.type+"_"+t+"_"+(this.opaque?1:0),i=this.fragmentSource[n];return e.programCache.hasOwnProperty(n)||(e.programCache[n]=this.createProgram(e.context,i)),e.programCache[n]},applyTo2d:function(e){var t,n,i,r,o,a,s,u,l,c,d,h,f,p=e.imageData,g=p.data,v=this.matrix,m=Math.round(Math.sqrt(v.length)),_=Math.floor(m/2),y=p.width,b=p.height,w=e.ctx.createImageData(y,b),C=w.data,k=this.opaque?1:0;for(d=0;d<b;d++)for(c=0;c<y;c++){for(o=4*(d*y+c),t=0,n=0,i=0,r=0,f=0;f<m;f++)for(h=0;h<m;h++)a=c+h-_,(s=d+f-_)<0||s>=b||a<0||a>=y||(u=4*(s*y+a),l=v[f*m+h],t+=g[u]*l,n+=g[u+1]*l,i+=g[u+2]*l,k||(r+=g[u+3]*l));C[o]=t,C[o+1]=n,C[o+2]=i,C[o+3]=k?g[o+3]:r}e.imageData=w},getUniformLocations:function(e,t){return{uMatrix:e.getUniformLocation(t,"uMatrix"),uOpaque:e.getUniformLocation(t,"uOpaque"),uHalfSize:e.getUniformLocation(t,"uHalfSize"),uSize:e.getUniformLocation(t,"uSize")}},sendUniformData:function(e,t){e.uniform1fv(t.uMatrix,this.matrix)},toObject:function(){return n(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}}),t.Image.filters.Convolute.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Grayscale=i(n.BaseFilter,{type:"Grayscale",fragmentSource:{average:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat average = (color.r + color.b + color.g) / 3.0;\ngl_FragColor = vec4(average, average, average, color.a);\n}",lightness:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\ngl_FragColor = vec4(average, average, average, col.a);\n}",luminosity:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\ngl_FragColor = vec4(average, average, average, col.a);\n}"},mode:"average",mainParameter:"mode",applyTo2d:function(e){var t,n,i=e.imageData.data,r=i.length,o=this.mode;for(t=0;t<r;t+=4)"average"===o?n=(i[t]+i[t+1]+i[t+2])/3:"lightness"===o?n=(Math.min(i[t],i[t+1],i[t+2])+Math.max(i[t],i[t+1],i[t+2]))/2:"luminosity"===o&&(n=.21*i[t]+.72*i[t+1]+.07*i[t+2]),i[t]=n,i[t+1]=n,i[t+2]=n},retrieveShader:function(e){var t=this.type+"_"+this.mode;if(!e.programCache.hasOwnProperty(t)){var n=this.fragmentSource[this.mode];e.programCache[t]=this.createProgram(e.context,n)}return e.programCache[t]},getUniformLocations:function(e,t){return{uMode:e.getUniformLocation(t,"uMode")}},sendUniformData:function(e,t){e.uniform1i(t.uMode,1)},isNeutralState:function(){return!1}}),t.Image.filters.Grayscale.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Invert=i(n.BaseFilter,{type:"Invert",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uInvert;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nif (uInvert == 1) {\ngl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\n} else {\ngl_FragColor = color;\n}\n}",invert:!0,mainParameter:"invert",applyTo2d:function(e){var t,n=e.imageData.data,i=n.length;for(t=0;t<i;t+=4)n[t]=255-n[t],n[t+1]=255-n[t+1],n[t+2]=255-n[t+2]},isNeutralState:function(){return!this.invert},getUniformLocations:function(e,t){return{uInvert:e.getUniformLocation(t,"uInvert")}},sendUniformData:function(e,t){e.uniform1i(t.uInvert,this.invert)}}),t.Image.filters.Invert.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.Image.filters,r=t.util.createClass;i.Noise=r(i.BaseFilter,{type:"Noise",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uStepH;\nuniform float uNoise;\nuniform float uSeed;\nvarying vec2 vTexCoord;\nfloat rand(vec2 co, float seed, float vScale) {\nreturn fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\n}\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\ngl_FragColor = color;\n}",mainParameter:"noise",noise:0,applyTo2d:function(e){if(0!==this.noise){var t,n,i=e.imageData.data,r=i.length,o=this.noise;for(t=0,r=i.length;t<r;t+=4)n=(.5-Math.random())*o,i[t]+=n,i[t+1]+=n,i[t+2]+=n}},getUniformLocations:function(e,t){return{uNoise:e.getUniformLocation(t,"uNoise"),uSeed:e.getUniformLocation(t,"uSeed")}},sendUniformData:function(e,t){e.uniform1f(t.uNoise,this.noise/255),e.uniform1f(t.uSeed,Math.random())},toObject:function(){return n(this.callSuper("toObject"),{noise:this.noise})}}),t.Image.filters.Noise.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Pixelate=i(n.BaseFilter,{type:"Pixelate",blocksize:4,mainParameter:"blocksize",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uBlocksize;\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nfloat blockW = uBlocksize * uStepW;\nfloat blockH = uBlocksize * uStepW;\nint posX = int(vTexCoord.x / blockW);\nint posY = int(vTexCoord.y / blockH);\nfloat fposX = float(posX);\nfloat fposY = float(posY);\nvec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\nvec4 color = texture2D(uTexture, squareCoords);\ngl_FragColor = color;\n}",applyTo2d:function(e){var t,n,i,r,o,a,s,u,l,c,d,h=e.imageData,f=h.data,p=h.height,g=h.width;for(n=0;n<p;n+=this.blocksize)for(i=0;i<g;i+=this.blocksize)for(r=f[t=4*n*g+4*i],o=f[t+1],a=f[t+2],s=f[t+3],c=Math.min(n+this.blocksize,p),d=Math.min(i+this.blocksize,g),u=n;u<c;u++)for(l=i;l<d;l++)f[t=4*u*g+4*l]=r,f[t+1]=o,f[t+2]=a,f[t+3]=s},isNeutralState:function(){return 1===this.blocksize},getUniformLocations:function(e,t){return{uBlocksize:e.getUniformLocation(t,"uBlocksize"),uStepW:e.getUniformLocation(t,"uStepW"),uStepH:e.getUniformLocation(t,"uStepH")}},sendUniformData:function(e,t){e.uniform1f(t.uBlocksize,this.blocksize)}}),t.Image.filters.Pixelate.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.Image.filters,r=t.util.createClass;i.RemoveColor=r(i.BaseFilter,{type:"RemoveColor",color:"#FFFFFF",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uLow;\nuniform vec4 uHigh;\nvarying vec2 vTexCoord;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\nif(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\ngl_FragColor.a = 0.0;\n}\n}",distance:.02,useAlpha:!1,applyTo2d:function(e){var n,i,r,o,a=e.imageData.data,s=255*this.distance,u=new t.Color(this.color).getSource(),l=[u[0]-s,u[1]-s,u[2]-s],c=[u[0]+s,u[1]+s,u[2]+s];for(n=0;n<a.length;n+=4)i=a[n],r=a[n+1],o=a[n+2],i>l[0]&&r>l[1]&&o>l[2]&&i<c[0]&&r<c[1]&&o<c[2]&&(a[n+3]=0)},getUniformLocations:function(e,t){return{uLow:e.getUniformLocation(t,"uLow"),uHigh:e.getUniformLocation(t,"uHigh")}},sendUniformData:function(e,n){var i=new t.Color(this.color).getSource(),r=parseFloat(this.distance),o=[0+i[0]/255-r,0+i[1]/255-r,0+i[2]/255-r,1],a=[i[0]/255+r,i[1]/255+r,i[2]/255+r,1];e.uniform4fv(n.uLow,o),e.uniform4fv(n.uHigh,a)},toObject:function(){return n(this.callSuper("toObject"),{color:this.color,distance:this.distance})}}),t.Image.filters.RemoveColor.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass,r={Brownie:[.5997,.34553,-.27082,0,.186,-.0377,.86095,.15059,0,-.1449,.24113,-.07441,.44972,0,-.02965,0,0,0,1,0],Vintage:[.62793,.32021,-.03965,0,.03784,.02578,.64411,.03259,0,.02926,.0466,-.08512,.52416,0,.02023,0,0,0,1,0],Kodachrome:[1.12855,-.39673,-.03992,0,.24991,-.16404,1.08352,-.05498,0,.09698,-.16786,-.56034,1.60148,0,.13972,0,0,0,1,0],Technicolor:[1.91252,-.85453,-.09155,0,.04624,-.30878,1.76589,-.10601,0,-.27589,-.2311,-.75018,1.84759,0,.12137,0,0,0,1,0],Polaroid:[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0],Sepia:[.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0],BlackWhite:[1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,0,0,0,1,0]};for(var o in r)n[o]=i(n.ColorMatrix,{type:o,matrix:r[o],mainParameter:!1,colorsOnly:!0}),t.Image.filters[o].fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric,n=t.Image.filters,i=t.util.createClass;n.BlendColor=i(n.BaseFilter,{type:"BlendColor",color:"#F95C63",mode:"multiply",alpha:1,fragmentSource:{multiply:"gl_FragColor.rgb *= uColor.rgb;\n",screen:"gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\n",add:"gl_FragColor.rgb += uColor.rgb;\n",diff:"gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\n",subtract:"gl_FragColor.rgb -= uColor.rgb;\n",lighten:"gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\n",darken:"gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\n",exclusion:"gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\n",overlay:"if (uColor.r < 0.5) {\ngl_FragColor.r *= 2.0 * uColor.r;\n} else {\ngl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\n}\nif (uColor.g < 0.5) {\ngl_FragColor.g *= 2.0 * uColor.g;\n} else {\ngl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\n}\nif (uColor.b < 0.5) {\ngl_FragColor.b *= 2.0 * uColor.b;\n} else {\ngl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\n}\n",tint:"gl_FragColor.rgb *= (1.0 - uColor.a);\ngl_FragColor.rgb += uColor.rgb;\n"},buildSource:function(e){return"precision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ngl_FragColor = color;\nif (color.a > 0.0) {\n"+this.fragmentSource[e]+"}\n}"},retrieveShader:function(e){var t,n=this.type+"_"+this.mode;return e.programCache.hasOwnProperty(n)||(t=this.buildSource(this.mode),e.programCache[n]=this.createProgram(e.context,t)),e.programCache[n]},applyTo2d:function(e){var n,i,r,o,a,s,u,l=e.imageData.data,c=l.length,d=1-this.alpha;n=(u=new t.Color(this.color).getSource())[0]*this.alpha,i=u[1]*this.alpha,r=u[2]*this.alpha;for(var h=0;h<c;h+=4)switch(o=l[h],a=l[h+1],s=l[h+2],this.mode){case"multiply":l[h]=o*n/255,l[h+1]=a*i/255,l[h+2]=s*r/255;break;case"screen":l[h]=255-(255-o)*(255-n)/255,l[h+1]=255-(255-a)*(255-i)/255,l[h+2]=255-(255-s)*(255-r)/255;break;case"add":l[h]=o+n,l[h+1]=a+i,l[h+2]=s+r;break;case"diff":case"difference":l[h]=Math.abs(o-n),l[h+1]=Math.abs(a-i),l[h+2]=Math.abs(s-r);break;case"subtract":l[h]=o-n,l[h+1]=a-i,l[h+2]=s-r;break;case"darken":l[h]=Math.min(o,n),l[h+1]=Math.min(a,i),l[h+2]=Math.min(s,r);break;case"lighten":l[h]=Math.max(o,n),l[h+1]=Math.max(a,i),l[h+2]=Math.max(s,r);break;case"overlay":l[h]=n<128?2*o*n/255:255-2*(255-o)*(255-n)/255,l[h+1]=i<128?2*a*i/255:255-2*(255-a)*(255-i)/255,l[h+2]=r<128?2*s*r/255:255-2*(255-s)*(255-r)/255;break;case"exclusion":l[h]=n+o-2*n*o/255,l[h+1]=i+a-2*i*a/255,l[h+2]=r+s-2*r*s/255;break;case"tint":l[h]=n+o*d,l[h+1]=i+a*d,l[h+2]=r+s*d}},getUniformLocations:function(e,t){return{uColor:e.getUniformLocation(t,"uColor")}},sendUniformData:function(e,n){var i=new t.Color(this.color).getSource();i[0]=this.alpha*i[0]/255,i[1]=this.alpha*i[1]/255,i[2]=this.alpha*i[2]/255,i[3]=this.alpha,e.uniform4fv(n.uColor,i)},toObject:function(){return{type:this.type,color:this.color,mode:this.mode,alpha:this.alpha}}}),t.Image.filters.BlendColor.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric,n=t.Image.filters,i=t.util.createClass;n.BlendImage=i(n.BaseFilter,{type:"BlendImage",image:null,mode:"multiply",alpha:1,vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nuniform mat3 uTransformMatrix;\nvoid main() {\nvTexCoord = aPosition;\nvTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:{multiply:"precision highp float;\nuniform sampler2D uTexture;\nuniform sampler2D uImage;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec4 color2 = texture2D(uImage, vTexCoord2);\ncolor.rgba *= color2.rgba;\ngl_FragColor = color;\n}",mask:"precision highp float;\nuniform sampler2D uTexture;\nuniform sampler2D uImage;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec4 color2 = texture2D(uImage, vTexCoord2);\ncolor.a = color2.a;\ngl_FragColor = color;\n}"},retrieveShader:function(e){var t=this.type+"_"+this.mode,n=this.fragmentSource[this.mode];return e.programCache.hasOwnProperty(t)||(e.programCache[t]=this.createProgram(e.context,n)),e.programCache[t]},applyToWebGL:function(e){var t=e.context,n=this.createTexture(e.filterBackend,this.image);this.bindAdditionalTexture(t,n,t.TEXTURE1),this.callSuper("applyToWebGL",e),this.unbindAdditionalTexture(t,t.TEXTURE1)},createTexture:function(e,t){return e.getCachedTexture(t.cacheKey,t._element)},calculateMatrix:function(){var e=this.image,t=e._element.width,n=e._element.height;return[1/e.scaleX,0,0,0,1/e.scaleY,0,-e.left/t,-e.top/n,1]},applyTo2d:function(e){var n,i,r,o,a,s,u,l,c,d,h,f=e.imageData,p=e.filterBackend.resources,g=f.data,v=g.length,m=f.width,_=f.height,y=this.image;p.blendImage||(p.blendImage=t.util.createCanvasElement()),d=(c=p.blendImage).getContext("2d"),c.width!==m||c.height!==_?(c.width=m,c.height=_):d.clearRect(0,0,m,_),d.setTransform(y.scaleX,0,0,y.scaleY,y.left,y.top),d.drawImage(y._element,0,0,m,_),h=d.getImageData(0,0,m,_).data;for(var b=0;b<v;b+=4)switch(a=g[b],s=g[b+1],u=g[b+2],l=g[b+3],n=h[b],i=h[b+1],r=h[b+2],o=h[b+3],this.mode){case"multiply":g[b]=a*n/255,g[b+1]=s*i/255,g[b+2]=u*r/255,g[b+3]=l*o/255;break;case"mask":g[b+3]=o}},getUniformLocations:function(e,t){return{uTransformMatrix:e.getUniformLocation(t,"uTransformMatrix"),uImage:e.getUniformLocation(t,"uImage")}},sendUniformData:function(e,t){var n=this.calculateMatrix();e.uniform1i(t.uImage,1),e.uniformMatrix3fv(t.uTransformMatrix,!1,n)},toObject:function(){return{type:this.type,image:this.image&&this.image.toObject(),mode:this.mode,alpha:this.alpha}}}),t.Image.filters.BlendImage.fromObject=function(e,n){t.Image.fromObject(e.image,(function(i){var r=t.util.object.clone(e);r.image=i,n(new t.Image.filters.BlendImage(r))}))}}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.pow,i=Math.floor,r=Math.sqrt,o=Math.abs,a=Math.round,s=Math.sin,u=Math.ceil,l=t.Image.filters,c=t.util.createClass;l.Resize=c(l.BaseFilter,{type:"Resize",resizeType:"hermite",scaleX:1,scaleY:1,lanczosLobes:3,getUniformLocations:function(e,t){return{uDelta:e.getUniformLocation(t,"uDelta"),uTaps:e.getUniformLocation(t,"uTaps")}},sendUniformData:function(e,t){e.uniform2fv(t.uDelta,this.horizontal?[1/this.width,0]:[0,1/this.height]),e.uniform1fv(t.uTaps,this.taps)},retrieveShader:function(e){var t=this.getFilterWindow(),n=this.type+"_"+t;if(!e.programCache.hasOwnProperty(n)){var i=this.generateShader(t);e.programCache[n]=this.createProgram(e.context,i)}return e.programCache[n]},getFilterWindow:function(){var e=this.tempScale;return Math.ceil(this.lanczosLobes/e)},getTaps:function(){for(var e=this.lanczosCreate(this.lanczosLobes),t=this.tempScale,n=this.getFilterWindow(),i=new Array(n),r=1;r<=n;r++)i[r-1]=e(r*t);return i},generateShader:function(e){for(var t=new Array(e),n=this.fragmentSourceTOP,i=1;i<=e;i++)t[i-1]=i+".0 * uDelta";return n+="uniform float uTaps["+e+"];\n",n+="void main() {\n",n+=" vec4 color = texture2D(uTexture, vTexCoord);\n",n+=" float sum = 1.0;\n",t.forEach((function(e,t){n+=" color += texture2D(uTexture, vTexCoord + "+e+") * uTaps["+t+"];\n",n+=" color += texture2D(uTexture, vTexCoord - "+e+") * uTaps["+t+"];\n",n+=" sum += 2.0 * uTaps["+t+"];\n"})),n+=" gl_FragColor = color / sum;\n",n+="}"},fragmentSourceTOP:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec2 uDelta;\nvarying vec2 vTexCoord;\n",applyTo:function(e){e.webgl?(e.passes++,this.width=e.sourceWidth,this.horizontal=!0,this.dW=Math.round(this.width*this.scaleX),this.dH=e.sourceHeight,this.tempScale=this.dW/this.width,this.taps=this.getTaps(),e.destinationWidth=this.dW,this._setupFrameBuffer(e),this.applyToWebGL(e),this._swapTextures(e),e.sourceWidth=e.destinationWidth,this.height=e.sourceHeight,this.horizontal=!1,this.dH=Math.round(this.height*this.scaleY),this.tempScale=this.dH/this.height,this.taps=this.getTaps(),e.destinationHeight=this.dH,this._setupFrameBuffer(e),this.applyToWebGL(e),this._swapTextures(e),e.sourceHeight=e.destinationHeight):this.applyTo2d(e)},isNeutralState:function(){return 1===this.scaleX&&1===this.scaleY},lanczosCreate:function(e){return function(t){if(t>=e||t<=-e)return 0;if(t<1.1920929e-7&&t>-1.1920929e-7)return 1;var n=(t*=Math.PI)/e;return s(t)/t*s(n)/n}},applyTo2d:function(e){var t=e.imageData,n=this.scaleX,i=this.scaleY;this.rcpScaleX=1/n,this.rcpScaleY=1/i;var r,o=t.width,s=t.height,u=a(o*n),l=a(s*i);"sliceHack"===this.resizeType?r=this.sliceByTwo(e,o,s,u,l):"hermite"===this.resizeType?r=this.hermiteFastResize(e,o,s,u,l):"bilinear"===this.resizeType?r=this.bilinearFiltering(e,o,s,u,l):"lanczos"===this.resizeType&&(r=this.lanczosResize(e,o,s,u,l)),e.imageData=r},sliceByTwo:function(e,n,r,o,a){var s,u,l=e.imageData,c=.5,d=!1,h=!1,f=n*c,p=r*c,g=t.filterBackend.resources,v=0,m=0,_=n,y=0;for(g.sliceByTwo||(g.sliceByTwo=document.createElement("canvas")),((s=g.sliceByTwo).width<1.5*n||s.height<r)&&(s.width=1.5*n,s.height=r),(u=s.getContext("2d")).clearRect(0,0,1.5*n,r),u.putImageData(l,0,0),o=i(o),a=i(a);!d||!h;)n=f,r=p,o<i(f*c)?f=i(f*c):(f=o,d=!0),a<i(p*c)?p=i(p*c):(p=a,h=!0),u.drawImage(s,v,m,n,r,_,y,f,p),v=_,m=y,y+=p;return u.getImageData(v,m,o,a)},lanczosResize:function(e,t,a,s,l){var c=e.imageData.data,d=e.ctx.createImageData(s,l),h=d.data,f=this.lanczosCreate(this.lanczosLobes),p=this.rcpScaleX,g=this.rcpScaleY,v=2/this.rcpScaleX,m=2/this.rcpScaleY,_=u(p*this.lanczosLobes/2),y=u(g*this.lanczosLobes/2),b={},w={},C={};return function e(u){var k,S,x,L,E,N,D,M,T,O,I;for(w.x=(u+.5)*p,C.x=i(w.x),k=0;k<l;k++){for(w.y=(k+.5)*g,C.y=i(w.y),E=0,N=0,D=0,M=0,T=0,S=C.x-_;S<=C.x+_;S++)if(!(S<0||S>=t)){O=i(1e3*o(S-w.x)),b[O]||(b[O]={});for(var A=C.y-y;A<=C.y+y;A++)A<0||A>=a||(I=i(1e3*o(A-w.y)),b[O][I]||(b[O][I]=f(r(n(O*v,2)+n(I*m,2))/1e3)),(x=b[O][I])>0&&(E+=x,N+=x*c[L=4*(A*t+S)],D+=x*c[L+1],M+=x*c[L+2],T+=x*c[L+3]))}h[L=4*(k*s+u)]=N/E,h[L+1]=D/E,h[L+2]=M/E,h[L+3]=T/E}return++u<s?e(u):d}(0)},bilinearFiltering:function(e,t,n,r,o){var a,s,u,l,c,d,h,f,p,g=0,v=this.rcpScaleX,m=this.rcpScaleY,_=4*(t-1),y=e.imageData.data,b=e.ctx.createImageData(r,o),w=b.data;for(u=0;u<o;u++)for(l=0;l<r;l++)for(c=v*l-(a=i(v*l)),d=m*u-(s=i(m*u)),p=4*(s*t+a),h=0;h<4;h++)f=y[p+h]*(1-c)*(1-d)+y[p+4+h]*c*(1-d)+y[p+_+h]*d*(1-c)+y[p+_+4+h]*c*d,w[g++]=f;return b},hermiteFastResize:function(e,t,n,a,s){for(var l=this.rcpScaleX,c=this.rcpScaleY,d=u(l/2),h=u(c/2),f=e.imageData.data,p=e.ctx.createImageData(a,s),g=p.data,v=0;v<s;v++)for(var m=0;m<a;m++){for(var _=4*(m+v*a),y=0,b=0,w=0,C=0,k=0,S=0,x=0,L=(v+.5)*c,E=i(v*c);E<(v+1)*c;E++)for(var N=o(L-(E+.5))/h,D=(m+.5)*l,M=N*N,T=i(m*l);T<(m+1)*l;T++){var O=o(D-(T+.5))/d,I=r(M+O*O);I>1&&I<-1||(y=2*I*I*I-3*I*I+1)>0&&(x+=y*f[(O=4*(T+E*t))+3],w+=y,f[O+3]<255&&(y=y*f[O+3]/250),C+=y*f[O],k+=y*f[O+1],S+=y*f[O+2],b+=y)}g[_]=C/b,g[_+1]=k/b,g[_+2]=S/b,g[_+3]=x/w}return p},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaleY:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}}),t.Image.filters.Resize.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Contrast=i(n.BaseFilter,{type:"Contrast",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uContrast;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\ncolor.rgb = contrastF * (color.rgb - 0.5) + 0.5;\ngl_FragColor = color;\n}",contrast:0,mainParameter:"contrast",applyTo2d:function(e){if(0!==this.contrast){var t,n=e.imageData.data,i=n.length,r=Math.floor(255*this.contrast),o=259*(r+255)/(255*(259-r));for(t=0;t<i;t+=4)n[t]=o*(n[t]-128)+128,n[t+1]=o*(n[t+1]-128)+128,n[t+2]=o*(n[t+2]-128)+128}},getUniformLocations:function(e,t){return{uContrast:e.getUniformLocation(t,"uContrast")}},sendUniformData:function(e,t){e.uniform1f(t.uContrast,this.contrast)}}),t.Image.filters.Contrast.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Saturation=i(n.BaseFilter,{type:"Saturation",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uSaturation;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat rgMax = max(color.r, color.g);\nfloat rgbMax = max(rgMax, color.b);\ncolor.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\ncolor.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\ncolor.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\ngl_FragColor = color;\n}",saturation:0,mainParameter:"saturation",applyTo2d:function(e){if(0!==this.saturation){var t,n,i=e.imageData.data,r=i.length,o=-this.saturation;for(t=0;t<r;t+=4)n=Math.max(i[t],i[t+1],i[t+2]),i[t]+=n!==i[t]?(n-i[t])*o:0,i[t+1]+=n!==i[t+1]?(n-i[t+1])*o:0,i[t+2]+=n!==i[t+2]?(n-i[t+2])*o:0}},getUniformLocations:function(e,t){return{uSaturation:e.getUniformLocation(t,"uSaturation")}},sendUniformData:function(e,t){e.uniform1f(t.uSaturation,-this.saturation)}}),t.Image.filters.Saturation.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Blur=i(n.BaseFilter,{type:"Blur",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec2 uDelta;\nvarying vec2 vTexCoord;\nconst float nSamples = 15.0;\nvec3 v3offset = vec3(12.9898, 78.233, 151.7182);\nfloat random(vec3 scale) {\nreturn fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\n}\nvoid main() {\nvec4 color = vec4(0.0);\nfloat total = 0.0;\nfloat offset = random(v3offset);\nfor (float t = -nSamples; t <= nSamples; t++) {\nfloat percent = (t + offset - 0.5) / nSamples;\nfloat weight = 1.0 - abs(percent);\ncolor += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;\ntotal += weight;\n}\ngl_FragColor = color / total;\n}",blur:0,mainParameter:"blur",applyTo:function(e){e.webgl?(this.aspectRatio=e.sourceWidth/e.sourceHeight,e.passes++,this._setupFrameBuffer(e),this.horizontal=!0,this.applyToWebGL(e),this._swapTextures(e),this._setupFrameBuffer(e),this.horizontal=!1,this.applyToWebGL(e),this._swapTextures(e)):this.applyTo2d(e)},applyTo2d:function(e){e.imageData=this.simpleBlur(e)},simpleBlur:function(e){var n,i,r=e.filterBackend.resources,o=e.imageData.width,a=e.imageData.height;r.blurLayer1||(r.blurLayer1=t.util.createCanvasElement(),r.blurLayer2=t.util.createCanvasElement()),n=r.blurLayer1,i=r.blurLayer2,n.width===o&&n.height===a||(i.width=n.width=o,i.height=n.height=a);var s,u,l,c,d=n.getContext("2d"),h=i.getContext("2d"),f=15,p=.06*this.blur*.5;for(d.putImageData(e.imageData,0,0),h.clearRect(0,0,o,a),c=-15;c<=f;c++)l=p*(u=c/f)*o+(s=(Math.random()-.5)/4),h.globalAlpha=1-Math.abs(u),h.drawImage(n,l,s),d.drawImage(i,0,0),h.globalAlpha=1,h.clearRect(0,0,i.width,i.height);for(c=-15;c<=f;c++)l=p*(u=c/f)*a+(s=(Math.random()-.5)/4),h.globalAlpha=1-Math.abs(u),h.drawImage(n,s,l),d.drawImage(i,0,0),h.globalAlpha=1,h.clearRect(0,0,i.width,i.height);e.ctx.drawImage(n,0,0);var g=e.ctx.getImageData(0,0,n.width,n.height);return d.globalAlpha=1,d.clearRect(0,0,n.width,n.height),g},getUniformLocations:function(e,t){return{delta:e.getUniformLocation(t,"uDelta")}},sendUniformData:function(e,t){var n=this.chooseRightDelta();e.uniform2fv(t.delta,n)},chooseRightDelta:function(){var e,t=1,n=[0,0];return this.horizontal?this.aspectRatio>1&&(t=1/this.aspectRatio):this.aspectRatio<1&&(t=this.aspectRatio),e=t*this.blur*.12,this.horizontal?n[0]=e:n[1]=e,n}}),n.Blur.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Gamma=i(n.BaseFilter,{type:"Gamma",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec3 uGamma;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec3 correction = (1.0 / uGamma);\ncolor.r = pow(color.r, correction.r);\ncolor.g = pow(color.g, correction.g);\ncolor.b = pow(color.b, correction.b);\ngl_FragColor = color;\ngl_FragColor.rgb *= color.a;\n}",gamma:[1,1,1],mainParameter:"gamma",initialize:function(e){this.gamma=[1,1,1],n.BaseFilter.prototype.initialize.call(this,e)},applyTo2d:function(e){var t,n=e.imageData.data,i=this.gamma,r=n.length,o=1/i[0],a=1/i[1],s=1/i[2];for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),t=0,r=256;t<r;t++)this.rVals[t]=255*Math.pow(t/255,o),this.gVals[t]=255*Math.pow(t/255,a),this.bVals[t]=255*Math.pow(t/255,s);for(t=0,r=n.length;t<r;t+=4)n[t]=this.rVals[n[t]],n[t+1]=this.gVals[n[t+1]],n[t+2]=this.bVals[n[t+2]]},getUniformLocations:function(e,t){return{uGamma:e.getUniformLocation(t,"uGamma")}},sendUniformData:function(e,t){e.uniform3fv(t.uGamma,this.gamma)}}),t.Image.filters.Gamma.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Composed=i(n.BaseFilter,{type:"Composed",subFilters:[],initialize:function(e){this.callSuper("initialize",e),this.subFilters=this.subFilters.slice(0)},applyTo:function(e){e.passes+=this.subFilters.length-1,this.subFilters.forEach((function(t){t.applyTo(e)}))},toObject:function(){return t.util.object.extend(this.callSuper("toObject"),{subFilters:this.subFilters.map((function(e){return e.toObject()}))})},isNeutralState:function(){return!this.subFilters.some((function(e){return!e.isNeutralState()}))}}),t.Image.filters.Composed.fromObject=function(e,n){var i=(e.subFilters||[]).map((function(e){return new t.Image.filters[e.type](e)})),r=new t.Image.filters.Composed({subFilters:i});return n&&n(r),r}}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.HueRotation=i(n.ColorMatrix,{type:"HueRotation",rotation:0,mainParameter:"rotation",calculateMatrix:function(){var e=this.rotation*Math.PI,n=t.util.cos(e),i=t.util.sin(e),r=1/3,o=Math.sqrt(r)*i,a=1-n;this.matrix=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],this.matrix[0]=n+a/3,this.matrix[1]=r*a-o,this.matrix[2]=r*a+o,this.matrix[5]=r*a+o,this.matrix[6]=n+r*a,this.matrix[7]=r*a-o,this.matrix[10]=r*a-o,this.matrix[11]=r*a+o,this.matrix[12]=n+r*a},isNeutralState:function(e){return this.calculateMatrix(),n.BaseFilter.prototype.isNeutralState.call(this,e)},applyTo:function(e){this.calculateMatrix(),n.BaseFilter.prototype.applyTo.call(this,e)}}),t.Image.filters.HueRotation.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.clone;t.Text?t.warn("fabric.Text is already defined"):(t.Text=t.util.createClass(t.Object,{_dimensionAffectingProps:["fontSize","fontWeight","fontFamily","fontStyle","lineHeight","text","charSpacing","textAlign","styles"],_reNewline:/\r?\n/,_reSpacesAndTabs:/[ \t\r]/g,_reSpaceAndTab:/[ \t\r]/,_reWords:/\S+/g,type:"text",fontSize:40,fontWeight:"normal",fontFamily:"Times New Roman",underline:!1,overline:!1,linethrough:!1,textAlign:"left",fontStyle:"normal",lineHeight:1.16,superscript:{size:.6,baseline:-.35},subscript:{size:.6,baseline:.11},textBackgroundColor:"",stateProperties:t.Object.prototype.stateProperties.concat("fontFamily","fontWeight","fontSize","text","underline","overline","linethrough","textAlign","fontStyle","lineHeight","textBackgroundColor","charSpacing","styles"),cacheProperties:t.Object.prototype.cacheProperties.concat("fontFamily","fontWeight","fontSize","text","underline","overline","linethrough","textAlign","fontStyle","lineHeight","textBackgroundColor","charSpacing","styles"),stroke:null,shadow:null,_fontSizeFraction:.222,offsets:{underline:.1,linethrough:-.315,overline:-.88},_fontSizeMult:1.13,charSpacing:0,styles:null,_measuringContext:null,deltaY:0,_styleProperties:["stroke","strokeWidth","fill","fontFamily","fontSize","fontWeight","fontStyle","underline","overline","linethrough","deltaY","textBackgroundColor"],__charBounds:[],CACHE_FONT_SIZE:400,MIN_TEXT_WIDTH:2,initialize:function(e,t){this.styles=t&&t.styles||{},this.text=e,this.__skipDimension=!0,this.callSuper("initialize",t),this.__skipDimension=!1,this.initDimensions(),this.setCoords(),this.setupState({propertySet:"_dimensionAffectingProps"})},getMeasuringContext:function(){return t._measuringContext||(t._measuringContext=this.canvas&&this.canvas.contextCache||t.util.createCanvasElement().getContext("2d")),t._measuringContext},_splitText:function(){var e=this._splitTextIntoLines(this.text);return this.textLines=e.lines,this._textLines=e.graphemeLines,this._unwrappedTextLines=e._unwrappedLines,this._text=e.graphemeText,e},initDimensions:function(){this.__skipDimension||(this._splitText(),this._clearCache(),this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},enlargeSpaces:function(){for(var e,t,n,i,r,o,a,s=0,u=this._textLines.length;s<u;s++)if(("justify"===this.textAlign||s!==u-1&&!this.isEndOfWrapping(s))&&(i=0,r=this._textLines[s],(t=this.getLineWidth(s))<this.width&&(a=this.textLines[s].match(this._reSpacesAndTabs)))){n=a.length,e=(this.width-t)/n;for(var l=0,c=r.length;l<=c;l++)o=this.__charBounds[s][l],this._reSpaceAndTab.test(r[l])?(o.width+=e,o.kernedWidth+=e,o.left+=i,i+=e):o.left+=i}},isEndOfWrapping:function(e){return e===this._textLines.length-1},missingNewlineOffset:function(){return 1},toString:function(){return"#<fabric.Text ("+this.complexity()+'): { "text": "'+this.text+'", "fontFamily": "'+this.fontFamily+'" }>'},_getCacheCanvasDimensions:function(){var e=this.callSuper("_getCacheCanvasDimensions"),t=this.fontSize;return e.width+=t*e.zoomX,e.height+=t*e.zoomY,e},_render:function(e){this._setTextStyles(e),this._renderTextLinesBackground(e),this._renderTextDecoration(e,"underline"),this._renderText(e),this._renderTextDecoration(e,"overline"),this._renderTextDecoration(e,"linethrough")},_renderText:function(e){"stroke"===this.paintFirst?(this._renderTextStroke(e),this._renderTextFill(e)):(this._renderTextFill(e),this._renderTextStroke(e))},_setTextStyles:function(e,t,n){e.textBaseline="alphabetic",e.font=this._getFontDeclaration(t,n)},calcTextWidth:function(){for(var e=this.getLineWidth(0),t=1,n=this._textLines.length;t<n;t++){var i=this.getLineWidth(t);i>e&&(e=i)}return e},_renderTextLine:function(e,t,n,i,r,o){this._renderChars(e,t,n,i,r,o)},_renderTextLinesBackground:function(e){if(this.textBackgroundColor||this.styleHas("textBackgroundColor")){for(var t,n,i,r,o,a,s=0,u=e.fillStyle,l=this._getLeftOffset(),c=this._getTopOffset(),d=0,h=0,f=0,p=this._textLines.length;f<p;f++)if(t=this.getHeightOfLine(f),this.textBackgroundColor||this.styleHas("textBackgroundColor",f)){i=this._textLines[f],n=this._getLineLeftOffset(f),h=0,d=0,r=this.getValueOfPropertyAt(f,0,"textBackgroundColor");for(var g=0,v=i.length;g<v;g++)o=this.__charBounds[f][g],(a=this.getValueOfPropertyAt(f,g,"textBackgroundColor"))!==r?(e.fillStyle=r,r&&e.fillRect(l+n+d,c+s,h,t/this.lineHeight),d=o.left,h=o.width,r=a):h+=o.kernedWidth;a&&(e.fillStyle=a,e.fillRect(l+n+d,c+s,h,t/this.lineHeight)),s+=t}else s+=t;e.fillStyle=u,this._removeShadow(e)}},getFontCache:function(e){var n=e.fontFamily.toLowerCase();t.charWidthsCache[n]||(t.charWidthsCache[n]={});var i=t.charWidthsCache[n],r=e.fontStyle.toLowerCase()+"_"+(e.fontWeight+"").toLowerCase();return i[r]||(i[r]={}),i[r]},_applyCharStyles:function(e,t,n,i,r){this._setFillStyles(t,r),this._setStrokeStyles(t,r),t.font=this._getFontDeclaration(r)},_measureChar:function(e,t,n,i){var r,o,a,s,u=this.getFontCache(t),l=n+e,c=this._getFontDeclaration(t)===this._getFontDeclaration(i),d=t.fontSize/this.CACHE_FONT_SIZE;if(n&&void 0!==u[n]&&(a=u[n]),void 0!==u[e]&&(s=r=u[e]),c&&void 0!==u[l]&&(s=(o=u[l])-a),void 0===r||void 0===a||void 0===o){var h=this.getMeasuringContext();this._setTextStyles(h,t,!0)}return void 0===r&&(s=r=h.measureText(e).width,u[e]=r),void 0===a&&c&&n&&(a=h.measureText(n).width,u[n]=a),c&&void 0===o&&(o=h.measureText(l).width,u[l]=o,s=o-a),{width:r*d,kernedWidth:s*d}},getHeightOfChar:function(e,t){return this.getValueOfPropertyAt(e,t,"fontSize")},measureLine:function(e){var t=this._measureLine(e);return 0!==this.charSpacing&&(t.width-=this._getWidthOfCharSpacing()),t.width<0&&(t.width=0),t},_measureLine:function(e){var t,n,i,r,o=0,a=this._textLines[e],s=new Array(a.length);for(this.__charBounds[e]=s,t=0;t<a.length;t++)n=a[t],r=this._getGraphemeBox(n,e,t,i),s[t]=r,o+=r.kernedWidth,i=n;return s[t]={left:r?r.left+r.width:0,width:0,kernedWidth:0,height:this.fontSize},{width:o,numOfSpaces:0}},_getGraphemeBox:function(e,t,n,i,r){var o,a=this.getCompleteStyleDeclaration(t,n),s=i?this.getCompleteStyleDeclaration(t,n-1):{},u=this._measureChar(e,a,i,s),l=u.kernedWidth,c=u.width;0!==this.charSpacing&&(c+=o=this._getWidthOfCharSpacing(),l+=o);var d={width:c,left:0,height:a.fontSize,kernedWidth:l,deltaY:a.deltaY};if(n>0&&!r){var h=this.__charBounds[t][n-1];d.left=h.left+h.width+u.kernedWidth-u.width}return d},getHeightOfLine:function(e){if(this.__lineHeights[e])return this.__lineHeights[e];for(var t=this._textLines[e],n=this.getHeightOfChar(e,0),i=1,r=t.length;i<r;i++)n=Math.max(this.getHeightOfChar(e,i),n);return this.__lineHeights[e]=n*this.lineHeight*this._fontSizeMult},calcTextHeight:function(){for(var e,t=0,n=0,i=this._textLines.length;n<i;n++)e=this.getHeightOfLine(n),t+=n===i-1?e/this.lineHeight:e;return t},_getLeftOffset:function(){return-this.width/2},_getTopOffset:function(){return-this.height/2},_renderTextCommon:function(e,t){e.save();for(var n=0,i=this._getLeftOffset(),r=this._getTopOffset(),o=this._applyPatternGradientTransform(e,"fillText"===t?this.fill:this.stroke),a=0,s=this._textLines.length;a<s;a++){var u=this.getHeightOfLine(a),l=u/this.lineHeight,c=this._getLineLeftOffset(a);this._renderTextLine(t,e,this._textLines[a],i+c-o.offsetX,r+n+l-o.offsetY,a),n+=u}e.restore()},_renderTextFill:function(e){(this.fill||this.styleHas("fill"))&&this._renderTextCommon(e,"fillText")},_renderTextStroke:function(e){(this.stroke&&0!==this.strokeWidth||!this.isEmptyStyles())&&(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(e),e.save(),this._setLineDash(e,this.strokeDashArray),e.beginPath(),this._renderTextCommon(e,"strokeText"),e.closePath(),e.restore())},_renderChars:function(e,t,n,i,r,o){var a,s,u,l,c=this.getHeightOfLine(o),d=-1!==this.textAlign.indexOf("justify"),h="",f=0,p=!d&&0===this.charSpacing&&this.isEmptyStyles(o);if(t.save(),r-=c*this._fontSizeFraction/this.lineHeight,p)return this._renderChar(e,t,o,0,n.join(""),i,r,c),void t.restore();for(var g=0,v=n.length-1;g<=v;g++)l=g===v||this.charSpacing,h+=n[g],u=this.__charBounds[o][g],0===f?(i+=u.kernedWidth-u.width,f+=u.width):f+=u.kernedWidth,d&&!l&&this._reSpaceAndTab.test(n[g])&&(l=!0),l||(a=a||this.getCompleteStyleDeclaration(o,g),s=this.getCompleteStyleDeclaration(o,g+1),l=this._hasStyleChanged(a,s)),l&&(this._renderChar(e,t,o,g,h,i,r,c),h="",a=s,i+=f,f=0);t.restore()},_renderChar:function(e,t,n,i,r,o,a){var s=this._getStyleDeclaration(n,i),u=this.getCompleteStyleDeclaration(n,i),l="fillText"===e&&u.fill,c="strokeText"===e&&u.stroke&&u.strokeWidth;(c||l)&&(s&&t.save(),this._applyCharStyles(e,t,n,i,u),s&&s.textBackgroundColor&&this._removeShadow(t),s&&s.deltaY&&(a+=s.deltaY),l&&t.fillText(r,o,a),c&&t.strokeText(r,o,a),s&&t.restore())},setSuperscript:function(e,t){return this._setScript(e,t,this.superscript)},setSubscript:function(e,t){return this._setScript(e,t,this.subscript)},_setScript:function(e,t,n){var i=this.get2DCursorLocation(e,!0),r=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,"fontSize"),o=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,"deltaY"),a={fontSize:r*n.size,deltaY:o+r*n.baseline};return this.setSelectionStyles(a,e,t),this},_hasStyleChanged:function(e,t){return e.fill!==t.fill||e.stroke!==t.stroke||e.strokeWidth!==t.strokeWidth||e.fontSize!==t.fontSize||e.fontFamily!==t.fontFamily||e.fontWeight!==t.fontWeight||e.fontStyle!==t.fontStyle||e.deltaY!==t.deltaY},_hasStyleChangedForSvg:function(e,t){return this._hasStyleChanged(e,t)||e.overline!==t.overline||e.underline!==t.underline||e.linethrough!==t.linethrough},_getLineLeftOffset:function(e){var t=this.getLineWidth(e);return"center"===this.textAlign?(this.width-t)/2:"right"===this.textAlign?this.width-t:"justify-center"===this.textAlign&&this.isEndOfWrapping(e)?(this.width-t)/2:"justify-right"===this.textAlign&&this.isEndOfWrapping(e)?this.width-t:0},_clearCache:function(){this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]},_shouldClearDimensionCache:function(){var e=this._forceClearCache;return e||(e=this.hasStateChanged("_dimensionAffectingProps")),e&&(this.dirty=!0,this._forceClearCache=!1),e},getLineWidth:function(e){return this.__lineWidths[e]?this.__lineWidths[e]:(t=""===this._textLines[e]?0:this.measureLine(e).width,this.__lineWidths[e]=t,t);var t},_getWidthOfCharSpacing:function(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0},getValueOfPropertyAt:function(e,t,n){var i=this._getStyleDeclaration(e,t);return i&&"undefined"!==typeof i[n]?i[n]:this[n]},_renderTextDecoration:function(e,t){if(this[t]||this.styleHas(t)){for(var n,i,r,o,a,s,u,l,c,d,h,f,p,g,v,m,_=this._getLeftOffset(),y=this._getTopOffset(),b=this._getWidthOfCharSpacing(),w=0,C=this._textLines.length;w<C;w++)if(n=this.getHeightOfLine(w),this[t]||this.styleHas(t,w)){u=this._textLines[w],g=n/this.lineHeight,o=this._getLineLeftOffset(w),d=0,h=0,l=this.getValueOfPropertyAt(w,0,t),m=this.getValueOfPropertyAt(w,0,"fill"),c=y+g*(1-this._fontSizeFraction),i=this.getHeightOfChar(w,0),a=this.getValueOfPropertyAt(w,0,"deltaY");for(var k=0,S=u.length;k<S;k++)f=this.__charBounds[w][k],p=this.getValueOfPropertyAt(w,k,t),v=this.getValueOfPropertyAt(w,k,"fill"),r=this.getHeightOfChar(w,k),s=this.getValueOfPropertyAt(w,k,"deltaY"),(p!==l||v!==m||r!==i||s!==a)&&h>0?(e.fillStyle=m,l&&m&&e.fillRect(_+o+d,c+this.offsets[t]*i+a,h,this.fontSize/15),d=f.left,h=f.width,l=p,m=v,i=r,a=s):h+=f.kernedWidth;e.fillStyle=v,p&&v&&e.fillRect(_+o+d,c+this.offsets[t]*i+a,h-b,this.fontSize/15),y+=n}else y+=n;this._removeShadow(e)}},_getFontDeclaration:function(e,n){var i=e||this,r=this.fontFamily,o=t.Text.genericFonts.indexOf(r.toLowerCase())>-1,a=void 0===r||r.indexOf("'")>-1||r.indexOf(",")>-1||r.indexOf('"')>-1||o?i.fontFamily:'"'+i.fontFamily+'"';return[t.isLikelyNode?i.fontWeight:i.fontStyle,t.isLikelyNode?i.fontStyle:i.fontWeight,n?this.CACHE_FONT_SIZE+"px":i.fontSize+"px",a].join(" ")},render:function(e){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),this.callSuper("render",e)))},_splitTextIntoLines:function(e){for(var n=e.split(this._reNewline),i=new Array(n.length),r=["\n"],o=[],a=0;a<n.length;a++)i[a]=t.util.string.graphemeSplit(n[a]),o=o.concat(i[a],r);return o.pop(),{_unwrappedLines:i,lines:n,graphemeText:o,graphemeLines:i}},toObject:function(e){var t=["text","fontSize","fontWeight","fontFamily","fontStyle","lineHeight","underline","overline","linethrough","textAlign","textBackgroundColor","charSpacing"].concat(e),i=this.callSuper("toObject",t);return i.styles=n(this.styles,!0),i},set:function(e,t){this.callSuper("set",e,t);var n=!1;if("object"===typeof e)for(var i in e)n=n||-1!==this._dimensionAffectingProps.indexOf(i);else n=-1!==this._dimensionAffectingProps.indexOf(e);return n&&(this.initDimensions(),this.setCoords()),this},complexity:function(){return 1}}),t.Text.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y dx dy font-family font-style font-weight font-size letter-spacing text-decoration text-anchor".split(" ")),t.Text.DEFAULT_SVG_FONT_SIZE=16,t.Text.fromElement=function(e,i,r){if(!e)return i(null);var o=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES),a=o.textAnchor||"left";if((r=t.util.object.extend(r?n(r):{},o)).top=r.top||0,r.left=r.left||0,o.textDecoration){var s=o.textDecoration;-1!==s.indexOf("underline")&&(r.underline=!0),-1!==s.indexOf("overline")&&(r.overline=!0),-1!==s.indexOf("line-through")&&(r.linethrough=!0),delete r.textDecoration}"dx"in o&&(r.left+=o.dx),"dy"in o&&(r.top+=o.dy),"fontSize"in r||(r.fontSize=t.Text.DEFAULT_SVG_FONT_SIZE);var u="";"textContent"in e?u=e.textContent:"firstChild"in e&&null!==e.firstChild&&"data"in e.firstChild&&null!==e.firstChild.data&&(u=e.firstChild.data),u=u.replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," ");var l=r.strokeWidth;r.strokeWidth=0;var c=new t.Text(u,r),d=c.getScaledHeight()/c.height,h=((c.height+c.strokeWidth)*c.lineHeight-c.height)*d,f=c.getScaledHeight()+h,p=0;"center"===a&&(p=c.getScaledWidth()/2),"right"===a&&(p=c.getScaledWidth()),c.set({left:c.left-p,top:c.top-(f-c.fontSize*(.07+c._fontSizeFraction))/c.lineHeight,strokeWidth:"undefined"!==typeof l?l:1}),i(c)},t.Text.fromObject=function(e,n){return t.Object._fromObject("Text",e,n,"text")},t.Text.genericFonts=["sans-serif","serif","cursive","fantasy","monospace"],t.util.createAccessors&&t.util.createAccessors(t.Text))}(t),r.util.object.extend(r.Text.prototype,{isEmptyStyles:function(e){if(!this.styles)return!0;if("undefined"!==typeof e&&!this.styles[e])return!0;var t="undefined"===typeof e?this.styles:{line:this.styles[e]};for(var n in t)for(var i in t[n])for(var r in t[n][i])return!1;return!0},styleHas:function(e,t){if(!this.styles||!e||""===e)return!1;if("undefined"!==typeof t&&!this.styles[t])return!1;var n="undefined"===typeof t?this.styles:{0:this.styles[t]};for(var i in n)for(var r in n[i])if("undefined"!==typeof n[i][r][e])return!0;return!1},cleanStyle:function(e){if(!this.styles||!e||""===e)return!1;var t,n,i=this.styles,r=0,o=!0,a=0;for(var s in i){for(var u in t=0,i[s]){var l;r++,(l=i[s][u]).hasOwnProperty(e)?(n?l[e]!==n&&(o=!1):n=l[e],l[e]===this[e]&&delete l[e]):o=!1,0!==Object.keys(l).length?t++:delete i[s][u]}0===t&&delete i[s]}for(var c=0;c<this._textLines.length;c++)a+=this._textLines[c].length;o&&r===a&&(this[e]=n,this.removeStyle(e))},removeStyle:function(e){if(this.styles&&e&&""!==e){var t,n,i,r=this.styles;for(n in r){for(i in t=r[n])delete t[i][e],0===Object.keys(t[i]).length&&delete t[i];0===Object.keys(t).length&&delete r[n]}}},_extendStyles:function(e,t){var n=this.get2DCursorLocation(e);this._getLineStyle(n.lineIndex)||this._setLineStyle(n.lineIndex),this._getStyleDeclaration(n.lineIndex,n.charIndex)||this._setStyleDeclaration(n.lineIndex,n.charIndex,{}),r.util.object.extend(this._getStyleDeclaration(n.lineIndex,n.charIndex),t)},get2DCursorLocation:function(e,t){"undefined"===typeof e&&(e=this.selectionStart);for(var n=t?this._unwrappedTextLines:this._textLines,i=n.length,r=0;r<i;r++){if(e<=n[r].length)return{lineIndex:r,charIndex:e};e-=n[r].length+this.missingNewlineOffset(r)}return{lineIndex:r-1,charIndex:n[r-1].length<e?n[r-1].length:e}},getSelectionStyles:function(e,t,n){"undefined"===typeof e&&(e=this.selectionStart||0),"undefined"===typeof t&&(t=this.selectionEnd||e);for(var i=[],r=e;r<t;r++)i.push(this.getStyleAtPosition(r,n));return i},getStyleAtPosition:function(e,t){var n=this.get2DCursorLocation(e);return(t?this.getCompleteStyleDeclaration(n.lineIndex,n.charIndex):this._getStyleDeclaration(n.lineIndex,n.charIndex))||{}},setSelectionStyles:function(e,t,n){"undefined"===typeof t&&(t=this.selectionStart||0),"undefined"===typeof n&&(n=this.selectionEnd||t);for(var i=t;i<n;i++)this._extendStyles(i,e);return this._forceClearCache=!0,this},_getStyleDeclaration:function(e,t){var n=this.styles&&this.styles[e];return n?n[t]:null},getCompleteStyleDeclaration:function(e,t){for(var n,i=this._getStyleDeclaration(e,t)||{},r={},o=0;o<this._styleProperties.length;o++)r[n=this._styleProperties[o]]="undefined"===typeof i[n]?this[n]:i[n];return r},_setStyleDeclaration:function(e,t,n){this.styles[e][t]=n},_deleteStyleDeclaration:function(e,t){delete this.styles[e][t]},_getLineStyle:function(e){return!!this.styles[e]},_setLineStyle:function(e){this.styles[e]={}},_deleteLineStyle:function(e){delete this.styles[e]}}),function(){function e(e){e.textDecoration&&(e.textDecoration.indexOf("underline")>-1&&(e.underline=!0),e.textDecoration.indexOf("line-through")>-1&&(e.linethrough=!0),e.textDecoration.indexOf("overline")>-1&&(e.overline=!0),delete e.textDecoration)}r.IText=r.util.createClass(r.Text,r.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"",cursorDelay:1e3,cursorDuration:600,caching:!0,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,__widthOfSpace:[],inCompositionMode:!1,initialize:function(e,t){this.callSuper("initialize",e,t),this.initBehavior()},setSelectionStart:function(e){e=Math.max(e,0),this._updateAndFire("selectionStart",e)},setSelectionEnd:function(e){e=Math.min(e,this.text.length),this._updateAndFire("selectionEnd",e)},_updateAndFire:function(e,t){this[e]!==t&&(this._fireSelectionChanged(),this[e]=t),this._updateTextarea()},_fireSelectionChanged:function(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})},initDimensions:function(){this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this.callSuper("initDimensions")},render:function(e){this.clearContextTop(),this.callSuper("render",e),this.cursorOffsetCache={},this.renderCursorOrSelection()},_render:function(e){this.callSuper("_render",e)},clearContextTop:function(e){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var t=this.canvas.contextTop,n=this.canvas.viewportTransform;t.save(),t.transform(n[0],n[1],n[2],n[3],n[4],n[5]),this.transform(t),this._clearTextArea(t),e||t.restore()}},renderCursorOrSelection:function(){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var e=this._getCursorBoundaries(),t=this.canvas.contextTop;this.clearContextTop(!0),this.selectionStart===this.selectionEnd?this.renderCursor(e,t):this.renderSelection(e,t),t.restore()}},_clearTextArea:function(e){var t=this.width+4,n=this.height+4;e.clearRect(-t/2,-n/2,t,n)},_getCursorBoundaries:function(e){"undefined"===typeof e&&(e=this.selectionStart);var t=this._getLeftOffset(),n=this._getTopOffset(),i=this._getCursorBoundariesOffsets(e);return{left:t,top:n,leftOffset:i.left,topOffset:i.top}},_getCursorBoundariesOffsets:function(e){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var t,n,i,r,o=0,a=0,s=this.get2DCursorLocation(e);i=s.charIndex,n=s.lineIndex;for(var u=0;u<n;u++)o+=this.getHeightOfLine(u);t=this._getLineLeftOffset(n);var l=this.__charBounds[n][i];return l&&(a=l.left),0!==this.charSpacing&&i===this._textLines[n].length&&(a-=this._getWidthOfCharSpacing()),r={top:o,left:t+(a>0?a:0)},this.cursorOffsetCache=r,this.cursorOffsetCache},renderCursor:function(e,t){var n=this.get2DCursorLocation(),i=n.lineIndex,r=n.charIndex>0?n.charIndex-1:0,o=this.getValueOfPropertyAt(i,r,"fontSize"),a=this.scaleX*this.canvas.getZoom(),s=this.cursorWidth/a,u=e.topOffset,l=this.getValueOfPropertyAt(i,r,"deltaY");u+=(1-this._fontSizeFraction)*this.getHeightOfLine(i)/this.lineHeight-o*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(e,t),t.fillStyle=this.cursorColor||this.getValueOfPropertyAt(i,r,"fill"),t.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,t.fillRect(e.left+e.leftOffset-s/2,u+e.top+l,s,o)},renderSelection:function(e,t){for(var n=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,i=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,r=-1!==this.textAlign.indexOf("justify"),o=this.get2DCursorLocation(n),a=this.get2DCursorLocation(i),s=o.lineIndex,u=a.lineIndex,l=o.charIndex<0?0:o.charIndex,c=a.charIndex<0?0:a.charIndex,d=s;d<=u;d++){var h,f=this._getLineLeftOffset(d)||0,p=this.getHeightOfLine(d),g=0,v=0;if(d===s&&(g=this.__charBounds[s][l].left),d>=s&&d<u)v=r&&!this.isEndOfWrapping(d)?this.width:this.getLineWidth(d)||5;else if(d===u)if(0===c)v=this.__charBounds[u][c].left;else{var m=this._getWidthOfCharSpacing();v=this.__charBounds[u][c-1].left+this.__charBounds[u][c-1].width-m}h=p,(this.lineHeight<1||d===u&&this.lineHeight>1)&&(p/=this.lineHeight),this.inCompositionMode?(t.fillStyle=this.compositionColor||"black",t.fillRect(e.left+f+g,e.top+e.topOffset+p,v-g,1)):(t.fillStyle=this.selectionColor,t.fillRect(e.left+f+g,e.top+e.topOffset,v-g,p)),e.topOffset+=h}},getCurrentCharFontSize:function(){var e=this._getCurrentCharIndex();return this.getValueOfPropertyAt(e.l,e.c,"fontSize")},getCurrentCharColor:function(){var e=this._getCurrentCharIndex();return this.getValueOfPropertyAt(e.l,e.c,"fill")},_getCurrentCharIndex:function(){var e=this.get2DCursorLocation(this.selectionStart,!0),t=e.charIndex>0?e.charIndex-1:0;return{l:e.lineIndex,c:t}}}),r.IText.fromObject=function(t,n){if(e(t),t.styles)for(var i in t.styles)for(var o in t.styles[i])e(t.styles[i][o]);r.Object._fromObject("IText",t,n,"text")}}(),function(){var e=r.util.object.clone;r.util.object.extend(r.IText.prototype,{initBehavior:function(){this.initAddedHandler(),this.initRemovedHandler(),this.initCursorSelectionHandlers(),this.initDoubleClickSimulation(),this.mouseMoveHandler=this.mouseMoveHandler.bind(this)},onDeselect:function(){this.isEditing&&this.exitEditing(),this.selected=!1},initAddedHandler:function(){var e=this;this.on("added",(function(){var t=e.canvas;t&&(t._hasITextHandlers||(t._hasITextHandlers=!0,e._initCanvasHandlers(t)),t._iTextInstances=t._iTextInstances||[],t._iTextInstances.push(e))}))},initRemovedHandler:function(){var e=this;this.on("removed",(function(){var t=e.canvas;t&&(t._iTextInstances=t._iTextInstances||[],r.util.removeFromArray(t._iTextInstances,e),0===t._iTextInstances.length&&(t._hasITextHandlers=!1,e._removeCanvasHandlers(t)))}))},_initCanvasHandlers:function(e){e._mouseUpITextHandler=function(){e._iTextInstances&&e._iTextInstances.forEach((function(e){e.__isMousedown=!1}))},e.on("mouse:up",e._mouseUpITextHandler)},_removeCanvasHandlers:function(e){e.off("mouse:up",e._mouseUpITextHandler)},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(e,t,n,i){var r;return r={isAborted:!1,abort:function(){this.isAborted=!0}},e.animate("_currentCursorOpacity",t,{duration:n,onComplete:function(){r.isAborted||e[i]()},onChange:function(){e.canvas&&e.selectionStart===e.selectionEnd&&e.renderCursorOrSelection()},abort:function(){return r.isAborted}}),r},_onTickComplete:function(){var e=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1),this._cursorTimeout1=setTimeout((function(){e._currentTickCompleteState=e._animateCursor(e,0,this.cursorDuration/2,"_tick")}),100)},initDelayedCursor:function(e){var t=this,n=e?0:this.cursorDelay;this.abortCursorAnimation(),this._currentCursorOpacity=1,this._cursorTimeout2=setTimeout((function(){t._tick()}),n)},abortCursorAnimation:function(){var e=this._currentTickState||this._currentTickCompleteState,t=this.canvas;this._currentTickState&&this._currentTickState.abort(),this._currentTickCompleteState&&this._currentTickCompleteState.abort(),clearTimeout(this._cursorTimeout1),clearTimeout(this._cursorTimeout2),this._currentCursorOpacity=0,e&&t&&t.clearContext(t.contextTop||t.contextContainer)},selectAll:function(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this},getSelectedText:function(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")},findWordBoundaryLeft:function(e){var t=0,n=e-1;if(this._reSpace.test(this._text[n]))for(;this._reSpace.test(this._text[n]);)t++,n--;for(;/\S/.test(this._text[n])&&n>-1;)t++,n--;return e-t},findWordBoundaryRight:function(e){var t=0,n=e;if(this._reSpace.test(this._text[n]))for(;this._reSpace.test(this._text[n]);)t++,n++;for(;/\S/.test(this._text[n])&&n<this._text.length;)t++,n++;return e+t},findLineBoundaryLeft:function(e){for(var t=0,n=e-1;!/\n/.test(this._text[n])&&n>-1;)t++,n--;return e-t},findLineBoundaryRight:function(e){for(var t=0,n=e;!/\n/.test(this._text[n])&&n<this._text.length;)t++,n++;return e+t},searchWordBoundary:function(e,t){for(var n=this._text,i=this._reSpace.test(n[e])?e-1:e,o=n[i],a=r.reNonWord;!a.test(o)&&i>0&&i<n.length;)o=n[i+=t];return a.test(o)&&(i+=1===t?0:1),i},selectWord:function(e){e=e||this.selectionStart;var t=this.searchWordBoundary(e,-1),n=this.searchWordBoundary(e,1);this.selectionStart=t,this.selectionEnd=n,this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()},selectLine:function(e){e=e||this.selectionStart;var t=this.findLineBoundaryLeft(e),n=this.findLineBoundaryRight(e);return this.selectionStart=t,this.selectionEnd=n,this._fireSelectionChanged(),this._updateTextarea(),this},enterEditing:function(e){if(!this.isEditing&&this.editable)return this.canvas&&(this.canvas.calcOffset(),this.exitEditingOnOthers(this.canvas)),this.isEditing=!0,this.initHiddenTextarea(e),this.hiddenTextarea.focus(),this.hiddenTextarea.value=this.text,this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this._tick(),this.fire("editing:entered"),this._fireSelectionChanged(),this.canvas?(this.canvas.fire("text:editing:entered",{target:this}),this.initMouseMoveHandler(),this.canvas.requestRenderAll(),this):this},exitEditingOnOthers:function(e){e._iTextInstances&&e._iTextInstances.forEach((function(e){e.selected=!1,e.isEditing&&e.exitEditing()}))},initMouseMoveHandler:function(){this.canvas.on("mouse:move",this.mouseMoveHandler)},mouseMoveHandler:function(e){if(this.__isMousedown&&this.isEditing){var t=this.getSelectionStartFromPointer(e.e),n=this.selectionStart,i=this.selectionEnd;(t===this.__selectionStartOnMouseDown&&n!==i||n!==t&&i!==t)&&(t>this.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=t):(this.selectionStart=t,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===n&&this.selectionEnd===i||(this.restartCursorIfNeeded(),this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}},_setEditingProps:function(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0},fromStringToGraphemeSelection:function(e,t,n){var i=n.slice(0,e),o=r.util.string.graphemeSplit(i).length;if(e===t)return{selectionStart:o,selectionEnd:o};var a=n.slice(e,t);return{selectionStart:o,selectionEnd:o+r.util.string.graphemeSplit(a).length}},fromGraphemeToStringSelection:function(e,t,n){var i=n.slice(0,e).join("").length;return e===t?{selectionStart:i,selectionEnd:i}:{selectionStart:i,selectionEnd:i+n.slice(e,t).join("").length}},_updateTextarea:function(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){var e=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=e.selectionStart,this.hiddenTextarea.selectionEnd=e.selectionEnd}this.updateTextareaPosition()}},updateFromTextArea:function(){if(this.hiddenTextarea){this.cursorOffsetCache={},this.text=this.hiddenTextarea.value,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords());var e=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value);this.selectionEnd=this.selectionStart=e.selectionEnd,this.inCompositionMode||(this.selectionStart=e.selectionStart),this.updateTextareaPosition()}},updateTextareaPosition:function(){if(this.selectionStart===this.selectionEnd){var e=this._calcTextareaPosition();this.hiddenTextarea.style.left=e.left,this.hiddenTextarea.style.top=e.top}},_calcTextareaPosition:function(){if(!this.canvas)return{x:1,y:1};var e=this.inCompositionMode?this.compositionStart:this.selectionStart,t=this._getCursorBoundaries(e),n=this.get2DCursorLocation(e),i=n.lineIndex,o=n.charIndex,a=this.getValueOfPropertyAt(i,o,"fontSize")*this.lineHeight,s=t.leftOffset,u=this.calcTransformMatrix(),l={x:t.left+s,y:t.top+t.topOffset+a},c=this.canvas.getRetinaScaling(),d=this.canvas.upperCanvasEl,h=d.width/c,f=d.height/c,p=h-a,g=f-a,v=d.clientWidth/h,m=d.clientHeight/f;return l=r.util.transformPoint(l,u),(l=r.util.transformPoint(l,this.canvas.viewportTransform)).x*=v,l.y*=m,l.x<0&&(l.x=0),l.x>p&&(l.x=p),l.y<0&&(l.y=0),l.y>g&&(l.y=g),l.x+=this.canvas._offset.left,l.y+=this.canvas._offset.top,{left:l.x+"px",top:l.y+"px",fontSize:a+"px",charHeight:a}},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){var e=this._textBeforeEdit!==this.text,t=this.hiddenTextarea;return this.selected=!1,this.isEditing=!1,this.selectionEnd=this.selectionStart,t&&(t.blur&&t.blur(),t.parentNode&&t.parentNode.removeChild(t)),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this.fire("editing:exited"),e&&this.fire("modified"),this.canvas&&(this.canvas.off("mouse:move",this.mouseMoveHandler),this.canvas.fire("text:editing:exited",{target:this}),e&&this.canvas.fire("object:modified",{target:this})),this},_removeExtraneousStyles:function(){for(var e in this.styles)this._textLines[e]||delete this.styles[e]},removeStyleFromTo:function(e,t){var n,i,r=this.get2DCursorLocation(e,!0),o=this.get2DCursorLocation(t,!0),a=r.lineIndex,s=r.charIndex,u=o.lineIndex,l=o.charIndex;if(a!==u){if(this.styles[a])for(n=s;n<this._unwrappedTextLines[a].length;n++)delete this.styles[a][n];if(this.styles[u])for(n=l;n<this._unwrappedTextLines[u].length;n++)(i=this.styles[u][n])&&(this.styles[a]||(this.styles[a]={}),this.styles[a][s+n-l]=i);for(n=a+1;n<=u;n++)delete this.styles[n];this.shiftLineStyles(u,a-u)}else if(this.styles[a]){i=this.styles[a];var c,d,h=l-s;for(n=s;n<l;n++)delete i[n];for(d in this.styles[a])(c=parseInt(d,10))>=l&&(i[c-h]=i[d],delete i[d])}},shiftLineStyles:function(t,n){var i=e(this.styles);for(var r in this.styles){var o=parseInt(r,10);o>t&&(this.styles[o+n]=i[o],i[o-n]||delete this.styles[o])}},restartCursorIfNeeded:function(){this._currentTickState&&!this._currentTickState.isAborted&&this._currentTickCompleteState&&!this._currentTickCompleteState.isAborted||this.initDelayedCursor()},insertNewlineStyleObject:function(t,n,i,r){var o,a={},s=!1,u=this._unwrappedTextLines[t].length===n;for(var l in i||(i=1),this.shiftLineStyles(t,i),this.styles[t]&&(o=this.styles[t][0===n?n:n-1]),this.styles[t]){var c=parseInt(l,10);c>=n&&(s=!0,a[c-n]=this.styles[t][l],u&&0===n||delete this.styles[t][l])}var d=!1;for(s&&!u&&(this.styles[t+i]=a,d=!0),d&&i--;i>0;)r&&r[i-1]?this.styles[t+i]={0:e(r[i-1])}:o?this.styles[t+i]={0:e(o)}:delete this.styles[t+i],i--;this._forceClearCache=!0},insertCharStyleObject:function(t,n,i,r){this.styles||(this.styles={});var o=this.styles[t],a=o?e(o):{};for(var s in i||(i=1),a){var u=parseInt(s,10);u>=n&&(o[u+i]=a[u],a[u-i]||delete o[u])}if(this._forceClearCache=!0,r)for(;i--;)Object.keys(r[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][n+i]=e(r[i]));else if(o)for(var l=o[n?n-1:1];l&&i--;)this.styles[t][n+i]=e(l)},insertNewStyleBlock:function(e,t,n){for(var i=this.get2DCursorLocation(t,!0),r=[0],o=0,a=0;a<e.length;a++)"\n"===e[a]?r[++o]=0:r[o]++;r[0]>0&&(this.insertCharStyleObject(i.lineIndex,i.charIndex,r[0],n),n=n&&n.slice(r[0]+1)),o&&this.insertNewlineStyleObject(i.lineIndex,i.charIndex+r[0],o);for(a=1;a<o;a++)r[a]>0?this.insertCharStyleObject(i.lineIndex+a,0,r[a],n):n&&(this.styles[i.lineIndex+a][0]=n[0]),n=n&&n.slice(r[a]+1);r[a]>0&&this.insertCharStyleObject(i.lineIndex+a,0,r[a],n)},setSelectionStartEndWithShift:function(e,t,n){n<=e?(t===e?this._selectionDirection="left":"right"===this._selectionDirection&&(this._selectionDirection="left",this.selectionEnd=e),this.selectionStart=n):n>e&&n<t?"right"===this._selectionDirection?this.selectionEnd=n:this.selectionStart=n:(t===e?this._selectionDirection="right":"left"===this._selectionDirection&&(this._selectionDirection="right",this.selectionStart=t),this.selectionEnd=n)},setSelectionInBoundaries:function(){var e=this.text.length;this.selectionStart>e?this.selectionStart=e:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>e?this.selectionEnd=e:this.selectionEnd<0&&(this.selectionEnd=0)}})}(),r.util.object.extend(r.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(e){if(this.canvas){this.__newClickTime=+new Date;var t=e.pointer;this.isTripleClick(t)&&(this.fire("tripleclick",e),this._stopEvent(e.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=t,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(e){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===e.x&&this.__lastPointer.y===e.y},_stopEvent:function(e){e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(e){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(e.e))},tripleClickHandler:function(e){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(e.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(e){!this.canvas||!this.editable||e.e.button&&1!==e.e.button||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(e.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(e){!this.canvas||!this.editable||e.e.button&&1!==e.e.button||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(e){if(this.__isMousedown=!1,!(!this.editable||this.group||e.transform&&e.transform.actionPerformed||e.e.button&&1!==e.e.button)){if(this.canvas){var t=this.canvas._activeObject;if(t&&t!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(e.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(e){var t=this.getSelectionStartFromPointer(e),n=this.selectionStart,i=this.selectionEnd;e.shiftKey?this.setSelectionStartEndWithShift(n,i,t):(this.selectionStart=t,this.selectionEnd=t),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(e){for(var t=this.getLocalPointer(e),n=0,i=0,r=0,o=0,a=0,s=0,u=this._textLines.length;s<u&&r<=t.y;s++)r+=this.getHeightOfLine(s)*this.scaleY,a=s,s>0&&(o+=this._textLines[s-1].length+this.missingNewlineOffset(s-1));i=this._getLineLeftOffset(a)*this.scaleX;for(var l=0,c=this._textLines[a].length;l<c&&(n=i,(i+=this.__charBounds[a][l].kernedWidth*this.scaleX)<=t.x);l++)o++;return this._getNewSelectionStartFromOffset(t,n,i,o,c)},_getNewSelectionStartFromOffset:function(e,t,n,i,r){var o=e.x-t,a=n-e.x,s=i+(a>o||a<0?0:1);return this.flipX&&(s=r-s),s>this._text.length&&(s=this._text.length),s}}),r.util.object.extend(r.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=r.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var e=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+e.top+"; left: "+e.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding\uff70top: "+e.fontSize+";",r.document.body.appendChild(this.hiddenTextarea),r.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),r.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),r.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),r.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),r.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),r.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),r.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),r.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),r.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(r.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(e){if(this.isEditing){if(e.keyCode in this.keysMap)this[this.keysMap[e.keyCode]](e);else{if(!(e.keyCode in this.ctrlKeysMapDown)||!e.ctrlKey&&!e.metaKey)return;this[this.ctrlKeysMapDown[e.keyCode]](e)}e.stopImmediatePropagation(),e.preventDefault(),e.keyCode>=33&&e.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}},onKeyUp:function(e){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:e.keyCode in this.ctrlKeysMapUp&&(e.ctrlKey||e.metaKey)&&(this[this.ctrlKeysMapUp[e.keyCode]](e),e.stopImmediatePropagation(),e.preventDefault(),this.canvas&&this.canvas.requestRenderAll())},onInput:function(e){var t=this.fromPaste;if(this.fromPaste=!1,e&&e.stopPropagation(),this.isEditing){var n,i,o,a,s,u=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,l=this._text.length,c=u.length,d=c-l,h=this.selectionStart,f=this.selectionEnd,p=h!==f;if(""===this.hiddenTextarea.value)return this.styles={},this.updateFromTextArea(),this.fire("changed"),void(this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll()));var g=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),v=h>g.selectionStart;p?(n=this._text.slice(h,f),d+=f-h):c<l&&(n=v?this._text.slice(f+d,f):this._text.slice(h,h-d)),i=u.slice(g.selectionEnd-d,g.selectionEnd),n&&n.length&&(i.length&&(o=this.getSelectionStyles(h,h+1,!1),o=i.map((function(){return o[0]}))),p?(a=h,s=f):v?(a=f-n.length,s=f):(a=f,s=f+n.length),this.removeStyleFromTo(a,s)),i.length&&(t&&i.join("")===r.copiedText&&!r.disableStyleCopyPaste&&(o=r.copiedTextStyle),this.insertNewStyleBlock(i,h,o)),this.updateFromTextArea(),this.fire("changed"),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())}},onCompositionStart:function(){this.inCompositionMode=!0},onCompositionEnd:function(){this.inCompositionMode=!1},onCompositionUpdate:function(e){this.compositionStart=e.target.selectionStart,this.compositionEnd=e.target.selectionEnd,this.updateTextareaPosition()},copy:function(){this.selectionStart!==this.selectionEnd&&(r.copiedText=this.getSelectedText(),r.disableStyleCopyPaste?r.copiedTextStyle=null:r.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0)},paste:function(){this.fromPaste=!0},_getClipboardData:function(e){return e&&e.clipboardData||r.window.clipboardData},_getWidthBeforeCursor:function(e,t){var n,i=this._getLineLeftOffset(e);return t>0&&(i+=(n=this.__charBounds[e][t-1]).left+n.width),i},getDownCursorOffset:function(e,t){var n=this._getSelectionForOffset(e,t),i=this.get2DCursorLocation(n),r=i.lineIndex;if(r===this._textLines.length-1||e.metaKey||34===e.keyCode)return this._text.length-n;var o=i.charIndex,a=this._getWidthBeforeCursor(r,o),s=this._getIndexOnLine(r+1,a);return this._textLines[r].slice(o).length+s+1+this.missingNewlineOffset(r)},_getSelectionForOffset:function(e,t){return e.shiftKey&&this.selectionStart!==this.selectionEnd&&t?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(e,t){var n=this._getSelectionForOffset(e,t),i=this.get2DCursorLocation(n),r=i.lineIndex;if(0===r||e.metaKey||33===e.keyCode)return-n;var o=i.charIndex,a=this._getWidthBeforeCursor(r,o),s=this._getIndexOnLine(r-1,a),u=this._textLines[r].slice(0,o),l=this.missingNewlineOffset(r-1);return-this._textLines[r-1].length+s-u.length+(1-l)},_getIndexOnLine:function(e,t){for(var n,i,r=this._textLines[e],o=this._getLineLeftOffset(e),a=0,s=0,u=r.length;s<u;s++)if((o+=n=this.__charBounds[e][s].width)>t){i=!0;var l=o-n,c=o,d=Math.abs(l-t);a=Math.abs(c-t)<d?s:s-1;break}return i||(a=r.length-1),a},moveCursorDown:function(e){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",e)},moveCursorUp:function(e){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",e)},_moveCursorUpOrDown:function(e,t){var n=this["get"+e+"CursorOffset"](t,"right"===this._selectionDirection);t.shiftKey?this.moveCursorWithShift(n):this.moveCursorWithoutShift(n),0!==n&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(e){var t="left"===this._selectionDirection?this.selectionStart+e:this.selectionEnd+e;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,t),0!==e},moveCursorWithoutShift:function(e){return e<0?(this.selectionStart+=e,this.selectionEnd=this.selectionStart):(this.selectionEnd+=e,this.selectionStart=this.selectionEnd),0!==e},moveCursorLeft:function(e){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",e)},_move:function(e,t,n){var i;if(e.altKey)i=this["findWordBoundary"+n](this[t]);else{if(!e.metaKey&&35!==e.keyCode&&36!==e.keyCode)return this[t]+="Left"===n?-1:1,!0;i=this["findLineBoundary"+n](this[t])}if(void 0!==typeof i&&this[t]!==i)return this[t]=i,!0},_moveLeft:function(e,t){return this._move(e,t,"Left")},_moveRight:function(e,t){return this._move(e,t,"Right")},moveCursorLeftWithoutShift:function(e){var t=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(t=this._moveLeft(e,"selectionStart")),this.selectionEnd=this.selectionStart,t},moveCursorLeftWithShift:function(e){return"right"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveLeft(e,"selectionEnd"):0!==this.selectionStart?(this._selectionDirection="left",this._moveLeft(e,"selectionStart")):void 0},moveCursorRight:function(e){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",e)},_moveCursorLeftOrRight:function(e,t){var n="moveCursor"+e+"With";this._currentCursorOpacity=1,t.shiftKey?n+="Shift":n+="outShift",this[n](t)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(e){return"left"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveRight(e,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection="right",this._moveRight(e,"selectionEnd")):void 0},moveCursorRightWithoutShift:function(e){var t=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(t=this._moveRight(e,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,t},removeChars:function(e,t){"undefined"===typeof t&&(t=e+1),this.removeStyleFromTo(e,t),this._text.splice(e,t-e),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(e,t,n,i){"undefined"===typeof i&&(i=n),i>n&&this.removeStyleFromTo(n,i);var o=r.util.string.graphemeSplit(e);this.insertNewStyleBlock(o,n,t),this._text=[].concat(this._text.slice(0,n),o,this._text.slice(i)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),function(){var e=r.util.toFixed,t=/ +/g;r.util.object.extend(r.Text.prototype,{_toSVG:function(){var e=this._getSVGLeftTopOffsets(),t=this._getSVGTextAndBg(e.textTop,e.textLeft);return this._wrapSVGTextAndBg(t)},toSVG:function(e){return this._createBaseSVGMarkup(this._toSVG(),{reviver:e,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(e){var t=this.getSvgTextDecoration(this);return[e.textBgRects.join(""),'\t\t<text xml:space="preserve" ',this.fontFamily?'font-family="'+this.fontFamily.replace(/"/g,"'")+'" ':"",this.fontSize?'font-size="'+this.fontSize+'" ':"",this.fontStyle?'font-style="'+this.fontStyle+'" ':"",this.fontWeight?'font-weight="'+this.fontWeight+'" ':"",t?'text-decoration="'+t+'" ':"",'style="',this.getSvgStyles(!0),'"',this.addPaintOrder()," >",e.textSpans.join(""),"</text>\n"]},_getSVGTextAndBg:function(e,t){var n,i=[],r=[],o=e;this._setSVGBg(r);for(var a=0,s=this._textLines.length;a<s;a++)n=this._getLineLeftOffset(a),(this.textBackgroundColor||this.styleHas("textBackgroundColor",a))&&this._setSVGTextLineBg(r,a,t+n,o),this._setSVGTextLineText(i,a,t+n,o),o+=this.getHeightOfLine(a);return{textSpans:i,textBgRects:r}},_createTextCharSpan:function(n,i,o,a){var s=n!==n.trim()||n.match(t),u=this.getSvgSpanStyles(i,s),l=u?'style="'+u+'"':"",c=i.deltaY,d="",h=r.Object.NUM_FRACTION_DIGITS;return c&&(d=' dy="'+e(c,h)+'" '),['<tspan x="',e(o,h),'" y="',e(a,h),'" ',d,l,">",r.util.string.escapeXml(n),"</tspan>"].join("")},_setSVGTextLineText:function(e,t,n,i){var r,o,a,s,u,l=this.getHeightOfLine(t),c=-1!==this.textAlign.indexOf("justify"),d="",h=0,f=this._textLines[t];i+=l*(1-this._fontSizeFraction)/this.lineHeight;for(var p=0,g=f.length-1;p<=g;p++)u=p===g||this.charSpacing,d+=f[p],a=this.__charBounds[t][p],0===h?(n+=a.kernedWidth-a.width,h+=a.width):h+=a.kernedWidth,c&&!u&&this._reSpaceAndTab.test(f[p])&&(u=!0),u||(r=r||this.getCompleteStyleDeclaration(t,p),o=this.getCompleteStyleDeclaration(t,p+1),u=this._hasStyleChangedForSvg(r,o)),u&&(s=this._getStyleDeclaration(t,p)||{},e.push(this._createTextCharSpan(d,s,n,i)),d="",r=o,n+=h,h=0)},_pushTextBgRect:function(t,n,i,o,a,s){var u=r.Object.NUM_FRACTION_DIGITS;t.push("\t\t<rect ",this._getFillAttributes(n),' x="',e(i,u),'" y="',e(o,u),'" width="',e(a,u),'" height="',e(s,u),'"></rect>\n')},_setSVGTextLineBg:function(e,t,n,i){for(var r,o,a=this._textLines[t],s=this.getHeightOfLine(t)/this.lineHeight,u=0,l=0,c=this.getValueOfPropertyAt(t,0,"textBackgroundColor"),d=0,h=a.length;d<h;d++)r=this.__charBounds[t][d],(o=this.getValueOfPropertyAt(t,d,"textBackgroundColor"))!==c?(c&&this._pushTextBgRect(e,c,n+l,i,u,s),l=r.left,u=r.width,c=o):u+=r.kernedWidth;o&&this._pushTextBgRect(e,o,n+l,i,u,s)},_getFillAttributes:function(e){var t=e&&"string"===typeof e?new r.Color(e):"";return t&&t.getSource()&&1!==t.getAlpha()?'opacity="'+t.getAlpha()+'" fill="'+t.setAlpha(1).toRgb()+'"':'fill="'+e+'"'},_getSVGLineTopOffset:function(e){for(var t,n=0,i=0;i<e;i++)n+=this.getHeightOfLine(i);return t=this.getHeightOfLine(i),{lineTop:n,offset:(this._fontSizeMult-this._fontSizeFraction)*t/(this.lineHeight*this._fontSizeMult)}},getSvgStyles:function(e){return r.Object.prototype.getSvgStyles.call(this,e)+" white-space: pre;"}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={});t.Textbox=t.util.createClass(t.IText,t.Observable,{type:"textbox",minWidth:20,dynamicMinWidth:2,__cachedLines:null,lockScalingFlip:!0,noScaleCache:!1,_dimensionAffectingProps:t.Text.prototype._dimensionAffectingProps.concat("width"),_wordJoiners:/[ \t\r]/,splitByGrapheme:!1,initDimensions:function(){this.__skipDimension||(this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set("width",this.dynamicMinWidth),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(e){for(var t=0,n=0,i=0,r={},o=0;o<e.graphemeLines.length;o++)"\n"===e.graphemeText[i]&&o>0?(n=0,i++,t++):!this.splitByGrapheme&&this._reSpaceAndTab.test(e.graphemeText[i])&&o>0&&(n++,i++),r[o]={line:t,offset:n},i+=e.graphemeLines[o].length,n+=e.graphemeLines[o].length;return r},styleHas:function(e,n){if(this._styleMap&&!this.isWrapping){var i=this._styleMap[n];i&&(n=i.line)}return t.Text.prototype.styleHas.call(this,e,n)},isEmptyStyles:function(e){if(!this.styles)return!0;var t,n,i=0,r=!1,o=this._styleMap[e],a=this._styleMap[e+1];for(var s in o&&(e=o.line,i=o.offset),a&&(r=a.line===e,t=a.offset),n="undefined"===typeof e?this.styles:{line:this.styles[e]})for(var u in n[s])if(u>=i&&(!r||u<t))for(var l in n[s][u])return!1;return!0},_getStyleDeclaration:function(e,t){if(this._styleMap&&!this.isWrapping){var n=this._styleMap[e];if(!n)return null;e=n.line,t=n.offset+t}return this.callSuper("_getStyleDeclaration",e,t)},_setStyleDeclaration:function(e,t,n){var i=this._styleMap[e];e=i.line,t=i.offset+t,this.styles[e][t]=n},_deleteStyleDeclaration:function(e,t){var n=this._styleMap[e];e=n.line,t=n.offset+t,delete this.styles[e][t]},_getLineStyle:function(e){var t=this._styleMap[e];return!!this.styles[t.line]},_setLineStyle:function(e){var t=this._styleMap[e];this.styles[t.line]={}},_wrapText:function(e,t){var n,i=[];for(this.isWrapping=!0,n=0;n<e.length;n++)i=i.concat(this._wrapLine(e[n],n,t));return this.isWrapping=!1,i},_measureWord:function(e,t,n){var i,r=0;n=n||0;for(var o=0,a=e.length;o<a;o++){r+=this._getGraphemeBox(e[o],t,o+n,i,true).kernedWidth,i=e[o]}return r},_wrapLine:function(e,n,i,r){var o=0,a=this.splitByGrapheme,s=[],u=[],l=a?t.util.string.graphemeSplit(e):e.split(this._wordJoiners),c="",d=0,h=a?"":" ",f=0,p=0,g=0,v=!0,m=this._getWidthOfCharSpacing();r=r||0;0===l.length&&l.push([]),i-=r;for(var _=0;_<l.length;_++)c=a?l[_]:t.util.string.graphemeSplit(l[_]),f=this._measureWord(c,n,d),d+=c.length,(o+=p+f-m)>=i&&!v?(s.push(u),u=[],o=f,v=!0):o+=m,v||a||u.push(h),u=u.concat(c),p=a?0:this._measureWord([h],n,d),d++,v=!1,f>g&&(g=f);return _&&s.push(u),g+r>this.dynamicMinWidth&&(this.dynamicMinWidth=g-m+r),s},isEndOfWrapping:function(e){return!this._styleMap[e+1]||this._styleMap[e+1].line!==this._styleMap[e].line},missingNewlineOffset:function(e){return this.splitByGrapheme?this.isEndOfWrapping(e)?1:0:1},_splitTextIntoLines:function(e){for(var n=t.Text.prototype._splitTextIntoLines.call(this,e),i=this._wrapText(n.lines,this.width),r=new Array(i.length),o=0;o<i.length;o++)r[o]=i[o].join("");return n.lines=r,n.graphemeLines=i,n},getMinWidth:function(){return Math.max(this.minWidth,this.dynamicMinWidth)},_removeExtraneousStyles:function(){var e={};for(var t in this._styleMap)this._textLines[t]&&(e[this._styleMap[t].line]=1);for(var t in this.styles)e[t]||delete this.styles[t]},toObject:function(e){return this.callSuper("toObject",["minWidth","splitByGrapheme"].concat(e))}}),t.Textbox.fromObject=function(e,n){return t.Object._fromObject("Textbox",e,n,"text")}}(t),function(){var e=r.controlsUtils,t=e.scaleSkewCursorStyleHandler,n=e.scaleCursorStyleHandler,i=e.scalingEqually,o=e.scalingYOrSkewingX,a=e.scalingXOrSkewingY,s=e.scaleOrSkewActionName,u=r.Object.prototype.controls;if(u.ml=new r.Control({x:-.5,y:0,cursorStyleHandler:t,actionHandler:a,getActionName:s}),u.mr=new r.Control({x:.5,y:0,cursorStyleHandler:t,actionHandler:a,getActionName:s}),u.mb=new r.Control({x:0,y:.5,cursorStyleHandler:t,actionHandler:o,getActionName:s}),u.mt=new r.Control({x:0,y:-.5,cursorStyleHandler:t,actionHandler:o,getActionName:s}),u.tl=new r.Control({x:-.5,y:-.5,cursorStyleHandler:n,actionHandler:i}),u.tr=new r.Control({x:.5,y:-.5,cursorStyleHandler:n,actionHandler:i}),u.bl=new r.Control({x:-.5,y:.5,cursorStyleHandler:n,actionHandler:i}),u.br=new r.Control({x:.5,y:.5,cursorStyleHandler:n,actionHandler:i}),u.mtr=new r.Control({x:0,y:-.5,actionHandler:e.rotationWithSnapping,cursorStyleHandler:e.rotationStyleHandler,offsetY:-40,withConnection:!0,actionName:"rotate"}),r.Textbox){var l=r.Textbox.prototype.controls={};l.mtr=u.mtr,l.tr=u.tr,l.br=u.br,l.tl=u.tl,l.bl=u.bl,l.mt=u.mt,l.mb=u.mb,l.mr=new r.Control({x:.5,y:0,actionHandler:e.changeWidth,cursorStyleHandler:t,actionName:"resizing"}),l.ml=new r.Control({x:-.5,y:0,actionHandler:e.changeWidth,cursorStyleHandler:t,actionName:"resizing"})}}()},83872:function(e){"use strict";var t="Function.prototype.bind called on incompatible ",n=Array.prototype.slice,i=Object.prototype.toString,r="[object Function]";e.exports=function(e){var o=this;if("function"!==typeof o||i.call(o)!==r)throw new TypeError(t+o);for(var a,s=n.call(arguments,1),u=Math.max(0,o.length-s.length),l=[],c=0;c<u;c++)l.push("$"+c);if(a=Function("binder","return function ("+l.join(",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof a){var t=o.apply(this,s.concat(n.call(arguments)));return Object(t)===t?t:this}return o.apply(e,s.concat(n.call(arguments)))})),o.prototype){var d=function(){};d.prototype=o.prototype,a.prototype=new d,d.prototype=null}return a}},62018:function(e,t,n){"use strict";var i=n(83872);e.exports=Function.prototype.bind||i},11333:function(e,t,n){"use strict";var i,r=SyntaxError,o=Function,a=TypeError,s=function(e){try{return o('"use strict"; return ('+e+").constructor;")()}catch(t){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(N){u=null}var l=function(){throw new a},c=u?function(){try{return l}catch(e){try{return u(arguments,"callee").get}catch(t){return l}}}():l,d=n(69718)(),h=Object.getPrototypeOf||function(e){return e.__proto__},f={},p="undefined"===typeof Uint8Array?i:h(Uint8Array),g={"%AggregateError%":"undefined"===typeof AggregateError?i:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?i:ArrayBuffer,"%ArrayIteratorPrototype%":d?h([][Symbol.iterator]()):i,"%AsyncFromSyncIteratorPrototype%":i,"%AsyncFunction%":f,"%AsyncGenerator%":f,"%AsyncGeneratorFunction%":f,"%AsyncIteratorPrototype%":f,"%Atomics%":"undefined"===typeof Atomics?i:Atomics,"%BigInt%":"undefined"===typeof BigInt?i:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?i:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"===typeof Float32Array?i:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?i:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?i:FinalizationRegistry,"%Function%":o,"%GeneratorFunction%":f,"%Int8Array%":"undefined"===typeof Int8Array?i:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?i:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?i:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":d?h(h([][Symbol.iterator]())):i,"%JSON%":"object"===typeof JSON?JSON:i,"%Map%":"undefined"===typeof Map?i:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&d?h((new Map)[Symbol.iterator]()):i,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?i:Promise,"%Proxy%":"undefined"===typeof Proxy?i:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"===typeof Reflect?i:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?i:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&d?h((new Set)[Symbol.iterator]()):i,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?i:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":d?h(""[Symbol.iterator]()):i,"%Symbol%":d?Symbol:i,"%SyntaxError%":r,"%ThrowTypeError%":c,"%TypedArray%":p,"%TypeError%":a,"%Uint8Array%":"undefined"===typeof Uint8Array?i:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?i:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?i:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?i:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"===typeof WeakMap?i:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?i:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?i:WeakSet},v=function e(t){var n;if("%AsyncFunction%"===t)n=s("async function () {}");else if("%GeneratorFunction%"===t)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=s("async function* () {}");else if("%AsyncGenerator%"===t){var i=e("%AsyncGeneratorFunction%");i&&(n=i.prototype)}else if("%AsyncIteratorPrototype%"===t){var r=e("%AsyncGenerator%");r&&(n=h(r.prototype))}return g[t]=n,n},m={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},_=n(62018),y=n(13705),b=_.call(Function.call,Array.prototype.concat),w=_.call(Function.apply,Array.prototype.splice),C=_.call(Function.call,String.prototype.replace),k=_.call(Function.call,String.prototype.slice),S=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,x=/\\(\\)?/g,L=function(e){var t=k(e,0,1),n=k(e,-1);if("%"===t&&"%"!==n)throw new r("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new r("invalid intrinsic syntax, expected opening `%`");var i=[];return C(e,S,(function(e,t,n,r){i[i.length]=n?C(r,x,"$1"):t||e})),i},E=function(e,t){var n,i=e;if(y(m,i)&&(i="%"+(n=m[i])[0]+"%"),y(g,i)){var o=g[i];if(o===f&&(o=v(i)),"undefined"===typeof o&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:i,value:o}}throw new r("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new a('"allowMissing" argument must be a boolean');var n=L(e),i=n.length>0?n[0]:"",o=E("%"+i+"%",t),s=o.name,l=o.value,c=!1,d=o.alias;d&&(i=d[0],w(n,b([0,1],d)));for(var h=1,f=!0;h<n.length;h+=1){var p=n[h],v=k(p,0,1),m=k(p,-1);if(('"'===v||"'"===v||"`"===v||'"'===m||"'"===m||"`"===m)&&v!==m)throw new r("property names with quotes must have matching quotes");if("constructor"!==p&&f||(c=!0),y(g,s="%"+(i+="."+p)+"%"))l=g[s];else if(null!=l){if(!(p in l)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(u&&h+1>=n.length){var _=u(l,p);l=(f=!!_)&&"get"in _&&!("originalValue"in _.get)?_.get:l[p]}else f=y(l,p),l=l[p];f&&!c&&(g[s]=l)}}return l}},69718:function(e,t,n){"use strict";var i="undefined"!==typeof Symbol&&Symbol,r=n(30596);e.exports=function(){return"function"===typeof i&&("function"===typeof Symbol&&("symbol"===typeof i("foo")&&("symbol"===typeof Symbol("bar")&&r())))}},30596:function(e){"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var i=Object.getOwnPropertySymbols(e);if(1!==i.length||i[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var r=Object.getOwnPropertyDescriptor(e,t);if(42!==r.value||!0!==r.enumerable)return!1}return!0}},13705:function(e,t,n){"use strict";var i=n(62018);e.exports=i.call(Function.call,Object.prototype.hasOwnProperty)},63993:function(e,t,n){"use strict";var i=n(55775),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return i.isMemo(e)?a:s[e.$$typeof]||r}s[i.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[i.Memo]=a;var l=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,p=Object.prototype;e.exports=function e(t,n,i){if("string"!==typeof n){if(p){var r=f(n);r&&r!==p&&e(t,r,i)}var a=c(n);d&&(a=a.concat(d(n)));for(var s=u(t),g=u(n),v=0;v<a.length;++v){var m=a[v];if(!o[m]&&(!i||!i[m])&&(!g||!g[m])&&(!s||!s[m])){var _=h(n,m);try{l(t,m,_)}catch(y){}}}}return t}},85496:function(e,t){"use strict";var n="function"===typeof Symbol&&Symbol.for,i=n?Symbol.for("react.element"):60103,r=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,h=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,p=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.block"):60121,_=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,b=n?Symbol.for("react.scope"):60119;function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case i:switch(e=e.type){case c:case d:case o:case s:case a:case f:return e;default:switch(e=e&&e.$$typeof){case l:case h:case v:case g:case u:return e;default:return t}}case r:return t}}}function C(e){return w(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=l,t.ContextProvider=u,t.Element=i,t.ForwardRef=h,t.Fragment=o,t.Lazy=v,t.Memo=g,t.Portal=r,t.Profiler=s,t.StrictMode=a,t.Suspense=f,t.isAsyncMode=function(e){return C(e)||w(e)===c},t.isConcurrentMode=C,t.isContextConsumer=function(e){return w(e)===l},t.isContextProvider=function(e){return w(e)===u},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===i},t.isForwardRef=function(e){return w(e)===h},t.isFragment=function(e){return w(e)===o},t.isLazy=function(e){return w(e)===v},t.isMemo=function(e){return w(e)===g},t.isPortal=function(e){return w(e)===r},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===a},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===o||e===d||e===s||e===a||e===f||e===p||"object"===typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===g||e.$$typeof===u||e.$$typeof===l||e.$$typeof===h||e.$$typeof===_||e.$$typeof===y||e.$$typeof===b||e.$$typeof===m)},t.typeOf=w},55775:function(e,t,n){"use strict";e.exports=n(85496)},15731:function(e){"use strict";e.exports=function(e,t,n,i,r,o,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,i,r,o,a,s],c=0;(u=new Error(t.replace(/%s/g,(function(){return l[c++]})))).name="Invariant Violation"}throw u.framesToPop=1,u}}},60060:function(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},99383:function(e,t,n){var i=n(80651)(n(4210),"DataView");e.exports=i},11724:function(e,t,n){var i=n(73206),r=n(59288),o=n(20740),a=n(40900),s=n(99762);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},82966:function(e,t,n){var i=n(46474),r=n(39243),o=4294967295;function a(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=o,this.__views__=[]}a.prototype=i(r.prototype),a.prototype.constructor=a,e.exports=a},87889:function(e,t,n){var i=n(89330),r=n(12671),o=n(15960),a=n(34508),s=n(56062);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},88936:function(e,t,n){var i=n(46474),r=n(39243);function o(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}o.prototype=i(r.prototype),o.prototype.constructor=o,e.exports=o},10628:function(e,t,n){var i=n(80651)(n(4210),"Map");e.exports=i},50042:function(e,t,n){var i=n(78846),r=n(53799),o=n(15778),a=n(53032),s=n(70420);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},89883:function(e,t,n){var i=n(80651)(n(4210),"Promise");e.exports=i},55092:function(e,t,n){var i=n(80651)(n(4210),"Set");e.exports=i},53530:function(e,t,n){var i=n(50042),r=n(18892),o=n(77750);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new i;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=r,a.prototype.has=o,e.exports=a},48368:function(e,t,n){var i=n(87889),r=n(68913),o=n(58444),a=n(7606),s=n(85993),u=n(11987);function l(e){var t=this.__data__=new i(e);this.size=t.size}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},96298:function(e,t,n){var i=n(4210).Symbol;e.exports=i},64345:function(e,t,n){var i=n(4210).Uint8Array;e.exports=i},16479:function(e,t,n){var i=n(80651)(n(4210),"WeakMap");e.exports=i},75049:function(e){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},50294:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}},42498:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}},43938:function(e,t,n){var i=n(5001);e.exports=function(e,t){return!!(null==e?0:e.length)&&i(e,t,0)>-1}},53020:function(e){e.exports=function(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}},42311:function(e,t,n){var i=n(5813),r=n(43917),o=n(39262),a=n(76966),s=n(47247),u=n(57421),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),c=!n&&r(e),d=!n&&!c&&a(e),h=!n&&!c&&!d&&u(e),f=n||c||d||h,p=f?i(e.length,String):[],g=p.length;for(var v in e)!t&&!l.call(e,v)||f&&("length"==v||d&&("offset"==v||"parent"==v)||h&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||s(v,g))||p.push(v);return p}},79746:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}},96827:function(e){e.exports=function(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}},63102:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}},49402:function(e,t,n){var i=n(34778),r=n(93841),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];o.call(e,t)&&r(a,n)&&(void 0!==n||t in e)||i(e,t,n)}},71394:function(e,t,n){var i=n(93841);e.exports=function(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}},68007:function(e,t,n){var i=n(77516),r=n(66005);e.exports=function(e,t){return e&&i(t,r(t),e)}},62029:function(e,t,n){var i=n(77516),r=n(94370);e.exports=function(e,t){return e&&i(t,r(t),e)}},34778:function(e,t,n){var i=n(53789);e.exports=function(e,t,n){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},60301:function(e,t,n){var i=n(48368),r=n(50294),o=n(49402),a=n(68007),s=n(62029),u=n(19130),l=n(91342),c=n(54801),d=n(88333),h=n(72038),f=n(73561),p=n(84047),g=n(50665),v=n(72280),m=n(59645),_=n(39262),y=n(76966),b=n(64818),w=n(13108),C=n(76095),k=n(66005),S=1,x=2,L=4,E="[object Arguments]",N="[object Function]",D="[object GeneratorFunction]",M="[object Object]",T={};T[E]=T["[object Array]"]=T["[object ArrayBuffer]"]=T["[object DataView]"]=T["[object Boolean]"]=T["[object Date]"]=T["[object Float32Array]"]=T["[object Float64Array]"]=T["[object Int8Array]"]=T["[object Int16Array]"]=T["[object Int32Array]"]=T["[object Map]"]=T["[object Number]"]=T[M]=T["[object RegExp]"]=T["[object Set]"]=T["[object String]"]=T["[object Symbol]"]=T["[object Uint8Array]"]=T["[object Uint8ClampedArray]"]=T["[object Uint16Array]"]=T["[object Uint32Array]"]=!0,T["[object Error]"]=T[N]=T["[object WeakMap]"]=!1,e.exports=function e(t,n,O,I,A,R){var P,Z=n&S,F=n&x,j=n&L;if(O&&(P=A?O(t,I,A,R):O(t)),void 0!==P)return P;if(!w(t))return t;var H=_(t);if(H){if(P=g(t),!Z)return l(t,P)}else{var B=p(t),z=B==N||B==D;if(y(t))return u(t,Z);if(B==M||B==E||z&&!A){if(P=F||z?{}:m(t),!Z)return F?d(t,s(P,t)):c(t,a(P,t))}else{if(!T[B])return A?t:{};P=v(t,B,Z)}}R||(R=new i);var W=R.get(t);if(W)return W;if(R.set(t,P),C(t))return t.forEach((function(i){P.add(e(i,n,O,i,t,R))})),P;if(b(t))return t.forEach((function(i,r){P.set(r,e(i,n,O,r,t,R))})),P;var V=j?F?f:h:F?keysIn:k,Y=H?void 0:V(t);return r(Y||t,(function(i,r){Y&&(i=t[r=i]),o(P,r,e(i,n,O,r,t,R))})),P}},46474:function(e,t,n){var i=n(13108),r=Object.create,o=function(){function e(){}return function(t){if(!i(t))return{};if(r)return r(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},81297:function(e,t,n){var i=n(34644),r=n(92788)(i);e.exports=r},21765:function(e){e.exports=function(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}},31368:function(e,t,n){var i=n(96827),r=n(25812);e.exports=function e(t,n,o,a,s){var u=-1,l=t.length;for(o||(o=r),s||(s=[]);++u<l;){var c=t[u];n>0&&o(c)?n>1?e(c,n-1,o,a,s):i(s,c):a||(s[s.length]=c)}return s}},66186:function(e,t,n){var i=n(87388)();e.exports=i},34644:function(e,t,n){var i=n(66186),r=n(66005);e.exports=function(e,t){return e&&i(e,t,r)}},48661:function(e,t,n){var i=n(33576),r=n(55852);e.exports=function(e,t){for(var n=0,o=(t=i(t,e)).length;null!=e&&n<o;)e=e[r(t[n++])];return n&&n==o?e:void 0}},30014:function(e,t,n){var i=n(96827),r=n(39262);e.exports=function(e,t,n){var o=t(e);return r(e)?o:i(o,n(e))}},46316:function(e,t,n){var i=n(96298),r=n(30636),o=n(86861),a="[object Null]",s="[object Undefined]",u=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?r(e):o(e)}},83937:function(e){e.exports=function(e,t){return null!=e&&t in Object(e)}},5001:function(e,t,n){var i=n(21765),r=n(55815),o=n(29011);e.exports=function(e,t,n){return t===t?o(e,t,n):i(e,r,n)}},13175:function(e,t,n){var i=n(46316),r=n(71983),o="[object Arguments]";e.exports=function(e){return r(e)&&i(e)==o}},1831:function(e,t,n){var i=n(35986),r=n(71983);e.exports=function e(t,n,o,a,s){return t===n||(null==t||null==n||!r(t)&&!r(n)?t!==t&&n!==n:i(t,n,o,a,e,s))}},35986:function(e,t,n){var i=n(48368),r=n(29435),o=n(15893),a=n(12553),s=n(84047),u=n(39262),l=n(76966),c=n(57421),d=1,h="[object Arguments]",f="[object Array]",p="[object Object]",g=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,v,m,_){var y=u(e),b=u(t),w=y?f:s(e),C=b?f:s(t),k=(w=w==h?p:w)==p,S=(C=C==h?p:C)==p,x=w==C;if(x&&l(e)){if(!l(t))return!1;y=!0,k=!1}if(x&&!k)return _||(_=new i),y||c(e)?r(e,t,n,v,m,_):o(e,t,w,n,v,m,_);if(!(n&d)){var L=k&&g.call(e,"__wrapped__"),E=S&&g.call(t,"__wrapped__");if(L||E){var N=L?e.value():e,D=E?t.value():t;return _||(_=new i),m(N,D,n,v,_)}}return!!x&&(_||(_=new i),a(e,t,n,v,m,_))}},57535:function(e,t,n){var i=n(84047),r=n(71983),o="[object Map]";e.exports=function(e){return r(e)&&i(e)==o}},90897:function(e,t,n){var i=n(48368),r=n(1831),o=1,a=2;e.exports=function(e,t,n,s){var u=n.length,l=u,c=!s;if(null==e)return!l;for(e=Object(e);u--;){var d=n[u];if(c&&d[2]?d[1]!==e[d[0]]:!(d[0]in e))return!1}for(;++u<l;){var h=(d=n[u])[0],f=e[h],p=d[1];if(c&&d[2]){if(void 0===f&&!(h in e))return!1}else{var g=new i;if(s)var v=s(f,p,h,e,t,g);if(!(void 0===v?r(p,f,o|a,s,g):v))return!1}}return!0}},55815:function(e){e.exports=function(e){return e!==e}},54437:function(e,t,n){var i=n(99539),r=n(73095),o=n(13108),a=n(69913),s=/^\[object .+?Constructor\]$/,u=Function.prototype,l=Object.prototype,c=u.toString,d=l.hasOwnProperty,h=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||r(e))&&(i(e)?h:s).test(a(e))}},19543:function(e,t,n){var i=n(84047),r=n(71983),o="[object Set]";e.exports=function(e){return r(e)&&i(e)==o}},65965:function(e,t,n){var i=n(46316),r=n(13392),o=n(71983),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&r(e.length)&&!!a[i(e)]}},19829:function(e,t,n){var i=n(1732),r=n(14963),o=n(70396),a=n(39262),s=n(44149);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?r(e[0],e[1]):i(e):s(e)}},30675:function(e,t,n){var i=n(965),r=n(96379),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return r(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},76085:function(e,t,n){var i=n(13108),r=n(965),o=n(27732),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return o(e);var t=r(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},39243:function(e){e.exports=function(){}},61841:function(e,t,n){var i=n(81297),r=n(14925);e.exports=function(e,t){var n=-1,o=r(e)?Array(e.length):[];return i(e,(function(e,i,r){o[++n]=t(e,i,r)})),o}},1732:function(e,t,n){var i=n(90897),r=n(63718),o=n(86706);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||i(n,e,t)}}},14963:function(e,t,n){var i=n(1831),r=n(93128),o=n(60693),a=n(24445),s=n(83052),u=n(86706),l=n(55852),c=1,d=2;e.exports=function(e,t){return a(e)&&s(t)?u(l(e),t):function(n){var a=r(n,e);return void 0===a&&a===t?o(n,e):i(t,a,c|d)}}},33457:function(e,t,n){var i=n(79746),r=n(19829),o=n(61841),a=n(69411),s=n(35313),u=n(15323),l=n(70396);e.exports=function(e,t,n){var c=-1;t=i(t.length?t:[l],s(r));var d=o(e,(function(e,n,r){return{criteria:i(t,(function(t){return t(e)})),index:++c,value:e}}));return a(d,(function(e,t){return u(e,t,n)}))}},95391:function(e){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},35087:function(e,t,n){var i=n(48661);e.exports=function(e){return function(t){return i(t,e)}}},52850:function(e,t,n){var i=n(70396),r=n(80780),o=n(21762);e.exports=function(e,t){return o(r(e,t,i),e+"")}},32559:function(e,t,n){var i=n(49402),r=n(33576),o=n(47247),a=n(13108),s=n(55852);e.exports=function(e,t,n,u){if(!a(e))return e;for(var l=-1,c=(t=r(t,e)).length,d=c-1,h=e;null!=h&&++l<c;){var f=s(t[l]),p=n;if(l!=d){var g=h[f];void 0===(p=u?u(g,f,h):void 0)&&(p=a(g)?g:o(t[l+1])?[]:{})}i(h,f,p),h=h[f]}return e}},5105:function(e,t,n){var i=n(70396),r=n(51485),o=r?function(e,t){return r.set(e,t),e}:i;e.exports=o},14360:function(e,t,n){var i=n(41853),r=n(53789),o=n(70396),a=r?function(e,t){return r(e,"toString",{configurable:!0,enumerable:!1,value:i(t),writable:!0})}:o;e.exports=a},80296:function(e){e.exports=function(e,t,n){var i=-1,r=e.length;t<0&&(t=-t>r?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(r);++i<r;)o[i]=e[i+t];return o}},69411:function(e){e.exports=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}},5813:function(e){e.exports=function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}},24714:function(e,t,n){var i=n(96298),r=n(79746),o=n(39262),a=n(89718),s=1/0,u=i?i.prototype:void 0,l=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return r(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},35313:function(e){e.exports=function(e){return function(t){return e(t)}}},73911:function(e,t,n){var i=n(53530),r=n(43938),o=n(53020),a=n(15176),s=n(56571),u=n(86483),l=200;e.exports=function(e,t,n){var c=-1,d=r,h=e.length,f=!0,p=[],g=p;if(n)f=!1,d=o;else if(h>=l){var v=t?null:s(e);if(v)return u(v);f=!1,d=a,g=new i}else g=t?[]:p;e:for(;++c<h;){var m=e[c],_=t?t(m):m;if(m=n||0!==m?m:0,f&&_===_){for(var y=g.length;y--;)if(g[y]===_)continue e;t&&g.push(_),p.push(m)}else d(g,_,n)||(g!==p&&g.push(_),p.push(m))}return p}},88343:function(e,t,n){var i=n(33576),r=n(51478),o=n(47728),a=n(55852);e.exports=function(e,t){return t=i(t,e),null==(e=o(e,t))||delete e[a(r(t))]}},15176:function(e){e.exports=function(e,t){return e.has(t)}},33576:function(e,t,n){var i=n(39262),r=n(24445),o=n(34786),a=n(20403);e.exports=function(e,t){return i(e)?e:r(e,t)?[e]:o(a(e))}},78370:function(e,t,n){var i=n(64345);e.exports=function(e){var t=new e.constructor(e.byteLength);return new i(t).set(new i(e)),t}},19130:function(e,t,n){e=n.nmd(e);var i=n(4210),r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r?i.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,i=s?s(n):new e.constructor(n);return e.copy(i),i}},45587:function(e,t,n){var i=n(78370);e.exports=function(e,t){var n=t?i(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},76327:function(e){var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},75036:function(e,t,n){var i=n(96298),r=i?i.prototype:void 0,o=r?r.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},12528:function(e,t,n){var i=n(78370);e.exports=function(e,t){var n=t?i(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},83844:function(e,t,n){var i=n(89718);e.exports=function(e,t){if(e!==t){var n=void 0!==e,r=null===e,o=e===e,a=i(e),s=void 0!==t,u=null===t,l=t===t,c=i(t);if(!u&&!c&&!a&&e>t||a&&s&&l&&!u&&!c||r&&s&&l||!n&&l||!o)return 1;if(!r&&!a&&!c&&e<t||c&&n&&o&&!r&&!a||u&&n&&o||!s&&o||!l)return-1}return 0}},15323:function(e,t,n){var i=n(83844);e.exports=function(e,t,n){for(var r=-1,o=e.criteria,a=t.criteria,s=o.length,u=n.length;++r<s;){var l=i(o[r],a[r]);if(l)return r>=u?l:l*("desc"==n[r]?-1:1)}return e.index-t.index}},78250:function(e){var t=Math.max;e.exports=function(e,n,i,r){for(var o=-1,a=e.length,s=i.length,u=-1,l=n.length,c=t(a-s,0),d=Array(l+c),h=!r;++u<l;)d[u]=n[u];for(;++o<s;)(h||o<a)&&(d[i[o]]=e[o]);for(;c--;)d[u++]=e[o++];return d}},83995:function(e){var t=Math.max;e.exports=function(e,n,i,r){for(var o=-1,a=e.length,s=-1,u=i.length,l=-1,c=n.length,d=t(a-u,0),h=Array(d+c),f=!r;++o<d;)h[o]=e[o];for(var p=o;++l<c;)h[p+l]=n[l];for(;++s<u;)(f||o<a)&&(h[p+i[s]]=e[o++]);return h}},91342:function(e){e.exports=function(e,t){var n=-1,i=e.length;for(t||(t=Array(i));++n<i;)t[n]=e[n];return t}},77516:function(e,t,n){var i=n(49402),r=n(34778);e.exports=function(e,t,n,o){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var l=t[s],c=o?o(n[l],e[l],l,n,e):void 0;void 0===c&&(c=e[l]),a?r(n,l,c):i(n,l,c)}return n}},54801:function(e,t,n){var i=n(77516),r=n(76054);e.exports=function(e,t){return i(e,r(e),t)}},88333:function(e,t,n){var i=n(77516),r=n(5226);e.exports=function(e,t){return i(e,r(e),t)}},79695:function(e,t,n){var i=n(4210)["__core-js_shared__"];e.exports=i},58337:function(e){e.exports=function(e,t){for(var n=e.length,i=0;n--;)e[n]===t&&++i;return i}},92788:function(e,t,n){var i=n(14925);e.exports=function(e,t){return function(n,r){if(null==n)return n;if(!i(n))return e(n,r);for(var o=n.length,a=t?o:-1,s=Object(n);(t?a--:++a<o)&&!1!==r(s[a],a,s););return n}}},87388:function(e){e.exports=function(e){return function(t,n,i){for(var r=-1,o=Object(t),a=i(t),s=a.length;s--;){var u=a[e?s:++r];if(!1===n(o[u],u,o))break}return t}}},1320:function(e,t,n){var i=n(7064),r=n(4210),o=1;e.exports=function(e,t,n){var a=t&o,s=i(e);return function t(){return(this&&this!==r&&this instanceof t?s:e).apply(a?n:this,arguments)}}},7064:function(e,t,n){var i=n(46474),r=n(13108);e.exports=function(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=i(e.prototype),o=e.apply(n,t);return r(o)?o:n}}},67808:function(e,t,n){var i=n(75049),r=n(7064),o=n(24470),a=n(910),s=n(54802),u=n(64791),l=n(4210);e.exports=function(e,t,n){var c=r(e);return function r(){for(var d=arguments.length,h=Array(d),f=d,p=s(r);f--;)h[f]=arguments[f];var g=d<3&&h[0]!==p&&h[d-1]!==p?[]:u(h,p);return(d-=g.length)<n?a(e,t,o,r.placeholder,void 0,h,g,void 0,void 0,n-d):i(this&&this!==l&&this instanceof r?c:e,this,h)}}},74103:function(e,t,n){var i=n(19829),r=n(14925),o=n(66005);e.exports=function(e){return function(t,n,a){var s=Object(t);if(!r(t)){var u=i(n,3);t=o(t),n=function(e){return u(s[e],e,s)}}var l=e(t,n,a);return l>-1?s[u?t[l]:l]:void 0}}},91290:function(e,t,n){var i=n(88936),r=n(95057),o=n(84097),a=n(70492),s=n(39262),u=n(35804),l="Expected a function",c=8,d=32,h=128,f=256;e.exports=function(e){return r((function(t){var n=t.length,r=n,p=i.prototype.thru;for(e&&t.reverse();r--;){var g=t[r];if("function"!=typeof g)throw new TypeError(l);if(p&&!v&&"wrapper"==a(g))var v=new i([],!0)}for(r=v?r:n;++r<n;){g=t[r];var m=a(g),_="wrapper"==m?o(g):void 0;v=_&&u(_[0])&&_[1]==(h|c|d|f)&&!_[4].length&&1==_[9]?v[a(_[0])].apply(v,_[3]):1==g.length&&u(g)?v[m]():v.thru(g)}return function(){var e=arguments,i=e[0];if(v&&1==e.length&&s(i))return v.plant(i).value();for(var r=0,o=n?t[r].apply(this,e):i;++r<n;)o=t[r].call(this,o);return o}}))}},24470:function(e,t,n){var i=n(78250),r=n(83995),o=n(58337),a=n(7064),s=n(910),u=n(54802),l=n(29358),c=n(64791),d=n(4210),h=1,f=2,p=8,g=16,v=128,m=512;e.exports=function e(t,n,_,y,b,w,C,k,S,x){var L=n&v,E=n&h,N=n&f,D=n&(p|g),M=n&m,T=N?void 0:a(t);return function h(){for(var f=arguments.length,p=Array(f),g=f;g--;)p[g]=arguments[g];if(D)var v=u(h),m=o(p,v);if(y&&(p=i(p,y,b,D)),w&&(p=r(p,w,C,D)),f-=m,D&&f<x){var O=c(p,v);return s(t,n,e,h.placeholder,_,p,O,k,S,x-f)}var I=E?_:this,A=N?I[t]:t;return f=p.length,k?p=l(p,k):M&&f>1&&p.reverse(),L&&S<f&&(p.length=S),this&&this!==d&&this instanceof h&&(A=T||a(A)),A.apply(I,p)}}},13299:function(e,t,n){var i=n(75049),r=n(7064),o=n(4210),a=1;e.exports=function(e,t,n,s){var u=t&a,l=r(e);return function t(){for(var r=-1,a=arguments.length,c=-1,d=s.length,h=Array(d+a),f=this&&this!==o&&this instanceof t?l:e;++c<d;)h[c]=s[c];for(;a--;)h[c++]=arguments[++r];return i(f,u?n:this,h)}}},910:function(e,t,n){var i=n(35804),r=n(85998),o=n(39565),a=1,s=2,u=4,l=8,c=32,d=64;e.exports=function(e,t,n,h,f,p,g,v,m,_){var y=t&l;t|=y?c:d,(t&=~(y?d:c))&u||(t&=~(a|s));var b=[e,t,f,y?p:void 0,y?g:void 0,y?void 0:p,y?void 0:g,v,m,_],w=n.apply(void 0,b);return i(e)&&r(w,b),w.placeholder=h,o(w,e,t)}},56571:function(e,t,n){var i=n(55092),r=n(4395),o=n(86483),a=i&&1/o(new i([,-0]))[1]==1/0?function(e){return new i(e)}:r;e.exports=a},56541:function(e,t,n){var i=n(5105),r=n(1320),o=n(67808),a=n(24470),s=n(13299),u=n(84097),l=n(83289),c=n(85998),d=n(39565),h=n(33061),f="Expected a function",p=1,g=2,v=8,m=16,_=32,y=64,b=Math.max;e.exports=function(e,t,n,w,C,k,S,x){var L=t&g;if(!L&&"function"!=typeof e)throw new TypeError(f);var E=w?w.length:0;if(E||(t&=~(_|y),w=C=void 0),S=void 0===S?S:b(h(S),0),x=void 0===x?x:h(x),E-=C?C.length:0,t&y){var N=w,D=C;w=C=void 0}var M=L?void 0:u(e),T=[e,t,n,w,C,N,D,k,S,x];if(M&&l(T,M),e=T[0],t=T[1],n=T[2],w=T[3],C=T[4],!(x=T[9]=void 0===T[9]?L?0:e.length:b(T[9]-E,0))&&t&(v|m)&&(t&=~(v|m)),t&&t!=p)O=t==v||t==m?o(e,t,x):t!=_&&t!=(p|_)||C.length?a.apply(void 0,T):s(e,t,n,w);else var O=r(e,t,n);return d((M?i:c)(O,T),e,t)}},1594:function(e,t,n){var i=n(267);e.exports=function(e){return i(e)?void 0:e}},53789:function(e,t,n){var i=n(80651),r=function(){try{var e=i(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=r},29435:function(e,t,n){var i=n(53530),r=n(63102),o=n(15176),a=1,s=2;e.exports=function(e,t,n,u,l,c){var d=n&a,h=e.length,f=t.length;if(h!=f&&!(d&&f>h))return!1;var p=c.get(e);if(p&&c.get(t))return p==t;var g=-1,v=!0,m=n&s?new i:void 0;for(c.set(e,t),c.set(t,e);++g<h;){var _=e[g],y=t[g];if(u)var b=d?u(y,_,g,t,e,c):u(_,y,g,e,t,c);if(void 0!==b){if(b)continue;v=!1;break}if(m){if(!r(t,(function(e,t){if(!o(m,t)&&(_===e||l(_,e,n,u,c)))return m.push(t)}))){v=!1;break}}else if(_!==y&&!l(_,y,n,u,c)){v=!1;break}}return c.delete(e),c.delete(t),v}},15893:function(e,t,n){var i=n(96298),r=n(64345),o=n(93841),a=n(29435),s=n(30040),u=n(86483),l=1,c=2,d="[object Boolean]",h="[object Date]",f="[object Error]",p="[object Map]",g="[object Number]",v="[object RegExp]",m="[object Set]",_="[object String]",y="[object Symbol]",b="[object ArrayBuffer]",w="[object DataView]",C=i?i.prototype:void 0,k=C?C.valueOf:void 0;e.exports=function(e,t,n,i,C,S,x){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case b:return!(e.byteLength!=t.byteLength||!S(new r(e),new r(t)));case d:case h:case g:return o(+e,+t);case f:return e.name==t.name&&e.message==t.message;case v:case _:return e==t+"";case p:var L=s;case m:var E=i&l;if(L||(L=u),e.size!=t.size&&!E)return!1;var N=x.get(e);if(N)return N==t;i|=c,x.set(e,t);var D=a(L(e),L(t),i,C,S,x);return x.delete(e),D;case y:if(k)return k.call(e)==k.call(t)}return!1}},12553:function(e,t,n){var i=n(72038),r=1,o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,s,u){var l=n&r,c=i(e),d=c.length;if(d!=i(t).length&&!l)return!1;for(var h=d;h--;){var f=c[h];if(!(l?f in t:o.call(t,f)))return!1}var p=u.get(e);if(p&&u.get(t))return p==t;var g=!0;u.set(e,t),u.set(t,e);for(var v=l;++h<d;){var m=e[f=c[h]],_=t[f];if(a)var y=l?a(_,m,f,t,e,u):a(m,_,f,e,t,u);if(!(void 0===y?m===_||s(m,_,n,a,u):y)){g=!1;break}v||(v="constructor"==f)}if(g&&!v){var b=e.constructor,w=t.constructor;b==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w||(g=!1)}return u.delete(e),u.delete(t),g}},95057:function(e,t,n){var i=n(68369),r=n(80780),o=n(21762);e.exports=function(e){return o(r(e,void 0,i),e+"")}},86876:function(e,t,n){var i="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=i},72038:function(e,t,n){var i=n(30014),r=n(76054),o=n(66005);e.exports=function(e){return i(e,o,r)}},73561:function(e,t,n){var i=n(30014),r=n(5226),o=n(94370);e.exports=function(e){return i(e,o,r)}},84097:function(e,t,n){var i=n(51485),r=n(4395),o=i?function(e){return i.get(e)}:r;e.exports=o},70492:function(e,t,n){var i=n(45947),r=Object.prototype.hasOwnProperty;e.exports=function(e){for(var t=e.name+"",n=i[t],o=r.call(i,t)?n.length:0;o--;){var a=n[o],s=a.func;if(null==s||s==e)return a.name}return t}},54802:function(e){e.exports=function(e){return e.placeholder}},95680:function(e,t,n){var i=n(94030);e.exports=function(e,t){var n=e.__data__;return i(t)?n["string"==typeof t?"string":"hash"]:n.map}},63718:function(e,t,n){var i=n(83052),r=n(66005);e.exports=function(e){for(var t=r(e),n=t.length;n--;){var o=t[n],a=e[o];t[n]=[o,a,i(a)]}return t}},80651:function(e,t,n){var i=n(54437),r=n(47722);e.exports=function(e,t){var n=r(e,t);return i(n)?n:void 0}},2629:function(e,t,n){var i=n(16648)(Object.getPrototypeOf,Object);e.exports=i},30636:function(e,t,n){var i=n(96298),r=Object.prototype,o=r.hasOwnProperty,a=r.toString,s=i?i.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var i=!0}catch(u){}var r=a.call(e);return i&&(t?e[s]=n:delete e[s]),r}},76054:function(e,t,n){var i=n(42498),r=n(8304),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),i(a(e),(function(t){return o.call(e,t)})))}:r;e.exports=s},5226:function(e,t,n){var i=n(96827),r=n(2629),o=n(76054),a=n(8304),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)i(t,o(e)),e=r(e);return t}:a;e.exports=s},84047:function(e,t,n){var i=n(99383),r=n(10628),o=n(89883),a=n(55092),s=n(16479),u=n(46316),l=n(69913),c="[object Map]",d="[object Promise]",h="[object Set]",f="[object WeakMap]",p="[object DataView]",g=l(i),v=l(r),m=l(o),_=l(a),y=l(s),b=u;(i&&b(new i(new ArrayBuffer(1)))!=p||r&&b(new r)!=c||o&&b(o.resolve())!=d||a&&b(new a)!=h||s&&b(new s)!=f)&&(b=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,i=n?l(n):"";if(i)switch(i){case g:return p;case v:return c;case m:return d;case _:return h;case y:return f}return t}),e.exports=b},47722:function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},49906:function(e){var t=/\{\n\/\* \[wrapped with (.+)\] \*/,n=/,? & /;e.exports=function(e){var i=e.match(t);return i?i[1].split(n):[]}},5367:function(e,t,n){var i=n(33576),r=n(43917),o=n(39262),a=n(47247),s=n(13392),u=n(55852);e.exports=function(e,t,n){for(var l=-1,c=(t=i(t,e)).length,d=!1;++l<c;){var h=u(t[l]);if(!(d=null!=e&&n(e,h)))break;e=e[h]}return d||++l!=c?d:!!(c=null==e?0:e.length)&&s(c)&&a(h,c)&&(o(e)||r(e))}},73206:function(e,t,n){var i=n(53788);e.exports=function(){this.__data__=i?i(null):{},this.size=0}},59288:function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},20740:function(e,t,n){var i=n(53788),r="__lodash_hash_undefined__",o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(i){var n=t[e];return n===r?void 0:n}return o.call(t,e)?t[e]:void 0}},40900:function(e,t,n){var i=n(53788),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return i?void 0!==t[e]:r.call(t,e)}},99762:function(e,t,n){var i=n(53788),r="__lodash_hash_undefined__";e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=i&&void 0===t?r:t,this}},50665:function(e){var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,i=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(i.index=e.index,i.input=e.input),i}},72280:function(e,t,n){var i=n(78370),r=n(45587),o=n(76327),a=n(75036),s=n(12528),u="[object Boolean]",l="[object Date]",c="[object Map]",d="[object Number]",h="[object RegExp]",f="[object Set]",p="[object String]",g="[object Symbol]",v="[object ArrayBuffer]",m="[object DataView]",_="[object Float32Array]",y="[object Float64Array]",b="[object Int8Array]",w="[object Int16Array]",C="[object Int32Array]",k="[object Uint8Array]",S="[object Uint8ClampedArray]",x="[object Uint16Array]",L="[object Uint32Array]";e.exports=function(e,t,n){var E=e.constructor;switch(t){case v:return i(e);case u:case l:return new E(+e);case m:return r(e,n);case _:case y:case b:case w:case C:case k:case S:case x:case L:return s(e,n);case c:return new E;case d:case p:return new E(e);case h:return o(e);case f:return new E;case g:return a(e)}}},59645:function(e,t,n){var i=n(46474),r=n(2629),o=n(965);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:i(r(e))}},63714:function(e){var t=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;e.exports=function(e,n){var i=n.length;if(!i)return e;var r=i-1;return n[r]=(i>1?"& ":"")+n[r],n=n.join(i>2?", ":" "),e.replace(t,"{\n/* [wrapped with "+n+"] */\n")}},25812:function(e,t,n){var i=n(96298),r=n(43917),o=n(39262),a=i?i.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||r(e)||!!(a&&e&&e[a])}},47247:function(e){var t=9007199254740991,n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,i){var r=typeof e;return!!(i=null==i?t:i)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e<i}},59072:function(e,t,n){var i=n(93841),r=n(14925),o=n(47247),a=n(13108);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?r(n)&&o(t,n.length):"string"==s&&t in n)&&i(n[t],e)}},24445:function(e,t,n){var i=n(39262),r=n(89718),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(i(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}},94030:function(e){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},35804:function(e,t,n){var i=n(82966),r=n(84097),o=n(70492),a=n(83440);e.exports=function(e){var t=o(e),n=a[t];if("function"!=typeof n||!(t in i.prototype))return!1;if(e===n)return!0;var s=r(n);return!!s&&e===s[0]}},73095:function(e,t,n){var i=n(79695),r=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!r&&r in e}},965:function(e){var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},83052:function(e,t,n){var i=n(13108);e.exports=function(e){return e===e&&!i(e)}},89330:function(e){e.exports=function(){this.__data__=[],this.size=0}},12671:function(e,t,n){var i=n(71394),r=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=i(t,e);return!(n<0)&&(n==t.length-1?t.pop():r.call(t,n,1),--this.size,!0)}},15960:function(e,t,n){var i=n(71394);e.exports=function(e){var t=this.__data__,n=i(t,e);return n<0?void 0:t[n][1]}},34508:function(e,t,n){var i=n(71394);e.exports=function(e){return i(this.__data__,e)>-1}},56062:function(e,t,n){var i=n(71394);e.exports=function(e,t){var n=this.__data__,r=i(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}},78846:function(e,t,n){var i=n(11724),r=n(87889),o=n(10628);e.exports=function(){this.size=0,this.__data__={hash:new i,map:new(o||r),string:new i}}},53799:function(e,t,n){var i=n(95680);e.exports=function(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}},15778:function(e,t,n){var i=n(95680);e.exports=function(e){return i(this,e).get(e)}},53032:function(e,t,n){var i=n(95680);e.exports=function(e){return i(this,e).has(e)}},70420:function(e,t,n){var i=n(95680);e.exports=function(e,t){var n=i(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}},30040:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}},86706:function(e){e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},77751:function(e,t,n){var i=n(95130),r=500;e.exports=function(e){var t=i(e,(function(e){return n.size===r&&n.clear(),e})),n=t.cache;return t}},83289:function(e,t,n){var i=n(78250),r=n(83995),o=n(64791),a="__lodash_placeholder__",s=1,u=2,l=4,c=8,d=128,h=256,f=Math.min;e.exports=function(e,t){var n=e[1],p=t[1],g=n|p,v=g<(s|u|d),m=p==d&&n==c||p==d&&n==h&&e[7].length<=t[8]||p==(d|h)&&t[7].length<=t[8]&&n==c;if(!v&&!m)return e;p&s&&(e[2]=t[2],g|=n&s?0:l);var _=t[3];if(_){var y=e[3];e[3]=y?i(y,_,t[4]):_,e[4]=y?o(e[3],a):t[4]}return(_=t[5])&&(y=e[5],e[5]=y?r(y,_,t[6]):_,e[6]=y?o(e[5],a):t[6]),(_=t[7])&&(e[7]=_),p&d&&(e[8]=null==e[8]?t[8]:f(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=g,e}},51485:function(e,t,n){var i=n(16479),r=i&&new i;e.exports=r},53788:function(e,t,n){var i=n(80651)(Object,"create");e.exports=i},96379:function(e,t,n){var i=n(16648)(Object.keys,Object);e.exports=i},27732:function(e){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},63138:function(e,t,n){e=n.nmd(e);var i=n(86876),r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r&&i.process,s=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=s},86861:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},16648:function(e){e.exports=function(e,t){return function(n){return e(t(n))}}},80780:function(e,t,n){var i=n(75049),r=Math.max;e.exports=function(e,t,n){return t=r(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=r(o.length-t,0),u=Array(s);++a<s;)u[a]=o[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=o[a];return l[t]=n(u),i(e,this,l)}}},47728:function(e,t,n){var i=n(48661),r=n(80296);e.exports=function(e,t){return t.length<2?e:i(e,r(t,0,-1))}},45947:function(e){e.exports={}},29358:function(e,t,n){var i=n(91342),r=n(47247),o=Math.min;e.exports=function(e,t){for(var n=e.length,a=o(t.length,n),s=i(e);a--;){var u=t[a];e[a]=r(u,n)?s[u]:void 0}return e}},64791:function(e){var t="__lodash_placeholder__";e.exports=function(e,n){for(var i=-1,r=e.length,o=0,a=[];++i<r;){var s=e[i];s!==n&&s!==t||(e[i]=t,a[o++]=i)}return a}},4210:function(e,t,n){var i=n(86876),r="object"==typeof self&&self&&self.Object===Object&&self,o=i||r||Function("return this")();e.exports=o},18892:function(e){var t="__lodash_hash_undefined__";e.exports=function(e){return this.__data__.set(e,t),this}},77750:function(e){e.exports=function(e){return this.__data__.has(e)}},85998:function(e,t,n){var i=n(5105),r=n(87442)(i);e.exports=r},86483:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},21762:function(e,t,n){var i=n(14360),r=n(87442)(i);e.exports=r},39565:function(e,t,n){var i=n(49906),r=n(63714),o=n(21762),a=n(5832);e.exports=function(e,t,n){var s=t+"";return o(e,r(s,a(i(s),n)))}},87442:function(e){var t=800,n=16,i=Date.now;e.exports=function(e){var r=0,o=0;return function(){var a=i(),s=n-(a-o);if(o=a,s>0){if(++r>=t)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},68913:function(e,t,n){var i=n(87889);e.exports=function(){this.__data__=new i,this.size=0}},58444:function(e){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7606:function(e){e.exports=function(e){return this.__data__.get(e)}},85993:function(e){e.exports=function(e){return this.__data__.has(e)}},11987:function(e,t,n){var i=n(87889),r=n(10628),o=n(50042),a=200;e.exports=function(e,t){var n=this.__data__;if(n instanceof i){var s=n.__data__;if(!r||s.length<a-1)return s.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(s)}return n.set(e,t),this.size=n.size,this}},29011:function(e){e.exports=function(e,t,n){for(var i=n-1,r=e.length;++i<r;)if(e[i]===t)return i;return-1}},34786:function(e,t,n){var i=n(77751),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=i((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(r,(function(e,n,i,r){t.push(i?r.replace(o,"$1"):n||e)})),t}));e.exports=a},55852:function(e,t,n){var i=n(89718),r=1/0;e.exports=function(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-r?"-0":t}},69913:function(e){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},5832:function(e,t,n){var i=n(50294),r=n(43938),o=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]];e.exports=function(e,t){return i(o,(function(n){var i="_."+n[0];t&n[1]&&!r(e,i)&&e.push(i)})),e.sort()}},94426:function(e,t,n){var i=n(82966),r=n(88936),o=n(91342);e.exports=function(e){if(e instanceof i)return e.clone();var t=new r(e.__wrapped__,e.__chain__);return t.__actions__=o(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}},83437:function(e,t,n){var i=n(56541),r=128;e.exports=function(e,t,n){return t=n?void 0:t,t=e&&null==t?e.length:t,i(e,r,void 0,void 0,void 0,void 0,t)}},31939:function(e,t,n){var i=n(60301),r=4;e.exports=function(e){return i(e,r)}},40794:function(e,t,n){var i=n(60301),r=1,o=4;e.exports=function(e){return i(e,r|o)}},41853:function(e){e.exports=function(e){return function(){return e}}},54211:function(e,t,n){var i=n(56541),r=8;function o(e,t,n){var a=i(e,r,void 0,void 0,void 0,void 0,void 0,t=n?void 0:t);return a.placeholder=o.placeholder,a}o.placeholder={},e.exports=o},93841:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},4218:function(e,t,n){var i=n(74103)(n(25742));e.exports=i},25742:function(e,t,n){var i=n(21765),r=n(19829),o=n(33061),a=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var u=null==n?0:o(n);return u<0&&(u=a(s+u,0)),i(e,r(t,3),u)}},68369:function(e,t,n){var i=n(31368);e.exports=function(e){return(null==e?0:e.length)?i(e,1):[]}},57968:function(e,t,n){var i=n(91290)();e.exports=i},46553:function(e,t,n){var i=n(970).runInContext();e.exports=n(81089)(i,i)},81089:function(e,t,n){var i=n(21864),r=n(37421),o=Array.prototype.push;function a(e,t){return 2==t?function(t,n){return e(t,n)}:function(t){return e(t)}}function s(e){for(var t=e?e.length:0,n=Array(t);t--;)n[t]=e[t];return n}function u(e,t){return function(){var n=arguments.length;if(n){for(var i=Array(n);n--;)i[n]=arguments[n];var r=i[0]=t.apply(void 0,i);return e.apply(void 0,i),r}}}e.exports=function e(t,n,l,c){var d="function"==typeof n,h=n===Object(n);if(h&&(c=l,l=n,n=void 0),null==l)throw new TypeError;c||(c={});var f={cap:!("cap"in c)||c.cap,curry:!("curry"in c)||c.curry,fixed:!("fixed"in c)||c.fixed,immutable:!("immutable"in c)||c.immutable,rearg:!("rearg"in c)||c.rearg},p=d?l:r,g="curry"in c&&c.curry,v="fixed"in c&&c.fixed,m="rearg"in c&&c.rearg,_=d?l.runInContext():void 0,y=d?l:{ary:t.ary,assign:t.assign,clone:t.clone,curry:t.curry,forEach:t.forEach,isArray:t.isArray,isError:t.isError,isFunction:t.isFunction,isWeakMap:t.isWeakMap,iteratee:t.iteratee,keys:t.keys,rearg:t.rearg,toInteger:t.toInteger,toPath:t.toPath},b=y.ary,w=y.assign,C=y.clone,k=y.curry,S=y.forEach,x=y.isArray,L=y.isError,E=y.isFunction,N=y.isWeakMap,D=y.keys,M=y.rearg,T=y.toInteger,O=y.toPath,I=D(i.aryMethod),A={castArray:function(e){return function(){var t=arguments[0];return x(t)?e(s(t)):e.apply(void 0,arguments)}},iteratee:function(e){return function(){var t=arguments[1],n=e(arguments[0],t),i=n.length;return f.cap&&"number"==typeof t?(t=t>2?t-2:1,i&&i<=t?n:a(n,t)):n}},mixin:function(e){return function(t){var n=this;if(!E(n))return e(n,Object(t));var i=[];return S(D(t),(function(e){E(t[e])&&i.push([e,n.prototype[e]])})),e(n,Object(t)),S(i,(function(e){var t=e[1];E(t)?n.prototype[e[0]]=t:delete n.prototype[e[0]]})),n}},nthArg:function(e){return function(t){var n=t<0?1:T(t)+1;return k(e(t),n)}},rearg:function(e){return function(t,n){var i=n?n.length:0;return k(e(t,n),i)}},runInContext:function(n){return function(i){return e(t,n(i),c)}}};function R(e,t){if(f.cap){var n=i.iterateeRearg[e];if(n)return function(e,t){return H(e,(function(e){var n=t.length;return function(e,t){return 2==t?function(t,n){return e.apply(void 0,arguments)}:function(t){return e.apply(void 0,arguments)}}(M(a(e,n),t),n)}))}(t,n);var r=!d&&i.iterateeAry[e];if(r)return function(e,t){return H(e,(function(e){return"function"==typeof e?a(e,t):e}))}(t,r)}return t}function P(e,t,n){if(f.fixed&&(v||!i.skipFixed[e])){var r=i.methodSpread[e],a=r&&r.start;return void 0===a?b(t,n):function(e,t){return function(){for(var n=arguments.length,i=n-1,r=Array(n);n--;)r[n]=arguments[n];var a=r[t],s=r.slice(0,t);return a&&o.apply(s,a),t!=i&&o.apply(s,r.slice(t+1)),e.apply(this,s)}}(t,a)}return t}function Z(e,t,n){return f.rearg&&n>1&&(m||!i.skipRearg[e])?M(t,i.methodRearg[e]||i.aryRearg[n]):t}function F(e,t){for(var n=-1,i=(t=O(t)).length,r=i-1,o=C(Object(e)),a=o;null!=a&&++n<i;){var s=t[n],u=a[s];null==u||E(u)||L(u)||N(u)||(a[s]=C(n==r?u:Object(u))),a=a[s]}return o}function j(t,n){var r=i.aliasToReal[t]||t,o=i.remap[r]||r,a=c;return function(t){var i=d?_:y,s=d?_[o]:n,u=w(w({},a),t);return e(i,r,s,u)}}function H(e,t){return function(){var n=arguments.length;if(!n)return e();for(var i=Array(n);n--;)i[n]=arguments[n];var r=f.rearg?0:n-1;return i[r]=t(i[r]),e.apply(void 0,i)}}function B(e,t,n){var r,o=i.aliasToReal[e]||e,a=t,l=A[o];return l?a=l(t):f.immutable&&(i.mutate.array[o]?a=u(t,s):i.mutate.object[o]?a=u(t,function(e){return function(t){return e({},t)}}(t)):i.mutate.set[o]&&(a=u(t,F))),S(I,(function(e){return S(i.aryMethod[e],(function(t){if(o==t){var n=i.methodSpread[o],s=n&&n.afterRearg;return r=s?P(o,Z(o,a,e),e):Z(o,P(o,a,e),e),r=function(e,t,n){return g||f.curry&&n>1?k(t,n):t}(0,r=R(o,r),e),!1}})),!r})),r||(r=a),r==t&&(r=g?k(r,1):function(){return t.apply(this,arguments)}),r.convert=j(o,t),r.placeholder=t.placeholder=n,r}if(!h)return B(n,l,p);var z=l,W=[];return S(I,(function(e){S(i.aryMethod[e],(function(e){var t=z[i.remap[e]||e];t&&W.push([e,B(e,t,z)])}))})),S(D(z),(function(e){var t=z[e];if("function"==typeof t){for(var n=W.length;n--;)if(W[n][0]==e)return;t.convert=j(e,t),W.push([e,t])}})),S(W,(function(e){z[e[0]]=e[1]})),z.convert=function(e){return z.runInContext.convert(e)(void 0)},z.placeholder=z,S(D(z),(function(e){S(i.realToAlias[e]||[],(function(t){z[t]=z[e]}))})),z}},21864:function(e,t){t.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},t.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},t.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},t.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},t.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},t.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},t.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},t.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},t.realToAlias=function(){var e=Object.prototype.hasOwnProperty,n=t.aliasToReal,i={};for(var r in n){var o=n[r];e.call(i,o)?i[o].push(r):i[o]=[r]}return i}(),t.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},t.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},t.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},27013:function(e,t,n){e.exports={ary:n(83437),assign:n(68007),clone:n(31939),curry:n(54211),forEach:n(50294),isArray:n(39262),isError:n(88718),isFunction:n(99539),isWeakMap:n(82406),iteratee:n(35587),keys:n(30675),rearg:n(95810),toInteger:n(33061),toPath:n(24216)}},98566:function(e,t,n){var i=n(81089),r=n(27013);e.exports=function(e,t,n){return i(r,e,t,n)}},54952:function(e,t,n){var i=n(98566)("flow",n(57968));i.placeholder=n(37421),e.exports=i},37421:function(e){e.exports={}},1990:function(e,t,n){var i=n(98566)("sortBy",n(39769));i.placeholder=n(37421),e.exports=i},26567:function(e,t,n){var i=n(98566)("uniqBy",n(50675));i.placeholder=n(37421),e.exports=i},93128:function(e,t,n){var i=n(48661);e.exports=function(e,t,n){var r=null==e?void 0:i(e,t);return void 0===r?n:r}},60693:function(e,t,n){var i=n(83937),r=n(5367);e.exports=function(e,t){return null!=e&&r(e,t,i)}},70396:function(e){e.exports=function(e){return e}},43917:function(e,t,n){var i=n(13175),r=n(71983),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,u=i(function(){return arguments}())?i:function(e){return r(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},39262:function(e){var t=Array.isArray;e.exports=t},14925:function(e,t,n){var i=n(99539),r=n(13392);e.exports=function(e){return null!=e&&r(e.length)&&!i(e)}},76966:function(e,t,n){e=n.nmd(e);var i=n(4210),r=n(54666),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,s=a&&a.exports===o?i.Buffer:void 0,u=(s?s.isBuffer:void 0)||r;e.exports=u},20061:function(e,t,n){var i=n(30675),r=n(84047),o=n(43917),a=n(39262),s=n(14925),u=n(76966),l=n(965),c=n(57421),d="[object Map]",h="[object Set]",f=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(a(e)||"string"==typeof e||"function"==typeof e.splice||u(e)||c(e)||o(e)))return!e.length;var t=r(e);if(t==d||t==h)return!e.size;if(l(e))return!i(e).length;for(var n in e)if(f.call(e,n))return!1;return!0}},34495:function(e,t,n){var i=n(1831);e.exports=function(e,t){return i(e,t)}},88718:function(e,t,n){var i=n(46316),r=n(71983),o=n(267),a="[object DOMException]",s="[object Error]";e.exports=function(e){if(!r(e))return!1;var t=i(e);return t==s||t==a||"string"==typeof e.message&&"string"==typeof e.name&&!o(e)}},99539:function(e,t,n){var i=n(46316),r=n(13108),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!r(e))return!1;var t=i(e);return t==a||t==s||t==o||t==u}},13392:function(e){var t=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=t}},64818:function(e,t,n){var i=n(57535),r=n(35313),o=n(63138),a=o&&o.isMap,s=a?r(a):i;e.exports=s},13108:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},71983:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},267:function(e,t,n){var i=n(46316),r=n(2629),o=n(71983),a="[object Object]",s=Function.prototype,u=Object.prototype,l=s.toString,c=u.hasOwnProperty,d=l.call(Object);e.exports=function(e){if(!o(e)||i(e)!=a)return!1;var t=r(e);if(null===t)return!0;var n=c.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==d}},76095:function(e,t,n){var i=n(19543),r=n(35313),o=n(63138),a=o&&o.isSet,s=a?r(a):i;e.exports=s},89718:function(e,t,n){var i=n(46316),r=n(71983),o="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||r(e)&&i(e)==o}},57421:function(e,t,n){var i=n(65965),r=n(35313),o=n(63138),a=o&&o.isTypedArray,s=a?r(a):i;e.exports=s},82406:function(e,t,n){var i=n(84047),r=n(71983),o="[object WeakMap]";e.exports=function(e){return r(e)&&i(e)==o}},35587:function(e,t,n){var i=n(60301),r=n(19829),o=1;e.exports=function(e){return r("function"==typeof e?e:i(e,o))}},66005:function(e,t,n){var i=n(42311),r=n(30675),o=n(14925);e.exports=function(e){return o(e)?i(e):r(e)}},94370:function(e,t,n){var i=n(42311),r=n(76085),o=n(14925);e.exports=function(e){return o(e)?i(e,!0):r(e)}},51478:function(e){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},32048:function(e,t,n){var i;e=n.nmd(e),function(){var r,o=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",u="__lodash_hash_undefined__",l=500,c="__lodash_placeholder__",d=1,h=2,f=4,p=1,g=2,v=1,m=2,_=4,y=8,b=16,w=32,C=64,k=128,S=256,x=512,L=30,E="...",N=800,D=16,M=1,T=2,O=1/0,I=9007199254740991,A=17976931348623157e292,R=NaN,P=4294967295,Z=P-1,F=P>>>1,j=[["ary",k],["bind",v],["bindKey",m],["curry",y],["curryRight",b],["flip",x],["partial",w],["partialRight",C],["rearg",S]],H="[object Arguments]",B="[object Array]",z="[object AsyncFunction]",W="[object Boolean]",V="[object Date]",Y="[object DOMException]",U="[object Error]",K="[object Function]",q="[object GeneratorFunction]",G="[object Map]",$="[object Number]",Q="[object Null]",X="[object Object]",J="[object Promise]",ee="[object Proxy]",te="[object RegExp]",ne="[object Set]",ie="[object String]",re="[object Symbol]",oe="[object Undefined]",ae="[object WeakMap]",se="[object WeakSet]",ue="[object ArrayBuffer]",le="[object DataView]",ce="[object Float32Array]",de="[object Float64Array]",he="[object Int8Array]",fe="[object Int16Array]",pe="[object Int32Array]",ge="[object Uint8Array]",ve="[object Uint8ClampedArray]",me="[object Uint16Array]",_e="[object Uint32Array]",ye=/\b__p \+= '';/g,be=/\b(__p \+=) '' \+/g,we=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ce=/&(?:amp|lt|gt|quot|#39);/g,ke=/[&<>"']/g,Se=RegExp(Ce.source),xe=RegExp(ke.source),Le=/<%-([\s\S]+?)%>/g,Ee=/<%([\s\S]+?)%>/g,Ne=/<%=([\s\S]+?)%>/g,De=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Me=/^\w*$/,Te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oe=/[\\^$.*+?()[\]{}|]/g,Ie=RegExp(Oe.source),Ae=/^\s+|\s+$/g,Re=/^\s+/,Pe=/\s+$/,Ze=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Fe=/\{\n\/\* \[wrapped with (.+)\] \*/,je=/,? & /,He=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Be=/\\(\\)?/g,ze=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,We=/\w*$/,Ve=/^[-+]0x[0-9a-f]+$/i,Ye=/^0b[01]+$/i,Ue=/^\[object .+?Constructor\]$/,Ke=/^0o[0-7]+$/i,qe=/^(?:0|[1-9]\d*)$/,Ge=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,$e=/($^)/,Qe=/['\n\r\u2028\u2029\\]/g,Xe="\\ud800-\\udfff",Je="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",et="\\u2700-\\u27bf",tt="a-z\\xdf-\\xf6\\xf8-\\xff",nt="A-Z\\xc0-\\xd6\\xd8-\\xde",it="\\ufe0e\\ufe0f",rt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ot="['\u2019]",at="["+Xe+"]",st="["+rt+"]",ut="["+Je+"]",lt="\\d+",ct="["+et+"]",dt="["+tt+"]",ht="[^"+Xe+rt+lt+et+tt+nt+"]",ft="\\ud83c[\\udffb-\\udfff]",pt="[^"+Xe+"]",gt="(?:\\ud83c[\\udde6-\\uddff]){2}",vt="[\\ud800-\\udbff][\\udc00-\\udfff]",mt="["+nt+"]",_t="\\u200d",yt="(?:"+dt+"|"+ht+")",bt="(?:"+mt+"|"+ht+")",wt="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Ct="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",kt="(?:"+ut+"|"+ft+")"+"?",St="["+it+"]?",xt=St+kt+("(?:"+_t+"(?:"+[pt,gt,vt].join("|")+")"+St+kt+")*"),Lt="(?:"+[ct,gt,vt].join("|")+")"+xt,Et="(?:"+[pt+ut+"?",ut,gt,vt,at].join("|")+")",Nt=RegExp(ot,"g"),Dt=RegExp(ut,"g"),Mt=RegExp(ft+"(?="+ft+")|"+Et+xt,"g"),Tt=RegExp([mt+"?"+dt+"+"+wt+"(?="+[st,mt,"$"].join("|")+")",bt+"+"+Ct+"(?="+[st,mt+yt,"$"].join("|")+")",mt+"?"+yt+"+"+wt,mt+"+"+Ct,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",lt,Lt].join("|"),"g"),Ot=RegExp("["+_t+Xe+Je+it+"]"),It=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,At=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Rt=-1,Pt={};Pt[ce]=Pt[de]=Pt[he]=Pt[fe]=Pt[pe]=Pt[ge]=Pt[ve]=Pt[me]=Pt[_e]=!0,Pt[H]=Pt[B]=Pt[ue]=Pt[W]=Pt[le]=Pt[V]=Pt[U]=Pt[K]=Pt[G]=Pt[$]=Pt[X]=Pt[te]=Pt[ne]=Pt[ie]=Pt[ae]=!1;var Zt={};Zt[H]=Zt[B]=Zt[ue]=Zt[le]=Zt[W]=Zt[V]=Zt[ce]=Zt[de]=Zt[he]=Zt[fe]=Zt[pe]=Zt[G]=Zt[$]=Zt[X]=Zt[te]=Zt[ne]=Zt[ie]=Zt[re]=Zt[ge]=Zt[ve]=Zt[me]=Zt[_e]=!0,Zt[U]=Zt[K]=Zt[ae]=!1;var Ft={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},jt=parseFloat,Ht=parseInt,Bt="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,zt="object"==typeof self&&self&&self.Object===Object&&self,Wt=Bt||zt||Function("return this")(),Vt=t&&!t.nodeType&&t,Yt=Vt&&e&&!e.nodeType&&e,Ut=Yt&&Yt.exports===Vt,Kt=Ut&&Bt.process,qt=function(){try{var e=Yt&&Yt.require&&Yt.require("util").types;return e||Kt&&Kt.binding&&Kt.binding("util")}catch(t){}}(),Gt=qt&&qt.isArrayBuffer,$t=qt&&qt.isDate,Qt=qt&&qt.isMap,Xt=qt&&qt.isRegExp,Jt=qt&&qt.isSet,en=qt&&qt.isTypedArray;function tn(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function nn(e,t,n,i){for(var r=-1,o=null==e?0:e.length;++r<o;){var a=e[r];t(i,a,n(a),e)}return i}function rn(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}function on(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function an(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(!t(e[n],n,e))return!1;return!0}function sn(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}function un(e,t){return!!(null==e?0:e.length)&&_n(e,t,0)>-1}function ln(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}function cn(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}function dn(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}function hn(e,t,n,i){var r=-1,o=null==e?0:e.length;for(i&&o&&(n=e[++r]);++r<o;)n=t(n,e[r],r,e);return n}function fn(e,t,n,i){var r=null==e?0:e.length;for(i&&r&&(n=e[--r]);r--;)n=t(n,e[r],r,e);return n}function pn(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}var gn=Cn("length");function vn(e,t,n){var i;return n(e,(function(e,n,r){if(t(e,n,r))return i=n,!1})),i}function mn(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}function _n(e,t,n){return t===t?function(e,t,n){var i=n-1,r=e.length;for(;++i<r;)if(e[i]===t)return i;return-1}(e,t,n):mn(e,bn,n)}function yn(e,t,n,i){for(var r=n-1,o=e.length;++r<o;)if(i(e[r],t))return r;return-1}function bn(e){return e!==e}function wn(e,t){var n=null==e?0:e.length;return n?xn(e,t)/n:R}function Cn(e){return function(t){return null==t?r:t[e]}}function kn(e){return function(t){return null==e?r:e[t]}}function Sn(e,t,n,i,r){return r(e,(function(e,r,o){n=i?(i=!1,e):t(n,e,r,o)})),n}function xn(e,t){for(var n,i=-1,o=e.length;++i<o;){var a=t(e[i]);a!==r&&(n=n===r?a:n+a)}return n}function Ln(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}function En(e){return function(t){return e(t)}}function Nn(e,t){return cn(t,(function(t){return e[t]}))}function Dn(e,t){return e.has(t)}function Mn(e,t){for(var n=-1,i=e.length;++n<i&&_n(t,e[n],0)>-1;);return n}function Tn(e,t){for(var n=e.length;n--&&_n(t,e[n],0)>-1;);return n}var On=kn({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),In=kn({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function An(e){return"\\"+Ft[e]}function Rn(e){return Ot.test(e)}function Pn(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function Zn(e,t){return function(n){return e(t(n))}}function Fn(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n];a!==t&&a!==c||(e[n]=c,o[r++]=n)}return o}function jn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function Hn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function Bn(e){return Rn(e)?function(e){var t=Mt.lastIndex=0;for(;Mt.test(e);)++t;return t}(e):gn(e)}function zn(e){return Rn(e)?function(e){return e.match(Mt)||[]}(e):function(e){return e.split("")}(e)}var Wn=kn({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"});var Vn=function e(t){var n=(t=null==t?Wt:Vn.defaults(Wt.Object(),t,Vn.pick(Wt,At))).Array,i=t.Date,Xe=t.Error,Je=t.Function,et=t.Math,tt=t.Object,nt=t.RegExp,it=t.String,rt=t.TypeError,ot=n.prototype,at=Je.prototype,st=tt.prototype,ut=t["__core-js_shared__"],lt=at.toString,ct=st.hasOwnProperty,dt=0,ht=function(){var e=/[^.]+$/.exec(ut&&ut.keys&&ut.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),ft=st.toString,pt=lt.call(tt),gt=Wt._,vt=nt("^"+lt.call(ct).replace(Oe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),mt=Ut?t.Buffer:r,_t=t.Symbol,yt=t.Uint8Array,bt=mt?mt.allocUnsafe:r,wt=Zn(tt.getPrototypeOf,tt),Ct=tt.create,kt=st.propertyIsEnumerable,St=ot.splice,xt=_t?_t.isConcatSpreadable:r,Lt=_t?_t.iterator:r,Et=_t?_t.toStringTag:r,Mt=function(){try{var e=jo(tt,"defineProperty");return e({},"",{}),e}catch(t){}}(),Ot=t.clearTimeout!==Wt.clearTimeout&&t.clearTimeout,Ft=i&&i.now!==Wt.Date.now&&i.now,Bt=t.setTimeout!==Wt.setTimeout&&t.setTimeout,zt=et.ceil,Vt=et.floor,Yt=tt.getOwnPropertySymbols,Kt=mt?mt.isBuffer:r,qt=t.isFinite,gn=ot.join,kn=Zn(tt.keys,tt),Yn=et.max,Un=et.min,Kn=i.now,qn=t.parseInt,Gn=et.random,$n=ot.reverse,Qn=jo(t,"DataView"),Xn=jo(t,"Map"),Jn=jo(t,"Promise"),ei=jo(t,"Set"),ti=jo(t,"WeakMap"),ni=jo(tt,"create"),ii=ti&&new ti,ri={},oi=da(Qn),ai=da(Xn),si=da(Jn),ui=da(ei),li=da(ti),ci=_t?_t.prototype:r,di=ci?ci.valueOf:r,hi=ci?ci.toString:r;function fi(e){if(Ns(e)&&!ms(e)&&!(e instanceof mi)){if(e instanceof vi)return e;if(ct.call(e,"__wrapped__"))return ha(e)}return new vi(e)}var pi=function(){function e(){}return function(t){if(!Es(t))return{};if(Ct)return Ct(t);e.prototype=t;var n=new e;return e.prototype=r,n}}();function gi(){}function vi(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=r}function mi(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=P,this.__views__=[]}function _i(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function yi(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function bi(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function wi(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new bi;++t<n;)this.add(e[t])}function Ci(e){var t=this.__data__=new yi(e);this.size=t.size}function ki(e,t){var n=ms(e),i=!n&&vs(e),r=!n&&!i&&ws(e),o=!n&&!i&&!r&&Ps(e),a=n||i||r||o,s=a?Ln(e.length,it):[],u=s.length;for(var l in e)!t&&!ct.call(e,l)||a&&("length"==l||r&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Uo(l,u))||s.push(l);return s}function Si(e){var t=e.length;return t?e[wr(0,t-1)]:r}function xi(e,t){return ua(no(e),Ai(t,0,e.length))}function Li(e){return ua(no(e))}function Ei(e,t,n){(n!==r&&!fs(e[t],n)||n===r&&!(t in e))&&Oi(e,t,n)}function Ni(e,t,n){var i=e[t];ct.call(e,t)&&fs(i,n)&&(n!==r||t in e)||Oi(e,t,n)}function Di(e,t){for(var n=e.length;n--;)if(fs(e[n][0],t))return n;return-1}function Mi(e,t,n,i){return ji(e,(function(e,r,o){t(i,e,n(e),o)})),i}function Ti(e,t){return e&&io(t,ru(t),e)}function Oi(e,t,n){"__proto__"==t&&Mt?Mt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Ii(e,t){for(var i=-1,o=t.length,a=n(o),s=null==e;++i<o;)a[i]=s?r:Js(e,t[i]);return a}function Ai(e,t,n){return e===e&&(n!==r&&(e=e<=n?e:n),t!==r&&(e=e>=t?e:t)),e}function Ri(e,t,n,i,o,a){var s,u=t&d,l=t&h,c=t&f;if(n&&(s=o?n(e,i,o,a):n(e)),s!==r)return s;if(!Es(e))return e;var p=ms(e);if(p){if(s=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&ct.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!u)return no(e,s)}else{var g=zo(e),v=g==K||g==q;if(ws(e))return $r(e,u);if(g==X||g==H||v&&!o){if(s=l||v?{}:Vo(e),!u)return l?function(e,t){return io(e,Bo(e),t)}(e,function(e,t){return e&&io(t,ou(t),e)}(s,e)):function(e,t){return io(e,Ho(e),t)}(e,Ti(s,e))}else{if(!Zt[g])return o?e:{};s=function(e,t,n){var i=e.constructor;switch(t){case ue:return Qr(e);case W:case V:return new i(+e);case le:return function(e,t){var n=t?Qr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case ce:case de:case he:case fe:case pe:case ge:case ve:case me:case _e:return Xr(e,n);case G:return new i;case $:case ie:return new i(e);case te:return function(e){var t=new e.constructor(e.source,We.exec(e));return t.lastIndex=e.lastIndex,t}(e);case ne:return new i;case re:return r=e,di?tt(di.call(r)):{}}var r}(e,g,u)}}a||(a=new Ci);var m=a.get(e);if(m)return m;if(a.set(e,s),Is(e))return e.forEach((function(i){s.add(Ri(i,t,n,i,e,a))})),s;if(Ds(e))return e.forEach((function(i,r){s.set(r,Ri(i,t,n,r,e,a))})),s;var _=p?r:(c?l?Oo:To:l?ou:ru)(e);return rn(_||e,(function(i,r){_&&(i=e[r=i]),Ni(s,r,Ri(i,t,n,r,e,a))})),s}function Pi(e,t,n){var i=n.length;if(null==e)return!i;for(e=tt(e);i--;){var o=n[i],a=t[o],s=e[o];if(s===r&&!(o in e)||!a(s))return!1}return!0}function Zi(e,t,n){if("function"!=typeof e)throw new rt(s);return ra((function(){e.apply(r,n)}),t)}function Fi(e,t,n,i){var r=-1,a=un,s=!0,u=e.length,l=[],c=t.length;if(!u)return l;n&&(t=cn(t,En(n))),i?(a=ln,s=!1):t.length>=o&&(a=Dn,s=!1,t=new wi(t));e:for(;++r<u;){var d=e[r],h=null==n?d:n(d);if(d=i||0!==d?d:0,s&&h===h){for(var f=c;f--;)if(t[f]===h)continue e;l.push(d)}else a(t,h,i)||l.push(d)}return l}fi.templateSettings={escape:Le,evaluate:Ee,interpolate:Ne,variable:"",imports:{_:fi}},fi.prototype=gi.prototype,fi.prototype.constructor=fi,vi.prototype=pi(gi.prototype),vi.prototype.constructor=vi,mi.prototype=pi(gi.prototype),mi.prototype.constructor=mi,_i.prototype.clear=function(){this.__data__=ni?ni(null):{},this.size=0},_i.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},_i.prototype.get=function(e){var t=this.__data__;if(ni){var n=t[e];return n===u?r:n}return ct.call(t,e)?t[e]:r},_i.prototype.has=function(e){var t=this.__data__;return ni?t[e]!==r:ct.call(t,e)},_i.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ni&&t===r?u:t,this},yi.prototype.clear=function(){this.__data__=[],this.size=0},yi.prototype.delete=function(e){var t=this.__data__,n=Di(t,e);return!(n<0)&&(n==t.length-1?t.pop():St.call(t,n,1),--this.size,!0)},yi.prototype.get=function(e){var t=this.__data__,n=Di(t,e);return n<0?r:t[n][1]},yi.prototype.has=function(e){return Di(this.__data__,e)>-1},yi.prototype.set=function(e,t){var n=this.__data__,i=Di(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},bi.prototype.clear=function(){this.size=0,this.__data__={hash:new _i,map:new(Xn||yi),string:new _i}},bi.prototype.delete=function(e){var t=Zo(this,e).delete(e);return this.size-=t?1:0,t},bi.prototype.get=function(e){return Zo(this,e).get(e)},bi.prototype.has=function(e){return Zo(this,e).has(e)},bi.prototype.set=function(e,t){var n=Zo(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},wi.prototype.add=wi.prototype.push=function(e){return this.__data__.set(e,u),this},wi.prototype.has=function(e){return this.__data__.has(e)},Ci.prototype.clear=function(){this.__data__=new yi,this.size=0},Ci.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Ci.prototype.get=function(e){return this.__data__.get(e)},Ci.prototype.has=function(e){return this.__data__.has(e)},Ci.prototype.set=function(e,t){var n=this.__data__;if(n instanceof yi){var i=n.__data__;if(!Xn||i.length<o-1)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new bi(i)}return n.set(e,t),this.size=n.size,this};var ji=ao(Ki),Hi=ao(qi,!0);function Bi(e,t){var n=!0;return ji(e,(function(e,i,r){return n=!!t(e,i,r)})),n}function zi(e,t,n){for(var i=-1,o=e.length;++i<o;){var a=e[i],s=t(a);if(null!=s&&(u===r?s===s&&!Rs(s):n(s,u)))var u=s,l=a}return l}function Wi(e,t){var n=[];return ji(e,(function(e,i,r){t(e,i,r)&&n.push(e)})),n}function Vi(e,t,n,i,r){var o=-1,a=e.length;for(n||(n=Yo),r||(r=[]);++o<a;){var s=e[o];t>0&&n(s)?t>1?Vi(s,t-1,n,i,r):dn(r,s):i||(r[r.length]=s)}return r}var Yi=so(),Ui=so(!0);function Ki(e,t){return e&&Yi(e,t,ru)}function qi(e,t){return e&&Ui(e,t,ru)}function Gi(e,t){return sn(t,(function(t){return Ss(e[t])}))}function $i(e,t){for(var n=0,i=(t=Ur(t,e)).length;null!=e&&n<i;)e=e[ca(t[n++])];return n&&n==i?e:r}function Qi(e,t,n){var i=t(e);return ms(e)?i:dn(i,n(e))}function Xi(e){return null==e?e===r?oe:Q:Et&&Et in tt(e)?function(e){var t=ct.call(e,Et),n=e[Et];try{e[Et]=r;var i=!0}catch(a){}var o=ft.call(e);i&&(t?e[Et]=n:delete e[Et]);return o}(e):function(e){return ft.call(e)}(e)}function Ji(e,t){return e>t}function er(e,t){return null!=e&&ct.call(e,t)}function tr(e,t){return null!=e&&t in tt(e)}function nr(e,t,i){for(var o=i?ln:un,a=e[0].length,s=e.length,u=s,l=n(s),c=1/0,d=[];u--;){var h=e[u];u&&t&&(h=cn(h,En(t))),c=Un(h.length,c),l[u]=!i&&(t||a>=120&&h.length>=120)?new wi(u&&h):r}h=e[0];var f=-1,p=l[0];e:for(;++f<a&&d.length<c;){var g=h[f],v=t?t(g):g;if(g=i||0!==g?g:0,!(p?Dn(p,v):o(d,v,i))){for(u=s;--u;){var m=l[u];if(!(m?Dn(m,v):o(e[u],v,i)))continue e}p&&p.push(v),d.push(g)}}return d}function ir(e,t,n){var i=null==(e=ta(e,t=Ur(t,e)))?e:e[ca(ka(t))];return null==i?r:tn(i,e,n)}function rr(e){return Ns(e)&&Xi(e)==H}function or(e,t,n,i,o){return e===t||(null==e||null==t||!Ns(e)&&!Ns(t)?e!==e&&t!==t:function(e,t,n,i,o,a){var s=ms(e),u=ms(t),l=s?B:zo(e),c=u?B:zo(t),d=(l=l==H?X:l)==X,h=(c=c==H?X:c)==X,f=l==c;if(f&&ws(e)){if(!ws(t))return!1;s=!0,d=!1}if(f&&!d)return a||(a=new Ci),s||Ps(e)?Do(e,t,n,i,o,a):function(e,t,n,i,r,o,a){switch(n){case le:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case ue:return!(e.byteLength!=t.byteLength||!o(new yt(e),new yt(t)));case W:case V:case $:return fs(+e,+t);case U:return e.name==t.name&&e.message==t.message;case te:case ie:return e==t+"";case G:var s=Pn;case ne:var u=i&p;if(s||(s=jn),e.size!=t.size&&!u)return!1;var l=a.get(e);if(l)return l==t;i|=g,a.set(e,t);var c=Do(s(e),s(t),i,r,o,a);return a.delete(e),c;case re:if(di)return di.call(e)==di.call(t)}return!1}(e,t,l,n,i,o,a);if(!(n&p)){var v=d&&ct.call(e,"__wrapped__"),m=h&&ct.call(t,"__wrapped__");if(v||m){var _=v?e.value():e,y=m?t.value():t;return a||(a=new Ci),o(_,y,n,i,a)}}if(!f)return!1;return a||(a=new Ci),function(e,t,n,i,o,a){var s=n&p,u=To(e),l=u.length,c=To(t),d=c.length;if(l!=d&&!s)return!1;var h=l;for(;h--;){var f=u[h];if(!(s?f in t:ct.call(t,f)))return!1}var g=a.get(e);if(g&&a.get(t))return g==t;var v=!0;a.set(e,t),a.set(t,e);var m=s;for(;++h<l;){var _=e[f=u[h]],y=t[f];if(i)var b=s?i(y,_,f,t,e,a):i(_,y,f,e,t,a);if(!(b===r?_===y||o(_,y,n,i,a):b)){v=!1;break}m||(m="constructor"==f)}if(v&&!m){var w=e.constructor,C=t.constructor;w==C||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof C&&C instanceof C||(v=!1)}return a.delete(e),a.delete(t),v}(e,t,n,i,o,a)}(e,t,n,i,or,o))}function ar(e,t,n,i){var o=n.length,a=o,s=!i;if(null==e)return!a;for(e=tt(e);o--;){var u=n[o];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++o<a;){var l=(u=n[o])[0],c=e[l],d=u[1];if(s&&u[2]){if(c===r&&!(l in e))return!1}else{var h=new Ci;if(i)var f=i(c,d,l,e,t,h);if(!(f===r?or(d,c,p|g,i,h):f))return!1}}return!0}function sr(e){return!(!Es(e)||(t=e,ht&&ht in t))&&(Ss(e)?vt:Ue).test(da(e));var t}function ur(e){return"function"==typeof e?e:null==e?Mu:"object"==typeof e?ms(e)?pr(e[0],e[1]):fr(e):ju(e)}function lr(e){if(!Qo(e))return kn(e);var t=[];for(var n in tt(e))ct.call(e,n)&&"constructor"!=n&&t.push(n);return t}function cr(e){if(!Es(e))return function(e){var t=[];if(null!=e)for(var n in tt(e))t.push(n);return t}(e);var t=Qo(e),n=[];for(var i in e)("constructor"!=i||!t&&ct.call(e,i))&&n.push(i);return n}function dr(e,t){return e<t}function hr(e,t){var i=-1,r=ys(e)?n(e.length):[];return ji(e,(function(e,n,o){r[++i]=t(e,n,o)})),r}function fr(e){var t=Fo(e);return 1==t.length&&t[0][2]?Jo(t[0][0],t[0][1]):function(n){return n===e||ar(n,e,t)}}function pr(e,t){return qo(e)&&Xo(t)?Jo(ca(e),t):function(n){var i=Js(n,e);return i===r&&i===t?eu(n,e):or(t,i,p|g)}}function gr(e,t,n,i,o){e!==t&&Yi(t,(function(a,s){if(Es(a))o||(o=new Ci),function(e,t,n,i,o,a,s){var u=na(e,n),l=na(t,n),c=s.get(l);if(c)return void Ei(e,n,c);var d=a?a(u,l,n+"",e,t,s):r,h=d===r;if(h){var f=ms(l),p=!f&&ws(l),g=!f&&!p&&Ps(l);d=l,f||p||g?ms(u)?d=u:bs(u)?d=no(u):p?(h=!1,d=$r(l,!0)):g?(h=!1,d=Xr(l,!0)):d=[]:Ts(l)||vs(l)?(d=u,vs(u)?d=Vs(u):Es(u)&&!Ss(u)||(d=Vo(l))):h=!1}h&&(s.set(l,d),o(d,l,i,a,s),s.delete(l));Ei(e,n,d)}(e,t,s,n,gr,i,o);else{var u=i?i(na(e,s),a,s+"",e,t,o):r;u===r&&(u=a),Ei(e,s,u)}}),ou)}function vr(e,t){var n=e.length;if(n)return Uo(t+=t<0?n:0,n)?e[t]:r}function mr(e,t,n){var i=-1;t=cn(t.length?t:[Mu],En(Po()));var r=hr(e,(function(e,n,r){var o=cn(t,(function(t){return t(e)}));return{criteria:o,index:++i,value:e}}));return function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}(r,(function(e,t){return function(e,t,n){var i=-1,r=e.criteria,o=t.criteria,a=r.length,s=n.length;for(;++i<a;){var u=Jr(r[i],o[i]);if(u)return i>=s?u:u*("desc"==n[i]?-1:1)}return e.index-t.index}(e,t,n)}))}function _r(e,t,n){for(var i=-1,r=t.length,o={};++i<r;){var a=t[i],s=$i(e,a);n(s,a)&&Lr(o,Ur(a,e),s)}return o}function yr(e,t,n,i){var r=i?yn:_n,o=-1,a=t.length,s=e;for(e===t&&(t=no(t)),n&&(s=cn(e,En(n)));++o<a;)for(var u=0,l=t[o],c=n?n(l):l;(u=r(s,c,u,i))>-1;)s!==e&&St.call(s,u,1),St.call(e,u,1);return e}function br(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==o){var o=r;Uo(r)?St.call(e,r,1):Fr(e,r)}}return e}function wr(e,t){return e+Vt(Gn()*(t-e+1))}function Cr(e,t){var n="";if(!e||t<1||t>I)return n;do{t%2&&(n+=e),(t=Vt(t/2))&&(e+=e)}while(t);return n}function kr(e,t){return oa(ea(e,t,Mu),e+"")}function Sr(e){return Si(fu(e))}function xr(e,t){var n=fu(e);return ua(n,Ai(t,0,n.length))}function Lr(e,t,n,i){if(!Es(e))return e;for(var o=-1,a=(t=Ur(t,e)).length,s=a-1,u=e;null!=u&&++o<a;){var l=ca(t[o]),c=n;if(o!=s){var d=u[l];(c=i?i(d,l,u):r)===r&&(c=Es(d)?d:Uo(t[o+1])?[]:{})}Ni(u,l,c),u=u[l]}return e}var Er=ii?function(e,t){return ii.set(e,t),e}:Mu,Nr=Mt?function(e,t){return Mt(e,"toString",{configurable:!0,enumerable:!1,value:Eu(t),writable:!0})}:Mu;function Dr(e){return ua(fu(e))}function Mr(e,t,i){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(i=i>o?o:i)<0&&(i+=o),o=t>i?0:i-t>>>0,t>>>=0;for(var a=n(o);++r<o;)a[r]=e[r+t];return a}function Tr(e,t){var n;return ji(e,(function(e,i,r){return!(n=t(e,i,r))})),!!n}function Or(e,t,n){var i=0,r=null==e?i:e.length;if("number"==typeof t&&t===t&&r<=F){for(;i<r;){var o=i+r>>>1,a=e[o];null!==a&&!Rs(a)&&(n?a<=t:a<t)?i=o+1:r=o}return r}return Ir(e,t,Mu,n)}function Ir(e,t,n,i){t=n(t);for(var o=0,a=null==e?0:e.length,s=t!==t,u=null===t,l=Rs(t),c=t===r;o<a;){var d=Vt((o+a)/2),h=n(e[d]),f=h!==r,p=null===h,g=h===h,v=Rs(h);if(s)var m=i||g;else m=c?g&&(i||f):u?g&&f&&(i||!p):l?g&&f&&!p&&(i||!v):!p&&!v&&(i?h<=t:h<t);m?o=d+1:a=d}return Un(a,Z)}function Ar(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n],s=t?t(a):a;if(!n||!fs(s,u)){var u=s;o[r++]=0===a?0:a}}return o}function Rr(e){return"number"==typeof e?e:Rs(e)?R:+e}function Pr(e){if("string"==typeof e)return e;if(ms(e))return cn(e,Pr)+"";if(Rs(e))return hi?hi.call(e):"";var t=e+"";return"0"==t&&1/e==-O?"-0":t}function Zr(e,t,n){var i=-1,r=un,a=e.length,s=!0,u=[],l=u;if(n)s=!1,r=ln;else if(a>=o){var c=t?null:ko(e);if(c)return jn(c);s=!1,r=Dn,l=new wi}else l=t?[]:u;e:for(;++i<a;){var d=e[i],h=t?t(d):d;if(d=n||0!==d?d:0,s&&h===h){for(var f=l.length;f--;)if(l[f]===h)continue e;t&&l.push(h),u.push(d)}else r(l,h,n)||(l!==u&&l.push(h),u.push(d))}return u}function Fr(e,t){return null==(e=ta(e,t=Ur(t,e)))||delete e[ca(ka(t))]}function jr(e,t,n,i){return Lr(e,t,n($i(e,t)),i)}function Hr(e,t,n,i){for(var r=e.length,o=i?r:-1;(i?o--:++o<r)&&t(e[o],o,e););return n?Mr(e,i?0:o,i?o+1:r):Mr(e,i?o+1:0,i?r:o)}function Br(e,t){var n=e;return n instanceof mi&&(n=n.value()),hn(t,(function(e,t){return t.func.apply(t.thisArg,dn([e],t.args))}),n)}function zr(e,t,i){var r=e.length;if(r<2)return r?Zr(e[0]):[];for(var o=-1,a=n(r);++o<r;)for(var s=e[o],u=-1;++u<r;)u!=o&&(a[o]=Fi(a[o]||s,e[u],t,i));return Zr(Vi(a,1),t,i)}function Wr(e,t,n){for(var i=-1,o=e.length,a=t.length,s={};++i<o;){var u=i<a?t[i]:r;n(s,e[i],u)}return s}function Vr(e){return bs(e)?e:[]}function Yr(e){return"function"==typeof e?e:Mu}function Ur(e,t){return ms(e)?e:qo(e,t)?[e]:la(Ys(e))}var Kr=kr;function qr(e,t,n){var i=e.length;return n=n===r?i:n,!t&&n>=i?e:Mr(e,t,n)}var Gr=Ot||function(e){return Wt.clearTimeout(e)};function $r(e,t){if(t)return e.slice();var n=e.length,i=bt?bt(n):new e.constructor(n);return e.copy(i),i}function Qr(e){var t=new e.constructor(e.byteLength);return new yt(t).set(new yt(e)),t}function Xr(e,t){var n=t?Qr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Jr(e,t){if(e!==t){var n=e!==r,i=null===e,o=e===e,a=Rs(e),s=t!==r,u=null===t,l=t===t,c=Rs(t);if(!u&&!c&&!a&&e>t||a&&s&&l&&!u&&!c||i&&s&&l||!n&&l||!o)return 1;if(!i&&!a&&!c&&e<t||c&&n&&o&&!i&&!a||u&&n&&o||!s&&o||!l)return-1}return 0}function eo(e,t,i,r){for(var o=-1,a=e.length,s=i.length,u=-1,l=t.length,c=Yn(a-s,0),d=n(l+c),h=!r;++u<l;)d[u]=t[u];for(;++o<s;)(h||o<a)&&(d[i[o]]=e[o]);for(;c--;)d[u++]=e[o++];return d}function to(e,t,i,r){for(var o=-1,a=e.length,s=-1,u=i.length,l=-1,c=t.length,d=Yn(a-u,0),h=n(d+c),f=!r;++o<d;)h[o]=e[o];for(var p=o;++l<c;)h[p+l]=t[l];for(;++s<u;)(f||o<a)&&(h[p+i[s]]=e[o++]);return h}function no(e,t){var i=-1,r=e.length;for(t||(t=n(r));++i<r;)t[i]=e[i];return t}function io(e,t,n,i){var o=!n;n||(n={});for(var a=-1,s=t.length;++a<s;){var u=t[a],l=i?i(n[u],e[u],u,n,e):r;l===r&&(l=e[u]),o?Oi(n,u,l):Ni(n,u,l)}return n}function ro(e,t){return function(n,i){var r=ms(n)?nn:Mi,o=t?t():{};return r(n,e,Po(i,2),o)}}function oo(e){return kr((function(t,n){var i=-1,o=n.length,a=o>1?n[o-1]:r,s=o>2?n[2]:r;for(a=e.length>3&&"function"==typeof a?(o--,a):r,s&&Ko(n[0],n[1],s)&&(a=o<3?r:a,o=1),t=tt(t);++i<o;){var u=n[i];u&&e(t,u,i,a)}return t}))}function ao(e,t){return function(n,i){if(null==n)return n;if(!ys(n))return e(n,i);for(var r=n.length,o=t?r:-1,a=tt(n);(t?o--:++o<r)&&!1!==i(a[o],o,a););return n}}function so(e){return function(t,n,i){for(var r=-1,o=tt(t),a=i(t),s=a.length;s--;){var u=a[e?s:++r];if(!1===n(o[u],u,o))break}return t}}function uo(e){return function(t){var n=Rn(t=Ys(t))?zn(t):r,i=n?n[0]:t.charAt(0),o=n?qr(n,1).join(""):t.slice(1);return i[e]()+o}}function lo(e){return function(t){return hn(Su(vu(t).replace(Nt,"")),e,"")}}function co(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=pi(e.prototype),i=e.apply(n,t);return Es(i)?i:n}}function ho(e){return function(t,n,i){var o=tt(t);if(!ys(t)){var a=Po(n,3);t=ru(t),n=function(e){return a(o[e],e,o)}}var s=e(t,n,i);return s>-1?o[a?t[s]:s]:r}}function fo(e){return Mo((function(t){var n=t.length,i=n,o=vi.prototype.thru;for(e&&t.reverse();i--;){var a=t[i];if("function"!=typeof a)throw new rt(s);if(o&&!u&&"wrapper"==Ao(a))var u=new vi([],!0)}for(i=u?i:n;++i<n;){var l=Ao(a=t[i]),c="wrapper"==l?Io(a):r;u=c&&Go(c[0])&&c[1]==(k|y|w|S)&&!c[4].length&&1==c[9]?u[Ao(c[0])].apply(u,c[3]):1==a.length&&Go(a)?u[l]():u.thru(a)}return function(){var e=arguments,i=e[0];if(u&&1==e.length&&ms(i))return u.plant(i).value();for(var r=0,o=n?t[r].apply(this,e):i;++r<n;)o=t[r].call(this,o);return o}}))}function po(e,t,i,o,a,s,u,l,c,d){var h=t&k,f=t&v,p=t&m,g=t&(y|b),_=t&x,w=p?r:co(e);return function v(){for(var m=arguments.length,y=n(m),b=m;b--;)y[b]=arguments[b];if(g)var C=Ro(v),k=function(e,t){for(var n=e.length,i=0;n--;)e[n]===t&&++i;return i}(y,C);if(o&&(y=eo(y,o,a,g)),s&&(y=to(y,s,u,g)),m-=k,g&&m<d){var S=Fn(y,C);return wo(e,t,po,v.placeholder,i,y,S,l,c,d-m)}var x=f?i:this,L=p?x[e]:e;return m=y.length,l?y=function(e,t){var n=e.length,i=Un(t.length,n),o=no(e);for(;i--;){var a=t[i];e[i]=Uo(a,n)?o[a]:r}return e}(y,l):_&&m>1&&y.reverse(),h&&c<m&&(y.length=c),this&&this!==Wt&&this instanceof v&&(L=w||co(L)),L.apply(x,y)}}function go(e,t){return function(n,i){return function(e,t,n,i){return Ki(e,(function(e,r,o){t(i,n(e),r,o)})),i}(n,e,t(i),{})}}function vo(e,t){return function(n,i){var o;if(n===r&&i===r)return t;if(n!==r&&(o=n),i!==r){if(o===r)return i;"string"==typeof n||"string"==typeof i?(n=Pr(n),i=Pr(i)):(n=Rr(n),i=Rr(i)),o=e(n,i)}return o}}function mo(e){return Mo((function(t){return t=cn(t,En(Po())),kr((function(n){var i=this;return e(t,(function(e){return tn(e,i,n)}))}))}))}function _o(e,t){var n=(t=t===r?" ":Pr(t)).length;if(n<2)return n?Cr(t,e):t;var i=Cr(t,zt(e/Bn(t)));return Rn(t)?qr(zn(i),0,e).join(""):i.slice(0,e)}function yo(e){return function(t,i,o){return o&&"number"!=typeof o&&Ko(t,i,o)&&(i=o=r),t=Hs(t),i===r?(i=t,t=0):i=Hs(i),function(e,t,i,r){for(var o=-1,a=Yn(zt((t-e)/(i||1)),0),s=n(a);a--;)s[r?a:++o]=e,e+=i;return s}(t,i,o=o===r?t<i?1:-1:Hs(o),e)}}function bo(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=Ws(t),n=Ws(n)),e(t,n)}}function wo(e,t,n,i,o,a,s,u,l,c){var d=t&y;t|=d?w:C,(t&=~(d?C:w))&_||(t&=~(v|m));var h=[e,t,o,d?a:r,d?s:r,d?r:a,d?r:s,u,l,c],f=n.apply(r,h);return Go(e)&&ia(f,h),f.placeholder=i,aa(f,e,t)}function Co(e){var t=et[e];return function(e,n){if(e=Ws(e),n=null==n?0:Un(Bs(n),292)){var i=(Ys(e)+"e").split("e");return+((i=(Ys(t(i[0]+"e"+(+i[1]+n)))+"e").split("e"))[0]+"e"+(+i[1]-n))}return t(e)}}var ko=ei&&1/jn(new ei([,-0]))[1]==O?function(e){return new ei(e)}:Ru;function So(e){return function(t){var n=zo(t);return n==G?Pn(t):n==ne?Hn(t):function(e,t){return cn(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function xo(e,t,i,o,a,u,l,d){var h=t&m;if(!h&&"function"!=typeof e)throw new rt(s);var f=o?o.length:0;if(f||(t&=~(w|C),o=a=r),l=l===r?l:Yn(Bs(l),0),d=d===r?d:Bs(d),f-=a?a.length:0,t&C){var p=o,g=a;o=a=r}var x=h?r:Io(e),L=[e,t,i,o,a,p,g,u,l,d];if(x&&function(e,t){var n=e[1],i=t[1],r=n|i,o=r<(v|m|k),a=i==k&&n==y||i==k&&n==S&&e[7].length<=t[8]||i==(k|S)&&t[7].length<=t[8]&&n==y;if(!o&&!a)return e;i&v&&(e[2]=t[2],r|=n&v?0:_);var s=t[3];if(s){var u=e[3];e[3]=u?eo(u,s,t[4]):s,e[4]=u?Fn(e[3],c):t[4]}(s=t[5])&&(u=e[5],e[5]=u?to(u,s,t[6]):s,e[6]=u?Fn(e[5],c):t[6]);(s=t[7])&&(e[7]=s);i&k&&(e[8]=null==e[8]?t[8]:Un(e[8],t[8]));null==e[9]&&(e[9]=t[9]);e[0]=t[0],e[1]=r}(L,x),e=L[0],t=L[1],i=L[2],o=L[3],a=L[4],!(d=L[9]=L[9]===r?h?0:e.length:Yn(L[9]-f,0))&&t&(y|b)&&(t&=~(y|b)),t&&t!=v)E=t==y||t==b?function(e,t,i){var o=co(e);return function a(){for(var s=arguments.length,u=n(s),l=s,c=Ro(a);l--;)u[l]=arguments[l];var d=s<3&&u[0]!==c&&u[s-1]!==c?[]:Fn(u,c);return(s-=d.length)<i?wo(e,t,po,a.placeholder,r,u,d,r,r,i-s):tn(this&&this!==Wt&&this instanceof a?o:e,this,u)}}(e,t,d):t!=w&&t!=(v|w)||a.length?po.apply(r,L):function(e,t,i,r){var o=t&v,a=co(e);return function t(){for(var s=-1,u=arguments.length,l=-1,c=r.length,d=n(c+u),h=this&&this!==Wt&&this instanceof t?a:e;++l<c;)d[l]=r[l];for(;u--;)d[l++]=arguments[++s];return tn(h,o?i:this,d)}}(e,t,i,o);else var E=function(e,t,n){var i=t&v,r=co(e);return function t(){return(this&&this!==Wt&&this instanceof t?r:e).apply(i?n:this,arguments)}}(e,t,i);return aa((x?Er:ia)(E,L),e,t)}function Lo(e,t,n,i){return e===r||fs(e,st[n])&&!ct.call(i,n)?t:e}function Eo(e,t,n,i,o,a){return Es(e)&&Es(t)&&(a.set(t,e),gr(e,t,r,Eo,a),a.delete(t)),e}function No(e){return Ts(e)?r:e}function Do(e,t,n,i,o,a){var s=n&p,u=e.length,l=t.length;if(u!=l&&!(s&&l>u))return!1;var c=a.get(e);if(c&&a.get(t))return c==t;var d=-1,h=!0,f=n&g?new wi:r;for(a.set(e,t),a.set(t,e);++d<u;){var v=e[d],m=t[d];if(i)var _=s?i(m,v,d,t,e,a):i(v,m,d,e,t,a);if(_!==r){if(_)continue;h=!1;break}if(f){if(!pn(t,(function(e,t){if(!Dn(f,t)&&(v===e||o(v,e,n,i,a)))return f.push(t)}))){h=!1;break}}else if(v!==m&&!o(v,m,n,i,a)){h=!1;break}}return a.delete(e),a.delete(t),h}function Mo(e){return oa(ea(e,r,_a),e+"")}function To(e){return Qi(e,ru,Ho)}function Oo(e){return Qi(e,ou,Bo)}var Io=ii?function(e){return ii.get(e)}:Ru;function Ao(e){for(var t=e.name+"",n=ri[t],i=ct.call(ri,t)?n.length:0;i--;){var r=n[i],o=r.func;if(null==o||o==e)return r.name}return t}function Ro(e){return(ct.call(fi,"placeholder")?fi:e).placeholder}function Po(){var e=fi.iteratee||Tu;return e=e===Tu?ur:e,arguments.length?e(arguments[0],arguments[1]):e}function Zo(e,t){var n=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?n["string"==typeof t?"string":"hash"]:n.map}function Fo(e){for(var t=ru(e),n=t.length;n--;){var i=t[n],r=e[i];t[n]=[i,r,Xo(r)]}return t}function jo(e,t){var n=function(e,t){return null==e?r:e[t]}(e,t);return sr(n)?n:r}var Ho=Yt?function(e){return null==e?[]:(e=tt(e),sn(Yt(e),(function(t){return kt.call(e,t)})))}:zu,Bo=Yt?function(e){for(var t=[];e;)dn(t,Ho(e)),e=wt(e);return t}:zu,zo=Xi;function Wo(e,t,n){for(var i=-1,r=(t=Ur(t,e)).length,o=!1;++i<r;){var a=ca(t[i]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++i!=r?o:!!(r=null==e?0:e.length)&&Ls(r)&&Uo(a,r)&&(ms(e)||vs(e))}function Vo(e){return"function"!=typeof e.constructor||Qo(e)?{}:pi(wt(e))}function Yo(e){return ms(e)||vs(e)||!!(xt&&e&&e[xt])}function Uo(e,t){var n=typeof e;return!!(t=null==t?I:t)&&("number"==n||"symbol"!=n&&qe.test(e))&&e>-1&&e%1==0&&e<t}function Ko(e,t,n){if(!Es(n))return!1;var i=typeof t;return!!("number"==i?ys(n)&&Uo(t,n.length):"string"==i&&t in n)&&fs(n[t],e)}function qo(e,t){if(ms(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Rs(e))||(Me.test(e)||!De.test(e)||null!=t&&e in tt(t))}function Go(e){var t=Ao(e),n=fi[t];if("function"!=typeof n||!(t in mi.prototype))return!1;if(e===n)return!0;var i=Io(n);return!!i&&e===i[0]}(Qn&&zo(new Qn(new ArrayBuffer(1)))!=le||Xn&&zo(new Xn)!=G||Jn&&zo(Jn.resolve())!=J||ei&&zo(new ei)!=ne||ti&&zo(new ti)!=ae)&&(zo=function(e){var t=Xi(e),n=t==X?e.constructor:r,i=n?da(n):"";if(i)switch(i){case oi:return le;case ai:return G;case si:return J;case ui:return ne;case li:return ae}return t});var $o=ut?Ss:Wu;function Qo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||st)}function Xo(e){return e===e&&!Es(e)}function Jo(e,t){return function(n){return null!=n&&(n[e]===t&&(t!==r||e in tt(n)))}}function ea(e,t,i){return t=Yn(t===r?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=Yn(r.length-t,0),s=n(a);++o<a;)s[o]=r[t+o];o=-1;for(var u=n(t+1);++o<t;)u[o]=r[o];return u[t]=i(s),tn(e,this,u)}}function ta(e,t){return t.length<2?e:$i(e,Mr(t,0,-1))}function na(e,t){if("__proto__"!=t)return e[t]}var ia=sa(Er),ra=Bt||function(e,t){return Wt.setTimeout(e,t)},oa=sa(Nr);function aa(e,t,n){var i=t+"";return oa(e,function(e,t){var n=t.length;if(!n)return e;var i=n-1;return t[i]=(n>1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(Ze,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return rn(j,(function(n){var i="_."+n[0];t&n[1]&&!un(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(Fe);return t?t[1].split(je):[]}(i),n)))}function sa(e){var t=0,n=0;return function(){var i=Kn(),o=D-(i-n);if(n=i,o>0){if(++t>=N)return arguments[0]}else t=0;return e.apply(r,arguments)}}function ua(e,t){var n=-1,i=e.length,o=i-1;for(t=t===r?i:t;++n<t;){var a=wr(n,o),s=e[a];e[a]=e[n],e[n]=s}return e.length=t,e}var la=function(e){var t=ss(e,(function(e){return n.size===l&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Te,(function(e,n,i,r){t.push(i?r.replace(Be,"$1"):n||e)})),t}));function ca(e){if("string"==typeof e||Rs(e))return e;var t=e+"";return"0"==t&&1/e==-O?"-0":t}function da(e){if(null!=e){try{return lt.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function ha(e){if(e instanceof mi)return e.clone();var t=new vi(e.__wrapped__,e.__chain__);return t.__actions__=no(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var fa=kr((function(e,t){return bs(e)?Fi(e,Vi(t,1,bs,!0)):[]})),pa=kr((function(e,t){var n=ka(t);return bs(n)&&(n=r),bs(e)?Fi(e,Vi(t,1,bs,!0),Po(n,2)):[]})),ga=kr((function(e,t){var n=ka(t);return bs(n)&&(n=r),bs(e)?Fi(e,Vi(t,1,bs,!0),r,n):[]}));function va(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:Bs(n);return r<0&&(r=Yn(i+r,0)),mn(e,Po(t,3),r)}function ma(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var o=i-1;return n!==r&&(o=Bs(n),o=n<0?Yn(i+o,0):Un(o,i-1)),mn(e,Po(t,3),o,!0)}function _a(e){return(null==e?0:e.length)?Vi(e,1):[]}function ya(e){return e&&e.length?e[0]:r}var ba=kr((function(e){var t=cn(e,Vr);return t.length&&t[0]===e[0]?nr(t):[]})),wa=kr((function(e){var t=ka(e),n=cn(e,Vr);return t===ka(n)?t=r:n.pop(),n.length&&n[0]===e[0]?nr(n,Po(t,2)):[]})),Ca=kr((function(e){var t=ka(e),n=cn(e,Vr);return(t="function"==typeof t?t:r)&&n.pop(),n.length&&n[0]===e[0]?nr(n,r,t):[]}));function ka(e){var t=null==e?0:e.length;return t?e[t-1]:r}var Sa=kr(xa);function xa(e,t){return e&&e.length&&t&&t.length?yr(e,t):e}var La=Mo((function(e,t){var n=null==e?0:e.length,i=Ii(e,t);return br(e,cn(t,(function(e){return Uo(e,n)?+e:e})).sort(Jr)),i}));function Ea(e){return null==e?e:$n.call(e)}var Na=kr((function(e){return Zr(Vi(e,1,bs,!0))})),Da=kr((function(e){var t=ka(e);return bs(t)&&(t=r),Zr(Vi(e,1,bs,!0),Po(t,2))})),Ma=kr((function(e){var t=ka(e);return t="function"==typeof t?t:r,Zr(Vi(e,1,bs,!0),r,t)}));function Ta(e){if(!e||!e.length)return[];var t=0;return e=sn(e,(function(e){if(bs(e))return t=Yn(e.length,t),!0})),Ln(t,(function(t){return cn(e,Cn(t))}))}function Oa(e,t){if(!e||!e.length)return[];var n=Ta(e);return null==t?n:cn(n,(function(e){return tn(t,r,e)}))}var Ia=kr((function(e,t){return bs(e)?Fi(e,t):[]})),Aa=kr((function(e){return zr(sn(e,bs))})),Ra=kr((function(e){var t=ka(e);return bs(t)&&(t=r),zr(sn(e,bs),Po(t,2))})),Pa=kr((function(e){var t=ka(e);return t="function"==typeof t?t:r,zr(sn(e,bs),r,t)})),Za=kr(Ta);var Fa=kr((function(e){var t=e.length,n=t>1?e[t-1]:r;return n="function"==typeof n?(e.pop(),n):r,Oa(e,n)}));function ja(e){var t=fi(e);return t.__chain__=!0,t}function Ha(e,t){return t(e)}var Ba=Mo((function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,o=function(t){return Ii(t,e)};return!(t>1||this.__actions__.length)&&i instanceof mi&&Uo(n)?((i=i.slice(n,+n+(t?1:0))).__actions__.push({func:Ha,args:[o],thisArg:r}),new vi(i,this.__chain__).thru((function(e){return t&&!e.length&&e.push(r),e}))):this.thru(o)}));var za=ro((function(e,t,n){ct.call(e,n)?++e[n]:Oi(e,n,1)}));var Wa=ho(va),Va=ho(ma);function Ya(e,t){return(ms(e)?rn:ji)(e,Po(t,3))}function Ua(e,t){return(ms(e)?on:Hi)(e,Po(t,3))}var Ka=ro((function(e,t,n){ct.call(e,n)?e[n].push(t):Oi(e,n,[t])}));var qa=kr((function(e,t,i){var r=-1,o="function"==typeof t,a=ys(e)?n(e.length):[];return ji(e,(function(e){a[++r]=o?tn(t,e,i):ir(e,t,i)})),a})),Ga=ro((function(e,t,n){Oi(e,n,t)}));function $a(e,t){return(ms(e)?cn:hr)(e,Po(t,3))}var Qa=ro((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var Xa=kr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&Ko(e,t[0],t[1])?t=[]:n>2&&Ko(t[0],t[1],t[2])&&(t=[t[0]]),mr(e,Vi(t,1),[])})),Ja=Ft||function(){return Wt.Date.now()};function es(e,t,n){return t=n?r:t,t=e&&null==t?e.length:t,xo(e,k,r,r,r,r,t)}function ts(e,t){var n;if("function"!=typeof t)throw new rt(s);return e=Bs(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=r),n}}var ns=kr((function(e,t,n){var i=v;if(n.length){var r=Fn(n,Ro(ns));i|=w}return xo(e,i,t,n,r)})),is=kr((function(e,t,n){var i=v|m;if(n.length){var r=Fn(n,Ro(is));i|=w}return xo(t,i,e,n,r)}));function rs(e,t,n){var i,o,a,u,l,c,d=0,h=!1,f=!1,p=!0;if("function"!=typeof e)throw new rt(s);function g(t){var n=i,a=o;return i=o=r,d=t,u=e.apply(a,n)}function v(e){var n=e-c;return c===r||n>=t||n<0||f&&e-d>=a}function m(){var e=Ja();if(v(e))return _(e);l=ra(m,function(e){var n=t-(e-c);return f?Un(n,a-(e-d)):n}(e))}function _(e){return l=r,p&&i?g(e):(i=o=r,u)}function y(){var e=Ja(),n=v(e);if(i=arguments,o=this,c=e,n){if(l===r)return function(e){return d=e,l=ra(m,t),h?g(e):u}(c);if(f)return l=ra(m,t),g(c)}return l===r&&(l=ra(m,t)),u}return t=Ws(t)||0,Es(n)&&(h=!!n.leading,a=(f="maxWait"in n)?Yn(Ws(n.maxWait)||0,t):a,p="trailing"in n?!!n.trailing:p),y.cancel=function(){l!==r&&Gr(l),d=0,i=c=o=l=r},y.flush=function(){return l===r?u:_(Ja())},y}var os=kr((function(e,t){return Zi(e,1,t)})),as=kr((function(e,t,n){return Zi(e,Ws(t)||0,n)}));function ss(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new rt(s);var n=function n(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(ss.Cache||bi),n}function us(e){if("function"!=typeof e)throw new rt(s);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ss.Cache=bi;var ls=Kr((function(e,t){var n=(t=1==t.length&&ms(t[0])?cn(t[0],En(Po())):cn(Vi(t,1),En(Po()))).length;return kr((function(i){for(var r=-1,o=Un(i.length,n);++r<o;)i[r]=t[r].call(this,i[r]);return tn(e,this,i)}))})),cs=kr((function(e,t){var n=Fn(t,Ro(cs));return xo(e,w,r,t,n)})),ds=kr((function(e,t){var n=Fn(t,Ro(ds));return xo(e,C,r,t,n)})),hs=Mo((function(e,t){return xo(e,S,r,r,r,t)}));function fs(e,t){return e===t||e!==e&&t!==t}var ps=bo(Ji),gs=bo((function(e,t){return e>=t})),vs=rr(function(){return arguments}())?rr:function(e){return Ns(e)&&ct.call(e,"callee")&&!kt.call(e,"callee")},ms=n.isArray,_s=Gt?En(Gt):function(e){return Ns(e)&&Xi(e)==ue};function ys(e){return null!=e&&Ls(e.length)&&!Ss(e)}function bs(e){return Ns(e)&&ys(e)}var ws=Kt||Wu,Cs=$t?En($t):function(e){return Ns(e)&&Xi(e)==V};function ks(e){if(!Ns(e))return!1;var t=Xi(e);return t==U||t==Y||"string"==typeof e.message&&"string"==typeof e.name&&!Ts(e)}function Ss(e){if(!Es(e))return!1;var t=Xi(e);return t==K||t==q||t==z||t==ee}function xs(e){return"number"==typeof e&&e==Bs(e)}function Ls(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=I}function Es(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ns(e){return null!=e&&"object"==typeof e}var Ds=Qt?En(Qt):function(e){return Ns(e)&&zo(e)==G};function Ms(e){return"number"==typeof e||Ns(e)&&Xi(e)==$}function Ts(e){if(!Ns(e)||Xi(e)!=X)return!1;var t=wt(e);if(null===t)return!0;var n=ct.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&lt.call(n)==pt}var Os=Xt?En(Xt):function(e){return Ns(e)&&Xi(e)==te};var Is=Jt?En(Jt):function(e){return Ns(e)&&zo(e)==ne};function As(e){return"string"==typeof e||!ms(e)&&Ns(e)&&Xi(e)==ie}function Rs(e){return"symbol"==typeof e||Ns(e)&&Xi(e)==re}var Ps=en?En(en):function(e){return Ns(e)&&Ls(e.length)&&!!Pt[Xi(e)]};var Zs=bo(dr),Fs=bo((function(e,t){return e<=t}));function js(e){if(!e)return[];if(ys(e))return As(e)?zn(e):no(e);if(Lt&&e[Lt])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Lt]());var t=zo(e);return(t==G?Pn:t==ne?jn:fu)(e)}function Hs(e){return e?(e=Ws(e))===O||e===-O?(e<0?-1:1)*A:e===e?e:0:0===e?e:0}function Bs(e){var t=Hs(e),n=t%1;return t===t?n?t-n:t:0}function zs(e){return e?Ai(Bs(e),0,P):0}function Ws(e){if("number"==typeof e)return e;if(Rs(e))return R;if(Es(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Es(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Ae,"");var n=Ye.test(e);return n||Ke.test(e)?Ht(e.slice(2),n?2:8):Ve.test(e)?R:+e}function Vs(e){return io(e,ou(e))}function Ys(e){return null==e?"":Pr(e)}var Us=oo((function(e,t){if(Qo(t)||ys(t))io(t,ru(t),e);else for(var n in t)ct.call(t,n)&&Ni(e,n,t[n])})),Ks=oo((function(e,t){io(t,ou(t),e)})),qs=oo((function(e,t,n,i){io(t,ou(t),e,i)})),Gs=oo((function(e,t,n,i){io(t,ru(t),e,i)})),$s=Mo(Ii);var Qs=kr((function(e,t){e=tt(e);var n=-1,i=t.length,o=i>2?t[2]:r;for(o&&Ko(t[0],t[1],o)&&(i=1);++n<i;)for(var a=t[n],s=ou(a),u=-1,l=s.length;++u<l;){var c=s[u],d=e[c];(d===r||fs(d,st[c])&&!ct.call(e,c))&&(e[c]=a[c])}return e})),Xs=kr((function(e){return e.push(r,Eo),tn(su,r,e)}));function Js(e,t,n){var i=null==e?r:$i(e,t);return i===r?n:i}function eu(e,t){return null!=e&&Wo(e,t,tr)}var tu=go((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=ft.call(t)),e[t]=n}),Eu(Mu)),nu=go((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=ft.call(t)),ct.call(e,t)?e[t].push(n):e[t]=[n]}),Po),iu=kr(ir);function ru(e){return ys(e)?ki(e):lr(e)}function ou(e){return ys(e)?ki(e,!0):cr(e)}var au=oo((function(e,t,n){gr(e,t,n)})),su=oo((function(e,t,n,i){gr(e,t,n,i)})),uu=Mo((function(e,t){var n={};if(null==e)return n;var i=!1;t=cn(t,(function(t){return t=Ur(t,e),i||(i=t.length>1),t})),io(e,Oo(e),n),i&&(n=Ri(n,d|h|f,No));for(var r=t.length;r--;)Fr(n,t[r]);return n}));var lu=Mo((function(e,t){return null==e?{}:function(e,t){return _r(e,t,(function(t,n){return eu(e,n)}))}(e,t)}));function cu(e,t){if(null==e)return{};var n=cn(Oo(e),(function(e){return[e]}));return t=Po(t),_r(e,n,(function(e,n){return t(e,n[0])}))}var du=So(ru),hu=So(ou);function fu(e){return null==e?[]:Nn(e,ru(e))}var pu=lo((function(e,t,n){return t=t.toLowerCase(),e+(n?gu(t):t)}));function gu(e){return ku(Ys(e).toLowerCase())}function vu(e){return(e=Ys(e))&&e.replace(Ge,On).replace(Dt,"")}var mu=lo((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),_u=lo((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),yu=uo("toLowerCase");var bu=lo((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var wu=lo((function(e,t,n){return e+(n?" ":"")+ku(t)}));var Cu=lo((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),ku=uo("toUpperCase");function Su(e,t,n){return e=Ys(e),(t=n?r:t)===r?function(e){return It.test(e)}(e)?function(e){return e.match(Tt)||[]}(e):function(e){return e.match(He)||[]}(e):e.match(t)||[]}var xu=kr((function(e,t){try{return tn(e,r,t)}catch(n){return ks(n)?n:new Xe(n)}})),Lu=Mo((function(e,t){return rn(t,(function(t){t=ca(t),Oi(e,t,ns(e[t],e))})),e}));function Eu(e){return function(){return e}}var Nu=fo(),Du=fo(!0);function Mu(e){return e}function Tu(e){return ur("function"==typeof e?e:Ri(e,d))}var Ou=kr((function(e,t){return function(n){return ir(n,e,t)}})),Iu=kr((function(e,t){return function(n){return ir(e,n,t)}}));function Au(e,t,n){var i=ru(t),r=Gi(t,i);null!=n||Es(t)&&(r.length||!i.length)||(n=t,t=e,e=this,r=Gi(t,ru(t)));var o=!(Es(n)&&"chain"in n)||!!n.chain,a=Ss(e);return rn(r,(function(n){var i=t[n];e[n]=i,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=no(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,dn([this.value()],arguments))})})),e}function Ru(){}var Pu=mo(cn),Zu=mo(an),Fu=mo(pn);function ju(e){return qo(e)?Cn(ca(e)):function(e){return function(t){return $i(t,e)}}(e)}var Hu=yo(),Bu=yo(!0);function zu(){return[]}function Wu(){return!1}var Vu=vo((function(e,t){return e+t}),0),Yu=Co("ceil"),Uu=vo((function(e,t){return e/t}),1),Ku=Co("floor");var qu=vo((function(e,t){return e*t}),1),Gu=Co("round"),$u=vo((function(e,t){return e-t}),0);return fi.after=function(e,t){if("function"!=typeof t)throw new rt(s);return e=Bs(e),function(){if(--e<1)return t.apply(this,arguments)}},fi.ary=es,fi.assign=Us,fi.assignIn=Ks,fi.assignInWith=qs,fi.assignWith=Gs,fi.at=$s,fi.before=ts,fi.bind=ns,fi.bindAll=Lu,fi.bindKey=is,fi.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return ms(e)?e:[e]},fi.chain=ja,fi.chunk=function(e,t,i){t=(i?Ko(e,t,i):t===r)?1:Yn(Bs(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var a=0,s=0,u=n(zt(o/t));a<o;)u[s++]=Mr(e,a,a+=t);return u},fi.compact=function(e){for(var t=-1,n=null==e?0:e.length,i=0,r=[];++t<n;){var o=e[t];o&&(r[i++]=o)}return r},fi.concat=function(){var e=arguments.length;if(!e)return[];for(var t=n(e-1),i=arguments[0],r=e;r--;)t[r-1]=arguments[r];return dn(ms(i)?no(i):[i],Vi(t,1))},fi.cond=function(e){var t=null==e?0:e.length,n=Po();return e=t?cn(e,(function(e){if("function"!=typeof e[1])throw new rt(s);return[n(e[0]),e[1]]})):[],kr((function(n){for(var i=-1;++i<t;){var r=e[i];if(tn(r[0],this,n))return tn(r[1],this,n)}}))},fi.conforms=function(e){return function(e){var t=ru(e);return function(n){return Pi(n,e,t)}}(Ri(e,d))},fi.constant=Eu,fi.countBy=za,fi.create=function(e,t){var n=pi(e);return null==t?n:Ti(n,t)},fi.curry=function e(t,n,i){var o=xo(t,y,r,r,r,r,r,n=i?r:n);return o.placeholder=e.placeholder,o},fi.curryRight=function e(t,n,i){var o=xo(t,b,r,r,r,r,r,n=i?r:n);return o.placeholder=e.placeholder,o},fi.debounce=rs,fi.defaults=Qs,fi.defaultsDeep=Xs,fi.defer=os,fi.delay=as,fi.difference=fa,fi.differenceBy=pa,fi.differenceWith=ga,fi.drop=function(e,t,n){var i=null==e?0:e.length;return i?Mr(e,(t=n||t===r?1:Bs(t))<0?0:t,i):[]},fi.dropRight=function(e,t,n){var i=null==e?0:e.length;return i?Mr(e,0,(t=i-(t=n||t===r?1:Bs(t)))<0?0:t):[]},fi.dropRightWhile=function(e,t){return e&&e.length?Hr(e,Po(t,3),!0,!0):[]},fi.dropWhile=function(e,t){return e&&e.length?Hr(e,Po(t,3),!0):[]},fi.fill=function(e,t,n,i){var o=null==e?0:e.length;return o?(n&&"number"!=typeof n&&Ko(e,t,n)&&(n=0,i=o),function(e,t,n,i){var o=e.length;for((n=Bs(n))<0&&(n=-n>o?0:o+n),(i=i===r||i>o?o:Bs(i))<0&&(i+=o),i=n>i?0:zs(i);n<i;)e[n++]=t;return e}(e,t,n,i)):[]},fi.filter=function(e,t){return(ms(e)?sn:Wi)(e,Po(t,3))},fi.flatMap=function(e,t){return Vi($a(e,t),1)},fi.flatMapDeep=function(e,t){return Vi($a(e,t),O)},fi.flatMapDepth=function(e,t,n){return n=n===r?1:Bs(n),Vi($a(e,t),n)},fi.flatten=_a,fi.flattenDeep=function(e){return(null==e?0:e.length)?Vi(e,O):[]},fi.flattenDepth=function(e,t){return(null==e?0:e.length)?Vi(e,t=t===r?1:Bs(t)):[]},fi.flip=function(e){return xo(e,x)},fi.flow=Nu,fi.flowRight=Du,fi.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,i={};++t<n;){var r=e[t];i[r[0]]=r[1]}return i},fi.functions=function(e){return null==e?[]:Gi(e,ru(e))},fi.functionsIn=function(e){return null==e?[]:Gi(e,ou(e))},fi.groupBy=Ka,fi.initial=function(e){return(null==e?0:e.length)?Mr(e,0,-1):[]},fi.intersection=ba,fi.intersectionBy=wa,fi.intersectionWith=Ca,fi.invert=tu,fi.invertBy=nu,fi.invokeMap=qa,fi.iteratee=Tu,fi.keyBy=Ga,fi.keys=ru,fi.keysIn=ou,fi.map=$a,fi.mapKeys=function(e,t){var n={};return t=Po(t,3),Ki(e,(function(e,i,r){Oi(n,t(e,i,r),e)})),n},fi.mapValues=function(e,t){var n={};return t=Po(t,3),Ki(e,(function(e,i,r){Oi(n,i,t(e,i,r))})),n},fi.matches=function(e){return fr(Ri(e,d))},fi.matchesProperty=function(e,t){return pr(e,Ri(t,d))},fi.memoize=ss,fi.merge=au,fi.mergeWith=su,fi.method=Ou,fi.methodOf=Iu,fi.mixin=Au,fi.negate=us,fi.nthArg=function(e){return e=Bs(e),kr((function(t){return vr(t,e)}))},fi.omit=uu,fi.omitBy=function(e,t){return cu(e,us(Po(t)))},fi.once=function(e){return ts(2,e)},fi.orderBy=function(e,t,n,i){return null==e?[]:(ms(t)||(t=null==t?[]:[t]),ms(n=i?r:n)||(n=null==n?[]:[n]),mr(e,t,n))},fi.over=Pu,fi.overArgs=ls,fi.overEvery=Zu,fi.overSome=Fu,fi.partial=cs,fi.partialRight=ds,fi.partition=Qa,fi.pick=lu,fi.pickBy=cu,fi.property=ju,fi.propertyOf=function(e){return function(t){return null==e?r:$i(e,t)}},fi.pull=Sa,fi.pullAll=xa,fi.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?yr(e,t,Po(n,2)):e},fi.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?yr(e,t,r,n):e},fi.pullAt=La,fi.range=Hu,fi.rangeRight=Bu,fi.rearg=hs,fi.reject=function(e,t){return(ms(e)?sn:Wi)(e,us(Po(t,3)))},fi.remove=function(e,t){var n=[];if(!e||!e.length)return n;var i=-1,r=[],o=e.length;for(t=Po(t,3);++i<o;){var a=e[i];t(a,i,e)&&(n.push(a),r.push(i))}return br(e,r),n},fi.rest=function(e,t){if("function"!=typeof e)throw new rt(s);return kr(e,t=t===r?t:Bs(t))},fi.reverse=Ea,fi.sampleSize=function(e,t,n){return t=(n?Ko(e,t,n):t===r)?1:Bs(t),(ms(e)?xi:xr)(e,t)},fi.set=function(e,t,n){return null==e?e:Lr(e,t,n)},fi.setWith=function(e,t,n,i){return i="function"==typeof i?i:r,null==e?e:Lr(e,t,n,i)},fi.shuffle=function(e){return(ms(e)?Li:Dr)(e)},fi.slice=function(e,t,n){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&Ko(e,t,n)?(t=0,n=i):(t=null==t?0:Bs(t),n=n===r?i:Bs(n)),Mr(e,t,n)):[]},fi.sortBy=Xa,fi.sortedUniq=function(e){return e&&e.length?Ar(e):[]},fi.sortedUniqBy=function(e,t){return e&&e.length?Ar(e,Po(t,2)):[]},fi.split=function(e,t,n){return n&&"number"!=typeof n&&Ko(e,t,n)&&(t=n=r),(n=n===r?P:n>>>0)?(e=Ys(e))&&("string"==typeof t||null!=t&&!Os(t))&&!(t=Pr(t))&&Rn(e)?qr(zn(e),0,n):e.split(t,n):[]},fi.spread=function(e,t){if("function"!=typeof e)throw new rt(s);return t=null==t?0:Yn(Bs(t),0),kr((function(n){var i=n[t],r=qr(n,0,t);return i&&dn(r,i),tn(e,this,r)}))},fi.tail=function(e){var t=null==e?0:e.length;return t?Mr(e,1,t):[]},fi.take=function(e,t,n){return e&&e.length?Mr(e,0,(t=n||t===r?1:Bs(t))<0?0:t):[]},fi.takeRight=function(e,t,n){var i=null==e?0:e.length;return i?Mr(e,(t=i-(t=n||t===r?1:Bs(t)))<0?0:t,i):[]},fi.takeRightWhile=function(e,t){return e&&e.length?Hr(e,Po(t,3),!1,!0):[]},fi.takeWhile=function(e,t){return e&&e.length?Hr(e,Po(t,3)):[]},fi.tap=function(e,t){return t(e),e},fi.throttle=function(e,t,n){var i=!0,r=!0;if("function"!=typeof e)throw new rt(s);return Es(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),rs(e,t,{leading:i,maxWait:t,trailing:r})},fi.thru=Ha,fi.toArray=js,fi.toPairs=du,fi.toPairsIn=hu,fi.toPath=function(e){return ms(e)?cn(e,ca):Rs(e)?[e]:no(la(Ys(e)))},fi.toPlainObject=Vs,fi.transform=function(e,t,n){var i=ms(e),r=i||ws(e)||Ps(e);if(t=Po(t,4),null==n){var o=e&&e.constructor;n=r?i?new o:[]:Es(e)&&Ss(o)?pi(wt(e)):{}}return(r?rn:Ki)(e,(function(e,i,r){return t(n,e,i,r)})),n},fi.unary=function(e){return es(e,1)},fi.union=Na,fi.unionBy=Da,fi.unionWith=Ma,fi.uniq=function(e){return e&&e.length?Zr(e):[]},fi.uniqBy=function(e,t){return e&&e.length?Zr(e,Po(t,2)):[]},fi.uniqWith=function(e,t){return t="function"==typeof t?t:r,e&&e.length?Zr(e,r,t):[]},fi.unset=function(e,t){return null==e||Fr(e,t)},fi.unzip=Ta,fi.unzipWith=Oa,fi.update=function(e,t,n){return null==e?e:jr(e,t,Yr(n))},fi.updateWith=function(e,t,n,i){return i="function"==typeof i?i:r,null==e?e:jr(e,t,Yr(n),i)},fi.values=fu,fi.valuesIn=function(e){return null==e?[]:Nn(e,ou(e))},fi.without=Ia,fi.words=Su,fi.wrap=function(e,t){return cs(Yr(t),e)},fi.xor=Aa,fi.xorBy=Ra,fi.xorWith=Pa,fi.zip=Za,fi.zipObject=function(e,t){return Wr(e||[],t||[],Ni)},fi.zipObjectDeep=function(e,t){return Wr(e||[],t||[],Lr)},fi.zipWith=Fa,fi.entries=du,fi.entriesIn=hu,fi.extend=Ks,fi.extendWith=qs,Au(fi,fi),fi.add=Vu,fi.attempt=xu,fi.camelCase=pu,fi.capitalize=gu,fi.ceil=Yu,fi.clamp=function(e,t,n){return n===r&&(n=t,t=r),n!==r&&(n=(n=Ws(n))===n?n:0),t!==r&&(t=(t=Ws(t))===t?t:0),Ai(Ws(e),t,n)},fi.clone=function(e){return Ri(e,f)},fi.cloneDeep=function(e){return Ri(e,d|f)},fi.cloneDeepWith=function(e,t){return Ri(e,d|f,t="function"==typeof t?t:r)},fi.cloneWith=function(e,t){return Ri(e,f,t="function"==typeof t?t:r)},fi.conformsTo=function(e,t){return null==t||Pi(e,t,ru(t))},fi.deburr=vu,fi.defaultTo=function(e,t){return null==e||e!==e?t:e},fi.divide=Uu,fi.endsWith=function(e,t,n){e=Ys(e),t=Pr(t);var i=e.length,o=n=n===r?i:Ai(Bs(n),0,i);return(n-=t.length)>=0&&e.slice(n,o)==t},fi.eq=fs,fi.escape=function(e){return(e=Ys(e))&&xe.test(e)?e.replace(ke,In):e},fi.escapeRegExp=function(e){return(e=Ys(e))&&Ie.test(e)?e.replace(Oe,"\\$&"):e},fi.every=function(e,t,n){var i=ms(e)?an:Bi;return n&&Ko(e,t,n)&&(t=r),i(e,Po(t,3))},fi.find=Wa,fi.findIndex=va,fi.findKey=function(e,t){return vn(e,Po(t,3),Ki)},fi.findLast=Va,fi.findLastIndex=ma,fi.findLastKey=function(e,t){return vn(e,Po(t,3),qi)},fi.floor=Ku,fi.forEach=Ya,fi.forEachRight=Ua,fi.forIn=function(e,t){return null==e?e:Yi(e,Po(t,3),ou)},fi.forInRight=function(e,t){return null==e?e:Ui(e,Po(t,3),ou)},fi.forOwn=function(e,t){return e&&Ki(e,Po(t,3))},fi.forOwnRight=function(e,t){return e&&qi(e,Po(t,3))},fi.get=Js,fi.gt=ps,fi.gte=gs,fi.has=function(e,t){return null!=e&&Wo(e,t,er)},fi.hasIn=eu,fi.head=ya,fi.identity=Mu,fi.includes=function(e,t,n,i){e=ys(e)?e:fu(e),n=n&&!i?Bs(n):0;var r=e.length;return n<0&&(n=Yn(r+n,0)),As(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&_n(e,t,n)>-1},fi.indexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:Bs(n);return r<0&&(r=Yn(i+r,0)),_n(e,t,r)},fi.inRange=function(e,t,n){return t=Hs(t),n===r?(n=t,t=0):n=Hs(n),function(e,t,n){return e>=Un(t,n)&&e<Yn(t,n)}(e=Ws(e),t,n)},fi.invoke=iu,fi.isArguments=vs,fi.isArray=ms,fi.isArrayBuffer=_s,fi.isArrayLike=ys,fi.isArrayLikeObject=bs,fi.isBoolean=function(e){return!0===e||!1===e||Ns(e)&&Xi(e)==W},fi.isBuffer=ws,fi.isDate=Cs,fi.isElement=function(e){return Ns(e)&&1===e.nodeType&&!Ts(e)},fi.isEmpty=function(e){if(null==e)return!0;if(ys(e)&&(ms(e)||"string"==typeof e||"function"==typeof e.splice||ws(e)||Ps(e)||vs(e)))return!e.length;var t=zo(e);if(t==G||t==ne)return!e.size;if(Qo(e))return!lr(e).length;for(var n in e)if(ct.call(e,n))return!1;return!0},fi.isEqual=function(e,t){return or(e,t)},fi.isEqualWith=function(e,t,n){var i=(n="function"==typeof n?n:r)?n(e,t):r;return i===r?or(e,t,r,n):!!i},fi.isError=ks,fi.isFinite=function(e){return"number"==typeof e&&qt(e)},fi.isFunction=Ss,fi.isInteger=xs,fi.isLength=Ls,fi.isMap=Ds,fi.isMatch=function(e,t){return e===t||ar(e,t,Fo(t))},fi.isMatchWith=function(e,t,n){return n="function"==typeof n?n:r,ar(e,t,Fo(t),n)},fi.isNaN=function(e){return Ms(e)&&e!=+e},fi.isNative=function(e){if($o(e))throw new Xe(a);return sr(e)},fi.isNil=function(e){return null==e},fi.isNull=function(e){return null===e},fi.isNumber=Ms,fi.isObject=Es,fi.isObjectLike=Ns,fi.isPlainObject=Ts,fi.isRegExp=Os,fi.isSafeInteger=function(e){return xs(e)&&e>=-I&&e<=I},fi.isSet=Is,fi.isString=As,fi.isSymbol=Rs,fi.isTypedArray=Ps,fi.isUndefined=function(e){return e===r},fi.isWeakMap=function(e){return Ns(e)&&zo(e)==ae},fi.isWeakSet=function(e){return Ns(e)&&Xi(e)==se},fi.join=function(e,t){return null==e?"":gn.call(e,t)},fi.kebabCase=mu,fi.last=ka,fi.lastIndexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var o=i;return n!==r&&(o=(o=Bs(n))<0?Yn(i+o,0):Un(o,i-1)),t===t?function(e,t,n){for(var i=n+1;i--;)if(e[i]===t)return i;return i}(e,t,o):mn(e,bn,o,!0)},fi.lowerCase=_u,fi.lowerFirst=yu,fi.lt=Zs,fi.lte=Fs,fi.max=function(e){return e&&e.length?zi(e,Mu,Ji):r},fi.maxBy=function(e,t){return e&&e.length?zi(e,Po(t,2),Ji):r},fi.mean=function(e){return wn(e,Mu)},fi.meanBy=function(e,t){return wn(e,Po(t,2))},fi.min=function(e){return e&&e.length?zi(e,Mu,dr):r},fi.minBy=function(e,t){return e&&e.length?zi(e,Po(t,2),dr):r},fi.stubArray=zu,fi.stubFalse=Wu,fi.stubObject=function(){return{}},fi.stubString=function(){return""},fi.stubTrue=function(){return!0},fi.multiply=qu,fi.nth=function(e,t){return e&&e.length?vr(e,Bs(t)):r},fi.noConflict=function(){return Wt._===this&&(Wt._=gt),this},fi.noop=Ru,fi.now=Ja,fi.pad=function(e,t,n){e=Ys(e);var i=(t=Bs(t))?Bn(e):0;if(!t||i>=t)return e;var r=(t-i)/2;return _o(Vt(r),n)+e+_o(zt(r),n)},fi.padEnd=function(e,t,n){e=Ys(e);var i=(t=Bs(t))?Bn(e):0;return t&&i<t?e+_o(t-i,n):e},fi.padStart=function(e,t,n){e=Ys(e);var i=(t=Bs(t))?Bn(e):0;return t&&i<t?_o(t-i,n)+e:e},fi.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),qn(Ys(e).replace(Re,""),t||0)},fi.random=function(e,t,n){if(n&&"boolean"!=typeof n&&Ko(e,t,n)&&(t=n=r),n===r&&("boolean"==typeof t?(n=t,t=r):"boolean"==typeof e&&(n=e,e=r)),e===r&&t===r?(e=0,t=1):(e=Hs(e),t===r?(t=e,e=0):t=Hs(t)),e>t){var i=e;e=t,t=i}if(n||e%1||t%1){var o=Gn();return Un(e+o*(t-e+jt("1e-"+((o+"").length-1))),t)}return wr(e,t)},fi.reduce=function(e,t,n){var i=ms(e)?hn:Sn,r=arguments.length<3;return i(e,Po(t,4),n,r,ji)},fi.reduceRight=function(e,t,n){var i=ms(e)?fn:Sn,r=arguments.length<3;return i(e,Po(t,4),n,r,Hi)},fi.repeat=function(e,t,n){return t=(n?Ko(e,t,n):t===r)?1:Bs(t),Cr(Ys(e),t)},fi.replace=function(){var e=arguments,t=Ys(e[0]);return e.length<3?t:t.replace(e[1],e[2])},fi.result=function(e,t,n){var i=-1,o=(t=Ur(t,e)).length;for(o||(o=1,e=r);++i<o;){var a=null==e?r:e[ca(t[i])];a===r&&(i=o,a=n),e=Ss(a)?a.call(e):a}return e},fi.round=Gu,fi.runInContext=e,fi.sample=function(e){return(ms(e)?Si:Sr)(e)},fi.size=function(e){if(null==e)return 0;if(ys(e))return As(e)?Bn(e):e.length;var t=zo(e);return t==G||t==ne?e.size:lr(e).length},fi.snakeCase=bu,fi.some=function(e,t,n){var i=ms(e)?pn:Tr;return n&&Ko(e,t,n)&&(t=r),i(e,Po(t,3))},fi.sortedIndex=function(e,t){return Or(e,t)},fi.sortedIndexBy=function(e,t,n){return Ir(e,t,Po(n,2))},fi.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var i=Or(e,t);if(i<n&&fs(e[i],t))return i}return-1},fi.sortedLastIndex=function(e,t){return Or(e,t,!0)},fi.sortedLastIndexBy=function(e,t,n){return Ir(e,t,Po(n,2),!0)},fi.sortedLastIndexOf=function(e,t){if(null==e?0:e.length){var n=Or(e,t,!0)-1;if(fs(e[n],t))return n}return-1},fi.startCase=wu,fi.startsWith=function(e,t,n){return e=Ys(e),n=null==n?0:Ai(Bs(n),0,e.length),t=Pr(t),e.slice(n,n+t.length)==t},fi.subtract=$u,fi.sum=function(e){return e&&e.length?xn(e,Mu):0},fi.sumBy=function(e,t){return e&&e.length?xn(e,Po(t,2)):0},fi.template=function(e,t,n){var i=fi.templateSettings;n&&Ko(e,t,n)&&(t=r),e=Ys(e),t=qs({},t,i,Lo);var o,a,s=qs({},t.imports,i.imports,Lo),u=ru(s),l=Nn(s,u),c=0,d=t.interpolate||$e,h="__p += '",f=nt((t.escape||$e).source+"|"+d.source+"|"+(d===Ne?ze:$e).source+"|"+(t.evaluate||$e).source+"|$","g"),p="//# sourceURL="+("sourceURL"in t?t.sourceURL:"lodash.templateSources["+ ++Rt+"]")+"\n";e.replace(f,(function(t,n,i,r,s,u){return i||(i=r),h+=e.slice(c,u).replace(Qe,An),n&&(o=!0,h+="' +\n__e("+n+") +\n'"),s&&(a=!0,h+="';\n"+s+";\n__p += '"),i&&(h+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),c=u+t.length,t})),h+="';\n";var g=t.variable;g||(h="with (obj) {\n"+h+"\n}\n"),h=(a?h.replace(ye,""):h).replace(be,"$1").replace(we,"$1;"),h="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var v=xu((function(){return Je(u,p+"return "+h).apply(r,l)}));if(v.source=h,ks(v))throw v;return v},fi.times=function(e,t){if((e=Bs(e))<1||e>I)return[];var n=P,i=Un(e,P);t=Po(t),e-=P;for(var r=Ln(i,t);++n<e;)t(n);return r},fi.toFinite=Hs,fi.toInteger=Bs,fi.toLength=zs,fi.toLower=function(e){return Ys(e).toLowerCase()},fi.toNumber=Ws,fi.toSafeInteger=function(e){return e?Ai(Bs(e),-I,I):0===e?e:0},fi.toString=Ys,fi.toUpper=function(e){return Ys(e).toUpperCase()},fi.trim=function(e,t,n){if((e=Ys(e))&&(n||t===r))return e.replace(Ae,"");if(!e||!(t=Pr(t)))return e;var i=zn(e),o=zn(t);return qr(i,Mn(i,o),Tn(i,o)+1).join("")},fi.trimEnd=function(e,t,n){if((e=Ys(e))&&(n||t===r))return e.replace(Pe,"");if(!e||!(t=Pr(t)))return e;var i=zn(e);return qr(i,0,Tn(i,zn(t))+1).join("")},fi.trimStart=function(e,t,n){if((e=Ys(e))&&(n||t===r))return e.replace(Re,"");if(!e||!(t=Pr(t)))return e;var i=zn(e);return qr(i,Mn(i,zn(t))).join("")},fi.truncate=function(e,t){var n=L,i=E;if(Es(t)){var o="separator"in t?t.separator:o;n="length"in t?Bs(t.length):n,i="omission"in t?Pr(t.omission):i}var a=(e=Ys(e)).length;if(Rn(e)){var s=zn(e);a=s.length}if(n>=a)return e;var u=n-Bn(i);if(u<1)return i;var l=s?qr(s,0,u).join(""):e.slice(0,u);if(o===r)return l+i;if(s&&(u+=l.length-u),Os(o)){if(e.slice(u).search(o)){var c,d=l;for(o.global||(o=nt(o.source,Ys(We.exec(o))+"g")),o.lastIndex=0;c=o.exec(d);)var h=c.index;l=l.slice(0,h===r?u:h)}}else if(e.indexOf(Pr(o),u)!=u){var f=l.lastIndexOf(o);f>-1&&(l=l.slice(0,f))}return l+i},fi.unescape=function(e){return(e=Ys(e))&&Se.test(e)?e.replace(Ce,Wn):e},fi.uniqueId=function(e){var t=++dt;return Ys(e)+t},fi.upperCase=Cu,fi.upperFirst=ku,fi.each=Ya,fi.eachRight=Ua,fi.first=ya,Au(fi,function(){var e={};return Ki(fi,(function(t,n){ct.call(fi.prototype,n)||(e[n]=t)})),e}(),{chain:!1}),fi.VERSION="4.17.11",rn(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){fi[e].placeholder=fi})),rn(["drop","take"],(function(e,t){mi.prototype[e]=function(n){n=n===r?1:Yn(Bs(n),0);var i=this.__filtered__&&!t?new mi(this):this.clone();return i.__filtered__?i.__takeCount__=Un(n,i.__takeCount__):i.__views__.push({size:Un(n,P),type:e+(i.__dir__<0?"Right":"")}),i},mi.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),rn(["filter","map","takeWhile"],(function(e,t){var n=t+1,i=n==M||3==n;mi.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Po(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}})),rn(["head","last"],(function(e,t){var n="take"+(t?"Right":"");mi.prototype[e]=function(){return this[n](1).value()[0]}})),rn(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");mi.prototype[e]=function(){return this.__filtered__?new mi(this):this[n](1)}})),mi.prototype.compact=function(){return this.filter(Mu)},mi.prototype.find=function(e){return this.filter(e).head()},mi.prototype.findLast=function(e){return this.reverse().find(e)},mi.prototype.invokeMap=kr((function(e,t){return"function"==typeof e?new mi(this):this.map((function(n){return ir(n,e,t)}))})),mi.prototype.reject=function(e){return this.filter(us(Po(e)))},mi.prototype.slice=function(e,t){e=Bs(e);var n=this;return n.__filtered__&&(e>0||t<0)?new mi(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==r&&(n=(t=Bs(t))<0?n.dropRight(-t):n.take(t-e)),n)},mi.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},mi.prototype.toArray=function(){return this.take(P)},Ki(mi.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),o=fi[i?"take"+("last"==t?"Right":""):t],a=i||/^find/.test(t);o&&(fi.prototype[t]=function(){var t=this.__wrapped__,s=i?[1]:arguments,u=t instanceof mi,l=s[0],c=u||ms(t),d=function(e){var t=o.apply(fi,dn([e],s));return i&&h?t[0]:t};c&&n&&"function"==typeof l&&1!=l.length&&(u=c=!1);var h=this.__chain__,f=!!this.__actions__.length,p=a&&!h,g=u&&!f;if(!a&&c){t=g?t:new mi(this);var v=e.apply(t,s);return v.__actions__.push({func:Ha,args:[d],thisArg:r}),new vi(v,h)}return p&&g?e.apply(this,s):(v=this.thru(d),p?i?v.value()[0]:v.value():v)})})),rn(["pop","push","shift","sort","splice","unshift"],(function(e){var t=ot[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);fi.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var r=this.value();return t.apply(ms(r)?r:[],e)}return this[n]((function(n){return t.apply(ms(n)?n:[],e)}))}})),Ki(mi.prototype,(function(e,t){var n=fi[t];if(n){var i=n.name+"";(ri[i]||(ri[i]=[])).push({name:t,func:n})}})),ri[po(r,m).name]=[{name:"wrapper",func:r}],mi.prototype.clone=function(){var e=new mi(this.__wrapped__);return e.__actions__=no(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=no(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=no(this.__views__),e},mi.prototype.reverse=function(){if(this.__filtered__){var e=new mi(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},mi.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=ms(e),i=t<0,r=n?e.length:0,o=function(e,t,n){var i=-1,r=n.length;for(;++i<r;){var o=n[i],a=o.size;switch(o.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=Un(t,e+a);break;case"takeRight":e=Yn(e,t-a)}}return{start:e,end:t}}(0,r,this.__views__),a=o.start,s=o.end,u=s-a,l=i?s:a-1,c=this.__iteratees__,d=c.length,h=0,f=Un(u,this.__takeCount__);if(!n||!i&&r==u&&f==u)return Br(e,this.__actions__);var p=[];e:for(;u--&&h<f;){for(var g=-1,v=e[l+=t];++g<d;){var m=c[g],_=m.iteratee,y=m.type,b=_(v);if(y==T)v=b;else if(!b){if(y==M)continue e;break e}}p[h++]=v}return p},fi.prototype.at=Ba,fi.prototype.chain=function(){return ja(this)},fi.prototype.commit=function(){return new vi(this.value(),this.__chain__)},fi.prototype.next=function(){this.__values__===r&&(this.__values__=js(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?r:this.__values__[this.__index__++]}},fi.prototype.plant=function(e){for(var t,n=this;n instanceof gi;){var i=ha(n);i.__index__=0,i.__values__=r,t?o.__wrapped__=i:t=i;var o=i;n=n.__wrapped__}return o.__wrapped__=e,t},fi.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof mi){var t=e;return this.__actions__.length&&(t=new mi(this)),(t=t.reverse()).__actions__.push({func:Ha,args:[Ea],thisArg:r}),new vi(t,this.__chain__)}return this.thru(Ea)},fi.prototype.toJSON=fi.prototype.valueOf=fi.prototype.value=function(){return Br(this.__wrapped__,this.__actions__)},fi.prototype.first=fi.prototype.head,Lt&&(fi.prototype[Lt]=function(){return this}),fi}();Wt._=Vn,(i=function(){return Vn}.call(t,n,t,e))===r||(e.exports=i)}.call(this)},970:function(e,t,n){var i;e=n.nmd(e),function(){function r(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function o(e,t,n,i){for(var r=-1,o=null==e?0:e.length;++r<o;){var a=e[r];t(i,a,n(a),e)}return i}function a(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}function s(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function u(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(!t(e[n],n,e))return!1;return!0}function l(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}function c(e,t){return!(null==e||!e.length)&&-1<y(e,t,0)}function d(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}function h(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}function f(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}function p(e,t,n,i){var r=-1,o=null==e?0:e.length;for(i&&o&&(n=e[++r]);++r<o;)n=t(n,e[r],r,e);return n}function g(e,t,n,i){var r=null==e?0:e.length;for(i&&r&&(n=e[--r]);r--;)n=t(n,e[r],r,e);return n}function v(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}function m(e,t,n){var i;return n(e,(function(e,n,r){if(t(e,n,r))return i=n,!1})),i}function _(e,t,n,i){var r=e.length;for(n+=i?1:-1;i?n--:++n<r;)if(t(e[n],n,e))return n;return-1}function y(e,t,n){if(t===t)e:{--n;for(var i=e.length;++n<i;)if(e[n]===t){e=n;break e}e=-1}else e=_(e,w,n);return e}function b(e,t,n,i){--n;for(var r=e.length;++n<r;)if(i(e[n],t))return n;return-1}function w(e){return e!==e}function C(e,t){var n=null==e?0:e.length;return n?L(e,t)/n:z}function k(e){return function(t){return null==t?H:t[e]}}function S(e){return function(t){return null==e?H:e[t]}}function x(e,t,n,i,r){return r(e,(function(e,r,o){n=i?(i=!1,e):t(n,e,r,o)})),n}function L(e,t){for(var n,i=-1,r=e.length;++i<r;){var o=t(e[i]);o!==H&&(n=n===H?o:n+o)}return n}function E(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}function N(e){return function(t){return e(t)}}function D(e,t){return h(t,(function(t){return e[t]}))}function M(e,t){return e.has(t)}function T(e,t){for(var n=-1,i=e.length;++n<i&&-1<y(t,e[n],0););return n}function O(e,t){for(var n=e.length;n--&&-1<y(t,e[n],0););return n}function I(e){return"\\"+Ae[e]}function A(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function R(e,t){return function(n){return e(t(n))}}function P(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n];a!==t&&"__lodash_placeholder__"!==a||(e[n]="__lodash_placeholder__",o[r++]=n)}return o}function Z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function F(e){if(De.test(e)){for(var t=Ee.lastIndex=0;Ee.test(e);)++t;e=t}else e=Qe(e);return e}function j(e){return De.test(e)?e.match(Ee)||[]:e.split("")}var H,B=1/0,z=NaN,W=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],V=/\b__p\+='';/g,Y=/\b(__p\+=)''\+/g,U=/(__e\(.*?\)|\b__t\))\+'';/g,K=/&(?:amp|lt|gt|quot|#39);/g,q=/[&<>"']/g,G=RegExp(K.source),$=RegExp(q.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,ee=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,te=/^\w*$/,ne=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ie=/[\\^$.*+?()[\]{}|]/g,re=RegExp(ie.source),oe=/^\s+|\s+$/g,ae=/^\s+/,se=/\s+$/,ue=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,le=/\{\n\/\* \[wrapped with (.+)\] \*/,ce=/,? & /,de=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,he=/\\(\\)?/g,fe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,ge=/^[-+]0x[0-9a-f]+$/i,ve=/^0b[01]+$/i,me=/^\[object .+?Constructor\]$/,_e=/^0o[0-7]+$/i,ye=/^(?:0|[1-9]\d*)$/,be=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,we=/($^)/,Ce=/['\n\r\u2028\u2029\\]/g,ke="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",Se="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+ke,xe=RegExp("['\u2019]","g"),Le=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),Ee=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])"+ke,"g"),Ne=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",Se].join("|"),"g"),De=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Me=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Te="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Oe={};Oe["[object Float32Array]"]=Oe["[object Float64Array]"]=Oe["[object Int8Array]"]=Oe["[object Int16Array]"]=Oe["[object Int32Array]"]=Oe["[object Uint8Array]"]=Oe["[object Uint8ClampedArray]"]=Oe["[object Uint16Array]"]=Oe["[object Uint32Array]"]=!0,Oe["[object Arguments]"]=Oe["[object Array]"]=Oe["[object ArrayBuffer]"]=Oe["[object Boolean]"]=Oe["[object DataView]"]=Oe["[object Date]"]=Oe["[object Error]"]=Oe["[object Function]"]=Oe["[object Map]"]=Oe["[object Number]"]=Oe["[object Object]"]=Oe["[object RegExp]"]=Oe["[object Set]"]=Oe["[object String]"]=Oe["[object WeakMap]"]=!1;var Ie={};Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object DataView]"]=Ie["[object Boolean]"]=Ie["[object Date]"]=Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object Symbol]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object WeakMap]"]=!1;var Ae={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Re=parseFloat,Pe=parseInt,Ze="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,Fe="object"==typeof self&&self&&self.Object===Object&&self,je=Ze||Fe||Function("return this")(),He=t&&!t.nodeType&&t,Be=He&&e&&!e.nodeType&&e,ze=Be&&Be.exports===He,We=ze&&Ze.process,Ve=function(){try{var e=Be&&Be.require&&Be.require("util").types;return e||We&&We.binding&&We.binding("util")}catch(e){}}(),Ye=Ve&&Ve.isArrayBuffer,Ue=Ve&&Ve.isDate,Ke=Ve&&Ve.isMap,qe=Ve&&Ve.isRegExp,Ge=Ve&&Ve.isSet,$e=Ve&&Ve.isTypedArray,Qe=k("length"),Xe=S({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),Je=S({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}),et=S({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),tt=function e(t){function n(e){if(Gi(e)&&!Za(e)&&!(e instanceof ke)){if(e instanceof S)return e;if(Zr.call(e,"__wrapped__"))return wi(e)}return new S(e)}function i(){}function S(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=H}function ke(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Se(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ee(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ae(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ze(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Ae;++t<n;)this.add(e[t])}function Fe(e){this.size=(this.__data__=new Ee(e)).size}function He(e,t){var n,i=Za(e),r=!i&&Pa(e),o=!i&&!r&&ja(e),a=!i&&!r&&!o&&Va(e),s=(r=(i=i||r||o||a)?E(e.length,Tr):[]).length;for(n in e)!t&&!Zr.call(e,n)||i&&("length"==n||o&&("offset"==n||"parent"==n)||a&&("buffer"==n||"byteLength"==n||"byteOffset"==n)||si(n,s))||r.push(n);return r}function Be(e){var t=e.length;return t?e[Vt(0,t-1)]:H}function We(e,t){return mi(wn(e),ut(t,0,e.length))}function Ve(e){return mi(wn(e))}function Qe(e,t,n){(n===H||Bi(e[t],n))&&(n!==H||t in e)||at(e,t,n)}function nt(e,t,n){var i=e[t];Zr.call(e,t)&&Bi(i,n)&&(n!==H||t in e)||at(e,t,n)}function it(e,t){for(var n=e.length;n--;)if(Bi(e[n][0],t))return n;return-1}function rt(e,t,n,i){return Po(e,(function(e,r,o){t(i,e,n(e),o)})),i}function ot(e,t){return e&&Cn(t,lr(t),e)}function at(e,t,n){"__proto__"==t&&to?to(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function st(e,t){for(var n=-1,i=t.length,r=Sr(i),o=null==e;++n<i;)r[n]=o?H:sr(e,t[n]);return r}function ut(e,t,n){return e===e&&(n!==H&&(e=e<=n?e:n),t!==H&&(e=e>=t?e:t)),e}function lt(e,t,n,i,r,o){var s,u=1&t,l=2&t,c=4&t;if(n&&(s=r?n(e,i,r,o):n(e)),s!==H)return s;if(!qi(e))return e;if(i=Za(e)){if(s=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Zr.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!u)return wn(e,s)}else{var d=Ko(e),h="[object Function]"==d||"[object GeneratorFunction]"==d;if(ja(e))return gn(e,u);if("[object Object]"==d||"[object Arguments]"==d||h&&!r){if(s=l||h?{}:oi(e),!u)return l?function(e,t){return Cn(e,Uo(e),t)}(e,function(e,t){return e&&Cn(t,cr(t),e)}(s,e)):function(e,t){return Cn(e,Yo(e),t)}(e,ot(s,e))}else{if(!Ie[d])return r?e:{};s=function(e,t,n){var i=e.constructor;switch(t){case"[object ArrayBuffer]":return vn(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return t=n?vn(e.buffer):e.buffer,new e.constructor(t,e.byteOffset,e.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return mn(e,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(t=new e.constructor(e.source,pe.exec(e))).lastIndex=e.lastIndex,t;case"[object Symbol]":return Io?Dr(Io.call(e)):{}}}(e,d,u)}}if(o||(o=new Fe),r=o.get(e))return r;if(o.set(e,s),Wa(e))return e.forEach((function(i){s.add(lt(i,t,n,i,e,o))})),s;if(Ba(e))return e.forEach((function(i,r){s.set(r,lt(i,t,n,r,e,o))})),s;l=c?l?Qn:$n:l?cr:lr;var f=i?H:l(e);return a(f||e,(function(i,r){f&&(i=e[r=i]),nt(s,r,lt(i,t,n,r,e,o))})),s}function ct(e,t,n){var i=n.length;if(null==e)return!i;for(e=Dr(e);i--;){var r=n[i],o=t[r],a=e[r];if(a===H&&!(r in e)||!o(a))return!1}return!0}function dt(e,t,n){if("function"!=typeof e)throw new Or("Expected a function");return $o((function(){e.apply(H,n)}),t)}function ht(e,t,n,i){var r=-1,o=c,a=!0,s=e.length,u=[],l=t.length;if(!s)return u;n&&(t=h(t,N(n))),i?(o=d,a=!1):200<=t.length&&(o=M,a=!1,t=new Ze(t));e:for(;++r<s;){var f=e[r],p=null==n?f:n(f);f=i||0!==f?f:0;if(a&&p===p){for(var g=l;g--;)if(t[g]===p)continue e;u.push(f)}else o(t,p,i)||u.push(f)}return u}function ft(e,t){var n=!0;return Po(e,(function(e,i,r){return n=!!t(e,i,r)})),n}function pt(e,t,n){for(var i=-1,r=e.length;++i<r;){var o=e[i],a=t(o);if(null!=a&&(s===H?a===a&&!Ji(a):n(a,s)))var s=a,u=o}return u}function gt(e,t){var n=[];return Po(e,(function(e,i,r){t(e,i,r)&&n.push(e)})),n}function vt(e,t,n,i,r){var o=-1,a=e.length;for(n||(n=ai),r||(r=[]);++o<a;){var s=e[o];0<t&&n(s)?1<t?vt(s,t-1,n,i,r):f(r,s):i||(r[r.length]=s)}return r}function mt(e,t){return e&&Fo(e,t,lr)}function _t(e,t){return e&&jo(e,t,lr)}function yt(e,t){return l(t,(function(t){return Yi(e[t])}))}function bt(e,t){for(var n=0,i=(t=fn(t,e)).length;null!=e&&n<i;)e=e[_i(t[n++])];return n&&n==i?e:H}function wt(e,t,n){return t=t(e),Za(e)?t:f(t,n(e))}function Ct(e){if(null==e)return e===H?"[object Undefined]":"[object Null]";if(eo&&eo in Dr(e)){var t=Zr.call(e,eo),n=e[eo];try{e[eo]=H;var i=!0}catch(e){}var r=Hr.call(e);i&&(t?e[eo]=n:delete e[eo]),e=r}else e=Hr.call(e);return e}function kt(e,t){return e>t}function St(e,t){return null!=e&&Zr.call(e,t)}function xt(e,t){return null!=e&&t in Dr(e)}function Lt(e,t,n){for(var i=n?d:c,r=e[0].length,o=e.length,a=o,s=Sr(o),u=1/0,l=[];a--;){var f=e[a];a&&t&&(f=h(f,N(t))),u=po(f.length,u),s[a]=!n&&(t||120<=r&&120<=f.length)?new Ze(a&&f):H}f=e[0];var p=-1,g=s[0];e:for(;++p<r&&l.length<u;){var v=f[p],m=t?t(v):v;v=n||0!==v?v:0;if(g?!M(g,m):!i(l,m,n)){for(a=o;--a;){var _=s[a];if(_?!M(_,m):!i(e[a],m,n))continue e}g&&g.push(m),l.push(v)}}return l}function Et(e,t,n){return null==(t=null==(e=2>(t=fn(t,e)).length?e:bt(e,Qt(t,0,-1)))?e:e[_i(Li(t))])?H:r(t,e,n)}function Nt(e){return Gi(e)&&"[object Arguments]"==Ct(e)}function Dt(e,t,n,i,r){if(e===t)return!0;if(null==e||null==t||!Gi(e)&&!Gi(t))return e!==e&&t!==t;e:{var o,a,s=Za(e),u=Za(t),l="[object Object]"==(o="[object Arguments]"==(o=s?"[object Array]":Ko(e))?"[object Object]":o);u="[object Object]"==(a="[object Arguments]"==(a=u?"[object Array]":Ko(t))?"[object Object]":a);if((a=o==a)&&ja(e)){if(!ja(t)){t=!1;break e}s=!0,l=!1}if(a&&!l)r||(r=new Fe),t=s||Va(e)?qn(e,t,n,i,Dt,r):function(e,t,n,i,r,o,a){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)break;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":if(e.byteLength!=t.byteLength||!o(new Ur(e),new Ur(t)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return Bi(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var s=A;case"[object Set]":if(s||(s=Z),e.size!=t.size&&!(1&i))break;return(n=a.get(e))?n==t:(i|=2,a.set(e,t),t=qn(s(e),s(t),i,r,o,a),a.delete(e),t);case"[object Symbol]":if(Io)return Io.call(e)==Io.call(t)}return!1}(e,t,o,n,i,Dt,r);else{if(!(1&n)&&(s=l&&Zr.call(e,"__wrapped__"),o=u&&Zr.call(t,"__wrapped__"),s||o)){e=s?e.value():e,t=o?t.value():t,r||(r=new Fe),t=Dt(e,t,n,i,r);break e}if(a)t:if(r||(r=new Fe),s=1&n,o=$n(e),u=o.length,a=$n(t).length,u==a||s){for(l=u;l--;){var c=o[l];if(!(s?c in t:Zr.call(t,c))){t=!1;break t}}if((a=r.get(e))&&r.get(t))t=a==t;else{a=!0,r.set(e,t),r.set(t,e);for(var d=s;++l<u;){var h=e[c=o[l]],f=t[c];if(i)var p=s?i(f,h,c,t,e,r):i(h,f,c,e,t,r);if(p===H?h!==f&&!Dt(h,f,n,i,r):!p){a=!1;break}d||(d="constructor"==c)}a&&!d&&((n=e.constructor)!=(i=t.constructor)&&"constructor"in e&&"constructor"in t&&!("function"==typeof n&&n instanceof n&&"function"==typeof i&&i instanceof i)&&(a=!1)),r.delete(e),r.delete(t),t=a}}else t=!1;else t=!1}}return t}function Mt(e,t,n,i){var r=n.length,o=r,a=!i;if(null==e)return!o;for(e=Dr(e);r--;){var s=n[r];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++r<o;){var u=(s=n[r])[0],l=e[u],c=s[1];if(a&&s[2]){if(l===H&&!(u in e))return!1}else{if(s=new Fe,i)var d=i(l,c,u,e,t,s);if(d===H?!Dt(c,l,3,i,s):!d)return!1}}return!0}function Tt(e){return!(!qi(e)||jr&&jr in e)&&(Yi(e)?Wr:me).test(yi(e))}function Ot(e){return"function"==typeof e?e:null==e?mr:"object"==typeof e?Za(e)?Zt(e[0],e[1]):Pt(e):wr(e)}function It(e){if(!di(e))return ho(e);var t,n=[];for(t in Dr(e))Zr.call(e,t)&&"constructor"!=t&&n.push(t);return n}function At(e,t){return e<t}function Rt(e,t){var n=-1,i=zi(e)?Sr(e.length):[];return Po(e,(function(e,r,o){i[++n]=t(e,r,o)})),i}function Pt(e){var t=ni(e);return 1==t.length&&t[0][2]?hi(t[0][0],t[0][1]):function(n){return n===e||Mt(n,e,t)}}function Zt(e,t){return li(e)&&t===t&&!qi(t)?hi(_i(e),t):function(n){var i=sr(n,e);return i===H&&i===t?ur(n,e):Dt(t,i,3)}}function Ft(e,t,n,i,r){e!==t&&Fo(t,(function(o,a){if(qi(o)){r||(r=new Fe);var s=r,u=pi(e,a),l=pi(t,a);if(!(p=s.get(l))){var c=(p=i?i(u,l,a+"",e,t,s):H)===H;if(c){var d=Za(l),h=!d&&ja(l),f=!d&&!h&&Va(l),p=l;d||h||f?Za(u)?p=u:Wi(u)?p=wn(u):h?(c=!1,p=gn(l,!0)):f?(c=!1,p=mn(l,!0)):p=[]:Qi(l)||Pa(l)?(p=u,Pa(u)?p=or(u):qi(u)&&!Yi(u)||(p=oi(l))):c=!1}c&&(s.set(l,p),Ft(p,l,n,i,s),s.delete(l))}Qe(e,a,p)}else(s=i?i(pi(e,a),o,a+"",e,t,r):H)===H&&(s=o),Qe(e,a,s)}),cr)}function jt(e,t){var n=e.length;if(n)return si(t+=0>t?n:0,n)?e[t]:H}function Ht(e,t,n){var i=-1;return t=h(t.length?t:[mr],N(ei())),e=Rt(e,(function(e,n,r){return{a:h(t,(function(t){return t(e)})),b:++i,c:e}})),function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].c;return e}(e,(function(e,t){var i;e:{i=-1;for(var r=e.a,o=t.a,a=r.length,s=n.length;++i<a;){var u=_n(r[i],o[i]);if(u){if(i>=s){i=u;break e}i=u*("desc"==n[i]?-1:1);break e}}i=e.b-t.b}return i}))}function Bt(e,t,n){for(var i=-1,r=t.length,o={};++i<r;){var a=t[i],s=bt(e,a);n(s,a)&&Gt(o,fn(a,e),s)}return o}function zt(e,t,n,i){var r=i?b:y,o=-1,a=t.length,s=e;for(e===t&&(t=wn(t)),n&&(s=h(e,N(n)));++o<a;){var u=0,l=t[o];for(l=n?n(l):l;-1<(u=r(s,l,u,i));)s!==e&&Qr.call(s,u,1),Qr.call(e,u,1)}return e}function Wt(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==o){var o=r;si(r)?Qr.call(e,r,1):an(e,r)}}return e}function Vt(e,t){return e+ao(mo()*(t-e+1))}function Yt(e,t){var n="";if(!e||1>t||9007199254740991<t)return n;do{t%2&&(n+=e),(t=ao(t/2))&&(e+=e)}while(t);return n}function Ut(e,t){return Qo(fi(e,t,mr),e+"")}function Kt(e){return Be(hr(e))}function qt(e,t){var n=hr(e);return mi(n,ut(t,0,n.length))}function Gt(e,t,n,i){if(!qi(e))return e;for(var r=-1,o=(t=fn(t,e)).length,a=o-1,s=e;null!=s&&++r<o;){var u=_i(t[r]),l=n;if(r!=a){var c=s[u];(l=i?i(c,u,s):H)===H&&(l=qi(c)?c:si(t[r+1])?[]:{})}nt(s,u,l),s=s[u]}return e}function $t(e){return mi(hr(e))}function Qt(e,t,n){var i=-1,r=e.length;for(0>t&&(t=-t>r?0:r+t),0>(n=n>r?r:n)&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0,n=Sr(r);++i<r;)n[i]=e[i+t];return n}function Xt(e,t){var n;return Po(e,(function(e,i,r){return!(n=t(e,i,r))})),!!n}function Jt(e,t,n){var i=0,r=null==e?i:e.length;if("number"==typeof t&&t===t&&2147483647>=r){for(;i<r;){var o=i+r>>>1,a=e[o];null!==a&&!Ji(a)&&(n?a<=t:a<t)?i=o+1:r=o}return r}return en(e,t,mr,n)}function en(e,t,n,i){t=n(t);for(var r=0,o=null==e?0:e.length,a=t!==t,s=null===t,u=Ji(t),l=t===H;r<o;){var c=ao((r+o)/2),d=n(e[c]),h=d!==H,f=null===d,p=d===d,g=Ji(d);(a?i||p:l?p&&(i||h):s?p&&h&&(i||!f):u?p&&h&&!f&&(i||!g):!f&&!g&&(i?d<=t:d<t))?r=c+1:o=c}return po(o,4294967294)}function tn(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n],s=t?t(a):a;if(!n||!Bi(s,u)){var u=s;o[r++]=0===a?0:a}}return o}function nn(e){return"number"==typeof e?e:Ji(e)?z:+e}function rn(e){if("string"==typeof e)return e;if(Za(e))return h(e,rn)+"";if(Ji(e))return Ao?Ao.call(e):"";var t=e+"";return"0"==t&&1/e==-B?"-0":t}function on(e,t,n){var i=-1,r=c,o=e.length,a=!0,s=[],u=s;if(n)a=!1,r=d;else if(200<=o){if(r=t?null:Wo(e))return Z(r);a=!1,r=M,u=new Ze}else u=t?[]:s;e:for(;++i<o;){var l=e[i],h=t?t(l):l;l=n||0!==l?l:0;if(a&&h===h){for(var f=u.length;f--;)if(u[f]===h)continue e;t&&u.push(h),s.push(l)}else r(u,h,n)||(u!==s&&u.push(h),s.push(l))}return s}function an(e,t){return null==(e=2>(t=fn(t,e)).length?e:bt(e,Qt(t,0,-1)))||delete e[_i(Li(t))]}function sn(e,t,n,i){for(var r=e.length,o=i?r:-1;(i?o--:++o<r)&&t(e[o],o,e););return n?Qt(e,i?0:o,i?o+1:r):Qt(e,i?o+1:0,i?r:o)}function un(e,t){var n=e;return n instanceof ke&&(n=n.value()),p(t,(function(e,t){return t.func.apply(t.thisArg,f([e],t.args))}),n)}function ln(e,t,n){var i=e.length;if(2>i)return i?on(e[0]):[];for(var r=-1,o=Sr(i);++r<i;)for(var a=e[r],s=-1;++s<i;)s!=r&&(o[r]=ht(o[r]||a,e[s],t,n));return on(vt(o,1),t,n)}function cn(e,t,n){for(var i=-1,r=e.length,o=t.length,a={};++i<r;)n(a,e[i],i<o?t[i]:H);return a}function dn(e){return Wi(e)?e:[]}function hn(e){return"function"==typeof e?e:mr}function fn(e,t){return Za(e)?e:li(e,t)?[e]:Xo(ar(e))}function pn(e,t,n){var i=e.length;return n=n===H?i:n,!t&&n>=i?e:Qt(e,t,n)}function gn(e,t){if(t)return e.slice();var n=e.length;n=Kr?Kr(n):new e.constructor(n);return e.copy(n),n}function vn(e){var t=new e.constructor(e.byteLength);return new Ur(t).set(new Ur(e)),t}function mn(e,t){return new e.constructor(t?vn(e.buffer):e.buffer,e.byteOffset,e.length)}function _n(e,t){if(e!==t){var n=e!==H,i=null===e,r=e===e,o=Ji(e),a=t!==H,s=null===t,u=t===t,l=Ji(t);if(!s&&!l&&!o&&e>t||o&&a&&u&&!s&&!l||i&&a&&u||!n&&u||!r)return 1;if(!i&&!o&&!l&&e<t||l&&n&&r&&!i&&!o||s&&n&&r||!a&&r||!u)return-1}return 0}function yn(e,t,n,i){var r=-1,o=e.length,a=n.length,s=-1,u=t.length,l=fo(o-a,0),c=Sr(u+l);for(i=!i;++s<u;)c[s]=t[s];for(;++r<a;)(i||r<o)&&(c[n[r]]=e[r]);for(;l--;)c[s++]=e[r++];return c}function bn(e,t,n,i){var r=-1,o=e.length,a=-1,s=n.length,u=-1,l=t.length,c=fo(o-s,0),d=Sr(c+l);for(i=!i;++r<c;)d[r]=e[r];for(c=r;++u<l;)d[c+u]=t[u];for(;++a<s;)(i||r<o)&&(d[c+n[a]]=e[r++]);return d}function wn(e,t){var n=-1,i=e.length;for(t||(t=Sr(i));++n<i;)t[n]=e[n];return t}function Cn(e,t,n,i){var r=!n;n||(n={});for(var o=-1,a=t.length;++o<a;){var s=t[o],u=i?i(n[s],e[s],s,n,e):H;u===H&&(u=e[s]),r?at(n,s,u):nt(n,s,u)}return n}function kn(e,t){return function(n,i){var r=Za(n)?o:rt,a=t?t():{};return r(n,e,ei(i,2),a)}}function Sn(e){return Ut((function(t,n){var i=-1,r=n.length,o=1<r?n[r-1]:H,a=2<r?n[2]:H;o=3<e.length&&"function"==typeof o?(r--,o):H;for(a&&ui(n[0],n[1],a)&&(o=3>r?H:o,r=1),t=Dr(t);++i<r;)(a=n[i])&&e(t,a,i,o);return t}))}function xn(e,t){return function(n,i){if(null==n)return n;if(!zi(n))return e(n,i);for(var r=n.length,o=t?r:-1,a=Dr(n);(t?o--:++o<r)&&!1!==i(a[o],o,a););return n}}function Ln(e){return function(t,n,i){for(var r=-1,o=Dr(t),a=(i=i(t)).length;a--;){var s=i[e?a:++r];if(!1===n(o[s],s,o))break}return t}}function En(e){return function(t){t=ar(t);var n=De.test(t)?j(t):H,i=n?n[0]:t.charAt(0);return t=n?pn(n,1).join(""):t.slice(1),i[e]()+t}}function Nn(e){return function(t){return p(gr(pr(t).replace(xe,"")),e,"")}}function Dn(e){return function(){switch((t=arguments).length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var t,n=Ro(e.prototype);return qi(t=e.apply(n,t))?t:n}}function Mn(e,t,n){var i=Dn(e);return function o(){for(var a=arguments.length,s=Sr(a),u=a,l=Jn(o);u--;)s[u]=arguments[u];return(a-=(u=3>a&&s[0]!==l&&s[a-1]!==l?[]:P(s,l)).length)<n?Bn(e,t,In,o.placeholder,H,s,u,H,H,n-a):r(this&&this!==je&&this instanceof o?i:e,this,s)}}function Tn(e){return function(t,n,i){var r=Dr(t);if(!zi(t)){var o=ei(n,3);t=lr(t),n=function(e){return o(r[e],e,r)}}return-1<(n=e(t,n,i))?r[o?t[n]:n]:H}}function On(e){return Gn((function(t){var n=t.length,i=n,r=S.prototype.thru;for(e&&t.reverse();i--;){if("function"!=typeof(a=t[i]))throw new Or("Expected a function");if(r&&!o&&"wrapper"==Xn(a))var o=new S([],!0)}for(i=o?i:n;++i<n;){var a,s="wrapper"==(r=Xn(a=t[i]))?Vo(a):H;o=s&&ci(s[0])&&424==s[1]&&!s[4].length&&1==s[9]?o[Xn(s[0])].apply(o,s[3]):1==a.length&&ci(a)?o[r]():o.thru(a)}return function(){var e=(r=arguments)[0];if(o&&1==r.length&&Za(e))return o.plant(e).value();for(var i=0,r=n?t[i].apply(this,r):e;++i<n;)r=t[i].call(this,r);return r}}))}function In(e,t,n,i,r,o,a,s,u,l){var c=128&t,d=1&t,h=2&t,f=24&t,p=512&t,g=h?H:Dn(e);return function v(){for(var m=arguments.length,_=Sr(m),y=m;y--;)_[y]=arguments[y];if(f){var b,w=Jn(v);y=_.length;for(b=0;y--;)_[y]===w&&++b}if(i&&(_=yn(_,i,r,f)),o&&(_=bn(_,o,a,f)),m-=b,f&&m<l)return w=P(_,w),Bn(e,t,In,v.placeholder,n,_,w,s,u,l-m);if(w=d?n:this,y=h?w[e]:e,m=_.length,s){b=_.length;for(var C=po(s.length,b),k=wn(_);C--;){var S=s[C];_[C]=si(S,b)?k[S]:H}}else p&&1<m&&_.reverse();return c&&u<m&&(_.length=u),this&&this!==je&&this instanceof v&&(y=g||Dn(y)),y.apply(w,_)}}function An(e,t){return function(n,i){return function(e,t,n,i){return mt(e,(function(e,r,o){t(i,n(e),r,o)})),i}(n,e,t(i),{})}}function Rn(e,t){return function(n,i){var r;if(n===H&&i===H)return t;if(n!==H&&(r=n),i!==H){if(r===H)return i;"string"==typeof n||"string"==typeof i?(n=rn(n),i=rn(i)):(n=nn(n),i=nn(i)),r=e(n,i)}return r}}function Pn(e){return Gn((function(t){return t=h(t,N(ei())),Ut((function(n){var i=this;return e(t,(function(e){return r(e,i,n)}))}))}))}function Zn(e,t){var n=(t=t===H?" ":rn(t)).length;return 2>n?n?Yt(t,e):t:(n=Yt(t,oo(e/F(t))),De.test(t)?pn(j(n),0,e).join(""):n.slice(0,e))}function Fn(e,t,n,i){var o=1&t,a=Dn(e);return function t(){for(var s=-1,u=arguments.length,l=-1,c=i.length,d=Sr(c+u),h=this&&this!==je&&this instanceof t?a:e;++l<c;)d[l]=i[l];for(;u--;)d[l++]=arguments[++s];return r(h,o?n:this,d)}}function jn(e){return function(t,n,i){i&&"number"!=typeof i&&ui(t,n,i)&&(n=i=H),t=tr(t),n===H?(n=t,t=0):n=tr(n),i=i===H?t<n?1:-1:tr(i);var r=-1;n=fo(oo((n-t)/(i||1)),0);for(var o=Sr(n);n--;)o[e?n:++r]=t,t+=i;return o}}function Hn(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=rr(t),n=rr(n)),e(t,n)}}function Bn(e,t,n,i,r,o,a,s,u,l){var c=8&t;return 4&(t=(t|(c?32:64))&~(c?64:32))||(t&=-4),r=[e,t,r,c?o:H,c?a:H,o=c?H:o,a=c?H:a,s,u,l],n=n.apply(H,r),ci(e)&&Go(n,r),n.placeholder=i,gi(n,e,t)}function zn(e){var t=Nr[e];return function(e,n){if(e=rr(e),n=null==n?0:po(nr(n),292)){var i=(ar(e)+"e").split("e");return+((i=(ar(i=t(i[0]+"e"+(+i[1]+n)))+"e").split("e"))[0]+"e"+(+i[1]-n))}return t(e)}}function Wn(e){return function(t){var n=Ko(t);return"[object Map]"==n?A(t):"[object Set]"==n?function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}(t):function(e,t){return h(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Vn(e,t,n,i,r,o,a,s){var u=2&t;if(!u&&"function"!=typeof e)throw new Or("Expected a function");var l=i?i.length:0;if(l||(t&=-97,i=r=H),a=a===H?a:fo(nr(a),0),s=s===H?s:nr(s),l-=r?r.length:0,64&t){var c=i,d=r;i=r=H}var h=u?H:Vo(e);return o=[e,t,n,i,r,c,d,o,a,s],h&&(t=(n=o[1])|(e=h[1]),i=128==e&&8==n||128==e&&256==n&&o[7].length<=h[8]||384==e&&h[7].length<=h[8]&&8==n,131>t||i)&&(1&e&&(o[2]=h[2],t|=1&n?0:4),(n=h[3])&&(i=o[3],o[3]=i?yn(i,n,h[4]):n,o[4]=i?P(o[3],"__lodash_placeholder__"):h[4]),(n=h[5])&&(i=o[5],o[5]=i?bn(i,n,h[6]):n,o[6]=i?P(o[5],"__lodash_placeholder__"):h[6]),(n=h[7])&&(o[7]=n),128&e&&(o[8]=null==o[8]?h[8]:po(o[8],h[8])),null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=t),e=o[0],t=o[1],n=o[2],i=o[3],r=o[4],!(s=o[9]=o[9]===H?u?0:e.length:fo(o[9]-l,0))&&24&t&&(t&=-25),u=t&&1!=t?8==t||16==t?Mn(e,t,s):32!=t&&33!=t||r.length?In.apply(H,o):Fn(e,t,n,i):function(e,t,n){var i=1&t,r=Dn(e);return function t(){return(this&&this!==je&&this instanceof t?r:e).apply(i?n:this,arguments)}}(e,t,n),gi((h?Ho:Go)(u,o),e,t)}function Yn(e,t,n,i){return e===H||Bi(e,Ar[n])&&!Zr.call(i,n)?t:e}function Un(e,t,n,i,r,o){return qi(e)&&qi(t)&&(o.set(t,e),Ft(e,t,H,Un,o),o.delete(t)),e}function Kn(e){return Qi(e)?H:e}function qn(e,t,n,i,r,o){var a=1&n,s=e.length;if(s!=(u=t.length)&&!(a&&u>s))return!1;if((u=o.get(e))&&o.get(t))return u==t;var u=-1,l=!0,c=2&n?new Ze:H;for(o.set(e,t),o.set(t,e);++u<s;){var d=e[u],h=t[u];if(i)var f=a?i(h,d,u,t,e,o):i(d,h,u,e,t,o);if(f!==H){if(f)continue;l=!1;break}if(c){if(!v(t,(function(e,t){if(!M(c,t)&&(d===e||r(d,e,n,i,o)))return c.push(t)}))){l=!1;break}}else if(d!==h&&!r(d,h,n,i,o)){l=!1;break}}return o.delete(e),o.delete(t),l}function Gn(e){return Qo(fi(e,H,Si),e+"")}function $n(e){return wt(e,lr,Yo)}function Qn(e){return wt(e,cr,Uo)}function Xn(e){for(var t=e.name+"",n=Lo[t],i=Zr.call(Lo,t)?n.length:0;i--;){var r=n[i],o=r.func;if(null==o||o==e)return r.name}return t}function Jn(e){return(Zr.call(n,"placeholder")?n:e).placeholder}function ei(){var e=(e=n.iteratee||_r)===_r?Ot:e;return arguments.length?e(arguments[0],arguments[1]):e}function ti(e,t){var n=e.__data__,i=typeof t;return("string"==i||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==t:null===t)?n["string"==typeof t?"string":"hash"]:n.map}function ni(e){for(var t=lr(e),n=t.length;n--;){var i=t[n],r=e[i];t[n]=[i,r,r===r&&!qi(r)]}return t}function ii(e,t){var n=null==e?H:e[t];return Tt(n)?n:H}function ri(e,t,n){for(var i=-1,r=(t=fn(t,e)).length,o=!1;++i<r;){var a=_i(t[i]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++i!=r?o:!!(r=null==e?0:e.length)&&Ki(r)&&si(a,r)&&(Za(e)||Pa(e))}function oi(e){return"function"!=typeof e.constructor||di(e)?{}:Ro(qr(e))}function ai(e){return Za(e)||Pa(e)||!!(Xr&&e&&e[Xr])}function si(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&ye.test(e))&&-1<e&&0==e%1&&e<t}function ui(e,t,n){if(!qi(n))return!1;var i=typeof t;return!!("number"==i?zi(n)&&si(t,n.length):"string"==i&&t in n)&&Bi(n[t],e)}function li(e,t){if(Za(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ji(e))||te.test(e)||!ee.test(e)||null!=t&&e in Dr(t)}function ci(e){var t=Xn(e),i=n[t];return"function"==typeof i&&t in ke.prototype&&(e===i||!!(t=Vo(i))&&e===t[0])}function di(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ar)}function hi(e,t){return function(n){return null!=n&&n[e]===t&&(t!==H||e in Dr(n))}}function fi(e,t,n){return t=fo(t===H?e.length-1:t,0),function(){for(var i=arguments,o=-1,a=fo(i.length-t,0),s=Sr(a);++o<a;)s[o]=i[t+o];for(o=-1,a=Sr(t+1);++o<t;)a[o]=i[o];return a[t]=n(s),r(e,this,a)}}function pi(e,t){if("__proto__"!=t)return e[t]}function gi(e,t,n){var i=t+"";t=Qo;var r,o=bi;return n=o(r=(r=i.match(le))?r[1].split(ce):[],n),(o=n.length)&&(n[r=o-1]=(1<o?"& ":"")+n[r],n=n.join(2<o?", ":" "),i=i.replace(ue,"{\n/* [wrapped with "+n+"] */\n")),t(e,i)}function vi(e){var t=0,n=0;return function(){var i=go(),r=16-(i-n);if(n=i,0<r){if(800<=++t)return arguments[0]}else t=0;return e.apply(H,arguments)}}function mi(e,t){var n=-1,i=(r=e.length)-1;for(t=t===H?r:t;++n<t;){var r,o=e[r=Vt(n,i)];e[r]=e[n],e[n]=o}return e.length=t,e}function _i(e){if("string"==typeof e||Ji(e))return e;var t=e+"";return"0"==t&&1/e==-B?"-0":t}function yi(e){if(null!=e){try{return Pr.call(e)}catch(e){}return e+""}return""}function bi(e,t){return a(W,(function(n){var i="_."+n[0];t&n[1]&&!c(e,i)&&e.push(i)})),e.sort()}function wi(e){if(e instanceof ke)return e.clone();var t=new S(e.__wrapped__,e.__chain__);return t.__actions__=wn(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}function Ci(e,t,n){var i=null==e?0:e.length;return i?(0>(n=null==n?0:nr(n))&&(n=fo(i+n,0)),_(e,ei(t,3),n)):-1}function ki(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=i-1;return n!==H&&(r=nr(n),r=0>n?fo(i+r,0):po(r,i-1)),_(e,ei(t,3),r,!0)}function Si(e){return null!=e&&e.length?vt(e,1):[]}function xi(e){return e&&e.length?e[0]:H}function Li(e){var t=null==e?0:e.length;return t?e[t-1]:H}function Ei(e,t){return e&&e.length&&t&&t.length?zt(e,t):e}function Ni(e){return null==e?e:_o.call(e)}function Di(e){if(!e||!e.length)return[];var t=0;return e=l(e,(function(e){if(Wi(e))return t=fo(e.length,t),!0})),E(t,(function(t){return h(e,k(t))}))}function Mi(e,t){if(!e||!e.length)return[];var n=Di(e);return null==t?n:h(n,(function(e){return r(t,H,e)}))}function Ti(e){return(e=n(e)).__chain__=!0,e}function Oi(e,t){return t(e)}function Ii(e,t){return(Za(e)?a:Po)(e,ei(t,3))}function Ai(e,t){return(Za(e)?s:Zo)(e,ei(t,3))}function Ri(e,t){return(Za(e)?h:Rt)(e,ei(t,3))}function Pi(e,t,n){return t=n?H:t,t=e&&null==t?e.length:t,Vn(e,128,H,H,H,H,t)}function Zi(e,t){var n;if("function"!=typeof t)throw new Or("Expected a function");return e=nr(e),function(){return 0<--e&&(n=t.apply(this,arguments)),1>=e&&(t=H),n}}function Fi(e,t,n){function i(t){var n=u,i=l;return u=l=H,p=t,d=e.apply(i,n)}function r(e){var n=e-f;return e-=p,f===H||n>=t||0>n||v&&e>=c}function o(){var e=xa();if(r(e))return a(e);var n,i=$o;n=e-p,e=t-(e-f),n=v?po(e,c-n):e,h=i(o,n)}function a(e){return h=H,m&&u?i(e):(u=l=H,d)}function s(){var e=xa(),n=r(e);if(u=arguments,l=this,f=e,n){if(h===H)return p=e=f,h=$o(o,t),g?i(e):d;if(v)return h=$o(o,t),i(f)}return h===H&&(h=$o(o,t)),d}var u,l,c,d,h,f,p=0,g=!1,v=!1,m=!0;if("function"!=typeof e)throw new Or("Expected a function");return t=rr(t)||0,qi(n)&&(g=!!n.leading,c=(v="maxWait"in n)?fo(rr(n.maxWait)||0,t):c,m="trailing"in n?!!n.trailing:m),s.cancel=function(){h!==H&&zo(h),p=0,u=f=l=h=H},s.flush=function(){return h===H?d:a(xa())},s}function ji(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Or("Expected a function");var n=function n(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;return o.has(r)?o.get(r):(i=e.apply(this,i),n.cache=o.set(r,i)||o,i)};return n.cache=new(ji.Cache||Ae),n}function Hi(e){if("function"!=typeof e)throw new Or("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Bi(e,t){return e===t||e!==e&&t!==t}function zi(e){return null!=e&&Ki(e.length)&&!Yi(e)}function Wi(e){return Gi(e)&&zi(e)}function Vi(e){if(!Gi(e))return!1;var t=Ct(e);return"[object Error]"==t||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Qi(e)}function Yi(e){return!!qi(e)&&("[object Function]"==(e=Ct(e))||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e)}function Ui(e){return"number"==typeof e&&e==nr(e)}function Ki(e){return"number"==typeof e&&-1<e&&0==e%1&&9007199254740991>=e}function qi(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Gi(e){return null!=e&&"object"==typeof e}function $i(e){return"number"==typeof e||Gi(e)&&"[object Number]"==Ct(e)}function Qi(e){return!(!Gi(e)||"[object Object]"!=Ct(e))&&(null===(e=qr(e))||"function"==typeof(e=Zr.call(e,"constructor")&&e.constructor)&&e instanceof e&&Pr.call(e)==Br)}function Xi(e){return"string"==typeof e||!Za(e)&&Gi(e)&&"[object String]"==Ct(e)}function Ji(e){return"symbol"==typeof e||Gi(e)&&"[object Symbol]"==Ct(e)}function er(e){if(!e)return[];if(zi(e))return Xi(e)?j(e):wn(e);if(Jr&&e[Jr]){e=e[Jr]();for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}return("[object Map]"==(t=Ko(e))?A:"[object Set]"==t?Z:hr)(e)}function tr(e){return e?(e=rr(e))===B||e===-B?17976931348623157e292*(0>e?-1:1):e===e?e:0:0===e?e:0}function nr(e){var t=(e=tr(e))%1;return e===e?t?e-t:e:0}function ir(e){return e?ut(nr(e),0,4294967295):0}function rr(e){if("number"==typeof e)return e;if(Ji(e))return z;if(qi(e)&&(e=qi(e="function"==typeof e.valueOf?e.valueOf():e)?e+"":e),"string"!=typeof e)return 0===e?e:+e;e=e.replace(oe,"");var t=ve.test(e);return t||_e.test(e)?Pe(e.slice(2),t?2:8):ge.test(e)?z:+e}function or(e){return Cn(e,cr(e))}function ar(e){return null==e?"":rn(e)}function sr(e,t,n){return(e=null==e?H:bt(e,t))===H?n:e}function ur(e,t){return null!=e&&ri(e,t,xt)}function lr(e){return zi(e)?He(e):It(e)}function cr(e){if(zi(e))e=He(e,!0);else if(qi(e)){var t,n=di(e),i=[];for(t in e)("constructor"!=t||!n&&Zr.call(e,t))&&i.push(t);e=i}else{if(t=[],null!=e)for(n in Dr(e))t.push(n);e=t}return e}function dr(e,t){if(null==e)return{};var n=h(Qn(e),(function(e){return[e]}));return t=ei(t),Bt(e,n,(function(e,n){return t(e,n[0])}))}function hr(e){return null==e?[]:D(e,lr(e))}function fr(e){return vs(ar(e).toLowerCase())}function pr(e){return(e=ar(e))&&e.replace(be,Xe).replace(Le,"")}function gr(e,t,n){return e=ar(e),(t=n?H:t)===H?Me.test(e)?e.match(Ne)||[]:e.match(de)||[]:e.match(t)||[]}function vr(e){return function(){return e}}function mr(e){return e}function _r(e){return Ot("function"==typeof e?e:lt(e,1))}function yr(e,t,n){var i=lr(t),r=yt(t,i);null!=n||qi(t)&&(r.length||!i.length)||(n=t,t=e,e=this,r=yt(t,lr(t)));var o=!(qi(n)&&"chain"in n&&!n.chain),s=Yi(e);return a(r,(function(n){var i=t[n];e[n]=i,s&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=wn(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,f([this.value()],arguments))})})),e}function br(){}function wr(e){return li(e)?k(_i(e)):function(e){return function(t){return bt(t,e)}}(e)}function Cr(){return[]}function kr(){return!1}var Sr=(t=null==t?je:tt.defaults(je.Object(),t,tt.pick(je,Te))).Array,xr=t.Date,Lr=t.Error,Er=t.Function,Nr=t.Math,Dr=t.Object,Mr=t.RegExp,Tr=t.String,Or=t.TypeError,Ir=Sr.prototype,Ar=Dr.prototype,Rr=t["__core-js_shared__"],Pr=Er.prototype.toString,Zr=Ar.hasOwnProperty,Fr=0,jr=function(){var e=/[^.]+$/.exec(Rr&&Rr.keys&&Rr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Hr=Ar.toString,Br=Pr.call(Dr),zr=je._,Wr=Mr("^"+Pr.call(Zr).replace(ie,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Vr=ze?t.Buffer:H,Yr=t.Symbol,Ur=t.Uint8Array,Kr=Vr?Vr.allocUnsafe:H,qr=R(Dr.getPrototypeOf,Dr),Gr=Dr.create,$r=Ar.propertyIsEnumerable,Qr=Ir.splice,Xr=Yr?Yr.isConcatSpreadable:H,Jr=Yr?Yr.iterator:H,eo=Yr?Yr.toStringTag:H,to=function(){try{var e=ii(Dr,"defineProperty");return e({},"",{}),e}catch(e){}}(),no=t.clearTimeout!==je.clearTimeout&&t.clearTimeout,io=xr&&xr.now!==je.Date.now&&xr.now,ro=t.setTimeout!==je.setTimeout&&t.setTimeout,oo=Nr.ceil,ao=Nr.floor,so=Dr.getOwnPropertySymbols,uo=Vr?Vr.isBuffer:H,lo=t.isFinite,co=Ir.join,ho=R(Dr.keys,Dr),fo=Nr.max,po=Nr.min,go=xr.now,vo=t.parseInt,mo=Nr.random,_o=Ir.reverse,yo=ii(t,"DataView"),bo=ii(t,"Map"),wo=ii(t,"Promise"),Co=ii(t,"Set"),ko=ii(t,"WeakMap"),So=ii(Dr,"create"),xo=ko&&new ko,Lo={},Eo=yi(yo),No=yi(bo),Do=yi(wo),Mo=yi(Co),To=yi(ko),Oo=Yr?Yr.prototype:H,Io=Oo?Oo.valueOf:H,Ao=Oo?Oo.toString:H,Ro=function(){function e(){}return function(t){return qi(t)?Gr?Gr(t):(e.prototype=t,t=new e,e.prototype=H,t):{}}}();n.templateSettings={escape:Q,evaluate:X,interpolate:J,variable:"",imports:{_:n}},n.prototype=i.prototype,n.prototype.constructor=n,S.prototype=Ro(i.prototype),S.prototype.constructor=S,ke.prototype=Ro(i.prototype),ke.prototype.constructor=ke,Se.prototype.clear=function(){this.__data__=So?So(null):{},this.size=0},Se.prototype.delete=function(e){return e=this.has(e)&&delete this.__data__[e],this.size-=e?1:0,e},Se.prototype.get=function(e){var t=this.__data__;return So?"__lodash_hash_undefined__"===(e=t[e])?H:e:Zr.call(t,e)?t[e]:H},Se.prototype.has=function(e){var t=this.__data__;return So?t[e]!==H:Zr.call(t,e)},Se.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=So&&t===H?"__lodash_hash_undefined__":t,this},Ee.prototype.clear=function(){this.__data__=[],this.size=0},Ee.prototype.delete=function(e){var t=this.__data__;return!(0>(e=it(t,e)))&&(e==t.length-1?t.pop():Qr.call(t,e,1),--this.size,!0)},Ee.prototype.get=function(e){var t=this.__data__;return 0>(e=it(t,e))?H:t[e][1]},Ee.prototype.has=function(e){return-1<it(this.__data__,e)},Ee.prototype.set=function(e,t){var n=this.__data__,i=it(n,e);return 0>i?(++this.size,n.push([e,t])):n[i][1]=t,this},Ae.prototype.clear=function(){this.size=0,this.__data__={hash:new Se,map:new(bo||Ee),string:new Se}},Ae.prototype.delete=function(e){return e=ti(this,e).delete(e),this.size-=e?1:0,e},Ae.prototype.get=function(e){return ti(this,e).get(e)},Ae.prototype.has=function(e){return ti(this,e).has(e)},Ae.prototype.set=function(e,t){var n=ti(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},Ze.prototype.add=Ze.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Ze.prototype.has=function(e){return this.__data__.has(e)},Fe.prototype.clear=function(){this.__data__=new Ee,this.size=0},Fe.prototype.delete=function(e){var t=this.__data__;return e=t.delete(e),this.size=t.size,e},Fe.prototype.get=function(e){return this.__data__.get(e)},Fe.prototype.has=function(e){return this.__data__.has(e)},Fe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ee){var i=n.__data__;if(!bo||199>i.length)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ae(i)}return n.set(e,t),this.size=n.size,this};var Po=xn(mt),Zo=xn(_t,!0),Fo=Ln(),jo=Ln(!0),Ho=xo?function(e,t){return xo.set(e,t),e}:mr,Bo=to?function(e,t){return to(e,"toString",{configurable:!0,enumerable:!1,value:vr(t),writable:!0})}:mr,zo=no||function(e){return je.clearTimeout(e)},Wo=Co&&1/Z(new Co([,-0]))[1]==B?function(e){return new Co(e)}:br,Vo=xo?function(e){return xo.get(e)}:br,Yo=so?function(e){return null==e?[]:(e=Dr(e),l(so(e),(function(t){return $r.call(e,t)})))}:Cr,Uo=so?function(e){for(var t=[];e;)f(t,Yo(e)),e=qr(e);return t}:Cr,Ko=Ct;(yo&&"[object DataView]"!=Ko(new yo(new ArrayBuffer(1)))||bo&&"[object Map]"!=Ko(new bo)||wo&&"[object Promise]"!=Ko(wo.resolve())||Co&&"[object Set]"!=Ko(new Co)||ko&&"[object WeakMap]"!=Ko(new ko))&&(Ko=function(e){var t=Ct(e);if(e=(e="[object Object]"==t?e.constructor:H)?yi(e):"")switch(e){case Eo:return"[object DataView]";case No:return"[object Map]";case Do:return"[object Promise]";case Mo:return"[object Set]";case To:return"[object WeakMap]"}return t});var qo=Rr?Yi:kr,Go=vi(Ho),$o=ro||function(e,t){return je.setTimeout(e,t)},Qo=vi(Bo),Xo=function(e){var t=(e=ji(e,(function(e){return 500===t.size&&t.clear(),e}))).cache;return e}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ne,(function(e,n,i,r){t.push(i?r.replace(he,"$1"):n||e)})),t})),Jo=Ut((function(e,t){return Wi(e)?ht(e,vt(t,1,Wi,!0)):[]})),ea=Ut((function(e,t){var n=Li(t);return Wi(n)&&(n=H),Wi(e)?ht(e,vt(t,1,Wi,!0),ei(n,2)):[]})),ta=Ut((function(e,t){var n=Li(t);return Wi(n)&&(n=H),Wi(e)?ht(e,vt(t,1,Wi,!0),H,n):[]})),na=Ut((function(e){var t=h(e,dn);return t.length&&t[0]===e[0]?Lt(t):[]})),ia=Ut((function(e){var t=Li(e),n=h(e,dn);return t===Li(n)?t=H:n.pop(),n.length&&n[0]===e[0]?Lt(n,ei(t,2)):[]})),ra=Ut((function(e){var t=Li(e),n=h(e,dn);return(t="function"==typeof t?t:H)&&n.pop(),n.length&&n[0]===e[0]?Lt(n,H,t):[]})),oa=Ut(Ei),aa=Gn((function(e,t){var n=null==e?0:e.length,i=st(e,t);return Wt(e,h(t,(function(e){return si(e,n)?+e:e})).sort(_n)),i})),sa=Ut((function(e){return on(vt(e,1,Wi,!0))})),ua=Ut((function(e){var t=Li(e);return Wi(t)&&(t=H),on(vt(e,1,Wi,!0),ei(t,2))})),la=Ut((function(e){var t="function"==typeof(t=Li(e))?t:H;return on(vt(e,1,Wi,!0),H,t)})),ca=Ut((function(e,t){return Wi(e)?ht(e,t):[]})),da=Ut((function(e){return ln(l(e,Wi))})),ha=Ut((function(e){var t=Li(e);return Wi(t)&&(t=H),ln(l(e,Wi),ei(t,2))})),fa=Ut((function(e){var t="function"==typeof(t=Li(e))?t:H;return ln(l(e,Wi),H,t)})),pa=Ut(Di),ga=Ut((function(e){var t="function"==typeof(t=1<(t=e.length)?e[t-1]:H)?(e.pop(),t):H;return Mi(e,t)})),va=Gn((function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,r=function(t){return st(t,e)};return!(1<t||this.__actions__.length)&&i instanceof ke&&si(n)?((i=i.slice(n,+n+(t?1:0))).__actions__.push({func:Oi,args:[r],thisArg:H}),new S(i,this.__chain__).thru((function(e){return t&&!e.length&&e.push(H),e}))):this.thru(r)})),ma=kn((function(e,t,n){Zr.call(e,n)?++e[n]:at(e,n,1)})),_a=Tn(Ci),ya=Tn(ki),ba=kn((function(e,t,n){Zr.call(e,n)?e[n].push(t):at(e,n,[t])})),wa=Ut((function(e,t,n){var i=-1,o="function"==typeof t,a=zi(e)?Sr(e.length):[];return Po(e,(function(e){a[++i]=o?r(t,e,n):Et(e,t,n)})),a})),Ca=kn((function(e,t,n){at(e,n,t)})),ka=kn((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]})),Sa=Ut((function(e,t){if(null==e)return[];var n=t.length;return 1<n&&ui(e,t[0],t[1])?t=[]:2<n&&ui(t[0],t[1],t[2])&&(t=[t[0]]),Ht(e,vt(t,1),[])})),xa=io||function(){return je.Date.now()},La=Ut((function(e,t,n){var i=1;if(n.length){var r=P(n,Jn(La));i=32|i}return Vn(e,i,t,n,r)})),Ea=Ut((function(e,t,n){var i=3;if(n.length){var r=P(n,Jn(Ea));i=32|i}return Vn(t,i,e,n,r)})),Na=Ut((function(e,t){return dt(e,1,t)})),Da=Ut((function(e,t,n){return dt(e,rr(t)||0,n)}));ji.Cache=Ae;var Ma=Ut((function(e,t){var n=(t=1==t.length&&Za(t[0])?h(t[0],N(ei())):h(vt(t,1),N(ei()))).length;return Ut((function(i){for(var o=-1,a=po(i.length,n);++o<a;)i[o]=t[o].call(this,i[o]);return r(e,this,i)}))})),Ta=Ut((function(e,t){return Vn(e,32,H,t,P(t,Jn(Ta)))})),Oa=Ut((function(e,t){return Vn(e,64,H,t,P(t,Jn(Oa)))})),Ia=Gn((function(e,t){return Vn(e,256,H,H,H,t)})),Aa=Hn(kt),Ra=Hn((function(e,t){return e>=t})),Pa=Nt(function(){return arguments}())?Nt:function(e){return Gi(e)&&Zr.call(e,"callee")&&!$r.call(e,"callee")},Za=Sr.isArray,Fa=Ye?N(Ye):function(e){return Gi(e)&&"[object ArrayBuffer]"==Ct(e)},ja=uo||kr,Ha=Ue?N(Ue):function(e){return Gi(e)&&"[object Date]"==Ct(e)},Ba=Ke?N(Ke):function(e){return Gi(e)&&"[object Map]"==Ko(e)},za=qe?N(qe):function(e){return Gi(e)&&"[object RegExp]"==Ct(e)},Wa=Ge?N(Ge):function(e){return Gi(e)&&"[object Set]"==Ko(e)},Va=$e?N($e):function(e){return Gi(e)&&Ki(e.length)&&!!Oe[Ct(e)]},Ya=Hn(At),Ua=Hn((function(e,t){return e<=t})),Ka=Sn((function(e,t){if(di(t)||zi(t))Cn(t,lr(t),e);else for(var n in t)Zr.call(t,n)&&nt(e,n,t[n])})),qa=Sn((function(e,t){Cn(t,cr(t),e)})),Ga=Sn((function(e,t,n,i){Cn(t,cr(t),e,i)})),$a=Sn((function(e,t,n,i){Cn(t,lr(t),e,i)})),Qa=Gn(st),Xa=Ut((function(e,t){e=Dr(e);var n=-1,i=t.length;for((r=2<i?t[2]:H)&&ui(t[0],t[1],r)&&(i=1);++n<i;)for(var r,o=cr(r=t[n]),a=-1,s=o.length;++a<s;){var u=o[a],l=e[u];(l===H||Bi(l,Ar[u])&&!Zr.call(e,u))&&(e[u]=r[u])}return e})),Ja=Ut((function(e){return e.push(H,Un),r(rs,H,e)})),es=An((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Hr.call(t)),e[t]=n}),vr(mr)),ts=An((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Hr.call(t)),Zr.call(e,t)?e[t].push(n):e[t]=[n]}),ei),ns=Ut(Et),is=Sn((function(e,t,n){Ft(e,t,n)})),rs=Sn((function(e,t,n,i){Ft(e,t,n,i)})),os=Gn((function(e,t){var n={};if(null==e)return n;var i=!1;t=h(t,(function(t){return t=fn(t,e),i||(i=1<t.length),t})),Cn(e,Qn(e),n),i&&(n=lt(n,7,Kn));for(var r=t.length;r--;)an(n,t[r]);return n})),as=Gn((function(e,t){return null==e?{}:function(e,t){return Bt(e,t,(function(t,n){return ur(e,n)}))}(e,t)})),ss=Wn(lr),us=Wn(cr),ls=Nn((function(e,t,n){return t=t.toLowerCase(),e+(n?fr(t):t)})),cs=Nn((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),ds=Nn((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),hs=En("toLowerCase"),fs=Nn((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()})),ps=Nn((function(e,t,n){return e+(n?" ":"")+vs(t)})),gs=Nn((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),vs=En("toUpperCase"),ms=Ut((function(e,t){try{return r(e,H,t)}catch(r){return Vi(r)?r:new Lr(r)}})),_s=Gn((function(e,t){return a(t,(function(t){t=_i(t),at(e,t,La(e[t],e))})),e})),ys=On(),bs=On(!0),ws=Ut((function(e,t){return function(n){return Et(n,e,t)}})),Cs=Ut((function(e,t){return function(n){return Et(e,n,t)}})),ks=Pn(h),Ss=Pn(u),xs=Pn(v),Ls=jn(),Es=jn(!0),Ns=Rn((function(e,t){return e+t}),0),Ds=zn("ceil"),Ms=Rn((function(e,t){return e/t}),1),Ts=zn("floor"),Os=Rn((function(e,t){return e*t}),1),Is=zn("round"),As=Rn((function(e,t){return e-t}),0);return n.after=function(e,t){if("function"!=typeof t)throw new Or("Expected a function");return e=nr(e),function(){if(1>--e)return t.apply(this,arguments)}},n.ary=Pi,n.assign=Ka,n.assignIn=qa,n.assignInWith=Ga,n.assignWith=$a,n.at=Qa,n.before=Zi,n.bind=La,n.bindAll=_s,n.bindKey=Ea,n.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Za(e)?e:[e]},n.chain=Ti,n.chunk=function(e,t,n){if(t=(n?ui(e,t,n):t===H)?1:fo(nr(t),0),!(n=null==e?0:e.length)||1>t)return[];for(var i=0,r=0,o=Sr(oo(n/t));i<n;)o[r++]=Qt(e,i,i+=t);return o},n.compact=function(e){for(var t=-1,n=null==e?0:e.length,i=0,r=[];++t<n;){var o=e[t];o&&(r[i++]=o)}return r},n.concat=function(){var e=arguments.length;if(!e)return[];for(var t=Sr(e-1),n=arguments[0];e--;)t[e-1]=arguments[e];return f(Za(n)?wn(n):[n],vt(t,1))},n.cond=function(e){var t=null==e?0:e.length,n=ei();return e=t?h(e,(function(e){if("function"!=typeof e[1])throw new Or("Expected a function");return[n(e[0]),e[1]]})):[],Ut((function(n){for(var i=-1;++i<t;){var o=e[i];if(r(o[0],this,n))return r(o[1],this,n)}}))},n.conforms=function(e){return function(e){var t=lr(e);return function(n){return ct(n,e,t)}}(lt(e,1))},n.constant=vr,n.countBy=ma,n.create=function(e,t){var n=Ro(e);return null==t?n:ot(n,t)},n.curry=function e(t,n,i){return(t=Vn(t,8,H,H,H,H,H,n=i?H:n)).placeholder=e.placeholder,t},n.curryRight=function e(t,n,i){return(t=Vn(t,16,H,H,H,H,H,n=i?H:n)).placeholder=e.placeholder,t},n.debounce=Fi,n.defaults=Xa,n.defaultsDeep=Ja,n.defer=Na,n.delay=Da,n.difference=Jo,n.differenceBy=ea,n.differenceWith=ta,n.drop=function(e,t,n){var i=null==e?0:e.length;return i?Qt(e,0>(t=n||t===H?1:nr(t))?0:t,i):[]},n.dropRight=function(e,t,n){var i=null==e?0:e.length;return i?Qt(e,0,0>(t=i-(t=n||t===H?1:nr(t)))?0:t):[]},n.dropRightWhile=function(e,t){return e&&e.length?sn(e,ei(t,3),!0,!0):[]},n.dropWhile=function(e,t){return e&&e.length?sn(e,ei(t,3),!0):[]},n.fill=function(e,t,n,i){var r=null==e?0:e.length;if(!r)return[];for(n&&"number"!=typeof n&&ui(e,t,n)&&(n=0,i=r),r=e.length,0>(n=nr(n))&&(n=-n>r?0:r+n),0>(i=i===H||i>r?r:nr(i))&&(i+=r),i=n>i?0:ir(i);n<i;)e[n++]=t;return e},n.filter=function(e,t){return(Za(e)?l:gt)(e,ei(t,3))},n.flatMap=function(e,t){return vt(Ri(e,t),1)},n.flatMapDeep=function(e,t){return vt(Ri(e,t),B)},n.flatMapDepth=function(e,t,n){return n=n===H?1:nr(n),vt(Ri(e,t),n)},n.flatten=Si,n.flattenDeep=function(e){return null!=e&&e.length?vt(e,B):[]},n.flattenDepth=function(e,t){return null!=e&&e.length?vt(e,t=t===H?1:nr(t)):[]},n.flip=function(e){return Vn(e,512)},n.flow=ys,n.flowRight=bs,n.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,i={};++t<n;){var r=e[t];i[r[0]]=r[1]}return i},n.functions=function(e){return null==e?[]:yt(e,lr(e))},n.functionsIn=function(e){return null==e?[]:yt(e,cr(e))},n.groupBy=ba,n.initial=function(e){return null!=e&&e.length?Qt(e,0,-1):[]},n.intersection=na,n.intersectionBy=ia,n.intersectionWith=ra,n.invert=es,n.invertBy=ts,n.invokeMap=wa,n.iteratee=_r,n.keyBy=Ca,n.keys=lr,n.keysIn=cr,n.map=Ri,n.mapKeys=function(e,t){var n={};return t=ei(t,3),mt(e,(function(e,i,r){at(n,t(e,i,r),e)})),n},n.mapValues=function(e,t){var n={};return t=ei(t,3),mt(e,(function(e,i,r){at(n,i,t(e,i,r))})),n},n.matches=function(e){return Pt(lt(e,1))},n.matchesProperty=function(e,t){return Zt(e,lt(t,1))},n.memoize=ji,n.merge=is,n.mergeWith=rs,n.method=ws,n.methodOf=Cs,n.mixin=yr,n.negate=Hi,n.nthArg=function(e){return e=nr(e),Ut((function(t){return jt(t,e)}))},n.omit=os,n.omitBy=function(e,t){return dr(e,Hi(ei(t)))},n.once=function(e){return Zi(2,e)},n.orderBy=function(e,t,n,i){return null==e?[]:(Za(t)||(t=null==t?[]:[t]),Za(n=i?H:n)||(n=null==n?[]:[n]),Ht(e,t,n))},n.over=ks,n.overArgs=Ma,n.overEvery=Ss,n.overSome=xs,n.partial=Ta,n.partialRight=Oa,n.partition=ka,n.pick=as,n.pickBy=dr,n.property=wr,n.propertyOf=function(e){return function(t){return null==e?H:bt(e,t)}},n.pull=oa,n.pullAll=Ei,n.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?zt(e,t,ei(n,2)):e},n.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?zt(e,t,H,n):e},n.pullAt=aa,n.range=Ls,n.rangeRight=Es,n.rearg=Ia,n.reject=function(e,t){return(Za(e)?l:gt)(e,Hi(ei(t,3)))},n.remove=function(e,t){var n=[];if(!e||!e.length)return n;var i=-1,r=[],o=e.length;for(t=ei(t,3);++i<o;){var a=e[i];t(a,i,e)&&(n.push(a),r.push(i))}return Wt(e,r),n},n.rest=function(e,t){if("function"!=typeof e)throw new Or("Expected a function");return Ut(e,t=t===H?t:nr(t))},n.reverse=Ni,n.sampleSize=function(e,t,n){return t=(n?ui(e,t,n):t===H)?1:nr(t),(Za(e)?We:qt)(e,t)},n.set=function(e,t,n){return null==e?e:Gt(e,t,n)},n.setWith=function(e,t,n,i){return i="function"==typeof i?i:H,null==e?e:Gt(e,t,n,i)},n.shuffle=function(e){return(Za(e)?Ve:$t)(e)},n.slice=function(e,t,n){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&ui(e,t,n)?(t=0,n=i):(t=null==t?0:nr(t),n=n===H?i:nr(n)),Qt(e,t,n)):[]},n.sortBy=Sa,n.sortedUniq=function(e){return e&&e.length?tn(e):[]},n.sortedUniqBy=function(e,t){return e&&e.length?tn(e,ei(t,2)):[]},n.split=function(e,t,n){return n&&"number"!=typeof n&&ui(e,t,n)&&(t=n=H),(n=n===H?4294967295:n>>>0)?(e=ar(e))&&("string"==typeof t||null!=t&&!za(t))&&(!(t=rn(t))&&De.test(e))?pn(j(e),0,n):e.split(t,n):[]},n.spread=function(e,t){if("function"!=typeof e)throw new Or("Expected a function");return t=null==t?0:fo(nr(t),0),Ut((function(n){var i=n[t];return n=pn(n,0,t),i&&f(n,i),r(e,this,n)}))},n.tail=function(e){var t=null==e?0:e.length;return t?Qt(e,1,t):[]},n.take=function(e,t,n){return e&&e.length?Qt(e,0,0>(t=n||t===H?1:nr(t))?0:t):[]},n.takeRight=function(e,t,n){var i=null==e?0:e.length;return i?Qt(e,0>(t=i-(t=n||t===H?1:nr(t)))?0:t,i):[]},n.takeRightWhile=function(e,t){return e&&e.length?sn(e,ei(t,3),!1,!0):[]},n.takeWhile=function(e,t){return e&&e.length?sn(e,ei(t,3)):[]},n.tap=function(e,t){return t(e),e},n.throttle=function(e,t,n){var i=!0,r=!0;if("function"!=typeof e)throw new Or("Expected a function");return qi(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),Fi(e,t,{leading:i,maxWait:t,trailing:r})},n.thru=Oi,n.toArray=er,n.toPairs=ss,n.toPairsIn=us,n.toPath=function(e){return Za(e)?h(e,_i):Ji(e)?[e]:wn(Xo(ar(e)))},n.toPlainObject=or,n.transform=function(e,t,n){var i=Za(e),r=i||ja(e)||Va(e);if(t=ei(t,4),null==n){var o=e&&e.constructor;n=r?i?new o:[]:qi(e)&&Yi(o)?Ro(qr(e)):{}}return(r?a:mt)(e,(function(e,i,r){return t(n,e,i,r)})),n},n.unary=function(e){return Pi(e,1)},n.union=sa,n.unionBy=ua,n.unionWith=la,n.uniq=function(e){return e&&e.length?on(e):[]},n.uniqBy=function(e,t){return e&&e.length?on(e,ei(t,2)):[]},n.uniqWith=function(e,t){return t="function"==typeof t?t:H,e&&e.length?on(e,H,t):[]},n.unset=function(e,t){return null==e||an(e,t)},n.unzip=Di,n.unzipWith=Mi,n.update=function(e,t,n){return null!=e&&(e=Gt(e,t,(n=hn(n))(bt(e,t)),void 0)),e},n.updateWith=function(e,t,n,i){return i="function"==typeof i?i:H,null!=e&&(e=Gt(e,t,(n=hn(n))(bt(e,t)),i)),e},n.values=hr,n.valuesIn=function(e){return null==e?[]:D(e,cr(e))},n.without=ca,n.words=gr,n.wrap=function(e,t){return Ta(hn(t),e)},n.xor=da,n.xorBy=ha,n.xorWith=fa,n.zip=pa,n.zipObject=function(e,t){return cn(e||[],t||[],nt)},n.zipObjectDeep=function(e,t){return cn(e||[],t||[],Gt)},n.zipWith=ga,n.entries=ss,n.entriesIn=us,n.extend=qa,n.extendWith=Ga,yr(n,n),n.add=Ns,n.attempt=ms,n.camelCase=ls,n.capitalize=fr,n.ceil=Ds,n.clamp=function(e,t,n){return n===H&&(n=t,t=H),n!==H&&(n=(n=rr(n))===n?n:0),t!==H&&(t=(t=rr(t))===t?t:0),ut(rr(e),t,n)},n.clone=function(e){return lt(e,4)},n.cloneDeep=function(e){return lt(e,5)},n.cloneDeepWith=function(e,t){return lt(e,5,t="function"==typeof t?t:H)},n.cloneWith=function(e,t){return lt(e,4,t="function"==typeof t?t:H)},n.conformsTo=function(e,t){return null==t||ct(e,t,lr(t))},n.deburr=pr,n.defaultTo=function(e,t){return null==e||e!==e?t:e},n.divide=Ms,n.endsWith=function(e,t,n){e=ar(e),t=rn(t);var i=e.length;i=n=n===H?i:ut(nr(n),0,i);return 0<=(n-=t.length)&&e.slice(n,i)==t},n.eq=Bi,n.escape=function(e){return(e=ar(e))&&$.test(e)?e.replace(q,Je):e},n.escapeRegExp=function(e){return(e=ar(e))&&re.test(e)?e.replace(ie,"\\$&"):e},n.every=function(e,t,n){var i=Za(e)?u:ft;return n&&ui(e,t,n)&&(t=H),i(e,ei(t,3))},n.find=_a,n.findIndex=Ci,n.findKey=function(e,t){return m(e,ei(t,3),mt)},n.findLast=ya,n.findLastIndex=ki,n.findLastKey=function(e,t){return m(e,ei(t,3),_t)},n.floor=Ts,n.forEach=Ii,n.forEachRight=Ai,n.forIn=function(e,t){return null==e?e:Fo(e,ei(t,3),cr)},n.forInRight=function(e,t){return null==e?e:jo(e,ei(t,3),cr)},n.forOwn=function(e,t){return e&&mt(e,ei(t,3))},n.forOwnRight=function(e,t){return e&&_t(e,ei(t,3))},n.get=sr,n.gt=Aa,n.gte=Ra,n.has=function(e,t){return null!=e&&ri(e,t,St)},n.hasIn=ur,n.head=xi,n.identity=mr,n.includes=function(e,t,n,i){return e=zi(e)?e:hr(e),n=n&&!i?nr(n):0,i=e.length,0>n&&(n=fo(i+n,0)),Xi(e)?n<=i&&-1<e.indexOf(t,n):!!i&&-1<y(e,t,n)},n.indexOf=function(e,t,n){var i=null==e?0:e.length;return i?(0>(n=null==n?0:nr(n))&&(n=fo(i+n,0)),y(e,t,n)):-1},n.inRange=function(e,t,n){return t=tr(t),n===H?(n=t,t=0):n=tr(n),(e=rr(e))>=po(t,n)&&e<fo(t,n)},n.invoke=ns,n.isArguments=Pa,n.isArray=Za,n.isArrayBuffer=Fa,n.isArrayLike=zi,n.isArrayLikeObject=Wi,n.isBoolean=function(e){return!0===e||!1===e||Gi(e)&&"[object Boolean]"==Ct(e)},n.isBuffer=ja,n.isDate=Ha,n.isElement=function(e){return Gi(e)&&1===e.nodeType&&!Qi(e)},n.isEmpty=function(e){if(null==e)return!0;if(zi(e)&&(Za(e)||"string"==typeof e||"function"==typeof e.splice||ja(e)||Va(e)||Pa(e)))return!e.length;var t=Ko(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(di(e))return!It(e).length;for(var n in e)if(Zr.call(e,n))return!1;return!0},n.isEqual=function(e,t){return Dt(e,t)},n.isEqualWith=function(e,t,n){var i=(n="function"==typeof n?n:H)?n(e,t):H;return i===H?Dt(e,t,H,n):!!i},n.isError=Vi,n.isFinite=function(e){return"number"==typeof e&&lo(e)},n.isFunction=Yi,n.isInteger=Ui,n.isLength=Ki,n.isMap=Ba,n.isMatch=function(e,t){return e===t||Mt(e,t,ni(t))},n.isMatchWith=function(e,t,n){return n="function"==typeof n?n:H,Mt(e,t,ni(t),n)},n.isNaN=function(e){return $i(e)&&e!=+e},n.isNative=function(e){if(qo(e))throw new Lr("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Tt(e)},n.isNil=function(e){return null==e},n.isNull=function(e){return null===e},n.isNumber=$i,n.isObject=qi,n.isObjectLike=Gi,n.isPlainObject=Qi,n.isRegExp=za,n.isSafeInteger=function(e){return Ui(e)&&-9007199254740991<=e&&9007199254740991>=e},n.isSet=Wa,n.isString=Xi,n.isSymbol=Ji,n.isTypedArray=Va,n.isUndefined=function(e){return e===H},n.isWeakMap=function(e){return Gi(e)&&"[object WeakMap]"==Ko(e)},n.isWeakSet=function(e){return Gi(e)&&"[object WeakSet]"==Ct(e)},n.join=function(e,t){return null==e?"":co.call(e,t)},n.kebabCase=cs,n.last=Li,n.lastIndexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=i;if(n!==H&&(r=0>(r=nr(n))?fo(i+r,0):po(r,i-1)),t===t)e:{for(n=r+1;n--;)if(e[n]===t){e=n;break e}e=n}else e=_(e,w,r,!0);return e},n.lowerCase=ds,n.lowerFirst=hs,n.lt=Ya,n.lte=Ua,n.max=function(e){return e&&e.length?pt(e,mr,kt):H},n.maxBy=function(e,t){return e&&e.length?pt(e,ei(t,2),kt):H},n.mean=function(e){return C(e,mr)},n.meanBy=function(e,t){return C(e,ei(t,2))},n.min=function(e){return e&&e.length?pt(e,mr,At):H},n.minBy=function(e,t){return e&&e.length?pt(e,ei(t,2),At):H},n.stubArray=Cr,n.stubFalse=kr,n.stubObject=function(){return{}},n.stubString=function(){return""},n.stubTrue=function(){return!0},n.multiply=Os,n.nth=function(e,t){return e&&e.length?jt(e,nr(t)):H},n.noConflict=function(){return je._===this&&(je._=zr),this},n.noop=br,n.now=xa,n.pad=function(e,t,n){e=ar(e);var i=(t=nr(t))?F(e):0;return!t||i>=t?e:Zn(ao(t=(t-i)/2),n)+e+Zn(oo(t),n)},n.padEnd=function(e,t,n){e=ar(e);var i=(t=nr(t))?F(e):0;return t&&i<t?e+Zn(t-i,n):e},n.padStart=function(e,t,n){e=ar(e);var i=(t=nr(t))?F(e):0;return t&&i<t?Zn(t-i,n)+e:e},n.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),vo(ar(e).replace(ae,""),t||0)},n.random=function(e,t,n){if(n&&"boolean"!=typeof n&&ui(e,t,n)&&(t=n=H),n===H&&("boolean"==typeof t?(n=t,t=H):"boolean"==typeof e&&(n=e,e=H)),e===H&&t===H?(e=0,t=1):(e=tr(e),t===H?(t=e,e=0):t=tr(t)),e>t){var i=e;e=t,t=i}return n||e%1||t%1?(n=mo(),po(e+n*(t-e+Re("1e-"+((n+"").length-1))),t)):Vt(e,t)},n.reduce=function(e,t,n){var i=Za(e)?p:x,r=3>arguments.length;return i(e,ei(t,4),n,r,Po)},n.reduceRight=function(e,t,n){var i=Za(e)?g:x,r=3>arguments.length;return i(e,ei(t,4),n,r,Zo)},n.repeat=function(e,t,n){return t=(n?ui(e,t,n):t===H)?1:nr(t),Yt(ar(e),t)},n.replace=function(){var e=arguments,t=ar(e[0]);return 3>e.length?t:t.replace(e[1],e[2])},n.result=function(e,t,n){var i=-1,r=(t=fn(t,e)).length;for(r||(r=1,e=H);++i<r;){var o=null==e?H:e[_i(t[i])];o===H&&(i=r,o=n),e=Yi(o)?o.call(e):o}return e},n.round=Is,n.runInContext=e,n.sample=function(e){return(Za(e)?Be:Kt)(e)},n.size=function(e){if(null==e)return 0;if(zi(e))return Xi(e)?F(e):e.length;var t=Ko(e);return"[object Map]"==t||"[object Set]"==t?e.size:It(e).length},n.snakeCase=fs,n.some=function(e,t,n){var i=Za(e)?v:Xt;return n&&ui(e,t,n)&&(t=H),i(e,ei(t,3))},n.sortedIndex=function(e,t){return Jt(e,t)},n.sortedIndexBy=function(e,t,n){return en(e,t,ei(n,2))},n.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var i=Jt(e,t);if(i<n&&Bi(e[i],t))return i}return-1},n.sortedLastIndex=function(e,t){return Jt(e,t,!0)},n.sortedLastIndexBy=function(e,t,n){return en(e,t,ei(n,2),!0)},n.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var n=Jt(e,t,!0)-1;if(Bi(e[n],t))return n}return-1},n.startCase=ps,n.startsWith=function(e,t,n){return e=ar(e),n=null==n?0:ut(nr(n),0,e.length),t=rn(t),e.slice(n,n+t.length)==t},n.subtract=As,n.sum=function(e){return e&&e.length?L(e,mr):0},n.sumBy=function(e,t){return e&&e.length?L(e,ei(t,2)):0},n.template=function(e,t,i){var r=n.templateSettings;i&&ui(e,t,i)&&(t=H),e=ar(e),t=Ga({},t,r,Yn);var o,a,s=lr(i=Ga({},t.imports,r.imports,Yn)),u=D(i,s),l=0;i=t.interpolate||we;var c="__p+='";i=Mr((t.escape||we).source+"|"+i.source+"|"+(i===J?fe:we).source+"|"+(t.evaluate||we).source+"|$","g");var d="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(e.replace(i,(function(t,n,i,r,s,u){return i||(i=r),c+=e.slice(l,u).replace(Ce,I),n&&(o=!0,c+="'+__e("+n+")+'"),s&&(a=!0,c+="';"+s+";\n__p+='"),i&&(c+="'+((__t=("+i+"))==null?'':__t)+'"),l=u+t.length,t})),c+="';",(t=t.variable)||(c="with(obj){"+c+"}"),c=(a?c.replace(V,""):c).replace(Y,"$1").replace(U,"$1;"),c="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(o?",__e=_.escape":"")+(a?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}",(t=ms((function(){return Er(s,d+"return "+c).apply(H,u)}))).source=c,Vi(t))throw t;return t},n.times=function(e,t){if(1>(e=nr(e))||9007199254740991<e)return[];var n=4294967295,i=po(e,4294967295);for(e-=4294967295,i=E(i,t=ei(t));++n<e;)t(n);return i},n.toFinite=tr,n.toInteger=nr,n.toLength=ir,n.toLower=function(e){return ar(e).toLowerCase()},n.toNumber=rr,n.toSafeInteger=function(e){return e?ut(nr(e),-9007199254740991,9007199254740991):0===e?e:0},n.toString=ar,n.toUpper=function(e){return ar(e).toUpperCase()},n.trim=function(e,t,n){return(e=ar(e))&&(n||t===H)?e.replace(oe,""):e&&(t=rn(t))?pn(e=j(e),t=T(e,n=j(t)),n=O(e,n)+1).join(""):e},n.trimEnd=function(e,t,n){return(e=ar(e))&&(n||t===H)?e.replace(se,""):e&&(t=rn(t))?pn(e=j(e),0,t=O(e,j(t))+1).join(""):e},n.trimStart=function(e,t,n){return(e=ar(e))&&(n||t===H)?e.replace(ae,""):e&&(t=rn(t))?pn(e=j(e),t=T(e,j(t))).join(""):e},n.truncate=function(e,t){var n=30,i="...";if(qi(t)){var r="separator"in t?t.separator:r;n="length"in t?nr(t.length):n,i="omission"in t?rn(t.omission):i}var o=(e=ar(e)).length;if(De.test(e)){var a=j(e);o=a.length}if(n>=o)return e;if(1>(o=n-F(i)))return i;if(n=a?pn(a,0,o).join(""):e.slice(0,o),r===H)return n+i;if(a&&(o+=n.length-o),za(r)){if(e.slice(o).search(r)){var s=n;for(r.global||(r=Mr(r.source,ar(pe.exec(r))+"g")),r.lastIndex=0;a=r.exec(s);)var u=a.index;n=n.slice(0,u===H?o:u)}}else e.indexOf(rn(r),o)!=o&&(-1<(r=n.lastIndexOf(r))&&(n=n.slice(0,r)));return n+i},n.unescape=function(e){return(e=ar(e))&&G.test(e)?e.replace(K,et):e},n.uniqueId=function(e){var t=++Fr;return ar(e)+t},n.upperCase=gs,n.upperFirst=vs,n.each=Ii,n.eachRight=Ai,n.first=xi,yr(n,function(){var e={};return mt(n,(function(t,i){Zr.call(n.prototype,i)||(e[i]=t)})),e}(),{chain:!1}),n.VERSION="4.17.11",a("bind bindKey curry curryRight partial partialRight".split(" "),(function(e){n[e].placeholder=n})),a(["drop","take"],(function(e,t){ke.prototype[e]=function(n){n=n===H?1:fo(nr(n),0);var i=this.__filtered__&&!t?new ke(this):this.clone();return i.__filtered__?i.__takeCount__=po(n,i.__takeCount__):i.__views__.push({size:po(n,4294967295),type:e+(0>i.__dir__?"Right":"")}),i},ke.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),a(["filter","map","takeWhile"],(function(e,t){var n=t+1,i=1==n||3==n;ke.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ei(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}})),a(["head","last"],(function(e,t){var n="take"+(t?"Right":"");ke.prototype[e]=function(){return this[n](1).value()[0]}})),a(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");ke.prototype[e]=function(){return this.__filtered__?new ke(this):this[n](1)}})),ke.prototype.compact=function(){return this.filter(mr)},ke.prototype.find=function(e){return this.filter(e).head()},ke.prototype.findLast=function(e){return this.reverse().find(e)},ke.prototype.invokeMap=Ut((function(e,t){return"function"==typeof e?new ke(this):this.map((function(n){return Et(n,e,t)}))})),ke.prototype.reject=function(e){return this.filter(Hi(ei(e)))},ke.prototype.slice=function(e,t){e=nr(e);var n=this;return n.__filtered__&&(0<e||0>t)?new ke(n):(0>e?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==H&&(n=0>(t=nr(t))?n.dropRight(-t):n.take(t-e)),n)},ke.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},ke.prototype.toArray=function(){return this.take(4294967295)},mt(ke.prototype,(function(e,t){var i=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),o=n[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);o&&(n.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,u=s[0],l=(p=t instanceof ke)||Za(t),c=function(e){return e=o.apply(n,f([e],s)),r&&d?e[0]:e};l&&i&&"function"==typeof u&&1!=u.length&&(p=l=!1);var d=this.__chain__,h=!!this.__actions__.length,p=(u=a&&!d,p&&!h);return!a&&l?(t=p?t:new ke(this),(t=e.apply(t,s)).__actions__.push({func:Oi,args:[c],thisArg:H}),new S(t,d)):u&&p?e.apply(this,s):(t=this.thru(c),u?r?t.value()[0]:t.value():t)})})),a("pop push shift sort splice unshift".split(" "),(function(e){var t=Ir[e],i=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);n.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var n=this.value();return t.apply(Za(n)?n:[],e)}return this[i]((function(n){return t.apply(Za(n)?n:[],e)}))}})),mt(ke.prototype,(function(e,t){var i=n[t];if(i){var r=i.name+"";(Lo[r]||(Lo[r]=[])).push({name:t,func:i})}})),Lo[In(H,2).name]=[{name:"wrapper",func:H}],ke.prototype.clone=function(){var e=new ke(this.__wrapped__);return e.__actions__=wn(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=wn(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=wn(this.__views__),e},ke.prototype.reverse=function(){if(this.__filtered__){var e=new ke(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},ke.prototype.value=function(){var e,t=this.__wrapped__.value(),n=this.__dir__,i=Za(t),r=0>n,o=i?t.length:0;e=0;for(var a=o,s=this.__views__,u=-1,l=s.length;++u<l;){var c=s[u],d=c.size;switch(c.type){case"drop":e+=d;break;case"dropRight":a-=d;break;case"take":a=po(a,e+d);break;case"takeRight":e=fo(e,a-d)}}if(a=(e={start:e,end:a}).start,e=(s=e.end)-a,a=r?s:a-1,u=(s=this.__iteratees__).length,l=0,c=po(e,this.__takeCount__),!i||!r&&o==e&&c==e)return un(t,this.__actions__);i=[];e:for(;e--&&l<c;){for(r=-1,o=t[a+=n];++r<u;){d=(h=s[r]).type;var h=(0,h.iteratee)(o);if(2==d)o=h;else if(!h){if(1==d)continue e;break e}}i[l++]=o}return i},n.prototype.at=va,n.prototype.chain=function(){return Ti(this)},n.prototype.commit=function(){return new S(this.value(),this.__chain__)},n.prototype.next=function(){this.__values__===H&&(this.__values__=er(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?H:this.__values__[this.__index__++]}},n.prototype.plant=function(e){for(var t,n=this;n instanceof i;){var r=wi(n);r.__index__=0,r.__values__=H,t?o.__wrapped__=r:t=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,t},n.prototype.reverse=function(){var e=this.__wrapped__;return e instanceof ke?(this.__actions__.length&&(e=new ke(this)),(e=e.reverse()).__actions__.push({func:Oi,args:[Ni],thisArg:H}),new S(e,this.__chain__)):this.thru(Ni)},n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=function(){return un(this.__wrapped__,this.__actions__)},n.prototype.first=n.prototype.head,Jr&&(n.prototype[Jr]=function(){return this}),n}();je._=tt,void 0===(i=function(){return tt}.call(t,n,t,e))||(e.exports=i)}.call(this)},95130:function(e,t,n){var i=n(50042),r="Expected a function";function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(r);var n=function n(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(o.Cache||i),n}o.Cache=i,e.exports=o},4395:function(e){e.exports=function(){}},66589:function(e,t,n){var i=n(79746),r=n(60301),o=n(88343),a=n(33576),s=n(77516),u=n(1594),l=n(95057),c=n(73561),d=l((function(e,t){var n={};if(null==e)return n;var l=!1;t=i(t,(function(t){return t=a(t,e),l||(l=t.length>1),t})),s(e,c(e),n),l&&(n=r(n,7,u));for(var d=t.length;d--;)o(n,t[d]);return n}));e.exports=d},44149:function(e,t,n){var i=n(95391),r=n(35087),o=n(24445),a=n(55852);e.exports=function(e){return o(e)?i(a(e)):r(e)}},95810:function(e,t,n){var i=n(56541),r=n(95057),o=r((function(e,t){return i(e,256,void 0,void 0,void 0,t)}));e.exports=o},59537:function(e,t,n){var i=n(32559);e.exports=function(e,t,n){return null==e?e:i(e,t,n)}},39769:function(e,t,n){var i=n(31368),r=n(33457),o=n(52850),a=n(59072),s=o((function(e,t){if(null==e)return[];var n=t.length;return n>1&&a(e,t[0],t[1])?t=[]:n>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),r(e,i(t,1),[])}));e.exports=s},8304:function(e){e.exports=function(){return[]}},54666:function(e){e.exports=function(){return!1}},46675:function(e,t,n){var i=n(42416),r=1/0,o=17976931348623157e292;e.exports=function(e){return e?(e=i(e))===r||e===-r?(e<0?-1:1)*o:e===e?e:0:0===e?e:0}},33061:function(e,t,n){var i=n(46675);e.exports=function(e){var t=i(e),n=t%1;return t===t?n?t-n:t:0}},42416:function(e,t,n){var i=n(13108),r=n(89718),o=NaN,a=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(r(e))return o;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(a,"");var n=u.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):s.test(e)?o:+e}},24216:function(e,t,n){var i=n(79746),r=n(91342),o=n(39262),a=n(89718),s=n(34786),u=n(55852),l=n(20403);e.exports=function(e){return o(e)?i(e,u):a(e)?[e]:r(s(l(e)))}},20403:function(e,t,n){var i=n(24714);e.exports=function(e){return null==e?"":i(e)}},50675:function(e,t,n){var i=n(19829),r=n(73911);e.exports=function(e,t){return e&&e.length?r(e,i(t,2)):[]}},83440:function(e,t,n){var i=n(82966),r=n(88936),o=n(39243),a=n(39262),s=n(71983),u=n(94426),l=Object.prototype.hasOwnProperty;function c(e){if(s(e)&&!a(e)&&!(e instanceof i)){if(e instanceof r)return e;if(l.call(e,"__wrapped__"))return u(e)}return new r(e)}c.prototype=o.prototype,c.prototype.constructor=c,e.exports=c},43911:function(e){"use strict";e.exports=function(e){for(var t=function(e){var t,n=1+(e.length+8>>6),i=new Array(16*n);for(t=0;t<16*n;t++)i[t]=0;for(t=0;t<e.length;t++)i[t>>2]|=e.charCodeAt(t)<<(8*e.length+t)%4*8;i[t>>2]|=128<<(8*e.length+t)%4*8;var r=8*e.length;return i[16*n-2]=255&r,i[16*n-2]|=(r>>>8&255)<<8,i[16*n-2]|=(r>>>16&255)<<16,i[16*n-2]|=(r>>>24&255)<<24,i}(e),n=1732584193,i=-271733879,r=-1732584194,s=271733878,h=0;h<t.length;h+=16){var f=n,p=i,g=r,v=s;n=u(n,i,r,s,t[h+0],7,-680876936),s=u(s,n,i,r,t[h+1],12,-389564586),r=u(r,s,n,i,t[h+2],17,606105819),i=u(i,r,s,n,t[h+3],22,-1044525330),n=u(n,i,r,s,t[h+4],7,-176418897),s=u(s,n,i,r,t[h+5],12,1200080426),r=u(r,s,n,i,t[h+6],17,-1473231341),i=u(i,r,s,n,t[h+7],22,-45705983),n=u(n,i,r,s,t[h+8],7,1770035416),s=u(s,n,i,r,t[h+9],12,-1958414417),r=u(r,s,n,i,t[h+10],17,-42063),i=u(i,r,s,n,t[h+11],22,-1990404162),n=u(n,i,r,s,t[h+12],7,1804603682),s=u(s,n,i,r,t[h+13],12,-40341101),r=u(r,s,n,i,t[h+14],17,-1502002290),n=l(n,i=u(i,r,s,n,t[h+15],22,1236535329),r,s,t[h+1],5,-165796510),s=l(s,n,i,r,t[h+6],9,-1069501632),r=l(r,s,n,i,t[h+11],14,643717713),i=l(i,r,s,n,t[h+0],20,-373897302),n=l(n,i,r,s,t[h+5],5,-701558691),s=l(s,n,i,r,t[h+10],9,38016083),r=l(r,s,n,i,t[h+15],14,-660478335),i=l(i,r,s,n,t[h+4],20,-405537848),n=l(n,i,r,s,t[h+9],5,568446438),s=l(s,n,i,r,t[h+14],9,-1019803690),r=l(r,s,n,i,t[h+3],14,-187363961),i=l(i,r,s,n,t[h+8],20,1163531501),n=l(n,i,r,s,t[h+13],5,-1444681467),s=l(s,n,i,r,t[h+2],9,-51403784),r=l(r,s,n,i,t[h+7],14,1735328473),n=c(n,i=l(i,r,s,n,t[h+12],20,-1926607734),r,s,t[h+5],4,-378558),s=c(s,n,i,r,t[h+8],11,-2022574463),r=c(r,s,n,i,t[h+11],16,1839030562),i=c(i,r,s,n,t[h+14],23,-35309556),n=c(n,i,r,s,t[h+1],4,-1530992060),s=c(s,n,i,r,t[h+4],11,1272893353),r=c(r,s,n,i,t[h+7],16,-155497632),i=c(i,r,s,n,t[h+10],23,-1094730640),n=c(n,i,r,s,t[h+13],4,681279174),s=c(s,n,i,r,t[h+0],11,-358537222),r=c(r,s,n,i,t[h+3],16,-722521979),i=c(i,r,s,n,t[h+6],23,76029189),n=c(n,i,r,s,t[h+9],4,-640364487),s=c(s,n,i,r,t[h+12],11,-421815835),r=c(r,s,n,i,t[h+15],16,530742520),n=d(n,i=c(i,r,s,n,t[h+2],23,-995338651),r,s,t[h+0],6,-198630844),s=d(s,n,i,r,t[h+7],10,1126891415),r=d(r,s,n,i,t[h+14],15,-1416354905),i=d(i,r,s,n,t[h+5],21,-57434055),n=d(n,i,r,s,t[h+12],6,1700485571),s=d(s,n,i,r,t[h+3],10,-1894986606),r=d(r,s,n,i,t[h+10],15,-1051523),i=d(i,r,s,n,t[h+1],21,-2054922799),n=d(n,i,r,s,t[h+8],6,1873313359),s=d(s,n,i,r,t[h+15],10,-30611744),r=d(r,s,n,i,t[h+6],15,-1560198380),i=d(i,r,s,n,t[h+13],21,1309151649),n=d(n,i,r,s,t[h+4],6,-145523070),s=d(s,n,i,r,t[h+11],10,-1120210379),r=d(r,s,n,i,t[h+2],15,718787259),i=d(i,r,s,n,t[h+9],21,-343485551),n=o(n,f),i=o(i,p),r=o(r,g),s=o(s,v)}return a(n)+a(i)+a(r)+a(s)};var t="0123456789abcdef";function n(e,t){return(e>>>1|t>>>1)<<1|(1&e|1&t)}function i(e,t){return(e>>>1^t>>>1)<<1|1&e^1&t}function r(e,t){return(e>>>1&t>>>1)<<1|1&e&t}function o(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function a(e){var n,i="";for(n=0;n<=3;n++)i+=t.charAt(e>>8*n+4&15)+t.charAt(e>>8*n&15);return i}function s(e,t,n,i,r,a){return o((s=o(o(t,e),o(i,a)))<<(u=r)|s>>>32-u,n);var s,u}function u(e,t,i,o,a,u,l){return s(n(r(t,i),r(~t,o)),e,t,a,u,l)}function l(e,t,i,o,a,u,l){return s(n(r(t,o),r(i,~o)),e,t,a,u,l)}function c(e,t,n,r,o,a,u){return s(i(i(t,n),r),e,t,o,a,u)}function d(e,t,r,o,a,u,l){return s(i(r,n(t,~o)),e,t,a,u,l)}},84539:function(e,t,n){"use strict";n.d(t,{$W:function(){return b},Dt:function(){return y},G6:function(){return v},MG:function(){return m},Pf:function(){return p},WP:function(){return u},fX:function(){return l},i7:function(){return g},ie:function(){return c},mX:function(){return d},px:function(){return s},vU:function(){return f},zc:function(){return _}});var i=n(15671),r=n(43144),o=n(11732),a=function(){function e(){(0,i.Z)(this,e),this._zoomLevel=0,this._lastZoomLevelChangeTime=0,this._onDidChangeZoomLevel=new o.Q5,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this._zoomFactor=1}return(0,r.Z)(e,[{key:"getZoomLevel",value:function(){return this._zoomLevel}},{key:"getTimeSinceLastZoomLevelChanged",value:function(){return Date.now()-this._lastZoomLevelChangeTime}},{key:"getZoomFactor",value:function(){return this._zoomFactor}},{key:"getPixelRatio",value:function(){var e=document.createElement("canvas").getContext("2d");return(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)}}]),e}();function s(){return a.INSTANCE.getZoomLevel()}function u(){return a.INSTANCE.getTimeSinceLastZoomLevelChanged()}function l(e){return a.INSTANCE.onDidChangeZoomLevel(e)}function c(){return a.INSTANCE.getZoomFactor()}function d(){return a.INSTANCE.getPixelRatio()}a.INSTANCE=new a;var h=navigator.userAgent,f=h.indexOf("Firefox")>=0,p=h.indexOf("AppleWebKit")>=0,g=h.indexOf("Chrome")>=0,v=!g&&h.indexOf("Safari")>=0,m=!g&&!v&&p,_=h.indexOf("iPad")>=0||v&&navigator.maxTouchPoints>0,y=h.indexOf("Android")>=0,b=window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches},32721:function(e,t,n){"use strict";n.d(t,{D:function(){return o}});var i=n(84539),r=n(30487),o={clipboard:{writeText:r.tY||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:r.tY||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:r.tY||i.$W?0:navigator.keyboard||i.G6?1:2,touch:"ontouchstart"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0,pointerEvents:window.PointerEvent&&("ontouchstart"in window||window.navigator.maxTouchPoints>0||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0)}},53042:function(e,t,n){"use strict";n.d(t,{P$:function(){return s},TN:function(){return a},go:function(){return o}});var i=n(15671),r=n(43144),o={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:"text/plain"},a=function(){function e(t){(0,i.Z)(this,e),this.data=t}return(0,r.Z)(e,[{key:"update",value:function(){}},{key:"getData",value:function(){return this.data}}]),e}(),s={CurrentDragAndDropData:void 0}},84540:function(e,t,n){"use strict";n.r(t),n.d(t,{$:function(){return we},Dimension:function(){return z},EventHelper:function(){return de},EventType:function(){return ce},ModifierKeyEmitter:function(){return Me},Namespace:function(){return _e},StandardWindow:function(){return U},addDisposableGenericMouseDownListner:function(){return E},addDisposableGenericMouseUpListner:function(){return N},addDisposableListener:function(){return k},addDisposableNonBubblingMouseOutListener:function(){return D},addDisposableNonBubblingPointerOutListener:function(){return M},addDisposableThrottledListener:function(){return F},addMatchMediaChangeListener:function(){return Te},addStandardDisposableGenericMouseDownListner:function(){return L},addStandardDisposableListener:function(){return x},animate:function(){return Ee},append:function(){return ve},asCSSPropertyValue:function(){return De},asCSSUrl:function(){return Ne},clearNode:function(){return b},computeScreenAwareSize:function(){return xe},createCSSRule:function(){return se},createStyleSheet:function(){return re},findParentWithClass:function(){return X},getActiveElement:function(){return ie},getClientArea:function(){return H},getComputedStyle:function(){return j},getContentHeight:function(){return G},getContentWidth:function(){return q},getDomNodePagePosition:function(){return Y},getElementsByTagName:function(){return Se},getShadowRoot:function(){return ne},getTopLeftOffset:function(){return W},getTotalHeight:function(){return $},getTotalWidth:function(){return K},hasParentWithClass:function(){return J},hide:function(){return ke},isAncestor:function(){return Q},isHTMLElement:function(){return le},isInDOM:function(){return w},isInShadowDOM:function(){return te},isShadowRoot:function(){return ee},removeCSSRulesContainingSelector:function(){return ue},reset:function(){return me},restoreParentsScrollTop:function(){return fe},runAtThisOrScheduleAtNextAnimationFrame:function(){return T},saveParentsScrollTop:function(){return he},scheduleAtNextAnimationFrame:function(){return O},show:function(){return Ce},size:function(){return V},trackFocus:function(){return ge},windowOpenNoOpener:function(){return Le}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(84539),c=n(61680),d=n(31737),h=n(55076),f=n(27997),p=n(8729),g=n(11732),v=n(81626),m=n(30487),_=n(55585),y=n(32721);function b(e){for(;e.firstChild;)e.firstChild.remove()}function w(e){var t;return null!==(t=null===e||void 0===e?void 0:e.isConnected)&&void 0!==t&&t}var C=function(){function e(t,n,i,r){(0,s.Z)(this,e),this._node=t,this._type=n,this._handler=i,this._options=r||!1,this._node.addEventListener(this._type,this._handler,this._options)}return(0,u.Z)(e,[{key:"dispose",value:function(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}]),e}();function k(e,t,n,i){return new C(e,t,n,i)}function S(e){return function(t){return e(new h.n(t))}}var x=function(e,t,n,i){var r=n;return"click"===t||"mousedown"===t?r=S(n):"keydown"!==t&&"keypress"!==t&&"keyup"!==t||(r=function(e){return function(t){return e(new d.y(t))}}(n)),k(e,t,r,i)},L=function(e,t,n){return E(e,S(t),n)};function E(e,t,n){return k(e,m.gn&&y.D.pointerEvents?ce.POINTER_DOWN:ce.MOUSE_DOWN,t,n)}function N(e,t,n){return k(e,m.gn&&y.D.pointerEvents?ce.POINTER_UP:ce.MOUSE_UP,t,n)}function D(e,t){return k(e,"mouseout",(function(n){for(var i=n.relatedTarget;i&&i!==e;)i=i.parentNode;i!==e&&t(n)}))}function M(e,t){return k(e,"pointerout",(function(n){for(var i=n.relatedTarget;i&&i!==e;)i=i.parentNode;i!==e&&t(n)}))}var T,O,I=null;var A=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;(0,s.Z)(this,e),this._runner=t,this.priority=n,this._canceled=!1}return(0,u.Z)(e,[{key:"dispose",value:function(){this._canceled=!0}},{key:"execute",value:function(){if(!this._canceled)try{this._runner()}catch(e){(0,p.dL)(e)}}}],[{key:"sort",value:function(e,t){return t.priority-e.priority}}]),e}();!function(){var e=[],t=null,n=!1,i=!1,r=function(){for(n=!1,t=e,e=[],i=!0;t.length>0;){t.sort(A.sort),t.shift().execute()}i=!1};O=function(t){var i=new A(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0);return e.push(i),n||(n=!0,function(e){I||(I=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame||function(e){return setTimeout((function(){return e((new Date).getTime())}),0)});I.call(self,e)}(r)),i},T=function(e,n){if(i){var r=new A(e,n);return t.push(r),r}return O(e,n)}}();var R=8,P=function(e,t){return t},Z=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:P,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:R;(0,s.Z)(this,n),o=t.call(this);var l=null,c=0,d=o._register(new f._F),h=function(){c=(new Date).getTime(),r(l),l=null};return o._register(k(e,i,(function(e){l=a(l,e);var t=(new Date).getTime()-c;t>=u?(d.cancel(),h()):d.setIfNotSet(h,u-t)}))),o}return(0,u.Z)(n)}(v.JT);function F(e,t,n,i,r){return new Z(e,t,n,i,r)}function j(e){return document.defaultView.getComputedStyle(e,null)}function H(e){if(e!==document.body)return new z(e.clientWidth,e.clientHeight);if(m.gn&&window.visualViewport){var t=window.visualViewport.width,n=window.visualViewport.height-(l.$W?24:0);return new z(t,n)}if(window.innerWidth&&window.innerHeight)return new z(window.innerWidth,window.innerHeight);if(document.body&&document.body.clientWidth&&document.body.clientHeight)return new z(document.body.clientWidth,document.body.clientHeight);if(document.documentElement&&document.documentElement.clientWidth&&document.documentElement.clientHeight)return new z(document.documentElement.clientWidth,document.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}var B=function(){function e(){(0,s.Z)(this,e)}return(0,u.Z)(e,null,[{key:"convertToPixels",value:function(e,t){return parseFloat(t)||0}},{key:"getDimension",value:function(t,n,i){var r=j(t),o="0";return r&&(o=r.getPropertyValue?r.getPropertyValue(n):r.getAttribute(i)),e.convertToPixels(t,o)}},{key:"getBorderLeftWidth",value:function(t){return e.getDimension(t,"border-left-width","borderLeftWidth")}},{key:"getBorderRightWidth",value:function(t){return e.getDimension(t,"border-right-width","borderRightWidth")}},{key:"getBorderTopWidth",value:function(t){return e.getDimension(t,"border-top-width","borderTopWidth")}},{key:"getBorderBottomWidth",value:function(t){return e.getDimension(t,"border-bottom-width","borderBottomWidth")}},{key:"getPaddingLeft",value:function(t){return e.getDimension(t,"padding-left","paddingLeft")}},{key:"getPaddingRight",value:function(t){return e.getDimension(t,"padding-right","paddingRight")}},{key:"getPaddingTop",value:function(t){return e.getDimension(t,"padding-top","paddingTop")}},{key:"getPaddingBottom",value:function(t){return e.getDimension(t,"padding-bottom","paddingBottom")}},{key:"getMarginLeft",value:function(t){return e.getDimension(t,"margin-left","marginLeft")}},{key:"getMarginTop",value:function(t){return e.getDimension(t,"margin-top","marginTop")}},{key:"getMarginRight",value:function(t){return e.getDimension(t,"margin-right","marginRight")}},{key:"getMarginBottom",value:function(t){return e.getDimension(t,"margin-bottom","marginBottom")}}]),e}(),z=function(){function e(t,n){(0,s.Z)(this,e),this.width=t,this.height=n}return(0,u.Z)(e,[{key:"with",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.width,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.height;return t!==this.width||n!==this.height?new e(t,n):this}}],[{key:"is",value:function(e){return"object"===typeof e&&"number"===typeof e.height&&"number"===typeof e.width}},{key:"lift",value:function(t){return t instanceof e?t:new e(t.width,t.height)}},{key:"equals",value:function(e,t){return e===t||!(!e||!t)&&(e.width===t.width&&e.height===t.height)}}]),e}();function W(e){for(var t=e.offsetParent,n=e.offsetTop,i=e.offsetLeft;null!==(e=e.parentNode)&&e!==document.body&&e!==document.documentElement;){n-=e.scrollTop;var r=ee(e)?null:j(e);r&&(i-="rtl"!==r.direction?e.scrollLeft:-e.scrollLeft),e===t&&(i+=B.getBorderLeftWidth(e),n+=B.getBorderTopWidth(e),n+=e.offsetTop,i+=e.offsetLeft,t=e.offsetParent)}return{left:i,top:n}}function V(e,t,n){"number"===typeof t&&(e.style.width="".concat(t,"px")),"number"===typeof n&&(e.style.height="".concat(n,"px"))}function Y(e){var t=e.getBoundingClientRect();return{left:t.left+U.scrollX,top:t.top+U.scrollY,width:t.width,height:t.height}}var U=new(function(){function e(){(0,s.Z)(this,e)}return(0,u.Z)(e,[{key:"scrollX",get:function(){return"number"===typeof window.scrollX?window.scrollX:document.body.scrollLeft+document.documentElement.scrollLeft}},{key:"scrollY",get:function(){return"number"===typeof window.scrollY?window.scrollY:document.body.scrollTop+document.documentElement.scrollTop}}]),e}());function K(e){var t=B.getMarginLeft(e)+B.getMarginRight(e);return e.offsetWidth+t}function q(e){var t=B.getBorderLeftWidth(e)+B.getBorderRightWidth(e),n=B.getPaddingLeft(e)+B.getPaddingRight(e);return e.offsetWidth-t-n}function G(e){var t=B.getBorderTopWidth(e)+B.getBorderBottomWidth(e),n=B.getPaddingTop(e)+B.getPaddingBottom(e);return e.offsetHeight-t-n}function $(e){var t=B.getMarginTop(e)+B.getMarginBottom(e);return e.offsetHeight+t}function Q(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function X(e,t,n){for(;e&&e.nodeType===e.ELEMENT_NODE;){if(e.classList.contains(t))return e;if(n)if("string"===typeof n){if(e.classList.contains(n))return null}else if(e===n)return null;e=e.parentNode}return null}function J(e,t,n){return!!X(e,t,n)}function ee(e){return e&&!!e.host&&!!e.mode}function te(e){return!!ne(e)}function ne(e){for(;e.parentNode;){if(e===document.body)return null;e=e.parentNode}return ee(e)?e:null}function ie(){for(var e=document.activeElement;null===e||void 0===e?void 0:e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function re(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.getElementsByTagName("head")[0],t=document.createElement("style");return t.type="text/css",t.media="screen",e.appendChild(t),t}var oe=null;function ae(){return oe||(oe=re()),oe}function se(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ae();n&&t&&n.sheet.insertRule(e+"{"+t+"}",0)}function ue(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ae();if(t){for(var n=function(e){var t,n;return(null===(t=null===e||void 0===e?void 0:e.sheet)||void 0===t?void 0:t.rules)?e.sheet.rules:(null===(n=null===e||void 0===e?void 0:e.sheet)||void 0===n?void 0:n.cssRules)?e.sheet.cssRules:[]}(t),i=[],r=0;r<n.length;r++){-1!==n[r].selectorText.indexOf(e)&&i.push(r)}for(var o=i.length-1;o>=0;o--)t.sheet.deleteRule(i[o])}}function le(e){return"object"===typeof HTMLElement?e instanceof HTMLElement:e&&"object"===typeof e&&1===e.nodeType&&"string"===typeof e.nodeName}var ce={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:l.Pf?"webkitAnimationStart":"animationstart",ANIMATION_END:l.Pf?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:l.Pf?"webkitAnimationIteration":"animationiteration"},de={stop:function(e,t){e.preventDefault?e.preventDefault():e.returnValue=!1,t&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)}};function he(e){for(var t=[],n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)t[n]=e.scrollTop,e=e.parentNode;return t}function fe(e,t){for(var n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)e.scrollTop!==t[n]&&(e.scrollTop=t[n]),e=e.parentNode}var pe=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;(0,s.Z)(this,n),(i=t.call(this))._onDidFocus=i._register(new g.Q5),i.onDidFocus=i._onDidFocus.event,i._onDidBlur=i._register(new g.Q5),i.onDidBlur=i._onDidBlur.event;var r=Q(document.activeElement,e),o=!1,a=function(){o=!1,r||(r=!0,i._onDidFocus.fire())},u=function(){r&&(o=!0,window.setTimeout((function(){o&&(o=!1,r=!1,i._onDidBlur.fire())}),0))};return i._refreshStateHandler=function(){Q(document.activeElement,e)!==r&&(r?u():a())},i._register((0,c.jt)(e,ce.FOCUS,!0)(a)),i._register((0,c.jt)(e,ce.BLUR,!0)(u)),i}return(0,u.Z)(n)}(v.JT);function ge(e){return new pe(e)}function ve(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(e.append.apply(e,n),1===n.length&&"string"!==typeof n[0])return n[0]}function me(e){e.innerText="";for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];ve.apply(void 0,[e].concat(n))}var _e,ye=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;function be(e,t,n){var i,r=ye.exec(t);if(!r)throw new Error("Bad use of emmet");n=Object.assign({},n||{});var o,a=r[1]||"div";o=e!==_e.HTML?document.createElementNS(e,a):document.createElement(a),r[3]&&(o.id=r[3]),r[4]&&(o.className=r[4].replace(/\./g," ").trim()),Object.keys(n).forEach((function(e){var t=n[e];"undefined"!==typeof t&&(/^on\w+$/.test(e)?o[e]=t:"selected"===e?t&&o.setAttribute(e,"true"):o.setAttribute(e,t))}));for(var s=arguments.length,u=new Array(s>3?s-3:0),l=3;l<s;l++)u[l-3]=arguments[l];return(i=o).append.apply(i,u),o}function we(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return be.apply(void 0,[_e.HTML,e,t].concat(i))}function Ce(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var i=0,r=t;i<r.length;i++){var o=r[i];o.style.display="",o.removeAttribute("aria-hidden")}}function ke(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var i=0,r=t;i<r.length;i++){var o=r[i];o.style.display="none",o.setAttribute("aria-hidden","true")}}function Se(e){return Array.prototype.slice.call(document.getElementsByTagName(e),0)}function xe(e){var t=window.devicePixelRatio*e;return Math.max(1,Math.floor(t))/window.devicePixelRatio}function Le(e){window.open(e,"_blank","noopener")}function Ee(e){var t=O((function n(){e(),t=O(n)}));return(0,v.OF)((function(){return t.dispose()}))}function Ne(e){return e?"url('".concat(_.Gi.asBrowserUri(e).toString(!0).replace(/'/g,"%27"),"')"):"url('')"}function De(e){return"'".concat(e.replace(/'/g,"%27"),"'")}!function(e){e.HTML="http://www.w3.org/1999/xhtml",e.SVG="http://www.w3.org/2000/svg"}(_e||(_e={})),we.SVG=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return be.apply(void 0,[_e.SVG,e,t].concat(i))},_.WX.setPreferredWebSchema(/^https:/.test(window.location.href)?"https":"http");var Me=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,s.Z)(this,n),(e=t.call(this))._subscriptions=new v.SL,e._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},e._subscriptions.add((0,c.jt)(window,"keydown",!0)((function(t){var n=new d.y(t);if(6!==n.keyCode||!t.repeat){if(t.altKey&&!e._keyStatus.altKey)e._keyStatus.lastKeyPressed="alt";else if(t.ctrlKey&&!e._keyStatus.ctrlKey)e._keyStatus.lastKeyPressed="ctrl";else if(t.metaKey&&!e._keyStatus.metaKey)e._keyStatus.lastKeyPressed="meta";else if(t.shiftKey&&!e._keyStatus.shiftKey)e._keyStatus.lastKeyPressed="shift";else{if(6===n.keyCode)return;e._keyStatus.lastKeyPressed=void 0}e._keyStatus.altKey=t.altKey,e._keyStatus.ctrlKey=t.ctrlKey,e._keyStatus.metaKey=t.metaKey,e._keyStatus.shiftKey=t.shiftKey,e._keyStatus.lastKeyPressed&&(e._keyStatus.event=t,e.fire(e._keyStatus))}}))),e._subscriptions.add((0,c.jt)(window,"keyup",!0)((function(t){!t.altKey&&e._keyStatus.altKey?e._keyStatus.lastKeyReleased="alt":!t.ctrlKey&&e._keyStatus.ctrlKey?e._keyStatus.lastKeyReleased="ctrl":!t.metaKey&&e._keyStatus.metaKey?e._keyStatus.lastKeyReleased="meta":!t.shiftKey&&e._keyStatus.shiftKey?e._keyStatus.lastKeyReleased="shift":e._keyStatus.lastKeyReleased=void 0,e._keyStatus.lastKeyPressed!==e._keyStatus.lastKeyReleased&&(e._keyStatus.lastKeyPressed=void 0),e._keyStatus.altKey=t.altKey,e._keyStatus.ctrlKey=t.ctrlKey,e._keyStatus.metaKey=t.metaKey,e._keyStatus.shiftKey=t.shiftKey,e._keyStatus.lastKeyReleased&&(e._keyStatus.event=t,e.fire(e._keyStatus))}))),e._subscriptions.add((0,c.jt)(document.body,"mousedown",!0)((function(t){e._keyStatus.lastKeyPressed=void 0}))),e._subscriptions.add((0,c.jt)(document.body,"mouseup",!0)((function(t){e._keyStatus.lastKeyPressed=void 0}))),e._subscriptions.add((0,c.jt)(document.body,"mousemove",!0)((function(t){t.buttons&&(e._keyStatus.lastKeyPressed=void 0)}))),e._subscriptions.add((0,c.jt)(window,"blur")((function(t){e.resetKeyStatus()}))),e}return(0,u.Z)(n,[{key:"keyStatus",get:function(){return this._keyStatus}},{key:"resetKeyStatus",value:function(){this.doResetKeyStatus(),this.fire(this._keyStatus)}},{key:"doResetKeyStatus",value:function(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}},{key:"dispose",value:function(){(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this),this._subscriptions.dispose()}}],[{key:"getInstance",value:function(){return n.instance||(n.instance=new n),n.instance}}]),n}(g.Q5);function Te(e,t){var n=window.matchMedia(e);"function"===typeof n.addEventListener?n.addEventListener("change",t):n.addListener(t)}},61680:function(e,t,n){"use strict";n.d(t,{jt:function(){return r},p7:function(){return o},sT:function(){return a}});var i=n(11732),r=function(e,t,n){var r=function(e){return o.fire(e)},o=new i.Q5({onFirstListenerAdd:function(){e.addEventListener(t,r,n)},onLastListenerRemove:function(){e.removeEventListener(t,r,n)}});return o.event};function o(e){return e.preventDefault(),e.stopPropagation(),e}function a(e){return i.ju.map(e,o)}},41149:function(e,t,n){"use strict";n.d(t,{X:function(){return a},Z:function(){return o}});var i=n(15671),r=n(43144),o=function(){function e(t){(0,i.Z)(this,e),this.domNode=t,this._maxWidth=-1,this._width=-1,this._height=-1,this._top=-1,this._left=-1,this._bottom=-1,this._right=-1,this._fontFamily="",this._fontWeight="",this._fontSize=-1,this._fontFeatureSettings="",this._lineHeight=-1,this._letterSpacing=-100,this._className="",this._display="",this._position="",this._visibility="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}return(0,r.Z)(e,[{key:"setMaxWidth",value:function(e){this._maxWidth!==e&&(this._maxWidth=e,this.domNode.style.maxWidth=this._maxWidth+"px")}},{key:"setWidth",value:function(e){this._width!==e&&(this._width=e,this.domNode.style.width=this._width+"px")}},{key:"setHeight",value:function(e){this._height!==e&&(this._height=e,this.domNode.style.height=this._height+"px")}},{key:"setTop",value:function(e){this._top!==e&&(this._top=e,this.domNode.style.top=this._top+"px")}},{key:"unsetTop",value:function(){-1!==this._top&&(this._top=-1,this.domNode.style.top="")}},{key:"setLeft",value:function(e){this._left!==e&&(this._left=e,this.domNode.style.left=this._left+"px")}},{key:"setBottom",value:function(e){this._bottom!==e&&(this._bottom=e,this.domNode.style.bottom=this._bottom+"px")}},{key:"setRight",value:function(e){this._right!==e&&(this._right=e,this.domNode.style.right=this._right+"px")}},{key:"setFontFamily",value:function(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}},{key:"setFontWeight",value:function(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}},{key:"setFontSize",value:function(e){this._fontSize!==e&&(this._fontSize=e,this.domNode.style.fontSize=this._fontSize+"px")}},{key:"setFontFeatureSettings",value:function(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}},{key:"setLineHeight",value:function(e){this._lineHeight!==e&&(this._lineHeight=e,this.domNode.style.lineHeight=this._lineHeight+"px")}},{key:"setLetterSpacing",value:function(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.domNode.style.letterSpacing=this._letterSpacing+"px")}},{key:"setClassName",value:function(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}},{key:"toggleClassName",value:function(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}},{key:"setDisplay",value:function(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}},{key:"setPosition",value:function(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}},{key:"setVisibility",value:function(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}},{key:"setBackgroundColor",value:function(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}},{key:"setLayerHinting",value:function(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}},{key:"setBoxShadow",value:function(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}},{key:"setContain",value:function(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}},{key:"setAttribute",value:function(e,t){this.domNode.setAttribute(e,t)}},{key:"removeAttribute",value:function(e){this.domNode.removeAttribute(e)}},{key:"appendChild",value:function(e){this.domNode.appendChild(e.domNode)}},{key:"removeChild",value:function(e){this.domNode.removeChild(e.domNode)}}]),e}();function a(e){return new o(e)}},83935:function(e,t,n){"use strict";n.d(t,{BO:function(){return s},IY:function(){return a},az:function(){return u}});var i=n(15671),r=n(43144),o=n(84540);function a(e){var t=u(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});return t.textContent=e,t}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=u(t);return c(n,function(e,t){var n={type:1,children:[]},i=0,r=n,o=[],a=new l(e);for(;!a.eos();){var s=a.next(),u="\\"===s&&0!==h(a.peek(),t);if(u&&(s=a.next()),!u&&d(s,t)&&s===a.peek()){a.advance(),2===r.type&&(r=o.pop());var c=h(s,t);if(r.type===c||5===r.type&&6===c)r=o.pop();else{var f={type:c,children:[]};5===c&&(f.index=i,i++),r.children.push(f),o.push(r),r=f}}else if("\n"===s)2===r.type&&(r=o.pop()),r.children.push({type:8});else if(2!==r.type){var p={type:2,content:s};r.children.push(p),o.push(r),r=p}else r.content+=s}2===r.type&&(r=o.pop());o.length;return n}(e,!!t.renderCodeSegements),t.actionHandler,t.renderCodeSegements),n}function u(e){var t=e.inline?"span":"div",n=document.createElement(t);return e.className&&(n.className=e.className),n}var l=function(){function e(t){(0,i.Z)(this,e),this.source=t,this.index=0}return(0,r.Z)(e,[{key:"eos",value:function(){return this.index>=this.source.length}},{key:"next",value:function(){var e=this.peek();return this.advance(),e}},{key:"peek",value:function(){return this.source[this.index]}},{key:"advance",value:function(){this.index++}}]),e}();function c(e,t,n,i){var r;if(2===t.type)r=document.createTextNode(t.content||"");else if(3===t.type)r=document.createElement("b");else if(4===t.type)r=document.createElement("i");else if(7===t.type&&i)r=document.createElement("code");else if(5===t.type&&n){var a=document.createElement("a");a.href="#",n.disposeables.add(o.addStandardDisposableListener(a,"click",(function(e){n.callback(String(t.index),e)}))),r=a}else 8===t.type?r=document.createElement("br"):1===t.type&&(r=e);r&&e!==r&&e.appendChild(r),r&&Array.isArray(t.children)&&t.children.forEach((function(e){c(r,e,n,i)}))}function d(e,t){return 0!==h(e,t)}function h(e,t){switch(e){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return t?7:0;default:return 0}}},78101:function(e,t,n){"use strict";n.d(t,{Z:function(){return d},e:function(){return c}});var i=n(37762),r=n(15671),o=n(43144),a=n(84540),s=n(83581),u=n(55076),l=n(81626);function c(e,t){var n=new u.n(t);return n.preventDefault(),{leftButton:n.leftButton,buttons:n.buttons,posx:n.posx,posy:n.posy}}var d=function(){function e(){(0,r.Z)(this,e),this._hooks=new l.SL,this._mouseMoveEventMerger=null,this._mouseMoveCallback=null,this._onStopCallback=null}return(0,o.Z)(e,[{key:"dispose",value:function(){this.stopMonitoring(!1),this._hooks.dispose()}},{key:"stopMonitoring",value:function(e,t){if(this.isMonitoring()){this._hooks.clear(),this._mouseMoveEventMerger=null,this._mouseMoveCallback=null;var n=this._onStopCallback;this._onStopCallback=null,e&&n&&n(t)}}},{key:"isMonitoring",value:function(){return!!this._mouseMoveEventMerger}},{key:"startMonitoring",value:function(e,t,n,r,o){var l=this;if(!this.isMonitoring()){this._mouseMoveEventMerger=n,this._mouseMoveCallback=r,this._onStopCallback=o;var c=s.E.getSameOriginWindowChain(),d=c.map((function(e){return e.window.document})),h=a.getShadowRoot(e);h&&d.unshift(h);var f,p=(0,i.Z)(d);try{for(p.s();!(f=p.n()).done;){var g=f.value;this._hooks.add(a.addDisposableThrottledListener(g,"mousemove",(function(e){e.buttons===t?l._mouseMoveCallback(e):l.stopMonitoring(!0)}),(function(e,t){return l._mouseMoveEventMerger(e,t)}))),this._hooks.add(a.addDisposableListener(g,"mouseup",(function(e){return l.stopMonitoring(!0)})))}}catch(m){p.e(m)}finally{p.f()}if(s.E.hasDifferentOriginAncestor()){var v=c[c.length-1];this._hooks.add(a.addDisposableListener(v.window.document,"mouseout",(function(e){"html"===new u.n(e).target.tagName.toLowerCase()&&l.stopMonitoring(!0)}))),this._hooks.add(a.addDisposableListener(v.window.document,"mouseover",(function(e){"html"===new u.n(e).target.tagName.toLowerCase()&&l.stopMonitoring(!0)}))),this._hooks.add(a.addDisposableListener(v.window.document.body,"mouseleave",(function(e){l.stopMonitoring(!0)})))}}}}]),e}()},83581:function(e,t,n){"use strict";n.d(t,{E:function(){return l}});var i=n(37762),r=n(15671),o=n(43144),a=!1,s=null;function u(e){if(!e.parent||e.parent===e)return null;try{var t=e.location,n=e.parent.location;if("null"!==t.origin&&"null"!==n.origin&&(t.protocol!==n.protocol||t.hostname!==n.hostname||t.port!==n.port))return a=!0,null}catch(i){return a=!0,null}return e.parent}var l=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"getSameOriginWindowChain",value:function(){if(!s){s=[];var e,t=window;do{(e=u(t))?s.push({window:t,iframeElement:t.frameElement||null}):s.push({window:t,iframeElement:null}),t=e}while(t)}return s.slice(0)}},{key:"hasDifferentOriginAncestor",value:function(){return s||this.getSameOriginWindowChain(),a}},{key:"getPositionOfChildWindowRelativeToAncestorWindow",value:function(e,t){if(!t||e===t)return{top:0,left:0};var n,r=0,o=0,a=this.getSameOriginWindowChain(),s=(0,i.Z)(a);try{for(s.s();!(n=s.n()).done;){var u=n.value;if(r+=u.window.scrollY,o+=u.window.scrollX,u.window===t)break;if(!u.iframeElement)break;var l=u.iframeElement.getBoundingClientRect();r+=l.top,o+=l.left}}catch(c){s.e(c)}finally{s.f()}return{top:r,left:o}}}]),e}()},31737:function(e,t,n){"use strict";n.d(t,{y:function(){return h}});var i=n(15671),r=n(43144),o=n(84539),a=n(38792),s=n(30487),u=new Array(230),l=new Array(112);!function(){for(var e=0;e<l.length;e++)l[e]=-1;function t(e,t){u[e]=t,l[t]=e}t(3,7),t(8,1),t(9,2),t(13,3),t(16,4),t(17,5),t(18,6),t(19,7),t(20,8),t(27,9),t(32,10),t(33,11),t(34,12),t(35,13),t(36,14),t(37,15),t(38,16),t(39,17),t(40,18),t(45,19),t(46,20),t(48,21),t(49,22),t(50,23),t(51,24),t(52,25),t(53,26),t(54,27),t(55,28),t(56,29),t(57,30),t(65,31),t(66,32),t(67,33),t(68,34),t(69,35),t(70,36),t(71,37),t(72,38),t(73,39),t(74,40),t(75,41),t(76,42),t(77,43),t(78,44),t(79,45),t(80,46),t(81,47),t(82,48),t(83,49),t(84,50),t(85,51),t(86,52),t(87,53),t(88,54),t(89,55),t(90,56),t(93,58),t(96,93),t(97,94),t(98,95),t(99,96),t(100,97),t(101,98),t(102,99),t(103,100),t(104,101),t(105,102),t(106,103),t(107,104),t(108,105),t(109,106),t(110,107),t(111,108),t(112,59),t(113,60),t(114,61),t(115,62),t(116,63),t(117,64),t(118,65),t(119,66),t(120,67),t(121,68),t(122,69),t(123,70),t(124,71),t(125,72),t(126,73),t(127,74),t(128,75),t(129,76),t(130,77),t(144,78),t(145,79),t(186,80),t(187,81),t(188,82),t(189,83),t(190,84),t(191,85),t(192,86),t(193,110),t(194,111),t(219,87),t(220,88),t(221,89),t(222,90),t(223,91),t(226,92),t(229,109),o.vU?(t(59,80),t(107,81),t(109,83),s.dz&&t(224,57)):o.Pf&&(t(91,57),s.dz?t(93,57):t(92,57))}();var c=s.dz?256:2048,d=s.dz?2048:256,h=function(){function e(t){(0,i.Z)(this,e),this._standardKeyboardEventBrand=!0;var n=t;this.browserEvent=n,this.target=n.target,this.ctrlKey=n.ctrlKey,this.shiftKey=n.shiftKey,this.altKey=n.altKey,this.metaKey=n.metaKey,this.keyCode=function(e){if(e.charCode){var t=String.fromCharCode(e.charCode).toUpperCase();return a.kL.fromString(t)}return u[e.keyCode]||0}(n),this.code=n.code,this.ctrlKey=this.ctrlKey||5===this.keyCode,this.altKey=this.altKey||6===this.keyCode,this.shiftKey=this.shiftKey||4===this.keyCode,this.metaKey=this.metaKey||57===this.keyCode,this._asKeybinding=this._computeKeybinding(),this._asRuntimeKeybinding=this._computeRuntimeKeybinding()}return(0,r.Z)(e,[{key:"preventDefault",value:function(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}},{key:"stopPropagation",value:function(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}},{key:"toKeybinding",value:function(){return this._asRuntimeKeybinding}},{key:"equals",value:function(e){return this._asKeybinding===e}},{key:"_computeKeybinding",value:function(){var e=0;5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode);var t=0;return this.ctrlKey&&(t|=c),this.altKey&&(t|=512),this.shiftKey&&(t|=1024),this.metaKey&&(t|=d),t|=e}},{key:"_computeRuntimeKeybinding",value:function(){var e=0;return 5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode),new a.QC(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)}}]),e}()},55076:function(e,t,n){"use strict";n.d(t,{n:function(){return u},q:function(){return l}});var i=n(15671),r=n(43144),o=n(84539),a=n(83581),s=n(30487),u=function(){function e(t){(0,i.Z)(this,e),this.timestamp=Date.now(),this.browserEvent=t,this.leftButton=0===t.button,this.middleButton=1===t.button,this.rightButton=2===t.button,this.buttons=t.buttons,this.target=t.target,this.detail=t.detail||1,"dblclick"===t.type&&(this.detail=2),this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,"number"===typeof t.pageX?(this.posx=t.pageX,this.posy=t.pageY):(this.posx=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,this.posy=t.clientY+document.body.scrollTop+document.documentElement.scrollTop);var n=a.E.getPositionOfChildWindowRelativeToAncestorWindow(self,t.view);this.posx-=n.left,this.posy-=n.top}return(0,r.Z)(e,[{key:"preventDefault",value:function(){this.browserEvent.preventDefault()}},{key:"stopPropagation",value:function(){this.browserEvent.stopPropagation()}}]),e}(),l=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if((0,i.Z)(this,e),this.browserEvent=t||null,this.target=t?t.target||t.targetNode||t.srcElement:null,this.deltaY=r,this.deltaX=n,t){var a=t,u=t;if("undefined"!==typeof a.wheelDeltaY)this.deltaY=a.wheelDeltaY/120;else if("undefined"!==typeof u.VERTICAL_AXIS&&u.axis===u.VERTICAL_AXIS)this.deltaY=-u.detail/3;else if("wheel"===t.type){var l=t;l.deltaMode===l.DOM_DELTA_LINE?o.vU&&!s.dz?this.deltaY=-t.deltaY/3:this.deltaY=-t.deltaY:this.deltaY=-t.deltaY/40}if("undefined"!==typeof a.wheelDeltaX)o.G6&&s.ED?this.deltaX=-a.wheelDeltaX/120:this.deltaX=a.wheelDeltaX/120;else if("undefined"!==typeof u.HORIZONTAL_AXIS&&u.axis===u.HORIZONTAL_AXIS)this.deltaX=-t.detail/3;else if("wheel"===t.type){var c=t;c.deltaMode===c.DOM_DELTA_LINE?o.vU&&!s.dz?this.deltaX=-t.deltaX/3:this.deltaX=-t.deltaX:this.deltaX=-t.deltaX/40}0===this.deltaY&&0===this.deltaX&&t.wheelDelta&&(this.deltaY=t.wheelDelta/120)}}return(0,r.Z)(e,[{key:"preventDefault",value:function(){this.browserEvent&&this.browserEvent.preventDefault()}},{key:"stopPropagation",value:function(){this.browserEvent&&this.browserEvent.stopPropagation()}}]),e}()},25044:function(e,t,n){"use strict";n.d(t,{o:function(){return g},t:function(){return i}});var i,r=n(15671),o=n(43144),a=n(11752),s=n(61120),u=n(60136),l=n(29388),c=n(49396),d=n(81626),h=n(84540),f=n(94995),p=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a};!function(e){e.Tap="-monaco-gesturetap",e.Change="-monaco-gesturechange",e.Start="-monaco-gesturestart",e.End="-monaco-gesturesend",e.Contextmenu="-monaco-gesturecontextmenu"}(i||(i={}));var g=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.call(this)).dispatched=!1,e.activeTouches={},e.handle=null,e.targets=[],e.ignoreTargets=[],e._lastSetTapCountTime=0,e._register(h.addDisposableListener(document,"touchstart",(function(t){return e.onTouchStart(t)}),{passive:!1})),e._register(h.addDisposableListener(document,"touchend",(function(t){return e.onTouchEnd(t)}))),e._register(h.addDisposableListener(document,"touchmove",(function(t){return e.onTouchMove(t)}),{passive:!1})),e}return(0,o.Z)(n,[{key:"dispose",value:function(){this.handle&&(this.handle.dispose(),this.handle=null),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onTouchStart",value:function(e){var t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(var n=0,r=e.targetTouches.length;n<r;n++){var o=e.targetTouches.item(n);this.activeTouches[o.identifier]={id:o.identifier,initialTarget:o.target,initialTimeStamp:t,initialPageX:o.pageX,initialPageY:o.pageY,rollingTimestamps:[t],rollingPageX:[o.pageX],rollingPageY:[o.pageY]};var a=this.newGestureEvent(i.Start,o.target);a.pageX=o.pageX,a.pageY=o.pageY,this.dispatchEvent(a)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}},{key:"onTouchEnd",value:function(e){for(var t=this,r=Date.now(),o=Object.keys(this.activeTouches).length,a=function(){var a=e.changedTouches.item(s);if(!t.activeTouches.hasOwnProperty(String(a.identifier)))return console.warn("move of an UNKNOWN touch",a),"continue";var u=t.activeTouches[a.identifier],l=Date.now()-u.initialTimeStamp;if(l<n.HOLD_DELAY&&Math.abs(u.initialPageX-c.Gb(u.rollingPageX))<30&&Math.abs(u.initialPageY-c.Gb(u.rollingPageY))<30){var d=t.newGestureEvent(i.Tap,u.initialTarget);d.pageX=c.Gb(u.rollingPageX),d.pageY=c.Gb(u.rollingPageY),t.dispatchEvent(d)}else if(l>=n.HOLD_DELAY&&Math.abs(u.initialPageX-c.Gb(u.rollingPageX))<30&&Math.abs(u.initialPageY-c.Gb(u.rollingPageY))<30){var h=t.newGestureEvent(i.Contextmenu,u.initialTarget);h.pageX=c.Gb(u.rollingPageX),h.pageY=c.Gb(u.rollingPageY),t.dispatchEvent(h)}else if(1===o){var f=c.Gb(u.rollingPageX),p=c.Gb(u.rollingPageY),g=c.Gb(u.rollingTimestamps)-u.rollingTimestamps[0],v=f-u.rollingPageX[0],m=p-u.rollingPageY[0],_=t.targets.filter((function(e){return u.initialTarget instanceof Node&&e.contains(u.initialTarget)}));t.inertia(_,r,Math.abs(v)/g,v>0?1:-1,f,Math.abs(m)/g,m>0?1:-1,p)}t.dispatchEvent(t.newGestureEvent(i.End,u.initialTarget)),delete t.activeTouches[a.identifier]},s=0,u=e.changedTouches.length;s<u;s++)a();this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}},{key:"newGestureEvent",value:function(e,t){var n=document.createEvent("CustomEvent");return n.initEvent(e,!1,!0),n.initialTarget=t,n.tapCount=0,n}},{key:"dispatchEvent",value:function(e){var t=this;if(e.type===i.Tap){var r=(new Date).getTime(),o=0;o=r-this._lastSetTapCountTime>n.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=r,e.tapCount=o}else e.type!==i.Change&&e.type!==i.Contextmenu||(this._lastSetTapCountTime=0);for(var a=0;a<this.ignoreTargets.length;a++)if(e.initialTarget instanceof Node&&this.ignoreTargets[a].contains(e.initialTarget))return;this.targets.forEach((function(n){e.initialTarget instanceof Node&&n.contains(e.initialTarget)&&(n.dispatchEvent(e),t.dispatched=!0)}))}},{key:"inertia",value:function(e,t,r,o,a,s,u,l){var c=this;this.handle=h.scheduleAtNextAnimationFrame((function(){var d=Date.now(),h=d-t,f=0,p=0,g=!0;r+=n.SCROLL_FRICTION*h,s+=n.SCROLL_FRICTION*h,r>0&&(g=!1,f=o*r*h),s>0&&(g=!1,p=u*s*h);var v=c.newGestureEvent(i.Change);v.translationX=f,v.translationY=p,e.forEach((function(e){return e.dispatchEvent(v)})),g||c.inertia(e,d,r,o,a+f,s,u,l+p)}))}},{key:"onTouchMove",value:function(e){for(var t=Date.now(),n=0,r=e.changedTouches.length;n<r;n++){var o=e.changedTouches.item(n);if(this.activeTouches.hasOwnProperty(String(o.identifier))){var a=this.activeTouches[o.identifier],s=this.newGestureEvent(i.Change,a.initialTarget);s.translationX=o.pageX-c.Gb(a.rollingPageX),s.translationY=o.pageY-c.Gb(a.rollingPageY),s.pageX=o.pageX,s.pageY=o.pageY,this.dispatchEvent(s),a.rollingPageX.length>3&&(a.rollingPageX.shift(),a.rollingPageY.shift(),a.rollingTimestamps.shift()),a.rollingPageX.push(o.pageX),a.rollingPageY.push(o.pageY),a.rollingTimestamps.push(t)}else console.warn("end of an UNKNOWN touch",o)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}],[{key:"addTarget",value:function(e){return n.isTouchDevice()?(n.INSTANCE||(n.INSTANCE=new n),n.INSTANCE.targets.push(e),{dispose:function(){n.INSTANCE.targets=n.INSTANCE.targets.filter((function(t){return t!==e}))}}):d.JT.None}},{key:"ignoreTarget",value:function(e){return n.isTouchDevice()?(n.INSTANCE||(n.INSTANCE=new n),n.INSTANCE.ignoreTargets.push(e),{dispose:function(){n.INSTANCE.ignoreTargets=n.INSTANCE.ignoreTargets.filter((function(t){return t!==e}))}}):d.JT.None}},{key:"isTouchDevice",value:function(){return"ontouchstart"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0}}]),n}(d.JT);g.SCROLL_FRICTION=-.005,g.HOLD_DELAY=700,g.CLEAR_TAP_COUNT_TIME=400,p([f.H],g,"isTouchDevice",null)},84039:function(e,t,n){"use strict";n.d(t,{Y:function(){return b},g:function(){return w}});var i=n(93433),r=n(15671),o=n(43144),a=n(97326),s=n(11752),u=n(61120),l=n(60136),c=n(29388),d=(n(26116),n(30487)),h=n(56345),f=n(81626),p=n(29077),g=n(25941),v=n(25044),m=n(53042),_=n(84539),y=n(84540),b=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(e,i){var o,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.Z)(this,n),(o=t.call(this)).options=s,o._context=e||(0,a.Z)(o),o._action=i,i instanceof p.aU&&o._register(i.onDidChange((function(e){o.element&&o.handleActionChangeEvent(e)}))),o}return(0,o.Z)(n,[{key:"handleActionChangeEvent",value:function(e){void 0!==e.enabled&&this.updateEnabled(),void 0!==e.checked&&this.updateChecked(),void 0!==e.class&&this.updateClass(),void 0!==e.label&&(this.updateLabel(),this.updateTooltip()),void 0!==e.tooltip&&this.updateTooltip()}},{key:"actionRunner",get:function(){return this._actionRunner||(this._actionRunner=this._register(new p.Wi)),this._actionRunner},set:function(e){this._actionRunner=e}},{key:"getAction",value:function(){return this._action}},{key:"isEnabled",value:function(){return this._action.enabled}},{key:"setActionContext",value:function(e){this._context=e}},{key:"render",value:function(e){var t=this,n=this.element=e;this._register(v.o.addTarget(e));var i=this.options&&this.options.draggable;i&&(e.draggable=!0,_.vU&&this._register((0,y.addDisposableListener)(e,y.EventType.DRAG_START,(function(e){var n;return null===(n=e.dataTransfer)||void 0===n?void 0:n.setData(m.go.TEXT,t._action.label)})))),this._register((0,y.addDisposableListener)(n,v.t.Tap,(function(e){return t.onClick(e)}))),this._register((0,y.addDisposableListener)(n,y.EventType.MOUSE_DOWN,(function(e){i||y.EventHelper.stop(e,!0),t._action.enabled&&0===e.button&&n.classList.add("active")}))),d.dz&&this._register((0,y.addDisposableListener)(n,y.EventType.CONTEXT_MENU,(function(e){0===e.button&&!0===e.ctrlKey&&t.onClick(e)}))),this._register((0,y.addDisposableListener)(n,y.EventType.CLICK,(function(e){y.EventHelper.stop(e,!0),t.options&&t.options.isMenu||d.xS((function(){return t.onClick(e)}))}))),this._register((0,y.addDisposableListener)(n,y.EventType.DBLCLICK,(function(e){y.EventHelper.stop(e,!0)}))),[y.EventType.MOUSE_UP,y.EventType.MOUSE_OUT].forEach((function(e){t._register((0,y.addDisposableListener)(n,e,(function(e){y.EventHelper.stop(e),n.classList.remove("active")})))}))}},{key:"onClick",value:function(e){var t;y.EventHelper.stop(e,!0);var n=g.Jp(this._context)?(null===(t=this.options)||void 0===t?void 0:t.useEventAsContext)?e:void 0:this._context;this.actionRunner.run(this._action,n)}},{key:"focus",value:function(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}},{key:"blur",value:function(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}},{key:"setFocusable",value:function(e){this.element&&(this.element.tabIndex=e?0:-1)}},{key:"trapsArrowNavigation",get:function(){return!1}},{key:"updateEnabled",value:function(){}},{key:"updateLabel",value:function(){}},{key:"updateTooltip",value:function(){}},{key:"updateClass",value:function(){}},{key:"updateChecked",value:function(){}},{key:"dispose",value:function(){this.element&&(this.element.remove(),this.element=void 0),(0,s.Z)((0,u.Z)(n.prototype),"dispose",this).call(this)}}]),n}(f.JT),w=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(e,i){var o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.Z)(this,n),(o=t.call(this,e,i,a)).options=a,o.options.icon=void 0!==a.icon&&a.icon,o.options.label=void 0===a.label||a.label,o.cssClass="",o}return(0,o.Z)(n,[{key:"render",value:function(e){(0,s.Z)((0,u.Z)(n.prototype),"render",this).call(this,e),this.element&&(this.label=(0,y.append)(this.element,(0,y.$)("a.action-label"))),this.label&&(this._action.id===p.Z0.ID?this.label.setAttribute("role","presentation"):this.options.isMenu?this.label.setAttribute("role","menuitem"):this.label.setAttribute("role","button")),this.options.label&&this.options.keybinding&&this.element&&((0,y.append)(this.element,(0,y.$)("span.keybinding")).textContent=this.options.keybinding),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}},{key:"focus",value:function(){this.label&&(this.label.tabIndex=0,this.label.focus())}},{key:"blur",value:function(){this.label&&(this.label.tabIndex=-1)}},{key:"setFocusable",value:function(e){this.label&&(this.label.tabIndex=e?0:-1)}},{key:"updateLabel",value:function(){this.options.label&&this.label&&(this.label.textContent=this.getAction().label)}},{key:"updateTooltip",value:function(){var e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=h.N({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),e&&this.label&&(this.label.title=e)}},{key:"updateClass",value:function(){var e;this.cssClass&&this.label&&(e=this.label.classList).remove.apply(e,(0,i.Z)(this.cssClass.split(" ")));if(this.options.icon){var t;if(this.cssClass=this.getAction().class,this.label)if(this.label.classList.add("codicon"),this.cssClass)(t=this.label.classList).add.apply(t,(0,i.Z)(this.cssClass.split(" ")));this.updateEnabled()}else this.label&&this.label.classList.remove("codicon")}},{key:"updateEnabled",value:function(){this.getAction().enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),this.element&&this.element.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),this.element&&this.element.classList.add("disabled"))}},{key:"updateChecked",value:function(){this.label&&(this.getAction().checked?this.label.classList.add("checked"):this.label.classList.remove("checked"))}}]),n}(b)},67404:function(e,t,n){"use strict";n.d(t,{o:function(){return y}});var i=n(15671),r=n(43144),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(87757),c=n.n(l),d=(n(26116),n(81626)),h=n(29077),f=n(84540),p=n(25941),g=n(31737),v=n(11732),m=n(84039),_=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},y=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var r,o,a,s,u,l,c,d,p,_=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch((0,i.Z)(this,n),(r=t.call(this)).triggerKeyDown=!1,r.focusable=!0,r._onDidBlur=r._register(new v.Q5),r.onDidBlur=r._onDidBlur.event,r._onDidCancel=r._register(new v.Q5({onFirstListenerAdd:function(){return r.cancelHasListener=!0}})),r.onDidCancel=r._onDidCancel.event,r.cancelHasListener=!1,r._onDidRun=r._register(new v.Q5),r.onDidRun=r._onDidRun.event,r._onBeforeRun=r._register(new v.Q5),r.onBeforeRun=r._onBeforeRun.event,r.options=_,r._context=null!==(o=_.context)&&void 0!==o?o:null,r._orientation=null!==(a=r.options.orientation)&&void 0!==a?a:0,r._triggerKeys={keyDown:null!==(u=null===(s=r.options.triggerKeys)||void 0===s?void 0:s.keyDown)&&void 0!==u&&u,keys:null!==(c=null===(l=r.options.triggerKeys)||void 0===l?void 0:l.keys)&&void 0!==c?c:[3,10]},r.options.actionRunner?r._actionRunner=r.options.actionRunner:(r._actionRunner=new h.Wi,r._register(r._actionRunner)),r._register(r._actionRunner.onDidRun((function(e){return r._onDidRun.fire(e)}))),r._register(r._actionRunner.onBeforeRun((function(e){return r._onBeforeRun.fire(e)}))),r._actionIds=[],r.viewItems=[],r.focusedItem=void 0,r.domNode=document.createElement("div"),r.domNode.className="monaco-action-bar",!1!==_.animated&&r.domNode.classList.add("animated"),r._orientation){case 0:d=[15],p=[17];break;case 1:d=[16],p=[18],r.domNode.className+=" vertical"}return r._register(f.addDisposableListener(r.domNode,f.EventType.KEY_DOWN,(function(e){var t=new g.y(e),n=!0,i="number"===typeof r.focusedItem?r.viewItems[r.focusedItem]:void 0;d&&(t.equals(d[0])||t.equals(d[1]))?n=r.focusPrevious():p&&(t.equals(p[0])||t.equals(p[1]))?n=r.focusNext():t.equals(9)&&r.cancelHasListener?r._onDidCancel.fire():t.equals(14)?n=r.focusFirst():t.equals(13)?n=r.focusLast():t.equals(2)&&i instanceof m.Y&&i.trapsArrowNavigation?n=r.focusNext():r.isTriggerKeyEvent(t)?r._triggerKeys.keyDown?r.doTrigger(t):r.triggerKeyDown=!0:n=!1,n&&(t.preventDefault(),t.stopPropagation())}))),r._register(f.addDisposableListener(r.domNode,f.EventType.KEY_UP,(function(e){var t=new g.y(e);r.isTriggerKeyEvent(t)?(!r._triggerKeys.keyDown&&r.triggerKeyDown&&(r.triggerKeyDown=!1,r.doTrigger(t)),t.preventDefault(),t.stopPropagation()):(t.equals(2)||t.equals(1026))&&r.updateFocusedItem()}))),r.focusTracker=r._register(f.trackFocus(r.domNode)),r._register(r.focusTracker.onDidBlur((function(){f.getActiveElement()!==r.domNode&&f.isAncestor(f.getActiveElement(),r.domNode)||(r._onDidBlur.fire(),r.focusedItem=void 0,r.triggerKeyDown=!1)}))),r._register(r.focusTracker.onDidFocus((function(){return r.updateFocusedItem()}))),r.actionsList=document.createElement("ul"),r.actionsList.className="actions-container",r.actionsList.setAttribute("role","toolbar"),r.options.ariaLabel&&r.actionsList.setAttribute("aria-label",r.options.ariaLabel),r.domNode.appendChild(r.actionsList),e.appendChild(r.domNode),r}return(0,r.Z)(n,[{key:"isTriggerKeyEvent",value:function(e){var t=!1;return this._triggerKeys.keys.forEach((function(n){t=t||e.equals(n)})),t}},{key:"updateFocusedItem",value:function(){for(var e=0;e<this.actionsList.children.length;e++){var t=this.actionsList.children[e];if(f.isAncestor(f.getActiveElement(),t)){this.focusedItem=e;break}}}},{key:"context",get:function(){return this._context},set:function(e){this._context=e,this.viewItems.forEach((function(t){return t.setActionContext(e)}))}},{key:"actionRunner",get:function(){return this._actionRunner},set:function(e){e&&(this._actionRunner=e,this.viewItems.forEach((function(t){return t.actionRunner=e})))}},{key:"getContainer",value:function(){return this.domNode}},{key:"push",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=Array.isArray(e)?e:[e],r=p.hj(n.index)?n.index:null;i.forEach((function(e){var i,o=document.createElement("li");o.className="action-item",o.setAttribute("role","presentation"),t.options.allowContextMenu||t._register(f.addDisposableListener(o,f.EventType.CONTEXT_MENU,(function(e){f.EventHelper.stop(e,!0)}))),t.options.actionViewItemProvider&&(i=t.options.actionViewItemProvider(e)),i||(i=new m.g(t.context,e,n)),i.actionRunner=t._actionRunner,i.setActionContext(t.context),i.render(o),t.focusable&&i instanceof m.Y&&0===t.viewItems.length&&i.setFocusable(!0),null===r||r<0||r>=t.actionsList.children.length?(t.actionsList.appendChild(o),t.viewItems.push(i),t._actionIds.push(e.id)):(t.actionsList.insertBefore(o,t.actionsList.children[r]),t.viewItems.splice(r,0,i),t._actionIds.splice(r,0,e.id),r++)})),"number"===typeof this.focusedItem&&this.focus(this.focusedItem)}},{key:"clear",value:function(){(0,d.B9)(this.viewItems),this.viewItems=[],this._actionIds=[],f.clearNode(this.actionsList)}},{key:"length",value:function(){return this.viewItems.length}},{key:"focus",value:function(e){var t=!1,n=void 0;if(void 0===e?t=!0:"number"===typeof e?n=e:"boolean"===typeof e&&(t=e),t&&"undefined"===typeof this.focusedItem){var i=this.viewItems.findIndex((function(e){return e.isEnabled()}));this.focusedItem=-1===i?void 0:i,this.updateFocus()}else void 0!==n&&(this.focusedItem=n),this.updateFocus()}},{key:"focusFirst",value:function(){return this.focusedItem=this.length()>1?1:0,this.focusPrevious()}},{key:"focusLast",value:function(){return this.focusedItem=this.length()<2?0:this.length()-2,this.focusNext()}},{key:"focusNext",value:function(){if("undefined"===typeof this.focusedItem)this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;var e,t=this.focusedItem;do{if(this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,e=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&this.options.focusOnlyEnabledItems&&!e.isEnabled());return this.updateFocus(),!0}},{key:"focusPrevious",value:function(){if("undefined"===typeof this.focusedItem)this.focusedItem=0;else if(this.viewItems.length<=1)return!1;var e,t=this.focusedItem;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}e=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&this.options.focusOnlyEnabledItems&&!e.isEnabled());return this.updateFocus(!0),!0}},{key:"updateFocus",value:function(e,t){"undefined"===typeof this.focusedItem&&this.actionsList.focus({preventScroll:t});for(var n=0;n<this.viewItems.length;n++){var i=this.viewItems[n],r=i;if(n===this.focusedItem){var o=!0;p.mf(r.focus)||(o=!1),this.options.focusOnlyEnabledItems&&p.mf(i.isEnabled)&&!i.isEnabled()&&(o=!1),o?r.focus(e):this.actionsList.focus({preventScroll:t})}else p.mf(r.blur)&&r.blur()}}},{key:"doTrigger",value:function(e){if("undefined"!==typeof this.focusedItem){var t=this.viewItems[this.focusedItem];if(t instanceof m.Y){var n=null===t._context||void 0===t._context?e:t._context;this.run(t._action,n)}}}},{key:"run",value:function(e,t){return _(this,void 0,void 0,c().mark((function n(){return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this._actionRunner.run(e,t);case 2:case"end":return n.stop()}}),n,this)})))}},{key:"dispose",value:function(){(0,d.B9)(this.viewItems),this.viewItems=[],this._actionIds=[],this.getContainer().remove(),(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this)}}]),n}(d.JT)},52180:function(e,t,n){"use strict";n.d(t,{Z9:function(){return h},wW:function(){return d},i7:function(){return f}});var i,r,o,a,s,u=n(30487),l=n(84540),c=2e4;function d(e){(i=document.createElement("div")).className="monaco-aria-container";var t=function(){var e=document.createElement("div");return e.className="monaco-alert",e.setAttribute("role","alert"),e.setAttribute("aria-atomic","true"),i.appendChild(e),e};r=t(),o=t();var n=function(){var e=document.createElement("div");return e.className="monaco-status",e.setAttribute("role","complementary"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),i.appendChild(e),e};a=n(),s=n(),e.appendChild(i)}function h(e){i&&(r.textContent!==e?(l.clearNode(o),p(r,e)):(l.clearNode(r),p(o,e)))}function f(e){i&&(u.dz?h(e):a.textContent!==e?(l.clearNode(s),p(a,e)):(l.clearNode(a),p(s,e)))}function p(e,t){l.clearNode(e),t.length>c&&(t=t.substr(0,c)),e.textContent=t,e.style.visibility="hidden",e.style.visibility="visible"}},22410:function(e,t,n){"use strict";n.d(t,{a:function(){return r}});var i=n(4354);function r(e){for(var t=e.definition;t instanceof i.lA;)t=t.definition;return".codicon-".concat(e.id,":before { content: '").concat(t.fontCharacter,"'; }")}},57502:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var i=n(15671),r=n(43144),o=n(84540),a=n(51747),s=n(89938),u=n(10405),l={badgeBackground:s.Il.fromHex("#4D4D4D"),badgeForeground:s.Il.fromHex("#FFFFFF")},c=function(){function e(t,n){(0,i.Z)(this,e),this.count=0,this.options=n||Object.create(null),(0,u.jB)(this.options,l,!1),this.badgeBackground=this.options.badgeBackground,this.badgeForeground=this.options.badgeForeground,this.badgeBorder=this.options.badgeBorder,this.element=(0,o.append)(t,(0,o.$)(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}return(0,r.Z)(e,[{key:"setCount",value:function(e){this.count=e,this.render()}},{key:"setTitleFormat",value:function(e){this.titleFormat=e,this.render()}},{key:"render",value:function(){this.element.textContent=(0,a.WU)(this.countFormat,this.count),this.element.title=(0,a.WU)(this.titleFormat,this.count),this.applyStyles()}},{key:"style",value:function(e){this.badgeBackground=e.badgeBackground,this.badgeForeground=e.badgeForeground,this.badgeBorder=e.badgeBorder,this.applyStyles()}},{key:"applyStyles",value:function(){if(this.element){var e=this.badgeBackground?this.badgeBackground.toString():"",t=this.badgeForeground?this.badgeForeground.toString():"",n=this.badgeBorder?this.badgeBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.element.style.borderWidth=n?"1px":"",this.element.style.borderStyle=n?"solid":"",this.element.style.borderColor=n}}}]),e}()},61743:function(e,t,n){"use strict";n.d(t,{q:function(){return c}});var i=n(93433),r=n(37762),o=n(15671),a=n(43144),s=n(10405),u=n(84540),l=n(66404),c=function(){function e(t,n){(0,o.Z)(this,e),this.supportIcons=n,this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.domNode=document.createElement("span"),this.domNode.className="monaco-highlighted-label",t.appendChild(this.domNode)}return(0,a.Z)(e,[{key:"element",get:function(){return this.domNode}},{key:"set",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";t||(t=""),(arguments.length>3?arguments[3]:void 0)&&(t=e.escapeNewLines(t,n)),this.didEverRender&&this.text===t&&this.title===i&&s.fS(this.highlights,n)||(this.text=t,this.title=i,this.highlights=n,this.render())}},{key:"render",value:function(){var e,t=[],n=0,o=(0,r.Z)(this.highlights);try{for(o.s();!(e=o.n()).done;){var a=e.value;if(a.end!==a.start){if(n<a.start){var s=this.text.substring(n,a.start);t.push(u.$.apply(u,["span",void 0].concat((0,i.Z)(this.supportIcons?(0,l.T)(s):[s])))),n=a.end}var c=this.text.substring(a.start,a.end),d=u.$.apply(u,["span.highlight",void 0].concat((0,i.Z)(this.supportIcons?(0,l.T)(c):[c])));a.extraClasses&&d.classList.add(a.extraClasses),t.push(d),n=a.end}}}catch(f){o.e(f)}finally{o.f()}if(n<this.text.length){var h=this.text.substring(n);t.push(u.$.apply(u,["span",void 0].concat((0,i.Z)(this.supportIcons?(0,l.T)(h):[h]))))}u.reset.apply(u,[this.domNode].concat(t)),this.title?this.domNode.title=this.title:this.domNode.removeAttribute("title"),this.didEverRender=!0}}],[{key:"escapeNewLines",value:function(e,t){var n=0,i=0;return e.replace(/\r\n|\r|\n/g,(function(e,o){i="\r\n"===e?-1:0,o+=n;var a,s=(0,r.Z)(t);try{for(s.s();!(a=s.n()).done;){var u=a.value;u.end<=o||(u.start>=o&&(u.start+=i),u.end>=o&&(u.end+=i))}}catch(l){s.e(l)}finally{s.f()}return n+=i,"\u23ce"}))}}]),e}()},5677:function(e,t,n){"use strict";n.d(t,{g:function(){return w}});var i=n(93433),r=n(60136),o=n(29388),a=n(15671),s=n(43144),u=n(87757),l=n.n(u),c=n(84540),d=n(61743),h=n(81626),f=n(81629),p=n(10405),g=n(25941),v=n(61680),m=n(56345),_=n(66526),y=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},b=function(){function e(t){(0,a.Z)(this,e),this._element=t}return(0,s.Z)(e,[{key:"element",get:function(){return this._element}},{key:"textContent",set:function(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}},{key:"className",set:function(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}},{key:"empty",set:function(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?"0":"")}},{key:"dispose",value:function(){this.disposed=!0}}]),e}(),w=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i){var r;(0,a.Z)(this,n),(r=t.call(this)).hoverDelegate=void 0,r.customHovers=new Map,r.domNode=r._register(new b(c.append(e,c.$(".monaco-icon-label")))),r.labelContainer=c.append(r.domNode.element,c.$(".monaco-icon-label-container"));var o=c.append(r.labelContainer,c.$("span.monaco-icon-name-container"));return r.descriptionContainer=r._register(new b(c.append(r.labelContainer,c.$("span.monaco-icon-description-container")))),(null===i||void 0===i?void 0:i.supportHighlights)?r.nameNode=new k(o,!!i.supportIcons):r.nameNode=new C(o),(null===i||void 0===i?void 0:i.supportDescriptionHighlights)?r.descriptionNodeFactory=function(){return new d.q(c.append(r.descriptionContainer.element,c.$("span.label-description")),!!i.supportIcons)}:r.descriptionNodeFactory=function(){return r._register(new b(c.append(r.descriptionContainer.element,c.$("span.label-description"))))},(null===i||void 0===i?void 0:i.hoverDelegate)&&(r.hoverDelegate=i.hoverDelegate),r}return(0,s.Z)(n,[{key:"setLabel",value:function(e,t,n){var r=["monaco-icon-label"];n&&(n.extraClasses&&r.push.apply(r,(0,i.Z)(n.extraClasses)),n.italic&&r.push("italic"),n.strikethrough&&r.push("strikethrough")),this.domNode.className=r.join(" "),this.setupHover(this.labelContainer,null===n||void 0===n?void 0:n.title),this.nameNode.setLabel(e,n),(t||this.descriptionNode)&&(this.descriptionNode||(this.descriptionNode=this.descriptionNodeFactory()),this.descriptionNode instanceof d.q?(this.descriptionNode.set(t||"",n?n.descriptionMatches:void 0),this.setupHover(this.descriptionNode.element,null===n||void 0===n?void 0:n.descriptionTitle)):(this.descriptionNode.textContent=t||"",this.setupHover(this.descriptionNode.element,(null===n||void 0===n?void 0:n.descriptionTitle)||""),this.descriptionNode.empty=!t))}},{key:"setupHover",value:function(e,t){var n=this.customHovers.get(e);if(n&&(n.dispose(),this.customHovers.delete(e)),t)return this.hoverDelegate?this.setupCustomHover(this.hoverDelegate,e,t):this.setupNativeHover(e,t);e.removeAttribute("title")}},{key:"getTooltipForCustom",value:function(e){var t=this;if((0,g.HD)(e))return function(){return y(t,void 0,void 0,l().mark((function t(){return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e);case 1:case"end":return t.stop()}}),t)})))};if((0,g.mf)(e.markdown))return e.markdown;var n=e.markdown;return function(){return y(t,void 0,void 0,l().mark((function e(){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",n);case 1:case"end":return e.stop()}}),e)})))}}},{key:"setupCustomHover",value:function(e,t,i){t.setAttribute("title",""),t.removeAttribute("title");var r,o,a,s,u=this.getTooltipForCustom(i),d=!1;var h=this._register((0,v.jt)(t,c.EventType.MOUSE_OVER,!0)(function(h){var f=this;if(!d){a=new _.A;var p=(0,v.jt)(t,c.EventType.MOUSE_LEAVE,!0)(C.bind(t)),b=(0,v.jt)(t,c.EventType.MOUSE_DOWN,!0)(C.bind(t));d=!0;var w=(0,v.jt)(t,c.EventType.MOUSE_MOVE,!0)(function(e){o=e.x}.bind(t));setTimeout((function(){return y(f,void 0,void 0,l().mark((function t(){var c,h,f;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!d||!u){t.next=18;break}if(r){t.next=18;break}return h={targetElements:[this],dispose:function(){}},r={text:(0,m.N)("iconLabel.loading","Loading..."),target:h,hoverPosition:2},s=n.adjustXAndShowCustomHover(r,o,e,d),t.next=7,u(a.token);case 7:if(t.t1=c=t.sent,t.t0=null!==t.t1,!t.t0){t.next=11;break}t.t0=void 0!==c;case 11:if(!t.t0){t.next=15;break}t.t2=c,t.next=16;break;case 15:t.t2=(0,g.HD)(i)?void 0:i.markdownNotSupportedFallback;case 16:(f=t.t2)?(r={text:f,target:h,hoverPosition:2},s=n.adjustXAndShowCustomHover(r,o,e,d)):s&&(s.dispose(),s=void 0);case 18:w.dispose();case 19:case"end":return t.stop()}}),t,this)})))}),e.delay)}function C(e){var n=e.type===c.EventType.MOUSE_DOWN;n&&(null===s||void 0===s||s.dispose(),s=void 0),(n||e.fromElement===t)&&(d=!1,r=void 0,a.dispose(!0),p.dispose(),b.dispose())}}.bind(t)));this.customHovers.set(t,h)}},{key:"setupNativeHover",value:function(e,t){var n="";(0,g.HD)(t)?n=t:(null===t||void 0===t?void 0:t.markdownNotSupportedFallback)&&(n=t.markdownNotSupportedFallback),e.title=n}}],[{key:"adjustXAndShowCustomHover",value:function(e,t,n,i){if(e&&i)return void 0!==t&&(e.target.x=t+10),n.showHover(e)}}]),n}(h.JT),C=function(){function e(t){(0,a.Z)(this,e),this.container=t,this.label=void 0,this.singleLabel=void 0}return(0,s.Z)(e,[{key:"setLabel",value:function(e,t){if(this.label!==e||!(0,p.fS)(this.options,t))if(this.label=e,this.options=t,"string"===typeof e)this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=c.append(this.container,c.$("a.label-name",{id:null===t||void 0===t?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(var n=0;n<e.length;n++){var i=e[n],r=(null===t||void 0===t?void 0:t.domId)&&"".concat(null===t||void 0===t?void 0:t.domId,"_").concat(n);c.append(this.container,c.$("a.label-name",{id:r,"data-icon-label-count":e.length,"data-icon-label-index":n,role:"treeitem"},i)),n<e.length-1&&c.append(this.container,c.$("span.label-separator",void 0,(null===t||void 0===t?void 0:t.separator)||"/"))}}}}]),e}();var k=function(){function e(t,n){(0,a.Z)(this,e),this.container=t,this.supportIcons=n,this.label=void 0,this.singleLabel=void 0}return(0,s.Z)(e,[{key:"setLabel",value:function(e,t){if(this.label!==e||!(0,p.fS)(this.options,t))if(this.label=e,this.options=t,"string"===typeof e)this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=new d.q(c.append(this.container,c.$("a.label-name",{id:null===t||void 0===t?void 0:t.domId})),this.supportIcons)),this.singleLabel.set(e,null===t||void 0===t?void 0:t.matches,void 0,null===t||void 0===t?void 0:t.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(var n=(null===t||void 0===t?void 0:t.separator)||"/",i=function(e,t,n){if(n){var i=0;return e.map((function(e){var r={start:i,end:i+e.length},o=n.map((function(e){return f.e.intersect(r,e)})).filter((function(e){return!f.e.isEmpty(e)})).map((function(e){var t=e.start,n=e.end;return{start:t-i,end:n-i}}));return i=r.end+t.length,o}))}}(e,n,null===t||void 0===t?void 0:t.matches),r=0;r<e.length;r++){var o=e[r],a=i?i[r]:void 0,s=(null===t||void 0===t?void 0:t.domId)&&"".concat(null===t||void 0===t?void 0:t.domId,"_").concat(r),u=c.$("a.label-name",{id:s,"data-icon-label-count":e.length,"data-icon-label-index":r,role:"treeitem"});new d.q(c.append(this.container,u),this.supportIcons).set(o,a,void 0,null===t||void 0===t?void 0:t.labelEscapeNewLines),r<e.length-1&&c.append(u,c.$("span.label-separator",void 0,n))}}}}]),e}()},66404:function(e,t,n){"use strict";n.d(t,{T:function(){return u}});var i=n(93433),r=n(29439),o=n(84540),a=n(4354),s=new RegExp("(\\\\)?\\$\\((".concat(a.dT.iconNameExpression,"(?:").concat(a.dT.iconModifierExpression,")?)\\)"),"g");function u(e){for(var t,n=new Array,i=0,o=0;null!==(t=s.exec(e));){o=t.index||0,n.push(e.substring(i,o)),i=(t.index||0)+t[0].length;var a=t,u=(0,r.Z)(a,3),c=u[1],d=u[2];n.push(c?"$(".concat(d,")"):l({id:d}))}return i<e.length&&n.push(e.substring(i)),n}function l(e){var t,n=o.$("span");return(t=n.classList).add.apply(t,(0,i.Z)(a.dT.asClassNameArray(e))),n}},68027:function(e,t,n){"use strict";n.d(t,{p:function(){return E},W:function(){return L}});var i=n(15671),r=n(43144),o=n(97326),a=n(11752),s=n(61120),u=n(60136),l=n(29388),c=n(56345),d=n(84540),h=n(83935),f=n(52180),p=n(67404),g=n(11732),v=n(43257),m=n(89938),_=n(10405),y=n(37762),b=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n-1;(0,i.Z)(this,e),this.items=t,this.start=n,this.end=r,this.index=o}return(0,r.Z)(e,[{key:"current",value:function(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}},{key:"next",value:function(){return this.index=Math.min(this.index+1,this.end),this.current()}},{key:"previous",value:function(){return this.index=Math.max(this.index-1,this.start-1),this.current()}},{key:"first",value:function(){return this.index=this.start,this.current()}},{key:"last",value:function(){return this.index=this.end-1,this.current()}}]),e}(),w=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;(0,i.Z)(this,e),this._initialize(t),this._limit=n,this._onChange()}return(0,r.Z)(e,[{key:"add",value:function(e){this._history.delete(e),this._history.add(e),this._onChange()}},{key:"next",value:function(){return this._currentPosition()!==this._elements.length-1?this._navigator.next():null}},{key:"previous",value:function(){return 0!==this._currentPosition()?this._navigator.previous():null}},{key:"current",value:function(){return this._navigator.current()}},{key:"first",value:function(){return this._navigator.first()}},{key:"last",value:function(){return this._navigator.last()}},{key:"has",value:function(e){return this._history.has(e)}},{key:"_onChange",value:function(){this._reduceToLimit();var e=this._elements;this._navigator=new b(e,0,e.length,e.length)}},{key:"_reduceToLimit",value:function(){var e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}},{key:"_currentPosition",value:function(){var e=this._navigator.current();return e?this._elements.indexOf(e):-1}},{key:"_initialize",value:function(e){this._history=new Set;var t,n=(0,y.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;this._history.add(i)}}catch(r){n.e(r)}finally{n.f()}}},{key:"_elements",get:function(){var e=[];return this._history.forEach((function(t){return e.push(t)})),e}}]),e}(),C=n(61727),k=n(61680),S=d.$,x={inputBackground:m.Il.fromHex("#3C3C3C"),inputForeground:m.Il.fromHex("#CCCCCC"),inputValidationInfoBorder:m.Il.fromHex("#55AAFF"),inputValidationInfoBackground:m.Il.fromHex("#063B49"),inputValidationWarningBorder:m.Il.fromHex("#B89500"),inputValidationWarningBackground:m.Il.fromHex("#352A05"),inputValidationErrorBorder:m.Il.fromHex("#BE1100"),inputValidationErrorBackground:m.Il.fromHex("#5A1D1D")},L=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,r,a){var s,u;(0,i.Z)(this,n),(s=t.call(this)).state="idle",s.maxHeight=Number.POSITIVE_INFINITY,s._onDidChange=s._register(new g.Q5),s.onDidChange=s._onDidChange.event,s._onDidHeightChange=s._register(new g.Q5),s.onDidHeightChange=s._onDidHeightChange.event,s.contextViewProvider=r,s.options=a||Object.create(null),(0,_.jB)(s.options,x,!1),s.message=null,s.placeholder=s.options.placeholder||"",s.tooltip=null!==(u=s.options.tooltip)&&void 0!==u?u:s.placeholder||"",s.ariaLabel=s.options.ariaLabel||"",s.inputBackground=s.options.inputBackground,s.inputForeground=s.options.inputForeground,s.inputBorder=s.options.inputBorder,s.inputValidationInfoBorder=s.options.inputValidationInfoBorder,s.inputValidationInfoBackground=s.options.inputValidationInfoBackground,s.inputValidationInfoForeground=s.options.inputValidationInfoForeground,s.inputValidationWarningBorder=s.options.inputValidationWarningBorder,s.inputValidationWarningBackground=s.options.inputValidationWarningBackground,s.inputValidationWarningForeground=s.options.inputValidationWarningForeground,s.inputValidationErrorBorder=s.options.inputValidationErrorBorder,s.inputValidationErrorBackground=s.options.inputValidationErrorBackground,s.inputValidationErrorForeground=s.options.inputValidationErrorForeground,s.options.validationOptions&&(s.validation=s.options.validationOptions.validation),s.element=d.append(e,S(".monaco-inputbox.idle"));var l=s.options.flexibleHeight?"textarea":"input",c=d.append(s.element,S(".ibwrapper"));if(s.input=d.append(c,S(l+".input.empty")),s.input.setAttribute("autocorrect","off"),s.input.setAttribute("autocapitalize","off"),s.input.setAttribute("spellcheck","false"),s.onfocus(s.input,(function(){return s.element.classList.add("synthetic-focus")})),s.onblur(s.input,(function(){return s.element.classList.remove("synthetic-focus")})),s.options.flexibleHeight){s.maxHeight="number"===typeof s.options.flexibleMaxHeight?s.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,s.mirror=d.append(c,S("div.mirror")),s.mirror.innerText="\xa0",s.scrollableElement=new C.NB(s.element,{vertical:1}),s.options.flexibleWidth&&(s.input.setAttribute("wrap","off"),s.mirror.style.whiteSpace="pre",s.mirror.style.wordWrap="initial"),d.append(e,s.scrollableElement.getDomNode()),s._register(s.scrollableElement),s._register(s.scrollableElement.onScroll((function(e){return s.input.scrollTop=e.scrollTop})));var h=g.ju.filter((0,k.jt)(document,"selectionchange"),(function(){var e=document.getSelection();return(null===e||void 0===e?void 0:e.anchorNode)===c}));s._register(h(s.updateScrollDimensions,(0,o.Z)(s))),s._register(s.onDidHeightChange(s.updateScrollDimensions,(0,o.Z)(s)))}else s.input.type=s.options.type||"text",s.input.setAttribute("wrap","off");return s.ariaLabel&&s.input.setAttribute("aria-label",s.ariaLabel),s.placeholder&&s.setPlaceHolder(s.placeholder),s.tooltip&&s.setTooltip(s.tooltip),s.oninput(s.input,(function(){return s.onValueChange()})),s.onblur(s.input,(function(){return s.onBlur()})),s.onfocus(s.input,(function(){return s.onFocus()})),s.ignoreGesture(s.input),setTimeout((function(){return s.updateMirror()}),0),s.options.actions&&(s.actionbar=s._register(new p.o(s.element)),s.actionbar.push(s.options.actions,{icon:!0,label:!1})),s.applyStyles(),s}return(0,r.Z)(n,[{key:"onBlur",value:function(){this._hideMessage()}},{key:"onFocus",value:function(){this._showMessage()}},{key:"setPlaceHolder",value:function(e){this.placeholder=e,this.input.setAttribute("placeholder",e)}},{key:"setTooltip",value:function(e){this.tooltip=e,this.input.title=e}},{key:"setAriaLabel",value:function(e){this.ariaLabel=e,e?this.input.setAttribute("aria-label",this.ariaLabel):this.input.removeAttribute("aria-label")}},{key:"getAriaLabel",value:function(){return this.ariaLabel}},{key:"inputElement",get:function(){return this.input}},{key:"value",get:function(){return this.input.value},set:function(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}},{key:"height",get:function(){return"number"===typeof this.cachedHeight?this.cachedHeight:d.getTotalHeight(this.element)}},{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"hasFocus",value:function(){return document.activeElement===this.input}},{key:"select",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.input.select(),e&&(this.input.setSelectionRange(e.start,e.end),e.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}},{key:"isSelectionAtEnd",value:function(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}},{key:"enable",value:function(){this.input.removeAttribute("disabled")}},{key:"disable",value:function(){this.blur(),this.input.disabled=!0,this._hideMessage()}},{key:"width",get:function(){return d.getTotalWidth(this.input)},set:function(e){if(this.options.flexibleHeight&&this.options.flexibleWidth){var t=0;if(this.mirror)t=(parseFloat(this.mirror.style.paddingLeft||"")||0)+(parseFloat(this.mirror.style.paddingRight||"")||0);this.input.style.width=e-t+"px"}else this.input.style.width=e+"px";this.mirror&&(this.mirror.style.width=e+"px")}},{key:"paddingRight",set:function(e){this.options.flexibleHeight&&this.options.flexibleWidth?this.input.style.width="calc(100% - ".concat(e,"px)"):this.input.style.paddingRight=e+"px",this.mirror&&(this.mirror.style.paddingRight=e+"px")}},{key:"updateScrollDimensions",value:function(){if("number"===typeof this.cachedContentHeight&&"number"===typeof this.cachedHeight&&this.scrollableElement){var e=this.cachedContentHeight,t=this.cachedHeight,n=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:n})}}},{key:"showMessage",value:function(e,t){this.message=e,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(e.type));var n=this.stylesForType(this.message.type);this.element.style.border=n.border?"1px solid ".concat(n.border):"",(this.hasFocus()||t)&&this._showMessage()}},{key:"hideMessage",value:function(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}},{key:"validate",value:function(){var e=null;return this.validation&&((e=this.validation(this.value))?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(e)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),null===e||void 0===e?void 0:e.type}},{key:"stylesForType",value:function(e){switch(e){case 1:return{border:this.inputValidationInfoBorder,background:this.inputValidationInfoBackground,foreground:this.inputValidationInfoForeground};case 2:return{border:this.inputValidationWarningBorder,background:this.inputValidationWarningBackground,foreground:this.inputValidationWarningForeground};default:return{border:this.inputValidationErrorBorder,background:this.inputValidationErrorBackground,foreground:this.inputValidationErrorForeground}}}},{key:"classForType",value:function(e){switch(e){case 1:return"info";case 2:return"warning";default:return"error"}}},{key:"_showMessage",value:function(){var e=this;if(this.contextViewProvider&&this.message){var t,n,i=function(){return t.style.width=d.getTotalWidth(e.element)+"px"};this.contextViewProvider.showContextView({getAnchor:function(){return e.element},anchorAlignment:1,render:function(n){if(!e.message)return null;t=d.append(n,S(".monaco-inputbox-container")),i();var r={inline:!0,className:"monaco-inputbox-message"},o=e.message.formatContent?(0,h.BO)(e.message.content,r):(0,h.IY)(e.message.content,r);o.classList.add(e.classForType(e.message.type));var a=e.stylesForType(e.message.type);return o.style.backgroundColor=a.background?a.background.toString():"",o.style.color=a.foreground?a.foreground.toString():"",o.style.border=a.border?"1px solid ".concat(a.border):"",d.append(t,o),null},onHide:function(){e.state="closed"},layout:i}),n=3===this.message.type?c.N("alertErrorMessage","Error: {0}",this.message.content):2===this.message.type?c.N("alertWarningMessage","Warning: {0}",this.message.content):c.N("alertInfoMessage","Info: {0}",this.message.content),f.Z9(n),this.state="open"}}},{key:"_hideMessage",value:function(){this.contextViewProvider&&("open"===this.state&&this.contextViewProvider.hideContextView(),this.state="idle")}},{key:"onValueChange",value:function(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),"open"===this.state&&this.contextViewProvider&&this.contextViewProvider.layout()}},{key:"updateMirror",value:function(){if(this.mirror){var e=this.value,t=10===e.charCodeAt(e.length-1)?" ":"";e+t?this.mirror.textContent=e+t:this.mirror.innerText="\xa0",this.layout()}}},{key:"style",value:function(e){this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}},{key:"applyStyles",value:function(){var e=this.inputBackground?this.inputBackground.toString():"",t=this.inputForeground?this.inputForeground.toString():"",n=this.inputBorder?this.inputBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.input.style.backgroundColor="inherit",this.input.style.color=t,this.element.style.borderWidth=n?"1px":"",this.element.style.borderStyle=n?"solid":"",this.element.style.borderColor=n}},{key:"layout",value:function(){if(this.mirror){var e=this.cachedContentHeight;this.cachedContentHeight=d.getTotalHeight(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}}},{key:"insertAtCursor",value:function(e){var t=this.inputElement,n=t.selectionStart,i=t.selectionEnd,r=t.value;null!==n&&null!==i&&(this.value=r.substr(0,n)+e+r.substr(i),t.setSelectionRange(n+1,n+1),this.layout())}},{key:"dispose",value:function(){this._hideMessage(),this.message=null,this.actionbar&&this.actionbar.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(v.$),E=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,e,r,o)).history=new w(o.history,100),a}return(0,r.Z)(n,[{key:"addToHistory",value:function(){this.value&&this.value!==this.getCurrentValue()&&this.history.add(this.value)}},{key:"showNextValue",value:function(){this.history.has(this.value)||this.addToHistory();var e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),e&&(this.value=e,f.i7(this.value))}},{key:"showPreviousValue",value:function(){this.history.has(this.value)||this.addToHistory();var e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,f.i7(this.value))}},{key:"getCurrentValue",value:function(){var e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}},{key:"getPreviousValue",value:function(){return this.history.previous()||this.history.first()}},{key:"getNextValue",value:function(){return this.history.next()||this.history.last()}}]),n}(L)},6709:function(e,t,n){"use strict";n.d(t,{kX:function(){return N},Bv:function(){return O}});var i=n(37762),r=n(93433),o=n(15671),a=n(43144),s=n(10405),u=n(81626),l=n(25044),c=n(11732),d=n(61680),h=n(61727),f=n(58604),p=n(81629);function g(e,t){var n,r=[],o=(0,i.Z)(t);try{for(o.s();!(n=o.n()).done;){var a=n.value;if(!(e.start>=a.range.end)){if(e.end<a.range.start)break;var s=p.e.intersect(e,a.range);p.e.isEmpty(s)||r.push({range:s,size:a.size})}}}catch(u){o.e(u)}finally{o.f()}return r}function v(e,t){return{start:e.start+t,end:e.end+t}}function m(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){var t,n=[],r=null,o=(0,i.Z)(e);try{for(o.s();!(t=o.n()).done;){var a=t.value,s=a.range.start,u=a.range.end,l=a.size;r&&l===r.size?r.range.end=u:(r={range:{start:s,end:u},size:l},n.push(r))}}catch(c){o.e(c)}finally{o.f()}return n}(t.reduce((function(e,t){return e.concat(t)}),[]))}var _=function(){function e(){(0,o.Z)(this,e),this.groups=[],this._size=0}return(0,a.Z)(e,[{key:"splice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=n.length-t,r=g({start:0,end:e},this.groups),o=g({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map((function(e){return{range:v(e.range,i),size:e.size}})),a=n.map((function(t,n){return{range:{start:e+n,end:e+n+1},size:t.size}}));this.groups=m(r,a,o),this._size=this.groups.reduce((function(e,t){return e+t.size*(t.range.end-t.range.start)}),0)}},{key:"count",get:function(){var e=this.groups.length;return e?this.groups[e-1].range.end:0}},{key:"size",get:function(){return this._size}},{key:"indexAt",value:function(e){if(e<0)return-1;var t,n=0,r=0,o=(0,i.Z)(this.groups);try{for(o.s();!(t=o.n()).done;){var a=t.value,s=a.range.end-a.range.start,u=r+s*a.size;if(e<u)return n+Math.floor((e-r)/a.size);n+=s,r=u}}catch(l){o.e(l)}finally{o.f()}return n}},{key:"indexAfter",value:function(e){return Math.min(this.indexAt(e)+1,this.count)}},{key:"positionAt",value:function(e){if(e<0)return-1;var t,n=0,r=0,o=(0,i.Z)(this.groups);try{for(o.s();!(t=o.n()).done;){var a=t.value,s=a.range.end-a.range.start,u=r+s;if(e<u)return n+(e-r)*a.size;n+=s*a.size,r=u}}catch(l){o.e(l)}finally{o.f()}return-1}}]),e}(),y=n(84540);var b=function(){function e(t){(0,o.Z)(this,e),this.renderers=t,this.cache=new Map}return(0,a.Z)(e,[{key:"alloc",value:function(e){var t=this.getTemplateCache(e).pop();if(!t){var n=(0,y.$)(".monaco-list-row");t={domNode:n,templateId:e,templateData:this.getRenderer(e).renderTemplate(n)}}return t}},{key:"release",value:function(e){e&&this.releaseRow(e)}},{key:"releaseRow",value:function(e){var t=e.domNode,n=e.templateId;t&&(t.classList.remove("scrolling"),function(e){try{e.parentElement&&e.parentElement.removeChild(e)}catch(t){}}(t)),this.getTemplateCache(n).push(e)}},{key:"getTemplateCache",value:function(e){var t=this.cache.get(e);return t||(t=[],this.cache.set(e,t)),t}},{key:"dispose",value:function(){var e=this;this.cache.forEach((function(t,n){var r,o=(0,i.Z)(t);try{for(o.s();!(r=o.n()).done;){var a=r.value;e.getRenderer(n).disposeTemplate(a.templateData),a.templateData=null}}catch(s){o.e(s)}finally{o.f()}})),this.cache.clear()}},{key:"getRenderer",value:function(e){var t=this.renderers.get(e);if(!t)throw new Error("No renderer found for ".concat(e));return t}}]),e}(),w=n(94995),C=n(49396),k=n(53042),S=n(27997),x=n(84539),L=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},E={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements:function(e){return[e]},getDragURI:function(){return null},onDragStart:function(){},onDragOver:function(){return!1},drop:function(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0},N=function(){function e(t){(0,o.Z)(this,e),this.elements=t}return(0,a.Z)(e,[{key:"update",value:function(){}},{key:"getData",value:function(){return this.elements}}]),e}(),D=function(){function e(t){(0,o.Z)(this,e),this.elements=t}return(0,a.Z)(e,[{key:"update",value:function(){}},{key:"getData",value:function(){return this.elements}}]),e}(),M=function(){function e(){(0,o.Z)(this,e),this.types=[],this.files=[]}return(0,a.Z)(e,[{key:"update",value:function(e){var t;e.types&&(t=this.types).splice.apply(t,[0,this.types.length].concat((0,r.Z)(e.types)));if(e.files){this.files.splice(0,this.files.length);for(var n=0;n<e.files.length;n++){var i=e.files.item(n);i&&(i.size||i.type)&&this.files.push(i)}}}},{key:"getData",value:function(){return{types:this.types,files:this.files}}}]),e}();var T=(0,a.Z)((function e(t){(0,o.Z)(this,e),(null===t||void 0===t?void 0:t.getSetSize)?this.getSetSize=t.getSetSize.bind(t):this.getSetSize=function(e,t,n){return n},(null===t||void 0===t?void 0:t.getPosInSet)?this.getPosInSet=t.getPosInSet.bind(t):this.getPosInSet=function(e,t){return t+1},(null===t||void 0===t?void 0:t.getRole)?this.getRole=t.getRole.bind(t):this.getRole=function(e){return"listitem"},(null===t||void 0===t?void 0:t.isChecked)?this.isChecked=t.isChecked.bind(t):this.isChecked=function(e){}})),O=function(){function e(t,n,r){var a=this,p=arguments.length>3&&void 0!==arguments[3]?arguments[3]:E;if((0,o.Z)(this,e),this.virtualDelegate=n,this.domId="list_id_".concat(++e.InstanceCount),this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new S.vp(50),this.splicing=!1,this.dragOverAnimationStopDisposable=u.JT.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=u.JT.None,this.onDragLeaveTimeout=u.JT.None,this.disposables=new u.SL,this._onDidChangeContentHeight=new c.Q5,this._horizontalScrolling=!1,p.horizontalScrolling&&p.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=new _;var g,v=(0,i.Z)(r);try{for(v.s();!(g=v.n()).done;){var m=g.value;this.renderers.set(m.templateId,m)}}catch(w){v.e(w)}finally{v.f()}this.cache=this.disposables.add(new b(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support","boolean"!==typeof p.mouseSupport||p.mouseSupport),this._horizontalScrolling=(0,s.CJ)(p,(function(e){return e.horizontalScrolling}),E.horizontalScrolling),this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.additionalScrollHeight="undefined"===typeof p.additionalScrollHeight?0:p.additionalScrollHeight,this.accessibilityProvider=new T(p.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",(0,s.CJ)(p,(function(e){return e.transformOptimization}),E.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)"),this.disposables.add(l.o.addTarget(this.rowsContainer)),this.scrollable=new f.Rm((0,s.CJ)(p,(function(e){return e.smoothScrolling}),!1)?125:0,(function(e){return(0,y.scheduleAtNextAnimationFrame)(e)})),this.scrollableElement=this.disposables.add(new h.$Z(this.rowsContainer,{alwaysConsumeMouseWheel:(0,s.CJ)(p,(function(e){return e.alwaysConsumeMouseWheel}),E.alwaysConsumeMouseWheel),horizontal:1,vertical:(0,s.CJ)(p,(function(e){return e.verticalScrollMode}),E.verticalScrollMode),useShadows:(0,s.CJ)(p,(function(e){return e.useShadows}),E.useShadows)},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),t.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),(0,d.jt)(this.rowsContainer,l.t.Change)((function(e){return a.onTouchChange(e)}),this,this.disposables),(0,d.jt)(this.scrollableElement.getDomNode(),"scroll")((function(e){return e.target.scrollTop=0}),null,this.disposables),c.ju.map((0,d.jt)(this.domNode,"dragover"),(function(e){return a.toDragEvent(e)}))(this.onDragOver,this,this.disposables),c.ju.map((0,d.jt)(this.domNode,"drop"),(function(e){return a.toDragEvent(e)}))(this.onDrop,this,this.disposables),(0,d.jt)(this.domNode,"dragleave")(this.onDragLeave,this,this.disposables),(0,d.jt)(window,"dragend")(this.onDragEnd,this,this.disposables),this.setRowLineHeight=(0,s.CJ)(p,(function(e){return e.setRowLineHeight}),E.setRowLineHeight),this.setRowHeight=(0,s.CJ)(p,(function(e){return e.setRowHeight}),E.setRowHeight),this.supportDynamicHeights=(0,s.CJ)(p,(function(e){return e.supportDynamicHeights}),E.supportDynamicHeights),this.dnd=(0,s.CJ)(p,(function(e){return e.dnd}),E.dnd),this.layout()}return(0,a.Z)(e,[{key:"contentHeight",get:function(){return this.rangeMap.size}},{key:"horizontalScrolling",get:function(){return this._horizontalScrolling},set:function(e){if(e!==this._horizontalScrolling){if(e&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=e,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){var t,n=(0,i.Z)(this.items);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.measureItemWidth(r)}}catch(o){n.e(o)}finally{n.f()}this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:(0,y.getContentWidth)(this.domNode)}),this.rowsContainer.style.width="".concat(Math.max(this.scrollWidth||0,this.renderWidth),"px")}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}},{key:"updateOptions",value:function(e){void 0!==e.additionalScrollHeight&&(this.additionalScrollHeight=e.additionalScrollHeight,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),void 0!==e.smoothScrolling&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),void 0!==e.horizontalScrolling&&(this.horizontalScrolling=e.horizontalScrolling)}},{key:"splice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(e,t,n)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}},{key:"_splice",value:function(e,t){for(var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),s={start:e,end:e+t},l=p.e.intersect(a,s),c=new Map,d=l.start;d<l.end;d++){var h=this.items[d];if(h.dragStartDisposable.dispose(),h.row){var f=c.get(h.templateId);f||(f=[],c.set(h.templateId,f));var g=this.renderers.get(h.templateId);g&&g.disposeElement&&g.disposeElement(h.element,d,h.row.templateData,h.size),f.push(h.row)}h.row=null}var m,y,b={start:e+t,end:this.items.length},w=p.e.intersect(b,a),C=p.e.relativeComplement(b,a),k=o.map((function(e){return{id:String(n.itemId++),element:e,templateId:n.virtualDelegate.getTemplateId(e),size:n.virtualDelegate.getHeight(e),width:void 0,hasDynamicHeight:!!n.virtualDelegate.hasDynamicHeight&&n.virtualDelegate.hasDynamicHeight(e),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:u.JT.None}}));0===e&&t>=this.items.length?(this.rangeMap=new _,this.rangeMap.splice(0,0,k),m=this.items,this.items=k):(this.rangeMap.splice(e,t,k),m=(y=this.items).splice.apply(y,[e,t].concat((0,r.Z)(k))));for(var S=o.length-t,x=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),L=v(w,S),E=p.e.intersect(x,L),N=E.start;N<E.end;N++)this.updateItemInDOM(this.items[N],N);var D,M=p.e.relativeComplement(L,x),T=(0,i.Z)(M);try{for(T.s();!(D=T.n()).done;)for(var O=D.value,I=O.start;I<O.end;I++)this.removeItemFromDOM(I)}catch($){T.e($)}finally{T.f()}var A,R=C.map((function(e){return v(e,S)})),P=[{start:e,end:e+o.length}].concat((0,r.Z)(R)).map((function(e){return p.e.intersect(x,e)})),Z=this.getNextToLastElement(P),F=(0,i.Z)(P);try{for(F.s();!(A=F.n()).done;)for(var j=A.value,H=j.start;H<j.end;H++){var B=this.items[H],z=c.get(B.templateId),W=null===z||void 0===z?void 0:z.pop();this.insertItemInDOM(H,Z,W)}}catch($){F.e($)}finally{F.f()}var V,Y=(0,i.Z)(c.values());try{for(Y.s();!(V=Y.n()).done;){var U,K=V.value,q=(0,i.Z)(K);try{for(q.s();!(U=q.n()).done;){var G=U.value;this.cache.release(G)}}catch($){q.e($)}finally{q.f()}}}catch($){Y.e($)}finally{Y.f()}return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),m.map((function(e){return e.element}))}},{key:"eventuallyUpdateScrollDimensions",value:function(){var e=this;this._scrollHeight=this.contentHeight,this.rowsContainer.style.height="".concat(this._scrollHeight,"px"),this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=(0,y.scheduleAtNextAnimationFrame)((function(){e.scrollableElement.setScrollDimensions({scrollHeight:e.scrollHeight}),e.updateScrollWidth(),e.scrollableElementUpdateDisposable=null})))}},{key:"eventuallyUpdateScrollWidth",value:function(){var e=this;this.horizontalScrolling?this.scrollableElementWidthDelayer.trigger((function(){return e.updateScrollWidth()})):this.scrollableElementWidthDelayer.cancel()}},{key:"updateScrollWidth",value:function(){if(this.horizontalScrolling){var e,t=0,n=(0,i.Z)(this.items);try{for(n.s();!(e=n.n()).done;){var r=e.value;"undefined"!==typeof r.width&&(t=Math.max(t,r.width))}}catch(o){n.e(o)}finally{n.f()}this.scrollWidth=t,this.scrollableElement.setScrollDimensions({scrollWidth:0===t?0:t+10})}}},{key:"rerender",value:function(){if(this.supportDynamicHeights){var e,t=(0,i.Z)(this.items);try{for(t.s();!(e=t.n()).done;){e.value.lastDynamicHeightWidth=void 0}}catch(n){t.e(n)}finally{t.f()}this._rerender(this.lastRenderTop,this.lastRenderHeight)}}},{key:"length",get:function(){return this.items.length}},{key:"renderHeight",get:function(){return this.scrollableElement.getScrollDimensions().height}},{key:"element",value:function(e){return this.items[e].element}},{key:"domElement",value:function(e){var t=this.items[e].row;return t&&t.domNode}},{key:"elementHeight",value:function(e){return this.items[e].size}},{key:"elementTop",value:function(e){return this.rangeMap.positionAt(e)}},{key:"indexAt",value:function(e){return this.rangeMap.indexAt(e)}},{key:"indexAfter",value:function(e){return this.rangeMap.indexAfter(e)}},{key:"layout",value:function(e,t){var n={height:"number"===typeof e?e:(0,y.getContentHeight)(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,n.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(n),"undefined"!==typeof t&&(this.renderWidth=t,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:"number"===typeof t?t:(0,y.getContentWidth)(this.domNode)})}},{key:"render",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5],s=this.getRenderRange(t,n),u=p.e.relativeComplement(s,e),l=p.e.relativeComplement(e,s),c=this.getNextToLastElement(u);if(a)for(var d=p.e.intersect(e,s),h=d.start;h<d.end;h++)this.updateItemInDOM(this.items[h],h);var f,g=(0,i.Z)(u);try{for(g.s();!(f=g.n()).done;)for(var v=f.value,m=v.start;m<v.end;m++)this.insertItemInDOM(m,c)}catch(C){g.e(C)}finally{g.f()}var _,y=(0,i.Z)(l);try{for(y.s();!(_=y.n()).done;)for(var b=_.value,w=b.start;w<b.end;w++)this.removeItemFromDOM(w)}catch(C){y.e(C)}finally{y.f()}void 0!==r&&(this.rowsContainer.style.left="-".concat(r,"px")),this.rowsContainer.style.top="-".concat(t,"px"),this.horizontalScrolling&&void 0!==o&&(this.rowsContainer.style.width="".concat(Math.max(o,this.renderWidth),"px")),this.lastRenderTop=t,this.lastRenderHeight=n}},{key:"insertItemInDOM",value:function(e,t,n){var i=this,r=this.items[e];r.row||(r.row=null!==n&&void 0!==n?n:this.cache.alloc(r.templateId));var o=this.accessibilityProvider.getRole(r.element)||"listitem";r.row.domNode.setAttribute("role",o);var a=this.accessibilityProvider.isChecked(r.element);"undefined"!==typeof a&&r.row.domNode.setAttribute("aria-checked",String(!!a)),r.row.domNode.parentElement||(t?this.rowsContainer.insertBefore(r.row.domNode,t):this.rowsContainer.appendChild(r.row.domNode)),this.updateItemInDOM(r,e);var s=this.renderers.get(r.templateId);if(!s)throw new Error("No renderer found for template id ".concat(r.templateId));s&&s.renderElement(r.element,e,r.row.templateData,r.size);var u=this.dnd.getDragURI(r.element);if(r.dragStartDisposable.dispose(),r.row.domNode.draggable=!!u,u){var l=(0,d.jt)(r.row.domNode,"dragstart");r.dragStartDisposable=l((function(e){return i.onDragStart(r.element,u,e)}))}this.horizontalScrolling&&(this.measureItemWidth(r),this.eventuallyUpdateScrollWidth())}},{key:"measureItemWidth",value:function(e){if(e.row&&e.row.domNode){e.row.domNode.style.width=x.vU?"-moz-fit-content":"fit-content",e.width=(0,y.getContentWidth)(e.row.domNode);var t=window.getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=""}}},{key:"updateItemInDOM",value:function(e,t){e.row.domNode.style.top="".concat(this.elementTop(t),"px"),this.setRowHeight&&(e.row.domNode.style.height="".concat(e.size,"px")),this.setRowLineHeight&&(e.row.domNode.style.lineHeight="".concat(e.size,"px")),e.row.domNode.setAttribute("data-index","".concat(t)),e.row.domNode.setAttribute("data-last-element",t===this.length-1?"true":"false"),e.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute("id",this.getElementDomId(t)),e.row.domNode.classList.toggle("drop-target",e.dropTarget)}},{key:"removeItemFromDOM",value:function(e){var t=this.items[e];if(t.dragStartDisposable.dispose(),t.row){var n=this.renderers.get(t.templateId);n&&n.disposeElement&&n.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}},{key:"getScrollTop",value:function(){return this.scrollableElement.getScrollPosition().scrollTop}},{key:"setScrollTop",value:function(e,t){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e,reuseAnimation:t})}},{key:"scrollTop",get:function(){return this.getScrollTop()},set:function(e){this.setScrollTop(e)}},{key:"scrollHeight",get:function(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.additionalScrollHeight}},{key:"onMouseClick",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"click"),(function(t){return e.toMouseEvent(t)}))}},{key:"onMouseDblClick",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"dblclick"),(function(t){return e.toMouseEvent(t)}))}},{key:"onMouseMiddleClick",get:function(){var e=this;return c.ju.filter(c.ju.map((0,d.jt)(this.domNode,"auxclick"),(function(t){return e.toMouseEvent(t)})),(function(e){return 1===e.browserEvent.button}))}},{key:"onMouseDown",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"mousedown"),(function(t){return e.toMouseEvent(t)}))}},{key:"onContextMenu",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"contextmenu"),(function(t){return e.toMouseEvent(t)}))}},{key:"onTouchStart",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"touchstart"),(function(t){return e.toTouchEvent(t)}))}},{key:"onTap",get:function(){var e=this;return c.ju.map((0,d.jt)(this.rowsContainer,l.t.Tap),(function(t){return e.toGestureEvent(t)}))}},{key:"toMouseEvent",value:function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}}},{key:"toTouchEvent",value:function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}}},{key:"toGestureEvent",value:function(e){var t=this.getItemIndexFromEventTarget(e.initialTarget||null),n="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}}},{key:"toDragEvent",value:function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}}},{key:"onScroll",value:function(e){try{var t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height,e.inSmoothScrolling)}catch(n){throw console.error("Got bad scroll event:",e),n}}},{key:"onTouchChange",value:function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}},{key:"onDragStart",value:function(e,t,n){if(n.dataTransfer){var i=this.dnd.getDragElements(e);if(n.dataTransfer.effectAllowed="copyMove",n.dataTransfer.setData(k.go.RESOURCES,JSON.stringify([t])),n.dataTransfer.setDragImage){var r;this.dnd.getDragLabel&&(r=this.dnd.getDragLabel(i,n)),"undefined"===typeof r&&(r=String(i.length));var o=(0,y.$)(".monaco-drag-image");o.textContent=r,document.body.appendChild(o),n.dataTransfer.setDragImage(o,-10,-10),setTimeout((function(){return document.body.removeChild(o)}),0)}this.currentDragData=new N(i),k.P$.CurrentDragAndDropData=new D(i),this.dnd.onDragStart&&this.dnd.onDragStart(this.currentDragData,n)}}},{key:"onDragOver",value:function(e){var t=this;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),k.P$.CurrentDragAndDropData&&"vscode-ui"===k.P$.CurrentDragAndDropData.getData())return!1;if(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer)return!1;if(!this.currentDragData)if(k.P$.CurrentDragAndDropData)this.currentDragData=k.P$.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new M}var n,r,o,a=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.browserEvent);if(this.canDrop="boolean"===typeof a?a:a.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;if(e.browserEvent.dataTransfer.dropEffect="boolean"!==typeof a&&0===a.effect?"copy":"move",n="boolean"!==typeof a&&a.feedback?a.feedback:"undefined"===typeof e.index?[-1]:[e.index],n=-1===(n=(0,C.EB)(n).filter((function(e){return e>=-1&&e<t.length})).sort((function(e,t){return e-t})))[0]?[-1]:n,r=this.currentDragFeedback,o=n,Array.isArray(r)&&Array.isArray(o)?(0,C.fS)(r,o):r===o)return!0;if(this.currentDragFeedback=n,this.currentDragFeedbackDisposable.dispose(),-1===n[0])this.domNode.classList.add("drop-target"),this.rowsContainer.classList.add("drop-target"),this.currentDragFeedbackDisposable=(0,u.OF)((function(){t.domNode.classList.remove("drop-target"),t.rowsContainer.classList.remove("drop-target")}));else{var s,l=(0,i.Z)(n);try{for(l.s();!(s=l.n()).done;){var c=s.value,d=this.items[c];d.dropTarget=!0,d.row&&d.row.domNode.classList.add("drop-target")}}catch(h){l.e(h)}finally{l.f()}this.currentDragFeedbackDisposable=(0,u.OF)((function(){var e,r=(0,i.Z)(n);try{for(r.s();!(e=r.n()).done;){var o=e.value,a=t.items[o];a.dropTarget=!1,a.row&&a.row.domNode.classList.remove("drop-target")}}catch(h){r.e(h)}finally{r.f()}}))}return!0}},{key:"onDragLeave",value:function(){var e=this;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=(0,S.Vg)((function(){return e.clearDragOverFeedback()}),100)}},{key:"onDrop",value:function(e){if(this.canDrop){var t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,k.P$.CurrentDragAndDropData=void 0,t&&e.browserEvent.dataTransfer&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.browserEvent))}}},{key:"onDragEnd",value:function(e){this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,k.P$.CurrentDragAndDropData=void 0,this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}},{key:"clearDragOverFeedback",value:function(){this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=u.JT.None}},{key:"setupDragAndDropScrollTopAnimation",value:function(e){var t=this;if(!this.dragOverAnimationDisposable){var n=(0,y.getTopLeftOffset)(this.domNode).top;this.dragOverAnimationDisposable=(0,y.animate)(this.animateDragAndDropScrollTop.bind(this,n))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=(0,S.Vg)((function(){t.dragOverAnimationDisposable&&(t.dragOverAnimationDisposable.dispose(),t.dragOverAnimationDisposable=void 0)}),1e3),this.dragOverMouseY=e.pageY}},{key:"animateDragAndDropScrollTop",value:function(e){if(void 0!==this.dragOverMouseY){var t=this.dragOverMouseY-e,n=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>n&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-n))))}}},{key:"teardownDragAndDropScrollTopAnimation",value:function(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}},{key:"getItemIndexFromEventTarget",value:function(e){for(var t=this.scrollableElement.getDomNode(),n=e;n instanceof HTMLElement&&n!==this.rowsContainer&&t.contains(n);){var i=n.getAttribute("data-index");if(i){var r=Number(i);if(!isNaN(r))return r}n=n.parentElement}}},{key:"getRenderRange",value:function(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}},{key:"_rerender",value:function(e,t,n){var r,o,a=this.getRenderRange(e,t);e===this.elementTop(a.start)?(r=a.start,o=0):a.end-a.start>1&&(r=a.start+1,o=this.elementTop(r)-e);for(var s=0;;){for(var u=this.getRenderRange(e,t),l=!1,c=u.start;c<u.end;c++){var d=this.probeDynamicHeight(c);0!==d&&this.rangeMap.splice(c,1,[this.items[c]]),s+=d,l=l||0!==d}if(!l){0!==s&&this.eventuallyUpdateScrollDimensions();var h,f=p.e.relativeComplement(a,u),g=(0,i.Z)(f);try{for(g.s();!(h=g.n()).done;)for(var v=h.value,m=v.start;m<v.end;m++)this.items[m].row&&this.removeItemFromDOM(m)}catch(D){g.e(D)}finally{g.f()}var _,y=p.e.relativeComplement(u,a),b=(0,i.Z)(y);try{for(b.s();!(_=b.n()).done;)for(var w=_.value,C=w.start;C<w.end;C++){var k=C+1,S=k<this.items.length?this.items[k].row:null,x=S?S.domNode:null;this.insertItemInDOM(C,x)}}catch(D){b.e(D)}finally{b.f()}for(var L=u.start;L<u.end;L++)this.items[L].row&&this.updateItemInDOM(this.items[L],L);if("number"===typeof r){var E=this.scrollable.getFutureScrollPosition().scrollTop-e,N=this.elementTop(r)-o+E;this.setScrollTop(N,n)}return void this._onDidChangeContentHeight.fire(this.contentHeight)}}}},{key:"probeDynamicHeight",value:function(e){var t=this.items[e];if(!t.hasDynamicHeight||t.lastDynamicHeightWidth===this.renderWidth)return 0;if(this.virtualDelegate.hasDynamicHeight&&!this.virtualDelegate.hasDynamicHeight(t.element))return 0;var n=t.size;if(!this.setRowHeight&&t.row){var i=t.row.domNode.offsetHeight;return t.size=i,t.lastDynamicHeightWidth=this.renderWidth,i-n}var r=this.cache.alloc(t.templateId);r.domNode.style.height="",this.rowsContainer.appendChild(r.domNode);var o=this.renderers.get(t.templateId);return o&&(o.renderElement(t.element,e,r.templateData,void 0),o.disposeElement&&o.disposeElement(t.element,e,r.templateData,void 0)),t.size=r.domNode.offsetHeight,this.virtualDelegate.setDynamicHeight&&this.virtualDelegate.setDynamicHeight(t.element,t.size),t.lastDynamicHeightWidth=this.renderWidth,this.rowsContainer.removeChild(r.domNode),this.cache.release(r),t.size-n}},{key:"getNextToLastElement",value:function(e){var t=e[e.length-1];if(!t)return null;var n=this.items[t.end];return n&&n.row?n.row.domNode:null}},{key:"getElementDomId",value:function(e){return"".concat(this.domId,"_").concat(e)}},{key:"dispose",value:function(){if(this.items){var e,t=(0,i.Z)(this.items);try{for(t.s();!(e=t.n()).done;){var n=e.value;if(n.row){var r=this.renderers.get(n.row.templateId);r&&(r.disposeElement&&r.disposeElement(n.element,-1,n.row.templateData,void 0),r.disposeTemplate(n.row.templateData))}}}catch(o){t.e(o)}finally{t.f()}this.items=[]}this.domNode&&this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),(0,u.B9)(this.disposables)}}]),e}();O.InstanceCount=0,L([w.H],O.prototype,"onMouseClick",null),L([w.H],O.prototype,"onMouseDblClick",null),L([w.H],O.prototype,"onMouseMiddleClick",null),L([w.H],O.prototype,"onMouseDown",null),L([w.H],O.prototype,"onContextMenu",null),L([w.H],O.prototype,"onTouchStart",null),L([w.H],O.prototype,"onTap",null)},92814:function(e,t,n){"use strict";n.d(t,{WK:function(){return z},wD:function(){return G},aV:function(){return ie},sx:function(){return q},cK:function(){return F},hD:function(){return j},wn:function(){return U},Zo:function(){return Y}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(93433),u=n(37762),l=n(15671),c=n(43144),d=n(87757),h=n.n(d),f=(n(43185),n(81626)),p=n(25941),g=n(49396),v=n(94995),m=n(30487),_=n(25044),y=n(31737),b=n(11732),w=n(61680),C=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){return(0,l.Z)(this,n),t.call(this,"ListError [".concat(e,"] ").concat(i))}return(0,c.Z)(n)}((0,n(28664).Z)(Error)),k=n(6709),S=n(89938),x=n(10405),L=function(){function e(t){(0,l.Z)(this,e),this.spliceables=t}return(0,c.Z)(e,[{key:"splice",value:function(e,t,n){this.spliceables.forEach((function(i){return i.splice(e,t,n)}))}}]),e}(),E=n(5265),N=n(50482),D=n(52180),M=n(84540),T=n(27997),O=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},I=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},A=function(){function e(t){(0,l.Z)(this,e),this.trait=t,this.renderedElements=[]}return(0,c.Z)(e,[{key:"templateId",get:function(){return"template:".concat(this.trait.trait)}},{key:"renderTemplate",value:function(e){return e}},{key:"renderElement",value:function(e,t,n){var i=this.renderedElements.findIndex((function(e){return e.templateData===n}));if(i>=0){var r=this.renderedElements[i];this.trait.unrender(n),r.index=t}else{var o={index:t,templateData:n};this.renderedElements.push(o)}this.trait.renderIndex(t,n)}},{key:"splice",value:function(e,t,n){var i,r=[],o=(0,u.Z)(this.renderedElements);try{for(o.s();!(i=o.n()).done;){var a=i.value;a.index<e?r.push(a):a.index>=e+t&&r.push({index:a.index+n-t,templateData:a.templateData})}}catch(s){o.e(s)}finally{o.f()}this.renderedElements=r}},{key:"renderIndexes",value:function(e){var t,n=(0,u.Z)(this.renderedElements);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=i.index,o=i.templateData;e.indexOf(r)>-1&&this.trait.renderIndex(r,o)}}catch(a){n.e(a)}finally{n.f()}}},{key:"disposeTemplate",value:function(e){var t=this.renderedElements.findIndex((function(t){return t.templateData===e}));t<0||this.renderedElements.splice(t,1)}}]),e}(),R=function(){function e(t){(0,l.Z)(this,e),this._trait=t,this.indexes=[],this.sortedIndexes=[],this._onChange=new b.Q5,this.onChange=this._onChange.event}return(0,c.Z)(e,[{key:"trait",get:function(){return this._trait}},{key:"renderer",get:function(){return new A(this)}},{key:"splice",value:function(e,t,n){var i=n.length-t,r=e+t,o=[].concat((0,s.Z)(this.sortedIndexes.filter((function(t){return t<e}))),(0,s.Z)(n.map((function(t,n){return t?n+e:-1})).filter((function(e){return-1!==e}))),(0,s.Z)(this.sortedIndexes.filter((function(e){return e>=r})).map((function(e){return e+i}))));this.renderer.splice(e,t,n.length),this._set(o,o)}},{key:"renderIndex",value:function(e,t){t.classList.toggle(this._trait,this.contains(e))}},{key:"unrender",value:function(e){e.classList.remove(this._trait)}},{key:"set",value:function(e,t){return this._set(e,(0,s.Z)(e).sort(J),t)}},{key:"_set",value:function(e,t,n){var i=this.indexes,r=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;var o=X(r,e);return this.renderer.renderIndexes(o),this._onChange.fire({indexes:e,browserEvent:n}),i}},{key:"get",value:function(){return this.indexes}},{key:"contains",value:function(e){return(0,g.ry)(this.sortedIndexes,e,J)>=0}},{key:"dispose",value:function(){(0,f.B9)(this._onChange)}}]),e}();O([v.H],R.prototype,"renderer",null);var P=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;return(0,l.Z)(this,n),(i=t.call(this,"selected")).setAriaSelected=e,i}return(0,c.Z)(n,[{key:"renderIndex",value:function(e,t){(0,i.Z)((0,r.Z)(n.prototype),"renderIndex",this).call(this,e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute("aria-selected","true"):t.setAttribute("aria-selected","false"))}}]),n}(R),Z=function(){function e(t,n,i){(0,l.Z)(this,e),this.trait=t,this.view=n,this.identityProvider=i}return(0,c.Z)(e,[{key:"splice",value:function(e,t,n){var i=this;if(!this.identityProvider)return this.trait.splice(e,t,n.map((function(){return!1})));var r=this.trait.get().map((function(e){return i.identityProvider.getId(i.view.element(e)).toString()})),o=n.map((function(e){return r.indexOf(i.identityProvider.getId(e).toString())>-1}));this.trait.splice(e,t,o)}}]),e}();function F(e){return"INPUT"===e.tagName||"TEXTAREA"===e.tagName}function j(e){return!!e.classList.contains("monaco-editor")||!e.classList.contains("monaco-list")&&(!!e.parentElement&&j(e.parentElement))}var H,B=function(){function e(t,n,i){(0,l.Z)(this,e),this.list=t,this.view=n,this.disposables=new f.SL;var r=!1!==i.multipleSelectionSupport,o=b.ju.chain((0,w.jt)(n.domNode,"keydown")).filter((function(e){return!F(e.target)})).map((function(e){return new y.y(e)}));o.filter((function(e){return 3===e.keyCode})).on(this.onEnter,this,this.disposables),o.filter((function(e){return 16===e.keyCode})).on(this.onUpArrow,this,this.disposables),o.filter((function(e){return 18===e.keyCode})).on(this.onDownArrow,this,this.disposables),o.filter((function(e){return 11===e.keyCode})).on(this.onPageUpArrow,this,this.disposables),o.filter((function(e){return 12===e.keyCode})).on(this.onPageDownArrow,this,this.disposables),o.filter((function(e){return 9===e.keyCode})).on(this.onEscape,this,this.disposables),r&&o.filter((function(e){return(m.dz?e.metaKey:e.ctrlKey)&&31===e.keyCode})).on(this.onCtrlA,this,this.disposables)}return(0,c.Z)(e,[{key:"onEnter",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}},{key:"onUpArrow",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}},{key:"onDownArrow",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}},{key:"onPageUpArrow",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}},{key:"onPageDownArrow",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}},{key:"onCtrlA",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection((0,g.w6)(this.list.length),e.browserEvent),this.view.domNode.focus()}},{key:"onEscape",value:function(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.view.domNode.focus())}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}();!function(e){e[e.Idle=0]="Idle",e[e.Typing=1]="Typing"}(H||(H={}));var z=new(function(){function e(){(0,l.Z)(this,e)}return(0,c.Z)(e,[{key:"mightProducePrintableCharacter",value:function(e){return!(e.ctrlKey||e.metaKey||e.altKey)&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30||e.keyCode>=93&&e.keyCode<=102||e.keyCode>=80&&e.keyCode<=90)}}]),e}()),W=function(){function e(t,n,i,r){(0,l.Z)(this,e),this.list=t,this.view=n,this.keyboardNavigationLabelProvider=i,this.delegate=r,this.enabled=!1,this.state=H.Idle,this.automaticKeyboardNavigation=!0,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new f.SL,this.disposables=new f.SL,this.updateOptions(t.options)}return(0,c.Z)(e,[{key:"updateOptions",value:function(e){"undefined"===typeof e.enableKeyboardNavigation||!!e.enableKeyboardNavigation?this.enable():this.disable(),"undefined"!==typeof e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation)}},{key:"enable",value:function(){var e=this;if(!this.enabled){var t=b.ju.chain((0,w.jt)(this.view.domNode,"keydown")).filter((function(e){return!F(e.target)})).filter((function(){return e.automaticKeyboardNavigation||e.triggered})).map((function(e){return new y.y(e)})).filter((function(t){return e.delegate.mightProducePrintableCharacter(t)})).forEach((function(e){e.stopPropagation(),e.preventDefault()})).map((function(e){return e.browserEvent.key})).event,n=b.ju.debounce(t,(function(){return null}),800);b.ju.reduce(b.ju.any(t,n),(function(e,t){return null===t?null:(e||"")+t}))(this.onInput,this,this.enabledDisposables),n(this.onClear,this,this.enabledDisposables),this.enabled=!0,this.triggered=!1}}},{key:"disable",value:function(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}},{key:"onClear",value:function(){var e,t=this.list.getFocus();if(t.length>0&&t[0]===this.previouslyFocused){var n=null===(e=this.list.options.accessibilityProvider)||void 0===e?void 0:e.getAriaLabel(this.list.element(t[0]));n&&(0,D.Z9)(n)}this.previouslyFocused=-1}},{key:"onInput",value:function(e){if(!e)return this.state=H.Idle,void(this.triggered=!1);var t=this.list.getFocus(),n=t.length>0?t[0]:0,i=this.state===H.Idle?1:0;this.state=H.Typing;for(var r=0;r<this.list.length;r++){var o=(n+r+i)%this.list.length,a=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(o)),s=a&&a.toString();if("undefined"===typeof s||(0,N.Ji)(e,s))return this.previouslyFocused=n,this.list.setFocus([o]),void this.list.reveal(o)}}},{key:"dispose",value:function(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}]),e}(),V=function(){function e(t,n){(0,l.Z)(this,e),this.list=t,this.view=n,this.disposables=new f.SL,b.ju.chain((0,w.jt)(n.domNode,"keydown")).filter((function(e){return!F(e.target)})).map((function(e){return new y.y(e)})).filter((function(e){return 2===e.keyCode&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey})).on(this.onTab,this,this.disposables)}return(0,c.Z)(e,[{key:"onTab",value:function(e){if(e.target===this.view.domNode){var t=this.list.getFocus();if(0!==t.length){var n=this.view.domElement(t[0]);if(n){var i=n.querySelector("[tabIndex]");if(i&&i instanceof HTMLElement&&-1!==i.tabIndex){var r=window.getComputedStyle(i);"hidden"!==r.visibility&&"none"!==r.display&&(e.preventDefault(),e.stopPropagation(),i.focus())}}}}}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}();function Y(e){return m.dz?e.browserEvent.metaKey:e.browserEvent.ctrlKey}function U(e){return e.browserEvent.shiftKey}var K={isSelectionSingleChangeEvent:Y,isSelectionRangeChangeEvent:U},q=function(){function e(t){(0,l.Z)(this,e),this.list=t,this.disposables=new f.SL,this._onPointer=new b.Q5,this.onPointer=this._onPointer.event,this.multipleSelectionSupport=!(!1===t.options.multipleSelectionSupport),this.multipleSelectionSupport&&(this.multipleSelectionController=t.options.multipleSelectionController||K),this.mouseSupport="undefined"===typeof t.options.mouseSupport||!!t.options.mouseSupport,this.mouseSupport&&(t.onMouseDown(this.onMouseDown,this,this.disposables),t.onContextMenu(this.onContextMenu,this,this.disposables),t.onMouseDblClick(this.onDoubleClick,this,this.disposables),t.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(_.o.addTarget(t.getHTMLElement()))),b.ju.any(t.onMouseClick,t.onMouseMiddleClick,t.onTap)(this.onViewPointer,this,this.disposables)}return(0,c.Z)(e,[{key:"isSelectionSingleChangeEvent",value:function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):m.dz?e.browserEvent.metaKey:e.browserEvent.ctrlKey}},{key:"isSelectionRangeChangeEvent",value:function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):e.browserEvent.shiftKey}},{key:"isSelectionChangeEvent",value:function(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}},{key:"onMouseDown",value:function(e){j(e.browserEvent.target)||document.activeElement!==e.browserEvent.target&&this.list.domFocus()}},{key:"onContextMenu",value:function(e){if(!j(e.browserEvent.target)){var t="undefined"===typeof e.index?[]:[e.index];this.list.setFocus(t,e.browserEvent)}}},{key:"onViewPointer",value:function(e){if(this.mouseSupport&&!F(e.browserEvent.target)&&!j(e.browserEvent.target)){var t,n=e.index;if("undefined"===typeof n)return this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),void this.list.setAnchor(void 0);if(this.multipleSelectionSupport&&this.isSelectionRangeChangeEvent(e))return this.changeSelection(e);if(this.multipleSelectionSupport&&this.isSelectionChangeEvent(e))return this.changeSelection(e);this.list.setFocus([n],e.browserEvent),this.list.setAnchor(n),(t=e.browserEvent)instanceof MouseEvent&&2===t.button||this.list.setSelection([n],e.browserEvent),this._onPointer.fire(e)}}},{key:"onDoubleClick",value:function(e){if(!F(e.browserEvent.target)&&!j(e.browserEvent.target)&&(!this.multipleSelectionSupport||!this.isSelectionChangeEvent(e))){var t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}}},{key:"changeSelection",value:function(e){var t=e.index,n=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)&&"number"===typeof n){var i=Math.min(n,t),r=Math.max(n,t),o=(0,g.w6)(i,r+1),a=this.list.getSelection(),u=function(e,t){var n=e.indexOf(t);if(-1===n)return[];var i=[],r=n-1;for(;r>=0&&e[r]===t-(n-r);)i.push(e[r--]);i.reverse(),r=n;for(;r<e.length&&e[r]===t+(r-n);)i.push(e[r++]);return i}(X(a,[n]),n);if(0===u.length)return;var l=X(o,function(e,t){var n=[],i=0,r=0;for(;i<e.length||r<t.length;)if(i>=e.length)n.push(t[r++]);else if(r>=t.length)n.push(e[i++]);else{if(e[i]===t[r]){i++,r++;continue}e[i]<t[r]?n.push(e[i++]):r++}return n}(a,u));this.list.setSelection(l,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){var c=this.list.getSelection(),d=c.filter((function(e){return e!==t}));this.list.setFocus([t]),this.list.setAnchor(t),c.length===d.length?this.list.setSelection([].concat((0,s.Z)(d),[t]),e.browserEvent):this.list.setSelection(d,e.browserEvent)}}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}(),G=function(){function e(t,n){(0,l.Z)(this,e),this.styleElement=t,this.selectorSuffix=n}return(0,c.Z)(e,[{key:"style",value:function(e){var t=this.selectorSuffix&&".".concat(this.selectorSuffix),n=[];e.listBackground&&(e.listBackground.isOpaque()?n.push(".monaco-list".concat(t," .monaco-list-rows { background: ").concat(e.listBackground,"; }")):m.dz||console.warn("List with id '".concat(this.selectorSuffix,"' was styled with a non-opaque background color. This will break sub-pixel antialiasing."))),e.listFocusBackground&&(n.push(".monaco-list".concat(t,":focus .monaco-list-row.focused { background-color: ").concat(e.listFocusBackground,"; }")),n.push(".monaco-list".concat(t,":focus .monaco-list-row.focused:hover { background-color: ").concat(e.listFocusBackground,"; }"))),e.listFocusForeground&&n.push(".monaco-list".concat(t,":focus .monaco-list-row.focused { color: ").concat(e.listFocusForeground,"; }")),e.listActiveSelectionBackground&&(n.push(".monaco-list".concat(t,":focus .monaco-list-row.selected { background-color: ").concat(e.listActiveSelectionBackground,"; }")),n.push(".monaco-list".concat(t,":focus .monaco-list-row.selected:hover { background-color: ").concat(e.listActiveSelectionBackground,"; }"))),e.listActiveSelectionForeground&&n.push(".monaco-list".concat(t,":focus .monaco-list-row.selected { color: ").concat(e.listActiveSelectionForeground,"; }")),e.listFocusAndSelectionBackground&&n.push("\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list".concat(t,":focus .monaco-list-row.selected.focused { background-color: ").concat(e.listFocusAndSelectionBackground,"; }\n\t\t\t")),e.listFocusAndSelectionForeground&&n.push("\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list".concat(t,":focus .monaco-list-row.selected.focused { color: ").concat(e.listFocusAndSelectionForeground,"; }\n\t\t\t")),e.listInactiveFocusForeground&&(n.push(".monaco-list".concat(t," .monaco-list-row.focused { color: ").concat(e.listInactiveFocusForeground,"; }")),n.push(".monaco-list".concat(t," .monaco-list-row.focused:hover { color: ").concat(e.listInactiveFocusForeground,"; }"))),e.listInactiveFocusBackground&&(n.push(".monaco-list".concat(t," .monaco-list-row.focused { background-color: ").concat(e.listInactiveFocusBackground,"; }")),n.push(".monaco-list".concat(t," .monaco-list-row.focused:hover { background-color: ").concat(e.listInactiveFocusBackground,"; }"))),e.listInactiveSelectionBackground&&(n.push(".monaco-list".concat(t," .monaco-list-row.selected { background-color: ").concat(e.listInactiveSelectionBackground,"; }")),n.push(".monaco-list".concat(t," .monaco-list-row.selected:hover { background-color: ").concat(e.listInactiveSelectionBackground,"; }"))),e.listInactiveSelectionForeground&&n.push(".monaco-list".concat(t," .monaco-list-row.selected { color: ").concat(e.listInactiveSelectionForeground,"; }")),e.listHoverBackground&&n.push(".monaco-list".concat(t,":not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ").concat(e.listHoverBackground,"; }")),e.listHoverForeground&&n.push(".monaco-list".concat(t," .monaco-list-row:hover:not(.selected):not(.focused) { color: ").concat(e.listHoverForeground,"; }")),e.listSelectionOutline&&n.push(".monaco-list".concat(t," .monaco-list-row.selected { outline: 1px dotted ").concat(e.listSelectionOutline,"; outline-offset: -1px; }")),e.listFocusOutline&&n.push("\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list".concat(t,":focus .monaco-list-row.focused { outline: 1px solid ").concat(e.listFocusOutline,"; outline-offset: -1px; }\n\t\t\t")),e.listInactiveFocusOutline&&n.push(".monaco-list".concat(t," .monaco-list-row.focused { outline: 1px dotted ").concat(e.listInactiveFocusOutline,"; outline-offset: -1px; }")),e.listHoverOutline&&n.push(".monaco-list".concat(t," .monaco-list-row:hover { outline: 1px dashed ").concat(e.listHoverOutline,"; outline-offset: -1px; }")),e.listDropBackground&&n.push("\n\t\t\t\t.monaco-list".concat(t,".drop-target,\n\t\t\t\t.monaco-list").concat(t," .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list").concat(t," .monaco-list-row.drop-target { background-color: ").concat(e.listDropBackground," !important; color: inherit !important; }\n\t\t\t")),e.listFilterWidgetBackground&&n.push(".monaco-list-type-filter { background-color: ".concat(e.listFilterWidgetBackground," }")),e.listFilterWidgetOutline&&n.push(".monaco-list-type-filter { border: 1px solid ".concat(e.listFilterWidgetOutline,"; }")),e.listFilterWidgetNoMatchesOutline&&n.push(".monaco-list-type-filter.no-matches { border: 1px solid ".concat(e.listFilterWidgetNoMatchesOutline,"; }")),e.listMatchesShadow&&n.push(".monaco-list-type-filter { box-shadow: 1px 1px 1px ".concat(e.listMatchesShadow,"; }")),e.tableColumnsBorder&&n.push("\n\t\t\t\t.monaco-table:hover > .monaco-split-view2,\n\t\t\t\t.monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ".concat(e.tableColumnsBorder,";\n\t\t\t}")),this.styleElement.textContent=n.join("\n")}}]),e}(),$={listFocusBackground:S.Il.fromHex("#7FB0D0"),listActiveSelectionBackground:S.Il.fromHex("#0E639C"),listActiveSelectionForeground:S.Il.fromHex("#FFFFFF"),listFocusAndSelectionBackground:S.Il.fromHex("#094771"),listFocusAndSelectionForeground:S.Il.fromHex("#FFFFFF"),listInactiveSelectionBackground:S.Il.fromHex("#3F3F46"),listHoverBackground:S.Il.fromHex("#2A2D2E"),listDropBackground:S.Il.fromHex("#383B3D"),treeIndentGuidesStroke:S.Il.fromHex("#a9a9a9"),tableColumnsBorder:S.Il.fromHex("#cccccc").transparent(.2)},Q={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI:function(){return null},onDragStart:function(){},onDragOver:function(){return!1},drop:function(){}}};function X(e,t){for(var n=[],i=0,r=0;i<e.length||r<t.length;)if(i>=e.length)n.push(t[r++]);else if(r>=t.length)n.push(e[i++]);else{if(e[i]===t[r]){n.push(e[i]),i++,r++;continue}e[i]<t[r]?n.push(e[i++]):n.push(t[r++])}return n}var J=function(e,t){return e-t},ee=function(){function e(t,n){(0,l.Z)(this,e),this._templateId=t,this.renderers=n}return(0,c.Z)(e,[{key:"templateId",get:function(){return this._templateId}},{key:"renderTemplate",value:function(e){return this.renderers.map((function(t){return t.renderTemplate(e)}))}},{key:"renderElement",value:function(e,t,n,i){var r,o=0,a=(0,u.Z)(this.renderers);try{for(a.s();!(r=a.n()).done;){r.value.renderElement(e,t,n[o++],i)}}catch(s){a.e(s)}finally{a.f()}}},{key:"disposeElement",value:function(e,t,n,i){var r,o=0,a=(0,u.Z)(this.renderers);try{for(a.s();!(r=a.n()).done;){var s=r.value;s.disposeElement&&s.disposeElement(e,t,n[o],i),o+=1}}catch(l){a.e(l)}finally{a.f()}}},{key:"disposeTemplate",value:function(e){var t,n=0,i=(0,u.Z)(this.renderers);try{for(i.s();!(t=i.n()).done;){t.value.disposeTemplate(e[n++])}}catch(r){i.e(r)}finally{i.f()}}}]),e}(),te=function(){function e(t){(0,l.Z)(this,e),this.accessibilityProvider=t,this.templateId="a18n"}return(0,c.Z)(e,[{key:"renderTemplate",value:function(e){return e}},{key:"renderElement",value:function(e,t,n){var i=this.accessibilityProvider.getAriaLabel(e);i?n.setAttribute("aria-label",i):n.removeAttribute("aria-label");var r=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);"number"===typeof r?n.setAttribute("aria-level","".concat(r)):n.removeAttribute("aria-level")}},{key:"disposeTemplate",value:function(e){}}]),e}(),ne=function(){function e(t,n){(0,l.Z)(this,e),this.list=t,this.dnd=n}return(0,c.Z)(e,[{key:"getDragElements",value:function(e){var t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}},{key:"getDragURI",value:function(e){return this.dnd.getDragURI(e)}},{key:"getDragLabel",value:function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}},{key:"onDragStart",value:function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(e,t)}},{key:"onDragOver",value:function(e,t,n,i){return this.dnd.onDragOver(e,t,n,i)}},{key:"onDragEnd",value:function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}},{key:"drop",value:function(e,t,n,i){this.dnd.drop(e,t,n,i)}}]),e}(),ie=function(){function e(t,n,i,r){var o,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Q;(0,l.Z)(this,e),this.user=t,this._options=a,this.focus=new R("focused"),this.anchor=new R("anchor"),this.eventBufferer=new b.E7,this._ariaLabel="",this.disposables=new f.SL,this._onDidDispose=new b.Q5,this.onDidDispose=this._onDidDispose.event;var s=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?null===(o=this._options.accessibilityProvider)||void 0===o?void 0:o.getWidgetRole():"list";this.selection=new P("listbox"!==s),(0,x.jB)(a,$,!1);var u=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=a.accessibilityProvider,this.accessibilityProvider&&(u.push(new te(this.accessibilityProvider)),this.accessibilityProvider.onDidChangeActiveDescendant&&this.accessibilityProvider.onDidChangeActiveDescendant(this.onDidChangeActiveDescendant,this,this.disposables)),r=r.map((function(e){return new ee(e.templateId,[].concat(u,[e]))}));var c=Object.assign(Object.assign({},a),{dnd:a.dnd&&new ne(this,a.dnd)});if(this.view=new k.Bv(n,i,r,c),this.view.domNode.setAttribute("role",s),a.styleController)this.styleController=a.styleController(this.view.domId);else{var d=(0,M.createStyleSheet)(this.view.domNode);this.styleController=new G(d,this.view.domId)}if(this.spliceable=new L([new Z(this.focus,this.view,a.identityProvider),new Z(this.selection,this.view,a.identityProvider),new Z(this.anchor,this.view,a.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.onDidFocus=b.ju.map((0,w.jt)(this.view.domNode,"focus",!0),(function(){return null})),this.onDidBlur=b.ju.map((0,w.jt)(this.view.domNode,"blur",!0),(function(){return null})),this.disposables.add(new V(this,this.view)),"boolean"!==typeof a.keyboardSupport||a.keyboardSupport){var h=new B(this,this.view,a);this.disposables.add(h)}if(a.keyboardNavigationLabelProvider){var p=a.keyboardNavigationDelegate||z;this.typeLabelController=new W(this,this.view,a.keyboardNavigationLabelProvider,p),this.disposables.add(this.typeLabelController)}this.mouseController=this.createMouseController(a),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),a.multipleSelectionSupport&&this.view.domNode.setAttribute("aria-multiselectable","true")}return(0,c.Z)(e,[{key:"onDidChangeFocus",get:function(){var e=this;return b.ju.map(this.eventBufferer.wrapEvent(this.focus.onChange),(function(t){return e.toListEvent(t)}))}},{key:"onDidChangeSelection",get:function(){var e=this;return b.ju.map(this.eventBufferer.wrapEvent(this.selection.onChange),(function(t){return e.toListEvent(t)}))}},{key:"domId",get:function(){return this.view.domId}},{key:"onMouseClick",get:function(){return this.view.onMouseClick}},{key:"onMouseDblClick",get:function(){return this.view.onMouseDblClick}},{key:"onMouseMiddleClick",get:function(){return this.view.onMouseMiddleClick}},{key:"onPointer",get:function(){return this.mouseController.onPointer}},{key:"onMouseDown",get:function(){return this.view.onMouseDown}},{key:"onTouchStart",get:function(){return this.view.onTouchStart}},{key:"onTap",get:function(){return this.view.onTap}},{key:"onContextMenu",get:function(){var e=this,t=!1,n=b.ju.chain((0,w.jt)(this.view.domNode,"keydown")).map((function(e){return new y.y(e)})).filter((function(e){return t=58===e.keyCode||e.shiftKey&&68===e.keyCode})).map(w.p7).filter((function(){return!1})).event,i=b.ju.chain((0,w.jt)(this.view.domNode,"keyup")).forEach((function(){return t=!1})).map((function(e){return new y.y(e)})).filter((function(e){return 58===e.keyCode||e.shiftKey&&68===e.keyCode})).map(w.p7).map((function(t){var n=t.browserEvent,i=e.getFocus(),r=i.length?i[0]:void 0;return{index:r,element:"undefined"!==typeof r?e.view.element(r):void 0,anchor:"undefined"!==typeof r?e.view.domElement(r):e.view.domNode,browserEvent:n}})).event,r=b.ju.chain(this.view.onContextMenu).filter((function(e){return!t})).map((function(e){var t=e.element,n=e.index,i=e.browserEvent;return{element:t,index:n,anchor:{x:i.clientX+1,y:i.clientY},browserEvent:i}})).event;return b.ju.any(n,i,r)}},{key:"onKeyDown",get:function(){return(0,w.jt)(this.view.domNode,"keydown")}},{key:"createMouseController",value:function(e){return new q(this)}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._options=Object.assign(Object.assign({},this._options),e),this.typeLabelController&&this.typeLabelController.updateOptions(this._options),this.view.updateOptions(e)}},{key:"options",get:function(){return this._options}},{key:"splice",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(e<0||e>this.view.length)throw new C(this.user,"Invalid start index: ".concat(e));if(t<0)throw new C(this.user,"Invalid delete count: ".concat(t));0===t&&0===i.length||this.eventBufferer.bufferEvents((function(){return n.spliceable.splice(e,t,i)}))}},{key:"rerender",value:function(){this.view.rerender()}},{key:"element",value:function(e){return this.view.element(e)}},{key:"length",get:function(){return this.view.length}},{key:"contentHeight",get:function(){return this.view.contentHeight}},{key:"scrollTop",get:function(){return this.view.getScrollTop()},set:function(e){this.view.setScrollTop(e)}},{key:"ariaLabel",get:function(){return this._ariaLabel},set:function(e){this._ariaLabel=e,this.view.domNode.setAttribute("aria-label",e)}},{key:"domFocus",value:function(){this.view.domNode.focus({preventScroll:!0})}},{key:"layout",value:function(e,t){this.view.layout(e,t)}},{key:"setSelection",value:function(e,t){var n,i=(0,u.Z)(e);try{for(i.s();!(n=i.n()).done;){var r=n.value;if(r<0||r>=this.length)throw new C(this.user,"Invalid index ".concat(r))}}catch(o){i.e(o)}finally{i.f()}this.selection.set(e,t)}},{key:"getSelection",value:function(){return this.selection.get()}},{key:"getSelectedElements",value:function(){var e=this;return this.getSelection().map((function(t){return e.view.element(t)}))}},{key:"setAnchor",value:function(e){if("undefined"!==typeof e){if(e<0||e>=this.length)throw new C(this.user,"Invalid index ".concat(e));this.anchor.set([e])}else this.anchor.set([])}},{key:"getAnchor",value:function(){return(0,g.Xh)(this.anchor.get(),void 0)}},{key:"setFocus",value:function(e,t){var n,i=(0,u.Z)(e);try{for(i.s();!(n=i.n()).done;){var r=n.value;if(r<0||r>=this.length)throw new C(this.user,"Invalid index ".concat(r))}}catch(o){i.e(o)}finally{i.f()}this.focus.set(e,t)}},{key:"focusNext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(0!==this.length){var r=this.focus.get(),o=this.findNextIndex(r.length>0?r[0]+e:0,t,i);o>-1&&this.setFocus([o],n)}}},{key:"focusPrevious",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(0!==this.length){var r=this.focus.get(),o=this.findPreviousIndex(r.length>0?r[0]-e:0,t,i);o>-1&&this.setFocus([o],n)}}},{key:"focusNextPage",value:function(e,t){return I(this,void 0,void 0,h().mark((function n(){var i,r,o,a,s;return h().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(i=0===(i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight))?0:i-1,r=this.view.element(i),(o=this.getFocusedElements()[0])===r){n.next=9;break}(a=this.findPreviousIndex(i,!1,t))>-1&&o!==this.view.element(a)?this.setFocus([a],e):this.setFocus([i],e),n.next=17;break;case 9:if(s=this.view.getScrollTop(),this.view.setScrollTop(s+this.view.renderHeight-this.view.elementHeight(i)),this.view.getScrollTop()===s){n.next=17;break}return this.setFocus([]),n.next=15,(0,T.Vs)(0);case 15:return n.next=17,this.focusNextPage(e,t);case 17:case"end":return n.stop()}}),n,this)})))}},{key:"focusPreviousPage",value:function(e,t){return I(this,void 0,void 0,h().mark((function n(){var i,r,o,a,s,u;return h().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=this.view.getScrollTop(),i=0===r?this.view.indexAt(r):this.view.indexAfter(r-1),o=this.view.element(i),(a=this.getFocusedElements()[0])===o){n.next=9;break}(s=this.findNextIndex(i,!1,t))>-1&&a!==this.view.element(s)?this.setFocus([s],e):this.setFocus([i],e),n.next=17;break;case 9:if(u=r,this.view.setScrollTop(r-this.view.renderHeight),this.view.getScrollTop()===u){n.next=17;break}return this.setFocus([]),n.next=15,(0,T.Vs)(0);case 15:return n.next=17,this.focusPreviousPage(e,t);case 17:case"end":return n.stop()}}),n,this)})))}},{key:"focusLast",value:function(e,t){if(0!==this.length){var n=this.findPreviousIndex(this.length-1,!1,t);n>-1&&this.setFocus([n],e)}}},{key:"focusFirst",value:function(e,t){this.focusNth(0,e,t)}},{key:"focusNth",value:function(e,t,n){if(0!==this.length){var i=this.findNextIndex(e,!1,n);i>-1&&this.setFocus([i],t)}}},{key:"findNextIndex",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=0;i<this.length;i++){if(e>=this.length&&!t)return-1;if(e%=this.length,!n||n(this.element(e)))return e;e++}return-1}},{key:"findPreviousIndex",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=0;i<this.length;i++){if(e<0&&!t)return-1;if(e=(this.length+e%this.length)%this.length,!n||n(this.element(e)))return e;e--}return-1}},{key:"getFocus",value:function(){return this.focus.get()}},{key:"getFocusedElements",value:function(){var e=this;return this.getFocus().map((function(t){return e.view.element(t)}))}},{key:"reveal",value:function(e,t){if(e<0||e>=this.length)throw new C(this.user,"Invalid index ".concat(e));var n=this.view.getScrollTop(),i=this.view.elementTop(e),r=this.view.elementHeight(e);if((0,p.hj)(t)){var o=r-this.view.renderHeight;this.view.setScrollTop(o*(0,E.u)(t,0,1)+i)}else{var a=i+r,s=n+this.view.renderHeight;i<n&&a>=s||(i<n||a>=s&&r>=this.view.renderHeight?this.view.setScrollTop(i):a>=s&&this.view.setScrollTop(a-this.view.renderHeight))}}},{key:"getRelativeTop",value:function(e){if(e<0||e>=this.length)throw new C(this.user,"Invalid index ".concat(e));var t=this.view.getScrollTop(),n=this.view.elementTop(e),i=this.view.elementHeight(e);if(n<t||n+i>t+this.view.renderHeight)return null;var r=i-this.view.renderHeight;return Math.abs((t-n)/r)}},{key:"getHTMLElement",value:function(){return this.view.domNode}},{key:"style",value:function(e){this.styleController.style(e)}},{key:"toListEvent",value:function(e){var t=this,n=e.indexes,i=e.browserEvent;return{indexes:n,elements:n.map((function(e){return t.view.element(e)})),browserEvent:i}}},{key:"_onFocusChange",value:function(){var e=this.focus.get();this.view.domNode.classList.toggle("element-focused",e.length>0),this.onDidChangeActiveDescendant()}},{key:"onDidChangeActiveDescendant",value:function(){var e,t,n=this.focus.get();n.length>0?((null===(e=this.accessibilityProvider)||void 0===e?void 0:e.getActiveDescendantId)&&(t=this.accessibilityProvider.getActiveDescendantId(this.view.element(n[0]))),this.view.domNode.setAttribute("aria-activedescendant",t||this.view.getElementDomId(n[0]))):this.view.domNode.removeAttribute("aria-activedescendant")}},{key:"_onSelectionChange",value:function(){var e=this.selection.get();this.view.domNode.classList.toggle("selection-none",0===e.length),this.view.domNode.classList.toggle("selection-single",1===e.length),this.view.domNode.classList.toggle("selection-multiple",e.length>1)}},{key:"dispose",value:function(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}]),e}();O([v.H],ie.prototype,"onDidChangeFocus",null),O([v.H],ie.prototype,"onDidChangeSelection",null),O([v.H],ie.prototype,"onContextMenu",null)},79026:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var i="monaco-mouse-cursor-text"},2523:function(e,t,n){"use strict";n.d(t,{l:function(){return i},g:function(){return E}});var i,r=n(37762),o=n(93433),a=n(15671),s=n(43144),u=n(97326),l=n(11752),c=n(61120),d=n(60136),h=n(29388),f=n(81626),p=n(30487),g=n(25941),v=n(25044),m=n(55076),_=n(11732),y=n(84540),b=n(61680),w=n(27997),C=!1;!function(e){e.North="north",e.South="south",e.East="east",e.West="west"}(i||(i={}));var k=4,S=new _.Q5,x=300,L=new _.Q5,E=function(e){(0,d.Z)(n,e);var t=(0,h.Z)(n);function n(e,i,r){var o;return(0,a.Z)(this,n),(o=t.call(this)).hoverDelay=x,o.hoverDelayer=o._register(new w.vp(o.hoverDelay)),o._state=3,o._onDidEnablementChange=o._register(new _.Q5),o.onDidEnablementChange=o._onDidEnablementChange.event,o._onDidStart=o._register(new _.Q5),o.onDidStart=o._onDidStart.event,o._onDidChange=o._register(new _.Q5),o.onDidChange=o._onDidChange.event,o._onDidReset=o._register(new _.Q5),o.onDidReset=o._onDidReset.event,o._onDidEnd=o._register(new _.Q5),o.onDidEnd=o._onDidEnd.event,o.linkedSash=void 0,o.orthogonalStartSashDisposables=o._register(new f.SL),o.orthogonalStartDragHandleDisposables=o._register(new f.SL),o.orthogonalEndSashDisposables=o._register(new f.SL),o.orthogonalEndDragHandleDisposables=o._register(new f.SL),o.el=(0,y.append)(e,(0,y.$)(".monaco-sash")),r.orthogonalEdge&&o.el.classList.add("orthogonal-edge-".concat(r.orthogonalEdge)),p.dz&&o.el.classList.add("mac"),o._register((0,b.jt)(o.el,"mousedown")(o.onMouseDown,(0,u.Z)(o))),o._register((0,b.jt)(o.el,"dblclick")(o.onMouseDoubleClick,(0,u.Z)(o))),o._register((0,b.jt)(o.el,"mouseenter")((function(){return n.onMouseEnter((0,u.Z)(o))}))),o._register((0,b.jt)(o.el,"mouseleave")((function(){return n.onMouseLeave((0,u.Z)(o))}))),o._register(v.o.addTarget(o.el)),o._register((0,b.jt)(o.el,v.t.Start)((function(e){return o.onTouchStart(e)}),(0,u.Z)(o))),"number"===typeof r.size?(o.size=r.size,0===r.orientation?o.el.style.width="".concat(o.size,"px"):o.el.style.height="".concat(o.size,"px")):(o.size=k,o._register(S.event((function(e){o.size=e,o.layout()})))),o._register(L.event((function(e){return o.hoverDelay=e}))),o.hidden=!1,o.layoutProvider=i,o.orthogonalStartSash=r.orthogonalStartSash,o.orthogonalEndSash=r.orthogonalEndSash,o.orientation=r.orientation||0,1===o.orientation?(o.el.classList.add("horizontal"),o.el.classList.remove("vertical")):(o.el.classList.remove("horizontal"),o.el.classList.add("vertical")),o.el.classList.toggle("debug",C),o.layout(),o}return(0,s.Z)(n,[{key:"state",get:function(){return this._state},set:function(e){this._state!==e&&(this.el.classList.toggle("disabled",0===e),this.el.classList.toggle("minimum",1===e),this.el.classList.toggle("maximum",2===e),this._state=e,this._onDidEnablementChange.fire(e))}},{key:"orthogonalStartSash",get:function(){return this._orthogonalStartSash},set:function(e){var t=this;if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){var i=function(i){t.orthogonalStartDragHandleDisposables.clear(),0!==i&&(t._orthogonalStartDragHandle=(0,y.append)(t.el,(0,y.$)(".orthogonal-drag-handle.start")),t.orthogonalStartDragHandleDisposables.add((0,f.OF)((function(){return t._orthogonalStartDragHandle.remove()}))),(0,b.jt)(t._orthogonalStartDragHandle,"mouseenter")((function(){return n.onMouseEnter(e)}),void 0,t.orthogonalStartDragHandleDisposables),(0,b.jt)(t._orthogonalStartDragHandle,"mouseleave")((function(){return n.onMouseLeave(e)}),void 0,t.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange(i,this)),i(e.state)}this._orthogonalStartSash=e}},{key:"orthogonalEndSash",get:function(){return this._orthogonalEndSash},set:function(e){var t=this;if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){var i=function(i){t.orthogonalEndDragHandleDisposables.clear(),0!==i&&(t._orthogonalEndDragHandle=(0,y.append)(t.el,(0,y.$)(".orthogonal-drag-handle.end")),t.orthogonalEndDragHandleDisposables.add((0,f.OF)((function(){return t._orthogonalEndDragHandle.remove()}))),(0,b.jt)(t._orthogonalEndDragHandle,"mouseenter")((function(){return n.onMouseEnter(e)}),void 0,t.orthogonalEndDragHandleDisposables),(0,b.jt)(t._orthogonalEndDragHandle,"mouseleave")((function(){return n.onMouseLeave(e)}),void 0,t.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange(i,this)),i(e.state)}this._orthogonalEndSash=e}},{key:"onMouseDown",value:function(e){var t=this;y.EventHelper.stop(e,!1);var n=!1;if(!e.__orthogonalSashEvent){var i=this.getOrthogonalSash(e);i&&(n=!0,e.__orthogonalSashEvent=!0,i.onMouseDown(e))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onMouseDown(e)),this.state){var a,s=[].concat((0,o.Z)((0,y.getElementsByTagName)("iframe")),(0,o.Z)((0,y.getElementsByTagName)("webview"))),u=(0,r.Z)(s);try{for(u.s();!(a=u.n()).done;){a.value.style.pointerEvents="none"}}catch(C){u.e(C)}finally{u.f()}var l=new m.n(e),c=l.posx,d=l.posy,h=l.altKey,g={startX:c,currentX:c,startY:d,currentY:d,altKey:h};this.el.classList.add("active"),this._onDidStart.fire(g);var v=(0,y.createStyleSheet)(this.el),_=function(){var e="";e=n?"all-scroll":1===t.orientation?1===t.state?"s-resize":2===t.state?"n-resize":p.dz?"row-resize":"ns-resize":1===t.state?"e-resize":2===t.state?"w-resize":p.dz?"col-resize":"ew-resize",v.textContent="* { cursor: ".concat(e," !important; }")},w=new f.SL;_(),n||this.onDidEnablementChange(_,null,w);(0,b.jt)(window,"mousemove")((function(e){y.EventHelper.stop(e,!1);var n=new m.n(e),i={startX:c,currentX:n.posx,startY:d,currentY:n.posy,altKey:h};t._onDidChange.fire(i)}),null,w),(0,b.jt)(window,"mouseup")((function(e){y.EventHelper.stop(e,!1),t.el.removeChild(v),t.el.classList.remove("active"),t._onDidEnd.fire(),w.dispose();var n,i=(0,r.Z)(s);try{for(i.s();!(n=i.n()).done;){n.value.style.pointerEvents="auto"}}catch(C){i.e(C)}finally{i.f()}}),null,w)}}},{key:"onMouseDoubleClick",value:function(e){var t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}},{key:"onTouchStart",value:function(e){var t=this;y.EventHelper.stop(e);var n=[],i=e.pageX,r=e.pageY,o=e.altKey;this._onDidStart.fire({startX:i,currentX:i,startY:r,currentY:r,altKey:o}),n.push((0,y.addDisposableListener)(this.el,v.t.Change,(function(e){g.hj(e.pageX)&&g.hj(e.pageY)&&t._onDidChange.fire({startX:i,currentX:e.pageX,startY:r,currentY:e.pageY,altKey:o})}))),n.push((0,y.addDisposableListener)(this.el,v.t.End,(function(){t._onDidEnd.fire(),(0,f.B9)(n)})))}},{key:"clearSashHoverState",value:function(){n.onMouseLeave(this)}},{key:"layout",value:function(){if(0===this.orientation){var e=this.layoutProvider;this.el.style.left=e.getVerticalSashLeft(this)-this.size/2+"px",e.getVerticalSashTop&&(this.el.style.top=e.getVerticalSashTop(this)+"px"),e.getVerticalSashHeight&&(this.el.style.height=e.getVerticalSashHeight(this)+"px")}else{var t=this.layoutProvider;this.el.style.top=t.getHorizontalSashTop(this)-this.size/2+"px",t.getHorizontalSashLeft&&(this.el.style.left=t.getHorizontalSashLeft(this)+"px"),t.getHorizontalSashWidth&&(this.el.style.width=t.getHorizontalSashWidth(this)+"px")}}},{key:"hide",value:function(){this.hidden=!0,this.el.style.display="none",this.el.setAttribute("aria-hidden","true")}},{key:"getOrthogonalSash",value:function(e){if(e.target&&e.target instanceof HTMLElement)return e.target.classList.contains("orthogonal-drag-handle")?e.target.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash:void 0}},{key:"dispose",value:function(){(0,l.Z)((0,c.Z)(n.prototype),"dispose",this).call(this),this.el.remove()}}],[{key:"onMouseEnter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.el.classList.contains("active")?(e.hoverDelayer.cancel(),e.el.classList.add("hover")):e.hoverDelayer.trigger((function(){return e.el.classList.add("hover")}),e.hoverDelay).then(void 0,(function(){})),!t&&e.linkedSash&&n.onMouseEnter(e.linkedSash,!0)}},{key:"onMouseLeave",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.hoverDelayer.cancel(),e.el.classList.remove("hover"),!t&&e.linkedSash&&n.onMouseLeave(e.linkedSash,!0)}}]),n}(f.JT)},61727:function(e,t,n){"use strict";n.d(t,{s$:function(){return F},NB:function(){return P},$Z:function(){return Z}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(43144),u=n(15671),l=n(84540),c=n(41149),d=n(55076),h=n(78101),f=n(93433),p=n(43257),g=n(27997),v=11,m=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i,r;return(0,u.Z)(this,n),(r=t.call(this))._onActivate=e.onActivate,r.bgDomNode=document.createElement("div"),r.bgDomNode.className="arrow-background",r.bgDomNode.style.position="absolute",r.bgDomNode.style.width=e.bgWidth+"px",r.bgDomNode.style.height=e.bgHeight+"px","undefined"!==typeof e.top&&(r.bgDomNode.style.top="0px"),"undefined"!==typeof e.left&&(r.bgDomNode.style.left="0px"),"undefined"!==typeof e.bottom&&(r.bgDomNode.style.bottom="0px"),"undefined"!==typeof e.right&&(r.bgDomNode.style.right="0px"),r.domNode=document.createElement("div"),r.domNode.className=e.className,(i=r.domNode.classList).add.apply(i,(0,f.Z)(e.icon.classNamesArray)),r.domNode.style.position="absolute",r.domNode.style.width=v+"px",r.domNode.style.height=v+"px","undefined"!==typeof e.top&&(r.domNode.style.top=e.top+"px"),"undefined"!==typeof e.left&&(r.domNode.style.left=e.left+"px"),"undefined"!==typeof e.bottom&&(r.domNode.style.bottom=e.bottom+"px"),"undefined"!==typeof e.right&&(r.domNode.style.right=e.right+"px"),r._mouseMoveMonitor=r._register(new h.Z),r.onmousedown(r.bgDomNode,(function(e){return r._arrowMouseDown(e)})),r.onmousedown(r.domNode,(function(e){return r._arrowMouseDown(e)})),r._mousedownRepeatTimer=r._register(new g.zh),r._mousedownScheduleRepeatTimer=r._register(new g._F),r}return(0,s.Z)(n,[{key:"_arrowMouseDown",value:function(e){var t=this;this._onActivate(),this._mousedownRepeatTimer.cancel(),this._mousedownScheduleRepeatTimer.cancelAndSet((function(){t._mousedownRepeatTimer.cancelAndSet((function(){return t._onActivate()}),1e3/24)}),200),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,h.e,(function(e){}),(function(){t._mousedownRepeatTimer.cancel(),t._mousedownScheduleRepeatTimer.cancel()})),e.preventDefault()}}]),n}(p.$),_=n(81626),y=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o;return(0,u.Z)(this,n),(o=t.call(this))._visibility=e,o._visibleClassName=i,o._invisibleClassName=r,o._domNode=null,o._isVisible=!1,o._isNeeded=!1,o._shouldBeVisible=!1,o._revealTimer=o._register(new g._F),o}return(0,s.Z)(n,[{key:"applyVisibilitySetting",value:function(e){return 2!==this._visibility&&(3===this._visibility||e)}},{key:"setShouldBeVisible",value:function(e){var t=this.applyVisibilitySetting(e);this._shouldBeVisible!==t&&(this._shouldBeVisible=t,this.ensureVisibility())}},{key:"setIsNeeded",value:function(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}},{key:"setDomNode",value:function(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}},{key:"ensureVisibility",value:function(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)}},{key:"_reveal",value:function(){var e=this;this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet((function(){e._domNode&&e._domNode.setClassName(e._visibleClassName)}),0))}},{key:"_hide",value:function(e){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode&&this._domNode.setClassName(this._invisibleClassName+(e?" fade":"")))}}]),n}(_.JT),b=n(30487),w=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;return(0,u.Z)(this,n),(i=t.call(this))._lazyRender=e.lazyRender,i._host=e.host,i._scrollable=e.scrollable,i._scrollByPage=e.scrollByPage,i._scrollbarState=e.scrollbarState,i._visibilityController=i._register(new y(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),i._visibilityController.setIsNeeded(i._scrollbarState.isNeeded()),i._mouseMoveMonitor=i._register(new h.Z),i._shouldRender=!0,i.domNode=(0,c.X)(document.createElement("div")),i.domNode.setAttribute("role","presentation"),i.domNode.setAttribute("aria-hidden","true"),i._visibilityController.setDomNode(i.domNode),i.domNode.setPosition("absolute"),i.onmousedown(i.domNode.domNode,(function(e){return i._domNodeMouseDown(e)})),i}return(0,s.Z)(n,[{key:"_createArrow",value:function(e){var t=this._register(new m(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}},{key:"_createSlider",value:function(e,t,n,i){var r=this;this.slider=(0,c.X)(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),"number"===typeof n&&this.slider.setWidth(n),"number"===typeof i&&this.slider.setHeight(i),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this.onmousedown(this.slider.domNode,(function(e){e.leftButton&&(e.preventDefault(),r._sliderMouseDown(e,(function(){})))})),this.onclick(this.slider.domNode,(function(e){e.leftButton&&e.stopPropagation()}))}},{key:"_onElementSize",value:function(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}},{key:"_onElementScrollSize",value:function(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}},{key:"_onElementScrollPosition",value:function(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}},{key:"beginReveal",value:function(){this._visibilityController.setShouldBeVisible(!0)}},{key:"beginHide",value:function(){this._visibilityController.setShouldBeVisible(!1)}},{key:"render",value:function(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}},{key:"_domNodeMouseDown",value:function(e){e.target===this.domNode.domNode&&this._onMouseDown(e)}},{key:"delegateMouseDown",value:function(e){var t=this.domNode.domNode.getClientRects()[0].top,n=t+this._scrollbarState.getSliderPosition(),i=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),r=this._sliderMousePosition(e);n<=r&&r<=i?e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,(function(){}))):this._onMouseDown(e)}},{key:"_onMouseDown",value:function(e){var t,n;if(e.target===this.domNode.domNode&&"number"===typeof e.browserEvent.offsetX&&"number"===typeof e.browserEvent.offsetY)t=e.browserEvent.offsetX,n=e.browserEvent.offsetY;else{var i=l.getDomNodePagePosition(this.domNode.domNode);t=e.posx-i.left,n=e.posy-i.top}var r=this._mouseDownRelativePosition(t,n);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(r):this._scrollbarState.getDesiredScrollPositionFromOffset(r)),e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,(function(){})))}},{key:"_sliderMouseDown",value:function(e,t){var n=this,i=this._sliderMousePosition(e),r=this._sliderOrthogonalMousePosition(e),o=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,h.e,(function(e){var t=n._sliderOrthogonalMousePosition(e),a=Math.abs(t-r);if(b.ED&&a>140)n._setDesiredScrollPositionNow(o.getScrollPosition());else{var s=n._sliderMousePosition(e)-i;n._setDesiredScrollPositionNow(o.getDesiredScrollPositionFromDelta(s))}}),(function(){n.slider.toggleClassName("active",!1),n._host.onDragEnd(),t()})),this._host.onDragStart()}},{key:"_setDesiredScrollPositionNow",value:function(e){var t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}},{key:"updateScrollbarSize",value:function(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}},{key:"isNeeded",value:function(){return this._scrollbarState.isNeeded()}}]),n}(p.$),C=function(){function e(t,n,i,r,o,a){(0,u.Z)(this,e),this._scrollbarSize=Math.round(n),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(t),this._visibleSize=r,this._scrollSize=o,this._scrollPosition=a,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}return(0,s.Z)(e,[{key:"clone",value:function(){return new e(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}},{key:"setVisibleSize",value:function(e){var t=Math.round(e);return this._visibleSize!==t&&(this._visibleSize=t,this._refreshComputedValues(),!0)}},{key:"setScrollSize",value:function(e){var t=Math.round(e);return this._scrollSize!==t&&(this._scrollSize=t,this._refreshComputedValues(),!0)}},{key:"setScrollPosition",value:function(e){var t=Math.round(e);return this._scrollPosition!==t&&(this._scrollPosition=t,this._refreshComputedValues(),!0)}},{key:"setScrollbarSize",value:function(e){this._scrollbarSize=e}},{key:"_refreshComputedValues",value:function(){var t=e._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=t.computedAvailableSize,this._computedIsNeeded=t.computedIsNeeded,this._computedSliderSize=t.computedSliderSize,this._computedSliderRatio=t.computedSliderRatio,this._computedSliderPosition=t.computedSliderPosition}},{key:"getArrowSize",value:function(){return this._arrowSize}},{key:"getScrollPosition",value:function(){return this._scrollPosition}},{key:"getRectangleLargeSize",value:function(){return this._computedAvailableSize}},{key:"getRectangleSmallSize",value:function(){return this._scrollbarSize}},{key:"isNeeded",value:function(){return this._computedIsNeeded}},{key:"getSliderSize",value:function(){return this._computedSliderSize}},{key:"getSliderPosition",value:function(){return this._computedSliderPosition}},{key:"getDesiredScrollPositionFromOffset",value:function(e){if(!this._computedIsNeeded)return 0;var t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}},{key:"getDesiredScrollPositionFromOffsetPaged",value:function(e){if(!this._computedIsNeeded)return 0;var t=e-this._arrowSize,n=this._scrollPosition;return t<this._computedSliderPosition?n-=this._visibleSize:n+=this._visibleSize,n}},{key:"getDesiredScrollPositionFromDelta",value:function(e){if(!this._computedIsNeeded)return 0;var t=this._computedSliderPosition+e;return Math.round(t/this._computedSliderRatio)}}],[{key:"_computeValues",value:function(e,t,n,i,r){var o=Math.max(0,n-e),a=Math.max(0,o-2*t),s=i>0&&i>n;if(!s)return{computedAvailableSize:Math.round(o),computedIsNeeded:s,computedSliderSize:Math.round(a),computedSliderRatio:0,computedSliderPosition:0};var u=Math.round(Math.max(20,Math.floor(n*a/i))),l=(a-u)/(i-n),c=r*l;return{computedAvailableSize:Math.round(o),computedIsNeeded:s,computedSliderSize:Math.round(u),computedSliderRatio:l,computedSliderPosition:Math.round(c)}}}]),e}(),k=n(4354),S=(0,k.CM)("scrollbar-button-left",k.lA.triangleLeft),x=(0,k.CM)("scrollbar-button-right",k.lA.triangleRight),L=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o;(0,u.Z)(this,n);var a=e.getScrollDimensions(),s=e.getCurrentScrollPosition();if(o=t.call(this,{lazyRender:i.lazyRender,host:r,scrollbarState:new C(i.horizontalHasArrows?i.arrowSize:0,2===i.horizontal?0:i.horizontalScrollbarSize,2===i.vertical?0:i.verticalScrollbarSize,a.width,a.scrollWidth,s.scrollLeft),visibility:i.horizontal,extraScrollbarClassName:"horizontal",scrollable:e,scrollByPage:i.scrollByPage}),i.horizontalHasArrows){var l=(i.arrowSize-v)/2,c=(i.horizontalScrollbarSize-v)/2;o._createArrow({className:"scra",icon:S,top:c,left:l,bottom:void 0,right:void 0,bgWidth:i.arrowSize,bgHeight:i.horizontalScrollbarSize,onActivate:function(){return o._host.onMouseWheel(new d.q(null,1,0))}}),o._createArrow({className:"scra",icon:x,top:c,left:void 0,bottom:void 0,right:l,bgWidth:i.arrowSize,bgHeight:i.horizontalScrollbarSize,onActivate:function(){return o._host.onMouseWheel(new d.q(null,-1,0))}})}return o._createSlider(Math.floor((i.horizontalScrollbarSize-i.horizontalSliderSize)/2),0,void 0,i.horizontalSliderSize),o}return(0,s.Z)(n,[{key:"_updateSlider",value:function(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}},{key:"_renderDomNode",value:function(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}},{key:"onDidScroll",value:function(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}},{key:"_mouseDownRelativePosition",value:function(e,t){return e}},{key:"_sliderMousePosition",value:function(e){return e.posx}},{key:"_sliderOrthogonalMousePosition",value:function(e){return e.posy}},{key:"_updateScrollbarSize",value:function(e){this.slider.setHeight(e)}},{key:"writeScrollPosition",value:function(e,t){e.scrollLeft=t}}]),n}(w),E=(0,k.CM)("scrollbar-button-up",k.lA.triangleUp),N=(0,k.CM)("scrollbar-button-down",k.lA.triangleDown),D=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o;(0,u.Z)(this,n);var a=e.getScrollDimensions(),s=e.getCurrentScrollPosition();if(o=t.call(this,{lazyRender:i.lazyRender,host:r,scrollbarState:new C(i.verticalHasArrows?i.arrowSize:0,2===i.vertical?0:i.verticalScrollbarSize,0,a.height,a.scrollHeight,s.scrollTop),visibility:i.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:i.scrollByPage}),i.verticalHasArrows){var l=(i.arrowSize-v)/2,c=(i.verticalScrollbarSize-v)/2;o._createArrow({className:"scra",icon:E,top:l,left:c,bottom:void 0,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:function(){return o._host.onMouseWheel(new d.q(null,0,1))}}),o._createArrow({className:"scra",icon:N,top:void 0,left:c,bottom:l,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:function(){return o._host.onMouseWheel(new d.q(null,0,-1))}})}return o._createSlider(0,Math.floor((i.verticalScrollbarSize-i.verticalSliderSize)/2),i.verticalSliderSize,void 0),o}return(0,s.Z)(n,[{key:"_updateSlider",value:function(e,t){this.slider.setHeight(e),this.slider.setTop(t)}},{key:"_renderDomNode",value:function(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}},{key:"onDidScroll",value:function(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}},{key:"_mouseDownRelativePosition",value:function(e,t){return t}},{key:"_sliderMousePosition",value:function(e){return e.posy}},{key:"_sliderOrthogonalMousePosition",value:function(e){return e.posx}},{key:"_updateScrollbarSize",value:function(e){this.slider.setWidth(e)}},{key:"writeScrollPosition",value:function(e,t){e.scrollTop=t}}]),n}(w),M=n(11732),T=n(58604),O=n(84539),I=(0,s.Z)((function e(t,n,i){(0,u.Z)(this,e),this.timestamp=t,this.deltaX=n,this.deltaY=i,this.score=0})),A=function(){function e(){(0,u.Z)(this,e),this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}return(0,s.Z)(e,[{key:"isPhysicalMouseWheel",value:function(){if(-1===this._front&&-1===this._rear)return!1;for(var e=1,t=0,n=1,i=this._rear;;){var r=i===this._front?e:Math.pow(2,-n);if(e-=r,t+=this._memory[i].score*r,i===this._front)break;i=(this._capacity+i-1)%this._capacity,n++}return t<=.5}},{key:"accept",value:function(e,t,n){var i=new I(e,t,n);i.score=this._computeScore(i),-1===this._front&&-1===this._rear?(this._memory[0]=i,this._front=0,this._rear=0):(this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=i)}},{key:"_computeScore",value:function(e){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;var t=.5;-1===this._front&&-1===this._rear||this._memory[this._rear];return this._isAlmostInt(e.deltaX)&&this._isAlmostInt(e.deltaY)||(t+=.25),Math.min(Math.max(t,0),1)}},{key:"_isAlmostInt",value:function(e){return Math.abs(Math.round(e)-e)<.01}}]),e}();A.INSTANCE=new A;var R=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o;(0,u.Z)(this,n),(o=t.call(this))._onScroll=o._register(new M.Q5),o.onScroll=o._onScroll.event,o._onWillScroll=o._register(new M.Q5),e.style.overflow="hidden",o._options=function(e){var t={lazyRender:"undefined"!==typeof e.lazyRender&&e.lazyRender,className:"undefined"!==typeof e.className?e.className:"",useShadows:"undefined"===typeof e.useShadows||e.useShadows,handleMouseWheel:"undefined"===typeof e.handleMouseWheel||e.handleMouseWheel,flipAxes:"undefined"!==typeof e.flipAxes&&e.flipAxes,consumeMouseWheelIfScrollbarIsNeeded:"undefined"!==typeof e.consumeMouseWheelIfScrollbarIsNeeded&&e.consumeMouseWheelIfScrollbarIsNeeded,alwaysConsumeMouseWheel:"undefined"!==typeof e.alwaysConsumeMouseWheel&&e.alwaysConsumeMouseWheel,scrollYToX:"undefined"!==typeof e.scrollYToX&&e.scrollYToX,mouseWheelScrollSensitivity:"undefined"!==typeof e.mouseWheelScrollSensitivity?e.mouseWheelScrollSensitivity:1,fastScrollSensitivity:"undefined"!==typeof e.fastScrollSensitivity?e.fastScrollSensitivity:5,scrollPredominantAxis:"undefined"===typeof e.scrollPredominantAxis||e.scrollPredominantAxis,mouseWheelSmoothScroll:"undefined"===typeof e.mouseWheelSmoothScroll||e.mouseWheelSmoothScroll,arrowSize:"undefined"!==typeof e.arrowSize?e.arrowSize:11,listenOnDomNode:"undefined"!==typeof e.listenOnDomNode?e.listenOnDomNode:null,horizontal:"undefined"!==typeof e.horizontal?e.horizontal:1,horizontalScrollbarSize:"undefined"!==typeof e.horizontalScrollbarSize?e.horizontalScrollbarSize:10,horizontalSliderSize:"undefined"!==typeof e.horizontalSliderSize?e.horizontalSliderSize:0,horizontalHasArrows:"undefined"!==typeof e.horizontalHasArrows&&e.horizontalHasArrows,vertical:"undefined"!==typeof e.vertical?e.vertical:1,verticalScrollbarSize:"undefined"!==typeof e.verticalScrollbarSize?e.verticalScrollbarSize:10,verticalHasArrows:"undefined"!==typeof e.verticalHasArrows&&e.verticalHasArrows,verticalSliderSize:"undefined"!==typeof e.verticalSliderSize?e.verticalSliderSize:0,scrollByPage:"undefined"!==typeof e.scrollByPage&&e.scrollByPage};t.horizontalSliderSize="undefined"!==typeof e.horizontalSliderSize?e.horizontalSliderSize:t.horizontalScrollbarSize,t.verticalSliderSize="undefined"!==typeof e.verticalSliderSize?e.verticalSliderSize:t.verticalScrollbarSize,b.dz&&(t.className+=" mac");return t}(i),o._scrollable=r,o._register(o._scrollable.onScroll((function(e){o._onWillScroll.fire(e),o._onDidScroll(e),o._onScroll.fire(e)})));var a={onMouseWheel:function(e){return o._onMouseWheel(e)},onDragStart:function(){return o._onDragStart()},onDragEnd:function(){return o._onDragEnd()}};return o._verticalScrollbar=o._register(new D(o._scrollable,o._options,a)),o._horizontalScrollbar=o._register(new L(o._scrollable,o._options,a)),o._domNode=document.createElement("div"),o._domNode.className="monaco-scrollable-element "+o._options.className,o._domNode.setAttribute("role","presentation"),o._domNode.style.position="relative",o._domNode.style.overflow="hidden",o._domNode.appendChild(e),o._domNode.appendChild(o._horizontalScrollbar.domNode.domNode),o._domNode.appendChild(o._verticalScrollbar.domNode.domNode),o._options.useShadows?(o._leftShadowDomNode=(0,c.X)(document.createElement("div")),o._leftShadowDomNode.setClassName("shadow"),o._domNode.appendChild(o._leftShadowDomNode.domNode),o._topShadowDomNode=(0,c.X)(document.createElement("div")),o._topShadowDomNode.setClassName("shadow"),o._domNode.appendChild(o._topShadowDomNode.domNode),o._topLeftShadowDomNode=(0,c.X)(document.createElement("div")),o._topLeftShadowDomNode.setClassName("shadow"),o._domNode.appendChild(o._topLeftShadowDomNode.domNode)):(o._leftShadowDomNode=null,o._topShadowDomNode=null,o._topLeftShadowDomNode=null),o._listenOnDomNode=o._options.listenOnDomNode||o._domNode,o._mouseWheelToDispose=[],o._setListeningToMouseWheel(o._options.handleMouseWheel),o.onmouseover(o._listenOnDomNode,(function(e){return o._onMouseOver(e)})),o.onnonbubblingmouseout(o._listenOnDomNode,(function(e){return o._onMouseOut(e)})),o._hideTimeout=o._register(new g._F),o._isDragging=!1,o._mouseIsOver=!1,o._shouldRender=!0,o._revealOnScroll=!0,o}return(0,s.Z)(n,[{key:"dispose",value:function(){this._mouseWheelToDispose=(0,_.B9)(this._mouseWheelToDispose),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getOverviewRulerLayoutInfo",value:function(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}},{key:"delegateVerticalScrollbarMouseDown",value:function(e){this._verticalScrollbar.delegateMouseDown(e)}},{key:"getScrollDimensions",value:function(){return this._scrollable.getScrollDimensions()}},{key:"setScrollDimensions",value:function(e){this._scrollable.setScrollDimensions(e,!1)}},{key:"updateClassName",value:function(e){this._options.className=e,b.dz&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}},{key:"updateOptions",value:function(e){"undefined"!==typeof e.handleMouseWheel&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),"undefined"!==typeof e.mouseWheelScrollSensitivity&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),"undefined"!==typeof e.fastScrollSensitivity&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),"undefined"!==typeof e.scrollPredominantAxis&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),"undefined"!==typeof e.horizontalScrollbarSize&&this._horizontalScrollbar.updateScrollbarSize(e.horizontalScrollbarSize),this._options.lazyRender||this._render()}},{key:"_setListeningToMouseWheel",value:function(e){var t=this;if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=(0,_.B9)(this._mouseWheelToDispose),e)){this._mouseWheelToDispose.push(l.addDisposableListener(this._listenOnDomNode,l.EventType.MOUSE_WHEEL,(function(e){t._onMouseWheel(new d.q(e))}),{passive:!1}))}}},{key:"_onMouseWheel",value:function(e){var t=A.INSTANCE,n=window.devicePixelRatio/(0,O.ie)();b.ED||b.IJ?t.accept(Date.now(),e.deltaX/n,e.deltaY/n):t.accept(Date.now(),e.deltaX,e.deltaY);var i=!1;if(e.deltaY||e.deltaX){var r=e.deltaY*this._options.mouseWheelScrollSensitivity,o=e.deltaX*this._options.mouseWheelScrollSensitivity;if(this._options.scrollPredominantAxis&&(Math.abs(r)>=Math.abs(o)?o=0:r=0),this._options.flipAxes){var a=[o,r];r=a[0],o=a[1]}var s=!b.dz&&e.browserEvent&&e.browserEvent.shiftKey;!this._options.scrollYToX&&!s||o||(o=r,r=0),e.browserEvent&&e.browserEvent.altKey&&(o*=this._options.fastScrollSensitivity,r*=this._options.fastScrollSensitivity);var u=this._scrollable.getFutureScrollPosition(),l={};if(r){var c=u.scrollTop-50*r;this._verticalScrollbar.writeScrollPosition(l,c)}if(o){var d=u.scrollLeft-50*o;this._horizontalScrollbar.writeScrollPosition(l,d)}if(l=this._scrollable.validateScrollPosition(l),u.scrollLeft!==l.scrollLeft||u.scrollTop!==l.scrollTop)this._options.mouseWheelSmoothScroll&&t.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(l):this._scrollable.setScrollPositionNow(l),i=!0}var h=i;!h&&this._options.alwaysConsumeMouseWheel&&(h=!0),!h&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(h=!0),h&&(e.preventDefault(),e.stopPropagation())}},{key:"_onDidScroll",value:function(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}},{key:"renderNow",value:function(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}},{key:"_render",value:function(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){var e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,n=e.scrollLeft>0,i=n?" left":"",r=t?" top":"",o=n||t?" top-left-corner":"";this._leftShadowDomNode.setClassName("shadow".concat(i)),this._topShadowDomNode.setClassName("shadow".concat(r)),this._topLeftShadowDomNode.setClassName("shadow".concat(o).concat(r).concat(i))}}},{key:"_onDragStart",value:function(){this._isDragging=!0,this._reveal()}},{key:"_onDragEnd",value:function(){this._isDragging=!1,this._hide()}},{key:"_onMouseOut",value:function(e){this._mouseIsOver=!1,this._hide()}},{key:"_onMouseOver",value:function(e){this._mouseIsOver=!0,this._reveal()}},{key:"_reveal",value:function(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}},{key:"_hide",value:function(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}},{key:"_scheduleHide",value:function(){var e=this;this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet((function(){return e._hide()}),500)}}]),n}(p.$),P=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;(0,u.Z)(this,n),(i=i||{}).mouseWheelSmoothScroll=!1;var o=new T.Rm(0,(function(e){return l.scheduleAtNextAnimationFrame(e)}));return(r=t.call(this,e,i,o))._register(o),r}return(0,s.Z)(n,[{key:"setScrollPosition",value:function(e){this._scrollable.setScrollPositionNow(e)}}]),n}(R),Z=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){return(0,u.Z)(this,n),t.call(this,e,i,r)}return(0,s.Z)(n,[{key:"setScrollPosition",value:function(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}},{key:"getScrollPosition",value:function(){return this._scrollable.getCurrentScrollPosition()}}]),n}(R),F=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;return(0,u.Z)(this,n),(r=t.call(this,e,i))._element=e,r.onScroll((function(e){e.scrollTopChanged&&(r._element.scrollTop=e.scrollTop),e.scrollLeftChanged&&(r._element.scrollLeft=e.scrollLeft)})),r.scanDomNode(),r}return(0,s.Z)(n,[{key:"scanDomNode",value:function(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}]),n}(P)},44393:function(e,t,n){"use strict";n.d(t,{M:function(){return r},z:function(){return N}});var i,r,o=n(93433),a=n(37762),s=n(11752),u=n(61120),l=n(60136),c=n(29388),d=n(15671),h=n(43144),f=n(81626),p=n(11732),g=n(25941),v=n(5265),m=n(49396),_=n(2523),y=n(89938),b=n(61680),w=n(84540),C=n(61727),k=n(58604),S={separatorBorder:y.Il.transparent},x=function(){function e(t,n,i,r){(0,d.Z)(this,e),this.container=t,this.view=n,this.disposable=r,this._cachedVisibleSize=void 0,"number"===typeof i?(this._size=i,this._cachedVisibleSize=void 0,t.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}return(0,h.Z)(e,[{key:"size",get:function(){return this._size},set:function(e){this._size=e}},{key:"visible",get:function(){return"undefined"===typeof this._cachedVisibleSize}},{key:"setVisible",value:function(e,t){e!==this.visible&&(e?(this.size=(0,v.u)(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize="number"===typeof t?t:this.size,this.size=0),this.container.classList.toggle("visible",e),this.view.setVisible&&this.view.setVisible(e))}},{key:"minimumSize",get:function(){return this.visible?this.view.minimumSize:0}},{key:"viewMinimumSize",get:function(){return this.view.minimumSize}},{key:"maximumSize",get:function(){return this.visible?this.view.maximumSize:0}},{key:"viewMaximumSize",get:function(){return this.view.maximumSize}},{key:"priority",get:function(){return this.view.priority}},{key:"snap",get:function(){return!!this.view.snap}},{key:"enabled",set:function(e){this.container.style.pointerEvents=e?"":"none"}},{key:"layout",value:function(e,t){this.layoutContainer(e),this.view.layout(this.size,e,t)}},{key:"dispose",value:function(){return this.disposable.dispose(),this.view}}]),e}(),L=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(){return(0,d.Z)(this,n),t.apply(this,arguments)}return(0,h.Z)(n,[{key:"layoutContainer",value:function(e){this.container.style.top="".concat(e,"px"),this.container.style.height="".concat(this.size,"px")}}]),n}(x),E=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(){return(0,d.Z)(this,n),t.apply(this,arguments)}return(0,h.Z)(n,[{key:"layoutContainer",value:function(e){this.container.style.left="".concat(e,"px"),this.container.style.width="".concat(this.size,"px")}}]),n}(x);!function(e){e[e.Idle=0]="Idle",e[e.Busy=1]="Busy"}(i||(i={})),function(e){e.Distribute={type:"distribute"},e.Split=function(e){return{type:"split",index:e}},e.Invisible=function(e){return{type:"invisible",cachedVisibleSize:e}}}(r||(r={}));var N=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(e){var r,o,a,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,d.Z)(this,n),(r=t.call(this)).size=0,r.contentSize=0,r.proportions=void 0,r.viewItems=[],r.sashItems=[],r.state=i.Idle,r._onDidSashChange=r._register(new p.Q5),r.onDidSashChange=r._onDidSashChange.event,r._onDidSashReset=r._register(new p.Q5),r._startSnappingEnabled=!0,r._endSnappingEnabled=!0,r.orientation=g.o8(s.orientation)?0:s.orientation,r.inverseAltBehavior=!!s.inverseAltBehavior,r.proportionalLayout=!!g.o8(s.proportionalLayout)||!!s.proportionalLayout,r.getSashOrthogonalSize=s.getSashOrthogonalSize,r.el=document.createElement("div"),r.el.classList.add("monaco-split-view2"),r.el.classList.add(0===r.orientation?"vertical":"horizontal"),e.appendChild(r.el),r.sashContainer=(0,w.append)(r.el,(0,w.$)(".sash-container")),r.viewContainer=(0,w.$)(".split-view-container"),r.scrollable=new k.Rm(125,w.scheduleAtNextAnimationFrame),r.scrollableElement=r._register(new C.$Z(r.viewContainer,{vertical:0===r.orientation?null!==(o=s.scrollbarVisibility)&&void 0!==o?o:1:2,horizontal:1===r.orientation?null!==(a=s.scrollbarVisibility)&&void 0!==a?a:1:2},r.scrollable)),r._register(r.scrollableElement.onScroll((function(e){r.viewContainer.scrollTop=e.scrollTop,r.viewContainer.scrollLeft=e.scrollLeft}))),(0,w.append)(r.el,r.scrollableElement.getDomNode()),r.style(s.styles||S),s.descriptor&&(r.size=s.descriptor.size,s.descriptor.views.forEach((function(e,t){var n=g.o8(e.visible)||e.visible?e.size:{type:"invisible",cachedVisibleSize:e.size},i=e.view;r.doAddView(i,n,t,!0)})),r.contentSize=r.viewItems.reduce((function(e,t){return e+t.size}),0),r.saveProportions()),r}return(0,h.Z)(n,[{key:"orthogonalStartSash",get:function(){return this._orthogonalStartSash},set:function(e){var t,n=(0,a.Z)(this.sashItems);try{for(n.s();!(t=n.n()).done;){t.value.sash.orthogonalStartSash=e}}catch(i){n.e(i)}finally{n.f()}this._orthogonalStartSash=e}},{key:"orthogonalEndSash",get:function(){return this._orthogonalEndSash},set:function(e){var t,n=(0,a.Z)(this.sashItems);try{for(n.s();!(t=n.n()).done;){t.value.sash.orthogonalEndSash=e}}catch(i){n.e(i)}finally{n.f()}this._orthogonalEndSash=e}},{key:"startSnappingEnabled",get:function(){return this._startSnappingEnabled},set:function(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}},{key:"endSnappingEnabled",get:function(){return this._endSnappingEnabled},set:function(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}},{key:"style",value:function(e){e.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",e.separatorBorder.toString()))}},{key:"addView",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.viewItems.length,i=arguments.length>3?arguments[3]:void 0;this.doAddView(e,t,n,i)}},{key:"layout",value:function(e,t){var n=this,i=Math.max(this.size,this.contentSize);if(this.size=e,this.layoutContext=t,this.proportions)for(var r=0;r<this.viewItems.length;r++){var o=this.viewItems[r];o.size=(0,v.u)(Math.round(this.proportions[r]*e),o.minimumSize,o.maximumSize)}else{var a=(0,m.w6)(this.viewItems.length),s=a.filter((function(e){return 1===n.viewItems[e].priority})),u=a.filter((function(e){return 2===n.viewItems[e].priority}));this.resize(this.viewItems.length-1,e-i,void 0,s,u)}this.distributeEmptySpace(),this.layoutViews()}},{key:"saveProportions",value:function(){var e=this;this.proportionalLayout&&this.contentSize>0&&(this.proportions=this.viewItems.map((function(t){return t.size/e.contentSize})))}},{key:"onSashStart",value:function(e){var t,n=this,i=e.sash,r=e.start,o=e.alt,s=(0,a.Z)(this.viewItems);try{for(s.s();!(t=s.n()).done;){t.value.enabled=!1}}catch(d){s.e(d)}finally{s.f()}var u=this.sashItems.findIndex((function(e){return e.sash===i})),l=(0,f.F8)((0,b.jt)(document.body,"keydown")((function(e){return c(n.sashDragState.current,e.altKey)})),(0,b.jt)(document.body,"keyup")((function(){return c(n.sashDragState.current,!1)}))),c=function(e,t){var i,r,o=n.viewItems.map((function(e){return e.size})),a=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY;if(n.inverseAltBehavior&&(t=!t),t)if(u===n.sashItems.length-1){var c=n.viewItems[u];a=(c.minimumSize-c.size)/2,s=(c.maximumSize-c.size)/2}else{var d=n.viewItems[u+1];a=(d.size-d.maximumSize)/2,s=(d.size-d.minimumSize)/2}if(!t){var h=(0,m.w6)(u,-1),f=(0,m.w6)(u+1,n.viewItems.length),p=h.reduce((function(e,t){return e+(n.viewItems[t].minimumSize-o[t])}),0),g=h.reduce((function(e,t){return e+(n.viewItems[t].viewMaximumSize-o[t])}),0),v=0===f.length?Number.POSITIVE_INFINITY:f.reduce((function(e,t){return e+(o[t]-n.viewItems[t].minimumSize)}),0),_=0===f.length?Number.NEGATIVE_INFINITY:f.reduce((function(e,t){return e+(o[t]-n.viewItems[t].viewMaximumSize)}),0),y=Math.max(p,_),b=Math.min(v,g),w=n.findFirstSnapIndex(h),C=n.findFirstSnapIndex(f);if("number"===typeof w){var k=n.viewItems[w],S=Math.floor(k.viewMinimumSize/2);i={index:w,limitDelta:k.visible?y-S:y+S,size:k.size}}if("number"===typeof C){var x=n.viewItems[C],L=Math.floor(x.viewMinimumSize/2);r={index:C,limitDelta:x.visible?b+L:b-L,size:x.size}}}n.sashDragState={start:e,current:e,index:u,sizes:o,minDelta:a,maxDelta:s,alt:t,snapBefore:i,snapAfter:r,disposable:l}};c(r,o)}},{key:"onSashChange",value:function(e){var t=e.current,n=this.sashDragState,i=n.index,r=n.start,o=n.sizes,a=n.alt,s=n.minDelta,u=n.maxDelta,l=n.snapBefore,c=n.snapAfter;this.sashDragState.current=t;var d=t-r,h=this.resize(i,d,o,void 0,void 0,s,u,l,c);if(a){var f=i===this.sashItems.length-1,p=this.viewItems.map((function(e){return e.size})),g=f?i:i+1,v=this.viewItems[g],m=v.size-v.maximumSize,_=v.size-v.minimumSize,y=f?i-1:i+1;this.resize(y,-h,p,void 0,void 0,m,_)}this.distributeEmptySpace(),this.layoutViews()}},{key:"onSashEnd",value:function(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();var t,n=(0,a.Z)(this.viewItems);try{for(n.s();!(t=n.n()).done;){t.value.enabled=!0}}catch(i){n.e(i)}finally{n.f()}}},{key:"onViewChange",value:function(e,t){var n=this.viewItems.indexOf(e);n<0||n>=this.viewItems.length||(t="number"===typeof t?t:e.size,t=(0,v.u)(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&n>0?(this.resize(n-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([n],void 0)))}},{key:"resizeView",value:function(e,t){var n=this;if(this.state!==i.Idle)throw new Error("Cant modify splitview");if(this.state=i.Busy,!(e<0||e>=this.viewItems.length)){var r=(0,m.w6)(this.viewItems.length).filter((function(t){return t!==e})),a=[].concat((0,o.Z)(r.filter((function(e){return 1===n.viewItems[e].priority}))),[e]),s=r.filter((function(e){return 2===n.viewItems[e].priority})),u=this.viewItems[e];t=Math.round(t),t=(0,v.u)(t,u.minimumSize,Math.min(u.maximumSize,this.size)),u.size=t,this.relayout(a,s),this.state=i.Idle}}},{key:"distributeViewSizes",value:function(){var e,t=this,n=[],i=0,r=(0,a.Z)(this.viewItems);try{for(r.s();!(e=r.n()).done;){var o=e.value;o.maximumSize-o.minimumSize>0&&(n.push(o),i+=o.size)}}catch(p){r.e(p)}finally{r.f()}for(var s=Math.floor(i/n.length),u=0,l=n;u<l.length;u++){var c=l[u];c.size=(0,v.u)(s,c.minimumSize,c.maximumSize)}var d=(0,m.w6)(this.viewItems.length),h=d.filter((function(e){return 1===t.viewItems[e].priority})),f=d.filter((function(e){return 2===t.viewItems[e].priority}));this.relayout(h,f)}},{key:"getViewSize",value:function(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}},{key:"doAddView",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.viewItems.length,o=arguments.length>3?arguments[3]:void 0;if(this.state!==i.Idle)throw new Error("Cant modify splitview");this.state=i.Busy;var a=(0,w.$)(".split-view-view");r===this.viewItems.length?this.viewContainer.appendChild(a):this.viewContainer.insertBefore(a,this.viewContainer.children.item(r));var s,u=e.onDidChange((function(e){return n.onViewChange(h,e)})),l=(0,f.OF)((function(){return n.viewContainer.removeChild(a)})),c=(0,f.F8)(u,l);s="number"===typeof t?t:"split"===t.type?this.getViewSize(t.index)/2:"invisible"===t.type?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize;var d,h=0===this.orientation?new L(a,e,s,c):new E(a,e,s,c);if(this.viewItems.splice(r,0,h),this.viewItems.length>1){var g={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},v=0===this.orientation?new _.g(this.sashContainer,{getHorizontalSashTop:function(e){return n.getSashPosition(e)},getHorizontalSashWidth:this.getSashOrthogonalSize},Object.assign(Object.assign({},g),{orientation:1})):new _.g(this.sashContainer,{getVerticalSashLeft:function(e){return n.getSashPosition(e)},getVerticalSashHeight:this.getSashOrthogonalSize},Object.assign(Object.assign({},g),{orientation:0})),y=0===this.orientation?function(e){return{sash:v,start:e.startY,current:e.currentY,alt:e.altKey}}:function(e){return{sash:v,start:e.startX,current:e.currentX,alt:e.altKey}},b=p.ju.map(v.onDidStart,y)(this.onSashStart,this),C=p.ju.map(v.onDidChange,y)(this.onSashChange,this),k=p.ju.map(v.onDidEnd,(function(){return n.sashItems.findIndex((function(e){return e.sash===v}))})),S=k(this.onSashEnd,this),x=v.onDidReset((function(){var e=n.sashItems.findIndex((function(e){return e.sash===v})),t=(0,m.w6)(e,-1),i=(0,m.w6)(e+1,n.viewItems.length),r=n.findFirstSnapIndex(t),o=n.findFirstSnapIndex(i);("number"!==typeof r||n.viewItems[r].visible)&&("number"!==typeof o||n.viewItems[o].visible)&&n._onDidSashReset.fire(e)})),N=(0,f.F8)(b,C,S,x,v),D={sash:v,disposable:N};this.sashItems.splice(r-1,0,D)}a.appendChild(e.element),"number"!==typeof t&&"split"===t.type&&(d=[t.index]),o||this.relayout([r],d),this.state=i.Idle,o||"number"===typeof t||"distribute"!==t.type||this.distributeViewSizes()}},{key:"relayout",value:function(e,t){var n=this.viewItems.reduce((function(e,t){return e+t.size}),0);this.resize(this.viewItems.length-1,this.size-n,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}},{key:"resize",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.viewItems.map((function(e){return e.size})),r=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Number.NEGATIVE_INFINITY,u=arguments.length>6&&void 0!==arguments[6]?arguments[6]:Number.POSITIVE_INFINITY,l=arguments.length>7?arguments[7]:void 0,c=arguments.length>8?arguments[8]:void 0;if(e<0||e>=this.viewItems.length)return 0;var d=(0,m.w6)(e,-1),h=(0,m.w6)(e+1,this.viewItems.length);if(o){var f,p=(0,a.Z)(o);try{for(p.s();!(f=p.n()).done;){var g=f.value;(0,m.zI)(d,g),(0,m.zI)(h,g)}}catch(V){p.e(V)}finally{p.f()}}if(r){var _,y=(0,a.Z)(r);try{for(y.s();!(_=y.n()).done;){var b=_.value;(0,m.al)(d,b),(0,m.al)(h,b)}}catch(V){y.e(V)}finally{y.f()}}var w=d.map((function(e){return n.viewItems[e]})),C=d.map((function(e){return i[e]})),k=h.map((function(e){return n.viewItems[e]})),S=h.map((function(e){return i[e]})),x=d.reduce((function(e,t){return e+(n.viewItems[t].minimumSize-i[t])}),0),L=d.reduce((function(e,t){return e+(n.viewItems[t].maximumSize-i[t])}),0),E=0===h.length?Number.POSITIVE_INFINITY:h.reduce((function(e,t){return e+(i[t]-n.viewItems[t].minimumSize)}),0),N=0===h.length?Number.NEGATIVE_INFINITY:h.reduce((function(e,t){return e+(i[t]-n.viewItems[t].maximumSize)}),0),D=Math.max(x,N,s),M=Math.min(E,L,u),T=!1;if(l){var O=this.viewItems[l.index],I=t>=l.limitDelta;T=I!==O.visible,O.setVisible(I,l.size)}if(!T&&c){var A=this.viewItems[c.index],R=t<c.limitDelta;T=R!==A.visible,A.setVisible(R,c.size)}if(T)return this.resize(e,t,i,r,o,s,u);for(var P=0,Z=t=(0,v.u)(t,D,M);P<w.length;P++){var F=w[P],j=(0,v.u)(C[P]+Z,F.minimumSize,F.maximumSize);Z-=j-C[P],F.size=j}for(var H=0,B=t;H<k.length;H++){var z=k[H],W=(0,v.u)(S[H]-B,z.minimumSize,z.maximumSize);B+=W-S[H],z.size=W}return t}},{key:"distributeEmptySpace",value:function(e){var t,n=this,i=this.viewItems.reduce((function(e,t){return e+t.size}),0),r=this.size-i,o=(0,m.w6)(this.viewItems.length-1,-1),s=o.filter((function(e){return 1===n.viewItems[e].priority})),u=o.filter((function(e){return 2===n.viewItems[e].priority})),l=(0,a.Z)(u);try{for(l.s();!(t=l.n()).done;){var c=t.value;(0,m.zI)(o,c)}}catch(y){l.e(y)}finally{l.f()}var d,h=(0,a.Z)(s);try{for(h.s();!(d=h.n()).done;){var f=d.value;(0,m.al)(o,f)}}catch(y){h.e(y)}finally{h.f()}"number"===typeof e&&(0,m.al)(o,e);for(var p=0;0!==r&&p<o.length;p++){var g=this.viewItems[o[p]],_=(0,v.u)(g.size+r,g.minimumSize,g.maximumSize);r-=_-g.size,g.size=_}}},{key:"layoutViews",value:function(){this.contentSize=this.viewItems.reduce((function(e,t){return e+t.size}),0);var e,t=0,n=(0,a.Z)(this.viewItems);try{for(n.s();!(e=n.n()).done;){var i=e.value;i.layout(t,this.layoutContext),t+=i.size}}catch(r){n.e(r)}finally{n.f()}this.sashItems.forEach((function(e){return e.sash.layout()})),this.updateSashEnablement(),this.updateScrollableElement()}},{key:"updateScrollableElement",value:function(){0===this.orientation?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this.contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this.contentSize})}},{key:"updateSashEnablement",value:function(){var e=!1,t=this.viewItems.map((function(t){return e=t.size-t.minimumSize>0||e}));e=!1;var n=this.viewItems.map((function(t){return e=t.maximumSize-t.size>0||e})),i=(0,o.Z)(this.viewItems).reverse();e=!1;var r=i.map((function(t){return e=t.size-t.minimumSize>0||e})).reverse();e=!1;for(var a=i.map((function(t){return e=t.maximumSize-t.size>0||e})).reverse(),s=0,u=0;u<this.sashItems.length;u++){var l=this.sashItems[u].sash;s+=this.viewItems[u].size;var c=!(t[u]&&a[u+1]),d=!(n[u]&&r[u+1]);if(c&&d){var h=(0,m.w6)(u,-1),f=(0,m.w6)(u+1,this.viewItems.length),p=this.findFirstSnapIndex(h),g=this.findFirstSnapIndex(f),v="number"===typeof p&&!this.viewItems[p].visible,_="number"===typeof g&&!this.viewItems[g].visible;v&&r[u]&&(s>0||this.startSnappingEnabled)?l.state=1:_&&t[u]&&(s<this.contentSize||this.endSnappingEnabled)?l.state=2:l.state=0}else l.state=c&&!d?1:!c&&d?2:3}}},{key:"getSashPosition",value:function(e){for(var t=0,n=0;n<this.sashItems.length;n++)if(t+=this.viewItems[n].size,this.sashItems[n].sash===e)return t;return 0}},{key:"findFirstSnapIndex",value:function(e){var t,n=(0,a.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=this.viewItems[i];if(r.visible&&r.snap)return i}}catch(c){n.e(c)}finally{n.f()}var o,s=(0,a.Z)(e);try{for(s.s();!(o=s.n()).done;){var u=o.value,l=this.viewItems[u];if(l.visible&&l.maximumSize-l.minimumSize>0)return;if(!l.visible&&l.snap)return u}}catch(c){s.e(c)}finally{s.f()}}},{key:"dispose",value:function(){(0,s.Z)((0,u.Z)(n.prototype),"dispose",this).call(this),this.viewItems.forEach((function(e){return e.dispose()})),this.viewItems=[],this.sashItems.forEach((function(e){return e.disposable.dispose()})),this.sashItems=[]}}]),n}(f.JT)},43257:function(e,t,n){"use strict";n.d(t,{$:function(){return h}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(84540),u=n(31737),l=n(55076),c=n(81626),d=n(25044),h=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"onclick",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.CLICK,(function(e){return t(new l.n(e))})))}},{key:"onmousedown",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.MOUSE_DOWN,(function(e){return t(new l.n(e))})))}},{key:"onmouseover",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.MOUSE_OVER,(function(e){return t(new l.n(e))})))}},{key:"onnonbubblingmouseout",value:function(e,t){this._register(s.addDisposableNonBubblingMouseOutListener(e,(function(e){return t(new l.n(e))})))}},{key:"onkeydown",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.KEY_DOWN,(function(e){return t(new u.y(e))})))}},{key:"onkeyup",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.KEY_UP,(function(e){return t(new u.y(e))})))}},{key:"oninput",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.INPUT,t))}},{key:"onblur",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.BLUR,t))}},{key:"onfocus",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.FOCUS,t))}},{key:"ignoreGesture",value:function(e){d.o.ignoreTarget(e)}}]),n}(c.JT)},29077:function(e,t,n){"use strict";n.d(t,{Wi:function(){return p},Z0:function(){return g},aU:function(){return f},eZ:function(){return m},wY:function(){return v}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(87757),u=n.n(s),l=n(56345),c=n(81626),d=n(11732),h=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},f=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],u=arguments.length>4?arguments[4]:void 0;return(0,i.Z)(this,n),(r=t.call(this))._onDidChange=r._register(new d.Q5),r.onDidChange=r._onDidChange.event,r._enabled=!0,r._checked=!1,r._id=e,r._label=o,r._cssClass=a,r._enabled=s,r._actionCallback=u,r}return(0,r.Z)(n,[{key:"id",get:function(){return this._id}},{key:"label",get:function(){return this._label},set:function(e){this._setLabel(e)}},{key:"_setLabel",value:function(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}},{key:"tooltip",get:function(){return this._tooltip||""},set:function(e){this._setTooltip(e)}},{key:"_setTooltip",value:function(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}},{key:"class",get:function(){return this._cssClass},set:function(e){this._setClass(e)}},{key:"_setClass",value:function(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}},{key:"enabled",get:function(){return this._enabled},set:function(e){this._setEnabled(e)}},{key:"_setEnabled",value:function(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}},{key:"checked",get:function(){return this._checked},set:function(e){this._setChecked(e)}},{key:"_setChecked",value:function(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}},{key:"run",value:function(e,t){return h(this,void 0,void 0,u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._actionCallback){t.next=3;break}return t.next=3,this._actionCallback(e);case 3:case"end":return t.stop()}}),t,this)})))}}]),n}(c.JT),p=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments))._onBeforeRun=e._register(new d.Q5),e.onBeforeRun=e._onBeforeRun.event,e._onDidRun=e._register(new d.Q5),e.onDidRun=e._onDidRun.event,e}return(0,r.Z)(n,[{key:"run",value:function(e,t){return h(this,void 0,void 0,u().mark((function n(){var i;return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e.enabled){n.next=2;break}return n.abrupt("return");case 2:return this._onBeforeRun.fire({action:e}),i=void 0,n.prev=4,n.next=7,this.runAction(e,t);case 7:n.next=12;break;case 9:n.prev=9,n.t0=n.catch(4),i=n.t0;case 12:this._onDidRun.fire({action:e,error:i});case 13:case"end":return n.stop()}}),n,this,[[4,9]])})))}},{key:"runAction",value:function(e,t){return h(this,void 0,void 0,u().mark((function n(){return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,e.run(t);case 2:case"end":return n.stop()}}),n)})))}}]),n}(c.JT),g=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this,n.ID,e,e?"separator text":"separator")).checked=!1,r.enabled=!1,r}return(0,r.Z)(n)}(f);g.ID="vs.actions.separator";var v=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.tooltip="",this.enabled=!0,this.checked=!1,this.id=t,this.label=n,this.class=o,this._actions=r}return(0,r.Z)(e,[{key:"actions",get:function(){return this._actions}},{key:"dispose",value:function(){}},{key:"run",value:function(){return h(this,void 0,void 0,u().mark((function e(){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})))}}]),e}(),m=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,n.ID,l.N("submenu.empty","(empty)"),void 0,!1)}return(0,r.Z)(n)}(f);m.ID="vs.actions.empty"},49396:function(e,t,n){"use strict";n.d(t,{EB:function(){return g},Gb:function(){return o},HW:function(){return c},JH:function(){return a},Of:function(){return p},XY:function(){return f},Xh:function(){return m},Zv:function(){return b},_2:function(){return k},al:function(){return C},cU:function(){return v},fS:function(){return s},kX:function(){return h},lG:function(){return l},ry:function(){return u},vM:function(){return d},w6:function(){return y},xH:function(){return _},zI:function(){return w}});var i=n(93433),r=n(37762);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e[e.length-(1+t)]}function a(e){if(0===e.length)throw new Error("Invalid tail call");return[e.slice(0,e.length-1),e[e.length-1]]}function s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e,t){return e===t};if(e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(var i=0,r=e.length;i<r;i++)if(!n(e[i],t[i]))return!1;return!0}function u(e,t,n){for(var i=0,r=e.length-1;i<=r;){var o=(i+r)/2|0,a=n(e[o],t);if(a<0)i=o+1;else{if(!(a>0))return o;r=o-1}}return-(i+1)}function l(e,t){var n=0,i=e.length;if(0===i)return 0;for(;n<i;){var r=Math.floor((n+i)/2);t(e[r])?i=r:n=r+1}return n}function c(e,t,n){if((e|=0)>=t.length)throw new TypeError("invalid index");var i,o=t[Math.floor(t.length*Math.random())],a=[],s=[],u=[],l=(0,r.Z)(t);try{for(l.s();!(i=l.n()).done;){var d=i.value,h=n(d,o);h<0?a.push(d):h>0?s.push(d):u.push(d)}}catch(f){l.e(f)}finally{l.f()}return e<a.length?c(e,a,n):e<a.length+u.length?u[0]:c(e-(a.length+u.length),s,n)}function d(e,t){var n,i=[],o=void 0,a=(0,r.Z)(e.slice(0).sort(t));try{for(a.s();!(n=a.n()).done;){var s=n.value;o&&0===t(o[0],s)?o.push(s):(o=[s],i.push(o))}}catch(u){a.e(u)}finally{a.f()}return i}function h(e){return e.filter((function(e){return!!e}))}function f(e){return!Array.isArray(e)||0===e.length}function p(e){return Array.isArray(e)&&e.length>0}function g(e,t){if(!t)return e.filter((function(t,n){return e.indexOf(t)===n}));var n=Object.create(null);return e.filter((function(e){var i=t(e);return!n[i]&&(n[i]=!0,!0)}))}function v(e){var t=new Set;return e.filter((function(e){return!t.has(e)&&(t.add(e),!0)}))}function m(e,t){return e.length>0?e[0]:t}function _(e){var t;return(t=[]).concat.apply(t,(0,i.Z)(e))}function y(e,t){var n="number"===typeof t?e:0;"number"===typeof t?n=e:(n=0,t=e);var i=[];if(n<=t)for(var r=n;r<t;r++)i.push(r);else for(var o=n;o>t;o--)i.push(o);return i}function b(e,t,n){var i=e.slice(0,t),r=e.slice(t);return i.concat(n,r)}function w(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.unshift(t))}function C(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))}function k(e){return Array.isArray(e)?e:[e]}},96147:function(e,t,n){"use strict";function i(e,t){if(!e)throw new Error(t?"Assertion failed (".concat(t,")"):"Assertion Failed")}n.d(t,{ok:function(){return i}})},27997:function(e,t,n){"use strict";n.d(t,{J8:function(){return d},PG:function(){return h},Ps:function(){return y},To:function(){return b},Ue:function(){return x},Vg:function(){return _},Vs:function(){return m},_F:function(){return w},eP:function(){return f},jT:function(){return S},pY:function(){return k},rH:function(){return v},vp:function(){return g},zh:function(){return C}});var i=n(15671),r=n(43144),o=n(87757),a=n.n(o),s=n(66526),u=n(8729),l=n(81626),c=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function d(e){return!!e&&"function"===typeof e.then}function h(e){var t=new s.A,n=e(t.token),o=new Promise((function(e,i){t.token.onCancellationRequested((function(){i((0,u.F0)())})),Promise.resolve(n).then((function(n){t.dispose(),e(n)}),(function(e){t.dispose(),i(e)}))}));return new(function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"cancel",value:function(){t.cancel()}},{key:"then",value:function(e,t){return o.then(e,t)}},{key:"catch",value:function(e){return this.then(void 0,e)}},{key:"finally",value:function(e){return o.finally(e)}}]),e}())}function f(e,t,n){return Promise.race([e,new Promise((function(e){return t.onCancellationRequested((function(){return e(n)}))}))])}var p=function(){function e(){(0,i.Z)(this,e),this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}return(0,r.Z)(e,[{key:"queue",value:function(e){var t=this;if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){var n=function(){t.queuedPromise=null;var e=t.queue(t.queuedPromiseFactory);return t.queuedPromiseFactory=null,e};this.queuedPromise=new Promise((function(e){t.activePromise.then(n,n).then(e)}))}return new Promise((function(e,n){t.queuedPromise.then(e,n)}))}return this.activePromise=e(),new Promise((function(e,n){t.activePromise.then((function(n){t.activePromise=null,e(n)}),(function(e){t.activePromise=null,n(e)}))}))}}]),e}(),g=function(){function e(t){(0,i.Z)(this,e),this.defaultDelay=t,this.timeout=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}return(0,r.Z)(e,[{key:"trigger",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.defaultDelay;return this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((function(e,n){t.doResolve=e,t.doReject=n})).then((function(){if(t.completionPromise=null,t.doResolve=null,t.task){var e=t.task;return t.task=null,e()}}))),this.timeout=setTimeout((function(){t.timeout=null,t.doResolve&&t.doResolve(null)}),n),this.completionPromise}},{key:"isTriggered",value:function(){return null!==this.timeout}},{key:"cancel",value:function(){this.cancelTimeout(),this.completionPromise&&(this.doReject&&this.doReject((0,u.F0)()),this.completionPromise=null)}},{key:"cancelTimeout",value:function(){null!==this.timeout&&(clearTimeout(this.timeout),this.timeout=null)}},{key:"dispose",value:function(){this.cancelTimeout()}}]),e}(),v=function(){function e(t){(0,i.Z)(this,e),this.delayer=new g(t),this.throttler=new p}return(0,r.Z)(e,[{key:"trigger",value:function(e,t){var n=this;return this.delayer.trigger((function(){return n.throttler.queue(e)}),t)}},{key:"cancel",value:function(){this.delayer.cancel()}},{key:"dispose",value:function(){this.delayer.dispose()}}]),e}();function m(e,t){return t?new Promise((function(n,i){var r=setTimeout(n,e);t.onCancellationRequested((function(){clearTimeout(r),i((0,u.F0)())}))})):h((function(t){return m(e,t)}))}function _(e){var t=setTimeout(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0);return(0,l.OF)((function(){return clearTimeout(t)}))}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return!!e},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=0,r=e.length;return function o(){if(i>=r)return Promise.resolve(n);var a=e[i++];return Promise.resolve(a()).then((function(e){return t(e)?Promise.resolve(e):o()}))}()}var b,w=function(){function e(t,n){(0,i.Z)(this,e),this._token=-1,"function"===typeof t&&"number"===typeof n&&this.setIfNotSet(t,n)}return(0,r.Z)(e,[{key:"dispose",value:function(){this.cancel()}},{key:"cancel",value:function(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)}},{key:"cancelAndSet",value:function(e,t){var n=this;this.cancel(),this._token=setTimeout((function(){n._token=-1,e()}),t)}},{key:"setIfNotSet",value:function(e,t){var n=this;-1===this._token&&(this._token=setTimeout((function(){n._token=-1,e()}),t))}}]),e}(),C=function(){function e(){(0,i.Z)(this,e),this._token=-1}return(0,r.Z)(e,[{key:"dispose",value:function(){this.cancel()}},{key:"cancel",value:function(){-1!==this._token&&(clearInterval(this._token),this._token=-1)}},{key:"cancelAndSet",value:function(e,t){this.cancel(),this._token=setInterval((function(){e()}),t)}}]),e}(),k=function(){function e(t,n){(0,i.Z)(this,e),this.timeoutToken=-1,this.runner=t,this.timeout=n,this.timeoutHandler=this.onTimeout.bind(this)}return(0,r.Z)(e,[{key:"dispose",value:function(){this.cancel(),this.runner=null}},{key:"cancel",value:function(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}},{key:"schedule",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.timeout;this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}},{key:"delay",get:function(){return this.timeout},set:function(e){this.timeout=e}},{key:"isScheduled",value:function(){return-1!==this.timeoutToken}},{key:"onTimeout",value:function(){this.timeoutToken=-1,this.runner&&this.doRun()}},{key:"doRun",value:function(){this.runner&&this.runner()}}]),e}();!function(){if("function"!==typeof requestIdleCallback||"function"!==typeof cancelIdleCallback){var e=Object.freeze({didTimeout:!0,timeRemaining:function(){return 15}});b=function(t){var n=setTimeout((function(){return t(e)})),i=!1;return{dispose:function(){i||(i=!0,clearTimeout(n))}}}}else b=function(e,t){var n=requestIdleCallback(e,"number"===typeof t?{timeout:t}:void 0),i=!1;return{dispose:function(){i||(i=!0,cancelIdleCallback(n))}}}}();var S,x=function(){function e(t){var n=this;(0,i.Z)(this,e),this._didRun=!1,this._executor=function(){try{n._value=t()}catch(e){n._error=e}finally{n._didRun=!0}},this._handle=b((function(){return n._executor()}))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._handle.dispose()}},{key:"value",get:function(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}}]),e}();!function(e){function t(e){return c(this,void 0,void 0,a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",Promise.allSettled(e));case 1:case"end":return t.stop()}}),t)})))}function n(e){return c(this,void 0,void 0,a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",Promise.all(e.map((function(e){return e.then((function(e){return{status:"fulfilled",value:e}}),(function(e){return{status:"rejected",reason:e}}))}))));case 1:case"end":return t.stop()}}),t)})))}e.allSettled=function(e){return c(this,void 0,void 0,a().mark((function i(){return a().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if("function"!==typeof Promise.allSettled){i.next=2;break}return i.abrupt("return",t(e));case 2:return i.abrupt("return",n(e));case 3:case"end":return i.stop()}}),i)})))},e.settled=function(e){return c(this,void 0,void 0,a().mark((function t(){var n,i;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=void 0,t.next=3,Promise.all(e.map((function(e){return e.then((function(e){return e}),(function(e){n||(n=e)}))})));case 3:if(i=t.sent,"undefined"===typeof n){t.next=6;break}throw n;case 6:return t.abrupt("return",i);case 7:case"end":return t.stop()}}),t)})))}}(S||(S={}))},27877:function(e,t,n){"use strict";n.d(t,{Ag:function(){return h},Cg:function(){return g},KN:function(){return l},Q$:function(){return p},T4:function(){return f},mP:function(){return c},oq:function(){return d}});var i,r=n(15671),o=n(43144),a=n(51747),s="undefined"!==typeof Buffer,u="undefined"!==typeof TextDecoder,l=function(){function e(t){(0,r.Z)(this,e),this.buffer=t,this.byteLength=this.buffer.byteLength}return(0,o.Z)(e,[{key:"toString",value:function(){return s?this.buffer.toString():u?(i||(i=new TextDecoder),i.decode(this.buffer)):a.CZ(this.buffer)}}],[{key:"wrap",value:function(t){return s&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new e(t)}}]),e}();function c(e,t){return e[t+0]<<0>>>0|e[t+1]<<8>>>0}function d(e,t,n){e[n+0]=255&t,t>>>=8,e[n+1]=255&t}function h(e,t){return e[t]*Math.pow(2,24)+e[t+1]*Math.pow(2,16)+e[t+2]*Math.pow(2,8)+e[t+3]}function f(e,t,n){e[n+3]=t,t>>>=8,e[n+2]=t,t>>>=8,e[n+1]=t,t>>>=8,e[n]=t}function p(e,t){return e[t]}function g(e,t,n){e[n]=t}},66526:function(e,t,n){"use strict";n.d(t,{A:function(){return l},T:function(){return i}});var i,r=n(15671),o=n(43144),a=n(11732),s=Object.freeze((function(e,t){var n=setTimeout(e.bind(t),0);return{dispose:function(){clearTimeout(n)}}}));!function(e){e.isCancellationToken=function(t){return t===e.None||t===e.Cancelled||(t instanceof u||!(!t||"object"!==typeof t)&&("boolean"===typeof t.isCancellationRequested&&"function"===typeof t.onCancellationRequested))},e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:a.ju.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:s})}(i||(i={}));var u=function(){function e(){(0,r.Z)(this,e),this._isCancelled=!1,this._emitter=null}return(0,o.Z)(e,[{key:"cancel",value:function(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}},{key:"isCancellationRequested",get:function(){return this._isCancelled}},{key:"onCancellationRequested",get:function(){return this._isCancelled?s:(this._emitter||(this._emitter=new a.Q5),this._emitter.event)}},{key:"dispose",value:function(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}]),e}(),l=function(){function e(t){(0,r.Z)(this,e),this._token=void 0,this._parentListener=void 0,this._parentListener=t&&t.onCancellationRequested(this.cancel,this)}return(0,o.Z)(e,[{key:"token",get:function(){return this._token||(this._token=new u),this._token}},{key:"cancel",value:function(){this._token?this._token instanceof u&&this._token.cancel():this._token=i.Cancelled}},{key:"dispose",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof u&&this._token.dispose():this._token=i.None}}]),e}()},4354:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},JL:function(){return c},dT:function(){return d},fK:function(){return u},lA:function(){return h}});var i=n(29439),r=n(15671),o=n(43144),a=n(11732),s=new(function(){function e(){(0,r.Z)(this,e),this._icons=new Map,this._onDidRegister=new a.Q5}return(0,o.Z)(e,[{key:"add",value:function(e){var t=this._icons.get(e.id);t?e.description?t.description=e.description:console.error("Duplicate registration of codicon ".concat(e.id)):(this._icons.set(e.id,e),this._onDidRegister.fire(e))}},{key:"get",value:function(e){return this._icons.get(e)}},{key:"all",get:function(){return this._icons.values()}},{key:"onDidRegister",get:function(){return this._onDidRegister.event}}]),e}()),u=s;function l(e,t){return new h(e,t)}function c(e){return e?e.replace(/\$\((.*?)\)/g,(function(e,t){return" ".concat(t," ")})).trim():""}var d,h=function(){function e(t,n,i){(0,r.Z)(this,e),this.id=t,this.definition=n,this.description=i,s.add(this)}return(0,o.Z)(e,[{key:"classNames",get:function(){return"codicon codicon-"+this.id}},{key:"classNamesArray",get:function(){return["codicon","codicon-"+this.id]}},{key:"cssSelector",get:function(){return".codicon.codicon-"+this.id}}]),e}();!function(e){e.iconNameSegment="[A-Za-z0-9]+",e.iconNameExpression="[A-Za-z0-9\\-]+",e.iconModifierExpression="~[A-Za-z]+";var t=new RegExp("^(".concat(e.iconNameExpression,")(").concat(e.iconModifierExpression,")?$"));function n(e){if(e instanceof h)return["codicon","codicon-"+e.id];var r=t.exec(e.id);if(!r)return n(h.error);var o=(0,i.Z)(r,3),a=o[1],s=o[2],u=["codicon","codicon-"+a];return s&&u.push("codicon-modifier-"+s.substr(1)),u}e.asClassNameArray=n,e.asClassName=function(e){return n(e).join(" ")},e.asCSSSelector=function(e){return"."+n(e).join(".")}}(d||(d={})),function(e){e.add=new e("add",{fontCharacter:"\\ea60"}),e.plus=new e("plus",{fontCharacter:"\\ea60"}),e.gistNew=new e("gist-new",{fontCharacter:"\\ea60"}),e.repoCreate=new e("repo-create",{fontCharacter:"\\ea60"}),e.lightbulb=new e("lightbulb",{fontCharacter:"\\ea61"}),e.lightBulb=new e("light-bulb",{fontCharacter:"\\ea61"}),e.repo=new e("repo",{fontCharacter:"\\ea62"}),e.repoDelete=new e("repo-delete",{fontCharacter:"\\ea62"}),e.gistFork=new e("gist-fork",{fontCharacter:"\\ea63"}),e.repoForked=new e("repo-forked",{fontCharacter:"\\ea63"}),e.gitPullRequest=new e("git-pull-request",{fontCharacter:"\\ea64"}),e.gitPullRequestAbandoned=new e("git-pull-request-abandoned",{fontCharacter:"\\ea64"}),e.recordKeys=new e("record-keys",{fontCharacter:"\\ea65"}),e.keyboard=new e("keyboard",{fontCharacter:"\\ea65"}),e.tag=new e("tag",{fontCharacter:"\\ea66"}),e.tagAdd=new e("tag-add",{fontCharacter:"\\ea66"}),e.tagRemove=new e("tag-remove",{fontCharacter:"\\ea66"}),e.person=new e("person",{fontCharacter:"\\ea67"}),e.personFollow=new e("person-follow",{fontCharacter:"\\ea67"}),e.personOutline=new e("person-outline",{fontCharacter:"\\ea67"}),e.personFilled=new e("person-filled",{fontCharacter:"\\ea67"}),e.gitBranch=new e("git-branch",{fontCharacter:"\\ea68"}),e.gitBranchCreate=new e("git-branch-create",{fontCharacter:"\\ea68"}),e.gitBranchDelete=new e("git-branch-delete",{fontCharacter:"\\ea68"}),e.sourceControl=new e("source-control",{fontCharacter:"\\ea68"}),e.mirror=new e("mirror",{fontCharacter:"\\ea69"}),e.mirrorPublic=new e("mirror-public",{fontCharacter:"\\ea69"}),e.star=new e("star",{fontCharacter:"\\ea6a"}),e.starAdd=new e("star-add",{fontCharacter:"\\ea6a"}),e.starDelete=new e("star-delete",{fontCharacter:"\\ea6a"}),e.starEmpty=new e("star-empty",{fontCharacter:"\\ea6a"}),e.comment=new e("comment",{fontCharacter:"\\ea6b"}),e.commentAdd=new e("comment-add",{fontCharacter:"\\ea6b"}),e.alert=new e("alert",{fontCharacter:"\\ea6c"}),e.warning=new e("warning",{fontCharacter:"\\ea6c"}),e.search=new e("search",{fontCharacter:"\\ea6d"}),e.searchSave=new e("search-save",{fontCharacter:"\\ea6d"}),e.logOut=new e("log-out",{fontCharacter:"\\ea6e"}),e.signOut=new e("sign-out",{fontCharacter:"\\ea6e"}),e.logIn=new e("log-in",{fontCharacter:"\\ea6f"}),e.signIn=new e("sign-in",{fontCharacter:"\\ea6f"}),e.eye=new e("eye",{fontCharacter:"\\ea70"}),e.eyeUnwatch=new e("eye-unwatch",{fontCharacter:"\\ea70"}),e.eyeWatch=new e("eye-watch",{fontCharacter:"\\ea70"}),e.circleFilled=new e("circle-filled",{fontCharacter:"\\ea71"}),e.primitiveDot=new e("primitive-dot",{fontCharacter:"\\ea71"}),e.closeDirty=new e("close-dirty",{fontCharacter:"\\ea71"}),e.debugBreakpoint=new e("debug-breakpoint",{fontCharacter:"\\ea71"}),e.debugBreakpointDisabled=new e("debug-breakpoint-disabled",{fontCharacter:"\\ea71"}),e.debugHint=new e("debug-hint",{fontCharacter:"\\ea71"}),e.primitiveSquare=new e("primitive-square",{fontCharacter:"\\ea72"}),e.edit=new e("edit",{fontCharacter:"\\ea73"}),e.pencil=new e("pencil",{fontCharacter:"\\ea73"}),e.info=new e("info",{fontCharacter:"\\ea74"}),e.issueOpened=new e("issue-opened",{fontCharacter:"\\ea74"}),e.gistPrivate=new e("gist-private",{fontCharacter:"\\ea75"}),e.gitForkPrivate=new e("git-fork-private",{fontCharacter:"\\ea75"}),e.lock=new e("lock",{fontCharacter:"\\ea75"}),e.mirrorPrivate=new e("mirror-private",{fontCharacter:"\\ea75"}),e.close=new e("close",{fontCharacter:"\\ea76"}),e.removeClose=new e("remove-close",{fontCharacter:"\\ea76"}),e.x=new e("x",{fontCharacter:"\\ea76"}),e.repoSync=new e("repo-sync",{fontCharacter:"\\ea77"}),e.sync=new e("sync",{fontCharacter:"\\ea77"}),e.clone=new e("clone",{fontCharacter:"\\ea78"}),e.desktopDownload=new e("desktop-download",{fontCharacter:"\\ea78"}),e.beaker=new e("beaker",{fontCharacter:"\\ea79"}),e.microscope=new e("microscope",{fontCharacter:"\\ea79"}),e.vm=new e("vm",{fontCharacter:"\\ea7a"}),e.deviceDesktop=new e("device-desktop",{fontCharacter:"\\ea7a"}),e.file=new e("file",{fontCharacter:"\\ea7b"}),e.fileText=new e("file-text",{fontCharacter:"\\ea7b"}),e.more=new e("more",{fontCharacter:"\\ea7c"}),e.ellipsis=new e("ellipsis",{fontCharacter:"\\ea7c"}),e.kebabHorizontal=new e("kebab-horizontal",{fontCharacter:"\\ea7c"}),e.mailReply=new e("mail-reply",{fontCharacter:"\\ea7d"}),e.reply=new e("reply",{fontCharacter:"\\ea7d"}),e.organization=new e("organization",{fontCharacter:"\\ea7e"}),e.organizationFilled=new e("organization-filled",{fontCharacter:"\\ea7e"}),e.organizationOutline=new e("organization-outline",{fontCharacter:"\\ea7e"}),e.newFile=new e("new-file",{fontCharacter:"\\ea7f"}),e.fileAdd=new e("file-add",{fontCharacter:"\\ea7f"}),e.newFolder=new e("new-folder",{fontCharacter:"\\ea80"}),e.fileDirectoryCreate=new e("file-directory-create",{fontCharacter:"\\ea80"}),e.trash=new e("trash",{fontCharacter:"\\ea81"}),e.trashcan=new e("trashcan",{fontCharacter:"\\ea81"}),e.history=new e("history",{fontCharacter:"\\ea82"}),e.clock=new e("clock",{fontCharacter:"\\ea82"}),e.folder=new e("folder",{fontCharacter:"\\ea83"}),e.fileDirectory=new e("file-directory",{fontCharacter:"\\ea83"}),e.symbolFolder=new e("symbol-folder",{fontCharacter:"\\ea83"}),e.logoGithub=new e("logo-github",{fontCharacter:"\\ea84"}),e.markGithub=new e("mark-github",{fontCharacter:"\\ea84"}),e.github=new e("github",{fontCharacter:"\\ea84"}),e.terminal=new e("terminal",{fontCharacter:"\\ea85"}),e.console=new e("console",{fontCharacter:"\\ea85"}),e.repl=new e("repl",{fontCharacter:"\\ea85"}),e.zap=new e("zap",{fontCharacter:"\\ea86"}),e.symbolEvent=new e("symbol-event",{fontCharacter:"\\ea86"}),e.error=new e("error",{fontCharacter:"\\ea87"}),e.stop=new e("stop",{fontCharacter:"\\ea87"}),e.variable=new e("variable",{fontCharacter:"\\ea88"}),e.symbolVariable=new e("symbol-variable",{fontCharacter:"\\ea88"}),e.array=new e("array",{fontCharacter:"\\ea8a"}),e.symbolArray=new e("symbol-array",{fontCharacter:"\\ea8a"}),e.symbolModule=new e("symbol-module",{fontCharacter:"\\ea8b"}),e.symbolPackage=new e("symbol-package",{fontCharacter:"\\ea8b"}),e.symbolNamespace=new e("symbol-namespace",{fontCharacter:"\\ea8b"}),e.symbolObject=new e("symbol-object",{fontCharacter:"\\ea8b"}),e.symbolMethod=new e("symbol-method",{fontCharacter:"\\ea8c"}),e.symbolFunction=new e("symbol-function",{fontCharacter:"\\ea8c"}),e.symbolConstructor=new e("symbol-constructor",{fontCharacter:"\\ea8c"}),e.symbolBoolean=new e("symbol-boolean",{fontCharacter:"\\ea8f"}),e.symbolNull=new e("symbol-null",{fontCharacter:"\\ea8f"}),e.symbolNumeric=new e("symbol-numeric",{fontCharacter:"\\ea90"}),e.symbolNumber=new e("symbol-number",{fontCharacter:"\\ea90"}),e.symbolStructure=new e("symbol-structure",{fontCharacter:"\\ea91"}),e.symbolStruct=new e("symbol-struct",{fontCharacter:"\\ea91"}),e.symbolParameter=new e("symbol-parameter",{fontCharacter:"\\ea92"}),e.symbolTypeParameter=new e("symbol-type-parameter",{fontCharacter:"\\ea92"}),e.symbolKey=new e("symbol-key",{fontCharacter:"\\ea93"}),e.symbolText=new e("symbol-text",{fontCharacter:"\\ea93"}),e.symbolReference=new e("symbol-reference",{fontCharacter:"\\ea94"}),e.goToFile=new e("go-to-file",{fontCharacter:"\\ea94"}),e.symbolEnum=new e("symbol-enum",{fontCharacter:"\\ea95"}),e.symbolValue=new e("symbol-value",{fontCharacter:"\\ea95"}),e.symbolRuler=new e("symbol-ruler",{fontCharacter:"\\ea96"}),e.symbolUnit=new e("symbol-unit",{fontCharacter:"\\ea96"}),e.activateBreakpoints=new e("activate-breakpoints",{fontCharacter:"\\ea97"}),e.archive=new e("archive",{fontCharacter:"\\ea98"}),e.arrowBoth=new e("arrow-both",{fontCharacter:"\\ea99"}),e.arrowDown=new e("arrow-down",{fontCharacter:"\\ea9a"}),e.arrowLeft=new e("arrow-left",{fontCharacter:"\\ea9b"}),e.arrowRight=new e("arrow-right",{fontCharacter:"\\ea9c"}),e.arrowSmallDown=new e("arrow-small-down",{fontCharacter:"\\ea9d"}),e.arrowSmallLeft=new e("arrow-small-left",{fontCharacter:"\\ea9e"}),e.arrowSmallRight=new e("arrow-small-right",{fontCharacter:"\\ea9f"}),e.arrowSmallUp=new e("arrow-small-up",{fontCharacter:"\\eaa0"}),e.arrowUp=new e("arrow-up",{fontCharacter:"\\eaa1"}),e.bell=new e("bell",{fontCharacter:"\\eaa2"}),e.bold=new e("bold",{fontCharacter:"\\eaa3"}),e.book=new e("book",{fontCharacter:"\\eaa4"}),e.bookmark=new e("bookmark",{fontCharacter:"\\eaa5"}),e.debugBreakpointConditionalUnverified=new e("debug-breakpoint-conditional-unverified",{fontCharacter:"\\eaa6"}),e.debugBreakpointConditional=new e("debug-breakpoint-conditional",{fontCharacter:"\\eaa7"}),e.debugBreakpointConditionalDisabled=new e("debug-breakpoint-conditional-disabled",{fontCharacter:"\\eaa7"}),e.debugBreakpointDataUnverified=new e("debug-breakpoint-data-unverified",{fontCharacter:"\\eaa8"}),e.debugBreakpointData=new e("debug-breakpoint-data",{fontCharacter:"\\eaa9"}),e.debugBreakpointDataDisabled=new e("debug-breakpoint-data-disabled",{fontCharacter:"\\eaa9"}),e.debugBreakpointLogUnverified=new e("debug-breakpoint-log-unverified",{fontCharacter:"\\eaaa"}),e.debugBreakpointLog=new e("debug-breakpoint-log",{fontCharacter:"\\eaab"}),e.debugBreakpointLogDisabled=new e("debug-breakpoint-log-disabled",{fontCharacter:"\\eaab"}),e.briefcase=new e("briefcase",{fontCharacter:"\\eaac"}),e.broadcast=new e("broadcast",{fontCharacter:"\\eaad"}),e.browser=new e("browser",{fontCharacter:"\\eaae"}),e.bug=new e("bug",{fontCharacter:"\\eaaf"}),e.calendar=new e("calendar",{fontCharacter:"\\eab0"}),e.caseSensitive=new e("case-sensitive",{fontCharacter:"\\eab1"}),e.check=new e("check",{fontCharacter:"\\eab2"}),e.checklist=new e("checklist",{fontCharacter:"\\eab3"}),e.chevronDown=new e("chevron-down",{fontCharacter:"\\eab4"}),e.chevronLeft=new e("chevron-left",{fontCharacter:"\\eab5"}),e.chevronRight=new e("chevron-right",{fontCharacter:"\\eab6"}),e.chevronUp=new e("chevron-up",{fontCharacter:"\\eab7"}),e.chromeClose=new e("chrome-close",{fontCharacter:"\\eab8"}),e.chromeMaximize=new e("chrome-maximize",{fontCharacter:"\\eab9"}),e.chromeMinimize=new e("chrome-minimize",{fontCharacter:"\\eaba"}),e.chromeRestore=new e("chrome-restore",{fontCharacter:"\\eabb"}),e.circleOutline=new e("circle-outline",{fontCharacter:"\\eabc"}),e.debugBreakpointUnverified=new e("debug-breakpoint-unverified",{fontCharacter:"\\eabc"}),e.circleSlash=new e("circle-slash",{fontCharacter:"\\eabd"}),e.circuitBoard=new e("circuit-board",{fontCharacter:"\\eabe"}),e.clearAll=new e("clear-all",{fontCharacter:"\\eabf"}),e.clippy=new e("clippy",{fontCharacter:"\\eac0"}),e.closeAll=new e("close-all",{fontCharacter:"\\eac1"}),e.cloudDownload=new e("cloud-download",{fontCharacter:"\\eac2"}),e.cloudUpload=new e("cloud-upload",{fontCharacter:"\\eac3"}),e.code=new e("code",{fontCharacter:"\\eac4"}),e.collapseAll=new e("collapse-all",{fontCharacter:"\\eac5"}),e.colorMode=new e("color-mode",{fontCharacter:"\\eac6"}),e.commentDiscussion=new e("comment-discussion",{fontCharacter:"\\eac7"}),e.compareChanges=new e("compare-changes",{fontCharacter:"\\eafd"}),e.creditCard=new e("credit-card",{fontCharacter:"\\eac9"}),e.dash=new e("dash",{fontCharacter:"\\eacc"}),e.dashboard=new e("dashboard",{fontCharacter:"\\eacd"}),e.database=new e("database",{fontCharacter:"\\eace"}),e.debugContinue=new e("debug-continue",{fontCharacter:"\\eacf"}),e.debugDisconnect=new e("debug-disconnect",{fontCharacter:"\\ead0"}),e.debugPause=new e("debug-pause",{fontCharacter:"\\ead1"}),e.debugRestart=new e("debug-restart",{fontCharacter:"\\ead2"}),e.debugStart=new e("debug-start",{fontCharacter:"\\ead3"}),e.debugStepInto=new e("debug-step-into",{fontCharacter:"\\ead4"}),e.debugStepOut=new e("debug-step-out",{fontCharacter:"\\ead5"}),e.debugStepOver=new e("debug-step-over",{fontCharacter:"\\ead6"}),e.debugStop=new e("debug-stop",{fontCharacter:"\\ead7"}),e.debug=new e("debug",{fontCharacter:"\\ead8"}),e.deviceCameraVideo=new e("device-camera-video",{fontCharacter:"\\ead9"}),e.deviceCamera=new e("device-camera",{fontCharacter:"\\eada"}),e.deviceMobile=new e("device-mobile",{fontCharacter:"\\eadb"}),e.diffAdded=new e("diff-added",{fontCharacter:"\\eadc"}),e.diffIgnored=new e("diff-ignored",{fontCharacter:"\\eadd"}),e.diffModified=new e("diff-modified",{fontCharacter:"\\eade"}),e.diffRemoved=new e("diff-removed",{fontCharacter:"\\eadf"}),e.diffRenamed=new e("diff-renamed",{fontCharacter:"\\eae0"}),e.diff=new e("diff",{fontCharacter:"\\eae1"}),e.discard=new e("discard",{fontCharacter:"\\eae2"}),e.editorLayout=new e("editor-layout",{fontCharacter:"\\eae3"}),e.emptyWindow=new e("empty-window",{fontCharacter:"\\eae4"}),e.exclude=new e("exclude",{fontCharacter:"\\eae5"}),e.extensions=new e("extensions",{fontCharacter:"\\eae6"}),e.eyeClosed=new e("eye-closed",{fontCharacter:"\\eae7"}),e.fileBinary=new e("file-binary",{fontCharacter:"\\eae8"}),e.fileCode=new e("file-code",{fontCharacter:"\\eae9"}),e.fileMedia=new e("file-media",{fontCharacter:"\\eaea"}),e.filePdf=new e("file-pdf",{fontCharacter:"\\eaeb"}),e.fileSubmodule=new e("file-submodule",{fontCharacter:"\\eaec"}),e.fileSymlinkDirectory=new e("file-symlink-directory",{fontCharacter:"\\eaed"}),e.fileSymlinkFile=new e("file-symlink-file",{fontCharacter:"\\eaee"}),e.fileZip=new e("file-zip",{fontCharacter:"\\eaef"}),e.files=new e("files",{fontCharacter:"\\eaf0"}),e.filter=new e("filter",{fontCharacter:"\\eaf1"}),e.flame=new e("flame",{fontCharacter:"\\eaf2"}),e.foldDown=new e("fold-down",{fontCharacter:"\\eaf3"}),e.foldUp=new e("fold-up",{fontCharacter:"\\eaf4"}),e.fold=new e("fold",{fontCharacter:"\\eaf5"}),e.folderActive=new e("folder-active",{fontCharacter:"\\eaf6"}),e.folderOpened=new e("folder-opened",{fontCharacter:"\\eaf7"}),e.gear=new e("gear",{fontCharacter:"\\eaf8"}),e.gift=new e("gift",{fontCharacter:"\\eaf9"}),e.gistSecret=new e("gist-secret",{fontCharacter:"\\eafa"}),e.gist=new e("gist",{fontCharacter:"\\eafb"}),e.gitCommit=new e("git-commit",{fontCharacter:"\\eafc"}),e.gitCompare=new e("git-compare",{fontCharacter:"\\eafd"}),e.gitMerge=new e("git-merge",{fontCharacter:"\\eafe"}),e.githubAction=new e("github-action",{fontCharacter:"\\eaff"}),e.githubAlt=new e("github-alt",{fontCharacter:"\\eb00"}),e.globe=new e("globe",{fontCharacter:"\\eb01"}),e.grabber=new e("grabber",{fontCharacter:"\\eb02"}),e.graph=new e("graph",{fontCharacter:"\\eb03"}),e.gripper=new e("gripper",{fontCharacter:"\\eb04"}),e.heart=new e("heart",{fontCharacter:"\\eb05"}),e.home=new e("home",{fontCharacter:"\\eb06"}),e.horizontalRule=new e("horizontal-rule",{fontCharacter:"\\eb07"}),e.hubot=new e("hubot",{fontCharacter:"\\eb08"}),e.inbox=new e("inbox",{fontCharacter:"\\eb09"}),e.issueClosed=new e("issue-closed",{fontCharacter:"\\eb0a"}),e.issueReopened=new e("issue-reopened",{fontCharacter:"\\eb0b"}),e.issues=new e("issues",{fontCharacter:"\\eb0c"}),e.italic=new e("italic",{fontCharacter:"\\eb0d"}),e.jersey=new e("jersey",{fontCharacter:"\\eb0e"}),e.json=new e("json",{fontCharacter:"\\eb0f"}),e.kebabVertical=new e("kebab-vertical",{fontCharacter:"\\eb10"}),e.key=new e("key",{fontCharacter:"\\eb11"}),e.law=new e("law",{fontCharacter:"\\eb12"}),e.lightbulbAutofix=new e("lightbulb-autofix",{fontCharacter:"\\eb13"}),e.linkExternal=new e("link-external",{fontCharacter:"\\eb14"}),e.link=new e("link",{fontCharacter:"\\eb15"}),e.listOrdered=new e("list-ordered",{fontCharacter:"\\eb16"}),e.listUnordered=new e("list-unordered",{fontCharacter:"\\eb17"}),e.liveShare=new e("live-share",{fontCharacter:"\\eb18"}),e.loading=new e("loading",{fontCharacter:"\\eb19"}),e.location=new e("location",{fontCharacter:"\\eb1a"}),e.mailRead=new e("mail-read",{fontCharacter:"\\eb1b"}),e.mail=new e("mail",{fontCharacter:"\\eb1c"}),e.markdown=new e("markdown",{fontCharacter:"\\eb1d"}),e.megaphone=new e("megaphone",{fontCharacter:"\\eb1e"}),e.mention=new e("mention",{fontCharacter:"\\eb1f"}),e.milestone=new e("milestone",{fontCharacter:"\\eb20"}),e.mortarBoard=new e("mortar-board",{fontCharacter:"\\eb21"}),e.move=new e("move",{fontCharacter:"\\eb22"}),e.multipleWindows=new e("multiple-windows",{fontCharacter:"\\eb23"}),e.mute=new e("mute",{fontCharacter:"\\eb24"}),e.noNewline=new e("no-newline",{fontCharacter:"\\eb25"}),e.note=new e("note",{fontCharacter:"\\eb26"}),e.octoface=new e("octoface",{fontCharacter:"\\eb27"}),e.openPreview=new e("open-preview",{fontCharacter:"\\eb28"}),e.package_=new e("package",{fontCharacter:"\\eb29"}),e.paintcan=new e("paintcan",{fontCharacter:"\\eb2a"}),e.pin=new e("pin",{fontCharacter:"\\eb2b"}),e.play=new e("play",{fontCharacter:"\\eb2c"}),e.run=new e("run",{fontCharacter:"\\eb2c"}),e.plug=new e("plug",{fontCharacter:"\\eb2d"}),e.preserveCase=new e("preserve-case",{fontCharacter:"\\eb2e"}),e.preview=new e("preview",{fontCharacter:"\\eb2f"}),e.project=new e("project",{fontCharacter:"\\eb30"}),e.pulse=new e("pulse",{fontCharacter:"\\eb31"}),e.question=new e("question",{fontCharacter:"\\eb32"}),e.quote=new e("quote",{fontCharacter:"\\eb33"}),e.radioTower=new e("radio-tower",{fontCharacter:"\\eb34"}),e.reactions=new e("reactions",{fontCharacter:"\\eb35"}),e.references=new e("references",{fontCharacter:"\\eb36"}),e.refresh=new e("refresh",{fontCharacter:"\\eb37"}),e.regex=new e("regex",{fontCharacter:"\\eb38"}),e.remoteExplorer=new e("remote-explorer",{fontCharacter:"\\eb39"}),e.remote=new e("remote",{fontCharacter:"\\eb3a"}),e.remove=new e("remove",{fontCharacter:"\\eb3b"}),e.replaceAll=new e("replace-all",{fontCharacter:"\\eb3c"}),e.replace=new e("replace",{fontCharacter:"\\eb3d"}),e.repoClone=new e("repo-clone",{fontCharacter:"\\eb3e"}),e.repoForcePush=new e("repo-force-push",{fontCharacter:"\\eb3f"}),e.repoPull=new e("repo-pull",{fontCharacter:"\\eb40"}),e.repoPush=new e("repo-push",{fontCharacter:"\\eb41"}),e.report=new e("report",{fontCharacter:"\\eb42"}),e.requestChanges=new e("request-changes",{fontCharacter:"\\eb43"}),e.rocket=new e("rocket",{fontCharacter:"\\eb44"}),e.rootFolderOpened=new e("root-folder-opened",{fontCharacter:"\\eb45"}),e.rootFolder=new e("root-folder",{fontCharacter:"\\eb46"}),e.rss=new e("rss",{fontCharacter:"\\eb47"}),e.ruby=new e("ruby",{fontCharacter:"\\eb48"}),e.saveAll=new e("save-all",{fontCharacter:"\\eb49"}),e.saveAs=new e("save-as",{fontCharacter:"\\eb4a"}),e.save=new e("save",{fontCharacter:"\\eb4b"}),e.screenFull=new e("screen-full",{fontCharacter:"\\eb4c"}),e.screenNormal=new e("screen-normal",{fontCharacter:"\\eb4d"}),e.searchStop=new e("search-stop",{fontCharacter:"\\eb4e"}),e.server=new e("server",{fontCharacter:"\\eb50"}),e.settingsGear=new e("settings-gear",{fontCharacter:"\\eb51"}),e.settings=new e("settings",{fontCharacter:"\\eb52"}),e.shield=new e("shield",{fontCharacter:"\\eb53"}),e.smiley=new e("smiley",{fontCharacter:"\\eb54"}),e.sortPrecedence=new e("sort-precedence",{fontCharacter:"\\eb55"}),e.splitHorizontal=new e("split-horizontal",{fontCharacter:"\\eb56"}),e.splitVertical=new e("split-vertical",{fontCharacter:"\\eb57"}),e.squirrel=new e("squirrel",{fontCharacter:"\\eb58"}),e.starFull=new e("star-full",{fontCharacter:"\\eb59"}),e.starHalf=new e("star-half",{fontCharacter:"\\eb5a"}),e.symbolClass=new e("symbol-class",{fontCharacter:"\\eb5b"}),e.symbolColor=new e("symbol-color",{fontCharacter:"\\eb5c"}),e.symbolConstant=new e("symbol-constant",{fontCharacter:"\\eb5d"}),e.symbolEnumMember=new e("symbol-enum-member",{fontCharacter:"\\eb5e"}),e.symbolField=new e("symbol-field",{fontCharacter:"\\eb5f"}),e.symbolFile=new e("symbol-file",{fontCharacter:"\\eb60"}),e.symbolInterface=new e("symbol-interface",{fontCharacter:"\\eb61"}),e.symbolKeyword=new e("symbol-keyword",{fontCharacter:"\\eb62"}),e.symbolMisc=new e("symbol-misc",{fontCharacter:"\\eb63"}),e.symbolOperator=new e("symbol-operator",{fontCharacter:"\\eb64"}),e.symbolProperty=new e("symbol-property",{fontCharacter:"\\eb65"}),e.wrench=new e("wrench",{fontCharacter:"\\eb65"}),e.wrenchSubaction=new e("wrench-subaction",{fontCharacter:"\\eb65"}),e.symbolSnippet=new e("symbol-snippet",{fontCharacter:"\\eb66"}),e.tasklist=new e("tasklist",{fontCharacter:"\\eb67"}),e.telescope=new e("telescope",{fontCharacter:"\\eb68"}),e.textSize=new e("text-size",{fontCharacter:"\\eb69"}),e.threeBars=new e("three-bars",{fontCharacter:"\\eb6a"}),e.thumbsdown=new e("thumbsdown",{fontCharacter:"\\eb6b"}),e.thumbsup=new e("thumbsup",{fontCharacter:"\\eb6c"}),e.tools=new e("tools",{fontCharacter:"\\eb6d"}),e.triangleDown=new e("triangle-down",{fontCharacter:"\\eb6e"}),e.triangleLeft=new e("triangle-left",{fontCharacter:"\\eb6f"}),e.triangleRight=new e("triangle-right",{fontCharacter:"\\eb70"}),e.triangleUp=new e("triangle-up",{fontCharacter:"\\eb71"}),e.twitter=new e("twitter",{fontCharacter:"\\eb72"}),e.unfold=new e("unfold",{fontCharacter:"\\eb73"}),e.unlock=new e("unlock",{fontCharacter:"\\eb74"}),e.unmute=new e("unmute",{fontCharacter:"\\eb75"}),e.unverified=new e("unverified",{fontCharacter:"\\eb76"}),e.verified=new e("verified",{fontCharacter:"\\eb77"}),e.versions=new e("versions",{fontCharacter:"\\eb78"}),e.vmActive=new e("vm-active",{fontCharacter:"\\eb79"}),e.vmOutline=new e("vm-outline",{fontCharacter:"\\eb7a"}),e.vmRunning=new e("vm-running",{fontCharacter:"\\eb7b"}),e.watch=new e("watch",{fontCharacter:"\\eb7c"}),e.whitespace=new e("whitespace",{fontCharacter:"\\eb7d"}),e.wholeWord=new e("whole-word",{fontCharacter:"\\eb7e"}),e.window=new e("window",{fontCharacter:"\\eb7f"}),e.wordWrap=new e("word-wrap",{fontCharacter:"\\eb80"}),e.zoomIn=new e("zoom-in",{fontCharacter:"\\eb81"}),e.zoomOut=new e("zoom-out",{fontCharacter:"\\eb82"}),e.listFilter=new e("list-filter",{fontCharacter:"\\eb83"}),e.listFlat=new e("list-flat",{fontCharacter:"\\eb84"}),e.listSelection=new e("list-selection",{fontCharacter:"\\eb85"}),e.selection=new e("selection",{fontCharacter:"\\eb85"}),e.listTree=new e("list-tree",{fontCharacter:"\\eb86"}),e.debugBreakpointFunctionUnverified=new e("debug-breakpoint-function-unverified",{fontCharacter:"\\eb87"}),e.debugBreakpointFunction=new e("debug-breakpoint-function",{fontCharacter:"\\eb88"}),e.debugBreakpointFunctionDisabled=new e("debug-breakpoint-function-disabled",{fontCharacter:"\\eb88"}),e.debugStackframeActive=new e("debug-stackframe-active",{fontCharacter:"\\eb89"}),e.debugStackframeDot=new e("debug-stackframe-dot",{fontCharacter:"\\eb8a"}),e.debugStackframe=new e("debug-stackframe",{fontCharacter:"\\eb8b"}),e.debugStackframeFocused=new e("debug-stackframe-focused",{fontCharacter:"\\eb8b"}),e.debugBreakpointUnsupported=new e("debug-breakpoint-unsupported",{fontCharacter:"\\eb8c"}),e.symbolString=new e("symbol-string",{fontCharacter:"\\eb8d"}),e.debugReverseContinue=new e("debug-reverse-continue",{fontCharacter:"\\eb8e"}),e.debugStepBack=new e("debug-step-back",{fontCharacter:"\\eb8f"}),e.debugRestartFrame=new e("debug-restart-frame",{fontCharacter:"\\eb90"}),e.callIncoming=new e("call-incoming",{fontCharacter:"\\eb92"}),e.callOutgoing=new e("call-outgoing",{fontCharacter:"\\eb93"}),e.menu=new e("menu",{fontCharacter:"\\eb94"}),e.expandAll=new e("expand-all",{fontCharacter:"\\eb95"}),e.feedback=new e("feedback",{fontCharacter:"\\eb96"}),e.groupByRefType=new e("group-by-ref-type",{fontCharacter:"\\eb97"}),e.ungroupByRefType=new e("ungroup-by-ref-type",{fontCharacter:"\\eb98"}),e.account=new e("account",{fontCharacter:"\\eb99"}),e.bellDot=new e("bell-dot",{fontCharacter:"\\eb9a"}),e.debugConsole=new e("debug-console",{fontCharacter:"\\eb9b"}),e.library=new e("library",{fontCharacter:"\\eb9c"}),e.output=new e("output",{fontCharacter:"\\eb9d"}),e.runAll=new e("run-all",{fontCharacter:"\\eb9e"}),e.syncIgnored=new e("sync-ignored",{fontCharacter:"\\eb9f"}),e.pinned=new e("pinned",{fontCharacter:"\\eba0"}),e.githubInverted=new e("github-inverted",{fontCharacter:"\\eba1"}),e.debugAlt=new e("debug-alt",{fontCharacter:"\\eb91"}),e.serverProcess=new e("server-process",{fontCharacter:"\\eba2"}),e.serverEnvironment=new e("server-environment",{fontCharacter:"\\eba3"}),e.pass=new e("pass",{fontCharacter:"\\eba4"}),e.stopCircle=new e("stop-circle",{fontCharacter:"\\eba5"}),e.playCircle=new e("play-circle",{fontCharacter:"\\eba6"}),e.record=new e("record",{fontCharacter:"\\eba7"}),e.debugAltSmall=new e("debug-alt-small",{fontCharacter:"\\eba8"}),e.vmConnect=new e("vm-connect",{fontCharacter:"\\eba9"}),e.cloud=new e("cloud",{fontCharacter:"\\ebaa"}),e.merge=new e("merge",{fontCharacter:"\\ebab"}),e.exportIcon=new e("export",{fontCharacter:"\\ebac"}),e.graphLeft=new e("graph-left",{fontCharacter:"\\ebad"}),e.magnet=new e("magnet",{fontCharacter:"\\ebae"}),e.notebook=new e("notebook",{fontCharacter:"\\ebaf"}),e.redo=new e("redo",{fontCharacter:"\\ebb0"}),e.checkAll=new e("check-all",{fontCharacter:"\\ebb1"}),e.pinnedDirty=new e("pinned-dirty",{fontCharacter:"\\ebb2"}),e.passFilled=new e("pass-filled",{fontCharacter:"\\ebb3"}),e.circleLargeFilled=new e("circle-large-filled",{fontCharacter:"\\ebb4"}),e.circleLargeOutline=new e("circle-large-outline",{fontCharacter:"\\ebb5"}),e.combine=new e("combine",{fontCharacter:"\\ebb6"}),e.gather=new e("gather",{fontCharacter:"\\ebb6"}),e.table=new e("table",{fontCharacter:"\\ebb7"}),e.variableGroup=new e("variable-group",{fontCharacter:"\\ebb8"}),e.typeHierarchy=new e("type-hierarchy",{fontCharacter:"\\ebb9"}),e.typeHierarchySub=new e("type-hierarchy-sub",{fontCharacter:"\\ebba"}),e.typeHierarchySuper=new e("type-hierarchy-super",{fontCharacter:"\\ebbb"}),e.gitPullRequestCreate=new e("git-pull-request-create",{fontCharacter:"\\ebbc"}),e.runAbove=new e("run-above",{fontCharacter:"\\ebbd"}),e.runBelow=new e("run-below",{fontCharacter:"\\ebbe"}),e.notebookTemplate=new e("notebook-template",{fontCharacter:"\\ebbf"}),e.debugRerun=new e("debug-rerun",{fontCharacter:"\\ebc0"}),e.workspaceTrusted=new e("workspace-trusted",{fontCharacter:"\\ebc1"}),e.workspaceUntrusted=new e("workspace-untrusted",{fontCharacter:"\\ebc2"}),e.workspaceUnspecified=new e("workspace-unspecified",{fontCharacter:"\\ebc3"}),e.terminalCmd=new e("terminal-cmd",{fontCharacter:"\\ebc4"}),e.terminalDebian=new e("terminal-debian",{fontCharacter:"\\ebc5"}),e.terminalLinux=new e("terminal-linux",{fontCharacter:"\\ebc6"}),e.terminalPowershell=new e("terminal-powershell",{fontCharacter:"\\ebc7"}),e.terminalTmux=new e("terminal-tmux",{fontCharacter:"\\ebc8"}),e.terminalUbuntu=new e("terminal-ubuntu",{fontCharacter:"\\ebc9"}),e.terminalBash=new e("terminal-bash",{fontCharacter:"\\ebca"}),e.arrowSwap=new e("arrow-swap",{fontCharacter:"\\ebcb"}),e.copy=new e("copy",{fontCharacter:"\\ebcc"}),e.personAdd=new e("person-add",{fontCharacter:"\\ebcd"}),e.filterFilled=new e("filter-filled",{fontCharacter:"\\ebce"}),e.wand=new e("wand",{fontCharacter:"\\ebcf"}),e.debugLineByLine=new e("debug-line-by-line",{fontCharacter:"\\ebd0"}),e.dropDownButton=new e("drop-down-button",e.chevronDown.definition)}(h||(h={}))},15723:function(e,t,n){"use strict";n.d(t,{E:function(){return a},r:function(){return s}});var i=n(15671),r=n(43144),o=Object.prototype.hasOwnProperty;function a(e,t){var n=function(n){if(o.call(e,n)&&!1===t({key:n,value:e[n]},(function(){delete e[n]})))return{v:void 0}};for(var i in e){var r=n(i);if("object"===typeof r)return r.v}}var s=function(){function e(){(0,i.Z)(this,e),this.map=new Map}return(0,r.Z)(e,[{key:"add",value:function(e,t){var n=this.map.get(e);n||(n=new Set,this.map.set(e,n)),n.add(t)}},{key:"delete",value:function(e,t){var n=this.map.get(e);n&&(n.delete(t),0===n.size&&this.map.delete(e))}},{key:"forEach",value:function(e,t){var n=this.map.get(e);n&&n.forEach(t)}}]),e}()},89938:function(e,t,n){"use strict";n.d(t,{Il:function(){return l},VS:function(){return a},tx:function(){return u}});var i=n(15671),r=n(43144);function o(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}var a=function(){function e(t,n,r){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,i.Z)(this,e),this.r=0|Math.min(255,Math.max(0,t)),this.g=0|Math.min(255,Math.max(0,n)),this.b=0|Math.min(255,Math.max(0,r)),this.a=o(Math.max(Math.min(1,a),0),3)}return(0,r.Z)(e,null,[{key:"equals",value:function(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}]),e}(),s=function(){function e(t,n,r,a){(0,i.Z)(this,e),this.h=0|Math.max(Math.min(360,t),0),this.s=o(Math.max(Math.min(1,n),0),3),this.l=o(Math.max(Math.min(1,r),0),3),this.a=o(Math.max(Math.min(1,a),0),3)}return(0,r.Z)(e,null,[{key:"equals",value:function(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a}},{key:"fromRGBA",value:function(t){var n=t.r/255,i=t.g/255,r=t.b/255,o=t.a,a=Math.max(n,i,r),s=Math.min(n,i,r),u=0,l=0,c=(s+a)/2,d=a-s;if(d>0){switch(l=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),a){case n:u=(i-r)/d+(i<r?6:0);break;case i:u=(r-n)/d+2;break;case r:u=(n-i)/d+4}u*=60,u=Math.round(u)}return new e(u,l,c,o)}},{key:"_hue2rgb",value:function(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}},{key:"toRGBA",value:function(t){var n,i,r,o=t.h/360,s=t.s,u=t.l,l=t.a;if(0===s)n=i=r=u;else{var c=u<.5?u*(1+s):u+s-u*s,d=2*u-c;n=e._hue2rgb(d,c,o+1/3),i=e._hue2rgb(d,c,o),r=e._hue2rgb(d,c,o-1/3)}return new a(Math.round(255*n),Math.round(255*i),Math.round(255*r),l)}}]),e}(),u=function(){function e(t,n,r,a){(0,i.Z)(this,e),this.h=0|Math.max(Math.min(360,t),0),this.s=o(Math.max(Math.min(1,n),0),3),this.v=o(Math.max(Math.min(1,r),0),3),this.a=o(Math.max(Math.min(1,a),0),3)}return(0,r.Z)(e,null,[{key:"equals",value:function(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a}},{key:"fromRGBA",value:function(t){var n,i=t.r/255,r=t.g/255,o=t.b/255,a=Math.max(i,r,o),s=a-Math.min(i,r,o),u=0===a?0:s/a;return n=0===s?0:a===i?((r-o)/s%6+6)%6:a===r?(o-i)/s+2:(i-r)/s+4,new e(Math.round(60*n),u,a,t.a)}},{key:"toRGBA",value:function(e){var t=e.h,n=e.s,i=e.v,r=e.a,o=i*n,s=o*(1-Math.abs(t/60%2-1)),u=i-o,l=0,c=0,d=0;return t<60?(l=o,c=s):t<120?(l=s,c=o):t<180?(c=o,d=s):t<240?(c=s,d=o):t<300?(l=s,d=o):t<=360&&(l=o,d=s),l=Math.round(255*(l+u)),c=Math.round(255*(c+u)),d=Math.round(255*(d+u)),new a(l,c,d,r)}}]),e}(),l=function(){function e(t){if((0,i.Z)(this,e),!t)throw new Error("Color needs a value");if(t instanceof a)this.rgba=t;else if(t instanceof s)this._hsla=t,this.rgba=s.toRGBA(t);else{if(!(t instanceof u))throw new Error("Invalid color ctor argument");this._hsva=t,this.rgba=u.toRGBA(t)}}return(0,r.Z)(e,[{key:"hsla",get:function(){return this._hsla?this._hsla:s.fromRGBA(this.rgba)}},{key:"hsva",get:function(){return this._hsva?this._hsva:u.fromRGBA(this.rgba)}},{key:"equals",value:function(e){return!!e&&a.equals(this.rgba,e.rgba)&&s.equals(this.hsla,e.hsla)&&u.equals(this.hsva,e.hsva)}},{key:"getRelativeLuminance",value:function(){return o(.2126*e._relativeLuminanceForComponent(this.rgba.r)+.7152*e._relativeLuminanceForComponent(this.rgba.g)+.0722*e._relativeLuminanceForComponent(this.rgba.b),4)}},{key:"isLighter",value:function(){return(299*this.rgba.r+587*this.rgba.g+114*this.rgba.b)/1e3>=128}},{key:"isLighterThan",value:function(e){return this.getRelativeLuminance()>e.getRelativeLuminance()}},{key:"isDarkerThan",value:function(e){return this.getRelativeLuminance()<e.getRelativeLuminance()}},{key:"lighten",value:function(t){return new e(new s(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*t,this.hsla.a))}},{key:"darken",value:function(t){return new e(new s(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*t,this.hsla.a))}},{key:"transparent",value:function(t){var n=this.rgba,i=n.r,r=n.g,o=n.b,s=n.a;return new e(new a(i,r,o,s*t))}},{key:"isTransparent",value:function(){return 0===this.rgba.a}},{key:"isOpaque",value:function(){return 1===this.rgba.a}},{key:"opposite",value:function(){return new e(new a(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))}},{key:"toString",value:function(){return""+e.Format.CSS.format(this)}}],[{key:"fromHex",value:function(t){return e.Format.CSS.parseHex(t)||e.red}},{key:"_relativeLuminanceForComponent",value:function(e){var t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}},{key:"getLighterColor",value:function(e,t,n){if(e.isLighterThan(t))return e;n=n||.5;var i=e.getRelativeLuminance(),r=t.getRelativeLuminance();return n=n*(r-i)/r,e.lighten(n)}},{key:"getDarkerColor",value:function(e,t,n){if(e.isDarkerThan(t))return e;n=n||.5;var i=e.getRelativeLuminance();return n=n*(i-t.getRelativeLuminance())/i,e.darken(n)}}]),e}();l.white=new l(new a(255,255,255,1)),l.black=new l(new a(0,0,0,1)),l.red=new l(new a(255,0,0,1)),l.blue=new l(new a(0,0,255,1)),l.cyan=new l(new a(0,255,255,1)),l.lightgrey=new l(new a(211,211,211,1)),l.transparent=new l(new a(0,0,0,0)),function(e){!function(t){!function(t){function n(e){var t=e.toString(16);return 2!==t.length?"0"+t:t}function i(e){switch(e){case 48:return 0;case 49:return 1;case 50:return 2;case 51:return 3;case 52:return 4;case 53:return 5;case 54:return 6;case 55:return 7;case 56:return 8;case 57:return 9;case 97:case 65:return 10;case 98:case 66:return 11;case 99:case 67:return 12;case 100:case 68:return 13;case 101:case 69:return 14;case 102:case 70:return 15}return 0}t.formatRGB=function(t){return 1===t.rgba.a?"rgb(".concat(t.rgba.r,", ").concat(t.rgba.g,", ").concat(t.rgba.b,")"):e.Format.CSS.formatRGBA(t)},t.formatRGBA=function(e){return"rgba(".concat(e.rgba.r,", ").concat(e.rgba.g,", ").concat(e.rgba.b,", ").concat(+e.rgba.a.toFixed(2),")")},t.formatHSL=function(t){return 1===t.hsla.a?"hsl(".concat(t.hsla.h,", ").concat((100*t.hsla.s).toFixed(2),"%, ").concat((100*t.hsla.l).toFixed(2),"%)"):e.Format.CSS.formatHSLA(t)},t.formatHSLA=function(e){return"hsla(".concat(e.hsla.h,", ").concat((100*e.hsla.s).toFixed(2),"%, ").concat((100*e.hsla.l).toFixed(2),"%, ").concat(e.hsla.a.toFixed(2),")")},t.formatHex=function(e){return"#".concat(n(e.rgba.r)).concat(n(e.rgba.g)).concat(n(e.rgba.b))},t.formatHexA=function(t){return arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&1===t.rgba.a?e.Format.CSS.formatHex(t):"#".concat(n(t.rgba.r)).concat(n(t.rgba.g)).concat(n(t.rgba.b)).concat(n(Math.round(255*t.rgba.a)))},t.format=function(t){return t.isOpaque()?e.Format.CSS.formatHex(t):e.Format.CSS.formatRGBA(t)},t.parseHex=function(t){var n=t.length;if(0===n)return null;if(35!==t.charCodeAt(0))return null;if(7===n){var r=16*i(t.charCodeAt(1))+i(t.charCodeAt(2)),o=16*i(t.charCodeAt(3))+i(t.charCodeAt(4)),s=16*i(t.charCodeAt(5))+i(t.charCodeAt(6));return new e(new a(r,o,s,1))}if(9===n){var u=16*i(t.charCodeAt(1))+i(t.charCodeAt(2)),l=16*i(t.charCodeAt(3))+i(t.charCodeAt(4)),c=16*i(t.charCodeAt(5))+i(t.charCodeAt(6)),d=16*i(t.charCodeAt(7))+i(t.charCodeAt(8));return new e(new a(u,l,c,d/255))}if(4===n){var h=i(t.charCodeAt(1)),f=i(t.charCodeAt(2)),p=i(t.charCodeAt(3));return new e(new a(16*h+h,16*f+f,16*p+p))}if(5===n){var g=i(t.charCodeAt(1)),v=i(t.charCodeAt(2)),m=i(t.charCodeAt(3)),_=i(t.charCodeAt(4));return new e(new a(16*g+g,16*v+v,16*m+m,(16*_+_)/255))}return null}}(t.CSS||(t.CSS={}))}(e.Format||(e.Format={}))}(l||(l={}))},94995:function(e,t,n){"use strict";n.d(t,{H:function(){return r}});var i=0;function r(e,t,n){return function(){var e="$memoize".concat(i++),t=void 0,n=function(n,i,r){var o=null,a=null;if("function"===typeof r.value?(o="value",0!==(a=r.value).length&&console.warn("Memoize should only be used in functions with zero parameters")):"function"===typeof r.get&&(o="get",a=r.get),!a)throw new Error("not supported");var s="".concat(e,":").concat(i);r[o]=function(){if(t=this,!this.hasOwnProperty(s)){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];Object.defineProperty(this,s,{configurable:!0,enumerable:!1,writable:!0,value:a.apply(this,n)})}return this[s]}};return n.clear=function(){"undefined"!==typeof t&&Object.getOwnPropertyNames(t).forEach((function(n){0===n.indexOf(e)&&delete t[n]}))},n}()(e,t,n)}},95676:function(e,t,n){"use strict";n.d(t,{Hs:function(){return f},a$:function(){return l}});var i=n(29439),r=n(15671),o=n(43144),a=function(){function e(t,n,i,o){(0,r.Z)(this,e),this.originalStart=t,this.originalLength=n,this.modifiedStart=i,this.modifiedLength=o}return(0,o.Z)(e,[{key:"getOriginalEnd",value:function(){return this.originalStart+this.originalLength}},{key:"getModifiedEnd",value:function(){return this.modifiedStart+this.modifiedLength}}]),e}(),s=n(25567),u=function(){function e(t){(0,r.Z)(this,e),this.source=t}return(0,o.Z)(e,[{key:"getElements",value:function(){for(var e=this.source,t=new Int32Array(e.length),n=0,i=e.length;n<i;n++)t[n]=e.charCodeAt(n);return t}}]),e}();function l(e,t,n){return new f(new u(e),new u(t)).ComputeDiff(n).changes}var c=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"Assert",value:function(e,t){if(!e)throw new Error(t)}}]),e}(),d=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"Copy",value:function(e,t,n,i,r){for(var o=0;o<r;o++)n[i+o]=e[t+o]}},{key:"Copy2",value:function(e,t,n,i,r){for(var o=0;o<r;o++)n[i+o]=e[t+o]}}]),e}(),h=function(){function e(){(0,r.Z)(this,e),this.m_changes=[],this.m_originalStart=1073741824,this.m_modifiedStart=1073741824,this.m_originalCount=0,this.m_modifiedCount=0}return(0,o.Z)(e,[{key:"MarkNextChange",value:function(){(this.m_originalCount>0||this.m_modifiedCount>0)&&this.m_changes.push(new a(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}},{key:"AddOriginalElement",value:function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}},{key:"AddModifiedElement",value:function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}},{key:"getChanges",value:function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}},{key:"getReverseChanges",value:function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}]),e}(),f=function(){function e(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;(0,r.Z)(this,e),this.ContinueProcessingPredicate=o;var a=e._getElements(t),s=(0,i.Z)(a,3),u=s[0],l=s[1],c=s[2],d=e._getElements(n),h=(0,i.Z)(d,3),f=h[0],p=h[1],g=h[2];this._hasStrings=c&&g,this._originalStringElements=u,this._originalElementsOrHash=l,this._modifiedStringElements=f,this._modifiedElementsOrHash=p,this.m_forwardHistory=[],this.m_reverseHistory=[]}return(0,o.Z)(e,[{key:"ElementsAreEqual",value:function(e,t){return this._originalElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._modifiedStringElements[t])}},{key:"OriginalElementsAreEqual",value:function(e,t){return this._originalElementsOrHash[e]===this._originalElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._originalStringElements[t])}},{key:"ModifiedElementsAreEqual",value:function(e,t){return this._modifiedElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._modifiedStringElements[e]===this._modifiedStringElements[t])}},{key:"ComputeDiff",value:function(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)}},{key:"_ComputeDiff",value:function(e,t,n,i,r){var o=[!1],a=this.ComputeDiffRecursive(e,t,n,i,o);return r&&(a=this.PrettifyChanges(a)),{quitEarly:o[0],changes:a}}},{key:"ComputeDiffRecursive",value:function(e,t,n,i,r){for(r[0]=!1;e<=t&&n<=i&&this.ElementsAreEqual(e,n);)e++,n++;for(;t>=e&&i>=n&&this.ElementsAreEqual(t,i);)t--,i--;var o;if(e>t||n>i)return n<=i?(c.Assert(e===t+1,"originalStart should only be one more than originalEnd"),o=[new a(e,0,n,i-n+1)]):e<=t?(c.Assert(n===i+1,"modifiedStart should only be one more than modifiedEnd"),o=[new a(e,t-e+1,n,0)]):(c.Assert(e===t+1,"originalStart should only be one more than originalEnd"),c.Assert(n===i+1,"modifiedStart should only be one more than modifiedEnd"),o=[]),o;var s=[0],u=[0],l=this.ComputeRecursionPoint(e,t,n,i,s,u,r),d=s[0],h=u[0];if(null!==l)return l;if(!r[0]){var f=this.ComputeDiffRecursive(e,d,n,h,r),p=[];return p=r[0]?[new a(d+1,t-(d+1)+1,h+1,i-(h+1)+1)]:this.ComputeDiffRecursive(d+1,t,h+1,i,r),this.ConcatenateChanges(f,p)}return[new a(e,t-e+1,n,i-n+1)]}},{key:"WALKTRACE",value:function(e,t,n,i,r,o,s,u,l,c,d,f,p,g,v,m,_,y){var b,w=null,C=new h,k=t,S=n,x=p[0]-m[0]-i,L=-1073741824,E=this.m_forwardHistory.length-1;do{var N=x+e;N===k||N<S&&l[N-1]<l[N+1]?(g=(d=l[N+1])-x-i,d<L&&C.MarkNextChange(),L=d,C.AddModifiedElement(d+1,g),x=N+1-e):(g=(d=l[N-1]+1)-x-i,d<L&&C.MarkNextChange(),L=d-1,C.AddOriginalElement(d,g+1),x=N-1-e),E>=0&&(e=(l=this.m_forwardHistory[E])[0],k=1,S=l.length-1)}while(--E>=-1);if(b=C.getReverseChanges(),y[0]){var D=p[0]+1,M=m[0]+1;if(null!==b&&b.length>0){var T=b[b.length-1];D=Math.max(D,T.getOriginalEnd()),M=Math.max(M,T.getModifiedEnd())}w=[new a(D,f-D+1,M,v-M+1)]}else{C=new h,k=o,S=s,x=p[0]-m[0]-u,L=1073741824,E=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{var O=x+r;O===k||O<S&&c[O-1]>=c[O+1]?(g=(d=c[O+1]-1)-x-u,d>L&&C.MarkNextChange(),L=d+1,C.AddOriginalElement(d+1,g+1),x=O+1-r):(g=(d=c[O-1])-x-u,d>L&&C.MarkNextChange(),L=d,C.AddModifiedElement(d+1,g+1),x=O-1-r),E>=0&&(r=(c=this.m_reverseHistory[E])[0],k=1,S=c.length-1)}while(--E>=-1);w=C.getChanges()}return this.ConcatenateChanges(b,w)}},{key:"ComputeRecursionPoint",value:function(e,t,n,i,r,o,s){var u=0,l=0,c=0,h=0,f=0,p=0;e--,n--,r[0]=0,o[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];var g=t-e+(i-n),v=g+1,m=new Int32Array(v),_=new Int32Array(v),y=i-n,b=t-e,w=e-n,C=t-i,k=(b-y)%2===0;m[y]=e,_[b]=t,s[0]=!1;for(var S=1;S<=g/2+1;S++){var x=0,L=0;c=this.ClipDiagonalBound(y-S,S,y,v),h=this.ClipDiagonalBound(y+S,S,y,v);for(var E=c;E<=h;E+=2){l=(u=E===c||E<h&&m[E-1]<m[E+1]?m[E+1]:m[E-1]+1)-(E-y)-w;for(var N=u;u<t&&l<i&&this.ElementsAreEqual(u+1,l+1);)u++,l++;if(m[E]=u,u+l>x+L&&(x=u,L=l),!k&&Math.abs(E-b)<=S-1&&u>=_[E])return r[0]=u,o[0]=l,N<=_[E]&&S<=1448?this.WALKTRACE(y,c,h,w,b,f,p,C,m,_,u,t,r,l,i,o,k,s):null}var D=(x-e+(L-n)-S)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(x,D))return s[0]=!0,r[0]=x,o[0]=L,D>0&&S<=1448?this.WALKTRACE(y,c,h,w,b,f,p,C,m,_,u,t,r,l,i,o,k,s):(e++,n++,[new a(e,t-e+1,n,i-n+1)]);f=this.ClipDiagonalBound(b-S,S,b,v),p=this.ClipDiagonalBound(b+S,S,b,v);for(var M=f;M<=p;M+=2){l=(u=M===f||M<p&&_[M-1]>=_[M+1]?_[M+1]-1:_[M-1])-(M-b)-C;for(var T=u;u>e&&l>n&&this.ElementsAreEqual(u,l);)u--,l--;if(_[M]=u,k&&Math.abs(M-y)<=S&&u<=m[M])return r[0]=u,o[0]=l,T>=m[M]&&S<=1448?this.WALKTRACE(y,c,h,w,b,f,p,C,m,_,u,t,r,l,i,o,k,s):null}if(S<=1447){var O=new Int32Array(h-c+2);O[0]=y-c+1,d.Copy2(m,c,O,1,h-c+1),this.m_forwardHistory.push(O),(O=new Int32Array(p-f+2))[0]=b-f+1,d.Copy2(_,f,O,1,p-f+1),this.m_reverseHistory.push(O)}}return this.WALKTRACE(y,c,h,w,b,f,p,C,m,_,u,t,r,l,i,o,k,s)}},{key:"PrettifyChanges",value:function(e){for(var t=0;t<e.length;t++){for(var n=e[t],r=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,o=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,a=n.originalLength>0,s=n.modifiedLength>0;n.originalStart+n.originalLength<r&&n.modifiedStart+n.modifiedLength<o&&(!a||this.OriginalElementsAreEqual(n.originalStart,n.originalStart+n.originalLength))&&(!s||this.ModifiedElementsAreEqual(n.modifiedStart,n.modifiedStart+n.modifiedLength));)n.originalStart++,n.modifiedStart++;var u=[null];t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],u)&&(e[t]=u[0],e.splice(t+1,1),t--)}for(var l=e.length-1;l>=0;l--){var c=e[l],d=0,h=0;if(l>0){var f=e[l-1];d=f.originalStart+f.originalLength,h=f.modifiedStart+f.modifiedLength}for(var p=c.originalLength>0,g=c.modifiedLength>0,v=0,m=this._boundaryScore(c.originalStart,c.originalLength,c.modifiedStart,c.modifiedLength),_=1;;_++){var y=c.originalStart-_,b=c.modifiedStart-_;if(y<d||b<h)break;if(p&&!this.OriginalElementsAreEqual(y,y+c.originalLength))break;if(g&&!this.ModifiedElementsAreEqual(b,b+c.modifiedLength))break;var w=(y===d&&b===h?5:0)+this._boundaryScore(y,c.originalLength,b,c.modifiedLength);w>m&&(m=w,v=_)}c.originalStart-=v,c.modifiedStart-=v;var C=[null];l>0&&this.ChangesOverlap(e[l-1],e[l],C)&&(e[l-1]=C[0],e.splice(l,1),l++)}if(this._hasStrings)for(var k=1,S=e.length;k<S;k++){var x=e[k-1],L=e[k],E=L.originalStart-x.originalStart-x.originalLength,N=x.originalStart,D=L.originalStart+L.originalLength,M=D-N,T=x.modifiedStart,O=L.modifiedStart+L.modifiedLength,I=O-T;if(E<5&&M<20&&I<20){var A=this._findBetterContiguousSequence(N,M,T,I,E);if(A){var R=(0,i.Z)(A,2),P=R[0],Z=R[1];P===x.originalStart+x.originalLength&&Z===x.modifiedStart+x.modifiedLength||(x.originalLength=P-x.originalStart,x.modifiedLength=Z-x.modifiedStart,L.originalStart=P+E,L.modifiedStart=Z+E,L.originalLength=D-L.originalStart,L.modifiedLength=O-L.modifiedStart)}}}return e}},{key:"_findBetterContiguousSequence",value:function(e,t,n,i,r){if(t<r||i<r)return null;for(var o=e+t-r+1,a=n+i-r+1,s=0,u=0,l=0,c=e;c<o;c++)for(var d=n;d<a;d++){var h=this._contiguousSequenceScore(c,d,r);h>0&&h>s&&(s=h,u=c,l=d)}return s>0?[u,l]:null}},{key:"_contiguousSequenceScore",value:function(e,t,n){for(var i=0,r=0;r<n;r++){if(!this.ElementsAreEqual(e+r,t+r))return 0;i+=this._originalStringElements[e+r].length}return i}},{key:"_OriginalIsBoundary",value:function(e){return e<=0||e>=this._originalElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}},{key:"_OriginalRegionIsBoundary",value:function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1}},{key:"_ModifiedIsBoundary",value:function(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}},{key:"_ModifiedRegionIsBoundary",value:function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1}},{key:"_boundaryScore",value:function(e,t,n,i){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,i)?1:0)}},{key:"ConcatenateChanges",value:function(e,t){var n=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],n)){var i=new Array(e.length+t.length-1);return d.Copy(e,0,i,0,e.length-1),i[e.length-1]=n[0],d.Copy(t,1,i,e.length,t.length-1),i}var r=new Array(e.length+t.length);return d.Copy(e,0,r,0,e.length),d.Copy(t,0,r,e.length,t.length),r}},{key:"ChangesOverlap",value:function(e,t,n){if(c.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),c.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var i=e.originalStart,r=e.originalLength,o=e.modifiedStart,s=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(r=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(s=t.modifiedStart+t.modifiedLength-e.modifiedStart),n[0]=new a(i,r,o,s),!0}return n[0]=null,!1}},{key:"ClipDiagonalBound",value:function(e,t,n,i){if(e>=0&&e<i)return e;var r=t%2===0;return e<0?r===(n%2===0)?0:1:r===((i-n-1)%2===0)?i-1:i-2}}],[{key:"_isStringArray",value:function(e){return e.length>0&&"string"===typeof e[0]}},{key:"_getElements",value:function(t){var n=t.getElements();if(e._isStringArray(n)){for(var i=new Int32Array(n.length),r=0,o=n.length;r<o;r++)i[r]=(0,s.Cv)(n[r],0);return[n,i,!0]}return n instanceof Int32Array?[[],n,!1]:[[],new Int32Array(n),!1]}}]),e}()},8729:function(e,t,n){"use strict";n.d(t,{Cp:function(){return s},F0:function(){return d},L6:function(){return f},VV:function(){return c},b1:function(){return h},dL:function(){return a},ri:function(){return u}});var i=n(15671),r=n(43144),o=new(function(){function e(){(0,i.Z)(this,e),this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout((function(){if(e.stack)throw new Error(e.message+"\n\n"+e.stack);throw e}),0)}}return(0,r.Z)(e,[{key:"emit",value:function(e){this.listeners.forEach((function(t){t(e)}))}},{key:"onUnexpectedError",value:function(e){this.unexpectedErrorHandler(e),this.emit(e)}},{key:"onUnexpectedExternalError",value:function(e){this.unexpectedErrorHandler(e)}}]),e}());function a(e){c(e)||o.onUnexpectedError(e)}function s(e){c(e)||o.onUnexpectedExternalError(e)}function u(e){return e instanceof Error?{$isError:!0,name:e.name,message:e.message,stack:e.stacktrace||e.stack}:e}var l="Canceled";function c(e){return e instanceof Error&&e.name===l&&e.message===l}function d(){var e=new Error(l);return e.name=e.message,e}function h(e){return e?new Error("Illegal argument: ".concat(e)):new Error("Illegal argument")}function f(e){return e?new Error("Illegal state: ".concat(e)):new Error("Illegal state")}},11732:function(e,t,n){"use strict";n.d(t,{E7:function(){return C},K3:function(){return w},Q5:function(){return b},ZD:function(){return k},ju:function(){return i}});var i,r=n(11752),o=n(61120),a=n(60136),s=n(29388),u=n(29439),l=n(37762),c=n(15671),d=n(43144),h=n(93433),f=n(8729),p=n(81626),g=n(28214),v=n(96257);!function(e){function t(e){return function(t){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=!1;return n=e((function(e){if(!r)return n?n.dispose():r=!0,t.call(i,e)}),null,arguments.length>2?arguments[2]:void 0),r&&n.dispose(),n}}function n(e,t){return a((function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e((function(e){return n.call(i,t(e))}),null,arguments.length>2?arguments[2]:void 0)}))}function i(e,t){return a((function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e((function(e){t(e),n.call(i,e)}),null,arguments.length>2?arguments[2]:void 0)}))}function r(e,t){return a((function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e((function(e){return t(e)&&n.call(i,e)}),null,arguments.length>2?arguments[2]:void 0)}))}function o(e,t,i){var r=i;return n(e,(function(e){return r=t(r,e)}))}function a(e){var t,n=new b({onFirstListenerAdd:function(){t=e(n.fire,n)},onLastListenerRemove:function(){t.dispose()}});return n.event}function s(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=void 0,a=void 0,s=0,u=new b({leakWarningThreshold:arguments.length>4?arguments[4]:void 0,onFirstListenerAdd:function(){n=e((function(e){s++,o=t(o,e),r&&!a&&(u.fire(o),o=void 0),clearTimeout(a),a=setTimeout((function(){var e=o;o=void 0,a=void 0,(!r||s>1)&&u.fire(e),s=0}),i)}))},onLastListenerRemove:function(){n.dispose()}});return u.event}function u(e){var t,n=!0;return r(e,(function(e){var i=n||e!==t;return n=!1,t=e,i}))}e.None=function(){return p.JT.None},e.once=t,e.map=n,e.forEach=i,e.filter=r,e.signal=function(e){return e},e.any=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2?arguments[2]:void 0;return p.F8.apply(void 0,(0,h.Z)(t.map((function(t){return t((function(t){return e.call(n,t)}),null,i)}))))}},e.reduce=o,e.snapshot=a,e.debounce=s,e.stopwatch=function(e){var i=(new Date).getTime();return n(t(e),(function(e){return(new Date).getTime()-i}))},e.latch=u,e.buffer=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]).slice(),i=e((function(e){n?n.push(e):o.fire(e)})),r=function(){n&&n.forEach((function(e){return o.fire(e)})),n=null},o=new b({onFirstListenerAdd:function(){i||(i=e((function(e){return o.fire(e)})))},onFirstListenerDidAdd:function(){n&&(t?setTimeout(r):r())},onLastListenerRemove:function(){i&&i.dispose(),i=null}});return o.event};var l=function(){function e(t){(0,c.Z)(this,e),this.event=t}return(0,d.Z)(e,[{key:"map",value:function(t){return new e(n(this.event,t))}},{key:"forEach",value:function(t){return new e(i(this.event,t))}},{key:"filter",value:function(t){return new e(r(this.event,t))}},{key:"reduce",value:function(t,n){return new e(o(this.event,t,n))}},{key:"latch",value:function(){return new e(u(this.event))}},{key:"debounce",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;return new e(s(this.event,t,n,i,r))}},{key:"on",value:function(e,t,n){return this.event(e,t,n)}},{key:"once",value:function(e,n,i){return t(this.event)(e,n,i)}}]),e}();e.chain=function(e){return new l(e)},e.fromNodeEventEmitter=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){return e},i=function(){return r.fire(n.apply(void 0,arguments))},r=new b({onFirstListenerAdd:function(){return e.on(t,i)},onLastListenerRemove:function(){return e.removeListener(t,i)}});return r.event},e.fromDOMEventEmitter=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){return e},i=function(){return r.fire(n.apply(void 0,arguments))},r=new b({onFirstListenerAdd:function(){return e.addEventListener(t,i)},onLastListenerRemove:function(){return e.removeEventListener(t,i)}});return r.event},e.fromPromise=function(e){var t=new b,n=!1;return e.then(void 0,(function(){return null})).then((function(){n?t.fire(void 0):setTimeout((function(){return t.fire(void 0)}),0)})),n=!0,t.event},e.toPromise=function(e){return new Promise((function(n){return t(e)(n)}))}}(i||(i={}));var m=function(){function e(t){(0,c.Z)(this,e),this._listenerCount=0,this._invocationCount=0,this._elapsedOverall=0,this._name="".concat(t,"_").concat(e._idPool++)}return(0,d.Z)(e,[{key:"start",value:function(e){this._stopWatch=new v.G(!0),this._listenerCount=e}},{key:"stop",value:function(){if(this._stopWatch){var e=this._stopWatch.elapsed();this._elapsedOverall+=e,this._invocationCount+=1,console.info("did FIRE ".concat(this._name,": elapsed_ms: ").concat(e.toFixed(5),", listener: ").concat(this._listenerCount," (elapsed_overall: ").concat(this._elapsedOverall.toFixed(2),", invocations: ").concat(this._invocationCount,")")),this._stopWatch=void 0}}}]),e}();m._idPool=0;var _=-1,y=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.random().toString(18).slice(2,5);(0,c.Z)(this,e),this.customThreshold=t,this.name=n,this._warnCountdown=0}return(0,d.Z)(e,[{key:"dispose",value:function(){this._stacks&&this._stacks.clear()}},{key:"check",value:function(e){var t=this,n=_;if("number"===typeof this.customThreshold&&(n=this.customThreshold),!(n<=0||e<n)){this._stacks||(this._stacks=new Map);var i=(new Error).stack.split("\n").slice(3).join("\n"),r=this._stacks.get(i)||0;if(this._stacks.set(i,r+1),this._warnCountdown-=1,this._warnCountdown<=0){var o;this._warnCountdown=.5*n;var a,s=0,c=(0,l.Z)(this._stacks);try{for(c.s();!(a=c.n()).done;){var d=(0,u.Z)(a.value,2),h=d[0],f=d[1];(!o||s<f)&&(o=h,s=f)}}catch(p){c.e(p)}finally{c.f()}console.warn("[".concat(this.name,"] potential listener LEAK detected, having ").concat(e," listeners already. MOST frequent listener (").concat(s,"):")),console.warn(o)}return function(){var e=t._stacks.get(i)||0;t._stacks.set(i,e-1)}}}}]),e}(),b=function(){function e(t){var n;(0,c.Z)(this,e),this._disposed=!1,this._options=t,this._leakageMon=_>0?new y(this._options&&this._options.leakWarningThreshold):void 0,this._perfMon=(null===(n=this._options)||void 0===n?void 0:n._profName)?new m(this._options._profName):void 0}return(0,d.Z)(e,[{key:"event",get:function(){var t=this;return this._event||(this._event=function(n,i,r){var o;t._listeners||(t._listeners=new g.S);var a=t._listeners.isEmpty();a&&t._options&&t._options.onFirstListenerAdd&&t._options.onFirstListenerAdd(t);var s=t._listeners.push(i?[n,i]:n);a&&t._options&&t._options.onFirstListenerDidAdd&&t._options.onFirstListenerDidAdd(t),t._options&&t._options.onListenerDidAdd&&t._options.onListenerDidAdd(t,n,i);var u,l=null===(o=t._leakageMon)||void 0===o?void 0:o.check(t._listeners.size);return u={dispose:function(){(l&&l(),u.dispose=e._noop,t._disposed)||(s(),t._options&&t._options.onLastListenerRemove&&(t._listeners&&!t._listeners.isEmpty()||t._options.onLastListenerRemove(t)))}},r instanceof p.SL?r.add(u):Array.isArray(r)&&r.push(u),u}),this._event}},{key:"fire",value:function(e){var t,n;if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new g.S);var i,r=(0,l.Z)(this._listeners);try{for(r.s();!(i=r.n()).done;){var o=i.value;this._deliveryQueue.push([o,e])}}catch(h){r.e(h)}finally{r.f()}for(null===(t=this._perfMon)||void 0===t||t.start(this._deliveryQueue.size);this._deliveryQueue.size>0;){var a=this._deliveryQueue.shift(),s=(0,u.Z)(a,2),c=s[0],d=s[1];try{"function"===typeof c?c.call(void 0,d):c[0].call(c[1],d)}catch(p){(0,f.dL)(p)}}null===(n=this._perfMon)||void 0===n||n.stop()}}},{key:"dispose",value:function(){var e,t,n;null===(e=this._listeners)||void 0===e||e.clear(),null===(t=this._deliveryQueue)||void 0===t||t.clear(),null===(n=this._leakageMon)||void 0===n||n.dispose(),this._disposed=!0}}]),e}();b._noop=function(){};var w=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e))._isPaused=0,i._eventQueue=new g.S,i._mergeFn=null===e||void 0===e?void 0:e.merge,i}return(0,d.Z)(n,[{key:"pause",value:function(){this._isPaused++}},{key:"resume",value:function(){if(0!==this._isPaused&&0===--this._isPaused)if(this._mergeFn){var e=Array.from(this._eventQueue);this._eventQueue.clear(),(0,r.Z)((0,o.Z)(n.prototype),"fire",this).call(this,this._mergeFn(e))}else for(;!this._isPaused&&0!==this._eventQueue.size;)(0,r.Z)((0,o.Z)(n.prototype),"fire",this).call(this,this._eventQueue.shift())}},{key:"fire",value:function(e){this._listeners&&(0!==this._isPaused?this._eventQueue.push(e):(0,r.Z)((0,o.Z)(n.prototype),"fire",this).call(this,e))}}]),n}(b),C=function(){function e(){(0,c.Z)(this,e),this.buffers=[]}return(0,d.Z)(e,[{key:"wrapEvent",value:function(e){var t=this;return function(n,i,r){return e((function(e){var r=t.buffers[t.buffers.length-1];r?r.push((function(){return n.call(i,e)})):n.call(i,e)}),void 0,r)}}},{key:"bufferEvents",value:function(e){var t=[];this.buffers.push(t);var n=e();return this.buffers.pop(),t.forEach((function(e){return e()})),n}}]),e}(),k=function(){function e(){var t=this;(0,c.Z)(this,e),this.listening=!1,this.inputEvent=i.None,this.inputEventListener=p.JT.None,this.emitter=new b({onFirstListenerDidAdd:function(){t.listening=!0,t.inputEventListener=t.inputEvent(t.emitter.fire,t.emitter)},onLastListenerRemove:function(){t.listening=!1,t.inputEventListener.dispose()}}),this.event=this.emitter.event}return(0,d.Z)(e,[{key:"input",set:function(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}},{key:"dispose",value:function(){this.inputEventListener.dispose(),this.emitter.dispose()}}]),e}()},67537:function(e,t,n){"use strict";n.d(t,{KM:function(){return s},ej:function(){return a},oP:function(){return l},vY:function(){return u}});var i=n(30487),r=n(51747),o=n(36912);function a(e){return e.replace(/[\\/]/g,o.KR.sep)}function s(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:o.ir;if(e===t)return!0;if(!e||!t)return!1;if(t.length>e.length)return!1;if(n){if(!(0,r.ok)(e,t))return!1;if(t.length===e.length)return!0;var a=t.length;return t.charAt(t.length-1)===i&&a--,e.charAt(a)===i}return t.charAt(t.length-1)!==i&&(t+=i),0===e.indexOf(t)}function u(e){var t=(0,o.Fv)(e);return i.ED?!(e.length>3)&&(l(t)&&(2===e.length||92===t.charCodeAt(2))):t===o.KR.sep}function l(e){return!!i.ED&&(((t=e.charCodeAt(0))>=65&&t<=90||t>=97&&t<=122)&&58===e.charCodeAt(1));var t}},50482:function(e,t,n){"use strict";n.d(t,{CL:function(){return O},EW:function(){return W},Ji:function(){return a},KZ:function(){return b},Oh:function(){return L},ir:function(){return s},jB:function(){return E},l7:function(){return Y},mB:function(){return N},or:function(){return o}});var i=n(15022),r=n(51747);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e,n){for(var i=0,r=t.length;i<r;i++){var o=t[i](e,n);if(o)return o}return null}}var a=function(e,t,n){if(!n||n.length<t.length)return null;var i;i=e?r.ok(n,t):0===n.indexOf(t);if(!i)return null;return t.length>0?[{start:0,end:t.length}]:[]}.bind(void 0,!0);function s(e,t){var n=t.toLowerCase().indexOf(e.toLowerCase());return-1===n?null:[{start:n,end:n+e.length}]}function u(e,t,n,i){if(n===e.length)return[];if(i===t.length)return null;if(e[n]===t[i]){var r;return(r=u(e,t,n+1,i+1))?v({start:i,end:i+1},r):null}return u(e,t,n,i+1)}function l(e){return 97<=e&&e<=122}function c(e){return 65<=e&&e<=90}function d(e){return 48<=e&&e<=57}function h(e){return 32===e||9===e||10===e||13===e}var f=new Set;function p(e){return h(e)||f.has(e)}function g(e){return l(e)||c(e)||d(e)}function v(e,t){return 0===t.length?t=[e]:e.end===t[0].start?t[0].start=e.start:t.unshift(e),t}function m(e,t){for(var n=t;n<e.length;n++){var i=e.charCodeAt(n);if(c(i)||d(i)||n>0&&!g(e.charCodeAt(n-1)))return n}return e.length}function _(e,t,n,i){if(n===e.length)return[];if(i===t.length)return null;if(e[n]!==t[i].toLowerCase())return null;var r=null,o=i+1;for(r=_(e,t,n+1,i+1);!r&&(o=m(t,o))<t.length;)r=_(e,t,n+1,o),o++;return null===r?null:v({start:i,end:i+1},r)}function y(e,t){if(!t)return null;if(0===(t=t.trim()).length)return null;if(!function(e){for(var t=0,n=0,i=0,r=0,o=0;o<e.length;o++)c(i=e.charCodeAt(o))&&t++,l(i)&&n++,h(i)&&r++;return 0!==t&&0!==n||0!==r?t<=5:e.length<=30}(e))return null;if(t.length>60)return null;var n=function(e){for(var t=0,n=0,i=0,r=0,o=0,a=0;a<e.length;a++)c(o=e.charCodeAt(a))&&t++,l(o)&&n++,g(o)&&i++,d(o)&&r++;return{upperPercent:t/e.length,lowerPercent:n/e.length,alphaPercent:i/e.length,numericPercent:r/e.length}}(t);if(!function(e){var t=e.upperPercent,n=e.lowerPercent,i=e.alphaPercent,r=e.numericPercent;return n>.2&&t<.8&&i>.6&&r<.2}(n)){if(!function(e){var t=e.upperPercent;return 0===e.lowerPercent&&t>.6}(n))return null;t=t.toLowerCase()}var i=null,r=0;for(e=e.toLowerCase();r<t.length&&null===(i=_(e,t,0,r));)r=m(t,r+1);return i}function b(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!t||0===t.length)return null;var i=null,r=0;for(e=e.toLowerCase(),t=t.toLowerCase();r<t.length&&null===(i=w(e,t,0,r,n));)r=C(t,r+1);return i}function w(e,t,n,i,r){if(n===e.length)return[];if(i===t.length)return null;if(s=e.charCodeAt(n),u=t.charCodeAt(i),s===u||p(s)&&p(u)){var o=null,a=i+1;if(o=w(e,t,n+1,i+1,r),!r)for(;!o&&(a=C(t,a))<t.length;)o=w(e,t,n+1,a,r),a++;return null===o?null:v({start:i,end:i+1},o)}return null;var s,u}function C(e,t){for(var n=t;n<e.length;n++)if(p(e.charCodeAt(n))||n>0&&p(e.charCodeAt(n-1)))return n;return e.length}"`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?".split("").forEach((function(e){return f.add(e.charCodeAt(0))}));var k=o(a,y,s),S=o(a,y,(function(e,t){return u(e.toLowerCase(),t.toLowerCase(),0,0)})),x=new i.z6(1e4);function L(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"!==typeof e||"string"!==typeof t)return null;var i=x.get(e);i||(i=new RegExp(r.un(e),"i"),x.set(e,i));var o=i.exec(t);return o?[{start:o.index,end:o.index+o[0].length}]:n?S(e,t):k(e,t)}function E(e,t,n,i,r,o){for(var a=Math.min(13,e.length);n<a;n++){var s=W(e,t,n,i,r,o,!1);if(s)return s}return[0,o]}function N(e){if("undefined"===typeof e)return[];for(var t=[],n=e[1],i=e.length-1;i>1;i--){var r=e[i]+n,o=t[t.length-1];o&&o.end===r?o.end=r+1:t.push({start:r,end:r+1})}return t}var D=128;function M(){for(var e=[],t=[],n=0;n<=D;n++)t[n]=0;for(var i=0;i<=D;i++)e.push(t.slice(0));return e}function T(e){for(var t=[],n=0;n<=e;n++)t[n]=0;return t}var O,I=T(2*D),A=T(2*D),R=M(),P=M(),Z=M(),F=!1;function j(e,t,n,i,r){function o(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:" ";e.length<t;)e=n+e;return e}for(var a=" | |".concat(i.split("").map((function(e){return o(e,3)})).join("|"),"\n"),s=0;s<=n;s++)a+=0===s?" |":"".concat(t[s-1],"|"),a+=e[s].slice(0,r+1).map((function(e){return o(e.toString(),3)})).join("|")+"\n";return a}function H(e,t){if(t<0||t>=e.length)return!1;var n=e.codePointAt(t);switch(n){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 40:case 91:return!0;case void 0:return!1;default:return!!r.C8(n)}}function B(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 32:case 9:return!0;default:return!1}}function z(e,t,n){return t[e]!==n[e]}function W(e,t,n,i,r,o,a){var s=e.length>D?D:e.length,u=i.length>D?D:i.length;if(!(n>=s||o>=u||s-n>u-o)&&function(e,t,n,i,r,o){for(var a=arguments.length>6&&void 0!==arguments[6]&&arguments[6];t<n&&r<o;)e[t]===i[r]&&(a&&(I[t]=r),t+=1),r+=1;return t===n}(t,n,s,r,o,u,!0)){!function(e,t,n,i,r,o){var a=e-1,s=t-1;for(;a>=n&&s>=i;)r[a]===o[s]&&(A[a]=s,a--),s--}(s,u,n,o,t,r);var l=1,c=1,d=n,h=o,f=[!1];for(l=1,d=n;d<s;l++,d++){var p=I[d],g=A[d],v=d+1<s?A[d+1]:u;for(c=p-o+1,h=p;h<v;c++,h++){var m=Number.MIN_SAFE_INTEGER,_=!1;h<=g&&(m=V(e,t,d,n,i,r,h,u,o,0===R[l-1][c-1],f));var y=0;m!==Number.MAX_SAFE_INTEGER&&(_=!0,y=m+P[l-1][c-1]);var b=h>p,w=b?P[l][c-1]+(R[l][c-1]>0?-5:0):0,C=h>p+1&&R[l][c-1]>0,k=C?P[l][c-2]+(R[l][c-2]>0?-5:0):0;if(C&&(!b||k>=w)&&(!_||k>=y))P[l][c]=k,Z[l][c]=3,R[l][c]=0;else if(b&&(!_||w>=y))P[l][c]=w,Z[l][c]=2,R[l][c]=0;else{if(!_)throw new Error("not possible");P[l][c]=y,Z[l][c]=1,R[l][c]=R[l-1][c-1]+1}}}if(F&&function(e,t,n,i){e=e.substr(t),n=n.substr(i),console.log(j(P,e,e.length,n,n.length)),console.log(j(Z,e,e.length,n,n.length)),console.log(j(R,e,e.length,n,n.length))}(e,n,i,o),f[0]||a){l--,c--;for(var S=[P[l][c],o],x=0,L=0;l>=1;){var E=c;do{var N=Z[l][E];if(3===N)E-=2;else{if(2!==N)break;E-=1}}while(E>=1);x>1&&t[n+l-1]===r[o+c-1]&&!z(E+o-1,i,r)&&x+1>R[l][E]&&(E=c),E===c?x++:x=1,L||(L=E),l--,c=E-1,S.push(c)}u===s&&(S[0]+=2);var M=L-s;return S[0]-=M,S}}}function V(e,t,n,i,r,o,a,s,u,l,c){if(t[n]!==o[a])return Number.MIN_SAFE_INTEGER;var d=1,h=!1;return a===n-i?d=e[n]===r[a]?7:5:!z(a,r,o)||0!==a&&z(a-1,r,o)?!H(o,a)||0!==a&&H(o,a-1)?(H(o,a-1)||B(o,a-1))&&(d=5,h=!0):d=5:(d=e[n]===r[a]?7:5,h=!0),d>1&&n===i&&(c[0]=!0),h||(h=z(a,r,o)||H(o,a-1)||B(o,a-1)),n===i?a>u&&(d-=h?3:5):d+=l?h?2:0:h?0:1,a+1===s&&(d-=h?3:5),d}function Y(e,t,n,i,r,o,a){return function(e,t,n,i,r,o,a,s){var u=W(e,t,n,i,r,o,s);if(u&&!a)return u;if(e.length>=3)for(var l=Math.min(7,e.length-1),c=n+1;c<l;c++){var d=U(e,c);if(d){var h=W(d,d.toLowerCase(),n,i,r,o,s);h&&(h[0]-=3,(!u||h[0]>u[0])&&(u=h))}}return u}(e,t,n,i,r,o,!0,a)}function U(e,t){if(!(t+1>=e.length)){var n=e[t],i=e[t+1];if(n!==i)return e.slice(0,t)+i+n+e.slice(t+2)}}!function(e){e.Default=[-100,0],e.isDefault=function(e){return!e||2===e.length&&-100===e[0]&&0===e[1]}}(O||(O={}))},60106:function(e,t,n){"use strict";function i(e){var t,n=this,i=!1;return function(){return i?t:(i=!0,t=e.apply(n,arguments))}}n.d(t,{I:function(){return i}})},79612:function(e,t,n){"use strict";n.d(t,{EQ:function(){return M}});var i=n(37762),r=n(51747),o=n(67537),a=n(36912),s=n(15022),u=n(27997),l="**",c="/",d="[/\\\\]",h="[^/\\\\]",f=/\//g;function p(e){switch(e){case 0:return"";case 1:return"".concat(h,"*?");default:return"(?:".concat(d,"|").concat(h,"+").concat(d,"|").concat(d).concat(h,"+)*?")}}function g(e,t){if(!e)return[];var n,r=[],o=!1,a=!1,s="",u=(0,i.Z)(e);try{for(u.s();!(n=u.n()).done;){var l=n.value;switch(l){case t:if(!o&&!a){r.push(s),s="";continue}break;case"{":o=!0;break;case"}":o=!1;break;case"[":a=!0;break;case"]":a=!1}s+=l}}catch(c){u.e(c)}finally{u.f()}return s&&r.push(s),r}function v(e){if(!e)return"";var t="",n=g(e,c);if(n.every((function(e){return e===l})))t=".*";else{var o=!1;n.forEach((function(e,a){if(e!==l){var s,u=!1,f="",m=!1,_="",y=(0,i.Z)(e);try{for(y.s();!(s=y.n()).done;){var b=s.value;if("}"!==b&&u)f+=b;else if(!m||"]"===b&&_)switch(b){case"{":u=!0;continue;case"[":m=!0;continue;case"}":var w=g(f,","),C="(?:".concat(w.map((function(e){return v(e)})).join("|"),")");t+=C,u=!1,f="";break;case"]":t+="["+_+"]",m=!1,_="";break;case"?":t+=h;continue;case"*":t+=p(1);continue;default:t+=r.ec(b)}else{_+="-"===b?b:"^"!==b&&"!"!==b||_?b===c?"":r.ec(b):"^"}}}catch(k){y.e(k)}finally{y.f()}a<n.length-1&&(n[a+1]!==l||a+2<n.length)&&(t+=d),o=!1}else o||(t+=p(2),o=!0)}))}return t}var m=/^\*\*\/\*\.[\w\.-]+$/,_=/^\*\*\/([\w\.-]+)\/?$/,y=/^{\*\*\/[\*\.]?[\w\.-]+\/?(,\*\*\/[\*\.]?[\w\.-]+\/?)*}$/,b=/^{\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?(,\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?)*}$/,w=/^\*\*((\/[\w\.-]+)+)\/?$/,C=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,k=new s.z6(1e4),S=function(){return!1},x=function(){return null};function L(e,t){if(!e)return x;var n;n=(n="string"!==typeof e?e.pattern:e).trim();var i,r="".concat(n,"_").concat(!!t.trimForExclusions),o=k.get(r);if(o)return E(o,e);if(m.test(n)){var a=n.substr(4);o=function(e,t){return"string"===typeof e&&e.endsWith(a)?n:null}}else o=(i=_.exec(N(n,t)))?function(e,t){var n="/".concat(e),i="\\".concat(e),r=function(r,o){return"string"!==typeof r?null:o?o===e?t:null:r===e||r.endsWith(n)||r.endsWith(i)?t:null},o=[e];return r.basenames=o,r.patterns=[t],r.allBasenames=o,r}(i[1],n):(t.trimForExclusions?b:y).test(n)?function(e,t){var n=T(e.slice(1,-1).split(",").map((function(e){return L(e,t)})).filter((function(e){return e!==x})),e),i=n.length;if(!i)return x;if(1===i)return n[0];var r=function(t,i){for(var r=0,o=n.length;r<o;r++)if(n[r](t,i))return e;return null},o=n.find((function(e){return!!e.allBasenames}));o&&(r.allBasenames=o.allBasenames);var a=n.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);a.length&&(r.allPaths=a);return r}(n,t):(i=w.exec(N(n,t)))?D(i[1].substr(1),n,!0):(i=C.exec(N(n,t)))?D(i[1],n,!1):function(e){try{var t=new RegExp("^".concat(v(e),"$"));return function(n){return t.lastIndex=0,"string"===typeof n&&t.test(n)?e:null}}catch(n){return x}}(n);return k.set(r,o),E(o,e)}function E(e,t){return"string"===typeof t?e:function(n,i){return o.KM(n,t.base)?e(a.Gf(t.base,n),i):null}}function N(e,t){return t.trimForExclusions&&e.endsWith("/**")?e.substr(0,e.length-2):e}function D(e,t,n){var i=a.ir===a.KR.sep,r=i?e:e.replace(f,a.ir),o=a.ir+r,s=a.KR.sep+e,u=n?function(n,a){return"string"!==typeof n||n!==r&&!n.endsWith(o)&&(i||n!==e&&!n.endsWith(s))?null:t}:function(n,o){return"string"!==typeof n||n!==r&&(i||n!==e)?null:t};return u.allPaths=[(n?"*/":"./")+e],u}function M(e,t,n){return!(!e||"string"!==typeof t)&&function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return S;if("string"===typeof e||function(e){var t=e;return t&&"string"===typeof t.base&&"string"===typeof t.pattern}(e)){var n=L(e,t);if(n===x)return S;var i=function(e,t){return!!n(e,t)};return n.allBasenames&&(i.allBasenames=n.allBasenames),n.allPaths&&(i.allPaths=n.allPaths),i}return function(e,t){var n=T(Object.getOwnPropertyNames(e).map((function(n){return function(e,t,n){if(!1===t)return x;var i=L(e,n);if(i===x)return x;if("boolean"===typeof t)return i;if(t){var r=t.when;if("string"===typeof r){var o=function(t,n,o,a){if(!a||!i(t,n))return null;var s=a(r.replace("$(basename)",o));return(0,u.J8)(s)?s.then((function(t){return t?e:null})):s?e:null};return o.requiresSiblings=!0,o}}return i}(n,e[n],t)})).filter((function(e){return e!==x}))),i=n.length;if(!i)return x;if(!n.some((function(e){return!!e.requiresSiblings}))){if(1===i)return n[0];var r=function(e,t){for(var i=0,r=n.length;i<r;i++){var o=n[i](e,t);if(o)return o}return null},o=n.find((function(e){return!!e.allBasenames}));o&&(r.allBasenames=o.allBasenames);var s=n.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);return s.length&&(r.allPaths=s),r}var l=function(e,t,i){for(var r=void 0,o=0,s=n.length;o<s;o++){var u=n[o];u.requiresSiblings&&i&&(t||(t=a.EZ(e)),r||(r=t.substr(0,t.length-a.DZ(e).length)));var l=u(e,t,r,i);if(l)return l}return null},c=n.find((function(e){return!!e.allBasenames}));c&&(l.allBasenames=c.allBasenames);var d=n.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);d.length&&(l.allPaths=d);return l}(e,t)}(e)(t,void 0,n)}function T(e,t){var n=e.filter((function(e){return!!e.basenames}));if(n.length<2)return e;var i,r=n.reduce((function(e,t){var n=t.basenames;return n?e.concat(n):e}),[]);if(t){i=[];for(var o=0,a=r.length;o<a;o++)i.push(t)}else i=n.reduce((function(e,t){var n=t.patterns;return n?e.concat(n):e}),[]);var s=function(e,t){if("string"!==typeof e)return null;if(!t){var n;for(n=e.length;n>0;n--){var o=e.charCodeAt(n-1);if(47===o||92===o)break}t=e.substr(n)}var a=r.indexOf(t);return-1!==a?i[a]:null};s.basenames=r,s.patterns=i,s.allBasenames=r;var u=e.filter((function(e){return!e.basenames}));return u.push(s),u}},25567:function(e,t,n){"use strict";n.d(t,{Cv:function(){return l},vp:function(){return a},yP:function(){return f}});var i=n(15671),r=n(43144),o=n(51747);function a(e){return s(e,0)}function s(e,t){switch(typeof e){case"object":return null===e?u(349,t):Array.isArray(e)?(n=e,i=u(104579,i=t),n.reduce((function(e,t){return s(t,e)}),i)):function(e,t){return t=u(181387,t),Object.keys(e).sort().reduce((function(t,n){return t=l(n,t),s(e[n],t)}),t)}(e,t);case"string":return l(e,t);case"boolean":return function(e,t){return u(e?433:863,t)}(e,t);case"number":return u(e,t);case"undefined":return u(937,t);default:return u(617,t)}var n,i}function u(e,t){return(t<<5)-t+e|0}function l(e,t){t=u(149417,t);for(var n=0,i=e.length;n<i;n++)t=u(e.charCodeAt(n),t);return t}function c(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:32)-t;return(e<<t|(~((1<<n)-1)&e)>>>n)>>>0}function d(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.byteLength,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=0;r<n;r++)e[t+r]=i}function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:32;return e instanceof ArrayBuffer?Array.from(new Uint8Array(e)).map((function(e){return e.toString(16).padStart(2,"0")})).join(""):function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"0";e.length<t;)e=n+e;return e}((e>>>0).toString(16),t/4)}var f=function(){function e(){(0,i.Z)(this,e),this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}return(0,r.Z)(e,[{key:"update",value:function(e){var t=e.length;if(0!==t){var n,i,r=this._buff,a=this._buffLen,s=this._leftoverHighSurrogate;for(0!==s?(n=s,i=-1,s=0):(n=e.charCodeAt(0),i=0);;){var u=n;if(o.ZG(n)){if(!(i+1<t)){s=n;break}var l=e.charCodeAt(i+1);o.YK(l)?(i++,u=o.rL(n,l)):u=65533}else o.YK(n)&&(u=65533);if(a=this._push(r,a,u),!(++i<t))break;n=e.charCodeAt(i)}this._buffLen=a,this._leftoverHighSurrogate=s}}},{key:"_push",value:function(e,t,n){return n<128?e[t++]=n:n<2048?(e[t++]=192|(1984&n)>>>6,e[t++]=128|(63&n)>>>0):n<65536?(e[t++]=224|(61440&n)>>>12,e[t++]=128|(4032&n)>>>6,e[t++]=128|(63&n)>>>0):(e[t++]=240|(1835008&n)>>>18,e[t++]=128|(258048&n)>>>12,e[t++]=128|(4032&n)>>>6,e[t++]=128|(63&n)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}},{key:"digest",value:function(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),h(this._h0)+h(this._h1)+h(this._h2)+h(this._h3)+h(this._h4)}},{key:"_wrapUp",value:function(){this._buff[this._buffLen++]=128,d(this._buff,this._buffLen),this._buffLen>56&&(this._step(),d(this._buff));var e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}},{key:"_step",value:function(){for(var t=e._bigBlock32,n=this._buffDV,i=0;i<64;i+=4)t.setUint32(i,n.getUint32(i,!1),!1);for(var r=64;r<320;r+=4)t.setUint32(r,c(t.getUint32(r-12,!1)^t.getUint32(r-32,!1)^t.getUint32(r-56,!1)^t.getUint32(r-64,!1),1),!1);for(var o,a,s,u=this._h0,l=this._h1,d=this._h2,h=this._h3,f=this._h4,p=0;p<80;p++)p<20?(o=l&d|~l&h,a=1518500249):p<40?(o=l^d^h,a=1859775393):p<60?(o=l&d|l&h|d&h,a=2400959708):(o=l^d^h,a=3395469782),s=c(u,5)+o+f+a+t.getUint32(4*p,!1)&4294967295,f=h,h=d,d=c(l,30),l=u,u=s;this._h0=this._h0+u&4294967295,this._h1=this._h1+l&4294967295,this._h2=this._h2+d&4294967295,this._h3=this._h3+h&4294967295,this._h4=this._h4+f&4294967295}}]),e}();f._bigBlock32=new DataView(new ArrayBuffer(320))},10939:function(e,t,n){"use strict";n.d(t,{Gt:function(){return v},Ho:function(){return g},Qo:function(){return c},f$:function(){return h},x$:function(){return p}});var i=n(37762),r=n(4354),o=n(50482),a=n(51747),s="$(",u=new RegExp("\\$\\(".concat(r.dT.iconNameExpression,"(?:").concat(r.dT.iconModifierExpression,")?\\)"),"g"),l=new RegExp("(\\\\)?".concat(u.source),"g");function c(e){return e.replace(l,(function(e,t){return t?e:"\\".concat(e)}))}var d=new RegExp("\\\\".concat(u.source),"g");function h(e){return e.replace(d,(function(e){return"\\".concat(e)}))}var f=new RegExp("(\\s)?(\\\\)?".concat(u.source,"(\\s)?"),"g");function p(e){return-1===e.indexOf(s)?e:e.replace(f,(function(e,t,n,i){return n?e:t||i||""}))}function g(e){var t=e.indexOf(s);return-1===t?{text:e}:function(e,t){var n=[],r="";function o(e){if(e){r+=e;var t,o=(0,i.Z)(e);try{for(o.s();!(t=o.n()).done;){t.value;n.push(d)}}catch(a){o.e(a)}finally{o.f()}}}var a,u,l=-1,c="",d=0,h=t,f=e.length;o(e.substr(0,t));for(;h<f;){if(a=e[h],u=e[h+1],a===s[0]&&u===s[1])l=h,o(c),c=s,h++;else if(")"===a&&-1!==l){d+=h-l+1,l=-1,c=""}else-1!==l?/^[a-z0-9\-]$/i.test(a)?c+=a:(o(c),l=-1,c=""):o(a);h++}return o(c),{text:r,iconOffsets:n}}(e,t)}function v(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t.text,s=t.iconOffsets;if(!s||0===s.length)return(0,o.Oh)(e,r,n);var u=(0,a.j3)(r," "),l=r.length-u.length,c=(0,o.Oh)(e,u,n);if(c){var d,h=(0,i.Z)(c);try{for(h.s();!(d=h.n()).done;){var f=d.value,p=s[f.start+l]+l;f.start+=p,f.end+=p}}catch(g){h.e(g)}finally{h.f()}}return c}},12394:function(e,t,n){"use strict";n.d(t,{R:function(){return o},a:function(){return a}});var i=n(15671),r=n(43144),o=function(){function e(t){(0,i.Z)(this,e),this._prefix=t,this._lastId=0}return(0,r.Z)(e,[{key:"nextId",value:function(){return this._prefix+ ++this._lastId}}]),e}(),a=new o("id#")},98900:function(e,t,n){"use strict";n.d(t,{$:function(){return i}});var i,r=n(4942),o=n(37762),a=n(87757),s=n.n(a);!function(e){var t=s().mark(c),n=s().mark(d),i=s().mark(h),a=s().mark(f),u=s().mark(p);e.is=function(e){return e&&"object"===typeof e&&"function"===typeof e[Symbol.iterator]};var l=Object.freeze([]);function c(e){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e;case 2:case"end":return t.stop()}}),t)}function d(e,t){var i,r,a;return s().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:i=(0,o.Z)(e),n.prev=1,i.s();case 3:if((r=i.n()).done){n.next=10;break}if(a=r.value,!t(a)){n.next=8;break}return n.next=8,a;case 8:n.next=3;break;case 10:n.next=15;break;case 12:n.prev=12,n.t0=n.catch(1),i.e(n.t0);case 15:return n.prev=15,i.f(),n.finish(15);case 18:case"end":return n.stop()}}),n,null,[[1,12,15,18]])}function h(e,t){var n,r,a;return s().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:n=(0,o.Z)(e),i.prev=1,n.s();case 3:if((r=n.n()).done){i.next=9;break}return a=r.value,i.next=7,t(a);case 7:i.next=3;break;case 9:i.next=14;break;case 11:i.prev=11,i.t0=i.catch(1),n.e(i.t0);case 14:return i.prev=14,n.f(),i.finish(14);case 17:case"end":return i.stop()}}),i,null,[[1,11,14,17]])}function f(){var e,t,n,i,r,u,l,c,d,h=arguments;return s().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:for(e=h.length,t=new Array(e),n=0;n<e;n++)t[n]=h[n];i=0,r=t;case 2:if(!(i<r.length)){a.next=24;break}u=r[i],l=(0,o.Z)(u),a.prev=5,l.s();case 7:if((c=l.n()).done){a.next=13;break}return d=c.value,a.next=11,d;case 11:a.next=7;break;case 13:a.next=18;break;case 15:a.prev=15,a.t0=a.catch(5),l.e(a.t0);case 18:return a.prev=18,l.f(),a.finish(18);case 21:i++,a.next=2;break;case 24:case"end":return a.stop()}}),a,null,[[5,15,18,21]])}function p(e){var t,n,i,r,a,l;return s().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:t=(0,o.Z)(e),s.prev=1,t.s();case 3:if((n=t.n()).done){s.next=24;break}i=n.value,r=(0,o.Z)(i),s.prev=6,r.s();case 8:if((a=r.n()).done){s.next=14;break}return l=a.value,s.next=12,l;case 12:s.next=8;break;case 14:s.next=19;break;case 16:s.prev=16,s.t0=s.catch(6),r.e(s.t0);case 19:return s.prev=19,r.f(),s.finish(19);case 22:s.next=3;break;case 24:s.next=29;break;case 26:s.prev=26,s.t1=s.catch(1),t.e(s.t1);case 29:return s.prev=29,t.f(),s.finish(29);case 32:case"end":return s.stop()}}),u,null,[[1,26,29,32],[6,16,19,22]])}e.empty=function(){return l},e.single=c,e.from=function(e){return e||l},e.isEmpty=function(e){return!e||!0===e[Symbol.iterator]().next().done},e.first=function(e){return e[Symbol.iterator]().next().value},e.some=function(e,t){var n,i=(0,o.Z)(e);try{for(i.s();!(n=i.n()).done;){if(t(n.value))return!0}}catch(r){i.e(r)}finally{i.f()}return!1},e.find=function(e,t){var n,i=(0,o.Z)(e);try{for(i.s();!(n=i.n()).done;){var r=n.value;if(t(r))return r}}catch(a){i.e(a)}finally{i.f()}},e.filter=d,e.map=h,e.concat=f,e.concatNested=p,e.reduce=function(e,t,n){var i,r=n,a=(0,o.Z)(e);try{for(a.s();!(i=a.n()).done;){r=t(r,i.value)}}catch(s){a.e(s)}finally{a.f()}return r},e.slice=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;return s().mark((function i(){return s().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:t<0&&(t+=e.length),n<0?n+=e.length:n>e.length&&(n=e.length);case 2:if(!(t<n)){i.next=8;break}return i.next=5,e[t];case 5:t++,i.next=2;break;case 8:case"end":return i.stop()}}),i)}))()},e.consume=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY,i=[];if(0===n)return[i,t];for(var o=t[Symbol.iterator](),a=0;a<n;a++){var s=o.next();if(s.done)return[i,e.empty()];i.push(s.value)}return[i,(0,r.Z)({},Symbol.iterator,(function(){return o}))]},e.equals=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e,t){return e===t},i=e[Symbol.iterator](),r=t[Symbol.iterator]();;){var o=i.next(),a=r.next();if(o.done!==a.done)return!1;if(o.done)return!0;if(!n(o.value,a.value))return!1}}}(i||(i={}))},38792:function(e,t,n){"use strict";n.d(t,{BQ:function(){return v},QC:function(){return p},f1:function(){return m},gm:function(){return h},gx:function(){return d},kL:function(){return i}});var i,r=n(15671),o=n(43144),a=n(8729),s=function(){function e(){(0,r.Z)(this,e),this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}return(0,o.Z)(e,[{key:"define",value:function(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}},{key:"keyCodeToStr",value:function(e){return this._keyCodeToStr[e]}},{key:"strToKeyCode",value:function(e){return this._strToKeyCode[e.toLowerCase()]||0}}]),e}(),u=new s,l=new s,c=new s;function d(e,t){return(e|(65535&t)<<16>>>0)>>>0}function h(e,t){if(0===e)return null;var n=(65535&e)>>>0,i=(4294901760&e)>>>16;return new g(0!==i?[f(n,t),f(i,t)]:[f(n,t)])}function f(e,t){var n=!!(2048&e),i=!!(256&e);return new p(2===t?i:n,!!(1024&e),!!(512&e),2===t?n:i,255&e)}!function(){function e(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;u.define(e,t),l.define(e,n),c.define(e,i)}e(0,"unknown"),e(1,"Backspace"),e(2,"Tab"),e(3,"Enter"),e(4,"Shift"),e(5,"Ctrl"),e(6,"Alt"),e(7,"PauseBreak"),e(8,"CapsLock"),e(9,"Escape"),e(10,"Space"),e(11,"PageUp"),e(12,"PageDown"),e(13,"End"),e(14,"Home"),e(15,"LeftArrow","Left"),e(16,"UpArrow","Up"),e(17,"RightArrow","Right"),e(18,"DownArrow","Down"),e(19,"Insert"),e(20,"Delete"),e(21,"0"),e(22,"1"),e(23,"2"),e(24,"3"),e(25,"4"),e(26,"5"),e(27,"6"),e(28,"7"),e(29,"8"),e(30,"9"),e(31,"A"),e(32,"B"),e(33,"C"),e(34,"D"),e(35,"E"),e(36,"F"),e(37,"G"),e(38,"H"),e(39,"I"),e(40,"J"),e(41,"K"),e(42,"L"),e(43,"M"),e(44,"N"),e(45,"O"),e(46,"P"),e(47,"Q"),e(48,"R"),e(49,"S"),e(50,"T"),e(51,"U"),e(52,"V"),e(53,"W"),e(54,"X"),e(55,"Y"),e(56,"Z"),e(57,"Meta"),e(58,"ContextMenu"),e(59,"F1"),e(60,"F2"),e(61,"F3"),e(62,"F4"),e(63,"F5"),e(64,"F6"),e(65,"F7"),e(66,"F8"),e(67,"F9"),e(68,"F10"),e(69,"F11"),e(70,"F12"),e(71,"F13"),e(72,"F14"),e(73,"F15"),e(74,"F16"),e(75,"F17"),e(76,"F18"),e(77,"F19"),e(78,"NumLock"),e(79,"ScrollLock"),e(80,";",";","OEM_1"),e(81,"=","=","OEM_PLUS"),e(82,",",",","OEM_COMMA"),e(83,"-","-","OEM_MINUS"),e(84,".",".","OEM_PERIOD"),e(85,"/","/","OEM_2"),e(86,"`","`","OEM_3"),e(110,"ABNT_C1"),e(111,"ABNT_C2"),e(87,"[","[","OEM_4"),e(88,"\\","\\","OEM_5"),e(89,"]","]","OEM_6"),e(90,"'","'","OEM_7"),e(91,"OEM_8"),e(92,"OEM_102"),e(93,"NumPad0"),e(94,"NumPad1"),e(95,"NumPad2"),e(96,"NumPad3"),e(97,"NumPad4"),e(98,"NumPad5"),e(99,"NumPad6"),e(100,"NumPad7"),e(101,"NumPad8"),e(102,"NumPad9"),e(103,"NumPad_Multiply"),e(104,"NumPad_Add"),e(105,"NumPad_Separator"),e(106,"NumPad_Subtract"),e(107,"NumPad_Decimal"),e(108,"NumPad_Divide")}(),function(e){e.toString=function(e){return u.keyCodeToStr(e)},e.fromString=function(e){return u.strToKeyCode(e)},e.toUserSettingsUS=function(e){return l.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return c.keyCodeToStr(e)},e.fromUserSettings=function(e){return l.strToKeyCode(e)||c.strToKeyCode(e)}}(i||(i={}));var p=function(){function e(t,n,i,o,a){(0,r.Z)(this,e),this.ctrlKey=t,this.shiftKey=n,this.altKey=i,this.metaKey=o,this.keyCode=a}return(0,o.Z)(e,[{key:"equals",value:function(e){return this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode}},{key:"isModifierKey",value:function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode}},{key:"toChord",value:function(){return new g([this])}},{key:"isDuplicateModifierCase",value:function(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode}}]),e}(),g=(0,o.Z)((function e(t){if((0,r.Z)(this,e),0===t.length)throw(0,a.b1)("parts");this.parts=t})),v=(0,o.Z)((function e(t,n,i,o,a,s){(0,r.Z)(this,e),this.ctrlKey=t,this.shiftKey=n,this.altKey=i,this.metaKey=o,this.keyLabel=a,this.keyAriaLabel=s})),m=(0,o.Z)((function e(){(0,r.Z)(this,e)}))},85733:function(e,t,n){"use strict";n.d(t,{X4:function(){return u},xo:function(){return s}});var i=n(15671),r=n(43144),o=n(56345),a=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n;(0,i.Z)(this,e),this.modifierLabels=[null],this.modifierLabels[2]=t,this.modifierLabels[1]=n,this.modifierLabels[3]=r}return(0,r.Z)(e,[{key:"toLabel",value:function(e,t,n){if(0===t.length)return null;for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=n(a);if(null===s)return null;i[r]=l(a,s,this.modifierLabels[e])}return i.join(" ")}}]),e}(),s=new a({ctrlKey:"\u2303",shiftKey:"\u21e7",altKey:"\u2325",metaKey:"\u2318",separator:""},{ctrlKey:o.N({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:o.N({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"windowsKey",comment:["This is the short form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:o.N({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:o.N({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"superKey",comment:["This is the short form for the Super key on the keyboard"]},"Super"),separator:"+"}),u=new a({ctrlKey:o.N({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:o.N({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"cmdKey.long",comment:["This is the long form for the Command key on the keyboard"]},"Command"),separator:"+"},{ctrlKey:o.N({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:o.N({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"windowsKey.long",comment:["This is the long form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:o.N({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:o.N({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"superKey.long",comment:["This is the long form for the Super key on the keyboard"]},"Super"),separator:"+"});function l(e,t,n){if(null===t)return"";var i=[];return e.ctrlKey&&i.push(n.ctrlKey),e.shiftKey&&i.push(n.shiftKey),e.altKey&&i.push(n.altKey),e.metaKey&&i.push(n.metaKey),""!==t&&i.push(t),i.join(n.separator)}},81626:function(e,t,n){"use strict";n.d(t,{B9:function(){return g},F8:function(){return v},JT:function(){return y},Jz:function(){return w},OF:function(){return m},SL:function(){return _},Wf:function(){return p},XK:function(){return b}});var i=n(37762),r=n(60136),o=n(29388),a=n(28664),s=n(15671),u=n(43144),l=n(98900),c=null;function d(e){c&&c.markTracked(e)}function h(e){return c?(c.trackDisposable(e),e):e}var f=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,"Encountered errors while disposing of store. Errors: [".concat(e.join(", "),"]"))).errors=e,i}return(0,u.Z)(n)}((0,a.Z)(Error));function p(e){return"function"===typeof e.dispose&&0===e.dispose.length}function g(e){if(l.$.is(e)){var t,n=[],r=(0,i.Z)(e);try{for(r.s();!(t=r.n()).done;){var o=t.value;if(o){d(o);try{o.dispose()}catch(a){n.push(a)}}}}catch(s){r.e(s)}finally{r.f()}if(1===n.length)throw n[0];if(n.length>1)throw new f(n);return Array.isArray(e)?[]:e}if(e)return d(e),e.dispose(),e}function v(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.forEach(d),m((function(){return g(t)}))}function m(e){var t=h({dispose:function(){d(t),e()}});return t}var _=function(){function e(){(0,s.Z)(this,e),this._toDispose=new Set,this._isDisposed=!1}return(0,u.Z)(e,[{key:"dispose",value:function(){this._isDisposed||(d(this),this._isDisposed=!0,this.clear())}},{key:"clear",value:function(){try{g(this._toDispose.values())}finally{this._toDispose.clear()}}},{key:"add",value:function(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return d(t),this._isDisposed?e.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}}]),e}();_.DISABLE_DISPOSED_WARNING=!1;var y=function(){function e(){(0,s.Z)(this,e),this._store=new _,h(this)}return(0,u.Z)(e,[{key:"dispose",value:function(){d(this),this._store.dispose()}},{key:"_register",value:function(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}}]),e}();y.None=Object.freeze({dispose:function(){}});var b=function(){function e(){(0,s.Z)(this,e),this._isDisposed=!1,h(this)}return(0,u.Z)(e,[{key:"value",get:function(){return this._isDisposed?void 0:this._value},set:function(e){var t;this._isDisposed||e===this._value||(null===(t=this._value)||void 0===t||t.dispose(),e&&d(e),this._value=e)}},{key:"clear",value:function(){this.value=void 0}},{key:"dispose",value:function(){var e;this._isDisposed=!0,d(this),null===(e=this._value)||void 0===e||e.dispose(),this._value=void 0}}]),e}(),w=function(){function e(t){(0,s.Z)(this,e),this.object=t}return(0,u.Z)(e,[{key:"dispose",value:function(){}}]),e}()},28214:function(e,t,n){"use strict";n.d(t,{S:function(){return u}});var i=n(43144),r=n(15671),o=n(87757),a=n.n(o),s=(0,i.Z)((function e(t){(0,r.Z)(this,e),this.element=t,this.next=e.Undefined,this.prev=e.Undefined}));s.Undefined=new s(void 0);var u=function(e){function t(){(0,r.Z)(this,t),this._first=s.Undefined,this._last=s.Undefined,this._size=0}return(0,i.Z)(t,[{key:"size",get:function(){return this._size}},{key:"isEmpty",value:function(){return this._first===s.Undefined}},{key:"clear",value:function(){this._first=s.Undefined,this._last=s.Undefined,this._size=0}},{key:"unshift",value:function(e){return this._insert(e,!1)}},{key:"push",value:function(e){return this._insert(e,!0)}},{key:"_insert",value:function(e,t){var n=this,i=new s(e);if(this._first===s.Undefined)this._first=i,this._last=i;else if(t){var r=this._last;this._last=i,i.prev=r,r.next=i}else{var o=this._first;this._first=i,i.next=o,o.prev=i}this._size+=1;var a=!1;return function(){a||(a=!0,n._remove(i))}}},{key:"shift",value:function(){if(this._first!==s.Undefined){var e=this._first.element;return this._remove(this._first),e}}},{key:"pop",value:function(){if(this._last!==s.Undefined){var e=this._last.element;return this._remove(this._last),e}}},{key:"_remove",value:function(e){if(e.prev!==s.Undefined&&e.next!==s.Undefined){var t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===s.Undefined&&e.next===s.Undefined?(this._first=s.Undefined,this._last=s.Undefined):e.next===s.Undefined?(this._last=this._last.prev,this._last.next=s.Undefined):e.prev===s.Undefined&&(this._first=this._first.next,this._first.prev=s.Undefined);this._size-=1}},{key:e,value:a().mark((function e(){var t;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this._first;case 1:if(t===s.Undefined){e.next=7;break}return e.next=4,t.element;case 4:t=t.next,e.next=1;break;case 7:case"end":return e.stop()}}),e,this)}))}]),t}(Symbol.iterator)},15022:function(e,t,n){"use strict";n.d(t,{Id:function(){return k},Y9:function(){return S},z6:function(){return L}});var i,r,o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(4942),c=n(37762),d=n(29439),h=n(15671),f=n(43144),p=n(87757),g=n.n(p),v=n(67775),m=n(51747),_=function(){function e(){(0,h.Z)(this,e),this._value="",this._pos=0}return(0,f.Z)(e,[{key:"reset",value:function(e){return this._value=e,this._pos=0,this}},{key:"next",value:function(){return this._pos+=1,this}},{key:"hasNext",value:function(){return this._pos<this._value.length-1}},{key:"cmp",value:function(e){return e.charCodeAt(0)-this._value.charCodeAt(this._pos)}},{key:"value",value:function(){return this._value[this._pos]}}]),e}(),y=function(){function e(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(0,h.Z)(this,e),this._caseSensitive=t}return(0,f.Z)(e,[{key:"reset",value:function(e){return this._value=e,this._from=0,this._to=0,this.next()}},{key:"hasNext",value:function(){return this._to<this._value.length}},{key:"next",value:function(){this._from=this._to;for(var e=!0;this._to<this._value.length;this._to++){if(46===this._value.charCodeAt(this._to)){if(!e)break;this._from++}else e=!1}return this}},{key:"cmp",value:function(e){return this._caseSensitive?(0,m.TT)(e,this._value,0,e.length,this._from,this._to):(0,m.j_)(e,this._value,0,e.length,this._from,this._to)}},{key:"value",value:function(){return this._value.substring(this._from,this._to)}}]),e}(),b=function(){function e(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];(0,h.Z)(this,e),this._splitOnBackslash=t,this._caseSensitive=n}return(0,f.Z)(e,[{key:"reset",value:function(e){return this._value=e.replace(/\\$|\/$/,""),this._from=0,this._to=0,this.next()}},{key:"hasNext",value:function(){return this._to<this._value.length}},{key:"next",value:function(){this._from=this._to;for(var e=!0;this._to<this._value.length;this._to++){var t=this._value.charCodeAt(this._to);if(47===t||this._splitOnBackslash&&92===t){if(!e)break;this._from++}else e=!1}return this}},{key:"cmp",value:function(e){return this._caseSensitive?(0,m.TT)(e,this._value,0,e.length,this._from,this._to):(0,m.j_)(e,this._value,0,e.length,this._from,this._to)}},{key:"value",value:function(){return this._value.substring(this._from,this._to)}}]),e}(),w=function(){function e(t){(0,h.Z)(this,e),this._ignorePathCasing=t,this._states=[],this._stateIdx=0}return(0,f.Z)(e,[{key:"reset",value:function(e){return this._value=e,this._states=[],this._value.scheme&&this._states.push(1),this._value.authority&&this._states.push(2),this._value.path&&(this._pathIterator=new b(!1,!this._ignorePathCasing(e)),this._pathIterator.reset(e.path),this._pathIterator.value()&&this._states.push(3)),this._value.query&&this._states.push(4),this._value.fragment&&this._states.push(5),this._stateIdx=0,this}},{key:"next",value:function(){return 3===this._states[this._stateIdx]&&this._pathIterator.hasNext()?this._pathIterator.next():this._stateIdx+=1,this}},{key:"hasNext",value:function(){return 3===this._states[this._stateIdx]&&this._pathIterator.hasNext()||this._stateIdx<this._states.length-1}},{key:"cmp",value:function(e){if(1===this._states[this._stateIdx])return(0,m.zY)(e,this._value.scheme);if(2===this._states[this._stateIdx])return(0,m.zY)(e,this._value.authority);if(3===this._states[this._stateIdx])return this._pathIterator.cmp(e);if(4===this._states[this._stateIdx])return(0,m.qu)(e,this._value.query);if(5===this._states[this._stateIdx])return(0,m.qu)(e,this._value.fragment);throw new Error}},{key:"value",value:function(){if(1===this._states[this._stateIdx])return this._value.scheme;if(2===this._states[this._stateIdx])return this._value.authority;if(3===this._states[this._stateIdx])return this._pathIterator.value();if(4===this._states[this._stateIdx])return this._value.query;if(5===this._states[this._stateIdx])return this._value.fragment;throw new Error}}]),e}(),C=function(){function e(){(0,h.Z)(this,e)}return(0,f.Z)(e,[{key:"isEmpty",value:function(){return!this.left&&!this.mid&&!this.right&&!this.value}}]),e}(),k=function(e){function t(e){(0,h.Z)(this,t),this._iter=e}return(0,f.Z)(t,[{key:"clear",value:function(){this._root=void 0}},{key:"set",value:function(e,t){var n,i=this._iter.reset(e);for(this._root||(this._root=new C,this._root.segment=i.value()),n=this._root;;){var r=i.cmp(n.segment);if(r>0)n.left||(n.left=new C,n.left.segment=i.value()),n=n.left;else if(r<0)n.right||(n.right=new C,n.right.segment=i.value()),n=n.right;else{if(!i.hasNext())break;i.next(),n.mid||(n.mid=new C,n.mid.segment=i.value()),n=n.mid}}var o=n.value;return n.value=t,n.key=e,o}},{key:"get",value:function(e){var t;return null===(t=this._getNode(e))||void 0===t?void 0:t.value}},{key:"_getNode",value:function(e){for(var t=this._iter.reset(e),n=this._root;n;){var i=t.cmp(n.segment);if(i>0)n=n.left;else if(i<0)n=n.right;else{if(!t.hasNext())break;t.next(),n=n.mid}}return n}},{key:"has",value:function(e){var t=this._getNode(e);return!(void 0===(null===t||void 0===t?void 0:t.value)&&void 0===(null===t||void 0===t?void 0:t.mid))}},{key:"delete",value:function(e){return this._delete(e,!1)}},{key:"deleteSuperstr",value:function(e){return this._delete(e,!0)}},{key:"_delete",value:function(e,t){for(var n=this._iter.reset(e),i=[],r=this._root;r;){var o=n.cmp(r.segment);if(o>0)i.push([1,r]),r=r.left;else if(o<0)i.push([-1,r]),r=r.right;else{if(!n.hasNext()){for(t?(r.left=void 0,r.mid=void 0,r.right=void 0):r.value=void 0;i.length>0&&r.isEmpty();){var a=i.pop(),s=(0,d.Z)(a,2),u=s[0],l=s[1];switch(u){case 1:l.left=void 0;break;case 0:l.mid=void 0;break;case-1:l.right=void 0}r=l}break}n.next(),i.push([0,r]),r=r.mid}}}},{key:"findSubstr",value:function(e){for(var t=this._iter.reset(e),n=this._root,i=void 0;n;){var r=t.cmp(n.segment);if(r>0)n=n.left;else if(r<0)n=n.right;else{if(!t.hasNext())break;t.next(),i=n.value||i,n=n.mid}}return n&&n.value||i}},{key:"findSuperstr",value:function(e){for(var t=this._iter.reset(e),n=this._root;n;){var i=t.cmp(n.segment);if(i>0)n=n.left;else if(i<0)n=n.right;else{if(!t.hasNext())return n.mid?this._entries(n.mid):void 0;t.next(),n=n.mid}}}},{key:"forEach",value:function(e){var t,n=(0,c.Z)(this);try{for(n.s();!(t=n.n()).done;){var i=(0,d.Z)(t.value,2),r=i[0];e(i[1],r)}}catch(o){n.e(o)}finally{n.f()}}},{key:e,value:g().mark((function e(){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(this._entries(this._root),"t0",1);case 1:case"end":return e.stop()}}),e,this)}))},{key:"_entries",value:g().mark((function e(t){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=7;break}return e.delegateYield(this._entries(t.left),"t0",2);case 2:if(!t.value){e.next=5;break}return e.next=5,[t.key,t.value];case 5:return e.delegateYield(this._entries(t.mid),"t1",6);case 6:return e.delegateYield(this._entries(t.right),"t2",7);case 7:case"end":return e.stop()}}),e,this)}))}],[{key:"forUris",value:function(){return new t(new w(arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1}))}},{key:"forStrings",value:function(){return new t(new _)}},{key:"forConfigKeys",value:function(){return new t(new y)}}]),t}(Symbol.iterator),S=function(e){function t(e,n){(0,h.Z)(this,t),this[i]="ResourceMap",e instanceof t?(this.map=new Map(e.map),this.toKey=null!==n&&void 0!==n?n:t.defaultToKey):(this.map=new Map,this.toKey=null!==e&&void 0!==e?e:t.defaultToKey)}return(0,f.Z)(t,[{key:"set",value:function(e,t){return this.map.set(this.toKey(e),t),this}},{key:"get",value:function(e){return this.map.get(this.toKey(e))}},{key:"has",value:function(e){return this.map.has(this.toKey(e))}},{key:"size",get:function(){return this.map.size}},{key:"clear",value:function(){this.map.clear()}},{key:"delete",value:function(e){return this.map.delete(this.toKey(e))}},{key:"forEach",value:function(e,t){"undefined"!==typeof t&&(e=e.bind(t));var n,i=(0,c.Z)(this.map);try{for(i.s();!(n=i.n()).done;){var r=(0,d.Z)(n.value,2),o=r[0];e(r[1],v.o.parse(o),this)}}catch(a){i.e(a)}finally{i.f()}}},{key:"values",value:function(){return this.map.values()}},{key:"keys",value:g().mark((function e(){var t,n,i;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=(0,c.Z)(this.map.keys()),e.prev=1,t.s();case 3:if((n=t.n()).done){e.next=9;break}return i=n.value,e.next=7,v.o.parse(i);case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))},{key:"entries",value:g().mark((function e(){var t,n,i;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=(0,c.Z)(this.map.entries()),e.prev=1,t.s();case 3:if((n=t.n()).done){e.next=9;break}return i=n.value,e.next=7,[v.o.parse(i[0]),i[1]];case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))},{key:e,value:g().mark((function e(){var t,n,i;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=(0,c.Z)(this.map),e.prev=1,t.s();case 3:if((n=t.n()).done){e.next=9;break}return i=n.value,e.next=7,[v.o.parse(i[0]),i[1]];case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))}]),t}((i=Symbol.toStringTag,Symbol.iterator));S.defaultToKey=function(e){return e.toString()};var x=function(e){function t(){(0,h.Z)(this,t),this[r]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}return(0,f.Z)(t,[{key:"clear",value:function(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}},{key:"isEmpty",value:function(){return!this._head&&!this._tail}},{key:"size",get:function(){return this._size}},{key:"first",get:function(){var e;return null===(e=this._head)||void 0===e?void 0:e.value}},{key:"last",get:function(){var e;return null===(e=this._tail)||void 0===e?void 0:e.value}},{key:"has",value:function(e){return this._map.has(e)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this._map.get(e);if(n)return 0!==t&&this.touch(n,t),n.value}},{key:"set",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=this._map.get(e);if(i)i.value=t,0!==n&&this.touch(i,n);else{switch(i={key:e,value:t,next:void 0,previous:void 0},n){case 0:case 2:default:this.addItemLast(i);break;case 1:this.addItemFirst(i)}this._map.set(e,i),this._size++}return this}},{key:"delete",value:function(e){return!!this.remove(e)}},{key:"remove",value:function(e){var t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}},{key:"shift",value:function(){if(this._head||this._tail){if(!this._head||!this._tail)throw new Error("Invalid list");var e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}}},{key:"forEach",value:function(e,t){for(var n=this._state,i=this._head;i;){if(t?e.bind(t)(i.value,i.key,this):e(i.value,i.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");i=i.next}}},{key:"keys",value:function(){var e,t=this,n=this._state,i=this._head,r=(e={},(0,l.Z)(e,Symbol.iterator,(function(){return r})),(0,l.Z)(e,"next",(function(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(i){var e={value:i.key,done:!1};return i=i.next,e}return{value:void 0,done:!0}})),e);return r}},{key:"values",value:function(){var e,t=this,n=this._state,i=this._head,r=(e={},(0,l.Z)(e,Symbol.iterator,(function(){return r})),(0,l.Z)(e,"next",(function(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(i){var e={value:i.value,done:!1};return i=i.next,e}return{value:void 0,done:!0}})),e);return r}},{key:"entries",value:function(){var e,t=this,n=this._state,i=this._head,r=(e={},(0,l.Z)(e,Symbol.iterator,(function(){return r})),(0,l.Z)(e,"next",(function(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(i){var e={value:[i.key,i.value],done:!1};return i=i.next,e}return{value:void 0,done:!0}})),e);return r}},{key:e,value:function(){return this.entries()}},{key:"trimOld",value:function(e){if(!(e>=this.size))if(0!==e){for(var t=this._head,n=this.size;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t&&(t.previous=void 0),this._state++}else this.clear()}},{key:"addItemFirst",value:function(e){if(this._head||this._tail){if(!this._head)throw new Error("Invalid list");e.next=this._head,this._head.previous=e}else this._tail=e;this._head=e,this._state++}},{key:"addItemLast",value:function(e){if(this._head||this._tail){if(!this._tail)throw new Error("Invalid list");e.previous=this._tail,this._tail.next=e}else this._head=e;this._tail=e,this._state++}},{key:"removeItem",value:function(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{var t=e.next,n=e.previous;if(!t||!n)throw new Error("Invalid list");t.previous=n,n.next=t}e.next=void 0,e.previous=void 0,this._state++}},{key:"touch",value:function(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(1===t||2===t)if(1===t){if(e===this._head)return;var n=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(2===t){if(e===this._tail)return;var r=e.next,o=e.previous;e===this._head?(r.previous=void 0,this._head=r):(r.previous=o,o.next=r),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}},{key:"toJSON",value:function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),e}},{key:"fromJSON",value:function(e){this.clear();var t,n=(0,c.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=(0,d.Z)(t.value,2),r=i[0],o=i[1];this.set(r,o)}}catch(a){n.e(a)}finally{n.f()}}}]),t}((r=Symbol.toStringTag,Symbol.iterator)),L=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return(0,h.Z)(this,n),(i=t.call(this))._limit=e,i._ratio=Math.min(Math.max(0,r),1),i}return(0,f.Z)(n,[{key:"limit",get:function(){return this._limit},set:function(e){this._limit=e,this.checkTrim()}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return(0,o.Z)((0,a.Z)(n.prototype),"get",this).call(this,e,t)}},{key:"peek",value:function(e){return(0,o.Z)((0,a.Z)(n.prototype),"get",this).call(this,e,0)}},{key:"set",value:function(e,t){return(0,o.Z)((0,a.Z)(n.prototype),"set",this).call(this,e,t,2),this.checkTrim(),this}},{key:"checkTrim",value:function(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}]),n}(x)},61329:function(e){e.exports=function(){"use strict";function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function t(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}function n(e,t){if(e){if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function r(e,t){var i;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(i=n(e))||t&&e&&"number"===typeof e.length){i&&(e=i);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(i=e[Symbol.iterator]()).next.bind(i)}function o(e){var t={exports:{}};return e(t,t.exports),t.exports}var a=o((function(e){function t(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}function n(t){e.exports.defaults=t}e.exports={defaults:t(),getDefaults:t,changeDefaults:n}})),s=/[&<>"']/,u=/[&<>"']/g,l=/[<>"']|&(?!#?\w+;)/,c=/[<>"']|&(?!#?\w+;)/g,d={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},h=function(e){return d[e]};function f(e,t){if(t){if(s.test(e))return e.replace(u,h)}else if(l.test(e))return e.replace(c,h);return e}var p=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function g(e){return e.replace(p,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var v=/(^|[^\[])\^/g;function m(e,t){e=e.source||e,t=t||"";var n={replace:function(t,i){return i=(i=i.source||i).replace(v,"$1"),e=e.replace(t,i),n},getRegex:function(){return new RegExp(e,t)}};return n}var _=/[^\w:]/g,y=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function b(e,t,n){if(e){var i;try{i=decodeURIComponent(g(n)).replace(_,"").toLowerCase()}catch(r){return null}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return null}t&&!y.test(n)&&(n=x(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(r){return null}return n}var w={},C=/^[^:]+:\/*[^/]*$/,k=/^([^:]+:)[\s\S]*$/,S=/^([^:]+:\/*[^/]*)[\s\S]*$/;function x(e,t){w[" "+e]||(C.test(e)?w[" "+e]=e+"/":w[" "+e]=N(e,"/",!0));var n=-1===(e=w[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(k,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(S,"$1")+t:e+t}function L(e){for(var t,n,i=1;i<arguments.length;i++)for(n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}function E(e,t){var n=e.replace(/\|/g,(function(e,t,n){for(var i=!1,r=t;--r>=0&&"\\"===n[r];)i=!i;return i?"|":" |"})).split(/ \|/),i=0;if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;i<n.length;i++)n[i]=n[i].trim().replace(/\\\|/g,"|");return n}function N(e,t,n){var i=e.length;if(0===i)return"";for(var r=0;r<i;){var o=e.charAt(i-r-1);if(o!==t||n){if(o===t||!n)break;r++}else r++}return e.substr(0,i-r)}function D(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=e.length,i=0,r=0;r<n;r++)if("\\"===e[r])r++;else if(e[r]===t[0])i++;else if(e[r]===t[1]&&--i<0)return r;return-1}function M(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function T(e,t){if(t<1)return"";for(var n="";t>1;)1&t&&(n+=e),t>>=1,e+=e;return n+e}var O={escape:f,unescape:g,edit:m,cleanUrl:b,resolveUrl:x,noopTest:{exec:function(){}},merge:L,splitCells:E,rtrim:N,findClosingBracket:D,checkSanitizeDeprecation:M,repeatString:T},I=a.defaults,A=O.rtrim,R=O.splitCells,P=O.escape,Z=O.findClosingBracket;function F(e,t,n){var i=t.href,r=t.title?P(t.title):null,o=e[1].replace(/\\([\[\]])/g,"$1");return"!"!==e[0].charAt(0)?{type:"link",raw:n,href:i,title:r,text:o}:{type:"image",raw:n,href:i,title:r,text:P(o)}}function j(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var i=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=i.length?e.slice(i.length):e})).join("\n")}var H=function(){function e(e){this.options=e||I}var t=e.prototype;return t.space=function(e){var t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}},t.code=function(e){var t=this.rules.block.code.exec(e);if(t){var n=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:A(n,"\n")}}},t.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],i=j(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:i}}},t.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var n=t[2].trim();if(/#$/.test(n)){var i=A(n,"#");this.options.pedantic?n=i.trim():i&&!/ $/.test(i)||(n=i.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n}}},t.nptable=function(e){var t=this.rules.block.nptable.exec(e);if(t){var n={type:"table",header:R(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(n.header.length===n.align.length){var i,r=n.align.length;for(i=0;i<r;i++)/^ *-+: *$/.test(n.align[i])?n.align[i]="right":/^ *:-+: *$/.test(n.align[i])?n.align[i]="center":/^ *:-+ *$/.test(n.align[i])?n.align[i]="left":n.align[i]=null;for(r=n.cells.length,i=0;i<r;i++)n.cells[i]=R(n.cells[i],n.header.length);return n}}},t.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}},t.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var n=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],text:n}}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){var n,i,r,o,a,s,u,l,c=t[0],d=t[2],h=d.length>1,f={type:"list",raw:c,ordered:h,start:h?+d.slice(0,-1):"",loose:!1,items:[]},p=t[0].match(this.rules.block.item),g=!1,v=p.length;r=this.rules.block.listItemStart.exec(p[0]);for(var m=0;m<v;m++){if(c=n=p[m],m!==v-1){if(o=this.rules.block.listItemStart.exec(p[m+1]),this.options.pedantic?o[1].length>r[1].length:o[1].length>r[0].length||o[1].length>3){p.splice(m,2,p[m]+"\n"+p[m+1]),m--,v--;continue}(!this.options.pedantic||this.options.smartLists?o[2][o[2].length-1]!==d[d.length-1]:h===(1===o[2].length))&&(a=p.slice(m+1).join("\n"),f.raw=f.raw.substring(0,f.raw.length-a.length),m=v-1),r=o}i=n.length,~(n=n.replace(/^ *([*+-]|\d+[.)]) ?/,"")).indexOf("\n ")&&(i-=n.length,n=this.options.pedantic?n.replace(/^ {1,4}/gm,""):n.replace(new RegExp("^ {1,"+i+"}","gm"),"")),s=g||/\n\n(?!\s*$)/.test(n),m!==v-1&&(g="\n"===n.charAt(n.length-1),s||(s=g)),s&&(f.loose=!0),this.options.gfm&&(l=void 0,(u=/^\[[ xX]\] /.test(n))&&(l=" "!==n[1],n=n.replace(/^\[[ xX]\] +/,""))),f.items.push({type:"list_item",raw:c,task:u,checked:l,loose:s,text:n})}return f}},t.html=function(e){var t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):P(t[0]):t[0]}},t.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},t.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:R(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var i,r=n.align.length;for(i=0;i<r;i++)/^ *-+: *$/.test(n.align[i])?n.align[i]="right":/^ *:-+: *$/.test(n.align[i])?n.align[i]="center":/^ *:-+ *$/.test(n.align[i])?n.align[i]="left":n.align[i]=null;for(r=n.cells.length,i=0;i<r;i++)n.cells[i]=R(n.cells[i].replace(/^ *\| *| *\| *$/g,""),n.header.length);return n}}},t.lheading=function(e){var t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1]}},t.paragraph=function(e){var t=this.rules.block.paragraph.exec(e);if(t)return{type:"paragraph",raw:t[0],text:"\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1]}},t.text=function(e){var t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0]}},t.escape=function(e){var t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:P(t[1])}},t.tag=function(e,t,n){var i=this.rules.inline.tag.exec(e);if(i)return!t&&/^<a /i.test(i[0])?t=!0:t&&/^<\/a>/i.test(i[0])&&(t=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(i[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(i[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:i[0],inLink:t,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):P(i[0]):i[0]}},t.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=t[2].trim();if(!this.options.pedantic&&/^</.test(n)){if(!/>$/.test(n))return;var i=A(n.slice(0,-1),"\\");if((n.length-i.length)%2===0)return}else{var r=Z(t[2],"()");if(r>-1){var o=(0===t[0].indexOf("!")?5:4)+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,o).trim(),t[3]=""}}var a=t[2],s="";if(this.options.pedantic){var u=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(a);u&&(a=u[1],s=u[3])}else s=t[3]?t[3].slice(1,-1):"";return a=a.trim(),/^</.test(a)&&(a=this.options.pedantic&&!/>$/.test(n)?a.slice(1):a.slice(1,-1)),F(t,{href:a?a.replace(this.rules.inline._escapes,"$1"):a,title:s?s.replace(this.rules.inline._escapes,"$1"):s},t[0])}},t.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var i=(n[2]||n[1]).replace(/\s+/g," ");if(!(i=t[i.toLowerCase()])||!i.href){var r=n[0].charAt(0);return{type:"text",raw:r,text:r}}return F(n,i,n[0])}},t.emStrong=function(e,t,n){void 0===n&&(n="");var i=this.rules.inline.emStrong.lDelim.exec(e);if(i&&(!i[3]||!n.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var r=i[1]||i[2]||"";if(!r||r&&(""===n||this.rules.inline.punctuation.exec(n))){var o,a,s=i[0].length-1,u=s,l=0,c="*"===i[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+s);null!=(i=c.exec(t));)if(o=i[1]||i[2]||i[3]||i[4]||i[5]||i[6])if(a=o.length,i[3]||i[4])u+=a;else if(!((i[5]||i[6])&&s%3)||(s+a)%3){if(!((u-=a)>0)){if(u+l-a<=0&&!t.slice(c.lastIndex).match(c)&&(a=Math.min(a,a+u+l)),Math.min(s,a)%2)return{type:"em",raw:e.slice(0,s+i.index+a+1),text:e.slice(1,s+i.index+a)};if(Math.min(s,a)%2===0)return{type:"strong",raw:e.slice(0,s+i.index+a+1),text:e.slice(2,s+i.index+a-1)}}}else l+=a}}},t.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),i=/[^ ]/.test(n),r=/^ /.test(n)&&/ $/.test(n);return i&&r&&(n=n.substring(1,n.length-1)),n=P(n,!0),{type:"codespan",raw:t[0],text:n}}},t.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},t.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2]}},t.autolink=function(e,t){var n,i,r=this.rules.inline.autolink.exec(e);if(r)return i="@"===r[2]?"mailto:"+(n=P(this.options.mangle?t(r[1]):r[1])):n=P(r[1]),{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}},t.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var i,r;if("@"===n[2])r="mailto:"+(i=P(this.options.mangle?t(n[0]):n[0]));else{var o;do{o=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(o!==n[0]);i=P(n[0]),r="www."===n[1]?"http://"+i:i}return{type:"link",raw:n[0],text:i,href:r,tokens:[{type:"text",raw:i,text:i}]}}},t.inlineText=function(e,t,n){var i,r=this.rules.inline.text.exec(e);if(r)return i=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):P(r[0]):r[0]:P(this.options.smartypants?n(r[0]):r[0]),{type:"text",raw:r[0],text:i}},e}(),B=O.noopTest,z=O.edit,W=O.merge,V={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:B,table:B,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};V.def=z(V.def).replace("label",V._label).replace("title",V._title).getRegex(),V.bullet=/(?:[*+-]|\d{1,9}[.)])/,V.item=/^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/,V.item=z(V.item,"gm").replace(/bull/g,V.bullet).getRegex(),V.listItemStart=z(/^( *)(bull)/).replace("bull",V.bullet).getRegex(),V.list=z(V.list).replace(/bull/g,V.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+V.def.source+")").getRegex(),V._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",V._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,V.html=z(V.html,"i").replace("comment",V._comment).replace("tag",V._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),V.paragraph=z(V._paragraph).replace("hr",V.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",V._tag).getRegex(),V.blockquote=z(V.blockquote).replace("paragraph",V.paragraph).getRegex(),V.normal=W({},V),V.gfm=W({},V.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),V.gfm.nptable=z(V.gfm.nptable).replace("hr",V.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",V._tag).getRegex(),V.gfm.table=z(V.gfm.table).replace("hr",V.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",V._tag).getRegex(),V.pedantic=W({},V.normal,{html:z("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",V._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:B,paragraph:z(V.normal._paragraph).replace("hr",V.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",V.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var Y={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:B,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/\_\_[^_]*?\*[^_]*?\_\_|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/\*\*[^*]*?\_[^*]*?\*\*|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:B,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/,_punctuation:"!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~"};Y.punctuation=z(Y.punctuation).replace(/punctuation/g,Y._punctuation).getRegex(),Y.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Y.escapedEmSt=/\\\*|\\_/g,Y._comment=z(V._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Y.emStrong.lDelim=z(Y.emStrong.lDelim).replace(/punct/g,Y._punctuation).getRegex(),Y.emStrong.rDelimAst=z(Y.emStrong.rDelimAst,"g").replace(/punct/g,Y._punctuation).getRegex(),Y.emStrong.rDelimUnd=z(Y.emStrong.rDelimUnd,"g").replace(/punct/g,Y._punctuation).getRegex(),Y._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Y._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Y._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Y.autolink=z(Y.autolink).replace("scheme",Y._scheme).replace("email",Y._email).getRegex(),Y._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Y.tag=z(Y.tag).replace("comment",Y._comment).replace("attribute",Y._attribute).getRegex(),Y._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Y._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Y._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Y.link=z(Y.link).replace("label",Y._label).replace("href",Y._href).replace("title",Y._title).getRegex(),Y.reflink=z(Y.reflink).replace("label",Y._label).getRegex(),Y.reflinkSearch=z(Y.reflinkSearch,"g").replace("reflink",Y.reflink).replace("nolink",Y.nolink).getRegex(),Y.normal=W({},Y),Y.pedantic=W({},Y.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:z(/^!?\[(label)\]\((.*?)\)/).replace("label",Y._label).getRegex(),reflink:z(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Y._label).getRegex()}),Y.gfm=W({},Y.normal,{escape:z(Y.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),Y.gfm.url=z(Y.gfm.url,"i").replace("email",Y.gfm._extended_email).getRegex(),Y.breaks=W({},Y.gfm,{br:z(Y.br).replace("{2,}","*").getRegex(),text:z(Y.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var U={block:V,inline:Y},K=a.defaults,q=U.block,G=U.inline,$=O.repeatString;function Q(e){return e.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201c").replace(/"/g,"\u201d").replace(/\.{3}/g,"\u2026")}function X(e){var t,n,i="",r=e.length;for(t=0;t<r;t++)n=e.charCodeAt(t),Math.random()>.5&&(n="x"+n.toString(16)),i+="&#"+n+";";return i}var J=function(){function e(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||K,this.options.tokenizer=this.options.tokenizer||new H,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var t={block:q.normal,inline:G.normal};this.options.pedantic?(t.block=q.pedantic,t.inline=G.pedantic):this.options.gfm&&(t.block=q.gfm,this.options.breaks?t.inline=G.breaks:t.inline=G.gfm),this.tokenizer.rules=t}e.lex=function(t,n){return new e(n).lex(t)},e.lexInline=function(t,n){return new e(n).inlineTokens(t)};var n=e.prototype;return n.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens},n.blockTokens=function(e,t,n){var i,r,o,a;for(void 0===t&&(t=[]),void 0===n&&(n=!0),this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(i=this.tokenizer.space(e))e=e.substring(i.raw.length),i.type&&t.push(i);else if(i=this.tokenizer.code(e))e=e.substring(i.raw.length),(a=t[t.length-1])&&"paragraph"===a.type?(a.raw+="\n"+i.raw,a.text+="\n"+i.text):t.push(i);else if(i=this.tokenizer.fences(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.heading(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.nptable(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.hr(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.blockquote(e))e=e.substring(i.raw.length),i.tokens=this.blockTokens(i.text,[],n),t.push(i);else if(i=this.tokenizer.list(e)){for(e=e.substring(i.raw.length),o=i.items.length,r=0;r<o;r++)i.items[r].tokens=this.blockTokens(i.items[r].text,[],!1);t.push(i)}else if(i=this.tokenizer.html(e))e=e.substring(i.raw.length),t.push(i);else if(n&&(i=this.tokenizer.def(e)))e=e.substring(i.raw.length),this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});else if(i=this.tokenizer.table(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.lheading(e))e=e.substring(i.raw.length),t.push(i);else if(n&&(i=this.tokenizer.paragraph(e)))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.text(e))e=e.substring(i.raw.length),(a=t[t.length-1])&&"text"===a.type?(a.raw+="\n"+i.raw,a.text+="\n"+i.text):t.push(i);else if(e){var s="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(s);break}throw new Error(s)}return t},n.inline=function(e){var t,n,i,r,o,a,s=e.length;for(t=0;t<s;t++)switch((a=e[t]).type){case"paragraph":case"text":case"heading":a.tokens=[],this.inlineTokens(a.text,a.tokens);break;case"table":for(a.tokens={header:[],cells:[]},r=a.header.length,n=0;n<r;n++)a.tokens.header[n]=[],this.inlineTokens(a.header[n],a.tokens.header[n]);for(r=a.cells.length,n=0;n<r;n++)for(o=a.cells[n],a.tokens.cells[n]=[],i=0;i<o.length;i++)a.tokens.cells[n][i]=[],this.inlineTokens(o[i],a.tokens.cells[n][i]);break;case"blockquote":this.inline(a.tokens);break;case"list":for(r=a.items.length,n=0;n<r;n++)this.inline(a.items[n].tokens)}return e},n.inlineTokens=function(e,t,n,i){var r,o;void 0===t&&(t=[]),void 0===n&&(n=!1),void 0===i&&(i=!1);var a,s,u,l=e;if(this.tokens.links){var c=Object.keys(this.tokens.links);if(c.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(l));)c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,a.index)+"["+$("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,a.index)+"["+$("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(l));)l=l.slice(0,a.index)+"++"+l.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(s||(u=""),s=!1,r=this.tokenizer.escape(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.tag(e,n,i)){e=e.substring(r.raw.length),n=r.inLink,i=r.inRawBlock;var d=t[t.length-1];d&&"text"===r.type&&"text"===d.type?(d.raw+=r.raw,d.text+=r.text):t.push(r)}else if(r=this.tokenizer.link(e))e=e.substring(r.raw.length),"link"===r.type&&(r.tokens=this.inlineTokens(r.text,[],!0,i)),t.push(r);else if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);var h=t[t.length-1];"link"===r.type?(r.tokens=this.inlineTokens(r.text,[],!0,i),t.push(r)):h&&"text"===r.type&&"text"===h.type?(h.raw+=r.raw,h.text+=r.text):t.push(r)}else if(r=this.tokenizer.emStrong(e,l,u))e=e.substring(r.raw.length),r.tokens=this.inlineTokens(r.text,[],n,i),t.push(r);else if(r=this.tokenizer.codespan(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.br(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.del(e))e=e.substring(r.raw.length),r.tokens=this.inlineTokens(r.text,[],n,i),t.push(r);else if(r=this.tokenizer.autolink(e,X))e=e.substring(r.raw.length),t.push(r);else if(n||!(r=this.tokenizer.url(e,X))){if(r=this.tokenizer.inlineText(e,i,Q))e=e.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(u=r.raw.slice(-1)),s=!0,(o=t[t.length-1])&&"text"===o.type?(o.raw+=r.raw,o.text+=r.text):t.push(r);else if(e){var f="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(f);break}throw new Error(f)}}else e=e.substring(r.raw.length),t.push(r);return t},t(e,null,[{key:"rules",get:function(){return{block:q,inline:G}}}]),e}(),ee=a.defaults,te=O.cleanUrl,ne=O.escape,ie=function(){function e(e){this.options=e||ee}var t=e.prototype;return t.code=function(e,t,n){var i=(t||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(e,i);null!=r&&r!==e&&(n=!0,e=r)}return e=e.replace(/\n$/,"")+"\n",i?'<pre><code class="'+this.options.langPrefix+ne(i,!0)+'">'+(n?e:ne(e,!0))+"</code></pre>\n":"<pre><code>"+(n?e:ne(e,!0))+"</code></pre>\n"},t.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},t.html=function(e){return e},t.heading=function(e,t,n,i){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+i.slug(n)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"},t.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},t.list=function(e,t,n){var i=t?"ol":"ul";return"<"+i+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"</"+i+">\n"},t.listitem=function(e){return"<li>"+e+"</li>\n"},t.checkbox=function(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},t.paragraph=function(e){return"<p>"+e+"</p>\n"},t.table=function(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"},t.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},t.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"},t.strong=function(e){return"<strong>"+e+"</strong>"},t.em=function(e){return"<em>"+e+"</em>"},t.codespan=function(e){return"<code>"+e+"</code>"},t.br=function(){return this.options.xhtml?"<br/>":"<br>"},t.del=function(e){return"<del>"+e+"</del>"},t.link=function(e,t,n){if(null===(e=te(this.options.sanitize,this.options.baseUrl,e)))return n;var i='<a href="'+ne(e)+'"';return t&&(i+=' title="'+t+'"'),i+=">"+n+"</a>"},t.image=function(e,t,n){if(null===(e=te(this.options.sanitize,this.options.baseUrl,e)))return n;var i='<img src="'+e+'" alt="'+n+'"';return t&&(i+=' title="'+t+'"'),i+=this.options.xhtml?"/>":">"},t.text=function(e){return e},e}(),re=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),oe=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,i=0;if(this.seen.hasOwnProperty(n)){i=this.seen[e];do{n=e+"-"+ ++i}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=i,this.seen[n]=0),n},t.slug=function(e,t){void 0===t&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),ae=a.defaults,se=O.unescape,ue=function(){function e(e){this.options=e||ae,this.options.renderer=this.options.renderer||new ie,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new re,this.slugger=new oe}e.parse=function(t,n){return new e(n).parse(t)},e.parseInline=function(t,n){return new e(n).parseInline(t)};var t=e.prototype;return t.parse=function(e,t){void 0===t&&(t=!0);var n,i,r,o,a,s,u,l,c,d,h,f,p,g,v,m,_,y,b="",w=e.length;for(n=0;n<w;n++)switch((d=e[n]).type){case"space":continue;case"hr":b+=this.renderer.hr();continue;case"heading":b+=this.renderer.heading(this.parseInline(d.tokens),d.depth,se(this.parseInline(d.tokens,this.textRenderer)),this.slugger);continue;case"code":b+=this.renderer.code(d.text,d.lang,d.escaped);continue;case"table":for(l="",u="",o=d.header.length,i=0;i<o;i++)u+=this.renderer.tablecell(this.parseInline(d.tokens.header[i]),{header:!0,align:d.align[i]});for(l+=this.renderer.tablerow(u),c="",o=d.cells.length,i=0;i<o;i++){for(u="",a=(s=d.tokens.cells[i]).length,r=0;r<a;r++)u+=this.renderer.tablecell(this.parseInline(s[r]),{header:!1,align:d.align[r]});c+=this.renderer.tablerow(u)}b+=this.renderer.table(l,c);continue;case"blockquote":c=this.parse(d.tokens),b+=this.renderer.blockquote(c);continue;case"list":for(h=d.ordered,f=d.start,p=d.loose,o=d.items.length,c="",i=0;i<o;i++)m=(v=d.items[i]).checked,_=v.task,g="",v.task&&(y=this.renderer.checkbox(m),p?v.tokens.length>0&&"text"===v.tokens[0].type?(v.tokens[0].text=y+" "+v.tokens[0].text,v.tokens[0].tokens&&v.tokens[0].tokens.length>0&&"text"===v.tokens[0].tokens[0].type&&(v.tokens[0].tokens[0].text=y+" "+v.tokens[0].tokens[0].text)):v.tokens.unshift({type:"text",text:y}):g+=y),g+=this.parse(v.tokens,p),c+=this.renderer.listitem(g,_,m);b+=this.renderer.list(c,h,f);continue;case"html":b+=this.renderer.html(d.text);continue;case"paragraph":b+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(c=d.tokens?this.parseInline(d.tokens):d.text;n+1<w&&"text"===e[n+1].type;)c+="\n"+((d=e[++n]).tokens?this.parseInline(d.tokens):d.text);b+=t?this.renderer.paragraph(c):c;continue;default:var C='Token with "'+d.type+'" type was not found.';if(this.options.silent)return void console.error(C);throw new Error(C)}return b},t.parseInline=function(e,t){t=t||this.renderer;var n,i,r="",o=e.length;for(n=0;n<o;n++)switch((i=e[n]).type){case"escape":case"text":r+=t.text(i.text);break;case"html":r+=t.html(i.text);break;case"link":r+=t.link(i.href,i.title,this.parseInline(i.tokens,t));break;case"image":r+=t.image(i.href,i.title,i.text);break;case"strong":r+=t.strong(this.parseInline(i.tokens,t));break;case"em":r+=t.em(this.parseInline(i.tokens,t));break;case"codespan":r+=t.codespan(i.text);break;case"br":r+=t.br();break;case"del":r+=t.del(this.parseInline(i.tokens,t));break;default:var a='Token with "'+i.type+'" type was not found.';if(this.options.silent)return void console.error(a);throw new Error(a)}return r},e}(),le=O.merge,ce=O.checkSanitizeDeprecation,de=O.escape,he=a.getDefaults,fe=a.changeDefaults,pe=a.defaults;function ge(e,t,n){if("undefined"===typeof e||null===e)throw new Error("marked(): input parameter is undefined or null");if("string"!==typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if("function"===typeof t&&(n=t,t=null),t=le({},ge.defaults,t||{}),ce(t),n){var i,r=t.highlight;try{i=J.lex(e,t)}catch(u){return n(u)}var o=function(e){var o;if(!e)try{o=ue.parse(i,t)}catch(u){e=u}return t.highlight=r,e?n(e):n(null,o)};if(!r||r.length<3)return o();if(delete t.highlight,!i.length)return o();var a=0;return ge.walkTokens(i,(function(e){"code"===e.type&&(a++,setTimeout((function(){r(e.text,e.lang,(function(t,n){if(t)return o(t);null!=n&&n!==e.text&&(e.text=n,e.escaped=!0),0===--a&&o()}))}),0))})),void(0===a&&o())}try{var s=J.lex(e,t);return t.walkTokens&&ge.walkTokens(s,t.walkTokens),ue.parse(s,t)}catch(u){if(u.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+de(u.message+"",!0)+"</pre>";throw u}}return ge.options=ge.setOptions=function(e){return le(ge.defaults,e),fe(ge.defaults),ge},ge.getDefaults=he,ge.defaults=pe,ge.use=function(e){var t=le({},e);if(e.renderer&&function(){var n=ge.defaults.renderer||new ie,i=function(t){var i=n[t];n[t]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.renderer[t].apply(n,o);return!1===s&&(s=i.apply(n,o)),s}};for(var r in e.renderer)i(r);t.renderer=n}(),e.tokenizer&&function(){var n=ge.defaults.tokenizer||new H,i=function(t){var i=n[t];n[t]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.tokenizer[t].apply(n,o);return!1===s&&(s=i.apply(n,o)),s}};for(var r in e.tokenizer)i(r);t.tokenizer=n}(),e.walkTokens){var n=ge.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens(t),n&&n(t)}}ge.setOptions(t)},ge.walkTokens=function(e,t){for(var n,i=r(e);!(n=i()).done;){var o=n.value;switch(t(o),o.type){case"table":for(var a,s=r(o.tokens.header);!(a=s()).done;){var u=a.value;ge.walkTokens(u,t)}for(var l,c=r(o.tokens.cells);!(l=c()).done;)for(var d,h=r(l.value);!(d=h()).done;){var f=d.value;ge.walkTokens(f,t)}break;case"list":ge.walkTokens(o.items,t);break;default:o.tokens&&ge.walkTokens(o.tokens,t)}}},ge.parseInline=function(e,t){if("undefined"===typeof e||null===e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!==typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");t=le({},ge.defaults,t||{}),ce(t);try{var n=J.lexInline(e,t);return t.walkTokens&&ge.walkTokens(n,t.walkTokens),ue.parseInline(n,t)}catch(i){if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+de(i.message+"",!0)+"</pre>";throw i}},ge.Parser=ue,ge.parser=ue.parse,ge.Renderer=ie,ge.TextRenderer=re,ge.Lexer=J,ge.lexer=J.lex,ge.Tokenizer=H,ge.Slugger=oe,ge.parse=ge,ge}()},83312:function(e,t,n){"use strict";n.d(t,{Q:function(){return o}});var i=n(27877),r=n(67775);function o(e){var t=JSON.parse(e);return t=a(t)}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!e||t>200)return e;if("object"===typeof e){switch(e.$mid){case 1:return r.o.revive(e);case 2:return new RegExp(e.source,e.flags)}if(e instanceof i.KN||e instanceof Uint8Array)return e;if(Array.isArray(e))for(var n=0;n<e.length;++n)e[n]=a(e[n],t+1);else for(var o in e)Object.hasOwnProperty.call(e,o)&&(e[o]=a(e[o],t+1))}return e}},55585:function(e,t,n){"use strict";n.d(t,{Gi:function(){return l},WX:function(){return u},lg:function(){return i}});var i,r=n(15671),o=n(43144),a=n(67775),s=n(30487);!function(e){e.inMemory="inmemory",e.vscode="vscode",e.internal="private",e.walkThrough="walkThrough",e.walkThroughSnippet="walkThroughSnippet",e.http="http",e.https="https",e.file="file",e.mailto="mailto",e.untitled="untitled",e.data="data",e.command="command",e.vscodeRemote="vscode-remote",e.vscodeRemoteResource="vscode-remote-resource",e.userData="vscode-userdata",e.vscodeCustomEditor="vscode-custom-editor",e.vscodeNotebook="vscode-notebook",e.vscodeNotebookCell="vscode-notebook-cell",e.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",e.vscodeSettings="vscode-settings",e.vscodeWorkspaceTrust="vscode-workspace-trust",e.vscodeTerminal="vscode-terminal",e.webviewPanel="webview-panel",e.vscodeWebview="vscode-webview",e.extension="extension",e.vscodeFileResource="vscode-file",e.tmp="tmp"}(i||(i={}));var u=new(function(){function e(){(0,r.Z)(this,e),this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null}return(0,o.Z)(e,[{key:"setPreferredWebSchema",value:function(e){this._preferredWebSchema=e}},{key:"rewrite",value:function(e){if(this._delegate)return this._delegate(e);var t=e.authority,n=this._hosts[t];n&&-1!==n.indexOf(":")&&(n="[".concat(n,"]"));var r=this._ports[t],o=this._connectionTokens[t],u="path=".concat(encodeURIComponent(e.path));return"string"===typeof o&&(u+="&tkn=".concat(encodeURIComponent(o))),a.o.from({scheme:s.$L?this._preferredWebSchema:i.vscodeRemoteResource,authority:"".concat(n,":").concat(r),path:"/vscode-remote-resource",query:u})}}]),e}()),l=new(function(){function e(){(0,r.Z)(this,e),this.FALLBACK_AUTHORITY="vscode-app"}return(0,o.Z)(e,[{key:"asBrowserUri",value:function(e,t,n){var r=this.toUri(e,t);return r.scheme===i.vscodeRemote?u.rewrite(r):s.tY&&(n||s.MM)&&r.scheme===i.file?r.with({scheme:i.vscodeFileResource,authority:r.authority||this.FALLBACK_AUTHORITY,query:null,fragment:null}):r}},{key:"toUri",value:function(e,t){return a.o.isUri(e)?e:a.o.parse(t.toUrl(e))}}]),e}())},5265:function(e,t,n){"use strict";n.d(t,{n:function(){return a},u:function(){return o}});var i=n(15671),r=n(43144);function o(e,t,n){return Math.min(Math.max(e,t),n)}var a=function(){function e(){(0,i.Z)(this,e),this._n=1,this._val=0}return(0,r.Z)(e,[{key:"update",value:function(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this}},{key:"value",get:function(){return this._val}}]),e}()},10405:function(e,t,n){"use strict";n.d(t,{CJ:function(){return h},I8:function(){return o},_A:function(){return a},fS:function(){return d},jB:function(){return c},rs:function(){return u}});var i=n(37762),r=n(25941);function o(e){if(!e||"object"!==typeof e)return e;if(e instanceof RegExp)return e;var t=Array.isArray(e)?[]:{};return Object.keys(e).forEach((function(n){e[n]&&"object"===typeof e[n]?t[n]=o(e[n]):t[n]=e[n]})),t}function a(e){if(!e||"object"!==typeof e)return e;for(var t=[e];t.length>0;){var n=t.shift();for(var i in Object.freeze(n),n)if(s.call(n,i)){var r=n[i];"object"!==typeof r||Object.isFrozen(r)||t.push(r)}}return e}var s=Object.prototype.hasOwnProperty;function u(e,t){return l(e,t,new Set)}function l(e,t,n){if((0,r.Jp)(e))return e;var o=t(e);if("undefined"!==typeof o)return o;if((0,r.kJ)(e)){var a,u=[],c=(0,i.Z)(e);try{for(c.s();!(a=c.n()).done;){var d=a.value;u.push(l(d,t,n))}}catch(p){c.e(p)}finally{c.f()}return u}if((0,r.Kn)(e)){if(n.has(e))throw new Error("Cannot clone recursive data-structure");n.add(e);var h={};for(var f in e)s.call(e,f)&&(h[f]=l(e[f],t,n));return n.delete(e),h}return e}function c(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return(0,r.Kn)(e)?((0,r.Kn)(t)&&Object.keys(t).forEach((function(i){i in e?n&&((0,r.Kn)(e[i])&&(0,r.Kn)(t[i])?c(e[i],t[i],n):e[i]=t[i]):e[i]=t[i]})),e):t}function d(e,t){if(e===t)return!0;if(null===e||void 0===e||null===t||void 0===t)return!1;if(typeof e!==typeof t)return!1;if("object"!==typeof e)return!1;if(Array.isArray(e)!==Array.isArray(t))return!1;var n,i;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(n=0;n<e.length;n++)if(!d(e[n],t[n]))return!1}else{var r=[];for(i in e)r.push(i);r.sort();var o=[];for(i in t)o.push(i);if(o.sort(),!d(r,o))return!1;for(n=0;n<r.length;n++)if(!d(e[r[n]],t[r[n]]))return!1}return!0}function h(e,t,n){var i=t(e);return"undefined"===typeof i?n:i}},36912:function(e,t,n){"use strict";n.d(t,{EZ:function(){return A},XX:function(){return I},DZ:function(){return R},Fv:function(){return M},KR:function(){return D},Gf:function(){return O},DB:function(){return T},ir:function(){return P},Ku:function(){return N}});var i,r=n(43144),o=n(15671),a=n(60136),s=n(29388),u=n(28664),l=n(30487);if("undefined"!==typeof l.li.vscode&&"undefined"!==typeof l.li.vscode.process){var c=l.li.vscode.process;i={get platform(){return c.platform},get env(){return c.env},cwd:function(){return c.cwd()},nextTick:function(e){return(0,l.xS)(e)}}}else i="undefined"!==typeof process?{get platform(){return process.platform},get env(){return{NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_BACKEND:"http://localhost:8765"}},cwd:function(){return{NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_BACKEND:"http://localhost:8765"}.VSCODE_CWD||process.cwd()},nextTick:function(e){return process.nextTick(e)}}:{get platform(){return l.ED?"win32":l.dz?"darwin":"linux"},nextTick:function(e){return(0,l.xS)(e)},get env(){return Object.create(null)},cwd:function(){return"/"}};var d=i.cwd,h=(i.env,i.platform),f=65,p=97,g=90,v=122,m=46,_=47,y=92,b=58,w=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,i,r){var a,s;(0,o.Z)(this,n),"string"===typeof i&&0===i.indexOf("not ")?(s="must not be",i=i.replace(/^not /,"")):s="must be";var u=-1!==e.indexOf(".")?"property":"argument",l='The "'.concat(e,'" ').concat(u," ").concat(s," of type ").concat(i);return l+=". Received type ".concat(typeof r),(a=t.call(this,l)).code="ERR_INVALID_ARG_TYPE",a}return(0,r.Z)(n)}((0,u.Z)(Error));function C(e,t){if("string"!==typeof e)throw new w(t,"string",e)}function k(e){return e===_||e===y}function S(e){return e===_}function x(e){return e>=f&&e<=g||e>=p&&e<=v}function L(e,t,n,i){for(var r="",o=0,a=-1,s=0,u=0,l=0;l<=e.length;++l){if(l<e.length)u=e.charCodeAt(l);else{if(i(u))break;u=_}if(i(u)){if(a===l-1||1===s);else if(2===s){if(r.length<2||2!==o||r.charCodeAt(r.length-1)!==m||r.charCodeAt(r.length-2)!==m){if(r.length>2){var c=r.lastIndexOf(n);-1===c?(r="",o=0):o=(r=r.slice(0,c)).length-1-r.lastIndexOf(n),a=l,s=0;continue}if(0!==r.length){r="",o=0,a=l,s=0;continue}}t&&(r+=r.length>0?"".concat(n,".."):"..",o=2)}else r.length>0?r+="".concat(n).concat(e.slice(a+1,l)):r=e.slice(a+1,l),o=l-a-1;a=l,s=0}else u===m&&-1!==s?++s:s=-1}return r}function E(e,t){if(null===t||"object"!==typeof t)throw new w("pathObject","Object",t);var n=t.dir||t.root,i=t.base||"".concat(t.name||"").concat(t.ext||"");return n?n===t.root?"".concat(n).concat(i):"".concat(n).concat(e).concat(i):i}var N={resolve:function(){for(var e="",t="",n=!1,i=arguments.length-1;i>=-1;i--){var r=void 0;if(i>=0){if(C(r=i<0||arguments.length<=i?void 0:arguments[i],"path"),0===r.length)continue}else 0===e.length?r=d():(void 0===(r={NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_BACKEND:"http://localhost:8765"}["=".concat(e)]||d())||r.slice(0,2).toLowerCase()!==e.toLowerCase()&&r.charCodeAt(2)===y)&&(r="".concat(e,"\\"));var o=r.length,a=0,s="",u=!1,l=r.charCodeAt(0);if(1===o)k(l)&&(a=1,u=!0);else if(k(l))if(u=!0,k(r.charCodeAt(1))){for(var c=2,h=c;c<o&&!k(r.charCodeAt(c));)c++;if(c<o&&c!==h){var f=r.slice(h,c);for(h=c;c<o&&k(r.charCodeAt(c));)c++;if(c<o&&c!==h){for(h=c;c<o&&!k(r.charCodeAt(c));)c++;c!==o&&c===h||(s="\\\\".concat(f,"\\").concat(r.slice(h,c)),a=c)}}}else a=1;else x(l)&&r.charCodeAt(1)===b&&(s=r.slice(0,2),a=2,o>2&&k(r.charCodeAt(2))&&(u=!0,a=3));if(s.length>0)if(e.length>0){if(s.toLowerCase()!==e.toLowerCase())continue}else e=s;if(n){if(e.length>0)break}else if(t="".concat(r.slice(a),"\\").concat(t),n=u,u&&e.length>0)break}return t=L(t,!n,"\\",k),n?"".concat(e,"\\").concat(t):"".concat(e).concat(t)||"."},normalize:function(e){C(e,"path");var t=e.length;if(0===t)return".";var n,i=0,r=!1,o=e.charCodeAt(0);if(1===t)return S(o)?"\\":e;if(k(o))if(r=!0,k(e.charCodeAt(1))){for(var a=2,s=a;a<t&&!k(e.charCodeAt(a));)a++;if(a<t&&a!==s){var u=e.slice(s,a);for(s=a;a<t&&k(e.charCodeAt(a));)a++;if(a<t&&a!==s){for(s=a;a<t&&!k(e.charCodeAt(a));)a++;if(a===t)return"\\\\".concat(u,"\\").concat(e.slice(s),"\\");a!==s&&(n="\\\\".concat(u,"\\").concat(e.slice(s,a)),i=a)}}}else i=1;else x(o)&&e.charCodeAt(1)===b&&(n=e.slice(0,2),i=2,t>2&&k(e.charCodeAt(2))&&(r=!0,i=3));var l=i<t?L(e.slice(i),!r,"\\",k):"";return 0!==l.length||r||(l="."),l.length>0&&k(e.charCodeAt(t-1))&&(l+="\\"),void 0===n?r?"\\".concat(l):l:r?"".concat(n,"\\").concat(l):"".concat(n).concat(l)},isAbsolute:function(e){C(e,"path");var t=e.length;if(0===t)return!1;var n=e.charCodeAt(0);return k(n)||t>2&&x(n)&&e.charCodeAt(1)===b&&k(e.charCodeAt(2))},join:function(){if(0===arguments.length)return".";for(var e,t,n=0;n<arguments.length;++n){var i=n<0||arguments.length<=n?void 0:arguments[n];C(i,"path"),i.length>0&&(void 0===e?e=t=i:e+="\\".concat(i))}if(void 0===e)return".";var r=!0,o=0;if("string"===typeof t&&k(t.charCodeAt(0))){++o;var a=t.length;a>1&&k(t.charCodeAt(1))&&(++o,a>2&&(k(t.charCodeAt(2))?++o:r=!1))}if(r){for(;o<e.length&&k(e.charCodeAt(o));)o++;o>=2&&(e="\\".concat(e.slice(o)))}return N.normalize(e)},relative:function(e,t){if(C(e,"from"),C(t,"to"),e===t)return"";var n=N.resolve(e),i=N.resolve(t);if(n===i)return"";if((e=n.toLowerCase())===(t=i.toLowerCase()))return"";for(var r=0;r<e.length&&e.charCodeAt(r)===y;)r++;for(var o=e.length;o-1>r&&e.charCodeAt(o-1)===y;)o--;for(var a=o-r,s=0;s<t.length&&t.charCodeAt(s)===y;)s++;for(var u=t.length;u-1>s&&t.charCodeAt(u-1)===y;)u--;for(var l=u-s,c=a<l?a:l,d=-1,h=0;h<c;h++){var f=e.charCodeAt(r+h);if(f!==t.charCodeAt(s+h))break;f===y&&(d=h)}if(h!==c){if(-1===d)return i}else{if(l>c){if(t.charCodeAt(s+h)===y)return i.slice(s+h+1);if(2===h)return i.slice(s+h)}a>c&&(e.charCodeAt(r+h)===y?d=h:2===h&&(d=3)),-1===d&&(d=0)}var p="";for(h=r+d+1;h<=o;++h)h!==o&&e.charCodeAt(h)!==y||(p+=0===p.length?"..":"\\..");return s+=d,p.length>0?"".concat(p).concat(i.slice(s,u)):(i.charCodeAt(s)===y&&++s,i.slice(s,u))},toNamespacedPath:function(e){if("string"!==typeof e)return e;if(0===e.length)return"";var t=N.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===y){if(t.charCodeAt(1)===y){var n=t.charCodeAt(2);if(63!==n&&n!==m)return"\\\\?\\UNC\\".concat(t.slice(2))}}else if(x(t.charCodeAt(0))&&t.charCodeAt(1)===b&&t.charCodeAt(2)===y)return"\\\\?\\".concat(t);return e},dirname:function(e){C(e,"path");var t=e.length;if(0===t)return".";var n=-1,i=0,r=e.charCodeAt(0);if(1===t)return k(r)?e:".";if(k(r)){if(n=i=1,k(e.charCodeAt(1))){for(var o=2,a=o;o<t&&!k(e.charCodeAt(o));)o++;if(o<t&&o!==a){for(a=o;o<t&&k(e.charCodeAt(o));)o++;if(o<t&&o!==a){for(a=o;o<t&&!k(e.charCodeAt(o));)o++;if(o===t)return e;o!==a&&(n=i=o+1)}}}}else x(r)&&e.charCodeAt(1)===b&&(i=n=t>2&&k(e.charCodeAt(2))?3:2);for(var s=-1,u=!0,l=t-1;l>=i;--l)if(k(e.charCodeAt(l))){if(!u){s=l;break}}else u=!1;if(-1===s){if(-1===n)return".";s=n}return e.slice(0,s)},basename:function(e,t){void 0!==t&&C(t,"ext"),C(e,"path");var n,i=0,r=-1,o=!0;if(e.length>=2&&x(e.charCodeAt(0))&&e.charCodeAt(1)===b&&(i=2),void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";var a=t.length-1,s=-1;for(n=e.length-1;n>=i;--n){var u=e.charCodeAt(n);if(k(u)){if(!o){i=n+1;break}}else-1===s&&(o=!1,s=n+1),a>=0&&(u===t.charCodeAt(a)?-1===--a&&(r=n):(a=-1,r=s))}return i===r?r=s:-1===r&&(r=e.length),e.slice(i,r)}for(n=e.length-1;n>=i;--n)if(k(e.charCodeAt(n))){if(!o){i=n+1;break}}else-1===r&&(o=!1,r=n+1);return-1===r?"":e.slice(i,r)},extname:function(e){C(e,"path");var t=0,n=-1,i=0,r=-1,o=!0,a=0;e.length>=2&&e.charCodeAt(1)===b&&x(e.charCodeAt(0))&&(t=i=2);for(var s=e.length-1;s>=t;--s){var u=e.charCodeAt(s);if(k(u)){if(!o){i=s+1;break}}else-1===r&&(o=!1,r=s+1),u===m?-1===n?n=s:1!==a&&(a=1):-1!==n&&(a=-1)}return-1===n||-1===r||0===a||1===a&&n===r-1&&n===i+1?"":e.slice(n,r)},format:E.bind(null,"\\"),parse:function(e){C(e,"path");var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n=e.length,i=0,r=e.charCodeAt(0);if(1===n)return k(r)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(k(r)){if(i=1,k(e.charCodeAt(1))){for(var o=2,a=o;o<n&&!k(e.charCodeAt(o));)o++;if(o<n&&o!==a){for(a=o;o<n&&k(e.charCodeAt(o));)o++;if(o<n&&o!==a){for(a=o;o<n&&!k(e.charCodeAt(o));)o++;o===n?i=o:o!==a&&(i=o+1)}}}}else if(x(r)&&e.charCodeAt(1)===b){if(n<=2)return t.root=t.dir=e,t;if(i=2,k(e.charCodeAt(2))){if(3===n)return t.root=t.dir=e,t;i=3}}i>0&&(t.root=e.slice(0,i));for(var s=-1,u=i,l=-1,c=!0,d=e.length-1,h=0;d>=i;--d)if(k(r=e.charCodeAt(d))){if(!c){u=d+1;break}}else-1===l&&(c=!1,l=d+1),r===m?-1===s?s=d:1!==h&&(h=1):-1!==s&&(h=-1);return-1!==l&&(-1===s||0===h||1===h&&s===l-1&&s===u+1?t.base=t.name=e.slice(u,l):(t.name=e.slice(u,s),t.base=e.slice(u,l),t.ext=e.slice(s,l))),t.dir=u>0&&u!==i?e.slice(0,u-1):t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},D={resolve:function(){for(var e="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var i=n>=0?n<0||arguments.length<=n?void 0:arguments[n]:d();C(i,"path"),0!==i.length&&(e="".concat(i,"/").concat(e),t=i.charCodeAt(0)===_)}return e=L(e,!t,"/",S),t?"/".concat(e):e.length>0?e:"."},normalize:function(e){if(C(e,"path"),0===e.length)return".";var t=e.charCodeAt(0)===_,n=e.charCodeAt(e.length-1)===_;return 0===(e=L(e,!t,"/",S)).length?t?"/":n?"./":".":(n&&(e+="/"),t?"/".concat(e):e)},isAbsolute:function(e){return C(e,"path"),e.length>0&&e.charCodeAt(0)===_},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var n=t<0||arguments.length<=t?void 0:arguments[t];C(n,"path"),n.length>0&&(void 0===e?e=n:e+="/".concat(n))}return void 0===e?".":D.normalize(e)},relative:function(e,t){if(C(e,"from"),C(t,"to"),e===t)return"";if((e=D.resolve(e))===(t=D.resolve(t)))return"";for(var n=e.length,i=n-1,r=t.length-1,o=i<r?i:r,a=-1,s=0;s<o;s++){var u=e.charCodeAt(1+s);if(u!==t.charCodeAt(1+s))break;u===_&&(a=s)}if(s===o)if(r>o){if(t.charCodeAt(1+s)===_)return t.slice(1+s+1);if(0===s)return t.slice(1+s)}else i>o&&(e.charCodeAt(1+s)===_?a=s:0===s&&(a=0));var l="";for(s=1+a+1;s<=n;++s)s!==n&&e.charCodeAt(s)!==_||(l+=0===l.length?"..":"/..");return"".concat(l).concat(t.slice(1+a))},toNamespacedPath:function(e){return e},dirname:function(e){if(C(e,"path"),0===e.length)return".";for(var t=e.charCodeAt(0)===_,n=-1,i=!0,r=e.length-1;r>=1;--r)if(e.charCodeAt(r)===_){if(!i){n=r;break}}else i=!1;return-1===n?t?"/":".":t&&1===n?"//":e.slice(0,n)},basename:function(e,t){void 0!==t&&C(t,"ext"),C(e,"path");var n,i=0,r=-1,o=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";var a=t.length-1,s=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(u===_){if(!o){i=n+1;break}}else-1===s&&(o=!1,s=n+1),a>=0&&(u===t.charCodeAt(a)?-1===--a&&(r=n):(a=-1,r=s))}return i===r?r=s:-1===r&&(r=e.length),e.slice(i,r)}for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===_){if(!o){i=n+1;break}}else-1===r&&(o=!1,r=n+1);return-1===r?"":e.slice(i,r)},extname:function(e){C(e,"path");for(var t=-1,n=0,i=-1,r=!0,o=0,a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(s!==_)-1===i&&(r=!1,i=a+1),s===m?-1===t?t=a:1!==o&&(o=1):-1!==t&&(o=-1);else if(!r){n=a+1;break}}return-1===t||-1===i||0===o||1===o&&t===i-1&&t===n+1?"":e.slice(t,i)},format:E.bind(null,"/"),parse:function(e){C(e,"path");var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,i=e.charCodeAt(0)===_;i?(t.root="/",n=1):n=0;for(var r=-1,o=0,a=-1,s=!0,u=e.length-1,l=0;u>=n;--u){var c=e.charCodeAt(u);if(c!==_)-1===a&&(s=!1,a=u+1),c===m?-1===r?r=u:1!==l&&(l=1):-1!==r&&(l=-1);else if(!s){o=u+1;break}}if(-1!==a){var d=0===o&&i?1:o;-1===r||0===l||1===l&&r===a-1&&r===o+1?t.base=t.name=e.slice(d,a):(t.name=e.slice(d,r),t.base=e.slice(d,a),t.ext=e.slice(r,a))}return o>0?t.dir=e.slice(0,o-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};D.win32=N.win32=N,D.posix=N.posix=D;var M="win32"===h?N.normalize:D.normalize,T="win32"===h?N.resolve:D.resolve,O="win32"===h?N.relative:D.relative,I="win32"===h?N.dirname:D.dirname,A="win32"===h?N.basename:D.basename,R="win32"===h?N.extname:D.extname,P="win32"===h?N.sep:D.sep},30487:function(e,t,n){"use strict";var i;n.d(t,{$L:function(){return S},ED:function(){return b},IJ:function(){return C},MM:function(){return v},OS:function(){return N},WE:function(){return L},dz:function(){return w},gn:function(){return x},li:function(){return h},r:function(){return T},tY:function(){return k},xS:function(){return E}});var r="en",o=!1,a=!1,s=!1,u=!1,l=!1,c=!1,d=void 0,h="object"===typeof self?self:"object"===typeof n.g?n.g:{},f=void 0;"undefined"!==typeof h.vscode&&"undefined"!==typeof h.vscode.process?f=h.vscode.process:"undefined"!==typeof process&&(f=process);var p="string"===typeof(null===(i=null===f||void 0===f?void 0:f.versions)||void 0===i?void 0:i.electron)&&"renderer"===f.type,g=p&&(null===f||void 0===f?void 0:f.sandboxed),v="string"===typeof function(){if(g)return"bypassHeatCheck";var e=null===f||void 0===f?void 0:f.env.VSCODE_BROWSER_CODE_LOADING;return"string"===typeof e?"none"===e||"code"===e||"bypassHeatCheck"===e||"bypassHeatCheckAndEagerCompile"===e?e:"bypassHeatCheck":void 0}();if("object"!==typeof navigator||p)if("object"===typeof f){o="win32"===f.platform,a="darwin"===f.platform,(s="linux"===f.platform)&&!!f.env.SNAP&&!!f.env.SNAP_REVISION,r,r;var m=f.env.VSCODE_NLS_CONFIG;if(m)try{var _=JSON.parse(m),y=_.availableLanguages["*"];_.locale,y||r,_._translationsConfigFile}catch(O){}u=!0}else console.error("Unable to resolve platform.");else o=(d=navigator.userAgent).indexOf("Windows")>=0,a=d.indexOf("Macintosh")>=0,c=(d.indexOf("Macintosh")>=0||d.indexOf("iPad")>=0||d.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,s=d.indexOf("Linux")>=0,l=!0,navigator.language;var b=o,w=a,C=s,k=u,S=l,x=c,L=d,E=function(){if(h.setImmediate)return h.setImmediate.bind(h);if("function"===typeof h.postMessage&&!h.importScripts){var e=[];h.addEventListener("message",(function(t){if(t.data&&t.data.vscodeSetImmediateId)for(var n=0,i=e.length;n<i;n++){var r=e[n];if(r.id===t.data.vscodeSetImmediateId)return e.splice(n,1),void r.callback()}}));var t=0;return function(n){var i=++t;e.push({id:i,callback:n}),h.postMessage({vscodeSetImmediateId:i},"*")}}if("function"===typeof(null===f||void 0===f?void 0:f.nextTick))return f.nextTick.bind(f);var n=Promise.resolve();return function(e){return n.then(e)}}(),N=a||c?2:o?1:3,D=!0,M=!1;function T(){if(!M){M=!0;var e=new Uint8Array(2);e[0]=1,e[1]=2;var t=new Uint16Array(e.buffer);D=513===t[0]}return D}},81629:function(e,t,n){"use strict";var i;n.d(t,{e:function(){return i}}),function(e){function t(e,t){if(e.start>=t.end||t.start>=e.end)return{start:0,end:0};var n=Math.max(e.start,t.start),i=Math.min(e.end,t.end);return i-n<=0?{start:0,end:0}:{start:n,end:i}}function n(e){return e.end-e.start<=0}e.intersect=t,e.isEmpty=n,e.intersects=function(e,i){return!n(t(e,i))},e.relativeComplement=function(e,t){var i=[],r={start:e.start,end:Math.min(t.start,e.end)},o={start:Math.max(t.end,e.start),end:e.end};return n(r)||i.push(r),n(o)||i.push(o),i}}(i||(i={}))},51334:function(e,t,n){"use strict";n.d(t,{AH:function(){return b},EZ:function(){return m},Hx:function(){return v},SF:function(){return p},Vb:function(){return h},Vo:function(){return y},XX:function(){return _},Xy:function(){return g},i3:function(){return w},z_:function(){return d}});var i=n(29439),r=n(15671),o=n(43144),a=n(67537),s=n(36912),u=n(67775),l=n(51747),c=n(55585);function d(e){return(0,u.q)(e,!0)}var h,f=function(){function e(t){(0,r.Z)(this,e),this._ignorePathCasing=t}return(0,o.Z)(e,[{key:"compare",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e===t?0:(0,l.qu)(this.getComparisonKey(e,n),this.getComparisonKey(t,n))}},{key:"isEqual",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e===t||!(!e||!t)&&this.getComparisonKey(e,n)===this.getComparisonKey(t,n)}},{key:"getComparisonKey",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}},{key:"joinPath",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return u.o.joinPath.apply(u.o,[e].concat(n))}},{key:"basenameOrAuthority",value:function(e){return m(e)||e.authority}},{key:"basename",value:function(e){return s.KR.basename(e.path)}},{key:"dirname",value:function(e){return 0===e.path.length?e:(e.scheme===c.lg.file?t=u.o.file(s.XX(d(e))).path:(t=s.KR.dirname(e.path),e.authority&&t.length&&47!==t.charCodeAt(0)&&(console.error('dirname("'.concat(e.toString,")) resulted in a relative path")),t="/")),e.with({path:t}));var t}},{key:"normalizePath",value:function(e){return e.path.length?(t=e.scheme===c.lg.file?u.o.file(s.Fv(d(e))).path:s.KR.normalize(e.path),e.with({path:t})):e;var t}},{key:"resolvePath",value:function(e,t){if(e.scheme===c.lg.file){var n=u.o.file(s.DB(d(e),t));return e.with({authority:n.authority,path:n.path})}return-1===t.indexOf("/")&&(t=a.ej(t),/^[a-zA-Z]:(\/|$)/.test(t)&&(t="/"+t)),e.with({path:s.KR.resolve(e.path,t)})}}]),e}(),p=new f((function(){return!1})),g=p.isEqual.bind(p),v=p.basenameOrAuthority.bind(p),m=p.basename.bind(p),_=p.dirname.bind(p),y=p.joinPath.bind(p),b=p.normalizePath.bind(p),w=p.resolvePath.bind(p);!function(e){e.META_DATA_LABEL="label",e.META_DATA_DESCRIPTION="description",e.META_DATA_SIZE="size",e.META_DATA_MIME="mime",e.parseMetaData=function(t){var n=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach((function(e){var t=e.split(":"),r=(0,i.Z)(t,2),o=r[0],a=r[1];o&&a&&n.set(o,a)}));var r=t.path.substring(0,t.path.indexOf(";"));return r&&n.set(e.META_DATA_MIME,r),n}}(h||(h={}))},58604:function(e,t,n){"use strict";n.d(t,{Rm:function(){return h}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(11732),c=n(81626),d=function(){function e(t,n,i,r,o,a){(0,s.Z)(this,e),t|=0,n|=0,i|=0,r|=0,o|=0,a|=0,this.rawScrollLeft=i,this.rawScrollTop=a,t<0&&(t=0),i+t>n&&(i=n-t),i<0&&(i=0),r<0&&(r=0),a+r>o&&(a=o-r),a<0&&(a=0),this.width=t,this.scrollWidth=n,this.scrollLeft=i,this.height=r,this.scrollHeight=o,this.scrollTop=a}return(0,u.Z)(e,[{key:"equals",value:function(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}},{key:"withScrollDimensions",value:function(t,n){return new e("undefined"!==typeof t.width?t.width:this.width,"undefined"!==typeof t.scrollWidth?t.scrollWidth:this.scrollWidth,n?this.rawScrollLeft:this.scrollLeft,"undefined"!==typeof t.height?t.height:this.height,"undefined"!==typeof t.scrollHeight?t.scrollHeight:this.scrollHeight,n?this.rawScrollTop:this.scrollTop)}},{key:"withScrollPosition",value:function(t){return new e(this.width,this.scrollWidth,"undefined"!==typeof t.scrollLeft?t.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,"undefined"!==typeof t.scrollTop?t.scrollTop:this.rawScrollTop)}},{key:"createScrollEvent",value:function(e,t){var n=this.width!==e.width,i=this.scrollWidth!==e.scrollWidth,r=this.scrollLeft!==e.scrollLeft,o=this.height!==e.height,a=this.scrollHeight!==e.scrollHeight,s=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:n,scrollWidthChanged:i,scrollLeftChanged:r,heightChanged:o,scrollHeightChanged:a,scrollTopChanged:s}}}]),e}(),h=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;return(0,s.Z)(this,n),(r=t.call(this))._onScroll=r._register(new l.Q5),r.onScroll=r._onScroll.event,r._smoothScrollDuration=e,r._scheduleAtNextAnimationFrame=i,r._state=new d(0,0,0,0,0,0),r._smoothScrolling=null,r}return(0,u.Z)(n,[{key:"dispose",value:function(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}},{key:"setSmoothScrollDuration",value:function(e){this._smoothScrollDuration=e}},{key:"validateScrollPosition",value:function(e){return this._state.withScrollPosition(e)}},{key:"getScrollDimensions",value:function(){return this._state}},{key:"setScrollDimensions",value:function(e,t){var n=this._state.withScrollDimensions(e,t);this._setState(n,Boolean(this._smoothScrolling)),this._smoothScrolling&&this._smoothScrolling.acceptScrollDimensions(this._state)}},{key:"getFutureScrollPosition",value:function(){return this._smoothScrolling?this._smoothScrolling.to:this._state}},{key:"getCurrentScrollPosition",value:function(){return this._state}},{key:"setScrollPositionNow",value:function(e){var t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}},{key:"setScrollPositionSmooth",value:function(e,t){var n=this;if(0===this._smoothScrollDuration)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:"undefined"===typeof e.scrollLeft?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:"undefined"===typeof e.scrollTop?this._smoothScrolling.to.scrollTop:e.scrollTop};var i,r=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===r.scrollLeft&&this._smoothScrolling.to.scrollTop===r.scrollTop)return;i=t?new g(this._smoothScrolling.from,r,this._smoothScrolling.startTime,this._smoothScrolling.duration):this._smoothScrolling.combine(this._state,r,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=i}else{var o=this._state.withScrollPosition(e);this._smoothScrolling=g.start(this._state,o,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((function(){n._smoothScrolling&&(n._smoothScrolling.animationFrameDisposable=null,n._performSmoothScrolling())}))}},{key:"_performSmoothScrolling",value:function(){var e=this;if(this._smoothScrolling){var t=this._smoothScrolling.tick(),n=this._state.withScrollPosition(t);if(this._setState(n,!0),this._smoothScrolling)return t.isDone?(this._smoothScrolling.dispose(),void(this._smoothScrolling=null)):void(this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((function(){e._smoothScrolling&&(e._smoothScrolling.animationFrameDisposable=null,e._performSmoothScrolling())})))}}},{key:"_setState",value:function(e,t){var n=this._state;n.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(n,t)))}}]),n}(c.JT),f=(0,u.Z)((function e(t,n,i){(0,s.Z)(this,e),this.scrollLeft=t,this.scrollTop=n,this.isDone=i}));function p(e,t){var n=t-e;return function(t){return e+n*(1-function(e){return Math.pow(e,3)}(1-t))}}var g=function(){function e(t,n,i,r){(0,s.Z)(this,e),this.from=t,this.to=n,this.duration=r,this.startTime=i,this.animationFrameDisposable=null,this._initAnimations()}return(0,u.Z)(e,[{key:"_initAnimations",value:function(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}},{key:"_initAnimation",value:function(e,t,n){var i,r,o,a,s;return Math.abs(e-t)>2.5*n?(e<t?(i=e+.75*n,r=t-.75*n):(i=e-.75*n,r=t+.75*n),o=p(e,i),a=p(r,t),s=.33,function(e){return e<s?o(e/s):a((e-s)/(1-s))}):p(e,t)}},{key:"dispose",value:function(){null!==this.animationFrameDisposable&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)}},{key:"acceptScrollDimensions",value:function(e){this.to=e.withScrollPosition(this.to),this._initAnimations()}},{key:"tick",value:function(){return this._tick(Date.now())}},{key:"_tick",value:function(e){var t=(e-this.startTime)/this.duration;if(t<1){var n=this.scrollLeft(t),i=this.scrollTop(t);return new f(n,i,!1)}return new f(this.to.scrollLeft,this.to.scrollTop,!0)}},{key:"combine",value:function(t,n,i){return e.start(t,n,i)}}],[{key:"start",value:function(t,n,i){return i+=10,new e(t,n,Date.now()-10,i)}}]),e}()},55046:function(e,t,n){"use strict";var i,r=n(51747);!function(e){e[e.Ignore=0]="Ignore",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(i||(i={})),function(e){var t="error",n="warning",i="warn",o="info",a="ignore";e.fromValue=function(a){return a?r.qq(t,a)?e.Error:r.qq(n,a)||r.qq(i,a)?e.Warning:r.qq(o,a)?e.Info:e.Ignore:e.Ignore},e.toString=function(i){switch(i){case e.Error:return t;case e.Warning:return n;case e.Info:return o;default:return a}}}(i||(i={})),t.Z=i},96257:function(e,t,n){"use strict";n.d(t,{G:function(){return s}});var i=n(15671),r=n(43144),o=n(30487),a=o.li.performance&&"function"===typeof o.li.performance.now,s=function(){function e(t){(0,i.Z)(this,e),this._highResolution=a&&t,this._startTime=this._now(),this._stopTime=-1}return(0,r.Z)(e,[{key:"stop",value:function(){this._stopTime=this._now()}},{key:"elapsed",value:function(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime}},{key:"_now",value:function(){return this._highResolution?o.li.performance.now():Date.now()}}],[{key:"create",value:function(){return new e(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}}]),e}()},51747:function(e,t,n){"use strict";n.d(t,{$i:function(){return K},C8:function(){return X},CZ:function(){return B},GF:function(){return g},HO:function(){return H},IO:function(){return v},K7:function(){return Q},Kw:function(){return te},LC:function(){return y},Mh:function(){return O},P1:function(){return I},PJ:function(){return ne},Qe:function(){return q},R1:function(){return p},RP:function(){return Y},S6:function(){return ie},TT:function(){return k},Ut:function(){return W},V8:function(){return b},WU:function(){return s},YK:function(){return R},YU:function(){return u},ZG:function(){return A},ZH:function(){return Z},ab:function(){return G},c1:function(){return J},df:function(){return E},ec:function(){return l},fi:function(){return re},fy:function(){return c},j3:function(){return d},j_:function(){return x},m5:function(){return o},mK:function(){return L},mr:function(){return m},oL:function(){return h},ok:function(){return T},ow:function(){return w},qq:function(){return D},qu:function(){return C},rL:function(){return P},uS:function(){return ee},un:function(){return f},uq:function(){return _},vH:function(){return j},xe:function(){return $},zY:function(){return S}});var i=n(15671),r=n(43144);function o(e){return!e||"string"!==typeof e||0===e.trim().length}var a=/{(\d+)}/g;function s(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return 0===n.length?e:e.replace(a,(function(e,t){var i=parseInt(t,10);return isNaN(i)||i<0||i>=n.length?e:n[i]}))}function u(e){return e.replace(/[<>&]/g,(function(e){switch(e){case"<":return"&lt;";case">":return"&gt;";case"&":return"&amp;";default:return e}}))}function l(e){return e.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return h(d(e,t),t)}function d(e,t){if(!e||!t)return e;var n=t.length;if(0===n||0===e.length)return e;for(var i=0;e.indexOf(t,i)===i;)i+=n;return e.substring(i)}function h(e,t){if(!e||!t)return e;var n=t.length,i=e.length;if(0===n||0===i)return e;for(var r=i,o=-1;-1!==(o=e.lastIndexOf(t,r-1))&&o+n===r;){if(0===o)return"";r=o}return e.substring(0,r)}function f(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function p(e){return e.replace(/\*/g,"")}function g(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)throw new Error("Cannot create regex from empty string");t||(e=l(e)),n.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e+="\\b"));var i="";return n.global&&(i+="g"),n.matchCase||(i+="i"),n.multiline&&(i+="m"),n.unicode&&(i+="u"),new RegExp(e,i)}function v(e){return"^"!==e.source&&"^$"!==e.source&&"$"!==e.source&&"^\\s*$"!==e.source&&!(!e.exec("")||0!==e.lastIndex)}function m(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")}function _(e){return e.split(/\r\n|\r|\n/)}function y(e){for(var t=0,n=e.length;t<n;t++){var i=e.charCodeAt(t);if(32!==i&&9!==i)return t}return-1}function b(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,i=t;i<n;i++){var r=e.charCodeAt(i);if(32!==r&&9!==r)return e.substring(t,i)}return e.substring(t,n)}function w(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.length-1;t>=0;t--){var n=e.charCodeAt(t);if(32!==n&&9!==n)return t}return-1}function C(e,t){return e<t?-1:e>t?1:0}function k(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:t.length;n<i&&r<o;n++,r++){var a=e.charCodeAt(n),s=t.charCodeAt(r);if(a<s)return-1;if(a>s)return 1}var u=i-n,l=o-r;return u<l?-1:u>l?1:0}function S(e,t){return x(e,t,0,e.length,0,t.length)}function x(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:t.length;n<i&&r<o;n++,r++){var a=e.charCodeAt(n),s=t.charCodeAt(r);if(a!==s){var u=a-s;if((32!==u||!E(s))&&(-32!==u||!E(a)))return L(a)&&L(s)?u:k(e.toLowerCase(),t.toLowerCase(),n,i,r,o)}}var l=i-n,c=o-r;return l<c?-1:l>c?1:0}function L(e){return e>=97&&e<=122}function E(e){return e>=65&&e<=90}function N(e){return L(e)||E(e)}function D(e,t){return e.length===t.length&&M(e,t)}function M(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,i=0;i<n;i++){var r=e.charCodeAt(i),o=t.charCodeAt(i);if(r!==o)if(N(r)&&N(o)){var a=Math.abs(r-o);if(0!==a&&32!==a)return!1}else if(String.fromCharCode(r).toLowerCase()!==String.fromCharCode(o).toLowerCase())return!1}return!0}function T(e,t){var n=t.length;return!(t.length>e.length)&&M(e,t,n)}function O(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n<i;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return i}function I(e,t){var n,i=Math.min(e.length,t.length),r=e.length-1,o=t.length-1;for(n=0;n<i;n++)if(e.charCodeAt(r-n)!==t.charCodeAt(o-n))return n;return i}function A(e){return 55296<=e&&e<=56319}function R(e){return 56320<=e&&e<=57343}function P(e,t){return t-56320+(e-55296<<10)+65536}function Z(e,t,n){var i=e.charCodeAt(n);if(A(i)&&n+1<t){var r=e.charCodeAt(n+1);if(R(r))return P(i,r)}return i}function F(e,t){var n=e.charCodeAt(t-1);if(R(n)&&t>1){var i=e.charCodeAt(t-2);if(A(i))return P(i,n)}return n}function j(e,t){var n=oe.getInstance(),i=t,r=e.length,o=Z(e,r,t);t+=o>=65536?2:1;for(var a=n.getGraphemeBreakType(o);t<r;){var s=Z(e,r,t),u=n.getGraphemeBreakType(s);if(re(a,u))break;t+=s>=65536?2:1,a=u}return t-i}function H(e,t){var n=oe.getInstance(),i=t,r=F(e,t);t-=r>=65536?2:1;for(var o=n.getGraphemeBreakType(r);t>0;){var a=F(e,t),s=n.getGraphemeBreakType(a);if(re(s,o))break;t-=a>=65536?2:1,o=s}return i-t}function B(e){for(var t=e.byteLength,n=[],i=0;i<t;){var r=e[i],o=void 0;if((o=r>=240&&i+3<t?(7&e[i++])<<18>>>0|(63&e[i++])<<12>>>0|(63&e[i++])<<6>>>0|(63&e[i++])<<0>>>0:r>=224&&i+2<t?(15&e[i++])<<12>>>0|(63&e[i++])<<6>>>0|(63&e[i++])<<0>>>0:r>=192&&i+1<t?(31&e[i++])<<6>>>0|(63&e[i++])<<0>>>0:e[i++])>=0&&o<=55295||o>=57344&&o<=65535)n.push(String.fromCharCode(o));else if(o>=65536&&o<=1114111){var a=o-65536,s=55296+((1047552&a)>>>10),u=56320+((1023&a)>>>0);n.push(String.fromCharCode(s)),n.push(String.fromCharCode(u))}else n.push(String.fromCharCode(65533))}return n.join("")}var z=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;function W(e){return z.test(e)}var V=/(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD00-\uDDFF\uDE70-\uDED6])/;function Y(e){return V.test(e)}var U=/^[\t\n\r\x20-\x7E]*$/;function K(e){return U.test(e)}var q=/[\u2028\u2029]/;function G(e){return q.test(e)}function $(e){for(var t=0,n=e.length;t<n;t++)if(Q(e.charCodeAt(t)))return!0;return!1}function Q(e){return(e=+e)>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function X(e){return e>=127462&&e<=127487||8986===e||8987===e||9200===e||9203===e||e>=9728&&e<=10175||11088===e||11093===e||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129003||e>=129280&&e<=129535||e>=129648&&e<=129750}var J=String.fromCharCode(65279);function ee(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))}function te(e){return!!e&&(arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&(e=e.replace(/\\./g,"")),e.toLowerCase()!==e)}function ne(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)}function ie(e){return oe.getInstance().getGraphemeBreakType(e)}function re(e,t){return 0===e?5!==t&&7!==t:(2!==e||3!==t)&&(4===e||2===e||3===e||(4===t||2===t||3===t||(8!==e||8!==t&&9!==t&&11!==t&&12!==t)&&((11!==e&&9!==e||9!==t&&10!==t)&&((12!==e&&10!==e||10!==t)&&(5!==t&&13!==t&&(7!==t&&(1!==e&&((13!==e||14!==t)&&(6!==e||6!==t)))))))))}var oe=function(){function e(){(0,i.Z)(this,e),this._data=JSON.parse("[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]")}return(0,r.Z)(e,[{key:"getGraphemeBreakType",value:function(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;for(var t=this._data,n=t.length/3,i=1;i<=n;)if(e<t[3*i])i*=2;else{if(!(e>t[3*i+1]))return t[3*i+2];i=2*i+1}return 0}}],[{key:"getInstance",value:function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE}}]),e}();oe._INSTANCE=null},25941:function(e,t,n){"use strict";n.d(t,{$E:function(){return v},D8:function(){return p},HD:function(){return o},IU:function(){return m},Jp:function(){return c},Kn:function(){return a},cW:function(){return h},f6:function(){return _},hj:function(){return s},jn:function(){return u},kJ:function(){return r},mf:function(){return f},o8:function(){return l},p_:function(){return d}});var i=n(37762);function r(e){return Array.isArray(e)}function o(e){return"string"===typeof e}function a(e){return"object"===typeof e&&null!==e&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function s(e){return"number"===typeof e&&!isNaN(e)}function u(e){return!0===e||!1===e}function l(e){return"undefined"===typeof e}function c(e){return l(e)||null===e}function d(e,t){if(!e)throw new Error(t?"Unexpected type, expected '".concat(t,"'"):"Unexpected type")}function h(e){if(c(e))throw new Error("Assertion Failed: argument is undefined or null");return e}function f(e){return"function"===typeof e}function p(e,t){for(var n=Math.min(e.length,t.length),i=0;i<n;i++)g(e[i],t[i])}function g(e,t){if(o(t)){if(typeof e!==t)throw new Error("argument does not match constraint: typeof ".concat(t))}else if(f(t)){try{if(e instanceof t)return}catch(n){}if(!c(e)&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function v(e){var t,n=[],r=(0,i.Z)(function(e){for(var t=[],n=Object.getPrototypeOf(e);Object.prototype!==n;)t=t.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return t}(e));try{for(r.s();!(t=r.n()).done;){var o=t.value;"function"===typeof e[o]&&n.push(o)}}catch(a){r.e(a)}finally{r.f()}return n}function m(e,t){var n,r=function(e){return function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},o={},a=(0,i.Z)(e);try{for(a.s();!(n=a.n()).done;){var s=n.value;o[s]=r(s)}}catch(u){a.e(u)}finally{a.f()}return o}function _(e){return null===e?void 0:e}},38820:function(e,t,n){"use strict";function i(e){return e<0?0:e>255?255:0|e}function r(e){return e<0?0:e>4294967295?4294967295:0|e}n.d(t,{A:function(){return r},K:function(){return i}})},67775:function(e,t,n){"use strict";n.d(t,{o:function(){return m},q:function(){return k}});var i,r=n(4942),o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(30487),c=n(36912),d=/^\w[\w\d+.-]*$/,h=/^\//,f=/^\/\//;var p="",g="/",v=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,m=function(){function e(t,n,i,r,o){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5];(0,s.Z)(this,e),"object"===typeof t?(this.scheme=t.scheme||p,this.authority=t.authority||p,this.path=t.path||p,this.query=t.query||p,this.fragment=t.fragment||p):(this.scheme=function(e,t){return e||t?e:"file"}(t,a),this.authority=n||p,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==g&&(t=g+t):t=g}return t}(this.scheme,i||p),this.query=r||p,this.fragment=o||p,function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'.concat(e.authority,'", path: "').concat(e.path,'", query: "').concat(e.query,'", fragment: "').concat(e.fragment,'"}'));if(e.scheme&&!d.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!h.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}(this,a))}return(0,u.Z)(e,[{key:"fsPath",get:function(){return k(this,!1)}},{key:"with",value:function(e){if(!e)return this;var t=e.scheme,n=e.authority,i=e.path,r=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=p),void 0===n?n=this.authority:null===n&&(n=p),void 0===i?i=this.path:null===i&&(i=p),void 0===r?r=this.query:null===r&&(r=p),void 0===o?o=this.fragment:null===o&&(o=p),t===this.scheme&&n===this.authority&&i===this.path&&r===this.query&&o===this.fragment?this:new y(t,n,i,r,o)}},{key:"toString",value:function(){return S(this,arguments.length>0&&void 0!==arguments[0]&&arguments[0])}},{key:"toJSON",value:function(){return this}}],[{key:"isUri",value:function(t){return t instanceof e||!!t&&("string"===typeof t.authority&&"string"===typeof t.fragment&&"string"===typeof t.path&&"string"===typeof t.query&&"string"===typeof t.scheme&&"string"===typeof t.fsPath&&"function"===typeof t.with&&"function"===typeof t.toString)}},{key:"parse",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=v.exec(e);return n?new y(n[2]||p,E(n[4]||p),E(n[5]||p),E(n[7]||p),E(n[9]||p),t):new y(p,p,p,p,p)}},{key:"file",value:function(e){var t=p;if(l.ED&&(e=e.replace(/\\/g,g)),e[0]===g&&e[1]===g){var n=e.indexOf(g,2);-1===n?(t=e.substring(2),e=g):(t=e.substring(2,n),e=e.substring(n)||g)}return new y("file",t,e,p,p)}},{key:"from",value:function(e){return new y(e.scheme,e.authority,e.path,e.query,e.fragment)}},{key:"joinPath",value:function(t){if(!t.path)throw new Error("[UriError]: cannot call joinPath on URI without path");for(var n,i,r,o=arguments.length,a=new Array(o>1?o-1:0),s=1;s<o;s++)a[s-1]=arguments[s];l.ED&&"file"===t.scheme?n=e.file((i=c.Ku).join.apply(i,[k(t,!0)].concat(a))).path:n=(r=c.KR).join.apply(r,[t.path].concat(a));return t.with({path:n})}},{key:"revive",value:function(t){if(t){if(t instanceof e)return t;var n=new y(t);return n._formatted=t.external,n._fsPath=t._sep===_?t.fsPath:null,n}return t}}]),e}(),_=l.ED?1:void 0,y=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,s.Z)(this,n),(e=t.apply(this,arguments))._formatted=null,e._fsPath=null,e}return(0,u.Z)(n,[{key:"fsPath",get:function(){return this._fsPath||(this._fsPath=k(this,!1)),this._fsPath}},{key:"toString",value:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]?S(this,!0):(this._formatted||(this._formatted=S(this,!1)),this._formatted)}},{key:"toJSON",value:function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=_),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}]),n}(m),b=(i={},(0,r.Z)(i,58,"%3A"),(0,r.Z)(i,47,"%2F"),(0,r.Z)(i,63,"%3F"),(0,r.Z)(i,35,"%23"),(0,r.Z)(i,91,"%5B"),(0,r.Z)(i,93,"%5D"),(0,r.Z)(i,64,"%40"),(0,r.Z)(i,33,"%21"),(0,r.Z)(i,36,"%24"),(0,r.Z)(i,38,"%26"),(0,r.Z)(i,39,"%27"),(0,r.Z)(i,40,"%28"),(0,r.Z)(i,41,"%29"),(0,r.Z)(i,42,"%2A"),(0,r.Z)(i,43,"%2B"),(0,r.Z)(i,44,"%2C"),(0,r.Z)(i,59,"%3B"),(0,r.Z)(i,61,"%3D"),(0,r.Z)(i,32,"%20"),i);function w(e,t){for(var n=void 0,i=-1,r=0;r<e.length;r++){var o=e.charCodeAt(r);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),void 0!==n&&(n+=e.charAt(r));else{void 0===n&&(n=e.substr(0,r));var a=b[o];void 0!==a?(-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),n+=a):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function C(e){for(var t=void 0,n=0;n<e.length;n++){var i=e.charCodeAt(n);35===i||63===i?(void 0===t&&(t=e.substr(0,n)),t+=b[i]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function k(e,t){var n;return n=e.authority&&e.path.length>1&&"file"===e.scheme?"//".concat(e.authority).concat(e.path):47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?t?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,l.ED&&(n=n.replace(/\//g,"\\")),n}function S(e,t){var n=t?C:w,i="",r=e.scheme,o=e.authority,a=e.path,s=e.query,u=e.fragment;if(r&&(i+=r,i+=":"),(o||"file"===r)&&(i+=g,i+=g),o){var l=o.indexOf("@");if(-1!==l){var c=o.substr(0,l);o=o.substr(l+1),-1===(l=c.indexOf(":"))?i+=n(c,!1):(i+=n(c.substr(0,l),!1),i+=":",i+=n(c.substr(l+1),!1)),i+="@"}-1===(l=(o=o.toLowerCase()).indexOf(":"))?i+=n(o,!1):(i+=n(o.substr(0,l),!1),i+=o.substr(l))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2)){var d=a.charCodeAt(1);d>=65&&d<=90&&(a="/".concat(String.fromCharCode(d+32),":").concat(a.substr(3)))}else if(a.length>=2&&58===a.charCodeAt(1)){var h=a.charCodeAt(0);h>=65&&h<=90&&(a="".concat(String.fromCharCode(h+32),":").concat(a.substr(2)))}i+=n(a,!0)}return s&&(i+="?",i+=n(s,!1)),u&&(i+="#",i+=t?u:w(u,!1)),i}function x(e){try{return decodeURIComponent(e)}catch(t){return e.length>3?e.substr(0,3)+x(e.substr(3)):e}}var L=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(e){return e.match(L)?e.replace(L,(function(e){return x(e)})):e}},42659:function(e,t,n){"use strict";n.d(t,{Jq:function(){return i},X5:function(){return o},jG:function(){return r}});var i,r,o={ctrlCmd:!1,alt:!1};!function(e){e[e.Blur=1]="Blur",e[e.Gesture=2]="Gesture",e[e.Other=3]="Other"}(i||(i={})),function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.SECOND=2]="SECOND",e[e.LAST=3]="LAST"}(r||(r={}))},37456:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages}});var i=n(14717)},47014:function(e,t,n){"use strict";n.d(t,{V:function(){return k},P:function(){return w}});var i=n(37762),r=n(11752),o=n(61120),a=n(60136),s=n(29388),u=n(15671),l=n(43144),c=n(84539),d=n(11732),h=n(81626),f=n(30487),p=function(){function e(t,n){(0,u.Z)(this,e),this.chr=t,this.type=n,this.width=0}return(0,l.Z)(e,[{key:"fulfill",value:function(e){this.width=e}}]),e}(),g=function(){function e(t,n){(0,u.Z)(this,e),this._bareFontInfo=t,this._requests=n,this._container=null,this._testElements=null}return(0,l.Z)(e,[{key:"read",value:function(){this._createDomElements(),document.body.appendChild(this._container),this._readFromDomElements(),document.body.removeChild(this._container),this._container=null,this._testElements=null}},{key:"_createDomElements",value:function(){var t=document.createElement("div");t.style.position="absolute",t.style.top="-50000px",t.style.width="50000px";var n=document.createElement("div");n.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),n.style.fontWeight=this._bareFontInfo.fontWeight,n.style.fontSize=this._bareFontInfo.fontSize+"px",n.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,n.style.lineHeight=this._bareFontInfo.lineHeight+"px",n.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",t.appendChild(n);var r=document.createElement("div");r.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),r.style.fontWeight="bold",r.style.fontSize=this._bareFontInfo.fontSize+"px",r.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,r.style.lineHeight=this._bareFontInfo.lineHeight+"px",r.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",t.appendChild(r);var o=document.createElement("div");o.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),o.style.fontWeight=this._bareFontInfo.fontWeight,o.style.fontSize=this._bareFontInfo.fontSize+"px",o.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,o.style.lineHeight=this._bareFontInfo.lineHeight+"px",o.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",o.style.fontStyle="italic",t.appendChild(o);var a,s=[],u=(0,i.Z)(this._requests);try{for(u.s();!(a=u.n()).done;){var l=a.value,c=void 0;0===l.type&&(c=n),2===l.type&&(c=r),1===l.type&&(c=o),c.appendChild(document.createElement("br"));var d=document.createElement("span");e._render(d,l),c.appendChild(d),s.push(d)}}catch(h){u.e(h)}finally{u.f()}this._container=t,this._testElements=s}},{key:"_readFromDomElements",value:function(){for(var e=0,t=this._requests.length;e<t;e++){var n=this._requests[e],i=this._testElements[e];n.fulfill(i.offsetWidth/256)}}}],[{key:"_render",value:function(e,t){if(" "===t.chr){for(var n="\xa0",i=0;i<8;i++)n+=n;e.innerText=n}else{for(var r=t.chr,o=0;o<8;o++)r+=r;e.textContent=r}}}]),e}();var v=n(75949),m=n(32995),_=n(76556),y=n(28702),b=function(){function e(){(0,u.Z)(this,e),this._keys=Object.create(null),this._values=Object.create(null)}return(0,l.Z)(e,[{key:"has",value:function(e){var t=e.getId();return!!this._values[t]}},{key:"get",value:function(e){var t=e.getId();return this._values[t]}},{key:"put",value:function(e,t){var n=e.getId();this._keys[n]=e,this._values[n]=t}},{key:"remove",value:function(e){var t=e.getId();delete this._keys[t],delete this._values[t]}},{key:"getValues",value:function(){var e=this;return Object.keys(this._keys).map((function(t){return e._values[t]}))}}]),e}();function w(){C.INSTANCE.clearCache()}var C=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,u.Z)(this,n),(e=t.call(this))._onDidChange=e._register(new d.Q5),e.onDidChange=e._onDidChange.event,e._cache=new b,e._evictUntrustedReadingsTimeout=-1,e}return(0,l.Z)(n,[{key:"dispose",value:function(){-1!==this._evictUntrustedReadingsTimeout&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),(0,r.Z)((0,o.Z)(n.prototype),"dispose",this).call(this)}},{key:"clearCache",value:function(){this._cache=new b,this._onDidChange.fire()}},{key:"_writeToCache",value:function(e,t){var n=this;this._cache.put(e,t),t.isTrusted||-1!==this._evictUntrustedReadingsTimeout||(this._evictUntrustedReadingsTimeout=setTimeout((function(){n._evictUntrustedReadingsTimeout=-1,n._evictUntrustedReadings()}),5e3))}},{key:"_evictUntrustedReadings",value:function(){var e,t=this._cache.getValues(),n=!1,r=(0,i.Z)(t);try{for(r.s();!(e=r.n()).done;){var o=e.value;o.isTrusted||(n=!0,this._cache.remove(o))}}catch(a){r.e(a)}finally{r.f()}n&&this._onDidChange.fire()}},{key:"readConfiguration",value:function(e){if(!this._cache.has(e)){var t=n._actualReadConfiguration(e);(t.typicalHalfwidthCharacterWidth<=2||t.typicalFullwidthCharacterWidth<=2||t.spaceWidth<=2||t.maxDigitWidth<=2)&&(t=new y.pR({zoomLevel:c.px(),pixelRatio:c.mX(),fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:t.isMonospace,typicalHalfwidthCharacterWidth:Math.max(t.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(t.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:t.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(t.spaceWidth,5),middotWidth:Math.max(t.middotWidth,5),wsmiddotWidth:Math.max(t.wsmiddotWidth,5),maxDigitWidth:Math.max(t.maxDigitWidth,5)},!1)),this._writeToCache(e,t)}return this._cache.get(e)}}],[{key:"createRequest",value:function(e,t,n,i){var r=new p(e,t);return n.push(r),i&&i.push(r),r}},{key:"_actualReadConfiguration",value:function(e){var t=[],n=[],i=this.createRequest("n",0,t,n),r=this.createRequest("\uff4d",0,t,null),o=this.createRequest(" ",0,t,n),a=this.createRequest("0",0,t,n),s=this.createRequest("1",0,t,n),u=this.createRequest("2",0,t,n),l=this.createRequest("3",0,t,n),d=this.createRequest("4",0,t,n),h=this.createRequest("5",0,t,n),f=this.createRequest("6",0,t,n),p=this.createRequest("7",0,t,n),v=this.createRequest("8",0,t,n),m=this.createRequest("9",0,t,n),b=this.createRequest("\u2192",0,t,n),w=this.createRequest("\uffeb",0,t,null),C=this.createRequest("\xb7",0,t,n),k=this.createRequest(String.fromCharCode(11825),0,t,null);this.createRequest("|",0,t,n),this.createRequest("/",0,t,n),this.createRequest("-",0,t,n),this.createRequest("_",0,t,n),this.createRequest("i",0,t,n),this.createRequest("l",0,t,n),this.createRequest("m",0,t,n),this.createRequest("|",1,t,n),this.createRequest("_",1,t,n),this.createRequest("i",1,t,n),this.createRequest("l",1,t,n),this.createRequest("m",1,t,n),this.createRequest("n",1,t,n),this.createRequest("|",2,t,n),this.createRequest("_",2,t,n),this.createRequest("i",2,t,n),this.createRequest("l",2,t,n),this.createRequest("m",2,t,n),this.createRequest("n",2,t,n),function(e,t){new g(e,t).read()}(e,t);for(var S=Math.max(a.width,s.width,u.width,l.width,d.width,h.width,f.width,p.width,v.width,m.width),x=e.fontFeatureSettings===_.n0.OFF,L=n[0].width,E=1,N=n.length;x&&E<N;E++){var D=L-n[E].width;if(D<-.001||D>.001){x=!1;break}}var M=!0;x&&w.width!==L&&(M=!1),w.width>b.width&&(M=!1);var T=c.WP()>2e3;return new y.pR({zoomLevel:c.px(),pixelRatio:c.mX(),fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,fontFeatureSettings:e.fontFeatureSettings,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:x,typicalHalfwidthCharacterWidth:i.width,typicalFullwidthCharacterWidth:r.width,canUseHalfwidthRightwardsArrow:M,spaceWidth:o.width,middotWidth:C.width,wsmiddotWidth:k.width,maxDigitWidth:S},T)}}]),n}(h.JT);C.INSTANCE=new C;var k=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,i){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3?arguments[3]:void 0;return(0,u.Z)(this,n),(r=t.call(this,e,i)).accessibilityService=a,r._elementSizeObserver=r._register(new v.I(o,i.dimension,(function(){return r._recomputeOptions()}))),r._register(C.INSTANCE.onDidChange((function(){return r._recomputeOptions()}))),r._validatedOptions.get(10)&&r._elementSizeObserver.startObserving(),r._register(c.fX((function(e){return r._recomputeOptions()}))),r._register(r.accessibilityService.onDidChangeScreenReaderOptimized((function(){return r._recomputeOptions()}))),r._recomputeOptions(),r}return(0,l.Z)(n,[{key:"observeReferenceElement",value:function(e){this._elementSizeObserver.observe(e)}},{key:"updatePixelRatio",value:function(){this._recomputeOptions()}},{key:"_getEnvConfiguration",value:function(){return{extraEditorClassName:n._getExtraEditorClassName(),outerWidth:this._elementSizeObserver.getWidth(),outerHeight:this._elementSizeObserver.getHeight(),emptySelectionClipboard:c.Pf||c.vU,pixelRatio:c.mX(),zoomLevel:c.px(),accessibilitySupport:this.accessibilityService.isScreenReaderOptimized()?2:this.accessibilityService.getAccessibilitySupport()}}},{key:"readConfiguration",value:function(e){return C.INSTANCE.readConfiguration(e)}}],[{key:"applyFontInfoSlow",value:function(e,t){e.style.fontFamily=t.getMassagedFontFamily(),e.style.fontWeight=t.fontWeight,e.style.fontSize=t.fontSize+"px",e.style.fontFeatureSettings=t.fontFeatureSettings,e.style.lineHeight=t.lineHeight+"px",e.style.letterSpacing=t.letterSpacing+"px"}},{key:"applyFontInfo",value:function(e,t){e.setFontFamily(t.getMassagedFontFamily()),e.setFontWeight(t.fontWeight),e.setFontSize(t.fontSize),e.setFontFeatureSettings(t.fontFeatureSettings),e.setLineHeight(t.lineHeight),e.setLetterSpacing(t.letterSpacing)}},{key:"_getExtraEditorClassName",value:function(){var e="";return c.G6||c.MG||(e+="no-user-select "),c.G6&&(e+="no-minimap-shadow "),f.dz&&(e+="mac "),e}}]),n}(m.fv)},75949:function(e,t,n){"use strict";n.d(t,{I:function(){return l}});var i=n(15671),r=n(43144),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).referenceDomElement=e,a.changeCallback=o,a.width=-1,a.height=-1,a.resizeObserver=null,a.measureReferenceDomElementToken=-1,a.measureReferenceDomElement(!1,r),a}return(0,r.Z)(n,[{key:"dispose",value:function(){this.stopObserving(),(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this)}},{key:"getWidth",value:function(){return this.width}},{key:"getHeight",value:function(){return this.height}},{key:"startObserving",value:function(){var e=this;"undefined"!==typeof ResizeObserver?!this.resizeObserver&&this.referenceDomElement&&(this.resizeObserver=new ResizeObserver((function(t){t&&t[0]&&t[0].contentRect?e.observe({width:t[0].contentRect.width,height:t[0].contentRect.height}):e.observe()})),this.resizeObserver.observe(this.referenceDomElement)):-1===this.measureReferenceDomElementToken&&(this.measureReferenceDomElementToken=setInterval((function(){return e.observe()}),100))}},{key:"stopObserving",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),-1!==this.measureReferenceDomElementToken&&(clearInterval(this.measureReferenceDomElementToken),this.measureReferenceDomElementToken=-1)}},{key:"observe",value:function(e){this.measureReferenceDomElement(!0,e)}},{key:"measureReferenceDomElement",value:function(e,t){var n=0,i=0;t?(n=t.width,i=t.height):this.referenceDomElement&&(n=this.referenceDomElement.clientWidth,i=this.referenceDomElement.clientHeight),n=Math.max(5,n),i=Math.max(5,i),this.width===n&&this.height===i||(this.width=n,this.height=i,e&&this.changeCallback())}}]),n}(n(81626).JT)},8518:function(e,t,n){"use strict";n.d(t,{wk:function(){return M},Ox:function(){return N}});var i,r,o=n(29439),a=n(15671),s=n(43144),u=n(60136),l=n(29388),c=n(56345),d=n(84539),h=n(25941),f=n(52180),p=n(33399),g=n(8295),v=n(16274),m=n(67297),_=n(67033),y=function(){function e(){(0,a.Z)(this,e)}return(0,s.Z)(e,null,[{key:"columnSelect",value:function(e,t,n,i,r,o){for(var a=Math.abs(r-n)+1,s=n>r,u=i>o,l=i<o,c=[],d=0;d<a;d++){var h=n+(s?-d:d),f=v.io.columnFromVisibleColumn2(e,t,h,i),p=v.io.columnFromVisibleColumn2(e,t,h,o),g=v.io.visibleColumnFromColumn2(e,t,new m.L(h,f)),y=v.io.visibleColumnFromColumn2(e,t,new m.L(h,p));if(l){if(g>o)continue;if(y<i)continue}if(u){if(y>i)continue;if(g<o)continue}c.push(new v.rS(new _.e(h,f,h,f),0,new m.L(h,p),0))}if(0===c.length)for(var b=0;b<a;b++){var w=n+(s?-b:b),C=t.getLineMaxColumn(w);c.push(new v.rS(new _.e(w,C,w,C),0,new m.L(w,C),0))}return{viewStates:c,reversed:s,fromLineNumber:n,fromVisualColumn:i,toLineNumber:r,toVisualColumn:o}}},{key:"columnSelectLeft",value:function(t,n,i){var r=i.toViewVisualColumn;return r>0&&r--,e.columnSelect(t,n,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,r)}},{key:"columnSelectRight",value:function(e,t,n){for(var i=0,r=Math.min(n.fromViewLineNumber,n.toViewLineNumber),o=Math.max(n.fromViewLineNumber,n.toViewLineNumber),a=r;a<=o;a++){var s=t.getLineMaxColumn(a),u=v.io.visibleColumnFromColumn2(e,t,new m.L(a,s));i=Math.max(i,u)}var l=n.toViewVisualColumn;return l<i&&l++,this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,n.toViewLineNumber,l)}},{key:"columnSelectUp",value:function(e,t,n,i){var r=i?e.pageSize:1,o=Math.max(1,n.toViewLineNumber-r);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,o,n.toViewVisualColumn)}},{key:"columnSelectDown",value:function(e,t,n,i){var r=i?e.pageSize:1,o=Math.min(t.getLineCount(),n.toViewLineNumber+r);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,o,n.toViewVisualColumn)}}]),e}(),b=n(39765),w=n(55561),C=n(22268),k=n(21204),S=n(18948),x=n(51519),L=0,E=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.apply(this,arguments)}return(0,s.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=t._getViewModel();i&&this.runCoreEditorCommand(i,n||{})}}]),n}(p._l);!function(e){e.description={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t",constraint:function(e){if(!h.Kn(e))return!1;var t=e;return!!h.HD(t.to)&&(!(!h.o8(t.by)&&!h.HD(t.by))&&(!(!h.o8(t.value)&&!h.hj(t.value))&&!(!h.o8(t.revealCursor)&&!h.jn(t.revealCursor))))},schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["up","down"]},by:{type:"string",enum:["line","wrappedLine","page","halfPage"]},value:{type:"number",default:1},revealCursor:{type:"boolean"}}}}]},e.RawDirection={Up:"up",Down:"down"},e.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage"},e.parse=function(t){var n,i;switch(t.to){case e.RawDirection.Up:n=1;break;case e.RawDirection.Down:n=2;break;default:return null}switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Page:i=3;break;case e.RawUnit.HalfPage:i=4;break;default:i=2}return{direction:n,unit:i,value:Math.floor(t.value||1),revealCursor:!!t.revealCursor,select:!!t.select}}}(i||(i={})),function(e){e.description={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t```\n\t\t\t\t",constraint:function(e){if(!h.Kn(e))return!1;var t=e;return!(!h.hj(t.lineNumber)&&!h.HD(t.lineNumber))&&!(!h.o8(t.at)&&!h.HD(t.at))},schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},e.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}}(r||(r={}));var N,D=function(){function e(t){var n=this;(0,a.Z)(this,e),t.addImplementation(1e4,"code-editor",(function(e,t){var i=e.get(g.$).getFocusedCodeEditor();return!(!i||!i.hasTextFocus())&&n._runEditorCommand(e,i,t)})),t.addImplementation(1e3,"generic-dom-input-textarea",(function(e,t){var i=document.activeElement;return!!(i&&["input","textarea"].indexOf(i.tagName.toLowerCase())>=0)&&(n.runDOMCommand(),!0)})),t.addImplementation(0,"generic-dom",(function(e,t){var i=e.get(g.$).getActiveCodeEditor();return!!i&&(i.focus(),n._runEditorCommand(e,i,t))}))}return(0,s.Z)(e,[{key:"_runEditorCommand",value:function(e,t,n){var i=this.runEditorCommand(e,t,n);return i||!0}}]),e}();!function(e){var t=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[w.P.moveTo(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)]),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.MoveTo=(0,p.fK)(new t({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=(0,p.fK)(new t({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));var n=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.apply(this,arguments)}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement();var n=this._getColumnSelectResult(e,e.getPrimaryCursorState(),e.getCursorColumnSelectData(),t);e.setCursorStates(t.source,3,n.viewStates.map((function(e){return v.Vi.fromViewState(e)}))),e.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:n.fromLineNumber,fromViewVisualColumn:n.fromVisualColumn,toViewLineNumber:n.toLineNumber,toViewVisualColumn:n.toVisualColumn}),n.reversed?e.revealTopMostCursor(t.source):e.revealBottomMostCursor(t.source)}}]),n}(E);e.ColumnSelect=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"columnSelect",precondition:void 0})}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){var r=e.model.validatePosition(i.position),o=e.coordinatesConverter.validateViewPosition(new m.L(i.viewPosition.lineNumber,i.viewPosition.column),r),a=i.doColumnSelect?n.fromViewLineNumber:o.lineNumber,s=i.doColumnSelect?n.fromViewVisualColumn:i.mouseColumn-1;return y.columnSelect(e.cursorConfig,e,a,s,o.lineNumber,i.mouseColumn-1)}}]),n}(n))),e.CursorColumnSelectLeft=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3599,linux:{primary:0}}})}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){return y.columnSelectLeft(e.cursorConfig,e,n)}}]),n}(n))),e.CursorColumnSelectRight=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3601,linux:{primary:0}}})}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){return y.columnSelectRight(e.cursorConfig,e,n)}}]),n}(n)));var o=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._isPaged=e.isPaged,i}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){return y.columnSelectUp(e.cursorConfig,e,n,this._isPaged)}}]),n}(n);e.CursorColumnSelectUp=(0,p.fK)(new o({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=(0,p.fK)(new o({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3595,linux:{primary:0}}}));var h=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._isPaged=e.isPaged,i}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){return y.columnSelectDown(e.cursorConfig,e,n,this._isPaged)}}]),n}(n);e.CursorColumnSelectDown=(0,p.fK)(new h({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3602,linux:{primary:0}}})),e.CursorColumnSelectPageDown=(0,p.fK)(new h({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3596,linux:{primary:0}}}));var g=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"cursorMove",precondition:void 0,description:w.N.description})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=w.N.parse(t);n&&this._runCursorMove(e,t.source,n)}},{key:"_runCursorMove",value:function(e,t,i){e.model.pushStackElement(),e.setCursorStates(t,3,n._move(e,e.getCursorStates(),i)),e.revealPrimaryCursor(t,!0)}}],[{key:"_move",value:function(e,t,n){var i=n.select,r=n.value;switch(n.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return w.P.simpleMove(e,t,n.direction,i,r,n.unit);case 11:case 13:case 12:case 14:return w.P.viewportMove(e,t,n.direction,i,r);default:return null}}}]),n}(E);e.CursorMoveImpl=g,e.CursorMove=(0,p.fK)(new g);var b=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._staticArgs=e.args,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=this._staticArgs;-1===this._staticArgs.value&&(n={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:e.cursorConfig.pageSize}),e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.simpleMove(e,e.getCursorStates(),n.direction,n.select,n.value,n.unit)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorLeft=(0,p.fK)(new b({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=(0,p.fK)(new b({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1039}})),e.CursorRight=(0,p.fK)(new b({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=(0,p.fK)(new b({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1041}})),e.CursorUp=(0,p.fK)(new b({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=(0,p.fK)(new b({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=(0,p.fK)(new b({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:11}})),e.CursorPageUpSelect=(0,p.fK)(new b({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1035}})),e.CursorDown=(0,p.fK)(new b({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=(0,p.fK)(new b({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=(0,p.fK)(new b({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:12}})),e.CursorPageDownSelect=(0,p.fK)(new b({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1036}})),e.CreateCursor=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"createCursor",precondition:void 0})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n;n=t.wholeLine?w.P.line(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition):w.P.moveTo(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition);var i=e.getCursorStates();if(i.length>1)for(var r=n.modelState?n.modelState.position:null,o=n.viewState?n.viewState.position:null,a=0,s=i.length;a<s;a++){var u=i[a];if((!r||u.modelState.selection.containsPosition(r))&&(!o||u.viewState.selection.containsPosition(o)))return i.splice(a,1),e.model.pushStackElement(),void e.setCursorStates(t.source,3,i)}i.push(n),e.model.pushStackElement(),e.setCursorStates(t.source,3,i)}}]),n}(E))),e.LastCursorMoveToSelect=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"_lastCursorMoveToSelect",precondition:void 0})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=e.getLastAddedCursorIndex(),i=e.getCursorStates(),r=i.slice(0);r[n]=w.P.moveTo(e,i[n],!0,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,r)}}]),n}(E)));var C=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.moveToBeginningOfLine(e,e.getCursorStates(),this._inSelectionMode)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorHome=(0,p.fK)(new C({inSelectionMode:!1,id:"cursorHome",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),e.CursorHomeSelect=(0,p.fK)(new C({inSelectionMode:!0,id:"cursorHomeSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));var S=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e.getCursorStates())),e.revealPrimaryCursor(t.source,!0)}},{key:"_exec",value:function(e){for(var t=[],n=0,i=e.length;n<i;n++){var r=e[n],o=r.modelState.position.lineNumber;t[n]=v.Vi.fromModelState(r.modelState.move(this._inSelectionMode,o,1,0))}return t}}]),n}(E);e.CursorLineStart=(0,p.fK)(new S({inSelectionMode:!1,id:"cursorLineStart",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:287}}})),e.CursorLineStartSelect=(0,p.fK)(new S({inSelectionMode:!0,id:"cursorLineStartSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:1311}}}));var x=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.moveToEndOfLine(e,e.getCursorStates(),this._inSelectionMode,t.sticky||!1)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorEnd=(0,p.fK)(new x({inSelectionMode:!1,id:"cursorEnd",precondition:void 0,kbOpts:{args:{sticky:!1},weight:L,kbExpr:k.u.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},description:{description:"Go to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:c.N("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}})),e.CursorEndSelect=(0,p.fK)(new x({inSelectionMode:!0,id:"cursorEndSelect",precondition:void 0,kbOpts:{args:{sticky:!1},weight:L,kbExpr:k.u.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},description:{description:"Select to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:c.N("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}}));var N=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e,e.getCursorStates())),e.revealPrimaryCursor(t.source,!0)}},{key:"_exec",value:function(e,t){for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i],a=o.modelState.position.lineNumber,s=e.model.getLineMaxColumn(a);n[i]=v.Vi.fromModelState(o.modelState.move(this._inSelectionMode,a,s,0))}return n}}]),n}(E);e.CursorLineEnd=(0,p.fK)(new N({inSelectionMode:!1,id:"cursorLineEnd",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:291}}})),e.CursorLineEndSelect=(0,p.fK)(new N({inSelectionMode:!0,id:"cursorLineEndSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:1315}}}));var M=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.moveToBeginningOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorTop=(0,p.fK)(new M({inSelectionMode:!1,id:"cursorTop",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2062,mac:{primary:2064}}})),e.CursorTopSelect=(0,p.fK)(new M({inSelectionMode:!0,id:"cursorTopSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3086,mac:{primary:3088}}}));var T=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.moveToEndOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorBottom=(0,p.fK)(new T({inSelectionMode:!1,id:"cursorBottom",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2061,mac:{primary:2066}}})),e.CursorBottomSelect=(0,p.fK)(new T({inSelectionMode:!0,id:"cursorBottomSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3085,mac:{primary:3090}}}));var O=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"editorScroll",precondition:void 0,description:i.description})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=i.parse(t);n&&this._runEditorScroll(e,t.source,n)}},{key:"_runEditorScroll",value:function(e,t,n){var i=this._computeDesiredScrollTop(e,n);if(n.revealCursor){var r=e.getCompletelyVisibleViewRangeAtScrollTop(i);e.setCursorStates(t,3,[w.P.findPositionInViewportIfOutside(e,e.getPrimaryCursorState(),r,n.select)])}e.setScrollTop(i,0)}},{key:"_computeDesiredScrollTop",value:function(e,t){if(1===t.unit){var n,i=e.getCompletelyVisibleViewRange(),r=e.coordinatesConverter.convertViewRangeToModelRange(i);n=1===t.direction?Math.max(1,r.startLineNumber-t.value):Math.min(e.model.getLineCount(),r.startLineNumber+t.value);var o=e.coordinatesConverter.convertModelPositionToViewPosition(new m.L(n,1));return e.getVerticalOffsetForLineNumber(o.lineNumber)}var a;a=3===t.unit?e.cursorConfig.pageSize*t.value:4===t.unit?Math.round(e.cursorConfig.pageSize/2)*t.value:t.value;var s=(1===t.direction?-1:1)*a;return e.getScrollTop()+s*e.cursorConfig.lineHeight}}]),n}(E);e.EditorScrollImpl=O,e.EditorScroll=(0,p.fK)(new O),e.ScrollLineUp=(0,p.fK)(new(function(t){(0,u.Z)(i,t);var n=(0,l.Z)(i);function i(){return(0,a.Z)(this,i),n.call(this,{id:"scrollLineUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2064,mac:{primary:267}}})}return(0,s.Z)(i,[{key:"runCoreEditorCommand",value:function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:1,unit:2,value:1,revealCursor:!1,select:!1})}}]),i}(E))),e.ScrollPageUp=(0,p.fK)(new(function(t){(0,u.Z)(i,t);var n=(0,l.Z)(i);function i(){return(0,a.Z)(this,i),n.call(this,{id:"scrollPageUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})}return(0,s.Z)(i,[{key:"runCoreEditorCommand",value:function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:1,unit:3,value:1,revealCursor:!1,select:!1})}}]),i}(E))),e.ScrollLineDown=(0,p.fK)(new(function(t){(0,u.Z)(i,t);var n=(0,l.Z)(i);function i(){return(0,a.Z)(this,i),n.call(this,{id:"scrollLineDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2066,mac:{primary:268}}})}return(0,s.Z)(i,[{key:"runCoreEditorCommand",value:function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:2,unit:2,value:1,revealCursor:!1,select:!1})}}]),i}(E))),e.ScrollPageDown=(0,p.fK)(new(function(t){(0,u.Z)(i,t);var n=(0,l.Z)(i);function i(){return(0,a.Z)(this,i),n.call(this,{id:"scrollPageDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})}return(0,s.Z)(i,[{key:"runCoreEditorCommand",value:function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:2,unit:3,value:1,revealCursor:!1,select:!1})}}]),i}(E)));var I=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[w.P.word(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position)]),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.WordSelect=(0,p.fK)(new I({inSelectionMode:!1,id:"_wordSelect",precondition:void 0})),e.WordSelectDrag=(0,p.fK)(new I({inSelectionMode:!0,id:"_wordSelectDrag",precondition:void 0})),e.LastCursorWordSelect=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"lastCursorWordSelect",precondition:void 0})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=e.getLastAddedCursorIndex(),i=e.getCursorStates(),r=i.slice(0),o=i[n];r[n]=w.P.word(e,o,o.modelState.hasSelection(),t.position),e.model.pushStackElement(),e.setCursorStates(t.source,3,r)}}]),n}(E)));var A=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[w.P.line(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)]),e.revealPrimaryCursor(t.source,!1)}}]),n}(E);e.LineSelect=(0,p.fK)(new A({inSelectionMode:!1,id:"_lineSelect",precondition:void 0})),e.LineSelectDrag=(0,p.fK)(new A({inSelectionMode:!0,id:"_lineSelectDrag",precondition:void 0}));var R=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=e.getLastAddedCursorIndex(),i=e.getCursorStates(),r=i.slice(0);r[n]=w.P.line(e,i[n],this._inSelectionMode,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,r)}}]),n}(E);e.LastCursorLineSelect=(0,p.fK)(new R({inSelectionMode:!1,id:"lastCursorLineSelect",precondition:void 0})),e.LastCursorLineSelectDrag=(0,p.fK)(new R({inSelectionMode:!0,id:"lastCursorLineSelectDrag",precondition:void 0})),e.ExpandLineSelection=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"expandLineSelection",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2090}})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.expandLineSelection(e,e.getCursorStates())),e.revealPrimaryCursor(t.source,!0)}}]),n}(E))),e.CancelSelection=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"cancelSelection",precondition:k.u.hasNonEmptySelection,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:9,secondary:[1033]}})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[w.P.cancelSelection(e,e.getPrimaryCursorState())]),e.revealPrimaryCursor(t.source,!0)}}]),n}(E))),e.RemoveSecondaryCursors=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"removeSecondaryCursors",precondition:k.u.hasMultipleSelections,kbOpts:{weight:L+1,kbExpr:k.u.textInputFocus,primary:9,secondary:[1033]}})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[e.getPrimaryCursorState()]),e.revealPrimaryCursor(t.source,!0),(0,f.i7)(c.N("removedCursor","Removed secondary cursors"))}}]),n}(E))),e.RevealLine=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"revealLine",precondition:void 0,description:r.description})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=t,i=n.lineNumber||0,o="number"===typeof i?i+1:parseInt(i)+1;o<1&&(o=1);var a=e.model.getLineCount();o>a&&(o=a);var s=new _.e(o,1,o,e.model.getLineMaxColumn(o)),u=0;if(n.at)switch(n.at){case r.RawAtArgument.Top:u=3;break;case r.RawAtArgument.Center:u=1;break;case r.RawAtArgument.Bottom:u=4}var l=e.coordinatesConverter.convertModelRangeToViewRange(s);e.revealRange(t.source,!1,l,u,0)}}]),n}(E))),e.SelectAll=new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,p.Sq)}return(0,s.Z)(n,[{key:"runDOMCommand",value:function(){d.vU&&(document.activeElement.focus(),document.activeElement.select()),document.execCommand("selectAll")}},{key:"runEditorCommand",value:function(e,t,n){var i=t._getViewModel();i&&this.runCoreEditorCommand(i,n)}},{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates("keyboard",3,[w.P.selectAll(e,e.getPrimaryCursorState())])}}]),n}(D)),e.SetSelection=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"setSelection",precondition:void 0})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[v.Vi.fromModelSelection(t.selection)])}}]),n}(E)))}(N||(N={}));var M,T=S.Ao.and(k.u.textInputFocus,k.u.columnSelection);function O(e,t){x.W.registerKeybindingRule({id:e,primary:t,when:T,weight:L+1})}function I(e){return e.register(),e}O(N.CursorColumnSelectLeft.id,1039),O(N.CursorColumnSelectRight.id,1041),O(N.CursorColumnSelectUp.id,1040),O(N.CursorColumnSelectPageUp.id,1035),O(N.CursorColumnSelectDown.id,1042),O(N.CursorColumnSelectPageDown.id,1036),function(e){var t=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.apply(this,arguments)}return(0,s.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=t._getViewModel();i&&this.runCoreEditingCommand(t,i,n||{})}}]),n}(p._l);e.CoreEditingCommand=t,e.LineBreakInsert=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"lineBreakInsert",precondition:k.u.writable,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:301}}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,C.u.lineBreakInsert(t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection}))))}}]),n}(t))),e.Outdent=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"outdent",precondition:k.u.writable,kbOpts:{weight:L,kbExpr:S.Ao.and(k.u.editorTextFocus,k.u.tabDoesNotMoveFocus),primary:1026}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,C.u.outdent(t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection})))),e.pushUndoStop()}}]),n}(t))),e.Tab=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"tab",precondition:k.u.writable,kbOpts:{weight:L,kbExpr:S.Ao.and(k.u.editorTextFocus,k.u.tabDoesNotMoveFocus),primary:2}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,C.u.tab(t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection})))),e.pushUndoStop()}}]),n}(t))),e.DeleteLeft=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"deleteLeft",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){var i=b.A.deleteLeft(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection})),t.getCursorAutoClosedCharacters()),r=(0,o.Z)(i,2),a=r[0],s=r[1];a&&e.pushUndoStop(),e.executeCommands(this.id,s),t.setPrevEditOperationType(2)}}]),n}(t))),e.DeleteRight=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"deleteRight",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){var i=b.A.deleteRight(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection}))),r=(0,o.Z)(i,2),a=r[0],s=r[1];a&&e.pushUndoStop(),e.executeCommands(this.id,s),t.setPrevEditOperationType(3)}}]),n}(t))),e.Undo=new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,p.n_)}return(0,s.Z)(n,[{key:"runDOMCommand",value:function(){document.execCommand("undo")}},{key:"runEditorCommand",value:function(e,t,n){if(t.hasModel()&&!0!==t.getOption(77))return t.getModel().undo()}}]),n}(D)),e.Redo=new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,p.kz)}return(0,s.Z)(n,[{key:"runDOMCommand",value:function(){document.execCommand("redo")}},{key:"runEditorCommand",value:function(e,t,n){if(t.hasModel()&&!0!==t.getOption(77))return t.getModel().redo()}}]),n}(D))}(M||(M={}));var A=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;return(0,a.Z)(this,n),(o=t.call(this,{id:e,precondition:void 0,description:r}))._handlerId=i,o}return(0,s.Z)(n,[{key:"runCommand",value:function(e,t){var n=e.get(g.$).getFocusedCodeEditor();n&&n.trigger("keyboard",this._handlerId,t)}}]),n}(p.mY);function R(e,t){I(new A("default:"+e,e)),I(new A(e,e,t))}R("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),R("replacePreviousChar"),R("compositionType"),R("compositionStart"),R("compositionEnd"),R("paste"),R("cut")},83106:function(e,t,n){"use strict";n.d(t,{Fz:function(){return k},Nl:function(){return C},RA:function(){return w},pd:function(){return i}});var i,r=n(29439),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(15671),c=n(43144),d=n(84539),h=n(84540),f=n(27997),p=n(11732),g=n(81626),v=n(30487),m=n(51747),_=n(90224),y=n(67297),b=n(74964);!function(e){e.Tap="-monaco-textarea-synthetic-tap"}(i||(i={}));var w={forceCopyWithSyntaxHighlighting:!1},C=function(){function e(){(0,l.Z)(this,e),this._lastState=null}return(0,c.Z)(e,[{key:"set",value:function(e,t){this._lastState={lastCopiedValue:e,data:t}}},{key:"get",value:function(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}}]),e}();C.INSTANCE=new C;var k=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,o){var a;(0,l.Z)(this,n),(a=t.call(this)).textArea=o,a._onFocus=a._register(new p.Q5),a.onFocus=a._onFocus.event,a._onBlur=a._register(new p.Q5),a.onBlur=a._onBlur.event,a._onKeyDown=a._register(new p.Q5),a.onKeyDown=a._onKeyDown.event,a._onKeyUp=a._register(new p.Q5),a.onKeyUp=a._onKeyUp.event,a._onCut=a._register(new p.Q5),a.onCut=a._onCut.event,a._onPaste=a._register(new p.Q5),a.onPaste=a._onPaste.event,a._onType=a._register(new p.Q5),a.onType=a._onType.event,a._onCompositionStart=a._register(new p.Q5),a.onCompositionStart=a._onCompositionStart.event,a._onCompositionUpdate=a._register(new p.Q5),a.onCompositionUpdate=a._onCompositionUpdate.event,a._onCompositionEnd=a._register(new p.Q5),a.onCompositionEnd=a._onCompositionEnd.event,a._onSelectionChangeRequest=a._register(new p.Q5),a.onSelectionChangeRequest=a._onSelectionChangeRequest.event,a._host=e,a._textArea=a._register(new x(o)),a._asyncTriggerCut=a._register(new f.pY((function(){return a._onCut.fire()}),0)),a._asyncFocusGainWriteScreenReaderContent=a._register(new f.pY((function(){return a.writeScreenReaderContent("asyncFocusGain")}),0)),a._textAreaState=_.un.EMPTY,a._selectionChangeListener=null,a.writeScreenReaderContent("ctor"),a._hasFocus=!1,a._isDoingComposition=!1,a._nextCommand=0;var s=null;a._register(h.addStandardDisposableListener(o.domNode,"keydown",(function(e){(109===e.keyCode||a._isDoingComposition&&1===e.keyCode)&&e.stopPropagation(),e.equals(9)&&e.preventDefault(),s=e,a._onKeyDown.fire(e)}))),a._register(h.addStandardDisposableListener(o.domNode,"keyup",(function(e){a._onKeyUp.fire(e)}))),a._register(h.addDisposableListener(o.domNode,"compositionstart",(function(e){if(_.al&&console.log("[compositionstart]",e),!a._isDoingComposition){if(a._isDoingComposition=!0,v.dz&&a._textAreaState.selectionStart===a._textAreaState.selectionEnd&&a._textAreaState.selectionStart>0&&a._textAreaState.value.substr(a._textAreaState.selectionStart-1,1)===e.data)if(s&&s.equals(109)&&("ArrowRight"===s.code||"ArrowLeft"===s.code)||d.vU)return _.al&&console.log("[compositionstart] Handling long press case on macOS + arrow key or Firefox",e),a._textAreaState=new _.un(a._textAreaState.value,a._textAreaState.selectionStart-1,a._textAreaState.selectionEnd,a._textAreaState.selectionStartPosition?new y.L(a._textAreaState.selectionStartPosition.lineNumber,a._textAreaState.selectionStartPosition.column-1):null,a._textAreaState.selectionEndPosition),void a._onCompositionStart.fire({revealDeltaColumns:-1});d.Dt?a._onCompositionStart.fire({revealDeltaColumns:-a._textAreaState.selectionStart}):(a._setAndWriteTextAreaState("compositionstart",_.un.EMPTY),a._onCompositionStart.fire({revealDeltaColumns:0}))}})));var u=function(){var e=a._textAreaState,t=_.un.readFromTextArea(a._textArea);return[t,_.un.deduceAndroidCompositionInput(e,t)]},c=function(e){var t=a._textAreaState,n=_.un.selectedText(e);return[n,{text:n.value,replacePrevCharCnt:t.selectionEnd-t.selectionStart,replaceNextCharCnt:0,positionDelta:0}]};return a._register(h.addDisposableListener(o.domNode,"compositionupdate",(function(e){if(_.al&&console.log("[compositionupdate]",e),d.Dt){var t=u(),n=(0,r.Z)(t,2),i=n[0],o=n[1];return a._textAreaState=i,a._onType.fire(o),void a._onCompositionUpdate.fire(e)}var s=c(e.data||""),l=(0,r.Z)(s,2),h=l[0],f=l[1];a._textAreaState=h,a._onType.fire(f),a._onCompositionUpdate.fire(e)}))),a._register(h.addDisposableListener(o.domNode,"compositionend",(function(e){if(_.al&&console.log("[compositionend]",e),a._isDoingComposition){if(a._isDoingComposition=!1,d.Dt){var t=u(),n=(0,r.Z)(t,2),i=n[0],o=n[1];return a._textAreaState=i,a._onType.fire(o),void a._onCompositionEnd.fire()}var s=c(e.data||""),l=(0,r.Z)(s,2),h=l[0],f=l[1];a._textAreaState=h,a._onType.fire(f),(d.i7||d.vU)&&(a._textAreaState=_.un.readFromTextArea(a._textArea)),a._onCompositionEnd.fire()}}))),a._register(h.addDisposableListener(o.domNode,"input",(function(){if(a._textArea.setIgnoreSelectionChangeTime("received input event"),!a._isDoingComposition){var e=function(e){var t=a._textAreaState,n=_.un.readFromTextArea(a._textArea);return[n,_.un.deduceInput(t,n,e)]}(v.dz),t=(0,r.Z)(e,2),n=t[0],i=t[1];0===i.replacePrevCharCnt&&1===i.text.length&&m.ZG(i.text.charCodeAt(0))||(a._textAreaState=n,0===a._nextCommand?""===i.text&&0===i.replacePrevCharCnt||a._onType.fire(i):(""===i.text&&0===i.replacePrevCharCnt||a._firePaste(i.text,null),a._nextCommand=0))}}))),a._register(h.addDisposableListener(o.domNode,"cut",(function(e){a._textArea.setIgnoreSelectionChangeTime("received cut event"),a._ensureClipboardGetsEditorSelection(e),a._asyncTriggerCut.schedule()}))),a._register(h.addDisposableListener(o.domNode,"copy",(function(e){a._ensureClipboardGetsEditorSelection(e)}))),a._register(h.addDisposableListener(o.domNode,"paste",(function(e){if(a._textArea.setIgnoreSelectionChangeTime("received paste event"),S.canUseTextData(e)){var t=S.getTextData(e),n=(0,r.Z)(t,2),i=n[0],o=n[1];""!==i&&a._firePaste(i,o)}else a._textArea.getSelectionStart()!==a._textArea.getSelectionEnd()&&a._setAndWriteTextAreaState("paste",_.un.EMPTY),a._nextCommand=1}))),a._register(h.addDisposableListener(o.domNode,"focus",(function(){var e=a._hasFocus;a._setHasFocus(!0),d.G6&&!e&&a._hasFocus&&a._asyncFocusGainWriteScreenReaderContent.schedule()}))),a._register(h.addDisposableListener(o.domNode,"blur",(function(){a._isDoingComposition&&(a._isDoingComposition=!1,a.writeScreenReaderContent("blurWithoutCompositionEnd"),a._onCompositionEnd.fire()),a._setHasFocus(!1)}))),a._register(h.addDisposableListener(o.domNode,i.Tap,(function(){d.Dt&&a._isDoingComposition&&(a._isDoingComposition=!1,a.writeScreenReaderContent("tapWithoutCompositionEnd"),a._onCompositionEnd.fire())}))),a}return(0,c.Z)(n,[{key:"_installSelectionChangeListener",value:function(){var e=this,t=0;return h.addDisposableListener(document,"selectionchange",(function(n){if(e._hasFocus&&!e._isDoingComposition&&d.i7){var i=Date.now(),r=i-t;if(t=i,!(r<5)){var o=i-e._textArea.getIgnoreSelectionChangeTime();if(e._textArea.resetSelectionChangeTime(),!(o<100)&&e._textAreaState.selectionStartPosition&&e._textAreaState.selectionEndPosition){var a=e._textArea.getValue();if(e._textAreaState.value===a){var s=e._textArea.getSelectionStart(),u=e._textArea.getSelectionEnd();if(e._textAreaState.selectionStart!==s||e._textAreaState.selectionEnd!==u){var l=e._textAreaState.deduceEditorPosition(s),c=e._host.deduceModelPosition(l[0],l[1],l[2]),h=e._textAreaState.deduceEditorPosition(u),f=e._host.deduceModelPosition(h[0],h[1],h[2]),p=new b.Y(c.lineNumber,c.column,f.lineNumber,f.column);e._onSelectionChangeRequest.fire(p)}}}}}}))}},{key:"dispose",value:function(){(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}},{key:"focusTextArea",value:function(){this._setHasFocus(!0),this.refreshFocusState()}},{key:"isFocused",value:function(){return this._hasFocus}},{key:"refreshFocusState",value:function(){var e=h.getShadowRoot(this.textArea.domNode);e?this._setHasFocus(e.activeElement===this.textArea.domNode):h.isInDOM(this.textArea.domNode)?this._setHasFocus(document.activeElement===this.textArea.domNode):this._setHasFocus(!1)}},{key:"_setHasFocus",value:function(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeScreenReaderContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}},{key:"_setAndWriteTextAreaState",value:function(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}},{key:"writeScreenReaderContent",value:function(e){this._isDoingComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent(this._textAreaState))}},{key:"_ensureClipboardGetsEditorSelection",value:function(e){var t=this._host.getDataToCopy(S.canUseTextData(e)),n={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};C.INSTANCE.set(d.vU?t.text.replace(/\r\n/g,"\n"):t.text,n),S.canUseTextData(e)?S.setTextData(e,t.text,t.html,n):this._setAndWriteTextAreaState("copy or cut",_.un.selectedText(t.text))}},{key:"_firePaste",value:function(e,t){t||(t=C.INSTANCE.get(e)),this._onPaste.fire({text:e,metadata:t})}}]),n}(g.JT),S=function(){function e(){(0,l.Z)(this,e)}return(0,c.Z)(e,null,[{key:"canUseTextData",value:function(e){return!!e.clipboardData||!!window.clipboardData}},{key:"getTextData",value:function(e){if(e.clipboardData){e.preventDefault();var t=e.clipboardData.getData("text/plain"),n=null,i=e.clipboardData.getData("vscode-editor-data");if("string"===typeof i)try{1!==(n=JSON.parse(i)).version&&(n=null)}catch(r){}return[t,n]}if(window.clipboardData)return e.preventDefault(),[window.clipboardData.getData("Text"),null];throw new Error("ClipboardEventUtils.getTextData: Cannot use text data!")}},{key:"setTextData",value:function(e,t,n,i){if(e.clipboardData)return e.clipboardData.setData("text/plain",t),"string"===typeof n&&e.clipboardData.setData("text/html",n),e.clipboardData.setData("vscode-editor-data",JSON.stringify(i)),void e.preventDefault();if(window.clipboardData)return window.clipboardData.setData("Text",t),void e.preventDefault();throw new Error("ClipboardEventUtils.setTextData: Cannot use text data!")}}]),e}(),x=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,l.Z)(this,n),(i=t.call(this))._actual=e,i._ignoreSelectionChangeTime=0,i}return(0,c.Z)(n,[{key:"setIgnoreSelectionChangeTime",value:function(e){this._ignoreSelectionChangeTime=Date.now()}},{key:"getIgnoreSelectionChangeTime",value:function(){return this._ignoreSelectionChangeTime}},{key:"resetSelectionChangeTime",value:function(){this._ignoreSelectionChangeTime=0}},{key:"getValue",value:function(){return this._actual.domNode.value}},{key:"setValue",value:function(e,t){var n=this._actual.domNode;n.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),n.value=t)}},{key:"getSelectionStart",value:function(){return"backward"===this._actual.domNode.selectionDirection?this._actual.domNode.selectionEnd:this._actual.domNode.selectionStart}},{key:"getSelectionEnd",value:function(){return"backward"===this._actual.domNode.selectionDirection?this._actual.domNode.selectionStart:this._actual.domNode.selectionEnd}},{key:"setSelectionRange",value:function(e,t,n){var i=this._actual.domNode,r=h.getShadowRoot(i),o=(r?r.activeElement:document.activeElement)===i,a=i.selectionStart,s=i.selectionEnd;if(o&&a===t&&s===n)d.vU&&window.parent!==window&&i.focus();else{if(o)return this.setIgnoreSelectionChangeTime("setSelectionRange"),i.setSelectionRange(t,n),void(d.vU&&window.parent!==window&&i.focus());try{var u=h.saveParentsScrollTop(i);this.setIgnoreSelectionChangeTime("setSelectionRange"),i.focus(),i.setSelectionRange(t,n),h.restoreParentsScrollTop(i,u)}catch(l){}}}}]),n}(g.JT)},90224:function(e,t,n){"use strict";n.d(t,{al:function(){return u},ee:function(){return c},un:function(){return l}});var i=n(15671),r=n(43144),o=n(51747),a=n(67297),s=n(67033),u=!1,l=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.value=t,this.selectionStart=n,this.selectionEnd=r,this.selectionStartPosition=o,this.selectionEndPosition=a}return(0,r.Z)(e,[{key:"toString",value:function(){return"[ <"+this.value+">, selectionStart: "+this.selectionStart+", selectionEnd: "+this.selectionEnd+"]"}},{key:"collapseSelection",value:function(){return new e(this.value,this.value.length,this.value.length,null,null)}},{key:"writeToTextArea",value:function(e,t,n){u&&console.log("writeToTextArea "+e+": "+this.toString()),t.setValue(e,this.value),n&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}},{key:"deduceEditorPosition",value:function(e){if(e<=this.selectionStart){var t=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition(this.selectionStartPosition,t,-1)}if(e>=this.selectionEnd){var n=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(this.selectionEndPosition,n,1)}var i=this.value.substring(this.selectionStart,e);if(-1===i.indexOf(String.fromCharCode(8230)))return this._finishDeduceEditorPosition(this.selectionStartPosition,i,1);var r=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(this.selectionEndPosition,r,-1)}},{key:"_finishDeduceEditorPosition",value:function(e,t,n){for(var i=0,r=-1;-1!==(r=t.indexOf("\n",r+1));)i++;return[e,n*t.length,i]}}],[{key:"readFromTextArea",value:function(t){return new e(t.getValue(),t.getSelectionStart(),t.getSelectionEnd(),null,null)}},{key:"selectedText",value:function(t){return new e(t,0,t.length,null,null)}},{key:"deduceInput",value:function(e,t,n){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};u&&(console.log("------------------------deduceInput"),console.log("PREVIOUS STATE: "+e.toString()),console.log("CURRENT STATE: "+t.toString()));var i=e.value,r=e.selectionStart,a=e.selectionEnd,s=t.value,l=t.selectionStart,c=t.selectionEnd,d=i.substring(a),h=s.substring(c),f=o.P1(d,h);s=s.substring(0,s.length-f);var p=(i=i.substring(0,i.length-f)).substring(0,r),g=s.substring(0,l),v=o.Mh(p,g);if(s=s.substring(v),i=i.substring(v),l-=v,r-=v,c-=v,a-=v,u&&(console.log("AFTER DIFFING PREVIOUS STATE: <"+i+">, selectionStart: "+r+", selectionEnd: "+a),console.log("AFTER DIFFING CURRENT STATE: <"+s+">, selectionStart: "+l+", selectionEnd: "+c)),n&&l===c&&i.length>0){var m=null;if(l===s.length?s.startsWith(i)&&(m=s.substring(i.length)):s.endsWith(i)&&(m=s.substring(0,s.length-i.length)),null!==m&&m.length>0&&(/\uFE0F/.test(m)||o.RP(m)))return{text:m,replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0}}if(l===c){if(i===s&&0===r&&a===i.length&&l===s.length&&-1===s.indexOf("\n")&&o.xe(s))return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};var _=p.length-v;return u&&console.log("REMOVE PREVIOUS: "+(p.length-v)+" chars"),{text:s,replacePrevCharCnt:_,replaceNextCharCnt:0,positionDelta:0}}return{text:s,replacePrevCharCnt:a-r,replaceNextCharCnt:0,positionDelta:0}}},{key:"deduceAndroidCompositionInput",value:function(e,t){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(u&&(console.log("------------------------deduceAndroidCompositionInput"),console.log("PREVIOUS STATE: "+e.toString()),console.log("CURRENT STATE: "+t.toString())),e.value===t.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};var n=Math.min(o.Mh(e.value,t.value),e.selectionEnd),i=Math.min(o.P1(e.value,t.value),e.value.length-e.selectionEnd),r=e.value.substring(n,e.value.length-i),a=t.value.substring(n,t.value.length-i),s=e.selectionStart-n,l=e.selectionEnd-n,c=t.selectionStart-n,d=t.selectionEnd-n;return u&&(console.log("AFTER DIFFING PREVIOUS STATE: <"+r+">, selectionStart: "+s+", selectionEnd: "+l),console.log("AFTER DIFFING CURRENT STATE: <"+a+">, selectionStart: "+c+", selectionEnd: "+d)),{text:a,replacePrevCharCnt:l,replaceNextCharCnt:r.length-l,positionDelta:d-a.length}}}]),e}();l.EMPTY=new l("",0,0,null,null);var c=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,null,[{key:"_getPageOfLine",value:function(e,t){return Math.floor((e-1)/t)}},{key:"_getRangeForPage",value:function(e,t){var n=e*t,i=n+1,r=n+t;return new s.e(i,1,r+1,1)}},{key:"fromEditorSelection",value:function(t,n,i,r,o){var u,c=e._getPageOfLine(i.startLineNumber,r),d=e._getRangeForPage(c,r),h=e._getPageOfLine(i.endLineNumber,r),f=e._getRangeForPage(h,r),p=d.intersectRanges(new s.e(1,1,i.startLineNumber,i.startColumn)),g=n.getValueInRange(p,1),v=n.getLineCount(),m=n.getLineMaxColumn(v),_=f.intersectRanges(new s.e(i.endLineNumber,i.endColumn,v,m)),y=n.getValueInRange(_,1);if(c===h||c+1===h)u=n.getValueInRange(i,1);else{var b=d.intersectRanges(i),w=f.intersectRanges(i);u=n.getValueInRange(b,1)+String.fromCharCode(8230)+n.getValueInRange(w,1)}if(o){var C=500;g.length>C&&(g=g.substring(g.length-C,g.length)),y.length>C&&(y=y.substring(0,C)),u.length>1e3&&(u=u.substring(0,C)+String.fromCharCode(8230)+u.substring(u.length-C,u.length))}return new l(g+u+y,g.length,g.length+u.length,new a.L(i.startLineNumber,i.startColumn),new a.L(i.endLineNumber,i.endColumn))}}]),e}()},47908:function(e,t,n){"use strict";n.d(t,{yy:function(){return k},Dl:function(){return S},ZF:function(){return L},YQ:function(){return x}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(51747),c=n(67033),d=n(66526),h=n(81626),f=n(97326),p=n(33399),g=n(18948),v=n(28214),m=n(84596),_=n(77863),y=n(56345),b=(0,m.yh)("IEditorCancelService"),w=new g.uy("cancellableOperation",!1,(0,y.N)("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));(0,_.z)(b,function(){function e(){(0,s.Z)(this,e),this._tokens=new WeakMap}return(0,u.Z)(e,[{key:"add",value:function(e,t){var n,i=this._tokens.get(e);return i||(i=e.invokeWithinContext((function(e){return{key:w.bindTo(e.get(g.i6)),tokens:new v.S}})),this._tokens.set(e,i)),i.key.set(!0),n=i.tokens.push(t),function(){n&&(n(),i.key.set(!i.tokens.isEmpty()),n=void 0)}}},{key:"cancel",value:function(e){var t=this._tokens.get(e);if(t){var n=t.tokens.pop();n&&(n.cancel(),t.key.set(!t.tokens.isEmpty()))}}}]),e}(),!0);var C=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;return(0,s.Z)(this,n),(r=t.call(this,i)).editor=e,r._unregister=e.invokeWithinContext((function(t){return t.get(b).add(e,(0,f.Z)(r))})),r}return(0,u.Z)(n,[{key:"dispose",value:function(){this._unregister(),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}}]),n}(d.A);(0,p.fK)(new(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,s.Z)(this,n),t.call(this,{id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:w})}return(0,u.Z)(n,[{key:"runEditorCommand",value:function(e,t){e.get(b).cancel(t)}}]),n}(p._l)));var k=function(){function e(t,n){if((0,s.Z)(this,e),this.flags=n,0!==(1&this.flags)){var i=t.getModel();this.modelVersionId=i?l.WU("{0}#{1}",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null;0!==(4&this.flags)?this.position=t.getPosition():this.position=null,0!==(2&this.flags)?this.selection=t.getSelection():this.selection=null,0!==(8&this.flags)?(this.scrollLeft=t.getScrollLeft(),this.scrollTop=t.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}return(0,u.Z)(e,[{key:"_equals",value:function(t){if(!(t instanceof e))return!1;var n=t;return this.modelVersionId===n.modelVersionId&&(this.scrollLeft===n.scrollLeft&&this.scrollTop===n.scrollTop&&(!(!this.position&&n.position||this.position&&!n.position||this.position&&n.position&&!this.position.equals(n.position))&&!(!this.selection&&n.selection||this.selection&&!n.selection||this.selection&&n.selection&&!this.selection.equalsRange(n.selection))))}},{key:"validate",value:function(t){return this._equals(new e(t,this.flags))}}]),e}(),S=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r,o){var a;return(0,s.Z)(this,n),(a=t.call(this,e,o))._listener=new h.SL,4&i&&a._listener.add(e.onDidChangeCursorPosition((function(e){r&&c.e.containsPosition(r,e.position)||a.cancel()}))),2&i&&a._listener.add(e.onDidChangeCursorSelection((function(e){r&&c.e.containsRange(r,e.selection)||a.cancel()}))),8&i&&a._listener.add(e.onDidScrollChange((function(e){return a.cancel()}))),1&i&&(a._listener.add(e.onDidChangeModel((function(e){return a.cancel()}))),a._listener.add(e.onDidChangeModelContent((function(e){return a.cancel()})))),a}return(0,u.Z)(n,[{key:"dispose",value:function(){this._listener.dispose(),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}}]),n}(C),x=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;return(0,s.Z)(this,n),(r=t.call(this,i))._listener=e.onDidChangeContent((function(){return r.cancel()})),r}return(0,u.Z)(n,[{key:"dispose",value:function(){this._listener.dispose(),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}}]),n}(d.A),L=function(){function e(t,n,i){(0,s.Z)(this,e),this._visiblePosition=t,this._visiblePositionScrollDelta=n,this._cursorPosition=i}return(0,u.Z)(e,[{key:"restore",value:function(e){if(this._visiblePosition){var t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}},{key:"restoreRelativeVerticalPositionOfCursor",value:function(e){var t=e.getPosition();if(this._cursorPosition&&t){var n=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+n)}}}],[{key:"capture",value:function(t){var n=null,i=0;if(0!==t.getScrollTop()){var r=t.getVisibleRanges();if(r.length>0){n=r[0].getStartPosition();var o=t.getTopForPosition(n.lineNumber,n.column);i=t.getScrollTop()-o}}return new e(n,i,t.getPosition())}}]),e}()},76191:function(e,t,n){"use strict";n.d(t,{CL:function(){return r},Pi:function(){return a},QI:function(){return o}});var i=n(30062);function r(e){return!(!e||"function"!==typeof e.getEditorType)&&e.getEditorType()===i.g.ICodeEditor}function o(e){return!(!e||"function"!==typeof e.getEditorType)&&e.getEditorType()===i.g.IDiffEditor}function a(e){return r(e)?e:o(e)?e.getModifiedEditor():null}},33399:function(e,t,n){"use strict";n.d(t,{AJ:function(){return x},QG:function(){return R},Qr:function(){return I},R6:function(){return N},Sq:function(){return B},Uc:function(){return i},_K:function(){return P},_l:function(){return E},f:function(){return T},fK:function(){return O},jY:function(){return D},kz:function(){return H},mY:function(){return S},n_:function(){return j},rn:function(){return A},sb:function(){return M}});var i,r=n(93433),o=n(37762),a=n(60136),s=n(29388),u=n(15671),l=n(43144),c=n(56345),d=n(67775),h=n(8295),f=n(67297),p=n(49076),g=n(44148),v=n(31585),m=n(72611),_=n(18948),y=n(51519),b=n(38774),w=n(45014),C=n(25941),k=n(19974),S=function(){function e(t){(0,u.Z)(this,e),this.id=t.id,this.precondition=t.precondition,this._kbOpts=t.kbOpts,this._menuOpts=t.menuOpts,this._description=t.description}return(0,l.Z)(e,[{key:"register",value:function(){var e=this;if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){var t=this._kbOpts.kbExpr;this.precondition&&(t=t?_.Ao.and(t,this.precondition):this.precondition),y.W.registerCommandAndKeybindingRule({id:this.id,handler:function(t,n){return e.runCommand(t,n)},weight:this._kbOpts.weight,args:this._kbOpts.args,when:t,primary:this._kbOpts.primary,secondary:this._kbOpts.secondary,win:this._kbOpts.win,linux:this._kbOpts.linux,mac:this._kbOpts.mac,description:this._description})}else m.P.registerCommand({id:this.id,handler:function(t,n){return e.runCommand(t,n)},description:this._description})}},{key:"_registerMenuItem",value:function(e){v.BH.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon,precondition:this.precondition},when:e.when,order:e.order})}}]),e}(),x=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,u.Z)(this,n),(e=t.apply(this,arguments))._implementations=[],e}return(0,l.Z)(n,[{key:"addImplementation",value:function(e,t,n){var i=this;return this._implementations.push({priority:e,name:t,implementation:n}),this._implementations.sort((function(e,t){return t.priority-e.priority})),{dispose:function(){for(var e=0;e<i._implementations.length;e++)if(i._implementations[e].implementation===n)return void i._implementations.splice(e,1)}}}},{key:"runCommand",value:function(e,t){var n,i=e.get(k.VZ),r=(0,o.Z)(this._implementations);try{for(r.s();!(n=r.n()).done;){var a=n.value,s=a.implementation(e,t);if(s){if(i.trace("Command '".concat(this.id,"' was handled by '").concat(a.name,"'.")),"boolean"===typeof s)return;return s}}}catch(u){r.e(u)}finally{r.f()}}}]),n}(S),L=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,i){var r;return(0,u.Z)(this,n),(r=t.call(this,i)).command=e,r}return(0,l.Z)(n,[{key:"runCommand",value:function(e,t){return this.command.runCommand(e,t)}}]),n}(S),E=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){return(0,u.Z)(this,n),t.apply(this,arguments)}return(0,l.Z)(n,[{key:"runCommand",value:function(e,t){var n=this,i=e.get(h.$),r=i.getFocusedCodeEditor()||i.getActiveCodeEditor();if(r)return r.invokeWithinContext((function(e){if(e.get(_.i6).contextMatchesRules((0,C.f6)(n.precondition)))return n.runEditorCommand(e,r,t)}))}}],[{key:"bindToContribution",value:function(e){return function(t){(0,a.Z)(i,t);var n=(0,s.Z)(i);function i(e){var t;return(0,u.Z)(this,i),(t=n.call(this,e))._callback=e.handler,t}return(0,l.Z)(i,[{key:"runEditorCommand",value:function(t,n,i){e(n)&&this._callback(e(n),i)}}]),i}(n)}}]),n}(S),N=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var i;return(0,u.Z)(this,n),(i=t.call(this,n.convertOptions(e))).label=e.label,i.alias=e.alias,i}return(0,l.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){return this.reportTelemetry(e,t),this.run(e,t,n||{})}},{key:"reportTelemetry",value:function(e,t){e.get(w.b).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}],[{key:"convertOptions",value:function(e){var t,n;function i(t){return t.menuId||(t.menuId=v.eH.EditorContext),t.title||(t.title=e.label),t.when=_.Ao.and(e.precondition,t.when),t}(t=Array.isArray(e.menuOpts)?e.menuOpts:e.menuOpts?[e.menuOpts]:[],Array.isArray(e.contextMenuOpts))?(n=t).push.apply(n,(0,r.Z)(e.contextMenuOpts.map(i))):e.contextMenuOpts&&t.push(i(e.contextMenuOpts));return e.menuOpts=t,e}}]),n}(E),D=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,u.Z)(this,n),(e=t.apply(this,arguments))._implementations=[],e}return(0,l.Z)(n,[{key:"addImplementation",value:function(e,t){var n=this;return this._implementations.push([e,t]),this._implementations.sort((function(e,t){return t[0]-e[0]})),{dispose:function(){for(var e=0;e<n._implementations.length;e++)if(n._implementations[e][1]===t)return void n._implementations.splice(e,1)}}}},{key:"run",value:function(e,t,n){var i,r=(0,o.Z)(this._implementations);try{for(r.s();!(i=r.n()).done;){var a=i.value[1](e,t,n);if(a){if("boolean"===typeof a)return;return a}}}catch(s){r.e(s)}finally{r.f()}}}]),n}(N);function M(e,t){m.P.registerCommand(e,(function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];var a=i[0],s=i[1];(0,C.p_)(d.o.isUri(a)),(0,C.p_)(f.L.isIPosition(s));var u=e.get(p.q).getModel(a);if(u){var l=f.L.lift(s);return t.apply(void 0,[u,l].concat((0,r.Z)(i.slice(2))))}return e.get(g.S).createModelReference(a).then((function(e){return new Promise((function(n,r){try{n(t(e.object.textEditorModel,f.L.lift(s),i.slice(2)))}catch(o){r(o)}})).finally((function(){e.dispose()}))}))}))}function T(e,t){m.P.registerCommand(e,(function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];var a=i[0];(0,C.p_)(d.o.isUri(a));var s=e.get(p.q).getModel(a);return s?t.apply(void 0,[s].concat((0,r.Z)(i.slice(1)))):e.get(g.S).createModelReference(a).then((function(e){return new Promise((function(n,r){try{n(t(e.object.textEditorModel,i.slice(1)))}catch(o){r(o)}})).finally((function(){e.dispose()}))}))}))}function O(e){return Z.INSTANCE.registerEditorCommand(e),e}function I(e){var t=new e;return Z.INSTANCE.registerEditorAction(t),t}function A(e){return Z.INSTANCE.registerEditorAction(e),e}function R(e){Z.INSTANCE.registerEditorAction(e)}function P(e,t){Z.INSTANCE.registerEditorContribution(e,t)}!function(e){e.getEditorCommand=function(e){return Z.INSTANCE.getEditorCommand(e)},e.getEditorActions=function(){return Z.INSTANCE.getEditorActions()},e.getEditorContributions=function(){return Z.INSTANCE.getEditorContributions()},e.getSomeEditorContributions=function(e){return Z.INSTANCE.getEditorContributions().filter((function(t){return e.indexOf(t.id)>=0}))},e.getDiffEditorContributions=function(){return Z.INSTANCE.getDiffEditorContributions()}}(i||(i={}));var Z=function(){function e(){(0,u.Z)(this,e),this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}return(0,l.Z)(e,[{key:"registerEditorContribution",value:function(e,t){this.editorContributions.push({id:e,ctor:t})}},{key:"getEditorContributions",value:function(){return this.editorContributions.slice(0)}},{key:"getDiffEditorContributions",value:function(){return this.diffEditorContributions.slice(0)}},{key:"registerEditorAction",value:function(e){e.register(),this.editorActions.push(e)}},{key:"getEditorActions",value:function(){return this.editorActions.slice(0)}},{key:"registerEditorCommand",value:function(e){e.register(),this.editorCommands[e.id]=e}},{key:"getEditorCommand",value:function(e){return this.editorCommands[e]||null}}]),e}();function F(e){return e.register(),e}Z.INSTANCE=new Z,b.B.add("editor.contributions",Z.INSTANCE);var j=F(new x({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:v.eH.MenubarEditMenu,group:"1_do",title:c.N({key:"miUndo",comment:["&& denotes a mnemonic"]},"&&Undo"),order:1},{menuId:v.eH.CommandPalette,group:"",title:c.N("undo","Undo"),order:1}]}));F(new L(j,{id:"default:undo",precondition:void 0}));var H=F(new x({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:v.eH.MenubarEditMenu,group:"1_do",title:c.N({key:"miRedo",comment:["&& denotes a mnemonic"]},"&&Redo"),order:2},{menuId:v.eH.CommandPalette,group:"",title:c.N("redo","Redo"),order:1}]}));F(new L(H,{id:"default:redo",precondition:void 0}));var B=F(new x({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:v.eH.MenubarSelectionMenu,group:"1_basic",title:c.N({key:"miSelectAll",comment:["&& denotes a mnemonic"]},"&&Select All"),order:1},{menuId:v.eH.CommandPalette,group:"",title:c.N("selectAll","Select All"),order:1}]}))},49803:function(e,t,n){"use strict";n.d(t,{Gl:function(){return h},fo:function(){return d},vu:function(){return c}});var i=n(60136),r=n(29388),o=n(15671),a=n(43144),s=n(84596),u=n(67775),l=n(25941),c=(0,s.yh)("IWorkspaceEditService");var d=function(){function e(t){(0,o.Z)(this,e),this.metadata=t}return(0,a.Z)(e,null,[{key:"convert",value:function(e){return e.edits.map((function(e){if(t=e,(0,l.Kn)(t)&&u.o.isUri(t.resource)&&(0,l.Kn)(t.edit))return new h(e.resource,e.edit,e.modelVersionId,e.metadata);var t;if(function(e){return(0,l.Kn)(e)&&(Boolean(e.newUri)||Boolean(e.oldUri))}(e))return new f(e.oldUri,e.newUri,e.options,e.metadata);throw new Error("Unsupported edit")}))}}]),e}(),h=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i,r,a){var s;return(0,o.Z)(this,n),(s=t.call(this,a)).resource=e,s.textEdit=i,s.versionId=r,s}return(0,a.Z)(n)}(d),f=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i,r,a){var s;return(0,o.Z)(this,n),(s=t.call(this,a)).oldResource=e,s.newResource=i,s.options=r,s}return(0,a.Z)(n)}(d)},8295:function(e,t,n){"use strict";n.d(t,{$:function(){return i}});var i=(0,n(84596).yh)("codeEditorService")},95079:function(e,t,n){"use strict";n.d(t,{Gm:function(){return rr}});var i=n(29439),r=n(37762),o=n(97326),a=n(11752),s=n(61120),u=n(60136),l=n(29388),c=n(15671),d=n(43144),h=n(50816),f=n(33399),p=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},g=function(e,t){return function(n,i){t(n,i,e)}},v=function(){function e(t,n){(0,c.Z)(this,e)}return(0,d.Z)(e,[{key:"dispose",value:function(){}}]),e}();v.ID="editor.contrib.markerDecorations",v=p([g(1,h.i)],v),(0,f._K)(v.ID,v);var m=n(56345),_=n(84540),y=n(8729),b=n(11732),w=n(81626),C=n(55585),k=n(47014),S=n(8295),x=n(84539),L=n(74964),E=n(41149),N=n(30487),D=n(25044),M=n(55076),T=n(27997),O=n(78101),I=function(){function e(t,n){(0,c.Z)(this,e),this.x=t,this.y=n}return(0,d.Z)(e,[{key:"toClientCoordinates",value:function(){return new A(this.x-_.StandardWindow.scrollX,this.y-_.StandardWindow.scrollY)}}]),e}(),A=function(){function e(t,n){(0,c.Z)(this,e),this.clientX=t,this.clientY=n}return(0,d.Z)(e,[{key:"toPageCoordinates",value:function(){return new I(this.clientX+_.StandardWindow.scrollX,this.clientY+_.StandardWindow.scrollY)}}]),e}(),R=(0,d.Z)((function e(t,n,i,r){(0,c.Z)(this,e),this.x=t,this.y=n,this.width=i,this.height=r}));function P(e){var t=_.getDomNodePagePosition(e);return new R(t.left,t.top,t.width,t.height)}var Z=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e)).pos=new I(r.posx,r.posy),r.editorPos=P(i),r}return(0,d.Z)(n)}(M.n),F=function(){function e(t){(0,c.Z)(this,e),this._editorViewDomNode=t}return(0,d.Z)(e,[{key:"_create",value:function(e){return new Z(e,this._editorViewDomNode)}},{key:"onContextMenu",value:function(e,t){var n=this;return _.addDisposableListener(e,"contextmenu",(function(e){t(n._create(e))}))}},{key:"onMouseUp",value:function(e,t){var n=this;return _.addDisposableListener(e,"mouseup",(function(e){t(n._create(e))}))}},{key:"onMouseDown",value:function(e,t){var n=this;return _.addDisposableListener(e,"mousedown",(function(e){t(n._create(e))}))}},{key:"onMouseLeave",value:function(e,t){var n=this;return _.addDisposableNonBubblingMouseOutListener(e,(function(e){t(n._create(e))}))}},{key:"onMouseMoveThrottled",value:function(e,t,n,i){var r=this;return _.addDisposableThrottledListener(e,"mousemove",t,(function(e,t){return n(e,r._create(t))}),i)}}]),e}(),j=function(){function e(t){(0,c.Z)(this,e),this._editorViewDomNode=t}return(0,d.Z)(e,[{key:"_create",value:function(e){return new Z(e,this._editorViewDomNode)}},{key:"onPointerUp",value:function(e,t){var n=this;return _.addDisposableListener(e,"pointerup",(function(e){t(n._create(e))}))}},{key:"onPointerDown",value:function(e,t){var n=this;return _.addDisposableListener(e,"pointerdown",(function(e){t(n._create(e))}))}},{key:"onPointerLeave",value:function(e,t){var n=this;return _.addDisposableNonBubblingPointerOutListener(e,(function(e){t(n._create(e))}))}},{key:"onPointerMoveThrottled",value:function(e,t,n,i){var r=this;return _.addDisposableThrottledListener(e,"pointermove",t,(function(e,t){return n(e,r._create(t))}),i)}}]),e}(),H=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._editorViewDomNode=e,i._globalMouseMoveMonitor=i._register(new O.Z),i._keydownListener=null,i}return(0,d.Z)(n,[{key:"startMonitoring",value:function(e,t,n,i,r){var o=this;this._keydownListener=_.addStandardDisposableListener(document,"keydown",(function(e){e.toKeybinding().isModifierKey()||o._globalMouseMoveMonitor.stopMonitoring(!0,e.browserEvent)}),!0);this._globalMouseMoveMonitor.startMonitoring(e,t,(function(e,t){return n(e,new Z(t,o._editorViewDomNode))}),i,(function(e){o._keydownListener.dispose(),r(e)}))}},{key:"stopMonitoring",value:function(){this._globalMouseMoveMonitor.stopMonitoring(!0)}}]),n}(w.JT),B=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,c.Z)(this,n),(e=t.call(this))._shouldRender=!0,e}return(0,d.Z)(n,[{key:"shouldRender",value:function(){return this._shouldRender}},{key:"forceShouldRender",value:function(){this._shouldRender=!0}},{key:"setShouldRender",value:function(){this._shouldRender=!0}},{key:"onDidRender",value:function(){this._shouldRender=!1}},{key:"onCompositionStart",value:function(e){return!1}},{key:"onCompositionEnd",value:function(e){return!1}},{key:"onConfigurationChanged",value:function(e){return!1}},{key:"onCursorStateChanged",value:function(e){return!1}},{key:"onDecorationsChanged",value:function(e){return!1}},{key:"onFlushed",value:function(e){return!1}},{key:"onFocusChanged",value:function(e){return!1}},{key:"onLanguageConfigurationChanged",value:function(e){return!1}},{key:"onLineMappingChanged",value:function(e){return!1}},{key:"onLinesChanged",value:function(e){return!1}},{key:"onLinesDeleted",value:function(e){return!1}},{key:"onLinesInserted",value:function(e){return!1}},{key:"onRevealRangeRequest",value:function(e){return!1}},{key:"onScrollChanged",value:function(e){return!1}},{key:"onThemeChanged",value:function(e){return!1}},{key:"onTokensChanged",value:function(e){return!1}},{key:"onTokensColorsChanged",value:function(e){return!1}},{key:"onZonesChanged",value:function(e){return!1}},{key:"handleEvents",value:function(e){for(var t=!1,n=0,i=e.length;n<i;n++){var r=e[n];switch(r.type){case 0:this.onCompositionStart(r)&&(t=!0);break;case 1:this.onCompositionEnd(r)&&(t=!0);break;case 2:this.onConfigurationChanged(r)&&(t=!0);break;case 3:this.onCursorStateChanged(r)&&(t=!0);break;case 4:this.onDecorationsChanged(r)&&(t=!0);break;case 5:this.onFlushed(r)&&(t=!0);break;case 6:this.onFocusChanged(r)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(r)&&(t=!0);break;case 8:this.onLineMappingChanged(r)&&(t=!0);break;case 9:this.onLinesChanged(r)&&(t=!0);break;case 10:this.onLinesDeleted(r)&&(t=!0);break;case 11:this.onLinesInserted(r)&&(t=!0);break;case 12:this.onRevealRangeRequest(r)&&(t=!0);break;case 13:this.onScrollChanged(r)&&(t=!0);break;case 15:this.onTokensChanged(r)&&(t=!0);break;case 14:this.onThemeChanged(r)&&(t=!0);break;case 16:this.onTokensColorsChanged(r)&&(t=!0);break;case 17:this.onZonesChanged(r)&&(t=!0);break;default:console.info("View received unknown event: "),console.info(r)}}t&&(this._shouldRender=!0)}}]),n}(w.JT),z=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._context=e,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(B),W=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"write",value:function(e,t){E.Z,e.setAttribute("data-mprt",String(t))}},{key:"read",value:function(e){var t=e.getAttribute("data-mprt");return null===t?0:parseInt(t,10)}},{key:"collect",value:function(e,t){for(var n=[],i=0;e&&e!==document.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(n[i++]=this.read(e)),e=e.parentElement;for(var r=new Uint8Array(i),o=0;o<i;o++)r[o]=n[i-o-1];return r}}]),e}(),V=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;return(0,c.Z)(this,n),(o=t.call(this,e,i))._viewLines=r,o}return(0,d.Z)(n,[{key:"linesVisibleRangesForRange",value:function(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)}},{key:"visibleRangeForPosition",value:function(e){return this._viewLines.visibleRangeForPosition(e)}}]),n}(function(){function e(t,n){(0,c.Z)(this,e),this._viewLayout=t,this.viewportData=n,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;var i=this._viewLayout.getCurrentViewport();this.scrollTop=i.top,this.scrollLeft=i.left,this.viewportWidth=i.width,this.viewportHeight=i.height}return(0,d.Z)(e,[{key:"getScrolledTopFromAbsoluteTop",value:function(e){return e-this.scrollTop}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this._viewLayout.getVerticalOffsetForLineNumber(e)}},{key:"getDecorationsInViewport",value:function(){return this.viewportData.getDecorationsInViewport()}}]),e}()),Y=(0,d.Z)((function e(t,n,i){(0,c.Z)(this,e),this.outsideRenderedLine=t,this.lineNumber=n,this.ranges=i})),U=function(){function e(t,n){(0,c.Z)(this,e),this.left=Math.round(t),this.width=Math.round(n)}return(0,d.Z)(e,[{key:"toString",value:function(){return"[".concat(this.left,",").concat(this.width,"]")}}]),e}(),K=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.outsideRenderedLine=t,this.left=Math.round(n)})),q=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.outsideRenderedLine=t,this.ranges=n})),G=function(){function e(t,n){(0,c.Z)(this,e),this.left=t,this.width=n}return(0,d.Z)(e,[{key:"toString",value:function(){return"[".concat(this.left,",").concat(this.width,"]")}}],[{key:"compare",value:function(e,t){return e.left-t.left}}]),e}(),$=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"_createRange",value:function(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange}},{key:"_detachRange",value:function(e,t){e.selectNodeContents(t)}},{key:"_readClientRects",value:function(e,t,n,i,r){var o=this._createRange();try{return o.setStart(e,t),o.setEnd(n,i),o.getClientRects()}catch(a){return null}finally{this._detachRange(o,r)}}},{key:"_mergeAdjacentRanges",value:function(e){if(1===e.length)return[new U(e[0].left,e[0].width)];e.sort(G.compare);for(var t=[],n=0,i=e[0].left,r=e[0].width,o=1,a=e.length;o<a;o++){var s=e[o],u=s.left,l=s.width;i+r+.9>=u?r=Math.max(r,u+l-i):(t[n++]=new U(i,r),i=u,r=l)}return t[n++]=new U(i,r),t}},{key:"_createHorizontalRangesFromClientRects",value:function(e,t){if(!e||0===e.length)return null;for(var n=[],i=0,r=e.length;i<r;i++){var o=e[i];n[i]=new G(Math.max(0,o.left-t),o.width)}return this._mergeAdjacentRanges(n)}},{key:"readHorizontalRanges",value:function(e,t,n,i,r,o,a){var s=e.children.length-1;if(0>s)return null;if((t=Math.min(s,Math.max(0,t)))===(i=Math.min(s,Math.max(0,i)))&&n===r&&0===n&&!e.children[t].firstChild){var u=e.children[t].getClientRects();return this._createHorizontalRangesFromClientRects(u,o)}t!==i&&i>0&&0===r&&(i--,r=1073741824);var l=e.children[t].firstChild,c=e.children[i].firstChild;if(l&&c||(!l&&0===n&&t>0&&(l=e.children[t-1].firstChild,n=1073741824),!c&&0===r&&i>0&&(c=e.children[i-1].firstChild,r=1073741824)),!l||!c)return null;n=Math.min(l.textContent.length,Math.max(0,n)),r=Math.min(c.textContent.length,Math.max(0,r));var d=this._readClientRects(l,n,c,r,a);return this._createHorizontalRangesFromClientRects(d,o)}}]),e}(),Q=n(29805),X=n(70632),J=n(7644),ee=n(76556),te=!!N.tY||!(N.IJ||x.vU||x.G6),ne=!0,ie=function(){function e(t,n){(0,c.Z)(this,e),this._domNode=t,this._clientRectDeltaLeft=0,this._clientRectDeltaLeftRead=!1,this.endNode=n}return(0,d.Z)(e,[{key:"clientRectDeltaLeft",get:function(){return this._clientRectDeltaLeftRead||(this._clientRectDeltaLeftRead=!0,this._clientRectDeltaLeft=this._domNode.getBoundingClientRect().left),this._clientRectDeltaLeft}}]),e}(),re=function(){function e(t,n){(0,c.Z)(this,e),this.themeType=n;var i=t.options,r=i.get(40);this.renderWhitespace=i.get(85),this.renderControlCharacters=i.get(79),this.spaceWidth=r.spaceWidth,this.middotWidth=r.middotWidth,this.wsmiddotWidth=r.wsmiddotWidth,this.useMonospaceOptimizations=r.isMonospace&&!i.get(27),this.canUseHalfwidthRightwardsArrow=r.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(55),this.stopRenderingLineAfter=i.get(102),this.fontLigatures=i.get(41)}return(0,d.Z)(e,[{key:"equals",value:function(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures}}]),e}(),oe=function(){function e(t){(0,c.Z)(this,e),this._options=t,this._isMaybeInvalid=!0,this._renderedViewLine=null}return(0,d.Z)(e,[{key:"getDomNode",value:function(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}},{key:"setDomNode",value:function(e){if(!this._renderedViewLine)throw new Error("I have no rendered view line to set the dom node to...");this._renderedViewLine.domNode=(0,E.X)(e)}},{key:"onContentChanged",value:function(){this._isMaybeInvalid=!0}},{key:"onTokensChanged",value:function(){this._isMaybeInvalid=!0}},{key:"onDecorationsChanged",value:function(){this._isMaybeInvalid=!0}},{key:"onOptionsChanged",value:function(e){this._isMaybeInvalid=!0,this._options=e}},{key:"onSelectionChanged",value:function(){return(this._options.themeType===J.e.HIGH_CONTRAST||"selection"===this._options.renderWhitespace)&&(this._isMaybeInvalid=!0,!0)}},{key:"renderLine",value:function(t,n,i,o){if(!1===this._isMaybeInvalid)return!1;this._isMaybeInvalid=!1;var a=i.getViewLineRenderingData(t),s=this._options,u=Q.Kp.filter(a.inlineDecorations,t,a.minColumn,a.maxColumn),l=null;if(s.themeType===J.e.HIGH_CONTRAST||"selection"===this._options.renderWhitespace){var c,d=i.selections,h=(0,r.Z)(d);try{for(h.s();!(c=h.n()).done;){var f=c.value;if(!(f.endLineNumber<t||f.startLineNumber>t)){var p=f.startLineNumber===t?f.startColumn:a.minColumn,g=f.endLineNumber===t?f.endColumn:a.maxColumn;p<g&&(s.themeType===J.e.HIGH_CONTRAST||"selection"!==this._options.renderWhitespace?u.push(new Q.Kp(p,g,"inline-selected-text",0)):(l||(l=[]),l.push(new X.zG(p-1,g-1))))}}}catch(y){h.e(y)}finally{h.f()}}var v=new X.IJ(s.useMonospaceOptimizations,s.canUseHalfwidthRightwardsArrow,a.content,a.continuesWithWrappedLine,a.isBasicASCII,a.containsRTL,a.minColumn-1,a.tokens,u,a.tabSize,a.startVisibleColumn,s.spaceWidth,s.middotWidth,s.wsmiddotWidth,s.stopRenderingLineAfter,s.renderWhitespace,s.renderControlCharacters,s.fontLigatures!==ee.n0.OFF,l);if(this._renderedViewLine&&this._renderedViewLine.input.equals(v))return!1;o.appendASCIIString('<div style="top:'),o.appendASCIIString(String(n)),o.appendASCIIString("px;height:"),o.appendASCIIString(String(this._options.lineHeight)),o.appendASCIIString('px;" class="'),o.appendASCIIString(e.CLASS_NAME),o.appendASCIIString('">');var m=(0,X.d1)(v,o);o.appendASCIIString("</div>");var _=null;return ne&&te&&a.isBasicASCII&&s.useMonospaceOptimizations&&0===m.containsForeignElements&&a.content.length<300&&v.lineTokens.getCount()<100&&(_=new ae(this._renderedViewLine?this._renderedViewLine.domNode:null,v,m.characterMapping)),_||(_=le(this._renderedViewLine?this._renderedViewLine.domNode:null,v,m.characterMapping,m.containsRTL,m.containsForeignElements)),this._renderedViewLine=_,!0}},{key:"layoutLine",value:function(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))}},{key:"getWidth",value:function(){return this._renderedViewLine?this._renderedViewLine.getWidth():0}},{key:"getWidthIsFast",value:function(){return!this._renderedViewLine||this._renderedViewLine.getWidthIsFast()}},{key:"needsMonospaceFontCheck",value:function(){return!!this._renderedViewLine&&this._renderedViewLine instanceof ae}},{key:"monospaceAssumptionsAreValid",value:function(){return this._renderedViewLine&&this._renderedViewLine instanceof ae?this._renderedViewLine.monospaceAssumptionsAreValid():ne}},{key:"onMonospaceAssumptionsInvalidated",value:function(){this._renderedViewLine&&this._renderedViewLine instanceof ae&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}},{key:"getVisibleRangesForRange",value:function(e,t,n){if(!this._renderedViewLine)return null;e|=0,t|=0,e=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,e)),t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t));var i=0|this._renderedViewLine.input.stopRenderingLineAfter,r=!1;-1!==i&&e>i+1&&t>i+1&&(r=!0),-1!==i&&e>i+1&&(e=i+1),-1!==i&&t>i+1&&(t=i+1);var o=this._renderedViewLine.getVisibleRangesForRange(e,t,n);return o&&o.length>0?new q(r,o):null}},{key:"getColumnOfNodeOffset",value:function(e,t,n){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t,n):1}}]),e}();oe.CLASS_NAME="view-line";var ae=function(){function e(t,n,i){(0,c.Z)(this,e),this.domNode=t,this.input=n,this._characterMapping=i,this._charWidth=n.spaceWidth}return(0,d.Z)(e,[{key:"getWidth",value:function(){return this._getCharPosition(this._characterMapping.length)}},{key:"getWidthIsFast",value:function(){return!0}},{key:"monospaceAssumptionsAreValid",value:function(){if(!this.domNode)return ne;var e=this.getWidth(),t=this.domNode.domNode.firstChild.offsetWidth;return Math.abs(e-t)>=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),ne=!1),ne}},{key:"toSlowRenderedLine",value:function(){return le(this.domNode,this.input,this._characterMapping,!1,0)}},{key:"getVisibleRangesForRange",value:function(e,t,n){var i=this._getCharPosition(e),r=this._getCharPosition(t);return[new U(i,r-i)]}},{key:"_getCharPosition",value:function(e){var t=this._characterMapping.getAbsoluteOffsets();return 0===t.length?0:Math.round(this._charWidth*t[e-1])}},{key:"getColumnOfNodeOffset",value:function(e,t,n){for(var i=t.textContent.length,r=-1;t;)t=t.previousSibling,r++;return this._characterMapping.partDataToCharOffset(r,i,n)+1}}]),e}(),se=function(){function e(t,n,i,r,o){if((0,c.Z)(this,e),this.domNode=t,this.input=n,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(n.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!r||0===this._characterMapping.length){this._pixelOffsetCache=new Int32Array(Math.max(2,this._characterMapping.length+1));for(var a=0,s=this._characterMapping.length;a<=s;a++)this._pixelOffsetCache[a]=-1}}return(0,d.Z)(e,[{key:"_getReadingTarget",value:function(e){return e.domNode.firstChild}},{key:"getWidth",value:function(){return this.domNode?(-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth),this._cachedWidth):0}},{key:"getWidthIsFast",value:function(){return-1!==this._cachedWidth}},{key:"getVisibleRangesForRange",value:function(e,t,n){if(!this.domNode)return null;if(null!==this._pixelOffsetCache){var i=this._readPixelOffset(this.domNode,e,n);if(-1===i)return null;var r=this._readPixelOffset(this.domNode,t,n);return-1===r?null:[new U(i,r-i)]}return this._readVisibleRangesForRange(this.domNode,e,t,n)}},{key:"_readVisibleRangesForRange",value:function(e,t,n,i){if(t===n){var r=this._readPixelOffset(e,t,i);return-1===r?null:[new U(r,0)]}return this._readRawVisibleRangesForRange(e,t,n,i)}},{key:"_readPixelOffset",value:function(e,t,n){if(0===this._characterMapping.length){if(0===this._containsForeignElements)return 0;if(2===this._containsForeignElements)return 0;if(1===this._containsForeignElements)return this.getWidth();var i=this._getReadingTarget(e);return i.firstChild?i.firstChild.offsetWidth:0}if(null!==this._pixelOffsetCache){var r=this._pixelOffsetCache[t];if(-1!==r)return r;var o=this._actualReadPixelOffset(e,t,n);return this._pixelOffsetCache[t]=o,o}return this._actualReadPixelOffset(e,t,n)}},{key:"_actualReadPixelOffset",value:function(e,t,n){if(0===this._characterMapping.length){var i=$.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,n.clientRectDeltaLeft,n.endNode);return i&&0!==i.length?i[0].left:-1}if(t===this._characterMapping.length&&this._isWhitespaceOnly&&0===this._containsForeignElements)return this.getWidth();var r=this._characterMapping.charOffsetToPartData(t-1),o=X.fH.getPartIndex(r),a=X.fH.getCharIndex(r),s=$.readHorizontalRanges(this._getReadingTarget(e),o,a,o,a,n.clientRectDeltaLeft,n.endNode);if(!s||0===s.length)return-1;var u=s[0].left;if(this.input.isBasicASCII){var l=this._characterMapping.getAbsoluteOffsets(),c=Math.round(this.input.spaceWidth*l[t-1]);if(Math.abs(c-u)<=1)return c}return u}},{key:"_readRawVisibleRangesForRange",value:function(e,t,n,i){if(1===t&&n===this._characterMapping.length)return[new U(0,this.getWidth())];var r=this._characterMapping.charOffsetToPartData(t-1),o=X.fH.getPartIndex(r),a=X.fH.getCharIndex(r),s=this._characterMapping.charOffsetToPartData(n-1),u=X.fH.getPartIndex(s),l=X.fH.getCharIndex(s);return $.readHorizontalRanges(this._getReadingTarget(e),o,a,u,l,i.clientRectDeltaLeft,i.endNode)}},{key:"getColumnOfNodeOffset",value:function(e,t,n){for(var i=t.textContent.length,r=-1;t;)t=t.previousSibling,r++;return this._characterMapping.partDataToCharOffset(r,i,n)+1}}]),e}(),ue=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n,[{key:"_readVisibleRangesForRange",value:function(e,t,i,r){var o=(0,a.Z)((0,s.Z)(n.prototype),"_readVisibleRangesForRange",this).call(this,e,t,i,r);if(!o||0===o.length||t===i||1===t&&i===this._characterMapping.length)return o;if(!this.input.containsRTL){var u=this._readPixelOffset(e,i,r);if(-1!==u){var l=o[o.length-1];l.left<u&&(l.width=u-l.left)}}return o}}]),n}(se),le=x.Pf?ce:de;function ce(e,t,n,i,r){return new ue(e,t,n,i,r)}function de(e,t,n,i,r){return new se(e,t,n,i,r)}var he=n(67297),fe=n(67033),pe=n(16274),ge=n(86036),ve=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.lastViewCursorsRenderData=t,this.lastTextareaPosition=n})),me=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;(0,c.Z)(this,e),this.element=t,this.type=n,this.mouseColumn=i,this.position=r,!o&&r&&(o=new fe.e(r.lineNumber,r.column,r.lineNumber,r.column)),this.range=o,this.detail=a}return(0,d.Z)(e,[{key:"toString",value:function(){return e.toString(this)}}],[{key:"_typeToString",value:function(e){return 1===e?"TEXTAREA":2===e?"GUTTER_GLYPH_MARGIN":3===e?"GUTTER_LINE_NUMBERS":4===e?"GUTTER_LINE_DECORATIONS":5===e?"GUTTER_VIEW_ZONE":6===e?"CONTENT_TEXT":7===e?"CONTENT_EMPTY":8===e?"CONTENT_VIEW_ZONE":9===e?"CONTENT_WIDGET":10===e?"OVERVIEW_RULER":11===e?"SCROLLBAR":12===e?"OVERLAY_WIDGET":"UNKNOWN"}},{key:"toString",value:function(e){return this._typeToString(e.type)+": "+e.position+" - "+e.range+" - "+e.detail}}]),e}(),_e=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"isTextArea",value:function(e){return 2===e.length&&3===e[0]&&6===e[1]}},{key:"isChildOfViewLines",value:function(e){return e.length>=4&&3===e[0]&&7===e[3]}},{key:"isStrictChildOfViewLines",value:function(e){return e.length>4&&3===e[0]&&7===e[3]}},{key:"isChildOfScrollableElement",value:function(e){return e.length>=2&&3===e[0]&&5===e[1]}},{key:"isChildOfMinimap",value:function(e){return e.length>=2&&3===e[0]&&8===e[1]}},{key:"isChildOfContentWidgets",value:function(e){return e.length>=4&&3===e[0]&&1===e[3]}},{key:"isChildOfOverflowingContentWidgets",value:function(e){return e.length>=1&&2===e[0]}},{key:"isChildOfOverlayWidgets",value:function(e){return e.length>=2&&3===e[0]&&4===e[1]}}]),e}(),ye=function(){function e(t,n,i){(0,c.Z)(this,e),this.model=t.model;var r=t.configuration.options;this.layoutInfo=r.get(127),this.viewDomNode=n.viewDomNode,this.lineHeight=r.get(55),this.stickyTabStops=r.get(101),this.typicalHalfwidthCharacterWidth=r.get(40).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=t,this._viewHelper=n}return(0,d.Z)(e,[{key:"getZoneAtCoord",value:function(t){return e.getZoneAtCoord(this._context,t)}},{key:"getFullLineRangeAtCoord",value:function(e){if(this._context.viewLayout.isAfterLines(e)){var t=this._context.model.getLineCount(),n=this._context.model.getLineMaxColumn(t);return{range:new fe.e(t,n,t,n),isAfterLines:!0}}var i=this._context.viewLayout.getLineNumberAtVerticalOffset(e),r=this._context.model.getLineMaxColumn(i);return{range:new fe.e(i,1,i,r),isAfterLines:!1}}},{key:"getLineNumberAtVerticalOffset",value:function(e){return this._context.viewLayout.getLineNumberAtVerticalOffset(e)}},{key:"isAfterLines",value:function(e){return this._context.viewLayout.isAfterLines(e)}},{key:"isInTopPadding",value:function(e){return this._context.viewLayout.isInTopPadding(e)}},{key:"isInBottomPadding",value:function(e){return this._context.viewLayout.isInBottomPadding(e)}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this._context.viewLayout.getVerticalOffsetForLineNumber(e)}},{key:"findAttribute",value:function(t,n){return e._findAttribute(t,n,this._viewHelper.viewDomNode)}},{key:"getLineWidth",value:function(e){return this._viewHelper.getLineWidth(e)}},{key:"visibleRangeForPosition",value:function(e,t){return this._viewHelper.visibleRangeForPosition(e,t)}},{key:"getPositionFromDOMInfo",value:function(e,t){return this._viewHelper.getPositionFromDOMInfo(e,t)}},{key:"getCurrentScrollTop",value:function(){return this._context.viewLayout.getCurrentScrollTop()}},{key:"getCurrentScrollLeft",value:function(){return this._context.viewLayout.getCurrentScrollLeft()}}],[{key:"getZoneAtCoord",value:function(e,t){var n=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(n){var i,r=n.verticalOffset+n.height/2,o=e.model.getLineCount(),a=null,s=null;return n.afterLineNumber!==o&&(s=new he.L(n.afterLineNumber+1,1)),n.afterLineNumber>0&&(a=new he.L(n.afterLineNumber,e.model.getLineMaxColumn(n.afterLineNumber))),i=null===s?a:null===a?s:t<r?a:s,{viewZoneId:n.id,afterLineNumber:n.afterLineNumber,positionBefore:a,positionAfter:s,position:i}}return null}},{key:"_findAttribute",value:function(e,t,n){for(;e&&e!==document.body;){if(e.hasAttribute&&e.hasAttribute(t))return e.getAttribute(t);if(e===n)return null;e=e.parentNode}return null}}]),e}(),be=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o){var a;return(0,c.Z)(this,n),(a=t.call(this,e,i,r))._ctx=e,o?(a.target=o,a.targetPath=W.collect(o,e.viewDomNode)):(a.target=null,a.targetPath=new Uint8Array(0)),a}return(0,d.Z)(n,[{key:"toString",value:function(){return"pos(".concat(this.pos.x,",").concat(this.pos.y,"), editorPos(").concat(this.editorPos.x,",").concat(this.editorPos.y,"), mouseVerticalOffset: ").concat(this.mouseVerticalOffset,", mouseContentHorizontalOffset: ").concat(this.mouseContentHorizontalOffset,"\n\ttarget: ").concat(this.target?this.target.outerHTML:null)}},{key:"fulfill",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=this.mouseColumn;return t&&t.column<this._ctx.model.getLineMaxColumn(t.lineNumber)&&(r=pe.io.visibleColumnFromColumn(this._ctx.model.getLineContent(t.lineNumber),t.column,this._ctx.model.getTextModelOptions().tabSize)+1),new me(this.target,e,r,t,n,i)}},{key:"withTarget",value:function(e){return new n(this._ctx,this.editorPos,this.pos,e)}}]),n}((0,d.Z)((function e(t,n,i){(0,c.Z)(this,e),this.editorPos=n,this.pos=i,this.mouseVerticalOffset=Math.max(0,t.getCurrentScrollTop()+i.y-n.y),this.mouseContentHorizontalOffset=t.getCurrentScrollLeft()+i.x-n.x-t.layoutInfo.contentLeft,this.isInMarginArea=i.x-n.x<t.layoutInfo.contentLeft&&i.x-n.x>=t.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,ke._getMouseColumn(this.mouseContentHorizontalOffset,t.typicalHalfwidthCharacterWidth))}))),we={isAfterLines:!0};function Ce(e){return{isAfterLines:!1,horizontalDistanceToText:e}}var ke=function(){function e(t,n){(0,c.Z)(this,e),this._context=t,this._viewHelper=n}return(0,d.Z)(e,[{key:"mouseTargetIsWidget",value:function(e){var t=e.target,n=W.collect(t,this._viewHelper.viewDomNode);return!(!_e.isChildOfContentWidgets(n)&&!_e.isChildOfOverflowingContentWidgets(n))||!!_e.isChildOfOverlayWidgets(n)}},{key:"createMouseTarget",value:function(t,n,i,r){var o=new ye(this._context,this._viewHelper,t),a=new be(o,n,i,r);try{return e._createMouseTarget(o,a,!1)}catch(s){return a.fulfill(0)}}},{key:"getMouseColumn",value:function(t,n){var i=this._context.configuration.options,r=i.get(127),o=this._context.viewLayout.getCurrentScrollLeft()+n.x-t.x-r.contentLeft;return e._getMouseColumn(o,i.get(40).typicalHalfwidthCharacterWidth)}}],[{key:"_createMouseTarget",value:function(t,n,i){if(null===n.target){if(i)return n.fulfill(0);var r=e._doHitTest(t,n);return r.position?e.createMouseTargetFromHitTestPosition(t,n,r.position.lineNumber,r.position.column):this._createMouseTarget(t,n.withTarget(r.hitTarget),!0)}var o=n,a=null;return(a=(a=(a=(a=(a=(a=(a=(a=(a=(a=a||e._hitTestContentWidget(t,o))||e._hitTestOverlayWidget(t,o))||e._hitTestMinimap(t,o))||e._hitTestScrollbarSlider(t,o))||e._hitTestViewZone(t,o))||e._hitTestMargin(t,o))||e._hitTestViewCursor(t,o))||e._hitTestTextArea(t,o))||e._hitTestViewLines(t,o,i))||e._hitTestScrollbar(t,o))||n.fulfill(0)}},{key:"_hitTestContentWidget",value:function(e,t){if(_e.isChildOfContentWidgets(t.targetPath)||_e.isChildOfOverflowingContentWidgets(t.targetPath)){var n=e.findAttribute(t.target,"widgetId");return n?t.fulfill(9,null,null,n):t.fulfill(0)}return null}},{key:"_hitTestOverlayWidget",value:function(e,t){if(_e.isChildOfOverlayWidgets(t.targetPath)){var n=e.findAttribute(t.target,"widgetId");return n?t.fulfill(12,null,null,n):t.fulfill(0)}return null}},{key:"_hitTestViewCursor",value:function(e,t){if(t.target){var n,i=e.lastRenderData.lastViewCursorsRenderData,o=(0,r.Z)(i);try{for(o.s();!(n=o.n()).done;){var a=n.value;if(t.target===a.domNode)return t.fulfill(6,a.position)}}catch(p){o.e(p)}finally{o.f()}}if(t.isInContentArea){var s,u=e.lastRenderData.lastViewCursorsRenderData,l=t.mouseContentHorizontalOffset,c=t.mouseVerticalOffset,d=(0,r.Z)(u);try{for(d.s();!(s=d.n()).done;){var h=s.value;if(!(l<h.contentLeft)&&!(l>h.contentLeft+h.width)){var f=e.getVerticalOffsetForLineNumber(h.position.lineNumber);if(f<=c&&c<=f+h.height)return t.fulfill(6,h.position)}}}catch(p){d.e(p)}finally{d.f()}}return null}},{key:"_hitTestViewZone",value:function(e,t){var n=e.getZoneAtCoord(t.mouseVerticalOffset);if(n){var i=t.isInContentArea?8:5;return t.fulfill(i,n.position,null,n)}return null}},{key:"_hitTestTextArea",value:function(e,t){return _e.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfill(6,e.lastRenderData.lastTextareaPosition):t.fulfill(1,e.lastRenderData.lastTextareaPosition):null}},{key:"_hitTestMargin",value:function(e,t){if(t.isInMarginArea){var n=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),i=n.range.getStartPosition(),r=Math.abs(t.pos.x-t.editorPos.x),o={isAfterLines:n.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:r};return(r-=e.layoutInfo.glyphMarginLeft)<=e.layoutInfo.glyphMarginWidth?t.fulfill(2,i,n.range,o):(r-=e.layoutInfo.glyphMarginWidth)<=e.layoutInfo.lineNumbersWidth?t.fulfill(3,i,n.range,o):(r-=e.layoutInfo.lineNumbersWidth,t.fulfill(4,i,n.range,o))}return null}},{key:"_hitTestViewLines",value:function(t,n,i){if(!_e.isChildOfViewLines(n.targetPath))return null;if(t.isInTopPadding(n.mouseVerticalOffset))return n.fulfill(7,new he.L(1,1),void 0,we);if(t.isAfterLines(n.mouseVerticalOffset)||t.isInBottomPadding(n.mouseVerticalOffset)){var r=t.model.getLineCount(),o=t.model.getLineMaxColumn(r);return n.fulfill(7,new he.L(r,o),void 0,we)}if(i){if(_e.isStrictChildOfViewLines(n.targetPath)){var a=t.getLineNumberAtVerticalOffset(n.mouseVerticalOffset);if(0===t.model.getLineLength(a)){var s=t.getLineWidth(a),u=Ce(n.mouseContentHorizontalOffset-s);return n.fulfill(7,new he.L(a,1),void 0,u)}var l=t.getLineWidth(a);if(n.mouseContentHorizontalOffset>=l){var c=Ce(n.mouseContentHorizontalOffset-l),d=new he.L(a,t.model.getLineMaxColumn(a));return n.fulfill(7,d,void 0,c)}}return n.fulfill(0)}var h=e._doHitTest(t,n);return h.position?e.createMouseTargetFromHitTestPosition(t,n,h.position.lineNumber,h.position.column):this._createMouseTarget(t,n.withTarget(h.hitTarget),!0)}},{key:"_hitTestMinimap",value:function(e,t){if(_e.isChildOfMinimap(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(11,new he.L(n,i))}return null}},{key:"_hitTestScrollbarSlider",value:function(e,t){if(_e.isChildOfScrollableElement(t.targetPath)&&t.target&&1===t.target.nodeType){var n=t.target.className;if(n&&/\b(slider|scrollbar)\b/.test(n)){var i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.model.getLineMaxColumn(i);return t.fulfill(11,new he.L(i,r))}}return null}},{key:"_hitTestScrollbar",value:function(e,t){if(_e.isChildOfScrollableElement(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(11,new he.L(n,i))}return null}},{key:"_getMouseColumn",value:function(e,t){return e<0?1:Math.round(e/t)+1}},{key:"createMouseTargetFromHitTestPosition",value:function(e,t,n,i){var r=new he.L(n,i),o=e.getLineWidth(n);if(t.mouseContentHorizontalOffset>o){var a=Ce(t.mouseContentHorizontalOffset-o);return t.fulfill(7,r,void 0,a)}var s=e.visibleRangeForPosition(n,i);if(!s)return t.fulfill(0,r);var u=s.left;if(t.mouseContentHorizontalOffset===u)return t.fulfill(6,r);var l=[];if(l.push({offset:s.left,column:i}),i>1){var c=e.visibleRangeForPosition(n,i-1);c&&l.push({offset:c.left,column:i-1})}if(i<e.model.getLineMaxColumn(n)){var d=e.visibleRangeForPosition(n,i+1);d&&l.push({offset:d.left,column:i+1})}l.sort((function(e,t){return e.offset-t.offset}));for(var h=1;h<l.length;h++){var f=l[h-1],p=l[h];if(f.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=p.offset){var g=new fe.e(n,f.column,n,p.column);return t.fulfill(6,r,g)}}return t.fulfill(6,r)}},{key:"_doHitTestWithCaretRangeFromPoint",value:function(e,t){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.getVerticalOffsetForLineNumber(n)+Math.floor(e.lineHeight/2),r=t.pos.y+(i-t.mouseVerticalOffset);r<=t.editorPos.y&&(r=t.editorPos.y+1),r>=t.editorPos.y+e.layoutInfo.height&&(r=t.editorPos.y+e.layoutInfo.height-1);var o=new I(t.pos.x,r),a=this._actualDoHitTestWithCaretRangeFromPoint(e,o.toClientCoordinates());return a.position?a:this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())}},{key:"_actualDoHitTestWithCaretRangeFromPoint",value:function(e,t){var n,i=_.getShadowRoot(e.viewDomNode);if(n=i?"undefined"===typeof i.caretRangeFromPoint?function(e,t,n){var i=document.createRange(),r=e.elementFromPoint(t,n);if(null!==r){for(;r&&r.firstChild&&r.firstChild.nodeType!==r.firstChild.TEXT_NODE&&r.lastChild&&r.lastChild.firstChild;)r=r.lastChild;var o,a=r.getBoundingClientRect(),s=window.getComputedStyle(r,null).getPropertyValue("font"),u=r.innerText,l=a.left,c=0;if(t>a.left+a.width)c=u.length;else for(var d=Se.getInstance(),h=0;h<u.length+1;h++){if(t<(l+=o=d.getCharWidth(u.charAt(h),s)/2)){c=h;break}l+=o}i.setStart(r.firstChild,c),i.setEnd(r.firstChild,c)}return i}(i,t.clientX,t.clientY):i.caretRangeFromPoint(t.clientX,t.clientY):document.caretRangeFromPoint(t.clientX,t.clientY),!n||!n.startContainer)return{position:null,hitTarget:null};var r=n.startContainer,o=null;if(r.nodeType===r.TEXT_NODE){var a=r.parentNode,s=a?a.parentNode:null,u=s?s.parentNode:null;if((u&&u.nodeType===u.ELEMENT_NODE?u.className:null)===oe.CLASS_NAME)return{position:e.getPositionFromDOMInfo(a,n.startOffset),hitTarget:null};o=r.parentNode}else if(r.nodeType===r.ELEMENT_NODE){var l=r.parentNode,c=l?l.parentNode:null;if((c&&c.nodeType===c.ELEMENT_NODE?c.className:null)===oe.CLASS_NAME)return{position:e.getPositionFromDOMInfo(r,r.textContent.length),hitTarget:null};o=r}return{position:null,hitTarget:o}}},{key:"_doHitTestWithCaretPositionFromPoint",value:function(e,t){var n=document.caretPositionFromPoint(t.clientX,t.clientY);if(n.offsetNode.nodeType===n.offsetNode.TEXT_NODE){var i=n.offsetNode.parentNode,r=i?i.parentNode:null,o=r?r.parentNode:null;return(o&&o.nodeType===o.ELEMENT_NODE?o.className:null)===oe.CLASS_NAME?{position:e.getPositionFromDOMInfo(n.offsetNode.parentNode,n.offset),hitTarget:null}:{position:null,hitTarget:n.offsetNode.parentNode}}if(n.offsetNode.nodeType===n.offsetNode.ELEMENT_NODE){var a=n.offsetNode.parentNode,s=a&&a.nodeType===a.ELEMENT_NODE?a.className:null,u=a?a.parentNode:null,l=u&&u.nodeType===u.ELEMENT_NODE?u.className:null;if(s===oe.CLASS_NAME){var c=n.offsetNode.childNodes[Math.min(n.offset,n.offsetNode.childNodes.length-1)];if(c)return{position:e.getPositionFromDOMInfo(c,0),hitTarget:null}}else if(l===oe.CLASS_NAME){return{position:e.getPositionFromDOMInfo(n.offsetNode,0),hitTarget:null}}}return{position:null,hitTarget:n.offsetNode}}},{key:"_snapToSoftTabBoundary",value:function(e,t){var n=t.getLineContent(e.lineNumber),i=t.getTextModelOptions().tabSize,r=ge.l.atomicPosition(n,e.column-1,i,2);return-1!==r?new he.L(e.lineNumber,r+1):e}},{key:"_doHitTest",value:function(e,t){var n;return(n="function"===typeof document.caretRangeFromPoint?this._doHitTestWithCaretRangeFromPoint(e,t):document.caretPositionFromPoint?this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates()):{position:null,hitTarget:null}).position&&e.stickyTabStops&&(n.position=this._snapToSoftTabBoundary(n.position,e.model)),n}}]),e}();var Se=function(){function e(){(0,c.Z)(this,e),this._cache={},this._canvas=document.createElement("canvas")}return(0,d.Z)(e,[{key:"getCharWidth",value:function(e,t){var n=e+t;if(this._cache[n])return this._cache[n];var i=this._canvas.getContext("2d");i.font=t;var r=i.measureText(e).width;return this._cache[n]=r,r}}],[{key:"getInstance",value:function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE}}]),e}();Se._INSTANCE=null;var xe=n(51164);function Le(e){return function(t,n){var i=!1;return e&&(i=e.mouseTargetIsWidget(n)),i||n.preventDefault(),n}}var Ee=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var a;(0,c.Z)(this,n),(a=t.call(this))._context=e,a.viewController=i,a.viewHelper=r,a.mouseTargetFactory=new ke(a._context,r),a._mouseDownOperation=a._register(new Ne(a._context,a.viewController,a.viewHelper,(function(e,t){return a._createMouseTarget(e,t)}),(function(e){return a._getMouseColumn(e)}))),a.lastMouseLeaveTime=-1,a._height=a._context.configuration.options.get(127).height;var s=new F(a.viewHelper.viewDomNode);a._register(s.onContextMenu(a.viewHelper.viewDomNode,(function(e){return a._onContextMenu(e,!0)}))),a._register(s.onMouseMoveThrottled(a.viewHelper.viewDomNode,(function(e){return a._onMouseMove(e)}),Le(a.mouseTargetFactory),n.MOUSE_MOVE_MINIMUM_TIME)),a._register(s.onMouseUp(a.viewHelper.viewDomNode,(function(e){return a._onMouseUp(e)}))),a._register(s.onMouseLeave(a.viewHelper.viewDomNode,(function(e){return a._onMouseLeave(e)}))),a._register(s.onMouseDown(a.viewHelper.viewDomNode,(function(e){return a._onMouseDown(e)})));return a._register(_.addDisposableListener(a.viewHelper.viewDomNode,_.EventType.MOUSE_WHEEL,(function(e){if(a.viewController.emitMouseWheel(e),a._context.configuration.options.get(64)){var t=new M.q(e);if(N.dz?(e.metaKey||e.ctrlKey)&&!e.shiftKey&&!e.altKey:e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey){var n=xe.C.getZoomLevel(),i=t.deltaY>0?1:-1;xe.C.setZoomLevel(n+i),t.preventDefault(),t.stopPropagation()}}}),{capture:!0,passive:!1})),a._context.addEventHandler((0,o.Z)(a)),a}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){if(e.hasChanged(127)){var t=this._context.configuration.options.get(127).height;this._height!==t&&(this._height=t,this._mouseDownOperation.onHeightChanged())}return!1}},{key:"onCursorStateChanged",value:function(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}},{key:"onFocusChanged",value:function(e){return!1}},{key:"onScrollChanged",value:function(e){return this._mouseDownOperation.onScrollChanged(),!1}},{key:"getTargetAtClientPoint",value:function(e,t){var n=new A(e,t).toPageCoordinates(),i=P(this.viewHelper.viewDomNode);return n.y<i.y||n.y>i.y+i.height||n.x<i.x||n.x>i.x+i.width?null:this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),i,n,null)}},{key:"_createMouseTarget",value:function(e,t){return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,t?e.target:null)}},{key:"_getMouseColumn",value:function(e){return this.mouseTargetFactory.getMouseColumn(e.editorPos,e.pos)}},{key:"_onContextMenu",value:function(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}},{key:"_onMouseMove",value:function(e){this._mouseDownOperation.isActive()||(e.timestamp<this.lastMouseLeaveTime||this.viewController.emitMouseMove({event:e,target:this._createMouseTarget(e,!0)}))}},{key:"_onMouseLeave",value:function(e){this.lastMouseLeaveTime=(new Date).getTime(),this.viewController.emitMouseLeave({event:e,target:null})}},{key:"_onMouseUp",value:function(e){this.viewController.emitMouseUp({event:e,target:this._createMouseTarget(e,!0)})}},{key:"_onMouseDown",value:function(e){var t=this,n=this._createMouseTarget(e,!0),i=6===n.type||7===n.type,r=2===n.type||3===n.type||4===n.type,o=3===n.type,a=this._context.configuration.options.get(95),s=8===n.type||5===n.type,u=9===n.type,l=e.leftButton||e.middleButton;N.dz&&e.leftButton&&e.ctrlKey&&(l=!1);var c=function(){e.preventDefault(),t.viewHelper.focusTextArea()};if(l&&(i||o&&a))c(),this._mouseDownOperation.start(n.type,e);else if(r)e.preventDefault();else if(s){var d=n.detail;this.viewHelper.shouldSuppressMouseDownOnViewZone(d.viewZoneId)&&(c(),this._mouseDownOperation.start(n.type,e),e.preventDefault())}else u&&this.viewHelper.shouldSuppressMouseDownOnWidget(n.detail)&&(c(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:n})}}]),n}(B);Ee.MOUSE_MOVE_MINIMUM_TIME=100;var Ne=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o,a){var s;return(0,c.Z)(this,n),(s=t.call(this))._context=e,s._viewController=i,s._viewHelper=r,s._createMouseTarget=o,s._getMouseColumn=a,s._mouseMoveMonitor=s._register(new H(s._viewHelper.viewDomNode)),s._onScrollTimeout=s._register(new T._F),s._mouseState=new De,s._currentSelection=new L.Y(1,1,1,1),s._isActive=!1,s._lastMouseEvent=null,s}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"isActive",value:function(){return this._isActive}},{key:"_onMouseDownThenMove",value:function(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);var t=this._findMousePosition(e,!0);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):this._dispatchMouse(t,!0))}},{key:"start",value:function(e,t){var n=this;this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(3===e),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);var i=this._findMousePosition(t,!0);if(i&&i.position){this._mouseState.trySetCount(t.detail,i.position),t.detail=this._mouseState.count;var r=this._context.configuration.options;if(!r.get(77)&&r.get(29)&&!r.get(16)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&6===i.type&&i.position&&this._currentSelection.containsPosition(i.position))return this._mouseState.isDragAndDrop=!0,this._isActive=!0,void this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,Le(null),(function(e){return n._onMouseDownThenMove(e)}),(function(e){var t=n._findMousePosition(n._lastMouseEvent,!0);e&&e instanceof KeyboardEvent?n._viewController.emitMouseDropCanceled():n._viewController.emitMouseDrop({event:n._lastMouseEvent,target:t?n._createMouseTarget(n._lastMouseEvent,!0):null}),n._stop()}));this._mouseState.isDragAndDrop=!1,this._dispatchMouse(i,t.shiftKey),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,Le(null),(function(e){return n._onMouseDownThenMove(e)}),(function(){return n._stop()})))}}},{key:"_stop",value:function(){this._isActive=!1,this._onScrollTimeout.cancel()}},{key:"onHeightChanged",value:function(){this._mouseMoveMonitor.stopMonitoring()}},{key:"onScrollChanged",value:function(){var e=this;this._isActive&&this._onScrollTimeout.setIfNotSet((function(){if(e._lastMouseEvent){var t=e._findMousePosition(e._lastMouseEvent,!1);t&&(e._mouseState.isDragAndDrop||e._dispatchMouse(t,!0))}}),10)}},{key:"onCursorStateChanged",value:function(e){this._currentSelection=e.selections[0]}},{key:"_getPositionOutsideEditor",value:function(e){var t=e.editorPos,n=this._context.model,i=this._context.viewLayout,r=this._getMouseColumn(e);if(e.posy<t.y){var o=Math.max(i.getCurrentScrollTop()-(t.y-e.posy),0),a=ye.getZoneAtCoord(this._context,o);if(a){var s=this._helpPositionJumpOverViewZone(a);if(s)return new me(null,13,r,s)}var u=i.getLineNumberAtVerticalOffset(o);return new me(null,13,r,new he.L(u,1))}if(e.posy>t.y+t.height){var l=i.getCurrentScrollTop()+(e.posy-t.y),c=ye.getZoneAtCoord(this._context,l);if(c){var d=this._helpPositionJumpOverViewZone(c);if(d)return new me(null,13,r,d)}var h=i.getLineNumberAtVerticalOffset(l);return new me(null,13,r,new he.L(h,n.getLineMaxColumn(h)))}var f=i.getLineNumberAtVerticalOffset(i.getCurrentScrollTop()+(e.posy-t.y));return e.posx<t.x?new me(null,13,r,new he.L(f,1)):e.posx>t.x+t.width?new me(null,13,r,new he.L(f,n.getLineMaxColumn(f))):null}},{key:"_findMousePosition",value:function(e,t){var n=this._getPositionOutsideEditor(e);if(n)return n;var i=this._createMouseTarget(e,t);if(!i.position)return null;if(8===i.type||5===i.type){var r=this._helpPositionJumpOverViewZone(i.detail);if(r)return new me(i.element,i.type,i.mouseColumn,r,null,i.detail)}return i}},{key:"_helpPositionJumpOverViewZone",value:function(e){var t=new he.L(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),n=e.positionBefore,i=e.positionAfter;return n&&i?n.isBefore(t)?n:i:null}},{key:"_dispatchMouse",value:function(e,t){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton})}}]),n}(w.JT),De=function(){function e(){(0,c.Z)(this,e),this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}return(0,d.Z)(e,[{key:"altKey",get:function(){return this._altKey}},{key:"ctrlKey",get:function(){return this._ctrlKey}},{key:"metaKey",get:function(){return this._metaKey}},{key:"shiftKey",get:function(){return this._shiftKey}},{key:"leftButton",get:function(){return this._leftButton}},{key:"middleButton",get:function(){return this._middleButton}},{key:"startedOnLineNumbers",get:function(){return this._startedOnLineNumbers}},{key:"count",get:function(){return this._lastMouseDownCount}},{key:"setModifiers",value:function(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}},{key:"setStartButtons",value:function(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}},{key:"setStartedOnLineNumbers",value:function(e){this._startedOnLineNumbers=e}},{key:"trySetCount",value:function(t,n){var i=(new Date).getTime();i-this._lastSetMouseDownCountTime>e.CLEAR_MOUSE_DOWN_COUNT_TIME&&(t=1),this._lastSetMouseDownCountTime=i,t>this._lastMouseDownCount+1&&(t=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(n)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=n,this._lastMouseDownCount=Math.min(t,this._lastMouseDownPositionEqualCount)}}]),e}();De.CLEAR_MOUSE_DOWN_COUNT_TIME=400;var Me=n(32721),Te=n(83106),Oe=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;(0,c.Z)(this,n),(o=t.call(this,e,i,r))._register(D.o.addTarget(o.viewHelper.linesContentDomNode)),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Tap,(function(e){return o.onTap(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Change,(function(e){return o.onChange(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Contextmenu,(function(e){return o._onContextMenu(new Z(e,o.viewHelper.viewDomNode),!1)}))),o._lastPointerType="mouse",o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,"pointerdown",(function(e){var t=e.pointerType;o._lastPointerType="mouse"!==t?"touch"===t?"touch":"pen":"mouse"})));var a=new j(o.viewHelper.viewDomNode);return o._register(a.onPointerMoveThrottled(o.viewHelper.viewDomNode,(function(e){return o._onMouseMove(e)}),Le(o.mouseTargetFactory),Ee.MOUSE_MOVE_MINIMUM_TIME)),o._register(a.onPointerUp(o.viewHelper.viewDomNode,(function(e){return o._onMouseUp(e)}))),o._register(a.onPointerLeave(o.viewHelper.viewDomNode,(function(e){return o._onMouseLeave(e)}))),o._register(a.onPointerDown(o.viewHelper.viewDomNode,(function(e){return o._onMouseDown(e)}))),o}return(0,d.Z)(n,[{key:"onTap",value:function(e){if(e.initialTarget&&this.viewHelper.linesContentDomNode.contains(e.initialTarget)){e.preventDefault(),this.viewHelper.focusTextArea();var t=this._createMouseTarget(new Z(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.dispatchMouse({position:t.position,mouseColumn:t.position.column,startedOnLineNumbers:!1,mouseDownCount:e.tapCount,inSelectionMode:!1,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1})}}},{key:"onChange",value:function(e){"touch"===this._lastPointerType&&this._context.model.deltaScrollNow(-e.translationX,-e.translationY)}},{key:"_onMouseDown",value:function(e){"touch"!==e.browserEvent.pointerType&&(0,a.Z)((0,s.Z)(n.prototype),"_onMouseDown",this).call(this,e)}}]),n}(Ee),Ie=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;return(0,c.Z)(this,n),(o=t.call(this,e,i,r))._register(D.o.addTarget(o.viewHelper.linesContentDomNode)),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Tap,(function(e){return o.onTap(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Change,(function(e){return o.onChange(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Contextmenu,(function(e){return o._onContextMenu(new Z(e,o.viewHelper.viewDomNode),!1)}))),o}return(0,d.Z)(n,[{key:"onTap",value:function(e){e.preventDefault(),this.viewHelper.focusTextArea();var t=this._createMouseTarget(new Z(e,this.viewHelper.viewDomNode),!1);if(t.position){var n=document.createEvent("CustomEvent");n.initEvent(Te.pd.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(n),this.viewController.moveTo(t.position)}}},{key:"onChange",value:function(e){this._context.model.deltaScrollNow(-e.translationX,-e.translationY)}}]),n}(Ee),Ae=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;return(0,c.Z)(this,n),o=t.call(this),N.gn&&Me.D.pointerEvents?o.handler=o._register(new Oe(e,i,r)):window.TouchEvent?o.handler=o._register(new Ie(e,i,r)):o.handler=o._register(new Ee(e,i,r)),o}return(0,d.Z)(n,[{key:"getTargetAtClientPoint",value:function(e,t){return this.handler.getTargetAtClientPoint(e,t)}}]),n}(w.JT),Re=n(51747),Pe=n(90224),Ze=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n)}(B),Fe=n(80449),je=n(70182),He=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._context=e,i._readConfig(),i._lastCursorModelPosition=new he.L(1,1),i._renderResult=null,i._activeLineNumber=1,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"_readConfig",value:function(){var e=this._context.configuration.options;this._lineHeight=e.get(55);var t=e.get(56);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(81);var n=e.get(127);this._lineNumbersLeft=n.lineNumbersLeft,this._lineNumbersWidth=n.lineNumbersWidth}},{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){return this._readConfig(),!0}},{key:"onCursorStateChanged",value:function(e){var t=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(t);var n=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,n=!0),2!==this._renderLineNumbers&&3!==this._renderLineNumbers||(n=!0),n}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getLineRenderLineNumber",value:function(e){var t=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new he.L(e,1));if(1!==t.column)return"";var n=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(n);if(2===this._renderLineNumbers){var i=Math.abs(this._lastCursorModelPosition.lineNumber-n);return 0===i?'<span class="relative-current-line-number">'+n+"</span>":String(i)}return 3===this._renderLineNumbers?this._lastCursorModelPosition.lineNumber===n||n%10===0?String(n):"":String(n)}},{key:"prepareRender",value:function(e){if(0!==this._renderLineNumbers){for(var t=N.IJ?this._lineHeight%2===0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,o='<div class="'+n.CLASS_NAME+t+'" style="left:'+this._lineNumbersLeft+"px;width:"+this._lineNumbersWidth+'px;">',a=this._context.model.getLineCount(),s=[],u=i;u<=r;u++){var l=u-i;if(this._renderFinalNewline||u!==a||0!==this._context.model.getLineLength(u)){var c=this._getLineRenderLineNumber(u);c?u===this._activeLineNumber?s[l]='<div class="active-line-number '+n.CLASS_NAME+t+'" style="left:'+this._lineNumbersLeft+"px;width:"+this._lineNumbersWidth+'px;">'+c+"</div>":s[l]=o+c+"</div>":s[l]=""}else s[l]=""}this._renderResult=s}else this._renderResult=null}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(Ze);He.CLASS_NAME="line-numbers",(0,je.Ic)((function(e,t){var n=e.getColor(Fe.hw);n&&t.addRule(".monaco-editor .line-numbers { color: ".concat(n,"; }"));var i=e.getColor(Fe.DD);i&&t.addRule(".monaco-editor .line-numbers.active-line-number { color: ".concat(i,"; }"))}));var Be=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options,o=r.get(127);return i._canUseLayerHinting=!r.get(26),i._contentLeft=o.contentLeft,i._glyphMarginLeft=o.glyphMarginLeft,i._glyphMarginWidth=o.glyphMarginWidth,i._domNode=(0,E.X)(document.createElement("div")),i._domNode.setClassName(n.OUTER_CLASS_NAME),i._domNode.setPosition("absolute"),i._domNode.setAttribute("role","presentation"),i._domNode.setAttribute("aria-hidden","true"),i._glyphMarginBackgroundDomNode=(0,E.X)(document.createElement("div")),i._glyphMarginBackgroundDomNode.setClassName(n.CLASS_NAME),i._domNode.appendChild(i._glyphMarginBackgroundDomNode),i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"getDomNode",value:function(){return this._domNode}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._canUseLayerHinting=!t.get(26),this._contentLeft=n.contentLeft,this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,!0}},{key:"onScrollChanged",value:function(e){return(0,a.Z)((0,s.Z)(n.prototype),"onScrollChanged",this).call(this,e)||e.scrollTopChanged}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain("strict");var t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);var n=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(n),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(n)}}]),n}(z);Be.CLASS_NAME="glyph-margin",Be.OUTER_CLASS_NAME="margin";var ze=n(20937),We=n(79026),Ve=function(){function e(t,n,i){(0,c.Z)(this,e),this.top=t,this.left=n,this.width=i}return(0,d.Z)(e,[{key:"setWidth",value:function(t){return new e(this.top,this.left,t)}}]),e}(),Ye=x.vU,Ue=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,r,o){var a;(0,c.Z)(this,n),(a=t.call(this,e))._primaryCursorPosition=new he.L(1,1),a._primaryCursorVisibleRange=null,a._viewController=r,a._viewHelper=o,a._scrollLeft=0,a._scrollTop=0;var s=a._context.configuration.options,u=s.get(127);a._setAccessibilityOptions(s),a._contentLeft=u.contentLeft,a._contentWidth=u.contentWidth,a._contentHeight=u.height,a._fontInfo=s.get(40),a._lineHeight=s.get(55),a._emptySelectionClipboard=s.get(30),a._copyWithSyntaxHighlighting=s.get(19),a._visibleTextArea=null,a._selections=[new L.Y(1,1,1,1)],a._modelSelections=[new L.Y(1,1,1,1)],a._lastRenderPosition=null,a.textArea=(0,E.X)(document.createElement("textarea")),W.write(a.textArea,6),a.textArea.setClassName("inputarea ".concat(We.S)),a.textArea.setAttribute("wrap","off"),a.textArea.setAttribute("autocorrect","off"),a.textArea.setAttribute("autocapitalize","off"),a.textArea.setAttribute("autocomplete","off"),a.textArea.setAttribute("spellcheck","false"),a.textArea.setAttribute("aria-label",a._getAriaLabel(s)),a.textArea.setAttribute("tabindex",String(s.get(109))),a.textArea.setAttribute("role","textbox"),a.textArea.setAttribute("aria-roledescription",m.N("editor","editor")),a.textArea.setAttribute("aria-multiline","true"),a.textArea.setAttribute("aria-haspopup","false"),a.textArea.setAttribute("aria-autocomplete","both"),s.get(28)&&s.get(77)&&a.textArea.setAttribute("readonly","true"),a.textAreaCover=(0,E.X)(document.createElement("div")),a.textAreaCover.setPosition("absolute");var l={getLineCount:function(){return a._context.model.getLineCount()},getLineMaxColumn:function(e){return a._context.model.getLineMaxColumn(e)},getValueInRange:function(e,t){return a._context.model.getValueInRange(e,t)}},d={getDataToCopy:function(e){var t=a._context.model.getPlainTextToCopy(a._modelSelections,a._emptySelectionClipboard,N.ED),n=a._context.model.getEOL(),i=a._emptySelectionClipboard&&1===a._modelSelections.length&&a._modelSelections[0].isEmpty(),r=Array.isArray(t)?t:null,o=Array.isArray(t)?t.join(n):t,s=void 0,u=null;if(e&&(Te.RA.forceCopyWithSyntaxHighlighting||a._copyWithSyntaxHighlighting&&o.length<65536)){var l=a._context.model.getRichTextToCopy(a._modelSelections,a._emptySelectionClipboard);l&&(s=l.html,u=l.mode)}return{isFromEmptySelection:i,multicursorText:r,text:o,html:s,mode:u}},getScreenReaderContent:function(e){if(1===a._accessibilitySupport){if(N.dz){var t=a._selections[0];if(t.isEmpty()){var n=t.getStartPosition(),r=a._getWordBeforePosition(n);if(0===r.length&&(r=a._getCharacterBeforePosition(n)),r.length>0)return new Pe.un(r,r.length,r.length,n,n)}}return Pe.un.EMPTY}if(x.Dt){var o=a._selections[0];if(o.isEmpty()){var s=o.getStartPosition(),u=a._getAndroidWordAtPosition(s),c=(0,i.Z)(u,2),d=c[0],h=c[1];if(d.length>0)return new Pe.un(d,h,h,s,s)}return Pe.un.EMPTY}return Pe.ee.fromEditorSelection(e,l,a._selections[0],a._accessibilityPageSize,0===a._accessibilitySupport)},deduceModelPosition:function(e,t,n){return a._context.model.deduceModelPositionRelativeToViewPosition(e,t,n)}};return a._textAreaInput=a._register(new Te.Fz(d,a.textArea)),a._register(a._textAreaInput.onKeyDown((function(e){a._viewController.emitKeyDown(e)}))),a._register(a._textAreaInput.onKeyUp((function(e){a._viewController.emitKeyUp(e)}))),a._register(a._textAreaInput.onPaste((function(e){var t=!1,n=null,i=null;e.metadata&&(t=a._emptySelectionClipboard&&!!e.metadata.isFromEmptySelection,n="undefined"!==typeof e.metadata.multicursorText?e.metadata.multicursorText:null,i=e.metadata.mode),a._viewController.paste(e.text,t,n,i)}))),a._register(a._textAreaInput.onCut((function(){a._viewController.cut()}))),a._register(a._textAreaInput.onType((function(e){e.replacePrevCharCnt||e.replaceNextCharCnt||e.positionDelta?(Pe.al&&console.log(" => compositionType: <<".concat(e.text,">>, ").concat(e.replacePrevCharCnt,", ").concat(e.replaceNextCharCnt,", ").concat(e.positionDelta)),a._viewController.compositionType(e.text,e.replacePrevCharCnt,e.replaceNextCharCnt,e.positionDelta)):(Pe.al&&console.log(" => type: <<".concat(e.text,">>")),a._viewController.type(e.text))}))),a._register(a._textAreaInput.onSelectionChangeRequest((function(e){a._viewController.setSelection(e)}))),a._register(a._textAreaInput.onCompositionStart((function(e){var t=a._selections[0].startLineNumber,n=a._selections[0].startColumn+e.revealDeltaColumns;a._context.model.revealRange("keyboard",!0,new fe.e(t,n,t,n),0,1);var i=a._viewHelper.visibleRangeForPositionRelativeToEditor(t,n);i&&(a._visibleTextArea=new Ve(a._context.viewLayout.getVerticalOffsetForLineNumber(t),i.left,Ye?0:1),a._render()),a.textArea.setClassName("inputarea ".concat(We.S," ime-input")),a._viewController.compositionStart(),a._context.model.onCompositionStart()}))),a._register(a._textAreaInput.onCompositionUpdate((function(e){a._visibleTextArea&&(a._visibleTextArea=a._visibleTextArea.setWidth(function(e,t){var n=document.createElement("canvas").getContext("2d");n.font=function(e){return t="normal",n=e.fontWeight,i=e.fontSize,r=e.lineHeight,o=e.fontFamily,"".concat(t," normal ").concat(n," ").concat(i,"px / ").concat(r,"px ").concat(o);var t,n,i,r,o}(t);var i=n.measureText(e);return x.vU?i.width+2:i.width}(e.data,a._fontInfo)),a._render())}))),a._register(a._textAreaInput.onCompositionEnd((function(){a._visibleTextArea=null,a._render(),a.textArea.setClassName("inputarea ".concat(We.S)),a._viewController.compositionEnd(),a._context.model.onCompositionEnd()}))),a._register(a._textAreaInput.onFocus((function(){a._context.model.setHasFocus(!0)}))),a._register(a._textAreaInput.onBlur((function(){a._context.model.setHasFocus(!1)}))),a}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_getAndroidWordAtPosition",value:function(e){for(var t=this._context.model.getLineContent(e.lineNumber),n=(0,ze.u)('`~!@#$%^&*()-=+[{]}\\|;:",.<>/?'),i=!0,r=e.column,o=!0,a=e.column,s=0;s<50&&(i||o);){if(i&&r<=1&&(i=!1),i){var u=t.charCodeAt(r-2);0!==n.get(u)?i=!1:r--}if(o&&a>t.length&&(o=!1),o){var l=t.charCodeAt(a-1);0!==n.get(l)?o=!1:a++}s++}return[t.substring(r-1,a-1),e.column-r]}},{key:"_getWordBeforePosition",value:function(e){for(var t=this._context.model.getLineContent(e.lineNumber),n=(0,ze.u)(this._context.configuration.options.get(113)),i=e.column,r=0;i>1;){var o=t.charCodeAt(i-2);if(0!==n.get(o)||r>50)return t.substring(i-1,e.column-1);r++,i--}return t.substring(0,e.column-1)}},{key:"_getCharacterBeforePosition",value:function(e){if(e.column>1){var t=this._context.model.getLineContent(e.lineNumber).charAt(e.column-2);if(!Re.ZG(t.charCodeAt(0)))return t}return""}},{key:"_getAriaLabel",value:function(e){return 1===e.get(2)?m.N("accessibilityOffAriaLabel","The editor is not accessible at this time. Press {0} for options.",N.IJ?"Shift+Alt+F1":"Alt+F1"):e.get(4)}},{key:"_setAccessibilityOptions",value:function(e){this._accessibilitySupport=e.get(2);var t=e.get(3);2===this._accessibilitySupport&&t===ee.BH.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._setAccessibilityOptions(t),this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,this._contentHeight=n.height,this._fontInfo=t.get(40),this._lineHeight=t.get(55),this._emptySelectionClipboard=t.get(30),this._copyWithSyntaxHighlighting=t.get(19),this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("tabindex",String(t.get(109))),(e.hasChanged(28)||e.hasChanged(77))&&(t.get(28)&&t.get(77)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")),e.hasChanged(2)&&this._textAreaInput.writeScreenReaderContent("strategy changed"),!0}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeScreenReaderContent("selection changed"),!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}},{key:"onZonesChanged",value:function(e){return!0}},{key:"isFocused",value:function(){return this._textAreaInput.isFocused()}},{key:"focusTextArea",value:function(){this._textAreaInput.focusTextArea()}},{key:"getLastRenderData",value:function(){return this._lastRenderPosition}},{key:"setAriaOptions",value:function(e){e.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",e.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),e.role&&this.textArea.setAttribute("role",e.role)}},{key:"prepareRender",value:function(e){this._primaryCursorPosition=new he.L(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition)}},{key:"render",value:function(e){this._textAreaInput.writeScreenReaderContent("render"),this._render()}},{key:"_render",value:function(){if(this._visibleTextArea)this._renderInsideEditor(null,this._visibleTextArea.top-this._scrollTop,this._contentLeft+this._visibleTextArea.left-this._scrollLeft,this._visibleTextArea.width,this._lineHeight);else if(this._primaryCursorVisibleRange){var e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(e<this._contentLeft||e>this._contentLeft+this._contentWidth)this._renderAtTopLeft();else{var t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;t<0||t>this._contentHeight?this._renderAtTopLeft():N.dz?this._renderInsideEditor(this._primaryCursorPosition,t,e,Ye?0:1,this._lineHeight):this._renderInsideEditor(this._primaryCursorPosition,t,e,Ye?0:1,Ye?0:1)}}else this._renderAtTopLeft()}},{key:"_renderInsideEditor",value:function(e,t,n,i,r){this._lastRenderPosition=e;var o=this.textArea,a=this.textAreaCover;k.V.applyFontInfo(o,this._fontInfo),o.setTop(t),o.setLeft(n),o.setWidth(i),o.setHeight(r),a.setTop(0),a.setLeft(0),a.setWidth(0),a.setHeight(0)}},{key:"_renderAtTopLeft",value:function(){this._lastRenderPosition=null;var e=this.textArea,t=this.textAreaCover;if(k.V.applyFontInfo(e,this._fontInfo),e.setTop(0),e.setLeft(0),t.setTop(0),t.setLeft(0),Ye)return e.setWidth(0),e.setHeight(0),t.setWidth(0),void t.setHeight(0);e.setWidth(1),e.setHeight(1),t.setWidth(1),t.setHeight(1);var n=this._context.configuration.options;n.get(46)?t.setClassName("monaco-editor-background textAreaCover "+Be.OUTER_CLASS_NAME):0!==n.get(56).renderType?t.setClassName("monaco-editor-background textAreaCover "+He.CLASS_NAME):t.setClassName("monaco-editor-background textAreaCover")}}]),n}(z);var Ke,qe=n(8518),Ge=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.configuration=t,this.viewModel=n,this.userInputEvents=i,this.commandDelegate=r}return(0,d.Z)(e,[{key:"paste",value:function(e,t,n,i){this.commandDelegate.paste(e,t,n,i)}},{key:"type",value:function(e){this.commandDelegate.type(e)}},{key:"compositionType",value:function(e,t,n,i){this.commandDelegate.compositionType(e,t,n,i)}},{key:"compositionStart",value:function(){this.commandDelegate.startComposition()}},{key:"compositionEnd",value:function(){this.commandDelegate.endComposition()}},{key:"cut",value:function(){this.commandDelegate.cut()}},{key:"setSelection",value:function(e){qe.Ox.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}},{key:"_validateViewColumn",value:function(e){var t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new he.L(e.lineNumber,t):e}},{key:"_hasMulticursorModifier",value:function(e){switch(this.configuration.options.get(66)){case"altKey":return e.altKey;case"ctrlKey":return e.ctrlKey;case"metaKey":return e.metaKey;default:return!1}}},{key:"_hasNonMulticursorModifier",value:function(e){switch(this.configuration.options.get(66)){case"altKey":return e.ctrlKey||e.metaKey;case"ctrlKey":return e.altKey||e.metaKey;case"metaKey":return e.ctrlKey||e.altKey;default:return!1}}},{key:"dispatchMouse",value:function(e){var t=this.configuration.options,n=N.IJ&&t.get(93),i=t.get(16);e.middleButton&&!n?this._columnSelect(e.position,e.mouseColumn,e.inSelectionMode):e.startedOnLineNumbers?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelect(e.position):this._createCursor(e.position,!0):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):e.mouseDownCount>=4?this._selectAll():3===e.mouseDownCount?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position):this._lastCursorLineSelect(e.position):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):2===e.mouseDownCount?this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position):e.inSelectionMode?this._wordSelectDrag(e.position):this._wordSelect(e.position):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey||i?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position):this.moveTo(e.position)}},{key:"_usualArgs",value:function(e){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e}}},{key:"moveTo",value:function(e){qe.Ox.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_moveToSelect",value:function(e){qe.Ox.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_columnSelect",value:function(e,t,n){e=this._validateViewColumn(e),qe.Ox.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:n})}},{key:"_createCursor",value:function(e,t){e=this._validateViewColumn(e),qe.Ox.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}},{key:"_lastCursorMoveToSelect",value:function(e){qe.Ox.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_wordSelect",value:function(e){qe.Ox.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_wordSelectDrag",value:function(e){qe.Ox.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lastCursorWordSelect",value:function(e){qe.Ox.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lineSelect",value:function(e){qe.Ox.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lineSelectDrag",value:function(e){qe.Ox.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lastCursorLineSelect",value:function(e){qe.Ox.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lastCursorLineSelectDrag",value:function(e){qe.Ox.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_selectAll",value:function(){qe.Ox.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}},{key:"_convertViewToModelPosition",value:function(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}},{key:"emitKeyDown",value:function(e){this.userInputEvents.emitKeyDown(e)}},{key:"emitKeyUp",value:function(e){this.userInputEvents.emitKeyUp(e)}},{key:"emitContextMenu",value:function(e){this.userInputEvents.emitContextMenu(e)}},{key:"emitMouseMove",value:function(e){this.userInputEvents.emitMouseMove(e)}},{key:"emitMouseLeave",value:function(e){this.userInputEvents.emitMouseLeave(e)}},{key:"emitMouseUp",value:function(e){this.userInputEvents.emitMouseUp(e)}},{key:"emitMouseDown",value:function(e){this.userInputEvents.emitMouseDown(e)}},{key:"emitMouseDrag",value:function(e){this.userInputEvents.emitMouseDrag(e)}},{key:"emitMouseDrop",value:function(e){this.userInputEvents.emitMouseDrop(e)}},{key:"emitMouseDropCanceled",value:function(){this.userInputEvents.emitMouseDropCanceled()}},{key:"emitMouseWheel",value:function(e){this.userInputEvents.emitMouseWheel(e)}}]),e}(),$e=function(){function e(t){(0,c.Z)(this,e),this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=t}return(0,d.Z)(e,[{key:"emitKeyDown",value:function(e){this.onKeyDown&&this.onKeyDown(e)}},{key:"emitKeyUp",value:function(e){this.onKeyUp&&this.onKeyUp(e)}},{key:"emitContextMenu",value:function(e){this.onContextMenu&&this.onContextMenu(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseMove",value:function(e){this.onMouseMove&&this.onMouseMove(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseLeave",value:function(e){this.onMouseLeave&&this.onMouseLeave(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseDown",value:function(e){this.onMouseDown&&this.onMouseDown(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseUp",value:function(e){this.onMouseUp&&this.onMouseUp(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseDrag",value:function(e){this.onMouseDrag&&this.onMouseDrag(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseDrop",value:function(e){this.onMouseDrop&&this.onMouseDrop(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseDropCanceled",value:function(){this.onMouseDropCanceled&&this.onMouseDropCanceled()}},{key:"emitMouseWheel",value:function(e){this.onMouseWheel&&this.onMouseWheel(e)}},{key:"_convertViewToModelMouseEvent",value:function(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}},{key:"_convertViewToModelMouseTarget",value:function(t){return e.convertViewToModelMouseTarget(t,this._coordinatesConverter)}}],[{key:"convertViewToModelMouseTarget",value:function(e,t){return new Qe(e.element,e.type,e.mouseColumn,e.position?t.convertViewPositionToModelPosition(e.position):null,e.range?t.convertViewRangeToModelRange(e.range):null,e.detail)}}]),e}(),Qe=function(){function e(t,n,i,r,o,a){(0,c.Z)(this,e),this.element=t,this.type=n,this.mouseColumn=i,this.position=r,this.range=o,this.detail=a}return(0,d.Z)(e,[{key:"toString",value:function(){return me.toString(this)}}]),e}(),Xe=n(85500),Je=function(){function e(t){(0,c.Z)(this,e),this._createLine=t,this._set(1,[])}return(0,d.Z)(e,[{key:"flush",value:function(){this._set(1,[])}},{key:"_set",value:function(e,t){this._lines=t,this._rendLineNumberStart=e}},{key:"_get",value:function(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}},{key:"getStartLineNumber",value:function(){return this._rendLineNumberStart}},{key:"getEndLineNumber",value:function(){return this._rendLineNumberStart+this._lines.length-1}},{key:"getCount",value:function(){return this._lines.length}},{key:"getLine",value:function(e){var t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new Error("Illegal value for lineNumber");return this._lines[t]}},{key:"onLinesDeleted",value:function(e,t){if(0===this.getCount())return null;var n=this.getStartLineNumber(),i=this.getEndLineNumber();if(t<n){var r=t-e+1;return this._rendLineNumberStart-=r,null}if(e>i)return null;for(var o=0,a=0,s=n;s<=i;s++){var u=s-this._rendLineNumberStart;e<=s&&s<=t&&(0===a?(o=u,a=1):a++)}if(e<n){var l=0;l=t<n?t-e+1:n-e,this._rendLineNumberStart-=l}return this._lines.splice(o,a)}},{key:"onLinesChanged",value:function(e,t){if(0===this.getCount())return!1;for(var n=this.getStartLineNumber(),i=this.getEndLineNumber(),r=!1,o=e;o<=t;o++)o>=n&&o<=i&&(this._lines[o-this._rendLineNumberStart].onContentChanged(),r=!0);return r}},{key:"onLinesInserted",value:function(e,t){if(0===this.getCount())return null;var n=t-e+1,i=this.getStartLineNumber(),r=this.getEndLineNumber();if(e<=i)return this._rendLineNumberStart+=n,null;if(e>r)return null;if(n+e>r)return this._lines.splice(e-this._rendLineNumberStart,r-e+1);for(var o=[],a=0;a<n;a++)o[a]=this._createLine();var s=e-this._rendLineNumberStart,u=this._lines.slice(0,s),l=this._lines.slice(s,this._lines.length-n),c=this._lines.slice(this._lines.length-n,this._lines.length);return this._lines=u.concat(o).concat(l),c}},{key:"onTokensChanged",value:function(e){if(0===this.getCount())return!1;for(var t=this.getStartLineNumber(),n=this.getEndLineNumber(),i=!1,r=0,o=e.length;r<o;r++){var a=e[r];if(!(a.toLineNumber<t||a.fromLineNumber>n))for(var s=Math.max(t,a.fromLineNumber),u=Math.min(n,a.toLineNumber),l=s;l<=u;l++){var c=l-this._rendLineNumberStart;this._lines[c].onTokensChanged(),i=!0}}return i}}]),e}(),et=function(){function e(t){var n=this;(0,c.Z)(this,e),this._host=t,this.domNode=this._createDomNode(),this._linesCollection=new Je((function(){return n._host.createVisibleLine()}))}return(0,d.Z)(e,[{key:"_createDomNode",value:function(){var e=(0,E.X)(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e}},{key:"onConfigurationChanged",value:function(e){return!!e.hasChanged(127)}},{key:"onFlushed",value:function(e){return this._linesCollection.flush(),!0}},{key:"onLinesChanged",value:function(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.toLineNumber)}},{key:"onLinesDeleted",value:function(e){var t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;n<i;n++){var r=t[n].getDomNode();r&&this.domNode.domNode.removeChild(r)}return!0}},{key:"onLinesInserted",value:function(e){var t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;n<i;n++){var r=t[n].getDomNode();r&&this.domNode.domNode.removeChild(r)}return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onTokensChanged",value:function(e){return this._linesCollection.onTokensChanged(e.ranges)}},{key:"onZonesChanged",value:function(e){return!0}},{key:"getStartLineNumber",value:function(){return this._linesCollection.getStartLineNumber()}},{key:"getEndLineNumber",value:function(){return this._linesCollection.getEndLineNumber()}},{key:"getVisibleLine",value:function(e){return this._linesCollection.getLine(e)}},{key:"renderLines",value:function(e){var t=this._linesCollection._get(),n=new tt(this.domNode.domNode,this._host,e),i={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},r=n.render(i,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(r.rendLineNumberStart,r.lines)}}]),e}(),tt=function(){function e(t,n,i){(0,c.Z)(this,e),this.domNode=t,this.host=n,this.viewportData=i}return(0,d.Z)(e,[{key:"render",value:function(e,t,n,i){var r={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(r.rendLineNumberStart+r.linesLength-1<t||n<r.rendLineNumberStart){r.rendLineNumberStart=t,r.linesLength=n-t+1,r.lines=[];for(var o=t;o<=n;o++)r.lines[o-t]=this.host.createVisibleLine();return this._finishRendering(r,!0,i),r}if(this._renderUntouchedLines(r,Math.max(t-r.rendLineNumberStart,0),Math.min(n-r.rendLineNumberStart,r.linesLength-1),i,t),r.rendLineNumberStart>t){var a=t,s=Math.min(n,r.rendLineNumberStart-1);a<=s&&(this._insertLinesBefore(r,a,s,i,t),r.linesLength+=s-a+1)}else if(r.rendLineNumberStart<t){var u=Math.min(r.linesLength,t-r.rendLineNumberStart);u>0&&(this._removeLinesBefore(r,u),r.linesLength-=u)}if(r.rendLineNumberStart=t,r.rendLineNumberStart+r.linesLength-1<n){var l=r.rendLineNumberStart+r.linesLength,c=n;l<=c&&(this._insertLinesAfter(r,l,c,i,t),r.linesLength+=c-l+1)}else if(r.rendLineNumberStart+r.linesLength-1>n){var d=Math.max(0,n-r.rendLineNumberStart+1),h=r.linesLength-1-d+1;h>0&&(this._removeLinesAfter(r,h),r.linesLength-=h)}return this._finishRendering(r,!1,i),r}},{key:"_renderUntouchedLines",value:function(e,t,n,i,r){for(var o=e.rendLineNumberStart,a=e.lines,s=t;s<=n;s++){var u=o+s;a[s].layoutLine(u,i[u-r])}}},{key:"_insertLinesBefore",value:function(e,t,n,i,r){for(var o=[],a=0,s=t;s<=n;s++)o[a++]=this.host.createVisibleLine();e.lines=o.concat(e.lines)}},{key:"_removeLinesBefore",value:function(e,t){for(var n=0;n<t;n++){var i=e.lines[n].getDomNode();i&&this.domNode.removeChild(i)}e.lines.splice(0,t)}},{key:"_insertLinesAfter",value:function(e,t,n,i,r){for(var o=[],a=0,s=t;s<=n;s++)o[a++]=this.host.createVisibleLine();e.lines=e.lines.concat(o)}},{key:"_removeLinesAfter",value:function(e,t){for(var n=e.linesLength-t,i=0;i<t;i++){var r=e.lines[n+i].getDomNode();r&&this.domNode.removeChild(r)}e.lines.splice(n,t)}},{key:"_finishRenderingNewLines",value:function(t,n,i,r){e._ttPolicy&&(i=e._ttPolicy.createHTML(i));var o=this.domNode.lastChild;n||!o?this.domNode.innerHTML=i:o.insertAdjacentHTML("afterend",i);for(var a=this.domNode.lastChild,s=t.linesLength-1;s>=0;s--){var u=t.lines[s];r[s]&&(u.setDomNode(a),a=a.previousSibling)}}},{key:"_finishRenderingInvalidLines",value:function(t,n,i){var r=document.createElement("div");e._ttPolicy&&(n=e._ttPolicy.createHTML(n)),r.innerHTML=n;for(var o=0;o<t.linesLength;o++){var a=t.lines[o];if(i[o]){var s=r.firstChild,u=a.getDomNode();u.parentNode.replaceChild(s,u),a.setDomNode(s)}}}},{key:"_finishRendering",value:function(t,n,i){var r=e._sb,o=t.linesLength,a=t.lines,s=t.rendLineNumberStart,u=[];r.reset();for(var l=!1,c=0;c<o;c++){var d=a[c];if(u[c]=!1,!d.getDomNode())d.renderLine(c+s,i[c],this.viewportData,r)&&(u[c]=!0,l=!0)}l&&this._finishRenderingNewLines(t,n,r.build(),u),r.reset();for(var h=!1,f=[],p=0;p<o;p++){var g=a[p];if(f[p]=!1,!u[p])g.renderLine(p+s,i[p],this.viewportData,r)&&(f[p]=!0,h=!0)}h&&this._finishRenderingInvalidLines(t,r.build(),f)}}]),e}();tt._ttPolicy=null===(Ke=window.trustedTypes)||void 0===Ke?void 0:Ke.createPolicy("editorViewLayer",{createHTML:function(e){return e}}),tt._sb=(0,Xe.l$)(1e5);var nt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e))._visibleLines=new et((0,o.Z)(i)),i.domNode=i._visibleLines.domNode,i._dynamicOverlays=[],i._isFocused=!1,i.domNode.setClassName("view-overlays"),i}return(0,d.Z)(n,[{key:"shouldRender",value:function(){if((0,a.Z)((0,s.Z)(n.prototype),"shouldRender",this).call(this))return!0;for(var e=0,t=this._dynamicOverlays.length;e<t;e++){if(this._dynamicOverlays[e].shouldRender())return!0}return!1}},{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this);for(var e=0,t=this._dynamicOverlays.length;e<t;e++){this._dynamicOverlays[e].dispose()}this._dynamicOverlays=[]}},{key:"getDomNode",value:function(){return this.domNode}},{key:"createVisibleLine",value:function(){return new it(this._context.configuration,this._dynamicOverlays)}},{key:"addDynamicOverlay",value:function(e){this._dynamicOverlays.push(e)}},{key:"onConfigurationChanged",value:function(e){this._visibleLines.onConfigurationChanged(e);for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++){this._visibleLines.getVisibleLine(i).onConfigurationChanged(e)}return!0}},{key:"onFlushed",value:function(e){return this._visibleLines.onFlushed(e)}},{key:"onFocusChanged",value:function(e){return this._isFocused=e.isFocused,!0}},{key:"onLinesChanged",value:function(e){return this._visibleLines.onLinesChanged(e)}},{key:"onLinesDeleted",value:function(e){return this._visibleLines.onLinesDeleted(e)}},{key:"onLinesInserted",value:function(e){return this._visibleLines.onLinesInserted(e)}},{key:"onScrollChanged",value:function(e){return this._visibleLines.onScrollChanged(e)||!0}},{key:"onTokensChanged",value:function(e){return this._visibleLines.onTokensChanged(e)}},{key:"onZonesChanged",value:function(e){return this._visibleLines.onZonesChanged(e)}},{key:"prepareRender",value:function(e){for(var t=this._dynamicOverlays.filter((function(e){return e.shouldRender()})),n=0,i=t.length;n<i;n++){var r=t[n];r.prepareRender(e),r.onDidRender()}}},{key:"render",value:function(e){this._viewOverlaysRender(e),this.domNode.toggleClassName("focused",this._isFocused)}},{key:"_viewOverlaysRender",value:function(e){this._visibleLines.renderLines(e.viewportData)}}]),n}(z),it=function(){function e(t,n){(0,c.Z)(this,e),this._configuration=t,this._lineHeight=this._configuration.options.get(55),this._dynamicOverlays=n,this._domNode=null,this._renderedContent=null}return(0,d.Z)(e,[{key:"getDomNode",value:function(){return this._domNode?this._domNode.domNode:null}},{key:"setDomNode",value:function(e){this._domNode=(0,E.X)(e)}},{key:"onContentChanged",value:function(){}},{key:"onTokensChanged",value:function(){}},{key:"onConfigurationChanged",value:function(e){this._lineHeight=this._configuration.options.get(55)}},{key:"renderLine",value:function(e,t,n,i){for(var r="",o=0,a=this._dynamicOverlays.length;o<a;o++){r+=this._dynamicOverlays[o].render(n.startLineNumber,e)}return this._renderedContent!==r&&(this._renderedContent=r,i.appendASCIIString('<div style="position:absolute;top:'),i.appendASCIIString(String(t)),i.appendASCIIString("px;width:100%;height:"),i.appendASCIIString(String(this._lineHeight)),i.appendASCIIString('px;">'),i.appendASCIIString(r),i.appendASCIIString("</div>"),!0)}},{key:"layoutLine",value:function(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))}}]),e}(),rt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options.get(127);return i._contentWidth=r.contentWidth,i.domNode.setHeight(0),i}return(0,d.Z)(n,[{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options.get(127);return this._contentWidth=t.contentWidth,(0,a.Z)((0,s.Z)(n.prototype),"onConfigurationChanged",this).call(this,e)||!0}},{key:"onScrollChanged",value:function(e){return(0,a.Z)((0,s.Z)(n.prototype),"onScrollChanged",this).call(this,e)||e.scrollWidthChanged}},{key:"_viewOverlaysRender",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"_viewOverlaysRender",this).call(this,e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}]),n}(nt),ot=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options,o=r.get(127);return i._contentLeft=o.contentLeft,i.domNode.setClassName("margin-view-overlays"),i.domNode.setWidth(1),k.V.applyFontInfo(i.domNode,r.get(40)),i}return(0,d.Z)(n,[{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;k.V.applyFontInfo(this.domNode,t.get(40));var i=t.get(127);return this._contentLeft=i.contentLeft,(0,a.Z)((0,s.Z)(n.prototype),"onConfigurationChanged",this).call(this,e)||!0}},{key:"onScrollChanged",value:function(e){return(0,a.Z)((0,s.Z)(n.prototype),"onScrollChanged",this).call(this,e)||e.scrollHeightChanged}},{key:"_viewOverlaysRender",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"_viewOverlaysRender",this).call(this,e);var t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}]),n}(nt),at=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.top=t,this.left=n})),st=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e))._viewDomNode=i,r._widgets={},r.domNode=(0,E.X)(document.createElement("div")),W.write(r.domNode,1),r.domNode.setClassName("contentWidgets"),r.domNode.setPosition("absolute"),r.domNode.setTop(0),r.overflowingContentWidgetsDomNode=(0,E.X)(document.createElement("div")),W.write(r.overflowingContentWidgetsDomNode,2),r.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets"),r}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._widgets={}}},{key:"onConfigurationChanged",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onConfigurationChanged(e)}return!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLineMappingChanged",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onLineMappingChanged(e)}return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return!0}},{key:"onZonesChanged",value:function(e){return!0}},{key:"addWidget",value:function(e){var t=new ut(this._context,this._viewDomNode,e);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()}},{key:"setWidgetPosition",value:function(e,t,n){this._widgets[e.getId()].setPosition(t,n),this.setShouldRender()}},{key:"removeWidget",value:function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t];delete this._widgets[t];var i=n.domNode.domNode;i.parentNode.removeChild(i),i.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}},{key:"shouldSuppressMouseDownOnWidget",value:function(e){return!!this._widgets.hasOwnProperty(e)&&this._widgets[e].suppressMouseDown}},{key:"onBeforeRender",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onBeforeRender(e)}}},{key:"prepareRender",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].prepareRender(e)}}},{key:"render",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].render(e)}}}]),n}(z),ut=function(){function e(t,n,i){(0,c.Z)(this,e),this._context=t,this._viewDomNode=n,this._actual=i,this.domNode=(0,E.X)(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;var r=this._context.configuration.options,o=r.get(127);this._fixedOverflowWidgets=r.get(34),this._contentWidth=o.contentWidth,this._contentLeft=o.contentLeft,this._lineHeight=r.get(55),this._range=null,this._viewRange=null,this._preference=[],this._cachedDomNodeClientWidth=-1,this._cachedDomNodeClientHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}return(0,d.Z)(e,[{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;if(this._lineHeight=t.get(55),e.hasChanged(127)){var n=t.get(127);this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,this._maxWidth=this._getMaxWidth()}}},{key:"onLineMappingChanged",value:function(e){this._setPosition(this._range)}},{key:"_setPosition",value:function(e){if(this._range=e,this._viewRange=null,this._range){var t=this._context.model.validateModelRange(this._range);(this._context.model.coordinatesConverter.modelPositionIsVisible(t.getStartPosition())||this._context.model.coordinatesConverter.modelPositionIsVisible(t.getEndPosition()))&&(this._viewRange=this._context.model.coordinatesConverter.convertModelRangeToViewRange(t))}}},{key:"_getMaxWidth",value:function(){return this.allowEditorOverflow?window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth:this._contentWidth}},{key:"setPosition",value:function(e,t){this._setPosition(e),this._preference=t,this._cachedDomNodeClientWidth=-1,this._cachedDomNodeClientHeight=-1}},{key:"_layoutBoxInViewport",value:function(e,t,n,i,r){var o=e.top,a=o,s=t.top+this._lineHeight,u=o-i,l=a>=i,c=s,d=r.viewportHeight-s>=i,h=e.left,f=t.left;return h+n>r.scrollLeft+r.viewportWidth&&(h=r.scrollLeft+r.viewportWidth-n),f+n>r.scrollLeft+r.viewportWidth&&(f=r.scrollLeft+r.viewportWidth-n),h<r.scrollLeft&&(h=r.scrollLeft),f<r.scrollLeft&&(f=r.scrollLeft),{fitsAbove:l,aboveTop:u,aboveLeft:h,fitsBelow:d,belowTop:c,belowLeft:f}}},{key:"_layoutHorizontalSegmentInPage",value:function(e,t,n,i){var r=Math.max(0,t.left-i),o=Math.min(t.left+t.width+i,e.width),a=t.left+n-_.StandardWindow.scrollX;if(a+i>o){var s=a-(o-i);a-=s,n-=s}if(a<r){var u=a-r;a-=u,n-=u}return[n,a]}},{key:"_layoutBoxInPage",value:function(e,t,n,r,o){var a=e.top-r,s=t.top+this._lineHeight,u=_.getDomNodePagePosition(this._viewDomNode.domNode),l=u.top+a-_.StandardWindow.scrollY,c=u.top+s-_.StandardWindow.scrollY,d=_.getClientArea(document.body),h=this._layoutHorizontalSegmentInPage(d,u,e.left-o.scrollLeft+this._contentLeft,n),f=(0,i.Z)(h,2),p=f[0],g=f[1],v=this._layoutHorizontalSegmentInPage(d,u,t.left-o.scrollLeft+this._contentLeft,n),m=(0,i.Z)(v,2),y=m[0],b=m[1],w=l>=22,C=c+r<=d.height-22;return this._fixedOverflowWidgets?{fitsAbove:w,aboveTop:Math.max(l,22),aboveLeft:g,fitsBelow:C,belowTop:c,belowLeft:b}:{fitsAbove:w,aboveTop:a,aboveLeft:p,fitsBelow:C,belowTop:s,belowLeft:y}}},{key:"_prepareRenderWidgetAtExactPositionOverflowing",value:function(e){return new at(e.top,e.left+this._contentLeft)}},{key:"_getTopAndBottomLeft",value:function(e){if(!this._viewRange)return[null,null];var t=e.linesVisibleRangesForRange(this._viewRange,!1);if(!t||0===t.length)return[null,null];var n,i=t[0],o=t[0],a=(0,r.Z)(t);try{for(a.s();!(n=a.n()).done;){var s=n.value;s.lineNumber<i.lineNumber&&(i=s),s.lineNumber>o.lineNumber&&(o=s)}}catch(y){a.e(y)}finally{a.f()}var u,l=1073741824,c=(0,r.Z)(i.ranges);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.left<l&&(l=d.left)}}catch(y){c.e(y)}finally{c.f()}var h,f=1073741824,p=(0,r.Z)(o.ranges);try{for(p.s();!(h=p.n()).done;){var g=h.value;g.left<f&&(f=g.left)}}catch(y){p.e(y)}finally{p.f()}var v=e.getVerticalOffsetForLineNumber(i.lineNumber)-e.scrollTop,m=new at(v,l),_=e.getVerticalOffsetForLineNumber(o.lineNumber)-e.scrollTop;return[m,new at(_,f)]}},{key:"_prepareRenderWidget",value:function(e){var t,n=this._getTopAndBottomLeft(e),o=(0,i.Z)(n,2),a=o[0],s=o[1];if(!a||!s)return null;if(-1===this._cachedDomNodeClientWidth||-1===this._cachedDomNodeClientHeight){var u=null;if("function"===typeof this._actual.beforeRender&&(u=lt(this._actual.beforeRender,this._actual)),u)this._cachedDomNodeClientWidth=u.width,this._cachedDomNodeClientHeight=u.height;else{var l=this.domNode.domNode;this._cachedDomNodeClientWidth=l.clientWidth,this._cachedDomNodeClientHeight=l.clientHeight}}if(t=this.allowEditorOverflow?this._layoutBoxInPage(a,s,this._cachedDomNodeClientWidth,this._cachedDomNodeClientHeight,e):this._layoutBoxInViewport(a,s,this._cachedDomNodeClientWidth,this._cachedDomNodeClientHeight,e),this._preference)for(var c=1;c<=2;c++){var d,h=(0,r.Z)(this._preference);try{for(h.s();!(d=h.n()).done;){var f=d.value;if(1===f){if(!t)return null;if(2===c||t.fitsAbove)return{coordinate:new at(t.aboveTop,t.aboveLeft),position:1}}else{if(2!==f)return this.allowEditorOverflow?{coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(a),position:0}:{coordinate:a,position:0};if(!t)return null;if(2===c||t.fitsBelow)return{coordinate:new at(t.belowTop,t.belowLeft),position:2}}}}catch(p){h.e(p)}finally{h.f()}}return null}},{key:"onBeforeRender",value:function(e){this._viewRange&&this._preference&&(this._viewRange.endLineNumber<e.startLineNumber||this._viewRange.startLineNumber>e.endLineNumber||this.domNode.setMaxWidth(this._maxWidth))}},{key:"prepareRender",value:function(e){this._renderData=this._prepareRenderWidget(e)}},{key:"render",value:function(e){if(!this._renderData)return this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden")),void("function"===typeof this._actual.afterRender&&lt(this._actual.afterRender,this._actual,null));this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),"function"===typeof this._actual.afterRender&&lt(this._actual.afterRender,this._actual,this._renderData.position)}}]),e}();function lt(e,t){try{for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return e.call.apply(e,[t].concat(i))}catch(Ke){return null}}var ct=n(49396),dt=!0,ht=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e;var r=i._context.configuration.options,a=r.get(127);return i._lineHeight=r.get(55),i._renderLineHighlight=r.get(82),i._renderLineHighlightOnlyWhenFocus=r.get(83),i._contentLeft=a.contentLeft,i._contentWidth=a.contentWidth,i._selectionIsEmpty=!0,i._focused=!1,i._cursorLineNumbers=[1],i._selections=[new L.Y(1,1,1,1)],i._renderData=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_readFromSelections",value:function(){var e=!1,t=dt?this._selections.slice(0,1):this._selections,n=t.map((function(e){return e.positionLineNumber}));n.sort((function(e,t){return e-t})),ct.fS(this._cursorLineNumbers,n)||(this._cursorLineNumbers=n,e=!0);var i=t.every((function(e){return e.isEmpty()}));return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,e=!0),e}},{key:"onThemeChanged",value:function(e){return this._readFromSelections()}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._lineHeight=t.get(55),this._renderLineHighlight=t.get(82),this._renderLineHighlightOnlyWhenFocus=t.get(83),this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,!0}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections,this._readFromSelections()}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollWidthChanged||e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"onFocusChanged",value:function(e){return!!this._renderLineHighlightOnlyWhenFocus&&(this._focused=e.isFocused,!0)}},{key:"prepareRender",value:function(e){if(this._shouldRenderThis()){for(var t=this._renderOne(e),n=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,r=this._cursorLineNumbers.length,o=0,a=[],s=n;s<=i;s++){for(var u=s-n;o<r&&this._cursorLineNumbers[o]<s;)o++;o<r&&this._cursorLineNumbers[o]===s?a[u]=t:a[u]=""}this._renderData=a}else this._renderData=null}},{key:"render",value:function(e,t){if(!this._renderData)return"";var n=t-e;return n>=this._renderData.length?"":this._renderData[n]}}]),n}(Ze),ft=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n,[{key:"_renderOne",value:function(e){var t="current-line"+(this._shouldRenderOther()?" current-line-both":"");return'<div class="'.concat(t,'" style="width:').concat(Math.max(e.scrollWidth,this._contentWidth),"px; height:").concat(this._lineHeight,'px;"></div>')}},{key:"_shouldRenderThis",value:function(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}},{key:"_shouldRenderOther",value:function(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}]),n}(ht),pt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n,[{key:"_renderOne",value:function(e){var t="current-line"+(this._shouldRenderMargin()?" current-line-margin":"")+(this._shouldRenderOther()?" current-line-margin-both":"");return'<div class="'.concat(t,'" style="width:').concat(this._contentLeft,"px; height:").concat(this._lineHeight,'px;"></div>')}},{key:"_shouldRenderMargin",value:function(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}},{key:"_shouldRenderThis",value:function(){return!0}},{key:"_shouldRenderOther",value:function(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}]),n}(ht);(0,je.Ic)((function(e,t){dt=!1;var n=e.getColor(Fe.Kh);if(n&&(t.addRule(".monaco-editor .view-overlays .current-line { background-color: ".concat(n,"; }")),t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { background-color: ".concat(n,"; border: none; }"))),!n||n.isTransparent()||e.defines(Fe.Mm)){var i=e.getColor(Fe.Mm);i&&(dt=!0,t.addRule(".monaco-editor .view-overlays .current-line { border: 2px solid ".concat(i,"; }")),t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ".concat(i,"; }")),"hc"===e.type&&(t.addRule(".monaco-editor .view-overlays .current-line { border-width: 1px; }"),t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")))}}));var gt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e;var r=i._context.configuration.options;return i._lineHeight=r.get(55),i._typicalHalfwidthCharacterWidth=r.get(40).typicalHalfwidthCharacterWidth,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;return this._lineHeight=t.get(55),this._typicalHalfwidthCharacterWidth=t.get(40).typicalHalfwidthCharacterWidth,!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged||e.scrollWidthChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"prepareRender",value:function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;r<o;r++){var a=t[r];a.options.className&&(n[i++]=a)}n=n.sort((function(e,t){if(e.options.zIndex<t.options.zIndex)return-1;if(e.options.zIndex>t.options.zIndex)return 1;var n=e.options.className,i=t.options.className;return n<i?-1:n>i?1:fe.e.compareRangesUsingStarts(e.range,t.range)}));for(var s=e.visibleRange.startLineNumber,u=e.visibleRange.endLineNumber,l=[],c=s;c<=u;c++){l[c-s]=""}this._renderWholeLineDecorations(e,n,l),this._renderNormalDecorations(e,n,l),this._renderResult=l}},{key:"_renderWholeLineDecorations",value:function(e,t,n){for(var i=String(this._lineHeight),r=e.visibleRange.startLineNumber,o=e.visibleRange.endLineNumber,a=0,s=t.length;a<s;a++){var u=t[a];if(u.options.isWholeLine)for(var l='<div class="cdr '+u.options.className+'" style="left:0;width:100%;height:'+i+'px;"></div>',c=Math.max(u.range.startLineNumber,r),d=Math.min(u.range.endLineNumber,o),h=c;h<=d;h++){n[h-r]+=l}}}},{key:"_renderNormalDecorations",value:function(e,t,n){for(var i=String(this._lineHeight),r=e.visibleRange.startLineNumber,o=null,a=!1,s=null,u=0,l=t.length;u<l;u++){var c=t[u];if(!c.options.isWholeLine){var d=c.options.className,h=Boolean(c.options.showIfCollapsed),f=c.range;h&&1===f.endColumn&&f.endLineNumber!==f.startLineNumber&&(f=new fe.e(f.startLineNumber,f.startColumn,f.endLineNumber-1,this._context.model.getLineMaxColumn(f.endLineNumber-1))),o===d&&a===h&&fe.e.areIntersectingOrTouching(s,f)?s=fe.e.plusRange(s,f):(null!==o&&this._renderNormalDecoration(e,s,o,a,i,r,n),o=d,a=h,s=f)}}null!==o&&this._renderNormalDecoration(e,s,o,a,i,r,n)}},{key:"_renderNormalDecoration",value:function(e,t,n,i,r,o,a){var s=e.linesVisibleRangesForRange(t,"findMatch"===n);if(s)for(var u=0,l=s.length;u<l;u++){var c=s[u];if(!c.outsideRenderedLine){var d=c.lineNumber-o;if(i&&1===c.ranges.length){var h=c.ranges[0];0===h.width&&(c.ranges[0]=new U(h.left,this._typicalHalfwidthCharacterWidth))}for(var f=0,p=c.ranges.length;f<p;f++){var g=c.ranges[f],v='<div class="cdr '+n+'" style="left:'+String(g.left)+"px;width:"+String(g.width)+"px;height:"+r+'px;"></div>';a[d]+=v}}}}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(Ze),vt=n(61727),mt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o){var a;(0,c.Z)(this,n);var s=(a=t.call(this,e))._context.configuration.options,u=s.get(89),l=s.get(63),d=s.get(32),h=s.get(92),f={listenOnDomNode:r.domNode,className:"editor-scrollable "+(0,je.m6)(e.theme.type),useShadows:!1,lazyRender:!0,vertical:u.vertical,horizontal:u.horizontal,verticalHasArrows:u.verticalHasArrows,horizontalHasArrows:u.horizontalHasArrows,verticalScrollbarSize:u.verticalScrollbarSize,verticalSliderSize:u.verticalSliderSize,horizontalScrollbarSize:u.horizontalScrollbarSize,horizontalSliderSize:u.horizontalSliderSize,handleMouseWheel:u.handleMouseWheel,alwaysConsumeMouseWheel:u.alwaysConsumeMouseWheel,arrowSize:u.arrowSize,mouseWheelScrollSensitivity:l,fastScrollSensitivity:d,scrollPredominantAxis:h,scrollByPage:u.scrollByPage};a.scrollbar=a._register(new vt.$Z(i.domNode,f,a._context.viewLayout.getScrollable())),W.write(a.scrollbar.getDomNode(),5),a.scrollbarDomNode=(0,E.X)(a.scrollbar.getDomNode()),a.scrollbarDomNode.setPosition("absolute"),a._setLayout();var p=function(e,t,n){var i={};if(t){var r=e.scrollTop;r&&(i.scrollTop=a._context.viewLayout.getCurrentScrollTop()+r,e.scrollTop=0)}if(n){var o=e.scrollLeft;o&&(i.scrollLeft=a._context.viewLayout.getCurrentScrollLeft()+o,e.scrollLeft=0)}a._context.model.setScrollPosition(i,1)};return a._register(_.addDisposableListener(r.domNode,"scroll",(function(e){return p(r.domNode,!0,!0)}))),a._register(_.addDisposableListener(i.domNode,"scroll",(function(e){return p(i.domNode,!0,!1)}))),a._register(_.addDisposableListener(o.domNode,"scroll",(function(e){return p(o.domNode,!0,!1)}))),a._register(_.addDisposableListener(a.scrollbarDomNode.domNode,"scroll",(function(e){return p(a.scrollbarDomNode.domNode,!0,!1)}))),a}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_setLayout",value:function(){var e=this._context.configuration.options,t=e.get(127);this.scrollbarDomNode.setLeft(t.contentLeft),"right"===e.get(61).side?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}},{key:"getOverviewRulerLayoutInfo",value:function(){return this.scrollbar.getOverviewRulerLayoutInfo()}},{key:"getDomNode",value:function(){return this.scrollbarDomNode}},{key:"delegateVerticalScrollbarMouseDown",value:function(e){this.scrollbar.delegateVerticalScrollbarMouseDown(e)}},{key:"onConfigurationChanged",value:function(e){if(e.hasChanged(89)||e.hasChanged(63)||e.hasChanged(32)){var t=this._context.configuration.options,n=t.get(89),i=t.get(63),r=t.get(32),o=t.get(92),a={handleMouseWheel:n.handleMouseWheel,mouseWheelScrollSensitivity:i,fastScrollSensitivity:r,scrollPredominantAxis:o};this.scrollbar.updateOptions(a)}return e.hasChanged(127)&&this._setLayout(),!0}},{key:"onScrollChanged",value:function(e){return!0}},{key:"onThemeChanged",value:function(e){return this.scrollbar.updateClassName("editor-scrollable "+(0,je.m6)(this._context.theme.type)),!0}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this.scrollbar.renderNow()}}]),n}(z),_t=(0,d.Z)((function e(t,n,i){(0,c.Z)(this,e),this.startLineNumber=+t,this.endLineNumber=+n,this.className=String(i)})),yt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n,[{key:"_render",value:function(e,t,n){for(var i=[],r=e;r<=t;r++){i[r-e]=[]}if(0===n.length)return i;n.sort((function(e,t){return e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className<t.className?-1:1}));for(var o=null,a=0,s=0,u=n.length;s<u;s++){var l=n[s],c=l.className,d=Math.max(l.startLineNumber,e)-e,h=Math.min(l.endLineNumber,t)-e;o===c?(d=Math.max(a+1,d),a=Math.max(a,h)):(o=c,a=h);for(var f=d;f<=a;f++)i[f].push(o)}return i}}]),n}(Ze),bt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e;var r=i._context.configuration.options,a=r.get(127);return i._lineHeight=r.get(55),i._glyphMargin=r.get(46),i._glyphMarginLeft=a.glyphMarginLeft,i._glyphMarginWidth=a.glyphMarginWidth,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._lineHeight=t.get(55),this._glyphMargin=t.get(46),this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getDecorations",value:function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;r<o;r++){var a=t[r],s=a.options.glyphMarginClassName;s&&(n[i++]=new _t(a.range.startLineNumber,a.range.endLineNumber,s))}return n}},{key:"prepareRender",value:function(e){if(this._glyphMargin){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),r=this._lineHeight.toString(),o='" style="left:'+this._glyphMarginLeft.toString()+"px;width:"+this._glyphMarginWidth.toString()+"px;height:"+r+'px;"></div>',a=[],s=t;s<=n;s++){var u=s-t,l=i[u];0===l.length?a[u]="":a[u]='<div class="cgmr codicon '+l.join(" ")+o}this._renderResult=a}else this._renderResult=null}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(yt),wt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e,i._primaryLineNumber=0;var r=i._context.configuration.options,a=r.get(128),s=r.get(40);return i._lineHeight=r.get(55),i._spaceWidth=s.spaceWidth,i._enabled=r.get(80),i._activeIndentEnabled=r.get(49),i._maxIndentLeft=-1===a.wrappingColumn?-1:a.wrappingColumn*s.typicalHalfwidthCharacterWidth,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(128),i=t.get(40);return this._lineHeight=t.get(55),this._spaceWidth=i.spaceWidth,this._enabled=t.get(80),this._activeIndentEnabled=t.get(49),this._maxIndentLeft=-1===n.wrappingColumn?-1:n.wrappingColumn*i.typicalHalfwidthCharacterWidth,!0}},{key:"onCursorStateChanged",value:function(e){var t=e.selections[0],n=t.isEmpty()?t.positionLineNumber:0;return this._primaryLineNumber!==n&&(this._primaryLineNumber=n,!0)}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"onLanguageConfigurationChanged",value:function(e){return!0}},{key:"prepareRender",value:function(e){if(this._enabled){var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._context.model.getTextModelOptions().indentSize*this._spaceWidth,r=e.scrollWidth,o=this._lineHeight,a=this._context.model.getLinesIndentGuides(t,n),s=0,u=0,l=0;if(this._activeIndentEnabled&&this._primaryLineNumber){var c=this._context.model.getActiveIndentGuide(this._primaryLineNumber,t,n);s=c.startLineNumber,u=c.endLineNumber,l=c.indent}for(var d=[],h=t;h<=n;h++){var f=s<=h&&h<=u,p=h-t,g=a[p],v="";if(g>=1)for(var m=e.visibleRangeForPosition(new he.L(h,1)),_=m?m.left:0,y=1;y<=g;y++){if(v+='<div class="'.concat(f&&y===l?"cigra":"cigr",'" style="left:').concat(_,"px;height:").concat(o,"px;width:").concat(i,'px"></div>'),(_+=i)>r||this._maxIndentLeft>0&&_>this._maxIndentLeft)break}d[p]=v}this._renderResult=d}else this._renderResult=null}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(Ze);(0,je.Ic)((function(e,t){var n=e.getColor(Fe.tR);n&&t.addRule(".monaco-editor .lines-content .cigr { box-shadow: 1px 0 0 0 ".concat(n," inset; }"));var i=e.getColor(Fe.Ym)||n;i&&t.addRule(".monaco-editor .lines-content .cigra { box-shadow: 1px 0 0 0 ".concat(i," inset; }"))}));var Ct=function(){function e(){(0,c.Z)(this,e),this._currentVisibleRange=new fe.e(1,1,1,1)}return(0,d.Z)(e,[{key:"getCurrentVisibleRange",value:function(){return this._currentVisibleRange}},{key:"setCurrentVisibleRange",value:function(e){this._currentVisibleRange=e}}]),e}(),kt=(0,d.Z)((function e(t,n,i,r,o,a){(0,c.Z)(this,e),this.lineNumber=t,this.startColumn=n,this.endColumn=i,this.startScrollTop=r,this.stopScrollTop=o,this.scrollType=a,this.type="range",this.minLineNumber=t,this.maxLineNumber=t})),St=(0,d.Z)((function e(t,n,i,r){(0,c.Z)(this,e),this.selections=t,this.startScrollTop=n,this.stopScrollTop=i,this.scrollType=r,this.type="selections";for(var o=t[0].startLineNumber,a=t[0].endLineNumber,s=1,u=t.length;s<u;s++){var l=t[s];o=Math.min(o,l.startLineNumber),a=Math.max(a,l.endLineNumber)}this.minLineNumber=o,this.maxLineNumber=a})),xt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;(0,c.Z)(this,n),(r=t.call(this,e))._linesContent=i,r._textRangeRestingSpot=document.createElement("div"),r._visibleLines=new et((0,o.Z)(r)),r.domNode=r._visibleLines.domNode;var a=r._context.configuration,s=r._context.configuration.options,u=s.get(40),l=s.get(128);return r._lineHeight=s.get(55),r._typicalHalfwidthCharacterWidth=u.typicalHalfwidthCharacterWidth,r._isViewportWrapping=l.isViewportWrapping,r._revealHorizontalRightPadding=s.get(86),r._cursorSurroundingLines=s.get(23),r._cursorSurroundingLinesStyle=s.get(24),r._canUseLayerHinting=!s.get(26),r._viewLineOptions=new re(a,r._context.theme.type),W.write(r.domNode,7),r.domNode.setClassName("view-lines ".concat(We.S)),k.V.applyFontInfo(r.domNode,u),r._maxLineWidth=0,r._asyncUpdateLineWidths=new T.pY((function(){r._updateLineWidthsSlow()}),200),r._asyncCheckMonospaceFontAssumptions=new T.pY((function(){r._checkMonospaceFontAssumptions()}),2e3),r._lastRenderedData=new Ct,r._horizontalRevealRequest=null,r}return(0,d.Z)(n,[{key:"dispose",value:function(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"getDomNode",value:function(){return this.domNode}},{key:"createVisibleLine",value:function(){return new oe(this._viewLineOptions)}},{key:"onConfigurationChanged",value:function(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(128)&&(this._maxLineWidth=0);var t=this._context.configuration.options,n=t.get(40),i=t.get(128);return this._lineHeight=t.get(55),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._isViewportWrapping=i.isViewportWrapping,this._revealHorizontalRightPadding=t.get(86),this._cursorSurroundingLines=t.get(23),this._cursorSurroundingLinesStyle=t.get(24),this._canUseLayerHinting=!t.get(26),k.V.applyFontInfo(this.domNode,n),this._onOptionsMaybeChanged(),e.hasChanged(127)&&(this._maxLineWidth=0),!0}},{key:"_onOptionsMaybeChanged",value:function(){var e=this._context.configuration,t=new re(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;for(var n=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber(),r=n;r<=i;r++){this._visibleLines.getVisibleLine(r).onOptionsChanged(this._viewLineOptions)}return!0}return!1}},{key:"onCursorStateChanged",value:function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=!1,r=t;r<=n;r++)i=this._visibleLines.getVisibleLine(r).onSelectionChanged()||i;return i}},{key:"onDecorationsChanged",value:function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++)this._visibleLines.getVisibleLine(i).onDecorationsChanged();return!0}},{key:"onFlushed",value:function(e){var t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}},{key:"onLinesChanged",value:function(e){return this._visibleLines.onLinesChanged(e)}},{key:"onLinesDeleted",value:function(e){return this._visibleLines.onLinesDeleted(e)}},{key:"onLinesInserted",value:function(e){return this._visibleLines.onLinesInserted(e)}},{key:"onRevealRangeRequest",value:function(e){var t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.range,e.selections,e.verticalType);if(-1===t)return!1;var n=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?n={scrollTop:n.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new kt(e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),n.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new St(e.selections,this._context.viewLayout.getCurrentScrollTop(),n.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;var i=Math.abs(this._context.viewLayout.getCurrentScrollTop()-n.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.model.setScrollPosition(n,i),!0}},{key:"onScrollChanged",value:function(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){var t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),n=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>n)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}},{key:"onTokensChanged",value:function(e){return this._visibleLines.onTokensChanged(e)}},{key:"onZonesChanged",value:function(e){return this._context.model.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}},{key:"onThemeChanged",value:function(e){return this._onOptionsMaybeChanged()}},{key:"getPositionFromDOMInfo",value:function(e,t){var n=this._getViewLineDomNode(e);if(null===n)return null;var i=this._getLineNumberFor(n);if(-1===i)return null;if(i<1||i>this._context.model.getLineCount())return null;if(1===this._context.model.getLineMaxColumn(i))return new he.L(i,1);var r=this._visibleLines.getStartLineNumber(),o=this._visibleLines.getEndLineNumber();if(i<r||i>o)return null;var a=this._visibleLines.getVisibleLine(i).getColumnOfNodeOffset(i,e,t),s=this._context.model.getLineMinColumn(i);return a<s&&(a=s),new he.L(i,a)}},{key:"_getViewLineDomNode",value:function(e){for(;e&&1===e.nodeType;){if(e.className===oe.CLASS_NAME)return e;e=e.parentElement}return null}},{key:"_getLineNumberFor",value:function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++){if(e===this._visibleLines.getVisibleLine(i).getDomNode())return i}return-1}},{key:"getLineWidth",value:function(e){var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();return e<t||e>n?-1:this._visibleLines.getVisibleLine(e).getWidth()}},{key:"linesVisibleRangesForRange",value:function(e,t){if(this.shouldRender())return null;var n=e.endLineNumber,i=fe.e.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!i)return null;var r=[],o=0,a=new ie(this.domNode.domNode,this._textRangeRestingSpot),s=0;t&&(s=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new he.L(i.startLineNumber,1)).lineNumber);for(var u=this._visibleLines.getStartLineNumber(),l=this._visibleLines.getEndLineNumber(),c=i.startLineNumber;c<=i.endLineNumber;c++)if(!(c<u||c>l)){var d=c===i.startLineNumber?i.startColumn:1,h=c===i.endLineNumber?i.endColumn:this._context.model.getLineMaxColumn(c),f=this._visibleLines.getVisibleLine(c).getVisibleRangesForRange(d,h,a);if(f){if(t&&c<n)s!==(s=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new he.L(c+1,1)).lineNumber)&&(f.ranges[f.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth);r[o++]=new Y(f.outsideRenderedLine,c,f.ranges)}}return 0===o?null:r}},{key:"_visibleRangesForLineRange",value:function(e,t,n){return this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber()?null:this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(t,n,new ie(this.domNode.domNode,this._textRangeRestingSpot))}},{key:"visibleRangeForPosition",value:function(e){var t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new K(t.outsideRenderedLine,t.ranges[0].left):null}},{key:"updateLineWidths",value:function(){this._updateLineWidths(!1)}},{key:"_updateLineWidthsFast",value:function(){return this._updateLineWidths(!0)}},{key:"_updateLineWidthsSlow",value:function(){this._updateLineWidths(!1)}},{key:"_updateLineWidths",value:function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=1,r=!0,o=t;o<=n;o++){var a=this._visibleLines.getVisibleLine(o);!e||a.getWidthIsFast()?i=Math.max(i,a.getWidth()):r=!1}return r&&1===t&&n===this._context.model.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(i),r}},{key:"_checkMonospaceFontAssumptions",value:function(){for(var e=-1,t=-1,n=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber(),r=n;r<=i;r++){var o=this._visibleLines.getVisibleLine(r);if(o.needsMonospaceFontCheck()){var a=o.getWidth();a>t&&(t=a,e=r)}}if(-1!==e&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(var s=n;s<=i;s++){this._visibleLines.getVisibleLine(s).onMonospaceAssumptionsInvalidated()}}},{key:"prepareRender",value:function(){throw new Error("Not supported")}},{key:"render",value:function(){throw new Error("Not supported")}},{key:"renderText",value:function(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){var t=this._horizontalRevealRequest;if(e.startLineNumber<=t.minLineNumber&&t.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();var n=this._computeScrollLeftToReveal(t);n&&(this._isViewportWrapping||this._ensureMaxLineWidth(n.maxHorizontalOffset),this._context.model.setScrollPosition({scrollLeft:n.scrollLeft},t.scrollType))}}if(this._updateLineWidthsFast()||this._asyncUpdateLineWidths.schedule(),N.IJ&&!this._asyncCheckMonospaceFontAssumptions.isScheduled())for(var i=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber(),o=i;o<=r;o++){if(this._visibleLines.getVisibleLine(o).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");var a=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-a),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}},{key:"_ensureMaxLineWidth",value:function(e){var t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.model.setMaxLineWidth(this._maxLineWidth))}},{key:"_computeScrollTopToRevealRange",value:function(e,t,n,i,r){var o,a,s,u,l=e.top,c=e.height,d=l+c;if(i&&i.length>0){for(var h=i[0].startLineNumber,f=i[0].endLineNumber,p=1,g=i.length;p<g;p++){var v=i[p];h=Math.min(h,v.startLineNumber),f=Math.max(f,v.endLineNumber)}o=!1,a=this._context.viewLayout.getVerticalOffsetForLineNumber(h),s=this._context.viewLayout.getVerticalOffsetForLineNumber(f)+this._lineHeight}else{if(!n)return-1;o=!0,a=this._context.viewLayout.getVerticalOffsetForLineNumber(n.startLineNumber),s=this._context.viewLayout.getVerticalOffsetForLineNumber(n.endLineNumber)+this._lineHeight}if(!("mouse"===t&&"default"===this._cursorSurroundingLinesStyle)){var m=Math.min(c/this._lineHeight/2,this._cursorSurroundingLines);a-=m*this._lineHeight,s+=Math.max(0,m-1)*this._lineHeight}if(0!==r&&4!==r||(s+=this._lineHeight),s-a>c){if(!o)return-1;u=a}else if(5===r||6===r)if(6===r&&l<=a&&s<=d)u=l;else{var _=a-Math.max(5*this._lineHeight,.2*c),y=s-c;u=Math.max(y,_)}else if(1===r||2===r)if(2===r&&l<=a&&s<=d)u=l;else{var b=(a+s)/2;u=Math.max(0,b-c/2)}else u=this._computeMinimumScrolling(l,d,a,s,3===r,4===r);return u}},{key:"_computeScrollLeftToReveal",value:function(e){var t=this._context.viewLayout.getCurrentViewport(),i=t.left,o=i+t.width,a=1073741824,s=0;if("range"===e.type){var u=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!u)return null;var l,c=(0,r.Z)(u.ranges);try{for(c.s();!(l=c.n()).done;){var d=l.value;a=Math.min(a,d.left),s=Math.max(s,d.left+d.width)}}catch(y){c.e(y)}finally{c.f()}}else{var h,f=(0,r.Z)(e.selections);try{for(f.s();!(h=f.n()).done;){var p=h.value;if(p.startLineNumber!==p.endLineNumber)return null;var g=this._visibleRangesForLineRange(p.startLineNumber,p.startColumn,p.endColumn);if(!g)return null;var v,m=(0,r.Z)(g.ranges);try{for(m.s();!(v=m.n()).done;){var _=v.value;a=Math.min(a,_.left),s=Math.max(s,_.left+_.width)}}catch(y){m.e(y)}finally{m.f()}}}catch(y){f.e(y)}finally{f.f()}}return a=Math.max(0,a-n.HORIZONTAL_EXTRA_PX),s+=this._revealHorizontalRightPadding,"selections"===e.type&&s-a>t.width?null:{scrollLeft:this._computeMinimumScrolling(i,o,a,s),maxHorizontalOffset:s}}},{key:"_computeMinimumScrolling",value:function(e,t,n,i,r,o){r=!!r,o=!!o;var a=(t|=0)-(e|=0);return(i|=0)-(n|=0)<a?r?n:o?Math.max(0,i-a):n<e?n:i>t?Math.max(0,i-a):e:n}}]),n}(z);xt.HORIZONTAL_EXTRA_PX=30;var Lt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e;var r=i._context.configuration.options.get(127);return i._decorationsLeft=r.decorationsLeft,i._decorationsWidth=r.decorationsWidth,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options.get(127);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getDecorations",value:function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;r<o;r++){var a=t[r],s=a.options.linesDecorationsClassName;s&&(n[i++]=new _t(a.range.startLineNumber,a.range.endLineNumber,s));var u=a.options.firstLineDecorationClassName;u&&(n[i++]=new _t(a.range.startLineNumber,a.range.startLineNumber,u))}return n}},{key:"prepareRender",value:function(e){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),r='" style="left:'+this._decorationsLeft.toString()+"px;width:"+this._decorationsWidth.toString()+'px;"></div>',o=[],a=t;a<=n;a++){for(var s=a-t,u=i[s],l="",c=0,d=u.length;c<d;c++)l+='<div class="cldr '+u[c]+r;o[s]=l}this._renderResult=o}},{key:"render",value:function(e,t){return this._renderResult?this._renderResult[t-e]:""}}]),n}(yt),Et=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._context=e,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){return!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getDecorations",value:function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;r<o;r++){var a=t[r],s=a.options.marginClassName;s&&(n[i++]=new _t(a.range.startLineNumber,a.range.endLineNumber,s))}return n}},{key:"prepareRender",value:function(e){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),r=[],o=t;o<=n;o++){for(var a=o-t,s=i[a],u="",l=0,c=s.length;l<c;l++)u+='<div class="cmdr '+s[l]+'" style=""></div>';r[a]=u}this._renderResult=r}},{key:"render",value:function(e,t){return this._renderResult?this._renderResult[t-e]:""}}]),n}(yt),Nt=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.r=e._clamp(t),this.g=e._clamp(n),this.b=e._clamp(i),this.a=e._clamp(r)}return(0,d.Z)(e,[{key:"equals",value:function(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}}],[{key:"_clamp",value:function(e){return e<0?0:e>255?255:0|e}}]),e}();Nt.Empty=new Nt(0,0,0,0);var Dt=n(99404),Mt=function(){function e(){var t=this;(0,c.Z)(this,e),this._onDidChange=new b.Q5,this.onDidChange=this._onDidChange.event,this._updateColorMap(),Dt.RW.onDidChange((function(e){e.changedColorMap&&t._updateColorMap()}))}return(0,d.Z)(e,[{key:"_updateColorMap",value:function(){var e=Dt.RW.getColorMap();if(!e)return this._colors=[Nt.Empty],void(this._backgroundIsLight=!0);this._colors=[Nt.Empty];for(var t=1;t<e.length;t++){var n=e[t].rgba;this._colors[t]=new Nt(n.r,n.g,n.b,Math.round(255*n.a))}var i=e[2].getRelativeLuminance();this._backgroundIsLight=i>=.5,this._onDidChange.fire(void 0)}},{key:"getColor",value:function(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}},{key:"backgroundIsLight",value:function(){return this._backgroundIsLight}}],[{key:"getInstance",value:function(){return this._INSTANCE||(this._INSTANCE=new e),this._INSTANCE}}]),e}();Mt._INSTANCE=null;var Tt=n(4587),Ot=n(92992),It=function(){for(var e=[],t=32;t<=126;t++)e.push(t);return e.push(65533),e}(),At=n(38820),Rt=function(){function e(t,n){(0,c.Z)(this,e),this.scale=n,this.charDataNormal=e.soften(t,.8),this.charDataLight=e.soften(t,50/60)}return(0,d.Z)(e,[{key:"renderChar",value:function(e,t,n,i,r,o,a,s,u){var l=1*this.scale,c=2*this.scale,d=u?1:c;if(t+l>e.width||n+d>e.height)console.warn("bad render request outside image data");else for(var h=s?this.charDataLight:this.charDataNormal,f=function(e,t){return(e-=32)<0||e>96?t<=2?(e+96)%96:95:e}(i,a),p=4*e.width,g=o.r,v=o.g,m=o.b,_=r.r-g,y=r.g-v,b=r.b-m,w=e.data,C=f*l*c,k=n*p+4*t,S=0;S<d;S++){for(var x=k,L=0;L<l;L++){var E=h[C++]/255;w[x++]=g+_*E,w[x++]=v+y*E,w[x++]=m+b*E,x++}k+=p}}},{key:"blockRenderChar",value:function(e,t,n,i,r,o,a){var s=1*this.scale,u=2*this.scale,l=a?1:u;if(t+s>e.width||n+l>e.height)console.warn("bad render request outside image data");else for(var c=4*e.width,d=r.r,h=r.g,f=r.b,p=d+.5*(i.r-d),g=h+.5*(i.g-h),v=f+.5*(i.b-f),m=e.data,_=n*c+4*t,y=0;y<l;y++){for(var b=_,w=0;w<s;w++)m[b++]=p,m[b++]=g,m[b++]=v,b++;_+=c}}}],[{key:"soften",value:function(e,t){for(var n=new Uint8ClampedArray(e.length),i=0,r=e.length;i<r;i++)n[i]=(0,At.K)(e[i]*t);return n}}]),e}(),Pt=n(60106),Zt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15},Ft=function(e){for(var t=new Uint8ClampedArray(e.length/2),n=0;n<e.length;n+=2)t[n>>1]=Zt[e[n]]<<4|15&Zt[e[n+1]];return t},jt={1:(0,Pt.I)((function(){return Ft("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")})),2:(0,Pt.I)((function(){return Ft("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126")}))},Ht=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"create",value:function(t,n){return this.lastCreated&&t===this.lastCreated.scale&&n===this.lastFontFamily?this.lastCreated:(i=jt[t]?new Rt(jt[t](),t):e.createFromSampleData(e.createSampleData(n).data,t),this.lastFontFamily=n,this.lastCreated=i,i);var i}},{key:"createSampleData",value:function(e){var t=document.createElement("canvas"),n=t.getContext("2d");t.style.height="".concat(16,"px"),t.height=16,t.width=960,t.style.width="960px",n.fillStyle="#ffffff",n.font="bold ".concat(16,"px ",e),n.textBaseline="middle";var i,o=0,a=(0,r.Z)(It);try{for(a.s();!(i=a.n()).done;){var s=i.value;n.fillText(String.fromCharCode(s),o,8),o+=10}}catch(u){a.e(u)}finally{a.f()}return n.getImageData(0,0,960,16)}},{key:"createFromSampleData",value:function(t,n){if(61440!==t.length)throw new Error("Unexpected source in MinimapCharRenderer");var i=e._downsample(t,n);return new Rt(i,n)}},{key:"_downsampleChar",value:function(e,t,n,i,r){for(var o=1*r,a=2*r,s=i,u=0,l=0;l<a;l++)for(var c=l/a*16,d=(l+1)/a*16,h=0;h<o;h++){for(var f=h/o*10,p=(h+1)/o*10,g=0,v=0,m=c;m<d;m++)for(var _=t+3840*Math.floor(m),y=1-(m-Math.floor(m)),b=f;b<p;b++){var w=1-(b-Math.floor(b)),C=_+4*Math.floor(b),k=w*y;v+=k,g+=e[C]*e[C+3]/255*k}var S=g/v;u=Math.max(u,S),n[s++]=(0,At.K)(S)}return u}},{key:"_downsample",value:function(e,t){for(var n=2*t*1*t,i=96*n,r=new Uint8ClampedArray(i),o=0,a=0,s=0,u=0;u<96;u++)s=Math.max(s,this._downsampleChar(e,a,r,o,t)),o+=n,a+=40;if(s>0)for(var l=255/s,c=0;c<i;c++)r[c]*=l;return r}}]),e}(),Bt=n(46502),zt=function(){function e(t,n,i){var r=this;(0,c.Z)(this,e);var o=t.options,a=o.get(125),s=o.get(127),u=s.minimap,l=o.get(40),d=o.get(61);this.renderMinimap=u.renderMinimap,this.size=d.size,this.minimapHeightIsEditorHeight=u.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=o.get(91),this.showSlider=d.showSlider,this.pixelRatio=a,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.lineHeight=o.get(55),this.minimapLeft=u.minimapLeft,this.minimapWidth=u.minimapWidth,this.minimapHeight=s.height,this.canvasInnerWidth=u.minimapCanvasInnerWidth,this.canvasInnerHeight=u.minimapCanvasInnerHeight,this.canvasOuterWidth=u.minimapCanvasOuterWidth,this.canvasOuterHeight=u.minimapCanvasOuterHeight,this.isSampling=u.minimapIsSampling,this.editorHeight=s.height,this.fontScale=u.minimapScale,this.minimapLineHeight=u.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.charRenderer=(0,Pt.I)((function(){return Ht.create(r.fontScale,l.fontFamily)})),this.backgroundColor=e._getMinimapBackground(n,i)}return(0,d.Z)(e,[{key:"equals",value:function(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.showSlider===e.showSlider&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)}}],[{key:"_getMinimapBackground",value:function(e,t){var n=e.getColor(Ot.kV);return n?new Nt(n.rgba.r,n.rgba.g,n.rgba.b,n.rgba.a):t.getColor(2)}}]),e}(),Wt=function(){function e(t,n,i,r,o,a,s,u){(0,c.Z)(this,e),this.scrollTop=t,this.scrollHeight=n,this.sliderNeeded=i,this._computedSliderRatio=r,this.sliderTop=o,this.sliderHeight=a,this.startLineNumber=s,this.endLineNumber=u}return(0,d.Z)(e,[{key:"getDesiredScrollTopFromDelta",value:function(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}},{key:"getDesiredScrollTopFromTouchLocation",value:function(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}}],[{key:"create",value:function(t,n,i,r,o,a,s,u,l,c,d){var h,f,p=t.pixelRatio,g=t.minimapLineHeight,v=Math.floor(t.canvasInnerHeight/g),m=t.lineHeight;if(t.minimapHeightIsEditorHeight){var _=u*t.lineHeight+(t.scrollBeyondLastLine?o-t.lineHeight:0),y=Math.max(1,Math.floor(o*o/_)),b=Math.max(0,t.minimapHeight-y),w=b/(c-o),C=l*w,k=b>0,S=Math.floor(t.canvasInnerHeight/t.minimapLineHeight);return new e(l,c,k,w,C,y,1,Math.min(s,S))}if(a&&i!==s){var x=i-n+1;h=Math.floor(x*g/p)}else{var L=o/m;h=Math.floor(L*g/p)}f=t.scrollBeyondLastLine?(s-1)*g/p:Math.max(0,s*g/p-h);var E=(f=Math.min(t.minimapHeight-h,f))/(c-o),N=l*E,D=0;t.scrollBeyondLastLine&&(D=o/m-1);if(v>=s+D){return new e(l,c,f>0,E,N,h,1,s)}var M=Math.max(1,Math.floor(n-N*p/g));return d&&d.scrollHeight===c&&(d.scrollTop>l&&(M=Math.min(M,d.startLineNumber)),d.scrollTop<l&&(M=Math.max(M,d.startLineNumber))),new e(l,c,!0,E,(n-M+(l-r)/m)*g/p,h,M,Math.min(s,M+v-1))}}]),e}(),Vt=function(){function e(t){(0,c.Z)(this,e),this.dy=t}return(0,d.Z)(e,[{key:"onContentChanged",value:function(){this.dy=-1}},{key:"onTokensChanged",value:function(){this.dy=-1}}]),e}();Vt.INVALID=new Vt(-1);var Yt=function(){function e(t,n,i){(0,c.Z)(this,e),this.renderedLayout=t,this._imageData=n,this._renderedLines=new Je((function(){return Vt.INVALID})),this._renderedLines._set(t.startLineNumber,i)}return(0,d.Z)(e,[{key:"linesEquals",value:function(e){if(!this.scrollEquals(e))return!1;for(var t=this._renderedLines._get().lines,n=0,i=t.length;n<i;n++)if(-1===t[n].dy)return!1;return!0}},{key:"scrollEquals",value:function(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber}},{key:"_get",value:function(){var e=this._renderedLines._get();return{imageData:this._imageData,rendLineNumberStart:e.rendLineNumberStart,lines:e.lines}}},{key:"onLinesChanged",value:function(e,t){return this._renderedLines.onLinesChanged(e,t)}},{key:"onLinesDeleted",value:function(e,t){this._renderedLines.onLinesDeleted(e,t)}},{key:"onLinesInserted",value:function(e,t){this._renderedLines.onLinesInserted(e,t)}},{key:"onTokensChanged",value:function(e){return this._renderedLines.onTokensChanged(e)}}]),e}(),Ut=function(){function e(t,n,i,r){(0,c.Z)(this,e),this._backgroundFillData=e._createBackgroundFillData(n,i,r),this._buffers=[t.createImageData(n,i),t.createImageData(n,i)],this._lastUsedBuffer=0}return(0,d.Z)(e,[{key:"getBuffer",value:function(){this._lastUsedBuffer=1-this._lastUsedBuffer;var e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e}}],[{key:"_createBackgroundFillData",value:function(e,t,n){for(var i=n.r,r=n.g,o=n.b,a=new Uint8ClampedArray(e*t*4),s=0,u=0;u<t;u++)for(var l=0;l<e;l++)a[s]=i,a[s+1]=r,a[s+2]=o,a[s+3]=255,s+=4;return a}}]),e}(),Kt=function(){function e(t,n){(0,c.Z)(this,e),this.samplingRatio=t,this.minimapLines=n}return(0,d.Z)(e,[{key:"modelLineToMinimapLine",value:function(e){return Math.min(this.minimapLines.length,Math.max(1,Math.round(e/this.samplingRatio)))}},{key:"modelLineRangeToMinimapLineRange",value:function(e,t){for(var n=this.modelLineToMinimapLine(e)-1;n>0&&this.minimapLines[n-1]>=e;)n--;for(var i=this.modelLineToMinimapLine(t)-1;i+1<this.minimapLines.length&&this.minimapLines[i+1]<=t;)i++;if(n===i){var r=this.minimapLines[n];if(r<e||r>t)return null}return[n+1,i+1]}},{key:"decorationLineRangeToMinimapLineRange",value:function(e,t){var n=this.modelLineToMinimapLine(e),i=this.modelLineToMinimapLine(t);return e!==t&&i===n&&(i===this.minimapLines.length?n>1&&n--:i++),[n,i]}},{key:"onLinesDeleted",value:function(e){for(var t=e.toLineNumber-e.fromLineNumber+1,n=this.minimapLines.length,i=0,r=this.minimapLines.length-1;r>=0&&!(this.minimapLines[r]<e.fromLineNumber);r--)this.minimapLines[r]<=e.toLineNumber?(this.minimapLines[r]=Math.max(1,e.fromLineNumber-1),n=Math.min(n,r),i=Math.max(i,r)):this.minimapLines[r]-=t;return[n,i]}},{key:"onLinesInserted",value:function(e){for(var t=e.toLineNumber-e.fromLineNumber+1,n=this.minimapLines.length-1;n>=0&&!(this.minimapLines[n]<e.fromLineNumber);n--)this.minimapLines[n]+=t}}],[{key:"compute",value:function(t,n,i){if(0===t.renderMinimap||!t.isSampling)return[null,[]];var r=t.pixelRatio,o=t.lineHeight,a=t.scrollBeyondLastLine,s=ee.gk.computeContainedMinimapLineCount({viewLineCount:n,scrollBeyondLastLine:a,height:t.editorHeight,lineHeight:o,pixelRatio:r}).minimapLineCount,u=n/s,l=u/2;if(!i||0===i.minimapLines.length){var c=[];if(c[0]=1,s>1){for(var d=0,h=s-1;d<h;d++)c[d]=Math.round(d*u+l);c[s-1]=n}return[new e(u,c),[]]}for(var f=i.minimapLines,p=f.length,g=[],v=0,m=0,_=1,y=[],b=null,w=0;w<s;w++){for(var C=Math.max(_,Math.round(w*u)),k=Math.max(C,Math.round((w+1)*u));v<p&&f[v]<C;){if(y.length<10){var S=v+1+m;b&&"deleted"===b.type&&b._oldIndex===v-1?b.deleteToLineNumber++:(b={type:"deleted",_oldIndex:v,deleteFromLineNumber:S,deleteToLineNumber:S},y.push(b)),m--}v++}var x=void 0;if(v<p&&f[v]<=k)x=f[v],v++;else if(x=0===w?1:w+1===s?n:Math.round(w*u+l),y.length<10){var L=v+1+m;b&&"inserted"===b.type&&b._i===w-1?b.insertToLineNumber++:(b={type:"inserted",_i:w,insertFromLineNumber:L,insertToLineNumber:L},y.push(b)),m++}g[w]=x,_=x}if(y.length<10)for(;v<p;){var E=v+1+m;b&&"deleted"===b.type&&b._oldIndex===v-1?b.deleteToLineNumber++:(b={type:"deleted",_oldIndex:v,deleteFromLineNumber:E,deleteToLineNumber:E},y.push(b)),m--,v++}else y=[{type:"flush"}];return[new e(u,g),y]}}]),e}(),qt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var r;(0,c.Z)(this,n),(r=t.call(this,e)).tokensColorTracker=Mt.getInstance(),r._selections=[],r._minimapSelections=null,r.options=new zt(r._context.configuration,r._context.theme,r.tokensColorTracker);var a=Kt.compute(r.options,r._context.model.getLineCount(),null),s=(0,i.Z)(a,1)[0];return r._samplingState=s,r._shouldCheckSampling=!1,r._actual=new Gt(e.theme,(0,o.Z)(r)),r}return(0,d.Z)(n,[{key:"dispose",value:function(){this._actual.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"getDomNode",value:function(){return this._actual.getDomNode()}},{key:"_onOptionsMaybeChanged",value:function(){var e=new zt(this._context.configuration,this._context.theme,this.tokensColorTracker);return!this.options.equals(e)&&(this.options=e,this._recreateLineSampling(),this._actual.onDidChangeOptions(),!0)}},{key:"onConfigurationChanged",value:function(e){return this._onOptionsMaybeChanged()}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections,this._minimapSelections=null,this._actual.onSelectionChanged()}},{key:"onDecorationsChanged",value:function(e){return!!e.affectsMinimap&&this._actual.onDecorationsChanged()}},{key:"onFlushed",value:function(e){return this._samplingState&&(this._shouldCheckSampling=!0),this._actual.onFlushed()}},{key:"onLinesChanged",value:function(e){if(this._samplingState){var t=this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber,e.toLineNumber);return!!t&&this._actual.onLinesChanged(t[0],t[1])}return this._actual.onLinesChanged(e.fromLineNumber,e.toLineNumber)}},{key:"onLinesDeleted",value:function(e){if(this._samplingState){var t=this._samplingState.onLinesDeleted(e),n=(0,i.Z)(t,2),r=n[0],o=n[1];return r<=o&&this._actual.onLinesChanged(r+1,o+1),this._shouldCheckSampling=!0,!0}return this._actual.onLinesDeleted(e.fromLineNumber,e.toLineNumber)}},{key:"onLinesInserted",value:function(e){return this._samplingState?(this._samplingState.onLinesInserted(e),this._shouldCheckSampling=!0,!0):this._actual.onLinesInserted(e.fromLineNumber,e.toLineNumber)}},{key:"onScrollChanged",value:function(e){return this._actual.onScrollChanged()}},{key:"onThemeChanged",value:function(e){return this._context.model.invalidateMinimapColorCache(),this._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}},{key:"onTokensChanged",value:function(e){if(this._samplingState){var t,n=[],i=(0,r.Z)(e.ranges);try{for(i.s();!(t=i.n()).done;){var o=t.value,a=this._samplingState.modelLineRangeToMinimapLineRange(o.fromLineNumber,o.toLineNumber);a&&n.push({fromLineNumber:a[0],toLineNumber:a[1]})}}catch(s){i.e(s)}finally{i.f()}return!!n.length&&this._actual.onTokensChanged(n)}return this._actual.onTokensChanged(e.ranges)}},{key:"onTokensColorsChanged",value:function(e){return this._onOptionsMaybeChanged(),this._actual.onTokensColorsChanged()}},{key:"onZonesChanged",value:function(e){return this._actual.onZonesChanged()}},{key:"prepareRender",value:function(e){this._shouldCheckSampling&&(this._shouldCheckSampling=!1,this._recreateLineSampling())}},{key:"render",value:function(e){var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber;this._samplingState&&(t=this._samplingState.modelLineToMinimapLine(t),n=this._samplingState.modelLineToMinimapLine(n));var i={viewportContainsWhitespaceGaps:e.viewportData.whitespaceViewportData.length>0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:n,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(i)}},{key:"_recreateLineSampling",value:function(){this._minimapSelections=null;var e=Boolean(this._samplingState),t=Kt.compute(this.options,this._context.model.getLineCount(),this._samplingState),n=(0,i.Z)(t,2),o=n[0],a=n[1];if(this._samplingState=o,e&&this._samplingState){var s,u=(0,r.Z)(a);try{for(u.s();!(s=u.n()).done;){var l=s.value;switch(l.type){case"deleted":this._actual.onLinesDeleted(l.deleteFromLineNumber,l.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(l.insertFromLineNumber,l.insertToLineNumber);break;case"flush":this._actual.onFlushed()}}}catch(c){u.e(c)}finally{u.f()}}}},{key:"getLineCount",value:function(){return this._samplingState?this._samplingState.minimapLines.length:this._context.model.getLineCount()}},{key:"getRealLineCount",value:function(){return this._context.model.getLineCount()}},{key:"getLineContent",value:function(e){return this._samplingState?this._context.model.getLineContent(this._samplingState.minimapLines[e-1]):this._context.model.getLineContent(e)}},{key:"getMinimapLinesRenderingData",value:function(e,t,n){if(this._samplingState){for(var i=[],r=0,o=t-e+1;r<o;r++)n[r]?i[r]=this._context.model.getViewLineData(this._samplingState.minimapLines[e+r-1]):i[r]=null;return i}return this._context.model.getMinimapLinesRenderingData(e,t,n).data}},{key:"getSelections",value:function(){if(null===this._minimapSelections)if(this._samplingState){this._minimapSelections=[];var e,t=(0,r.Z)(this._selections);try{for(t.s();!(e=t.n()).done;){var n=e.value,o=this._samplingState.decorationLineRangeToMinimapLineRange(n.startLineNumber,n.endLineNumber),a=(0,i.Z)(o,2),s=a[0],u=a[1];this._minimapSelections.push(new L.Y(s,n.startColumn,u,n.endColumn))}}catch(l){t.e(l)}finally{t.f()}}else this._minimapSelections=this._selections;return this._minimapSelections}},{key:"getMinimapDecorationsInViewport",value:function(e,t){var n;if(this._samplingState){var i=this._samplingState.minimapLines[e-1],o=this._samplingState.minimapLines[t-1];n=new fe.e(i,1,o,this._context.model.getLineMaxColumn(o))}else n=new fe.e(e,1,t,this._context.model.getLineMaxColumn(t));var a=this._context.model.getDecorationsInViewport(n);if(this._samplingState){var s,u=[],l=(0,r.Z)(a);try{for(l.s();!(s=l.n()).done;){var c=s.value;if(c.options.minimap){var d=c.range,h=this._samplingState.modelLineToMinimapLine(d.startLineNumber),f=this._samplingState.modelLineToMinimapLine(d.endLineNumber);u.push(new Tt.$l(new fe.e(h,d.startColumn,f,d.endColumn),c.options))}}}catch(p){l.e(p)}finally{l.f()}return u}return a}},{key:"getOptions",value:function(){return this._context.model.getTextModelOptions()}},{key:"revealLineNumber",value:function(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.model.revealRange("mouse",!1,new fe.e(e,1,e,1),1,0)}},{key:"setScrollTop",value:function(e){this._context.model.setScrollPosition({scrollTop:e},1)}}]),n}(z),Gt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this))._renderDecorations=!1,r._gestureInProgress=!1,r._theme=e,r._model=i,r._lastRenderData=null,r._buffers=null,r._selectionColor=r._theme.getColor(Ot.ov),r._domNode=(0,E.X)(document.createElement("div")),W.write(r._domNode,8),r._domNode.setClassName(r._getMinimapDomNodeClassName()),r._domNode.setPosition("absolute"),r._domNode.setAttribute("role","presentation"),r._domNode.setAttribute("aria-hidden","true"),r._shadow=(0,E.X)(document.createElement("div")),r._shadow.setClassName("minimap-shadow-hidden"),r._domNode.appendChild(r._shadow),r._canvas=(0,E.X)(document.createElement("canvas")),r._canvas.setPosition("absolute"),r._canvas.setLeft(0),r._domNode.appendChild(r._canvas),r._decorationsCanvas=(0,E.X)(document.createElement("canvas")),r._decorationsCanvas.setPosition("absolute"),r._decorationsCanvas.setClassName("minimap-decorations-layer"),r._decorationsCanvas.setLeft(0),r._domNode.appendChild(r._decorationsCanvas),r._slider=(0,E.X)(document.createElement("div")),r._slider.setPosition("absolute"),r._slider.setClassName("minimap-slider"),r._slider.setLayerHinting(!0),r._slider.setContain("strict"),r._domNode.appendChild(r._slider),r._sliderHorizontal=(0,E.X)(document.createElement("div")),r._sliderHorizontal.setPosition("absolute"),r._sliderHorizontal.setClassName("minimap-slider-horizontal"),r._slider.appendChild(r._sliderHorizontal),r._applyLayout(),r._mouseDownListener=_.addStandardDisposableListener(r._domNode.domNode,"mousedown",(function(e){if(e.preventDefault(),0!==r._model.options.renderMinimap&&r._lastRenderData)if("proportional"===r._model.options.size){var t=r._model.options.minimapLineHeight,n=r._model.options.canvasInnerHeight/r._model.options.canvasOuterHeight*e.browserEvent.offsetY,i=Math.floor(n/t)+r._lastRenderData.renderedLayout.startLineNumber;i=Math.min(i,r._model.getLineCount()),r._model.revealLineNumber(i)}else if(e.leftButton&&r._lastRenderData){var o=_.getDomNodePagePosition(r._slider.domNode),a=o.top+o.height/2;r._startSliderDragging(e.buttons,e.posx,a,e.posy,r._lastRenderData.renderedLayout)}})),r._sliderMouseMoveMonitor=new O.Z,r._sliderMouseDownListener=_.addStandardDisposableListener(r._slider.domNode,"mousedown",(function(e){e.preventDefault(),e.stopPropagation(),e.leftButton&&r._lastRenderData&&r._startSliderDragging(e.buttons,e.posx,e.posy,e.posy,r._lastRenderData.renderedLayout)})),r._gestureDisposable=D.o.addTarget(r._domNode.domNode),r._sliderTouchStartListener=_.addDisposableListener(r._domNode.domNode,D.t.Start,(function(e){e.preventDefault(),e.stopPropagation(),r._lastRenderData&&(r._slider.toggleClassName("active",!0),r._gestureInProgress=!0,r.scrollDueToTouchEvent(e))}),{passive:!1}),r._sliderTouchMoveListener=_.addDisposableListener(r._domNode.domNode,D.t.Change,(function(e){e.preventDefault(),e.stopPropagation(),r._lastRenderData&&r._gestureInProgress&&r.scrollDueToTouchEvent(e)}),{passive:!1}),r._sliderTouchEndListener=_.addStandardDisposableListener(r._domNode.domNode,D.t.End,(function(e){e.preventDefault(),e.stopPropagation(),r._gestureInProgress=!1,r._slider.toggleClassName("active",!1)})),r}return(0,d.Z)(n,[{key:"_startSliderDragging",value:function(e,t,n,i,r){var o=this;this._slider.toggleClassName("active",!0);var a=function(e,i){var a=Math.abs(i-t);if(N.ED&&a>140)o._model.setScrollTop(r.scrollTop);else{var s=e-n;o._model.setScrollTop(r.getDesiredScrollTopFromDelta(s))}};i!==n&&a(i,t),this._sliderMouseMoveMonitor.startMonitoring(this._slider.domNode,e,O.e,(function(e){return a(e.posy,e.posx)}),(function(){o._slider.toggleClassName("active",!1)}))}},{key:"scrollDueToTouchEvent",value:function(e){var t=this._domNode.domNode.getBoundingClientRect().top,n=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(n)}},{key:"dispose",value:function(){this._mouseDownListener.dispose(),this._sliderMouseMoveMonitor.dispose(),this._sliderMouseDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_getMinimapDomNodeClassName",value:function(){return"always"===this._model.options.showSlider?"minimap slider-always":"minimap slider-mouseover"}},{key:"getDomNode",value:function(){return this._domNode}},{key:"_applyLayout",value:function(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}},{key:"_getBuffer",value:function(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new Ut(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}},{key:"onDidChangeOptions",value:function(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}},{key:"onSelectionChanged",value:function(){return this._renderDecorations=!0,!0}},{key:"onDecorationsChanged",value:function(){return this._renderDecorations=!0,!0}},{key:"onFlushed",value:function(){return this._lastRenderData=null,!0}},{key:"onLinesChanged",value:function(e,t){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e,t)}},{key:"onLinesDeleted",value:function(e,t){return this._lastRenderData&&this._lastRenderData.onLinesDeleted(e,t),!0}},{key:"onLinesInserted",value:function(e,t){return this._lastRenderData&&this._lastRenderData.onLinesInserted(e,t),!0}},{key:"onScrollChanged",value:function(){return this._renderDecorations=!0,!0}},{key:"onThemeChanged",value:function(){return this._selectionColor=this._theme.getColor(Ot.ov),this._renderDecorations=!0,!0}},{key:"onTokensChanged",value:function(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)}},{key:"onTokensColorsChanged",value:function(){return this._lastRenderData=null,this._buffers=null,!0}},{key:"onZonesChanged",value:function(){return this._lastRenderData=null,!0}},{key:"render",value:function(e){if(0===this._model.options.renderMinimap)return this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),void this._sliderHorizontal.setHeight(0);e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");var t=Wt.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(t.sliderNeeded?"block":"none"),this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight);var n=e.scrollLeft/this._model.options.typicalHalfwidthCharacterWidth,i=Math.min(this._model.options.minimapWidth,Math.round(n*this._model.options.minimapCharWidth/this._model.options.pixelRatio));this._sliderHorizontal.setLeft(i),this._sliderHorizontal.setWidth(this._model.options.minimapWidth-i),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)}},{key:"renderDecorations",value:function(e){if(this._renderDecorations){this._renderDecorations=!1;var t=this._model.getSelections(),n=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber),i=this._model.options,r=i.canvasInnerWidth,o=i.canvasInnerHeight,a=this._model.options.minimapLineHeight,s=this._model.options.minimapCharWidth,u=this._model.getOptions().tabSize,l=this._decorationsCanvas.domNode.getContext("2d");l.clearRect(0,0,r,o);for(var c=new Map,d=0;d<t.length;d++)for(var h=t[d],f=h.startLineNumber;f<=h.endLineNumber;f++)this.renderDecorationOnLine(l,c,h,this._selectionColor,e,f,a,a,u,s);for(var p=0;p<n.length;p++){var g=n[p];if(g.options.minimap)for(var v=g.options.minimap.getColor(this._theme),m=g.range.startLineNumber;m<=g.range.endLineNumber;m++)switch(g.options.minimap.position){case Bt.F5.Inline:this.renderDecorationOnLine(l,c,g.range,v,e,m,a,a,u,s);continue;case Bt.F5.Gutter:var _=(m-e.startLineNumber)*a;this.renderDecoration(l,v,2,_,2,a);continue}}}}},{key:"renderDecorationOnLine",value:function(e,t,n,i,r,o,a,s,u,l){var c=(o-r.startLineNumber)*s;if(!(c+a<0||c>this._model.options.canvasInnerHeight)){var d=t.get(o),h=!d;if(!d){var f=this._model.getLineContent(o);d=[ee.y0];for(var p=1;p<f.length+1;p++){var g=f.charCodeAt(p-1),v=9===g?u*l:Re.K7(g)?2*l:l;d[p]=d[p-1]+v}t.set(o,d)}var m=n.startColumn,_=n.endColumn,y=n.startLineNumber,b=n.endLineNumber,w=y===o?d[m-1]:ee.y0,C=b>o?d.length-1:_-1;if(C>0){var k=d[C]-w||2;this.renderDecoration(e,i,w,c,k,a)}h&&this.renderLineHighlight(e,i,c,a)}}},{key:"renderLineHighlight",value:function(e,t,n,i){e.fillStyle=t&&t.transparent(.5).toString()||"",e.fillRect(ee.y0,n,e.canvas.width,i)}},{key:"renderDecoration",value:function(e,t,n,i,r,o){e.fillStyle=t&&t.toString()||"",e.fillRect(n,i,r,o)}},{key:"renderLines",value:function(e){var t=e.startLineNumber,r=e.endLineNumber,o=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){var a=this._lastRenderData._get();return new Yt(e,a.imageData,a.lines)}var s=this._getBuffer();if(!s)return null;for(var u=n._renderUntouchedLines(s,t,r,o,this._lastRenderData),l=(0,i.Z)(u,3),c=l[0],d=l[1],h=l[2],f=this._model.getMinimapLinesRenderingData(t,r,h),p=this._model.getOptions().tabSize,g=this._model.options.backgroundColor,v=this._model.tokensColorTracker,m=v.backgroundIsLight(),_=this._model.options.renderMinimap,y=this._model.options.charRenderer(),b=this._model.options.fontScale,w=this._model.options.minimapCharWidth,C=(1===_?2:3)*b,k=o>C?Math.floor((o-C)/2):0,S=0,x=[],L=0,E=r-t+1;L<E;L++)h[L]&&n._renderLine(s,g,m,_,w,v,y,S,k,p,f[L],b,o),x[L]=new Vt(S),S+=o;var N=-1===c?0:c,D=(-1===d?s.height:d)-N;return this._canvas.domNode.getContext("2d").putImageData(s,0,0,0,N,s.width,D),new Yt(e,s,x)}}],[{key:"_renderUntouchedLines",value:function(e,t,n,i,r){var o=[];if(!r){for(var a=0,s=n-t+1;a<s;a++)o[a]=!0;return[-1,-1,o]}for(var u=r._get(),l=u.imageData.data,c=u.rendLineNumberStart,d=u.lines,h=d.length,f=e.width,p=e.data,g=(n-t+1)*i*f*4,v=-1,m=-1,_=-1,y=-1,b=-1,w=-1,C=0,k=t;k<=n;k++){var S=k-t,x=k-c,L=x>=0&&x<h?d[x].dy:-1;if(-1!==L){var E=L*f*4,N=(L+i)*f*4,D=C*f*4,M=(C+i)*f*4;y===E&&w===D?(y=N,w=M):(-1!==_&&(p.set(l.subarray(_,y),b),-1===v&&0===_&&_===b&&(v=y),-1===m&&y===g&&_===b&&(m=_)),_=E,y=N,b=D,w=M),o[S]=!1,C+=i}else o[S]=!0,C+=i}return-1!==_&&(p.set(l.subarray(_,y),b),-1===v&&0===_&&_===b&&(v=y),-1===m&&y===g&&_===b&&(m=_)),[-1===v?-1:v/(4*f),-1===m?-1:m/(4*f),o]}},{key:"_renderLine",value:function(e,t,n,i,r,o,a,s,u,l,c,d,h){for(var f=c.content,p=c.tokens,g=e.width-r,v=1===h,m=ee.y0,_=0,y=0,b=0,w=p.getCount();b<w;b++)for(var C=p.getEndOffset(b),k=p.getForeground(b),S=o.getColor(k);_<C;_++){if(m>g)return;var x=f.charCodeAt(_);if(9===x){var L=l-(_+y)%l;y+=L-1,m+=L*r}else if(32===x)m+=r;else for(var E=Re.K7(x)?2:1,N=0;N<E;N++)if(2===i?a.blockRenderChar(e,m,s+u,S,t,n,v):a.renderChar(e,m,s+u,x,S,t,d,n,v),(m+=r)>g)return}}}]),n}(w.JT);(0,je.Ic)((function(e,t){var n=e.getColor(Ot.kV);n&&t.addRule(".monaco-editor .minimap > canvas { opacity: ".concat(n.rgba.a,"; will-change: opacity; }"));var i=e.getColor(Ot.CA);i&&t.addRule(".monaco-editor .minimap-slider .minimap-slider-horizontal { background: ".concat(i,"; }"));var r=e.getColor(Ot.Xy);r&&t.addRule(".monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ".concat(r,"; }"));var o=e.getColor(Ot.br);o&&t.addRule(".monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ".concat(o,"; }"));var a=e.getColor(Ot._w);a&&t.addRule(".monaco-editor .minimap-shadow-visible { box-shadow: ".concat(a," -6px 0 6px -6px inset; }"))}));var $t=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options.get(127);return i._widgets={},i._verticalScrollbarWidth=r.verticalScrollbarWidth,i._minimapWidth=r.minimap.minimapWidth,i._horizontalScrollbarHeight=r.horizontalScrollbarHeight,i._editorHeight=r.height,i._editorWidth=r.width,i._domNode=(0,E.X)(document.createElement("div")),W.write(i._domNode,4),i._domNode.setClassName("overlayWidgets"),i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._widgets={}}},{key:"getDomNode",value:function(){return this._domNode}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options.get(127);return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0}},{key:"addWidget",value:function(e){var t=(0,E.X)(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),this._domNode.appendChild(t),this.setShouldRender()}},{key:"setWidgetPosition",value:function(e,t){var n=this._widgets[e.getId()];return n.preference!==t&&(n.preference=t,this.setShouldRender(),!0)}},{key:"removeWidget",value:function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t].domNode.domNode;delete this._widgets[t],n.parentNode.removeChild(n),this.setShouldRender()}}},{key:"_renderWidget",value:function(e){var t=e.domNode;if(null!==e.preference)if(0===e.preference)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(1===e.preference){var n=t.domNode.clientHeight;t.setTop(this._editorHeight-n-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else 2===e.preference&&(t.setTop(0),t.domNode.style.right="50%");else t.unsetTop()}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this._domNode.setWidth(this._editorWidth);for(var t=Object.keys(this._widgets),n=0,i=t.length;n<i;n++){var r=t[n];this._renderWidget(this._widgets[r])}}}]),n}(z),Qt=n(89938),Xt=function(){function e(t,n){(0,c.Z)(this,e);var r=t.options;this.lineHeight=r.get(55),this.pixelRatio=r.get(125),this.overviewRulerLanes=r.get(70),this.renderBorder=r.get(69);var o=n.getColor(Fe.zw);this.borderColor=o?o.toString():null,this.hideCursor=r.get(48);var a=n.getColor(Fe.n0);this.cursorColor=a?a.transparent(.7).toString():null,this.themeType=n.type;var s=r.get(61),u=s.enabled,l=s.side,d=u?n.getColor(Fe.e_)||Dt.RW.getDefaultBackground():null;this.backgroundColor=null===d||"left"===l?null:Qt.Il.Format.CSS.formatHex(d);var h=r.get(127).overviewRuler;this.top=h.top,this.right=h.right,this.domWidth=h.width,this.domHeight=h.height,0===this.overviewRulerLanes?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);var f=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes),p=(0,i.Z)(f,2),g=p[0],v=p[1];this.x=g,this.w=v}return(0,d.Z)(e,[{key:"_initLanes",value:function(e,t,n){var i=t-e;if(n>=3){var r=Math.floor(i/3),o=Math.floor(i/3),a=i-r-o,s=e+r;return[[0,e,s,e,e+r+a,e,s,e],[0,r,a,r+a,o,r+a+o,a+o,r+a+o]]}if(2===n){var u=Math.floor(i/2),l=i-u;return[[0,e,e,e,e+u,e,e,e],[0,u,u,u,l,u+l,u+l,u+l]]}return[[0,e,e,e,e,e,e,e],[0,i,i,i,i,i,i,i]]}},{key:"equals",value:function(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColor===e.cursorColor&&this.themeType===e.themeType&&this.backgroundColor===e.backgroundColor&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}}]),e}(),Jt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e))._domNode=(0,E.X)(document.createElement("canvas")),i._domNode.setClassName("decorationsOverviewRuler"),i._domNode.setPosition("absolute"),i._domNode.setLayerHinting(!0),i._domNode.setContain("strict"),i._domNode.setAttribute("aria-hidden","true"),i._updateSettings(!1),i._tokensColorTrackerListener=Dt.RW.onDidChange((function(e){e.changedColorMap&&i._updateSettings(!0)})),i._cursorPositions=[],i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._tokensColorTrackerListener.dispose()}},{key:"_updateSettings",value:function(e){var t=new Xt(this._context.configuration,this._context.theme);return(!this._settings||!this._settings.equals(t))&&(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}},{key:"onConfigurationChanged",value:function(e){return this._updateSettings(!1)}},{key:"onCursorStateChanged",value:function(e){this._cursorPositions=[];for(var t=0,n=e.selections.length;t<n;t++)this._cursorPositions[t]=e.selections[t].getPosition();return this._cursorPositions.sort(he.L.compare),!0}},{key:"onDecorationsChanged",value:function(e){return!!e.affectsOverviewRuler}},{key:"onFlushed",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollHeightChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"onThemeChanged",value:function(e){return this._context.model.invalidateOverviewRulerColorCache(),this._updateSettings(!1)}},{key:"getDomNode",value:function(){return this._domNode.domNode}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this._render()}},{key:"_render",value:function(){if(0!==this._settings.overviewRulerLanes){var e=this._settings.canvasWidth,t=this._settings.canvasHeight,n=this._settings.lineHeight,i=this._context.viewLayout,r=t/this._context.viewLayout.getScrollHeight(),o=this._context.model.getAllOverviewRulerDecorations(this._context.theme),a=6*this._settings.pixelRatio|0,s=a/2|0,u=this._domNode.domNode.getContext("2d");null===this._settings.backgroundColor?u.clearRect(0,0,e,t):(u.fillStyle=this._settings.backgroundColor,u.fillRect(0,0,e,t));var l=this._settings.x,c=this._settings.w,d=Object.keys(o);d.sort();for(var h=0,f=d.length;h<f;h++){var p=d[h],g=o[p];u.fillStyle=p;for(var v=0,m=0,_=0,y=0,b=g.length;y<b;y++){var w=g[3*y],C=g[3*y+1],k=g[3*y+2],S=i.getVerticalOffsetForLineNumber(C)*r|0,x=(i.getVerticalOffsetForLineNumber(k)+n)*r|0;if(x-S<a){var L=(S+x)/2|0;L<s?L=s:L+s>t&&(L=t-s),S=L-s,x=L+s}S>_+1||w!==v?(0!==y&&u.fillRect(l[v],m,c[v],_-m),v=w,m=S,_=x):x>_&&(_=x)}u.fillRect(l[v],m,c[v],_-m)}if(!this._settings.hideCursor&&this._settings.cursorColor){var E=2*this._settings.pixelRatio|0,N=E/2|0,D=this._settings.x[7],M=this._settings.w[7];u.fillStyle=this._settings.cursorColor;for(var T=-100,O=-100,I=0,A=this._cursorPositions.length;I<A;I++){var R=this._cursorPositions[I],P=i.getVerticalOffsetForLineNumber(R.lineNumber)*r|0;P<N?P=N:P+N>t&&(P=t-N);var Z=P-N,F=Z+E;Z>O+1?(0!==I&&u.fillRect(D,T,M,O-T),T=Z,O=F):F>O&&(O=F)}u.fillRect(D,T,M,O-T)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(u.beginPath(),u.lineWidth=1,u.strokeStyle=this._settings.borderColor,u.moveTo(0,0),u.lineTo(0,t),u.stroke(),u.moveTo(0,0),u.lineTo(e,0),u.stroke())}else this._domNode.setBackgroundColor(this._settings.backgroundColor?this._settings.backgroundColor:"")}}]),n}(z),en=n(32110),tn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;(0,c.Z)(this,n),(r=t.call(this))._context=e;var a=r._context.configuration.options;return r._domNode=(0,E.X)(document.createElement("canvas")),r._domNode.setClassName(i),r._domNode.setPosition("absolute"),r._domNode.setLayerHinting(!0),r._domNode.setContain("strict"),r._zoneManager=new en.Tj((function(e){return r._context.viewLayout.getVerticalOffsetForLineNumber(e)})),r._zoneManager.setDOMWidth(0),r._zoneManager.setDOMHeight(0),r._zoneManager.setOuterHeight(r._context.viewLayout.getScrollHeight()),r._zoneManager.setLineHeight(a.get(55)),r._zoneManager.setPixelRatio(a.get(125)),r._context.addEventHandler((0,o.Z)(r)),r}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;return e.hasChanged(55)&&(this._zoneManager.setLineHeight(t.get(55)),this._render()),e.hasChanged(125)&&(this._zoneManager.setPixelRatio(t.get(125)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}},{key:"onFlushed",value:function(e){return this._render(),!0}},{key:"onScrollChanged",value:function(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}},{key:"onZonesChanged",value:function(e){return this._render(),!0}},{key:"getDomNode",value:function(){return this._domNode.domNode}},{key:"setLayout",value:function(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);var t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,(t=this._zoneManager.setDOMHeight(e.height)||t)&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}},{key:"setZones",value:function(e){this._zoneManager.setZones(e),this._render()}},{key:"_render",value:function(){if(0===this._zoneManager.getOuterHeight())return!1;var e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),n=this._zoneManager.resolveColorZones(),i=this._zoneManager.getId2Color(),r=this._domNode.domNode.getContext("2d");return r.clearRect(0,0,e,t),n.length>0&&this._renderOneLane(r,n,i,e),!0}},{key:"_renderOneLane",value:function(e,t,n,i){var o,a=0,s=0,u=0,l=(0,r.Z)(t);try{for(l.s();!(o=l.n()).done;){var c=o.value,d=c.colorId,h=c.from,f=c.to;d!==a?(e.fillRect(0,s,i,u-s),a=d,e.fillStyle=n[a],s=h,u=f):u>=h?u=Math.max(u,f):(e.fillRect(0,s,i,u-s),s=h,u=f)}}catch(p){l.e(p)}finally{l.f()}e.fillRect(0,s,i,u-s)}}]),n}(B),nn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this,e)).domNode=(0,E.X)(document.createElement("div")),i.domNode.setAttribute("role","presentation"),i.domNode.setAttribute("aria-hidden","true"),i.domNode.setClassName("view-rulers"),i._renderedRulers=[];var r=i._context.configuration.options;return i._rulers=r.get(88),i._typicalHalfwidthCharacterWidth=r.get(40).typicalHalfwidthCharacterWidth,i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;return this._rulers=t.get(88),this._typicalHalfwidthCharacterWidth=t.get(40).typicalHalfwidthCharacterWidth,!0}},{key:"onScrollChanged",value:function(e){return e.scrollHeightChanged}},{key:"prepareRender",value:function(e){}},{key:"_ensureRulersCount",value:function(){var e=this._renderedRulers.length,t=this._rulers.length;if(e!==t)if(e<t)for(var n=this._context.model.getTextModelOptions().tabSize,i=t-e;i>0;){var r=(0,E.X)(document.createElement("div"));r.setClassName("view-ruler"),r.setWidth(n),this.domNode.appendChild(r),this._renderedRulers.push(r),i--}else for(var o=e-t;o>0;){var a=this._renderedRulers.pop();this.domNode.removeChild(a),o--}}},{key:"render",value:function(e){this._ensureRulersCount();for(var t=0,n=this._rulers.length;t<n;t++){var i=this._renderedRulers[t],r=this._rulers[t];i.setBoxShadow(r.color?"1px 0 0 0 ".concat(r.color," inset"):""),i.setHeight(Math.min(e.scrollHeight,1e6)),i.setLeft(r.column*this._typicalHalfwidthCharacterWidth)}}}]),n}(z);(0,je.Ic)((function(e,t){var n=e.getColor(Fe.zk);n&&t.addRule(".monaco-editor .view-ruler { box-shadow: 1px 0 0 0 ".concat(n," inset; }"))}));var rn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this,e))._scrollTop=0,i._width=0,i._updateWidth(),i._shouldShow=!1;var r=i._context.configuration.options.get(89);return i._useShadows=r.useShadows,i._domNode=(0,E.X)(document.createElement("div")),i._domNode.setAttribute("role","presentation"),i._domNode.setAttribute("aria-hidden","true"),i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_updateShouldShow",value:function(){var e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e&&(this._shouldShow=e,!0)}},{key:"getDomNode",value:function(){return this._domNode}},{key:"_updateWidth",value:function(){var e=this._context.configuration.options.get(127);0===e.minimap.renderMinimap||e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?this._width=e.width:this._width=e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options.get(89);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0}},{key:"onScrollChanged",value:function(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}]),n}(z);(0,je.Ic)((function(e,t){var n=e.getColor(Ot._w);n&&t.addRule(".monaco-editor .scroll-decoration { box-shadow: ".concat(n," 0 6px 6px -6px inset; }"))}));var on=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.left=t.left,this.width=t.width,this.startStyle=null,this.endStyle=null})),an=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.lineNumber=t,this.ranges=n}));function sn(e){return new on(e)}function un(e){return new an(e.lineNumber,e.ranges.map(sn))}var ln=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._previousFrameVisibleRangesWithStyle=[],i._context=e;var r=i._context.configuration.options;return i._lineHeight=r.get(55),i._roundedSelection=r.get(87),i._typicalHalfwidthCharacterWidth=r.get(40).typicalHalfwidthCharacterWidth,i._selections=[],i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;return this._lineHeight=t.get(55),this._roundedSelection=t.get(87),this._typicalHalfwidthCharacterWidth=t.get(40).typicalHalfwidthCharacterWidth,!0}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections.slice(0),!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_visibleRangesHaveGaps",value:function(e){for(var t=0,n=e.length;t<n;t++){if(e[t].ranges.length>1)return!0}return!1}},{key:"_enrichVisibleRangesWithStyle",value:function(e,t,n){var i=this._typicalHalfwidthCharacterWidth/4,r=null,o=null;if(n&&n.length>0&&t.length>0){var a=t[0].lineNumber;if(a===e.startLineNumber)for(var s=0;!r&&s<n.length;s++)n[s].lineNumber===a&&(r=n[s].ranges[0]);var u=t[t.length-1].lineNumber;if(u===e.endLineNumber)for(var l=n.length-1;!o&&l>=0;l--)n[l].lineNumber===u&&(o=n[l].ranges[0]);r&&!r.startStyle&&(r=null),o&&!o.startStyle&&(o=null)}for(var c=0,d=t.length;c<d;c++){var h=t[c].ranges[0],f=h.left,p=h.left+h.width,g={top:0,bottom:0},v={top:0,bottom:0};if(c>0){var m=t[c-1].ranges[0].left,_=t[c-1].ranges[0].left+t[c-1].ranges[0].width;cn(f-m)<i?g.top=2:f>m&&(g.top=1),cn(p-_)<i?v.top=2:m<p&&p<_&&(v.top=1)}else r&&(g.top=r.startStyle.top,v.top=r.endStyle.top);if(c+1<d){var y=t[c+1].ranges[0].left,b=t[c+1].ranges[0].left+t[c+1].ranges[0].width;cn(f-y)<i?g.bottom=2:y<f&&f<b&&(g.bottom=1),cn(p-b)<i?v.bottom=2:p<b&&(v.bottom=1)}else o&&(g.bottom=o.startStyle.bottom,v.bottom=o.endStyle.bottom);h.startStyle=g,h.endStyle=v}}},{key:"_getVisibleRangesWithStyle",value:function(e,t,n){var i=(t.linesVisibleRangesForRange(e,!0)||[]).map(un);return!this._visibleRangesHaveGaps(i)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,i,n),i}},{key:"_createSelectionPiece",value:function(e,t,n,i,r){return'<div class="cslr '+n+'" style="top:'+e.toString()+"px;left:"+i.toString()+"px;width:"+r.toString()+"px;height:"+t+'px;"></div>'}},{key:"_actualRenderOneSelection",value:function(e,t,i,r){if(0!==r.length)for(var o=!!r[0].ranges[0].startStyle,a=this._lineHeight.toString(),s=(this._lineHeight-1).toString(),u=r[0].lineNumber,l=r[r.length-1].lineNumber,c=0,d=r.length;c<d;c++){for(var h=r[c],f=h.lineNumber,p=f-t,g=i&&(f===l||f===u)?s:a,v=i&&f===u?1:0,m="",_="",y=0,b=h.ranges.length;y<b;y++){var w=h.ranges[y];if(o){var C=w.startStyle,k=w.endStyle;if(1===C.top||1===C.bottom){m+=this._createSelectionPiece(v,g,n.SELECTION_CLASS_NAME,w.left-n.ROUNDED_PIECE_WIDTH,n.ROUNDED_PIECE_WIDTH);var S=n.EDITOR_BACKGROUND_CLASS_NAME;1===C.top&&(S+=" "+n.SELECTION_TOP_RIGHT),1===C.bottom&&(S+=" "+n.SELECTION_BOTTOM_RIGHT),m+=this._createSelectionPiece(v,g,S,w.left-n.ROUNDED_PIECE_WIDTH,n.ROUNDED_PIECE_WIDTH)}if(1===k.top||1===k.bottom){m+=this._createSelectionPiece(v,g,n.SELECTION_CLASS_NAME,w.left+w.width,n.ROUNDED_PIECE_WIDTH);var x=n.EDITOR_BACKGROUND_CLASS_NAME;1===k.top&&(x+=" "+n.SELECTION_TOP_LEFT),1===k.bottom&&(x+=" "+n.SELECTION_BOTTOM_LEFT),m+=this._createSelectionPiece(v,g,x,w.left+w.width,n.ROUNDED_PIECE_WIDTH)}}var L=n.SELECTION_CLASS_NAME;if(o){var E=w.startStyle,N=w.endStyle;0===E.top&&(L+=" "+n.SELECTION_TOP_LEFT),0===E.bottom&&(L+=" "+n.SELECTION_BOTTOM_LEFT),0===N.top&&(L+=" "+n.SELECTION_TOP_RIGHT),0===N.bottom&&(L+=" "+n.SELECTION_BOTTOM_RIGHT)}_+=this._createSelectionPiece(v,g,L,w.left,w.width)}e[p][0]+=m,e[p][1]+=_}}},{key:"prepareRender",value:function(e){for(var t=[],n=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,o=n;o<=r;o++){t[o-n]=["",""]}for(var a=[],s=0,u=this._selections.length;s<u;s++){var l=this._selections[s];if(l.isEmpty())a[s]=null;else{var c=this._getVisibleRangesWithStyle(l,e,this._previousFrameVisibleRangesWithStyle[s]);a[s]=c,this._actualRenderOneSelection(t,n,this._selections.length>1,c)}}this._previousFrameVisibleRangesWithStyle=a,this._renderResult=t.map((function(e){var t=(0,i.Z)(e,2);return t[0]+t[1]}))}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(Ze);function cn(e){return e<0?-e:e}ln.SELECTION_CLASS_NAME="selected-text",ln.SELECTION_TOP_LEFT="top-left-radius",ln.SELECTION_BOTTOM_LEFT="bottom-left-radius",ln.SELECTION_TOP_RIGHT="top-right-radius",ln.SELECTION_BOTTOM_RIGHT="bottom-right-radius",ln.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",ln.ROUNDED_PIECE_WIDTH=10,(0,je.Ic)((function(e,t){var n=e.getColor(Ot.hE);n&&t.addRule(".monaco-editor .focused .selected-text { background-color: ".concat(n,"; }"));var i=e.getColor(Ot.ES);i&&t.addRule(".monaco-editor .selected-text { background-color: ".concat(i,"; }"));var r=e.getColor(Ot.yb);r&&!r.isTransparent()&&t.addRule(".monaco-editor .view-line span.inline-selected-text { color: ".concat(r,"; }"))}));var dn=(0,d.Z)((function e(t,n,i,r,o,a){(0,c.Z)(this,e),this.top=t,this.left=n,this.width=i,this.height=r,this.textContent=o,this.textContentClassName=a})),hn=function(){function e(t){(0,c.Z)(this,e),this._context=t;var n=this._context.configuration.options,i=n.get(40);this._cursorStyle=n.get(22),this._lineHeight=n.get(55),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(n.get(25),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=(0,E.X)(document.createElement("div")),this._domNode.setClassName("cursor ".concat(We.S)),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),k.V.applyFontInfo(this._domNode,i),this._domNode.setDisplay("none"),this._position=new he.L(1,1),this._lastRenderedContent="",this._renderData=null}return(0,d.Z)(e,[{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return this._position}},{key:"show",value:function(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}},{key:"hide",value:function(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(40);return this._cursorStyle=t.get(22),this._lineHeight=t.get(55),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(25),this._typicalHalfwidthCharacterWidth),k.V.applyFontInfo(this._domNode,n),!0}},{key:"onCursorPositionChanged",value:function(e){return this._position=e,!0}},{key:"_prepareRender",value:function(e){var t="";if(this._cursorStyle===ee.d2.Line||this._cursorStyle===ee.d2.LineThin){var n,i=e.visibleRangeForPosition(this._position);if(!i||i.outsideRenderedLine)return null;if(this._cursorStyle===ee.d2.Line){if((n=_.computeScreenAwareSize(this._lineCursorWidth>0?this._lineCursorWidth:2))>2){var r=this._context.model.getLineContent(this._position.lineNumber),o=Re.vH(r,this._position.column-1);t=r.substr(this._position.column-1,o)}}else n=_.computeScreenAwareSize(1);var a=i.left;n>=2&&a>=1&&(a-=1);var s=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta;return new dn(s,a,n,this._lineHeight,t,"")}var u=this._context.model.getLineContent(this._position.lineNumber),l=Re.vH(u,this._position.column-1),c=e.linesVisibleRangesForRange(new fe.e(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column+l),!1);if(!c||0===c.length)return null;var d=c[0];if(d.outsideRenderedLine||0===d.ranges.length)return null;var h=d.ranges[0],f=h.width<1?this._typicalHalfwidthCharacterWidth:h.width,p="";if(this._cursorStyle===ee.d2.Block){var g=this._context.model.getViewLineData(this._position.lineNumber);t=u.substr(this._position.column-1,l);var v=g.tokens.findTokenIndexAtOffset(this._position.column-1);p=g.tokens.getClassName(v)}var m=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta,y=this._lineHeight;return this._cursorStyle!==ee.d2.Underline&&this._cursorStyle!==ee.d2.UnderlineThin||(m+=this._lineHeight-2,y=2),new dn(m,h.left,f,y,t,p)}},{key:"prepareRender",value:function(e){this._renderData=this._prepareRender(e)}},{key:"render",value:function(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName("cursor ".concat(We.S," ").concat(this._renderData.textContentClassName)),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}]),e}(),fn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options;return i._readOnly=r.get(77),i._cursorBlinking=r.get(20),i._cursorStyle=r.get(22),i._cursorSmoothCaretAnimation=r.get(21),i._selectionIsEmpty=!0,i._isComposingInput=!1,i._isVisible=!1,i._primaryCursor=new hn(i._context),i._secondaryCursors=[],i._renderData=[],i._domNode=(0,E.X)(document.createElement("div")),i._domNode.setAttribute("role","presentation"),i._domNode.setAttribute("aria-hidden","true"),i._updateDomClassName(),i._domNode.appendChild(i._primaryCursor.getDomNode()),i._startCursorBlinkAnimation=new T._F,i._cursorFlatBlinkInterval=new T.zh,i._blinkingEnabled=!1,i._editorHasFocus=!1,i._updateBlinking(),i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}},{key:"getDomNode",value:function(){return this._domNode}},{key:"onCompositionStart",value:function(e){return this._isComposingInput=!0,this._updateBlinking(),!0}},{key:"onCompositionEnd",value:function(e){return this._isComposingInput=!1,this._updateBlinking(),!0}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;this._readOnly=t.get(77),this._cursorBlinking=t.get(20),this._cursorStyle=t.get(22),this._cursorSmoothCaretAnimation=t.get(21),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(var n=0,i=this._secondaryCursors.length;n<i;n++)this._secondaryCursors[n].onConfigurationChanged(e);return!0}},{key:"_onCursorPositionChanged",value:function(e,t){if(this._primaryCursor.onCursorPositionChanged(e),this._updateBlinking(),this._secondaryCursors.length<t.length)for(var n=t.length-this._secondaryCursors.length,i=0;i<n;i++){var r=new hn(this._context);this._domNode.domNode.insertBefore(r.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(r)}else if(this._secondaryCursors.length>t.length)for(var o=this._secondaryCursors.length-t.length,a=0;a<o;a++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1);for(var s=0;s<t.length;s++)this._secondaryCursors[s].onCursorPositionChanged(t[s])}},{key:"onCursorStateChanged",value:function(e){for(var t=[],n=0,i=e.selections.length;n<i;n++)t[n]=e.selections[n].getPosition();this._onCursorPositionChanged(t[0],t.slice(1));var r=e.selections[0].isEmpty();return this._selectionIsEmpty!==r&&(this._selectionIsEmpty=r,this._updateDomClassName()),!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onFocusChanged",value:function(e){return this._editorHasFocus=e.isFocused,this._updateBlinking(),!1}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return!0}},{key:"onTokensChanged",value:function(e){var t=function(t){for(var n=0,i=e.ranges.length;n<i;n++)if(e.ranges[n].fromLineNumber<=t.lineNumber&&t.lineNumber<=e.ranges[n].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;var n,i=(0,r.Z)(this._secondaryCursors);try{for(i.s();!(n=i.n()).done;){if(t(n.value.getPosition()))return!0}}catch(o){i.e(o)}finally{i.f()}return!1}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getCursorBlinking",value:function(){return this._isComposingInput?0:this._editorHasFocus?this._readOnly?5:this._cursorBlinking:0}},{key:"_updateBlinking",value:function(){var e=this;this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();var t=this._getCursorBlinking(),i=0===t,r=5===t;i?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),i||r||(1===t?this._cursorFlatBlinkInterval.cancelAndSet((function(){e._isVisible?e._hide():e._show()}),n.BLINK_INTERVAL):this._startCursorBlinkAnimation.setIfNotSet((function(){e._blinkingEnabled=!0,e._updateDomClassName()}),n.BLINK_INTERVAL))}},{key:"_updateDomClassName",value:function(){this._domNode.setClassName(this._getClassName())}},{key:"_getClassName",value:function(){var e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case ee.d2.Line:e+=" cursor-line-style";break;case ee.d2.Block:e+=" cursor-block-style";break;case ee.d2.Underline:e+=" cursor-underline-style";break;case ee.d2.LineThin:e+=" cursor-line-thin-style";break;case ee.d2.BlockOutline:e+=" cursor-block-outline-style";break;case ee.d2.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return this._cursorSmoothCaretAnimation&&(e+=" cursor-smooth-caret-animation"),e}},{key:"_show",value:function(){this._primaryCursor.show();for(var e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0}},{key:"_hide",value:function(){this._primaryCursor.hide();for(var e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1}},{key:"prepareRender",value:function(e){this._primaryCursor.prepareRender(e);for(var t=0,n=this._secondaryCursors.length;t<n;t++)this._secondaryCursors[t].prepareRender(e)}},{key:"render",value:function(e){var t=[],n=0,i=this._primaryCursor.render(e);i&&(t[n++]=i);for(var r=0,o=this._secondaryCursors.length;r<o;r++){var a=this._secondaryCursors[r].render(e);a&&(t[n++]=a)}this._renderData=t}},{key:"getLastRenderData",value:function(){return this._renderData}}]),n}(z);fn.BLINK_INTERVAL=500,(0,je.Ic)((function(e,t){var n=e.getColor(Fe.n0);if(n){var i=e.getColor(Fe.fY);i||(i=n.opposite()),t.addRule(".monaco-editor .cursors-layer .cursor { background-color: ".concat(n,"; border-color: ").concat(n,"; color: ").concat(i,"; }")),"hc"===e.type&&t.addRule(".monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ".concat(i,"; border-right: 1px solid ").concat(i,"; }"))}}));var pn=function(){throw new Error("Invalid change accessor")},gn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options,o=r.get(127);return i._lineHeight=r.get(55),i._contentWidth=o.contentWidth,i._contentLeft=o.contentLeft,i.domNode=(0,E.X)(document.createElement("div")),i.domNode.setClassName("view-zones"),i.domNode.setPosition("absolute"),i.domNode.setAttribute("role","presentation"),i.domNode.setAttribute("aria-hidden","true"),i.marginDomNode=(0,E.X)(document.createElement("div")),i.marginDomNode.setClassName("margin-view-zones"),i.marginDomNode.setPosition("absolute"),i.marginDomNode.setAttribute("role","presentation"),i.marginDomNode.setAttribute("aria-hidden","true"),i._zones={},i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._zones={}}},{key:"_recomputeWhitespacesProps",value:function(){var e,t=this,n=this._context.viewLayout.getWhitespaces(),i=new Map,o=(0,r.Z)(n);try{for(o.s();!(e=o.n()).done;){var a=e.value;i.set(a.id,a)}}catch(u){o.e(u)}finally{o.f()}var s=!1;return this._context.model.changeWhitespace((function(e){for(var n=Object.keys(t._zones),r=0,o=n.length;r<o;r++){var a=n[r],u=t._zones[a],l=t._computeWhitespaceProps(u.delegate),c=i.get(a);!c||c.afterLineNumber===l.afterViewLineNumber&&c.height===l.heightInPx||(e.changeOneWhitespace(a,l.afterViewLineNumber,l.heightInPx),t._safeCallOnComputedHeight(u.delegate,l.heightInPx),s=!0)}})),s}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._lineHeight=t.get(55),this._contentWidth=n.contentWidth,this._contentLeft=n.contentLeft,e.hasChanged(55)&&this._recomputeWhitespacesProps(),!0}},{key:"onLineMappingChanged",value:function(e){return this._recomputeWhitespacesProps()}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged||e.scrollWidthChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"_getZoneOrdinal",value:function(e){return"undefined"!==typeof e.afterColumn?e.afterColumn:1e4}},{key:"_computeWhitespaceProps",value:function(e){if(0===e.afterLineNumber)return{afterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};var t,n;if("undefined"!==typeof e.afterColumn)t=this._context.model.validateModelPosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{var i=this._context.model.validateModelPosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new he.L(i,this._context.model.getModelLineMaxColumn(i))}n=t.column===this._context.model.getModelLineMaxColumn(t.lineNumber)?this._context.model.validateModelPosition({lineNumber:t.lineNumber+1,column:1}):this._context.model.validateModelPosition({lineNumber:t.lineNumber,column:t.column+1});var r=this._context.model.coordinatesConverter.convertModelPositionToViewPosition(t),o=this._context.model.coordinatesConverter.modelPositionIsVisible(n);return{afterViewLineNumber:r.lineNumber,heightInPx:o?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}},{key:"changeViewZones",value:function(e){var t=this,n=!1;return this._context.model.changeWhitespace((function(i){var r={addZone:function(e){return n=!0,t._addZone(i,e)},removeZone:function(e){e&&(n=t._removeZone(i,e)||n)},layoutZone:function(e){e&&(n=t._layoutZone(i,e)||n)}};!function(e,t){try{return e(t)}catch(n){(0,y.dL)(n)}}(e,r),r.addZone=pn,r.removeZone=pn,r.layoutZone=pn})),n}},{key:"_addZone",value:function(e,t){var n=this._computeWhitespaceProps(t),i={whitespaceId:e.insertWhitespace(n.afterViewLineNumber,this._getZoneOrdinal(t),n.heightInPx,n.minWidthInPx),delegate:t,isVisible:!1,domNode:(0,E.X)(t.domNode),marginDomNode:t.marginDomNode?(0,E.X)(t.marginDomNode):null};return this._safeCallOnComputedHeight(i.delegate,n.heightInPx),i.domNode.setPosition("absolute"),i.domNode.domNode.style.width="100%",i.domNode.setDisplay("none"),i.domNode.setAttribute("monaco-view-zone",i.whitespaceId),this.domNode.appendChild(i.domNode),i.marginDomNode&&(i.marginDomNode.setPosition("absolute"),i.marginDomNode.domNode.style.width="100%",i.marginDomNode.setDisplay("none"),i.marginDomNode.setAttribute("monaco-view-zone",i.whitespaceId),this.marginDomNode.appendChild(i.marginDomNode)),this._zones[i.whitespaceId]=i,this.setShouldRender(),i.whitespaceId}},{key:"_removeZone",value:function(e,t){if(this._zones.hasOwnProperty(t)){var n=this._zones[t];return delete this._zones[t],e.removeWhitespace(n.whitespaceId),n.domNode.removeAttribute("monaco-visible-view-zone"),n.domNode.removeAttribute("monaco-view-zone"),n.domNode.domNode.parentNode.removeChild(n.domNode.domNode),n.marginDomNode&&(n.marginDomNode.removeAttribute("monaco-visible-view-zone"),n.marginDomNode.removeAttribute("monaco-view-zone"),n.marginDomNode.domNode.parentNode.removeChild(n.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}},{key:"_layoutZone",value:function(e,t){if(this._zones.hasOwnProperty(t)){var n=this._zones[t],i=this._computeWhitespaceProps(n.delegate);return e.changeOneWhitespace(n.whitespaceId,i.afterViewLineNumber,i.heightInPx),this._safeCallOnComputedHeight(n.delegate,i.heightInPx),this.setShouldRender(),!0}return!1}},{key:"shouldSuppressMouseDownOnViewZone",value:function(e){if(this._zones.hasOwnProperty(e)){var t=this._zones[e];return Boolean(t.delegate.suppressMouseDown)}return!1}},{key:"_heightInPixels",value:function(e){return"number"===typeof e.heightInPx?e.heightInPx:"number"===typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight}},{key:"_minWidthInPixels",value:function(e){return"number"===typeof e.minWidthInPx?e.minWidthInPx:0}},{key:"_safeCallOnComputedHeight",value:function(e,t){if("function"===typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(n){(0,y.dL)(n)}}},{key:"_safeCallOnDomNodeTop",value:function(e,t){if("function"===typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(n){(0,y.dL)(n)}}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){for(var t=e.viewportData.whitespaceViewportData,n={},i=!1,r=0,o=t.length;r<o;r++)n[t[r].id]=t[r],i=!0;for(var a=Object.keys(this._zones),s=0,u=a.length;s<u;s++){var l=a[s],c=this._zones[l],d=0,h=0,f="none";n.hasOwnProperty(l)?(d=n[l].verticalOffset-e.bigNumbersDelta,h=n[l].height,f="block",c.isVisible||(c.domNode.setAttribute("monaco-visible-view-zone","true"),c.isVisible=!0),this._safeCallOnDomNodeTop(c.delegate,e.getScrolledTopFromAbsoluteTop(n[l].verticalOffset))):(c.isVisible&&(c.domNode.removeAttribute("monaco-visible-view-zone"),c.isVisible=!1),this._safeCallOnDomNodeTop(c.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),c.domNode.setTop(d),c.domNode.setHeight(h),c.domNode.setDisplay(f),c.marginDomNode&&(c.marginDomNode.setTop(d),c.marginDomNode.setHeight(h),c.marginDomNode.setDisplay(f))}i&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))}}]),n}(z);var vn=function(){function e(t){(0,c.Z)(this,e),this._theme=t}return(0,d.Z)(e,[{key:"type",get:function(){return this._theme.type}},{key:"update",value:function(e){this._theme=e}},{key:"getColor",value:function(e){return this._theme.getColor(e)}}]),e}(),mn=function(){function e(t,n,i){(0,c.Z)(this,e),this.configuration=t,this.theme=new vn(n),this.model=i,this.viewLayout=i.viewLayout}return(0,d.Z)(e,[{key:"addEventHandler",value:function(e){this.model.addViewEventHandler(e)}},{key:"removeEventHandler",value:function(e){this.model.removeViewEventHandler(e)}}]),e}(),_n=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.selections=t,this.startLineNumber=0|n.startLineNumber,this.endLineNumber=0|n.endLineNumber,this.relativeVerticalOffset=n.relativeVerticalOffset,this.bigNumbersDelta=0|n.bigNumbersDelta,this.whitespaceViewportData=i,this._model=r,this.visibleRange=new fe.e(n.startLineNumber,this._model.getLineMinColumn(n.startLineNumber),n.endLineNumber,this._model.getLineMaxColumn(n.endLineNumber))}return(0,d.Z)(e,[{key:"getViewLineRenderingData",value:function(e){return this._model.getViewLineRenderingData(this.visibleRange,e)}},{key:"getDecorationsInViewport",value:function(){return this._model.getDecorationsInViewport(this.visibleRange)}}]),e}(),yn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u){var l;(0,c.Z)(this,n),(l=t.call(this))._selections=[new L.Y(1,1,1,1)],l._renderAnimationFrame=null;var d=new Ge(i,a,s,e);l._context=new mn(i,r.getColorTheme(),a),l._configPixelRatio=l._context.configuration.options.get(125),l._context.addEventHandler((0,o.Z)(l)),l._register(r.onDidColorThemeChange((function(e){l._context.theme.update(e),l._context.model.onDidColorThemeChange(),l.render(!0,!1)}))),l._viewParts=[],l._textAreaHandler=new Ue(l._context,d,l._createTextAreaHandlerHelper()),l._viewParts.push(l._textAreaHandler),l._linesContent=(0,E.X)(document.createElement("div")),l._linesContent.setClassName("lines-content monaco-editor-background"),l._linesContent.setPosition("absolute"),l.domNode=(0,E.X)(document.createElement("div")),l.domNode.setClassName(l._getEditorClassName()),l.domNode.setAttribute("role","code"),l._overflowGuardContainer=(0,E.X)(document.createElement("div")),W.write(l._overflowGuardContainer,3),l._overflowGuardContainer.setClassName("overflow-guard"),l._scrollbar=new mt(l._context,l._linesContent,l.domNode,l._overflowGuardContainer),l._viewParts.push(l._scrollbar),l._viewLines=new xt(l._context,l._linesContent),l._viewZones=new gn(l._context),l._viewParts.push(l._viewZones);var h=new Jt(l._context);l._viewParts.push(h);var f=new rn(l._context);l._viewParts.push(f);var p=new rt(l._context);l._viewParts.push(p),p.addDynamicOverlay(new ft(l._context)),p.addDynamicOverlay(new ln(l._context)),p.addDynamicOverlay(new wt(l._context)),p.addDynamicOverlay(new gt(l._context));var g=new ot(l._context);l._viewParts.push(g),g.addDynamicOverlay(new pt(l._context)),g.addDynamicOverlay(new bt(l._context)),g.addDynamicOverlay(new Et(l._context)),g.addDynamicOverlay(new Lt(l._context)),g.addDynamicOverlay(new He(l._context));var v=new Be(l._context);v.getDomNode().appendChild(l._viewZones.marginDomNode),v.getDomNode().appendChild(g.getDomNode()),l._viewParts.push(v),l._contentWidgets=new st(l._context,l.domNode),l._viewParts.push(l._contentWidgets),l._viewCursors=new fn(l._context),l._viewParts.push(l._viewCursors),l._overlayWidgets=new $t(l._context),l._viewParts.push(l._overlayWidgets);var m=new nn(l._context);l._viewParts.push(m);var _=new qt(l._context);if(l._viewParts.push(_),h){var y=l._scrollbar.getOverviewRulerLayoutInfo();y.parent.insertBefore(h.getDomNode(),y.insertBefore)}return l._linesContent.appendChild(p.getDomNode()),l._linesContent.appendChild(m.domNode),l._linesContent.appendChild(l._viewZones.domNode),l._linesContent.appendChild(l._viewLines.getDomNode()),l._linesContent.appendChild(l._contentWidgets.domNode),l._linesContent.appendChild(l._viewCursors.getDomNode()),l._overflowGuardContainer.appendChild(v.getDomNode()),l._overflowGuardContainer.appendChild(l._scrollbar.getDomNode()),l._overflowGuardContainer.appendChild(f.getDomNode()),l._overflowGuardContainer.appendChild(l._textAreaHandler.textArea),l._overflowGuardContainer.appendChild(l._textAreaHandler.textAreaCover),l._overflowGuardContainer.appendChild(l._overlayWidgets.getDomNode()),l._overflowGuardContainer.appendChild(_.getDomNode()),l.domNode.appendChild(l._overflowGuardContainer),u?u.appendChild(l._contentWidgets.overflowingContentWidgetsDomNode.domNode):l.domNode.appendChild(l._contentWidgets.overflowingContentWidgetsDomNode),l._applyLayout(),l._pointerHandler=l._register(new Ae(l._context,d,l._createPointerHandlerHelper())),l}return(0,d.Z)(n,[{key:"_flushAccumulatedAndRenderNow",value:function(){this._renderNow()}},{key:"_createPointerHandlerHelper",value:function(){var e=this;return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,focusTextArea:function(){e.focus()},dispatchTextAreaEvent:function(t){e._textAreaHandler.textArea.domNode.dispatchEvent(t)},getLastRenderData:function(){var t=e._viewCursors.getLastRenderData()||[],n=e._textAreaHandler.getLastRenderData();return new ve(t,n)},shouldSuppressMouseDownOnViewZone:function(t){return e._viewZones.shouldSuppressMouseDownOnViewZone(t)},shouldSuppressMouseDownOnWidget:function(t){return e._contentWidgets.shouldSuppressMouseDownOnWidget(t)},getPositionFromDOMInfo:function(t,n){return e._flushAccumulatedAndRenderNow(),e._viewLines.getPositionFromDOMInfo(t,n)},visibleRangeForPosition:function(t,n){return e._flushAccumulatedAndRenderNow(),e._viewLines.visibleRangeForPosition(new he.L(t,n))},getLineWidth:function(t){return e._flushAccumulatedAndRenderNow(),e._viewLines.getLineWidth(t)}}}},{key:"_createTextAreaHandlerHelper",value:function(){var e=this;return{visibleRangeForPositionRelativeToEditor:function(t,n){return e._flushAccumulatedAndRenderNow(),e._viewLines.visibleRangeForPosition(new he.L(t,n))}}}},{key:"_applyLayout",value:function(){var e=this._context.configuration.options.get(127);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this._overflowGuardContainer.setWidth(e.width),this._overflowGuardContainer.setHeight(e.height),this._linesContent.setWidth(1e6),this._linesContent.setHeight(1e6)}},{key:"_getEditorClassName",value:function(){var e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(124)+" "+(0,je.m6)(this._context.theme.type)+e}},{key:"handleEvents",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"handleEvents",this).call(this,e),this._scheduleRender()}},{key:"onConfigurationChanged",value:function(e){return this._configPixelRatio=this._context.configuration.options.get(125),this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections,!1}},{key:"onFocusChanged",value:function(e){return this.domNode.setClassName(this._getEditorClassName()),!1}},{key:"onThemeChanged",value:function(e){return this.domNode.setClassName(this._getEditorClassName()),!1}},{key:"dispose",value:function(){null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();var e,t=(0,r.Z)(this._viewParts);try{for(t.s();!(e=t.n()).done;){e.value.dispose()}}catch(i){t.e(i)}finally{t.f()}(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_scheduleRender",value:function(){null===this._renderAnimationFrame&&(this._renderAnimationFrame=_.runAtThisOrScheduleAtNextAnimationFrame(this._onRenderScheduled.bind(this),100))}},{key:"_onRenderScheduled",value:function(){this._renderAnimationFrame=null,this._flushAccumulatedAndRenderNow()}},{key:"_renderNow",value:function(){var e=this;!function(e){try{return e()}catch(t){(0,y.dL)(t)}}((function(){return e._actualRender()}))}},{key:"_getViewPartsToRender",value:function(){var e,t=[],n=0,i=(0,r.Z)(this._viewParts);try{for(i.s();!(e=i.n()).done;){var o=e.value;o.shouldRender()&&(t[n++]=o)}}catch(a){i.e(a)}finally{i.f()}return t}},{key:"_actualRender",value:function(){if(_.isInDOM(this.domNode.domNode)){var e=this._getViewPartsToRender();if(this._viewLines.shouldRender()||0!==e.length){var t=this._context.viewLayout.getLinesViewportData();this._context.model.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);var n=new _n(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.model);this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(n),this._viewLines.shouldRender()&&(this._viewLines.renderText(n),this._viewLines.onDidRender(),e=this._getViewPartsToRender());var i,o=new V(this._context.viewLayout,n,this._viewLines),a=(0,r.Z)(e);try{for(a.s();!(i=a.n()).done;){i.value.prepareRender(o)}}catch(c){a.e(c)}finally{a.f()}var s,u=(0,r.Z)(e);try{for(u.s();!(s=u.n()).done;){var l=s.value;l.render(o),l.onDidRender()}}catch(c){u.e(c)}finally{u.f()}Math.abs(x.mX()-this._configPixelRatio)>.001&&this._context.configuration.updatePixelRatio()}}}},{key:"delegateVerticalScrollbarMouseDown",value:function(e){this._scrollbar.delegateVerticalScrollbarMouseDown(e)}},{key:"restoreState",value:function(e){this._context.model.setScrollPosition({scrollTop:e.scrollTop},1),this._context.model.tokenizeViewport(),this._renderNow(),this._viewLines.updateLineWidths(),this._context.model.setScrollPosition({scrollLeft:e.scrollLeft},1)}},{key:"getOffsetForColumn",value:function(e,t){var n=this._context.model.validateModelPosition({lineNumber:e,column:t}),i=this._context.model.coordinatesConverter.convertModelPositionToViewPosition(n);this._flushAccumulatedAndRenderNow();var r=this._viewLines.visibleRangeForPosition(new he.L(i.lineNumber,i.column));return r?r.left:-1}},{key:"getTargetAtClientPoint",value:function(e,t){var n=this._pointerHandler.getTargetAtClientPoint(e,t);return n?$e.convertViewToModelMouseTarget(n,this._context.model.coordinatesConverter):null}},{key:"createOverviewRuler",value:function(e){return new tn(this._context,e)}},{key:"change",value:function(e){this._viewZones.changeViewZones(e),this._scheduleRender()}},{key:"render",value:function(e,t){if(t){this._viewLines.forceShouldRender();var n,i=(0,r.Z)(this._viewParts);try{for(i.s();!(n=i.n()).done;){n.value.forceShouldRender()}}catch(o){i.e(o)}finally{i.f()}}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}},{key:"focus",value:function(){this._textAreaHandler.focusTextArea()}},{key:"isFocused",value:function(){return this._textAreaHandler.isFocused()}},{key:"setAriaOptions",value:function(e){this._textAreaHandler.setAriaOptions(e)}},{key:"addContentWidget",value:function(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}},{key:"layoutContentWidget",value:function(e){var t=e.position&&e.position.range||null;if(null===t){var n=e.position?e.position.position:null;null!==n&&(t=new fe.e(n.lineNumber,n.column,n.lineNumber,n.column))}var i=e.position?e.position.preference:null;this._contentWidgets.setWidgetPosition(e.widget,t,i),this._scheduleRender()}},{key:"removeContentWidget",value:function(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}},{key:"addOverlayWidget",value:function(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}},{key:"layoutOverlayWidget",value:function(e){var t=e.position?e.position.preference:null;this._overlayWidgets.setWidgetPosition(e.widget,t)&&this._scheduleRender()}},{key:"removeOverlayWidget",value:function(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}}]),n}(B);var bn=function(){function e(t){(0,c.Z)(this,e),this._selTrackedRange=null,this._trackSelection=!0,this._setState(t,new pe.rS(new fe.e(1,1,1,1),0,new he.L(1,1),0),new pe.rS(new fe.e(1,1,1,1),0,new he.L(1,1),0))}return(0,d.Z)(e,[{key:"dispose",value:function(e){this._removeTrackedRange(e)}},{key:"startTrackingSelection",value:function(e){this._trackSelection=!0,this._updateTrackedRange(e)}},{key:"stopTrackingSelection",value:function(e){this._trackSelection=!1,this._removeTrackedRange(e)}},{key:"_updateTrackedRange",value:function(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}},{key:"_removeTrackedRange",value:function(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}},{key:"asCursorState",value:function(){return new pe.Vi(this.modelState,this.viewState)}},{key:"readSelectionFromMarkers",value:function(e){var t=e.model._getTrackedRange(this._selTrackedRange);return 0===this.modelState.selection.getDirection()?new L.Y(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new L.Y(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)}},{key:"ensureValidState",value:function(e){this._setState(e,this.modelState,this.viewState)}},{key:"setState",value:function(e,t,n){this._setState(e,t,n)}},{key:"_setState",value:function(e,t,n){if(t){var i=e.model.validateRange(t.selectionStart),r=t.selectionStart.equalsRange(i)?t.selectionStartLeftoverVisibleColumns:0,o=e.model.validatePosition(t.position),a=t.position.equals(o)?t.leftoverVisibleColumns:0;t=new pe.rS(i,r,o,a)}else{if(!n)return;var s=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(n.selectionStart)),u=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(n.position));t=new pe.rS(s,n.selectionStartLeftoverVisibleColumns,u,n.leftoverVisibleColumns)}if(n){var l=e.coordinatesConverter.validateViewRange(n.selectionStart,t.selectionStart),c=e.coordinatesConverter.validateViewPosition(n.position,t.position);n=new pe.rS(l,t.selectionStartLeftoverVisibleColumns,c,t.leftoverVisibleColumns)}else{var d=e.coordinatesConverter.convertModelPositionToViewPosition(new he.L(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),h=e.coordinatesConverter.convertModelPositionToViewPosition(new he.L(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),f=new fe.e(d.lineNumber,d.column,h.lineNumber,h.column),p=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);n=new pe.rS(f,t.selectionStartLeftoverVisibleColumns,p,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=n,this._updateTrackedRange(e)}}]),e}(),wn=function(){function e(t){(0,c.Z)(this,e),this.context=t,this.primaryCursor=new bn(t),this.secondaryCursors=[],this.lastAddedCursorIndex=0}return(0,d.Z)(e,[{key:"dispose",value:function(){this.primaryCursor.dispose(this.context),this.killSecondaryCursors()}},{key:"startTrackingSelections",value:function(){this.primaryCursor.startTrackingSelection(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].startTrackingSelection(this.context)}},{key:"stopTrackingSelections",value:function(){this.primaryCursor.stopTrackingSelection(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].stopTrackingSelection(this.context)}},{key:"updateContext",value:function(e){this.context=e}},{key:"ensureValidState",value:function(){this.primaryCursor.ensureValidState(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].ensureValidState(this.context)}},{key:"readSelectionFromMarkers",value:function(){var e=[];e[0]=this.primaryCursor.readSelectionFromMarkers(this.context);for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].readSelectionFromMarkers(this.context);return e}},{key:"getAll",value:function(){var e=[];e[0]=this.primaryCursor.asCursorState();for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].asCursorState();return e}},{key:"getViewPositions",value:function(){var e=[];e[0]=this.primaryCursor.viewState.position;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].viewState.position;return e}},{key:"getTopMostViewPosition",value:function(){for(var e=this.primaryCursor.viewState.position,t=0,n=this.secondaryCursors.length;t<n;t++){var i=this.secondaryCursors[t].viewState.position;i.isBefore(e)&&(e=i)}return e}},{key:"getBottomMostViewPosition",value:function(){for(var e=this.primaryCursor.viewState.position,t=0,n=this.secondaryCursors.length;t<n;t++){var i=this.secondaryCursors[t].viewState.position;e.isBeforeOrEqual(i)&&(e=i)}return e}},{key:"getSelections",value:function(){var e=[];e[0]=this.primaryCursor.modelState.selection;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].modelState.selection;return e}},{key:"getViewSelections",value:function(){var e=[];e[0]=this.primaryCursor.viewState.selection;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].viewState.selection;return e}},{key:"setSelections",value:function(e){this.setStates(pe.Vi.fromModelSelections(e))}},{key:"getPrimaryCursor",value:function(){return this.primaryCursor.asCursorState()}},{key:"setStates",value:function(e){null!==e&&(this.primaryCursor.setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}},{key:"_setSecondaryStates",value:function(e){var t=this.secondaryCursors.length,n=e.length;if(t<n)for(var i=n-t,r=0;r<i;r++)this._addSecondaryCursor();else if(t>n)for(var o=t-n,a=0;a<o;a++)this._removeSecondaryCursor(this.secondaryCursors.length-1);for(var s=0;s<n;s++)this.secondaryCursors[s].setState(this.context,e[s].modelState,e[s].viewState)}},{key:"killSecondaryCursors",value:function(){this._setSecondaryStates([])}},{key:"_addSecondaryCursor",value:function(){this.secondaryCursors.push(new bn(this.context)),this.lastAddedCursorIndex=this.secondaryCursors.length}},{key:"getLastAddedCursorIndex",value:function(){return 0===this.secondaryCursors.length||0===this.lastAddedCursorIndex?0:this.lastAddedCursorIndex}},{key:"_removeSecondaryCursor",value:function(e){this.lastAddedCursorIndex>=e+1&&this.lastAddedCursorIndex--,this.secondaryCursors[e].dispose(this.context),this.secondaryCursors.splice(e,1)}},{key:"_getAll",value:function(){var e=[];e[0]=this.primaryCursor;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t];return e}},{key:"normalize",value:function(){if(0!==this.secondaryCursors.length){for(var e=this._getAll(),t=[],n=0,i=e.length;n<i;n++)t.push({index:n,selection:e[n].modelState.selection});t.sort((function(e,t){return e.selection.startLineNumber===t.selection.startLineNumber?e.selection.startColumn-t.selection.startColumn:e.selection.startLineNumber-t.selection.startLineNumber}));for(var o=0;o<t.length-1;o++){var a=t[o],s=t[o+1],u=a.selection,l=s.selection;if(this.context.cursorConfig.multiCursorMergeOverlapping){if(l.isEmpty()||u.isEmpty()?l.getStartPosition().isBeforeOrEqual(u.getEndPosition()):l.getStartPosition().isBefore(u.getEndPosition())){var c=a.index<s.index?o:o+1,d=a.index<s.index?o+1:o,h=t[d].index,f=t[c].index,p=t[d].selection,g=t[c].selection;if(!p.equalsSelection(g)){var v=p.plusRange(g),m=p.selectionStartLineNumber===p.startLineNumber&&p.selectionStartColumn===p.startColumn,_=g.selectionStartLineNumber===g.startLineNumber&&g.selectionStartColumn===g.startColumn,y=void 0;h===this.lastAddedCursorIndex?(y=m,this.lastAddedCursorIndex=f):y=_;var b=void 0;b=y?new L.Y(v.startLineNumber,v.startColumn,v.endLineNumber,v.endColumn):new L.Y(v.endLineNumber,v.endColumn,v.startLineNumber,v.startColumn),t[c].selection=b;var w=pe.Vi.fromModelSelection(b);e[f].setState(this.context,w.modelState,w.viewState)}var C,k=(0,r.Z)(t);try{for(k.s();!(C=k.n()).done;){var S=C.value;S.index>h&&S.index--}}catch(x){k.e(x)}finally{k.f()}e.splice(h,1),t.splice(d,1),this._removeSecondaryCursor(h-1),o--}}}}}}]),e}(),Cn=n(39765),kn=n(22268),Sn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=0})),xn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=1})),Ln=function(){function e(t){(0,c.Z)(this,e),this.type=2,this._source=t}return(0,d.Z)(e,[{key:"hasChanged",value:function(e){return this._source.hasChanged(e)}}]),e}(),En=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.type=3,this.selections=t,this.modelSelections=n})),Nn=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.type=4,t?(this.affectsMinimap=t.affectsMinimap,this.affectsOverviewRuler=t.affectsOverviewRuler):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0)})),Dn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=5})),Mn=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.type=6,this.isFocused=t})),Tn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=7})),On=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=8})),In=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.type=9,this.fromLineNumber=t,this.toLineNumber=n})),An=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.type=10,this.fromLineNumber=t,this.toLineNumber=n})),Rn=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.type=11,this.fromLineNumber=t,this.toLineNumber=n})),Pn=(0,d.Z)((function e(t,n,i,r,o,a){(0,c.Z)(this,e),this.type=12,this.source=t,this.range=n,this.selections=i,this.verticalType=r,this.revealHorizontal=o,this.scrollType=a})),Zn=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.type=13,this.scrollWidth=t.scrollWidth,this.scrollLeft=t.scrollLeft,this.scrollHeight=t.scrollHeight,this.scrollTop=t.scrollTop,this.scrollWidthChanged=t.scrollWidthChanged,this.scrollLeftChanged=t.scrollLeftChanged,this.scrollHeightChanged=t.scrollHeightChanged,this.scrollTopChanged=t.scrollTopChanged})),Fn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=14})),jn=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.type=15,this.ranges=t})),Hn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=16})),Bn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=17})),zn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,c.Z)(this,n),(e=t.call(this))._onEvent=e._register(new b.Q5),e.onEvent=e._onEvent.event,e._eventHandlers=[],e._viewEventQueue=null,e._isConsumingViewEventQueue=!1,e._collector=null,e._collectorCnt=0,e._outgoingEvents=[],e}return(0,d.Z)(n,[{key:"emitOutgoingEvent",value:function(e){this._addOutgoingEvent(e),this._emitOugoingEvents()}},{key:"_addOutgoingEvent",value:function(e){for(var t=0,n=this._outgoingEvents.length;t<n;t++)if(this._outgoingEvents[t].kind===e.kind)return void(this._outgoingEvents[t]=this._outgoingEvents[t].merge(e));this._outgoingEvents.push(e)}},{key:"_emitOugoingEvents",value:function(){for(;this._outgoingEvents.length>0;){if(this._collector||this._isConsumingViewEventQueue)return;var e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}},{key:"addViewEventHandler",value:function(e){for(var t=0,n=this._eventHandlers.length;t<n;t++)this._eventHandlers[t]===e&&console.warn("Detected duplicate listener in ViewEventDispatcher",e);this._eventHandlers.push(e)}},{key:"removeViewEventHandler",value:function(e){for(var t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}}},{key:"beginEmitViewEvents",value:function(){return this._collectorCnt++,1===this._collectorCnt&&(this._collector=new Wn),this._collector}},{key:"endEmitViewEvents",value:function(){if(this._collectorCnt--,0===this._collectorCnt){var e=this._collector.outgoingEvents,t=this._collector.viewEvents;this._collector=null;var n,i=(0,r.Z)(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;this._addOutgoingEvent(o)}}catch(a){i.e(a)}finally{i.f()}t.length>0&&this._emitMany(t)}this._emitOugoingEvents()}},{key:"emitSingleViewEvent",value:function(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}},{key:"_emitMany",value:function(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}},{key:"_consumeViewEventQueue",value:function(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}},{key:"_doConsumeQueue",value:function(){for(;this._viewEventQueue;){var e=this._viewEventQueue;this._viewEventQueue=null;var t,n=this._eventHandlers.slice(0),i=(0,r.Z)(n);try{for(i.s();!(t=i.n()).done;){t.value.handleEvents(e)}}catch(o){i.e(o)}finally{i.f()}}}}]),n}(w.JT),Wn=function(){function e(){(0,c.Z)(this,e),this.viewEvents=[],this.outgoingEvents=[]}return(0,d.Z)(e,[{key:"emitViewEvent",value:function(e){this.viewEvents.push(e)}},{key:"emitOutgoingEvent",value:function(e){this.outgoingEvents.push(e)}}]),e}(),Vn=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.kind=0,this._oldContentWidth=t,this._oldContentHeight=n,this.contentWidth=i,this.contentHeight=r,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return!this.contentWidthChanged&&!this.contentHeightChanged}},{key:"merge",value:function(t){return 0!==t.kind?this:new e(this._oldContentWidth,this._oldContentHeight,t.contentWidth,t.contentHeight)}}]),e}(),Yn=function(){function e(t,n){(0,c.Z)(this,e),this.kind=1,this.oldHasFocus=t,this.hasFocus=n}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return this.oldHasFocus===this.hasFocus}},{key:"merge",value:function(t){return 1!==t.kind?this:new e(this.oldHasFocus,t.hasFocus)}}]),e}(),Un=function(){function e(t,n,i,r,o,a,s,u){(0,c.Z)(this,e),this.kind=2,this._oldScrollWidth=t,this._oldScrollLeft=n,this._oldScrollHeight=i,this._oldScrollTop=r,this.scrollWidth=o,this.scrollLeft=a,this.scrollHeight=s,this.scrollTop=u,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}},{key:"merge",value:function(t){return 2!==t.kind?this:new e(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,t.scrollWidth,t.scrollLeft,t.scrollHeight,t.scrollTop)}}]),e}(),Kn=function(){function e(){(0,c.Z)(this,e),this.kind=3}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return!1}},{key:"merge",value:function(e){return this}}]),e}(),qn=function(){function e(t,n,i,r,o,a,s){(0,c.Z)(this,e),this.kind=5,this.oldSelections=t,this.selections=n,this.oldModelVersionId=i,this.modelVersionId=r,this.source=o,this.reason=a,this.reachedMaxCursorCount=s}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return e._selectionsAreEqual(this.oldSelections,this.selections)&&this.oldModelVersionId===this.modelVersionId}},{key:"merge",value:function(t){return 5!==t.kind?this:new e(this.oldSelections,t.selections,this.oldModelVersionId,t.modelVersionId,t.source,t.reason,this.reachedMaxCursorCount||t.reachedMaxCursorCount)}}],[{key:"_selectionsAreEqual",value:function(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;var n=e.length;if(n!==t.length)return!1;for(var i=0;i<n;i++)if(!e[i].equalsSelection(t[i]))return!1;return!0}}]),e}(),Gn=function(){function e(){(0,c.Z)(this,e),this.kind=4}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return!1}},{key:"merge",value:function(e){return this}}]),e}(),$n=function(){function e(t,n){(0,c.Z)(this,e),this.modelVersionId=t.getVersionId(),this.cursorState=n.getCursorStates()}return(0,d.Z)(e,[{key:"equals",value:function(e){if(!e)return!1;if(this.modelVersionId!==e.modelVersionId)return!1;if(this.cursorState.length!==e.cursorState.length)return!1;for(var t=0,n=this.cursorState.length;t<n;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0}}]),e}(),Qn=function(){function e(t,n,i){(0,c.Z)(this,e),this._model=t,this._autoClosedCharactersDecorations=n,this._autoClosedEnclosingDecorations=i}return(0,d.Z)(e,[{key:"dispose",value:function(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])}},{key:"getAutoClosedCharactersRanges",value:function(){for(var e=[],t=0;t<this._autoClosedCharactersDecorations.length;t++){var n=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);n&&e.push(n)}return e}},{key:"isValid",value:function(e){for(var t=[],n=0;n<this._autoClosedEnclosingDecorations.length;n++){var i=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[n]);if(i&&(t.push(i),i.startLineNumber!==i.endLineNumber))return!1}t.sort(fe.e.compareRangesUsingStarts),e.sort(fe.e.compareRangesUsingStarts);for(var r=0;r<e.length;r++){if(r>=t.length)return!1;if(!t[r].strictContainsRange(e[r]))return!1}return!0}}],[{key:"getAllAutoClosedCharacters",value:function(e){var t,n=[],i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o=t.value;n=n.concat(o.getAutoClosedCharactersRanges())}}catch(a){i.e(a)}finally{i.f()}return n}}]),e}(),Xn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o){var a;return(0,c.Z)(this,n),(a=t.call(this))._model=e,a._knownModelVersionId=a._model.getVersionId(),a._viewModel=i,a._coordinatesConverter=r,a.context=new pe.zp(a._model,a._coordinatesConverter,o),a._cursors=new wn(a.context),a._hasFocus=!1,a._isHandling=!1,a._isDoingComposition=!1,a._selectionsWhenCompositionStarted=null,a._columnSelectData=null,a._autoClosedActions=[],a._prevEditOperationType=0,a}return(0,d.Z)(n,[{key:"dispose",value:function(){this._cursors.dispose(),this._autoClosedActions=(0,w.B9)(this._autoClosedActions),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"updateConfiguration",value:function(e){this.context=new pe.zp(this._model,this._coordinatesConverter,e),this._cursors.updateContext(this.context)}},{key:"onLineMappingChanged",value:function(e){this._knownModelVersionId===this._model.getVersionId()&&this.setStates(e,"viewModel",0,this.getCursorStates())}},{key:"setHasFocus",value:function(e){this._hasFocus=e}},{key:"_validateAutoClosedActions",value:function(){if(this._autoClosedActions.length>0)for(var e=this._cursors.getSelections(),t=0;t<this._autoClosedActions.length;t++){var n=this._autoClosedActions[t];n.isValid(e)||(n.dispose(),this._autoClosedActions.splice(t,1),t--)}}},{key:"getPrimaryCursorState",value:function(){return this._cursors.getPrimaryCursor()}},{key:"getLastAddedCursorIndex",value:function(){return this._cursors.getLastAddedCursorIndex()}},{key:"getCursorStates",value:function(){return this._cursors.getAll()}},{key:"setStates",value:function(e,t,i,r){var o=!1;null!==r&&r.length>n.MAX_CURSOR_COUNT&&(r=r.slice(0,n.MAX_CURSOR_COUNT),o=!0);var a=new $n(this._model,this);return this._cursors.setStates(r),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,a,o)}},{key:"setCursorColumnSelectData",value:function(e){this._columnSelectData=e}},{key:"revealPrimary",value:function(e,t,n,i){var r=this._cursors.getViewPositions();if(r.length>1)this._emitCursorRevealRange(e,t,null,this._cursors.getViewSelections(),0,n,i);else{var o=r[0],a=new fe.e(o.lineNumber,o.column,o.lineNumber,o.column);this._emitCursorRevealRange(e,t,a,null,0,n,i)}}},{key:"_revealPrimaryCursor",value:function(e,t,n,i,r){var o=this._cursors.getViewPositions();if(o.length>1)this._emitCursorRevealRange(e,t,null,this._cursors.getViewSelections(),n,i,r);else{var a=o[0],s=new fe.e(a.lineNumber,a.column,a.lineNumber,a.column);this._emitCursorRevealRange(e,t,s,null,n,i,r)}}},{key:"_emitCursorRevealRange",value:function(e,t,n,i,r,o,a){e.emitViewEvent(new Pn(t,n,i,r,o,a))}},{key:"saveState",value:function(){for(var e=[],t=this._cursors.getSelections(),n=0,i=t.length;n<i;n++){var r=t[n];e.push({inSelectionMode:!r.isEmpty(),selectionStart:{lineNumber:r.selectionStartLineNumber,column:r.selectionStartColumn},position:{lineNumber:r.positionLineNumber,column:r.positionColumn}})}return e}},{key:"restoreState",value:function(e,t){for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i],a=1,s=1;o.position&&o.position.lineNumber&&(a=o.position.lineNumber),o.position&&o.position.column&&(s=o.position.column);var u=a,l=s;o.selectionStart&&o.selectionStart.lineNumber&&(u=o.selectionStart.lineNumber),o.selectionStart&&o.selectionStart.column&&(l=o.selectionStart.column),n.push({selectionStartLineNumber:u,selectionStartColumn:l,positionLineNumber:a,positionColumn:s})}this.setStates(e,"restoreState",0,pe.Vi.fromModelSelections(n)),this.revealPrimary(e,"restoreState",!0,1)}},{key:"onModelContentChanged",value:function(e,t){if(this._knownModelVersionId=t.versionId,!this._isHandling){var n=t.containsEvent(1);if(this._prevEditOperationType=0,n)this._cursors.dispose(),this._cursors=new wn(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,"model",1,null,!1);else if(this._hasFocus&&t.resultingSelection&&t.resultingSelection.length>0){var i=pe.Vi.fromModelSelections(t.resultingSelection);this.setStates(e,"modelChange",t.isUndoing?5:t.isRedoing?6:2,i)&&this._revealPrimaryCursor(e,"modelChange",0,!0,0)}else{var r=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,pe.Vi.fromModelSelections(r))}}}},{key:"getSelection",value:function(){return this._cursors.getPrimaryCursor().modelState.selection}},{key:"getTopMostViewPosition",value:function(){return this._cursors.getTopMostViewPosition()}},{key:"getBottomMostViewPosition",value:function(){return this._cursors.getBottomMostViewPosition()}},{key:"getCursorColumnSelectData",value:function(){if(this._columnSelectData)return this._columnSelectData;var e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),n=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:pe.io.visibleColumnFromColumn2(this.context.cursorConfig,this._viewModel,t),toViewLineNumber:n.lineNumber,toViewVisualColumn:pe.io.visibleColumnFromColumn2(this.context.cursorConfig,this._viewModel,n)}}},{key:"getSelections",value:function(){return this._cursors.getSelections()}},{key:"setSelections",value:function(e,t,n,i){this.setStates(e,t,i,pe.Vi.fromModelSelections(n))}},{key:"getPrevEditOperationType",value:function(){return this._prevEditOperationType}},{key:"setPrevEditOperationType",value:function(e){this._prevEditOperationType=e}},{key:"_pushAutoClosedAction",value:function(e,t){for(var n=[],i=[],r=0,o=e.length;r<o;r++)n.push({range:e[r],options:{inlineClassName:"auto-closed-character",stickiness:1}}),i.push({range:t[r],options:{stickiness:1}});var a=this._model.deltaDecorations([],n),s=this._model.deltaDecorations([],i);this._autoClosedActions.push(new Qn(this._model,a,s))}},{key:"_executeEditOperation",value:function(e){if(e){e.shouldPushStackElementBefore&&this._model.pushStackElement();var t=Jn.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);for(var n=[],i=[],r=0;r<e.commands.length;r++){var o=e.commands[r];o instanceof kn.g&&o.enclosingRange&&o.closeCharacterRange&&(n.push(o.closeCharacterRange),i.push(o.enclosingRange))}n.length>0&&this._pushAutoClosedAction(n,i),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}}},{key:"_interpretCommandResult",value:function(e){e&&0!==e.length||(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}},{key:"_emitStateChangedIfNecessary",value:function(e,t,n,i,r){var o=new $n(this._model,this);if(o.equals(i))return!1;var a=this._cursors.getSelections(),s=this._cursors.getViewSelections();if(e.emitViewEvent(new En(s,a)),!i||i.cursorState.length!==o.cursorState.length||o.cursorState.some((function(e,t){return!e.modelState.equals(i.cursorState[t].modelState)}))){var u=i?i.cursorState.map((function(e){return e.modelState.selection})):null,l=i?i.modelVersionId:0;e.emitOutgoingEvent(new qn(u,a,l,o.modelVersionId,t||"keyboard",n,r))}return!0}},{key:"_findAutoClosingPairs",value:function(e){if(!e.length)return null;for(var t=[],n=0,i=e.length;n<i;n++){var r=e[n];if(!r.text||r.text.indexOf("\n")>=0)return null;var o=r.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!o)return null;var a=o[1],s=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!s||1!==s.length)return null;var u=s[0].open,l=r.text.length-o[2].length-1,c=r.text.lastIndexOf(u,l-1);if(-1===c)return null;t.push([c,l])}return t}},{key:"executeEdits",value:function(e,t,n,r){var o=this,a=null;"snippet"===t&&(a=this._findAutoClosingPairs(n)),a&&(n[0]._isTracked=!0);var s=[],u=[],l=this._model.pushEditOperations(this.getSelections(),n,(function(e){if(a)for(var t=0,n=a.length;t<n;t++){var l=(0,i.Z)(a[t],2),c=l[0],d=l[1],h=e[t],f=h.range.startLineNumber,p=h.range.startColumn-1+c,g=h.range.startColumn-1+d;s.push(new fe.e(f,g+1,f,g+2)),u.push(new fe.e(f,p+1,f,g+2))}var v=r(e);return v&&(o._isHandling=!0),v}));l&&(this._isHandling=!1,this.setSelections(e,t,l,0)),s.length>0&&this._pushAutoClosedAction(s,u)}},{key:"_executeEdit",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(!this.context.cursorConfig.readOnly){var r=new $n(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(o){(0,y.dL)(o)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,n,i,r,!1)&&this._revealPrimaryCursor(t,n,0,!0,0)}}},{key:"setIsDoingComposition",value:function(e){this._isDoingComposition=e}},{key:"getAutoClosedCharacters",value:function(){return Qn.getAllAutoClosedCharacters(this._autoClosedActions)}},{key:"startComposition",value:function(e){this._selectionsWhenCompositionStarted=this.getSelections().slice(0)}},{key:"endComposition",value:function(e,t){var n=this;this._executeEdit((function(){"keyboard"===t&&(n._executeEditOperation(kn.u.compositionEndWithInterceptors(n._prevEditOperationType,n.context.cursorConfig,n._model,n._selectionsWhenCompositionStarted,n.getSelections(),n.getAutoClosedCharacters())),n._selectionsWhenCompositionStarted=null)}),e,t)}},{key:"type",value:function(e,t,n){var i=this;this._executeEdit((function(){if("keyboard"===n)for(var e=t.length,r=0;r<e;){var o=Re.vH(t,r),a=t.substr(r,o);i._executeEditOperation(kn.u.typeWithInterceptors(i._isDoingComposition,i._prevEditOperationType,i.context.cursorConfig,i._model,i.getSelections(),i.getAutoClosedCharacters(),a)),r+=o}else i._executeEditOperation(kn.u.typeWithoutInterceptors(i._prevEditOperationType,i.context.cursorConfig,i._model,i.getSelections(),t))}),e,n)}},{key:"compositionType",value:function(e,t,n,i,r,o){var a=this;if(0!==t.length||0!==n||0!==i)this._executeEdit((function(){a._executeEditOperation(kn.u.compositionType(a._prevEditOperationType,a.context.cursorConfig,a._model,a.getSelections(),t,n,i,r))}),e,o);else if(0!==r){var s=this.getSelections().map((function(e){var t=e.getPosition();return new L.Y(t.lineNumber,t.column+r,t.lineNumber,t.column+r)}));this.setSelections(e,o,s,0)}}},{key:"paste",value:function(e,t,n,i,r){var o=this;this._executeEdit((function(){o._executeEditOperation(kn.u.paste(o.context.cursorConfig,o._model,o.getSelections(),t,n,i||[]))}),e,r,4)}},{key:"cut",value:function(e,t){var n=this;this._executeEdit((function(){n._executeEditOperation(Cn.A.cut(n.context.cursorConfig,n._model,n.getSelections()))}),e,t)}},{key:"executeCommand",value:function(e,t,n){var i=this;this._executeEdit((function(){i._cursors.killSecondaryCursors(),i._executeEditOperation(new pe.Tp(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),e,n)}},{key:"executeCommands",value:function(e,t,n){var i=this;this._executeEdit((function(){i._executeEditOperation(new pe.Tp(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),e,n)}}]),n}(w.JT);Xn.MAX_CURSOR_COUNT=1e4;var Jn=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"executeCommands",value:function(e,t,n){for(var i={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},r=this._innerExecuteCommands(i,n),o=0,a=i.trackedRanges.length;o<a;o++)i.model._setTrackedRange(i.trackedRanges[o],null,0);return r}},{key:"_innerExecuteCommands",value:function(e,t){if(this._arrayIsEmpty(t))return null;var n=this._getEditOperations(e,t);if(0===n.operations.length)return null;var i=n.operations,o=this._getLoserCursorMap(i);if(o.hasOwnProperty("0"))return console.warn("Ignoring commands"),null;for(var a=[],s=0,u=i.length;s<u;s++)o.hasOwnProperty(i[s].identifier.major.toString())||a.push(i[s]);n.hadTrackedEditOperation&&a.length>0&&(a[0]._isTracked=!0);var l=e.model.pushEditOperations(e.selectionsBefore,a,(function(n){for(var i=[],o=0;o<e.selectionsBefore.length;o++)i[o]=[];var a,s=(0,r.Z)(n);try{for(s.s();!(a=s.n()).done;){var u=a.value;u.identifier&&i[u.identifier.major].push(u)}}catch(f){s.e(f)}finally{s.f()}for(var l=function(e,t){return e.identifier.minor-t.identifier.minor},c=[],d=function(n){i[n].length>0?(i[n].sort(l),c[n]=t[n].computeCursorState(e.model,{getInverseEditOperations:function(){return i[n]},getTrackedSelection:function(t){var n=parseInt(t,10),i=e.model._getTrackedRange(e.trackedRanges[n]);return 0===e.trackedRangesDirection[n]?new L.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn):new L.Y(i.endLineNumber,i.endColumn,i.startLineNumber,i.startColumn)}})):c[n]=e.selectionsBefore[n]},h=0;h<e.selectionsBefore.length;h++)d(h);return c}));l||(l=e.selectionsBefore);var c=[];for(var d in o)o.hasOwnProperty(d)&&c.push(parseInt(d,10));c.sort((function(e,t){return t-e}));for(var h=0,f=c;h<f.length;h++){var p=f[h];l.splice(p,1)}return l}},{key:"_arrayIsEmpty",value:function(e){for(var t=0,n=e.length;t<n;t++)if(e[t])return!1;return!0}},{key:"_getEditOperations",value:function(e,t){for(var n=[],i=!1,r=0,o=t.length;r<o;r++){var a=t[r];if(a){var s=this._getEditOperationsFromCommand(e,r,a);n=n.concat(s.operations),i=i||s.hadTrackedEditOperation}}return{operations:n,hadTrackedEditOperation:i}}},{key:"_getEditOperationsFromCommand",value:function(e,t,n){var i=[],r=0,o=function(e,o){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];fe.e.isEmpty(e)&&""===o||i.push({identifier:{major:t,minor:r++},range:e,text:o,forceMoveMarkers:a,isAutoWhitespaceEdit:n.insertsAutoWhitespace})},a=!1,s={addEditOperation:o,addTrackedEditOperation:function(e,t,n){a=!0,o(e,t,n)},trackSelection:function(t,n){var i,r=L.Y.liftSelection(t);if(r.isEmpty())if("boolean"===typeof n)i=n?2:3;else{var o=e.model.getLineMaxColumn(r.startLineNumber);i=r.startColumn===o?2:3}else i=1;var a=e.trackedRanges.length,s=e.model._setTrackedRange(null,r,i);return e.trackedRanges[a]=s,e.trackedRangesDirection[a]=r.getDirection(),a.toString()}};try{n.getEditOperations(e.model,s)}catch(u){return(0,y.dL)(u),{operations:[],hadTrackedEditOperation:!1}}return{operations:i,hadTrackedEditOperation:a}}},{key:"_getLoserCursorMap",value:function(e){(e=e.slice(0)).sort((function(e,t){return-fe.e.compareRangesUsingEnds(e.range,t.range)}));for(var t={},n=1;n<e.length;n++){var i=e[n-1],r=e[n];if(fe.e.getStartPosition(i.range).isBefore(fe.e.getEndPosition(r.range))){var o=void 0;t[(o=i.identifier.major>r.identifier.major?i.identifier.major:r.identifier.major).toString()]=!0;for(var a=0;a<e.length;a++)e[a].identifier.major===o&&(e.splice(a,1),a<n&&n--,a--);n>0&&n--}}return t}}]),e}(),ei=n(30633),ti=n(30062),ni=n(21204),ii=n(54821),ri=n(58604),oi=function(){function e(){(0,c.Z)(this,e),this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}return(0,d.Z)(e,[{key:"insert",value:function(e){this._hasPending=!0,this._inserts.push(e)}},{key:"change",value:function(e){this._hasPending=!0,this._changes.push(e)}},{key:"remove",value:function(e){this._hasPending=!0,this._removes.push(e)}},{key:"mustCommit",value:function(){return this._hasPending}},{key:"commit",value:function(e){if(this._hasPending){var t=this._inserts,n=this._changes,i=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,n,i)}}}]),e}(),ai=(0,d.Z)((function e(t,n,i,r,o){(0,c.Z)(this,e),this.id=t,this.afterLineNumber=n,this.ordinal=i,this.height=r,this.minWidth=o,this.prefixSum=0})),si=function(){function e(t,n,i,r){(0,c.Z)(this,e),this._instanceId=Re.PJ(++e.INSTANCE_COUNT),this._pendingChanges=new oi,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=t,this._lineHeight=n,this._paddingTop=i,this._paddingBottom=r}return(0,d.Z)(e,[{key:"setLineHeight",value:function(e){this._checkPendingChanges(),this._lineHeight=e}},{key:"setPadding",value:function(e,t){this._paddingTop=e,this._paddingBottom=t}},{key:"onFlushed",value:function(e){this._checkPendingChanges(),this._lineCount=e}},{key:"changeWhitespace",value:function(e){var t=this,n=!1;try{e({insertWhitespace:function(e,i,r,o){n=!0,e|=0,i|=0,r|=0,o|=0;var a=t._instanceId+ ++t._lastWhitespaceId;return t._pendingChanges.insert(new ai(a,e,i,r,o)),a},changeOneWhitespace:function(e,i,r){n=!0,i|=0,r|=0,t._pendingChanges.change({id:e,newAfterLineNumber:i,newHeight:r})},removeWhitespace:function(e){n=!0,t._pendingChanges.remove({id:e})}})}finally{this._pendingChanges.commit(this)}return n}},{key:"_commitPendingChanges",value:function(e,t,n){if((e.length>0||n.length>0)&&(this._minWidth=-1),e.length+t.length+n.length<=1){var i,o=(0,r.Z)(e);try{for(o.s();!(i=o.n()).done;){var a=i.value;this._insertWhitespace(a)}}catch(S){o.e(S)}finally{o.f()}var s,u=(0,r.Z)(t);try{for(u.s();!(s=u.n()).done;){var l=s.value;this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight)}}catch(S){u.e(S)}finally{u.f()}var c,d=(0,r.Z)(n);try{for(d.s();!(c=d.n()).done;){var h=c.value,f=this._findWhitespaceIndex(h.id);-1!==f&&this._removeWhitespace(f)}}catch(S){d.e(S)}finally{d.f()}}else{var p,g=new Set,v=(0,r.Z)(n);try{for(v.s();!(p=v.n()).done;){var m=p.value;g.add(m.id)}}catch(S){v.e(S)}finally{v.f()}var _,y=new Map,b=(0,r.Z)(t);try{for(b.s();!(_=b.n()).done;){var w=_.value;y.set(w.id,w)}}catch(S){b.e(S)}finally{b.f()}var C=function(e){var t,n=[],i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o=t.value;if(!g.has(o.id)){if(y.has(o.id)){var a=y.get(o.id);o.afterLineNumber=a.newAfterLineNumber,o.height=a.newHeight}n.push(o)}}}catch(S){i.e(S)}finally{i.f()}return n},k=C(this._arr).concat(C(e));k.sort((function(e,t){return e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber})),this._arr=k,this._prefixSumValidIndex=-1}}},{key:"_checkPendingChanges",value:function(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}},{key:"_insertWhitespace",value:function(t){var n=e.findInsertionIndex(this._arr,t.afterLineNumber,t.ordinal);this._arr.splice(n,0,t),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,n-1)}},{key:"_findWhitespaceIndex",value:function(e){for(var t=this._arr,n=0,i=t.length;n<i;n++)if(t[n].id===e)return n;return-1}},{key:"_changeOneWhitespace",value:function(e,t,n){var i=this._findWhitespaceIndex(e);if(-1!==i&&(this._arr[i].height!==n&&(this._arr[i].height=n,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,i-1)),this._arr[i].afterLineNumber!==t)){var r=this._arr[i];this._removeWhitespace(i),r.afterLineNumber=t,this._insertWhitespace(r)}}},{key:"_removeWhitespace",value:function(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}},{key:"onLinesDeleted",value:function(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount-=t-e+1;for(var n=0,i=this._arr.length;n<i;n++){var r=this._arr[n].afterLineNumber;e<=r&&r<=t?this._arr[n].afterLineNumber=e-1:r>t&&(this._arr[n].afterLineNumber-=t-e+1)}}},{key:"onLinesInserted",value:function(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount+=t-e+1;for(var n=0,i=this._arr.length;n<i;n++){e<=this._arr[n].afterLineNumber&&(this._arr[n].afterLineNumber+=t-e+1)}}},{key:"getWhitespacesTotalHeight",value:function(){return this._checkPendingChanges(),0===this._arr.length?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}},{key:"getWhitespacesAccumulatedHeight",value:function(e){this._checkPendingChanges(),e|=0;var t=Math.max(0,this._prefixSumValidIndex+1);0===t&&(this._arr[0].prefixSum=this._arr[0].height,t++);for(var n=t;n<=e;n++)this._arr[n].prefixSum=this._arr[n-1].prefixSum+this._arr[n].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum}},{key:"getLinesTotalHeight",value:function(){return this._checkPendingChanges(),this._lineHeight*this._lineCount+this.getWhitespacesTotalHeight()+this._paddingTop+this._paddingBottom}},{key:"getWhitespaceAccumulatedHeightBeforeLineNumber",value:function(e){this._checkPendingChanges(),e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e);return-1===t?0:this.getWhitespacesAccumulatedHeight(t)}},{key:"_findLastWhitespaceBeforeLineNumber",value:function(e){e|=0;for(var t=this._arr,n=0,i=t.length-1;n<=i;){var r=n+((i-n|0)/2|0)|0;if(t[r].afterLineNumber<e){if(r+1>=t.length||t[r+1].afterLineNumber>=e)return r;n=r+1|0}else i=r-1|0}return-1}},{key:"_findFirstWhitespaceAfterLineNumber",value:function(e){e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t<this._arr.length?t:-1}},{key:"getFirstWhitespaceIndexAfterLineNumber",value:function(e){return this._checkPendingChanges(),e|=0,this._findFirstWhitespaceAfterLineNumber(e)}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this._checkPendingChanges(),((e|=0)>1?this._lineHeight*(e-1):0)+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e)+this._paddingTop}},{key:"getWhitespaceMinWidth",value:function(){if(this._checkPendingChanges(),-1===this._minWidth){for(var e=0,t=0,n=this._arr.length;t<n;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth}},{key:"isAfterLines",value:function(e){return this._checkPendingChanges(),e>this.getLinesTotalHeight()}},{key:"isInTopPadding",value:function(e){return 0!==this._paddingTop&&(this._checkPendingChanges(),e<this._paddingTop)}},{key:"isInBottomPadding",value:function(e){return 0!==this._paddingBottom&&(this._checkPendingChanges(),e>=this.getLinesTotalHeight()-this._paddingBottom)}},{key:"getLineNumberAtOrAfterVerticalOffset",value:function(e){if(this._checkPendingChanges(),(e|=0)<0)return 1;for(var t=0|this._lineCount,n=this._lineHeight,i=1,r=t;i<r;){var o=(i+r)/2|0,a=0|this.getVerticalOffsetForLineNumber(o);if(e>=a+n)i=o+1;else{if(e>=a)return o;r=o}}return i>t?t:i}},{key:"getLinesViewportData",value:function(e,t){this._checkPendingChanges(),e|=0,t|=0;var n,i,r=this._lineHeight,o=0|this.getLineNumberAtOrAfterVerticalOffset(e),a=0|this.getVerticalOffsetForLineNumber(o),s=0|this._lineCount,u=0|this.getFirstWhitespaceIndexAfterLineNumber(o),l=0|this.getWhitespacesCount();-1===u?(u=l,i=s+1,n=0):(i=0|this.getAfterLineNumberForWhitespaceIndex(u),n=0|this.getHeightForWhitespaceIndex(u));var c=a,d=c,h=5e5,f=0;a>=h&&(f=Math.floor(a/h)*h,d-=f=Math.floor(f/r)*r);for(var p=[],g=e+(t-e)/2,v=-1,m=o;m<=s;m++){if(-1===v){(c<=g&&g<c+r||c>g)&&(v=m)}for(c+=r,p[m-o]=d,d+=r;i===m;)d+=n,c+=n,++u>=l?i=s+1:(i=0|this.getAfterLineNumberForWhitespaceIndex(u),n=0|this.getHeightForWhitespaceIndex(u));if(c>=t){s=m;break}}-1===v&&(v=s);var _=0|this.getVerticalOffsetForLineNumber(s),y=o,b=s;return y<b&&a<e&&y++,y<b&&_+r>t&&b--,{bigNumbersDelta:f,startLineNumber:o,endLineNumber:s,relativeVerticalOffset:p,centeredLineNumber:v,completelyVisibleStartLineNumber:y,completelyVisibleEndLineNumber:b}}},{key:"getVerticalOffsetForWhitespaceIndex",value:function(e){this._checkPendingChanges(),e|=0;var t=this.getAfterLineNumberForWhitespaceIndex(e);return(t>=1?this._lineHeight*t:0)+(e>0?this.getWhitespacesAccumulatedHeight(e-1):0)+this._paddingTop}},{key:"getWhitespaceIndexAtOrAfterVerticallOffset",value:function(e){this._checkPendingChanges(),e|=0;var t=0,n=this.getWhitespacesCount()-1;if(n<0)return-1;if(e>=this.getVerticalOffsetForWhitespaceIndex(n)+this.getHeightForWhitespaceIndex(n))return-1;for(;t<n;){var i=Math.floor((t+n)/2),r=this.getVerticalOffsetForWhitespaceIndex(i);if(e>=r+this.getHeightForWhitespaceIndex(i))t=i+1;else{if(e>=r)return i;n=i}}return t}},{key:"getWhitespaceAtVerticalOffset",value:function(e){this._checkPendingChanges(),e|=0;var t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0)return null;if(t>=this.getWhitespacesCount())return null;var n=this.getVerticalOffsetForWhitespaceIndex(t);if(n>e)return null;var i=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:n,height:i}}},{key:"getWhitespaceViewportData",value:function(e,t){this._checkPendingChanges(),e|=0,t|=0;var n=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),i=this.getWhitespacesCount()-1;if(n<0)return[];for(var r=[],o=n;o<=i;o++){var a=this.getVerticalOffsetForWhitespaceIndex(o),s=this.getHeightForWhitespaceIndex(o);if(a>=t)break;r.push({id:this.getIdForWhitespaceIndex(o),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(o),verticalOffset:a,height:s})}return r}},{key:"getWhitespaces",value:function(){return this._checkPendingChanges(),this._arr.slice(0)}},{key:"getWhitespacesCount",value:function(){return this._checkPendingChanges(),this._arr.length}},{key:"getIdForWhitespaceIndex",value:function(e){return this._checkPendingChanges(),e|=0,this._arr[e].id}},{key:"getAfterLineNumberForWhitespaceIndex",value:function(e){return this._checkPendingChanges(),e|=0,this._arr[e].afterLineNumber}},{key:"getHeightForWhitespaceIndex",value:function(e){return this._checkPendingChanges(),e|=0,this._arr[e].height}}],[{key:"findInsertionIndex",value:function(e,t,n){for(var i=0,r=e.length;i<r;){var o=i+r>>>1;t===e[o].afterLineNumber?n<e[o].ordinal?r=o:i=o+1:t<e[o].afterLineNumber?r=o:i=o+1}return i}}]),e}();si.INSTANCE_COUNT=0;var ui=function(){function e(t,n,i,r){(0,c.Z)(this,e),(t|=0)<0&&(t=0),(n|=0)<0&&(n=0),(i|=0)<0&&(i=0),(r|=0)<0&&(r=0),this.width=t,this.contentWidth=n,this.scrollWidth=Math.max(t,n),this.height=i,this.contentHeight=r,this.scrollHeight=Math.max(i,r)}return(0,d.Z)(e,[{key:"equals",value:function(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}]),e}(),li=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this))._onDidContentSizeChange=r._register(new b.Q5),r.onDidContentSizeChange=r._onDidContentSizeChange.event,r._dimensions=new ui(0,0,0,0),r._scrollable=r._register(new ri.Rm(e,i)),r.onDidScroll=r._scrollable.onScroll,r}return(0,d.Z)(n,[{key:"getScrollable",value:function(){return this._scrollable}},{key:"setSmoothScrollDuration",value:function(e){this._scrollable.setSmoothScrollDuration(e)}},{key:"validateScrollPosition",value:function(e){return this._scrollable.validateScrollPosition(e)}},{key:"getScrollDimensions",value:function(){return this._dimensions}},{key:"setScrollDimensions",value:function(e){if(!this._dimensions.equals(e)){var t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);var n=t.contentWidth!==e.contentWidth,i=t.contentHeight!==e.contentHeight;(n||i)&&this._onDidContentSizeChange.fire(new Vn(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}}},{key:"getFutureScrollPosition",value:function(){return this._scrollable.getFutureScrollPosition()}},{key:"getCurrentScrollPosition",value:function(){return this._scrollable.getCurrentScrollPosition()}},{key:"setScrollPositionNow",value:function(e){this._scrollable.setScrollPositionNow(e)}},{key:"setScrollPositionSmooth",value:function(e){this._scrollable.setScrollPositionSmooth(e)}}]),n}(w.JT),ci=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;(0,c.Z)(this,n),(o=t.call(this))._configuration=e;var a=o._configuration.options,s=a.get(127),u=a.get(71);return o._linesLayout=new si(i,a.get(55),u.top,u.bottom),o._scrollable=o._register(new li(0,r)),o._configureSmoothScrollDuration(),o._scrollable.setScrollDimensions(new ui(s.contentWidth,0,s.height,0)),o.onDidScroll=o._scrollable.onDidScroll,o.onDidContentSizeChange=o._scrollable.onDidContentSizeChange,o._updateHeight(),o}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"getScrollable",value:function(){return this._scrollable.getScrollable()}},{key:"onHeightMaybeChanged",value:function(){this._updateHeight()}},{key:"_configureSmoothScrollDuration",value:function(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(100)?125:0)}},{key:"onConfigurationChanged",value:function(e){var t=this._configuration.options;if(e.hasChanged(55)&&this._linesLayout.setLineHeight(t.get(55)),e.hasChanged(71)){var n=t.get(71);this._linesLayout.setPadding(n.top,n.bottom)}if(e.hasChanged(127)){var i=t.get(127),r=i.contentWidth,o=i.height,a=this._scrollable.getScrollDimensions(),s=a.contentWidth;this._scrollable.setScrollDimensions(new ui(r,a.contentWidth,o,this._getContentHeight(r,o,s)))}else this._updateHeight();e.hasChanged(100)&&this._configureSmoothScrollDuration()}},{key:"onFlushed",value:function(e){this._linesLayout.onFlushed(e)}},{key:"onLinesDeleted",value:function(e,t){this._linesLayout.onLinesDeleted(e,t)}},{key:"onLinesInserted",value:function(e,t){this._linesLayout.onLinesInserted(e,t)}},{key:"_getHorizontalScrollbarHeight",value:function(e,t){var n=this._configuration.options.get(89);return 2===n.horizontal||e>=t?0:n.horizontalScrollbarSize}},{key:"_getContentHeight",value:function(e,t,n){var i=this._configuration.options,r=this._linesLayout.getLinesTotalHeight();return i.get(91)?r+=Math.max(0,t-i.get(55)-i.get(71).bottom):r+=this._getHorizontalScrollbarHeight(e,n),r}},{key:"_updateHeight",value:function(){var e=this._scrollable.getScrollDimensions(),t=e.width,n=e.height,i=e.contentWidth;this._scrollable.setScrollDimensions(new ui(t,e.contentWidth,n,this._getContentHeight(t,n,i)))}},{key:"getCurrentViewport",value:function(){var e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new Tt.l_(t.scrollTop,t.scrollLeft,e.width,e.height)}},{key:"getFutureViewport",value:function(){var e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new Tt.l_(t.scrollTop,t.scrollLeft,e.width,e.height)}},{key:"_computeContentWidth",value:function(e){var t=this._configuration.options,n=t.get(128),i=t.get(40);if(n.isViewportWrapping){var r=t.get(127),o=t.get(61);return e>r.contentWidth+i.typicalHalfwidthCharacterWidth&&o.enabled&&"right"===o.side?e+r.verticalScrollbarWidth:e}var a=t.get(90)*i.typicalHalfwidthCharacterWidth,s=this._linesLayout.getWhitespaceMinWidth();return Math.max(e+a,s)}},{key:"setMaxLineWidth",value:function(e){var t=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new ui(t.width,this._computeContentWidth(e),t.height,t.contentHeight)),this._updateHeight()}},{key:"saveState",value:function(){var e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,n=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(n),scrollLeft:e.scrollLeft}}},{key:"changeWhitespace",value:function(e){var t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this._linesLayout.getVerticalOffsetForLineNumber(e)}},{key:"isAfterLines",value:function(e){return this._linesLayout.isAfterLines(e)}},{key:"isInTopPadding",value:function(e){return this._linesLayout.isInTopPadding(e)}},{key:"isInBottomPadding",value:function(e){return this._linesLayout.isInBottomPadding(e)}},{key:"getLineNumberAtVerticalOffset",value:function(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}},{key:"getWhitespaceAtVerticalOffset",value:function(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}},{key:"getLinesViewportData",value:function(){var e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}},{key:"getLinesViewportDataAtScrollTop",value:function(e){var t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}},{key:"getWhitespaceViewportData",value:function(){var e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}},{key:"getWhitespaces",value:function(){return this._linesLayout.getWhitespaces()}},{key:"getContentWidth",value:function(){return this._scrollable.getScrollDimensions().contentWidth}},{key:"getScrollWidth",value:function(){return this._scrollable.getScrollDimensions().scrollWidth}},{key:"getContentHeight",value:function(){return this._scrollable.getScrollDimensions().contentHeight}},{key:"getScrollHeight",value:function(){return this._scrollable.getScrollDimensions().scrollHeight}},{key:"getCurrentScrollLeft",value:function(){return this._scrollable.getCurrentScrollPosition().scrollLeft}},{key:"getCurrentScrollTop",value:function(){return this._scrollable.getCurrentScrollPosition().scrollTop}},{key:"validateScrollPosition",value:function(e){return this._scrollable.validateScrollPosition(e)}},{key:"setScrollPosition",value:function(e,t){1===t?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}},{key:"deltaScrollNow",value:function(e,t){var n=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:n.scrollLeft+e,scrollTop:n.scrollTop+t})}}]),n}(w.JT),di=n(28893),hi=n(21043),fi=function(){function e(t){(0,c.Z)(this,e),this._lines=t}return(0,d.Z)(e,[{key:"convertViewPositionToModelPosition",value:function(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}},{key:"convertViewRangeToModelRange",value:function(e){return this._lines.convertViewRangeToModelRange(e)}},{key:"validateViewPosition",value:function(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}},{key:"validateViewRange",value:function(e,t){return this._lines.validateViewRange(e,t)}},{key:"convertModelPositionToViewPosition",value:function(e){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column)}},{key:"convertModelRangeToViewRange",value:function(e){return this._lines.convertModelRangeToViewRange(e)}},{key:"modelPositionIsVisible",value:function(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}},{key:"getModelLineViewLineCount",value:function(e){return this._lines.getModelLineViewLineCount(e)}}]),e}(),pi=function(){function e(t){(0,c.Z)(this,e),this._counts=t,this._isValid=!1,this._validEndIndex=-1,this._modelToView=[],this._viewToModel=[]}return(0,d.Z)(e,[{key:"_invalidate",value:function(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}},{key:"_ensureValid",value:function(){if(!this._isValid){for(var e=this._validEndIndex+1,t=this._counts.length;e<t;e++){var n=this._counts[e],i=e>0?this._modelToView[e-1]:0;this._modelToView[e]=i+n;for(var r=0;r<n;r++)this._viewToModel[i+r]=e}this._modelToView.length=this._counts.length,this._viewToModel.length=this._modelToView[this._modelToView.length-1],this._isValid=!0,this._validEndIndex=this._counts.length-1}}},{key:"changeValue",value:function(e,t){this._counts[e]!==t&&(this._counts[e]=t,this._invalidate(e))}},{key:"removeValues",value:function(e,t){this._counts.splice(e,t),this._invalidate(e)}},{key:"insertValues",value:function(e,t){this._counts=ct.Zv(this._counts,e,t),this._invalidate(e)}},{key:"getTotalValue",value:function(){return this._ensureValid(),this._viewToModel.length}},{key:"getAccumulatedValue",value:function(e){return this._ensureValid(),this._modelToView[e]}},{key:"getIndexOf",value:function(e){this._ensureValid();var t=this._viewToModel[e],n=t>0?this._modelToView[t-1]:0;return new hi.T(t,e-n)}}]),e}(),gi=function(){function e(t,n,i,r,o,a,s,u){(0,c.Z)(this,e),this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=n,this._monospaceLineBreaksComputerFactory=i,this.fontInfo=r,this.tabSize=o,this.wrappingStrategy=a,this.wrappingColumn=s,this.wrappingIndent=u,this._constructLines(!0,null)}return(0,d.Z)(e,[{key:"dispose",value:function(){this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,[])}},{key:"createCoordinatesConverter",value:function(){return new fi(this)}},{key:"_constructLines",value:function(e,t){var n=this;this.lines=[],e&&(this.hiddenAreasIds=[]);for(var i=this.model.getLinesContent(),r=i.length,o=this.createLineBreaksComputer(),a=0;a<r;a++)o.addRequest(i[a],t?t[a]:null);for(var s=o.finalize(),u=[],l=this.hiddenAreasIds.map((function(e){return n.model.getDecorationRange(e)})).sort(fe.e.compareRangesUsingStarts),c=1,d=0,h=-1,f=h+1<l.length?d+1:r+2,p=0;p<r;p++){var g=p+1;g===f&&(c=l[++h].startLineNumber,d=l[h].endLineNumber,f=h+1<l.length?d+1:r+2);var v=g>=c&&g<=d,m=Ci(s[p],!v);u[p]=m.getViewLineCount(),this.lines[p]=m}this._validModelVersionId=this.model.getVersionId(),this.prefixSumComputer=new pi(u)}},{key:"getHiddenAreas",value:function(){var e=this;return this.hiddenAreasIds.map((function(t){return e.model.getDecorationRange(t)}))}},{key:"_reduceRanges",value:function(e){var t=this;if(0===e.length)return[];for(var n=e.map((function(e){return t.model.validateRange(e)})).sort(fe.e.compareRangesUsingStarts),i=[],r=n[0].startLineNumber,o=n[0].endLineNumber,a=1,s=n.length;a<s;a++){var u=n[a];u.startLineNumber>o+1?(i.push(new fe.e(r,1,o,1)),r=u.startLineNumber,o=u.endLineNumber):u.endLineNumber>o&&(o=u.endLineNumber)}return i.push(new fe.e(r,1,o,1)),i}},{key:"setHiddenAreas",value:function(e){var t=this,n=this._reduceRanges(e),i=this.hiddenAreasIds.map((function(e){return t.model.getDecorationRange(e)})).sort(fe.e.compareRangesUsingStarts);if(n.length===i.length){for(var o=!1,a=0;a<n.length;a++)if(!n[a].equalsRange(i[a])){o=!0;break}if(!o)return!1}var s,u=[],l=(0,r.Z)(n);try{for(l.s();!(s=l.n()).done;){var c=s.value;u.push({range:c,options:di.qx.EMPTY})}}catch(w){l.e(w)}finally{l.f()}this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,u);for(var d=n,h=1,f=0,p=-1,g=p+1<d.length?f+1:this.lines.length+2,v=!1,m=0;m<this.lines.length;m++){var _=m+1;_===g&&(h=d[++p].startLineNumber,f=d[p].endLineNumber,g=p+1<d.length?f+1:this.lines.length+2);var y=!1;if(_>=h&&_<=f?this.lines[m].isVisible()&&(this.lines[m]=this.lines[m].setVisible(!1),y=!0):(v=!0,this.lines[m].isVisible()||(this.lines[m]=this.lines[m].setVisible(!0),y=!0)),y){var b=this.lines[m].getViewLineCount();this.prefixSumComputer.changeValue(m,b)}}return v||this.setHiddenAreas([]),!0}},{key:"modelPositionIsVisible",value:function(e,t){return!(e<1||e>this.lines.length)&&this.lines[e-1].isVisible()}},{key:"getModelLineViewLineCount",value:function(e){return e<1||e>this.lines.length?1:this.lines[e-1].getViewLineCount()}},{key:"setTabSize",value:function(e){return this.tabSize!==e&&(this.tabSize=e,this._constructLines(!1,null),!0)}},{key:"setWrappingSettings",value:function(e,t,n,i){var r=this.fontInfo.equals(e),o=this.wrappingStrategy===t,a=this.wrappingColumn===n,s=this.wrappingIndent===i;if(r&&o&&a&&s)return!1;var u=r&&o&&!a&&s;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=n,this.wrappingIndent=i;var l=null;if(u){l=[];for(var c=0,d=this.lines.length;c<d;c++)l[c]=this.lines[c].getLineBreakData()}return this._constructLines(!1,l),!0}},{key:"createLineBreaksComputer",value:function(){return("advanced"===this.wrappingStrategy?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent)}},{key:"onModelFlushed",value:function(){this._constructLines(!0,null)}},{key:"onModelLinesDeleted",value:function(e,t,n){if(e<=this._validModelVersionId)return null;var i=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,r=this.prefixSumComputer.getAccumulatedValue(n-1);return this.lines.splice(t-1,n-t+1),this.prefixSumComputer.removeValues(t-1,n-t+1),new An(i,r)}},{key:"onModelLinesInserted",value:function(e,t,n,i){if(e<=this._validModelVersionId)return null;for(var r=t>2&&!this.lines[t-2].isVisible(),o=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,a=0,s=[],u=[],l=0,c=i.length;l<c;l++){var d=Ci(i[l],!r);s.push(d);var h=d.getViewLineCount();a+=h,u[l]=h}return this.lines=this.lines.slice(0,t-1).concat(s).concat(this.lines.slice(t-1)),this.prefixSumComputer.insertValues(t-1,u),new Rn(o,o+a-1)}},{key:"onModelLineChanged",value:function(e,t,n){if(e<=this._validModelVersionId)return[!1,null,null,null];var i=t-1,r=this.lines[i].getViewLineCount(),o=Ci(n,this.lines[i].isVisible());this.lines[i]=o;var a=this.lines[i].getViewLineCount(),s=!1,u=0,l=-1,c=0,d=-1,h=0,f=-1;return r>a?(f=(h=(l=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1)+1)+(r-a)-1,s=!0):r<a?(d=(c=(l=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+r-1)+1)+(a-r)-1,s=!0):l=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1,this.prefixSumComputer.changeValue(i,a),[s,u<=l?new In(u,l):null,c<=d?new Rn(c,d):null,h<=f?new An(h,f):null]}},{key:"acceptVersionId",value:function(e){this._validModelVersionId=e,1!==this.lines.length||this.lines[0].isVisible()||this.setHiddenAreas([])}},{key:"getViewLineCount",value:function(){return this.prefixSumComputer.getTotalValue()}},{key:"_toValidViewLineNumber",value:function(e){if(e<1)return 1;var t=this.getViewLineCount();return e>t?t:0|e}},{key:"getActiveIndentGuide",value:function(e,t,n){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),n=this._toValidViewLineNumber(n);var i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),r=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),o=this.convertViewPositionToModelPosition(n,this.getViewLineMinColumn(n)),a=this.model.getActiveIndentGuide(i.lineNumber,r.lineNumber,o.lineNumber),s=this.convertModelPositionToViewPosition(a.startLineNumber,1),u=this.convertModelPositionToViewPosition(a.endLineNumber,this.model.getLineMaxColumn(a.endLineNumber));return{startLineNumber:s.lineNumber,endLineNumber:u.lineNumber,indent:a.indent}}},{key:"getViewLinesIndentGuides",value:function(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),i=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t)),r=[],o=[],a=[],s=n.lineNumber-1,u=i.lineNumber-1,l=null,c=s;c<=u;c++){var d=this.lines[c];if(d.isVisible()){var h=d.getViewLineNumberOfModelPosition(0,c===s?n.column:1),f=d.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(c+1)),p=f-h+1,g=0;p>1&&1===d.getViewLineMinColumn(this.model,c+1,f)&&(g=0===h?1:2),o.push(p),a.push(g),null===l&&(l=new he.L(c+1,0))}else null!==l&&(r=r.concat(this.model.getLinesIndentGuides(l.lineNumber,c)),l=null)}null!==l&&(r=r.concat(this.model.getLinesIndentGuides(l.lineNumber,i.lineNumber)),l=null);for(var v=t-e+1,m=new Array(v),_=0,y=0,b=r.length;y<b;y++){var w=r[y],C=Math.min(v-_,o[y]),k=a[y],S=void 0;S=2===k?0:1===k?1:C;for(var x=0;x<C;x++)x===S&&(w=0),m[_++]=w}return m}},{key:"getViewLineContent",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineContent(this.model,n+1,i)}},{key:"getViewLineLength",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineLength(this.model,n+1,i)}},{key:"getViewLineMinColumn",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMinColumn(this.model,n+1,i)}},{key:"getViewLineMaxColumn",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMaxColumn(this.model,n+1,i)}},{key:"getViewLineData",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineData(this.model,n+1,i)}},{key:"getViewLinesData",value:function(e,t,n){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var i=this.prefixSumComputer.getIndexOf(e-1),r=e,o=i.index,a=i.remainder,s=[],u=o,l=this.model.getLineCount();u<l;u++){var c=this.lines[u];if(c.isVisible()){var d=u===o?a:0,h=c.getViewLineCount()-d,f=!1;r+h>t&&(f=!0,h=t-r+1);var p=d+h;if(c.getViewLinesData(this.model,u+1,d,p,r-e,n,s),r+=h,f)break}}return s}},{key:"validateViewPosition",value:function(e,t,n){e=this._toValidViewLineNumber(e);var i=this.prefixSumComputer.getIndexOf(e-1),r=i.index,o=i.remainder,a=this.lines[r],s=a.getViewLineMinColumn(this.model,r+1,o),u=a.getViewLineMaxColumn(this.model,r+1,o);t<s&&(t=s),t>u&&(t=u);var l=a.getModelColumnOfViewPosition(o,t);return this.model.validatePosition(new he.L(r+1,l)).equals(n)?new he.L(e,t):this.convertModelPositionToViewPosition(n.lineNumber,n.column)}},{key:"validateViewRange",value:function(e,t){var n=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),i=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new fe.e(n.lineNumber,n.column,i.lineNumber,i.column)}},{key:"convertViewPositionToModelPosition",value:function(e,t){e=this._toValidViewLineNumber(e);var n=this.prefixSumComputer.getIndexOf(e-1),i=n.index,r=n.remainder,o=this.lines[i].getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new he.L(i+1,o))}},{key:"convertViewRangeToModelRange",value:function(e){var t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),n=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new fe.e(t.lineNumber,t.column,n.lineNumber,n.column)}},{key:"convertModelPositionToViewPosition",value:function(e,t){for(var n=this.model.validatePosition(new he.L(e,t)),i=n.lineNumber,r=n.column,o=i-1,a=!1;o>0&&!this.lines[o].isVisible();)o--,a=!0;if(0===o&&!this.lines[o].isVisible())return new he.L(1,1);var s=1+(0===o?0:this.prefixSumComputer.getAccumulatedValue(o-1));return a?this.lines[o].getViewPositionOfModelPosition(s,this.model.getLineMaxColumn(o+1)):this.lines[i-1].getViewPositionOfModelPosition(s,r)}},{key:"convertModelRangeToViewRange",value:function(e){var t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn),n=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn);return e.startLineNumber===e.endLineNumber&&t.lineNumber!==n.lineNumber&&n.column===this.getViewLineMinColumn(n.lineNumber)?new fe.e(t.lineNumber,t.column,n.lineNumber-1,this.getViewLineMaxColumn(n.lineNumber-1)):new fe.e(t.lineNumber,t.column,n.lineNumber,n.column)}},{key:"_getViewLineNumberForModelPosition",value:function(e,t){var n=e-1;if(this.lines[n].isVisible()){var i=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(i,t)}for(;n>0&&!this.lines[n].isVisible();)n--;if(0===n&&!this.lines[n].isVisible())return 1;var r=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(r,this.model.getLineMaxColumn(n+1))}},{key:"getAllOverviewRulerDecorations",value:function(e,t,n){var i,o=this.model.getOverviewRulerDecorations(e,t),a=new Li,s=(0,r.Z)(o);try{for(s.s();!(i=s.n()).done;){var u=i.value,l=u.options.overviewRuler,c=l?l.position:0;if(0!==c){var d=l.getColor(n),h=this._getViewLineNumberForModelPosition(u.range.startLineNumber,u.range.startColumn),f=this._getViewLineNumberForModelPosition(u.range.endLineNumber,u.range.endColumn);a.accept(d,h,f,c)}}}catch(p){s.e(p)}finally{s.f()}return a.result}},{key:"getDecorationsInRange",value:function(e,t,n){var i=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),o=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(o.lineNumber-i.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new fe.e(i.lineNumber,1,o.lineNumber,o.column),t,n);for(var a=[],s=i.lineNumber-1,u=o.lineNumber-1,l=null,c=s;c<=u;c++){if(this.lines[c].isVisible())null===l&&(l=new he.L(c+1,c===s?i.column:1));else if(null!==l){var d=this.model.getLineMaxColumn(c);a=a.concat(this.model.getDecorationsInRange(new fe.e(l.lineNumber,l.column,c,d),t,n)),l=null}}null!==l&&(a=a.concat(this.model.getDecorationsInRange(new fe.e(l.lineNumber,l.column,o.lineNumber,o.column),t,n)),l=null),a.sort((function(e,t){var n=fe.e.compareRangesUsingStarts(e.range,t.range);return 0===n?e.id<t.id?-1:e.id>t.id?1:0:n}));var h,f=[],p=0,g=null,v=(0,r.Z)(a);try{for(v.s();!(h=v.n()).done;){var m=h.value,_=m.id;g!==_&&(g=_,f[p++]=m)}}catch(y){v.e(y)}finally{v.f()}return f}}]),e}(),vi=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,[{key:"isVisible",value:function(){return!0}},{key:"setVisible",value:function(e){return e?this:mi.INSTANCE}},{key:"getLineBreakData",value:function(){return null}},{key:"getViewLineCount",value:function(){return 1}},{key:"getViewLineContent",value:function(e,t,n){return e.getLineContent(t)}},{key:"getViewLineLength",value:function(e,t,n){return e.getLineLength(t)}},{key:"getViewLineMinColumn",value:function(e,t,n){return e.getLineMinColumn(t)}},{key:"getViewLineMaxColumn",value:function(e,t,n){return e.getLineMaxColumn(t)}},{key:"getViewLineData",value:function(e,t,n){var i=e.getLineTokens(t),r=i.getLineContent();return new Tt.IP(r,!1,1,r.length+1,0,i.inflate())}},{key:"getViewLinesData",value:function(e,t,n,i,r,o,a){o[r]?a[r]=this.getViewLineData(e,t,0):a[r]=null}},{key:"getModelColumnOfViewPosition",value:function(e,t){return t}},{key:"getViewPositionOfModelPosition",value:function(e,t){return new he.L(e,t)}},{key:"getViewLineNumberOfModelPosition",value:function(e,t){return e}}]),e}();vi.INSTANCE=new vi;var mi=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,[{key:"isVisible",value:function(){return!1}},{key:"setVisible",value:function(e){return e?vi.INSTANCE:this}},{key:"getLineBreakData",value:function(){return null}},{key:"getViewLineCount",value:function(){return 0}},{key:"getViewLineContent",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLineLength",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLineMinColumn",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLineMaxColumn",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLineData",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLinesData",value:function(e,t,n,i,r,o,a){throw new Error("Not supported")}},{key:"getModelColumnOfViewPosition",value:function(e,t){throw new Error("Not supported")}},{key:"getViewPositionOfModelPosition",value:function(e,t){throw new Error("Not supported")}},{key:"getViewLineNumberOfModelPosition",value:function(e,t){throw new Error("Not supported")}}]),e}();mi.INSTANCE=new mi;var _i=function(){function e(t,n){(0,c.Z)(this,e),this._lineBreakData=t,this._isVisible=n}return(0,d.Z)(e,[{key:"isVisible",value:function(){return this._isVisible}},{key:"setVisible",value:function(e){return this._isVisible=e,this}},{key:"getLineBreakData",value:function(){return this._lineBreakData}},{key:"getViewLineCount",value:function(){return this._isVisible?this._lineBreakData.breakOffsets.length:0}},{key:"getInputStartOffsetOfOutputLineIndex",value:function(e){return Tt.le.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,e,0)}},{key:"getInputEndOffsetOfOutputLineIndex",value:function(e,t,n){return n+1===this._lineBreakData.breakOffsets.length?e.getLineMaxColumn(t)-1:Tt.le.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,n+1,0)}},{key:"getViewLineContent",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),r=this.getInputEndOffsetOfOutputLineIndex(e,t,n),o=e.getValueInRange({startLineNumber:t,startColumn:i+1,endLineNumber:t,endColumn:r+1});return n>0&&(o=bi(this._lineBreakData.wrappedTextIndentLength)+o),o}},{key:"getViewLineLength",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),r=this.getInputEndOffsetOfOutputLineIndex(e,t,n)-i;return n>0&&(r=this._lineBreakData.wrappedTextIndentLength+r),r}},{key:"getViewLineMinColumn",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");return n>0?this._lineBreakData.wrappedTextIndentLength+1:1}},{key:"getViewLineMaxColumn",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");return this.getViewLineContent(e,t,n).length+1}},{key:"getViewLineData",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),r=this.getInputEndOffsetOfOutputLineIndex(e,t,n),o=e.getValueInRange({startLineNumber:t,startColumn:i+1,endLineNumber:t,endColumn:r+1});n>0&&(o=bi(this._lineBreakData.wrappedTextIndentLength)+o);var a=n>0?this._lineBreakData.wrappedTextIndentLength+1:1,s=o.length+1,u=n+1<this.getViewLineCount(),l=0;n>0&&(l=this._lineBreakData.wrappedTextIndentLength);var c=e.getLineTokens(t),d=0===n?0:this._lineBreakData.breakOffsetsVisibleColumn[n-1];return new Tt.IP(o,u,a,s,d,c.sliceAndInflate(i,r,l))}},{key:"getViewLinesData",value:function(e,t,n,i,r,o,a){if(!this._isVisible)throw new Error("Not supported");for(var s=n;s<i;s++){var u=r+s-n;o[u]?a[u]=this.getViewLineData(e,t,s):a[u]=null}}},{key:"getModelColumnOfViewPosition",value:function(e,t){if(!this._isVisible)throw new Error("Not supported");var n=t-1;return e>0&&(n<this._lineBreakData.wrappedTextIndentLength?n=0:n-=this._lineBreakData.wrappedTextIndentLength),Tt.le.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,e,n)+1}},{key:"getViewPositionOfModelPosition",value:function(e,t){if(!this._isVisible)throw new Error("Not supported");var n=Tt.le.getOutputPositionOfInputOffset(this._lineBreakData.breakOffsets,t-1),i=n.outputLineIndex,r=n.outputOffset+1;return i>0&&(r+=this._lineBreakData.wrappedTextIndentLength),new he.L(e+i,r)}},{key:"getViewLineNumberOfModelPosition",value:function(e,t){if(!this._isVisible)throw new Error("Not supported");return e+Tt.le.getOutputPositionOfInputOffset(this._lineBreakData.breakOffsets,t-1).outputLineIndex}}]),e}(),yi=[""];function bi(e){if(e>=yi.length)for(var t=1;t<=e;t++)yi[t]=wi(t);return yi[e]}function wi(e){return new Array(e+1).join(" ")}function Ci(e,t){return null===e?t?vi.INSTANCE:mi.INSTANCE:new _i(e,t)}var ki,Si=function(){function e(t){(0,c.Z)(this,e),this._lines=t}return(0,d.Z)(e,[{key:"_validPosition",value:function(e){return this._lines.model.validatePosition(e)}},{key:"_validRange",value:function(e){return this._lines.model.validateRange(e)}},{key:"convertViewPositionToModelPosition",value:function(e){return this._validPosition(e)}},{key:"convertViewRangeToModelRange",value:function(e){return this._validRange(e)}},{key:"validateViewPosition",value:function(e,t){return this._validPosition(t)}},{key:"validateViewRange",value:function(e,t){return this._validRange(t)}},{key:"convertModelPositionToViewPosition",value:function(e){return this._validPosition(e)}},{key:"convertModelRangeToViewRange",value:function(e){return this._validRange(e)}},{key:"modelPositionIsVisible",value:function(e){var t=this._lines.model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)}},{key:"getModelLineViewLineCount",value:function(e){return 1}}]),e}(),xi=function(){function e(t){(0,c.Z)(this,e),this.model=t}return(0,d.Z)(e,[{key:"dispose",value:function(){}},{key:"createCoordinatesConverter",value:function(){return new Si(this)}},{key:"getHiddenAreas",value:function(){return[]}},{key:"setHiddenAreas",value:function(e){return!1}},{key:"setTabSize",value:function(e){return!1}},{key:"setWrappingSettings",value:function(e,t,n,i){return!1}},{key:"createLineBreaksComputer",value:function(){var e=[];return{addRequest:function(t,n){e.push(null)},finalize:function(){return e}}}},{key:"onModelFlushed",value:function(){}},{key:"onModelLinesDeleted",value:function(e,t,n){return new An(t,n)}},{key:"onModelLinesInserted",value:function(e,t,n,i){return new Rn(t,n)}},{key:"onModelLineChanged",value:function(e,t,n){return[!1,new In(t,t),null,null]}},{key:"acceptVersionId",value:function(e){}},{key:"getViewLineCount",value:function(){return this.model.getLineCount()}},{key:"getActiveIndentGuide",value:function(e,t,n){return{startLineNumber:e,endLineNumber:e,indent:0}}},{key:"getViewLinesIndentGuides",value:function(e,t){for(var n=t-e+1,i=new Array(n),r=0;r<n;r++)i[r]=0;return i}},{key:"getViewLineContent",value:function(e){return this.model.getLineContent(e)}},{key:"getViewLineLength",value:function(e){return this.model.getLineLength(e)}},{key:"getViewLineMinColumn",value:function(e){return this.model.getLineMinColumn(e)}},{key:"getViewLineMaxColumn",value:function(e){return this.model.getLineMaxColumn(e)}},{key:"getViewLineData",value:function(e){var t=this.model.getLineTokens(e),n=t.getLineContent();return new Tt.IP(n,!1,1,n.length+1,0,t.inflate())}},{key:"getViewLinesData",value:function(e,t,n){var i=this.model.getLineCount();e=Math.min(Math.max(1,e),i),t=Math.min(Math.max(1,t),i);for(var r=[],o=e;o<=t;o++){var a=o-e;n[a]||(r[a]=null),r[a]=this.getViewLineData(o)}return r}},{key:"getAllOverviewRulerDecorations",value:function(e,t,n){var i,o=this.model.getOverviewRulerDecorations(e,t),a=new Li,s=(0,r.Z)(o);try{for(s.s();!(i=s.n()).done;){var u=i.value,l=u.options.overviewRuler,c=l?l.position:0;if(0!==c){var d=l.getColor(n),h=u.range.startLineNumber,f=u.range.endLineNumber;a.accept(d,h,f,c)}}}catch(p){s.e(p)}finally{s.f()}return a.result}},{key:"getDecorationsInRange",value:function(e,t,n){return this.model.getDecorationsInRange(e,t,n)}}]),e}(),Li=function(){function e(){(0,c.Z)(this,e),this.result=Object.create(null)}return(0,d.Z)(e,[{key:"accept",value:function(e,t,n,i){var r=this.result[e];if(r){var o=r[r.length-3],a=r[r.length-1];if(o===i&&a+1>=t)return void(n>a&&(r[r.length-1]=n));r.push(i,t,n)}else this.result[e]=[i,t,n]}}]),e}(),Ei=function(){function e(t,n,i,r,o){(0,c.Z)(this,e),this.editorId=t,this.model=n,this.configuration=i,this._linesCollection=r,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}return(0,d.Z)(e,[{key:"_clearCachedModelDecorationsResolver",value:function(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}},{key:"dispose",value:function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}},{key:"reset",value:function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}},{key:"onModelDecorationsChanged",value:function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}},{key:"onLineMappingChanged",value:function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}},{key:"_getOrCreateViewModelDecoration",value:function(e){var t=e.id,n=this._decorationsCache[t];if(!n){var i,r=e.range,o=e.options;if(o.isWholeLine){var a=this._coordinatesConverter.convertModelPositionToViewPosition(new he.L(r.startLineNumber,1)),s=this._coordinatesConverter.convertModelPositionToViewPosition(new he.L(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber)));i=new fe.e(a.lineNumber,a.column,s.lineNumber,s.column)}else i=this._coordinatesConverter.convertModelRangeToViewRange(r);n=new Tt.$l(i,o),this._decorationsCache[t]=n}return n}},{key:"getDecorationsViewportData",value:function(e){var t=null!==this._cachedModelDecorationsResolver;return(t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange))||(this._cachedModelDecorationsResolver=this._getDecorationsViewportData(e),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}},{key:"_getDecorationsViewportData",value:function(e){for(var t=this._linesCollection.getDecorationsInRange(e,this.editorId,(0,ee.$J)(this.configuration.options)),n=e.startLineNumber,i=e.endLineNumber,r=[],o=0,a=[],s=n;s<=i;s++)a[s-n]=[];for(var u=0,l=t.length;u<l;u++){var c=t[u],d=c.options,h=this._getOrCreateViewModelDecoration(c),f=h.range;if(r[o++]=h,d.inlineClassName)for(var p=new Tt.$t(f,d.inlineClassName,d.inlineClassNameAffectsLetterSpacing?3:0),g=Math.max(n,f.startLineNumber),v=Math.min(i,f.endLineNumber),m=g;m<=v;m++)a[m-n].push(p);if(d.beforeContentClassName&&n<=f.startLineNumber&&f.startLineNumber<=i){var _=new Tt.$t(new fe.e(f.startLineNumber,f.startColumn,f.startLineNumber,f.startColumn),d.beforeContentClassName,1);a[f.startLineNumber-n].push(_)}if(d.afterContentClassName&&n<=f.endLineNumber&&f.endLineNumber<=i){var y=new Tt.$t(new fe.e(f.endLineNumber,f.endColumn,f.endLineNumber,f.endColumn),d.afterContentClassName,2);a[f.endLineNumber-n].push(y)}}return{decorations:r,inlineDecorations:a}}}]),e}(),Ni=!0,Di=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u){var l;if((0,c.Z)(this,n),(l=t.call(this))._editorId=e,l._configuration=i,l.model=r,l._eventDispatcher=new zn,l.onEvent=l._eventDispatcher.onEvent,l.cursorConfig=new pe.LM(l.model.getLanguageIdentifier(),l.model.getOptions(),l._configuration),l._tokenizeViewportSoon=l._register(new T.pY((function(){return l.tokenizeViewport()}),50)),l._updateConfigurationViewLineCount=l._register(new T.pY((function(){return l._updateConfigurationViewLineCountNow()}),0)),l._hasFocus=!1,l._viewportStartLine=-1,l._viewportStartLineTrackedRange=null,l._viewportStartLineDelta=0,Ni&&l.model.isTooLargeForTokenization())l._lines=new xi(l.model);else{var d=l._configuration.options,h=d.get(40),f=d.get(121),p=d.get(128),g=d.get(120);l._lines=new gi(l.model,a,s,h,l.model.getOptions().tabSize,f,p.wrappingColumn,g)}return l.coordinatesConverter=l._lines.createCoordinatesConverter(),l._cursor=l._register(new Xn(r,(0,o.Z)(l),l.coordinatesConverter,l.cursorConfig)),l.viewLayout=l._register(new ci(l._configuration,l.getLineCount(),u)),l._register(l.viewLayout.onDidScroll((function(e){e.scrollTopChanged&&l._tokenizeViewportSoon.schedule(),l._eventDispatcher.emitSingleViewEvent(new Zn(e)),l._eventDispatcher.emitOutgoingEvent(new Un(e.oldScrollWidth,e.oldScrollLeft,e.oldScrollHeight,e.oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop))}))),l._register(l.viewLayout.onDidContentSizeChange((function(e){l._eventDispatcher.emitOutgoingEvent(e)}))),l._decorations=new Ei(l._editorId,l.model,l._configuration,l._lines,l.coordinatesConverter),l._registerModelEvents(),l._register(l._configuration.onDidChangeFast((function(e){try{var t=l._eventDispatcher.beginEmitViewEvents();l._onConfigurationChanged(t,e)}finally{l._eventDispatcher.endEmitViewEvents()}}))),l._register(Mt.getInstance().onDidChange((function(){l._eventDispatcher.emitSingleViewEvent(new Hn)}))),l._updateConfigurationViewLineCountNow(),l}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._decorations.dispose(),this._lines.dispose(),this.invalidateMinimapColorCache(),this._viewportStartLineTrackedRange=this.model._setTrackedRange(this._viewportStartLineTrackedRange,null,1),this._eventDispatcher.dispose()}},{key:"createLineBreaksComputer",value:function(){return this._lines.createLineBreaksComputer()}},{key:"addViewEventHandler",value:function(e){this._eventDispatcher.addViewEventHandler(e)}},{key:"removeViewEventHandler",value:function(e){this._eventDispatcher.removeViewEventHandler(e)}},{key:"_updateConfigurationViewLineCountNow",value:function(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}},{key:"tokenizeViewport",value:function(){var e=this.viewLayout.getLinesViewportData(),t=this.coordinatesConverter.convertViewPositionToModelPosition(new he.L(e.startLineNumber,1)),n=this.coordinatesConverter.convertViewPositionToModelPosition(new he.L(e.endLineNumber,1));this.model.tokenizeViewport(t.lineNumber,n.lineNumber)}},{key:"setHasFocus",value:function(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new Mn(e)),this._eventDispatcher.emitOutgoingEvent(new Yn(!e,e))}},{key:"onCompositionStart",value:function(){this._eventDispatcher.emitSingleViewEvent(new Sn)}},{key:"onCompositionEnd",value:function(){this._eventDispatcher.emitSingleViewEvent(new xn)}},{key:"onDidColorThemeChange",value:function(){this._eventDispatcher.emitSingleViewEvent(new Fn)}},{key:"_onConfigurationChanged",value:function(e,t){var n=null;if(-1!==this._viewportStartLine){var i=new he.L(this._viewportStartLine,this.getLineMinColumn(this._viewportStartLine));n=this.coordinatesConverter.convertViewPositionToModelPosition(i)}var r=!1,o=this._configuration.options,a=o.get(40),s=o.get(121),u=o.get(128),l=o.get(120);if(this._lines.setWrappingSettings(a,s,u.wrappingColumn,l)&&(e.emitViewEvent(new Dn),e.emitViewEvent(new On),e.emitViewEvent(new Nn(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),0!==this.viewLayout.getCurrentScrollTop()&&(r=!0),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(77)&&(this._decorations.reset(),e.emitViewEvent(new Nn(null))),e.emitViewEvent(new Ln(t)),this.viewLayout.onConfigurationChanged(t),r&&n){var c=this.coordinatesConverter.convertModelPositionToViewPosition(n),d=this.viewLayout.getVerticalOffsetForLineNumber(c.lineNumber);this.viewLayout.setScrollPosition({scrollTop:d+this._viewportStartLineDelta},1)}pe.LM.shouldRecreate(t)&&(this.cursorConfig=new pe.LM(this.model.getLanguageIdentifier(),this.model.getOptions(),this._configuration),this._cursor.updateConfiguration(this.cursorConfig))}},{key:"_registerModelEvents",value:function(){var e=this;this._register(this.model.onDidChangeRawContentFast((function(t){try{var n,o=e._eventDispatcher.beginEmitViewEvents(),a=!1,s=!1,u=t.changes,l=t.versionId,c=e._lines.createLineBreaksComputer(),d=(0,r.Z)(u);try{for(d.s();!(n=d.n()).done;){var h=n.value;switch(h.changeType){case 4:var f,p=(0,r.Z)(h.detail);try{for(p.s();!(f=p.n()).done;){var g=f.value;c.addRequest(g,null)}}catch(R){p.e(R)}finally{p.f()}break;case 2:c.addRequest(h.detail,null)}}}catch(R){d.e(R)}finally{d.f()}var v,m=c.finalize(),_=0,y=(0,r.Z)(u);try{for(y.s();!(v=y.n()).done;){var b=v.value;switch(b.changeType){case 1:e._lines.onModelFlushed(),o.emitViewEvent(new Dn),e._decorations.reset(),e.viewLayout.onFlushed(e.getLineCount()),a=!0;break;case 3:var w=e._lines.onModelLinesDeleted(l,b.fromLineNumber,b.toLineNumber);null!==w&&(o.emitViewEvent(w),e.viewLayout.onLinesDeleted(w.fromLineNumber,w.toLineNumber)),a=!0;break;case 4:var C=m.slice(_,_+b.detail.length);_+=b.detail.length;var k=e._lines.onModelLinesInserted(l,b.fromLineNumber,b.toLineNumber,C);null!==k&&(o.emitViewEvent(k),e.viewLayout.onLinesInserted(k.fromLineNumber,k.toLineNumber)),a=!0;break;case 2:var S=m[_];_++;var x=e._lines.onModelLineChanged(l,b.lineNumber,S),L=(0,i.Z)(x,4),E=L[0],N=L[1],D=L[2],M=L[3];s=E,N&&o.emitViewEvent(N),D&&(o.emitViewEvent(D),e.viewLayout.onLinesInserted(D.fromLineNumber,D.toLineNumber)),M&&(o.emitViewEvent(M),e.viewLayout.onLinesDeleted(M.fromLineNumber,M.toLineNumber))}}}catch(R){y.e(R)}finally{y.f()}e._lines.acceptVersionId(l),e.viewLayout.onHeightMaybeChanged(),!a&&s&&(o.emitViewEvent(new On),o.emitViewEvent(new Nn(null)),e._cursor.onLineMappingChanged(o),e._decorations.onLineMappingChanged())}finally{e._eventDispatcher.endEmitViewEvents()}if(e._viewportStartLine=-1,e._configuration.setMaxLineNumber(e.model.getLineCount()),e._updateConfigurationViewLineCountNow(),!e._hasFocus&&e.model.getAttachedEditorCount()>=2&&e._viewportStartLineTrackedRange){var T=e.model._getTrackedRange(e._viewportStartLineTrackedRange);if(T){var O=e.coordinatesConverter.convertModelPositionToViewPosition(T.getStartPosition()),I=e.viewLayout.getVerticalOffsetForLineNumber(O.lineNumber);e.viewLayout.setScrollPosition({scrollTop:I+e._viewportStartLineDelta},1)}}try{var A=e._eventDispatcher.beginEmitViewEvents();e._cursor.onModelContentChanged(A,t)}finally{e._eventDispatcher.endEmitViewEvents()}}))),this._register(this.model.onDidChangeTokens((function(t){for(var n=[],i=0,r=t.ranges.length;i<r;i++){var o=t.ranges[i],a=e.coordinatesConverter.convertModelPositionToViewPosition(new he.L(o.fromLineNumber,1)).lineNumber,s=e.coordinatesConverter.convertModelPositionToViewPosition(new he.L(o.toLineNumber,e.model.getLineMaxColumn(o.toLineNumber))).lineNumber;n[i]={fromLineNumber:a,toLineNumber:s}}e._eventDispatcher.emitSingleViewEvent(new jn(n)),t.tokenizationSupportChanged&&e._tokenizeViewportSoon.schedule()}))),this._register(this.model.onDidChangeLanguageConfiguration((function(t){e._eventDispatcher.emitSingleViewEvent(new Tn),e.cursorConfig=new pe.LM(e.model.getLanguageIdentifier(),e.model.getOptions(),e._configuration),e._cursor.updateConfiguration(e.cursorConfig)}))),this._register(this.model.onDidChangeLanguage((function(t){e.cursorConfig=new pe.LM(e.model.getLanguageIdentifier(),e.model.getOptions(),e._configuration),e._cursor.updateConfiguration(e.cursorConfig)}))),this._register(this.model.onDidChangeOptions((function(t){if(e._lines.setTabSize(e.model.getOptions().tabSize)){try{var n=e._eventDispatcher.beginEmitViewEvents();n.emitViewEvent(new Dn),n.emitViewEvent(new On),n.emitViewEvent(new Nn(null)),e._cursor.onLineMappingChanged(n),e._decorations.onLineMappingChanged(),e.viewLayout.onFlushed(e.getLineCount())}finally{e._eventDispatcher.endEmitViewEvents()}e._updateConfigurationViewLineCount.schedule()}e.cursorConfig=new pe.LM(e.model.getLanguageIdentifier(),e.model.getOptions(),e._configuration),e._cursor.updateConfiguration(e.cursorConfig)}))),this._register(this.model.onDidChangeDecorations((function(t){e._decorations.onModelDecorationsChanged(),e._eventDispatcher.emitSingleViewEvent(new Nn(t))})))}},{key:"setHiddenAreas",value:function(e){try{var t=this._eventDispatcher.beginEmitViewEvents();this._lines.setHiddenAreas(e)&&(t.emitViewEvent(new Dn),t.emitViewEvent(new On),t.emitViewEvent(new Nn(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}},{key:"getVisibleRangesPlusViewportAboveBelow",value:function(){var e=this._configuration.options.get(127),t=this._configuration.options.get(55),n=Math.max(20,Math.round(e.height/t)),i=this.viewLayout.getLinesViewportData(),r=Math.max(1,i.completelyVisibleStartLineNumber-n),o=Math.min(this.getLineCount(),i.completelyVisibleEndLineNumber+n);return this._toModelVisibleRanges(new fe.e(r,this.getLineMinColumn(r),o,this.getLineMaxColumn(o)))}},{key:"getVisibleRanges",value:function(){var e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}},{key:"_toModelVisibleRanges",value:function(e){var t=this.coordinatesConverter.convertViewRangeToModelRange(e),n=this._lines.getHiddenAreas();if(0===n.length)return[t];for(var i=[],r=0,o=t.startLineNumber,a=t.startColumn,s=t.endLineNumber,u=t.endColumn,l=0,c=n.length;l<c;l++){var d=n[l].startLineNumber,h=n[l].endLineNumber;h<o||(d>s||(o<d&&(i[r++]=new fe.e(o,a,d-1,this.model.getLineMaxColumn(d-1))),o=h+1,a=1))}return(o<s||o===s&&a<u)&&(i[r++]=new fe.e(o,a,s,u)),i}},{key:"getCompletelyVisibleViewRange",value:function(){var e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,n=e.completelyVisibleEndLineNumber;return new fe.e(t,this.getLineMinColumn(t),n,this.getLineMaxColumn(n))}},{key:"getCompletelyVisibleViewRangeAtScrollTop",value:function(e){var t=this.viewLayout.getLinesViewportDataAtScrollTop(e),n=t.completelyVisibleStartLineNumber,i=t.completelyVisibleEndLineNumber;return new fe.e(n,this.getLineMinColumn(n),i,this.getLineMaxColumn(i))}},{key:"saveState",value:function(){var e=this.viewLayout.saveState(),t=e.scrollTop,n=this.viewLayout.getLineNumberAtVerticalOffset(t),i=this.coordinatesConverter.convertViewPositionToModelPosition(new he.L(n,this.getLineMinColumn(n))),r=this.viewLayout.getVerticalOffsetForLineNumber(n)-t;return{scrollLeft:e.scrollLeft,firstPosition:i,firstPositionDeltaTop:r}}},{key:"reduceRestoreState",value:function(e){if("undefined"===typeof e.firstPosition)return this._reduceRestoreStateCompatibility(e);var t=this.model.validatePosition(e.firstPosition),n=this.coordinatesConverter.convertModelPositionToViewPosition(t),i=this.viewLayout.getVerticalOffsetForLineNumber(n.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:i}}},{key:"_reduceRestoreStateCompatibility",value:function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}},{key:"getTabSize",value:function(){return this.model.getOptions().tabSize}},{key:"getTextModelOptions",value:function(){return this.model.getOptions()}},{key:"getLineCount",value:function(){return this._lines.getViewLineCount()}},{key:"setViewport",value:function(e,t,n){this._viewportStartLine=e;var i=this.coordinatesConverter.convertViewPositionToModelPosition(new he.L(e,this.getLineMinColumn(e)));this._viewportStartLineTrackedRange=this.model._setTrackedRange(this._viewportStartLineTrackedRange,new fe.e(i.lineNumber,i.column,i.lineNumber,i.column),1);var r=this.viewLayout.getVerticalOffsetForLineNumber(e),o=this.viewLayout.getCurrentScrollTop();this._viewportStartLineDelta=o-r}},{key:"getActiveIndentGuide",value:function(e,t,n){return this._lines.getActiveIndentGuide(e,t,n)}},{key:"getLinesIndentGuides",value:function(e,t){return this._lines.getViewLinesIndentGuides(e,t)}},{key:"getLineContent",value:function(e){return this._lines.getViewLineContent(e)}},{key:"getLineLength",value:function(e){return this._lines.getViewLineLength(e)}},{key:"getLineMinColumn",value:function(e){return this._lines.getViewLineMinColumn(e)}},{key:"getLineMaxColumn",value:function(e){return this._lines.getViewLineMaxColumn(e)}},{key:"getLineFirstNonWhitespaceColumn",value:function(e){var t=Re.LC(this.getLineContent(e));return-1===t?0:t+1}},{key:"getLineLastNonWhitespaceColumn",value:function(e){var t=Re.ow(this.getLineContent(e));return-1===t?0:t+2}},{key:"getDecorationsInViewport",value:function(e){return this._decorations.getDecorationsViewportData(e).decorations}},{key:"getViewLineRenderingData",value:function(e,t){var n=this.model.mightContainRTL(),i=this.model.mightContainNonBasicASCII(),r=this.getTabSize(),o=this._lines.getViewLineData(t),a=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return new Tt.wA(o.minColumn,o.maxColumn,o.content,o.continuesWithWrappedLine,n,i,o.tokens,a,r,o.startVisibleColumn)}},{key:"getViewLineData",value:function(e){return this._lines.getViewLineData(e)}},{key:"getMinimapLinesRenderingData",value:function(e,t,n){var i=this._lines.getViewLinesData(e,t,n);return new Tt.ud(this.getTabSize(),i)}},{key:"getAllOverviewRulerDecorations",value:function(e){return this._lines.getAllOverviewRulerDecorations(this._editorId,(0,ee.$J)(this._configuration.options),e)}},{key:"invalidateOverviewRulerColorCache",value:function(){var e,t=this.model.getOverviewRulerDecorations(),n=(0,r.Z)(t);try{for(n.s();!(e=n.n()).done;){var i=e.value.options.overviewRuler;i&&i.invalidateCachedColor()}}catch(o){n.e(o)}finally{n.f()}}},{key:"invalidateMinimapColorCache",value:function(){var e,t=this.model.getAllDecorations(),n=(0,r.Z)(t);try{for(n.s();!(e=n.n()).done;){var i=e.value.options.minimap;i&&i.invalidateCachedColor()}}catch(o){n.e(o)}finally{n.f()}}},{key:"getValueInRange",value:function(e,t){var n=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(n,t)}},{key:"getModelLineMaxColumn",value:function(e){return this.model.getLineMaxColumn(e)}},{key:"validateModelPosition",value:function(e){return this.model.validatePosition(e)}},{key:"validateModelRange",value:function(e){return this.model.validateRange(e)}},{key:"deduceModelPositionRelativeToViewPosition",value:function(e,t,n){var i=this.coordinatesConverter.convertViewPositionToModelPosition(e);2===this.model.getEOL().length&&(t<0?t-=n:t+=n);var r=this.model.getOffsetAt(i)+t;return this.model.getPositionAt(r)}},{key:"getEOL",value:function(){return this.model.getEOL()}},{key:"getPlainTextToCopy",value:function(e,t,n){var i=n?"\r\n":this.model.getEOL();(e=e.slice(0)).sort(fe.e.compareRangesUsingStarts);var o,a=!1,s=!1,u=(0,r.Z)(e);try{for(u.s();!(o=u.n()).done;){o.value.isEmpty()?a=!0:s=!0}}catch(C){u.e(C)}finally{u.f()}if(!s){if(!t)return"";for(var l=e.map((function(e){return e.startLineNumber})),c="",d=0;d<l.length;d++)d>0&&l[d-1]===l[d]||(c+=this.model.getLineContent(l[d])+i);return c}if(a&&t){var h,f=[],p=0,g=(0,r.Z)(e);try{for(g.s();!(h=g.n()).done;){var v=h.value,m=v.startLineNumber;v.isEmpty()?m!==p&&f.push(this.model.getLineContent(m)):f.push(this.model.getValueInRange(v,n?2:0)),p=m}}catch(C){g.e(C)}finally{g.f()}return 1===f.length?f[0]:f}var _,y=[],b=(0,r.Z)(e);try{for(b.s();!(_=b.n()).done;){var w=_.value;w.isEmpty()||y.push(this.model.getValueInRange(w,n?2:0))}}catch(C){b.e(C)}finally{b.f()}return 1===y.length?y[0]:y}},{key:"getRichTextToCopy",value:function(e,t){var n=this.model.getLanguageIdentifier();if(1===n.id)return null;if(1!==e.length)return null;var i=e[0];if(i.isEmpty()){if(!t)return null;var r=i.startLineNumber;i=new fe.e(r,this.model.getLineMinColumn(r),r,this.model.getLineMaxColumn(r))}var o,a=this._configuration.options.get(40),s=this._getColorMap();if(/[:;\\\/<>]/.test(a.fontFamily)||a.fontFamily===ee.hL.fontFamily)o=ee.hL.fontFamily;else{if(o=(o=a.fontFamily).replace(/"/g,"'"),!/[,']/.test(o))/[+ ]/.test(o)&&(o="'".concat(o,"'"));o="".concat(o,", ").concat(ee.hL.fontFamily)}return{mode:n.language,html:'<div style="'+"color: ".concat(s[1],";")+"background-color: ".concat(s[2],";")+"font-family: ".concat(o,";")+"font-weight: ".concat(a.fontWeight,";")+"font-size: ".concat(a.fontSize,"px;")+"line-height: ".concat(a.lineHeight,"px;")+'white-space: pre;">'+this._getHTMLToCopy(i,s)+"</div>"}}},{key:"_getHTMLToCopy",value:function(e,t){for(var n=e.startLineNumber,i=e.startColumn,r=e.endLineNumber,o=e.endColumn,a=this.getTabSize(),s="",u=n;u<=r;u++){var l=this.model.getLineTokens(u),c=l.getLineContent(),d=u===n?i-1:0,h=u===r?o-1:c.length;s+=""===c?"<br>":(0,ii.F)(c,l.inflate(),t,d,h,a,N.ED)}return s}},{key:"_getColorMap",value:function(){var e=Dt.RW.getColorMap(),t=["#000000"];if(e)for(var n=1,i=e.length;n<i;n++)t[n]=Qt.Il.Format.CSS.formatHex(e[n]);return t}},{key:"pushStackElement",value:function(){this.model.pushStackElement()}},{key:"getPrimaryCursorState",value:function(){return this._cursor.getPrimaryCursorState()}},{key:"getLastAddedCursorIndex",value:function(){return this._cursor.getLastAddedCursorIndex()}},{key:"getCursorStates",value:function(){return this._cursor.getCursorStates()}},{key:"setCursorStates",value:function(e,t,n){var i=this;this._withViewEventsCollector((function(r){return i._cursor.setStates(r,e,t,n)}))}},{key:"getCursorColumnSelectData",value:function(){return this._cursor.getCursorColumnSelectData()}},{key:"getCursorAutoClosedCharacters",value:function(){return this._cursor.getAutoClosedCharacters()}},{key:"setCursorColumnSelectData",value:function(e){this._cursor.setCursorColumnSelectData(e)}},{key:"getPrevEditOperationType",value:function(){return this._cursor.getPrevEditOperationType()}},{key:"setPrevEditOperationType",value:function(e){this._cursor.setPrevEditOperationType(e)}},{key:"getSelection",value:function(){return this._cursor.getSelection()}},{key:"getSelections",value:function(){return this._cursor.getSelections()}},{key:"getPosition",value:function(){return this._cursor.getPrimaryCursorState().modelState.position}},{key:"setSelections",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._withViewEventsCollector((function(r){return n._cursor.setSelections(r,e,t,i)}))}},{key:"saveCursorState",value:function(){return this._cursor.saveState()}},{key:"restoreCursorState",value:function(e){var t=this;this._withViewEventsCollector((function(n){return t._cursor.restoreState(n,e)}))}},{key:"_executeCursorEdit",value:function(e){this._cursor.context.cursorConfig.readOnly?this._eventDispatcher.emitOutgoingEvent(new Gn):this._withViewEventsCollector(e)}},{key:"executeEdits",value:function(e,t,n){var i=this;this._executeCursorEdit((function(r){return i._cursor.executeEdits(r,e,t,n)}))}},{key:"startComposition",value:function(){var e=this;this._cursor.setIsDoingComposition(!0),this._executeCursorEdit((function(t){return e._cursor.startComposition(t)}))}},{key:"endComposition",value:function(e){var t=this;this._cursor.setIsDoingComposition(!1),this._executeCursorEdit((function(n){return t._cursor.endComposition(n,e)}))}},{key:"type",value:function(e,t){var n=this;this._executeCursorEdit((function(i){return n._cursor.type(i,e,t)}))}},{key:"compositionType",value:function(e,t,n,i,r){var o=this;this._executeCursorEdit((function(a){return o._cursor.compositionType(a,e,t,n,i,r)}))}},{key:"paste",value:function(e,t,n,i){var r=this;this._executeCursorEdit((function(o){return r._cursor.paste(o,e,t,n,i)}))}},{key:"cut",value:function(e){var t=this;this._executeCursorEdit((function(n){return t._cursor.cut(n,e)}))}},{key:"executeCommand",value:function(e,t){var n=this;this._executeCursorEdit((function(i){return n._cursor.executeCommand(i,e,t)}))}},{key:"executeCommands",value:function(e,t){var n=this;this._executeCursorEdit((function(i){return n._cursor.executeCommands(i,e,t)}))}},{key:"revealPrimaryCursor",value:function(e,t){var n=this;this._withViewEventsCollector((function(i){return n._cursor.revealPrimary(i,e,t,0)}))}},{key:"revealTopMostCursor",value:function(e){var t=this._cursor.getTopMostViewPosition(),n=new fe.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector((function(t){return t.emitViewEvent(new Pn(e,n,null,0,!0,0))}))}},{key:"revealBottomMostCursor",value:function(e){var t=this._cursor.getBottomMostViewPosition(),n=new fe.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector((function(t){return t.emitViewEvent(new Pn(e,n,null,0,!0,0))}))}},{key:"revealRange",value:function(e,t,n,i,r){this._withViewEventsCollector((function(o){return o.emitViewEvent(new Pn(e,n,null,i,t,r))}))}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this.viewLayout.getVerticalOffsetForLineNumber(e)}},{key:"getScrollTop",value:function(){return this.viewLayout.getCurrentScrollTop()}},{key:"setScrollTop",value:function(e,t){this.viewLayout.setScrollPosition({scrollTop:e},t)}},{key:"setScrollPosition",value:function(e,t){this.viewLayout.setScrollPosition(e,t)}},{key:"deltaScrollNow",value:function(e,t){this.viewLayout.deltaScrollNow(e,t)}},{key:"changeWhitespace",value:function(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new Bn),this._eventDispatcher.emitOutgoingEvent(new Kn))}},{key:"setMaxLineWidth",value:function(e){this.viewLayout.setMaxLineWidth(e)}},{key:"_withViewEventsCollector",value:function(e){try{e(this._eventDispatcher.beginEmitViewEvents())}finally{this._eventDispatcher.endEmitViewEvents()}}}]),n}(w.JT),Mi=n(72611),Ti=n(18948),Oi=n(84596),Ii=n(41001),Ai=n(71574),Ri=n(40782),Pi=n(25941),Zi=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;(0,c.Z)(this,n),r=t.call(this,0);for(var o=0;o<e.length;o++)r.set(e.charCodeAt(o),1);for(var a=0;a<i.length;a++)r.set(i.charCodeAt(a),2);return r}return(0,d.Z)(n,[{key:"get",value:function(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}]),n}(n(84516).N),Fi=[],ji=[],Hi=function(){function e(t,n){(0,c.Z)(this,e),this.classifier=new Zi(t,n)}return(0,d.Z)(e,[{key:"createLineBreaksComputer",value:function(e,t,n,i){var r=this;t|=0,n=+n;var o=[],a=[];return{addRequest:function(e,t){o.push(e),a.push(t)},finalize:function(){for(var s=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,u=[],l=0,c=o.length;l<c;l++){var d=a[l];u[l]=d?Bi(r.classifier,d,o[l],t,n,s,i):zi(r.classifier,o[l],t,n,s,i)}return Fi.length=0,ji.length=0,u}}}}],[{key:"create",value:function(t){return new e(t.get(116),t.get(115))}}]),e}();function Bi(e,t,n,i,r,o,a){if(-1===r)return null;var s=n.length;if(s<=1)return null;var u=t.breakOffsets,l=t.breakOffsetsVisibleColumn,c=Ui(n,i,r,o,a),d=r-c,h=Fi,f=ji,p=0,g=0,v=0,m=r,_=u.length,y=0;if(y>=0)for(var b=Math.abs(l[y]-m);y+1<_;){var w=Math.abs(l[y+1]-m);if(w>=b)break;b=w,y++}for(;y<_;){var C=y<0?0:u[y],k=y<0?0:l[y];g>C&&(C=g,k=v);var S=0,x=0,L=0,E=0;if(k<=m){for(var N=k,D=0===C?0:n.charCodeAt(C-1),M=0===C?0:e.get(D),T=!0,O=C;O<s;O++){var I=O,A=n.charCodeAt(O),R=void 0,P=void 0;if(Re.ZG(A)?(O++,R=0,P=2):(R=e.get(A),P=Wi(A,N,i,o)),I>g&&Yi(D,M,A,R)&&(S=I,x=N),(N+=P)>m){I>g?(L=I,E=N-P):(L=O+1,E=N),N-x>d&&(S=0),T=!1;break}D=A,M=R}if(T){p>0&&(h[p]=u[u.length-1],f[p]=l[u.length-1],p++);break}}if(0===S){for(var Z=k,F=n.charCodeAt(C),j=e.get(F),H=!1,B=C-1;B>=g;B--){var z=B+1,W=n.charCodeAt(B);if(9===W){H=!0;break}var V=void 0,Y=void 0;if(Re.YK(W)?(B--,V=0,Y=2):(V=e.get(W),Y=Re.K7(W)?o:1),Z<=m){if(0===L&&(L=z,E=Z),Z<=m-d)break;if(Yi(W,V,F,j)){S=z,x=Z;break}}Z-=Y,F=W,j=V}if(0!==S){var U=d-(E-x);if(U<=i){var K=n.charCodeAt(L);U-(Re.ZG(K)?2:Wi(K,E,i,o))<0&&(S=0)}}if(H){y--;continue}}if(0===S&&(S=L,x=E),S<=g){var q=n.charCodeAt(g);Re.ZG(q)?(S=g+2,x=v+2):(S=g+1,x=v+Wi(q,v,i,o))}for(g=S,h[p]=S,v=x,f[p]=x,p++,m=x+d;y<0||y<_&&l[y]<x;)y++;for(var G=Math.abs(l[y]-m);y+1<_;){var $=Math.abs(l[y+1]-m);if($>=G)break;G=$,y++}}return 0===p?null:(h.length=p,f.length=p,Fi=t.breakOffsets,ji=t.breakOffsetsVisibleColumn,t.breakOffsets=h,t.breakOffsetsVisibleColumn=f,t.wrappedTextIndentLength=c,t)}function zi(e,t,n,i,r,o){if(-1===i)return null;var a=t.length;if(a<=1)return null;var s=Ui(t,n,i,r,o),u=i-s,l=[],c=[],d=0,h=0,f=0,p=i,g=t.charCodeAt(0),v=e.get(g),m=Wi(g,0,n,r),_=1;Re.ZG(g)&&(m+=1,g=t.charCodeAt(1),v=e.get(g),_++);for(var y=_;y<a;y++){var b=y,w=t.charCodeAt(y),C=void 0,k=void 0;Re.ZG(w)?(y++,C=0,k=2):(C=e.get(w),k=Wi(w,m,n,r)),Yi(g,v,w,C)&&(h=b,f=m),(m+=k)>p&&((0===h||m-f>u)&&(h=b,f=m-k),l[d]=h,c[d]=f,d++,p=f+u,h=0),g=w,v=C}return 0===d?null:(l[d]=a,c[d]=m,new Tt.le(l,c,s))}function Wi(e,t,n,i){return 9===e?n-t%n:Re.K7(e)||e<32?i:1}function Vi(e,t){return t-e%t}function Yi(e,t,n,i){return 32!==n&&(2===t||3===t&&2!==i||1===i||3===i&&1!==t)}function Ui(e,t,n,i,r){var o=0;if(0!==r){var a=Re.LC(e);if(-1!==a){for(var s=0;s<a;s++){o+=9===e.charCodeAt(s)?Vi(o,t):1}for(var u=3===r?2:2===r?1:0,l=0;l<u;l++){o+=Vi(o,t)}o+i>n&&(o=0)}}return o}var Ki=null===(ki=window.trustedTypes)||void 0===ki?void 0:ki.createPolicy("domLineBreaksComputer",{createHTML:function(e){return e}}),qi=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,[{key:"createLineBreaksComputer",value:function(e,t,n,i){t|=0,n=+n;var r=[];return{addRequest:function(e,t){r.push(e)},finalize:function(){return function(e,t,n,i,r){var o;if(-1===i){for(var a=[],s=0,u=e.length;s<u;s++)a[s]=null;return a}var l=Math.round(i*t.typicalHalfwidthCharacterWidth);2!==r&&3!==r||(r=1);var c=document.createElement("div");k.V.applyFontInfoSlow(c,t);for(var d=(0,Xe.l$)(1e4),h=[],f=[],p=[],g=[],v=[],m=0;m<e.length;m++){var _=e[m],y=0,b=0,w=l;if(0!==r)if(-1===(y=Re.LC(_)))y=0;else{for(var C=0;C<y;C++){b+=9===_.charCodeAt(C)?n-b%n:1}var S=Math.ceil(t.spaceWidth*b);S+t.typicalFullwidthCharacterWidth>l?(y=0,b=0):w=l-S}var x=_.substr(y),L=Gi(x,b,n,w,d);h[m]=y,f[m]=b,p[m]=x,g[m]=L[0],v[m]=L[1]}var E=d.build(),N=null!==(o=null===Ki||void 0===Ki?void 0:Ki.createHTML(E))&&void 0!==o?o:E;c.innerHTML=N,c.style.position="absolute",c.style.top="10000",c.style.wordWrap="break-word",document.body.appendChild(c);for(var D=document.createRange(),M=Array.prototype.slice.call(c.children,0),T=[],O=0;O<e.length;O++){var I=$i(D,M[O],p[O],g[O]);if(null!==I){for(var A=h[O],R=f[O],P=v[O],Z=[],F=0,j=I.length;F<j;F++)Z[F]=P[I[F]];if(0!==A)for(var H=0,B=I.length;H<B;H++)I[H]+=A;T[O]=new Tt.le(I,Z,R)}else T[O]=null}return document.body.removeChild(c),T}(r,e,t,n,i)}}}}],[{key:"create",value:function(){return new e}}]),e}();function Gi(e,t,n,i,r){r.appendASCIIString('<div style="width:'),r.appendASCIIString(String(i)),r.appendASCIIString('px;">');var o=e.length,a=t,s=0,u=[],l=[],c=0<o?e.charCodeAt(0):0;r.appendASCIIString("<span>");for(var d=0;d<o;d++){0!==d&&d%16384===0&&r.appendASCIIString("</span><span>"),u[d]=s,l[d]=a;var h=c;c=d+1<o?e.charCodeAt(d+1):0;var f=1,p=1;switch(h){case 9:p=f=n-a%n;for(var g=1;g<=f;g++)g<f?r.write1(160):r.appendASCII(32);break;case 32:32===c?r.write1(160):r.appendASCII(32);break;case 60:r.appendASCIIString("&lt;");break;case 62:r.appendASCIIString("&gt;");break;case 38:r.appendASCIIString("&amp;");break;case 0:r.appendASCIIString("&#00;");break;case 65279:case 8232:case 8233:case 133:r.write1(65533);break;default:Re.K7(h)&&p++,h<32?r.write1(9216+h):r.write1(h)}s+=f,a+=p}return r.appendASCIIString("</span>"),u[e.length]=s,l[e.length]=a,r.appendASCIIString("</div>"),[u,l]}function $i(e,t,n,i){if(n.length<=1)return null;var r=Array.prototype.slice.call(t.children,0),o=[];try{Qi(e,r,i,0,null,n.length-1,null,o)}catch(a){return console.log(a),null}return 0===o.length?null:(o.push(n.length),o)}function Qi(e,t,n,i,r,o,a,s){if(i!==o&&(r=r||Xi(e,t,n[i],n[i+1]),a=a||Xi(e,t,n[o],n[o+1]),!(Math.abs(r[0].top-a[0].top)<=.1)))if(i+1!==o){var u=i+(o-i)/2|0,l=Xi(e,t,n[u],n[u+1]);Qi(e,t,n,i,r,u,l,s),Qi(e,t,n,u,l,o,a,s)}else s.push(o)}function Xi(e,t,n,i){return e.setStart(t[n/16384|0].firstChild,n%16384),e.setEnd(t[i/16384|0].firstChild,i%16384),e.getClientRects()}var Ji=n(86441),er=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},tr=function(e,t){return function(n,i){t(n,i,e)}},nr=0,ir=function(){function e(t,n,i,r,o){(0,c.Z)(this,e),this.model=t,this.viewModel=n,this.view=i,this.hasRealView=r,this.listenersToRemove=o}return(0,d.Z)(e,[{key:"dispose",value:function(){(0,w.B9)(this.listenersToRemove),this.model.onBeforeDetached(),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}]),e}(),rr=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,a,s,u,l,d,h,p,g){var v;(0,c.Z)(this,n),(v=t.call(this))._onDidDispose=v._register(new b.Q5),v.onDidDispose=v._onDidDispose.event,v._onDidChangeModelContent=v._register(new b.Q5),v.onDidChangeModelContent=v._onDidChangeModelContent.event,v._onDidChangeModelLanguage=v._register(new b.Q5),v.onDidChangeModelLanguage=v._onDidChangeModelLanguage.event,v._onDidChangeModelLanguageConfiguration=v._register(new b.Q5),v.onDidChangeModelLanguageConfiguration=v._onDidChangeModelLanguageConfiguration.event,v._onDidChangeModelOptions=v._register(new b.Q5),v.onDidChangeModelOptions=v._onDidChangeModelOptions.event,v._onDidChangeModelDecorations=v._register(new b.Q5),v.onDidChangeModelDecorations=v._onDidChangeModelDecorations.event,v._onDidChangeConfiguration=v._register(new b.Q5),v.onDidChangeConfiguration=v._onDidChangeConfiguration.event,v._onDidChangeModel=v._register(new b.Q5),v.onDidChangeModel=v._onDidChangeModel.event,v._onDidChangeCursorPosition=v._register(new b.Q5),v.onDidChangeCursorPosition=v._onDidChangeCursorPosition.event,v._onDidChangeCursorSelection=v._register(new b.Q5),v.onDidChangeCursorSelection=v._onDidChangeCursorSelection.event,v._onDidAttemptReadOnlyEdit=v._register(new b.Q5),v.onDidAttemptReadOnlyEdit=v._onDidAttemptReadOnlyEdit.event,v._onDidLayoutChange=v._register(new b.Q5),v.onDidLayoutChange=v._onDidLayoutChange.event,v._editorTextFocus=v._register(new or),v.onDidFocusEditorText=v._editorTextFocus.onDidChangeToTrue,v.onDidBlurEditorText=v._editorTextFocus.onDidChangeToFalse,v._editorWidgetFocus=v._register(new or),v.onDidFocusEditorWidget=v._editorWidgetFocus.onDidChangeToTrue,v.onDidBlurEditorWidget=v._editorWidgetFocus.onDidChangeToFalse,v._onWillType=v._register(new b.Q5),v.onWillType=v._onWillType.event,v._onDidType=v._register(new b.Q5),v.onDidType=v._onDidType.event,v._onDidCompositionStart=v._register(new b.Q5),v.onDidCompositionStart=v._onDidCompositionStart.event,v._onDidCompositionEnd=v._register(new b.Q5),v.onDidCompositionEnd=v._onDidCompositionEnd.event,v._onDidPaste=v._register(new b.Q5),v.onDidPaste=v._onDidPaste.event,v._onMouseUp=v._register(new b.Q5),v.onMouseUp=v._onMouseUp.event,v._onMouseDown=v._register(new b.Q5),v.onMouseDown=v._onMouseDown.event,v._onMouseDrag=v._register(new b.Q5),v.onMouseDrag=v._onMouseDrag.event,v._onMouseDrop=v._register(new b.Q5),v.onMouseDrop=v._onMouseDrop.event,v._onMouseDropCanceled=v._register(new b.Q5),v.onMouseDropCanceled=v._onMouseDropCanceled.event,v._onContextMenu=v._register(new b.Q5),v.onContextMenu=v._onContextMenu.event,v._onMouseMove=v._register(new b.Q5),v.onMouseMove=v._onMouseMove.event,v._onMouseLeave=v._register(new b.Q5),v.onMouseLeave=v._onMouseLeave.event,v._onMouseWheel=v._register(new b.Q5),v.onMouseWheel=v._onMouseWheel.event,v._onKeyUp=v._register(new b.Q5),v.onKeyUp=v._onKeyUp.event,v._onKeyDown=v._register(new b.Q5),v.onKeyDown=v._onKeyDown.event,v._onDidContentSizeChange=v._register(new b.Q5),v.onDidContentSizeChange=v._onDidContentSizeChange.event,v._onDidScrollChange=v._register(new b.Q5),v.onDidScrollChange=v._onDidScrollChange.event,v._onDidChangeViewZones=v._register(new b.Q5),v.onDidChangeViewZones=v._onDidChangeViewZones.event;var m,_=Object.assign({},i);v._domElement=e,v._overflowWidgetsDomNode=_.overflowWidgetsDomNode,delete _.overflowWidgetsDomNode,v._id=++nr,v._decorationTypeKeysToIds={},v._decorationTypeSubtypes={},v.isSimpleWidget=a.isSimpleWidget||!1,v._telemetryData=a.telemetryData,v._configuration=v._register(v._createConfiguration(_,g)),v._register(v._configuration.onDidChange((function(e){v._onDidChangeConfiguration.fire(e);var t=v._configuration.options;if(e.hasChanged(127)){var n=t.get(127);v._onDidLayoutChange.fire(n)}}))),v._contextKeyService=v._register(d.createScoped(v._domElement)),v._notificationService=p,v._codeEditorService=u,v._commandService=l,v._themeService=h,v._register(new ar((0,o.Z)(v),v._contextKeyService)),v._register(new sr((0,o.Z)(v),v._contextKeyService)),v._instantiationService=s.createChild(new Ii.y([Ti.i6,v._contextKeyService])),v._modelData=null,v._contributions={},v._actions={},v._focusTracker=new ur(e),v._focusTracker.onChange((function(){v._editorWidgetFocus.setValue(v._focusTracker.hasFocus())})),v._contentWidgets={},v._overlayWidgets={},m=Array.isArray(a.contributions)?a.contributions:f.Uc.getEditorContributions();var w,C=(0,r.Z)(m);try{for(C.s();!(w=C.n()).done;){var k=w.value;try{var S=v._instantiationService.createInstance(k.ctor,(0,o.Z)(v));v._contributions[k.id]=S}catch(x){(0,y.dL)(x)}}}catch(x){C.e(x)}finally{C.f()}return f.Uc.getEditorActions().forEach((function(e){var t=new ei.p(e.id,e.label,e.alias,(0,Pi.f6)(e.precondition),(function(){return v._instantiationService.invokeFunction((function(t){return Promise.resolve(e.runEditorCommand(t,(0,o.Z)(v),null))}))}),v._contextKeyService);v._actions[t.id]=t})),v._codeEditorService.addCodeEditor((0,o.Z)(v)),v}return(0,d.Z)(n,[{key:"_createConfiguration",value:function(e,t){return new k.V(this.isSimpleWidget,e,this._domElement,t)}},{key:"getId",value:function(){return this.getEditorType()+":"+this._id}},{key:"getEditorType",value:function(){return ti.g.ICodeEditor}},{key:"dispose",value:function(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose();for(var e=Object.keys(this._contributions),t=0,i=e.length;t<i;t++){var r=e[t];this._contributions[r].dispose()}this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"invokeWithinContext",value:function(e){return this._instantiationService.invokeFunction(e)}},{key:"updateOptions",value:function(e){this._configuration.updateOptions(e)}},{key:"getOptions",value:function(){return this._configuration.options}},{key:"getOption",value:function(e){return this._configuration.options.get(e)}},{key:"getRawOptions",value:function(){return this._configuration.getRawOptions()}},{key:"getOverflowWidgetsDomNode",value:function(){return this._overflowWidgetsDomNode}},{key:"getConfiguredWordAtPosition",value:function(e){return this._modelData?Ji.w.getWordAtPosition(this._modelData.model,this._configuration.options.get(113),e):null}},{key:"getValue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!this._modelData)return"";var t=!(!e||!e.preserveBOM),n=0;return e&&e.lineEnding&&"\n"===e.lineEnding?n=1:e&&e.lineEnding&&"\r\n"===e.lineEnding&&(n=2),this._modelData.model.getValue(n,t)}},{key:"setValue",value:function(e){this._modelData&&this._modelData.model.setValue(e)}},{key:"getModel",value:function(){return this._modelData?this._modelData.model:null}},{key:"setModel",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if((null!==this._modelData||null!==e)&&(!this._modelData||this._modelData.model!==e)){var t=this.hasTextFocus(),n=this._detachModel();this._attachModel(e),t&&this.hasModel()&&this.focus();var i={oldModelUrl:n?n.uri:null,newModelUrl:e?e.uri:null};this._removeDecorationTypes(),this._onDidChangeModel.fire(i),this._postDetachModelCleanup(n)}}},{key:"_removeDecorationTypes",value:function(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(var e in this._decorationTypeSubtypes){var t=this._decorationTypeSubtypes[e];for(var n in t)this._removeDecorationType(e+"-"+n)}this._decorationTypeSubtypes={}}}},{key:"getVisibleRanges",value:function(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}},{key:"getVisibleRangesPlusViewportAboveBelow",value:function(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}},{key:"getWhitespaces",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}},{key:"getTopForLineNumber",value:function(e){return this._modelData?n._getVerticalOffsetForPosition(this._modelData,e,1):-1}},{key:"getTopForPosition",value:function(e,t){return this._modelData?n._getVerticalOffsetForPosition(this._modelData,e,t):-1}},{key:"setHiddenAreas",value:function(e){this._modelData&&this._modelData.viewModel.setHiddenAreas(e.map((function(e){return fe.e.lift(e)})))}},{key:"getVisibleColumnFromPosition",value:function(e){if(!this._modelData)return e.column;var t=this._modelData.model.validatePosition(e),n=this._modelData.model.getOptions().tabSize;return pe.io.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,n)+1}},{key:"getPosition",value:function(){return this._modelData?this._modelData.viewModel.getPosition():null}},{key:"setPosition",value:function(e){if(this._modelData){if(!he.L.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections("api",[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}},{key:"_sendRevealRange",value:function(e,t,n,i){if(this._modelData){if(!fe.e.isIRange(e))throw new Error("Invalid arguments");var r=this._modelData.model.validateRange(e),o=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(r);this._modelData.viewModel.revealRange("api",n,o,t,i)}}},{key:"revealLine",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,0,t)}},{key:"revealLineInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,1,t)}},{key:"revealLineInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,2,t)}},{key:"revealLineNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,5,t)}},{key:"_revealLine",value:function(e,t,n){if("number"!==typeof e)throw new Error("Invalid arguments");this._sendRevealRange(new fe.e(e,1,e,1),t,!1,n)}},{key:"revealPosition",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,0,!0,t)}},{key:"revealPositionInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,1,!0,t)}},{key:"revealPositionInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,2,!0,t)}},{key:"revealPositionNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,5,!0,t)}},{key:"_revealPosition",value:function(e,t,n,i){if(!he.L.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new fe.e(e.lineNumber,e.column,e.lineNumber,e.column),t,n,i)}},{key:"getSelection",value:function(){return this._modelData?this._modelData.viewModel.getSelection():null}},{key:"getSelections",value:function(){return this._modelData?this._modelData.viewModel.getSelections():null}},{key:"setSelection",value:function(e){var t=L.Y.isISelection(e),n=fe.e.isIRange(e);if(!t&&!n)throw new Error("Invalid arguments");if(t)this._setSelectionImpl(e);else if(n){var i={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(i)}}},{key:"_setSelectionImpl",value:function(e){if(this._modelData){var t=new L.Y(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections("api",[t])}}},{key:"revealLines",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,0,n)}},{key:"revealLinesInCenter",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,1,n)}},{key:"revealLinesInCenterIfOutsideViewport",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,2,n)}},{key:"revealLinesNearTop",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,5,n)}},{key:"_revealLines",value:function(e,t,n,i){if("number"!==typeof e||"number"!==typeof t)throw new Error("Invalid arguments");this._sendRevealRange(new fe.e(e,1,t,1),n,!1,i)}},{key:"revealRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];this._revealRange(e,n?1:0,i,t)}},{key:"revealRangeInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,1,!0,t)}},{key:"revealRangeInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,2,!0,t)}},{key:"revealRangeNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,5,!0,t)}},{key:"revealRangeNearTopIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,6,!0,t)}},{key:"revealRangeAtTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,3,!0,t)}},{key:"_revealRange",value:function(e,t,n,i){if(!fe.e.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(fe.e.lift(e),t,n,i)}},{key:"setSelections",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"api",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(this._modelData){if(!e||0===e.length)throw new Error("Invalid arguments");for(var i=0,r=e.length;i<r;i++)if(!L.Y.isISelection(e[i]))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,e,n)}}},{key:"getContentWidth",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}},{key:"getScrollWidth",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}},{key:"getScrollLeft",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}},{key:"getContentHeight",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}},{key:"getScrollHeight",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}},{key:"getScrollTop",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}},{key:"setScrollLeft",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(this._modelData){if("number"!==typeof e)throw new Error("Invalid arguments");this._modelData.viewModel.setScrollPosition({scrollLeft:e},t)}}},{key:"setScrollTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(this._modelData){if("number"!==typeof e)throw new Error("Invalid arguments");this._modelData.viewModel.setScrollPosition({scrollTop:e},t)}}},{key:"setScrollPosition",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this._modelData&&this._modelData.viewModel.setScrollPosition(e,t)}},{key:"saveViewState",value:function(){if(!this._modelData)return null;for(var e={},t=0,n=Object.keys(this._contributions);t<n.length;t++){var i=n[t],r=this._contributions[i];"function"===typeof r.saveViewState&&(e[i]=r.saveViewState())}return{cursorState:this._modelData.viewModel.saveCursorState(),viewState:this._modelData.viewModel.saveState(),contributionsState:e}}},{key:"restoreViewState",value:function(e){if(this._modelData&&this._modelData.hasRealView){var t=e;if(t&&t.cursorState&&t.viewState){var n=t.cursorState;Array.isArray(n)?this._modelData.viewModel.restoreCursorState(n):this._modelData.viewModel.restoreCursorState([n]);for(var i=t.contributionsState||{},r=Object.keys(this._contributions),o=0,a=r.length;o<a;o++){var s=r[o],u=this._contributions[s];"function"===typeof u.restoreViewState&&u.restoreViewState(i[s])}var l=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(l)}}}},{key:"getContribution",value:function(e){return this._contributions[e]||null}},{key:"getActions",value:function(){for(var e=[],t=Object.keys(this._actions),n=0,i=t.length;n<i;n++){var r=t[n];e.push(this._actions[r])}return e}},{key:"getSupportedActions",value:function(){var e=this.getActions();return e=e.filter((function(e){return e.isSupported()}))}},{key:"getAction",value:function(e){return this._actions[e]||null}},{key:"trigger",value:function(e,t,n){switch(n=n||{},t){case"compositionStart":return void this._startComposition();case"compositionEnd":return void this._endComposition(e);case"type":var i=n;return void this._type(e,i.text||"");case"replacePreviousChar":var r=n;return void this._compositionType(e,r.text||"",r.replaceCharCnt||0,0,0);case"compositionType":var o=n;return void this._compositionType(e,o.text||"",o.replacePrevCharCnt||0,o.replaceNextCharCnt||0,o.positionDelta||0);case"paste":var a=n;return void this._paste(e,a.text||"",a.pasteOnNewLine||!1,a.multicursorText||null,a.mode||null);case"cut":return void this._cut(e)}var s=this.getAction(t);s?Promise.resolve(s.run()).then(void 0,y.dL):this._modelData&&(this._triggerEditorCommand(e,t,n)||this._triggerCommand(t,n))}},{key:"_triggerCommand",value:function(e,t){this._commandService.executeCommand(e,t)}},{key:"_startComposition",value:function(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}},{key:"_endComposition",value:function(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}},{key:"_type",value:function(e,t){this._modelData&&0!==t.length&&("keyboard"===e&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),"keyboard"===e&&this._onDidType.fire(t))}},{key:"_compositionType",value:function(e,t,n,i,r){this._modelData&&this._modelData.viewModel.compositionType(t,n,i,r,e)}},{key:"_paste",value:function(e,t,n,i,r){if(this._modelData&&0!==t.length){var o=this._modelData.viewModel.getSelection().getStartPosition();this._modelData.viewModel.paste(t,n,i,e);var a=this._modelData.viewModel.getSelection().getStartPosition();"keyboard"===e&&this._onDidPaste.fire({range:new fe.e(o.lineNumber,o.column,a.lineNumber,a.column),mode:r})}}},{key:"_cut",value:function(e){this._modelData&&this._modelData.viewModel.cut(e)}},{key:"_triggerEditorCommand",value:function(e,t,n){var i=this,r=f.Uc.getEditorCommand(t);return!!r&&((n=n||{}).source=e,this._instantiationService.invokeFunction((function(e){Promise.resolve(r.runEditorCommand(e,i,n)).then(void 0,y.dL)})),!0)}},{key:"_getViewModel",value:function(){return this._modelData?this._modelData.viewModel:null}},{key:"pushUndoStop",value:function(){return!!this._modelData&&(!this._configuration.options.get(77)&&(this._modelData.model.pushStackElement(),!0))}},{key:"popUndoStop",value:function(){return!!this._modelData&&(!this._configuration.options.get(77)&&(this._modelData.model.popStackElement(),!0))}},{key:"executeEdits",value:function(e,t,n){return!!this._modelData&&(!this._configuration.options.get(77)&&(i=n?Array.isArray(n)?function(){return n}:n:function(){return null},this._modelData.viewModel.executeEdits(e,t,i),!0));var i}},{key:"executeCommand",value:function(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}},{key:"executeCommands",value:function(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}},{key:"changeDecorations",value:function(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}},{key:"getLineDecorations",value:function(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,(0,ee.$J)(this._configuration.options)):null}},{key:"deltaDecorations",value:function(e,t){return this._modelData?0===e.length&&0===t.length?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}},{key:"removeDecorations",value:function(e){var t=this._decorationTypeKeysToIds[e];t&&this.deltaDecorations(t,[]),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}},{key:"getLayoutInfo",value:function(){return this._configuration.options.get(127)}},{key:"createOverviewRuler",value:function(e){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(e):null}},{key:"getContainerDomNode",value:function(){return this._domElement}},{key:"getDomNode",value:function(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null}},{key:"delegateVerticalScrollbarMouseDown",value:function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateVerticalScrollbarMouseDown(e)}},{key:"layout",value:function(e){this._configuration.observeReferenceElement(e),this.render()}},{key:"focus",value:function(){this._modelData&&this._modelData.hasRealView&&this._modelData.view.focus()}},{key:"hasTextFocus",value:function(){return!(!this._modelData||!this._modelData.hasRealView)&&this._modelData.view.isFocused()}},{key:"hasWidgetFocus",value:function(){return this._focusTracker&&this._focusTracker.hasFocus()}},{key:"addContentWidget",value:function(e){var t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a content widget with the same id."),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}},{key:"layoutContentWidget",value:function(e){var t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){var n=this._contentWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(n)}}},{key:"removeContentWidget",value:function(e){var t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){var n=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(n)}}},{key:"addOverlayWidget",value:function(e){var t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}},{key:"layoutOverlayWidget",value:function(e){var t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){var n=this._overlayWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(n)}}},{key:"removeOverlayWidget",value:function(e){var t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){var n=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(n)}}},{key:"changeViewZones",value:function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.change(e)}},{key:"getTargetAtClientPoint",value:function(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(e,t):null}},{key:"getScrolledVisiblePosition",value:function(e){if(!this._modelData||!this._modelData.hasRealView)return null;var t=this._modelData.model.validatePosition(e),i=this._configuration.options,r=i.get(127);return{top:n._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+r.glyphMarginWidth+r.lineNumbersWidth+r.decorationsWidth-this.getScrollLeft(),height:i.get(55)}}},{key:"getOffsetForColumn",value:function(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(e,t):-1}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._modelData&&this._modelData.hasRealView&&this._modelData.view.render(!0,e)}},{key:"setAriaOptions",value:function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(e)}},{key:"applyFontInfo",value:function(e){k.V.applyFontInfoSlow(e,this._configuration.options.get(40))}},{key:"_attachModel",value:function(e){var t=this;if(e){var n=[];this._domElement.setAttribute("data-mode-id",e.getLanguageIdentifier().language),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setMaxLineNumber(e.getLineCount()),e.onBeforeAttached();var r=new Di(this._id,this._configuration,e,qi.create(),Hi.create(this._configuration.options),(function(e){return _.scheduleAtNextAnimationFrame(e)}));n.push(e.onDidChangeDecorations((function(e){return t._onDidChangeModelDecorations.fire(e)}))),n.push(e.onDidChangeLanguage((function(n){t._domElement.setAttribute("data-mode-id",e.getLanguageIdentifier().language),t._onDidChangeModelLanguage.fire(n)}))),n.push(e.onDidChangeLanguageConfiguration((function(e){return t._onDidChangeModelLanguageConfiguration.fire(e)}))),n.push(e.onDidChangeContent((function(e){return t._onDidChangeModelContent.fire(e)}))),n.push(e.onDidChangeOptions((function(e){return t._onDidChangeModelOptions.fire(e)}))),n.push(e.onWillDispose((function(){return t.setModel(null)}))),n.push(r.onEvent((function(e){switch(e.kind){case 0:t._onDidContentSizeChange.fire(e);break;case 1:t._editorTextFocus.setValue(e.hasFocus);break;case 2:t._onDidScrollChange.fire(e);break;case 3:t._onDidChangeViewZones.fire();break;case 4:t._onDidAttemptReadOnlyEdit.fire();break;case 5:e.reachedMaxCursorCount&&t._notificationService.warn(m.N("cursors.maximum","The number of cursors has been limited to {0}.",Xn.MAX_CURSOR_COUNT));for(var n=[],i=0,r=e.selections.length;i<r;i++)n[i]=e.selections[i].getPosition();var o={position:n[0],secondaryPositions:n.slice(1),reason:e.reason,source:e.source};t._onDidChangeCursorPosition.fire(o);var a={selection:e.selections[0],secondarySelections:e.selections.slice(1),modelVersionId:e.modelVersionId,oldSelections:e.oldSelections,oldModelVersionId:e.oldModelVersionId,source:e.source,reason:e.reason};t._onDidChangeCursorSelection.fire(a)}})));var o=this._createView(r),a=(0,i.Z)(o,2),s=a[0],u=a[1];if(u){this._domElement.appendChild(s.domNode.domNode);for(var l=Object.keys(this._contentWidgets),c=0,d=l.length;c<d;c++){var h=l[c];s.addContentWidget(this._contentWidgets[h])}for(var f=0,p=(l=Object.keys(this._overlayWidgets)).length;f<p;f++){var g=l[f];s.addOverlayWidget(this._overlayWidgets[g])}s.render(!1,!0),s.domNode.domNode.setAttribute("data-uri",e.uri.toString())}this._modelData=new ir(e,r,s,u,n)}else this._modelData=null}},{key:"_createView",value:function(e){var t,n=this;t=this.isSimpleWidget?{paste:function(e,t,i,r){n._paste("keyboard",e,t,i,r)},type:function(e){n._type("keyboard",e)},compositionType:function(e,t,i,r){n._compositionType("keyboard",e,t,i,r)},startComposition:function(){n._startComposition()},endComposition:function(){n._endComposition("keyboard")},cut:function(){n._cut("keyboard")}}:{paste:function(e,t,i,r){var o={text:e,pasteOnNewLine:t,multicursorText:i,mode:r};n._commandService.executeCommand("paste",o)},type:function(e){var t={text:e};n._commandService.executeCommand("type",t)},compositionType:function(e,t,i,r){if(i||r){var o={text:e,replacePrevCharCnt:t,replaceNextCharCnt:i,positionDelta:r};n._commandService.executeCommand("compositionType",o)}else{var a={text:e,replaceCharCnt:t};n._commandService.executeCommand("replacePreviousChar",a)}},startComposition:function(){n._commandService.executeCommand("compositionStart",{})},endComposition:function(){n._commandService.executeCommand("compositionEnd",{})},cut:function(){n._commandService.executeCommand("cut",{})}};var i=new $e(e.coordinatesConverter);return i.onKeyDown=function(e){return n._onKeyDown.fire(e)},i.onKeyUp=function(e){return n._onKeyUp.fire(e)},i.onContextMenu=function(e){return n._onContextMenu.fire(e)},i.onMouseMove=function(e){return n._onMouseMove.fire(e)},i.onMouseLeave=function(e){return n._onMouseLeave.fire(e)},i.onMouseDown=function(e){return n._onMouseDown.fire(e)},i.onMouseUp=function(e){return n._onMouseUp.fire(e)},i.onMouseDrag=function(e){return n._onMouseDrag.fire(e)},i.onMouseDrop=function(e){return n._onMouseDrop.fire(e)},i.onMouseDropCanceled=function(e){return n._onMouseDropCanceled.fire(e)},i.onMouseWheel=function(e){return n._onMouseWheel.fire(e)},[new yn(t,this._configuration,this._themeService,e,i,this._overflowWidgetsDomNode),!0]}},{key:"_postDetachModelCleanup",value:function(e){e&&e.removeAllDecorationsWithOwnerId(this._id)}},{key:"_detachModel",value:function(){if(!this._modelData)return null;var e=this._modelData.model,t=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),t&&this._domElement.contains(t)&&this._domElement.removeChild(t),e}},{key:"_removeDecorationType",value:function(e){this._codeEditorService.removeDecorationType(e)}},{key:"hasModel",value:function(){return null!==this._modelData}}],[{key:"_getVerticalOffsetForPosition",value:function(e,t,n){var i=e.model.validatePosition({lineNumber:t,column:n}),r=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(r.lineNumber)}}]),n}(w.JT);rr=er([tr(3,Oi.TG),tr(4,S.$),tr(5,Mi.H),tr(6,Ti.i6),tr(7,je.XE),tr(8,Ai.lT),tr(9,Ri.F)],rr);var or=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,c.Z)(this,n),(e=t.call(this))._onDidChangeToTrue=e._register(new b.Q5),e.onDidChangeToTrue=e._onDidChangeToTrue.event,e._onDidChangeToFalse=e._register(new b.Q5),e.onDidChangeToFalse=e._onDidChangeToFalse.event,e._value=0,e}return(0,d.Z)(n,[{key:"setValue",value:function(e){var t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())}}]),n}(w.JT),ar=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this))._editor=e,i.createKey("editorId",e.getId()),r._editorSimpleInput=ni.u.editorSimpleInput.bindTo(i),r._editorFocus=ni.u.focus.bindTo(i),r._textInputFocus=ni.u.textInputFocus.bindTo(i),r._editorTextFocus=ni.u.editorTextFocus.bindTo(i),r._editorTabMovesFocus=ni.u.tabMovesFocus.bindTo(i),r._editorReadonly=ni.u.readOnly.bindTo(i),r._inDiffEditor=ni.u.inDiffEditor.bindTo(i),r._editorColumnSelection=ni.u.columnSelection.bindTo(i),r._hasMultipleSelections=ni.u.hasMultipleSelections.bindTo(i),r._hasNonEmptySelection=ni.u.hasNonEmptySelection.bindTo(i),r._canUndo=ni.u.canUndo.bindTo(i),r._canRedo=ni.u.canRedo.bindTo(i),r._register(r._editor.onDidChangeConfiguration((function(){return r._updateFromConfig()}))),r._register(r._editor.onDidChangeCursorSelection((function(){return r._updateFromSelection()}))),r._register(r._editor.onDidFocusEditorWidget((function(){return r._updateFromFocus()}))),r._register(r._editor.onDidBlurEditorWidget((function(){return r._updateFromFocus()}))),r._register(r._editor.onDidFocusEditorText((function(){return r._updateFromFocus()}))),r._register(r._editor.onDidBlurEditorText((function(){return r._updateFromFocus()}))),r._register(r._editor.onDidChangeModel((function(){return r._updateFromModel()}))),r._register(r._editor.onDidChangeConfiguration((function(){return r._updateFromModel()}))),r._updateFromConfig(),r._updateFromSelection(),r._updateFromFocus(),r._updateFromModel(),r._editorSimpleInput.set(r._editor.isSimpleWidget),r}return(0,d.Z)(n,[{key:"_updateFromConfig",value:function(){var e=this._editor.getOptions();this._editorTabMovesFocus.set(e.get(126)),this._editorReadonly.set(e.get(77)),this._inDiffEditor.set(e.get(51)),this._editorColumnSelection.set(e.get(16))}},{key:"_updateFromSelection",value:function(){var e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some((function(e){return!e.isEmpty()})))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}},{key:"_updateFromFocus",value:function(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}},{key:"_updateFromModel",value:function(){var e=this._editor.getModel();this._canUndo.set(Boolean(e&&e.canUndo())),this._canRedo.set(Boolean(e&&e.canRedo()))}}]),n}(w.JT),sr=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;(0,c.Z)(this,n),(r=t.call(this))._editor=e,r._contextKeyService=i,r._langId=ni.u.languageId.bindTo(i),r._hasCompletionItemProvider=ni.u.hasCompletionItemProvider.bindTo(i),r._hasCodeActionsProvider=ni.u.hasCodeActionsProvider.bindTo(i),r._hasCodeLensProvider=ni.u.hasCodeLensProvider.bindTo(i),r._hasDefinitionProvider=ni.u.hasDefinitionProvider.bindTo(i),r._hasDeclarationProvider=ni.u.hasDeclarationProvider.bindTo(i),r._hasImplementationProvider=ni.u.hasImplementationProvider.bindTo(i),r._hasTypeDefinitionProvider=ni.u.hasTypeDefinitionProvider.bindTo(i),r._hasHoverProvider=ni.u.hasHoverProvider.bindTo(i),r._hasDocumentHighlightProvider=ni.u.hasDocumentHighlightProvider.bindTo(i),r._hasDocumentSymbolProvider=ni.u.hasDocumentSymbolProvider.bindTo(i),r._hasReferenceProvider=ni.u.hasReferenceProvider.bindTo(i),r._hasRenameProvider=ni.u.hasRenameProvider.bindTo(i),r._hasSignatureHelpProvider=ni.u.hasSignatureHelpProvider.bindTo(i),r._hasInlineHintsProvider=ni.u.hasInlineHintsProvider.bindTo(i),r._hasDocumentFormattingProvider=ni.u.hasDocumentFormattingProvider.bindTo(i),r._hasDocumentSelectionFormattingProvider=ni.u.hasDocumentSelectionFormattingProvider.bindTo(i),r._hasMultipleDocumentFormattingProvider=ni.u.hasMultipleDocumentFormattingProvider.bindTo(i),r._hasMultipleDocumentSelectionFormattingProvider=ni.u.hasMultipleDocumentSelectionFormattingProvider.bindTo(i),r._isInWalkThrough=ni.u.isInWalkThroughSnippet.bindTo(i);var o=function(){return r._update()};return r._register(e.onDidChangeModel(o)),r._register(e.onDidChangeModelLanguage(o)),r._register(Dt.KZ.onDidChange(o)),r._register(Dt.H9.onDidChange(o)),r._register(Dt.He.onDidChange(o)),r._register(Dt.Ct.onDidChange(o)),r._register(Dt.RN.onDidChange(o)),r._register(Dt.vI.onDidChange(o)),r._register(Dt.tA.onDidChange(o)),r._register(Dt.xp.onDidChange(o)),r._register(Dt.vH.onDidChange(o)),r._register(Dt.vJ.onDidChange(o)),r._register(Dt.FL.onDidChange(o)),r._register(Dt.G0.onDidChange(o)),r._register(Dt.Az.onDidChange(o)),r._register(Dt.vN.onDidChange(o)),r._register(Dt.nD.onDidChange(o)),r._register(Dt.wo.onDidChange(o)),o(),r}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"reset",value:function(){var e=this;this._contextKeyService.bufferChangeEvents((function(){e._langId.reset(),e._hasCompletionItemProvider.reset(),e._hasCodeActionsProvider.reset(),e._hasCodeLensProvider.reset(),e._hasDefinitionProvider.reset(),e._hasDeclarationProvider.reset(),e._hasImplementationProvider.reset(),e._hasTypeDefinitionProvider.reset(),e._hasHoverProvider.reset(),e._hasDocumentHighlightProvider.reset(),e._hasDocumentSymbolProvider.reset(),e._hasReferenceProvider.reset(),e._hasRenameProvider.reset(),e._hasDocumentFormattingProvider.reset(),e._hasDocumentSelectionFormattingProvider.reset(),e._hasSignatureHelpProvider.reset(),e._isInWalkThrough.reset()}))}},{key:"_update",value:function(){var e=this,t=this._editor.getModel();t?this._contextKeyService.bufferChangeEvents((function(){e._langId.set(t.getLanguageIdentifier().language),e._hasCompletionItemProvider.set(Dt.KZ.has(t)),e._hasCodeActionsProvider.set(Dt.H9.has(t)),e._hasCodeLensProvider.set(Dt.He.has(t)),e._hasDefinitionProvider.set(Dt.Ct.has(t)),e._hasDeclarationProvider.set(Dt.RN.has(t)),e._hasImplementationProvider.set(Dt.vI.has(t)),e._hasTypeDefinitionProvider.set(Dt.tA.has(t)),e._hasHoverProvider.set(Dt.xp.has(t)),e._hasDocumentHighlightProvider.set(Dt.vH.has(t)),e._hasDocumentSymbolProvider.set(Dt.vJ.has(t)),e._hasReferenceProvider.set(Dt.FL.has(t)),e._hasRenameProvider.set(Dt.G0.has(t)),e._hasSignatureHelpProvider.set(Dt.nD.has(t)),e._hasInlineHintsProvider.set(Dt.wo.has(t)),e._hasDocumentFormattingProvider.set(Dt.Az.has(t)||Dt.vN.has(t)),e._hasDocumentSelectionFormattingProvider.set(Dt.vN.has(t)),e._hasMultipleDocumentFormattingProvider.set(Dt.Az.all(t).length+Dt.vN.all(t).length>1),e._hasMultipleDocumentSelectionFormattingProvider.set(Dt.vN.all(t).length>1),e._isInWalkThrough.set(t.uri.scheme===C.lg.walkThroughSnippet)})):this.reset()}}]),n}(w.JT),ur=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._onChange=i._register(new b.Q5),i.onChange=i._onChange.event,i._hasFocus=!1,i._domFocusTracker=i._register(_.trackFocus(e)),i._register(i._domFocusTracker.onDidFocus((function(){i._hasFocus=!0,i._onChange.fire(void 0)}))),i._register(i._domFocusTracker.onDidBlur((function(){i._hasFocus=!1,i._onChange.fire(void 0)}))),i}return(0,d.Z)(n,[{key:"hasFocus",value:function(){return this._hasFocus}}]),n}(w.JT),lr=encodeURIComponent("<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='"),cr=encodeURIComponent("'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>");function dr(e){return lr+encodeURIComponent(e.toString())+cr}var hr=encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" height="3" width="12"><g fill="'),fr=encodeURIComponent('"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></svg>');(0,je.Ic)((function(e,t){var n=e.getColor(Ot.b6);n&&t.addRule(".monaco-editor .".concat("squiggly-error"," { border-bottom: 4px double ",n,"; }"));var i=e.getColor(Ot.lX);i&&t.addRule(".monaco-editor .".concat("squiggly-error",' { background: url("data:image/svg+xml,',dr(i),'") repeat-x bottom left; }'));var r=e.getColor(Ot.A2);r&&t.addRule(".monaco-editor .".concat("squiggly-error","::before { display: block; content: ''; width: 100%; height: 100%; background: ",r,"; }"));var o=e.getColor(Ot.pW);o&&t.addRule(".monaco-editor .".concat("squiggly-warning"," { border-bottom: 4px double ",o,"; }"));var a=e.getColor(Ot.uo);a&&t.addRule(".monaco-editor .".concat("squiggly-warning",' { background: url("data:image/svg+xml,',dr(a),'") repeat-x bottom left; }'));var s=e.getColor(Ot.gp);s&&t.addRule(".monaco-editor .".concat("squiggly-warning","::before { display: block; content: ''; width: 100%; height: 100%; background: ",s,"; }"));var u=e.getColor(Ot.T8);u&&t.addRule(".monaco-editor .".concat("squiggly-info"," { border-bottom: 4px double ",u,"; }"));var l=e.getColor(Ot.c6);l&&t.addRule(".monaco-editor .".concat("squiggly-info",' { background: url("data:image/svg+xml,',dr(l),'") repeat-x bottom left; }'));var c=e.getColor(Ot.fe);c&&t.addRule(".monaco-editor .".concat("squiggly-info","::before { display: block; content: ''; width: 100%; height: 100%; background: ",c,"; }"));var d=e.getColor(Ot.fE);d&&t.addRule(".monaco-editor .".concat("squiggly-hint"," { border-bottom: 2px dotted ",d,"; }"));var h=e.getColor(Ot.Du);h&&t.addRule(".monaco-editor .".concat("squiggly-hint",' { background: url("data:image/svg+xml,',function(e){return hr+encodeURIComponent(e.toString())+fr}(h),'") no-repeat bottom left; }'));var f=e.getColor(Fe.zu);f&&t.addRule(".monaco-editor.showUnused .".concat("squiggly-inline-unnecessary"," { opacity: ",f.rgba.a,"; }"));var p=e.getColor(Fe.kp);p&&t.addRule(".monaco-editor.showUnused .".concat("squiggly-unnecessary"," { border-bottom: 2px dashed ",p,"; }"));var g=e.getColor(Ot.NO)||"inherit";t.addRule(".monaco-editor.showDeprecated .".concat("squiggly-inline-deprecated"," { text-decoration: line-through; text-decoration-color: ",g,"}"))}))},20224:function(e,t,n){"use strict";n.d(t,{p:function(){return Ce}});var i,r=n(97326),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(37762),c=n(15671),d=n(43144),h=n(56345),f=n(84540),p=n(41149),g=n(2523),v=n(27997),m=n(11732),_=n(81626),y=n(47014),b=n(47908),w=n(8295),C=n(95079),k=n(87757),S=n.n(k),x=n(67404),L=n(61727),E=n(29077),N=n(33399),D=n(76556),M=n(34763),T=n(67297),O=n(80449),I=n(70632),A=n(4587),R=n(18948),P=n(92992),Z=n(70182),F=n(4354),j=n(62239),H=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},B=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.originalLineStart=t,this.originalLineEnd=n,this.modifiedLineStart=i,this.modifiedLineEnd=r}return(0,d.Z)(e,[{key:"getType",value:function(){return 0===this.originalLineStart?1:0===this.modifiedLineStart?2:0}}]),e}(),z=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.entries=t})),W=(0,j.q5)("diff-review-insert",F.lA.add,h.N("diffReviewInsertIcon","Icon for 'Insert' in diff review.")),V=(0,j.q5)("diff-review-remove",F.lA.remove,h.N("diffReviewRemoveIcon","Icon for 'Remove' in diff review.")),Y=(0,j.q5)("diff-review-close",F.lA.close,h.N("diffReviewCloseIcon","Icon for 'Close' in diff review.")),U=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._width=0,i._diffEditor=e,i._isVisible=!1,i.shadow=(0,p.X)(document.createElement("div")),i.shadow.setClassName("diff-review-shadow"),i.actionBarContainer=(0,p.X)(document.createElement("div")),i.actionBarContainer.setClassName("diff-review-actions"),i._actionBar=i._register(new x.o(i.actionBarContainer.domNode)),i._actionBar.push(new E.aU("diffreview.close",h.N("label.close","Close"),"close-diff-review "+Z.kS.asClassName(Y),!0,(function(){return H((0,r.Z)(i),void 0,void 0,S().mark((function e(){return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.hide());case 1:case"end":return e.stop()}}),e,this)})))})),{label:!1,icon:!0}),i.domNode=(0,p.X)(document.createElement("div")),i.domNode.setClassName("diff-review monaco-editor-background"),i._content=(0,p.X)(document.createElement("div")),i._content.setClassName("diff-review-content"),i._content.setAttribute("role","code"),i.scrollbar=i._register(new L.s$(i._content.domNode,{})),i.domNode.domNode.appendChild(i.scrollbar.getDomNode()),i._register(e.onDidUpdateDiff((function(){i._isVisible&&(i._diffs=i._compute(),i._render())}))),i._register(e.getModifiedEditor().onDidChangeCursorPosition((function(){i._isVisible&&i._render()}))),i._register(f.addStandardDisposableListener(i.domNode.domNode,"click",(function(e){e.preventDefault();var t=f.findParentWithClass(e.target,"diff-review-row");t&&i._goToRow(t)}))),i._register(f.addStandardDisposableListener(i.domNode.domNode,"keydown",(function(e){(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),i._goToRow(i._getNextRow())),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),i._goToRow(i._getPrevRow())),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),i.hide()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),i.accept())}))),i._diffs=[],i._currentDiff=null,i}return(0,d.Z)(n,[{key:"prev",value:function(){var e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){for(var t=-1,n=0,i=this._diffs.length;n<i;n++)if(this._diffs[n]===this._currentDiff){t=n;break}e=this._diffs.length+t-1}else e=this._findDiffIndex(this._diffEditor.getPosition());if(0!==this._diffs.length){e%=this._diffs.length;var r=this._diffs[e].entries;this._diffEditor.setPosition(new T.L(r[0].modifiedLineStart,1)),this._diffEditor.setSelection({startColumn:1,startLineNumber:r[0].modifiedLineStart,endColumn:1073741824,endLineNumber:r[r.length-1].modifiedLineEnd}),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow())}}},{key:"next",value:function(){var e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){for(var t=-1,n=0,i=this._diffs.length;n<i;n++)if(this._diffs[n]===this._currentDiff){t=n;break}e=t+1}else e=this._findDiffIndex(this._diffEditor.getPosition());if(0!==this._diffs.length){e%=this._diffs.length;var r=this._diffs[e].entries;this._diffEditor.setPosition(new T.L(r[0].modifiedLineStart,1)),this._diffEditor.setSelection({startColumn:1,startLineNumber:r[0].modifiedLineStart,endColumn:1073741824,endLineNumber:r[r.length-1].modifiedLineEnd}),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow())}}},{key:"accept",value:function(){var e=-1,t=this._getCurrentFocusedRow();if(t){var n=parseInt(t.getAttribute("data-line"),10);isNaN(n)||(e=n)}this.hide(),-1!==e&&(this._diffEditor.setPosition(new T.L(e,1)),this._diffEditor.revealPosition(new T.L(e,1),1))}},{key:"hide",value:function(){this._isVisible=!1,this._diffEditor.updateOptions({readOnly:!1}),this._diffEditor.focus(),this._diffEditor.doLayout(),this._render()}},{key:"_getPrevRow",value:function(){var e=this._getCurrentFocusedRow();return e?e.previousElementSibling?e.previousElementSibling:e:this._getFirstRow()}},{key:"_getNextRow",value:function(){var e=this._getCurrentFocusedRow();return e?e.nextElementSibling?e.nextElementSibling:e:this._getFirstRow()}},{key:"_getFirstRow",value:function(){return this.domNode.domNode.querySelector(".diff-review-row")}},{key:"_getCurrentFocusedRow",value:function(){var e=document.activeElement;return e&&/diff-review-row/.test(e.className)?e:null}},{key:"_goToRow",value:function(e){var t=this._getCurrentFocusedRow();e.tabIndex=0,e.focus(),t&&t!==e&&(t.tabIndex=-1),this.scrollbar.scanDomNode()}},{key:"isVisible",value:function(){return this._isVisible}},{key:"layout",value:function(e,t,n){this._width=t,this.shadow.setTop(e-6),this.shadow.setWidth(t),this.shadow.setHeight(this._isVisible?6:0),this.domNode.setTop(e),this.domNode.setWidth(t),this.domNode.setHeight(n),this._content.setHeight(n),this._content.setWidth(t),this._isVisible?(this.actionBarContainer.setAttribute("aria-hidden","false"),this.actionBarContainer.setDisplay("block")):(this.actionBarContainer.setAttribute("aria-hidden","true"),this.actionBarContainer.setDisplay("none"))}},{key:"_compute",value:function(){var e=this._diffEditor.getLineChanges();if(!e||0===e.length)return[];var t=this._diffEditor.getOriginalEditor().getModel(),i=this._diffEditor.getModifiedEditor().getModel();return t&&i?n._mergeAdjacent(e,t.getLineCount(),i.getLineCount()):[]}},{key:"_findDiffIndex",value:function(e){for(var t=e.lineNumber,n=0,i=this._diffs.length;n<i;n++){var r=this._diffs[n].entries;if(t<=r[r.length-1].modifiedLineEnd)return n}return 0}},{key:"_render",value:function(){var e=this._diffEditor.getOriginalEditor().getOptions(),t=this._diffEditor.getModifiedEditor().getOptions(),i=this._diffEditor.getOriginalEditor().getModel(),r=this._diffEditor.getModifiedEditor().getModel(),o=i.getOptions(),a=r.getOptions();if(!this._isVisible||!i||!r)return f.clearNode(this._content.domNode),this._currentDiff=null,void this.scrollbar.scanDomNode();this._diffEditor.updateOptions({readOnly:!0});var s=this._findDiffIndex(this._diffEditor.getPosition());if(this._diffs[s]!==this._currentDiff){this._currentDiff=this._diffs[s];var u=this._diffs[s].entries,l=document.createElement("div");l.className="diff-review-table",l.setAttribute("role","list"),l.setAttribute("aria-label",'Difference review. Use "Stage | Unstage | Revert Selected Ranges" commands'),y.V.applyFontInfoSlow(l,t.get(40));for(var c=0,d=0,p=0,g=0,v=0,m=u.length;v<m;v++){var _=u[v],b=_.originalLineStart,w=_.originalLineEnd,C=_.modifiedLineStart,k=_.modifiedLineEnd;0!==b&&(0===c||b<c)&&(c=b),0!==w&&(0===d||w>d)&&(d=w),0!==C&&(0===p||C<p)&&(p=C),0!==k&&(0===g||k>g)&&(g=k)}var S=document.createElement("div");S.className="diff-review-row";var x=document.createElement("div");x.className="diff-review-cell diff-review-summary";var L=d-c+1,E=g-p+1;x.appendChild(document.createTextNode("".concat(s+1,"/").concat(this._diffs.length,": @@ -").concat(c,",").concat(L," +").concat(p,",").concat(E," @@"))),S.setAttribute("data-line",String(p));var N=function(e){return 0===e?h.N("no_lines_changed","no lines changed"):1===e?h.N("one_line_changed","1 line changed"):h.N("more_lines_changed","{0} lines changed",e)},D=N(L),M=N(E);S.setAttribute("aria-label",h.N({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.']},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",s+1,this._diffs.length,c,D,p,M)),S.appendChild(x),S.setAttribute("role","listitem"),l.appendChild(S);for(var T=t.get(55),O=p,I=0,A=u.length;I<A;I++){var R=u[I];n._renderSection(l,R,O,T,this._width,e,i,o,t,r,a),0!==R.modifiedLineStart&&(O=R.modifiedLineEnd)}f.clearNode(this._content.domNode),this._content.domNode.appendChild(l),this.scrollbar.scanDomNode()}}}],[{key:"_mergeAdjacent",value:function(e,t,n){if(!e||0===e.length)return[];for(var i=[],r=0,o=0,a=e.length;o<a;o++){var s=e[o],u=s.originalStartLineNumber,l=s.originalEndLineNumber,c=s.modifiedStartLineNumber,d=s.modifiedEndLineNumber,h=[],f=0,p=0===l?u:u-1,g=0===d?c:c-1,v=1,m=1;if(o>0){var _=e[o-1];v=0===_.originalEndLineNumber?_.originalStartLineNumber+1:_.originalEndLineNumber+1,m=0===_.modifiedEndLineNumber?_.modifiedStartLineNumber+1:_.modifiedEndLineNumber+1}var y=p-3+1,b=g-3+1;if(y<v){var w=v-y;y+=w,b+=w}if(b<m){var C=m-b;y+=C,b+=C}h[f++]=new B(y,p,b,g),0!==l&&(h[f++]=new B(u,l,0,0)),0!==d&&(h[f++]=new B(0,0,c,d));var k=0===l?u+1:l+1,S=0===d?c+1:d+1,x=t,L=n;if(o+1<a){var E=e[o+1];x=0===E.originalEndLineNumber?E.originalStartLineNumber:E.originalStartLineNumber-1,L=0===E.modifiedEndLineNumber?E.modifiedStartLineNumber:E.modifiedStartLineNumber-1}var N=k+3-1,D=S+3-1;if(N>x){var M=x-N;N+=M,D+=M}if(D>L){var T=L-D;N+=T,D+=T}h[f++]=new B(k,N,S,D),i[r++]=new z(h)}for(var O=i[0].entries,I=[],A=0,R=1,P=i.length;R<P;R++){var Z=i[R].entries,F=O[O.length-1],j=Z[0];0===F.getType()&&0===j.getType()&&j.originalLineStart<=F.originalLineEnd?(O[O.length-1]=new B(F.originalLineStart,j.originalLineEnd,F.modifiedLineStart,j.modifiedLineEnd),O=O.concat(Z.slice(1))):(I[A++]=new z(O),O=Z)}return I[A++]=new z(O),I}},{key:"_renderSection",value:function(e,t,i,r,o,a,s,u,l,c,d){var f=t.getType(),p="diff-review-row",g="",v=null;switch(f){case 1:p="diff-review-row line-insert",g=" char-insert",v=W;break;case 2:p="diff-review-row line-delete",g=" char-delete",v=V}for(var m=t.originalLineStart,_=t.originalLineEnd,y=t.modifiedLineStart,b=t.modifiedLineEnd,w=Math.max(b-y,_-m),C=a.get(127),k=C.glyphMarginWidth+C.lineNumbersWidth,S=l.get(127),x=10+S.glyphMarginWidth+S.lineNumbersWidth,L=0;L<=w;L++){var E=0===m?0:m+L,N=0===y?0:y+L,D=document.createElement("div");D.style.minWidth=o+"px",D.className=p,D.setAttribute("role","listitem"),0!==N&&(i=N),D.setAttribute("data-line",String(i));var M=document.createElement("div");M.className="diff-review-cell",M.style.height="".concat(r,"px"),D.appendChild(M);var T=document.createElement("span");T.style.width=k+"px",T.style.minWidth=k+"px",T.className="diff-review-line-number"+g,0!==E?T.appendChild(document.createTextNode(String(E))):T.innerText="\xa0",M.appendChild(T);var O=document.createElement("span");O.style.width=x+"px",O.style.minWidth=x+"px",O.style.paddingRight="10px",O.className="diff-review-line-number"+g,0!==N?O.appendChild(document.createTextNode(String(N))):O.innerText="\xa0",M.appendChild(O);var I=document.createElement("span");if(I.className="diff-review-spacer",v){var A=document.createElement("span");A.className=Z.kS.asClassName(v),A.innerText="\xa0\xa0",I.appendChild(A)}else I.innerText="\xa0\xa0";M.appendChild(I);var R=void 0;if(0!==N){var P=this._renderLine(c,l,d.tabSize,N);n._ttPolicy&&(P=n._ttPolicy.createHTML(P)),M.insertAdjacentHTML("beforeend",P),R=c.getLineContent(N)}else{var F=this._renderLine(s,a,u.tabSize,E);n._ttPolicy&&(F=n._ttPolicy.createHTML(F)),M.insertAdjacentHTML("beforeend",F),R=s.getLineContent(E)}0===R.length&&(R=h.N("blankLine","blank"));var j="";switch(f){case 0:j=E===N?h.N({key:"unchangedLine",comment:["The placeholders are contents of the line and should not be translated."]},"{0} unchanged line {1}",R,E):h.N("equalLine","{0} original line {1} modified line {2}",R,E,N);break;case 1:j=h.N("insertLine","+ {0} modified line {1}",R,N);break;case 2:j=h.N("deleteLine","- {0} original line {1}",R,E)}D.setAttribute("aria-label",j),e.appendChild(D)}}},{key:"_renderLine",value:function(e,t,n,i){var r=e.getLineContent(i),o=t.get(40),a=new Uint32Array(2);a[0]=r.length,a[1]=16793600;var s=new M.A(a,r),u=A.wA.isBasicASCII(r,e.mightContainNonBasicASCII()),l=A.wA.containsRTL(r,u,e.mightContainRTL());return(0,I.tF)(new I.IJ(o.isMonospace&&!t.get(27),o.canUseHalfwidthRightwardsArrow,r,!1,u,l,0,s,[],n,0,o.spaceWidth,o.middotWidth,o.wsmiddotWidth,t.get(102),t.get(85),t.get(79),t.get(41)!==D.n0.OFF,null)).html}}]),n}(_.JT);U._ttPolicy=null===(i=window.trustedTypes)||void 0===i?void 0:i.createPolicy("diffReview",{createHTML:function(e){return e}}),(0,Z.Ic)((function(e,t){var n=e.getColor(O.hw);n&&t.addRule(".monaco-diff-editor .diff-review-line-number { color: ".concat(n,"; }"));var i=e.getColor(P._w);i&&t.addRule(".monaco-diff-editor .diff-review-shadow { box-shadow: ".concat(i," 0 -6px 6px -6px inset; }"))}));var K=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(){return(0,c.Z)(this,n),t.call(this,{id:"editor.action.diffReview.next",label:h.N("editor.action.diffReview.next","Go to Next Difference"),alias:"Go to Next Difference",precondition:R.Ao.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:65,weight:100}})}return(0,d.Z)(n,[{key:"run",value:function(e,t){var n=G(e);n&&n.diffReviewNext()}}]),n}(N.R6),q=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(){return(0,c.Z)(this,n),t.call(this,{id:"editor.action.diffReview.prev",label:h.N("editor.action.diffReview.prev","Go to Previous Difference"),alias:"Go to Previous Difference",precondition:R.Ao.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:1089,weight:100}})}return(0,d.Z)(n,[{key:"run",value:function(e,t){var n=G(e);n&&n.diffReviewPrev()}}]),n}(N.R6);function G(e){var t=e.get(w.$),n=t.listDiffEditors(),i=t.getActiveCodeEditor();if(!i)return null;for(var r=0,o=n.length;r<o;r++){var a=n[r];if(a.getModifiedEditor().getId()===i.getId()||a.getOriginalEditor().getId()===i.getId())return a}return null}(0,N.Qr)(K),(0,N.Qr)(q);var $,Q=n(67033),X=n(85500),J=n(30062),ee=n(28893),te=n(333),ne=n(32110),ie=n(29805),re=n(84596),oe=n(41001),ae=n(71574),se=n(98989),ue=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},le=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,o,a,s,u){var l;(0,c.Z)(this,n),(l=t.call(this))._viewZoneId=e,l._marginDomNode=i,l.editor=o,l.diff=a,l._contextMenuService=s,l._clipboardService=u,l._visibility=!1,l._marginDomNode.style.zIndex="10",l._diffActions=document.createElement("div"),l._diffActions.className=F.lA.lightBulb.classNames+" lightbulb-glyph",l._diffActions.style.position="absolute";var d=o.getOption(55),p=o.getModel().getEOL();l._diffActions.style.right="0px",l._diffActions.style.visibility="hidden",l._diffActions.style.height="".concat(d,"px"),l._diffActions.style.lineHeight="".concat(d,"px"),l._marginDomNode.appendChild(l._diffActions);var g=[];g.push(new E.aU("diff.clipboard.copyDeletedContent",a.originalEndLineNumber>a.modifiedStartLineNumber?h.N("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):h.N("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"),void 0,!0,(function(){return ue((0,r.Z)(l),void 0,void 0,S().mark((function e(){var t,n;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=new Q.e(a.originalStartLineNumber,1,a.originalEndLineNumber+1,1),n=a.originalModel.getValueInRange(t),e.next=4,this._clipboardService.writeText(n);case 4:case"end":return e.stop()}}),e,this)})))})));var v=0,m=void 0;a.originalEndLineNumber>a.modifiedStartLineNumber&&(m=new E.aU("diff.clipboard.copyDeletedLineContent",h.N("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",a.originalStartLineNumber),void 0,!0,(function(){return ue((0,r.Z)(l),void 0,void 0,S().mark((function e(){var t;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=a.originalModel.getLineContent(a.originalStartLineNumber+v),e.next=3,this._clipboardService.writeText(t);case 3:case"end":return e.stop()}}),e,this)})))})),g.push(m)),o.getOption(77)||g.push(new E.aU("diff.inline.revertChange",h.N("diff.inline.revertChange.label","Revert this change"),void 0,!0,(function(){return ue((0,r.Z)(l),void 0,void 0,S().mark((function e(){var t,n,i,r;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=new Q.e(a.originalStartLineNumber,1,a.originalEndLineNumber,a.originalModel.getLineMaxColumn(a.originalEndLineNumber)),n=a.originalModel.getValueInRange(t),0===a.modifiedEndLineNumber?(i=o.getModel().getLineMaxColumn(a.modifiedStartLineNumber),o.executeEdits("diffEditor",[{range:new Q.e(a.modifiedStartLineNumber,i,a.modifiedStartLineNumber,i),text:p+n}])):(r=o.getModel().getLineMaxColumn(a.modifiedEndLineNumber),o.executeEdits("diffEditor",[{range:new Q.e(a.modifiedStartLineNumber,1,a.modifiedEndLineNumber,r),text:n}]));case 3:case"end":return e.stop()}}),e)})))})));var _=function(e,t){l._contextMenuService.showContextMenu({getAnchor:function(){return{x:e,y:t}},getActions:function(){return m&&(m.label=h.N("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",a.originalStartLineNumber+v)),g},autoSelectFirstItem:!0})};return l._register(f.addStandardDisposableListener(l._diffActions,"mousedown",(function(e){var t=f.getDomNodePagePosition(l._diffActions),n=t.top,i=t.height,r=Math.floor(d/3);e.preventDefault(),_(e.posx,n+i+r)}))),l._register(o.onMouseMove((function(e){8===e.target.type||5===e.target.type?e.target.detail.viewZoneId===l._viewZoneId?(l.visibility=!0,v=l._updateLightBulbPosition(l._marginDomNode,e.event.browserEvent.y,d)):l.visibility=!1:l.visibility=!1}))),l._register(o.onMouseDown((function(e){e.event.rightButton&&(8!==e.target.type&&5!==e.target.type||e.target.detail.viewZoneId===l._viewZoneId&&(e.event.preventDefault(),v=l._updateLightBulbPosition(l._marginDomNode,e.event.browserEvent.y,d),_(e.event.posx,e.event.posy+d)))}))),l}return(0,d.Z)(n,[{key:"visibility",get:function(){return this._visibility},set:function(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}},{key:"_updateLightBulbPosition",value:function(e,t,n){var i=t-f.getDomNodePagePosition(e).top,r=Math.floor(i/n),o=r*n;if(this._diffActions.style.top="".concat(o,"px"),this.diff.viewLineCounts)for(var a=0,s=0;s<this.diff.viewLineCounts.length;s++)if(r<(a+=this.diff.viewLineCounts[s]))return s;return r}}]),n}(_.JT),ce=n(38794),de=n(8729),he=n(18085),fe=n(75949),pe=n(79026),ge=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ve=function(e,t){return function(n,i){t(n,i,e)}},me=function(){function e(t,n){(0,c.Z)(this,e),this._contextMenuService=t,this._clipboardService=n,this._zones=[],this._inlineDiffMargins=[],this._zonesMap={},this._decorations=[]}return(0,d.Z)(e,[{key:"getForeignViewZones",value:function(e){var t=this;return e.filter((function(e){return!t._zonesMap[String(e.id)]}))}},{key:"clean",value:function(e){var t=this;this._zones.length>0&&e.changeViewZones((function(e){var n,i=(0,l.Z)(t._zones);try{for(i.s();!(n=i.n()).done;){var r=n.value;e.removeZone(r)}}catch(o){i.e(o)}finally{i.f()}})),this._zones=[],this._zonesMap={},this._decorations=e.deltaDecorations(this._decorations,[])}},{key:"apply",value:function(e,t,n,i){var r=this,o=i?b.ZF.capture(e):null;e.changeViewZones((function(t){var i,o=(0,l.Z)(r._zones);try{for(o.s();!(i=o.n()).done;){var a=i.value;t.removeZone(a)}}catch(p){o.e(p)}finally{o.f()}var s,u=(0,l.Z)(r._inlineDiffMargins);try{for(u.s();!(s=u.n()).done;){s.value.dispose()}}catch(p){u.e(p)}finally{u.f()}r._zones=[],r._zonesMap={},r._inlineDiffMargins=[];for(var c=0,d=n.zones.length;c<d;c++){var h=n.zones[c];h.suppressMouseDown=!0;var f=t.addZone(h);r._zones.push(f),r._zonesMap[String(f)]=!0,n.zones[c].diff&&h.marginDomNode&&(h.suppressMouseDown=!1,r._inlineDiffMargins.push(new le(f,h.marginDomNode,e,n.zones[c].diff,r._contextMenuService,r._clipboardService)))}})),o&&o.restore(e),this._decorations=e.deltaDecorations(this._decorations,n.decorations),t&&t.setZones(n.overviewZones)}}]),e}(),_e=0,ye=(0,j.q5)("diff-insert",F.lA.add,h.N("diffInsertIcon","Line decoration for inserts in the diff editor.")),be=(0,j.q5)("diff-remove",F.lA.remove,h.N("diffRemoveIcon","Line decoration for removals in the diff editor.")),we=null===($=window.trustedTypes)||void 0===$?void 0:$.createPolicy("diffEditorWidget",{createHTML:function(e){return e}}),Ce=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,o,a,s,u,d,h,g,_,y,b){var w;(0,c.Z)(this,n),(w=t.call(this))._editorProgressService=b,w._onDidDispose=w._register(new m.Q5),w.onDidDispose=w._onDidDispose.event,w._onDidUpdateDiff=w._register(new m.Q5),w.onDidUpdateDiff=w._onDidUpdateDiff.event,w._onDidContentSizeChange=w._register(new m.Q5),w._lastOriginalWarning=null,w._lastModifiedWarning=null,w._editorWorkerService=s,w._codeEditorService=h,w._contextKeyService=w._register(u.createScoped(e)),w._instantiationService=d.createChild(new oe.y([R.i6,w._contextKeyService])),w._contextKeyService.createKey("isInDiffEditor",!0),w._themeService=g,w._notificationService=_,w._id=++_e,w._state=0,w._updatingDiffProgress=null,w._domElement=e,i=i||{},w._renderSideBySide=!0,"undefined"!==typeof i.renderSideBySide&&(w._renderSideBySide=i.renderSideBySide),w._maxComputationTime=5e3,"undefined"!==typeof i.maxComputationTime&&(w._maxComputationTime=i.maxComputationTime),w._ignoreTrimWhitespace=!0,"undefined"!==typeof i.ignoreTrimWhitespace&&(w._ignoreTrimWhitespace=i.ignoreTrimWhitespace),w._renderIndicators=!0,"undefined"!==typeof i.renderIndicators&&(w._renderIndicators=i.renderIndicators),w._originalIsEditable=(0,D.O7)(i.originalEditable,!1),w._diffCodeLens=(0,D.O7)(i.diffCodeLens,!1),w._diffWordWrap=Oe(i.diffWordWrap,"inherit"),"undefined"!==typeof i.isInEmbeddedEditor?w._contextKeyService.createKey("isInEmbeddedDiffEditor",i.isInEmbeddedEditor):w._contextKeyService.createKey("isInEmbeddedDiffEditor",!1),w._renderOverviewRuler=!0,"undefined"!==typeof i.renderOverviewRuler&&(w._renderOverviewRuler=Boolean(i.renderOverviewRuler)),w._updateDecorationsRunner=w._register(new v.pY((function(){return w._updateDecorations()}),0)),w._containerDomElement=document.createElement("div"),w._containerDomElement.className=n._getClassName(w._themeService.getColorTheme(),w._renderSideBySide),w._containerDomElement.style.position="relative",w._containerDomElement.style.height="100%",w._domElement.appendChild(w._containerDomElement),w._overviewViewportDomElement=(0,p.X)(document.createElement("div")),w._overviewViewportDomElement.setClassName("diffViewport"),w._overviewViewportDomElement.setPosition("absolute"),w._overviewDomElement=document.createElement("div"),w._overviewDomElement.className="diffOverview",w._overviewDomElement.style.position="absolute",w._overviewDomElement.appendChild(w._overviewViewportDomElement.domNode),w._register(f.addStandardDisposableListener(w._overviewDomElement,"mousedown",(function(e){w._modifiedEditor.delegateVerticalScrollbarMouseDown(e)}))),w._renderOverviewRuler&&w._containerDomElement.appendChild(w._overviewDomElement),w._originalDomNode=document.createElement("div"),w._originalDomNode.className="editor original",w._originalDomNode.style.position="absolute",w._originalDomNode.style.height="100%",w._containerDomElement.appendChild(w._originalDomNode),w._modifiedDomNode=document.createElement("div"),w._modifiedDomNode.className="editor modified",w._modifiedDomNode.style.position="absolute",w._modifiedDomNode.style.height="100%",w._containerDomElement.appendChild(w._modifiedDomNode),w._beginUpdateDecorationsTimeout=-1,w._currentlyChangingViewZones=!1,w._diffComputationToken=0,w._originalEditorState=new me(y,a),w._modifiedEditorState=new me(y,a),w._isVisible=!0,w._isHandlingScrollEvent=!1,w._elementSizeObserver=w._register(new fe.I(w._containerDomElement,i.dimension,(function(){return w._onDidContainerSizeChanged()}))),i.automaticLayout&&w._elementSizeObserver.startObserving(),w._diffComputationResult=null,w._originalEditor=w._createLeftHandSideEditor(i,o.originalEditor||{}),w._modifiedEditor=w._createRightHandSideEditor(i,o.modifiedEditor||{}),w._originalOverviewRuler=null,w._modifiedOverviewRuler=null,w._reviewPane=new U((0,r.Z)(w)),w._containerDomElement.appendChild(w._reviewPane.domNode.domNode),w._containerDomElement.appendChild(w._reviewPane.shadow.domNode),w._containerDomElement.appendChild(w._reviewPane.actionBarContainer.domNode),w._enableSplitViewResizing=!0,"undefined"!==typeof i.enableSplitViewResizing&&(w._enableSplitViewResizing=i.enableSplitViewResizing),w._renderSideBySide?w._setStrategy(new Ne(w._createDataSource(),w._enableSplitViewResizing)):w._setStrategy(new Me(w._createDataSource(),w._enableSplitViewResizing)),w._register(g.onDidColorThemeChange((function(e){w._strategy&&w._strategy.applyColors(e)&&w._updateDecorationsRunner.schedule(),w._containerDomElement.className=n._getClassName(w._themeService.getColorTheme(),w._renderSideBySide)})));var C,k=N.Uc.getDiffEditorContributions(),S=(0,l.Z)(k);try{for(S.s();!(C=S.n()).done;){var x=C.value;try{w._register(d.createInstance(x.ctor,(0,r.Z)(w)))}catch(L){(0,de.dL)(L)}}}catch(L){S.e(L)}finally{S.f()}return w._codeEditorService.addDiffEditor((0,r.Z)(w)),w}return(0,d.Z)(n,[{key:"_setState",value:function(e){this._state!==e&&(this._state=e,this._updatingDiffProgress&&(this._updatingDiffProgress.done(),this._updatingDiffProgress=null),1===this._state&&(this._updatingDiffProgress=this._editorProgressService.show(!0,1e3)))}},{key:"diffReviewNext",value:function(){this._reviewPane.next()}},{key:"diffReviewPrev",value:function(){this._reviewPane.prev()}},{key:"_recreateOverviewRulers",value:function(){this._renderOverviewRuler&&(this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._originalEditor.hasModel()&&(this._originalOverviewRuler=this._originalEditor.createOverviewRuler("original diffOverviewRuler"),this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._modifiedEditor.hasModel()&&(this._modifiedOverviewRuler=this._modifiedEditor.createOverviewRuler("modified diffOverviewRuler"),this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())),this._layoutOverviewRulers())}},{key:"_createLeftHandSideEditor",value:function(e,t){var i=this,r=this._createInnerEditor(this._instantiationService,this._originalDomNode,this._adjustOptionsForLeftHandSide(e),t);this._register(r.onDidScrollChange((function(e){i._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(i._isHandlingScrollEvent=!0,i._modifiedEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),i._isHandlingScrollEvent=!1,i._layoutOverviewViewport())}))),this._register(r.onDidChangeViewZones((function(){i._onViewZonesChanged()}))),this._register(r.onDidChangeConfiguration((function(e){r.getModel()&&(e.hasChanged(40)&&i._updateDecorationsRunner.schedule(),e.hasChanged(128)&&(i._updateDecorationsRunner.cancel(),i._updateDecorations()))}))),this._register(r.onDidChangeModelContent((function(){i._isVisible&&i._beginUpdateDecorationsSoon()})));var o=this._contextKeyService.createKey("isInDiffLeftEditor",r.hasWidgetFocus());return this._register(r.onDidFocusEditorWidget((function(){return o.set(!0)}))),this._register(r.onDidBlurEditorWidget((function(){return o.set(!1)}))),this._register(r.onDidContentSizeChange((function(e){var t=i._originalEditor.getContentWidth()+i._modifiedEditor.getContentWidth()+n.ONE_OVERVIEW_WIDTH,r=Math.max(i._modifiedEditor.getContentHeight(),i._originalEditor.getContentHeight());i._onDidContentSizeChange.fire({contentHeight:r,contentWidth:t,contentHeightChanged:e.contentHeightChanged,contentWidthChanged:e.contentWidthChanged})}))),r}},{key:"_createRightHandSideEditor",value:function(e,t){var i=this,r=this._createInnerEditor(this._instantiationService,this._modifiedDomNode,this._adjustOptionsForRightHandSide(e),t);this._register(r.onDidScrollChange((function(e){i._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(i._isHandlingScrollEvent=!0,i._originalEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),i._isHandlingScrollEvent=!1,i._layoutOverviewViewport())}))),this._register(r.onDidChangeViewZones((function(){i._onViewZonesChanged()}))),this._register(r.onDidChangeConfiguration((function(e){r.getModel()&&(e.hasChanged(40)&&i._updateDecorationsRunner.schedule(),e.hasChanged(128)&&(i._updateDecorationsRunner.cancel(),i._updateDecorations()))}))),this._register(r.onDidChangeModelContent((function(){i._isVisible&&i._beginUpdateDecorationsSoon()}))),this._register(r.onDidChangeModelOptions((function(e){e.tabSize&&i._updateDecorationsRunner.schedule()})));var o=this._contextKeyService.createKey("isInDiffRightEditor",r.hasWidgetFocus());return this._register(r.onDidFocusEditorWidget((function(){return o.set(!0)}))),this._register(r.onDidBlurEditorWidget((function(){return o.set(!1)}))),this._register(r.onDidContentSizeChange((function(e){var t=i._originalEditor.getContentWidth()+i._modifiedEditor.getContentWidth()+n.ONE_OVERVIEW_WIDTH,r=Math.max(i._modifiedEditor.getContentHeight(),i._originalEditor.getContentHeight());i._onDidContentSizeChange.fire({contentHeight:r,contentWidth:t,contentHeightChanged:e.contentHeightChanged,contentWidthChanged:e.contentWidthChanged})}))),r}},{key:"_createInnerEditor",value:function(e,t,n,i){return e.createInstance(C.Gm,t,n,i)}},{key:"dispose",value:function(){this._codeEditorService.removeDiffEditor(this),-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._cleanViewZonesAndDecorations(),this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode),this._renderOverviewRuler&&this._containerDomElement.removeChild(this._overviewDomElement),this._containerDomElement.removeChild(this._originalDomNode),this._originalEditor.dispose(),this._containerDomElement.removeChild(this._modifiedDomNode),this._modifiedEditor.dispose(),this._strategy.dispose(),this._containerDomElement.removeChild(this._reviewPane.domNode.domNode),this._containerDomElement.removeChild(this._reviewPane.shadow.domNode),this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode),this._reviewPane.dispose(),this._domElement.removeChild(this._containerDomElement),this._onDidDispose.fire(),(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return this.getEditorType()+":"+this._id}},{key:"getEditorType",value:function(){return J.g.IDiffEditor}},{key:"getLineChanges",value:function(){return this._diffComputationResult?this._diffComputationResult.changes:null}},{key:"getOriginalEditor",value:function(){return this._originalEditor}},{key:"getModifiedEditor",value:function(){return this._modifiedEditor}},{key:"updateOptions",value:function(e){var t=!1;"undefined"!==typeof e.renderSideBySide&&this._renderSideBySide!==e.renderSideBySide&&(this._renderSideBySide=e.renderSideBySide,t=!0),"undefined"!==typeof e.maxComputationTime&&(this._maxComputationTime=e.maxComputationTime,this._isVisible&&this._beginUpdateDecorationsSoon());var i=!1;"undefined"!==typeof e.ignoreTrimWhitespace&&this._ignoreTrimWhitespace!==e.ignoreTrimWhitespace&&(this._ignoreTrimWhitespace=e.ignoreTrimWhitespace,i=!0),"undefined"!==typeof e.renderIndicators&&this._renderIndicators!==e.renderIndicators&&(this._renderIndicators=e.renderIndicators,i=!0),i&&this._beginUpdateDecorations(),this._originalIsEditable=(0,D.O7)(e.originalEditable,this._originalIsEditable),this._diffCodeLens=(0,D.O7)(e.diffCodeLens,this._diffCodeLens),this._diffWordWrap=Oe(e.diffWordWrap,this._diffWordWrap),this._modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(e)),this._originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(e)),"undefined"!==typeof e.enableSplitViewResizing&&(this._enableSplitViewResizing=e.enableSplitViewResizing),this._strategy.setEnableSplitViewResizing(this._enableSplitViewResizing),t&&(this._renderSideBySide?this._setStrategy(new Ne(this._createDataSource(),this._enableSplitViewResizing)):this._setStrategy(new Me(this._createDataSource(),this._enableSplitViewResizing)),this._containerDomElement.className=n._getClassName(this._themeService.getColorTheme(),this._renderSideBySide)),"undefined"!==typeof e.renderOverviewRuler&&this._renderOverviewRuler!==e.renderOverviewRuler&&(this._renderOverviewRuler=e.renderOverviewRuler,this._renderOverviewRuler?this._containerDomElement.appendChild(this._overviewDomElement):this._containerDomElement.removeChild(this._overviewDomElement))}},{key:"getModel",value:function(){return{original:this._originalEditor.getModel(),modified:this._modifiedEditor.getModel()}}},{key:"setModel",value:function(e){if(e&&(!e.original||!e.modified))throw new Error(e.original?"DiffEditorWidget.setModel: Modified model is null":"DiffEditorWidget.setModel: Original model is null");this._cleanViewZonesAndDecorations(),this._originalEditor.setModel(e?e.original:null),this._modifiedEditor.setModel(e?e.modified:null),this._updateDecorationsRunner.cancel(),e&&(this._originalEditor.setScrollTop(0),this._modifiedEditor.setScrollTop(0)),this._diffComputationResult=null,this._diffComputationToken++,this._setState(0),e&&(this._recreateOverviewRulers(),this._beginUpdateDecorations()),this._layoutOverviewViewport()}},{key:"getDomNode",value:function(){return this._domElement}},{key:"getVisibleColumnFromPosition",value:function(e){return this._modifiedEditor.getVisibleColumnFromPosition(e)}},{key:"getPosition",value:function(){return this._modifiedEditor.getPosition()}},{key:"setPosition",value:function(e){this._modifiedEditor.setPosition(e)}},{key:"revealLine",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealLine(e,t)}},{key:"revealLineInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealLineInCenter(e,t)}},{key:"revealLineInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealLineInCenterIfOutsideViewport(e,t)}},{key:"revealLineNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealLineNearTop(e,t)}},{key:"revealPosition",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealPosition(e,t)}},{key:"revealPositionInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealPositionInCenter(e,t)}},{key:"revealPositionInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealPositionInCenterIfOutsideViewport(e,t)}},{key:"revealPositionNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealPositionNearTop(e,t)}},{key:"getSelection",value:function(){return this._modifiedEditor.getSelection()}},{key:"getSelections",value:function(){return this._modifiedEditor.getSelections()}},{key:"setSelection",value:function(e){this._modifiedEditor.setSelection(e)}},{key:"setSelections",value:function(e){this._modifiedEditor.setSelections(e)}},{key:"revealLines",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._modifiedEditor.revealLines(e,t,n)}},{key:"revealLinesInCenter",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._modifiedEditor.revealLinesInCenter(e,t,n)}},{key:"revealLinesInCenterIfOutsideViewport",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._modifiedEditor.revealLinesInCenterIfOutsideViewport(e,t,n)}},{key:"revealLinesNearTop",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._modifiedEditor.revealLinesNearTop(e,t,n)}},{key:"revealRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];this._modifiedEditor.revealRange(e,t,n,i)}},{key:"revealRangeInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeInCenter(e,t)}},{key:"revealRangeInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeInCenterIfOutsideViewport(e,t)}},{key:"revealRangeNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeNearTop(e,t)}},{key:"revealRangeNearTopIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeNearTopIfOutsideViewport(e,t)}},{key:"revealRangeAtTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeAtTop(e,t)}},{key:"getSupportedActions",value:function(){return this._modifiedEditor.getSupportedActions()}},{key:"saveViewState",value:function(){return{original:this._originalEditor.saveViewState(),modified:this._modifiedEditor.saveViewState()}}},{key:"restoreViewState",value:function(e){if(e&&e.original&&e.modified){var t=e;this._originalEditor.restoreViewState(t.original),this._modifiedEditor.restoreViewState(t.modified)}}},{key:"layout",value:function(e){this._elementSizeObserver.observe(e)}},{key:"focus",value:function(){this._modifiedEditor.focus()}},{key:"hasTextFocus",value:function(){return this._originalEditor.hasTextFocus()||this._modifiedEditor.hasTextFocus()}},{key:"trigger",value:function(e,t,n){this._modifiedEditor.trigger(e,t,n)}},{key:"changeDecorations",value:function(e){return this._modifiedEditor.changeDecorations(e)}},{key:"_onDidContainerSizeChanged",value:function(){this._doLayout()}},{key:"_getReviewHeight",value:function(){return this._reviewPane.isVisible()?this._elementSizeObserver.getHeight():0}},{key:"_layoutOverviewRulers",value:function(){if(this._renderOverviewRuler&&this._originalOverviewRuler&&this._modifiedOverviewRuler){var e=this._elementSizeObserver.getHeight(),t=this._getReviewHeight(),i=n.ENTIRE_DIFF_OVERVIEW_WIDTH-2*n.ONE_OVERVIEW_WIDTH;this._modifiedEditor.getLayoutInfo()&&(this._originalOverviewRuler.setLayout({top:0,width:n.ONE_OVERVIEW_WIDTH,right:i+n.ONE_OVERVIEW_WIDTH,height:e-t}),this._modifiedOverviewRuler.setLayout({top:0,right:0,width:n.ONE_OVERVIEW_WIDTH,height:e-t}))}}},{key:"_onViewZonesChanged",value:function(){this._currentlyChangingViewZones||this._updateDecorationsRunner.schedule()}},{key:"_beginUpdateDecorationsSoon",value:function(){var e=this;-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._beginUpdateDecorationsTimeout=window.setTimeout((function(){return e._beginUpdateDecorations()}),n.UPDATE_DIFF_DECORATIONS_DELAY)}},{key:"_beginUpdateDecorations",value:function(){var e=this;this._beginUpdateDecorationsTimeout=-1;var t=this._originalEditor.getModel(),i=this._modifiedEditor.getModel();if(t&&i){this._diffComputationToken++;var r=this._diffComputationToken;this._setState(1),this._editorWorkerService.canComputeDiff(t.uri,i.uri)?this._editorWorkerService.computeDiff(t.uri,i.uri,this._ignoreTrimWhitespace,this._maxComputationTime).then((function(n){r===e._diffComputationToken&&t===e._originalEditor.getModel()&&i===e._modifiedEditor.getModel()&&(e._setState(2),e._diffComputationResult=n,e._updateDecorationsRunner.schedule(),e._onDidUpdateDiff.fire())}),(function(n){r===e._diffComputationToken&&t===e._originalEditor.getModel()&&i===e._modifiedEditor.getModel()&&(e._setState(2),e._diffComputationResult=null,e._updateDecorationsRunner.schedule())})):n._equals(t.uri,this._lastOriginalWarning)&&n._equals(i.uri,this._lastModifiedWarning)||(this._lastOriginalWarning=t.uri,this._lastModifiedWarning=i.uri,this._notificationService.warn(h.N("diff.tooLarge","Cannot compare files because one file is too large.")))}}},{key:"_cleanViewZonesAndDecorations",value:function(){this._originalEditorState.clean(this._originalEditor),this._modifiedEditorState.clean(this._modifiedEditor)}},{key:"_updateDecorations",value:function(){if(this._originalEditor.getModel()&&this._modifiedEditor.getModel()){var e=this._diffComputationResult?this._diffComputationResult.changes:[],t=this._originalEditorState.getForeignViewZones(this._originalEditor.getWhitespaces()),n=this._modifiedEditorState.getForeignViewZones(this._modifiedEditor.getWhitespaces()),i=this._strategy.getEditorsDiffDecorations(e,this._ignoreTrimWhitespace,this._renderIndicators,t,n);try{this._currentlyChangingViewZones=!0,this._originalEditorState.apply(this._originalEditor,this._originalOverviewRuler,i.original,!1),this._modifiedEditorState.apply(this._modifiedEditor,this._modifiedOverviewRuler,i.modified,!0)}finally{this._currentlyChangingViewZones=!1}}}},{key:"_adjustOptionsForSubEditor",value:function(e){var t=Object.assign({},e);return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar=Object.assign({},t.scrollbar||{}),t.scrollbar.vertical="visible",t.folding=!1,t.codeLens=this._diffCodeLens,t.fixedOverflowWidgets=!0,t.minimap=Object.assign({},t.minimap||{}),t.minimap.enabled=!1,t}},{key:"_adjustOptionsForLeftHandSide",value:function(e){var t=this._adjustOptionsForSubEditor(e);return this._renderSideBySide?t.wordWrapOverride1=this._diffWordWrap:t.wordWrapOverride1="off",e.originalAriaLabel&&(t.ariaLabel=e.originalAriaLabel),t.readOnly=!this._originalIsEditable,t.extraEditorClassName="original-in-monaco-diff-editor",Object.assign(Object.assign({},t),{dimension:{height:0,width:0}})}},{key:"_adjustOptionsForRightHandSide",value:function(e){var t=this._adjustOptionsForSubEditor(e);return e.modifiedAriaLabel&&(t.ariaLabel=e.modifiedAriaLabel),t.wordWrapOverride1=this._diffWordWrap,t.revealHorizontalRightPadding=D.BH.revealHorizontalRightPadding.defaultValue+n.ENTIRE_DIFF_OVERVIEW_WIDTH,t.scrollbar.verticalHasArrows=!1,t.extraEditorClassName="modified-in-monaco-diff-editor",Object.assign(Object.assign({},t),{dimension:{height:0,width:0}})}},{key:"doLayout",value:function(){this._elementSizeObserver.observe(),this._doLayout()}},{key:"_doLayout",value:function(){var e=this._elementSizeObserver.getWidth(),t=this._elementSizeObserver.getHeight(),i=this._getReviewHeight(),r=this._strategy.layout();this._originalDomNode.style.width=r+"px",this._originalDomNode.style.left="0px",this._modifiedDomNode.style.width=e-r+"px",this._modifiedDomNode.style.left=r+"px",this._overviewDomElement.style.top="0px",this._overviewDomElement.style.height=t-i+"px",this._overviewDomElement.style.width=n.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",this._overviewDomElement.style.left=e-n.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",this._overviewViewportDomElement.setWidth(n.ENTIRE_DIFF_OVERVIEW_WIDTH),this._overviewViewportDomElement.setHeight(30),this._originalEditor.layout({width:r,height:t-i}),this._modifiedEditor.layout({width:e-r-(this._renderOverviewRuler?n.ENTIRE_DIFF_OVERVIEW_WIDTH:0),height:t-i}),(this._originalOverviewRuler||this._modifiedOverviewRuler)&&this._layoutOverviewRulers(),this._reviewPane.layout(t-i,e,i),this._layoutOverviewViewport()}},{key:"_layoutOverviewViewport",value:function(){var e=this._computeOverviewViewport();e?(this._overviewViewportDomElement.setTop(e.top),this._overviewViewportDomElement.setHeight(e.height)):(this._overviewViewportDomElement.setTop(0),this._overviewViewportDomElement.setHeight(0))}},{key:"_computeOverviewViewport",value:function(){var e=this._modifiedEditor.getLayoutInfo();if(!e)return null;var t=this._modifiedEditor.getScrollTop(),n=this._modifiedEditor.getScrollHeight(),i=Math.max(0,e.height),r=Math.max(0,i-0),o=n>0?r/n:0;return{height:Math.max(0,Math.floor(e.height*o)),top:Math.floor(t*o)}}},{key:"_createDataSource",value:function(){var e=this;return{getWidth:function(){return e._elementSizeObserver.getWidth()},getHeight:function(){return e._elementSizeObserver.getHeight()-e._getReviewHeight()},getOptions:function(){return{renderOverviewRuler:e._renderOverviewRuler}},getContainerDomNode:function(){return e._containerDomElement},relayoutEditors:function(){e._doLayout()},getOriginalEditor:function(){return e._originalEditor},getModifiedEditor:function(){return e._modifiedEditor}}}},{key:"_setStrategy",value:function(e){this._strategy&&this._strategy.dispose(),this._strategy=e,e.applyColors(this._themeService.getColorTheme()),this._diffComputationResult&&this._updateDecorations(),this._doLayout()}},{key:"_getLineChangeAtOrBeforeLineNumber",value:function(e,t){var n=this._diffComputationResult?this._diffComputationResult.changes:[];if(0===n.length||e<t(n[0]))return null;for(var i=0,r=n.length-1;i<r;){var o=Math.floor((i+r)/2),a=t(n[o]),s=o+1<=r?t(n[o+1]):1073741824;e<a?r=o-1:e>=s?i=o+1:(i=o,r=o)}return n[i]}},{key:"_getEquivalentLineForOriginalLineNumber",value:function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,(function(e){return e.originalStartLineNumber}));if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),r=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,o=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,a=e-n;return a<=r?i+Math.min(a,o):i+o-r+a}},{key:"_getEquivalentLineForModifiedLineNumber",value:function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,(function(e){return e.modifiedStartLineNumber}));if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),r=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,o=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,a=e-i;return a<=o?n+Math.min(a,r):n+r-o+a}},{key:"getDiffLineInformationForOriginal",value:function(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForOriginalLineNumber(e)}:null}},{key:"getDiffLineInformationForModified",value:function(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForModifiedLineNumber(e)}:null}}],[{key:"_getClassName",value:function(e,t){var n="monaco-diff-editor monaco-editor-background ";return t&&(n+="side-by-side "),n+=(0,Z.m6)(e.type)}},{key:"_equals",value:function(e,t){return!e&&!t||!(!e||!t)&&e.toString()===t.toString()}}]),n}(_.JT);Ce.ONE_OVERVIEW_WIDTH=15,Ce.ENTIRE_DIFF_OVERVIEW_WIDTH=30,Ce.UPDATE_DIFF_DECORATIONS_DELAY=200,Ce=ge([ve(3,ce.p),ve(4,te.p),ve(5,R.i6),ve(6,re.TG),ve(7,w.$),ve(8,Z.XE),ve(9,ae.lT),ve(10,se.i),ve(11,he.e)],Ce);var ke=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._dataSource=e,i._insertColor=null,i._removeColor=null,i}return(0,d.Z)(n,[{key:"applyColors",value:function(e){var t=(e.getColor(P.yp)||P.Cz).transparent(2),n=(e.getColor(P.P4)||P.ke).transparent(2),i=!t.equals(this._insertColor)||!n.equals(this._removeColor);return this._insertColor=t,this._removeColor=n,i}},{key:"getEditorsDiffDecorations",value:function(e,t,n,i,r){r=r.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber})),i=i.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber}));var o=this._getViewZones(e,i,r,n),a=this._getOriginalEditorDecorations(e,t,n),s=this._getModifiedEditorDecorations(e,t,n);return{original:{decorations:a.decorations,overviewZones:a.overviewZones,zones:o.original},modified:{decorations:s.decorations,overviewZones:s.overviewZones,zones:o.modified}}}}]),n}(_.JT),Se=function(){function e(t){(0,c.Z)(this,e),this._source=t,this._index=-1,this.current=null,this.advance()}return(0,d.Z)(e,[{key:"advance",value:function(){this._index++,this._index<this._source.length?this.current=this._source[this._index]:this.current=null}}]),e}(),xe=function(){function e(t,n,i,r,o){(0,c.Z)(this,e),this._lineChanges=t,this._originalForeignVZ=n,this._modifiedForeignVZ=i,this._originalEditor=r,this._modifiedEditor=o}return(0,d.Z)(e,[{key:"getViewZones",value:function(){for(var t=this._originalEditor.getOption(55),n=this._modifiedEditor.getOption(55),i=-1!==this._originalEditor.getOption(128).wrappingColumn,r=-1!==this._modifiedEditor.getOption(128).wrappingColumn,o=i||r,a=this._originalEditor.getModel(),s=this._originalEditor._getViewModel().coordinatesConverter,u=this._modifiedEditor._getViewModel().coordinatesConverter,l=[],c=[],d=0,h=0,f=0,p=0,g=0,v=0,m=function(e,t){return e.afterLineNumber-t.afterLineNumber},_=function(e,t){if(null===t.domNode&&e.length>0){var n=e[e.length-1];if(n.afterLineNumber===t.afterLineNumber&&null===n.domNode)return void(n.heightInLines+=t.heightInLines)}e.push(t)},y=new Se(this._modifiedForeignVZ),b=new Se(this._originalForeignVZ),w=1,C=1,k=0,S=this._lineChanges.length;k<=S;k++){var x=k<S?this._lineChanges[k]:null;null!==x?(f=x.originalStartLineNumber+(x.originalEndLineNumber>0?-1:0),p=x.modifiedStartLineNumber+(x.modifiedEndLineNumber>0?-1:0),h=x.originalEndLineNumber>0?e._getViewLineCount(this._originalEditor,x.originalStartLineNumber,x.originalEndLineNumber):0,d=x.modifiedEndLineNumber>0?e._getViewLineCount(this._modifiedEditor,x.modifiedStartLineNumber,x.modifiedEndLineNumber):0,g=Math.max(x.originalStartLineNumber,x.originalEndLineNumber),v=Math.max(x.modifiedStartLineNumber,x.modifiedEndLineNumber)):(g=f+=1e7+h,v=p+=1e7+d);var L=[],E=[];if(o){var N=void 0;N=x?x.originalEndLineNumber>0?x.originalStartLineNumber-w:x.modifiedStartLineNumber-C:a.getLineCount()-w;for(var D=0;D<N;D++){var M=w+D,T=C+D,O=s.getModelLineViewLineCount(M),I=u.getModelLineViewLineCount(T);O<I?L.push({afterLineNumber:M,heightInLines:I-O,domNode:null,marginDomNode:null}):O>I&&E.push({afterLineNumber:T,heightInLines:O-I,domNode:null,marginDomNode:null})}x&&(w=(x.originalEndLineNumber>0?x.originalEndLineNumber:x.originalStartLineNumber)+1,C=(x.modifiedEndLineNumber>0?x.modifiedEndLineNumber:x.modifiedStartLineNumber)+1)}for(;y.current&&y.current.afterLineNumber<=v;){var A=void 0;A=y.current.afterLineNumber<=p?f-p+y.current.afterLineNumber:g;var R=null;x&&x.modifiedStartLineNumber<=y.current.afterLineNumber&&y.current.afterLineNumber<=x.modifiedEndLineNumber&&(R=this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()),L.push({afterLineNumber:A,heightInLines:y.current.height/n,domNode:null,marginDomNode:R}),y.advance()}for(;b.current&&b.current.afterLineNumber<=g;){var P=void 0;P=b.current.afterLineNumber<=f?p-f+b.current.afterLineNumber:v,E.push({afterLineNumber:P,heightInLines:b.current.height/t,domNode:null}),b.advance()}if(null!==x&&Ie(x)){var Z=this._produceOriginalFromDiff(x,h,d);Z&&L.push(Z)}if(null!==x&&Ae(x)){var F=this._produceModifiedFromDiff(x,h,d);F&&E.push(F)}var j=0,H=0;for(L=L.sort(m),E=E.sort(m);j<L.length&&H<E.length;){var B=L[j],z=E[H],W=B.afterLineNumber-f,V=z.afterLineNumber-p;W<V?(_(l,B),j++):V<W?(_(c,z),H++):B.shouldNotShrink?(_(l,B),j++):z.shouldNotShrink?(_(c,z),H++):B.heightInLines>=z.heightInLines?(B.heightInLines-=z.heightInLines,H++):(z.heightInLines-=B.heightInLines,j++)}for(;j<L.length;)_(l,L[j]),j++;for(;H<E.length;)_(c,E[H]),H++}return{original:e._ensureDomNodes(l),modified:e._ensureDomNodes(c)}}}],[{key:"_getViewLineCount",value:function(e,t,n){var i=e.getModel(),r=e._getViewModel();if(i&&r){var o=Pe(i,r,t,n);return o.endLineNumber-o.startLineNumber+1}return n-t+1}},{key:"_ensureDomNodes",value:function(e){return e.map((function(e){return e.domNode||(e.domNode=Re()),e}))}}]),e}();function Le(e,t,n,i,r){return{range:new Q.e(e,t,n,i),options:r}}var Ee={charDelete:ee.qx.register({className:"char-delete"}),charDeleteWholeLine:ee.qx.register({className:"char-delete",isWholeLine:!0}),charInsert:ee.qx.register({className:"char-insert"}),charInsertWholeLine:ee.qx.register({className:"char-insert",isWholeLine:!0}),lineInsert:ee.qx.register({className:"line-insert",marginClassName:"line-insert",isWholeLine:!0}),lineInsertWithSign:ee.qx.register({className:"line-insert",linesDecorationsClassName:"insert-sign "+Z.kS.asClassName(ye),marginClassName:"line-insert",isWholeLine:!0}),lineDelete:ee.qx.register({className:"line-delete",marginClassName:"line-delete",isWholeLine:!0}),lineDeleteWithSign:ee.qx.register({className:"line-delete",linesDecorationsClassName:"delete-sign "+Z.kS.asClassName(be),marginClassName:"line-delete",isWholeLine:!0}),lineDeleteMargin:ee.qx.register({marginClassName:"line-delete"})},Ne=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i){var o;return(0,c.Z)(this,n),(o=t.call(this,e))._disableSash=!1===i,o._sashRatio=null,o._sashPosition=null,o._startSashPosition=null,o._sash=o._register(new g.g(o._dataSource.getContainerDomNode(),(0,r.Z)(o),{orientation:0})),o._disableSash&&(o._sash.state=0),o._sash.onDidStart((function(){return o._onSashDragStart()})),o._sash.onDidChange((function(e){return o._onSashDrag(e)})),o._sash.onDidEnd((function(){return o._onSashDragEnd()})),o._sash.onDidReset((function(){return o._onSashReset()})),o}return(0,d.Z)(n,[{key:"setEnableSplitViewResizing",value:function(e){var t=!1===e;this._disableSash!==t&&(this._disableSash=t,this._sash.state=this._disableSash?0:3)}},{key:"layout",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._sashRatio,t=this._dataSource.getWidth()-(this._dataSource.getOptions().renderOverviewRuler?Ce.ENTIRE_DIFF_OVERVIEW_WIDTH:0),i=Math.floor((e||.5)*t),r=Math.floor(.5*t);return i=this._disableSash?r:i||r,t>2*n.MINIMUM_EDITOR_WIDTH?(i<n.MINIMUM_EDITOR_WIDTH&&(i=n.MINIMUM_EDITOR_WIDTH),i>t-n.MINIMUM_EDITOR_WIDTH&&(i=t-n.MINIMUM_EDITOR_WIDTH)):i=r,this._sashPosition!==i&&(this._sashPosition=i,this._sash.layout()),this._sashPosition}},{key:"_onSashDragStart",value:function(){this._startSashPosition=this._sashPosition}},{key:"_onSashDrag",value:function(e){var t=this._dataSource.getWidth()-(this._dataSource.getOptions().renderOverviewRuler?Ce.ENTIRE_DIFF_OVERVIEW_WIDTH:0),n=this.layout((this._startSashPosition+(e.currentX-e.startX))/t);this._sashRatio=n/t,this._dataSource.relayoutEditors()}},{key:"_onSashDragEnd",value:function(){this._sash.layout()}},{key:"_onSashReset",value:function(){this._sashRatio=.5,this._dataSource.relayoutEditors(),this._sash.layout()}},{key:"getVerticalSashTop",value:function(e){return 0}},{key:"getVerticalSashLeft",value:function(e){return this._sashPosition}},{key:"getVerticalSashHeight",value:function(e){return this._dataSource.getHeight()}},{key:"_getViewZones",value:function(e,t,n){var i=this._dataSource.getOriginalEditor(),r=this._dataSource.getModifiedEditor();return new De(e,t,n,i,r).getViewZones()}},{key:"_getOriginalEditorDecorations",value:function(e,t,n){var i,r=this._dataSource.getOriginalEditor(),o=String(this._removeColor),a={decorations:[],overviewZones:[]},s=r.getModel(),u=r._getViewModel(),c=(0,l.Z)(e);try{for(c.s();!(i=c.n()).done;){var d=i.value;if(Ae(d)){a.decorations.push({range:new Q.e(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824),options:n?Ee.lineDeleteWithSign:Ee.lineDelete}),Ie(d)&&d.charChanges||a.decorations.push(Le(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824,Ee.charDeleteWholeLine));var h=Pe(s,u,d.originalStartLineNumber,d.originalEndLineNumber);if(a.overviewZones.push(new ne.EY(h.startLineNumber,h.endLineNumber,o)),d.charChanges){var f,p=(0,l.Z)(d.charChanges);try{for(p.s();!(f=p.n()).done;){var g=f.value;if(Ae(g))if(t)for(var v=g.originalStartLineNumber;v<=g.originalEndLineNumber;v++){var m=void 0,_=void 0;m=v===g.originalStartLineNumber?g.originalStartColumn:s.getLineFirstNonWhitespaceColumn(v),_=v===g.originalEndLineNumber?g.originalEndColumn:s.getLineLastNonWhitespaceColumn(v),a.decorations.push(Le(v,m,v,_,Ee.charDelete))}else a.decorations.push(Le(g.originalStartLineNumber,g.originalStartColumn,g.originalEndLineNumber,g.originalEndColumn,Ee.charDelete))}}catch(y){p.e(y)}finally{p.f()}}}}}catch(y){c.e(y)}finally{c.f()}return a}},{key:"_getModifiedEditorDecorations",value:function(e,t,n){var i,r=this._dataSource.getModifiedEditor(),o=String(this._insertColor),a={decorations:[],overviewZones:[]},s=r.getModel(),u=r._getViewModel(),c=(0,l.Z)(e);try{for(c.s();!(i=c.n()).done;){var d=i.value;if(Ie(d)){a.decorations.push({range:new Q.e(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?Ee.lineInsertWithSign:Ee.lineInsert}),Ae(d)&&d.charChanges||a.decorations.push(Le(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,Ee.charInsertWholeLine));var h=Pe(s,u,d.modifiedStartLineNumber,d.modifiedEndLineNumber);if(a.overviewZones.push(new ne.EY(h.startLineNumber,h.endLineNumber,o)),d.charChanges){var f,p=(0,l.Z)(d.charChanges);try{for(p.s();!(f=p.n()).done;){var g=f.value;if(Ie(g))if(t)for(var v=g.modifiedStartLineNumber;v<=g.modifiedEndLineNumber;v++){var m=void 0,_=void 0;m=v===g.modifiedStartLineNumber?g.modifiedStartColumn:s.getLineFirstNonWhitespaceColumn(v),_=v===g.modifiedEndLineNumber?g.modifiedEndColumn:s.getLineLastNonWhitespaceColumn(v),a.decorations.push(Le(v,m,v,_,Ee.charInsert))}else a.decorations.push(Le(g.modifiedStartLineNumber,g.modifiedStartColumn,g.modifiedEndLineNumber,g.modifiedEndColumn,Ee.charInsert))}}catch(y){p.e(y)}finally{p.f()}}}}}catch(y){c.e(y)}finally{c.f()}return a}}]),n}(ke);Ne.MINIMUM_EDITOR_WIDTH=100;var De=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,o,a){return(0,c.Z)(this,n),t.call(this,e,i,r,o,a)}return(0,d.Z)(n,[{key:"_createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion",value:function(){return null}},{key:"_produceOriginalFromDiff",value:function(e,t,n){return n>t?{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n-t,domNode:null}:null}},{key:"_produceModifiedFromDiff",value:function(e,t,n){return t>n?{afterLineNumber:Math.max(e.modifiedStartLineNumber,e.modifiedEndLineNumber),heightInLines:t-n,domNode:null}:null}}]),n}(xe),Me=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e))._decorationsLeft=e.getOriginalEditor().getLayoutInfo().decorationsLeft,r._register(e.getOriginalEditor().onDidLayoutChange((function(t){r._decorationsLeft!==t.decorationsLeft&&(r._decorationsLeft=t.decorationsLeft,e.relayoutEditors())}))),r}return(0,d.Z)(n,[{key:"setEnableSplitViewResizing",value:function(e){}},{key:"_getViewZones",value:function(e,t,n,i){var r=this._dataSource.getOriginalEditor(),o=this._dataSource.getModifiedEditor();return new Te(e,t,n,r,o,i).getViewZones()}},{key:"_getOriginalEditorDecorations",value:function(e,t,n){var i,r=String(this._removeColor),o={decorations:[],overviewZones:[]},a=this._dataSource.getOriginalEditor(),s=a.getModel(),u=a._getViewModel(),c=(0,l.Z)(e);try{for(c.s();!(i=c.n()).done;){var d=i.value;if(Ae(d)){o.decorations.push({range:new Q.e(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824),options:Ee.lineDeleteMargin});var h=Pe(s,u,d.originalStartLineNumber,d.originalEndLineNumber);o.overviewZones.push(new ne.EY(h.startLineNumber,h.endLineNumber,r))}}}catch(f){c.e(f)}finally{c.f()}return o}},{key:"_getModifiedEditorDecorations",value:function(e,t,n){var i,r=this._dataSource.getModifiedEditor(),o=String(this._insertColor),a={decorations:[],overviewZones:[]},s=r.getModel(),u=r._getViewModel(),c=(0,l.Z)(e);try{for(c.s();!(i=c.n()).done;){var d=i.value;if(Ie(d)){a.decorations.push({range:new Q.e(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?Ee.lineInsertWithSign:Ee.lineInsert});var h=Pe(s,u,d.modifiedStartLineNumber,d.modifiedEndLineNumber);if(a.overviewZones.push(new ne.EY(h.startLineNumber,h.endLineNumber,o)),d.charChanges){var f,p=(0,l.Z)(d.charChanges);try{for(p.s();!(f=p.n()).done;){var g=f.value;if(Ie(g))if(t)for(var v=g.modifiedStartLineNumber;v<=g.modifiedEndLineNumber;v++){var m=void 0,_=void 0;m=v===g.modifiedStartLineNumber?g.modifiedStartColumn:s.getLineFirstNonWhitespaceColumn(v),_=v===g.modifiedEndLineNumber?g.modifiedEndColumn:s.getLineLastNonWhitespaceColumn(v),a.decorations.push(Le(v,m,v,_,Ee.charInsert))}else a.decorations.push(Le(g.modifiedStartLineNumber,g.modifiedStartColumn,g.modifiedEndLineNumber,g.modifiedEndColumn,Ee.charInsert))}}catch(y){p.e(y)}finally{p.f()}}else a.decorations.push(Le(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,Ee.charInsertWholeLine))}}}catch(y){c.e(y)}finally{c.f()}return a}},{key:"layout",value:function(){return Math.max(5,this._decorationsLeft)}}]),n}(ke),Te=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,o,a,s){var u;return(0,c.Z)(this,n),(u=t.call(this,e,i,r,o,a))._originalModel=o.getModel(),u._renderIndicators=s,u._pendingLineChange=[],u._pendingViewZones=[],u._lineBreaksComputer=u._modifiedEditor._getViewModel().createLineBreaksComputer(),u}return(0,d.Z)(n,[{key:"getViewZones",value:function(){var e=(0,o.Z)((0,a.Z)(n.prototype),"getViewZones",this).call(this);return this._finalize(e),e}},{key:"_createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion",value:function(){var e=document.createElement("div");return e.className="inline-added-margin-view-zone",e}},{key:"_produceOriginalFromDiff",value:function(e,t,n){var i=document.createElement("div");return i.className="inline-added-margin-view-zone",{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n,domNode:document.createElement("div"),marginDomNode:i}}},{key:"_produceModifiedFromDiff",value:function(e,t,n){var i=document.createElement("div");i.className="view-lines line-delete ".concat(pe.S);var r=document.createElement("div");r.className="inline-deleted-margin-view-zone";for(var o={shouldNotShrink:!0,afterLineNumber:0===e.modifiedEndLineNumber?e.modifiedStartLineNumber:e.modifiedStartLineNumber-1,heightInLines:t,minWidthInPx:0,domNode:i,marginDomNode:r,diff:{originalStartLineNumber:e.originalStartLineNumber,originalEndLineNumber:e.originalEndLineNumber,modifiedStartLineNumber:e.modifiedStartLineNumber,modifiedEndLineNumber:e.modifiedEndLineNumber,originalModel:this._originalModel,viewLineCounts:null}},a=e.originalStartLineNumber;a<=e.originalEndLineNumber;a++)this._lineBreaksComputer.addRequest(this._originalModel.getLineContent(a),null);return this._pendingLineChange.push(e),this._pendingViewZones.push(o),o}},{key:"_finalize",value:function(e){for(var t=this._modifiedEditor.getOptions(),n=this._modifiedEditor.getModel().getOptions().tabSize,i=t.get(40),r=t.get(27),o=i.typicalHalfwidthCharacterWidth,a=t.get(90),s=this._originalModel.mightContainNonBasicASCII(),u=this._originalModel.mightContainRTL(),c=t.get(55),d=t.get(127).decorationsWidth,h=t.get(102),f=t.get(85),p=t.get(79),g=t.get(41),v=this._lineBreaksComputer.finalize(),m=0,_=0;_<this._pendingLineChange.length;_++){var b=this._pendingLineChange[_],w=this._pendingViewZones[_],C=w.domNode;y.V.applyFontInfoSlow(C,i);var k=w.marginDomNode;y.V.applyFontInfoSlow(k,i);var S=[];if(b.charChanges){var x,L=(0,l.Z)(b.charChanges);try{for(L.s();!(x=L.n()).done;){var E=x.value;Ae(E)&&S.push(new A.$t(new Q.e(E.originalStartLineNumber,E.originalStartColumn,E.originalEndLineNumber,E.originalEndColumn),"char-delete",0))}}catch($){L.e($)}finally{L.f()}}for(var N=S.length>0,D=(0,X.l$)(1e4),M=0,T=0,O=null,I=b.originalStartLineNumber;I<=b.originalEndLineNumber;I++){var R=I-b.originalStartLineNumber,P=this._originalModel.getLineTokens(I),Z=P.getLineContent(),F=v[m++],j=ie.Kp.filter(S,I,1,Z.length+1);if(F){var H,B=0,z=(0,l.Z)(F.breakOffsets);try{for(z.s();!(H=z.n()).done;){var W=H.value,V=P.sliceAndInflate(B,W,0),Y=Z.substring(B,W);M=Math.max(M,this._renderOriginalLine(T++,Y,V,ie.Kp.extractWrapped(j,B,W),N,s,u,i,r,c,d,h,f,p,g,n,D,k)),B=W}}catch($){z.e($)}finally{z.f()}for(O||(O=[]);O.length<R;)O[O.length]=1;O[R]=F.breakOffsets.length,w.heightInLines+=F.breakOffsets.length-1;var U=document.createElement("div");U.className="line-delete",e.original.push({afterLineNumber:I,afterColumn:0,heightInLines:F.breakOffsets.length-1,domNode:Re(),marginDomNode:U})}else M=Math.max(M,this._renderOriginalLine(T++,Z,P,j,N,s,u,i,r,c,d,h,f,p,g,n,D,k))}M+=a;var K=D.build(),q=we?we.createHTML(K):K;if(C.innerHTML=q,w.minWidthInPx=M*o,O)for(var G=b.originalEndLineNumber-b.originalStartLineNumber;O.length<=G;)O[O.length]=1;w.diff.viewLineCounts=O}e.original.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber}))}},{key:"_renderOriginalLine",value:function(e,t,n,i,r,o,a,s,u,l,c,d,h,f,p,g,v,m){v.appendASCIIString('<div class="view-line'),r||v.appendASCIIString(" char-delete"),v.appendASCIIString('" style="top:'),v.appendASCIIString(String(e*l)),v.appendASCIIString('px;width:1000000px;">');var _=A.wA.isBasicASCII(t,o),y=A.wA.containsRTL(t,_,a),b=(0,I.d1)(new I.IJ(s.isMonospace&&!u,s.canUseHalfwidthRightwardsArrow,t,!1,_,y,0,n,i,g,0,s.spaceWidth,s.middotWidth,s.wsmiddotWidth,d,h,f,p!==D.n0.OFF,null),v);if(v.appendASCIIString("</div>"),this._renderIndicators){var w=document.createElement("div");w.className="delete-sign ".concat(Z.kS.asClassName(be)),w.setAttribute("style","position:absolute;top:".concat(e*l,"px;width:").concat(c,"px;height:").concat(l,"px;right:0;")),m.appendChild(w)}var C=b.characterMapping.getAbsoluteOffsets();return C.length>0?C[C.length-1]:0}}]),n}(xe);function Oe(e,t){return(0,D.NY)(e,t,["off","on","inherit"])}function Ie(e){return e.modifiedEndLineNumber>0}function Ae(e){return e.originalEndLineNumber>0}function Re(){var e=document.createElement("div");return e.className="diagonal-fill",e}function Pe(e,t,n,i){var r=e.getLineCount();return n=Math.min(r,Math.max(1,n)),i=Math.min(r,Math.max(1,i)),t.coordinatesConverter.convertModelRangeToViewRange(new Q.e(n,e.getLineMinColumn(n),i,e.getLineMaxColumn(i)))}(0,Z.Ic)((function(e,t){var n=e.getColor(P.yp);n&&(t.addRule(".monaco-editor .line-insert, .monaco-editor .char-insert { background-color: ".concat(n,"; }")),t.addRule(".monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: ".concat(n,"; }")),t.addRule(".monaco-editor .inline-added-margin-view-zone { background-color: ".concat(n,"; }")));var i=e.getColor(P.P4);i&&(t.addRule(".monaco-editor .line-delete, .monaco-editor .char-delete { background-color: ".concat(i,"; }")),t.addRule(".monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: ".concat(i,"; }")),t.addRule(".monaco-editor .inline-deleted-margin-view-zone { background-color: ".concat(i,"; }")));var r=e.getColor(P.XL);r&&t.addRule(".monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(r,"; }"));var o=e.getColor(P.mH);o&&t.addRule(".monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(o,"; }"));var a=e.getColor(P._w);a&&t.addRule(".monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px ".concat(a,"; }"));var s=e.getColor(P.LL);s&&t.addRule(".monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid ".concat(s,"; }"));var u=e.getColor(P.et);u&&t.addRule("\n\t\t\t.monaco-diff-editor .diffViewport {\n\t\t\t\tbackground: ".concat(u,";\n\t\t\t}\n\t\t"));var l=e.getColor(P.AB);l&&t.addRule("\n\t\t\t.monaco-diff-editor .diffViewport:hover {\n\t\t\t\tbackground: ".concat(l,";\n\t\t\t}\n\t\t"));var c=e.getColor(P.yn);c&&t.addRule("\n\t\t\t.monaco-diff-editor .diffViewport:active {\n\t\t\t\tbackground: ".concat(c,";\n\t\t\t}\n\t\t"));var d=e.getColor(P.L_);t.addRule("\n\t.monaco-editor .diagonal-fill {\n\t\tbackground-image: linear-gradient(\n\t\t\t-45deg,\n\t\t\t".concat(d," 12.5%,\n\t\t\t#0000 12.5%, #0000 50%,\n\t\t\t").concat(d," 50%, ").concat(d," 62.5%,\n\t\t\t#0000 62.5%, #0000 100%\n\t\t);\n\t\tbackground-size: 8px 8px;\n\t}\n\t"))}))},59180:function(e,t,n){"use strict";n.d(t,{F:function(){return g}});var i=n(15671),r=n(43144),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(96147),c=n(11732),d=n(81626),h=n(10405),f=n(67033),p={followsCaret:!0,ignoreCharChanges:!0,alwaysRevealFirst:!0},g=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,i.Z)(this,n),(r=t.call(this))._onDidUpdate=r._register(new c.Q5),r._editor=e,r._options=h.jB(o,p,!1),r.disposed=!1,r.nextIdx=-1,r.ranges=[],r.ignoreSelectionChange=!1,r.revealFirst=Boolean(r._options.alwaysRevealFirst),r._register(r._editor.onDidDispose((function(){return r.dispose()}))),r._register(r._editor.onDidUpdateDiff((function(){return r._onDiffUpdated()}))),r._options.followsCaret&&r._register(r._editor.getModifiedEditor().onDidChangeCursorPosition((function(e){r.ignoreSelectionChange||(r.nextIdx=-1)}))),r._options.alwaysRevealFirst&&r._register(r._editor.getModifiedEditor().onDidChangeModel((function(e){r.revealFirst=!0}))),r._init(),r}return(0,r.Z)(n,[{key:"_init",value:function(){this._editor.getLineChanges()}},{key:"_onDiffUpdated",value:function(){this._init(),this._compute(this._editor.getLineChanges()),this.revealFirst&&null!==this._editor.getLineChanges()&&(this.revealFirst=!1,this.nextIdx=-1,this.next(1))}},{key:"_compute",value:function(e){var t=this;this.ranges=[],e&&e.forEach((function(e){!t._options.ignoreCharChanges&&e.charChanges?e.charChanges.forEach((function(e){t.ranges.push({rhs:!0,range:new f.e(e.modifiedStartLineNumber,e.modifiedStartColumn,e.modifiedEndLineNumber,e.modifiedEndColumn)})})):t.ranges.push({rhs:!0,range:new f.e(e.modifiedStartLineNumber,1,e.modifiedStartLineNumber,1)})})),this.ranges.sort((function(e,t){return e.range.getStartPosition().isBeforeOrEqual(t.range.getStartPosition())?-1:t.range.getStartPosition().isBeforeOrEqual(e.range.getStartPosition())?1:0})),this._onDidUpdate.fire(this)}},{key:"_initIdx",value:function(e){var t=!1,n=this._editor.getPosition();if(n){for(var i=0,r=this.ranges.length;i<r&&!t;i++){var o=this.ranges[i].range;n.isBeforeOrEqual(o.getStartPosition())&&(this.nextIdx=i+(e?0:-1),t=!0)}t||(this.nextIdx=e?0:this.ranges.length-1),this.nextIdx<0&&(this.nextIdx=this.ranges.length-1)}else this.nextIdx=0}},{key:"_move",value:function(e,t){if(l.ok(!this.disposed,"Illegal State - diff navigator has been disposed"),this.canNavigate()){-1===this.nextIdx?this._initIdx(e):e?(this.nextIdx+=1,this.nextIdx>=this.ranges.length&&(this.nextIdx=0)):(this.nextIdx-=1,this.nextIdx<0&&(this.nextIdx=this.ranges.length-1));var n=this.ranges[this.nextIdx];this.ignoreSelectionChange=!0;try{var i=n.range.getStartPosition();this._editor.setPosition(i),this._editor.revealPositionInCenter(i,t)}finally{this.ignoreSelectionChange=!1}}}},{key:"canNavigate",value:function(){return this.ranges&&this.ranges.length>0}},{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this._move(!0,e)}},{key:"previous",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this._move(!1,e)}},{key:"dispose",value:function(){(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this),this.ranges=[],this.disposed=!0}}]),n}(d.JT)},97033:function(e,t,n){"use strict";n.d(t,{OY:function(){return s},Sj:function(){return u},T4:function(){return a},Uo:function(){return l},hP:function(){return c}});var i=n(15671),r=n(43144),o=n(74964),a=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,i.Z)(this,e),this._range=t,this._text=n,this.insertsAutoWhitespace=r}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return new o.Y(n.endLineNumber,n.endColumn,n.endLineNumber,n.endColumn)}}]),e}(),s=function(){function e(t,n){(0,i.Z)(this,e),this._range=t,this._text=n}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return new o.Y(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn)}}]),e}(),u=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,i.Z)(this,e),this._range=t,this._text=n,this.insertsAutoWhitespace=r}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return new o.Y(n.startLineNumber,n.startColumn,n.startLineNumber,n.startColumn)}}]),e}(),l=function(){function e(t,n,r,o){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];(0,i.Z)(this,e),this._range=t,this._text=n,this._columnDeltaOffset=o,this._lineNumberDeltaOffset=r,this.insertsAutoWhitespace=a}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return new o.Y(n.endLineNumber+this._lineNumberDeltaOffset,n.endColumn+this._columnDeltaOffset,n.endLineNumber+this._lineNumberDeltaOffset,n.endColumn+this._columnDeltaOffset)}}]),e}(),c=function(){function e(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];(0,i.Z)(this,e),this._range=t,this._text=n,this._initialSelection=r,this._forceMoveMarkers=o,this._selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this._selectionId)}}]),e}()},83:function(e,t,n){"use strict";n.d(t,{U:function(){return h}});var i=n(15671),r=n(43144),o=n(51747),a=n(16274),s=n(67033),u=n(74964),l=n(65262),c=Object.create(null);function d(e,t){if(t<=0)return"";c[e]||(c[e]=["",e]);for(var n=c[e],i=n.length;i<=t;i++)n[i]=n[i-1]+e;return n[t]}var h=function(){function e(t,n){(0,i.Z)(this,e),this._opts=n,this._selection=t,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}return(0,r.Z)(e,[{key:"_addEditOperation",value:function(e,t,n){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,n):e.addEditOperation(t,n)}},{key:"getEditOperations",value:function(t,n){var i=this._selection.startLineNumber,r=this._selection.endLineNumber;1===this._selection.endColumn&&i!==r&&(r-=1);var u=this._opts,c=u.tabSize,h=u.indentSize,f=u.insertSpaces,p=i===r;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(t.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0);for(var g=0,v=0,m=i;m<=r;m++,g=v){v=0;var _=t.getLineContent(m),y=o.LC(_);if((!this._opts.isUnshift||0!==_.length&&0!==y)&&(p||this._opts.isUnshift||0!==_.length)){if(-1===y&&(y=_.length),m>1)if(a.io.visibleColumnFromColumn(_,y+1,c)%h!==0&&t.isCheapToTokenize(m-1)){var b=l.zu.getEnterAction(this._opts.autoIndent,t,new s.e(m-1,t.getLineMaxColumn(m-1),m-1,t.getLineMaxColumn(m-1)));if(b){if(v=g,b.appendText)for(var w=0,C=b.appendText.length;w<C&&v<h&&32===b.appendText.charCodeAt(w);w++)v++;b.removeText&&(v=Math.max(0,v-b.removeText));for(var k=0;k<v&&(0!==y&&32===_.charCodeAt(y-1));k++)y--}}if(!this._opts.isUnshift||0!==y){var S=void 0;S=this._opts.isUnshift?e.unshiftIndent(_,y+1,c,h,f):e.shiftIndent(_,y+1,c,h,f),this._addEditOperation(n,new s.e(m,1,m,y+1),S),m!==i||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=this._selection.startColumn<=y+1)}}}}else{!this._opts.isUnshift&&this._selection.isEmpty()&&0===t.getLineLength(i)&&(this._useLastEditRangeForCursorEndPosition=!0);for(var x=f?d(" ",h):"\t",L=i;L<=r;L++){var E=t.getLineContent(L),N=o.LC(E);if((!this._opts.isUnshift||0!==E.length&&0!==N)&&((p||this._opts.isUnshift||0!==E.length)&&(-1===N&&(N=E.length),!this._opts.isUnshift||0!==N)))if(this._opts.isUnshift){N=Math.min(N,h);for(var D=0;D<N;D++){if(9===E.charCodeAt(D)){N=D+1;break}}this._addEditOperation(n,new s.e(L,1,L,N+1),"")}else this._addEditOperation(n,new s.e(L,1,L,1),x),L!==i||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=1===this._selection.startColumn)}}this._selectionId=n.trackSelection(this._selection)}},{key:"computeCursorState",value:function(e,t){if(this._useLastEditRangeForCursorEndPosition){var n=t.getInverseEditOperations()[0];return new u.Y(n.range.endLineNumber,n.range.endColumn,n.range.endLineNumber,n.range.endColumn)}var i=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){var r=this._selection.startColumn;return i.startColumn<=r?i:0===i.getDirection()?new u.Y(i.startLineNumber,r,i.endLineNumber,i.endColumn):new u.Y(i.endLineNumber,i.endColumn,i.startLineNumber,r)}return i}}],[{key:"unshiftIndent",value:function(e,t,n,i,r){var o=a.io.visibleColumnFromColumn(e,t,n);if(r){var s=d(" ",i);return d(s,a.io.prevIndentTabStop(o,i)/i)}return d("\t",a.io.prevRenderTabStop(o,n)/n)}},{key:"shiftIndent",value:function(e,t,n,i,r){var o=a.io.visibleColumnFromColumn(e,t,n);if(r){var s=d(" ",i);return d(s,a.io.nextIndentTabStop(o,i)/i)}return d("\t",a.io.nextRenderTabStop(o,n)/n)}}]),e}()},32995:function(e,t,n){"use strict";n.d(t,{Pe:function(){return F},ei:function(){return Z},fv:function(){return x},nG:function(){return y}});var i=n(60136),r=n(29388),o=n(37762),a=n(15671),s=n(43144),u=n(56345),l=n(11732),c=n(81626),d=n(10405),h=n(49396),f=n(76556),p=n(51164),g=n(28702),v=n(72885),m=n(38774),_=n(15723),y=new(function(){function e(){(0,a.Z)(this,e),this._tabFocus=!1,this._onDidChangeTabFocus=new l.Q5,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}return(0,s.Z)(e,[{key:"getTabFocusMode",value:function(){return this._tabFocus}},{key:"setTabFocusMode",value:function(e){this._tabFocus!==e&&(this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus))}}]),e}()),b=Object.hasOwnProperty,w=function(){function e(){(0,a.Z)(this,e),this._values=[]}return(0,s.Z)(e,[{key:"_read",value:function(e){return this._values[e]}},{key:"get",value:function(e){return this._values[e]}},{key:"_write",value:function(e,t){this._values[e]=t}}]),e}(),C=function(){function e(){(0,a.Z)(this,e),this._values=[]}return(0,s.Z)(e,[{key:"_read",value:function(e){return this._values[e]}},{key:"_write",value:function(e,t){this._values[e]=t}}]),e}(),k=function(){function e(){(0,a.Z)(this,e)}return(0,s.Z)(e,null,[{key:"readOptions",value:function(e){var t,n=e,i=new C,r=(0,o.Z)(f.Bc);try{for(r.s();!(t=r.n()).done;){var a=t.value,s="_never_"===a.name?void 0:n[a.name];i._write(a.id,s)}}catch(u){r.e(u)}finally{r.f()}return i}},{key:"validateOptions",value:function(e){var t,n=new f.hu,i=(0,o.Z)(f.Bc);try{for(i.s();!(t=i.n()).done;){var r=t.value;n._write(r.id,r.validate(e._read(r.id)))}}catch(a){i.e(a)}finally{i.f()}return n}},{key:"computeOptions",value:function(e,t){var n,i=new w,r=(0,o.Z)(f.Bc);try{for(r.s();!(n=r.n()).done;){var a=n.value;i._write(a.id,a.compute(t,i,e._read(a.id)))}}catch(s){r.e(s)}finally{r.f()}return i}},{key:"_deepEquals",value:function(t,n){if("object"!==typeof t||"object"!==typeof n)return t===n;if(Array.isArray(t)||Array.isArray(n))return!(!Array.isArray(t)||!Array.isArray(n))&&h.fS(t,n);for(var i in t)if(!e._deepEquals(t[i],n[i]))return!1;return!0}},{key:"checkEquals",value:function(t,n){var i,r=[],a=!1,s=(0,o.Z)(f.Bc);try{for(s.s();!(i=s.n()).done;){var u=i.value,l=!e._deepEquals(t._read(u.id),n._read(u.id));r[u.id]=l,l&&(a=!0)}}catch(c){s.e(c)}finally{s.f()}return a?new f.Bb(r):null}}]),e}();function S(e){var t=d.I8(e);return function(e){var t=e.wordWrap;!0===t?e.wordWrap="on":!1===t&&(e.wordWrap="off");var n=e.lineNumbers;!0===n?e.lineNumbers="on":!1===n&&(e.lineNumbers="off"),!1===e.autoClosingBrackets&&(e.autoClosingBrackets="never",e.autoClosingQuotes="never",e.autoSurround="never"),"visible"===e.cursorBlinking&&(e.cursorBlinking="solid");var i=e.renderWhitespace;!0===i?e.renderWhitespace="boundary":!1===i&&(e.renderWhitespace="none");var r=e.renderLineHighlight;!0===r?e.renderLineHighlight="line":!1===r&&(e.renderLineHighlight="none");var o=e.acceptSuggestionOnEnter;!0===o?e.acceptSuggestionOnEnter="on":!1===o&&(e.acceptSuggestionOnEnter="off");var a=e.tabCompletion;!1===a?e.tabCompletion="off":!0===a&&(e.tabCompletion="onlySnippets");var s=e.suggest;if(s&&"object"===typeof s.filteredTypes&&s.filteredTypes){var u={method:"showMethods",function:"showFunctions",constructor:"showConstructors",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};(0,_.E)(u,(function(e){var t=s.filteredTypes[e.key];!1===t&&(s[e.value]=t)}))}var l=e.hover;!0===l?e.hover={enabled:!0}:!1===l&&(e.hover={enabled:!1});var c=e.parameterHints;!0===c?e.parameterHints={enabled:!0}:!1===c&&(e.parameterHints={enabled:!1});var d=e.autoIndent;!0===d?e.autoIndent="full":!1===d&&(e.autoIndent="advanced");var h=e.matchBrackets;!0===h?e.matchBrackets="always":!1===h&&(e.matchBrackets="never")}(t),t}var x=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i){var r;return(0,a.Z)(this,n),(r=t.call(this))._onDidChange=r._register(new l.Q5),r.onDidChange=r._onDidChange.event,r._onDidChangeFast=r._register(new l.Q5),r.onDidChangeFast=r._onDidChangeFast.event,r.isSimpleWidget=e,r._isDominatedByLongLines=!1,r._computeOptionsMemory=new f.LJ,r._viewLineCount=1,r._lineNumbersDigitCount=1,r._rawOptions=S(i),r._readOptions=k.readOptions(r._rawOptions),r._validatedOptions=k.validateOptions(r._readOptions),r._register(p.C.onDidChangeZoomLevel((function(e){return r._recomputeOptions()}))),r._register(y.onDidChangeTabFocus((function(e){return r._recomputeOptions()}))),r}return(0,s.Z)(n,[{key:"observeReferenceElement",value:function(e){}},{key:"updatePixelRatio",value:function(){}},{key:"_recomputeOptions",value:function(){var e=this.options,t=this._computeInternalOptions();if(e){var n=k.checkEquals(e,t);if(null===n)return;this.options=t,this._onDidChangeFast.fire(n),this._onDidChange.fire(n)}else this.options=t}},{key:"getRawOptions",value:function(){return this._rawOptions}},{key:"_computeInternalOptions",value:function(){var e=this._getEnvConfiguration(),t=g.E4.createFromValidatedSettings(this._validatedOptions,e.zoomLevel,e.pixelRatio,this.isSimpleWidget),n={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,fontInfo:this.readConfiguration(t),extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:y.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport};return k.computeOptions(this._validatedOptions,n)}},{key:"updateOptions",value:function(e){if("undefined"!==typeof e){var t=S(e);n._subsetEquals(this._rawOptions,t)||(this._rawOptions=d.jB(this._rawOptions,t||{}),this._readOptions=k.readOptions(this._rawOptions),this._validatedOptions=k.validateOptions(this._readOptions),this._recomputeOptions())}}},{key:"setIsDominatedByLongLines",value:function(e){this._isDominatedByLongLines=e,this._recomputeOptions()}},{key:"setMaxLineNumber",value:function(e){var t=n._digitCount(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}},{key:"setViewLineCount",value:function(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}}],[{key:"_subsetEquals",value:function(e,t){for(var n in t)if(b.call(t,n)){var i=t[n],r=e[n];if(r===i)continue;if(Array.isArray(r)&&Array.isArray(i)){if(!h.fS(r,i))return!1;continue}if(r&&"object"===typeof r&&i&&"object"===typeof i){if(!this._subsetEquals(r,i))return!1;continue}return!1}return!0}},{key:"_digitCount",value:function(e){for(var t=0;e;)e=Math.floor(e/10),t++;return t||1}}]),n}(c.JT),L=Object.freeze({id:"editor",order:5,type:"object",title:u.N("editorConfigurationTitle","Editor"),scope:5}),E=m.B.as(v.IP.Configuration),N=Object.assign(Object.assign({},L),{properties:{"editor.tabSize":{type:"number",default:f.DB.tabSize,minimum:1,markdownDescription:u.N("tabSize","The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.")},"editor.insertSpaces":{type:"boolean",default:f.DB.insertSpaces,markdownDescription:u.N("insertSpaces","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.")},"editor.detectIndentation":{type:"boolean",default:f.DB.detectIndentation,markdownDescription:u.N("detectIndentation","Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.")},"editor.trimAutoWhitespace":{type:"boolean",default:f.DB.trimAutoWhitespace,description:u.N("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:f.DB.largeFileOptimizations,description:u.N("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{type:"boolean",default:!0,description:u.N("wordBasedSuggestions","Controls whether completions should be computed based on words in the document.")},"editor.wordBasedSuggestionsMode":{enum:["currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[u.N("wordBasedSuggestionsMode.currentDocument","Only suggest words from the active document."),u.N("wordBasedSuggestionsMode.matchingDocuments","Suggest words from all open documents of the same language."),u.N("wordBasedSuggestionsMode.allDocuments","Suggest words from all open documents.")],description:u.N("wordBasedSuggestionsMode","Controls from which documents word based completions are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[u.N("semanticHighlighting.true","Semantic highlighting enabled for all color themes."),u.N("semanticHighlighting.false","Semantic highlighting disabled for all color themes."),u.N("semanticHighlighting.configuredByTheme","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:u.N("semanticHighlighting.enabled","Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:u.N("stablePeek","Keep peek editors open even when double clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:u.N("maxTokenizationLineLength","Lines above this length will not be tokenized for performance reasons")},"diffEditor.maxComputationTime":{type:"number",default:5e3,description:u.N("maxComputationTime","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.renderSideBySide":{type:"boolean",default:!0,description:u.N("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:!0,description:u.N("ignoreTrimWhitespace","When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:!0,description:u.N("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:!1,description:u.N("codeLens","Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:"inherit",markdownEnumDescriptions:[u.N("wordWrap.off","Lines will never wrap."),u.N("wordWrap.on","Lines will wrap at the viewport width."),u.N("wordWrap.inherit","Lines will wrap according to the `#editor.wordWrap#` setting.")]}}});var D,M,T=(0,o.Z)(f.Bc);try{for(T.s();!(D=T.n()).done;){var O=D.value,I=O.schema;if("undefined"!==typeof I)if("undefined"!==typeof(M=I).type||"undefined"!==typeof M.anyOf)N.properties["editor.".concat(O.name)]=I;else for(var A in I)b.call(I,A)&&(N.properties[A]=I[A])}}catch(j){T.e(j)}finally{T.f()}var R=null;function P(){return null===R&&(R=Object.create(null),Object.keys(N.properties).forEach((function(e){R[e]=!0}))),R}function Z(e){return P()["editor.".concat(e)]||!1}function F(e){return P()["diffEditor.".concat(e)]||!1}E.registerConfiguration(N)},76556:function(e,t,n){"use strict";n.d(t,{$J:function(){return q},BH:function(){return ae},Bb:function(){return h},Bc:function(){return re},DB:function(){return ie},LJ:function(){return p},NY:function(){return k},O7:function(){return _},d2:function(){return L},gk:function(){return F},hL:function(){return ne},hu:function(){return f},n0:function(){return O},y0:function(){return d}});var i=n(37762),r=n(60136),o=n(29388),a=n(15671),s=n(43144),u=n(56345),l=n(30487),c=n(43717),d=8,h=function(){function e(t){(0,a.Z)(this,e),this._values=t}return(0,s.Z)(e,[{key:"hasChanged",value:function(e){return this._values[e]}}]),e}(),f=function(){function e(){(0,a.Z)(this,e),this._values=[]}return(0,s.Z)(e,[{key:"_read",value:function(e){return this._values[e]}},{key:"get",value:function(e){return this._values[e]}},{key:"_write",value:function(e,t){this._values[e]=t}}]),e}(),p=(0,s.Z)((function e(){(0,a.Z)(this,e),this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0})),g=function(){function e(t,n,i,r){(0,a.Z)(this,e),this.id=t,this.name=n,this.defaultValue=i,this.schema=r}return(0,s.Z)(e,[{key:"compute",value:function(e,t,n){return n}}]),e}(),v=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;(0,a.Z)(this,e),this.schema=void 0,this.id=t,this.name="_never_",this.defaultValue=void 0,this.deps=n}return(0,s.Z)(e,[{key:"validate",value:function(e){return this.defaultValue}}]),e}(),m=function(){function e(t,n,i,r){(0,a.Z)(this,e),this.id=t,this.name=n,this.defaultValue=i,this.schema=r}return(0,s.Z)(e,[{key:"validate",value:function(e){return"undefined"===typeof e?this.defaultValue:e}},{key:"compute",value:function(e,t,n){return n}}]),e}();function _(e,t){return"undefined"===typeof e?t:"false"!==e&&Boolean(e)}var y=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof o&&(o.type="boolean",o.default=r),t.call(this,e,i,r,o)}return(0,s.Z)(n,[{key:"validate",value:function(e){return _(e,this.defaultValue)}}]),n}(m),b=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o,s){var u,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof l&&(l.type="integer",l.default=r,l.minimum=o,l.maximum=s),(u=t.call(this,e,i,r,l)).minimum=o,u.maximum=s,u}return(0,s.Z)(n,[{key:"validate",value:function(e){return n.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}],[{key:"clampedInt",value:function(e,t,n,i){if("undefined"===typeof e)return t;var r=parseInt(e,10);return isNaN(r)?t:(r=Math.max(n,r),0|(r=Math.min(i,r)))}}]),n}(m),w=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o,s){var u;return(0,a.Z)(this,n),"undefined"!==typeof s&&(s.type="number",s.default=r),(u=t.call(this,e,i,r,s)).validationFn=o,u}return(0,s.Z)(n,[{key:"validate",value:function(e){return this.validationFn(n.float(e,this.defaultValue))}}],[{key:"clamp",value:function(e,t,n){return e<t?t:e>n?n:e}},{key:"float",value:function(e,t){if("number"===typeof e)return e;if("undefined"===typeof e)return t;var n=parseFloat(e);return isNaN(n)?t:n}}]),n}(m),C=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof o&&(o.type="string",o.default=r),t.call(this,e,i,r,o)}return(0,s.Z)(n,[{key:"validate",value:function(e){return n.string(e,this.defaultValue)}}],[{key:"string",value:function(e,t){return"string"!==typeof e?t:e}}]),n}(m);function k(e,t,n){return"string"!==typeof e||-1===n.indexOf(e)?t:e}var S=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o){var s,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof u&&(u.type="string",u.enum=o,u.default=r),(s=t.call(this,e,i,r,u))._allowedValues=o,s}return(0,s.Z)(n,[{key:"validate",value:function(e){return k(e,this.defaultValue,this._allowedValues)}}]),n}(m),x=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o,s,u){var l,c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof c&&(c.type="string",c.enum=s,c.default=o),(l=t.call(this,e,i,r,c))._allowedValues=s,l._convert=u,l}return(0,s.Z)(n,[{key:"validate",value:function(e){return"string"!==typeof e||-1===this._allowedValues.indexOf(e)?this.defaultValue:this._convert(e)}}]),n}(g);var L,E=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[u.N("accessibilitySupport.auto","The editor will use platform APIs to detect when a Screen Reader is attached."),u.N("accessibilitySupport.on","The editor will be permanently optimized for usage with a Screen Reader. Word wrapping will be disabled."),u.N("accessibilitySupport.off","The editor will never be optimized for usage with a Screen Reader.")],default:"auto",description:u.N("accessibilitySupport","Controls whether the editor should run in a mode where it is optimized for screen readers. Setting to on will disable word wrapping.")})}return(0,s.Z)(n,[{key:"validate",value:function(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}},{key:"compute",value:function(e,t,n){return 0===n?e.accessibilitySupport:n}}]),n}(g),N=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={insertSpace:!0,ignoreEmptyLines:!0};return t.call(this,17,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:u.N("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:u.N("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{insertSpace:_(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:_(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}]),n}(g);!function(e){e[e.Line=1]="Line",e[e.Block=2]="Block",e[e.Underline=3]="Underline",e[e.LineThin=4]="LineThin",e[e.BlockOutline=5]="BlockOutline",e[e.UnderlineThin=6]="UnderlineThin"}(L||(L={}));var D=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,124,[62,31])}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){var i=["monaco-editor"];return t.get(31)&&i.push(t.get(31)),e.extraEditorClassName&&i.push(e.extraEditorClassName),"default"===t.get(62)?i.push("mouse-default"):"copy"===t.get(62)&&i.push("mouse-copy"),t.get(97)&&i.push("showUnused"),t.get(122)&&i.push("showDeprecated"),i.join(" ")}}]),n}(v),M=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,30,"emptySelectionClipboard",!0,{description:u.N("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return n&&e.emptySelectionClipboard}}]),n}(y),T=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={cursorMoveOnType:!0,seedSearchStringFromSelection:!0,autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};return t.call(this,33,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:u.N("find.cursorMoveOnType","Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"boolean",default:e.seedSearchStringFromSelection,description:u.N("find.seedSearchStringFromSelection","Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:e.autoFindInSelection,enumDescriptions:[u.N("editor.find.autoFindInSelection.never","Never turn on Find in selection automatically (default)."),u.N("editor.find.autoFindInSelection.always","Always turn on Find in selection automatically."),u.N("editor.find.autoFindInSelection.multiline","Turn on Find in selection automatically when multiple lines of content are selected.")],description:u.N("find.autoFindInSelection","Controls the condition for turning on find in selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:u.N("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:l.dz},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:u.N("find.addExtraSpaceOnTop","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:e.loop,description:u.N("find.loop","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{cursorMoveOnType:_(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:_(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection),autoFindInSelection:"boolean"===typeof e.autoFindInSelection?e.autoFindInSelection?"always":"never":k(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:_(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:_(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:_(t.loop,this.defaultValue.loop)}}}]),n}(g),O=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,41,"fontLigatures",n.OFF,{anyOf:[{type:"boolean",description:u.N("fontLigatures","Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:u.N("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:u.N("fontLigaturesGeneral","Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}return(0,s.Z)(n,[{key:"validate",value:function(e){return"undefined"===typeof e?this.defaultValue:"string"===typeof e?"false"===e?n.OFF:"true"===e?n.ON:e:Boolean(e)?n.ON:n.OFF}}]),n}(g);O.OFF='"liga" off, "calt" off',O.ON='"liga" on, "calt" on';var I=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,40)}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return e.fontInfo}}]),n}(v),A=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,42,"fontSize",ne.fontSize,{type:"number",minimum:6,maximum:100,default:ne.fontSize,description:u.N("fontSize","Controls the font size in pixels.")})}return(0,s.Z)(n,[{key:"validate",value:function(e){var t=w.float(e,this.defaultValue);return 0===t?ne.fontSize:w.clamp(t,6,100)}},{key:"compute",value:function(e,t,n){return e.fontInfo.fontSize}}]),n}(m),R=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,43,"fontWeight",ne.fontWeight,{anyOf:[{type:"number",minimum:n.MINIMUM_VALUE,maximum:n.MAXIMUM_VALUE,errorMessage:u.N("fontWeightErrorMessage",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:n.SUGGESTION_VALUES}],default:ne.fontWeight,description:u.N("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}return(0,s.Z)(n,[{key:"validate",value:function(e){return"normal"===e||"bold"===e?e:String(b.clampedInt(e,ne.fontWeight,n.MINIMUM_VALUE,n.MAXIMUM_VALUE))}}]),n}(g);R.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],R.MINIMUM_VALUE=1,R.MAXIMUM_VALUE=1e3;var P=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},i={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[u.N("editor.gotoLocation.multiple.peek","Show peek view of the results (default)"),u.N("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a peek view"),u.N("editor.gotoLocation.multiple.goto","Go to the primary result and enable peek-less navigation to others")]},r=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];return t.call(this,47,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:u.N("editor.gotoLocation.multiple.deprecated","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":Object.assign({description:u.N("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleTypeDefinitions":Object.assign({description:u.N("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleDeclarations":Object.assign({description:u.N("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleImplementations":Object.assign({description:u.N("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleReferences":Object.assign({description:u.N("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist.")},i),"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:r,description:u.N("alternativeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:e.alternativeTypeDefinitionCommand,enum:r,description:u.N("alternativeTypeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:e.alternativeDeclarationCommand,enum:r,description:u.N("alternativeDeclarationCommand","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:e.alternativeImplementationCommand,enum:r,description:u.N("alternativeImplementationCommand","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:e.alternativeReferenceCommand,enum:r,description:u.N("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){var t,n,i,r,o;if(!e||"object"!==typeof e)return this.defaultValue;var a=e;return{multiple:k(a.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:null!==(t=a.multipleDefinitions)&&void 0!==t?t:k(a.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:null!==(n=a.multipleTypeDefinitions)&&void 0!==n?n:k(a.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:null!==(i=a.multipleDeclarations)&&void 0!==i?i:k(a.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:null!==(r=a.multipleImplementations)&&void 0!==r?r:k(a.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:null!==(o=a.multipleReferences)&&void 0!==o?o:k(a.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:C.string(a.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:C.string(a.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:C.string(a.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:C.string(a.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:C.string(a.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}]),n}(g),Z=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0,delay:300,sticky:!0};return t.call(this,50,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:u.N("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,description:u.N("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:u.N("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),delay:b.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:_(t.sticky,this.defaultValue.sticky)}}}]),n}(g),F=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,127,[46,54,35,61,89,56,57,91,114,117,118,119,2])}return(0,s.Z)(n,[{key:"compute",value:function(e,t,i){return n.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio})}}],[{key:"computeContainedMinimapLineCount",value:function(e){var t=e.height/e.lineHeight,n=e.scrollBeyondLastLine?t-1:0,i=(e.viewLineCount+n)/(e.pixelRatio*e.height);return{typicalViewportLineCount:t,extraLinesBeyondLastLine:n,desiredRatio:i,minimapLineCount:Math.floor(e.viewLineCount/i)}}},{key:"_computeMinimapLayout",value:function(e,t){var i=e.outerWidth,r=e.outerHeight,o=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(o*r),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:r};var a=t.stableMinimapLayoutInput,s=a&&e.outerHeight===a.outerHeight&&e.lineHeight===a.lineHeight&&e.typicalHalfwidthCharacterWidth===a.typicalHalfwidthCharacterWidth&&e.pixelRatio===a.pixelRatio&&e.scrollBeyondLastLine===a.scrollBeyondLastLine&&e.minimap.enabled===a.minimap.enabled&&e.minimap.side===a.minimap.side&&e.minimap.size===a.minimap.size&&e.minimap.showSlider===a.minimap.showSlider&&e.minimap.renderCharacters===a.minimap.renderCharacters&&e.minimap.maxColumn===a.minimap.maxColumn&&e.minimap.scale===a.minimap.scale&&e.verticalScrollbarWidth===a.verticalScrollbarWidth&&e.isViewportWrapping===a.isViewportWrapping,u=e.lineHeight,l=e.typicalHalfwidthCharacterWidth,c=e.scrollBeyondLastLine,h=e.minimap.renderCharacters,f=o>=2?Math.round(2*e.minimap.scale):e.minimap.scale,p=e.minimap.maxColumn,g=e.minimap.size,v=e.minimap.side,m=e.verticalScrollbarWidth,_=e.viewLineCount,y=e.remainingWidth,b=e.isViewportWrapping,w=h?2:3,C=Math.floor(o*r),k=C/o,S=!1,x=!1,L=w*f,E=f/o,N=1;if("fill"===g||"fit"===g){var D=n.computeContainedMinimapLineCount({viewLineCount:_,scrollBeyondLastLine:c,height:r,lineHeight:u,pixelRatio:o}),M=D.typicalViewportLineCount,T=D.extraLinesBeyondLastLine,O=D.desiredRatio;if(_/D.minimapLineCount>1)S=!0,x=!0,L=1,E=(f=1)/o;else{var I=!1,A=f+1;if("fit"===g){var R=Math.ceil((_+T)*L);b&&s&&y<=t.stableFitRemainingWidth?(I=!0,A=t.stableFitMaxMinimapScale):(I=R>C,b&&I?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=y):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0))}if("fill"===g||I){S=!0;var P=f;L=Math.min(u*o,Math.max(1,Math.floor(1/O))),(f=Math.min(A,Math.max(1,Math.floor(L/w))))>P&&(N=Math.min(2,f/P)),E=f/o/N,C=Math.ceil(Math.max(M,_+T)*L),b&&I&&(t.stableFitMaxMinimapScale=f)}}}var Z=Math.floor(p*E),F=Math.min(Z,Math.max(0,Math.floor((y-m-2)*E/(l+E)))+d),j=Math.floor(o*F),H=j/o;return{renderMinimap:h?1:2,minimapLeft:"left"===v?0:i-F-m,minimapWidth:F,minimapHeightIsEditorHeight:S,minimapIsSampling:x,minimapScale:f,minimapLineHeight:L,minimapCanvasInnerWidth:j=Math.floor(j*N),minimapCanvasInnerHeight:C,minimapCanvasOuterWidth:H,minimapCanvasOuterHeight:k}}},{key:"computeLayout",value:function(e,t){var i,r=0|t.outerWidth,o=0|t.outerHeight,a=0|t.lineHeight,s=0|t.lineNumbersDigitCount,u=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,c=t.pixelRatio,d=t.viewLineCount,h=e.get(119),f="inherit"===h?e.get(118):h,g="inherit"===f?e.get(114):f,v=e.get(117),m=e.get(2),_=t.isDominatedByLongLines,y=e.get(46),w=0!==e.get(56).renderType,C=e.get(57),k=e.get(91),S=e.get(61),x=e.get(89),L=x.verticalScrollbarSize,E=x.verticalHasArrows,N=x.arrowSize,D=x.horizontalScrollbarSize,M=e.get(54),T=e.get(35);if("string"===typeof M&&/^\d+(\.\d+)?ch$/.test(M)){var O=parseFloat(M.substr(0,M.length-2));i=b.clampedInt(O*u,0,0,1e3)}else i=b.clampedInt(M,0,0,1e3);T&&(i+=16);var I=0;if(w){var A=Math.max(s,C);I=Math.round(A*l)}var R=0;y&&(R=a);var P=0,Z=P+R,F=Z+I,j=F+i,H=r-R-I-i,B=!1,z=!1,W=-1;2!==m&&("inherit"===f&&_?(B=!0,z=!0):"on"===g||"bounded"===g?z=!0:"wordWrapColumn"===g&&(W=v));var V=n._computeMinimapLayout({outerWidth:r,outerHeight:o,lineHeight:a,typicalHalfwidthCharacterWidth:u,pixelRatio:c,scrollBeyondLastLine:k,minimap:S,verticalScrollbarWidth:L,viewLineCount:d,remainingWidth:H,isViewportWrapping:z},t.memory||new p);0!==V.renderMinimap&&0===V.minimapLeft&&(P+=V.minimapWidth,Z+=V.minimapWidth,F+=V.minimapWidth,j+=V.minimapWidth);var Y=H-V.minimapWidth,U=Math.max(1,Math.floor((Y-L-2)/u)),K=E?N:0;return z&&(W=Math.max(1,U),"bounded"===g&&(W=Math.min(W,v))),{width:r,height:o,glyphMarginLeft:P,glyphMarginWidth:R,lineNumbersLeft:Z,lineNumbersWidth:I,decorationsLeft:F,decorationsWidth:i,contentLeft:j,contentWidth:Y,minimap:V,viewportColumn:U,isWordWrapMinified:B,isViewportWrapping:z,wrappingColumn:W,verticalScrollbarWidth:L,horizontalScrollbarHeight:D,overviewRuler:{top:K,width:L,height:o-2*K,right:0}}}}]),n}(v),j=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0};return t.call(this,53,"lightbulb",e,{"editor.lightbulb.enabled":{type:"boolean",default:e.enabled,description:u.N("codeActions","Enables the code action lightbulb in the editor.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){return e&&"object"===typeof e?{enabled:_(e.enabled,this.defaultValue.enabled)}:this.defaultValue}}]),n}(g),H=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0,fontSize:0,fontFamily:ne.fontFamily};return t.call(this,123,"inlineHints",e,{"editor.inlineHints.enabled":{type:"boolean",default:e.enabled,description:u.N("inlineHints.enable","Enables the inline hints in the editor.")},"editor.inlineHints.fontSize":{type:"number",default:e.fontSize,description:u.N("inlineHints.fontSize","Controls font size of inline hints in the editor. When set to `0`, the 90% of `#editor.fontSize#` is used.")},"editor.inlineHints.fontFamily":{type:"string",default:e.fontFamily,description:u.N("inlineHints.fontFamily","Controls font family of inline hints in the editor.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),fontSize:b.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:C.string(t.fontFamily,this.defaultValue.fontFamily)}}}]),n}(g),B=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,55,"lineHeight",ne.lineHeight,0,150,{description:u.N("lineHeight","Controls the line height. Use 0 to compute the line height from the font size.")})}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return e.fontInfo.lineHeight}}]),n}(b),z=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",renderCharacters:!0,maxColumn:120,scale:1};return t.call(this,61,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:u.N("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[u.N("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),u.N("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),u.N("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:u.N("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:u.N("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:u.N("minimap.showSlider","Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:u.N("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:u.N("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:u.N("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),size:k(t.size,this.defaultValue.size,["proportional","fill","fit"]),side:k(t.side,this.defaultValue.side,["right","left"]),showSlider:k(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:_(t.renderCharacters,this.defaultValue.renderCharacters),scale:b.clampedInt(t.scale,1,1,3),maxColumn:b.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}]),n}(g);var W=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,71,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:u.N("padding.top","Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:u.N("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{top:b.clampedInt(t.top,0,0,1e3),bottom:b.clampedInt(t.bottom,0,0,1e3)}}}]),n}(g),V=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0,cycle:!1};return t.call(this,72,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:u.N("parameterHints.enabled","Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:u.N("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),cycle:_(t.cycle,this.defaultValue.cycle)}}}]),n}(g),Y=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,125)}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return e.pixelRatio}}]),n}(v),U=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){var e;(0,a.Z)(this,n);var i={other:!0,comments:!1,strings:!1};return(e=t.call(this,75,"quickSuggestions",i,{anyOf:[{type:"boolean"},{type:"object",properties:{strings:{type:"boolean",default:i.strings,description:u.N("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{type:"boolean",default:i.comments,description:u.N("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{type:"boolean",default:i.other,description:u.N("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}}}],default:i,description:u.N("quickSuggestions","Controls whether suggestions should automatically show up while typing.")})).defaultValue=i,e}return(0,s.Z)(n,[{key:"validate",value:function(e){if("boolean"===typeof e)return e;if(e&&"object"===typeof e){var t=e,n={other:_(t.other,this.defaultValue.other),comments:_(t.comments,this.defaultValue.comments),strings:_(t.strings,this.defaultValue.strings)};return!!(n.other&&n.comments&&n.strings)||!!(n.other||n.comments||n.strings)&&n}return this.defaultValue}}]),n}(g),K=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,56,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[u.N("lineNumbers.off","Line numbers are not rendered."),u.N("lineNumbers.on","Line numbers are rendered as absolute number."),u.N("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),u.N("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:u.N("lineNumbers","Controls the display of line numbers.")})}return(0,s.Z)(n,[{key:"validate",value:function(e){var t=this.defaultValue.renderType,n=this.defaultValue.renderFn;return"undefined"!==typeof e&&("function"===typeof e?(t=4,n=e):t="interval"===e?3:"relative"===e?2:"on"===e?1:0),{renderType:t,renderFn:n}}}]),n}(g);function q(e){var t=e.get(84);return"editable"===t?e.get(77):"on"!==t}var G=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e=[],i={type:"number",description:u.N("rulers.size","Number of monospace characters at which this editor ruler will render.")};return t.call(this,88,"rulers",e,{type:"array",items:{anyOf:[i,{type:["object"],properties:{column:i,color:{type:"string",description:u.N("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:u.N("rulers","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(Array.isArray(e)){var t,n=[],r=(0,i.Z)(e);try{for(r.s();!(t=r.n()).done;){var o=t.value;if("number"===typeof o)n.push({column:b.clampedInt(o,0,0,1e4),color:null});else if(o&&"object"===typeof o){var a=o;n.push({column:b.clampedInt(a.column,0,0,1e4),color:a.color})}}}catch(s){r.e(s)}finally{r.f()}return n.sort((function(e,t){return e.column-t.column})),n}return this.defaultValue}}]),n}(g);function $(e,t){if("string"!==typeof e)return t;switch(e){case"hidden":return 2;case"visible":return 3;default:return 1}}var Q=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,89,"scrollbar",{vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e,n=b.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),i=b.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:b.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:$(t.vertical,this.defaultValue.vertical),horizontal:$(t.horizontal,this.defaultValue.horizontal),useShadows:_(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:_(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:_(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:_(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:_(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:n,horizontalSliderSize:b.clampedInt(t.horizontalSliderSize,n,0,1e3),verticalScrollbarSize:i,verticalSliderSize:b.clampedInt(t.verticalSliderSize,i,0,1e3),scrollByPage:_(t.scrollByPage,this.defaultValue.scrollByPage)}}}]),n}(g),X=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!0,localityBonus:!1,shareSuggestSelections:!1,showIcons:!0,showStatusBar:!1,showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};return t.call(this,103,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[u.N("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),u.N("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:u.N("suggest.insertMode","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:e.filterGraceful,description:u.N("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:u.N("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:u.N("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:u.N("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:u.N("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:u.N("suggest.showStatusBar","Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:u.N("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:u.N("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:u.N("deprecated","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{insertMode:k(t.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:_(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:_(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:_(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:_(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),showIcons:_(t.showIcons,this.defaultValue.showIcons),showStatusBar:_(t.showStatusBar,this.defaultValue.showStatusBar),showInlineDetails:_(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:_(t.showMethods,this.defaultValue.showMethods),showFunctions:_(t.showFunctions,this.defaultValue.showFunctions),showConstructors:_(t.showConstructors,this.defaultValue.showConstructors),showFields:_(t.showFields,this.defaultValue.showFields),showVariables:_(t.showVariables,this.defaultValue.showVariables),showClasses:_(t.showClasses,this.defaultValue.showClasses),showStructs:_(t.showStructs,this.defaultValue.showStructs),showInterfaces:_(t.showInterfaces,this.defaultValue.showInterfaces),showModules:_(t.showModules,this.defaultValue.showModules),showProperties:_(t.showProperties,this.defaultValue.showProperties),showEvents:_(t.showEvents,this.defaultValue.showEvents),showOperators:_(t.showOperators,this.defaultValue.showOperators),showUnits:_(t.showUnits,this.defaultValue.showUnits),showValues:_(t.showValues,this.defaultValue.showValues),showConstants:_(t.showConstants,this.defaultValue.showConstants),showEnums:_(t.showEnums,this.defaultValue.showEnums),showEnumMembers:_(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:_(t.showKeywords,this.defaultValue.showKeywords),showWords:_(t.showWords,this.defaultValue.showWords),showColors:_(t.showColors,this.defaultValue.showColors),showFiles:_(t.showFiles,this.defaultValue.showFiles),showReferences:_(t.showReferences,this.defaultValue.showReferences),showFolders:_(t.showFolders,this.defaultValue.showFolders),showTypeParameters:_(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:_(t.showSnippets,this.defaultValue.showSnippets),showUsers:_(t.showUsers,this.defaultValue.showUsers),showIssues:_(t.showIssues,this.defaultValue.showIssues)}}}]),n}(g),J=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,99,"smartSelect",{selectLeadingAndTrailingWhitespace:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:u.N("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"}})}return(0,s.Z)(n,[{key:"validate",value:function(e){return e&&"object"===typeof e?{selectLeadingAndTrailingWhitespace:_(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace)}:this.defaultValue}}]),n}(g),ee=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,126,[77])}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return!!t.get(77)||e.tabFocusMode}}]),n}(v);var te=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,128,[127])}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){var i=t.get(127);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:i.isWordWrapMinified,isViewportWrapping:i.isViewportWrapping,wrappingColumn:i.wrappingColumn}}}]),n}(v),ne={fontFamily:l.dz?"Menlo, Monaco, 'Courier New', monospace":l.IJ?"'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:l.dz?12:14,lineHeight:0,letterSpacing:0},ie={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0},re=[];function oe(e){return re[e.id]=e,e}var ae={acceptSuggestionOnCommitCharacter:oe(new y(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:u.N("acceptSuggestionOnCommitCharacter","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:oe(new S(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",u.N("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:u.N("acceptSuggestionOnEnter","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:oe(new E),accessibilityPageSize:oe(new b(3,"accessibilityPageSize",10,1,1073741824,{description:u.N("accessibilityPageSize","Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.")})),ariaLabel:oe(new C(4,"ariaLabel",u.N("editorViewAccessibleLabel","Editor content"))),autoClosingBrackets:oe(new S(5,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",u.N("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),u.N("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:u.N("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingDelete:oe(new S(6,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",u.N("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:u.N("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:oe(new S(7,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",u.N("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:u.N("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:oe(new S(8,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",u.N("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),u.N("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:u.N("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:oe(new x(9,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],(function(e){switch(e){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}),{enumDescriptions:[u.N("editor.autoIndent.none","The editor will not insert indentation automatically."),u.N("editor.autoIndent.keep","The editor will keep the current line's indentation."),u.N("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),u.N("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),u.N("editor.autoIndent.full","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:u.N("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:oe(new y(10,"automaticLayout",!1)),autoSurround:oe(new S(11,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[u.N("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),u.N("editor.autoSurround.quotes","Surround with quotes but not brackets."),u.N("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:u.N("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),stickyTabStops:oe(new y(101,"stickyTabStops",!1,{description:u.N("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:oe(new y(12,"codeLens",!0,{description:u.N("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:oe(new C(13,"codeLensFontFamily","",{description:u.N("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:oe(new b(14,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,description:u.N("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to `0`, the 90% of `#editor.fontSize#` is used.")})),colorDecorators:oe(new y(15,"colorDecorators",!0,{description:u.N("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),columnSelection:oe(new y(16,"columnSelection",!1,{description:u.N("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:oe(new N),contextmenu:oe(new y(18,"contextmenu",!0)),copyWithSyntaxHighlighting:oe(new y(19,"copyWithSyntaxHighlighting",!0,{description:u.N("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:oe(new x(20,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],(function(e){switch(e){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}),{description:u.N("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:oe(new y(21,"cursorSmoothCaretAnimation",!1,{description:u.N("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:oe(new x(22,"cursorStyle",L.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],(function(e){switch(e){case"line":return L.Line;case"block":return L.Block;case"underline":return L.Underline;case"line-thin":return L.LineThin;case"block-outline":return L.BlockOutline;case"underline-thin":return L.UnderlineThin}}),{description:u.N("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:oe(new b(23,"cursorSurroundingLines",0,0,1073741824,{description:u.N("cursorSurroundingLines","Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:oe(new S(24,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[u.N("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),u.N("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],description:u.N("cursorSurroundingLinesStyle","Controls when `cursorSurroundingLines` should be enforced.")})),cursorWidth:oe(new b(25,"cursorWidth",0,0,1073741824,{markdownDescription:u.N("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:oe(new y(26,"disableLayerHinting",!1)),disableMonospaceOptimizations:oe(new y(27,"disableMonospaceOptimizations",!1)),domReadOnly:oe(new y(28,"domReadOnly",!1)),dragAndDrop:oe(new y(29,"dragAndDrop",!0,{description:u.N("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:oe(new M),extraEditorClassName:oe(new C(31,"extraEditorClassName","")),fastScrollSensitivity:oe(new w(32,"fastScrollSensitivity",5,(function(e){return e<=0?5:e}),{markdownDescription:u.N("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:oe(new T),fixedOverflowWidgets:oe(new y(34,"fixedOverflowWidgets",!1)),folding:oe(new y(35,"folding",!0,{description:u.N("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:oe(new S(36,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[u.N("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),u.N("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:u.N("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:oe(new y(37,"foldingHighlight",!0,{description:u.N("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),unfoldOnClickAfterEndOfLine:oe(new y(38,"unfoldOnClickAfterEndOfLine",!1,{description:u.N("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:oe(new C(39,"fontFamily",ne.fontFamily,{description:u.N("fontFamily","Controls the font family.")})),fontInfo:oe(new I),fontLigatures2:oe(new O),fontSize:oe(new A),fontWeight:oe(new R),formatOnPaste:oe(new y(44,"formatOnPaste",!1,{description:u.N("formatOnPaste","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:oe(new y(45,"formatOnType",!1,{description:u.N("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:oe(new y(46,"glyphMargin",!0,{description:u.N("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:oe(new P),hideCursorInOverviewRuler:oe(new y(48,"hideCursorInOverviewRuler",!1,{description:u.N("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),highlightActiveIndentGuide:oe(new y(49,"highlightActiveIndentGuide",!0,{description:u.N("highlightActiveIndentGuide","Controls whether the editor should highlight the active indent guide.")})),hover:oe(new Z),inDiffEditor:oe(new y(51,"inDiffEditor",!1)),letterSpacing:oe(new w(52,"letterSpacing",ne.letterSpacing,(function(e){return w.clamp(e,-5,20)}),{description:u.N("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:oe(new j),lineDecorationsWidth:oe(new m(54,"lineDecorationsWidth",10)),lineHeight:oe(new B),lineNumbers:oe(new K),lineNumbersMinChars:oe(new b(57,"lineNumbersMinChars",5,1,300)),linkedEditing:oe(new y(58,"linkedEditing",!1,{description:u.N("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols, e.g. HTML tags, are updated while editing.")})),links:oe(new y(59,"links",!0,{description:u.N("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:oe(new S(60,"matchBrackets","always",["always","near","never"],{description:u.N("matchBrackets","Highlight matching brackets.")})),minimap:oe(new z),mouseStyle:oe(new S(62,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:oe(new w(63,"mouseWheelScrollSensitivity",1,(function(e){return 0===e?1:e}),{markdownDescription:u.N("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:oe(new y(64,"mouseWheelZoom",!1,{markdownDescription:u.N("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:oe(new y(65,"multiCursorMergeOverlapping",!0,{description:u.N("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:oe(new x(66,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],(function(e){return"ctrlCmd"===e?l.dz?"metaKey":"ctrlKey":"altKey"}),{markdownEnumDescriptions:[u.N("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),u.N("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:u.N({key:"multiCursorModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:oe(new S(67,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[u.N("multiCursorPaste.spread","Each cursor pastes a single line of the text."),u.N("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:u.N("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),occurrencesHighlight:oe(new y(68,"occurrencesHighlight",!0,{description:u.N("occurrencesHighlight","Controls whether the editor should highlight semantic symbol occurrences.")})),overviewRulerBorder:oe(new y(69,"overviewRulerBorder",!0,{description:u.N("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:oe(new b(70,"overviewRulerLanes",3,0,3)),padding:oe(new W),parameterHints:oe(new V),peekWidgetDefaultFocus:oe(new S(73,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[u.N("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),u.N("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:u.N("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:oe(new y(74,"definitionLinkOpensInPeek",!1,{description:u.N("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:oe(new U),quickSuggestionsDelay:oe(new b(76,"quickSuggestionsDelay",10,0,1073741824,{description:u.N("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:oe(new y(77,"readOnly",!1)),renameOnType:oe(new y(78,"renameOnType",!1,{description:u.N("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:u.N("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:oe(new y(79,"renderControlCharacters",!1,{description:u.N("renderControlCharacters","Controls whether the editor should render control characters.")})),renderIndentGuides:oe(new y(80,"renderIndentGuides",!0,{description:u.N("renderIndentGuides","Controls whether the editor should render indent guides.")})),renderFinalNewline:oe(new y(81,"renderFinalNewline",!0,{description:u.N("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:oe(new S(82,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",u.N("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:u.N("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:oe(new y(83,"renderLineHighlightOnlyWhenFocus",!1,{description:u.N("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:oe(new S(84,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:oe(new S(85,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",u.N("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),u.N("renderWhitespace.selection","Render whitespace characters only on selected text."),u.N("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:u.N("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:oe(new b(86,"revealHorizontalRightPadding",30,0,1e3)),roundedSelection:oe(new y(87,"roundedSelection",!0,{description:u.N("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:oe(new G),scrollbar:oe(new Q),scrollBeyondLastColumn:oe(new b(90,"scrollBeyondLastColumn",5,0,1073741824,{description:u.N("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:oe(new y(91,"scrollBeyondLastLine",!0,{description:u.N("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:oe(new y(92,"scrollPredominantAxis",!0,{description:u.N("scrollPredominantAxis","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:oe(new y(93,"selectionClipboard",!0,{description:u.N("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:l.IJ})),selectionHighlight:oe(new y(94,"selectionHighlight",!0,{description:u.N("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:oe(new y(95,"selectOnLineNumbers",!0)),showFoldingControls:oe(new S(96,"showFoldingControls","mouseover",["always","mouseover"],{enumDescriptions:[u.N("showFoldingControls.always","Always show the folding controls."),u.N("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:u.N("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:oe(new y(97,"showUnused",!0,{description:u.N("showUnused","Controls fading out of unused code.")})),showDeprecated:oe(new y(122,"showDeprecated",!0,{description:u.N("showDeprecated","Controls strikethrough deprecated variables.")})),inlineHints:oe(new H),snippetSuggestions:oe(new S(98,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[u.N("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),u.N("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),u.N("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),u.N("snippetSuggestions.none","Do not show snippet suggestions.")],description:u.N("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:oe(new J),smoothScrolling:oe(new y(100,"smoothScrolling",!1,{description:u.N("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:oe(new b(102,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:oe(new X),suggestFontSize:oe(new b(104,"suggestFontSize",0,0,1e3,{markdownDescription:u.N("suggestFontSize","Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.")})),suggestLineHeight:oe(new b(105,"suggestLineHeight",0,0,1e3,{markdownDescription:u.N("suggestLineHeight","Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used. The minimum value is 8.")})),suggestOnTriggerCharacters:oe(new y(106,"suggestOnTriggerCharacters",!0,{description:u.N("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:oe(new S(107,"suggestSelection","recentlyUsed",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[u.N("suggestSelection.first","Always select the first suggestion."),u.N("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),u.N("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:u.N("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:oe(new S(108,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[u.N("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),u.N("tabCompletion.off","Disable tab completions."),u.N("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:u.N("tabCompletion","Enables tab completions.")})),tabIndex:oe(new b(109,"tabIndex",0,-1,1073741824)),unusualLineTerminators:oe(new S(110,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[u.N("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),u.N("unusualLineTerminators.off","Unusual line terminators are ignored."),u.N("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:u.N("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:oe(new y(111,"useShadowDOM",!0)),useTabStops:oe(new y(112,"useTabStops",!0,{description:u.N("useTabStops","Inserting and deleting whitespace follows tab stops.")})),wordSeparators:oe(new C(113,"wordSeparators",c.vu,{description:u.N("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:oe(new S(114,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[u.N("wordWrap.off","Lines will never wrap."),u.N("wordWrap.on","Lines will wrap at the viewport width."),u.N({key:"wordWrap.wordWrapColumn",comment:["- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at `#editor.wordWrapColumn#`."),u.N({key:"wordWrap.bounded",comment:["- viewport means the edge of the visible window size.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:u.N({key:"wordWrap",comment:["- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:oe(new C(115,"wordWrapBreakAfterCharacters"," \t})]?|/&.,;\xa2\xb0\u2032\u2033\u2030\u2103\u3001\u3002\uff61\uff64\uffe0\uff0c\uff0e\uff1a\uff1b\uff1f\uff01\uff05\u30fb\uff65\u309d\u309e\u30fd\u30fe\u30fc\u30a1\u30a3\u30a5\u30a7\u30a9\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u31f0\u31f1\u31f2\u31f3\u31f4\u31f5\u31f6\u31f7\u31f8\u31f9\u31fa\u31fb\u31fc\u31fd\u31fe\u31ff\u3005\u303b\uff67\uff68\uff69\uff6a\uff6b\uff6c\uff6d\uff6e\uff6f\uff70\u201d\u3009\u300b\u300d\u300f\u3011\u3015\uff09\uff3d\uff5d\uff63")),wordWrapBreakBeforeCharacters:oe(new C(116,"wordWrapBreakBeforeCharacters","([{\u2018\u201c\u3008\u300a\u300c\u300e\u3010\u3014\uff08\uff3b\uff5b\uff62\xa3\xa5\uff04\uffe1\uffe5+\uff0b")),wordWrapColumn:oe(new b(117,"wordWrapColumn",80,1,1073741824,{markdownDescription:u.N({key:"wordWrapColumn",comment:["- `editor.wordWrap` refers to a different setting and should not be localized.","- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized."]},"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:oe(new S(118,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:oe(new S(119,"wordWrapOverride2","inherit",["off","on","inherit"])),wrappingIndent:oe(new x(120,"wrappingIndent",1,"same",["none","same","indent","deepIndent"],(function(e){switch(e){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}}),{enumDescriptions:[u.N("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),u.N("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),u.N("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),u.N("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:u.N("wrappingIndent","Controls the indentation of wrapped lines.")})),wrappingStrategy:oe(new S(121,"wrappingStrategy","simple",["simple","advanced"],{enumDescriptions:[u.N("wrappingStrategy.simple","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),u.N("wrappingStrategy.advanced","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],description:u.N("wrappingStrategy","Controls the algorithm that computes wrapping points.")})),editorClassName:oe(new D),pixelRatio:oe(new Y),tabFocusMode:oe(new ee),layoutInfo:oe(new F),wrappingInfo:oe(new te)}},51164:function(e,t,n){"use strict";n.d(t,{C:function(){return a}});var i=n(15671),r=n(43144),o=n(11732),a=new(function(){function e(){(0,i.Z)(this,e),this._zoomLevel=0,this._onDidChangeZoomLevel=new o.Q5,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}return(0,r.Z)(e,[{key:"getZoomLevel",value:function(){return this._zoomLevel}},{key:"setZoomLevel",value:function(e){e=Math.min(Math.max(-5,e),20),this._zoomLevel!==e&&(this._zoomLevel=e,this._onDidChangeZoomLevel.fire(this._zoomLevel))}}]),e}())},28702:function(e,t,n){"use strict";n.d(t,{E4:function(){return c},pR:function(){return h}});var i=n(60136),r=n(29388),o=n(15671),a=n(43144),s=n(30487),u=n(51164),l=s.dz?1.5:1.35,c=function(){function e(t){(0,o.Z)(this,e),this.zoomLevel=t.zoomLevel,this.pixelRatio=t.pixelRatio,this.fontFamily=String(t.fontFamily),this.fontWeight=String(t.fontWeight),this.fontSize=t.fontSize,this.fontFeatureSettings=t.fontFeatureSettings,this.lineHeight=0|t.lineHeight,this.letterSpacing=t.letterSpacing}return(0,a.Z)(e,[{key:"getId",value:function(){return this.zoomLevel+"-"+this.pixelRatio+"-"+this.fontFamily+"-"+this.fontWeight+"-"+this.fontSize+"-"+this.fontFeatureSettings+"-"+this.lineHeight+"-"+this.letterSpacing}},{key:"getMassagedFontFamily",value:function(){return/[,"']/.test(this.fontFamily)?this.fontFamily:/[+ ]/.test(this.fontFamily)?'"'.concat(this.fontFamily,'"'):this.fontFamily}}],[{key:"createFromValidatedSettings",value:function(t,n,i,r){var o=t.get(39),a=t.get(43),s=t.get(42),u=t.get(41),l=t.get(55),c=t.get(52);return e._create(o,a,s,u,l,c,n,i,r)}},{key:"_create",value:function(t,n,i,r,o,a,s,c,d){0===o?o=Math.round(l*i):o<8&&(o=8);var h=1+(d?0:.1*u.C.getZoomLevel());return new e({zoomLevel:s,pixelRatio:c,fontFamily:t,fontWeight:n,fontSize:i*=h,fontFeatureSettings:r,lineHeight:o*=h,letterSpacing:a})}}]),e}(),d=1,h=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i){var r;return(0,o.Z)(this,n),(r=t.call(this,e)).version=d,r.isTrusted=i,r.isMonospace=e.isMonospace,r.typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,r.typicalFullwidthCharacterWidth=e.typicalFullwidthCharacterWidth,r.canUseHalfwidthRightwardsArrow=e.canUseHalfwidthRightwardsArrow,r.spaceWidth=e.spaceWidth,r.middotWidth=e.middotWidth,r.wsmiddotWidth=e.wsmiddotWidth,r.maxDigitWidth=e.maxDigitWidth,r}return(0,a.Z)(n,[{key:"equals",value:function(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.maxDigitWidth===e.maxDigitWidth}}]),n}(c)},86036:function(e,t,n){"use strict";n.d(t,{l:function(){return s}});var i=n(29439),r=n(15671),o=n(43144),a=n(16274),s=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"whitespaceVisibleColumn",value:function(e,t,n){for(var i=e.length,r=0,o=-1,s=-1,u=0;u<i;u++){if(u===t)return[o,s,r];switch(r%n===0&&(o=u,s=r),e.charCodeAt(u)){case 32:r+=1;break;case 9:r=a.io.nextRenderTabStop(r,n);break;default:return[-1,-1,-1]}}return t===i?[o,s,r]:[-1,-1,-1]}},{key:"atomicPosition",value:function(t,n,r,o){var s,u=t.length,l=e.whitespaceVisibleColumn(t,n,r),c=(0,i.Z)(l,3),d=c[0],h=c[1],f=c[2];if(-1===f)return-1;switch(o){case 0:s=!0;break;case 1:s=!1;break;case 2:if(f%r===0)return n;s=f%r<=r/2}if(s){if(-1===d)return-1;for(var p=h,g=d;g<u;++g){if(p===h+r)return d;switch(t.charCodeAt(g)){case 32:p+=1;break;case 9:p=a.io.nextRenderTabStop(p,r);break;default:return-1}}return p===h+r?d:-1}for(var v=a.io.nextRenderTabStop(f,r),m=f,_=n;_<u;_++){if(m===v)return _;switch(t.charCodeAt(_)){case 32:m+=1;break;case 9:m=a.io.nextRenderTabStop(m,r);break;default:return-1}}return m===v?u:-1}}]),e}()},16274:function(e,t,n){"use strict";n.d(t,{LM:function(){return v},LN:function(){return S},Tp:function(){return C},Vi:function(){return w},io:function(){return k},rS:function(){return m},zp:function(){return _}});var i=n(37762),r=n(15671),o=n(43144),a=n(8729),s=n(51747),u=n(67297),l=n(67033),c=n(74964),d=n(28893),h=n(65262),f=function(){return!0},p=function(){return!1},g=function(e){return" "===e||"\t"===e},v=function(){function e(t,n,o){(0,r.Z)(this,e),this._languageIdentifier=t;var a=o.options,s=a.get(127);this.readOnly=a.get(77),this.tabSize=n.tabSize,this.indentSize=n.indentSize,this.insertSpaces=n.insertSpaces,this.stickyTabStops=a.get(101),this.lineHeight=a.get(55),this.pageSize=Math.max(1,Math.floor(s.height/this.lineHeight)-2),this.useTabStops=a.get(112),this.wordSeparators=a.get(113),this.emptySelectionClipboard=a.get(30),this.copyWithSyntaxHighlighting=a.get(19),this.multiCursorMergeOverlapping=a.get(65),this.multiCursorPaste=a.get(67),this.autoClosingBrackets=a.get(5),this.autoClosingQuotes=a.get(8),this.autoClosingDelete=a.get(6),this.autoClosingOvertype=a.get(7),this.autoSurround=a.get(11),this.autoIndent=a.get(9),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:e._getShouldAutoClose(t,this.autoClosingQuotes),bracket:e._getShouldAutoClose(t,this.autoClosingBrackets)},this.autoClosingPairs=h.zu.getAutoClosingPairs(t.id);var u=e._getSurroundingPairs(t);if(u){var l,c=(0,i.Z)(u);try{for(c.s();!(l=c.n()).done;){var d=l.value;this.surroundingPairs[d.open]=d.close}}catch(f){c.e(f)}finally{c.f()}}}return(0,o.Z)(e,[{key:"electricChars",get:function(){if(!this._electricChars){this._electricChars={};var t=e._getElectricCharacters(this._languageIdentifier);if(t){var n,r=(0,i.Z)(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;this._electricChars[o]=!0}}catch(a){r.e(a)}finally{r.f()}}}return this._electricChars}},{key:"normalizeIndentation",value:function(e){return d.yO.normalizeIndentation(e,this.indentSize,this.insertSpaces)}}],[{key:"shouldRecreate",value:function(e){return e.hasChanged(127)||e.hasChanged(113)||e.hasChanged(30)||e.hasChanged(65)||e.hasChanged(67)||e.hasChanged(5)||e.hasChanged(8)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(112)||e.hasChanged(55)||e.hasChanged(77)}},{key:"_getElectricCharacters",value:function(e){try{return h.zu.getElectricCharacters(e.id)}catch(t){return(0,a.dL)(t),null}}},{key:"_getShouldAutoClose",value:function(t,n){switch(n){case"beforeWhitespace":return g;case"languageDefined":return e._getLanguageDefinedShouldAutoClose(t);case"always":return f;case"never":return p}}},{key:"_getLanguageDefinedShouldAutoClose",value:function(e){try{var t=h.zu.getAutoCloseBeforeSet(e.id);return function(e){return-1!==t.indexOf(e)}}catch(n){return(0,a.dL)(n),p}}},{key:"_getSurroundingPairs",value:function(e){try{return h.zu.getSurroundingPairs(e.id)}catch(t){return(0,a.dL)(t),null}}}]),e}(),m=function(){function e(t,n,i,o){(0,r.Z)(this,e),this.selectionStart=t,this.selectionStartLeftoverVisibleColumns=n,this.position=i,this.leftoverVisibleColumns=o,this.selection=e._computeSelection(this.selectionStart,this.position)}return(0,o.Z)(e,[{key:"equals",value:function(e){return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.position.equals(e.position)&&this.selectionStart.equalsRange(e.selectionStart)}},{key:"hasSelection",value:function(){return!this.selection.isEmpty()||!this.selectionStart.isEmpty()}},{key:"move",value:function(t,n,i,r){return t?new e(this.selectionStart,this.selectionStartLeftoverVisibleColumns,new u.L(n,i),r):new e(new l.e(n,i,n,i),r,new u.L(n,i),r)}}],[{key:"_computeSelection",value:function(e,t){var n,i,r,o;return e.isEmpty()?(n=e.startLineNumber,i=e.startColumn,r=t.lineNumber,o=t.column):t.isBeforeOrEqual(e.getStartPosition())?(n=e.endLineNumber,i=e.endColumn,r=t.lineNumber,o=t.column):(n=e.startLineNumber,i=e.startColumn,r=t.lineNumber,o=t.column),new c.Y(n,i,r,o)}}]),e}(),_=(0,o.Z)((function e(t,n,i){(0,r.Z)(this,e),this.model=t,this.coordinatesConverter=n,this.cursorConfig=i})),y=(0,o.Z)((function e(t){(0,r.Z)(this,e),this.modelState=t,this.viewState=null})),b=(0,o.Z)((function e(t){(0,r.Z)(this,e),this.modelState=null,this.viewState=t})),w=function(){function e(t,n){(0,r.Z)(this,e),this.modelState=t,this.viewState=n}return(0,o.Z)(e,[{key:"equals",value:function(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.modelState)}}],[{key:"fromModelState",value:function(e){return new y(e)}},{key:"fromViewState",value:function(e){return new b(e)}},{key:"fromModelSelection",value:function(t){var n=t.selectionStartLineNumber,i=t.selectionStartColumn,r=t.positionLineNumber,o=t.positionColumn,a=new m(new l.e(n,i,n,i),0,new u.L(r,o),0);return e.fromModelState(a)}},{key:"fromModelSelections",value:function(e){for(var t=[],n=0,i=e.length;n<i;n++)t[n]=this.fromModelSelection(e[n]);return t}}]),e}(),C=(0,o.Z)((function e(t,n,i){(0,r.Z)(this,e),this.type=t,this.commands=n,this.shouldPushStackElementBefore=i.shouldPushStackElementBefore,this.shouldPushStackElementAfter=i.shouldPushStackElementAfter})),k=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"visibleColumnFromColumn",value:function(t,n,i){for(var r=t.length,o=n-1<r?n-1:r,a=0,u=0;u<o;){var l=s.ZH(t,o,u);if(u+=l>=65536?2:1,9===l)a=e.nextRenderTabStop(a,i);else{for(var c=s.S6(l);u<o;){var d=s.ZH(t,o,u),h=s.S6(d);if(s.fi(c,h))break;u+=d>=65536?2:1,c=h}s.K7(l)||s.C8(l)?a+=2:a+=1}}return a}},{key:"visibleColumnFromColumn2",value:function(e,t,n){return this.visibleColumnFromColumn(t.getLineContent(n.lineNumber),n.column,e.tabSize)}},{key:"columnFromVisibleColumn",value:function(t,n,i){if(n<=0)return 1;for(var r=t.length,o=0,a=1,u=0;u<r;){var l=s.ZH(t,r,u);u+=l>=65536?2:1;var c=void 0;if(9===l)c=e.nextRenderTabStop(o,i);else{for(var d=s.S6(l);u<r;){var h=s.ZH(t,r,u),f=s.S6(h);if(s.fi(d,f))break;u+=h>=65536?2:1,d=f}c=s.K7(l)||s.C8(l)?o+2:o+1}var p=u+1;if(c>=n)return c-n<n-o?p:a;o=c,a=p}return r+1}},{key:"columnFromVisibleColumn2",value:function(e,t,n,i){var r=this.columnFromVisibleColumn(t.getLineContent(n),i,e.tabSize),o=t.getLineMinColumn(n);if(r<o)return o;var a=t.getLineMaxColumn(n);return r>a?a:r}},{key:"nextRenderTabStop",value:function(e,t){return e+t-e%t}},{key:"nextIndentTabStop",value:function(e,t){return e+t-e%t}},{key:"prevRenderTabStop",value:function(e,t){return Math.max(0,e-1-(e-1)%t)}},{key:"prevIndentTabStop",value:function(e,t){return Math.max(0,e-1-(e-1)%t)}}]),e}();function S(e){return"'"===e||'"'===e||"`"===e}},39765:function(e,t,n){"use strict";n.d(t,{A:function(){return d}});var i=n(37762),r=n(15671),o=n(43144),a=n(51747),s=n(97033),u=n(16274),l=n(15432),c=n(67033),d=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"deleteRight",value:function(e,t,n,i){for(var r=[],o=3!==e,a=0,u=i.length;a<u;a++){var d=i[a],h=d;if(h.isEmpty()){var f=d.getPosition(),p=l.o.right(t,n,f.lineNumber,f.column);h=new c.e(p.lineNumber,p.column,f.lineNumber,f.column)}h.isEmpty()?r[a]=null:(h.startLineNumber!==h.endLineNumber&&(o=!0),r[a]=new s.T4(h,""))}return[o,r]}},{key:"isAutoClosingPairDelete",value:function(e,t,n,r,o,a,s){if("never"===t&&"never"===n)return!1;if("never"===e)return!1;for(var l=0,c=a.length;l<c;l++){var d=a[l],h=d.getPosition();if(!d.isEmpty())return!1;var f=o.getLineContent(h.lineNumber);if(h.column<2||h.column>=f.length+1)return!1;var p=f.charAt(h.column-2),g=r.get(p);if(!g)return!1;if((0,u.LN)(p)){if("never"===n)return!1}else if("never"===t)return!1;var v,m=f.charAt(h.column-1),_=!1,y=(0,i.Z)(g);try{for(y.s();!(v=y.n()).done;){var b=v.value;b.open===p&&b.close===m&&(_=!0)}}catch(x){y.e(x)}finally{y.f()}if(!_)return!1;if("auto"===e){for(var w=!1,C=0,k=s.length;C<k;C++){var S=s[C];if(h.lineNumber===S.startLineNumber&&h.column===S.startColumn){w=!0;break}}if(!w)return!1}}return!0}},{key:"_runAutoClosingPairDelete",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r].getPosition(),u=new c.e(a.lineNumber,a.column-1,a.lineNumber,a.column+1);i[r]=new s.T4(u,"")}return[!0,i]}},{key:"deleteLeft",value:function(e,t,n,i,r){if(this.isAutoClosingPairDelete(t.autoClosingDelete,t.autoClosingBrackets,t.autoClosingQuotes,t.autoClosingPairs.autoClosingPairsOpenByEnd,n,i,r))return this._runAutoClosingPairDelete(t,n,i);for(var o=[],d=2!==e,h=0,f=i.length;h<f;h++){var p=i[h],g=p;if(g.isEmpty()){var v=p.getPosition();if(t.useTabStops&&v.column>1){var m=n.getLineContent(v.lineNumber),_=a.LC(m),y=-1===_?m.length+1:_+1;if(v.column<=y){var b=u.io.visibleColumnFromColumn2(t,n,v),w=u.io.prevIndentTabStop(b,t.indentSize),C=u.io.columnFromVisibleColumn2(t,n,v.lineNumber,w);g=new c.e(v.lineNumber,C,v.lineNumber,v.column)}else g=new c.e(v.lineNumber,v.column-1,v.lineNumber,v.column)}else{var k=l.o.left(t,n,v.lineNumber,v.column);g=new c.e(k.lineNumber,k.column,v.lineNumber,v.column)}}g.isEmpty()?o[h]=null:(g.startLineNumber!==g.endLineNumber&&(d=!0),o[h]=new s.T4(g,""))}return[d,o]}},{key:"cut",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r];if(a.isEmpty())if(e.emptySelectionClipboard){var l=a.getPosition(),d=void 0,h=void 0,f=void 0,p=void 0;l.lineNumber<t.getLineCount()?(d=l.lineNumber,h=1,f=l.lineNumber+1,p=1):l.lineNumber>1?(d=l.lineNumber-1,h=t.getLineMaxColumn(l.lineNumber-1),f=l.lineNumber,p=t.getLineMaxColumn(l.lineNumber)):(d=l.lineNumber,h=1,f=l.lineNumber,p=t.getLineMaxColumn(l.lineNumber));var g=new c.e(d,h,f,p);g.isEmpty()?i[r]=null:i[r]=new s.T4(g,"")}else i[r]=null;else i[r]=new s.T4(a,"")}return new u.Tp(0,i,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}]),e}()},55561:function(e,t,n){"use strict";n.d(t,{N:function(){return i},P:function(){return h}});var i,r=n(15671),o=n(43144),a=n(25941),s=n(16274),u=n(15432),l=n(86441),c=n(67297),d=n(67033),h=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"addCursorDown",value:function(e,t,n){for(var i=[],r=0,o=0,a=t.length;o<a;o++){var l=t[o];i[r++]=new s.Vi(l.modelState,l.viewState),i[r++]=n?s.Vi.fromModelState(u.o.translateDown(e.cursorConfig,e.model,l.modelState)):s.Vi.fromViewState(u.o.translateDown(e.cursorConfig,e,l.viewState))}return i}},{key:"addCursorUp",value:function(e,t,n){for(var i=[],r=0,o=0,a=t.length;o<a;o++){var l=t[o];i[r++]=new s.Vi(l.modelState,l.viewState),i[r++]=n?s.Vi.fromModelState(u.o.translateUp(e.cursorConfig,e.model,l.modelState)):s.Vi.fromViewState(u.o.translateUp(e.cursorConfig,e,l.viewState))}return i}},{key:"moveToBeginningOfLine",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r];i[r]=this._moveToLineStart(e,a,n)}return i}},{key:"_moveToLineStart",value:function(e,t,n){var i=t.viewState.position.column,r=i===t.modelState.position.column,o=t.viewState.position.lineNumber,a=e.getLineFirstNonWhitespaceColumn(o);return r||i===a?this._moveToLineStartByModel(e,t,n):this._moveToLineStartByView(e,t,n)}},{key:"_moveToLineStartByView",value:function(e,t,n){return s.Vi.fromViewState(u.o.moveToBeginningOfLine(e.cursorConfig,e,t.viewState,n))}},{key:"_moveToLineStartByModel",value:function(e,t,n){return s.Vi.fromModelState(u.o.moveToBeginningOfLine(e.cursorConfig,e.model,t.modelState,n))}},{key:"moveToEndOfLine",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var s=t[o];r[o]=this._moveToLineEnd(e,s,n,i)}return r}},{key:"_moveToLineEnd",value:function(e,t,n,i){var r=t.viewState.position,o=e.getLineMaxColumn(r.lineNumber),a=r.column===o,s=t.modelState.position,u=e.model.getLineMaxColumn(s.lineNumber),l=o-r.column===u-s.column;return a||l?this._moveToLineEndByModel(e,t,n,i):this._moveToLineEndByView(e,t,n,i)}},{key:"_moveToLineEndByView",value:function(e,t,n,i){return s.Vi.fromViewState(u.o.moveToEndOfLine(e.cursorConfig,e,t.viewState,n,i))}},{key:"_moveToLineEndByModel",value:function(e,t,n,i){return s.Vi.fromModelState(u.o.moveToEndOfLine(e.cursorConfig,e.model,t.modelState,n,i))}},{key:"expandLineSelection",value:function(e,t){for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i],a=o.modelState.selection.startLineNumber,u=e.model.getLineCount(),l=o.modelState.selection.endLineNumber,h=void 0;l===u?h=e.model.getLineMaxColumn(u):(l++,h=1),n[i]=s.Vi.fromModelState(new s.rS(new d.e(a,1,a,1),0,new c.L(l,h),0))}return n}},{key:"moveToBeginningOfBuffer",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r];i[r]=s.Vi.fromModelState(u.o.moveToBeginningOfBuffer(e.cursorConfig,e.model,a.modelState,n))}return i}},{key:"moveToEndOfBuffer",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r];i[r]=s.Vi.fromModelState(u.o.moveToEndOfBuffer(e.cursorConfig,e.model,a.modelState,n))}return i}},{key:"selectAll",value:function(e,t){var n=e.model.getLineCount(),i=e.model.getLineMaxColumn(n);return s.Vi.fromModelState(new s.rS(new d.e(1,1,1,1),0,new c.L(n,i),0))}},{key:"line",value:function(e,t,n,i,r){var o=e.model.validatePosition(i),a=r?e.coordinatesConverter.validateViewPosition(new c.L(r.lineNumber,r.column),o):e.coordinatesConverter.convertModelPositionToViewPosition(o);if(!n||!t.modelState.hasSelection()){var u=e.model.getLineCount(),l=o.lineNumber+1,h=1;return l>u&&(l=u,h=e.model.getLineMaxColumn(l)),s.Vi.fromModelState(new s.rS(new d.e(o.lineNumber,1,l,h),0,new c.L(l,h),0))}var f=t.modelState.selectionStart.getStartPosition().lineNumber;if(o.lineNumber<f)return s.Vi.fromViewState(t.viewState.move(t.modelState.hasSelection(),a.lineNumber,1,0));if(o.lineNumber>f){var p=e.getLineCount(),g=a.lineNumber+1,v=1;return g>p&&(g=p,v=e.getLineMaxColumn(g)),s.Vi.fromViewState(t.viewState.move(t.modelState.hasSelection(),g,v,0))}var m=t.modelState.selectionStart.getEndPosition();return s.Vi.fromModelState(t.modelState.move(t.modelState.hasSelection(),m.lineNumber,m.column,0))}},{key:"word",value:function(e,t,n,i){var r=e.model.validatePosition(i);return s.Vi.fromModelState(l.w.word(e.cursorConfig,e.model,t.modelState,n,r))}},{key:"cancelSelection",value:function(e,t){if(!t.modelState.hasSelection())return new s.Vi(t.modelState,t.viewState);var n=t.viewState.position.lineNumber,i=t.viewState.position.column;return s.Vi.fromViewState(new s.rS(new d.e(n,i,n,i),0,new c.L(n,i),0))}},{key:"moveTo",value:function(e,t,n,i,r){var o=e.model.validatePosition(i),a=r?e.coordinatesConverter.validateViewPosition(new c.L(r.lineNumber,r.column),o):e.coordinatesConverter.convertModelPositionToViewPosition(o);return s.Vi.fromViewState(t.viewState.move(n,a.lineNumber,a.column,0))}},{key:"simpleMove",value:function(e,t,n,i,r,o){switch(n){case 0:return 4===o?this._moveHalfLineLeft(e,t,i):this._moveLeft(e,t,i,r);case 1:return 4===o?this._moveHalfLineRight(e,t,i):this._moveRight(e,t,i,r);case 2:return 2===o?this._moveUpByViewLines(e,t,i,r):this._moveUpByModelLines(e,t,i,r);case 3:return 2===o?this._moveDownByViewLines(e,t,i,r):this._moveDownByModelLines(e,t,i,r);case 4:return 2===o?t.map((function(t){return s.Vi.fromViewState(u.o.moveToPrevBlankLine(e.cursorConfig,e,t.viewState,i))})):t.map((function(t){return s.Vi.fromModelState(u.o.moveToPrevBlankLine(e.cursorConfig,e.model,t.modelState,i))}));case 5:return 2===o?t.map((function(t){return s.Vi.fromViewState(u.o.moveToNextBlankLine(e.cursorConfig,e,t.viewState,i))})):t.map((function(t){return s.Vi.fromModelState(u.o.moveToNextBlankLine(e.cursorConfig,e.model,t.modelState,i))}));case 6:return this._moveToViewMinColumn(e,t,i);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,i);case 8:return this._moveToViewCenterColumn(e,t,i);case 9:return this._moveToViewMaxColumn(e,t,i);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,i);default:return null}}},{key:"viewportMove",value:function(e,t,n,i,r){var o=e.getCompletelyVisibleViewRange(),a=e.coordinatesConverter.convertViewRangeToModelRange(o);switch(n){case 11:var s=this._firstLineNumberInRange(e.model,a,r),u=e.model.getLineFirstNonWhitespaceColumn(s);return[this._moveToModelPosition(e,t[0],i,s,u)];case 13:var l=this._lastLineNumberInRange(e.model,a,r),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],i,l,c)];case 12:var d=Math.round((a.startLineNumber+a.endLineNumber)/2),h=e.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(e,t[0],i,d,h)];case 14:for(var f=[],p=0,g=t.length;p<g;p++){var v=t[p];f[p]=this.findPositionInViewportIfOutside(e,v,o,i)}return f;default:return null}}},{key:"findPositionInViewportIfOutside",value:function(e,t,n,i){var r=t.viewState.position.lineNumber;if(n.startLineNumber<=r&&r<=n.endLineNumber-1)return new s.Vi(t.modelState,t.viewState);r>n.endLineNumber-1&&(r=n.endLineNumber-1),r<n.startLineNumber&&(r=n.startLineNumber);var o=e.getLineFirstNonWhitespaceColumn(r);return this._moveToViewPosition(e,t,i,r,o)}},{key:"_firstLineNumberInRange",value:function(e,t,n){var i=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(i)&&i++,Math.min(t.endLineNumber,i+n-1)}},{key:"_lastLineNumberInRange",value:function(e,t,n){var i=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(i)&&i++,Math.max(i,t.endLineNumber-n+1)}},{key:"_moveLeft",value:function(e,t,n,i){for(var r=t.length>1,o=[],a=0,l=t.length;a<l;a++){var c=t[a],d=r||!c.viewState.hasSelection(),h=u.o.moveLeft(e.cursorConfig,e,c.viewState,n,i);if(d&&1===i&&c.viewState.position.column===e.getLineMinColumn(c.viewState.position.lineNumber)&&h.position.lineNumber!==c.viewState.position.lineNumber)e.coordinatesConverter.convertViewPositionToModelPosition(h.position).lineNumber===c.modelState.position.lineNumber&&(h=u.o.moveLeft(e.cursorConfig,e,h,n,1));o[a]=s.Vi.fromViewState(h)}return o}},{key:"_moveHalfLineLeft",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],l=a.viewState.position.lineNumber,c=Math.round(e.getLineContent(l).length/2);i[r]=s.Vi.fromViewState(u.o.moveLeft(e.cursorConfig,e,a.viewState,n,c))}return i}},{key:"_moveRight",value:function(e,t,n,i){for(var r=t.length>1,o=[],a=0,l=t.length;a<l;a++){var c=t[a],d=r||!c.viewState.hasSelection(),h=u.o.moveRight(e.cursorConfig,e,c.viewState,n,i);if(d&&1===i&&c.viewState.position.column===e.getLineMaxColumn(c.viewState.position.lineNumber)&&h.position.lineNumber!==c.viewState.position.lineNumber)e.coordinatesConverter.convertViewPositionToModelPosition(h.position).lineNumber===c.modelState.position.lineNumber&&(h=u.o.moveRight(e.cursorConfig,e,h,n,1));o[a]=s.Vi.fromViewState(h)}return o}},{key:"_moveHalfLineRight",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],l=a.viewState.position.lineNumber,c=Math.round(e.getLineContent(l).length/2);i[r]=s.Vi.fromViewState(u.o.moveRight(e.cursorConfig,e,a.viewState,n,c))}return i}},{key:"_moveDownByViewLines",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var l=t[o];r[o]=s.Vi.fromViewState(u.o.moveDown(e.cursorConfig,e,l.viewState,n,i))}return r}},{key:"_moveDownByModelLines",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var l=t[o];r[o]=s.Vi.fromModelState(u.o.moveDown(e.cursorConfig,e.model,l.modelState,n,i))}return r}},{key:"_moveUpByViewLines",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var l=t[o];r[o]=s.Vi.fromViewState(u.o.moveUp(e.cursorConfig,e,l.viewState,n,i))}return r}},{key:"_moveUpByModelLines",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var l=t[o];r[o]=s.Vi.fromModelState(u.o.moveUp(e.cursorConfig,e.model,l.modelState,n,i))}return r}},{key:"_moveToViewPosition",value:function(e,t,n,i,r){return s.Vi.fromViewState(t.viewState.move(n,i,r,0))}},{key:"_moveToModelPosition",value:function(e,t,n,i,r){return s.Vi.fromModelState(t.modelState.move(n,i,r,0))}},{key:"_moveToViewMinColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=e.getLineMinColumn(s);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}},{key:"_moveToViewFirstNonWhitespaceColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=e.getLineFirstNonWhitespaceColumn(s);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}},{key:"_moveToViewCenterColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=Math.round((e.getLineMaxColumn(s)+e.getLineMinColumn(s))/2);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}},{key:"_moveToViewMaxColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=e.getLineMaxColumn(s);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}},{key:"_moveToViewLastNonWhitespaceColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=e.getLineLastNonWhitespaceColumn(s);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}}]),e}();!function(e){e.description={description:"Move cursor to a logical position in the view",args:[{name:"Cursor move argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t",constraint:function(e){if(!a.Kn(e))return!1;var t=e;return!!a.HD(t.to)&&(!(!a.o8(t.select)&&!a.jn(t.select))&&(!(!a.o8(t.by)&&!a.HD(t.by))&&!(!a.o8(t.value)&&!a.hj(t.value))))},schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["left","right","up","down","prevBlankLine","nextBlankLine","wrappedLineStart","wrappedLineEnd","wrappedLineColumnCenter","wrappedLineFirstNonWhitespaceCharacter","wrappedLineLastNonWhitespaceCharacter","viewPortTop","viewPortCenter","viewPortBottom","viewPortIfOutside"]},by:{type:"string",enum:["line","wrappedLine","character","halfLine"]},value:{type:"number",default:1},select:{type:"boolean",default:!1}}}}]},e.RawDirection={Left:"left",Right:"right",Up:"up",Down:"down",PrevBlankLine:"prevBlankLine",NextBlankLine:"nextBlankLine",WrappedLineStart:"wrappedLineStart",WrappedLineFirstNonWhitespaceCharacter:"wrappedLineFirstNonWhitespaceCharacter",WrappedLineColumnCenter:"wrappedLineColumnCenter",WrappedLineEnd:"wrappedLineEnd",WrappedLineLastNonWhitespaceCharacter:"wrappedLineLastNonWhitespaceCharacter",ViewPortTop:"viewPortTop",ViewPortCenter:"viewPortCenter",ViewPortBottom:"viewPortBottom",ViewPortIfOutside:"viewPortIfOutside"},e.RawUnit={Line:"line",WrappedLine:"wrappedLine",Character:"character",HalfLine:"halfLine"},e.parse=function(t){if(!t.to)return null;var n;switch(t.to){case e.RawDirection.Left:n=0;break;case e.RawDirection.Right:n=1;break;case e.RawDirection.Up:n=2;break;case e.RawDirection.Down:n=3;break;case e.RawDirection.PrevBlankLine:n=4;break;case e.RawDirection.NextBlankLine:n=5;break;case e.RawDirection.WrappedLineStart:n=6;break;case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter:n=7;break;case e.RawDirection.WrappedLineColumnCenter:n=8;break;case e.RawDirection.WrappedLineEnd:n=9;break;case e.RawDirection.WrappedLineLastNonWhitespaceCharacter:n=10;break;case e.RawDirection.ViewPortTop:n=11;break;case e.RawDirection.ViewPortBottom:n=13;break;case e.RawDirection.ViewPortCenter:n=12;break;case e.RawDirection.ViewPortIfOutside:n=14;break;default:return null}var i=0;switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Character:i=3;break;case e.RawUnit.HalfLine:i=4}return{direction:n,unit:i,select:!!t.select,value:t.value||1}}}(i||(i={}))},15432:function(e,t,n){"use strict";n.d(t,{o:function(){return d}});var i=n(43144),r=n(15671),o=n(16274),a=n(67297),s=n(67033),u=n(51747),l=n(86036),c=(0,i.Z)((function e(t,n,i){(0,r.Z)(this,e),this.lineNumber=t,this.column=n,this.leftoverVisibleColumns=i})),d=function(){function e(){(0,r.Z)(this,e)}return(0,i.Z)(e,null,[{key:"leftPosition",value:function(e,t,n){return n>e.getLineMinColumn(t)?n-=u.HO(e.getLineContent(t),n-1):t>1&&(t-=1,n=e.getLineMaxColumn(t)),new a.L(t,n)}},{key:"leftPositionAtomicSoftTabs",value:function(e,t,n,i){var r=e.getLineMinColumn(t),o=e.getLineContent(t),s=l.l.atomicPosition(o,n-1,i,0);return-1===s||s+1<r?this.leftPosition(e,t,n):new a.L(t,s+1)}},{key:"left",value:function(t,n,i,r){var o=t.stickyTabStops?e.leftPositionAtomicSoftTabs(n,i,r,t.tabSize):e.leftPosition(n,i,r);return new c(o.lineNumber,o.column,0)}},{key:"moveLeft",value:function(t,n,i,r,o){var a,s;if(i.hasSelection()&&!r)a=i.selection.startLineNumber,s=i.selection.startColumn;else{var u=e.left(t,n,i.position.lineNumber,i.position.column-(o-1));a=u.lineNumber,s=u.column}return i.move(r,a,s,0)}},{key:"rightPosition",value:function(e,t,n){return n<e.getLineMaxColumn(t)?n+=u.vH(e.getLineContent(t),n-1):t<e.getLineCount()&&(t+=1,n=e.getLineMinColumn(t)),new a.L(t,n)}},{key:"rightPositionAtomicSoftTabs",value:function(e,t,n,i,r){var o=e.getLineContent(t),s=l.l.atomicPosition(o,n-1,i,1);return-1===s?this.rightPosition(e,t,n):new a.L(t,s+1)}},{key:"right",value:function(t,n,i,r){var o=t.stickyTabStops?e.rightPositionAtomicSoftTabs(n,i,r,t.tabSize,t.indentSize):e.rightPosition(n,i,r);return new c(o.lineNumber,o.column,0)}},{key:"moveRight",value:function(t,n,i,r,o){var a,s;if(i.hasSelection()&&!r)a=i.selection.endLineNumber,s=i.selection.endColumn;else{var u=e.right(t,n,i.position.lineNumber,i.position.column+(o-1));a=u.lineNumber,s=u.column}return i.move(r,a,s,0)}},{key:"down",value:function(e,t,n,i,r,a,s){var u=o.io.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize)+r,l=t.getLineCount(),d=n===l&&i===t.getLineMaxColumn(n);return(n+=a)>l?(n=l,i=s?t.getLineMaxColumn(n):Math.min(t.getLineMaxColumn(n),i)):i=o.io.columnFromVisibleColumn2(e,t,n,u),r=d?0:u-o.io.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize),new c(n,i,r)}},{key:"moveDown",value:function(t,n,i,r,o){var a,s;i.hasSelection()&&!r?(a=i.selection.endLineNumber,s=i.selection.endColumn):(a=i.position.lineNumber,s=i.position.column);var u=e.down(t,n,a,s,i.leftoverVisibleColumns,o,!0);return i.move(r,u.lineNumber,u.column,u.leftoverVisibleColumns)}},{key:"translateDown",value:function(t,n,i){var r=i.selection,u=e.down(t,n,r.selectionStartLineNumber,r.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),l=e.down(t,n,r.positionLineNumber,r.positionColumn,i.leftoverVisibleColumns,1,!1);return new o.rS(new s.e(u.lineNumber,u.column,u.lineNumber,u.column),u.leftoverVisibleColumns,new a.L(l.lineNumber,l.column),l.leftoverVisibleColumns)}},{key:"up",value:function(e,t,n,i,r,a,s){var u=o.io.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize)+r,l=1===n&&1===i;return(n-=a)<1?(n=1,i=s?t.getLineMinColumn(n):Math.min(t.getLineMaxColumn(n),i)):i=o.io.columnFromVisibleColumn2(e,t,n,u),r=l?0:u-o.io.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize),new c(n,i,r)}},{key:"moveUp",value:function(t,n,i,r,o){var a,s;i.hasSelection()&&!r?(a=i.selection.startLineNumber,s=i.selection.startColumn):(a=i.position.lineNumber,s=i.position.column);var u=e.up(t,n,a,s,i.leftoverVisibleColumns,o,!0);return i.move(r,u.lineNumber,u.column,u.leftoverVisibleColumns)}},{key:"translateUp",value:function(t,n,i){var r=i.selection,u=e.up(t,n,r.selectionStartLineNumber,r.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),l=e.up(t,n,r.positionLineNumber,r.positionColumn,i.leftoverVisibleColumns,1,!1);return new o.rS(new s.e(u.lineNumber,u.column,u.lineNumber,u.column),u.leftoverVisibleColumns,new a.L(l.lineNumber,l.column),l.leftoverVisibleColumns)}},{key:"_isBlankLine",value:function(e,t){return 0===e.getLineFirstNonWhitespaceColumn(t)}},{key:"moveToPrevBlankLine",value:function(e,t,n,i){for(var r=n.position.lineNumber;r>1&&this._isBlankLine(t,r);)r--;for(;r>1&&!this._isBlankLine(t,r);)r--;return n.move(i,r,t.getLineMinColumn(r),0)}},{key:"moveToNextBlankLine",value:function(e,t,n,i){for(var r=t.getLineCount(),o=n.position.lineNumber;o<r&&this._isBlankLine(t,o);)o++;for(;o<r&&!this._isBlankLine(t,o);)o++;return n.move(i,o,t.getLineMinColumn(o),0)}},{key:"moveToBeginningOfLine",value:function(e,t,n,i){var r,o=n.position.lineNumber,a=t.getLineMinColumn(o),s=t.getLineFirstNonWhitespaceColumn(o)||a;return r=n.position.column===s?a:s,n.move(i,o,r,0)}},{key:"moveToEndOfLine",value:function(e,t,n,i,r){var o=n.position.lineNumber,a=t.getLineMaxColumn(o);return n.move(i,o,a,r?1073741824-a:0)}},{key:"moveToBeginningOfBuffer",value:function(e,t,n,i){return n.move(i,1,1,0)}},{key:"moveToEndOfBuffer",value:function(e,t,n,i){var r=t.getLineCount(),o=t.getLineMaxColumn(r);return n.move(i,r,o,0)}}]),e}()},22268:function(e,t,n){"use strict";n.d(t,{u:function(){return w},g:function(){return C}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(37762),u=n(15671),l=n(43144),c=n(8729),d=n(51747),h=n(97033),f=n(83),p=n(67033),g=n(74964),v=function(){function e(t,n,i){(0,u.Z)(this,e),this._range=t,this._charBeforeSelection=n,this._charAfterSelection=i}return(0,l.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(new p.e(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new p.e(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations(),i=n[0].range,r=n[1].range;return new g.Y(i.endLineNumber,i.endColumn,r.endLineNumber,r.endColumn-this._charAfterSelection.length)}}]),e}(),m=n(16274),_=n(20937),y=n(7273),b=n(65262),w=function(){function e(){(0,u.Z)(this,e)}return(0,l.Z)(e,null,[{key:"indent",value:function(e,t,n){if(null===t||null===n)return[];for(var i=[],r=0,o=n.length;r<o;r++)i[r]=new f.U(n[r],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent});return i}},{key:"outdent",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++)i[r]=new f.U(n[r],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent});return i}},{key:"shiftIndent",value:function(e,t,n){return n=n||1,f.U.shiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)}},{key:"unshiftIndent",value:function(e,t,n){return n=n||1,f.U.unshiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)}},{key:"_distributedPaste",value:function(e,t,n,i){for(var r=[],o=0,a=n.length;o<a;o++)r[o]=new h.T4(n[o],i[o]);return new m.Tp(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}},{key:"_simplePaste",value:function(e,t,n,i,r){for(var o=[],a=0,s=n.length;a<s;a++){var u=n[a],l=u.getPosition();if(r&&!u.isEmpty()&&(r=!1),r&&i.indexOf("\n")!==i.length-1&&(r=!1),r){var c=new p.e(l.lineNumber,1,l.lineNumber,1);o[a]=new h.hP(c,i,u,!0)}else o[a]=new h.T4(u,i)}return new m.Tp(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}},{key:"_distributePasteToCursors",value:function(e,t,n,i,r){if(i)return null;if(1===t.length)return null;if(r&&r.length===t.length)return r;if("spread"===e.multiCursorPaste){10===n.charCodeAt(n.length-1)&&(n=n.substr(0,n.length-1)),13===n.charCodeAt(n.length-1)&&(n=n.substr(0,n.length-1));var o=d.uq(n);if(o.length===t.length)return o}return null}},{key:"paste",value:function(e,t,n,i,r,o){var a=this._distributePasteToCursors(e,n,i,r,o);return a?(n=n.sort(p.e.compareRangesUsingStarts),this._distributedPaste(e,t,n,a)):this._simplePaste(e,t,n,i,r)}},{key:"_goodIndentForLine",value:function(t,n,i){var r=null,o="",a=b.zu.getInheritIndentForLine(t.autoIndent,n,i,!1);if(a)r=a.action,o=a.indentation;else if(i>1){var s;for(s=i-1;s>=1;s--){var u=n.getLineContent(s);if(d.ow(u)>=0)break}if(s<1)return null;var l=n.getLineMaxColumn(s),c=b.zu.getEnterAction(t.autoIndent,n,new p.e(s,l,s,l));c&&(o=c.indentation+c.appendText)}return r&&(r===y.wU.Indent&&(o=e.shiftIndent(t,o)),r===y.wU.Outdent&&(o=e.unshiftIndent(t,o)),o=t.normalizeIndentation(o)),o||null}},{key:"_replaceJumpToNextIndent",value:function(e,t,n,i){var r="",o=n.getStartPosition();if(e.insertSpaces)for(var a=m.io.visibleColumnFromColumn2(e,t,o),s=e.indentSize,u=s-a%s,l=0;l<u;l++)r+=" ";else r="\t";return new h.T4(n,r,i)}},{key:"tab",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r];if(a.isEmpty()){var s=t.getLineContent(a.startLineNumber);if(/^\s*$/.test(s)&&t.isCheapToTokenize(a.startLineNumber)){var u=this._goodIndentForLine(e,t,a.startLineNumber);u=u||"\t";var l=e.normalizeIndentation(u);if(!s.startsWith(l)){i[r]=new h.T4(new p.e(a.startLineNumber,1,a.startLineNumber,s.length+1),l,!0);continue}}i[r]=this._replaceJumpToNextIndent(e,t,a,!0)}else{if(a.startLineNumber===a.endLineNumber){var c=t.getLineMaxColumn(a.startLineNumber);if(1!==a.startColumn||a.endColumn!==c){i[r]=this._replaceJumpToNextIndent(e,t,a,!1);continue}}i[r]=new f.U(a,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent})}}return i}},{key:"compositionType",value:function(e,t,n,i,r,o,a,s){var u=this,l=i.map((function(e){return u._compositionType(n,e,r,o,a,s)}));return new m.Tp(1,l,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})}},{key:"_compositionType",value:function(e,t,n,i,r,o){if(!t.isEmpty())return null;var a=t.getPosition(),s=Math.max(1,a.column-i),u=Math.min(e.getLineMaxColumn(a.lineNumber),a.column+r),l=new p.e(a.lineNumber,s,a.lineNumber,u);return e.getValueInRange(l)===n&&0===o?null:new h.Uo(l,n,0,o)}},{key:"_typeCommand",value:function(e,t,n){return n?new h.Sj(e,t,!0):new h.T4(e,t,!0)}},{key:"_enter",value:function(t,n,i,r){if(0===t.autoIndent)return e._typeCommand(r,"\n",i);if(!n.isCheapToTokenize(r.getStartPosition().lineNumber)||1===t.autoIndent){var o=n.getLineContent(r.startLineNumber),a=d.V8(o).substring(0,r.startColumn-1);return e._typeCommand(r,"\n"+t.normalizeIndentation(a),i)}var s=b.zu.getEnterAction(t.autoIndent,n,r);if(s){if(s.indentAction===y.wU.None)return e._typeCommand(r,"\n"+t.normalizeIndentation(s.indentation+s.appendText),i);if(s.indentAction===y.wU.Indent)return e._typeCommand(r,"\n"+t.normalizeIndentation(s.indentation+s.appendText),i);if(s.indentAction===y.wU.IndentOutdent){var u=t.normalizeIndentation(s.indentation),l=t.normalizeIndentation(s.indentation+s.appendText),c="\n"+l+"\n"+u;return i?new h.Sj(r,c,!0):new h.Uo(r,c,-1,l.length-u.length,!0)}if(s.indentAction===y.wU.Outdent){var f=e.unshiftIndent(t,s.indentation);return e._typeCommand(r,"\n"+t.normalizeIndentation(f+s.appendText),i)}}var p=n.getLineContent(r.startLineNumber),g=d.V8(p).substring(0,r.startColumn-1);if(t.autoIndent>=4){var v=b.zu.getIndentForEnter(t.autoIndent,n,r,{unshiftIndent:function(n){return e.unshiftIndent(t,n)},shiftIndent:function(n){return e.shiftIndent(t,n)},normalizeIndentation:function(e){return t.normalizeIndentation(e)}});if(v){var _=m.io.visibleColumnFromColumn2(t,n,r.getEndPosition()),w=r.endColumn,C=n.getLineContent(r.endLineNumber),k=d.LC(C);if(r=k>=0?r.setEndPosition(r.endLineNumber,Math.max(r.endColumn,k+1)):r.setEndPosition(r.endLineNumber,n.getLineMaxColumn(r.endLineNumber)),i)return new h.Sj(r,"\n"+t.normalizeIndentation(v.afterEnter),!0);var S=0;return w<=k+1&&(t.insertSpaces||(_=Math.ceil(_/t.indentSize)),S=Math.min(_+1-t.normalizeIndentation(v.afterEnter).length-1,0)),new h.Uo(r,"\n"+t.normalizeIndentation(v.afterEnter),0,S,!0)}}return e._typeCommand(r,"\n"+t.normalizeIndentation(g),i)}},{key:"_isAutoIndentType",value:function(e,t,n){if(e.autoIndent<4)return!1;for(var i=0,r=n.length;i<r;i++)if(!t.isCheapToTokenize(n[i].getEndPosition().lineNumber))return!1;return!0}},{key:"_runAutoIndentType",value:function(t,n,i,r){var o=b.zu.getIndentationAtPosition(n,i.startLineNumber,i.startColumn),a=b.zu.getIndentActionForType(t.autoIndent,n,i,r,{shiftIndent:function(n){return e.shiftIndent(t,n)},unshiftIndent:function(n){return e.unshiftIndent(t,n)}});if(null===a)return null;if(a!==t.normalizeIndentation(o)){var s=n.getLineFirstNonWhitespaceColumn(i.startLineNumber);return 0===s?e._typeCommand(new p.e(i.startLineNumber,1,i.endLineNumber,i.endColumn),t.normalizeIndentation(a)+r,!1):e._typeCommand(new p.e(i.startLineNumber,1,i.endLineNumber,i.endColumn),t.normalizeIndentation(a)+n.getLineContent(i.startLineNumber).substring(s-1,i.startColumn-1)+r,!1)}return null}},{key:"_isAutoClosingOvertype",value:function(e,t,n,i,r){if("never"===e.autoClosingOvertype)return!1;if(!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(r))return!1;for(var o=0,a=n.length;o<a;o++){var s=n[o];if(!s.isEmpty())return!1;var u=s.getPosition(),l=t.getLineContent(u.lineNumber);if(l.charAt(u.column-1)!==r)return!1;var c=(0,m.LN)(r);if(92===(u.column>2?l.charCodeAt(u.column-2):0)&&c)return!1;if("auto"===e.autoClosingOvertype){for(var d=!1,h=0,f=i.length;h<f;h++){var p=i[h];if(u.lineNumber===p.startLineNumber&&u.column===p.startColumn){d=!0;break}}if(!d)return!1}}return!0}},{key:"_runAutoClosingOvertype",value:function(e,t,n,i,r){for(var o=[],a=0,s=i.length;a<s;a++){var u=i[a].getPosition(),l=new p.e(u.lineNumber,u.column,u.lineNumber,u.column+1);o[a]=new h.T4(l,r)}return new m.Tp(1,o,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})}},{key:"_isBeforeClosingBrace",value:function(e,t){var n=t.charAt(0),i=e.autoClosingPairs.autoClosingPairsOpenByStart.get(n)||[],r=e.autoClosingPairs.autoClosingPairsCloseByStart.get(n)||[],o=i.some((function(e){return t.startsWith(e.open)})),a=r.some((function(e){return t.startsWith(e.close)}));return!o&&a}},{key:"_findAutoClosingPairOpen",value:function(e,t,n,i){var r=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(i);if(!r)return null;var o,a=null,u=(0,s.Z)(r);try{for(u.s();!(o=u.n()).done;){var l=o.value;if(null===a||l.open.length>a.open.length){var c,d=!0,h=(0,s.Z)(n);try{for(h.s();!(c=h.n()).done;){var f=c.value;if(t.getValueInRange(new p.e(f.lineNumber,f.column-l.open.length+1,f.lineNumber,f.column))+i!==l.open){d=!1;break}}}catch(g){h.e(g)}finally{h.f()}d&&(a=l)}}}catch(g){u.e(g)}finally{u.f()}return a}},{key:"_findSubAutoClosingPairClose",value:function(e,t){if(t.open.length<=1)return"";var n,i=t.close.charAt(t.close.length-1),r=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[],o=null,a=(0,s.Z)(r);try{for(a.s();!(n=a.n()).done;){var u=n.value;u.open!==t.open&&t.open.includes(u.open)&&t.close.endsWith(u.close)&&(!o||u.open.length>o.open.length)&&(o=u)}}catch(l){a.e(l)}finally{a.f()}return o?o.close:""}},{key:"_getAutoClosingPairClose",value:function(t,n,i,r,o){var a=(0,m.LN)(r),s=a?t.autoClosingQuotes:t.autoClosingBrackets;if("never"===s)return null;var u=this._findAutoClosingPairOpen(t,n,i.map((function(e){return e.getPosition()})),r);if(!u)return null;for(var l=this._findSubAutoClosingPairClose(t,u),d=!0,h=a?t.shouldAutoCloseBefore.quote:t.shouldAutoCloseBefore.bracket,f=0,p=i.length;f<p;f++){var g=i[f];if(!g.isEmpty())return null;var v=g.getPosition(),y=n.getLineContent(v.lineNumber),w=y.substring(v.column-1);if(w.startsWith(l)||(d=!1),y.length>v.column-1){var C=y.charAt(v.column-1);if(!e._isBeforeClosingBrace(t,w)&&!h(C))return null}if(!n.isCheapToTokenize(v.lineNumber))return null;if(1===u.open.length&&a&&"always"!==s){var k=(0,_.u)(t.wordSeparators);if(o&&v.column>1&&0===k.get(y.charCodeAt(v.column-2)))return null;if(!o&&v.column>2&&0===k.get(y.charCodeAt(v.column-3)))return null}n.forceTokenization(v.lineNumber);var S=n.getLineTokens(v.lineNumber),x=!1;try{x=b.zu.shouldAutoClosePair(u,S,o?v.column:v.column-1)}catch(L){(0,c.dL)(L)}if(!x)return null}return d?u.close.substring(0,u.close.length-l.length):u.close}},{key:"_runAutoClosingOpenCharType",value:function(e,t,n,i,r,o,a){for(var s=[],u=0,l=i.length;u<l;u++){var c=i[u];s[u]=new C(c,r,o,a)}return new m.Tp(1,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}},{key:"_shouldSurroundChar",value:function(e,t){return(0,m.LN)(t)?"quotes"===e.autoSurround||"languageDefined"===e.autoSurround:"brackets"===e.autoSurround||"languageDefined"===e.autoSurround}},{key:"_isSurroundSelectionType",value:function(t,n,i,r){if(!e._shouldSurroundChar(t,r)||!t.surroundingPairs.hasOwnProperty(r))return!1;for(var o=(0,m.LN)(r),a=0,s=i.length;a<s;a++){var u=i[a];if(u.isEmpty())return!1;for(var l=!0,c=u.startLineNumber;c<=u.endLineNumber;c++){var d=n.getLineContent(c),h=c===u.startLineNumber?u.startColumn-1:0,f=c===u.endLineNumber?u.endColumn-1:d.length,p=d.substring(h,f);if(/[^ \t]/.test(p)){l=!1;break}}if(l)return!1;if(o&&u.startLineNumber===u.endLineNumber&&u.startColumn+1===u.endColumn){var g=n.getValueInRange(u);if((0,m.LN)(g))return!1}}return!0}},{key:"_runSurroundSelectionType",value:function(e,t,n,i,r){for(var o=[],a=0,s=i.length;a<s;a++){var u=i[a],l=t.surroundingPairs[r];o[a]=new v(u,r,l)}return new m.Tp(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}},{key:"_isTypeInterceptorElectricChar",value:function(e,t,n){return!(1!==n.length||!t.isCheapToTokenize(n[0].getEndPosition().lineNumber))}},{key:"_typeInterceptorElectricChar",value:function(e,t,n,i,r){if(!t.electricChars.hasOwnProperty(r)||!i.isEmpty())return null;var o=i.getPosition();n.forceTokenization(o.lineNumber);var a,s=n.getLineTokens(o.lineNumber);try{a=b.zu.onElectricCharacter(r,s,o.column)}catch(S){return(0,c.dL)(S),null}if(!a)return null;if(a.matchOpenBracket){var u=(s.getLineContent()+r).lastIndexOf(a.matchOpenBracket)+1,l=n.findMatchingBracketUp(a.matchOpenBracket,{lineNumber:o.lineNumber,column:u});if(l){if(l.startLineNumber===o.lineNumber)return null;var f=n.getLineContent(l.startLineNumber),g=d.V8(f),v=t.normalizeIndentation(g),_=n.getLineContent(o.lineNumber),y=n.getLineFirstNonWhitespaceColumn(o.lineNumber)||o.column,w=v+_.substring(y-1,o.column-1)+r,C=new p.e(o.lineNumber,1,o.lineNumber,o.column),k=new h.T4(C,w);return new m.Tp(1,[k],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null}},{key:"compositionEndWithInterceptors",value:function(e,t,n,i,r,o){if(!i||g.Y.selectionsArrEqual(i,r))return null;var a,u=null,l=(0,s.Z)(r);try{for(l.s();!(a=l.n()).done;){var c=a.value;if(!c.isEmpty())return null;var d=c.getPosition(),f=n.getValueInRange(new p.e(d.lineNumber,d.column-1,d.lineNumber,d.column));if(null===u)u=f;else if(u!==f)return null}}catch(y){l.e(y)}finally{l.f()}if(!u)return null;if(this._isAutoClosingOvertype(t,n,r,o,u)){var v=r.map((function(e){return new h.T4(new p.e(e.positionLineNumber,e.positionColumn,e.positionLineNumber,e.positionColumn+1),"",!1)}));return new m.Tp(1,v,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}var _=this._getAutoClosingPairClose(t,n,r,u,!1);return null!==_?this._runAutoClosingOpenCharType(e,t,n,r,u,!1,_):null}},{key:"typeWithInterceptors",value:function(t,n,i,r,o,a,s){if(!t&&"\n"===s){for(var u=[],l=0,c=o.length;l<c;l++)u[l]=e._enter(i,r,!1,o[l]);return new m.Tp(1,u,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(!t&&this._isAutoIndentType(i,r,o)){for(var d=[],f=!1,p=0,g=o.length;p<g;p++)if(d[p]=this._runAutoIndentType(i,r,o[p],s),!d[p]){f=!0;break}if(!f)return new m.Tp(1,d,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(!t&&this._isAutoClosingOvertype(i,r,o,a,s))return this._runAutoClosingOvertype(n,i,r,o,s);if(!t){var v=this._getAutoClosingPairClose(i,r,o,s,!0);if(v)return this._runAutoClosingOpenCharType(n,i,r,o,s,!0,v)}if(this._isSurroundSelectionType(i,r,o,s))return this._runSurroundSelectionType(n,i,r,o,s);if(!t&&this._isTypeInterceptorElectricChar(i,r,o)){var _=this._typeInterceptorElectricChar(n,i,r,o[0],s);if(_)return _}for(var y=[],b=0,w=o.length;b<w;b++)y[b]=new h.T4(o[b],s);var C=1!==n;return" "===s&&(C=!0),new m.Tp(1,y,{shouldPushStackElementBefore:C,shouldPushStackElementAfter:!1})}},{key:"typeWithoutInterceptors",value:function(e,t,n,i,r){for(var o=[],a=0,s=i.length;a<s;a++)o[a]=new h.T4(i[a],r);return new m.Tp(1,o,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})}},{key:"lineInsertBefore",value:function(e,t,n){if(null===t||null===n)return[];for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r].positionLineNumber;if(1===a)i[r]=new h.Sj(new p.e(1,1,1,1),"\n");else{a--;var s=t.getLineMaxColumn(a);i[r]=this._enter(e,t,!1,new p.e(a,s,a,s))}}return i}},{key:"lineInsertAfter",value:function(e,t,n){if(null===t||null===n)return[];for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r].positionLineNumber,s=t.getLineMaxColumn(a);i[r]=this._enter(e,t,!1,new p.e(a,s,a,s))}return i}},{key:"lineBreakInsert",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++)i[r]=this._enter(e,t,!0,n[r]);return i}}]),e}(),C=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r,o){var a;return(0,u.Z)(this,n),(a=t.call(this,e,(r?i:"")+o,0,-o.length))._openCharacter=i,a._closeCharacter=o,a.closeCharacterRange=null,a.enclosingRange=null,a}return(0,l.Z)(n,[{key:"computeCursorState",value:function(e,t){var o=t.getInverseEditOperations()[0].range;return this.closeCharacterRange=new p.e(o.startLineNumber,o.endColumn-this._closeCharacter.length,o.endLineNumber,o.endColumn),this.enclosingRange=new p.e(o.startLineNumber,o.endColumn-this._openCharacter.length-this._closeCharacter.length,o.endLineNumber,o.endColumn),(0,i.Z)((0,r.Z)(n.prototype),"computeCursorState",this).call(this,e,t)}}]),n}(h.Uo)},86441:function(e,t,n){"use strict";n.d(t,{L:function(){return p},w:function(){return f}});var i=n(60136),r=n(29388),o=n(15671),a=n(43144),s=n(51747),u=n(16274),l=n(39765),c=n(20937),d=n(67297),h=n(67033),f=function(){function e(){(0,o.Z)(this,e)}return(0,a.Z)(e,null,[{key:"_createWord",value:function(e,t,n,i,r){return{start:i,end:r,wordType:t,nextCharClass:n}}},{key:"_findPreviousWordOnLine",value:function(e,t,n){var i=t.getLineContent(n.lineNumber);return this._doFindPreviousWordOnLine(i,e,n)}},{key:"_doFindPreviousWordOnLine",value:function(e,t,n){for(var i=0,r=n.column-2;r>=0;r--){var o=e.charCodeAt(r),a=t.get(o);if(0===a){if(2===i)return this._createWord(e,i,a,r+1,this._findEndOfWord(e,t,i,r+1));i=1}else if(2===a){if(1===i)return this._createWord(e,i,a,r+1,this._findEndOfWord(e,t,i,r+1));i=2}else if(1===a&&0!==i)return this._createWord(e,i,a,r+1,this._findEndOfWord(e,t,i,r+1))}return 0!==i?this._createWord(e,i,1,0,this._findEndOfWord(e,t,i,0)):null}},{key:"_findEndOfWord",value:function(e,t,n,i){for(var r=e.length,o=i;o<r;o++){var a=e.charCodeAt(o),s=t.get(a);if(1===s)return o;if(1===n&&2===s)return o;if(2===n&&0===s)return o}return r}},{key:"_findNextWordOnLine",value:function(e,t,n){var i=t.getLineContent(n.lineNumber);return this._doFindNextWordOnLine(i,e,n)}},{key:"_doFindNextWordOnLine",value:function(e,t,n){for(var i=0,r=e.length,o=n.column-1;o<r;o++){var a=e.charCodeAt(o),s=t.get(a);if(0===s){if(2===i)return this._createWord(e,i,s,this._findStartOfWord(e,t,i,o-1),o);i=1}else if(2===s){if(1===i)return this._createWord(e,i,s,this._findStartOfWord(e,t,i,o-1),o);i=2}else if(1===s&&0!==i)return this._createWord(e,i,s,this._findStartOfWord(e,t,i,o-1),o)}return 0!==i?this._createWord(e,i,1,this._findStartOfWord(e,t,i,r-1),r):null}},{key:"_findStartOfWord",value:function(e,t,n,i){for(var r=i;r>=0;r--){var o=e.charCodeAt(r),a=t.get(o);if(1===a)return r+1;if(1===n&&2===a)return r+1;if(2===n&&0===a)return r+1}return 0}},{key:"moveWordLeft",value:function(t,n,i,r){var o=i.lineNumber,a=i.column;1===a&&o>1&&(o-=1,a=n.getLineMaxColumn(o));var s=e._findPreviousWordOnLine(t,n,new d.L(o,a));if(0===r)return new d.L(o,s?s.start+1:1);if(1===r)return s&&2===s.wordType&&s.end-s.start===1&&0===s.nextCharClass&&(s=e._findPreviousWordOnLine(t,n,new d.L(o,s.start+1))),new d.L(o,s?s.start+1:1);if(3===r){for(;s&&2===s.wordType;)s=e._findPreviousWordOnLine(t,n,new d.L(o,s.start+1));return new d.L(o,s?s.start+1:1)}return s&&a<=s.end+1&&(s=e._findPreviousWordOnLine(t,n,new d.L(o,s.start+1))),new d.L(o,s?s.end+1:1)}},{key:"_moveWordPartLeft",value:function(e,t){var n=t.lineNumber,i=e.getLineMaxColumn(n);if(1===t.column)return n>1?new d.L(n-1,e.getLineMaxColumn(n-1)):t;for(var r=e.getLineContent(n),o=t.column-1;o>1;o--){var a=r.charCodeAt(o-2),u=r.charCodeAt(o-1);if(95===a&&95!==u)return new d.L(n,o);if(s.mK(a)&&s.df(u))return new d.L(n,o);if(s.df(a)&&s.df(u)&&o+1<i){var l=r.charCodeAt(o);if(s.mK(l))return new d.L(n,o)}}return new d.L(n,1)}},{key:"moveWordRight",value:function(t,n,i,r){var o=i.lineNumber,a=i.column,s=!1;a===n.getLineMaxColumn(o)&&o<n.getLineCount()&&(s=!0,o+=1,a=1);var u=e._findNextWordOnLine(t,n,new d.L(o,a));if(2===r)u&&2===u.wordType&&u.end-u.start===1&&0===u.nextCharClass&&(u=e._findNextWordOnLine(t,n,new d.L(o,u.end+1))),a=u?u.end+1:n.getLineMaxColumn(o);else if(3===r){for(s&&(a=0);u&&(2===u.wordType||u.start+1<=a);)u=e._findNextWordOnLine(t,n,new d.L(o,u.end+1));a=u?u.start+1:n.getLineMaxColumn(o)}else u&&!s&&a>=u.start+1&&(u=e._findNextWordOnLine(t,n,new d.L(o,u.end+1))),a=u?u.start+1:n.getLineMaxColumn(o);return new d.L(o,a)}},{key:"_moveWordPartRight",value:function(e,t){var n=t.lineNumber,i=e.getLineMaxColumn(n);if(t.column===i)return n<e.getLineCount()?new d.L(n+1,1):t;for(var r=e.getLineContent(n),o=t.column+1;o<i;o++){var a=r.charCodeAt(o-2),u=r.charCodeAt(o-1);if(95!==a&&95===u)return new d.L(n,o);if(s.mK(a)&&s.df(u))return new d.L(n,o);if(s.df(a)&&s.df(u)&&o+1<i){var l=r.charCodeAt(o);if(s.mK(l))return new d.L(n,o)}}return new d.L(n,i)}},{key:"_deleteWordLeftWhitespace",value:function(e,t){var n=e.getLineContent(t.lineNumber),i=t.column-2,r=s.ow(n,i);return r+1<i?new h.e(t.lineNumber,r+2,t.lineNumber,t.column):null}},{key:"deleteWordLeft",value:function(t,n){var i=t.wordSeparators,r=t.model,o=t.selection,a=t.whitespaceHeuristics;if(!o.isEmpty())return o;if(l.A.isAutoClosingPairDelete(t.autoClosingDelete,t.autoClosingBrackets,t.autoClosingQuotes,t.autoClosingPairs.autoClosingPairsOpenByEnd,t.model,[t.selection],t.autoClosedCharacters)){var s=t.selection.getPosition();return new h.e(s.lineNumber,s.column-1,s.lineNumber,s.column+1)}var u=new d.L(o.positionLineNumber,o.positionColumn),c=u.lineNumber,f=u.column;if(1===c&&1===f)return null;if(a){var p=this._deleteWordLeftWhitespace(r,u);if(p)return p}var g=e._findPreviousWordOnLine(i,r,u);return 0===n?g?f=g.start+1:f>1?f=1:(c--,f=r.getLineMaxColumn(c)):(g&&f<=g.end+1&&(g=e._findPreviousWordOnLine(i,r,new d.L(c,g.start+1))),g?f=g.end+1:f>1?f=1:(c--,f=r.getLineMaxColumn(c))),new h.e(c,f,u.lineNumber,u.column)}},{key:"deleteInsideWord",value:function(e,t,n){if(!n.isEmpty())return n;var i=new d.L(n.positionLineNumber,n.positionColumn),r=this._deleteInsideWordWhitespace(t,i);return r||this._deleteInsideWordDetermineDeleteRange(e,t,i)}},{key:"_charAtIsWhitespace",value:function(e,t){var n=e.charCodeAt(t);return 32===n||9===n}},{key:"_deleteInsideWordWhitespace",value:function(e,t){var n=e.getLineContent(t.lineNumber),i=n.length;if(0===i)return null;var r=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(n,r))return null;var o=Math.min(t.column-1,i-1);if(!this._charAtIsWhitespace(n,o))return null;for(;r>0&&this._charAtIsWhitespace(n,r-1);)r--;for(;o+1<i&&this._charAtIsWhitespace(n,o+1);)o++;return new h.e(t.lineNumber,r+1,t.lineNumber,o+2)}},{key:"_deleteInsideWordDetermineDeleteRange",value:function(t,n,i){var r=this,o=n.getLineContent(i.lineNumber),a=o.length;if(0===a)return i.lineNumber>1?new h.e(i.lineNumber-1,n.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumber<n.getLineCount()?new h.e(i.lineNumber,1,i.lineNumber+1,1):new h.e(i.lineNumber,1,i.lineNumber,1);var s=function(e){return e.start+1<=i.column&&i.column<=e.end+1},u=function(e,t){return e=Math.min(e,i.column),t=Math.max(t,i.column),new h.e(i.lineNumber,e,i.lineNumber,t)},l=function(e){for(var t=e.start+1,n=e.end+1,i=!1;n-1<a&&r._charAtIsWhitespace(o,n-1);)i=!0,n++;if(!i)for(;t>1&&r._charAtIsWhitespace(o,t-2);)t--;return u(t,n)},c=e._findPreviousWordOnLine(t,n,i);if(c&&s(c))return l(c);var d=e._findNextWordOnLine(t,n,i);return d&&s(d)?l(d):c&&d?u(c.end+1,d.start+1):c?u(c.start+1,c.end+1):d?u(d.start+1,d.end+1):u(1,a+1)}},{key:"_deleteWordPartLeft",value:function(t,n){if(!n.isEmpty())return n;var i=n.getPosition(),r=e._moveWordPartLeft(t,i);return new h.e(i.lineNumber,i.column,r.lineNumber,r.column)}},{key:"_findFirstNonWhitespaceChar",value:function(e,t){for(var n=e.length,i=t;i<n;i++){var r=e.charAt(i);if(" "!==r&&"\t"!==r)return i}return n}},{key:"_deleteWordRightWhitespace",value:function(e,t){var n=e.getLineContent(t.lineNumber),i=t.column-1,r=this._findFirstNonWhitespaceChar(n,i);return i+1<r?new h.e(t.lineNumber,t.column,t.lineNumber,r+1):null}},{key:"deleteWordRight",value:function(t,n){var i=t.wordSeparators,r=t.model,o=t.selection,a=t.whitespaceHeuristics;if(!o.isEmpty())return o;var s=new d.L(o.positionLineNumber,o.positionColumn),u=s.lineNumber,l=s.column,c=r.getLineCount(),f=r.getLineMaxColumn(u);if(u===c&&l===f)return null;if(a){var p=this._deleteWordRightWhitespace(r,s);if(p)return p}var g=e._findNextWordOnLine(i,r,s);return 2===n?g?l=g.end+1:l<f||u===c?l=f:(u++,l=(g=e._findNextWordOnLine(i,r,new d.L(u,1)))?g.start+1:r.getLineMaxColumn(u)):(g&&l>=g.start+1&&(g=e._findNextWordOnLine(i,r,new d.L(u,g.end+1))),g?l=g.start+1:l<f||u===c?l=f:(u++,l=(g=e._findNextWordOnLine(i,r,new d.L(u,1)))?g.start+1:r.getLineMaxColumn(u))),new h.e(u,l,s.lineNumber,s.column)}},{key:"_deleteWordPartRight",value:function(t,n){if(!n.isEmpty())return n;var i=n.getPosition(),r=e._moveWordPartRight(t,i);return new h.e(i.lineNumber,i.column,r.lineNumber,r.column)}},{key:"_createWordAtPosition",value:function(e,t,n){var i=new h.e(t,n.start+1,t,n.end+1);return{word:e.getValueInRange(i),startColumn:i.startColumn,endColumn:i.endColumn}}},{key:"getWordAtPosition",value:function(t,n,i){var r=(0,c.u)(n),o=e._findPreviousWordOnLine(r,t,i);if(o&&1===o.wordType&&o.start<=i.column-1&&i.column-1<=o.end)return e._createWordAtPosition(t,i.lineNumber,o);var a=e._findNextWordOnLine(r,t,i);return a&&1===a.wordType&&a.start<=i.column-1&&i.column-1<=a.end?e._createWordAtPosition(t,i.lineNumber,a):null}},{key:"word",value:function(t,n,i,r,o){var a,s,l,f,p=(0,c.u)(t.wordSeparators),g=e._findPreviousWordOnLine(p,n,o),v=e._findNextWordOnLine(p,n,o);if(!r)return g&&1===g.wordType&&g.start<=o.column-1&&o.column-1<=g.end?(a=g.start+1,s=g.end+1):v&&1===v.wordType&&v.start<=o.column-1&&o.column-1<=v.end?(a=v.start+1,s=v.end+1):(a=g?g.end+1:1,s=v?v.start+1:n.getLineMaxColumn(o.lineNumber)),new u.rS(new h.e(o.lineNumber,a,o.lineNumber,s),0,new d.L(o.lineNumber,s),0);g&&1===g.wordType&&g.start<o.column-1&&o.column-1<g.end?(l=g.start+1,f=g.end+1):v&&1===v.wordType&&v.start<o.column-1&&o.column-1<v.end?(l=v.start+1,f=v.end+1):(l=o.column,f=o.column);var m,_=o.lineNumber;if(i.selectionStart.containsPosition(o))m=i.selectionStart.endColumn;else if(o.isBeforeOrEqual(i.selectionStart.getStartPosition())){m=l;var y=new d.L(_,m);i.selectionStart.containsPosition(y)&&(m=i.selectionStart.endColumn)}else{m=f;var b=new d.L(_,m);i.selectionStart.containsPosition(b)&&(m=i.selectionStart.startColumn)}return i.move(!0,_,m,0)}}]),e}(),p=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(){return(0,o.Z)(this,n),t.apply(this,arguments)}return(0,a.Z)(n,null,[{key:"deleteWordPartLeft",value:function(e){var t=g([f.deleteWordLeft(e,0),f.deleteWordLeft(e,2),f._deleteWordPartLeft(e.model,e.selection)]);return t.sort(h.e.compareRangesUsingEnds),t[2]}},{key:"deleteWordPartRight",value:function(e){var t=g([f.deleteWordRight(e,0),f.deleteWordRight(e,2),f._deleteWordPartRight(e.model,e.selection)]);return t.sort(h.e.compareRangesUsingStarts),t[0]}},{key:"moveWordPartLeft",value:function(e,t,n){var i=g([f.moveWordLeft(e,t,n,0),f.moveWordLeft(e,t,n,2),f._moveWordPartLeft(t,n)]);return i.sort(d.L.compare),i[2]}},{key:"moveWordPartRight",value:function(e,t,n){var i=g([f.moveWordRight(e,t,n,0),f.moveWordRight(e,t,n,2),f._moveWordPartRight(t,n)]);return i.sort(d.L.compare),i[0]}}]),n}(f);function g(e){return e.filter((function(e){return Boolean(e)}))}},20937:function(e,t,n){"use strict";n.d(t,{u:function(){return u}});var i=n(43144),r=n(15671),o=n(60136),a=n(29388),s=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;(0,r.Z)(this,n),i=t.call(this,0);for(var o=0,a=e.length;o<a;o++)i.set(e.charCodeAt(o),2);return i.set(32,1),i.set(9,1),i}return(0,i.Z)(n)}(n(84516).N);var u=function(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e(n)),t[n]}}((function(e){return new s(e)}))},84516:function(e,t,n){"use strict";n.d(t,{N:function(){return a},q:function(){return s}});var i=n(15671),r=n(43144),o=n(38820),a=function(){function e(t){(0,i.Z)(this,e);var n=(0,o.K)(t);this._defaultValue=n,this._asciiMap=e._createAsciiMap(n),this._map=new Map}return(0,r.Z)(e,[{key:"set",value:function(e,t){var n=(0,o.K)(t);e>=0&&e<256?this._asciiMap[e]=n:this._map.set(e,n)}},{key:"get",value:function(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}}],[{key:"_createAsciiMap",value:function(e){for(var t=new Uint8Array(256),n=0;n<256;n++)t[n]=e;return t}}]),e}(),s=function(){function e(){(0,i.Z)(this,e),this._actual=new a(0)}return(0,r.Z)(e,[{key:"add",value:function(e){this._actual.set(e,1)}},{key:"has",value:function(e){return 1===this._actual.get(e)}}]),e}()},85025:function(e,t,n){"use strict";n.d(t,{h:function(){return a}});var i=n(15671),r=n(43144),o=n(67033),a=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,null,[{key:"insert",value:function(e,t){return{range:new o.e(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}},{key:"delete",value:function(e){return{range:e,text:null}}},{key:"replace",value:function(e,t){return{range:e,text:t}}},{key:"replaceMove",value:function(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}]),e}()},34763:function(e,t,n){"use strict";n.d(t,{A:function(){return a}});var i=n(15671),r=n(43144),o=n(99404),a=function(){function e(t,n){(0,i.Z)(this,e),this._tokens=t,this._tokensCount=this._tokens.length>>>1,this._text=n}return(0,r.Z)(e,[{key:"equals",value:function(t){return t instanceof e&&this.slicedEquals(t,0,this._tokensCount)}},{key:"slicedEquals",value:function(e,t,n){if(this._text!==e._text)return!1;if(this._tokensCount!==e._tokensCount)return!1;for(var i=t<<1,r=i+(n<<1),o=i;o<r;o++)if(this._tokens[o]!==e._tokens[o])return!1;return!0}},{key:"getLineContent",value:function(){return this._text}},{key:"getCount",value:function(){return this._tokensCount}},{key:"getStartOffset",value:function(e){return e>0?this._tokens[e-1<<1]:0}},{key:"getMetadata",value:function(e){return this._tokens[1+(e<<1)]}},{key:"getLanguageId",value:function(e){var t=this._tokens[1+(e<<1)];return o.NX.getLanguageId(t)}},{key:"getStandardTokenType",value:function(e){var t=this._tokens[1+(e<<1)];return o.NX.getTokenType(t)}},{key:"getForeground",value:function(e){var t=this._tokens[1+(e<<1)];return o.NX.getForeground(t)}},{key:"getClassName",value:function(e){var t=this._tokens[1+(e<<1)];return o.NX.getClassNameFromMetadata(t)}},{key:"getInlineStyle",value:function(e,t){var n=this._tokens[1+(e<<1)];return o.NX.getInlineStyleFromMetadata(n,t)}},{key:"getEndOffset",value:function(e){return this._tokens[e<<1]}},{key:"findTokenIndexAtOffset",value:function(t){return e.findIndexInTokensArray(this._tokens,t)}},{key:"inflate",value:function(){return this}},{key:"sliceAndInflate",value:function(e,t,n){return new s(this,e,t,n)}}],[{key:"convertToEndOffset",value:function(e,t){for(var n=(e.length>>>1)-1,i=0;i<n;i++)e[i<<1]=e[i+1<<1];e[n<<1]=t}},{key:"findIndexInTokensArray",value:function(e,t){if(e.length<=2)return 0;for(var n=0,i=(e.length>>>1)-1;n<i;){var r=n+Math.floor((i-n)/2),o=e[r<<1];if(o===t)return r+1;o<t?n=r+1:o>t&&(i=r)}return n}}]),e}(),s=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._source=t,this._startOffset=n,this._endOffset=r,this._deltaOffset=o,this._firstTokenIndex=t.findTokenIndexAtOffset(n),this._tokensCount=0;for(var a=this._firstTokenIndex,s=t.getCount();a<s;a++){if(t.getStartOffset(a)>=r)break;this._tokensCount++}}return(0,r.Z)(e,[{key:"equals",value:function(t){return t instanceof e&&(this._startOffset===t._startOffset&&this._endOffset===t._endOffset&&this._deltaOffset===t._deltaOffset&&this._source.slicedEquals(t._source,this._firstTokenIndex,this._tokensCount))}},{key:"getCount",value:function(){return this._tokensCount}},{key:"getForeground",value:function(e){return this._source.getForeground(this._firstTokenIndex+e)}},{key:"getEndOffset",value:function(e){var t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}},{key:"getClassName",value:function(e){return this._source.getClassName(this._firstTokenIndex+e)}},{key:"getInlineStyle",value:function(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}},{key:"findTokenIndexAtOffset",value:function(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}]),e}()},67297:function(e,t,n){"use strict";n.d(t,{L:function(){return o}});var i=n(15671),r=n(43144),o=function(){function e(t,n){(0,i.Z)(this,e),this.lineNumber=t,this.column=n}return(0,r.Z)(e,[{key:"with",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lineNumber,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.column;return t===this.lineNumber&&n===this.column?this:new e(t,n)}},{key:"delta",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.with(this.lineNumber+e,this.column+t)}},{key:"equals",value:function(t){return e.equals(this,t)}},{key:"isBefore",value:function(t){return e.isBefore(this,t)}},{key:"isBeforeOrEqual",value:function(t){return e.isBeforeOrEqual(this,t)}},{key:"clone",value:function(){return new e(this.lineNumber,this.column)}},{key:"toString",value:function(){return"("+this.lineNumber+","+this.column+")"}}],[{key:"equals",value:function(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}},{key:"isBefore",value:function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<t.column}},{key:"isBeforeOrEqual",value:function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<=t.column}},{key:"compare",value:function(e,t){var n=0|e.lineNumber,i=0|t.lineNumber;return n===i?(0|e.column)-(0|t.column):n-i}},{key:"lift",value:function(t){return new e(t.lineNumber,t.column)}},{key:"isIPosition",value:function(e){return e&&"number"===typeof e.lineNumber&&"number"===typeof e.column}}]),e}()},67033:function(e,t,n){"use strict";n.d(t,{e:function(){return a}});var i=n(15671),r=n(43144),o=n(67297),a=function(){function e(t,n,r,o){(0,i.Z)(this,e),t>r||t===r&&n>o?(this.startLineNumber=r,this.startColumn=o,this.endLineNumber=t,this.endColumn=n):(this.startLineNumber=t,this.startColumn=n,this.endLineNumber=r,this.endColumn=o)}return(0,r.Z)(e,[{key:"isEmpty",value:function(){return e.isEmpty(this)}},{key:"containsPosition",value:function(t){return e.containsPosition(this,t)}},{key:"containsRange",value:function(t){return e.containsRange(this,t)}},{key:"strictContainsRange",value:function(t){return e.strictContainsRange(this,t)}},{key:"plusRange",value:function(t){return e.plusRange(this,t)}},{key:"intersectRanges",value:function(t){return e.intersectRanges(this,t)}},{key:"equalsRange",value:function(t){return e.equalsRange(this,t)}},{key:"getEndPosition",value:function(){return e.getEndPosition(this)}},{key:"getStartPosition",value:function(){return e.getStartPosition(this)}},{key:"toString",value:function(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}},{key:"setEndPosition",value:function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)}},{key:"setStartPosition",value:function(t,n){return new e(t,n,this.endLineNumber,this.endColumn)}},{key:"collapseToStart",value:function(){return e.collapseToStart(this)}}],[{key:"isEmpty",value:function(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}},{key:"containsPosition",value:function(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.column<e.startColumn)&&!(t.lineNumber===e.endLineNumber&&t.column>e.endColumn))}},{key:"containsRange",value:function(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)))}},{key:"strictContainsRange",value:function(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))}},{key:"plusRange",value:function(t,n){var i,r,o,a;return n.startLineNumber<t.startLineNumber?(i=n.startLineNumber,r=n.startColumn):n.startLineNumber===t.startLineNumber?(i=n.startLineNumber,r=Math.min(n.startColumn,t.startColumn)):(i=t.startLineNumber,r=t.startColumn),n.endLineNumber>t.endLineNumber?(o=n.endLineNumber,a=n.endColumn):n.endLineNumber===t.endLineNumber?(o=n.endLineNumber,a=Math.max(n.endColumn,t.endColumn)):(o=t.endLineNumber,a=t.endColumn),new e(i,r,o,a)}},{key:"intersectRanges",value:function(t,n){var i=t.startLineNumber,r=t.startColumn,o=t.endLineNumber,a=t.endColumn,s=n.startLineNumber,u=n.startColumn,l=n.endLineNumber,c=n.endColumn;return i<s?(i=s,r=u):i===s&&(r=Math.max(r,u)),o>l?(o=l,a=c):o===l&&(a=Math.min(a,c)),i>o||i===o&&r>a?null:new e(i,r,o,a)}},{key:"equalsRange",value:function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}},{key:"getEndPosition",value:function(e){return new o.L(e.endLineNumber,e.endColumn)}},{key:"getStartPosition",value:function(e){return new o.L(e.startLineNumber,e.startColumn)}},{key:"collapseToStart",value:function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)}},{key:"fromPositions",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;return new e(t.lineNumber,t.column,n.lineNumber,n.column)}},{key:"lift",value:function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null}},{key:"isIRange",value:function(e){return e&&"number"===typeof e.startLineNumber&&"number"===typeof e.startColumn&&"number"===typeof e.endLineNumber&&"number"===typeof e.endColumn}},{key:"areIntersectingOrTouching",value:function(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)}},{key:"areIntersecting",value:function(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)}},{key:"compareRangesUsingStarts",value:function(e,t){if(e&&t){var n=0|e.startLineNumber,i=0|t.startLineNumber;if(n===i){var r=0|e.startColumn,o=0|t.startColumn;if(r===o){var a=0|e.endLineNumber,s=0|t.endLineNumber;return a===s?(0|e.endColumn)-(0|t.endColumn):a-s}return r-o}return n-i}return(e?1:0)-(t?1:0)}},{key:"compareRangesUsingEnds",value:function(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber}},{key:"spansMultipleLines",value:function(e){return e.endLineNumber>e.startLineNumber}}]),e}()},74964:function(e,t,n){"use strict";n.d(t,{Y:function(){return u}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(67297),u=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this,e,r,o,a)).selectionStartLineNumber=e,s.selectionStartColumn=r,s.positionLineNumber=o,s.positionColumn=a,s}return(0,r.Z)(n,[{key:"toString",value:function(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}},{key:"equalsSelection",value:function(e){return n.selectionsEqual(this,e)}},{key:"getDirection",value:function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}},{key:"setEndPosition",value:function(e,t){return 0===this.getDirection()?new n(this.startLineNumber,this.startColumn,e,t):new n(e,t,this.startLineNumber,this.startColumn)}},{key:"getPosition",value:function(){return new s.L(this.positionLineNumber,this.positionColumn)}},{key:"setStartPosition",value:function(e,t){return 0===this.getDirection()?new n(e,t,this.endLineNumber,this.endColumn):new n(this.endLineNumber,this.endColumn,e,t)}}],[{key:"selectionsEqual",value:function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}},{key:"fromPositions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return new n(e.lineNumber,e.column,t.lineNumber,t.column)}},{key:"liftSelection",value:function(e){return new n(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}},{key:"selectionsArrEqual",value:function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,i=e.length;n<i;n++)if(!this.selectionsEqual(e[n],t[n]))return!1;return!0}},{key:"isISelection",value:function(e){return e&&"number"===typeof e.selectionStartLineNumber&&"number"===typeof e.selectionStartColumn&&"number"===typeof e.positionLineNumber&&"number"===typeof e.positionColumn}},{key:"createWithDirection",value:function(e,t,i,r,o){return 0===o?new n(e,t,i,r):new n(i,r,e,t)}}]),n}(n(67033).e)},85500:function(e,t,n){"use strict";n.d(t,{kH:function(){return p},l$:function(){return f},lZ:function(){return g},oe:function(){return h}});var i,r,o,a=n(15671),s=n(43144),u=n(51747),l=n(30487),c=n(27877);function d(){return i||(i=new TextDecoder("UTF-16LE")),i}function h(){return o||(o=l.r()?d():(r||(r=new TextDecoder("UTF-16BE")),r)),o}var f,p,g="undefined"!==typeof TextDecoder;function v(e,t,n){for(var i=[],r=0,o=0;o<n;o++){var a=c.mP(e,t);t+=2,i[r++]=String.fromCharCode(a)}return i.join("")}g?(f=function(e){return new m(e)},p=function(e,t,n){var i=new Uint16Array(e.buffer,t,n);if(n>0&&(65279===i[0]||65534===i[0]))return v(e,t,n);return d().decode(i)}):(f=function(e){return new _},p=v);var m=function(){function e(t){(0,a.Z)(this,e),this._capacity=0|t,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}return(0,s.Z)(e,[{key:"reset",value:function(){this._completedStrings=null,this._bufferLength=0}},{key:"build",value:function(){return null!==this._completedStrings?(this._flushBuffer(),this._completedStrings.join("")):this._buildBuffer()}},{key:"_buildBuffer",value:function(){if(0===this._bufferLength)return"";var e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return h().decode(e)}},{key:"_flushBuffer",value:function(){var e=this._buildBuffer();this._bufferLength=0,null===this._completedStrings?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e}},{key:"write1",value:function(e){var t=this._capacity-this._bufferLength;t<=1&&(0===t||u.ZG(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}},{key:"appendASCII",value:function(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}},{key:"appendASCIIString",value:function(e){var t=e.length;if(this._bufferLength+t>=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=e);for(var n=0;n<t;n++)this._buffer[this._bufferLength++]=e.charCodeAt(n)}}]),e}(),_=function(){function e(){(0,a.Z)(this,e),this._pieces=[],this._piecesLen=0}return(0,s.Z)(e,[{key:"reset",value:function(){this._pieces=[],this._piecesLen=0}},{key:"build",value:function(){return this._pieces.join("")}},{key:"write1",value:function(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)}},{key:"appendASCII",value:function(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)}},{key:"appendASCIIString",value:function(e){this._pieces[this._piecesLen++]=e}}]),e}()},98154:function(e,t,n){"use strict";n.d(t,{Hi:function(){return s},WU:function(){return o},hG:function(){return a}});var i=n(15671),r=n(43144),o=function(){function e(t,n,r){(0,i.Z)(this,e),this.offset=0|t,this.type=n,this.language=r}return(0,r.Z)(e,[{key:"toString",value:function(){return"("+this.offset+", "+this.type+")"}}]),e}(),a=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.tokens=t,this.endState=n})),s=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.tokens=t,this.endState=n}))},30633:function(e,t,n){"use strict";n.d(t,{p:function(){return o}});var i=n(15671),r=n(43144),o=function(){function e(t,n,r,o,a,s){(0,i.Z)(this,e),this.id=t,this.label=n,this.alias=r,this._precondition=o,this._run=a,this._contextKeyService=s}return(0,r.Z)(e,[{key:"isSupported",value:function(){return this._contextKeyService.contextMatchesRules(this._precondition)}},{key:"run",value:function(){return this.isSupported()?this._run():Promise.resolve(void 0)}}]),e}()},30062:function(e,t,n){"use strict";function i(e){return e&&"string"===typeof e.id}n.d(t,{I:function(){return i},g:function(){return r}});var r={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"}},21204:function(e,t,n){"use strict";n.d(t,{u:function(){return i}});var i,r=n(56345),o=n(18948);!function(e){e.editorSimpleInput=new o.uy("editorSimpleInput",!1,!0),e.editorTextFocus=new o.uy("editorTextFocus",!1,r.N("editorTextFocus","Whether the editor text has focus (cursor is blinking)")),e.focus=new o.uy("editorFocus",!1,r.N("editorFocus","Whether the editor or an editor widget has focus (e.g. focus is in the find widget)")),e.textInputFocus=new o.uy("textInputFocus",!1,r.N("textInputFocus","Whether an editor or a rich text input has focus (cursor is blinking)")),e.readOnly=new o.uy("editorReadonly",!1,r.N("editorReadonly","Whether the editor is read only")),e.inDiffEditor=new o.uy("inDiffEditor",!1,r.N("inDiffEditor","Whether the context is a diff editor")),e.columnSelection=new o.uy("editorColumnSelection",!1,r.N("editorColumnSelection","Whether `editor.columnSelection` is enabled")),e.writable=e.readOnly.toNegated(),e.hasNonEmptySelection=new o.uy("editorHasSelection",!1,r.N("editorHasSelection","Whether the editor has text selected")),e.hasOnlyEmptySelection=e.hasNonEmptySelection.toNegated(),e.hasMultipleSelections=new o.uy("editorHasMultipleSelections",!1,r.N("editorHasMultipleSelections","Whether the editor has multiple selections")),e.hasSingleSelection=e.hasMultipleSelections.toNegated(),e.tabMovesFocus=new o.uy("editorTabMovesFocus",!1,r.N("editorTabMovesFocus","Whether `Tab` will move focus out of the editor")),e.tabDoesNotMoveFocus=e.tabMovesFocus.toNegated(),e.isInWalkThroughSnippet=new o.uy("isInEmbeddedEditor",!1,!0),e.canUndo=new o.uy("canUndo",!1,!0),e.canRedo=new o.uy("canRedo",!1,!0),e.hoverVisible=new o.uy("editorHoverVisible",!1,r.N("editorHoverVisible","Whether the editor hover is visible")),e.inCompositeEditor=new o.uy("inCompositeEditor",void 0,r.N("inCompositeEditor","Whether the editor is part of a larger editor (e.g. notebooks)")),e.notInCompositeEditor=e.inCompositeEditor.toNegated(),e.languageId=new o.uy("editorLangId","",r.N("editorLangId","The language identifier of the editor")),e.hasCompletionItemProvider=new o.uy("editorHasCompletionItemProvider",!1,r.N("editorHasCompletionItemProvider","Whether the editor has a completion item provider")),e.hasCodeActionsProvider=new o.uy("editorHasCodeActionsProvider",!1,r.N("editorHasCodeActionsProvider","Whether the editor has a code actions provider")),e.hasCodeLensProvider=new o.uy("editorHasCodeLensProvider",!1,r.N("editorHasCodeLensProvider","Whether the editor has a code lens provider")),e.hasDefinitionProvider=new o.uy("editorHasDefinitionProvider",!1,r.N("editorHasDefinitionProvider","Whether the editor has a definition provider")),e.hasDeclarationProvider=new o.uy("editorHasDeclarationProvider",!1,r.N("editorHasDeclarationProvider","Whether the editor has a declaration provider")),e.hasImplementationProvider=new o.uy("editorHasImplementationProvider",!1,r.N("editorHasImplementationProvider","Whether the editor has an implementation provider")),e.hasTypeDefinitionProvider=new o.uy("editorHasTypeDefinitionProvider",!1,r.N("editorHasTypeDefinitionProvider","Whether the editor has a type definition provider")),e.hasHoverProvider=new o.uy("editorHasHoverProvider",!1,r.N("editorHasHoverProvider","Whether the editor has a hover provider")),e.hasDocumentHighlightProvider=new o.uy("editorHasDocumentHighlightProvider",!1,r.N("editorHasDocumentHighlightProvider","Whether the editor has a document highlight provider")),e.hasDocumentSymbolProvider=new o.uy("editorHasDocumentSymbolProvider",!1,r.N("editorHasDocumentSymbolProvider","Whether the editor has a document symbol provider")),e.hasReferenceProvider=new o.uy("editorHasReferenceProvider",!1,r.N("editorHasReferenceProvider","Whether the editor has a reference provider")),e.hasRenameProvider=new o.uy("editorHasRenameProvider",!1,r.N("editorHasRenameProvider","Whether the editor has a rename provider")),e.hasSignatureHelpProvider=new o.uy("editorHasSignatureHelpProvider",!1,r.N("editorHasSignatureHelpProvider","Whether the editor has a signature help provider")),e.hasInlineHintsProvider=new o.uy("editorHasInlineHintsProvider",!1,r.N("editorHasInlineHintsProvider","Whether the editor has an inline hints provider")),e.hasDocumentFormattingProvider=new o.uy("editorHasDocumentFormattingProvider",!1,r.N("editorHasDocumentFormattingProvider","Whether the editor has a document formatting provider")),e.hasDocumentSelectionFormattingProvider=new o.uy("editorHasDocumentSelectionFormattingProvider",!1,r.N("editorHasDocumentSelectionFormattingProvider","Whether the editor has a document selection formatting provider")),e.hasMultipleDocumentFormattingProvider=new o.uy("editorHasMultipleDocumentFormattingProvider",!1,r.N("editorHasMultipleDocumentFormattingProvider","Whether the editor has multiple document formatting providers")),e.hasMultipleDocumentSelectionFormattingProvider=new o.uy("editorHasMultipleDocumentSelectionFormattingProvider",!1,r.N("editorHasMultipleDocumentSelectionFormattingProvider","Whether the editor has multiple document selection formatting providers"))}(i||(i={}))},46502:function(e,t,n){"use strict";n.d(t,{F5:function(){return r},Qi:function(){return l},dJ:function(){return s},je:function(){return c},sh:function(){return i},tk:function(){return u}});var i,r,o=n(15671),a=n(43144);!function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(i||(i={})),function(e){e[e.Inline=1]="Inline",e[e.Gutter=2]="Gutter"}(r||(r={}));var s=function(){function e(t){(0,o.Z)(this,e),this.tabSize=Math.max(1,0|t.tabSize),this.indentSize=0|t.tabSize,this.insertSpaces=Boolean(t.insertSpaces),this.defaultEOL=0|t.defaultEOL,this.trimAutoWhitespace=Boolean(t.trimAutoWhitespace)}return(0,a.Z)(e,[{key:"equals",value:function(e){return this.tabSize===e.tabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace}},{key:"createChangeEvent",value:function(e){return{tabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}}}]),e}(),u=(0,a.Z)((function e(t,n){(0,o.Z)(this,e),this.range=t,this.matches=n})),l=(0,a.Z)((function e(t,n,i,r,a,s){(0,o.Z)(this,e),this.identifier=t,this.range=n,this.text=i,this.forceMoveMarkers=r,this.isAutoWhitespaceEdit=a,this._isTracked=s})),c=(0,a.Z)((function e(t,n,i){(0,o.Z)(this,e),this.reverseEdits=t,this.changes=n,this.trimAutoWhitespaceLineNumbers=i}))},57179:function(e,t,n){"use strict";n.d(t,{NL:function(){return y},e9:function(){return _}});var i=n(37762),r=n(15671),o=n(43144),a=n(56345),s=n(8729),u=n(74964),l=n(67775),c=n(51006),d=n(27877),h=n(51334);function f(e){return e.toString()}var p=function(){function e(t,n,i,o,a,s,u){(0,r.Z)(this,e),this.beforeVersionId=t,this.afterVersionId=n,this.beforeEOL=i,this.afterEOL=o,this.beforeCursorState=a,this.afterCursorState=s,this.changes=u}return(0,o.Z)(e,[{key:"append",value:function(e,t,n,i,r){t.length>0&&(this.changes=(0,c.b)(this.changes,t)),this.afterEOL=n,this.afterVersionId=i,this.afterCursorState=r}},{key:"serialize",value:function(){var t,n=10+e._writeSelectionsSize(this.beforeCursorState)+e._writeSelectionsSize(this.afterCursorState)+4,r=(0,i.Z)(this.changes);try{for(r.s();!(t=r.n()).done;){n+=t.value.writeSize()}}catch(l){r.e(l)}finally{r.f()}var o=new Uint8Array(n),a=0;d.T4(o,this.beforeVersionId,a),a+=4,d.T4(o,this.afterVersionId,a),a+=4,d.Cg(o,this.beforeEOL,a),a+=1,d.Cg(o,this.afterEOL,a),a+=1,a=e._writeSelections(o,this.beforeCursorState,a),a=e._writeSelections(o,this.afterCursorState,a),d.T4(o,this.changes.length,a),a+=4;var s,u=(0,i.Z)(this.changes);try{for(u.s();!(s=u.n()).done;){a=s.value.write(o,a)}}catch(l){u.e(l)}finally{u.f()}return o.buffer}}],[{key:"create",value:function(t,n){var i=t.getAlternativeVersionId(),r=m(t);return new e(i,i,r,r,n,n,[])}},{key:"_writeSelectionsSize",value:function(e){return 4+16*(e?e.length:0)}},{key:"_writeSelections",value:function(e,t,n){if(d.T4(e,t?t.length:0,n),n+=4,t){var r,o=(0,i.Z)(t);try{for(o.s();!(r=o.n()).done;){var a=r.value;d.T4(e,a.selectionStartLineNumber,n),n+=4,d.T4(e,a.selectionStartColumn,n),n+=4,d.T4(e,a.positionLineNumber,n),n+=4,d.T4(e,a.positionColumn,n),n+=4}}catch(s){o.e(s)}finally{o.f()}}return n}},{key:"_readSelections",value:function(e,t,n){var i=d.Ag(e,t);t+=4;for(var r=0;r<i;r++){var o=d.Ag(e,t);t+=4;var a=d.Ag(e,t);t+=4;var s=d.Ag(e,t);t+=4;var l=d.Ag(e,t);t+=4,n.push(new u.Y(o,a,s,l))}return t}},{key:"deserialize",value:function(t){var n=new Uint8Array(t),i=0,r=d.Ag(n,i);i+=4;var o=d.Ag(n,i);i+=4;var a=d.Q$(n,i);i+=1;var s=d.Q$(n,i);i+=1;var u=[];i=e._readSelections(n,i,u);var l=[];i=e._readSelections(n,i,l);var h=d.Ag(n,i);i+=4;for(var f=[],p=0;p<h;p++)i=c.q.read(n,i,f);return new e(r,o,a,s,u,l,f)}}]),e}(),g=function(){function e(t,n){(0,r.Z)(this,e),this.model=t,this._data=p.create(t,n)}return(0,o.Z)(e,[{key:"type",get:function(){return 0}},{key:"resource",get:function(){return l.o.isUri(this.model)?this.model:this.model.uri}},{key:"label",get:function(){return a.N("edit","Typing")}},{key:"toString",value:function(){return(this._data instanceof p?this._data:p.deserialize(this._data)).changes.map((function(e){return e.toString()})).join(", ")}},{key:"matchesResource",value:function(e){return(l.o.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}},{key:"setModel",value:function(e){this.model=e}},{key:"canAppend",value:function(e){return this.model===e&&this._data instanceof p}},{key:"append",value:function(e,t,n,i,r){this._data instanceof p&&this._data.append(e,t,n,i,r)}},{key:"close",value:function(){this._data instanceof p&&(this._data=this._data.serialize())}},{key:"open",value:function(){this._data instanceof p||(this._data=p.deserialize(this._data))}},{key:"undo",value:function(){if(l.o.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof p&&(this._data=this._data.serialize());var e=p.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}},{key:"redo",value:function(){if(l.o.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof p&&(this._data=this._data.serialize());var e=p.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}},{key:"heapSize",value:function(){return this._data instanceof p&&(this._data=this._data.serialize()),this._data.byteLength+168}}]),e}(),v=function(){function e(t,n){(0,r.Z)(this,e),this.type=1,this.label=t,this._isOpen=!0,this._editStackElementsArr=n.slice(0),this._editStackElementsMap=new Map;var o,a=(0,i.Z)(this._editStackElementsArr);try{for(a.s();!(o=a.n()).done;){var s=o.value,u=f(s.resource);this._editStackElementsMap.set(u,s)}}catch(l){a.e(l)}finally{a.f()}this._delegate=null}return(0,o.Z)(e,[{key:"resources",get:function(){return this._editStackElementsArr.map((function(e){return e.resource}))}},{key:"prepareUndoRedo",value:function(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}},{key:"matchesResource",value:function(e){var t=f(e);return this._editStackElementsMap.has(t)}},{key:"setModel",value:function(e){var t=f(l.o.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}},{key:"canAppend",value:function(e){if(!this._isOpen)return!1;var t=f(e.uri);return!!this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).canAppend(e)}},{key:"append",value:function(e,t,n,i,r){var o=f(e.uri);this._editStackElementsMap.get(o).append(e,t,n,i,r)}},{key:"close",value:function(){this._isOpen=!1}},{key:"open",value:function(){}},{key:"undo",value:function(){this._isOpen=!1;var e,t=(0,i.Z)(this._editStackElementsArr);try{for(t.s();!(e=t.n()).done;){e.value.undo()}}catch(n){t.e(n)}finally{t.f()}}},{key:"redo",value:function(){var e,t=(0,i.Z)(this._editStackElementsArr);try{for(t.s();!(e=t.n()).done;){e.value.redo()}}catch(n){t.e(n)}finally{t.f()}}},{key:"heapSize",value:function(e){var t=f(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}},{key:"split",value:function(){return this._editStackElementsArr}},{key:"toString",value:function(){var e,t=[],n=(0,i.Z)(this._editStackElementsArr);try{for(n.s();!(e=n.n()).done;){var r=e.value;t.push("".concat((0,h.EZ)(r.resource),": ").concat(r))}}catch(o){n.e(o)}finally{n.f()}return"{".concat(t.join(", "),"}")}}]),e}();function m(e){return"\n"===e.getEOL()?0:1}function _(e){return!!e&&(e instanceof g||e instanceof v)}var y=function(){function e(t,n){(0,r.Z)(this,e),this._model=t,this._undoRedoService=n}return(0,o.Z)(e,[{key:"pushStackElement",value:function(){var e=this._undoRedoService.getLastElement(this._model.uri);_(e)&&e.close()}},{key:"popStackElement",value:function(){var e=this._undoRedoService.getLastElement(this._model.uri);_(e)&&e.open()}},{key:"clear",value:function(){this._undoRedoService.removeElements(this._model.uri)}},{key:"_getOrCreateEditStackElement",value:function(e){var t=this._undoRedoService.getLastElement(this._model.uri);if(_(t)&&t.canAppend(this._model))return t;var n=new g(this._model,e);return this._undoRedoService.pushElement(n),n}},{key:"pushEOL",value:function(e){var t=this._getOrCreateEditStackElement(null);this._model.setEOL(e),t.append(this._model,[],m(this._model),this._model.getAlternativeVersionId(),null)}},{key:"pushEditOperation",value:function(t,n,i){var r=this._getOrCreateEditStackElement(t),o=this._model.applyEdits(n,!0),a=e._computeCursorState(i,o),s=o.map((function(e,t){return{index:t,textChange:e.textChange}}));return s.sort((function(e,t){return e.textChange.oldPosition===t.textChange.oldPosition?e.index-t.index:e.textChange.oldPosition-t.textChange.oldPosition})),r.append(this._model,s.map((function(e){return e.textChange})),m(this._model),this._model.getAlternativeVersionId(),a),a}}],[{key:"_computeCursorState",value:function(e,t){try{return e?e(t):null}catch(n){return(0,s.dL)(n),null}}}]),e}()},51006:function(e,t,n){"use strict";n.d(t,{b:function(){return c},q:function(){return l}});var i=n(29439),r=n(15671),o=n(43144),a=n(27877),s=n(85500);function u(e){return e.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}var l=function(){function e(t,n,i,o){(0,r.Z)(this,e),this.oldPosition=t,this.oldText=n,this.newPosition=i,this.newText=o}return(0,o.Z)(e,[{key:"oldLength",get:function(){return this.oldText.length}},{key:"oldEnd",get:function(){return this.oldPosition+this.oldText.length}},{key:"newLength",get:function(){return this.newText.length}},{key:"newEnd",get:function(){return this.newPosition+this.newText.length}},{key:"toString",value:function(){return 0===this.oldText.length?"(insert@".concat(this.oldPosition,' "').concat(u(this.newText),'")'):0===this.newText.length?"(delete@".concat(this.oldPosition,' "').concat(u(this.oldText),'")'):"(replace@".concat(this.oldPosition,' "').concat(u(this.oldText),'" with "').concat(u(this.newText),'")')}},{key:"writeSize",value:function(){return 8+e._writeStringSize(this.oldText)+e._writeStringSize(this.newText)}},{key:"write",value:function(t,n){return a.T4(t,this.oldPosition,n),n+=4,a.T4(t,this.newPosition,n),n+=4,n=e._writeString(t,this.oldText,n),n=e._writeString(t,this.newText,n)}}],[{key:"_writeStringSize",value:function(e){return 4+2*e.length}},{key:"_writeString",value:function(e,t,n){var i=t.length;a.T4(e,i,n),n+=4;for(var r=0;r<i;r++)a.oq(e,t.charCodeAt(r),n),n+=2;return n}},{key:"_readString",value:function(e,t){var n=a.Ag(e,t);return t+=4,(0,s.kH)(e,t,n)}},{key:"read",value:function(t,n,i){var r=a.Ag(t,n);n+=4;var o=a.Ag(t,n);n+=4;var s=e._readString(t,n);n+=e._writeStringSize(s);var u=e._readString(t,n);return n+=e._writeStringSize(u),i.push(new e(r,s,o,u)),n}}]),e}();function c(e,t){return null===e||0===e.length?t:new d(e,t).compress()}var d=function(){function e(t,n){(0,r.Z)(this,e),this._prevEdits=t,this._currEdits=n,this._result=[],this._resultLen=0,this._prevLen=this._prevEdits.length,this._prevDeltaOffset=0,this._currLen=this._currEdits.length,this._currDeltaOffset=0}return(0,o.Z)(e,[{key:"compress",value:function(){for(var t=0,n=0,r=this._getPrev(t),o=this._getCurr(n);t<this._prevLen||n<this._currLen;)if(null!==r)if(null!==o)if(o.oldEnd<=r.newPosition)this._acceptCurr(o),o=this._getCurr(++n);else if(r.newEnd<=o.oldPosition)this._acceptPrev(r),r=this._getPrev(++t);else if(o.oldPosition<r.newPosition){var a=e._splitCurr(o,r.newPosition-o.oldPosition),s=(0,i.Z)(a,2),u=s[0],c=s[1];this._acceptCurr(u),o=c}else if(r.newPosition<o.oldPosition){var d=e._splitPrev(r,o.oldPosition-r.newPosition),h=(0,i.Z)(d,2),f=h[0],p=h[1];this._acceptPrev(f),r=p}else{var g=void 0,v=void 0;if(o.oldEnd===r.newEnd)g=r,v=o,r=this._getPrev(++t),o=this._getCurr(++n);else if(o.oldEnd<r.newEnd){var m=e._splitPrev(r,o.oldLength),_=(0,i.Z)(m,2);g=_[0],v=o,r=_[1],o=this._getCurr(++n)}else{var y=e._splitCurr(o,r.newLength),b=(0,i.Z)(y,2),w=b[0],C=b[1];g=r,v=w,r=this._getPrev(++t),o=C}this._result[this._resultLen++]=new l(g.oldPosition,g.oldText,v.newPosition,v.newText),this._prevDeltaOffset+=g.newLength-g.oldLength,this._currDeltaOffset+=v.newLength-v.oldLength}else this._acceptPrev(r),r=this._getPrev(++t);else this._acceptCurr(o),o=this._getCurr(++n);var k=e._merge(this._result);return e._removeNoOps(k)}},{key:"_acceptCurr",value:function(t){this._result[this._resultLen++]=e._rebaseCurr(this._prevDeltaOffset,t),this._currDeltaOffset+=t.newLength-t.oldLength}},{key:"_getCurr",value:function(e){return e<this._currLen?this._currEdits[e]:null}},{key:"_acceptPrev",value:function(t){this._result[this._resultLen++]=e._rebasePrev(this._currDeltaOffset,t),this._prevDeltaOffset+=t.newLength-t.oldLength}},{key:"_getPrev",value:function(e){return e<this._prevLen?this._prevEdits[e]:null}}],[{key:"_rebaseCurr",value:function(e,t){return new l(t.oldPosition-e,t.oldText,t.newPosition,t.newText)}},{key:"_rebasePrev",value:function(e,t){return new l(t.oldPosition,t.oldText,t.newPosition+e,t.newText)}},{key:"_splitPrev",value:function(e,t){var n=e.newText.substr(0,t),i=e.newText.substr(t);return[new l(e.oldPosition,e.oldText,e.newPosition,n),new l(e.oldEnd,"",e.newPosition+t,i)]}},{key:"_splitCurr",value:function(e,t){var n=e.oldText.substr(0,t),i=e.oldText.substr(t);return[new l(e.oldPosition,n,e.newPosition,e.newText),new l(e.oldPosition+t,i,e.newEnd,"")]}},{key:"_merge",value:function(e){if(0===e.length)return e;for(var t=[],n=0,i=e[0],r=1;r<e.length;r++){var o=e[r];i.oldEnd===o.oldPosition?i=new l(i.oldPosition,i.oldText+o.oldText,i.newPosition,i.newText+o.newText):(t[n++]=i,i=o)}return t[n++]=i,t}},{key:"_removeNoOps",value:function(e){if(0===e.length)return e;for(var t=[],n=0,i=0;i<e.length;i++){var r=e[i];r.oldText!==r.newText&&(t[n++]=r)}return t}}]),e}()},28893:function(e,t,n){"use strict";n.d(t,{qx:function(){return ot},yO:function(){return Je}});var i=n(29439),r=n(97326),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(15671),c=n(43144),d=n(8729),h=n(11732),f=n(81626),p=n(51747),g=n(67775),v=n(76556),m=n(67297),_=n(67033),y=n(74964),b=n(46502),w=n(57179),C=(0,c.Z)((function e(){(0,l.Z)(this,e),this.spacesDiff=0,this.looksLikeAlignment=!1}));function k(e,t,n,i,r){var o;for(r.spacesDiff=0,r.looksLikeAlignment=!1,o=0;o<t&&o<i;o++){if(e.charCodeAt(o)!==n.charCodeAt(o))break}for(var a=0,s=0,u=o;u<t;u++){32===e.charCodeAt(u)?a++:s++}for(var l=0,c=0,d=o;d<i;d++){32===n.charCodeAt(d)?l++:c++}if(!(a>0&&s>0)&&!(l>0&&c>0)){var h=Math.abs(s-c),f=Math.abs(a-l);if(0===h)return r.spacesDiff=f,void(f>0&&0<=l-1&&l-1<e.length&&l<n.length&&32!==n.charCodeAt(l)&&32===e.charCodeAt(l-1)&&44===e.charCodeAt(e.length-1)&&(r.looksLikeAlignment=!0));f%h!==0||(r.spacesDiff=f/h)}}function S(e,t,n){for(var i=Math.min(e.getLineCount(),1e4),r=0,o=0,a="",s=0,u=[0,0,0,0,0,0,0,0,0],l=new C,c=1;c<=i;c++){for(var d=e.getLineLength(c),h=e.getLineContent(c),f=d<=65536,p=!1,g=0,v=0,m=0,_=0,y=d;_<y;_++){var b=f?h.charCodeAt(_):e.getLineCharCode(c,_);if(9===b)m++;else{if(32!==b){p=!0,g=_;break}v++}}if(p&&(m>0?r++:v>1&&o++,k(a,s,h,g,l),!l.looksLikeAlignment||n&&t===l.spacesDiff)){var w=l.spacesDiff;w<=8&&u[w]++,a=h,s=g}}var S=n;r!==o&&(S=r<o);var x=t;if(S){var L=S?0:.1*i;[2,4,6,8,3,5,7].forEach((function(e){var t=u[e];t>L&&(L=t,x=e)})),4===x&&u[4]>0&&u[2]>0&&u[2]>=u[4]/2&&(x=2)}return{insertSpaces:S,tabSize:x}}function x(e){return(1&e.metadata)>>>0}function L(e,t){e.metadata=254&e.metadata|t<<0}function E(e){return(2&e.metadata)>>>1===1}function N(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function D(e){return(4&e.metadata)>>>2===1}function M(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function T(e){return(8&e.metadata)>>>3===1}function O(e,t){e.metadata=247&e.metadata|(t?1:0)<<3}function I(e,t){e.metadata=207&e.metadata|t<<4}function A(e,t){e.metadata=191&e.metadata|(t?1:0)<<6}var R=function(){function e(t,n,i){(0,l.Z)(this,e),this.metadata=0,this.parent=this,this.left=this,this.right=this,L(this,1),this.start=n,this.end=i,this.delta=0,this.maxEnd=i,this.id=t,this.ownerId=0,this.options=null,M(this,!1),I(this,1),O(this,!1),A(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=n,this.cachedAbsoluteEnd=i,this.range=null,N(this,!1)}return(0,c.Z)(e,[{key:"reset",value:function(e,t,n,i){this.start=t,this.end=n,this.maxEnd=n,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=i}},{key:"setOptions",value:function(e){this.options=e;var t=this.options.className;M(this,"squiggly-error"===t||"squiggly-warning"===t||"squiggly-info"===t),I(this,this.options.stickiness),O(this,!(!this.options.overviewRuler||!this.options.overviewRuler.color)),A(this,this.options.collapseOnReplaceEdit)}},{key:"setCachedOffsets",value:function(e,t,n){this.cachedVersionId!==n&&(this.range=null),this.cachedVersionId=n,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}},{key:"detach",value:function(){this.parent=null,this.left=null,this.right=null}}]),e}(),P=new R(null,0,0);P.parent=P,P.left=P,P.right=P,L(P,0);var Z=function(){function e(){(0,l.Z)(this,e),this.root=P,this.requestNormalizeDelta=!1}return(0,c.Z)(e,[{key:"intervalSearch",value:function(e,t,n,i,r){return this.root===P?[]:function(e,t,n,i,r,o){var a=e.root,s=0,u=0,l=0,c=[],d=0;for(;a!==P;)if(E(a))N(a.left,!1),N(a.right,!1),a===a.parent.right&&(s-=a.parent.delta),a=a.parent;else{if(!E(a.left)){if(s+a.maxEnd<t){N(a,!0);continue}if(a.left!==P){a=a.left;continue}}if((u=s+a.start)>n)N(a,!0);else{if((l=s+a.end)>=t){a.setCachedOffsets(u,l,o);var h=!0;i&&a.ownerId&&a.ownerId!==i&&(h=!1),r&&D(a)&&(h=!1),h&&(c[d++]=a)}N(a,!0),a.right===P||E(a.right)||(s+=a.delta,a=a.right)}}return N(e.root,!1),c}(this,e,t,n,i,r)}},{key:"search",value:function(e,t,n){return this.root===P?[]:function(e,t,n,i){var r=e.root,o=0,a=0,s=0,u=[],l=0;for(;r!==P;)if(E(r))N(r.left,!1),N(r.right,!1),r===r.parent.right&&(o-=r.parent.delta),r=r.parent;else if(r.left===P||E(r.left)){a=o+r.start,s=o+r.end,r.setCachedOffsets(a,s,i);var c=!0;t&&r.ownerId&&r.ownerId!==t&&(c=!1),n&&D(r)&&(c=!1),c&&(u[l++]=r),N(r,!0),r.right===P||E(r.right)||(o+=r.delta,r=r.right)}else r=r.left;return N(e.root,!1),u}(this,e,t,n)}},{key:"collectNodesFromOwner",value:function(e){return function(e,t){var n=e.root,i=[],r=0;for(;n!==P;)E(n)?(N(n.left,!1),N(n.right,!1),n=n.parent):n.left===P||E(n.left)?(n.ownerId===t&&(i[r++]=n),N(n,!0),n.right===P||E(n.right)||(n=n.right)):n=n.left;return N(e.root,!1),i}(this,e)}},{key:"collectNodesPostOrder",value:function(){return function(e){var t=e.root,n=[],i=0;for(;t!==P;)E(t)?(N(t.left,!1),N(t.right,!1),t=t.parent):t.left===P||E(t.left)?t.right===P||E(t.right)?(n[i++]=t,N(t,!0)):t=t.right:t=t.left;return N(e.root,!1),n}(this)}},{key:"insert",value:function(e){H(this,e),this._normalizeDeltaIfNecessary()}},{key:"delete",value:function(e){B(this,e),this._normalizeDeltaIfNecessary()}},{key:"resolveNode",value:function(e,t){for(var n=e,i=0;e!==this.root;)e===e.parent.right&&(i+=e.parent.delta),e=e.parent;var r=n.start+i,o=n.end+i;n.setCachedOffsets(r,o,t)}},{key:"acceptReplace",value:function(e,t,n,i){for(var r=function(e,t,n){var i=e.root,r=0,o=0,a=0,s=[],u=0;for(;i!==P;)if(E(i))N(i.left,!1),N(i.right,!1),i===i.parent.right&&(r-=i.parent.delta),i=i.parent;else{if(!E(i.left)){if(r+i.maxEnd<t){N(i,!0);continue}if(i.left!==P){i=i.left;continue}}(o=r+i.start)>n?N(i,!0):((a=r+i.end)>=t&&(i.setCachedOffsets(o,a,0),s[u++]=i),N(i,!0),i.right===P||E(i.right)||(r+=i.delta,i=i.right))}return N(e.root,!1),s}(this,e,e+t),o=0,a=r.length;o<a;o++){B(this,r[o])}this._normalizeDeltaIfNecessary(),function(e,t,n,i){var r=e.root,o=0,a=i-(n-t);for(;r!==P;)if(E(r))N(r.left,!1),N(r.right,!1),r===r.parent.right&&(o-=r.parent.delta),U(r),r=r.parent;else{if(!E(r.left)){if(o+r.maxEnd<t){N(r,!0);continue}if(r.left!==P){r=r.left;continue}}o+r.start>n?(r.start+=a,r.end+=a,r.delta+=a,(r.delta<-1073741824||r.delta>1073741824)&&(e.requestNormalizeDelta=!0),N(r,!0)):(N(r,!0),r.right===P||E(r.right)||(o+=r.delta,r=r.right))}N(e.root,!1)}(this,e,e+t,n),this._normalizeDeltaIfNecessary();for(var s=0,u=r.length;s<u;s++){var l=r[s];l.start=l.cachedAbsoluteStart,l.end=l.cachedAbsoluteEnd,j(l,e,e+t,n,i),l.maxEnd=l.end,H(this,l)}this._normalizeDeltaIfNecessary()}},{key:"_normalizeDeltaIfNecessary",value:function(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,function(e){var t=e.root,n=0;for(;t!==P;)t.left===P||E(t.left)?t.right===P||E(t.right)?(t.start=n+t.start,t.end=n+t.end,t.delta=0,U(t),N(t,!0),N(t.left,!1),N(t.right,!1),t===t.parent.right&&(n-=t.parent.delta),t=t.parent):(n+=t.delta,t=t.right):t=t.left;N(e.root,!1)}(this))}}]),e}();function F(e,t,n,i){return e<n||!(e>n)&&(1!==i&&(2===i||t))}function j(e,t,n,i,r){var o=function(e){return(48&e.metadata)>>>4}(e),a=0===o||2===o,s=1===o||2===o,u=n-t,l=i,c=Math.min(u,l),d=e.start,h=!1,f=e.end,p=!1;t<=d&&f<=n&&function(e){return(64&e.metadata)>>>6===1}(e)&&(e.start=t,h=!0,e.end=t,p=!0);var g=r?1:u>0?2:0;if(!h&&F(d,a,t,g)&&(h=!0),!p&&F(f,s,t,g)&&(p=!0),c>0&&!r){var v=u>l?2:0;!h&&F(d,a,t+c,v)&&(h=!0),!p&&F(f,s,t+c,v)&&(p=!0)}var m=r?1:0;!h&&F(d,a,n,m)&&(e.start=t+l,h=!0),!p&&F(f,s,n,m)&&(e.end=t+l,p=!0);var _=l-u;h||(e.start=Math.max(0,d+_)),p||(e.end=Math.max(0,f+_)),e.start>e.end&&(e.end=e.start)}function H(e,t){if(e.root===P)return t.parent=P,t.left=P,t.right=P,L(t,0),e.root=t,e.root;!function(e,t){var n=0,i=e.root,r=t.start,o=t.end;for(;;){if(q(r,o,i.start+n,i.end+n)<0){if(i.left===P){t.start-=n,t.end-=n,t.maxEnd-=n,i.left=t;break}i=i.left}else{if(i.right===P){t.start-=n+i.delta,t.end-=n+i.delta,t.maxEnd-=n+i.delta,i.right=t;break}n+=i.delta,i=i.right}}t.parent=i,t.left=P,t.right=P,L(t,1)}(e,t),K(t.parent);for(var n=t;n!==e.root&&1===x(n.parent);)if(n.parent===n.parent.parent.left){var i=n.parent.parent.right;1===x(i)?(L(n.parent,0),L(i,0),L(n.parent.parent,1),n=n.parent.parent):(n===n.parent.right&&W(e,n=n.parent),L(n.parent,0),L(n.parent.parent,1),V(e,n.parent.parent))}else{var r=n.parent.parent.left;1===x(r)?(L(n.parent,0),L(r,0),L(n.parent.parent,1),n=n.parent.parent):(n===n.parent.left&&V(e,n=n.parent),L(n.parent,0),L(n.parent.parent,1),W(e,n.parent.parent))}return L(e.root,0),t}function B(e,t){var n,i;if(t.left===P?(i=t,(n=t.right).delta+=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta):t.right===P?(n=t.left,i=t):((n=(i=function(e){for(;e.left!==P;)e=e.left;return e}(t.right)).right).start+=i.delta,n.end+=i.delta,n.delta+=i.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=t.delta,i.end+=t.delta,i.delta=t.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0)),i===e.root)return e.root=n,L(n,0),t.detach(),z(),U(n),void(e.root.parent=P);var r,o=1===x(i);if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?n.parent=i.parent:(i.parent===t?n.parent=i:n.parent=i.parent,i.left=t.left,i.right=t.right,i.parent=t.parent,L(i,x(t)),t===e.root?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left!==P&&(i.left.parent=i),i.right!==P&&(i.right.parent=i)),t.detach(),o)return K(n.parent),i!==t&&(K(i),K(i.parent)),void z();for(K(n),K(n.parent),i!==t&&(K(i),K(i.parent));n!==e.root&&0===x(n);)n===n.parent.left?(1===x(r=n.parent.right)&&(L(r,0),L(n.parent,1),W(e,n.parent),r=n.parent.right),0===x(r.left)&&0===x(r.right)?(L(r,1),n=n.parent):(0===x(r.right)&&(L(r.left,0),L(r,1),V(e,r),r=n.parent.right),L(r,x(n.parent)),L(n.parent,0),L(r.right,0),W(e,n.parent),n=e.root)):(1===x(r=n.parent.left)&&(L(r,0),L(n.parent,1),V(e,n.parent),r=n.parent.left),0===x(r.left)&&0===x(r.right)?(L(r,1),n=n.parent):(0===x(r.left)&&(L(r.right,0),L(r,1),W(e,r),r=n.parent.left),L(r,x(n.parent)),L(n.parent,0),L(r.left,0),V(e,n.parent),n=e.root));L(n,0),z()}function z(){P.parent=P,P.delta=0,P.start=0,P.end=0}function W(e,t){var n=t.right;n.delta+=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta,t.right=n.left,n.left!==P&&(n.left.parent=t),n.parent=t.parent,t.parent===P?e.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n,U(t),U(n)}function V(e,t){var n=t.left;t.delta-=n.delta,(t.delta<-1073741824||t.delta>1073741824)&&(e.requestNormalizeDelta=!0),t.start-=n.delta,t.end-=n.delta,t.left=n.right,n.right!==P&&(n.right.parent=t),n.parent=t.parent,t.parent===P?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n,U(t),U(n)}function Y(e){var t=e.end;if(e.left!==P){var n=e.left.maxEnd;n>t&&(t=n)}if(e.right!==P){var i=e.right.maxEnd+e.delta;i>t&&(t=i)}return t}function U(e){e.maxEnd=Y(e)}function K(e){for(;e!==P;){var t=Y(e);if(e.maxEnd===t)return;e.maxEnd=t,e=e.parent}}function q(e,t,n,i){return e===n?t-i:e-n}var G=n(37762),$=function(){function e(t,n){(0,l.Z)(this,e),this.piece=t,this.color=n,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}return(0,c.Z)(e,[{key:"next",value:function(){if(this.right!==Q)return X(this.right);for(var e=this;e.parent!==Q&&e.parent.left!==e;)e=e.parent;return e.parent===Q?Q:e.parent}},{key:"prev",value:function(){if(this.left!==Q)return J(this.left);for(var e=this;e.parent!==Q&&e.parent.right!==e;)e=e.parent;return e.parent===Q?Q:e.parent}},{key:"detach",value:function(){this.parent=null,this.left=null,this.right=null}}]),e}(),Q=new $(null,0);function X(e){for(;e.left!==Q;)e=e.left;return e}function J(e){for(;e.right!==Q;)e=e.right;return e}function ee(e){return e===Q?0:e.size_left+e.piece.length+ee(e.right)}function te(e){return e===Q?0:e.lf_left+e.piece.lineFeedCnt+te(e.right)}function ne(){Q.parent=Q}function ie(e,t){var n=t.right;n.size_left+=t.size_left+(t.piece?t.piece.length:0),n.lf_left+=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),t.right=n.left,n.left!==Q&&(n.left.parent=t),n.parent=t.parent,t.parent===Q?e.root=n:t.parent.left===t?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n}function re(e,t){var n=t.left;t.left=n.right,n.right!==Q&&(n.right.parent=t),n.parent=t.parent,t.size_left-=n.size_left+(n.piece?n.piece.length:0),t.lf_left-=n.lf_left+(n.piece?n.piece.lineFeedCnt:0),t.parent===Q?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n}function oe(e,t){var n,i;if(n=t.left===Q?(i=t).right:t.right===Q?(i=t).left:(i=X(t.right)).right,i===e.root)return e.root=n,n.color=0,t.detach(),ne(),void(e.root.parent=Q);var r=1===i.color;if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?(n.parent=i.parent,ue(e,n)):(i.parent===t?n.parent=i:n.parent=i.parent,ue(e,n),i.left=t.left,i.right=t.right,i.parent=t.parent,i.color=t.color,t===e.root?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left!==Q&&(i.left.parent=i),i.right!==Q&&(i.right.parent=i),i.size_left=t.size_left,i.lf_left=t.lf_left,ue(e,i)),t.detach(),n.parent.left===n){var o=ee(n),a=te(n);if(o!==n.parent.size_left||a!==n.parent.lf_left){var s=o-n.parent.size_left,u=a-n.parent.lf_left;n.parent.size_left=o,n.parent.lf_left=a,se(e,n.parent,s,u)}}if(ue(e,n.parent),r)ne();else{for(var l;n!==e.root&&0===n.color;)n===n.parent.left?(1===(l=n.parent.right).color&&(l.color=0,n.parent.color=1,ie(e,n.parent),l=n.parent.right),0===l.left.color&&0===l.right.color?(l.color=1,n=n.parent):(0===l.right.color&&(l.left.color=0,l.color=1,re(e,l),l=n.parent.right),l.color=n.parent.color,n.parent.color=0,l.right.color=0,ie(e,n.parent),n=e.root)):(1===(l=n.parent.left).color&&(l.color=0,n.parent.color=1,re(e,n.parent),l=n.parent.left),0===l.left.color&&0===l.right.color?(l.color=1,n=n.parent):(0===l.left.color&&(l.right.color=0,l.color=1,ie(e,l),l=n.parent.left),l.color=n.parent.color,n.parent.color=0,l.left.color=0,re(e,n.parent),n=e.root));n.color=0,ne()}}function ae(e,t){for(ue(e,t);t!==e.root&&1===t.parent.color;)if(t.parent===t.parent.parent.left){var n=t.parent.parent.right;1===n.color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&ie(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,re(e,t.parent.parent))}else{var i=t.parent.parent.left;1===i.color?(t.parent.color=0,i.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.left&&re(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,ie(e,t.parent.parent))}e.root.color=0}function se(e,t,n,i){for(;t!==e.root&&t!==Q;)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}function ue(e,t){var n=0,i=0;if(t!==e.root){if(0===n){for(;t!==e.root&&t===t.parent.right;)t=t.parent;if(t===e.root)return;n=ee((t=t.parent).left)-t.size_left,i=te(t.left)-t.lf_left,t.size_left+=n,t.lf_left+=i}for(;t!==e.root&&(0!==n||0!==i);)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}}Q.parent=Q,Q.left=Q,Q.right=Q,Q.color=0;var le=n(44322),ce=65535;function de(e){var t;return(t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length)).set(e,0),t}var he=(0,c.Z)((function e(t,n,i,r,o){(0,l.Z)(this,e),this.lineStarts=t,this.cr=n,this.lf=i,this.crlf=r,this.isBasicASCII=o}));function fe(e){for(var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=[0],i=1,r=0,o=e.length;r<o;r++){var a=e.charCodeAt(r);13===a?r+1<o&&10===e.charCodeAt(r+1)?(n[i++]=r+2,r++):n[i++]=r+1:10===a&&(n[i++]=r+1)}return t?de(n):n}var pe=(0,c.Z)((function e(t,n,i,r,o){(0,l.Z)(this,e),this.bufferIndex=t,this.start=n,this.end=i,this.lineFeedCnt=r,this.length=o})),ge=(0,c.Z)((function e(t,n){(0,l.Z)(this,e),this.buffer=t,this.lineStarts=n})),ve=function(){function e(t,n){var i=this;(0,l.Z)(this,e),this._pieces=[],this._tree=t,this._BOM=n,this._index=0,t.root!==Q&&t.iterate(t.root,(function(e){return e!==Q&&i._pieces.push(e.piece),!0}))}return(0,c.Z)(e,[{key:"read",value:function(){return 0===this._pieces.length?0===this._index?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:0===this._index?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}]),e}(),me=function(){function e(t){(0,l.Z)(this,e),this._limit=t,this._cache=[]}return(0,c.Z)(e,[{key:"get",value:function(e){for(var t=this._cache.length-1;t>=0;t--){var n=this._cache[t];if(n.nodeStartOffset<=e&&n.nodeStartOffset+n.node.piece.length>=e)return n}return null}},{key:"get2",value:function(e){for(var t=this._cache.length-1;t>=0;t--){var n=this._cache[t];if(n.nodeStartLineNumber&&n.nodeStartLineNumber<e&&n.nodeStartLineNumber+n.node.piece.lineFeedCnt>=e)return n}return null}},{key:"set",value:function(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}},{key:"validate",value:function(e){for(var t=!1,n=this._cache,i=0;i<n.length;i++){var r=n[i];(null===r.node.parent||r.nodeStartOffset>=e)&&(n[i]=null,t=!0)}if(t){var o,a=[],s=(0,G.Z)(n);try{for(s.s();!(o=s.n()).done;){var u=o.value;null!==u&&a.push(u)}}catch(l){s.e(l)}finally{s.f()}this._cache=a}}}]),e}(),_e=function(){function e(t,n,i){(0,l.Z)(this,e),this.create(t,n,i)}return(0,c.Z)(e,[{key:"create",value:function(e,t,n){this._buffers=[new ge("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=Q,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=n;for(var i=null,r=0,o=e.length;r<o;r++)if(e[r].buffer.length>0){e[r].lineStarts||(e[r].lineStarts=fe(e[r].buffer));var a=new pe(r+1,{line:0,column:0},{line:e[r].lineStarts.length-1,column:e[r].buffer.length-e[r].lineStarts[e[r].lineStarts.length-1]},e[r].lineStarts.length-1,e[r].buffer.length);this._buffers.push(e[r]),i=this.rbInsertRight(i,a)}this._searchCache=new me(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}},{key:"normalizeEOL",value:function(e){var t=this,n=ce,i=n-Math.floor(n/3),r=2*i,o="",a=0,s=[];if(this.iterate(this.root,(function(n){var u=t.getNodeContent(n),l=u.length;if(a<=i||a+l<r)return o+=u,a+=l,!0;var c=o.replace(/\r\n|\r|\n/g,e);return s.push(new ge(c,fe(c))),o=u,a=l,!0})),a>0){var u=o.replace(/\r\n|\r|\n/g,e);s.push(new ge(u,fe(u)))}this.create(s,e,!0)}},{key:"getEOL",value:function(){return this._EOL}},{key:"setEOL",value:function(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}},{key:"createSnapshot",value:function(e){return new ve(this,e)}},{key:"getOffsetAt",value:function(e,t){for(var n=0,i=this.root;i!==Q;)if(i.left!==Q&&i.lf_left+1>=e)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt+1>=e)return(n+=i.size_left)+(this.getAccumulatedValue(i,e-i.lf_left-2)+t-1);e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right}return n}},{key:"getPositionAt",value:function(e){e=Math.floor(e),e=Math.max(0,e);for(var t=this.root,n=0,i=e;t!==Q;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){var r=this.getIndexOf(t,e-t.size_left);if(n+=t.lf_left+r.index,0===r.index){var o=i-this.getOffsetAt(n+1,1);return new m.L(n+1,o+1)}return new m.L(n+1,r.remainder+1)}if(e-=t.size_left+t.piece.length,n+=t.lf_left+t.piece.lineFeedCnt,t.right===Q){var a=i-e-this.getOffsetAt(n+1,1);return new m.L(n+1,a+1)}t=t.right}return new m.L(1,1)}},{key:"getValueInRange",value:function(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";var n=this.nodeAt2(e.startLineNumber,e.startColumn),i=this.nodeAt2(e.endLineNumber,e.endColumn),r=this.getValueInRange2(n,i);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?r:r.replace(/\r\n|\r|\n/g,t):r}},{key:"getValueInRange2",value:function(e,t){if(e.node===t.node){var n=e.node,i=this._buffers[n.piece.bufferIndex].buffer,r=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i.substring(r+e.remainder,r+t.remainder)}var o=e.node,a=this._buffers[o.piece.bufferIndex].buffer,s=this.offsetInBuffer(o.piece.bufferIndex,o.piece.start),u=a.substring(s+e.remainder,s+o.piece.length);for(o=o.next();o!==Q;){var l=this._buffers[o.piece.bufferIndex].buffer,c=this.offsetInBuffer(o.piece.bufferIndex,o.piece.start);if(o===t.node){u+=l.substring(c,c+t.remainder);break}u+=l.substr(c,o.piece.length),o=o.next()}return u}},{key:"getLinesContent",value:function(){var e=this,t=[],n=0,i="",r=!1;return this.iterate(this.root,(function(o){if(o===Q)return!0;var a=o.piece,s=a.length;if(0===s)return!0;var u=e._buffers[a.bufferIndex].buffer,l=e._buffers[a.bufferIndex].lineStarts,c=a.start.line,d=a.end.line,h=l[c]+a.start.column;if(r&&(10===u.charCodeAt(h)&&(h++,s--),t[n++]=i,i="",r=!1,0===s))return!0;if(c===d)return e._EOLNormalized||13!==u.charCodeAt(h+s-1)?i+=u.substr(h,s):(r=!0,i+=u.substr(h,s-1)),!0;i+=e._EOLNormalized?u.substring(h,Math.max(h,l[c+1]-e._EOLLength)):u.substring(h,l[c+1]).replace(/(\r\n|\r|\n)$/,""),t[n++]=i;for(var f=c+1;f<d;f++)i=e._EOLNormalized?u.substring(l[f],l[f+1]-e._EOLLength):u.substring(l[f],l[f+1]).replace(/(\r\n|\r|\n)$/,""),t[n++]=i;return e._EOLNormalized||13!==u.charCodeAt(l[d]+a.end.column-1)?i=u.substr(l[d],a.end.column):(r=!0,0===a.end.column?n--:i=u.substr(l[d],a.end.column-1)),!0})),r&&(t[n++]=i,i=""),t[n++]=i,t}},{key:"getLength",value:function(){return this._length}},{key:"getLineCount",value:function(){return this._lineCnt}},{key:"getLineContent",value:function(e){return this._lastVisitedLine.lineNumber===e||(this._lastVisitedLine.lineNumber=e,e===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(e):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(e,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(e).replace(/(\r\n|\r|\n)$/,"")),this._lastVisitedLine.value}},{key:"_getCharCode",value:function(e){if(e.remainder===e.node.piece.length){var t=e.node.next();if(!t)return 0;var n=this._buffers[t.piece.bufferIndex],i=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start);return n.buffer.charCodeAt(i)}var r=this._buffers[e.node.piece.bufferIndex],o=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start)+e.remainder;return r.buffer.charCodeAt(o)}},{key:"getLineCharCode",value:function(e,t){var n=this.nodeAt2(e,t+1);return this._getCharCode(n)}},{key:"getLineLength",value:function(e){if(e===this.getLineCount()){var t=this.getOffsetAt(e,1);return this.getLength()-t}return this.getOffsetAt(e+1,1)-this.getOffsetAt(e,1)-this._EOLLength}},{key:"findMatchesInNode",value:function(e,t,n,i,r,o,a,s,u,l,c){var d,h,f,p=this._buffers[e.piece.bufferIndex],g=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),v=this.offsetInBuffer(e.piece.bufferIndex,r),m=this.offsetInBuffer(e.piece.bufferIndex,o),y={line:0,column:0};t._wordSeparators?(h=p.buffer.substring(v,m),f=function(e){return e+v},t.reset(0)):(h=p.buffer,f=function(e){return e},t.reset(v));do{if(d=t.next(h)){if(f(d.index)>=m)return l;this.positionInBuffer(e,f(d.index)-g,y);var b=this.getLineFeedCnt(e.piece.bufferIndex,r,y),w=y.line===r.line?y.column-r.column+i:y.column+1,C=w+d[0].length;if(c[l++]=(0,le.iE)(new _.e(n+b,w,n+b,C),d,s),f(d.index)+d[0].length>=m)return l;if(l>=u)return l}}while(d);return l}},{key:"findMatchesLineByLine",value:function(e,t,n,i){var r=[],o=0,a=new le.sz(t.wordSeparators,t.regex),s=this.nodeAt2(e.startLineNumber,e.startColumn);if(null===s)return[];var u=this.nodeAt2(e.endLineNumber,e.endColumn);if(null===u)return[];var l=this.positionInBuffer(s.node,s.remainder),c=this.positionInBuffer(u.node,u.remainder);if(s.node===u.node)return this.findMatchesInNode(s.node,a,e.startLineNumber,e.startColumn,l,c,t,n,i,o,r),r;for(var d=e.startLineNumber,h=s.node;h!==u.node;){var f=this.getLineFeedCnt(h.piece.bufferIndex,l,h.piece.end);if(f>=1){var p=this._buffers[h.piece.bufferIndex].lineStarts,g=this.offsetInBuffer(h.piece.bufferIndex,h.piece.start),v=p[l.line+f],m=d===e.startLineNumber?e.startColumn:1;if((o=this.findMatchesInNode(h,a,d,m,l,this.positionInBuffer(h,v-g),t,n,i,o,r))>=i)return r;d+=f}var _=d===e.startLineNumber?e.startColumn-1:0;if(d===e.endLineNumber){var y=this.getLineContent(d).substring(_,e.endColumn-1);return o=this._findMatchesInLine(t,a,y,e.endLineNumber,_,o,r,n,i),r}if((o=this._findMatchesInLine(t,a,this.getLineContent(d).substr(_),d,_,o,r,n,i))>=i)return r;d++,h=(s=this.nodeAt2(d,1)).node,l=this.positionInBuffer(s.node,s.remainder)}if(d===e.endLineNumber){var b=d===e.startLineNumber?e.startColumn-1:0,w=this.getLineContent(d).substring(b,e.endColumn-1);return o=this._findMatchesInLine(t,a,w,e.endLineNumber,b,o,r,n,i),r}var C=d===e.startLineNumber?e.startColumn:1;return o=this.findMatchesInNode(u.node,a,d,C,l,c,t,n,i,o,r),r}},{key:"_findMatchesInLine",value:function(e,t,n,i,r,o,a,s,u){var l,c=e.wordSeparators;if(!s&&e.simpleSearch){for(var d=e.simpleSearch,h=d.length,f=n.length,p=-h;-1!==(p=n.indexOf(d,p+h));)if((!c||(0,le.cM)(c,n,f,p,h))&&(a[o++]=new b.tk(new _.e(i,p+1+r,i,p+1+h+r),null),o>=u))return o;return o}t.reset(0);do{if((l=t.next(n))&&(a[o++]=(0,le.iE)(new _.e(i,l.index+1+r,i,l.index+1+l[0].length+r),l,s),o>=u))return o}while(l);return o}},{key:"insert",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==Q){var i=this.nodeAt(e),r=i.node,o=i.remainder,a=i.nodeStartOffset,s=r.piece,u=s.bufferIndex,l=this.positionInBuffer(r,o);if(0===r.piece.bufferIndex&&s.end.line===this._lastChangeBufferPos.line&&s.end.column===this._lastChangeBufferPos.column&&a+s.length===e&&t.length<ce)return this.appendToNode(r,t),void this.computeBufferMetadata();if(a===e)this.insertContentToNodeLeft(t,r),this._searchCache.validate(e);else if(a+r.piece.length>e){var c=[],d=new pe(s.bufferIndex,l,s.end,this.getLineFeedCnt(s.bufferIndex,l,s.end),this.offsetInBuffer(u,s.end)-this.offsetInBuffer(u,l));if(this.shouldCheckCRLF()&&this.endWithCR(t))if(10===this.nodeCharCodeAt(r,o)){var h={line:d.start.line+1,column:0};d=new pe(d.bufferIndex,h,d.end,this.getLineFeedCnt(d.bufferIndex,h,d.end),d.length-1),t+="\n"}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(13===this.nodeCharCodeAt(r,o-1)){var f=this.positionInBuffer(r,o-1);this.deleteNodeTail(r,f),t="\r"+t,0===r.piece.length&&c.push(r)}else this.deleteNodeTail(r,l);else this.deleteNodeTail(r,l);var p=this.createNewPieces(t);d.length>0&&this.rbInsertRight(r,d);for(var g=r,v=0;v<p.length;v++)g=this.rbInsertRight(g,p[v]);this.deleteNodes(c)}else this.insertContentToNodeRight(t,r)}else for(var m=this.createNewPieces(t),_=this.rbInsertLeft(null,m[0]),y=1;y<m.length;y++)_=this.rbInsertRight(_,m[y]);this.computeBufferMetadata()}},{key:"delete",value:function(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",!(t<=0||this.root===Q)){var n=this.nodeAt(e),i=this.nodeAt(e+t),r=n.node,o=i.node;if(r===o){var a=this.positionInBuffer(r,n.remainder),s=this.positionInBuffer(r,i.remainder);if(n.nodeStartOffset===e){if(t===r.piece.length){var u=r.next();return oe(this,r),this.validateCRLFWithPrevNode(u),void this.computeBufferMetadata()}return this.deleteNodeHead(r,s),this._searchCache.validate(e),this.validateCRLFWithPrevNode(r),void this.computeBufferMetadata()}return n.nodeStartOffset+r.piece.length===e+t?(this.deleteNodeTail(r,a),this.validateCRLFWithNextNode(r),void this.computeBufferMetadata()):(this.shrinkNode(r,a,s),void this.computeBufferMetadata())}var l=[],c=this.positionInBuffer(r,n.remainder);this.deleteNodeTail(r,c),this._searchCache.validate(e),0===r.piece.length&&l.push(r);var d=this.positionInBuffer(o,i.remainder);this.deleteNodeHead(o,d),0===o.piece.length&&l.push(o);for(var h=r.next();h!==Q&&h!==o;h=h.next())l.push(h);var f=0===r.piece.length?r.prev():r;this.deleteNodes(l),this.validateCRLFWithNextNode(f),this.computeBufferMetadata()}}},{key:"insertContentToNodeLeft",value:function(e,t){var n=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){var i=t.piece,r={line:i.start.line+1,column:0},o=new pe(i.bufferIndex,r,i.end,this.getLineFeedCnt(i.bufferIndex,r,i.end),i.length-1);t.piece=o,e+="\n",se(this,t,-1,-1),0===t.piece.length&&n.push(t)}for(var a=this.createNewPieces(e),s=this.rbInsertLeft(t,a[a.length-1]),u=a.length-2;u>=0;u--)s=this.rbInsertLeft(s,a[u]);this.validateCRLFWithPrevNode(s),this.deleteNodes(n)}},{key:"insertContentToNodeRight",value:function(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+="\n");for(var n=this.createNewPieces(e),i=this.rbInsertRight(t,n[0]),r=i,o=1;o<n.length;o++)r=this.rbInsertRight(r,n[o]);this.validateCRLFWithPrevNode(i)}},{key:"positionInBuffer",value:function(e,t,n){for(var i=e.piece,r=e.piece.bufferIndex,o=this._buffers[r].lineStarts,a=o[i.start.line]+i.start.column+t,s=i.start.line,u=i.end.line,l=0,c=0,d=0;s<=u&&(d=o[l=s+(u-s)/2|0],l!==u);)if(c=o[l+1],a<d)u=l-1;else{if(!(a>=c))break;s=l+1}return n?(n.line=l,n.column=a-d,null):{line:l,column:a-d}}},{key:"getLineFeedCnt",value:function(e,t,n){if(0===n.column)return n.line-t.line;var i=this._buffers[e].lineStarts;if(n.line===i.length-1)return n.line-t.line;var r=i[n.line+1],o=i[n.line]+n.column;if(r>o+1)return n.line-t.line;var a=o-1;return 13===this._buffers[e].buffer.charCodeAt(a)?n.line-t.line+1:n.line-t.line}},{key:"offsetInBuffer",value:function(e,t){return this._buffers[e].lineStarts[t.line]+t.column}},{key:"deleteNodes",value:function(e){for(var t=0;t<e.length;t++)oe(this,e[t])}},{key:"createNewPieces",value:function(e){if(e.length>ce){for(var t=[];e.length>ce;){var n=e.charCodeAt(ce-1),i=void 0;13===n||n>=55296&&n<=56319?(i=e.substring(0,ce-1),e=e.substring(ce-1)):(i=e.substring(0,ce),e=e.substring(ce));var r=fe(i);t.push(new pe(this._buffers.length,{line:0,column:0},{line:r.length-1,column:i.length-r[r.length-1]},r.length-1,i.length)),this._buffers.push(new ge(i,r))}var o=fe(e);return t.push(new pe(this._buffers.length,{line:0,column:0},{line:o.length-1,column:e.length-o[o.length-1]},o.length-1,e.length)),this._buffers.push(new ge(e,o)),t}var a=this._buffers[0].buffer.length,s=fe(e,!1),u=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===a&&0!==a&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},u=this._lastChangeBufferPos;for(var l=0;l<s.length;l++)s[l]+=a+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(s.slice(1)),this._buffers[0].buffer+="_"+e,a+=1}else{if(0!==a)for(var c=0;c<s.length;c++)s[c]+=a;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(s.slice(1)),this._buffers[0].buffer+=e}var d=this._buffers[0].buffer.length,h=this._buffers[0].lineStarts.length-1,f={line:h,column:d-this._buffers[0].lineStarts[h]},p=new pe(0,u,f,this.getLineFeedCnt(0,u,f),d-a);return this._lastChangeBufferPos=f,[p]}},{key:"getLineRawContent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.root,i="",r=this._searchCache.get2(e);if(r){n=r.node;var o=this.getAccumulatedValue(n,e-r.nodeStartLineNumber-1),a=this._buffers[n.piece.bufferIndex].buffer,s=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(r.nodeStartLineNumber+n.piece.lineFeedCnt!==e){var u=this.getAccumulatedValue(n,e-r.nodeStartLineNumber);return a.substring(s+o,s+u-t)}i=a.substring(s+o,s+n.piece.length)}else for(var l=0,c=e;n!==Q;)if(n.left!==Q&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){var d=this.getAccumulatedValue(n,e-n.lf_left-2),h=this.getAccumulatedValue(n,e-n.lf_left-1),f=this._buffers[n.piece.bufferIndex].buffer,p=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return l+=n.size_left,this._searchCache.set({node:n,nodeStartOffset:l,nodeStartLineNumber:c-(e-1-n.lf_left)}),f.substring(p+d,p+h-t)}if(n.lf_left+n.piece.lineFeedCnt===e-1){var g=this.getAccumulatedValue(n,e-n.lf_left-2),v=this._buffers[n.piece.bufferIndex].buffer,m=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i=v.substring(m+g,m+n.piece.length);break}e-=n.lf_left+n.piece.lineFeedCnt,l+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==Q;){var _=this._buffers[n.piece.bufferIndex].buffer;if(n.piece.lineFeedCnt>0){var y=this.getAccumulatedValue(n,0),b=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i+=_.substring(b,b+y-t)}var w=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i+=_.substr(w,n.piece.length),n=n.next()}return i}},{key:"computeBufferMetadata",value:function(){for(var e=this.root,t=1,n=0;e!==Q;)t+=e.lf_left+e.piece.lineFeedCnt,n+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=n,this._searchCache.validate(this._length)}},{key:"getIndexOf",value:function(e,t){var n=e.piece,i=this.positionInBuffer(e,t),r=i.line-n.start.line;if(this.offsetInBuffer(n.bufferIndex,n.end)-this.offsetInBuffer(n.bufferIndex,n.start)===t){var o=this.getLineFeedCnt(e.piece.bufferIndex,n.start,i);if(o!==r)return{index:o,remainder:0}}return{index:r,remainder:i.column}}},{key:"getAccumulatedValue",value:function(e,t){if(t<0)return 0;var n=e.piece,i=this._buffers[n.bufferIndex].lineStarts,r=n.start.line+t+1;return r>n.end.line?i[n.end.line]+n.end.column-i[n.start.line]-n.start.column:i[r]-i[n.start.line]-n.start.column}},{key:"deleteNodeTail",value:function(e,t){var n=e.piece,i=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.end),o=t,a=this.offsetInBuffer(n.bufferIndex,o),s=this.getLineFeedCnt(n.bufferIndex,n.start,o),u=s-i,l=a-r,c=n.length+l;e.piece=new pe(n.bufferIndex,n.start,o,s,c),se(this,e,l,u)}},{key:"deleteNodeHead",value:function(e,t){var n=e.piece,i=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.start),o=t,a=this.getLineFeedCnt(n.bufferIndex,o,n.end),s=a-i,u=r-this.offsetInBuffer(n.bufferIndex,o),l=n.length+u;e.piece=new pe(n.bufferIndex,o,n.end,a,l),se(this,e,u,s)}},{key:"shrinkNode",value:function(e,t,n){var i=e.piece,r=i.start,o=i.end,a=i.length,s=i.lineFeedCnt,u=t,l=this.getLineFeedCnt(i.bufferIndex,i.start,u),c=this.offsetInBuffer(i.bufferIndex,t)-this.offsetInBuffer(i.bufferIndex,r);e.piece=new pe(i.bufferIndex,i.start,u,l,c),se(this,e,c-a,l-s);var d=new pe(i.bufferIndex,n,o,this.getLineFeedCnt(i.bufferIndex,n,o),this.offsetInBuffer(i.bufferIndex,o)-this.offsetInBuffer(i.bufferIndex,n)),h=this.rbInsertRight(e,d);this.validateCRLFWithPrevNode(h)}},{key:"appendToNode",value:function(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+="\n");var n=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),i=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;for(var r=fe(t,!1),o=0;o<r.length;o++)r[o]+=i;if(n){var a=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:i-a}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(r.slice(1));var s=this._buffers[0].lineStarts.length-1,u={line:s,column:this._buffers[0].buffer.length-this._buffers[0].lineStarts[s]},l=e.piece.length+t.length,c=e.piece.lineFeedCnt,d=this.getLineFeedCnt(0,e.piece.start,u),h=d-c;e.piece=new pe(e.piece.bufferIndex,e.piece.start,u,d,l),this._lastChangeBufferPos=u,se(this,e,t.length,h)}},{key:"nodeAt",value:function(e){var t=this.root,n=this._searchCache.get(e);if(n)return{node:n.node,nodeStartOffset:n.nodeStartOffset,remainder:e-n.nodeStartOffset};for(var i=0;t!==Q;)if(t.size_left>e)t=t.left;else{if(t.size_left+t.piece.length>=e){i+=t.size_left;var r={node:t,remainder:e-t.size_left,nodeStartOffset:i};return this._searchCache.set(r),r}e-=t.size_left+t.piece.length,i+=t.size_left+t.piece.length,t=t.right}return null}},{key:"nodeAt2",value:function(e,t){for(var n=this.root,i=0;n!==Q;)if(n.left!==Q&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){var r=this.getAccumulatedValue(n,e-n.lf_left-2),o=this.getAccumulatedValue(n,e-n.lf_left-1);return i+=n.size_left,{node:n,remainder:Math.min(r+t-1,o),nodeStartOffset:i}}if(n.lf_left+n.piece.lineFeedCnt===e-1){var a=this.getAccumulatedValue(n,e-n.lf_left-2);if(a+t-1<=n.piece.length)return{node:n,remainder:a+t-1,nodeStartOffset:i};t-=n.piece.length-a;break}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==Q;){if(n.piece.lineFeedCnt>0){var s=this.getAccumulatedValue(n,0),u=this.offsetOfNode(n);return{node:n,remainder:Math.min(t-1,s),nodeStartOffset:u}}if(n.piece.length>=t-1)return{node:n,remainder:t-1,nodeStartOffset:this.offsetOfNode(n)};t-=n.piece.length,n=n.next()}return null}},{key:"nodeCharCodeAt",value:function(e,t){if(e.piece.lineFeedCnt<1)return-1;var n=this._buffers[e.piece.bufferIndex],i=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return n.buffer.charCodeAt(i)}},{key:"offsetOfNode",value:function(e){if(!e)return 0;for(var t=e.size_left;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}},{key:"shouldCheckCRLF",value:function(){return!(this._EOLNormalized&&"\n"===this._EOL)}},{key:"startWithLF",value:function(e){if("string"===typeof e)return 10===e.charCodeAt(0);if(e===Q||0===e.piece.lineFeedCnt)return!1;var t=e.piece,n=this._buffers[t.bufferIndex].lineStarts,i=t.start.line,r=n[i]+t.start.column;return i!==n.length-1&&(!(n[i+1]>r+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(r))}},{key:"endWithCR",value:function(e){return"string"===typeof e?13===e.charCodeAt(e.length-1):e!==Q&&0!==e.piece.lineFeedCnt&&13===this.nodeCharCodeAt(e,e.piece.length-1)}},{key:"validateCRLFWithPrevNode",value:function(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){var t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}},{key:"validateCRLFWithNextNode",value:function(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){var t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}},{key:"fixCRLF",value:function(e,t){var n,i=[],r=this._buffers[e.piece.bufferIndex].lineStarts;n=0===e.piece.end.column?{line:e.piece.end.line-1,column:r[e.piece.end.line]-r[e.piece.end.line-1]-1}:{line:e.piece.end.line,column:e.piece.end.column-1};var o=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new pe(e.piece.bufferIndex,e.piece.start,n,a,o),se(this,e,-1,-1),0===e.piece.length&&i.push(e);var s={line:t.piece.start.line+1,column:0},u=t.piece.length-1,l=this.getLineFeedCnt(t.piece.bufferIndex,s,t.piece.end);t.piece=new pe(t.piece.bufferIndex,s,t.piece.end,l,u),se(this,t,-1,-1),0===t.piece.length&&i.push(t);var c=this.createNewPieces("\r\n");this.rbInsertRight(e,c[0]);for(var d=0;d<i.length;d++)oe(this,i[d])}},{key:"adjustCarriageReturnFromNext",value:function(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){var n=t.next();if(this.startWithLF(n)){if(e+="\n",1===n.piece.length)oe(this,n);else{var i=n.piece,r={line:i.start.line+1,column:0},o=i.length-1,a=this.getLineFeedCnt(i.bufferIndex,r,i.end);n.piece=new pe(i.bufferIndex,r,i.end,a,o),se(this,n,-1,-1)}return!0}}return!1}},{key:"iterate",value:function(e,t){if(e===Q)return t(Q);var n=this.iterate(e.left,t);return n?t(e)&&this.iterate(e.right,t):n}},{key:"getNodeContent",value:function(e){if(e===Q)return"";var t=this._buffers[e.piece.bufferIndex],n=e.piece,i=this.offsetInBuffer(n.bufferIndex,n.start),r=this.offsetInBuffer(n.bufferIndex,n.end);return t.buffer.substring(i,r)}},{key:"getPieceContent",value:function(e){var t=this._buffers[e.bufferIndex],n=this.offsetInBuffer(e.bufferIndex,e.start),i=this.offsetInBuffer(e.bufferIndex,e.end);return t.buffer.substring(n,i)}},{key:"rbInsertRight",value:function(e,t){var n=new $(t,1);if(n.left=Q,n.right=Q,n.parent=Q,n.size_left=0,n.lf_left=0,this.root===Q)this.root=n,n.color=0;else if(e.right===Q)e.right=n,n.parent=e;else{var i=X(e.right);i.left=n,n.parent=i}return ae(this,n),n}},{key:"rbInsertLeft",value:function(e,t){var n=new $(t,1);if(n.left=Q,n.right=Q,n.parent=Q,n.size_left=0,n.lf_left=0,this.root===Q)this.root=n,n.color=0;else if(e.left===Q)e.left=n,n.parent=e;else{var i=J(e.left);i.right=n,n.parent=i}return ae(this,n),n}}]),e}(),ye=n(98623),be=n(51006),we=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,o,a,s,u){var c;return(0,l.Z)(this,n),(c=t.call(this))._onDidChangeContent=c._register(new h.Q5),c._BOM=i,c._mightContainNonBasicASCII=!s,c._mightContainRTL=o,c._mightContainUnusualLineTerminators=a,c._pieceTree=new _e(e,r,u),c}return(0,c.Z)(n,[{key:"mightContainRTL",value:function(){return this._mightContainRTL}},{key:"mightContainUnusualLineTerminators",value:function(){return this._mightContainUnusualLineTerminators}},{key:"resetMightContainUnusualLineTerminators",value:function(){this._mightContainUnusualLineTerminators=!1}},{key:"mightContainNonBasicASCII",value:function(){return this._mightContainNonBasicASCII}},{key:"getBOM",value:function(){return this._BOM}},{key:"getEOL",value:function(){return this._pieceTree.getEOL()}},{key:"createSnapshot",value:function(e){return this._pieceTree.createSnapshot(e?this._BOM:"")}},{key:"getOffsetAt",value:function(e,t){return this._pieceTree.getOffsetAt(e,t)}},{key:"getPositionAt",value:function(e){return this._pieceTree.getPositionAt(e)}},{key:"getRangeAt",value:function(e,t){var n=e+t,i=this.getPositionAt(e),r=this.getPositionAt(n);return new _.e(i.lineNumber,i.column,r.lineNumber,r.column)}},{key:"getValueInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e.isEmpty())return"";var n=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,n)}},{key:"getValueLengthInRange",value:function(e){if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;var t=this.getOffsetAt(e.startLineNumber,e.startColumn);return this.getOffsetAt(e.endLineNumber,e.endColumn)-t}},{key:"getCharacterCountInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this._mightContainNonBasicASCII){for(var n=0,i=e.startLineNumber,r=e.endLineNumber,o=i;o<=r;o++)for(var a=this.getLineContent(o),s=o===i?e.startColumn-1:0,u=o===r?e.endColumn-1:a.length,l=s;l<u;l++)p.ZG(a.charCodeAt(l))?(n+=1,l+=1):n+=1;return n+=this._getEndOfLine(t).length*(r-i)}return this.getValueLengthInRange(e,t)}},{key:"getLength",value:function(){return this._pieceTree.getLength()}},{key:"getLineCount",value:function(){return this._pieceTree.getLineCount()}},{key:"getLinesContent",value:function(){return this._pieceTree.getLinesContent()}},{key:"getLineContent",value:function(e){return this._pieceTree.getLineContent(e)}},{key:"getLineCharCode",value:function(e,t){return this._pieceTree.getLineCharCode(e,t)}},{key:"getLineLength",value:function(e){return this._pieceTree.getLineLength(e)}},{key:"getLineFirstNonWhitespaceColumn",value:function(e){var t=p.LC(this.getLineContent(e));return-1===t?0:t+1}},{key:"getLineLastNonWhitespaceColumn",value:function(e){var t=p.ow(this.getLineContent(e));return-1===t?0:t+2}},{key:"_getEndOfLine",value:function(e){switch(e){case 1:return"\n";case 2:return"\r\n";case 0:return this.getEOL();default:throw new Error("Unknown EOL preference")}}},{key:"setEOL",value:function(e){this._pieceTree.setEOL(e)}},{key:"applyEdits",value:function(e,t,r){for(var o=this._mightContainRTL,a=this._mightContainUnusualLineTerminators,s=this._mightContainNonBasicASCII,u=!0,l=[],c=0;c<e.length;c++){var d=e[c];u&&d._isTracked&&(u=!1);var h=d.range;if(d.text){var f=!0;s||(s=f=!p.$i(d.text)),!o&&f&&(o=p.Ut(d.text)),!a&&f&&(a=p.ab(d.text))}var g="",v=0,m=0,_=0;if(d.text){var y,w=(0,ye.QZ)(d.text),C=(0,i.Z)(w,4);v=C[0],m=C[1],_=C[2],y=C[3];var k=this.getEOL();g=0===y||y===("\r\n"===k?2:1)?d.text:d.text.replace(/\r\n|\r|\n/g,k)}l[c]={sortIndex:c,identifier:d.identifier||null,range:h,rangeOffset:this.getOffsetAt(h.startLineNumber,h.startColumn),rangeLength:this.getValueLengthInRange(h),text:g,eolCount:v,firstLineLength:m,lastLineLength:_,forceMoveMarkers:Boolean(d.forceMoveMarkers),isAutoWhitespaceEdit:d.isAutoWhitespaceEdit||!1}}l.sort(n._sortOpsAscending);for(var S=!1,x=0,L=l.length-1;x<L;x++){var E=l[x].range.getEndPosition(),N=l[x+1].range.getStartPosition();if(N.isBeforeOrEqual(E)){if(N.isBefore(E))throw new Error("Overlapping ranges are not allowed!");S=!0}}u&&(l=this._reduceOperations(l));var D=r||t?n._getInverseEditRanges(l):[],M=[];if(t)for(var T=0;T<l.length;T++){var O=l[T],I=D[T];if(O.isAutoWhitespaceEdit&&O.range.isEmpty())for(var A=I.startLineNumber;A<=I.endLineNumber;A++){var R="";A===I.startLineNumber&&(R=this.getLineContent(O.range.startLineNumber),-1!==p.LC(R))||M.push({lineNumber:A,oldContent:R})}}var P=null;if(r){var Z=0;P=[];for(var F=0;F<l.length;F++){var j=l[F],H=D[F],B=this.getValueInRange(j.range),z=j.rangeOffset+Z;Z+=j.text.length-B.length,P[F]={sortIndex:j.sortIndex,identifier:j.identifier,range:H,text:B,textChange:new be.q(j.rangeOffset,B,z,j.text)}}S||P.sort((function(e,t){return e.sortIndex-t.sortIndex}))}this._mightContainRTL=o,this._mightContainUnusualLineTerminators=a,this._mightContainNonBasicASCII=s;var W=this._doApplyEdits(l),V=null;if(t&&M.length>0){M.sort((function(e,t){return t.lineNumber-e.lineNumber})),V=[];for(var Y=0,U=M.length;Y<U;Y++){var K=M[Y].lineNumber;if(!(Y>0&&M[Y-1].lineNumber===K)){var q=M[Y].oldContent,G=this.getLineContent(K);0!==G.length&&G!==q&&-1===p.LC(G)&&V.push(K)}}}return this._onDidChangeContent.fire(),new b.je(P,W,V)}},{key:"_reduceOperations",value:function(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}},{key:"_toSingleEditOperation",value:function(e){for(var t=!1,n=e[0].range,r=e[e.length-1].range,o=new _.e(n.startLineNumber,n.startColumn,r.endLineNumber,r.endColumn),a=n.startLineNumber,s=n.startColumn,u=[],l=0,c=e.length;l<c;l++){var d=e[l],h=d.range;t=t||d.forceMoveMarkers,u.push(this.getValueInRange(new _.e(a,s,h.startLineNumber,h.startColumn))),d.text.length>0&&u.push(d.text),a=h.endLineNumber,s=h.endColumn}var f=u.join(""),p=(0,ye.QZ)(f),g=(0,i.Z)(p,3),v=g[0],m=g[1],y=g[2];return{sortIndex:0,identifier:e[0].identifier,range:o,rangeOffset:this.getOffsetAt(o.startLineNumber,o.startColumn),rangeLength:this.getValueLengthInRange(o,0),text:f,eolCount:v,firstLineLength:m,lastLineLength:y,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}},{key:"_doApplyEdits",value:function(e){e.sort(n._sortOpsDescending);for(var t=[],i=0;i<e.length;i++){var r=e[i],o=r.range.startLineNumber,a=r.range.startColumn,s=r.range.endLineNumber,u=r.range.endColumn;if(o!==s||a!==u||0!==r.text.length){r.text?(this._pieceTree.delete(r.rangeOffset,r.rangeLength),this._pieceTree.insert(r.rangeOffset,r.text,!0)):this._pieceTree.delete(r.rangeOffset,r.rangeLength);var l=new _.e(o,a,s,u);t.push({range:l,rangeLength:r.rangeLength,text:r.text,rangeOffset:r.rangeOffset,forceMoveMarkers:r.forceMoveMarkers})}}return t}},{key:"findMatchesLineByLine",value:function(e,t,n,i){return this._pieceTree.findMatchesLineByLine(e,t,n,i)}}],[{key:"_getInverseEditRanges",value:function(e){for(var t=[],n=0,i=0,r=null,o=0,a=e.length;o<a;o++){var s=e[o],u=void 0,l=void 0;r?r.range.endLineNumber===s.range.startLineNumber?(u=n,l=i+(s.range.startColumn-r.range.endColumn)):(u=n+(s.range.startLineNumber-r.range.endLineNumber),l=s.range.startColumn):(u=s.range.startLineNumber,l=s.range.startColumn);var c=void 0;if(s.text.length>0){var d=s.eolCount+1;c=1===d?new _.e(u,l,u,l+s.firstLineLength):new _.e(u,l,u+d-1,s.lastLineLength+1)}else c=new _.e(u,l,u,l);n=c.endLineNumber,i=c.endColumn,t.push(c),r=s}return t}},{key:"_sortOpsAscending",value:function(e,t){var n=_.e.compareRangesUsingEnds(e.range,t.range);return 0===n?e.sortIndex-t.sortIndex:n}},{key:"_sortOpsDescending",value:function(e,t){var n=_.e.compareRangesUsingEnds(e.range,t.range);return 0===n?t.sortIndex-e.sortIndex:-n}}]),n}(f.JT),Ce=function(){function e(t,n,i,r,o,a,s,u,c){(0,l.Z)(this,e),this._chunks=t,this._bom=n,this._cr=i,this._lf=r,this._crlf=o,this._containsRTL=a,this._containsUnusualLineTerminators=s,this._isBasicASCII=u,this._normalizeEOL=c}return(0,c.Z)(e,[{key:"_getEOL",value:function(e){var t=this._cr+this._lf+this._crlf,n=this._cr+this._crlf;return 0===t?1===e?"\n":"\r\n":n>t/2?"\r\n":"\n"}},{key:"create",value:function(e){var t=this._getEOL(e),n=this._chunks;if(this._normalizeEOL&&("\r\n"===t&&(this._cr>0||this._lf>0)||"\n"===t&&(this._cr>0||this._crlf>0)))for(var i=0,r=n.length;i<r;i++){var o=n[i].buffer.replace(/\r\n|\r|\n/g,t),a=fe(o);n[i]=new ge(o,a)}var s=new we(n,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:s,disposable:s}}}]),e}(),ke=function(){function e(){(0,l.Z)(this,e),this.chunks=[],this.BOM="",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}return(0,c.Z)(e,[{key:"acceptChunk",value:function(e){if(0!==e.length){0===this.chunks.length&&p.uS(e)&&(this.BOM=p.c1,e=e.substr(1));var t=e.charCodeAt(e.length-1);13===t||t>=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}}},{key:"_acceptChunk1",value:function(e,t){(t||0!==e.length)&&(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}},{key:"_acceptChunk2",value:function(e){var t=function(e,t){e.length=0,e[0]=0;for(var n=1,i=0,r=0,o=0,a=!0,s=0,u=t.length;s<u;s++){var l=t.charCodeAt(s);13===l?s+1<u&&10===t.charCodeAt(s+1)?(o++,e[n++]=s+2,s++):(i++,e[n++]=s+1):10===l?(r++,e[n++]=s+1):a&&9!==l&&(l<32||l>126)&&(a=!1)}var c=new he(de(e),i,r,o,a);return e.length=0,c}(this._tmpLineStarts,e);this.chunks.push(new ge(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),this.isBasicASCII||this.containsRTL||(this.containsRTL=p.Ut(e)),this.isBasicASCII||this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=p.ab(e))}},{key:"finish",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._finish(),new Ce(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}},{key:"_finish",value:function(){if(0===this.chunks.length&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;var e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);var t=fe(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}}}]),e}(),Se=(0,c.Z)((function e(){(0,l.Z)(this,e),this.changeType=1})),xe=(0,c.Z)((function e(t,n){(0,l.Z)(this,e),this.changeType=2,this.lineNumber=t,this.detail=n})),Le=(0,c.Z)((function e(t,n){(0,l.Z)(this,e),this.changeType=3,this.fromLineNumber=t,this.toLineNumber=n})),Ee=(0,c.Z)((function e(t,n,i){(0,l.Z)(this,e),this.changeType=4,this.fromLineNumber=t,this.toLineNumber=n,this.detail=i})),Ne=(0,c.Z)((function e(){(0,l.Z)(this,e),this.changeType=5})),De=function(){function e(t,n,i,r){(0,l.Z)(this,e),this.changes=t,this.versionId=n,this.isUndoing=i,this.isRedoing=r,this.resultingSelection=null}return(0,c.Z)(e,[{key:"containsEvent",value:function(e){for(var t=0,n=this.changes.length;t<n;t++){if(this.changes[t].changeType===e)return!0}return!1}}],[{key:"merge",value:function(t,n){return new e([].concat(t.changes).concat(n.changes),n.versionId,t.isUndoing||n.isUndoing,t.isRedoing||n.isRedoing)}}]),e}(),Me=function(){function e(t,n){(0,l.Z)(this,e),this.rawContentChangedEvent=t,this.contentChangedEvent=n}return(0,c.Z)(e,[{key:"merge",value:function(t){var n=De.merge(this.rawContentChangedEvent,t.rawContentChangedEvent),i=e._mergeChangeEvents(this.contentChangedEvent,t.contentChangedEvent);return new e(n,i)}}],[{key:"_mergeChangeEvents",value:function(e,t){return{changes:[].concat(e.changes).concat(t.changes),eol:t.eol,versionId:t.versionId,isUndoing:e.isUndoing||t.isUndoing,isRedoing:e.isRedoing||t.isRedoing,isFlush:e.isFlush||t.isFlush}}}]),e}(),Te=n(49396),Oe=n(34763),Ie=n(99404),Ae=n(59401),Re=n(96257),Pe=n(30487),Ze=function(){function e(){(0,l.Z)(this,e),this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0}return(0,c.Z)(e,[{key:"_reset",value:function(e){this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0,e&&this._setBeginState(0,e)}},{key:"flush",value:function(e){this._reset(e)}},{key:"invalidLineStartIndex",get:function(){return this._invalidLineStartIndex}},{key:"_invalidateLine",value:function(e){e<this._len&&(this._valid[e]=!1),e<this._invalidLineStartIndex&&(this._invalidLineStartIndex=e)}},{key:"_isValid",value:function(e){return e<this._len&&this._valid[e]}},{key:"getBeginState",value:function(e){return e<this._len?this._beginState[e]:null}},{key:"_ensureLine",value:function(e){for(;e>=this._len;)this._beginState[this._len]=null,this._valid[this._len]=!1,this._len++}},{key:"_deleteLines",value:function(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._beginState.splice(e,t),this._valid.splice(e,t),this._len-=t)}},{key:"_insertLines",value:function(e,t){if(0!==t){for(var n=[],i=[],r=0;r<t;r++)n[r]=null,i[r]=!1;this._beginState=Te.Zv(this._beginState,e,n),this._valid=Te.Zv(this._valid,e,i),this._len+=t}}},{key:"_setValid",value:function(e,t){this._ensureLine(e),this._valid[e]=t}},{key:"_setBeginState",value:function(e,t){this._ensureLine(e),this._beginState[e]=t}},{key:"setEndState",value:function(e,t,n){if(this._setValid(t,!0),this._invalidLineStartIndex=t+1,t!==e-1){var i=this.getBeginState(t+1);if(null===i||!n.equals(i))return this._setBeginState(t+1,n),void this._invalidateLine(t+1);for(var r=t+1;r<e&&this._isValid(r);)r++;this._invalidLineStartIndex=r}}},{key:"setFakeTokens",value:function(e){this._setValid(e,!1)}},{key:"applyEdits",value:function(e,t){for(var n=e.endLineNumber-e.startLineNumber,i=t,r=Math.min(n,i);r>=0;r--)this._invalidateLine(e.startLineNumber+r-1);this._acceptDeleteRange(e),this._acceptInsertText(new m.L(e.startLineNumber,e.startColumn),t)}},{key:"_acceptDeleteRange",value:function(e){e.startLineNumber-1>=this._len||this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)}},{key:"_acceptInsertText",value:function(e,t){e.lineNumber-1>=this._len||this._insertLines(e.lineNumber,t)}}]),e}(),Fe=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var r;return(0,l.Z)(this,n),(r=t.call(this))._isDisposed=!1,r._textModel=e,r._tokenizationStateStore=new Ze,r._tokenizationSupport=null,r._register(Ie.RW.onDidChange((function(e){var t=r._textModel.getLanguageIdentifier();-1!==e.changedLanguages.indexOf(t.language)&&(r._resetTokenizationState(),r._textModel.clearTokens())}))),r._register(r._textModel.onDidChangeRawContentFast((function(e){e.containsEvent(1)&&r._resetTokenizationState()}))),r._register(r._textModel.onDidChangeContentFast((function(e){for(var t=0,n=e.changes.length;t<n;t++){var o=e.changes[t],a=(0,ye.QZ)(o.text),s=(0,i.Z)(a,1)[0];r._tokenizationStateStore.applyEdits(o.range,s)}r._beginBackgroundTokenization()}))),r._register(r._textModel.onDidChangeAttached((function(){r._beginBackgroundTokenization()}))),r._register(r._textModel.onDidChangeLanguage((function(){r._resetTokenizationState(),r._textModel.clearTokens()}))),r._resetTokenizationState(),r}return(0,c.Z)(n,[{key:"dispose",value:function(){this._isDisposed=!0,(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this)}},{key:"_resetTokenizationState",value:function(){var e=function(e){var t=e.getLanguageIdentifier(),n=e.isTooLargeForTokenization()?null:Ie.RW.get(t.language),i=null;if(n)try{i=n.getInitialState()}catch(r){(0,d.dL)(r),n=null}return[n,i]}(this._textModel),t=(0,i.Z)(e,2),n=t[0],r=t[1];this._tokenizationSupport=n,this._tokenizationStateStore.flush(r),this._beginBackgroundTokenization()}},{key:"_beginBackgroundTokenization",value:function(){var e=this;this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&Pe.xS((function(){e._isDisposed||e._revalidateTokensNow()}))}},{key:"_revalidateTokensNow",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._textModel.getLineCount(),t=new ye.DA,n=Re.G.create(!1);this._hasLinesToTokenize()&&!(n.elapsed()>1);){if(this._tokenizeOneInvalidLine(t)>=e)break}this._beginBackgroundTokenization(),this._textModel.setTokens(t.tokens)}},{key:"tokenizeViewport",value:function(e,t){var n=new ye.DA;this._tokenizeViewport(n,e,t),this._textModel.setTokens(n.tokens)}},{key:"reset",value:function(){this._resetTokenizationState(),this._textModel.clearTokens()}},{key:"forceTokenization",value:function(e){var t=new ye.DA;this._updateTokensUntilLine(t,e),this._textModel.setTokens(t.tokens)}},{key:"isCheapToTokenize",value:function(e){if(!this._tokenizationSupport)return!0;var t=this._tokenizationStateStore.invalidLineStartIndex+1;return!(e>t)&&(e<t||this._textModel.getLineLength(e)<2048)}},{key:"_hasLinesToTokenize",value:function(){return!!this._tokenizationSupport&&this._tokenizationStateStore.invalidLineStartIndex<this._textModel.getLineCount()}},{key:"_tokenizeOneInvalidLine",value:function(e){if(!this._hasLinesToTokenize())return this._textModel.getLineCount()+1;var t=this._tokenizationStateStore.invalidLineStartIndex+1;return this._updateTokensUntilLine(e,t),t}},{key:"_updateTokensUntilLine",value:function(e,t){if(this._tokenizationSupport)for(var n=this._textModel.getLanguageIdentifier(),i=this._textModel.getLineCount(),r=t-1,o=this._tokenizationStateStore.invalidLineStartIndex;o<=r;o++){var a=this._textModel.getLineContent(o+1),s=this._tokenizationStateStore.getBeginState(o),u=je(n,this._tokenizationSupport,a,!0,s);e.add(o+1,u.tokens),this._tokenizationStateStore.setEndState(i,o,u.endState),o=this._tokenizationStateStore.invalidLineStartIndex-1}}},{key:"_tokenizeViewport",value:function(e,t,n){if(this._tokenizationSupport&&!(n<=this._tokenizationStateStore.invalidLineStartIndex))if(t<=this._tokenizationStateStore.invalidLineStartIndex)this._updateTokensUntilLine(e,n);else{for(var i=this._textModel.getLineFirstNonWhitespaceColumn(t),r=[],o=null,a=t-1;i>0&&a>=1;a--){var s=this._textModel.getLineFirstNonWhitespaceColumn(a);if(0!==s&&s<i){if(o=this._tokenizationStateStore.getBeginState(a-1))break;r.push(this._textModel.getLineContent(a)),i=s}}o||(o=this._tokenizationSupport.getInitialState());for(var u=this._textModel.getLanguageIdentifier(),l=o,c=r.length-1;c>=0;c--){l=je(u,this._tokenizationSupport,r[c],!1,l).endState}for(var d=t;d<=n;d++){var h=this._textModel.getLineContent(d),f=je(u,this._tokenizationSupport,h,!0,l);e.add(d,f.tokens),this._tokenizationStateStore.setFakeTokens(d-1),l=f.endState}}}}]),n}(f.JT);function je(e,t,n,i,r){var o=null;if(t)try{o=t.tokenize2(n,i,r.clone(),0)}catch(a){(0,d.dL)(a)}return o||(o=(0,Ae.mh)(e.id,n,r,0)),Oe.A.convertToEndOffset(o.tokens,n.length),o}var He=n(43717),Be=n(65262),ze=n(57429),We=n(8102),Ve=n(89938);function Ye(e){var t=new ke;return t.acceptChunk(e),t.finish()}function Ue(e,t){return("string"===typeof e?Ye(e):e).create(t)}var Ke=0,qe=999,Ge=function(){function e(t){(0,l.Z)(this,e),this._source=t,this._eos=!1}return(0,c.Z)(e,[{key:"read",value:function(){if(this._eos)return null;for(var e=[],t=0,n=0;;){var i=this._source.read();if(null===i)return this._eos=!0,0===t?null:e.join("");if(i.length>0&&(e[t++]=i,n+=i.length),n>=65536)return e.join("")}}}]),e}(),$e=function(){throw new Error("Invalid change accessor")},Qe=(0,c.Z)((function e(){(0,l.Z)(this,e),this._searchCanceledBrand=void 0}));function Xe(e){return e instanceof Qe?null:e}Qe.INSTANCE=new Qe;var Je=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,o){var a,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,u=arguments.length>4?arguments[4]:void 0;(0,l.Z)(this,n),(a=t.call(this))._onWillDispose=a._register(new h.Q5),a.onWillDispose=a._onWillDispose.event,a._onDidChangeDecorations=a._register(new ut),a.onDidChangeDecorations=a._onDidChangeDecorations.event,a._onDidChangeLanguage=a._register(new h.Q5),a.onDidChangeLanguage=a._onDidChangeLanguage.event,a._onDidChangeLanguageConfiguration=a._register(new h.Q5),a.onDidChangeLanguageConfiguration=a._onDidChangeLanguageConfiguration.event,a._onDidChangeTokens=a._register(new h.Q5),a.onDidChangeTokens=a._onDidChangeTokens.event,a._onDidChangeOptions=a._register(new h.Q5),a.onDidChangeOptions=a._onDidChangeOptions.event,a._onDidChangeAttached=a._register(new h.Q5),a.onDidChangeAttached=a._onDidChangeAttached.event,a._eventEmitter=a._register(new lt),Ke++,a.id="$model"+Ke,a.isForSimpleWidget=i.isForSimpleWidget,a._associatedResource="undefined"===typeof s||null===s?g.o.parse("inmemory://model/"+Ke):s,a._undoRedoService=u,a._attachedEditorCount=0;var c=Ue(e,i.defaultEOL),d=c.textBuffer,f=c.disposable;a._buffer=d,a._bufferDisposable=f,a._options=n.resolveOptions(a._buffer,i);var v=a._buffer.getLineCount(),m=a._buffer.getValueLengthInRange(new _.e(1,1,v,a._buffer.getLineLength(v)+1),0);return i.largeFileOptimizations?a._isTooLargeForTokenization=m>n.LARGE_FILE_SIZE_THRESHOLD||v>n.LARGE_FILE_LINE_COUNT_THRESHOLD:a._isTooLargeForTokenization=!1,a._isTooLargeForSyncing=m>n.MODEL_SYNC_LIMIT,a._versionId=1,a._alternativeVersionId=1,a._initialUndoRedoSnapshot=null,a._isDisposed=!1,a._isDisposing=!1,a._languageIdentifier=o||Ae.pA,a._languageRegistryListener=Be.zu.onDidChange((function(e){e.languageIdentifier.id===a._languageIdentifier.id&&a._onDidChangeLanguageConfiguration.fire({})})),a._instanceId=p.PJ(Ke),a._lastDecorationId=0,a._decorations=Object.create(null),a._decorationsTree=new et,a._commandManager=new w.NL((0,r.Z)(a),u),a._isUndoing=!1,a._isRedoing=!1,a._trimAutoWhitespaceLines=null,a._tokens=new ye.Rl,a._tokens2=new ye.cx,a._tokenization=new Fe((0,r.Z)(a)),a}return(0,c.Z)(n,[{key:"onDidChangeRawContentFast",value:function(e){return this._eventEmitter.fastEvent((function(t){return e(t.rawContentChangedEvent)}))}},{key:"onDidChangeContentFast",value:function(e){return this._eventEmitter.fastEvent((function(t){return e(t.contentChangedEvent)}))}},{key:"onDidChangeContent",value:function(e){return this._eventEmitter.slowEvent((function(t){return e(t.contentChangedEvent)}))}},{key:"dispose",value:function(){this._isDisposing=!0,this._onWillDispose.fire(),this._languageRegistryListener.dispose(),this._tokenization.dispose(),this._isDisposed=!0,(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this),this._bufferDisposable.dispose(),this._isDisposing=!1;var e=new we([],"","\n",!1,!1,!0,!0);e.dispose(),this._buffer=e}},{key:"_assertNotDisposed",value:function(){if(this._isDisposed)throw new Error("Model is disposed!")}},{key:"_emitContentChangedEvent",value:function(e,t){this._isDisposing||this._eventEmitter.fire(new Me(e,t))}},{key:"setValue",value:function(e){if(this._assertNotDisposed(),null!==e){var t=Ue(e,this._options.defaultEOL),n=t.textBuffer,i=t.disposable;this._setValueFromTextBuffer(n,i)}}},{key:"_createContentChanged2",value:function(e,t,n,i,r,o,a){return{changes:[{range:e,rangeOffset:t,rangeLength:n,text:i}],eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:r,isRedoing:o,isFlush:a}}},{key:"_setValueFromTextBuffer",value:function(e,t){this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueLengthInRange(n),r=this.getLineCount(),o=this.getLineMaxColumn(r);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._tokens.flush(),this._tokens2.flush(),this._decorations=Object.create(null),this._decorationsTree=new et,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new De([new Se],this._versionId,!1,!1),this._createContentChanged2(new _.e(1,1,r,o),0,i,this.getValue(),!1,!1,!0))}},{key:"setEOL",value:function(e){this._assertNotDisposed();var t=1===e?"\r\n":"\n";if(this._buffer.getEOL()!==t){var n=this.getFullModelRange(),i=this.getValueLengthInRange(n),r=this.getLineCount(),o=this.getLineMaxColumn(r);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new De([new Ne],this._versionId,!1,!1),this._createContentChanged2(new _.e(1,1,r,o),0,i,this.getValue(),!1,!1,!1))}}},{key:"_onBeforeEOLChange",value:function(){var e=this.getVersionId(),t=this._decorationsTree.search(0,!1,!1,e);this._ensureNodesHaveRanges(t)}},{key:"_onAfterEOLChange",value:function(){for(var e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder(),n=0,i=t.length;n<i;n++){var r=t[n],o=r.cachedAbsoluteStart-r.start,a=this._buffer.getOffsetAt(r.range.startLineNumber,r.range.startColumn),s=this._buffer.getOffsetAt(r.range.endLineNumber,r.range.endColumn);r.cachedAbsoluteStart=a,r.cachedAbsoluteEnd=s,r.cachedVersionId=e,r.start=a-o,r.end=s-o,U(r)}}},{key:"onBeforeAttached",value:function(){this._attachedEditorCount++,1===this._attachedEditorCount&&this._onDidChangeAttached.fire(void 0)}},{key:"onBeforeDetached",value:function(){this._attachedEditorCount--,0===this._attachedEditorCount&&this._onDidChangeAttached.fire(void 0)}},{key:"isAttachedToEditor",value:function(){return this._attachedEditorCount>0}},{key:"getAttachedEditorCount",value:function(){return this._attachedEditorCount}},{key:"isTooLargeForSyncing",value:function(){return this._isTooLargeForSyncing}},{key:"isTooLargeForTokenization",value:function(){return this._isTooLargeForTokenization}},{key:"isDisposed",value:function(){return this._isDisposed}},{key:"isDominatedByLongLines",value:function(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;for(var e=0,t=0,n=this._buffer.getLineCount(),i=1;i<=n;i++){var r=this._buffer.getLineLength(i);r>=1e4?t+=r:e+=r}return t>e}},{key:"uri",get:function(){return this._associatedResource}},{key:"getOptions",value:function(){return this._assertNotDisposed(),this._options}},{key:"getFormattingOptions",value:function(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}},{key:"updateOptions",value:function(e){this._assertNotDisposed();var t="undefined"!==typeof e.tabSize?e.tabSize:this._options.tabSize,n="undefined"!==typeof e.indentSize?e.indentSize:this._options.indentSize,i="undefined"!==typeof e.insertSpaces?e.insertSpaces:this._options.insertSpaces,r="undefined"!==typeof e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,o=new b.dJ({tabSize:t,indentSize:n,insertSpaces:i,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:r});if(!this._options.equals(o)){var a=this._options.createChangeEvent(o);this._options=o,this._onDidChangeOptions.fire(a)}}},{key:"detectIndentation",value:function(e,t){this._assertNotDisposed();var n=S(this._buffer,t,e);this.updateOptions({insertSpaces:n.insertSpaces,tabSize:n.tabSize,indentSize:n.tabSize})}},{key:"normalizeIndentation",value:function(e){return this._assertNotDisposed(),n.normalizeIndentation(e,this._options.indentSize,this._options.insertSpaces)}},{key:"getVersionId",value:function(){return this._assertNotDisposed(),this._versionId}},{key:"mightContainRTL",value:function(){return this._buffer.mightContainRTL()}},{key:"mightContainUnusualLineTerminators",value:function(){return this._buffer.mightContainUnusualLineTerminators()}},{key:"removeUnusualLineTerminators",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.findMatches(p.Qe.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map((function(e){return{range:e.range,text:null}})),(function(){return null}))}},{key:"mightContainNonBasicASCII",value:function(){return this._buffer.mightContainNonBasicASCII()}},{key:"getAlternativeVersionId",value:function(){return this._assertNotDisposed(),this._alternativeVersionId}},{key:"getInitialUndoRedoSnapshot",value:function(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}},{key:"getOffsetAt",value:function(e){this._assertNotDisposed();var t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}},{key:"getPositionAt",value:function(e){this._assertNotDisposed();var t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}},{key:"_increaseVersionId",value:function(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}},{key:"_overwriteVersionId",value:function(e){this._versionId=e}},{key:"_overwriteAlternativeVersionId",value:function(e){this._alternativeVersionId=e}},{key:"_overwriteInitialUndoRedoSnapshot",value:function(e){this._initialUndoRedoSnapshot=e}},{key:"getValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueInRange(n,e);return t?this._buffer.getBOM()+i:i}},{key:"createSnapshot",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Ge(this._buffer.createSnapshot(e))}},{key:"getValueLength",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueLengthInRange(n,e);return t?this._buffer.getBOM().length+i:i}},{key:"getValueInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}},{key:"getValueLengthInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}},{key:"getCharacterCountInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}},{key:"getLineCount",value:function(){return this._assertNotDisposed(),this._buffer.getLineCount()}},{key:"getLineContent",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineContent(e)}},{key:"getLineLength",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)}},{key:"getLinesContent",value:function(){return this._assertNotDisposed(),this._buffer.getLinesContent()}},{key:"getEOL",value:function(){return this._assertNotDisposed(),this._buffer.getEOL()}},{key:"getEndOfLineSequence",value:function(){return this._assertNotDisposed(),"\n"===this._buffer.getEOL()?0:1}},{key:"getLineMinColumn",value:function(e){return this._assertNotDisposed(),1}},{key:"getLineMaxColumn",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}},{key:"getLineFirstNonWhitespaceColumn",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}},{key:"getLineLastNonWhitespaceColumn",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}},{key:"_validateRangeRelaxedNoAllocations",value:function(e){var t=this._buffer.getLineCount(),n=e.startLineNumber,i=e.startColumn,r=Math.floor("number"!==typeof n||isNaN(n)?1:n),o=Math.floor("number"!==typeof i||isNaN(i)?1:i);if(r<1)r=1,o=1;else if(r>t)r=t,o=this.getLineMaxColumn(r);else if(o<=1)o=1;else{var a=this.getLineMaxColumn(r);o>=a&&(o=a)}var s=e.endLineNumber,u=e.endColumn,l=Math.floor("number"!==typeof s||isNaN(s)?1:s),c=Math.floor("number"!==typeof u||isNaN(u)?1:u);if(l<1)l=1,c=1;else if(l>t)l=t,c=this.getLineMaxColumn(l);else if(c<=1)c=1;else{var d=this.getLineMaxColumn(l);c>=d&&(c=d)}return n===r&&i===o&&s===l&&u===c&&e instanceof _.e&&!(e instanceof y.Y)?e:new _.e(r,o,l,c)}},{key:"_isValidPosition",value:function(e,t,n){if("number"!==typeof e||"number"!==typeof t)return!1;if(isNaN(e)||isNaN(t))return!1;if(e<1||t<1)return!1;if((0|e)!==e||(0|t)!==t)return!1;if(e>this._buffer.getLineCount())return!1;if(1===t)return!0;if(t>this.getLineMaxColumn(e))return!1;if(1===n){var i=this._buffer.getLineCharCode(e,t-2);if(p.ZG(i))return!1}return!0}},{key:"_validatePosition",value:function(e,t,n){var i=Math.floor("number"!==typeof e||isNaN(e)?1:e),r=Math.floor("number"!==typeof t||isNaN(t)?1:t),o=this._buffer.getLineCount();if(i<1)return new m.L(1,1);if(i>o)return new m.L(o,this.getLineMaxColumn(o));if(r<=1)return new m.L(i,1);var a=this.getLineMaxColumn(i);if(r>=a)return new m.L(i,a);if(1===n){var s=this._buffer.getLineCharCode(i,r-2);if(p.ZG(s))return new m.L(i,r-1)}return new m.L(i,r)}},{key:"validatePosition",value:function(e){return this._assertNotDisposed(),e instanceof m.L&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}},{key:"_isValidRange",value:function(e,t){var n=e.startLineNumber,i=e.startColumn,r=e.endLineNumber,o=e.endColumn;if(!this._isValidPosition(n,i,0))return!1;if(!this._isValidPosition(r,o,0))return!1;if(1===t){var a=i>1?this._buffer.getLineCharCode(n,i-2):0,s=o>1&&o<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,o-2):0,u=p.ZG(a),l=p.ZG(s);return!u&&!l}return!0}},{key:"validateRange",value:function(e){if(this._assertNotDisposed(),e instanceof _.e&&!(e instanceof y.Y)&&this._isValidRange(e,1))return e;var t=this._validatePosition(e.startLineNumber,e.startColumn,0),n=this._validatePosition(e.endLineNumber,e.endColumn,0),i=t.lineNumber,r=t.column,o=n.lineNumber,a=n.column,s=r>1?this._buffer.getLineCharCode(i,r-2):0,u=a>1&&a<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,a-2):0,l=p.ZG(s),c=p.ZG(u);return l||c?i===o&&r===a?new _.e(i,r-1,o,a-1):l&&c?new _.e(i,r-1,o,a+1):l?new _.e(i,r-1,o,a):new _.e(i,r,o,a+1):new _.e(i,r,o,a)}},{key:"modifyPosition",value:function(e,t){this._assertNotDisposed();var n=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,n)))}},{key:"getFullModelRange",value:function(){this._assertNotDisposed();var e=this.getLineCount();return new _.e(1,1,e,this.getLineMaxColumn(e))}},{key:"findMatchesLineByLine",value:function(e,t,n,i){return this._buffer.findMatchesLineByLine(e,t,n,i)}},{key:"findMatches",value:function(e,t,n,i,r,o){var a=this,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:qe;this._assertNotDisposed();var u=null;null!==t&&(Array.isArray(t)||(t=[t]),t.every((function(e){return _.e.isIRange(e)}))&&(u=t.map((function(e){return a.validateRange(e)})))),null===u&&(u=[this.getFullModelRange()]),u=u.sort((function(e,t){return e.startLineNumber-t.startLineNumber||e.startColumn-t.startColumn}));var l,c=[];if(c.push(u.reduce((function(e,t){return _.e.areIntersecting(e,t)?e.plusRange(t):(c.push(e),t)}))),!n&&e.indexOf("\n")<0){var d=new le.bc(e,n,i,r).parseSearchRequest();if(!d)return[];l=function(e){return a.findMatchesLineByLine(e,d,o,s)}}else l=function(t){return le.pM.findMatches(a,new le.bc(e,n,i,r),t,o,s)};return c.map(l).reduce((function(e,t){return e.concat(t)}),[])}},{key:"findNextMatch",value:function(e,t,n,i,r,o){this._assertNotDisposed();var a=this.validatePosition(t);if(!n&&e.indexOf("\n")<0){var s=new le.bc(e,n,i,r).parseSearchRequest();if(!s)return null;var u=this.getLineCount(),l=new _.e(a.lineNumber,a.column,u,this.getLineMaxColumn(u)),c=this.findMatchesLineByLine(l,s,o,1);return le.pM.findNextMatch(this,new le.bc(e,n,i,r),a,o),c.length>0?c[0]:(l=new _.e(1,1,a.lineNumber,this.getLineMaxColumn(a.lineNumber)),(c=this.findMatchesLineByLine(l,s,o,1)).length>0?c[0]:null)}return le.pM.findNextMatch(this,new le.bc(e,n,i,r),a,o)}},{key:"findPreviousMatch",value:function(e,t,n,i,r,o){this._assertNotDisposed();var a=this.validatePosition(t);return le.pM.findPreviousMatch(this,new le.bc(e,n,i,r),a,o)}},{key:"pushStackElement",value:function(){this._commandManager.pushStackElement()}},{key:"popStackElement",value:function(){this._commandManager.popStackElement()}},{key:"pushEOL",value:function(e){if(("\n"===this.getEOL()?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_validateEditOperation",value:function(e){return e instanceof b.Qi?e:new b.Qi(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}},{key:"_validateEditOperations",value:function(e){for(var t=[],n=0,i=e.length;n<i;n++)t[n]=this._validateEditOperation(e[n]);return t}},{key:"pushEditOperations",value:function(e,t,n){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),n)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_pushEditOperations",value:function(e,t,n){var i=this;if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){var r=t.map((function(e){return{range:i.validateRange(e.range),text:e.text}})),o=!0;if(e)for(var a=0,s=e.length;a<s;a++){for(var u=e[a],l=!1,c=0,d=r.length;c<d;c++){var h=r[c].range,f=h.startLineNumber>u.endLineNumber,p=u.startLineNumber>h.endLineNumber;if(!f&&!p){l=!0;break}}if(!l){o=!1;break}}if(o)for(var g=0,v=this._trimAutoWhitespaceLines.length;g<v;g++){for(var m=this._trimAutoWhitespaceLines[g],y=this.getLineMaxColumn(m),w=!0,C=0,k=r.length;C<k;C++){var S=r[C].range,x=r[C].text;if(!(m<S.startLineNumber||m>S.endLineNumber)&&(!(m===S.startLineNumber&&S.startColumn===y&&S.isEmpty()&&x&&x.length>0&&"\n"===x.charAt(0))&&!(m===S.startLineNumber&&1===S.startColumn&&S.isEmpty()&&x&&x.length>0&&"\n"===x.charAt(x.length-1)))){w=!1;break}}if(w){var L=new _.e(m,1,m,y);t.push(new b.Qi(null,L,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,n)}},{key:"_applyUndo",value:function(e,t,n,i){var r=this,o=e.map((function(e){var t=r.getPositionAt(e.newPosition),n=r.getPositionAt(e.newEnd);return{range:new _.e(t.lineNumber,t.column,n.lineNumber,n.column),text:e.oldText}}));this._applyUndoRedoEdits(o,t,!0,!1,n,i)}},{key:"_applyRedo",value:function(e,t,n,i){var r=this,o=e.map((function(e){var t=r.getPositionAt(e.oldPosition),n=r.getPositionAt(e.oldEnd);return{range:new _.e(t.lineNumber,t.column,n.lineNumber,n.column),text:e.newText}}));this._applyUndoRedoEdits(o,t,!1,!0,n,i)}},{key:"_applyUndoRedoEdits",value:function(e,t,n,i,r,o){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=n,this._isRedoing=i,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(r)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(o),this._onDidChangeDecorations.endDeferredEmit()}}},{key:"applyEdits",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();var n=this._validateEditOperations(e);return this._doApplyEdits(n,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_doApplyEdits",value:function(e,t){var n=this._buffer.getLineCount(),r=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),o=this._buffer.getLineCount(),a=r.changes;if(this._trimAutoWhitespaceLines=r.trimAutoWhitespaceLineNumbers,0!==a.length){for(var s=[],u=n,l=0,c=a.length;l<c;l++){var d=a[l],h=(0,ye.QZ)(d.text),f=(0,i.Z)(h,3),p=f[0],g=f[1],v=f[2];this._tokens.acceptEdit(d.range,p,g),this._tokens2.acceptEdit(d.range,p,g,v,d.text.length>0?d.text.charCodeAt(0):0),this._onDidChangeDecorations.fire(),this._decorationsTree.acceptReplace(d.rangeOffset,d.rangeLength,d.text.length,d.forceMoveMarkers);for(var m=d.range.startLineNumber,_=d.range.endLineNumber,y=_-m,b=p,w=Math.min(y,b),C=b-y,k=w;k>=0;k--){var S=m+k,x=o-u-C+S;s.push(new xe(S,this.getLineContent(x)))}if(w<y){var L=m+w;s.push(new Le(L+1,_))}if(w<b){for(var E=m+w,N=b-w,D=o-u-N+E+1,M=[],T=0;T<N;T++){var O=D+T;M[O-D]=this.getLineContent(O)}s.push(new Ee(E+1,m+b,M))}u+=C}this._increaseVersionId(),this._emitContentChangedEvent(new De(s,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:a,eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return null===r.reverseEdits?void 0:r.reverseEdits}},{key:"undo",value:function(){return this._undoRedoService.undo(this.uri)}},{key:"canUndo",value:function(){return this._undoRedoService.canUndo(this.uri)}},{key:"redo",value:function(){return this._undoRedoService.redo(this.uri)}},{key:"canRedo",value:function(){return this._undoRedoService.canRedo(this.uri)}},{key:"changeDecorations",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_changeDecorations",value:function(e,t){var n=this,i={addDecoration:function(t,i){return n._deltaDecorationsImpl(e,[],[{range:t,options:i}])[0]},changeDecoration:function(e,t){n._changeDecorationImpl(e,t)},changeDecorationOptions:function(e,t){n._changeDecorationOptionsImpl(e,st(t))},removeDecoration:function(t){n._deltaDecorationsImpl(e,[t],[])},deltaDecorations:function(t,i){return 0===t.length&&0===i.length?[]:n._deltaDecorationsImpl(e,t,i)}},r=null;try{r=t(i)}catch(o){(0,d.dL)(o)}return i.addDecoration=$e,i.changeDecoration=$e,i.changeDecorationOptions=$e,i.removeDecoration=$e,i.deltaDecorations=$e,r}},{key:"deltaDecorations",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(this._assertNotDisposed(),e||(e=[]),0===e.length&&0===t.length)return[];try{return this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(n,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_getTrackedRange",value:function(e){return this.getDecorationRange(e)}},{key:"_setTrackedRange",value:function(e,t,n){var i=e?this._decorations[e]:null;if(!i)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:at[n]}])[0]:null;if(!t)return this._decorationsTree.delete(i),delete this._decorations[i.id],null;var r=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(r.startLineNumber,r.startColumn),a=this._buffer.getOffsetAt(r.endLineNumber,r.endColumn);return this._decorationsTree.delete(i),i.reset(this.getVersionId(),o,a,r),i.setOptions(at[n]),this._decorationsTree.insert(i),i.id}},{key:"removeAllDecorationsWithOwnerId",value:function(e){if(!this._isDisposed)for(var t=this._decorationsTree.collectNodesFromOwner(e),n=0,i=t.length;n<i;n++){var r=t[n];this._decorationsTree.delete(r),delete this._decorations[r.id]}}},{key:"getDecorationOptions",value:function(e){var t=this._decorations[e];return t?t.options:null}},{key:"getDecorationRange",value:function(e){var t=this._decorations[e];if(!t)return null;var n=this.getVersionId();return t.cachedVersionId!==n&&this._decorationsTree.resolveNode(t,n),null===t.range&&(t.range=this._getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}},{key:"getLineDecorations",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,n)}},{key:"getLinesDecorations",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=this.getLineCount(),o=Math.min(r,Math.max(1,e)),a=Math.min(r,Math.max(1,t)),s=this.getLineMaxColumn(a);return this._getDecorationsInRange(new _.e(o,1,a,s),n,i)}},{key:"getDecorationsInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=this.validateRange(e);return this._getDecorationsInRange(i,t,n)}},{key:"getOverviewRulerDecorations",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getVersionId(),i=this._decorationsTree.search(e,t,!0,n);return this._ensureNodesHaveRanges(i)}},{key:"getAllDecorations",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getVersionId(),i=this._decorationsTree.search(e,t,!1,n);return this._ensureNodesHaveRanges(i)}},{key:"_getDecorationsInRange",value:function(e,t,n){var i=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),r=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn),o=this.getVersionId(),a=this._decorationsTree.intervalSearch(i,r,t,n,o);return this._ensureNodesHaveRanges(a)}},{key:"_ensureNodesHaveRanges",value:function(e){for(var t=0,n=e.length;t<n;t++){var i=e[t];null===i.range&&(i.range=this._getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd))}return e}},{key:"_getRangeAt",value:function(e,t){return this._buffer.getRangeAt(e,t-e)}},{key:"_changeDecorationImpl",value:function(e,t){var n=this._decorations[e];if(n){var i=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(i.startLineNumber,i.startColumn),o=this._buffer.getOffsetAt(i.endLineNumber,i.endColumn);this._decorationsTree.delete(n),n.reset(this.getVersionId(),r,o,i),this._decorationsTree.insert(n),this._onDidChangeDecorations.checkAffectedAndFire(n.options)}}},{key:"_changeDecorationOptionsImpl",value:function(e,t){var n=this._decorations[e];if(n){var i=!(!n.options.overviewRuler||!n.options.overviewRuler.color),r=!(!t.overviewRuler||!t.overviewRuler.color);this._onDidChangeDecorations.checkAffectedAndFire(n.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i!==r?(this._decorationsTree.delete(n),n.setOptions(t),this._decorationsTree.insert(n)):n.setOptions(t)}}},{key:"_deltaDecorationsImpl",value:function(e,t,n){for(var i=this.getVersionId(),r=t.length,o=0,a=n.length,s=0,u=new Array(a);o<r||s<a;){var l=null;if(o<r){do{l=this._decorations[t[o++]]}while(!l&&o<r);l&&(this._decorationsTree.delete(l),this._onDidChangeDecorations.checkAffectedAndFire(l.options))}if(s<a){if(!l){var c=++this._lastDecorationId,d="".concat(this._instanceId,";").concat(c);l=new R(d,0,0),this._decorations[d]=l}var h=n[s],f=this._validateRangeRelaxedNoAllocations(h.range),p=st(h.options),g=this._buffer.getOffsetAt(f.startLineNumber,f.startColumn),v=this._buffer.getOffsetAt(f.endLineNumber,f.endColumn);l.ownerId=e,l.reset(i,g,v,f),l.setOptions(p),this._onDidChangeDecorations.checkAffectedAndFire(p),this._decorationsTree.insert(l),u[s]=l.id,s++}else l&&delete this._decorations[l.id]}return u}},{key:"setTokens",value:function(e){if(0!==e.length){for(var t=[],n=0,i=e.length;n<i;n++){for(var r=e[n],o=0,a=0,s=!1,u=0,l=r.tokens.length;u<l;u++){var c=r.startLineNumber+u;if(s)this._tokens.setTokens(this._languageIdentifier.id,c-1,this._buffer.getLineLength(c),r.tokens[u],!1),a=c;else this._tokens.setTokens(this._languageIdentifier.id,c-1,this._buffer.getLineLength(c),r.tokens[u],!0)&&(s=!0,o=c,a=c)}s&&t.push({fromLineNumber:o,toLineNumber:a})}t.length>0&&this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!1,ranges:t})}}},{key:"setSemanticTokens",value:function(e,t){this._tokens2.set(e,t),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:null!==e,ranges:[{fromLineNumber:1,toLineNumber:this.getLineCount()}]})}},{key:"hasCompleteSemanticTokens",value:function(){return this._tokens2.isComplete()}},{key:"hasSomeSemanticTokens",value:function(){return!this._tokens2.isEmpty()}},{key:"setPartialSemanticTokens",value:function(e,t){if(!this.hasCompleteSemanticTokens()){var n=this._tokens2.setPartial(e,t);this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!0,ranges:[{fromLineNumber:n.startLineNumber,toLineNumber:n.endLineNumber}]})}}},{key:"tokenizeViewport",value:function(e,t){e=Math.max(1,e),t=Math.min(this._buffer.getLineCount(),t),this._tokenization.tokenizeViewport(e,t)}},{key:"clearTokens",value:function(){this._tokens.flush(),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!0,semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._buffer.getLineCount()}]})}},{key:"_emitModelTokensChangedEvent",value:function(e){this._isDisposing||this._onDidChangeTokens.fire(e)}},{key:"resetTokenization",value:function(){this._tokenization.reset()}},{key:"forceTokenization",value:function(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");this._tokenization.forceTokenization(e)}},{key:"isCheapToTokenize",value:function(e){return this._tokenization.isCheapToTokenize(e)}},{key:"tokenizeIfCheap",value:function(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}},{key:"getLineTokens",value:function(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._getLineTokens(e)}},{key:"_getLineTokens",value:function(e){var t=this.getLineContent(e),n=this._tokens.getTokens(this._languageIdentifier.id,e-1,t);return this._tokens2.addSemanticTokens(e,n)}},{key:"getLanguageIdentifier",value:function(){return this._languageIdentifier}},{key:"getModeId",value:function(){return this._languageIdentifier.language}},{key:"setMode",value:function(e){if(this._languageIdentifier.id!==e.id){var t={oldLanguage:this._languageIdentifier.language,newLanguage:e.language};this._languageIdentifier=e,this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})}}},{key:"getLanguageIdAtPosition",value:function(e,t){var n=this.validatePosition(new m.L(e,t)),i=this.getLineTokens(n.lineNumber);return i.getLanguageId(i.findTokenIndexAtOffset(n.column-1))}},{key:"getWordAtPosition",value:function(e){this._assertNotDisposed();var t=this.validatePosition(e),r=this.getLineContent(t.lineNumber),o=this._getLineTokens(t.lineNumber),a=o.findTokenIndexAtOffset(t.column-1),s=n._findLanguageBoundaries(o,a),u=(0,i.Z)(s,2),l=u[0],c=u[1],d=(0,He.t2)(t.column,Be.zu.getWordDefinition(o.getLanguageId(a)),r.substring(l,c),l);if(d&&d.startColumn<=e.column&&e.column<=d.endColumn)return d;if(a>0&&l===t.column-1){var h=n._findLanguageBoundaries(o,a-1),f=(0,i.Z)(h,2),p=f[0],g=f[1],v=(0,He.t2)(t.column,Be.zu.getWordDefinition(o.getLanguageId(a-1)),r.substring(p,g),p);if(v&&v.startColumn<=e.column&&e.column<=v.endColumn)return v}return null}},{key:"getWordUntilPosition",value:function(e){var t=this.getWordAtPosition(e);return t?{word:t.word.substr(0,e.column-t.startColumn),startColumn:t.startColumn,endColumn:e.column}:{word:"",startColumn:e.column,endColumn:e.column}}},{key:"findMatchingBracketUp",value:function(e,t){var n=e.toLowerCase(),i=this.validatePosition(t),r=this._getLineTokens(i.lineNumber),o=r.getLanguageId(r.findTokenIndexAtOffset(i.column-1)),a=Be.zu.getBracketsSupport(o);if(!a)return null;var s=a.textIsBracket[n];return s?Xe(this._findMatchingBracketUp(s,i,null)):null}},{key:"matchBracket",value:function(e){return this._matchBracket(this.validatePosition(e))}},{key:"_establishBracketSearchOffsets",value:function(e,t,n,i){for(var r=t.getCount(),o=t.getLanguageId(i),a=Math.max(0,e.column-1-n.maxBracketLength),s=i-1;s>=0;s--){var u=t.getEndOffset(s);if(u<=a)break;if((0,ze.Bu)(t.getStandardTokenType(s))||t.getLanguageId(s)!==o){a=u;break}}for(var l=Math.min(t.getLineContent().length,e.column-1+n.maxBracketLength),c=i+1;c<r;c++){var d=t.getStartOffset(c);if(d>=l)break;if((0,ze.Bu)(t.getStandardTokenType(c))||t.getLanguageId(c)!==o){l=d;break}}return{searchStartOffset:a,searchEndOffset:l}}},{key:"_matchBracket",value:function(e){var t=e.lineNumber,n=this._getLineTokens(t),i=this._buffer.getLineContent(t),r=n.findTokenIndexAtOffset(e.column-1);if(r<0)return null;var o=Be.zu.getBracketsSupport(n.getLanguageId(r));if(o&&!(0,ze.Bu)(n.getStandardTokenType(r))){for(var a=this._establishBracketSearchOffsets(e,n,o,r),s=a.searchStartOffset,u=a.searchEndOffset,l=null;;){var c=We.Vr.findNextBracketInRange(o.forwardRegex,t,i,s,u);if(!c)break;if(c.startColumn<=e.column&&e.column<=c.endColumn){var d=i.substring(c.startColumn-1,c.endColumn-1).toLowerCase(),h=this._matchFoundBracket(c,o.textIsBracket[d],o.textIsOpenBracket[d],null);if(h){if(h instanceof Qe)return null;l=h}}s=c.endColumn-1}if(l)return l}if(r>0&&n.getStartOffset(r)===e.column-1){var f=r-1,p=Be.zu.getBracketsSupport(n.getLanguageId(f));if(p&&!(0,ze.Bu)(n.getStandardTokenType(f))){var g=this._establishBracketSearchOffsets(e,n,p,f),v=g.searchStartOffset,m=g.searchEndOffset,_=We.Vr.findPrevBracketInRange(p.reversedRegex,t,i,v,m);if(_&&_.startColumn<=e.column&&e.column<=_.endColumn){var y=i.substring(_.startColumn-1,_.endColumn-1).toLowerCase(),b=this._matchFoundBracket(_,p.textIsBracket[y],p.textIsOpenBracket[y],null);if(b)return b instanceof Qe?null:b}}}return null}},{key:"_matchFoundBracket",value:function(e,t,n,i){if(!t)return null;var r=n?this._findMatchingBracketDown(t,e.getEndPosition(),i):this._findMatchingBracketUp(t,e.getStartPosition(),i);return r?r instanceof Qe?r:[e,r]:null}},{key:"_findMatchingBracketUp",value:function(e,t,n){for(var i=e.languageIdentifier.id,r=e.reversedRegex,o=-1,a=0,s=function(t,i,s,u){for(;;){if(n&&++a%100===0&&!n())return Qe.INSTANCE;var l=We.Vr.findPrevBracketInRange(r,t,i,s,u);if(!l)break;var c=i.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(e.isOpen(c)?o++:e.isClose(c)&&o--,0===o)return l;u=l.startColumn-1}return null},u=t.lineNumber;u>=1;u--){var l=this._getLineTokens(u),c=l.getCount(),d=this._buffer.getLineContent(u),h=c-1,f=d.length,p=d.length;u===t.lineNumber&&(h=l.findTokenIndexAtOffset(t.column-1),f=t.column-1,p=t.column-1);for(var g=!0;h>=0;h--){var v=l.getLanguageId(h)===i&&!(0,ze.Bu)(l.getStandardTokenType(h));if(v)g?f=l.getStartOffset(h):(f=l.getStartOffset(h),p=l.getEndOffset(h));else if(g&&f!==p){var m=s(u,d,f,p);if(m)return m}g=v}if(g&&f!==p){var _=s(u,d,f,p);if(_)return _}}return null}},{key:"_findMatchingBracketDown",value:function(e,t,n){for(var i=e.languageIdentifier.id,r=e.forwardRegex,o=1,a=0,s=function(t,i,s,u){for(;;){if(n&&++a%100===0&&!n())return Qe.INSTANCE;var l=We.Vr.findNextBracketInRange(r,t,i,s,u);if(!l)break;var c=i.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(e.isOpen(c)?o++:e.isClose(c)&&o--,0===o)return l;s=l.endColumn-1}return null},u=this.getLineCount(),l=t.lineNumber;l<=u;l++){var c=this._getLineTokens(l),d=c.getCount(),h=this._buffer.getLineContent(l),f=0,p=0,g=0;l===t.lineNumber&&(f=c.findTokenIndexAtOffset(t.column-1),p=t.column-1,g=t.column-1);for(var v=!0;f<d;f++){var m=c.getLanguageId(f)===i&&!(0,ze.Bu)(c.getStandardTokenType(f));if(m)v||(p=c.getStartOffset(f)),g=c.getEndOffset(f);else if(v&&p!==g){var _=s(l,h,p,g);if(_)return _}v=m}if(v&&p!==g){var y=s(l,h,p,g);if(y)return y}}return null}},{key:"findPrevBracket",value:function(e){for(var t=this.validatePosition(e),n=-1,i=null,r=t.lineNumber;r>=1;r--){var o=this._getLineTokens(r),a=o.getCount(),s=this._buffer.getLineContent(r),u=a-1,l=s.length,c=s.length;if(r===t.lineNumber){u=o.findTokenIndexAtOffset(t.column-1),l=t.column-1,c=t.column-1;var d=o.getLanguageId(u);n!==d&&(n=d,i=Be.zu.getBracketsSupport(n))}for(var h=!0;u>=0;u--){var f=o.getLanguageId(u);if(n!==f){if(i&&h&&l!==c){var p=We.Vr.findPrevBracketInRange(i.reversedRegex,r,s,l,c);if(p)return this._toFoundBracket(i,p);h=!1}n=f,i=Be.zu.getBracketsSupport(n)}var g=!!i&&!(0,ze.Bu)(o.getStandardTokenType(u));if(g)h?l=o.getStartOffset(u):(l=o.getStartOffset(u),c=o.getEndOffset(u));else if(i&&h&&l!==c){var v=We.Vr.findPrevBracketInRange(i.reversedRegex,r,s,l,c);if(v)return this._toFoundBracket(i,v)}h=g}if(i&&h&&l!==c){var m=We.Vr.findPrevBracketInRange(i.reversedRegex,r,s,l,c);if(m)return this._toFoundBracket(i,m)}}return null}},{key:"findNextBracket",value:function(e){for(var t=this.validatePosition(e),n=this.getLineCount(),i=-1,r=null,o=t.lineNumber;o<=n;o++){var a=this._getLineTokens(o),s=a.getCount(),u=this._buffer.getLineContent(o),l=0,c=0,d=0;if(o===t.lineNumber){l=a.findTokenIndexAtOffset(t.column-1),c=t.column-1,d=t.column-1;var h=a.getLanguageId(l);i!==h&&(i=h,r=Be.zu.getBracketsSupport(i))}for(var f=!0;l<s;l++){var p=a.getLanguageId(l);if(i!==p){if(r&&f&&c!==d){var g=We.Vr.findNextBracketInRange(r.forwardRegex,o,u,c,d);if(g)return this._toFoundBracket(r,g);f=!1}i=p,r=Be.zu.getBracketsSupport(i)}var v=!!r&&!(0,ze.Bu)(a.getStandardTokenType(l));if(v)f||(c=a.getStartOffset(l)),d=a.getEndOffset(l);else if(r&&f&&c!==d){var m=We.Vr.findNextBracketInRange(r.forwardRegex,o,u,c,d);if(m)return this._toFoundBracket(r,m)}f=v}if(r&&f&&c!==d){var _=We.Vr.findNextBracketInRange(r.forwardRegex,o,u,c,d);if(_)return this._toFoundBracket(r,_)}}return null}},{key:"findEnclosingBrackets",value:function(e,t){var n,i=this;if("undefined"===typeof t)n=null;else{var r=Date.now();n=function(){return Date.now()-r<=t}}for(var o=this.validatePosition(e),a=this.getLineCount(),s=new Map,u=[],l=function(e,t){if(!s.has(e)){for(var n=[],i=0,r=t?t.brackets.length:0;i<r;i++)n[i]=0;s.set(e,n)}u=s.get(e)},c=0,d=function(e,t,r,o,a){for(;;){if(n&&++c%100===0&&!n())return Qe.INSTANCE;var s=We.Vr.findNextBracketInRange(e.forwardRegex,t,r,o,a);if(!s)break;var l=r.substring(s.startColumn-1,s.endColumn-1).toLowerCase(),d=e.textIsBracket[l];if(d&&(d.isOpen(l)?u[d.index]++:d.isClose(l)&&u[d.index]--,-1===u[d.index]))return i._matchFoundBracket(s,d,!1,n);o=s.endColumn-1}return null},h=-1,f=null,p=o.lineNumber;p<=a;p++){var g=this._getLineTokens(p),v=g.getCount(),m=this._buffer.getLineContent(p),_=0,y=0,b=0;if(p===o.lineNumber){_=g.findTokenIndexAtOffset(o.column-1),y=o.column-1,b=o.column-1;var w=g.getLanguageId(_);h!==w&&l(h=w,f=Be.zu.getBracketsSupport(h))}for(var C=!0;_<v;_++){var k=g.getLanguageId(_);if(h!==k){if(f&&C&&y!==b){var S=d(f,p,m,y,b);if(S)return Xe(S);C=!1}l(h=k,f=Be.zu.getBracketsSupport(h))}var x=!!f&&!(0,ze.Bu)(g.getStandardTokenType(_));if(x)C||(y=g.getStartOffset(_)),b=g.getEndOffset(_);else if(f&&C&&y!==b){var L=d(f,p,m,y,b);if(L)return Xe(L)}C=x}if(f&&C&&y!==b){var E=d(f,p,m,y,b);if(E)return Xe(E)}}return null}},{key:"_toFoundBracket",value:function(e,t){if(!t)return null;var n=this.getValueInRange(t);n=n.toLowerCase();var i=e.textIsBracket[n];return i?{range:t,open:i.open,close:i.close,isOpen:e.textIsOpenBracket[n]}:null}},{key:"_computeIndentLevel",value:function(e){return n.computeIndentLevel(this._buffer.getLineContent(e+1),this._options.tabSize)}},{key:"getActiveIndentGuide",value:function(e,t,n){var i=this;this._assertNotDisposed();var r=this.getLineCount();if(e<1||e>r)throw new Error("Illegal value for lineNumber");for(var o=Be.zu.getFoldingRules(this._languageIdentifier.id),a=Boolean(o&&o.offSide),s=-2,u=-1,l=-2,c=-1,d=function(e){if(-1!==s&&(-2===s||s>e-1)){s=-1,u=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){s=t,u=n;break}}}if(-2===l){l=-1,c=-1;for(var o=e;o<r;o++){var a=i._computeIndentLevel(o);if(a>=0){l=o,c=a;break}}}},h=-2,f=-1,p=-2,g=-1,v=function(e){if(-2===h){h=-1,f=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){h=t,f=n;break}}}if(-1!==p&&(-2===p||p<e-1)){p=-1,g=-1;for(var o=e;o<r;o++){var a=i._computeIndentLevel(o);if(a>=0){p=o,g=a;break}}}},m=0,_=!0,y=0,b=!0,w=0,C=0,k=0;_||b;k++){var S=e-k,x=e+k;k>1&&(S<1||S<t)&&(_=!1),k>1&&(x>r||x>n)&&(b=!1),k>5e4&&(_=!1,b=!1);var L=-1;if(_){var E=this._computeIndentLevel(S-1);E>=0?(l=S-1,c=E,L=Math.ceil(E/this._options.indentSize)):(d(S),L=this._getIndentLevelForWhitespaceLine(a,u,c))}var N=-1;if(b){var D=this._computeIndentLevel(x-1);D>=0?(h=x-1,f=D,N=Math.ceil(D/this._options.indentSize)):(v(x),N=this._getIndentLevelForWhitespaceLine(a,f,g))}if(0!==k){if(1===k){if(x<=r&&N>=0&&C+1===N){_=!1,m=x,y=x,w=N;continue}if(S>=1&&L>=0&&L-1===C){b=!1,m=S,y=S,w=L;continue}if(m=e,y=e,0===(w=C))return{startLineNumber:m,endLineNumber:y,indent:w}}_&&(L>=w?m=S:_=!1),b&&(N>=w?y=x:b=!1)}else C=L}return{startLineNumber:m,endLineNumber:y,indent:w}}},{key:"getLinesIndentGuides",value:function(e,t){this._assertNotDisposed();var n=this.getLineCount();if(e<1||e>n)throw new Error("Illegal value for startLineNumber");if(t<1||t>n)throw new Error("Illegal value for endLineNumber");for(var i=Be.zu.getFoldingRules(this._languageIdentifier.id),r=Boolean(i&&i.offSide),o=new Array(t-e+1),a=-2,s=-1,u=-2,l=-1,c=e;c<=t;c++){var d=c-e,h=this._computeIndentLevel(c-1);if(h>=0)a=c-1,s=h,o[d]=Math.ceil(h/this._options.indentSize);else{if(-2===a){a=-1,s=-1;for(var f=c-2;f>=0;f--){var p=this._computeIndentLevel(f);if(p>=0){a=f,s=p;break}}}if(-1!==u&&(-2===u||u<c-1)){u=-1,l=-1;for(var g=c;g<n;g++){var v=this._computeIndentLevel(g);if(v>=0){u=g,l=v;break}}}o[d]=this._getIndentLevelForWhitespaceLine(r,s,l)}}return o}},{key:"_getIndentLevelForWhitespaceLine",value:function(e,t,n){return-1===t||-1===n?0:t<n?1+Math.floor(t/this._options.indentSize):t===n||e?Math.ceil(n/this._options.indentSize):1+Math.floor(n/this._options.indentSize)}}],[{key:"resolveOptions",value:function(e,t){if(t.detectIndentation){var n=S(e,t.tabSize,t.insertSpaces);return new b.dJ({tabSize:n.tabSize,indentSize:n.tabSize,insertSpaces:n.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}return new b.dJ({tabSize:t.tabSize,indentSize:t.indentSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}},{key:"_normalizeIndentationFromWhitespace",value:function(e,t,n){for(var i=0,r=0;r<e.length;r++)"\t"===e.charAt(r)?i+=t:i++;var o="";if(!n){var a=Math.floor(i/t);i%=t;for(var s=0;s<a;s++)o+="\t"}for(var u=0;u<i;u++)o+=" ";return o}},{key:"normalizeIndentation",value:function(e,t,i){var r=p.LC(e);return-1===r&&(r=e.length),n._normalizeIndentationFromWhitespace(e.substring(0,r),t,i)+e.substring(r)}},{key:"_findLanguageBoundaries",value:function(e,t){for(var n=e.getLanguageId(t),i=0,r=t;r>=0&&e.getLanguageId(r)===n;r--)i=e.getStartOffset(r);for(var o=e.getLineContent().length,a=t,s=e.getCount();a<s&&e.getLanguageId(a)===n;a++)o=e.getEndOffset(a);return[i,o]}},{key:"computeIndentLevel",value:function(e,t){for(var n=0,i=0,r=e.length;i<r;){var o=e.charCodeAt(i);if(32===o)n++;else{if(9!==o)break;n=n-n%t+t}i++}return i===r?-1:n}}]),n}(f.JT);Je.MODEL_SYNC_LIMIT=52428800,Je.LARGE_FILE_SIZE_THRESHOLD=20971520,Je.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5,Je.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:v.DB.tabSize,indentSize:v.DB.indentSize,insertSpaces:v.DB.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:v.DB.trimAutoWhitespace,largeFileOptimizations:v.DB.largeFileOptimizations};var et=function(){function e(){(0,l.Z)(this,e),this._decorationsTree0=new Z,this._decorationsTree1=new Z}return(0,c.Z)(e,[{key:"intervalSearch",value:function(e,t,n,i,r){var o=this._decorationsTree0.intervalSearch(e,t,n,i,r),a=this._decorationsTree1.intervalSearch(e,t,n,i,r);return o.concat(a)}},{key:"search",value:function(e,t,n,i){if(n)return this._decorationsTree1.search(e,t,i);var r=this._decorationsTree0.search(e,t,i),o=this._decorationsTree1.search(e,t,i);return r.concat(o)}},{key:"collectNodesFromOwner",value:function(e){var t=this._decorationsTree0.collectNodesFromOwner(e),n=this._decorationsTree1.collectNodesFromOwner(e);return t.concat(n)}},{key:"collectNodesPostOrder",value:function(){var e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder();return e.concat(t)}},{key:"insert",value:function(e){T(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}},{key:"delete",value:function(e){T(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}},{key:"resolveNode",value:function(e,t){T(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}},{key:"acceptReplace",value:function(e,t,n,i){this._decorationsTree0.acceptReplace(e,t,n,i),this._decorationsTree1.acceptReplace(e,t,n,i)}}]),e}();function tt(e){return e.replace(/[^a-z0-9\-_]/gi," ")}var nt=(0,c.Z)((function e(t){(0,l.Z)(this,e),this.color=t.color||"",this.darkColor=t.darkColor||""})),it=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,l.Z)(this,n),(i=t.call(this,e))._resolvedColor=null,i.position="number"===typeof e.position?e.position:b.sh.Center,i}return(0,c.Z)(n,[{key:"getColor",value:function(e){return this._resolvedColor||("light"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}},{key:"invalidateCachedColor",value:function(){this._resolvedColor=null}},{key:"_resolveColor",value:function(e,t){if("string"===typeof e)return e;var n=e?t.getColor(e.id):null;return n?n.toString():""}}]),n}(nt),rt=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,l.Z)(this,n),(i=t.call(this,e)).position=e.position,i}return(0,c.Z)(n,[{key:"getColor",value:function(e){return this._resolvedColor||("light"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}},{key:"invalidateCachedColor",value:function(){this._resolvedColor=void 0}},{key:"_resolveColor",value:function(e,t){return"string"===typeof e?Ve.Il.fromHex(e):t.getColor(e.id)}}]),n}(nt),ot=function(){function e(t){(0,l.Z)(this,e),this.stickiness=t.stickiness||0,this.zIndex=t.zIndex||0,this.className=t.className?tt(t.className):null,this.hoverMessage=t.hoverMessage||null,this.glyphMarginHoverMessage=t.glyphMarginHoverMessage||null,this.isWholeLine=t.isWholeLine||!1,this.showIfCollapsed=t.showIfCollapsed||!1,this.collapseOnReplaceEdit=t.collapseOnReplaceEdit||!1,this.overviewRuler=t.overviewRuler?new it(t.overviewRuler):null,this.minimap=t.minimap?new rt(t.minimap):null,this.glyphMarginClassName=t.glyphMarginClassName?tt(t.glyphMarginClassName):null,this.linesDecorationsClassName=t.linesDecorationsClassName?tt(t.linesDecorationsClassName):null,this.firstLineDecorationClassName=t.firstLineDecorationClassName?tt(t.firstLineDecorationClassName):null,this.marginClassName=t.marginClassName?tt(t.marginClassName):null,this.inlineClassName=t.inlineClassName?tt(t.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=t.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=t.beforeContentClassName?tt(t.beforeContentClassName):null,this.afterContentClassName=t.afterContentClassName?tt(t.afterContentClassName):null}return(0,c.Z)(e,null,[{key:"register",value:function(t){return new e(t)}},{key:"createDynamic",value:function(t){return new e(t)}}]),e}();ot.EMPTY=ot.register({});var at=[ot.register({stickiness:0}),ot.register({stickiness:1}),ot.register({stickiness:2}),ot.register({stickiness:3})];function st(e){return e instanceof ot?e:ot.createDynamic(e)}var ut=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(){var e;return(0,l.Z)(this,n),(e=t.call(this))._actual=e._register(new h.Q5),e.event=e._actual.event,e._deferredCnt=0,e._shouldFire=!1,e._affectsMinimap=!1,e._affectsOverviewRuler=!1,e}return(0,c.Z)(n,[{key:"beginDeferredEmit",value:function(){this._deferredCnt++}},{key:"endDeferredEmit",value:function(){if(this._deferredCnt--,0===this._deferredCnt&&this._shouldFire){var e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler};this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._actual.fire(e)}}},{key:"checkAffectedAndFire",value:function(e){this._affectsMinimap||(this._affectsMinimap=!(!e.minimap||!e.minimap.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!(!e.overviewRuler||!e.overviewRuler.color)),this._shouldFire=!0}},{key:"fire",value:function(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._shouldFire=!0}}]),n}(f.JT),lt=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(){var e;return(0,l.Z)(this,n),(e=t.call(this))._fastEmitter=e._register(new h.Q5),e.fastEvent=e._fastEmitter.event,e._slowEmitter=e._register(new h.Q5),e.slowEvent=e._slowEmitter.event,e._deferredCnt=0,e._deferredEvent=null,e}return(0,c.Z)(n,[{key:"beginDeferredEmit",value:function(){this._deferredCnt++}},{key:"endDeferredEmit",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(this._deferredCnt--,0===this._deferredCnt&&null!==this._deferredEvent){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;var t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}},{key:"fire",value:function(e){this._deferredCnt>0?this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e:(this._fastEmitter.fire(e),this._slowEmitter.fire(e))}}]),n}(f.JT)},44322:function(e,t,n){"use strict";n.d(t,{bc:function(){return c},cM:function(){return g},iE:function(){return h},pM:function(){return p},sz:function(){return v}});var i=n(15671),r=n(43144),o=n(51747),a=n(20937),s=n(67297),u=n(67033),l=n(46502),c=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.searchString=t,this.isRegex=n,this.matchCase=r,this.wordSeparators=o}return(0,r.Z)(e,[{key:"parseSearchRequest",value:function(){if(""===this.searchString)return null;var e;e=this.isRegex?function(e){if(!e||0===e.length)return!1;for(var t=0,n=e.length;t<n;t++){if(92===e.charCodeAt(t)){if(++t>=n)break;var i=e.charCodeAt(t);if(110===i||114===i||87===i||119===i)return!0}}return!1}(this.searchString):this.searchString.indexOf("\n")>=0;var t=null;try{t=o.GF(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(i){return null}if(!t)return null;var n=!this.isRegex&&!e;return n&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(n=this.matchCase),new d(t,this.wordSeparators?(0,a.u)(this.wordSeparators):null,n?this.searchString:null)}}]),e}();var d=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.regex=t,this.wordSeparators=n,this.simpleSearch=r}));function h(e,t,n){if(!n)return new l.tk(e,null);for(var i=[],r=0,o=t.length;r<o;r++)i[r]=t[r];return new l.tk(e,i)}var f=function(){function e(t){(0,i.Z)(this,e);for(var n=[],r=0,o=0,a=t.length;o<a;o++)10===t.charCodeAt(o)&&(n[r++]=o);this._lineFeedsOffsets=n}return(0,r.Z)(e,[{key:"findLineFeedCountBeforeOffset",value:function(e){var t=this._lineFeedsOffsets,n=0,i=t.length-1;if(-1===i)return 0;if(e<=t[0])return 0;for(;n<i;){var r=n+((i-n)/2>>0);t[r]>=e?i=r-1:t[r+1]>=e?(n=r,i=r):n=r+1}return n+1}}]),e}(),p=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,null,[{key:"findMatches",value:function(e,t,n,i,r){var o=t.parseSearchRequest();return o?o.regex.multiline?this._doFindMatchesMultiline(e,n,new v(o.wordSeparators,o.regex),i,r):this._doFindMatchesLineByLine(e,n,o,i,r):[]}},{key:"_getMultilineMatchRange",value:function(e,t,n,i,r,o){var a,s,l=0;if(a=i?t+r+(l=i.findLineFeedCountBeforeOffset(r)):t+r,i){var c=i.findLineFeedCountBeforeOffset(r+o.length)-l;s=a+o.length+c}else s=a+o.length;var d=e.getPositionAt(a),h=e.getPositionAt(s);return new u.e(d.lineNumber,d.column,h.lineNumber,h.column)}},{key:"_doFindMatchesMultiline",value:function(e,t,n,i,r){var o,a=e.getOffsetAt(t.getStartPosition()),s=e.getValueInRange(t,1),u="\r\n"===e.getEOL()?new f(s):null,l=[],c=0;for(n.reset(0);o=n.next(s);)if(l[c++]=h(this._getMultilineMatchRange(e,a,s,u,o.index,o[0]),o,i),c>=r)return l;return l}},{key:"_doFindMatchesLineByLine",value:function(e,t,n,i,r){var o=[],a=0;if(t.startLineNumber===t.endLineNumber){var s=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return a=this._findMatchesInLine(n,s,t.startLineNumber,t.startColumn-1,a,o,i,r),o}var u=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);a=this._findMatchesInLine(n,u,t.startLineNumber,t.startColumn-1,a,o,i,r);for(var l=t.startLineNumber+1;l<t.endLineNumber&&a<r;l++)a=this._findMatchesInLine(n,e.getLineContent(l),l,0,a,o,i,r);if(a<r){var c=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);a=this._findMatchesInLine(n,c,t.endLineNumber,0,a,o,i,r)}return o}},{key:"_findMatchesInLine",value:function(e,t,n,i,r,o,a,s){var c=e.wordSeparators;if(!a&&e.simpleSearch){for(var d=e.simpleSearch,f=d.length,p=t.length,m=-f;-1!==(m=t.indexOf(d,m+f));)if((!c||g(c,t,p,m,f))&&(o[r++]=new l.tk(new u.e(n,m+1+i,n,m+1+f+i),null),r>=s))return r;return r}var _,y=new v(e.wordSeparators,e.regex);y.reset(0);do{if((_=y.next(t))&&(o[r++]=h(new u.e(n,_.index+1+i,n,_.index+1+_[0].length+i),_,a),r>=s))return r}while(_);return r}},{key:"findNextMatch",value:function(e,t,n,i){var r=t.parseSearchRequest();if(!r)return null;var o=new v(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindNextMatchMultiline(e,n,o,i):this._doFindNextMatchLineByLine(e,n,o,i)}},{key:"_doFindNextMatchMultiline",value:function(e,t,n,i){var r=new s.L(t.lineNumber,1),o=e.getOffsetAt(r),a=e.getLineCount(),l=e.getValueInRange(new u.e(r.lineNumber,r.column,a,e.getLineMaxColumn(a)),1),c="\r\n"===e.getEOL()?new f(l):null;n.reset(t.column-1);var d=n.next(l);return d?h(this._getMultilineMatchRange(e,o,l,c,d.index,d[0]),d,i):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new s.L(1,1),n,i):null}},{key:"_doFindNextMatchLineByLine",value:function(e,t,n,i){var r=e.getLineCount(),o=t.lineNumber,a=e.getLineContent(o),s=this._findFirstMatchInLine(n,a,o,t.column,i);if(s)return s;for(var u=1;u<=r;u++){var l=(o+u-1)%r,c=e.getLineContent(l+1),d=this._findFirstMatchInLine(n,c,l+1,1,i);if(d)return d}return null}},{key:"_findFirstMatchInLine",value:function(e,t,n,i,r){e.reset(i-1);var o=e.next(t);return o?h(new u.e(n,o.index+1,n,o.index+1+o[0].length),o,r):null}},{key:"findPreviousMatch",value:function(e,t,n,i){var r=t.parseSearchRequest();if(!r)return null;var o=new v(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindPreviousMatchMultiline(e,n,o,i):this._doFindPreviousMatchLineByLine(e,n,o,i)}},{key:"_doFindPreviousMatchMultiline",value:function(e,t,n,i){var r=this._doFindMatchesMultiline(e,new u.e(1,1,t.lineNumber,t.column),n,i,9990);if(r.length>0)return r[r.length-1];var o=e.getLineCount();return t.lineNumber!==o||t.column!==e.getLineMaxColumn(o)?this._doFindPreviousMatchMultiline(e,new s.L(o,e.getLineMaxColumn(o)),n,i):null}},{key:"_doFindPreviousMatchLineByLine",value:function(e,t,n,i){var r=e.getLineCount(),o=t.lineNumber,a=e.getLineContent(o).substring(0,t.column-1),s=this._findLastMatchInLine(n,a,o,i);if(s)return s;for(var u=1;u<=r;u++){var l=(r+o-u-1)%r,c=e.getLineContent(l+1),d=this._findLastMatchInLine(n,c,l+1,i);if(d)return d}return null}},{key:"_findLastMatchInLine",value:function(e,t,n,i){var r,o=null;for(e.reset(0);r=e.next(t);)o=h(new u.e(n,r.index+1,n,r.index+1+r[0].length),r,i);return o}}]),e}();function g(e,t,n,i,r){return function(e,t,n,i,r){if(0===i)return!0;var o=t.charCodeAt(i-1);if(0!==e.get(o))return!0;if(13===o||10===o)return!0;if(r>0){var a=t.charCodeAt(i);if(0!==e.get(a))return!0}return!1}(e,t,0,i,r)&&function(e,t,n,i,r){if(i+r===n)return!0;var o=t.charCodeAt(i+r);if(0!==e.get(o))return!0;if(13===o||10===o)return!0;if(r>0){var a=t.charCodeAt(i+r-1);if(0!==e.get(a))return!0}return!1}(e,t,n,i,r)}var v=function(){function e(t,n){(0,i.Z)(this,e),this._wordSeparators=t,this._searchRegex=n,this._prevMatchStartIndex=-1,this._prevMatchLength=0}return(0,r.Z)(e,[{key:"reset",value:function(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}},{key:"next",value:function(e){var t,n=e.length;do{if(this._prevMatchStartIndex+this._prevMatchLength===n)return null;if(!(t=this._searchRegex.exec(e)))return null;var i=t.index,r=t[0].length;if(i===this._prevMatchStartIndex&&r===this._prevMatchLength){if(0===r){o.ZH(e,n,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=i,this._prevMatchLength=r,!this._wordSeparators||g(this._wordSeparators,e,n,i,r))return t}while(t);return null}}]),e}()},98623:function(e,t,n){"use strict";n.d(t,{DA:function(){return g},OU:function(){return v},QZ:function(){return h},Rl:function(){return C},Wz:function(){return _},cx:function(){return w}});var i=n(37762),r=n(29439),o=n(15671),a=n(43144),s=n(49396),u=n(34763),l=n(67297),c=n(67033),d=n(99404);function h(e){for(var t=0,n=0,i=0,r=0,o=0,a=e.length;o<a;o++){var s=e.charCodeAt(o);13===s?(0===t&&(n=o),t++,o+1<a&&10===e.charCodeAt(o+1)?(r|=2,o++):r|=3,i=o+1):10===s&&(r|=1,0===t&&(n=o),t++,i=o+1)}return 0===t&&(n=e.length),[t,n,e.length-i,r]}function f(e){return(16384|e<<0|2<<23)>>>0}var p=new Uint32Array(0).buffer,g=function(){function e(){(0,o.Z)(this,e),this.tokens=[]}return(0,a.Z)(e,[{key:"add",value:function(e,t){if(this.tokens.length>0){var n=this.tokens[this.tokens.length-1];if(n.startLineNumber+n.tokens.length-1+1===e)return void n.tokens.push(t)}this.tokens.push(new y(e,[t]))}}]),e}(),v=function(){function e(t){(0,o.Z)(this,e),this._tokens=t,this._tokenCount=t.length/4}return(0,a.Z)(e,[{key:"toString",value:function(e){for(var t=[],n=0;n<this._tokenCount;n++)t.push("(".concat(this._getDeltaLine(n)+e,",").concat(this._getStartCharacter(n),"-").concat(this._getEndCharacter(n),")"));return"[".concat(t.join(","),"]")}},{key:"getMaxDeltaLine",value:function(){var e=this._getTokenCount();return 0===e?-1:this._getDeltaLine(e-1)}},{key:"getRange",value:function(){var e=this._getTokenCount();if(0===e)return null;var t=this._getStartCharacter(0),n=this._getDeltaLine(e-1),i=this._getEndCharacter(e-1);return new c.e(0,t+1,n,i+1)}},{key:"_getTokenCount",value:function(){return this._tokenCount}},{key:"_getDeltaLine",value:function(e){return this._tokens[4*e]}},{key:"_getStartCharacter",value:function(e){return this._tokens[4*e+1]}},{key:"_getEndCharacter",value:function(e){return this._tokens[4*e+2]}},{key:"isEmpty",value:function(){return 0===this._getTokenCount()}},{key:"getLineTokens",value:function(e){for(var t=0,n=this._getTokenCount()-1;t<n;){var i=t+Math.floor((n-t)/2),r=this._getDeltaLine(i);if(r<e)t=i+1;else{if(!(r>e)){for(var o=i;o>t&&this._getDeltaLine(o-1)===e;)o--;for(var a=i;a<n&&this._getDeltaLine(a+1)===e;)a++;return new m(this._tokens.subarray(4*o,4*a+4))}n=i-1}}return this._getDeltaLine(t)===e?new m(this._tokens.subarray(4*t,4*t+4)):null}},{key:"clear",value:function(){this._tokenCount=0}},{key:"removeTokens",value:function(e,t,n,i){for(var r=this._tokens,o=this._tokenCount,a=0,s=!1,u=0,l=0;l<o;l++){var c=4*l,d=r[c],h=r[c+1],f=r[c+2],p=r[c+3];if((d>e||d===e&&f>=t)&&(d<n||d===n&&h<=i))s=!0;else{if(0===a&&(u=d),s){var g=4*a;r[g]=d-u,r[g+1]=h,r[g+2]=f,r[g+3]=p}a++}}return this._tokenCount=a,u}},{key:"split",value:function(t,n,i,r){for(var o=this._tokens,a=this._tokenCount,s=[],u=[],l=s,c=0,d=0,h=0;h<a;h++){var f=4*h,p=o[f],g=o[f+1],v=o[f+2],m=o[f+3];if(p>t||p===t&&v>=n){if(p<i||p===i&&g<=r)continue;l!==u&&(l=u,c=0,d=p)}l[c++]=p-d,l[c++]=g,l[c++]=v,l[c++]=m}return[new e(new Uint32Array(s)),new e(new Uint32Array(u)),d]}},{key:"acceptDeleteRange",value:function(e,t,n,i,r){for(var o=this._tokens,a=this._tokenCount,s=i-t,u=0,l=!1,c=0;c<a;c++){var d=4*c,h=o[d],f=o[d+1],p=o[d+2],g=o[d+3];if(h<t||h===t&&p<=n)u++;else{if(h===t&&f<n)h===i&&p>r?p-=r-n:p=n;else if(h===t&&f===n){if(!(h===i&&p>r)){l=!0;continue}p-=r-n}else if(h<i||h===i&&f<r){if(!(h===i&&p>r)){l=!0;continue}p=h===t?(f=n)+(p-r):(f=0)+(p-r)}else if(h>i){if(0===s&&!l){u=a;break}h-=s}else{if(!(h===i&&f>=r))throw new Error("Not possible!");e&&0===h&&(f+=e,p+=e),h-=s,f-=r-n,p-=r-n}var v=4*u;o[v]=h,o[v+1]=f,o[v+2]=p,o[v+3]=g,u++}}this._tokenCount=u}},{key:"acceptInsertText",value:function(e,t,n,i,r,o){for(var a=0===n&&1===i&&(o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122),s=this._tokens,u=this._tokenCount,l=0;l<u;l++){var c=4*l,d=s[c],h=s[c+1],f=s[c+2];if(!(d<e||d===e&&f<t)){if(d===e&&f===t){if(!a)continue;f+=1}else if(d===e&&h<t&&t<f)0===n?f+=i:f=t;else{if(d===e&&h===t&&a)continue;if(d===e)if(d+=n,0===n)h+=i,f+=i;else{var p=f-h;f=(h=r+(h-t))+p}else d+=n}s[c]=d,s[c+1]=h,s[c+2]=f}}}}]),e}(),m=function(){function e(t){(0,o.Z)(this,e),this._tokens=t}return(0,a.Z)(e,[{key:"getCount",value:function(){return this._tokens.length/4}},{key:"getStartCharacter",value:function(e){return this._tokens[4*e+1]}},{key:"getEndCharacter",value:function(e){return this._tokens[4*e+2]}},{key:"getMetadata",value:function(e){return this._tokens[4*e+3]}}]),e}(),_=function(){function e(t,n){(0,o.Z)(this,e),this.startLineNumber=t,this.tokens=n,this.endLineNumber=this.startLineNumber+this.tokens.getMaxDeltaLine()}return(0,a.Z)(e,[{key:"toString",value:function(){return this.tokens.toString(this.startLineNumber)}},{key:"_updateEndLineNumber",value:function(){this.endLineNumber=this.startLineNumber+this.tokens.getMaxDeltaLine()}},{key:"isEmpty",value:function(){return this.tokens.isEmpty()}},{key:"getLineTokens",value:function(e){return this.startLineNumber<=e&&e<=this.endLineNumber?this.tokens.getLineTokens(e-this.startLineNumber):null}},{key:"getRange",value:function(){var e=this.tokens.getRange();return e?new c.e(this.startLineNumber+e.startLineNumber,e.startColumn,this.startLineNumber+e.endLineNumber,e.endColumn):e}},{key:"removeTokens",value:function(e){var t=e.startLineNumber-this.startLineNumber,n=e.endLineNumber-this.startLineNumber;this.startLineNumber+=this.tokens.removeTokens(t,e.startColumn-1,n,e.endColumn-1),this._updateEndLineNumber()}},{key:"split",value:function(t){var n=t.startLineNumber-this.startLineNumber,i=t.endLineNumber-this.startLineNumber,o=this.tokens.split(n,t.startColumn-1,i,t.endColumn-1),a=(0,r.Z)(o,3),s=a[0],u=a[1],l=a[2];return[new e(this.startLineNumber,s),new e(this.startLineNumber+l,u)]}},{key:"applyEdit",value:function(e,t){var n=h(t),i=(0,r.Z)(n,3),o=i[0],a=i[1],s=i[2];this.acceptEdit(e,o,a,s,t.length>0?t.charCodeAt(0):0)}},{key:"acceptEdit",value:function(e,t,n,i,r){this._acceptDeleteRange(e),this._acceptInsertText(new l.L(e.startLineNumber,e.startColumn),t,n,i,r),this._updateEndLineNumber()}},{key:"_acceptDeleteRange",value:function(e){if(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn){var t=e.startLineNumber-this.startLineNumber,n=e.endLineNumber-this.startLineNumber;if(n<0){var i=n-t;this.startLineNumber-=i}else{var r=this.tokens.getMaxDeltaLine();if(!(t>=r+1)){if(t<0&&n>=r+1)return this.startLineNumber=0,void this.tokens.clear();if(t<0){var o=-t;this.startLineNumber-=o,this.tokens.acceptDeleteRange(e.startColumn-1,0,0,n,e.endColumn-1)}else this.tokens.acceptDeleteRange(0,t,e.startColumn-1,n,e.endColumn-1)}}}}},{key:"_acceptInsertText",value:function(e,t,n,i,r){if(0!==t||0!==n){var o=e.lineNumber-this.startLineNumber;if(o<0)this.startLineNumber+=t;else o>=this.tokens.getMaxDeltaLine()+1||this.tokens.acceptInsertText(o,e.column-1,t,n,i,r)}}}]),e}(),y=(0,a.Z)((function e(t,n){(0,o.Z)(this,e),this.startLineNumber=t,this.tokens=n}));function b(e){return e instanceof Uint32Array?e:new Uint32Array(e)}var w=function(){function e(){(0,o.Z)(this,e),this._pieces=[],this._isComplete=!1}return(0,a.Z)(e,[{key:"flush",value:function(){this._pieces=[],this._isComplete=!1}},{key:"isEmpty",value:function(){return 0===this._pieces.length}},{key:"set",value:function(e,t){this._pieces=e||[],this._isComplete=t}},{key:"setPartial",value:function(e,t){var n=e;if(t.length>0){var i=t[0].getRange(),o=t[t.length-1].getRange();if(!i||!o)return e;n=e.plusRange(i).plusRange(o)}for(var a=null,u=0,l=this._pieces.length;u<l;u++){var c=this._pieces[u];if(!(c.endLineNumber<n.startLineNumber)){if(c.startLineNumber>n.endLineNumber){a=a||{index:u};break}if(c.removeTokens(n),c.isEmpty())this._pieces.splice(u,1),u--,l--;else if(!(c.endLineNumber<n.startLineNumber))if(c.startLineNumber>n.endLineNumber)a=a||{index:u};else{var d=c.split(n),h=(0,r.Z)(d,2),f=h[0],p=h[1];f.isEmpty()?a=a||{index:u}:p.isEmpty()||(this._pieces.splice(u,1,f,p),u++,l++,a=a||{index:u})}}}return a=a||{index:this._pieces.length},t.length>0&&(this._pieces=s.Zv(this._pieces,a.index,t)),n}},{key:"isComplete",value:function(){return this._isComplete}},{key:"addSemanticTokens",value:function(t,n){var i=this._pieces;if(0===i.length)return n;var r=i[e._findFirstPieceWithLine(i,t)].getLineTokens(t);if(!r)return n;for(var o=n.getCount(),a=r.getCount(),s=0,l=[],c=0,d=0,h=function(e,t){e!==d&&(d=e,l[c++]=e,l[c++]=t)},f=0;f<a;f++){for(var p=r.getStartCharacter(f),g=r.getEndCharacter(f),v=r.getMetadata(f),m=((1&v?2048:0)|(2&v?4096:0)|(4&v?8192:0)|(8&v?8372224:0)|(16&v?4286578688:0))>>>0,_=~m>>>0;s<o&&n.getEndOffset(s)<=p;)h(n.getEndOffset(s),n.getMetadata(s)),s++;for(s<o&&n.getStartOffset(s)<p&&h(p,n.getMetadata(s));s<o&&n.getEndOffset(s)<g;)h(n.getEndOffset(s),n.getMetadata(s)&_|v&m),s++;if(s<o)h(g,n.getMetadata(s)&_|v&m),n.getEndOffset(s)===g&&s++;else{var y=Math.min(Math.max(0,s-1),o-1);h(g,n.getMetadata(y)&_|v&m)}}for(;s<o;)h(n.getEndOffset(s),n.getMetadata(s)),s++;return new u.A(new Uint32Array(l),n.getLineContent())}},{key:"acceptEdit",value:function(e,t,n,r,o){var a,s=(0,i.Z)(this._pieces);try{for(s.s();!(a=s.n()).done;){a.value.acceptEdit(e,t,n,r,o)}}catch(u){s.e(u)}finally{s.f()}}}],[{key:"_findFirstPieceWithLine",value:function(e,t){for(var n=0,i=e.length-1;n<i;){var r=n+Math.floor((i-n)/2);if(e[r].endLineNumber<t)n=r+1;else{if(!(e[r].startLineNumber>t)){for(;r>n&&e[r-1].startLineNumber<=t&&t<=e[r-1].endLineNumber;)r--;return r}i=r-1}}return n}}]),e}(),C=function(){function e(){(0,o.Z)(this,e),this._lineTokens=[],this._len=0}return(0,a.Z)(e,[{key:"flush",value:function(){this._lineTokens=[],this._len=0}},{key:"getTokens",value:function(e,t,n){var i=null;if(t<this._len&&(i=this._lineTokens[t]),null!==i&&i!==p)return new u.A(b(i),n);var r=new Uint32Array(2);return r[0]=n.length,r[1]=f(e),new u.A(r,n)}},{key:"_ensureLine",value:function(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}},{key:"_deleteLines",value:function(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}},{key:"_insertLines",value:function(e,t){if(0!==t){for(var n=[],i=0;i<t;i++)n[i]=null;this._lineTokens=s.Zv(this._lineTokens,e,n),this._len+=t}}},{key:"setTokens",value:function(t,n,i,r,o){var a=e._massageTokens(t,i,r);this._ensureLine(n);var s=this._lineTokens[n];return this._lineTokens[n]=a,!!o&&!e._equals(s,a)}},{key:"acceptEdit",value:function(e,t,n){this._acceptDeleteRange(e),this._acceptInsertText(new l.L(e.startLineNumber,e.startColumn),t,n)}},{key:"_acceptDeleteRange",value:function(t){var n=t.startLineNumber-1;if(!(n>=this._len))if(t.startLineNumber!==t.endLineNumber){this._lineTokens[n]=e._deleteEnding(this._lineTokens[n],t.startColumn-1);var i=t.endLineNumber-1,r=null;i<this._len&&(r=e._deleteBeginning(this._lineTokens[i],t.endColumn-1)),this._lineTokens[n]=e._append(this._lineTokens[n],r),this._deleteLines(t.startLineNumber,t.endLineNumber-t.startLineNumber)}else{if(t.startColumn===t.endColumn)return;this._lineTokens[n]=e._delete(this._lineTokens[n],t.startColumn-1,t.endColumn-1)}}},{key:"_acceptInsertText",value:function(t,n,i){if(0!==n||0!==i){var r=t.lineNumber-1;r>=this._len||(0!==n?(this._lineTokens[r]=e._deleteEnding(this._lineTokens[r],t.column-1),this._lineTokens[r]=e._insert(this._lineTokens[r],t.column-1,i),this._insertLines(t.lineNumber,n)):this._lineTokens[r]=e._insert(this._lineTokens[r],t.column-1,i))}}}],[{key:"_massageTokens",value:function(e,t,n){var i=n?b(n):null;if(0===t){var r=!1;if(i&&i.length>1&&(r=d.NX.getLanguageId(i[1])!==e),!r)return p}if(!i||0===i.length){var o=new Uint32Array(2);return o[0]=t,o[1]=f(e),o.buffer}return i[i.length-2]=t,0===i.byteOffset&&i.byteLength===i.buffer.byteLength?i.buffer:i}},{key:"_equals",value:function(e,t){if(!e||!t)return!e&&!t;var n=b(e),i=b(t);if(n.length!==i.length)return!1;for(var r=0,o=n.length;r<o;r++)if(n[r]!==i[r])return!1;return!0}},{key:"_deleteBeginning",value:function(t,n){return null===t||t===p?t:e._delete(t,0,n)}},{key:"_deleteEnding",value:function(t,n){if(null===t||t===p)return t;var i=b(t),r=i[i.length-2];return e._delete(t,n,r)}},{key:"_delete",value:function(e,t,n){if(null===e||e===p||t===n)return e;var i=b(e),r=i.length>>>1;if(0===t&&i[i.length-2]===n)return p;var o,a,s=u.A.findIndexInTokensArray(i,t),l=s>0?i[s-1<<1]:0;if(n<i[s<<1]){for(var c=n-t,d=s;d<r;d++)i[d<<1]-=c;return e}l!==t?(i[s<<1]=t,o=s+1<<1,a=t):(o=s<<1,a=l);for(var h=n-t,f=s+1;f<r;f++){var g=i[f<<1]-h;g>a&&(i[o++]=g,i[o++]=i[1+(f<<1)],a=g)}if(o===i.length)return e;var v=new Uint32Array(o);return v.set(i.subarray(0,o),0),v.buffer}},{key:"_append",value:function(e,t){if(t===p)return e;if(e===p)return t;if(null===e)return e;if(null===t)return null;var n=b(e),i=b(t),r=i.length>>>1,o=new Uint32Array(n.length+i.length);o.set(n,0);for(var a=n.length,s=n[n.length-2],u=0;u<r;u++)o[a++]=i[u<<1]+s,o[a++]=i[1+(u<<1)];return o.buffer}},{key:"_insert",value:function(e,t,n){if(null===e||e===p)return e;var i=b(e),r=i.length>>>1,o=u.A.findIndexInTokensArray(i,t);o>0&&(i[o-1<<1]===t&&o--);for(var a=o;a<r;a++)i[a<<1]+=n;return e}}]),e}()},43717:function(e,t,n){"use strict";n.d(t,{Af:function(){return o},eq:function(){return a},t2:function(){return u},vu:function(){return r}});var i=n(37762),r="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";var o=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n="(-?\\d*\\.\\d\\w*)|([^",o=(0,i.Z)(r);try{for(o.s();!(e=o.n()).done;){var a=e.value;t.indexOf(a)>=0||(n+="\\"+a)}}catch(s){o.e(s)}finally{o.f()}return n+="\\s]+)",new RegExp(n,"g")}();function a(e){var t=o;if(e&&e instanceof RegExp)if(e.global)t=e;else{var n="g";e.ignoreCase&&(n+="i"),e.multiline&&(n+="m"),e.unicode&&(n+="u"),t=new RegExp(e.source,n)}return t.lastIndex=0,t}var s={maxLen:1e3,windowSize:15,timeBudget:150};function u(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:s;if(n.length>r.maxLen){var o=e-r.maxLen/2;return o<0?o=0:i+=o,u(e,t,n=n.substring(o,e+r.maxLen/2),i,r)}for(var a=Date.now(),c=e-1-i,d=-1,h=null,f=1;!(Date.now()-a>=r.timeBudget);f++){var p=c-r.windowSize*f;t.lastIndex=Math.max(0,p);var g=l(t,n,c,d);if(!g&&h)break;if(h=g,p<=0)break;d=p}if(h){var v={word:h[0],startColumn:i+1+h.index,endColumn:i+1+h.index+h[0].length};return t.lastIndex=0,v}return null}function l(e,t,n,i){for(var r;r=e.exec(t);){var o=r.index||0;if(o<=n&&e.lastIndex>=n)return r;if(i>0&&o>i)return null}return null}},99404:function(e,t,n){"use strict";n.d(t,{H9:function(){return P},He:function(){return A},OH:function(){return B},KZ:function(){return S},RN:function(){return T},Ct:function(){return M},Az:function(){return Z},MY:function(){return r},vH:function(){return N},vN:function(){return F},K7:function(){return Y},wT:function(){return V},vJ:function(){return E},AD:function(){return w},aC:function(){return W},xp:function(){return L},vI:function(){return O},wo:function(){return R},rl:function(){return g},pM:function(){return H},id:function(){return D},ln:function(){return j},FL:function(){return C},G0:function(){return k},AC:function(){return z},nD:function(){return x},WW:function(){return i},uZ:function(){return o},NX:function(){return v},RW:function(){return U},tA:function(){return I},jr:function(){return _},Sy:function(){return m},vx:function(){return y}});var i,r,o,a=n(43144),s=n(15671),u=n(67775),l=n(67033),c=n(66748),d=n(11732),h=n(81626),f=function(){function e(){(0,s.Z)(this,e),this._map=new Map,this._promises=new Map,this._onDidChange=new d.Q5,this.onDidChange=this._onDidChange.event,this._colorMap=null}return(0,a.Z)(e,[{key:"fire",value:function(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})}},{key:"register",value:function(e,t){var n=this;return this._map.set(e,t),this.fire([e]),(0,h.OF)((function(){n._map.get(e)===t&&(n._map.delete(e),n.fire([e]))}))}},{key:"registerPromise",value:function(e,t){var n=this,i=null,r=!1;return this._promises.set(e,t.then((function(t){n._promises.delete(e),!r&&t&&(i=n.register(e,t))}))),(0,h.OF)((function(){r=!0,i&&i.dispose()}))}},{key:"getPromise",value:function(e){var t=this,n=this.get(e);if(n)return Promise.resolve(n);var i=this._promises.get(e);return i?i.then((function(n){return t.get(e)})):null}},{key:"get",value:function(e){return this._map.get(e)||null}},{key:"setColorMap",value:function(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._map.keys()),changedColorMap:!0})}},{key:"getColorMap",value:function(){return this._colorMap}},{key:"getDefaultBackground",value:function(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}]),e}(),p=n(4354),g=(0,a.Z)((function e(t,n){(0,s.Z)(this,e),this.language=t,this.id=n})),v=function(){function e(){(0,s.Z)(this,e)}return(0,a.Z)(e,null,[{key:"getLanguageId",value:function(e){return(255&e)>>>0}},{key:"getTokenType",value:function(e){return(1792&e)>>>8}},{key:"getFontStyle",value:function(e){return(14336&e)>>>11}},{key:"getForeground",value:function(e){return(8372224&e)>>>14}},{key:"getBackground",value:function(e){return(4286578688&e)>>>23}},{key:"getClassNameFromMetadata",value:function(e){var t="mtk"+this.getForeground(e),n=this.getFontStyle(e);return 1&n&&(t+=" mtki"),2&n&&(t+=" mtkb"),4&n&&(t+=" mtku"),t}},{key:"getInlineStyleFromMetadata",value:function(e,t){var n=this.getForeground(e),i=this.getFontStyle(e),r="color: ".concat(t[n],";");return 1&i&&(r+="font-style: italic;"),2&i&&(r+="font-weight: bold;"),4&i&&(r+="text-decoration: underline;"),r}}]),e}(),m=function(){var e=Object.create(null);return e[0]="symbol-method",e[1]="symbol-function",e[2]="symbol-constructor",e[3]="symbol-field",e[4]="symbol-variable",e[5]="symbol-class",e[6]="symbol-struct",e[7]="symbol-interface",e[8]="symbol-module",e[9]="symbol-property",e[10]="symbol-event",e[11]="symbol-operator",e[12]="symbol-unit",e[13]="symbol-value",e[14]="symbol-constant",e[15]="symbol-enum",e[16]="symbol-enum-member",e[17]="symbol-keyword",e[27]="symbol-snippet",e[18]="symbol-text",e[19]="symbol-color",e[20]="symbol-file",e[21]="symbol-reference",e[22]="symbol-customcolor",e[23]="symbol-folder",e[24]="symbol-type-parameter",e[25]="account",e[26]="issues",function(t){var n=e[t],i=n&&p.fK.get(n);return i||(console.info("No codicon found for CompletionItemKind "+t),i=p.lA.symbolProperty),i.classNames}}(),_=function(){var e=Object.create(null);return e.method=0,e.function=1,e.constructor=2,e.field=3,e.variable=4,e.class=5,e.struct=6,e.interface=7,e.module=8,e.property=9,e.event=10,e.operator=11,e.unit=12,e.value=13,e.constant=14,e.enum=15,e["enum-member"]=16,e.enumMember=16,e.keyword=17,e.snippet=27,e.text=18,e.color=19,e.file=20,e.reference=21,e.customcolor=22,e.folder=23,e["type-parameter"]=24,e.typeParameter=24,e.account=25,e.issue=26,function(t,n){var i=e[t];return"undefined"!==typeof i||n||(i=9),i}}();function y(e){return e&&u.o.isUri(e.uri)&&l.e.isIRange(e.range)&&(l.e.isIRange(e.originSelectionRange)||l.e.isIRange(e.targetSelectionRange))}!function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(i||(i={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(r||(r={})),function(e){var t=new Map;t.set("file",0),t.set("module",1),t.set("namespace",2),t.set("package",3),t.set("class",4),t.set("method",5),t.set("property",6),t.set("field",7),t.set("constructor",8),t.set("enum",9),t.set("interface",10),t.set("function",11),t.set("variable",12),t.set("constant",13),t.set("string",14),t.set("number",15),t.set("boolean",16),t.set("array",17),t.set("object",18),t.set("key",19),t.set("null",20),t.set("enum-member",21),t.set("struct",22),t.set("event",23),t.set("operator",24),t.set("type-parameter",25);var n=new Map;n.set(0,"file"),n.set(1,"module"),n.set(2,"namespace"),n.set(3,"package"),n.set(4,"class"),n.set(5,"method"),n.set(6,"property"),n.set(7,"field"),n.set(8,"constructor"),n.set(9,"enum"),n.set(10,"interface"),n.set(11,"function"),n.set(12,"variable"),n.set(13,"constant"),n.set(14,"string"),n.set(15,"number"),n.set(16,"boolean"),n.set(17,"array"),n.set(18,"object"),n.set(19,"key"),n.set(20,"null"),n.set(21,"enum-member"),n.set(22,"struct"),n.set(23,"event"),n.set(24,"operator"),n.set(25,"type-parameter"),e.fromString=function(e){return t.get(e)},e.toString=function(e){return n.get(e)},e.toCssClassName=function(e,t){var i=n.get(e),r=i&&p.fK.get("symbol-"+i);return r||(console.info("No codicon found for SymbolKind "+e),r=p.lA.symbolProperty),"".concat(t?"inline":"block"," ").concat(r.classNames)}}(o||(o={}));var b,w=(0,a.Z)((function e(t){(0,s.Z)(this,e),this.value=t}));w.Comment=new w("comment"),w.Imports=new w("imports"),w.Region=new w("region"),function(e){e[e.Other=0]="Other",e[e.Type=1]="Type",e[e.Parameter=2]="Parameter"}(b||(b={}));var C=new c.c,k=new c.c,S=new c.c,x=new c.c,L=new c.c,E=new c.c,N=new c.c,D=new c.c,M=new c.c,T=new c.c,O=new c.c,I=new c.c,A=new c.c,R=new c.c,P=new c.c,Z=new c.c,F=new c.c,j=new c.c,H=new c.c,B=new c.c,z=new c.c,W=new c.c,V=new c.c,Y=new c.c,U=new f},7273:function(e,t,n){"use strict";n.d(t,{V6:function(){return s},c$:function(){return u},wU:function(){return i}});var i,r=n(37762),o=n(15671),a=n(43144);!function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(i||(i={}));var s=function(){function e(t){if((0,o.Z)(this,e),this.open=t.open,this.close=t.close,this._standardTokenMask=0,Array.isArray(t.notIn))for(var n=0,i=t.notIn.length;n<i;n++){switch(t.notIn[n]){case"string":this._standardTokenMask|=2;break;case"comment":this._standardTokenMask|=1;break;case"regex":this._standardTokenMask|=4}}}return(0,a.Z)(e,[{key:"isOK",value:function(e){return 0===(this._standardTokenMask&e)}}]),e}(),u=(0,a.Z)((function e(t){(0,o.Z)(this,e),this.autoClosingPairsOpenByStart=new Map,this.autoClosingPairsOpenByEnd=new Map,this.autoClosingPairsCloseByStart=new Map,this.autoClosingPairsCloseByEnd=new Map,this.autoClosingPairsCloseSingleChar=new Map;var n,i=(0,r.Z)(t);try{for(i.s();!(n=i.n()).done;){var a=n.value;l(this.autoClosingPairsOpenByStart,a.open.charAt(0),a),l(this.autoClosingPairsOpenByEnd,a.open.charAt(a.open.length-1),a),l(this.autoClosingPairsCloseByStart,a.close.charAt(0),a),l(this.autoClosingPairsCloseByEnd,a.close.charAt(a.close.length-1),a),1===a.close.length&&1===a.open.length&&l(this.autoClosingPairsCloseSingleChar,a.close,a)}}catch(s){i.e(s)}finally{i.f()}}));function l(e,t,n){e.has(t)?e.get(t).push(n):e.set(t,[n])}},65262:function(e,t,n){"use strict";n.d(t,{zu:function(){return x}});var i=n(37762),r=n(29439),o=n(15671),a=n(43144),s=n(11732),u=n(81626),l=n(51747),c=n(43717),d=n(7273),h=n(57429),f=function(){function e(t){if((0,o.Z)(this,e),t.autoClosingPairs?this._autoClosingPairs=t.autoClosingPairs.map((function(e){return new d.V6(e)})):t.brackets?this._autoClosingPairs=t.brackets.map((function(e){return new d.V6({open:e[0],close:e[1]})})):this._autoClosingPairs=[],t.__electricCharacterSupport&&t.__electricCharacterSupport.docComment){var n=t.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new d.V6({open:n.open,close:n.close||""}))}this._autoCloseBefore="string"===typeof t.autoCloseBefore?t.autoCloseBefore:e.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED,this._surroundingPairs=t.surroundingPairs||this._autoClosingPairs}return(0,a.Z)(e,[{key:"getAutoClosingPairs",value:function(){return this._autoClosingPairs}},{key:"getAutoCloseBeforeSet",value:function(){return this._autoCloseBefore}},{key:"getSurroundingPairs",value:function(){return this._surroundingPairs}}],[{key:"shouldAutoClosePair",value:function(e,t,n){if(0===t.getTokenCount())return!0;var i=t.findTokenIndexAtOffset(n-2),r=t.getStandardTokenType(i);return e.isOK(r)}}]),e}();f.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED=";:.,=}])> \n\t";var p=n(8102),g=function(){function e(t){(0,o.Z)(this,e),this._richEditBrackets=t}return(0,a.Z)(e,[{key:"getElectricCharacters",value:function(){var e=[];if(this._richEditBrackets){var t,n=(0,i.Z)(this._richEditBrackets.brackets);try{for(n.s();!(t=n.n()).done;){var r,o=t.value,a=(0,i.Z)(o.close);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=s.charAt(s.length-1);e.push(u)}}catch(l){a.e(l)}finally{a.f()}}}catch(l){n.e(l)}finally{n.f()}}return e=e.filter((function(e,t,n){return n.indexOf(e)===t}))}},{key:"onElectricCharacter",value:function(e,t,n){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;var i=t.findTokenIndexAtOffset(n-1);if((0,h.Bu)(t.getStandardTokenType(i)))return null;var r=this._richEditBrackets.reversedRegex,o=t.getLineContent().substring(0,n-1)+e,a=p.Vr.findPrevBracketInRange(r,1,o,0,o.length);if(!a)return null;var s=o.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[s])return null;var u=t.getActualLineContentBefore(a.startColumn-1);return/^\s*$/.test(u)?{matchOpenBracket:s}:null}}]),e}();function v(e){return e.global&&(e.lastIndex=0),!0}var m=function(){function e(t){(0,o.Z)(this,e),this._indentationRules=t}return(0,a.Z)(e,[{key:"shouldIncrease",value:function(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&v(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}},{key:"shouldDecrease",value:function(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&v(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}},{key:"shouldIndentNextLine",value:function(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&v(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}},{key:"shouldIgnore",value:function(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&v(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}},{key:"getIndentMetadata",value:function(e){var t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}]),e}(),_=n(8729),y=function(){function e(t){var n=this;(0,o.Z)(this,e),(t=t||{}).brackets=t.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],t.brackets.forEach((function(t){var i=e._createOpenBracketRegExp(t[0]),r=e._createCloseBracketRegExp(t[1]);i&&r&&n._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:r})})),this._regExpRules=t.onEnterRules||[]}return(0,a.Z)(e,[{key:"onEnter",value:function(e,t,n,i){if(e>=3)for(var r=0,o=this._regExpRules.length;r<o;r++){var a=this._regExpRules[r];if([{reg:a.beforeText,text:n},{reg:a.afterText,text:i},{reg:a.previousLineText,text:t}].every((function(e){return!e.reg||e.reg.test(e.text)})))return a.action}if(e>=2&&n.length>0&&i.length>0)for(var s=0,u=this._brackets.length;s<u;s++){var l=this._brackets[s];if(l.openRegExp.test(n)&&l.closeRegExp.test(i))return{indentAction:d.wU.IndentOutdent}}if(e>=2&&n.length>0)for(var c=0,h=this._brackets.length;c<h;c++){if(this._brackets[c].openRegExp.test(n))return{indentAction:d.wU.Indent}}return null}}],[{key:"_createOpenBracketRegExp",value:function(t){var n=l.ec(t);return/\B/.test(n.charAt(0))||(n="\\b"+n),n+="\\s*$",e._safeRegExp(n)}},{key:"_createCloseBracketRegExp",value:function(t){var n=l.ec(t);return/\B/.test(n.charAt(n.length-1))||(n+="\\b"),n="^\\s*"+n,e._safeRegExp(n)}},{key:"_safeRegExp",value:function(e){try{return new RegExp(e)}catch(t){return(0,_.dL)(t),null}}}]),e}(),b=function(){function e(t,n){(0,o.Z)(this,e),this._languageIdentifier=t,this._brackets=null,this._electricCharacter=null,this._conf=n,this._onEnterSupport=this._conf.brackets||this._conf.indentationRules||this._conf.onEnterRules?new y(this._conf):null,this.comments=e._handleComments(this._conf),this.characterPair=new f(this._conf),this.wordDefinition=this._conf.wordPattern||c.Af,this.indentationRules=this._conf.indentationRules,this._conf.indentationRules?this.indentRulesSupport=new m(this._conf.indentationRules):this.indentRulesSupport=null,this.foldingRules=this._conf.folding||{}}return(0,a.Z)(e,[{key:"brackets",get:function(){return!this._brackets&&this._conf.brackets&&(this._brackets=new p.EA(this._languageIdentifier,this._conf.brackets)),this._brackets}},{key:"electricCharacter",get:function(){return this._electricCharacter||(this._electricCharacter=new g(this.brackets)),this._electricCharacter}},{key:"onEnter",value:function(e,t,n,i){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,n,i):null}}],[{key:"_handleComments",value:function(e){var t=e.comments;if(!t)return null;var n={};if(t.lineComment&&(n.lineCommentToken=t.lineComment),t.blockComment){var i=(0,r.Z)(t.blockComment,2),o=i[0],a=i[1];n.blockCommentStartToken=o,n.blockCommentEndToken=a}return n}}]),e}(),w=(0,a.Z)((function e(t){(0,o.Z)(this,e),this.languageIdentifier=t})),C=function(){function e(t,n,i){(0,o.Z)(this,e),this.configuration=t,this.priority=n,this.order=i}return(0,a.Z)(e,null,[{key:"cmp",value:function(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}]),e}(),k=function(){function e(t){(0,o.Z)(this,e),this.languageIdentifier=t,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}return(0,a.Z)(e,[{key:"register",value:function(e,t){var n=this,i=new C(e,t,++this._order);return this._entries.push(i),this._resolved=null,(0,u.OF)((function(){for(var e=0;e<n._entries.length;e++)if(n._entries[e]===i){n._entries.splice(e,1),n._resolved=null;break}}))}},{key:"getRichEditSupport",value:function(){if(!this._resolved){var e=this._resolve();e&&(this._resolved=new b(this.languageIdentifier,e))}return this._resolved}},{key:"_resolve",value:function(){if(0===this._entries.length)return null;this._entries.sort(C.cmp);var e,t={},n=(0,i.Z)(this._entries);try{for(n.s();!(e=n.n()).done;){var r=e.value.configuration;t.comments=r.comments||t.comments,t.brackets=r.brackets||t.brackets,t.wordPattern=r.wordPattern||t.wordPattern,t.indentationRules=r.indentationRules||t.indentationRules,t.onEnterRules=r.onEnterRules||t.onEnterRules,t.autoClosingPairs=r.autoClosingPairs||t.autoClosingPairs,t.surroundingPairs=r.surroundingPairs||t.surroundingPairs,t.autoCloseBefore=r.autoCloseBefore||t.autoCloseBefore,t.folding=r.folding||t.folding,t.__electricCharacterSupport=r.__electricCharacterSupport||t.__electricCharacterSupport}}catch(o){n.e(o)}finally{n.f()}return t}}]),e}(),S=function(){function e(){(0,o.Z)(this,e),this._entries2=new Map,this._onDidChange=new s.Q5,this.onDidChange=this._onDidChange.event}return(0,a.Z)(e,[{key:"register",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=this._entries2.get(e.id);r||(r=new k(e),this._entries2.set(e.id,r));var o=r.register(t,i);return this._onDidChange.fire(new w(e)),(0,u.OF)((function(){o.dispose(),n._onDidChange.fire(new w(e))}))}},{key:"_getRichEditSupport",value:function(e){var t=this._entries2.get(e);return t?t.getRichEditSupport():null}},{key:"getIndentationRules",value:function(e){var t=this._getRichEditSupport(e);return t&&t.indentationRules||null}},{key:"_getElectricCharacterSupport",value:function(e){var t=this._getRichEditSupport(e);return t&&t.electricCharacter||null}},{key:"getElectricCharacters",value:function(e){var t=this._getElectricCharacterSupport(e);return t?t.getElectricCharacters():[]}},{key:"onElectricCharacter",value:function(e,t,n){var i=(0,h.wH)(t,n-1),r=this._getElectricCharacterSupport(i.languageId);return r?r.onElectricCharacter(e,i,n-i.firstCharOffset):null}},{key:"getComments",value:function(e){var t=this._getRichEditSupport(e);return t&&t.comments||null}},{key:"_getCharacterPairSupport",value:function(e){var t=this._getRichEditSupport(e);return t&&t.characterPair||null}},{key:"getAutoClosingPairs",value:function(e){var t=this._getCharacterPairSupport(e);return new d.c$(t?t.getAutoClosingPairs():[])}},{key:"getAutoCloseBeforeSet",value:function(e){var t=this._getCharacterPairSupport(e);return t?t.getAutoCloseBeforeSet():f.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED}},{key:"getSurroundingPairs",value:function(e){var t=this._getCharacterPairSupport(e);return t?t.getSurroundingPairs():[]}},{key:"shouldAutoClosePair",value:function(e,t,n){var i=(0,h.wH)(t,n-1);return f.shouldAutoClosePair(e,i,n-i.firstCharOffset)}},{key:"getWordDefinition",value:function(e){var t=this._getRichEditSupport(e);return t?(0,c.eq)(t.wordDefinition||null):(0,c.eq)(null)}},{key:"getFoldingRules",value:function(e){var t=this._getRichEditSupport(e);return t?t.foldingRules:{}}},{key:"getIndentRulesSupport",value:function(e){var t=this._getRichEditSupport(e);return t&&t.indentRulesSupport||null}},{key:"getPrecedingValidLine",value:function(e,t,n){var i=e.getLanguageIdAtPosition(t,0);if(t>1){var r,o=-1;for(r=t-1;r>=1;r--){if(e.getLanguageIdAtPosition(r,0)!==i)return o;var a=e.getLineContent(r);if(!n.shouldIgnore(a)&&!/^\s+$/.test(a)&&""!==a)return r;o=r}}return-1}},{key:"getInheritIndentForLine",value:function(e,t,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(e<4)return null;var r=this.getIndentRulesSupport(t.getLanguageIdentifier().id);if(!r)return null;if(n<=1)return{indentation:"",action:null};var o=this.getPrecedingValidLine(t,n,r);if(o<0)return null;if(o<1)return{indentation:"",action:null};var a=t.getLineContent(o);if(r.shouldIncrease(a)||r.shouldIndentNextLine(a))return{indentation:l.V8(a),action:d.wU.Indent,line:o};if(r.shouldDecrease(a))return{indentation:l.V8(a),action:null,line:o};if(1===o)return{indentation:l.V8(t.getLineContent(o)),action:null,line:o};var s=o-1,u=r.getIndentMetadata(t.getLineContent(s));if(!(3&u)&&4&u){for(var c=0,h=s-1;h>0;h--)if(!r.shouldIndentNextLine(t.getLineContent(h))){c=h;break}return{indentation:l.V8(t.getLineContent(c+1)),action:null,line:c+1}}if(i)return{indentation:l.V8(t.getLineContent(o)),action:null,line:o};for(var f=o;f>0;f--){var p=t.getLineContent(f);if(r.shouldIncrease(p))return{indentation:l.V8(p),action:d.wU.Indent,line:f};if(r.shouldIndentNextLine(p)){for(var g=0,v=f-1;v>0;v--)if(!r.shouldIndentNextLine(t.getLineContent(f))){g=v;break}return{indentation:l.V8(t.getLineContent(g+1)),action:null,line:g+1}}if(r.shouldDecrease(p))return{indentation:l.V8(p),action:null,line:f}}return{indentation:l.V8(t.getLineContent(1)),action:null,line:1}}},{key:"getGoodIndentForLine",value:function(e,t,n,i,r){if(e<4)return null;var o=this._getRichEditSupport(n);if(!o)return null;var a=this.getIndentRulesSupport(n);if(!a)return null;var s=this.getInheritIndentForLine(e,t,i),u=t.getLineContent(i);if(s){var c=s.line;if(void 0!==c){var h=o.onEnter(e,"",t.getLineContent(c),"");if(h){var f=l.V8(t.getLineContent(c));return h.removeText&&(f=f.substring(0,f.length-h.removeText)),h.indentAction===d.wU.Indent||h.indentAction===d.wU.IndentOutdent?f=r.shiftIndent(f):h.indentAction===d.wU.Outdent&&(f=r.unshiftIndent(f)),a.shouldDecrease(u)&&(f=r.unshiftIndent(f)),h.appendText&&(f+=h.appendText),l.V8(f)}}return a.shouldDecrease(u)?s.action===d.wU.Indent?s.indentation:r.unshiftIndent(s.indentation):s.action===d.wU.Indent?r.shiftIndent(s.indentation):s.indentation}return null}},{key:"getIndentForEnter",value:function(e,t,n,i){if(e<4)return null;t.forceTokenization(n.startLineNumber);var r,o,a=t.getLineTokens(n.startLineNumber),s=(0,h.wH)(a,n.startColumn-1),u=s.getLineContent(),c=!1;(s.firstCharOffset>0&&a.getLanguageId(0)!==s.languageId?(c=!0,r=u.substr(0,n.startColumn-1-s.firstCharOffset)):r=a.getLineContent().substring(0,n.startColumn-1),n.isEmpty())?o=u.substr(n.startColumn-1-s.firstCharOffset):o=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-s.firstCharOffset);var f=this.getIndentRulesSupport(s.languageId);if(!f)return null;var p=r,g=l.V8(r),v={getLineTokens:function(e){return t.getLineTokens(e)},getLanguageIdentifier:function(){return t.getLanguageIdentifier()},getLanguageIdAtPosition:function(e,n){return t.getLanguageIdAtPosition(e,n)},getLineContent:function(e){return e===n.startLineNumber?p:t.getLineContent(e)}},m=l.V8(a.getLineContent()),_=this.getInheritIndentForLine(e,v,n.startLineNumber+1);if(!_){var y=c?m:g;return{beforeEnter:y,afterEnter:y}}var b=c?m:_.indentation;return _.action===d.wU.Indent&&(b=i.shiftIndent(b)),f.shouldDecrease(o)&&(b=i.unshiftIndent(b)),{beforeEnter:c?m:g,afterEnter:b}}},{key:"getIndentActionForType",value:function(e,t,n,i,r){if(e<4)return null;var o=this.getScopedLineTokens(t,n.startLineNumber,n.startColumn);if(o.firstCharOffset)return null;var a=this.getIndentRulesSupport(o.languageId);if(!a)return null;var s,u=o.getLineContent(),l=u.substr(0,n.startColumn-1-o.firstCharOffset);n.isEmpty()?s=u.substr(n.startColumn-1-o.firstCharOffset):s=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-o.firstCharOffset);if(!a.shouldDecrease(l+s)&&a.shouldDecrease(l+i+s)){var c=this.getInheritIndentForLine(e,t,n.startLineNumber,!1);if(!c)return null;var h=c.indentation;return c.action!==d.wU.Indent&&(h=r.unshiftIndent(h)),h}return null}},{key:"getIndentMetadata",value:function(e,t){var n=this.getIndentRulesSupport(e.getLanguageIdentifier().id);return n?t<1||t>e.getLineCount()?null:n.getIndentMetadata(e.getLineContent(t)):null}},{key:"getEnterAction",value:function(e,t,n){var i=this.getScopedLineTokens(t,n.startLineNumber,n.startColumn),r=this._getRichEditSupport(i.languageId);if(!r)return null;var o,a=i.getLineContent(),s=a.substr(0,n.startColumn-1-i.firstCharOffset);n.isEmpty()?o=a.substr(n.startColumn-1-i.firstCharOffset):o=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-i.firstCharOffset);var u="";if(n.startLineNumber>1&&0===i.firstCharOffset){var l=this.getScopedLineTokens(t,n.startLineNumber-1);l.languageId===i.languageId&&(u=l.getLineContent())}var c=r.onEnter(e,u,s,o);if(!c)return null;var h=c.indentAction,f=c.appendText,p=c.removeText||0;f?h===d.wU.Indent&&(f="\t"+f):f=h===d.wU.Indent||h===d.wU.IndentOutdent?"\t":"";var g=this.getIndentationAtPosition(t,n.startLineNumber,n.startColumn);return p&&(g=g.substring(0,g.length-p)),{indentAction:h,appendText:f,removeText:p,indentation:g}}},{key:"getIndentationAtPosition",value:function(e,t,n){var i=e.getLineContent(t),r=l.V8(i);return r.length>n-1&&(r=r.substring(0,n-1)),r}},{key:"getScopedLineTokens",value:function(e,t,n){e.forceTokenization(t);var i=e.getLineTokens(t),r="undefined"===typeof n?e.getLineMaxColumn(t)-1:n-1;return(0,h.wH)(i,r)}},{key:"getBracketsSupport",value:function(e){var t=this._getRichEditSupport(e);return t&&t.brackets||null}}]),e}(),x=new S},66748:function(e,t,n){"use strict";n.d(t,{c:function(){return v},Y:function(){return m}});var i=n(37762),r=n(15671),o=n(43144),a=n(11732),s=n(25567),u=n(81626),l=n(15022),c=n(5265),d=n(79612),h=n(36912);function f(e,t,n,r){if(Array.isArray(e)){var o,a=0,s=(0,i.Z)(e);try{for(s.s();!(o=s.n()).done;){var u=f(o.value,t,n,r);if(10===u)return u;u>a&&(a=u)}}catch(_){s.e(_)}finally{s.f()}return a}if("string"===typeof e)return r?"*"===e?5:e===n?10:0:0;if(e){var l=e.language,c=e.pattern,p=e.scheme,g=e.hasAccessToAllModels;if(!r&&!g)return 0;var v=0;if(p)if(p===t.scheme)v=10;else{if("*"!==p)return 0;v=5}if(l)if(l===n)v=10;else{if("*"!==l)return 0;v=Math.max(v,5)}if(c){var m;if((m="string"===typeof c?c:Object.assign(Object.assign({},c),{base:(0,h.Fv)(c.base)}))!==t.fsPath&&!(0,d.EQ)(m,t.fsPath))return 0;v=10}return v}return 0}var p=n(49076);function g(e){return"string"!==typeof e&&(Array.isArray(e)?e.every(g):!!e.exclusive)}var v=function(){function e(){(0,r.Z)(this,e),this._clock=0,this._entries=[],this._onDidChange=new a.Q5}return(0,o.Z)(e,[{key:"onDidChange",get:function(){return this._onDidChange.event}},{key:"register",value:function(e,t){var n=this,i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),(0,u.OF)((function(){if(i){var e=n._entries.indexOf(i);e>=0&&(n._entries.splice(e,1),n._lastCandidate=void 0,n._onDidChange.fire(n._entries.length),i=void 0)}}))}},{key:"has",value:function(e){return this.all(e).length>0}},{key:"all",value:function(e){if(!e)return[];this._updateScores(e);var t,n=[],r=(0,i.Z)(this._entries);try{for(r.s();!(t=r.n()).done;){var o=t.value;o._score>0&&n.push(o.provider)}}catch(a){r.e(a)}finally{r.f()}return n}},{key:"ordered",value:function(e){var t=[];return this._orderedForEach(e,(function(e){return t.push(e.provider)})),t}},{key:"orderedGroups",value:function(e){var t,n,i=[];return this._orderedForEach(e,(function(e){t&&n===e._score?t.push(e.provider):(n=e._score,t=[e.provider],i.push(t))})),i}},{key:"_orderedForEach",value:function(e,t){if(e){this._updateScores(e);var n,r=(0,i.Z)(this._entries);try{for(r.s();!(n=r.n()).done;){var o=n.value;o._score>0&&t(o)}}catch(a){r.e(a)}finally{r.f()}}}},{key:"_updateScores",value:function(t){var n={uri:t.uri.toString(),language:t.getLanguageIdentifier().language};if(!this._lastCandidate||this._lastCandidate.language!==n.language||this._lastCandidate.uri!==n.uri){this._lastCandidate=n;var r,o=(0,i.Z)(this._entries);try{for(o.s();!(r=o.n()).done;){var a=r.value;if(a._score=f(a.selector,t.uri,t.getLanguageIdentifier().language,(0,p.p)(t)),g(a.selector)&&a._score>0){var s,u=(0,i.Z)(this._entries);try{for(u.s();!(s=u.n()).done;){s.value._score=0}}catch(l){u.e(l)}finally{u.f()}a._score=1e3;break}}}catch(l){o.e(l)}finally{o.f()}this._entries.sort(e._compareByScoreAndTime)}}}],[{key:"_compareByScoreAndTime",value:function(e,t){return e._score<t._score?1:e._score>t._score?-1:e._time<t._time?1:e._time>t._time?-1:0}}]),e}(),m=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.MAX_SAFE_INTEGER;(0,r.Z)(this,e),this._registry=t,this.min=n,this.max=i,this._cache=new l.z6(50,.7)}return(0,o.Z)(e,[{key:"_key",value:function(e){return e.id+(0,s.vp)(this._registry.all(e))}},{key:"_clamp",value:function(e){return void 0===e?this.min:Math.min(this.max,Math.max(this.min,Math.floor(1.3*e)))}},{key:"get",value:function(e){var t=this._key(e),n=this._cache.get(t);return this._clamp(null===n||void 0===n?void 0:n.value)}},{key:"update",value:function(e,t){var n=this._key(e),i=this._cache.get(n);return i||(i=new c.n,this._cache.set(n,i)),i.update(t),this.get(e)}}]),e}()},54970:function(e,t,n){"use strict";n.d(t,{Tb:function(){return h},XT:function(){return d},dQ:function(){return c}});var i=n(15671),r=n(43144),o=n(56345),a=n(11732),s=n(99404),u=n(65262),l=n(38774),c=new(function(){function e(){(0,i.Z)(this,e),this._onDidChangeLanguages=new a.Q5,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[],this._dynamicLanguages=[]}return(0,r.Z)(e,[{key:"registerLanguage",value:function(e){var t=this;return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:function(){for(var n=0,i=t._languages.length;n<i;n++)if(t._languages[n]===e)return void t._languages.splice(n,1)}}}},{key:"getLanguages",value:function(){return[].concat(this._languages).concat(this._dynamicLanguages)}}]),e}());l.B.add("editor.modesRegistry",c);var d="plaintext",h=new s.rl(d,1);c.registerLanguage({id:d,extensions:[".txt"],aliases:[o.N("plainText.alias","Plain Text"),"text"],mimetypes:["text/plain"]}),u.zu.register(h,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],folding:{offSide:!0}},0)},59401:function(e,t,n){"use strict";n.d(t,{Ri:function(){return c},TG:function(){return u},mh:function(){return d},nO:function(){return s},pA:function(){return l}});var i=n(15671),r=n(43144),o=n(98154),a=n(99404),s=new(function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"clone",value:function(){return this}},{key:"equals",value:function(e){return this===e}}]),e}()),u="vs.editor.nullMode",l=new a.rl(u,0);function c(e,t,n,i){return new o.hG([new o.WU(i,"",e)],n)}function d(e,t,n,i){var r=new Uint32Array(2);return r[0]=i,r[1]=(16384|e<<0|2<<23)>>>0,new o.Hi(r,null===n?s:n)}},57429:function(e,t,n){"use strict";n.d(t,{Bu:function(){return s},wH:function(){return o}});var i=n(15671),r=n(43144);function o(e,t){for(var n=e.getCount(),i=e.findTokenIndexAtOffset(t),r=e.getLanguageId(i),o=i;o+1<n&&e.getLanguageId(o+1)===r;)o++;for(var s=i;s>0&&e.getLanguageId(s-1)===r;)s--;return new a(e,r,s,o+1,e.getStartOffset(s),e.getEndOffset(o))}var a=function(){function e(t,n,r,o,a,s){(0,i.Z)(this,e),this._actual=t,this.languageId=n,this._firstTokenIndex=r,this._lastTokenIndex=o,this.firstCharOffset=a,this._lastCharOffset=s}return(0,r.Z)(e,[{key:"getLineContent",value:function(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}},{key:"getActualLineContentBefore",value:function(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}},{key:"getTokenCount",value:function(){return this._lastTokenIndex-this._firstTokenIndex}},{key:"findTokenIndexAtOffset",value:function(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}},{key:"getStandardTokenType",value:function(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}}]),e}();function s(e){return 0!==(7&e)}},8102:function(e,t,n){"use strict";n.d(t,{EA:function(){return d},Vr:function(){return _}});var i=n(29439),r=n(37762),o=n(15671),a=n(43144),s=n(51747),u=n(85500),l=n(67033),c=function(){function e(t,n,i,r,a,s){(0,o.Z)(this,e),this.languageIdentifier=t,this.index=n,this.open=i,this.close=r,this.forwardRegex=a,this.reversedRegex=s,this._openSet=e._toSet(this.open),this._closeSet=e._toSet(this.close)}return(0,a.Z)(e,[{key:"isOpen",value:function(e){return this._openSet.has(e)}},{key:"isClose",value:function(e){return this._closeSet.has(e)}}],[{key:"_toSet",value:function(e){var t,n=new Set,i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o=t.value;n.add(o)}}catch(a){i.e(a)}finally{i.f()}return n}}]),e}();var d=(0,a.Z)((function e(t,n){(0,o.Z)(this,e);var a=function(e){var t=e.length;e=e.map((function(e){return[e[0].toLowerCase(),e[1].toLowerCase()]}));for(var n=[],r=0;r<t;r++)n[r]=r;for(var o=function(e,t){var n=(0,i.Z)(e,2),r=n[0],o=n[1],a=(0,i.Z)(t,2),s=a[0],u=a[1];return r===s||r===u||o===s||o===u},a=function(e,i){for(var r=Math.min(e,i),o=Math.max(e,i),a=0;a<t;a++)n[a]===o&&(n[a]=r)},s=0;s<t;s++)for(var u=e[s],l=s+1;l<t;l++)o(u,e[l])&&a(n[s],n[l]);for(var c=[],d=0;d<t;d++){for(var h=[],f=[],p=0;p<t;p++)if(n[p]===d){var g=(0,i.Z)(e[p],2),v=g[0],m=g[1];h.push(v),f.push(m)}h.length>0&&c.push({open:h,close:f})}return c}(n);this.brackets=a.map((function(e,n){return new c(t,n,e.open,e.close,function(e,t,n,i){var r=[];r=r.concat(e),r=r.concat(t);for(var o=0,a=r.length;o<a;o++)h(r[o],n,i,r);return(r=p(r)).sort(f),r.reverse(),v(r)}(e.open,e.close,a,n),function(e,t,n,i){var r=[];r=r.concat(e),r=r.concat(t);for(var o=0,a=r.length;o<a;o++)h(r[o],n,i,r);return(r=p(r)).sort(f),r.reverse(),v(r.map(m))}(e.open,e.close,a,n))})),this.forwardRegex=function(e){var t,n=[],i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o,a=t.value,s=(0,r.Z)(a.open);try{for(s.s();!(o=s.n()).done;){var u=o.value;n.push(u)}}catch(h){s.e(h)}finally{s.f()}var l,c=(0,r.Z)(a.close);try{for(c.s();!(l=c.n()).done;){var d=l.value;n.push(d)}}catch(h){c.e(h)}finally{c.f()}}}catch(h){i.e(h)}finally{i.f()}return v(n=p(n))}(this.brackets),this.reversedRegex=function(e){var t,n=[],i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o,a=t.value,s=(0,r.Z)(a.open);try{for(s.s();!(o=s.n()).done;){var u=o.value;n.push(u)}}catch(h){s.e(h)}finally{s.f()}var l,c=(0,r.Z)(a.close);try{for(c.s();!(l=c.n()).done;){var d=l.value;n.push(d)}}catch(h){c.e(h)}finally{c.f()}}}catch(h){i.e(h)}finally{i.f()}return v((n=p(n)).map(m))}(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;var s,u=(0,r.Z)(this.brackets);try{for(u.s();!(s=u.n()).done;){var l,d=s.value,g=(0,r.Z)(d.open);try{for(g.s();!(l=g.n()).done;){var _=l.value;this.textIsBracket[_]=d,this.textIsOpenBracket[_]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,_.length)}}catch(C){g.e(C)}finally{g.f()}var y,b=(0,r.Z)(d.close);try{for(b.s();!(y=b.n()).done;){var w=y.value;this.textIsBracket[w]=d,this.textIsOpenBracket[w]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,w.length)}}catch(C){b.e(C)}finally{b.f()}}}catch(C){u.e(C)}finally{u.f()}}));function h(e,t,n,i){for(var o=0,a=t.length;o<a;o++)if(o!==n){var s,u=t[o],l=(0,r.Z)(u.open);try{for(l.s();!(s=l.n()).done;){var c=s.value;c.indexOf(e)>=0&&i.push(c)}}catch(p){l.e(p)}finally{l.f()}var d,h=(0,r.Z)(u.close);try{for(h.s();!(d=h.n()).done;){var f=d.value;f.indexOf(e)>=0&&i.push(f)}}catch(p){h.e(p)}finally{h.f()}}}function f(e,t){return e.length-t.length}function p(e){if(e.length<=1)return e;var t,n=[],i=new Set,o=(0,r.Z)(e);try{for(o.s();!(t=o.n()).done;){var a=t.value;i.has(a)||(n.push(a),i.add(a))}}catch(s){o.e(s)}finally{o.f()}return n}function g(e){var t=/^[\w ]+$/.test(e);return e=s.ec(e),t?"\\b".concat(e,"\\b"):e}function v(e){var t="(".concat(e.map(g).join(")|("),")");return s.GF(t,!0)}var m=function(){var e=null,t=null;return function(n){return e!==n&&(t=function(e){if(u.lZ){for(var t=new Uint16Array(e.length),n=0,i=e.length-1;i>=0;i--)t[n++]=e.charCodeAt(i);return u.oe().decode(t)}for(var r=[],o=0,a=e.length-1;a>=0;a--)r[o++]=e.charAt(a);return r.join("")}(e=n)),t}}(),_=function(){function e(){(0,o.Z)(this,e)}return(0,a.Z)(e,null,[{key:"_findPrevBracketInText",value:function(e,t,n,i){var r=n.match(e);if(!r)return null;var o=n.length-(r.index||0),a=r[0].length,s=i+o;return new l.e(t,s-a+1,t,s+1)}},{key:"findPrevBracketInRange",value:function(e,t,n,i,r){var o=m(n).substring(n.length-r,n.length-i);return this._findPrevBracketInText(e,t,o,i)}},{key:"findNextBracketInText",value:function(e,t,n,i){var r=n.match(e);if(!r)return null;var o=r.index||0,a=r[0].length;if(0===a)return null;var s=i+o;return new l.e(t,s+1,t,s+1+a)}},{key:"findNextBracketInRange",value:function(e,t,n,i,r){var o=n.substring(i,r);return this.findNextBracketInText(e,t,o,i)}}]),e}()},54821:function(e,t,n){"use strict";n.d(t,{C:function(){return s},F:function(){return u}});var i=n(51747),r=n(34763),o=n(59401),a={getInitialState:function(){return o.nO},tokenize2:function(e,t,n,i){return(0,o.mh)(0,e,n,i)}};function s(e){return function(e,t){for(var n='<div class="monaco-tokenized-source">',o=i.uq(e),a=t.getInitialState(),s=0,u=o.length;s<u;s++){var l=o[s];s>0&&(n+="<br/>");var c=t.tokenize2(l,!0,a,0);r.A.convertToEndOffset(c.tokens,l.length);for(var d=new r.A(c.tokens,l).inflate(),h=0,f=0,p=d.getCount();f<p;f++){var g=d.getClassName(f),v=d.getEndOffset(f);n+='<span class="'.concat(g,'">').concat(i.YU(l.substring(h,v)),"</span>"),h=v}a=c.endState}return n+="</div>"}(e,(arguments.length>1&&void 0!==arguments[1]?arguments[1]:a)||a)}function u(e,t,n,i,r,o,a){for(var s="<div>",u=i,l=0,c=0,d=t.getCount();c<d;c++){var h=t.getEndOffset(c);if(!(h<=i)){for(var f="";u<h&&u<r;u++){var p=e.charCodeAt(u);switch(p){case 9:var g=o-(u+l)%o;for(l+=g-1;g>0;)f+=a?"&#160;":" ",g--;break;case 60:f+="&lt;";break;case 62:f+="&gt;";break;case 38:f+="&amp;";break;case 0:f+="&#00;";break;case 65279:case 8232:case 8233:case 133:f+="\ufffd";break;case 13:f+="&#8203";break;case 32:f+=a?"&#160;":" ";break;default:f+=String.fromCharCode(p)}}if(s+='<span style="'.concat(t.getInlineStyle(c,n),'">').concat(f,"</span>"),h>r||u>=r)break}}return s+="</div>"}},333:function(e,t,n){"use strict";n.d(t,{p:function(){return i}});var i=(0,n(84596).yh)("editorWorkerService")},7845:function(e,t,n){"use strict";n.d(t,{St:function(){return C},ML:function(){return b},Vl:function(){return _},Vj:function(){return y}});var i=n(87757),r=n.n(i),o=n(66526),a=n(8729),s=n(67775),u=n(99404),l=n(49076),c=n(72611),d=n(25941),h=n(37762),f=n(27877),p=n(30487);function g(e){var t=new Uint32Array(function(e){var t=0;if(t+=2,"full"===e.type)t+=1+e.data.length;else{t+=1,t+=3*e.deltas.length;var n,i=(0,h.Z)(e.deltas);try{for(i.s();!(n=i.n()).done;){var r=n.value;r.data&&(t+=r.data.length)}}catch(o){i.e(o)}finally{i.f()}}return t}(e)),n=0;if(t[n++]=e.id,"full"===e.type)t[n++]=1,t[n++]=e.data.length,t.set(e.data,n),n+=e.data.length;else{t[n++]=2,t[n++]=e.deltas.length;var i,r=(0,h.Z)(e.deltas);try{for(r.s();!(i=r.n()).done;){var o=i.value;t[n++]=o.start,t[n++]=o.deleteCount,o.data?(t[n++]=o.data.length,t.set(o.data,n),n+=o.data.length):t[n++]=0}}catch(a){r.e(a)}finally{r.f()}}return function(e){var t=new Uint8Array(e.buffer,e.byteOffset,4*e.length);return p.r()||function(e){for(var t=0,n=e.length;t<n;t+=4){var i=e[t+0],r=e[t+1],o=e[t+2],a=e[t+3];e[t+0]=a,e[t+1]=o,e[t+2]=r,e[t+3]=i}}(t),f.KN.wrap(t)}(t)}var v=n(67033),m=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function _(e){return e&&!!e.data}function y(e){return e&&Array.isArray(e.edits)}function b(e,t,n){var i=w(e);return i?{provider:i,request:Promise.resolve(i.provideDocumentSemanticTokens(e,t,n))}:null}function w(e){var t=u.wT.ordered(e);return t.length>0?t[0]:null}function C(e){var t=u.K7.ordered(e);return t.length>0?t[0]:null}c.P.registerCommand("_provideDocumentSemanticTokensLegend",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return m(void 0,void 0,void 0,r().mark((function t(){var i,o,a;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],(0,d.p_)(i instanceof s.o),o=e.get(l.q).getModel(i)){t.next=5;break}return t.abrupt("return",void 0);case 5:if(a=w(o)){t.next=8;break}return t.abrupt("return",e.get(c.H).executeCommand("_provideDocumentRangeSemanticTokensLegend",i));case 8:return t.abrupt("return",a.getLegend());case 9:case"end":return t.stop()}}),t)})))})),c.P.registerCommand("_provideDocumentSemanticTokens",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return m(void 0,void 0,void 0,r().mark((function t(){var i,u,h,f,p,v,m;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],(0,d.p_)(i instanceof s.o),u=e.get(l.q).getModel(i)){t.next=5;break}return t.abrupt("return",void 0);case 5:if(h=b(u,null,o.T.None)){t.next=8;break}return t.abrupt("return",e.get(c.H).executeCommand("_provideDocumentRangeSemanticTokens",i,u.getFullModelRange()));case 8:return f=h.provider,p=h.request,t.prev=9,t.next=12,p;case 12:v=t.sent,t.next=19;break;case 15:return t.prev=15,t.t0=t.catch(9),(0,a.Cp)(t.t0),t.abrupt("return",void 0);case 19:if(v&&_(v)){t.next=21;break}return t.abrupt("return",void 0);case 21:return m=g({id:0,type:"full",data:v.data}),v.resultId&&f.releaseDocumentSemanticTokens(v.resultId),t.abrupt("return",m);case 24:case"end":return t.stop()}}),t,null,[[9,15]])})))})),c.P.registerCommand("_provideDocumentRangeSemanticTokensLegend",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return m(void 0,void 0,void 0,r().mark((function t(){var i,o,a;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],(0,d.p_)(i instanceof s.o),o=e.get(l.q).getModel(i)){t.next=5;break}return t.abrupt("return",void 0);case 5:if(a=C(o)){t.next=8;break}return t.abrupt("return",void 0);case 8:return t.abrupt("return",a.getLegend());case 9:case"end":return t.stop()}}),t)})))})),c.P.registerCommand("_provideDocumentRangeSemanticTokens",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return m(void 0,void 0,void 0,r().mark((function t(){var i,u,c,h,f;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],u=n[1],(0,d.p_)(i instanceof s.o),(0,d.p_)(v.e.isIRange(u)),c=e.get(l.q).getModel(i)){t.next=6;break}return t.abrupt("return",void 0);case 6:if(h=C(c)){t.next=9;break}return t.abrupt("return",void 0);case 9:return t.prev=9,t.next=12,h.provideDocumentRangeSemanticTokens(c,v.e.lift(u),o.T.None);case 12:f=t.sent,t.next=19;break;case 15:return t.prev=15,t.t0=t.catch(9),(0,a.Cp)(t.t0),t.abrupt("return",void 0);case 19:if(f&&_(f)){t.next=21;break}return t.abrupt("return",void 0);case 21:return t.abrupt("return",g({id:0,type:"full",data:f.data}));case 22:case"end":return t.stop()}}),t,null,[[9,15]])})))}))},50816:function(e,t,n){"use strict";n.d(t,{i:function(){return i}});var i=(0,n(84596).yh)("markerDecorationsService")},49829:function(e,t,n){"use strict";n.d(t,{h:function(){return i}});var i=(0,n(84596).yh)("modeService")},49076:function(e,t,n){"use strict";n.d(t,{p:function(){return r},q:function(){return i}});var i=(0,n(84596).yh)("modelService");function r(e){return!e.isTooLargeForSyncing()&&!e.isForSimpleWidget}},77993:function(e,t,n){"use strict";n.d(t,{BR:function(){return F},e3:function(){return j},tw:function(){return H}});var i=n(11752),r=n(61120),o=n(37762),a=n(97326),s=n(60136),u=n(29388),l=n(15671),c=n(43144),d=n(11732),h=n(81626),f=n(30487),p=n(8729),g=n(76556),v=n(28893),m=n(99404),_=n(54970),y=n(45862),b=n(98921),w=n(27997),C=n(66526),k=n(70182),S=n(19974),x=n(45822),L=n(25567),E=n(57179),N=n(55585),D=n(93445),M=n(7845),T=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},O=function(e,t){return function(n,i){t(n,i,e)}};function I(e){return e.toString()}function A(e){for(var t,n=new L.yP,i=e.createSnapshot();t=i.read();)n.update(t);return n.digest()}var R=function(){function e(t,n,i){(0,l.Z)(this,e),this._modelEventListeners=new h.SL,this.model=t,this._languageSelection=null,this._languageSelectionListener=null,this._modelEventListeners.add(t.onWillDispose((function(){return n(t)}))),this._modelEventListeners.add(t.onDidChangeLanguage((function(e){return i(t,e)})))}return(0,c.Z)(e,[{key:"_disposeLanguageSelection",value:function(){this._languageSelectionListener&&(this._languageSelectionListener.dispose(),this._languageSelectionListener=null)}},{key:"dispose",value:function(){this._modelEventListeners.dispose(),this._disposeLanguageSelection()}},{key:"setLanguage",value:function(e){var t=this;this._disposeLanguageSelection(),this._languageSelection=e,this._languageSelectionListener=this._languageSelection.onDidChange((function(){return t.model.setMode(e.languageIdentifier)})),this.model.setMode(e.languageIdentifier)}}]),e}(),P=f.IJ||f.dz?1:2,Z=(0,c.Z)((function e(t,n,i,r,o,a,s,u){(0,l.Z)(this,e),this.uri=t,this.initialUndoRedoSnapshot=n,this.time=i,this.sharesUndoRedoStack=r,this.heapSize=o,this.sha1=a,this.versionId=s,this.alternativeVersionId=u}));var F=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,o,s){var u;return(0,l.Z)(this,n),(u=t.call(this))._configurationService=e,u._resourcePropertiesService=i,u._themeService=r,u._logService=o,u._undoRedoService=s,u._onModelAdded=u._register(new d.Q5),u.onModelAdded=u._onModelAdded.event,u._onModelRemoved=u._register(new d.Q5),u.onModelRemoved=u._onModelRemoved.event,u._onModelModeChanged=u._register(new d.Q5),u.onModelModeChanged=u._onModelModeChanged.event,u._modelCreationOptionsByLanguageAndResource=Object.create(null),u._models={},u._disposedModels=new Map,u._disposedModelsHeapSize=0,u._semanticStyling=u._register(new z(u._themeService,u._logService)),u._register(u._configurationService.onDidChangeConfiguration((function(){return u._updateModelOptions()}))),u._updateModelOptions(),u._register(new B((0,a.Z)(u),u._themeService,u._configurationService,u._semanticStyling)),u}return(0,c.Z)(n,[{key:"_getEOL",value:function(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);var n=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return n&&"auto"!==n?n:3===f.OS||2===f.OS?"\n":"\r\n"}},{key:"_shouldRestoreUndoStack",value:function(){var e=this._configurationService.getValue("files.restoreUndoStack");return"boolean"!==typeof e||e}},{key:"getCreationOptions",value:function(e,t,i){var r=this._modelCreationOptionsByLanguageAndResource[e+t];if(!r){var o=this._configurationService.getValue("editor",{overrideIdentifier:e,resource:t}),a=this._getEOL(t,e);r=n._readModelOptions({editor:o,eol:a},i),this._modelCreationOptionsByLanguageAndResource[e+t]=r}return r}},{key:"_updateModelOptions",value:function(){var e=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);for(var t=Object.keys(this._models),i=0,r=t.length;i<r;i++){var o=t[i],a=this._models[o],s=a.model.getLanguageIdentifier().language,u=a.model.uri,l=e[s+u],c=this.getCreationOptions(s,u,a.model.isForSimpleWidget);n._setModelOptionsForModel(a.model,c,l)}}},{key:"_insertDisposedModel",value:function(e){this._disposedModels.set(I(e.uri),e),this._disposedModelsHeapSize+=e.heapSize}},{key:"_removeDisposedModel",value:function(e){var t=this._disposedModels.get(I(e));return t&&(this._disposedModelsHeapSize-=t.heapSize),this._disposedModels.delete(I(e)),t}},{key:"_ensureDisposedModelsHeapSize",value:function(e){if(this._disposedModelsHeapSize>e){var t=[];for(this._disposedModels.forEach((function(e){e.sharesUndoRedoStack||t.push(e)})),t.sort((function(e,t){return e.time-t.time}));t.length>0&&this._disposedModelsHeapSize>e;){var n=t.shift();this._removeDisposedModel(n.uri),null!==n.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(n.initialUndoRedoSnapshot)}}}},{key:"_createModelData",value:function(e,t,n,i){var r=this,a=this.getCreationOptions(t.language,n,i),s=new v.yO(e,a,t,n,this._undoRedoService);if(n&&this._disposedModels.has(I(n))){var u=this._removeDisposedModel(n),l=this._undoRedoService.getElements(n),c=A(s)===u.sha1;if(c||u.sharesUndoRedoStack){var d,h=(0,o.Z)(l.past);try{for(h.s();!(d=h.n()).done;){var f=d.value;(0,E.e9)(f)&&f.matchesResource(n)&&f.setModel(s)}}catch(b){h.e(b)}finally{h.f()}var p,g=(0,o.Z)(l.future);try{for(g.s();!(p=g.n()).done;){var m=p.value;(0,E.e9)(m)&&m.matchesResource(n)&&m.setModel(s)}}catch(b){g.e(b)}finally{g.f()}this._undoRedoService.setElementsValidFlag(n,!0,(function(e){return(0,E.e9)(e)&&e.matchesResource(n)})),c&&(s._overwriteVersionId(u.versionId),s._overwriteAlternativeVersionId(u.alternativeVersionId),s._overwriteInitialUndoRedoSnapshot(u.initialUndoRedoSnapshot))}else null!==u.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(u.initialUndoRedoSnapshot)}var _=I(s.uri);if(this._models[_])throw new Error("ModelService: Cannot add model because it already exists!");var y=new R(s,(function(e){return r._onWillDispose(e)}),(function(e,t){return r._onDidChangeLanguage(e,t)}));return this._models[_]=y,y}},{key:"createModel",value:function(e,t,n){var i,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return t?(i=this._createModelData(e,t.languageIdentifier,n,r),this.setMode(i.model,t)):i=this._createModelData(e,_.Tb,n,r),this._onModelAdded.fire(i.model),i.model}},{key:"setMode",value:function(e,t){if(t){var n=this._models[I(e.uri)];n&&n.setLanguage(t)}}},{key:"getModels",value:function(){for(var e=[],t=Object.keys(this._models),n=0,i=t.length;n<i;n++){var r=t[n];e.push(this._models[r].model)}return e}},{key:"getModel",value:function(e){var t=I(e),n=this._models[t];return n?n.model:null}},{key:"getSemanticTokensProviderStyling",value:function(e){return this._semanticStyling.get(e)}},{key:"_onWillDispose",value:function(e){var t,i=I(e.uri),r=this._models[i],a=this._undoRedoService.getUriComparisonKey(e.uri)!==e.uri.toString(),s=!1,u=0;if(a||this._shouldRestoreUndoStack()&&((t=e.uri).scheme===N.lg.file||t.scheme===N.lg.vscodeRemote||t.scheme===N.lg.userData||"fake-fs"===t.scheme)){var l=this._undoRedoService.getElements(e.uri);if(l.past.length>0||l.future.length>0){var c,d=(0,o.Z)(l.past);try{for(d.s();!(c=d.n()).done;){var h=c.value;(0,E.e9)(h)&&h.matchesResource(e.uri)&&(s=!0,u+=h.heapSize(e.uri),h.setModel(e.uri))}}catch(y){d.e(y)}finally{d.f()}var f,p=(0,o.Z)(l.future);try{for(p.s();!(f=p.n()).done;){var g=f.value;(0,E.e9)(g)&&g.matchesResource(e.uri)&&(s=!0,u+=g.heapSize(e.uri),g.setModel(e.uri))}}catch(y){p.e(y)}finally{p.f()}}}var v=n.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK;if(s)if(!a&&u>v){var m=r.model.getInitialUndoRedoSnapshot();null!==m&&this._undoRedoService.restoreSnapshot(m)}else this._ensureDisposedModelsHeapSize(v-u),this._undoRedoService.setElementsValidFlag(e.uri,!1,(function(t){return(0,E.e9)(t)&&t.matchesResource(e.uri)})),this._insertDisposedModel(new Z(e.uri,r.model.getInitialUndoRedoSnapshot(),Date.now(),a,u,A(e),e.getVersionId(),e.getAlternativeVersionId()));else if(!a){var _=r.model.getInitialUndoRedoSnapshot();null!==_&&this._undoRedoService.restoreSnapshot(_)}delete this._models[i],r.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageIdentifier().language+e.uri],this._onModelRemoved.fire(e)}},{key:"_onDidChangeLanguage",value:function(e,t){var i=t.oldLanguage,r=e.getLanguageIdentifier().language,o=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),a=this.getCreationOptions(r,e.uri,e.isForSimpleWidget);n._setModelOptionsForModel(e,a,o),this._onModelModeChanged.fire({model:e,oldModeId:i})}}],[{key:"_readModelOptions",value:function(e,t){var n=g.DB.tabSize;if(e.editor&&"undefined"!==typeof e.editor.tabSize){var i=parseInt(e.editor.tabSize,10);isNaN(i)||(n=i),n<1&&(n=1)}var r=n;if(e.editor&&"undefined"!==typeof e.editor.indentSize&&"tabSize"!==e.editor.indentSize){var o=parseInt(e.editor.indentSize,10);isNaN(o)||(r=o),r<1&&(r=1)}var a=g.DB.insertSpaces;e.editor&&"undefined"!==typeof e.editor.insertSpaces&&(a="false"!==e.editor.insertSpaces&&Boolean(e.editor.insertSpaces));var s=P,u=e.eol;"\r\n"===u?s=2:"\n"===u&&(s=1);var l=g.DB.trimAutoWhitespace;e.editor&&"undefined"!==typeof e.editor.trimAutoWhitespace&&(l="false"!==e.editor.trimAutoWhitespace&&Boolean(e.editor.trimAutoWhitespace));var c=g.DB.detectIndentation;e.editor&&"undefined"!==typeof e.editor.detectIndentation&&(c="false"!==e.editor.detectIndentation&&Boolean(e.editor.detectIndentation));var d=g.DB.largeFileOptimizations;return e.editor&&"undefined"!==typeof e.editor.largeFileOptimizations&&(d="false"!==e.editor.largeFileOptimizations&&Boolean(e.editor.largeFileOptimizations)),{isForSimpleWidget:t,tabSize:n,indentSize:r,insertSpaces:a,detectIndentation:c,defaultEOL:s,trimAutoWhitespace:l,largeFileOptimizations:d}}},{key:"_setModelOptionsForModel",value:function(e,t,n){n&&n.defaultEOL!==t.defaultEOL&&1===e.getLineCount()&&e.setEOL(1===t.defaultEOL?0:1),n&&n.detectIndentation===t.detectIndentation&&n.insertSpaces===t.insertSpaces&&n.tabSize===t.tabSize&&n.indentSize===t.indentSize&&n.trimAutoWhitespace===t.trimAutoWhitespace||(t.detectIndentation?(e.detectIndentation(t.insertSpaces,t.tabSize),e.updateOptions({trimAutoWhitespace:t.trimAutoWhitespace})):e.updateOptions({insertSpaces:t.insertSpaces,tabSize:t.tabSize,indentSize:t.indentSize,trimAutoWhitespace:t.trimAutoWhitespace}))}}]),n}(h.JT);F.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20971520,F=T([O(0,b.Ui),O(1,y.y),O(2,k.XE),O(3,S.VZ),O(4,x.tJ)],F);var j="editor.semanticHighlighting";function H(e,t,n){var i,r=null===(i=n.getValue(j,{overrideIdentifier:e.getLanguageIdentifier().language,resource:e.uri}))||void 0===i?void 0:i.enabled;return"boolean"===typeof r?r:t.getColorTheme().semanticHighlighting}var B=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,a){var s;(0,l.Z)(this,n),(s=t.call(this))._watchers=Object.create(null),s._semanticStyling=a;var u=function(e){s._watchers[e.uri.toString()]=new V(e,i,s._semanticStyling)},c=function(e,t){t.dispose(),delete s._watchers[e.uri.toString()]},d=function(){var t,n=(0,o.Z)(e.getModels());try{for(n.s();!(t=n.n()).done;){var a=t.value,l=s._watchers[a.uri.toString()];H(a,i,r)?l||u(a):l&&c(a,l)}}catch(d){n.e(d)}finally{n.f()}};return s._register(e.onModelAdded((function(e){H(e,i,r)&&u(e)}))),s._register(e.onModelRemoved((function(e){var t=s._watchers[e.uri.toString()];t&&c(e,t)}))),s._register(r.onDidChangeConfiguration((function(e){e.affectsConfiguration(j)&&d()}))),s._register(i.onDidColorThemeChange(d)),s}return(0,c.Z)(n)}(h.JT),z=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i){var r;return(0,l.Z)(this,n),(r=t.call(this))._themeService=e,r._logService=i,r._caches=new WeakMap,r._register(r._themeService.onDidColorThemeChange((function(){r._caches=new WeakMap}))),r}return(0,c.Z)(n,[{key:"get",value:function(e){return this._caches.has(e)||this._caches.set(e,new D.$(e.getLegend(),this._themeService,this._logService)),this._caches.get(e)}}]),n}(h.JT),W=function(){function e(t,n,i){(0,l.Z)(this,e),this._provider=t,this.resultId=n,this.data=i}return(0,c.Z)(e,[{key:"dispose",value:function(){this._provider.releaseDocumentSemanticTokens(this.resultId)}}]),e}(),V=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r){var a;(0,l.Z)(this,n),(a=t.call(this))._isDisposed=!1,a._model=e,a._semanticStyling=r,a._fetchDocumentSemanticTokens=a._register(new w.pY((function(){return a._fetchDocumentSemanticTokensNow()}),n.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY)),a._currentDocumentResponse=null,a._currentDocumentRequestCancellationTokenSource=null,a._documentProvidersChangeListeners=[],a._register(a._model.onDidChangeContent((function(){a._fetchDocumentSemanticTokens.isScheduled()||a._fetchDocumentSemanticTokens.schedule()}))),a._register(a._model.onDidChangeLanguage((function(){a._currentDocumentResponse&&(a._currentDocumentResponse.dispose(),a._currentDocumentResponse=null),a._currentDocumentRequestCancellationTokenSource&&(a._currentDocumentRequestCancellationTokenSource.cancel(),a._currentDocumentRequestCancellationTokenSource=null),a._setDocumentSemanticTokens(null,null,null,[]),a._fetchDocumentSemanticTokens.schedule(0)})));var s=function(){(0,h.B9)(a._documentProvidersChangeListeners),a._documentProvidersChangeListeners=[];var t,n=(0,o.Z)(m.wT.all(e));try{for(n.s();!(t=n.n()).done;){var i=t.value;"function"===typeof i.onDidChange&&a._documentProvidersChangeListeners.push(i.onDidChange((function(){return a._fetchDocumentSemanticTokens.schedule(0)})))}}catch(r){n.e(r)}finally{n.f()}};return s(),a._register(m.wT.onDidChange((function(){s(),a._fetchDocumentSemanticTokens.schedule()}))),a._register(i.onDidColorThemeChange((function(e){a._setDocumentSemanticTokens(null,null,null,[]),a._fetchDocumentSemanticTokens.schedule()}))),a._fetchDocumentSemanticTokens.schedule(0),a}return(0,c.Z)(n,[{key:"dispose",value:function(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}},{key:"_fetchDocumentSemanticTokensNow",value:function(){var e=this;if(!this._currentDocumentRequestCancellationTokenSource){var t=new C.A,n=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,i=(0,M.ML)(this._model,n,t.token);if(i){var r=i.provider,o=i.request;this._currentDocumentRequestCancellationTokenSource=t;var a=[],s=this._model.onDidChangeContent((function(e){a.push(e)})),u=this._semanticStyling.get(r);o.then((function(t){e._currentDocumentRequestCancellationTokenSource=null,s.dispose(),e._setDocumentSemanticTokens(r,t||null,u,a)}),(function(t){t&&(p.VV(t)||"string"===typeof t.message&&-1!==t.message.indexOf("busy"))||p.dL(t),e._currentDocumentRequestCancellationTokenSource=null,s.dispose(),a.length>0&&(e._fetchDocumentSemanticTokens.isScheduled()||e._fetchDocumentSemanticTokens.schedule())}))}else this._currentDocumentResponse&&this._model.setSemanticTokens(null,!1)}}},{key:"_setDocumentSemanticTokens",value:function(e,t,i,r){var a=this,s=this._currentDocumentResponse,u=function(){r.length>0&&!a._fetchDocumentSemanticTokens.isScheduled()&&a._fetchDocumentSemanticTokens.schedule()};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed)e&&t&&e.releaseDocumentSemanticTokens(t.resultId);else if(e&&i){if(!t)return this._model.setSemanticTokens(null,!0),void u();if((0,M.Vj)(t)){if(!s)return void this._model.setSemanticTokens(null,!0);if(0===t.edits.length)t={resultId:t.resultId,data:s.data};else{var l,c=0,d=(0,o.Z)(t.edits);try{for(d.s();!(l=d.n()).done;){var h=l.value;c+=(h.data?h.data.length:0)-h.deleteCount}}catch(O){d.e(O)}finally{d.f()}for(var f=s.data,p=new Uint32Array(f.length+c),g=f.length,v=p.length,m=t.edits.length-1;m>=0;m--){var _=t.edits[m],y=g-(_.start+_.deleteCount);y>0&&(n._copy(f,g-y,p,v-y,y),v-=y),_.data&&(n._copy(_.data,0,p,v-_.data.length,_.data.length),v-=_.data.length),g=_.start}g>0&&n._copy(f,0,p,0,g),t={resultId:t.resultId,data:p}}}if((0,M.Vl)(t)){this._currentDocumentResponse=new W(e,t.resultId,t.data);var b=(0,D.h)(t,i,this._model.getLanguageIdentifier());if(r.length>0){var w,C=(0,o.Z)(r);try{for(C.s();!(w=C.n()).done;){var k,S=w.value,x=(0,o.Z)(b);try{for(x.s();!(k=x.n()).done;){var L,E=k.value,N=(0,o.Z)(S.changes);try{for(N.s();!(L=N.n()).done;){var T=L.value;E.applyEdit(T.range,T.text)}}catch(O){N.e(O)}finally{N.f()}}}catch(O){x.e(O)}finally{x.f()}}}catch(O){C.e(O)}finally{C.f()}}this._model.setSemanticTokens(b,!0)}else this._model.setSemanticTokens(null,!0);u()}else this._model.setSemanticTokens(null,!1)}}],[{key:"_copy",value:function(e,t,n,i,r){for(var o=0;o<r;o++)n[i+o]=e[t+o]}}]),n}(h.JT);V.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY=300},44148:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var i=(0,n(84596).yh)("textModelService")},93445:function(e,t,n){"use strict";n.d(t,{$:function(){return l},h:function(){return c}});var i=n(37762),r=n(15671),o=n(43144),a=n(99404),s=n(19974),u=n(98623),l=function(){function e(t,n,i){(0,r.Z)(this,e),this._legend=t,this._themeService=n,this._logService=i,this._hashTable=new h,this._hasWarnedOverlappingTokens=!1}return(0,o.Z)(e,[{key:"getMetadata",value:function(e,t,n){var i,r=this._hashTable.get(e,t,n.id);if(r)i=r.metadata,this._logService.getLevel()===s.in.Trace&&this._logService.trace("SemanticTokensProviderStyling [CACHED] ".concat(e," / ").concat(t,": foreground ").concat(a.NX.getForeground(i),", fontStyle ").concat(a.NX.getFontStyle(i).toString(2)));else{var o=this._legend.tokenTypes[e],u=[];if(o){for(var l=t,c=0;l>0&&c<this._legend.tokenModifiers.length;c++)1&l&&u.push(this._legend.tokenModifiers[c]),l>>=1;l>0&&this._logService.getLevel()===s.in.Trace&&(this._logService.trace("SemanticTokensProviderStyling: unknown token modifier index: ".concat(t.toString(2)," for legend: ").concat(JSON.stringify(this._legend.tokenModifiers))),u.push("not-in-legend"));var d=this._themeService.getColorTheme().getTokenStyleMetadata(o,u,n.language);if("undefined"===typeof d)i=2147483647;else{if(i=0,"undefined"!==typeof d.italic)i|=1|(d.italic?1:0)<<11;if("undefined"!==typeof d.bold)i|=2|(d.bold?2:0)<<11;if("undefined"!==typeof d.underline)i|=4|(d.underline?4:0)<<11;if(d.foreground)i|=8|d.foreground<<14;0===i&&(i=2147483647)}}else this._logService.getLevel()===s.in.Trace&&this._logService.trace("SemanticTokensProviderStyling: unknown token type index: ".concat(e," for legend: ").concat(JSON.stringify(this._legend.tokenTypes))),i=2147483647,o="not-in-legend";this._hashTable.add(e,t,n.id,i),this._logService.getLevel()===s.in.Trace&&this._logService.trace("SemanticTokensProviderStyling ".concat(e," (").concat(o,") / ").concat(t," (").concat(u.join(" "),"): foreground ").concat(a.NX.getForeground(i),", fontStyle ").concat(a.NX.getFontStyle(i).toString(2)))}return i}},{key:"warnOverlappingSemanticTokens",value:function(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,console.warn("Overlapping semantic tokens detected at lineNumber ".concat(e,", column ").concat(t)))}}]),e}();function c(e,t,n){for(var i=e.data,r=e.data.length/5|0,o=Math.max(Math.ceil(r/1024),400),a=[],s=0,l=1,c=0;s<r;){var d=s,h=Math.min(d+o,r);if(h<r){for(var f=h;f-1>d&&0===i[5*f];)f--;if(f-1===d){for(var p=h;p+1<r&&0===i[5*p];)p++;h=p}else h=f}for(var g=new Uint32Array(4*(h-d)),v=0,m=0,_=0,y=0,b=0;s<h;){var w=5*s,C=i[w],k=i[w+1],S=l+C,x=0===C?c+k:k,L=i[w+2],E=i[w+3],N=i[w+4],D=t.getMetadata(E,N,n);2147483647!==D&&(0===m&&(m=S),_===S&&b>x&&(t.warnOverlappingSemanticTokens(S,x+1),y<x?g[v-4+2]=x:v-=4),g[v]=S-m,g[v+1]=x,g[v+2]=x+L,g[v+3]=D,v+=4,_=S,y=x,b=x+L),l=S,c=x,s++}v!==g.length&&(g=g.subarray(0,v));var M=new u.Wz(m,new u.OU(g));a.push(M)}return a}var d=(0,o.Z)((function e(t,n,i,o){(0,r.Z)(this,e),this.tokenTypeIndex=t,this.tokenModifierSet=n,this.languageId=i,this.metadata=o,this.next=null})),h=function(){function e(){(0,r.Z)(this,e),this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=e._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<e._SIZES.length?2/3*this._currentLength:0),this._elements=[],e._nullOutEntries(this._elements,this._currentLength)}return(0,o.Z)(e,[{key:"_hash2",value:function(e,t){return(e<<5)-e+t|0}},{key:"_hashFunc",value:function(e,t,n){return this._hash2(this._hash2(e,t),n)%this._currentLength}},{key:"get",value:function(e,t,n){for(var i=this._hashFunc(e,t,n),r=this._elements[i];r;){if(r.tokenTypeIndex===e&&r.tokenModifierSet===t&&r.languageId===n)return r;r=r.next}return null}},{key:"add",value:function(t,n,r,o){if(this._elementsCount++,0!==this._growCount&&this._elementsCount>=this._growCount){var a=this._elements;this._currentLengthIndex++,this._currentLength=e._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<e._SIZES.length?2/3*this._currentLength:0),this._elements=[],e._nullOutEntries(this._elements,this._currentLength);var s,u=(0,i.Z)(a);try{for(u.s();!(s=u.n()).done;)for(var l=s.value;l;){var c=l.next;l.next=null,this._add(l),l=c}}catch(h){u.e(h)}finally{u.f()}}this._add(new d(t,n,r,o))}},{key:"_add",value:function(e){var t=this._hashFunc(e.tokenTypeIndex,e.tokenModifierSet,e.languageId);e.next=this._elements[t],this._elements[t]=e}}],[{key:"_nullOutEntries",value:function(e,t){for(var n=0;n<t;n++)e[n]=null}}]),e}();h._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143]},45862:function(e,t,n){"use strict";n.d(t,{V:function(){return r},y:function(){return o}});var i=n(84596),r=(0,i.yh)("textResourceConfigurationService"),o=(0,i.yh)("textResourcePropertiesService")},25741:function(e,t,n){"use strict";n.d(t,{B8:function(){return l},Oe:function(){return i},UL:function(){return d},UX:function(){return s},aq:function(){return u},ld:function(){return a},qq:function(){return o},ug:function(){return r},xi:function(){return c}});var i,r,o,a,s,u,l,c,d,h=n(56345);!function(e){e.noSelection=h.N("noSelection","No selection"),e.singleSelectionRange=h.N("singleSelectionRange","Line {0}, Column {1} ({2} selected)"),e.singleSelection=h.N("singleSelection","Line {0}, Column {1}"),e.multiSelectionRange=h.N("multiSelectionRange","{0} selections ({1} characters selected)"),e.multiSelection=h.N("multiSelection","{0} selections"),e.emergencyConfOn=h.N("emergencyConfOn","Now changing the setting `accessibilitySupport` to 'on'."),e.openingDocs=h.N("openingDocs","Now opening the Editor Accessibility documentation page."),e.readonlyDiffEditor=h.N("readonlyDiffEditor"," in a read-only pane of a diff editor."),e.editableDiffEditor=h.N("editableDiffEditor"," in a pane of a diff editor."),e.readonlyEditor=h.N("readonlyEditor"," in a read-only code editor"),e.editableEditor=h.N("editableEditor"," in a code editor"),e.changeConfigToOnMac=h.N("changeConfigToOnMac","To configure the editor to be optimized for usage with a Screen Reader press Command+E now."),e.changeConfigToOnWinLinux=h.N("changeConfigToOnWinLinux","To configure the editor to be optimized for usage with a Screen Reader press Control+E now."),e.auto_on=h.N("auto_on","The editor is configured to be optimized for usage with a Screen Reader."),e.auto_off=h.N("auto_off","The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time."),e.tabFocusModeOnMsg=h.N("tabFocusModeOnMsg","Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}."),e.tabFocusModeOnMsgNoKb=h.N("tabFocusModeOnMsgNoKb","Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding."),e.tabFocusModeOffMsg=h.N("tabFocusModeOffMsg","Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}."),e.tabFocusModeOffMsgNoKb=h.N("tabFocusModeOffMsgNoKb","Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding."),e.openDocMac=h.N("openDocMac","Press Command+H now to open a browser window with more information related to editor accessibility."),e.openDocWinLinux=h.N("openDocWinLinux","Press Control+H now to open a browser window with more information related to editor accessibility."),e.outroMsg=h.N("outroMsg","You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape."),e.showAccessibilityHelpAction=h.N("showAccessibilityHelpAction","Show Accessibility Help")}(i||(i={})),function(e){e.inspectTokensAction=h.N("inspectTokens","Developer: Inspect Tokens")}(r||(r={})),function(e){e.gotoLineActionLabel=h.N("gotoLineActionLabel","Go to Line/Column...")}(o||(o={})),function(e){e.helpQuickAccessActionLabel=h.N("helpQuickAccess","Show all Quick Access Providers")}(a||(a={})),function(e){e.quickCommandActionLabel=h.N("quickCommandActionLabel","Command Palette"),e.quickCommandHelp=h.N("quickCommandActionHelp","Show And Run Commands")}(s||(s={})),function(e){e.quickOutlineActionLabel=h.N("quickOutlineActionLabel","Go to Symbol..."),e.quickOutlineByCategoryActionLabel=h.N("quickOutlineByCategoryActionLabel","Go to Symbol by Category...")}(u||(u={})),function(e){e.editorViewAccessibleLabel=h.N("editorViewAccessibleLabel","Editor content"),e.accessibilityHelpMessage=h.N("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")}(l||(l={})),function(e){e.toggleHighContrast=h.N("toggleHighContrast","Toggle High Contrast Theme")}(c||(c={})),function(e){e.bulkEditServiceSummary=h.N("bulkEditServiceSummary","Made {0} edits in {1} files")}(d||(d={}))},80449:function(e,t,n){"use strict";n.d(t,{DD:function(){return b},Dl:function(){return S},Kh:function(){return s},Mm:function(){return u},Re:function(){return I},TC:function(){return k},Ym:function(){return m},Yp:function(){return C},eS:function(){return A},e_:function(){return L},fY:function(){return p},hw:function(){return _},kp:function(){return N},lK:function(){return O},m9:function(){return T},n0:function(){return f},tR:function(){return v},zk:function(){return w},zu:function(){return D},zw:function(){return x}});var i=n(56345),r=n(89938),o=n(92992),a=n(70182),s=(0,o.P6)("editor.lineHighlightBackground",{dark:null,light:null,hc:null},i.N("lineHighlight","Background color for the highlight of line at the cursor position.")),u=(0,o.P6)("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hc:"#f38518"},i.N("lineHighlightBorderBox","Background color for the border around the line at the cursor position.")),l=(0,o.P6)("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hc:null},i.N("rangeHighlight","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0),c=(0,o.P6)("editor.rangeHighlightBorder",{dark:null,light:null,hc:o.xL},i.N("rangeHighlightBorder","Background color of the border around highlighted ranges."),!0),d=(0,o.P6)("editor.symbolHighlightBackground",{dark:o.MU,light:o.MU,hc:null},i.N("symbolHighlight","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0),h=(0,o.P6)("editor.symbolHighlightBorder",{dark:null,light:null,hc:o.xL},i.N("symbolHighlightBorder","Background color of the border around highlighted symbols."),!0),f=(0,o.P6)("editorCursor.foreground",{dark:"#AEAFAD",light:r.Il.black,hc:r.Il.white},i.N("caret","Color of the editor cursor.")),p=(0,o.P6)("editorCursor.background",null,i.N("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),g=(0,o.P6)("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hc:"#e3e4e229"},i.N("editorWhitespaces","Color of whitespace characters in the editor.")),v=(0,o.P6)("editorIndentGuide.background",{dark:g,light:g,hc:g},i.N("editorIndentGuides","Color of the editor indentation guides.")),m=(0,o.P6)("editorIndentGuide.activeBackground",{dark:g,light:g,hc:g},i.N("editorActiveIndentGuide","Color of the active editor indentation guides.")),_=(0,o.P6)("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hc:r.Il.white},i.N("editorLineNumbers","Color of editor line numbers.")),y=(0,o.P6)("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hc:o.xL},i.N("editorActiveLineNumber","Color of editor active line number"),!1,i.N("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead.")),b=(0,o.P6)("editorLineNumber.activeForeground",{dark:y,light:y,hc:y},i.N("editorActiveLineNumber","Color of editor active line number")),w=(0,o.P6)("editorRuler.foreground",{dark:"#5A5A5A",light:r.Il.lightgrey,hc:r.Il.white},i.N("editorRuler","Color of the editor rulers.")),C=(0,o.P6)("editorCodeLens.foreground",{dark:"#999999",light:"#999999",hc:"#999999"},i.N("editorCodeLensForeground","Foreground color of editor CodeLens")),k=(0,o.P6)("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hc:"#0064001a"},i.N("editorBracketMatchBackground","Background color behind matching brackets")),S=(0,o.P6)("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hc:o.lR},i.N("editorBracketMatchBorder","Color for matching brackets boxes")),x=(0,o.P6)("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hc:"#7f7f7f4d"},i.N("editorOverviewRulerBorder","Color of the overview ruler border.")),L=(0,o.P6)("editorOverviewRuler.background",null,i.N("editorOverviewRulerBackground","Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor.")),E=(0,o.P6)("editorGutter.background",{dark:o.cv,light:o.cv,hc:o.cv},i.N("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),N=(0,o.P6)("editorUnnecessaryCode.border",{dark:null,light:null,hc:r.Il.fromHex("#fff").transparent(.8)},i.N("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor.")),D=(0,o.P6)("editorUnnecessaryCode.opacity",{dark:r.Il.fromHex("#000a"),light:r.Il.fromHex("#0007"),hc:null},i.N("unnecessaryCodeOpacity","Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.")),M=new r.Il(new r.VS(0,122,204,.6)),T=(0,o.P6)("editorOverviewRuler.rangeHighlightForeground",{dark:M,light:M,hc:M},i.N("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),O=(0,o.P6)("editorOverviewRuler.errorForeground",{dark:new r.Il(new r.VS(255,18,18,.7)),light:new r.Il(new r.VS(255,18,18,.7)),hc:new r.Il(new r.VS(255,50,50,1))},i.N("overviewRuleError","Overview ruler marker color for errors.")),I=(0,o.P6)("editorOverviewRuler.warningForeground",{dark:o.uo,light:o.uo,hc:o.pW},i.N("overviewRuleWarning","Overview ruler marker color for warnings.")),A=(0,o.P6)("editorOverviewRuler.infoForeground",{dark:o.c6,light:o.c6,hc:o.T8},i.N("overviewRuleInfo","Overview ruler marker color for infos."));(0,a.Ic)((function(e,t){var n=e.getColor(o.cv);n&&t.addRule(".monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: ".concat(n,"; }"));var i=e.getColor(o.NO);i&&t.addRule(".monaco-editor, .monaco-editor .inputarea.ime-input { color: ".concat(i,"; }"));var r=e.getColor(E);r&&t.addRule(".monaco-editor .margin { background-color: ".concat(r,"; }"));var a=e.getColor(l);a&&t.addRule(".monaco-editor .rangeHighlight { background-color: ".concat(a,"; }"));var s=e.getColor(c);s&&t.addRule(".monaco-editor .rangeHighlight { border: 1px ".concat("hc"===e.type?"dotted":"solid"," ").concat(s,"; }"));var u=e.getColor(d);u&&t.addRule(".monaco-editor .symbolHighlight { background-color: ".concat(u,"; }"));var f=e.getColor(h);f&&t.addRule(".monaco-editor .symbolHighlight { border: 1px ".concat("hc"===e.type?"dotted":"solid"," ").concat(f,"; }"));var p=e.getColor(g);p&&(t.addRule(".monaco-editor .mtkw { color: ".concat(p," !important; }")),t.addRule(".monaco-editor .mtkz { color: ".concat(p," !important; }")))}))},32110:function(e,t,n){"use strict";n.d(t,{EY:function(){return a},Tj:function(){return s}});var i=n(15671),r=n(43144),o=function(){function e(t,n,r){(0,i.Z)(this,e),this.from=0|t,this.to=0|n,this.colorId=0|r}return(0,r.Z)(e,null,[{key:"compare",value:function(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}]),e}(),a=function(){function e(t,n,r){(0,i.Z)(this,e),this.startLineNumber=t,this.endLineNumber=n,this.color=r,this._colorZone=null}return(0,r.Z)(e,[{key:"setColorZone",value:function(e){this._colorZone=e}},{key:"getColorZones",value:function(){return this._colorZone}}],[{key:"compare",value:function(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.color<t.color?-1:1}}]),e}(),s=function(){function e(t){(0,i.Z)(this,e),this._getVerticalOffsetForLine=t,this._zones=[],this._colorZonesInvalid=!1,this._lineHeight=0,this._domWidth=0,this._domHeight=0,this._outerHeight=0,this._pixelRatio=1,this._lastAssignedId=0,this._color2Id=Object.create(null),this._id2Color=[]}return(0,r.Z)(e,[{key:"getId2Color",value:function(){return this._id2Color}},{key:"setZones",value:function(e){this._zones=e,this._zones.sort(a.compare)}},{key:"setLineHeight",value:function(e){return this._lineHeight!==e&&(this._lineHeight=e,this._colorZonesInvalid=!0,!0)}},{key:"setPixelRatio",value:function(e){this._pixelRatio=e,this._colorZonesInvalid=!0}},{key:"getDOMWidth",value:function(){return this._domWidth}},{key:"getCanvasWidth",value:function(){return this._domWidth*this._pixelRatio}},{key:"setDOMWidth",value:function(e){return this._domWidth!==e&&(this._domWidth=e,this._colorZonesInvalid=!0,!0)}},{key:"getDOMHeight",value:function(){return this._domHeight}},{key:"getCanvasHeight",value:function(){return this._domHeight*this._pixelRatio}},{key:"setDOMHeight",value:function(e){return this._domHeight!==e&&(this._domHeight=e,this._colorZonesInvalid=!0,!0)}},{key:"getOuterHeight",value:function(){return this._outerHeight}},{key:"setOuterHeight",value:function(e){return this._outerHeight!==e&&(this._outerHeight=e,this._colorZonesInvalid=!0,!0)}},{key:"resolveColorZones",value:function(){for(var e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),n=Math.floor(this.getCanvasHeight()),i=n/Math.floor(this._outerHeight),r=Math.floor(4*this._pixelRatio/2),a=[],s=0,u=this._zones.length;s<u;s++){var l=this._zones[s];if(!e){var c=l.getColorZones();if(c){a.push(c);continue}}var d=Math.floor(i*this._getVerticalOffsetForLine(l.startLineNumber)),h=Math.floor(i*(this._getVerticalOffsetForLine(l.endLineNumber)+t)),f=Math.floor((d+h)/2),p=h-f;p<r&&(p=r),f-p<0&&(f=p),f+p>n&&(f=n-p);var g=l.color,v=this._color2Id[g];v||(v=++this._lastAssignedId,this._color2Id[g]=v,this._id2Color[v]=g);var m=new o(f-p,f+p,v);l.setColorZone(m),a.push(m)}return this._colorZonesInvalid=!1,a.sort(o.compare),a}}]),e}()},29805:function(e,t,n){"use strict";n.d(t,{Kp:function(){return s},k:function(){return c}});var i=n(37762),r=n(15671),o=n(43144),a=n(51747),s=function(){function e(t,n,i,o){(0,r.Z)(this,e),this.startColumn=t,this.endColumn=n,this.className=i,this.type=o}return(0,o.Z)(e,null,[{key:"_equals",value:function(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}},{key:"equalsArr",value:function(t,n){var i=t.length;if(i!==n.length)return!1;for(var r=0;r<i;r++)if(!e._equals(t[r],n[r]))return!1;return!0}},{key:"extractWrapped",value:function(t,n,r){if(0===t.length)return t;var o,a=n+1,s=r+1,u=r-n,l=[],c=0,d=(0,i.Z)(t);try{for(d.s();!(o=d.n()).done;){var h=o.value;h.endColumn<=a||h.startColumn>=s||(l[c++]=new e(Math.max(1,h.startColumn-a+1),Math.min(u+1,h.endColumn-a+1),h.className,h.type))}}catch(f){d.e(f)}finally{d.f()}return l}},{key:"filter",value:function(t,n,i,r){if(0===t.length)return[];for(var o=[],a=0,s=0,u=t.length;s<u;s++){var l=t[s],c=l.range;if(!(c.endLineNumber<n||c.startLineNumber>n)&&(!c.isEmpty()||0!==l.type&&3!==l.type)){var d=c.startLineNumber===n?c.startColumn:i,h=c.endLineNumber===n?c.endColumn:r;o[a++]=new e(d,h,l.inlineClassName,l.type)}}return o}},{key:"_typeCompare",value:function(e,t){var n=[2,0,1,3];return n[e]-n[t]}},{key:"compare",value:function(t,n){if(t.startColumn===n.startColumn){if(t.endColumn===n.endColumn){var i=e._typeCompare(t.type,n.type);return 0===i?t.className<n.className?-1:t.className>n.className?1:0:i}return t.endColumn-n.endColumn}return t.startColumn-n.startColumn}}]),e}(),u=(0,o.Z)((function e(t,n,i,o){(0,r.Z)(this,e),this.startOffset=t,this.endOffset=n,this.className=i,this.metadata=o})),l=function(){function e(){(0,r.Z)(this,e),this.stopOffsets=[],this.classNames=[],this.metadata=[],this.count=0}return(0,o.Z)(e,[{key:"consumeLowerThan",value:function(t,n,i){for(;this.count>0&&this.stopOffsets[0]<t;){for(var r=0;r+1<this.count&&this.stopOffsets[r]===this.stopOffsets[r+1];)r++;i.push(new u(n,this.stopOffsets[r],this.classNames.join(" "),e._metadata(this.metadata))),n=this.stopOffsets[r]+1,this.stopOffsets.splice(0,r+1),this.classNames.splice(0,r+1),this.metadata.splice(0,r+1),this.count-=r+1}return this.count>0&&n<t&&(i.push(new u(n,t-1,this.classNames.join(" "),e._metadata(this.metadata))),n=t),n}},{key:"insert",value:function(e,t,n){if(0===this.count||this.stopOffsets[this.count-1]<=e)this.stopOffsets.push(e),this.classNames.push(t),this.metadata.push(n);else for(var i=0;i<this.count;i++)if(this.stopOffsets[i]>=e){this.stopOffsets.splice(i,0,e),this.classNames.splice(i,0,t),this.metadata.splice(i,0,n);break}this.count++}}],[{key:"_metadata",value:function(e){for(var t=0,n=0,i=e.length;n<i;n++)t|=e[n];return t}}]),e}(),c=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"normalize",value:function(e,t){if(0===t.length)return[];for(var n=[],i=new l,r=0,o=0,s=t.length;o<s;o++){var u=t[o],c=u.startColumn,d=u.endColumn,h=u.className,f=1===u.type?2:2===u.type?4:0;if(c>1){var p=e.charCodeAt(c-2);a.ZG(p)&&c--}if(d>1){var g=e.charCodeAt(d-2);a.ZG(g)&&d--}var v=c-1,m=d-2;r=i.consumeLowerThan(v,r,n),0===i.count&&(r=v),i.insert(m,h,f)}return i.consumeLowerThan(1073741824,r,n),n}}]),e}()},70632:function(e,t,n){"use strict";n.d(t,{IJ:function(){return d},d1:function(){return p},fH:function(){return h},tF:function(){return v},zG:function(){return c}});var i=n(37762),r=n(15671),o=n(43144),a=n(51747),s=n(85500),u=n(29805),l=function(){function e(t,n,i){(0,r.Z)(this,e),this.endIndex=t,this.type=n,this.metadata=i}return(0,o.Z)(e,[{key:"isWhitespace",value:function(){return!!(1&this.metadata)}}]),e}(),c=function(){function e(t,n){(0,r.Z)(this,e),this.startOffset=t,this.endOffset=n}return(0,o.Z)(e,[{key:"equals",value:function(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}}]),e}(),d=function(){function e(t,n,i,o,a,s,l,c,d,h,f,p,g,v,m,_,y,b,w){(0,r.Z)(this,e),this.useMonospaceOptimizations=t,this.canUseHalfwidthRightwardsArrow=n,this.lineContent=i,this.continuesWithWrappedLine=o,this.isBasicASCII=a,this.containsRTL=s,this.fauxIndentLength=l,this.lineTokens=c,this.lineDecorations=d.sort(u.Kp.compare),this.tabSize=h,this.startVisibleColumn=f,this.spaceWidth=p,this.stopRenderingLineAfter=m,this.renderWhitespace="all"===_?4:"boundary"===_?1:"selection"===_?2:"trailing"===_?3:0,this.renderControlCharacters=y,this.fontLigatures=b,this.selectionsOnLine=w&&w.sort((function(e,t){return e.startOffset<t.startOffset?-1:1})),Math.abs(v-p)<Math.abs(g-p)?(this.renderSpaceWidth=v,this.renderSpaceCharCode=11825):(this.renderSpaceWidth=g,this.renderSpaceCharCode=183)}return(0,o.Z)(e,[{key:"sameSelection",value:function(e){if(null===this.selectionsOnLine)return null===e;if(null===e)return!1;if(e.length!==this.selectionsOnLine.length)return!1;for(var t=0;t<this.selectionsOnLine.length;t++)if(!this.selectionsOnLine[t].equals(e[t]))return!1;return!0}},{key:"equals",value:function(e){return this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineContent===e.lineContent&&this.continuesWithWrappedLine===e.continuesWithWrappedLine&&this.isBasicASCII===e.isBasicASCII&&this.containsRTL===e.containsRTL&&this.fauxIndentLength===e.fauxIndentLength&&this.tabSize===e.tabSize&&this.startVisibleColumn===e.startVisibleColumn&&this.spaceWidth===e.spaceWidth&&this.renderSpaceWidth===e.renderSpaceWidth&&this.renderSpaceCharCode===e.renderSpaceCharCode&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.fontLigatures===e.fontLigatures&&u.Kp.equalsArr(this.lineDecorations,e.lineDecorations)&&this.lineTokens.equals(e.lineTokens)&&this.sameSelection(e.selectionsOnLine)}}]),e}(),h=function(){function e(t,n){(0,r.Z)(this,e),this.length=t,this._data=new Uint32Array(this.length),this._absoluteOffsets=new Uint32Array(this.length)}return(0,o.Z)(e,[{key:"setPartData",value:function(e,t,n,i){var r=(t<<16|n<<0)>>>0;this._data[e]=r,this._absoluteOffsets[e]=i+n}},{key:"getAbsoluteOffsets",value:function(){return this._absoluteOffsets}},{key:"charOffsetToPartData",value:function(e){return 0===this.length?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}},{key:"partDataToCharOffset",value:function(t,n,i){if(0===this.length)return 0;for(var r=(t<<16|i<<0)>>>0,o=0,a=this.length-1;o+1<a;){var s=o+a>>>1,u=this._data[s];if(u===r)return s;u>r?a=s:o=s}if(o===a)return o;var l=this._data[o],c=this._data[a];if(l===r)return o;if(c===r)return a;var d=e.getPartIndex(l);return i-e.getCharIndex(l)<=(d!==e.getPartIndex(c)?n:e.getCharIndex(c))-i?o:a}}],[{key:"getPartIndex",value:function(e){return(4294901760&e)>>>16}},{key:"getCharIndex",value:function(e){return(65535&e)>>>0}}]),e}(),f=(0,o.Z)((function e(t,n,i){(0,r.Z)(this,e),this.characterMapping=t,this.containsRTL=n,this.containsForeignElements=i}));function p(e,t){if(0===e.lineContent.length){if(e.lineDecorations.length>0){t.appendASCIIString("<span>");var n,r=0,o=0,s=0,c=(0,i.Z)(e.lineDecorations);try{for(c.s();!(n=c.n()).done;){var d=n.value;1!==d.type&&2!==d.type||(t.appendASCIIString('<span class="'),t.appendASCIIString(d.className),t.appendASCIIString('"></span>'),1===d.type&&(s|=1,r++),2===d.type&&(s|=2,o++))}}catch(g){c.e(g)}finally{c.f()}t.appendASCIIString("</span>");var p=new h(1,r+o);return p.setPartData(0,r,0,0),new f(p,!1,s)}return t.appendASCIIString("<span><span></span></span>"),new f(new h(0,0),!1,0)}return function(e,t){var n=e.fontIsMonospace,i=e.canUseHalfwidthRightwardsArrow,r=e.containsForeignElements,o=e.lineContent,s=e.len,u=e.isOverflowing,l=e.parts,c=e.fauxIndentLength,d=e.tabSize,p=e.startVisibleColumn,g=e.containsRTL,v=e.spaceWidth,m=e.renderSpaceCharCode,_=e.renderWhitespace,y=e.renderControlCharacters,b=new h(s+1,l.length),w=0,C=p,k=0,S=0,x=0,L=0;g?t.appendASCIIString('<span dir="ltr">'):t.appendASCIIString("<span>");for(var E=0,N=l.length;E<N;E++){L+=x;var D=l[E],M=D.endIndex,T=D.type,O=0!==_&&D.isWhitespace(),I=O&&!n&&("mtkw"===T||!r),A=w===M&&4===D.metadata;if(k=0,t.appendASCIIString('<span class="'),t.appendASCIIString(I?"mtkz":T),t.appendASCII(34),O){for(var R=0,P=w,Z=C;P<M;P++){var F=0|(9===o.charCodeAt(P)?d-Z%d:1);R+=F,P>=c&&(Z+=F)}for(I&&(t.appendASCIIString(' style="width:'),t.appendASCIIString(String(v*R)),t.appendASCIIString('px"')),t.appendASCII(62);w<M;w++){b.setPartData(w,E-S,k,L),S=0;var j=void 0;if(9===o.charCodeAt(w)){j=d-C%d|0,!i||j>1?t.write1(8594):t.write1(65515);for(var H=2;H<=j;H++)t.write1(160)}else j=1,t.write1(m);k+=j,w>=c&&(C+=j)}x=R}else{var B=0;for(t.appendASCII(62);w<M;w++){b.setPartData(w,E-S,k,L),S=0;var z=o.charCodeAt(w),W=1,V=1;switch(z){case 9:V=W=d-C%d;for(var Y=1;Y<=W;Y++)t.write1(160);break;case 32:t.write1(160);break;case 60:t.appendASCIIString("&lt;");break;case 62:t.appendASCIIString("&gt;");break;case 38:t.appendASCIIString("&amp;");break;case 0:y?t.write1(9216):t.appendASCIIString("&#00;");break;case 65279:case 8232:case 8233:case 133:t.write1(65533);break;default:a.K7(z)&&V++,y&&z<32?t.write1(9216+z):y&&127===z?t.write1(9249):t.write1(z)}k+=W,B+=W,w>=c&&(C+=V)}x=B}A?S++:S=0,t.appendASCIIString("</span>")}b.setPartData(s,l.length-1,k,L),u&&t.appendASCIIString("<span>&hellip;</span>");return t.appendASCIIString("</span>"),new f(b,g,r)}(function(e){var t,n,i=e.lineContent;-1!==e.stopRenderingLineAfter&&e.stopRenderingLineAfter<i.length?(t=!0,n=e.stopRenderingLineAfter):(t=!1,n=i.length);var r=function(e,t,n){var i=[],r=0;t>0&&(i[r++]=new l(t,"",0));for(var o=0,a=e.getCount();o<a;o++){var s=e.getEndOffset(o);if(!(s<=t)){var u=e.getClassName(o);if(s>=n){i[r++]=new l(n,u,0);break}i[r++]=new l(s,u,0)}}return i}(e.lineTokens,e.fauxIndentLength,n);(4===e.renderWhitespace||1===e.renderWhitespace||2===e.renderWhitespace&&e.selectionsOnLine||3===e.renderWhitespace)&&(r=function(e,t,n,i){var r,o=e.continuesWithWrappedLine,s=e.fauxIndentLength,u=e.tabSize,c=e.startVisibleColumn,d=e.useMonospaceOptimizations,h=e.selectionsOnLine,f=1===e.renderWhitespace,p=3===e.renderWhitespace,g=e.renderSpaceWidth!==e.spaceWidth,v=[],m=0,_=0,y=i[_].type,b=i[_].endIndex,w=i.length,C=!1,k=a.LC(t);-1===k?(C=!0,k=n,r=n):r=a.ow(t);for(var S=!1,x=0,L=h&&h[x],E=c%u,N=s;N<n;N++){var D=t.charCodeAt(N);L&&N>=L.endOffset&&(x++,L=h&&h[x]);var M=void 0;if(N<k||N>r)M=!0;else if(9===D)M=!0;else if(32===D)if(f)if(S)M=!0;else{var T=N+1<n?t.charCodeAt(N+1):0;M=32===T||9===T}else M=!0;else M=!1;if(M&&h&&(M=!!L&&L.startOffset<=N&&L.endOffset>N),M&&p&&(M=C||N>r),S){if(!M||!d&&E>=u){if(g)for(var O=(m>0?v[m-1].endIndex:s)+1;O<=N;O++)v[m++]=new l(O,"mtkw",1);else v[m++]=new l(N,"mtkw",1);E%=u}}else(N===b||M&&N>s)&&(v[m++]=new l(N,y,0),E%=u);for(9===D?E=u:a.K7(D)?E+=2:E++,S=M;N===b;)++_<w&&(y=i[_].type,b=i[_].endIndex)}var I=!1;if(S)if(o&&f){var A=n>0?t.charCodeAt(n-1):0,R=n>1?t.charCodeAt(n-2):0;32===A&&32!==R&&9!==R||(I=!0)}else I=!0;if(I)if(g)for(var P=(m>0?v[m-1].endIndex:s)+1;P<=n;P++)v[m++]=new l(P,"mtkw",1);else v[m++]=new l(n,"mtkw",1);else v[m++]=new l(n,y,0);return v}(e,i,n,r));var o=0;if(e.lineDecorations.length>0){for(var s=0,c=e.lineDecorations.length;s<c;s++){var d=e.lineDecorations[s];3===d.type||1===d.type?o|=1:2===d.type&&(o|=2)}r=function(e,t,n,i){i.sort(u.Kp.compare);for(var r=u.k.normalize(e,i),o=r.length,a=0,s=[],c=0,d=0,h=0,f=n.length;h<f;h++){for(var p=n[h],g=p.endIndex,v=p.type,m=p.metadata;a<o&&r[a].startOffset<g;){var _=r[a];if(_.startOffset>d&&(d=_.startOffset,s[c++]=new l(d,v,m)),!(_.endOffset+1<=g)){d=g,s[c++]=new l(d,v+" "+_.className,m|_.metadata);break}d=_.endOffset+1,s[c++]=new l(d,v+" "+_.className,m|_.metadata),a++}g>d&&(d=g,s[c++]=new l(d,v,m))}var y=n[n.length-1].endIndex;if(a<o&&r[a].startOffset===y){for(var b=[],w=0;a<o&&r[a].startOffset===y;)b.push(r[a].className),w|=r[a].metadata,a++;s[c++]=new l(d,b.join(" "),w)}return s}(i,0,r,e.lineDecorations)}e.containsRTL||(r=function(e,t,n){var i=0,r=[],o=0;if(n)for(var a=0,s=t.length;a<s;a++){var u=t[a],c=u.endIndex;if(i+50<c){for(var d=u.type,h=u.metadata,f=-1,p=i,g=i;g<c;g++)32===e.charCodeAt(g)&&(f=g),-1!==f&&g-p>=50&&(r[o++]=new l(f+1,d,h),p=f+1,f=-1);p!==c&&(r[o++]=new l(c,d,h))}else r[o++]=u;i=c}else for(var v=0,m=t.length;v<m;v++){var _=t[v],y=_.endIndex,b=y-i;if(b>50){for(var w=_.type,C=_.metadata,k=Math.ceil(b/50),S=1;S<k;S++){var x=i+50*S;r[o++]=new l(x,w,C)}r[o++]=new l(y,w,C)}else r[o++]=_;i=y}return r}(i,r,!e.isBasicASCII||e.fontLigatures));return new m(e.useMonospaceOptimizations,e.canUseHalfwidthRightwardsArrow,i,n,t,r,o,e.fauxIndentLength,e.tabSize,e.startVisibleColumn,e.containsRTL,e.spaceWidth,e.renderSpaceCharCode,e.renderWhitespace,e.renderControlCharacters)}(e),t)}var g=(0,o.Z)((function e(t,n,i,o){(0,r.Z)(this,e),this.characterMapping=t,this.html=n,this.containsRTL=i,this.containsForeignElements=o}));function v(e){var t=(0,s.l$)(1e4),n=p(e,t);return new g(n.characterMapping,t.build(),n.containsRTL,n.containsForeignElements)}var m=(0,o.Z)((function e(t,n,i,o,a,s,u,l,c,d,h,f,p,g,v){(0,r.Z)(this,e),this.fontIsMonospace=t,this.canUseHalfwidthRightwardsArrow=n,this.lineContent=i,this.len=o,this.isOverflowing=a,this.parts=s,this.containsForeignElements=u,this.fauxIndentLength=l,this.tabSize=c,this.startVisibleColumn=d,this.containsRTL=h,this.spaceWidth=f,this.renderSpaceCharCode=p,this.renderWhitespace=g,this.renderControlCharacters=v}))},21043:function(e,t,n){"use strict";n.d(t,{T:function(){return a},o:function(){return s}});var i=n(43144),r=n(15671),o=n(38820),a=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.index=t,this.remainder=n})),s=function(){function e(t){(0,r.Z)(this,e),this.values=t,this.prefixSum=new Uint32Array(t.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}return(0,i.Z)(e,[{key:"insertValues",value:function(e,t){e=(0,o.A)(e);var n=this.values,i=this.prefixSum,r=t.length;return 0!==r&&(this.values=new Uint32Array(n.length+r),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e),e+r),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}},{key:"changeValue",value:function(e,t){return e=(0,o.A)(e),t=(0,o.A)(t),this.values[e]!==t&&(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)}},{key:"removeValues",value:function(e,t){e=(0,o.A)(e),t=(0,o.A)(t);var n=this.values,i=this.prefixSum;if(e>=n.length)return!1;var r=n.length-e;return t>=r&&(t=r),0!==t&&(this.values=new Uint32Array(n.length-t),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}},{key:"getTotalValue",value:function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)}},{key:"getAccumulatedValue",value:function(e){return e<0?0:(e=(0,o.A)(e),this._getAccumulatedValue(e))}},{key:"_getAccumulatedValue",value:function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}},{key:"getIndexOf",value:function(e){e=Math.floor(e),this.getTotalValue();for(var t=0,n=this.values.length-1,i=0,r=0,o=0;t<=n;)if(i=t+(n-t)/2|0,e<(o=(r=this.prefixSum[i])-this.values[i]))n=i-1;else{if(!(e>=r))break;t=i+1}return new a(i,e-o)}}]),e}()},4587:function(e,t,n){"use strict";n.d(t,{$l:function(){return f},$t:function(){return h},IP:function(){return c},l_:function(){return a},le:function(){return u},ud:function(){return l},wA:function(){return d}});var i=n(43144),r=n(15671),o=n(51747),a=(0,i.Z)((function e(t,n,i,o){(0,r.Z)(this,e),this.top=0|t,this.left=0|n,this.width=0|i,this.height=0|o})),s=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.outputLineIndex=t,this.outputOffset=n})),u=function(){function e(t,n,i){(0,r.Z)(this,e),this.breakOffsets=t,this.breakOffsetsVisibleColumn=n,this.wrappedTextIndentLength=i}return(0,i.Z)(e,null,[{key:"getInputOffsetOfOutputPosition",value:function(e,t,n){return 0===t?n:e[t-1]+n}},{key:"getOutputPositionOfInputOffset",value:function(e,t){for(var n=0,i=e.length-1,r=0,o=0;n<=i;){var a=e[r=n+(i-n)/2|0];if(t<(o=r>0?e[r-1]:0))i=r-1;else{if(!(t>=a))break;n=r+1}}return new s(r,t-o)}}]),e}(),l=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.tabSize=t,this.data=n})),c=(0,i.Z)((function e(t,n,i,o,a,s){(0,r.Z)(this,e),this.content=t,this.continuesWithWrappedLine=n,this.minColumn=i,this.maxColumn=o,this.startVisibleColumn=a,this.tokens=s})),d=function(){function e(t,n,i,o,a,s,u,l,c,d){(0,r.Z)(this,e),this.minColumn=t,this.maxColumn=n,this.content=i,this.continuesWithWrappedLine=o,this.isBasicASCII=e.isBasicASCII(i,s),this.containsRTL=e.containsRTL(i,this.isBasicASCII,a),this.tokens=u,this.inlineDecorations=l,this.tabSize=c,this.startVisibleColumn=d}return(0,i.Z)(e,null,[{key:"isBasicASCII",value:function(e,t){return!t||o.$i(e)}},{key:"containsRTL",value:function(e,t,n){return!(t||!n)&&o.Ut(e)}}]),e}(),h=(0,i.Z)((function e(t,n,i){(0,r.Z)(this,e),this.range=t,this.inlineClassName=n,this.type=i})),f=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.range=t,this.options=n}))},61335:function(e,t,n){"use strict";n.d(t,{xC:function(){return A},Zg:function(){return O},x$:function(){return R},Qq:function(){return Z},Qs:function(){return j}});var i=n(29439),r=n(93433),o=n(15671),a=n(43144),s=n(37762),u=n(87757),l=n.n(u),c=n(52180),d=n(49396),h=n(66526),f=n(8729),p=n(67775),g=n(47908),v=n(76191),m=n(67297),_=n(67033),y=n(74964),b=n(99404),w=n(333),C=n(49076),k=n(71481),S=n(56345),x=function(){function e(t){(0,o.Z)(this,e),this.value=t,this._lower=t.toLowerCase()}return(0,a.Z)(e,null,[{key:"toKey",value:function(e){return"string"===typeof e?e.toLowerCase():e._lower}}]),e}(),L=n(84596),E=n(28214),N=n(72611),D=n(25941),M=n(98900),T=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function O(e){if((e=e.filter((function(e){return e.range}))).length){for(var t=e[0].range,n=1;n<e.length;n++)t=_.e.plusRange(t,e[n].range);var i=t,r=i.startLineNumber,o=i.endLineNumber;r===o?1===e.length?(0,c.Z9)(S.N("hint11","Made 1 formatting edit on line {0}",r)):(0,c.Z9)(S.N("hintn1","Made {0} formatting edits on line {1}",e.length,r)):1===e.length?(0,c.Z9)(S.N("hint1n","Made 1 formatting edit between lines {0} and {1}",r,o)):(0,c.Z9)(S.N("hintnn","Made {0} formatting edits between lines {1} and {2}",e.length,r,o))}}function I(e){var t,n=[],i=new Set,r=b.Az.ordered(e),o=(0,s.Z)(r);try{for(o.s();!(t=o.n()).done;){var a=t.value;n.push(a),a.extensionId&&i.add(x.toKey(a.extensionId))}}catch(h){o.e(h)}finally{o.f()}var u,l=b.vN.ordered(e),c=(0,s.Z)(l);try{var d=function(){var e=u.value;if(e.extensionId){if(i.has(x.toKey(e.extensionId)))return"continue";i.add(x.toKey(e.extensionId))}n.push({displayName:e.displayName,extensionId:e.extensionId,provideDocumentFormattingEdits:function(t,n,i){return e.provideDocumentRangeFormattingEdits(t,t.getFullModelRange(),n,i)}})};for(c.s();!(u=c.n()).done;)d()}catch(h){c.e(h)}finally{c.f()}return n}var A=function(){function e(){(0,o.Z)(this,e)}return(0,a.Z)(e,null,[{key:"setFormatterSelector",value:function(t){return{dispose:e._selectors.unshift(t)}}},{key:"select",value:function(t,n,i){return T(this,void 0,void 0,l().mark((function r(){var o;return l().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(0!==t.length){r.next=2;break}return r.abrupt("return",void 0);case 2:if(!(o=M.$.first(e._selectors))){r.next=7;break}return r.next=6,o(t,n,i);case 6:return r.abrupt("return",r.sent);case 7:return r.abrupt("return",void 0);case 8:case"end":return r.stop()}}),r)})))}}]),e}();function R(e,t,n,i,r,o){return T(this,void 0,void 0,l().mark((function a(){var s,u,c,d;return l().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return s=e.get(L.TG),u=(0,v.CL)(t)?t.getModel():t,c=b.vN.ordered(u),a.next=5,A.select(c,u,i);case 5:if(!(d=a.sent)){a.next=10;break}return r.report(d),a.next=10,s.invokeFunction(P,d,t,n,o);case 10:case"end":return a.stop()}}),a)})))}function P(e,t,n,i,o){return T(this,void 0,void 0,l().mark((function a(){var u,c,h,f,p,m,b,C,S,x,L,E,N,D,M,T;return l().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:u=e.get(w.p),(0,v.CL)(n)?(c=n.getModel(),h=new g.Dl(n,5,void 0,o)):(c=n,h=new g.YQ(n,o)),f=[],p=0,m=(0,s.Z)((0,d._2)(i).sort(_.e.compareRangesUsingStarts));try{for(m.s();!(b=m.n()).done;)C=b.value,p>0&&_.e.areIntersectingOrTouching(f[p-1],C)?f[p-1]=_.e.fromPositions(f[p-1].getStartPosition(),C.getEndPosition()):p=f.push(C)}catch(l){m.e(l)}finally{m.f()}S=[],x=0,L=f;case 8:if(!(x<L.length)){a.next=26;break}return E=L[x],a.prev=10,a.next=13,t.provideDocumentRangeFormattingEdits(c,E,c.getFormattingOptions(),h.token);case 13:return N=a.sent,a.next=16,u.computeMoreMinimalEdits(c.uri,N);case 16:if((D=a.sent)&&S.push.apply(S,(0,r.Z)(D)),!h.token.isCancellationRequested){a.next=20;break}return a.abrupt("return",!0);case 20:return a.prev=20,h.dispose(),a.finish(20);case 23:x++,a.next=8;break;case 26:if(0!==S.length){a.next=28;break}return a.abrupt("return",!1);case 28:return(0,v.CL)(n)?(k.V.execute(n,S,!0),O(S),n.revealPositionInCenterIfOutsideViewport(n.getPosition(),1)):(M=S[0].range,T=new y.Y(M.startLineNumber,M.startColumn,M.endLineNumber,M.endColumn),c.pushEditOperations([T],S.map((function(e){return{text:e.text,range:_.e.lift(e.range),forceMoveMarkers:!0}})),(function(e){var t,n=(0,s.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value.range;if(_.e.areIntersectingOrTouching(i,T))return[new y.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)]}}catch(l){n.e(l)}finally{n.f()}return null}))),a.abrupt("return",!0);case 30:case"end":return a.stop()}}),a,null,[[10,,20,23]])})))}function Z(e,t,n,i,r){return T(this,void 0,void 0,l().mark((function o(){var a,s,u,c;return l().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return a=e.get(L.TG),s=(0,v.CL)(t)?t.getModel():t,u=I(s),o.next=5,A.select(u,s,n);case 5:if(!(c=o.sent)){o.next=10;break}return i.report(c),o.next=10,a.invokeFunction(F,c,t,n,r);case 10:case"end":return o.stop()}}),o)})))}function F(e,t,n,r,o){return T(this,void 0,void 0,l().mark((function a(){var u,c,d,h,f,p,m,b,C;return l().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return u=e.get(w.p),(0,v.CL)(n)?(c=n.getModel(),d=new g.Dl(n,5,void 0,o)):(c=n,d=new g.YQ(n,o)),a.prev=2,a.next=5,t.provideDocumentFormattingEdits(c,c.getFormattingOptions(),d.token);case 5:return f=a.sent,a.next=8,u.computeMoreMinimalEdits(c.uri,f);case 8:if(h=a.sent,!d.token.isCancellationRequested){a.next=11;break}return a.abrupt("return",!0);case 11:return a.prev=11,d.dispose(),a.finish(11);case 14:if(h&&0!==h.length){a.next=16;break}return a.abrupt("return",!1);case 16:return(0,v.CL)(n)?(k.V.execute(n,h,2!==r),2!==r&&(O(h),n.revealPositionInCenterIfOutsideViewport(n.getPosition(),1))):(p=h,m=(0,i.Z)(p,1),b=m[0].range,C=new y.Y(b.startLineNumber,b.startColumn,b.endLineNumber,b.endColumn),c.pushEditOperations([C],h.map((function(e){return{text:e.text,range:_.e.lift(e.range),forceMoveMarkers:!0}})),(function(e){var t,n=(0,s.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value.range;if(_.e.areIntersectingOrTouching(i,C))return[new y.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)]}}catch(r){n.e(r)}finally{n.f()}return null}))),a.abrupt("return",!0);case 18:case"end":return a.stop()}}),a,null,[[2,,11,14]])})))}function j(e,t,n,i,r){var o=b.ln.ordered(t);return 0===o.length||o[0].autoFormatTriggerCharacters.indexOf(i)<0?Promise.resolve(void 0):Promise.resolve(o[0].provideOnTypeFormattingEdits(t,n,i,r,h.T.None)).catch(f.Cp).then((function(n){return e.computeMoreMinimalEdits(t.uri,n)}))}A._selectors=new E.S,N.P.registerCommand("_executeFormatRangeProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1],a=n[2];(0,D.p_)(p.o.isUri(r)),(0,D.p_)(_.e.isIRange(o));var u=e.get(C.q).getModel(r);if(!u)throw(0,f.b1)("resource");return function(e,t,n,i,r){return T(this,void 0,void 0,l().mark((function o(){var a,u,c,h,p;return l().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:a=b.vN.ordered(t),u=(0,s.Z)(a),o.prev=2,u.s();case 4:if((c=u.n()).done){o.next=15;break}return h=c.value,o.next=8,Promise.resolve(h.provideDocumentRangeFormattingEdits(t,n,i,r)).catch(f.Cp);case 8:if(p=o.sent,!(0,d.Of)(p)){o.next=13;break}return o.next=12,e.computeMoreMinimalEdits(t.uri,p);case 12:return o.abrupt("return",o.sent);case 13:o.next=4;break;case 15:o.next=20;break;case 17:o.prev=17,o.t0=o.catch(2),u.e(o.t0);case 20:return o.prev=20,u.f(),o.finish(20);case 23:return o.abrupt("return",void 0);case 24:case"end":return o.stop()}}),o,null,[[2,17,20,23]])})))}(e.get(w.p),u,_.e.lift(o),a,h.T.None)})),N.P.registerCommand("_executeFormatDocumentProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1];(0,D.p_)(p.o.isUri(r));var a=e.get(C.q).getModel(r);if(!a)throw(0,f.b1)("resource");return function(e,t,n,i){return T(this,void 0,void 0,l().mark((function r(){var o,a,u,c,h;return l().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=I(t),a=(0,s.Z)(o),r.prev=2,a.s();case 4:if((u=a.n()).done){r.next=15;break}return c=u.value,r.next=8,Promise.resolve(c.provideDocumentFormattingEdits(t,n,i)).catch(f.Cp);case 8:if(h=r.sent,!(0,d.Of)(h)){r.next=13;break}return r.next=12,e.computeMoreMinimalEdits(t.uri,h);case 12:return r.abrupt("return",r.sent);case 13:r.next=4;break;case 15:r.next=20;break;case 17:r.prev=17,r.t0=r.catch(2),a.e(r.t0);case 20:return r.prev=20,a.f(),r.finish(20);case 23:return r.abrupt("return",void 0);case 24:case"end":return r.stop()}}),r,null,[[2,17,20,23]])})))}(e.get(w.p),a,o,h.T.None)})),N.P.registerCommand("_executeFormatOnTypeProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1],a=n[2],s=n[3];(0,D.p_)(p.o.isUri(r)),(0,D.p_)(m.L.isIPosition(o)),(0,D.p_)("string"===typeof a);var u=e.get(C.q).getModel(r);if(!u)throw(0,f.b1)("resource");return j(e.get(w.p),u,m.L.lift(o),a,s)}))},71481:function(e,t,n){"use strict";n.d(t,{V:function(){return u}});var i=n(37762),r=n(15671),o=n(43144),a=n(85025),s=n(67033),u=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"_handleEolEdits",value:function(e,t){var n,r=void 0,o=[],a=(0,i.Z)(t);try{for(a.s();!(n=a.n()).done;){var s=n.value;"number"===typeof s.eol&&(r=s.eol),s.range&&"string"===typeof s.text&&o.push(s)}}catch(u){a.e(u)}finally{a.f()}return"number"===typeof r&&e.hasModel()&&e.getModel().pushEOL(r),o}},{key:"_isFullModelReplaceEdit",value:function(e,t){if(!e.hasModel())return!1;var n=e.getModel(),i=n.validateRange(t.range);return n.getFullModelRange().equalsRange(i)}},{key:"execute",value:function(t,n,i){i&&t.pushUndoStop();var r=e._handleEolEdits(t,n);1===r.length&&e._isFullModelReplaceEdit(t,r[0])?t.executeEdits("formatEditsCommand",r.map((function(e){return a.h.replace(s.e.lift(e.range),e.text)}))):t.executeEdits("formatEditsCommand",r.map((function(e){return a.h.replaceMove(s.e.lift(e.range),e.text)}))),i&&t.pushUndoStop()}}]),e}()},14717:function(e,t,n){"use strict";n.r(t),n.d(t,{CancellationTokenSource:function(){return Uu},Emitter:function(){return Ku},KeyCode:function(){return qu},KeyMod:function(){return Gu},MarkerSeverity:function(){return el},MarkerTag:function(){return tl},Position:function(){return $u},Range:function(){return Qu},Selection:function(){return Xu},SelectionDirection:function(){return Ju},Token:function(){return il},Uri:function(){return nl},editor:function(){return rl},languages:function(){return ol}});var i,r,o,a,s,u,l,c,d,h,f,p,g,v,m,_,y,b,w,C,k,S,x,L,E,N,D,M,T,O,I,A,R,P,Z=n(76556),F=n(15671),j=n(43144),H=n(66526),B=n(11732),z=n(38792),W=n(67775),V=n(67297),Y=n(67033),U=n(74964),K=n(98154);!function(e){e[e.Unknown=0]="Unknown",e[e.Disabled=1]="Disabled",e[e.Enabled=2]="Enabled"}(i||(i={})),function(e){e[e.KeepWhitespace=1]="KeepWhitespace",e[e.InsertAsSnippet=4]="InsertAsSnippet"}(r||(r={})),function(e){e[e.Method=0]="Method",e[e.Function=1]="Function",e[e.Constructor=2]="Constructor",e[e.Field=3]="Field",e[e.Variable=4]="Variable",e[e.Class=5]="Class",e[e.Struct=6]="Struct",e[e.Interface=7]="Interface",e[e.Module=8]="Module",e[e.Property=9]="Property",e[e.Event=10]="Event",e[e.Operator=11]="Operator",e[e.Unit=12]="Unit",e[e.Value=13]="Value",e[e.Constant=14]="Constant",e[e.Enum=15]="Enum",e[e.EnumMember=16]="EnumMember",e[e.Keyword=17]="Keyword",e[e.Text=18]="Text",e[e.Color=19]="Color",e[e.File=20]="File",e[e.Reference=21]="Reference",e[e.Customcolor=22]="Customcolor",e[e.Folder=23]="Folder",e[e.TypeParameter=24]="TypeParameter",e[e.User=25]="User",e[e.Issue=26]="Issue",e[e.Snippet=27]="Snippet"}(o||(o={})),function(e){e[e.Deprecated=1]="Deprecated"}(a||(a={})),function(e){e[e.Invoke=0]="Invoke",e[e.TriggerCharacter=1]="TriggerCharacter",e[e.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"}(s||(s={})),function(e){e[e.EXACT=0]="EXACT",e[e.ABOVE=1]="ABOVE",e[e.BELOW=2]="BELOW"}(u||(u={})),function(e){e[e.NotSet=0]="NotSet",e[e.ContentFlush=1]="ContentFlush",e[e.RecoverFromMarkers=2]="RecoverFromMarkers",e[e.Explicit=3]="Explicit",e[e.Paste=4]="Paste",e[e.Undo=5]="Undo",e[e.Redo=6]="Redo"}(l||(l={})),function(e){e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(c||(c={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(d||(d={})),function(e){e[e.None=0]="None",e[e.Keep=1]="Keep",e[e.Brackets=2]="Brackets",e[e.Advanced=3]="Advanced",e[e.Full=4]="Full"}(h||(h={})),function(e){e[e.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",e[e.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",e[e.accessibilitySupport=2]="accessibilitySupport",e[e.accessibilityPageSize=3]="accessibilityPageSize",e[e.ariaLabel=4]="ariaLabel",e[e.autoClosingBrackets=5]="autoClosingBrackets",e[e.autoClosingDelete=6]="autoClosingDelete",e[e.autoClosingOvertype=7]="autoClosingOvertype",e[e.autoClosingQuotes=8]="autoClosingQuotes",e[e.autoIndent=9]="autoIndent",e[e.automaticLayout=10]="automaticLayout",e[e.autoSurround=11]="autoSurround",e[e.codeLens=12]="codeLens",e[e.codeLensFontFamily=13]="codeLensFontFamily",e[e.codeLensFontSize=14]="codeLensFontSize",e[e.colorDecorators=15]="colorDecorators",e[e.columnSelection=16]="columnSelection",e[e.comments=17]="comments",e[e.contextmenu=18]="contextmenu",e[e.copyWithSyntaxHighlighting=19]="copyWithSyntaxHighlighting",e[e.cursorBlinking=20]="cursorBlinking",e[e.cursorSmoothCaretAnimation=21]="cursorSmoothCaretAnimation",e[e.cursorStyle=22]="cursorStyle",e[e.cursorSurroundingLines=23]="cursorSurroundingLines",e[e.cursorSurroundingLinesStyle=24]="cursorSurroundingLinesStyle",e[e.cursorWidth=25]="cursorWidth",e[e.disableLayerHinting=26]="disableLayerHinting",e[e.disableMonospaceOptimizations=27]="disableMonospaceOptimizations",e[e.domReadOnly=28]="domReadOnly",e[e.dragAndDrop=29]="dragAndDrop",e[e.emptySelectionClipboard=30]="emptySelectionClipboard",e[e.extraEditorClassName=31]="extraEditorClassName",e[e.fastScrollSensitivity=32]="fastScrollSensitivity",e[e.find=33]="find",e[e.fixedOverflowWidgets=34]="fixedOverflowWidgets",e[e.folding=35]="folding",e[e.foldingStrategy=36]="foldingStrategy",e[e.foldingHighlight=37]="foldingHighlight",e[e.unfoldOnClickAfterEndOfLine=38]="unfoldOnClickAfterEndOfLine",e[e.fontFamily=39]="fontFamily",e[e.fontInfo=40]="fontInfo",e[e.fontLigatures=41]="fontLigatures",e[e.fontSize=42]="fontSize",e[e.fontWeight=43]="fontWeight",e[e.formatOnPaste=44]="formatOnPaste",e[e.formatOnType=45]="formatOnType",e[e.glyphMargin=46]="glyphMargin",e[e.gotoLocation=47]="gotoLocation",e[e.hideCursorInOverviewRuler=48]="hideCursorInOverviewRuler",e[e.highlightActiveIndentGuide=49]="highlightActiveIndentGuide",e[e.hover=50]="hover",e[e.inDiffEditor=51]="inDiffEditor",e[e.letterSpacing=52]="letterSpacing",e[e.lightbulb=53]="lightbulb",e[e.lineDecorationsWidth=54]="lineDecorationsWidth",e[e.lineHeight=55]="lineHeight",e[e.lineNumbers=56]="lineNumbers",e[e.lineNumbersMinChars=57]="lineNumbersMinChars",e[e.linkedEditing=58]="linkedEditing",e[e.links=59]="links",e[e.matchBrackets=60]="matchBrackets",e[e.minimap=61]="minimap",e[e.mouseStyle=62]="mouseStyle",e[e.mouseWheelScrollSensitivity=63]="mouseWheelScrollSensitivity",e[e.mouseWheelZoom=64]="mouseWheelZoom",e[e.multiCursorMergeOverlapping=65]="multiCursorMergeOverlapping",e[e.multiCursorModifier=66]="multiCursorModifier",e[e.multiCursorPaste=67]="multiCursorPaste",e[e.occurrencesHighlight=68]="occurrencesHighlight",e[e.overviewRulerBorder=69]="overviewRulerBorder",e[e.overviewRulerLanes=70]="overviewRulerLanes",e[e.padding=71]="padding",e[e.parameterHints=72]="parameterHints",e[e.peekWidgetDefaultFocus=73]="peekWidgetDefaultFocus",e[e.definitionLinkOpensInPeek=74]="definitionLinkOpensInPeek",e[e.quickSuggestions=75]="quickSuggestions",e[e.quickSuggestionsDelay=76]="quickSuggestionsDelay",e[e.readOnly=77]="readOnly",e[e.renameOnType=78]="renameOnType",e[e.renderControlCharacters=79]="renderControlCharacters",e[e.renderIndentGuides=80]="renderIndentGuides",e[e.renderFinalNewline=81]="renderFinalNewline",e[e.renderLineHighlight=82]="renderLineHighlight",e[e.renderLineHighlightOnlyWhenFocus=83]="renderLineHighlightOnlyWhenFocus",e[e.renderValidationDecorations=84]="renderValidationDecorations",e[e.renderWhitespace=85]="renderWhitespace",e[e.revealHorizontalRightPadding=86]="revealHorizontalRightPadding",e[e.roundedSelection=87]="roundedSelection",e[e.rulers=88]="rulers",e[e.scrollbar=89]="scrollbar",e[e.scrollBeyondLastColumn=90]="scrollBeyondLastColumn",e[e.scrollBeyondLastLine=91]="scrollBeyondLastLine",e[e.scrollPredominantAxis=92]="scrollPredominantAxis",e[e.selectionClipboard=93]="selectionClipboard",e[e.selectionHighlight=94]="selectionHighlight",e[e.selectOnLineNumbers=95]="selectOnLineNumbers",e[e.showFoldingControls=96]="showFoldingControls",e[e.showUnused=97]="showUnused",e[e.snippetSuggestions=98]="snippetSuggestions",e[e.smartSelect=99]="smartSelect",e[e.smoothScrolling=100]="smoothScrolling",e[e.stickyTabStops=101]="stickyTabStops",e[e.stopRenderingLineAfter=102]="stopRenderingLineAfter",e[e.suggest=103]="suggest",e[e.suggestFontSize=104]="suggestFontSize",e[e.suggestLineHeight=105]="suggestLineHeight",e[e.suggestOnTriggerCharacters=106]="suggestOnTriggerCharacters",e[e.suggestSelection=107]="suggestSelection",e[e.tabCompletion=108]="tabCompletion",e[e.tabIndex=109]="tabIndex",e[e.unusualLineTerminators=110]="unusualLineTerminators",e[e.useShadowDOM=111]="useShadowDOM",e[e.useTabStops=112]="useTabStops",e[e.wordSeparators=113]="wordSeparators",e[e.wordWrap=114]="wordWrap",e[e.wordWrapBreakAfterCharacters=115]="wordWrapBreakAfterCharacters",e[e.wordWrapBreakBeforeCharacters=116]="wordWrapBreakBeforeCharacters",e[e.wordWrapColumn=117]="wordWrapColumn",e[e.wordWrapOverride1=118]="wordWrapOverride1",e[e.wordWrapOverride2=119]="wordWrapOverride2",e[e.wrappingIndent=120]="wrappingIndent",e[e.wrappingStrategy=121]="wrappingStrategy",e[e.showDeprecated=122]="showDeprecated",e[e.inlineHints=123]="inlineHints",e[e.editorClassName=124]="editorClassName",e[e.pixelRatio=125]="pixelRatio",e[e.tabFocusMode=126]="tabFocusMode",e[e.layoutInfo=127]="layoutInfo",e[e.wrappingInfo=128]="wrappingInfo"}(f||(f={})),function(e){e[e.TextDefined=0]="TextDefined",e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(p||(p={})),function(e){e[e.LF=0]="LF",e[e.CRLF=1]="CRLF"}(g||(g={})),function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(v||(v={})),function(e){e[e.Other=0]="Other",e[e.Type=1]="Type",e[e.Parameter=2]="Parameter"}(m||(m={})),function(e){e[e.DependsOnKbLayout=-1]="DependsOnKbLayout",e[e.Unknown=0]="Unknown",e[e.Backspace=1]="Backspace",e[e.Tab=2]="Tab",e[e.Enter=3]="Enter",e[e.Shift=4]="Shift",e[e.Ctrl=5]="Ctrl",e[e.Alt=6]="Alt",e[e.PauseBreak=7]="PauseBreak",e[e.CapsLock=8]="CapsLock",e[e.Escape=9]="Escape",e[e.Space=10]="Space",e[e.PageUp=11]="PageUp",e[e.PageDown=12]="PageDown",e[e.End=13]="End",e[e.Home=14]="Home",e[e.LeftArrow=15]="LeftArrow",e[e.UpArrow=16]="UpArrow",e[e.RightArrow=17]="RightArrow",e[e.DownArrow=18]="DownArrow",e[e.Insert=19]="Insert",e[e.Delete=20]="Delete",e[e.KEY_0=21]="KEY_0",e[e.KEY_1=22]="KEY_1",e[e.KEY_2=23]="KEY_2",e[e.KEY_3=24]="KEY_3",e[e.KEY_4=25]="KEY_4",e[e.KEY_5=26]="KEY_5",e[e.KEY_6=27]="KEY_6",e[e.KEY_7=28]="KEY_7",e[e.KEY_8=29]="KEY_8",e[e.KEY_9=30]="KEY_9",e[e.KEY_A=31]="KEY_A",e[e.KEY_B=32]="KEY_B",e[e.KEY_C=33]="KEY_C",e[e.KEY_D=34]="KEY_D",e[e.KEY_E=35]="KEY_E",e[e.KEY_F=36]="KEY_F",e[e.KEY_G=37]="KEY_G",e[e.KEY_H=38]="KEY_H",e[e.KEY_I=39]="KEY_I",e[e.KEY_J=40]="KEY_J",e[e.KEY_K=41]="KEY_K",e[e.KEY_L=42]="KEY_L",e[e.KEY_M=43]="KEY_M",e[e.KEY_N=44]="KEY_N",e[e.KEY_O=45]="KEY_O",e[e.KEY_P=46]="KEY_P",e[e.KEY_Q=47]="KEY_Q",e[e.KEY_R=48]="KEY_R",e[e.KEY_S=49]="KEY_S",e[e.KEY_T=50]="KEY_T",e[e.KEY_U=51]="KEY_U",e[e.KEY_V=52]="KEY_V",e[e.KEY_W=53]="KEY_W",e[e.KEY_X=54]="KEY_X",e[e.KEY_Y=55]="KEY_Y",e[e.KEY_Z=56]="KEY_Z",e[e.Meta=57]="Meta",e[e.ContextMenu=58]="ContextMenu",e[e.F1=59]="F1",e[e.F2=60]="F2",e[e.F3=61]="F3",e[e.F4=62]="F4",e[e.F5=63]="F5",e[e.F6=64]="F6",e[e.F7=65]="F7",e[e.F8=66]="F8",e[e.F9=67]="F9",e[e.F10=68]="F10",e[e.F11=69]="F11",e[e.F12=70]="F12",e[e.F13=71]="F13",e[e.F14=72]="F14",e[e.F15=73]="F15",e[e.F16=74]="F16",e[e.F17=75]="F17",e[e.F18=76]="F18",e[e.F19=77]="F19",e[e.NumLock=78]="NumLock",e[e.ScrollLock=79]="ScrollLock",e[e.US_SEMICOLON=80]="US_SEMICOLON",e[e.US_EQUAL=81]="US_EQUAL",e[e.US_COMMA=82]="US_COMMA",e[e.US_MINUS=83]="US_MINUS",e[e.US_DOT=84]="US_DOT",e[e.US_SLASH=85]="US_SLASH",e[e.US_BACKTICK=86]="US_BACKTICK",e[e.US_OPEN_SQUARE_BRACKET=87]="US_OPEN_SQUARE_BRACKET",e[e.US_BACKSLASH=88]="US_BACKSLASH",e[e.US_CLOSE_SQUARE_BRACKET=89]="US_CLOSE_SQUARE_BRACKET",e[e.US_QUOTE=90]="US_QUOTE",e[e.OEM_8=91]="OEM_8",e[e.OEM_102=92]="OEM_102",e[e.NUMPAD_0=93]="NUMPAD_0",e[e.NUMPAD_1=94]="NUMPAD_1",e[e.NUMPAD_2=95]="NUMPAD_2",e[e.NUMPAD_3=96]="NUMPAD_3",e[e.NUMPAD_4=97]="NUMPAD_4",e[e.NUMPAD_5=98]="NUMPAD_5",e[e.NUMPAD_6=99]="NUMPAD_6",e[e.NUMPAD_7=100]="NUMPAD_7",e[e.NUMPAD_8=101]="NUMPAD_8",e[e.NUMPAD_9=102]="NUMPAD_9",e[e.NUMPAD_MULTIPLY=103]="NUMPAD_MULTIPLY",e[e.NUMPAD_ADD=104]="NUMPAD_ADD",e[e.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT=106]="NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL=107]="NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE=108]="NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",e[e.ABNT_C1=110]="ABNT_C1",e[e.ABNT_C2=111]="ABNT_C2",e[e.MAX_VALUE=112]="MAX_VALUE"}(_||(_={})),function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(y||(y={})),function(e){e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated"}(b||(b={})),function(e){e[e.Inline=1]="Inline",e[e.Gutter=2]="Gutter"}(w||(w={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TEXTAREA=1]="TEXTAREA",e[e.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",e[e.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",e[e.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",e[e.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",e[e.CONTENT_TEXT=6]="CONTENT_TEXT",e[e.CONTENT_EMPTY=7]="CONTENT_EMPTY",e[e.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",e[e.CONTENT_WIDGET=9]="CONTENT_WIDGET",e[e.OVERVIEW_RULER=10]="OVERVIEW_RULER",e[e.SCROLLBAR=11]="SCROLLBAR",e[e.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",e[e.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"}(C||(C={})),function(e){e[e.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",e[e.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",e[e.TOP_CENTER=2]="TOP_CENTER"}(k||(k={})),function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(S||(S={})),function(e){e[e.Off=0]="Off",e[e.On=1]="On",e[e.Relative=2]="Relative",e[e.Interval=3]="Interval",e[e.Custom=4]="Custom"}(x||(x={})),function(e){e[e.None=0]="None",e[e.Text=1]="Text",e[e.Blocks=2]="Blocks"}(L||(L={})),function(e){e[e.Smooth=0]="Smooth",e[e.Immediate=1]="Immediate"}(E||(E={})),function(e){e[e.Auto=1]="Auto",e[e.Hidden=2]="Hidden",e[e.Visible=3]="Visible"}(N||(N={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(D||(D={})),function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(M||(M={})),function(e){e[e.File=0]="File",e[e.Module=1]="Module",e[e.Namespace=2]="Namespace",e[e.Package=3]="Package",e[e.Class=4]="Class",e[e.Method=5]="Method",e[e.Property=6]="Property",e[e.Field=7]="Field",e[e.Constructor=8]="Constructor",e[e.Enum=9]="Enum",e[e.Interface=10]="Interface",e[e.Function=11]="Function",e[e.Variable=12]="Variable",e[e.Constant=13]="Constant",e[e.String=14]="String",e[e.Number=15]="Number",e[e.Boolean=16]="Boolean",e[e.Array=17]="Array",e[e.Object=18]="Object",e[e.Key=19]="Key",e[e.Null=20]="Null",e[e.EnumMember=21]="EnumMember",e[e.Struct=22]="Struct",e[e.Event=23]="Event",e[e.Operator=24]="Operator",e[e.TypeParameter=25]="TypeParameter"}(T||(T={})),function(e){e[e.Deprecated=1]="Deprecated"}(O||(O={})),function(e){e[e.Hidden=0]="Hidden",e[e.Blink=1]="Blink",e[e.Smooth=2]="Smooth",e[e.Phase=3]="Phase",e[e.Expand=4]="Expand",e[e.Solid=5]="Solid"}(I||(I={})),function(e){e[e.Line=1]="Line",e[e.Block=2]="Block",e[e.Underline=3]="Underline",e[e.LineThin=4]="LineThin",e[e.BlockOutline=5]="BlockOutline",e[e.UnderlineThin=6]="UnderlineThin"}(A||(A={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",e[e.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",e[e.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",e[e.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"}(R||(R={})),function(e){e[e.None=0]="None",e[e.Same=1]="Same",e[e.Indent=2]="Indent",e[e.DeepIndent=3]="DeepIndent"}(P||(P={}));var q=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,null,[{key:"chord",value:function(e,t){return(0,z.gx)(e,t)}}]),e}();function G(){return{editor:void 0,languages:void 0,CancellationTokenSource:H.A,Emitter:B.Q5,KeyCode:_,KeyMod:q,Position:V.L,Range:Y.e,Selection:U.Y,SelectionDirection:D,MarkerSeverity:y,MarkerTag:b,Uri:W.o,Token:K.WU}}q.CtrlCmd=2048,q.Shift=1024,q.Alt=512,q.WinCtrl=256;var $,Q=n(8295),X=n(37762),J=n(93433),ee=n(87757),te=n.n(ee),ne=n(84540),ie=n(28214),re=n(15022),oe=n(83312),ae=n(55585),se=n(51334),ue=n(72611);!function(e){e[e.API=0]="API",e[e.USER=1]="USER"}($||($={}));var le=n(9696),ce=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},de=function(e,t){return function(n,i){t(n,i,e)}},he=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},fe=function(){function e(t){(0,F.Z)(this,e),this._commandService=t}return(0,j.Z)(e,[{key:"open",value:function(e,t){return he(this,void 0,void 0,te().mark((function n(){var i,r;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if((0,le.xn)(e,ae.lg.command)){n.next=2;break}return n.abrupt("return",!1);case 2:if(null===t||void 0===t?void 0:t.allowCommands){n.next=4;break}return n.abrupt("return",!0);case 4:"string"===typeof e&&(e=W.o.parse(e)),r=[];try{r=(0,oe.Q)(decodeURIComponent(e.query))}catch(Ze){try{r=(0,oe.Q)(e.query)}catch(o){}}return Array.isArray(r)||(r=[r]),n.next=10,(i=this._commandService).executeCommand.apply(i,[e.path].concat((0,J.Z)(r)));case 10:return n.abrupt("return",!0);case 11:case"end":return n.stop()}}),n,this)})))}}]),e}();fe=ce([de(0,ue.H)],fe);var pe=function(){function e(t){(0,F.Z)(this,e),this._editorService=t}return(0,j.Z)(e,[{key:"open",value:function(e,t){return he(this,void 0,void 0,te().mark((function n(){var i,r;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return"string"===typeof e&&(e=W.o.parse(e)),i=void 0,(r=/^L?(\d+)(?:,(\d+))?/.exec(e.fragment))&&(i={startLineNumber:parseInt(r[1]),startColumn:r[2]?parseInt(r[2]):1},e=e.with({fragment:""})),e.scheme===ae.lg.file&&(e=(0,se.AH)(e)),n.next=7,this._editorService.openCodeEditor({resource:e,options:Object.assign({selection:i,context:(null===t||void 0===t?void 0:t.fromUserGesture)?$.USER:$.API},null===t||void 0===t?void 0:t.editorOptions)},this._editorService.getFocusedCodeEditor(),null===t||void 0===t?void 0:t.openToSide);case 7:return n.abrupt("return",!0);case 8:case"end":return n.stop()}}),n,this)})))}}]),e}();pe=ce([de(0,Q.$)],pe);var ge=function(){function e(t,n){var i=this;(0,F.Z)(this,e),this._openers=new ie.S,this._validators=new ie.S,this._resolvers=new ie.S,this._resolvedUriTargets=new re.Y9((function(e){return e.with({path:null,fragment:null,query:null}).toString()})),this._externalOpeners=new ie.S,this._defaultExternalOpener={openExternal:function(e){return he(i,void 0,void 0,te().mark((function t(){return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(0,le.xn)(e,ae.lg.http)||(0,le.xn)(e,ae.lg.https)?ne.windowOpenNoOpener(e):window.location.href=e,t.abrupt("return",!0);case 2:case"end":return t.stop()}}),t)})))}},this._openers.push({open:function(e,t){return he(i,void 0,void 0,te().mark((function n(){return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!((null===t||void 0===t?void 0:t.openExternal)||(0,le.xn)(e,ae.lg.mailto)||(0,le.xn)(e,ae.lg.http)||(0,le.xn)(e,ae.lg.https))){n.next=4;break}return n.next=3,this._doOpenExternal(e,t);case 3:return n.abrupt("return",!0);case 4:return n.abrupt("return",!1);case 5:case"end":return n.stop()}}),n,this)})))}}),this._openers.push(new fe(n)),this._openers.push(new pe(t))}return(0,j.Z)(e,[{key:"registerOpener",value:function(e){return{dispose:this._openers.unshift(e)}}},{key:"registerValidator",value:function(e){return{dispose:this._validators.push(e)}}},{key:"registerExternalUriResolver",value:function(e){return{dispose:this._resolvers.push(e)}}},{key:"setDefaultExternalOpener",value:function(e){this._defaultExternalOpener=e}},{key:"registerExternalOpener",value:function(e){return{dispose:this._externalOpeners.push(e)}}},{key:"open",value:function(e,t){var n;return he(this,void 0,void 0,te().mark((function i(){var r,o,a,s,u,l,c,d;return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r="string"===typeof e?W.o.parse(e):e,o=null!==(n=this._resolvedUriTargets.get(r))&&void 0!==n?n:e,a=(0,X.Z)(this._validators),i.prev=3,a.s();case 5:if((s=a.n()).done){i.next=13;break}return u=s.value,i.next=9,u.shouldOpen(o);case 9:if(i.sent){i.next=11;break}return i.abrupt("return",!1);case 11:i.next=5;break;case 13:i.next=18;break;case 15:i.prev=15,i.t0=i.catch(3),a.e(i.t0);case 18:return i.prev=18,a.f(),i.finish(18);case 21:l=(0,X.Z)(this._openers),i.prev=22,l.s();case 24:if((c=l.n()).done){i.next=33;break}return d=c.value,i.next=28,d.open(e,t);case 28:if(!i.sent){i.next=31;break}return i.abrupt("return",!0);case 31:i.next=24;break;case 33:i.next=38;break;case 35:i.prev=35,i.t1=i.catch(22),l.e(i.t1);case 38:return i.prev=38,l.f(),i.finish(38);case 41:return i.abrupt("return",!1);case 42:case"end":return i.stop()}}),i,this,[[3,15,18,21],[22,35,38,41]])})))}},{key:"resolveExternalUri",value:function(e,t){return he(this,void 0,void 0,te().mark((function n(){var i,r,o,a;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:i=(0,X.Z)(this._resolvers),n.prev=1,i.s();case 3:if((r=i.n()).done){n.next=13;break}return o=r.value,n.next=7,o.resolveExternalUri(e,t);case 7:if(!(a=n.sent)){n.next=11;break}return this._resolvedUriTargets.has(a.resolved)||this._resolvedUriTargets.set(a.resolved,e),n.abrupt("return",a);case 11:n.next=3;break;case 13:n.next=18;break;case 15:n.prev=15,n.t0=n.catch(1),i.e(n.t0);case 18:return n.prev=18,i.f(),n.finish(18);case 21:return n.abrupt("return",{resolved:e,dispose:function(){}});case 22:case"end":return n.stop()}}),n,this,[[1,15,18,21]])})))}},{key:"_doOpenExternal",value:function(e,t){return he(this,void 0,void 0,te().mark((function n(){var i,r,o,a,s,u,l,c;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i="string"===typeof e?W.o.parse(e):e,n.next=3,this.resolveExternalUri(i,t);case 3:if(r=n.sent,o=r.resolved,a="string"===typeof e&&i.toString()===o.toString()?e:encodeURI(o.toString(!0)),!(null===t||void 0===t?void 0:t.allowContributedOpeners)){n.next=28;break}s="string"===typeof(null===t||void 0===t?void 0:t.allowContributedOpeners)?null===t||void 0===t?void 0:t.allowContributedOpeners:void 0,u=(0,X.Z)(this._externalOpeners),n.prev=9,u.s();case 11:if((l=u.n()).done){n.next=20;break}return c=l.value,n.next=15,c.openExternal(a,{sourceUri:i,preferredOpenerId:s},H.T.None);case 15:if(!n.sent){n.next=18;break}return n.abrupt("return",!0);case 18:n.next=11;break;case 20:n.next=25;break;case 22:n.prev=22,n.t0=n.catch(9),u.e(n.t0);case 25:return n.prev=25,u.f(),n.finish(25);case 28:return n.abrupt("return",this._defaultExternalOpener.openExternal(a,{sourceUri:i},H.T.None));case 29:case"end":return n.stop()}}),n,this,[[9,22,25,28]])})))}},{key:"dispose",value:function(){this._validators.clear()}}]),e}();ge=ce([de(0,Q.$),de(1,ue.H)],ge);var ve=n(59180),me=n(28702),_e=n(30062),ye=n(46502),be=n(99404),we=n(59401),Ce=n(333),ke=n(49829),Se=n(44148),xe=n(60136),Le=n(29388),Ee=n(11752),Ne=n(61120),De=n(27997),Me=n(81626),Te=n(8729),Oe=n(30487),Ie=n(25941),Ae="$initialize",Re=!1;function Pe(e){Oe.$L&&(Re||(Re=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(e.message))}var Ze,Fe=function(){function e(t){(0,F.Z)(this,e),this._workerId=-1,this._handler=t,this._lastSentReq=0,this._pendingReplies=Object.create(null)}return(0,j.Z)(e,[{key:"setWorkerId",value:function(e){this._workerId=e}},{key:"sendMessage",value:function(e,t){var n=this,i=String(++this._lastSentReq);return new Promise((function(r,o){n._pendingReplies[i]={resolve:r,reject:o},n._send({vsWorker:n._workerId,req:i,method:e,args:t})}))}},{key:"handleMessage",value:function(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))}},{key:"_handleMessage",value:function(e){var t=this;if(e.seq){var n=e;if(!this._pendingReplies[n.seq])return void console.warn("Got reply to unknown seq");var i=this._pendingReplies[n.seq];if(delete this._pendingReplies[n.seq],n.err){var r=n.err;return n.err.$isError&&((r=new Error).name=n.err.name,r.message=n.err.message,r.stack=n.err.stack),void i.reject(r)}i.resolve(n.res)}else{var o=e,a=o.req;this._handler.handleMessage(o.method,o.args).then((function(e){t._send({vsWorker:t._workerId,seq:a,res:e,err:void 0})}),(function(e){e.detail instanceof Error&&(e.detail=(0,Te.ri)(e.detail)),t._send({vsWorker:t._workerId,seq:a,res:void 0,err:(0,Te.ri)(e)})}))}}},{key:"_send",value:function(e){var t=[];if(e.req)for(var n=e,i=0;i<n.args.length;i++)n.args[i]instanceof ArrayBuffer&&t.push(n.args[i]);else{var r=e;r.res instanceof ArrayBuffer&&t.push(r.res)}this._handler.sendMessage(e,t)}}]),e}(),je=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;(0,F.Z)(this,n),o=t.call(this);var a=null;o._worker=o._register(e.create("vs/base/common/worker/simpleWorker",(function(e){o._protocol.handleMessage(e)}),(function(e){a&&a(e)}))),o._protocol=new Fe({sendMessage:function(e,t){o._worker.postMessage(e,t)},handleMessage:function(e,t){if("function"!==typeof r[e])return Promise.reject(new Error("Missing method "+e+" on main thread host."));try{return Promise.resolve(r[e].apply(r,t))}catch(n){return Promise.reject(n)}}}),o._protocol.setWorkerId(o._worker.getId());var s=null;"undefined"!==typeof self.require&&"function"===typeof self.require.getConfig?s=self.require.getConfig():"undefined"!==typeof self.requirejs&&(s=self.requirejs.s.contexts._.config);var u=Ie.$E(r);o._onModuleLoaded=o._protocol.sendMessage(Ae,[o._worker.getId(),JSON.parse(JSON.stringify(s)),i,u]);var l=function(e,t){return o._request(e,t)};return o._lazyProxy=new Promise((function(e,t){a=t,o._onModuleLoaded.then((function(t){e(Ie.IU(t,l))}),(function(e){t(e),o._onError("Worker failed to load "+i,e)}))})),o}return(0,j.Z)(n,[{key:"getProxyObject",value:function(){return this._lazyProxy}},{key:"_request",value:function(e,t){var n=this;return new Promise((function(i,r){n._onModuleLoaded.then((function(){n._protocol.sendMessage(e,t).then(i,r)}),r)}))}},{key:"_onError",value:function(e,t){console.error(e),console.info(t)}}]),n}(Me.JT);var He=null===(Ze=window.trustedTypes)||void 0===Ze?void 0:Ze.createPolicy("defaultWorkerFactory",{createScriptURL:function(e){return e}});var Be=function(){function e(t,n,i,r,o){(0,F.Z)(this,e),this.id=n;var a=function(e,t){if(Oe.li.MonacoEnvironment){if("function"===typeof Oe.li.MonacoEnvironment.getWorker)return Oe.li.MonacoEnvironment.getWorker(e,t);if("function"===typeof Oe.li.MonacoEnvironment.getWorkerUrl){var n=Oe.li.MonacoEnvironment.getWorkerUrl(e,t);return new Worker(He?He.createScriptURL(n):n,{name:t})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}("workerMain.js",i);"function"===typeof a.then?this.worker=a:this.worker=Promise.resolve(a),this.postMessage(t,[]),this.worker.then((function(e){e.onmessage=function(e){r(e.data)},e.onmessageerror=o,"function"===typeof e.addEventListener&&e.addEventListener("error",o)}))}return(0,j.Z)(e,[{key:"getId",value:function(){return this.id}},{key:"postMessage",value:function(e,t){this.worker&&this.worker.then((function(n){return n.postMessage(e,t)}))}},{key:"dispose",value:function(){this.worker&&this.worker.then((function(e){return e.terminate()})),this.worker=null}}]),e}(),ze=function(){function e(t){(0,F.Z)(this,e),this._label=t,this._webWorkerFailedBeforeError=!1}return(0,j.Z)(e,[{key:"create",value:function(t,n,i){var r=this,o=++e.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new Be(t,o,this._label||"anonymous"+o,n,(function(e){Pe(e),r._webWorkerFailedBeforeError=e,i(e)}))}}]),e}();ze.LAST_WORKER_ID=0;var We=n(65262),Ve=n(4942),Ye=n(95676),Ue=n(51747),Ke=3;function qe(e,t,n,i){return new Ye.Hs(e,t,n).ComputeDiff(i)}var Ge=function(){function e(t){(0,F.Z)(this,e);for(var n=[],i=[],r=0,o=t.length;r<o;r++)n[r]=et(t[r],1),i[r]=tt(t[r],1);this.lines=t,this._startColumns=n,this._endColumns=i}return(0,j.Z)(e,[{key:"getElements",value:function(){for(var e=[],t=0,n=this.lines.length;t<n;t++)e[t]=this.lines[t].substring(this._startColumns[t]-1,this._endColumns[t]-1);return e}},{key:"getStartLineNumber",value:function(e){return e+1}},{key:"getEndLineNumber",value:function(e){return e+1}},{key:"createCharSequence",value:function(e,t,n){for(var i=[],r=[],o=[],a=0,s=t;s<=n;s++)for(var u=this.lines[s],l=e?this._startColumns[s]:1,c=e?this._endColumns[s]:u.length+1,d=l;d<c;d++)i[a]=u.charCodeAt(d-1),r[a]=s+1,o[a]=d,a++;return new $e(i,r,o)}}]),e}(),$e=function(){function e(t,n,i){(0,F.Z)(this,e),this._charCodes=t,this._lineNumbers=n,this._columns=i}return(0,j.Z)(e,[{key:"getElements",value:function(){return this._charCodes}},{key:"getStartLineNumber",value:function(e){return this._lineNumbers[e]}},{key:"getStartColumn",value:function(e){return this._columns[e]}},{key:"getEndLineNumber",value:function(e){return this._lineNumbers[e]}},{key:"getEndColumn",value:function(e){return this._columns[e]+1}}]),e}(),Qe=function(){function e(t,n,i,r,o,a,s,u){(0,F.Z)(this,e),this.originalStartLineNumber=t,this.originalStartColumn=n,this.originalEndLineNumber=i,this.originalEndColumn=r,this.modifiedStartLineNumber=o,this.modifiedStartColumn=a,this.modifiedEndLineNumber=s,this.modifiedEndColumn=u}return(0,j.Z)(e,null,[{key:"createFromDiffChange",value:function(t,n,i){var r,o,a,s,u,l,c,d;return 0===t.originalLength?(r=0,o=0,a=0,s=0):(r=n.getStartLineNumber(t.originalStart),o=n.getStartColumn(t.originalStart),a=n.getEndLineNumber(t.originalStart+t.originalLength-1),s=n.getEndColumn(t.originalStart+t.originalLength-1)),0===t.modifiedLength?(u=0,l=0,c=0,d=0):(u=i.getStartLineNumber(t.modifiedStart),l=i.getStartColumn(t.modifiedStart),c=i.getEndLineNumber(t.modifiedStart+t.modifiedLength-1),d=i.getEndColumn(t.modifiedStart+t.modifiedLength-1)),new e(r,o,a,s,u,l,c,d)}}]),e}();var Xe=function(){function e(t,n,i,r,o){(0,F.Z)(this,e),this.originalStartLineNumber=t,this.originalEndLineNumber=n,this.modifiedStartLineNumber=i,this.modifiedEndLineNumber=r,this.charChanges=o}return(0,j.Z)(e,null,[{key:"createFromDiffResult",value:function(t,n,i,r,o,a,s){var u,l,c,d,h=void 0;if(0===n.originalLength?(u=i.getStartLineNumber(n.originalStart)-1,l=0):(u=i.getStartLineNumber(n.originalStart),l=i.getEndLineNumber(n.originalStart+n.originalLength-1)),0===n.modifiedLength?(c=r.getStartLineNumber(n.modifiedStart)-1,d=0):(c=r.getStartLineNumber(n.modifiedStart),d=r.getEndLineNumber(n.modifiedStart+n.modifiedLength-1)),a&&n.originalLength>0&&n.originalLength<20&&n.modifiedLength>0&&n.modifiedLength<20&&o()){var f=i.createCharSequence(t,n.originalStart,n.originalStart+n.originalLength-1),p=r.createCharSequence(t,n.modifiedStart,n.modifiedStart+n.modifiedLength-1),g=qe(f,p,o,!0).changes;s&&(g=function(e){if(e.length<=1)return e;for(var t=[e[0]],n=t[0],i=1,r=e.length;i<r;i++){var o=e[i],a=o.originalStart-(n.originalStart+n.originalLength),s=o.modifiedStart-(n.modifiedStart+n.modifiedLength);Math.min(a,s)<Ke?(n.originalLength=o.originalStart+o.originalLength-n.originalStart,n.modifiedLength=o.modifiedStart+o.modifiedLength-n.modifiedStart):(t.push(o),n=o)}return t}(g)),h=[];for(var v=0,m=g.length;v<m;v++)h.push(Qe.createFromDiffChange(g[v],f,p))}return new e(u,l,c,d,h)}}]),e}(),Je=function(){function e(t,n,i){(0,F.Z)(this,e),this.shouldComputeCharChanges=i.shouldComputeCharChanges,this.shouldPostProcessCharChanges=i.shouldPostProcessCharChanges,this.shouldIgnoreTrimWhitespace=i.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=i.shouldMakePrettyDiff,this.originalLines=t,this.modifiedLines=n,this.original=new Ge(t),this.modified=new Ge(n),this.continueLineDiff=nt(i.maxComputationTime),this.continueCharDiff=nt(0===i.maxComputationTime?0:Math.min(i.maxComputationTime,5e3))}return(0,j.Z)(e,[{key:"computeDiff",value:function(){if(1===this.original.lines.length&&0===this.original.lines[0].length)return 1===this.modified.lines.length&&0===this.modified.lines[0].length?{quitEarly:!1,changes:[]}:{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};if(1===this.modified.lines.length&&0===this.modified.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};var e=qe(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,n=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){for(var i=[],r=0,o=t.length;r<o;r++)i.push(Xe.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[r],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:n,changes:i}}for(var a=[],s=0,u=0,l=-1,c=t.length;l<c;l++){for(var d=l+1<c?t[l+1]:null,h=d?d.originalStart:this.originalLines.length,f=d?d.modifiedStart:this.modifiedLines.length;s<h&&u<f;){var p=this.originalLines[s],g=this.modifiedLines[u];if(p!==g){for(var v=et(p,1),m=et(g,1);v>1&&m>1;){if(p.charCodeAt(v-2)!==g.charCodeAt(m-2))break;v--,m--}(v>1||m>1)&&this._pushTrimWhitespaceCharChange(a,s+1,1,v,u+1,1,m);for(var _=tt(p,1),y=tt(g,1),b=p.length+1,w=g.length+1;_<b&&y<w;){if(p.charCodeAt(_-1)!==p.charCodeAt(y-1))break;_++,y++}(_<b||y<w)&&this._pushTrimWhitespaceCharChange(a,s+1,_,b,u+1,y,w)}s++,u++}d&&(a.push(Xe.createFromDiffResult(this.shouldIgnoreTrimWhitespace,d,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),s+=d.originalLength,u+=d.modifiedLength)}return{quitEarly:n,changes:a}}},{key:"_pushTrimWhitespaceCharChange",value:function(e,t,n,i,r,o,a){if(!this._mergeTrimWhitespaceCharChange(e,t,n,i,r,o,a)){var s=void 0;this.shouldComputeCharChanges&&(s=[new Qe(t,n,t,i,r,o,r,a)]),e.push(new Xe(t,t,r,r,s))}}},{key:"_mergeTrimWhitespaceCharChange",value:function(e,t,n,i,r,o,a){var s=e.length;if(0===s)return!1;var u=e[s-1];return 0!==u.originalEndLineNumber&&0!==u.modifiedEndLineNumber&&(u.originalEndLineNumber+1===t&&u.modifiedEndLineNumber+1===r&&(u.originalEndLineNumber=t,u.modifiedEndLineNumber=r,this.shouldComputeCharChanges&&u.charChanges&&u.charChanges.push(new Qe(t,n,t,i,r,o,r,a)),!0))}}]),e}();function et(e,t){var n=Ue.LC(e);return-1===n?t:n+1}function tt(e,t){var n=Ue.ow(e);return-1===n?t:n+2}function nt(e){if(0===e)return function(){return!0};var t=Date.now();return function(){return Date.now()-t<e}}var it=n(21043),rt=function(){function e(t,n,i,r){(0,F.Z)(this,e),this._uri=t,this._lines=n,this._eol=i,this._versionId=r,this._lineStarts=null,this._cachedTextValue=null}return(0,j.Z)(e,[{key:"dispose",value:function(){this._lines.length=0}},{key:"version",get:function(){return this._versionId}},{key:"getText",value:function(){return null===this._cachedTextValue&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}},{key:"onEvents",value:function(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);var t,n=e.changes,i=(0,X.Z)(n);try{for(i.s();!(t=i.n()).done;){var r=t.value;this._acceptDeleteRange(r.range),this._acceptInsertText(new V.L(r.range.startLineNumber,r.range.startColumn),r.text)}}catch(o){i.e(o)}finally{i.f()}this._versionId=e.versionId,this._cachedTextValue=null}},{key:"_ensureLineStarts",value:function(){if(!this._lineStarts){for(var e=this._eol.length,t=this._lines.length,n=new Uint32Array(t),i=0;i<t;i++)n[i]=this._lines[i].length+e;this._lineStarts=new it.o(n)}}},{key:"_setLineText",value:function(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.changeValue(e,this._lines[e].length+this._eol.length)}},{key:"_acceptDeleteRange",value:function(e){if(e.startLineNumber!==e.endLineNumber)this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber);else{if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1))}}},{key:"_acceptInsertText",value:function(e,t){if(0!==t.length){var n=(0,Ue.uq)(t);if(1!==n.length){n[n.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]);for(var i=new Uint32Array(n.length-1),r=1;r<n.length;r++)this._lines.splice(e.lineNumber+r-1,0,n[r]),i[r-1]=n[r].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,i)}else this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]+this._lines[e.lineNumber-1].substring(e.column-1))}}}]),e}(),ot=n(43717),at=n(29439),st=n(84516),ut=function(){function e(t,n,i){(0,F.Z)(this,e);for(var r=new Uint8Array(t*n),o=0,a=t*n;o<a;o++)r[o]=i;this._data=r,this.rows=t,this.cols=n}return(0,j.Z)(e,[{key:"get",value:function(e,t){return this._data[e*this.cols+t]}},{key:"set",value:function(e,t,n){this._data[e*this.cols+t]=n}}]),e}(),lt=function(){function e(t){(0,F.Z)(this,e);for(var n=0,i=0,r=0,o=t.length;r<o;r++){var a=(0,at.Z)(t[r],3),s=a[0],u=a[1],l=a[2];u>n&&(n=u),s>i&&(i=s),l>i&&(i=l)}n++,i++;for(var c=new ut(i,n,0),d=0,h=t.length;d<h;d++){var f=(0,at.Z)(t[d],3),p=f[0],g=f[1],v=f[2];c.set(p,g,v)}this._states=c,this._maxCharCode=n}return(0,j.Z)(e,[{key:"nextState",value:function(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)}}]),e}(),ct=null;var dt=null;var ht=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,null,[{key:"_createLink",value:function(e,t,n,i,r){var o=r-1;do{var a=t.charCodeAt(o);if(2!==e.get(a))break;o--}while(o>i);if(i>0){var s=t.charCodeAt(i-1),u=t.charCodeAt(o);(40===s&&41===u||91===s&&93===u||123===s&&125===u)&&o--}return{range:{startLineNumber:n,startColumn:i+1,endLineNumber:n,endColumn:o+2},url:t.substring(i,o+1)}}},{key:"computeLinks",value:function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(null===ct&&(ct=new lt([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),ct),i=function(){if(null===dt){dt=new st.N(0);for(var e=" \t<>'\"\u3001\u3002\uff61\uff64\uff0c\uff0e\uff1a\uff1b\u2018\u201c\u3008\u300a\u300c\u300e\u3010\u3014\uff08\uff3b\uff5b\uff62\uff63\uff5d\uff3d\uff09\u3015\u3011\u300f\u300d\u300b\u3009\u201d\u2019\uff40\uff5e\u2026",t=0;t<e.length;t++)dt.set(e.charCodeAt(t),1);for(var n=0;n<".,;".length;n++)dt.set(".,;".charCodeAt(n),2)}return dt}(),r=[],o=1,a=t.getLineCount();o<=a;o++){for(var s=t.getLineContent(o),u=s.length,l=0,c=0,d=0,h=1,f=!1,p=!1,g=!1,v=!1;l<u;){var m=!1,_=s.charCodeAt(l);if(13===h){var y=void 0;switch(_){case 40:f=!0,y=0;break;case 41:y=f?0:1;break;case 91:g=!0,p=!0,y=0;break;case 93:g=!1,y=p?0:1;break;case 123:v=!0,y=0;break;case 125:y=v?0:1;break;case 39:y=34===d||96===d?0:1;break;case 34:y=39===d||96===d?0:1;break;case 96:y=39===d||34===d?0:1;break;case 42:y=42===d?1:0;break;case 124:y=124===d?1:0;break;case 32:y=g?0:1;break;default:y=i.get(_)}1===y&&(r.push(e._createLink(i,s,o,c,l)),m=!0)}else if(12===h){var b=void 0;91===_?(p=!0,b=0):b=i.get(_),1===b?m=!0:h=13}else 0===(h=n.nextState(h,_))&&(m=!0);m&&(h=1,f=!1,p=!1,v=!1,c=l+1,d=_),l++}13===h&&r.push(e._createLink(i,s,o,c,u))}return r}}]),e}();function ft(e){return e&&"function"===typeof e.getLineCount&&"function"===typeof e.getLineContent?ht.computeLinks(e):[]}var pt=function(){function e(){(0,F.Z)(this,e),this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}return(0,j.Z)(e,[{key:"navigateValueSet",value:function(e,t,n,i,r){if(e&&t){var o=this.doNavigateValueSet(t,r);if(o)return{range:e,value:o}}if(n&&i){var a=this.doNavigateValueSet(i,r);if(a)return{range:n,value:a}}return null}},{key:"doNavigateValueSet",value:function(e,t){var n=this.numberReplace(e,t);return null!==n?n:this.textReplace(e,t)}},{key:"numberReplace",value:function(e,t){var n=Math.pow(10,e.length-(e.lastIndexOf(".")+1)),i=Number(e),r=parseFloat(e);return isNaN(i)||isNaN(r)||i!==r?null:0!==i||t?(i=Math.floor(i*n),i+=t?n:-n,String(i/n)):null}},{key:"textReplace",value:function(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)}},{key:"valueSetsReplace",value:function(e,t,n){for(var i=null,r=0,o=e.length;null===i&&r<o;r++)i=this.valueSetReplace(e[r],t,n);return i}},{key:"valueSetReplace",value:function(e,t,n){var i=e.indexOf(t);return i>=0?((i+=n?1:-1)<0?i=e.length-1:i%=e.length,e[i]):null}}]),e}();pt.INSTANCE=new pt;var gt=n(96257),vt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},mt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){return(0,F.Z)(this,n),t.apply(this,arguments)}return(0,j.Z)(n,[{key:"uri",get:function(){return this._uri}},{key:"eol",get:function(){return this._eol}},{key:"getValue",value:function(){return this.getText()}},{key:"getLinesContent",value:function(){return this._lines.slice(0)}},{key:"getLineCount",value:function(){return this._lines.length}},{key:"getLineContent",value:function(e){return this._lines[e-1]}},{key:"getWordAtPosition",value:function(e,t){var n=(0,ot.t2)(e.column,(0,ot.eq)(t),this._lines[e.lineNumber-1],0);return n?new Y.e(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn):null}},{key:"words",value:function(e){var t=this._lines,n=this._wordenize.bind(this),i=0,r="",o=0,a=[];return(0,Ve.Z)({},Symbol.iterator,te().mark((function s(){var u;return te().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:if(!(o<a.length)){s.next=8;break}return u=r.substring(a[o].start,a[o].end),o+=1,s.next=6,u;case 6:s.next=16;break;case 8:if(!(i<t.length)){s.next=15;break}r=t[i],a=n(r,e),o=0,i+=1,s.next=16;break;case 15:return s.abrupt("break",18);case 16:s.next=0;break;case 18:case"end":return s.stop()}}),s)})))}},{key:"getLineWords",value:function(e,t){var n,i=this._lines[e-1],r=this._wordenize(i,t),o=[],a=(0,X.Z)(r);try{for(a.s();!(n=a.n()).done;){var s=n.value;o.push({word:i.substring(s.start,s.end),startColumn:s.start+1,endColumn:s.end+1})}}catch(u){a.e(u)}finally{a.f()}return o}},{key:"_wordenize",value:function(e,t){var n,i=[];for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)i.push({start:n.index,end:n.index+n[0].length});return i}},{key:"getValueInRange",value:function(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);var t=this._eol,n=e.startLineNumber-1,i=e.endLineNumber-1,r=[];r.push(this._lines[n].substring(e.startColumn-1));for(var o=n+1;o<i;o++)r.push(this._lines[o]);return r.push(this._lines[i].substring(0,e.endColumn-1)),r.join(t)}},{key:"offsetAt",value:function(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getAccumulatedValue(e.lineNumber-2)+(e.column-1)}},{key:"positionAt",value:function(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();var t=this._lineStarts.getIndexOf(e),n=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,n)}}},{key:"_validateRange",value:function(e){var t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn}),n=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||n.lineNumber!==e.endLineNumber||n.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:n.lineNumber,endColumn:n.column}:e}},{key:"_validatePosition",value:function(e){if(!V.L.isIPosition(e))throw new Error("bad position");var t=e.lineNumber,n=e.column,i=!1;if(t<1)t=1,n=1,i=!0;else if(t>this._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,i=!0;else{var r=this._lines[t-1].length+1;n<1?(n=1,i=!0):n>r&&(n=r,i=!0)}return i?{lineNumber:t,column:n}:e}}]),n}(rt),_t=function(){function e(t,n){(0,F.Z)(this,e),this._host=t,this._models=Object.create(null),this._foreignModuleFactory=n,this._foreignModule=null}return(0,j.Z)(e,[{key:"dispose",value:function(){this._models=Object.create(null)}},{key:"_getModel",value:function(e){return this._models[e]}},{key:"_getModels",value:function(){var e=this,t=[];return Object.keys(this._models).forEach((function(n){return t.push(e._models[n])})),t}},{key:"acceptNewModel",value:function(e){this._models[e.url]=new mt(W.o.parse(e.url),e.lines,e.EOL,e.versionId)}},{key:"acceptModelChanged",value:function(e,t){this._models[e]&&this._models[e].onEvents(t)}},{key:"acceptRemovedModel",value:function(e){this._models[e]&&delete this._models[e]}},{key:"computeDiff",value:function(e,t,n,i){return vt(this,void 0,void 0,te().mark((function r(){var o,a,s,u,l,c,d;return te().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=this._getModel(e),a=this._getModel(t),o&&a){r.next=4;break}return r.abrupt("return",null);case 4:return s=o.getLinesContent(),u=a.getLinesContent(),l=new Je(s,u,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0,maxComputationTime:i}),c=l.computeDiff(),d=!(c.changes.length>0)&&this._modelsAreIdentical(o,a),r.abrupt("return",{quitEarly:c.quitEarly,identical:d,changes:c.changes});case 10:case"end":return r.stop()}}),r,this)})))}},{key:"_modelsAreIdentical",value:function(e,t){var n=e.getLineCount();if(n!==t.getLineCount())return!1;for(var i=1;i<=n;i++){if(e.getLineContent(i)!==t.getLineContent(i))return!1}return!0}},{key:"computeMoreMinimalEdits",value:function(t,n){return vt(this,void 0,void 0,te().mark((function i(){var r,o,a,s,u,l,c,d,h,f,p,g,v,m,_,y,b,w;return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(r=this._getModel(t)){i.next=3;break}return i.abrupt("return",n);case 3:o=[],a=void 0,n=n.slice(0).sort((function(e,t){return e.range&&t.range?Y.e.compareRangesUsingStarts(e.range,t.range):(e.range?0:1)-(t.range?0:1)})),s=(0,X.Z)(n),i.prev=7,s.s();case 9:if((u=s.n()).done){i.next=27;break}if(l=u.value,c=l.range,d=l.text,"number"===typeof(h=l.eol)&&(a=h),!Y.e.isEmpty(c)||d){i.next=14;break}return i.abrupt("continue",25);case 14:if(f=r.getValueInRange(c),d=d.replace(/\r\n|\n|\r/g,r.eol),f!==d){i.next=18;break}return i.abrupt("continue",25);case 18:if(!(Math.max(d.length,f.length)>e._diffLimit)){i.next=21;break}return o.push({range:c,text:d}),i.abrupt("continue",25);case 21:p=(0,Ye.a$)(f,d,!1),g=r.offsetAt(Y.e.lift(c).getStartPosition()),v=(0,X.Z)(p);try{for(v.s();!(m=v.n()).done;)_=m.value,y=r.positionAt(g+_.originalStart),b=r.positionAt(g+_.originalStart+_.originalLength),w={text:d.substr(_.modifiedStart,_.modifiedLength),range:{startLineNumber:y.lineNumber,startColumn:y.column,endLineNumber:b.lineNumber,endColumn:b.column}},r.getValueInRange(w.range)!==w.text&&o.push(w)}catch(C){v.e(C)}finally{v.f()}case 25:i.next=9;break;case 27:i.next=32;break;case 29:i.prev=29,i.t0=i.catch(7),s.e(i.t0);case 32:return i.prev=32,s.f(),i.finish(32);case 35:return"number"===typeof a&&o.push({eol:a,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),i.abrupt("return",o);case 37:case"end":return i.stop()}}),i,this,[[7,29,32,35]])})))}},{key:"computeLinks",value:function(e){return vt(this,void 0,void 0,te().mark((function t(){var n;return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=this._getModel(e)){t.next=3;break}return t.abrupt("return",null);case 3:return t.abrupt("return",ft(n));case 4:case"end":return t.stop()}}),t,this)})))}},{key:"textualSuggest",value:function(t,n,i,r){return vt(this,void 0,void 0,te().mark((function o(){var a,s,u,l,c,d,h,f,p,g;return te().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:a=new gt.G(!0),s=new RegExp(i,r),u=new Set,l=(0,X.Z)(t),o.prev=4,l.s();case 6:if((c=l.n()).done){o.next=33;break}if(d=c.value,h=this._getModel(d)){o.next=11;break}return o.abrupt("continue",31);case 11:f=(0,X.Z)(h.words(s)),o.prev=12,f.s();case 14:if((p=f.n()).done){o.next=23;break}if((g=p.value)!==n&&isNaN(Number(g))){o.next=18;break}return o.abrupt("continue",21);case 18:if(u.add(g),!(u.size>e._suggestionsLimit)){o.next=21;break}return o.abrupt("break",33);case 21:o.next=14;break;case 23:o.next=28;break;case 25:o.prev=25,o.t0=o.catch(12),f.e(o.t0);case 28:return o.prev=28,f.f(),o.finish(28);case 31:o.next=6;break;case 33:o.next=38;break;case 35:o.prev=35,o.t1=o.catch(4),l.e(o.t1);case 38:return o.prev=38,l.f(),o.finish(38);case 41:return o.abrupt("return",{words:Array.from(u),duration:a.elapsed()});case 42:case"end":return o.stop()}}),o,this,[[4,35,38,41],[12,25,28,31]])})))}},{key:"computeWordRanges",value:function(e,t,n,i){return vt(this,void 0,void 0,te().mark((function r(){var o,a,s,u,l,c,d,h,f;return te().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=this._getModel(e)){r.next=3;break}return r.abrupt("return",Object.create(null));case 3:a=new RegExp(n,i),s=Object.create(null),u=t.startLineNumber;case 6:if(!(u<t.endLineNumber)){r.next=31;break}l=o.getLineWords(u,a),c=(0,X.Z)(l),r.prev=9,c.s();case 11:if((d=c.n()).done){r.next=20;break}if(h=d.value,isNaN(Number(h.word))){r.next=15;break}return r.abrupt("continue",18);case 15:(f=s[h.word])||(f=[],s[h.word]=f),f.push({startLineNumber:u,startColumn:h.startColumn,endLineNumber:u,endColumn:h.endColumn});case 18:r.next=11;break;case 20:r.next=25;break;case 22:r.prev=22,r.t0=r.catch(9),c.e(r.t0);case 25:return r.prev=25,c.f(),r.finish(25);case 28:u++,r.next=6;break;case 31:return r.abrupt("return",s);case 32:case"end":return r.stop()}}),r,this,[[9,22,25,28]])})))}},{key:"navigateValueSet",value:function(e,t,n,i,r){return vt(this,void 0,void 0,te().mark((function o(){var a,s,u,l,c,d;return te().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(a=this._getModel(e)){o.next=3;break}return o.abrupt("return",null);case 3:if(s=new RegExp(i,r),t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1}),u=a.getValueInRange(t),l=a.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},s)){o.next=9;break}return o.abrupt("return",null);case 9:return c=a.getValueInRange(l),d=pt.INSTANCE.navigateValueSet(t,u,l,c,n),o.abrupt("return",d);case 12:case"end":return o.stop()}}),o,this)})))}},{key:"loadForeignModule",value:function(e,t,n){var i=this,r={host:Ie.IU(n,(function(e,t){return i._host.fhr(e,t)})),getMirrorModels:function(){return i._getModels()}};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(r,t),Promise.resolve(Ie.$E(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}},{key:"fmr",value:function(e,t){if(!this._foreignModule||"function"!==typeof this._foreignModule[e])return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(n){return Promise.reject(n)}}}]),e}();_t._diffLimit=1e5,_t._suggestionsLimit=1e4,"function"===typeof importScripts&&(Oe.li.monaco=G());var yt=n(49076),bt=n(45862),wt=n(49396),Ct=n(19974),kt=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},St=function(e,t){return function(n,i){t(n,i,e)}},xt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Lt=6e4,Et=3e5;function Nt(e,t){var n=e.getModel(t);return!!n&&!n.isTooLargeForSyncing()}var Dt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;return(0,F.Z)(this,n),(o=t.call(this))._modelService=e,o._workerManager=o._register(new Tt(o._modelService)),o._logService=r,o._register(be.pM.register("*",{provideLinks:function(e,t){return Nt(o._modelService,e.uri)?o._workerManager.withWorker().then((function(t){return t.computeLinks(e.uri)})).then((function(e){return e&&{links:e}})):Promise.resolve({links:[]})}})),o._register(be.KZ.register("*",new Mt(o._workerManager,i,o._modelService))),o}return(0,j.Z)(n,[{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"canComputeDiff",value:function(e,t){return Nt(this._modelService,e)&&Nt(this._modelService,t)}},{key:"computeDiff",value:function(e,t,n,i){return this._workerManager.withWorker().then((function(r){return r.computeDiff(e,t,n,i)}))}},{key:"computeMoreMinimalEdits",value:function(e,t){var n=this;if((0,wt.Of)(t)){if(!Nt(this._modelService,e))return Promise.resolve(t);var i=gt.G.create(!0),r=this._workerManager.withWorker().then((function(n){return n.computeMoreMinimalEdits(e,t)}));return r.finally((function(){return n._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),i.elapsed())})),Promise.race([r,(0,De.Vs)(1e3).then((function(){return t}))])}return Promise.resolve(void 0)}},{key:"canNavigateValueSet",value:function(e){return Nt(this._modelService,e)}},{key:"navigateValueSet",value:function(e,t,n){return this._workerManager.withWorker().then((function(i){return i.navigateValueSet(e,t,n)}))}},{key:"canComputeWordRanges",value:function(e){return Nt(this._modelService,e)}},{key:"computeWordRanges",value:function(e,t){return this._workerManager.withWorker().then((function(n){return n.computeWordRanges(e,t)}))}}]),n}(Me.JT);Dt=kt([St(0,yt.q),St(1,bt.V),St(2,Ct.VZ)],Dt);var Mt=function(){function e(t,n,i){(0,F.Z)(this,e),this._debugDisplayName="wordbasedCompletions",this._workerManager=t,this._configurationService=n,this._modelService=i}return(0,j.Z)(e,[{key:"provideCompletionItems",value:function(e,t){return xt(this,void 0,void 0,te().mark((function n(){var i,r,o,a,s,u,l,c,d,h,f;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if((i=this._configurationService.getValue(e.uri,t,"editor")).wordBasedSuggestions){n.next=3;break}return n.abrupt("return",void 0);case 3:if(r=[],"currentDocument"!==i.wordBasedSuggestionsMode){n.next=8;break}Nt(this._modelService,e.uri)&&r.push(e.uri),n.next=26;break;case 8:o=(0,X.Z)(this._modelService.getModels()),n.prev=9,o.s();case 11:if((a=o.n()).done){n.next=18;break}if(s=a.value,Nt(this._modelService,s.uri)){n.next=15;break}return n.abrupt("continue",16);case 15:s===e?r.unshift(s.uri):"allDocuments"!==i.wordBasedSuggestionsMode&&s.getLanguageIdentifier().id!==e.getLanguageIdentifier().id||r.push(s.uri);case 16:n.next=11;break;case 18:n.next=23;break;case 20:n.prev=20,n.t0=n.catch(9),o.e(n.t0);case 23:return n.prev=23,o.f(),n.finish(23);case 26:if(0!==r.length){n.next=28;break}return n.abrupt("return",void 0);case 28:return u=We.zu.getWordDefinition(e.getLanguageIdentifier().id),l=e.getWordAtPosition(t),c=l?new Y.e(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn):Y.e.fromPositions(t),d=c.setEndPosition(t.lineNumber,t.column),n.next=34,this._workerManager.withWorker();case 34:return h=n.sent,n.next=37,h.textualSuggest(r,null===l||void 0===l?void 0:l.word,u);case 37:if(f=n.sent){n.next=40;break}return n.abrupt("return",void 0);case 40:return n.abrupt("return",{duration:f.duration,suggestions:f.words.map((function(e){return{kind:18,label:e,insertText:e,range:{insert:d,replace:c}}}))});case 41:case"end":return n.stop()}}),n,this,[[9,20,23,26]])})))}}]),e}(),Tt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this))._modelService=e,i._editorWorkerClient=null,i._lastWorkerUsedTime=(new Date).getTime(),i._register(new De.zh).cancelAndSet((function(){return i._checkStopIdleWorker()}),Math.round(Et/2)),i._register(i._modelService.onModelRemoved((function(e){return i._checkStopEmptyWorker()}))),i}return(0,j.Z)(n,[{key:"dispose",value:function(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"_checkStopEmptyWorker",value:function(){this._editorWorkerClient&&(0===this._modelService.getModels().length&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null))}},{key:"_checkStopIdleWorker",value:function(){this._editorWorkerClient&&((new Date).getTime()-this._lastWorkerUsedTime>Et&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null))}},{key:"withWorker",value:function(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new Rt(this._modelService,!1,"editorWorkerService")),Promise.resolve(this._editorWorkerClient)}}]),n}(Me.JT),Ot=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;if((0,F.Z)(this,n),(o=t.call(this))._syncedModels=Object.create(null),o._syncedModelsLastUsedTime=Object.create(null),o._proxy=e,o._modelService=i,!r){var a=new De.zh;a.cancelAndSet((function(){return o._checkStopModelSync()}),Math.round(Lt/2)),o._register(a)}return o}return(0,j.Z)(n,[{key:"dispose",value:function(){for(var e in this._syncedModels)(0,Me.B9)(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"ensureSyncedResources",value:function(e){var t,n=(0,X.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=i.toString();this._syncedModels[r]||this._beginModelSync(i),this._syncedModels[r]&&(this._syncedModelsLastUsedTime[r]=(new Date).getTime())}}catch(o){n.e(o)}finally{n.f()}}},{key:"_checkStopModelSync",value:function(){var e=(new Date).getTime(),t=[];for(var n in this._syncedModelsLastUsedTime){e-this._syncedModelsLastUsedTime[n]>Lt&&t.push(n)}for(var i=0,r=t;i<r.length;i++){var o=r[i];this._stopModelSync(o)}}},{key:"_beginModelSync",value:function(e){var t=this,n=this._modelService.getModel(e);if(n&&!n.isTooLargeForSyncing()){var i=e.toString();this._proxy.acceptNewModel({url:n.uri.toString(),lines:n.getLinesContent(),EOL:n.getEOL(),versionId:n.getVersionId()});var r=new Me.SL;r.add(n.onDidChangeContent((function(e){t._proxy.acceptModelChanged(i.toString(),e)}))),r.add(n.onWillDispose((function(){t._stopModelSync(i)}))),r.add((0,Me.OF)((function(){t._proxy.acceptRemovedModel(i)}))),this._syncedModels[i]=r}}},{key:"_stopModelSync",value:function(e){var t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],(0,Me.B9)(t)}}]),n}(Me.JT),It=function(){function e(t){(0,F.Z)(this,e),this._instance=t,this._proxyObj=Promise.resolve(this._instance)}return(0,j.Z)(e,[{key:"dispose",value:function(){this._instance.dispose()}},{key:"getProxyObject",value:function(){return this._proxyObj}}]),e}(),At=function(){function e(t){(0,F.Z)(this,e),this._workerClient=t}return(0,j.Z)(e,[{key:"fhr",value:function(e,t){return this._workerClient.fhr(e,t)}}]),e}(),Rt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;return(0,F.Z)(this,n),(o=t.call(this))._disposed=!1,o._modelService=e,o._keepIdleModels=i,o._workerFactory=new ze(r),o._worker=null,o._modelManager=null,o}return(0,j.Z)(n,[{key:"fhr",value:function(e,t){throw new Error("Not implemented!")}},{key:"_getOrCreateWorker",value:function(){if(!this._worker)try{this._worker=this._register(new je(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new At(this)))}catch(e){Pe(e),this._worker=new It(new _t(new At(this),null))}return this._worker}},{key:"_getProxy",value:function(){var e=this;return this._getOrCreateWorker().getProxyObject().then(void 0,(function(t){return Pe(t),e._worker=new It(new _t(new At(e),null)),e._getOrCreateWorker().getProxyObject()}))}},{key:"_getOrCreateModelManager",value:function(e){return this._modelManager||(this._modelManager=this._register(new Ot(e,this._modelService,this._keepIdleModels))),this._modelManager}},{key:"_withSyncedResources",value:function(e){var t=this;return this._disposed?Promise.reject((0,Te.F0)()):this._getProxy().then((function(n){return t._getOrCreateModelManager(n).ensureSyncedResources(e),n}))}},{key:"computeDiff",value:function(e,t,n,i){return this._withSyncedResources([e,t]).then((function(r){return r.computeDiff(e.toString(),t.toString(),n,i)}))}},{key:"computeMoreMinimalEdits",value:function(e,t){return this._withSyncedResources([e]).then((function(n){return n.computeMoreMinimalEdits(e.toString(),t)}))}},{key:"computeLinks",value:function(e){return this._withSyncedResources([e]).then((function(t){return t.computeLinks(e.toString())}))}},{key:"textualSuggest",value:function(e,t,n){return xt(this,void 0,void 0,te().mark((function i(){var r,o,a;return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,this._withSyncedResources(e);case 2:return r=i.sent,o=n.source,a=(0,Ue.mr)(n),i.abrupt("return",r.textualSuggest(e.map((function(e){return e.toString()})),t,o,a));case 6:case"end":return i.stop()}}),i,this)})))}},{key:"computeWordRanges",value:function(e,t){var n=this;return this._withSyncedResources([e]).then((function(i){var r=n._modelService.getModel(e);if(!r)return Promise.resolve(null);var o=We.zu.getWordDefinition(r.getLanguageIdentifier().id),a=o.source,s=(0,Ue.mr)(o);return i.computeWordRanges(e.toString(),t,a,s)}))}},{key:"navigateValueSet",value:function(e,t,n){var i=this;return this._withSyncedResources([e]).then((function(r){var o=i._modelService.getModel(e);if(!o)return null;var a=We.zu.getWordDefinition(o.getLanguageIdentifier().id),s=a.source,u=(0,Ue.mr)(a);return r.navigateValueSet(e.toString(),t,n,s,u)}))}},{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this),this._disposed=!0}}]),n}(Me.JT);var Pt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this,e,i.keepIdleModels||!1,i.label))._foreignModuleId=i.moduleId,r._foreignModuleCreateData=i.createData||null,r._foreignModuleHost=i.host||null,r._foreignProxy=null,r}return(0,j.Z)(n,[{key:"fhr",value:function(e,t){if(!this._foreignModuleHost||"function"!==typeof this._foreignModuleHost[e])return Promise.reject(new Error("Missing method "+e+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(n){return Promise.reject(n)}}},{key:"_getForeignProxy",value:function(){var e=this;return this._foreignProxy||(this._foreignProxy=this._getProxy().then((function(t){var n=e._foreignModuleHost?Ie.$E(e._foreignModuleHost):[];return t.loadForeignModule(e._foreignModuleId,e._foreignModuleCreateData,n).then((function(n){e._foreignModuleCreateData=null;var i,r=function(e,n){return t.fmr(e,n)},o=function(e,t){return function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},a={},s=(0,X.Z)(n);try{for(s.s();!(i=s.n()).done;){var u=i.value;a[u]=o(u,r)}}catch(l){s.e(l)}finally{s.f()}return a}))}))),this._foreignProxy}},{key:"getProxy",value:function(){return this._getForeignProxy()}},{key:"withSyncedResources",value:function(e){var t=this;return this._withSyncedResources(e).then((function(e){return t.getProxy()}))}}]),n}(Rt),Zt=n(34763),Ft=n(70632),jt=n(4587);function Ht(e){return!function(e){return Array.isArray(e)}(e)}function Bt(e){return"string"===typeof e}function zt(e){return!Bt(e)}function Wt(e){return!e}function Vt(e,t){return e.ignoreCase&&t?t.toLowerCase():t}function Yt(e){return e.replace(/[&<>'"_]/g,"-")}function Ut(e,t){return new Error("".concat(e.languageId,": ").concat(t))}function Kt(e,t,n,i,r){var o=null;return t.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,(function(t,a,s,u,l,c,d,h,f){return Wt(s)?Wt(u)?!Wt(l)&&l<i.length?Vt(e,i[l]):!Wt(d)&&e&&"string"===typeof e[d]?e[d]:(null===o&&(o=r.split(".")).unshift(r),!Wt(c)&&c<o.length?Vt(e,o[c]):""):Vt(e,n):"$"}))}function qt(e,t){for(var n=t;n&&n.length>0;){var i=e.tokenizer[n];if(i)return i;var r=n.lastIndexOf(".");n=r<0?null:n.substr(0,r)}return null}var Gt=function(){function e(t){(0,F.Z)(this,e),this._maxCacheDepth=t,this._entries=Object.create(null)}return(0,j.Z)(e,[{key:"create",value:function(e,t){if(null!==e&&e.depth>=this._maxCacheDepth)return new $t(e,t);var n=$t.getStackElementId(e);n.length>0&&(n+="|"),n+=t;var i=this._entries[n];return i||(i=new $t(e,t),this._entries[n]=i,i)}}],[{key:"create",value:function(e,t){return this._INSTANCE.create(e,t)}}]),e}();Gt._INSTANCE=new Gt(5);var $t=function(){function e(t,n){(0,F.Z)(this,e),this.parent=t,this.state=n,this.depth=(this.parent?this.parent.depth:0)+1}return(0,j.Z)(e,[{key:"equals",value:function(t){return e._equals(this,t)}},{key:"push",value:function(e){return Gt.create(this,e)}},{key:"pop",value:function(){return this.parent}},{key:"popall",value:function(){for(var e=this;e.parent;)e=e.parent;return e}},{key:"switchTo",value:function(e){return Gt.create(this.parent,e)}}],[{key:"getStackElementId",value:function(e){for(var t="";null!==e;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}},{key:"_equals",value:function(e,t){for(;null!==e&&null!==t;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return null===e&&null===t}}]),e}(),Qt=function(){function e(t,n){(0,F.Z)(this,e),this.modeId=t,this.state=n}return(0,j.Z)(e,[{key:"equals",value:function(e){return this.modeId===e.modeId&&this.state.equals(e.state)}},{key:"clone",value:function(){return this.state.clone()===this.state?this:new e(this.modeId,this.state)}}]),e}(),Xt=function(){function e(t){(0,F.Z)(this,e),this._maxCacheDepth=t,this._entries=Object.create(null)}return(0,j.Z)(e,[{key:"create",value:function(e,t){if(null!==t)return new en(e,t);if(null!==e&&e.depth>=this._maxCacheDepth)return new en(e,t);var n=$t.getStackElementId(e),i=this._entries[n];return i||(i=new en(e,null),this._entries[n]=i,i)}}],[{key:"create",value:function(e,t){return this._INSTANCE.create(e,t)}}]),e}();Xt._INSTANCE=new Xt(5);var Jt,en=function(){function e(t,n){(0,F.Z)(this,e),this.stack=t,this.embeddedModeData=n}return(0,j.Z)(e,[{key:"clone",value:function(){return(this.embeddedModeData?this.embeddedModeData.clone():null)===this.embeddedModeData?this:Xt.create(this.stack,this.embeddedModeData)}},{key:"equals",value:function(t){return t instanceof e&&(!!this.stack.equals(t.stack)&&(null===this.embeddedModeData&&null===t.embeddedModeData||null!==this.embeddedModeData&&null!==t.embeddedModeData&&this.embeddedModeData.equals(t.embeddedModeData)))}}]),e}(),tn=function(){function e(){(0,F.Z)(this,e),this._tokens=[],this._language=null,this._lastTokenType=null,this._lastTokenLanguage=null}return(0,j.Z)(e,[{key:"enterMode",value:function(e,t){this._language=t}},{key:"emit",value:function(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._language||(this._lastTokenType=t,this._lastTokenLanguage=this._language,this._tokens.push(new K.WU(e,t,this._language)))}},{key:"nestedModeTokenize",value:function(e,t,n,i){var r=n.modeId,o=n.state,a=be.RW.get(r);if(!a)return this.enterMode(i,r),this.emit(i,""),o;var s=a.tokenize(e,t,o,i);return this._tokens=this._tokens.concat(s.tokens),this._lastTokenType=null,this._lastTokenLanguage=null,this._language=null,s.endState}},{key:"finalize",value:function(e){return new K.hG(this._tokens,e)}}]),e}(),nn=function(){function e(t,n){(0,F.Z)(this,e),this._modeService=t,this._theme=n,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}return(0,j.Z)(e,[{key:"enterMode",value:function(e,t){this._currentLanguageId=this._modeService.getLanguageIdentifier(t).id}},{key:"emit",value:function(e,t){var n=this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==n&&(this._lastTokenMetadata=n,this._tokens.push(e),this._tokens.push(n))}},{key:"nestedModeTokenize",value:function(t,n,i,r){var o=i.modeId,a=i.state,s=be.RW.get(o);if(!s)return this.enterMode(r,o),this.emit(r,""),a;var u=s.tokenize2(t,n,a,r);return this._prependTokens=e._merge(this._prependTokens,this._tokens,u.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,u.endState}},{key:"finalize",value:function(t){return new K.Hi(e._merge(this._prependTokens,this._tokens,null),t)}}],[{key:"_merge",value:function(e,t,n){var i=null!==e?e.length:0,r=t.length,o=null!==n?n.length:0;if(0===i&&0===r&&0===o)return new Uint32Array(0);if(0===i&&0===r)return n;if(0===r&&0===o)return e;var a=new Uint32Array(i+r+o);null!==e&&a.set(e);for(var s=0;s<r;s++)a[i+s]=t[s];return null!==n&&a.set(n,i+r),a}}]),e}(),rn=function(){function e(t,n,i,r){var o=this;(0,F.Z)(this,e),this._modeService=t,this._standaloneThemeService=n,this._modeId=i,this._lexer=r,this._embeddedModes=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);var a=!1;this._tokenizationRegistryListener=be.RW.onDidChange((function(e){if(!a){for(var t=!1,n=0,i=e.changedLanguages.length;n<i;n++){var r=e.changedLanguages[n];if(o._embeddedModes[r]){t=!0;break}}t&&(a=!0,be.RW.fire([o._modeId]),a=!1)}}))}return(0,j.Z)(e,[{key:"dispose",value:function(){this._tokenizationRegistryListener.dispose()}},{key:"getLoadStatus",value:function(){var t=[];for(var n in this._embeddedModes){var i=be.RW.get(n);if(i){if(i instanceof e){var r=i.getLoadStatus();!1===r.loaded&&t.push(r.promise)}}else{var o=be.RW.getPromise(n);o&&t.push(o)}}return 0===t.length?{loaded:!0}:{loaded:!1,promise:Promise.all(t).then((function(e){}))}}},{key:"getInitialState",value:function(){var e=Gt.create(null,this._lexer.start);return Xt.create(e,null)}},{key:"tokenize",value:function(e,t,n,i){var r=new tn,o=this._tokenize(e,t,n,i,r);return r.finalize(o)}},{key:"tokenize2",value:function(e,t,n,i){var r=new nn(this._modeService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,n,i,r);return r.finalize(o)}},{key:"_tokenize",value:function(e,t,n,i,r){return n.embeddedModeData?this._nestedTokenize(e,t,n,i,r):this._myTokenize(e,t,n,i,r)}},{key:"_findLeavingNestedModeOffset",value:function(e,t){var n=this._lexer.tokenizer[t.stack.state];if(!n&&!(n=qt(this._lexer,t.stack.state)))throw Ut(this._lexer,"tokenizer state is not defined: "+t.stack.state);var i,r=-1,o=!1,a=(0,X.Z)(n);try{for(a.s();!(i=a.n()).done;){var s=i.value;if(zt(s.action)&&"@pop"===s.action.nextEmbedded){o=!0;var u=s.regex,l=s.regex.source;if("^(?:"===l.substr(0,4)&&")"===l.substr(l.length-1,1)){var c=(u.ignoreCase?"i":"")+(u.unicode?"u":"");u=new RegExp(l.substr(4,l.length-5),c)}var d=e.search(u);-1===d||0!==d&&s.matchOnlyAtLineStart||(-1===r||d<r)&&(r=d)}}}catch(h){a.e(h)}finally{a.f()}if(!o)throw Ut(this._lexer,'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: '+t.stack.state);return r}},{key:"_nestedTokenize",value:function(e,t,n,i,r){var o=this._findLeavingNestedModeOffset(e,n);if(-1===o){var a=r.nestedModeTokenize(e,t,n.embeddedModeData,i);return Xt.create(n.stack,new Qt(n.embeddedModeData.modeId,a))}var s=e.substring(0,o);s.length>0&&r.nestedModeTokenize(s,!1,n.embeddedModeData,i);var u=e.substring(o);return this._myTokenize(u,t,n,i+o,r)}},{key:"_safeRuleName",value:function(e){return e?e.name:"(unknown)"}},{key:"_myTokenize",value:function(e,t,n,i,r){var o=this;r.enterMode(i,this._modeId);for(var a,s,u=e.length,l=t&&this._lexer.includeLF?e+"\n":e,c=l.length,d=n.embeddedModeData,h=n.stack,f=0,p=null,g=!0;g||f<c;){var v=f,m=h.depth,_=p?p.groups.length:0,y=h.state,b=null,w=null,C=null,k=null,S=null;if(p){b=p.matches;var x=p.groups.shift();w=x.matched,C=x.action,k=p.rule,0===p.groups.length&&(p=null)}else{if(!g&&f>=c)break;g=!1;var L=this._lexer.tokenizer[y];if(!L&&!(L=qt(this._lexer,y)))throw Ut(this._lexer,"tokenizer state is not defined: "+y);var E,N=l.substr(f),D=(0,X.Z)(L);try{for(D.s();!(E=D.n()).done;){var M=E.value;if((0===f||!M.matchOnlyAtLineStart)&&(b=N.match(M.regex))){w=b[0],C=M.action;break}}}catch(B){D.e(B)}finally{D.f()}}if(b||(b=[""],w=""),C||(f<c&&(w=(b=[l.charAt(f)])[0]),C=this._lexer.defaultToken),null===w)break;for(f+=w.length;Ht(C)&&zt(C)&&C.test;)C=C.test(w,b,y,f===c);var T=null;if("string"===typeof C||Array.isArray(C))T=C;else if(C.group)T=C.group;else if(null!==C.token&&void 0!==C.token){if(T=C.tokenSubst?Kt(this._lexer,C.token,w,b,y):C.token,C.nextEmbedded)if("@pop"===C.nextEmbedded){if(!d)throw Ut(this._lexer,"cannot pop embedded mode if not inside one");d=null}else{if(d)throw Ut(this._lexer,"cannot enter embedded mode from within an embedded mode");S=Kt(this._lexer,C.nextEmbedded,w,b,y)}if(C.goBack&&(f=Math.max(0,f-C.goBack)),C.switchTo&&"string"===typeof C.switchTo){var O=Kt(this._lexer,C.switchTo,w,b,y);if("@"===O[0]&&(O=O.substr(1)),!qt(this._lexer,O))throw Ut(this._lexer,"trying to switch to a state '"+O+"' that is undefined in rule: "+this._safeRuleName(k));h=h.switchTo(O)}else{if(C.transform&&"function"===typeof C.transform)throw Ut(this._lexer,"action.transform not supported");if(C.next)if("@push"===C.next){if(h.depth>=this._lexer.maxStack)throw Ut(this._lexer,"maximum tokenizer stack size reached: ["+h.state+","+h.parent.state+",...]");h=h.push(y)}else if("@pop"===C.next){if(h.depth<=1)throw Ut(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(k));h=h.pop()}else if("@popall"===C.next)h=h.popall();else{var I=Kt(this._lexer,C.next,w,b,y);if("@"===I[0]&&(I=I.substr(1)),!qt(this._lexer,I))throw Ut(this._lexer,"trying to set a next state '"+I+"' that is undefined in rule: "+this._safeRuleName(k));h=h.push(I)}}C.log&&"string"===typeof C.log&&(a=this._lexer,s=this._lexer.languageId+": "+Kt(this._lexer,C.log,w,b,y),console.log("".concat(a.languageId,": ").concat(s)))}if(null===T)throw Ut(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(k));var A=function(n){var a=o._modeService.getModeIdForLanguageName(n);a&&(n=a);var s=o._getNestedEmbeddedModeData(n);if(f<c){var u=e.substr(f);return o._nestedTokenize(u,t,Xt.create(h,s),i+f,r)}return Xt.create(h,s)};if(Array.isArray(T)){if(p&&p.groups.length>0)throw Ut(this._lexer,"groups cannot be nested: "+this._safeRuleName(k));if(b.length!==T.length+1)throw Ut(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(k));for(var R=0,P=1;P<b.length;P++)R+=b[P].length;if(R!==w.length)throw Ut(this._lexer,"with groups, all characters should be matched in consecutive groups in rule: "+this._safeRuleName(k));p={rule:k,matches:b,groups:[]};for(var Z=0;Z<T.length;Z++)p.groups[Z]={action:T[Z],matched:b[Z+1]};f-=w.length}else{if("@rematch"===T&&(f-=w.length,w="",b=null,T="",null!==S))return A(S);if(0===w.length){if(0===c||m!==h.depth||y!==h.state||(p?p.groups.length:0)!==_)continue;throw Ut(this._lexer,"no progress in tokenizer in rule: "+this._safeRuleName(k))}var F=null;if(Bt(T)&&0===T.indexOf("@brackets")){var j=T.substr("@brackets".length),H=on(this._lexer,w);if(!H)throw Ut(this._lexer,"@brackets token returned but no bracket defined as: "+w);F=Yt(H.token+j)}else{F=Yt(""===T?"":T+this._lexer.tokenPostfix)}if(v<u&&r.emit(v+i,F),null!==S)return A(S)}}return Xt.create(h,d)}},{key:"_getNestedEmbeddedModeData",value:function(e){var t=this._locateMode(e);if(t){var n=be.RW.get(t);if(n)return new Qt(t,n.getInitialState())}return new Qt(t||we.TG,we.nO)}},{key:"_locateMode",value:function(e){if(!e||!this._modeService.isRegisteredMode(e))return null;if(e===this._modeId)return e;var t=this._modeService.getModeId(e);return t&&(this._modeService.triggerMode(t),this._embeddedModes[t]=!0),t}}]),e}();function on(e,t){if(!t)return null;t=Vt(e,t);var n,i=e.brackets,r=(0,X.Z)(i);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(o.open===t)return{token:o.token,bracketType:1};if(o.close===t)return{token:o.token,bracketType:-1}}}catch(a){r.e(a)}finally{r.f()}return null}var an=null===(Jt=window.trustedTypes)||void 0===Jt?void 0:Jt.createPolicy("standaloneColorizer",{createHTML:function(e){return e}}),sn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,null,[{key:"colorizeElement",value:function(e,t,n,i){var r=(i=i||{}).theme||"vs",o=i.mimeType||n.getAttribute("lang")||n.getAttribute("data-lang");if(!o)return console.error("Mode not detected"),Promise.resolve();e.setTheme(r);var a=n.firstChild?n.firstChild.nodeValue:"";n.className+=" "+r;return this.colorize(t,a||"",o,i).then((function(e){var t,i=null!==(t=null===an||void 0===an?void 0:an.createHTML(e))&&void 0!==t?t:e;n.innerHTML=i}),(function(e){return console.error(e)}))}},{key:"colorize",value:function(e,t,n,i){var r=4;i&&"number"===typeof i.tabSize&&(r=i.tabSize),Ue.uS(t)&&(t=t.substr(1));var o=Ue.uq(t),a=e.getModeId(n);if(!a)return Promise.resolve(ln(o,r));e.triggerMode(a);var s=be.RW.get(a);if(s)return un(o,r,s);var u=be.RW.getPromise(a);return new Promise(u?function(e,t){u.then((function(n){un(o,r,n).then(e,t)}),t)}:function(e,t){var n=null,i=null,s=function(){n&&(n.dispose(),n=null),i&&(i.dispose(),i=null);var s=be.RW.get(a);s?un(o,r,s).then(e,t):e(ln(o,r))};(i=new De._F).cancelAndSet(s,500),n=be.RW.onDidChange((function(e){e.changedLanguages.indexOf(a)>=0&&s()}))})}},{key:"colorizeLine",value:function(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:4,o=jt.wA.isBasicASCII(e,t),a=jt.wA.containsRTL(e,o,n);return(0,Ft.tF)(new Ft.IJ(!1,!0,e,!1,o,a,0,i,[],r,0,0,0,0,-1,"none",!1,!1,null)).html}},{key:"colorizeModelLine",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4,i=e.getLineContent(t);e.forceTokenization(t);var r=e.getLineTokens(t).inflate();return this.colorizeLine(i,e.mightContainNonBasicASCII(),e.mightContainRTL(),r,n)}}]),e}();function un(e,t,n){return new Promise((function(i,r){!function o(){var a=function(e,t,n){for(var i=[],r=n.getInitialState(),o=0,a=e.length;o<a;o++){var s=e[o],u=n.tokenize2(s,!0,r,0);Zt.A.convertToEndOffset(u.tokens,s.length);var l=new Zt.A(u.tokens,s),c=jt.wA.isBasicASCII(s,!0),d=jt.wA.containsRTL(s,c,!0),h=(0,Ft.tF)(new Ft.IJ(!1,!0,s,!1,c,d,0,l.inflate(),[],t,0,0,0,0,-1,"none",!1,!1,null));(i=i.concat(h.html)).push("<br/>"),r=u.endState}return i.join("")}(e,t,n);if(n instanceof rn){var s=n.getLoadStatus();if(!1===s.loaded)return void s.promise.then(o,r)}i(a)}()}))}function ln(e,t){var n=[],i=new Uint32Array(2);i[0]=0,i[1]=16793600;for(var r=0,o=e.length;r<o;r++){var a=e[r];i[0]=a.length;var s=new Zt.A(i,a),u=jt.wA.isBasicASCII(a,!0),l=jt.wA.containsRTL(a,u,!0),c=(0,Ft.tF)(new Ft.IJ(!1,!0,a,!1,u,l,0,s,[],t,0,0,0,0,-1,"none",!1,!1,null));(n=n.concat(c.html)).push("<br/>")}return n.join("")}var cn=n(31737),dn=n(55046),hn=n(76191),fn=n(49803),pn=n(32995),gn=n(85025),vn=n(98921),mn=n(10405),_n=n(72885),yn=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];(0,F.Z)(this,e),this._contents=t,this._keys=n,this._overrides=i,this.isFrozen=!1}return(0,j.Z)(e,[{key:"contents",get:function(){return this.checkAndFreeze(this._contents)}},{key:"overrides",get:function(){return this.checkAndFreeze(this._overrides)}},{key:"keys",get:function(){return this.checkAndFreeze(this._keys)}},{key:"isEmpty",value:function(){return 0===this._keys.length&&0===Object.keys(this._contents).length&&0===this._overrides.length}},{key:"getValue",value:function(e){return e?(0,vn.Mt)(this.contents,e):this.contents}},{key:"override",value:function(t){var n=this.getContentsForOverrideIdentifer(t);if(!n||"object"!==typeof n||!Object.keys(n).length)return this;var i,r={},o=(0,X.Z)(wt.EB([].concat((0,J.Z)(Object.keys(this.contents)),(0,J.Z)(Object.keys(n)))));try{for(o.s();!(i=o.n()).done;){var a=i.value,s=this.contents[a],u=n[a];u&&("object"===typeof s&&"object"===typeof u?(s=mn.I8(s),this.mergeContents(s,u)):s=u),r[a]=s}}catch(l){o.e(l)}finally{o.f()}return new e(r,this.keys,this.overrides)}},{key:"merge",value:function(){for(var t=this,n=mn.I8(this.contents),i=mn.I8(this.overrides),r=(0,J.Z)(this.keys),o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];for(var u=0,l=a;u<l.length;u++){var c=l[u];this.mergeContents(n,c.contents);var d,h=(0,X.Z)(c.overrides);try{var f=function(){var e=d.value,n=i.filter((function(t){return wt.fS(t.identifiers,e.identifiers)})),r=(0,at.Z)(n,1)[0];r?t.mergeContents(r.contents,e.contents):i.push(mn.I8(e))};for(h.s();!(d=h.n()).done;)f()}catch(m){h.e(m)}finally{h.f()}var p,g=(0,X.Z)(c.keys);try{for(g.s();!(p=g.n()).done;){var v=p.value;-1===r.indexOf(v)&&r.push(v)}}catch(m){g.e(m)}finally{g.f()}}return new e(n,r,i)}},{key:"freeze",value:function(){return this.isFrozen=!0,this}},{key:"mergeContents",value:function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];r in e&&Ie.Kn(e[r])&&Ie.Kn(t[r])?this.mergeContents(e[r],t[r]):e[r]=mn.I8(t[r])}}},{key:"checkAndFreeze",value:function(e){return this.isFrozen&&!Object.isFrozen(e)?mn._A(e):e}},{key:"getContentsForOverrideIdentifer",value:function(e){var t,n=(0,X.Z)(this.overrides);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(-1!==i.identifiers.indexOf(e))return i.contents}}catch(r){n.e(r)}finally{n.f()}return null}},{key:"toJSON",value:function(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}},{key:"setValue",value:function(e,t){this.addKey(e),(0,vn.KV)(this.contents,e,t,(function(e){throw new Error(e)}))}},{key:"removeValue",value:function(e){this.removeKey(e)&&(0,vn.xL)(this.contents,e)}},{key:"addKey",value:function(e){for(var t=this.keys.length,n=0;n<t;n++)0===e.indexOf(this.keys[n])&&(t=n);this.keys.splice(t,1,e)}},{key:"removeKey",value:function(e){var t=this.keys.indexOf(e);return-1!==t&&(this.keys.splice(t,1),!0)}}]),e}(),bn=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){(0,F.Z)(this,n);for(var e=(0,vn.O4)(),i=(0,vn.MR)(),r=[],o=0,a=Object.keys(e);o<a.length;o++){var s=a[o];_n.G1.test(s)&&r.push({identifiers:[(0,_n.Uh)(s).trim()],keys:Object.keys(e[s]),contents:(0,vn.Od)(e[s],(function(e){return console.error("Conflict in default settings file: ".concat(e))}))})}return t.call(this,e,i,r)}return(0,j.Z)(n)}(yn),wn=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new yn,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new yn,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new re.Y9,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:new yn,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:new re.Y9,u=!(arguments.length>7&&void 0!==arguments[7])||arguments[7];(0,F.Z)(this,e),this._defaultConfiguration=t,this._localUserConfiguration=n,this._remoteUserConfiguration=i,this._workspaceConfiguration=r,this._folderConfigurations=o,this._memoryConfiguration=a,this._memoryConfigurationByResource=s,this._freeze=u,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new re.Y9,this._userConfiguration=null}return(0,j.Z)(e,[{key:"getValue",value:function(e,t,n){return this.getConsolidateConfigurationModel(t,n).getValue(e)}},{key:"updateValue",value:function(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i.resource?(n=this._memoryConfigurationByResource.get(i.resource))||(n=new yn,this._memoryConfigurationByResource.set(i.resource,n)):n=this._memoryConfiguration,void 0===t?n.removeValue(e):n.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}},{key:"userConfiguration",get:function(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration),this._freeze&&this._userConfiguration.freeze()),this._userConfiguration}},{key:"getConsolidateConfigurationModel",value:function(e,t){var n=this.getConsolidatedConfigurationModelForResource(e,t);return e.overrideIdentifier?n.override(e.overrideIdentifier):n}},{key:"getConsolidatedConfigurationModelForResource",value:function(e,t){var n=e.resource,i=this.getWorkspaceConsolidatedConfiguration();if(t&&n){var r=t.getFolder(n);r&&(i=this.getFolderConsolidatedConfiguration(r.uri)||i);var o=this._memoryConfigurationByResource.get(n);o&&(i=i.merge(o))}return i}},{key:"getWorkspaceConsolidatedConfiguration",value:function(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration),this._freeze&&(this._workspaceConfiguration=this._workspaceConfiguration.freeze())),this._workspaceConsolidatedConfiguration}},{key:"getFolderConsolidatedConfiguration",value:function(e){var t=this._foldersConsolidatedConfigurations.get(e);if(!t){var n=this.getWorkspaceConsolidatedConfiguration(),i=this._folderConfigurations.get(e);i?(t=n.merge(i),this._freeze&&(t=t.freeze()),this._foldersConsolidatedConfigurations.set(e,t)):t=n}return t}},{key:"toData",value:function(){var e=this;return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:(0,J.Z)(this._folderConfigurations.keys()).reduce((function(t,n){var i=e._folderConfigurations.get(n),r=i.contents,o=i.overrides,a=i.keys;return t.push([n,{contents:r,overrides:o,keys:a}]),t}),[])}}}],[{key:"parse",value:function(t){var n=this,i=this.parseConfigurationModel(t.defaults),r=this.parseConfigurationModel(t.user),o=this.parseConfigurationModel(t.workspace),a=t.folders.reduce((function(e,t){return e.set(W.o.revive(t[0]),n.parseConfigurationModel(t[1])),e}),new re.Y9);return new e(i,r,new yn,o,a,new yn,new re.Y9,!1)}},{key:"parseConfigurationModel",value:function(e){return new yn(e.contents,e.keys,e.overrides).freeze()}}]),e}(),Cn=function(){function e(t,n,i,r){(0,F.Z)(this,e),this.change=t,this.previous=n,this.currentConfiguraiton=i,this.currentWorkspace=r,this._previousConfiguration=void 0;var o=new Set;t.keys.forEach((function(e){return o.add(e)})),t.overrides.forEach((function(e){return(0,at.Z)(e,2)[1].forEach((function(e){return o.add(e)}))})),this.affectedKeys=(0,J.Z)(o.values());var a=new yn;this.affectedKeys.forEach((function(e){return a.setValue(e,{})})),this.affectedKeysTree=a.contents}return(0,j.Z)(e,[{key:"previousConfiguration",get:function(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=wn.parse(this.previous.data)),this._previousConfiguration}},{key:"affectsConfiguration",value:function(e,t){var n;if(this.doesAffectedKeysTreeContains(this.affectedKeysTree,e)){if(t){var i=this.previousConfiguration?this.previousConfiguration.getValue(e,t,null===(n=this.previous)||void 0===n?void 0:n.workspace):void 0,r=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!mn.fS(i,r)}return!0}return!1}},{key:"doesAffectedKeysTreeContains",value:function(e,t){for(var n,i=(0,vn.Od)((0,Ve.Z)({},t,!0),(function(){}));"object"===typeof i&&(n=Object.keys(i)[0]);){if(!(e=e[n]))return!1;i=i[n]}return!0}}]),e}(),kn=n(56345),Sn=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a){var s;return(0,F.Z)(this,n),(s=t.call(this))._contextKeyService=e,s._commandService=i,s._telemetryService=r,s._notificationService=o,s._logService=a,s._onDidUpdateKeybindings=s._register(new B.Q5),s._currentChord=null,s._currentChordChecker=new De.zh,s._currentChordStatusMessage=null,s._currentSingleModifier=null,s._currentSingleModifierClearTimeout=new De._F,s._logging=!1,s}return(0,j.Z)(n,[{key:"onDidUpdateKeybindings",get:function(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:B.ju.None}},{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"_log",value:function(e){this._logging&&this._logService.info("[KeybindingService]: ".concat(e))}},{key:"getKeybindings",value:function(){return this._getResolver().getKeybindings()}},{key:"lookupKeybinding",value:function(e){var t=this._getResolver().lookupPrimaryKeybinding(e);if(t)return t.resolvedKeybinding}},{key:"dispatchEvent",value:function(e,t){return this._dispatch(e,t)}},{key:"softDispatch",value:function(e,t){var n=this.resolveKeyboardEvent(e);if(n.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),null;var i=n.getDispatchParts(),r=(0,at.Z)(i,1)[0];if(null===r)return null;var o=this._contextKeyService.getContext(t),a=this._currentChord?this._currentChord.keypress:null;return this._getResolver().resolve(o,a,r)}},{key:"_enterChordMode",value:function(e,t){var n=this;this._currentChord={keypress:e,label:t},this._currentChordStatusMessage=this._notificationService.status(kn.N("first.chord","({0}) was pressed. Waiting for second key of chord...",t));var i=Date.now();this._currentChordChecker.cancelAndSet((function(){n._documentHasFocus()?Date.now()-i>5e3&&n._leaveChordMode():n._leaveChordMode()}),500)}},{key:"_leaveChordMode",value:function(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChord=null}},{key:"_dispatch",value:function(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}},{key:"_singleModifierDispatch",value:function(e,t){var n=this,i=this.resolveKeyboardEvent(e),r=i.getSingleModifierDispatchParts(),o=(0,at.Z)(r,1)[0];return null!==o&&null===this._currentSingleModifier?(this._log("+ Storing single modifier for possible chord ".concat(o,".")),this._currentSingleModifier=o,this._currentSingleModifierClearTimeout.cancelAndSet((function(){n._log("+ Clearing single modifier due to 300ms elapsed."),n._currentSingleModifier=null}),300),!1):null!==o&&o===this._currentSingleModifier?(this._log("/ Dispatching single modifier chord ".concat(o," ").concat(o)),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1)}},{key:"_doDispatch",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=!1;if(e.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),!1;var o=null,a=null;if(i){var s=e.getSingleModifierDispatchParts(),u=(0,at.Z)(s,1)[0];o=u,a=u}else{var l=e.getDispatchParts();o=(0,at.Z)(l,1)[0],a=this._currentChord?this._currentChord.keypress:null}if(null===o)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),r;var c=this._contextKeyService.getContext(t),d=e.getLabel(),h=this._getResolver().resolve(c,a,o);return this._logService.trace("KeybindingService#dispatch",d,null===h||void 0===h?void 0:h.commandId),h&&h.enterChord?(r=!0,this._enterChordMode(o,d),r):(this._currentChord&&(h&&h.commandId||(this._notificationService.status(kn.N("missing.chord","The key combination ({0}, {1}) is not a command.",this._currentChord.label,d),{hideAfter:1e4}),r=!0)),this._leaveChordMode(),h&&h.commandId&&(h.bubble||(r=!0),"undefined"===typeof h.commandArgs?this._commandService.executeCommand(h.commandId).then(void 0,(function(e){return n._notificationService.warn(e)})):this._commandService.executeCommand(h.commandId,h.commandArgs).then(void 0,(function(e){return n._notificationService.warn(e)})),this._telemetryService.publicLog2("workbenchActionExecuted",{id:h.commandId,from:"keybinding"})),r)}},{key:"mightProducePrintableCharacter",value:function(e){return!e.ctrlKey&&!e.metaKey&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30)}}]),n}(Me.JT),xn=function(){function e(t,n,i){(0,F.Z)(this,e),this._log=i,this._defaultKeybindings=t,this._defaultBoundCommands=new Map;for(var r=0,o=t.length;r<o;r++){var a=t[r].command;a&&this._defaultBoundCommands.set(a,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=e.combine(t,n);for(var s=0,u=this._keybindings.length;s<u;s++){var l=this._keybindings[s];0!==l.keypressParts.length&&(l.when&&0===l.when.type||this._addKeyPress(l.keypressParts[0],l))}}return(0,j.Z)(e,[{key:"_addKeyPress",value:function(t,n){var i=this._map.get(t);if("undefined"===typeof i)return this._map.set(t,[n]),void this._addToLookupMap(n);for(var r=i.length-1;r>=0;r--){var o=i[r];if(o.command!==n.command){var a=o.keypressParts.length>1,s=n.keypressParts.length>1;a&&s&&o.keypressParts[1]!==n.keypressParts[1]||e.whenIsEntirelyIncluded(o.when,n.when)&&this._removeFromLookupMap(o)}}i.push(n),this._addToLookupMap(n)}},{key:"_addToLookupMap",value:function(e){if(e.command){var t=this._lookupMap.get(e.command);"undefined"===typeof t?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}}},{key:"_removeFromLookupMap",value:function(e){if(e.command){var t=this._lookupMap.get(e.command);if("undefined"!==typeof t)for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return void t.splice(n,1)}}},{key:"getKeybindings",value:function(){return this._keybindings}},{key:"lookupPrimaryKeybinding",value:function(e){var t=this._lookupMap.get(e);return"undefined"===typeof t||0===t.length?null:t[t.length-1]}},{key:"resolve",value:function(e,t,n){this._log("| Resolving ".concat(n).concat(t?" chorded from ".concat(t):""));var i=null;if(null!==t){var r=this._map.get(t);if("undefined"===typeof r)return this._log("\\ No keybinding entries."),null;i=[];for(var o=0,a=r.length;o<a;o++){var s=r[o];s.keypressParts[1]===n&&i.push(s)}}else{var u=this._map.get(n);if("undefined"===typeof u)return this._log("\\ No keybinding entries."),null;i=u}var l=this._findCommand(e,i);return l?null===t&&l.keypressParts.length>1&&null!==l.keypressParts[1]?(this._log("\\ From ".concat(i.length," keybinding entries, matched chord, when: ").concat(Ln(l.when),", source: ").concat(En(l),".")),{enterChord:!0,leaveChord:!1,commandId:null,commandArgs:null,bubble:!1}):(this._log("\\ From ".concat(i.length," keybinding entries, matched ").concat(l.command,", when: ").concat(Ln(l.when),", source: ").concat(En(l),".")),{enterChord:!1,leaveChord:l.keypressParts.length>1,commandId:l.command,commandArgs:l.commandArgs,bubble:l.bubble}):(this._log("\\ From ".concat(i.length," keybinding entries, no when clauses matched the context.")),null)}},{key:"_findCommand",value:function(t,n){for(var i=n.length-1;i>=0;i--){var r=n[i];if(e.contextMatchesRules(t,r.when))return r}return null}}],[{key:"_isTargetedForRemoval",value:function(e,t,n,i,r){if(e.command!==i)return!1;if(t&&e.keypressParts[0]!==t)return!1;if(n&&e.keypressParts[1]!==n)return!1;if(r){if(!e.when)return!1;if(!r.equals(e.when))return!1}return!0}},{key:"combine",value:function(e,t){e=e.slice(0);var n,i=[],r=(0,X.Z)(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(o.command&&0!==o.command.length&&"-"===o.command.charAt(0))for(var a=o.command.substr(1),s=o.keypressParts[0],u=o.keypressParts[1],l=o.when,c=e.length-1;c>=0;c--)this._isTargetedForRemoval(e[c],s,u,a,l)&&e.splice(c,1);else i.push(o)}}catch(d){r.e(d)}finally{r.f()}return e.concat(i)}},{key:"whenIsEntirelyIncluded",value:function(e,t){return!t||!!e&&this._implies(e,t)}},{key:"_implies",value:function(e,t){for(var n=function(e){return 9===e.type?e.expr:[e]},i=n(e.negate()).concat(n(t)),r=0;r<i.length;r++)for(var o=i[r].negate(),a=r+1;a<i.length;a++){var s=i[a];if(o.equals(s))return!0}return!1}},{key:"contextMatchesRules",value:function(e,t){return!t||t.evaluate(e)}}]),e}();function Ln(e){return e?"".concat(e.serialize()):"no when condition"}function En(e){return e.extensionId?e.isBuiltinExtension?"built-in extension ".concat(e.extensionId):"user extension ".concat(e.extensionId):e.isDefault?"built-in":"user"}var Nn=n(51519),Dn=(0,j.Z)((function e(t,n,i,r,o,a,s){(0,F.Z)(this,e),this.resolvedKeybinding=t,this.keypressParts=t?Mn(t.getDispatchParts()):[],t&&0===this.keypressParts.length&&(this.keypressParts=Mn(t.getSingleModifierDispatchParts())),this.bubble=!!n&&94===n.charCodeAt(0),this.command=this.bubble?n.substr(1):n,this.commandArgs=i,this.when=r,this.isDefault=o,this.extensionId=a,this.isBuiltinExtension=s}));function Mn(e){for(var t=[],n=0,i=e.length;n<i;n++){var r=e[n];if(!r)return t;t.push(r)}return t}var Tn=n(85733),On=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;if((0,F.Z)(this,n),r=t.call(this),0===i.length)throw(0,Te.b1)("parts");return r._os=e,r._parts=i,r}return(0,j.Z)(n,[{key:"getLabel",value:function(){var e=this;return Tn.xo.toLabel(this._os,this._parts,(function(t){return e._getLabel(t)}))}},{key:"getAriaLabel",value:function(){var e=this;return Tn.X4.toLabel(this._os,this._parts,(function(t){return e._getAriaLabel(t)}))}},{key:"isChord",value:function(){return this._parts.length>1}},{key:"getParts",value:function(){var e=this;return this._parts.map((function(t){return e._getPart(t)}))}},{key:"_getPart",value:function(e){return new z.BQ(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}},{key:"getDispatchParts",value:function(){var e=this;return this._parts.map((function(t){return e._getDispatchPart(t)}))}},{key:"getSingleModifierDispatchParts",value:function(){var e=this;return this._parts.map((function(t){return e._getSingleModifierDispatchPart(t)}))}}]),n}(z.f1),In=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){return(0,F.Z)(this,n),t.call(this,i,e.parts)}return(0,j.Z)(n,[{key:"_keyCodeToUILabel",value:function(e){if(2===this._os)switch(e){case 15:return"\u2190";case 16:return"\u2191";case 17:return"\u2192";case 18:return"\u2193"}return z.kL.toString(e)}},{key:"_getLabel",value:function(e){return e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode)}},{key:"_getAriaLabel",value:function(e){return e.isDuplicateModifierCase()?"":z.kL.toString(e.keyCode)}},{key:"_getDispatchPart",value:function(e){return n.getDispatchStr(e)}},{key:"_getSingleModifierDispatchPart",value:function(e){return 5!==e.keyCode||e.shiftKey||e.altKey||e.metaKey?4!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey?6!==e.keyCode||e.ctrlKey||e.shiftKey||e.metaKey?57!==e.keyCode||e.ctrlKey||e.shiftKey||e.altKey?null:"meta":"alt":"shift":"ctrl"}}],[{key:"getDispatchStr",value:function(e){if(e.isModifierKey())return null;var t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+=z.kL.toString(e.keyCode)}}]),n}(On),An=n(71574),Rn=n(37753),Pn=n(25741),Zn=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Fn=function(e,t){return function(n,i){t(n,i,e)}},jn=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Hn=function(){function e(t){(0,F.Z)(this,e),this.disposed=!1,this.model=t,this._onWillDispose=new B.Q5}return(0,j.Z)(e,[{key:"textEditorModel",get:function(){return this.model}},{key:"dispose",value:function(){this.disposed=!0,this._onWillDispose.fire()}}]),e}();var Bn=function(){function e(t){(0,F.Z)(this,e),this.modelService=t}return(0,j.Z)(e,[{key:"setEditor",value:function(e){this.editor=e}},{key:"createModelReference",value:function(e){var t,n,i,r=this,o=null;return this.editor&&(t=this.editor,n=function(t){return r.findModel(t,e)},i=function(t){return r.findModel(t.getOriginalEditor(),e)||r.findModel(t.getModifiedEditor(),e)},o=(0,hn.CL)(t)?n(t):i(t)),o?Promise.resolve(new Me.Jz(new Hn(o))):Promise.reject(new Error("Model not found"))}},{key:"findModel",value:function(e,t){var n=this.modelService.getModel(t);return n&&n.uri.toString()!==t.toString()?null:n}}]),e}();Bn=Zn([Fn(0,yt.q)],Bn);var zn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"show",value:function(){return e.NULL_PROGRESS_RUNNER}},{key:"showWhile",value:function(e,t){return jn(this,void 0,void 0,te().mark((function t(){return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e;case 2:case"end":return t.stop()}}),t)})))}}]),e}();zn.NULL_PROGRESS_RUNNER={done:function(){},total:function(){},worked:function(){}};var Wn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"confirm",value:function(e){return this.doConfirm(e).then((function(e){return{confirmed:e,checkboxChecked:!1}}))}},{key:"doConfirm",value:function(e){var t=e.message;return e.detail&&(t=t+"\n\n"+e.detail),Promise.resolve(window.confirm(t))}},{key:"show",value:function(e,t,n,i){return Promise.resolve({choice:0})}}]),e}(),Vn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"info",value:function(e){return this.notify({severity:dn.Z.Info,message:e})}},{key:"warn",value:function(e){return this.notify({severity:dn.Z.Warning,message:e})}},{key:"error",value:function(e){return this.notify({severity:dn.Z.Error,message:e})}},{key:"notify",value:function(t){switch(t.severity){case dn.Z.Error:console.error(t.message);break;case dn.Z.Warning:console.warn(t.message);break;default:console.log(t.message)}return e.NO_OP}},{key:"status",value:function(e,t){return Me.JT.None}}]),e}();Vn.NO_OP=new An.EO;var Yn=function(){function e(t){(0,F.Z)(this,e),this._onWillExecuteCommand=new B.Q5,this._onDidExecuteCommand=new B.Q5,this._instantiationService=t}return(0,j.Z)(e,[{key:"executeCommand",value:function(e){var t=ue.P.getCommand(e);if(!t)return Promise.reject(new Error("command '".concat(e,"' not found")));try{for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];this._onWillExecuteCommand.fire({commandId:e,args:i});var o=this._instantiationService.invokeFunction.apply(this._instantiationService,[t.handler].concat(i));return this._onDidExecuteCommand.fire({commandId:e,args:i}),Promise.resolve(o)}catch(a){return Promise.reject(a)}}}]),e}(),Un=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s){var u;return(0,F.Z)(this,n),(u=t.call(this,e,i,r,o,a))._cachedResolver=null,u._dynamicKeybindings=[],u._register(ne.addDisposableListener(s,ne.EventType.KEY_DOWN,(function(e){var t=new cn.y(e);u._dispatch(t,t.target)&&(t.preventDefault(),t.stopPropagation())}))),u._register(ne.addDisposableListener(window,ne.EventType.KEY_UP,(function(e){var t=new cn.y(e);u._singleModifierDispatch(t,t.target)&&t.preventDefault()}))),u}return(0,j.Z)(n,[{key:"addDynamicKeybinding",value:function(e,t,n,i){var r=this,o=(0,z.gm)(t,Oe.OS),a=new Me.SL;return o&&(this._dynamicKeybindings.push({keybinding:o,command:e,when:i,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}),a.add((0,Me.OF)((function(){for(var t=0;t<r._dynamicKeybindings.length;t++){if(r._dynamicKeybindings[t].command===e)return r._dynamicKeybindings.splice(t,1),void r.updateResolver({source:1})}})))),a.add(ue.P.registerCommand(e,n)),this.updateResolver({source:1}),a}},{key:"updateResolver",value:function(e){this._cachedResolver=null,this._onDidUpdateKeybindings.fire(e)}},{key:"_getResolver",value:function(){var e=this;if(!this._cachedResolver){var t=this._toNormalizedKeybindingItems(Nn.W.getDefaultKeybindings(),!0),n=this._toNormalizedKeybindingItems(this._dynamicKeybindings,!1);this._cachedResolver=new xn(t,n,(function(t){return e._log(t)}))}return this._cachedResolver}},{key:"_documentHasFocus",value:function(){return document.hasFocus()}},{key:"_toNormalizedKeybindingItems",value:function(e,t){var n,i=[],r=0,o=(0,X.Z)(e);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=a.when||void 0,u=a.keybinding;if(u){var l,c=this.resolveKeybinding(u),d=(0,X.Z)(c);try{for(d.s();!(l=d.n()).done;){var h=l.value;i[r++]=new Dn(h,a.command,a.commandArgs,s,t,null,!1)}}catch(f){d.e(f)}finally{d.f()}}else i[r++]=new Dn(void 0,a.command,a.commandArgs,s,t,null,!1)}}catch(f){o.e(f)}finally{o.f()}return i}},{key:"resolveKeybinding",value:function(e){return[new In(e,Oe.OS)]}},{key:"resolveKeyboardEvent",value:function(e){var t=new z.QC(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode).toChord();return new In(t,Oe.OS)}}]),n}(Sn);function Kn(e){return e&&"object"===typeof e&&(!e.overrideIdentifier||"string"===typeof e.overrideIdentifier)&&(!e.resource||e.resource instanceof W.o)}var qn=function(){function e(){(0,F.Z)(this,e),this._onDidChangeConfiguration=new B.Q5,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._configuration=new wn(new bn,new yn)}return(0,j.Z)(e,[{key:"getValue",value:function(e,t){var n="string"===typeof e?e:void 0,i=Kn(e)?e:Kn(t)?t:{};return this._configuration.getValue(n,i,void 0)}},{key:"updateValues",value:function(e){var t,n={data:this._configuration.toData()},i=[],r=(0,X.Z)(e);try{for(r.s();!(t=r.n()).done;){var o=t.value,a=(0,at.Z)(o,2),s=a[0],u=a[1];this.getValue(s)!==u&&(this._configuration.updateValue(s,u),i.push(s))}}catch(c){r.e(c)}finally{r.f()}if(i.length>0){var l=new Cn({keys:i,overrides:[]},n,this._configuration);l.source=7,l.sourceConfig=null,this._onDidChangeConfiguration.fire(l)}return Promise.resolve()}}]),e}(),Gn=function(){function e(t){var n=this;(0,F.Z)(this,e),this.configurationService=t,this._onDidChangeConfiguration=new B.Q5,this.configurationService.onDidChangeConfiguration((function(e){n._onDidChangeConfiguration.fire({affectedKeys:e.affectedKeys,affectsConfiguration:function(t,n){return e.affectsConfiguration(n)}})}))}return(0,j.Z)(e,[{key:"getValue",value:function(e,t,n){var i=(V.L.isIPosition(t)?t:null)?"string"===typeof n?n:void 0:"string"===typeof t?t:void 0;return"undefined"===typeof i?this.configurationService.getValue():this.configurationService.getValue(i)}}]),e}(),$n=function(){function e(t){(0,F.Z)(this,e),this.configurationService=t}return(0,j.Z)(e,[{key:"getEOL",value:function(e,t){var n=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return n&&"auto"!==n?n:Oe.IJ||Oe.dz?"\n":"\r\n"}}]),e}();$n=Zn([Fn(0,vn.Ui)],$n);var Qn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"publicLog",value:function(e,t){return Promise.resolve(void 0)}},{key:"publicLog2",value:function(e,t){return this.publicLog(e,t)}}]),e}(),Xn=function(){function e(){(0,F.Z)(this,e);var t=W.o.from({scheme:e.SCHEME,authority:"model",path:"/"});this.workspace={id:"4064f6ec-cb38-4ad0-af64-ee6467e63c82",folders:[new Rn.md({uri:t,name:"",index:0})]}}return(0,j.Z)(e,[{key:"getWorkspace",value:function(){return this.workspace}}]),e}();function Jn(e,t,n){if(t&&e instanceof qn){var i=[];Object.keys(t).forEach((function(e){(0,pn.ei)(e)&&i.push(["editor.".concat(e),t[e]]),n&&(0,pn.Pe)(e)&&i.push(["diffEditor.".concat(e),t[e]])})),i.length>0&&e.updateValues(i)}}Xn.SCHEME="inmemory";var ei=function(){function e(t){(0,F.Z)(this,e),this._modelService=t}return(0,j.Z)(e,[{key:"hasPreviewHandler",value:function(){return!1}},{key:"apply",value:function(e,t){return jn(this,void 0,void 0,te().mark((function t(){var n,i,r,o,a,s,u,l,c,d,h,f,p;return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=new Map,i=(0,X.Z)(e),t.prev=2,i.s();case 4:if((r=i.n()).done){t.next=18;break}if((o=r.value)instanceof fn.Gl){t.next=8;break}throw new Error("bad edit - only text edits are supported");case 8:if(a=this._modelService.getModel(o.resource)){t.next=11;break}throw new Error("bad edit - model not found");case 11:if("number"!==typeof o.versionId||a.getVersionId()===o.versionId){t.next=13;break}throw new Error("bad state - model changed in the meantime");case 13:(s=n.get(a))||(s=[],n.set(a,s)),s.push(gn.h.replaceMove(Y.e.lift(o.textEdit.range),o.textEdit.text));case 16:t.next=4;break;case 18:t.next=23;break;case 20:t.prev=20,t.t0=t.catch(2),i.e(t.t0);case 23:return t.prev=23,i.f(),t.finish(23);case 26:u=0,l=0,c=(0,X.Z)(n);try{for(c.s();!(d=c.n()).done;)h=(0,at.Z)(d.value,2),f=h[0],p=h[1],f.pushStackElement(),f.pushEditOperations([],p,(function(){return[]})),f.pushStackElement(),l+=1,u+=p.length}catch(g){c.e(g)}finally{c.f()}return t.abrupt("return",{ariaSummary:Ue.WU(Pn.UL.bulkEditServiceSummary,u,l)});case 31:case"end":return t.stop()}}),t,this,[[2,20,23,26]])})))}}]),e}(),ti=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"getUriLabel",value:function(e,t){return"file"===e.scheme?e.fsPath:e.path}}]),e}(),ni=function(){function e(t,n){(0,F.Z)(this,e),this._codeEditorService=t,this._container=n,this.onDidLayout=B.ju.None}return(0,j.Z)(e,[{key:"dimension",get:function(){return this._dimension||(this._dimension=ne.getClientArea(window.document.body)),this._dimension}},{key:"container",get:function(){return this._container}},{key:"focus",value:function(){var e;null===(e=this._codeEditorService.getFocusedCodeEditor())||void 0===e||e.focus()}}]),e}(),ii=n(52180),ri=n(95079),oi=n(20224),ai=n(30633),si=n(51342),ui=n(31585),li=n(18948),ci=n(98989),di=n(84596),hi=n(97963),fi=n(70182),pi=n(40782),gi=n(38794),vi=n(18085),mi=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e;return(0,F.Z)(this,n),(e=t.call(this))._onCodeEditorAdd=e._register(new B.Q5),e.onCodeEditorAdd=e._onCodeEditorAdd.event,e._onCodeEditorRemove=e._register(new B.Q5),e.onCodeEditorRemove=e._onCodeEditorRemove.event,e._onDiffEditorAdd=e._register(new B.Q5),e._onDiffEditorRemove=e._register(new B.Q5),e._onDecorationTypeRegistered=e._register(new B.Q5),e._modelProperties=new Map,e._codeEditors=Object.create(null),e._diffEditors=Object.create(null),e}return(0,j.Z)(n,[{key:"addCodeEditor",value:function(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}},{key:"removeCodeEditor",value:function(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}},{key:"listCodeEditors",value:function(){var e=this;return Object.keys(this._codeEditors).map((function(t){return e._codeEditors[t]}))}},{key:"addDiffEditor",value:function(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}},{key:"removeDiffEditor",value:function(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)}},{key:"listDiffEditors",value:function(){var e=this;return Object.keys(this._diffEditors).map((function(t){return e._diffEditors[t]}))}},{key:"getFocusedCodeEditor",value:function(){var e,t=null,n=this.listCodeEditors(),i=(0,X.Z)(n);try{for(i.s();!(e=i.n()).done;){var r=e.value;if(r.hasTextFocus())return r;r.hasWidgetFocus()&&(t=r)}}catch(o){i.e(o)}finally{i.f()}return t}},{key:"setModelProperty",value:function(e,t,n){var i,r=e.toString();this._modelProperties.has(r)?i=this._modelProperties.get(r):(i=new Map,this._modelProperties.set(r,i)),i.set(t,n)}},{key:"getModelProperty",value:function(e,t){var n=e.toString();if(this._modelProperties.has(n))return this._modelProperties.get(n).get(t)}}]),n}(Me.JT),_i=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},yi=function(e,t){return function(n,i){t(n,i,e)}},bi=function(){function e(t,n,i){(0,F.Z)(this,e),this._parent=t,this._editorId=n,this._styleSheet=i,this._refCount=0}return(0,j.Z)(e,[{key:"ref",value:function(){this._refCount++}},{key:"unref",value:function(){var e;this._refCount--,0===this._refCount&&(null===(e=this._styleSheet.parentNode)||void 0===e||e.removeChild(this._styleSheet),this._parent._removeEditorStyleSheets(this._editorId))}},{key:"insertRule",value:function(e,t){this._styleSheet.sheet.insertRule(e,t)}},{key:"removeRulesContainingSelector",value:function(e){ne.removeCSSRulesContainingSelector(e,this._styleSheet)}}]),e}(),wi=function(){function e(t){(0,F.Z)(this,e),this._styleSheet=t}return(0,j.Z)(e,[{key:"ref",value:function(){}},{key:"unref",value:function(){}},{key:"insertRule",value:function(e,t){this._styleSheet.sheet.insertRule(e,t)}},{key:"removeRulesContainingSelector",value:function(e){ne.removeCSSRulesContainingSelector(e,this._styleSheet)}}]),e}(),Ci=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this))._decorationOptionProviders=new Map,r._editorStyleSheets=new Map,r._globalStyleSheet=e||null,r._themeService=i,r}return(0,j.Z)(n,[{key:"_getOrCreateGlobalStyleSheet",value:function(){return this._globalStyleSheet||(this._globalStyleSheet=new wi(ne.createStyleSheet())),this._globalStyleSheet}},{key:"_getOrCreateStyleSheet",value:function(e){if(!e)return this._getOrCreateGlobalStyleSheet();var t=e.getContainerDomNode();if(!ne.isInShadowDOM(t))return this._getOrCreateGlobalStyleSheet();var n=e.getId();if(!this._editorStyleSheets.has(n)){var i=new bi(this,n,ne.createStyleSheet(t));this._editorStyleSheets.set(n,i)}return this._editorStyleSheets.get(n)}},{key:"_removeEditorStyleSheets",value:function(e){this._editorStyleSheets.delete(e)}},{key:"registerDecorationType",value:function(e,t,n,i){var r=this._decorationOptionProviders.get(e);if(!r){var o=this._getOrCreateStyleSheet(i),a={styleSheet:o,key:e,parentTypeKey:n,options:t||Object.create(null)};r=n?new ki(this._themeService,o,a):new Si(this._themeService,o,a),this._decorationOptionProviders.set(e,r),this._onDecorationTypeRegistered.fire(e)}r.refCount++}},{key:"removeDecorationType",value:function(e){var t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach((function(t){return t.removeDecorations(e)}))))}},{key:"resolveDecorationOptions",value:function(e,t){var n=this._decorationOptionProviders.get(e);if(!n)throw new Error("Unknown decoration type key: "+e);return n.getOptions(this,t)}}]),n}(mi);Ci=_i([yi(1,fi.XE)],Ci);var ki=function(){function e(t,n,i){(0,F.Z)(this,e),this._styleSheet=n,this._styleSheet.ref(),this._parentTypeKey=i.parentTypeKey,this.refCount=0,this._beforeContentRules=new Li(3,i,t),this._afterContentRules=new Li(4,i,t)}return(0,j.Z)(e,[{key:"getOptions",value:function(e,t){var n=e.resolveDecorationOptions(this._parentTypeKey,!0);return this._beforeContentRules&&(n.beforeContentClassName=this._beforeContentRules.className),this._afterContentRules&&(n.afterContentClassName=this._afterContentRules.className),n}},{key:"dispose",value:function(){this._beforeContentRules&&(this._beforeContentRules.dispose(),this._beforeContentRules=null),this._afterContentRules&&(this._afterContentRules.dispose(),this._afterContentRules=null),this._styleSheet.unref()}}]),e}(),Si=function(){function e(t,n,i){var r=this;(0,F.Z)(this,e),this._disposables=new Me.SL,this._styleSheet=n,this._styleSheet.ref(),this.refCount=0;var o=function(e){var n=new Li(e,i,t);if(r._disposables.add(n),n.hasContent)return n.className};this.className=o(0);var a=function(e){var n=new Li(e,i,t);return r._disposables.add(n),n.hasContent?{className:n.className,hasLetterSpacing:n.hasLetterSpacing}:null}(1);a&&(this.inlineClassName=a.className,this.inlineClassNameAffectsLetterSpacing=a.hasLetterSpacing),this.beforeContentClassName=o(3),this.afterContentClassName=o(4),this.glyphMarginClassName=o(2);var s=i.options;this.isWholeLine=Boolean(s.isWholeLine),this.stickiness=s.rangeBehavior;var u=s.light&&s.light.overviewRulerColor||s.overviewRulerColor,l=s.dark&&s.dark.overviewRulerColor||s.overviewRulerColor;"undefined"===typeof u&&"undefined"===typeof l||(this.overviewRuler={color:u||l,darkColor:l||u,position:s.overviewRulerLane||ye.sh.Center})}return(0,j.Z)(e,[{key:"getOptions",value:function(e,t){return t?{inlineClassName:this.inlineClassName,beforeContentClassName:this.beforeContentClassName,afterContentClassName:this.afterContentClassName,className:this.className,glyphMarginClassName:this.glyphMarginClassName,isWholeLine:this.isWholeLine,overviewRuler:this.overviewRuler,stickiness:this.stickiness}:this}},{key:"dispose",value:function(){this._disposables.dispose(),this._styleSheet.unref()}}]),e}(),xi={color:"color:{0} !important;",opacity:"opacity:{0};",backgroundColor:"background-color:{0};",outline:"outline:{0};",outlineColor:"outline-color:{0};",outlineStyle:"outline-style:{0};",outlineWidth:"outline-width:{0};",border:"border:{0};",borderColor:"border-color:{0};",borderRadius:"border-radius:{0};",borderSpacing:"border-spacing:{0};",borderStyle:"border-style:{0};",borderWidth:"border-width:{0};",fontStyle:"font-style:{0};",fontWeight:"font-weight:{0};",fontSize:"font-size:{0};",fontFamily:"font-family:{0};",textDecoration:"text-decoration:{0};",cursor:"cursor:{0};",letterSpacing:"letter-spacing:{0};",gutterIconPath:"background:{0} center center no-repeat;",gutterIconSize:"background-size:{0};",contentText:"content:'{0}';",contentIconPath:"content:{0};",margin:"margin:{0};",padding:"padding:{0};",width:"width:{0};",height:"height:{0};"},Li=function(){function e(t,n,i){var r=this;(0,F.Z)(this,e),this._theme=i.getColorTheme(),this._ruleType=t,this._providerArgs=n,this._usesThemeColors=!1,this._hasContent=!1,this._hasLetterSpacing=!1;var o=Ei.getClassName(this._providerArgs.key,t);this._providerArgs.parentTypeKey&&(o=o+" "+Ei.getClassName(this._providerArgs.parentTypeKey,t)),this._className=o,this._unThemedSelector=Ei.getSelector(this._providerArgs.key,this._providerArgs.parentTypeKey,t),this._buildCSS(),this._usesThemeColors?this._themeListener=i.onDidColorThemeChange((function(e){r._theme=i.getColorTheme(),r._removeCSS(),r._buildCSS()})):this._themeListener=null}return(0,j.Z)(e,[{key:"dispose",value:function(){this._hasContent&&(this._removeCSS(),this._hasContent=!1),this._themeListener&&(this._themeListener.dispose(),this._themeListener=null)}},{key:"hasContent",get:function(){return this._hasContent}},{key:"hasLetterSpacing",get:function(){return this._hasLetterSpacing}},{key:"className",get:function(){return this._className}},{key:"_buildCSS",value:function(){var e,t,n,i=this._providerArgs.options;switch(this._ruleType){case 0:e=this.getCSSTextForModelDecorationClassName(i),t=this.getCSSTextForModelDecorationClassName(i.light),n=this.getCSSTextForModelDecorationClassName(i.dark);break;case 1:e=this.getCSSTextForModelDecorationInlineClassName(i),t=this.getCSSTextForModelDecorationInlineClassName(i.light),n=this.getCSSTextForModelDecorationInlineClassName(i.dark);break;case 2:e=this.getCSSTextForModelDecorationGlyphMarginClassName(i),t=this.getCSSTextForModelDecorationGlyphMarginClassName(i.light),n=this.getCSSTextForModelDecorationGlyphMarginClassName(i.dark);break;case 3:e=this.getCSSTextForModelDecorationContentClassName(i.before),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.before),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.before);break;case 4:e=this.getCSSTextForModelDecorationContentClassName(i.after),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.after),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.after);break;default:throw new Error("Unknown rule type: "+this._ruleType)}var r=this._providerArgs.styleSheet,o=!1;e.length>0&&(r.insertRule("".concat(this._unThemedSelector," {").concat(e,"}"),0),o=!0),t.length>0&&(r.insertRule(".vs".concat(this._unThemedSelector," {").concat(t,"}"),0),o=!0),n.length>0&&(r.insertRule(".vs-dark".concat(this._unThemedSelector,", .hc-black").concat(this._unThemedSelector," {").concat(n,"}"),0),o=!0),this._hasContent=o}},{key:"_removeCSS",value:function(){this._providerArgs.styleSheet.removeRulesContainingSelector(this._unThemedSelector)}},{key:"getCSSTextForModelDecorationClassName",value:function(e){if(!e)return"";var t=[];return this.collectCSSText(e,["backgroundColor"],t),this.collectCSSText(e,["outline","outlineColor","outlineStyle","outlineWidth"],t),this.collectBorderSettingsCSSText(e,t),t.join("")}},{key:"getCSSTextForModelDecorationInlineClassName",value:function(e){if(!e)return"";var t=[];return this.collectCSSText(e,["fontStyle","fontWeight","textDecoration","cursor","color","opacity","letterSpacing"],t),e.letterSpacing&&(this._hasLetterSpacing=!0),t.join("")}},{key:"getCSSTextForModelDecorationContentClassName",value:function(e){if(!e)return"";var t=[];if("undefined"!==typeof e){if(this.collectBorderSettingsCSSText(e,t),"undefined"!==typeof e.contentIconPath&&t.push(Ue.WU(xi.contentIconPath,ne.asCSSUrl(W.o.revive(e.contentIconPath)))),"string"===typeof e.contentText){var n=e.contentText.match(/^.*$/m)[0].replace(/['\\]/g,"\\$&");t.push(Ue.WU(xi.contentText,n))}this.collectCSSText(e,["fontStyle","fontWeight","fontSize","fontFamily","textDecoration","color","opacity","backgroundColor","margin","padding"],t),this.collectCSSText(e,["width","height"],t)&&t.push("display:inline-block;")}return t.join("")}},{key:"getCSSTextForModelDecorationGlyphMarginClassName",value:function(e){if(!e)return"";var t=[];return"undefined"!==typeof e.gutterIconPath&&(t.push(Ue.WU(xi.gutterIconPath,ne.asCSSUrl(W.o.revive(e.gutterIconPath)))),"undefined"!==typeof e.gutterIconSize&&t.push(Ue.WU(xi.gutterIconSize,e.gutterIconSize))),t.join("")}},{key:"collectBorderSettingsCSSText",value:function(e,t){return!!this.collectCSSText(e,["border","borderColor","borderRadius","borderSpacing","borderStyle","borderWidth"],t)&&(t.push(Ue.WU("box-sizing: border-box;")),!0)}},{key:"collectCSSText",value:function(e,t,n){var i,r=n.length,o=(0,X.Z)(t);try{for(o.s();!(i=o.n()).done;){var a=i.value,s=this.resolveValue(e[a]);"string"===typeof s&&n.push(Ue.WU(xi[a],s))}}catch(u){o.e(u)}finally{o.f()}return n.length!==r}},{key:"resolveValue",value:function(e){if((0,_e.I)(e)){this._usesThemeColors=!0;var t=this._theme.getColor(e.id);return t?t.toString():"transparent"}return e}}]),e}(),Ei=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,null,[{key:"getClassName",value:function(e,t){return"ced-"+e+"-"+t}},{key:"getSelector",value:function(e,t,n){var i=".monaco-editor ."+this.getClassName(e,n);return t&&(i=i+"."+this.getClassName(t,n)),3===n?i+="::before":4===n&&(i+="::after"),i}}]),e}(),Ni=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Di=function(e,t){return function(n,i){t(n,i,e)}},Mi=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;return(0,F.Z)(this,n),(o=t.call(this,e,r)).onCodeEditorAdd((function(){return o._checkContextKey()})),o.onCodeEditorRemove((function(){return o._checkContextKey()})),o._editorIsOpen=i.createKey("editorIsOpen",!1),o._activeCodeEditor=null,o}return(0,j.Z)(n,[{key:"_checkContextKey",value:function(){var e,t=!1,n=(0,X.Z)(this.listCodeEditors());try{for(n.s();!(e=n.n()).done;){if(!e.value.isSimpleWidget){t=!0;break}}}catch(i){n.e(i)}finally{n.f()}this._editorIsOpen.set(t)}},{key:"setActiveCodeEditor",value:function(e){this._activeCodeEditor=e}},{key:"getActiveCodeEditor",value:function(){return this._activeCodeEditor}},{key:"openCodeEditor",value:function(e,t,n){return t?Promise.resolve(this.doOpenEditor(t,e)):Promise.resolve(null)}},{key:"doOpenEditor",value:function(e,t){if(!this.findModel(e,t.resource)){if(t.resource){var n=t.resource.scheme;if(n===ae.lg.http||n===ae.lg.https)return(0,ne.windowOpenNoOpener)(t.resource.toString()),e}return null}var i=t.options?t.options.selection:null;if(i)if("number"===typeof i.endLineNumber&&"number"===typeof i.endColumn)e.setSelection(i),e.revealRangeInCenter(i,1);else{var r={lineNumber:i.startLineNumber,column:i.startColumn};e.setPosition(r),e.revealPositionInCenter(r,1)}return e}},{key:"findModel",value:function(e,t){var n=e.getModel();return n&&n.uri.toString()!==t.toString()?null:n}}]),n}(Ci);Mi=Ni([Di(1,li.i6),Di(2,fi.XE)],Mi);var Ti=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Oi=function(e,t){return function(n,i){t(n,i,e)}},Ii=0,Ai=!1;var Ri=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s,u,l,c,d){var h;(0,F.Z)(this,n);var f=Object.assign({},i);return f.ariaLabel=f.ariaLabel||Pn.B8.editorViewAccessibleLabel,f.ariaLabel=f.ariaLabel+";"+Pn.B8.accessibilityHelpMessage,(h=t.call(this,e,f,{},r,o,a,s,l,c,d))._standaloneKeybindingService=u instanceof Un?u:null,Ai||(Ai=!0,ii.wW(document.body)),h}return(0,j.Z)(n,[{key:"addCommand",value:function(e,t,n){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;var i="DYNAMIC_"+ ++Ii,r=li.Ao.deserialize(n);return this._standaloneKeybindingService.addDynamicKeybinding(i,e,t,r),i}},{key:"createContextKey",value:function(e,t){return this._contextKeyService.createKey(e,t)}},{key:"addAction",value:function(e){var t=this;if("string"!==typeof e.id||"string"!==typeof e.label||"function"!==typeof e.run)throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),Me.JT.None;var n=e.id,i=e.label,r=li.Ao.and(li.Ao.equals("editorId",this.getId()),li.Ao.deserialize(e.precondition)),o=e.keybindings,a=li.Ao.and(r,li.Ao.deserialize(e.keybindingContext)),s=e.contextMenuGroupId||null,u=e.contextMenuOrder||0,l=function(n){for(var i=arguments.length,r=new Array(i>1?i-1:0),o=1;o<i;o++)r[o-1]=arguments[o];return Promise.resolve(e.run.apply(e,[t].concat(r)))},c=new Me.SL,d=this.getId()+":"+n;if(c.add(ue.P.registerCommand(d,l)),s){var h={command:{id:d,title:i},when:r,group:s,order:u};c.add(ui.BH.appendMenuItem(ui.eH.EditorContext,h))}if(Array.isArray(o)){var f,p=(0,X.Z)(o);try{for(p.s();!(f=p.n()).done;){var g=f.value;c.add(this._standaloneKeybindingService.addDynamicKeybinding(d,g,l,a))}}catch(m){p.e(m)}finally{p.f()}}var v=new ai.p(d,i,i,r,l,this._contextKeyService);return this._actions[n]=v,c.add((0,Me.OF)((function(){delete t._actions[n]}))),c}},{key:"_triggerCommand",value:function(e,t){if(this._codeEditorService instanceof Mi)try{this._codeEditorService.setActiveCodeEditor(this),(0,Ee.Z)((0,Ne.Z)(n.prototype),"_triggerCommand",this).call(this,e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else(0,Ee.Z)((0,Ne.Z)(n.prototype),"_triggerCommand",this).call(this,e,t)}}]),n}(ri.Gm),Pi=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s,u,l,c,d,h,f,p,g,v){var m;(0,F.Z)(this,n);var _=Object.assign({},i);Jn(f,_,!1);var y=d.registerEditorContainer(e);"string"===typeof _.theme&&d.setTheme(_.theme),"undefined"!==typeof _.autoDetectHighContrast&&d.setAutoDetectHighContrast(Boolean(_.autoDetectHighContrast));var b,w=_.model;if(delete _.model,(m=t.call(this,e,_,o,a,s,u,l,d,h,p))._contextViewService=c,m._configurationService=f,m._standaloneThemeService=d,m._register(r),m._register(y),"undefined"===typeof w?(b=Fi(g,v,_.value||"",_.language||"text/plain",void 0),m._ownsModel=!0):(b=w,m._ownsModel=!1),m._attachModel(b),b){var C={oldModelUrl:null,newModelUrl:b.uri};m._onDidChangeModel.fire(C)}return m}return(0,j.Z)(n,[{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"updateOptions",value:function(e){Jn(this._configurationService,e,!1),"string"===typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),"undefined"!==typeof e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),(0,Ee.Z)((0,Ne.Z)(n.prototype),"updateOptions",this).call(this,e)}},{key:"_attachModel",value:function(e){(0,Ee.Z)((0,Ne.Z)(n.prototype),"_attachModel",this).call(this,e),this._modelData&&this._contextViewService.setContainer(this._modelData.view.domNode.domNode)}},{key:"_postDetachModelCleanup",value:function(e){(0,Ee.Z)((0,Ne.Z)(n.prototype),"_postDetachModelCleanup",this).call(this,e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}}]),n}(Ri=Ti([Oi(2,di.TG),Oi(3,Q.$),Oi(4,ue.H),Oi(5,li.i6),Oi(6,hi.d),Oi(7,fi.XE),Oi(8,An.lT),Oi(9,pi.F)],Ri));Pi=Ti([Oi(3,di.TG),Oi(4,Q.$),Oi(5,ue.H),Oi(6,li.i6),Oi(7,hi.d),Oi(8,ci.u),Oi(9,si.Z),Oi(10,An.lT),Oi(11,vn.Ui),Oi(12,pi.F),Oi(13,yt.q),Oi(14,ke.h)],Pi);var Zi=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s,u,l,c,d,h,f,p,g,v){var m;(0,F.Z)(this,n);var _=Object.assign({},i);Jn(f,_,!0);var y=d.registerEditorContainer(e);return"string"===typeof _.theme&&d.setTheme(_.theme),"undefined"!==typeof _.autoDetectHighContrast&&d.setAutoDetectHighContrast(Boolean(_.autoDetectHighContrast)),(m=t.call(this,e,_,{},v,l,a,o,c,d,h,p,g))._contextViewService=u,m._configurationService=f,m._standaloneThemeService=d,m._register(r),m._register(y),m._contextViewService.setContainer(m._containerDomElement),m}return(0,j.Z)(n,[{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"updateOptions",value:function(e){Jn(this._configurationService,e,!0),"string"===typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),"undefined"!==typeof e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),(0,Ee.Z)((0,Ne.Z)(n.prototype),"updateOptions",this).call(this,e)}},{key:"_createInnerEditor",value:function(e,t,n){return e.createInstance(Ri,t,n)}},{key:"getOriginalEditor",value:function(){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"getOriginalEditor",this).call(this)}},{key:"getModifiedEditor",value:function(){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"getModifiedEditor",this).call(this)}},{key:"addCommand",value:function(e,t,n){return this.getModifiedEditor().addCommand(e,t,n)}},{key:"createContextKey",value:function(e,t){return this.getModifiedEditor().createContextKey(e,t)}},{key:"addAction",value:function(e){return this.getModifiedEditor().addAction(e)}}]),n}(oi.p);function Fi(e,t,n,i,r){if(n=n||"",!i){var o=n.indexOf("\n"),a=n;return-1!==o&&(a=n.substring(0,o)),ji(e,n,t.createByFilepathOrFirstLine(r||null,a),r)}return ji(e,n,t.create(i),r)}function ji(e,t,n,i){return e.createModel(t,n,i)}Zi=Ti([Oi(3,di.TG),Oi(4,li.i6),Oi(5,hi.d),Oi(6,ci.u),Oi(7,Ce.p),Oi(8,Q.$),Oi(9,si.Z),Oi(10,An.lT),Oi(11,vn.Ui),Oi(12,ci.i),Oi(13,vi.e),Oi(14,gi.p)],Zi);var Hi=function(){function e(t){(0,F.Z)(this,e),this._languageIdentifier=t}return(0,j.Z)(e,[{key:"getId",value:function(){return this._languageIdentifier.language}}]),e}(),Bi=n(36912),zi=n(79612),Wi="text/plain",Vi="application/unknown",Yi=[],Ui=[],Ki=[];function qi(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(e){return{id:e.id,mime:e.mime,filename:e.filename,extension:e.extension,filepattern:e.filepattern,firstline:e.firstline,userConfigured:e.userConfigured,filenameLowercase:e.filename?e.filename.toLowerCase():void 0,extensionLowercase:e.extension?e.extension.toLowerCase():void 0,filepatternLowercase:e.filepattern?e.filepattern.toLowerCase():void 0,filepatternOnPath:!!e.filepattern&&e.filepattern.indexOf(Bi.KR.sep)>=0}}(e);Yi.push(n),n.userConfigured?Ki.push(n):Ui.push(n),t&&!n.userConfigured&&Yi.forEach((function(e){e.mime===n.mime||e.userConfigured||(n.extension&&e.extension===n.extension&&console.warn("Overwriting extension <<".concat(n.extension,">> to now point to mime <<").concat(n.mime,">>")),n.filename&&e.filename===n.filename&&console.warn("Overwriting filename <<".concat(n.filename,">> to now point to mime <<").concat(n.mime,">>")),n.filepattern&&e.filepattern===n.filepattern&&console.warn("Overwriting filepattern <<".concat(n.filepattern,">> to now point to mime <<").concat(n.mime,">>")),n.firstline&&e.firstline===n.firstline&&console.warn("Overwriting firstline <<".concat(n.firstline,">> to now point to mime <<").concat(n.mime,">>")))}))}function Gi(e,t){var n;if(e)switch(e.scheme){case ae.lg.file:n=e.fsPath;break;case ae.lg.data:n=se.Vb.parseMetaData(e).get(se.Vb.META_DATA_LABEL);break;default:n=e.path}if(!n)return[Vi];n=n.toLowerCase();var i=(0,Bi.EZ)(n),r=$i(n,i,Ki);if(r)return[r,Wi];var o=$i(n,i,Ui);if(o)return[o,Wi];if(t){var a=function(e){(0,Ue.uS)(e)&&(e=e.substr(1));if(e.length>0)for(var t=Yi.length-1;t>=0;t--){var n=Yi[t];if(n.firstline){var i=e.match(n.firstline);if(i&&i.length>0)return n.mime}}return null}(t);if(a)return[a,Wi]}return[Vi]}function $i(e,t,n){for(var i=null,r=null,o=null,a=n.length-1;a>=0;a--){var s=n[a];if(t===s.filenameLowercase){i=s;break}if(s.filepattern&&(!r||s.filepattern.length>r.filepattern.length)){var u=s.filepatternOnPath?e:t;(0,zi.EQ)(s.filepatternLowercase,u)&&(r=s)}s.extension&&(!o||s.extension.length>o.extension.length)&&t.endsWith(s.extensionLowercase)&&(o=s)}return i?i.mime:r?r.mime:o?o.mime:null}var Qi=n(54970),Xi=n(38774),Ji=Object.prototype.hasOwnProperty,er=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e,i=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return(0,F.Z)(this,n),(e=t.call(this))._onDidChange=e._register(new B.Q5),e.onDidChange=e._onDidChange.event,e._warnOnOverwrite=r,e._nextLanguageId2=1,e._languageIdToLanguage=[],e._languageToLanguageId=Object.create(null),e._languages={},e._mimeTypesMap={},e._nameMap={},e._lowercaseNameMap={},i&&(e._initializeFromRegistry(),e._register(Qi.dQ.onDidChangeLanguages((function(t){return e._initializeFromRegistry()})))),e}return(0,j.Z)(n,[{key:"_initializeFromRegistry",value:function(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={};var e=Qi.dQ.getLanguages();this._registerLanguages(e)}},{key:"_registerLanguages",value:function(e){var t,n=this,i=(0,X.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;this._registerLanguage(r)}}catch(o){i.e(o)}finally{i.f()}this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach((function(e){var t=n._languages[e];t.name&&(n._nameMap[t.name]=t.identifier),t.aliases.forEach((function(e){n._lowercaseNameMap[e.toLowerCase()]=t.identifier})),t.mimetypes.forEach((function(e){n._mimeTypesMap[e]=t.identifier}))})),Xi.B.as(_n.IP.Configuration).registerOverrideIdentifiers(Qi.dQ.getLanguages().map((function(e){return e.id}))),this._onDidChange.fire()}},{key:"_getLanguageId",value:function(e){if(this._languageToLanguageId[e])return this._languageToLanguageId[e];var t=this._nextLanguageId2++;return this._languageIdToLanguage[t]=e,this._languageToLanguageId[e]=t,t}},{key:"_registerLanguage",value:function(e){var t,n=e.id;if(Ji.call(this._languages,n))t=this._languages[n];else{var i=this._getLanguageId(n);t={identifier:new be.rl(n,i),name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[]},this._languages[n]=t}this._mergeLanguage(t,e)}},{key:"_mergeLanguage",value:function(e,t){var n,i=t.id,r=null;Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&((n=e.mimetypes).push.apply(n,(0,J.Z)(t.mimetypes)),r=t.mimetypes[0]);if(r||(r="text/x-".concat(i),e.mimetypes.push(r)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);var o,a=(0,X.Z)(t.extensions);try{for(a.s();!(o=a.n()).done;){qi({id:i,mime:r,extension:o.value},this._warnOnOverwrite)}}catch(b){a.e(b)}finally{a.f()}}if(Array.isArray(t.filenames)){var s,u=(0,X.Z)(t.filenames);try{for(u.s();!(s=u.n()).done;){var l=s.value;qi({id:i,mime:r,filename:l},this._warnOnOverwrite),e.filenames.push(l)}}catch(b){u.e(b)}finally{u.f()}}if(Array.isArray(t.filenamePatterns)){var c,d=(0,X.Z)(t.filenamePatterns);try{for(d.s();!(c=d.n()).done;){qi({id:i,mime:r,filepattern:c.value},this._warnOnOverwrite)}}catch(b){d.e(b)}finally{d.f()}}if("string"===typeof t.firstLine&&t.firstLine.length>0){var h=t.firstLine;"^"!==h.charAt(0)&&(h="^"+h);try{var f=new RegExp(h);Ue.IO(f)||qi({id:i,mime:r,firstline:f},this._warnOnOverwrite)}catch(b){(0,Te.dL)(b)}}e.aliases.push(i);var p=null;if("undefined"!==typeof t.aliases&&Array.isArray(t.aliases)&&(p=0===t.aliases.length?[null]:t.aliases),null!==p){var g,v=(0,X.Z)(p);try{for(v.s();!(g=v.n()).done;){var m=g.value;m&&0!==m.length&&e.aliases.push(m)}}catch(b){v.e(b)}finally{v.f()}}var _=null!==p&&p.length>0;if(_&&null===p[0]);else{var y=(_?p[0]:null)||i;!_&&e.name||(e.name=y)}t.configuration&&e.configurationFiles.push(t.configuration)}},{key:"isRegisteredMode",value:function(e){return!!Ji.call(this._mimeTypesMap,e)||Ji.call(this._languages,e)}},{key:"getModeIdForLanguageNameLowercase",value:function(e){return Ji.call(this._lowercaseNameMap,e)?this._lowercaseNameMap[e].language:null}},{key:"extractModeIds",value:function(e){var t=this;return e?e.split(",").map((function(e){return e.trim()})).map((function(e){return Ji.call(t._mimeTypesMap,e)?t._mimeTypesMap[e].language:e})).filter((function(e){return Ji.call(t._languages,e)})):[]}},{key:"getLanguageIdentifier",value:function(e){if(e===we.TG||0===e)return we.pA;var t;if("string"===typeof e)t=e;else if(!(t=this._languageIdToLanguage[e]))return null;return Ji.call(this._languages,t)?this._languages[t].identifier:null}},{key:"getModeIdsFromFilepathOrFirstLine",value:function(e,t){if(!e&&!t)return[];var n=Gi(e,t);return this.extractModeIds(n.join(","))}}]),n}(Me.JT),tr=function(){function e(t,n){var i,r=this;(0,F.Z)(this,e),this._selector=n,this.languageIdentifier=this._selector(),this._onDidChange=new B.Q5({onFirstListenerAdd:function(){i=t((function(){return r._evaluate()}))},onLastListenerRemove:function(){i.dispose()}}),this.onDidChange=this._onDidChange.event}return(0,j.Z)(e,[{key:"_evaluate",value:function(){var e=this._selector();e.id!==this.languageIdentifier.id&&(this.languageIdentifier=e,this._onDidChange.fire(this.languageIdentifier))}}]),e}(),nr=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(0,F.Z)(this,n),(e=t.call(this))._onDidCreateMode=e._register(new B.Q5),e.onDidCreateMode=e._onDidCreateMode.event,e._onLanguagesMaybeChanged=e._register(new B.Q5({leakWarningThreshold:200})),e.onLanguagesMaybeChanged=e._onLanguagesMaybeChanged.event,e._instantiatedModes={},e._registry=e._register(new er(!0,i)),e._register(e._registry.onDidChange((function(){return e._onLanguagesMaybeChanged.fire()}))),e}return(0,j.Z)(n,[{key:"isRegisteredMode",value:function(e){return this._registry.isRegisteredMode(e)}},{key:"getModeIdForLanguageName",value:function(e){return this._registry.getModeIdForLanguageNameLowercase(e)}},{key:"getModeIdByFilepathOrFirstLine",value:function(e,t){var n=this._registry.getModeIdsFromFilepathOrFirstLine(e,t);return(0,wt.Xh)(n,null)}},{key:"getModeId",value:function(e){var t=this._registry.extractModeIds(e);return(0,wt.Xh)(t,null)}},{key:"getLanguageIdentifier",value:function(e){return this._registry.getLanguageIdentifier(e)}},{key:"create",value:function(e){var t=this;return new tr(this.onLanguagesMaybeChanged,(function(){var n=t.getModeId(e);return t._createModeAndGetLanguageIdentifier(n)}))}},{key:"createByFilepathOrFirstLine",value:function(e,t){var n=this;return new tr(this.onLanguagesMaybeChanged,(function(){var i=n.getModeIdByFilepathOrFirstLine(e,t);return n._createModeAndGetLanguageIdentifier(i)}))}},{key:"_createModeAndGetLanguageIdentifier",value:function(e){var t=this.getLanguageIdentifier(e||"plaintext")||we.pA;return this._getOrCreateMode(t.language),t}},{key:"triggerMode",value:function(e){var t=this.getModeId(e);this._getOrCreateMode(t||"plaintext")}},{key:"_getOrCreateMode",value:function(e){if(!this._instantiatedModes.hasOwnProperty(e)){var t=this.getLanguageIdentifier(e)||we.pA;this._instantiatedModes[e]=new Hi(t),this._onDidCreateMode.fire(this._instantiatedModes[e])}return this._instantiatedModes[e]}}]),n}(Me.JT),ir=n(77993),rr=n(89938),or=(0,j.Z)((function e(t,n,i,r,o){(0,F.Z)(this,e),this.token=t,this.index=n,this.fontStyle=i,this.foreground=r,this.background=o}));function ar(e,t){e.sort((function(e,t){var n=function(e,t){if(e<t)return-1;if(e>t)return 1;return 0}(e.token,t.token);return 0!==n?n:e.index-t.index}));for(var n=0,i="000000",r="ffffff";e.length>=1&&""===e[0].token;){var o=e.shift();-1!==o.fontStyle&&(n=o.fontStyle),null!==o.foreground&&(i=o.foreground),null!==o.background&&(r=o.background)}var a,s=new ur,u=(0,X.Z)(t);try{for(u.s();!(a=u.n()).done;){var l=a.value;s.getId(l)}}catch(m){u.e(m)}finally{u.f()}for(var c=s.getId(i),d=s.getId(r),h=new dr(n,c,d),f=new hr(h),p=0,g=e.length;p<g;p++){var v=e[p];f.insert(v.token,v.fontStyle,s.getId(v.foreground),s.getId(v.background))}return new lr(s,f)}var sr=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/,ur=function(){function e(){(0,F.Z)(this,e),this._lastColorId=0,this._id2color=[],this._color2id=new Map}return(0,j.Z)(e,[{key:"getId",value:function(e){if(null===e)return 0;var t=e.match(sr);if(!t)throw new Error("Illegal value for token color: "+e);e=t[1].toUpperCase();var n=this._color2id.get(e);return n||(n=++this._lastColorId,this._color2id.set(e,n),this._id2color[n]=rr.Il.fromHex("#"+e),n)}},{key:"getColorMap",value:function(){return this._id2color.slice(0)}}]),e}(),lr=function(){function e(t,n){(0,F.Z)(this,e),this._colorMap=t,this._root=n,this._cache=new Map}return(0,j.Z)(e,[{key:"getColorMap",value:function(){return this._colorMap.getColorMap()}},{key:"_match",value:function(e){return this._root.match(e)}},{key:"match",value:function(e,t){var n=this._cache.get(t);if("undefined"===typeof n){var i=this._match(t),r=function(e){var t=e.match(cr);if(!t)return 0;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":case"regexp":return 4}throw new Error("Unexpected match for standard token type!")}(t);n=(i.metadata|r<<8)>>>0,this._cache.set(t,n)}return(n|e<<0)>>>0}}],[{key:"createFromRawTokenTheme",value:function(e,t){return this.createFromParsedTokenTheme(function(e){if(!e||!Array.isArray(e))return[];for(var t=[],n=0,i=0,r=e.length;i<r;i++){var o=e[i],a=-1;if("string"===typeof o.fontStyle){a=0;for(var s=o.fontStyle.split(" "),u=0,l=s.length;u<l;u++)switch(s[u]){case"italic":a|=1;break;case"bold":a|=2;break;case"underline":a|=4}}var c=null;"string"===typeof o.foreground&&(c=o.foreground);var d=null;"string"===typeof o.background&&(d=o.background),t[n++]=new or(o.token||"",i,a,c,d)}return t}(e),t)}},{key:"createFromParsedTokenTheme",value:function(e,t){return ar(e,t)}}]),e}(),cr=/\b(comment|string|regex|regexp)\b/;var dr=function(){function e(t,n,i){(0,F.Z)(this,e),this._fontStyle=t,this._foreground=n,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}return(0,j.Z)(e,[{key:"clone",value:function(){return new e(this._fontStyle,this._foreground,this._background)}},{key:"acceptOverwrite",value:function(e,t,n){-1!==e&&(this._fontStyle=e),0!==t&&(this._foreground=t),0!==n&&(this._background=n),this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}}]),e}(),hr=function(){function e(t){(0,F.Z)(this,e),this._mainRule=t,this._children=new Map}return(0,j.Z)(e,[{key:"match",value:function(e){if(""===e)return this._mainRule;var t,n,i=e.indexOf(".");-1===i?(t=e,n=""):(t=e.substring(0,i),n=e.substring(i+1));var r=this._children.get(t);return"undefined"!==typeof r?r.match(n):this._mainRule}},{key:"insert",value:function(t,n,i,r){if(""!==t){var o,a,s=t.indexOf(".");-1===s?(o=t,a=""):(o=t.substring(0,s),a=t.substring(s+1));var u=this._children.get(o);"undefined"===typeof u&&(u=new e(this._mainRule.clone()),this._children.set(o,u)),u.insert(a,n,i,r)}else this._mainRule.acceptOverwrite(n,i,r)}}]),e}();var fr,pr,gr,vr=n(80449),mr=n(92992),_r={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:(fr={},(0,Ve.Z)(fr,mr.cv,"#FFFFFE"),(0,Ve.Z)(fr,mr.NO,"#000000"),(0,Ve.Z)(fr,mr.ES,"#E5EBF1"),(0,Ve.Z)(fr,vr.tR,"#D3D3D3"),(0,Ve.Z)(fr,vr.Ym,"#939393"),(0,Ve.Z)(fr,mr.Rz,"#ADD6FF4D"),fr)},yr={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(pr={},(0,Ve.Z)(pr,mr.cv,"#1E1E1E"),(0,Ve.Z)(pr,mr.NO,"#D4D4D4"),(0,Ve.Z)(pr,mr.ES,"#3A3D41"),(0,Ve.Z)(pr,vr.tR,"#404040"),(0,Ve.Z)(pr,vr.Ym,"#707070"),(0,Ve.Z)(pr,mr.Rz,"#ADD6FF26"),pr)},br={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(gr={},(0,Ve.Z)(gr,mr.cv,"#000000"),(0,Ve.Z)(gr,mr.NO,"#FFFFFF"),(0,Ve.Z)(gr,vr.tR,"#FFFFFF"),(0,Ve.Z)(gr,vr.Ym,"#FFFFFF"),gr)},wr=n(7644),Cr=n(62239);var kr="vs",Sr="vs-dark",xr="hc-black",Lr=Xi.B.as(mr.IP.ColorContribution),Er=Xi.B.as(fi.IP.ThemingContribution),Nr=function(){function e(t,n){(0,F.Z)(this,e),this.semanticHighlighting=!1,this.themeData=n;var i=n.base;t.length>0?(Dr(t)?this.id=t:this.id=i+" "+t,this.themeName=t):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}return(0,j.Z)(e,[{key:"base",get:function(){return this.themeData.base}},{key:"notifyBaseUpdated",value:function(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}},{key:"getColors",value:function(){if(!this.colors){var e=new Map;for(var t in this.themeData.colors)e.set(t,rr.Il.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){var n=Mr(this.themeData.base);for(var i in n.colors)e.has(i)||e.set(i,rr.Il.fromHex(n.colors[i]))}this.colors=e}return this.colors}},{key:"getColor",value:function(e,t){var n=this.getColors().get(e);return n||(!1!==t?this.getDefault(e):void 0)}},{key:"getDefault",value:function(e){var t=this.defaultColors[e];return t||(t=Lr.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}},{key:"defines",value:function(e){return Object.prototype.hasOwnProperty.call(this.getColors(),e)}},{key:"type",get:function(){switch(this.base){case kr:return wr.e.LIGHT;case xr:return wr.e.HIGH_CONTRAST;default:return wr.e.DARK}}},{key:"tokenTheme",get:function(){if(!this._tokenTheme){var e=[],t=[];if(this.themeData.inherit){var n=Mr(this.themeData.base);e=n.rules,n.encodedTokensColors&&(t=n.encodedTokensColors)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=lr.createFromRawTokenTheme(e,t)}return this._tokenTheme}},{key:"getTokenStyleMetadata",value:function(e,t,n){var i=this.tokenTheme._match([e].concat(t).join(".")).metadata,r=be.NX.getForeground(i),o=be.NX.getFontStyle(i);return{foreground:r,italic:Boolean(1&o),bold:Boolean(2&o),underline:Boolean(4&o)}}}]),e}();function Dr(e){return e===kr||e===Sr||e===xr}function Mr(e){switch(e){case kr:return _r;case Sr:return yr;case xr:return br}}function Tr(e){var t=Mr(e);return new Nr(e,t)}var Or=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e;(0,F.Z)(this,n),(e=t.call(this))._onColorThemeChange=e._register(new B.Q5),e.onDidColorThemeChange=e._onColorThemeChange.event,e._environment=Object.create(null),e._autoDetectHighContrast=!0,e._knownThemes=new Map,e._knownThemes.set(kr,Tr(kr)),e._knownThemes.set(Sr,Tr(Sr)),e._knownThemes.set(xr,Tr(xr));var i=function(){var e=new B.Q5,t=(0,Cr.Ks)();return t.onDidChange((function(){return e.fire()})),{onDidChange:e.event,getCSS:function(){var e,n={},i=function(e){for(var i=e.defaults;fi.kS.isThemeIcon(i);){var r=t.getIcon(i.id);if(!r)return;i=r.defaults}var o=i.fontId;if(o){var a=t.getIconFont(o);if(a)return n[o]=a,".codicon-".concat(e.id,":before { content: '").concat(i.fontCharacter,"'; font-family: ").concat((0,ne.asCSSPropertyValue)(o),"; }")}return".codicon-".concat(e.id,":before { content: '").concat(i.fontCharacter,"'; }")},r=[],o=(0,X.Z)(t.getIcons());try{for(o.s();!(e=o.n()).done;){var a=i(e.value);a&&r.push(a)}}catch(l){o.e(l)}finally{o.f()}for(var s in n){var u=n[s].definition.src.map((function(e){return"".concat((0,ne.asCSSUrl)(e.location)," format('").concat(e.format,"')")})).join(", ");r.push("@font-face { src: ".concat(u,"; font-family: ").concat((0,ne.asCSSPropertyValue)(s),"; }"))}return r.join("\n")}}}();return e._codiconCSS=i.getCSS(),e._themeCSS="",e._allCSS="".concat(e._codiconCSS,"\n").concat(e._themeCSS),e._globalStyleElement=null,e._styleElements=[],e._colorMapOverride=null,e.setTheme(kr),i.onDidChange((function(){e._codiconCSS=i.getCSS(),e._updateCSS()})),ne.addMatchMediaChangeListener("(forced-colors: active)",(function(){e._updateActualTheme()})),e}return(0,j.Z)(n,[{key:"registerEditorContainer",value:function(e){return ne.isInShadowDOM(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}},{key:"_registerRegularEditorContainer",value:function(){return this._globalStyleElement||(this._globalStyleElement=ne.createStyleSheet(),this._globalStyleElement.className="monaco-colors",this._globalStyleElement.textContent=this._allCSS,this._styleElements.push(this._globalStyleElement)),Me.JT.None}},{key:"_registerShadowDomContainer",value:function(e){var t=this,n=ne.createStyleSheet(e);return n.className="monaco-colors",n.textContent=this._allCSS,this._styleElements.push(n),{dispose:function(){for(var e=0;e<t._styleElements.length;e++)if(t._styleElements[e]===n)return void t._styleElements.splice(e,1)}}}},{key:"defineTheme",value:function(e,t){if(!/^[a-z0-9\-]+$/i.test(e))throw new Error("Illegal theme name!");if(!Dr(t.base)&&!Dr(e))throw new Error("Illegal theme base!");this._knownThemes.set(e,new Nr(e,t)),Dr(e)&&this._knownThemes.forEach((function(t){t.base===e&&t.notifyBaseUpdated()})),this._theme.themeName===e&&this.setTheme(e)}},{key:"getColorTheme",value:function(){return this._theme}},{key:"setColorMapOverride",value:function(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}},{key:"setTheme",value:function(e){var t;t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(kr),this._desiredTheme=t,this._updateActualTheme()}},{key:"_updateActualTheme",value:function(){var e=this._autoDetectHighContrast&&window.matchMedia("(forced-colors: active)").matches?this._knownThemes.get(xr):this._desiredTheme;this._theme!==e&&(this._theme=e,this._updateThemeOrColorMap())}},{key:"setAutoDetectHighContrast",value:function(e){this._autoDetectHighContrast=e,this._updateActualTheme()}},{key:"_updateThemeOrColorMap",value:function(){var e=this,t=[],n={},i={addRule:function(e){n[e]||(t.push(e),n[e]=!0)}};Er.getThemingParticipants().forEach((function(t){return t(e._theme,i,e._environment)}));var r=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(function(e){for(var t=[],n=1,i=e.length;n<i;n++){var r=e[n];t[n]=".mtk".concat(n," { color: ").concat(r,"; }")}return t.push(".mtki { font-style: italic; }"),t.push(".mtkb { font-weight: bold; }"),t.push(".mtku { text-decoration: underline; text-underline-position: under; }"),t.join("\n")}(r)),this._themeCSS=t.join("\n"),this._updateCSS(),be.RW.setColorMap(r),this._onColorThemeChange.fire(this._theme)}},{key:"_updateCSS",value:function(){var e=this;this._allCSS="".concat(this._codiconCSS,"\n").concat(this._themeCSS),this._styleElements.forEach((function(t){return t.textContent=e._allCSS}))}},{key:"getFileIconTheme",value:function(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}}]),n}(Me.JT),Ir=n(98900),Ar=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Rr=function(e,t){return function(n,i){t(n,i,e)}},Pr="data-keybinding-context",Zr=function(){function e(t,n){(0,F.Z)(this,e),this._id=t,this._parent=n,this._value=Object.create(null),this._value._contextId=t}return(0,j.Z)(e,[{key:"setValue",value:function(e,t){return this._value[e]!==t&&(this._value[e]=t,!0)}},{key:"removeValue",value:function(e){return e in this._value&&(delete this._value[e],!0)}},{key:"getValue",value:function(e){var t=this._value[e];return"undefined"===typeof t&&this._parent?this._parent.getValue(e):t}}]),e}(),Fr=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){return(0,F.Z)(this,n),t.call(this,-1,null)}return(0,j.Z)(n,[{key:"setValue",value:function(e,t){return!1}},{key:"removeValue",value:function(e){return!1}},{key:"getValue",value:function(e){}}]),n}(Zr);Fr.INSTANCE=new Fr;var jr=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;return(0,F.Z)(this,n),(o=t.call(this,e,null))._configurationService=i,o._values=re.Id.forConfigKeys(),o._listener=o._configurationService.onDidChangeConfiguration((function(e){if(6===e.source){var t=Array.from(Ir.$.map(o._values,(function(e){return(0,at.Z)(e,1)[0]})));o._values.clear(),r.fire(new zr(t))}else{var n,i=[],a=(0,X.Z)(e.affectedKeys);try{for(a.s();!(n=a.n()).done;){var s=n.value,u="config.".concat(s),l=o._values.findSuperstr(u);void 0!==l&&(i.push.apply(i,(0,J.Z)(Ir.$.map(l,(function(e){return(0,at.Z)(e,1)[0]})))),o._values.deleteSuperstr(u)),o._values.has(u)&&(i.push(u),o._values.delete(u))}}catch(c){a.e(c)}finally{a.f()}r.fire(new zr(i))}})),o}return(0,j.Z)(n,[{key:"dispose",value:function(){this._listener.dispose()}},{key:"getValue",value:function(e){if(0!==e.indexOf(n._keyPrefix))return(0,Ee.Z)((0,Ne.Z)(n.prototype),"getValue",this).call(this,e);if(this._values.has(e))return this._values.get(e);var t=e.substr(n._keyPrefix.length),i=this._configurationService.getValue(t),r=void 0;switch(typeof i){case"number":case"boolean":case"string":r=i;break;default:r=Array.isArray(i)?JSON.stringify(i):i}return this._values.set(e,r),r}},{key:"setValue",value:function(e,t){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"setValue",this).call(this,e,t)}},{key:"removeValue",value:function(e){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"removeValue",this).call(this,e)}}]),n}(Zr);jr._keyPrefix="config.";var Hr=function(){function e(t,n,i){(0,F.Z)(this,e),this._service=t,this._key=n,this._defaultValue=i,this.reset()}return(0,j.Z)(e,[{key:"set",value:function(e){this._service.setContext(this._key,e)}},{key:"reset",value:function(){"undefined"===typeof this._defaultValue?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}},{key:"get",value:function(){return this._service.getContextKeyValue(this._key)}}]),e}(),Br=function(){function e(t){(0,F.Z)(this,e),this.key=t}return(0,j.Z)(e,[{key:"affectsSome",value:function(e){return e.has(this.key)}}]),e}(),zr=function(){function e(t){(0,F.Z)(this,e),this.keys=t}return(0,j.Z)(e,[{key:"affectsSome",value:function(e){var t,n=(0,X.Z)(this.keys);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(e.has(i))return!0}}catch(r){n.e(r)}finally{n.f()}return!1}}]),e}(),Wr=function(){function e(t){(0,F.Z)(this,e),this.events=t}return(0,j.Z)(e,[{key:"affectsSome",value:function(e){var t,n=(0,X.Z)(this.events);try{for(n.s();!(t=n.n()).done;){if(t.value.affectsSome(e))return!0}}catch(i){n.e(i)}finally{n.f()}return!1}}]),e}(),Vr=function(){function e(t){(0,F.Z)(this,e),this._onDidChangeContext=new B.K3({merge:function(e){return new Wr(e)}}),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=t}return(0,j.Z)(e,[{key:"createKey",value:function(e,t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new Hr(this,e,t)}},{key:"bufferChangeEvents",value:function(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}},{key:"createScoped",value:function(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new Ur(this,e)}},{key:"contextMatchesRules",value:function(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");var t=this.getContextValuesContainer(this._myContextId);return xn.contextMatchesRules(t,e)}},{key:"getContextKeyValue",value:function(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}},{key:"setContext",value:function(e,t){if(!this._isDisposed){var n=this.getContextValuesContainer(this._myContextId);n&&n.setValue(e,t)&&this._onDidChangeContext.fire(new Br(e))}}},{key:"removeContext",value:function(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new Br(e))}},{key:"getContext",value:function(e){return this._isDisposed?Fr.INSTANCE:this.getContextValuesContainer(function(e){for(;e;){if(e.hasAttribute(Pr)){var t=e.getAttribute(Pr);return t?parseInt(t,10):NaN}e=e.parentElement}return 0}(e))}}]),e}(),Yr=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;(0,F.Z)(this,n),(i=t.call(this,0))._contexts=new Map,i._toDispose=new Me.SL,i._lastContextId=0;var r=new jr(i._myContextId,e,i._onDidChangeContext);return i._contexts.set(i._myContextId,r),i._toDispose.add(r),i}return(0,j.Z)(n,[{key:"dispose",value:function(){this._onDidChangeContext.dispose(),this._isDisposed=!0,this._toDispose.dispose()}},{key:"getContextValuesContainer",value:function(e){return this._isDisposed?Fr.INSTANCE:this._contexts.get(e)||Fr.INSTANCE}},{key:"createChildContext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._myContextId;if(this._isDisposed)throw new Error("ContextKeyService has been disposed");var t=++this._lastContextId;return this._contexts.set(t,new Zr(t,this.getContextValuesContainer(e))),t}},{key:"disposeContext",value:function(e){this._isDisposed||this._contexts.delete(e)}}]),n}(Vr);Yr=Ar([Rr(0,vn.Ui)],Yr);var Ur=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;if((0,F.Z)(this,n),(r=t.call(this,e.createChildContext()))._parentChangeListener=new Me.XK,r._parent=e,r._updateParentChangeListener(),r._domNode=i,r._domNode.hasAttribute(Pr)){var o="";r._domNode.classList&&(o=Array.from(r._domNode.classList.values()).join(", ")),console.error("Element already has context attribute".concat(o?": "+o:""))}return r._domNode.setAttribute(Pr,String(r._myContextId)),r}return(0,j.Z)(n,[{key:"_updateParentChangeListener",value:function(){this._parentChangeListener.value=this._parent.onDidChangeContext(this._onDidChangeContext.fire,this._onDidChangeContext)}},{key:"dispose",value:function(){this._isDisposed||(this._onDidChangeContext.dispose(),this._parent.disposeContext(this._myContextId),this._parentChangeListener.dispose(),this._domNode.removeAttribute(Pr),this._isDisposed=!0)}},{key:"getContextValuesContainer",value:function(e){return this._isDisposed?Fr.INSTANCE:this._parent.getContextValuesContainer(e)}},{key:"createChildContext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._myContextId;if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(e)}},{key:"disposeContext",value:function(e){this._isDisposed||this._parent.disposeContext(e)}}]),n}(Vr);ue.P.registerCommand(li.Eq,(function(e,t,n){e.get(li.i6).createKey(String(t),n)})),ue.P.registerCommand({id:"getContextKeyInfo",handler:function(){return(0,J.Z)(li.uy.all()).sort((function(e,t){return e.key.localeCompare(t.key)}))},description:{description:(0,kn.N)("getContextKeyInfo","A command that returns information about context keys"),args:[]}}),ue.P.registerCommand("_generateContextKeyInfo",(function(){var e,t=[],n=new Set,i=(0,X.Z)(li.uy.all());try{for(i.s();!(e=i.n()).done;){var r=e.value;n.has(r.key)||(n.add(r.key),t.push(r))}}catch(o){i.e(o)}finally{i.f()}t.sort((function(e,t){return e.key.localeCompare(t.key)})),console.log(JSON.stringify(t,void 0,2))}));var Kr,qr=n(29077),Gr=n(97326),$r=n(67404),Qr=n(61727),Xr=n(81629),Jr=n(32721);function eo(e,t,n){var i=n.mode===Kr.ALIGN?n.offset:n.offset+n.size,r=n.mode===Kr.ALIGN?n.offset+n.size:n.offset;return 0===n.position?t<=e-i?i:t<=r?r-t:Math.max(e-t,0):t<=r?r-t:t<=e-i?i:0}!function(e){e[e.AVOID=0]="AVOID",e[e.ALIGN=1]="ALIGN"}(Kr||(Kr={}));var to=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this)).container=null,r.delegate=null,r.toDisposeOnClean=Me.JT.None,r.toDisposeOnSetContainer=Me.JT.None,r.shadowRoot=null,r.shadowRootHostElement=null,r.view=ne.$(".context-view"),r.useFixedPosition=!1,r.useShadowDOM=!1,ne.hide(r.view),r.setContainer(e,i),r._register((0,Me.OF)((function(){return r.setContainer(null,1)}))),r}return(0,j.Z)(n,[{key:"setContainer",value:function(e,t){var i,r=this;if(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,null===(i=this.shadowRootHostElement)||void 0===i||i.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),e){if(this.container=e,this.useFixedPosition=1!==t,this.useShadowDOM=3===t,this.useShadowDOM){this.shadowRootHostElement=ne.$(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});var o=document.createElement("style");o.textContent=io,this.shadowRoot.appendChild(o),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(ne.$("slot"))}else this.container.appendChild(this.view);var a=new Me.SL;n.BUBBLE_UP_EVENTS.forEach((function(e){a.add(ne.addStandardDisposableListener(r.container,e,(function(e){r.onDOMEvent(e,!1)})))})),n.BUBBLE_DOWN_EVENTS.forEach((function(e){a.add(ne.addStandardDisposableListener(r.container,e,(function(e){r.onDOMEvent(e,!0)}),!0))})),this.toDisposeOnSetContainer=a}}},{key:"show",value:function(e){this.isVisible()&&this.hide(),ne.clearNode(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="2500",this.view.style.position=this.useFixedPosition?"fixed":"absolute",ne.show(this.view),this.toDisposeOnClean=e.render(this.view)||Me.JT.None,this.delegate=e,this.doLayout(),this.delegate.focus&&this.delegate.focus()}},{key:"getViewElement",value:function(){return this.view}},{key:"layout",value:function(){this.isVisible()&&(!1!==this.delegate.canRelayout||Oe.gn&&Jr.D.pointerEvents?(this.delegate.layout&&this.delegate.layout(),this.doLayout()):this.hide())}},{key:"doLayout",value:function(){if(this.isVisible()){var e,t=this.delegate.getAnchor();if(ne.isHTMLElement(t)){var n=ne.getDomNodePagePosition(t);e={top:n.top,left:n.left,width:n.width,height:n.height}}else e={top:t.y,left:t.x,width:t.width||1,height:t.height||2};var i,r,o=ne.getTotalWidth(this.view),a=ne.getTotalHeight(this.view),s=this.delegate.anchorPosition||0,u=this.delegate.anchorAlignment||0;if(0===(this.delegate.anchorAxisAlignment||0)){var l={offset:e.top-window.pageYOffset,size:e.height,position:0===s?0:1},c={offset:e.left,size:e.width,position:0===u?0:1,mode:Kr.ALIGN};i=eo(window.innerHeight,a,l)+window.pageYOffset,Xr.e.intersects({start:i,end:i+a},{start:l.offset,end:l.offset+l.size})&&(c.mode=Kr.AVOID),r=eo(window.innerWidth,o,c)}else{var d={offset:e.left,size:e.width,position:0===u?0:1},h={offset:e.top,size:e.height,position:0===s?0:1,mode:Kr.ALIGN};r=eo(window.innerWidth,o,d),Xr.e.intersects({start:r,end:r+o},{start:d.offset,end:d.offset+d.size})&&(h.mode=Kr.AVOID),i=eo(window.innerHeight,a,h)+window.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(0===s?"bottom":"top"),this.view.classList.add(0===u?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);var f=ne.getDomNodePagePosition(this.container);this.view.style.top="".concat(i-(this.useFixedPosition?ne.getDomNodePagePosition(this.view).top:f.top),"px"),this.view.style.left="".concat(r-(this.useFixedPosition?ne.getDomNodePagePosition(this.view).left:f.left),"px"),this.view.style.width="initial"}}},{key:"hide",value:function(e){var t=this.delegate;this.delegate=null,(null===t||void 0===t?void 0:t.onHide)&&t.onHide(e),this.toDisposeOnClean.dispose(),ne.hide(this.view)}},{key:"isVisible",value:function(){return!!this.delegate}},{key:"onDOMEvent",value:function(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):t&&!ne.isAncestor(e.target,this.container)&&this.hide())}},{key:"dispose",value:function(){this.hide(),(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}}]),n}(Me.JT);to.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],to.BUBBLE_DOWN_EVENTS=["click"];var no,io='\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t@font-face {\n\t\tfont-family: "codicon";\n\t\tsrc: url("./codicon.ttf?5d4d76ab2ce5108968ad644d591a16a6") format("truetype");\n\t}\n\n\t.codicon[class*=\'codicon-\'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; }\n\n\t:host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }\n',ro=n(4354),oo=n(84039),ao=n(22410),so=n(84539),uo=n(55076),lo=n(10939),co=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,ho=/(&amp;)?(&amp;)([^\s&])/g,fo=(0,ro.CM)("menu-selection",ro.lA.check),po=(0,ro.CM)("menu-submenu",ro.lA.chevronRight);!function(e){e[e.Right=0]="Right",e[e.Left=1]="Left"}(no||(no={}));var go=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,F.Z)(this,n),e.classList.add("monaco-menu-container"),e.setAttribute("role","presentation");var a=document.createElement("div");a.classList.add("monaco-menu"),a.setAttribute("role","presentation"),(r=t.call(this,a,{orientation:1,actionViewItemProvider:function(e){return r.doGetActionViewItem(e,o,s)},context:o.context,actionRunner:o.actionRunner,ariaLabel:o.ariaLabel,focusOnlyEnabledItems:!0,triggerKeys:{keys:[3].concat((0,J.Z)(Oe.dz||Oe.IJ?[10]:[])),keyDown:!0}})).menuElement=a,r.actionsList.setAttribute("role","menu"),r.actionsList.tabIndex=0,r.menuDisposables=r._register(new Me.SL),r.initializeStyleSheet(e),(0,ne.addDisposableListener)(a,ne.EventType.KEY_DOWN,(function(e){new cn.y(e).equals(2)&&e.preventDefault()})),o.enableMnemonics&&r.menuDisposables.add((0,ne.addDisposableListener)(a,ne.EventType.KEY_DOWN,(function(e){var t=e.key.toLocaleLowerCase();if(r.mnemonics.has(t)){ne.EventHelper.stop(e,!0);var n=r.mnemonics.get(t);if(1===n.length&&(n[0]instanceof mo&&n[0].container&&r.focusItemByElement(n[0].container),n[0].onClick(e)),n.length>1){var i=n.shift();i&&i.container&&(r.focusItemByElement(i.container),n.push(i)),r.mnemonics.set(t,n)}}}))),Oe.IJ&&r._register((0,ne.addDisposableListener)(a,ne.EventType.KEY_DOWN,(function(e){var t=new cn.y(e);t.equals(14)||t.equals(11)?(r.focusedItem=r.viewItems.length-1,r.focusNext(),ne.EventHelper.stop(e,!0)):(t.equals(13)||t.equals(12))&&(r.focusedItem=0,r.focusPrevious(),ne.EventHelper.stop(e,!0))}))),r._register((0,ne.addDisposableListener)(r.domNode,ne.EventType.MOUSE_OUT,(function(e){var t=e.relatedTarget;(0,ne.isAncestor)(t,r.domNode)||(r.focusedItem=void 0,r.updateFocus(),e.stopPropagation())}))),r._register((0,ne.addDisposableListener)(r.actionsList,ne.EventType.MOUSE_OVER,(function(e){var t=e.target;if(t&&(0,ne.isAncestor)(t,r.actionsList)&&t!==r.actionsList){for(;t.parentElement!==r.actionsList&&null!==t.parentElement;)t=t.parentElement;if(t.classList.contains("action-item")){var n=r.focusedItem;r.setFocusedItem(t),n!==r.focusedItem&&r.updateFocus()}}})));var s={parent:(0,Gr.Z)(r)};r.mnemonics=new Map,r.scrollableElement=r._register(new Qr.s$(a,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));var u=r.scrollableElement.getDomNode();return u.style.position="",r._register((0,ne.addDisposableListener)(u,ne.EventType.MOUSE_UP,(function(e){e.preventDefault()}))),a.style.maxHeight="".concat(Math.max(10,window.innerHeight-e.getBoundingClientRect().top-35),"px"),i=i.filter((function(e){var t;return!(null===(t=o.submenuIds)||void 0===t?void 0:t.has(e.id))||(console.warn("Found submenu cycle: ".concat(e.id)),!1)})),r.push(i,{icon:!0,label:!0,isMenu:!0}),e.appendChild(r.scrollableElement.getDomNode()),r.scrollableElement.scanDomNode(),r.viewItems.filter((function(e){return!(e instanceof _o)})).forEach((function(e,t,n){e.updatePositionInSet(t+1,n.length)})),r}return(0,j.Z)(n,[{key:"initializeStyleSheet",value:function(e){(0,ne.isInShadowDOM)(e)?(this.styleSheet=(0,ne.createStyleSheet)(e),this.styleSheet.textContent=yo):(n.globalStyleSheet||(n.globalStyleSheet=(0,ne.createStyleSheet)(),n.globalStyleSheet.textContent=yo),this.styleSheet=n.globalStyleSheet)}},{key:"style",value:function(e){var t=this.getContainer(),n=e.foregroundColor?"".concat(e.foregroundColor):"",i=e.backgroundColor?"".concat(e.backgroundColor):"",r=e.borderColor?"1px solid ".concat(e.borderColor):"",o=e.shadowColor?"0 2px 4px ".concat(e.shadowColor):"";t.style.border=r,this.domNode.style.color=n,this.domNode.style.backgroundColor=i,t.style.boxShadow=o,this.viewItems&&this.viewItems.forEach((function(t){(t instanceof vo||t instanceof _o)&&t.style(e)}))}},{key:"getContainer",value:function(){return this.scrollableElement.getDomNode()}},{key:"onScroll",get:function(){return this.scrollableElement.onScroll}},{key:"focusItemByElement",value:function(e){var t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}},{key:"setFocusedItem",value:function(e){for(var t=0;t<this.actionsList.children.length;t++){if(e===this.actionsList.children[t]){this.focusedItem=t;break}}}},{key:"updateFocus",value:function(e){(0,Ee.Z)((0,Ne.Z)(n.prototype),"updateFocus",this).call(this,e,!0),"undefined"!==typeof this.focusedItem&&this.scrollableElement.setScrollPosition({scrollTop:Math.round(this.menuElement.scrollTop)})}},{key:"doGetActionViewItem",value:function(e,t,n){if(e instanceof qr.Z0)return new _o(t.context,e,{icon:!0});if(e instanceof qr.wY){var i=new mo(e,e.actions,n,Object.assign(Object.assign({},t),{submenuIds:new Set([].concat((0,J.Z)(t.submenuIds||[]),[e.id]))}));if(t.enableMnemonics){var r=i.getMnemonic();if(r&&i.isEnabled()){var o=[];this.mnemonics.has(r)&&(o=this.mnemonics.get(r)),o.push(i),this.mnemonics.set(r,o)}}return i}var a={enableMnemonics:t.enableMnemonics,useEventAsContext:t.useEventAsContext};if(t.getKeyBinding){var s=t.getKeyBinding(e);if(s){var u=s.getLabel();u&&(a.keybinding=u)}}var l=new vo(t.context,e,a);if(t.enableMnemonics){var c=l.getMnemonic();if(c&&l.isEnabled()){var d=[];this.mnemonics.has(c)&&(d=this.mnemonics.get(c)),d.push(l),this.mnemonics.set(c,d)}}return l}}]),n}($r.o),vo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,F.Z)(this,n),o.isMenu=!0,(r=t.call(this,i,i,o)).options=o,r.options.icon=void 0!==o.icon&&o.icon,r.options.label=void 0===o.label||o.label,r.cssClass="",r.options.label&&o.enableMnemonics){var a=r.getAction().label;if(a){var s=co.exec(a);s&&(r.mnemonic=(s[1]?s[1]:s[3]).toLocaleLowerCase())}}return r.runOnceToEnableMouseUp=new De.pY((function(){r.element&&(r._register((0,ne.addDisposableListener)(r.element,ne.EventType.MOUSE_UP,(function(e){if(ne.EventHelper.stop(e,!0),so.vU){if(new uo.n(e).rightButton)return;r.onClick(e)}else setTimeout((function(){r.onClick(e)}),0)}))),r._register((0,ne.addDisposableListener)(r.element,ne.EventType.CONTEXT_MENU,(function(e){ne.EventHelper.stop(e,!0)}))))}),100),r._register(r.runOnceToEnableMouseUp),r}return(0,j.Z)(n,[{key:"render",value:function(e){(0,Ee.Z)((0,Ne.Z)(n.prototype),"render",this).call(this,e),this.element&&(this.container=e,this.item=(0,ne.append)(this.element,(0,ne.$)("a.action-menu-item")),this._action.id===qr.Z0.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts","".concat(this.mnemonic))),this.check=(0,ne.append)(this.item,(0,ne.$)("span.menu-item-check"+fo.cssSelector)),this.check.setAttribute("role","none"),this.label=(0,ne.append)(this.item,(0,ne.$)("span.action-label")),this.options.label&&this.options.keybinding&&((0,ne.append)(this.item,(0,ne.$)("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked())}},{key:"blur",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"blur",this).call(this),this.applyStyle()}},{key:"focus",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"focus",this).call(this),this.item&&this.item.focus(),this.applyStyle()}},{key:"updatePositionInSet",value:function(e,t){this.item&&(this.item.setAttribute("aria-posinset","".concat(e)),this.item.setAttribute("aria-setsize","".concat(t)))}},{key:"updateLabel",value:function(){if(this.label&&this.options.label){(0,ne.clearNode)(this.label);var e=(0,lo.x$)(this.getAction().label);if(e){var t=function(e){var t=co,n=t.exec(e);if(!n)return e;var i=!n[1];return e.replace(t,i?"$2$3":"").trim()}(e);this.options.enableMnemonics||(e=t),this.label.setAttribute("aria-label",t.replace(/&&/g,"&"));var n=co.exec(e);if(n){e=Ue.YU(e),ho.lastIndex=0;for(var i=ho.exec(e);i&&i[1];)i=ho.exec(e);var r=function(e){return e.replace(/&amp;&amp;/g,"&amp;")};i?this.label.append(Ue.j3(r(e.substr(0,i.index))," "),(0,ne.$)("u",{"aria-hidden":"true"},i[3]),Ue.oL(r(e.substr(i.index+i[0].length))," ")):this.label.innerText=r(e).trim(),this.item&&this.item.setAttribute("aria-keyshortcuts",(n[1]?n[1]:n[3]).toLocaleLowerCase())}else this.label.innerText=e.replace(/&&/g,"&").trim()}}}},{key:"updateTooltip",value:function(){var e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=kn.N({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),e&&this.item&&(this.item.title=e)}},{key:"updateClass",value:function(){var e;this.cssClass&&this.item&&(e=this.item.classList).remove.apply(e,(0,J.Z)(this.cssClass.split(" ")));if(this.options.icon&&this.label){var t;if(this.cssClass=this.getAction().class||"",this.label.classList.add("icon"),this.cssClass)(t=this.label.classList).add.apply(t,(0,J.Z)(this.cssClass.split(" ")));this.updateEnabled()}else this.label&&this.label.classList.remove("icon")}},{key:"updateEnabled",value:function(){this.getAction().enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}},{key:"updateChecked",value:function(){this.item&&(this.getAction().checked?(this.item.classList.add("checked"),this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked","true")):(this.item.classList.remove("checked"),this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked","false")))}},{key:"getMnemonic",value:function(){return this.mnemonic}},{key:"applyStyle",value:function(){if(this.menuStyle){var e=this.element&&this.element.classList.contains("focused"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,n=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,i=e&&this.menuStyle.selectionBorderColor?"thin solid ".concat(this.menuStyle.selectionBorderColor):"";this.item&&(this.item.style.color=t?t.toString():"",this.item.style.backgroundColor=n?n.toString():""),this.check&&(this.check.style.color=t?t.toString():""),this.container&&(this.container.style.border=i)}}},{key:"style",value:function(e){this.menuStyle=e,this.applyStyle()}}]),n}(oo.Y),mo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o){var a;return(0,F.Z)(this,n),(a=t.call(this,e,e,o)).submenuActions=i,a.parentData=r,a.submenuOptions=o,a.mysubmenu=null,a.submenuDisposables=a._register(new Me.SL),a.mouseOver=!1,a.expandDirection=o&&void 0!==o.expandDirection?o.expandDirection:no.Right,a.showScheduler=new De.pY((function(){a.mouseOver&&(a.cleanupExistingSubmenu(!1),a.createSubmenu(!1))}),250),a.hideScheduler=new De.pY((function(){a.element&&!(0,ne.isAncestor)((0,ne.getActiveElement)(),a.element)&&a.parentData.submenu===a.mysubmenu&&(a.parentData.parent.focus(!1),a.cleanupExistingSubmenu(!0))}),750),a}return(0,j.Z)(n,[{key:"render",value:function(e){var t=this;(0,Ee.Z)((0,Ne.Z)(n.prototype),"render",this).call(this,e),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=(0,ne.append)(this.item,(0,ne.$)("span.submenu-indicator"+po.cssSelector)),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.KEY_UP,(function(e){var n=new cn.y(e);(n.equals(17)||n.equals(3))&&(ne.EventHelper.stop(e,!0),t.createSubmenu(!0))}))),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.KEY_DOWN,(function(e){var n=new cn.y(e);(0,ne.getActiveElement)()===t.item&&(n.equals(17)||n.equals(3))&&ne.EventHelper.stop(e,!0)}))),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.MOUSE_OVER,(function(e){t.mouseOver||(t.mouseOver=!0,t.showScheduler.schedule())}))),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.MOUSE_LEAVE,(function(e){t.mouseOver=!1}))),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.FOCUS_OUT,(function(e){t.element&&!(0,ne.isAncestor)((0,ne.getActiveElement)(),t.element)&&t.hideScheduler.schedule()}))),this._register(this.parentData.parent.onScroll((function(){t.parentData.parent.focus(!1),t.cleanupExistingSubmenu(!1)}))))}},{key:"updateEnabled",value:function(){}},{key:"onClick",value:function(e){ne.EventHelper.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}},{key:"cleanupExistingSubmenu",value:function(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch(Ze){}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}},{key:"calculateSubmenuMenuLayout",value:function(e,t,n,i){var r={top:0,left:0};return r.left=eo(e.width,t.width,{position:i===no.Right?0:1,offset:n.left,size:n.width}),r.left>=n.left&&r.left<n.left+n.width&&(n.left+10+t.width<=e.width&&(r.left=n.left+10),n.top+=10,n.height=0),r.top=eo(e.height,t.height,{position:0,offset:n.top,size:0}),r.top+t.height===n.top&&r.top+n.height+t.height<=e.height&&(r.top+=n.height),r}},{key:"createSubmenu",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(this.element)if(this.parentData.submenu)this.parentData.submenu.focus(!1);else{this.updateAriaExpanded("true"),this.submenuContainer=(0,ne.append)(this.element,(0,ne.$)("div.monaco-submenu")),this.submenuContainer.classList.add("menubar-menu-items-holder","context-view");var n=getComputedStyle(this.parentData.parent.domNode),i=parseFloat(n.paddingTop||"0")||0;this.submenuContainer.style.zIndex="1",this.submenuContainer.style.position="fixed",this.submenuContainer.style.top="0",this.submenuContainer.style.left="0",this.parentData.submenu=new go(this.submenuContainer,this.submenuActions.length?this.submenuActions:[new qr.eZ],this.submenuOptions),this.menuStyle&&this.parentData.submenu.style(this.menuStyle);var r=this.element.getBoundingClientRect(),o={top:r.top-i,left:r.left,height:r.height+2*i,width:r.width},a=this.submenuContainer.getBoundingClientRect(),s=this.calculateSubmenuMenuLayout(new ne.Dimension(window.innerWidth,window.innerHeight),ne.Dimension.lift(a),o,this.expandDirection),u=s.top,l=s.left;this.submenuContainer.style.left="".concat(l,"px"),this.submenuContainer.style.top="".concat(u,"px"),this.submenuDisposables.add((0,ne.addDisposableListener)(this.submenuContainer,ne.EventType.KEY_UP,(function(t){new cn.y(t).equals(15)&&(ne.EventHelper.stop(t,!0),e.parentData.parent.focus(),e.cleanupExistingSubmenu(!0))}))),this.submenuDisposables.add((0,ne.addDisposableListener)(this.submenuContainer,ne.EventType.KEY_DOWN,(function(e){new cn.y(e).equals(15)&&ne.EventHelper.stop(e,!0)}))),this.submenuDisposables.add(this.parentData.submenu.onDidCancel((function(){e.parentData.parent.focus(),e.cleanupExistingSubmenu(!0)}))),this.parentData.submenu.focus(t),this.mysubmenu=this.parentData.submenu}}},{key:"updateAriaExpanded",value:function(e){var t;this.item&&(null===(t=this.item)||void 0===t||t.setAttribute("aria-expanded",e))}},{key:"applyStyle",value:function(){if((0,Ee.Z)((0,Ne.Z)(n.prototype),"applyStyle",this).call(this),this.menuStyle){var e=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=e?"".concat(e):""),this.parentData.submenu&&this.parentData.submenu.style(this.menuStyle)}}},{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}]),n}(vo),_o=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){return(0,F.Z)(this,n),t.apply(this,arguments)}return(0,j.Z)(n,[{key:"style",value:function(e){this.label&&(this.label.style.borderBottomColor=e.separatorColor?"".concat(e.separatorColor):"")}}]),n}(oo.g);var yo="\n.monaco-menu {\n\tfont-size: 13px;\n\n}\n\n".concat((0,ao.a)(fo),"\n").concat((0,ao.a)(po),"\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar.animated .action-item.active {\n\ttransform: scale(1.272019649, 1.272019649); /* 1.272019649 = \u221a\u03c6 */\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\topacity: 0.4;\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid #bbb;\n\tpadding-top: 1px;\n\tmargin-left: .8em;\n\tmargin-right: .8em;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tpadding: 0.5em 0 0 0;\n\tmargin-bottom: 0.5em;\n\twidth: 100%;\n\theight: 0px !important;\n\tmargin-left: .8em !important;\n\tmargin-right: .8em !important;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n\t-webkit-app-region: no-drag;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tborder: thin solid transparent; /* prevents jumping behaviour on hover or focus */\n}\n\n\n/* High Contrast Theming */\n:host-context(.hc-black) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: .5em 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 1.8em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tpadding: 0.2em 0 0 0;\n\tmargin-bottom: 0.2em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}\n\n/* Arrows */\n.monaco-scrollable-element > .scrollbar > .scra {\n\tcursor: pointer;\n\tfont-size: 11px !important;\n}\n\n.monaco-scrollable-element > .visible {\n\topacity: 1;\n\n\t/* Background rule added for IE9 - to allow clicks on dom node */\n\tbackground:rgba(0,0,0,0);\n\n\ttransition: opacity 100ms linear;\n}\n.monaco-scrollable-element > .invisible {\n\topacity: 0;\n\tpointer-events: none;\n}\n.monaco-scrollable-element > .invisible.fade {\n\ttransition: opacity 800ms linear;\n}\n\n/* Scrollable Content Inset Shadow */\n.monaco-scrollable-element > .shadow {\n\tposition: absolute;\n\tdisplay: none;\n}\n.monaco-scrollable-element > .shadow.top {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 3px;\n\theight: 3px;\n\twidth: 100%;\n\tbox-shadow: #DDD 0 6px 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.left {\n\tdisplay: block;\n\ttop: 3px;\n\tleft: 0;\n\theight: 100%;\n\twidth: 3px;\n\tbox-shadow: #DDD 6px 0 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.top-left-corner {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 0;\n\theight: 3px;\n\twidth: 3px;\n}\n.monaco-scrollable-element > .shadow.top.left {\n\tbox-shadow: #DDD 6px 6px 6px -6px inset;\n}\n\n/* ---------- Default Style ---------- */\n\n:host-context(.vs) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(100, 100, 100, .4);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(121, 121, 121, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(111, 195, 223, .6);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(100, 100, 100, .7);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(111, 195, 223, .8);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(0, 0, 0, .6);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(191, 191, 191, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(111, 195, 223, 1);\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: #000 6px 0 6px -6px inset;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: #000 6px 6px 6px -6px inset;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: none;\n}\n"),bo=n(35215),wo=n(61680),Co=function(){function e(t,n,i,r,o){(0,F.Z)(this,e),this.contextViewService=t,this.telemetryService=n,this.notificationService=i,this.keybindingService=r,this.themeService=o,this.focusToReturn=null,this.block=null,this.options={blockMouse:!0}}return(0,j.Z)(e,[{key:"configure",value:function(e){this.options=e}},{key:"showContextMenu",value:function(e){var t=this,n=e.getActions();if(n.length){var i;this.focusToReturn=document.activeElement;var r=(0,ne.isHTMLElement)(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:function(){return e.getAnchor()},canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:function(r){var o=e.getMenuClassName?e.getMenuClassName():"";o&&(r.className+=" "+o),t.options.blockMouse&&(t.block=r.appendChild((0,ne.$)(".context-view-block")),t.block.style.position="fixed",t.block.style.cursor="initial",t.block.style.left="0",t.block.style.top="0",t.block.style.width="100%",t.block.style.height="100%",t.block.style.zIndex="-1",(0,wo.jt)(t.block,ne.EventType.MOUSE_DOWN)((function(e){return e.stopPropagation()})));var a=new Me.SL,s=e.actionRunner||new qr.Wi;return s.onBeforeRun(t.onActionRun,t,a),s.onDidRun(t.onDidActionRun,t,a),i=new go(r,n,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:s,getKeyBinding:e.getKeyBinding?e.getKeyBinding:function(e){return t.keybindingService.lookupKeybinding(e.id)}}),a.add((0,bo.tj)(i,t.themeService)),i.onDidCancel((function(){return t.contextViewService.hideContextView(!0)}),null,a),i.onDidBlur((function(){return t.contextViewService.hideContextView(!0)}),null,a),(0,wo.jt)(window,ne.EventType.BLUR)((function(){t.contextViewService.hideContextView(!0)}),null,a),(0,wo.jt)(window,ne.EventType.MOUSE_DOWN)((function(e){if(!e.defaultPrevented){var n=new uo.n(e),i=n.target;if(!n.rightButton){for(;i;){if(i===r)return;i=i.parentElement}t.contextViewService.hideContextView(!0)}}}),null,a),(0,Me.F8)(a,i)},focus:function(){i&&i.focus(!!e.autoSelectFirstItem)},onHide:function(n){e.onHide&&e.onHide(!!n),t.block&&(t.block.remove(),t.block=null),t.focusToReturn&&t.focusToReturn.focus()}},r,!!r)}}},{key:"onActionRun",value:function(e){this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1),this.focusToReturn&&this.focusToReturn.focus()}},{key:"onDidActionRun",value:function(e){e.error&&!(0,Te.VV)(e.error)&&this.notificationService.error(e.error)}}]),e}(),ko=n(45014),So=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},xo=function(e,t){return function(n,i){t(n,i,e)}},Lo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a){var s;return(0,F.Z)(this,n),(s=t.call(this)).contextMenuHandler=new Co(r,e,i,o,a),s}return(0,j.Z)(n,[{key:"configure",value:function(e){this.contextMenuHandler.configure(e)}},{key:"showContextMenu",value:function(e){this.contextMenuHandler.showContextMenu(e),ne.ModifierKeyEmitter.getInstance().resetKeyStatus()}}]),n}(Me.JT);Lo=So([xo(0,ko.b),xo(1,An.lT),xo(2,ci.u),xo(3,hi.d),xo(4,fi.XE)],Lo);var Eo=(0,di.yh)("layoutService"),No=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Do=function(e,t){return function(n,i){t(n,i,e)}},Mo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).layoutService=e,i.currentViewDisposable=Me.JT.None,i.container=e.container,i.contextView=i._register(new to(i.container,1)),i.layout(),i._register(e.onDidLayout((function(){return i.layout()}))),i}return(0,j.Z)(n,[{key:"setContainer",value:function(e,t){this.contextView.setContainer(e,t||1)}},{key:"showContextView",value:function(e,t,n){var i=this;t?t!==this.container&&(this.container=t,this.setContainer(t,n?3:2)):this.container!==this.layoutService.container&&(this.container=this.layoutService.container,this.setContainer(this.container,1)),this.contextView.show(e);var r=(0,Me.OF)((function(){i.currentViewDisposable===r&&i.hideContextView()}));return this.currentViewDisposable=r,r}},{key:"getContextViewElement",value:function(){return this.contextView.getViewElement()}},{key:"layout",value:function(){this.contextView.layout()}},{key:"hideContextView",value:function(e){this.contextView.hide(e)}}]),n}(Me.JT);Mo=No([Do(0,Eo)],Mo);var To=n(34782),Oo=n(5647),Io=n(28664),Ao=(0,j.Z)((function e(t){(0,F.Z)(this,e),this.incoming=new Map,this.outgoing=new Map,this.data=t})),Ro=function(){function e(t){(0,F.Z)(this,e),this._hashFn=t,this._nodes=new Map}return(0,j.Z)(e,[{key:"roots",value:function(){var e,t=[],n=(0,X.Z)(this._nodes.values());try{for(n.s();!(e=n.n()).done;){var i=e.value;0===i.outgoing.size&&t.push(i)}}catch(r){n.e(r)}finally{n.f()}return t}},{key:"insertEdge",value:function(e,t){var n=this.lookupOrInsertNode(e),i=this.lookupOrInsertNode(t);n.outgoing.set(this._hashFn(t),i),i.incoming.set(this._hashFn(e),n)}},{key:"removeNode",value:function(e){var t=this._hashFn(e);this._nodes.delete(t);var n,i=(0,X.Z)(this._nodes.values());try{for(i.s();!(n=i.n()).done;){var r=n.value;r.outgoing.delete(t),r.incoming.delete(t)}}catch(o){i.e(o)}finally{i.f()}}},{key:"lookupOrInsertNode",value:function(e){var t=this._hashFn(e),n=this._nodes.get(t);return n||(n=new Ao(e),this._nodes.set(t,n)),n}},{key:"isEmpty",value:function(){return 0===this._nodes.size}},{key:"toString",value:function(){var e,t=[],n=(0,X.Z)(this._nodes);try{for(n.s();!(e=n.n()).done;){var i=(0,at.Z)(e.value,2),r=i[0],o=i[1];t.push("".concat(r,", (incoming)[").concat((0,J.Z)(o.incoming.keys()).join(", "),"], (outgoing)[").concat((0,J.Z)(o.outgoing.keys()).join(","),"]"))}}catch(a){n.e(a)}finally{n.f()}return t.join("\n")}},{key:"findCycleSlow",value:function(){var e,t=(0,X.Z)(this._nodes);try{for(t.s();!(e=t.n()).done;){var n=(0,at.Z)(e.value,2),i=n[0],r=n[1],o=new Set([i]),a=this._findCycle(r,o);if(a)return a}}catch(s){t.e(s)}finally{t.f()}}},{key:"_findCycle",value:function(e,t){var n,i=(0,X.Z)(e.outgoing);try{for(i.s();!(n=i.n()).done;){var r=(0,at.Z)(n.value,2),o=r[0],a=r[1];if(t.has(o))return[].concat((0,J.Z)(t),[o]).join(" -> ");t.add(o);var s=this._findCycle(a,t);if(s)return s;t.delete(o)}}catch(u){i.e(u)}finally{i.f()}}}]),e}(),Po=n(52144),Zo=n(41001),Fo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i,r;return(0,F.Z)(this,n),(i=t.call(this,"cyclic dependency between services")).message=null!==(r=e.findCycleSlow())&&void 0!==r?r:"UNABLE to detect cycle, dumping graph: \n".concat(e.toString()),i}return(0,j.Z)(n)}((0,Io.Z)(Error)),jo=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Zo.y,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2?arguments[2]:void 0;(0,F.Z)(this,e),this._activeInstantiations=new Set,this._services=t,this._strict=n,this._parent=i,this._services.set(di.TG,this)}return(0,j.Z)(e,[{key:"createChild",value:function(t){return new e(t,this._strict,this)}},{key:"invokeFunction",value:function(e){var t=this,n=Ho.traceInvocation(e),i=!1;try{for(var r={get:function(e,r){if(i)throw(0,Te.L6)("service accessor is only valid during the invocation of its target method");var o=t._getOrCreateServiceInstance(e,n);if(!o&&r!==di.jt)throw new Error("[invokeFunction] unknown service '".concat(e,"'"));return o}},o=arguments.length,a=new Array(o>1?o-1:0),s=1;s<o;s++)a[s-1]=arguments[s];return e.apply(void 0,[r].concat(a))}finally{i=!0,n.stop()}}},{key:"createInstance",value:function(e){for(var t,n,i=arguments.length,r=new Array(i>1?i-1:0),o=1;o<i;o++)r[o-1]=arguments[o];return e instanceof Po.M?(t=Ho.traceCreation(e.ctor),n=this._createInstance(e.ctor,e.staticArguments.concat(r),t)):(t=Ho.traceCreation(e),n=this._createInstance(e,r,t)),t.stop(),n}},{key:"_createInstance",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,r=di.I8.getServiceDependencies(e).sort((function(e,t){return e.index-t.index})),o=[],a=(0,X.Z)(r);try{for(a.s();!(t=a.n()).done;){var s=t.value,u=this._getOrCreateServiceInstance(s.id,i);if(!u&&this._strict&&!s.optional)throw new Error("[createInstance] ".concat(e.name," depends on UNKNOWN service ").concat(s.id,"."));o.push(u)}}catch(d){a.e(d)}finally{a.f()}var l=r.length>0?r[0].index:n.length;if(n.length!==l){console.warn("[createInstance] First service dependency of ".concat(e.name," at position ").concat(l+1," conflicts with ").concat(n.length," static arguments"));var c=l-n.length;n=c>0?n.concat(new Array(c)):n.slice(0,l)}return(0,Oo.Z)(e,[].concat((0,J.Z)(n),o))}},{key:"_setServiceInstance",value:function(e,t){if(this._services.get(e)instanceof Po.M)this._services.set(e,t);else{if(!this._parent)throw new Error("illegalState - setting UNKNOWN service instance");this._parent._setServiceInstance(e,t)}}},{key:"_getServiceInstanceOrDescriptor",value:function(e){var t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}},{key:"_getOrCreateServiceInstance",value:function(e,t){var n=this._getServiceInstanceOrDescriptor(e);return n instanceof Po.M?this._safeCreateAndCacheServiceInstance(e,n,t.branch(e,!0)):(t.branch(e,!1),n)}},{key:"_safeCreateAndCacheServiceInstance",value:function(e,t,n){if(this._activeInstantiations.has(e))throw new Error("illegal state - RECURSIVELY instantiating service '".concat(e,"'"));this._activeInstantiations.add(e);try{return this._createAndCacheServiceInstance(e,t,n)}finally{this._activeInstantiations.delete(e)}}},{key:"_createAndCacheServiceInstance",value:function(e,t,n){for(var i=new Ro((function(e){return e.id.toString()})),r=0,o=[{id:e,desc:t,_trace:n}];o.length;){var a=o.pop();if(i.lookupOrInsertNode(a),r++>1e3)throw new Fo(i);var s,u=(0,X.Z)(di.I8.getServiceDependencies(a.desc.ctor));try{for(u.s();!(s=u.n()).done;){var l=s.value,c=this._getServiceInstanceOrDescriptor(l.id);if(c||l.optional||console.warn("[createInstance] ".concat(e," depends on ").concat(l.id," which is NOT registered.")),c instanceof Po.M){var d={id:l.id,desc:c,_trace:a._trace.branch(l.id,!0)};i.insertEdge(a,d),o.push(d)}}}catch(m){u.e(m)}finally{u.f()}}for(;;){var h=i.roots();if(0===h.length){if(!i.isEmpty())throw new Fo(i);break}var f,p=(0,X.Z)(h);try{for(p.s();!(f=p.n()).done;){var g=f.value.data;if(this._getServiceInstanceOrDescriptor(g.id)instanceof Po.M){var v=this._createServiceInstanceWithOwner(g.id,g.desc.ctor,g.desc.staticArguments,g.desc.supportsDelayedInstantiation,g._trace);this._setServiceInstance(g.id,v)}i.removeNode(g)}}catch(m){p.e(m)}finally{p.f()}}return this._getServiceInstanceOrDescriptor(e)}},{key:"_createServiceInstanceWithOwner",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;if(this._services.get(e)instanceof Po.M)return this._createServiceInstance(t,n,i,r);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,n,i,r);throw new Error("illegalState - creating UNKNOWN service instance ".concat(t.name))}},{key:"_createServiceInstance",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>3?arguments[3]:void 0;if(arguments.length>2?arguments[2]:void 0){var r=new De.Ue((function(){return t._createInstance(e,n,i)}));return new Proxy(Object.create(null),{get:function(e,t){if(t in e)return e[t];var n=r.value,i=n[t];return"function"!==typeof i||(i=i.bind(n),e[t]=i),i},set:function(e,t,n){return r.value[t]=n,!0}})}return this._createInstance(e,n,i)}}]),e}(),Ho=function(){function e(t,n){(0,F.Z)(this,e),this.type=t,this.name=n,this._start=Date.now(),this._dep=[]}return(0,j.Z)(e,[{key:"branch",value:function(t,n){var i=new e(2,t.toString());return this._dep.push([t,n,i]),i}},{key:"stop",value:function(){var t=Date.now()-this._start;e._totals+=t;var n=!1;var i=["".concat(0===this.type?"CREATE":"CALL"," ").concat(this.name),"".concat(function e(t,i){var r,o=[],a=new Array(t+1).join("\t"),s=(0,X.Z)(i._dep);try{for(s.s();!(r=s.n()).done;){var u=(0,at.Z)(r.value,3),l=u[0],c=u[1],d=u[2];if(c&&d){n=!0,o.push("".concat(a,"CREATES -> ").concat(l));var h=e(t+1,d);h&&o.push(h)}else o.push("".concat(a,"uses -> ").concat(l))}}catch(f){s.e(f)}finally{s.f()}return o.join("\n")}(1,this)),"DONE, took ".concat(t.toFixed(2),"ms (grand total ").concat(e._totals.toFixed(2),"ms)")];(t>2||n)&&console.log(i.join("\n"))}}],[{key:"traceInvocation",value:function(t){return e._None}},{key:"traceCreation",value:function(t){return e._None}}]),e}();Ho._None=new(function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){return(0,F.Z)(this,n),t.call(this,-1,null)}return(0,j.Z)(n,[{key:"stop",value:function(){}},{key:"branch",value:function(){return this}}]),n}(Ho)),Ho._totals=0;var Bo=n(5399),zo=n(98946),Wo=n(95123),Vo=function(){function e(){(0,F.Z)(this,e),this._byResource=new re.Y9,this._byOwner=new Map}return(0,j.Z)(e,[{key:"set",value:function(e,t,n){var i=this._byResource.get(e);i||(i=new Map,this._byResource.set(e,i)),i.set(t,n);var r=this._byOwner.get(t);r||(r=new re.Y9,this._byOwner.set(t,r)),r.set(e,n)}},{key:"get",value:function(e,t){var n=this._byResource.get(e);return null===n||void 0===n?void 0:n.get(t)}},{key:"delete",value:function(e,t){var n=!1,i=!1,r=this._byResource.get(e);r&&(n=r.delete(t));var o=this._byOwner.get(t);if(o&&(i=o.delete(e)),n!==i)throw new Error("illegal state");return n&&i}},{key:"values",value:function(e){var t,n,i,r;return"string"===typeof e?null!==(n=null===(t=this._byOwner.get(e))||void 0===t?void 0:t.values())&&void 0!==n?n:Ir.$.empty():W.o.isUri(e)?null!==(r=null===(i=this._byResource.get(e))||void 0===i?void 0:i.values())&&void 0!==r?r:Ir.$.empty():Ir.$.map(Ir.$.concat.apply(Ir.$,(0,J.Z)(this._byOwner.values())),(function(e){return e[1]}))}}]),e}(),Yo=function(){function e(t){(0,F.Z)(this,e),this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new re.Y9,this._service=t,this._subscription=t.onMarkerChanged(this._update,this)}return(0,j.Z)(e,[{key:"dispose",value:function(){this._subscription.dispose()}},{key:"_update",value:function(e){var t,n=(0,X.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=this._data.get(i);r&&this._substract(r);var o=this._resourceStats(i);this._add(o),this._data.set(i,o)}}catch(a){n.e(a)}finally{n.f()}}},{key:"_resourceStats",value:function(e){var t={errors:0,warnings:0,infos:0,unknowns:0};if(e.scheme===ae.lg.inMemory||e.scheme===ae.lg.walkThrough||e.scheme===ae.lg.walkThroughSnippet)return t;var n,i=(0,X.Z)(this._service.read({resource:e}));try{for(i.s();!(n=i.n()).done;){var r=n.value.severity;r===Wo.ZL.Error?t.errors+=1:r===Wo.ZL.Warning?t.warnings+=1:r===Wo.ZL.Info?t.infos+=1:t.unknowns+=1}}catch(o){i.e(o)}finally{i.f()}return t}},{key:"_substract",value:function(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}},{key:"_add",value:function(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}]),e}(),Uo=function(){function e(){(0,F.Z)(this,e),this._onMarkerChanged=new B.Q5,this.onMarkerChanged=B.ju.debounce(this._onMarkerChanged.event,e._debouncer,0),this._data=new Vo,this._stats=new Yo(this)}return(0,j.Z)(e,[{key:"dispose",value:function(){this._stats.dispose(),this._onMarkerChanged.dispose()}},{key:"remove",value:function(e,t){var n,i=(0,X.Z)(t||[]);try{for(i.s();!(n=i.n()).done;){var r=n.value;this.changeOne(e,r,[])}}catch(o){i.e(o)}finally{i.f()}}},{key:"changeOne",value:function(t,n,i){if((0,wt.XY)(i)){this._data.delete(n,t)&&this._onMarkerChanged.fire([n])}else{var r,o=[],a=(0,X.Z)(i);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=e._toMarker(t,n,s);u&&o.push(u)}}catch(l){a.e(l)}finally{a.f()}this._data.set(n,t,o),this._onMarkerChanged.fire([n])}}},{key:"read",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Object.create(null),n=t.owner,i=t.resource,r=t.severities,o=t.take;if((!o||o<0)&&(o=-1),n&&i){var a=this._data.get(i,n);if(a){var s,u=[],l=(0,X.Z)(a);try{for(l.s();!(s=l.n()).done;){var c=s.value;if(e._accept(c,r)){var d=u.push(c);if(o>0&&d===o)break}}}catch(D){l.e(D)}finally{l.f()}return u}return[]}if(n||i){var h,f=this._data.values(null!==i&&void 0!==i?i:n),p=[],g=(0,X.Z)(f);try{for(g.s();!(h=g.n()).done;){var v,m=h.value,_=(0,X.Z)(m);try{for(_.s();!(v=_.n()).done;){var y=v.value;if(e._accept(y,r)){var b=p.push(y);if(o>0&&b===o)return p}}}catch(D){_.e(D)}finally{_.f()}}}catch(D){g.e(D)}finally{g.f()}return p}var w,C=[],k=(0,X.Z)(this._data.values());try{for(k.s();!(w=k.n()).done;){var S,x=w.value,L=(0,X.Z)(x);try{for(L.s();!(S=L.n()).done;){var E=S.value;if(e._accept(E,r)){var N=C.push(E);if(o>0&&N===o)return C}}}catch(D){L.e(D)}finally{L.f()}}}catch(D){k.e(D)}finally{k.f()}return C}}],[{key:"_toMarker",value:function(e,t,n){var i=n.code,r=n.severity,o=n.message,a=n.source,s=n.startLineNumber,u=n.startColumn,l=n.endLineNumber,c=n.endColumn,d=n.relatedInformation,h=n.tags;if(o)return{resource:t,owner:e,code:i,severity:r,message:o,source:a,startLineNumber:s=s>0?s:1,startColumn:u=u>0?u:1,endLineNumber:l=l>=s?l:s,endColumn:c=c>0?c:u,relatedInformation:d,tags:h}}},{key:"_accept",value:function(e,t){return void 0===t||(t&e.severity)===e.severity}},{key:"_debouncer",value:function(t,n){t||(e._dedupeMap=new re.Y9,t=[]);var i,r=(0,X.Z)(n);try{for(r.s();!(i=r.n()).done;){var o=i.value;e._dedupeMap.has(o)||(e._dedupeMap.set(o,!0),t.push(o))}}catch(a){r.e(a)}finally{r.f()}return t}}]),e}(),Ko=n(59319),qo=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Go=function(e,t){return function(n,i){t(n,i,e)}},$o=function(){function e(t){(0,F.Z)(this,e),this._commandService=t}return(0,j.Z)(e,[{key:"createMenu",value:function(e,t){return new Qo(e,arguments.length>2&&void 0!==arguments[2]&&arguments[2],this._commandService,t,this)}}]),e}();$o=qo([Go(0,ue.H)],$o);var Qo=function(){function e(t,n,i,r,o){var a=this;(0,F.Z)(this,e),this._id=t,this._fireEventsForSubmenuChanges=n,this._commandService=i,this._contextKeyService=r,this._menuService=o,this._dispoables=new Me.SL,this._onDidChange=new B.Q5,this.onDidChange=this._onDidChange.event,this._menuGroups=[],this._contextKeys=new Set,this._build();var s=new De.pY((function(){return a._build()}),50);this._dispoables.add(s),this._dispoables.add(ui.BH.onDidChangeMenu((function(e){e.has(t)&&s.schedule()})));var u=new De.pY((function(){return a._onDidChange.fire(a)}),50);this._dispoables.add(u),this._dispoables.add(r.onDidChangeContext((function(e){e.affectsSome(a._contextKeys)&&u.schedule()})))}return(0,j.Z)(e,[{key:"dispose",value:function(){this._dispoables.dispose(),this._onDidChange.dispose()}},{key:"_build",value:function(){this._menuGroups.length=0,this._contextKeys.clear();var t,n=ui.BH.getMenuItems(this._id);n.sort(e._compareMenuItems);var i,r=(0,X.Z)(n);try{for(r.s();!(i=r.n()).done;){var o=i.value,a=o.group||"";t&&t[0]===a||(t=[a,[]],this._menuGroups.push(t)),t[1].push(o),this._collectContextKeys(o)}}catch(s){r.e(s)}finally{r.f()}this._onDidChange.fire(this)}},{key:"_collectContextKeys",value:function(t){if(e._fillInKbExprKeys(t.when,this._contextKeys),(0,ui.vr)(t)){if(t.command.precondition&&e._fillInKbExprKeys(t.command.precondition,this._contextKeys),t.command.toggled){var n=t.command.toggled.condition||t.command.toggled;e._fillInKbExprKeys(n,this._contextKeys)}}else this._fireEventsForSubmenuChanges&&ui.BH.getMenuItems(t.submenu).forEach(this._collectContextKeys,this)}},{key:"getActions",value:function(e){var t,n=[],i=(0,X.Z)(this._menuGroups);try{for(i.s();!(t=i.n()).done;){var r,o=t.value,a=(0,at.Z)(o,2),s=a[0],u=a[1],l=[],c=(0,X.Z)(u);try{for(c.s();!(r=c.n()).done;){var d=r.value;if(this._contextKeyService.contextMatchesRules(d.when)){var h=(0,ui.vr)(d)?new ui.U8(d.command,d.alt,e,this._contextKeyService,this._commandService):new ui.NZ(d,this._menuService,this._contextKeyService,e);l.push(h)}}}catch(f){c.e(f)}finally{c.f()}l.length>0&&n.push([s,l])}}catch(f){i.e(f)}finally{i.f()}return n}}],[{key:"_fillInKbExprKeys",value:function(e,t){if(e){var n,i=(0,X.Z)(e.keys());try{for(i.s();!(n=i.n()).done;){var r=n.value;t.add(r)}}catch(o){i.e(o)}finally{i.f()}}}},{key:"_compareMenuItems",value:function(t,n){var i=t.group,r=n.group;if(i!==r){if(!i)return 1;if(!r)return-1;if("navigation"===i)return-1;if("navigation"===r)return 1;var o=i.localeCompare(r);if(0!==o)return o}var a=t.order||0,s=n.order||0;return a<s?-1:a>s?1:e._compareTitles((0,ui.vr)(t)?t.command.title:t.title,(0,ui.vr)(n)?n.command.title:n.title)}},{key:"_compareTitles",value:function(e,t){var n="string"===typeof e?e:e.original,i="string"===typeof t?t:t.original;return n.localeCompare(i)}}]),e}();Qo=qo([Go(2,ue.H),Go(3,li.i6),Go(4,ui.co)],Qo);var Xo=n(50816),Jo=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ea=function(e,t){return function(n,i){t(n,i,e)}};function ta(e){return e.toString()}var na=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).model=e,i._markersData=new Map,i._register((0,Me.OF)((function(){i.model.deltaDecorations((0,J.Z)(i._markersData.keys()),[]),i._markersData.clear()}))),i}return(0,j.Z)(n,[{key:"update",value:function(e,t){var n=(0,J.Z)(this._markersData.keys());this._markersData.clear();for(var i=this.model.deltaDecorations(n,t),r=0;r<i.length;r++)this._markersData.set(i[r],e[r]);return 0!==n.length||0!==i.length}},{key:"getMarker",value:function(e){return this._markersData.get(e.id)}}]),n}(Me.JT),ia=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this))._markerService=i,r._onDidChangeMarker=r._register(new B.Q5),r._markerDecorations=new Map,e.getModels().forEach((function(e){return r._onModelAdded(e)})),r._register(e.onModelAdded(r._onModelAdded,(0,Gr.Z)(r))),r._register(e.onModelRemoved(r._onModelRemoved,(0,Gr.Z)(r))),r._register(r._markerService.onMarkerChanged(r._handleMarkerChange,(0,Gr.Z)(r))),r}return(0,j.Z)(n,[{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this),this._markerDecorations.forEach((function(e){return e.dispose()})),this._markerDecorations.clear()}},{key:"getMarker",value:function(e,t){var n=this._markerDecorations.get(ta(e));return n&&n.getMarker(t)||null}},{key:"_handleMarkerChange",value:function(e){var t=this;e.forEach((function(e){var n=t._markerDecorations.get(ta(e));n&&t._updateDecorations(n)}))}},{key:"_onModelAdded",value:function(e){var t=new na(e);this._markerDecorations.set(ta(e.uri),t),this._updateDecorations(t)}},{key:"_onModelRemoved",value:function(e){var t=this,n=this._markerDecorations.get(ta(e.uri));n&&(n.dispose(),this._markerDecorations.delete(ta(e.uri))),e.uri.scheme!==ae.lg.inMemory&&e.uri.scheme!==ae.lg.internal&&e.uri.scheme!==ae.lg.vscode||this._markerService&&this._markerService.read({resource:e.uri}).map((function(e){return e.owner})).forEach((function(n){return t._markerService.remove(n,[e.uri])}))}},{key:"_updateDecorations",value:function(e){var t=this,n=this._markerService.read({resource:e.model.uri,take:500}),i=n.map((function(n){return{range:t._createDecorationRange(e.model,n),options:t._createDecorationOption(n)}}));e.update(n,i)&&this._onDidChangeMarker.fire(e.model)}},{key:"_createDecorationRange",value:function(e,t){var n=Y.e.lift(t);if(t.severity!==Wo.ZL.Hint||this._hasMarkerTag(t,1)||this._hasMarkerTag(t,2)||(n=n.setEndPosition(n.startLineNumber,n.startColumn+2)),(n=e.validateRange(n)).isEmpty()){var i=e.getWordAtPosition(n.getStartPosition());if(i)n=new Y.e(n.startLineNumber,i.startColumn,n.endLineNumber,i.endColumn);else{var r=e.getLineLastNonWhitespaceColumn(n.startLineNumber)||e.getLineMaxColumn(n.startLineNumber);1===r||(n=n.endColumn>=r?new Y.e(n.startLineNumber,r-1,n.endLineNumber,r):new Y.e(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn+1))}}else if(t.endColumn===Number.MAX_VALUE&&1===t.startColumn&&n.startLineNumber===n.endLineNumber){var o=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);o<n.endColumn&&(n=new Y.e(n.startLineNumber,o,n.endLineNumber,n.endColumn),t.startColumn=o)}return n}},{key:"_createDecorationOption",value:function(e){var t,n,i,r=void 0,o=void 0;switch(e.severity){case Wo.ZL.Hint:t=this._hasMarkerTag(e,2)?void 0:this._hasMarkerTag(e,1)?"squiggly-unnecessary":"squiggly-hint",n=0;break;case Wo.ZL.Warning:t="squiggly-warning",r=(0,fi.EN)(vr.Re),n=20,i={color:(0,fi.EN)(mr.Iv),position:ye.F5.Inline};break;case Wo.ZL.Info:t="squiggly-info",r=(0,fi.EN)(vr.eS),n=10;break;case Wo.ZL.Error:default:t="squiggly-error",r=(0,fi.EN)(vr.lK),n=30,i={color:(0,fi.EN)(mr.Gj),position:ye.F5.Inline}}return e.tags&&(-1!==e.tags.indexOf(1)&&(o="squiggly-inline-unnecessary"),-1!==e.tags.indexOf(2)&&(o="squiggly-inline-deprecated")),{stickiness:1,className:t,showIfCollapsed:!0,overviewRuler:{color:r,position:ye.sh.Right},minimap:i,zIndex:n,inlineClassName:o}}},{key:"_hasMarkerTag",value:function(e,t){return!!e.tags&&e.tags.indexOf(t)>=0}}]),n}(Me.JT);ia=Jo([ea(0,yt.q),ea(1,Wo.lT)],ia);var ra=n(77863),oa=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},aa=function(e,t){return function(n,i){t(n,i,e)}},sa=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;(0,F.Z)(this,n),(r=t.call(this))._contextKeyService=e,r._configurationService=i,r._accessibilitySupport=0,r._onDidChangeScreenReaderOptimized=new B.Q5,r._accessibilityModeEnabledContext=pi.U.bindTo(r._contextKeyService);var o=function(){return r._accessibilityModeEnabledContext.set(r.isScreenReaderOptimized())};return r._register(r._configurationService.onDidChangeConfiguration((function(e){e.affectsConfiguration("editor.accessibilitySupport")&&(o(),r._onDidChangeScreenReaderOptimized.fire())}))),o(),r.onDidChangeScreenReaderOptimized((function(){return o()})),r}return(0,j.Z)(n,[{key:"onDidChangeScreenReaderOptimized",get:function(){return this._onDidChangeScreenReaderOptimized.event}},{key:"isScreenReaderOptimized",value:function(){var e=this._configurationService.getValue("editor.accessibilitySupport");return"on"===e||"auto"===e&&2===this._accessibilitySupport}},{key:"getAccessibilitySupport",value:function(){return this._accessibilitySupport}}]),n}(Me.JT);sa=oa([aa(0,li.i6),aa(1,vn.Ui)],sa);var ua=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},la=function(){function e(){(0,F.Z)(this,e),this.mapTextToType=new Map,this.findText=""}return(0,j.Z)(e,[{key:"writeText",value:function(e,t){return ua(this,void 0,void 0,te().mark((function n(){var i,r;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!t){n.next=3;break}return this.mapTextToType.set(t,e),n.abrupt("return");case 3:return n.prev=3,n.next=6,navigator.clipboard.writeText(e);case 6:return n.abrupt("return",n.sent);case 9:n.prev=9,n.t0=n.catch(3),console.error(n.t0);case 12:return i=document.activeElement,(r=document.body.appendChild((0,ne.$)("textarea",{"aria-hidden":!0}))).style.height="1px",r.style.width="1px",r.style.position="absolute",r.value=e,r.focus(),r.select(),document.execCommand("copy"),i instanceof HTMLElement&&i.focus(),document.body.removeChild(r),n.abrupt("return");case 24:case"end":return n.stop()}}),n,this,[[3,9]])})))}},{key:"readText",value:function(e){return ua(this,void 0,void 0,te().mark((function t(){return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e){t.next=2;break}return t.abrupt("return",this.mapTextToType.get(e)||"");case 2:return t.prev=2,t.next=5,navigator.clipboard.readText();case 5:return t.abrupt("return",t.sent);case 8:return t.prev=8,t.t0=t.catch(2),console.error(t.t0),t.abrupt("return","");case 12:case"end":return t.stop()}}),t,this,[[2,8]])})))}},{key:"readFindText",value:function(){return ua(this,void 0,void 0,te().mark((function e(){return te().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.findText);case 1:case"end":return e.stop()}}),e,this)})))}},{key:"writeFindText",value:function(e){return ua(this,void 0,void 0,te().mark((function t(){return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this.findText=e;case 1:case"end":return t.stop()}}),t,this)})))}}]),e}(),ca=n(45822),da=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ha=function(e,t){return function(n,i){t(n,i,e)}},fa=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},pa=!1;function ga(e){return e.scheme===ae.lg.file?e.fsPath:e.path}var va=0,ma=function(){function e(t,n,i,r,o,a,s){(0,F.Z)(this,e),this.id=++va,this.type=0,this.actual=t,this.label=t.label,this.confirmBeforeUndo=t.confirmBeforeUndo||!1,this.resourceLabel=n,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=r,this.groupOrder=o,this.sourceId=a,this.sourceOrder=s,this.isValid=!0}return(0,j.Z)(e,[{key:"setValid",value:function(e){this.isValid=e}},{key:"toString",value:function(){return"[id:".concat(this.id,"] [group:").concat(this.groupId,"] [").concat(this.isValid?" VALID":"INVALID","] ").concat(this.actual.constructor.name," - ").concat(this.actual)}}]),e}(),_a=(0,j.Z)((function e(t,n){(0,F.Z)(this,e),this.resourceLabel=t,this.reason=n})),ya=function(){function e(){(0,F.Z)(this,e),this.elements=new Map}return(0,j.Z)(e,[{key:"createMessage",value:function(){var e,t=[],n=[],i=(0,X.Z)(this.elements);try{for(i.s();!(e=i.n()).done;){var r=(0,at.Z)(e.value,2)[1];(0===r.reason?t:n).push(r.resourceLabel)}}catch(a){i.e(a)}finally{i.f()}var o=[];return t.length>0&&o.push(kn.N({key:"externalRemoval",comment:["{0} is a list of filenames"]},"The following files have been closed and modified on disk: {0}.",t.join(", "))),n.length>0&&o.push(kn.N({key:"noParallelUniverses",comment:["{0} is a list of filenames"]},"The following files have been modified in an incompatible way: {0}.",n.join(", "))),o.join("\n")}},{key:"size",get:function(){return this.elements.size}},{key:"has",value:function(e){return this.elements.has(e)}},{key:"set",value:function(e,t){this.elements.set(e,t)}},{key:"delete",value:function(e){return this.elements.delete(e)}}]),e}(),ba=function(){function e(t,n,i,r,o,a,s){(0,F.Z)(this,e),this.id=++va,this.type=1,this.actual=t,this.label=t.label,this.confirmBeforeUndo=t.confirmBeforeUndo||!1,this.resourceLabels=n,this.strResources=i,this.groupId=r,this.groupOrder=o,this.sourceId=a,this.sourceOrder=s,this.removedResources=null,this.invalidatedResources=null}return(0,j.Z)(e,[{key:"canSplit",value:function(){return"function"===typeof this.actual.split}},{key:"removeResource",value:function(e,t,n){this.removedResources||(this.removedResources=new ya),this.removedResources.has(t)||this.removedResources.set(t,new _a(e,n))}},{key:"setValid",value:function(e,t,n){n?this.invalidatedResources&&(this.invalidatedResources.delete(t),0===this.invalidatedResources.size&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new ya),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new _a(e,0)))}},{key:"toString",value:function(){return"[id:".concat(this.id,"] [group:").concat(this.groupId,"] [").concat(this.invalidatedResources?"INVALID":" VALID","] ").concat(this.actual.constructor.name," - ").concat(this.actual)}}]),e}(),wa=function(){function e(t,n){(0,F.Z)(this,e),this.resourceLabel=t,this.strResource=n,this._past=[],this._future=[],this.locked=!1,this.versionId=1}return(0,j.Z)(e,[{key:"dispose",value:function(){var e,t=(0,X.Z)(this._past);try{for(t.s();!(e=t.n()).done;){var n=e.value;1===n.type&&n.removeResource(this.resourceLabel,this.strResource,0)}}catch(a){t.e(a)}finally{t.f()}var i,r=(0,X.Z)(this._future);try{for(r.s();!(i=r.n()).done;){var o=i.value;1===o.type&&o.removeResource(this.resourceLabel,this.strResource,0)}}catch(a){r.e(a)}finally{r.f()}this.versionId++}},{key:"toString",value:function(){var e=[];e.push("* ".concat(this.strResource,":"));for(var t=0;t<this._past.length;t++)e.push(" * [UNDO] ".concat(this._past[t]));for(var n=this._future.length-1;n>=0;n--)e.push(" * [REDO] ".concat(this._future[n]));return e.join("\n")}},{key:"flushAllElements",value:function(){this._past=[],this._future=[],this.versionId++}},{key:"_setElementValidFlag",value:function(e,t){1===e.type?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}},{key:"setElementsValidFlag",value:function(e,t){var n,i=(0,X.Z)(this._past);try{for(i.s();!(n=i.n()).done;){var r=n.value;t(r.actual)&&this._setElementValidFlag(r,e)}}catch(u){i.e(u)}finally{i.f()}var o,a=(0,X.Z)(this._future);try{for(a.s();!(o=a.n()).done;){var s=o.value;t(s.actual)&&this._setElementValidFlag(s,e)}}catch(u){a.e(u)}finally{a.f()}}},{key:"pushElement",value:function(e){var t,n=(0,X.Z)(this._future);try{for(n.s();!(t=n.n()).done;){var i=t.value;1===i.type&&i.removeResource(this.resourceLabel,this.strResource,1)}}catch(r){n.e(r)}finally{n.f()}this._future=[],this._past.push(e),this.versionId++}},{key:"createSnapshot",value:function(e){for(var t=[],n=0,i=this._past.length;n<i;n++)t.push(this._past[n].id);for(var r=this._future.length-1;r>=0;r--)t.push(this._future[r].id);return new ca.YO(e,t)}},{key:"restoreSnapshot",value:function(e){for(var t=e.elements.length,n=!0,i=0,r=-1,o=0,a=this._past.length;o<a;o++,i++){var s=this._past[o];n&&(i>=t||s.id!==e.elements[i])&&(n=!1,r=0),n||1!==s.type||s.removeResource(this.resourceLabel,this.strResource,0)}for(var u=-1,l=this._future.length-1;l>=0;l--,i++){var c=this._future[l];n&&(i>=t||c.id!==e.elements[i])&&(n=!1,u=l),n||1!==c.type||c.removeResource(this.resourceLabel,this.strResource,0)}-1!==r&&(this._past=this._past.slice(0,r)),-1!==u&&(this._future=this._future.slice(u+1)),this.versionId++}},{key:"getElements",value:function(){var e,t=[],n=[],i=(0,X.Z)(this._past);try{for(i.s();!(e=i.n()).done;){var r=e.value;t.push(r.actual)}}catch(u){i.e(u)}finally{i.f()}var o,a=(0,X.Z)(this._future);try{for(a.s();!(o=a.n()).done;){var s=o.value;n.push(s.actual)}}catch(u){a.e(u)}finally{a.f()}return{past:t,future:n}}},{key:"getClosestPastElement",value:function(){return 0===this._past.length?null:this._past[this._past.length-1]}},{key:"getSecondClosestPastElement",value:function(){return this._past.length<2?null:this._past[this._past.length-2]}},{key:"getClosestFutureElement",value:function(){return 0===this._future.length?null:this._future[this._future.length-1]}},{key:"hasPastElements",value:function(){return this._past.length>0}},{key:"hasFutureElements",value:function(){return this._future.length>0}},{key:"splitPastWorkspaceElement",value:function(e,t){for(var n=this._past.length-1;n>=0;n--)if(this._past[n]===e){t.has(this.strResource)?this._past[n]=t.get(this.strResource):this._past.splice(n,1);break}this.versionId++}},{key:"splitFutureWorkspaceElement",value:function(e,t){for(var n=this._future.length-1;n>=0;n--)if(this._future[n]===e){t.has(this.strResource)?this._future[n]=t.get(this.strResource):this._future.splice(n,1);break}this.versionId++}},{key:"moveBackward",value:function(e){this._past.pop(),this._future.push(e),this.versionId++}},{key:"moveForward",value:function(e){this._future.pop(),this._past.push(e),this.versionId++}}]),e}(),Ca=function(){function e(t){(0,F.Z)(this,e),this.editStacks=t,this._versionIds=[];for(var n=0,i=this.editStacks.length;n<i;n++)this._versionIds[n]=this.editStacks[n].versionId}return(0,j.Z)(e,[{key:"isValid",value:function(){for(var e=0,t=this.editStacks.length;e<t;e++)if(this._versionIds[e]!==this.editStacks[e].versionId)return!1;return!0}}]),e}(),ka=new wa("","");ka.locked=!0;var Sa=function(){function e(t,n){(0,F.Z)(this,e),this._dialogService=t,this._notificationService=n,this._editStacks=new Map,this._uriComparisonKeyComputers=[]}return(0,j.Z)(e,[{key:"getUriComparisonKey",value:function(e){var t,n=(0,X.Z)(this._uriComparisonKeyComputers);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(i[0]===e.scheme)return i[1].getComparisonKey(e)}}catch(r){n.e(r)}finally{n.f()}return e.toString()}},{key:"_print",value:function(e){console.log("------------------------------------"),console.log("AFTER ".concat(e,": "));var t,n=[],i=(0,X.Z)(this._editStacks);try{for(i.s();!(t=i.n()).done;){var r=t.value;n.push(r[1].toString())}}catch(o){i.e(o)}finally{i.f()}console.log(n.join("\n"))}},{key:"pushElement",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ca.Xt.None,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ca.gJ.None;if(0===e.type){var i=ga(e.resource),r=this.getUriComparisonKey(e.resource);this._pushElement(new ma(e,i,r,t.id,t.nextOrder(),n.id,n.nextOrder()))}else{var o,a=new Set,s=[],u=[],l=(0,X.Z)(e.resources);try{for(l.s();!(o=l.n()).done;){var c=o.value,d=ga(c),h=this.getUriComparisonKey(c);a.has(h)||(a.add(h),s.push(d),u.push(h))}}catch(f){l.e(f)}finally{l.f()}1===s.length?this._pushElement(new ma(e,s[0],u[0],t.id,t.nextOrder(),n.id,n.nextOrder())):this._pushElement(new ba(e,s,u,t.id,t.nextOrder(),n.id,n.nextOrder()))}pa&&this._print("pushElement")}},{key:"_pushElement",value:function(e){for(var t=0,n=e.strResources.length;t<n;t++){var i=e.resourceLabels[t],r=e.strResources[t],o=void 0;this._editStacks.has(r)?o=this._editStacks.get(r):(o=new wa(i,r),this._editStacks.set(r,o)),o.pushElement(e)}}},{key:"getLastElement",value:function(e){var t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){var n=this._editStacks.get(t);if(n.hasFutureElements())return null;var i=n.getClosestPastElement();return i?i.actual:null}return null}},{key:"_splitPastWorkspaceElement",value:function(e,t){var n,i=e.actual.split(),r=new Map,o=(0,X.Z)(i);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=ga(a.resource),u=this.getUriComparisonKey(a.resource),l=new ma(a,s,u,0,0,0,0);r.set(l.strResource,l)}}catch(f){o.e(f)}finally{o.f()}var c,d=(0,X.Z)(e.strResources);try{for(d.s();!(c=d.n()).done;){var h=c.value;if(!t||!t.has(h))this._editStacks.get(h).splitPastWorkspaceElement(e,r)}}catch(f){d.e(f)}finally{d.f()}}},{key:"_splitFutureWorkspaceElement",value:function(e,t){var n,i=e.actual.split(),r=new Map,o=(0,X.Z)(i);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=ga(a.resource),u=this.getUriComparisonKey(a.resource),l=new ma(a,s,u,0,0,0,0);r.set(l.strResource,l)}}catch(f){o.e(f)}finally{o.f()}var c,d=(0,X.Z)(e.strResources);try{for(d.s();!(c=d.n()).done;){var h=c.value;if(!t||!t.has(h))this._editStacks.get(h).splitFutureWorkspaceElement(e,r)}}catch(f){d.e(f)}finally{d.f()}}},{key:"removeElements",value:function(e){var t="string"===typeof e?e:this.getUriComparisonKey(e);this._editStacks.has(t)&&(this._editStacks.get(t).dispose(),this._editStacks.delete(t));pa&&this._print("removeElements")}},{key:"setElementsValidFlag",value:function(e,t,n){var i=this.getUriComparisonKey(e);this._editStacks.has(i)&&this._editStacks.get(i).setElementsValidFlag(t,n);pa&&this._print("setElementsValidFlag")}},{key:"createSnapshot",value:function(e){var t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).createSnapshot(e):new ca.YO(e,[])}},{key:"restoreSnapshot",value:function(e){var t=this.getUriComparisonKey(e.resource);if(this._editStacks.has(t)){var n=this._editStacks.get(t);n.restoreSnapshot(e),n.hasPastElements()||n.hasFutureElements()||(n.dispose(),this._editStacks.delete(t))}pa&&this._print("restoreSnapshot")}},{key:"getElements",value:function(e){var t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).getElements():{past:[],future:[]}}},{key:"_findClosestUndoElementWithSource",value:function(e){if(!e)return[null,null];var t,n=null,i=null,r=(0,X.Z)(this._editStacks);try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1].getClosestPastElement();s&&(s.sourceId===e&&(!n||s.sourceOrder>n.sourceOrder)&&(n=s,i=a))}}catch(u){r.e(u)}finally{r.f()}return[n,i]}},{key:"canUndo",value:function(e){if(e instanceof ca.gJ){var t=this._findClosestUndoElementWithSource(e.id);return!!(0,at.Z)(t,2)[1]}var n=this.getUriComparisonKey(e);return!!this._editStacks.has(n)&&this._editStacks.get(n).hasPastElements()}},{key:"_onError",value:function(e,t){(0,Te.dL)(e);var n,i=(0,X.Z)(t.strResources);try{for(i.s();!(n=i.n()).done;){var r=n.value;this.removeElements(r)}}catch(e){i.e(e)}finally{i.f()}this._notificationService.error(e)}},{key:"_acquireLocks",value:function(e){var t,n=(0,X.Z)(e.editStacks);try{for(n.s();!(t=n.n()).done;){if(t.value.locked)throw new Error("Cannot acquire edit stack lock")}}catch(o){n.e(o)}finally{n.f()}var i,r=(0,X.Z)(e.editStacks);try{for(r.s();!(i=r.n()).done;){i.value.locked=!0}}catch(o){r.e(o)}finally{r.f()}return function(){var t,n=(0,X.Z)(e.editStacks);try{for(n.s();!(t=n.n()).done;){t.value.locked=!1}}catch(o){n.e(o)}finally{n.f()}}}},{key:"_safeInvokeWithLocks",value:function(e,t,n,i,r){var o,a=this,s=this._acquireLocks(n);try{o=t()}catch(u){return s(),i.dispose(),this._onError(u,e)}return o?o.then((function(){return s(),i.dispose(),r()}),(function(t){return s(),i.dispose(),a._onError(t,e)})):(s(),i.dispose(),r())}},{key:"_invokeWorkspacePrepare",value:function(e){return fa(this,void 0,void 0,te().mark((function t(){var n;return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("undefined"!==typeof e.actual.prepareUndoRedo){t.next=2;break}return t.abrupt("return",Me.JT.None);case 2:if("undefined"!==typeof(n=e.actual.prepareUndoRedo())){t.next=5;break}return t.abrupt("return",Me.JT.None);case 5:return t.abrupt("return",n);case 6:case"end":return t.stop()}}),t)})))}},{key:"_invokeResourcePrepare",value:function(e,t){if(1!==e.actual.type||"undefined"===typeof e.actual.prepareUndoRedo)return t(Me.JT.None);var n=e.actual.prepareUndoRedo();return n?(0,Me.Wf)(n)?t(n):n.then((function(e){return t(e)})):t(Me.JT.None)}},{key:"_getAffectedEditStacks",value:function(e){var t,n=[],i=(0,X.Z)(e.strResources);try{for(i.s();!(t=i.n()).done;){var r=t.value;n.push(this._editStacks.get(r)||ka)}}catch(o){i.e(o)}finally{i.f()}return new Ca(n)}},{key:"_tryToSplitAndUndo",value:function(e,t,n,i){if(t.canSplit())return this._splitPastWorkspaceElement(t,n),this._notificationService.warn(i),new xa(this._undo(e,0,!0));var r,o=(0,X.Z)(t.strResources);try{for(o.s();!(r=o.n()).done;){var a=r.value;this.removeElements(a)}}catch(s){o.e(s)}finally{o.f()}return this._notificationService.warn(i),new xa}},{key:"_checkWorkspaceUndo",value:function(e,t,n,i){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,kn.N({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(i&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,kn.N({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));var r,o=[],a=(0,X.Z)(n.editStacks);try{for(a.s();!(r=a.n()).done;){var s=r.value;s.getClosestPastElement()!==t&&o.push(s.resourceLabel)}}catch(h){a.e(h)}finally{a.f()}if(o.length>0)return this._tryToSplitAndUndo(e,t,null,kn.N({key:"cannotWorkspaceUndoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));var u,l=[],c=(0,X.Z)(n.editStacks);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.locked&&l.push(d.resourceLabel)}}catch(h){c.e(h)}finally{c.f()}return l.length>0?this._tryToSplitAndUndo(e,t,null,kn.N({key:"cannotWorkspaceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,l.join(", "))):n.isValid()?null:this._tryToSplitAndUndo(e,t,null,kn.N({key:"cannotWorkspaceUndoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}},{key:"_workspaceUndo",value:function(e,t,n){var i=this._getAffectedEditStacks(t),r=this._checkWorkspaceUndo(e,t,i,!1);return r?r.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,i,n)}},{key:"_isPartOfUndoGroup",value:function(e){if(!e.groupId)return!1;var t,n=(0,X.Z)(this._editStacks);try{for(n.s();!(t=n.n()).done;){var i=(0,at.Z)(t.value,2)[1],r=i.getClosestPastElement();if(r){if(r===e){var o=i.getSecondClosestPastElement();if(o&&o.groupId===e.groupId)return!0}if(r.groupId===e.groupId)return!0}}}catch(a){n.e(a)}finally{n.f()}return!1}},{key:"_confirmAndExecuteWorkspaceUndo",value:function(e,t,n,i){return fa(this,void 0,void 0,te().mark((function r(){var o,a,s,u,l,c,d=this;return te().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!t.canSplit()||this._isPartOfUndoGroup(t)){r.next=13;break}return r.next=3,this._dialogService.show(dn.Z.Info,kn.N("confirmWorkspace","Would you like to undo '{0}' across all files?",t.label),[kn.N({key:"ok",comment:["{0} denotes a number that is > 1"]},"Undo in {0} Files",n.editStacks.length),kn.N("nok","Undo this File"),kn.N("cancel","Cancel")],{cancelId:2});case 3:if(2!==(o=r.sent).choice){r.next=6;break}return r.abrupt("return");case 6:if(1!==o.choice){r.next=9;break}return this._splitPastWorkspaceElement(t,null),r.abrupt("return",this._undo(e,0,!0));case 9:if(!(a=this._checkWorkspaceUndo(e,t,n,!1))){r.next=12;break}return r.abrupt("return",a.returnValue);case 12:i=!0;case 13:return r.prev=13,r.next=16,this._invokeWorkspacePrepare(t);case 16:s=r.sent,r.next=22;break;case 19:return r.prev=19,r.t0=r.catch(13),r.abrupt("return",this._onError(r.t0,t));case 22:if(!(u=this._checkWorkspaceUndo(e,t,n,!0))){r.next=26;break}return s.dispose(),r.abrupt("return",u.returnValue);case 26:l=(0,X.Z)(n.editStacks);try{for(l.s();!(c=l.n()).done;)c.value.moveBackward(t)}catch(h){l.e(h)}finally{l.f()}return r.abrupt("return",this._safeInvokeWithLocks(t,(function(){return t.actual.undo()}),n,s,(function(){return d._continueUndoInGroup(t.groupId,i)})));case 29:case"end":return r.stop()}}),r,this,[[13,19]])})))}},{key:"_resourceUndo",value:function(e,t,n){var i=this;if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,(function(r){return e.moveBackward(t),i._safeInvokeWithLocks(t,(function(){return t.actual.undo()}),new Ca([e]),r,(function(){return i._continueUndoInGroup(t.groupId,n)}))}));var r=kn.N({key:"cannotResourceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not undo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(r)}else e.flushAllElements()}},{key:"_findClosestUndoElementInGroup",value:function(e){if(!e)return[null,null];var t,n=null,i=null,r=(0,X.Z)(this._editStacks);try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1].getClosestPastElement();s&&(s.groupId===e&&(!n||s.groupOrder>n.groupOrder)&&(n=s,i=a))}}catch(u){r.e(u)}finally{r.f()}return[n,i]}},{key:"_continueUndoInGroup",value:function(e,t){if(e){var n=this._findClosestUndoElementInGroup(e),i=(0,at.Z)(n,2)[1];return i?this._undo(i,0,t):void 0}}},{key:"undo",value:function(e){if(e instanceof ca.gJ){var t=this._findClosestUndoElementWithSource(e.id),n=(0,at.Z)(t,2)[1];return n?this._undo(n,e.id,!1):void 0}return"string"===typeof e?this._undo(e,0,!1):this._undo(this.getUriComparisonKey(e),0,!1)}},{key:"_undo",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0;if(this._editStacks.has(e)){var i=this._editStacks.get(e),r=i.getClosestPastElement();if(r){if(r.groupId){var o=this._findClosestUndoElementInGroup(r.groupId),a=(0,at.Z)(o,2),s=a[0],u=a[1];if(r!==s&&u)return this._undo(u,t,n)}if((r.sourceId!==t||r.confirmBeforeUndo)&&!n)return this._confirmAndContinueUndo(e,t,r);try{return 1===r.type?this._workspaceUndo(e,r,n):this._resourceUndo(i,r,n)}finally{pa&&this._print("undo")}}}}},{key:"_confirmAndContinueUndo",value:function(e,t,n){return fa(this,void 0,void 0,te().mark((function i(){return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,this._dialogService.show(dn.Z.Info,kn.N("confirmDifferentSource","Would you like to undo '{0}'?",n.label),[kn.N("confirmDifferentSource.ok","Undo"),kn.N("cancel","Cancel")],{cancelId:1});case 2:if(1!==i.sent.choice){i.next=5;break}return i.abrupt("return");case 5:return i.abrupt("return",this._undo(e,t,!0));case 6:case"end":return i.stop()}}),i,this)})))}},{key:"_findClosestRedoElementWithSource",value:function(e){if(!e)return[null,null];var t,n=null,i=null,r=(0,X.Z)(this._editStacks);try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1].getClosestFutureElement();s&&(s.sourceId===e&&(!n||s.sourceOrder<n.sourceOrder)&&(n=s,i=a))}}catch(u){r.e(u)}finally{r.f()}return[n,i]}},{key:"canRedo",value:function(e){if(e instanceof ca.gJ){var t=this._findClosestRedoElementWithSource(e.id);return!!(0,at.Z)(t,2)[1]}var n=this.getUriComparisonKey(e);return!!this._editStacks.has(n)&&this._editStacks.get(n).hasFutureElements()}},{key:"_tryToSplitAndRedo",value:function(e,t,n,i){if(t.canSplit())return this._splitFutureWorkspaceElement(t,n),this._notificationService.warn(i),new xa(this._redo(e));var r,o=(0,X.Z)(t.strResources);try{for(o.s();!(r=o.n()).done;){var a=r.value;this.removeElements(a)}}catch(s){o.e(s)}finally{o.f()}return this._notificationService.warn(i),new xa}},{key:"_checkWorkspaceRedo",value:function(e,t,n,i){if(t.removedResources)return this._tryToSplitAndRedo(e,t,t.removedResources,kn.N({key:"cannotWorkspaceRedo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not redo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(i&&t.invalidatedResources)return this._tryToSplitAndRedo(e,t,t.invalidatedResources,kn.N({key:"cannotWorkspaceRedo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not redo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));var r,o=[],a=(0,X.Z)(n.editStacks);try{for(a.s();!(r=a.n()).done;){var s=r.value;s.getClosestFutureElement()!==t&&o.push(s.resourceLabel)}}catch(h){a.e(h)}finally{a.f()}if(o.length>0)return this._tryToSplitAndRedo(e,t,null,kn.N({key:"cannotWorkspaceRedoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));var u,l=[],c=(0,X.Z)(n.editStacks);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.locked&&l.push(d.resourceLabel)}}catch(h){c.e(h)}finally{c.f()}return l.length>0?this._tryToSplitAndRedo(e,t,null,kn.N({key:"cannotWorkspaceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,l.join(", "))):n.isValid()?null:this._tryToSplitAndRedo(e,t,null,kn.N({key:"cannotWorkspaceRedoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}},{key:"_workspaceRedo",value:function(e,t){var n=this._getAffectedEditStacks(t),i=this._checkWorkspaceRedo(e,t,n,!1);return i?i.returnValue:this._executeWorkspaceRedo(e,t,n)}},{key:"_executeWorkspaceRedo",value:function(e,t,n){return fa(this,void 0,void 0,te().mark((function i(){var r,o,a,s,u=this;return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.prev=0,i.next=3,this._invokeWorkspacePrepare(t);case 3:r=i.sent,i.next=9;break;case 6:return i.prev=6,i.t0=i.catch(0),i.abrupt("return",this._onError(i.t0,t));case 9:if(!(o=this._checkWorkspaceRedo(e,t,n,!0))){i.next=13;break}return r.dispose(),i.abrupt("return",o.returnValue);case 13:a=(0,X.Z)(n.editStacks);try{for(a.s();!(s=a.n()).done;)s.value.moveForward(t)}catch(l){a.e(l)}finally{a.f()}return i.abrupt("return",this._safeInvokeWithLocks(t,(function(){return t.actual.redo()}),n,r,(function(){return u._continueRedoInGroup(t.groupId)})));case 16:case"end":return i.stop()}}),i,this,[[0,6]])})))}},{key:"_resourceRedo",value:function(e,t){var n=this;if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,(function(i){return e.moveForward(t),n._safeInvokeWithLocks(t,(function(){return t.actual.redo()}),new Ca([e]),i,(function(){return n._continueRedoInGroup(t.groupId)}))}));var i=kn.N({key:"cannotResourceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not redo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(i)}else e.flushAllElements()}},{key:"_findClosestRedoElementInGroup",value:function(e){if(!e)return[null,null];var t,n=null,i=null,r=(0,X.Z)(this._editStacks);try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1].getClosestFutureElement();s&&(s.groupId===e&&(!n||s.groupOrder<n.groupOrder)&&(n=s,i=a))}}catch(u){r.e(u)}finally{r.f()}return[n,i]}},{key:"_continueRedoInGroup",value:function(e){if(e){var t=this._findClosestRedoElementInGroup(e),n=(0,at.Z)(t,2)[1];return n?this._redo(n):void 0}}},{key:"redo",value:function(e){if(e instanceof ca.gJ){var t=this._findClosestRedoElementWithSource(e.id),n=(0,at.Z)(t,2)[1];return n?this._redo(n):void 0}return"string"===typeof e?this._redo(e):this._redo(this.getUriComparisonKey(e))}},{key:"_redo",value:function(e){if(this._editStacks.has(e)){var t=this._editStacks.get(e),n=t.getClosestFutureElement();if(n){if(n.groupId){var i=this._findClosestRedoElementInGroup(n.groupId),r=(0,at.Z)(i,2),o=r[0],a=r[1];if(n!==o&&a)return this._redo(a)}try{return 1===n.type?this._workspaceRedo(e,n):this._resourceRedo(t,n)}finally{pa&&this._print("redo")}}}}}]),e}();Sa=da([ha(0,To.S),ha(1,An.lT)],Sa);var xa=(0,j.Z)((function e(t){(0,F.Z)(this,e),this.returnValue=t}));(0,ra.z)(ca.tJ,Sa);var La=n(33399),Ea=n(42659),Na=new De.Ue((function(){var e=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:e,collatorIsNumeric:e.resolvedOptions().numeric}}));function Da(e,t,n){var i=e.toLowerCase(),r=t.toLowerCase(),o=function(e,t,n){var i=e.toLowerCase(),r=t.toLowerCase(),o=i.startsWith(n),a=r.startsWith(n);if(o!==a)return o?-1:1;if(o&&a){if(i.length<r.length)return-1;if(i.length>r.length)return 1}return 0}(e,t,n);if(o)return o;var a=i.endsWith(n);if(a!==r.endsWith(n))return a?-1:1;var s=function(e,t){var n=e||"",i=t||"",r=Na.value.collator.compare(n,i);return Na.value.collatorIsNumeric&&0===r&&n!==i?n<i?-1:1:r}(i,r);return 0!==s?s:i.localeCompare(r)}var Ma=n(5677),Ta=n(61743),Oa=n(94995),Ia=n(12394),Aa={},Ra=new Ia.R("quick-input-button-icon-");function Pa(e){if(e){var t,n=e.dark.toString();return Aa[n]?t=Aa[n]:(t=Ra.nextId(),ne.createCSSRule(".".concat(t),"background-image: ".concat(ne.asCSSUrl(e.light||e.dark))),ne.createCSSRule(".vs-dark .".concat(t,", .hc-black .").concat(t),"background-image: ".concat(ne.asCSSUrl(e.dark))),Aa[n]=t),t}}var Za=ne.$,Fa=function(){function e(t,n,i){(0,F.Z)(this,e),this.os=n,this.keyElements=new Set,this.options=i||Object.create(null),this.labelBackground=this.options.keybindingLabelBackground,this.labelForeground=this.options.keybindingLabelForeground,this.labelBorder=this.options.keybindingLabelBorder,this.labelBottomBorder=this.options.keybindingLabelBottomBorder,this.labelShadow=this.options.keybindingLabelShadow,this.domNode=ne.append(t,Za(".monaco-keybinding")),this.didEverRender=!1,t.appendChild(this.domNode)}return(0,j.Z)(e,[{key:"element",get:function(){return this.domNode}},{key:"set",value:function(t,n){this.didEverRender&&this.keybinding===t&&e.areSame(this.matches,n)||(this.keybinding=t,this.matches=n,this.render())}},{key:"render",value:function(){if(this.clear(),this.keybinding){var e=this.keybinding.getParts(),t=(0,at.Z)(e,2),n=t[0],i=t[1];n&&this.renderPart(this.domNode,n,this.matches?this.matches.firstPart:null),i&&(ne.append(this.domNode,Za("span.monaco-keybinding-key-chord-separator",void 0," ")),this.renderPart(this.domNode,i,this.matches?this.matches.chordPart:null)),this.domNode.title=this.keybinding.getAriaLabel()||""}else this.options&&this.options.renderUnboundKeybindings&&this.renderUnbound(this.domNode);this.applyStyles(),this.didEverRender=!0}},{key:"clear",value:function(){ne.clearNode(this.domNode),this.keyElements.clear()}},{key:"renderPart",value:function(e,t,n){var i=Tn.xo.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,i.ctrlKey,Boolean(null===n||void 0===n?void 0:n.ctrlKey),i.separator),t.shiftKey&&this.renderKey(e,i.shiftKey,Boolean(null===n||void 0===n?void 0:n.shiftKey),i.separator),t.altKey&&this.renderKey(e,i.altKey,Boolean(null===n||void 0===n?void 0:n.altKey),i.separator),t.metaKey&&this.renderKey(e,i.metaKey,Boolean(null===n||void 0===n?void 0:n.metaKey),i.separator);var r=t.keyLabel;r&&this.renderKey(e,r,Boolean(null===n||void 0===n?void 0:n.keyCode),"")}},{key:"renderKey",value:function(e,t,n,i){ne.append(e,this.createKeyElement(t,n?".highlight":"")),i&&ne.append(e,Za("span.monaco-keybinding-key-separator",void 0,i))}},{key:"renderUnbound",value:function(e){ne.append(e,this.createKeyElement((0,kn.N)("unbound","Unbound")))}},{key:"createKeyElement",value:function(e){var t=Za("span.monaco-keybinding-key"+(arguments.length>1&&void 0!==arguments[1]?arguments[1]:""),void 0,e);return this.keyElements.add(t),t}},{key:"style",value:function(e){this.labelBackground=e.keybindingLabelBackground,this.labelForeground=e.keybindingLabelForeground,this.labelBorder=e.keybindingLabelBorder,this.labelBottomBorder=e.keybindingLabelBottomBorder,this.labelShadow=e.keybindingLabelShadow,this.applyStyles()}},{key:"applyStyles",value:function(){var e;if(this.element){var t,n=(0,X.Z)(this.keyElements);try{for(n.s();!(t=n.n()).done;){var i=t.value;this.labelBackground&&(i.style.backgroundColor=null===(e=this.labelBackground)||void 0===e?void 0:e.toString()),this.labelBorder&&(i.style.borderColor=this.labelBorder.toString()),this.labelBottomBorder&&(i.style.borderBottomColor=this.labelBottomBorder.toString()),this.labelShadow&&(i.style.boxShadow="inset 0 -1px 0 ".concat(this.labelShadow))}}catch(r){n.e(r)}finally{n.f()}this.labelForeground&&(this.element.style.color=this.labelForeground.toString())}}}],[{key:"areSame",value:function(e,t){return e===t||!e&&!t||!!e&&!!t&&(0,mn.fS)(e.firstPart,t.firstPart)&&(0,mn.fS)(e.chordPart,t.chordPart)}}]),e}(),ja=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Ha=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Ba=ne.$,za=function(){function e(t){(0,F.Z)(this,e),this.hidden=!1,this._onChecked=new B.Q5,this.onChecked=this._onChecked.event,Object.assign(this,t)}return(0,j.Z)(e,[{key:"checked",get:function(){return!!this._checked},set:function(e){e!==this._checked&&(this._checked=e,this._onChecked.fire(e))}},{key:"dispose",value:function(){this._onChecked.dispose()}}]),e}(),Wa=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"templateId",get:function(){return e.ID}},{key:"renderTemplate",value:function(e){var t=Object.create(null);t.toDisposeElement=[],t.toDisposeTemplate=[],t.entry=ne.append(e,Ba(".quick-input-list-entry"));var n=ne.append(t.entry,Ba("label.quick-input-list-label"));t.toDisposeTemplate.push(ne.addStandardDisposableListener(n,ne.EventType.CLICK,(function(e){t.checkbox.offsetParent||e.preventDefault()}))),t.checkbox=ne.append(n,Ba("input.quick-input-list-checkbox")),t.checkbox.type="checkbox",t.toDisposeTemplate.push(ne.addStandardDisposableListener(t.checkbox,ne.EventType.CHANGE,(function(e){t.element.checked=t.checkbox.checked})));var i=ne.append(n,Ba(".quick-input-list-rows")),r=ne.append(i,Ba(".quick-input-list-row")),o=ne.append(i,Ba(".quick-input-list-row"));t.label=new Ma.g(r,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0});var a=ne.append(r,Ba(".quick-input-list-entry-keybinding"));t.keybinding=new Fa(a,Oe.OS);var s=ne.append(o,Ba(".quick-input-list-label-meta"));return t.detail=new Ta.q(s,!0),t.separator=ne.append(t.entry,Ba(".quick-input-list-separator")),t.actionBar=new $r.o(t.entry),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.push(t.actionBar),t}},{key:"renderElement",value:function(e,t,n){var i=this;n.toDisposeElement=(0,Me.B9)(n.toDisposeElement),n.element=e,n.checkbox.checked=e.checked,n.toDisposeElement.push(e.onChecked((function(e){return n.checkbox.checked=e})));var r=e.labelHighlights,o=e.descriptionHighlights,a=e.detailHighlights,s=Object.create(null);s.matches=r||[],s.descriptionTitle=e.saneDescription,s.descriptionMatches=o||[],s.extraClasses=e.item.iconClasses,s.italic=e.item.italic,s.strikethrough=e.item.strikethrough,n.label.setLabel(e.saneLabel,e.saneDescription,s),n.keybinding.set(e.item.keybinding),n.detail.set(e.saneDetail,a),e.separator&&e.separator.label?(n.separator.textContent=e.separator.label,n.separator.style.display=""):n.separator.style.display="none",n.entry.classList.toggle("quick-input-list-separator-border",!!e.separator),n.actionBar.clear();var u=e.item.buttons;u&&u.length?(n.actionBar.push(u.map((function(t,n){var r=t.iconClass||(t.iconPath?Pa(t.iconPath):void 0);t.alwaysVisible&&(r=r?"".concat(r," always-visible"):"always-visible");var o=new qr.aU("id-".concat(n),"",r,!0,(function(){return Ha(i,void 0,void 0,te().mark((function n(){return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:e.fireButtonTriggered({button:t,item:e.item});case 1:case"end":return n.stop()}}),n)})))}));return o.tooltip=t.tooltip||"",o})),{icon:!0,label:!1}),n.entry.classList.add("has-actions")):n.entry.classList.remove("has-actions")}},{key:"disposeElement",value:function(e,t,n){n.toDisposeElement=(0,Me.B9)(n.toDisposeElement)}},{key:"disposeTemplate",value:function(e){e.toDisposeElement=(0,Me.B9)(e.toDisposeElement),e.toDisposeTemplate=(0,Me.B9)(e.toDisposeTemplate)}}]),e}();Wa.ID="listelement";var Va,Ya=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"getHeight",value:function(e){return e.saneDetail?44:22}},{key:"getTemplateId",value:function(e){return Wa.ID}}]),e}();!function(e){e[e.First=1]="First",e[e.Second=2]="Second",e[e.Last=3]="Last",e[e.Next=4]="Next",e[e.Previous=5]="Previous",e[e.NextPage=6]="NextPage",e[e.PreviousPage=7]="PreviousPage"}(Va||(Va={}));var Ua=function(){function e(t,n,i){var r=this;(0,F.Z)(this,e),this.parent=t,this.inputElements=[],this.elements=[],this.elementsToIndexes=new Map,this.matchOnDescription=!1,this.matchOnDetail=!1,this.matchOnLabel=!0,this.matchOnMeta=!0,this.sortByLabel=!0,this._onChangedAllVisibleChecked=new B.Q5,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new B.Q5,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new B.Q5,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new B.Q5,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new B.Q5,this.onButtonTriggered=this._onButtonTriggered.event,this._onKeyDown=new B.Q5,this.onKeyDown=this._onKeyDown.event,this._onLeave=new B.Q5,this.onLeave=this._onLeave.event,this._fireCheckedEvents=!0,this.elementDisposables=[],this.disposables=[],this.id=n,this.container=ne.append(this.parent,Ba(".quick-input-list"));var o=new Ya,a=new Ka;this.list=i.createList("QuickInput",this.container,o,[new Wa],{identityProvider:{getId:function(e){return e.saneLabel}},setRowLineHeight:!1,multipleSelectionSupport:!1,horizontalScrolling:!1,accessibilityProvider:a}),this.list.getHTMLElement().id=n,this.disposables.push(this.list),this.disposables.push(this.list.onKeyDown((function(e){var t=new cn.y(e);switch(t.keyCode){case 10:r.toggleCheckbox();break;case 31:(Oe.dz?e.metaKey:e.ctrlKey)&&r.list.setFocus((0,wt.w6)(r.list.length));break;case 16:var n=r.list.getFocus();1===n.length&&0===n[0]&&r._onLeave.fire();break;case 18:var i=r.list.getFocus();1===i.length&&i[0]===r.list.length-1&&r._onLeave.fire()}r._onKeyDown.fire(t)}))),this.disposables.push(this.list.onMouseDown((function(e){2!==e.browserEvent.button&&e.browserEvent.preventDefault()}))),this.disposables.push(ne.addDisposableListener(this.container,ne.EventType.CLICK,(function(e){(e.x||e.y)&&r._onLeave.fire()}))),this.disposables.push(this.list.onMouseMiddleClick((function(e){r._onLeave.fire()}))),this.disposables.push(this.list.onContextMenu((function(e){"number"===typeof e.index&&(e.browserEvent.preventDefault(),r.list.setSelection([e.index]))}))),this.disposables.push(this._onChangedAllVisibleChecked,this._onChangedCheckedCount,this._onChangedVisibleCount,this._onChangedCheckedElements,this._onButtonTriggered,this._onLeave,this._onKeyDown)}return(0,j.Z)(e,[{key:"onDidChangeFocus",get:function(){return B.ju.map(this.list.onDidChangeFocus,(function(e){return e.elements.map((function(e){return e.item}))}))}},{key:"onDidChangeSelection",get:function(){return B.ju.map(this.list.onDidChangeSelection,(function(e){return{items:e.elements.map((function(e){return e.item})),event:e.browserEvent}}))}},{key:"getAllVisibleChecked",value:function(){return this.allVisibleChecked(this.elements,!1)}},{key:"allVisibleChecked",value:function(e){for(var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=0,i=e.length;n<i;n++){var r=e[n];if(!r.hidden){if(!r.checked)return!1;t=!0}}return t}},{key:"getCheckedCount",value:function(){for(var e=0,t=this.elements,n=0,i=t.length;n<i;n++)t[n].checked&&e++;return e}},{key:"getVisibleCount",value:function(){for(var e=0,t=this.elements,n=0,i=t.length;n<i;n++)t[n].hidden||e++;return e}},{key:"setAllVisibleChecked",value:function(e){try{this._fireCheckedEvents=!1,this.elements.forEach((function(t){t.hidden||(t.checked=e)}))}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}},{key:"setElements",value:function(e){var t,n,i=this;this.elementDisposables=(0,Me.B9)(this.elementDisposables);var r=function(e){return i.fireButtonTriggered(e)};this.inputElements=e,this.elements=e.reduce((function(t,n,i){var o,a,s;if("separator"!==n.type){var u=i&&e[i-1],l=n.label&&n.label.replace(/\r?\n/g," "),c=n.meta&&n.meta.replace(/\r?\n/g," "),d=n.description&&n.description.replace(/\r?\n/g," "),h=n.detail&&n.detail.replace(/\r?\n/g," "),f=n.ariaLabel||[l,d,h].map((function(e){return(0,ro.JL)(e)})).filter((function(e){return!!e})).join(", ");t.push(new za({index:i,item:n,saneLabel:l,saneMeta:c,saneAriaLabel:f,saneDescription:d,saneDetail:h,labelHighlights:null===(o=n.highlights)||void 0===o?void 0:o.label,descriptionHighlights:null===(a=n.highlights)||void 0===a?void 0:a.description,detailHighlights:null===(s=n.highlights)||void 0===s?void 0:s.detail,checked:!1,separator:u&&"separator"===u.type?u:void 0,fireButtonTriggered:r}))}return t}),[]),(t=this.elementDisposables).push.apply(t,(0,J.Z)(this.elements)),(n=this.elementDisposables).push.apply(n,(0,J.Z)(this.elements.map((function(e){return e.onChecked((function(){return i.fireCheckedEvents()}))})))),this.elementsToIndexes=this.elements.reduce((function(e,t,n){return e.set(t.item,n),e}),new Map),this.list.splice(0,this.list.length),this.list.splice(0,this.list.length,this.elements),this._onChangedVisibleCount.fire(this.elements.length)}},{key:"getFocusedElements",value:function(){return this.list.getFocusedElements().map((function(e){return e.item}))}},{key:"setFocusedElements",value:function(e){var t=this;if(this.list.setFocus(e.filter((function(e){return t.elementsToIndexes.has(e)})).map((function(e){return t.elementsToIndexes.get(e)}))),e.length>0){var n=this.list.getFocus()[0];"number"===typeof n&&this.list.reveal(n)}}},{key:"getActiveDescendant",value:function(){return this.list.getHTMLElement().getAttribute("aria-activedescendant")}},{key:"setSelectedElements",value:function(e){var t=this;this.list.setSelection(e.filter((function(e){return t.elementsToIndexes.has(e)})).map((function(e){return t.elementsToIndexes.get(e)})))}},{key:"getCheckedElements",value:function(){return this.elements.filter((function(e){return e.checked})).map((function(e){return e.item}))}},{key:"setCheckedElements",value:function(e){try{this._fireCheckedEvents=!1;var t,n=new Set,i=(0,X.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;n.add(r)}}catch(u){i.e(u)}finally{i.f()}var o,a=(0,X.Z)(this.elements);try{for(a.s();!(o=a.n()).done;){var s=o.value;s.checked=n.has(s.item)}}catch(u){a.e(u)}finally{a.f()}}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}},{key:"enabled",set:function(e){this.list.getHTMLElement().style.pointerEvents=e?"":"none"}},{key:"focus",value:function(e){if(this.list.length){switch(e===Va.Next&&this.list.getFocus()[0]===this.list.length-1&&(e=Va.First),e===Va.Previous&&0===this.list.getFocus()[0]&&(e=Va.Last),e===Va.Second&&this.list.length<2&&(e=Va.First),e){case Va.First:this.list.focusFirst();break;case Va.Second:this.list.focusNth(1);break;case Va.Last:this.list.focusLast();break;case Va.Next:this.list.focusNext();break;case Va.Previous:this.list.focusPrevious();break;case Va.NextPage:this.list.focusNextPage();break;case Va.PreviousPage:this.list.focusPreviousPage()}var t=this.list.getFocus()[0];"number"===typeof t&&this.list.reveal(t)}}},{key:"clearFocus",value:function(){this.list.setFocus([])}},{key:"domFocus",value:function(){this.list.domFocus()}},{key:"layout",value:function(e){this.list.getHTMLElement().style.maxHeight=e?"calc(".concat(44*Math.floor(e/44),"px)"):"",this.list.layout()}},{key:"filter",value:function(e){var t,n=this;if(!(this.sortByLabel||this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))return this.list.layout(),!1;(e=e.trim())&&(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail)?this.elements.forEach((function(i){var r=n.matchOnLabel?(0,Ie.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneLabel))):void 0,o=n.matchOnDescription?(0,Ie.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneDescription||""))):void 0,a=n.matchOnDetail?(0,Ie.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneDetail||""))):void 0,s=n.matchOnMeta?(0,Ie.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneMeta||""))):void 0;if(r||o||a||s?(i.labelHighlights=r,i.descriptionHighlights=o,i.detailHighlights=a,i.hidden=!1):(i.labelHighlights=void 0,i.descriptionHighlights=void 0,i.detailHighlights=void 0,i.hidden=!i.item.alwaysShow),i.separator=void 0,!n.sortByLabel){var u=i.index&&n.inputElements[i.index-1];(t=u&&"separator"===u.type?u:t)&&!i.hidden&&(i.separator=t,t=void 0)}})):this.elements.forEach((function(e){e.labelHighlights=void 0,e.descriptionHighlights=void 0,e.detailHighlights=void 0,e.hidden=!1;var t=e.index&&n.inputElements[e.index-1];e.separator=t&&"separator"===t.type?t:void 0}));var i=this.elements.filter((function(e){return!e.hidden}));if(this.sortByLabel&&e){var r=e.toLowerCase();i.sort((function(e,t){return function(e,t,n){var i=e.labelHighlights||[],r=t.labelHighlights||[];if(i.length&&!r.length)return-1;if(!i.length&&r.length)return 1;if(0===i.length&&0===r.length)return 0;return Da(e.saneLabel,t.saneLabel,n)}(e,t,r)}))}return this.elementsToIndexes=i.reduce((function(e,t,n){return e.set(t.item,n),e}),new Map),this.list.splice(0,this.list.length,i),this.list.setFocus([]),this.list.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(i.length),!0}},{key:"toggleCheckbox",value:function(){try{this._fireCheckedEvents=!1;var e,t=this.list.getFocusedElements(),n=this.allVisibleChecked(t),i=(0,X.Z)(t);try{for(i.s();!(e=i.n()).done;){e.value.checked=!n}}catch(r){i.e(r)}finally{i.f()}}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}},{key:"display",value:function(e){this.container.style.display=e?"":"none"}},{key:"isDisplayed",value:function(){return"none"!==this.container.style.display}},{key:"dispose",value:function(){this.elementDisposables=(0,Me.B9)(this.elementDisposables),this.disposables=(0,Me.B9)(this.disposables)}},{key:"fireCheckedEvents",value:function(){this._fireCheckedEvents&&(this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedCheckedCount.fire(this.getCheckedCount()),this._onChangedCheckedElements.fire(this.getCheckedElements()))}},{key:"fireButtonTriggered",value:function(e){this._onButtonTriggered.fire(e)}},{key:"style",value:function(e){this.list.style(e)}}]),e}();ja([Oa.H],Ua.prototype,"onDidChangeFocus",null),ja([Oa.H],Ua.prototype,"onDidChangeSelection",null);var Ka=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"getWidgetAriaLabel",value:function(){return(0,kn.N)("quickInput","Quick Input")}},{key:"getAriaLabel",value:function(e){return e.saneAriaLabel}},{key:"getWidgetRole",value:function(){return"listbox"}},{key:"getRole",value:function(){return"option"}}]),e}(),qa=n(68027),Ga=ne.$,$a=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).parent=e,i.onKeyDown=function(e){return ne.addDisposableListener(i.inputBox.inputElement,ne.EventType.KEY_DOWN,(function(t){e(new cn.y(t))}))},i.onMouseDown=function(e){return ne.addDisposableListener(i.inputBox.inputElement,ne.EventType.MOUSE_DOWN,(function(t){e(new uo.n(t))}))},i.onDidChange=function(e){return i.inputBox.onDidChange(e)},i.container=ne.append(i.parent,Ga(".quick-input-box")),i.inputBox=i._register(new qa.W(i.container,void 0)),i}return(0,j.Z)(n,[{key:"value",get:function(){return this.inputBox.value},set:function(e){this.inputBox.value=e}},{key:"select",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.inputBox.select(e)}},{key:"isSelectionAtEnd",value:function(){return this.inputBox.isSelectionAtEnd()}},{key:"placeholder",get:function(){return this.inputBox.inputElement.getAttribute("placeholder")||""},set:function(e){this.inputBox.setPlaceHolder(e)}},{key:"ariaLabel",get:function(){return this.inputBox.getAriaLabel()},set:function(e){this.inputBox.setAriaLabel(e)}},{key:"password",get:function(){return"password"===this.inputBox.inputElement.type},set:function(e){this.inputBox.inputElement.type=e?"password":"text"}},{key:"setAttribute",value:function(e,t){this.inputBox.inputElement.setAttribute(e,t)}},{key:"removeAttribute",value:function(e){this.inputBox.inputElement.removeAttribute(e)}},{key:"showDecoration",value:function(e){e===dn.Z.Ignore?this.inputBox.hideMessage():this.inputBox.showMessage({type:e===dn.Z.Info?1:e===dn.Z.Warning?2:3,content:""})}},{key:"stylesForType",value:function(e){return this.inputBox.stylesForType(e===dn.Z.Info?1:e===dn.Z.Warning?2:3)}},{key:"setFocus",value:function(){this.inputBox.focus()}},{key:"layout",value:function(){this.inputBox.layout()}},{key:"style",value:function(e){this.inputBox.style(e)}}]),n}(Me.JT),Qa=n(57502),Xa="done",Ja="active",es="infinite",ts="discrete",ns={progressBarBackground:rr.Il.fromHex("#0E70C0")},is=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this)).options=i||Object.create(null),(0,mn.jB)(r.options,ns,!1),r.workedVal=0,r.progressBarBackground=r.options.progressBarBackground,r._register(r.showDelayedScheduler=new De.pY((function(){return(0,ne.show)(r.element)}),0)),r.create(e),r}return(0,j.Z)(n,[{key:"create",value:function(e){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),e.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.element.appendChild(this.bit),this.applyStyles()}},{key:"off",value:function(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(Ja,es,ts),this.workedVal=0,this.totalWork=void 0}},{key:"stop",value:function(){return this.doDone(!1)}},{key:"doDone",value:function(e){var t=this;return this.element.classList.add(Xa),this.element.classList.contains(es)?(this.bit.style.opacity="0",e?setTimeout((function(){return t.off()}),200):this.off()):(this.bit.style.width="inherit",e?setTimeout((function(){return t.off()}),200):this.off()),this}},{key:"infinite",value:function(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(ts,Xa),this.element.classList.add(Ja,es),this}},{key:"getContainer",value:function(){return this.element}},{key:"style",value:function(e){this.progressBarBackground=e.progressBarBackground,this.applyStyles()}},{key:"applyStyles",value:function(){if(this.bit){var e=this.progressBarBackground?this.progressBarBackground.toString():"";this.bit.style.backgroundColor=e}}}]),n}(Me.JT),rs=n(25044),os=n(66404),as={buttonBackground:rr.Il.fromHex("#0E639C"),buttonHoverBackground:rr.Il.fromHex("#006BB3"),buttonForeground:rr.Il.white},ss=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this))._onDidClick=r._register(new B.Q5),r.options=i||Object.create(null),(0,mn.jB)(r.options,as,!1),r.buttonForeground=r.options.buttonForeground,r.buttonBackground=r.options.buttonBackground,r.buttonHoverBackground=r.options.buttonHoverBackground,r.buttonSecondaryForeground=r.options.buttonSecondaryForeground,r.buttonSecondaryBackground=r.options.buttonSecondaryBackground,r.buttonSecondaryHoverBackground=r.options.buttonSecondaryHoverBackground,r.buttonBorder=r.options.buttonBorder,r._element=document.createElement("a"),r._element.classList.add("monaco-button"),r._element.tabIndex=0,r._element.setAttribute("role","button"),e.appendChild(r._element),r._register(rs.o.addTarget(r._element)),[ne.EventType.CLICK,rs.t.Tap].forEach((function(e){r._register((0,ne.addDisposableListener)(r._element,e,(function(e){r.enabled?r._onDidClick.fire(e):ne.EventHelper.stop(e)})))})),r._register((0,ne.addDisposableListener)(r._element,ne.EventType.KEY_DOWN,(function(e){var t=new cn.y(e),n=!1;r.enabled&&(t.equals(3)||t.equals(10))?(r._onDidClick.fire(e),n=!0):t.equals(9)&&(r._element.blur(),n=!0),n&&ne.EventHelper.stop(t,!0)}))),r._register((0,ne.addDisposableListener)(r._element,ne.EventType.MOUSE_OVER,(function(e){r._element.classList.contains("disabled")||r.setHoverBackground()}))),r._register((0,ne.addDisposableListener)(r._element,ne.EventType.MOUSE_OUT,(function(e){r.applyStyles()}))),r.focusTracker=r._register((0,ne.trackFocus)(r._element)),r._register(r.focusTracker.onDidFocus((function(){return r.setHoverBackground()}))),r._register(r.focusTracker.onDidBlur((function(){return r.applyStyles()}))),r.applyStyles(),r}return(0,j.Z)(n,[{key:"onDidClick",get:function(){return this._onDidClick.event}},{key:"setHoverBackground",value:function(){var e;(e=this.options.secondary?this.buttonSecondaryHoverBackground?this.buttonSecondaryHoverBackground.toString():null:this.buttonHoverBackground?this.buttonHoverBackground.toString():null)&&(this._element.style.backgroundColor=e)}},{key:"style",value:function(e){this.buttonForeground=e.buttonForeground,this.buttonBackground=e.buttonBackground,this.buttonHoverBackground=e.buttonHoverBackground,this.buttonSecondaryForeground=e.buttonSecondaryForeground,this.buttonSecondaryBackground=e.buttonSecondaryBackground,this.buttonSecondaryHoverBackground=e.buttonSecondaryHoverBackground,this.buttonBorder=e.buttonBorder,this.applyStyles()}},{key:"applyStyles",value:function(){if(this._element){var e,t;this.options.secondary?(t=this.buttonSecondaryForeground?this.buttonSecondaryForeground.toString():"",e=this.buttonSecondaryBackground?this.buttonSecondaryBackground.toString():""):(t=this.buttonForeground?this.buttonForeground.toString():"",e=this.buttonBackground?this.buttonBackground.toString():"");var n=this.buttonBorder?this.buttonBorder.toString():"";this._element.style.color=t,this._element.style.backgroundColor=e,this._element.style.borderWidth=n?"1px":"",this._element.style.borderStyle=n?"solid":"",this._element.style.borderColor=n}}},{key:"element",get:function(){return this._element}},{key:"label",set:function(e){this._element.classList.add("monaco-text-button"),this.options.supportIcons?ne.reset.apply(void 0,[this._element].concat((0,J.Z)((0,os.T)(e)))):this._element.textContent=e,"string"===typeof this.options.title?this._element.title=this.options.title:this.options.title&&(this._element.title=e)}},{key:"enabled",get:function(){return!this._element.classList.contains("disabled")},set:function(e){e?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}}]),n}(Me.JT),us=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},ls=ne.$,cs={iconClass:(0,ro.CM)("quick-input-back",ro.lA.arrowLeft).classNames,tooltip:(0,kn.N)("quickInput.back","Back"),handle:-1},ds=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).ui=e,i.visible=!1,i._enabled=!0,i._busy=!1,i._ignoreFocusOut=!1,i._buttons=[],i.noValidationMessage=n.noPromptMessage,i._severity=dn.Z.Ignore,i.buttonsUpdated=!1,i.onDidTriggerButtonEmitter=i._register(new B.Q5),i.onDidHideEmitter=i._register(new B.Q5),i.onDisposeEmitter=i._register(new B.Q5),i.visibleDisposables=i._register(new Me.SL),i.onDidHide=i.onDidHideEmitter.event,i}return(0,j.Z)(n,[{key:"title",get:function(){return this._title},set:function(e){this._title=e,this.update()}},{key:"description",get:function(){return this._description},set:function(e){this._description=e,this.update()}},{key:"step",get:function(){return this._steps},set:function(e){this._steps=e,this.update()}},{key:"totalSteps",get:function(){return this._totalSteps},set:function(e){this._totalSteps=e,this.update()}},{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled=e,this.update()}},{key:"contextKey",get:function(){return this._contextKey},set:function(e){this._contextKey=e,this.update()}},{key:"busy",get:function(){return this._busy},set:function(e){this._busy=e,this.update()}},{key:"ignoreFocusOut",get:function(){return this._ignoreFocusOut},set:function(e){this._ignoreFocusOut=e,this.update()}},{key:"buttons",get:function(){return this._buttons},set:function(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}},{key:"validationMessage",get:function(){return this._validationMessage},set:function(e){this._validationMessage=e,this.update()}},{key:"severity",get:function(){return this._severity},set:function(e){this._severity=e,this.update()}},{key:"show",value:function(){var e=this;this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton((function(t){-1!==e.buttons.indexOf(t)&&e.onDidTriggerButtonEmitter.fire(t)}))),this.ui.show(this),this.visible=!0,this.update())}},{key:"hide",value:function(){this.visible&&this.ui.hide()}},{key:"didHide",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ea.Jq.Other;this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}},{key:"update",value:function(){var e=this;if(this.visible){var t=this.getTitle();t&&this.ui.title.textContent!==t?this.ui.title.textContent=t:t||"&nbsp;"===this.ui.title.innerHTML||(this.ui.title.innerText="\xa0;");var n=this.getDescription();if(this.ui.description1.textContent!==n&&(this.ui.description1.textContent=n),this.ui.description2.textContent!==n&&(this.ui.description2.textContent=n),this.busy&&!this.busyDelay&&(this.busyDelay=new De._F,this.busyDelay.setIfNotSet((function(){e.visible&&e.ui.progressBar.infinite()}),800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();var i=this.buttons.filter((function(e){return e===cs}));this.ui.leftActionBar.push(i.map((function(t,n){var i=new qr.aU("id-".concat(n),"",t.iconClass||Pa(t.iconPath),!0,(function(){return us(e,void 0,void 0,te().mark((function e(){return te().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.onDidTriggerButtonEmitter.fire(t);case 1:case"end":return e.stop()}}),e,this)})))}));return i.tooltip=t.tooltip||"",i})),{icon:!0,label:!1}),this.ui.rightActionBar.clear();var r=this.buttons.filter((function(e){return e!==cs}));this.ui.rightActionBar.push(r.map((function(t,n){var i=new qr.aU("id-".concat(n),"",t.iconClass||Pa(t.iconPath),!0,(function(){return us(e,void 0,void 0,te().mark((function e(){return te().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.onDidTriggerButtonEmitter.fire(t);case 1:case"end":return e.stop()}}),e,this)})))}));return i.tooltip=t.tooltip||"",i})),{icon:!0,label:!1})}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);var o=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==o&&(this._lastValidationMessage=o,ne.reset.apply(ne,[this.ui.message].concat((0,J.Z)((0,os.T)((0,Ue.YU)(o)))))),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}}},{key:"getTitle",value:function(){return this.title&&this.step?"".concat(this.title," (").concat(this.getSteps(),")"):this.title?this.title:this.step?this.getSteps():""}},{key:"getDescription",value:function(){return this.description||""}},{key:"getSteps",value:function(){return this.step&&this.totalSteps?(0,kn.N)("quickInput.steps","{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}},{key:"showMessageDecoration",value:function(e){if(this.ui.inputBox.showDecoration(e),e!==dn.Z.Ignore){var t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?"".concat(t.foreground):"",this.ui.message.style.backgroundColor=t.background?"".concat(t.background):"",this.ui.message.style.border=t.border?"1px solid ".concat(t.border):"",this.ui.message.style.paddingBottom="4px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.paddingBottom=""}},{key:"dispose",value:function(){this.hide(),this.onDisposeEmitter.fire(),(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}}]),n}(Me.JT);ds.noPromptMessage=(0,kn.N)("inputModeEntry","Press 'Enter' to confirm your input or 'Escape' to cancel");var hs=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e;return(0,F.Z)(this,n),(e=t.apply(this,arguments))._value="",e.onDidChangeValueEmitter=e._register(new B.Q5),e.onDidAcceptEmitter=e._register(new B.Q5),e.onDidCustomEmitter=e._register(new B.Q5),e._items=[],e.itemsUpdated=!1,e._canSelectMany=!1,e._canAcceptInBackground=!1,e._matchOnDescription=!1,e._matchOnDetail=!1,e._matchOnLabel=!0,e._sortByLabel=!0,e._autoFocusOnList=!0,e._itemActivation=e.ui.isScreenReaderOptimized()?Ea.jG.NONE:Ea.jG.FIRST,e._activeItems=[],e.activeItemsUpdated=!1,e.activeItemsToConfirm=[],e.onDidChangeActiveEmitter=e._register(new B.Q5),e._selectedItems=[],e.selectedItemsUpdated=!1,e.selectedItemsToConfirm=[],e.onDidChangeSelectionEmitter=e._register(new B.Q5),e.onDidTriggerItemButtonEmitter=e._register(new B.Q5),e.valueSelectionUpdated=!0,e._ok="default",e._customButton=!1,e.filterValue=function(e){return e},e.onDidChangeValue=e.onDidChangeValueEmitter.event,e.onDidAccept=e.onDidAcceptEmitter.event,e.onDidChangeActive=e.onDidChangeActiveEmitter.event,e.onDidChangeSelection=e.onDidChangeSelectionEmitter.event,e.onDidTriggerItemButton=e.onDidTriggerItemButtonEmitter.event,e}return(0,j.Z)(n,[{key:"quickNavigate",get:function(){return this._quickNavigate},set:function(e){this._quickNavigate=e,this.update()}},{key:"value",get:function(){return this._value},set:function(e){this._value=e||"",this.update()}},{key:"ariaLabel",get:function(){return this._ariaLabel},set:function(e){this._ariaLabel=e,this.update()}},{key:"placeholder",get:function(){return this._placeholder},set:function(e){this._placeholder=e,this.update()}},{key:"items",get:function(){return this._items},set:function(e){this._items=e,this.itemsUpdated=!0,this.update()}},{key:"canSelectMany",get:function(){return this._canSelectMany},set:function(e){this._canSelectMany=e,this.update()}},{key:"canAcceptInBackground",get:function(){return this._canAcceptInBackground},set:function(e){this._canAcceptInBackground=e}},{key:"matchOnDescription",get:function(){return this._matchOnDescription},set:function(e){this._matchOnDescription=e,this.update()}},{key:"matchOnDetail",get:function(){return this._matchOnDetail},set:function(e){this._matchOnDetail=e,this.update()}},{key:"matchOnLabel",get:function(){return this._matchOnLabel},set:function(e){this._matchOnLabel=e,this.update()}},{key:"sortByLabel",get:function(){return this._sortByLabel},set:function(e){this._sortByLabel=e,this.update()}},{key:"autoFocusOnList",get:function(){return this._autoFocusOnList},set:function(e){this._autoFocusOnList=e,this.update()}},{key:"itemActivation",get:function(){return this._itemActivation},set:function(e){this._itemActivation=e}},{key:"activeItems",get:function(){return this._activeItems},set:function(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}},{key:"selectedItems",get:function(){return this._selectedItems},set:function(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}},{key:"keyMods",get:function(){return this._quickNavigate?Ea.X5:this.ui.keyMods}},{key:"valueSelection",set:function(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}},{key:"customButton",get:function(){return this._customButton},set:function(e){this._customButton=e,this.update()}},{key:"customLabel",get:function(){return this._customButtonLabel},set:function(e){this._customButtonLabel=e,this.update()}},{key:"customHover",get:function(){return this._customButtonHover},set:function(e){this._customButtonHover=e,this.update()}},{key:"ok",get:function(){return this._ok},set:function(e){this._ok=e,this.update()}},{key:"hideInput",get:function(){return!!this._hideInput},set:function(e){this._hideInput=e,this.update()}},{key:"trySelectFirst",value:function(){this.autoFocusOnList&&(this.canSelectMany||this.ui.list.focus(Va.First))}},{key:"show",value:function(){var e=this;this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange((function(t){t!==e.value&&(e._value=t,e.ui.list.filter(e.filterValue(e.ui.inputBox.value))&&e.trySelectFirst(),e.onDidChangeValueEmitter.fire(t))}))),this.visibleDisposables.add(this.ui.inputBox.onMouseDown((function(t){e.autoFocusOnList||e.ui.list.clearFocus()}))),this.visibleDisposables.add((this._hideInput?this.ui.list:this.ui.inputBox).onKeyDown((function(t){switch(t.keyCode){case 18:e.ui.list.focus(Va.Next),e.canSelectMany&&e.ui.list.domFocus(),ne.EventHelper.stop(t,!0);break;case 16:e.ui.list.getFocusedElements().length?e.ui.list.focus(Va.Previous):e.ui.list.focus(Va.Last),e.canSelectMany&&e.ui.list.domFocus(),ne.EventHelper.stop(t,!0);break;case 12:e.ui.list.focus(Va.NextPage),e.canSelectMany&&e.ui.list.domFocus(),ne.EventHelper.stop(t,!0);break;case 11:e.ui.list.focus(Va.PreviousPage),e.canSelectMany&&e.ui.list.domFocus(),ne.EventHelper.stop(t,!0);break;case 17:if(!e._canAcceptInBackground)return;if(!e.ui.inputBox.isSelectionAtEnd())return;e.activeItems[0]&&(e._selectedItems=[e.activeItems[0]],e.onDidChangeSelectionEmitter.fire(e.selectedItems),e.onDidAcceptEmitter.fire({inBackground:!0}));break;case 14:!t.ctrlKey&&!t.metaKey||t.shiftKey||t.altKey||(e.ui.list.focus(Va.First),ne.EventHelper.stop(t,!0));break;case 13:!t.ctrlKey&&!t.metaKey||t.shiftKey||t.altKey||(e.ui.list.focus(Va.Last),ne.EventHelper.stop(t,!0))}}))),this.visibleDisposables.add(this.ui.onDidAccept((function(){!e.canSelectMany&&e.activeItems[0]&&(e._selectedItems=[e.activeItems[0]],e.onDidChangeSelectionEmitter.fire(e.selectedItems)),e.onDidAcceptEmitter.fire({inBackground:!1})}))),this.visibleDisposables.add(this.ui.onDidCustom((function(){e.onDidCustomEmitter.fire()}))),this.visibleDisposables.add(this.ui.list.onDidChangeFocus((function(t){e.activeItemsUpdated||e.activeItemsToConfirm!==e._activeItems&&(0,wt.fS)(t,e._activeItems,(function(e,t){return e===t}))||(e._activeItems=t,e.onDidChangeActiveEmitter.fire(t))}))),this.visibleDisposables.add(this.ui.list.onDidChangeSelection((function(t){var n=t.items,i=t.event;e.canSelectMany?n.length&&e.ui.list.setSelectedElements([]):e.selectedItemsToConfirm!==e._selectedItems&&(0,wt.fS)(n,e._selectedItems,(function(e,t){return e===t}))||(e._selectedItems=n,e.onDidChangeSelectionEmitter.fire(n),n.length&&e.onDidAcceptEmitter.fire({inBackground:i instanceof MouseEvent&&1===i.button}))}))),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements((function(t){e.canSelectMany&&(e.selectedItemsToConfirm!==e._selectedItems&&(0,wt.fS)(t,e._selectedItems,(function(e,t){return e===t}))||(e._selectedItems=t,e.onDidChangeSelectionEmitter.fire(t)))}))),this.visibleDisposables.add(this.ui.list.onButtonTriggered((function(t){return e.onDidTriggerItemButtonEmitter.fire(t)}))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),(0,Ee.Z)((0,Ne.Z)(n.prototype),"show",this).call(this)}},{key:"registerQuickNavigation",value:function(){var e=this;return ne.addDisposableListener(this.ui.container,ne.EventType.KEY_UP,(function(t){if(!e.canSelectMany&&e._quickNavigate){var n=new cn.y(t),i=n.keyCode;e._quickNavigate.keybindings.some((function(e){var t=e.getParts(),r=(0,at.Z)(t,2),o=r[0];return!r[1]&&(o.shiftKey&&4===i?!(n.ctrlKey||n.altKey||n.metaKey):!(!o.altKey||6!==i)||(!(!o.ctrlKey||5!==i)||!(!o.metaKey||57!==i)))}))&&(e.activeItems[0]&&(e._selectedItems=[e.activeItems[0]],e.onDidChangeSelectionEmitter.fire(e.selectedItems),e.onDidAcceptEmitter.fire({inBackground:!1})),e._quickNavigate=void 0)}}))}},{key:"update",value:function(){if(this.visible){var e=!!this._hideInput&&this._items.length>0;this.ui.container.classList.toggle("hidden-input",e&&!this.description);var t={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!e,progressBar:!e,visibleCount:!0,count:this.canSelectMany,ok:"default"===this.ok?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(t),(0,Ee.Z)((0,Ne.Z)(n.prototype),"update",this).call(this),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");var i=this.ariaLabel||this.placeholder||n.DEFAULT_ARIA_LABEL;if(this.ui.inputBox.ariaLabel!==i&&(this.ui.inputBox.ariaLabel=i),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated)switch(this.itemsUpdated=!1,this.ui.list.setElements(this.items),this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case Ea.jG.NONE:this._itemActivation=Ea.jG.FIRST;break;case Ea.jG.SECOND:this.ui.list.focus(Va.Second),this._itemActivation=Ea.jG.FIRST;break;case Ea.jG.LAST:this.ui.list.focus(Va.Last),this._itemActivation=Ea.jG.FIRST;break;default:this.trySelectFirst()}this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",this.ui.setComboboxAccessibility(!0),t.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(Va.First))}}}]),n}(ds);hs.DEFAULT_ARIA_LABEL=(0,kn.N)("quickInputBox.ariaLabel","Type to narrow down results.");var fs=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).options=e,i.comboboxAccessibility=!1,i.enabled=!0,i.onDidAcceptEmitter=i._register(new B.Q5),i.onDidCustomEmitter=i._register(new B.Q5),i.onDidTriggerButtonEmitter=i._register(new B.Q5),i.keyMods={ctrlCmd:!1,alt:!1},i.controller=null,i.onShowEmitter=i._register(new B.Q5),i.onShow=i.onShowEmitter.event,i.onHideEmitter=i._register(new B.Q5),i.onHide=i.onHideEmitter.event,i.idPrefix=e.idPrefix,i.parentElement=e.container,i.styles=e.styles,i.registerKeyModsListeners(),i}return(0,j.Z)(n,[{key:"registerKeyModsListeners",value:function(){var e=this,t=function(t){e.keyMods.ctrlCmd=t.ctrlKey||t.metaKey,e.keyMods.alt=t.altKey};this._register(ne.addDisposableListener(window,ne.EventType.KEY_DOWN,t,!0)),this._register(ne.addDisposableListener(window,ne.EventType.KEY_UP,t,!0)),this._register(ne.addDisposableListener(window,ne.EventType.MOUSE_DOWN,t,!0))}},{key:"getUI",value:function(){var e=this;if(this.ui)return this.ui;var t=ne.append(this.parentElement,ls(".quick-input-widget.show-file-icons"));t.tabIndex=-1,t.style.display="none";var n=ne.createStyleSheet(t),i=ne.append(t,ls(".quick-input-titlebar")),r=this._register(new $r.o(i));r.domNode.classList.add("quick-input-left-action-bar");var o=ne.append(i,ls(".quick-input-title")),a=this._register(new $r.o(i));a.domNode.classList.add("quick-input-right-action-bar");var s=ne.append(t,ls(".quick-input-description")),u=ne.append(t,ls(".quick-input-header")),l=ne.append(u,ls("input.quick-input-check-all"));l.type="checkbox",this._register(ne.addStandardDisposableListener(l,ne.EventType.CHANGE,(function(e){var t=l.checked;k.setAllVisibleChecked(t)}))),this._register(ne.addDisposableListener(l,ne.EventType.CLICK,(function(e){(e.x||e.y)&&f.setFocus()})));var c=ne.append(u,ls(".quick-input-description")),d=ne.append(u,ls(".quick-input-and-message")),h=ne.append(d,ls(".quick-input-filter")),f=this._register(new $a(h));f.setAttribute("aria-describedby","".concat(this.idPrefix,"message"));var p=ne.append(h,ls(".quick-input-visible-count"));p.setAttribute("aria-live","polite"),p.setAttribute("aria-atomic","true");var g=new Qa.Z(p,{countFormat:(0,kn.N)({key:"quickInput.visibleCount",comment:["This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers."]},"{0} Results")}),v=ne.append(h,ls(".quick-input-count"));v.setAttribute("aria-live","polite");var m=new Qa.Z(v,{countFormat:(0,kn.N)({key:"quickInput.countSelected",comment:["This tells the user how many items are selected in a list of items to select from. The items can be anything."]},"{0} Selected")}),_=ne.append(u,ls(".quick-input-action")),y=new ss(_);y.label=(0,kn.N)("ok","OK"),this._register(y.onDidClick((function(t){e.onDidAcceptEmitter.fire()})));var b=ne.append(u,ls(".quick-input-action")),w=new ss(b);w.label=(0,kn.N)("custom","Custom"),this._register(w.onDidClick((function(t){e.onDidCustomEmitter.fire()})));var C=ne.append(d,ls("#".concat(this.idPrefix,"message.quick-input-message"))),k=this._register(new Ua(t,this.idPrefix+"list",this.options));this._register(k.onChangedAllVisibleChecked((function(e){l.checked=e}))),this._register(k.onChangedVisibleCount((function(e){g.setCount(e)}))),this._register(k.onChangedCheckedCount((function(e){m.setCount(e)}))),this._register(k.onLeave((function(){setTimeout((function(){f.setFocus(),e.controller instanceof hs&&e.controller.canSelectMany&&k.clearFocus()}),0)}))),this._register(k.onDidChangeFocus((function(){e.comboboxAccessibility&&e.getUI().inputBox.setAttribute("aria-activedescendant",e.getUI().list.getActiveDescendant()||"")})));var S=new is(t);S.getContainer().classList.add("quick-input-progress");var x=ne.trackFocus(t);return this._register(x),this._register(ne.addDisposableListener(t,ne.EventType.FOCUS,(function(t){e.previousFocusElement=t.relatedTarget instanceof HTMLElement?t.relatedTarget:void 0}),!0)),this._register(x.onDidBlur((function(){e.getUI().ignoreFocusOut||e.options.ignoreFocusOut()||e.hide(Ea.Jq.Blur),e.previousFocusElement=void 0}))),this._register(ne.addDisposableListener(t,ne.EventType.FOCUS,(function(e){f.setFocus()}))),this._register(ne.addDisposableListener(t,ne.EventType.KEY_DOWN,(function(n){var i=new cn.y(n);switch(i.keyCode){case 3:ne.EventHelper.stop(n,!0),e.onDidAcceptEmitter.fire();break;case 9:ne.EventHelper.stop(n,!0),e.hide(Ea.Jq.Gesture);break;case 2:if(!i.altKey&&!i.ctrlKey&&!i.metaKey){var r=[".action-label.codicon"];t.classList.contains("show-checkboxes")?r.push("input"):r.push("input[type=text]"),e.getUI().list.isDisplayed()&&r.push(".monaco-list");var o=t.querySelectorAll(r.join(", "));i.shiftKey&&i.target===o[0]?(ne.EventHelper.stop(n,!0),o[o.length-1].focus()):i.shiftKey||i.target!==o[o.length-1]||(ne.EventHelper.stop(n,!0),o[0].focus())}}}))),this.ui={container:t,styleSheet:n,leftActionBar:r,titleBar:i,title:o,description1:s,description2:c,rightActionBar:a,checkAll:l,filterContainer:h,inputBox:f,visibleCountContainer:p,visibleCount:g,countContainer:v,count:m,okContainer:_,ok:y,message:C,customButtonContainer:b,customButton:w,list:k,progressBar:S,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,isScreenReaderOptimized:function(){return e.options.isScreenReaderOptimized()},show:function(t){return e.show(t)},hide:function(){return e.hide()},setVisibilities:function(t){return e.setVisibilities(t)},setComboboxAccessibility:function(t){return e.setComboboxAccessibility(t)},setEnabled:function(t){return e.setEnabled(t)},setContextKey:function(t){return e.options.setContextKey(t)}},this.updateStyles(),this.ui}},{key:"pick",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:H.T.None;return new Promise((function(r,o){var a=function(e){a=r,n.onKeyMods&&n.onKeyMods(u.keyMods),r(e)};if(i.isCancellationRequested)a(void 0);else{var s,u=t.createQuickPick(),l=[u,u.onDidAccept((function(){if(u.canSelectMany)a(u.selectedItems.slice()),u.hide();else{var e=u.activeItems[0];e&&(a(e),u.hide())}})),u.onDidChangeActive((function(e){var t=e[0];t&&n.onDidFocus&&n.onDidFocus(t)})),u.onDidChangeSelection((function(e){if(!u.canSelectMany){var t=e[0];t&&(a(t),u.hide())}})),u.onDidTriggerItemButton((function(e){return n.onDidTriggerItemButton&&n.onDidTriggerItemButton(Object.assign(Object.assign({},e),{removeItem:function(){var t=u.items.indexOf(e.item);if(-1!==t){var n=u.items.slice(),i=n.splice(t,1),r=u.activeItems.filter((function(e){return e!==i[0]}));u.items=n,r&&(u.activeItems=r)}}}))})),u.onDidChangeValue((function(e){!s||e||1===u.activeItems.length&&u.activeItems[0]===s||(u.activeItems=[s])})),i.onCancellationRequested((function(){u.hide()})),u.onDidHide((function(){(0,Me.B9)(l),a(void 0)}))];u.title=n.title,u.canSelectMany=!!n.canPickMany,u.placeholder=n.placeHolder,u.ignoreFocusOut=!!n.ignoreFocusLost,u.matchOnDescription=!!n.matchOnDescription,u.matchOnDetail=!!n.matchOnDetail,u.matchOnLabel=void 0===n.matchOnLabel||n.matchOnLabel,u.autoFocusOnList=void 0===n.autoFocusOnList||n.autoFocusOnList,u.quickNavigate=n.quickNavigate,u.contextKey=n.contextKey,u.busy=!0,Promise.all([e,n.activeItem]).then((function(e){var t=(0,at.Z)(e,2),n=t[0],i=t[1];s=i,u.busy=!1,u.items=n,u.canSelectMany&&(u.selectedItems=n.filter((function(e){return"separator"!==e.type&&e.picked}))),s&&(u.activeItems=[s])})),u.show(),Promise.resolve(e).then(void 0,(function(e){o(e),u.hide()}))}}))}},{key:"createQuickPick",value:function(){var e=this.getUI();return new hs(e)}},{key:"show",value:function(e){var t=this.getUI();this.onShowEmitter.fire();var n=this.controller;this.controller=e,n&&n.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(dn.Z.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),ne.reset(t.message),t.progressBar.stop(),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.ignoreFocusOut=!1,this.setComboboxAccessibility(!1),t.inputBox.ariaLabel="";var i=this.options.backKeybindingLabel();cs.tooltip=i?(0,kn.N)("quickInput.backWithKeybinding","Back ({0})",i):(0,kn.N)("quickInput.back","Back"),t.container.style.display="",this.updateLayout(),t.inputBox.setFocus()}},{key:"setVisibilities",value:function(e){var t=this.getUI();t.title.style.display=e.title?"":"none",t.description1.style.display=e.description&&(e.inputBox||e.checkAll)?"":"none",t.description2.style.display=!e.description||e.inputBox||e.checkAll?"none":"",t.checkAll.style.display=e.checkAll?"":"none",t.filterContainer.style.display=e.inputBox?"":"none",t.visibleCountContainer.style.display=e.visibleCount?"":"none",t.countContainer.style.display=e.count?"":"none",t.okContainer.style.display=e.ok?"":"none",t.customButtonContainer.style.display=e.customButton?"":"none",t.message.style.display=e.message?"":"none",t.progressBar.getContainer().style.display=e.progressBar?"":"none",t.list.display(!!e.list),t.container.classList[e.checkBox?"add":"remove"]("show-checkboxes"),this.updateLayout()}},{key:"setComboboxAccessibility",value:function(e){if(e!==this.comboboxAccessibility){var t=this.getUI();this.comboboxAccessibility=e,this.comboboxAccessibility?(t.inputBox.setAttribute("role","combobox"),t.inputBox.setAttribute("aria-haspopup","true"),t.inputBox.setAttribute("aria-autocomplete","list"),t.inputBox.setAttribute("aria-activedescendant",t.list.getActiveDescendant()||"")):(t.inputBox.removeAttribute("role"),t.inputBox.removeAttribute("aria-haspopup"),t.inputBox.removeAttribute("aria-autocomplete"),t.inputBox.removeAttribute("aria-activedescendant"))}}},{key:"setEnabled",value:function(e){if(e!==this.enabled){this.enabled=e;var t,n=(0,X.Z)(this.getUI().leftActionBar.viewItems);try{for(n.s();!(t=n.n()).done;){t.value.getAction().enabled=e}}catch(o){n.e(o)}finally{n.f()}var i,r=(0,X.Z)(this.getUI().rightActionBar.viewItems);try{for(r.s();!(i=r.n()).done;){i.value.getAction().enabled=e}}catch(o){r.e(o)}finally{r.f()}this.getUI().checkAll.disabled=!e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}},{key:"hide",value:function(e){var t,n=this.controller;if(n){var i=!(null===(t=this.ui)||void 0===t?void 0:t.container.contains(document.activeElement));this.controller=null,this.onHideEmitter.fire(),this.getUI().container.style.display="none",i||(this.previousFocusElement&&this.previousFocusElement.offsetParent?(this.previousFocusElement.focus(),this.previousFocusElement=void 0):this.options.returnFocus()),n.didHide(e)}}},{key:"layout",value:function(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}},{key:"updateLayout",value:function(){if(this.ui){this.ui.container.style.top="".concat(this.titleBarOffset,"px");var e=this.ui.container.style,t=Math.min(.62*this.dimension.width,n.MAX_WIDTH);e.width=t+"px",e.marginLeft="-"+t/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&.4*this.dimension.height)}}},{key:"applyStyles",value:function(e){this.styles=e,this.updateStyles()}},{key:"updateStyles",value:function(){if(this.ui){var e=this.styles.widget,t=e.quickInputTitleBackground,n=e.quickInputBackground,i=e.quickInputForeground,r=e.contrastBorder,o=e.widgetShadow;this.ui.titleBar.style.backgroundColor=t?t.toString():"",this.ui.container.style.backgroundColor=n?n.toString():"",this.ui.container.style.color=i?i.toString():"",this.ui.container.style.border=r?"1px solid ".concat(r):"",this.ui.container.style.boxShadow=o?"0 0 8px 2px ".concat(o):"",this.ui.inputBox.style(this.styles.inputBox),this.ui.count.style(this.styles.countBadge),this.ui.ok.style(this.styles.button),this.ui.customButton.style(this.styles.button),this.ui.progressBar.style(this.styles.progressBar),this.ui.list.style(this.styles.list);var a=[];this.styles.list.pickerGroupBorder&&a.push(".quick-input-list .quick-input-list-entry { border-top-color: ".concat(this.styles.list.pickerGroupBorder,"; }")),this.styles.list.pickerGroupForeground&&a.push(".quick-input-list .quick-input-list-separator { color: ".concat(this.styles.list.pickerGroupForeground,"; }")),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(a.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&a.push("background-color: ".concat(this.styles.keybindingLabel.keybindingLabelBackground,";")),this.styles.keybindingLabel.keybindingLabelBorder&&a.push("border-color: ".concat(this.styles.keybindingLabel.keybindingLabelBorder,";")),this.styles.keybindingLabel.keybindingLabelBottomBorder&&a.push("border-bottom-color: ".concat(this.styles.keybindingLabel.keybindingLabelBottomBorder,";")),this.styles.keybindingLabel.keybindingLabelShadow&&a.push("box-shadow: inset 0 -1px 0 ".concat(this.styles.keybindingLabel.keybindingLabelShadow,";")),this.styles.keybindingLabel.keybindingLabelForeground&&a.push("color: ".concat(this.styles.keybindingLabel.keybindingLabelForeground,";")),a.push("}"));var s=a.join("\n");s!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=s)}}}]),n}(Me.JT);fs.MAX_WIDTH=600;var ps=n(62137),gs=n(73921),vs=n(60106),ms=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},_s=function(e,t){return function(n,i){t(n,i,e)}},ys=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this)).quickInputService=e,r.instantiationService=i,r.registry=Xi.B.as(gs.IP.Quickaccess),r.mapProviderToDescriptor=new Map,r.lastAcceptedPickerValues=new Map,r.visibleQuickAccess=void 0,r}return(0,j.Z)(n,[{key:"show",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1?arguments[1]:void 0,i=this.getOrInstantiateProvider(t),r=(0,at.Z)(i,2),o=r[0],a=r[1],s=this.visibleQuickAccess,u=null===s||void 0===s?void 0:s.descriptor;if(s&&a&&u===a)return t===a.prefix||(null===n||void 0===n?void 0:n.preserveValue)||(s.picker.value=t),void this.adjustValueSelection(s.picker,a,n);if(a&&!(null===n||void 0===n?void 0:n.preserveValue)){var l=void 0;if(s&&u&&u!==a){var c=s.value.substr(u.prefix.length);c&&(l="".concat(a.prefix).concat(c))}if(!l){var d=null===o||void 0===o?void 0:o.defaultFilterValue;d===gs.Ry.LAST?l=this.lastAcceptedPickerValues.get(a):"string"===typeof d&&(l="".concat(a.prefix).concat(d))}"string"===typeof l&&(t=l)}var h=new Me.SL,f=h.add(this.quickInputService.createQuickPick());f.value=t,this.adjustValueSelection(f,a,n),f.placeholder=null===a||void 0===a?void 0:a.placeholder,f.quickNavigate=null===n||void 0===n?void 0:n.quickNavigateConfiguration,f.hideInput=!!f.quickNavigate&&!s,("number"===typeof(null===n||void 0===n?void 0:n.itemActivation)||(null===n||void 0===n?void 0:n.quickNavigateConfiguration))&&(f.itemActivation=null!==(e=null===n||void 0===n?void 0:n.itemActivation)&&void 0!==e?e:ps.jG.SECOND),f.contextKey=null===a||void 0===a?void 0:a.contextKey,f.filterValue=function(e){return e.substring(a?a.prefix.length:0)},(null===a||void 0===a?void 0:a.placeholder)&&(f.ariaLabel=null===a||void 0===a?void 0:a.placeholder),h.add(this.registerPickerListeners(f,o,a,t));var p=h.add(new H.A);o&&h.add(o.provide(f,p.token)),(0,vs.I)(f.onDidHide)((function(){0===f.selectedItems.length&&p.cancel(),h.dispose()})),f.show()}},{key:"adjustValueSelection",value:function(e,t,n){var i,r;r=(null===n||void 0===n?void 0:n.preserveValue)?[e.value.length,e.value.length]:[null!==(i=null===t||void 0===t?void 0:t.prefix.length)&&void 0!==i?i:0,e.value.length],e.valueSelection=r}},{key:"registerPickerListeners",value:function(e,t,n,i){var r=this,o=new Me.SL,a=this.visibleQuickAccess={picker:e,descriptor:n,value:i};return o.add((0,Me.OF)((function(){a===r.visibleQuickAccess&&(r.visibleQuickAccess=void 0)}))),o.add(e.onDidChangeValue((function(e){var n=r.getOrInstantiateProvider(e);(0,at.Z)(n,1)[0]!==t?r.show(e,{preserveValue:!0}):a.value=e}))),n&&o.add(e.onDidAccept((function(){r.lastAcceptedPickerValues.set(n,e.value)}))),o}},{key:"getOrInstantiateProvider",value:function(e){var t=this.registry.getQuickAccessProvider(e);if(!t)return[void 0,void 0];var n=this.mapProviderToDescriptor.get(t);return n||(n=this.instantiationService.createInstance(t.ctor),this.mapProviderToDescriptor.set(t,n)),[n,t]}}]),n}(Me.JT);ys=ms([_s(0,ps.eJ),_s(1,di.TG)],ys);var bs=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ws=function(e,t){return function(n,i){t(n,i,e)}},Cs=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a){var s;return(0,F.Z)(this,n),(s=t.call(this,r)).instantiationService=e,s.contextKeyService=i,s.accessibilityService=o,s.layoutService=a,s.contexts=new Map,s}return(0,j.Z)(n,[{key:"controller",get:function(){return this._controller||(this._controller=this._register(this.createController())),this._controller}},{key:"quickAccess",get:function(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(ys))),this._quickAccess}},{key:"createController",value:function(){var e,t,n=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.layoutService,r=arguments.length>1?arguments[1]:void 0,o={idPrefix:"quickInput_",container:i.container,ignoreFocusOut:function(){return!1},isScreenReaderOptimized:function(){return n.accessibilityService.isScreenReaderOptimized()},backKeybindingLabel:function(){},setContextKey:function(e){return n.setContextKey(e)},returnFocus:function(){return i.focus()},createList:function(e,t,i,r,o){return n.instantiationService.createInstance(zo.ev,e,t,i,r,o)},styles:this.computeStyles()},a=this._register(new fs(Object.assign(Object.assign({},o),r)));return a.layout(i.dimension,null!==(t=null===(e=i.offset)||void 0===e?void 0:e.top)&&void 0!==t?t:0),this._register(i.onDidLayout((function(e){var t,n;return a.layout(e,null!==(n=null===(t=i.offset)||void 0===t?void 0:t.top)&&void 0!==n?n:0)}))),this._register(a.onShow((function(){return n.resetContextKeys()}))),this._register(a.onHide((function(){return n.resetContextKeys()}))),a}},{key:"setContextKey",value:function(e){var t;e&&((t=this.contexts.get(e))||(t=new li.uy(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),t&&t.get()||(this.resetContextKeys(),t&&t.set(!0))}},{key:"resetContextKeys",value:function(){this.contexts.forEach((function(e){e.get()&&e.reset()}))}},{key:"pick",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:H.T.None;return this.controller.pick(e,t,n)}},{key:"createQuickPick",value:function(){return this.controller.createQuickPick()}},{key:"updateStyles",value:function(){this.controller.applyStyles(this.computeStyles())}},{key:"computeStyles",value:function(){return{widget:Object.assign({},(0,bo.o)(this.theme,{quickInputBackground:mr.zK,quickInputForeground:mr.tZ,quickInputTitleBackground:mr.lo,contrastBorder:mr.lR,widgetShadow:mr.rh})),inputBox:(0,bo.o)(this.theme,{inputForeground:mr.zJ,inputBackground:mr.sE,inputBorder:mr.dt,inputValidationInfoBackground:mr._l,inputValidationInfoForeground:mr.YI,inputValidationInfoBorder:mr.EP,inputValidationWarningBackground:mr.RV,inputValidationWarningForeground:mr.SU,inputValidationWarningBorder:mr.C3,inputValidationErrorBackground:mr.p,inputValidationErrorForeground:mr._t,inputValidationErrorBorder:mr.OZ}),countBadge:(0,bo.o)(this.theme,{badgeBackground:mr.g8,badgeForeground:mr.qe,badgeBorder:mr.lR}),button:(0,bo.o)(this.theme,{buttonForeground:mr.j5,buttonBackground:mr.b7,buttonHoverBackground:mr.GO,buttonBorder:mr.lR}),progressBar:(0,bo.o)(this.theme,{progressBarBackground:mr.zR}),keybindingLabel:(0,bo.o)(this.theme,{keybindingLabelBackground:mr.oQ,keybindingLabelForeground:mr.lW,keybindingLabelBorder:mr.AW,keybindingLabelBottomBorder:mr.K1,keybindingLabelShadow:mr.rh}),list:(0,bo.o)(this.theme,{listBackground:mr.zK,listInactiveFocusForeground:mr._2,listInactiveFocusBackground:mr.Vq,listFocusOutline:mr.xL,listInactiveFocusOutline:mr.xL,pickerGroupBorder:mr.op,pickerGroupForeground:mr.kJ})}}}]),n}(fi.bB),ks=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Ss=function(e,t){return function(n,i){t(n,i,e)}},xs=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s){var u;(0,F.Z)(this,n),(u=t.call(this,i,r,o,a,s)).host=void 0;var l=Es.get(e);return u.host={_serviceBrand:void 0,get container(){return l.widget.getDomNode()},get dimension(){return e.getLayoutInfo()},get onDidLayout(){return e.onDidLayoutChange},focus:function(){return e.focus()}},u}return(0,j.Z)(n,[{key:"createController",value:function(){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"createController",this).call(this,this.host)}}]),n}(Cs=bs([ws(0,di.TG),ws(1,li.i6),ws(2,fi.XE),ws(3,pi.F),ws(4,Eo)],Cs));xs=ks([Ss(1,di.TG),Ss(2,li.i6),Ss(3,fi.XE),Ss(4,pi.F),Ss(5,Eo)],xs);var Ls=function(){function e(t,n){(0,F.Z)(this,e),this.instantiationService=t,this.codeEditorService=n,this.mapEditorToService=new Map}return(0,j.Z)(e,[{key:"activeService",get:function(){var e=this,t=this.codeEditorService.getFocusedCodeEditor();if(!t)throw new Error("Quick input service needs a focused editor to work.");var n=this.mapEditorToService.get(t);if(!n){var i=n=this.instantiationService.createInstance(xs,t);this.mapEditorToService.set(t,n),(0,vs.I)(t.onDidDispose)((function(){i.dispose(),e.mapEditorToService.delete(t)}))}return n}},{key:"quickAccess",get:function(){return this.activeService.quickAccess}},{key:"pick",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:H.T.None;return this.activeService.pick(e,t,n)}},{key:"createQuickPick",value:function(){return this.activeService.createQuickPick()}}]),e}();Ls=ks([Ss(0,di.TG),Ss(1,Q.$)],Ls);var Es=function(){function e(t){(0,F.Z)(this,e),this.editor=t,this.widget=new Ds(this.editor)}return(0,j.Z)(e,[{key:"dispose",value:function(){this.widget.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();Es.ID="editor.controller.quickInput";var Ns,Ds=function(){function e(t){(0,F.Z)(this,e),this.codeEditor=t,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}return(0,j.Z)(e,[{key:"getId",value:function(){return e.ID}},{key:"getDomNode",value:function(){return this.domNode}},{key:"getPosition",value:function(){return{preference:2}}},{key:"dispose",value:function(){this.codeEditor.removeOverlayWidget(this)}}]),e}();Ds.ID="editor.contrib.quickInputWidget",(0,La._K)(Es.ID,Es),function(e){var t=new Zo.y,n=function(){function e(t,n){(0,F.Z)(this,e),this._serviceId=t,this._factory=n,this._value=null}return(0,j.Z)(e,[{key:"id",get:function(){return this._serviceId}},{key:"get",value:function(e){if(!this._value){if(e&&(this._value=e[this._serviceId.toString()]),this._value||(this._value=this._factory(e)),!this._value)throw new Error("Service "+this._serviceId+" is missing!");t.set(this._serviceId,this._value)}return this._value}}]),e}();e.LazyStaticService=n;var i=[];function r(e,t){var r=new n(e,t);return i.push(r),r}e.init=function(e){var t,n=new Zo.y,r=(0,X.Z)((0,ra.d)());try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1];n.set(a,s)}}catch(c){r.e(c)}finally{r.f()}for(var u in e)e.hasOwnProperty(u)&&n.set((0,di.yh)(u),e[u]);i.forEach((function(t){return n.set(t.id,t.get(e))}));var l=new jo(n,!0);return n.set(di.TG,l),[n,l]},e.instantiationService=r(di.TG,(function(){return new jo(t,!0)}));var o=new qn;e.configurationService=r(vn.Ui,(function(){return o})),e.resourceConfigurationService=r(bt.V,(function(){return new Gn(o)})),e.resourcePropertiesService=r(bt.y,(function(){return new $n(o)})),e.contextService=r(Rn.ec,(function(){return new Xn})),e.labelService=r(Bo.e,(function(){return new ti})),e.telemetryService=r(ko.b,(function(){return new Qn})),e.dialogService=r(To.S,(function(){return new Wn})),e.notificationService=r(An.lT,(function(){return new Vn})),e.markerService=r(Wo.lT,(function(){return new Uo})),e.modeService=r(ke.h,(function(e){return new nr})),e.standaloneThemeService=r(si.Z,(function(){return new Or})),e.logService=r(Ct.VZ,(function(){return new Ct.$V(new Ct.kw)})),e.undoRedoService=r(ca.tJ,(function(t){return new Sa(e.dialogService.get(t),e.notificationService.get(t))})),e.modelService=r(yt.q,(function(t){return new ir.BR(e.configurationService.get(t),e.resourcePropertiesService.get(t),e.standaloneThemeService.get(t),e.logService.get(t),e.undoRedoService.get(t))})),e.markerDecorationsService=r(Xo.i,(function(t){return new ia(e.modelService.get(t),e.markerService.get(t))})),e.contextKeyService=r(li.i6,(function(t){return new Yr(e.configurationService.get(t))})),e.codeEditorService=r(Q.$,(function(t){return new Mi(null,e.contextKeyService.get(t),e.standaloneThemeService.get(t))})),e.editorProgressService=r(vi.e,(function(){return new zn})),e.storageService=r(Ko.Uy,(function(){return new Ko.vm})),e.editorWorkerService=r(Ce.p,(function(t){return new Dt(e.modelService.get(t),e.resourceConfigurationService.get(t),e.logService.get(t))}))}(Ns||(Ns={}));var Ms=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;(0,F.Z)(this,n),r=t.call(this);var o=Ns.init(i),a=(0,at.Z)(o,2),s=a[0],u=a[1];r._serviceCollection=s,r._instantiationService=u;var l=r.get(vn.Ui),c=r.get(An.lT),d=r.get(ko.b),h=r.get(fi.XE),f=r.get(Ct.VZ),p=r.get(li.i6),g=function(e,t){var n=null;return i&&(n=i[e.toString()]),n||(n=t()),r._serviceCollection.set(e,n),n};g(pi.F,(function(){return new sa(p,l)})),g(zo.Lw,(function(){return new zo.XN(h)}));var v=g(ue.H,(function(){return new Yn(r._instantiationService)})),m=g(hi.d,(function(){return r._register(new Un(p,v,d,c,f,e))})),_=g(Eo,(function(){return new ni(Ns.codeEditorService.get(Q.$),e)}));g(ps.eJ,(function(){return new Ls(u,Ns.codeEditorService.get(Q.$))}));var y=g(ci.u,(function(){return r._register(new Mo(_))}));return g(gi.p,(function(){return new la})),g(ci.i,(function(){var e=new Lo(d,c,y,m,h);return e.configure({blockMouse:!1}),r._register(e)})),g(ui.co,(function(){return new $o(v)})),g(fn.vu,(function(){return new ei(Ns.modelService.get(yt.q))})),r}return(0,j.Z)(n,[{key:"get",value:function(e){var t=this._serviceCollection.get(e);if(!t)throw new Error("Missing service "+e);return t}},{key:"set",value:function(e,t){this._serviceCollection.set(e,t)}},{key:"has",value:function(e){return this._serviceCollection.has(e)}}]),n}(Me.JT),Ts=n(47014);function Os(e,t,n){var i=new Ms(e,t),r=null;i.has(Se.S)||(r=new Bn(Ns.modelService.get()),i.set(Se.S,r)),i.has(le.v4)||i.set(le.v4,new ge(i.get(Q.$),i.get(ue.H)));var o=n(i);return r&&r.setEditor(o),o}function Is(e,t,n){return Os(e,n||{},(function(n){return new Pi(e,t,n,n.get(di.TG),n.get(Q.$),n.get(ue.H),n.get(li.i6),n.get(hi.d),n.get(ci.u),n.get(si.Z),n.get(An.lT),n.get(vn.Ui),n.get(pi.F),n.get(yt.q),n.get(ke.h))}))}function As(e){return Ns.codeEditorService.get().onCodeEditorAdd((function(t){e(t)}))}function Rs(e,t,n){return Os(e,n||{},(function(n){return new Zi(e,t,n,n.get(di.TG),n.get(li.i6),n.get(hi.d),n.get(ci.u),n.get(Ce.p),n.get(Q.$),n.get(si.Z),n.get(An.lT),n.get(vn.Ui),n.get(ci.i),n.get(vi.e),n.get(gi.p))}))}function Ps(e,t){return new ve.F(e,t)}function Zs(e,t,n){return Fi(Ns.modelService.get(),Ns.modeService.get(),e,t,n)}function Fs(e,t){Ns.modelService.get().setMode(e,Ns.modeService.get().create(t))}function js(e,t,n){e&&Ns.markerService.get().changeOne(t,e.uri,n)}function Hs(e){return Ns.markerService.get().read(e)}function Bs(e){return Ns.markerService.get().onMarkerChanged(e)}function zs(e){return Ns.modelService.get().getModel(e)}function Ws(){return Ns.modelService.get().getModels()}function Vs(e){return Ns.modelService.get().onModelAdded(e)}function Ys(e){return Ns.modelService.get().onModelRemoved(e)}function Us(e){return Ns.modelService.get().onModelModeChanged((function(t){e({model:t.model,oldLanguage:t.oldModeId})}))}function Ks(e){return function(e,t){return new Pt(e,t)}(Ns.modelService.get(),e)}function qs(e,t){var n=Ns.standaloneThemeService.get();return n.registerEditorContainer(e),sn.colorizeElement(n,Ns.modeService.get(),e,t)}function Gs(e,t,n){return Ns.standaloneThemeService.get().registerEditorContainer(document.body),sn.colorize(Ns.modeService.get(),e,t,n)}function $s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4;return Ns.standaloneThemeService.get().registerEditorContainer(document.body),sn.colorizeModelLine(e,t,n)}function Qs(e,t){Ns.modeService.get().triggerMode(t);for(var n=function(e){var t=be.RW.get(e);return t||{getInitialState:function(){return we.nO},tokenize:function(t,n,i,r){return(0,we.Ri)(e,t,i,r)}}}(t),i=(0,Ue.uq)(e),r=[],o=n.getInitialState(),a=0,s=i.length;a<s;a++){var u=i[a],l=n.tokenize(u,!0,o,0);r[a]=l.tokens,o=l.endState}return r}function Xs(e,t){Ns.standaloneThemeService.get().defineTheme(e,t)}function Js(e){Ns.standaloneThemeService.get().setTheme(e)}function eu(){(0,Ts.P)()}function tu(e,t){return ue.P.registerCommand({id:e,handler:t})}function nu(e,t){return"boolean"===typeof e?e:t}function iu(e,t){return"string"===typeof e?e:t}function ru(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&(e=e.map((function(e){return e.toLowerCase()})));var n=function(e){var t,n={},i=(0,X.Z)(e);try{for(i.s();!(t=i.n()).done;)n[t.value]=!0}catch(r){i.e(r)}finally{i.f()}return n}(e);return t?function(e){return void 0!==n[e.toLowerCase()]&&n.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==n[e]&&n.hasOwnProperty(e)}}function ou(e,t){t=t.replace(/@@/g,"\x01");var n,i=0;do{n=!1,t=t.replace(/@(\w+)/g,(function(i,r){n=!0;var o="";if("string"===typeof e[r])o=e[r];else{if(!(e[r]&&e[r]instanceof RegExp))throw void 0===e[r]?Ut(e,"language definition does not contain attribute '"+r+"', used at: "+t):Ut(e,"attribute reference '"+r+"' must be a string, used at: "+t);o=e[r].source}return Wt(o)?"":"(?:"+o+")"})),i++}while(n&&i<5);t=t.replace(/\x01/g,"@");var r=(e.ignoreCase?"i":"")+(e.unicode?"u":"");return new RegExp(t,r)}function au(e,t,n,i){var r=-1,o=n,a=n.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);a&&(a[3]&&(r=parseInt(a[3]),a[2]&&(r+=100)),o=a[4]);var s,u="~",l=o;if(o&&0!==o.length?/^\w*$/.test(l)?u="==":(a=o.match(/^(@|!@|~|!~|==|!=)(.*)$/))&&(u=a[1],l=a[2]):(u="!=",l=""),"~"!==u&&"!~"!==u||!/^(\w|\|)*$/.test(l))if("@"===u||"!@"===u){var c=e[l];if(!c)throw Ut(e,"the @ match target '"+l+"' is not defined, in rule: "+t);if(!function(e,t){if(!t)return!1;if(!Array.isArray(t))return!1;var n,i=(0,X.Z)(t);try{for(i.s();!(n=i.n()).done;)if(!e(n.value))return!1}catch(r){i.e(r)}finally{i.f()}return!0}((function(e){return"string"===typeof e}),c))throw Ut(e,"the @ match target '"+l+"' must be an array of strings, in rule: "+t);var d=ru(c,e.ignoreCase);s=function(e){return"@"===u?d(e):!d(e)}}else if("~"===u||"!~"===u)if(l.indexOf("$")<0){var h=ou(e,"^"+l+"$");s=function(e){return"~"===u?h.test(e):!h.test(e)}}else s=function(t,n,i,r){return ou(e,"^"+Kt(e,l,n,i,r)+"$").test(t)};else if(l.indexOf("$")<0){var f=Vt(e,l);s=function(e){return"=="===u?e===f:e!==f}}else{var p=Vt(e,l);s=function(t,n,i,r,o){var a=Kt(e,p,n,i,r);return"=="===u?t===a:t!==a}}else{var g=ru(l.split("|"),e.ignoreCase);s=function(e){return"~"===u?g(e):!g(e)}}return-1===r?{name:n,value:i,test:function(e,t,n,i){return s(e,e,t,n,i)}}:{name:n,value:i,test:function(e,t,n,i){var o=function(e,t,n,i){if(i<0)return e;if(i<t.length)return t[i];if(i>=100){i-=100;var r=n.split(".");if(r.unshift(n),i<r.length)return r[i]}return null}(e,t,n,r);return s(o||"",e,t,n,i)}}}function su(e,t,n){if(n){if("string"===typeof n)return n;if(n.token||""===n.token){if("string"!==typeof n.token)throw Ut(e,"a 'token' attribute must be of type string, in rule: "+t);var i={token:n.token};if(n.token.indexOf("$")>=0&&(i.tokenSubst=!0),"string"===typeof n.bracket)if("@open"===n.bracket)i.bracket=1;else{if("@close"!==n.bracket)throw Ut(e,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+t);i.bracket=-1}if(n.next){if("string"!==typeof n.next)throw Ut(e,"the next state must be a string value in rule: "+t);var r=n.next;if(!/^(@pop|@push|@popall)$/.test(r)&&("@"===r[0]&&(r=r.substr(1)),r.indexOf("$")<0&&!function(e,t){for(var n=t;n&&n.length>0;){if(e.stateNames[n])return!0;var i=n.lastIndexOf(".");n=i<0?null:n.substr(0,i)}return!1}(e,Kt(e,r,"",[],""))))throw Ut(e,"the next state '"+n.next+"' is not defined in rule: "+t);i.next=r}return"number"===typeof n.goBack&&(i.goBack=n.goBack),"string"===typeof n.switchTo&&(i.switchTo=n.switchTo),"string"===typeof n.log&&(i.log=n.log),"string"===typeof n.nextEmbedded&&(i.nextEmbedded=n.nextEmbedded,e.usesEmbedded=!0),i}if(Array.isArray(n)){for(var o=[],a=0,s=n.length;a<s;a++)o[a]=su(e,t,n[a]);return{group:o}}if(n.cases){var u=[];for(var l in n.cases)if(n.cases.hasOwnProperty(l)){var c=su(e,t,n.cases[l]);"@default"===l||"@"===l||""===l?u.push({test:void 0,value:c,name:l}):"@eos"===l?u.push({test:function(e,t,n,i){return i},value:c,name:l}):u.push(au(e,t,l,c))}var d=e.defaultToken;return{test:function(e,t,n,i){for(var r=0,o=u;r<o.length;r++){var a=o[r];if(!a.test||a.test(e,t,n,i))return a.value}return d}}}throw Ut(e,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+t)}return{token:""}}var uu=function(){function e(t){(0,F.Z)(this,e),this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=t}return(0,j.Z)(e,[{key:"setRegex",value:function(e,t){var n;if("string"===typeof t)n=t;else{if(!(t instanceof RegExp))throw Ut(e,"rules must start with a match string or regular expression: "+this.name);n=t.source}this.matchOnlyAtLineStart=n.length>0&&"^"===n[0],this.name=this.name+": "+n,this.regex=ou(e,"^(?:"+(this.matchOnlyAtLineStart?n.substr(1):n)+")")}},{key:"setAction",value:function(e,t){this.action=su(e,this.name,t)}}]),e}();function lu(e){Qi.dQ.registerLanguage(e)}function cu(){var e=[];return e=e.concat(Qi.dQ.getLanguages())}function du(e){var t=Ns.modeService.get().getLanguageIdentifier(e);return t?t.id:0}function hu(e,t){var n=Ns.modeService.get().onDidCreateMode((function(i){i.getId()===e&&(n.dispose(),t())}));return n}function fu(e,t){var n=Ns.modeService.get().getLanguageIdentifier(e);if(!n)throw new Error("Cannot set configuration for unknown language ".concat(e));return We.zu.register(n,t,100)}var pu=function(){function e(t,n){(0,F.Z)(this,e),this._languageIdentifier=t,this._actual=n}return(0,j.Z)(e,[{key:"getInitialState",value:function(){return this._actual.getInitialState()}},{key:"tokenize",value:function(e,t,n,i){if("function"===typeof this._actual.tokenize)return gu.adaptTokenize(this._languageIdentifier.language,this._actual,e,n,i);throw new Error("Not supported!")}},{key:"tokenize2",value:function(e,t,n){var i=this._actual.tokenizeEncoded(e,n);return new K.Hi(i.tokens,i.endState)}}]),e}(),gu=function(){function e(t,n,i){(0,F.Z)(this,e),this._standaloneThemeService=t,this._languageIdentifier=n,this._actual=i}return(0,j.Z)(e,[{key:"getInitialState",value:function(){return this._actual.getInitialState()}},{key:"tokenize",value:function(t,n,i,r){return e.adaptTokenize(this._languageIdentifier.language,this._actual,t,i,r)}},{key:"_toBinaryTokens",value:function(e,t){for(var n=this._languageIdentifier.id,i=this._standaloneThemeService.getColorTheme().tokenTheme,r=[],o=0,a=0,s=0,u=e.length;s<u;s++){var l=e[s],c=i.match(n,l.scopes);if(!(o>0&&r[o-1]===c)){var d=l.startIndex;0===s?d=0:d<a&&(d=a),r[o++]=d+t,r[o++]=c,a=d}}for(var h=new Uint32Array(o),f=0;f<o;f++)h[f]=r[f];return h}},{key:"tokenize2",value:function(e,t,n,i){var r,o=this._actual.tokenize(e,n),a=this._toBinaryTokens(o.tokens,i);return r=o.endState.equals(n)?n:o.endState,new K.Hi(a,r)}}],[{key:"_toClassicTokens",value:function(e,t,n){for(var i=[],r=0,o=0,a=e.length;o<a;o++){var s=e[o],u=s.startIndex;0===o?u=0:u<r&&(u=r),i[o]=new K.WU(u+n,s.scopes,t),r=u}return i}},{key:"adaptTokenize",value:function(t,n,i,r,o){var a,s=n.tokenize(i,r),u=e._toClassicTokens(s.tokens,t,o);return a=s.endState.equals(r)?r:s.endState,new K.hG(u,a)}}]),e}();function vu(e){return e&&"function"===typeof e.then}function mu(e){if(e){for(var t=[null],n=1,i=e.length;n<i;n++)t[n]=rr.Il.fromHex(e[n]);Ns.standaloneThemeService.get().setColorMapOverride(t)}else Ns.standaloneThemeService.get().setColorMapOverride(null)}function _u(e,t){var n=Ns.modeService.get().getLanguageIdentifier(e);if(!n)throw new Error("Cannot set tokens provider for unknown language ".concat(e));var i=function(e){return function(e){return"tokenizeEncoded"in e}(e)?new pu(n,e):new gu(Ns.standaloneThemeService.get(),n,e)};return vu(t)?be.RW.registerPromise(e,t.then((function(e){return i(e)}))):be.RW.register(e,i(t))}function yu(e,t){var n=function(t){return function(e,t,n,i){return new rn(e,t,n,i)}(Ns.modeService.get(),Ns.standaloneThemeService.get(),e,function(e,t){if(!t||"object"!==typeof t)throw new Error("Monarch: expecting a language definition object");var n={};n.languageId=e,n.includeLF=nu(t.includeLF,!1),n.noThrow=!1,n.maxStack=100,n.start="string"===typeof t.start?t.start:null,n.ignoreCase=nu(t.ignoreCase,!1),n.unicode=nu(t.unicode,!1),n.tokenPostfix=iu(t.tokenPostfix,"."+n.languageId),n.defaultToken=iu(t.defaultToken,"source"),n.usesEmbedded=!1;var i=t;function r(e,o,a){var s,u=(0,X.Z)(a);try{for(u.s();!(s=u.n()).done;){var l=s.value,c=l.include;if(c){if("string"!==typeof c)throw Ut(n,"an 'include' attribute must be a string at: "+e);if("@"===c[0]&&(c=c.substr(1)),!t.tokenizer[c])throw Ut(n,"include target '"+c+"' is not defined at: "+e);r(e+"."+c,o,t.tokenizer[c])}else{var d=new uu(e);if(Array.isArray(l)&&l.length>=1&&l.length<=3)if(d.setRegex(i,l[0]),l.length>=3)if("string"===typeof l[1])d.setAction(i,{token:l[1],next:l[2]});else{if("object"!==typeof l[1])throw Ut(n,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+e);var h=l[1];h.next=l[2],d.setAction(i,h)}else d.setAction(i,l[1]);else{if(!l.regex)throw Ut(n,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+e);l.name&&"string"===typeof l.name&&(d.name=l.name),l.matchOnlyAtStart&&(d.matchOnlyAtLineStart=nu(l.matchOnlyAtLineStart,!1)),d.setRegex(i,l.regex),d.setAction(i,l.action)}o.push(d)}}}catch(f){u.e(f)}finally{u.f()}}if(i.languageId=e,i.includeLF=n.includeLF,i.ignoreCase=n.ignoreCase,i.unicode=n.unicode,i.noThrow=n.noThrow,i.usesEmbedded=n.usesEmbedded,i.stateNames=t.tokenizer,i.defaultToken=n.defaultToken,!t.tokenizer||"object"!==typeof t.tokenizer)throw Ut(n,"a language definition must define the 'tokenizer' attribute as an object");for(var o in n.tokenizer=[],t.tokenizer)if(t.tokenizer.hasOwnProperty(o)){n.start||(n.start=o);var a=t.tokenizer[o];n.tokenizer[o]=new Array,r("tokenizer."+o,n.tokenizer[o],a)}if(n.usesEmbedded=i.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw Ut(n,"the 'brackets' attribute must be defined as an array")}else t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];var s,u=[],l=(0,X.Z)(t.brackets);try{for(l.s();!(s=l.n()).done;){var c=s.value;if(c&&Array.isArray(c)&&3===c.length&&(c={token:c[2],open:c[0],close:c[1]}),c.open===c.close)throw Ut(n,"open and close brackets in a 'brackets' attribute must be different: "+c.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if("string"!==typeof c.open||"string"!==typeof c.token||"string"!==typeof c.close)throw Ut(n,"every element in the 'brackets' array must be a '{open,close,token}' object or array");u.push({token:c.token+n.tokenPostfix,open:Vt(n,c.open),close:Vt(n,c.close)})}}catch(d){l.e(d)}finally{l.f()}return n.brackets=u,n.noThrow=!0,n}(e,t))};return vu(t)?be.RW.registerPromise(e,t.then((function(e){return n(e)}))):be.RW.register(e,n(t))}function bu(e,t){return be.FL.register(e,t)}function wu(e,t){return be.G0.register(e,t)}function Cu(e,t){return be.nD.register(e,t)}function ku(e,t){return be.xp.register(e,{provideHover:function(e,n,i){var r=e.getWordAtPosition(n);return Promise.resolve(t.provideHover(e,n,i)).then((function(e){if(e)return!e.range&&r&&(e.range=new Y.e(n.lineNumber,r.startColumn,n.lineNumber,r.endColumn)),e.range||(e.range=new Y.e(n.lineNumber,n.column,n.lineNumber,n.column)),e}))}})}function Su(e,t){return be.vJ.register(e,t)}function xu(e,t){return be.vH.register(e,t)}function Lu(e,t){return be.id.register(e,t)}function Eu(e,t){return be.Ct.register(e,t)}function Nu(e,t){return be.vI.register(e,t)}function Du(e,t){return be.tA.register(e,t)}function Mu(e,t){return be.He.register(e,t)}function Tu(e,t){return be.H9.register(e,{provideCodeActions:function(e,n,i,r){var o=Ns.markerService.get().read({resource:e.uri}).filter((function(e){return Y.e.areIntersectingOrTouching(e,n)}));return t.provideCodeActions(e,n,{markers:o,only:i.only},r)}})}function Ou(e,t){return be.Az.register(e,t)}function Iu(e,t){return be.vN.register(e,t)}function Au(e,t){return be.ln.register(e,t)}function Ru(e,t){return be.pM.register(e,t)}function Pu(e,t){return be.KZ.register(e,t)}function Zu(e,t){return be.OH.register(e,t)}function Fu(e,t){return be.aC.register(e,t)}function ju(e,t){return be.RN.register(e,t)}function Hu(e,t){return be.AC.register(e,t)}function Bu(e,t){return be.wT.register(e,t)}function zu(e,t){return be.K7.register(e,t)}var Wu,Vu=n(61335);Z.BH.wrappingIndent.defaultValue=0,Z.BH.glyphMargin.defaultValue=!1,Z.BH.autoIndent.defaultValue=3,Z.BH.overviewRulerLanes.defaultValue=2,Vu.xC.setFormatterSelector((function(e,t,n){return Promise.resolve(e[0])}));var Yu=G();Yu.editor={create:Is,onDidCreateEditor:As,createDiffEditor:Rs,createDiffNavigator:Ps,createModel:Zs,setModelLanguage:Fs,setModelMarkers:js,getModelMarkers:Hs,onDidChangeMarkers:Bs,getModels:Ws,getModel:zs,onDidCreateModel:Vs,onWillDisposeModel:Ys,onDidChangeModelLanguage:Us,createWebWorker:Ks,colorizeElement:qs,colorize:Gs,colorizeModelLine:$s,tokenize:Qs,defineTheme:Xs,setTheme:Js,remeasureFonts:eu,registerCommand:tu,AccessibilitySupport:i,ContentWidgetPositionPreference:u,CursorChangeReason:l,DefaultEndOfLine:c,EditorAutoIndentStrategy:h,EditorOption:f,EndOfLinePreference:p,EndOfLineSequence:g,MinimapPosition:w,MouseTargetType:C,OverlayWidgetPositionPreference:k,OverviewRulerLane:S,RenderLineNumbersType:x,RenderMinimap:L,ScrollbarVisibility:N,ScrollType:E,TextEditorCursorBlinkingStyle:I,TextEditorCursorStyle:A,TrackedRangeStickiness:R,WrappingIndent:P,ConfigurationChangedEvent:Z.Bb,BareFontInfo:me.E4,FontInfo:me.pR,TextModelResolvedOptions:ye.dJ,FindMatch:ye.tk,EditorType:_e.g,EditorOptions:Z.BH},Yu.languages={register:lu,getLanguages:cu,onLanguage:hu,getEncodedLanguageId:du,setLanguageConfiguration:fu,setColorMap:mu,setTokensProvider:_u,setMonarchTokensProvider:yu,registerReferenceProvider:bu,registerRenameProvider:wu,registerCompletionItemProvider:Pu,registerSignatureHelpProvider:Cu,registerHoverProvider:ku,registerDocumentSymbolProvider:Su,registerDocumentHighlightProvider:xu,registerLinkedEditingRangeProvider:Lu,registerDefinitionProvider:Eu,registerImplementationProvider:Nu,registerTypeDefinitionProvider:Du,registerCodeLensProvider:Mu,registerCodeActionProvider:Tu,registerDocumentFormattingEditProvider:Ou,registerDocumentRangeFormattingEditProvider:Iu,registerOnTypeFormattingEditProvider:Au,registerLinkProvider:Ru,registerColorProvider:Zu,registerFoldingRangeProvider:Fu,registerDeclarationProvider:ju,registerSelectionRangeProvider:Hu,registerDocumentSemanticTokensProvider:Bu,registerDocumentRangeSemanticTokensProvider:zu,DocumentHighlightKind:d,CompletionItemKind:o,CompletionItemTag:a,CompletionItemInsertTextRule:r,SymbolKind:T,SymbolTag:O,IndentAction:v,CompletionTriggerKind:s,SignatureHelpTriggerKind:M,InlineHintKind:m,FoldingRangeKind:be.AD};var Uu=Yu.CancellationTokenSource,Ku=Yu.Emitter,qu=Yu.KeyCode,Gu=Yu.KeyMod,$u=Yu.Position,Qu=Yu.Range,Xu=Yu.Selection,Ju=Yu.SelectionDirection,el=Yu.MarkerSeverity,tl=Yu.MarkerTag,nl=Yu.Uri,il=Yu.Token,rl=Yu.editor,ol=Yu.languages;((null===(Wu=Oe.li.MonacoEnvironment)||void 0===Wu?void 0:Wu.globalAPI)||"function"===typeof define&&n.amdO)&&(self.monaco=Yu),"undefined"!==typeof self.require&&"function"===typeof self.require.config&&self.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]})},51342:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var i=(0,n(84596).yh)("themeService")},24116:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages},Q5:function(){return i.Emitter},Sf:function(){return i.Uri},ZL:function(){return i.MarkerSeverity},e6:function(){return i.Range},j6:function(){return i.editor}});var i=n(14717)},38429:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages},Q5:function(){return i.Emitter},Sf:function(){return i.Uri},ZL:function(){return i.MarkerSeverity},e6:function(){return i.Range},j6:function(){return i.editor}});var i=n(14717)},3570:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages},Q5:function(){return i.Emitter},ZL:function(){return i.MarkerSeverity},e6:function(){return i.Range},j6:function(){return i.editor}});var i=n(14717)},81864:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages},Q5:function(){return i.Emitter},Sf:function(){return i.Uri},ZL:function(){return i.MarkerSeverity},e6:function(){return i.Range},eB:function(){return i.MarkerTag},j6:function(){return i.editor}});var i=n(14717)},56345:function(e,t,n){"use strict";function i(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return function(e,t){return 0===t.length?e:e.replace(/\{(\d+)\}/g,(function(e,n){var i=n[0];return"undefined"!==typeof t[i]?t[i]:e}))}(t,i)}n.d(t,{N:function(){return i}})},40782:function(e,t,n){"use strict";n.d(t,{F:function(){return o},U:function(){return a}});var i=n(84596),r=n(18948),o=(0,i.yh)("accessibilityService"),a=new r.uy("accessibilityModeEnabled",!1)},31585:function(e,t,n){"use strict";n.d(t,{BH:function(){return x},NZ:function(){return L},U8:function(){return E},co:function(){return S},eH:function(){return k},vr:function(){return C}});var i=n(29439),r=n(60136),o=n(29388),a=n(93433),s=n(37762),u=n(43144),l=n(15671),c=n(29077),d=n(84596),h=n(18948),f=n(72611),p=n(81626),g=n(11732),v=n(70182),m=n(98900),_=n(28214),y=n(4354),b=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},w=function(e,t){return function(n,i){t(n,i,e)}};function C(e){return void 0!==e.command}var k=(0,u.Z)((function e(t){(0,l.Z)(this,e),this.id=e._idPool++,this._debugName=t}));k._idPool=0,k.CommandPalette=new k("CommandPalette"),k.EditorContext=new k("EditorContext"),k.EditorContextCopy=new k("EditorContextCopy"),k.EditorContextPeek=new k("EditorContextPeek"),k.MenubarEditMenu=new k("MenubarEditMenu"),k.MenubarCopy=new k("MenubarCopy"),k.MenubarGoMenu=new k("MenubarGoMenu"),k.MenubarSelectionMenu=new k("MenubarSelectionMenu");var S=(0,d.yh)("menuService"),x=new(function(){function e(){(0,l.Z)(this,e),this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new g.Q5,this.onDidChangeMenu=this._onDidChangeMenu.event,this._commandPaletteChangeEvent={has:function(e){return e===k.CommandPalette}}}return(0,u.Z)(e,[{key:"addCommand",value:function(e){return this.addCommands(m.$.single(e))}},{key:"addCommands",value:function(e){var t,n=this,i=(0,s.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;this._commands.set(r.id,r)}}catch(o){i.e(o)}finally{i.f()}return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent),(0,p.OF)((function(){var t,i=!1,r=(0,s.Z)(e);try{for(r.s();!(t=r.n()).done;){var a=t.value;i=n._commands.delete(a.id)||i}}catch(o){r.e(o)}finally{r.f()}i&&n._onDidChangeMenu.fire(n._commandPaletteChangeEvent)}))}},{key:"getCommand",value:function(e){return this._commands.get(e)}},{key:"getCommands",value:function(){var e=new Map;return this._commands.forEach((function(t,n){return e.set(n,t)})),e}},{key:"appendMenuItem",value:function(e,t){return this.appendMenuItems(m.$.single({id:e,item:t}))}},{key:"appendMenuItems",value:function(e){var t,n=this,i=new Set,r=new _.S,o=(0,s.Z)(e);try{for(o.s();!(t=o.n()).done;){var a=t.value,u=a.id,l=a.item,c=this._menuItems.get(u);c||(c=new _.S,this._menuItems.set(u,c)),r.push(c.push(l)),i.add(u)}}catch(d){o.e(d)}finally{o.f()}return this._onDidChangeMenu.fire(i),(0,p.OF)((function(){if(r.size>0){var e,t=(0,s.Z)(r);try{for(t.s();!(e=t.n()).done;){(0,e.value)()}}catch(d){t.e(d)}finally{t.f()}n._onDidChangeMenu.fire(i),r.clear()}}))}},{key:"getMenuItems",value:function(e){var t;return t=this._menuItems.has(e)?(0,a.Z)(this._menuItems.get(e)):[],e===k.CommandPalette&&this._appendImplicitItems(t),t}},{key:"_appendImplicitItems",value:function(e){var t,n=new Set,i=(0,s.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;C(r)&&(n.add(r.command.id),r.alt&&n.add(r.alt.id))}}catch(o){i.e(o)}finally{i.f()}this._commands.forEach((function(t,i){n.has(i)||e.push({command:t})}))}}]),e}()),L=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o){var a;return(0,l.Z)(this,n),(a=t.call(this,"submenuitem.".concat(e.submenu.id),"string"===typeof e.title?e.title:e.title.value,[],"submenu")).item=e,a._menuService=i,a._contextKeyService=r,a._options=o,a}return(0,u.Z)(n,[{key:"actions",get:function(){var e=[],t=this._menuService.createMenu(this.item.submenu,this._contextKeyService),n=t.getActions(this._options);t.dispose();var r,o=(0,s.Z)(n);try{for(o.s();!(r=o.n()).done;){var u=(0,i.Z)(r.value,2)[1];u.length>0&&(e.push.apply(e,(0,a.Z)(u)),e.push(new c.Z0))}}catch(l){o.e(l)}finally{o.f()}return e.length&&e.pop(),e}}]),n}(c.wY),E=function(){function e(t,n,i,r,o){var a;if((0,l.Z)(this,e),this._commandService=o,this.id=t.id,this.label="string"===typeof t.title?t.title:t.title.value,this.tooltip=null!==(a=t.tooltip)&&void 0!==a?a:"",this.enabled=!t.precondition||r.contextMatchesRules(t.precondition),this.checked=!1,t.toggled){var s=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=r.contextMatchesRules(s.condition),this.checked&&s.tooltip&&(this.tooltip="string"===typeof s.tooltip?s.tooltip:s.tooltip.value),s.title&&(this.label="string"===typeof s.title?s.title:s.title.value)}this.item=t,this.alt=n?new e(n,void 0,i,r,o):void 0,this._options=i,v.kS.isThemeIcon(t.icon)&&(this.class=y.dT.asClassName(t.icon))}return(0,u.Z)(e,[{key:"dispose",value:function(){}},{key:"run",value:function(){var e,t,n,i=[];if((null===(t=this._options)||void 0===t?void 0:t.arg)&&(i=[].concat((0,a.Z)(i),[this._options.arg])),null===(n=this._options)||void 0===n?void 0:n.shouldForwardArgs){for(var r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];i=[].concat((0,a.Z)(i),o)}return(e=this._commandService).executeCommand.apply(e,[this.id].concat((0,a.Z)(i)))}}]),e}();E=b([w(3,h.i6),w(4,f.H)],E)},38794:function(e,t,n){"use strict";n.d(t,{p:function(){return i}});var i=(0,n(84596).yh)("clipboardService")},72611:function(e,t,n){"use strict";n.d(t,{H:function(){return h},P:function(){return f}});var i=n(37762),r=n(15671),o=n(43144),a=n(81626),s=n(25941),u=n(84596),l=n(11732),c=n(28214),d=n(98900),h=(0,u.yh)("commandService"),f=new(function(){function e(){(0,r.Z)(this,e),this._commands=new Map,this._onDidRegisterCommand=new l.Q5,this.onDidRegisterCommand=this._onDidRegisterCommand.event}return(0,o.Z)(e,[{key:"registerCommand",value:function(e,t){var n=this;if(!e)throw new Error("invalid command");if("string"===typeof e){if(!t)throw new Error("invalid command");return this.registerCommand({id:e,handler:t})}if(e.description){var r,o=[],u=(0,i.Z)(e.description.args);try{for(u.s();!(r=u.n()).done;){var l=r.value;o.push(l.constraint)}}catch(v){u.e(v)}finally{u.f()}var d=e.handler;e.handler=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return(0,s.D8)(n,o),d.apply(void 0,[e].concat(n))}}var h=e.id,f=this._commands.get(h);f||(f=new c.S,this._commands.set(h,f));var p=f.unshift(e),g=(0,a.OF)((function(){p();var e=n._commands.get(h);(null===e||void 0===e?void 0:e.isEmpty())&&n._commands.delete(h)}));return this._onDidRegisterCommand.fire(h),g}},{key:"registerCommandAlias",value:function(e,t){return f.registerCommand(e,(function(e){for(var n,i=arguments.length,r=new Array(i>1?i-1:0),o=1;o<i;o++)r[o-1]=arguments[o];return(n=e.get(h)).executeCommand.apply(n,[t].concat(r))}))}},{key:"getCommand",value:function(e){var t=this._commands.get(e);if(t&&!t.isEmpty())return d.$.first(t)}},{key:"getCommands",value:function(){var e,t=new Map,n=(0,i.Z)(this._commands.keys());try{for(n.s();!(e=n.n()).done;){var r=e.value,o=this.getCommand(r);o&&t.set(r,o)}}catch(a){n.e(a)}finally{n.f()}return t}}]),e}());f.registerCommand("noop",(function(){}))},98921:function(e,t,n){"use strict";n.d(t,{KV:function(){return l},MR:function(){return f},Mt:function(){return h},O4:function(){return p},Od:function(){return u},Ui:function(){return s},xL:function(){return c}});var i=n(37762),r=n(38774),o=n(84596),a=n(72885),s=(0,o.yh)("configurationService");function u(e,t){var n=Object.create(null);for(var i in e)l(n,i,e[i],t);return n}function l(e,t,n,i){for(var r=t.split("."),o=r.pop(),a=e,s=0;s<r.length;s++){var u=r[s],l=a[u];switch(typeof l){case"undefined":l=a[u]=Object.create(null);break;case"object":break;default:return void i("Ignoring ".concat(t," as ").concat(r.slice(0,s+1).join(".")," is ").concat(JSON.stringify(l)))}a=l}if("object"===typeof a&&null!==a)try{a[o]=n}catch(c){i("Ignoring ".concat(t," as ").concat(r.join(".")," is ").concat(JSON.stringify(a)))}else i("Ignoring ".concat(t," as ").concat(r.join(".")," is ").concat(JSON.stringify(a)))}function c(e,t){d(e,t.split("."))}function d(e,t){var n=t.shift();if(0!==t.length){if(-1!==Object.keys(e).indexOf(n)){var i=e[n];"object"!==typeof i||Array.isArray(i)||(d(i,t),0===Object.keys(i).length&&delete e[n])}}else delete e[n]}function h(e,t,n){var r=function(e,t){var n,r=e,o=(0,i.Z)(t);try{for(o.s();!(n=o.n()).done;){var a=n.value;if("object"!==typeof r||null===r)return;r=r[a]}}catch(s){o.e(s)}finally{o.f()}return r}(e,t.split("."));return"undefined"===typeof r?n:r}function f(){var e=r.B.as(a.IP.Configuration).getConfigurationProperties();return Object.keys(e)}function p(){var e=Object.create(null),t=r.B.as(a.IP.Configuration).getConfigurationProperties();for(var n in t){l(e,n,t[n].default,(function(e){return console.error("Conflict in default settings: ".concat(e))}))}return e}},72885:function(e,t,n){"use strict";n.d(t,{G1:function(){return C},IP:function(){return h},Uh:function(){return k}});var i=n(37762),r=n(93433),o=n(15671),a=n(43144),s=n(56345),u=n(11732),l=n(38774),c=n(25941),d=n(27930),h={Configuration:"base.contributions.configuration"},f={properties:{},patternProperties:{}},p={properties:{},patternProperties:{}},g={properties:{},patternProperties:{}},v={properties:{},patternProperties:{}},m={properties:{},patternProperties:{}},_={properties:{},patternProperties:{}},y="vscode://schemas/settings/resourceLanguage",b=l.B.as(d.I.JSONContribution),w=function(){function e(){(0,o.Z)(this,e),this.overrideIdentifiers=new Set,this._onDidSchemaChange=new u.Q5,this._onDidUpdateConfiguration=new u.Q5,this.defaultValues={},this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:s.N("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:"Unknown editor configuration setting",allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.excludedConfigurationProperties={},b.registerSchema(y,this.resourceLanguageSettingsSchema)}return(0,a.Z)(e,[{key:"registerConfiguration",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.registerConfigurations([e],t)}},{key:"registerConfigurations",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=[];e.forEach((function(e){i.push.apply(i,(0,r.Z)(t.validateAndRegisterProperties(e,n,e.extensionInfo))),t.configurationContributors.push(e),t.registerJSONConfiguration(e)})),b.registerSchema(y,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire(i)}},{key:"registerOverrideIdentifiers",value:function(e){var t,n=(0,i.Z)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.overrideIdentifiers.add(r)}}catch(o){n.e(o)}finally{n.f()}this.updateOverridePropertyPatternKey()}},{key:"validateAndRegisterProperties",value:function(e){var t,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2?arguments[2]:void 0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:3;a=c.Jp(e.scope)?a:e.scope;var s=[],u=e.properties;if(u)for(var l in u)if(n&&x(l))delete u[l];else{var d=u[l];this.updatePropertyDefaultValue(l,d),C.test(l)?d.scope=void 0:(d.scope=c.Jp(d.scope)?a:d.scope,d.restricted=c.Jp(d.restricted)?!!(null===(t=null===o||void 0===o?void 0:o.restrictedConfigurations)||void 0===t?void 0:t.includes(l)):d.restricted),!u[l].hasOwnProperty("included")||u[l].included?(this.configurationProperties[l]=u[l],!u[l].deprecationMessage&&u[l].markdownDeprecationMessage&&(u[l].deprecationMessage=u[l].markdownDeprecationMessage),s.push(l)):(this.excludedConfigurationProperties[l]=u[l],delete u[l])}var h=e.allOf;if(h){var f,p=(0,i.Z)(h);try{for(p.s();!(f=p.n()).done;){var g=f.value;s.push.apply(s,(0,r.Z)(this.validateAndRegisterProperties(g,n,o,a)))}}catch(v){p.e(v)}finally{p.f()}}return s}},{key:"getConfigurationProperties",value:function(){return this.configurationProperties}},{key:"registerJSONConfiguration",value:function(e){var t=this;!function e(n){var i=n.properties;if(i)for(var r in i)t.updateSchema(r,i[r]);var o=n.allOf;o&&o.forEach(e)}(e)}},{key:"updateSchema",value:function(e,t){switch(f.properties[e]=t,t.scope){case 1:p.properties[e]=t;break;case 2:g.properties[e]=t;break;case 6:v.properties[e]=t;break;case 3:m.properties[e]=t;break;case 4:_.properties[e]=t;break;case 5:_.properties[e]=t,this.resourceLanguageSettingsSchema.properties[e]=t}}},{key:"updateOverridePropertyPatternKey",value:function(){var e,t=(0,i.Z)(this.overrideIdentifiers.values());try{for(t.s();!(e=t.n()).done;){var n=e.value,r="[".concat(n,"]"),o={type:"object",description:s.N("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:s.N("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:y};this.updatePropertyDefaultValue(r,o),f.properties[r]=o,p.properties[r]=o,g.properties[r]=o,v.properties[r]=o,m.properties[r]=o,_.properties[r]=o}}catch(a){t.e(a)}finally{t.f()}this._onDidSchemaChange.fire()}},{key:"updatePropertyDefaultValue",value:function(e,t){var n=this.defaultValues[e];c.o8(n)&&(n=t.default),c.o8(n)&&(n=function(e){switch(Array.isArray(e)?e[0]:e){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}(t.type)),t.default=n}}]),e}(),C=new RegExp("\\[.*\\]$");function k(e){return e.substring(1,e.length-1)}var S=new w;function x(e){return e.trim()?C.test(e)?s.N("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",e):void 0!==S.getConfigurationProperties()[e]?s.N("config.property.duplicate","Cannot register '{0}'. This property is already registered.",e):null:s.N("config.property.empty","Cannot register an empty property")}l.B.add(h.Configuration,S)},18948:function(e,t,n){"use strict";n.d(t,{Ao:function(){return g},Eq:function(){return R},i6:function(){return A},uy:function(){return I}});var i=n(60136),r=n(29388),o=n(93433),a=n(37762),s=n(15671),u=n(43144),l=n(51747),c=n(84596),d=n(30487),h=d.WE||"",f=new Map;f.set("false",!1),f.set("true",!0),f.set("isMac",d.dz),f.set("isLinux",d.IJ),f.set("isWindows",d.ED),f.set("isWeb",d.$L),f.set("isMacNative",d.dz&&!d.$L),f.set("isEdge",h.indexOf("Edg/")>=0),f.set("isFirefox",h.indexOf("Firefox")>=0),f.set("isChrome",h.indexOf("Chrome")>=0),f.set("isSafari",h.indexOf("Safari")>=0),f.set("isIPad",h.indexOf("iPad")>=0);var p=Object.prototype.hasOwnProperty,g=function(){function e(){(0,s.Z)(this,e)}return(0,u.Z)(e,null,[{key:"has",value:function(e){return y.create(e)}},{key:"equals",value:function(e,t){return b.create(e,t)}},{key:"regex",value:function(e,t){return D.create(e,t)}},{key:"not",value:function(e){return S.create(e)}},{key:"and",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return T.create(t)}},{key:"or",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return O.create(t)}},{key:"deserialize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e)return this._deserializeOrExpression(e,t)}},{key:"_deserializeOrExpression",value:function(e,t){var n=this,i=e.split("||");return O.create(i.map((function(e){return n._deserializeAndExpression(e,t)})))}},{key:"_deserializeAndExpression",value:function(e,t){var n=this,i=e.split("&&");return T.create(i.map((function(e){return n._deserializeOne(e,t)})))}},{key:"_deserializeOne",value:function(e,t){if((e=e.trim()).indexOf("!=")>=0){var n=e.split("!=");return k.create(n[0].trim(),this._deserializeValue(n[1],t))}if(e.indexOf("==")>=0){var i=e.split("==");return b.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("=~")>=0){var r=e.split("=~");return D.create(r[0].trim(),this._deserializeRegexValue(r[1],t))}if(e.indexOf(" in ")>=0){var o=e.split(" in ");return w.create(o[0].trim(),o[1].trim())}if(/^[^<=>]+>=[^<=>]+$/.test(e)){var a=e.split(">=");return L.create(a[0].trim(),a[1].trim())}if(/^[^<=>]+>[^<=>]+$/.test(e)){var s=e.split(">");return x.create(s[0].trim(),s[1].trim())}if(/^[^<=>]+<=[^<=>]+$/.test(e)){var u=e.split("<=");return N.create(u[0].trim(),u[1].trim())}if(/^[^<=>]+<[^<=>]+$/.test(e)){var l=e.split("<");return E.create(l[0].trim(),l[1].trim())}return/^\!\s*/.test(e)?S.create(e.substr(1).trim()):y.create(e)}},{key:"_deserializeValue",value:function(e,t){if("true"===(e=e.trim()))return!0;if("false"===e)return!1;var n=/^'([^']*)'$/.exec(e);return n?n[1].trim():e}},{key:"_deserializeRegexValue",value:function(e,t){if((0,l.m5)(e)){if(t)throw new Error("missing regexp-value for =~-expression");return console.warn("missing regexp-value for =~-expression"),null}var n=e.indexOf("/"),i=e.lastIndexOf("/");if(n===i||n<0){if(t)throw new Error("bad regexp-value '".concat(e,"', missing /-enclosure"));return console.warn("bad regexp-value '".concat(e,"', missing /-enclosure")),null}var r=e.slice(n+1,i),o="i"===e[i+1]?"i":"";try{return new RegExp(r,o)}catch(a){if(t)throw new Error("bad regexp-value '".concat(e,"', parse error: ").concat(a));return console.warn("bad regexp-value '".concat(e,"', parse error: ").concat(a)),null}}}]),e}();function v(e,t){return e.cmp(t)}var m=function(){function e(){(0,s.Z)(this,e),this.type=0}return(0,u.Z)(e,[{key:"cmp",value:function(e){return this.type-e.type}},{key:"equals",value:function(e){return e.type===this.type}},{key:"evaluate",value:function(e){return!1}},{key:"serialize",value:function(){return"false"}},{key:"keys",value:function(){return[]}},{key:"negate",value:function(){return _.INSTANCE}}]),e}();m.INSTANCE=new m;var _=function(){function e(){(0,s.Z)(this,e),this.type=1}return(0,u.Z)(e,[{key:"cmp",value:function(e){return this.type-e.type}},{key:"equals",value:function(e){return e.type===this.type}},{key:"evaluate",value:function(e){return!0}},{key:"serialize",value:function(){return"true"}},{key:"keys",value:function(){return[]}},{key:"negate",value:function(){return m.INSTANCE}}]),e}();_.INSTANCE=new _;var y=function(){function e(t){(0,s.Z)(this,e),this.key=t,this.type=2}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:P(this.key,e.key)}},{key:"equals",value:function(e){return e.type===this.type&&this.key===e.key}},{key:"evaluate",value:function(e){return!!e.getValue(this.key)}},{key:"serialize",value:function(){return this.key}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return S.create(this.key)}}],[{key:"create",value:function(t){var n=f.get(t);return"boolean"===typeof n?n?_.INSTANCE:m.INSTANCE:new e(t)}}]),e}(),b=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=4}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return e.getValue(this.key)==this.value}},{key:"serialize",value:function(){return"".concat(this.key," == '").concat(this.value,"'")}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return k.create(this.key,this.value)}}],[{key:"create",value:function(t,n){if("boolean"===typeof n)return n?y.create(t):S.create(t);var i=f.get(t);return"boolean"===typeof i?n===(i?"true":"false")?_.INSTANCE:m.INSTANCE:new e(t,n)}}]),e}(),w=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.valueKey=n,this.type=10}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.valueKey,e.key,e.valueKey)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.valueKey===e.valueKey)}},{key:"evaluate",value:function(e){var t=e.getValue(this.valueKey),n=e.getValue(this.key);return Array.isArray(t)?t.indexOf(n)>=0:"string"===typeof n&&"object"===typeof t&&null!==t&&p.call(t,n)}},{key:"serialize",value:function(){return"".concat(this.key," in '").concat(this.valueKey,"'")}},{key:"keys",value:function(){return[this.key,this.valueKey]}},{key:"negate",value:function(){return C.create(this)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),C=function(){function e(t){(0,s.Z)(this,e),this._actual=t,this.type=11}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}},{key:"equals",value:function(e){return e.type===this.type&&this._actual.equals(e._actual)}},{key:"evaluate",value:function(e){return!this._actual.evaluate(e)}},{key:"serialize",value:function(){throw new Error("Method not implemented.")}},{key:"keys",value:function(){return this._actual.keys()}},{key:"negate",value:function(){return this._actual}}],[{key:"create",value:function(t){return new e(t)}}]),e}(),k=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=5}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return e.getValue(this.key)!=this.value}},{key:"serialize",value:function(){return"".concat(this.key," != '").concat(this.value,"'")}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return b.create(this.key,this.value)}}],[{key:"create",value:function(t,n){if("boolean"===typeof n)return n?S.create(t):y.create(t);var i=f.get(t);return"boolean"===typeof i?n===(i?"true":"false")?m.INSTANCE:_.INSTANCE:new e(t,n)}}]),e}(),S=function(){function e(t){(0,s.Z)(this,e),this.key=t,this.type=3}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:P(this.key,e.key)}},{key:"equals",value:function(e){return e.type===this.type&&this.key===e.key}},{key:"evaluate",value:function(e){return!e.getValue(this.key)}},{key:"serialize",value:function(){return"!".concat(this.key)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return y.create(this.key)}}],[{key:"create",value:function(t){var n=f.get(t);return"boolean"===typeof n?n?m.INSTANCE:_.INSTANCE:new e(t)}}]),e}(),x=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=12}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return parseFloat(e.getValue(this.key))>parseFloat(this.value)}},{key:"serialize",value:function(){return"".concat(this.key," > ").concat(this.value)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return N.create(this.key,this.value)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),L=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=13}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return parseFloat(e.getValue(this.key))>=parseFloat(this.value)}},{key:"serialize",value:function(){return"".concat(this.key," >= ").concat(this.value)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return E.create(this.key,this.value)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),E=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=14}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return parseFloat(e.getValue(this.key))<parseFloat(this.value)}},{key:"serialize",value:function(){return"".concat(this.key," < ").concat(this.value)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return L.create(this.key,this.value)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),N=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=15}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return parseFloat(e.getValue(this.key))<=parseFloat(this.value)}},{key:"serialize",value:function(){return"".concat(this.key," <= ").concat(this.value)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return x.create(this.key,this.value)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),D=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.regexp=n,this.type=7}return(0,u.Z)(e,[{key:"cmp",value:function(e){if(e.type!==this.type)return this.type-e.type;if(this.key<e.key)return-1;if(this.key>e.key)return 1;var t=this.regexp?this.regexp.source:"",n=e.regexp?e.regexp.source:"";return t<n?-1:t>n?1:0}},{key:"equals",value:function(e){if(e.type===this.type){var t=this.regexp?this.regexp.source:"",n=e.regexp?e.regexp.source:"";return this.key===e.key&&t===n}return!1}},{key:"evaluate",value:function(e){var t=e.getValue(this.key);return!!this.regexp&&this.regexp.test(t)}},{key:"serialize",value:function(){var e=this.regexp?"/".concat(this.regexp.source,"/").concat(this.regexp.ignoreCase?"i":""):"/invalid/";return"".concat(this.key," =~ ").concat(e)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return M.create(this)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),M=function(){function e(t){(0,s.Z)(this,e),this._actual=t,this.type=8}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}},{key:"equals",value:function(e){return e.type===this.type&&this._actual.equals(e._actual)}},{key:"evaluate",value:function(e){return!this._actual.evaluate(e)}},{key:"serialize",value:function(){throw new Error("Method not implemented.")}},{key:"keys",value:function(){return this._actual.keys()}},{key:"negate",value:function(){return this._actual}}],[{key:"create",value:function(t){return new e(t)}}]),e}(),T=function(){function e(t){(0,s.Z)(this,e),this.expr=t,this.type=6}return(0,u.Z)(e,[{key:"cmp",value:function(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(var t=0,n=this.expr.length;t<n;t++){var i=v(this.expr[t],e.expr[t]);if(0!==i)return i}return 0}},{key:"equals",value:function(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(var t=0,n=this.expr.length;t<n;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}},{key:"evaluate",value:function(e){for(var t=0,n=this.expr.length;t<n;t++)if(!this.expr[t].evaluate(e))return!1;return!0}},{key:"serialize",value:function(){return this.expr.map((function(e){return e.serialize()})).join(" && ")}},{key:"keys",value:function(){var e,t=[],n=(0,a.Z)(this.expr);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push.apply(t,(0,o.Z)(i.keys()))}}catch(r){n.e(r)}finally{n.f()}return t}},{key:"negate",value:function(){var e,t=[],n=(0,a.Z)(this.expr);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push(i.negate())}}catch(r){n.e(r)}finally{n.f()}return O.create(t)}}],[{key:"create",value:function(t){return e._normalizeArr(t)}},{key:"_normalizeArr",value:function(t){var n,i=[],r=!1,s=(0,a.Z)(t);try{for(s.s();!(n=s.n()).done;){var u=n.value;if(u)if(1!==u.type){if(0===u.type)return m.INSTANCE;6!==u.type?i.push(u):i.push.apply(i,(0,o.Z)(u.expr))}else r=!0}}catch(c){s.e(c)}finally{s.f()}if(0===i.length&&r)return _.INSTANCE;if(0!==i.length){if(1===i.length)return i[0];i.sort(v);for(var l=function(){var t=i[i.length-1];if(9!==t.type)return"break";i.pop();var n=i.pop(),r=O.create(t.expr.map((function(t){return e.create([t,n])})));r&&(i.push(r),i.sort(v))};i.length>1;){if("break"===l())break}return 1===i.length?i[0]:new e(i)}}}]),e}(),O=function(){function e(t){(0,s.Z)(this,e),this.expr=t,this.type=9}return(0,u.Z)(e,[{key:"cmp",value:function(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(var t=0,n=this.expr.length;t<n;t++){var i=v(this.expr[t],e.expr[t]);if(0!==i)return i}return 0}},{key:"equals",value:function(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(var t=0,n=this.expr.length;t<n;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}},{key:"evaluate",value:function(e){for(var t=0,n=this.expr.length;t<n;t++)if(this.expr[t].evaluate(e))return!0;return!1}},{key:"serialize",value:function(){return this.expr.map((function(e){return e.serialize()})).join(" || ")}},{key:"keys",value:function(){var e,t=[],n=(0,a.Z)(this.expr);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push.apply(t,(0,o.Z)(i.keys()))}}catch(r){n.e(r)}finally{n.f()}return t}},{key:"negate",value:function(){var e,t=[],n=(0,a.Z)(this.expr);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push(i.negate())}}catch(v){n.e(v)}finally{n.f()}for(var r=function(e){return 9===e.type?e.expr:[e]};t.length>1;){var o,s=t.shift(),u=t.shift(),l=[],c=(0,a.Z)(r(s));try{for(c.s();!(o=c.n()).done;){var d,h=o.value,f=(0,a.Z)(r(u));try{for(f.s();!(d=f.n()).done;){var p=d.value;l.push(g.and(h,p))}}catch(v){f.e(v)}finally{f.f()}}}catch(v){c.e(v)}finally{c.f()}t.unshift(g.or.apply(g,l))}return t[0]}}],[{key:"create",value:function(t){var n=e._normalizeArr(t);if(0!==n.length)return 1===n.length?n[0]:new e(n)}},{key:"_normalizeArr",value:function(e){var t=[],n=!1;if(e){for(var i=0,r=e.length;i<r;i++){var o=e[i];if(o)if(0!==o.type){if(1===o.type)return[_.INSTANCE];9!==o.type?t.push(o):t=t.concat(o.expr)}else n=!0}if(0===t.length&&n)return[m.INSTANCE];t.sort(v)}return t}}]),e}(),I=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i,r){var o;return(0,s.Z)(this,n),(o=t.call(this,e))._defaultValue=i,"object"===typeof r?n._info.push(Object.assign(Object.assign({},r),{key:e})):!0!==r&&n._info.push({key:e,description:r,type:null!==i&&void 0!==i?typeof i:void 0}),o}return(0,u.Z)(n,[{key:"bindTo",value:function(e){return e.createKey(this.key,this._defaultValue)}},{key:"getValue",value:function(e){return e.getContextKeyValue(this.key)}},{key:"toNegated",value:function(){return g.not(this.key)}},{key:"isEqualTo",value:function(e){return g.equals(this.key,e)}}],[{key:"all",value:function(){return n._info.values()}}]),n}(y);I._info=[];var A=(0,c.yh)("contextKeyService"),R="setContext";function P(e,t){return e<t?-1:e>t?1:0}function Z(e,t,n,i){return e<n?-1:e>n?1:t<i?-1:t>i?1:0}},49357:function(e,t,n){"use strict";n.d(t,{c:function(){return a},d:function(){return s}});var i=n(56345),r=n(18948),o=n(30487),a=new r.uy("isWindows",o.ED,(0,i.N)("isWindows","Whether the operating system is Windows")),s="inputFocus"},98989:function(e,t,n){"use strict";n.d(t,{i:function(){return o},u:function(){return r}});var i=n(84596),r=(0,i.yh)("contextViewService"),o=(0,i.yh)("contextMenuService")},34782:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var i=(0,n(84596).yh)("dialogService")},52144:function(e,t,n){"use strict";n.d(t,{M:function(){return o}});var i=n(43144),r=n(15671),o=(0,i.Z)((function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,r.Z)(this,e),this.ctor=t,this.staticArguments=n,this.supportsDelayedInstantiation=i}))},77863:function(e,t,n){"use strict";n.d(t,{d:function(){return a},z:function(){return o}});var i=n(52144),r=[];function o(e,t,n){t instanceof i.M||(t=new i.M(t,[],n)),r.push([e,t])}function a(){return r}},84596:function(e,t,n){"use strict";var i;n.d(t,{I8:function(){return i},TG:function(){return r},jt:function(){return s},yh:function(){return a}}),function(e){e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies",e.getServiceDependencies=function(t){return t[e.DI_DEPENDENCIES]||[]}}(i||(i={}));var r=a("instantiationService");function o(e,t,n,r){t[i.DI_TARGET]===t?t[i.DI_DEPENDENCIES].push({id:e,index:n,optional:r}):(t[i.DI_DEPENDENCIES]=[{id:e,index:n,optional:r}],t[i.DI_TARGET]=t)}function a(e){if(i.serviceIds.has(e))return i.serviceIds.get(e);var t=function e(t,n,i){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");o(e,t,i,!1)};return t.toString=function(){return e},i.serviceIds.set(e,t),t}function s(e){return function(t,n,i){if(3!==arguments.length)throw new Error("@optional-decorator can only be used to decorate a parameter");o(e,t,i,!0)}}},41001:function(e,t,n){"use strict";n.d(t,{y:function(){return a}});var i=n(29439),r=n(15671),o=n(43144),a=function(){function e(){(0,r.Z)(this,e),this._entries=new Map;for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];for(var a=0,s=n;a<s.length;a++){var u=(0,i.Z)(s[a],2),l=u[0],c=u[1];this.set(l,c)}}return(0,o.Z)(e,[{key:"set",value:function(e,t){var n=this._entries.get(e);return this._entries.set(e,t),n}},{key:"has",value:function(e){return this._entries.has(e)}},{key:"get",value:function(e){return this._entries.get(e)}}]),e}()},27930:function(e,t,n){"use strict";n.d(t,{I:function(){return s}});var i=n(15671),r=n(43144),o=n(38774),a=n(11732),s={JSONContribution:"base.contributions.json"};var u=new(function(){function e(){(0,i.Z)(this,e),this._onDidChangeSchema=new a.Q5,this.schemasById={}}return(0,r.Z)(e,[{key:"registerSchema",value:function(e,t){var n;this.schemasById[(n=e,n.length>0&&"#"===n.charAt(n.length-1)?n.substring(0,n.length-1):n)]=t,this._onDidChangeSchema.fire(e)}},{key:"notifySchemaChanged",value:function(e){this._onDidChangeSchema.fire(e)}}]),e}());o.B.add(s.JSONContribution,u)},97963:function(e,t,n){"use strict";n.d(t,{d:function(){return i}});var i=(0,n(84596).yh)("keybindingService")},51519:function(e,t,n){"use strict";n.d(t,{W:function(){return l}});var i=n(15671),r=n(43144),o=n(38792),a=n(30487),s=n(72611),u=n(38774),l=new(function(){function e(){(0,i.Z)(this,e),this._coreKeybindings=[],this._extensionKeybindings=[],this._cachedMergedKeybindings=null}return(0,r.Z)(e,[{key:"registerKeybindingRule",value:function(t){var n=e.bindToCurrentPlatform(t);if(n&&n.primary){var i=(0,o.gm)(n.primary,a.OS);i&&this._registerDefaultKeybinding(i,t.id,t.args,t.weight,0,t.when)}if(n&&Array.isArray(n.secondary))for(var r=0,s=n.secondary.length;r<s;r++){var u=n.secondary[r],l=(0,o.gm)(u,a.OS);l&&this._registerDefaultKeybinding(l,t.id,t.args,t.weight,-r-1,t.when)}}},{key:"registerCommandAndKeybindingRule",value:function(e){this.registerKeybindingRule(e),s.P.registerCommand(e)}},{key:"_assertNoCtrlAlt",value:function(t,n){t.ctrlKey&&t.altKey&&!t.metaKey&&e._mightProduceChar(t.keyCode)&&console.warn("Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ",t," for ",n)}},{key:"_registerDefaultKeybinding",value:function(e,t,n,i,r,o){1===a.OS&&this._assertNoCtrlAlt(e.parts[0],t),this._coreKeybindings.push({keybinding:e,command:t,commandArgs:n,when:o,weight1:i,weight2:r,extensionId:null,isBuiltinExtension:!1}),this._cachedMergedKeybindings=null}},{key:"getDefaultKeybindings",value:function(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=[].concat(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(c)),this._cachedMergedKeybindings.slice(0)}}],[{key:"bindToCurrentPlatform",value:function(e){if(1===a.OS){if(e&&e.win)return e.win}else if(2===a.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}},{key:"_mightProduceChar",value:function(e){return e>=21&&e<=30||(e>=31&&e<=56||(80===e||81===e||82===e||83===e||84===e||85===e||86===e||110===e||111===e||87===e||88===e||89===e||90===e||91===e||92===e))}}]),e}());function c(e,t){return e.weight1!==t.weight1?e.weight1-t.weight1:e.command<t.command?-1:e.command>t.command?1:e.weight2-t.weight2}u.B.add("platform.keybindingsRegistry",l)},5399:function(e,t,n){"use strict";n.d(t,{e:function(){return i}});var i=(0,n(84596).yh)("labelService")},98946:function(e,t,n){"use strict";n.d(t,{Lw:function(){return gt},XN:function(){return vt},ls:function(){return Xt},ev:function(){return Bt},CQ:function(){return yt}});var i=n(4942),r=n(29439),o=n(97326),a=n(11752),s=n(61120),u=n(60136),l=n(29388),c=n(15671),d=n(43144),h=n(84540),f=(n(43185),n(81626)),p=n(49396),g=n(92814),v=n(11732),m=n(66526),_=function(){function e(t,n){(0,c.Z)(this,e),this.renderer=t,this.modelProvider=n}return(0,d.Z)(e,[{key:"templateId",get:function(){return this.renderer.templateId}},{key:"renderTemplate",value:function(e){return{data:this.renderer.renderTemplate(e),disposable:f.JT.None}}},{key:"renderElement",value:function(e,t,n,i){var r=this;if(n.disposable&&n.disposable.dispose(),n.data){var o=this.modelProvider();if(o.isResolved(e))return this.renderer.renderElement(o.get(e),e,n.data,i);var a=new m.A,s=o.resolve(e,a.token);n.disposable={dispose:function(){return a.cancel()}},this.renderer.renderPlaceholder(e,n.data),s.then((function(t){return r.renderer.renderElement(t,e,n.data,i)}))}}},{key:"disposeTemplate",value:function(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}]),e}(),y=function(){function e(t,n){(0,c.Z)(this,e),this.modelProvider=t,this.accessibilityProvider=n}return(0,d.Z)(e,[{key:"getWidgetAriaLabel",value:function(){return this.accessibilityProvider.getWidgetAriaLabel()}},{key:"getAriaLabel",value:function(e){var t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}]),e}();var b,w=function(){function e(t,n,i,r){var o=this,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};(0,c.Z)(this,e);var s=function(){return o.model},u=r.map((function(e){return new _(e,s)}));this.list=new g.aV(t,n,i,u,function(e,t){return Object.assign(Object.assign({},t),{accessibilityProvider:t.accessibilityProvider&&new y(e,t.accessibilityProvider)})}(s,a))}return(0,d.Z)(e,[{key:"updateOptions",value:function(e){this.list.updateOptions(e)}},{key:"getHTMLElement",value:function(){return this.list.getHTMLElement()}},{key:"onDidFocus",get:function(){return this.list.onDidFocus}},{key:"onDidDispose",get:function(){return this.list.onDidDispose}},{key:"onMouseDblClick",get:function(){var e=this;return v.ju.map(this.list.onMouseDblClick,(function(t){var n=t.element,i=t.index,r=t.browserEvent;return{element:void 0===n?void 0:e._model.get(n),index:i,browserEvent:r}}))}},{key:"onPointer",get:function(){var e=this;return v.ju.map(this.list.onPointer,(function(t){var n=t.element,i=t.index,r=t.browserEvent;return{element:void 0===n?void 0:e._model.get(n),index:i,browserEvent:r}}))}},{key:"onDidChangeSelection",get:function(){var e=this;return v.ju.map(this.list.onDidChangeSelection,(function(t){var n=t.elements,i=t.indexes,r=t.browserEvent;return{elements:n.map((function(t){return e._model.get(t)})),indexes:i,browserEvent:r}}))}},{key:"model",get:function(){return this._model},set:function(e){this._model=e,this.list.splice(0,this.list.length,(0,p.w6)(e.length))}},{key:"getFocus",value:function(){return this.list.getFocus()}},{key:"getSelection",value:function(){return this.list.getSelection()}},{key:"getSelectedElements",value:function(){var e=this;return this.getSelection().map((function(t){return e.model.get(t)}))}},{key:"style",value:function(e){this.list.style(e)}},{key:"dispose",value:function(){this.list.dispose()}}]),e}(),C=n(56345),k=n(98921),S=n(72885),x=n(18948),L=n(84596),E=n(97963),N=n(38774),D=n(35215),M=n(70182),T=n(49357),O=n(98900),I=n(37762),A=n(93433),R=n(31737),P=n(28664);!function(e){e[e.Unknown=0]="Unknown",e[e.Twistie=1]="Twistie",e[e.Element=2]="Element"}(b||(b={}));var Z=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){return(0,c.Z)(this,n),t.call(this,"TreeError [".concat(e,"] ").concat(i))}return(0,d.Z)(n)}((0,P.Z)(Error)),F=function(){function e(t){(0,c.Z)(this,e),this.fn=t,this._map=new WeakMap}return(0,d.Z)(e,[{key:"map",value:function(e){var t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}]),e}(),j=n(53042),H=n(6709),B=n(61680),z=n(50482),W=n(83878),V=n(59199),Y=n(40181),U=n(25267);function K(e){return(0,W.Z)(e)||(0,V.Z)(e)||(0,Y.Z)(e)||(0,U.Z)()}var q=n(95676);function G(e){return"object"===typeof e&&"visibility"in e&&"data"in e}function $(e){switch(e){case!0:return 1;case!1:return 0;default:return e}}function Q(e){return"boolean"===typeof e.collapsible}var X=function(){function e(t,n,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};(0,c.Z)(this,e),this.user=t,this.list=n,this.rootRef=[],this.eventBufferer=new v.E7,this._onDidChangeCollapseState=new v.Q5,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new v.Q5,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new v.Q5,this.onDidSplice=this._onDidSplice.event,this.collapseByDefault="undefined"!==typeof r.collapseByDefault&&r.collapseByDefault,this.filter=r.filter,this.autoExpandSingleChildren="undefined"!==typeof r.autoExpandSingleChildren&&r.autoExpandSingleChildren,this.root={parent:void 0,element:i,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}return(0,d.Z)(e,[{key:"splice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:O.$.empty(),i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(0===e.length)throw new Z(this.user,"Invalid tree location");i.diffIdentityProvider?this.spliceSmart(i.diffIdentityProvider,e,t,n,i):this.spliceSimple(e,t,n,i)}},{key:"spliceSmart",value:function(e,t,n,i,r,o){var a,s=this;void 0===i&&(i=O.$.empty()),void 0===o&&(o=null!==(a=r.diffDepth)&&void 0!==a?a:0);var u=this.getParentNodeWithListIndex(t).parentNode,l=(0,A.Z)(i),c=t[t.length-1],d=new q.Hs({getElements:function(){return u.children.map((function(t){return e.getId(t.element).toString()}))}},{getElements:function(){return[].concat((0,A.Z)(u.children.slice(0,c)),(0,A.Z)(l),(0,A.Z)(u.children.slice(c+n))).map((function(t){return e.getId(t.element).toString()}))}}).ComputeDiff(!1);if(d.quitEarly)return this.spliceSimple(t,n,l,r);var h,f=t.slice(0,-1),p=function(t,n,i){if(o>0)for(var a=0;a<i;a++)t--,n--,s.spliceSmart(e,[].concat((0,A.Z)(f),[t,0]),Number.MAX_SAFE_INTEGER,l[n].children,r,o-1)},g=Math.min(u.children.length,c+n),v=l.length,m=(0,I.Z)(d.changes.sort((function(e,t){return t.originalStart-e.originalStart})));try{for(m.s();!(h=m.n()).done;){var _=h.value;p(g,v,g-(_.originalStart+_.originalLength)),g=_.originalStart,v=_.modifiedStart-c,this.spliceSimple([].concat((0,A.Z)(f),[g]),_.originalLength,O.$.slice(l,v,v+_.modifiedLength),r)}}catch(y){m.e(y)}finally{m.f()}p(g,v,g)}},{key:"spliceSimple",value:function(e,t){for(var n,i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:O.$.empty(),o=arguments.length>3?arguments[3]:void 0,a=o.onDidCreateNode,s=o.onDidDeleteNode,u=this.getParentNodeWithListIndex(e),l=u.parentNode,c=u.listIndex,d=u.revealed,h=u.visible,f=[],p=O.$.map(r,(function(e){return i.createTreeNode(e,l,l.visible?1:0,d,f,a)})),g=e[e.length-1],v=l.children.length>0,m=0,_=g;_>=0&&_<l.children.length;_--){var y=l.children[_];if(y.visible){m=y.visibleChildIndex;break}}var b,w=[],C=0,k=0,S=(0,I.Z)(p);try{for(S.s();!(b=S.n()).done;){var x=b.value;w.push(x),k+=x.renderNodeCount,x.visible&&(x.visibleChildIndex=m+C++)}}catch(Z){S.e(Z)}finally{S.f()}var L,E=(n=l.children).splice.apply(n,[g,t].concat(w)),N=0,D=(0,I.Z)(E);try{for(D.s();!(L=D.n()).done;){L.value.visible&&N++}}catch(Z){D.e(Z)}finally{D.f()}if(0!==N)for(var M=g+w.length;M<l.children.length;M++){var T=l.children[M];T.visible&&(T.visibleChildIndex-=N)}if(l.visibleChildrenCount+=C-N,d&&h){var A=E.reduce((function(e,t){return e+(t.visible?t.renderNodeCount:0)}),0);this._updateAncestorsRenderNodeCount(l,k-A),this.list.splice(c,A,f)}if(E.length>0&&s){E.forEach((function e(t){s(t),t.children.forEach(e)}))}var R=l.children.length>0;v!==R&&this.setCollapsible(e.slice(0,-1),R),this._onDidSplice.fire({insertedNodes:w,deletedNodes:E});for(var P=l;P;){if(2===P.visibility){this.refilter();break}P=P.parent}}},{key:"rerender",value:function(e){if(0===e.length)throw new Z(this.user,"Invalid tree location");var t=this.getTreeNodeWithListIndex(e),n=t.node,i=t.listIndex,r=t.revealed;n.visible&&r&&this.list.splice(i,1,[n])}},{key:"has",value:function(e){return this.hasTreeNode(e)}},{key:"getListIndex",value:function(e){var t=this.getTreeNodeWithListIndex(e),n=t.listIndex,i=t.visible,r=t.revealed;return i&&r?n:-1}},{key:"getListRenderCount",value:function(e){return this.getTreeNode(e).renderNodeCount}},{key:"isCollapsible",value:function(e){return this.getTreeNode(e).collapsible}},{key:"setCollapsible",value:function(e,t){var n=this,i=this.getTreeNode(e);"undefined"===typeof t&&(t=!i.collapsible);var r={collapsible:t};return this.eventBufferer.bufferEvents((function(){return n._setCollapseState(e,r)}))}},{key:"isCollapsed",value:function(e){return this.getTreeNode(e).collapsed}},{key:"setCollapsed",value:function(e,t,n){var i=this,r=this.getTreeNode(e);"undefined"===typeof t&&(t=!r.collapsed);var o={collapsed:t,recursive:n||!1};return this.eventBufferer.bufferEvents((function(){return i._setCollapseState(e,o)}))}},{key:"_setCollapseState",value:function(e,t){var n=this.getTreeNodeWithListIndex(e),i=n.node,r=n.listIndex,o=n.revealed,a=this._setListNodeCollapseState(i,r,o,t);if(i!==this.root&&this.autoExpandSingleChildren&&a&&!Q(t)&&i.collapsible&&!i.collapsed&&!t.recursive){for(var s=-1,u=0;u<i.children.length;u++){if(i.children[u].visible){if(s>-1){s=-1;break}s=u}}s>-1&&this._setCollapseState([].concat((0,A.Z)(e),[s]),t)}return a}},{key:"_setListNodeCollapseState",value:function(e,t,n,i){var r=this._setNodeCollapseState(e,i,!1);if(!n||!e.visible||!r)return r;var o=e.renderNodeCount,a=this.updateNodeAfterCollapseChange(e),s=o-(-1===t?0:1);return this.list.splice(t+1,s,a.slice(1)),r}},{key:"_setNodeCollapseState",value:function(e,t,n){var i;if(e===this.root?i=!1:(Q(t)?(i=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(i=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):i=!1,i&&this._onDidChangeCollapseState.fire({node:e,deep:n})),!Q(t)&&t.recursive){var r,o=(0,I.Z)(e.children);try{for(o.s();!(r=o.n()).done;){var a=r.value;i=this._setNodeCollapseState(a,t,!0)||i}}catch(s){o.e(s)}finally{o.f()}}return i}},{key:"expandTo",value:function(e){var t=this;this.eventBufferer.bufferEvents((function(){for(var n=t.getTreeNode(e);n.parent;)n=n.parent,e=e.slice(0,e.length-1),n.collapsed&&t._setCollapseState(e,{collapsed:!1,recursive:!1})}))}},{key:"refilter",value:function(){var e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t)}},{key:"createTreeNode",value:function(e,t,n,i,r,o){var a=this,s={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:"boolean"===typeof e.collapsible?e.collapsible:"undefined"!==typeof e.collapsed,collapsed:"undefined"===typeof e.collapsed?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},u=this._filterNode(s,n);s.visibility=u,i&&r.push(s);var l,c=e.children||O.$.empty(),d=i&&0!==u&&!s.collapsed,h=O.$.map(c,(function(e){return a.createTreeNode(e,s,u,d,r,o)})),f=0,p=1,g=(0,I.Z)(h);try{for(g.s();!(l=g.n()).done;){var v=l.value;s.children.push(v),p+=v.renderNodeCount,v.visible&&(v.visibleChildIndex=f++)}}catch(m){g.e(m)}finally{g.f()}return s.collapsible=s.collapsible||s.children.length>0,s.visibleChildrenCount=f,s.visible=2===u?f>0:1===u,s.visible?s.collapsed||(s.renderNodeCount=p):(s.renderNodeCount=0,i&&r.pop()),o&&o(s),s}},{key:"updateNodeAfterCollapseChange",value:function(e){var t=e.renderNodeCount,n=[];return this._updateNodeAfterCollapseChange(e,n),this._updateAncestorsRenderNodeCount(e.parent,n.length-t),n}},{key:"_updateNodeAfterCollapseChange",value:function(e,t){if(!1===e.visible)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed){var n,i=(0,I.Z)(e.children);try{for(i.s();!(n=i.n()).done;){var r=n.value;e.renderNodeCount+=this._updateNodeAfterCollapseChange(r,t)}}catch(o){i.e(o)}finally{i.f()}}return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}},{key:"updateNodeAfterFilterChange",value:function(e){var t=e.renderNodeCount,n=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,n),this._updateAncestorsRenderNodeCount(e.parent,n.length-t),n}},{key:"_updateNodeAfterFilterChange",value:function(e,t,n){var i,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(e!==this.root){if(0===(i=this._filterNode(e,t)))return e.visible=!1,e.renderNodeCount=0,!1;r&&n.push(e)}var o=n.length;e.renderNodeCount=e===this.root?0:1;var a=!1;if(e.collapsed&&0===i)e.visibleChildrenCount=0;else{var s,u=0,l=(0,I.Z)(e.children);try{for(l.s();!(s=l.n()).done;){var c=s.value;a=this._updateNodeAfterFilterChange(c,i,n,r&&!e.collapsed)||a,c.visible&&(c.visibleChildIndex=u++)}}catch(d){l.e(d)}finally{l.f()}e.visibleChildrenCount=u}return e!==this.root&&(e.visible=2===i?a:1===i),e.visible?e.collapsed||(e.renderNodeCount+=n.length-o):(e.renderNodeCount=0,r&&n.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}},{key:"_updateAncestorsRenderNodeCount",value:function(e,t){if(0!==t)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}},{key:"_filterNode",value:function(e,t){var n=this.filter?this.filter.filter(e.element,t):1;return"boolean"===typeof n?(e.filterData=void 0,n?1:0):G(n)?(e.filterData=n.data,$(n.visibility)):(e.filterData=void 0,$(n))}},{key:"hasTreeNode",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.root;if(!e||0===e.length)return!0;var n=K(e),i=n[0],r=n.slice(1);return!(i<0||i>t.children.length)&&this.hasTreeNode(r,t.children[i])}},{key:"getTreeNode",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.root;if(!e||0===e.length)return t;var n=K(e),i=n[0],r=n.slice(1);if(i<0||i>t.children.length)throw new Z(this.user,"Invalid tree location");return this.getTreeNode(r,t.children[i])}},{key:"getTreeNodeWithListIndex",value:function(e){if(0===e.length)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};var t=this.getParentNodeWithListIndex(e),n=t.parentNode,i=t.listIndex,r=t.revealed,o=t.visible,a=e[e.length-1];if(a<0||a>n.children.length)throw new Z(this.user,"Invalid tree location");var s=n.children[a];return{node:s,listIndex:i,revealed:r,visible:o&&s.visible}}},{key:"getParentNodeWithListIndex",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.root,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=K(e),a=o[0],s=o.slice(1);if(a<0||a>t.children.length)throw new Z(this.user,"Invalid tree location");for(var u=0;u<a;u++)n+=t.children[u].renderNodeCount;return i=i&&!t.collapsed,r=r&&t.visible,0===s.length?{parentNode:t,listIndex:n,revealed:i,visible:r}:this.getParentNodeWithListIndex(s,t.children[a],n+1,i,r)}},{key:"getNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.getTreeNode(e)}},{key:"getNodeLocation",value:function(e){for(var t=[],n=e;n.parent;)t.push(n.parent.children.indexOf(n)),n=n.parent;return t.reverse()}},{key:"getParentNodeLocation",value:function(e){return 0===e.length?void 0:1===e.length?[]:(0,p.JH)(e)[0]}}]),e}(),J=n(27997),ee=n(30487),te=n(5265),ne=n(15723),ie=n(4354),re=(0,ie.CM)("tree-item-expanded",ie.lA.chevronDown),oe=(0,ie.CM)("tree-filter-on-type-on",ie.lA.listFilter),ae=(0,ie.CM)("tree-filter-on-type-off",ie.lA.listSelection),se=(0,ie.CM)("tree-filter-clear",ie.lA.close),ue=(0,ie.CM)("tree-item-loading",ie.lA.loading),le=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e.elements.map((function(e){return e.element})))).data=e,i}return(0,d.Z)(n)}(H.kX);function ce(e){return e instanceof H.kX?new le(e):e}var de=function(){function e(t,n){(0,c.Z)(this,e),this.modelProvider=t,this.dnd=n,this.autoExpandDisposable=f.JT.None}return(0,d.Z)(e,[{key:"getDragURI",value:function(e){return this.dnd.getDragURI(e.element)}},{key:"getDragLabel",value:function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((function(e){return e.element})),t)}},{key:"onDragStart",value:function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(ce(e),t)}},{key:"onDragOver",value:function(e,t,n,i){var r=this,o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=this.dnd.onDragOver(ce(e),t&&t.element,n,i),s=this.autoExpandNode!==t;if(s&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),"undefined"===typeof t)return a;if(s&&"boolean"!==typeof a&&a.autoExpand&&(this.autoExpandDisposable=(0,J.Vg)((function(){var e=r.modelProvider(),n=e.getNodeLocation(t);e.isCollapsed(n)&&e.setCollapsed(n,!1),r.autoExpandNode=void 0}),500)),"boolean"===typeof a||!a.accept||"undefined"===typeof a.bubble||a.feedback)return o?a:{accept:"boolean"===typeof a?a:a.accept,effect:"boolean"===typeof a?void 0:a.effect,feedback:[n]};if(1===a.bubble){var u=this.modelProvider(),l=u.getNodeLocation(t),c=u.getParentNodeLocation(l),d=u.getNode(c),h=c&&u.getListIndex(c);return this.onDragOver(e,d,h,i,!1)}var f=this.modelProvider(),g=f.getNodeLocation(t),v=f.getListIndex(g),m=f.getListRenderCount(g);return Object.assign(Object.assign({},a),{feedback:(0,p.w6)(v,v+m)})}},{key:"drop",value:function(e,t,n,i){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(ce(e),t&&t.element,n,i)}},{key:"onDragEnd",value:function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}}]),e}();var he,fe=function(){function e(t){(0,c.Z)(this,e),this.delegate=t}return(0,d.Z)(e,[{key:"getHeight",value:function(e){return this.delegate.getHeight(e.element)}},{key:"getTemplateId",value:function(e){return this.delegate.getTemplateId(e.element)}},{key:"hasDynamicHeight",value:function(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}},{key:"setDynamicHeight",value:function(e,t){this.delegate.setDynamicHeight&&this.delegate.setDynamicHeight(e.element,t)}}]),e}();!function(e){e.None="none",e.OnHover="onHover",e.Always="always"}(he||(he={}));var pe=function(){function e(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];(0,c.Z)(this,e),this._elements=i,this.onDidChange=v.ju.forEach(t,(function(e){return n._elements=e}))}return(0,d.Z)(e,[{key:"elements",get:function(){return this._elements}}]),e}(),ge=function(){function e(t,n,i,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};(0,c.Z)(this,e),this.renderer=t,this.modelProvider=n,this.activeNodes=r,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=e.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.renderedIndentGuides=new ne.r,this.activeIndentNodes=new Set,this.indentGuidesDisposable=f.JT.None,this.disposables=new f.SL,this.templateId=t.templateId,this.updateOptions(o),v.ju.map(i,(function(e){return e.node}))(this.onDidChangeNodeTwistieState,this,this.disposables),t.onDidChangeTwistieState&&t.onDidChangeTwistieState(this.onDidChangeTwistieState,this,this.disposables)}return(0,d.Z)(e,[{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("undefined"!==typeof e.indent&&(this.indent=(0,te.u)(e.indent,0,40)),"undefined"!==typeof e.renderIndentGuides){var t=e.renderIndentGuides!==he.None;if(t!==this.shouldRenderIndentGuides&&(this.shouldRenderIndentGuides=t,this.indentGuidesDisposable.dispose(),t)){var n=new f.SL;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,n),this.indentGuidesDisposable=n,this._onDidChangeActiveNodes(this.activeNodes.elements)}}"undefined"!==typeof e.hideTwistiesOfChildlessElements&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}},{key:"renderTemplate",value:function(e){var t=(0,h.append)(e,(0,h.$)(".monaco-tl-row")),n=(0,h.append)(t,(0,h.$)(".monaco-tl-indent")),i=(0,h.append)(t,(0,h.$)(".monaco-tl-twistie")),r=(0,h.append)(t,(0,h.$)(".monaco-tl-contents")),o=this.renderer.renderTemplate(r);return{container:e,indent:n,twistie:i,indentGuidesDisposable:f.JT.None,templateData:o}}},{key:"renderElement",value:function(t,n,i,r){"number"===typeof r&&(this.renderedNodes.set(t,{templateData:i,height:r}),this.renderedElements.set(t.element,t));var o=e.DefaultIndent+(t.depth-1)*this.indent;i.twistie.style.paddingLeft="".concat(o,"px"),i.indent.style.width="".concat(o+this.indent-16,"px"),this.renderTwistie(t,i),"number"===typeof r&&this.renderIndentGuides(t,i),this.renderer.renderElement(t,n,i.templateData,r)}},{key:"disposeElement",value:function(e,t,n,i){n.indentGuidesDisposable.dispose(),this.renderer.disposeElement&&this.renderer.disposeElement(e,t,n.templateData,i),"number"===typeof i&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}},{key:"disposeTemplate",value:function(e){this.renderer.disposeTemplate(e.templateData)}},{key:"onDidChangeTwistieState",value:function(e){var t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}},{key:"onDidChangeNodeTwistieState",value:function(e){var t=this.renderedNodes.get(e);t&&(this.renderTwistie(e,t.templateData),this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderIndentGuides(e,t.templateData))}},{key:"renderTwistie",value:function(e,t){var n;(n=t.twistie.classList).remove.apply(n,(0,A.Z)(re.classNamesArray));var i=!1;if(this.renderer.renderTwistie&&(i=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)){var r;if(!i)(r=t.twistie.classList).add.apply(r,(0,A.Z)(re.classNamesArray));t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)}else t.twistie.classList.remove("collapsible","collapsed");e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded")}},{key:"renderIndentGuides",value:function(e,t){var n=this;if((0,h.clearNode)(t.indent),t.indentGuidesDisposable.dispose(),this.shouldRenderIndentGuides){for(var i=new f.SL,r=this.modelProvider(),o=e,a=function(){var e=r.getNodeLocation(o),a=r.getParentNodeLocation(e);if(!a)return"break";var s=r.getNode(a),u=(0,h.$)(".indent-guide",{style:"width: ".concat(n.indent,"px")});n.activeIndentNodes.has(s)&&u.classList.add("active"),0===t.indent.childElementCount?t.indent.appendChild(u):t.indent.insertBefore(u,t.indent.firstElementChild),n.renderedIndentGuides.add(s,u),i.add((0,f.OF)((function(){return n.renderedIndentGuides.delete(s,u)}))),o=s};;){if("break"===a())break}t.indentGuidesDisposable=i}}},{key:"_onDidChangeActiveNodes",value:function(e){var t=this;if(this.shouldRenderIndentGuides){var n=new Set,i=this.modelProvider();e.forEach((function(e){var t=i.getNodeLocation(e);try{var r=i.getParentNodeLocation(t);e.collapsible&&e.children.length>0&&!e.collapsed?n.add(e):r&&n.add(i.getNode(r))}catch(o){}})),this.activeIndentNodes.forEach((function(e){n.has(e)||t.renderedIndentGuides.forEach(e,(function(e){return e.classList.remove("active")}))})),n.forEach((function(e){t.activeIndentNodes.has(e)||t.renderedIndentGuides.forEach(e,(function(e){return e.classList.add("active")}))})),this.activeIndentNodes=n}}},{key:"dispose",value:function(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),(0,f.B9)(this.disposables)}}]),e}();ge.DefaultIndent=8;var ve=function(){function e(t,n,i){(0,c.Z)(this,e),this.tree=t,this.keyboardNavigationLabelProvider=n,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new f.SL,t.onWillRefilter(this.reset,this,this.disposables)}return(0,d.Z)(e,[{key:"totalCount",get:function(){return this._totalCount}},{key:"matchCount",get:function(){return this._matchCount}},{key:"pattern",set:function(e){this._pattern=e,this._lowercasePattern=e.toLowerCase()}},{key:"filter",value:function(e,t){if(this._filter){var n=this._filter.filter(e,t);if(this.tree.options.simpleKeyboardNavigation)return n;if(0===("boolean"===typeof n?n?1:0:G(n)?$(n.visibility):n))return!1}if(this._totalCount++,this.tree.options.simpleKeyboardNavigation||!this._pattern)return this._matchCount++,{data:z.CL.Default,visibility:!0};var i,r=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=Array.isArray(r)?r:[r],a=(0,I.Z)(o);try{for(a.s();!(i=a.n()).done;){var s=i.value,u=s&&s.toString();if("undefined"===typeof u)return{data:z.CL.Default,visibility:!0};var l=(0,z.EW)(this._pattern,this._lowercasePattern,0,u,u.toLowerCase(),0,!0);if(l)return this._matchCount++,1===o.length?{data:l,visibility:!0}:{data:{label:u,score:l},visibility:!0}}}catch(c){a.e(c)}finally{a.f()}return this.tree.options.filterOnType?2:{data:z.CL.Default,visibility:!0}}},{key:"reset",value:function(){this._totalCount=0,this._matchCount=0}},{key:"dispose",value:function(){(0,f.B9)(this.disposables)}}]),e}(),me=function(){function e(t,n,i,r,o){(0,c.Z)(this,e),this.tree=t,this.view=i,this.filter=r,this.keyboardNavigationDelegate=o,this._enabled=!1,this._pattern="",this._empty=!1,this._onDidChangeEmptyState=new v.Q5,this.positionClassName="ne",this.automaticKeyboardNavigation=!0,this.triggered=!1,this._onDidChangePattern=new v.Q5,this.enabledDisposables=new f.SL,this.disposables=new f.SL,this.domNode=(0,h.$)(".monaco-list-type-filter.".concat(this.positionClassName)),this.domNode.draggable=!0,(0,B.jt)(this.domNode,"dragstart")(this.onDragStart,this,this.disposables),this.messageDomNode=(0,h.append)(i.getHTMLElement(),(0,h.$)(".monaco-list-type-filter-message")),this.labelDomNode=(0,h.append)(this.domNode,(0,h.$)("span.label"));var a=(0,h.append)(this.domNode,(0,h.$)(".controls"));this._filterOnType=!!t.options.filterOnType,this.filterOnTypeDomNode=(0,h.append)(a,(0,h.$)("input.filter")),this.filterOnTypeDomNode.type="checkbox",this.filterOnTypeDomNode.checked=this._filterOnType,this.filterOnTypeDomNode.tabIndex=-1,this.updateFilterOnTypeTitleAndIcon(),(0,B.jt)(this.filterOnTypeDomNode,"input")(this.onDidChangeFilterOnType,this,this.disposables),this.clearDomNode=(0,h.append)(a,(0,h.$)("button.clear"+se.cssSelector)),this.clearDomNode.tabIndex=-1,this.clearDomNode.title=(0,C.N)("clear","Clear"),this.keyboardNavigationEventFilter=t.options.keyboardNavigationEventFilter,n.onDidSplice(this.onDidSpliceModel,this,this.disposables),this.updateOptions(t.options)}return(0,d.Z)(e,[{key:"enabled",get:function(){return this._enabled}},{key:"pattern",get:function(){return this._pattern}},{key:"filterOnType",get:function(){return this._filterOnType}},{key:"updateOptions",value:function(e){e.simpleKeyboardNavigation?this.disable():this.enable(),"undefined"!==typeof e.filterOnType&&(this._filterOnType=!!e.filterOnType,this.filterOnTypeDomNode.checked=this._filterOnType,this.updateFilterOnTypeTitleAndIcon()),"undefined"!==typeof e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation),this.tree.refilter(),this.render(),this.automaticKeyboardNavigation||this.onEventOrInput("")}},{key:"enable",value:function(){var e=this;if(!this._enabled){var t=v.ju.chain((0,B.jt)(this.view.getHTMLElement(),"keydown")).filter((function(t){return!(0,g.cK)(t.target)||t.target===e.filterOnTypeDomNode})).filter((function(e){return"Dead"!==e.key&&!/^Media/.test(e.key)})).map((function(e){return new R.y(e)})).filter(this.keyboardNavigationEventFilter||function(){return!0}).filter((function(){return e.automaticKeyboardNavigation||e.triggered})).filter((function(t){return e.keyboardNavigationDelegate.mightProducePrintableCharacter(t)&&!(18===t.keyCode||16===t.keyCode||15===t.keyCode||17===t.keyCode)||(e.pattern.length>0||e.triggered)&&(9===t.keyCode||1===t.keyCode)&&!t.altKey&&!t.ctrlKey&&!t.metaKey||1===t.keyCode&&(ee.dz?t.altKey&&!t.metaKey:t.ctrlKey)&&!t.shiftKey})).forEach((function(e){e.stopPropagation(),e.preventDefault()})).event,n=(0,B.jt)(this.clearDomNode,"click");v.ju.chain(v.ju.any(t,n)).event(this.onEventOrInput,this,this.enabledDisposables),this.filter.pattern="",this.tree.refilter(),this.render(),this._enabled=!0,this.triggered=!1}}},{key:"disable",value:function(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.clear(),this.tree.refilter(),this.render(),this._enabled=!1,this.triggered=!1)}},{key:"onEventOrInput",value:function(e){"string"===typeof e?this.onInput(e):e instanceof MouseEvent||9===e.keyCode||1===e.keyCode&&(ee.dz?e.altKey:e.ctrlKey)?this.onInput(""):1===e.keyCode?this.onInput(0===this.pattern.length?"":this.pattern.substr(0,this.pattern.length-1)):this.onInput(this.pattern+e.browserEvent.key)}},{key:"onInput",value:function(e){var t=this.view.getHTMLElement();e&&!this.domNode.parentElement?t.append(this.domNode):!e&&this.domNode.parentElement&&(this.domNode.remove(),this.tree.domFocus()),this._pattern=e,this._onDidChangePattern.fire(e),this.filter.pattern=e,this.tree.refilter(),e&&this.tree.focusNext(0,!0,void 0,(function(e){return!z.CL.isDefault(e.filterData)}));var n=this.tree.getFocus();if(n.length>0){var i=n[0];null===this.tree.getRelativeTop(i)&&this.tree.reveal(i,.5)}this.render(),e||(this.triggered=!1)}},{key:"onDragStart",value:function(){var e=this,t=this.view.getHTMLElement(),n=(0,h.getDomNodePagePosition)(t).left,i=t.clientWidth,r=i/2,o=this.domNode.clientWidth,a=new f.SL,s=this.positionClassName,u=function(){switch(s){case"nw":e.domNode.style.top="4px",e.domNode.style.left="4px";break;case"ne":e.domNode.style.top="4px",e.domNode.style.left="".concat(i-o-6,"px")}};u(),this.domNode.classList.remove(s),this.domNode.classList.add("dragging"),a.add((0,f.OF)((function(){return e.domNode.classList.remove("dragging")}))),(0,B.jt)(document,"dragover")((function(e){e.preventDefault();var t=e.clientX-n;e.dataTransfer&&(e.dataTransfer.dropEffect="none"),s=t<r?"nw":"ne",u()}),null,a),(0,B.jt)(this.domNode,"dragend")((function(){e.positionClassName=s,e.domNode.className="monaco-list-type-filter ".concat(e.positionClassName),e.domNode.style.top="",e.domNode.style.left="",(0,f.B9)(a)}),null,a),j.P$.CurrentDragAndDropData=new j.TN("vscode-ui"),a.add((0,f.OF)((function(){return j.P$.CurrentDragAndDropData=void 0})))}},{key:"onDidSpliceModel",value:function(){this._enabled&&0!==this.pattern.length&&(this.tree.refilter(),this.render())}},{key:"onDidChangeFilterOnType",value:function(){this.tree.updateOptions({filterOnType:this.filterOnTypeDomNode.checked}),this.tree.refilter(),this.tree.domFocus(),this.render(),this.updateFilterOnTypeTitleAndIcon()}},{key:"updateFilterOnTypeTitleAndIcon",value:function(){var e,t,n,i;this.filterOnType?((e=this.filterOnTypeDomNode.classList).remove.apply(e,(0,A.Z)(ae.classNamesArray)),(t=this.filterOnTypeDomNode.classList).add.apply(t,(0,A.Z)(oe.classNamesArray)),this.filterOnTypeDomNode.title=(0,C.N)("disable filter on type","Disable Filter on Type")):((n=this.filterOnTypeDomNode.classList).remove.apply(n,(0,A.Z)(oe.classNamesArray)),(i=this.filterOnTypeDomNode.classList).add.apply(i,(0,A.Z)(ae.classNamesArray)),this.filterOnTypeDomNode.title=(0,C.N)("enable filter on type","Enable Filter on Type"))}},{key:"render",value:function(){var e=this.filter.totalCount>0&&0===this.filter.matchCount;this.pattern&&this.tree.options.filterOnType&&e?(this.messageDomNode.textContent=(0,C.N)("empty","No elements found"),this._empty=!0):(this.messageDomNode.innerText="",this._empty=!1),this.domNode.classList.toggle("no-matches",e),this.domNode.title=(0,C.N)("found","Matched {0} out of {1} elements",this.filter.matchCount,this.filter.totalCount),this.labelDomNode.textContent=this.pattern.length>16?"\u2026"+this.pattern.substr(this.pattern.length-16):this.pattern,this._onDidChangeEmptyState.fire(this._empty)}},{key:"shouldAllowFocus",value:function(e){return!(this.enabled&&this.pattern&&!this.filterOnType)||(this.filter.totalCount>0&&this.filter.matchCount<=1||!z.CL.isDefault(e.filterData))}},{key:"dispose",value:function(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.dispose(),this._enabled=!1,this.triggered=!1),this._onDidChangePattern.dispose(),(0,f.B9)(this.disposables)}}]),e}();function _e(e){var t=b.Unknown;return(0,h.hasParentWithClass)(e.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?t=b.Twistie:(0,h.hasParentWithClass)(e.browserEvent.target,"monaco-tl-contents","monaco-tl-row")&&(t=b.Element),{browserEvent:e.browserEvent,element:e.element?e.element.element:null,target:t}}function ye(e,t){t(e),e.children.forEach((function(e){return ye(e,t)}))}var be=function(){function e(t){(0,c.Z)(this,e),this.identityProvider=t,this.nodes=[],this._onDidChange=new v.Q5,this.onDidChange=this._onDidChange.event}return(0,d.Z)(e,[{key:"nodeSet",get:function(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}},{key:"set",value:function(e,t){var n;!(null===(n=t)||void 0===n?void 0:n.__forceEvent)&&(0,p.fS)(this.nodes,e)||this._set(e,!1,t)}},{key:"_set",value:function(e,t,n){if(this.nodes=(0,A.Z)(e),this.elements=void 0,this._nodeSet=void 0,!t){var i=this;this._onDidChange.fire({get elements(){return i.get()},browserEvent:n})}}},{key:"get",value:function(){return this.elements||(this.elements=this.nodes.map((function(e){return e.element}))),(0,A.Z)(this.elements)}},{key:"getNodes",value:function(){return this.nodes}},{key:"has",value:function(e){return this.nodeSet.has(e)}},{key:"onDidModelSplice",value:function(e){var t=this,n=e.insertedNodes,i=e.deletedNodes;if(!this.identityProvider){var r=this.createNodeSet(),o=function(e){return r.delete(e)};return i.forEach((function(e){return ye(e,o)})),void this.set((0,A.Z)(r.values()))}var a=new Set,s=function(e){return a.add(t.identityProvider.getId(e.element).toString())};i.forEach((function(e){return ye(e,s)}));var u=new Map,l=function(e){return u.set(t.identityProvider.getId(e.element).toString(),e)};n.forEach((function(e){return ye(e,l)}));var c,d=[],h=(0,I.Z)(this.nodes);try{for(h.s();!(c=h.n()).done;){var f=c.value,p=this.identityProvider.getId(f.element).toString();if(a.has(p)){var g=u.get(p);g&&d.push(g)}else d.push(f)}}catch(v){h.e(v)}finally{h.f()}this._set(d,!0)}},{key:"createNodeSet",value:function(){var e,t=new Set,n=(0,I.Z)(this.nodes);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.add(i)}}catch(r){n.e(r)}finally{n.f()}return t}}]),e}(),we=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e)).tree=i,r}return(0,d.Z)(n,[{key:"onViewPointer",value:function(e){if(!(0,g.cK)(e.browserEvent.target)&&!(0,g.hD)(e.browserEvent.target)){var t=e.element;if(!t)return(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e);var i=e.browserEvent.target,r=i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&e.browserEvent.offsetX<16,o=!1;if((o="function"===typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(t.element):!!this.tree.expandOnlyOnTwistieClick)&&!r&&2!==e.browserEvent.detail)return(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e);if(!this.tree.expandOnDoubleClick&&2===e.browserEvent.detail)return(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e);if(t.collapsible){var u=this.tree.model,l=u.getNodeLocation(t),c=e.browserEvent.altKey;if(this.tree.setFocus([l]),u.setCollapsed(l,void 0,c),o&&r)return}(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e)}}},{key:"onDoubleClick",value:function(e){!e.browserEvent.target.classList.contains("monaco-tl-twistie")&&this.tree.expandOnDoubleClick&&(0,a.Z)((0,s.Z)(n.prototype),"onDoubleClick",this).call(this,e)}}]),n}(g.sx),Ce=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o,a,s,u,l){var d;return(0,c.Z)(this,n),(d=t.call(this,e,i,r,o,l)).focusTrait=a,d.selectionTrait=s,d.anchorTrait=u,d}return(0,d.Z)(n,[{key:"createMouseController",value:function(e){return new we(this,e.tree)}},{key:"splice",value:function(e,t){var i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if((0,a.Z)((0,s.Z)(n.prototype),"splice",this).call(this,e,t,r),0!==r.length){var o,u=[],l=[];r.forEach((function(t,n){i.focusTrait.has(t)&&u.push(e+n),i.selectionTrait.has(t)&&l.push(e+n),i.anchorTrait.has(t)&&(o=e+n)})),u.length>0&&(0,a.Z)((0,s.Z)(n.prototype),"setFocus",this).call(this,(0,p.cU)([].concat((0,A.Z)((0,a.Z)((0,s.Z)(n.prototype),"getFocus",this).call(this)),u))),l.length>0&&(0,a.Z)((0,s.Z)(n.prototype),"setSelection",this).call(this,(0,p.cU)([].concat((0,A.Z)((0,a.Z)((0,s.Z)(n.prototype),"getSelection",this).call(this)),l))),"number"===typeof o&&(0,a.Z)((0,s.Z)(n.prototype),"setAnchor",this).call(this,o)}}},{key:"setFocus",value:function(e,t){var i=this,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,a.Z)((0,s.Z)(n.prototype),"setFocus",this).call(this,e,t),r||this.focusTrait.set(e.map((function(e){return i.element(e)})),t)}},{key:"setSelection",value:function(e,t){var i=this,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,a.Z)((0,s.Z)(n.prototype),"setSelection",this).call(this,e,t),r||this.selectionTrait.set(e.map((function(e){return i.element(e)})),t)}},{key:"setAnchor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,a.Z)((0,s.Z)(n.prototype),"setAnchor",this).call(this,e),t||("undefined"===typeof e?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}]),n}(g.aV),ke=function(){function e(t,n,i,r){var o=this,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};(0,c.Z)(this,e),this._options=a,this.eventBufferer=new v.E7,this.disposables=new f.SL,this._onWillRefilter=new v.Q5,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new v.Q5;var s=new fe(i),u=new v.ZD,l=new v.ZD,d=new pe(l.event);this.renderers=r.map((function(e){return new ge(e,(function(){return o.model}),u.event,d,a)}));var p,m,_,y,b=(0,I.Z)(this.renderers);try{for(b.s();!(p=b.n()).done;){var w=p.value;this.disposables.add(w)}}catch(x){b.e(x)}finally{b.f()}a.keyboardNavigationLabelProvider&&(m=new ve(this,a.keyboardNavigationLabelProvider,a.filter),a=Object.assign(Object.assign({},a),{filter:m}),this.disposables.add(m)),this.focus=new be(a.identityProvider),this.selection=new be(a.identityProvider),this.anchor=new be(a.identityProvider),this.view=new Ce(t,n,s,this.renderers,this.focus,this.selection,this.anchor,Object.assign(Object.assign({},(_=function(){return o.model},(y=a)&&Object.assign(Object.assign({},y),{identityProvider:y.identityProvider&&{getId:function(e){return y.identityProvider.getId(e.element)}},dnd:y.dnd&&new de(_,y.dnd),multipleSelectionController:y.multipleSelectionController&&{isSelectionSingleChangeEvent:function(e){return y.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))},isSelectionRangeChangeEvent:function(e){return y.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))}},accessibilityProvider:y.accessibilityProvider&&Object.assign(Object.assign({},y.accessibilityProvider),{getSetSize:function(e){var t=_(),n=t.getNodeLocation(e),i=t.getParentNodeLocation(n);return t.getNode(i).visibleChildrenCount},getPosInSet:function(e){return e.visibleChildIndex+1},isChecked:y.accessibilityProvider&&y.accessibilityProvider.isChecked?function(e){return y.accessibilityProvider.isChecked(e.element)}:void 0,getRole:y.accessibilityProvider&&y.accessibilityProvider.getRole?function(e){return y.accessibilityProvider.getRole(e.element)}:function(){return"treeitem"},getAriaLabel:function(e){return y.accessibilityProvider.getAriaLabel(e.element)},getWidgetAriaLabel:function(){return y.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:y.accessibilityProvider&&y.accessibilityProvider.getWidgetRole?function(){return y.accessibilityProvider.getWidgetRole()}:function(){return"tree"},getAriaLevel:y.accessibilityProvider&&y.accessibilityProvider.getAriaLevel?function(e){return y.accessibilityProvider.getAriaLevel(e.element)}:function(e){return e.depth},getActiveDescendantId:y.accessibilityProvider.getActiveDescendantId&&function(e){return y.accessibilityProvider.getActiveDescendantId(e.element)}}),keyboardNavigationLabelProvider:y.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},y.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:function(e){return y.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}}),enableKeyboardNavigation:y.simpleKeyboardNavigation}))),{tree:this})),this.model=this.createModel(t,this.view,a),u.input=this.model.onDidChangeCollapseState;var C=v.ju.forEach(this.model.onDidSplice,(function(e){o.eventBufferer.bufferEvents((function(){o.focus.onDidModelSplice(e),o.selection.onDidModelSplice(e)}))}));if(C((function(){return null}),null,this.disposables),l.input=v.ju.chain(v.ju.any(C,this.focus.onDidChange,this.selection.onDidChange)).debounce((function(){return null}),0).map((function(){var e,t=new Set,n=(0,I.Z)(o.focus.getNodes());try{for(n.s();!(e=n.n()).done;){var i=e.value;t.add(i)}}catch(x){n.e(x)}finally{n.f()}var r,a=(0,I.Z)(o.selection.getNodes());try{for(a.s();!(r=a.n()).done;){var s=r.value;t.add(s)}}catch(x){a.e(x)}finally{a.f()}return(0,A.Z)(t.values())})).event,!1!==a.keyboardSupport){var k=v.ju.chain(this.view.onKeyDown).filter((function(e){return!(0,g.cK)(e.target)})).map((function(e){return new R.y(e)}));k.filter((function(e){return 15===e.keyCode})).on(this.onLeftArrow,this,this.disposables),k.filter((function(e){return 17===e.keyCode})).on(this.onRightArrow,this,this.disposables),k.filter((function(e){return 10===e.keyCode})).on(this.onSpace,this,this.disposables)}if(a.keyboardNavigationLabelProvider){var S=a.keyboardNavigationDelegate||g.WK;this.typeFilterController=new me(this,this.model,this.view,m,S),this.focusNavigationFilter=function(e){return o.typeFilterController.shouldAllowFocus(e)},this.disposables.add(this.typeFilterController)}this.styleElement=(0,h.createStyleSheet)(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===he.Always)}return(0,d.Z)(e,[{key:"onDidChangeFocus",get:function(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}},{key:"onDidChangeSelection",get:function(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}},{key:"onMouseDblClick",get:function(){return v.ju.map(this.view.onMouseDblClick,_e)}},{key:"onPointer",get:function(){return v.ju.map(this.view.onPointer,_e)}},{key:"onDidFocus",get:function(){return this.view.onDidFocus}},{key:"onDidChangeCollapseState",get:function(){return this.model.onDidChangeCollapseState}},{key:"expandOnDoubleClick",get:function(){return"undefined"===typeof this._options.expandOnDoubleClick||this._options.expandOnDoubleClick}},{key:"expandOnlyOnTwistieClick",get:function(){return"undefined"===typeof this._options.expandOnlyOnTwistieClick||this._options.expandOnlyOnTwistieClick}},{key:"onDidDispose",get:function(){return this.view.onDidDispose}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._options=Object.assign(Object.assign({},this._options),e);var t,n=(0,I.Z)(this.renderers);try{for(n.s();!(t=n.n()).done;){t.value.updateOptions(e)}}catch(i){n.e(i)}finally{n.f()}this.view.updateOptions({enableKeyboardNavigation:this._options.simpleKeyboardNavigation,automaticKeyboardNavigation:this._options.automaticKeyboardNavigation,smoothScrolling:this._options.smoothScrolling,horizontalScrolling:this._options.horizontalScrolling}),this.typeFilterController&&this.typeFilterController.updateOptions(this._options),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===he.Always)}},{key:"options",get:function(){return this._options}},{key:"getHTMLElement",value:function(){return this.view.getHTMLElement()}},{key:"scrollTop",get:function(){return this.view.scrollTop},set:function(e){this.view.scrollTop=e}},{key:"domFocus",value:function(){this.view.domFocus()}},{key:"layout",value:function(e,t){this.view.layout(e,t)}},{key:"style",value:function(e){var t=".".concat(this.view.domId),n=[];e.treeIndentGuidesStroke&&(n.push(".monaco-list".concat(t,":hover .monaco-tl-indent > .indent-guide, .monaco-list").concat(t,".always .monaco-tl-indent > .indent-guide { border-color: ").concat(e.treeIndentGuidesStroke.transparent(.4),"; }")),n.push(".monaco-list".concat(t," .monaco-tl-indent > .indent-guide.active { border-color: ").concat(e.treeIndentGuidesStroke,"; }"))),this.styleElement.textContent=n.join("\n"),this.view.style(e)}},{key:"collapse",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.model.setCollapsed(e,!0,t)}},{key:"expand",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.model.setCollapsed(e,!1,t)}},{key:"isCollapsible",value:function(e){return this.model.isCollapsible(e)}},{key:"setCollapsible",value:function(e,t){return this.model.setCollapsible(e,t)}},{key:"isCollapsed",value:function(e){return this.model.isCollapsed(e)}},{key:"refilter",value:function(){this._onWillRefilter.fire(void 0),this.model.refilter()}},{key:"setSelection",value:function(e,t){var n=this,i=e.map((function(e){return n.model.getNode(e)}));this.selection.set(i,t);var r=e.map((function(e){return n.model.getListIndex(e)})).filter((function(e){return e>-1}));this.view.setSelection(r,t,!0)}},{key:"getSelection",value:function(){return this.selection.get()}},{key:"setFocus",value:function(e,t){var n=this,i=e.map((function(e){return n.model.getNode(e)}));this.focus.set(i,t);var r=e.map((function(e){return n.model.getListIndex(e)})).filter((function(e){return e>-1}));this.view.setFocus(r,t,!0)}},{key:"focusNext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.focusNavigationFilter;this.view.focusNext(e,t,n,i)}},{key:"getFocus",value:function(){return this.focus.get()}},{key:"reveal",value:function(e,t){this.model.expandTo(e);var n=this.model.getListIndex(e);-1!==n&&this.view.reveal(n,t)}},{key:"getRelativeTop",value:function(e){var t=this.model.getListIndex(e);return-1===t?null:this.view.getRelativeTop(t)}},{key:"onLeftArrow",value:function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n);if(!this.model.setCollapsed(i,!0)){var r=this.model.getParentNodeLocation(i);if(!r)return;var o=this.model.getListIndex(r);this.view.reveal(o),this.view.setFocus([o])}}}},{key:"onRightArrow",value:function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n);if(!this.model.setCollapsed(i,!1)){if(!n.children.some((function(e){return e.visible})))return;var o=this.view.getFocus(),a=(0,r.Z)(o,1)[0]+1;this.view.reveal(a),this.view.setFocus([a])}}}},{key:"onSpace",value:function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n),r=e.browserEvent.altKey;this.model.setCollapsed(i,void 0,r)}}},{key:"dispose",value:function(){(0,f.B9)(this.disposables),this.view.dispose()}}]),e}(),Se=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,c.Z)(this,e),this.user=t,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new X(t,n,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare:function(e,t){return i.sorter.compare(e.element,t.element)}}),this.identityProvider=i.identityProvider}return(0,d.Z)(e,[{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.getElementLocation(e);this._setChildren(i,this.preserveCollapseState(t),n)}},{key:"_setChildren",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),i=arguments.length>2?arguments[2]:void 0,r=new Set,o=new Set;this.model.splice([].concat((0,A.Z)(e),[0]),Number.MAX_VALUE,n,Object.assign(Object.assign({},i),{onDidCreateNode:function(e){var n;if(null!==e.element){var a=e;if(r.add(a.element),t.nodes.set(a.element,a),t.identityProvider){var s=t.identityProvider.getId(a.element).toString();o.add(s),t.nodesByIdentity.set(s,a)}null===(n=i.onDidCreateNode)||void 0===n||n.call(i,a)}},onDidDeleteNode:function(e){var n;if(null!==e.element){var a=e;if(r.has(a.element)||t.nodes.delete(a.element),t.identityProvider){var s=t.identityProvider.getId(a.element).toString();o.has(s)||t.nodesByIdentity.delete(s)}null===(n=i.onDidDeleteNode)||void 0===n||n.call(i,a)}}}))}},{key:"preserveCollapseState",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O.$.empty();return this.sorter&&(t=(0,A.Z)(t).sort(this.sorter.compare.bind(this.sorter))),O.$.map(t,(function(t){var n=e.nodes.get(t.element);if(!n&&e.identityProvider){var i=e.identityProvider.getId(t.element).toString();n=e.nodesByIdentity.get(i)}if(!n)return Object.assign(Object.assign({},t),{children:e.preserveCollapseState(t.children)});var r="boolean"===typeof t.collapsible?t.collapsible:n.collapsible,o="undefined"!==typeof t.collapsed?t.collapsed:n.collapsed;return Object.assign(Object.assign({},t),{collapsible:r,collapsed:o,children:e.preserveCollapseState(t.children)})}))}},{key:"rerender",value:function(e){var t=this.getElementLocation(e);this.model.rerender(t)}},{key:"has",value:function(e){return this.nodes.has(e)}},{key:"getListIndex",value:function(e){var t=this.getElementLocation(e);return this.model.getListIndex(t)}},{key:"getListRenderCount",value:function(e){var t=this.getElementLocation(e);return this.model.getListRenderCount(t)}},{key:"isCollapsible",value:function(e){var t=this.getElementLocation(e);return this.model.isCollapsible(t)}},{key:"setCollapsible",value:function(e,t){var n=this.getElementLocation(e);return this.model.setCollapsible(n,t)}},{key:"isCollapsed",value:function(e){var t=this.getElementLocation(e);return this.model.isCollapsed(t)}},{key:"setCollapsed",value:function(e,t,n){var i=this.getElementLocation(e);return this.model.setCollapsed(i,t,n)}},{key:"expandTo",value:function(e){var t=this.getElementLocation(e);this.model.expandTo(t)}},{key:"refilter",value:function(){this.model.refilter()}},{key:"getNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(null===e)return this.model.getNode(this.model.rootRef);var t=this.nodes.get(e);if(!t)throw new Z(this.user,"Tree element not found: ".concat(e));return t}},{key:"getNodeLocation",value:function(e){return e.element}},{key:"getParentNodeLocation",value:function(e){if(null===e)throw new Z(this.user,"Invalid getParentNodeLocation call");var t=this.nodes.get(e);if(!t)throw new Z(this.user,"Tree element not found: ".concat(e));var n=this.model.getNodeLocation(t),i=this.model.getParentNodeLocation(n);return this.model.getNode(i).element}},{key:"getElementLocation",value:function(e){if(null===e)return[];var t=this.nodes.get(e);if(!t)throw new Z(this.user,"Tree element not found: ".concat(e));return this.model.getNodeLocation(t)}}]),e}();function xe(e){return{element:{elements:[e.element],incompressible:e.incompressible||!1},children:O.$.map(O.$.from(e.children),xe),collapsible:e.collapsible,collapsed:e.collapsed}}function Le(e){for(var t,n,i=[e.element],o=e.incompressible||!1;;){var a=O.$.consume(O.$.from(e.children),2),s=(0,r.Z)(a,2);if(n=s[0],t=s[1],1!==n.length)break;if(n[0].incompressible)break;e=n[0],i.push(e.element)}return{element:{elements:i,incompressible:o},children:O.$.map(O.$.concat(n,t),Le),collapsible:e.collapsible,collapsed:e.collapsed}}function Ee(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t=n<e.element.elements.length-1?[Ee(e,n+1)]:O.$.map(O.$.from(e.children),(function(e){return Ee(e,0)})),0===n&&e.element.incompressible?{element:e.element.elements[n],children:t,incompressible:!0,collapsible:e.collapsible,collapsed:e.collapsed}:{element:e.element.elements[n],children:t,collapsible:e.collapsible,collapsed:e.collapsed}}function Ne(e){return Ee(e,0)}function De(e,t,n){return e.element===t?Object.assign(Object.assign({},e),{children:n}):Object.assign(Object.assign({},e),{children:O.$.map(O.$.from(e.children),(function(e){return De(e,t,n)}))})}var Me=function(e){return{getId:function(t){return t.elements.map((function(t){return e.getId(t).toString()})).join("\0")}}},Te=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,c.Z)(this,e),this.user=t,this.rootRef=null,this.nodes=new Map,this.model=new Se(t,n,i),this.enabled="undefined"===typeof i.compressionEnabled||i.compressionEnabled,this.identityProvider=i.identityProvider}return(0,d.Z)(e,[{key:"onDidSplice",get:function(){return this.model.onDidSplice}},{key:"onDidChangeCollapseState",get:function(){return this.model.onDidChangeCollapseState}},{key:"onDidChangeRenderNodeCount",get:function(){return this.model.onDidChangeRenderNodeCount}},{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2?arguments[2]:void 0,i=n.diffIdentityProvider&&Me(n.diffIdentityProvider);if(null!==e){var r=this.nodes.get(e);if(!r)throw new Error("Unknown compressed tree node");var o=this.model.getNode(r),a=this.model.getParentNodeLocation(r),s=this.model.getNode(a),u=De(Ne(o),e,t),l=(this.enabled?Le:xe)(u),c=s.children.map((function(e){return e===o?l:e}));this._setChildren(s.element,c,{diffIdentityProvider:i,diffDepth:o.depth-s.depth})}else{var d=O.$.map(t,this.enabled?Le:xe);this._setChildren(null,d,{diffIdentityProvider:i,diffDepth:1/0})}}},{key:"setCompressionEnabled",value:function(e){if(e!==this.enabled){this.enabled=e;var t=this.model.getNode().children,n=O.$.map(t,Ne),i=O.$.map(n,e?Le:xe);this._setChildren(null,i,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}}},{key:"_setChildren",value:function(e,t,n){var i=this,r=new Set;this.model.setChildren(e,t,Object.assign(Object.assign({},n),{onDidCreateNode:function(e){var t,n=(0,I.Z)(e.element.elements);try{for(n.s();!(t=n.n()).done;){var o=t.value;r.add(o),i.nodes.set(o,e.element)}}catch(a){n.e(a)}finally{n.f()}},onDidDeleteNode:function(e){var t,n=(0,I.Z)(e.element.elements);try{for(n.s();!(t=n.n()).done;){var o=t.value;r.has(o)||i.nodes.delete(o)}}catch(a){n.e(a)}finally{n.f()}}}))}},{key:"has",value:function(e){return this.nodes.has(e)}},{key:"getListIndex",value:function(e){var t=this.getCompressedNode(e);return this.model.getListIndex(t)}},{key:"getListRenderCount",value:function(e){var t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}},{key:"getNode",value:function(e){if("undefined"===typeof e)return this.model.getNode();var t=this.getCompressedNode(e);return this.model.getNode(t)}},{key:"getNodeLocation",value:function(e){var t=this.model.getNodeLocation(e);return null===t?null:t.elements[t.elements.length-1]}},{key:"getParentNodeLocation",value:function(e){var t=this.getCompressedNode(e),n=this.model.getParentNodeLocation(t);return null===n?null:n.elements[n.elements.length-1]}},{key:"isCollapsible",value:function(e){var t=this.getCompressedNode(e);return this.model.isCollapsible(t)}},{key:"setCollapsible",value:function(e,t){var n=this.getCompressedNode(e);return this.model.setCollapsible(n,t)}},{key:"isCollapsed",value:function(e){var t=this.getCompressedNode(e);return this.model.isCollapsed(t)}},{key:"setCollapsed",value:function(e,t,n){var i=this.getCompressedNode(e);return this.model.setCollapsed(i,t,n)}},{key:"expandTo",value:function(e){var t=this.getCompressedNode(e);this.model.expandTo(t)}},{key:"rerender",value:function(e){var t=this.getCompressedNode(e);this.model.rerender(t)}},{key:"refilter",value:function(){this.model.refilter()}},{key:"getCompressedNode",value:function(e){if(null===e)return null;var t=this.nodes.get(e);if(!t)throw new Z(this.user,"Tree element not found: ".concat(e));return t}}]),e}(),Oe=function(e){return e[e.length-1]},Ie=function(){function e(t,n){(0,c.Z)(this,e),this.unwrapper=t,this.node=n}return(0,d.Z)(e,[{key:"element",get:function(){return null===this.node.element?null:this.unwrapper(this.node.element)}},{key:"children",get:function(){var t=this;return this.node.children.map((function(n){return new e(t.unwrapper,n)}))}},{key:"depth",get:function(){return this.node.depth}},{key:"visibleChildrenCount",get:function(){return this.node.visibleChildrenCount}},{key:"visibleChildIndex",get:function(){return this.node.visibleChildIndex}},{key:"collapsible",get:function(){return this.node.collapsible}},{key:"collapsed",get:function(){return this.node.collapsed}},{key:"visible",get:function(){return this.node.visible}},{key:"filterData",get:function(){return this.node.filterData}}]),e}();var Ae=function(){function e(t,n){var i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,c.Z)(this,e),this.rootRef=null,this.elementMapper=r.elementMapper||Oe;var o=function(e){return i.elementMapper(e.elements)};this.nodeMapper=new F((function(e){return new Ie(o,e)})),this.model=new Te(t,function(e,t){return{splice:function(n,i,r){t.splice(n,i,r.map((function(t){return e.map(t)})))},updateElementHeight:function(e,n){t.updateElementHeight(e,n)}}}(this.nodeMapper,n),function(e,t){return Object.assign(Object.assign({},t),{identityProvider:t.identityProvider&&{getId:function(n){return t.identityProvider.getId(e(n))}},sorter:t.sorter&&{compare:function(e,n){return t.sorter.compare(e.elements[0],n.elements[0])}},filter:t.filter&&{filter:function(n,i){return t.filter.filter(e(n),i)}}})}(o,r))}return(0,d.Z)(e,[{key:"onDidSplice",get:function(){var e=this;return v.ju.map(this.model.onDidSplice,(function(t){var n=t.insertedNodes,i=t.deletedNodes;return{insertedNodes:n.map((function(t){return e.nodeMapper.map(t)})),deletedNodes:i.map((function(t){return e.nodeMapper.map(t)}))}}))}},{key:"onDidChangeCollapseState",get:function(){var e=this;return v.ju.map(this.model.onDidChangeCollapseState,(function(t){var n=t.node,i=t.deep;return{node:e.nodeMapper.map(n),deep:i}}))}},{key:"onDidChangeRenderNodeCount",get:function(){var e=this;return v.ju.map(this.model.onDidChangeRenderNodeCount,(function(t){return e.nodeMapper.map(t)}))}},{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.model.setChildren(e,t,n)}},{key:"setCompressionEnabled",value:function(e){this.model.setCompressionEnabled(e)}},{key:"has",value:function(e){return this.model.has(e)}},{key:"getListIndex",value:function(e){return this.model.getListIndex(e)}},{key:"getListRenderCount",value:function(e){return this.model.getListRenderCount(e)}},{key:"getNode",value:function(e){return this.nodeMapper.map(this.model.getNode(e))}},{key:"getNodeLocation",value:function(e){return e.element}},{key:"getParentNodeLocation",value:function(e){return this.model.getParentNodeLocation(e)}},{key:"isCollapsible",value:function(e){return this.model.isCollapsible(e)}},{key:"setCollapsible",value:function(e,t){return this.model.setCollapsible(e,t)}},{key:"isCollapsed",value:function(e){return this.model.isCollapsed(e)}},{key:"setCollapsed",value:function(e,t,n){return this.model.setCollapsed(e,t,n)}},{key:"expandTo",value:function(e){return this.model.expandTo(e)}},{key:"rerender",value:function(e){return this.model.rerender(e)}},{key:"refilter",value:function(){return this.model.refilter()}},{key:"getCompressedTreeNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.model.getNode(e)}}]),e}(),Re=n(94995),Pe=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Ze=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return(0,c.Z)(this,n),t.call(this,e,i,r,o,a)}return(0,d.Z)(n,[{key:"onDidChangeCollapseState",get:function(){return this.model.onDidChangeCollapseState}},{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2?arguments[2]:void 0;this.model.setChildren(e,t,n)}},{key:"rerender",value:function(e){void 0!==e?this.model.rerender(e):this.view.rerender()}},{key:"hasElement",value:function(e){return this.model.has(e)}},{key:"createModel",value:function(e,t,n){return new Se(e,t,n)}}]),n}(ke),Fe=function(){function e(t,n){(0,c.Z)(this,e),this._compressedTreeNodeProvider=t,this.renderer=n,this.templateId=n.templateId,n.onDidChangeTwistieState&&(this.onDidChangeTwistieState=n.onDidChangeTwistieState)}return(0,d.Z)(e,[{key:"compressedTreeNodeProvider",get:function(){return this._compressedTreeNodeProvider()}},{key:"renderTemplate",value:function(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}},{key:"renderElement",value:function(e,t,n,i){var r=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);1===r.element.elements.length?(n.compressedTreeNode=void 0,this.renderer.renderElement(e,t,n.data,i)):(n.compressedTreeNode=r,this.renderer.renderCompressedElements(r,t,n.data,i))}},{key:"disposeElement",value:function(e,t,n,i){n.compressedTreeNode?this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(n.compressedTreeNode,t,n.data,i):this.renderer.disposeElement&&this.renderer.disposeElement(e,t,n.data,i)}},{key:"disposeTemplate",value:function(e){this.renderer.disposeTemplate(e.data)}},{key:"renderTwistie",value:function(e,t){return!!this.renderer.renderTwistie&&this.renderer.renderTwistie(e,t)}}]),e}();Pe([Re.H],Fe.prototype,"compressedTreeNodeProvider",null);var je=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a){var s,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};(0,c.Z)(this,n);var l=function(){return(0,o.Z)(s)},d=a.map((function(e){return new Fe(l,e)}));return s=t.call(this,e,i,r,d,function(e,t){return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel:function(n){var i;try{i=e().getCompressedTreeNode(n)}catch(r){return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(n)}return 1===i.element.elements.length?t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(n):t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(i.element.elements)}}})}(l,u))}return(0,d.Z)(n,[{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2?arguments[2]:void 0;this.model.setChildren(e,t,n)}},{key:"createModel",value:function(e,t,n){return new Ae(e,t,n)}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),"undefined"!==typeof e.compressionEnabled&&this.model.setCompressionEnabled(e.compressionEnabled)}},{key:"getCompressedTreeNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.model.getCompressedTreeNode(e)}}]),n}(Ze),He=n(87757),Be=n.n(He),ze=n(8729),We=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function Ve(e){return Object.assign(Object.assign({},e),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})}function Ye(e,t){return!!t.parent&&(t.parent===e||Ye(e,t.parent))}function Ue(e,t){return e===t||Ye(e,t)||Ye(t,e)}var Ke=function(){function e(t){(0,c.Z)(this,e),this.node=t}return(0,d.Z)(e,[{key:"element",get:function(){return this.node.element.element}},{key:"children",get:function(){return this.node.children.map((function(t){return new e(t)}))}},{key:"depth",get:function(){return this.node.depth}},{key:"visibleChildrenCount",get:function(){return this.node.visibleChildrenCount}},{key:"visibleChildIndex",get:function(){return this.node.visibleChildIndex}},{key:"collapsible",get:function(){return this.node.collapsible}},{key:"collapsed",get:function(){return this.node.collapsed}},{key:"visible",get:function(){return this.node.visible}},{key:"filterData",get:function(){return this.node.filterData}}]),e}(),qe=function(){function e(t,n,i){(0,c.Z)(this,e),this.renderer=t,this.nodeMapper=n,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=t.templateId}return(0,d.Z)(e,[{key:"renderTemplate",value:function(e){return{templateData:this.renderer.renderTemplate(e)}}},{key:"renderElement",value:function(e,t,n,i){this.renderer.renderElement(this.nodeMapper.map(e),t,n.templateData,i)}},{key:"renderTwistie",value:function(e,t){var n,i;return e.slow?((n=t.classList).add.apply(n,(0,A.Z)(ue.classNamesArray)),!0):((i=t.classList).remove.apply(i,(0,A.Z)(ue.classNamesArray)),!1)}},{key:"disposeElement",value:function(e,t,n,i){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,n.templateData,i)}},{key:"disposeTemplate",value:function(e){this.renderer.disposeTemplate(e.templateData)}},{key:"dispose",value:function(){this.renderedNodes.clear()}}]),e}();function Ge(e){return{browserEvent:e.browserEvent,elements:e.elements.map((function(e){return e.element}))}}function $e(e){return{browserEvent:e.browserEvent,element:e.element&&e.element.element,target:e.target}}var Qe=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e.elements.map((function(e){return e.element})))).data=e,i}return(0,d.Z)(n)}(H.kX);function Xe(e){return e instanceof H.kX?new Qe(e):e}var Je=function(){function e(t){(0,c.Z)(this,e),this.dnd=t}return(0,d.Z)(e,[{key:"getDragURI",value:function(e){return this.dnd.getDragURI(e.element)}},{key:"getDragLabel",value:function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((function(e){return e.element})),t)}},{key:"onDragStart",value:function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(Xe(e),t)}},{key:"onDragOver",value:function(e,t,n,i){return this.dnd.onDragOver(Xe(e),t&&t.element,n,i)}},{key:"drop",value:function(e,t,n,i){this.dnd.drop(Xe(e),t&&t.element,n,i)}},{key:"onDragEnd",value:function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}}]),e}();function et(e){return e&&Object.assign(Object.assign({},e),{collapseByDefault:!0,identityProvider:e.identityProvider&&{getId:function(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new Je(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent:function(t){return e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))},isSelectionRangeChangeEvent:function(t){return e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))}},accessibilityProvider:e.accessibilityProvider&&Object.assign(Object.assign({},e.accessibilityProvider),{getPosInSet:void 0,getSetSize:void 0,getRole:e.accessibilityProvider.getRole?function(t){return e.accessibilityProvider.getRole(t.element)}:function(){return"treeitem"},isChecked:e.accessibilityProvider.isChecked?function(t){var n;return!!(null===(n=e.accessibilityProvider)||void 0===n?void 0:n.isChecked(t.element))}:void 0,getAriaLabel:function(t){return e.accessibilityProvider.getAriaLabel(t.element)},getWidgetAriaLabel:function(){return e.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:e.accessibilityProvider.getWidgetRole?function(){return e.accessibilityProvider.getWidgetRole()}:function(){return"tree"},getAriaLevel:e.accessibilityProvider.getAriaLevel&&function(t){return e.accessibilityProvider.getAriaLevel(t.element)},getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&function(t){return e.accessibilityProvider.getActiveDescendantId(t.element)}}),filter:e.filter&&{filter:function(t,n){return e.filter.filter(t.element,n)}},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:function(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}),sorter:void 0,expandOnlyOnTwistieClick:"undefined"===typeof e.expandOnlyOnTwistieClick?void 0:"function"!==typeof e.expandOnlyOnTwistieClick?e.expandOnlyOnTwistieClick:function(t){return e.expandOnlyOnTwistieClick(t.element)},additionalScrollHeight:e.additionalScrollHeight})}function tt(e,t){t(e),e.children.forEach((function(e){return tt(e,t)}))}var nt=function(){function e(t,n,i,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};(0,c.Z)(this,e),this.user=t,this.dataSource=o,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new v.Q5,this._onDidChangeNodeSlowState=new v.Q5,this.nodeMapper=new F((function(e){return new Ke(e)})),this.disposables=new f.SL,this.identityProvider=a.identityProvider,this.autoExpandSingleChildren="undefined"!==typeof a.autoExpandSingleChildren&&a.autoExpandSingleChildren,this.sorter=a.sorter,this.collapseByDefault=a.collapseByDefault,this.tree=this.createTree(t,n,i,r,a),this.root=Ve({element:void 0,parent:null,hasChildren:!0}),this.identityProvider&&(this.root=Object.assign(Object.assign({},this.root),{id:null})),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}return(0,d.Z)(e,[{key:"onDidChangeFocus",get:function(){return v.ju.map(this.tree.onDidChangeFocus,Ge)}},{key:"onDidChangeSelection",get:function(){return v.ju.map(this.tree.onDidChangeSelection,Ge)}},{key:"onMouseDblClick",get:function(){return v.ju.map(this.tree.onMouseDblClick,$e)}},{key:"onPointer",get:function(){return v.ju.map(this.tree.onPointer,$e)}},{key:"onDidFocus",get:function(){return this.tree.onDidFocus}},{key:"onDidDispose",get:function(){return this.tree.onDidDispose}},{key:"createTree",value:function(e,t,n,i,r){var o=this,a=new fe(n),s=i.map((function(e){return new qe(e,o.nodeMapper,o._onDidChangeNodeSlowState.event)})),u=et(r)||{};return new Ze(e,t,a,s,u)}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.tree.updateOptions(e)}},{key:"getHTMLElement",value:function(){return this.tree.getHTMLElement()}},{key:"scrollTop",get:function(){return this.tree.scrollTop},set:function(e){this.tree.scrollTop=e}},{key:"domFocus",value:function(){this.tree.domFocus()}},{key:"layout",value:function(e,t){this.tree.layout(e,t)}},{key:"style",value:function(e){this.tree.style(e)}},{key:"getInput",value:function(){return this.root.element}},{key:"setInput",value:function(e,t){return We(this,void 0,void 0,Be().mark((function n(){var i;return Be().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return this.refreshPromises.forEach((function(e){return e.cancel()})),this.refreshPromises.clear(),this.root.element=e,i=t&&{viewState:t,focus:[],selection:[]},n.next=6,this._updateChildren(e,!0,!1,i);case 6:i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&"number"===typeof t.scrollTop&&(this.scrollTop=t.scrollTop);case 8:case"end":return n.stop()}}),n,this)})))}},{key:"_updateChildren",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.root.element,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;return We(this,void 0,void 0,Be().mark((function o(){var a;return Be().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if("undefined"!==typeof this.root.element){o.next=2;break}throw new Z(this.user,"Tree input not set");case 2:if(!this.root.refreshPromise){o.next=7;break}return o.next=5,this.root.refreshPromise;case 5:return o.next=7,v.ju.toPromise(this._onDidRender.event);case 7:return a=this.getDataNode(e),o.next=10,this.refreshAndRenderNode(a,t,i,r);case 10:if(n)try{this.tree.rerender(a)}catch(s){}case 11:case"end":return o.stop()}}),o,this)})))}},{key:"rerender",value:function(e){if(void 0!==e&&e!==this.root.element){var t=this.getDataNode(e);this.tree.rerender(t)}else this.tree.rerender()}},{key:"collapse",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getDataNode(e);return this.tree.collapse(n===this.root?null:n,t)}},{key:"expand",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return We(this,void 0,void 0,Be().mark((function n(){var i,r;return Be().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if("undefined"!==typeof this.root.element){n.next=2;break}throw new Z(this.user,"Tree input not set");case 2:if(!this.root.refreshPromise){n.next=7;break}return n.next=5,this.root.refreshPromise;case 5:return n.next=7,v.ju.toPromise(this._onDidRender.event);case 7:if(i=this.getDataNode(e),!this.tree.hasElement(i)||this.tree.isCollapsible(i)){n.next=10;break}return n.abrupt("return",!1);case 10:if(!i.refreshPromise){n.next=15;break}return n.next=13,this.root.refreshPromise;case 13:return n.next=15,v.ju.toPromise(this._onDidRender.event);case 15:if(i===this.root||i.refreshPromise||this.tree.isCollapsed(i)){n.next=17;break}return n.abrupt("return",!1);case 17:if(r=this.tree.expand(i===this.root?null:i,t),!i.refreshPromise){n.next=23;break}return n.next=21,this.root.refreshPromise;case 21:return n.next=23,v.ju.toPromise(this._onDidRender.event);case 23:return n.abrupt("return",r);case 24:case"end":return n.stop()}}),n,this)})))}},{key:"setSelection",value:function(e,t){var n=this,i=e.map((function(e){return n.getDataNode(e)}));this.tree.setSelection(i,t)}},{key:"getSelection",value:function(){return this.tree.getSelection().map((function(e){return e.element}))}},{key:"setFocus",value:function(e,t){var n=this,i=e.map((function(e){return n.getDataNode(e)}));this.tree.setFocus(i,t)}},{key:"getFocus",value:function(){return this.tree.getFocus().map((function(e){return e.element}))}},{key:"reveal",value:function(e,t){this.tree.reveal(this.getDataNode(e),t)}},{key:"getDataNode",value:function(e){var t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new Z(this.user,"Data tree node not found: ".concat(e));return t}},{key:"refreshAndRenderNode",value:function(e,t,n,i){return We(this,void 0,void 0,Be().mark((function r(){return Be().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.refreshNode(e,t,n);case 2:this.render(e,n,i);case 3:case"end":return r.stop()}}),r,this)})))}},{key:"refreshNode",value:function(e,t,n){return We(this,void 0,void 0,Be().mark((function i(){var r,o=this;return Be().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(this.subTreeRefreshPromises.forEach((function(i,a){!r&&Ue(a,e)&&(r=i.then((function(){return o.refreshNode(e,t,n)})))})),!r){i.next=3;break}return i.abrupt("return",r);case 3:return i.abrupt("return",this.doRefreshSubTree(e,t,n));case 4:case"end":return i.stop()}}),i,this)})))}},{key:"doRefreshSubTree",value:function(e,t,n){return We(this,void 0,void 0,Be().mark((function i(){var r,o,a=this;return Be().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return e.refreshPromise=new Promise((function(e){return r=e})),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally((function(){e.refreshPromise=void 0,a.subTreeRefreshPromises.delete(e)})),i.prev=3,i.next=6,this.doRefreshNode(e,t,n);case 6:return o=i.sent,e.stale=!1,i.next=10,J.jT.settled(o.map((function(e){return a.doRefreshSubTree(e,t,n)})));case 10:return i.prev=10,r(),i.finish(10);case 13:case"end":return i.stop()}}),i,this,[[3,,10,13]])})))}},{key:"doRefreshNode",value:function(e,t,n){return We(this,void 0,void 0,Be().mark((function i(){var r,o,a,s=this;return Be().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return e.hasChildren=!!this.dataSource.hasChildren(e.element),e.hasChildren?((o=(0,J.Vs)(800)).then((function(){e.slow=!0,s._onDidChangeNodeSlowState.fire(e)}),(function(e){return null})),r=this.doGetChildren(e).finally((function(){return o.cancel()}))):r=Promise.resolve(O.$.empty()),i.prev=2,i.next=5,r;case 5:return a=i.sent,i.abrupt("return",this.setChildren(e,a,t,n));case 9:if(i.prev=9,i.t0=i.catch(2),e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),!(0,ze.VV)(i.t0)){i.next=14;break}return i.abrupt("return",[]);case 14:throw i.t0;case 15:return i.prev=15,e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e)),i.finish(15);case 18:case"end":return i.stop()}}),i,this,[[2,9,15,18]])})))}},{key:"doGetChildren",value:function(e){var t=this,n=this.refreshPromises.get(e);return n||(n=(0,J.PG)((function(){return We(t,void 0,void 0,Be().mark((function t(){var n;return Be().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.dataSource.getChildren(e.element);case 2:return n=t.sent,t.abrupt("return",this.processChildren(n));case 4:case"end":return t.stop()}}),t,this)})))})),this.refreshPromises.set(e,n),n.finally((function(){t.refreshPromises.delete(e)})))}},{key:"_onDidChangeCollapseState",value:function(e){var t=e.node,n=e.deep;null!==t.element&&!t.collapsed&&t.element.stale&&(n?this.collapse(t.element.element):this.refreshAndRenderNode(t.element,!1).catch(ze.dL))}},{key:"setChildren",value:function(e,t,n,i){var r,o=this,a=(0,A.Z)(t);if(0===e.children.length&&0===a.length)return[];var s,u=new Map,l=new Map,c=(0,I.Z)(e.children);try{for(c.s();!(s=c.n()).done;){var d=s.value;if(u.set(d.element,d),this.identityProvider){var h=this.tree.isCollapsed(d);l.set(d.id,{node:d,collapsed:h})}}}catch(b){c.e(b)}finally{c.f()}var f,p=[],g=a.map((function(t){var r=!!o.dataSource.hasChildren(t);if(!o.identityProvider){var a=Ve({element:t,parent:e,hasChildren:r});return r&&o.collapseByDefault&&!o.collapseByDefault(t)&&(a.collapsedByDefault=!1,p.push(a)),a}var s=o.identityProvider.getId(t).toString(),c=l.get(s);if(c){var d=c.node;return u.delete(d.element),o.nodes.delete(d.element),o.nodes.set(t,d),d.element=t,d.hasChildren=r,n?c.collapsed?(d.children.forEach((function(e){return tt(e,(function(e){return o.nodes.delete(e.element)}))})),d.children.splice(0,d.children.length),d.stale=!0):p.push(d):r&&o.collapseByDefault&&!o.collapseByDefault(t)&&(d.collapsedByDefault=!1,p.push(d)),d}var h=Ve({element:t,parent:e,id:s,hasChildren:r});return i&&i.viewState.focus&&i.viewState.focus.indexOf(s)>-1&&i.focus.push(h),i&&i.viewState.selection&&i.viewState.selection.indexOf(s)>-1&&i.selection.push(h),i&&i.viewState.expanded&&i.viewState.expanded.indexOf(s)>-1?p.push(h):r&&o.collapseByDefault&&!o.collapseByDefault(t)&&(h.collapsedByDefault=!1,p.push(h)),h})),v=(0,I.Z)(u.values());try{for(v.s();!(f=v.n()).done;){tt(f.value,(function(e){return o.nodes.delete(e.element)}))}}catch(b){v.e(b)}finally{v.f()}var m,_=(0,I.Z)(g);try{for(_.s();!(m=_.n()).done;){var y=m.value;this.nodes.set(y.element,y)}}catch(b){_.e(b)}finally{_.f()}return(r=e.children).splice.apply(r,[0,e.children.length].concat((0,A.Z)(g))),e!==this.root&&this.autoExpandSingleChildren&&1===g.length&&0===p.length&&(g[0].collapsedByDefault=!1,p.push(g[0])),p}},{key:"render",value:function(e,t,n){var i=this,r=e.children.map((function(e){return i.asTreeElement(e,t)})),o=n&&Object.assign(Object.assign({},n),{diffIdentityProvider:n.diffIdentityProvider&&{getId:function(e){return n.diffIdentityProvider.getId(e.element)}}});this.tree.setChildren(e===this.root?null:e,r,o),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}},{key:"asTreeElement",value:function(e,t){var n,i=this;return e.stale?{element:e,collapsible:e.hasChildren,collapsed:!0}:(n=!(t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1)&&e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?O.$.map(e.children,(function(e){return i.asTreeElement(e,t)})):[],collapsible:e.hasChildren,collapsed:n})}},{key:"processChildren",value:function(e){return this.sorter&&(e=(0,A.Z)(e).sort(this.sorter.compare.bind(this.sorter))),e}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}(),it=function(){function e(t){(0,c.Z)(this,e),this.node=t}return(0,d.Z)(e,[{key:"element",get:function(){return{elements:this.node.element.elements.map((function(e){return e.element})),incompressible:this.node.element.incompressible}}},{key:"children",get:function(){return this.node.children.map((function(t){return new e(t)}))}},{key:"depth",get:function(){return this.node.depth}},{key:"visibleChildrenCount",get:function(){return this.node.visibleChildrenCount}},{key:"visibleChildIndex",get:function(){return this.node.visibleChildIndex}},{key:"collapsible",get:function(){return this.node.collapsible}},{key:"collapsed",get:function(){return this.node.collapsed}},{key:"visible",get:function(){return this.node.visible}},{key:"filterData",get:function(){return this.node.filterData}}]),e}(),rt=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.renderer=t,this.nodeMapper=n,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=r,this.renderedNodes=new Map,this.disposables=[],this.templateId=t.templateId}return(0,d.Z)(e,[{key:"renderTemplate",value:function(e){return{templateData:this.renderer.renderTemplate(e)}}},{key:"renderElement",value:function(e,t,n,i){this.renderer.renderElement(this.nodeMapper.map(e),t,n.templateData,i)}},{key:"renderCompressedElements",value:function(e,t,n,i){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,n.templateData,i)}},{key:"renderTwistie",value:function(e,t){var n,i;return e.slow?((n=t.classList).add.apply(n,(0,A.Z)(ue.classNamesArray)),!0):((i=t.classList).remove.apply(i,(0,A.Z)(ue.classNamesArray)),!1)}},{key:"disposeElement",value:function(e,t,n,i){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,n.templateData,i)}},{key:"disposeCompressedElements",value:function(e,t,n,i){this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(e),t,n.templateData,i)}},{key:"disposeTemplate",value:function(e){this.renderer.disposeTemplate(e.templateData)}},{key:"dispose",value:function(){this.renderedNodes.clear(),this.disposables=(0,f.B9)(this.disposables)}}]),e}();var ot=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o,a,s){var u,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};return(0,c.Z)(this,n),(u=t.call(this,e,i,r,a,s,l)).compressionDelegate=o,u.compressibleNodeMapper=new F((function(e){return new it(e)})),u.filter=l.filter,u}return(0,d.Z)(n,[{key:"createTree",value:function(e,t,n,i,r){var o=this,a=new fe(n),s=i.map((function(e){return new rt(e,o.nodeMapper,(function(){return o.compressibleNodeMapper}),o._onDidChangeNodeSlowState.event)})),u=function(e){var t=e&&et(e);return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},t.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel:function(t){return e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map((function(e){return e.element})))}})})}(r)||{};return new je(e,t,a,s,u)}},{key:"asTreeElement",value:function(e,t){return Object.assign({incompressible:this.compressionDelegate.isIncompressible(e.element)},(0,a.Z)((0,s.Z)(n.prototype),"asTreeElement",this).call(this,e,t))}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.tree.updateOptions(e)}},{key:"render",value:function(e,t){var i=this;if(!this.identityProvider)return(0,a.Z)((0,s.Z)(n.prototype),"render",this).call(this,e,t);var r=function(e){return i.identityProvider.getId(e).toString()},o=function(e){var t,n=new Set,o=(0,I.Z)(e);try{for(o.s();!(t=o.n()).done;){var a=t.value,s=i.tree.getCompressedTreeNode(a===i.root?null:a);if(s.element){var u,l=(0,I.Z)(s.element.elements);try{for(l.s();!(u=l.n()).done;){var c=u.value;n.add(r(c.element))}}catch(d){l.e(d)}finally{l.f()}}}}catch(d){o.e(d)}finally{o.f()}return n},u=o(this.tree.getSelection()),l=o(this.tree.getFocus());(0,a.Z)((0,s.Z)(n.prototype),"render",this).call(this,e,t);var c=this.getSelection(),d=!1,h=this.getFocus(),f=!1;!function e(t){var n=t.element;if(n)for(var i=0;i<n.elements.length;i++){var o=r(n.elements[i].element),a=n.elements[n.elements.length-1].element;u.has(o)&&-1===c.indexOf(a)&&(c.push(a),d=!0),l.has(o)&&-1===h.indexOf(a)&&(h.push(a),f=!0)}t.children.forEach(e)}(this.tree.getCompressedTreeNode(e===this.root?null:e)),d&&this.setSelection(c),f&&this.setFocus(h)}},{key:"processChildren",value:function(e){var t=this;return this.filter&&(e=O.$.filter(e,(function(e){var n,i=t.filter.filter(e,1),r="boolean"===typeof(n=i)?n?1:0:G(n)?$(n.visibility):$(n);if(2===r)throw new Error("Recursive tree visibility not supported in async data compressed trees");return 1===r}))),(0,a.Z)((0,s.Z)(n.prototype),"processChildren",this).call(this,e)}}]),n}(nt);var at=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o,a){var s,u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return(0,c.Z)(this,n),(s=t.call(this,e,i,r,o,u)).user=e,s.dataSource=a,s.identityProvider=u.identityProvider,s}return(0,d.Z)(n,[{key:"createModel",value:function(e,t,n){return new Se(e,t,n)}}]),n}(ke),st=n(40782),ut=n(44393),lt=function(){function e(t,n,i){(0,c.Z)(this,e),this.columns=t,this.getColumnSize=i,this.templateId=e.TemplateId,this.renderedTemplates=new Set;var r=new Map(n.map((function(e){return[e.templateId,e]})));this.renderers=[];var o,a=(0,I.Z)(t);try{for(a.s();!(o=a.n()).done;){var s=o.value,u=r.get(s.templateId);if(!u)throw new Error("Table cell renderer for template id ".concat(s.templateId," not found."));this.renderers.push(u)}}catch(l){a.e(l)}finally{a.f()}}return(0,d.Z)(e,[{key:"renderTemplate",value:function(e){for(var t=(0,h.append)(e,(0,h.$)(".monaco-table-tr")),n=[],i=[],r=0;r<this.columns.length;r++){var o=this.renderers[r],a=(0,h.append)(t,(0,h.$)(".monaco-table-td",{"data-col-index":r}));a.style.width="".concat(this.getColumnSize(r),"px"),n.push(a),i.push(o.renderTemplate(a))}var s={container:e,cellContainers:n,cellTemplateData:i};return this.renderedTemplates.add(s),s}},{key:"renderElement",value:function(e,t,n,i){for(var r=0;r<this.columns.length;r++){var o=this.columns[r].project(e);this.renderers[r].renderElement(o,t,n.cellTemplateData[r],i)}}},{key:"disposeElement",value:function(e,t,n,i){for(var r=0;r<this.columns.length;r++){var o=this.renderers[r];if(o.disposeElement){var a=this.columns[r].project(e);o.disposeElement(a,t,n.cellTemplateData[r],i)}}}},{key:"disposeTemplate",value:function(e){for(var t=0;t<this.columns.length;t++){this.renderers[t].disposeTemplate(e.cellTemplateData[t])}(0,h.clearNode)(e.container),this.renderedTemplates.delete(e)}},{key:"layoutColumn",value:function(e,t){var n,i=(0,I.Z)(this.renderedTemplates);try{for(i.s();!(n=i.n()).done;){n.value.cellContainers[e].style.width="".concat(t,"px")}}catch(r){i.e(r)}finally{i.f()}}}]),e}();lt.TemplateId="row";var ct,dt=function(){function e(t,n){(0,c.Z)(this,e),this.column=t,this.index=n,this._onDidLayout=new v.Q5,this.onDidLayout=this._onDidLayout.event,this.element=(0,h.$)(".monaco-table-th",{"data-col-index":n,title:t.tooltip},t.label)}return(0,d.Z)(e,[{key:"minimumSize",get:function(){var e;return null!==(e=this.column.minimumWidth)&&void 0!==e?e:120}},{key:"maximumSize",get:function(){var e;return null!==(e=this.column.maximumWidth)&&void 0!==e?e:Number.POSITIVE_INFINITY}},{key:"onDidChange",get:function(){var e;return null!==(e=this.column.onDidChangeWidthConstraints)&&void 0!==e?e:v.ju.None}},{key:"layout",value:function(e){this._onDidLayout.fire([this.index,e])}}]),e}(),ht=function(){function e(t,n,i,o,a,s){var u=this;(0,c.Z)(this,e),this.virtualDelegate=i,this.domId="table_id_".concat(++e.InstanceCount),this.cachedHeight=0,this.domNode=(0,h.append)(n,(0,h.$)(".monaco-table.".concat(this.domId)));var l=o.map((function(e,t){return new dt(e,t)})),d={size:l.reduce((function(e,t){return e+t.column.weight}),0),views:l.map((function(e){return{size:e.column.weight,view:e}}))};this.splitview=new ut.z(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:function(){return u.cachedHeight},descriptor:d}),this.splitview.el.style.height="".concat(i.headerRowHeight,"px"),this.splitview.el.style.lineHeight="".concat(i.headerRowHeight,"px");var f,p=new lt(o,a,(function(e){return u.splitview.getViewSize(e)}));this.list=new g.aV(t,this.domNode,(f=i,{getHeight:function(e){return f.getHeight(e)},getTemplateId:function(){return lt.TemplateId}}),[p],s),this.columnLayoutDisposable=v.ju.any.apply(v.ju,(0,A.Z)(l.map((function(e){return e.onDidLayout}))))((function(e){var t=(0,r.Z)(e,2),n=t[0],i=t[1];return p.layoutColumn(n,i)})),this.styleElement=(0,h.createStyleSheet)(this.domNode),this.style({})}return(0,d.Z)(e,[{key:"onDidChangeFocus",get:function(){return this.list.onDidChangeFocus}},{key:"onDidChangeSelection",get:function(){return this.list.onDidChangeSelection}},{key:"onMouseDblClick",get:function(){return this.list.onMouseDblClick}},{key:"onPointer",get:function(){return this.list.onPointer}},{key:"onDidFocus",get:function(){return this.list.onDidFocus}},{key:"onDidDispose",get:function(){return this.list.onDidDispose}},{key:"updateOptions",value:function(e){this.list.updateOptions(e)}},{key:"splice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];this.list.splice(e,t,n)}},{key:"getHTMLElement",value:function(){return this.domNode}},{key:"style",value:function(e){var t=[];t.push(".monaco-table.".concat(this.domId," > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ").concat(this.virtualDelegate.headerRowHeight+1,"px;\n\t\t\theight: calc(100% - ").concat(this.virtualDelegate.headerRowHeight,"px);\n\t\t}")),this.styleElement.textContent=t.join("\n"),this.list.style(e)}},{key:"getSelectedElements",value:function(){return this.list.getSelectedElements()}},{key:"getSelection",value:function(){return this.list.getSelection()}},{key:"getFocus",value:function(){return this.list.getFocus()}},{key:"dispose",value:function(){this.splitview.dispose(),this.list.dispose(),this.columnLayoutDisposable.dispose()}}]),e}();ht.InstanceCount=0;var ft=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},pt=function(e,t){return function(n,i){t(n,i,e)}},gt=(0,L.yh)("listService"),vt=function(){function e(t){(0,c.Z)(this,e),this._themeService=t,this.disposables=new f.SL,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}return(0,d.Z)(e,[{key:"lastFocusedList",get:function(){return this._lastFocusedWidget}},{key:"register",value:function(e,t){var n=this;if(!this._hasCreatedStyleController){this._hasCreatedStyleController=!0;var i=new g.wD((0,h.createStyleSheet)(),"");this.disposables.add((0,D.Jl)(i,this._themeService))}if(this.lists.some((function(t){return t.widget===e})))throw new Error("Cannot register the same widget multiple times");var r={widget:e,extraContextKeys:t};return this.lists.push(r),e.getHTMLElement()===document.activeElement&&(this._lastFocusedWidget=e),(0,f.F8)(e.onDidFocus((function(){return n._lastFocusedWidget=e})),(0,f.OF)((function(){return n.lists.splice(n.lists.indexOf(r),1)})),e.onDidDispose((function(){n.lists=n.lists.filter((function(e){return e!==r})),n._lastFocusedWidget===e&&(n._lastFocusedWidget=void 0)})))}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}();vt=ft([pt(0,M.XE)],vt);var mt=new x.uy("listFocus",!0),_t=new x.uy("listSupportsMultiselect",!0),yt=x.Ao.and(mt,x.Ao.not(T.d)),bt=new x.uy("listHasSelectionOrFocus",!1),wt=new x.uy("listDoubleSelection",!1),Ct=new x.uy("listMultiSelection",!1),kt=new x.uy("listSelectionNavigation",!1),St=new x.uy("listSupportsKeyboardNavigation",!0),xt="listAutomaticKeyboardNavigation",Lt=new x.uy(xt,!0),Et=!1;function Nt(e,t){var n=e.createScoped(t.getHTMLElement());return mt.bindTo(n),n}var Dt="workbench.list.multiSelectModifier",Mt="workbench.list.openMode",Tt="workbench.list.horizontalScrolling",Ot="workbench.list.keyboardNavigation",It="workbench.list.automaticKeyboardNavigation",At="workbench.tree.indent",Rt="workbench.tree.renderIndentGuides",Pt="workbench.list.smoothScrolling",Zt="workbench.tree.expandMode";function Ft(e){return"alt"===e.getValue(Dt)}var jt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this)).configurationService=e,i.useAltAsMultipleSelectionModifier=Ft(e),i.registerListeners(),i}return(0,d.Z)(n,[{key:"registerListeners",value:function(){var e=this;this._register(this.configurationService.onDidChangeConfiguration((function(t){t.affectsConfiguration(Dt)&&(e.useAltAsMultipleSelectionModifier=Ft(e.configurationService))})))}},{key:"isSelectionSingleChangeEvent",value:function(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:(0,g.Zo)(e)}},{key:"isSelectionRangeChangeEvent",value:function(e){return(0,g.wn)(e)}}]),n}(f.JT);function Ht(e,t,n){var i=new f.SL,r=Object.assign({},e);if(!1!==e.multipleSelectionSupport&&!e.multipleSelectionController){var o=new jt(t);r.multipleSelectionController=o,i.add(o)}return r.keyboardNavigationDelegate={mightProducePrintableCharacter:function(e){return n.mightProducePrintableCharacter(e)}},r.smoothScrolling=t.getValue(Pt),[r,i]}var Bt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,a,s,u,l,d,h,f,p){var g;(0,c.Z)(this,n);var v="undefined"!==typeof u.horizontalScrolling?u.horizontalScrolling:f.getValue(Tt),m=Ht(u,f,p),_=(0,r.Z)(m,2),y=_[0],b=_[1];return(g=t.call(this,e,i,a,s,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,D.o)(h.getColorTheme(),D.O2)),y),{horizontalScrolling:v}))).disposables.add(b),g.contextKeyService=Nt(l,(0,o.Z)(g)),g.themeService=h,_t.bindTo(g.contextKeyService).set(!(!1===u.multipleSelectionSupport)),kt.bindTo(g.contextKeyService).set(Boolean(u.selectionNavigation)),g.listHasSelectionOrFocus=bt.bindTo(g.contextKeyService),g.listDoubleSelection=wt.bindTo(g.contextKeyService),g.listMultiSelection=Ct.bindTo(g.contextKeyService),g.horizontalScrolling=u.horizontalScrolling,g._useAltAsMultipleSelectionModifier=Ft(f),g.disposables.add(g.contextKeyService),g.disposables.add(d.register((0,o.Z)(g))),u.overrideStyles&&g.updateStyles(u.overrideStyles),g.disposables.add(g.onDidChangeSelection((function(){var e=g.getSelection(),t=g.getFocus();g.contextKeyService.bufferChangeEvents((function(){g.listHasSelectionOrFocus.set(e.length>0||t.length>0),g.listMultiSelection.set(e.length>1),g.listDoubleSelection.set(2===e.length)}))}))),g.disposables.add(g.onDidChangeFocus((function(){var e=g.getSelection(),t=g.getFocus();g.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),g.disposables.add(f.onDidChangeConfiguration((function(e){e.affectsConfiguration(Dt)&&(g._useAltAsMultipleSelectionModifier=Ft(f));var t={};if(e.affectsConfiguration(Tt)&&void 0===g.horizontalScrolling){var n=f.getValue(Tt);t=Object.assign(Object.assign({},t),{horizontalScrolling:n})}if(e.affectsConfiguration(Pt)){var i=f.getValue(Pt);t=Object.assign(Object.assign({},t),{smoothScrolling:i})}Object.keys(t).length>0&&g.updateOptions(t)}))),g.navigator=new Yt((0,o.Z)(g),Object.assign({configurationService:f},u)),g.disposables.add(g.navigator),g}return(0,d.Z)(n,[{key:"updateOptions",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.updateStyles(e.overrideStyles)}},{key:"updateStyles",value:function(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,D.Jl)(this,this.themeService,e)}},{key:"dispose",value:function(){var e;null===(e=this._styler)||void 0===e||e.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(g.aV);Bt=ft([pt(5,x.i6),pt(6,gt),pt(7,M.XE),pt(8,k.Ui),pt(9,E.d)],Bt);var zt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,a,s,u,l,d,h,p,g){var v;(0,c.Z)(this,n);var m="undefined"!==typeof u.horizontalScrolling?u.horizontalScrolling:p.getValue(Tt),_=Ht(u,p,g),y=(0,r.Z)(_,2),b=y[0],w=y[1];return(v=t.call(this,e,i,a,s,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,D.o)(h.getColorTheme(),D.O2)),b),{horizontalScrolling:m}))).disposables=new f.SL,v.disposables.add(w),v.contextKeyService=Nt(l,(0,o.Z)(v)),v.themeService=h,v.horizontalScrolling=u.horizontalScrolling,_t.bindTo(v.contextKeyService).set(!(!1===u.multipleSelectionSupport)),kt.bindTo(v.contextKeyService).set(Boolean(u.selectionNavigation)),v._useAltAsMultipleSelectionModifier=Ft(p),v.disposables.add(v.contextKeyService),v.disposables.add(d.register((0,o.Z)(v))),u.overrideStyles&&v.updateStyles(u.overrideStyles),u.overrideStyles&&v.disposables.add((0,D.Jl)((0,o.Z)(v),h,u.overrideStyles)),v.disposables.add(p.onDidChangeConfiguration((function(e){e.affectsConfiguration(Dt)&&(v._useAltAsMultipleSelectionModifier=Ft(p));var t={};if(e.affectsConfiguration(Tt)&&void 0===v.horizontalScrolling){var n=p.getValue(Tt);t=Object.assign(Object.assign({},t),{horizontalScrolling:n})}if(e.affectsConfiguration(Pt)){var i=p.getValue(Pt);t=Object.assign(Object.assign({},t),{smoothScrolling:i})}Object.keys(t).length>0&&v.updateOptions(t)}))),v.navigator=new Yt((0,o.Z)(v),Object.assign({configurationService:p},u)),v.disposables.add(v.navigator),v}return(0,d.Z)(n,[{key:"updateOptions",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.updateStyles(e.overrideStyles)}},{key:"updateStyles",value:function(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,D.Jl)(this,this.themeService,e)}},{key:"dispose",value:function(){var e;null===(e=this._styler)||void 0===e||e.dispose(),this.disposables.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(w);zt=ft([pt(5,x.i6),pt(6,gt),pt(7,M.XE),pt(8,k.Ui),pt(9,E.d)],zt);var Wt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,a,s,u,l,d,h,p,g,v){var m;(0,c.Z)(this,n);var _="undefined"!==typeof l.horizontalScrolling?l.horizontalScrolling:g.getValue(Tt),y=Ht(l,g,v),b=(0,r.Z)(y,2),w=b[0],C=b[1];return(m=t.call(this,e,i,a,s,u,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,D.o)(p.getColorTheme(),D.O2)),w),{horizontalScrolling:_}))).disposables=new f.SL,m.disposables.add(C),m.contextKeyService=Nt(d,(0,o.Z)(m)),m.themeService=p,_t.bindTo(m.contextKeyService).set(!(!1===l.multipleSelectionSupport)),kt.bindTo(m.contextKeyService).set(Boolean(l.selectionNavigation)),m.listHasSelectionOrFocus=bt.bindTo(m.contextKeyService),m.listDoubleSelection=wt.bindTo(m.contextKeyService),m.listMultiSelection=Ct.bindTo(m.contextKeyService),m.horizontalScrolling=l.horizontalScrolling,m._useAltAsMultipleSelectionModifier=Ft(g),m.disposables.add(m.contextKeyService),m.disposables.add(h.register((0,o.Z)(m))),l.overrideStyles&&m.updateStyles(l.overrideStyles),m.disposables.add(m.onDidChangeSelection((function(){var e=m.getSelection(),t=m.getFocus();m.contextKeyService.bufferChangeEvents((function(){m.listHasSelectionOrFocus.set(e.length>0||t.length>0),m.listMultiSelection.set(e.length>1),m.listDoubleSelection.set(2===e.length)}))}))),m.disposables.add(m.onDidChangeFocus((function(){var e=m.getSelection(),t=m.getFocus();m.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),m.disposables.add(g.onDidChangeConfiguration((function(e){e.affectsConfiguration(Dt)&&(m._useAltAsMultipleSelectionModifier=Ft(g));var t={};if(e.affectsConfiguration(Tt)&&void 0===m.horizontalScrolling){var n=g.getValue(Tt);t=Object.assign(Object.assign({},t),{horizontalScrolling:n})}if(e.affectsConfiguration(Pt)){var i=g.getValue(Pt);t=Object.assign(Object.assign({},t),{smoothScrolling:i})}Object.keys(t).length>0&&m.updateOptions(t)}))),m.navigator=new Ut((0,o.Z)(m),Object.assign({configurationService:g},l)),m.disposables.add(m.navigator),m}return(0,d.Z)(n,[{key:"updateOptions",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.updateStyles(e.overrideStyles)}},{key:"updateStyles",value:function(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,D.Jl)(this,this.themeService,e)}},{key:"dispose",value:function(){var e;null===(e=this._styler)||void 0===e||e.dispose(),this.disposables.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(ht);Wt=ft([pt(6,x.i6),pt(7,gt),pt(8,M.XE),pt(9,k.Ui),pt(10,E.d)],Wt);var Vt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r,o;return(0,c.Z)(this,n),(r=t.call(this)).widget=e,r._onDidOpen=r._register(new v.Q5),r.onDidOpen=r._onDidOpen.event,r._register(v.ju.filter(r.widget.onDidChangeSelection,(function(e){return e.browserEvent instanceof KeyboardEvent}))((function(e){return r.onSelectionFromKeyboard(e)}))),r._register(r.widget.onPointer((function(e){return r.onPointer(e.element,e.browserEvent)}))),r._register(r.widget.onMouseDblClick((function(e){return r.onMouseDblClick(e.element,e.browserEvent)}))),"boolean"!==typeof(null===i||void 0===i?void 0:i.openOnSingleClick)&&(null===i||void 0===i?void 0:i.configurationService)?(r.openOnSingleClick="doubleClick"!==(null===i||void 0===i?void 0:i.configurationService.getValue(Mt)),r._register(null===i||void 0===i?void 0:i.configurationService.onDidChangeConfiguration((function(){r.openOnSingleClick="doubleClick"!==(null===i||void 0===i?void 0:i.configurationService.getValue(Mt))})))):r.openOnSingleClick=null===(o=null===i||void 0===i?void 0:i.openOnSingleClick)||void 0===o||o,r}return(0,d.Z)(n,[{key:"onSelectionFromKeyboard",value:function(e){if(1===e.elements.length){var t=e.browserEvent,n="boolean"!==typeof t.preserveFocus||t.preserveFocus,i="boolean"===typeof t.pinned?t.pinned:!n;this._open(this.getSelectedElement(),n,i,!1,e.browserEvent)}}},{key:"onPointer",value:function(e,t){if(this.openOnSingleClick&&!(2===t.detail)){var n=1===t.button,i=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!0,n,i,t)}}},{key:"onMouseDblClick",value:function(e,t){if(t){var n=t.target;if(!(n.classList.contains("monaco-tl-twistie")||n.classList.contains("monaco-icon-label")&&n.classList.contains("folder-icon")&&t.offsetX<16)){var i=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!1,!0,i,t)}}}},{key:"_open",value:function(e,t,n,i,r){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:n,revealIfVisible:!0},sideBySide:i,element:e,browserEvent:r})}}]),n}(f.JT),Yt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e,i)).widget=e,r}return(0,d.Z)(n,[{key:"getSelectedElement",value:function(){return this.widget.getSelectedElements()[0]}}]),n}(Vt),Ut=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){return(0,c.Z)(this,n),t.call(this,e,i)}return(0,d.Z)(n,[{key:"getSelectedElement",value:function(){return this.widget.getSelectedElements()[0]}}]),n}(Vt),Kt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){return(0,c.Z)(this,n),t.call(this,e,i)}return(0,d.Z)(n,[{key:"getSelectedElement",value:function(){var e;return null!==(e=this.widget.getSelection()[0])&&void 0!==e?e:void 0}}]),n}(Vt);function qt(e,t){var n=!1;return function(i){if(n)return n=!1,!1;var r=t.softDispatch(i,e);return r&&r.enterChord?(n=!0,!1):(n=!1,!0)}}var Gt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p){var g;(0,c.Z)(this,n);var v=en(i,s,u,h,f,p),m=v.options,_=v.getAutomaticKeyboardNavigation,y=v.disposable;return(g=t.call(this,e,i,r,a,m)).disposables.add(y),g.internals=new tn((0,o.Z)(g),s,_,s.overrideStyles,u,l,d,h,p),g.disposables.add(g.internals),g}return(0,d.Z)(n)}(Ze);Gt=ft([pt(5,x.i6),pt(6,gt),pt(7,M.XE),pt(8,k.Ui),pt(9,E.d),pt(10,st.F)],Gt);var $t=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p){var g;(0,c.Z)(this,n);var v=en(i,s,u,h,f,p),m=v.options,_=v.getAutomaticKeyboardNavigation,y=v.disposable;return(g=t.call(this,e,i,r,a,m)).disposables.add(y),g.internals=new tn((0,o.Z)(g),s,_,s.overrideStyles,u,l,d,h,p),g.disposables.add(g.internals),g}return(0,d.Z)(n,[{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles)}}]),n}(je);$t=ft([pt(5,x.i6),pt(6,gt),pt(7,M.XE),pt(8,k.Ui),pt(9,E.d),pt(10,st.F)],$t);var Qt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p,g){var v;(0,c.Z)(this,n);var m=en(i,u,l,f,p,g),_=m.options,y=m.getAutomaticKeyboardNavigation,b=m.disposable;return(v=t.call(this,e,i,r,a,s,_)).disposables.add(b),v.internals=new tn((0,o.Z)(v),u,y,u.overrideStyles,l,d,h,f,g),v.disposables.add(v.internals),v}return(0,d.Z)(n,[{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles)}}]),n}(at);Qt=ft([pt(6,x.i6),pt(7,gt),pt(8,M.XE),pt(9,k.Ui),pt(10,E.d),pt(11,st.F)],Qt);var Xt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p,g){var v;(0,c.Z)(this,n);var m=en(i,u,l,f,p,g),_=m.options,y=m.getAutomaticKeyboardNavigation,b=m.disposable;return(v=t.call(this,e,i,r,a,s,_)).disposables.add(b),v.internals=new tn((0,o.Z)(v),u,y,u.overrideStyles,l,d,h,f,g),v.disposables.add(v.internals),v}return(0,d.Z)(n,[{key:"onDidOpen",get:function(){return this.internals.onDidOpen}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles)}}]),n}(nt);Xt=ft([pt(6,x.i6),pt(7,gt),pt(8,M.XE),pt(9,k.Ui),pt(10,E.d),pt(11,st.F)],Xt);var Jt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p,g,v){var m;(0,c.Z)(this,n);var _=en(i,l,d,p,g,v),y=_.options,b=_.getAutomaticKeyboardNavigation,w=_.disposable;return(m=t.call(this,e,i,r,a,s,u,y)).disposables.add(w),m.internals=new tn((0,o.Z)(m),l,b,l.overrideStyles,d,h,f,p,v),m.disposables.add(m.internals),m}return(0,d.Z)(n)}(ot);function en(e,t,n,i,o,a){var s;St.bindTo(n),Et||(Lt.bindTo(n),Et=!0);var u=function(){var e=n.getContextKeyValue(xt);return e&&(e=i.getValue(It)),e},l=a.isScreenReaderOptimized(),c=t.simpleKeyboardNavigation||l?"simple":i.getValue(Ot),d=void 0!==t.horizontalScrolling?t.horizontalScrolling:i.getValue(Tt),h=Ht(t,i,o),f=(0,r.Z)(h,2),p=f[0],g=f[1],v=t.additionalScrollHeight;return{getAutomaticKeyboardNavigation:u,disposable:g,options:Object.assign(Object.assign({keyboardSupport:!1},p),{indent:i.getValue(At),renderIndentGuides:i.getValue(Rt),smoothScrolling:i.getValue(Pt),automaticKeyboardNavigation:u(),simpleKeyboardNavigation:"simple"===c,filterOnType:"filter"===c,horizontalScrolling:d,keyboardNavigationEventFilter:qt(e,o),additionalScrollHeight:v,hideTwistiesOfChildlessElements:t.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:null!==(s=t.expandOnlyOnTwistieClick)&&void 0!==s?s:"doubleClick"===i.getValue(Zt)})}}Jt=ft([pt(7,x.i6),pt(8,gt),pt(9,M.XE),pt(10,k.Ui),pt(11,E.d),pt(12,st.F)],Jt);var tn=function(){function e(t,n,i,r,o,a,s,u,l){var d=this;(0,c.Z)(this,e),this.tree=t,this.themeService=s,this.disposables=[],this.contextKeyService=Nt(o,t),_t.bindTo(this.contextKeyService).set(!(!1===n.multipleSelectionSupport)),kt.bindTo(this.contextKeyService).set(Boolean(n.selectionNavigation)),this.hasSelectionOrFocus=bt.bindTo(this.contextKeyService),this.hasDoubleSelection=wt.bindTo(this.contextKeyService),this.hasMultiSelection=Ct.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=Ft(u);var h=new Set;h.add(xt);var f=function(){var e=l.isScreenReaderOptimized()?"simple":u.getValue(Ot);t.updateOptions({simpleKeyboardNavigation:"simple"===e,filterOnType:"filter"===e})};this.updateStyleOverrides(r),this.disposables.push(this.contextKeyService,a.register(t),t.onDidChangeSelection((function(){var e=t.getSelection(),n=t.getFocus();d.contextKeyService.bufferChangeEvents((function(){d.hasSelectionOrFocus.set(e.length>0||n.length>0),d.hasMultiSelection.set(e.length>1),d.hasDoubleSelection.set(2===e.length)}))})),t.onDidChangeFocus((function(){var e=t.getSelection(),n=t.getFocus();d.hasSelectionOrFocus.set(e.length>0||n.length>0)})),u.onDidChangeConfiguration((function(e){var r={};if(e.affectsConfiguration(Dt)&&(d._useAltAsMultipleSelectionModifier=Ft(u)),e.affectsConfiguration(At)){var o=u.getValue(At);r=Object.assign(Object.assign({},r),{indent:o})}if(e.affectsConfiguration(Rt)){var a=u.getValue(Rt);r=Object.assign(Object.assign({},r),{renderIndentGuides:a})}if(e.affectsConfiguration(Pt)){var s=u.getValue(Pt);r=Object.assign(Object.assign({},r),{smoothScrolling:s})}if(e.affectsConfiguration(Ot)&&f(),e.affectsConfiguration(It)&&(r=Object.assign(Object.assign({},r),{automaticKeyboardNavigation:i()})),e.affectsConfiguration(Tt)&&void 0===n.horizontalScrolling){var l=u.getValue(Tt);r=Object.assign(Object.assign({},r),{horizontalScrolling:l})}e.affectsConfiguration(Zt)&&void 0===n.expandOnlyOnTwistieClick&&(r=Object.assign(Object.assign({},r),{expandOnlyOnTwistieClick:"doubleClick"===u.getValue(Zt)})),Object.keys(r).length>0&&t.updateOptions(r)})),this.contextKeyService.onDidChangeContext((function(e){e.affectsSome(h)&&t.updateOptions({automaticKeyboardNavigation:i()})})),l.onDidChangeScreenReaderOptimized((function(){return f()}))),this.navigator=new Kt(t,Object.assign({configurationService:u},n)),this.disposables.push(this.navigator)}return(0,d.Z)(e,[{key:"onDidOpen",get:function(){return this.navigator.onDidOpen}},{key:"updateStyleOverrides",value:function(e){(0,f.B9)(this.styler),this.styler=e?(0,D.Jl)(this.tree,this.themeService,e):f.JT.None}},{key:"dispose",value:function(){this.disposables=(0,f.B9)(this.disposables),(0,f.B9)(this.styler),this.styler=void 0}}]),e}();tn=ft([pt(4,x.i6),pt(5,gt),pt(6,M.XE),pt(7,k.Ui),pt(8,st.F)],tn),N.B.as(S.IP.Configuration).registerConfiguration({id:"workbench",order:7,title:(0,C.N)("workbenchConfigurationTitle","Workbench"),type:"object",properties:(ct={},(0,i.Z)(ct,Dt,{type:"string",enum:["ctrlCmd","alt"],enumDescriptions:[(0,C.N)("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),(0,C.N)("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:(0,C.N)({key:"multiSelectModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")}),(0,i.Z)(ct,Mt,{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,C.N)({key:"openModeModifier",comment:["`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized."]},"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")}),(0,i.Z)(ct,Tt,{type:"boolean",default:!1,description:(0,C.N)("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")}),(0,i.Z)(ct,At,{type:"number",default:8,minimum:0,maximum:40,description:(0,C.N)("tree indent setting","Controls tree indentation in pixels.")}),(0,i.Z)(ct,Rt,{type:"string",enum:["none","onHover","always"],default:"onHover",description:(0,C.N)("render tree indent guides","Controls whether the tree should render indent guides.")}),(0,i.Z)(ct,Pt,{type:"boolean",default:!1,description:(0,C.N)("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")}),(0,i.Z)(ct,Ot,{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[(0,C.N)("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),(0,C.N)("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),(0,C.N)("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:(0,C.N)("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.")}),(0,i.Z)(ct,It,{type:"boolean",default:!0,markdownDescription:(0,C.N)("automatic keyboard navigation setting","Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.")}),(0,i.Z)(ct,Zt,{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,C.N)("expand mode","Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")}),ct)})},19974:function(e,t,n){"use strict";n.d(t,{$V:function(){return g},VZ:function(){return d},in:function(){return i},kw:function(){return p}});var i,r=n(15671),o=n(43144),a=n(60136),s=n(29388),u=n(84596),l=n(81626),c=n(11732),d=(0,u.yh)("logService");!function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Info=2]="Info",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.Off=6]="Off"}(i||(i={}));var h=i.Info,f=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.apply(this,arguments)).level=h,e._onDidChangeLogLevel=e._register(new c.Q5),e}return(0,o.Z)(n,[{key:"setLevel",value:function(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}},{key:"getLevel",value:function(){return this.level}}]),n}(l.JT),p=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h;return(0,r.Z)(this,n),(e=t.call(this)).setLevel(i),e}return(0,o.Z)(n,[{key:"trace",value:function(e){if(this.getLevel()<=i.Trace){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["%cTRACE","color: #888",e].concat(r))}}},{key:"debug",value:function(e){if(this.getLevel()<=i.Debug){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["%cDEBUG","background: #eee; color: #888",e].concat(r))}}},{key:"info",value:function(e){if(this.getLevel()<=i.Info){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["%c INFO","color: #33f",e].concat(r))}}},{key:"error",value:function(e){if(this.getLevel()<=i.Error){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["%c ERR","color: #f33",e].concat(r))}}},{key:"dispose",value:function(){}}]),n}(f),g=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var i;return(0,r.Z)(this,n),(i=t.call(this)).logger=e,i._register(e),i}return(0,o.Z)(n,[{key:"getLevel",value:function(){return this.logger.getLevel()}},{key:"trace",value:function(e){for(var t,n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];(t=this.logger).trace.apply(t,[e].concat(i))}},{key:"debug",value:function(e){for(var t,n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];(t=this.logger).debug.apply(t,[e].concat(i))}},{key:"info",value:function(e){for(var t,n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];(t=this.logger).info.apply(t,[e].concat(i))}},{key:"error",value:function(e){for(var t,n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];(t=this.logger).error.apply(t,[e].concat(i))}}]),n}(l.JT)},95123:function(e,t,n){"use strict";n.d(t,{H0:function(){return r},ZL:function(){return i},lT:function(){return u}});var i,r,o=n(84596),a=n(56345),s=n(55046);!function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(i||(i={})),function(e){e.compare=function(e,t){return t-e};var t=Object.create(null);t[e.Error]=(0,a.N)("sev.error","Error"),t[e.Warning]=(0,a.N)("sev.warning","Warning"),t[e.Info]=(0,a.N)("sev.info","Info"),e.toString=function(e){return t[e]||""},e.fromSeverity=function(t){switch(t){case s.Z.Error:return e.Error;case s.Z.Warning:return e.Warning;case s.Z.Info:return e.Info;case s.Z.Ignore:return e.Hint}},e.toSeverity=function(t){switch(t){case e.Error:return s.Z.Error;case e.Warning:return s.Z.Warning;case e.Info:return s.Z.Info;case e.Hint:return s.Z.Ignore}}}(i||(i={})),function(e){var t="";function n(e,n){var r=[t];return e.source?r.push(e.source.replace("\xa6","\\\xa6")):r.push(t),e.code?"string"===typeof e.code?r.push(e.code.replace("\xa6","\\\xa6")):r.push(e.code.value.replace("\xa6","\\\xa6")):r.push(t),void 0!==e.severity&&null!==e.severity?r.push(i.toString(e.severity)):r.push(t),e.message&&n?r.push(e.message.replace("\xa6","\\\xa6")):r.push(t),void 0!==e.startLineNumber&&null!==e.startLineNumber?r.push(e.startLineNumber.toString()):r.push(t),void 0!==e.startColumn&&null!==e.startColumn?r.push(e.startColumn.toString()):r.push(t),void 0!==e.endLineNumber&&null!==e.endLineNumber?r.push(e.endLineNumber.toString()):r.push(t),void 0!==e.endColumn&&null!==e.endColumn?r.push(e.endColumn.toString()):r.push(t),r.push(t),r.join("\xa6")}e.makeKey=function(e){return n(e,!0)},e.makeKeyOptionalMessage=n}(r||(r={}));var u=(0,o.yh)("markerService")},71574:function(e,t,n){"use strict";n.d(t,{EO:function(){return a},lT:function(){return o}});var i=n(43144),r=n(15671),o=(n(55046),(0,n(84596).yh)("notificationService")),a=(0,i.Z)((function e(){(0,r.Z)(this,e)}))},9696:function(e,t,n){"use strict";n.d(t,{SW:function(){return d},v4:function(){return c},xn:function(){return h}});var i=n(87757),r=n.n(i),o=n(81626),a=n(51747),s=n(67775),u=n(84596),l=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},c=(0,u.yh)("openerService"),d=Object.freeze({_serviceBrand:void 0,registerOpener:function(){return o.JT.None},registerValidator:function(){return o.JT.None},registerExternalUriResolver:function(){return o.JT.None},setDefaultExternalOpener:function(){},registerExternalOpener:function(){return o.JT.None},open:function(){return l(this,void 0,void 0,r().mark((function e(){return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",!1);case 1:case"end":return e.stop()}}),e)})))},resolveExternalUri:function(e){return l(this,void 0,void 0,r().mark((function t(){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",{resolved:e,dispose:function(){}});case 1:case"end":return t.stop()}}),t)})))}});function h(e,t){return s.o.isUri(e)?(0,a.qq)(e.scheme,t):(0,a.ok)(e,t+":")}},18085:function(e,t,n){"use strict";n.d(t,{E:function(){return a},e:function(){return s}});var i=n(15671),r=n(43144),o=n(84596),a=function(){function e(t){(0,i.Z)(this,e),this.callback=t}return(0,r.Z)(e,[{key:"report",value:function(e){this._value=e,this.callback(this._value)}}]),e}();a.None=Object.freeze({report:function(){}});var s=(0,o.yh)("editorProgressService")},73921:function(e,t,n){"use strict";n.d(t,{IP:function(){return c},Ry:function(){return i}});var i,r=n(93433),o=n(15671),a=n(43144),s=n(38774),u=n(49396),l=n(81626);!function(e){e[e.PRESERVE=0]="PRESERVE",e[e.LAST=1]="LAST"}(i||(i={}));var c={Quickaccess:"workbench.contributions.quickaccess"},d=function(){function e(){(0,o.Z)(this,e),this.providers=[],this.defaultProvider=void 0}return(0,a.Z)(e,[{key:"registerQuickAccessProvider",value:function(e){var t=this;return 0===e.prefix.length?this.defaultProvider=e:this.providers.push(e),this.providers.sort((function(e,t){return t.prefix.length-e.prefix.length})),(0,l.OF)((function(){t.providers.splice(t.providers.indexOf(e),1),t.defaultProvider===e&&(t.defaultProvider=void 0)}))}},{key:"getQuickAccessProviders",value:function(){return(0,u.kX)([this.defaultProvider].concat((0,r.Z)(this.providers)))}},{key:"getQuickAccessProvider",value:function(e){return e&&this.providers.find((function(t){return e.startsWith(t.prefix)}))||void 0||this.defaultProvider}}]),e}();s.B.add(c.Quickaccess,new d)},62137:function(e,t,n){"use strict";n.d(t,{eJ:function(){return o},jG:function(){return r.jG}});var i=n(84596),r=n(42659),o=(0,i.yh)("quickInputService")},38774:function(e,t,n){"use strict";n.d(t,{B:function(){return s}});var i=n(15671),r=n(43144),o=n(25941),a=n(96147),s=new(function(){function e(){(0,i.Z)(this,e),this.data=new Map}return(0,r.Z)(e,[{key:"add",value:function(e,t){a.ok(o.HD(e)),a.ok(o.Kn(t)),a.ok(!this.data.has(e),"There is already an extension with this id"),this.data.set(e,t)}},{key:"as",value:function(e){return this.data.get(e)||null}}]),e}())},59319:function(e,t,n){"use strict";n.d(t,{Uy:function(){return C},vm:function(){return S},fk:function(){return y}});var i,r=n(15671),o=n(43144),a=n(60136),s=n(29388),u=n(84596),l=n(11732),c=n(81626),d=n(25941),h=n(11752),f=n(61120),p=n(87757),g=n.n(p),v=n(27997),m=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};!function(e){e[e.None=0]="None",e[e.Initialized=1]="Initialized",e[e.Closed=2]="Closed"}(i||(i={}));var _=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var o,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object.create(null);return(0,r.Z)(this,n),(o=t.call(this)).database=e,o.options=a,o._onDidChangeStorage=o._register(new l.Q5),o.onDidChangeStorage=o._onDidChangeStorage.event,o.state=i.None,o.cache=new Map,o.flushDelayer=new v.rH(n.DEFAULT_FLUSH_DELAY),o.pendingDeletes=new Set,o.pendingInserts=new Map,o.whenFlushedCallbacks=[],o.registerListeners(),o}return(0,o.Z)(n,[{key:"registerListeners",value:function(){var e=this;this._register(this.database.onDidChangeItemsExternal((function(t){return e.onDidChangeItemsExternal(t)})))}},{key:"onDidChangeItemsExternal",value:function(e){var t,n,i=this;null===(t=e.changed)||void 0===t||t.forEach((function(e,t){return i.accept(t,e)})),null===(n=e.deleted)||void 0===n||n.forEach((function(e){return i.accept(e,void 0)}))}},{key:"accept",value:function(e,t){if(this.state!==i.Closed){var n=!1;if((0,d.Jp)(t))n=this.cache.delete(e);else this.cache.get(e)!==t&&(this.cache.set(e,t),n=!0);n&&this._onDidChangeStorage.fire(e)}}},{key:"get",value:function(e,t){var n=this.cache.get(e);return(0,d.Jp)(n)?t:n}},{key:"getBoolean",value:function(e,t){var n=this.get(e);return(0,d.Jp)(n)?t:"true"===n}},{key:"getNumber",value:function(e,t){var n=this.get(e);return(0,d.Jp)(n)?t:parseInt(n,10)}},{key:"set",value:function(e,t){return m(this,void 0,void 0,g().mark((function n(){var r,o=this;return g().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(this.state!==i.Closed){n.next=2;break}return n.abrupt("return");case 2:if(!(0,d.Jp)(t)){n.next=4;break}return n.abrupt("return",this.delete(e));case 4:if(r=String(t),this.cache.get(e)!==r){n.next=8;break}return n.abrupt("return");case 8:return this.cache.set(e,r),this.pendingInserts.set(e,r),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire(e),n.abrupt("return",this.flushDelayer.trigger((function(){return o.flushPending()})));case 13:case"end":return n.stop()}}),n,this)})))}},{key:"delete",value:function(e){return m(this,void 0,void 0,g().mark((function t(){var n=this;return g().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.state!==i.Closed){t.next=2;break}return t.abrupt("return");case 2:if(this.cache.delete(e)){t.next=5;break}return t.abrupt("return");case 5:return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire(e),t.abrupt("return",this.flushDelayer.trigger((function(){return n.flushPending()})));case 9:case"end":return t.stop()}}),t,this)})))}},{key:"hasPending",get:function(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}},{key:"flushPending",value:function(){return m(this,void 0,void 0,g().mark((function e(){var t,n=this;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.hasPending){e.next=2;break}return e.abrupt("return");case 2:return t={insert:this.pendingInserts,delete:this.pendingDeletes},this.pendingDeletes=new Set,this.pendingInserts=new Map,e.abrupt("return",this.database.updateItems(t).finally((function(){var e;if(!n.hasPending)for(;n.whenFlushedCallbacks.length;)null===(e=n.whenFlushedCallbacks.pop())||void 0===e||e()})));case 6:case"end":return e.stop()}}),e,this)})))}},{key:"dispose",value:function(){this.flushDelayer.cancel(),this.flushDelayer.dispose(),(0,h.Z)((0,f.Z)(n.prototype),"dispose",this).call(this)}}]),n}(c.JT);_.DEFAULT_FLUSH_DELAY=100;var y,b=function(){function e(){(0,r.Z)(this,e),this.onDidChangeItemsExternal=l.ju.None,this.items=new Map}return(0,o.Z)(e,[{key:"updateItems",value:function(e){return m(this,void 0,void 0,g().mark((function t(){var n=this;return g().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.insert&&e.insert.forEach((function(e,t){return n.items.set(t,e)})),e.delete&&e.delete.forEach((function(e){return n.items.delete(e)}));case 2:case"end":return t.stop()}}),t)})))}}]),e}(),w="__$__targetStorageMarker",C=(0,u.yh)("storageService");!function(e){e[e.NONE=0]="NONE",e[e.SHUTDOWN=1]="SHUTDOWN"}(y||(y={}));var k=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{flushInterval:n.DEFAULT_FLUSH_INTERVAL};return(0,r.Z)(this,n),(e=t.call(this)).options=i,e._onDidChangeValue=e._register(new l.K3),e._onDidChangeTarget=e._register(new l.K3),e._onWillSaveState=e._register(new l.Q5),e.onWillSaveState=e._onWillSaveState.event,e._workspaceKeyTargets=void 0,e._globalKeyTargets=void 0,e}return(0,o.Z)(n,[{key:"emitDidChangeValue",value:function(e,t){t===w?(0===e?this._globalKeyTargets=void 0:1===e&&(this._workspaceKeyTargets=void 0),this._onDidChangeTarget.fire({scope:e})):this._onDidChangeValue.fire({scope:e,key:t,target:this.getKeyTargets(e)[t]})}},{key:"get",value:function(e,t,n){var i;return null===(i=this.getStorage(t))||void 0===i?void 0:i.get(e,n)}},{key:"getBoolean",value:function(e,t,n){var i;return null===(i=this.getStorage(t))||void 0===i?void 0:i.getBoolean(e,n)}},{key:"getNumber",value:function(e,t,n){var i;return null===(i=this.getStorage(t))||void 0===i?void 0:i.getNumber(e,n)}},{key:"store",value:function(e,t,n,i){var r=this;(0,d.Jp)(t)?this.remove(e,n):this.withPausedEmitters((function(){var o;r.updateKeyTarget(e,n,i),null===(o=r.getStorage(n))||void 0===o||o.set(e,t)}))}},{key:"remove",value:function(e,t){var n=this;this.withPausedEmitters((function(){var i;n.updateKeyTarget(e,t,void 0),null===(i=n.getStorage(t))||void 0===i||i.delete(e)}))}},{key:"withPausedEmitters",value:function(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}},{key:"updateKeyTarget",value:function(e,t,n){var i,r,o=this.getKeyTargets(t);"number"===typeof n?o[e]!==n&&(o[e]=n,null===(i=this.getStorage(t))||void 0===i||i.set(w,JSON.stringify(o))):"number"===typeof o[e]&&(delete o[e],null===(r=this.getStorage(t))||void 0===r||r.set(w,JSON.stringify(o)))}},{key:"workspaceKeyTargets",get:function(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}},{key:"globalKeyTargets",get:function(){return this._globalKeyTargets||(this._globalKeyTargets=this.loadKeyTargets(0)),this._globalKeyTargets}},{key:"getKeyTargets",value:function(e){return 0===e?this.globalKeyTargets:this.workspaceKeyTargets}},{key:"loadKeyTargets",value:function(e){var t=this.get(w,e);if(t)try{return JSON.parse(t)}catch(n){}return Object.create(null)}}]),n}(c.JT);k.DEFAULT_FLUSH_INTERVAL=6e4;var S=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.call(this)).globalStorage=new _(new b),e.workspaceStorage=new _(new b),e._register(e.workspaceStorage.onDidChangeStorage((function(t){return e.emitDidChangeValue(1,t)}))),e._register(e.globalStorage.onDidChangeStorage((function(t){return e.emitDidChangeValue(0,t)}))),e}return(0,o.Z)(n,[{key:"getStorage",value:function(e){return 0===e?this.globalStorage:this.workspaceStorage}}]),n}(k)},45014:function(e,t,n){"use strict";n.d(t,{b:function(){return i}});var i=(0,n(84596).yh)("telemetryService")},92992:function(e,t,n){"use strict";n.d(t,{$D:function(){return Ct},$d:function(){return ut},A2:function(){return Q},AB:function(){return q},AS:function(){return lt},AW:function(){return we},BO:function(){return Ht},C3:function(){return R},CA:function(){return Pt},CN:function(){return Ze},Cd:function(){return _t},Cz:function(){return Ve},D0:function(){return ce},D1:function(){return he},DE:function(){return yt},Du:function(){return ae},E3:function(){return kt},EP:function(){return O},ES:function(){return xe},Ei:function(){return Oe},F3:function(){return at},Fm:function(){return Dt},Fu:function(){return ze},GO:function(){return W},Gj:function(){return It},Gw:function(){return ct},Hf:function(){return de},Hz:function(){return bt},I1:function(){return Et},IB:function(){return Be},IP:function(){return d},Id:function(){return v},Iv:function(){return At},Jp:function(){return jt},K1:function(){return Ce},KT:function(){return Tt},LL:function(){return $e},L_:function(){return Qe},Lo:function(){return Fe},M6:function(){return nt},MU:function(){return De},NO:function(){return le},Ng:function(){return fe},OL:function(){return Bt},OZ:function(){return F},Oo:function(){return et},P4:function(){return Ke},P6:function(){return p},PR:function(){return E},Pk:function(){return Lt},Pv:function(){return D},R8:function(){return _},RV:function(){return I},Rz:function(){return Le},S:function(){return ft},SP:function(){return Mt},SU:function(){return A},Sb:function(){return Pe},Sn:function(){return Kt},Sw:function(){return C},T8:function(){return oe},U6:function(){return Nt},Un:function(){return pt},Vq:function(){return mt},XE:function(){return N},XL:function(){return qe},XZ:function(){return m},Xy:function(){return Zt},YI:function(){return T},ZG:function(){return St},Zn:function(){return Vt},_2:function(){return Je},_Y:function(){return je},_b:function(){return Xe},_l:function(){return M},_t:function(){return Z},_w:function(){return U},b6:function(){return J},b7:function(){return z},br:function(){return Ft},c6:function(){return re},cv:function(){return ue},dC:function(){return tt},dR:function(){return g},dt:function(){return L},et:function(){return K},fE:function(){return se},fe:function(){return ie},g8:function(){return V},g_:function(){return Ee},gk:function(){return Ie},gp:function(){return ee},hE:function(){return ke},j5:function(){return B},jU:function(){return Me},jb:function(){return wt},kJ:function(){return me},kV:function(){return Rt},ke:function(){return Ye},kw:function(){return Yt},lR:function(){return y},lW:function(){return be},lX:function(){return X},lo:function(){return ve},mH:function(){return Ge},mV:function(){return st},ny:function(){return Ne},oQ:function(){return ye},oS:function(){return ht},op:function(){return _e},ov:function(){return Ot},p:function(){return P},pW:function(){return ne},pn:function(){return Te},pt:function(){return Ae},qe:function(){return Y},rg:function(){return it},rh:function(){return k},s$:function(){return ot},sE:function(){return S},sK:function(){return We},tZ:function(){return ge},u2:function(){return xt},uo:function(){return te},ur:function(){return w},ux:function(){return gt},vG:function(){return dt},w:function(){return He},xL:function(){return b},yJ:function(){return Re},yb:function(){return Se},yn:function(){return G},yp:function(){return Ue},yt:function(){return rt},zJ:function(){return x},zK:function(){return pe},zR:function(){return $}});var i=n(15671),r=n(43144),o=n(38774),a=n(89938),s=n(11732),u=n(56345),l=n(27930),c=n(27997),d={ColorContribution:"base.contributions.colors"},h=function(){function e(){(0,i.Z)(this,e),this._onDidChangeSchema=new s.Q5,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}return(0,r.Z)(e,[{key:"registerColor",value:function(e,t,n){var i=arguments.length>4?arguments[4]:void 0,r={id:e,description:n,defaults:t,needsTransparency:arguments.length>3&&void 0!==arguments[3]&&arguments[3],deprecationMessage:i};this.colorsById[e]=r;var o={type:"string",description:n,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return i&&(o.deprecationMessage=i),this.colorSchema.properties[e]=o,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(n),this._onDidChangeSchema.fire(),e}},{key:"resolveDefaultColor",value:function(e,t){var n=this.colorsById[e];if(n&&n.defaults)return Kt(n.defaults[t.type],t)}},{key:"getColorSchema",value:function(){return this.colorSchema}},{key:"toString",value:function(){var e=this;return Object.keys(this.colorsById).sort((function(e,t){var n=-1===e.indexOf(".")?0:1,i=-1===t.indexOf(".")?0:1;return n!==i?n-i:e.localeCompare(t)})).map((function(t){return"- `".concat(t,"`: ").concat(e.colorsById[t].description)})).join("\n")}}]),e}(),f=new h;function p(e,t,n,i,r){return f.registerColor(e,t,n,i,r)}o.B.add(d.ColorContribution,f);var g=p("foreground",{dark:"#CCCCCC",light:"#616161",hc:"#FFFFFF"},u.N("foreground","Overall foreground color. This color is only used if not overridden by a component.")),v=p("errorForeground",{dark:"#F48771",light:"#A1260D",hc:"#F48771"},u.N("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component.")),m=p("icon.foreground",{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},u.N("iconForeground","The default color for icons in the workbench.")),_=p("focusBorder",{dark:"#007FD4",light:"#0090F1",hc:"#F38518"},u.N("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),y=p("contrastBorder",{light:null,dark:null,hc:"#6FC3DF"},u.N("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),b=p("contrastActiveBorder",{light:null,dark:null,hc:_},u.N("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast.")),w=p("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hc:"#3794FF"},u.N("textLinkForeground","Foreground color for links in text.")),C=p("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hc:a.Il.black},u.N("textCodeBlockBackground","Background color for code blocks in text.")),k=p("widget.shadow",{dark:Vt(a.Il.black,.36),light:Vt(a.Il.black,.16),hc:null},u.N("widgetShadow","Shadow color of widgets such as find/replace inside the editor.")),S=p("input.background",{dark:"#3C3C3C",light:a.Il.white,hc:a.Il.black},u.N("inputBoxBackground","Input box background.")),x=p("input.foreground",{dark:g,light:g,hc:g},u.N("inputBoxForeground","Input box foreground.")),L=p("input.border",{dark:null,light:null,hc:y},u.N("inputBoxBorder","Input box border.")),E=p("inputOption.activeBorder",{dark:"#007ACC00",light:"#007ACC00",hc:y},u.N("inputBoxActiveOptionBorder","Border color of activated options in input fields.")),N=p("inputOption.activeBackground",{dark:Vt(_,.4),light:Vt(_,.2),hc:a.Il.transparent},u.N("inputOption.activeBackground","Background color of activated options in input fields.")),D=p("inputOption.activeForeground",{dark:a.Il.white,light:a.Il.black,hc:null},u.N("inputOption.activeForeground","Foreground color of activated options in input fields.")),M=p("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hc:a.Il.black},u.N("inputValidationInfoBackground","Input validation background color for information severity.")),T=p("inputValidation.infoForeground",{dark:null,light:null,hc:null},u.N("inputValidationInfoForeground","Input validation foreground color for information severity.")),O=p("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hc:y},u.N("inputValidationInfoBorder","Input validation border color for information severity.")),I=p("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hc:a.Il.black},u.N("inputValidationWarningBackground","Input validation background color for warning severity.")),A=p("inputValidation.warningForeground",{dark:null,light:null,hc:null},u.N("inputValidationWarningForeground","Input validation foreground color for warning severity.")),R=p("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hc:y},u.N("inputValidationWarningBorder","Input validation border color for warning severity.")),P=p("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hc:a.Il.black},u.N("inputValidationErrorBackground","Input validation background color for error severity.")),Z=p("inputValidation.errorForeground",{dark:null,light:null,hc:null},u.N("inputValidationErrorForeground","Input validation foreground color for error severity.")),F=p("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hc:y},u.N("inputValidationErrorBorder","Input validation border color for error severity.")),j=p("dropdown.background",{dark:"#3C3C3C",light:a.Il.white,hc:a.Il.black},u.N("dropdownBackground","Dropdown background.")),H=p("dropdown.foreground",{dark:"#F0F0F0",light:null,hc:a.Il.white},u.N("dropdownForeground","Dropdown foreground.")),B=p("button.foreground",{dark:a.Il.white,light:a.Il.white,hc:a.Il.white},u.N("buttonForeground","Button foreground color.")),z=p("button.background",{dark:"#0E639C",light:"#007ACC",hc:null},u.N("buttonBackground","Button background color.")),W=p("button.hoverBackground",{dark:Wt(z,.2),light:zt(z,.2),hc:null},u.N("buttonHoverBackground","Button background color when hovering.")),V=p("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hc:a.Il.black},u.N("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count.")),Y=p("badge.foreground",{dark:a.Il.white,light:"#333",hc:a.Il.white},u.N("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),U=p("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hc:null},u.N("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),K=p("scrollbarSlider.background",{dark:a.Il.fromHex("#797979").transparent(.4),light:a.Il.fromHex("#646464").transparent(.4),hc:Vt(y,.6)},u.N("scrollbarSliderBackground","Scrollbar slider background color.")),q=p("scrollbarSlider.hoverBackground",{dark:a.Il.fromHex("#646464").transparent(.7),light:a.Il.fromHex("#646464").transparent(.7),hc:Vt(y,.8)},u.N("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),G=p("scrollbarSlider.activeBackground",{dark:a.Il.fromHex("#BFBFBF").transparent(.4),light:a.Il.fromHex("#000000").transparent(.6),hc:y},u.N("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),$=p("progressBar.background",{dark:a.Il.fromHex("#0E70C0"),light:a.Il.fromHex("#0E70C0"),hc:y},u.N("progressBarBackground","Background color of the progress bar that can show for long running operations.")),Q=p("editorError.background",{dark:null,light:null,hc:null},u.N("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),X=p("editorError.foreground",{dark:"#F48771",light:"#E51400",hc:null},u.N("editorError.foreground","Foreground color of error squigglies in the editor.")),J=p("editorError.border",{dark:null,light:null,hc:a.Il.fromHex("#E47777").transparent(.8)},u.N("errorBorder","Border color of error boxes in the editor.")),ee=p("editorWarning.background",{dark:null,light:null,hc:null},u.N("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),te=p("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hc:null},u.N("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),ne=p("editorWarning.border",{dark:null,light:null,hc:a.Il.fromHex("#FFCC00").transparent(.8)},u.N("warningBorder","Border color of warning boxes in the editor.")),ie=p("editorInfo.background",{dark:null,light:null,hc:null},u.N("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),re=p("editorInfo.foreground",{dark:"#75BEFF",light:"#75BEFF",hc:null},u.N("editorInfo.foreground","Foreground color of info squigglies in the editor.")),oe=p("editorInfo.border",{dark:null,light:null,hc:a.Il.fromHex("#75BEFF").transparent(.8)},u.N("infoBorder","Border color of info boxes in the editor.")),ae=p("editorHint.foreground",{dark:a.Il.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hc:null},u.N("editorHint.foreground","Foreground color of hint squigglies in the editor.")),se=p("editorHint.border",{dark:null,light:null,hc:a.Il.fromHex("#eeeeee").transparent(.8)},u.N("hintBorder","Border color of hint boxes in the editor.")),ue=p("editor.background",{light:"#fffffe",dark:"#1E1E1E",hc:a.Il.black},u.N("editorBackground","Editor background color.")),le=p("editor.foreground",{light:"#333333",dark:"#BBBBBB",hc:a.Il.white},u.N("editorForeground","Editor default foreground color.")),ce=p("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hc:"#0C141F"},u.N("editorWidgetBackground","Background color of editor widgets, such as find/replace.")),de=p("editorWidget.foreground",{dark:g,light:g,hc:g},u.N("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),he=p("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hc:y},u.N("editorWidgetBorder","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.")),fe=p("editorWidget.resizeBorder",{light:null,dark:null,hc:null},u.N("editorWidgetResizeBorder","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.")),pe=p("quickInput.background",{dark:ce,light:ce,hc:ce},u.N("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),ge=p("quickInput.foreground",{dark:de,light:de,hc:de},u.N("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),ve=p("quickInputTitle.background",{dark:new a.Il(new a.VS(255,255,255,.105)),light:new a.Il(new a.VS(0,0,0,.06)),hc:"#000000"},u.N("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),me=p("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hc:a.Il.white},u.N("pickerGroupForeground","Quick picker color for grouping labels.")),_e=p("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hc:a.Il.white},u.N("pickerGroupBorder","Quick picker color for grouping borders.")),ye=p("keybindingLabel.background",{dark:new a.Il(new a.VS(128,128,128,.17)),light:new a.Il(new a.VS(221,221,221,.4)),hc:a.Il.transparent},u.N("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),be=p("keybindingLabel.foreground",{dark:a.Il.fromHex("#CCCCCC"),light:a.Il.fromHex("#555555"),hc:a.Il.white},u.N("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),we=p("keybindingLabel.border",{dark:new a.Il(new a.VS(51,51,51,.6)),light:new a.Il(new a.VS(204,204,204,.4)),hc:new a.Il(new a.VS(111,195,223))},u.N("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),Ce=p("keybindingLabel.bottomBorder",{dark:new a.Il(new a.VS(68,68,68,.6)),light:new a.Il(new a.VS(187,187,187,.4)),hc:new a.Il(new a.VS(111,195,223))},u.N("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),ke=p("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},u.N("editorSelectionBackground","Color of the editor selection.")),Se=p("editor.selectionForeground",{light:null,dark:null,hc:"#000000"},u.N("editorSelectionForeground","Color of the selected text for high contrast.")),xe=p("editor.inactiveSelectionBackground",{light:Vt(ke,.5),dark:Vt(ke,.5),hc:Vt(ke,.5)},u.N("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),Le=p("editor.selectionHighlightBackground",{light:Ut(ke,ue,.3,.6),dark:Ut(ke,ue,.3,.6),hc:null},u.N("editorSelectionHighlight","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0),Ee=p("editor.selectionHighlightBorder",{light:null,dark:null,hc:b},u.N("editorSelectionHighlightBorder","Border color for regions with the same content as the selection.")),Ne=p("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hc:null},u.N("editorFindMatch","Color of the current search match.")),De=p("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hc:null},u.N("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),Me=p("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hc:null},u.N("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),Te=p("editor.findMatchBorder",{light:null,dark:null,hc:b},u.N("editorFindMatchBorder","Border color of the current search match.")),Oe=p("editor.findMatchHighlightBorder",{light:null,dark:null,hc:b},u.N("findMatchHighlightBorder","Border color of the other search matches.")),Ie=p("editor.findRangeHighlightBorder",{dark:null,light:null,hc:Vt(b,.4)},u.N("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),Ae=p("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hc:"#ADD6FF26"},u.N("hoverHighlight","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0),Re=p("editorHoverWidget.background",{light:ce,dark:ce,hc:ce},u.N("hoverBackground","Background color of the editor hover.")),Pe=p("editorHoverWidget.foreground",{light:de,dark:de,hc:de},u.N("hoverForeground","Foreground color of the editor hover.")),Ze=p("editorHoverWidget.border",{light:he,dark:he,hc:he},u.N("hoverBorder","Border color of the editor hover.")),Fe=p("editorHoverWidget.statusBarBackground",{dark:Wt(Re,.2),light:zt(Re,.05),hc:ce},u.N("statusBarBackground","Background color of the editor hover status bar.")),je=p("editorLink.activeForeground",{dark:"#4E94CE",light:a.Il.blue,hc:a.Il.cyan},u.N("activeLinkForeground","Color of active links.")),He=p("editorInlineHint.foreground",{dark:ce,light:de,hc:ce},u.N("editorInlineHintForeground","Foreground color of inline hints")),Be=p("editorInlineHint.background",{dark:de,light:ce,hc:de},u.N("editorInlineHintBackground","Background color of inline hints")),ze=p("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hc:"#FFCC00"},u.N("editorLightBulbForeground","The color used for the lightbulb actions icon.")),We=p("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},u.N("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon.")),Ve=new a.Il(new a.VS(155,185,85,.2)),Ye=new a.Il(new a.VS(255,0,0,.2)),Ue=p("diffEditor.insertedTextBackground",{dark:Ve,light:Ve,hc:null},u.N("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),Ke=p("diffEditor.removedTextBackground",{dark:Ye,light:Ye,hc:null},u.N("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),qe=p("diffEditor.insertedTextBorder",{dark:null,light:null,hc:"#33ff2eff"},u.N("diffEditorInsertedOutline","Outline color for the text that got inserted.")),Ge=p("diffEditor.removedTextBorder",{dark:null,light:null,hc:"#FF008F"},u.N("diffEditorRemovedOutline","Outline color for text that got removed.")),$e=p("diffEditor.border",{dark:null,light:null,hc:y},u.N("diffEditorBorder","Border color between the two text editors.")),Qe=p("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hc:null},u.N("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),Xe=p("list.focusBackground",{dark:null,light:null,hc:null},u.N("listFocusBackground","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Je=p("list.focusForeground",{dark:null,light:null,hc:null},u.N("listFocusForeground","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),et=p("list.focusOutline",{dark:_,light:_,hc:b},u.N("listFocusOutline","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),tt=p("list.activeSelectionBackground",{dark:"#094771",light:"#0060C0",hc:null},u.N("listActiveSelectionBackground","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),nt=p("list.activeSelectionForeground",{dark:a.Il.white,light:a.Il.white,hc:null},u.N("listActiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),it=p("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hc:null},u.N("listInactiveSelectionBackground","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),rt=p("list.inactiveSelectionForeground",{dark:null,light:null,hc:null},u.N("listInactiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),ot=p("list.inactiveFocusBackground",{dark:null,light:null,hc:null},u.N("listInactiveFocusBackground","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),at=p("list.inactiveFocusOutline",{dark:null,light:null,hc:null},u.N("listInactiveFocusOutline","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),st=p("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hc:null},u.N("listHoverBackground","List/Tree background when hovering over items using the mouse.")),ut=p("list.hoverForeground",{dark:null,light:null,hc:null},u.N("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),lt=p("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hc:null},u.N("listDropBackground","List/Tree drag and drop background when moving items around using the mouse.")),ct=p("list.highlightForeground",{dark:"#0097fb",light:"#0066BF",hc:_},u.N("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree.")),dt=p("listFilterWidget.background",{light:"#efc1ad",dark:"#653723",hc:a.Il.black},u.N("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),ht=p("listFilterWidget.outline",{dark:a.Il.transparent,light:a.Il.transparent,hc:"#f38518"},u.N("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),ft=p("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hc:y},u.N("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches.")),pt=p("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hc:"#a9a9a9"},u.N("treeIndentGuidesStroke","Tree stroke color for the indentation guides.")),gt=p("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hc:null},u.N("treeIndentGuidesStroke","Tree stroke color for the indentation guides.")),vt=p("quickInput.list.focusBackground",{dark:null,light:null,hc:null},"",void 0,u.N("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead")),mt=p("quickInputList.focusBackground",{dark:Yt(vt,Xe,"#062F4A"),light:Yt(vt,Xe,"#D6EBFF"),hc:null},u.N("quickInput.listFocusBackground","Quick picker background color for the focused item.")),_t=p("menu.border",{dark:null,light:null,hc:y},u.N("menuBorder","Border color of menus.")),yt=p("menu.foreground",{dark:H,light:g,hc:H},u.N("menuForeground","Foreground color of menu items.")),bt=p("menu.background",{dark:j,light:j,hc:j},u.N("menuBackground","Background color of menu items.")),wt=p("menu.selectionForeground",{dark:nt,light:nt,hc:nt},u.N("menuSelectionForeground","Foreground color of the selected menu item in menus.")),Ct=p("menu.selectionBackground",{dark:tt,light:tt,hc:tt},u.N("menuSelectionBackground","Background color of the selected menu item in menus.")),kt=p("menu.selectionBorder",{dark:null,light:null,hc:b},u.N("menuSelectionBorder","Border color of the selected menu item in menus.")),St=p("menu.separatorBackground",{dark:"#BBBBBB",light:"#888888",hc:y},u.N("menuSeparatorBackground","Color of a separator menu item in menus.")),xt=p("editor.snippetTabstopHighlightBackground",{dark:new a.Il(new a.VS(124,124,124,.3)),light:new a.Il(new a.VS(10,50,100,.2)),hc:new a.Il(new a.VS(124,124,124,.3))},u.N("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop.")),Lt=p("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hc:null},u.N("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop.")),Et=p("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hc:null},u.N("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet.")),Nt=p("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new a.Il(new a.VS(10,50,100,.5)),hc:"#525252"},u.N("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet.")),Dt=p("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hc:"#AB5A00"},u.N("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0),Mt=p("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hc:"#A0A0A0CC"},u.N("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Tt=p("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hc:"#AB5A00"},u.N("minimapFindMatchHighlight","Minimap marker color for find matches."),!0),Ot=p("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hc:"#ffffff"},u.N("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),It=p("minimap.errorHighlight",{dark:new a.Il(new a.VS(255,18,18,.7)),light:new a.Il(new a.VS(255,18,18,.7)),hc:new a.Il(new a.VS(255,50,50,1))},u.N("minimapError","Minimap marker color for errors.")),At=p("minimap.warningHighlight",{dark:te,light:te,hc:ne},u.N("overviewRuleWarning","Minimap marker color for warnings.")),Rt=p("minimap.background",{dark:null,light:null,hc:null},u.N("minimapBackground","Minimap background color.")),Pt=p("minimapSlider.background",{light:Vt(K,.5),dark:Vt(K,.5),hc:Vt(K,.5)},u.N("minimapSliderBackground","Minimap slider background color.")),Zt=p("minimapSlider.hoverBackground",{light:Vt(q,.5),dark:Vt(q,.5),hc:Vt(q,.5)},u.N("minimapSliderHoverBackground","Minimap slider background color when hovering.")),Ft=p("minimapSlider.activeBackground",{light:Vt(G,.5),dark:Vt(G,.5),hc:Vt(G,.5)},u.N("minimapSliderActiveBackground","Minimap slider background color when clicked on.")),jt=p("problemsErrorIcon.foreground",{dark:X,light:X,hc:X},u.N("problemsErrorIconForeground","The color used for the problems error icon.")),Ht=p("problemsWarningIcon.foreground",{dark:te,light:te,hc:te},u.N("problemsWarningIconForeground","The color used for the problems warning icon.")),Bt=p("problemsInfoIcon.foreground",{dark:re,light:re,hc:re},u.N("problemsInfoIconForeground","The color used for the problems info icon."));function zt(e,t){return function(n){var i=Kt(e,n);if(i)return i.darken(t)}}function Wt(e,t){return function(n){var i=Kt(e,n);if(i)return i.lighten(t)}}function Vt(e,t){return function(n){var i=Kt(e,n);if(i)return i.transparent(t)}}function Yt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){for(var n=0,i=t;n<i.length;n++){var r=Kt(i[n],e);if(r)return r}}}function Ut(e,t,n,i){return function(r){var o=Kt(e,r);if(o){var s=Kt(t,r);return s?o.isDarkerThan(s)?a.Il.getLighterColor(o,s,n).transparent(i):a.Il.getDarkerColor(o,s,n).transparent(i):o.transparent(n*i)}}}function Kt(e,t){if(null!==e)return"string"===typeof e?"#"===e[0]?a.Il.fromHex(e):t.getColor(e):e instanceof a.Il?e:"function"===typeof e?e(t):void 0}var qt="vscode://schemas/workbench-colors",Gt=o.B.as(l.I.JSONContribution);Gt.registerSchema(qt,f.getColorSchema());var $t=new c.pY((function(){return Gt.notifySchemaChanged(qt)}),200);f.onDidChangeSchema((function(){$t.isScheduled()||$t.schedule()}))},62239:function(e,t,n){"use strict";n.d(t,{Ks:function(){return g},q5:function(){return p},s_:function(){return y}});var i=n(37762),r=n(15671),o=n(43144),a=n(38774),s=n(70182),u=n(11732),l=n(56345),c=n(27930),d=n(27997),h=n(4354),f=new(function(){function e(){(0,r.Z)(this,e),this._onDidChange=new u.Q5,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:(0,l.N)("iconDefintion.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:(0,l.N)("iconDefintion.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:"^".concat(h.dT.iconNameExpression,"$"),enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}return(0,o.Z)(e,[{key:"registerIcon",value:function(e,t,n,i){var r=this.iconsById[e];if(r){if(n&&!r.description){r.description=n,this.iconSchema.properties[e].markdownDescription="".concat(n," $(").concat(e,")");var o=this.iconReferenceSchema.enum.indexOf(e);-1!==o&&(this.iconReferenceSchema.enumDescriptions[o]=n),this._onDidChange.fire()}return r}var a={id:e,description:n,defaults:t,deprecationMessage:i};this.iconsById[e]=a;var s={$ref:"#/definitions/icons"};return i&&(s.deprecationMessage=i),n&&(s.markdownDescription="".concat(n,": $(").concat(e,")")),this.iconSchema.properties[e]=s,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(n||""),this._onDidChange.fire(),{id:e}}},{key:"getIcons",value:function(){var e=this;return Object.keys(this.iconsById).map((function(t){return e.iconsById[t]}))}},{key:"getIcon",value:function(e){return this.iconsById[e]}},{key:"getIconSchema",value:function(){return this.iconSchema}},{key:"getIconFont",value:function(e){return this.iconFontsById[e]}},{key:"toString",value:function(){var e=this,t=function(e,t){return e.id.localeCompare(t.id)},n=function(t){for(;s.kS.isThemeIcon(t.defaults);)t=e.iconsById[t.defaults.id];return"codicon codicon-".concat(t?t.id:"")},r=[];r.push("| preview | identifier | default codicon ID | description"),r.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");var o,a=Object.keys(this.iconsById).map((function(t){return e.iconsById[t]})),u=(0,i.Z)(a.filter((function(e){return!!e.description})).sort(t));try{for(u.s();!(o=u.n()).done;){var l=o.value;r.push('|<i class="'.concat(n(l),'"></i>|').concat(l.id,"|").concat(s.kS.isThemeIcon(l.defaults)?l.defaults.id:l.id,"|").concat(l.description||"","|"))}}catch(f){u.e(f)}finally{u.f()}r.push("| preview | identifier "),r.push("| ----------- | --------------------------------- |");var c,d=(0,i.Z)(a.filter((function(e){return!s.kS.isThemeIcon(e.defaults)})).sort(t));try{for(d.s();!(c=d.n()).done;){var h=c.value;r.push('|<i class="'.concat(n(h),'"></i>|').concat(h.id,"|"))}}catch(f){d.e(f)}finally{d.f()}return r.join("\n")}}]),e}());function p(e,t,n,i){return f.registerIcon(e,t,n,i)}function g(){return f}a.B.add("base.contributions.icons",f),function(){var e,t=(0,i.Z)(h.fK.all);try{for(t.s();!(e=t.n()).done;){var n=e.value;f.registerIcon(n.id,n.definition,n.description)}}catch(r){t.e(r)}finally{t.f()}h.fK.onDidRegister((function(e){return f.registerIcon(e.id,e.definition,e.description)}))}();var v="vscode://schemas/icons",m=a.B.as(c.I.JSONContribution);m.registerSchema(v,f.getIconSchema());var _=new d.pY((function(){return m.notifySchemaChanged(v)}),200);f.onDidChange((function(){_.isScheduled()||_.schedule()}));var y=p("widget-close",h.lA.close,(0,l.N)("widgetClose","Icon for the close action in widgets."))},35215:function(e,t,n){"use strict";n.d(t,{Jl:function(){return s},O2:function(){return u},WZ:function(){return a},o:function(){return r},tj:function(){return c}});var i=n(92992);function r(e,t){var n=Object.create(null);for(var r in t){var o=t[r];o&&(n[r]=(0,i.Sn)(o,e))}return n}function o(e,t,n){function i(i){var o=r(e.getColorTheme(),t);"function"===typeof n?n(o):n.style(o)}return i(e.getColorTheme()),e.onDidColorThemeChange(i)}function a(e,t,n){return o(t,{badgeBackground:(null===n||void 0===n?void 0:n.badgeBackground)||i.g8,badgeForeground:(null===n||void 0===n?void 0:n.badgeForeground)||i.qe,badgeBorder:i.lR},e)}function s(e,t,n){return o(t,Object.assign(Object.assign({},u),n||{}),e)}var u={listFocusBackground:i._b,listFocusForeground:i._2,listFocusOutline:i.Oo,listActiveSelectionBackground:i.dC,listActiveSelectionForeground:i.M6,listFocusAndSelectionBackground:i.dC,listFocusAndSelectionForeground:i.M6,listInactiveSelectionBackground:i.rg,listInactiveSelectionForeground:i.yt,listInactiveFocusBackground:i.s$,listInactiveFocusOutline:i.F3,listHoverBackground:i.mV,listHoverForeground:i.$d,listDropBackground:i.AS,listSelectionOutline:i.xL,listHoverOutline:i.xL,listFilterWidgetBackground:i.vG,listFilterWidgetOutline:i.oS,listFilterWidgetNoMatchesOutline:i.S,listMatchesShadow:i.rh,treeIndentGuidesStroke:i.Un,tableColumnsBorder:i.ux},l={shadowColor:i.rh,borderColor:i.Cd,foregroundColor:i.DE,backgroundColor:i.Hz,selectionForegroundColor:i.jb,selectionBackgroundColor:i.$D,selectionBorderColor:i.E3,separatorColor:i.ZG};function c(e,t,n){return o(t,Object.assign(Object.assign({},l),n),e)}},7644:function(e,t,n){"use strict";var i;n.d(t,{e:function(){return i}}),function(e){e.DARK="dark",e.LIGHT="light",e.HIGH_CONTRAST="hc"}(i||(i={}))},70182:function(e,t,n){"use strict";n.d(t,{EN:function(){return m},IP:function(){return y},Ic:function(){return w},XE:function(){return v},bB:function(){return C},kS:function(){return r},m6:function(){return _}});var i,r,o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(29439),c=n(84596),d=n(81626),h=n(38774),f=n(11732),p=n(7644),g=n(4354),v=(0,c.yh)("themeService");function m(e){return{id:e}}function _(e){switch(e){case p.e.DARK:return"vs-dark";case p.e.HIGH_CONTRAST:return"hc-black";default:return"vs"}}!function(e){e.isThemeColor=function(e){return e&&"object"===typeof e&&"string"===typeof e.id}}(i||(i={})),function(e){e.isThemeIcon=function(e){return e&&"object"===typeof e&&"string"===typeof e.id&&("undefined"===typeof e.color||i.isThemeColor(e.color))};var t=new RegExp("^\\$\\((".concat(g.dT.iconNameExpression,"(?:").concat(g.dT.iconModifierExpression,")?)\\)$"));e.fromString=function(e){var n=t.exec(e);if(n)return{id:(0,l.Z)(n,2)[1]}},e.modify=function(e,t){var n=e.id,i=n.lastIndexOf("~");return-1!==i&&(n=n.substring(0,i)),t&&(n="".concat(n,"~").concat(t)),{id:n}},e.isEqual=function(e,t){var n,i;return e.id===t.id&&(null===(n=e.color)||void 0===n?void 0:n.id)===(null===(i=t.color)||void 0===i?void 0:i.id)},e.asClassNameArray=g.dT.asClassNameArray,e.asClassName=g.dT.asClassName,e.asCSSSelector=g.dT.asCSSSelector}(r||(r={}));var y={ThemingContribution:"base.contributions.theming"},b=new(function(){function e(){(0,s.Z)(this,e),this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new f.Q5}return(0,u.Z)(e,[{key:"onColorThemeChange",value:function(e){var t=this;return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),(0,d.OF)((function(){var n=t.themingParticipants.indexOf(e);t.themingParticipants.splice(n,1)}))}},{key:"getThemingParticipants",value:function(){return this.themingParticipants}}]),e}());function w(e){return b.onColorThemeChange(e)}h.B.add(y.ThemingContribution,b);var C=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this)).themeService=e,i.theme=e.getColorTheme(),i._register(i.themeService.onDidColorThemeChange((function(e){return i.onThemeChange(e)}))),i}return(0,u.Z)(n,[{key:"onThemeChange",value:function(e){this.theme=e,this.updateStyles()}},{key:"updateStyles",value:function(){}}]),n}(d.JT)},45822:function(e,t,n){"use strict";n.d(t,{Xt:function(){return s},YO:function(){return a},gJ:function(){return u},tJ:function(){return o}});var i=n(43144),r=n(15671),o=(0,n(84596).yh)("undoRedoService"),a=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.resource=t,this.elements=n})),s=function(){function e(){(0,r.Z)(this,e),this.id=e._ID++,this.order=1}return(0,i.Z)(e,[{key:"nextOrder",value:function(){return 0===this.id?0:this.order++}}]),e}();s._ID=0,s.None=new s;var u=function(){function e(){(0,r.Z)(this,e),this.id=e._ID++,this.order=1}return(0,i.Z)(e,[{key:"nextOrder",value:function(){return 0===this.id?0:this.order++}}]),e}();u._ID=0,u.None=new u},37753:function(e,t,n){"use strict";n.d(t,{ec:function(){return a},md:function(){return s}});var i=n(15671),r=n(43144),o=n(84596),a=(n(15022),(0,o.yh)("contextService")),s=function(){function e(t,n){(0,i.Z)(this,e),this.raw=n,this.uri=t.uri,this.index=t.index,this.name=t.name}return(0,r.Z)(e,[{key:"toJSON",value:function(){return{uri:this.uri,name:this.name,index:this.index}}}]),e}()},10135:function(e,t,n){var i,r,o;r=[n(25017)],void 0===(o="function"===typeof(i=function(e){e.register("locale","bg",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"\u0445\u0438\u043b",million:"\u043c\u043b\u043d",billion:"\u043c\u043b\u0440\u0434",trillion:"\u0442\u0440\u043b\u043d"},ordinal:function(e){return""},currency:{symbol:"\u043b\u0432"}}),e.register("locale","chs",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"\u5343",million:"\u767e\u4e07",billion:"\u5341\u4ebf",trillion:"\u5146"},ordinal:function(e){return"."},currency:{symbol:"\xa5"}}),e.register("locale","cs",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"tis.",million:"mil.",billion:"b",trillion:"t"},ordinal:function(){return"."},currency:{symbol:"K\u010d"}}),e.register("locale","da-dk",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mio",billion:"mia",trillion:"b"},ordinal:function(e){return"."},currency:{symbol:"DKK"}}),e.register("locale","de-ch",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return"."},currency:{symbol:"CHF"}}),e.register("locale","de",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","en-au",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),e.register("locale","en-gb",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"\xa3"}}),e.register("locale","en-za",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"R"}}),e.register("locale","es-es",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mm",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"\u20ac"}}),e.register("locale","es",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mm",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"$"}}),e.register("locale","et",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:" tuh",million:" mln",billion:" mld",trillion:" trl"},ordinal:function(e){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","fi",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"M",billion:"G",trillion:"T"},ordinal:function(e){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","fr-ca",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"M",billion:"G",trillion:"T"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"$"}}),e.register("locale","fr-ch",{delimiters:{thousands:"'",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"CHF"}}),e.register("locale","fr",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"\u20ac"}}),e.register("locale","hu",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"E",million:"M",billion:"Mrd",trillion:"T"},ordinal:function(e){return"."},currency:{symbol:" Ft"}}),e.register("locale","it",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"mila",million:"mil",billion:"b",trillion:"t"},ordinal:function(e){return"\xba"},currency:{symbol:"\u20ac"}}),e.register("locale","ja",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"\u5343",million:"\u767e\u4e07",billion:"\u5341\u5104",trillion:"\u5146"},ordinal:function(e){return"."},currency:{symbol:"\xa5"}}),e.register("locale","lv",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:" t\u016bkst.",million:" milj.",billion:" mljrd.",trillion:" trilj."},ordinal:function(e){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","nl-be",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:" mln",billion:" mld",trillion:" bln"},ordinal:function(e){var t=e%100;return 0!==e&&t<=1||8===t||t>=20?"ste":"de"},currency:{symbol:"\u20ac "}}),e.register("locale","nl-nl",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mln",billion:"mrd",trillion:"bln"},ordinal:function(e){var t=e%100;return 0!==e&&t<=1||8===t||t>=20?"ste":"de"},currency:{symbol:"\u20ac "}}),e.register("locale","no",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return"."},currency:{symbol:"kr"}}),e.register("locale","pl",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"tys.",million:"mln",billion:"mld",trillion:"bln"},ordinal:function(e){return"."},currency:{symbol:"PLN"}}),e.register("locale","pt-br",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"mil",million:"milh\xf5es",billion:"b",trillion:"t"},ordinal:function(e){return"\xba"},currency:{symbol:"R$"}}),e.register("locale","pt-pt",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return"\xba"},currency:{symbol:"\u20ac"}}),e.register("locale","ru-ua",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"\u0442\u044b\u0441.",million:"\u043c\u043b\u043d",billion:"b",trillion:"t"},ordinal:function(){return"."},currency:{symbol:"\u20b4"}}),e.register("locale","ru",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"\u0442\u044b\u0441.",million:"\u043c\u043b\u043d.",billion:"\u043c\u043b\u0440\u0434.",trillion:"\u0442\u0440\u043b\u043d."},ordinal:function(){return"."},currency:{symbol:"\u0440\u0443\u0431."}}),e.register("locale","sk",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"tis.",million:"mil.",billion:"b",trillion:"t"},ordinal:function(){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","sl",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mio",billion:"mrd",trillion:"trilijon"},ordinal:function(){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","th",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"\u0e1e\u0e31\u0e19",million:"\u0e25\u0e49\u0e32\u0e19",billion:"\u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19",trillion:"\u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},ordinal:function(e){return"."},currency:{symbol:"\u0e3f"}}),function(){var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};e.register("locale","tr",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"bin",million:"milyon",billion:"milyar",trillion:"trilyon"},ordinal:function(e){if(0===e)return"'\u0131nc\u0131";var n=e%10,i=e%100-n,r=e>=100?100:null;return t[n]||t[i]||t[r]},currency:{symbol:"\u20ba"}})}(),e.register("locale","uk-ua",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"\u0442\u0438\u0441.",million:"\u043c\u043b\u043d",billion:"\u043c\u043b\u0440\u0434",trillion:"\u0431\u043b\u043d"},ordinal:function(){return""},currency:{symbol:"\u20b4"}}),e.register("locale","vi",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:" ngh\xecn",million:" tri\u1ec7u",billion:" t\u1ef7",trillion:" ngh\xecn t\u1ef7"},ordinal:function(){return"."},currency:{symbol:"\u20ab"}})})?i.apply(t,r):i)||(e.exports=o)},25017:function(e,t,n){var i,r;i=function(){var e,t,n="2.0.6",i={},r={},o={currentLocale:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0",scalePercentBy100:!0},a={currentLocale:o.currentLocale,zeroFormat:o.zeroFormat,nullFormat:o.nullFormat,defaultFormat:o.defaultFormat,scalePercentBy100:o.scalePercentBy100};function s(e,t){this._input=e,this._value=t}return(e=function(n){var r,o,u,l;if(e.isNumeral(n))r=n.value();else if(0===n||"undefined"===typeof n)r=0;else if(null===n||t.isNaN(n))r=null;else if("string"===typeof n)if(a.zeroFormat&&n===a.zeroFormat)r=0;else if(a.nullFormat&&n===a.nullFormat||!n.replace(/[^0-9]+/g,"").length)r=null;else{for(o in i)if((l="function"===typeof i[o].regexps.unformat?i[o].regexps.unformat():i[o].regexps.unformat)&&n.match(l)){u=i[o].unformat;break}r=(u=u||e._.stringToNumber)(n)}else r=Number(n)||null;return new s(n,r)}).version=n,e.isNumeral=function(e){return e instanceof s},e._=t={numberToFormat:function(t,n,i){var o,a,s,u,l,c,d,h=r[e.options.currentLocale],f=!1,p=!1,g=0,v="",m=1e12,_=1e9,y=1e6,b=1e3,w="",C=!1;if(t=t||0,a=Math.abs(t),e._.includes(n,"(")?(f=!0,n=n.replace(/[\(|\)]/g,"")):(e._.includes(n,"+")||e._.includes(n,"-"))&&(l=e._.includes(n,"+")?n.indexOf("+"):t<0?n.indexOf("-"):-1,n=n.replace(/[\+|\-]/g,"")),e._.includes(n,"a")&&(o=!!(o=n.match(/a(k|m|b|t)?/))&&o[1],e._.includes(n," a")&&(v=" "),n=n.replace(new RegExp(v+"a[kmbt]?"),""),a>=m&&!o||"t"===o?(v+=h.abbreviations.trillion,t/=m):a<m&&a>=_&&!o||"b"===o?(v+=h.abbreviations.billion,t/=_):a<_&&a>=y&&!o||"m"===o?(v+=h.abbreviations.million,t/=y):(a<y&&a>=b&&!o||"k"===o)&&(v+=h.abbreviations.thousand,t/=b)),e._.includes(n,"[.]")&&(p=!0,n=n.replace("[.]",".")),s=t.toString().split(".")[0],u=n.split(".")[1],c=n.indexOf(","),g=(n.split(".")[0].split(",")[0].match(/0/g)||[]).length,u?(e._.includes(u,"[")?(u=(u=u.replace("]","")).split("["),w=e._.toFixed(t,u[0].length+u[1].length,i,u[1].length)):w=e._.toFixed(t,u.length,i),s=w.split(".")[0],w=e._.includes(w,".")?h.delimiters.decimal+w.split(".")[1]:"",p&&0===Number(w.slice(1))&&(w="")):s=e._.toFixed(t,0,i),v&&!o&&Number(s)>=1e3&&v!==h.abbreviations.trillion)switch(s=String(Number(s)/1e3),v){case h.abbreviations.thousand:v=h.abbreviations.million;break;case h.abbreviations.million:v=h.abbreviations.billion;break;case h.abbreviations.billion:v=h.abbreviations.trillion}if(e._.includes(s,"-")&&(s=s.slice(1),C=!0),s.length<g)for(var k=g-s.length;k>0;k--)s="0"+s;return c>-1&&(s=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+h.delimiters.thousands)),0===n.indexOf(".")&&(s=""),d=s+w+(v||""),f?d=(f&&C?"(":"")+d+(f&&C?")":""):l>=0?d=0===l?(C?"-":"+")+d:d+(C?"-":"+"):C&&(d="-"+d),d},stringToNumber:function(e){var t,n,i,o=r[a.currentLocale],s=e,u={thousand:3,million:6,billion:9,trillion:12};if(a.zeroFormat&&e===a.zeroFormat)n=0;else if(a.nullFormat&&e===a.nullFormat||!e.replace(/[^0-9]+/g,"").length)n=null;else{for(t in n=1,"."!==o.delimiters.decimal&&(e=e.replace(/\./g,"").replace(o.delimiters.decimal,".")),u)if(i=new RegExp("[^a-zA-Z]"+o.abbreviations[t]+"(?:\\)|(\\"+o.currency.symbol+")?(?:\\))?)?$"),s.match(i)){n*=Math.pow(10,u[t]);break}n*=(e.split("-").length+Math.min(e.split("(").length-1,e.split(")").length-1))%2?1:-1,e=e.replace(/[^0-9\.]+/g,""),n*=Number(e)}return n},isNaN:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){return"number"===typeof e&&isNaN(e)})),includes:function(e,t){return-1!==e.indexOf(t)},insert:function(e,t,n){return e.slice(0,n)+t+e.slice(n)},reduce:function(e,t){if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!==typeof t)throw new TypeError(t+" is not a function");var n,i=Object(e),r=i.length>>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o<r&&!(o in i);)o++;if(o>=r)throw new TypeError("Reduce of empty array with no initial value");n=i[o++]}for(;o<r;o++)o in i&&(n=t(n,i[o],o,i));return n},multiplier:function(e){var t=e.toString().split(".");return t.length<2?1:Math.pow(10,t[1].length)},correctionFactor:function(){return Array.prototype.slice.call(arguments).reduce((function(e,n){var i=t.multiplier(n);return e>i?e:i}),1)},toFixed:function(e,t,n,i){var r,o,a,s,u=e.toString().split("."),l=t-(i||0);return r=2===u.length?Math.min(Math.max(u[1].length,l),t):l,a=Math.pow(10,r),s=(n(e+"e+"+r)/a).toFixed(r),i>t-r&&(o=new RegExp("\\.?0{1,"+(i-(t-r))+"}$"),s=s.replace(o,"")),s}},e.options=a,e.formats=i,e.locales=r,e.locale=function(e){return e&&(a.currentLocale=e.toLowerCase()),a.currentLocale},e.localeData=function(e){if(!e)return r[a.currentLocale];if(e=e.toLowerCase(),!r[e])throw new Error("Unknown locale : "+e);return r[e]},e.reset=function(){for(var e in o)a[e]=o[e]},e.zeroFormat=function(e){a.zeroFormat="string"===typeof e?e:null},e.nullFormat=function(e){a.nullFormat="string"===typeof e?e:null},e.defaultFormat=function(e){a.defaultFormat="string"===typeof e?e:"0.0"},e.register=function(e,t,n){if(t=t.toLowerCase(),this[e+"s"][t])throw new TypeError(t+" "+e+" already registered.");return this[e+"s"][t]=n,n},e.validate=function(t,n){var i,r,o,a,s,u,l,c;if("string"!==typeof t&&(t+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",t)),(t=t.trim()).match(/^\d+$/))return!0;if(""===t)return!1;try{l=e.localeData(n)}catch(d){l=e.localeData(e.locale())}return o=l.currency.symbol,s=l.abbreviations,i=l.delimiters.decimal,r="."===l.delimiters.thousands?"\\.":l.delimiters.thousands,(null===(c=t.match(/^[^\d]+/))||(t=t.substr(1),c[0]===o))&&(null===(c=t.match(/[^\d]+$/))||(t=t.slice(0,-1),c[0]===s.thousand||c[0]===s.million||c[0]===s.billion||c[0]===s.trillion))&&(u=new RegExp(r+"{2}"),!t.match(/[^\d.,]/g)&&!((a=t.split(i)).length>2)&&(a.length<2?!!a[0].match(/^\d+.*\d$/)&&!a[0].match(u):1===a[0].length?!!a[0].match(/^\d+$/)&&!a[0].match(u)&&!!a[1].match(/^\d+$/):!!a[0].match(/^\d+.*\d$/)&&!a[0].match(u)&&!!a[1].match(/^\d+$/)))},e.fn=s.prototype={clone:function(){return e(this)},format:function(t,n){var r,o,s,u=this._value,l=t||a.defaultFormat;if(n=n||Math.round,0===u&&null!==a.zeroFormat)o=a.zeroFormat;else if(null===u&&null!==a.nullFormat)o=a.nullFormat;else{for(r in i)if(l.match(i[r].regexps.format)){s=i[r].format;break}o=(s=s||e._.numberToFormat)(u,l,n)}return o},value:function(){return this._value},input:function(){return this._input},set:function(e){return this._value=Number(e),this},add:function(e){var n=t.correctionFactor.call(null,this._value,e);function i(e,t,i,r){return e+Math.round(n*t)}return this._value=t.reduce([this._value,e],i,0)/n,this},subtract:function(e){var n=t.correctionFactor.call(null,this._value,e);function i(e,t,i,r){return e-Math.round(n*t)}return this._value=t.reduce([e],i,Math.round(this._value*n))/n,this},multiply:function(e){function n(e,n,i,r){var o=t.correctionFactor(e,n);return Math.round(e*o)*Math.round(n*o)/Math.round(o*o)}return this._value=t.reduce([this._value,e],n,1),this},divide:function(e){function n(e,n,i,r){var o=t.correctionFactor(e,n);return Math.round(e*o)/Math.round(n*o)}return this._value=t.reduce([this._value,e],n),this},difference:function(t){return Math.abs(e(this._value).subtract(t).value())}},e.register("locale","en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),e.register("format","bps",{regexps:{format:/(BPS)/,unformat:/(BPS)/},format:function(t,n,i){var r,o=e._.includes(n," BPS")?" ":"";return t*=1e4,n=n.replace(/\s?BPS/,""),r=e._.numberToFormat(t,n,i),e._.includes(r,")")?((r=r.split("")).splice(-1,0,o+"BPS"),r=r.join("")):r=r+o+"BPS",r},unformat:function(t){return+(1e-4*e._.stringToNumber(t)).toFixed(15)}}),function(){var t={base:1e3,suffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]},n={base:1024,suffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},i=t.suffixes.concat(n.suffixes.filter((function(e){return t.suffixes.indexOf(e)<0}))).join("|");i="("+i.replace("B","B(?!PS)")+")",e.register("format","bytes",{regexps:{format:/([0\s]i?b)/,unformat:new RegExp(i)},format:function(i,r,o){var a,s,u,l=e._.includes(r,"ib")?n:t,c=e._.includes(r," b")||e._.includes(r," ib")?" ":"";for(r=r.replace(/\s?i?b/,""),a=0;a<=l.suffixes.length;a++)if(s=Math.pow(l.base,a),u=Math.pow(l.base,a+1),null===i||0===i||i>=s&&i<u){c+=l.suffixes[a],s>0&&(i/=s);break}return e._.numberToFormat(i,r,o)+c},unformat:function(i){var r,o,a=e._.stringToNumber(i);if(a){for(r=t.suffixes.length-1;r>=0;r--){if(e._.includes(i,t.suffixes[r])){o=Math.pow(t.base,r);break}if(e._.includes(i,n.suffixes[r])){o=Math.pow(n.base,r);break}}a*=o||1}return a}})}(),e.register("format","currency",{regexps:{format:/(\$)/},format:function(t,n,i){var r,o,a=e.locales[e.options.currentLocale],s={before:n.match(/^([\+|\-|\(|\s|\$]*)/)[0],after:n.match(/([\+|\-|\)|\s|\$]*)$/)[0]};for(n=n.replace(/\s?\$\s?/,""),r=e._.numberToFormat(t,n,i),t>=0?(s.before=s.before.replace(/[\-\(]/,""),s.after=s.after.replace(/[\-\)]/,"")):t<0&&!e._.includes(s.before,"-")&&!e._.includes(s.before,"(")&&(s.before="-"+s.before),o=0;o<s.before.length;o++)switch(s.before[o]){case"$":r=e._.insert(r,a.currency.symbol,o);break;case" ":r=e._.insert(r," ",o+a.currency.symbol.length-1)}for(o=s.after.length-1;o>=0;o--)switch(s.after[o]){case"$":r=o===s.after.length-1?r+a.currency.symbol:e._.insert(r,a.currency.symbol,-(s.after.length-(1+o)));break;case" ":r=o===s.after.length-1?r+" ":e._.insert(r," ",-(s.after.length-(1+o)+a.currency.symbol.length-1))}return r}}),e.register("format","exponential",{regexps:{format:/(e\+|e-)/,unformat:/(e\+|e-)/},format:function(t,n,i){var r=("number"!==typeof t||e._.isNaN(t)?"0e+0":t.toExponential()).split("e");return n=n.replace(/e[\+|\-]{1}0/,""),e._.numberToFormat(Number(r[0]),n,i)+"e"+r[1]},unformat:function(t){var n=e._.includes(t,"e+")?t.split("e+"):t.split("e-"),i=Number(n[0]),r=Number(n[1]);function o(t,n,i,r){var o=e._.correctionFactor(t,n);return t*o*(n*o)/(o*o)}return r=e._.includes(t,"e-")?r*=-1:r,e._.reduce([i,Math.pow(10,r)],o,1)}}),e.register("format","ordinal",{regexps:{format:/(o)/},format:function(t,n,i){var r=e.locales[e.options.currentLocale],o=e._.includes(n," o")?" ":"";return n=n.replace(/\s?o/,""),o+=r.ordinal(t),e._.numberToFormat(t,n,i)+o}}),e.register("format","percentage",{regexps:{format:/(%)/,unformat:/(%)/},format:function(t,n,i){var r,o=e._.includes(n," %")?" ":"";return e.options.scalePercentBy100&&(t*=100),n=n.replace(/\s?\%/,""),r=e._.numberToFormat(t,n,i),e._.includes(r,")")?((r=r.split("")).splice(-1,0,o+"%"),r=r.join("")):r=r+o+"%",r},unformat:function(t){var n=e._.stringToNumber(t);return e.options.scalePercentBy100?.01*n:n}}),e.register("format","time",{regexps:{format:/(:)/,unformat:/(:)/},format:function(e,t,n){var i=Math.floor(e/60/60),r=Math.floor((e-60*i*60)/60),o=Math.round(e-60*i*60-60*r);return i+":"+(r<10?"0"+r:r)+":"+(o<10?"0"+o:o)},unformat:function(e){var t=e.split(":"),n=0;return 3===t.length?(n+=60*Number(t[0])*60,n+=60*Number(t[1]),n+=Number(t[2])):2===t.length&&(n+=60*Number(t[0]),n+=Number(t[1])),Number(n)}}),e},void 0===(r="function"===typeof i?i.call(t,n,t,e):i)||(e.exports=r)},58105:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach((function(e){i[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(r){return!1}}()?Object.assign:function(e,r){for(var o,a,s=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u<arguments.length;u++){for(var l in o=Object(arguments[u]))n.call(o,l)&&(s[l]=o[l]);if(t){a=t(o);for(var c=0;c<a.length;c++)i.call(o,a[c])&&(s[a[c]]=o[a[c]])}}return s}},27481:function(e,t,n){var i="function"===typeof Map&&Map.prototype,r=Object.getOwnPropertyDescriptor&&i?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,o=i&&r&&"function"===typeof r.get?r.get:null,a=i&&Map.prototype.forEach,s="function"===typeof Set&&Set.prototype,u=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,l=s&&u&&"function"===typeof u.get?u.get:null,c=s&&Set.prototype.forEach,d="function"===typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,h="function"===typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,f="function"===typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,p=Boolean.prototype.valueOf,g=Object.prototype.toString,v=Function.prototype.toString,m=String.prototype.match,_=String.prototype.slice,y=String.prototype.replace,b=String.prototype.toUpperCase,w=String.prototype.toLowerCase,C=RegExp.prototype.test,k=Array.prototype.concat,S=Array.prototype.join,x=Array.prototype.slice,L=Math.floor,E="function"===typeof BigInt?BigInt.prototype.valueOf:null,N=Object.getOwnPropertySymbols,D="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?Symbol.prototype.toString:null,M="function"===typeof Symbol&&"object"===typeof Symbol.iterator,T="function"===typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===M||"symbol")?Symbol.toStringTag:null,O=Object.prototype.propertyIsEnumerable,I=("function"===typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function A(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||C.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"===typeof e){var i=e<0?-L(-e):L(e);if(i!==e){var r=String(i),o=_.call(t,r.length+1);return y.call(r,n,"$&_")+"."+y.call(y.call(o,/([0-9]{3})/g,"$&_"),/_$/,"")}}return y.call(t,n,"$&_")}var R=n(24654).custom,P=R&&H(R)?R:null;function Z(e,t,n){var i="double"===(n.quoteStyle||t)?'"':"'";return i+e+i}function F(e){return y.call(String(e),/"/g,"&quot;")}function j(e){return"[object Array]"===W(e)&&(!T||!("object"===typeof e&&T in e))}function H(e){if(M)return e&&"object"===typeof e&&e instanceof Symbol;if("symbol"===typeof e)return!0;if(!e||"object"!==typeof e||!D)return!1;try{return D.call(e),!0}catch(t){}return!1}e.exports=function e(t,n,i,r){var s=n||{};if(z(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(z(s,"maxStringLength")&&("number"===typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var u=!z(s,"customInspect")||s.customInspect;if("boolean"!==typeof u&&"symbol"!==u)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(z(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(z(s,"numericSeparator")&&"boolean"!==typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var g=s.numericSeparator;if("undefined"===typeof t)return"undefined";if(null===t)return"null";if("boolean"===typeof t)return t?"true":"false";if("string"===typeof t)return Y(t,s);if("number"===typeof t){if(0===t)return 1/0/t>0?"0":"-0";var b=String(t);return g?A(t,b):b}if("bigint"===typeof t){var C=String(t)+"n";return g?A(t,C):C}var L="undefined"===typeof s.depth?5:s.depth;if("undefined"===typeof i&&(i=0),i>=L&&L>0&&"object"===typeof t)return j(t)?"[Array]":"[Object]";var N=function(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"===typeof e.indent&&e.indent>0))return null;n=S.call(Array(e.indent+1)," ")}return{base:n,prev:S.call(Array(t+1),n)}}(s,i);if("undefined"===typeof r)r=[];else if(V(r,t)>=0)return"[Circular]";function R(t,n,o){if(n&&(r=x.call(r)).push(n),o){var a={depth:s.depth};return z(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,i+1,r)}return e(t,s,i+1,r)}if("function"===typeof t){var B=function(e){if(e.name)return e.name;var t=m.call(v.call(e),/^function\s*([\w$]+)/);if(t)return t[1];return null}(t),U=Q(t,R);return"[Function"+(B?": "+B:" (anonymous)")+"]"+(U.length>0?" { "+S.call(U,", ")+" }":"")}if(H(t)){var X=M?y.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):D.call(t);return"object"!==typeof t||M?X:K(X)}if(function(e){if(!e||"object"!==typeof e)return!1;if("undefined"!==typeof HTMLElement&&e instanceof HTMLElement)return!0;return"string"===typeof e.nodeName&&"function"===typeof e.getAttribute}(t)){for(var J="<"+w.call(String(t.nodeName)),ee=t.attributes||[],te=0;te<ee.length;te++)J+=" "+ee[te].name+"="+Z(F(ee[te].value),"double",s);return J+=">",t.childNodes&&t.childNodes.length&&(J+="..."),J+="</"+w.call(String(t.nodeName))+">"}if(j(t)){if(0===t.length)return"[]";var ne=Q(t,R);return N&&!function(e){for(var t=0;t<e.length;t++)if(V(e[t],"\n")>=0)return!1;return!0}(ne)?"["+$(ne,N)+"]":"[ "+S.call(ne,", ")+" ]"}if(function(e){return"[object Error]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t)){var ie=Q(t,R);return"cause"in t&&!O.call(t,"cause")?"{ ["+String(t)+"] "+S.call(k.call("[cause]: "+R(t.cause),ie),", ")+" }":0===ie.length?"["+String(t)+"]":"{ ["+String(t)+"] "+S.call(ie,", ")+" }"}if("object"===typeof t&&u){if(P&&"function"===typeof t[P])return t[P]();if("symbol"!==u&&"function"===typeof t.inspect)return t.inspect()}if(function(e){if(!o||!e||"object"!==typeof e)return!1;try{o.call(e);try{l.call(e)}catch(J){return!0}return e instanceof Map}catch(t){}return!1}(t)){var re=[];return a.call(t,(function(e,n){re.push(R(n,t,!0)+" => "+R(e,t))})),G("Map",o.call(t),re,N)}if(function(e){if(!l||!e||"object"!==typeof e)return!1;try{l.call(e);try{o.call(e)}catch(t){return!0}return e instanceof Set}catch(n){}return!1}(t)){var oe=[];return c.call(t,(function(e){oe.push(R(e,t))})),G("Set",l.call(t),oe,N)}if(function(e){if(!d||!e||"object"!==typeof e)return!1;try{d.call(e,d);try{h.call(e,h)}catch(J){return!0}return e instanceof WeakMap}catch(t){}return!1}(t))return q("WeakMap");if(function(e){if(!h||!e||"object"!==typeof e)return!1;try{h.call(e,h);try{d.call(e,d)}catch(J){return!0}return e instanceof WeakSet}catch(t){}return!1}(t))return q("WeakSet");if(function(e){if(!f||!e||"object"!==typeof e)return!1;try{return f.call(e),!0}catch(t){}return!1}(t))return q("WeakRef");if(function(e){return"[object Number]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t))return K(R(Number(t)));if(function(e){if(!e||"object"!==typeof e||!E)return!1;try{return E.call(e),!0}catch(t){}return!1}(t))return K(R(E.call(t)));if(function(e){return"[object Boolean]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t))return K(p.call(t));if(function(e){return"[object String]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t))return K(R(String(t)));if(!function(e){return"[object Date]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t)&&!function(e){return"[object RegExp]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t)){var ae=Q(t,R),se=I?I(t)===Object.prototype:t instanceof Object||t.constructor===Object,ue=t instanceof Object?"":"null prototype",le=!se&&T&&Object(t)===t&&T in t?_.call(W(t),8,-1):ue?"Object":"",ce=(se||"function"!==typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(le||ue?"["+S.call(k.call([],le||[],ue||[]),": ")+"] ":"");return 0===ae.length?ce+"{}":N?ce+"{"+$(ae,N)+"}":ce+"{ "+S.call(ae,", ")+" }"}return String(t)};var B=Object.prototype.hasOwnProperty||function(e){return e in this};function z(e,t){return B.call(e,t)}function W(e){return g.call(e)}function V(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n;return-1}function Y(e,t){if(e.length>t.maxStringLength){var n=e.length-t.maxStringLength,i="... "+n+" more character"+(n>1?"s":"");return Y(_.call(e,0,t.maxStringLength),t)+i}return Z(y.call(y.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,U),"single",t)}function U(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+b.call(t.toString(16))}function K(e){return"Object("+e+")"}function q(e){return e+" { ? }"}function G(e,t,n,i){return e+" ("+t+") {"+(i?$(n,i):S.call(n,", "))+"}"}function $(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+S.call(e,","+n)+"\n"+t.prev}function Q(e,t){var n=j(e),i=[];if(n){i.length=e.length;for(var r=0;r<e.length;r++)i[r]=z(e,r)?t(e[r],e):""}var o,a="function"===typeof N?N(e):[];if(M){o={};for(var s=0;s<a.length;s++)o["$"+a[s]]=a[s]}for(var u in e)z(e,u)&&(n&&String(Number(u))===u&&u<e.length||M&&o["$"+u]instanceof Symbol||(C.call(/[^\w$]/,u)?i.push(t(u,e)+": "+t(e[u],e)):i.push(u+": "+t(e[u],e))));if("function"===typeof N)for(var l=0;l<a.length;l++)O.call(e,a[l])&&i.push("["+t(a[l])+"]: "+t(e[a[l]],e));return i}},2137:function(e){e.exports=l,e.exports.parse=i,e.exports.compile=function(e,t){return r(i(e,t))},e.exports.tokensToFunction=r,e.exports.tokensToRegExp=u;var t="/",n=new RegExp(["(\\\\.)","(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?"].join("|"),"g");function i(e,i){for(var r,s=[],u=0,l=0,c="",d=i&&i.delimiter||t,h=i&&i.whitelist||void 0,f=!1;null!==(r=n.exec(e));){var p=r[0],g=r[1],v=r.index;if(c+=e.slice(l,v),l=v+p.length,g)c+=g[1],f=!0;else{var m="",_=r[2],y=r[3],b=r[4],w=r[5];if(!f&&c.length){var C=c.length-1,k=c[C];(!h||h.indexOf(k)>-1)&&(m=k,c=c.slice(0,C))}c&&(s.push(c),c="",f=!1);var S="+"===w||"*"===w,x="?"===w||"*"===w,L=y||b,E=m||d;s.push({name:_||u++,prefix:m,delimiter:E,optional:x,repeat:S,pattern:L?a(L):"[^"+o(E===d?E:E+d)+"]+?"})}}return(c||l<e.length)&&s.push(c+e.substr(l)),s}function r(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"===typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,i){for(var r="",o=i&&i.encode||encodeURIComponent,a=0;a<e.length;a++){var s=e[a];if("string"!==typeof s){var u,l=n?n[s.name]:void 0;if(Array.isArray(l)){if(!s.repeat)throw new TypeError('Expected "'+s.name+'" to not repeat, but got array');if(0===l.length){if(s.optional)continue;throw new TypeError('Expected "'+s.name+'" to not be empty')}for(var c=0;c<l.length;c++){if(u=o(l[c],s),!t[a].test(u))throw new TypeError('Expected all "'+s.name+'" to match "'+s.pattern+'"');r+=(0===c?s.prefix:s.delimiter)+u}}else if("string"!==typeof l&&"number"!==typeof l&&"boolean"!==typeof l){if(!s.optional)throw new TypeError('Expected "'+s.name+'" to be '+(s.repeat?"an array":"a string"))}else{if(u=o(String(l),s),!t[a].test(u))throw new TypeError('Expected "'+s.name+'" to match "'+s.pattern+'", but got "'+u+'"');r+=s.prefix+u}}else r+=s}return r}}function o(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function a(e){return e.replace(/([=!:$/()])/g,"\\$1")}function s(e){return e&&e.sensitive?"":"i"}function u(e,n,i){for(var r=(i=i||{}).strict,a=!1!==i.start,u=!1!==i.end,l=i.delimiter||t,c=[].concat(i.endsWith||[]).map(o).concat("$").join("|"),d=a?"^":"",h=0;h<e.length;h++){var f=e[h];if("string"===typeof f)d+=o(f);else{var p=f.repeat?"(?:"+f.pattern+")(?:"+o(f.delimiter)+"(?:"+f.pattern+"))*":f.pattern;n&&n.push(f),f.optional?f.prefix?d+="(?:"+o(f.prefix)+"("+p+"))?":d+="("+p+")?":d+=o(f.prefix)+"("+p+")"}}if(u)r||(d+="(?:"+o(l)+")?"),d+="$"===c?"$":"(?="+c+")";else{var g=e[e.length-1],v="string"===typeof g?g[g.length-1]===l:void 0===g;r||(d+="(?:"+o(l)+"(?="+c+"))?"),v||(d+="(?="+o(l)+"|"+c+")")}return new RegExp(d,s(i))}function l(e,t,n){return e instanceof RegExp?function(e,t){if(!t)return e;var n=e.source.match(/\((?!\?)/g);if(n)for(var i=0;i<n.length;i++)t.push({name:i,prefix:null,delimiter:null,optional:!1,repeat:!1,pattern:null});return e}(e,t):Array.isArray(e)?function(e,t,n){for(var i=[],r=0;r<e.length;r++)i.push(l(e[r],t,n).source);return new RegExp("(?:"+i.join("|")+")",s(n))}(e,t,n):function(e,t,n){return u(i(e,n),t,n)}(e,t,n)}},75583:function(e,t,n){"use strict";var i=n(89489);function r(){}function o(){}o.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,o,a){if(a!==i){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:r};return n.PropTypes=n,n}},91386:function(e,t,n){e.exports=n(75583)()},89489:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},9139:function(e){"use strict";var t=String.prototype.replace,n=/%20/g,i="RFC1738",r="RFC3986";e.exports={default:r,formatters:{RFC1738:function(e){return t.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:i,RFC3986:r}},22637:function(e,t,n){"use strict";var i=n(23461),r=n(74282),o=n(9139);e.exports={formats:o,parse:r,stringify:i}},74282:function(e,t,n){"use strict";var i=n(93886),r=Object.prototype.hasOwnProperty,o=Array.isArray,a={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:i.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},u=function(e,t){return e&&"string"===typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},l=function(e,t,n,i){if(e){var o=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,s=n.depth>0&&/(\[[^[\]]*])/.exec(o),l=s?o.slice(0,s.index):o,c=[];if(l){if(!n.plainObjects&&r.call(Object.prototype,l)&&!n.allowPrototypes)return;c.push(l)}for(var d=0;n.depth>0&&null!==(s=a.exec(o))&&d<n.depth;){if(d+=1,!n.plainObjects&&r.call(Object.prototype,s[1].slice(1,-1))&&!n.allowPrototypes)return;c.push(s[1])}return s&&c.push("["+o.slice(s.index)+"]"),function(e,t,n,i){for(var r=i?t:u(t,n),o=e.length-1;o>=0;--o){var a,s=e[o];if("[]"===s&&n.parseArrays)a=[].concat(r);else{a=n.plainObjects?Object.create(null):{};var l="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,c=parseInt(l,10);n.parseArrays||""!==l?!isNaN(c)&&s!==l&&String(c)===l&&c>=0&&n.parseArrays&&c<=n.arrayLimit?(a=[])[c]=r:"__proto__"!==l&&(a[l]=r):a={0:r}}r=a}return r}(c,t,n,i)}};e.exports=function(e,t){var n=function(e){if(!e)return a;if(null!==e.decoder&&void 0!==e.decoder&&"function"!==typeof e.decoder)throw new TypeError("Decoder has to be a function.");if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t="undefined"===typeof e.charset?a.charset:e.charset;return{allowDots:"undefined"===typeof e.allowDots?a.allowDots:!!e.allowDots,allowPrototypes:"boolean"===typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"===typeof e.allowSparse?e.allowSparse:a.allowSparse,arrayLimit:"number"===typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"===typeof e.comma?e.comma:a.comma,decoder:"function"===typeof e.decoder?e.decoder:a.decoder,delimiter:"string"===typeof e.delimiter||i.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"===typeof e.depth||!1===e.depth?+e.depth:a.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"===typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"===typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"===typeof e.plainObjects?e.plainObjects:a.plainObjects,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(""===e||null===e||"undefined"===typeof e)return n.plainObjects?Object.create(null):{};for(var c="string"===typeof e?function(e,t){var n,l={},c=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,d=t.parameterLimit===1/0?void 0:t.parameterLimit,h=c.split(t.delimiter,d),f=-1,p=t.charset;if(t.charsetSentinel)for(n=0;n<h.length;++n)0===h[n].indexOf("utf8=")&&("utf8=%E2%9C%93"===h[n]?p="utf-8":"utf8=%26%2310003%3B"===h[n]&&(p="iso-8859-1"),f=n,n=h.length);for(n=0;n<h.length;++n)if(n!==f){var g,v,m=h[n],_=m.indexOf("]="),y=-1===_?m.indexOf("="):_+1;-1===y?(g=t.decoder(m,a.decoder,p,"key"),v=t.strictNullHandling?null:""):(g=t.decoder(m.slice(0,y),a.decoder,p,"key"),v=i.maybeMap(u(m.slice(y+1),t),(function(e){return t.decoder(e,a.decoder,p,"value")}))),v&&t.interpretNumericEntities&&"iso-8859-1"===p&&(v=s(v)),m.indexOf("[]=")>-1&&(v=o(v)?[v]:v),r.call(l,g)?l[g]=i.combine(l[g],v):l[g]=v}return l}(e,n):e,d=n.plainObjects?Object.create(null):{},h=Object.keys(c),f=0;f<h.length;++f){var p=h[f],g=l(p,c[p],n,"string"===typeof e);d=i.merge(d,g,n)}return!0===n.allowSparse?d:i.compact(d)}},23461:function(e,t,n){"use strict";var i=n(13959),r=n(93886),o=n(9139),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},u=Array.isArray,l=String.prototype.split,c=Array.prototype.push,d=function(e,t){c.apply(e,u(t)?t:[t])},h=Date.prototype.toISOString,f=o.default,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,format:f,formatter:o.formatters[f],indices:!1,serializeDate:function(e){return h.call(e)},skipNulls:!1,strictNullHandling:!1},g={},v=function e(t,n,o,a,s,c,h,f,v,m,_,y,b,w,C,k){for(var S,x=t,L=k,E=0,N=!1;void 0!==(L=L.get(g))&&!N;){var D=L.get(t);if(E+=1,"undefined"!==typeof D){if(D===E)throw new RangeError("Cyclic object value");N=!0}"undefined"===typeof L.get(g)&&(E=0)}if("function"===typeof f?x=f(n,x):x instanceof Date?x=_(x):"comma"===o&&u(x)&&(x=r.maybeMap(x,(function(e){return e instanceof Date?_(e):e}))),null===x){if(s)return h&&!w?h(n,p.encoder,C,"key",y):n;x=""}if("string"===typeof(S=x)||"number"===typeof S||"boolean"===typeof S||"symbol"===typeof S||"bigint"===typeof S||r.isBuffer(x)){if(h){var M=w?n:h(n,p.encoder,C,"key",y);if("comma"===o&&w){for(var T=l.call(String(x),","),O="",I=0;I<T.length;++I)O+=(0===I?"":",")+b(h(T[I],p.encoder,C,"value",y));return[b(M)+(a&&u(x)&&1===T.length?"[]":"")+"="+O]}return[b(M)+"="+b(h(x,p.encoder,C,"value",y))]}return[b(n)+"="+b(String(x))]}var A,R=[];if("undefined"===typeof x)return R;if("comma"===o&&u(x))A=[{value:x.length>0?x.join(",")||null:void 0}];else if(u(f))A=f;else{var P=Object.keys(x);A=v?P.sort(v):P}for(var Z=a&&u(x)&&1===x.length?n+"[]":n,F=0;F<A.length;++F){var j=A[F],H="object"===typeof j&&"undefined"!==typeof j.value?j.value:x[j];if(!c||null!==H){var B=u(x)?"function"===typeof o?o(Z,j):Z:Z+(m?"."+j:"["+j+"]");k.set(t,E);var z=i();z.set(g,k),d(R,e(H,B,o,a,s,c,h,f,v,m,_,y,b,w,C,z))}}return R};e.exports=function(e,t){var n,r=e,l=function(e){if(!e)return p;if(null!==e.encoder&&"undefined"!==typeof e.encoder&&"function"!==typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var n=o.default;if("undefined"!==typeof e.format){if(!a.call(o.formatters,e.format))throw new TypeError("Unknown format option provided.");n=e.format}var i=o.formatters[n],r=p.filter;return("function"===typeof e.filter||u(e.filter))&&(r=e.filter),{addQueryPrefix:"boolean"===typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:"undefined"===typeof e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:"undefined"===typeof e.delimiter?p.delimiter:e.delimiter,encode:"boolean"===typeof e.encode?e.encode:p.encode,encoder:"function"===typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"===typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:r,format:n,formatter:i,serializeDate:"function"===typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"===typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"===typeof e.sort?e.sort:null,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"===typeof l.filter?r=(0,l.filter)("",r):u(l.filter)&&(n=l.filter);var c,h=[];if("object"!==typeof r||null===r)return"";c=t&&t.arrayFormat in s?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var f=s[c];if(t&&"commaRoundTrip"in t&&"boolean"!==typeof t.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var g="comma"===f&&t&&t.commaRoundTrip;n||(n=Object.keys(r)),l.sort&&n.sort(l.sort);for(var m=i(),_=0;_<n.length;++_){var y=n[_];l.skipNulls&&null===r[y]||d(h,v(r[y],y,f,g,l.strictNullHandling,l.skipNulls,l.encode?l.encoder:null,l.filter,l.sort,l.allowDots,l.serializeDate,l.format,l.formatter,l.encodeValuesOnly,l.charset,m))}var b=h.join(l.delimiter),w=!0===l.addQueryPrefix?"?":"";return l.charsetSentinel&&("iso-8859-1"===l.charset?w+="utf8=%26%2310003%3B&":w+="utf8=%E2%9C%93&"),b.length>0?w+b:""}},93886:function(e,t,n){"use strict";var i=n(9139),r=Object.prototype.hasOwnProperty,o=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},i=0;i<e.length;++i)"undefined"!==typeof e[i]&&(n[i]=e[i]);return n};e.exports={arrayToObject:s,assign:function(e,t){return Object.keys(t).reduce((function(e,n){return e[n]=t[n],e}),e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],n=[],i=0;i<t.length;++i)for(var r=t[i],a=r.obj[r.prop],s=Object.keys(a),u=0;u<s.length;++u){var l=s[u],c=a[l];"object"===typeof c&&null!==c&&-1===n.indexOf(c)&&(t.push({obj:a,prop:l}),n.push(c))}return function(e){for(;e.length>1;){var t=e.pop(),n=t.obj[t.prop];if(o(n)){for(var i=[],r=0;r<n.length;++r)"undefined"!==typeof n[r]&&i.push(n[r]);t.obj[t.prop]=i}}}(t),e},decode:function(e,t,n){var i=e.replace(/\+/g," ");if("iso-8859-1"===n)return i.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(i)}catch(r){return i}},encode:function(e,t,n,r,o){if(0===e.length)return e;var s=e;if("symbol"===typeof e?s=Symbol.prototype.toString.call(e):"string"!==typeof e&&(s=String(e)),"iso-8859-1"===n)return escape(s).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var u="",l=0;l<s.length;++l){var c=s.charCodeAt(l);45===c||46===c||95===c||126===c||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||o===i.RFC1738&&(40===c||41===c)?u+=s.charAt(l):c<128?u+=a[c]:c<2048?u+=a[192|c>>6]+a[128|63&c]:c<55296||c>=57344?u+=a[224|c>>12]+a[128|c>>6&63]+a[128|63&c]:(l+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(l)),u+=a[240|c>>18]+a[128|c>>12&63]+a[128|c>>6&63]+a[128|63&c])}return u},isBuffer:function(e){return!(!e||"object"!==typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(o(e)){for(var n=[],i=0;i<e.length;i+=1)n.push(t(e[i]));return n}return t(e)},merge:function e(t,n,i){if(!n)return t;if("object"!==typeof n){if(o(t))t.push(n);else{if(!t||"object"!==typeof t)return[t,n];(i&&(i.plainObjects||i.allowPrototypes)||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if(!t||"object"!==typeof t)return[t].concat(n);var a=t;return o(t)&&!o(n)&&(a=s(t,i)),o(t)&&o(n)?(n.forEach((function(n,o){if(r.call(t,o)){var a=t[o];a&&"object"===typeof a&&n&&"object"===typeof n?t[o]=e(a,n,i):t.push(n)}else t[o]=n})),t):Object.keys(n).reduce((function(t,o){var a=n[o];return r.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t}),a)}}},16610:function(e){"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,i,r){n=n||"&",i=i||"=";var o={};if("string"!==typeof e||0===e.length)return o;var a=/\+/g;e=e.split(n);var s=1e3;r&&"number"===typeof r.maxKeys&&(s=r.maxKeys);var u=e.length;s>0&&u>s&&(u=s);for(var l=0;l<u;++l){var c,d,h,f,p=e[l].replace(a,"%20"),g=p.indexOf(i);g>=0?(c=p.substr(0,g),d=p.substr(g+1)):(c=p,d=""),h=decodeURIComponent(c),f=decodeURIComponent(d),t(o,h)?Array.isArray(o[h])?o[h].push(f):o[h]=[o[h],f]:o[h]=f}return o}},83186:function(e){"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,i,r){return n=n||"&",i=i||"=",null===e&&(e=void 0),"object"===typeof e?Object.keys(e).map((function(r){var o=encodeURIComponent(t(r))+i;return Array.isArray(e[r])?e[r].map((function(e){return o+encodeURIComponent(t(e))})).join(n):o+encodeURIComponent(t(e[r]))})).join(n):r?encodeURIComponent(t(r))+i+encodeURIComponent(t(e)):""}},76127:function(e,t,n){"use strict";t.decode=t.parse=n(16610),t.encode=t.stringify=n(83186)},482:function(e,t,n){"use strict";function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=s(n(4519)),o=s(n(80358)),a=["text","onCopy","options","children"];function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){v(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,i,r=function(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function d(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function f(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=g(e);if(t){var o=g(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"===i(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}(this,n)}}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(u,e);var t,n,i,s=f(u);function u(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return v(p(e=s.call.apply(s,[this].concat(n))),"onClick",(function(t){var n=e.props,i=n.text,a=n.onCopy,s=n.children,u=n.options,l=r.default.Children.only(s),c=(0,o.default)(i,u);a&&a(i,c),l&&l.props&&"function"===typeof l.props.onClick&&l.props.onClick(t)})),e}return t=u,(n=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=c(e,a),i=r.default.Children.only(t);return r.default.cloneElement(i,l(l({},n),{},{onClick:this.onClick}))}}])&&d(t.prototype,n),i&&d(t,i),Object.defineProperty(t,"prototype",{writable:!1}),u}(r.default.PureComponent);t.CopyToClipboard=m,v(m,"defaultProps",{onCopy:void 0,options:void 0})},17972:function(e,t,n){"use strict";var i=n(482).CopyToClipboard;i.CopyToClipboard=i,e.exports=i},81571:function(e,t,n){"use strict";var i=n(4519),r=n(58105),o=n(8514);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!i)throw Error(a(227));var s=new Set,u={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(u[e]=t,e=0;e<t.length;e++)s.add(t[e])}var d=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),h=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,p={},g={};function v(e,t,n,i,r,o,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var m={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){m[e]=new v(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];m[t]=new v(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){m[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){m[e]=new v(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){m[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){m[e]=new v(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){m[e]=new v(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){m[e]=new v(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){m[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)}));var _=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function b(e,t,n,i){var r=m.hasOwnProperty(t)?m[t]:null;(null!==r?0===r.type:!i&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,i){if(null===t||"undefined"===typeof t||function(e,t,n,i){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!i&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,i))return!0;if(i)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,r,i)&&(n=null),i||null===r?function(e){return!!f.call(g,e)||!f.call(p,e)&&(h.test(e)?g[e]=!0:(p[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):r.mustUseProperty?e[r.propertyName]=null===n?3!==r.type&&"":n:(t=r.attributeName,i=r.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(r=r.type)||4===r&&!0===n?"":""+n,i?e.setAttributeNS(i,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(_,y);m[t]=new v(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(_,y);m[t]=new v(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(_,y);m[t]=new v(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){m[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)})),m.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){m[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,C=60103,k=60106,S=60107,x=60108,L=60114,E=60109,N=60110,D=60112,M=60113,T=60120,O=60115,I=60116,A=60121,R=60128,P=60129,Z=60130,F=60131;if("function"===typeof Symbol&&Symbol.for){var j=Symbol.for;C=j("react.element"),k=j("react.portal"),S=j("react.fragment"),x=j("react.strict_mode"),L=j("react.profiler"),E=j("react.provider"),N=j("react.context"),D=j("react.forward_ref"),M=j("react.suspense"),T=j("react.suspense_list"),O=j("react.memo"),I=j("react.lazy"),A=j("react.block"),j("react.scope"),R=j("react.opaque.id"),P=j("react.debug_trace_mode"),Z=j("react.offscreen"),F=j("react.legacy_hidden")}var H,B="function"===typeof Symbol&&Symbol.iterator;function z(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=B&&e[B]||e["@@iterator"])?e:null}function W(e){if(void 0===H)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);H=t&&t[1]||""}return"\n"+H+e}var V=!1;function Y(e,t){if(!e||V)return"";V=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var i=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){i=u}e.call(t.prototype)}else{try{throw Error()}catch(u){i=u}e()}}catch(u){if(u&&i&&"string"===typeof u.stack){for(var r=u.stack.split("\n"),o=i.stack.split("\n"),a=r.length-1,s=o.length-1;1<=a&&0<=s&&r[a]!==o[s];)s--;for(;1<=a&&0<=s;a--,s--)if(r[a]!==o[s]){if(1!==a||1!==s)do{if(a--,0>--s||r[a]!==o[s])return"\n"+r[a].replace(" at new "," at ")}while(1<=a&&0<=s);break}}}finally{V=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?W(e):""}function U(e){switch(e.tag){case 5:return W(e.type);case 16:return W("Lazy");case 13:return W("Suspense");case 19:return W("SuspenseList");case 0:case 2:case 15:return e=Y(e.type,!1);case 11:return e=Y(e.type.render,!1);case 22:return e=Y(e.type._render,!1);case 1:return e=Y(e.type,!0);default:return""}}function K(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case S:return"Fragment";case k:return"Portal";case L:return"Profiler";case x:return"StrictMode";case M:return"Suspense";case T:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case N:return(e.displayName||"Context")+".Consumer";case E:return(e._context.displayName||"Context")+".Provider";case D:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case O:return K(e.type);case A:return K(e._render);case I:t=e._payload,e=e._init;try{return K(e(t))}catch(n){}}return null}function q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function G(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function $(e){e._valueTracker||(e._valueTracker=function(e){var t=G(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var r=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(e){i=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return i},setValue:function(e){i=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=G(e)?e.checked?"true":"false":e.value),(e=i)!==n&&(t.setValue(e),!0)}function X(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return r({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,i=null!=t.checked?t.checked:t.defaultChecked;n=q(null!=t.value?t.value:n),e._wrapperState={initialChecked:i,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&b(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=q(t.value),i=t.type;if(null!=n)"number"===i?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===i||"reset"===i)return void e.removeAttribute("value");t.hasOwnProperty("value")?re(e,t.type,n):t.hasOwnProperty("defaultValue")&&re(e,t.type,q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function ie(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var i=t.type;if(!("submit"!==i&&"reset"!==i||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function re(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=r({children:void 0},t),(t=function(e){var t="";return i.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ae(e,t,n,i){if(e=e.options,t){t={};for(var r=0;r<n.length;r++)t["$"+n[r]]=!0;for(n=0;n<e.length;n++)r=t.hasOwnProperty("$"+e[n].value),e[n].selected!==r&&(e[n].selected=r),r&&i&&(e[n].defaultSelected=!0)}else{for(n=""+q(n),t=null,r=0;r<e.length;r++){if(e[r].value===n)return e[r].selected=!0,void(i&&(e[r].defaultSelected=!0));null!==t||e[r].disabled||(t=e[r])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return r({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ue(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:q(n)}}function le(e,t){var n=q(t.value),i=q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=i&&(e.defaultValue=""+i)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function he(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?he(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var pe,ge,ve=(ge=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((pe=pe||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=pe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,i){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function me(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var _e={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function be(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||_e.hasOwnProperty(e)&&_e[e]?(""+t).trim():t+"px"}function we(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var i=0===n.indexOf("--"),r=be(n,t[n],i);"float"===n&&(n="cssFloat"),i?e.setProperty(n,r):e[n]=r}}Object.keys(_e).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_e[t]=_e[e]}))}));var Ce=r({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ke(e,t){if(t){if(Ce[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(a(62))}}function Se(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Le=null,Ee=null,Ne=null;function De(e){if(e=nr(e)){if("function"!==typeof Le)throw Error(a(280));var t=e.stateNode;t&&(t=rr(t),Le(e.stateNode,e.type,t))}}function Me(e){Ee?Ne?Ne.push(e):Ne=[e]:Ee=e}function Te(){if(Ee){var e=Ee,t=Ne;if(Ne=Ee=null,De(e),t)for(e=0;e<t.length;e++)De(t[e])}}function Oe(e,t){return e(t)}function Ie(e,t,n,i,r){return e(t,n,i,r)}function Ae(){}var Re=Oe,Pe=!1,Ze=!1;function Fe(){null===Ee&&null===Ne||(Ae(),Te())}function je(e,t){var n=e.stateNode;if(null===n)return null;var i=rr(n);if(null===i)return null;n=i[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(i=!i.disabled)||(i=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!i;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(a(231,t,typeof n));return n}var He=!1;if(d)try{var Be={};Object.defineProperty(Be,"passive",{get:function(){He=!0}}),window.addEventListener("test",Be,Be),window.removeEventListener("test",Be,Be)}catch(ge){He=!1}function ze(e,t,n,i,r,o,a,s,u){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(c){this.onError(c)}}var We=!1,Ve=null,Ye=!1,Ue=null,Ke={onError:function(e){We=!0,Ve=e}};function qe(e,t,n,i,r,o,a,s,u){We=!1,Ve=null,ze.apply(Ke,arguments)}function Ge(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function $e(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Qe(e){if(Ge(e)!==e)throw Error(a(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ge(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,i=t;;){var r=n.return;if(null===r)break;var o=r.alternate;if(null===o){if(null!==(i=r.return)){n=i;continue}break}if(r.child===o.child){for(o=r.child;o;){if(o===n)return Qe(r),e;if(o===i)return Qe(r),t;o=o.sibling}throw Error(a(188))}if(n.return!==i.return)n=r,i=o;else{for(var s=!1,u=r.child;u;){if(u===n){s=!0,n=r,i=o;break}if(u===i){s=!0,i=r,n=o;break}u=u.sibling}if(!s){for(u=o.child;u;){if(u===n){s=!0,n=o,i=r;break}if(u===i){s=!0,i=o,n=r;break}u=u.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==i)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,it,rt=!1,ot=[],at=null,st=null,ut=null,lt=new Map,ct=new Map,dt=[],ht="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,i,r){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:r,targetContainers:[i]}}function pt(e,t){switch(e){case"focusin":case"focusout":at=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":ut=null;break;case"pointerover":case"pointerout":lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function gt(e,t,n,i,r,o){return null===e||e.nativeEvent!==o?(e=ft(t,n,i,r,o),null!==t&&(null!==(t=nr(t))&&tt(t)),e):(e.eventSystemFlags|=i,t=e.targetContainers,null!==r&&-1===t.indexOf(r)&&t.push(r),e)}function vt(e){var t=tr(e.target);if(null!==t){var n=Ge(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=$e(n)))return e.blockedOn=t,void it(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=nr(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function _t(e,t,n){mt(e)&&n.delete(t)}function yt(){for(rt=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=nr(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==at&&mt(at)&&(at=null),null!==st&&mt(st)&&(st=null),null!==ut&&mt(ut)&&(ut=null),lt.forEach(_t),ct.forEach(_t)}function bt(e,t){e.blockedOn===t&&(e.blockedOn=null,rt||(rt=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function wt(e){function t(t){return bt(t,e)}if(0<ot.length){bt(ot[0],e);for(var n=1;n<ot.length;n++){var i=ot[n];i.blockedOn===e&&(i.blockedOn=null)}}for(null!==at&&bt(at,e),null!==st&&bt(st,e),null!==ut&&bt(ut,e),lt.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(i=dt[n]).blockedOn===e&&(i.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)vt(n),null===n.blockedOn&&dt.shift()}function Ct(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kt={animationend:Ct("Animation","AnimationEnd"),animationiteration:Ct("Animation","AnimationIteration"),animationstart:Ct("Animation","AnimationStart"),transitionend:Ct("Transition","TransitionEnd")},St={},xt={};function Lt(e){if(St[e])return St[e];if(!kt[e])return e;var t,n=kt[e];for(t in n)if(n.hasOwnProperty(t)&&t in xt)return St[e]=n[t];return e}d&&(xt=document.createElement("div").style,"AnimationEvent"in window||(delete kt.animationend.animation,delete kt.animationiteration.animation,delete kt.animationstart.animation),"TransitionEvent"in window||delete kt.transitionend.transition);var Et=Lt("animationend"),Nt=Lt("animationiteration"),Dt=Lt("animationstart"),Mt=Lt("transitionend"),Tt=new Map,Ot=new Map,It=["abort","abort",Et,"animationEnd",Nt,"animationIteration",Dt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Mt,"transitionEnd","waiting","waiting"];function At(e,t){for(var n=0;n<e.length;n+=2){var i=e[n],r=e[n+1];r="on"+(r[0].toUpperCase()+r.slice(1)),Ot.set(i,t),Tt.set(i,r),l(r,[i])}}(0,o.unstable_now)();var Rt=8;function Pt(e){if(0!==(1&e))return Rt=15,1;if(0!==(2&e))return Rt=14,2;if(0!==(4&e))return Rt=13,4;var t=24&e;return 0!==t?(Rt=12,t):0!==(32&e)?(Rt=11,32):0!==(t=192&e)?(Rt=10,t):0!==(256&e)?(Rt=9,256):0!==(t=3584&e)?(Rt=8,t):0!==(4096&e)?(Rt=7,4096):0!==(t=4186112&e)?(Rt=6,t):0!==(t=62914560&e)?(Rt=5,t):67108864&e?(Rt=4,67108864):0!==(134217728&e)?(Rt=3,134217728):0!==(t=805306368&e)?(Rt=2,t):0!==(1073741824&e)?(Rt=1,1073741824):(Rt=8,e)}function Zt(e,t){var n=e.pendingLanes;if(0===n)return Rt=0;var i=0,r=0,o=e.expiredLanes,a=e.suspendedLanes,s=e.pingedLanes;if(0!==o)i=o,r=Rt=15;else if(0!==(o=134217727&n)){var u=o&~a;0!==u?(i=Pt(u),r=Rt):0!==(s&=o)&&(i=Pt(s),r=Rt)}else 0!==(o=n&~a)?(i=Pt(o),r=Rt):0!==s&&(i=Pt(s),r=Rt);if(0===i)return 0;if(i=n&((0>(i=31-Wt(i))?0:1<<i)<<1)-1,0!==t&&t!==i&&0===(t&a)){if(Pt(t),r<=Rt)return t;Rt=r}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=i;0<t;)r=1<<(n=31-Wt(t)),i|=e[n],t&=~r;return i}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Ht(24&~t))?jt(10,t):e;case 10:return 0===(e=Ht(192&~t))?jt(8,t):e;case 8:return 0===(e=Ht(3584&~t))&&(0===(e=Ht(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Ht(805306368&~t))&&(t=268435456),t}throw Error(a(358,e))}function Ht(e){return e&-e}function Bt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function zt(e,t,n){e.pendingLanes|=t;var i=t-1;e.suspendedLanes&=i,e.pingedLanes&=i,(e=e.eventTimes)[t=31-Wt(t)]=n}var Wt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Vt(e)/Yt|0)|0},Vt=Math.log,Yt=Math.LN2;var Ut=o.unstable_UserBlockingPriority,Kt=o.unstable_runWithPriority,qt=!0;function Gt(e,t,n,i){Pe||Ae();var r=Qt,o=Pe;Pe=!0;try{Ie(r,e,t,n,i)}finally{(Pe=o)||Fe()}}function $t(e,t,n,i){Kt(Ut,Qt.bind(null,e,t,n,i))}function Qt(e,t,n,i){var r;if(qt)if((r=0===(4&t))&&0<ot.length&&-1<ht.indexOf(e))e=ft(null,e,t,n,i),ot.push(e);else{var o=Xt(e,t,n,i);if(null===o)r&&pt(e,i);else{if(r){if(-1<ht.indexOf(e))return e=ft(o,e,t,n,i),void ot.push(e);if(function(e,t,n,i,r){switch(t){case"focusin":return at=gt(at,e,t,n,i,r),!0;case"dragenter":return st=gt(st,e,t,n,i,r),!0;case"mouseover":return ut=gt(ut,e,t,n,i,r),!0;case"pointerover":var o=r.pointerId;return lt.set(o,gt(lt.get(o)||null,e,t,n,i,r)),!0;case"gotpointercapture":return o=r.pointerId,ct.set(o,gt(ct.get(o)||null,e,t,n,i,r)),!0}return!1}(o,e,t,n,i))return;pt(e,i)}Ai(e,t,i,null,n)}}}function Xt(e,t,n,i){var r=xe(i);if(null!==(r=tr(r))){var o=Ge(r);if(null===o)r=null;else{var a=o.tag;if(13===a){if(null!==(r=$e(o)))return r;r=null}else if(3===a){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;r=null}else o!==r&&(r=null)}}return Ai(e,t,i,r,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,i=n.length,r="value"in Jt?Jt.value:Jt.textContent,o=r.length;for(e=0;e<i&&n[e]===r[e];e++);var a=i-e;for(t=1;t<=a&&n[i-t]===r[o-t];t++);return tn=r.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function sn(e){function t(t,n,i,r,o){for(var a in this._reactName=t,this._targetInst=i,this.type=n,this.nativeEvent=r,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(a)&&(t=e[a],this[a]=t?t(r):r[a]);return this.isDefaultPrevented=(null!=r.defaultPrevented?r.defaultPrevented:!1===r.returnValue)?on:an,this.isPropagationStopped=an,this}return r(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var un,ln,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},hn=sn(dn),fn=r({},dn,{view:0,detail:0}),pn=sn(fn),gn=r({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:En,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(un=e.screenX-cn.screenX,ln=e.screenY-cn.screenY):ln=un=0,cn=e),un)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),vn=sn(gn),mn=sn(r({},gn,{dataTransfer:0})),_n=sn(r({},fn,{relatedTarget:0})),yn=sn(r({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),bn=r({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),wn=sn(bn),Cn=sn(r({},dn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Sn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Ln(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=xn[e])&&!!t[e]}function En(){return Ln}var Nn=r({},fn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Sn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:En,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Dn=sn(Nn),Mn=sn(r({},gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Tn=sn(r({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),On=sn(r({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=r({},gn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),An=sn(In),Rn=[9,13,27,32],Pn=d&&"CompositionEvent"in window,Zn=null;d&&"documentMode"in document&&(Zn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Zn,jn=d&&(!Pn||Zn&&8<Zn&&11>=Zn),Hn=String.fromCharCode(32),Bn=!1;function zn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1;var Yn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Un(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Yn[e.type]:"textarea"===t}function Kn(e,t,n,i){Me(i),0<(t=Pi(t,"onChange")).length&&(n=new hn("onChange","change",null,n,i),e.push({event:n,listeners:t}))}var qn=null,Gn=null;function $n(e){Ni(e,0)}function Qn(e){if(Q(ir(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var ei;if(d){var ti="oninput"in document;if(!ti){var ni=document.createElement("div");ni.setAttribute("oninput","return;"),ti="function"===typeof ni.oninput}ei=ti}else ei=!1;Jn=ei&&(!document.documentMode||9<document.documentMode)}function ii(){qn&&(qn.detachEvent("onpropertychange",ri),Gn=qn=null)}function ri(e){if("value"===e.propertyName&&Qn(Gn)){var t=[];if(Kn(t,Gn,e,xe(e)),e=$n,Pe)e(t);else{Pe=!0;try{Oe(e,t)}finally{Pe=!1,Fe()}}}}function oi(e,t,n){"focusin"===e?(ii(),Gn=n,(qn=t).attachEvent("onpropertychange",ri)):"focusout"===e&&ii()}function ai(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Qn(Gn)}function si(e,t){if("click"===e)return Qn(t)}function ui(e,t){if("input"===e||"change"===e)return Qn(t)}var li="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},ci=Object.prototype.hasOwnProperty;function di(e,t){if(li(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(i=0;i<n.length;i++)if(!ci.call(t,n[i])||!li(e[n[i]],t[n[i]]))return!1;return!0}function hi(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fi(e,t){var n,i=hi(e);for(e=0;i;){if(3===i.nodeType){if(n=e+i.textContent.length,e<=t&&n>=t)return{node:i,offset:t-e};e=n}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=hi(i)}}function pi(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?pi(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function gi(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(i){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function vi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var mi=d&&"documentMode"in document&&11>=document.documentMode,_i=null,yi=null,bi=null,wi=!1;function Ci(e,t,n){var i=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;wi||null==_i||_i!==X(i)||("selectionStart"in(i=_i)&&vi(i)?i={start:i.selectionStart,end:i.selectionEnd}:i={anchorNode:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset},bi&&di(bi,i)||(bi=i,0<(i=Pi(yi,"onSelect")).length&&(t=new hn("onSelect","select",null,t,n),e.push({event:t,listeners:i}),t.target=_i)))}At("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),At("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),At(It,2);for(var ki="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Si=0;Si<ki.length;Si++)Ot.set(ki[Si],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var xi="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Li=new Set("cancel close invalid load scroll toggle".split(" ").concat(xi));function Ei(e,t,n){var i=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,i,r,o,s,u,l){if(qe.apply(this,arguments),We){if(!We)throw Error(a(198));var c=Ve;We=!1,Ve=null,Ye||(Ye=!0,Ue=c)}}(i,t,void 0,e),e.currentTarget=null}function Ni(e,t){t=0!==(4&t);for(var n=0;n<e.length;n++){var i=e[n],r=i.event;i=i.listeners;e:{var o=void 0;if(t)for(var a=i.length-1;0<=a;a--){var s=i[a],u=s.instance,l=s.currentTarget;if(s=s.listener,u!==o&&r.isPropagationStopped())break e;Ei(r,s,l),o=u}else for(a=0;a<i.length;a++){if(u=(s=i[a]).instance,l=s.currentTarget,s=s.listener,u!==o&&r.isPropagationStopped())break e;Ei(r,s,l),o=u}}}if(Ye)throw e=Ue,Ye=!1,Ue=null,e}function Di(e,t){var n=or(t),i=e+"__bubble";n.has(i)||(Ii(t,e,2,!1),n.add(i))}var Mi="_reactListening"+Math.random().toString(36).slice(2);function Ti(e){e[Mi]||(e[Mi]=!0,s.forEach((function(t){Li.has(t)||Oi(t,!1,e,null),Oi(t,!0,e,null)})))}function Oi(e,t,n,i){var r=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==i&&!t&&Li.has(e)){if("scroll"!==e)return;r|=2,o=i}var a=or(o),s=e+"__"+(t?"capture":"bubble");a.has(s)||(t&&(r|=4),Ii(o,e,r,t),a.add(s))}function Ii(e,t,n,i){var r=Ot.get(t);switch(void 0===r?2:r){case 0:r=Gt;break;case 1:r=$t;break;default:r=Qt}n=r.bind(null,t,n,e),r=void 0,!He||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(r=!0),i?void 0!==r?e.addEventListener(t,n,{capture:!0,passive:r}):e.addEventListener(t,n,!0):void 0!==r?e.addEventListener(t,n,{passive:r}):e.addEventListener(t,n,!1)}function Ai(e,t,n,i,r){var o=i;if(0===(1&t)&&0===(2&t)&&null!==i)e:for(;;){if(null===i)return;var a=i.tag;if(3===a||4===a){var s=i.stateNode.containerInfo;if(s===r||8===s.nodeType&&s.parentNode===r)break;if(4===a)for(a=i.return;null!==a;){var u=a.tag;if((3===u||4===u)&&((u=a.stateNode.containerInfo)===r||8===u.nodeType&&u.parentNode===r))return;a=a.return}for(;null!==s;){if(null===(a=tr(s)))return;if(5===(u=a.tag)||6===u){i=o=a;continue e}s=s.parentNode}}i=i.return}!function(e,t,n){if(Ze)return e(t,n);Ze=!0;try{return Re(e,t,n)}finally{Ze=!1,Fe()}}((function(){var i=o,r=xe(n),a=[];e:{var s=Tt.get(e);if(void 0!==s){var u=hn,l=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":u=Dn;break;case"focusin":l="focus",u=_n;break;case"focusout":l="blur",u=_n;break;case"beforeblur":case"afterblur":u=_n;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":u=vn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":u=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":u=Tn;break;case Et:case Nt:case Dt:u=yn;break;case Mt:u=On;break;case"scroll":u=pn;break;case"wheel":u=An;break;case"copy":case"cut":case"paste":u=wn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":u=Mn}var c=0!==(4&t),d=!c&&"scroll"===e,h=c?null!==s?s+"Capture":null:s;c=[];for(var f,p=i;null!==p;){var g=(f=p).stateNode;if(5===f.tag&&null!==g&&(f=g,null!==h&&(null!=(g=je(p,h))&&c.push(Ri(p,g,f)))),d)break;p=p.return}0<c.length&&(s=new u(s,l,null,n,r),a.push({event:s,listeners:c}))}}if(0===(7&t)){if(u="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!==(16&t)||!(l=n.relatedTarget||n.fromElement)||!tr(l)&&!l[Ji])&&(u||s)&&(s=r.window===r?r:(s=r.ownerDocument)?s.defaultView||s.parentWindow:window,u?(u=i,null!==(l=(l=n.relatedTarget||n.toElement)?tr(l):null)&&(l!==(d=Ge(l))||5!==l.tag&&6!==l.tag)&&(l=null)):(u=null,l=i),u!==l)){if(c=vn,g="onMouseLeave",h="onMouseEnter",p="mouse","pointerout"!==e&&"pointerover"!==e||(c=Mn,g="onPointerLeave",h="onPointerEnter",p="pointer"),d=null==u?s:ir(u),f=null==l?s:ir(l),(s=new c(g,p+"leave",u,n,r)).target=d,s.relatedTarget=f,g=null,tr(r)===i&&((c=new c(h,p+"enter",l,n,r)).target=f,c.relatedTarget=d,g=c),d=g,u&&l)e:{for(h=l,p=0,f=c=u;f;f=Zi(f))p++;for(f=0,g=h;g;g=Zi(g))f++;for(;0<p-f;)c=Zi(c),p--;for(;0<f-p;)h=Zi(h),f--;for(;p--;){if(c===h||null!==h&&c===h.alternate)break e;c=Zi(c),h=Zi(h)}c=null}else c=null;null!==u&&Fi(a,s,u,c,!1),null!==l&&null!==d&&Fi(a,d,l,c,!0)}if("select"===(u=(s=i?ir(i):window).nodeName&&s.nodeName.toLowerCase())||"input"===u&&"file"===s.type)var v=Xn;else if(Un(s))if(Jn)v=ui;else{v=ai;var m=oi}else(u=s.nodeName)&&"input"===u.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(v=si);switch(v&&(v=v(e,i))?Kn(a,v,n,r):(m&&m(e,s,i),"focusout"===e&&(m=s._wrapperState)&&m.controlled&&"number"===s.type&&re(s,"number",s.value)),m=i?ir(i):window,e){case"focusin":(Un(m)||"true"===m.contentEditable)&&(_i=m,yi=i,bi=null);break;case"focusout":bi=yi=_i=null;break;case"mousedown":wi=!0;break;case"contextmenu":case"mouseup":case"dragend":wi=!1,Ci(a,n,r);break;case"selectionchange":if(mi)break;case"keydown":case"keyup":Ci(a,n,r)}var _;if(Pn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?zn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(_=nn()):(en="value"in(Jt=r)?Jt.value:Jt.textContent,Vn=!0)),0<(m=Pi(i,y)).length&&(y=new Cn(y,e,null,n,r),a.push({event:y,listeners:m}),_?y.data=_:null!==(_=Wn(n))&&(y.data=_))),(_=Fn?function(e,t){switch(e){case"compositionend":return Wn(t);case"keypress":return 32!==t.which?null:(Bn=!0,Hn);case"textInput":return(e=t.data)===Hn&&Bn?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!Pn&&zn(e,t)?(e=nn(),tn=en=Jt=null,Vn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(i=Pi(i,"onBeforeInput")).length&&(r=new Cn("onBeforeInput","beforeinput",null,n,r),a.push({event:r,listeners:i}),r.data=_))}Ni(a,t)}))}function Ri(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Pi(e,t){for(var n=t+"Capture",i=[];null!==e;){var r=e,o=r.stateNode;5===r.tag&&null!==o&&(r=o,null!=(o=je(e,n))&&i.unshift(Ri(e,o,r)),null!=(o=je(e,t))&&i.push(Ri(e,o,r))),e=e.return}return i}function Zi(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fi(e,t,n,i,r){for(var o=t._reactName,a=[];null!==n&&n!==i;){var s=n,u=s.alternate,l=s.stateNode;if(null!==u&&u===i)break;5===s.tag&&null!==l&&(s=l,r?null!=(u=je(n,o))&&a.unshift(Ri(n,u,s)):r||null!=(u=je(n,o))&&a.push(Ri(n,u,s))),n=n.return}0!==a.length&&e.push({event:t,listeners:a})}function ji(){}var Hi=null,Bi=null;function zi(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Wi(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Vi="function"===typeof setTimeout?setTimeout:void 0,Yi="function"===typeof clearTimeout?clearTimeout:void 0;function Ui(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Ki(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function qi(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Gi=0;var $i=Math.random().toString(36).slice(2),Qi="__reactFiber$"+$i,Xi="__reactProps$"+$i,Ji="__reactContainer$"+$i,er="__reactEvents$"+$i;function tr(e){var t=e[Qi];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Ji]||n[Qi]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=qi(e);null!==e;){if(n=e[Qi])return n;e=qi(e)}return t}n=(e=n).parentNode}return null}function nr(e){return!(e=e[Qi]||e[Ji])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ir(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function rr(e){return e[Xi]||null}function or(e){var t=e[er];return void 0===t&&(t=e[er]=new Set),t}var ar=[],sr=-1;function ur(e){return{current:e}}function lr(e){0>sr||(e.current=ar[sr],ar[sr]=null,sr--)}function cr(e,t){sr++,ar[sr]=e.current,e.current=t}var dr={},hr=ur(dr),fr=ur(!1),pr=dr;function gr(e,t){var n=e.type.contextTypes;if(!n)return dr;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var r,o={};for(r in n)o[r]=t[r];return i&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function vr(e){return null!==(e=e.childContextTypes)&&void 0!==e}function mr(){lr(fr),lr(hr)}function _r(e,t,n){if(hr.current!==dr)throw Error(a(168));cr(hr,t),cr(fr,n)}function yr(e,t,n){var i=e.stateNode;if(e=t.childContextTypes,"function"!==typeof i.getChildContext)return n;for(var o in i=i.getChildContext())if(!(o in e))throw Error(a(108,K(t)||"Unknown",o));return r({},n,i)}function br(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||dr,pr=hr.current,cr(hr,e),cr(fr,fr.current),!0}function wr(e,t,n){var i=e.stateNode;if(!i)throw Error(a(169));n?(e=yr(e,t,pr),i.__reactInternalMemoizedMergedChildContext=e,lr(fr),lr(hr),cr(hr,e)):lr(fr),cr(fr,n)}var Cr=null,kr=null,Sr=o.unstable_runWithPriority,xr=o.unstable_scheduleCallback,Lr=o.unstable_cancelCallback,Er=o.unstable_shouldYield,Nr=o.unstable_requestPaint,Dr=o.unstable_now,Mr=o.unstable_getCurrentPriorityLevel,Tr=o.unstable_ImmediatePriority,Or=o.unstable_UserBlockingPriority,Ir=o.unstable_NormalPriority,Ar=o.unstable_LowPriority,Rr=o.unstable_IdlePriority,Pr={},Zr=void 0!==Nr?Nr:function(){},Fr=null,jr=null,Hr=!1,Br=Dr(),zr=1e4>Br?Dr:function(){return Dr()-Br};function Wr(){switch(Mr()){case Tr:return 99;case Or:return 98;case Ir:return 97;case Ar:return 96;case Rr:return 95;default:throw Error(a(332))}}function Vr(e){switch(e){case 99:return Tr;case 98:return Or;case 97:return Ir;case 96:return Ar;case 95:return Rr;default:throw Error(a(332))}}function Yr(e,t){return e=Vr(e),Sr(e,t)}function Ur(e,t,n){return e=Vr(e),xr(e,t,n)}function Kr(){if(null!==jr){var e=jr;jr=null,Lr(e)}qr()}function qr(){if(!Hr&&null!==Fr){Hr=!0;var e=0;try{var t=Fr;Yr(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fr=null}catch(n){throw null!==Fr&&(Fr=Fr.slice(e+1)),xr(Tr,Kr),n}finally{Hr=!1}}}var Gr=w.ReactCurrentBatchConfig;function $r(e,t){if(e&&e.defaultProps){for(var n in t=r({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Qr=ur(null),Xr=null,Jr=null,eo=null;function to(){eo=Jr=Xr=null}function no(e){var t=Qr.current;lr(Qr),e.type._context._currentValue=t}function io(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ro(e,t){Xr=e,eo=Jr=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(Pa=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"===typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Jr){if(null===Xr)throw Error(a(308));Jr=t,Xr.dependencies={lanes:0,firstContext:t,responders:null}}else Jr=Jr.next=t;return e._currentValue}var ao=!1;function so(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function uo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function lo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function ho(e,t){var n=e.updateQueue,i=e.alternate;if(null!==i&&n===(i=i.updateQueue)){var r=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?r=o=a:o=o.next=a,n=n.next}while(null!==n);null===o?r=o=t:o=o.next=t}else r=o=t;return n={baseState:i.baseState,firstBaseUpdate:r,lastBaseUpdate:o,shared:i.shared,effects:i.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fo(e,t,n,i){var o=e.updateQueue;ao=!1;var a=o.firstBaseUpdate,s=o.lastBaseUpdate,u=o.shared.pending;if(null!==u){o.shared.pending=null;var l=u,c=l.next;l.next=null,null===s?a=c:s.next=c,s=l;var d=e.alternate;if(null!==d){var h=(d=d.updateQueue).lastBaseUpdate;h!==s&&(null===h?d.firstBaseUpdate=c:h.next=c,d.lastBaseUpdate=l)}}if(null!==a){for(h=o.baseState,s=0,d=c=l=null;;){u=a.lane;var f=a.eventTime;if((i&u)===u){null!==d&&(d=d.next={eventTime:f,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var p=e,g=a;switch(u=t,f=n,g.tag){case 1:if("function"===typeof(p=g.payload)){h=p.call(f,h,u);break e}h=p;break e;case 3:p.flags=-4097&p.flags|64;case 0:if(null===(u="function"===typeof(p=g.payload)?p.call(f,h,u):p)||void 0===u)break e;h=r({},h,u);break e;case 2:ao=!0}}null!==a.callback&&(e.flags|=32,null===(u=o.effects)?o.effects=[a]:u.push(a))}else f={eventTime:f,lane:u,tag:a.tag,payload:a.payload,callback:a.callback,next:null},null===d?(c=d=f,l=h):d=d.next=f,s|=u;if(null===(a=a.next)){if(null===(u=o.shared.pending))break;a=u.next,u.next=null,o.lastBaseUpdate=u,o.shared.pending=null}}null===d&&(l=h),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Bs|=s,e.lanes=s,e.memoizedState=h}}function po(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var i=e[t],r=i.callback;if(null!==r){if(i.callback=null,i=n,"function"!==typeof r)throw Error(a(191,r));r.call(i)}}}var go=(new i.Component).refs;function vo(e,t,n,i){n=null===(n=n(i,t=e.memoizedState))||void 0===n?t:r({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var mo={isMounted:function(e){return!!(e=e._reactInternals)&&Ge(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var i=hu(),r=fu(e),o=lo(i,r);o.payload=t,void 0!==n&&null!==n&&(o.callback=n),co(e,o),pu(e,r,i)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var i=hu(),r=fu(e),o=lo(i,r);o.tag=1,o.payload=t,void 0!==n&&null!==n&&(o.callback=n),co(e,o),pu(e,r,i)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=hu(),i=fu(e),r=lo(n,i);r.tag=2,void 0!==t&&null!==t&&(r.callback=t),co(e,r),pu(e,i,n)}};function _o(e,t,n,i,r,o,a){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(i,o,a):!t.prototype||!t.prototype.isPureReactComponent||(!di(n,i)||!di(r,o))}function yo(e,t,n){var i=!1,r=dr,o=t.contextType;return"object"===typeof o&&null!==o?o=oo(o):(r=vr(t)?pr:hr.current,o=(i=null!==(i=t.contextTypes)&&void 0!==i)?gr(e,r):dr),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=mo,e.stateNode=t,t._reactInternals=e,i&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=r,e.__reactInternalMemoizedMaskedChildContext=o),t}function bo(e,t,n,i){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,i),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,i),t.state!==e&&mo.enqueueReplaceState(t,t.state,null)}function wo(e,t,n,i){var r=e.stateNode;r.props=n,r.state=e.memoizedState,r.refs=go,so(e);var o=t.contextType;"object"===typeof o&&null!==o?r.context=oo(o):(o=vr(t)?pr:hr.current,r.context=gr(e,o)),fo(e,n,r,i),r.state=e.memoizedState,"function"===typeof(o=t.getDerivedStateFromProps)&&(vo(e,t,o,n),r.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof r.getSnapshotBeforeUpdate||"function"!==typeof r.UNSAFE_componentWillMount&&"function"!==typeof r.componentWillMount||(t=r.state,"function"===typeof r.componentWillMount&&r.componentWillMount(),"function"===typeof r.UNSAFE_componentWillMount&&r.UNSAFE_componentWillMount(),t!==r.state&&mo.enqueueReplaceState(r,r.state,null),fo(e,n,r,i),r.state=e.memoizedState),"function"===typeof r.componentDidMount&&(e.flags|=4)}var Co=Array.isArray;function ko(e,t,n){if(null!==(e=n.ref)&&"function"!==typeof e&&"object"!==typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var i=n.stateNode}if(!i)throw Error(a(147,e));var r=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===r?t.ref:(t=function(e){var t=i.refs;t===go&&(t=i.refs={}),null===e?delete t[r]:t[r]=e},t._stringRef=r,t)}if("string"!==typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function So(e,t){if("textarea"!==e.type)throw Error(a(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function xo(e){function t(t,n){if(e){var i=t.lastEffect;null!==i?(i.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,i){if(!e)return null;for(;null!==i;)t(n,i),i=i.sibling;return null}function i(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function r(e,t){return(e=Uu(e,t)).index=0,e.sibling=null,e}function o(t,n,i){return t.index=i,e?null!==(i=t.alternate)?(i=i.index)<n?(t.flags=2,n):i:(t.flags=2,n):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function u(e,t,n,i){return null===t||6!==t.tag?((t=$u(n,e.mode,i)).return=e,t):((t=r(t,n)).return=e,t)}function l(e,t,n,i){return null!==t&&t.elementType===n.type?((i=r(t,n.props)).ref=ko(e,t,n),i.return=e,i):((i=Ku(n.type,n.key,n.props,null,e.mode,i)).ref=ko(e,t,n),i.return=e,i)}function c(e,t,n,i){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Qu(n,e.mode,i)).return=e,t):((t=r(t,n.children||[])).return=e,t)}function d(e,t,n,i,o){return null===t||7!==t.tag?((t=qu(n,e.mode,i,o)).return=e,t):((t=r(t,n)).return=e,t)}function h(e,t,n){if("string"===typeof t||"number"===typeof t)return(t=$u(""+t,e.mode,n)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case C:return(n=Ku(t.type,t.key,t.props,null,e.mode,n)).ref=ko(e,null,t),n.return=e,n;case k:return(t=Qu(t,e.mode,n)).return=e,t}if(Co(t)||z(t))return(t=qu(t,e.mode,n,null)).return=e,t;So(e,t)}return null}function f(e,t,n,i){var r=null!==t?t.key:null;if("string"===typeof n||"number"===typeof n)return null!==r?null:u(e,t,""+n,i);if("object"===typeof n&&null!==n){switch(n.$$typeof){case C:return n.key===r?n.type===S?d(e,t,n.props.children,i,r):l(e,t,n,i):null;case k:return n.key===r?c(e,t,n,i):null}if(Co(n)||z(n))return null!==r?null:d(e,t,n,i,null);So(e,n)}return null}function p(e,t,n,i,r){if("string"===typeof i||"number"===typeof i)return u(t,e=e.get(n)||null,""+i,r);if("object"===typeof i&&null!==i){switch(i.$$typeof){case C:return e=e.get(null===i.key?n:i.key)||null,i.type===S?d(t,e,i.props.children,r,i.key):l(t,e,i,r);case k:return c(t,e=e.get(null===i.key?n:i.key)||null,i,r)}if(Co(i)||z(i))return d(t,e=e.get(n)||null,i,r,null);So(t,i)}return null}function g(r,a,s,u){for(var l=null,c=null,d=a,g=a=0,v=null;null!==d&&g<s.length;g++){d.index>g?(v=d,d=null):v=d.sibling;var m=f(r,d,s[g],u);if(null===m){null===d&&(d=v);break}e&&d&&null===m.alternate&&t(r,d),a=o(m,a,g),null===c?l=m:c.sibling=m,c=m,d=v}if(g===s.length)return n(r,d),l;if(null===d){for(;g<s.length;g++)null!==(d=h(r,s[g],u))&&(a=o(d,a,g),null===c?l=d:c.sibling=d,c=d);return l}for(d=i(r,d);g<s.length;g++)null!==(v=p(d,r,g,s[g],u))&&(e&&null!==v.alternate&&d.delete(null===v.key?g:v.key),a=o(v,a,g),null===c?l=v:c.sibling=v,c=v);return e&&d.forEach((function(e){return t(r,e)})),l}function v(r,s,u,l){var c=z(u);if("function"!==typeof c)throw Error(a(150));if(null==(u=c.call(u)))throw Error(a(151));for(var d=c=null,g=s,v=s=0,m=null,_=u.next();null!==g&&!_.done;v++,_=u.next()){g.index>v?(m=g,g=null):m=g.sibling;var y=f(r,g,_.value,l);if(null===y){null===g&&(g=m);break}e&&g&&null===y.alternate&&t(r,g),s=o(y,s,v),null===d?c=y:d.sibling=y,d=y,g=m}if(_.done)return n(r,g),c;if(null===g){for(;!_.done;v++,_=u.next())null!==(_=h(r,_.value,l))&&(s=o(_,s,v),null===d?c=_:d.sibling=_,d=_);return c}for(g=i(r,g);!_.done;v++,_=u.next())null!==(_=p(g,r,v,_.value,l))&&(e&&null!==_.alternate&&g.delete(null===_.key?v:_.key),s=o(_,s,v),null===d?c=_:d.sibling=_,d=_);return e&&g.forEach((function(e){return t(r,e)})),c}return function(e,i,o,u){var l="object"===typeof o&&null!==o&&o.type===S&&null===o.key;l&&(o=o.props.children);var c="object"===typeof o&&null!==o;if(c)switch(o.$$typeof){case C:e:{for(c=o.key,l=i;null!==l;){if(l.key===c){if(7===l.tag){if(o.type===S){n(e,l.sibling),(i=r(l,o.props.children)).return=e,e=i;break e}}else if(l.elementType===o.type){n(e,l.sibling),(i=r(l,o.props)).ref=ko(e,l,o),i.return=e,e=i;break e}n(e,l);break}t(e,l),l=l.sibling}o.type===S?((i=qu(o.props.children,e.mode,u,o.key)).return=e,e=i):((u=Ku(o.type,o.key,o.props,null,e.mode,u)).ref=ko(e,i,o),u.return=e,e=u)}return s(e);case k:e:{for(l=o.key;null!==i;){if(i.key===l){if(4===i.tag&&i.stateNode.containerInfo===o.containerInfo&&i.stateNode.implementation===o.implementation){n(e,i.sibling),(i=r(i,o.children||[])).return=e,e=i;break e}n(e,i);break}t(e,i),i=i.sibling}(i=Qu(o,e.mode,u)).return=e,e=i}return s(e)}if("string"===typeof o||"number"===typeof o)return o=""+o,null!==i&&6===i.tag?(n(e,i.sibling),(i=r(i,o)).return=e,e=i):(n(e,i),(i=$u(o,e.mode,u)).return=e,e=i),s(e);if(Co(o))return g(e,i,o,u);if(z(o))return v(e,i,o,u);if(c&&So(e,o),"undefined"===typeof o&&!l)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(a(152,K(e.type)||"Component"))}return n(e,i)}}var Lo=xo(!0),Eo=xo(!1),No={},Do=ur(No),Mo=ur(No),To=ur(No);function Oo(e){if(e===No)throw Error(a(174));return e}function Io(e,t){switch(cr(To,t),cr(Mo,e),cr(Do,No),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}lr(Do),cr(Do,t)}function Ao(){lr(Do),lr(Mo),lr(To)}function Ro(e){Oo(To.current);var t=Oo(Do.current),n=fe(t,e.type);t!==n&&(cr(Mo,e),cr(Do,n))}function Po(e){Mo.current===e&&(lr(Do),lr(Mo))}var Zo=ur(0);function Fo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,Ho=null,Bo=!1;function zo(e,t){var n=Vu(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Wo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Vo(e){if(Bo){var t=Ho;if(t){var n=t;if(!Wo(e,t)){if(!(t=Ki(n.nextSibling))||!Wo(e,t))return e.flags=-1025&e.flags|2,Bo=!1,void(jo=e);zo(jo,n)}jo=e,Ho=Ki(t.firstChild)}else e.flags=-1025&e.flags|2,Bo=!1,jo=e}}function Yo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Uo(e){if(e!==jo)return!1;if(!Bo)return Yo(e),Bo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Wi(t,e.memoizedProps))for(t=Ho;t;)zo(e,t),t=Ki(t.nextSibling);if(Yo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Ho=Ki(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Ho=null}}else Ho=jo?Ki(e.stateNode.nextSibling):null;return!0}function Ko(){Ho=jo=null,Bo=!1}var qo=[];function Go(){for(var e=0;e<qo.length;e++)qo[e]._workInProgressVersionPrimary=null;qo.length=0}var $o=w.ReactCurrentDispatcher,Qo=w.ReactCurrentBatchConfig,Xo=0,Jo=null,ea=null,ta=null,na=!1,ia=!1;function ra(){throw Error(a(321))}function oa(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!li(e[n],t[n]))return!1;return!0}function aa(e,t,n,i,r,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,$o.current=null===e||null===e.memoizedState?Oa:Ia,e=n(i,r),ia){o=0;do{if(ia=!1,!(25>o))throw Error(a(301));o+=1,ta=ea=null,t.updateQueue=null,$o.current=Aa,e=n(i,r)}while(ia)}if($o.current=Ta,t=null!==ea&&null!==ea.next,Xo=0,ta=ea=Jo=null,na=!1,t)throw Error(a(300));return e}function sa(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ta?Jo.memoizedState=ta=e:ta=ta.next=e,ta}function ua(){if(null===ea){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ea.next;var t=null===ta?Jo.memoizedState:ta.next;if(null!==t)ta=t,ea=e;else{if(null===e)throw Error(a(310));e={memoizedState:(ea=e).memoizedState,baseState:ea.baseState,baseQueue:ea.baseQueue,queue:ea.queue,next:null},null===ta?Jo.memoizedState=ta=e:ta=ta.next=e}return ta}function la(e,t){return"function"===typeof t?t(e):t}function ca(e){var t=ua(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var i=ea,r=i.baseQueue,o=n.pending;if(null!==o){if(null!==r){var s=r.next;r.next=o.next,o.next=s}i.baseQueue=r=o,n.pending=null}if(null!==r){r=r.next,i=i.baseState;var u=s=o=null,l=r;do{var c=l.lane;if((Xo&c)===c)null!==u&&(u=u.next={lane:0,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null}),i=l.eagerReducer===e?l.eagerState:e(i,l.action);else{var d={lane:c,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null};null===u?(s=u=d,o=i):u=u.next=d,Jo.lanes|=c,Bs|=c}l=l.next}while(null!==l&&l!==r);null===u?o=i:u.next=s,li(i,t.memoizedState)||(Pa=!0),t.memoizedState=i,t.baseState=o,t.baseQueue=u,n.lastRenderedState=i}return[t.memoizedState,n.dispatch]}function da(e){var t=ua(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var i=n.dispatch,r=n.pending,o=t.memoizedState;if(null!==r){n.pending=null;var s=r=r.next;do{o=e(o,s.action),s=s.next}while(s!==r);li(o,t.memoizedState)||(Pa=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,i]}function ha(e,t,n){var i=t._getVersion;i=i(t._source);var r=t._workInProgressVersionPrimary;if(null!==r?e=r===i:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=i,qo.push(t))),e)return n(t._source);throw qo.push(t),Error(a(350))}function fa(e,t,n,i){var r=Is;if(null===r)throw Error(a(349));var o=t._getVersion,s=o(t._source),u=$o.current,l=u.useState((function(){return ha(r,t,n)})),c=l[1],d=l[0];l=ta;var h=e.memoizedState,f=h.refs,p=f.getSnapshot,g=h.source;h=h.subscribe;var v=Jo;return e.memoizedState={refs:f,source:t,subscribe:i},u.useEffect((function(){f.getSnapshot=n,f.setSnapshot=c;var e=o(t._source);if(!li(s,e)){e=n(t._source),li(d,e)||(c(e),e=fu(v),r.mutableReadLanes|=e&r.pendingLanes),e=r.mutableReadLanes,r.entangledLanes|=e;for(var i=r.entanglements,a=e;0<a;){var u=31-Wt(a),l=1<<u;i[u]|=e,a&=~l}}}),[n,t,i]),u.useEffect((function(){return i(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var i=fu(v);r.mutableReadLanes|=i&r.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,i]),li(p,n)&&li(g,t)&&li(h,i)||((e={pending:null,dispatch:null,lastRenderedReducer:la,lastRenderedState:d}).dispatch=c=Ma.bind(null,Jo,e),l.queue=e,l.baseQueue=null,d=ha(r,t,n),l.memoizedState=l.baseState=d),d}function pa(e,t,n){return fa(ua(),e,t,n)}function ga(e){var t=sa();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:la,lastRenderedState:e}).dispatch=Ma.bind(null,Jo,e),[t.memoizedState,e]}function va(e,t,n,i){return e={tag:e,create:t,destroy:n,deps:i,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(i=n.next,n.next=e,e.next=i,t.lastEffect=e),e}function ma(e){return e={current:e},sa().memoizedState=e}function _a(){return ua().memoizedState}function ya(e,t,n,i){var r=sa();Jo.flags|=e,r.memoizedState=va(1|t,n,void 0,void 0===i?null:i)}function ba(e,t,n,i){var r=ua();i=void 0===i?null:i;var o=void 0;if(null!==ea){var a=ea.memoizedState;if(o=a.destroy,null!==i&&oa(i,a.deps))return void va(t,n,o,i)}Jo.flags|=e,r.memoizedState=va(1|t,n,o,i)}function wa(e,t){return ya(516,4,e,t)}function Ca(e,t){return ba(516,4,e,t)}function ka(e,t){return ba(4,2,e,t)}function Sa(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function xa(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,ba(4,2,Sa.bind(null,t,e),n)}function La(){}function Ea(e,t){var n=ua();t=void 0===t?null:t;var i=n.memoizedState;return null!==i&&null!==t&&oa(t,i[1])?i[0]:(n.memoizedState=[e,t],e)}function Na(e,t){var n=ua();t=void 0===t?null:t;var i=n.memoizedState;return null!==i&&null!==t&&oa(t,i[1])?i[0]:(e=e(),n.memoizedState=[e,t],e)}function Da(e,t){var n=Wr();Yr(98>n?98:n,(function(){e(!0)})),Yr(97<n?97:n,(function(){var n=Qo.transition;Qo.transition=1;try{e(!1),t()}finally{Qo.transition=n}}))}function Ma(e,t,n){var i=hu(),r=fu(e),o={lane:r,action:n,eagerReducer:null,eagerState:null,next:null},a=t.pending;if(null===a?o.next=o:(o.next=a.next,a.next=o),t.pending=o,a=e.alternate,e===Jo||null!==a&&a===Jo)ia=na=!0;else{if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var s=t.lastRenderedState,u=a(s,n);if(o.eagerReducer=a,o.eagerState=u,li(u,s))return}catch(l){}pu(e,r,i)}}var Ta={readContext:oo,useCallback:ra,useContext:ra,useEffect:ra,useImperativeHandle:ra,useLayoutEffect:ra,useMemo:ra,useReducer:ra,useRef:ra,useState:ra,useDebugValue:ra,useDeferredValue:ra,useTransition:ra,useMutableSource:ra,useOpaqueIdentifier:ra,unstable_isNewReconciler:!1},Oa={readContext:oo,useCallback:function(e,t){return sa().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:wa,useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,ya(4,2,Sa.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ya(4,2,e,t)},useMemo:function(e,t){var n=sa();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var i=sa();return t=void 0!==n?n(t):t,i.memoizedState=i.baseState=t,e=(e=i.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ma.bind(null,Jo,e),[i.memoizedState,e]},useRef:ma,useState:ga,useDebugValue:La,useDeferredValue:function(e){var t=ga(e),n=t[0],i=t[1];return wa((function(){var t=Qo.transition;Qo.transition=1;try{i(e)}finally{Qo.transition=t}}),[e]),n},useTransition:function(){var e=ga(!1),t=e[0];return ma(e=Da.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var i=sa();return i.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fa(i,e,t,n)},useOpaqueIdentifier:function(){if(Bo){var e=!1,t=function(e){return{$$typeof:R,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Gi++).toString(36))),Error(a(355))})),n=ga(t)[1];return 0===(2&Jo.mode)&&(Jo.flags|=516,va(5,(function(){n("r:"+(Gi++).toString(36))}),void 0,null)),t}return ga(t="r:"+(Gi++).toString(36)),t},unstable_isNewReconciler:!1},Ia={readContext:oo,useCallback:Ea,useContext:oo,useEffect:Ca,useImperativeHandle:xa,useLayoutEffect:ka,useMemo:Na,useReducer:ca,useRef:_a,useState:function(){return ca(la)},useDebugValue:La,useDeferredValue:function(e){var t=ca(la),n=t[0],i=t[1];return Ca((function(){var t=Qo.transition;Qo.transition=1;try{i(e)}finally{Qo.transition=t}}),[e]),n},useTransition:function(){var e=ca(la)[0];return[_a().current,e]},useMutableSource:pa,useOpaqueIdentifier:function(){return ca(la)[0]},unstable_isNewReconciler:!1},Aa={readContext:oo,useCallback:Ea,useContext:oo,useEffect:Ca,useImperativeHandle:xa,useLayoutEffect:ka,useMemo:Na,useReducer:da,useRef:_a,useState:function(){return da(la)},useDebugValue:La,useDeferredValue:function(e){var t=da(la),n=t[0],i=t[1];return Ca((function(){var t=Qo.transition;Qo.transition=1;try{i(e)}finally{Qo.transition=t}}),[e]),n},useTransition:function(){var e=da(la)[0];return[_a().current,e]},useMutableSource:pa,useOpaqueIdentifier:function(){return da(la)[0]},unstable_isNewReconciler:!1},Ra=w.ReactCurrentOwner,Pa=!1;function Za(e,t,n,i){t.child=null===e?Eo(t,null,n,i):Lo(t,e.child,n,i)}function Fa(e,t,n,i,r){n=n.render;var o=t.ref;return ro(t,r),i=aa(e,t,n,i,o,r),null===e||Pa?(t.flags|=1,Za(e,t,i,r),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~r,os(e,t,r))}function ja(e,t,n,i,r,o){if(null===e){var a=n.type;return"function"!==typeof a||Yu(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ku(n.type,null,i,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Ha(e,t,a,i,r,o))}return a=e.child,0===(r&o)&&(r=a.memoizedProps,(n=null!==(n=n.compare)?n:di)(r,i)&&e.ref===t.ref)?os(e,t,o):(t.flags|=1,(e=Uu(a,i)).ref=t.ref,e.return=t,t.child=e)}function Ha(e,t,n,i,r,o){if(null!==e&&di(e.memoizedProps,i)&&e.ref===t.ref){if(Pa=!1,0===(o&r))return t.lanes=e.lanes,os(e,t,o);0!==(16384&e.flags)&&(Pa=!0)}return Wa(e,t,n,i,o)}function Ba(e,t,n){var i=t.pendingProps,r=i.children,o=null!==e?e.memoizedState:null;if("hidden"===i.mode||"unstable-defer-without-hiding"===i.mode)if(0===(4&t.mode))t.memoizedState={baseLanes:0},Cu(t,n);else{if(0===(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Cu(t,e),null;t.memoizedState={baseLanes:0},Cu(t,null!==o?o.baseLanes:n)}else null!==o?(i=o.baseLanes|n,t.memoizedState=null):i=n,Cu(t,i);return Za(e,t,r,n),t.child}function za(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Wa(e,t,n,i,r){var o=vr(n)?pr:hr.current;return o=gr(t,o),ro(t,r),n=aa(e,t,n,i,o,r),null===e||Pa?(t.flags|=1,Za(e,t,n,r),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~r,os(e,t,r))}function Va(e,t,n,i,r){if(vr(n)){var o=!0;br(t)}else o=!1;if(ro(t,r),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,i),wo(t,n,i,r),i=!0;else if(null===e){var a=t.stateNode,s=t.memoizedProps;a.props=s;var u=a.context,l=n.contextType;"object"===typeof l&&null!==l?l=oo(l):l=gr(t,l=vr(n)?pr:hr.current);var c=n.getDerivedStateFromProps,d="function"===typeof c||"function"===typeof a.getSnapshotBeforeUpdate;d||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(s!==i||u!==l)&&bo(t,a,i,l),ao=!1;var h=t.memoizedState;a.state=h,fo(t,i,a,r),u=t.memoizedState,s!==i||h!==u||fr.current||ao?("function"===typeof c&&(vo(t,n,c,i),u=t.memoizedState),(s=ao||_o(t,n,s,i,h,u,l))?(d||"function"!==typeof a.UNSAFE_componentWillMount&&"function"!==typeof a.componentWillMount||("function"===typeof a.componentWillMount&&a.componentWillMount(),"function"===typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"===typeof a.componentDidMount&&(t.flags|=4)):("function"===typeof a.componentDidMount&&(t.flags|=4),t.memoizedProps=i,t.memoizedState=u),a.props=i,a.state=u,a.context=l,i=s):("function"===typeof a.componentDidMount&&(t.flags|=4),i=!1)}else{a=t.stateNode,uo(e,t),s=t.memoizedProps,l=t.type===t.elementType?s:$r(t.type,s),a.props=l,d=t.pendingProps,h=a.context,"object"===typeof(u=n.contextType)&&null!==u?u=oo(u):u=gr(t,u=vr(n)?pr:hr.current);var f=n.getDerivedStateFromProps;(c="function"===typeof f||"function"===typeof a.getSnapshotBeforeUpdate)||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(s!==d||h!==u)&&bo(t,a,i,u),ao=!1,h=t.memoizedState,a.state=h,fo(t,i,a,r);var p=t.memoizedState;s!==d||h!==p||fr.current||ao?("function"===typeof f&&(vo(t,n,f,i),p=t.memoizedState),(l=ao||_o(t,n,l,i,h,p,u))?(c||"function"!==typeof a.UNSAFE_componentWillUpdate&&"function"!==typeof a.componentWillUpdate||("function"===typeof a.componentWillUpdate&&a.componentWillUpdate(i,p,u),"function"===typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(i,p,u)),"function"===typeof a.componentDidUpdate&&(t.flags|=4),"function"===typeof a.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!==typeof a.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!==typeof a.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=256),t.memoizedProps=i,t.memoizedState=p),a.props=i,a.state=p,a.context=u,i=l):("function"!==typeof a.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!==typeof a.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=256),i=!1)}return Ya(e,t,n,i,o,r)}function Ya(e,t,n,i,r,o){za(e,t);var a=0!==(64&t.flags);if(!i&&!a)return r&&wr(t,n,!1),os(e,t,o);i=t.stateNode,Ra.current=t;var s=a&&"function"!==typeof n.getDerivedStateFromError?null:i.render();return t.flags|=1,null!==e&&a?(t.child=Lo(t,e.child,null,o),t.child=Lo(t,null,s,o)):Za(e,t,s,o),t.memoizedState=i.state,r&&wr(t,n,!0),t.child}function Ua(e){var t=e.stateNode;t.pendingContext?_r(0,t.pendingContext,t.pendingContext!==t.context):t.context&&_r(0,t.context,!1),Io(e,t.containerInfo)}var Ka,qa,Ga,$a,Qa={dehydrated:null,retryLane:0};function Xa(e,t,n){var i,r=t.pendingProps,o=Zo.current,a=!1;return(i=0!==(64&t.flags))||(i=(null===e||null!==e.memoizedState)&&0!==(2&o)),i?(a=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===r.fallback||!0===r.unstable_avoidThisFallback||(o|=1),cr(Zo,1&o),null===e?(void 0!==r.fallback&&Vo(t),e=r.children,o=r.fallback,a?(e=Ja(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qa,e):"number"===typeof r.unstable_expectedLoadTime?(e=Ja(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qa,t.lanes=33554432,e):((n=Gu({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,a?(r=ts(e,t,r.children,r.fallback,n),a=t.child,o=e.child.memoizedState,a.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},a.childLanes=e.childLanes&~n,t.memoizedState=Qa,r):(n=es(e,t,r.children,n),t.memoizedState=null,n))}function Ja(e,t,n,i){var r=e.mode,o=e.child;return t={mode:"hidden",children:t},0===(2&r)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Gu(t,r,0,null),n=qu(n,r,i,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function es(e,t,n,i){var r=e.child;return e=r.sibling,n=Uu(r,{mode:"visible",children:n}),0===(2&t.mode)&&(n.lanes=i),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function ts(e,t,n,i,r){var o=t.mode,a=e.child;e=a.sibling;var s={mode:"hidden",children:n};return 0===(2&o)&&t.child!==a?((n=t.child).childLanes=0,n.pendingProps=s,null!==(a=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=a,a.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Uu(a,s),null!==e?i=Uu(e,i):(i=qu(i,o,r,null)).flags|=2,i.return=t,n.return=t,n.sibling=i,t.child=n,i}function ns(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),io(e.return,t)}function is(e,t,n,i,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:i,tail:n,tailMode:r,lastEffect:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=i,a.tail=n,a.tailMode=r,a.lastEffect=o)}function rs(e,t,n){var i=t.pendingProps,r=i.revealOrder,o=i.tail;if(Za(e,t,i.children,n),0!==(2&(i=Zo.current)))i=1&i|2,t.flags|=64;else{if(null!==e&&0!==(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ns(e,n);else if(19===e.tag)ns(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}i&=1}if(cr(Zo,i),0===(2&t.mode))t.memoizedState=null;else switch(r){case"forwards":for(n=t.child,r=null;null!==n;)null!==(e=n.alternate)&&null===Fo(e)&&(r=n),n=n.sibling;null===(n=r)?(r=t.child,t.child=null):(r=n.sibling,n.sibling=null),is(t,!1,r,n,o,t.lastEffect);break;case"backwards":for(n=null,r=t.child,t.child=null;null!==r;){if(null!==(e=r.alternate)&&null===Fo(e)){t.child=r;break}e=r.sibling,r.sibling=n,n=r,r=e}is(t,!0,n,null,o,t.lastEffect);break;case"together":is(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function os(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Bs|=t.lanes,0!==(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Uu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Uu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function as(e,t){if(!Bo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var i=null;null!==n;)null!==n.alternate&&(i=n),n=n.sibling;null===i?t||null===e.tail?e.tail=null:e.tail.sibling=null:i.sibling=null}}function ss(e,t,n){var i=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return vr(t.type)&&mr(),null;case 3:return Ao(),lr(fr),lr(hr),Go(),(i=t.stateNode).pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),null!==e&&null!==e.child||(Uo(t)?t.flags|=4:i.hydrate||(t.flags|=256)),qa(t),null;case 5:Po(t);var o=Oo(To.current);if(n=t.type,null!==e&&null!=t.stateNode)Ga(e,t,n,i,o),e.ref!==t.ref&&(t.flags|=128);else{if(!i){if(null===t.stateNode)throw Error(a(166));return null}if(e=Oo(Do.current),Uo(t)){i=t.stateNode,n=t.type;var s=t.memoizedProps;switch(i[Qi]=t,i[Xi]=s,n){case"dialog":Di("cancel",i),Di("close",i);break;case"iframe":case"object":case"embed":Di("load",i);break;case"video":case"audio":for(e=0;e<xi.length;e++)Di(xi[e],i);break;case"source":Di("error",i);break;case"img":case"image":case"link":Di("error",i),Di("load",i);break;case"details":Di("toggle",i);break;case"input":ee(i,s),Di("invalid",i);break;case"select":i._wrapperState={wasMultiple:!!s.multiple},Di("invalid",i);break;case"textarea":ue(i,s),Di("invalid",i)}for(var l in ke(n,s),e=null,s)s.hasOwnProperty(l)&&(o=s[l],"children"===l?"string"===typeof o?i.textContent!==o&&(e=["children",o]):"number"===typeof o&&i.textContent!==""+o&&(e=["children",""+o]):u.hasOwnProperty(l)&&null!=o&&"onScroll"===l&&Di("scroll",i));switch(n){case"input":$(i),ie(i,s,!0);break;case"textarea":$(i),ce(i);break;case"select":case"option":break;default:"function"===typeof s.onClick&&(i.onclick=ji)}i=e,t.updateQueue=i,null!==i&&(t.flags|=4)}else{switch(l=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=he(n)),e===de.html?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof i.is?e=l.createElement(n,{is:i.is}):(e=l.createElement(n),"select"===n&&(l=e,i.multiple?l.multiple=!0:i.size&&(l.size=i.size))):e=l.createElementNS(e,n),e[Qi]=t,e[Xi]=i,Ka(e,t,!1,!1),t.stateNode=e,l=Se(n,i),n){case"dialog":Di("cancel",e),Di("close",e),o=i;break;case"iframe":case"object":case"embed":Di("load",e),o=i;break;case"video":case"audio":for(o=0;o<xi.length;o++)Di(xi[o],e);o=i;break;case"source":Di("error",e),o=i;break;case"img":case"image":case"link":Di("error",e),Di("load",e),o=i;break;case"details":Di("toggle",e),o=i;break;case"input":ee(e,i),o=J(e,i),Di("invalid",e);break;case"option":o=oe(e,i);break;case"select":e._wrapperState={wasMultiple:!!i.multiple},o=r({},i,{value:void 0}),Di("invalid",e);break;case"textarea":ue(e,i),o=se(e,i),Di("invalid",e);break;default:o=i}ke(n,o);var c=o;for(s in c)if(c.hasOwnProperty(s)){var d=c[s];"style"===s?we(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&ve(e,d):"children"===s?"string"===typeof d?("textarea"!==n||""!==d)&&me(e,d):"number"===typeof d&&me(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(u.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Di("scroll",e):null!=d&&b(e,s,d,l))}switch(n){case"input":$(e),ie(e,i,!1);break;case"textarea":$(e),ce(e);break;case"option":null!=i.value&&e.setAttribute("value",""+q(i.value));break;case"select":e.multiple=!!i.multiple,null!=(s=i.value)?ae(e,!!i.multiple,s,!1):null!=i.defaultValue&&ae(e,!!i.multiple,i.defaultValue,!0);break;default:"function"===typeof o.onClick&&(e.onclick=ji)}zi(n,i)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)$a(e,t,e.memoizedProps,i);else{if("string"!==typeof i&&null===t.stateNode)throw Error(a(166));n=Oo(To.current),Oo(Do.current),Uo(t)?(i=t.stateNode,n=t.memoizedProps,i[Qi]=t,i.nodeValue!==n&&(t.flags|=4)):((i=(9===n.nodeType?n:n.ownerDocument).createTextNode(i))[Qi]=t,t.stateNode=i)}return null;case 13:return lr(Zo),i=t.memoizedState,0!==(64&t.flags)?(t.lanes=n,t):(i=null!==i,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Uo(t):n=null!==e.memoizedState,i&&!n&&0!==(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!==(1&Zo.current)?0===Fs&&(Fs=3):(0!==Fs&&3!==Fs||(Fs=4),null===Is||0===(134217727&Bs)&&0===(134217727&zs)||_u(Is,Rs))),(i||n)&&(t.flags|=4),null);case 4:return Ao(),qa(t),null===e&&Ti(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(lr(Zo),null===(i=t.memoizedState))return null;if(s=0!==(64&t.flags),null===(l=i.rendering))if(s)as(i,!1);else{if(0!==Fs||null!==e&&0!==(64&e.flags))for(e=t.child;null!==e;){if(null!==(l=Fo(e))){for(t.flags|=64,as(i,!1),null!==(s=l.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===i.lastEffect&&(t.firstEffect=null),t.lastEffect=i.lastEffect,i=n,n=t.child;null!==n;)e=i,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(l=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=l.childLanes,s.lanes=l.lanes,s.child=l.child,s.memoizedProps=l.memoizedProps,s.memoizedState=l.memoizedState,s.updateQueue=l.updateQueue,s.type=l.type,e=l.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return cr(Zo,1&Zo.current|2),t.child}e=e.sibling}null!==i.tail&&zr()>Us&&(t.flags|=64,s=!0,as(i,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=Fo(l))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),as(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!Bo)return null!==(t=t.lastEffect=i.lastEffect)&&(t.nextEffect=null),null}else 2*zr()-i.renderingStartTime>Us&&1073741824!==n&&(t.flags|=64,s=!0,as(i,!1),t.lanes=33554432);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(n=i.tail,i.rendering=n,i.tail=n.sibling,i.lastEffect=t.lastEffect,i.renderingStartTime=zr(),n.sibling=null,t=Zo.current,cr(Zo,s?1&t|2:1&t),n):null;case 23:case 24:return ku(),null!==e&&null!==e.memoizedState!==(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==i.mode&&(t.flags|=4),null}throw Error(a(156,t.tag))}function us(e){switch(e.tag){case 1:vr(e.type)&&mr();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Ao(),lr(fr),lr(hr),Go(),0!==(64&(t=e.flags)))throw Error(a(285));return e.flags=-4097&t|64,e;case 5:return Po(e),null;case 13:return lr(Zo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return lr(Zo),null;case 4:return Ao(),null;case 10:return no(e),null;case 23:case 24:return ku(),null;default:return null}}function ls(e,t){try{var n="",i=t;do{n+=U(i),i=i.return}while(i);var r=n}catch(o){r="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:r}}function cs(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Ka=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},qa=function(){},Ga=function(e,t,n,i){var o=e.memoizedProps;if(o!==i){e=t.stateNode,Oo(Do.current);var a,s=null;switch(n){case"input":o=J(e,o),i=J(e,i),s=[];break;case"option":o=oe(e,o),i=oe(e,i),s=[];break;case"select":o=r({},o,{value:void 0}),i=r({},i,{value:void 0}),s=[];break;case"textarea":o=se(e,o),i=se(e,i),s=[];break;default:"function"!==typeof o.onClick&&"function"===typeof i.onClick&&(e.onclick=ji)}for(d in ke(n,i),n=null,o)if(!i.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var l=o[d];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(u.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in i){var c=i[d];if(l=null!=o?o[d]:void 0,i.hasOwnProperty(d)&&c!==l&&(null!=c||null!=l))if("style"===d)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(s||(s=[]),s.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(s=s||[]).push(d,c)):"children"===d?"string"!==typeof c&&"number"!==typeof c||(s=s||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(u.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Di("scroll",e),s||l===c||(s=[])):"object"===typeof c&&null!==c&&c.$$typeof===R?c.toString():(s=s||[]).push(d,c))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},$a=function(e,t,n,i){n!==i&&(t.flags|=4)};var ds="function"===typeof WeakMap?WeakMap:Map;function hs(e,t,n){(n=lo(-1,n)).tag=3,n.payload={element:null};var i=t.value;return n.callback=function(){$s||($s=!0,Qs=i),cs(0,t)},n}function fs(e,t,n){(n=lo(-1,n)).tag=3;var i=e.type.getDerivedStateFromError;if("function"===typeof i){var r=t.value;n.payload=function(){return cs(0,t),i(r)}}var o=e.stateNode;return null!==o&&"function"===typeof o.componentDidCatch&&(n.callback=function(){"function"!==typeof i&&(null===Xs?Xs=new Set([this]):Xs.add(this),cs(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ps="function"===typeof WeakSet?WeakSet:Set;function gs(e){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(n){Hu(e,n)}else t.current=null}function vs(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,i=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:$r(t.type,n),i),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Ui(t.stateNode.containerInfo))}throw Error(a(163))}function ms(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3===(3&e.tag)){var i=e.create;e.destroy=i()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var r=e;i=r.next,0!==(4&(r=r.tag))&&0!==(1&r)&&(Zu(n,e),Pu(n,e)),e=i}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(i=n.elementType===n.type?t.memoizedProps:$r(n.type,t.memoizedProps),e.componentDidUpdate(i,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&po(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}po(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&zi(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&wt(n)))))}throw Error(a(163))}function _s(e,t){for(var n=e;;){if(5===n.tag){var i=n.stateNode;if(t)"function"===typeof(i=i.style).setProperty?i.setProperty("display","none","important"):i.display="none";else{i=n.stateNode;var r=n.memoizedProps.style;r=void 0!==r&&null!==r&&r.hasOwnProperty("display")?r.display:null,i.style.display=be("display",r)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function ys(e,t){if(kr&&"function"===typeof kr.onCommitFiberUnmount)try{kr.onCommitFiberUnmount(Cr,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var i=n,r=i.destroy;if(i=i.tag,void 0!==r)if(0!==(4&i))Zu(t,n);else{i=t;try{r()}catch(o){Hu(i,o)}}n=n.next}while(n!==e)}break;case 1:if(gs(t),"function"===typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){Hu(t,o)}break;case 5:gs(t);break;case 4:xs(e,t)}}function bs(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ws(e){return 5===e.tag||3===e.tag||4===e.tag}function Cs(e){e:{for(var t=e.return;null!==t;){if(ws(t))break e;t=t.return}throw Error(a(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var i=!1;break;case 3:case 4:t=t.containerInfo,i=!0;break;default:throw Error(a(161))}16&n.flags&&(me(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||ws(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}i?ks(e,n,t):Ss(e,n,t)}function ks(e,t,n){var i=e.tag,r=5===i||6===i;if(r)e=r?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=ji));else if(4!==i&&null!==(e=e.child))for(ks(e,t,n),e=e.sibling;null!==e;)ks(e,t,n),e=e.sibling}function Ss(e,t,n){var i=e.tag,r=5===i||6===i;if(r)e=r?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==i&&null!==(e=e.child))for(Ss(e,t,n),e=e.sibling;null!==e;)Ss(e,t,n),e=e.sibling}function xs(e,t){for(var n,i,r=t,o=!1;;){if(!o){o=r.return;e:for(;;){if(null===o)throw Error(a(160));switch(n=o.stateNode,o.tag){case 5:i=!1;break e;case 3:case 4:n=n.containerInfo,i=!0;break e}o=o.return}o=!0}if(5===r.tag||6===r.tag){e:for(var s=e,u=r,l=u;;)if(ys(s,l),null!==l.child&&4!==l.tag)l.child.return=l,l=l.child;else{if(l===u)break e;for(;null===l.sibling;){if(null===l.return||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}i?(s=n,u=r.stateNode,8===s.nodeType?s.parentNode.removeChild(u):s.removeChild(u)):n.removeChild(r.stateNode)}else if(4===r.tag){if(null!==r.child){n=r.stateNode.containerInfo,i=!0,r.child.return=r,r=r.child;continue}}else if(ys(e,r),null!==r.child){r.child.return=r,r=r.child;continue}if(r===t)break;for(;null===r.sibling;){if(null===r.return||r.return===t)return;4===(r=r.return).tag&&(o=!1)}r.sibling.return=r.return,r=r.sibling}}function Ls(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var i=n=n.next;do{3===(3&i.tag)&&(e=i.destroy,i.destroy=void 0,void 0!==e&&e()),i=i.next}while(i!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){i=t.memoizedProps;var r=null!==e?e.memoizedProps:i;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xi]=i,"input"===e&&"radio"===i.type&&null!=i.name&&te(n,i),Se(e,r),t=Se(e,i),r=0;r<o.length;r+=2){var s=o[r],u=o[r+1];"style"===s?we(n,u):"dangerouslySetInnerHTML"===s?ve(n,u):"children"===s?me(n,u):b(n,s,u,t)}switch(e){case"input":ne(n,i);break;case"textarea":le(n,i);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!i.multiple,null!=(o=i.value)?ae(n,!!i.multiple,o,!1):e!==!!i.multiple&&(null!=i.defaultValue?ae(n,!!i.multiple,i.defaultValue,!0):ae(n,!!i.multiple,i.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(a(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,wt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Ys=zr(),_s(t.child,!0)),void Es(t);case 19:return void Es(t);case 23:case 24:return void _s(t,null!==t.memoizedState)}throw Error(a(163))}function Es(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ps),t.forEach((function(t){var i=zu.bind(null,e,t);n.has(t)||(n.add(t),t.then(i,i))}))}}function Ns(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ds=Math.ceil,Ms=w.ReactCurrentDispatcher,Ts=w.ReactCurrentOwner,Os=0,Is=null,As=null,Rs=0,Ps=0,Zs=ur(0),Fs=0,js=null,Hs=0,Bs=0,zs=0,Ws=0,Vs=null,Ys=0,Us=1/0;function Ks(){Us=zr()+500}var qs,Gs=null,$s=!1,Qs=null,Xs=null,Js=!1,eu=null,tu=90,nu=[],iu=[],ru=null,ou=0,au=null,su=-1,uu=0,lu=0,cu=null,du=!1;function hu(){return 0!==(48&Os)?zr():-1!==su?su:su=zr()}function fu(e){if(0===(2&(e=e.mode)))return 1;if(0===(4&e))return 99===Wr()?1:2;if(0===uu&&(uu=Hs),0!==Gr.transition){0!==lu&&(lu=null!==Vs?Vs.pendingLanes:0),e=uu;var t=4186112&~lu;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Wr(),0!==(4&Os)&&98===e?e=jt(12,uu):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),uu),e}function pu(e,t,n){if(50<ou)throw ou=0,au=null,Error(a(185));if(null===(e=gu(e,t)))return null;zt(e,t,n),e===Is&&(zs|=t,4===Fs&&_u(e,Rs));var i=Wr();1===t?0!==(8&Os)&&0===(48&Os)?yu(e):(vu(e,n),0===Os&&(Ks(),Kr())):(0===(4&Os)||98!==i&&99!==i||(null===ru?ru=new Set([e]):ru.add(e)),vu(e,n)),Vs=e}function gu(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function vu(e,t){for(var n=e.callbackNode,i=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,s=e.pendingLanes;0<s;){var u=31-Wt(s),l=1<<u,c=o[u];if(-1===c){if(0===(l&i)||0!==(l&r)){c=t,Pt(l);var d=Rt;o[u]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=l);s&=~l}if(i=Zt(e,e===Is?Rs:0),t=Rt,0===i)null!==n&&(n!==Pr&&Lr(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Pr&&Lr(n)}15===t?(n=yu.bind(null,e),null===Fr?(Fr=[n],jr=xr(Tr,qr)):Fr.push(n),n=Pr):14===t?n=Ur(99,yu.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(a(358,e))}}(t),n=Ur(n,mu.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function mu(e){if(su=-1,lu=uu=0,0!==(48&Os))throw Error(a(327));var t=e.callbackNode;if(Ru()&&e.callbackNode!==t)return null;var n=Zt(e,e===Is?Rs:0);if(0===n)return null;var i=n,r=Os;Os|=16;var o=Lu();for(Is===e&&Rs===i||(Ks(),Su(e,i));;)try{Du();break}catch(u){xu(e,u)}if(to(),Ms.current=o,Os=r,null!==As?i=0:(Is=null,Rs=0,i=Fs),0!==(Hs&zs))Su(e,0);else if(0!==i){if(2===i&&(Os|=64,e.hydrate&&(e.hydrate=!1,Ui(e.containerInfo)),0!==(n=Ft(e))&&(i=Eu(e,n))),1===i)throw t=js,Su(e,0),_u(e,n),vu(e,zr()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,i){case 0:case 1:throw Error(a(345));case 2:case 5:Ou(e);break;case 3:if(_u(e,n),(62914560&n)===n&&10<(i=Ys+500-zr())){if(0!==Zt(e,0))break;if(((r=e.suspendedLanes)&n)!==n){hu(),e.pingedLanes|=e.suspendedLanes&r;break}e.timeoutHandle=Vi(Ou.bind(null,e),i);break}Ou(e);break;case 4:if(_u(e,n),(4186112&n)===n)break;for(i=e.eventTimes,r=-1;0<n;){var s=31-Wt(n);o=1<<s,(s=i[s])>r&&(r=s),n&=~o}if(n=r,10<(n=(120>(n=zr()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ds(n/1960))-n)){e.timeoutHandle=Vi(Ou.bind(null,e),n);break}Ou(e);break;default:throw Error(a(329))}}return vu(e,zr()),e.callbackNode===t?mu.bind(null,e):null}function _u(e,t){for(t&=~Ws,t&=~zs,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Wt(t),i=1<<n;e[n]=-1,t&=~i}}function yu(e){if(0!==(48&Os))throw Error(a(327));if(Ru(),e===Is&&0!==(e.expiredLanes&Rs)){var t=Rs,n=Eu(e,t);0!==(Hs&zs)&&(n=Eu(e,t=Zt(e,t)))}else n=Eu(e,t=Zt(e,0));if(0!==e.tag&&2===n&&(Os|=64,e.hydrate&&(e.hydrate=!1,Ui(e.containerInfo)),0!==(t=Ft(e))&&(n=Eu(e,t))),1===n)throw n=js,Su(e,0),_u(e,t),vu(e,zr()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ou(e),vu(e,zr()),null}function bu(e,t){var n=Os;Os|=1;try{return e(t)}finally{0===(Os=n)&&(Ks(),Kr())}}function wu(e,t){var n=Os;Os&=-2,Os|=8;try{return e(t)}finally{0===(Os=n)&&(Ks(),Kr())}}function Cu(e,t){cr(Zs,Ps),Ps|=t,Hs|=t}function ku(){Ps=Zs.current,lr(Zs)}function Su(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Yi(n)),null!==As)for(n=As.return;null!==n;){var i=n;switch(i.tag){case 1:null!==(i=i.type.childContextTypes)&&void 0!==i&&mr();break;case 3:Ao(),lr(fr),lr(hr),Go();break;case 5:Po(i);break;case 4:Ao();break;case 13:case 19:lr(Zo);break;case 10:no(i);break;case 23:case 24:ku()}n=n.return}Is=e,As=Uu(e.current,null),Rs=Ps=Hs=t,Fs=0,js=null,Ws=zs=Bs=0}function xu(e,t){for(;;){var n=As;try{if(to(),$o.current=Ta,na){for(var i=Jo.memoizedState;null!==i;){var r=i.queue;null!==r&&(r.pending=null),i=i.next}na=!1}if(Xo=0,ta=ea=Jo=null,ia=!1,Ts.current=null,null===n||null===n.return){Fs=1,js=t,As=null;break}e:{var o=e,a=n.return,s=n,u=t;if(t=Rs,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==u&&"object"===typeof u&&"function"===typeof u.then){var l=u;if(0===(2&s.mode)){var c=s.alternate;c?(s.updateQueue=c.updateQueue,s.memoizedState=c.memoizedState,s.lanes=c.lanes):(s.updateQueue=null,s.memoizedState=null)}var d=0!==(1&Zo.current),h=a;do{var f;if(f=13===h.tag){var p=h.memoizedState;if(null!==p)f=null!==p.dehydrated;else{var g=h.memoizedProps;f=void 0!==g.fallback&&(!0!==g.unstable_avoidThisFallback||!d)}}if(f){var v=h.updateQueue;if(null===v){var m=new Set;m.add(l),h.updateQueue=m}else v.add(l);if(0===(2&h.mode)){if(h.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var _=lo(-1,1);_.tag=2,co(s,_)}s.lanes|=1;break e}u=void 0,s=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new ds,u=new Set,y.set(l,u)):void 0===(u=y.get(l))&&(u=new Set,y.set(l,u)),!u.has(s)){u.add(s);var b=Bu.bind(null,o,l,s);l.then(b,b)}h.flags|=4096,h.lanes=t;break e}h=h.return}while(null!==h);u=Error((K(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fs&&(Fs=2),u=ls(u,s),h=a;do{switch(h.tag){case 3:o=u,h.flags|=4096,t&=-t,h.lanes|=t,ho(h,hs(0,o,t));break e;case 1:o=u;var w=h.type,C=h.stateNode;if(0===(64&h.flags)&&("function"===typeof w.getDerivedStateFromError||null!==C&&"function"===typeof C.componentDidCatch&&(null===Xs||!Xs.has(C)))){h.flags|=4096,t&=-t,h.lanes|=t,ho(h,fs(h,o,t));break e}}h=h.return}while(null!==h)}Tu(n)}catch(k){t=k,As===n&&null!==n&&(As=n=n.return);continue}break}}function Lu(){var e=Ms.current;return Ms.current=Ta,null===e?Ta:e}function Eu(e,t){var n=Os;Os|=16;var i=Lu();for(Is===e&&Rs===t||Su(e,t);;)try{Nu();break}catch(r){xu(e,r)}if(to(),Os=n,Ms.current=i,null!==As)throw Error(a(261));return Is=null,Rs=0,Fs}function Nu(){for(;null!==As;)Mu(As)}function Du(){for(;null!==As&&!Er();)Mu(As)}function Mu(e){var t=qs(e.alternate,e,Ps);e.memoizedProps=e.pendingProps,null===t?Tu(e):As=t,Ts.current=null}function Tu(e){var t=e;do{var n=t.alternate;if(e=t.return,0===(2048&t.flags)){if(null!==(n=ss(n,t,Ps)))return void(As=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!==(1073741824&Ps)||0===(4&n.mode)){for(var i=0,r=n.child;null!==r;)i|=r.lanes|r.childLanes,r=r.sibling;n.childLanes=i}null!==e&&0===(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=us(t)))return n.flags&=2047,void(As=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(As=t);As=t=e}while(null!==t);0===Fs&&(Fs=5)}function Ou(e){var t=Wr();return Yr(99,Iu.bind(null,e,t)),null}function Iu(e,t){do{Ru()}while(null!==eu);if(0!==(48&Os))throw Error(a(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null;var i=n.lanes|n.childLanes,r=i,o=e.pendingLanes&~r;e.pendingLanes=r,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=r,e.mutableReadLanes&=r,e.entangledLanes&=r,r=e.entanglements;for(var s=e.eventTimes,u=e.expirationTimes;0<o;){var l=31-Wt(o),c=1<<l;r[l]=0,s[l]=-1,u[l]=-1,o&=~c}if(null!==ru&&0===(24&i)&&ru.has(e)&&ru.delete(e),e===Is&&(As=Is=null,Rs=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,i=n.firstEffect):i=n:i=n.firstEffect,null!==i){if(r=Os,Os|=32,Ts.current=null,Hi=qt,vi(s=gi())){if("selectionStart"in s)u={start:s.selectionStart,end:s.selectionEnd};else e:if(u=(u=s.ownerDocument)&&u.defaultView||window,(c=u.getSelection&&u.getSelection())&&0!==c.rangeCount){u=c.anchorNode,o=c.anchorOffset,l=c.focusNode,c=c.focusOffset;try{u.nodeType,l.nodeType}catch(L){u=null;break e}var d=0,h=-1,f=-1,p=0,g=0,v=s,m=null;t:for(;;){for(var _;v!==u||0!==o&&3!==v.nodeType||(h=d+o),v!==l||0!==c&&3!==v.nodeType||(f=d+c),3===v.nodeType&&(d+=v.nodeValue.length),null!==(_=v.firstChild);)m=v,v=_;for(;;){if(v===s)break t;if(m===u&&++p===o&&(h=d),m===l&&++g===c&&(f=d),null!==(_=v.nextSibling))break;m=(v=m).parentNode}v=_}u=-1===h||-1===f?null:{start:h,end:f}}else u=null;u=u||{start:0,end:0}}else u=null;Bi={focusedElem:s,selectionRange:u},qt=!1,cu=null,du=!1,Gs=i;do{try{Au()}catch(L){if(null===Gs)throw Error(a(330));Hu(Gs,L),Gs=Gs.nextEffect}}while(null!==Gs);cu=null,Gs=i;do{try{for(s=e;null!==Gs;){var y=Gs.flags;if(16&y&&me(Gs.stateNode,""),128&y){var b=Gs.alternate;if(null!==b){var w=b.ref;null!==w&&("function"===typeof w?w(null):w.current=null)}}switch(1038&y){case 2:Cs(Gs),Gs.flags&=-3;break;case 6:Cs(Gs),Gs.flags&=-3,Ls(Gs.alternate,Gs);break;case 1024:Gs.flags&=-1025;break;case 1028:Gs.flags&=-1025,Ls(Gs.alternate,Gs);break;case 4:Ls(Gs.alternate,Gs);break;case 8:xs(s,u=Gs);var C=u.alternate;bs(u),null!==C&&bs(C)}Gs=Gs.nextEffect}}catch(L){if(null===Gs)throw Error(a(330));Hu(Gs,L),Gs=Gs.nextEffect}}while(null!==Gs);if(w=Bi,b=gi(),y=w.focusedElem,s=w.selectionRange,b!==y&&y&&y.ownerDocument&&pi(y.ownerDocument.documentElement,y)){null!==s&&vi(y)&&(b=s.start,void 0===(w=s.end)&&(w=b),"selectionStart"in y?(y.selectionStart=b,y.selectionEnd=Math.min(w,y.value.length)):(w=(b=y.ownerDocument||document)&&b.defaultView||window).getSelection&&(w=w.getSelection(),u=y.textContent.length,C=Math.min(s.start,u),s=void 0===s.end?C:Math.min(s.end,u),!w.extend&&C>s&&(u=s,s=C,C=u),u=fi(y,C),o=fi(y,s),u&&o&&(1!==w.rangeCount||w.anchorNode!==u.node||w.anchorOffset!==u.offset||w.focusNode!==o.node||w.focusOffset!==o.offset)&&((b=b.createRange()).setStart(u.node,u.offset),w.removeAllRanges(),C>s?(w.addRange(b),w.extend(o.node,o.offset)):(b.setEnd(o.node,o.offset),w.addRange(b))))),b=[];for(w=y;w=w.parentNode;)1===w.nodeType&&b.push({element:w,left:w.scrollLeft,top:w.scrollTop});for("function"===typeof y.focus&&y.focus(),y=0;y<b.length;y++)(w=b[y]).element.scrollLeft=w.left,w.element.scrollTop=w.top}qt=!!Hi,Bi=Hi=null,e.current=n,Gs=i;do{try{for(y=e;null!==Gs;){var k=Gs.flags;if(36&k&&ms(y,Gs.alternate,Gs),128&k){b=void 0;var S=Gs.ref;if(null!==S){var x=Gs.stateNode;Gs.tag,b=x,"function"===typeof S?S(b):S.current=b}}Gs=Gs.nextEffect}}catch(L){if(null===Gs)throw Error(a(330));Hu(Gs,L),Gs=Gs.nextEffect}}while(null!==Gs);Gs=null,Zr(),Os=r}else e.current=n;if(Js)Js=!1,eu=e,tu=t;else for(Gs=i;null!==Gs;)t=Gs.nextEffect,Gs.nextEffect=null,8&Gs.flags&&((k=Gs).sibling=null,k.stateNode=null),Gs=t;if(0===(i=e.pendingLanes)&&(Xs=null),1===i?e===au?ou++:(ou=0,au=e):ou=0,n=n.stateNode,kr&&"function"===typeof kr.onCommitFiberRoot)try{kr.onCommitFiberRoot(Cr,n,void 0,64===(64&n.current.flags))}catch(L){}if(vu(e,zr()),$s)throw $s=!1,e=Qs,Qs=null,e;return 0!==(8&Os)||Kr(),null}function Au(){for(;null!==Gs;){var e=Gs.alternate;du||null===cu||(0!==(8&Gs.flags)?Je(Gs,cu)&&(du=!0):13===Gs.tag&&Ns(e,Gs)&&Je(Gs,cu)&&(du=!0));var t=Gs.flags;0!==(256&t)&&vs(e,Gs),0===(512&t)||Js||(Js=!0,Ur(97,(function(){return Ru(),null}))),Gs=Gs.nextEffect}}function Ru(){if(90!==tu){var e=97<tu?97:tu;return tu=90,Yr(e,Fu)}return!1}function Pu(e,t){nu.push(t,e),Js||(Js=!0,Ur(97,(function(){return Ru(),null})))}function Zu(e,t){iu.push(t,e),Js||(Js=!0,Ur(97,(function(){return Ru(),null})))}function Fu(){if(null===eu)return!1;var e=eu;if(eu=null,0!==(48&Os))throw Error(a(331));var t=Os;Os|=32;var n=iu;iu=[];for(var i=0;i<n.length;i+=2){var r=n[i],o=n[i+1],s=r.destroy;if(r.destroy=void 0,"function"===typeof s)try{s()}catch(l){if(null===o)throw Error(a(330));Hu(o,l)}}for(n=nu,nu=[],i=0;i<n.length;i+=2){r=n[i],o=n[i+1];try{var u=r.create;r.destroy=u()}catch(l){if(null===o)throw Error(a(330));Hu(o,l)}}for(u=e.current.firstEffect;null!==u;)e=u.nextEffect,u.nextEffect=null,8&u.flags&&(u.sibling=null,u.stateNode=null),u=e;return Os=t,Kr(),!0}function ju(e,t,n){co(e,t=hs(0,t=ls(n,t),1)),t=hu(),null!==(e=gu(e,1))&&(zt(e,1,t),vu(e,t))}function Hu(e,t){if(3===e.tag)ju(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){ju(n,e,t);break}if(1===n.tag){var i=n.stateNode;if("function"===typeof n.type.getDerivedStateFromError||"function"===typeof i.componentDidCatch&&(null===Xs||!Xs.has(i))){var r=fs(n,e=ls(t,e),1);if(co(n,r),r=hu(),null!==(n=gu(n,1)))zt(n,1,r),vu(n,r);else if("function"===typeof i.componentDidCatch&&(null===Xs||!Xs.has(i)))try{i.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Bu(e,t,n){var i=e.pingCache;null!==i&&i.delete(t),t=hu(),e.pingedLanes|=e.suspendedLanes&n,Is===e&&(Rs&n)===n&&(4===Fs||3===Fs&&(62914560&Rs)===Rs&&500>zr()-Ys?Su(e,0):Ws|=n),vu(e,t)}function zu(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0===(2&(t=e.mode))?t=1:0===(4&t)?t=99===Wr()?1:2:(0===uu&&(uu=Hs),0===(t=Ht(62914560&~uu))&&(t=4194304))),n=hu(),null!==(e=gu(e,t))&&(zt(e,t,n),vu(e,n))}function Wu(e,t,n,i){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Vu(e,t,n,i){return new Wu(e,t,n,i)}function Yu(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Uu(e,t){var n=e.alternate;return null===n?((n=Vu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ku(e,t,n,i,r,o){var s=2;if(i=e,"function"===typeof e)Yu(e)&&(s=1);else if("string"===typeof e)s=5;else e:switch(e){case S:return qu(n.children,r,o,t);case P:s=8,r|=16;break;case x:s=8,r|=1;break;case L:return(e=Vu(12,n,t,8|r)).elementType=L,e.type=L,e.lanes=o,e;case M:return(e=Vu(13,n,t,r)).type=M,e.elementType=M,e.lanes=o,e;case T:return(e=Vu(19,n,t,r)).elementType=T,e.lanes=o,e;case Z:return Gu(n,r,o,t);case F:return(e=Vu(24,n,t,r)).elementType=F,e.lanes=o,e;default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case E:s=10;break e;case N:s=9;break e;case D:s=11;break e;case O:s=14;break e;case I:s=16,i=null;break e;case A:s=22;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Vu(s,n,t,r)).elementType=e,t.type=i,t.lanes=o,t}function qu(e,t,n,i){return(e=Vu(7,e,i,t)).lanes=n,e}function Gu(e,t,n,i){return(e=Vu(23,e,i,t)).elementType=Z,e.lanes=n,e}function $u(e,t,n){return(e=Vu(6,e,null,t)).lanes=n,e}function Qu(e,t,n){return(t=Vu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xu(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Bt(0),this.expirationTimes=Bt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Bt(0),this.mutableSourceEagerHydrationData=null}function Ju(e,t,n,i){var r=t.current,o=hu(),s=fu(r);e:if(n){t:{if(Ge(n=n._reactInternals)!==n||1!==n.tag)throw Error(a(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(vr(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(a(171))}if(1===n.tag){var l=n.type;if(vr(l)){n=yr(n,l,u);break e}}n=u}else n=dr;return null===t.context?t.context=n:t.pendingContext=n,(t=lo(o,s)).payload={element:e},null!==(i=void 0===i?null:i)&&(t.callback=i),co(r,t),pu(r,s,o),s}function el(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tl(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nl(e,t){tl(e,t),(e=e.alternate)&&tl(e,t)}function il(e,t,n){var i=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xu(e,t,null!=n&&!0===n.hydrate),t=Vu(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,so(t),e[Ji]=n.current,Ti(8===e.nodeType?e.parentNode:e),i)for(e=0;e<i.length;e++){var r=(t=i[e])._getVersion;r=r(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,r]:n.mutableSourceEagerHydrationData.push(t,r)}this._internalRoot=n}function rl(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ol(e,t,n,i,r){var o=n._reactRootContainer;if(o){var a=o._internalRoot;if("function"===typeof r){var s=r;r=function(){var e=el(a);s.call(e)}}Ju(t,a,e,r)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new il(e,0,t?{hydrate:!0}:void 0)}(n,i),a=o._internalRoot,"function"===typeof r){var u=r;r=function(){var e=el(a);u.call(e)}}wu((function(){Ju(t,a,e,r)}))}return el(a)}function al(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rl(t))throw Error(a(200));return function(e,t,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==i?null:""+i,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}qs=function(e,t,n){var i=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||fr.current)Pa=!0;else{if(0===(n&i)){switch(Pa=!1,t.tag){case 3:Ua(t),Ko();break;case 5:Ro(t);break;case 1:vr(t.type)&&br(t);break;case 4:Io(t,t.stateNode.containerInfo);break;case 10:i=t.memoizedProps.value;var r=t.type._context;cr(Qr,r._currentValue),r._currentValue=i;break;case 13:if(null!==t.memoizedState)return 0!==(n&t.child.childLanes)?Xa(e,t,n):(cr(Zo,1&Zo.current),null!==(t=os(e,t,n))?t.sibling:null);cr(Zo,1&Zo.current);break;case 19:if(i=0!==(n&t.childLanes),0!==(64&e.flags)){if(i)return rs(e,t,n);t.flags|=64}if(null!==(r=t.memoizedState)&&(r.rendering=null,r.tail=null,r.lastEffect=null),cr(Zo,Zo.current),i)break;return null;case 23:case 24:return t.lanes=0,Ba(e,t,n)}return os(e,t,n)}Pa=0!==(16384&e.flags)}else Pa=!1;switch(t.lanes=0,t.tag){case 2:if(i=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,r=gr(t,hr.current),ro(t,n),r=aa(null,t,i,e,r,n),t.flags|=1,"object"===typeof r&&null!==r&&"function"===typeof r.render&&void 0===r.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,vr(i)){var o=!0;br(t)}else o=!1;t.memoizedState=null!==r.state&&void 0!==r.state?r.state:null,so(t);var s=i.getDerivedStateFromProps;"function"===typeof s&&vo(t,i,s,e),r.updater=mo,t.stateNode=r,r._reactInternals=t,wo(t,i,e,n),t=Ya(null,t,i,!0,o,n)}else t.tag=0,Za(null,t,r,n),t=t.child;return t;case 16:r=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"===typeof e)return Yu(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===D)return 11;if(e===O)return 14}return 2}(r),e=$r(r,e),o){case 0:t=Wa(null,t,r,e,n);break e;case 1:t=Va(null,t,r,e,n);break e;case 11:t=Fa(null,t,r,e,n);break e;case 14:t=ja(null,t,r,$r(r.type,e),i,n);break e}throw Error(a(306,r,""))}return t;case 0:return i=t.type,r=t.pendingProps,Wa(e,t,i,r=t.elementType===i?r:$r(i,r),n);case 1:return i=t.type,r=t.pendingProps,Va(e,t,i,r=t.elementType===i?r:$r(i,r),n);case 3:if(Ua(t),i=t.updateQueue,null===e||null===i)throw Error(a(282));if(i=t.pendingProps,r=null!==(r=t.memoizedState)?r.element:null,uo(e,t),fo(t,i,null,n),(i=t.memoizedState.element)===r)Ko(),t=os(e,t,n);else{if((o=(r=t.stateNode).hydrate)&&(Ho=Ki(t.stateNode.containerInfo.firstChild),jo=t,o=Bo=!0),o){if(null!=(e=r.mutableSourceEagerHydrationData))for(r=0;r<e.length;r+=2)(o=e[r])._workInProgressVersionPrimary=e[r+1],qo.push(o);for(n=Eo(t,null,i,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Za(e,t,i,n),Ko();t=t.child}return t;case 5:return Ro(t),null===e&&Vo(t),i=t.type,r=t.pendingProps,o=null!==e?e.memoizedProps:null,s=r.children,Wi(i,r)?s=null:null!==o&&Wi(i,o)&&(t.flags|=16),za(e,t),Za(e,t,s,n),t.child;case 6:return null===e&&Vo(t),null;case 13:return Xa(e,t,n);case 4:return Io(t,t.stateNode.containerInfo),i=t.pendingProps,null===e?t.child=Lo(t,null,i,n):Za(e,t,i,n),t.child;case 11:return i=t.type,r=t.pendingProps,Fa(e,t,i,r=t.elementType===i?r:$r(i,r),n);case 7:return Za(e,t,t.pendingProps,n),t.child;case 8:case 12:return Za(e,t,t.pendingProps.children,n),t.child;case 10:e:{i=t.type._context,r=t.pendingProps,s=t.memoizedProps,o=r.value;var u=t.type._context;if(cr(Qr,u._currentValue),u._currentValue=o,null!==s)if(u=s.value,0===(o=li(u,o)?0:0|("function"===typeof i._calculateChangedBits?i._calculateChangedBits(u,o):1073741823))){if(s.children===r.children&&!fr.current){t=os(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var l=u.dependencies;if(null!==l){s=u.child;for(var c=l.firstContext;null!==c;){if(c.context===i&&0!==(c.observedBits&o)){1===u.tag&&((c=lo(-1,n&-n)).tag=2,co(u,c)),u.lanes|=n,null!==(c=u.alternate)&&(c.lanes|=n),io(u.return,n),l.lanes|=n;break}c=c.next}}else s=10===u.tag&&u.type===t.type?null:u.child;if(null!==s)s.return=u;else for(s=u;null!==s;){if(s===t){s=null;break}if(null!==(u=s.sibling)){u.return=s.return,s=u;break}s=s.return}u=s}Za(e,t,r.children,n),t=t.child}return t;case 9:return r=t.type,i=(o=t.pendingProps).children,ro(t,n),i=i(r=oo(r,o.unstable_observedBits)),t.flags|=1,Za(e,t,i,n),t.child;case 14:return o=$r(r=t.type,t.pendingProps),ja(e,t,r,o=$r(r.type,o),i,n);case 15:return Ha(e,t,t.type,t.pendingProps,i,n);case 17:return i=t.type,r=t.pendingProps,r=t.elementType===i?r:$r(i,r),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,vr(i)?(e=!0,br(t)):e=!1,ro(t,n),yo(t,i,r),wo(t,i,r,n),Ya(null,t,i,!0,e,n);case 19:return rs(e,t,n);case 23:case 24:return Ba(e,t,n)}throw Error(a(156,t.tag))},il.prototype.render=function(e){Ju(e,this._internalRoot,null,null)},il.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Ju(null,e,null,(function(){t[Ji]=null}))},et=function(e){13===e.tag&&(pu(e,4,hu()),nl(e,4))},tt=function(e){13===e.tag&&(pu(e,67108864,hu()),nl(e,67108864))},nt=function(e){if(13===e.tag){var t=hu(),n=fu(e);pu(e,n,t),nl(e,n)}},it=function(e,t){return t()},Le=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var i=n[t];if(i!==e&&i.form===e.form){var r=rr(i);if(!r)throw Error(a(90));Q(i),ne(i,r)}}}break;case"textarea":le(e,n);break;case"select":null!=(t=n.value)&&ae(e,!!n.multiple,t,!1)}},Oe=bu,Ie=function(e,t,n,i,r){var o=Os;Os|=4;try{return Yr(98,e.bind(null,t,n,i,r))}finally{0===(Os=o)&&(Ks(),Kr())}},Ae=function(){0===(49&Os)&&(function(){if(null!==ru){var e=ru;ru=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,vu(e,zr())}))}Kr()}(),Ru())},Re=function(e,t){var n=Os;Os|=2;try{return e(t)}finally{0===(Os=n)&&(Ks(),Kr())}};var sl={Events:[nr,ir,rr,Me,Te,Ru,{current:!1}]},ul={findFiberByHostInstance:tr,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},ll={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cl.isDisabled&&cl.supportsFiber)try{Cr=cl.inject(ll),kr=cl}catch(ge){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl,t.createPortal=al,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"===typeof e.render)throw Error(a(188));throw Error(a(268,Object.keys(e)))}return e=null===(e=Xe(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Os;if(0!==(48&n))return e(t);Os|=1;try{if(e)return Yr(99,e.bind(null,t))}finally{Os=n,Kr()}},t.hydrate=function(e,t,n){if(!rl(t))throw Error(a(200));return ol(null,e,t,!0,n)},t.render=function(e,t,n){if(!rl(t))throw Error(a(200));return ol(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!rl(e))throw Error(a(40));return!!e._reactRootContainer&&(wu((function(){ol(null,null,e,!1,(function(){e._reactRootContainer=null,e[Ji]=null}))})),!0)},t.unstable_batchedUpdates=bu,t.unstable_createPortal=function(e,t){return al(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,i){if(!rl(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return ol(e,t,n,!1,i)},t.version="17.0.2"},84453:function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(81571)},88807:function(e){var t="undefined"!==typeof Element,n="function"===typeof Map,i="function"===typeof Set,r="function"===typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,a){if(e===a)return!0;if(e&&a&&"object"==typeof e&&"object"==typeof a){if(e.constructor!==a.constructor)return!1;var s,u,l,c;if(Array.isArray(e)){if((s=e.length)!=a.length)return!1;for(u=s;0!==u--;)if(!o(e[u],a[u]))return!1;return!0}if(n&&e instanceof Map&&a instanceof Map){if(e.size!==a.size)return!1;for(c=e.entries();!(u=c.next()).done;)if(!a.has(u.value[0]))return!1;for(c=e.entries();!(u=c.next()).done;)if(!o(u.value[1],a.get(u.value[0])))return!1;return!0}if(i&&e instanceof Set&&a instanceof Set){if(e.size!==a.size)return!1;for(c=e.entries();!(u=c.next()).done;)if(!a.has(u.value[0]))return!1;return!0}if(r&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(a)){if((s=e.length)!=a.length)return!1;for(u=s;0!==u--;)if(e[u]!==a[u])return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===a.toString();if((s=(l=Object.keys(e)).length)!==Object.keys(a).length)return!1;for(u=s;0!==u--;)if(!Object.prototype.hasOwnProperty.call(a,l[u]))return!1;if(t&&e instanceof Element)return!1;for(u=s;0!==u--;)if(("_owner"!==l[u]&&"__v"!==l[u]&&"__o"!==l[u]||!e.$$typeof)&&!o(e[l[u]],a[l[u]]))return!1;return!0}return e!==e&&a!==a}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},16186:function(e,t){"use strict";var n=60103,i=60106,r=60107,o=60108,a=60114,s=60109,u=60110,l=60112,c=60113,d=60120,h=60115,f=60116,p=60121,g=60122,v=60117,m=60129,_=60131;if("function"===typeof Symbol&&Symbol.for){var y=Symbol.for;n=y("react.element"),i=y("react.portal"),r=y("react.fragment"),o=y("react.strict_mode"),a=y("react.profiler"),s=y("react.provider"),u=y("react.context"),l=y("react.forward_ref"),c=y("react.suspense"),d=y("react.suspense_list"),h=y("react.memo"),f=y("react.lazy"),p=y("react.block"),g=y("react.server.block"),v=y("react.fundamental"),m=y("react.debug_trace_mode"),_=y("react.legacy_hidden")}function b(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case r:case a:case o:case c:case d:return e;default:switch(e=e&&e.$$typeof){case u:case l:case f:case h:case s:return e;default:return t}}case i:return t}}}t.isContextConsumer=function(e){return b(e)===u}},78003:function(e,t,n){"use strict";e.exports=n(16186)},18878:function(e,t,n){var i=n(4519),r=n(94278),o=n(91386),a=n(31870),s=i.createElement,u=n(96471),l=n(40458),c=n(2889),d=n(99221),h=n(14661),f=n(72658);e.exports=r({propTypes:{data:o.any.isRequired,search:o.oneOfType([o.func,o.bool]),searchOptions:o.shape({debounceTime:o.number}),onClick:o.func,validateQuery:o.func,isExpanded:o.func,filterOptions:o.shape({cacheResults:o.bool,ignoreCase:o.bool}),query:o.string,verboseShowOriginal:o.bool},getDefaultProps:function(){return{data:null,search:l,searchOptions:{debounceTime:0},className:"",id:"json-"+Date.now(),onClick:f,filterOptions:{cacheResults:!0,ignoreCase:!1},validateQuery:function(e){return e.length>=2},isExpanded:function(e,t){return!1},verboseShowOriginal:!1}},getInitialState:function(){return{query:this.props.query||""}},render:function(){var e=this.props,t=this.state,n=""!==t.query&&e.validateQuery(t.query),i=n?t.filterer(t.query):e.data,r=n&&d(i);return s("div",{className:"json-inspector "+e.className},this.renderToolbar(),r?s("div",{className:"json-inspector__not-found"},"Nothing found"):s(u,{data:i,onClick:e.onClick,id:e.id,getOriginal:this.getOriginal,query:n?new RegExp(t.query,e.filterOptions.ignoreCase?"i":""):null,label:"root",root:!0,isExpanded:e.isExpanded,interactiveLabel:e.interactiveLabel,verboseShowOriginal:e.verboseShowOriginal}))},renderToolbar:function(){var e=this.props.search;if(e)return s("div",{className:"json-inspector__toolbar"},s(e,{onChange:a(this.search,this.props.searchOptions.debounceTime),data:this.props.data,query:this.state.query}))},search:function(e){this.setState({query:e})},componentWillMount:function(){this.createFilterer(this.props.data,this.props.filterOptions)},componentWillReceiveProps:function(e){this.createFilterer(e.data,e.filterOptions),"string"===typeof e.query&&e.query!==this.state.query&&this.setState({query:e.query})},shouldComponentUpdate:function(e,t){return e.query!==this.props.query||t.query!==this.state.query||e.data!==this.props.data||e.onClick!==this.props.onClick},createFilterer:function(e,t){this.setState({filterer:c(e,t)})},getOriginal:function(e){return h(this.props.data,e)}})},2889:function(e,t,n){var i=n(4778),r=Object.keys,o=n(36892),a=n(99221);function s(e,t,n){return r(e).reduce((function(r,l){var c,d=e[l];return o(d)?(u(t,l,n)||u(t,d,n))&&(r[l]=d):u(t,l,n)?r[l]=d:(c=s(d,t,n),a(c)||i(r,function(e,t){var n={};return n[e]=t,n}(l,c))),r}),{})}function u(e,t,n){if(t){var i=String(t),r=e;return n.ignoreCase&&(i=i.toLowerCase(),r=r.toLowerCase()),-1!==i.indexOf(r)}}e.exports=function(e,t){t||(t={cacheResults:!0});var n={};return function(i){if(!t.cacheResults)return s(e,i,t);var r;if(!n[i])for(var o=i.length-1;o>0;o-=1)if(r=i.substr(0,o),n[r]){n[i]=s(n[r],i,t);break}return n[i]||(n[i]=s(e,i,t)),n[i]}}},53196:function(e,t,n){var i=n(4519),r=n(94278),o=i.createElement;e.exports=r({getDefaultProps:function(){return{string:"",highlight:""}},shouldComponentUpdate:function(e){return e.highlight!==this.props.highlight},render:function(){var e=this.props,t=e.string.search(e.highlight);if(!e.highlight||-1===t)return o("span",null,e.string);var n=e.highlight.source.length,i=e.string.substr(t,n);return o("span",null,e.string.split(e.highlight).map((function(e,t){return o("span",{key:t},t>0?o("span",{className:"json-inspector__hl"},i):null,e)})))}})},99221:function(e){e.exports=function(e){return 0===Object.keys(e).length}},36892:function(e,t,n){var i=n(87905);e.exports=function(e){var t=i(e);return"Object"!==t&&"Array"!==t}},96471:function(e,t,n){var i=n(4519),r=n(94278),o=n(43911),a=n(38563),s=n(87905),u=n(36892),l=n(53196),c=i.createElement,d=r({getInitialState:function(){return{expanded:this._isInitiallyExpanded(this.props)}},getDefaultProps:function(){return{root:!1,prefix:""}},render:function(){var e="id_"+a(),t=this.props,n={path:this.keypath(),key:t.label.toString(),value:t.data},i=this._onClick.bind(this,n);return c("div",{className:this.getClassName(),id:"leaf-"+this._rootPath()},c("input",{className:"json-inspector__radio",type:"radio",name:t.id,id:e,tabIndex:-1}),c("label",{className:"json-inspector__line",htmlFor:e,onClick:i},c("div",{className:"json-inspector__flatpath"},n.path),c("span",{className:"json-inspector__key"},this.format(n.key),":",this.renderInteractiveLabel(n.key,!0)),this.renderTitle(),this.renderShowOriginalButton()),this.renderChildren())},renderTitle:function(){var e=this.data(),t=s(e);switch(t){case"Array":return c("span",{className:"json-inspector__value json-inspector__value_helper"},"[] "+h(e.length));case"Object":return c("span",{className:"json-inspector__value json-inspector__value_helper"},"{} "+h(Object.keys(e).length));default:return c("span",{className:"json-inspector__value json-inspector__value_"+t.toLowerCase()},this.format(String(e)),this.renderInteractiveLabel(e,!1))}},renderChildren:function(){var e=this.props,t=this._rootPath(),n=this.data();return this.state.expanded&&!u(n)?Object.keys(n).map((function(i){var r=n[i],o=!this.state.original||!!e.verboseShowOriginal&&e.query;return c(d,{data:r,label:i,prefix:t,onClick:e.onClick,id:e.id,query:e.query,getOriginal:o?e.getOriginal:null,key:f(i,r),isExpanded:e.isExpanded,interactiveLabel:e.interactiveLabel,verboseShowOriginal:e.verboseShowOriginal})}),this):null},renderShowOriginalButton:function(){var e=this.props;return u(e.data)||this.state.original||!e.getOriginal||!e.query||p(this.keypath(),e.query)?null:c("span",{className:"json-inspector__show-original",onClick:this._onShowOriginalClick})},renderInteractiveLabel:function(e,t){return"function"===typeof this.props.interactiveLabel?c(this.props.interactiveLabel,{value:String(e),originalValue:e,isKey:t,keypath:this.keypath()}):null},componentWillReceiveProps:function(e){e.query&&this.setState({expanded:!p(e.label,e.query)}),this.props.query&&!e.query&&this.setState({expanded:this._isInitiallyExpanded(e)})},_rootPath:function(){return this.props.prefix+"."+this.props.label},keypath:function(){return this._rootPath().substr(".root.".length)},data:function(){return this.state.original||this.props.data},format:function(e){return c(l,{string:e,highlight:this.props.query})},getClassName:function(){var e="json-inspector__leaf";return this.props.root&&(e+=" json-inspector__leaf_root"),this.state.expanded&&(e+=" json-inspector__leaf_expanded"),u(this.props.data)||(e+=" json-inspector__leaf_composite"),e},toggle:function(){this.setState({expanded:!this.state.expanded})},_onClick:function(e,t){this.toggle(),this.props.onClick(e),t.stopPropagation()},_onShowOriginalClick:function(e){this.setState({original:this.props.getOriginal(this.keypath())}),e.stopPropagation()},_isInitiallyExpanded:function(e){var t=this.keypath();return!!e.root||(e.query?!p(t,e.query)&&"function"===typeof e.getOriginal:e.isExpanded(t,e.data))}});function h(e){return e+(1===e?" item":" items")}function f(e,t){return u(t)?e+":"+o(String(t)):e+"["+s(t)+"]"}function p(e,t){return-1!==e.indexOf(t)}e.exports=d},14661:function(e,t,n){var i=n(87905),r=".";function o(e){return parseInt(e,10)}e.exports=function e(t,n){var a=n.split(r),s=a.shift();if(!s)return t;var u=i(t);return"Array"===u&&t[o(s)]?e(t[o(s)],a.join(r)):"Object"===u&&t[s]?e(t[s],a.join(r)):void 0}},72658:function(e){e.exports=function(){}},40458:function(e,t,n){var i=n(4519),r=n(94278),o=i.createElement,a=n(72658);e.exports=r({getDefaultProps:function(){return{onChange:a}},render:function(){return o("input",{className:"json-inspector__search",type:"search",placeholder:"Search",onChange:this.onChange})},onChange:function(e){this.props.onChange(e.target.value)}})},87905:function(e){e.exports=function(e){return Object.prototype.toString.call(e).slice(8,-1)}},38563:function(e){var t=Math.ceil(10*Math.random());e.exports=function(){return++t}},4778:function(e){"use strict";e.exports=Object.assign||function(e,t){for(var n,i,r=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),o=1;o<arguments.length;o++){n=arguments[o],i=Object.keys(Object(n));for(var a=0;a<i.length;a++)r[i[a]]=n[i[a]]}return r}},74140:function(e,t,n){var i,r,o;r=[e,n(91386),n(4519)],i=function(e,t,n){"use strict";var i=a(e),r=a(t),o=a(n);function a(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var u,l,c=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();function d(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function h(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var f={x:"clientWidth",y:"clientHeight"},p={x:"clientTop",y:"clientLeft"},g={x:"innerWidth",y:"innerHeight"},v={x:"offsetWidth",y:"offsetHeight"},m={x:"offsetLeft",y:"offsetTop"},_={x:"overflowX",y:"overflowY"},y={x:"scrollWidth",y:"scrollHeight"},b={x:"scrollLeft",y:"scrollTop"},w={x:"width",y:"height"},C=function(){},k=!!function(){if("undefined"===typeof window)return!1;var e=!1;try{document.createElement("div").addEventListener("test",C,{get passive(){return e=!0,!1}})}catch(t){}return e}()&&{passive:!0},S="ReactList failed to reach a stable state.",x=50,L=function(e,t){for(var n in t)if(e[n]!==t[n])return!1;return!0},E=function(e){for(var t=e.props.axis,n=e.getEl(),i=_[t];n=n.parentElement;)switch(window.getComputedStyle(n)[i]){case"auto":case"scroll":case"overlay":return n}return window},N=function(e){var t=e.props.axis,n=e.scrollParent;return n===window?window[g[t]]:n[f[t]]};i.default.exports=(l=u=function(e){function t(e){s(this,t);var n=d(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),i=e.initialIndex,r=1,o=n.constrain(i,0,r,e),a=o.from,u=o.size;return n.state={from:a,size:u,itemsPerRow:r},n.cache={},n.cachedScrollPosition=null,n.prevPrevState={},n.unstable=!1,n.updateCounter=0,n}return h(t,e),c(t,[{key:"componentWillReceiveProps",value:function(e){this.props.axis!==e.axis&&this.clearSizeCache();var t=this.state,n=t.from,i=t.size,r=t.itemsPerRow;this.maybeSetState(this.constrain(n,i,r,e),C)}},{key:"componentDidMount",value:function(){this.updateFrameAndClearCache=this.updateFrameAndClearCache.bind(this),window.addEventListener("resize",this.updateFrameAndClearCache),this.updateFrame(this.scrollTo.bind(this,this.props.initialIndex))}},{key:"componentDidUpdate",value:function(){var e=this;if(!this.unstable){if(++this.updateCounter>x)return this.unstable=!0,console.error(S);this.updateCounterTimeoutId||(this.updateCounterTimeoutId=setTimeout((function(){e.updateCounter=0,delete e.updateCounterTimeoutId}),0)),this.updateFrame()}}},{key:"maybeSetState",value:function(e,t){if(L(this.state,e))return t();this.setState(e,t)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.updateFrameAndClearCache),this.scrollParent.removeEventListener("scroll",this.updateFrameAndClearCache,k),this.scrollParent.removeEventListener("mousewheel",C,k)}},{key:"getOffset",value:function(e){var t=this.props.axis,n=e[p[t]]||0,i=m[t];do{n+=e[i]||0}while(e=e.offsetParent);return n}},{key:"getEl",value:function(){return this.el||this.items}},{key:"getScrollPosition",value:function(){if("number"===typeof this.cachedScrollPosition)return this.cachedScrollPosition;var e=this.scrollParent,t=this.props.axis,n=b[t],i=e===window?document.body[n]||document.documentElement[n]:e[n],r=this.getScrollSize()-this.props.scrollParentViewportSizeGetter(this),o=Math.max(0,Math.min(i,r)),a=this.getEl();return this.cachedScrollPosition=this.getOffset(e)+o-this.getOffset(a),this.cachedScrollPosition}},{key:"setScroll",value:function(e){var t=this.scrollParent,n=this.props.axis;if(e+=this.getOffset(this.getEl()),t===window)return window.scrollTo(0,e);e-=this.getOffset(this.scrollParent),t[b[n]]=e}},{key:"getScrollSize",value:function(){var e=this.scrollParent,t=document,n=t.body,i=t.documentElement,r=y[this.props.axis];return e===window?Math.max(n[r],i[r]):e[r]}},{key:"hasDeterminateSize",value:function(){var e=this.props,t=e.itemSizeGetter;return"uniform"===e.type||t}},{key:"getStartAndEnd",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.threshold,t=this.getScrollPosition(),n=Math.max(0,t-e),i=t+this.props.scrollParentViewportSizeGetter(this)+e;return this.hasDeterminateSize()&&(i=Math.min(i,this.getSpaceBefore(this.props.length))),{start:n,end:i}}},{key:"getItemSizeAndItemsPerRow",value:function(){var e=this.props,t=e.axis,n=e.useStaticSize,i=this.state,r=i.itemSize,o=i.itemsPerRow;if(n&&r&&o)return{itemSize:r,itemsPerRow:o};var a=this.items.children;if(!a.length)return{};var s=a[0],u=s[v[t]],l=Math.abs(u-r);if((isNaN(l)||l>=1)&&(r=u),!r)return{};for(var c=m[t],d=s[c],h=a[o=1];h&&h[c]===d;h=a[o])++o;return{itemSize:r,itemsPerRow:o}}},{key:"clearSizeCache",value:function(){this.cachedScrollPosition=null}},{key:"updateFrameAndClearCache",value:function(e){return this.clearSizeCache(),this.updateFrame(e)}},{key:"updateFrame",value:function(e){switch(this.updateScrollParent(),"function"!=typeof e&&(e=C),this.props.type){case"simple":return this.updateSimpleFrame(e);case"variable":return this.updateVariableFrame(e);case"uniform":return this.updateUniformFrame(e)}}},{key:"updateScrollParent",value:function(){var e=this.scrollParent;this.scrollParent=this.props.scrollParentGetter(this),e!==this.scrollParent&&(e&&(e.removeEventListener("scroll",this.updateFrameAndClearCache),e.removeEventListener("mousewheel",C)),this.clearSizeCache(),this.scrollParent.addEventListener("scroll",this.updateFrameAndClearCache,k),this.scrollParent.addEventListener("mousewheel",C,k))}},{key:"updateSimpleFrame",value:function(e){var t=this.getStartAndEnd().end,n=this.items.children,i=0;if(n.length){var r=this.props.axis,o=n[0],a=n[n.length-1];i=this.getOffset(a)+a[v[r]]-this.getOffset(o)}if(i>t)return e();var s=this.props,u=s.pageSize,l=s.length,c=Math.min(this.state.size+u,l);this.maybeSetState({size:c},e)}},{key:"updateVariableFrame",value:function(e){this.props.itemSizeGetter||this.cacheSizes();for(var t=this.getStartAndEnd(),n=t.start,i=t.end,r=this.props,o=r.length,a=r.pageSize,s=0,u=0,l=0,c=o-1;u<c;){var d=this.getSizeOfItem(u);if(null==d||s+d>n)break;s+=d,++u}for(var h=o-u;l<h&&s<i;){var f=this.getSizeOfItem(u+l);if(null==f){l=Math.min(l+a,h);break}s+=f,++l}this.maybeSetState({from:u,size:l},e)}},{key:"updateUniformFrame",value:function(e){var t=this.getItemSizeAndItemsPerRow(),n=t.itemSize,i=t.itemsPerRow;if(!n||!i)return e();var r=this.getStartAndEnd(),o=r.start,a=r.end,s=this.constrain(Math.floor(o/n)*i,(Math.ceil((a-o)/n)+1)*i,i,this.props),u=s.from,l=s.size;return this.maybeSetState({itemsPerRow:i,from:u,itemSize:n,size:l},e)}},{key:"getSpaceBefore",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null!=t[e])return t[e];var n=this.state,i=n.itemSize,r=n.itemsPerRow;if(i)return t[e]=Math.floor(e/r)*i;for(var o=e;o>0&&null==t[--o];);for(var a=t[o]||0,s=o;s<e;++s){t[s]=a;var u=this.getSizeOfItem(s);if(null==u)break;a+=u}return t[e]=a}},{key:"cacheSizes",value:function(){for(var e=this.cache,t=this.state.from,n=this.items.children,i=v[this.props.axis],r=0,o=n.length;r<o;++r)e[t+r]=n[r][i]}},{key:"getSizeOfItem",value:function(e){var t=this.cache,n=this.items,i=this.props,r=i.axis,o=i.itemSizeGetter,a=i.itemSizeEstimator,s=i.type,u=this.state,l=u.from,c=u.itemSize,d=u.size;if(c)return c;if(o)return o(e);if(e in t)return t[e];if("simple"===s&&e>=l&&e<l+d&&n){var h=n.children[e-l];if(h)return h[v[r]]}return a?a(e,t):void 0}},{key:"constrain",value:function(e,t,n,i){var r=i.length,o=i.minSize,a=i.type,s=(t=Math.max(t,o))%n;return s&&(t+=n-s),t>r&&(t=r),(s=(e="simple"!==a&&e?Math.max(Math.min(e,r-t),0):0)%n)&&(e-=s,t+=s),{from:e,size:t}}},{key:"scrollTo",value:function(e){null!=e&&this.setScroll(this.getSpaceBefore(e))}},{key:"scrollAround",value:function(e){var t=this.getScrollPosition(),n=this.getSpaceBefore(e),i=n-this.props.scrollParentViewportSizeGetter(this)+this.getSizeOfItem(e),r=Math.min(i,n),o=Math.max(i,n);return t<=r?this.setScroll(r):t>o?this.setScroll(o):void 0}},{key:"getVisibleRange",value:function(){for(var e=this.state,t=e.from,n=e.size,i=this.getStartAndEnd(0),r=i.start,o=i.end,a={},s=void 0,u=void 0,l=t;l<t+n;++l){var c=this.getSpaceBefore(l,a),d=c+this.getSizeOfItem(l);null==s&&d>r&&(s=l),null!=s&&c<o&&(u=l)}return[s,u]}},{key:"renderItems",value:function(){for(var e=this,t=this.props,n=t.itemRenderer,i=t.itemsRenderer,r=this.state,o=r.from,a=r.size,s=[],u=0;u<a;++u)s.push(n(o+u,u));return i(s,(function(t){return e.items=t}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.axis,i=t.length,r=t.type,a=t.useTranslate3d,s=this.state,u=s.from,l=s.itemsPerRow,c=this.renderItems();if("simple"===r)return c;var d={position:"relative"},h={},f=Math.ceil(i/l)*l,p=this.getSpaceBefore(f,h);p&&(d[w[n]]=p,"x"===n&&(d.overflowX="hidden"));var g=this.getSpaceBefore(u,h),v="x"===n?g:0,m="y"===n?g:0,_=a?"translate3d("+v+"px, "+m+"px, 0)":"translate("+v+"px, "+m+"px)",y={msTransform:_,WebkitTransform:_,transform:_};return o.default.createElement("div",{style:d,ref:function(t){return e.el=t}},o.default.createElement("div",{style:y},c))}}]),t}(n.Component),u.displayName="ReactList",u.propTypes={axis:r.default.oneOf(["x","y"]),initialIndex:r.default.number,itemRenderer:r.default.func,itemSizeEstimator:r.default.func,itemSizeGetter:r.default.func,itemsRenderer:r.default.func,length:r.default.number,minSize:r.default.number,pageSize:r.default.number,scrollParentGetter:r.default.func,scrollParentViewportSizeGetter:r.default.func,threshold:r.default.number,type:r.default.oneOf(["simple","variable","uniform"]),useStaticSize:r.default.bool,useTranslate3d:r.default.bool},u.defaultProps={axis:"y",itemRenderer:function(e,t){return o.default.createElement("div",{key:t},e)},itemsRenderer:function(e,t){return o.default.createElement("div",{ref:t},e)},length:0,minSize:1,pageSize:10,scrollParentGetter:E,scrollParentViewportSizeGetter:N,threshold:100,type:"simple",useStaticSize:!1,useTranslate3d:!1},l)},void 0===(o="function"===typeof i?i.apply(t,r):i)||(e.exports=o)},855:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var i=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};i.get||i.set?Object.defineProperty(t,n,i):t[n]=e[n]}return t.default=e,t}(n(14717)),r=s(n(91386)),o=s(n(4519)),a=n(91953);function s(e){return e&&e.__esModule?e:{default:e}}function u(e){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=function(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?h(e):t}(this,d(t).call(this,e)),p(h(n),"assignRef",(function(e){n.containerElement=e})),n.containerElement=void 0,n}var n,r,s;return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(t,e),n=t,r=[{key:"componentDidMount",value:function(){this.initMonaco()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.language,r=t.theme,o=t.height,a=t.options,s=t.width,u=this.editor.getModel(),l=u.original,c=u.modified;this.props.original!==l.getValue()&&l.setValue(this.props.original),null!=this.props.value&&this.props.value!==c.getValue()&&(this.__prevent_trigger_change_event=!0,this.editor.pushUndoStop(),c.pushEditOperations([],[{range:c.getFullModelRange(),text:this.props.value}]),this.editor.pushUndoStop(),this.__prevent_trigger_change_event=!1),e.language!==n&&(i.editor.setModelLanguage(l,n),i.editor.setModelLanguage(c,n)),e.theme!==r&&i.editor.setTheme(r),!this.editor||s===e.width&&o===e.height||this.editor.layout(),e.options!==a&&this.editor.updateOptions(a)}},{key:"componentWillUnmount",value:function(){this.destroyMonaco()}},{key:"editorWillMount",value:function(){var e=this.props.editorWillMount;return e(i)||{}}},{key:"editorDidMount",value:function(e){var t=this;this.props.editorDidMount(e,i);var n=e.getModel().modified;this._subscription=n.onDidChangeContent((function(){t.__prevent_trigger_change_event||t.props.onChange(n.getValue())}))}},{key:"initModels",value:function(e,t){var n=this.props.language,r=i.editor.createModel(t,n),o=i.editor.createModel(e,n);this.editor.setModel({original:r,modified:o})}},{key:"initMonaco",value:function(){var e=null!=this.props.value?this.props.value:this.props.defaultValue,t=this.props,n=t.original,r=t.theme,o=t.options,a=t.overrideServices;this.containerElement&&(this.editorWillMount(),this.editor=i.editor.createDiffEditor(this.containerElement,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(n,!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},o,{},r?{theme:r}:{}),a),this.initModels(e,n),this.editorDidMount(this.editor))}},{key:"destroyMonaco",value:function(){if(this.editor){var e=this.editor.getModel(),t=e.original,n=e.modified;t.dispose(),n.dispose(),this.editor.dispose()}this._subscription&&this._subscription.dispose()}},{key:"render",value:function(){var e=this.props,t=e.width,n=e.height,i={width:(0,a.processSize)(t),height:(0,a.processSize)(n)};return o.default.createElement("div",{ref:this.assignRef,style:i,className:"react-monaco-editor-container"})}}],r&&c(n.prototype,r),s&&c(n,s),t}(o.default.Component);g.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),height:r.default.oneOfType([r.default.string,r.default.number]),original:r.default.string,value:r.default.string,defaultValue:r.default.string,language:r.default.string,theme:r.default.string,options:r.default.object,overrideServices:r.default.object,editorDidMount:r.default.func,editorWillMount:r.default.func,onChange:r.default.func},g.defaultProps={width:"100%",height:"100%",original:null,value:null,defaultValue:"",language:"javascript",theme:null,options:{},overrideServices:{},editorDidMount:a.noop,editorWillMount:a.noop,onChange:a.noop};var v=g;t.default=v},81677:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var i=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};i.get||i.set?Object.defineProperty(t,n,i):t[n]=e[n]}return t.default=e,t}(n(14717)),r=s(n(91386)),o=s(n(4519)),a=n(91953);function s(e){return e&&e.__esModule?e:{default:e}}function u(e){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=function(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?h(e):t}(this,d(t).call(this,e)),p(h(n),"assignRef",(function(e){n.containerElement=e})),n.containerElement=void 0,n}var n,r,s;return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(t,e),n=t,r=[{key:"componentDidMount",value:function(){this.initMonaco()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.value,r=t.language,o=t.theme,a=t.height,s=t.options,u=t.width,l=this.editor,c=l.getModel();null!=this.props.value&&this.props.value!==c.getValue()&&(this.__prevent_trigger_change_event=!0,this.editor.pushUndoStop(),c.pushEditOperations([],[{range:c.getFullModelRange(),text:n}]),this.editor.pushUndoStop(),this.__prevent_trigger_change_event=!1),e.language!==r&&i.editor.setModelLanguage(c,r),e.theme!==o&&i.editor.setTheme(o),!l||u===e.width&&a===e.height||l.layout(),e.options!==s&&l.updateOptions(s)}},{key:"componentWillUnmount",value:function(){this.destroyMonaco()}},{key:"destroyMonaco",value:function(){this.editor&&(this.editor.getModel().dispose(),this.editor.dispose()),this._subscription&&this._subscription.dispose()}},{key:"initMonaco",value:function(){var e=null!=this.props.value?this.props.value:this.props.defaultValue,t=this.props,n=t.language,r=t.theme,o=t.options,a=t.overrideServices;this.containerElement&&(Object.assign(o,this.editorWillMount()),this.editor=i.editor.create(this.containerElement,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(n,!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({value:e,language:n},o,{},r?{theme:r}:{}),a),this.editorDidMount(this.editor))}},{key:"editorWillMount",value:function(){var e=this.props.editorWillMount;return e(i)||{}}},{key:"editorDidMount",value:function(e){var t=this;this.props.editorDidMount(e,i),this._subscription=e.onDidChangeModelContent((function(){t.__prevent_trigger_change_event||t.props.onChange(e.getValue())}))}},{key:"render",value:function(){var e=this.props,t=e.width,n=e.height,i={width:(0,a.processSize)(t),height:(0,a.processSize)(n)};return o.default.createElement("div",{ref:this.assignRef,style:i,className:"react-monaco-editor-container"})}}],r&&c(n.prototype,r),s&&c(n,s),t}(o.default.Component);g.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),height:r.default.oneOfType([r.default.string,r.default.number]),value:r.default.string,defaultValue:r.default.string,language:r.default.string,theme:r.default.string,options:r.default.object,overrideServices:r.default.object,editorDidMount:r.default.func,editorWillMount:r.default.func,onChange:r.default.func},g.defaultProps={width:"100%",height:"100%",value:null,defaultValue:"",language:"javascript",theme:null,options:{},overrideServices:{},editorDidMount:a.noop,editorWillMount:a.noop,onChange:a.noop};var v=g;t.default=v},77810:function(e,t,n){"use strict";Object.defineProperty(t,"ZP",{enumerable:!0,get:function(){return i.default}});var i=o(n(81677)),r=o(n(855));function o(e){return e&&e.__esModule?e:{default:e}}},91953:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.processSize=function(e){return/^\d+$/.test(e)?"".concat(e,"px"):e},t.noop=function(){}},39801:function(e,t,n){var i=n(60060);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=h;var r=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,i=[],o=0,a=0,s="",c=t&&t.delimiter||"/";null!=(n=r.exec(e));){var d=n[0],h=n[1],f=n.index;if(s+=e.slice(a,f),a=f+d.length,h)s+=h[1];else{var p=e[a],g=n[2],v=n[3],m=n[4],_=n[5],y=n[6],b=n[7];s&&(i.push(s),s="");var w=null!=g&&null!=p&&p!==g,C="+"===y||"*"===y,k="?"===y||"*"===y,S=n[2]||c,x=m||_;i.push({name:v||o++,prefix:g||"",delimiter:S,optional:k,repeat:C,partial:w,asterisk:!!b,pattern:x?l(x):b?".*":"[^"+u(S)+"]+?"})}}return a<e.length&&(s+=e.substr(a)),s&&i.push(s),i}function a(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),r=0;r<e.length;r++)"object"===typeof e[r]&&(n[r]=new RegExp("^(?:"+e[r].pattern+")$",d(t)));return function(t,r){for(var o="",s=t||{},u=(r||{}).pretty?a:encodeURIComponent,l=0;l<e.length;l++){var c=e[l];if("string"!==typeof c){var d,h=s[c.name];if(null==h){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(i(h)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(h)+"`");if(0===h.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<h.length;f++){if(d=u(h[f]),!n[l].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(h).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):u(h),!n[l].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function u(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function l(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function h(e,t,n){i(t)||(n=t||n,t=[]);for(var r=(n=n||{}).strict,o=!1!==n.end,a="",s=0;s<e.length;s++){var l=e[s];if("string"===typeof l)a+=u(l);else{var h=u(l.prefix),f="(?:"+l.pattern+")";t.push(l),l.repeat&&(f+="(?:"+h+f+")*"),a+=f=l.optional?l.partial?h+"("+f+")?":"(?:"+h+"("+f+"))?":h+"("+f+")"}}var p=u(n.delimiter||"/"),g=a.slice(-p.length)===p;return r||(a=(g?a.slice(0,-p.length):a)+"(?:"+p+"(?=$))?"),a+=o?"$":r&&g?"":"(?="+p+"|$)",c(new RegExp("^"+a,d(n)),t)}function f(e,t,n){return i(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var i=0;i<n.length;i++)t.push({name:i,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):i(e)?function(e,t,n){for(var i=[],r=0;r<e.length;r++)i.push(f(e[r],t,n).source);return c(new RegExp("(?:"+i.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return h(o(e,n),t,n)}(e,t,n)}},31111:function(e,t){"use strict";var n="function"===typeof Symbol&&Symbol.for,i=n?Symbol.for("react.element"):60103,r=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,h=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,p=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.block"):60121,_=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,b=n?Symbol.for("react.scope"):60119;function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case i:switch(e=e.type){case c:case d:case o:case s:case a:case f:return e;default:switch(e=e&&e.$$typeof){case l:case h:case v:case g:case u:return e;default:return t}}case r:return t}}}function C(e){return w(e)===d}},29685:function(e,t,n){"use strict";n(31111)},82824:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},r=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=function(e,t,n){for(var i=!0;i;){var r=e,o=t,a=n;i=!1,null===r&&(r=Function.prototype);var s=Object.getOwnPropertyDescriptor(r,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;if(void 0===u)return;return u.call(a)}var l=Object.getPrototypeOf(r);if(null===l)return;e=l,t=o,n=a,i=!0,s=l=void 0}};function a(e){return e&&e.__esModule?e:{default:e}}var s=a(n(4519)),u=(a(n(91386)),function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),o(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,e),this.state={collapsed:e.defaultCollapsed},this.handleClick=this.handleClick.bind(this)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"handleClick",value:function(){var e;(this.setState({collapsed:!this.state.collapsed}),this.props.onClick)&&(e=this.props).onClick.apply(e,arguments)}},{key:"render",value:function(){var e=this.props,t=e.collapsed,n=void 0===t?this.state.collapsed:t,r=e.className,o=void 0===r?"":r,a=e.itemClassName,u=void 0===a?"":a,l=e.treeViewClassName,c=void 0===l?"":l,d=e.childrenClassName,h=void 0===d?"":d,f=e.nodeLabel,p=e.children,g=(e.defaultCollapsed,function(e,t){var n={};for(var i in e)t.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);return n}(e,["collapsed","className","itemClassName","treeViewClassName","childrenClassName","nodeLabel","children","defaultCollapsed"])),v="tree-view_arrow",m="tree-view_children";n&&(v+=" tree-view_arrow-collapsed",m+=" tree-view_children-collapsed");var _=s.default.createElement("div",i({},g,{className:o+" "+v,onClick:this.handleClick}));return s.default.createElement("div",{className:"tree-view "+c},s.default.createElement("div",{className:"tree-view_item "+u},_,f),s.default.createElement("div",{className:m+" "+h},n?null:p))}}]),t}(s.default.PureComponent));t.default=u,e.exports=t.default},3238:function(e,t,n){"use strict";n(58105);var i=n(4519),r=60103;if(t.Fragment=60107,"function"===typeof Symbol&&Symbol.for){var o=Symbol.for;r=o("react.element"),t.Fragment=o("react.fragment")}var a=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,u={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,n){var i,o={},l=null,c=null;for(i in void 0!==n&&(l=""+n),void 0!==t.key&&(l=""+t.key),void 0!==t.ref&&(c=t.ref),t)s.call(t,i)&&!u.hasOwnProperty(i)&&(o[i]=t[i]);if(e&&e.defaultProps)for(i in t=e.defaultProps)void 0===o[i]&&(o[i]=t[i]);return{$$typeof:r,type:e,key:l,ref:c,props:o,_owner:a.current}}t.jsx=l,t.jsxs=l},43149:function(e,t,n){"use strict";var i=n(58105),r=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var a=60109,s=60110,u=60112;t.Suspense=60113;var l=60115,c=60116;if("function"===typeof Symbol&&Symbol.for){var d=Symbol.for;r=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),a=d("react.provider"),s=d("react.context"),u=d("react.forward_ref"),t.Suspense=d("react.suspense"),l=d("react.memo"),c=d("react.lazy")}var h="function"===typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||p}function m(){}function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||p}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=v.prototype;var y=_.prototype=new m;y.constructor=_,i(y,v.prototype),y.isPureReactComponent=!0;var b={current:null},w=Object.prototype.hasOwnProperty,C={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,n){var i,o={},a=null,s=null;if(null!=t)for(i in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)w.call(t,i)&&!C.hasOwnProperty(i)&&(o[i]=t[i]);var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){for(var l=Array(u),c=0;c<u;c++)l[c]=arguments[c+2];o.children=l}if(e&&e.defaultProps)for(i in u=e.defaultProps)void 0===o[i]&&(o[i]=u[i]);return{$$typeof:r,type:e,key:a,ref:s,props:o,_owner:b.current}}function S(e){return"object"===typeof e&&null!==e&&e.$$typeof===r}var x=/\/+/g;function L(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function E(e,t,n,i,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var u=!1;if(null===e)u=!0;else switch(s){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case r:case o:u=!0}}if(u)return a=a(u=e),e=""===i?"."+L(u,0):i,Array.isArray(a)?(n="",null!=e&&(n=e.replace(x,"$&/")+"/"),E(a,t,n,"",(function(e){return e}))):null!=a&&(S(a)&&(a=function(e,t){return{$$typeof:r,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,n+(!a.key||u&&u.key===a.key?"":(""+a.key).replace(x,"$&/")+"/")+e)),t.push(a)),1;if(u=0,i=""===i?".":i+":",Array.isArray(e))for(var l=0;l<e.length;l++){var c=i+L(s=e[l],l);u+=E(s,t,n,c,a)}else if(c=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=h&&e[h]||e["@@iterator"])?e:null}(e),"function"===typeof c)for(e=c.call(e),l=0;!(s=e.next()).done;)u+=E(s=s.value,t,n,c=i+L(s,l++),a);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return u}function N(e,t,n){if(null==e)return e;var i=[],r=0;return E(e,i,"","",(function(e){return t.call(n,e,r++)})),i}function D(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var M={current:null};function T(){var e=M.current;if(null===e)throw Error(f(321));return e}var O={ReactCurrentDispatcher:M,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:b,IsSomeRendererActing:{current:!1},assign:i};t.Children={map:N,forEach:function(e,t,n){N(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return N(e,(function(){t++})),t},toArray:function(e){return N(e,(function(e){return e}))||[]},only:function(e){if(!S(e))throw Error(f(143));return e}},t.Component=v,t.PureComponent=_,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,n){if(null===e||void 0===e)throw Error(f(267,e));var o=i({},e.props),a=e.key,s=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,u=b.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)w.call(t,c)&&!C.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];o.children=l}return{$$typeof:r,type:e.type,key:a,ref:s,props:o,_owner:u}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},t.createElement=k,t.createFactory=function(e){var t=k.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=S,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:D}},t.memo=function(e,t){return{$$typeof:l,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return T().useCallback(e,t)},t.useContext=function(e,t){return T().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return T().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return T().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return T().useLayoutEffect(e,t)},t.useMemo=function(e,t){return T().useMemo(e,t)},t.useReducer=function(e,t,n){return T().useReducer(e,t,n)},t.useRef=function(e){return T().useRef(e)},t.useState=function(e){return T().useState(e)},t.version="17.0.2"},4519:function(e,t,n){"use strict";e.exports=n(43149)},2556:function(e,t,n){"use strict";e.exports=n(3238)},34737:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.LOCATION_POP="REDUX-LOCATION-POP-ACTION",t.LOCATION_PUSH="REDUX-LOCATION-PUSH-ACTION",t.OBJECT_KEY_DELIMITER="-"},61530:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createReduxLocationActions=function(e,t,n,s){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.stateToParams;e[r.RLSCONFIG]&&e[r.RLSCONFIG][r.OVERWRITE_ACCESSORS]&&Object.keys(e[r.RLSCONFIG][r.OVERWRITE_ACCESSORS]).forEach((function(t){(0,r.overrideAccessors)(t,e[r.RLSCONFIG][r.OVERWRITE_ACCESSORS][t])}));var l={};return{locationMiddleware:function(t){return function(i){return function(o){var a=t.getState(),s=i(o),c=t.getState(),d=n.location,h=d.pathname!==l.pathname;if(c!==a||h){l=d;var f=u(e,c,d),p=f.shouldPush,g=f.location;(0,r.isEqual)(g,d)||(p&&!h?n.push(g):n.replace(g))}return s}}},reducersWithLocation:function(n,r){var a=function(n,r){var a=r.type,s=r.payload;return s&&i.LOCATION_POP===a?(s.query=(0,o.parseQuery)(e,s),s?t(n,s):n):n}(s(n,r),r);return a!==n?a:n}}};var i=n(34737),r=n(8606),o=n(85292),a=n(77847)},8606:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.paramDecoder=t.OVERWRITE_ACCESSORS=t.RLSCONFIG=void 0,t.setParamEncoder=function(e){l=e},t.setParamDecoder=function(e){t.paramDecoder=c=e},t.overrideAccessors=function(e,t){u[e]=t},t.get=function(){return u.get.apply(u,arguments)},t.set=function(){return u.set.apply(u,arguments)},t.isEqual=function(){return u.isEqual.apply(u,arguments)},t.getMatchingDeclaredPath=d,t.createObjectFromConfig=function(e,t){if(!e)return;var n=d(e,t);return e.global?Object.assign({},e.global,e[n]||{}):e[n]},t.getPath=function(){var e=window.location.href,t=e.indexOf("#")+1;if(t&&0===e.substring(t).indexOf("/"))return e.substring(t);return window.location.pathname+window.location.search+window.location.hash},t.createParamsString=function(e){var t=Object.keys(e).reduce((function(t,n){var i=n.toString(),r=e[n].toString();return function(e){return"undefined"===typeof e||null===e}(r)||Array.isArray(r)&&!r.length?t:[].concat(s(t),[l(i)+"="+l(r)])}),[]);return t.length?"?"+t.join("&"):""},t.parseParams=function(e,t){return e&&e.split("&").reduce((function(e,n){"?"===n[0]&&(n=n.substr(1));var i=t?t(n):n.split("=");return e[c(i[0])]=c(i[1])||"",e}),{})||{}};var i=a(n(93128)),r=a(n(34495)),o=a(n(59537));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}t.RLSCONFIG="RLSCONFIG",t.OVERWRITE_ACCESSORS="overwrite-accessors";var u={get:i.default,set:o.default,isEqual:r.default},l=encodeURIComponent,c=t.paramDecoder=decodeURIComponent;function d(e,t){var n=t.pathname.split("/");return Object.keys(e).filter((function(e){var t=[].concat(s(n)),i=e.split("/"),r=[].concat(s(i)),o=0;return i.forEach((function(e,n){"*"===e&&(t.splice(n-o,1),r.splice(n-o,1),o++)})),t.join("/")===r.join("/")}))[0]}},22458:function(e,t,n){"use strict";var i=n(61530);Object.defineProperty(t,"zl",{enumerable:!0,get:function(){return i.createReduxLocationActions}});var r=n(76664);Object.defineProperty(t,"C1",{enumerable:!0,get:function(){return r.listenForHistoryChange}});var o=n(8606)},76664:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.listenForHistoryChange=function(e,t){var n=function(e){return{type:i.LOCATION_POP,payload:e}};t.listen((function(){t&&t.action&&"POP"===t.action&&e.dispatch(n(t.location))})),t.listen((function(){t&&t.action&&"PUSH"===t.action&&e.dispatch(function(e){return{type:i.LOCATION_PUSH,payload:e}}(t.location))})),e.dispatch(n(t.location))};var i=n(34737)},85292:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseQuery=function(e,t){var n=(0,i.createObjectFromConfig)(e,t),o=e[i.RLSCONFIG]&&e[i.RLSCONFIG].queryParser,a=(0,i.parseParams)(t.search,o);if(!n)return t.search;return Object.keys(n).reduce((function(e,t){var o=n[t],s=o.stateKey,u=o.options,l=void 0===u?{}:u,c=o.initialState,d=o.type,h=a[t],f=void 0;return"undefined"===typeof h||null===h?((0,i.set)(e,s,c),e):(f=l.parse?l.parse(h):d?r.typeHandles[d].parse(h,l):h,(0,i.set)(e,s,f),e)}),{})};var i=n(8606),r=n(4141)},77847:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e};t.stateToParams=function(e,t,n){var s=(0,o.createObjectFromConfig)(e,n),u=e[o.RLSCONFIG]&&e[o.RLSCONFIG].queryParser,l=(0,o.parseParams)(n.search,u);if(!s)return{location:r({},n)};var c=!1,d=Object.keys(s).reduce((function(e,n){var r=s[n],u=r.stateKey,d=r.options,h=void 0===d?{}:d,f=r.initialState,p=r.type,g=(0,o.get)(t,u),v=void 0;if("date"===p?v=g.toISOString().substring(0,10)===(f&&f.toISOString().substring(0,10)):(g&&"object"===("undefined"===typeof g?"undefined":i(g))&&!Object.keys(g).length&&(g=void 0),v="object"===("undefined"===typeof g?"undefined":i(g))?(0,o.isEqual)(f,g):g===f),(!g&&!h.serialize||v)&&!h.setAsEmptyItem)return e;if(h.serialize){var m=h.serialize(g);if("undefined"===typeof m)return e;g=m}else p&&(g=a.typeHandles[p].serialize(g,h));return e[n]=g,g!==l[n]&&h.shouldPush&&(c=!0),e}),{});return{location:r({},n,{search:(0,o.createParamsString)(d)}),shouldPush:c}};var o=n(8606),a=n(4141)},4141:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.typeHandles=void 0;var i=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(u){r=!0,o=u}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(34737),o=n(8606);function a(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}t.typeHandles={number:{serialize:function(e,t){return e.toString()},parse:function(e,t){return parseFloat(e)}},date:{serialize:function(e,t){return e.toISOString().substring(0,10)},parse:function(e,t){return new Date(e)}},array:{serialize:function(e,t){return(t.keepOrder?[].concat(a(e)):[].concat(a(e)).sort()).join(t.delimiter||r.OBJECT_KEY_DELIMITER)},parse:function(e,t){return(0,o.paramDecoder)(e).split(t.delimiter||r.OBJECT_KEY_DELIMITER)}},bool:{serialize:function(e,t){return e.toString()},parse:function(e,t){return"true"===e}},object:{serialize:function(e,t){return t.isFlags?Object.keys(e).filter((function(t,n){return e[t]})).join(r.OBJECT_KEY_DELIMITER):Object.keys(e).sort().map((function(t,n){return""+t+r.OBJECT_KEY_DELIMITER+e[t]}))},parse:function(e,t){return t.isFlags?e.split(t.delimiter||r.OBJECT_KEY_DELIMITER).reduce((function(e,t){return""===t||(e[t]=!0),e}),{}):(0,o.paramDecoder)(e).split(",").reduce((function(e,t){var n=t.split(r.OBJECT_KEY_DELIMITER),o=i(n,2),a=o[0],s=o[1];return e[a]=s,e}),{})}}}},9780:function(e){var t=function(e){"use strict";var t,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(T){u=function(e,t,n){return e[t]=n}}function l(e,t,n,i){var r=t&&t.prototype instanceof v?t:v,o=Object.create(r.prototype),a=new N(i||[]);return o._invoke=function(e,t,n){var i=d;return function(r,o){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw o;return M()}for(n.method=r,n.arg=o;;){var a=n.delegate;if(a){var s=x(a,n);if(s){if(s===g)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===d)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var u=c(e,t,n);if("normal"===u.type){if(i=n.done?p:h,u.arg===g)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(i=p,n.method="throw",n.arg=u.arg)}}}(e,n,a),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(T){return{type:"throw",arg:T}}}e.wrap=l;var d="suspendedStart",h="suspendedYield",f="executing",p="completed",g={};function v(){}function m(){}function _(){}var y={};u(y,o,(function(){return this}));var b=Object.getPrototypeOf,w=b&&b(b(D([])));w&&w!==n&&i.call(w,o)&&(y=w);var C=_.prototype=v.prototype=Object.create(y);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(r,o,a,s){var u=c(e[r],e,o);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"===typeof d&&i.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(d).then((function(e){l.value=e,a(l)}),(function(e){return n("throw",e,a,s)}))}s(u.arg)}var r;this._invoke=function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}}function x(e,n){var i=e.iterator[n.method];if(i===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,x(e,n),"throw"===n.method))return g;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var r=c(i,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,g;var o=r.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function N(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function D(e){if(e){var n=e[o];if(n)return n.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function n(){for(;++r<e.length;)if(i.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:M}}function M(){return{value:t,done:!0}}return m.prototype=_,u(C,"constructor",_),u(_,"constructor",m),m.displayName=u(_,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,_):(e.__proto__=_,u(e,s,"GeneratorFunction")),e.prototype=Object.create(C),e},e.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,a,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,i,r,o){void 0===o&&(o=Promise);var a=new S(l(t,n,i,r),o);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(C),u(C,s,"Generator"),u(C,o,(function(){return this})),u(C,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var i=t.pop();if(i in e)return n.value=i,n.done=!1,n}return n.done=!0,n}},e.values=D,N.prototype={constructor:N,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(E),!e)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(i,r){return s.type="throw",s.arg=e,n.next=i,r&&(n.method="next",n.arg=t),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=i.call(a,"catchLoc"),l=i.call(a,"finallyLoc");if(u&&l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,g):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var r=i.arg;E(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,i){return this.delegate={iterator:D(e),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=t),g}},e}(e.exports);try{regeneratorRuntime=t}catch(n){"object"===typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},81451:function(e,t,n){"use strict";var i=function(){if("undefined"!==typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,i){return e[0]===t&&(n=i,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),i=this.__entries__[n];return i&&i[1]},t.prototype.set=function(t,n){var i=e(this.__entries__,t);~i?this.__entries__[i][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,i=e(n,t);~i&&n.splice(i,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,i=this.__entries__;n<i.length;n++){var r=i[n];e.call(t,r[1],r[0])}},t}()}(),r="undefined"!==typeof window&&"undefined"!==typeof document&&window.document===document,o="undefined"!==typeof n.g&&n.g.Math===Math?n.g:"undefined"!==typeof self&&self.Math===Math?self:"undefined"!==typeof window&&window.Math===Math?window:Function("return this")(),a="function"===typeof requestAnimationFrame?requestAnimationFrame.bind(o):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)},s=2;var u=20,l=["top","right","bottom","left","width","height","size","weight"],c="undefined"!==typeof MutationObserver,d=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,i=!1,r=0;function o(){n&&(n=!1,e()),i&&l()}function u(){a(o)}function l(){var e=Date.now();if(n){if(e-r<s)return;i=!0}else n=!0,i=!1,setTimeout(u,t);r=e}return l}(this.refresh.bind(this),u)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),c?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;l.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),h=function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},f=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||o},p=b(0,0,0,0);function g(e){return parseFloat(e)||0}function v(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+g(e["border-"+n+"-width"])}),0)}function m(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return p;var i=f(e).getComputedStyle(e),r=function(e){for(var t={},n=0,i=["top","right","bottom","left"];n<i.length;n++){var r=i[n],o=e["padding-"+r];t[r]=g(o)}return t}(i),o=r.left+r.right,a=r.top+r.bottom,s=g(i.width),u=g(i.height);if("border-box"===i.boxSizing&&(Math.round(s+o)!==t&&(s-=v(i,"left","right")+o),Math.round(u+a)!==n&&(u-=v(i,"top","bottom")+a)),!function(e){return e===f(e).document.documentElement}(e)){var l=Math.round(s+o)-t,c=Math.round(u+a)-n;1!==Math.abs(l)&&(s-=l),1!==Math.abs(c)&&(u-=c)}return b(r.left,r.top,s,u)}var _="undefined"!==typeof SVGGraphicsElement?function(e){return e instanceof f(e).SVGGraphicsElement}:function(e){return e instanceof f(e).SVGElement&&"function"===typeof e.getBBox};function y(e){return r?_(e)?function(e){var t=e.getBBox();return b(0,0,t.width,t.height)}(e):m(e):p}function b(e,t,n,i){return{x:e,y:t,width:n,height:i}}var w=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=b(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=y(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),C=function(e,t){var n=function(e){var t=e.x,n=e.y,i=e.width,r=e.height,o="undefined"!==typeof DOMRectReadOnly?DOMRectReadOnly:Object,a=Object.create(o.prototype);return h(a,{x:t,y:n,width:i,height:r,top:n,right:t+i,bottom:r+n,left:t}),a}(t);h(this,{target:e,contentRect:n})},k=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new i,"function"!==typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof f(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new w(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof f(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new C(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),S="undefined"!==typeof WeakMap?new WeakMap:new i,x=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=d.getInstance(),i=new k(t,n,this);S.set(this,i)};["observe","unobserve","disconnect"].forEach((function(e){x.prototype[e]=function(){var t;return(t=S.get(this))[e].apply(t,arguments)}}));var L="undefined"!==typeof o.ResizeObserver?o.ResizeObserver:x;t.Z=L},77154:function(e,t){"use strict";var n,i,r,o;if("object"===typeof performance&&"function"===typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}if("undefined"===typeof window||"function"!==typeof MessageChannel){var l=null,c=null,d=function e(){if(null!==l)try{var n=t.unstable_now();l(!0,n),l=null}catch(i){throw setTimeout(e,0),i}};n=function(e){null!==l?setTimeout(n,0,e):(l=e,setTimeout(d,0))},i=function(e,t){c=setTimeout(e,t)},r=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var h=window.setTimeout,f=window.clearTimeout;if("undefined"!==typeof console){var p=window.cancelAnimationFrame;"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!==typeof p&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var g=!1,v=null,m=-1,_=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_=0<e?Math.floor(1e3/e):5};var b=new MessageChannel,w=b.port2;b.port1.onmessage=function(){if(null!==v){var e=t.unstable_now();y=e+_;try{v(!0,e)?w.postMessage(null):(g=!1,v=null)}catch(n){throw w.postMessage(null),n}}else g=!1},n=function(e){v=e,g||(g=!0,w.postMessage(null))},i=function(e,n){m=h((function(){e(t.unstable_now())}),n)},r=function(){f(m),m=-1}}function C(e,t){var n=e.length;e.push(t);e:for(;;){var i=n-1>>>1,r=e[i];if(!(void 0!==r&&0<x(r,t)))break e;e[i]=t,e[n]=r,n=i}}function k(e){return void 0===(e=e[0])?null:e}function S(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var i=0,r=e.length;i<r;){var o=2*(i+1)-1,a=e[o],s=o+1,u=e[s];if(void 0!==a&&0>x(a,n))void 0!==u&&0>x(u,a)?(e[i]=u,e[s]=n,i=s):(e[i]=a,e[o]=n,i=o);else{if(!(void 0!==u&&0>x(u,n)))break e;e[i]=u,e[s]=n,i=s}}}return t}return null}function x(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var L=[],E=[],N=1,D=null,M=3,T=!1,O=!1,I=!1;function A(e){for(var t=k(E);null!==t;){if(null===t.callback)S(E);else{if(!(t.startTime<=e))break;S(E),t.sortIndex=t.expirationTime,C(L,t)}t=k(E)}}function R(e){if(I=!1,A(e),!O)if(null!==k(L))O=!0,n(P);else{var t=k(E);null!==t&&i(R,t.startTime-e)}}function P(e,n){O=!1,I&&(I=!1,r()),T=!0;var o=M;try{for(A(n),D=k(L);null!==D&&(!(D.expirationTime>n)||e&&!t.unstable_shouldYield());){var a=D.callback;if("function"===typeof a){D.callback=null,M=D.priorityLevel;var s=a(D.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?D.callback=s:D===k(L)&&S(L),A(n)}else S(L);D=k(L)}if(null!==D)var u=!0;else{var l=k(E);null!==l&&i(R,l.startTime-n),u=!1}return u}finally{D=null,M=o,T=!1}}var Z=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){O||T||(O=!0,n(P))},t.unstable_getCurrentPriorityLevel=function(){return M},t.unstable_getFirstCallbackNode=function(){return k(L)},t.unstable_next=function(e){switch(M){case 1:case 2:case 3:var t=3;break;default:t=M}var n=M;M=t;try{return e()}finally{M=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=Z,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=M;M=e;try{return t()}finally{M=n}},t.unstable_scheduleCallback=function(e,o,a){var s=t.unstable_now();switch("object"===typeof a&&null!==a?a="number"===typeof(a=a.delay)&&0<a?s+a:s:a=s,e){case 1:var u=-1;break;case 2:u=250;break;case 5:u=1073741823;break;case 4:u=1e4;break;default:u=5e3}return e={id:N++,callback:o,priorityLevel:e,startTime:a,expirationTime:u=a+u,sortIndex:-1},a>s?(e.sortIndex=a,C(E,e),null===k(L)&&e===k(E)&&(I?r():I=!0,i(R,a-s))):(e.sortIndex=u,C(L,e),O||T||(O=!0,n(P))),e},t.unstable_wrapCallback=function(e){var t=M;return function(){var n=M;M=t;try{return e.apply(this,arguments)}finally{M=n}}}},8514:function(e,t,n){"use strict";e.exports=n(77154)},13959:function(e,t,n){"use strict";var i=n(11333),r=n(15017),o=n(27481),a=i("%TypeError%"),s=i("%WeakMap%",!0),u=i("%Map%",!0),l=r("WeakMap.prototype.get",!0),c=r("WeakMap.prototype.set",!0),d=r("WeakMap.prototype.has",!0),h=r("Map.prototype.get",!0),f=r("Map.prototype.set",!0),p=r("Map.prototype.has",!0),g=function(e,t){for(var n,i=e;null!==(n=i.next);i=n)if(n.key===t)return i.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,i={assert:function(e){if(!i.has(e))throw new a("Side channel does not contain "+o(e))},get:function(i){if(s&&i&&("object"===typeof i||"function"===typeof i)){if(e)return l(e,i)}else if(u){if(t)return h(t,i)}else if(n)return function(e,t){var n=g(e,t);return n&&n.value}(n,i)},has:function(i){if(s&&i&&("object"===typeof i||"function"===typeof i)){if(e)return d(e,i)}else if(u){if(t)return p(t,i)}else if(n)return function(e,t){return!!g(e,t)}(n,i);return!1},set:function(i,r){s&&i&&("object"===typeof i||"function"===typeof i)?(e||(e=new s),c(e,i,r)):u?(t||(t=new u),f(t,i,r)):(n||(n={key:{},next:null}),function(e,t,n){var i=g(e,t);i?i.value=n:e.next={key:t,next:e.next,value:n}}(n,i,r))}};return i}},83077:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}}),e=n.hmd(e);var i=function(e){var t,n=e.Symbol;return"function"===typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}("undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:e)},22710:function(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],i=0;i<e.rangeCount;i++)n.push(e.getRangeAt(i));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},55509:function(e,t,n){var i;e=n.nmd(e),function(r){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof n.g&&n.g;o.global!==o&&o.window!==o&&o.self;var a,s=2147483647,u=36,l=1,c=26,d=38,h=700,f=72,p=128,g="-",v=/^xn--/,m=/[^\x20-\x7E]/,_=/[\x2E\u3002\uFF0E\uFF61]/g,y={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},b=u-l,w=Math.floor,C=String.fromCharCode;function k(e){throw RangeError(y[e])}function S(e,t){for(var n=e.length,i=[];n--;)i[n]=t(e[n]);return i}function x(e,t){var n=e.split("@"),i="";return n.length>1&&(i=n[0]+"@",e=n[1]),i+S((e=e.replace(_,".")).split("."),t).join(".")}function L(e){for(var t,n,i=[],r=0,o=e.length;r<o;)(t=e.charCodeAt(r++))>=55296&&t<=56319&&r<o?56320==(64512&(n=e.charCodeAt(r++)))?i.push(((1023&t)<<10)+(1023&n)+65536):(i.push(t),r--):i.push(t);return i}function E(e){return S(e,(function(e){var t="";return e>65535&&(t+=C((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=C(e)})).join("")}function N(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function D(e,t,n){var i=0;for(e=n?w(e/h):e>>1,e+=w(e/t);e>b*c>>1;i+=u)e=w(e/b);return w(i+(b+1)*e/(e+d))}function M(e){var t,n,i,r,o,a,d,h,v,m,_,y=[],b=e.length,C=0,S=p,x=f;for((n=e.lastIndexOf(g))<0&&(n=0),i=0;i<n;++i)e.charCodeAt(i)>=128&&k("not-basic"),y.push(e.charCodeAt(i));for(r=n>0?n+1:0;r<b;){for(o=C,a=1,d=u;r>=b&&k("invalid-input"),((h=(_=e.charCodeAt(r++))-48<10?_-22:_-65<26?_-65:_-97<26?_-97:u)>=u||h>w((s-C)/a))&&k("overflow"),C+=h*a,!(h<(v=d<=x?l:d>=x+c?c:d-x));d+=u)a>w(s/(m=u-v))&&k("overflow"),a*=m;x=D(C-o,t=y.length+1,0==o),w(C/t)>s-S&&k("overflow"),S+=w(C/t),C%=t,y.splice(C++,0,S)}return E(y)}function T(e){var t,n,i,r,o,a,d,h,v,m,_,y,b,S,x,E=[];for(y=(e=L(e)).length,t=p,n=0,o=f,a=0;a<y;++a)(_=e[a])<128&&E.push(C(_));for(i=r=E.length,r&&E.push(g);i<y;){for(d=s,a=0;a<y;++a)(_=e[a])>=t&&_<d&&(d=_);for(d-t>w((s-n)/(b=i+1))&&k("overflow"),n+=(d-t)*b,t=d,a=0;a<y;++a)if((_=e[a])<t&&++n>s&&k("overflow"),_==t){for(h=n,v=u;!(h<(m=v<=o?l:v>=o+c?c:v-o));v+=u)x=h-m,S=u-m,E.push(C(N(m+x%S,0))),h=w(x/S);E.push(C(N(h,0))),o=D(n,b,i==r),n=0,++i}++n,++t}return E.join("")}a={version:"1.3.2",ucs2:{decode:L,encode:E},decode:M,encode:T,toASCII:function(e){return x(e,(function(e){return m.test(e)?"xn--"+T(e):e}))},toUnicode:function(e){return x(e,(function(e){return v.test(e)?M(e.slice(4).toLowerCase()):e}))}},void 0===(i=function(){return a}.call(t,n,t,e))||(e.exports=i)}()},33119:function(e,t,n){"use strict";var i=n(55509),r=n(60723);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){r.isString(e)&&(e=y(e));return e instanceof o?e.format():o.prototype.format.call(e)},t.Url=o;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),d=["%","/","?",";","#"].concat(c),h=["/","?","#"],f=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},_=n(76127);function y(e,t,n){if(e&&r.isObject(e)&&e instanceof o)return e;var i=new o;return i.parse(e,t,n),i}o.prototype.parse=function(e,t,n){if(!r.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o<e.indexOf("#")?"?":"#",l=e.split(s);l[0]=l[0].replace(/\\/g,"/");var y=e=l.join(s);if(y=y.trim(),!n&&1===e.split("#").length){var b=u.exec(y);if(b)return this.path=y,this.href=y,this.pathname=b[1],b[2]?(this.search=b[2],this.query=t?_.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=a.exec(y);if(w){var C=(w=w[0]).toLowerCase();this.protocol=C,y=y.substr(w.length)}if(n||w||y.match(/^\/\/[^@\/]+@[^@\/]+/)){var k="//"===y.substr(0,2);!k||w&&v[w]||(y=y.substr(2),this.slashes=!0)}if(!v[w]&&(k||w&&!m[w])){for(var S,x,L=-1,E=0;E<h.length;E++){-1!==(N=y.indexOf(h[E]))&&(-1===L||N<L)&&(L=N)}-1!==(x=-1===L?y.lastIndexOf("@"):y.lastIndexOf("@",L))&&(S=y.slice(0,x),y=y.slice(x+1),this.auth=decodeURIComponent(S)),L=-1;for(E=0;E<d.length;E++){var N;-1!==(N=y.indexOf(d[E]))&&(-1===L||N<L)&&(L=N)}-1===L&&(L=y.length),this.host=y.slice(0,L),y=y.slice(L),this.parseHost(),this.hostname=this.hostname||"";var D="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!D)for(var M=this.hostname.split(/\./),T=(E=0,M.length);E<T;E++){var O=M[E];if(O&&!O.match(f)){for(var I="",A=0,R=O.length;A<R;A++)O.charCodeAt(A)>127?I+="x":I+=O[A];if(!I.match(f)){var P=M.slice(0,E),Z=M.slice(E+1),F=O.match(p);F&&(P.push(F[1]),Z.unshift(F[2])),Z.length&&(y="/"+Z.join(".")+y),this.hostname=P.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),D||(this.hostname=i.toASCII(this.hostname));var j=this.port?":"+this.port:"",H=this.hostname||"";this.host=H+j,this.href+=this.host,D&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!g[C])for(E=0,T=c.length;E<T;E++){var B=c[E];if(-1!==y.indexOf(B)){var z=encodeURIComponent(B);z===B&&(z=escape(B)),y=y.split(B).join(z)}}var W=y.indexOf("#");-1!==W&&(this.hash=y.substr(W),y=y.slice(0,W));var V=y.indexOf("?");if(-1!==V?(this.search=y.substr(V),this.query=y.substr(V+1),t&&(this.query=_.parse(this.query)),y=y.slice(0,V)):t&&(this.search="",this.query={}),y&&(this.pathname=y),m[C]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){j=this.pathname||"";var Y=this.search||"";this.path=j+Y}return this.href=this.format(),this},o.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",i=this.hash||"",o=!1,a="";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&r.isObject(this.query)&&Object.keys(this.query).length&&(a=_.stringify(this.query));var s=this.search||a&&"?"+a||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||m[t])&&!1!==o?(o="//"+(o||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):o||(o=""),i&&"#"!==i.charAt(0)&&(i="#"+i),s&&"?"!==s.charAt(0)&&(s="?"+s),t+o+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+i},o.prototype.resolve=function(e){return this.resolveObject(y(e,!1,!0)).format()},o.prototype.resolveObject=function(e){if(r.isString(e)){var t=new o;t.parse(e,!1,!0),e=t}for(var n=new o,i=Object.keys(this),a=0;a<i.length;a++){var s=i[a];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var u=Object.keys(e),l=0;l<u.length;l++){var c=u[l];"protocol"!==c&&(n[c]=e[c])}return m[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!m[e.protocol]){for(var d=Object.keys(e),h=0;h<d.length;h++){var f=d[h];n[f]=e[f]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||v[e.protocol])n.pathname=e.pathname;else{for(var p=(e.pathname||"").split("/");p.length&&!(e.host=p.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==p[0]&&p.unshift(""),p.length<2&&p.unshift(""),n.pathname=p.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var g=n.pathname||"",_=n.search||"";n.path=g+_}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var y=n.pathname&&"/"===n.pathname.charAt(0),b=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=b||y||n.host&&e.pathname,C=w,k=n.pathname&&n.pathname.split("/")||[],S=(p=e.pathname&&e.pathname.split("/")||[],n.protocol&&!m[n.protocol]);if(S&&(n.hostname="",n.port=null,n.host&&(""===k[0]?k[0]=n.host:k.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===p[0]?p[0]=e.host:p.unshift(e.host)),e.host=null),w=w&&(""===p[0]||""===k[0])),b)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,k=p;else if(p.length)k||(k=[]),k.pop(),k=k.concat(p),n.search=e.search,n.query=e.query;else if(!r.isNullOrUndefined(e.search)){if(S)n.hostname=n.host=k.shift(),(D=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=D.shift(),n.host=n.hostname=D.shift());return n.search=e.search,n.query=e.query,r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!k.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var x=k.slice(-1)[0],L=(n.host||e.host||k.length>1)&&("."===x||".."===x)||""===x,E=0,N=k.length;N>=0;N--)"."===(x=k[N])?k.splice(N,1):".."===x?(k.splice(N,1),E++):E&&(k.splice(N,1),E--);if(!w&&!C)for(;E--;E)k.unshift("..");!w||""===k[0]||k[0]&&"/"===k[0].charAt(0)||k.unshift(""),L&&"/"!==k.join("/").substr(-1)&&k.push("");var D,M=""===k[0]||k[0]&&"/"===k[0].charAt(0);S&&(n.hostname=n.host=M?"":k.length?k.shift():"",(D=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=D.shift(),n.host=n.hostname=D.shift()));return(w=w||n.host&&k.length)&&!M&&k.unshift(""),k.length?n.pathname=k.join("/"):(n.pathname=null,n.path=null),r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},60723:function(e){"use strict";e.exports={isString:function(e){return"string"===typeof e},isObject:function(e){return"object"===typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},67908:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EmptyView=function(e){var t=e.level;return i.default.createElement(a.TreeView,{name:i.default.createElement("span",{className:u()},(0,o.default)("label_empty")),level:t})};var i=s(n(4519)),r=s(n(89804)),o=s(n(49465)),a=n(72322);function s(e){return e&&e.__esModule?e:{default:e}}n(89052);var u=(0,r.default)("ydb-navigation-tree-view-empty")},69186:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ErrorView=function(e){var t=e.level;return i.default.createElement(a.TreeView,{name:i.default.createElement("span",{className:u()},(0,o.default)("label_error")),level:t})};var i=s(n(4519)),r=s(n(89804)),o=s(n(49465)),a=n(72322);function s(e){return e&&e.__esModule?e:{default:e}}n(84480);var u=(0,r.default)("ydb-navigation-tree-view-error")},73021:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoaderView=function(e){var t=e.level;return i.default.createElement(a.TreeView,{name:i.default.createElement("div",{className:u()},i.default.createElement(o.Spin,{size:"xs"})),level:t})};var i=s(n(4519)),r=s(n(89804)),o=n(38184),a=n(72322);function s(e){return e&&e.__esModule?e:{default:e}}n(62307);var u=(0,r.default)("ydb-navigation-tree-view-loader")},76546:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NavigationTree=function(e){var t=e.rootState,n=e.fetchPath,u=e.getActions,l=e.activePath,c=e.onActivePathUpdate,d=e.cache,p=void 0===d||d,g=e.virtualize,v=void 0!==g&&g,m=(C=i.default.useReducer(o.reducer,function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},t.path,(0,o.getNodeState)(t))),k=2,function(e){if(Array.isArray(e))return e}(C)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,r,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(i=n.next()).done)&&(o.push(i.value),!t||o.length!==t);a=!0);}catch(u){s=!0,r=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw r}}return o}}(C,k)||function(e,t){if(e){if("string"===typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}(C,k)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),_=m[0],y=m[1],b=i.default.useMemo((function(){return(0,o.selectTreeAsList)(_,t.path)}),[_]),w=function(e){return i.default.createElement(s.NavigationTreeNode,{key:e.path,state:_,path:e.path,activePath:l,fetchPath:n,dispatch:y,onActivate:c,getActions:u,cache:p,level:e.level})};var C,k;return v?i.default.createElement(r.default,{type:"uniform",length:b.length,useStaticSize:!0,itemRenderer:function(e){var t=b[e];return(0,a.isServiceNode)(t)?f(t):w(t)}}):i.default.createElement(i.default.Fragment,null,b.map((function(e){return(0,a.isServiceNode)(e)?f(e):w(e)})))};var i=d(n(4519)),r=d(n(1720)),o=n(11980),a=n(39398),s=n(65533),u=n(73021),l=n(69186),c=n(67908);function d(e){return e&&e.__esModule?e:{default:e}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}var f=function(e){var t="".concat(e.path,"|").concat(e.status);return"loading"===e.status?i.default.createElement(u.LoaderView,{key:t,level:e.level}):"error"===e.status?i.default.createElement(l.ErrorView,{key:t,level:e.level}):i.default.createElement(c.EmptyView,{key:t,level:e.level})}},65533:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NavigationTreeNode=function(e){var t=e.path,n=e.fetchPath,i=e.activePath,a=e.state,s=e.level,u=e.dispatch,l=e.children,c=e.onActivate,d=e.getActions,h=e.cache,g=a[t];r.default.useEffect((function(){g.collapsed?h||u({type:o.NavigationTreeActionType.ResetNode,payload:{path:t}}):g.loaded||g.loading||(u({type:o.NavigationTreeActionType.StartLoading,payload:{path:t}}),n(t).then((function(e){u({type:o.NavigationTreeActionType.FinishLoading,payload:{path:t,activePath:i,data:e}})})).catch((function(e){u({type:o.NavigationTreeActionType.FinishLoading,payload:{path:t,error:e}})})))}),[g.collapsed]);var v=r.default.useCallback((function(){c&&c(t)}),[t,c]),m=r.default.useCallback((function(){u({type:o.NavigationTreeActionType.ToggleCollapsed,payload:{path:t}})}),[]),_=r.default.useMemo((function(){return null===d||void 0===d?void 0:d(g.path,g.type)}),[d,g]);return r.default.createElement(f.TreeView,{name:g.name,icon:p(g.type,g.collapsed),collapsed:g.collapsed,active:g.path===i,actions:_,hasArrow:g.expandable,onClick:v,onArrowClick:m,level:s},l)};var i,r=(i=n(4519))&&i.__esModule?i:{default:i},o=n(11980),a=n(21280),s=n(1699),u=n(57957),l=n(72947),c=n(29173),d=n(3897),h=n(98898),f=n(72322);function p(e,t){switch(e){case"database":return r.default.createElement(a.DatabaseIcon,{height:14});case"directory":return t?r.default.createElement(s.FolderIcon,{height:16}):r.default.createElement(u.FolderOpenIcon,{height:16});case"index":return r.default.createElement(d.IndexIcon,{height:16});case"table":case"index_table":return r.default.createElement(l.TableIcon,{height:16});case"column_table":return r.default.createElement(h.ColumnTableIcon,{height:16});case"topic":return r.default.createElement(c.TopicIcon,{height:16});default:return null}}},49465:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(68969),r=n(88475),o=s(n(44095)),a=s(n(11516));function s(e){return e&&e.__esModule?e:{default:e}}var u="ydb-navigation-tree";i.i18n.registerKeyset(r.Lang.En,u,o.default),i.i18n.registerKeyset(r.Lang.Ru,u,a.default);var l=i.i18n.keyset(u);t.default=l},35402:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(76546);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}));var r=n(85718);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},11980:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NavigationTreeActionType=void 0,t.getDefaultNodeState=l,t.getNodeState=c,t.reducer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.ToggleCollapsed:return s(s({},e),{},u({},t.payload.path,s(s({},e[t.payload.path]),{},{collapsed:!e[t.payload.path].collapsed})));case i.StartLoading:return s(s({},e),{},u({},t.payload.path,s(s({},e[t.payload.path]),{},{loading:!0,loaded:!1,error:!1,children:[]})));case i.FinishLoading:var n=s(s({},e),{},u({},t.payload.path,s(s({},e[t.payload.path]),{},{loading:!1,loaded:Boolean(t.payload.data),error:Boolean(t.payload.error)})));if(t.payload.data){n[t.payload.path].children=t.payload.data.map((function(e){return e.name}));var r,a=function(e,t){var n="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"===typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}(t.payload.data);try{for(a.s();!(r=a.n()).done;){var l,d,h=r.value,f="".concat(t.payload.path,"/").concat(h.name),p=t.payload.activePath,g=void 0===p?"":p,v=null!==(l=null===(d=e[f])||void 0===d?void 0:d.collapsed)&&void 0!==l?l:!g.startsWith("".concat(f,"/"));n[f]=c(s(s({},h),{},{collapsed:v,path:f}))}}catch(m){a.e(m)}finally{a.f()}}return n;case i.ResetNode:return s(s({},e),{},u({},t.payload.path,s(s({},e[t.payload.path]),{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]})));default:return e}},t.selectTreeAsList=function(e,t){var n=[];return(0,r.traverseDFS)(e,t,(function(e,t){n.push(s(s({},e),{},{level:t}));var i=(0,r.getServiceNode)(e,t);i&&n.push(i)})),n};var i,r=n(39398);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(){return{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]}}function c(e){return s(s({},{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]}),{},{expandable:"database"===e.type||"directory"===e.type},e)}t.NavigationTreeActionType=i,function(e){e.ToggleCollapsed="toggle-collapsed",e.StartLoading="start-loading",e.FinishLoading="finish-loading",e.ResetNode="reset-node"}(i||(t.NavigationTreeActionType=i={}))},85718:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},39398:function(e,t){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}Object.defineProperty(t,"__esModule",{value:!0}),t.getServiceNode=function(e,t){if(e.collapsed)return;if(e.loading)return{path:e.path,status:"loading",level:t+1};if(e.error)return{path:e.path,status:"error",level:t+1};if(e.loaded&&0===e.children.length)return{path:e.path,status:"empty",level:t+1};return},t.isServiceNode=function(e){return"status"in e},t.traverseDFS=function e(t,i,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=t[i];if(!a)return;if(r(a,o,i,t),a.collapsed)return;var s,u=function(e,t){var i="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(!e)return;if("string"===typeof e)return n(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return n(e,t)}(e))||t&&e&&"number"===typeof e.length){i&&(e=i);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==i.return||i.return()}finally{if(u)throw a}}}}(a.children);try{for(u.s();!(s=u.n()).done;){var l=s.value;e(t,"".concat(i,"/").concat(l),r,o+1)}}catch(c){u.e(c)}finally{u.f()}}},72322:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TreeView=function(e){var t=e.children,n=e.name,r=e.title,s=e.icon,d=e.collapsed,h=void 0===d||d,f=e.active,p=void 0!==f&&f,g=e.onClick,v=e.onArrowClick,m=e.hasArrow,_=void 0!==m&&m,y=e.actions,b=e.level,w=i.default.useRef(null),C=i.default.createElement("div",{className:c("content")},s&&i.default.createElement("div",{className:c("icon")},s),i.default.createElement("div",{className:c("text"),title:r},n),y&&y.length>0&&i.default.createElement("div",{className:c("actions")},i.default.createElement(a.DropdownMenu,{defaultSwitcherProps:{view:"flat-secondary",size:"s",pin:"brick-brick"},items:y})));return i.default.useEffect((function(){var e=w.current,t=e&&e.querySelector(".".concat(c("item")));if(g&&t){var n=".tree-view_arrow, .".concat(c("actions"));return t.addEventListener("click",i),function(){t.removeEventListener("click",i)}}function i(e){e.composedPath().filter((function(e){return e.nodeType===Node.ELEMENT_NODE})).some((function(e){return e.matches(n)}))||g()}}),[g]),i.default.createElement("div",{ref:w,className:c({"no-arrow":!_}),style:u({},l,b)},i.default.createElement(o.default,{collapsed:h,itemClassName:c("item",{active:p}),nodeLabel:C,onClick:v},t))};var i=s(n(4519)),r=s(n(89804)),o=s(n(82824)),a=n(38184);function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n(70332);var l="--ydb-tree-view-level",c=(0,r.default)("ydb-tree-view")},99410:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(72322);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}))},68969:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.i18n=void 0;var i=n(24755),r=n(75241),o=new i.I18N;t.i18n=o,o.setLang((0,r.getConfig)().lang||r.Lang.En),(0,r.subscribeConfigure)((function(e){e.lang&&o.setLang(e.lang)}))},98898:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ColumnTableIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.01033 3.79551C2.11275 2.787 2.96447 2 4 2H5.5H7H9H10.5H12C13.1046 2 14 2.89543 14 4V5.5V12C14 13.1046 13.1046 14 12 14H10.5H9H7H5.5H4C2.89543 14 2 13.1046 2 12V5.5V4C2 3.93096 2.0035 3.86275 2.01033 3.79551ZM10.5 12.5H11.5C12.0523 12.5 12.5 12.0523 12.5 11.5V5.5H10.5L10.5 12.5ZM9 5.5L9 12.5H7L7 5.5H9ZM3.5 5.5H5.5L5.5 12.5H4.5C3.94772 12.5 3.5 12.0523 3.5 11.5V5.5Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},21280:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DatabaseIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",fill:"currentColor"},e),r.default.createElement("path",{d:"M448 80V128C448 172.2 347.7 208 224 208C100.3 208 0 172.2 0 128V80C0 35.82 100.3 0 224 0C347.7 0 448 35.82 448 80zM393.2 214.7C413.1 207.3 433.1 197.8 448 186.1V288C448 332.2 347.7 368 224 368C100.3 368 0 332.2 0 288V186.1C14.93 197.8 34.02 207.3 54.85 214.7C99.66 230.7 159.5 240 224 240C288.5 240 348.3 230.7 393.2 214.7V214.7zM54.85 374.7C99.66 390.7 159.5 400 224 400C288.5 400 348.3 390.7 393.2 374.7C413.1 367.3 433.1 357.8 448 346.1V432C448 476.2 347.7 512 224 512C100.3 512 0 476.2 0 432V346.1C14.93 357.8 34.02 367.3 54.85 374.7z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},1699:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FolderIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{d:"M13.2812 4.875H8.40625L6.78125 3.25H2.71875C2.0332 3.25 1.5 3.80859 1.5 4.46875V11.7812C1.5 12.4668 2.0332 13 2.71875 13H13.2812C13.9414 13 14.5 12.4668 14.5 11.7812V6.09375C14.5 5.43359 13.9414 4.875 13.2812 4.875Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},57957:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FolderOpenIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{d:"M15.2109 9.06445C15.4648 8.6582 15.1602 8.125 14.6777 8.125H4.54688C4.01367 8.125 3.37891 8.50586 3.125 8.9375L1.29688 12.0859C1.04297 12.4922 1.34766 13 1.83008 13H11.9609C12.4941 13 13.1289 12.6445 13.3828 12.2129L15.2109 9.06445ZM4.54688 7.3125H12.875V6.09375C12.875 5.43359 12.3164 4.875 11.6562 4.875H7.59375L5.96875 3.25H1.90625C1.2207 3.25 0.6875 3.80859 0.6875 4.46875V11.5527L2.43945 8.53125C2.87109 7.79492 3.6582 7.3125 4.54688 7.3125Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},3897:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IndexIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.24935 2.94323L8.5 9.5H12.1L11.1446 14.2772C11.0322 14.839 11.7994 15.1177 12.0738 14.6147L15.9111 7.57956C16.1765 7.09311 15.8244 6.5 15.2703 6.5H12.9L13.5325 3.33728C13.6192 2.90413 13.2879 2.5 12.8461 2.5H9.74611C9.49194 2.5 9.27821 2.69069 9.24935 2.94323ZM7.40003 10.5L8.25717 3H1.625C0.710938 3 0 3.73633 0 4.625V12.75C0 13.6641 0.710938 14.375 1.625 14.375H10.1517C10.1538 14.2803 10.1646 14.1822 10.1848 14.0811L10.901 10.5H7.40003ZM5.6875 8.6875V6.25H1.625V8.6875H5.6875ZM1.625 10.3125V12.75H5.6875V10.3125H1.625Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},72947:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TableIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.01033 3.79551C2.11275 2.787 2.96447 2 4 2H7.3H8.8H12C13.1046 2 14 2.89543 14 4V5.5V8.2002V9.7002V12C14 13.1046 13.1046 14 12 14H8.8H7.3H4C2.89543 14 2 13.1046 2 12V9.7002V8.2002V5.5V4C2 3.93096 2.0035 3.86275 2.01033 3.79551ZM8.8 12.5H11.5C12.0523 12.5 12.5 12.0523 12.5 11.5V9.7002H8.8V12.5ZM7.3 9.7002V12.5H4.5C3.94772 12.5 3.5 12.0523 3.5 11.5V9.7002H7.3ZM8.8 8.2002H12.5V5.5H8.8L8.8 8.2002ZM7.3 5.5L7.3 8.2002H3.5V5.5H7.3Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},29173:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TopicIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("rect",{x:"2",y:"2.20001",width:"9",height:"2.5",rx:"0.5"}),r.default.createElement("rect",{x:"5",y:"6.70001",width:"9",height:"2.5",rx:"0.5"}),r.default.createElement("rect",{x:"2",y:"11.2",width:"9",height:"2.5",rx:"0.5"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},65047:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(35402);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}));var r=n(99410);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var o=n(88475);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},75241:function(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.subscribeConfigure=t.getConfig=t.configure=t.Lang=void 0,t.Lang=n,function(e){e.Ru="ru",e.En="en"}(n||(t.Lang=n={}));var i=[],r={};t.configure=function(e){Object.assign(r,e),i.forEach((function(e){e(r)}))};t.subscribeConfigure=function(e){return i.push(e),function(){i=i.filter((function(t){return t!==e}))}};t.getConfig=function(){return r}},88475:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Lang",{enumerable:!0,get:function(){return i.Lang}}),Object.defineProperty(t,"configure",{enumerable:!0,get:function(){return i.configure}});var i=n(75241)},89804:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(44763),r=(0,i.setup)();function o(e){return"string"===typeof e}function a(e){var t=r(e);function n(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var i,r,a=e.shift(),s=e[0],u=e[1];return("string"!==typeof a||(o(r=s)||Array.isArray(r)&&r.every(o)))&&(u=s,s=null),i=t(a,s),u&&(i=i.mix(u)),i.toString()}return n.builder=function(){return t},n}a.setup=function(e){r=(0,i.setup)(e)},a.reset=function(){r=(0,i.setup)()},t.default=a},1720:function(e,t,n){var i,r,o;"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self&&self,r=[n(91386),n(4519)],i=function(t,n){"use strict";var i,r;function o(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function a(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!==typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var a=i?Object.getOwnPropertyDescriptor(e,r):null;a&&(a.get||a.set)?Object.defineProperty(n,r,a):n[r]=e[r]}return n.default=e,t&&t.set(e,n),n}function s(e){return e&&e.__esModule?e:{default:e}}function u(e){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function d(e,t,n){return t&&c(e.prototype,t),n&&c(e,n),e}function h(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e){var t=m();return function(){var n,i=_(e);if(t){var r=_(this).constructor;n=Reflect.construct(i,arguments,r)}else n=i.apply(this,arguments);return g(this,n)}}function g(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?v(e):t}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _(e){return _=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_(e)}function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){w(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t=s(t),n=a(n);var C={x:"clientWidth",y:"clientHeight"},k={x:"clientTop",y:"clientLeft"},S={x:"innerWidth",y:"innerHeight"},x={x:"offsetWidth",y:"offsetHeight"},L={x:"offsetLeft",y:"offsetTop"},E={x:"overflowX",y:"overflowY"},N={x:"scrollWidth",y:"scrollHeight"},D={x:"scrollLeft",y:"scrollTop"},M={x:"width",y:"height"},T=function(){},O=!!function(){if("undefined"===typeof window)return!1;var e=!1;try{document.createElement("div").addEventListener("test",T,{get passive(){return e=!0,!1}})}catch(t){}return e}()&&{passive:!0},I="ReactList failed to reach a stable state.",A=40,R=function(e,t){for(var n in t)if(e[n]!==t[n])return!1;return!0},P=function(e){for(var t=e.props.axis,n=e.getEl(),i=E[t];n=n.parentElement;)switch(window.getComputedStyle(n)[i]){case"auto":case"scroll":case"overlay":return n}return window},Z=function(e){var t=e.props.axis,n=e.scrollParent;return n===window?window[S[t]]:n[C[t]]},F=function(e,t){var n=e.length,i=e.minSize,r=e.type,o=t.from,a=t.size,s=t.itemsPerRow,u=(a=Math.max(a,i))%s;return u&&(a+=s-u),a>n&&(a=n),(u=(o="simple"!==r&&o?Math.max(Math.min(o,n-a),0):0)%s)&&(o-=u,a+=u),o===t.from&&a==t.size?t:b(b({},t),{},{from:o,size:a})};e.exports=(r=i=function(e){h(i,e);var t=p(i);function i(e){var n;return l(this,i),(n=t.call(this,e)).state=F(e,{itemsPerRow:1,from:e.initialIndex,size:0}),n.cache={},n.cachedScrollPosition=null,n.prevPrevState={},n.unstable=!1,n.updateCounter=0,n}return d(i,null,[{key:"getDerivedStateFromProps",value:function(e,t){var n=F(e,t);return n===t?null:n}}]),d(i,[{key:"componentDidMount",value:function(){this.updateFrameAndClearCache=this.updateFrameAndClearCache.bind(this),window.addEventListener("resize",this.updateFrameAndClearCache),this.updateFrame(this.scrollTo.bind(this,this.props.initialIndex))}},{key:"componentDidUpdate",value:function(e){var t=this;if(this.props.axis!==e.axis&&this.clearSizeCache(),!this.unstable){if(++this.updateCounter>A)return this.unstable=!0,console.error(I);this.updateCounterTimeoutId||(this.updateCounterTimeoutId=setTimeout((function(){t.updateCounter=0,delete t.updateCounterTimeoutId}),0)),this.updateFrame()}}},{key:"maybeSetState",value:function(e,t){if(R(this.state,e))return t();this.setState(e,t)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.updateFrameAndClearCache),this.scrollParent.removeEventListener("scroll",this.updateFrameAndClearCache,O),this.scrollParent.removeEventListener("mousewheel",T,O)}},{key:"getOffset",value:function(e){var t=this.props.axis,n=e[k[t]]||0,i=L[t];do{n+=e[i]||0}while(e=e.offsetParent);return n}},{key:"getEl",value:function(){return this.el||this.items}},{key:"getScrollPosition",value:function(){if("number"===typeof this.cachedScrollPosition)return this.cachedScrollPosition;var e=this.scrollParent,t=this.props.axis,n=D[t],i=e===window?document.body[n]||document.documentElement[n]:e[n],r=this.getScrollSize()-this.props.scrollParentViewportSizeGetter(this),o=Math.max(0,Math.min(i,r)),a=this.getEl();return this.cachedScrollPosition=this.getOffset(e)+o-this.getOffset(a),this.cachedScrollPosition}},{key:"setScroll",value:function(e){var t=this.scrollParent,n=this.props.axis;if(e+=this.getOffset(this.getEl()),t===window)return window.scrollTo(0,e);e-=this.getOffset(this.scrollParent),t[D[n]]=e}},{key:"getScrollSize",value:function(){var e=this.scrollParent,t=document,n=t.body,i=t.documentElement,r=N[this.props.axis];return e===window?Math.max(n[r],i[r]):e[r]}},{key:"hasDeterminateSize",value:function(){var e=this.props,t=e.itemSizeGetter;return"uniform"===e.type||t}},{key:"getStartAndEnd",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.threshold,t=this.getScrollPosition(),n=Math.max(0,t-e),i=t+this.props.scrollParentViewportSizeGetter(this)+e;return this.hasDeterminateSize()&&(i=Math.min(i,this.getSpaceBefore(this.props.length))),{start:n,end:i}}},{key:"getItemSizeAndItemsPerRow",value:function(){var e=this.props,t=e.axis,n=e.useStaticSize,i=this.state,r=i.itemSize,o=i.itemsPerRow;if(n&&r&&o)return{itemSize:r,itemsPerRow:o};var a=this.items.children;if(!a.length)return{};var s=a[0],u=s[x[t]],l=Math.abs(u-r);if((isNaN(l)||l>=1)&&(r=u),!r)return{};for(var c=L[t],d=s[c],h=a[o=1];h&&h[c]===d;h=a[o])++o;return{itemSize:r,itemsPerRow:o}}},{key:"clearSizeCache",value:function(){this.cachedScrollPosition=null}},{key:"updateFrameAndClearCache",value:function(e){return this.clearSizeCache(),this.updateFrame(e)}},{key:"updateFrame",value:function(e){switch(this.updateScrollParent(),"function"!=typeof e&&(e=T),this.props.type){case"simple":return this.updateSimpleFrame(e);case"variable":return this.updateVariableFrame(e);case"uniform":return this.updateUniformFrame(e)}}},{key:"updateScrollParent",value:function(){var e=this.scrollParent;this.scrollParent=this.props.scrollParentGetter(this),e!==this.scrollParent&&(e&&(e.removeEventListener("scroll",this.updateFrameAndClearCache),e.removeEventListener("mousewheel",T)),this.clearSizeCache(),this.scrollParent.addEventListener("scroll",this.updateFrameAndClearCache,O),this.scrollParent.addEventListener("mousewheel",T,O))}},{key:"updateSimpleFrame",value:function(e){var t=this.getStartAndEnd().end,n=this.items.children,i=0;if(n.length){var r=this.props.axis,o=n[0],a=n[n.length-1];i=this.getOffset(a)+a[x[r]]-this.getOffset(o)}if(i>t)return e();var s=this.props,u=s.pageSize,l=s.length,c=Math.min(this.state.size+u,l);this.maybeSetState({size:c},e)}},{key:"updateVariableFrame",value:function(e){this.props.itemSizeGetter||this.cacheSizes();for(var t=this.getStartAndEnd(),n=t.start,i=t.end,r=this.props,o=r.length,a=r.pageSize,s=0,u=0,l=0,c=o-1;u<c;){var d=this.getSizeOfItem(u);if(null==d||s+d>n)break;s+=d,++u}for(var h=o-u;l<h&&s<i;){var f=this.getSizeOfItem(u+l);if(null==f){l=Math.min(l+a,h);break}s+=f,++l}this.maybeSetState(F(this.props,{from:u,itemsPerRow:1,size:l}),e)}},{key:"updateUniformFrame",value:function(e){var t=this.getItemSizeAndItemsPerRow(),n=t.itemSize,i=t.itemsPerRow;if(!n||!i)return e();var r=this.getStartAndEnd(),o=r.start,a=r.end,s=F(this.props,{from:Math.floor(o/n)*i,size:(Math.ceil((a-o)/n)+1)*i,itemsPerRow:i}),u=s.from,l=s.size;return this.maybeSetState({itemsPerRow:i,from:u,itemSize:n,size:l},e)}},{key:"getSpaceBefore",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null!=t[e])return t[e];var n=this.state,i=n.itemSize,r=n.itemsPerRow;if(i)return t[e]=Math.floor(e/r)*i;for(var o=e;o>0&&null==t[--o];);for(var a=t[o]||0,s=o;s<e;++s){t[s]=a;var u=this.getSizeOfItem(s);if(null==u)break;a+=u}return t[e]=a}},{key:"cacheSizes",value:function(){for(var e=this.cache,t=this.state.from,n=this.items.children,i=x[this.props.axis],r=0,o=n.length;r<o;++r)e[t+r]=n[r][i]}},{key:"getSizeOfItem",value:function(e){var t=this.cache,n=this.items,i=this.props,r=i.axis,o=i.itemSizeGetter,a=i.itemSizeEstimator,s=i.type,u=this.state,l=u.from,c=u.itemSize,d=u.size;if(c)return c;if(o)return o(e);if(e in t)return t[e];if("simple"===s&&e>=l&&e<l+d&&n){var h=n.children[e-l];if(h)return h[x[r]]}return a?a(e,t):void 0}},{key:"scrollTo",value:function(e){null!=e&&this.setScroll(this.getSpaceBefore(e))}},{key:"scrollAround",value:function(e){var t=this.getScrollPosition(),n=this.getSpaceBefore(e),i=n-this.props.scrollParentViewportSizeGetter(this)+this.getSizeOfItem(e),r=Math.min(i,n),o=Math.max(i,n);return t<=r?this.setScroll(r):t>o?this.setScroll(o):void 0}},{key:"getVisibleRange",value:function(){for(var e,t,n=this.state,i=n.from,r=n.size,o=this.getStartAndEnd(0),a=o.start,s=o.end,u={},l=i;l<i+r;++l){var c=this.getSpaceBefore(l,u),d=c+this.getSizeOfItem(l);null==e&&d>a&&(e=l),null!=e&&c<s&&(t=l)}return[e,t]}},{key:"renderItems",value:function(){for(var e=this,t=this.props,n=t.itemRenderer,i=t.itemsRenderer,r=this.state,o=r.from,a=r.size,s=[],u=0;u<a;++u)s.push(n(o+u,u));return i(s,(function(t){return e.items=t}))}},{key:"render",value:function(){var e=this,t=this.props,i=t.axis,r=t.length,o=t.type,a=t.useTranslate3d,s=this.state,u=s.from,l=s.itemsPerRow,c=this.renderItems();if("simple"===o)return c;var d={position:"relative"},h={},f=Math.ceil(r/l)*l,p=this.getSpaceBefore(f,h);p&&(d[M[i]]=p,"x"===i&&(d.overflowX="hidden"));var g=this.getSpaceBefore(u,h),v="x"===i?g:0,m="y"===i?g:0,_=a?"translate3d(".concat(v,"px, ").concat(m,"px, 0)"):"translate(".concat(v,"px, ").concat(m,"px)"),y={msTransform:_,WebkitTransform:_,transform:_};return n.default.createElement("div",{style:d,ref:function(t){return e.el=t}},n.default.createElement("div",{style:y},c))}}]),i}(n.Component),w(i,"displayName","ReactList"),w(i,"propTypes",{axis:t.default.oneOf(["x","y"]),initialIndex:t.default.number,itemRenderer:t.default.func,itemSizeEstimator:t.default.func,itemSizeGetter:t.default.func,itemsRenderer:t.default.func,length:t.default.number,minSize:t.default.number,pageSize:t.default.number,scrollParentGetter:t.default.func,scrollParentViewportSizeGetter:t.default.func,threshold:t.default.number,type:t.default.oneOf(["simple","variable","uniform"]),useStaticSize:t.default.bool,useTranslate3d:t.default.bool}),w(i,"defaultProps",{axis:"y",itemRenderer:function(e,t){return n.default.createElement("div",{key:t},e)},itemsRenderer:function(e,t){return n.default.createElement("div",{ref:t},e)},length:0,minSize:1,pageSize:10,scrollParentGetter:P,scrollParentViewportSizeGetter:Z,threshold:100,type:"simple",useStaticSize:!1,useTranslate3d:!1}),r)},void 0===(o="function"===typeof i?i.apply(t,r):i)||(e.exports=o)},36817:function(e,t,n){var i={"./af.js":20707,"./am.js":28106,"./ar-dz.js":28440,"./ar-iq.js":32087,"./ar-kw.js":69545,"./ar-ly.js":28263,"./ar-ma.js":93205,"./ar-sa.js":10681,"./ar-tn.js":58187,"./ar.js":32871,"./az.js":40885,"./be.js":56654,"./bg.js":77737,"./bi.js":69666,"./bm.js":27308,"./bn-bd.js":13561,"./bn.js":95051,"./bo.js":87409,"./br.js":81149,"./bs.js":52362,"./ca.js":30242,"./cs.js":61822,"./cv.js":52289,"./cy.js":65452,"./da.js":27498,"./de-at.js":13578,"./de-ch.js":18534,"./de.js":83467,"./dv.js":69174,"./el.js":90049,"./en-au.js":52875,"./en-ca.js":42854,"./en-gb.js":73200,"./en-ie.js":69027,"./en-il.js":86886,"./en-in.js":52882,"./en-nz.js":85822,"./en-sg.js":47175,"./en-tt.js":45611,"./en.js":22898,"./eo.js":28486,"./es-do.js":48402,"./es-mx.js":70610,"./es-pr.js":38309,"./es-us.js":9842,"./es.js":59110,"./et.js":65104,"./eu.js":95386,"./fa.js":26736,"./fi.js":22614,"./fo.js":99022,"./fr-ca.js":28983,"./fr-ch.js":49347,"./fr.js":43344,"./fy.js":49007,"./ga.js":54199,"./gd.js":97279,"./gl.js":58326,"./gom-latn.js":35618,"./gu.js":72741,"./he.js":26006,"./hi.js":95160,"./hr.js":15417,"./ht.js":15123,"./hu.js":4802,"./hy-am.js":82474,"./id.js":59745,"./is.js":48139,"./it-ch.js":32436,"./it.js":46869,"./ja.js":7942,"./jv.js":24512,"./ka.js":11499,"./kk.js":17700,"./km.js":42661,"./kn.js":4439,"./ko.js":24989,"./ku.js":31316,"./ky.js":88412,"./lb.js":69139,"./lo.js":69052,"./lt.js":41244,"./lv.js":99648,"./me.js":81888,"./mi.js":87700,"./mk.js":14880,"./ml.js":71405,"./mn.js":1792,"./mr.js":62936,"./ms-my.js":4967,"./ms.js":23603,"./mt.js":76408,"./my.js":72460,"./nb.js":27680,"./ne.js":23964,"./nl-be.js":76803,"./nl.js":90792,"./nn.js":23693,"./oc-lnc.js":76136,"./pa-in.js":8565,"./pl.js":86348,"./pt-br.js":86064,"./pt.js":68239,"./rn.js":70233,"./ro.js":9656,"./ru.js":98848,"./rw.js":36411,"./sd.js":14166,"./se.js":71400,"./si.js":11545,"./sk.js":71778,"./sl.js":39552,"./sq.js":61622,"./sr-cyrl.js":64306,"./sr.js":23139,"./ss.js":40359,"./sv-fi.js":80357,"./sv.js":73306,"./sw.js":73237,"./ta.js":77067,"./te.js":15083,"./tet.js":6927,"./tg.js":24567,"./th.js":34419,"./tk.js":54216,"./tl-ph.js":91107,"./tlh.js":25875,"./tr.js":72145,"./tzl.js":92611,"./tzm-latn.js":17715,"./tzm.js":85408,"./ug-cn.js":62948,"./uk.js":42024,"./ur.js":53008,"./uz-latn.js":21413,"./uz.js":63609,"./vi.js":2606,"./x-pseudo.js":14953,"./yo.js":57091,"./zh-cn.js":6432,"./zh-hk.js":35732,"./zh-tw.js":30795,"./zh.js":73972};function r(e){var t=o(e);return n(t)}function o(e){if(!n.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}r.keys=function(){return Object.keys(i)},r.resolve=o,e.exports=r,r.id=36817},26116:function(){},43185:function(){},89052:function(e,t,n){"use strict";n.r(t),t.default={}},84480:function(e,t,n){"use strict";n.r(t),t.default={}},62307:function(e,t,n){"use strict";n.r(t),t.default={}},70332:function(e,t,n){"use strict";n.r(t),t.default={}},24960:function(){},26759:function(){},56272:function(){},24654:function(){},30907:function(e,t,n){"use strict";function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}n.d(t,{Z:function(){return i}})},83878:function(e,t,n){"use strict";function i(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return i}})},97326:function(e,t,n){"use strict";function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return i}})},15861:function(e,t,n){"use strict";function i(e,t,n,i,r,o,a){try{var s=e[o](a),u=s.value}catch(l){return void n(l)}s.done?t(u):Promise.resolve(u).then(i,r)}function r(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function s(e){i(a,r,o,s,u,"next",e)}function u(e){i(a,r,o,s,u,"throw",e)}s(void 0)}))}}n.d(t,{Z:function(){return r}})},15671:function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return i}})},5647:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var i=n(89611),r=n(78814);function o(e,t,n){return o=(0,r.Z)()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&(0,i.Z)(o,n.prototype),o},o.apply(null,arguments)}},43144:function(e,t,n){"use strict";function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function r(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}n.d(t,{Z:function(){return r}})},37762:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(40181);function r(e,t){var n="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=(0,i.Z)(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}},29388:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var i=n(61120),r=n(78814),o=n(6215);function a(e){var t=(0,r.Z)();return function(){var n,r=(0,i.Z)(e);if(t){var a=(0,i.Z)(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return(0,o.Z)(this,n)}}},4942:function(e,t,n){"use strict";function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return i}})},87462:function(e,t,n){"use strict";function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},i.apply(this,arguments)}n.d(t,{Z:function(){return i}})},11752:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(61120);function r(){return r="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=(0,i.Z)(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},r.apply(this,arguments)}},61120:function(e,t,n){"use strict";function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}n.d(t,{Z:function(){return i}})},60136:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(89611);function r(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,i.Z)(e,t)}},94578:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(89611);function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,i.Z)(e,t)}},78814:function(e,t,n){"use strict";function i(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return i}})},59199:function(e,t,n){"use strict";function i(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return i}})},25267:function(e,t,n){"use strict";function i(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return i}})},63366:function(e,t,n){"use strict";function i(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}n.d(t,{Z:function(){return i}})},6215:function(e,t,n){"use strict";function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}n.d(t,{Z:function(){return o}});var r=n(97326);function o(e,t){if(t&&("object"===i(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,r.Z)(e)}},89611:function(e,t,n){"use strict";function i(e,t){return i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},i(e,t)}n.d(t,{Z:function(){return i}})},29439:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var i=n(83878);var r=n(40181),o=n(25267);function a(e,t){return(0,i.Z)(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,r,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(i=n.next()).done)&&(o.push(i.value),!t||o.length!==t);a=!0);}catch(u){s=!0,r=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw r}}return o}}(e,t)||(0,r.Z)(e,t)||(0,o.Z)()}},93433:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var i=n(30907);var r=n(59199),o=n(40181);function a(e){return function(e){if(Array.isArray(e))return(0,i.Z)(e)}(e)||(0,r.Z)(e)||(0,o.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},40181:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(30907);function r(e,t){if(e){if("string"===typeof e)return(0,i.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,i.Z)(e,t):void 0}}},28664:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var i=n(61120),r=n(89611);var o=n(5647);function a(e){var t="function"===typeof Map?new Map:void 0;return a=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,a)}function a(){return(0,o.Z)(e,arguments,(0,i.Z)(this).constructor)}return a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),(0,r.Z)(a,e)},a(e)}},44095:function(e){"use strict";e.exports=JSON.parse('{"label_error":"Error","label_empty":"No data"}')},11516:function(e){"use strict";e.exports=JSON.parse('{"label_error":"\u041e\u0448\u0438\u0431\u043a\u0430","label_empty":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445"}')}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=e,n.amdO={},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,i){return n.f[i](e,t),t}),[]))},n.u=function(e){return"static/js/"+e+"."+{245:"6db2db52",248:"736ab237",254:"a91c0bf4",371:"93a1186d",569:"abbf95fd",698:"746436d5",758:"2eb69c4e",805:"d67f39bf",842:"bd21ee9f",939:"4c5d6b68",983:"18afe3d6",1058:"3df06184",1115:"1e053b1d",1234:"165715d4",1474:"80932b06",1522:"5645047d",1602:"86ed3169",1898:"a0e4bd43",2056:"b607e590",2081:"bd41025d",2119:"9f7a5c06",2174:"264d1736",2205:"e7f0b9ab",2291:"d410fd68",2406:"180cb966",2507:"2d9c4b5c",2799:"64ec0194",2862:"29a56bf7",2991:"0db887ba",3001:"b1a75b50",3191:"c6dbae35",3254:"78ce4d35",3258:"248867bd",3451:"774580b7",3771:"0e0bb0f3",3883:"62a3dee4",4529:"eb0068c3",4546:"6820709e",4663:"cc239299",4712:"4e557974",4731:"6929d6df",4952:"58b99bba",5012:"3afcd232",5210:"6e07cb51",5215:"2d9f2122",5444:"f86e47ff",5517:"a1034916",5646:"ced0e1ae",5695:"d81b70ca",5748:"fa2a8e02",5784:"26f46213",5885:"c5ee8345",6060:"eb821066",6135:"e49ec940",6266:"db91261c",6550:"b5e85913",6559:"41bbd3a3",6708:"5cf2a45c",6892:"3db15360",7168:"ed7798a9",7478:"0bf003df",7548:"8ef3bbc0",7661:"dd104c3c",7664:"9f9f696d",7768:"2adb4751",7953:"eb2256ce",8005:"9c209154",8206:"d2f5a912",8322:"c2b160c6",8335:"9ed734ba",8520:"616efa9f",8558:"47b3557b",8590:"b8446f1d",8794:"5ad5fb7d",9005:"053ddf1a",9011:"f3cf1dfe",9163:"de992e19",9292:"3ccb6509",9803:"e1567af5"}[e]+".chunk.js"},n.miniCssF=function(e){},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={},t="ydb-embedded-ui:";n.l=function(i,r,o,a){if(e[i])e[i].push(r);else{var s,u;if(void 0!==o)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var d=l[c];if(d.getAttribute("src")==i||d.getAttribute("data-webpack")==t+o){s=d;break}}s||(u=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,n.nc&&s.setAttribute("nonce",n.nc),s.setAttribute("data-webpack",t+o),s.src=i),e[i]=[r];var h=function(t,n){s.onerror=s.onload=null,clearTimeout(f);var r=e[i];if(delete e[i],s.parentNode&&s.parentNode.removeChild(s),r&&r.forEach((function(e){return e(n)})),t)return t(n)},f=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),u&&document.head.appendChild(s)}}}(),n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},n.p="./",function(){var e={179:0};n.f.j=function(t,i){var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)i.push(r[2]);else{var o=new Promise((function(n,i){r=e[t]=[n,i]}));i.push(r[2]=o);var a=n.p+n.u(t),s=new Error;n.l(a,(function(i){if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=i&&("load"===i.type?"missing":i.type),a=i&&i.target&&i.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,r[1](s)}}),"chunk-"+t,t)}};var t=function(t,i){var r,o,a=i[0],s=i[1],u=i[2],l=0;if(a.some((function(t){return 0!==e[t]}))){for(r in s)n.o(s,r)&&(n.m[r]=s[r]);if(u)u(n)}for(t&&t(i);l<a.length;l++)o=a[l],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0},i=self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))}(),function(){"use strict";var e=n(4519),t=n(84453),i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=e.createContext(null);var u=function(e){e()},l=function(){return u};var c={notify:function(){},get:function(){return[]}};function d(e,t){var n,i=c;function r(){a.onStateChange&&a.onStateChange()}function o(){n||(n=t?t.addNestedSub(r):e.subscribe(r),i=function(){var e=l(),t=null,n=null;return{clear:function(){t=null,n=null},notify:function(){e((function(){for(var e=t;e;)e.callback(),e=e.next}))},get:function(){for(var e=[],n=t;n;)e.push(n),n=n.next;return e},subscribe:function(e){var i=!0,r=n={callback:e,next:null,prev:n};return r.prev?r.prev.next=r:t=r,function(){i&&null!==t&&(i=!1,r.next?r.next.prev=r.prev:n=r.prev,r.prev?r.prev.next=r.next:t=r.next)}}}}())}var a={addNestedSub:function(e){return o(),i.subscribe(e)},notifyNestedSubs:function(){i.notify()},handleChangeWrapper:r,isSubscribed:function(){return Boolean(n)},trySubscribe:o,tryUnsubscribe:function(){n&&(n(),n=void 0,i.clear(),i=c)},getListeners:function(){return i}};return a}var h="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?e.useLayoutEffect:e.useEffect;var f=function(t){var n=t.store,i=t.context,r=t.children,o=(0,e.useMemo)((function(){var e=d(n);return e.onStateChange=e.notifyNestedSubs,{store:n,subscription:e}}),[n]),a=(0,e.useMemo)((function(){return n.getState()}),[n]);h((function(){var e=o.subscription;return e.trySubscribe(),a!==n.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}}),[o,a]);var u=i||s;return e.createElement(u.Provider,{value:o},r)},p=n(87462),g=n(63366),v=n(63993),m=n.n(v),_=n(78003),y=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],b=["reactReduxForwardedRef"],w=[],C=[null,null];function k(e,t){var n=e[1];return[t.payload,n+1]}function S(e,t,n){h((function(){return e.apply(void 0,t)}),n)}function x(e,t,n,i,r,o,a){e.current=i,t.current=r,n.current=!1,o.current&&(o.current=null,a())}function L(e,t,n,i,r,o,a,s,u,l){if(e){var c=!1,d=null,h=function(){if(!c){var e,n,h=t.getState();try{e=i(h,r.current)}catch(f){n=f,d=f}n||(d=null),e===o.current?a.current||u():(o.current=e,s.current=e,a.current=!0,l({type:"STORE_UPDATED",payload:{error:n}}))}};n.onStateChange=h,n.trySubscribe(),h();return function(){if(c=!0,n.tryUnsubscribe(),n.onStateChange=null,d)throw d}}}var E=function(){return[null,0]};function N(t,n){void 0===n&&(n={});var i=n,r=i.getDisplayName,o=void 0===r?function(e){return"ConnectAdvanced("+e+")"}:r,a=i.methodName,u=void 0===a?"connectAdvanced":a,l=i.renderCountProp,c=void 0===l?void 0:l,h=i.shouldHandleStateChanges,f=void 0===h||h,v=i.storeKey,N=void 0===v?"store":v,D=(i.withRef,i.forwardRef),M=void 0!==D&&D,T=i.context,O=void 0===T?s:T,I=(0,g.Z)(i,y),A=O;return function(n){var i=n.displayName||n.name||"Component",r=o(i),a=(0,p.Z)({},I,{getDisplayName:o,methodName:u,renderCountProp:c,shouldHandleStateChanges:f,storeKey:N,displayName:r,wrappedComponentName:i,WrappedComponent:n}),s=I.pure;var l=s?e.useMemo:function(e){return e()};function h(i){var r=(0,e.useMemo)((function(){var e=i.reactReduxForwardedRef,t=(0,g.Z)(i,b);return[i.context,e,t]}),[i]),o=r[0],s=r[1],u=r[2],c=(0,e.useMemo)((function(){return o&&o.Consumer&&(0,_.isContextConsumer)(e.createElement(o.Consumer,null))?o:A}),[o,A]),h=(0,e.useContext)(c),v=Boolean(i.store)&&Boolean(i.store.getState)&&Boolean(i.store.dispatch);Boolean(h)&&Boolean(h.store);var m=v?i.store:h.store,y=(0,e.useMemo)((function(){return function(e){return t(e.dispatch,a)}(m)}),[m]),N=(0,e.useMemo)((function(){if(!f)return C;var e=d(m,v?null:h.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[m,v,h]),D=N[0],M=N[1],T=(0,e.useMemo)((function(){return v?h:(0,p.Z)({},h,{subscription:D})}),[v,h,D]),O=(0,e.useReducer)(k,w,E),I=O[0][0],R=O[1];if(I&&I.error)throw I.error;var P=(0,e.useRef)(),Z=(0,e.useRef)(u),F=(0,e.useRef)(),j=(0,e.useRef)(!1),H=l((function(){return F.current&&u===Z.current?F.current:y(m.getState(),u)}),[m,I,u]);S(x,[Z,P,j,u,H,F,M]),S(L,[f,m,D,y,Z,P,j,F,M,R],[m,D,y]);var B=(0,e.useMemo)((function(){return e.createElement(n,(0,p.Z)({},H,{ref:s}))}),[s,n,H]);return(0,e.useMemo)((function(){return f?e.createElement(c.Provider,{value:T},B):B}),[c,B,T])}var v=s?e.memo(h):h;if(v.WrappedComponent=n,v.displayName=h.displayName=r,M){var y=e.forwardRef((function(t,n){return e.createElement(v,(0,p.Z)({},t,{reactReduxForwardedRef:n}))}));return y.displayName=r,y.WrappedComponent=n,m()(y,n)}return m()(v,n)}}function D(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function M(e,t){if(D(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!D(e[n[r]],t[n[r]]))return!1;return!0}function T(e){return function(t,n){var i=e(t,n);function r(){return i}return r.dependsOnOwnProps=!1,r}}function O(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function I(e,t){return function(t,n){n.displayName;var i=function(e,t){return i.dependsOnOwnProps?i.mapToProps(e,t):i.mapToProps(e)};return i.dependsOnOwnProps=!0,i.mapToProps=function(t,n){i.mapToProps=e,i.dependsOnOwnProps=O(e);var r=i(t,n);return"function"===typeof r&&(i.mapToProps=r,i.dependsOnOwnProps=O(r),r=i(t,n)),r},i}}var A=[function(e){return"function"===typeof e?I(e):void 0},function(e){return e?void 0:T((function(e){return{dispatch:e}}))},function(e){return e&&"object"===typeof e?T((function(t){return function(e,t){var n={},i=function(i){var r=e[i];"function"===typeof r&&(n[i]=function(){return t(r.apply(void 0,arguments))})};for(var r in e)i(r);return n}(e,t)})):void 0}];var R=[function(e){return"function"===typeof e?I(e):void 0},function(e){return e?void 0:T((function(){return{}}))}];function P(e,t,n){return(0,p.Z)({},n,e,t)}var Z=[function(e){return"function"===typeof e?function(e){return function(t,n){n.displayName;var i,r=n.pure,o=n.areMergedPropsEqual,a=!1;return function(t,n,s){var u=e(t,n,s);return a?r&&o(u,i)||(i=u):(a=!0,i=u),i}}}(e):void 0},function(e){return e?void 0:function(){return P}}],F=["initMapStateToProps","initMapDispatchToProps","initMergeProps"];function j(e,t,n,i){return function(r,o){return n(e(r,o),t(i,o),o)}}function H(e,t,n,i,r){var o,a,s,u,l,c=r.areStatesEqual,d=r.areOwnPropsEqual,h=r.areStatePropsEqual,f=!1;function p(r,f){var p=!d(f,a),g=!c(r,o);return o=r,a=f,p&&g?(s=e(o,a),t.dependsOnOwnProps&&(u=t(i,a)),l=n(s,u,a)):p?(e.dependsOnOwnProps&&(s=e(o,a)),t.dependsOnOwnProps&&(u=t(i,a)),l=n(s,u,a)):g?function(){var t=e(o,a),i=!h(t,s);return s=t,i&&(l=n(s,u,a)),l}():l}return function(r,c){return f?p(r,c):(s=e(o=r,a=c),u=t(i,a),l=n(s,u,a),f=!0,l)}}function B(e,t){var n=t.initMapStateToProps,i=t.initMapDispatchToProps,r=t.initMergeProps,o=(0,g.Z)(t,F),a=n(e,o),s=i(e,o),u=r(e,o);return(o.pure?H:j)(a,s,u,e,o)}var z=["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"];function W(e,t,n){for(var i=t.length-1;i>=0;i--){var r=t[i](e);if(r)return r}return function(t,i){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+i.wrappedComponentName+".")}}function V(e,t){return e===t}function Y(e){var t=void 0===e?{}:e,n=t.connectHOC,i=void 0===n?N:n,r=t.mapStateToPropsFactories,o=void 0===r?R:r,a=t.mapDispatchToPropsFactories,s=void 0===a?A:a,u=t.mergePropsFactories,l=void 0===u?Z:u,c=t.selectorFactory,d=void 0===c?B:c;return function(e,t,n,r){void 0===r&&(r={});var a=r,u=a.pure,c=void 0===u||u,h=a.areStatesEqual,f=void 0===h?V:h,v=a.areOwnPropsEqual,m=void 0===v?M:v,_=a.areStatePropsEqual,y=void 0===_?M:_,b=a.areMergedPropsEqual,w=void 0===b?M:b,C=(0,g.Z)(a,z),k=W(e,o,"mapStateToProps"),S=W(t,s,"mapDispatchToProps"),x=W(n,l,"mergeProps");return i(d,(0,p.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:k,initMapDispatchToProps:S,initMergeProps:x,pure:c,areStatesEqual:f,areOwnPropsEqual:m,areStatePropsEqual:y,areMergedPropsEqual:w},C))}}var U=Y();function K(){return(0,e.useContext)(s)}function q(t){void 0===t&&(t=s);var n=t===s?K:function(){return(0,e.useContext)(t)};return function(){return n().store}}var G=q();function $(e){void 0===e&&(e=s);var t=e===s?G:q(e);return function(){return t().dispatch}}var Q=$(),X=function(e,t){return e===t};function J(t){void 0===t&&(t=s);var n=t===s?K:function(){return(0,e.useContext)(t)};return function(t,i){void 0===i&&(i=X);var r=n(),o=function(t,n,i,r){var o,a=(0,e.useReducer)((function(e){return e+1}),0)[1],s=(0,e.useMemo)((function(){return d(i,r)}),[i,r]),u=(0,e.useRef)(),l=(0,e.useRef)(),c=(0,e.useRef)(),f=(0,e.useRef)(),p=i.getState();try{if(t!==l.current||p!==c.current||u.current){var g=t(p);o=void 0!==f.current&&n(g,f.current)?f.current:g}else o=f.current}catch(v){throw u.current&&(v.message+="\nThe error may be correlated with this previous error:\n"+u.current.stack+"\n\n"),v}return h((function(){l.current=t,c.current=p,f.current=o,u.current=void 0})),h((function(){function e(){try{var e=i.getState();if(e===c.current)return;var t=l.current(e);if(n(t,f.current))return;f.current=t,c.current=e}catch(v){u.current=v}a()}return s.onStateChange=e,s.trySubscribe(),e(),function(){return s.tryUnsubscribe()}}),[i,s]),o}(t,i,r.store,r.subscription);return(0,e.useDebugValue)(o),o}}var ee,te=J();ee=t.unstable_batchedUpdates,u=ee;var ne=n(94578);function ie(e){return"/"===e.charAt(0)}function re(e,t){for(var n=t,i=n+1,r=e.length;i<r;n+=1,i+=1)e[n]=e[i];e.pop()}var oe=function(e,t){void 0===t&&(t="");var n,i=e&&e.split("/")||[],r=t&&t.split("/")||[],o=e&&ie(e),a=t&&ie(t),s=o||a;if(e&&ie(e)?r=i:i.length&&(r.pop(),r=r.concat(i)),!r.length)return"/";if(r.length){var u=r[r.length-1];n="."===u||".."===u||""===u}else n=!1;for(var l=0,c=r.length;c>=0;c--){var d=r[c];"."===d?re(r,c):".."===d?(re(r,c),l++):l&&(re(r,c),l--)}if(!s)for(;l--;l)r.unshift("..");!s||""===r[0]||r[0]&&ie(r[0])||r.unshift("");var h=r.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function ae(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var se=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,i){return e(t,n[i])}));if("object"===typeof t||"object"===typeof n){var i=ae(t),r=ae(n);return i!==t||r!==n?e(i,r):Object.keys(Object.assign({},t,n)).every((function(i){return e(t[i],n[i])}))}return!1},ue=!0,le="Invariant failed";function ce(e,t){if(!e){if(ue)throw new Error(le);var n="function"===typeof t?t():t;throw new Error(n?le+": "+n:le)}}function de(e){return"/"===e.charAt(0)?e:"/"+e}function he(e){return"/"===e.charAt(0)?e.substr(1):e}function fe(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function pe(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function ge(e){var t=e.pathname,n=e.search,i=e.hash,r=t||"/";return n&&"?"!==n&&(r+="?"===n.charAt(0)?n:"?"+n),i&&"#"!==i&&(r+="#"===i.charAt(0)?i:"#"+i),r}function ve(e,t,n,i){var r;"string"===typeof e?(r=function(e){var t=e||"/",n="",i="",r=t.indexOf("#");-1!==r&&(i=t.substr(r),t=t.substr(0,r));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===i?"":i}}(e),r.state=t):(void 0===(r=(0,p.Z)({},e)).pathname&&(r.pathname=""),r.search?"?"!==r.search.charAt(0)&&(r.search="?"+r.search):r.search="",r.hash?"#"!==r.hash.charAt(0)&&(r.hash="#"+r.hash):r.hash="",void 0!==t&&void 0===r.state&&(r.state=t));try{r.pathname=decodeURI(r.pathname)}catch(o){throw o instanceof URIError?new URIError('Pathname "'+r.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):o}return n&&(r.key=n),i?r.pathname?"/"!==r.pathname.charAt(0)&&(r.pathname=oe(r.pathname,i.pathname)):r.pathname=i.pathname:r.pathname||(r.pathname="/"),r}function me(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,i,r){if(null!=e){var o="function"===typeof e?e(t,n):e;"string"===typeof o?"function"===typeof i?i(o,r):r(!0):r(!1!==o)}else r(!0)},appendListener:function(e){var n=!0;function i(){n&&e.apply(void 0,arguments)}return t.push(i),function(){n=!1,t=t.filter((function(e){return e!==i}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];t.forEach((function(e){return e.apply(void 0,n)}))}}}var _e=!("undefined"===typeof window||!window.document||!window.document.createElement);function ye(e,t){t(window.confirm(e))}var be="popstate",we="hashchange";function Ce(){try{return window.history.state||{}}catch(e){return{}}}function ke(e){void 0===e&&(e={}),_e||ce(!1);var t=window.history,n=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history}(),i=!(-1===window.navigator.userAgent.indexOf("Trident")),r=e,o=r.forceRefresh,a=void 0!==o&&o,s=r.getUserConfirmation,u=void 0===s?ye:s,l=r.keyLength,c=void 0===l?6:l,d=e.basename?pe(de(e.basename)):"";function h(e){var t=e||{},n=t.key,i=t.state,r=window.location,o=r.pathname+r.search+r.hash;return d&&(o=fe(o,d)),ve(o,i,n)}function f(){return Math.random().toString(36).substr(2,c)}var g=me();function v(e){(0,p.Z)(N,e),N.length=t.length,g.notifyListeners(N.location,N.action)}function m(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||b(h(e.state))}function _(){b(h(Ce()))}var y=!1;function b(e){if(y)y=!1,v();else{g.confirmTransitionTo(e,"POP",u,(function(t){t?v({action:"POP",location:e}):function(e){var t=N.location,n=C.indexOf(t.key);-1===n&&(n=0);var i=C.indexOf(e.key);-1===i&&(i=0);var r=n-i;r&&(y=!0,S(r))}(e)}))}}var w=h(Ce()),C=[w.key];function k(e){return d+ge(e)}function S(e){t.go(e)}var x=0;function L(e){1===(x+=e)&&1===e?(window.addEventListener(be,m),i&&window.addEventListener(we,_)):0===x&&(window.removeEventListener(be,m),i&&window.removeEventListener(we,_))}var E=!1;var N={length:t.length,action:"POP",location:w,createHref:k,push:function(e,i){var r="PUSH",o=ve(e,i,f(),N.location);g.confirmTransitionTo(o,r,u,(function(e){if(e){var i=k(o),s=o.key,u=o.state;if(n)if(t.pushState({key:s,state:u},null,i),a)window.location.href=i;else{var l=C.indexOf(N.location.key),c=C.slice(0,l+1);c.push(o.key),C=c,v({action:r,location:o})}else window.location.href=i}}))},replace:function(e,i){var r="REPLACE",o=ve(e,i,f(),N.location);g.confirmTransitionTo(o,r,u,(function(e){if(e){var i=k(o),s=o.key,u=o.state;if(n)if(t.replaceState({key:s,state:u},null,i),a)window.location.replace(i);else{var l=C.indexOf(N.location.key);-1!==l&&(C[l]=o.key),v({action:r,location:o})}else window.location.replace(i)}}))},go:S,goBack:function(){S(-1)},goForward:function(){S(1)},block:function(e){void 0===e&&(e=!1);var t=g.setPrompt(e);return E||(L(1),E=!0),function(){return E&&(E=!1,L(-1)),t()}},listen:function(e){var t=g.appendListener(e);return L(1),function(){L(-1),t()}}};return N}var Se="hashchange",xe={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+he(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:he,decodePath:de},slash:{encodePath:de,decodePath:de}};function Le(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function Ee(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function Ne(e){window.location.replace(Le(window.location.href)+"#"+e)}function De(e){void 0===e&&{},_e||ce(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),i=n.getUserConfirmation,r=void 0===i?ye:i,o=n.hashType,a=void 0===o?"slash":o,s=e.basename?pe(de(e.basename)):"",u=xe[a],l=u.encodePath,c=u.decodePath;function d(){var e=c(Ee());return s&&fe(e,s),ve(e)}var h=me();function f(e){(0,p.Z)(L,e),L.length=t.length,h.notifyListeners(L.location,L.action)}var g=!1,v=null;function m(){var e=Ee(),t=l(e);if(e!==t)Ne(t);else{var n=d(),i=L.location;if(!g&&function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash}(i,n))return;if(v===ge(n))return;null,function(e){if(g)!1,f();else{var t="POP";h.confirmTransitionTo(e,t,r,(function(n){n?f({action:t,location:e}):function(e){var t=L.location,n=w.lastIndexOf(ge(t));-1===n&&0;var i=w.lastIndexOf(ge(e));-1===i&&0;var r=n-i;r&&(!0,C(r))}(e)}))}}(n)}}var _=Ee(),y=l(_);_!==y&&Ne(y);var b=d(),w=[ge(b)];function C(e){t.go(e)}var k=0;function S(e){1===(k+=e)&&1===e?window.addEventListener(Se,m):0===k&&window.removeEventListener(Se,m)}var x=!1;var L={length:t.length,action:"POP",location:b,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&Le(window.location.href),n+"#"+l(s+ge(e))},push:function(e,t){var n="PUSH",i=ve(e,void 0,void 0,L.location);h.confirmTransitionTo(i,n,r,(function(e){if(e){var t=ge(i),r=l(s+t);if(Ee()!==r){t,function(e){window.location.hash=e}(r);var o=w.lastIndexOf(ge(L.location)),a=w.slice(0,o+1);a.push(t),a,f({action:n,location:i})}else f()}}))},replace:function(e,t){var n="REPLACE",i=ve(e,void 0,void 0,L.location);h.confirmTransitionTo(i,n,r,(function(e){if(e){var t=ge(i),r=l(s+t);Ee()!==r&&(t,Ne(r));var o=w.indexOf(ge(L.location));-1!==o&&(w[o]=t),f({action:n,location:i})}}))},go:C,goBack:function(){C(-1)},goForward:function(){C(1)},block:function(e){void 0===e&&!1;var t=h.setPrompt(e);return x||(S(1),!0),function(){return x&&(!1,S(-1)),t()}},listen:function(e){var t=h.appendListener(e);return S(1),function(){S(-1),t()}}};return L}function Me(e,t,n){return Math.min(Math.max(e,t),n)}var Te=n(91386),Oe=n.n(Te),Ie=1073741823,Ae="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:{};var Re=e.createContext||function(t,n){var i,r,o="__create-react-context-"+function(){var e="__global_unique_id__";return Ae[e]=(Ae[e]||0)+1}()+"__",a=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).emitter=function(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,i){e=n,t.forEach((function(t){return t(e,i)}))}}}(t.props.value),t}(0,ne.Z)(t,e);var i=t.prototype;return i.getChildContext=function(){var e;return(e={})[o]=this.emitter,e},i.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var t,i=this.props.value,r=e.value;((o=i)===(a=r)?0!==o||1/o===1/a:o!==o&&a!==a)?t=0:(t="function"===typeof n?n(i,r):Ie,0!==(t|=0)&&this.emitter.set(e.value,t))}var o,a},i.render=function(){return this.props.children},t}(e.Component);a.childContextTypes=((i={})[o]=Oe().object.isRequired,i);var s=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).state={value:t.getValue()},t.onUpdate=function(e,n){0!==((0|t.observedBits)&n)&&t.setState({value:t.getValue()})},t}(0,ne.Z)(n,e);var i=n.prototype;return i.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=void 0===t||null===t?Ie:t},i.componentDidMount=function(){this.context[o]&&this.context[o].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=void 0===e||null===e?Ie:e},i.componentWillUnmount=function(){this.context[o]&&this.context[o].off(this.onUpdate)},i.getValue=function(){return this.context[o]?this.context[o].get():t},i.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(e.Component);return s.contextTypes=((r={})[o]=Oe().object,r),{Provider:a,Consumer:s}},Pe=Re,Ze=n(39801),Fe=n.n(Ze),je=(n(29685),function(e){var t=Pe();return t.displayName=e,t}),He=je("Router-History"),Be=je("Router"),ze=function(t){function n(e){var n;return(n=t.call(this,e)||this).state={location:e.history.location},n._isMounted=!1,n._pendingLocation=null,e.staticContext||(n.unlisten=e.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}(0,ne.Z)(n,t),n.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var i=n.prototype;return i.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},i.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},i.render=function(){return e.createElement(Be.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},e.createElement(He.Provider,{children:this.props.children||null,value:this.props.history}))},n}(e.Component);e.Component;var We=function(e){function t(){return e.apply(this,arguments)||this}(0,ne.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(e.Component);var Ve={},Ye=1e4,Ue=0;function Ke(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(Ve[e])return Ve[e];var t=Fe().compile(e);return Ue<Ye&&(Ve[e]=t,Ue++),t}(e)(t,{pretty:!0})}function qe(t){var n=t.computedMatch,i=t.to,r=t.push,o=void 0!==r&&r;return e.createElement(Be.Consumer,null,(function(t){t||ce(!1);var r=t.history,a=t.staticContext,s=o?r.push:r.replace,u=ve(n?"string"===typeof i?Ke(i,n.params):(0,p.Z)({},i,{pathname:Ke(i.pathname,n.params)}):i);return a?(s(u),null):e.createElement(We,{onMount:function(){s(u)},onUpdate:function(e,t){var n=ve(t.to);(function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&se(e.state,t.state)})(n,(0,p.Z)({},u,{key:n.key}))||s(u)},to:i})}))}var Ge={},$e=1e4,Qe=0;function Xe(e,t){void 0===t&&(t={}),("string"===typeof t||Array.isArray(t))&&(t={path:t});var n=t,i=n.path,r=n.exact,o=void 0!==r&&r,a=n.strict,s=void 0!==a&&a,u=n.sensitive,l=void 0!==u&&u;return[].concat(i).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var i=function(e,t){var n=""+t.end+t.strict+t.sensitive,i=Ge[n]||(Ge[n]={});if(i[e])return i[e];var r=[],o={regexp:Fe()(e,r,t),keys:r};return Qe<$e&&(i[e]=o,Qe++),o}(n,{end:o,strict:s,sensitive:l}),r=i.regexp,a=i.keys,u=r.exec(e);if(!u)return null;var c=u[0],d=u.slice(1),h=e===c;return o&&!h?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:h,params:a.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var Je=function(t){function n(){return t.apply(this,arguments)||this}return(0,ne.Z)(n,t),n.prototype.render=function(){var t=this;return e.createElement(Be.Consumer,null,(function(n){n||ce(!1);var i=t.props.location||n.location,r=t.props.computedMatch?t.props.computedMatch:t.props.path?Xe(i.pathname,t.props):n.match,o=(0,p.Z)({},n,{location:i,match:r}),a=t.props,s=a.children,u=a.component,l=a.render;return Array.isArray(s)&&function(t){return 0===e.Children.count(t)}(s)&&(s=null),e.createElement(Be.Provider,{value:o},o.match?s?"function"===typeof s?s(o):s:u?e.createElement(u,o):l?l(o):null:"function"===typeof s?s(o):null)}))},n}(e.Component);function et(e){return"/"===e.charAt(0)?e:"/"+e}function tt(e,t){if(!e)return t;var n=et(e);return 0!==t.pathname.indexOf(n)?t:(0,p.Z)({},t,{pathname:t.pathname.substr(n.length)})}function nt(e){return"string"===typeof e?e:ge(e)}function it(e){return function(){ce(!1)}}function rt(){}e.Component;var ot=function(t){function n(){return t.apply(this,arguments)||this}return(0,ne.Z)(n,t),n.prototype.render=function(){var t=this;return e.createElement(Be.Consumer,null,(function(n){n||ce(!1);var i,r,o=t.props.location||n.location;return e.Children.forEach(t.props.children,(function(t){if(null==r&&e.isValidElement(t)){i=t;var a=t.props.path||t.props.from;r=a?Xe(o.pathname,(0,p.Z)({},t.props,{path:a})):n.match}})),r?e.cloneElement(i,{location:o,computedMatch:r}):null}))},n}(e.Component);var at=e.useContext;function st(){return at(He)}function ut(){return at(Be).location}function lt(e){var t=ut(),n=at(Be).match;return e?Xe(t.pathname,e):n}var ct=n(78243),dt=n(46854),ht=n(4942);function ft(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ft(Object(n),!0).forEach((function(t){(0,ht.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ft(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var gt=n(22637),vt=n.n(gt),mt=n(2137),_t=n(20061),yt=n.n(_t),bt=n(83077),wt=function(){return Math.random().toString(36).substring(7).split("").join(".")},Ct={INIT:"@@redux/INIT"+wt(),REPLACE:"@@redux/REPLACE"+wt(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+wt()}};function kt(e){if("object"!==typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function St(e,t,n){var i;if("function"===typeof t&&"function"===typeof n||"function"===typeof n&&"function"===typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function");if("function"===typeof t&&"undefined"===typeof n&&(n=t,t=void 0),"undefined"!==typeof n){if("function"!==typeof n)throw new Error("Expected the enhancer to be a function.");return n(St)(e,t)}if("function"!==typeof e)throw new Error("Expected the reducer to be a function.");var r=e,o=t,a=[],s=a,u=!1;function l(){s===a&&(s=a.slice())}function c(){if(u)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return o}function d(e){if("function"!==typeof e)throw new Error("Expected the listener to be a function.");if(u)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return l(),s.push(e),function(){if(t){if(u)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,l();var n=s.indexOf(e);s.splice(n,1)}}}function h(e){if(!kt(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"===typeof e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw new Error("Reducers may not dispatch actions.");try{u=!0,o=r(o,e)}finally{u=!1}for(var t=a=s,n=0;n<t.length;n++){(0,t[n])()}return e}return h({type:Ct.INIT}),(i={dispatch:h,subscribe:d,getState:c,replaceReducer:function(e){if("function"!==typeof e)throw new Error("Expected the nextReducer to be a function.");r=e,h({type:Ct.REPLACE})}})[bt.Z]=function(){var e,t=d;return(e={subscribe:function(e){if("object"!==typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(c())}return n(),{unsubscribe:t(n)}}})[bt.Z]=function(){return this},e},i}function xt(e,t){var n=t&&t.type;return"Given "+(n&&'action "'+String(n)+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function Lt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Et(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function Nt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),i=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},r={getState:n.getState,dispatch:function(){return i.apply(void 0,arguments)}},o=t.map((function(e){return e(r)}));return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),i.forEach((function(t){Lt(e,t,n[t])}))}return e}({},n,{dispatch:i=Et.apply(void 0,o)(n.dispatch)})}}}function Dt(e){return function(t){var n=t.dispatch,i=t.getState;return function(t){return function(r){return"function"===typeof r?r(n,i,e):t(r)}}}}var Mt=Dt();Mt.withExtraArgument=Dt;var Tt=Mt,Ot=n(22458),It=n(33119),At=function(e,t){if(t){if(window.custom_backend)return{basename:"/",backend:It.parse(e,!0).query.backend||window.custom_backend};var n=window.location.pathname.match(/.*(?=\/monitoring)/)||[],i=Boolean(n.length)&&n[0];return{basename:[i,"monitoring"].filter(Boolean).join("/"),backend:i||""}}var r=It.parse(e,!0).query;return{basename:"/",backend:r.backend,clusterName:r.clusterName}};function Rt(e,t){if(null==e)return{};var n,i,r=(0,g.Z)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Pt=n(32048),Zt=n.n(Pt),Ft=n(77847),jt=n(85292),Ht=n(34737),Bt=n(8606),zt=n(93433);function Wt(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}var Vt=n(39779),Yt=n.n(Vt),Ut=1,Kt=-1,qt="fixed",Gt="moving",$t="__index__";var Qt=function(){var e=document.createElement("a").style;return e.cssText="position:sticky; position:-webkit-sticky;",-1!==e.position.indexOf("sticky")}(),Xt={getSrcElement:function(){return null},onHeightChange:function(){}},Jt=function(){function e(t){var n=this;(0,i.Z)(this,e),this.prevHeight=0,this.params=Xt,this.checkAndUpdateHeight=function(){n.node?requestAnimationFrame((function(){var e=n.node;e?n.updateHeight(e.offsetHeight):n.updateHeight(0)})):n.updateHeight(0)},this.params=Object.assign({},t)}return(0,r.Z)(e,[{key:"destroy",value:function(){this.updateHeight(0),this.params=Xt}},{key:"node",get:function(){return this.params.getSrcElement()}},{key:"updateHeight",value:function(e){this.prevHeight!==e&&(this.prevHeight=e,this.params.onHeightChange(e))}}]),e}();function en(e,t){var n=e.name,i=e.defaultOrder,r=t.sortOrder,o=void 0===r?{}:r,a=t.sortColumns,s=void 0===a?[]:a,u=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},c=l.defaultOrder,d=l.disableSortReset,h=i||c,f={sortOrder:{},sortColumns:[]};if(!n)return u?{sortOrder:o,sortColumns:s}:f;var p=s,g=o[n],v=h;if(g&&(v=g===h||d?g===Ut?Kt:Ut:void 0),!u)return v?{sortOrder:(0,ht.Z)({},n,v),sortColumns:[n]}:f;var m=o,_=n,y=(m[_],Wt(m,["symbol"===typeof _?_:_+""]));return v?(y[n]=v,new Set(s).has(n)||(p=[].concat((0,zt.Z)(s),[n]))):p=s.filter((function(e){return e!==n})),{sortOrder:y,sortColumns:p}}function tn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t,r=e.sortAscending;return"function"===typeof r?function(e,t){return i*r(e,t)}:function(t,r){var o=e._getSortValue(t.row),a=e._getSortValue(r.row);return null==o&&null!=a?n.nullBeforeNumbers?-i:1:null==a&&null!=o?n.nullBeforeNumbers?i:-1:o<a?Number(-i):o>a?Number(i):0}}function nn(e,t,n,i){var r=n.sortOrder,o=n.sortColumns,a={};t.forEach((function(e){r[e.name]?a[e.name]=tn(e,r[e.name],i):e.group&&e.autogroup&&(a[e.name]=tn(e,Ut,i))}));var s=t.filter((function(e){return e.group})),u=s.length>0,l=[].concat((0,zt.Z)(s.map((function(e){return a[e.name]})).filter(Boolean)),(0,zt.Z)(o.map((function(e){return a[e]})).filter(Boolean))),c=e.map((function(e,t){return u?{row:e,index:t,span:{}}:{row:e,index:t}}));if(l.length&&!i.externalSort&&c.sort((function(e,t){var n=0;return l.some((function(i){return n=i(e,t),Boolean(n)})),n||e.index-t.index})),c.length>1&&u){var d=[],h=[];c.forEach((function(e){s.every((function(t,n){var i=t._getValue(e.row);return d[n]&&i===h[n]?(d[n].span[t.name]+=1,e.span[t.name]=0,!0):(s.slice(n).forEach((function(t,i){d[n+i]=e,h[n+i]=t._getValue(e.row),e.span[t.name]=1})),!1)}))}))}return c}function rn(e,t){return(Array.isArray(e)?e:[e]).reduce((function(e,n){return en({name:n.columnId,defaultOrder:n.order},e,!0,t)}),{sortOrder:{},sortColumns:[]})}var on=(0,ct.Z)("data-table"),an=e.createElement("svg",{className:on("icon"),viewBox:"0 0 10 6",width:"10",height:"6"},e.createElement("path",{fill:"currentColor",d:"M0 5h10l-5 -5z"})),sn=e.createElement("svg",{className:on("icon"),viewBox:"0 0 10 6",width:"10",height:"6"},e.createElement("path",{fill:"currentColor",d:"M0 1h10l-5 5z"})),un={ICON_ASC:an,ICON_DESC:sn};var ln=function(t){var n=t.sortOrder,i=t.sortIndex,r=t.sortable,o=t.defaultOrder;return r?e.createElement("span",{className:on("sort-icon",{shadow:!n}),"data-index":i},function(e){switch(e){case Ut:return un.ICON_ASC;case Kt:return un.ICON_DESC;default:return!1}}(n||o)):null};ln.propTypes={sortOrder:Oe().oneOf([Ut,Kt]),sortable:Oe().bool,defaultOrder:Oe().oneOf([Ut,Kt])};var cn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).onClick=function(t){if(e.props.onClick){var n=e.props,i=n.row,r=n.index;e.props.onClick(i,r,t)}},e}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.className,i=t.columns,r=t.row,o=t.index,a=t.odd,s=t.footer,u=t.span,l=t.headerData;return e.createElement("tr",{className:on("row",{odd:a,footer:s,"header-data":l},n),onClick:this.onClick},i.map((function(t,n){var i;if(u){if(0===u[t.name])return null;i=u[t.name]}var a=t._getValue(r);return e.createElement("td",{key:n,className:t._className,title:t._getTitle(r),style:t.customStyle({row:r,index:o,name:t.name,header:!1,footer:s,headerData:l}),rowSpan:i,onClick:t._getOnClick({row:r,index:o,footer:s,headerData:l})},t._renderValue({value:a,row:r,index:o,footer:s,headerData:l}))})))}}]),s}(e.PureComponent);cn.defaultProps={footer:!1};var dn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments))._dataRowsRef=null,t.renderedColumns=[],t.renderHeadCell=function(n){var i=n.column,r=n.rowSpan,o=n.colSpan,a=i.sortable,s=void 0!==a&&a,u=i.header,l=void 0===u?i.name:u,c=i.className,d=i.index,h=i.columnIndex,f=i.align,p=i.headerTitle,g=void 0===p?"string"===typeof l&&l||void 0:p;return e.createElement("th",{ref:i.dataColumn?t._getColumnRef(h):null,className:on("th",{sortable:s,align:f},c),key:i.name,title:g,"data-index":d,colSpan:o,rowSpan:r,style:i.customStyle&&i.customStyle({header:!0,name:i.name}),onClick:t._getOnSortClick(i)},e.createElement("div",{className:on("head-cell")},l,e.createElement(ln,Object.assign({},i))))},t.renderHeadLevel=function(n,i){return e.createElement("tr",{key:i,className:on("head-row")},n.map(t.renderHeadCell))},t.dataRowsRef=function(e){var n;t._dataRowsRef=e,e&&(null===(n=t.dataRowsHeightObserver)||void 0===n||n.checkAndUpdateHeight())},t._getColumnRef=function(e){return function(n){t.renderedColumns[e]=n}},t}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){var e=this;this._calculateColumnsWidth(),"function"===typeof this.props.onDataRowsHeightChange&&(this.dataRowsHeightObserver=new Jt({getSrcElement:function(){return e._dataRowsRef},onHeightChange:function(t){"function"===typeof e.props.onDataRowsHeightChange&&e.props.onDataRowsHeightChange(t)}}))}},{key:"componentDidUpdate",value:function(){var e;this._calculateColumnsWidth(),null===(e=this.dataRowsHeightObserver)||void 0===e||e.checkAndUpdateHeight()}},{key:"componentWillUnmount",value:function(){var e;null===(e=this.dataRowsHeightObserver)||void 0===e||e.destroy()}},{key:"render",value:function(){var t=this.props,n=t.headColumns,i=t.dataColumns,r=t.renderedDataRows;return this.renderedColumns.length=i.length,e.createElement(e.Fragment,null,e.createElement("thead",{className:on("head")},n.map(this.renderHeadLevel)),void 0===r?null:e.createElement("tbody",{ref:this.dataRowsRef},r))}},{key:"_calculateColumnsWidth",value:function(){var e=this,t=this.props.onColumnsUpdated;"function"===typeof t&&requestAnimationFrame((function(){var n=e.renderedColumns.map((function(e){return e&&e.getBoundingClientRect().width}));t(n)}))}},{key:"onSort",value:function(e,t){var n=this.props.onSort;"function"===typeof n&&n(e,t)}},{key:"_getOnSortClick",value:function(e){var t=this,n=e.sortable,i=void 0!==n&&n;return e.name===$t?function(){t.onSort()}:i?function(n){t.onSort(e,n.ctrlKey||n.metaKey)}:void 0}}]),s}(e.Component);dn.propTypes={headColumns:Oe().array.isRequired,dataColumns:Oe().array.isRequired,displayIndices:Oe().bool.isRequired,onSort:Oe().func,onColumnsUpdated:Oe().func,renderedDataRows:Oe().node};var hn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).state={style:{top:s.defaultProps.top}},e.onDataRowsHeightChange=function(t){e.props.onDataRowsHeightChange(t+1)},e._nodeRef=function(t){e._node=t},e}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.mode,i=(t.top,Wt(t,["mode","top"]));if(n===Gt){var r=this.state.style;return e.createElement("div",{className:on("sticky",{moving:!0,head:!0}),style:r},this.renderHeader(i))}var o=this.state,a=o.widths,s=void 0===a?[]:a,u=o.right,l=void 0===u?0:u,c=s.reduce((function(e,t){return e+t}),0);return e.createElement("div",{ref:this._nodeRef,className:on("sticky",{fixed:!0,head:!0}),style:{right:l,display:c?void 0:"none"}},this.renderHeader(i))}},{key:"setScrollLeft",value:function(e){var t=this;requestAnimationFrame((function(){t._node&&(t._node.scrollLeft=e)}))}},{key:"setRightPosition",value:function(e){this.state.right===e||this.props.top||this.props.mode===Gt||this.setState({right:e})}},{key:"renderHeader",value:function(t){var n=this.state.widths,i=void 0===n?[]:n,r=i.reduce((function(e,t){return e+t}),0);return e.createElement("div",{className:on("table-wrapper",{sticky:!0})},e.createElement("table",{className:on("table",{sticky:!0}),style:{width:r||"auto"}},e.createElement("colgroup",null,i.map((function(t,n){return e.createElement("col",{key:n,style:{width:t}})}))),e.createElement(dn,Object.assign({},t,{onDataRowsHeightChange:this.onDataRowsHeightChange}))))}},{key:"updateWidths",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=this.state.widths,n=void 0===t?[]:t;e.some((function(e,t){return e!==n[t]}))&&this.setState({widths:e})}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n;return e.top!==(null===(n=t.style)||void 0===n?void 0:n.top)?void 0===e.top?null:{style:{top:e.top}}:null}}]),s}(e.Component);hn.propTypes={mode:Oe().oneOf([qt,Gt]),top:Oe().number,renderedDataRows:Oe().node},hn.defaultProps={top:0};var fn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).state={style:{bottom:0}},e._nodeFixed=null,e._nodeMoving=null,e._nodeFixedRef=function(t){e._nodeFixed=t},e._nodeMovingRef=function(t){var n;e._nodeMoving=t,t&&(null===(n=e.heightObserver)||void 0===n||n.checkAndUpdateHeight())},e}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){var e=this;this.heightObserver=new Jt({getSrcElement:function(){return e._nodeMoving},onHeightChange:this.props.onMovingHeightChange})}},{key:"componentDidUpdate",value:function(){var e;null===(e=this.heightObserver)||void 0===e||e.checkAndUpdateHeight()}},{key:"componentWillUnmount",value:function(){var e;null===(e=this.heightObserver)||void 0===e||e.destroy()}},{key:"render",value:function(){if(!this.props.renderedRows)return null;var t=this.props,n=t.mode,i=t.renderedRows;if(n===Gt){var r=this.state.style;return e.createElement("div",{ref:this._nodeMovingRef,className:on("sticky",{footer:!0,moving:!0}),style:r},this.renderFooter(i))}var o=this.state,a=o.widths,s=void 0===a?[]:a,u=o.right,l=void 0===u?0:u,c=s.reduce((function(e,t){return e+t}),0);return e.createElement("div",{ref:this._nodeFixedRef,className:on("sticky",{footer:!0,fixed:!0}),style:{right:l,display:c?void 0:"none"}},this.renderFooter(i))}},{key:"setScrollLeft",value:function(e){var t=this;requestAnimationFrame((function(){t._nodeFixed&&(t._nodeFixed.scrollLeft=e)}))}},{key:"setRightPosition",value:function(e){this.state.right!==e&&!this.props.bottom&&this._nodeFixed&&this.setState({right:e})}},{key:"renderFooter",value:function(t){var n=this.state.widths,i=void 0===n?[]:n,r=i.reduce((function(e,t){return e+t}),0);return e.createElement("div",{className:on("table-wrapper",{sticky:!0})},e.createElement("table",{className:on("table",{sticky:!0}),style:{width:r||"auto"}},e.createElement("colgroup",null,i.map((function(t,n){return e.createElement("col",{key:n,style:{width:t}})}))),e.createElement("tbody",null,t)))}},{key:"updateWidths",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=this.state.widths,n=void 0===t?[]:t;e.some((function(e,t){return e!==n[t]}))&&this.setState({widths:e})}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n;return e.bottom!==(null===(n=t.style)||void 0===n?void 0:n.bottom)?void 0===e.bottom?null:{style:{bottom:e.bottom}}:null}}]),s}(e.PureComponent);fn.defaultProps={bottom:0};var pn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).state={},t._refBody=function(e){t._body=e},t._refBox=function(e){t._box=e},t._refHead=function(e){t._head=e},t._refStickyHead=function(e){t._stickyHead=e},t._refStickyFooter=function(e){t._stickyFooter=e},t._onBoxScroll=function(){t._updateBoxConstraints()},t._onColumnsUpdated=function(e){t._stickyHead&&t._stickyHead.updateWidths(e),t._stickyFooter&&t._stickyFooter.updateWidths(e)},t.onMovingHeaderDataRowsHeightChange=function(e){var n;-e!==(null===(n=t.state.movingHeaderStyle)||void 0===n?void 0:n.marginTop)&&t.setState({movingHeaderStyle:{marginTop:-e}})},t.onMovingFooterHeightChange=function(e){var n;-e!==(null===(n=t.state.movingFooterStyle)||void 0===n?void 0:n.marginBottom)&&t.setState({movingFooterStyle:{marginBottom:-e}})},t.renderRow=function(e){var n=t.props,i=n.data,r=n.onRowClick,o=i[e],a=o.row,s=o.index,u=o.span;return t.renderRowImpl(a,s,{onRowClick:r,odd:e%2===0,span:u})},t.renderFooterRow=function(e,n){return t.renderRowImpl(e,n,{footer:!0})},t.renderHeaderRow=function(e,n){return t.renderRowImpl(e,n,{headerData:!0})},t.renderRowImpl=function(n,i){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r.onRowClick,a=r.odd,s=r.span,u=r.footer,l=r.headerData,c=t.props,d=c.columns.dataColumns,h=c.rowClassName,f=c.rowKey,p="function"===typeof h?h(n,i,u,l):"";return e.createElement(cn,{key:f(n,i),className:p,columns:d,row:n,index:i,span:s,odd:a,onClick:o,footer:u,headerData:l})},t.renderTable=function(n,i){var r=t.props,o=r.footerData,a=r.columns.dataColumns,s=r.settings.stickyHead,u=t.state,l=u.movingHeaderStyle,c=u.movingFooterStyle,d=t.getStickyFooterMode();return e.createElement("div",{className:on("table-wrapper"),style:d===Gt?c:void 0},e.createElement("table",{className:on("table"),style:s===Gt?l:void 0},e.createElement("colgroup",null,a.map((function(t,n){var i=t.width;return e.createElement("col",{key:n,width:i})}))),t.renderHead(),e.createElement("tbody",{ref:i},n.length?n:t._getEmptyRow()),o&&e.createElement("tfoot",{className:on("foot",{"has-sticky-footer":d})},o.map(t.renderFooterRow))))},t}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){var e=this,t=this.props.settings,n=t.stickyHead,i=t.syncHeadOnResize;this._updateBoxConstraints(),n&&i&&!this._onWindowResize&&(this._onWindowResize=function(){e.syncHeadWidths()},window.addEventListener("resize",this._onWindowResize))}},{key:"componentDidUpdate",value:function(){this._updateBoxConstraints()}},{key:"componentWillUnmount",value:function(){this._onWindowResize&&(window.removeEventListener("resize",this._onWindowResize),delete this._onWindowResize)}},{key:"render",value:function(){var t=this.props.className,n=this.props.settings,i=n.stickyHead,r=n.dynamicRender,o=this.getStickyFooterMode();return e.createElement("div",{className:t,ref:this._refBody},i&&this.renderStickyHead(),e.createElement("div",{ref:this._refBox,className:on("box",{"sticky-head":i,"sticky-footer":o}),onScroll:this._onBoxScroll},r?this.renderTableDynamic():this.renderTableSimple()),o&&this.renderStickyFooter())}},{key:"_updateBoxConstraints",value:function(){var e=this._stickyHead||this._stickyFooter;if(this._box&&e){var t=this._box.offsetWidth-this._box.clientWidth;this._stickyHead&&(this._stickyHead.setRightPosition(t),this._stickyHead.setScrollLeft(this._box.scrollLeft)),this._stickyFooter&&(this._stickyFooter.setRightPosition(t),this._stickyFooter.setScrollLeft(this._box.scrollLeft))}}},{key:"syncHeadWidths",value:function(){this._head&&this._head._calculateColumnsWidth()}},{key:"_getEmptyRow",value:function(){var t=this.props,n=t.columns.dataColumns,i=t.emptyDataMessage,r=t.renderEmptyRow;return"function"===typeof r?r(n):e.createElement("tr",{className:on("row")},e.createElement("td",{className:on("td",on("no-data")),colSpan:n.length},i))}},{key:"renderHead",value:function(){var t=this.props,n=t.columns,i=t.onSort,r=this.props.settings.displayIndices,o=this.renderHeaderRows();return e.createElement(dn,Object.assign({ref:this._refHead},n,{displayIndices:Boolean(r),onSort:i,onColumnsUpdated:this._onColumnsUpdated,renderedDataRows:o}))}},{key:"renderStickyHead",value:function(){var t=this.props,n=t.columns,i=t.onSort,r=this.props.settings,o=r.displayIndices,a=r.stickyTop,s=r.stickyHead,u="auto"===a&&this._body&&this._body.parentNode?this._body.parentNode.offsetTop:Number(a)||0,l=this.renderHeaderRows();return e.createElement(hn,Object.assign({mode:s,top:u,ref:this._refStickyHead},n,{displayIndices:o,onSort:i,renderedDataRows:l,onDataRowsHeightChange:this.onMovingHeaderDataRowsHeightChange}))}},{key:"renderStickyFooter",value:function(){var t=this.props.columns,n=this.props.settings.stickyBottom,i=Number(n)||0;if("auto"===n&&this._body&&this._body.parentNode){var r=this._body.parentNode;i=r.offsetTop+r.offsetHeight}var o=this.renderFooterRows();return e.createElement(fn,{ref:this._refStickyFooter,mode:this.getStickyFooterMode(),bottom:i,dataColumns:t.dataColumns,renderedRows:o,onMovingHeightChange:this.onMovingFooterHeightChange})}},{key:"renderTableDynamic",value:function(){var t=this.props,n=t.data,i=t.settings,r=void 0===i?{}:i,o=r.dynamicInnerRef,a=r.dynamicRenderType,s=void 0===a?"uniform":a,u=r.dynamicRenderUseStaticSize,l=r.dynamicRenderThreshold,c=r.dynamicRenderMinSize,d=r.dynamicRenderScrollParentGetter,h=r.dynamicRenderScrollParentViewportSizeGetter,f=r.dynamicItemSizeEstimator,p=r.dynamicItemSizeGetter;return e.createElement(Yt(),Object.assign({ref:o,type:s,useStaticSize:u,threshold:l,minSize:c,itemSizeEstimator:f,itemSizeGetter:p,length:n.length,itemRenderer:this.renderRow,itemsRenderer:this.renderTable,scrollParentGetter:d},{scrollParentViewportSizeGetter:h}))}},{key:"renderTableSimple",value:function(){var e=this,t=this.props.data.map((function(t,n){return e.renderRow(n)}));return this.renderTable(t,null)}},{key:"renderHeaderRows",value:function(){var e=this.props.headerData;return e&&e.map(this.renderHeaderRow)}},{key:"renderFooterRows",value:function(){var e=this.props.footerData;return null===e||void 0===e?void 0:e.map(this.renderFooterRow)}},{key:"getStickyFooterMode",value:function(){var e=this.props.footerData;return!!(null===e||void 0===e?void 0:e.length)&&this.props.settings.stickyFooter}}]),s}(e.PureComponent);pn.propTypes={className:Oe().string,settings:Oe().object,refs:Oe().object,headerData:Oe().array,data:Oe().array,footerData:Oe().array,columns:Oe().object,emptyDataMessage:Oe().string,onRowClick:Oe().func,rowClassName:Oe().func,rowKey:Oe().func,startIndex:Oe().number,onSort:Oe().func,renderEmptyRow:Oe().func};var gn=e.memo((function(t){var n=t.column,i=t.value,r=t.row,o=t.index,a=t.footer,s=t.headerData;return e.createElement(e.Fragment,null,n.render({value:i,row:r,index:o,footer:a,headerData:s}))}));var vn={columnId:Oe().string,order:Oe().oneOf([Ut,Kt])},mn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).state=Object.assign({settings:{}},rn(t.props.initialSortOrder,t.props.settings)),t._tableRef=function(e){t.table=e},t.renderMemoizedCell=function(t){var n=t.column,i=t.value,r=t.row,o=t.index,a=t.footer,s=t.headerData;return e.createElement(gn,Object.assign({},{column:n,value:i,row:r,index:o,footer:a,headerData:s}))},t.getColumn=function(e,n){var i=t.state.settings,r=i.defaultOrder,o=t.state,a=o.sortOrder,s=void 0===a?{}:a,u=o.sortColumns,l=o.indexColumn,c=Number(Boolean(l)),d=t.isSortEnabled(),h=e.name,f=e.accessor,p=void 0===f?e.name:f,g=e.align,v=e.sortable,m=void 0===v?i.sortable:v,_=e.group,y=e.autogroup,b=void 0===y||y,w=e.sortAccessor,C=e.onClick,k=on("td",{align:g},e.className),S="function"===typeof p?function(e){return p(e)}:function(e){return Object.prototype.hasOwnProperty.call(e,p)?e[p]:void 0},x="function"===typeof e.title?function(t){return e.title(t)}:function(){return"string"===typeof e.title&&e.title||void 0},L="function"===typeof w?function(e){return w(e)}:S,E="function"===typeof e.render?function(n){var i=n.value,r=n.row,o=n.index,a=n.footer,s=n.headerData;return t.renderMemoizedCell({column:e,value:i,row:r,index:o,footer:a,headerData:s})}:function(e){return e.value},N="function"===typeof e.customStyle?e.customStyle:function(){},D="function"===typeof C?function(t){return function(){return C(t,e)}}:function(){};return Object.assign(Object.assign({index:n-c,columnIndex:n,dataColumn:!0,defaultOrder:r},e),{sortable:m&&d,_className:k,_getValue:S,_getTitle:x,_getSortValue:L,_renderValue:E,_getOnClick:D,customStyle:N,group:_,autogroup:b,sortOrder:s[h]||void 0,sortIndex:u.length>1?u.indexOf(h)+1:void 0})},t.isSortEnabled=function(){var e=t.props.data;return Array.isArray(e)&&e.length>1},t.onSort=function(e,n){if(e){var i=en(e,t.state,n,t.props.settings),r=i.sortOrder,o=i.sortColumns;t.setState({sortOrder:r,sortColumns:o});var a=t.props.onSort;if("function"===typeof a){var s=function(e){return Object.keys(e).map((function(t){return{columnId:t,order:e[t]}}))}(r);a(s)}}else{t.setState({sortOrder:{},sortColumns:[]});var u=t.props.onSort;"function"===typeof u&&u([])}},t}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.headerData,i=t.data,r=t.footerData,o=t.columns,a=t.startIndex,u=t.emptyDataMessage,l=t.rowClassName,c=t.rowKey,d=t.onRowClick,h=t.theme,f=t.renderEmptyRow,p=t.nullBeforeNumbers,g=this.state,v=g.settings,m=g.sortOrder,_=g.sortColumns,y=v.highlightRows,b=void 0!==y&&y,w=v.stripedRows,C=void 0!==w&&w,k=v.headerMod,S=on({"highlight-rows":b,"striped-rows":C,header:void 0!==k&&k,theme:h}),x=this.getComplexColumns(o);return v.dynamicRender&&x.dataColumns.some((function(e){return e.group}))&&console.warn("Simultaneously used grouping cells and dynamic render. The table will render unpredictable."),e.createElement(pn,{ref:this._tableRef,className:S,settings:v,startIndex:a,columns:x,emptyDataMessage:u,renderEmptyRow:f,rowClassName:l,rowKey:c||s.defaultProps.rowKey,onRowClick:d,headerData:n,data:nn(i,x.dataColumns,{sortOrder:m,sortColumns:_},{nullBeforeNumbers:p,externalSort:null===v||void 0===v?void 0:v.externalSort}),footerData:r,onSort:this.onSort})}},{key:"getComplexColumns",value:function(e){var t=this,n=[],i=[],r=[],o=this.state.indexColumn;return function e(o,a){n[a]||(n[a]=[]);var s=n[a];return o.reduce((function(n,o){var u=1,l=-1,c=o;if(Array.isArray(o.sub))u=e(o.sub,a+1);else{var d=t.getColumn(o,i.length);i.push(d),l=a,c=d}var h={column:c,itemLevel:l,colSpan:u,rowSpan:0};return r.push(h),s.push(h),u+n}),0)}(o?[o].concat((0,zt.Z)(e)):e,0),r.forEach((function(e){e.rowSpan=e.itemLevel<0?1:n.length-e.itemLevel})),{headColumns:n,dataColumns:i}}},{key:"resize",value:function(){this.table&&this.table.syncHeadWidths()}}],[{key:"normalizeStickyHead",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e!==Gt||Qt?e:(console.warn("Your browser does not support position: sticky, moving sticky headers will be disabled."),!1)}},{key:"calculateSettings",value:function(e){return Object.assign(Object.assign(Object.assign({},s.defaultProps.settings),e),{stickyHead:s.normalizeStickyHead(e.stickyHead),stickyFooter:s.normalizeStickyHead(e.stickyFooter)})}},{key:"getIndexColumn",value:function(e){var t=e.startIndex,n=e.data,i=e.visibleRowIndex,r=t+n.length+1;return{name:$t,header:"#",className:on("index"),render:function(e){var n,r,o=e.row,a=e.index,s=e.footer;return e.headerData?null!==(n=o.headerIndex)&&void 0!==n?n:t+a:s?null!==(r=o.footerIndex)&&void 0!==r?r:t+a:"function"===typeof i?i(o,a):t+a},sortable:!1,width:20+10*Math.ceil(Math.log10(r))}}},{key:"getDerivedStateFromProps",value:function(e){var t=s.calculateSettings(e.settings);return Object.assign({settings:t,indexColumn:Boolean(t.displayIndices)&&s.getIndexColumn(e)},e.sortOrder?Object.assign({},rn(e.sortOrder,e.settings)):void 0)}}]),s}(e.Component);function _n(e){return new Set(e.map((function(e){return e.name}))).size!==e.length}mn.propTypes={columns:Oe().array.isRequired,headerData:Oe().array,data:Oe().array.isRequired,footerData:Oe().array,startIndex:Oe().number,emptyDataMessage:Oe().string,renderEmptyRow:Oe().func,rowClassName:Oe().func,rowKey:Oe().func,visibleRowIndex:Oe().func,initialSortOrder:Oe().oneOfType([Oe().shape(vn),Oe().arrayOf(Oe().shape(vn))]),sortOrder:Oe().oneOfType([Oe().shape(vn),Oe().arrayOf(Oe().shape(vn))]),settings:Oe().shape({displayIndices:Oe().bool,dynamicRender:Oe().bool,dynamicRenderType:Oe().oneOf(["simple","uniform","variable"]),dynamicRenderUseStaticSize:Oe().bool,dynamicRenderThreshold:Oe().number,dynamicRenderMinSize:Oe().number,dynamicRenderScrollParentGetter:Oe().func,dynamicRenderScrollParentViewportSizeGetter:Oe().func,dynamicItemSizeEstimator:Oe().func,dynamicItemSizeGetter:Oe().func,stickyHead:Oe().oneOf([!1,qt,Gt]),stickyTop:Oe().oneOfType([Oe().number,Oe().oneOf(["auto"])]),sortable:Oe().bool,externalSort:Oe().bool,highlightRows:Oe().bool,stripedRows:Oe().bool,headerMod:Oe().oneOf(["multiline","pre"]),defaultOrder:Oe().oneOf([Ut,Kt]),syncHeadOnResize:Oe().bool}),theme:Oe().string,onSort:Oe().func},mn.defaultProps={startIndex:0,emptyDataMessage:"No data",settings:{displayIndices:!0,dynamicRenderMinSize:1,stickyHead:!1,stickyFooter:!1,sortable:!0,externalSort:!1,defaultOrder:Ut},rowKey:function(e,t){return Object.prototype.hasOwnProperty.call(e,"id")?e.id:t},initialSortOrder:{},initialSortColumns:[],theme:"yandex-cloud"},mn.getSortedData=nn;var yn="It is strongly recommended against using duplicate column names. They act as default accessors and titles, so doing so may lead to confusing titles and the wrong data being extracted.",bn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).state={},e._tableRef=function(t){e.table=t},e}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){_n(this.props.columns)&&console.warn(yn)}},{key:"componentDidUpdate",value:function(e){var t=this.props.columns;t!==e.columns&&_n(t)&&console.warn(yn)}},{key:"componentDidCatch",value:function(e){console.error(e),this.setState({error:e});var t=this.props.onError;"function"===typeof t&&t(e)}},{key:"render",value:function(){var t=this.state.error;return t?e.createElement("pre",{className:on("error")},"DataTable got stuck in invalid state. Please tell developers about it.","\n\n",t.stack&&String(t.stack)||String(t)):e.createElement(mn,Object.assign({ref:this._tableRef},this.props))}},{key:"resize",value:function(){this.table&&this.table.resize()}}],[{key:"setCustomIcons",value:function(e){un.ICON_ASC=e.ICON_ASC||an,un.ICON_DESC=e.ICON_DESC||sn}}]),s}(e.PureComponent);bn.FIXED=qt,bn.MOVING=Gt,bn.ASCENDING=Ut,bn.DESCENDING=Kt,bn.LEFT="left",bn.CENTER="center",bn.RIGHT="right";var wn=bn,Cn=1e4,kn=1e6,Sn=1e9,xn=1e12,Ln=3600,En=24*Ln,Nn={TABLET_VOLATILE_STATE_UNKNOWN:"unknown",TABLET_VOLATILE_STATE_STOPPED:"stopped",TABLET_VOLATILE_STATE_BOOTING:"booting",TABLET_VOLATILE_STATE_STARTING:"starting",TABLET_VOLATILE_STATE_RUNNING:"running",TABLET_VOLATILE_STATE_BLOCKED:"blocked"},Dn="TxAllocator",Mn={OldTxProxy:"P",TxProxy:"P",BSController:"BS",Dummy:"DY",RTMRPartition:"RP",PersQueueReadBalancer:"PB",Cms:"CM",BlockStorePartition:"BP",BlockStoreVolume:"BV",Console:"CN",TenantSlotBroker:"TB"},Tn=function(e){var t;if(e){var n=null===(t=e.match(/[A-Z]/g))||void 0===t?void 0:t.join("");return function(e){return e in Mn}(e)?Mn[e]:n}},On=["1 min","5 min","15 min"],In={0:"HDD",1:"SSD"},An={green:5,yellow:4,orange:3,red:2,blue:1,grey:1},Rn="All",Pn="With problems",Zn="theme",Fn="invertedDisks",jn="useNodesEndpointInDiagnostics",Hn="saved_queries",Bn="asideHeaderCompact",zn="queries_history",Wn="default-size-result-pane",Vn="default-size-tenant-summary-pane",Yn="default-size-tenant-pane",Un="default-is-tenant-summary-collapsed",Kn="default-is-tenant-common-info-collapsed",qn="default-is-query-result-collapsed",Gn={displayIndices:!1,stickyHead:wn.MOVING,syncHeadOnResize:!0,dynamicRender:!0,highlightRows:!0},$n="saved_tenant_initial_tab",Qn="query_initial_run_action",Xn="partitionsSelectedColumns",Jn=n(15861),ei=n(87757),ti=n.n(ei),ni=n(40794),ii=n.n(ni),ri=n(56787),oi=n.n(ri),ai=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.Z)(this,e),this.setApiEndpoint=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";"undefined"!==typeof location&&(e=e.replace("%CURRENT_HOST%",location.host)),t.apiEndpoint=e},this.setCSRFToken=function(e){t._axios.defaults.headers.post["X-CSRF-Token"]=e,t._axios.defaults.headers.put["X-CSRF-Token"]=e,t._axios.defaults.headers.delete["X-CSRF-Token"]=e},this.setDefaultHeader=function(e){var n=e.name,i=e.value,r=e.methods,o=t._axios.defaults.headers;Array.isArray(r)?r.forEach((function(e){o[e]&&(o[e][n]=i)})):o.common[n]=i},this.apiPath=function(e){return"".concat(t.apiEndpoint).concat(e)};var r=n.config,o=void 0===r?{}:r,a=n.apiEndpoint,s=void 0===a?"/api":a,u=n.collector,l=void 0===u?{}:u,c=Object.assign({xsrfCookieName:"",timeout:e.DEFAULT_TIMEOUT,withCredentials:!0},o);this._axios=oi().create(c),this._axios.defaults.headers=ii()(this._axios.defaults.headers),this.requestTokens={},this.setApiEndpoint(s),this.collectorSettings=l,this.collector={errors:[],requests:[]}}return(0,r.Z)(e,[{key:"collectRequest",value:function(e){var t=e.method,n=e.url,i=e.data,r=e.requestStart,o=e.response,a=e.responseError,s=e.error,u=void 0!==s&&s,l=e.cancelled,c=void 0!==l&&l,d=this.collectorSettings,h=d.collectErrors,f=d.collectRequests;if(h||f){var p=o&&o.request||{},g=p.responseText,v=void 0===g?"":g,m=p.responseURL,_=void 0===m?n:m,y=u&&a instanceof Error?a.message:"",b={method:t,url:_,time:{start:r,end:Number(new Date)},status:o&&o.status,size:v.length,requestData:i&&JSON.stringify(i,null,2)||"",responseData:o&&o.data&&JSON.stringify(o.data,null,2)||y,isError:u,isCancelled:c};h&&u&&(this.collector.errors=[].concat((0,zt.Z)(this.collector.errors),[b]).slice(-h)),f&&(this.collector.requests=[].concat((0,zt.Z)(this.collector.requests),[b]).slice(-f))}}},{key:"getCollectedRequests",value:function(){return{errors:(0,zt.Z)(this.collector.errors),requests:(0,zt.Z)(this.collector.requests)}}},{key:"request",value:function(){var e=(0,Jn.Z)(ti().mark((function e(t){var n,i,r,o,a,s,u,l,c,d,h,f,p,g,v,m,_,y,b,w,C=this;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.method,i=t.url,r=t.data,o=void 0===r?null:r,a=t.params,s=t.options,u=void 0===s?{}:s,l=t.retries,c=void 0===l?0:l,d=u.requestConfig||{},h=u.concurrentId,f=u.collectRequest,p=void 0===f||f,g=u.timeout,v=u.headers,m=u.onDownloadProgress,h&&(this.cancelRequest(h),d.cancelToken=this.createRequestToken(h)),v&&(d.headers=v),"undefined"!==typeof g&&(d.timeout=g),_=Number(new Date),y={method:n,url:i,data:o,params:a,onDownloadProgress:m},e.prev=8,e.next=11,this._axios.request(Object.assign(Object.assign({},d),y));case 11:return b=e.sent,this.clearRequestToken(h),p&&this.collectRequest(Object.assign(Object.assign({},y),{requestStart:_,response:b})),e.abrupt("return",b.data);case 17:if(e.prev=17,e.t0=e.catch(8),!oi().isCancel(e.t0)){e.next=23;break}throw{isCancelled:!0,error:e.t0};case 23:this.clearRequestToken(h);case 24:return w=e.t0.response?e.t0.response:"function"===typeof e.t0.toJSON?e.t0.toJSON():e.t0,p&&this.collectRequest(Object.assign(Object.assign({},y),{requestStart:_,response:w,error:!0,cancelled:oi().isCancel(e.t0),responseError:e.t0})),e.abrupt("return",this.handleRequestError(w,(function(){return C.request(Object.assign(Object.assign({},t),{retries:c+1}))}),c,new Error(e.t0 instanceof Error?e.t0.message:"Unknown error")));case 27:case"end":return e.stop()}}),e,this,[[8,17]])})));return function(t){return e.apply(this,arguments)}}()},{key:"cancelRequest",value:function(e){e&&this.requestTokens[e]&&this.requestTokens[e].cancel("Concurrent request")}},{key:"get",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request({method:"GET",url:e,params:t,options:n})}},{key:"post",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"POST",url:e,data:t,params:n,options:i})}},{key:"put",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"PUT",url:e,data:t,params:n,options:i})}},{key:"patch",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"PATCH",url:e,data:t,params:n,options:i})}},{key:"delete",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"DELETE",url:e,data:t,params:n,options:i})}},{key:"head",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request({method:"HEAD",url:e,params:t,options:n})}},{key:"handleRequestError",value:function(e){throw e}},{key:"createRequestToken",value:function(e){if(e){var t=oi().CancelToken.source();return this.requestTokens[e]=t,t.token}}},{key:"clearRequestToken",value:function(e){e&&this.requestTokens[e]&&delete this.requestTokens[e]}}]),e}();ai.DEFAULT_TIMEOUT=6e4;var si={withCredentials:!window.custom_backend},ui=(window.web_version?window.systemSettings:{}).settingsApi,li=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"getPath",value:function(e){return"".concat(Qc).concat(e)}},{key:"getClusterInfo",value:function(){return this.get(this.getPath("/viewer/json/cluster"),{tablets:!0})}},{key:"getNodeInfo",value:function(e){return this.get(this.getPath("/viewer/json/sysinfo?enums=true"),{node_id:e})}},{key:"getTenants",value:function(){return this.get(this.getPath("/viewer/json/tenantinfo"),{tablets:1,storage:1})}},{key:"getTenantInfo",value:function(e){var t=e.path;return this.get(this.getPath("/viewer/json/tenantinfo"),{path:t,tablets:!0,storage:!0})}},{key:"getNodes",value:function(e){var t=e.tenant,n=e.filter,i=e.storage,r=e.type,o=void 0===r?"any":r,a=e.tablets,s=void 0===a||a,u=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/nodes?enums=true"),{tenant:t,with:n,storage:i,type:o,tablets:s},{concurrentId:u})}},{key:"getCompute",value:function(e){return this.get(this.getPath("/viewer/json/compute?enums=true"),{path:e})}},{key:"getStorageInfo",value:function(e){var t=e.tenant,n=e.filter,i=e.nodeId,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/storage?enums=true"),{tenant:t,node_id:i,with:n},{concurrentId:r})}},{key:"getPdiskInfo",value:function(e,t){return this.get(this.getPath("/viewer/json/pdiskinfo?enums=true"),{filter:"(NodeId=".concat(e).concat(t?";PDiskId=".concat(t):"",")")})}},{key:"getVdiskInfo",value:function(e){var t=e.vdiskId,n=e.pdiskId,i=e.nodeId;return this.get(this.getPath("/viewer/json/vdiskinfo?enums=true"),{filter:"(VDiskId=".concat(null!==t&&void 0!==t?t:"",";PDiskId=").concat(null!==n&&void 0!==n?n:"",";NodeId=").concat(null!==i&&void 0!==i?i:"",")")})}},{key:"getGroupInfo",value:function(e){return this.get(this.getPath("/viewer/json/storage?enums=true"),{group_id:e})}},{key:"getHostInfo",value:function(){return this.get(this.getPath("/viewer/json/sysinfo?node_id=.&enums=true"))}},{key:"getTabletsInfo",value:function(e){var t=e.nodes,n=void 0===t?[]:t,i=e.path,r=n.length>0&&"(NodeId=[".concat(n.join(","),"])");return this.get(this.getPath("/viewer/json/tabletinfo"),{filter:r,path:i,enums:!0})}},{key:"getSchema",value:function(e){var t=e.path,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/describe"),{path:t,enums:!0,backup:!1,private:!0,partition_config:!1,partition_stats:!1,partitioning_info:!1,subs:1},{concurrentId:n||"getSchema|".concat(t)})}},{key:"getDescribe",value:function(e){var t=e.path,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/describe"),{path:t,enums:!0,partition_stats:!0,subs:0},{concurrentId:n||"getDescribe|".concat(t)})}},{key:"getSchemaAcl",value:function(e){var t=e.path;return this.get(this.getPath("/viewer/json/acl"),{path:t},{concurrentId:"getSchemaAcl|".concat(t)})}},{key:"getHeatmapData",value:function(e){var t=e.path;return this.get(this.getPath("/viewer/json/describe"),{path:t,enums:!0,backup:!1,children:!1,partition_config:!1,partition_stats:!0})}},{key:"getNetwork",value:function(e){return this.get(this.getPath("/viewer/json/netinfo"),{enums:!0,path:e})}},{key:"getTopic",value:function(e){var t=e.path,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/describe_topic"),{enums:!0,include_stats:!0,path:t},{concurrentId:n||"getTopic"})}},{key:"getConsumer",value:function(e){var t=e.path,n=e.consumer,i=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/describe_consumer"),{enums:!0,include_stats:!0,path:t,consumer:n},{concurrentId:i||"getConsumer"})}},{key:"getPoolInfo",value:function(e){return this.get(this.getPath("/viewer/json/storage"),{pool:e,enums:!0})}},{key:"getTablet",value:function(e){var t=e.id;return this.get(this.getPath("/viewer/json/tabletinfo?filter=(TabletId=".concat(t,")")),{enums:!0})}},{key:"getTabletHistory",value:function(e){var t=e.id;return this.get(this.getPath("/viewer/json/tabletinfo?filter=(TabletId=".concat(t,")")),{enums:!0,merge:!1})}},{key:"getNodesList",value:function(){return this.get(this.getPath("/viewer/json/nodelist"),{enums:!0})}},{key:"getTenantsList",value:function(){return this.get(this.getPath("/viewer/json/tenants"),{enums:!0,state:0})}},{key:"sendQuery",value:function(e){var t=e.query,n=e.database,i=e.action,r=e.stats,o=e.schema,a=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.post(this.getPath("/viewer/json/query".concat(o?"?schema=".concat(o):"")),{query:t,database:n,action:i,stats:r,timeout:6e5},null,{concurrentId:a,timeout:54e4})}},{key:"getExplainQuery",value:function(e,t){return this.post(this.getPath("/viewer/json/query"),{query:e,database:t,action:"explain",timeout:6e5})}},{key:"getExplainQueryAst",value:function(e,t){return this.post(this.getPath("/viewer/json/query"),{query:e,database:t,action:"explain-ast",timeout:6e5})}},{key:"getHotKeys",value:function(e,t){return this.get(this.getPath("/viewer/json/hotkeys"),{path:e,enable_sampling:t})}},{key:"getHealthcheckInfo",value:function(e){return this.get(this.getPath("/viewer/json/healthcheck"),{tenant:e})}},{key:"killTablet",value:function(e){return this.get(this.getPath("/tablets?KillTabletID=".concat(e)))}},{key:"stopTablet",value:function(e,t){return this.get(this.getPath("/tablets/app?TabletID=".concat(t,"&page=StopTablet&tablet=").concat(e)))}},{key:"resumeTablet",value:function(e,t){return this.get(this.getPath("/tablets/app?TabletID=".concat(t,"&page=ResumeTablet&tablet=").concat(e)))}},{key:"getTabletDescribe",value:function(e){return this.get(this.getPath("/viewer/json/describe"),{schemeshard_id:null===e||void 0===e?void 0:e.SchemeShard,path_id:null===e||void 0===e?void 0:e.PathId})}},{key:"postSetting",value:function(e,t){return this.request({method:"PATCH",url:ui,data:(0,ht.Z)({},e,t)})}},{key:"authenticate",value:function(e,t){return this.post(this.getPath("/login"),{user:e,password:t})}},{key:"logout",value:function(){return this.post(this.getPath("/logout"),{})}},{key:"whoami",value:function(){return this.get(this.getPath("/viewer/json/whoami"))}}]),n}(ai),ci=new li({config:si});function di(e){if(e)try{return JSON.parse(e)}catch(t){return console.log(t),e}}function hi(e,t){try{var n;return null!==(n=localStorage.getItem(e))&&void 0!==n?n:t}catch(i){console.log(i)}}window.api=ci;var fi,pi=[" B"," KB"," MB"," GB"," TB"," PB"," EB"],gi=1e3;function vi(e){return"".concat(function(e){if(isNaN(e))return"";var t=e/Math.pow(gi,2);return t<10?t.toFixed(2)+pi[2]:t<100?t.toFixed(1)+pi[2]:t.toFixed()+pi[2]}(e)).concat(e?"ps":"")}function mi(e,t){if(isNaN(e))return"N/A";var n=e/1e9;return t?n.toFixed()+pi[3]:n<10?n.toFixed(2)+pi[3]:n<100?n.toFixed(1)+pi[3]:n.toFixed()+pi[3]}function _i(e){for(var t=e,n=String(e).length;n<9;n++)t="0"+t;return t}function yi(e){return!isNaN(e)&&!isNaN(parseFloat(e))}var bi="settings/CHANGE_PROBLEM_FILTER",wi="settings/SET_VALUE",Ci=window.userSettings||{},ki=window.systemSettings||{};function Si(e,t){var n=window.web_version?Ci[e]:hi(e);return null!==n&&void 0!==n?n:t}var xi="";try{xi=String(JSON.parse(hi("nvAsideHeader")).isCompact),localStorage.removeItem("nvAsideHeader")}catch(MG){}var Li={problemFilter:Rn,userSettings:pt(pt({},Ci),{},(fi={},(0,ht.Z)(fi,Zn,Si(Zn,"light")),(0,ht.Z)(fi,Fn,Si(Fn,"false")),(0,ht.Z)(fi,jn,Si(jn,"false")),(0,ht.Z)(fi,Hn,Si(Hn,"[]")),(0,ht.Z)(fi,$n,Si($n)),(0,ht.Z)(fi,Qn,Si(Qn)),(0,ht.Z)(fi,Bn,Si(Bn,xi||"true")),(0,ht.Z)(fi,Xn,Si(Xn)),fi)),systemSettings:ki},Ei=function(e,t){return function(n,i){n({type:wi,data:{name:e,value:t}}),i().singleClusterMode?localStorage.setItem(e,t):window.api.postSetting(e,t)}},Ni=function(e,t){return e.settings.userSettings[t]},Di=function(e){return{type:bi,data:e}},Mi=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Li,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case bi:return pt(pt({},e),{},{problemFilter:t.data});case wi:var n=pt(pt({},e.userSettings),{},(0,ht.Z)({},t.data.name,t.data.value));return pt(pt({},e),{},{userSettings:n});default:return e}},Ti=n(29439),Oi=new(n(2113).b);var Ii=function(e){var t=e.name,n=e.title,i=e.type,r=e.content;return Oi.createToast({name:null!==t&&void 0!==t?t:"Request succeeded",title:null!==n&&void 0!==n?n:"Request succeeded",type:null!==i&&void 0!==i?i:"success",content:r,isClosable:!0,allowAutoHiding:"success"===i})},Ai=Bi("authentication","SET_UNAUTHENTICATED"),Ri=Bi("authentication","SET_AUTHENTICATED"),Pi=Bi("authentication","FETCH_USER"),Zi={isAuthenticated:!0,user:"",error:""},Fi=function(e,t){return Wi({request:window.api.authenticate(e,t),actions:Ri})},ji=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Zi,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ai.SUCCESS:return pt(pt({},e),{},{isAuthenticated:!1,user:"",error:""});case Ri.SUCCESS:return pt(pt({},e),{},{isAuthenticated:!0,error:""});case Ri.FAILURE:return pt(pt({},e),{},{error:t.error});case Pi.SUCCESS:return pt(pt({},e),{},{user:t.data});default:return pt({},e)}},Hi=function(e){return e};function Bi(e,t){return{REQUEST:"".concat(e,"/").concat(t,"_REQUEST"),SUCCESS:"".concat(e,"/").concat(t,"_SUCCESS"),FAILURE:"".concat(e,"/").concat(t,"_FAILURE")}}var zi=function(e){return e&&"status"in e};function Wi(e){var t=e.actions,n=e.request,i=e.dataHandler,r=void 0===i?Hi:i,o=function(){var e=(0,Jn.Z)(ti().mark((function e(i,o){var a,s;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i({type:t.REQUEST}),e.prev=1,e.next=4,n;case 4:return a=e.sent,s=r(a,o),i({type:t.SUCCESS,data:s}),e.abrupt("return",s);case 10:return e.prev=10,e.t0=e.catch(1),zi(e.t0)&&401===e.t0.status?i({type:Ai.SUCCESS}):zi(e.t0)&&e.t0.status>=500&&e.t0.statusText&&Ii({name:"Request failure",title:"Request failure",type:"error",content:"".concat(e.t0.status," ").concat(e.t0.statusText)}),i({type:t.FAILURE,error:e.t0}),e.abrupt("return",void 0);case 15:case"end":return e.stop()}}),e,null,[[1,10]])})));return function(t,n){return e.apply(this,arguments)}}();return o}var Vi=Bi("heatmap","FETCH_HEATMAP"),Yi="heatmap/SET_HEATMAP_OPTIONS",Ui={loading:!1,wasLoaded:!1,currentMetric:void 0,sort:!1,heatmap:!1};function Ki(e){return{type:Yi,data:e}}var qi=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ui,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Vi.REQUEST:return pt(pt({},e),{},{loading:!0});case Vi.SUCCESS:return pt(pt(pt({},e),t.data),{},{loading:!1,wasLoaded:!0,error:void 0});case Vi.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1,wasLoaded:!1});case Yi:return pt(pt({},e),t.data);default:return e}},Gi=["search"],$i={global:{problemFilter:{stateKey:"settings.problemFilter",initialState:Li.problemFilter}},"/tenant":{sort:{stateKey:"heatmap.sort",initialState:Ui.sort,type:"bool"},heatmap:{stateKey:"heatmap.heatmap",initialState:Ui.heatmap,type:"bool"},currentMetric:{stateKey:"heatmap.currentMetric",initialState:Ui.currentMetric},schema:{stateKey:"schema.currentSchemaPath"},stateFilter:{stateKey:"tablets.stateFilter",type:"array"},typeFilter:{stateKey:"tablets.typeFilter",type:"array"},general:{stateKey:"tenant.topLevelTab"},generalTab:{stateKey:"tenant.diagnosticsTab"},shardsMode:{stateKey:"shardsWorkload.filters.mode"},shardsDateFrom:{stateKey:"shardsWorkload.filters.from",type:"number"},shardsDateTo:{stateKey:"shardsWorkload.filters.to",type:"number"},topQueriesDateFrom:{stateKey:"executeTopQueries.filters.from",type:"number"},topQueriesDateTo:{stateKey:"executeTopQueries.filters.to",type:"number"},selectedConsumer:{stateKey:"consumer.selectedConsumer"}}};function Qi(e,t){return Zt().merge({},e,t.query)}var Xi="";function Ji(e,t,n){var i=(0,Ft.stateToParams)(e,t,n),r=i.location;if(r.search!==Xi){return Xi=r.search,/\?\w+/.test(n.search)&&(r=function(e,t){var n=e.search,i=Rt(e,Gi),r=vt().parse(t.search.slice(1)),o=(0,Bt.getMatchingDeclaredPath)($i,e),a=o&&$i[o];Zt().each(Zt().keys(a),(function(e){delete r[e]})),Zt().each(Zt().keys($i.global||{}),(function(e){delete r[e]}));var s=vt().stringify(r,{encoder:encodeURIComponent}),u=n.startsWith("?")?"&":"?";return pt({search:"".concat(n).concat(u).concat(s)},i)}(r,n)),pt(pt({},i),{},{location:r})}return{location:n,shouldPush:!1}}function er(e,t,n){return function(i,r){var o=function(n,i){var r=i.type,o=i.payload;return!o||Ht.LOCATION_POP!==r&&Ht.LOCATION_PUSH!==r?n:(o.query=(0,jt.parseQuery)(e,o),t(n,o))}(n(i,r),r);return o!==i?o:i}}var tr=n(37762),nr="NOT_FOUND";var ir=function(e,t){return e===t};function rr(e,t){var n="object"===typeof t?t:{equalityCheck:t},i=n.equalityCheck,r=void 0===i?ir:i,o=n.maxSize,a=void 0===o?1:o,s=n.resultEqualityCheck,u=function(e){return function(t,n){if(null===t||null===n||t.length!==n.length)return!1;for(var i=t.length,r=0;r<i;r++)if(!e(t[r],n[r]))return!1;return!0}}(r),l=1===a?function(e){var t;return{get:function(n){return t&&e(t.key,n)?t.value:nr},put:function(e,n){t={key:e,value:n}},getEntries:function(){return t?[t]:[]},clear:function(){t=void 0}}}(u):function(e,t){var n=[];function i(e){var i=n.findIndex((function(n){return t(e,n.key)}));if(i>-1){var r=n[i];return i>0&&(n.splice(i,1),n.unshift(r)),r.value}return nr}return{get:i,put:function(t,r){i(t)===nr&&(n.unshift({key:t,value:r}),n.length>e&&n.pop())},getEntries:function(){return n},clear:function(){n=[]}}}(a,u);function c(){var t=l.get(arguments);if(t===nr){if(t=e.apply(null,arguments),s){var n=l.getEntries().find((function(e){return s(e.value,t)}));n&&(t=n.value)}l.put(arguments,t)}return t}return c.clearCache=function(){return l.clear()},c}function or(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];var o,a=0,s={memoizeOptions:void 0},u=i.pop();if("object"===typeof u&&(s=u,u=i.pop()),"function"!==typeof u)throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof u+"]");var l=s.memoizeOptions,c=void 0===l?n:l,d=Array.isArray(c)?c:[c],h=function(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"===typeof e}))){var n=t.map((function(e){return"function"===typeof e?"function "+(e.name||"unnamed")+"()":typeof e})).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return t}(i),f=e.apply(void 0,[function(){return a++,u.apply(null,arguments)}].concat(d)),p=e((function(){for(var e=[],t=h.length,n=0;n<t;n++)e.push(h[n].apply(null,arguments));return o=f.apply(null,e)}));return Object.assign(p,{resultFunc:u,memoizedResultFunc:f,dependencies:h,lastResult:function(){return o},recomputations:function(){return a},resetRecomputations:function(){return a=0}}),p}}var ar,sr=or(rr),ur=n(46553),lr=n(25017),cr=n.n(lr),dr=(n(10135),n(7406)),hr=n(24755),fr=n(39874),pr=n(65047);!function(e){e.En="en",e.Ru="ru"}(ar||(ar={}));var gr=new hr.I18N;gr.setLang(ar.En),(0,pr.configure)({lang:ar.En}),(0,fr.jQ)({lang:ar.En}),cr().locale(gr.lang);var vr,mr,_r,yr=function(e){return yi(e)?cr()(e).format("0 b"):""},br=function(e){var t=yr(e);return t?t+"/s":""},wr=function(e){return"".concat(Math.floor(e/Sn)," GB")},Cr=function(e){return Object.values(e).join("-")},kr=function(e){var t=Math.floor(e/En),n=e%En;return[t&&"".concat(t,"d"),cr()(n).format("00:00:00")].filter(Boolean).join(" ")},Sr=function(e){return kr(e/1e3)},xr=function(e,t){return[Math.floor(e),Math.floor(t)+" IOPS"]},Lr=function(e,t){return[Math.floor(e/xn),"".concat(Math.floor(t/xn)," TB")]},Er=function(e,t){return[Math.floor(e/1e9),"".concat(Math.floor(t/1e9)," GB")]},Nr=function(e,t){return[(e/kn).toFixed(2),(t/kn).toFixed(1)+" MB/s"]},Dr=function(e){return yi(e)?cr()(e).format():""},Mr=function(e){return yi(e)?cr()(e/1e6).format("0.00"):""},Tr=function(e){return yi(e)?e>0?(0,dr.J)(Number(e)).format("YYYY-MM-DD HH:mm"):"N/A":""},Or=function(e){return(new Date-Number(e))/1e3},Ir=function(e){return kr(Or(e))},Ar=function(e){var t=e.name.split("|");return t.length>1?t[1]:e.name},Rr=function(e){return e.map((function(e){var t=(0,Ti.Z)(e,2),n=t[0],i=t[1];return i&&"".concat(n,": ").concat(Array.isArray(i)?i.join(", "):i)})).filter(Boolean).join("\n")},Pr=function(e){switch(e.type){case"MultiLookup":case"Lookup":return Rr([["lookup by",e.lookup_by],["columns",e.columns]]);case"FullScan":case"Scan":return Rr([["scan by",e.scan_by],["limit",e.limit],["columns",e.columns]]);case"Upsert":case"MultiUpsert":case"Erase":case"MultiErase":return Rr([["key",e.key],["columns",e.columns]]);default:return""}};!function(e){e.Grey="Grey",e.Green="Green",e.Yellow="Yellow",e.Orange="Orange",e.Red="Red"}(vr||(vr={})),function(e){e.All="All",e.SmallUptime="SmallUptime"}(_r||(_r={}));var Zr=(mr={},(0,ht.Z)(mr,_r.All,"All"),(0,ht.Z)(mr,_r.SmallUptime,"Uptime < 1h"),mr),Fr=function(e){return!e.SystemState||e.SystemState===vr.Grey},jr=Bi("nodes","FETCH_NODES"),Hr="nodes/RESET_NODES_STATE",Br="nodes/SET_NODES_UPTIME_FILTER",zr="nodes/SET_DATA_WAS_NOT_LOADED",Wr="nodes/SET_SEARCH_VALUE",Vr={loading:!1,wasLoaded:!1,nodesUptimeFilter:_r.All,searchValue:""};function Yr(e){var t=e.tenant,n=e.filter,i=e.type,r=void 0===i?"any":i;return Wi({request:window.api.getNodes({tenant:t,filter:n,type:r}),actions:jr,dataHandler:function(e){var t=(e.Nodes||[]).map((function(e){var t,n,i;return pt(pt({},null===e||void 0===e?void 0:e.SystemState),{},{Tablets:null===e||void 0===e?void 0:e.Tablets,NodeId:null===e||void 0===e?void 0:e.NodeId,Uptime:Ir(null===e||void 0===e||null===(t=e.SystemState)||void 0===t?void 0:t.StartTime),TenantName:null===e||void 0===e||null===(n=e.SystemState)||void 0===n||null===(i=n.Tenants)||void 0===i?void 0:i[0]})}));return{Nodes:t,TotalNodes:Number(e.TotalNodes)||t.length}}})}var Ur=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(arguments.length>1?arguments[1]:void 0)===_r.All?e:e.filter((function(e){var t=e.StartTime;return!t||Or(t)<Ln}))},Kr=sr([function(e){return e.nodes.data},function(e){return e.nodes.nodesUptimeFilter},function(e){return e.nodes.searchValue},function(e){return e.settings.problemFilter}],(function(e,t,n,i){var r=Ur(e,t);return r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(arguments.length>1?arguments[1]:void 0)===Rn?e:e.filter((function(e){var t=e.SystemState;return t&&t!==vr.Green}))}(r,i),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;if(!t)return e;var n=new RegExp((0,ur.escapeRegExp)(t),"i");return e.filter((function(e){return!e.Host||n.test(e.Host)||n.test(String(e.NodeId))}))}(r,n),r})),qr=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Vr,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case jr.REQUEST:return pt(pt({},e),{},{loading:!0});case jr.SUCCESS:var n,i;return pt(pt({},e),{},{data:null===(n=t.data)||void 0===n?void 0:n.Nodes,totalNodes:null===(i=t.data)||void 0===i?void 0:i.TotalNodes,loading:!1,wasLoaded:!0,error:void 0});case jr.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case Hr:return pt(pt({},e),{},{loading:Vr.loading,wasLoaded:Vr.wasLoaded,nodesUptimeFilter:Vr.nodesUptimeFilter,searchValue:Vr.searchValue});case Br:return pt(pt({},e),{},{nodesUptimeFilter:t.data});case Wr:return pt(pt({},e),{},{searchValue:t.data});case zr:return pt(pt({},e),{},{wasLoaded:!1});default:return e}},Gr=Bi("cluster","FETCH_CLUSTER"),$r={loading:!0,wasLoaded:!1};function Qr(e){return Wi({request:window.api.getClusterInfo(e),actions:Gr})}var Xr=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:$r,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Gr.REQUEST:return pt(pt({},e),{},{loading:!0});case Gr.SUCCESS:var n,i,r,o=t.data,a=o.cluster?o.cluster.cluster:o,s=(null===(n=o.cluster)||void 0===n?void 0:n.title)||o.Name;return pt(pt({},e),{},{data:pt(pt({},a),{},{balancer:null===(i=o.cluster)||void 0===i?void 0:i.balancer,solomon:null===(r=o.cluster)||void 0===r?void 0:r.solomon,Name:s}),loading:!1,wasLoaded:!0,error:void 0});case Gr.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});default:return e}},Jr=Bi("tenant","FETCH_TENANT"),eo="tenant/SET_TOP_LEVEL_TAB",to="tenant/SET_DIAGNOSTICS_TAB",no="tenant/CLEAR_TENANT",io=function(){return{type:no}},ro=function(e){var t=e.path;return Wi({request:Promise.all([window.api.getTenantInfo({path:t}),window.api.getCompute(t)]),actions:Jr,dataHandler:function(e){var t,n=(0,Ti.Z)(e,2),i=n[0],r=n[1];return{tenant:i.TenantInfo[0],tenantNodes:Zt().map(null===r||void 0===r||null===(t=r.Tenants[0])||void 0===t?void 0:t.Nodes,(function(e){if(e.Host&&e.Endpoints){var t,n=null===(t=Zt().find(e.Endpoints,{Name:"http-mon"}))||void 0===t?void 0:t.Address;return{id:e.NodeId,backend:"".concat(e.Host).concat(n||"")}}})).filter(Boolean)}}})};function oo(e){return{type:eo,data:e}}var ao,so=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,wasLoaded:!1,tenant:{}},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Jr.REQUEST:return pt(pt({},e),{},{loading:!0});case Jr.SUCCESS:var n=t.data,i=n.tenant,r=n.tenantNodes;return pt(pt({},e),{},{tenant:i,tenantNodes:r,loading:!1,wasLoaded:!0,error:void 0});case Jr.FAILURE:return pt(pt({},e),{},{data:t.error,loading:!1,wasLoaded:!0});case no:return pt(pt({},e),{},{tenant:{},loading:!0});case eo:return pt(pt({},e),{},{topLevelTab:t.data});case to:return pt(pt({},e),{},{diagnosticsTab:t.data});default:return e}},uo=function(e){return"VDiskId"in e},lo=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=Math.round(100*e.Used/e.Limit)||0;return Math.floor(n/t)*t};!function(e){e.HDD="HDD",e.SSD="SSD",e.MVME="NVME"}(ao||(ao={}));var co,ho=function(e){if(e.Category){var t=function(e,t){var n={};return Object.entries(t).reduce((function(t,i){var r=(0,Ti.Z)(i,2),o=r[0],a=r[1],s=e.length-t,u=s-a;return n[o]=e.substring(u,s)||"0",t+a}),0),n}(BigInt(e.Category).toString(2),{isSolidState:1,kind:55,typeExt:8});if("1"===t.isSolidState)switch(parseInt(t.typeExt,2)){case 0:return ao.SSD;case 2:return ao.MVME}else if("0"===t.typeExt)return ao.HDD}},fo={All:"All",Missing:"Missing",Space:"Space"},po=(co={},(0,ht.Z)(co,fo.All,"All"),(0,ht.Z)(co,fo.Missing,"Degraded"),(0,ht.Z)(co,fo.Space,"Out of Space"),co),go={groups:"Groups",nodes:"Nodes"},vo=Bi("storage","FETCH_STORAGE"),mo="storage/SET_INITIAL",_o="storage/SET_FILTER",yo="storage/SET_USAGE_FILTER",bo="storage/SET_VISIBLE_GROUPS",wo="storage/SET_STORAGE_TYPE",Co="storage/SET_NODES_UPTIME_FILTER",ko="storage/SET_DATA_WAS_NOT_LOADED",So={loading:!0,wasLoaded:!1,filter:"",usageFilter:[],visible:fo.Missing,nodesUptimeFilter:_r.All,type:go.groups};var xo=function(e){var t,n;return{total:(null===(t=e.storage.data)||void 0===t?void 0:t.TotalGroups)||0,found:(null===(n=e.storage.data)||void 0===n?void 0:n.FoundGroups)||0}},Lo=function(e){var t;return null===(t=e.storage.data)||void 0===t?void 0:t.Nodes},Eo=function(e){var t,n;return{total:(null===(t=e.storage.data)||void 0===t?void 0:t.TotalNodes)||0,found:(null===(n=e.storage.data)||void 0===n?void 0:n.FoundNodes)||0}},No=function(e){return e.storage.type},Do={Green:1,Yellow:100,Orange:1e4,Red:1e6},Mo=sr([function(e){var t;return null===(t=e.storage.data)||void 0===t?void 0:t.StoragePools}],(function(e){return Zt().reduce(e,(function(e,t){var n=Zt().reduce(t.Groups,(function(e,n){var i,r=Zt().filter(n.VDisks,(function(e){return!e.Replicated||"Normal"!==e.PDisk.State||"OK"!==e.VDiskState})).length,o=Zt().reduce(n.VDisks,(function(e,t){return t.DiskSpace&&(e+=Do[t.DiskSpace]),e}),0),a=Zt().reduce(n.VDisks,(function(e,t){return e+(Number(t.AllocatedSize)||0)}),0),s=Zt().reduce(n.VDisks,(function(e,t){var n;return e+(Number(t.AvailableSize)||Number(null===(n=t.PDisk)||void 0===n?void 0:n.AvailableSize)||0)+(Number(t.AllocatedSize)||0)}),0),u=Zt().reduce(n.VDisks,(function(e,t){return e+(Number(t.ReadThroughput)||0)}),0),l=Zt().reduce(n.VDisks,(function(e,t){return e+(Number(t.WriteThroughput)||0)}),0),c=null===(i=n.VDisks)||void 0===i?void 0:i.reduce((function(e,t){var n=ho(t.PDisk||{});return!n||n!==e&&""!==e?"Mixed":n}),"");return[].concat((0,zt.Z)(e),[pt(pt({},n),{},{Read:u,Write:l,PoolName:t.Name,Used:a,Limit:s,Missing:r,UsedSpaceFlag:o,Type:c||null})])}),[]);return[].concat((0,zt.Z)(e),(0,zt.Z)(n))}),[])})),To=sr([Lo],(function(e){return Zt().map(e,(function(e){var t,n=null!==(t=e.SystemState)&&void 0!==t?t:{},i=Zt().filter(e.PDisks,(function(e){return"Normal"!==e.State})).length;return{NodeId:e.NodeId,SystemState:n.SystemState,DataCenter:n.DataCenter,Rack:n.Rack,Host:n.Host,Endpoints:n.Endpoints,uptime:Ir(n.StartTime),StartTime:n.StartTime,PDisks:e.PDisks,Missing:i}}))})),Oo=sr(Lo,(function(e,t){return t}),(function(e,t,n){return n}),(function(e,t,n){var i,r=null===e||void 0===e?void 0:e.find((function(e){return e.NodeId===t}));return null===r||void 0===r||null===(i=r.VDisks)||void 0===i?void 0:i.filter((function(e){return e.PDiskId===n})).map((function(e){return pt(pt({},e),{},{NodeId:t})}))})),Io=sr([No,Mo,To],(function(e,t,n){return e===go.groups?t:n})),Ao=sr([function(e){return e.storage.visible},Io],(function(e,t){return e===fo.All?t:e===fo.Missing?Zt().filter(t,(function(e){return e.Missing>0})):Zt().filter(t,(function(e){return e.UsedSpaceFlag>100}))})),Ro=sr([function(e){return e.storage.filter},function(e){return e.storage.usageFilter},No,function(e){return e.storage.nodesUptimeFilter},Ao],(function(e,t,n,i,r){var o=r;return o=function(e,t,n){var i=n.trim().toLowerCase();return i?e.filter((function(e){var n;return t===go.groups?e.PoolName.toLowerCase().includes(i)||(null===(n=e.GroupID)||void 0===n?void 0:n.toString().includes(i)):e.NodeId.toString().includes(i)||e.Host.toLowerCase().includes(i)})):e}(o,n,e),o=function(e,t){return Array.isArray(t)&&0!==t.length?e.filter((function(e){var n=lo(e,5);return t.some((function(e){return Number(e)<=n&&n<Number(e)+5}))})):e}(o,t),n===go.nodes&&(o=Ur(o,i)),o})),Po=sr(Ao,(function(e){var t={};return e.forEach((function(e){var n=lo(e,5);Object.prototype.hasOwnProperty.call(t,n)||(t[n]=0),t[n]+=1})),Object.entries(t).map((function(e){var t=(0,Ti.Z)(e,2);return{threshold:t[0],count:t[1]}})).sort((function(e,t){return t.threshold-e.threshold}))})),Zo=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:So,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case vo.REQUEST:return pt(pt({},e),{},{loading:!0});case vo.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case vo.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:pt(pt({},e),{},{error:t.error,loading:!1,wasLoaded:!0});case mo:return pt({},So);case _o:return pt(pt({},e),{},{filter:t.data});case yo:return pt(pt({},e),{},{usageFilter:t.data});case bo:return pt(pt({},e),{},{visible:t.data,wasLoaded:!1,error:void 0});case Co:return pt(pt({},e),{},{nodesUptimeFilter:t.data});case wo:return pt(pt({},e),{},{type:t.data,filter:"",usageFilter:[],wasLoaded:!1,error:void 0});case ko:return pt(pt({},e),{},{wasLoaded:!1});default:return e}},Fo=Bi("node","FETCH_NODE"),jo=Bi("node","FETCH_NODE_STRUCTURE"),Ho="node/RESET_NODE",Bo=function(e){return Wi({request:window.api.getNodeInfo(e),actions:Fo})},zo=function(e){return Wi({request:window.api.getStorageInfo({nodeId:e},{concurrentId:"getNodeStructure"}),actions:jo})};var Wo=sr([function(e){var t,n,i;return null===(t=e.node)||void 0===t||null===(n=t.data)||void 0===n||null===(i=n.SystemStateInfo)||void 0===i?void 0:i[0].NodeId},function(e){var t;return null===(t=e.node)||void 0===t?void 0:t.nodeStructure}],(function(e,t){var n=null===t||void 0===t?void 0:t.StoragePools,i={};null===n||void 0===n||n.forEach((function(t){var n=t.Groups;null===n||void 0===n||n.forEach((function(t){var n,r=null===(n=t.VDisks)||void 0===n?void 0:n.filter((function(t){return t.NodeId===e}));null===r||void 0===r||r.forEach((function(e){var t,n=Cr(e.VDiskId),r=null===(t=e.PDisk)||void 0===t?void 0:t.PDiskId;i[String(r)]||(i[String(r)]=pt({vDisks:{}},e.PDisk)),i[String(r)].vDisks[n]=e}))}))}));var r=Object.keys(i).reduce((function(e,t){var n=i[t].vDisks,r=Object.keys(n).reduce((function(e,t,i){return e.push(pt(pt({},n[t]),{},{id:t,order:i})),e}),[]);return e[t]=pt(pt({},i[t]),{},{vDisks:r}),e}),{});return r})),Vo=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{data:{},loading:!0,wasLoaded:!1,nodeStructure:{},loadingStructure:!0,wasLoadedStructure:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Fo.REQUEST:return pt(pt({},e),{},{loading:!0});case Fo.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case Fo.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case jo.REQUEST:return pt(pt({},e),{},{loadingStructure:!0});case jo.SUCCESS:return pt(pt({},e),{},{nodeStructure:t.data,loadingStructure:!1,wasLoadedStructure:!0,errorStructure:void 0});case jo.FAILURE:return pt(pt({},e),{},{errorStructure:t.error,loadingStructure:!1});case Ho:return pt(pt({},e),{},{data:{},wasLoaded:!1,nodeStructure:{},wasLoadedStructure:!1});default:return e}},Yo=Bi("PDISK","FETCH_PDISK"),Uo={loading:!0,wasLoaded:!1,data:void 0},Ko=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Uo,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Yo.REQUEST:return pt(pt({},e),{},{loading:!0});case Yo.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case Yo.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case"CLEAR_STORE":return Uo;default:return e}},qo=Bi("VDISK","FETCH_VDISK"),Go={loading:!0,wasLoaded:!1,data:void 0},$o=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Go,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case qo.REQUEST:return pt(pt({},e),{},{loading:!0});case qo.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case qo.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case"CLEAR_STORE":return Go;default:return e}},Qo=Bi("GROUP","FETCH_GROUP"),Xo={loading:!0,wasLoaded:!1,data:void 0},Jo=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Xo,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Qo.REQUEST:return pt(pt({},e),{},{loading:!0});case Qo.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case Qo.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case"CLEAR_STORE":return Xo;default:return e}},ea=n(34495),ta=n.n(ea),na=n(18878),ia=n.n(na),ra=n(2556),oa=(0,ct.Z)("info-viewer"),aa=function(e){var t=e.title,n=e.info,i=e.dots,r=void 0===i||i,o=e.size,a=e.className,s=e.multilineLabels,u=e.renderEmptyState;return n&&n.length||!u?(0,ra.jsxs)("div",{className:oa({size:o},a),children:[t&&(0,ra.jsx)("div",{className:oa("title"),children:t}),n&&n.length>0?(0,ra.jsx)("div",{className:oa("items"),children:n.map((function(e,t){return(0,ra.jsxs)("div",{className:oa("row"),children:[(0,ra.jsxs)("div",{className:oa("label"),children:[(0,ra.jsx)("div",{className:oa("label-text",{multiline:s}),children:e.label}),r&&(0,ra.jsx)("div",{className:oa("dots")})]}),(0,ra.jsx)("div",{className:oa("value"),children:e.value})]},t)}))}):(0,ra.jsxs)(ra.Fragment,{children:["No ",t," data"]})]}):(0,ra.jsx)(ra.Fragment,{children:u({title:t,size:o})})};function sa(e,t){var n;return null!==(n=t[e])&&void 0!==n?n:e}function ua(e,t,n,i){var r=n[e]||i;return r?r(t):t}function la(e){var t=e.values,n=e.labels,i=e.defaultValueFormatter;return function(e,r){return{label:sa(e,n||{}),value:ua(e,r,t||{},i)}}}var ca=function(e,t){return t?Object.entries(t).map((function(t){var n=(0,Ti.Z)(t,2),i=n[0],r=n[1];return e(i,r)})).filter((function(e){var t=e.value;return Boolean(t)})):[]},da=(0,ct.Z)("ydb-node-endpoints-tooltip"),ha=function(e){var t=e.data,n=[];return null!==t&&void 0!==t&&t.Rack&&n.push({label:"Rack",value:t.Rack}),null!==t&&void 0!==t&&t.Endpoints&&t.Endpoints.length&&t.Endpoints.forEach((function(e){var t=e.Name,i=e.Address;t&&i&&n.push({label:t,value:i})})),(0,ra.jsx)(aa,{className:da(null),info:n,dots:!1,size:"s"})},fa=(0,ct.Z)("pool-tooltip"),pa=function(e){var t=e.data,n=(100*t.Usage).toFixed(2);return t&&(0,ra.jsx)("div",{className:fa(),children:(0,ra.jsx)("table",{children:(0,ra.jsxs)("tbody",{children:[(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:fa("label"),children:"Pool"}),(0,ra.jsx)("td",{children:t.Name})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:fa("label"),children:"Usage"}),(0,ra.jsxs)("td",{children:[n," %"]})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:fa("label"),children:"Threads"}),(0,ra.jsx)("td",{children:t.Threads})]})]})})})},ga=(0,ct.Z)("tablet-tooltip"),va=function(e){var t=e.data,n=e.additionalData;return t&&(0,ra.jsx)("div",{className:ga(),children:(0,ra.jsx)("table",{children:(0,ra.jsxs)("tbody",{children:[(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ga("label"),children:"Tablet"}),(0,ra.jsx)("td",{className:ga("value"),children:t.TabletId})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ga("label"),children:"NodeID"}),(0,ra.jsx)("td",{className:ga("value"),children:t.NodeId})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ga("label"),children:"State"}),(0,ra.jsx)("td",{className:ga("value"),children:t.State})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ga("label"),children:"Type"}),(0,ra.jsx)("td",{className:ga("value"),children:t.Type})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ga("label"),children:"Uptime"}),(0,ra.jsx)("td",{className:ga("value"),children:Ir(t.ChangeTime)})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ga("label"),children:"Generation"}),(0,ra.jsx)("td",{className:ga("value"),children:t.Generation})]}),n&&(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ga("label"),children:n.name}),(0,ra.jsx)("td",{className:ga("value"),children:n.value})]})]})})})},ma=(0,ct.Z)("node-tootltip"),_a=function(e){var t=e.data;return t&&(0,ra.jsx)("div",{className:ma(),children:(0,ra.jsx)("table",{children:(0,ra.jsxs)("tbody",{children:[(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ma("label"),children:"ID"}),(0,ra.jsx)("td",{className:ma("value"),children:t.nodeId||"?"})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ma("label"),children:"Rack"}),(0,ra.jsx)("td",{className:ma("value"),children:t.rack||"?"})]}),t.connected&&t.capacity&&(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:ma("label"),children:"Net"}),(0,ra.jsx)("td",{className:ma("value"),children:"".concat(t.connected," / ").concat(t.capacity)})]})]})})})},ya=(0,ct.Z)("tabletsOverall-tooltip"),ba=function(e){var t=e.data;return t&&(0,ra.jsx)("div",{className:ya(),children:(0,ra.jsx)("table",{children:(0,ra.jsx)("tbody",{children:t.map((function(e,t){return(0,ra.jsxs)("tr",{children:[(0,ra.jsxs)("td",{className:ya("label"),children:[e.color,":"]}),(0,ra.jsx)("td",{className:ya("value"),children:"".concat(e.value,"/").concat(e.total," (").concat(e.percents.toFixed(2),"%)")})]},t)}))})})})},wa=(0,ct.Z)("histogram-tooltip"),Ca=function(e){var t=e.data;return t&&(0,ra.jsx)("div",{className:wa(),children:(0,ra.jsx)("table",{children:(0,ra.jsxs)("tbody",{children:[(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:wa("label"),children:"Count"}),(0,ra.jsx)("td",{className:wa("value"),children:t.count||"?"})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:wa("label"),children:"From"}),(0,ra.jsx)("td",{className:wa("value"),children:t.leftBound||"?"})]}),(0,ra.jsxs)("tr",{children:[(0,ra.jsx)("td",{className:wa("label"),children:"To"}),(0,ra.jsx)("td",{className:wa("value"),children:t.rightBound||"?"})]})]})})})},ka=(0,ct.Z)("cell-tooltip"),Sa=(0,ct.Z)("json-tooltip"),xa={pool:function(e){return(0,ra.jsx)(pa,{data:e})},tablet:function(e,t){return(0,ra.jsx)(va,{data:e,additionalData:t})},node:function(e){return(0,ra.jsx)(_a,{data:e})},nodeEndpoints:function(e){return(0,ra.jsx)(ha,{data:e})},tabletsOverall:function(e){return(0,ra.jsx)(ba,{data:e})},histogram:function(e){return(0,ra.jsx)(Ca,{data:e})},cell:function(e){return(0,ra.jsx)("div",{className:ka(),children:e})},json:function(e){return(0,ra.jsx)("div",{className:Sa(),children:(0,ra.jsx)(ia(),{data:e,search:!1,isExpanded:function(){return!0},className:Sa("inspector")})})}},La="tooltip/HIDE_TOOLTIP",Ea="tooltip/UPDATE_REF",Na={toolTipVisible:!1,currentHoveredRef:void 0,data:void 0,templateType:"pool",template:xa.pool},Da=function(){return{type:La}},Ma=function(e,t,n,i,r){return{type:Ea,node:e,data:t,templateType:n,additionalData:i,positions:r}},Ta=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Na,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case La:return pt(pt({},e),{},{currentHoveredRef:void 0,toolTipVisible:!1});case Ea:return"cell"===t.templateType&&ta()(t.node,e.currentHoveredRef)?pt(pt({},e),{},{currentHoveredRef:void 0,toolTipVisible:!1}):pt(pt({},e),{},{toolTipVisible:!0,currentHoveredRef:t.node,positions:t.positions,data:t.data,additionalData:t.additionalData,templateType:t.templateType,template:xa[t.templateType]});default:return e}},Oa=Bi("tablets","FETCH_TABLETS"),Ia="tablets/CLEAR_WAS_LOADING_TABLETS",Aa="tablets/SET_STATE_FILTER",Ra="tablets/SET_TYPE_FILTER",Pa={loading:!0,wasLoaded:!1,stateFilter:[],typeFilter:[]};function Za(e){return Wi({request:window.api.getTabletsInfo(e),actions:Oa})}var Fa,ja,Ha,Ba,za,Wa,Va,Ya,Ua,Ka,qa,Ga,$a,Qa,Xa,Ja,es,ts,ns,is,rs,os,as,ss,us,ls,cs,ds,hs,fs,ps,gs=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Pa,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Oa.REQUEST:return pt(pt({},e),{},{loading:!0});case Oa.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Oa.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case Ia:return pt(pt({},e),{},{wasLoaded:!1,loading:!0});case Aa:return pt(pt({},e),{},{stateFilter:t.data});case Ra:return pt(pt({},e),{},{typeFilter:t.data});default:return e}};!function(e){e.StatusSuccess="StatusSuccess",e.StatusAccepted="StatusAccepted",e.StatusPathDoesNotExist="StatusPathDoesNotExist",e.StatusPathIsNotDirectory="StatusPathIsNotDirectory",e.StatusAlreadyExists="StatusAlreadyExists",e.StatusSchemeError="StatusSchemeError",e.StatusNameConflict="StatusNameConflict",e.StatusInvalidParameter="StatusInvalidParameter",e.StatusMultipleModifications="StatusMultipleModifications",e.StatusReadOnly="StatusReadOnly",e.StatusTxIdNotExists="StatusTxIdNotExists",e.StatusTxIsNotCancellable="StatusTxIsNotCancellable",e.StatusAccessDenied="StatusAccessDenied",e.StatusNotAvailable="StatusNotAvailable",e.StatusPreconditionFailed="StatusPreconditionFailed",e.StatusRedirectDomain="StatusRedirectDomain",e.StatusQuotaExceeded="StatusQuotaExceeded",e.StatusResourceExhausted="StatusResourceExhausted"}(Fa||(Fa={})),function(e){e.UNKNOWN="UNKNOWN",e.USER="USER",e.GROUP="GROUP"}(ja||(ja={})),function(e){e.ECdcStreamModeInvalid="ECdcStreamModeInvalid",e.ECdcStreamModeKeysOnly="ECdcStreamModeKeysOnly",e.ECdcStreamModeUpdate="ECdcStreamModeUpdate",e.ECdcStreamModeNewImage="ECdcStreamModeNewImage",e.ECdcStreamModeOldImage="ECdcStreamModeOldImage",e.ECdcStreamModeNewAndOldImages="ECdcStreamModeNewAndOldImages"}(Ha||(Ha={})),function(e){e.ECdcStreamFormatInvalid="ECdcStreamFormatInvalid",e.ECdcStreamFormatProto="ECdcStreamFormatProto",e.ECdcStreamFormatJson="ECdcStreamFormatJson"}(Ba||(Ba={})),function(e){e.ECdcStreamStateInvalid="ECdcStreamStateInvalid",e.ECdcStreamStateReady="ECdcStreamStateReady",e.ECdcStreamStateDisabled="ECdcStreamStateDisabled"}(za||(za={})),function(e){e.EPathTypeInvalid="EPathTypeInvalid",e.EPathTypeDir="EPathTypeDir",e.EPathTypeTable="EPathTypeTable",e.EPathTypePersQueueGroup="EPathTypePersQueueGroup",e.EPathTypeSubDomain="EPathTypeSubDomain",e.EPathTypeTableIndex="EPathTypeTableIndex",e.EPathTypeExtSubDomain="EPathTypeExtSubDomain",e.EPathTypeColumnStore="EPathTypeColumnStore",e.EPathTypeColumnTable="EPathTypeColumnTable",e.EPathTypeCdcStream="EPathTypeCdcStream"}(Wa||(Wa={})),function(e){e.EPathSubTypeEmpty="EPathSubTypeEmpty",e.EPathSubTypeSyncIndexImplTable="EPathSubTypeSyncIndexImplTable",e.EPathSubTypeAsyncIndexImplTable="EPathSubTypeAsyncIndexImplTable",e.EPathSubTypeStreamImpl="EPathSubTypeStreamImpl"}(Va||(Va={})),function(e){e.EPathStateNotExist="EPathStateNotExist",e.EPathStateNoChanges="EPathStateNoChanges",e.EPathStateCreate="EPathStateCreate",e.EPathStateAlter="EPathStateAlter",e.EPathStateDrop="EPathStateDrop",e.EPathStateCopying="EPathStateCopying",e.EPathStateBackup="EPathStateBackup",e.EPathStateUpgrade="EPathStateUpgrade",e.EPathStateMigrated="EPathStateMigrated",e.EPathStateRestore="EPathStateRestore",e.EPathStateMoving="EPathStateMoving"}(Ya||(Ya={})),function(e){e.EIndexTypeInvalid="EIndexTypeInvalid",e.EIndexTypeGlobal="EIndexTypeGlobal",e.EIndexTypeGlobalAsync="EIndexTypeGlobalAsync"}(Ua||(Ua={})),function(e){e.EIndexStateInvalid="EIndexStateInvalid",e.EIndexStateReady="EIndexStateReady",e.EIndexStateNotReady="EIndexStateNotReady",e.EIndexStateWriteOnly="EIndexStateWriteOnly"}(Ka||(Ka={})),function(e){e.METERING_MODE_RESERVED_CAPACITY="METERING_MODE_RESERVED_CAPACITY",e.METERING_MODE_REQUEST_UNITS="METERING_MODE_REQUEST_UNITS"}(qa||(qa={})),function(e){e.COLUMN_ENGINE_NONE="COLUMN_ENGINE_NONE",e.COLUMN_ENGINE_REPLACING_TIMESERIES="COLUMN_ENGINE_REPLACING_TIMESERIES"}(Ga||(Ga={})),function(e){e.ColumnCodecPlain="ColumnCodecPlain",e.ColumnCodecLZ4="ColumnCodecLZ4",e.ColumnCodecZSTD="ColumnCodecZSTD"}($a||($a={})),function(e){e.UNIT_AUTO="UNIT_AUTO",e.UNIT_SECONDS="UNIT_SECONDS",e.UNIT_MILLISECONDS="UNIT_MILLISECONDS",e.UNIT_MICROSECONDS="UNIT_MICROSECONDS",e.UNIT_NANOSECONDS="UNIT_NANOSECONDS"}(Qa||(Qa={})),function(e){e.HASH_FUNCTION_MODULO_N="HASH_FUNCTION_MODULO_N",e.HASH_FUNCTION_CLOUD_LOGS="HASH_FUNCTION_CLOUD_LOGS"}(Xa||(Xa={})),function(e){e.UnknownTenantType="UnknownTenantType",e.Domain="Domain",e.Dedicated="Dedicated",e.Shared="Shared",e.Serverless="Serverless"}(Ja||(Ja={})),function(e){e.STATE_UNSPECIFIED="STATE_UNSPECIFIED",e.CREATING="CREATING",e.RUNNING="RUNNING",e.REMOVING="REMOVING",e.PENDING_RESOURCES="PENDING_RESOURCES",e.CONFIGURING="CONFIGURING"}(es||(es={})),function(e){e.TABLET_VOLATILE_STATE_UNKNOWN="TABLET_VOLATILE_STATE_UNKNOWN",e.TABLET_VOLATILE_STATE_STOPPED="TABLET_VOLATILE_STATE_STOPPED",e.TABLET_VOLATILE_STATE_BOOTING="TABLET_VOLATILE_STATE_BOOTING",e.TABLET_VOLATILE_STATE_STARTING="TABLET_VOLATILE_STATE_STARTING",e.TABLET_VOLATILE_STATE_RUNNING="TABLET_VOLATILE_STATE_RUNNING",e._TABLET_VOLATILE_STATE_BLOCKED="_TABLET_VOLATILE_STATE_BLOCKED"}(ts||(ts={}));var vs=(ns={},(0,ht.Z)(ns,Va.EPathSubTypeSyncIndexImplTable,"index_table"),(0,ht.Z)(ns,Va.EPathSubTypeAsyncIndexImplTable,"index_table"),(0,ht.Z)(ns,Va.EPathSubTypeStreamImpl,void 0),(0,ht.Z)(ns,Va.EPathSubTypeEmpty,void 0),ns),ms=(is={},(0,ht.Z)(is,Wa.EPathTypeInvalid,void 0),(0,ht.Z)(is,Wa.EPathTypeSubDomain,"database"),(0,ht.Z)(is,Wa.EPathTypeExtSubDomain,"database"),(0,ht.Z)(is,Wa.EPathTypeDir,"directory"),(0,ht.Z)(is,Wa.EPathTypeColumnStore,"directory"),(0,ht.Z)(is,Wa.EPathTypeTable,"table"),(0,ht.Z)(is,Wa.EPathTypeTableIndex,"index"),(0,ht.Z)(is,Wa.EPathTypeColumnTable,"column_table"),(0,ht.Z)(is,Wa.EPathTypeCdcStream,"topic"),(0,ht.Z)(is,Wa.EPathTypePersQueueGroup,"topic"),is),_s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Wa.EPathTypeDir,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"directory";return t&&vs[t]||ms[e]||n},ys=(rs={},(0,ht.Z)(rs,Va.EPathSubTypeSyncIndexImplTable,"Secondary Index Table"),(0,ht.Z)(rs,Va.EPathSubTypeAsyncIndexImplTable,"Secondary Index Table"),(0,ht.Z)(rs,Va.EPathSubTypeStreamImpl,void 0),(0,ht.Z)(rs,Va.EPathSubTypeEmpty,void 0),rs),bs=(os={},(0,ht.Z)(os,Wa.EPathTypeInvalid,void 0),(0,ht.Z)(os,Wa.EPathTypeSubDomain,"Database"),(0,ht.Z)(os,Wa.EPathTypeExtSubDomain,"Database"),(0,ht.Z)(os,Wa.EPathTypeDir,"Directory"),(0,ht.Z)(os,Wa.EPathTypeTable,"Table"),(0,ht.Z)(os,Wa.EPathTypeTableIndex,"Secondary Index"),(0,ht.Z)(os,Wa.EPathTypeColumnStore,"Tablestore"),(0,ht.Z)(os,Wa.EPathTypeColumnTable,"Columntable"),(0,ht.Z)(os,Wa.EPathTypeCdcStream,"Changefeed"),(0,ht.Z)(os,Wa.EPathTypePersQueueGroup,"Topic"),os),ws=(as={},(0,ht.Z)(as,Ja.UnknownTenantType,"Database"),(0,ht.Z)(as,Ja.Domain,"Cluster Root"),(0,ht.Z)(as,Ja.Dedicated,"Dedicated Database"),(0,ht.Z)(as,Ja.Shared,"Shared Database"),(0,ht.Z)(as,Ja.Serverless,"Serverless Database"),as),Cs=(ss={},(0,ht.Z)(ss,Wa.EPathTypeTable,!0),(0,ht.Z)(ss,Wa.EPathTypeColumnTable,!0),(0,ht.Z)(ss,Wa.EPathTypeInvalid,!1),(0,ht.Z)(ss,Wa.EPathTypeDir,!1),(0,ht.Z)(ss,Wa.EPathTypeSubDomain,!1),(0,ht.Z)(ss,Wa.EPathTypeTableIndex,!1),(0,ht.Z)(ss,Wa.EPathTypeExtSubDomain,!1),(0,ht.Z)(ss,Wa.EPathTypeColumnStore,!1),(0,ht.Z)(ss,Wa.EPathTypeCdcStream,!1),(0,ht.Z)(ss,Wa.EPathTypePersQueueGroup,!1),ss),ks=function(e){var t;return null!==(t=e&&Cs[e])&&void 0!==t&&t},Ss=(us={},(0,ht.Z)(us,Va.EPathSubTypeSyncIndexImplTable,!0),(0,ht.Z)(us,Va.EPathSubTypeAsyncIndexImplTable,!0),(0,ht.Z)(us,Va.EPathSubTypeStreamImpl,!1),(0,ht.Z)(us,Va.EPathSubTypeEmpty,!1),us),xs=function(e){var t;return null!==(t=e&&Ss[e])&&void 0!==t&&t},Ls=(ls={},(0,ht.Z)(ls,Wa.EPathTypeColumnStore,!0),(0,ht.Z)(ls,Wa.EPathTypeColumnTable,!0),(0,ht.Z)(ls,Wa.EPathTypeInvalid,!1),(0,ht.Z)(ls,Wa.EPathTypeDir,!1),(0,ht.Z)(ls,Wa.EPathTypeTable,!1),(0,ht.Z)(ls,Wa.EPathTypeSubDomain,!1),(0,ht.Z)(ls,Wa.EPathTypeTableIndex,!1),(0,ht.Z)(ls,Wa.EPathTypeExtSubDomain,!1),(0,ht.Z)(ls,Wa.EPathTypeCdcStream,!1),(0,ht.Z)(ls,Wa.EPathTypePersQueueGroup,!1),ls),Es=function(e){var t;return null!==(t=e&&Ls[e])&&void 0!==t&&t},Ns=(cs={},(0,ht.Z)(cs,Wa.EPathTypeSubDomain,!0),(0,ht.Z)(cs,Wa.EPathTypeExtSubDomain,!0),(0,ht.Z)(cs,Wa.EPathTypeInvalid,!1),(0,ht.Z)(cs,Wa.EPathTypeDir,!1),(0,ht.Z)(cs,Wa.EPathTypeColumnStore,!1),(0,ht.Z)(cs,Wa.EPathTypeColumnTable,!1),(0,ht.Z)(cs,Wa.EPathTypeTable,!1),(0,ht.Z)(cs,Wa.EPathTypeTableIndex,!1),(0,ht.Z)(cs,Wa.EPathTypeCdcStream,!1),(0,ht.Z)(cs,Wa.EPathTypePersQueueGroup,!1),cs),Ds=function(e){var t;return null!==(t=e&&Ns[e])&&void 0!==t&&t},Ms=function(e){return e===Wa.EPathTypeCdcStream},Ts=(ds={},(0,ht.Z)(ds,Wa.EPathTypeCdcStream,!0),(0,ht.Z)(ds,Wa.EPathTypePersQueueGroup,!1),(0,ht.Z)(ds,Wa.EPathTypeInvalid,!1),(0,ht.Z)(ds,Wa.EPathTypeColumnStore,!1),(0,ht.Z)(ds,Wa.EPathTypeColumnTable,!1),(0,ht.Z)(ds,Wa.EPathTypeDir,!1),(0,ht.Z)(ds,Wa.EPathTypeTable,!1),(0,ht.Z)(ds,Wa.EPathTypeSubDomain,!1),(0,ht.Z)(ds,Wa.EPathTypeTableIndex,!1),(0,ht.Z)(ds,Wa.EPathTypeExtSubDomain,!1),ds),Os=function(e){var t;return null!==(t=e&&Ts[e])&&void 0!==t&&t},Is=(hs={},(0,ht.Z)(hs,Va.EPathSubTypeSyncIndexImplTable,!0),(0,ht.Z)(hs,Va.EPathSubTypeAsyncIndexImplTable,!0),(0,ht.Z)(hs,Va.EPathSubTypeStreamImpl,!1),(0,ht.Z)(hs,Va.EPathSubTypeEmpty,!1),hs),As=(fs={},(0,ht.Z)(fs,Wa.EPathTypeCdcStream,!0),(0,ht.Z)(fs,Wa.EPathTypePersQueueGroup,!0),(0,ht.Z)(fs,Wa.EPathTypeInvalid,!1),(0,ht.Z)(fs,Wa.EPathTypeColumnStore,!1),(0,ht.Z)(fs,Wa.EPathTypeColumnTable,!1),(0,ht.Z)(fs,Wa.EPathTypeDir,!1),(0,ht.Z)(fs,Wa.EPathTypeTable,!1),(0,ht.Z)(fs,Wa.EPathTypeSubDomain,!1),(0,ht.Z)(fs,Wa.EPathTypeTableIndex,!1),(0,ht.Z)(fs,Wa.EPathTypeExtSubDomain,!1),fs),Rs=function(e,t){var n;return null!==(n=t&&Is[t]||e&&As[e])&&void 0!==n&&n},Ps=(ps={},(0,ht.Z)(ps,Wa.EPathTypeCdcStream,!0),(0,ht.Z)(ps,Wa.EPathTypePersQueueGroup,!0),(0,ht.Z)(ps,Wa.EPathTypeInvalid,!1),(0,ht.Z)(ps,Wa.EPathTypeColumnStore,!1),(0,ht.Z)(ps,Wa.EPathTypeColumnTable,!1),(0,ht.Z)(ps,Wa.EPathTypeDir,!1),(0,ht.Z)(ps,Wa.EPathTypeTable,!1),(0,ht.Z)(ps,Wa.EPathTypeSubDomain,!1),(0,ht.Z)(ps,Wa.EPathTypeTableIndex,!1),(0,ht.Z)(ps,Wa.EPathTypeExtSubDomain,!1),ps),Zs=function(e){var t;return null!==(t=e&&Ps[e])&&void 0!==t&&t},Fs=Bi("schema","FETCH_SCHEMA"),js="schema/PRELOAD_SCHEMAS",Hs="schema/SET_SCHEMA",Bs="schema/SET_SHOW_PREVIEW",zs="schema/ENABLE_AUTOREFRESH",Ws="schema/DISABLE_AUTOREFRESH",Vs="schema/RESET_LOADING_STATE",Ys={loading:!0,wasLoaded:!1,data:{},currentSchemaPath:void 0,autorefresh:!1,showPreview:!1};function Us(e){var t=e.path;return Wi({request:window.api.getSchema({path:t}),actions:Fs,dataHandler:function(e){var t={};return e.Path&&(t[e.Path]=e),{path:e.Path,currentSchema:e,data:t}}})}function Ks(e){return{type:Hs,data:e}}function qs(){return{type:Ws}}function Gs(e){return{type:Bs,data:e}}function $s(){return{type:Vs}}var Qs=sr([function(e,t){return t},function(e,t,n){return n},function(e,t){var n,i;return t?null===(n=e.schema.data[t])||void 0===n||null===(i=n.PathDescription)||void 0===i?void 0:i.Children:void 0}],(function(e,t,n){return Os(t)?null===n||void 0===n?void 0:n.map((function(t){var n=t.Name;return e+"/"+n})):void 0})),Xs=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ys,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Fs.REQUEST:return pt(pt({},e),{},{loading:!0});case Fs.SUCCESS:var n=!e.currentSchemaPath||e.currentSchemaPath===t.data.path,i=pt(pt({},e.data),t.data.data);return pt(pt({},e),{},n?{error:void 0,data:i,currentSchema:t.data.currentSchema,currentSchemaPath:t.data.path,loading:!1,wasLoaded:!0}:{data:i});case Fs.FAILURE:var r;return null!==(r=t.error)&&void 0!==r&&r.isCancelled?e:pt(pt({},e),{},{error:t.error,loading:!1});case js:return pt(pt({},e),{},{data:pt(pt({},t.data),e.data)});case Hs:return pt(pt({},e),{},{currentSchemaPath:t.data,wasLoaded:!1});case zs:return pt(pt({},e),{},{autorefresh:!0});case Ws:return pt(pt({},e),{},{autorefresh:!1});case Bs:return pt(pt({},e),{},{showPreview:t.data});case Vs:return pt(pt({},e),{},{wasLoaded:Ys.wasLoaded});default:return e}},Js=Bi("host","FETCH_HOST"),eu={loading:!0,wasLoaded:!1,data:{}};var tu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eu,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Js.REQUEST:return pt(pt({},e),{},{loading:!0});case Js.SUCCESS:var n;return pt(pt({},e),{},{data:null===(n=t.data.SystemStateInfo)||void 0===n?void 0:n[0],loading:!1,wasLoaded:!0,error:void 0});case Js.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});default:return e}},nu=Bi("ALL_NODES_NETWORK","FETCH_ALL_NODES_NETWORK"),iu="network/SET_DATA_WAS_NOT_LOADED",ru={data:{},loading:!1,wasLoaded:!1},ou=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ru,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case nu.REQUEST:return pt(pt({},e),{},{loading:!0});case nu.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case nu.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case iu:return pt(pt({},e),{},{wasLoaded:!1});default:return e}},au=Bi("pool","FETCH_POOL");var su=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!0,wasLoaded:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case au.REQUEST:return pt(pt({},e),{},{loading:!0});case au.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case au.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});default:return e}},uu=Bi("tenants","FETCH_TENANTS"),lu={loading:!0,wasLoaded:!1,data:{}};var cu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:lu,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case uu.REQUEST:return pt(pt({},e),{},{loading:!0});case uu.SUCCESS:return pt(pt({},e),{},{tenants:t.data,loading:!1,wasLoaded:!0,error:void 0});case uu.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});default:return e}},du=Bi("TABLET","FETCH_TABLET"),hu=Bi("TABLET","FETCH_TABLET_DESCRIBE"),fu={loading:!1,tenantPath:"-"},pu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:fu,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case du.REQUEST:return pt(pt({},e),{},{loading:!0});case du.SUCCESS:var n=t.data,i=n.tabletData,r=n.historyData,o=i.TabletId;return pt(pt({},e),{},{id:o,data:i,history:r,loading:!1,error:void 0});case du.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case hu.SUCCESS:var a=t.data.tenantPath;return pt(pt({},e),{},{tenantPath:a,error:void 0});default:return e}},gu=JSON.parse('{"daysHours":"{{days}}d {{hours}}h","hoursMin":"{{hours}}h {{minutes}}m","minSec":"{{minutes}}m {{seconds}}s","secMs":"{{seconds}}s {{ms}}ms","ms":"{{ms}}ms"}'),vu=JSON.parse('{"daysHours":"{{days}}\u0434 {{hours}}\u0447","hoursMin":"{{hours}}\u0447 {{minutes}}\u043c","minSec":"{{minutes}}\u043c {{seconds}}\u0441","secMs":"{{seconds}}\u0441 {{ms}}\u043c\u0441","ms":"{{ms}}\u043c\u0441"}'),mu="ydb-time-parsers";gr.registerKeyset(ar.En,mu,gu),gr.registerKeyset(ar.Ru,mu,vu);var _u=gr.keyset(mu),yu=function(e){var t=e%1e3,n=Math.floor(e/1e3),i=Math.floor(n/En);n%=En;var r=Math.floor(n/Ln);n%=Ln;var o=Math.floor(n/60),a=(n%=60,{days:i,hours:r,minutes:o,seconds:n,ms:t});return _u(i>0?"daysHours":r>0?"hoursMin":o>0?"minSec":n>0?"secMs":"ms",a)},bu=function(e){return(e.seconds?1e3*Number(e.seconds):0)+(e.nanos?e.nanos/1e6:0)},wu=function(e){return e?function(e){return"string"===typeof e?1e3*parseInt(e,10):bu(e)}(e):0},Cu=function(e){if(!e)return 0;var t=Date.now()-function(e){return"string"===typeof e?Date.parse(e):bu(e)}(e);return t<0?0:t},ku=JSON.parse('{"b":"B","kb":"KB","mb":"MB","gb":"GB","perSecond":"/s"}'),Su=JSON.parse('{"b":"\u0411","kb":"\u041a\u0411","mb":"\u041c\u0411","gb":"\u0413\u0411","perSecond":"/\u0441"}'),xu="ydb-bytes-parsers";gr.registerKeyset(ar.En,xu,ku),gr.registerKeyset(ar.Ru,xu,Su);var Lu=gr.keyset(xu),Eu={b:{value:1,label:Lu("b")},kb:{value:1e3,label:Lu("kb")},mb:{value:kn,label:Lu("mb")},gb:{value:Sn,label:Lu("gb")}},Nu=function(e){return{perMinute:e&&e.per_minute?Math.round(Number(e.per_minute)/60):0,perHour:e&&e.per_hour?Math.round(Number(e.per_hour)/Ln):0,perDay:e&&e.per_day?Math.round(Number(e.per_day)/En):0}},Du=Bi("topic","FETCH_TOPIC"),Mu="topic/SET_DATA_WAS_NOT_LOADED",Tu="topic/CLEAN_TOPIC_DATA",Ou={loading:!0,wasLoaded:!1,data:void 0},Iu=function(){return{type:Mu}};function Au(e){return Wi({request:window.api.getTopic({path:e}),actions:Du})}var Ru=sr([function(e){var t;return null===(t=e.topic.data)||void 0===t?void 0:t.topic_stats}],(function(e){if(e){var t=e||{},n=t.store_size_bytes,i=void 0===n?"0":n,r=t.min_last_write_time,o=t.max_write_time_lag,a=t.bytes_written;return{storeSize:i,partitionsIdleTime:Cu(r),partitionsWriteLag:wu(o),writeSpeed:Nu(a)}}})),Pu=sr([function(e){var t;return null===(t=e.topic.data)||void 0===t?void 0:t.consumers}],(function(e){return null===e||void 0===e?void 0:e.map((function(e){var t=e||{},n=t.name,i=t.consumer_stats||{},r=i.min_partitions_last_read_time,o=i.max_read_time_lag,a=i.max_write_time_lag,s=i.bytes_read;return{name:n,readSpeed:Nu(s),writeLag:wu(a),readLag:wu(o),readIdleTime:Cu(r)}}))})),Zu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ou,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Du.REQUEST:return pt(pt({},e),{},{loading:!0});case Du.SUCCESS:return"object"!==typeof t.data?pt(pt({},e),{},{loading:!1,error:{}}):pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case Du.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:pt(pt({},e),{},{error:t.error,loading:!1});case Mu:return pt(pt({},e),{},{wasLoaded:!1});case Tu:return pt(pt({},e),{},{data:void 0});default:return e}},Fu=Bi("consumer","FETCH_CONSUMER"),ju="consumer/SET_DATA_WAS_NOT_LOADED",Hu="consumer/SET_SELECTED_CONSUMER",Bu={loading:!1,wasLoaded:!1,data:{}},zu=function(e){return{type:Hu,data:e}};var Wu,Vu=sr([function(e){var t;return null===(t=e.consumer.data)||void 0===t?void 0:t.partitions}],(function(e){return null===e||void 0===e?void 0:e.map((function(e){var t=e.partition_id,n=void 0===t?"0":t,i=e.partition_stats,r=e.partition_consumer_stats,o=i||{},a=o.partition_offsets,s=o.store_size_bytes,u=void 0===s?"0":s,l=o.last_write_time,c=o.max_write_time_lag,d=o.bytes_written,h=o.partition_node_id,f=void 0===h?0:h,p=a||{},g=p.start,v=void 0===g?"0":g,m=p.end,_=void 0===m?"0":m,y=r||{},b=y.last_read_offset,w=void 0===b?"0":b,C=y.committed_offset,k=void 0===C?"0":C,S=y.read_session_id,x=y.last_read_time,L=y.max_read_time_lag,E=y.max_write_time_lag,N=y.bytes_read,D=y.reader_name,M=y.connection_node_id,T=void 0===M?0:M,O=yi(_)&&yi(k)?Number(_)-Number(k):0,I=yi(_)&&yi(w)?Number(_)-Number(w):0;return{partitionId:n,storeSize:u,writeSpeed:Nu(d),readSpeed:Nu(N),partitionWriteLag:wu(c),partitionWriteIdleTime:Cu(l),consumerWriteLag:wu(E),consumerReadLag:wu(L),consumerReadIdleTime:Cu(x),uncommitedMessages:O,unreadMessages:I,startOffset:v,endOffset:_,commitedOffset:k,readSessionId:S,readerName:D,partitionNodeId:f,connectionNodeId:T}}))})),Yu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Bu,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Fu.REQUEST:return pt(pt({},e),{},{loading:!0});case Fu.SUCCESS:return"object"!==typeof t.data?pt(pt({},e),{},{loading:!1,error:{}}):pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case Fu.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:pt(pt({},e),{},{error:t.error,loading:!1});case ju:return pt(pt({},e),{},{wasLoaded:!1});case Hu:return pt(pt({},e),{},{selectedConsumer:t.data});default:return e}};!function(e){e.Bool="Bool",e.Int8="Int8",e.Int16="Int16",e.Int32="Int32",e.Int64="Int64",e.Uint8="Uint8",e.Uint16="Uint16",e.Uint32="Uint32",e.Uint64="Uint64",e.Float="Float",e.Double="Double",e.Decimal="Decimal",e.String="String",e.Utf8="Utf8",e.Json="Json",e.JsonDocument="JsonDocument",e.Yson="Yson",e.Uuid="Uuid",e.Date="Date",e.Datetime="Datetime",e.Timestamp="Timestamp",e.Interval="Interval",e.TzDate="TzDate",e.TzDateTime="TzDateTime",e.TzTimestamp="TzTimestamp"}(Wu||(Wu={}));var Uu=["result","columns"],Ku=["result"],qu=function(e){if(e){if("string"===typeof e)try{return JSON.parse(e)}catch(t){return}return Array.isArray(e)?e:void 0}},Gu=function(e){return Boolean(e&&"object"===typeof e&&("ast"in e||"plan"in e||"stats"in e))},$u=function(e){return e?function(e){return Boolean(e&&"object"===typeof e&&"result"in e)}(e)?(t=e,Boolean(t&&!Array.isArray(t)&&Array.isArray(t.result)&&Array.isArray(t.columns))?function(e){var t=e.result,n=e.columns,i=Rt(e,Uu);return pt({result:t&&n&&t.map((function(e){return e.reduce((function(e,t,i){return e[n[i].name]=t,e}),{})})),columns:n},i)}(e):pt(pt({},e),{},{result:qu(e.result)})):Gu(e)?e:{result:qu(e)}:{};var t},Qu=function(e){if(!e)return{};if("ast"in e)return e;if("result"in e){var t=e.result,n=Rt(e,Ku);return"ast"in e.result?pt({ast:t.ast},n):pt({plan:e.result},n)}return Gu(e)?e:{plan:e}};function Xu(e){var t,n;return(null===(t=e.data)||void 0===t||null===(n=t.error)||void 0===n?void 0:n.message)||e.message||e.data||e.statusText||JSON.stringify(e)}var Ju=20,el=Bi("query","SEND_QUERY"),tl="query/CHANGE_USER_INPUT",nl="query/SAVE_QUERY_TO_HISTORY",il="query/GO_TO_PREVIOUS_QUERY",rl="query/GO_TO_NEXT_QUERY",ol="query/SELECT_RUN_ACTION",al="query/MONACO_HOT_KEY",sl=di(hi(zn,"[]")),ul=sl.length-Ju,ll="execute-script",cl="execute-scan",dl={sendQuery:"sendQuery",goPrev:"goPrev",goNext:"goNext",getExplain:"getExplain"},hl={loading:!1,input:"",history:{queries:sl.slice(ul<0?0:ul),currentIndex:sl.length>Ju?Ju-1:sl.length-1},runAction:Si(Qn,ll),monacoHotKey:null},fl=function(e){var t=e.input;return function(e){e({type:tl,data:{input:t}})}},pl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:hl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case el.REQUEST:return pt(pt({},e),{},{loading:!0,data:void 0,error:void 0});case el.SUCCESS:return pt(pt({},e),{},{data:t.data,stats:t.data.stats,loading:!1,error:void 0});case el.FAILURE:return pt(pt({},e),{},{error:t.error||"Unauthorized",loading:!1});case ol:return pt(pt({},e),{},{runAction:t.data});case tl:return pt(pt({},e),{},{input:t.data.input});case nl:var n=t.data,i=[].concat((0,zt.Z)(e.history.queries),[n]).slice(e.history.queries.length>=Ju?1:0);window.localStorage.setItem(zn,JSON.stringify(i));var r=i.length-1;return pt(pt({},e),{},{history:{queries:i,currentIndex:r}});case il:var o=Math.max(0,e.history.currentIndex-1);return pt(pt({},e),{},{history:pt(pt({},e.history),{},{currentIndex:o})});case rl:var a=e.history.queries.length-1,s=Math.min(a,e.history.currentIndex+1);return pt(pt({},e),{},{history:pt(pt({},e.history),{},{currentIndex:s})});case al:return pt(pt({},e),{},{monacoHotKey:t.data});default:return e}},gl=new Set(["PlanNodeId","PlanNodeType","Node Type","Plans"]);function vl(e){var t=[];if(e.Operators){var n,i=[],r=(0,tr.Z)(e.Operators);try{for(r.s();!(n=r.n()).done;){for(var o=n.value,a={name:o.Name,items:[]},s=0,u=Object.entries(o);s<u.length;s++){var l=(0,Ti.Z)(u[s],2),c=l[0],d=l[1];if("Name"!==c){var h=Array.isArray(d)?d.join(", "):d;a.items.push({name:c,value:h})}}i.push(a)}}catch(y){r.e(y)}finally{r.f()}t.push({group:"Operators",stats:i})}if("Connection"===e.PlanNodeType){for(var f=[],p=0,g=Object.entries(e);p<g.length;p++){var v=(0,Ti.Z)(g[p],2),m=v[0],_=v[1];gl.has(m)||f.push({name:m,value:String(_)})}f.length>0&&t.push({group:"Attributes",stats:f})}return t}function ml(e){switch(e.PlanNodeType){case"Connection":return"connection";case"ResultSet":return"result";case"Query":return"query";default:return"stage"}}var _l=Bi("query","GET_EXPLAIN_QUERY"),yl=Bi("query","GET_EXPLAIN_QUERY_AST"),bl={loading:!1},wl={v1:"0.1",v2:"0.2"},Cl=Object.values(wl),kl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:bl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case _l.REQUEST:return pt(pt({},e),{},{loading:!0,data:void 0,error:void 0,dataAst:void 0,errorAst:void 0});case _l.SUCCESS:return pt(pt({},e),{},{data:t.data.plan,dataAst:t.data.ast,loading:!1,error:void 0});case _l.FAILURE:return pt(pt({},e),{},{error:t.error||"Unauthorized",loading:!1});case yl.REQUEST:return pt(pt({},e),{},{loadingAst:!0,dataAst:void 0,errorAst:void 0});case yl.SUCCESS:return pt(pt({},e),{},{dataAst:t.data.ast,loadingAst:!1,error:void 0});case yl.FAILURE:return pt(pt({},e),{},{errorAst:t.error||"Unauthorized",loadingAst:!1});default:return e}},Sl=Bi("tabletsFilters","FETCH_TABLETS_FILTERS"),xl={data:void 0,loading:!0,wasLoaded:!1,stateFilter:[],typeFilter:[]};var Ll=function(e){var t=e.tabletsFilters.tabletsData;return(null===t||void 0===t?void 0:t.TabletStateInfo)||[]},El=sr([Ll,function(e){return e.tabletsFilters.stateFilter},function(e){return e.tabletsFilters.typeFilter}],(function(e,t,n){var i=e;return n.length>0&&(i=i.filter((function(e){return n.some((function(t){return e.Type===t}))}))),t.length>0&&(i=i.filter((function(e){return t.some((function(t){return e.State===t}))}))),i})),Nl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:xl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Sl.REQUEST:return pt(pt({},e),{},{loading:!0,requestTime:(new Date).getTime()});case Sl.SUCCESS:var n=(new Date).getTime()-e.requestTime,i=(0,Ti.Z)(t.data,2),r=i[0],o=i[1];return pt(pt({},e),{},{tabletsData:r,nodes:o,loading:!1,wasLoaded:!0,timeoutForRequest:n>Cn?n:Cn,error:void 0});case Sl.FAILURE:return pt(pt({},e),{},{error:t.error||"Request-URI Too Large. Please reload the page",loading:!1});case"CLEAR_WAS_LOADING_TABLETS":var a=e.stateFilter,s=e.typeFilter;return pt(pt({},xl),{},{stateFilter:a,typeFilter:s});case"SET_STATE_FILTER":return pt(pt({},e),{},{stateFilter:t.data});case"SET_TYPE_FILTER":return pt(pt({},e),{},{typeFilter:t.data});default:return e}},Dl=Bi("preview","SEND_QUERY"),Ml="preview/SET_QUERY_OPTIONS",Tl={loading:!1,wasLoaded:!1};var Ol=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Tl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Dl.REQUEST:return pt(pt({},e),{},{loading:!0,error:void 0});case Dl.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Dl.FAILURE:return pt(pt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Ml:return pt(pt({},e),t.data);default:return e}},Il=Bi("nodesList","FETCH_NODES_LIST"),Al={loading:!0,wasLoaded:!1,data:[]};var Rl=function(e){var t;return null===(t=e.nodesList.data)||void 0===t?void 0:t.reduce((function(e,t){return t.Id&&t.Host&&e.set(t.Id,t.Host),e}),new Map)},Pl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Al,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Il.REQUEST:return pt(pt({},e),{},{loading:!0});case Il.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case Il.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});default:return e}},Zl=Bi("describe","FETCH_DESCRIBE"),Fl="describe/SET_CURRENT_DESCRIBE_PATH",jl="describe/SET_DATA_WAS_NOT_LOADED",Hl={loading:!1,wasLoaded:!1,data:{},currentDescribe:void 0,currentDescribePath:void 0};sr((function(e,t){var n,i,r,o;return t?null===(n=e.describe.data[t])||void 0===n||null===(i=n.PathDescription)||void 0===i||null===(r=i.PersQueueGroup)||void 0===r||null===(o=r.PQTabletConfig)||void 0===o?void 0:o.ReadRules:void 0}),(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((function(e){return{name:e}}))}));var Bl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Hl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Zl.REQUEST:return pt(pt({},e),{},{loading:!0});case Zl.SUCCESS:var n=t.data.path===e.currentDescribePath,i=pt(pt({},e.data),t.data.data);return pt(pt({},e),{},n?{data:i,currentDescribe:t.data.currentDescribe,loading:!1,wasLoaded:!0,error:void 0}:{data:i});case Zl.FAILURE:var r;return null!==(r=t.error)&&void 0!==r&&r.isCancelled?e:pt(pt({},e),{},{error:t.error,loading:!1});case Fl:return pt(pt({},e),{},{currentDescribePath:t.data});case jl:return pt(pt({},e),{},{wasLoaded:!1});default:return e}},zl=Bi("schemaAcl","FETCH_SCHEMA_ACL");function Wl(e){var t=e.path;return Wi({request:window.api.getSchemaAcl({path:t}),actions:zl})}var Vl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,wasLoaded:!1,acl:void 0},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case zl.REQUEST:return pt(pt({},e),{},{loading:!0});case zl.SUCCESS:return pt(pt({},e),{},{error:void 0,acl:Zt().get(t.data,"Common.ACL"),owner:Zt().get(t.data,"Common.Owner"),loading:!1,wasLoaded:!0});case zl.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});default:return e}},Yl=Bi("top-queries","FETCH_TOP_QUERIES"),Ul="top-queries/SET_TOP_QUERIES_STATE",Kl="top-queries/SET_TOP_QUERIES_FILTERS",ql={loading:!1,wasLoaded:!1,filters:{}},Gl=function(e){return"(\n SELECT\n MAX(IntervalEnd)\n FROM `".concat(e,"/.sys/top_queries_by_cpu_time_one_hour`\n)")};var $l=function(e,t){var n=function(e,t){var n=[];if(null!==t&&void 0!==t&&t.from&&null!==t&&void 0!==t&&t.to&&t.from>t.to)throw new Error("Invalid date range");if(null!==t&&void 0!==t&&t.from){var i=t.to===t.from?">=":">";n.push("IntervalEnd ".concat(i," Timestamp('").concat(new Date(t.from).toISOString(),"')"))}return null!==t&&void 0!==t&&t.to&&n.push("IntervalEnd <= Timestamp('".concat(new Date(t.to).toISOString(),"')")),null!==t&&void 0!==t&&t.from||null!==t&&void 0!==t&&t.to||n.push("IntervalEnd IN ".concat(Gl(e))),null!==t&&void 0!==t&&t.text&&n.push("QueryText ILIKE '%".concat(t.text,"%'")),n.join(" AND ")}(e,t);return"\nSELECT\n CPUTime as CPUTimeUs,\n QueryText,\n IntervalEnd\nFROM `".concat(e,"/.sys/top_queries_by_cpu_time_one_hour`\nWHERE ").concat(n||"true","\n")};var Ql=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ql,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Yl.REQUEST:return pt(pt({},e),{},{loading:!0,error:void 0});case Yl.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Yl.FAILURE:return pt(pt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Ul:return pt(pt({},e),t.data);case Kl:return pt(pt({},e),{},{filters:pt(pt({},e.filters),t.filters)});default:return e}},Xl=n(54952),Jl=n.n(Xl),ec=n(1990),tc=n.n(ec),nc=n(26567),ic=n.n(nc),rc=Bi("cluster","FETCH_HEALTHCHECK"),oc="healthcheckInfo/SET_DATA_WAS_NOT_LOADED",ac={loading:!1,wasLoaded:!1},sc={RED:0,ORANGE:1,YELLOW:2,BLUE:3,GREEN:4},uc=function(e){var t=e.issue;return e.data.filter((function(e){return t.reason&&-1!==t.reason.indexOf(e.id)}))},lc=function(e){var t=e.filter((function(t){return!e.find((function(e){return e.reason&&-1!==e.reason.indexOf(t.id)}))}));return t=Jl()([ic()((function(e){return e.id})),tc()((function(e){var t=e.status;return sc[t]}))])(t)},cc=function e(t){var n=t.data,i=t.roots;return i?i.map((function(t){var i=e({roots:uc({issue:t,data:n}),data:n});return pt(pt({},t),{},{reasonsItems:i})})):[]},dc=function(e){var t;return null===(t=e.healthcheckInfo.data)||void 0===t?void 0:t.issue_log},hc=sr(dc,(function(){return lc(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])})),fc=sr([dc,hc],(function(){return cc({data:arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],roots:arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]})})),pc=sr([fc,function(e,t){return t}],(function(){var e=arguments.length>1?arguments[1]:void 0;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).find((function(t){return t.id===e}))}));var gc,vc=function(){return{type:oc}},mc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ac,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case rc.REQUEST:return pt(pt({},e),{},{loading:!0});case rc.SUCCESS:var n=t.data;return pt(pt({},e),{},{data:n,wasLoaded:!0,loading:!1,error:void 0});case rc.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case oc:return pt(pt({},e),{},{wasLoaded:!1});default:return e}};!function(e){e.Immediate="immediate",e.History="history"}(gc||(gc={}));var _c=Bi("query","SEND_SHARD_QUERY"),yc="query/SET_SHARD_STATE",bc="shardsWorkload/SET_SHARD_QUERY_FILTERS",wc={loading:!1,wasLoaded:!1,filters:{}};function Cc(e){var t=e.columnId,n=e.order;return"".concat(t," ").concat(n)}function kc(e,t,n,i){var r=i?"CAST(SUBSTRING(CAST(Path AS String), ".concat(i.length,") AS Utf8) AS Path"):"Path",o="Path='".concat(e,"' OR Path LIKE '").concat(e,"/%'"),a=function(e){var t=[];if(null!==e&&void 0!==e&&e.from&&null!==e&&void 0!==e&&e.to&&e.from>e.to)throw new Error("Invalid date range");if(null!==e&&void 0!==e&&e.from){var n=e.to===e.from?">=":">";t.push("IntervalEnd ".concat(n," Timestamp('").concat(new Date(e.from).toISOString(),"')"))}return null!==e&&void 0!==e&&e.to&&t.push("IntervalEnd <= Timestamp('".concat(new Date(e.to).toISOString(),"')")),t.join(" AND ")}(t);a.length&&(o="(".concat(o,") AND ").concat(a));var s=n?"ORDER BY ".concat(n.map(Cc).join(", ")):"";return"SELECT\n ".concat(r,",\n TabletId,\n CPUCores,\n DataSize,\n NodeId,\n PeakTime,\n InFlightTxCount,\n IntervalEnd\nFROM `.sys/top_partitions_one_hour`\nWHERE ").concat(o,"\n").concat(s,"\nLIMIT 20")}function Sc(e,t,n){var i=n?"CAST(SUBSTRING(CAST(Path AS String), ".concat(n.length,") AS Utf8) AS Path"):"Path",r=t?"ORDER BY ".concat(t.map(Cc).join(", ")):"";return"SELECT\n ".concat(i,",\n TabletId,\n CPUCores,\n DataSize,\n NodeId,\n InFlightTxCount\nFROM `.sys/partition_stats`\nWHERE\n Path='").concat(e,"'\n OR Path LIKE '").concat(e,"/%'\n").concat(r,"\nLIMIT 20")}var xc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:wc,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case _c.REQUEST:return pt(pt({},e),{},{loading:!0,error:void 0});case _c.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case _c.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:pt(pt({},e),{},{error:t.error||"Unauthorized",loading:!1});case yc:return pt(pt({},e),t.data);case bc:return pt(pt({},e),{},{filters:pt(pt({},e.filters),t.filters)});default:return e}},Lc=Bi("hot_keys","FETCH_HOT_KEYS"),Ec="hot_keys/SET_HOT_KEYS_OPTIONS",Nc={loading:!0,data:{},wasLoaded:!1};var Dc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Nc,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Lc.REQUEST:return pt(pt({},e),{},{loading:!0});case Lc.SUCCESS:return pt(pt({},e),{},{data:t.data.hotkeys,loading:!1,error:void 0,wasLoaded:!0});case Lc.FAILURE:return pt(pt({},e),{},{error:t.error,loading:!1});case Ec:return pt(pt({},e),t.data);default:return e}},Mc=Bi("query","SEND_OLAP_STATS_QUERY"),Tc=Bi("query","SET_OLAP_STATS_OPTIONS"),Oc="olapStats/RESET_LOADING_STATE",Ic={loading:!1,wasLoaded:!1};function Ac(e){return"SELECT * FROM `".concat(e,"/.sys/primary_index_stats`")}var Rc=function(e){var t=e.path,n=void 0===t?"":t;return Wi({request:window.api.sendQuery({schema:"modern",query:Ac(n),database:n,action:"execute-scan"}),actions:Mc,dataHandler:$u})};var Pc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ic,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Mc.REQUEST:return pt(pt({},e),{},{loading:!0,error:void 0});case Mc.SUCCESS:return pt(pt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Mc.FAILURE:return pt(pt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Tc:return pt(pt({},e),t.data);case Oc:return pt(pt({},e),{},{wasLoaded:Ic.wasLoaded});default:return e}},Zc="SET_HEADER",Fc=[];function jc(e){return{type:Zc,data:e}}var Hc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Fc,t=arguments.length>1?arguments[1]:void 0;return t.type===Zc?t.data:e},Bc="SET_QUERY_NAME_TO_EDIT",zc="CLEAR_QUERY_NAME_TO_EDIT",Wc=null;function Vc(e){return{type:Bc,data:e}}var Yc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Wc,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Bc:return t.data;case zc:return null;default:return e}},Uc="ENABLE_FULLSCREEN_MODE",Kc="DISABLE_FULLSCREEN_MODE",qc=!1;function Gc(){return{type:Kc}}var $c=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:qc;switch((arguments.length>1?arguments[1]:void 0).type){case Kc:return!1;case Uc:return!0;default:return e}};var Qc,Xc,Jc,ed=function(){return!(arguments.length>0&&void 0!==arguments[0])||arguments[0]},td=function(e){for(var t=Object.keys(e),n={},i=0;i<t.length;i++){var r=t[i];0,"function"===typeof e[r]&&(n[r]=e[r])}var o,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if("undefined"===typeof n(void 0,{type:Ct.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if("undefined"===typeof n(void 0,{type:Ct.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+Ct.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')}))}(n)}catch(s){o=s}return function(e,t){if(void 0===e&&(e={}),o)throw o;for(var i=!1,r={},s=0;s<a.length;s++){var u=a[s],l=n[u],c=e[u],d=l(c,t);if("undefined"===typeof d){var h=xt(u,t);throw new Error(h)}r[u]=d,i=i||d!==c}return i?r:e}}(pt({},{singleClusterMode:ed,nodes:qr,cluster:Xr,tenant:so,storage:Zo,node:Vo,pdisk:Ko,vdisk:$o,group:Jo,tooltip:Ta,tablets:gs,schema:Xs,olapStats:Pc,host:tu,network:ou,pool:su,tenants:cu,tablet:pu,topic:Zu,consumer:Yu,executeQuery:pl,explainQuery:kl,tabletsFilters:Nl,heatmap:qi,settings:Mi,preview:Ol,nodesList:Pl,describe:Bl,schemaAcl:Vl,executeTopQueries:Ql,healthcheckInfo:mc,shardsWorkload:xc,hotKeys:Dc,authentication:ji,header:Hc,saveQuery:Yc,fullscreen:$c})),nd=td,id=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||Et;function rd(e,t,n){var i=function(e,t){return{locationMiddleware:(0,Ot.zl)($i,Qi,e,t,Ji).locationMiddleware,reducersWithLocation:er($i,Qi,t)}}(t,e),r=i.locationMiddleware,o=i.reducersWithLocation,a=Nt(Tt,r);return id(a)(St)(o,{singleClusterMode:n})}var od=window.web_version,ad=window.custom_backend,sd=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:nd,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=At(window.location.href,t);Qc=n.backend,Xc=n.basename,Jc=n.clusterName;var i=ke({basename:Xc}),r=rd(e,i,t);return(0,Ot.C1)(r,i),{history:i,store:r}},ud={tenants:{id:"tenants",name:"Databases",title:"Database list"},nodes:{id:"nodes",name:"Nodes",title:"Nodes"},storage:{id:"storage",name:"Storage",title:"Storage"},cluster:{id:"cluster",name:"Cluster",title:"Cluster"}};function ld(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n,r=Boolean(n.backend);Qc&&!r&&od&&(i=pt(pt({},n),{},{backend:Qc}));var o=Boolean(n.clusterName);Jc&&!o&&od&&(i=pt(pt({},i),{},{clusterName:Jc}));var a=yt()(i)?"":"?".concat(vt().stringify(i,{encode:!1}));return"".concat((0,mt.compile)(e)(t)).concat(a)}var cd={cluster:"/cluster/:activeTab?",tenant:"/tenant",node:"/node/:id/:activeTab?",pdisk:"/pdisk/:id",group:"/group/:id",vdisk:"/vdisk",network:"/network",pool:"/pool/:poolName",tablet:"/tablet/:id",tabletsFilters:"/tabletsFilters",clusterPage:"/clusters/:name",auth:"/auth"},dd=n(20970),hd=n(6141),fd=n(43471);e.Component;e.Component;var pd=function(e,t){return"function"===typeof e?e(t):e},gd=function(e,t){return"string"===typeof e?ve(e,null,null,t):e},vd=function(e){return e},md=e.forwardRef;"undefined"===typeof md&&(md=vd);var _d=md((function(t,n){var i=t.innerRef,r=t.navigate,o=t.onClick,a=(0,g.Z)(t,["innerRef","navigate","onClick"]),s=a.target,u=(0,p.Z)({},a,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||s&&"_self"!==s||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=vd!==md&&n||i,e.createElement("a",u)}));var yd=md((function(t,n){var i=t.component,r=void 0===i?_d:i,o=t.replace,a=t.to,s=t.innerRef,u=(0,g.Z)(t,["component","replace","to","innerRef"]);return e.createElement(Be.Consumer,null,(function(t){t||ce(!1);var i=t.history,l=gd(pd(a,t.location),t.location),c=l?i.createHref(l):"",d=(0,p.Z)({},u,{href:c,navigate:function(){var e=pd(a,t.location),n=ge(t.location)===ge(gd(e));(o||n?i.replace:i.push)(e)}});return vd!==md?d.ref=n||s:d.innerRef=s,e.createElement(r,d)}))})),bd=function(e){return e},wd=e.forwardRef;"undefined"===typeof wd&&(wd=bd);wd((function(t,n){var i=t["aria-current"],r=void 0===i?"page":i,o=t.activeClassName,a=void 0===o?"active":o,s=t.activeStyle,u=t.className,l=t.exact,c=t.isActive,d=t.location,h=t.sensitive,f=t.strict,v=t.style,m=t.to,_=t.innerRef,y=(0,g.Z)(t,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return e.createElement(Be.Consumer,null,(function(t){t||ce(!1);var i=d||t.location,o=gd(pd(m,i),i),g=o.pathname,b=g&&g.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),w=b?Xe(i.pathname,{path:b,exact:l,sensitive:h,strict:f}):null,C=!!(c?c(w,i):w),k="function"===typeof u?u(C):u,S="function"===typeof v?v(C):v;C&&(k=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(k,a),S=(0,p.Z)({},S,s));var x=(0,p.Z)({"aria-current":C&&r||null,className:k,style:S,to:o},y);return bd!==wd?x.ref=n||_:x.innerRef=_,e.createElement(yd,x)}))}));var Cd,kd=n(88216),Sd=n(8762),xd=n(73356);function Ld(){return Ld=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Ld.apply(this,arguments)}var Ed,Nd=function(t){return e.createElement("svg",Ld({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Cd||(Cd=e.createElement("path",{d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z"})))};function Dd(){return Dd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Dd.apply(this,arguments)}var Md,Td=function(t){return e.createElement("svg",Dd({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Ed||(Ed=e.createElement("path",{d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm-24 152c0-13.2 10.8-24 24-24s24 10.75 24 24v128c0 13.25-10.75 24-24 24s-24-10.7-24-24V152zm24 248c-17.36 0-31.44-14.08-31.44-31.44s14.07-31.44 31.44-31.44 31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"})))};function Od(){return Od=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Od.apply(this,arguments)}var Id,Ad=function(t){return e.createElement("svg",Od({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Md||(Md=e.createElement("path",{d:"M506.3 417L293 53c-16.33-28-57.54-28-73.98 0L5.82 417c-16.41 27.9 4.029 63 36.92 63h426.6c32.76 0 53.26-35 36.96-63zM232 168c0-13.25 10.75-24 24-24s24 10.8 24 24v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zm24 248c-17.36 0-31.44-14.08-31.44-31.44s14.07-31.44 31.44-31.44 31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"})))};function Rd(){return Rd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Rd.apply(this,arguments)}var Pd=function(t){return e.createElement("svg",Rd({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Id||(Id=e.createElement("path",{d:"M0 256C0 114.6 114.6 0 256 0s256 114.6 256 256-114.6 256-256 256S0 397.4 0 256zm175-47.9l47.1 47L175 303c-9.3 9.4-9.3 24.6 0 33.1 9.4 10.2 24.6 10.2 33.1 0l47-46.2 47.9 46.2c9.4 10.2 24.6 10.2 33.1 0 10.2-8.5 10.2-23.7 0-33.1l-46.2-47.9 46.2-47c10.2-8.5 10.2-23.7 0-33.1-8.5-9.3-23.7-9.3-33.1 0l-47.9 47.1-47-47.1c-8.5-9.3-23.7-9.3-33.1 0-9.3 9.4-9.3 24.6 0 33.1z"})))},Zd={BLUE:Nd,YELLOW:Td,ORANGE:Ad,RED:Pd},Fd=(0,ct.Z)("entity-status"),jd=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"renderIcon",value:function(){var e=this.props,t=e.status,n=e.size,i=e.showStatus,r=e.mode;if(!i)return null;var o={state:t.toLowerCase(),size:n};return"icons"===r&&Zd[t]?(0,ra.jsx)(kd.J,{className:Fd("status-icon",o),data:Zd[t]}):(0,ra.jsx)("div",{className:Fd("status-color",o)})}},{key:"renderStatusLink",value:function(){var e=this.props.iconPath;return(0,ra.jsx)(Sd.r,{target:"_blank",href:e,children:this.renderIcon()})}},{key:"renderLink",value:function(){var e=this.props,t=e.externalLink,n=e.name,i=e.path,r=e.onNameMouseEnter,o=e.onNameMouseLeave;return t?(0,ra.jsx)(Sd.r,{className:Fd("name"),href:i,children:n}):i?(0,ra.jsx)(yd,{className:Fd("name"),to:i,onMouseEnter:r,onMouseLeave:o,children:n}):n&&(0,ra.jsx)("span",{className:Fd("name"),onMouseEnter:r,onMouseLeave:o,children:n})}},{key:"render",value:function(){var e=this.props,t=e.name,n=e.label,i=e.iconPath,r=e.hasClipboardButton,o=e.className;return(0,ra.jsxs)("div",{className:Fd(null,o),title:t,children:[i?this.renderStatusLink():this.renderIcon(),n&&(0,ra.jsx)("span",{title:n,className:Fd("label"),children:n}),(0,ra.jsx)("span",{className:Fd("link",{"with-left-trim":this.props.withLeftTrim}),children:this.renderLink()}),r&&(0,ra.jsx)(dd.z,{component:"span",size:"s",className:Fd("clipboard-button",{visible:!1}),children:(0,ra.jsx)(xd.m,{text:t,size:16})})]})}}]),n}(e.Component);jd.defaultProps={status:"gray",text:"",size:"s",label:"",showStatus:!0,externalLink:!1,mode:"color",withLeftTrim:!1};var Hd=jd,Bd=(0,ct.Z)("pool-bar"),zd=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;(0,i.Z)(this,s);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(t=n.call.apply(n,[this].concat(o))).bar=e.createRef(),t._onBarHover=function(){t.props.onMouseEnter(t.bar.current,t.props.data,"pool")},t._onBarLeave=function(){t.props.onMouseLeave()},t}return(0,r.Z)(s,[{key:"render",value:function(){var e=this.props.data.Usage,t=void 0===e?0:e,n=Math.min(100*t,100),i=function(e){return e>=75?"danger":e>=50&&e<75?"warning":"normal"}(n);return(0,ra.jsx)("div",{ref:this.bar,className:Bd({type:i}),onMouseEnter:this._onBarHover,onMouseLeave:this._onBarLeave,children:(0,ra.jsx)("div",{style:{height:"".concat(n,"%")},className:Bd("value",{type:i})})})}}]),s}(e.Component),Wd=zd,Vd=(0,ct.Z)("pools-graph"),Yd=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e=this,t=this.props.pools;return(0,ra.jsx)("div",{className:Vd(),children:t.map((function(t,n){return(0,ra.jsx)(Wd,pt({data:t},e.props),n)}))})}}]),n}(e.Component);Yd.defaultProps={pools:[]};var Ud,Kd,qd,Gd=Yd;!function(e){e.Unknown="Unknown",e.OldSchemeShard="OldSchemeShard",e.OldDataShard="OldDataShard",e.OldHive="OldHive",e.OldCoordinator="OldCoordinator",e.Mediator="Mediator",e.OldTxProxy="OldTxProxy",e.OldBSController="OldBSController",e.Dummy="Dummy",e.RTMRPartition="RTMRPartition",e.OldKeyValue="OldKeyValue",e.KeyValue="KeyValue",e.Coordinator="Coordinator",e.Hive="Hive",e.BSController="BSController",e.SchemeShard="SchemeShard",e.TxProxy="TxProxy",e.DataShard="DataShard",e.PersQueue="PersQueue",e.Cms="Cms",e.NodeBroker="NodeBroker",e.TxAllocator="TxAllocator",e.PersQueueReadBalancer="PersQueueReadBalancer",e.BlockStoreVolume="BlockStoreVolume",e.BlockStorePartition="BlockStorePartition",e.TenantSlotBroker="TenantSlotBroker",e.Console="Console",e.Kesus="Kesus",e.BlockStorePartition2="BlockStorePartition2",e.BlockStoreDiskRegistry="BlockStoreDiskRegistry",e.SysViewProcessor="SysViewProcessor",e.FileStore="FileStore",e.ColumnShard="ColumnShard",e.TestShard="TestShard",e.SequenceShard="SequenceShard",e.ReplicationController="ReplicationController",e.BlobDepot="BlobDepot",e.UserTypeStart="UserTypeStart",e.TypeInvalid="TypeInvalid"}(Ud||(Ud={})),function(e){e.Created="Created",e.ResolveStateStorage="ResolveStateStorage",e.Candidate="Candidate",e.BlockBlobStorage="BlockBlobStorage",e.RebuildGraph="RebuildGraph",e.WriteZeroEntry="WriteZeroEntry",e.Restored="Restored",e.Discover="Discover",e.Lock="Lock",e.Dead="Dead",e.Active="Active",e.ResolveLeader="ResolveLeader",e.Deleted="Deleted",e.Stopped="Stopped"}(Kd||(Kd={}));var $d=(qd={},(0,ht.Z)(qd,Kd.Active,vr.Green),(0,ht.Z)(qd,Kd.Deleted,vr.Green),(0,ht.Z)(qd,Kd.RebuildGraph,vr.Orange),(0,ht.Z)(qd,Kd.ResolveLeader,vr.Yellow),(0,ht.Z)(qd,Kd.Created,vr.Red),(0,ht.Z)(qd,Kd.ResolveStateStorage,vr.Red),(0,ht.Z)(qd,Kd.Candidate,vr.Red),(0,ht.Z)(qd,Kd.BlockBlobStorage,vr.Red),(0,ht.Z)(qd,Kd.WriteZeroEntry,vr.Red),(0,ht.Z)(qd,Kd.Restored,vr.Red),(0,ht.Z)(qd,Kd.Discover,vr.Red),(0,ht.Z)(qd,Kd.Lock,vr.Red),(0,ht.Z)(qd,Kd.Dead,vr.Red),(0,ht.Z)(qd,Kd.Stopped,vr.Red),qd),Qd=Object.keys(Kd),Xd=Object.entries($d).reduce((function(e,t){var n=(0,Ti.Z)(t,2),i=n[0],r=n[1];return e[r]?e[r].push(i):e[r]=[i],e}),{}),Jd=function(e){if(!e)return vr.Grey;return function(e){return Object.values(vr).includes(e)}(e)?e:$d[e]},eh=(0,ct.Z)("tablets-statistic"),th=function(e){var t=e.tablets,n=void 0===t?[]:t,i=e.path,r=e.nodeIds,o=function(e){var t=e.map((function(e){return{label:Tn(e.Type),type:e.Type,count:e.Count,state:Jd(e.State)}}));return t.sort((function(e,t){return String(e.label).localeCompare(String(t.label))}))}(n);return(0,ra.jsx)("div",{className:eh(),children:o.map((function(e,t){var n;return(0,ra.jsxs)(yd,{to:ld(cd.tabletsFilters,void 0,{nodeIds:r,state:e.state,type:e.type,path:i}),className:eh("tablet",{state:null===(n=e.state)||void 0===n?void 0:n.toLowerCase()}),children:[e.label,": ",e.count]},t)}))})},nh=n(50355),ih=function(e){var t=e.value,n=e.onChange,i=e.className;return(0,ra.jsxs)(nh.E,{value:t,onUpdate:n,className:i,children:[(0,ra.jsx)(nh.E.Option,{value:Rn,children:Rn}),(0,ra.jsx)(nh.E.Option,{value:Pn,children:Pn})]})},rh=n(68487),oh=["name","className"],ah={light:{403:function(){return n.e(1058).then(n.bind(n,11058))},thumbsUp:function(){return n.e(6550).then(n.bind(n,26550))}},dark:{403:function(){return n.e(2991).then(n.bind(n,22991))},thumbsUp:function(){return n.e(6550).then(n.bind(n,26550))}}},sh=(0,ct.Z)("kv-illustration"),uh=function(t){var n=t.name,i=t.className,r=Rt(t,oh),o=(0,rh.C)(),a=(0,e.useState)(""),s=(0,Ti.Z)(a,2),u=s[0],l=s[1],c=ah[o]&&ah[o][n];return(0,e.useEffect)((function(){"function"===typeof c&&c().then((function(e){return l(e.default)})).catch((function(e){console.error(e),l("")}))}),[c]),(0,ra.jsx)("img",pt({alt:n,src:u,className:sh(null,i)},r))},lh=function(){function e(){(0,i.Z)(this,e),this.timeout=void 0,this.active=void 0,this.timer=void 0,this.launchCounter=void 0,this.timeout=e.DEFAULT_TIMEOUT,this.active=!0,this.timer=void 0,this.launchCounter=0}return(0,r.Z)(e,[{key:"wait",value:function(e){var t=this;return new Promise((function(n){t.timer=setTimeout(n,e)}))}},{key:"fetch",value:function(){var t=(0,Jn.Z)(ti().mark((function t(n){var i,r,o,a,s;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.active){t.next=2;break}return t.abrupt("return");case 2:return i=this.launchCounter,t.next=5,this.wait(this.timeout);case 5:if(!this.active){t.next=18;break}return r=Date.now(),t.next=9,n();case 9:if(o=Date.now(),i===this.launchCounter){t.next=12;break}return t.abrupt("return");case 12:s=(a=o-r)>e.MIN_TIMEOUT?a:e.MIN_TIMEOUT,this.timeout=s,this.fetch(n),t.next=19;break;case 18:return t.abrupt("return");case 19:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"stop",value:function(){this.timer&&clearTimeout(this.timer),this.active=!1}},{key:"start",value:function(){this.launchCounter++,this.active=!0}}]),e}();lh.DEFAULT_TIMEOUT=3e4,lh.MIN_TIMEOUT=3e4;var ch,dh,hh,fh=function(e){var t=e.name,n=e.height,i=void 0===n?16:n,r=e.width,o=void 0===r?16:r,a=e.viewBox,s=void 0===a?"0 0 16 16":a,u=e.className,l=e.onClick;return(0,ra.jsx)(kd.J,{data:{id:"icon.".concat(t),viewBox:s},height:i,width:o,className:u,onClick:l})},ph=function(e){return(0,ra.jsx)(fh,pt({},e))};ph.displayName="Icon",function(e){e.query="query",e.diagnostics="diagnostics"}(ch||(ch={})),function(e){e.overview="overview",e.acl="acl",e.schema="schema"}(dh||(dh={})),function(e){e.info="info",e.general="general",e.generalTab="generalTab"}(hh||(hh={}));var gh=[{id:ch.query,title:"Query",icon:(0,ra.jsx)(fh,{name:"query",viewBox:"0 0 16 16"})},{id:ch.diagnostics,title:"Diagnostics",icon:(0,ra.jsx)(fh,{name:"diagnostics",viewBox:"0 0 17 16"})}],vh=[{id:dh.overview,title:"Overview"},{id:dh.acl,title:"ACL"}],mh=[{id:dh.schema,title:"Schema"}],_h=(0,ct.Z)("tenants"),yh=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).getControlPlaneValue=function(e){var t=Zt().get(e,"Name",[]).split("/"),n=t.length?t[t.length-1]:"\u2014";return Zt().get(e,"ControlPlane.name",n)},e.renderTable=function(){var t=e.props,i=t.tenants,r=void 0===i?[]:i,o=t.searchQuery,a=t.showTooltip,s=t.hideTooltip,u=t.filter,l=t.handleSearchQuery,c=t.additionalTenantsInfo,d=void 0===c?{}:c,h=t.savedTenantInitialTab,f=r.filter((function(t){var n=new RegExp((0,ur.escapeRegExp)(o),"i");return n.test(t.Name)||n.test(e.getControlPlaneValue(t))})),p=n.filterTenants(f,u),g=h||gh[0].id,v=vh[0].id,m=[{name:"Name",header:"Database",render:function(e){var t,n,i=e.value,r=e.row,o=null!==(t=r.MonitoringEndpoint)&&void 0!==t?t:r.backend,a=d.tenantBackend?d.tenantBackend(o):void 0,s=Boolean(o);return(0,ra.jsxs)("div",{className:_h("name-wrapper"),children:[(0,ra.jsx)(Hd,{externalLink:s,className:_h("name"),name:i||"unknown database",withLeftTrim:!0,status:r.Overall,hasClipboardButton:!0,path:ld(cd.tenant,void 0,(n={name:i,backend:a},(0,ht.Z)(n,hh.info,v),(0,ht.Z)(n,hh.general,g),n))}),d.name&&d.name(i,r)]})},width:440,sortable:!0,defaultOrder:wn.DESCENDING},{name:"ControlPlaneName",header:"Name",render:function(t){var n=t.row;return e.getControlPlaneValue(n)},width:200,sortable:!0,defaultOrder:wn.DESCENDING},{name:"Type",width:200,render:function(e){var t=e.value,n=e.row;if("Serverless"!==t)return t;var i=Zt().find(r,{Id:n.ResourceId}).Name;return(0,ra.jsxs)("div",{className:_h("type"),children:[(0,ra.jsx)("span",{className:_h("type-value"),children:t}),(0,ra.jsx)(dd.z,{className:_h("type-button"),onClick:function(){return l(i)},children:"Show shared"})]})}},{name:"State",width:90,render:function(e){var t=e.value;return t?t.toLowerCase():"\u2014"},customStyle:function(){return{textTransform:"capitalize"}}},{name:"cpu",header:"CPU",width:80,sortAccessor:function(e){var t=e.Metrics,n=void 0===t?{}:t,i=e.CoresUsed,r=void 0!==i?1e6*Number(i):n.CPU;return isNaN(Number(r))?0:Number(r)},accessor:function(e){var t=e.Metrics,n=void 0===t?{}:t,i=e.CoresUsed;return isNaN(Number(i))?Number(n.CPU)?Mr(Number(n.CPU)):"\u2014":100*Number(i)>1?Mr(1e6*Number(i)):"\u2014"},align:wn.RIGHT,defaultOrder:wn.DESCENDING},{name:"memory",header:"Memory",width:120,accessor:function(e){var t=e.Metrics,n=void 0===t?{}:t,i=e.MemoryUsed;return isNaN(Number(i))?Number(n.Memory):Number(i)},sortAccessor:function(e){var t=e.Metrics,n=void 0===t?{}:t,i=e.MemoryUsed,r=null!==i&&void 0!==i?i:n.Memory;return isNaN(Number(r))?0:Number(r)},render:function(e){var t=e.value;return t?wr(t):"\u2014"},align:wn.RIGHT,defaultOrder:wn.DESCENDING},{name:"storage",header:"Storage",width:120,accessor:function(e){var t=e.Metrics,n=void 0===t?{}:t,i=e.StorageAllocatedSize;return isNaN(Number(i))?Number(n.Storage):Number(i)},sortAccessor:function(e){var t=e.Metrics,n=void 0===t?{}:t,i=e.StorageAllocatedSize,r=null!==i&&void 0!==i?i:n.Storage;return isNaN(Number(r))?0:Number(r)},render:function(e){var t=e.value;return t?wr(t):"\u2014"},align:wn.RIGHT,defaultOrder:wn.DESCENDING},{name:"NodeIds",header:"Nodes",width:100,accessor:function(e){var t=e.NodeIds;return(null===t||void 0===t?void 0:t.length)||0},sortAccessor:function(e){var t=e.NodeIds;return(null===t||void 0===t?void 0:t.length)||0},render:function(e){var t=e.value;return Dr(t)},align:wn.RIGHT,defaultOrder:wn.DESCENDING},{name:"StorageGroups",header:"Groups",width:100,sortAccessor:function(e){var t=e.StorageGroups;return isNaN(Number(t))?0:Number(t)},render:function(e){var t=e.value;return Dr(t)||"\u2014"},align:wn.RIGHT,defaultOrder:wn.DESCENDING},{name:"PoolStats",header:"Pools",width:100,sortAccessor:function(e){var t=e.PoolStats;return(void 0===t?[]:t).reduce((function(e,t){return e+t.Usage}),0)},defaultOrder:wn.DESCENDING,align:wn.CENTER,render:function(e){var t=e.value;return(0,ra.jsx)(Gd,{onMouseEnter:a,onMouseLeave:s,rowInfo:t,pools:t})}},{name:"Tablets",header:"Tablets States",sortable:!1,width:430,render:function(e){var t=e.value,n=e.row;return t?(0,ra.jsx)(th,{path:n.Name,tablets:t,nodeIds:n.NodeIds}):"\u2014"}}];return 0===p.length&&u!==Rn?(0,ra.jsx)(uh,{name:"thumbsUp",width:"200"}):(0,ra.jsx)("div",{className:_h("table-wrapper"),children:(0,ra.jsx)("div",{className:_h("table-content"),children:(0,ra.jsx)(wn,{theme:"yandex-cloud",data:p,columns:m,settings:Gn,dynamicRender:!0,emptyDataMessage:"No such tenants"})})})},e.renderContent=function(){return(0,ra.jsxs)("div",{className:_h(),children:[e.renderControls(),e.renderTable()]})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this;this.autofetcher=new lh,this.props.getTenantsInfo(Jc),this.autofetcher.fetch((function(){return e.props.getTenantsInfo(Jc)})),this.props.setHeader([{text:ud.tenants.title,link:ld(cd.cluster,{activeTab:ud.tenants.id})}])}},{key:"componentWillUnmount",value:function(){this.autofetcher.stop()}},{key:"renderControls",value:function(){var e=this.props,t=e.searchQuery,n=e.handleSearchQuery,i=e.filter,r=e.changeFilter;return(0,ra.jsxs)("div",{className:_h("controls"),children:[(0,ra.jsx)(hd.o,{className:_h("search"),placeholder:"Database name",value:t,onUpdate:n,hasClear:!0,autoFocus:!0}),(0,ra.jsx)(ih,{value:i,onChange:r})]})}},{key:"render",value:function(){var e=this.props,t=e.loading,i=e.wasLoaded,r=e.error;return t&&!i?n.renderLoader():r?(0,ra.jsx)("div",{children:r.statusText}):this.renderContent()}}],[{key:"renderLoader",value:function(){return(0,ra.jsx)("div",{className:"loader",children:(0,ra.jsx)(fd.a,{size:"l"})})}},{key:"filterTenants",value:function(e,t){return t===Rn?e:Zt().filter(e,(function(e){return e.Overall&&"Green"!==e.Overall}))}}]),n}(e.Component);yh.defaultProps={className:""};var bh={getTenantsInfo:function(e){return Wi({request:window.api.getTenants(e),actions:uu,dataHandler:function(e,t){var n;return t().singleClusterMode?e.TenantInfo:null===(n=e.databases)||void 0===n?void 0:n.map((function(e){var t,n=e.Nodes?e.Nodes[0]:{},i=n.Host&&n.Endpoints?null===(t=Zt().find(n.Endpoints,{Name:"http-mon"}))||void 0===t?void 0:t.Address:void 0,r=n.Host?"".concat(n.Host).concat(i||""):void 0;return pt(pt({},e),{},{backend:r})}))}})},hideTooltip:Da,showTooltip:Ma,changeFilter:Di,setHeader:jc},wh=function(t){var n=function(e){(0,o.Z)(s,e);var n=(0,a.Z)(s);function s(){var e;(0,i.Z)(this,s);for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return(e=n.call.apply(n,[this].concat(r))).state={searchQuery:""},e.handleSearchQuery=function(t){e.setState({searchQuery:t})},e}return(0,r.Z)(s,[{key:"render",value:function(){var e=this.state.searchQuery;return(0,ra.jsx)(t,pt(pt({},this.props),{},{searchQuery:e,handleSearchQuery:this.handleSearchQuery}))}}]),s}(e.Component);return n}(U((function(e){var t=e.tenants,n=t.tenants,i=t.wasLoaded,r=t.loading,o=t.error;return{singleClusterMode:e.singleClusterMode,tenants:n,wasLoaded:i,loading:r,error:o,filter:e.settings.problemFilter,savedTenantInitialTab:Ni(e,$n)}}),bh)(yh)),Ch=(0,ct.Z)("empty-state"),kh={s:150,m:250,l:350},Sh=function(e){var t=e.image,n=e.title,i=e.description,r=e.actions,o=e.size,a=void 0===o?"m":o;return(0,ra.jsx)("div",{className:Ch({size:a}),children:(0,ra.jsxs)("div",{className:Ch("wrapper",{size:a}),children:[(0,ra.jsx)("div",{className:Ch("image"),children:t||(0,ra.jsx)(fh,{viewBox:"0 0 383 396",name:"emptyState",width:kh[a],height:kh[a]})}),(0,ra.jsx)("div",{className:Ch("title",{size:a}),children:n}),(0,ra.jsx)("div",{className:Ch("description"),children:i}),(0,ra.jsx)("div",{className:Ch("actions"),children:r})]})})},xh=JSON.parse('{"403.title":"Access denied","403.description":"You don\u2019t have the necessary roles to view this page.","responseError.defaultMessage":"Response error"}'),Lh=JSON.parse('{"403.title":"\u0414\u043e\u0441\u0442\u0443\u043f \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d","403.description":"\u0423 \u0432\u0430\u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0430\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.","responseError.defaultMessage":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430"}'),Eh="ydb-errors-access-denied";gr.registerKeyset(ar.En,Eh,xh),gr.registerKeyset(ar.Ru,Eh,Lh);var Nh=gr.keyset(Eh),Dh=function(e){var t=e.title,n=e.description;return(0,ra.jsx)(Sh,{image:(0,ra.jsx)(uh,{name:"403"}),title:t||Nh("403.title"),description:n||Nh("403.description")})},Mh=(0,ct.Z)("ydb-loader"),Th=function(e){var t=e.size,n=void 0===t?"m":t;return(0,ra.jsx)("div",{className:Mh(),children:(0,ra.jsx)(fd.a,{size:n})})},Oh=function(t){var n=t.onChange,i=t.value,r=void 0===i?"":i,o=t.className,a=t.debounce,s=void 0===a?200:a,u=t.placeholder,l=(0,e.useState)(r),c=(0,Ti.Z)(l,2),d=c[0],h=c[1],f=(0,e.useRef)();(0,e.useEffect)((function(){h((function(e){return e!==r?r:e}))}),[r]);return(0,ra.jsx)(hd.o,{hasClear:!0,autoFocus:!0,className:o,placeholder:u,value:d,onUpdate:function(e){h(e),window.clearTimeout(f.current),f.current=window.setTimeout((function(){null===n||void 0===n||n(e)}),s)}})},Ih=function(e){var t=e.value,n=e.onChange,i=e.className;return(0,ra.jsxs)(nh.E,{value:t,onUpdate:n,className:i,children:[(0,ra.jsx)(nh.E.Option,{value:_r.All,children:Zr[_r.All]}),(0,ra.jsx)(nh.E.Option,{value:_r.SmallUptime,children:Zr[_r.SmallUptime]})]})},Ah=n(79403),Rh="ydb-entities-count";gr.registerKeyset(ar.En,Rh,{of:"of"}),gr.registerKeyset(ar.Ru,Rh,{of:"\u0438\u0437"});var Ph=gr.keyset(Rh),Zh=function(e){var t=e.total,n=e.current,i=e.label,r=e.loading,o=e.className,a="";return i&&(a+="".concat(i,": ")),r?a+="...":(a+="".concat(n),t&&Number(t)!==Number(n)&&(a+=" ".concat(Ph("of")," ").concat(t))),(0,ra.jsx)(Ah._,{theme:"info",size:"m",className:o,children:a})},Fh=function(t,n){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,e.useRef)(null);null===r.current&&(r.current=new lh);var o=r.current;(0,e.useEffect)((function(){t(!1)}),n),(0,e.useEffect)((function(){return o.stop(),i&&(o.start(),o.fetch((function(){return t(!0)}))),function(){o.stop()}}),[i].concat((0,zt.Z)(n)))},jh=te,Hh=n(33109),Bh=n(16456),zh=(0,ct.Z)("progress-viewer"),Wh=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.value,n=e.capacity,i=e.formatValues,r=e.percents,o=e.size,a=e.className,s=e.colorizeProgress,u=e.inverseColorize,l=Math.round(parseFloat(t)/parseFloat(n)*100);l=l>100?100:l;var c=Math.round(t),d=n,h="/";if(i){var f=i(t,n),p=(0,Ti.Z)(f,2);c=p[0],d=p[1]}else r&&(c=l+"%",d="",h="");var g=u?"scarlet":"apple";s&&(l>60&&l<=80?g="saffron":l>80&&(g=u?"apple":"scarlet"));var v={width:l+"%"},m=l>60?"contrast0":"contrast70";return isNaN(l)?(0,ra.jsx)("div",{className:"".concat(zh({size:o})," ").concat(a," error"),children:"no data"}):(0,ra.jsxs)("div",{className:zh({size:o},a),children:[(0,ra.jsx)("div",{className:zh("line",{bg:g}),style:v}),(0,ra.jsx)("span",{className:zh("text",{text:m}),children:"".concat(c," ").concat(h," ").concat(d)})]})}}]),n}(e.Component);Wh.defaultProps={size:"xs",colorizeProgress:!1,capacity:100,inverseColorize:!1};var Vh=Wh,Yh="storage",Uh="tablets",Kh="overview",qh="structure",Gh=[{id:Kh,name:"Overview"},{id:Yh,name:"Storage"},{id:qh,name:"Structure"},{id:Uh,name:"Tablets"}];function $h(e){return ld(cd.node,{id:e,activeTab:Kh})}var Qh=(0,ct.Z)("ydb-nodes-table");var Xh=JSON.parse('{"empty.default":"No such nodes"}'),Jh=JSON.parse('{"empty.default":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432"}'),ef="ydb-nodes";gr.registerKeyset(ar.En,ef,Xh),gr.registerKeyset(ar.Ru,ef,Jh);var tf,nf=gr.keyset(ef),rf=(0,ct.Z)("ydb-nodes"),of=function(t){var n=t.path,i=t.type,r=t.className,o=t.additionalNodesInfo,a=void 0===o?{}:o,s=Q(),u=!n;(0,e.useEffect)((function(){s({type:Hr})}),[s,n]);var l=jh((function(e){return e.nodes})),c=l.wasLoaded,d=l.loading,h=l.error,f=l.nodesUptimeFilter,p=l.searchValue,g=l.totalNodes,v=jh((function(e){return e.settings.problemFilter})),m=jh((function(e){return e.schema})).autorefresh,_=jh(Kr),y=jh((function(e){return Ni(e,jn)})),b=(0,e.useCallback)((function(){!n||JSON.parse(y)&&Ds(i)?s(Yr({tenant:n})):s(function(e){return Wi({request:window.api.getCompute(e),actions:jr,dataHandler:function(e){var t=[];if(e.Tenants){var n,i=(0,tr.Z)(e.Tenants);try{var r=function(){var e=n.value;if(e&&e.Nodes){var i=e.Nodes.map((function(t){return pt(pt({},t),{},{TenantName:e.Name,SystemState:null===t||void 0===t?void 0:t.Overall,Uptime:Ir(null===t||void 0===t?void 0:t.StartTime)})}));t.push.apply(t,(0,zt.Z)(i))}};for(i.s();!(n=i.n()).done;)r()}catch(o){i.e(o)}finally{i.f()}}return{Nodes:t,TotalNodes:t.length}}})}(n))}),[s,n,i,y]);Fh(b,[b],!!u||m),(0,e.useEffect)((function(){u&&s(jc([{text:ud.nodes.title,link:ld(cd.cluster,{activeTab:ud.nodes.id})}]))}),[s,u]);var w=function(e){s(function(e){return{type:Wr,data:e}}(e))},C=function(e){s(Di(e))},k=function(e){s(function(e){return{type:Br,data:e}}(e))},S=function(){s(Ma.apply(void 0,arguments))},x=function(){s(Da())},L=function(){var e=function(e){var t=e.showTooltip,n=e.hideTooltip,i=e.tabletsPath,r=e.getNodeRef;return[{name:"NodeId",header:"#",width:"80px",align:wn.RIGHT},{name:"Host",render:function(e){var t=e.row,n=r?r(t)+"internal":void 0;return"undefined"===typeof t.Host?(0,ra.jsx)("span",{children:"\u2014"}):(0,ra.jsx)("div",{className:Qh("host-field-wrapper"),children:(0,ra.jsx)(Hh.J,{content:(0,ra.jsx)(ha,{data:t}),placement:["top","bottom"],behavior:Bh.x.Immediate,children:(0,ra.jsxs)("div",{className:Qh("host-wrapper"),children:[(0,ra.jsx)(Hd,{name:t.Host,status:t.SystemState,path:$h(t.NodeId),hasClipboardButton:!0,className:Qh("host")}),n&&(0,ra.jsx)(dd.z,{size:"s",href:n,className:Qh("external-button"),target:"_blank",children:(0,ra.jsx)(ph,{name:"external"})})]})})})},width:"350px",align:wn.LEFT},{name:"DataCenter",header:"DC",align:wn.LEFT,render:function(e){var t=e.row;return t.DataCenter?t.DataCenter:"\u2014"},width:"60px"},{name:"Rack",header:"Rack",align:wn.LEFT,render:function(e){var t=e.row;return t.Rack?t.Rack:"\u2014"},width:"80px"},{name:"Version",width:"200px",align:wn.LEFT,render:function(e){var t=e.row;return(0,ra.jsx)(Hh.J,{content:t.Version,children:t.Version})}},{name:"Uptime",header:"Uptime",sortAccessor:function(e){var t=e.StartTime;return t&&-t},align:wn.RIGHT,width:"110px"},{name:"MemoryUsed",header:"Memory",sortAccessor:function(e){var t=e.MemoryUsed;return Number(void 0===t?0:t)},defaultOrder:wn.DESCENDING,render:function(e){var t=e.row;return t.MemoryUsed?wr(t.MemoryUsed):"\u2014"},align:wn.RIGHT,width:"120px"},{name:"PoolStats",header:"CPU",sortAccessor:function(e){var t=e.PoolStats;return(void 0===t?[]:t).reduce((function(e,t){return t.Usage?e+t.Usage:e}),0)},defaultOrder:wn.DESCENDING,render:function(e){var i=e.row;return i.PoolStats?(0,ra.jsx)(Gd,{onMouseEnter:t,onMouseLeave:n,pools:i.PoolStats}):"\u2014"},align:wn.LEFT,width:"120px"},{name:"LoadAverage",header:"Load average",sortAccessor:function(e){var t=e.LoadAverage;return(void 0===t?[]:t).slice(0,1).reduce((function(e,t){return e+t}),0)},defaultOrder:wn.DESCENDING,render:function(e){var t=e.row;return t.LoadAverage&&t.LoadAverage.length>0?(0,ra.jsx)(Vh,{value:t.LoadAverage[0],percents:!0,colorizeProgress:!0}):"\u2014"},align:wn.LEFT,width:"140px"},{name:"Tablets",width:"430px",render:function(e){var t=e.row;return t.Tablets?(0,ra.jsx)(th,{path:null!==i&&void 0!==i?i:t.TenantName,nodeIds:[t.NodeId],tablets:t.Tablets}):"\u2014"},align:wn.LEFT}]}({showTooltip:S,hideTooltip:x,getNodeRef:a.getNodeRef});return!_||0!==_.length||v===Rn&&f===_r.All?(0,ra.jsx)("div",{className:rf("table-wrapper"),children:(0,ra.jsx)("div",{className:rf("table-content"),children:(0,ra.jsx)(wn,{theme:"yandex-cloud",data:_||[],columns:e,settings:Gn,initialSortOrder:{columnId:"NodeId",order:wn.ASCENDING},emptyDataMessage:nf("empty.default"),rowClassName:function(e){return rf("node",{unavailable:Fr(e)})}})})}):(0,ra.jsx)(uh,{name:"thumbsUp",width:"200"})};return d&&!c?(0,ra.jsx)(Th,{size:u?"l":"m"}):h?403===h.status?(0,ra.jsx)(Dh,{}):(0,ra.jsx)("div",{children:h.statusText}):(0,ra.jsxs)("div",{className:rf(null,r),children:[(0,ra.jsxs)("div",{className:rf("controls"),children:[(0,ra.jsx)(Oh,{onChange:w,placeholder:"Host name",className:rf("search"),value:p}),(0,ra.jsx)(ih,{value:v,onChange:C}),(0,ra.jsx)(Ih,{value:f,onChange:k}),(0,ra.jsx)(Zh,{total:g,current:(null===_||void 0===_?void 0:_.length)||0,label:"Nodes",loading:d&&!c})]}),L()]})},af=n(27982),sf=(0,ct.Z)("storage-disk-progress-bar");!function(e){e[e.Grey=0]="Grey",e[e.Green=1]="Green",e[e.Blue=2]="Blue",e[e.Yellow=3]="Yellow",e[e.Orange=4]="Orange",e[e.Red=5]="Red"}(tf||(tf={}));var uf=Object.entries(tf).reduce((function(e,t){var n=(0,Ti.Z)(t,2),i=n[0],r=n[1];return pt(pt({},e),{},(0,ht.Z)({},r,i))}),{});function lf(t){var n=t.diskAllocatedPercent,i=void 0===n?-1:n,r=t.severity,o=t.compact,a=te((function(e){return JSON.parse(Ni(e,Fn))})),s={inverted:a,compact:o},u=void 0!==r&&uf[r];return u&&(s[u.toLocaleLowerCase()]=!0),(0,ra.jsx)("div",{className:sf(s),role:"meter","aria-label":"Disk allocated space","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":i,children:o?(0,ra.jsx)("div",{className:sf("filled"),style:{width:"100%"}}):i>=0&&(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)("div",{className:sf("filled"),style:{width:"".concat(a?100-i:i,"%")}}),(0,ra.jsx)("div",{className:sf("filled-title"),children:"".concat(Math.round(i),"%")})]})})}var cf=tf.Grey,df=function(e,t,n){return function(i){return 0<=i&&i<e?n[0]:e<=i&&i<t?n[1]:t<=i?n[2]:void 0}},hf=df(1,2,["success","warning","danger"]),ff={"block-4-2":df(1,2,["success","warning","danger"]),"mirror-3-dc":df(1,3,["success","warning","danger"])},pf=function(e){return(function(e){return void 0!==e&&e in ff}(e.ErasureSpecies)?ff[e.ErasureSpecies]:hf)(e.Missing)},gf=df(80,85,["success","warning","danger"]),vf=df(80,85,["Green","Yellow","Red"]),mf=df(85,95,[vr.Green,vr.Yellow,vr.Red]),_f=JSON.parse('{"label":"Usage:","default_value":"Any","groups_count":["{{count}} group","{{count}} groups","{{count}} groups","No groups"]}'),yf=JSON.parse('{"label":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435:","default_value":"\u041b\u044e\u0431\u043e\u0435","groups_count":["{{count}} \u0433\u0440\u0443\u043f\u043f\u0430","{{count}} \u0433\u0440\u0443\u043f\u043f\u044b","{{count}} \u0433\u0440\u0443\u043f\u043f","\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f"]}'),bf="ydb-usage-filter";gr.registerKeyset(ar.En,bf,_f),gr.registerKeyset(ar.Ru,bf,yf);var wf,Cf=gr.keyset(bf),kf=(0,ct.Z)("usage-filter"),Sf=function(t){var n=t.className,i=t.value,r=void 0===i?[]:i,o=t.groups,a=void 0===o?[]:o,s=t.onChange,u=t.debounce,l=void 0===u?200:u,c=t.disabled,d=(0,e.useState)(r),h=(0,Ti.Z)(d,2),f=h[0],p=h[1],g=(0,e.useRef)();(0,e.useEffect)((function(){p((function(e){return e.join(",")!==r.join(",")?r:e}))}),[r]);var v=(0,e.useMemo)((function(){return a.map((function(e){var t=e.threshold,n=e.count;return{value:String(t),text:"".concat(t,"%"),data:{count:n}}}))}),[a]),m=Math.max.apply(Math,(0,zt.Z)(a.map((function(e){return e.count}))));return(0,ra.jsx)(af.P,{className:kf(null,n),label:Cf("label"),value:f,placeholder:Cf("default_value"),options:v,multiple:!0,onUpdate:function(e){p(e),window.clearTimeout(g.current),g.current=window.setTimeout((function(){null===s||void 0===s||s(e)}),l)},renderOption:function(e){var t=e.value,n=e.data,i=e.text;return(0,ra.jsxs)("div",{className:kf("option"),children:[(0,ra.jsx)(Hd,{className:kf("option-title"),status:vf(Number(t)),name:i,size:"xs"}),(0,ra.jsxs)("div",{className:kf("option-meta"),children:[Cf("groups_count",{count:n.count}),(0,ra.jsx)("div",{className:kf("option-bar"),style:{width:"".concat(n.count/m*100,"%")}})]})]})},getOptionHeight:function(){return 50},popupWidth:280,disabled:c})},xf=n(73692),Lf=(0,ct.Z)("table-skeleton"),Ef=function(e){var t=e.rows,n=void 0===t?2:t,i=e.className;return(0,ra.jsxs)("div",{className:Lf(null,i),children:[(0,ra.jsxs)("div",{className:Lf("row"),children:[(0,ra.jsx)(xf.O,{className:Lf("col-1")}),(0,ra.jsx)(xf.O,{className:Lf("col-2")}),(0,ra.jsx)(xf.O,{className:Lf("col-3")}),(0,ra.jsx)(xf.O,{className:Lf("col-4")}),(0,ra.jsx)(xf.O,{className:Lf("col-5")})]}),(0,zt.Z)(new Array(n)).map((function(e,t){return(0,ra.jsx)("div",{className:Lf("row"),children:(0,ra.jsx)(xf.O,{className:Lf("col-full")})},"skeleton-row-".concat(t))}))]})};function Nf(){return Nf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Nf.apply(this,arguments)}var Df=function(t){return e.createElement("svg",Nf({viewBox:"0 0 18 18",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),wf||(wf=e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.692 1.566a.75.75 0 01.616 0l6 2.7a.75.75 0 01.442.684v2.296a9.75 9.75 0 01-5.936 8.973l-.52.221a.75.75 0 01-.587 0l-.52-.22A9.75 9.75 0 012.25 7.245V4.95a.75.75 0 01.442-.684l6-2.7zM3.75 5.435v1.81a8.25 8.25 0 005.023 7.594l.227.096.227-.096a8.25 8.25 0 005.023-7.593V5.435L9 3.072 3.75 5.435zm6 3.364a1.5 1.5 0 10-1.5 0v2.451a.75.75 0 001.5 0V8.8z"})))},Mf=(0,ct.Z)("stack"),Tf=function(t){var n=t.children,i=t.className;return(0,ra.jsx)("div",{className:Mf(null,i),children:e.Children.map(n,(function(t,n){return e.isValidElement(t)?(0,ra.jsx)("div",{className:Mf("layer"),style:(0,ht.Z)({},"--ydb-stack-level",n),children:t}):null}))})},Of=JSON.parse('{"default_message":"Everything is fine!","default_button_label":"Show All"}'),If=JSON.parse('{"default_message":"\u0412\u0441\u0451 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435!","default_button_label":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435"}'),Af="ydb-storage-empty-filter";gr.registerKeyset(ar.En,Af,Of),gr.registerKeyset(ar.Ru,Af,If);var Rf=gr.keyset(Af),Pf=function(e){var t=e.title,n=e.message,i=void 0===n?Rf("default_message"):n,r=e.showAll,o=void 0===r?Rf("default_button_label"):r,a=e.onShowAll;return(0,ra.jsx)(Sh,{image:(0,ra.jsx)(uh,{name:"thumbsUp"}),title:t,description:i,actions:a&&[(0,ra.jsx)(dd.z,{onClick:a,children:o},"show-all")]})},Zf=["className","to","onClick"],Ff=(0,ct.Z)("yc-link"),jf=function(e){var t=e.className,n=e.to,i=e.onClick,r=Rt(e,Zf);return n?(0,ra.jsx)(yd,pt({to:n,onClick:i,className:Ff({view:"normal"},t)},r)):(0,ra.jsx)("span",{className:t,onClick:i,children:r.children})},Hf=n(22920),Bf=["data","nodes"],zf=(0,ct.Z)("pdisk-storage-popup"),Wf=[vr.Orange,vr.Red,vr.Yellow],Vf=function(e,t){var n,i=e.AvailableSize,r=e.TotalSize,o=e.State,a=e.PDiskId,s=e.NodeId,u=e.Path,l=e.Realtime,c=e.Device,d=[{label:"PDisk",value:(n={NodeId:s,PDiskId:a},"".concat(n.NodeId,"-").concat(n.PDiskId))},{label:"State",value:o||"not available"},{label:"Type",value:ho(e)||"unknown"}];return s&&d.push({label:"Node Id",value:s}),t&&s&&t.get(s)&&d.push({label:"Host",value:t.get(s)}),u&&d.push({label:"Path",value:u}),d.push({label:"Available",value:"".concat(mi(i)," of ").concat(mi(r))}),l&&Wf.includes(l)&&d.push({label:"Realtime",value:l}),c&&Wf.includes(c)&&d.push({label:"Device",value:c}),d},Yf=function(t){var n=t.data,i=t.nodes,r=Rt(t,Bf),o=(0,e.useMemo)((function(){return Vf(n,i)}),[n,i]);return(0,ra.jsx)(Hf.G,pt(pt({className:zf(),placement:["top","bottom"],offset:[0,12]},r),{},{children:(0,ra.jsx)(aa,{title:"PDisk",info:o,size:"s"})}))},Uf=["data","poolName","nodes"],Kf=(0,ct.Z)("vdisk-storage-popup"),qf=function(t){var n=t.data,i=t.poolName,r=t.nodes,o=Rt(t,Uf),a=uo(n),s=(0,e.useMemo)((function(){return a?function(e,t){var n,i,r,o,a,s,u=e.VDiskId,l=e.VDiskState,c=e.SatisfactionRank,d=e.DiskSpace,h=e.FrontQueues,f=e.Replicated,p=e.UnsyncedVDisks,g=e.AllocatedSize,v=e.ReadThroughput,m=e.WriteThroughput,_=[{label:"VDisk",value:Cr(u)},{label:"State",value:null!==l&&void 0!==l?l:"not available"}];return t&&_.push({label:"StoragePool",value:t}),c&&(null===(n=c.FreshRank)||void 0===n?void 0:n.Flag)!==vr.Green&&_.push({label:"Fresh",value:null===(a=c.FreshRank)||void 0===a?void 0:a.Flag}),c&&(null===(i=c.LevelRank)||void 0===i?void 0:i.Flag)!==vr.Green&&_.push({label:"Level",value:null===(s=c.LevelRank)||void 0===s?void 0:s.Flag}),c&&null!==(r=c.FreshRank)&&void 0!==r&&r.RankPercent&&_.push({label:"Fresh",value:c.FreshRank.RankPercent}),c&&null!==(o=c.LevelRank)&&void 0!==o&&o.RankPercent&&_.push({label:"Level",value:c.LevelRank.RankPercent}),d&&d!==vr.Green&&_.push({label:"Space",value:d}),h&&h!==vr.Green&&_.push({label:"FrontQueues",value:h}),f||_.push({label:"Replicated",value:"NO"}),p&&_.push({label:"UnsyncVDisks",value:p}),Number(g)&&_.push({label:"Allocated",value:mi(g)}),Number(v)&&_.push({label:"Read",value:vi(v)}),Number(m)&&_.push({label:"Write",value:vi(m)}),_}(n,i):function(e,t){var n=e.NodeId,i=e.PDiskId,r=e.VSlotId,o=[{label:"State",value:"not available"}];return t&&o.push({label:"StoragePool",value:t}),o.push({label:"NodeId",value:null!==n&&void 0!==n?n:"\u2013"},{label:"PDiskId",value:null!==i&&void 0!==i?i:"\u2013"},{label:"VSlotId",value:null!==r&&void 0!==r?r:"\u2013"}),o}(n,i)}),[n,i,a]),u=(0,e.useMemo)((function(){return a&&n.PDisk&&Vf(n.PDisk,r)}),[n,r,a]);return(0,ra.jsxs)(Hf.G,pt(pt({className:Kf(),placement:["top","bottom"],offset:[0,12]},o),{},{children:[n.DonorMode&&(0,ra.jsx)(Ah._,{className:Kf("donor-label"),children:"Donor"}),(0,ra.jsx)(aa,{title:"VDisk",info:s,size:"s"}),u&&(0,ra.jsx)(aa,{title:"PDisk",info:u,size:"s"})]}))},Gf=(0,ct.Z)("vdisk-storage"),$f={Initial:tf.Yellow,LocalRecoveryError:tf.Red,SyncGuidRecoveryError:tf.Red,SyncGuidRecovery:tf.Yellow,PDiskError:tf.Red,OK:tf.Green},Qf=function(e){var t;return e&&null!==(t=$f[e])&&void 0!==t?t:cf},Xf=function(e){var t;return e&&null!==(t=tf[e])&&void 0!==t?t:tf.Grey},Jf=function(t){var n,i,r=t.data,o=void 0===r?{}:r,a=t.poolName,s=t.nodes,u=t.compact,l=uo(o),c=(0,e.useState)(Qf(l?o.VDiskState:void 0)),d=(0,Ti.Z)(c,2),h=d[0],f=d[1],p=(0,e.useState)(!1),g=(0,Ti.Z)(p,2),v=g[0],m=g[1],_=(0,e.useRef)(null);(0,e.useEffect)((function(){if(l){var e=o.DiskSpace,t=o.VDiskState,n=o.FrontQueues,i=o.Replicated,r=o.DonorMode;if(t){var a=Xf(e),s=Qf(t),u=Math.min(tf.Orange,Xf(n)),c=Math.max(a,s,u);i||r||c!==tf.Green||(c=tf.Blue),f(c)}else f(cf)}else f(cf)}),[o,l]);var y=(0,e.useMemo)((function(){if(l){var e=o.AvailableSize,t=o.AllocatedSize,n=o.PDisk,i=e||(null===n||void 0===n?void 0:n.AvailableSize);if(i)return isNaN(Number(t))?void 0:100*Number(t)/(Number(i)+Number(t))}}),[o,l]);return(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(qf,{data:o,poolName:a,nodes:s,anchorRef:_,open:v}),(0,ra.jsx)("div",{className:Gf(),ref:_,onMouseEnter:function(){m(!0)},onMouseLeave:function(){m(!1)},children:o.NodeId&&l?(0,ra.jsx)(jf,{to:ld(cd.node,{id:o.NodeId,activeTab:qh},{pdiskId:null!==(n=o.PDiskId)&&void 0!==n?n:null===(i=o.PDisk)||void 0===i?void 0:i.PDiskId,vdiskId:Cr(o.VDiskId)}),className:Gf("content"),children:(0,ra.jsx)(lf,{diskAllocatedPercent:y,severity:h,compact:u})}):(0,ra.jsx)(lf,{diskAllocatedPercent:y,severity:h,compact:u})})]})},ep=JSON.parse('{"empty.default":"No such groups","empty.out_of_space":"No groups with out of space errors","empty.degraded":"No degraded groups","show_all":"Show all groups","encrypted":"Encrypted group"}'),tp=JSON.parse('{"empty.default":"\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f","empty.out_of_space":"\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u043e","empty.degraded":"\u041d\u0435\u0442 \u0434\u0435\u0433\u0440\u0430\u0434\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0438\u0445 \u0433\u0440\u0443\u043f\u043f","show_all":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b","encrypted":"\u0417\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430"}'),np="ydb-storage-groups";gr.registerKeyset(ar.En,np,ep),gr.registerKeyset(ar.Ru,np,tp);var ip,rp=gr.keyset(np);!function(e){e.PoolName="PoolName",e.Type="Type",e.ErasureSpecies="ErasureSpecies",e.GroupID="GroupID",e.Used="Used",e.Limit="Limit",e.UsedPercents="UsedPercents",e.UsedSpaceFlag="UsedSpaceFlag",e.Read="Read",e.Write="Write",e.VDisks="VDisks",e.Missing="Missing"}(ip||(ip={}));var op={PoolName:"Pool Name",Type:"Type",ErasureSpecies:"Erasure",GroupID:"Group ID",Used:"Used",Limit:"Limit",UsedSpaceFlag:"Space",UsedPercents:"Usage",Read:"Read",Write:"Write",VDisks:"VDisks",Missing:"Degraded"},ap=(0,ct.Z)("global-storage-groups");function sp(e){switch(e){case fo.All:case fo.Missing:return{columnId:ip.Missing,order:wn.DESCENDING};case fo.Space:return{columnId:ip.UsedSpaceFlag,order:wn.ASCENDING};default:return}}var up,lp,cp=function(e){var t=e.data,n=e.tableSettings,i=e.visibleEntities,r=e.nodes,o=e.onShowAll,a=[{name:ip.PoolName,header:op[ip.PoolName],width:250,render:function(e){var t=e.value,n=null===t||void 0===t?void 0:t.split("/");return(0,ra.jsx)("div",{className:ap("pool-name-wrapper"),children:n&&(0,ra.jsx)(Hh.J,{content:t,placement:["right"],behavior:Bh.x.Immediate,children:(0,ra.jsx)("span",{className:ap("pool-name"),children:n[n.length-1]})})})},align:wn.LEFT},{name:ip.Type,header:op[ip.Type],render:function(e){var t=e.value,n=e.row;return(0,ra.jsxs)(ra.Fragment,{children:[(0,ra.jsx)(Ah._,{children:t||"\u2014"})," ",n.Encryption&&(0,ra.jsx)(Hh.J,{content:rp("encrypted"),placement:"right",behavior:Bh.x.Immediate,children:(0,ra.jsx)(Ah._,{children:(0,ra.jsx)(kd.J,{data:Df})})})]})}},{name:ip.ErasureSpecies,header:op[ip.ErasureSpecies],render:function(e){var t=e.row;return t.ErasureSpecies?t.ErasureSpecies:"-"},align:wn.LEFT},{name:ip.Missing,header:op[ip.Missing],width:100,render:function(e){var t=e.value,n=e.row;return t?(0,ra.jsxs)(Ah._,{theme:pf(n),children:["Degraded: ",t]}):"-"},align:wn.LEFT,defaultOrder:wn.DESCENDING},{name:ip.UsedPercents,header:op[ip.UsedPercents],width:100,render:function(e){var t=e.row,n=lo(t,5);return t.Limit?(0,ra.jsxs)(Ah._,{theme:gf(n),className:ap("usage-label",{overload:n>=90}),children:[n,"%"]}):"-"},sortAccessor:function(e){return e.Limit?lo(e):null},align:wn.LEFT},{name:ip.GroupID,header:op[ip.GroupID],width:130,render:function(e){var t=e.value;return(0,ra.jsx)("span",{className:ap("group-id"),children:t})},align:wn.RIGHT},{name:ip.Used,header:op[ip.Used],width:100,render:function(e){return mi(e.value,!0)},align:wn.RIGHT},{name:ip.Limit,header:op[ip.Limit],width:100,render:function(e){return mi(e.value)},align:wn.RIGHT},{name:ip.UsedSpaceFlag,header:op[ip.UsedSpaceFlag],width:110,render:function(e){var t=e.value,n="Red";return t<100?n="Green":t<1e4?n="Yellow":t<1e6&&(t="Orange"),(0,ra.jsx)(Hd,{status:n})},align:wn.CENTER},{name:ip.Read,header:op[ip.Read],width:100,render:function(e){var t=e.value;return t?vi(t):"-"},align:wn.RIGHT},{name:ip.Write,header:op[ip.Write],width:100,render:function(e){var t=e.value;return t?vi(t):"-"},align:wn.RIGHT},{name:ip.VDisks,className:ap("vdisks-column"),header:op[ip.VDisks],render:function(e){var t=e.value,n=e.row;return(0,ra.jsx)("div",{className:ap("vdisks-wrapper"),children:Zt().map(t,(function(e){var t=e.Donors;return t&&t.length>0?(0,ra.jsxs)(Tf,{className:ap("vdisks-item"),children:[(0,ra.jsx)(Jf,{data:e,poolName:n[ip.PoolName],nodes:r}),t.map((function(e){var t=uo(e);return(0,ra.jsx)(Jf,{data:t?e:pt(pt({},e),{},{DonorMode:!0}),poolName:n[ip.PoolName],nodes:r},Cr(t?e.VDiskId:e))}))]},Cr(e.VDiskId)):(0,ra.jsx)("div",{className:ap("vdisks-item"),children:(0,ra.jsx)(Jf,{data:e,poolName:n[ip.PoolName],nodes:r})},Cr(e.VDiskId))}))})},align:wn.CENTER,sortable:!1,width:900}],s=a;return i!==fo.Space||(s=a.filter((function(e){return e.name!==ip.Missing})),t.length)?i!==fo.Missing||(s=a.filter((function(e){return e.name!==ip.UsedSpaceFlag})),t.length)?t?(0,ra.jsx)(wn,{theme:"yandex-cloud",data:t,columns:s,settings:n,initialSortOrder:sp(i),emptyDataMessage:rp("empty.default")},i):null:(0,ra.jsx)(Pf,{title:rp("empty.degraded"),showAll:rp("show_all"),onShowAll:o}):(0,ra.jsx)(Pf,{title:rp("empty.out_of_space"),showAll:rp("show_all"),onShowAll:o})};!function(e){e.Initial="Initial",e.InitialFormatRead="InitialFormatRead",e.InitialFormatReadError="InitialFormatReadError",e.InitialSysLogRead="InitialSysLogRead",e.InitialSysLogReadError="InitialSysLogReadError",e.InitialSysLogParseError="InitialSysLogParseError",e.InitialCommonLogRead="InitialCommonLogRead",e.InitialCommonLogReadError="InitialCommonLogReadError",e.InitialCommonLogParseError="InitialCommonLogParseError",e.CommonLoggerInitError="CommonLoggerInitError",e.Normal="Normal",e.OpenFileError="OpenFileError",e.ChunkQuotaError="ChunkQuotaError",e.DeviceIoError="DeviceIoError",e.Missing="Missing",e.Timeout="Timeout",e.NodeDisconnected="NodeDisconnected",e.Unknown="Unknown"}(up||(up={}));var dp=(0,ct.Z)("pdisk-storage"),hp=(lp={},(0,ht.Z)(lp,up.Initial,tf.Grey),(0,ht.Z)(lp,up.Normal,tf.Green),(0,ht.Z)(lp,up.InitialFormatRead,tf.Yellow),(0,ht.Z)(lp,up.InitialSysLogRead,tf.Yellow),(0,ht.Z)(lp,up.InitialCommonLogRead,tf.Yellow),(0,ht.Z)(lp,up.InitialFormatReadError,tf.Red),(0,ht.Z)(lp,up.InitialSysLogReadError,tf.Red),(0,ht.Z)(lp,up.InitialSysLogParseError,tf.Red),(0,ht.Z)(lp,up.InitialCommonLogReadError,tf.Red),(0,ht.Z)(lp,up.InitialCommonLogParseError,tf.Red),(0,ht.Z)(lp,up.CommonLoggerInitError,tf.Red),(0,ht.Z)(lp,up.OpenFileError,tf.Red),(0,ht.Z)(lp,up.ChunkQuotaError,tf.Red),(0,ht.Z)(lp,up.DeviceIoError,tf.Red),lp),fp=function(e){return function(e){return void 0!==e&&e in hp}(e)?hp[e]:cf},pp=function(t){var n=t.nodeId,i=t.data,r=void 0===i?{}:i,o=(0,e.useMemo)((function(){return pt(pt({},r),{},{NodeId:n})}),[r,n]),a=jh((function(e){return Oo(e,n,o.PDiskId)})),s=(0,e.useState)(fp(o.State)),u=(0,Ti.Z)(s,2),l=u[0],c=u[1],d=(0,e.useState)(!1),h=(0,Ti.Z)(d,2),f=h[0],p=h[1],g=(0,e.useRef)(null),v=(0,e.useMemo)((function(){var e=o.AvailableSize,t=o.TotalSize;if(e&&t)return isNaN(Number(e))||isNaN(Number(t))?void 0:Math.round(100*(Number(t)-Number(e))/Number(t))}),[o]);(0,e.useEffect)((function(){var e,t=fp(o.State),n=mf(v||0);e=t!==cf&&n?Math.max(t,tf[n]):t,c(e)}),[o.State,v]);return(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(Yf,{data:o,anchorRef:g,open:f}),(0,ra.jsxs)("div",{className:dp(),ref:g,children:[null!==a&&void 0!==a&&a.length?(0,ra.jsx)("div",{className:dp("vdisks"),children:a.map((function(e){var t=e.Donors;return(0,ra.jsx)("div",{className:dp("vdisks-item"),style:{flexGrow:Number(e.AllocatedSize)||1},children:t&&t.length?(0,ra.jsxs)(Tf,{className:dp("donors-stack"),children:[(0,ra.jsx)(Jf,{data:e,compact:!0}),t.map((function(e){var t=uo(e);return(0,ra.jsx)(Jf,{compact:!0,data:t?e:pt(pt({},e),{},{DonorMode:!0})},Cr(t?e.VDiskId:e))}))]},Cr(e.VDiskId)):(0,ra.jsx)(Jf,{data:e,compact:!0})},Cr(e.VDiskId))}))}):null,(0,ra.jsxs)(jf,{to:ld(cd.node,{id:n,activeTab:qh},{pdiskId:o.PDiskId||""}),className:dp("content"),onMouseEnter:function(){p(!0)},onMouseLeave:function(){p(!1)},children:[(0,ra.jsx)(lf,{diskAllocatedPercent:v,severity:l}),(0,ra.jsx)("div",{className:dp("media-type"),children:ho(o)})]})]})]})},gp=JSON.parse('{"empty.default":"No such nodes","empty.out_of_space":"No nodes with out of space errors","empty.degraded":"No degraded nodes","empty.small_uptime":"No nodes with uptime < 1h","empty.several_filters":"No nodes match current filters combination","show_all":"Show all nodes"}'),vp=JSON.parse('{"empty.default":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432","empty.out_of_space":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u043e","empty.degraded":"\u041d\u0435\u0442 \u0434\u0435\u0433\u0440\u0430\u0434\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0438\u0445 \u0443\u0437\u043b\u043e\u0432","empty.small_uptime":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432 \u0441 uptime < 1h","empty.several_filters":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u043e\u0434 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u044b","show_all":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u0443\u0437\u043b\u044b"}'),mp="ydb-storage-nodes";gr.registerKeyset(ar.En,mp,gp),gr.registerKeyset(ar.Ru,mp,vp);var _p,yp=gr.keyset(mp);!function(e){e.NodeId="NodeId",e.FQDN="FQDN",e.DataCenter="DataCenter",e.Rack="Rack",e.uptime="uptime",e.PDisks="PDisks",e.Missing="Missing"}(_p||(_p={}));var bp={NodeId:"Node ID",FQDN:"FQDN",DataCenter:"DC",Rack:"Rack",uptime:"Uptime",PDisks:"PDisks",Missing:"Missing"},wp=(0,ct.Z)("global-storage-nodes");function Cp(e){switch(e){case fo.All:return{columnId:_p.NodeId,order:wn.ASCENDING};case fo.Missing:return{columnId:_p.Missing,order:wn.DESCENDING};default:return}}var kp=function(e){var t,n=e.data,i=e.tableSettings,r=e.visibleEntities,o=e.onShowAll,a=e.nodesUptimeFilter,s=e.additionalNodesInfo,u=null===s||void 0===s?void 0:s.getNodeRef,l=[{name:_p.NodeId,header:bp[_p.NodeId],width:100,align:wn.RIGHT},{name:_p.FQDN,header:bp[_p.FQDN],width:350,render:function(e){var t=e.row,n=u?u(t)+"internal":void 0;return t.Host?(0,ra.jsx)("div",{className:wp("fqdn-field-wrapper"),children:(0,ra.jsx)(Hh.J,{content:(0,ra.jsx)(ha,{data:t}),placement:["top","bottom"],behavior:Bh.x.Immediate,children:(0,ra.jsxs)("div",{className:wp("fqdn-wrapper"),children:[(0,ra.jsx)(Hd,{name:t.Host,showStatus:!1,path:$h(t.NodeId),hasClipboardButton:!0,className:wp("fqdn")}),n&&(0,ra.jsx)(dd.z,{size:"s",href:n,className:wp("external-button"),target:"_blank",children:(0,ra.jsx)(ph,{name:"external"})})]})})}):(0,ra.jsx)("span",{children:"\u2014"})},align:wn.LEFT},{name:_p.DataCenter,header:bp[_p.DataCenter],render:function(e){return e.row.DataCenter||"\u2014"},align:wn.LEFT},{name:_p.Rack,header:bp[_p.Rack],render:function(e){return e.row.Rack||"\u2014"},align:wn.LEFT},{name:_p.uptime,header:bp[_p.uptime],width:130,sortAccessor:function(e){return-e.StartTime},align:wn.RIGHT},{name:_p.Missing,header:bp[_p.Missing],width:100,align:wn.CENTER,defaultOrder:wn.DESCENDING},{name:_p.PDisks,className:wp("pdisks-column"),header:bp[_p.PDisks],render:function(e){var t=e.value,n=e.row;return(0,ra.jsx)("div",{className:wp("pdisks-wrapper"),children:Zt().map(t,(function(e){return(0,ra.jsx)("div",{className:wp("pdisks-item"),children:(0,ra.jsx)(pp,{data:e,nodeId:n.NodeId})},e.PDiskId)}))})},align:wn.CENTER,sortable:!1,width:900}],c=l;return r===fo.Space&&(c=l.filter((function(e){return e.name!==_p.Missing}))),!n.length&&(r===fo.Space&&(t=yp("empty.out_of_space")),r===fo.Missing&&(t=yp("empty.degraded")),a===_r.SmallUptime&&(t=yp("empty.small_uptime")),r!==fo.All&&a!==_r.All&&(t=yp("empty.several_filters")),t)?(0,ra.jsx)(Pf,{title:t,showAll:yp("show_all"),onShowAll:o}):n?(0,ra.jsx)(wn,{theme:"yandex-cloud",data:n,columns:c,settings:pt(pt({},i),{},{dynamicRenderType:"variable"}),initialSortOrder:Cp(r),emptyDataMessage:yp("empty.default"),rowClassName:function(e){return wp("node",{unavailable:Fr(e)})}},r):null},Sp=(0,ct.Z)("global-storage"),xp={Missing:"missing",Space:"space"},Lp=pt(pt({},Gn),{},{defaultOrder:wn.DESCENDING}),Ep=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).onGroupVisibilityChange=function(t){(0,e.props.setVisibleEntities)(t)},e.onStorageTypeChange=function(t){(0,e.props.setStorageType)(t)},e.onUptimeFilterChange=function(t){e.props.setNodesUptimeFilter(t)},e.onShowAllNodes=function(){e.onGroupVisibilityChange(fo.All),e.onUptimeFilterChange(_r.All)},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this,t=this.props,n=t.tenant,i=t.nodeId,r=t.setVisibleEntities,o=t.storageType,a=t.setHeader,s=t.getNodesList;this.autofetcher=new lh,s(),n||i?(r(fo.All),this.getStorageInfo({filter:xp.All,type:o})):(a([{text:ud.storage.title,link:ld(cd.cluster,{activeTab:ud.storage.id})}]),this.getStorageInfo({filter:xp.Missing,type:o}),this.autofetcher.fetch((function(){return e.getStorageInfo({filter:xp.Missing,type:o})})))}},{key:"componentDidUpdate",value:function(e){var t=this,n=this.props,i=n.visibleEntities,r=n.storageType,o=n.autorefresh,a=n.database,s=n.tenant,u=n.setDataWasNotLoaded,l=function(){t.getStorageInfo({filter:xp[i],type:r})},c=function(){t.autofetcher.stop(),t.autofetcher.start(),t.autofetcher.fetch((function(){return t.getStorageInfo({filter:xp[i],type:r})}))};a&&!o&&e.autorefresh&&this.autofetcher.stop(),a&&o&&!e.autorefresh&&(l(),c()),r===e.storageType&&i===e.visibleEntities||(l(),(!a||a&&o)&&c()),s!==e.tenant&&(u(),l(),c())}},{key:"componentWillUnmount",value:function(){this.autofetcher.stop(),this.props.setInitialState()}},{key:"getStorageInfo",value:function(e){var t=this.props,n=t.tenant,i=t.nodeId,r=t.getStorageInfo;r(pt({tenant:n,nodeId:i},e),{concurrentId:"getStorageInfo"})}},{key:"renderLoader",value:function(){return(0,ra.jsx)(Ef,{className:Sp("loader")})}},{key:"renderDataTable",value:function(){var e=this,t=this.props,n=t.flatListStorageEntities,i=t.visibleEntities,r=t.nodesUptimeFilter,o=t.nodes,a=t.storageType,s=t.additionalNodesInfo;return(0,ra.jsxs)("div",{className:Sp("table-wrapper"),children:[a===go.groups&&(0,ra.jsx)(cp,{visibleEntities:i,data:n,tableSettings:Lp,nodes:o,onShowAll:function(){return e.onGroupVisibilityChange(fo.All)}}),a===go.nodes&&(0,ra.jsx)(kp,{visibleEntities:i,nodesUptimeFilter:r,data:n,tableSettings:Lp,onShowAll:this.onShowAllNodes,additionalNodesInfo:s})]})}},{key:"renderEntitiesCount",value:function(){var e=this.props,t=e.storageType,n=e.groupsCount,i=e.nodesCount,r=e.flatListStorageEntities,o=e.loading,a=e.wasLoaded,s=t===go.groups?"Groups":"Nodes",u=t===go.groups?n:i;return(0,ra.jsx)(Zh,{label:s,loading:o&&!a,total:u.total,current:r.length})}},{key:"renderControls",value:function(){var e=this.props,t=e.filter,n=e.setStorageFilter,i=e.visibleEntities,r=e.storageType,o=e.usageFilter,a=e.nodesUptimeFilter,s=e.setUsageFilter,u=e.usageFilterOptions;return(0,ra.jsxs)("div",{className:Sp("controls"),children:[(0,ra.jsx)("div",{className:Sp("search"),children:(0,ra.jsx)(Oh,{placeholder:r===go.groups?"Group ID, Pool name":"Node ID, FQDN",onChange:n,value:t})}),(0,ra.jsxs)(nh.E,{value:r,onUpdate:this.onStorageTypeChange,children:[(0,ra.jsx)(nh.E.Option,{value:go.groups,children:go.groups}),(0,ra.jsx)(nh.E.Option,{value:go.nodes,children:go.nodes})]}),(0,ra.jsxs)(nh.E,{value:i,onUpdate:this.onGroupVisibilityChange,children:[(0,ra.jsx)(nh.E.Option,{value:fo.Missing,children:po[fo.Missing]}),(0,ra.jsx)(nh.E.Option,{value:fo.Space,children:po[fo.Space]}),(0,ra.jsx)(nh.E.Option,{value:fo.All,children:po[fo.All]})]}),r===go.nodes&&(0,ra.jsx)(Ih,{value:a,onChange:this.onUptimeFilterChange}),r===go.groups&&(0,ra.jsx)(Sf,{value:o,onChange:s,groups:u,disabled:0===u.length}),this.renderEntitiesCount()]})}},{key:"render",value:function(){var e=this.props,t=e.loading,n=e.wasLoaded,i=e.error,r=t&&!n;return i?403===i.status?(0,ra.jsx)(Dh,{}):(0,ra.jsx)("div",{className:Sp(),children:i.statusText}):(0,ra.jsxs)("div",{className:Sp(),children:[this.renderControls(),r?this.renderLoader():this.renderDataTable()]})}}]),n}(e.Component);var Np={getStorageInfo:function(e,t){var n=e.tenant,i=e.filter,r=e.nodeId,o=e.type,a=t.concurrentId;return o===go.nodes?Wi({request:window.api.getNodes({tenant:n,filter:i,type:"static"},{concurrentId:a}),actions:vo}):Wi({request:window.api.getStorageInfo({tenant:n,filter:i,nodeId:r},{concurrentId:a}),actions:vo})},setInitialState:function(){return{type:mo}},setStorageFilter:function(e){return{type:_o,data:e}},setUsageFilter:function(e){return{type:yo,data:e}},setVisibleEntities:function(e){return{type:bo,data:e}},setNodesUptimeFilter:function(e){return{type:Co,data:e}},getNodesList:function(){return Wi({request:window.api.getNodesList(),actions:Il})},setStorageType:function(e){return{type:wo,data:e}},setHeader:jc,setDataWasNotLoaded:function(){return{type:ko}}},Dp=U((function(e){var t=e.storage,n=t.loading,i=t.wasLoaded,r=t.error,o=t.visible,a=t.type,s=t.filter,u=t.usageFilter,l=t.nodesUptimeFilter;return{flatListStorageEntities:Ro(e),groupsCount:xo(e),autorefresh:e.schema.autorefresh,nodes:Rl(e),nodesCount:Eo(e),loading:n,wasLoaded:i,error:r,visibleEntities:o,storageType:a,filter:s,usageFilter:u,nodesUptimeFilter:l,usageFilterOptions:Po(e)}}),Np)(Ep),Mp=(0,ct.Z)("tag"),Tp=function(e){var t=e.text,n=e.type;return(0,ra.jsx)("div",{className:Mp({type:n}),children:t})},Op=(0,ct.Z)("tags"),Ip=function(e){var t=e.tags,n=e.tagsType,i=e.className,r=void 0===i?"":i;return(0,ra.jsx)("div",{className:Op(null,r),children:t&&t.map((function(e,t){return(0,ra.jsx)(Tp,{text:e,type:n},t)}))})},Ap=(0,ct.Z)("tablet"),Rp=function(t){var n,i=t.tablet,r=void 0===i?{}:i,o=t.onMouseEnter,a=void 0===o?function(){}:o,s=t.onMouseLeave,u=void 0===s?function(){}:s,l=(0,e.useRef)(null),c=r.TabletId,d=null===(n=r.Overall)||void 0===n?void 0:n.toLowerCase();return(0,ra.jsx)(jf,{onClick:function(){r.TabletId&&u()},to:c&&ld(cd.tablet,{id:c}),className:Ap("wrapper"),children:(0,ra.jsx)("div",{ref:l,className:Ap({status:d}),onMouseEnter:function(){a(l.current,r,"tablet")},onMouseLeave:u,children:(0,ra.jsx)("div",{className:Ap("type"),children:[Tn(r.Type)]})})})},Pp=(0,ct.Z)("cluster-info"),Zp=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;(0,i.Z)(this,s);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(t=n.call.apply(n,[this].concat(o))).autofetcher=void 0,t.renderContent=function(){var n=t.props,i=n.cluster,r=void 0===i?{}:i,o=n.showTooltip,a=n.hideTooltip,u=n.clusterTitle,l=n.loading,c=n.wasLoaded,d=r.Name,h=void 0===d?"Unknown cluster":d,f=t.getInfo();return l&&!c?t.renderLoader():(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsxs)("div",{className:Pp("common"),children:[(0,ra.jsx)("div",{className:Pp("url"),children:(0,ra.jsx)(Hd,{size:"m",status:r.Overall,name:null!==u&&void 0!==u?u:h})}),r.DataCenters&&(0,ra.jsx)(Ip,{tags:r.DataCenters}),(0,ra.jsx)("div",{className:Pp("system-tablets"),children:r.SystemTablets&&r.SystemTablets.sort(s.compareTablets).map((function(e,t){return(0,ra.jsx)(Rp,{onMouseEnter:o,onMouseLeave:a,tablet:e},t)}))})]}),(0,ra.jsx)(aa,{dots:!0,info:f})]})},t}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){var e=this;(0,this.props.setHeader)([{text:ud.cluster.title,link:ld(cd.cluster,{activeTab:ud.cluster.id})}]),this.props.getClusterInfo(Jc),this.autofetcher=new lh,this.autofetcher.fetch((function(){return e.props.getClusterInfo(Jc)}))}},{key:"shouldComponentUpdate",value:function(e){var t=e.cluster,n=void 0===t?{}:t;return!(0===Object.keys(n).length)}},{key:"componentWillUnmount",value:function(){this.autofetcher.stop()}},{key:"renderLoader",value:function(){return(0,ra.jsx)("div",{className:Pp("loader"),children:(0,ra.jsx)(fd.a,{size:"l"})})}},{key:"render",value:function(){var e,t=this.props,n=t.className,i=t.error;return i&&(e=i.statusText),(0,ra.jsx)("div",{className:Pp(null,n),children:e||this.renderContent()})}},{key:"getInfo",value:function(){var e,t=this.props,n=t.cluster,i=void 0===n?{}:n,r=t.additionalClusterInfo,o=void 0===r?[]:r,a=t.singleClusterMode,s=i.StorageTotal,u=i.StorageUsed,l=Qc+"/internal";return a&&!ad&&(l="/internal"),[{label:"Nodes",value:(0,ra.jsx)(Vh,{className:Pp("metric-field"),value:i.NodesAlive,capacity:i.NodesTotal})},{label:"Load",value:(0,ra.jsx)(Vh,{className:Pp("metric-field"),value:i.LoadAverage,capacity:i.NumberOfCpus})},{label:"Storage",value:(0,ra.jsx)(Vh,{className:Pp("metric-field"),value:u,capacity:s,formatValues:Lr})},{label:"Versions",value:(0,ra.jsx)("div",{children:null===(e=i.Versions)||void 0===e?void 0:e.join(", ")})}].concat((0,zt.Z)(o),[{label:"Internal viewer",value:(0,ra.jsx)(Sd.r,{href:l,target:"_blank",children:(0,ra.jsx)(fh,{name:"external",viewBox:"0 0 16 16",width:16,height:16})})}])}}],[{key:"compareTablets",value:function(e,t){return e.Type===Dn?1:t.Type===Dn?-1:0}}]),s}(e.Component),Fp=U((function(e){var t=e.cluster,n=t.data,i=t.loading,r=t.error;return{cluster:n,loading:i,wasLoaded:t.wasLoaded,error:r,singleClusterMode:e.singleClusterMode}}),{getClusterInfo:Qr,hideTooltip:Da,showTooltip:Ma,setHeader:jc})(Zp),jp=(0,ct.Z)("cluster");var Hp=function(e){var t,n,i=lt(cd.cluster),r=null!==(t=null===i||void 0===i||null===(n=i.params)||void 0===n?void 0:n.activeTab)&&void 0!==t?t:ud.tenants.id;return(0,ra.jsx)("div",{className:jp(),children:function(){switch(r){case ud.tenants.id:return(0,ra.jsx)(wh,pt({},e));case ud.nodes.id:return(0,ra.jsx)(of,{additionalNodesInfo:e.additionalNodesInfo});case ud.storage.id:return(0,ra.jsx)(Dp,pt({},e));case ud.cluster.id:return(0,ra.jsx)(Fp,{additionalClusterInfo:e.additionalClusterInfo});default:return null}}()})},Bp=n(64624),zp=(0,ct.Z)("object-general-tabs");var Wp=U(null,{setSettingValue:Ei})((function(e){var t=ut(),n=vt().parse(t.search,{ignoreQueryPrefix:!0}),i=n.name,r=n.general;return i?(0,ra.jsx)("div",{className:zp(),children:(0,ra.jsx)(Bp.m,{size:"xl",items:gh,activeTab:r,wrapTo:function(e,t){var r=e.id,o=ld(cd.tenant,void 0,pt(pt({},n),{},(0,ht.Z)({name:i},hh.general,r)));return(0,ra.jsx)(yd,{to:o,className:zp("tab"),children:t},r)},allowNotSelected:!0,onSelectTab:function(t){return e.setSettingValue($n,t)}})}):null})),Vp=n(54985),Yp="undefined"!==typeof window?window:null,Up=null===Yp,Kp=Up?void 0:Yp.document,qp="addEventListener",Gp="removeEventListener",$p="getBoundingClientRect",Qp="_a",Xp="_b",Jp="_c",eg="horizontal",tg=function(){return!1},ng=Up?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=Kp.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",ig=function(e){return"string"===typeof e||e instanceof String},rg=function(e){if(ig(e)){var t=Kp.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},og=function(e,t,n){var i=e[t];return void 0!==i?i:n},ag=function(e,t,n,i){if(t){if("end"===i)return 0;if("center"===i)return e/2}else if(n){if("start"===i)return 0;if("center"===i)return e/2}return e},sg=function(e,t){var n=Kp.createElement("div");return n.className="gutter gutter-"+t,n},ug=function(e,t,n){var i={};return ig(t)?i[e]=t:i[e]=ng+"("+t+"% - "+n+"px)",i},lg=function(e,t){var n;return(n={})[e]=t+"px",n},cg=function(e,t){if(void 0===t&&(t={}),Up)return{};var n,i,r,o,a,s,u=e;Array.from&&(u=Array.from(u));var l=rg(u[0]).parentNode,c=getComputedStyle?getComputedStyle(l):null,d=c?c.flexDirection:null,h=og(t,"sizes")||u.map((function(){return 100/u.length})),f=og(t,"minSize",100),p=Array.isArray(f)?f:u.map((function(){return f})),g=og(t,"maxSize",1/0),v=Array.isArray(g)?g:u.map((function(){return g})),m=og(t,"expandToMin",!1),_=og(t,"gutterSize",10),y=og(t,"gutterAlign","center"),b=og(t,"snapOffset",30),w=Array.isArray(b)?b:u.map((function(){return b})),C=og(t,"dragInterval",1),k=og(t,"direction",eg),S=og(t,"cursor",k===eg?"col-resize":"row-resize"),x=og(t,"gutter",sg),L=og(t,"elementStyle",ug),E=og(t,"gutterStyle",lg);function N(e,t,i,r){var o=L(n,t,i,r);Object.keys(o).forEach((function(t){e.style[t]=o[t]}))}function D(){return s.map((function(e){return e.size}))}function M(e){return"touches"in e?e.touches[0][i]:e[i]}function T(e){var t=s[this.a],n=s[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,N(t.element,t.size,this[Xp],t.i),N(n.element,n.size,this[Jp],n.i)}function O(e){var n,i=s[this.a],r=s[this.b];this.dragging&&(n=M(e)-this.start+(this[Xp]-this.dragOffset),C>1&&(n=Math.round(n/C)*C),n<=i.minSize+i.snapOffset+this[Xp]?n=i.minSize+this[Xp]:n>=this.size-(r.minSize+r.snapOffset+this[Jp])&&(n=this.size-(r.minSize+this[Jp])),n>=i.maxSize-i.snapOffset+this[Xp]?n=i.maxSize+this[Xp]:n<=this.size-(r.maxSize-r.snapOffset+this[Jp])&&(n=this.size-(r.maxSize+this[Jp])),T.call(this,n),og(t,"onDrag",tg)(D()))}function I(){var e=s[this.a].element,t=s[this.b].element,i=e[$p](),a=t[$p]();this.size=i[n]+a[n]+this[Xp]+this[Jp],this.start=i[r],this.end=i[o]}function A(e){var t=function(e){if(!getComputedStyle)return null;var t=getComputedStyle(e);if(!t)return null;var n=e[a];return 0===n?null:n-=k===eg?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(l);if(null===t)return e;if(p.reduce((function(e,t){return e+t}),0)>t)return e;var n=0,i=[],r=e.map((function(r,o){var a=t*r/100,s=ag(_,0===o,o===e.length-1,y),u=p[o]+s;return a<u?(n+=u-a,i.push(0),u):(i.push(a-u),a)}));return 0===n?e:r.map((function(e,r){var o=e;if(n>0&&i[r]-n>0){var a=Math.min(n,i[r]-n);n-=a,o=e-a}return o/t*100}))}function R(){var e=this,n=s[e.a].element,i=s[e.b].element;e.dragging&&og(t,"onDragEnd",tg)(D()),e.dragging=!1,Yp[Gp]("mouseup",e.stop),Yp[Gp]("touchend",e.stop),Yp[Gp]("touchcancel",e.stop),Yp[Gp]("mousemove",e.move),Yp[Gp]("touchmove",e.move),e.stop=null,e.move=null,n[Gp]("selectstart",tg),n[Gp]("dragstart",tg),i[Gp]("selectstart",tg),i[Gp]("dragstart",tg),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",i.style.userSelect="",i.style.webkitUserSelect="",i.style.MozUserSelect="",i.style.pointerEvents="",e.gutter.style.cursor="",e.parent.style.cursor="",Kp.body.style.cursor=""}function P(e){if(!("button"in e)||0===e.button){var n=this,i=s[n.a].element,r=s[n.b].element;n.dragging||og(t,"onDragStart",tg)(D()),e.preventDefault(),n.dragging=!0,n.move=O.bind(n),n.stop=R.bind(n),Yp[qp]("mouseup",n.stop),Yp[qp]("touchend",n.stop),Yp[qp]("touchcancel",n.stop),Yp[qp]("mousemove",n.move),Yp[qp]("touchmove",n.move),i[qp]("selectstart",tg),i[qp]("dragstart",tg),r[qp]("selectstart",tg),r[qp]("dragstart",tg),i.style.userSelect="none",i.style.webkitUserSelect="none",i.style.MozUserSelect="none",i.style.pointerEvents="none",r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",n.gutter.style.cursor=S,n.parent.style.cursor=S,Kp.body.style.cursor=S,I.call(n),n.dragOffset=M(e)-n.end}}k===eg?(n="width",i="clientX",r="left",o="right",a="clientWidth"):"vertical"===k&&(n="height",i="clientY",r="top",o="bottom",a="clientHeight"),h=A(h);var Z=[];function F(e){var t=e.i===Z.length,n=t?Z[e.i-1]:Z[e.i];I.call(n);var i=t?n.size-e.minSize-n[Jp]:e.minSize+n[Xp];T.call(n,i)}return s=u.map((function(e,t){var i,r={element:rg(e),size:h[t],minSize:p[t],maxSize:v[t],snapOffset:w[t],i:t};if(t>0&&((i={a:t-1,b:t,dragging:!1,direction:k,parent:l})[Xp]=ag(_,t-1===0,!1,y),i[Jp]=ag(_,!1,t===u.length-1,y),"row-reverse"===d||"column-reverse"===d)){var o=i.a;i.a=i.b,i.b=o}if(t>0){var a=x(t,k,r.element);!function(e,t,i){var r=E(n,t,i);Object.keys(r).forEach((function(t){e.style[t]=r[t]}))}(a,_,t),i[Qp]=P.bind(i),a[qp]("mousedown",i[Qp]),a[qp]("touchstart",i[Qp]),l.insertBefore(a,r.element),i.gutter=a}return N(r.element,r.size,ag(_,0===t,t===u.length-1,y),t),t>0&&Z.push(i),r})),s.forEach((function(e){var t=e.element[$p]()[n];t<e.minSize&&(m?F(e):e.minSize=t)})),{setSizes:function(e){var t=A(e);t.forEach((function(e,n){if(n>0){var i=Z[n-1],r=s[i.a],o=s[i.b];r.size=t[n-1],o.size=e,N(r.element,r.size,i[Xp],r.i),N(o.element,o.size,i[Jp],o.i)}}))},getSizes:D,collapse:function(e){F(s[e])},destroy:function(e,t){Z.forEach((function(i){if(!0!==t?i.parent.removeChild(i.gutter):(i.gutter[Gp]("mousedown",i[Qp]),i.gutter[Gp]("touchstart",i[Qp])),!0!==e){var r=L(n,i.a.size,i[Xp]);Object.keys(r).forEach((function(e){s[i.a].element.style[e]="",s[i.b].element.style[e]=""}))}}))},parent:l,pairs:Z}};function dg(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}var hg=function(t){function n(){t.apply(this,arguments)}return t&&(n.__proto__=t),n.prototype=Object.create(t&&t.prototype),n.prototype.constructor=n,n.prototype.componentDidMount=function(){var e=this.props;e.children;var t=e.gutter,n=dg(e,["children","gutter"]);n.gutter=function(e,n){var i;return t?i=t(e,n):(i=document.createElement("div")).className="gutter gutter-"+n,i.__isSplitGutter=!0,i},this.split=cg(this.parent.children,n)},n.prototype.componentDidUpdate=function(e){var t=this,n=this.props;n.children;var i=n.minSize,r=n.sizes,o=n.collapsed,a=dg(n,["children","minSize","sizes","collapsed"]),s=e.minSize,u=e.sizes,l=e.collapsed,c=["maxSize","expandToMin","gutterSize","gutterAlign","snapOffset","dragInterval","direction","cursor"].map((function(n){return t.props[n]!==e[n]})).reduce((function(e,t){return e||t}),!1);if(Array.isArray(i)&&Array.isArray(s)){var d=!1;i.forEach((function(e,t){d=d||e!==s[t]})),c=c||d}else c=!(!Array.isArray(i)&&!Array.isArray(s))||(c||i!==s);if(c)a.minSize=i,a.sizes=r||this.split.getSizes(),this.split.destroy(!0,!0),a.gutter=function(e,t,n){return n.previousSibling},this.split=cg(Array.from(this.parent.children).filter((function(e){return!e.__isSplitGutter})),a);else if(r){var h=!1;r.forEach((function(e,t){h=h||e!==u[t]})),h&&this.split.setSizes(this.props.sizes)}Number.isInteger(o)&&(o!==l||c)&&this.split.collapse(o)},n.prototype.componentWillUnmount=function(){this.split.destroy(),delete this.split},n.prototype.render=function(){var t=this,n=this.props;n.sizes,n.minSize,n.maxSize,n.expandToMin,n.gutterSize,n.gutterAlign,n.snapOffset,n.dragInterval,n.direction,n.cursor,n.gutter,n.elementStyle,n.gutterStyle,n.onDrag,n.onDragStart,n.onDragEnd,n.collapsed;var i=n.children,r=dg(n,["sizes","minSize","maxSize","expandToMin","gutterSize","gutterAlign","snapOffset","dragInterval","direction","cursor","gutter","elementStyle","gutterStyle","onDrag","onDragStart","onDragEnd","collapsed","children"]);return e.createElement("div",Object.assign({},{ref:function(e){t.parent=e}},r),i)},n}(e.Component);hg.propTypes={sizes:Oe().arrayOf(Oe().number),minSize:Oe().oneOfType([Oe().number,Oe().arrayOf(Oe().number)]),maxSize:Oe().oneOfType([Oe().number,Oe().arrayOf(Oe().number)]),expandToMin:Oe().bool,gutterSize:Oe().number,gutterAlign:Oe().string,snapOffset:Oe().oneOfType([Oe().number,Oe().arrayOf(Oe().number)]),dragInterval:Oe().number,direction:Oe().string,cursor:Oe().string,gutter:Oe().func,elementStyle:Oe().func,gutterStyle:Oe().func,onDrag:Oe().func,onDragStart:Oe().func,onDragEnd:Oe().func,collapsed:Oe().number,children:Oe().arrayOf(Oe().element)},hg.defaultProps={sizes:void 0,minSize:void 0,maxSize:void 0,expandToMin:void 0,gutterSize:void 0,gutterAlign:void 0,snapOffset:void 0,dragInterval:void 0,direction:void 0,cursor:void 0,gutter:void 0,elementStyle:void 0,gutterStyle:void 0,onDrag:void 0,onDragStart:void 0,onDragEnd:void 0,collapsed:void 0,children:void 0};var fg=hg,pg=(0,ct.Z)("kv-split"),gg=[0,100],vg=[50,50];var mg=function(t){var n=(0,e.useState)(),i=(0,Ti.Z)(n,2),r=i[0],o=i[1],a=function(e){var n=t.defaultSizePaneKey;localStorage.setItem(n,e.join(","))};return(0,e.useEffect)((function(){var e=t.collapsedSizes;if(t.triggerCollapse){var n=e||gg;a(n),o(n)}}),[t.triggerCollapse]),(0,e.useEffect)((function(){var e=t.triggerExpand,n=t.defaultSizes||vg;e&&(a(n),o(n))}),[t.triggerExpand]),(0,ra.jsx)(e.Fragment,{children:(0,ra.jsx)(fg,{direction:t.direction||"horizontal",sizes:r||function(){var e,n=t.defaultSizePaneKey,i=t.defaultSizes,r=void 0===i?vg:i,o=t.initialSizes;return o||((null===(e=localStorage.getItem(n))||void 0===e?void 0:e.split(",").map(Number))||r)}(),minSize:t.minSize||[0,0],onDrag:function(e){var n=t.onSplitDragAdditional;n&&n(),a(e)},className:pg(null,t.direction||"horizontal"),gutterSize:8,onDragStart:function(){var e=t.onSplitStartDragAdditional;e&&e(),o(void 0)},expandToMin:!0,children:t.children})})},_g=mg,yg=function(e){return"CREATE TABLE `".concat(e,"/my_table`\n(\n `id` Uint64,\n `name` String,\n PRIMARY KEY (`id`)\n);")},bg=function(e){return"ALTER TABLE `".concat(e,"`\n ADD COLUMN is_deleted Bool;")},wg=function(e){return"SELECT *\n FROM `".concat(e,"`\n LIMIT 10;")},Cg=function(e){return"UPSERT INTO `".concat(e,"`\n ( `id`, `name` )\nVALUES ( );")},kg=function(e,t){return function(n,i){var r=function(e,t,n){var i=function(i){return function(){t(fl({input:i(e)})),t(oo(ch.query)),n(e)}};return{createTable:i(yg),alterTable:i(bg),selectQuery:i(wg),upsertQuery:i(Cg),copyPath:function(){navigator.clipboard.writeText(e).then((function(){Ii({name:"Copied",title:"The path is copied to the clipboard",type:"success"})})).catch((function(){Ii({name:"Not copied",title:"Couldn\u2019t copy the path",type:"error"})}))},openPreview:function(){t(Gs(!0)),t(oo(ch.query)),n(e)}}}(n,e,t),o={text:"Copy path",action:r.copyPath},a=[[o],[{text:"Create table...",action:r.createTable}]],s=[[{text:"Open preview",action:r.openPreview},o],[{text:"Alter table...",action:r.alterTable},{text:"Select query...",action:r.selectQuery},{text:"Upsert query...",action:r.upsertQuery}]],u=[o];return{database:a,directory:a,table:s,column_table:s,index_table:u,topic:u,index:[]}[i]}};function Sg(t){var n=t.rootPath,i=t.rootName,r=t.rootType,o=t.currentPath,a=Q(),s=function(e){a(Ks(e))};return(0,e.useEffect)((function(){o.startsWith(n)||s(n)}),[]),(0,ra.jsx)(pr.NavigationTree,{rootState:{path:n,name:i,type:_s(r),collapsed:!1},fetchPath:function(e){return window.api.getSchema({path:e},{concurrentId:"NavigationTree.getSchema|".concat(e)}).then((function(t){var n=t.PathDescription,i=(void 0===n?{}:n).Children,r=void 0===i?[]:i,o=(0,ht.Z)({},e,t),s=r.map((function(t){var n=t.Name,i=void 0===n?"":n,r=t.PathType,a=t.PathSubType;return o["".concat(e,"/").concat(i)]={PathDescription:{Self:t}},{name:i,type:_s(r,a),expandable:!Rs(r,a)}}));return a(function(e){return{type:js,data:e}}(o)),s}))},getActions:kg(a,s),activePath:o,onActivePathUpdate:s,cache:!1,virtualize:!0})}var xg=(0,ct.Z)("kv-acl"),Lg=140,Eg=pt(pt({},Gn),{},{dynamicRender:!1,stickyTop:36}),Ng=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;(0,i.Z)(this,s);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(t=n.call.apply(n,[this].concat(o))).COLUMNS=[{name:"AccessType",header:"Access Type",sortable:!1},{name:"AccessRights",header:"Access Rights",render:function(e){var t=e.value;return Zt().map(t,(function(e,t){return(0,ra.jsx)("div",{children:e},t)}))},sortable:!1},{name:"Subject",sortable:!1,render:function(e){var n=e.value;return t.prepareLogin(n)},width:Lg},{name:"InheritanceType",header:"Inheritance Type",render:function(e){var t=e.value;return Zt().map(t,(function(e,t){return(0,ra.jsx)("div",{children:e},t)}))},sortable:!1}],t.prepareLogin=function(e){var n;return t.props.prepareLogin?null===(n=t.props.additionalTenantInfo)||void 0===n?void 0:n.prepareLogin(e):e&&e.endsWith("@staff")&&!e.startsWith("svc_")?e.split("@")[0]:e},t.renderTable=function(){var e=t.props.acl;return e?(0,ra.jsx)(wn,{columns:t.COLUMNS,data:e,settings:Eg}):null},t.renderOwner=function(){var e=t.props.owner;return e?(0,ra.jsxs)("div",{className:xg("owner-container"),children:[(0,ra.jsx)("span",{className:xg("owner-label"),children:"Owner: "}),t.prepareLogin(e)]}):null},t.renderResult=function(){return(0,ra.jsxs)(e.Fragment,{children:[t.renderOwner(),t.renderTable()]})},t}return(0,r.Z)(s,[{key:"render",value:function(){var e=this.props,t=e.error,n=e.loading,i=e.acl,r=e.owner,o=e.wasLoaded;if(n&&!o)return(0,ra.jsx)("div",{className:xg("loader-container"),children:(0,ra.jsx)(fd.a,{size:"m"})});if(t&&!t.isCancelled){var a=(t.data||t).slice(0,100);return(0,ra.jsx)("div",{className:xg("message-container"),children:a})}return n||i||r?(0,ra.jsx)("div",{className:xg(),children:(0,ra.jsx)("div",{className:xg("result"),children:this.renderResult()})}):(0,ra.jsx)("div",{className:xg("message-container"),children:"Empty"})}}]),s}(e.Component),Dg=U((function(e){var t=e.schemaAcl,n=t.loading,i=t.error;return{acl:t.acl,owner:t.owner,loading:n,error:i,wasLoaded:t.wasLoaded}}))(Ng),Mg=n(4218),Tg=n.n(Mg),Og=(0,ct.Z)("schema-viewer"),Ig="Id",Ag="Name",Rg="Key",Pg="Type",Zg=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"renderTable",value:function(){var e,t,n,i=this.props.data,r=void 0===i?{}:i,o=null!==(e=r.KeyColumnIds)&&void 0!==e?e:[],a=o.map((function(e){return Tg()(r.Columns,{Id:e})})),s=null!==(t=null===(n=r.Columns)||void 0===n?void 0:n.filter((function(e){return!o.includes(e.Id)})))&&void 0!==t?t:[],u=[{name:Ig,width:40},{name:Rg,width:40,sortAccessor:function(e){return o.includes(e.Id)?1:0},render:function(e){var t=e.row;return o.includes(t.Id)?(0,ra.jsx)("div",{className:Og("key-icon"),children:(0,ra.jsx)(fh,{name:"key",viewBox:"0 0 12 7",width:12,height:7})}):null}},{name:Ag,width:100},{name:Pg,width:100}],l=[].concat((0,zt.Z)(a),(0,zt.Z)(s));return(0,ra.jsx)(wn,{theme:"yandex-cloud",data:l,columns:u,settings:Gn,dynamicRender:!0,initialSortOrder:{columnId:Rg,order:wn.DESCENDING}})}},{key:"render",value:function(){return(0,ra.jsx)("div",{className:Og(),children:this.renderTable()})}}]),n}(e.Component),Fg=Zg,jg=n(83909);var Hg,Bg,zg=function(e){return(0,ra.jsx)(jg.h,{text:e.text,timeout:1e3,children:function(t){var n,i;"success"===t&&Ii({name:"Copied",title:null!==(i=e.toastText)&&void 0!==i?i:"Data was copied to clipboard successfully",type:t});return(0,ra.jsx)(dd.z,{disabled:e.disabled,title:null!==(n=e.title)&&void 0!==n?n:"Copy",view:"flat-secondary",children:(0,ra.jsx)(fh,{name:"copy",viewBox:"0 0 16 16",width:16,height:16})})}})},Wg=la({values:{PathType:function(e){return null===e||void 0===e?void 0:e.substring("EPathType".length)},CreateStep:Tr},labels:{PathType:"Type",CreateStep:"Created"}}),Vg=la({values:{Type:function(e){return null===e||void 0===e?void 0:e.substring(10)},State:function(e){return null===e||void 0===e?void 0:e.substring(11)},KeyColumnNames:function(e){return null===e||void 0===e?void 0:e.join(", ")},DataColumnNames:function(e){return null===e||void 0===e?void 0:e.join(", ")}},labels:{KeyColumnNames:"Columns",DataColumnNames:"Includes"}}),Yg=(Hg={},(0,ht.Z)(Hg,qa.METERING_MODE_REQUEST_UNITS,"request-units"),(0,ht.Z)(Hg,qa.METERING_MODE_RESERVED_CAPACITY,"reserved-capacity"),Hg),Ug=la({values:{Partitions:function(e){return Dr((null===e||void 0===e?void 0:e.length)||0)},PQTabletConfig:function(e){var t=Math.round(e.PartitionConfig.LifetimeSeconds/Ln*100)/100;return"".concat(Dr(t)," hours")}},labels:{Partitions:"Partitions count",PQTabletConfig:"Retention"}}),Kg=la({values:{Codecs:function(e){return e&&Object.values(e.Codecs||{}).join(", ")},MeteringMode:function(e){return e&&Yg[e]}},labels:{MeteringMode:"Metering mode"}}),qg=la({values:{StorageLimitBytes:yr,WriteSpeedInBytesPerSecond:br},labels:{StorageLimitBytes:"Retention storage",WriteSpeedInBytesPerSecond:"Partitions write speed"}}),Gg=la({values:{Mode:function(e){return null===e||void 0===e?void 0:e.substring("ECdcStreamMode".length)},Format:function(e){return null===e||void 0===e?void 0:e.substring("ECdcStreamFormat".length)}}}),$g=la({values:{CPU:Mr,Memory:yr,Storage:yr,Network:br,ReadThroughput:br,WriteThroughput:br},defaultValueFormatter:Dr}),Qg=la({values:{FollowerCount:Dr}}),Xg=la({values:{FollowerCount:Dr,CrossDataCenterFollowerCount:Dr}}),Jg=la({values:{DataSize:yr,IndexSize:yr,LastAccessTime:Tr,LastUpdateTime:Tr},defaultValueFormatter:Dr}),ev=new Set(["Mode","Format"]),tv=function(e){var t,n,i,r,o,a=e.data;if(!a)return(0,ra.jsx)("div",{className:"error",children:"No CDC Stream data"});var s,u=null===(t=a.PathDescription)||void 0===t?void 0:t.CdcStreamDescription,l=[];for(s in l.push(Wg("PathType",null===(n=a.PathDescription)||void 0===n||null===(i=n.Self)||void 0===i?void 0:i.PathType)),l.push(Wg("CreateStep",null===(r=a.PathDescription)||void 0===r||null===(o=r.Self)||void 0===o?void 0:o.CreateStep)),u)ev.has(s)&&l.push(Gg(s,null===u||void 0===u?void 0:u[s]));return(0,ra.jsx)(ra.Fragment,{children:l.length?(0,ra.jsx)(aa,{info:l}):(0,ra.jsx)(ra.Fragment,{children:"Empty"})})},nv=function(e){var t,n,i,r,o,a=e.data;if(!a)return(0,ra.jsx)("div",{className:"error",children:"No PersQueueGroup data"});var s=null===(t=a.PathDescription)||void 0===t?void 0:t.PersQueueGroup,u=[];return u.push(Wg("PathType",null===(n=a.PathDescription)||void 0===n||null===(i=n.Self)||void 0===i?void 0:i.PathType)),u.push(Wg("CreateStep",null===(r=a.PathDescription)||void 0===r||null===(o=r.Self)||void 0===o?void 0:o.CreateStep)),u.push(Ug("Partitions",(null===s||void 0===s?void 0:s.Partitions)||[])),u.push(Ug("PQTabletConfig",(null===s||void 0===s?void 0:s.PQTabletConfig)||{PartitionConfig:{LifetimeSeconds:0}})),(0,ra.jsx)(ra.Fragment,{children:u.length?(0,ra.jsx)(aa,{info:u}):(0,ra.jsx)(ra.Fragment,{children:"Empty"})})};!function(e){e.triggerCollapse="triggerCollapse",e.triggerExpand="triggerExpand",e.clear="clear"}(Bg||(Bg={}));var iv=function(e){localStorage.setItem(e,"true")},rv=function(e){localStorage.removeItem(e)};function ov(e){return function(t,n){switch(n){case Bg.triggerCollapse:return iv(e),pt(pt({},t),{},{triggerCollapse:!0,triggerExpand:!1,collapsed:!0});case Bg.triggerExpand:return rv(e),pt(pt({},t),{},{triggerCollapse:!1,triggerExpand:!0,collapsed:!1});case Bg.clear:return rv(e),{triggerCollapse:!1,triggerExpand:!1,collapsed:!1};default:return t}}}var av=(0,ct.Z)("kv-pane-visibility-button");function sv(t){var n=t.onCollapse,i=t.onExpand,r=t.isCollapsed,o=t.initialDirection,a=void 0===o?"top":o,s=t.className;return(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(dd.z,{view:"flat-secondary",onClick:n,className:av({hidden:r},s),title:"Collapse",children:(0,ra.jsx)(fh,{name:"collapse",viewBox:"0 0 384 512",width:14,height:14,className:av((0,ht.Z)({},a,!0))})}),(0,ra.jsx)(dd.z,{view:"flat-secondary",onClick:i,className:av({hidden:!r},s),title:"Expand",children:(0,ra.jsx)(fh,{name:"collapse",viewBox:"0 0 384 512",width:14,height:14,className:av((0,ht.Z)({},a,!0),"rotate")})})]})}var uv=(0,ct.Z)("object-summary"),lv={triggerExpand:!1,triggerCollapse:!1,collapsed:Boolean(localStorage.getItem(Kn))};var cv=function(t){var n,i,r=Q(),o=(0,e.useReducer)(ov(Kn),lv),a=(0,Ti.Z)(o,2),s=a[0],u=a[1],l=te((function(e){return e.schema})),c=l.data,d=l.currentSchemaPath,h=l.currentSchema,f=void 0===h?{}:h,p=l.loading,g=ut(),v=st(),m=vt().parse(g.search,{ignoreQueryPrefix:!0}),_=m.name,y=m.info,b=Zt().get(c[_],"PathDescription.Self"),w=Zt().get(c[d],"PathDescription.Self"),C=(null===f||void 0===f||null===(n=f.PathDescription)||void 0===n?void 0:n.Table)||(null===f||void 0===f||null===(i=f.PathDescription)||void 0===i?void 0:i.ColumnTableDescription),k=ks(t.type)&&Es(t.type)?function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.Name,n=e.Schema;if(n){var i=n.Columns,r=n.KeyColumnNames,o=null===r||void 0===r?void 0:r.map((function(e){var t=null===i||void 0===i?void 0:i.find((function(t){return t.Name===e}));return null===t||void 0===t?void 0:t.Id}));return{Columns:i,KeyColumnNames:r,Name:t,KeyColumnIds:o}}return{Name:t}}(C):C;(0,e.useEffect)((function(){var e=t.type,n=ks(e);!e||n||vh.find((function(e){return e.id===y}))||v.push({pathname:g.pathname,search:vt().stringify(pt(pt({},m),{},{info:dh.overview}))})}),[t.type]);var S=function(){var e=ks(t.type)?[].concat((0,zt.Z)(vh),(0,zt.Z)(mh)):vh;return(0,ra.jsx)("div",{className:uv("tabs"),children:(0,ra.jsx)(Bp.m,{size:"l",items:e,activeTab:y,wrapTo:function(e,t){var n=e.id,i=ld(cd.tenant,void 0,pt(pt({},m),{},(0,ht.Z)({name:_},hh.info,n)));return(0,ra.jsx)(yd,{to:i,className:uv("tab"),children:t},n)},allowNotSelected:!0})})},x=function(){switch(y){case dh.acl:return(0,ra.jsx)(Dg,{additionalTenantInfo:t.additionalTenantInfo});case dh.schema:return p?L():(0,ra.jsx)("div",{className:uv("schema"),children:(0,ra.jsx)(Fg,{data:k})});default:return function(){var e,t,n=(e={},(0,ht.Z)(e,Wa.EPathTypeInvalid,void 0),(0,ht.Z)(e,Wa.EPathTypeDir,void 0),(0,ht.Z)(e,Wa.EPathTypeTable,void 0),(0,ht.Z)(e,Wa.EPathTypeSubDomain,void 0),(0,ht.Z)(e,Wa.EPathTypeTableIndex,void 0),(0,ht.Z)(e,Wa.EPathTypeExtSubDomain,void 0),(0,ht.Z)(e,Wa.EPathTypeColumnStore,void 0),(0,ht.Z)(e,Wa.EPathTypeColumnTable,void 0),(0,ht.Z)(e,Wa.EPathTypeCdcStream,(function(){return(0,ra.jsx)(tv,{data:c[d]})})),(0,ht.Z)(e,Wa.EPathTypePersQueueGroup,(function(){return(0,ra.jsx)(nv,{data:c[d]})})),e),i=(null===w||void 0===w?void 0:w.PathType)&&(null===(t=n[w.PathType])||void 0===t?void 0:t.call(n));if(!i){var r=Number(null===w||void 0===w?void 0:w.CreateStep),o="";r&&(o=Tr(r)),i=(0,ra.jsx)(aa,{info:[{label:"Create time",value:o}]})}return(0,ra.jsx)("div",{className:uv("overview-wrapper"),children:i})}()}},L=function(){return(0,ra.jsx)("div",{className:uv("loader"),children:(0,ra.jsx)(fd.a,{size:"m"})})},E=function(){u(Bg.triggerCollapse)},N=function(){u(Bg.triggerExpand)},D=function(){u(Bg.clear)},M=function(){r(Gs(!0)),r(oo(ch.query))},T=function(){var n=ks(t.type)&&!xs(t.subType);return(0,ra.jsxs)(e.Fragment,{children:[n&&(0,ra.jsx)(dd.z,{view:"flat-secondary",onClick:M,title:"Show preview",children:(0,ra.jsx)(fh,{name:"tablePreview",viewBox:"0 0 16 16",height:16,width:16})}),(0,ra.jsx)(zg,{text:d,title:"Copy schema path"}),(0,ra.jsx)(sv,{onCollapse:E,onExpand:N,isCollapsed:s.collapsed,initialDirection:"bottom"})]})},O=function(){var e,n=t.type,i=f.Status,r=f.Reason;return!n&&i&&r&&(e="".concat(i,": ").concat(r)),n?(0,ra.jsx)("div",{className:uv("entity-type"),children:n.replace("EPathType","")}):(0,ra.jsx)("div",{className:uv("entity-type",{error:!0}),children:(0,ra.jsx)(Vp.J,{content:e,offset:{left:0}})})};return _?(0,ra.jsxs)("div",{className:uv(),children:[(0,ra.jsx)("div",{className:uv({hidden:t.isCollapsed}),children:(0,ra.jsxs)(_g,{direction:"vertical",defaultSizePaneKey:Vn,onSplitStartDragAdditional:D,triggerCollapse:s.triggerCollapse,triggerExpand:s.triggerExpand,minSize:[200,52],collapsedSizes:[100,0],children:[d?(0,ra.jsxs)("div",{className:uv("tree-wrapper"),children:[(0,ra.jsx)("div",{className:uv("tree-header"),children:(0,ra.jsx)("div",{className:uv("tree-title"),children:"Navigation"})}),(0,ra.jsx)("div",{className:uv("tree"),children:b&&(0,ra.jsx)(Sg,{rootPath:_,rootName:b.Name||String(_),rootType:b.PathType,currentPath:d})})]}):L(),(0,ra.jsxs)("div",{className:uv("info"),children:[(0,ra.jsxs)("div",{className:uv("sticky-top"),children:[(0,ra.jsxs)("div",{className:uv("info-header"),children:[(0,ra.jsxs)("div",{className:uv("info-title"),children:[O(),(0,ra.jsx)("div",{className:uv("path-name"),children:d})]}),(0,ra.jsx)("div",{className:uv("info-controls"),children:T()})]}),S()]}),x()]})]})}),(0,ra.jsx)(sv,{onCollapse:t.onCollapseSummary,onExpand:t.onExpandSummary,isCollapsed:t.isCollapsed,initialDirection:"left",className:uv("action-button")})]}):null},dv=n(77810),hv=n(60901),fv=e.memo((function(t){var n=t.className,i=t.value,r=Q();return(0,e.useEffect)((function(){return function(){r(Da())}}),[r]),(0,ra.jsx)("span",{className:bv("cell",n),onClick:function(e){return r(Ma(e.target,i,"cell"))},children:i})})),pv=JSON.parse('{"empty":"Table is empty"}'),gv=JSON.parse('{"empty":"\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0443\u0441\u0442\u0430\u044f"}'),vv="ydb-query-result-table";gr.registerKeyset(ar.En,vv,pv),gr.registerKeyset(ar.Ru,vv,gv);var mv=gr.keyset(vv),_v=["columns","data","settings"],yv=pt(pt({},Gn),{},{stripedRows:!0,dynamicRenderType:"variable",dynamicItemSizeGetter:function(){return 40}}),bv=(0,ct.Z)("ydb-query-result-table"),wv=function(e){return e.length?e.map((function(e){var t=e.name,n=function(e){switch(e.replace(/\?$/,"")){case Wu.Bool:return"boolean";case Wu.Int8:case Wu.Int16:case Wu.Int32:case Wu.Int64:case Wu.Uint8:case Wu.Uint16:case Wu.Uint32:case Wu.Uint64:case Wu.Float:case Wu.Double:case Wu.Decimal:return"number";case Wu.String:case Wu.Utf8:case Wu.Json:case Wu.JsonDocument:case Wu.Yson:case Wu.Uuid:return"string";case Wu.Date:case Wu.Datetime:case Wu.Timestamp:case Wu.Interval:case Wu.TzDate:case Wu.TzDateTime:case Wu.TzTimestamp:return"date";default:return}}(e.type);return{name:t,align:"number"===n?wn.RIGHT:wn.LEFT,sortAccessor:function(e){var i=e[t];return void 0===i||null===i?null:"number"===n?BigInt(i):i},render:function(e){var t=e.value;return(0,ra.jsx)(fv,{value:t})}}})):[]},Cv=function(e,t){return t},kv=function(t){var n=t.columns,i=t.data,r=t.settings,o=Rt(t,_v),a=(0,e.useMemo)((function(){return function(e){return Array.isArray(e)?e.map((function(e){var t={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var i=typeof e[n];"object"===i||"boolean"===i||Array.isArray(e[n])?t[n]=JSON.stringify(e[n]):t[n]=e[n]}return t})):[]}(i)}),[i]),s=(0,e.useMemo)((function(){return n?wv(n):function(e){return e.length?Object.keys(e[0]).map((function(t){return{name:t,align:yi(e[0][t])?wn.RIGHT:wn.LEFT,sortAccessor:function(e){return yi(e[t])?Number(e[t]):e[t]},render:function(e){var t=e.value;return(0,ra.jsx)(fv,{value:t})}}})):[]}(a)}),[a,n]),u=(0,e.useMemo)((function(){return pt(pt({},yv),r)}),[r]);return Array.isArray(i)?s.length?(0,ra.jsx)(wn,pt({theme:"yandex-cloud",data:a,columns:s,settings:u,rowKey:Cv},o)):(0,ra.jsx)("div",{className:bv("message"),children:mv("empty")}):null},Sv=n(650),xv=(0,ct.Z)("kv-save-query");var Lv=function(t){var n=t.savedQueries,i=t.onSaveQuery,r=t.saveButtonDisabled,o=te((function(e){return e.singleClusterMode})),a=(0,e.useState)(!1),s=(0,Ti.Z)(a,2),u=s[0],l=s[1],c=(0,e.useState)(""),d=(0,Ti.Z)(c,2),h=d[0],f=d[1],p=(0,e.useState)(null),g=(0,Ti.Z)(p,2),v=g[0],m=g[1],_=te((function(e){return e.saveQuery})),y=Q(),b=function(){l(!0),y(Vc(null))},w=function(){l(!1),f(""),m(null)},C=function(e){f(e),m(k(e))},k=function(e){return Zt().some(n,(function(t){return t.name.toLowerCase()===e.trim().toLowerCase()}))?"This name already exists":null},S=function(){h&&!v&&(i(h),w())},x=function(){i(_),y(Vc(null))},L=function(e){return(0,ra.jsx)(dd.z,{onClick:e,disabled:r,children:"Save query"})};return(0,ra.jsxs)(e.Fragment,{children:[_?function(){var e=[{action:b,text:"Save as new"},{action:x,text:"Edit existing"}];return(0,ra.jsx)(hv.h,{items:e,switcher:L(),popupPlacement:["top"]})}():L(b),u&&(0,ra.jsxs)(Sv.V,{open:u,hasCloseButton:!1,size:"s",onClose:w,onEnterKeyDown:S,children:[(0,ra.jsx)(Sv.V.Header,{caption:"Save query"}),(0,ra.jsxs)(Sv.V.Body,{className:xv("dialog-body"),children:[o&&(0,ra.jsx)("div",{className:xv("dialog-row"),children:"The query will be saved in your browser"}),(0,ra.jsxs)("div",{className:xv("dialog-row"),children:[(0,ra.jsx)("label",{htmlFor:"queryName",className:xv("field-title","required"),children:"Query name"}),(0,ra.jsxs)("div",{className:xv("control-wrapper"),children:[(0,ra.jsx)(hd.o,{id:"queryName",placeholder:"Enter query name",value:h,onUpdate:C,hasClear:!0,autoFocus:!0}),(0,ra.jsx)("span",{className:xv("error"),children:v})]})]})]}),(0,ra.jsx)(Sv.V.Footer,{textButtonApply:"Save",textButtonCancel:"Cancel",onClickButtonCancel:w,onClickButtonApply:S,propsButtonApply:{disabled:!h||Boolean(v)}})]})]})},Ev=(0,ct.Z)("kv-truncated-query");var Nv=function(t){var n=t.value,i=t.maxQueryHeight,r=n.split("\n");if(r.length>i){var o=r.slice(0,i).join("\n");return(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)("span",{className:Ev(),children:o}),(0,ra.jsx)("span",{className:Ev({color:"secondary"}),children:"\n...\nThe request was truncated. Click on the line to show the full query on the query tab"})]})}return n},Dv=(0,ct.Z)("saved-queries"),Mv=3;var Tv=function(t){var n=t.savedQueries,i=t.changeUserInput,r=t.onDeleteQuery,o=(0,e.useState)(!1),a=(0,Ti.Z)(o,2),s=a[0],u=a[1],l=(0,e.useState)(!1),c=(0,Ti.Z)(l,2),d=c[0],h=c[1],f=(0,e.useState)(null),p=(0,Ti.Z)(f,2),g=p[0],v=p[1],m=(0,e.useState)(null),_=(0,Ti.Z)(m,2),y=_[0],b=_[1],w=Q(),C=(0,e.useRef)(null),k=function(){u(!1)},S=function(e){return function(t){t.stopPropagation(),h(!0),v(e)}},x=function(){h(!1),v(null)},L=function(e){e.stopPropagation(),x()},E=function(e){e.stopPropagation(),r(g),x(),b(g)};return(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(dd.z,{ref:C,onClick:function(){u(!0)},children:"Saved queries"}),s&&(0,ra.jsx)(Hf.G,{className:Dv("popup-wrapper"),anchorRef:C,open:s,placement:["bottom-end"],onClose:k,children:(0,ra.jsxs)("div",{className:Dv(),children:[(0,ra.jsxs)("div",{className:Dv("saved-queries-row",{header:!0}),children:[(0,ra.jsx)("div",{className:Dv("query-name"),children:"Name"}),(0,ra.jsx)("div",{className:Dv("query-body",{header:!0}),children:(0,ra.jsx)("span",{children:"QueryText"})})]}),(0,ra.jsx)("div",{children:Zt().sortBy(n,(function(e){return e.name.toLowerCase()})).map((function(e){return(0,ra.jsxs)("div",{className:Dv("saved-queries-row"),onClick:(t=e.body,n=e.name,function(){i({input:t}),w(Vc(n)),u(!1)}),children:[(0,ra.jsx)("div",{className:Dv("query-name"),children:e.name}),(0,ra.jsx)("div",{className:Dv("query-body"),children:(0,ra.jsx)(Nv,{value:e.body,maxQueryHeight:Mv})}),(0,ra.jsxs)("div",{className:Dv("query-controls"),children:[(0,ra.jsx)(fh,{name:"pencil",viewBox:"0 0 24 24",height:14,width:14,className:Dv("control-button")}),(0,ra.jsx)(fh,{name:"trash",viewBox:"0 0 24 24",height:14,width:14,className:Dv("control-button"),onClick:S(e.name)})]})]},e.name);var t,n}))})]})},y),d&&g&&(0,ra.jsxs)(Sv.V,{open:d,hasCloseButton:!1,size:"s",onClose:L,onEnterKeyDown:E,children:[(0,ra.jsx)(Sv.V.Header,{caption:"Delete query"}),(0,ra.jsxs)(Sv.V.Body,{className:Dv("dialog-body"),children:["Are you sure you want to delete query",(0,ra.jsx)("span",{className:Dv("dialog-query-name"),children:" ".concat(g,"?")})]}),(0,ra.jsx)(Sv.V.Footer,{textButtonApply:"Delete",textButtonCancel:"Cancel",onClickButtonCancel:L,onClickButtonApply:E})]})]})},Ov=(0,ct.Z)("kv-divider");var Iv=function(){return(0,ra.jsx)("div",{className:Ov()})};var Av=function(e){var t=e.disabled,n=Q();return(0,ra.jsx)(dd.z,{onClick:function(){n({type:Uc})},view:"flat-secondary",disabled:t,title:"Fullscreen",children:(0,ra.jsx)(fh,{name:"enableFullscreen",viewBox:"0 0 16 16",height:16,width:16})})},Rv=(0,ct.Z)("kv-fullscreen"),Pv=function(e){(0,o.Z)(s,e);var n=(0,a.Z)(s);function s(e){var t;return(0,i.Z)(this,s),(t=n.call(this,e)).modalRoot=null,t.el=void 0,t.el=document.createElement("div"),t}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){this.modalRoot=document.getElementById("fullscreen-root"),this.modalRoot&&this.modalRoot.appendChild(this.el)}},{key:"componentWillUnmount",value:function(){this.modalRoot&&this.modalRoot.removeChild(this.el)}},{key:"render",value:function(){return t.createPortal(this.props.children,this.el)}}]),s}(e.Component);var Zv,Fv=function(t){var n=Q(),i=function(e){"Escape"===e.key&&r()};(0,e.useEffect)((function(){return document.addEventListener("keydown",i,!1),function(){document.removeEventListener("keydown",i,!1)}}),[]);var r=function(){n(Gc())};return(0,ra.jsx)(Pv,{children:(0,ra.jsxs)("div",{className:Rv(null,t.className),children:[(0,ra.jsx)(dd.z,{onClick:r,view:"raised",className:Rv("close-button"),children:(0,ra.jsx)(fh,{name:"disableFullscreen",viewBox:"0 0 16 16 ",width:16,height:16})}),t.children]})})};function jv(){return jv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},jv.apply(this,arguments)}var Hv=function(t){return e.createElement("svg",jv({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Zv||(Zv=e.createElement("path",{d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32s-14.9 32-32 32zm69.1-142L280 286v2c0 13-11 24-24 24s-24-11-24-24v-16c0-8 4-16 12-21l57-34c7-4 11-11 11-19 0-12-10.9-22-22.9-22H238c-12.9 0-22 10-22 22 0 13-11 24-24 24s-24-11-24-24c0-39 31-70 69.1-70h51.1c40.8 0 71.8 31 71.8 70 0 24-13 47-34.9 60z"})))},Bv=(0,ct.Z)("kv-query-execution-status"),zv=function(e){var t,n,i=e.className,r=e.error;if("ECONNABORTED"===(null===r||void 0===r?void 0:r.code))t=(0,ra.jsx)(kd.J,{data:Hv,size:16}),n="Connection aborted";else{var o=Boolean(r);t=(0,ra.jsx)(fh,{name:o?"failure":"success",viewBox:o?"0 0 512 512":"0 0 16 16",width:16,height:16,className:Bv("result-status-icon",{error:o})}),n=o?"Failed":"Completed"}return(0,ra.jsxs)("div",{className:Bv(null,i),children:[t,n]})},Wv=n(99169),Vv=JSON.parse('{"default_collapse_label":"Show less","default_expand_label":"Show more","chars_count":[" ({{count}} symbol)"," ({{count}} symbols)"," ({{count}} symbols)"," ({{count}} symbols)"]}'),Yv=JSON.parse('{"default_collapse_label":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435","default_expand_label":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0449\u0451","chars_count":[" ({{count}} \u0441\u0438\u043c\u0432\u043e\u043b)"," ({{count}} \u0441\u0438\u043c\u0432\u043e\u043b\u0430)"," ({{count}} \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432)"," ({{count}} \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432)"]}'),Uv="ydb-shorty-string";gr.registerKeyset(ar.En,Uv,Vv),gr.registerKeyset(ar.Ru,Uv,Yv);var Kv=gr.keyset(Uv),qv=(0,ct.Z)("kv-shorty-string");function Gv(t){var n=t.value,i=void 0===n?"":n,r=t.limit,o=void 0===r?200:r,a=t.strict,s=void 0!==a&&a,u=t.displayLength,l=void 0===u||u,c=t.render,d=void 0===c?function(e){return e}:c,h=t.onToggle,f=t.expandLabel,p=void 0===f?Kv("default_expand_label"):f,g=t.collapseLabel,v=void 0===g?Kv("default_collapse_label"):g,m=e.useState(!1),_=(0,Ti.Z)(m,2),y=_[0],b=_[1],w=(y?v:p)+(l&&!y?Kv("chars_count",{count:i.length}):""),C=i.length>o+(s?0:w.length),k=y||!C?i:i.slice(0,o-4)+"\xa0...";return(0,ra.jsxs)("div",{className:qv(),children:[d(k),C?(0,ra.jsx)(Sd.r,{className:qv("toggle"),onClick:function(e){e.stopPropagation(),b((function(e){return!e})),null===h||void 0===h||h()},children:w}):null]})}var $v=["S_FATAL","S_ERROR","S_WARNING","S_INFO"];function Qv(e){return function(e){return!!e&&void 0!==$v[e]}(e)?$v[e]:"S_INFO"}var Xv=(0,ct.Z)("kv-result-issues"),Jv=(0,ct.Z)("kv-issues"),em=(0,ct.Z)("kv-issue");function tm(t){var n=t.data,i=t.className,r=e.useState(!1),o=(0,Ti.Z)(r,2),a=o[0],s=o[1],u="string"!==typeof n&&Array.isArray(null===n||void 0===n?void 0:n.issues);return(0,ra.jsxs)("div",{className:Xv(),children:[(0,ra.jsxs)("div",{className:Xv("error-message"),children:[function(){var t;if("string"===typeof n)t=n;else{var i,r,o=Qv(null===n||void 0===n||null===(i=n.error)||void 0===i?void 0:i.severity);t=(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(sm,{severity:o})," ",(0,ra.jsx)("span",{className:Xv("error-message-text"),children:null===n||void 0===n||null===(r=n.error)||void 0===r?void 0:r.message})]})}return t}(),u&&(0,ra.jsx)(dd.z,{view:"normal",onClick:function(){return s(!a)},children:a?"Hide details":"Show details"})]}),u&&a&&(0,ra.jsx)(nm,{issues:n.issues,className:i})]})}function nm(e){var t=e.issues,n=e.className,i=t.reduce((function(e,t){var n,i=null!==(n=t.severity)&&void 0!==n?n:10;return Math.min(e,i)}),10);return(0,ra.jsx)("div",{className:Jv(null,n),children:t.map((function(e,t){return(0,ra.jsx)(im,{issue:e,expanded:e===i},t)}))})}function im(t){var n=t.issue,i=t.level,r=void 0===i?0:i,o=e.useState(!0),a=(0,Ti.Z)(o,2),s=a[0],u=a[1],l=Qv(n.severity),c=Array.isArray(n.issues)&&n.issues.length>0,d=function(e){var t=e.file,n=e.position;if(!n)return!1;return"".concat(t?"file:":"").concat(n.row,":").concat(n.column)}(n),h=s?"bottom":"right";return(0,ra.jsxs)("div",{className:em({leaf:!c,"has-issues":c}),children:[(0,ra.jsxs)("div",{className:em("line"),children:[c&&(0,ra.jsx)(dd.z,{view:"flat-secondary",onClick:function(){return u(!s)},className:em("arrow-toggle"),children:(0,ra.jsx)(Wv.F,{direction:h,size:16})}),(0,ra.jsx)(sm,{severity:l}),(0,ra.jsxs)("span",{className:em("message"),children:[d&&(0,ra.jsx)("span",{className:em("place-text"),title:"Position",children:d}),(0,ra.jsx)("div",{className:em("message-text"),children:(0,ra.jsx)(Gv,{value:n.message,expandLabel:"Show full message"})})]}),n.code?(0,ra.jsxs)("span",{className:em("code"),children:["Code: ",n.code]}):null]}),c&&s&&(0,ra.jsx)("div",{className:em("issues"),children:(0,ra.jsx)(rm,{issues:n.issues,level:r+1,expanded:s})})]})}function rm(e){var t=e.issues,n=e.level,i=e.expanded;return(0,ra.jsx)("div",{className:em("list"),children:t.map((function(e,t){return(0,ra.jsx)(im,{issue:e,level:n,expanded:i},t)}))})}var om={S_INFO:Nd,S_WARNING:Td,S_ERROR:Ad,S_FATAL:Pd},am=(0,ct.Z)("yql-issue-severity");function sm(e){var t=e.severity,n=t.slice(2).toLowerCase();return(0,ra.jsxs)("span",{className:am({severity:n}),children:[(0,ra.jsx)(kd.J,{className:am("icon"),data:om[t],size:16}),(0,ra.jsx)("span",{className:am("title"),children:n})]})}var um=(0,ct.Z)("kv-query-result"),lm={result:"result",stats:"stats"},cm=[{value:lm.result,content:"Result"},{value:lm.stats,content:"Stats"}];var dm,hm,fm=function(t){var n=(0,e.useState)(lm.result),i=(0,Ti.Z)(n,2),r=i[0],o=i[1],a=te((function(e){return e.fullscreen})),s=Q();return(0,e.useEffect)((function(){return function(){s(Gc())}}),[]),(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsxs)("div",{className:um("controls"),children:[(0,ra.jsxs)("div",{className:um("controls-right"),children:[(0,ra.jsx)(zv,{error:t.error}),t.stats&&!t.error&&(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(Iv,{}),(0,ra.jsx)(nh.E,{options:cm,value:r,onUpdate:function(e){o(e)}})]})]}),(0,ra.jsxs)("div",{className:um("controls-left"),children:[function(){var e=t.textResults,n=t.copyDisabled;return(0,ra.jsx)(zg,{text:e,title:"Copy results",toastText:"Results were copied to clipboard successfully",disabled:n})}(),(0,ra.jsx)(Av,{}),(0,ra.jsx)(sv,{onCollapse:t.onCollapseResults,onExpand:t.onExpandResults,isCollapsed:t.isResultsCollapsed,initialDirection:"bottom"})]})]}),(0,ra.jsxs)("div",{className:um("result"),children:[r===lm.result&&!t.error&&function(){var n=t.result;return(0,ra.jsxs)(e.Fragment,{children:[n,a&&(0,ra.jsx)(Fv,{children:(0,ra.jsx)("div",{className:um("result",{fullscreen:!0}),children:n})})]})}(),r===lm.stats&&!t.error&&function(){var n=(0,ra.jsx)(ia(),{data:t.stats,isExpanded:function(){return!0},className:um("inspector"),searchOptions:{debounceTime:300}});return(0,ra.jsxs)(e.Fragment,{children:[n,a&&(0,ra.jsx)(Fv,{children:(0,ra.jsx)("div",{className:um("inspector",{fullscreen:!0}),children:n})})]})}(),function(){var n,i=t.error;return(null===i||void 0===i||null===(n=i.data)||void 0===n?void 0:n.issues)&&Array.isArray(i.data.issues)?(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(tm,{data:i.data}),a&&(0,ra.jsx)(Fv,{children:(0,ra.jsx)("div",{className:um("result",{fullscreen:!0}),children:(0,ra.jsx)(tm,{data:i.data})})})]}):i?(0,ra.jsx)("div",{className:um("error"),children:Xu(i)}):void 0}()]})]})},pm=n(59312);!function(e){e.Arrow="arrow",e.Line="line"}(dm||(dm={})),function(e){e.Normal="normal",e.Ellipsis="ellipsis"}(hm||(hm={}));function gm(e,t){var n=document.createElement("button");return n.innerText=e,n.className="paranoid-button paranoid-button_".concat(t),n}var vm="ParanoidC";function mm(e,t){var n=document.getElementById(e);if(!n)throw new Error("Not found element with id ".concat(e));n.style.position="relative";var i=gm("+","plus"),r=gm("-","minus"),o=gm("1:1","normal"),a=function(e,t){var n=document.createElement("canvas");n.setAttribute("id",vm),n.setAttribute("width",String(e.offsetWidth)),n.setAttribute("height",String(e.offsetHeight)),e.appendChild(n);var i=t.colors||{};return new pm.fabric.Canvas(vm,{selection:!1,backgroundColor:i.fill,defaultCursor:"grab"})}(n,t),s=function(e,t,n,i){var r=document.createElement("div");r.className="paranoid-controls";var o=document.createElement("style");return o.innerText=function(e){return"\n .paranoid-controls {\n position: absolute;\n top: 10px;\n right: 10px;\n }\n .paranoid-button {\n margin-left: 12px;\n border-radius: 4px;\n height: 36px;\n width: 36px;\n line-height: 13px;\n font-family: Arial, sans-serif;\n font-size: 13px;\n text-align: center;\n padding: 0;\n box-shadow: 0px 5px 6px ".concat(e.nodeShadow,";\n border: 1px solid ").concat(e.buttonBorderColor,";\n background-color: ").concat(e.nodeFill,";\n color: ").concat(e.textColor,";\n cursor: pointer;\n }\n .paranoid-button:focus {\n outline: none;\n }\n .paranoid-button:active {\n border: 1px solid ").concat(e.buttonBorderColor,";\n }\n .paranoid-button_plus {\n margin-left: 0;\n border-left: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .paranoid-button_minus {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n")}(i),r.appendChild(o),r.appendChild(t),r.appendChild(e),r.appendChild(n),r}(i,r,o,t.colors);return n.appendChild(s),function(e,t,n,i,r){var o=r.minZoom||.2,a=r.zoomStep||.2,s=r.maxZoom||2,u=r.startZoom||1;e.setZoom(u),n.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation();var n=e.getZoom();(n-=a)<o&&(n=o),e.setZoom(n)})),t.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation();var n=e.getZoom();(n+=a)>s&&(n=s),e.setZoom(n)})),i.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation(),e.setZoom(1)}))}(a,i,r,o,t),function(e){var t=!1,n=0,i=0;e.on("mouse:down",(function(r){r.target||(e.setCursor("grabbing"),t=!0,n=r.pointer.x,i=r.pointer.y)})),e.on("mouse:move",(function(r){t&&(e.viewportTransform[4]+=r.pointer.x-n,e.viewportTransform[5]+=r.pointer.y-i,e.setCursor("grabbing"),e.getObjects().forEach((function(e){return e.setCoords()})),e.requestRenderAll(),n=r.pointer.x,i=r.pointer.y)})),e.on("mouse:up",(function(){t&&(e.setCursor("grab"),t=!1)}))}(a),a}var _m,ym={success:"rgba(59, 201, 53, 0.75)",error:"#ff0400",warning:"#ff7700",errorBackground:"rgba(235,50,38,0.08)",warningBackground:"rgba(255,219,77,0.3)",mute:"rgba(0,0,0,0.15)",stroke:"rgba(0,0,0,0.3)",fill:"#fafafa",nodeFill:"#ffffff",nodeShadow:"rgba(0,0,0,0.15)",titleColor:"#000000",textColor:"rgba(0,0,0,0.7)",buttonBorderColor:"rgba(0,0,0,0.07)",groupBorderColor:"rgba(2, 123, 243, 0.14)",groupFill:"rgba(2, 123, 243, 0.08)",titleHoverColor:"#004080",nodeHover:"#f3f3f3",specialHover:"rgba(2,123,243,1)"},bm={hasControls:!1,hasRotatingPoint:!1,lockMovementX:!0,lockMovementY:!0,selectable:!1,hoverCursor:"default",subTargetCheck:!0},wm="Arial, sans-serif",Cm=13,km=1.38;!function(e){e.Group="GROUP"}(_m||(_m={}));var Sm={width:239,height:58,widthWithAnchor:249,borderRadius:4,paddingTop:8,paddingBottom:8,paddingLeft:8,paddingRight:8,titleFontSize:13,titleLineHeight:1.38,textFontSize:12,textLineHeight:1.16,titleMaxWidth:205,metaMaxWidth:205,metaMarginTop:10,metricsMarginTop:10,metricsPadding:5,anchorOffset:10},xm={radius:3,paddingRight:8},Lm={paddingTop:16,paddingLeft:16,paddingRight:16,paddingBottom:14},Em=8;function Nm(e,t,n){return new pm.fabric.Circle({top:e,left:t,radius:xm.radius,fill:n.nodeFill,stroke:n.stroke})}function Dm(e,t){for(var n=Math.ceil(e.getLineWidth(0));n>t;){var i=e.text||"";e.set("text",i.slice(0,i.length-4)+"..."),n=Math.ceil(e.getLineWidth(0))}}var Mm=n(80358),Tm=n.n(Mm),Om="\n M19,21\n H8\n V7\n H19\n M19,5\n H8\n A2,2 0 0,0 6,7\n V21\n A2,2 0 0,0 8,23\n H19\n A2,2 0 0,0 21,21\n V7\n A2,2 0 0,0 19,5\n M16,1\n H4\n A2,2 0 0,0 2,3\n V17\n H4\n V3\n H16\n V1\n Z\n",Im="M9.5 13l3 3l5 -5",Am="M9.5 10l8 8m-8 0l8 -8";function Rm(e,t){switch(e.theme){case"warning":return t.warning;case"danger":return t.error}return t.textColor}function Pm(e,t){switch(e){case"ALIVE":return t.getCommonColor("base-positive-heavy");case"DEGRADED":return t.getCommonColor("base-warning-heavy");case"DEAD":return t.getCommonColor("base-danger-heavy");default:return t.getCommonColor("base-neutral")}}function Zm(e,t,n,i){var r,o=t.left,a=t.top,s=t.node,u=n.colors,l=n.renderNodeTitle,c=n.onTitleClick,d=n.prepareCopyText,h=n.textOverflow||hm.Ellipsis,f=l?l(s):s.name,p=new pm.fabric.Text(f||"",{fontSize:Sm.titleFontSize,lineHeight:Sm.titleLineHeight,left:Sm.paddingLeft,top:Sm.paddingTop,fontFamily:wm,fill:u.titleColor,hoverCursor:"function"===typeof c?"pointer":"default"});"function"===typeof c&&(p.on("mouseover",(function(){p.set("fill",u.titleHoverColor),e.requestRenderAll()})),p.on("mouseout",(function(){p.set("fill",u.titleColor),e.requestRenderAll()})),p.on("mousedown",(function(){c(s)})));var g,v=new pm.fabric.Text(s.meta||"",{fontSize:Sm.textFontSize,lineHeight:Sm.textLineHeight,left:Sm.paddingLeft,top:Sm.paddingTop+p.getBoundingRect().height+Sm.metaMarginTop,fontFamily:wm,fill:u.textColor}),m=(null===(r=s.metrics)||void 0===r?void 0:r.length)?function(e,t,n,i){for(var r,o,a,s,u,l,c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1/0,d=[],h=0,f=0,p=0;p<n.length;p++){var g=n[p],v=new pm.fabric.Text(g.name+": ",{fontSize:Sm.textFontSize,lineHeight:Sm.textLineHeight,fontFamily:wm,fill:i.textColor}),m=new pm.fabric.Text(g.value,{fontSize:Sm.textFontSize,lineHeight:Sm.textLineHeight,fontFamily:wm,fill:Rm(g,i),left:null!==(r=v.width)&&void 0!==r?r:0});f+((null!==(o=v.width)&&void 0!==o?o:0)+(null!==(a=m.width)&&void 0!==a?a:0))>c&&(f=0,h+=(null!==(u=null===(s=null===d||void 0===d?void 0:d[d.length-1])||void 0===s?void 0:s.height)&&void 0!==u?u:0)+Sm.metricsPadding);var _=new pm.fabric.Group([v,m],{top:h,left:f});f+=(null!==(l=_.width)&&void 0!==l?l:0)+Sm.metricsPadding,d.push(_)}return new pm.fabric.Group(d,{top:e,left:t})}(Sm.paddingTop+p.getBoundingRect().height+v.getBoundingRect().height+Sm.metaMarginTop+Sm.metricsMarginTop,Sm.paddingLeft,s.metrics,u,h===hm.Ellipsis?Sm.width-Sm.paddingLeft-Sm.paddingRight:1/0):void 0;if(s.status){var _=new pm.fabric.Rect({width:12,height:12,fill:Pm(s.status,u),rx:3,ry:3}),y=new pm.fabric.Text(s.status,{fontSize:Sm.textFontSize,lineHeight:Sm.textLineHeight,left:16,fontFamily:wm,fill:u.textColor});g=new pm.fabric.Group([_,y],{top:v.getBoundingRect().top+v.getBoundingRect().height-v.getHeightOfLine(0),left:Sm.width-y.getLineWidth(0)-16-12,padding:12})}var b=i?Sm.widthWithAnchor:Sm.width;if(h===hm.Ellipsis)Dm(p,Sm.titleMaxWidth),Dm(v,Sm.metaMaxWidth);else{var w=p.getBoundingRect().width,C=v.getBoundingRect().width,k=g?g.getBoundingRect().width:0,S=m?m.getBoundingRect().width+Sm.paddingLeft+Sm.paddingRight:0;b=Math.max(b,Sm.paddingLeft+Math.max(w,C)+Math.max(Em+Sm.paddingRight,k)+(i?Sm.anchorOffset:0),S),g&&(g.left=b-k+12-(i?Sm.anchorOffset:0))}var x=function(e,t,n,i,r){return t.split("\n").length>1||e.meta&&e.meta.split("\n").length>1||e.metrics?Sm.paddingTop+n.getBoundingRect().height+Sm.metaMarginTop+i.getBoundingRect().height+(r?Sm.metricsMarginTop+r.getBoundingRect().height:0)+Sm.paddingBottom:Sm.height}(s,f,p,v,m),L=new pm.fabric.Rect({width:b,height:x,fill:u.nodeFill,stroke:u.nodeShadow,rx:Sm.borderRadius,ry:Sm.borderRadius,shadow:new pm.fabric.Shadow({color:u.nodeShadow,offsetY:5,blur:6})}),E=function(e,t,n,i,r){var o=r.colors,a=r.prepareCopyText,s=new pm.fabric.Path(Om,{fill:o.stroke,hoverCursor:"pointer"}),u=new pm.fabric.Path(Im,{stroke:o.stroke,fill:"",hoverCursor:"pointer",opacity:0}),l=new pm.fabric.Path(Am,{stroke:o.stroke,fill:"",hoverCursor:"pointer",opacity:0}),c=new pm.fabric.Group([s,u,l],{top:n,left:i-Em,scaleX:.6,scaleY:.6});return"function"===typeof a&&c.on("mousedown",(function(){var n=a(t),i=Tm()(n)?u:l;i.animate("opacity",1,{duration:150,onChange:e.requestRenderAll.bind(e),easing:pm.fabric.util.ease.easeInOutSine,onComplete:function(){setTimeout((function(){i.set("opacity",0),e.requestRenderAll()}),1e3)}})})),c}(e,s,Sm.paddingTop,b-Sm.paddingLeft-Sm.paddingRight,n);E.set("visible",!1);var N=[L,p,E,v,g,m].filter(Boolean);i&&N.push(Nm(x/2-xm.radius,b-xm.paddingRight-2*Sm.borderRadius,u));var D=new pm.fabric.Group(N,Object.assign({left:o,top:a},bm));return"function"===typeof d&&(D.on("mouseover",(function(){E.set("visible",!0),e.requestRenderAll()})),D.on("mouseout",(function(){E.set("visible",!1),e.requestRenderAll()}))),D}var Fm=10,jm=10,Hm=15,Bm=40;function zm(e){var t=arguments.length>3?arguments[3]:void 0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:jm,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Fm,r=[],o=[],a=0,s=0;e.traverseByLevels((function(u,l){var c=[],d=0,h=0,f=u.map((function(r,a){var u=i+Bm*l+s,f=n+c.reduce((function(e,t){return e+t.getScaledHeight()||0}),0)+Hm*a,p=function(e,t,n,i,r,o){var a,s=[],u=i.data;if(i.members.length>0){var l=n+Lm.paddingRight,c=t+Lm.paddingTop+Lm.paddingTop+Lm.paddingBottom,d=0,h=0,f=i.members.reduce((function(t,n){n.setCanvas(e),n.setNodesWithChildren(o);var i=zm(n,c,l,r),a=i.nodes,s=i.bottom,u=i.right;return c=s+Hm,s>d&&(d=s),u>h&&(h=u),t.push.apply(t,(0,zt.Z)(a)),t}),[]);a=function(e,t,n,i){var r=t.left,o=t.top,a=t.width,s=t.height,u=new pm.fabric.Text(e||"",{fontSize:Sm.titleFontSize,lineHeight:18,left:Lm.paddingLeft,top:Lm.paddingTop,fontFamily:wm,fill:n.titleColor}),l=s+Lm.paddingBottom+(u.height||0),c=a+Lm.paddingLeft+Lm.paddingRight;i&&(c+=xm.paddingRight);var d=[new pm.fabric.Rect({width:c,height:l,stroke:n.groupBorderColor,fill:n.groupFill,rx:Sm.borderRadius,ry:Sm.borderRadius}),u];return i&&d.push(Nm(l/2-xm.radius,c-Sm.paddingLeft-2*Sm.borderRadius,n)),new pm.fabric.Group(d,Object.assign({left:r,top:o},bm))}(u.name,{top:t,left:n,width:h-n-Lm.paddingRight,height:d-t-Lm.paddingTop},r.colors,o.includes(i.data.name)),s.push.apply(s,(0,zt.Z)(f))}else a=Zm(e,{left:n,top:t,node:i.data},r,o.includes(i.data.name));return i.addCanvasNode(a),{object:a,membersObjects:s,top:t,left:n,width:a.getScaledWidth(),height:a.getScaledHeight()}}(e.canvas,f,u,r,t,e.nodesWithChildren),g=p.object,v=p.membersObjects;v.length>0&&o.push.apply(o,(0,zt.Z)(v)),d+=g.getScaledHeight()+Hm;var m=g.getScaledWidth();return m>h&&(h=m),r.addCanvasNode(g),c.push(g),g}));r.push.apply(r,(0,zt.Z)(f)),r.push.apply(r,o),s+=h,(d-=Hm)>a&&(a=d)}));var u=e.getTreeDepth()*Bm;return{nodes:r,bottom:a+n,right:s+i+u}}var Wm=function(){function e(t,n){(0,i.Z)(this,e),this.children=[],this.members=[],this.data=t,this.canvasNode=n}return(0,r.Z)(e,[{key:"add",value:function(t,n){var i=new e(t,n);i.addParent(this),this.children.push(i)}},{key:"addNode",value:function(e){e.addParent(this),this.children.push(e)}},{key:"addNodes",value:function(e){var t=this;e.forEach((function(e){e.addParent(t)})),this.children=this.children.concat(e)}},{key:"addCanvasNode",value:function(e){this.canvasNode=e}},{key:"addShapeInstance",value:function(e){this.shapeInstance=e}},{key:"hasChildren",value:function(){return this.children.length>0}},{key:"addParent",value:function(e){this.parent=e}},{key:"getLeftSibling",value:function(){var e=this;if(this.parent){var t=this.parent.children.findIndex((function(t){return t===e}));return this.parent.children[t-1]}}},{key:"getRightSibling",value:function(){var e=this;if(this.parent){var t=this.parent.children.findIndex((function(t){return t===e}));return this.parent.children[t+1]}}}]),e}();var Vm=function(){function e(t){(0,i.Z)(this,e),this.nodesWithChildren=[],this.root=t}return(0,r.Z)(e,[{key:"traverseBF",value:function(e){for(var t=[this.root];t.length>0;){var n=t.shift();n&&(t.push.apply(t,(0,zt.Z)(n.children)),e(n))}}},{key:"traverseDF",value:function(e){for(var t=[this.root];t.length;){var n=t.shift(),i=!1;n&&(n.children.length>0?t.unshift.apply(t,(0,zt.Z)(n.children)):i=!0,e(n,i))}}},{key:"traverseByLevels",value:function(e){var t=0,n=this.root.children;for(e([this.root],0);n.length>0;)e(n,++t),n=n.reduce((function(e,t){return e.concat(t.children)}),[])}},{key:"getTreeDepth",value:function(){var e=0;return this.traverseByLevels((function(t,n){e=n})),e}},{key:"setCanvas",value:function(e){this.canvas=e}},{key:"setNodesWithChildren",value:function(e){this.nodesWithChildren=e}}]),e}(),Ym=function(){function e(t,n){(0,i.Z)(this,e),this.nodes=new Map,this.data=t,this.opts=n}return(0,r.Z)(e,[{key:"parseData",value:function(){var e=this,t=this.data,n=this.getGroups(t),i=(0,zt.Z)(t.nodes);n.forEach((function(e,t){i.push({name:t,children:e,type:_m.Group})}));var r=this.findSources(i,t.links),o=[],a={},s=new Map;return r.forEach((function(n){var r=e.mapNodesToTree(n,i,t.links);a=Object.assign(Object.assign({},r.groups),a),s=new Map([].concat((0,zt.Z)(s),(0,zt.Z)(r.notGroupMemebersChildren))),o.push(r.tree)})),s.forEach((function(e,t){a[t]&&a[t].addNodes(e)})),o=o.reduce((function(e,t){var n=t.root.data.group;return n?a[n].members.push(t):e.push(t),e}),[]),o}},{key:"getGroups",value:function(e){var t=e.nodes,n=new Map;return t.forEach((function(e){if(e.group){var t=n.get(e.group);t?t.push(e.name):n.set(e.group,[e.name])}})),n}},{key:"findSources",value:function(e,t){var n=t.map((function(e){return e.to}));return e.reduce((function(e,t){return n.includes(t.name)||e.push(t),e}),[])}},{key:"mapNodesToTree",value:function(e,t,n){var i,r=this.createNode(e),o={};this.appendGoup(o,r);var a=t.map((function(e){var t=n.reduce((function(t,n){return n.from===e.name&&t.push(n.to),t}),[]);return Object.assign(Object.assign({},e),{children:t})})),s=this.getAppender(a,o),u=(null===(i=a.find((function(t){return t.name===e.name})))||void 0===i?void 0:i.children)||[],l=s(r,u);return{tree:new Vm(r),groups:o,notGroupMemebersChildren:l}}},{key:"appendGoup",value:function(e,t){var n=t.data;t.data.type===_m.Group&&(e[n.name]=t)}},{key:"getAppender",value:function(e,t){var n=this,i=new Map;return function r(o,a){var s=a.map((function(i){var o=e.find((function(e){return e.name===i})),a=n.createNode(o);return n.appendGoup(t,a),o.children.length>0&&r(a,o.children),a})),u=o.data.group,l=Boolean(u),c=[],d=[];if(s.forEach((function(e){var t=e.data.group;l?u===t?c.push(e):d.push(e):c.push(e)})),o.addNodes(c),u&&d.length>0){var h=i.get(u);h?h.push.apply(h,d):i.set(u,d)}return i}}},{key:"createNode",value:function(e){var t=new Wm(e);return this.nodes.set(e.name,t),t}}]),e}();var Um=4,Km=12;function qm(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:dm.Arrow,r=function(e){var t=e.left,n=void 0===t?0:t,i=e.top,r=void 0===i?0:i,o=e.width,a=void 0===o?0:o,s=e.height;return{x:n+a,y:r+(void 0===s?0:s)/2}}(e),o=r.x,a=r.y,s=function(e){var t=e.left,n=void 0===t?0:t,i=e.top,r=void 0===i?0:i,o=e.height;return{x:n,y:r+(void 0===o?0:o)/2}}(t),u=s.x,l=s.y,c={y:a,x:o+Um},d={y:l,x:u-Km},h=[new pm.fabric.Path("M ".concat(o," ").concat(a,"\n H ").concat(c.x,"\n ").concat(function(e,t){var n=t.y-e.y;return Math.abs(n),"L ".concat(t.x," ").concat(t.y)}(c,d),"\n H ").concat(u,"\n "),{fill:"",stroke:n.stroke,strokeWidth:1})];if(i!==dm.Line){var f=new pm.fabric.Path(function(e,t){var n={x1:e,y1:t,x2:e-8,y2:t-3,x3:e-8,y3:t+3};return"M ".concat(n.x1," ").concat(n.y1,"\n L ").concat(n.x3," ").concat(n.y3,"\n L ").concat(n.x2," ").concat(n.y2,"\n L ").concat(n.x1," ").concat(n.y1,"\n ")}(u,l),{fill:n.stroke,stroke:n.stroke,strokeWidth:1});h.push(f)}return new pm.fabric.Group(h,Object.assign({},bm))}var Gm=function(){function e(t,n,r){(0,i.Z)(this,e),this.nodesWithChildren=r.links.reduce((function(e,t){return e.set(t.from,[]),e}),new Map),this.parser=new Ym(r,n),this.opts=n,this.canvas=mm(t,n)}return(0,r.Z)(e,[{key:"destroy",value:function(){var e=document.getElementById(vm);e&&(this.canvas.dispose(),e.remove())}},{key:"renderCompactTopology",value:function(){var e=this;requestAnimationFrame((function(){var t;e.parser.parseData().forEach((function(n){n.setCanvas(e.canvas),n.setNodesWithChildren(e.getNodesWithChildren());var i=zm(n,t,undefined,e.opts),r=i.nodes,o=i.bottom;t=o+15;var a=e.getLinks();e.renderIntoCanvas(r,a)})),e.opts.initialZoomFitsCanvas&&e.zoomObjectsToFitCanvas()}))}},{key:"updateData",value:function(e){var t=this;this.parser=new Ym(e,this.opts),this.setNodeWithChildren(e);var n,i=this.parser.parseData();i.forEach((function(e,r){e.setCanvas(t.canvas),e.setNodesWithChildren(t.getNodesWithChildren());var o=zm(e,n,undefined,t.opts),a=o.nodes,s=o.bottom;n=s+15;var u=t.getLinks();t.renderIntoCanvas(a,u,i.length-1===r)}))}},{key:"renderIntoCanvas",value:function(e,t,n){var i;this.canvas&&(this.clearCanvas(),(i=this.canvas).add.apply(i,(0,zt.Z)(t).concat((0,zt.Z)(e))),this.bringNodesToFront(),this.rendered=n)}},{key:"clearCanvas",value:function(){if(this.canvas&&this.rendered){try{this.canvas.clear(),this.canvas.clearContext(this.canvas.getContext())}catch(e){console.error(e)}this.rendered=!1}}},{key:"setNodeWithChildren",value:function(e){this.nodesWithChildren=e.links.reduce((function(e,t){return e.set(t.from,[]),e}),new Map)}},{key:"getNodesWithChildren",value:function(){var e,t=[],n=(0,tr.Z)(this.nodesWithChildren.keys());try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push(i)}}catch(r){n.e(r)}finally{n.f()}return t}},{key:"getLinks",value:function(){var e=this,t=this.parser;return t?t.data.links.reduce((function(n,i){var r=i.from,o=i.to,a=t.nodes.get(r),s=t.nodes.get(o);return(null===a||void 0===a?void 0:a.canvasNode)&&(null===s||void 0===s?void 0:s.canvasNode)?(n.push(qm(a.canvasNode,s.canvasNode,e.opts.colors,e.opts.linkType)),n):n}),[]):[]}},{key:"bringNodesToFront",value:function(){var e,t=null===(e=this.parser)||void 0===e?void 0:e.nodes;t&&t.forEach((function(e){e.data.type!==_m.Group&&e.canvasNode&&e.canvasNode.bringToFront()}))}},{key:"zoomObjectsToFitCanvas",value:function(){var e=0,t=0;this.canvas.getObjects().forEach((function(n){var i=n.getBoundingRect(),r=i.top,o=i.left,a=i.height,s=o+i.width,u=r+a;s>e&&(e=s),u>t&&(t=u)})),e+=this.opts.initialLeft,t+=this.opts.initialTop;var n=this.canvas.getWidth()/e,i=this.canvas.getHeight()/t,r=Math.min(n,i);if(r<1){this.canvas.setZoom(r);var o=this.opts.initialTop*r,a=this.opts.initialLeft*r,s=this.opts.initialTop-o,u=this.opts.initialLeft-a;this.canvas.relativePan(new pm.fabric.Point(u,s))}}}]),e}(),$m=n(28664),Qm=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n)}((0,$m.Z)(CustomEvent)),Xm=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"dispatch",value:function(e,t){this.dispatchEvent(new Qm(e,{detail:t}))}}]),n}((0,$m.Z)(EventTarget)),Jm=16,e_=16,t_=24;function n_(e){switch(e){case 0:return 0;case 1:return e_;default:return t_}}function i_(e,t,n,i,r,o){var a=function(e,t,n,i,r,o,a){var s=new Map,u=new Map,l=new Map,c=[];return i.traverseBF((function(i){var r=function(e,t,n,i,r,o,a){var s,u,l=null!==(s=t.shapeInstance)&&void 0!==s?s:o.node(e,{top:n,left:i},t,r,a),c=null!==(u=t.canvasNode)&&void 0!==u?u:l.getShape();return t.addShapeInstance(l),t.addCanvasNode(c),{object:c,top:n,left:i,width:c.getScaledWidth(),height:c.getScaledHeight()}}(e,i,0,0,t,n,a),o=r.object,u=r.width,l=r.height;s.set(i,{width:u,height:l}),c.push(o)})),function e(t){var n=s.get(t).width,i=0;if(t.parent&&1===t.parent.children.length&&u.has(t.parent)){var r=u.get(t.parent);n<r&&(n=r)}return u.set(t,n),t.children.length>0&&(i=(t.children.length-1)*Jm+t.children.reduce((function(t,n){return t+e(n)}),0),l.set(t,i)),n=Math.max(n,i),u.set(t,n),n}(i.root),function e(t,n,i){var r,o=i,a=i,c=(0,tr.Z)(t);try{for(c.s();!(r=c.n()).done;){var d=r.value,h=s.get(d),f=h.width,p=h.height,g=u.get(d),v=n,m=o+Math.floor(g/2)-Math.floor(f/2);if(d.canvasNode.set({top:v,left:m}),d.canvasNode.setCoords(),o=o+g+Jm,d.children.length){var _=0,y=l.get(d);y<g&&(_=Math.floor((g-y)/2));var b=n+p+n_(d.children.length),w=a+_;e(d.children,b,w)}a=o}}catch(C){c.e(C)}finally{c.f()}}([i.root],r,o),c}(e.canvas,i,r,e,t,n,o),s=0,u=0;return a.forEach((function(e){s=Math.max(s,(e.left||0)+e.getScaledWidth()),u=Math.max(u,(e.top||0)+e.getScaledHeight())})),{nodes:a,bottom:u,right:s}}function r_(e){var t=e.canvasNode;if(t){var n=t.left||0,i=(t.top||0)+t.getScaledHeight();return{x:n+t.getScaledWidth()/2,y:i}}return{x:0,y:0}}function o_(e){var t=e.canvasNode;if(t){var n=t.left||0,i=t.top||0;return{x:n+t.getScaledWidth()/2,y:i}}return{x:0,y:0}}var a_=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.canvas=mm(t,n),this.parser=new Ym(r,n),this.opts=n,this.shapes=o,this.em=new Xm,this.trees=[],this.nodes=[],this.links=[],this.listenNodeResize()}return(0,r.Z)(e,[{key:"render",value:function(){var e=this;requestAnimationFrame((function(){e.trees=e.parser.parseData(),e.renderIntoCanvas(),e.opts.initialZoomFitsCanvas&&e.zoomObjectsToFitCanvas()}))}},{key:"destroy",value:function(){var e=document.getElementById(vm);e&&(this.canvas.dispose(),e.remove())}},{key:"getEventEmmiter",value:function(){return this.em}},{key:"getGraphNode",value:function(e){return this.parser.nodes.get(e)}},{key:"getOpts",value:function(){return this.opts}},{key:"getColors",value:function(){return this.opts.colors}},{key:"getCanvas",value:function(){return this.canvas}},{key:"renderIntoCanvas",value:function(){var e,t,n=this;this.nodes.forEach((function(e){n.canvas.remove(e)})),this.nodes=[],this.links.forEach((function(e){n.canvas.remove(e)})),this.links=[];var i=this.canvas.getHeight()||0,r=this.canvas.getWidth()||0,o=i,a=r,s=this.opts.initialTop,u=this.opts.initialLeft;this.trees.forEach((function(e){var t,i;e.setCanvas(n.canvas);var r=i_(e,s,u,n.opts,n.shapes,n.em),l=r.nodes,c=r.bottom,d=r.right;u=d+15,o=Math.max(c,o),a=Math.max(d,a),(t=n.nodes).push.apply(t,(0,zt.Z)(l)),(i=n.canvas).add.apply(i,(0,zt.Z)(l))}));var l=function(e,t){var n=t.colors,i=[];return e.data.links.reduce((function(t,r){var o=r.from,a=e.nodes.get(o);if(a&&1===a.children.length&&!i.includes(o)){var s=r_(a),u=s.x,l=s.y,c=new pm.fabric.Path("M ".concat(u," ").concat(l,"\n V ").concat(l+e_),{fill:"",stroke:n.stroke,strokeWidth:1});t.push(new pm.fabric.Group([c],Object.assign({},bm))),i.push(o)}if(a&&a.children.length>1&&!i.includes(o)){var d=r_(a),h=d.x,f=d.y,p=t_/2,g=[new pm.fabric.Path("M ".concat(h," ").concat(f,"\n V ").concat(f+p),{fill:"",stroke:n.stroke,strokeWidth:1})],v=o_(a.children[0]),m=v.x,_=v.y,y=o_(a.children[a.children.length-1]),b=y.x,w=y.y,C=new pm.fabric.Path("M ".concat(m," ").concat(_,"\n V ").concat(_-p+6,"\n Q ").concat(m," ").concat(_-p," ").concat(m+6," ").concat(_-p,"\n H ").concat(b-6,"\n Q ").concat(b," ").concat(w-p," ").concat(b," ").concat(w+6-p,"\n V ").concat(w,"\n "),{fill:"",stroke:n.stroke,strokeWidth:1});g.push(C),a.children.forEach((function(e,t){if(0!==t&&t!==a.children.length-1){var i=o_(e),r=i.x,o=i.y,s=new pm.fabric.Path("M ".concat(r," ").concat(o,"\n V ").concat(o-p,"\n "),{fill:"",stroke:n.stroke,strokeWidth:1});g.push(s)}})),t.push(new pm.fabric.Group(g,Object.assign({},bm))),i.push(o)}return t}),[])}(this.parser,this.opts);(e=this.links).push.apply(e,(0,zt.Z)(l)),(t=this.canvas).add.apply(t,(0,zt.Z)(l)),this.bringNodesToFront()}},{key:"bringNodesToFront",value:function(){var e,t=null===(e=this.parser)||void 0===e?void 0:e.nodes;t&&t.forEach((function(e){e.canvasNode&&e.canvasNode.bringToFront()}))}},{key:"listenNodeResize",value:function(){var e=this;this.em.addEventListener("node:resize",(function(){e.renderIntoCanvas()}))}},{key:"zoomObjectsToFitCanvas",value:function(){var e=0,t=0;this.canvas.getObjects().forEach((function(n){var i=n.getBoundingRect(),r=i.top,o=i.left,a=i.height,s=o+i.width,u=r+a;s>e&&(e=s),u>t&&(t=u)})),e+=this.opts.initialLeft,t+=this.opts.initialTop;var n=this.canvas.getWidth()/e,i=this.canvas.getHeight()/t,r=Math.min(n,i);if(r<1){this.canvas.setZoom(r);var o=this.opts.initialTop*r,a=this.opts.initialLeft*r,s=this.opts.initialTop-o,u=this.opts.initialLeft-a;this.canvas.relativePan(new pm.fabric.Point(u,s))}}}]),e}();function s_(){var e={success:"--yc-color-text-positive",error:"--yc-color-scarlet",warning:"--yc-color-amber",errorBackground:"--yc-color-base-danger",warningBackground:"--yc-color-base-warning",mute:"--yc-color-line-generic",stroke:"--yc-color-text-hint",fill:"--yc-color-base-generic-ultralight",nodeFill:"--yc-color-base-float",nodeShadow:"--yc-color-sfx-shadow",titleColor:"--yc-color-text-primary",textColor:"--yc-color-text-complementary",buttonBorderColor:"--yc-color-line-generic",groupBorderColor:"--yc-color-celestial-thunder",groupFill:"--yc-color-celestial",titleHoverColor:"--yc-color-text-link-hover",nodeHover:"--yc-color-base-float-hover",specialHover:"--yc-color-line-selection-active"},t=getComputedStyle(document.body),n=Object.keys(e).reduce((function(n,i){var r=t.getPropertyValue(e[i]).replace(/ /g,"");return r&&(n[i]=r),n}),{});return Object.assign(Object.assign(Object.assign({},ym),n),{getCommonColor:function(e){return t.getPropertyValue("--yc-color-".concat(e)).replace(/ /g,"")}})}var u_={linkType:dm.Arrow};function l_(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u_,t=e.colors||{};return Object.assign(Object.assign({initialTop:10,initialLeft:10},e),{colors:Object.assign(Object.assign(Object.assign({},ym),s_()),t)})}function c_(e,t,n){var i=l_(n);return new Gm(e,i,t)}function d_(e,t,n,i){var r=l_(n);return new a_(e,r,t,i)}var h_=n(81451),f_="paranoidRoot",p_=(e.Component,"paranoidRoot"),g_=(e.Component,{width:280,expandedWidth:360,borderRadius:4,titleFontSize:Cm,titleLineHeight:km,textFontSize:Cm,textLineHeight:km,padding:12,timeMaxWidth:25,percentageMaxWidth:25,textOffset:8,tagLeftOffset:4,tagTopOffset:5,statsOffset:24});var v_=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.top=0,this.left=0,this.canvas=t,this.stats=n,this.coords=r,this.colors=o,this.textProps={fontSize:g_.textFontSize,lineHeight:g_.textLineHeight,fontFamily:wm,fill:null===o||void 0===o?void 0:o.titleColor},this.selectedGroup=n[0].group;var a=this.createTitles(),s=a.map((function(e){return e.getScaledHeight()})),u=Math.max.apply(null,s);this.lineTop=this.top+u+g_.textOffset;var l=this.createLine();this.content=this.createContent(a),this.group=this.createGroup(a,l,this.content),this.initListeners()}return(0,r.Z)(e,[{key:"getCanvasObject",value:function(){return this.group}},{key:"createTitles",value:function(){var e=this,t=this.left;return this.stats.map((function(e){return e.group})).map((function(n){var i,r,o=new pm.fabric.Text(n,Object.assign(Object.assign({left:t,top:e.top},e.textProps),{fill:n===e.selectedGroup?null===(i=e.colors)||void 0===i?void 0:i.titleColor:null===(r=e.colors)||void 0===r?void 0:r.textColor}));return t+=o.getScaledWidth()+g_.statsOffset,o}))}},{key:"createLine",value:function(){return new pm.fabric.Path("M ".concat(this.left," ").concat(this.lineTop,"\n H ").concat(g_.expandedWidth-2*g_.padding),{fill:"",stroke:this.colors.stroke,strokeWidth:1})}},{key:"createContent",value:function(e){var t=this;return this.stats.map((function(n,i){var r=n.group,o=n.stats,a=t.getContentItems(o,t.lineTop),s=e[i],u=s.left||0,l=u+s.getScaledWidth();return{group:r,items:new pm.fabric.Group(a,{opacity:t.selectedGroup===r?1:0}),title:s,hoverLine:t.createHoverLine(u,l,r)}}))}},{key:"getContentItems",value:function(e,t){var n=this,i=t+2*g_.textOffset,r=[],o=function(e){e.forEach((function(e){var t,o=e.name,a=e.value,s=new pm.fabric.Text(o,Object.assign({left:n.left,top:i},n.textProps)),u=g_.expandedWidth/2-g_.padding,l=g_.expandedWidth-2*g_.padding,c=new pm.fabric.Textbox(String(a),Object.assign(Object.assign({left:u,top:i},n.textProps),{fill:null===(t=n.colors)||void 0===t?void 0:t.textColor,splitByGrapheme:!0,width:l-u}));r.push(s,c),i+=Math.max(s.getScaledHeight(),c.getScaledHeight())+g_.textOffset}))};return!function(e){var t;return Boolean(null===(t=e[0])||void 0===t?void 0:t.items)}(e)?o(e):e.forEach((function(t,a){var s=t.name,u=t.items,l=new pm.fabric.Text(s,Object.assign(Object.assign({left:n.left,top:i},n.textProps),{fontWeight:"bold"}));if(r.push(l),i+=l.getScaledHeight()+g_.textOffset,o(u),a!==e.length-1){var c=new pm.fabric.Path("M ".concat(n.left," ").concat(i,"\n H ").concat(g_.expandedWidth-2*g_.padding),{fill:"",stroke:n.colors.stroke,strokeWidth:1,strokeDashArray:[6,4]});r.push(c),i+=c.getScaledHeight()+g_.textOffset}})),r}},{key:"createGroup",value:function(e,t,n){var i=n.map((function(e){return e.items})),r=n.map((function(e){return e.hoverLine}));return new pm.fabric.Group([].concat((0,zt.Z)(e),[t],(0,zt.Z)(i),(0,zt.Z)(r)),Object.assign({left:this.coords.left,top:this.coords.top},bm))}},{key:"createHoverLine",value:function(e,t,n){return new pm.fabric.Path("M ".concat(e," ").concat(this.lineTop-1,"\n H ").concat(t),{fill:"",stroke:this.colors.specialHover,strokeWidth:2,opacity:this.selectedGroup===n?1:0})}},{key:"initListeners",value:function(){var e=this;this.content.forEach((function(t){var n=t.group,i=t.title,r=t.items,o=t.hoverLine;i.on("mousedown",(function(){var t=e.selectedGroup,a=e.content.find((function(e){return e.group===t}));a&&(a.title.set({fill:e.colors.textColor}),a.items.set({opacity:0}),a.hoverLine.set({opacity:0}),i.set({fill:e.colors.titleColor}),r.set({opacity:1}),o.set({opacity:1}),e.selectedGroup=n,e.canvas.requestRenderAll())}))}))}}]),e}();function m_(e,t,n,i,r){return new v_(e,t,{top:n,left:i},r).getCanvasObject()}function __(e,t,n){return new pm.fabric.Textbox(e?"#".concat(e):"",{fontSize:12,lineHeight:14,textAlign:"right",fontFamily:wm,fill:n.getCommonColor("text-secondary"),hoverCursor:t?"pointer":"default"})}var y_={width:112,expandedWidth:360,borderRadius:6,titleFontSize:Cm,titleLineHeight:km,textFontSize:Cm,textLineHeight:km,padding:16,textOffset:8},b_={scaleX:16/512,scaleY:16/512,originY:"center"};function w_(e,t,n){var i,r=new pm.fabric.Text(e,{fontSize:y_.textFontSize,lineHeight:y_.textFontSize,fontFamily:wm,fill:n.getCommonColor("text-misc"),originY:"center"}),o=[r];switch(e){case"Merge":i=new pm.fabric.Path("M232.5 5.171C247.4-1.718 264.6-1.718 279.5 5.171L498.1 106.2C506.6 110.1 512 118.6 512 127.1C512 137.3 506.6 145.8 498.1 149.8L279.5 250.8C264.6 257.7 247.4 257.7 232.5 250.8L13.93 149.8C5.438 145.8 0 137.3 0 127.1C0 118.6 5.437 110.1 13.93 106.2L232.5 5.171zM498.1 234.2C506.6 238.1 512 246.6 512 255.1C512 265.3 506.6 273.8 498.1 277.8L279.5 378.8C264.6 385.7 247.4 385.7 232.5 378.8L13.93 277.8C5.438 273.8 0 265.3 0 255.1C0 246.6 5.437 238.1 13.93 234.2L67.13 209.6L219.1 279.8C242.5 290.7 269.5 290.7 292.9 279.8L444.9 209.6L498.1 234.2zM292.9 407.8L444.9 337.6L498.1 362.2C506.6 366.1 512 374.6 512 383.1C512 393.3 506.6 401.8 498.1 405.8L279.5 506.8C264.6 513.7 247.4 513.7 232.5 506.8L13.93 405.8C5.438 401.8 0 393.3 0 383.1C0 374.6 5.437 366.1 13.93 362.2L67.13 337.6L219.1 407.8C242.5 418.7 269.5 418.7 292.9 407.8V407.8z",b_);break;case"UnionAll":i=new pm.fabric.Path("M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z",b_);break;case"HashShuffle":i=new pm.fabric.Path("M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z",b_);break;case"Map":i=new pm.fabric.Path("M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z",b_);break;case"Broadcast":i=new pm.fabric.Path("M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z",b_)}return i&&(i.set({fill:n.getCommonColor("text-misc"),top:0,left:0,originY:"center"}),r.set({left:22}),o.push(i)),new pm.fabric.Group(o,Object.assign(Object.assign({},bm),{hoverCursor:t?"pointer":"default"}))}var C_=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.expanded=!1,this.expandedNodeHeight=0,this.nodeHeight=0,this.canvas=t,this.coords=n,this.treeNode=r,this.opts=o,this.em=a,this.data=Zt().get(r,["data","data"]),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup(),this.initListeners()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.getCommonColor("base-misc")}},{key:"getHoverFillColor",value:function(){return this.opts.colors.getCommonColor("base-misc-hover")}},{key:"getShadow",value:function(){}},{key:"getHoverShadow",value:function(){}},{key:"toggleHighlight",value:function(e){this.isExpandable()&&!this.expanded&&this.body.set({fill:e?this.getHoverFillColor():this.getFillColor()}),this.canvas.requestRenderAll()}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+y_.padding,new pm.fabric.Rect({width:y_.width,height:this.nodeHeight,fill:this.getFillColor(),shadow:this.getShadow(),stroke:e.getCommonColor("line-misc"),rx:y_.borderRadius,ry:y_.borderRadius,hoverCursor:this.isExpandable()?"pointer":"default"})}},{key:"prepareShapeObjects",value:function(){return[__(this.data.id,this.isExpandable(),this.opts.colors),w_(this.data.name||"",this.isExpandable(),this.opts.colors)]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,Ti.Z)(this.objects,2),t=e[0],n=e[1],i=y_.padding,r=this.expanded?y_.expandedWidth:y_.width,o=n.getScaledWidth();t.set({left:0,top:4,width:r-4}),n.set({left:r/2-o/2,top:i})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new pm.fabric.Group([this.body].concat((0,zt.Z)(this.objects)),Object.assign({top:t,left:n},bm))}},{key:"initListeners",value:function(){this.initHover(),this.isExpandable()&&this.initExpand()}},{key:"initHover",value:function(){var e=this;this.group.on("mouseover",(function(){e.em.dispatch("node:mouseover",e.treeNode),e.toggleHighlight(!0)})),this.group.on("mouseout",(function(){e.em.dispatch("node:mouseout",e.treeNode),e.toggleHighlight(!1)}))}},{key:"initExpand",value:function(){var e=this;this.group.on("mousedown",(function(t){var n;e.stats&&(null===(n=t.subTargets)||void 0===n?void 0:n.includes(e.stats))||(e.expanded=!e.expanded,e.updateDimensions(),e.em.dispatch("node:resize",e.treeNode))}))}},{key:"updateDimensions",value:function(){var e,t,n=this.opts.colors,i=(0,Ti.Z)(this.objects,2),r=i[0],o=i[1],a=o.getScaledWidth();this.expanded?(this.stats=m_(this.canvas,this.data.stats,(this.group.top||0)+this.body.getScaledHeight()+y_.padding,(this.group.left||0)+y_.padding,n),this.expandedNodeHeight=this.nodeHeight+this.stats.getScaledHeight()+2*y_.padding,e=y_.expandedWidth,t=this.expandedNodeHeight,this.group.addWithUpdate(this.stats)):(e=y_.width,t=this.nodeHeight,this.group.removeWithUpdate(this.stats),this.stats=void 0);var s=function(e,t){var n=[];return t.forEachObject((function(i){n.push(i),t.removeWithUpdate(i),e.add(i)})),function(){n.forEach((function(n){e.remove(n),t.addWithUpdate(n)}))}}(this.canvas,this.group);this.body.set({width:e,height:t,fill:this.getFillColor(),shadow:this.getShadow()}),r.set({width:e-4}),o.set({left:(this.body.left||0)+(this.body.width||0)/2-a/2}),s()}},{key:"isExpandable",value:function(){return Boolean(this.data.stats&&this.data.stats.length>0)}}]),e}(),k_={width:190,bevelSize:10,titleFontSize:Cm,titleLineHeight:km,padding:12};var S_=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.nodeHeight=0,this.coords=n,this.opts=o,this.data=Zt().get(r,["data","data"]),this.shadow=new pm.fabric.Shadow({color:o.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new pm.fabric.Shadow({color:o.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.nodeFill}},{key:"getHoverFillColor",value:function(){return this.opts.colors.nodeHover}},{key:"getShadow",value:function(){return this.shadow}},{key:"getHoverShadow",value:function(){return this.hoverShadow}},{key:"toggleHighlight",value:function(){}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+k_.padding,new pm.fabric.Polygon([{x:k_.bevelSize,y:0},{x:k_.width-k_.bevelSize,y:0},{x:k_.width,y:k_.bevelSize},{x:k_.width,y:this.nodeHeight-k_.bevelSize},{x:k_.width-k_.bevelSize,y:this.nodeHeight},{x:k_.bevelSize,y:this.nodeHeight},{x:0,y:this.nodeHeight-k_.bevelSize},{x:0,y:k_.bevelSize}],{fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,shadow:this.getShadow(),hoverCursor:"default"})}},{key:"prepareShapeObjects",value:function(){var e=function(e,t){return new pm.fabric.Text(e.join("\n"),{fontSize:k_.titleFontSize,lineHeight:k_.titleLineHeight,left:0,top:26,fontFamily:wm,fontStyle:"italic",fill:t.getCommonColor("text-primary")})}([this.data.name||""],this.opts.colors);return[e]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,Ti.Z)(this.objects,1)[0],t=k_.padding,n=e.getScaledWidth();e.set({left:k_.width/2-n/2,top:t})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new pm.fabric.Group([this.body].concat((0,zt.Z)(this.objects)),Object.assign({top:t,left:n},bm))}}]),e}(),x_=40,L_=40,E_=20,N_=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.coords=n,this.opts=o,this.shadow=new pm.fabric.Shadow({color:o.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new pm.fabric.Shadow({color:o.colors.nodeShadow,offsetY:3,blur:8}),this.body=this.prepareNodeBody(),this.group=this.createGroup()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.nodeFill}},{key:"getHoverFillColor",value:function(){return this.opts.colors.nodeHover}},{key:"getShadow",value:function(){return this.shadow}},{key:"getHoverShadow",value:function(){return this.hoverShadow}},{key:"toggleHighlight",value:function(){}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors;return new pm.fabric.Rect({width:x_,height:L_,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,rx:E_,ry:E_,shadow:this.getShadow(),hoverCursor:"default"})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new pm.fabric.Group([this.body],Object.assign({top:t,left:n},bm))}}]),e}(),D_={width:112,borderRadius:6,titleFontSize:Cm,titleLineHeight:km,textFontSize:Cm,textLineHeight:km,padding:12,textOffset:8};var M_=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.nodeHeight=0,this.coords=n,this.opts=o,this.data=Zt().get(r,["data","data"]),this.shadow=new pm.fabric.Shadow({color:o.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new pm.fabric.Shadow({color:o.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.nodeFill}},{key:"getHoverFillColor",value:function(){return this.opts.colors.nodeHover}},{key:"getShadow",value:function(){return this.shadow}},{key:"getHoverShadow",value:function(){return this.hoverShadow}},{key:"toggleHighlight",value:function(){}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+D_.padding,new pm.fabric.Rect({width:D_.width,height:this.nodeHeight,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,shadow:this.getShadow(),hoverCursor:"default"})}},{key:"prepareShapeObjects",value:function(){var e=function(e,t){return new pm.fabric.Text(e.join("\n"),{fontSize:D_.textFontSize,lineHeight:D_.textLineHeight,left:0,top:26,fontFamily:wm,fill:t.getCommonColor("text-primary")})}([this.data.name||""],this.opts.colors);return[e]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,Ti.Z)(this.objects,1)[0],t=D_.padding,n=e.getScaledWidth();e.set({left:D_.width/2-n/2,top:t})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new pm.fabric.Group([this.body].concat((0,zt.Z)(this.objects)),Object.assign({top:t,left:n},bm))}}]),e}(),T_={width:248,expandedWidth:360,borderRadius:6,titleFontSize:Cm,titleLineHeight:km,textFontSize:Cm,textLineHeight:km,padding:12,textOffset:8};var O_=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.expanded=!1,this.expandedNodeHeight=0,this.nodeHeight=0,this.canvas=t,this.coords=n,this.treeNode=r,this.opts=o,this.em=a,this.data=Zt().get(r,["data","data"]),this.shadow=new pm.fabric.Shadow({color:o.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new pm.fabric.Shadow({color:o.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup(),this.initListeners()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.nodeFill}},{key:"getHoverFillColor",value:function(){return this.opts.colors.nodeHover}},{key:"getShadow",value:function(){return this.shadow}},{key:"getHoverShadow",value:function(){return this.hoverShadow}},{key:"toggleHighlight",value:function(e){this.isExpandable()&&!this.expanded&&this.body.set({fill:e?this.getHoverFillColor():this.getFillColor(),shadow:e?this.getHoverShadow():this.getShadow()}),this.canvas.requestRenderAll()}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+T_.padding,new pm.fabric.Rect({width:T_.width,height:this.nodeHeight,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,rx:T_.borderRadius,ry:T_.borderRadius,shadow:this.getShadow(),hoverCursor:this.isExpandable()?"pointer":"default"})}},{key:"prepareShapeObjects",value:function(){var e=__(this.data.id,this.isExpandable(),this.opts.colors),t=function(e,t,n){return new pm.fabric.Text(e.join("\n"),{fontSize:T_.textFontSize,lineHeight:T_.textLineHeight,fontFamily:wm,fill:n.getCommonColor("text-primary"),hoverCursor:t?"pointer":"default"})}(this.data.operators||[this.data.name||""],this.isExpandable(),this.opts.colors),n=function(e,t){if(0===e.length)return new pm.fabric.Group([],Object.assign({top:0,left:0},bm));var n=new pm.fabric.Text("Tables:",{fontSize:T_.textFontSize,lineHeight:T_.textLineHeight,fontFamily:wm,fill:t.getCommonColor("text-secondary"),hoverCursor:"pointer"}),i=n.getScaledWidth()+2,r=T_.width-2*T_.padding-i,o=new pm.fabric.Textbox(e.join("\n"),{left:i,width:r,fontSize:T_.textFontSize,lineHeight:T_.textLineHeight,fontFamily:wm,fill:t.getCommonColor("text-primary"),splitByGrapheme:!0,hoverCursor:"pointer"});return new pm.fabric.Group([n,o],Object.assign({top:0,left:0},bm))}(this.data.tables||[],this.opts.colors),i=function(e,t){if(!e)return new pm.fabric.Group([],Object.assign({top:0,left:0},bm));var n=new pm.fabric.Text("CTE:",{fontSize:T_.textFontSize,lineHeight:T_.textLineHeight,fontFamily:wm,fill:t.getCommonColor("text-secondary"),hoverCursor:"pointer"}),i=n.getScaledWidth()+2,r=T_.width-2*T_.padding-i,o=new pm.fabric.Textbox(e,{left:i,width:r,fontSize:T_.textFontSize,lineHeight:T_.textLineHeight,fontFamily:wm,fill:t.getCommonColor("text-primary"),splitByGrapheme:!0,hoverCursor:"pointer"});return new pm.fabric.Group([n,o],Object.assign({top:0,left:0},bm))}(this.data.cte||"",this.opts.colors);return[e,t,n,i]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,Ti.Z)(this.objects,4),t=e[0],n=e[1],i=e[2],r=e[3],o=T_.padding,a=T_.padding;t.set({left:0,top:4,width:(this.expanded?T_.expandedWidth:T_.width)-4}),n.set({left:a,top:o}),o+=n.getScaledHeight(),i.set({left:a,top:o+(0===i.size()?0:T_.textOffset)}),o+=i.getScaledHeight(),r.set({left:a,top:o+(0===r.size()?0:T_.textOffset)})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new pm.fabric.Group([this.body].concat((0,zt.Z)(this.objects)),Object.assign({top:t,left:n},bm))}},{key:"initListeners",value:function(){this.initHover(),this.isExpandable()&&this.initExpand()}},{key:"initHover",value:function(){var e=this;this.group.on("mouseover",(function(){e.em.dispatch("node:mouseover",e.treeNode),e.toggleHighlight(!0)})),this.group.on("mouseout",(function(){e.em.dispatch("node:mouseout",e.treeNode),e.toggleHighlight(!1)}))}},{key:"initExpand",value:function(){var e=this;this.group.on("mousedown",(function(t){var n;e.stats&&(null===(n=t.subTargets)||void 0===n?void 0:n.includes(e.stats))||(e.updateDimensions(),e.expanded=!e.expanded,e.em.dispatch("node:resize",e.treeNode))}))}},{key:"updateDimensions",value:function(){var e=this.opts.colors;if(this.expanded){var t=T_.width,n=this.nodeHeight;this.body.set({width:t,height:n,fill:this.getFillColor(),shadow:this.getShadow()}).setCoords(),this.objects[0].set({width:t-4}).setCoords(),this.group.removeWithUpdate(this.stats),this.stats=void 0}else{this.stats=m_(this.canvas,this.data.stats,(this.group.top||0)+this.body.getScaledHeight()+T_.padding,(this.group.left||0)+T_.padding,e),this.expandedNodeHeight=this.nodeHeight+this.stats.getScaledHeight()+2*T_.padding;var i=T_.expandedWidth,r=this.expandedNodeHeight;this.body.set({width:i,height:r,fill:this.getFillColor(),shadow:this.getShadow()}).setCoords(),this.objects[0].set({width:i-4}).setCoords(),this.group.addWithUpdate(this.stats)}}},{key:"isExpandable",value:function(){return Boolean(this.data.stats&&this.data.stats.length>0)}}]),e}();function I_(e,t,n,i,r){return function(e){var t=Zt().get(e,["data","data"]);return"connection"===(null===t||void 0===t?void 0:t.type)}(n)?new C_(e,t,n,i,r):function(e){var t=Zt().get(e,["data","data"]);return"result"===(null===t||void 0===t?void 0:t.type)}(n)?new M_(e,t,n,i,r):function(e){var t=Zt().get(e,["data","data"]);return"query"===(null===t||void 0===t?void 0:t.type)}(n)?new N_(e,t,n,i,r):function(e){var t=Zt().get(e,["data","data"]);return"materialize"===(null===t||void 0===t?void 0:t.type)}(n)?new S_(e,t,n,i,r):new O_(e,t,n,i,r)}var A_,R_,P_,Z_,F_,j_=n(14717),H_=n(81864);!function(e){e[e.None=0]="None",e[e.CommonJS=1]="CommonJS",e[e.AMD=2]="AMD",e[e.UMD=3]="UMD",e[e.System=4]="System",e[e.ES2015=5]="ES2015",e[e.ESNext=99]="ESNext"}(A_||(A_={})),function(e){e[e.None=0]="None",e[e.Preserve=1]="Preserve",e[e.React=2]="React",e[e.ReactNative=3]="ReactNative",e[e.ReactJSX=4]="ReactJSX",e[e.ReactJSXDev=5]="ReactJSXDev"}(R_||(R_={})),function(e){e[e.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",e[e.LineFeed=1]="LineFeed"}(P_||(P_={})),function(e){e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest"}(Z_||(Z_={})),function(e){e[e.Classic=1]="Classic",e[e.NodeJs=2]="NodeJs"}(F_||(F_={}));var B_=function(){function e(e,t,n){this._onDidChange=new H_.Q5,this._onDidExtraLibsChange=new H_.Q5,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(n),this._onDidExtraLibsChangeTimeout=-1}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDidExtraLibsChange",{get:function(){return this._onDidExtraLibsChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"workerOptions",{get:function(){return this._workerOptions},enumerable:!1,configurable:!0}),e.prototype.getExtraLibs=function(){return this._extraLibs},e.prototype.addExtraLib=function(e,t){var n,i=this;if(n="undefined"===typeof t?"ts:extralib-"+Math.random().toString(36).substring(2,15):t,this._extraLibs[n]&&this._extraLibs[n].content===e)return{dispose:function(){}};var r=1;return this._removedExtraLibs[n]&&(r=this._removedExtraLibs[n]+1),this._extraLibs[n]&&(r=this._extraLibs[n].version+1),this._extraLibs[n]={content:e,version:r},this._fireOnDidExtraLibsChangeSoon(),{dispose:function(){var e=i._extraLibs[n];e&&e.version===r&&(delete i._extraLibs[n],i._removedExtraLibs[n]=r,i._fireOnDidExtraLibsChangeSoon())}}},e.prototype.setExtraLibs=function(e){for(var t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(var n=0,i=e;n<i.length;n++){var r=i[n],o=(t=r.filePath||"ts:extralib-"+Math.random().toString(36).substring(2,15),r.content),a=1;this._removedExtraLibs[t]&&(a=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:o,version:a}}this._fireOnDidExtraLibsChangeSoon()},e.prototype._fireOnDidExtraLibsChangeSoon=function(){var e=this;-1===this._onDidExtraLibsChangeTimeout&&(this._onDidExtraLibsChangeTimeout=setTimeout((function(){e._onDidExtraLibsChangeTimeout=-1,e._onDidExtraLibsChange.fire(void 0)}),0))},e.prototype.getCompilerOptions=function(){return this._compilerOptions},e.prototype.setCompilerOptions=function(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)},e.prototype.getDiagnosticsOptions=function(){return this._diagnosticsOptions},e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)},e.prototype.setWorkerOptions=function(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)},e.prototype.setMaximumWorkerIdleTime=function(e){},e.prototype.setEagerModelSync=function(e){this._eagerModelSync=e},e.prototype.getEagerModelSync=function(){return this._eagerModelSync},e}(),z_=new B_({allowNonTsExtensions:!0,target:Z_.Latest},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{}),W_=new B_({allowNonTsExtensions:!0,allowJs:!0,target:Z_.Latest},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{});function V_(){return n.e(7548).then(n.bind(n,17548))}H_.Mj.typescript={ModuleKind:A_,JsxEmit:R_,NewLineKind:P_,ScriptTarget:Z_,ModuleResolutionKind:F_,typescriptVersion:"4.2.4",typescriptDefaults:z_,javascriptDefaults:W_,getTypeScriptWorker:function(){return V_().then((function(e){return e.getTypeScriptWorker()}))},getJavaScriptWorker:function(){return V_().then((function(e){return e.getJavaScriptWorker()}))}},H_.Mj.onLanguage("typescript",(function(){return V_().then((function(e){return e.setupTypeScript(z_)}))})),H_.Mj.onLanguage("javascript",(function(){return V_().then((function(e){return e.setupJavaScript(W_)}))}));var Y_=n(24116),U_=function(){function e(e,t,n){this._onDidChange=new Y_.Q5,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(n)}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"modeConfiguration",{get:function(){return this._modeConfiguration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"diagnosticsOptions",{get:function(){return this._diagnosticsOptions},enumerable:!1,configurable:!0}),e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}(),K_={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"}},q_={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},G_=new U_("css",K_,q_),$_=new U_("scss",K_,q_),Q_=new U_("less",K_,q_);function X_(){return n.e(6060).then(n.bind(n,16060))}Y_.Mj.css={cssDefaults:G_,lessDefaults:Q_,scssDefaults:$_},Y_.Mj.onLanguage("less",(function(){X_().then((function(e){return e.setupMode(Q_)}))})),Y_.Mj.onLanguage("scss",(function(){X_().then((function(e){return e.setupMode($_)}))})),Y_.Mj.onLanguage("css",(function(){X_().then((function(e){return e.setupMode(G_)}))}));var J_=n(3570),ey=function(){function e(e,t,n){this._onDidChange=new J_.Q5,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(n)}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"modeConfiguration",{get:function(){return this._modeConfiguration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"diagnosticsOptions",{get:function(){return this._diagnosticsOptions},enumerable:!1,configurable:!0}),e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}(),ty=new ey("json",{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0});J_.Mj.json={jsonDefaults:ty},J_.Mj.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),J_.Mj.onLanguage("json",(function(){n.e(4952).then(n.bind(n,64952)).then((function(e){return e.setupMode(ty)}))}));var ny=n(38429),iy=function(){function e(e,t,n){this._onDidChange=new ny.Q5,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"options",{get:function(){return this._options},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"modeConfiguration",{get:function(){return this._modeConfiguration},enumerable:!1,configurable:!0}),e.prototype.setOptions=function(e){this._options=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}(),ry={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:null,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},oy={format:ry,suggest:{html5:!0}},ay={format:ry,suggest:{html5:!0,razor:!0}};function sy(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===uy,documentFormattingEdits:e===uy,documentRangeFormattingEdits:e===uy}}var uy="html",ly="handlebars",cy="razor",dy=new iy(uy,{format:ry,suggest:{html5:!0,angular1:!0,ionic:!0}},sy(uy)),hy=new iy(ly,oy,sy(ly)),fy=new iy(cy,ay,sy(cy));function py(){return n.e(254).then(n.bind(n,80254))}ny.Mj.html={htmlDefaults:dy,razorDefaults:fy,handlebarDefaults:hy},ny.Mj.onLanguage(uy,(function(){py().then((function(e){return e.setupMode(dy)}))})),ny.Mj.onLanguage(ly,(function(){py().then((function(e){return e.setupMode(hy)}))})),ny.Mj.onLanguage(cy,(function(){py().then((function(e){return e.setupMode(fy)}))}));var gy=n(37456),vy={},my={},_y=function(){function e(e){var t=this;this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((function(e,n){t._lazyLoadPromiseResolve=e,t._lazyLoadPromiseReject=n}))}return e.getOrCreate=function(t){return my[t]||(my[t]=new e(t)),my[t]},e.prototype.whenLoaded=function(){return this._lazyLoadPromise},e.prototype.load=function(){var e=this;return this._loadingTriggered||(this._loadingTriggered=!0,vy[this._languageId].loader().then((function(t){return e._lazyLoadPromiseResolve(t)}),(function(t){return e._lazyLoadPromiseReject(t)}))),this._lazyLoadPromise},e}();function yy(e){var t=e.id;vy[t]=e,gy.Mj.register(e);var n=_y.getOrCreate(t);gy.Mj.setMonarchTokensProvider(t,n.whenLoaded().then((function(e){return e.language}))),gy.Mj.onLanguage(t,(function(){n.load().then((function(e){gy.Mj.setLanguageConfiguration(t,e.conf)}))}))}yy({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:function(){return n.e(7953).then(n.bind(n,27953))}}),yy({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:function(){return n.e(1898).then(n.bind(n,21898))}}),yy({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:function(){return n.e(805).then(n.bind(n,50805))}}),yy({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:function(){return n.e(371).then(n.bind(n,20371))}}),yy({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:function(){return n.e(9163).then(n.bind(n,89163))}}),yy({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:function(){return n.e(5784).then(n.bind(n,45784))}}),yy({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:function(){return n.e(3001).then(n.bind(n,23001))}}),yy({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:function(){return n.e(1602).then(n.bind(n,61602))}}),yy({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:function(){return n.e(6559).then(n.bind(n,26559))}}),yy({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:function(){return n.e(6559).then(n.bind(n,26559))}}),yy({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:function(){return n.e(6266).then(n.bind(n,66266))}}),yy({id:"csp",extensions:[],aliases:["CSP","csp"],loader:function(){return n.e(7664).then(n.bind(n,27664))}}),yy({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:function(){return n.e(245).then(n.bind(n,90245))}}),yy({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:function(){return n.e(5517).then(n.bind(n,85517))}}),yy({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:function(){return n.e(3258).then(n.bind(n,43258))}}),yy({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:function(){return n.e(5444).then(n.bind(n,95444))}}),yy({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:function(){return n.e(7168).then(n.bind(n,77168))}}),yy({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:function(){return n.e(7661).then(n.bind(n,77661))}}),yy({id:"go",extensions:[".go"],aliases:["Go"],loader:function(){return n.e(2799).then(n.bind(n,12799))}}),yy({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:function(){return n.e(5748).then(n.bind(n,95748))}}),yy({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:function(){return n.e(8794).then(n.bind(n,58794))}}),yy({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:function(){return n.e(6892).then(n.bind(n,66892))}}),yy({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:function(){return n.e(2406).then(n.bind(n,32406))}}),yy({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:function(){return n.e(3883).then(n.bind(n,33883))}}),yy({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:function(){return n.e(8206).then(n.bind(n,98206))}}),yy({id:"javascript",extensions:[".js",".es6",".jsx",".mjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:function(){return n.e(6135).then(n.bind(n,6135))}}),yy({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:function(){return n.e(3254).then(n.bind(n,93254))}}),yy({id:"kotlin",extensions:[".kt"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:function(){return n.e(2205).then(n.bind(n,62205))}}),yy({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:function(){return n.e(2291).then(n.bind(n,22291))}}),yy({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:function(){return n.e(7478).then(n.bind(n,37478))}}),yy({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:function(){return n.e(4731).then(n.bind(n,84731))}}),yy({id:"liquid",extensions:[".liquid",".liquid.html",".liquid.css"],loader:function(){return n.e(983).then(n.bind(n,80983))}}),yy({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:function(){return n.e(8335).then(n.bind(n,28335))}}),yy({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:function(){return n.e(8322).then(n.bind(n,78322))}}),yy({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:function(){return n.e(4546).then(n.bind(n,34546))}}),yy({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:function(){return n.e(1234).then(n.bind(n,31234))}}),yy({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:function(){return n.e(8590).then(n.bind(n,18590))}}),yy({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:function(){return n.e(5695).then(n.bind(n,25695))}}),yy({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:function(){return n.e(8558).then(n.bind(n,78558))}}),yy({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:function(){return n.e(8005).then(n.bind(n,58005))}}),yy({id:"perl",extensions:[".pl"],aliases:["Perl","pl"],loader:function(){return n.e(2119).then(n.bind(n,72119))}}),yy({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:function(){return n.e(8520).then(n.bind(n,18520))}}),yy({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:function(){return n.e(5215).then(n.bind(n,15215))}}),yy({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:function(){return n.e(5885).then(n.bind(n,65885))}}),yy({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:function(){return n.e(9011).then(n.bind(n,69011))}}),yy({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:function(){return n.e(7768).then(n.bind(n,37768))}}),yy({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:function(){return n.e(1115).then(n.bind(n,1115))}}),yy({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:function(){return n.e(4663).then(n.bind(n,14663))}}),yy({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:function(){return n.e(2081).then(n.bind(n,62081))}}),yy({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:function(){return n.e(3191).then(n.bind(n,13191))}}),yy({id:"redis",extensions:[".redis"],aliases:["redis"],loader:function(){return n.e(2507).then(n.bind(n,2507))}}),yy({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:function(){return n.e(5646).then(n.bind(n,95646))}}),yy({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:function(){return n.e(842).then(n.bind(n,60842))}}),yy({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:function(){return n.e(569).then(n.bind(n,40569))}}),yy({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:function(){return n.e(9292).then(n.bind(n,89292))}}),yy({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:function(){return n.e(939).then(n.bind(n,50325))}}),yy({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:function(){return n.e(9803).then(n.bind(n,79803))}}),yy({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:function(){return n.e(9005).then(n.bind(n,29005))}}),yy({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:function(){return n.e(6708).then(n.bind(n,76708))}}),yy({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:function(){return n.e(1474).then(n.bind(n,51474))}}),yy({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:function(){return n.e(2174).then(n.bind(n,82174))}}),yy({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:function(){return n.e(248).then(n.bind(n,248))}}),yy({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:function(){return n.e(5012).then(n.bind(n,5012))}}),yy({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib"],aliases:["StructuredText","scl","stl"],loader:function(){return n.e(5210).then(n.bind(n,75210))}}),yy({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:function(){return n.e(4712).then(n.bind(n,94712))}}),yy({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:function(){return n.e(1522).then(n.bind(n,81522))}}),yy({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:function(){return n.e(1522).then(n.bind(n,81522))}}),yy({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:function(){return n.e(3451).then(n.bind(n,73451))}}),yy({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:function(){return n.e(2862).then(n.bind(n,12862))}}),yy({id:"typescript",extensions:[".ts",".tsx"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:function(){return n.e(698).then(n.bind(n,90698))}}),yy({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:function(){return n.e(758).then(n.bind(n,30758))}}),yy({id:"xml",extensions:[".xml",".dtd",".ascx",".csproj",".config",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:function(){return n.e(2056).then(n.bind(n,32056))}}),yy({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:function(){return n.e(3771).then(n.bind(n,53771))}});var by=n(8518),wy=n(95079),Cy=(n(20224),n(59180),n(33399)),ky=n(56345),Sy=n(21204),xy=n(74964),Ly=n(38792),Ey=n(18948),Ny=n(49396),Dy=n(10939),My=n(8729),Ty=function(){function e(){var t,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if((0,i.Z)(this,e),this.value=r,"string"!==typeof this.value)throw(0,My.b1)("value");"boolean"===typeof o?(this.isTrusted=o,this.supportThemeIcons=!1):(this.isTrusted=null!==(t=o.isTrusted)&&void 0!==t?t:void 0,this.supportThemeIcons=null!==(n=o.supportThemeIcons)&&void 0!==n&&n)}return(0,r.Z)(e,[{key:"appendText",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.value+=(t=this.supportThemeIcons?(0,Dy.Qo)(e):e,t.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")).replace(/([ \t]+)/g,(function(e,t){return"&nbsp;".repeat(t.length)})).replace(/^>/gm,"\\>").replace(/\n/g,1===n?"\\\n":"\n\n"),this}},{key:"appendMarkdown",value:function(e){return this.value+=e,this}},{key:"appendCodeblock",value:function(e,t){return this.value+="\n```",this.value+=e,this.value+="\n",this.value+=t,this.value+="\n```\n",this}}]),e}();function Oy(e){return Iy(e)?!e.value:!Array.isArray(e)||e.every(Oy)}function Iy(e){return e instanceof Ty||!(!e||"object"!==typeof e)&&("string"===typeof e.value&&("boolean"===typeof e.isTrusted||void 0===e.isTrusted)&&("boolean"===typeof e.supportThemeIcons||void 0===e.supportThemeIcons))}function Ay(e,t){return e===t||!(!e||!t)&&(e.value===t.value&&e.isTrusted===t.isTrusted&&e.supportThemeIcons===t.supportThemeIcons)}function Ry(e){return e?e.replace(/\\([\\`*_{}[\]()#+\-.!])/g,"$1"):e}var Py=n(52180),Zy=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Fy=function(e,t){return function(n,i){t(n,i,e)}},jy=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Hy=new Ey.uy("selectionAnchorSet",!1),By=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this.editor=t,this.selectionAnchorSetContextKey=Hy.bindTo(n),this.modelChangeListener=t.onDidChangeModel((function(){return r.selectionAnchorSetContextKey.reset()}))}return(0,r.Z)(e,[{key:"setSelectionAnchor",value:function(){if(this.editor.hasModel()){var e=this.editor.getPosition(),t=this.decorationId?[this.decorationId]:[],n=this.editor.deltaDecorations(t,[{range:xy.Y.fromPositions(e,e),options:{stickiness:1,hoverMessage:(new Ty).appendText((0,ky.N)("selectionAnchor","Selection Anchor")),className:"selection-anchor"}}]);this.decorationId=n[0],this.selectionAnchorSetContextKey.set(!!this.decorationId),(0,Py.Z9)((0,ky.N)("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}},{key:"goToSelectionAnchor",value:function(){if(this.editor.hasModel()&&this.decorationId){var e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}},{key:"selectFromAnchorToCursor",value:function(){if(this.editor.hasModel()&&this.decorationId){var e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){var t=this.editor.getPosition();this.editor.setSelection(xy.Y.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}},{key:"cancelSelectionAnchor",value:function(){this.decorationId&&(this.editor.deltaDecorations([this.decorationId],[]),this.decorationId=void 0,this.selectionAnchorSetContextKey.set(!1))}},{key:"dispose",value:function(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();By.ID="editor.contrib.selectionAnchorController",By=Zy([Fy(1,Ey.i6)],By);var zy=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.setSelectionAnchor",label:(0,ky.N)("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2080),weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return jy(this,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:By.get(t).setSelectionAnchor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(Cy.R6),Wy=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.goToSelectionAnchor",label:(0,ky.N)("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:Hy})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return jy(this,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:By.get(t).goToSelectionAnchor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(Cy.R6),Vy=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.selectFromAnchorToCursor",label:(0,ky.N)("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:Hy,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2089),weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return jy(this,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:By.get(t).selectFromAnchorToCursor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(Cy.R6),Yy=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.cancelSelectionAnchor",label:(0,ky.N)("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:Hy,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:9,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return jy(this,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:By.get(t).cancelSelectionAnchor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(Cy.R6);(0,Cy._K)(By.ID,By),(0,Cy.Qr)(zy),(0,Cy.Qr)(Wy),(0,Cy.Qr)(Vy),(0,Cy.Qr)(Yy);var Uy=n(27997),Ky=n(81626),qy=n(67297),Gy=n(67033),$y=n(46502),Qy=n(28893),Xy=n(80449),Jy=n(92992),eb=n(70182),tb=n(31585),nb=(0,Jy.P6)("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hc:"#A0A0A0"},ky.N("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets.")),ib=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.jumpToBracket",label:ky.N("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3160,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=ab.get(t);n&&n.jumpToBracket()}}]),n}(Cy.R6),rb=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.selectToBracket",label:ky.N("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,description:{description:"Select to Bracket",args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=ab.get(t);if(i){var r=!0;n&&!1===n.selectBrackets&&(r=!1),i.selectToBracket(r)}}}]),n}(Cy.R6),ob=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.position=t,this.brackets=n,this.options=r})),ab=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._editor=e,r._lastBracketsData=[],r._lastVersionId=0,r._decorations=[],r._updateBracketsSoon=r._register(new Uy.pY((function(){return r._updateBrackets()}),50)),r._matchBrackets=r._editor.getOption(60),r._updateBracketsSoon.schedule(),r._register(e.onDidChangeCursorPosition((function(e){"never"!==r._matchBrackets&&r._updateBracketsSoon.schedule()}))),r._register(e.onDidChangeModelContent((function(e){r._updateBracketsSoon.schedule()}))),r._register(e.onDidChangeModel((function(e){r._lastBracketsData=[],r._decorations=[],r._updateBracketsSoon.schedule()}))),r._register(e.onDidChangeModelLanguageConfiguration((function(e){r._lastBracketsData=[],r._updateBracketsSoon.schedule()}))),r._register(e.onDidChangeConfiguration((function(e){e.hasChanged(60)&&(r._matchBrackets=r._editor.getOption(60),r._decorations=r._editor.deltaDecorations(r._decorations,[]),r._lastBracketsData=[],r._lastVersionId=0,r._updateBracketsSoon.schedule())}))),r}return(0,r.Z)(n,[{key:"jumpToBracket",value:function(){if(this._editor.hasModel()){var e=this._editor.getModel(),t=this._editor.getSelections().map((function(t){var n=t.getStartPosition(),i=e.matchBracket(n),r=null;if(i)i[0].containsPosition(n)?r=i[1].getStartPosition():i[1].containsPosition(n)&&(r=i[0].getStartPosition());else{var o=e.findEnclosingBrackets(n);if(o)r=o[0].getStartPosition();else{var a=e.findNextBracket(n);a&&a.range&&(r=a.range.getStartPosition())}}return r?new xy.Y(r.lineNumber,r.column,r.lineNumber,r.column):new xy.Y(n.lineNumber,n.column,n.lineNumber,n.column)}));this._editor.setSelections(t),this._editor.revealRange(t[0])}}},{key:"selectToBracket",value:function(e){if(this._editor.hasModel()){var t=this._editor.getModel(),n=[];this._editor.getSelections().forEach((function(i){var r=i.getStartPosition(),o=t.matchBracket(r);if(!o&&!(o=t.findEnclosingBrackets(r))){var a=t.findNextBracket(r);a&&a.range&&(o=t.matchBracket(a.range.getStartPosition()))}var s=null,u=null;if(o){o.sort(Gy.e.compareRangesUsingStarts);var l=o,c=(0,Ti.Z)(l,2),d=c[0],h=c[1];s=e?d.getStartPosition():d.getEndPosition(),u=e?h.getEndPosition():h.getStartPosition()}s&&u&&n.push(new xy.Y(s.lineNumber,s.column,u.lineNumber,u.column))})),n.length>0&&(this._editor.setSelections(n),this._editor.revealRange(n[0]))}}},{key:"_updateBrackets",value:function(){if("never"!==this._matchBrackets){this._recomputeBrackets();var e,t=[],n=0,i=(0,tr.Z)(this._lastBracketsData);try{for(i.s();!(e=i.n()).done;){var r=e.value,o=r.brackets;o&&(t[n++]={range:o[0],options:r.options},t[n++]={range:o[1],options:r.options})}}catch(a){i.e(a)}finally{i.f()}this._decorations=this._editor.deltaDecorations(this._decorations,t)}}},{key:"_recomputeBrackets",value:function(){if(!this._editor.hasModel())return this._lastBracketsData=[],void(this._lastVersionId=0);var e=this._editor.getSelections();if(e.length>100)return this._lastBracketsData=[],void(this._lastVersionId=0);var t=this._editor.getModel(),i=t.getVersionId(),r=[];this._lastVersionId===i&&(r=this._lastBracketsData);for(var o=[],a=0,s=0,u=e.length;s<u;s++){var l=e[s];l.isEmpty()&&(o[a++]=l.getStartPosition())}o.length>1&&o.sort(qy.L.compare);for(var c=[],d=0,h=0,f=r.length,p=0,g=o.length;p<g;p++){for(var v=o[p];h<f&&r[h].position.isBefore(v);)h++;if(h<f&&r[h].position.equals(v))c[d++]=r[h];else{var m=t.matchBracket(v),_=n._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;m||"always"!==this._matchBrackets||(m=t.findEnclosingBrackets(v,20),_=n._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),c[d++]=new ob(v,m,_)}}this._lastBracketsData=c,this._lastVersionId=i}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);ab.ID="editor.contrib.bracketMatchingController",ab._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Qy.qx.register({stickiness:1,className:"bracket-match",overviewRuler:{color:(0,eb.EN)(nb),position:$y.sh.Center}}),ab._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Qy.qx.register({stickiness:1,className:"bracket-match"}),(0,Cy._K)(ab.ID,ab),(0,Cy.Qr)(rb),(0,Cy.Qr)(ib),(0,eb.Ic)((function(e,t){var n=e.getColor(Xy.TC);n&&t.addRule(".monaco-editor .bracket-match { background-color: ".concat(n,"; }"));var i=e.getColor(Xy.Dl);i&&t.addRule(".monaco-editor .bracket-match { border: 1px solid ".concat(i,"; }"))})),tb.BH.appendMenuItem(tb.eH.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:ky.N({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});var sb=function(){function e(t,n){(0,i.Z)(this,e),this._selection=t,this._isMovingLeft=n}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){if(this._selection.startLineNumber===this._selection.endLineNumber&&!this._selection.isEmpty()){var n=this._selection.startLineNumber,i=this._selection.startColumn,r=this._selection.endColumn;if((!this._isMovingLeft||1!==i)&&(this._isMovingLeft||r!==e.getLineMaxColumn(n)))if(this._isMovingLeft){var o=new Gy.e(n,i-1,n,i),a=e.getValueInRange(o);t.addEditOperation(o,null),t.addEditOperation(new Gy.e(n,r,n,r),a)}else{var s=new Gy.e(n,r,n,r+1),u=e.getValueInRange(s);t.addEditOperation(s,null),t.addEditOperation(new Gy.e(n,i,n,i),u)}}}},{key:"computeCursorState",value:function(e,t){return this._isMovingLeft?new xy.Y(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new xy.Y(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}]),e}(),ub=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).left=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n,i=[],r=t.getSelections(),o=(0,tr.Z)(r);try{for(o.s();!(n=o.n()).done;){var a=n.value;i.push(new sb(a,this.left))}}catch(s){o.e(s)}finally{o.f()}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}}]),n}(Cy.R6),lb=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.moveCarretLeftAction",label:ky.N("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:Sy.u.writable})}return(0,r.Z)(n)}(ub),cb=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.moveCarretRightAction",label:ky.N("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:Sy.u.writable})}return(0,r.Z)(n)}(ub);(0,Cy.Qr)(lb),(0,Cy.Qr)(cb);var db=n(97033),hb=n(15432),fb=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transposeLetters",label:ky.N("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,mac:{primary:306},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n,i=t.getModel(),r=[],o=t.getSelections(),a=(0,tr.Z)(o);try{for(a.s();!(n=a.n()).done;){var s=n.value;if(s.isEmpty()){var u=s.startLineNumber,l=s.startColumn,c=i.getLineMaxColumn(u);if(1!==u||1!==l&&(2!==l||2!==c)){var d=l===c?s.getPosition():hb.o.rightPosition(i,s.getPosition().lineNumber,s.getPosition().column),h=hb.o.leftPosition(i,d.lineNumber,d.column),f=hb.o.leftPosition(i,h.lineNumber,h.column),p=i.getValueInRange(Gy.e.fromPositions(f,h)),g=i.getValueInRange(Gy.e.fromPositions(h,d)),v=Gy.e.fromPositions(f,d);r.push(new db.T4(v,g+p))}}}}catch(m){a.e(m)}finally{a.f()}r.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop())}}}]),n}(Cy.R6);(0,Cy.Qr)(fb);var pb=n(84539),gb=n(30487),vb=n(83106),mb=n(8295),_b=n(38794),yb=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},bb="9_cutcopypaste",wb=gb.tY||document.queryCommandSupported("cut"),Cb=gb.tY||document.queryCommandSupported("copy"),kb="undefined"!==typeof navigator.clipboard&&!pb.vU||document.queryCommandSupported("paste");function Sb(e){return e.register(),e}var xb=wb?Sb(new Cy.AJ({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:gb.tY?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:tb.eH.MenubarEditMenu,group:"2_ccp",title:ky.N({key:"miCut",comment:["&& denotes a mnemonic"]},"Cu&&t"),order:1},{menuId:tb.eH.EditorContext,group:bb,title:ky.N("actions.clipboard.cutLabel","Cut"),when:Sy.u.writable,order:1},{menuId:tb.eH.CommandPalette,group:"",title:ky.N("actions.clipboard.cutLabel","Cut"),order:1}]})):void 0,Lb=Cb?Sb(new Cy.AJ({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:gb.tY?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:tb.eH.MenubarEditMenu,group:"2_ccp",title:ky.N({key:"miCopy",comment:["&& denotes a mnemonic"]},"&&Copy"),order:2},{menuId:tb.eH.EditorContext,group:bb,title:ky.N("actions.clipboard.copyLabel","Copy"),order:2},{menuId:tb.eH.CommandPalette,group:"",title:ky.N("actions.clipboard.copyLabel","Copy"),order:1}]})):void 0;tb.BH.appendMenuItem(tb.eH.MenubarEditMenu,{submenu:tb.eH.MenubarCopy,title:{value:ky.N("copy as","Copy As"),original:"Copy As"},group:"2_ccp",order:3}),tb.BH.appendMenuItem(tb.eH.EditorContext,{submenu:tb.eH.EditorContextCopy,title:{value:ky.N("copy as","Copy As"),original:"Copy As"},group:bb,order:3});var Eb=kb?Sb(new Cy.AJ({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:gb.tY?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:tb.eH.MenubarEditMenu,group:"2_ccp",title:ky.N({key:"miPaste",comment:["&& denotes a mnemonic"]},"&&Paste"),order:4},{menuId:tb.eH.EditorContext,group:bb,title:ky.N("actions.clipboard.pasteLabel","Paste"),when:Sy.u.writable,order:4},{menuId:tb.eH.CommandPalette,group:"",title:ky.N("actions.clipboard.pasteLabel","Paste"),order:1}]})):void 0,Nb=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:ky.N("actions.clipboard.copyWithSyntaxHighlightingLabel","Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){t.hasModel()&&(!t.getOption(30)&&t.getSelection().isEmpty()||(vb.RA.forceCopyWithSyntaxHighlighting=!0,t.focus(),document.execCommand("copy"),vb.RA.forceCopyWithSyntaxHighlighting=!1))}}]),n}(Cy.R6);function Db(e,t){e&&(e.addImplementation(1e4,"code-editor",(function(e,n){var i=e.get(mb.$).getFocusedCodeEditor();if(i&&i.hasTextFocus()){var r=i.getOption(30),o=i.getSelection();return o&&o.isEmpty()&&!r||document.execCommand(t),!0}return!1})),e.addImplementation(0,"generic-dom",(function(e,n){return document.execCommand(t),!0})))}Db(xb,"cut"),Db(Lb,"copy"),Eb&&(Eb.addImplementation(1e4,"code-editor",(function(e,t){var n=e.get(mb.$),i=e.get(_b.p),r=n.getFocusedCodeEditor();return!(!r||!r.hasTextFocus())&&(!(!document.execCommand("paste")&&gb.$L)||(yb(void 0,void 0,void 0,ti().mark((function e(){var t,n,o,a,s;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.readText();case 2:""!==(t=e.sent)&&(n=vb.Nl.INSTANCE.get(t),o=!1,a=null,s=null,n&&(o=r.getOption(30)&&!!n.isFromEmptySelection,a="undefined"!==typeof n.multicursorText?n.multicursorText:null,s=n.mode),r.trigger("keyboard","paste",{text:t,pasteOnNewLine:o,multicursorText:a,mode:s}));case 4:case"end":return e.stop()}}),e)}))),!0))})),Eb.addImplementation(0,"generic-dom",(function(e,t){return document.execCommand("paste"),!0}))),Cb&&(0,Cy.Qr)(Nb);var Mb=n(97326),Tb=n(66526),Ob=function(){function e(t){(0,i.Z)(this,e),this.executor=t,this._didRun=!1}return(0,r.Z)(e,[{key:"getValue",value:function(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}},{key:"rawValue",get:function(){return this._value}}]),e}(),Ib=n(51747),Ab=n(49803),Rb=n(67775),Pb=n(47908),Zb=n(99404),Fb=n(49076),jb=function(){function e(t){(0,i.Z)(this,e),this.value=t}return(0,r.Z)(e,[{key:"equals",value:function(e){return this.value===e.value}},{key:"contains",value:function(t){return this.equals(t)||""===this.value||t.value.startsWith(this.value+e.sep)}},{key:"intersects",value:function(e){return this.contains(e)||e.contains(this)}},{key:"append",value:function(t){return new e(this.value+e.sep+t)}}]),e}();function Hb(e,t){var n=t.kind?new jb(t.kind):void 0;return!!(!e.include||n&&e.include.contains(n))&&(!(e.excludes&&n&&e.excludes.some((function(t){return Bb(n,t,e.include)})))&&(!(!e.includeSourceActions&&n&&jb.Source.contains(n))&&!(e.onlyIncludePreferredActions&&!t.isPreferred)))}function Bb(e,t,n){return!!t.contains(e)&&(!n||!t.contains(n))}jb.sep=".",jb.None=new jb("@@none@@"),jb.Empty=new jb(""),jb.QuickFix=new jb("quickfix"),jb.Refactor=new jb("refactor"),jb.Source=new jb("source"),jb.SourceOrganizeImports=jb.Source.append("organizeImports"),jb.SourceFixAll=jb.Source.append("fixAll");var zb=function(){function e(t,n,r){(0,i.Z)(this,e),this.kind=t,this.apply=n,this.preferred=r}return(0,r.Z)(e,null,[{key:"fromUser",value:function(t,n){return t&&"object"===typeof t?new e(e.getKindFromUser(t,n.kind),e.getApplyFromUser(t,n.apply),e.getPreferredUser(t)):new e(n.kind,n.apply,!1)}},{key:"getApplyFromUser",value:function(e,t){switch("string"===typeof e.apply?e.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return t}}},{key:"getKindFromUser",value:function(e,t){return"string"===typeof e.kind?new jb(e.kind):t}},{key:"getPreferredUser",value:function(e){return"boolean"===typeof e.preferred&&e.preferred}}]),e}(),Wb=n(18085),Vb=n(72611),Yb=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Ub="editor.action.codeAction",Kb="editor.action.refactor",qb="editor.action.sourceAction",Gb="editor.action.organizeImports",$b="editor.action.fixAll",Qb=function(){function e(t,n){(0,i.Z)(this,e),this.action=t,this.provider=n}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t;return Yb(this,void 0,void 0,ti().mark((function n(){var i;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!(null===(t=this.provider)||void 0===t?void 0:t.resolveCodeAction)||this.action.edit){n.next=11;break}return n.prev=1,n.next=4,this.provider.resolveCodeAction(this.action,e);case 4:i=n.sent,n.next=10;break;case 7:n.prev=7,n.t0=n.catch(1),(0,My.Cp)(n.t0);case 10:i&&(this.action.edit=i.edit);case 11:return n.abrupt("return",this);case 12:case"end":return n.stop()}}),n,this,[[1,7]])})))}}]),e}(),Xb=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).documentation=r,a._register(o),a.allActions=(0,zt.Z)(e).sort(n.codeActionsComparator),a.validActions=a.allActions.filter((function(e){return!e.action.disabled})),a}return(0,r.Z)(n,[{key:"hasAutoFix",get:function(){return this.validActions.some((function(e){var t=e.action;return!!t.kind&&jb.QuickFix.contains(new jb(t.kind))&&!!t.isPreferred}))}}],[{key:"codeActionsComparator",value:function(e,t){var n=e.action,i=t.action;return n.isPreferred&&!i.isPreferred?-1:!n.isPreferred&&i.isPreferred?1:(0,Ny.Of)(n.diagnostics)?(0,Ny.Of)(i.diagnostics)?n.diagnostics[0].message.localeCompare(i.diagnostics[0].message):-1:(0,Ny.Of)(i.diagnostics)?1:0}}]),n}(Ky.JT),Jb={actions:[],documentation:void 0};function ew(e,t,n,i,r){var o,a=this,s=n.filter||{},u={only:null===(o=s.include)||void 0===o?void 0:o.value,trigger:n.type},l=new Pb.YQ(e,r),c=function(e,t){return Zb.H9.all(e).filter((function(e){return!e.providedCodeActionKinds||e.providedCodeActionKinds.some((function(e){return function(e,t){return!(e.include&&!e.include.intersects(t))&&(!e.excludes||!e.excludes.some((function(n){return Bb(t,n,e.include)})))&&!(!e.includeSourceActions&&jb.Source.contains(t))}(t,new jb(e))}))}))}(e,s),d=new Ky.SL,h=c.map((function(n){return Yb(a,void 0,void 0,ti().mark((function r(){var o,a,c;return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,i.report(n),r.next=4,n.provideCodeActions(e,t,u,l.token);case 4:if((o=r.sent)&&d.add(o),!l.token.isCancellationRequested){r.next=8;break}return r.abrupt("return",Jb);case 8:return a=((null===o||void 0===o?void 0:o.actions)||[]).filter((function(e){return e&&Hb(s,e)})),c=tw(n,a,s.include),r.abrupt("return",{actions:a.map((function(e){return new Qb(e,n)})),documentation:c});case 13:if(r.prev=13,r.t0=r.catch(0),!(0,My.VV)(r.t0)){r.next=17;break}throw r.t0;case 17:return(0,My.Cp)(r.t0),r.abrupt("return",Jb);case 19:case"end":return r.stop()}}),r,null,[[0,13]])})))})),f=Zb.H9.onDidChange((function(){var t=Zb.H9.all(e);(0,Ny.fS)(t,c)||l.cancel()}));return Promise.all(h).then((function(e){var t=(0,Ny.xH)(e.map((function(e){return e.actions}))),n=(0,Ny.kX)(e.map((function(e){return e.documentation})));return new Xb(t,n,d)})).finally((function(){f.dispose(),l.dispose()}))}function tw(e,t,n){if(e.documentation){var i=e.documentation.map((function(e){return{kind:new jb(e.kind),command:e.command}}));if(n){var r,o,a=(0,tr.Z)(i);try{for(a.s();!(o=a.n()).done;){var s=o.value;s.kind.contains(n)&&(r?r.kind.contains(s.kind)&&(r=s):r=s)}}catch(p){a.e(p)}finally{a.f()}if(r)return null===r||void 0===r?void 0:r.command}var u,l=(0,tr.Z)(t);try{for(l.s();!(u=l.n()).done;){var c=u.value;if(c.kind){var d,h=(0,tr.Z)(i);try{for(h.s();!(d=h.n()).done;){var f=d.value;if(f.kind.contains(new jb(c.kind)))return f.command}}catch(p){h.e(p)}finally{h.f()}}}}catch(p){l.e(p)}finally{l.f()}}}Vb.P.registerCommand("_executeCodeActionProvider",(function(e,t,n,i,r){return Yb(this,void 0,void 0,ti().mark((function o(){var a,s,u,l,c,d,h;return ti().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(t instanceof Rb.o){o.next=2;break}throw(0,My.b1)();case 2:if(a=e.get(Fb.q).getModel(t)){o.next=5;break}throw(0,My.b1)();case 5:if(s=xy.Y.isISelection(n)?xy.Y.liftSelection(n):Gy.e.isIRange(n)?a.validateRange(n):void 0){o.next=8;break}throw(0,My.b1)();case 8:return u="string"===typeof i?new jb(i):void 0,o.next=11,ew(a,s,{type:1,filter:{includeSourceActions:!0,include:u}},Wb.E.None,Tb.T.None);case 11:for(l=o.sent,c=[],d=Math.min(l.validActions.length,"number"===typeof r?r:0),h=0;h<d;h++)c.push(l.validActions[h].resolve(Tb.T.None));return o.prev=15,o.next=18,Promise.all(c);case 18:return o.abrupt("return",l.validActions.map((function(e){return e.action})));case 19:return o.prev=19,setTimeout((function(){return l.dispose()}),100),o.finish(19);case 22:case"end":return o.stop()}}),o,null,[[15,,19,22]])})))}));var nw=n(11752),iw=n(61120),rw=n(7644),ow=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},aw=function(e,t){return function(n,i){t(n,i,e)}},sw=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._messageWidget=new Ky.XK,this._messageListeners=new Ky.SL,this._editor=t,this._visible=e.MESSAGE_VISIBLE.bindTo(n),this._editorListener=this._editor.onDidAttemptReadOnlyEdit((function(){return r._onDidAttemptReadOnlyEdit()}))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._editorListener.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}},{key:"showMessage",value:function(e,t){var n,i=this;(0,Py.Z9)(e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._messageWidget.value=new lw(this._editor,t,e),this._messageListeners.add(this._editor.onDidBlurEditorText((function(){return i.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeCursorPosition((function(){return i.closeMessage()}))),this._messageListeners.add(this._editor.onDidDispose((function(){return i.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeModel((function(){return i.closeMessage()}))),this._messageListeners.add(new Uy._F((function(){return i.closeMessage()}),3e3)),this._messageListeners.add(this._editor.onMouseMove((function(e){e.target.position&&(n?n.containsPosition(e.target.position)||i.closeMessage():n=new Gy.e(t.lineNumber-3,1,e.target.position.lineNumber+3,1))})))}},{key:"closeMessage",value:function(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(lw.fadeOut(this._messageWidget.value))}},{key:"_onDidAttemptReadOnlyEdit",value:function(){this._editor.hasModel()&&this.showMessage(ky.N("editor.readonly","Cannot edit in read-only editor"),this._editor.getPosition())}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();sw.ID="editor.contrib.messageController",sw.MESSAGE_VISIBLE=new Ey.uy("messageVisible",!1,ky.N("messageVisible","Whether the editor is currently showing an inline message")),sw=ow([aw(1,Ey.i6)],sw);var uw=Cy._l.bindToContribution(sw.get);(0,Cy.fK)(new uw({id:"leaveEditorMessage",precondition:sw.MESSAGE_VISIBLE,handler:function(e){return e.closeMessage()},kbOpts:{weight:130,primary:9}}));var lw=function(){function e(t,n,r){var o=n.lineNumber,a=n.column;(0,i.Z)(this,e),this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=t,this._editor.revealLinesInCenterIfOutsideViewport(o,o,0),this._position={lineNumber:o,column:a-1},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage");var s=document.createElement("div");s.classList.add("anchor","top"),this._domNode.appendChild(s);var u=document.createElement("div");u.classList.add("message"),u.textContent=r,this._domNode.appendChild(u);var l=document.createElement("div");l.classList.add("anchor","below"),this._domNode.appendChild(l),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}return(0,r.Z)(e,[{key:"dispose",value:function(){this._editor.removeContentWidget(this)}},{key:"getId",value:function(){return"messageoverlay"}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return{position:this._position,preference:[1,2]}}},{key:"afterRender",value:function(e){this._domNode.classList.toggle("below",2===e)}}],[{key:"fadeOut",value:function(e){var t,n=function n(){e.dispose(),clearTimeout(t),e.getDomNode().removeEventListener("animationend",n)};return t=setTimeout(n,110),e.getDomNode().addEventListener("animationend",n),e.getDomNode().classList.add("fadeOut"),{dispose:n}}}]),e}();(0,Cy._K)(sw.ID,sw),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.EP);if(n){var i=e.type===rw.e.HIGH_CONTRAST?2:1;t.addRule(".monaco-editor .monaco-editor-overlaymessage .anchor.below { border-top-color: ".concat(n,"; }")),t.addRule(".monaco-editor .monaco-editor-overlaymessage .anchor.top { border-bottom-color: ".concat(n,"; }")),t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { border: ".concat(i,"px solid ").concat(n,"; }"))}var r=e.getColor(Jy._l);r&&t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { background-color: ".concat(r,"; }"));var o=e.getColor(Jy.YI);o&&t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { color: ".concat(o,"; }"))}));var cw=n(84596),dw=n(84540),hw=n(29077),fw=n(98989),pw=n(97963),gw=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},vw=function(e,t){return function(n,i){t(n,i,e)}},mw=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},_w=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,e.command?e.command.id:e.title,e.title.replace(/\r\n|\r|\n/g," "),void 0,!e.disabled,r)).action=e,o}return(0,r.Z)(n)}(hw.aU);var yw=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._editor=e,s._delegate=r,s._contextMenuService=o,s._visible=!1,s._showingActions=s._register(new Ky.XK),s._keybindingResolver=new bw({getKeybindings:function(){return a.getKeybindings()}}),s}return(0,r.Z)(n,[{key:"isVisible",get:function(){return this._visible}},{key:"show",value:function(e,t,n,i){return mw(this,void 0,void 0,ti().mark((function r(){var o,a,s,u,l,c=this;return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if((o=i.includeDisabledActions?t.allActions:t.validActions).length){r.next=4;break}return this._visible=!1,r.abrupt("return");case 4:if(this._editor.getDomNode()){r.next=7;break}throw this._visible=!1,(0,My.F0)();case 7:this._visible=!0,this._showingActions.value=t,a=this.getMenuActions(e,o,t.documentation),s=qy.L.isIPosition(n)?this._toCoords(n):n||{x:0,y:0},u=this._keybindingResolver.getResolver(),l=this._editor.getOption(111),this._contextMenuService.showContextMenu({domForShadowRoot:l?this._editor.getDomNode():void 0,getAnchor:function(){return s},getActions:function(){return a},onHide:function(){c._visible=!1,c._editor.focus()},autoSelectFirstItem:!0,getKeyBinding:function(e){return e instanceof _w?u(e.action):void 0}});case 14:case"end":return r.stop()}}),r,this)})))}},{key:"getMenuActions",value:function(e,t,n){var i,r,o=this,a=function(e){return new _w(e.action,(function(){return o._delegate.onSelectCodeAction(e)}))},s=t.map(a),u=(0,zt.Z)(n),l=this._editor.getModel();if(l&&s.length){var c,d=(0,tr.Z)(Zb.H9.all(l));try{for(d.s();!(c=d.n()).done;){var h=c.value;h._getAdditionalMenuItems&&u.push.apply(u,(0,zt.Z)(h._getAdditionalMenuItems({trigger:e.type,only:null===(r=null===(i=e.filter)||void 0===i?void 0:i.include)||void 0===r?void 0:r.value},t.map((function(e){return e.action})))))}}catch(f){d.e(f)}finally{d.f()}}return u.length&&s.push.apply(s,[new hw.Z0].concat((0,zt.Z)(u.map((function(e){return a(new Qb({title:e.title,command:e},void 0))}))))),s}},{key:"_toCoords",value:function(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();var t=this._editor.getScrolledVisiblePosition(e),n=(0,dw.getDomNodePagePosition)(this._editor.getDomNode());return{x:n.left+t.left,y:n.top+t.top+t.height}}}]),n}(Ky.JT);yw=gw([vw(2,fw.i),vw(3,pw.d)],yw);var bw=function(){function e(t){(0,i.Z)(this,e),this._keybindingProvider=t}return(0,r.Z)(e,[{key:"getResolver",value:function(){var t=this,n=new Ob((function(){return t._keybindingProvider.getKeybindings().filter((function(t){return e.codeActionCommands.indexOf(t.command)>=0})).filter((function(e){return e.resolvedKeybinding})).map((function(e){var t=e.commandArgs;return e.command===Gb?t={kind:jb.SourceOrganizeImports.value}:e.command===$b&&(t={kind:jb.SourceFixAll.value}),Object.assign({resolvedKeybinding:e.resolvedKeybinding},zb.fromUser(t,{kind:jb.None,apply:"never"}))}))}));return function(e){if(e.kind){var i=t.bestKeybindingForCodeAction(e,n.getValue());return null===i||void 0===i?void 0:i.resolvedKeybinding}}}},{key:"bestKeybindingForCodeAction",value:function(e,t){if(e.kind){var n=new jb(e.kind);return t.filter((function(e){return e.kind.contains(n)})).filter((function(t){return!t.preferred||e.isPreferred})).reduceRight((function(e,t){return e?e.kind.contains(t.kind)?t:e:t}),void 0)}}}]),e}();bw.codeActionCommands=[Kb,Ub,qb,Gb,$b];var ww,Cw=n(78101),kw=n(11732),Sw=n(25044),xw=n(4354),Lw=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Ew=function(e,t){return function(n,i){t(n,i,e)}};!function(e){e.Hidden={type:0};var t=(0,r.Z)((function e(t,n,r,o){(0,i.Z)(this,e),this.actions=t,this.trigger=n,this.editorPosition=r,this.widgetPosition=o,this.type=1}));e.Showing=t}(ww||(ww={}));var Nw=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._editor=e,s._quickFixActionId=r,s._preferredFixActionId=o,s._keybindingService=a,s._onClick=s._register(new kw.Q5),s.onClick=s._onClick.event,s._state=ww.Hidden,s._domNode=document.createElement("div"),s._domNode.className=xw.lA.lightBulb.classNames,s._editor.addContentWidget((0,Mb.Z)(s)),s._register(s._editor.onDidChangeModelContent((function(e){var t=s._editor.getModel();(1!==s.state.type||!t||s.state.editorPosition.lineNumber>=t.getLineCount())&&s.hide()}))),Sw.o.ignoreTarget(s._domNode),s._register(dw.addStandardDisposableGenericMouseDownListner(s._domNode,(function(e){if(1===s.state.type){s._editor.focus(),e.preventDefault();var t=dw.getDomNodePagePosition(s._domNode),n=t.top,i=t.height,r=s._editor.getOption(55),o=Math.floor(r/3);null!==s.state.widgetPosition.position&&s.state.widgetPosition.position.lineNumber<s.state.editorPosition.lineNumber&&(o+=r),s._onClick.fire({x:e.posx,y:n+i+o,actions:s.state.actions,trigger:s.state.trigger})}}))),s._register(dw.addDisposableListener(s._domNode,"mouseenter",(function(e){if(1===(1&e.buttons)){s.hide();var t=new Cw.Z;t.startMonitoring(e.target,e.buttons,Cw.e,(function(){}),(function(){t.dispose()}))}}))),s._register(s._editor.onDidChangeConfiguration((function(e){e.hasChanged(53)&&!s._editor.getOption(53).enabled&&s.hide()}))),s._updateLightBulbTitleAndIcon(),s._register(s._keybindingService.onDidUpdateKeybindings(s._updateLightBulbTitleAndIcon,(0,Mb.Z)(s))),s}return(0,r.Z)(n,[{key:"dispose",value:function(){(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this),this._editor.removeContentWidget(this)}},{key:"getId",value:function(){return"LightBulbWidget"}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return 1===this._state.type?this._state.widgetPosition:null}},{key:"update",value:function(e,t,i){var r=this;if(e.validActions.length<=0)return this.hide();var o=this._editor.getOptions();if(!o.get(53).enabled)return this.hide();var a=this._editor.getModel();if(!a)return this.hide();var s=a.validatePosition(i),u=s.lineNumber,l=s.column,c=a.getOptions().tabSize,d=o.get(40),h=a.getLineContent(u),f=Qy.yO.computeIndentLevel(h,c),p=function(e){return e>2&&r._editor.getTopForLineNumber(e)===r._editor.getTopForLineNumber(e-1)},g=u;if(!(d.spaceWidth*f>22))if(u>1&&!p(u-1))g-=1;else if(p(u+1)){if(l*d.spaceWidth<22)return this.hide()}else g+=1;this.state=new ww.Showing(e,t,i,{position:{lineNumber:g,column:1},preference:n._posPref}),this._editor.layoutContentWidget(this)}},{key:"hide",value:function(){this.state=ww.Hidden,this._editor.layoutContentWidget(this)}},{key:"state",get:function(){return this._state},set:function(e){this._state=e,this._updateLightBulbTitleAndIcon()}},{key:"_updateLightBulbTitleAndIcon",value:function(){var e,t;if(1===this.state.type&&this.state.actions.hasAutoFix){var n,i;(n=this._domNode.classList).remove.apply(n,(0,zt.Z)(xw.lA.lightBulb.classNamesArray)),(i=this._domNode.classList).add.apply(i,(0,zt.Z)(xw.lA.lightbulbAutofix.classNamesArray));var r=this._keybindingService.lookupKeybinding(this._preferredFixActionId);if(r)return void(this.title=ky.N("prefferedQuickFixWithKb","Show Fixes. Preferred Fix Available ({0})",r.getLabel()))}(e=this._domNode.classList).remove.apply(e,(0,zt.Z)(xw.lA.lightbulbAutofix.classNamesArray)),(t=this._domNode.classList).add.apply(t,(0,zt.Z)(xw.lA.lightBulb.classNamesArray));var o=this._keybindingService.lookupKeybinding(this._quickFixActionId);this.title=o?ky.N("quickFixWithKb","Show Fixes ({0})",o.getLabel()):ky.N("quickFix","Show Fixes")}},{key:"title",set:function(e){this._domNode.title=e}}]),n}(Ky.JT);Nw._posPref=[0],Nw=Lw([Ew(3,pw.d)],Nw),(0,eb.Ic)((function(e,t){var n,i=null===(n=e.getColor(Jy.cv))||void 0===n?void 0:n.transparent(.7),r=e.getColor(Jy.Fu);r&&t.addRule("\n\t\t.monaco-editor .contentWidgets ".concat(xw.lA.lightBulb.cssSelector," {\n\t\t\tcolor: ").concat(r,";\n\t\t\tbackground-color: ").concat(i,";\n\t\t}"));var o=e.getColor(Jy.sK);o&&t.addRule("\n\t\t.monaco-editor .contentWidgets ".concat(xw.lA.lightbulbAutofix.cssSelector," {\n\t\t\tcolor: ").concat(o,";\n\t\t\tbackground-color: ").concat(i,";\n\t\t}"))}));var Dw,Mw=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Tw=function(e,t){return function(n,i){t(n,i,e)}},Ow=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Iw=function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n},Aw=function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)},Rw=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s){var u;return(0,i.Z)(this,n),(u=t.call(this))._editor=e,u.delegate=a,u._activeCodeActions=u._register(new Ky.XK),Dw.set((0,Mb.Z)(u),!1),u._codeActionWidget=new Ob((function(){return u._register(s.createInstance(yw,u._editor,{onSelectCodeAction:function(e){return Ow((0,Mb.Z)(u),void 0,void 0,ti().mark((function t(){return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this.delegate.applyCodeAction(e,!0);case 1:case"end":return t.stop()}}),t,this)})))}}))})),u._lightBulbWidget=new Ob((function(){var e=u._register(s.createInstance(Nw,u._editor,r,o));return u._register(e.onClick((function(e){return u.showCodeActionList(e.trigger,e.actions,e,{includeDisabledActions:!1})}))),e})),u}return(0,r.Z)(n,[{key:"dispose",value:function(){Iw(this,Dw,!0,"f"),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"update",value:function(e){var t,n,i;return Ow(this,void 0,void 0,ti().mark((function r(){var o,a,s,u;return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(1===e.type){r.next=3;break}return null===(t=this._lightBulbWidget.rawValue)||void 0===t||t.hide(),r.abrupt("return");case 3:return r.prev=3,r.next=6,e.actions;case 6:o=r.sent,r.next=13;break;case 9:return r.prev=9,r.t0=r.catch(3),(0,My.dL)(r.t0),r.abrupt("return");case 13:if(!Aw(this,Dw,"f")){r.next=15;break}return r.abrupt("return");case 15:if(this._lightBulbWidget.getValue().update(o,e.trigger,e.position),1!==e.trigger.type){r.next=44;break}if(!(null===(n=e.trigger.filter)||void 0===n?void 0:n.include)){r.next=33;break}if(!(a=this.tryGetValidActionToApply(e.trigger,o))){r.next=27;break}return r.prev=20,r.next=23,this.delegate.applyCodeAction(a,!1);case 23:return r.prev=23,o.dispose(),r.finish(23);case 26:return r.abrupt("return");case 27:if(!e.trigger.context){r.next=33;break}if(!(s=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,o))||!s.action.disabled){r.next=33;break}return sw.get(this._editor).showMessage(s.action.disabled,e.trigger.context.position),o.dispose(),r.abrupt("return");case 33:if(u=!!(null===(i=e.trigger.filter)||void 0===i?void 0:i.include),!e.trigger.context){r.next=40;break}if(o.allActions.length&&(u||o.validActions.length)){r.next=40;break}return sw.get(this._editor).showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=o,o.dispose(),r.abrupt("return");case 40:this._activeCodeActions.value=o,this._codeActionWidget.getValue().show(e.trigger,o,e.position,{includeDisabledActions:u}),r.next=45;break;case 44:this._codeActionWidget.getValue().isVisible?o.dispose():this._activeCodeActions.value=o;case 45:case"end":return r.stop()}}),r,this,[[3,9],[20,,23,26]])})))}},{key:"getInvalidActionThatWouldHaveBeenApplied",value:function(e,t){if(t.allActions.length)return"first"===e.autoApply&&0===t.validActions.length||"ifSingle"===e.autoApply&&1===t.allActions.length?t.allActions.find((function(e){return e.action.disabled})):void 0}},{key:"tryGetValidActionToApply",value:function(e,t){if(t.validActions.length)return"first"===e.autoApply&&t.validActions.length>0||"ifSingle"===e.autoApply&&1===t.validActions.length?t.validActions[0]:void 0}},{key:"showCodeActionList",value:function(e,t,n,i){return Ow(this,void 0,void 0,ti().mark((function r(){return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:this._codeActionWidget.getValue().show(e,t,n,i);case 1:case"end":return r.stop()}}),r,this)})))}}]),n}(Ky.JT);Dw=new WeakMap,Rw=Mw([Tw(4,cw.TG)],Rw);var Pw,Zw,Fw=n(95123),jw=n(71574),Hw=n(45014),Bw=n(51334),zw=function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)},Ww=function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n},Vw=new Ey.uy("supportedCodeAction",""),Yw=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:250;return(0,i.Z)(this,n),(a=t.call(this))._editor=e,a._markerService=r,a._signalChange=o,a._delay=s,a._autoTriggerTimer=a._register(new Uy._F),a._register(a._markerService.onMarkerChanged((function(e){return a._onMarkerChanges(e)}))),a._register(a._editor.onDidChangeCursorPosition((function(){return a._onCursorChange()}))),a}return(0,r.Z)(n,[{key:"trigger",value:function(e){var t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);return this._createEventAndSignalChange(e,t)}},{key:"_onMarkerChanges",value:function(e){var t=this,n=this._editor.getModel();n&&e.some((function(e){return(0,Bw.Xy)(e,n.uri)}))&&this._autoTriggerTimer.cancelAndSet((function(){t.trigger({type:2})}),this._delay)}},{key:"_onCursorChange",value:function(){var e=this;this._autoTriggerTimer.cancelAndSet((function(){e.trigger({type:2})}),this._delay)}},{key:"_getRangeOfMarker",value:function(e){var t=this._editor.getModel();if(t){var n,i=(0,tr.Z)(this._markerService.read({resource:t.uri}));try{for(i.s();!(n=i.n()).done;){var r=n.value,o=t.validateRange(r);if(Gy.e.intersectRanges(o,e))return Gy.e.lift(o)}}catch(a){i.e(a)}finally{i.f()}}}},{key:"_getRangeOfSelectionUnlessWhitespaceEnclosed",value:function(e){if(this._editor.hasModel()){var t=this._editor.getModel(),n=this._editor.getSelection();if(n.isEmpty()&&2===e.type){var i=n.getPosition(),r=i.lineNumber,o=i.column,a=t.getLineContent(r);if(0===a.length)return;if(1===o){if(/\s/.test(a[0]))return}else if(o===t.getLineMaxColumn(r)){if(/\s/.test(a[a.length-1]))return}else if(/\s/.test(a[o-2])&&/\s/.test(a[o-1]))return}return n}}},{key:"_createEventAndSignalChange",value:function(e,t){var n=this._editor.getModel();if(t&&n){var i=this._getRangeOfMarker(t),r=i?i.getStartPosition():t.getStartPosition(),o={trigger:e,selection:t,position:r};return this._signalChange(o),o}this._signalChange(void 0)}}]),n}(Ky.JT);!function(e){e.Empty={type:0};var t=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.trigger=t,this.rangeOrSelection=n,this.position=r,this._cancellablePromise=o,this.type=1,this.actions=o.catch((function(e){if((0,My.VV)(e))return Uw;throw e}))}return(0,r.Z)(e,[{key:"cancel",value:function(){this._cancellablePromise.cancel()}}]),e}();e.Triggered=t}(Zw||(Zw={}));var Uw={allActions:[],validActions:[],dispose:function(){},documentation:[],hasAutoFix:!1},Kw=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._editor=e,s._markerService=r,s._progressService=a,s._codeActionOracle=s._register(new Ky.XK),s._state=Zw.Empty,s._onDidChangeState=s._register(new kw.Q5),s.onDidChangeState=s._onDidChangeState.event,Pw.set((0,Mb.Z)(s),!1),s._supportedCodeActions=Vw.bindTo(o),s._register(s._editor.onDidChangeModel((function(){return s._update()}))),s._register(s._editor.onDidChangeModelLanguage((function(){return s._update()}))),s._register(Zb.H9.onDidChange((function(){return s._update()}))),s._update(),s}return(0,r.Z)(n,[{key:"dispose",value:function(){zw(this,Pw,"f")||(Ww(this,Pw,!0,"f"),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this),this.setState(Zw.Empty,!0))}},{key:"_update",value:function(){var e=this;if(!zw(this,Pw,"f")){this._codeActionOracle.value=void 0,this.setState(Zw.Empty);var t=this._editor.getModel();if(t&&Zb.H9.has(t)&&!this._editor.getOption(77)){var n,i=[],r=(0,tr.Z)(Zb.H9.all(t));try{for(r.s();!(n=r.n()).done;){var o=n.value;Array.isArray(o.providedCodeActionKinds)&&i.push.apply(i,(0,zt.Z)(o.providedCodeActionKinds))}}catch(a){r.e(a)}finally{r.f()}this._supportedCodeActions.set(i.join(" ")),this._codeActionOracle.value=new Yw(this._editor,this._markerService,(function(n){var i;if(n){var r=(0,Uy.PG)((function(e){return ew(t,n.selection,n.trigger,Wb.E.None,e)}));1===n.trigger.type&&(null===(i=e._progressService)||void 0===i||i.showWhile(r,250)),e.setState(new Zw.Triggered(n.trigger,n.selection,n.position,r))}else e.setState(Zw.Empty)}),void 0),this._codeActionOracle.value.trigger({type:2})}else this._supportedCodeActions.reset()}}},{key:"trigger",value:function(e){this._codeActionOracle.value&&this._codeActionOracle.value.trigger(e)}},{key:"setState",value:function(e,t){e!==this._state&&(1===this._state.type&&this._state.cancel(),this._state=e,t||zw(this,Pw,"f")||this._onDidChangeState.fire(e))}}]),n}(Ky.JT);Pw=new WeakMap;var qw=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Gw=function(e,t){return function(n,i){t(n,i,e)}},$w=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function Qw(e){return Ey.Ao.regex(Vw.keys()[0],new RegExp("(\\s|^)"+(0,Ib.ec)(e.value)+"\\b"))}var Xw={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:ky.N("args.schema.kind","Kind of the code action to run.")},apply:{type:"string",description:ky.N("args.schema.apply","Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[ky.N("args.schema.apply.first","Always apply the first returned code action."),ky.N("args.schema.apply.ifSingle","Apply the first returned code action if it is the only one."),ky.N("args.schema.apply.never","Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:ky.N("args.schema.preferred","Controls if only preferred code actions should be returned.")}}},Jw=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s){var u;return(0,i.Z)(this,n),(u=t.call(this))._instantiationService=s,u._editor=e,u._model=u._register(new Kw(u._editor,r,o,a)),u._register(u._model.onDidChangeState((function(e){return u.update(e)}))),u._ui=new Ob((function(){return u._register(new Rw(e,iC.Id,lC.Id,{applyCodeAction:function(e,t){return $w((0,Mb.Z)(u),void 0,void 0,ti().mark((function n(){return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,this._applyCodeAction(e);case 3:return n.prev=3,t&&this._trigger({type:2,filter:{}}),n.finish(3);case 6:case"end":return n.stop()}}),n,this,[[0,,3,6]])})))}},u._instantiationService))})),u}return(0,r.Z)(n,[{key:"update",value:function(e){this._ui.getValue().update(e)}},{key:"showCodeActions",value:function(e,t,n){return this._ui.getValue().showCodeActionList(e,t,n,{includeDisabledActions:!1})}},{key:"manualTriggerAtCurrentPosition",value:function(e,t,n){if(this._editor.hasModel()){sw.get(this._editor).closeMessage();var i=this._editor.getPosition();this._trigger({type:1,filter:t,autoApply:n,context:{notAvailableMessage:e,position:i}})}}},{key:"_trigger",value:function(e){return this._model.trigger(e)}},{key:"_applyCodeAction",value:function(e){return this._instantiationService.invokeFunction(eC,e,this._editor)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);function eC(e,t,n){return $w(this,void 0,void 0,ti().mark((function i(){var r,o,a,s,u;return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return r=e.get(Ab.vu),o=e.get(Vb.H),a=e.get(Hw.b),s=e.get(jw.lT),a.publicLog2("codeAction.applyCodeAction",{codeActionTitle:t.action.title,codeActionKind:t.action.kind,codeActionIsPreferred:!!t.action.isPreferred}),i.next=7,t.resolve(Tb.T.None);case 7:if(!t.action.edit){i.next=10;break}return i.next=10,r.apply(Ab.fo.convert(t.action.edit),{editor:n,label:t.action.title});case 10:if(!t.action.command){i.next=20;break}return i.prev=11,i.next=14,o.executeCommand.apply(o,[t.action.command.id].concat((0,zt.Z)(t.action.command.arguments||[])));case 14:i.next=20;break;case 16:i.prev=16,i.t0=i.catch(11),u=tC(i.t0),s.error("string"===typeof u?u:ky.N("applyCodeActionFailed","An unknown error occurred while applying the code action"));case 20:case"end":return i.stop()}}),i,null,[[11,16]])})))}function tC(e){return"string"===typeof e?e:e instanceof Error&&"string"===typeof e.message?e.message:void 0}function nC(e,t,n,i){if(e.hasModel()){var r=Jw.get(e);r&&r.manualTriggerAtCurrentPosition(t,n,i)}}Jw.ID="editor.contrib.quickFixController",Jw=qw([Gw(1,Fw.lT),Gw(2,Ey.i6),Gw(3,Wb.e),Gw(4,cw.TG)],Jw);var iC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.Id,label:ky.N("quickfix.trigger.label","Quick Fix..."),alias:"Quick Fix...",precondition:Ey.Ao.and(Sy.u.writable,Sy.u.hasCodeActionsProvider),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:2132,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return nC(t,ky.N("editor.action.quickFix.noneMessage","No code actions available"),void 0,void 0)}}]),n}(Cy.R6);iC.Id="editor.action.quickFix";var rC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:Ub,precondition:Ey.Ao.and(Sy.u.writable,Sy.u.hasCodeActionsProvider),description:{description:"Trigger a code action",args:[{name:"args",schema:Xw}]}})}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=zb.fromUser(n,{kind:jb.Empty,apply:"ifSingle"});return nC(t,"string"===typeof(null===n||void 0===n?void 0:n.kind)?i.preferred?ky.N("editor.action.codeAction.noneMessage.preferred.kind","No preferred code actions for '{0}' available",n.kind):ky.N("editor.action.codeAction.noneMessage.kind","No code actions for '{0}' available",n.kind):i.preferred?ky.N("editor.action.codeAction.noneMessage.preferred","No preferred code actions available"):ky.N("editor.action.codeAction.noneMessage","No code actions available"),{include:i.kind,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)}}]),n}(Cy._l),oC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:Kb,label:ky.N("refactor.label","Refactor..."),alias:"Refactor...",precondition:Ey.Ao.and(Sy.u.writable,Sy.u.hasCodeActionsProvider),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:Ey.Ao.and(Sy.u.writable,Qw(jb.Refactor))},description:{description:"Refactor...",args:[{name:"args",schema:Xw}]}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=zb.fromUser(n,{kind:jb.Refactor,apply:"never"});return nC(t,"string"===typeof(null===n||void 0===n?void 0:n.kind)?i.preferred?ky.N("editor.action.refactor.noneMessage.preferred.kind","No preferred refactorings for '{0}' available",n.kind):ky.N("editor.action.refactor.noneMessage.kind","No refactorings for '{0}' available",n.kind):i.preferred?ky.N("editor.action.refactor.noneMessage.preferred","No preferred refactorings available"):ky.N("editor.action.refactor.noneMessage","No refactorings available"),{include:jb.Refactor.contains(i.kind)?i.kind:jb.None,onlyIncludePreferredActions:i.preferred},i.apply)}}]),n}(Cy.R6),aC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:qb,label:ky.N("source.label","Source Action..."),alias:"Source Action...",precondition:Ey.Ao.and(Sy.u.writable,Sy.u.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:Ey.Ao.and(Sy.u.writable,Qw(jb.Source))},description:{description:"Source Action...",args:[{name:"args",schema:Xw}]}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=zb.fromUser(n,{kind:jb.Source,apply:"never"});return nC(t,"string"===typeof(null===n||void 0===n?void 0:n.kind)?i.preferred?ky.N("editor.action.source.noneMessage.preferred.kind","No preferred source actions for '{0}' available",n.kind):ky.N("editor.action.source.noneMessage.kind","No source actions for '{0}' available",n.kind):i.preferred?ky.N("editor.action.source.noneMessage.preferred","No preferred source actions available"):ky.N("editor.action.source.noneMessage","No source actions available"),{include:jb.Source.contains(i.kind)?i.kind:jb.None,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)}}]),n}(Cy.R6),sC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:Gb,label:ky.N("organizeImports.label","Organize Imports"),alias:"Organize Imports",precondition:Ey.Ao.and(Sy.u.writable,Qw(jb.SourceOrganizeImports)),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1581,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return nC(t,ky.N("editor.action.organize.noneMessage","No organize imports action available"),{include:jb.SourceOrganizeImports,includeSourceActions:!0},"ifSingle")}}]),n}(Cy.R6),uC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:$b,label:ky.N("fixAll.label","Fix All"),alias:"Fix All",precondition:Ey.Ao.and(Sy.u.writable,Qw(jb.SourceFixAll))})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return nC(t,ky.N("fixAll.noneMessage","No fix all action available"),{include:jb.SourceFixAll,includeSourceActions:!0},"ifSingle")}}]),n}(Cy.R6),lC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.Id,label:ky.N("autoFix.label","Auto Fix..."),alias:"Auto Fix...",precondition:Ey.Ao.and(Sy.u.writable,Qw(jb.QuickFix)),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1620,mac:{primary:2644},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return nC(t,ky.N("editor.action.autoFix.noneMessage","No auto fixes available"),{include:jb.QuickFix,onlyIncludePreferredActions:!0},"ifSingle")}}]),n}(Cy.R6);lC.Id="editor.action.autoFix",(0,Cy._K)(Jw.ID,Jw),(0,Cy.Qr)(iC),(0,Cy.Qr)(oC),(0,Cy.Qr)(aC),(0,Cy.Qr)(sC),(0,Cy.Qr)(lC),(0,Cy.Qr)(uC),(0,Cy.fK)(new rC);var cC=n(25941),dC=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},hC=function(){function e(){(0,i.Z)(this,e),this.lenses=[],this._disposables=new Ky.SL}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose()}},{key:"add",value:function(e,t){this._disposables.add(e);var n,i=(0,tr.Z)(e.lenses);try{for(i.s();!(n=i.n()).done;){var r=n.value;this.lenses.push({symbol:r,provider:t})}}catch(o){i.e(o)}finally{i.f()}}}]),e}();function fC(e,t){return dC(this,void 0,void 0,ti().mark((function n(){var i,r,o,a,s=this;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i=Zb.He.ordered(e),r=new Map,o=new hC,a=i.map((function(n,i){return dC(s,void 0,void 0,ti().mark((function a(){var s;return ti().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return r.set(n,i),a.prev=1,a.next=4,Promise.resolve(n.provideCodeLenses(e,t));case 4:(s=a.sent)&&o.add(s,n),a.next=11;break;case 8:a.prev=8,a.t0=a.catch(1),(0,My.Cp)(a.t0);case 11:case"end":return a.stop()}}),a,null,[[1,8]])})))})),n.next=6,Promise.all(a);case 6:return o.lenses=o.lenses.sort((function(e,t){return e.symbol.range.startLineNumber<t.symbol.range.startLineNumber?-1:e.symbol.range.startLineNumber>t.symbol.range.startLineNumber?1:r.get(e.provider)<r.get(t.provider)?-1:r.get(e.provider)>r.get(t.provider)?1:e.symbol.range.startColumn<t.symbol.range.startColumn?-1:e.symbol.range.startColumn>t.symbol.range.startColumn?1:0})),n.abrupt("return",o);case 8:case"end":return n.stop()}}),n)})))}Vb.P.registerCommand("_executeCodeLensProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1];(0,cC.p_)(Rb.o.isUri(r)),(0,cC.p_)("number"===typeof o||!o);var a=e.get(Fb.q).getModel(r);if(!a)throw(0,My.b1)();var s=[],u=new Ky.SL;return fC(a,Tb.T.None).then((function(e){u.add(e);var t,n=[],i=(0,tr.Z)(e.lenses);try{var r=function(){var e=t.value;void 0===o||null===o||Boolean(e.symbol.command)?s.push(e.symbol):o-- >0&&e.provider.resolveCodeLens&&n.push(Promise.resolve(e.provider.resolveCodeLens(a,e.symbol,Tb.T.None)).then((function(t){return s.push(t||e.symbol)})))};for(i.s();!(t=i.n()).done;)r()}catch(l){i.e(l)}finally{i.f()}return Promise.all(n)})).then((function(){return s})).finally((function(){setTimeout((function(){return u.dispose()}),100)}))}));var pC=n(66404),gC=function(){function e(t,n,r){(0,i.Z)(this,e),this.afterLineNumber=t,this.heightInPx=n,this._onHeight=r,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}return(0,r.Z)(e,[{key:"onComputedHeight",value:function(e){void 0===this._lastHeight?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}}]),e}(),vC=function(){function e(t,n,r){(0,i.Z)(this,e),this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=t,this._id="codelens.widget-".concat(e._idPool++),this.updatePosition(r),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration ".concat(n)}return(0,r.Z)(e,[{key:"withCommands",value:function(e,t){this._commands.clear();for(var n=[],i=!1,r=0;r<e.length;r++){var o=e[r];if(o&&(i=!0,o.command)){var a=(0,pC.T)(o.command.title.trim());o.command.id?(n.push(dw.$.apply(dw,["a",{id:String(r),title:o.command.tooltip}].concat((0,zt.Z)(a)))),this._commands.set(String(r),o.command)):n.push(dw.$.apply(dw,["span",{title:o.command.tooltip}].concat((0,zt.Z)(a)))),r+1<e.length&&n.push(dw.$("span",void 0,"\xa0|\xa0"))}}i?(dw.reset.apply(dw,[this._domNode].concat(n)),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):dw.reset(this._domNode,dw.$("span",void 0,"no commands"))}},{key:"getCommand",value:function(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0}},{key:"getId",value:function(){return this._id}},{key:"getDomNode",value:function(){return this._domNode}},{key:"updatePosition",value:function(e){var t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}}},{key:"getPosition",value:function(){return this._widgetPosition||null}}]),e}();vC._idPool=0;var mC=function(){function e(){(0,i.Z)(this,e),this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}return(0,r.Z)(e,[{key:"addDecoration",value:function(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)}},{key:"removeDecoration",value:function(e){this._removeDecorations.push(e)}},{key:"commit",value:function(e){for(var t=e.deltaDecorations(this._removeDecorations,this._addDecorations),n=0,i=t.length;n<i;n++)this._addDecorationsCallbacks[n](t[n])}}]),e}(),_C=function(){function e(t,n,r,o,a,s,u){var l,c=this;(0,i.Z)(this,e),this._isDisposed=!1,this._editor=n,this._className=r,this._data=t,this._decorationIds=[];var d=[];this._data.forEach((function(e,t){e.symbol.command&&d.push(e.symbol),o.addDecoration({range:e.symbol.range,options:Qy.qx.EMPTY},(function(e){return c._decorationIds[t]=e})),l=l?Gy.e.plusRange(l,e.symbol.range):Gy.e.lift(e.symbol.range)})),this._viewZone=new gC(l.startLineNumber-1,s,u),this._viewZoneId=a.addZone(this._viewZone),d.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(d,!1))}return(0,r.Z)(e,[{key:"_createContentWidgetIfNecessary",value:function(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new vC(this._editor,this._className,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}},{key:"dispose",value:function(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t&&t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}},{key:"isDisposed",value:function(){return this._isDisposed}},{key:"isValid",value:function(){var e=this;return this._decorationIds.some((function(t,n){var i=e._editor.getModel().getDecorationRange(t),r=e._data[n].symbol;return!(!i||Gy.e.isEmpty(r.range)!==i.isEmpty())}))}},{key:"updateCodeLensSymbols",value:function(e,t){var n=this;this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((function(e,i){t.addDecoration({range:e.symbol.range,options:Qy.qx.EMPTY},(function(e){return n._decorationIds[i]=e}))}))}},{key:"updateHeight",value:function(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}},{key:"computeIfNecessary",value:function(e){if(!this._viewZone.domNode.hasAttribute("monaco-visible-view-zone"))return null;for(var t=0;t<this._decorationIds.length;t++){var n=e.getDecorationRange(this._decorationIds[t]);n&&(this._data[t].symbol.range=n)}return this._data}},{key:"updateCommands",value:function(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(var t=0;t<this._data.length;t++){var n=e[t];if(n){var i=this._data[t].symbol;i.command=n.command||i.command}}}},{key:"getCommand",value:function(e){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.getCommand(e)}},{key:"getLineNumber",value:function(){var e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1}},{key:"update",value:function(e){if(this.isValid()){var t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,e.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}}},{key:"getItems",value:function(){return this._data}}]),e}();(0,eb.Ic)((function(e,t){var n=e.getColor(Xy.Yp);n&&(t.addRule(".monaco-editor .codelens-decoration { color: ".concat(n,"; }")),t.addRule(".monaco-editor .codelens-decoration .codicon { color: ".concat(n,"; }")));var i=e.getColor(Jy._Y);i&&(t.addRule(".monaco-editor .codelens-decoration > a:hover { color: ".concat(i," !important; }")),t.addRule(".monaco-editor .codelens-decoration > a:hover .codicon { color: ".concat(i," !important; }")))}));var yC=n(77863),bC=n(15022),wC=n(59319),CC=n(60106),kC=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},SC=function(e,t){return function(n,i){t(n,i,e)}},xC=(0,cw.yh)("ICodeLensCache"),LC=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.lineCount=t,this.data=n})),EC=function(){function e(t){var n=this;(0,i.Z)(this,e),this._fakeProvider=new(function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"provideCodeLenses",value:function(){throw new Error("not supported")}}]),e}()),this._cache=new bC.z6(20,.75);(0,Uy.To)((function(){return t.remove("codelens/cache",1)}));var o="codelens/cache2",a=t.get(o,1,"{}");this._deserialize(a),(0,CC.I)(t.onWillSaveState)((function(e){e.reason===wC.fk.SHUTDOWN&&t.store(o,n._serialize(),1,1)}))}return(0,r.Z)(e,[{key:"put",value:function(e,t){var n=t.lenses.map((function(e){var t;return{range:e.symbol.range,command:e.symbol.command&&{id:"",title:null===(t=e.symbol.command)||void 0===t?void 0:t.title}}})),i=new hC;i.add({lenses:n,dispose:function(){}},this._fakeProvider);var r=new LC(e.getLineCount(),i);this._cache.set(e.uri.toString(),r)}},{key:"get",value:function(e){var t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}},{key:"delete",value:function(e){this._cache.delete(e.uri.toString())}},{key:"_serialize",value:function(){var e,t=Object.create(null),n=(0,tr.Z)(this._cache);try{for(n.s();!(e=n.n()).done;){var i,r=(0,Ti.Z)(e.value,2),o=r[0],a=r[1],s=new Set,u=(0,tr.Z)(a.data.lenses);try{for(u.s();!(i=u.n()).done;){var l=i.value;s.add(l.symbol.range.startLineNumber)}}catch(c){u.e(c)}finally{u.f()}t[o]={lineCount:a.lineCount,lines:(0,zt.Z)(s.values())}}}catch(c){n.e(c)}finally{n.f()}return JSON.stringify(t)}},{key:"_deserialize",value:function(e){try{var t=JSON.parse(e);for(var n in t){var i,r=t[n],o=[],a=(0,tr.Z)(r.lines);try{for(a.s();!(i=a.n()).done;){var s=i.value;o.push({range:new Gy.e(s,1,s,11)})}}catch(l){a.e(l)}finally{a.f()}var u=new hC;u.add({lenses:o,dispose:function(){}},this._fakeProvider),this._cache.set(n,new LC(r.lineCount,u))}}catch(WS){}}}]),e}();EC=kC([SC(0,wC.Uy)],EC),(0,yC.z)(xC,EC);var NC=n(25567),DC=n(62137),MC=n(66748),TC=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},OC=function(e,t){return function(n,i){t(n,i,e)}},IC=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},AC=function(){function e(t,n,r,o){var a=this;(0,i.Z)(this,e),this._editor=t,this._commandService=n,this._notificationService=r,this._codeLensCache=o,this._disposables=new Ky.SL,this._localToDispose=new Ky.SL,this._lenses=[],this._getCodeLensModelDelays=new MC.Y(Zb.He,250,2500),this._oldCodeLensModels=new Ky.SL,this._resolveCodeLensesDelays=new MC.Y(Zb.He,250,2500),this._resolveCodeLensesScheduler=new Uy.pY((function(){return a._resolveCodeLensesInViewport()}),this._resolveCodeLensesDelays.min),this._disposables.add(this._editor.onDidChangeModel((function(){return a._onModelChange()}))),this._disposables.add(this._editor.onDidChangeModelLanguage((function(){return a._onModelChange()}))),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){(e.hasChanged(40)||e.hasChanged(14)||e.hasChanged(13))&&a._updateLensStyle(),e.hasChanged(12)&&a._onModelChange()}))),this._disposables.add(Zb.He.onDidChange(this._onModelChange,this)),this._onModelChange(),this._styleClassName="_"+(0,NC.vp)(this._editor.getId()).toString(16),this._styleElement=dw.createStyleSheet(dw.isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0),this._updateLensStyle()}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),null===(e=this._currentCodeLensModel)||void 0===e||e.dispose(),this._styleElement.remove()}},{key:"_getLayoutInfo",value:function(){var e,t=this._editor.getOption(14);return!t||t<5?(t=.9*this._editor.getOption(42)|0,e=this._editor.getOption(55)):e=t*Math.max(1.3,this._editor.getOption(55)/this._editor.getOption(42))|0,{codeLensHeight:e,fontSize:t}}},{key:"_updateLensStyle",value:function(){var e=this,t=this._getLayoutInfo(),n=t.codeLensHeight,i=t.fontSize,r=this._editor.getOption(13),o=this._editor.getOption(40),a="--codelens-font-family".concat(this._styleClassName),s="--codelens-font-features".concat(this._styleClassName),u="\n\t\t.monaco-editor .codelens-decoration.".concat(this._styleClassName," { line-height: ").concat(n,"px; font-size: ").concat(i,"px; padding-right: ").concat(Math.round(.5*i),"px; font-feature-settings: var(").concat(s,") }\n\t\t.monaco-editor .codelens-decoration.").concat(this._styleClassName," span.codicon { line-height: ").concat(n,"px; font-size: ").concat(i,"px; }\n\t\t");r&&(u+=".monaco-editor .codelens-decoration.".concat(this._styleClassName," { font-family: var(").concat(a,")}")),this._styleElement.textContent=u,this._editor.getContainerDomNode().style.setProperty(a,null!==r&&void 0!==r?r:"inherit"),this._editor.getContainerDomNode().style.setProperty(s,o.fontFeatureSettings),this._editor.changeViewZones((function(t){var i,r=(0,tr.Z)(e._lenses);try{for(r.s();!(i=r.n()).done;){i.value.updateHeight(n,t)}}catch(o){r.e(o)}finally{r.f()}}))}},{key:"_localDispose",value:function(){var e,t,n;null===(e=this._getCodeLensModelPromise)||void 0===e||e.cancel(),this._getCodeLensModelPromise=void 0,null===(t=this._resolveCodeLensesPromise)||void 0===t||t.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),null===(n=this._currentCodeLensModel)||void 0===n||n.dispose()}},{key:"_onModelChange",value:function(){var e=this;this._localDispose();var t=this._editor.getModel();if(t&&this._editor.getOption(12)){var n=this._codeLensCache.get(t);if(n&&this._renderCodeLensSymbols(n),Zb.He.has(t)){var i,r=(0,tr.Z)(Zb.He.all(t));try{for(r.s();!(i=r.n()).done;){var o=i.value;if("function"===typeof o.onDidChange){var a=o.onDidChange((function(){return s.schedule()}));this._localToDispose.add(a)}}}catch(u){r.e(u)}finally{r.f()}var s=new Uy.pY((function(){var n,i=Date.now();null===(n=e._getCodeLensModelPromise)||void 0===n||n.cancel(),e._getCodeLensModelPromise=(0,Uy.PG)((function(e){return fC(t,e)})),e._getCodeLensModelPromise.then((function(n){e._currentCodeLensModel&&e._oldCodeLensModels.add(e._currentCodeLensModel),e._currentCodeLensModel=n,e._codeLensCache.put(t,n);var r=e._getCodeLensModelDelays.update(t,Date.now()-i);s.delay=r,e._renderCodeLensSymbols(n),e._resolveCodeLensesInViewport()}),My.dL)}),this._getCodeLensModelDelays.get(t));this._localToDispose.add(s),this._localToDispose.add((0,Ky.OF)((function(){return e._resolveCodeLensesScheduler.cancel()}))),this._localToDispose.add(this._editor.onDidChangeModelContent((function(){e._editor.changeDecorations((function(t){e._editor.changeViewZones((function(n){var i=[],r=-1;e._lenses.forEach((function(e){e.isValid()&&r!==e.getLineNumber()?(e.update(n),r=e.getLineNumber()):i.push(e)}));var o=new mC;i.forEach((function(t){t.dispose(o,n),e._lenses.splice(e._lenses.indexOf(t),1)})),o.commit(t)}))})),s.schedule()}))),this._localToDispose.add(this._editor.onDidFocusEditorWidget((function(){s.schedule()}))),this._localToDispose.add(this._editor.onDidScrollChange((function(t){t.scrollTopChanged&&e._lenses.length>0&&e._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add(this._editor.onDidLayoutChange((function(){e._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add((0,Ky.OF)((function(){if(e._editor.getModel()){var t=Pb.ZF.capture(e._editor);e._editor.changeDecorations((function(t){e._editor.changeViewZones((function(n){e._disposeAllLenses(t,n)}))})),t.restore(e._editor)}else e._disposeAllLenses(void 0,void 0)}))),this._localToDispose.add(this._editor.onMouseDown((function(t){if(9===t.target.type){var n=t.target.element;if("SPAN"===(null===n||void 0===n?void 0:n.tagName)&&(n=n.parentElement),"A"===(null===n||void 0===n?void 0:n.tagName)){var i,r=(0,tr.Z)(e._lenses);try{for(r.s();!(i=r.n()).done;){var o=i.value.getCommand(n);if(o){var a;(a=e._commandService).executeCommand.apply(a,[o.id].concat((0,zt.Z)(o.arguments||[]))).catch((function(t){return e._notificationService.error(t)}));break}}}catch(u){r.e(u)}finally{r.f()}}}}))),s.schedule()}else n&&this._localToDispose.add((0,Uy.Vg)((function(){var i=e._codeLensCache.get(t);n===i&&(e._codeLensCache.delete(t),e._onModelChange())}),3e4))}}},{key:"_disposeAllLenses",value:function(e,t){var n,i=new mC,r=(0,tr.Z)(this._lenses);try{for(r.s();!(n=r.n()).done;){n.value.dispose(i,t)}}catch(o){r.e(o)}finally{r.f()}e&&i.commit(e),this._lenses.length=0}},{key:"_renderCodeLensSymbols",value:function(e){var t=this;if(this._editor.hasModel()){var n,i,r=this._editor.getModel().getLineCount(),o=[],a=(0,tr.Z)(e.lenses);try{for(a.s();!(i=a.n()).done;){var s=i.value,u=s.symbol.range.startLineNumber;u<1||u>r||(n&&n[n.length-1].symbol.range.startLineNumber===u?n.push(s):(n=[s],o.push(n)))}}catch(d){a.e(d)}finally{a.f()}var l=Pb.ZF.capture(this._editor),c=this._getLayoutInfo();this._editor.changeDecorations((function(e){t._editor.changeViewZones((function(n){for(var i=new mC,r=0,a=0;a<o.length&&r<t._lenses.length;){var s=o[a][0].symbol.range.startLineNumber,u=t._lenses[r].getLineNumber();u<s?(t._lenses[r].dispose(i,n),t._lenses.splice(r,1)):u===s?(t._lenses[r].updateCodeLensSymbols(o[a],i),a++,r++):(t._lenses.splice(r,0,new _C(o[a],t._editor,t._styleClassName,i,n,c.codeLensHeight,(function(){return t._resolveCodeLensesInViewportSoon()}))),r++,a++)}for(;r<t._lenses.length;)t._lenses[r].dispose(i,n),t._lenses.splice(r,1);for(;a<o.length;)t._lenses.push(new _C(o[a],t._editor,t._styleClassName,i,n,c.codeLensHeight,(function(){return t._resolveCodeLensesInViewportSoon()}))),a++;i.commit(e)}))})),l.restore(this._editor)}}},{key:"_resolveCodeLensesInViewportSoon",value:function(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}},{key:"_resolveCodeLensesInViewport",value:function(){var e,t=this;null===(e=this._resolveCodeLensesPromise)||void 0===e||e.cancel(),this._resolveCodeLensesPromise=void 0;var n=this._editor.getModel();if(n){var i=[],r=[];if(this._lenses.forEach((function(e){var t=e.computeIfNecessary(n);t&&(i.push(t),r.push(e))})),0!==i.length){var o=Date.now(),a=(0,Uy.PG)((function(e){var t=i.map((function(t,i){var o=new Array(t.length),a=t.map((function(t,i){return t.symbol.command||"function"!==typeof t.provider.resolveCodeLens?(o[i]=t.symbol,Promise.resolve(void 0)):Promise.resolve(t.provider.resolveCodeLens(n,t.symbol,e)).then((function(e){o[i]=e}),My.Cp)}));return Promise.all(a).then((function(){e.isCancellationRequested||r[i].isDisposed()||r[i].updateCommands(o)}))}));return Promise.all(t)}));this._resolveCodeLensesPromise=a,this._resolveCodeLensesPromise.then((function(){var e=t._resolveCodeLensesDelays.update(n,Date.now()-o);t._resolveCodeLensesScheduler.delay=e,t._currentCodeLensModel&&t._codeLensCache.put(n,t._currentCodeLensModel),t._oldCodeLensModels.clear(),a===t._resolveCodeLensesPromise&&(t._resolveCodeLensesPromise=void 0)}),(function(e){(0,My.dL)(e),a===t._resolveCodeLensesPromise&&(t._resolveCodeLensesPromise=void 0)}))}}}},{key:"getLenses",value:function(){return this._lenses}}]),e}();AC.ID="css.editor.codeLens",AC=TC([OC(1,Vb.H),OC(2,jw.lT),OC(3,xC)],AC),(0,Cy._K)(AC.ID,AC),(0,Cy.Qr)(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"codelens.showLensesInCurrentLine",precondition:Sy.u.hasCodeLensProvider,label:(0,ky.N)("showLensOnLine","Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return IC(this,void 0,void 0,ti().mark((function n(){var i,r,o,a,s,u,l,c,d,h,f,p,g,v;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t.hasModel()){n.next=2;break}return n.abrupt("return");case 2:i=e.get(DC.eJ),r=e.get(Vb.H),o=e.get(jw.lT),a=t.getSelection().positionLineNumber,s=t.getContribution(AC.ID),u=[],l=(0,tr.Z)(s.getLenses());try{for(l.s();!(c=l.n()).done;)if((d=c.value).getLineNumber()===a){h=(0,tr.Z)(d.getItems());try{for(h.s();!(f=h.n()).done;)p=f.value,(g=p.symbol.command)&&u.push({label:g.title,command:g})}catch(m){h.e(m)}finally{h.f()}}}catch(m){l.e(m)}finally{l.f()}if(0!==u.length){n.next=12;break}return n.abrupt("return");case 12:return n.next=14,i.pick(u,{canPickMany:!1});case 14:if(v=n.sent){n.next=17;break}return n.abrupt("return");case 17:return n.prev=17,n.next=20,r.executeCommand.apply(r,[v.command.id].concat((0,zt.Z)(v.command.arguments||[])));case 20:n.next=25;break;case 22:n.prev=22,n.t0=n.catch(17),o.error(n.t0);case 25:case"end":return n.stop()}}),n,null,[[17,22]])})))}}]),n}(Cy.R6));var RC=n(89938);function PC(e,t,n,i){return Promise.resolve(n.provideColorPresentations(e,t,i))}Vb.P.registerCommand("_executeDocumentColorProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0];if(!(r instanceof Rb.o))throw(0,My.b1)();var o=e.get(Fb.q).getModel(r);if(!o)throw(0,My.b1)();var a=[],s=Zb.OH.ordered(o).reverse().map((function(e){return Promise.resolve(e.provideDocumentColors(o,Tb.T.None)).then((function(e){if(Array.isArray(e)){var t,n=(0,tr.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;a.push({range:i.range,color:[i.color.red,i.color.green,i.color.blue,i.color.alpha]})}}catch(r){n.e(r)}finally{n.f()}}}))}));return Promise.all(s).then((function(){return a}))})),Vb.P.registerCommand("_executeColorPresentationProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1],a=o.uri,s=o.range;if(!(a instanceof Rb.o)||!Array.isArray(r)||4!==r.length||!Gy.e.isIRange(s))throw(0,My.b1)();var u=(0,Ti.Z)(r,4),l=u[0],c=u[1],d=u[2],h=u[3],f=e.get(Fb.q).getModel(a);if(!f)throw(0,My.b1)();var p={range:s,color:{red:l,green:c,blue:d,alpha:h}},g=[],v=Zb.OH.ordered(f).reverse().map((function(e){return Promise.resolve(e.provideColorPresentations(f,p,Tb.T.None)).then((function(e){Array.isArray(e)&&g.push.apply(g,(0,zt.Z)(e))}))}));return Promise.all(v).then((function(){return g}))}));var ZC=n(98921),FC=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},jC=function(e,t){return function(n,i){t(n,i,e)}},HC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this))._editor=e,a._codeEditorService=r,a._configurationService=o,a._localToDispose=a._register(new Ky.SL),a._decorationsIds=[],a._colorDatas=new Map,a._colorDecoratorIds=[],a._decorationsTypes=new Set,a._register(e.onDidChangeModel((function(){a._isEnabled=a.isEnabled(),a.onModelChanged()}))),a._register(e.onDidChangeModelLanguage((function(){return a.onModelChanged()}))),a._register(Zb.OH.onDidChange((function(){return a.onModelChanged()}))),a._register(e.onDidChangeConfiguration((function(){var e=a._isEnabled;a._isEnabled=a.isEnabled(),e!==a._isEnabled&&(a._isEnabled?a.onModelChanged():a.removeAllDecorations())}))),a._timeoutTimer=null,a._computePromise=null,a._isEnabled=a.isEnabled(),a.onModelChanged(),a}return(0,r.Z)(n,[{key:"isEnabled",value:function(){var e=this._editor.getModel();if(!e)return!1;var t=e.getLanguageIdentifier(),n=this._configurationService.getValue(t.language);if(n){var i=n.colorDecorators;if(i&&void 0!==i.enable&&!i.enable)return i.enable}return this._editor.getOption(15)}},{key:"dispose",value:function(){this.stop(),this.removeAllDecorations(),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"onModelChanged",value:function(){var e=this;if(this.stop(),this._isEnabled){var t=this._editor.getModel();t&&Zb.OH.has(t)&&(this._localToDispose.add(this._editor.onDidChangeModelContent((function(){e._timeoutTimer||(e._timeoutTimer=new Uy._F,e._timeoutTimer.cancelAndSet((function(){e._timeoutTimer=null,e.beginCompute()}),n.RECOMPUTE_TIME))}))),this.beginCompute())}}},{key:"beginCompute",value:function(){var e=this;this._computePromise=(0,Uy.PG)((function(t){var n=e._editor.getModel();return n?function(e,t){var n=[],i=Zb.OH.ordered(e).reverse().map((function(i){return Promise.resolve(i.provideDocumentColors(e,t)).then((function(e){if(Array.isArray(e)){var t,r=(0,tr.Z)(e);try{for(r.s();!(t=r.n()).done;){var o=t.value;n.push({colorInfo:o,provider:i})}}catch(a){r.e(a)}finally{r.f()}}}))}));return Promise.all(i).then((function(){return n}))}(n,t):Promise.resolve([])})),this._computePromise.then((function(t){e.updateDecorations(t),e.updateColorDecorators(t),e._computePromise=null}),My.dL)}},{key:"stop",value:function(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}},{key:"updateDecorations",value:function(e){var t=this,n=e.map((function(e){return{range:{startLineNumber:e.colorInfo.range.startLineNumber,startColumn:e.colorInfo.range.startColumn,endLineNumber:e.colorInfo.range.endLineNumber,endColumn:e.colorInfo.range.endColumn},options:Qy.qx.EMPTY}}));this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,n),this._colorDatas=new Map,this._decorationsIds.forEach((function(n,i){return t._colorDatas.set(n,e[i])}))}},{key:"updateColorDecorators",value:function(e){for(var t=this,n=[],i={},r=0;r<e.length&&n.length<500;r++){var o=e[r].colorInfo.color,a=o.red,s=o.green,u=o.blue,l=o.alpha,c=new RC.VS(Math.round(255*a),Math.round(255*s),Math.round(255*u),l),d=(0,NC.vp)("rgba(".concat(c.r,",").concat(c.g,",").concat(c.b,",").concat(c.a,")")).toString(16),h="rgba(".concat(c.r,", ").concat(c.g,", ").concat(c.b,", ").concat(c.a,")"),f="colorBox-"+d;this._decorationsTypes.has(f)||i[f]||this._codeEditorService.registerDecorationType(f,{before:{contentText:" ",border:"solid 0.1em #000",margin:"0.1em 0.2em 0 0.2em",width:"0.8em",height:"0.8em",backgroundColor:h},dark:{before:{border:"solid 0.1em #eee"}}},void 0,this._editor),i[f]=!0,n.push({range:{startLineNumber:e[r].colorInfo.range.startLineNumber,startColumn:e[r].colorInfo.range.startColumn,endLineNumber:e[r].colorInfo.range.endLineNumber,endColumn:e[r].colorInfo.range.endColumn},options:this._codeEditorService.resolveDecorationOptions(f,!0)})}this._decorationsTypes.forEach((function(e){i[e]||t._codeEditorService.removeDecorationType(e)})),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,n)}},{key:"removeAllDecorations",value:function(){var e=this;this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,[]),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,[]),this._decorationsTypes.forEach((function(t){e._codeEditorService.removeDecorationType(t)}))}},{key:"getColorData",value:function(e){var t=this,n=this._editor.getModel();if(!n)return null;var i=n.getDecorationsInRange(Gy.e.fromPositions(e,e)).filter((function(e){return t._colorDatas.has(e.id)}));return 0===i.length?null:this._colorDatas.get(i[0].id)}}],[{key:"get",value:function(e){return e.getContribution(this.ID)}}]),n}(Ky.JT);HC.ID="editor.contrib.colorDetector",HC.RECOMPUTE_TIME=1e3,HC=FC([jC(1,mb.$),jC(2,ZC.Ui)],HC),(0,Cy._K)(HC.ID,HC);var BC=n(49829),zC=function(){function e(t,n,r){(0,i.Z)(this,e),this.presentationIndex=r,this._onColorFlushed=new kw.Q5,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new kw.Q5,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new kw.Q5,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=t,this._color=t,this._colorPresentations=n}return(0,r.Z)(e,[{key:"color",get:function(){return this._color},set:function(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}},{key:"presentation",get:function(){return this.colorPresentations[this.presentationIndex]}},{key:"colorPresentations",get:function(){return this._colorPresentations},set:function(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}},{key:"selectNextColorPresentation",value:function(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}},{key:"guessColorPresentation",value:function(e,t){for(var n=0;n<this.colorPresentations.length;n++)if(t.toLowerCase()===this.colorPresentations[n].label){this.presentationIndex=n,this._onDidChangePresentation.fire(this.presentation);break}}},{key:"flushColor",value:function(){this._onColorFlushed.fire(this._color)}}]),e}(),WC=n(43257),VC=dw.$,YC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;(0,i.Z)(this,n),(a=t.call(this)).model=r,a.domNode=VC(".colorpicker-header"),dw.append(e,a.domNode),a.pickedColorNode=dw.append(a.domNode,VC(".picked-color"));var s=dw.append(a.domNode,VC(".original-color"));return s.style.backgroundColor=RC.Il.Format.CSS.format(a.model.originalColor)||"",a.backgroundColor=o.getColorTheme().getColor(Jy.yJ)||RC.Il.white,a._register((0,eb.Ic)((function(e,t){a.backgroundColor=e.getColor(Jy.yJ)||RC.Il.white}))),a._register(dw.addDisposableListener(a.pickedColorNode,dw.EventType.CLICK,(function(){return a.model.selectNextColorPresentation()}))),a._register(dw.addDisposableListener(s,dw.EventType.CLICK,(function(){a.model.color=a.model.originalColor,a.model.flushColor()}))),a._register(r.onDidChangeColor(a.onDidChangeColor,(0,Mb.Z)(a))),a._register(r.onDidChangePresentation(a.onDidChangePresentation,(0,Mb.Z)(a))),a.pickedColorNode.style.backgroundColor=RC.Il.Format.CSS.format(r.color)||"",a.pickedColorNode.classList.toggle("light",r.color.rgba.a<.5?a.backgroundColor.isLighter():r.color.isLighter()),a}return(0,r.Z)(n,[{key:"onDidChangeColor",value:function(e){this.pickedColorNode.style.backgroundColor=RC.Il.Format.CSS.format(e)||"",this.pickedColorNode.classList.toggle("light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}},{key:"onDidChangePresentation",value:function(){this.pickedColorNode.textContent=this.model.presentation?this.model.presentation.label:""}}]),n}(Ky.JT),UC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).model=r,a.pixelRatio=o,a.domNode=VC(".colorpicker-body"),dw.append(e,a.domNode),a.saturationBox=new KC(a.domNode,a.model,a.pixelRatio),a._register(a.saturationBox),a._register(a.saturationBox.onDidChange(a.onDidSaturationValueChange,(0,Mb.Z)(a))),a._register(a.saturationBox.onColorFlushed(a.flushColor,(0,Mb.Z)(a))),a.opacityStrip=new GC(a.domNode,a.model),a._register(a.opacityStrip),a._register(a.opacityStrip.onDidChange(a.onDidOpacityChange,(0,Mb.Z)(a))),a._register(a.opacityStrip.onColorFlushed(a.flushColor,(0,Mb.Z)(a))),a.hueStrip=new $C(a.domNode,a.model),a._register(a.hueStrip),a._register(a.hueStrip.onDidChange(a.onDidHueChange,(0,Mb.Z)(a))),a._register(a.hueStrip.onColorFlushed(a.flushColor,(0,Mb.Z)(a))),a}return(0,r.Z)(n,[{key:"flushColor",value:function(){this.model.flushColor()}},{key:"onDidSaturationValueChange",value:function(e){var t=e.s,n=e.v,i=this.model.color.hsva;this.model.color=new RC.Il(new RC.tx(i.h,t,n,i.a))}},{key:"onDidOpacityChange",value:function(e){var t=this.model.color.hsva;this.model.color=new RC.Il(new RC.tx(t.h,t.s,t.v,e))}},{key:"onDidHueChange",value:function(e){var t=this.model.color.hsva,n=360*(1-e);this.model.color=new RC.Il(new RC.tx(360===n?0:n,t.s,t.v,t.a))}},{key:"layout",value:function(){this.saturationBox.layout(),this.opacityStrip.layout(),this.hueStrip.layout()}}]),n}(Ky.JT),KC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).model=r,a.pixelRatio=o,a._onDidChange=new kw.Q5,a.onDidChange=a._onDidChange.event,a._onColorFlushed=new kw.Q5,a.onColorFlushed=a._onColorFlushed.event,a.domNode=VC(".saturation-wrap"),dw.append(e,a.domNode),a.canvas=document.createElement("canvas"),a.canvas.className="saturation-box",dw.append(a.domNode,a.canvas),a.selection=VC(".saturation-selection"),dw.append(a.domNode,a.selection),a.layout(),a._register(dw.addDisposableGenericMouseDownListner(a.domNode,(function(e){return a.onMouseDown(e)}))),a._register(a.model.onDidChangeColor(a.onDidChangeColor,(0,Mb.Z)(a))),a.monitor=null,a}return(0,r.Z)(n,[{key:"onMouseDown",value:function(e){var t=this;this.monitor=this._register(new Cw.Z);var n=dw.getDomNodePagePosition(this.domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.buttons,Cw.e,(function(e){return t.onDidChangePosition(e.posx-n.left,e.posy-n.top)}),(function(){return null}));var i=dw.addDisposableGenericMouseUpListner(document,(function(){t._onColorFlushed.fire(),i.dispose(),t.monitor&&(t.monitor.stopMonitoring(!0),t.monitor=null)}),!0)}},{key:"onDidChangePosition",value:function(e,t){var n=Math.max(0,Math.min(1,e/this.width)),i=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(n,i),this._onDidChange.fire({s:n,v:i})}},{key:"layout",value:function(){this.width=this.domNode.offsetWidth,this.height=this.domNode.offsetHeight,this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio,this.paint();var e=this.model.color.hsva;this.paintSelection(e.s,e.v)}},{key:"paint",value:function(){var e=this.model.color.hsva,t=new RC.Il(new RC.tx(e.h,1,1,1)),n=this.canvas.getContext("2d"),i=n.createLinearGradient(0,0,this.canvas.width,0);i.addColorStop(0,"rgba(255, 255, 255, 1)"),i.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),i.addColorStop(1,"rgba(255, 255, 255, 0)");var r=n.createLinearGradient(0,0,0,this.canvas.height);r.addColorStop(0,"rgba(0, 0, 0, 0)"),r.addColorStop(1,"rgba(0, 0, 0, 1)"),n.rect(0,0,this.canvas.width,this.canvas.height),n.fillStyle=RC.Il.Format.CSS.format(t),n.fill(),n.fillStyle=i,n.fill(),n.fillStyle=r,n.fill()}},{key:"paintSelection",value:function(e,t){this.selection.style.left="".concat(e*this.width,"px"),this.selection.style.top="".concat(this.height-t*this.height,"px")}},{key:"onDidChangeColor",value:function(){this.monitor&&this.monitor.isMonitoring()||this.paint()}}]),n}(Ky.JT),qC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this)).model=r,o._onDidChange=new kw.Q5,o.onDidChange=o._onDidChange.event,o._onColorFlushed=new kw.Q5,o.onColorFlushed=o._onColorFlushed.event,o.domNode=dw.append(e,VC(".strip")),o.overlay=dw.append(o.domNode,VC(".overlay")),o.slider=dw.append(o.domNode,VC(".slider")),o.slider.style.top="0px",o._register(dw.addDisposableGenericMouseDownListner(o.domNode,(function(e){return o.onMouseDown(e)}))),o.layout(),o}return(0,r.Z)(n,[{key:"layout",value:function(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;var e=this.getValue(this.model.color);this.updateSliderPosition(e)}},{key:"onMouseDown",value:function(e){var t=this,n=this._register(new Cw.Z),i=dw.getDomNodePagePosition(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),n.startMonitoring(e.target,e.buttons,Cw.e,(function(e){return t.onDidChangeTop(e.posy-i.top)}),(function(){return null}));var r=dw.addDisposableGenericMouseUpListner(document,(function(){t._onColorFlushed.fire(),r.dispose(),n.stopMonitoring(!0),t.domNode.classList.remove("grabbing")}),!0)}},{key:"onDidChangeTop",value:function(e){var t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}},{key:"updateSliderPosition",value:function(e){this.slider.style.top="".concat((1-e)*this.height,"px")}}]),n}(Ky.JT),GC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,e,r)).domNode.classList.add("opacity-strip"),o._register(r.onDidChangeColor(o.onDidChangeColor,(0,Mb.Z)(o))),o.onDidChangeColor(o.model.color),o}return(0,r.Z)(n,[{key:"onDidChangeColor",value:function(e){var t=e.rgba,n=t.r,i=t.g,r=t.b,o=new RC.Il(new RC.VS(n,i,r,1)),a=new RC.Il(new RC.VS(n,i,r,0));this.overlay.style.background="linear-gradient(to bottom, ".concat(o," 0%, ").concat(a," 100%)")}},{key:"getValue",value:function(e){return e.hsva.a}}]),n}(qC),$C=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,e,r)).domNode.classList.add("hue-strip"),o}return(0,r.Z)(n,[{key:"getValue",value:function(e){return 1-e.hsva.h/360}}]),n}(qC),QC=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;(0,i.Z)(this,n),(s=t.call(this)).model=r,s.pixelRatio=o,s._register((0,pb.fX)((function(){return s.layout()})));var u=VC(".colorpicker-widget");e.appendChild(u);var l=new YC(u,s.model,a);return s.body=new UC(u,s.model,s.pixelRatio),s._register(l),s._register(s.body),s}return(0,r.Z)(n,[{key:"layout",value:function(){this.body.layout()}}]),n}(WC.$),XC=function(){function e(t,n,r,o,a){var s=this;(0,i.Z)(this,e),this._computer=t,this._state=0,this._hoverTime=a,this._firstWaitScheduler=new Uy.pY((function(){return s._triggerAsyncComputation()}),0),this._secondWaitScheduler=new Uy.pY((function(){return s._triggerSyncComputation()}),0),this._loadingMessageScheduler=new Uy.pY((function(){return s._showLoadingMessage()}),0),this._asyncComputationPromise=null,this._asyncComputationPromiseDone=!1,this._completeCallback=n,this._errorCallback=r,this._progressCallback=o}return(0,r.Z)(e,[{key:"setHoverTime",value:function(e){this._hoverTime=e}},{key:"_firstWaitTime",value:function(){return this._hoverTime/2}},{key:"_secondWaitTime",value:function(){return this._hoverTime/2}},{key:"_loadingMessageTime",value:function(){return 3*this._hoverTime}},{key:"_triggerAsyncComputation",value:function(){var e=this;this._state=2,this._secondWaitScheduler.schedule(this._secondWaitTime()),this._computer.computeAsync?(this._asyncComputationPromiseDone=!1,this._asyncComputationPromise=(0,Uy.PG)((function(t){return e._computer.computeAsync(t)})),this._asyncComputationPromise.then((function(t){e._asyncComputationPromiseDone=!0,e._withAsyncResult(t)}),(function(t){return e._onError(t)}))):this._asyncComputationPromiseDone=!0}},{key:"_triggerSyncComputation",value:function(){this._computer.computeSync&&this._computer.onResult(this._computer.computeSync(),!0),this._asyncComputationPromiseDone?(this._state=0,this._onComplete(this._computer.getResult())):(this._state=3,this._onProgress(this._computer.getResult()))}},{key:"_showLoadingMessage",value:function(){3===this._state&&this._onProgress(this._computer.getResultWithLoadingMessage())}},{key:"_withAsyncResult",value:function(e){e&&this._computer.onResult(e,!1),3===this._state&&(this._state=0,this._onComplete(this._computer.getResult()))}},{key:"_onComplete",value:function(e){this._completeCallback(e)}},{key:"_onError",value:function(e){this._errorCallback?this._errorCallback(e):(0,My.dL)(e)}},{key:"_onProgress",value:function(e){this._progressCallback(e)}},{key:"start",value:function(e){if(0===e)0===this._state&&(this._state=1,this._firstWaitScheduler.schedule(this._firstWaitTime()),this._loadingMessageScheduler.schedule(this._loadingMessageTime()));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation()}}},{key:"cancel",value:function(){this._loadingMessageScheduler.cancel(),1===this._state&&this._firstWaitScheduler.cancel(),2===this._state&&(this._secondWaitScheduler.cancel(),this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null)),3===this._state&&this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null),this._state=0}}]),e}(),JC=n(61727),ek=dw.$,tk=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this)).containerDomNode=document.createElement("div"),e.containerDomNode.className="monaco-hover",e.containerDomNode.tabIndex=0,e.containerDomNode.setAttribute("role","tooltip"),e.contentsDomNode=document.createElement("div"),e.contentsDomNode.className="monaco-hover-content",e._scrollbar=e._register(new JC.s$(e.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),e.containerDomNode.appendChild(e._scrollbar.getDomNode()),e}return(0,r.Z)(n,[{key:"onContentsChanged",value:function(){this._scrollbar.scanDomNode()}}]),n}(Ky.JT);var nk=n(50816),ik=n(9696),rk=n(55585),ok=n(67537);function ak(e){if(e){"string"===typeof e&&(e=Rb.o.file(e));var t=(0,Bw.EZ)(e)||(e.scheme===rk.lg.file?e.fsPath:e.path);return gb.ED&&(0,ok.vY)(t)?sk(t):t}}function sk(e){return(0,ok.oP)(e)?e.charAt(0).toUpperCase()+e.slice(1):e}var uk=n(67404),lk=n(10405),ck=n(40782),dk=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},hk=function(e,t){return function(n,i){t(n,i,e)}},fk=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l,c,d,h){var f,p;return(0,i.Z)(this,n),(p=t.call(this,e,Object.assign(Object.assign({},o.getRawOptions()),{overflowWidgetsDomNode:o.getOverflowWidgetsDomNode()}),{},a,s,u,l,c,d,h))._parentEditor=o,p._overwriteOptions=r,(0,nw.Z)((f=(0,Mb.Z)(p),(0,iw.Z)(n.prototype)),"updateOptions",f).call(f,p._overwriteOptions),p._register(o.onDidChangeConfiguration((function(e){return p._onParentConfigurationChanged(e)}))),p}return(0,r.Z)(n,[{key:"getParentEditor",value:function(){return this._parentEditor}},{key:"_onParentConfigurationChanged",value:function(e){(0,nw.Z)((0,iw.Z)(n.prototype),"updateOptions",this).call(this,this._parentEditor.getRawOptions()),(0,nw.Z)((0,iw.Z)(n.prototype),"updateOptions",this).call(this,this._overwriteOptions)}},{key:"updateOptions",value:function(e){lk.jB(this._overwriteOptions,e,!0),(0,nw.Z)((0,iw.Z)(n.prototype),"updateOptions",this).call(this,this._overwriteOptions)}}]),n}(wy.Gm);fk=dk([hk(3,cw.TG),hk(4,mb.$),hk(5,Vb.H),hk(6,Ey.i6),hk(7,eb.XE),hk(8,jw.lT),hk(9,ck.F)],fk);var pk=n(2523),gk=n(12394),vk=new RC.Il(new RC.VS(0,122,204)),mk={showArrow:!0,showFrame:!0,className:"",frameColor:vk,arrowColor:vk,keepEditorSelection:!1},_k=function(){function e(t,n,r,o,a,s){(0,i.Z)(this,e),this.id="",this.domNode=t,this.afterLineNumber=n,this.afterColumn=r,this.heightInLines=o,this._onDomNodeTop=a,this._onComputedHeight=s}return(0,r.Z)(e,[{key:"onDomNodeTop",value:function(e){this._onDomNodeTop(e)}},{key:"onComputedHeight",value:function(e){this._onComputedHeight(e)}}]),e}(),yk=function(){function e(t,n){(0,i.Z)(this,e),this._id=t,this._domNode=n}return(0,r.Z)(e,[{key:"getId",value:function(){return this._id}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return null}}]),e}(),bk=function(){function e(t){(0,i.Z)(this,e),this._editor=t,this._ruleName=e._IdGenerator.nextId(),this._decorations=[],this._color=null,this._height=-1}return(0,r.Z)(e,[{key:"dispose",value:function(){this.hide(),dw.removeCSSRulesContainingSelector(this._ruleName)}},{key:"color",set:function(e){this._color!==e&&(this._color=e,this._updateStyle())}},{key:"height",set:function(e){this._height!==e&&(this._height=e,this._updateStyle())}},{key:"_updateStyle",value:function(){dw.removeCSSRulesContainingSelector(this._ruleName),dw.createCSSRule(".monaco-editor ".concat(this._ruleName),"border-style: solid; border-color: transparent; border-bottom-color: ".concat(this._color,"; border-width: ").concat(this._height,"px; bottom: -").concat(this._height,"px; margin-left: -").concat(this._height,"px; "))}},{key:"show",value:function(e){this._decorations=this._editor.deltaDecorations(this._decorations,[{range:Gy.e.fromPositions(e),options:{className:this._ruleName,stickiness:1}}])}},{key:"hide",value:function(){this._editor.deltaDecorations(this._decorations,[])}}]),e}();bk._IdGenerator=new gk.R(".arrow-decoration-");var wk=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.Z)(this,e),this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._positionMarkerId=[],this._viewZone=null,this._disposables=new Ky.SL,this.container=null,this._isShowing=!1,this.editor=t,this.options=lk.I8(r),lk.jB(this.options,mk,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange((function(e){var t=n._getWidth(e);n.domNode.style.width=t+"px",n.domNode.style.left=n._getLeft(e)+"px",n._onWidth(t)})))}return(0,r.Z)(e,[{key:"dispose",value:function(){var e=this;this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones((function(t){e._viewZone&&t.removeZone(e._viewZone.id),e._viewZone=null})),this.editor.deltaDecorations(this._positionMarkerId,[]),this._positionMarkerId=[],this._disposables.dispose()}},{key:"create",value:function(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new bk(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}},{key:"style",value:function(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}},{key:"_applyStyles",value:function(){if(this.container&&this.options.frameColor){var e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){var t=this.options.arrowColor.toString();this._arrow.color=t}}},{key:"_getWidth",value:function(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}},{key:"_getLeft",value:function(e){return e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?e.minimap.minimapWidth:0}},{key:"_onViewZoneTop",value:function(e){this.domNode.style.top=e+"px"}},{key:"_onViewZoneHeight",value:function(e){if(this.domNode.style.height="".concat(e,"px"),this.container){var t=e-this._decoratingElementsHeight();this.container.style.height="".concat(t,"px");var n=this.editor.getLayoutInfo();this._doLayout(t,this._getWidth(n))}this._resizeSash&&this._resizeSash.layout()}},{key:"position",get:function(){var e=(0,Ti.Z)(this._positionMarkerId,1)[0];if(e){var t=this.editor.getModel();if(t){var n=t.getDecorationRange(e);if(n)return n.getStartPosition()}}}},{key:"show",value:function(e,t){var n=Gy.e.isIRange(e)?Gy.e.lift(e):Gy.e.fromPositions(e);this._isShowing=!0,this._showImpl(n,t),this._isShowing=!1,this._positionMarkerId=this.editor.deltaDecorations(this._positionMarkerId,[{range:n,options:Qy.qx.EMPTY}])}},{key:"hide",value:function(){var e=this;this._viewZone&&(this.editor.changeViewZones((function(t){e._viewZone&&t.removeZone(e._viewZone.id)})),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._arrow&&this._arrow.hide()}},{key:"_decoratingElementsHeight",value:function(){var e=this.editor.getOption(55),t=0;this.options.showArrow&&(t+=2*Math.round(e/3));this.options.showFrame&&(t+=2*Math.round(e/9));return t}},{key:"_showImpl",value:function(e,t){var n=this,i=e.getStartPosition(),r=this.editor.getLayoutInfo(),o=this._getWidth(r);this.domNode.style.width="".concat(o,"px"),this.domNode.style.left=this._getLeft(r)+"px";var a=document.createElement("div");a.style.overflow="hidden";var s=this.editor.getOption(55),u=Math.max(12,this.editor.getLayoutInfo().height/s*.8);t=Math.min(t,u);var l=0,c=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(s/3),this._arrow.height=l,this._arrow.show(i)),this.options.showFrame&&(c=Math.round(s/9)),this.editor.changeViewZones((function(e){n._viewZone&&e.removeZone(n._viewZone.id),n._overlayWidget&&(n.editor.removeOverlayWidget(n._overlayWidget),n._overlayWidget=null),n.domNode.style.top="-1000px",n._viewZone=new _k(a,i.lineNumber,i.column,t,(function(e){return n._onViewZoneTop(e)}),(function(e){return n._onViewZoneHeight(e)})),n._viewZone.id=e.addZone(n._viewZone),n._overlayWidget=new yk("vs.editor.contrib.zoneWidget"+n._viewZone.id,n.domNode),n.editor.addOverlayWidget(n._overlayWidget)})),this.container&&this.options.showFrame){var d=this.options.frameWidth?this.options.frameWidth:c;this.container.style.borderTopWidth=d+"px",this.container.style.borderBottomWidth=d+"px"}var h=t*s-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+"px",this.container.style.height=h+"px",this.container.style.overflow="hidden"),this._doLayout(h,o),this.options.keepEditorSelection||this.editor.setSelection(e);var f=this.editor.getModel();if(f){var p=e.endLineNumber+1;p<=f.getLineCount()?this.revealLine(p,!1):this.revealLine(f.getLineCount(),!0)}}},{key:"revealLine",value:function(e,t){t?this.editor.revealLineInCenter(e,0):this.editor.revealLine(e,0)}},{key:"setCssClass",value:function(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}},{key:"_onWidth",value:function(e){}},{key:"_doLayout",value:function(e,t){}},{key:"_relayout",value:function(e){var t=this;this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones((function(n){t._viewZone&&(t._viewZone.heightInLines=e,n.layoutZone(t._viewZone.id))}))}},{key:"_initSash",value:function(){var e,t=this;this._resizeSash||(this._resizeSash=this._disposables.add(new pk.g(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.hide(),this._resizeSash.state=0),this._disposables.add(this._resizeSash.onDidStart((function(n){t._viewZone&&(e={startY:n.startY,heightInLines:t._viewZone.heightInLines})}))),this._disposables.add(this._resizeSash.onDidEnd((function(){e=void 0}))),this._disposables.add(this._resizeSash.onDidChange((function(n){if(e){var i=(n.currentY-e.startY)/t.editor.getOption(55),r=i<0?Math.ceil(i):Math.floor(i),o=e.heightInLines+r;o>5&&o<35&&t._relayout(o)}}))))}},{key:"getHorizontalSashLeft",value:function(){return 0}},{key:"getHorizontalSashTop",value:function(){return(null===this.domNode.style.height?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}},{key:"getHorizontalSashWidth",value:function(){var e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}]),e}(),Ck=n(61680),kk=n(85733),Sk=n(84039),xk=n(31737),Lk=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,e,r))._actions=[],o._contextMenuProvider=r.contextMenuProvider,o.actions=r.actions||[],o.actionProvider=r.actionProvider,o.menuClassName=r.menuClassName||"",o.menuAsChild=!!r.menuAsChild,o}return(0,r.Z)(n,[{key:"menuOptions",get:function(){return this._menuOptions},set:function(e){this._menuOptions=e}},{key:"actions",get:function(){return this.actionProvider?this.actionProvider.getActions():this._actions},set:function(e){this._actions=e}},{key:"show",value:function(){var e=this;(0,nw.Z)((0,iw.Z)(n.prototype),"show",this).call(this),this.element.classList.add("active"),this._contextMenuProvider.showContextMenu({getAnchor:function(){return e.element},getActions:function(){return e.actions},getActionsContext:function(){return e.menuOptions?e.menuOptions.context:null},getActionViewItem:function(t){return e.menuOptions&&e.menuOptions.actionViewItemProvider?e.menuOptions.actionViewItemProvider(t):void 0},getKeyBinding:function(t){return e.menuOptions&&e.menuOptions.getKeyBinding?e.menuOptions.getKeyBinding(t):void 0},getMenuClassName:function(){return e.menuClassName},onHide:function(){return e.onHide()},actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this.menuAsChild?this.element:void 0})}},{key:"hide",value:function(){(0,nw.Z)((0,iw.Z)(n.prototype),"hide",this).call(this)}},{key:"onHide",value:function(){this.hide(),this.element.classList.remove("active")}}]),n}(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;(0,i.Z)(this,n),(o=t.call(this))._onDidChangeVisibility=new kw.Q5,o.onDidChangeVisibility=o._onDidChangeVisibility.event,o._element=(0,dw.append)(e,(0,dw.$)(".monaco-dropdown")),o._label=(0,dw.append)(o._element,(0,dw.$)(".dropdown-label"));var a=r.labelRenderer;a||(a=function(e){return e.textContent=r.label||"",null});for(var s=0,u=[dw.EventType.CLICK,dw.EventType.MOUSE_DOWN,Sw.t.Tap];s<u.length;s++){var l=u[s];o._register((0,dw.addDisposableListener)(o.element,l,(function(e){return dw.EventHelper.stop(e,!0)})))}for(var c=0,d=[dw.EventType.MOUSE_DOWN,Sw.t.Tap];c<d.length;c++){var h=d[c];o._register((0,dw.addDisposableListener)(o._label,h,(function(e){e instanceof MouseEvent&&e.detail>1||(o.visible?o.hide():o.show())})))}o._register((0,dw.addDisposableListener)(o._label,dw.EventType.KEY_UP,(function(e){var t=new xk.y(e);(t.equals(3)||t.equals(10))&&(dw.EventHelper.stop(e,!0),o.visible?o.hide():o.show())})));var f=a(o._label);return f&&o._register(f),o._register(Sw.o.addTarget(o._label)),o}return(0,r.Z)(n,[{key:"element",get:function(){return this._element}},{key:"show",value:function(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}},{key:"hide",value:function(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}},{key:"dispose",value:function(){(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}]),n}(hw.Wi)),Ek=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Object.create(null);return(0,i.Z)(this,n),(a=t.call(this,null,e,s)).actionItem=null,a._onDidChangeVisibility=a._register(new kw.Q5),a.menuActionsOrProvider=r,a.contextMenuProvider=o,a.options=s,a.options.actionRunner&&(a.actionRunner=a.options.actionRunner),a}return(0,r.Z)(n,[{key:"render",value:function(e){var t=this;this.actionItem=e;var n=Array.isArray(this.menuActionsOrProvider),i={contextMenuProvider:this.contextMenuProvider,labelRenderer:function(e){var n;t.element=(0,dw.append)(e,(0,dw.$)("a.action-label"));var i=[];return"string"===typeof t.options.classNames?i=t.options.classNames.split(/\s+/g).filter((function(e){return!!e})):t.options.classNames&&(i=t.options.classNames),i.find((function(e){return"icon"===e}))||i.push("codicon"),(n=t.element.classList).add.apply(n,(0,zt.Z)(i)),t.element.setAttribute("role","button"),t.element.setAttribute("aria-haspopup","true"),t.element.setAttribute("aria-expanded","false"),t.element.title=t._action.label||"",null},menuAsChild:this.options.menuAsChild,actions:n?this.menuActionsOrProvider:void 0,actionProvider:n?void 0:this.menuActionsOrProvider};if(this.dropdownMenu=this._register(new Lk(e,i)),this._register(this.dropdownMenu.onDidChangeVisibility((function(e){var n;null===(n=t.element)||void 0===n||n.setAttribute("aria-expanded","".concat(e)),t._onDidChangeVisibility.fire(e)}))),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){var r=this;this.dropdownMenu.menuOptions=Object.assign(Object.assign({},this.dropdownMenu.menuOptions),{get anchorAlignment(){return r.options.anchorAlignmentProvider()}})}this.updateEnabled()}},{key:"setActionContext",value:function(e){(0,nw.Z)((0,iw.Z)(n.prototype),"setActionContext",this).call(this,e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}},{key:"updateEnabled",value:function(){var e,t,n=!this.getAction().enabled;null===(e=this.actionItem)||void 0===e||e.classList.toggle("disabled",n),null===(t=this.element)||void 0===t||t.classList.toggle("disabled",n)}}]),n}(Sk.Y),Nk=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Dk=function(e,t){return function(n,i){t(n,i,e)}};function Mk(e,t,n,i,r,o){var a=e.getActions(t);return function(e,t,n){var i,r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"navigation",a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Number.MAX_SAFE_INTEGER,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:function(){return!1};Array.isArray(t)?(i=t,r=t):(i=t.primary,r=t.secondary);var u,l=new Set,c=(0,tr.Z)(e);try{for(c.s();!(u=c.n()).done;){var d=(0,Ti.Z)(u.value,2),h=d[0],f=d[1],p=void 0;h===o?p=i:(p=r).length>0&&p.push(new hw.Z0);var g,v=(0,tr.Z)(f);try{for(v.s();!(g=v.n()).done;){var m=g.value;n&&(m=m instanceof tb.U8&&m.alt?m.alt:m);var _=p.push(m);m instanceof hw.wY&&l.add({group:h,action:m,index:_-1})}}catch(D){v.e(D)}finally{v.f()}}}catch(D){c.e(D)}finally{c.f()}var y,b=(0,tr.Z)(l);try{for(b.s();!(y=b.n()).done;){var w=y.value,C=w.group,k=w.action,S=w.index,x=C===o?i:r,L=k.actions;(L.length<=1||x.length+L.length-2<=a)&&s(k,C,x.length)&&x.splice.apply(x,[S,1].concat((0,zt.Z)(L)))}}catch(D){b.e(D)}finally{b.f()}if(i!==r&&i.length>a){var E,N=i.splice(a,i.length-a);(E=r).unshift.apply(E,(0,zt.Z)(N).concat([new hw.Z0]))}}(a,n,!1,i,r,o),function(e){var t,n=new Ky.SL,i=(0,tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r,o=(0,Ti.Z)(t.value,2)[1],a=(0,tr.Z)(o);try{for(a.s();!(r=a.n()).done;){var s=r.value;n.add(s)}}catch(u){a.e(u)}finally{a.f()}}}catch(u){i.e(u)}finally{i.f()}return n}(a)}var Tk=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,void 0,e,{icon:!(!e.class&&!e.item.icon),label:!e.class&&!e.item.icon}))._keybindingService=r,a._notificationService=o,a._wantsAltCommand=!1,a._itemClassDispose=a._register(new Ky.XK),a._altKey=dw.ModifierKeyEmitter.getInstance(),a}return(0,r.Z)(n,[{key:"_menuItemAction",get:function(){return this._action}},{key:"_commandAction",get:function(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}},{key:"onClick",value:function(e){var t=this;e.preventDefault(),e.stopPropagation(),this.actionRunner.run(this._commandAction,this._context).catch((function(e){return t._notificationService.error(e)}))}},{key:"render",value:function(e){var t=this;(0,nw.Z)((0,iw.Z)(n.prototype),"render",this).call(this,e),e.classList.add("menu-entry"),this._updateItemClass(this._menuItemAction.item);var i=!1,r=this._altKey.keyStatus.altKey||(gb.ED||gb.IJ)&&this._altKey.keyStatus.shiftKey,o=function(){var e=i&&r;e!==t._wantsAltCommand&&(t._wantsAltCommand=e,t.updateLabel(),t.updateTooltip(),t.updateClass())};this._menuItemAction.alt&&this._register(this._altKey.event((function(e){r=e.altKey||(gb.ED||gb.IJ)&&e.shiftKey,o()}))),this._register((0,Ck.jt)(e,"mouseleave")((function(e){i=!1,o()}))),this._register((0,Ck.jt)(e,"mouseenter")((function(e){i=!0,o()})))}},{key:"updateLabel",value:function(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}},{key:"updateTooltip",value:function(){if(this.label){var e=this._keybindingService.lookupKeybinding(this._commandAction.id),t=e&&e.getLabel(),n=this._commandAction.tooltip||this._commandAction.label,i=t?(0,ky.N)("titleAndKb","{0} ({1})",n,t):n;if(!this._wantsAltCommand&&this._menuItemAction.alt){var r=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,o=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id),a=o&&o.getLabel(),s=a?(0,ky.N)("titleAndKb","{0} ({1})",r,a):r;i+="\n[".concat(kk.xo.modifierLabels[gb.OS].altKey,"] ").concat(s)}this.label.title=i}}},{key:"updateClass",value:function(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.item))}},{key:"_updateItemClass",value:function(e){var t;this._itemClassDispose.value=void 0;var n=this.element,i=this.label;if(n&&i){var r=this._commandAction.checked&&(null===(t=e.toggled)||void 0===t?void 0:t.icon)?e.toggled.icon:e.icon;if(r)if(eb.kS.isThemeIcon(r)){var o,a=eb.kS.asClassNameArray(r);(o=i.classList).add.apply(o,(0,zt.Z)(a)),this._itemClassDispose.value=(0,Ky.OF)((function(){var e;(e=i.classList).remove.apply(e,(0,zt.Z)(a))}))}else r.light&&i.style.setProperty("--menu-entry-icon-light",(0,dw.asCSSUrl)(r.light)),r.dark&&i.style.setProperty("--menu-entry-icon-dark",(0,dw.asCSSUrl)(r.dark)),i.classList.add("icon"),this._itemClassDispose.value=(0,Ky.OF)((function(){i.classList.remove("icon"),i.style.removeProperty("--menu-entry-icon-light"),i.style.removeProperty("--menu-entry-icon-dark")}))}}}]),n}(Sk.g);Tk=Nk([Dk(1,pw.d),Dk(2,jw.lT)],Tk);var Ok=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){return(0,i.Z)(this,n),t.call(this,e,{getActions:function(){return e.actions}},r,{menuAsChild:!0,classNames:eb.kS.isThemeIcon(e.item.icon)?eb.kS.asClassName(e.item.icon):void 0})}return(0,r.Z)(n,[{key:"render",value:function(e){if((0,nw.Z)((0,iw.Z)(n.prototype),"render",this).call(this,e),this.element){e.classList.add("menu-entry");var t=this._action.item.icon;t&&!eb.kS.isThemeIcon(t)&&(this.element.classList.add("icon"),t.light&&this.element.style.setProperty("--menu-entry-icon-light",(0,dw.asCSSUrl)(t.light)),t.dark&&this.element.style.setProperty("--menu-entry-icon-dark",(0,dw.asCSSUrl)(t.dark)))}}}]),n}(Ek);function Ik(e,t){return t instanceof tb.U8?e.createInstance(Tk,t):t instanceof tb.NZ?e.createInstance(Ok,t):void 0}Ok=Nk([Dk(1,fw.i)],Ok);var Ak,Rk=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Pk=function(e,t){return function(n,i){t(n,i,e)}},Zk=(0,cw.yh)("IPeekViewService");(0,yC.z)(Zk,function(){function e(){(0,i.Z)(this,e),this._widgets=new Map}return(0,r.Z)(e,[{key:"addExclusiveWidget",value:function(e,t){var n=this,i=this._widgets.get(e);i&&(i.listener.dispose(),i.widget.dispose());this._widgets.set(e,{widget:t,listener:t.onDidClose((function(){var i=n._widgets.get(e);i&&i.widget===t&&(i.listener.dispose(),n._widgets.delete(e))}))})}}]),e}()),function(e){e.inPeekEditor=new Ey.uy("inReferenceSearchEditor",!0,ky.N("inReferenceSearchEditor","Whether the current code editor is embedded inside peek")),e.notInPeekEditor=e.inPeekEditor.toNegated()}(Ak||(Ak={}));var Fk=function(){function e(t,n){(0,i.Z)(this,e),t instanceof fk&&Ak.inPeekEditor.bindTo(n)}return(0,r.Z)(e,[{key:"dispose",value:function(){}}]),e}();Fk.ID="editor.contrib.referenceController",Fk=Rk([Pk(1,Ey.i6)],Fk),(0,Cy._K)(Fk.ID,Fk);var jk={headerBackgroundColor:RC.Il.white,primaryHeadingColor:RC.Il.fromHex("#333333"),secondaryHeadingColor:RC.Il.fromHex("#6c6c6cb3")},Hk=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,e,r)).instantiationService=o,a._onDidClose=new kw.Q5,a.onDidClose=a._onDidClose.event,lk.jB(a.options,jk,!1),a}return(0,r.Z)(n,[{key:"dispose",value:function(){this.disposed||(this.disposed=!0,(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this),this._onDidClose.fire(this))}},{key:"style",value:function(e){var t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),(0,nw.Z)((0,iw.Z)(n.prototype),"style",this).call(this,e)}},{key:"_applyStyles",value:function(){(0,nw.Z)((0,iw.Z)(n.prototype),"_applyStyles",this).call(this);var e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}},{key:"_fillContainer",value:function(e){this.setCssClass("peekview-widget"),this._headElement=dw.$(".head"),this._bodyElement=dw.$(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}},{key:"_fillHead",value:function(e,t){var n=this,i=dw.$(".peekview-title");dw.append(this._headElement,i),dw.addStandardDisposableListener(i,"click",(function(e){return n._onTitleClick(e)})),this._fillTitleIcon(i),this._primaryHeading=dw.$("span.filename"),this._secondaryHeading=dw.$("span.dirname"),this._metaHeading=dw.$("span.meta"),dw.append(i,this._primaryHeading,this._secondaryHeading,this._metaHeading);var r=dw.$(".peekview-actions");dw.append(this._headElement,r);var o=this._getActionBarOptions();this._actionbarWidget=new uk.o(r,o),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new hw.aU("peekview.close",ky.N("label.close","Close"),xw.lA.close.classNames,!0,(function(){return n.dispose(),Promise.resolve()})),{label:!1,icon:!0})}},{key:"_fillTitleIcon",value:function(e){}},{key:"_getActionBarOptions",value:function(){return{actionViewItemProvider:Ik.bind(void 0,this.instantiationService),orientation:0}}},{key:"_onTitleClick",value:function(e){}},{key:"setTitle",value:function(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute("aria-label",e),t?this._secondaryHeading.innerText=t:dw.clearNode(this._secondaryHeading))}},{key:"setMetaTitle",value:function(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,dw.show(this._metaHeading)):dw.hide(this._metaHeading))}},{key:"_doLayout",value:function(e,t){if(!this._isShowing&&e<0)this.dispose();else{var n=Math.ceil(1.2*this.editor.getOption(55)),i=Math.round(e-(n+2));this._doLayoutHead(n,t),this._doLayoutBody(i,t)}}},{key:"_doLayoutHead",value:function(e,t){this._headElement&&(this._headElement.style.height="".concat(e,"px"),this._headElement.style.lineHeight=this._headElement.style.height)}},{key:"_doLayoutBody",value:function(e,t){this._bodyElement&&(this._bodyElement.style.height="".concat(e,"px"))}}]),n}(wk);Hk=Rk([Pk(2,cw.TG)],Hk);var Bk,zk=(0,Jy.P6)("peekViewTitle.background",{dark:"#1E1E1E",light:"#FFFFFF",hc:"#0C141F"},ky.N("peekViewTitleBackground","Background color of the peek view title area.")),Wk=(0,Jy.P6)("peekViewTitleLabel.foreground",{dark:"#FFFFFF",light:"#333333",hc:"#FFFFFF"},ky.N("peekViewTitleForeground","Color of the peek view title.")),Vk=(0,Jy.P6)("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161e6",hc:"#FFFFFF99"},ky.N("peekViewTitleInfoForeground","Color of the peek view title info.")),Yk=(0,Jy.P6)("peekView.border",{dark:"#007acc",light:"#007acc",hc:Jy.lR},ky.N("peekViewBorder","Color of the peek view borders and arrow.")),Uk=(0,Jy.P6)("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hc:RC.Il.black},ky.N("peekViewResultsBackground","Background color of the peek view result list.")),Kk=(0,Jy.P6)("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hc:RC.Il.white},ky.N("peekViewResultsMatchForeground","Foreground color for line nodes in the peek view result list.")),qk=(0,Jy.P6)("peekViewResult.fileForeground",{dark:RC.Il.white,light:"#1E1E1E",hc:RC.Il.white},ky.N("peekViewResultsFileForeground","Foreground color for file nodes in the peek view result list.")),Gk=(0,Jy.P6)("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hc:null},ky.N("peekViewResultsSelectionBackground","Background color of the selected entry in the peek view result list.")),$k=(0,Jy.P6)("peekViewResult.selectionForeground",{dark:RC.Il.white,light:"#6C6C6C",hc:RC.Il.white},ky.N("peekViewResultsSelectionForeground","Foreground color of the selected entry in the peek view result list.")),Qk=(0,Jy.P6)("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hc:RC.Il.black},ky.N("peekViewEditorBackground","Background color of the peek view editor.")),Xk=(0,Jy.P6)("peekViewEditorGutter.background",{dark:Qk,light:Qk,hc:Qk},ky.N("peekViewEditorGutterBackground","Background color of the gutter in the peek view editor.")),Jk=(0,Jy.P6)("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hc:null},ky.N("peekViewResultsMatchHighlight","Match highlight color in the peek view result list.")),eS=(0,Jy.P6)("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hc:null},ky.N("peekViewEditorMatchHighlight","Match highlight color in the peek view editor.")),tS=(0,Jy.P6)("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hc:Jy.xL},ky.N("peekViewEditorMatchHighlightBorder","Match highlight border in the peek view editor.")),nS=n(55046);!function(e){e.className=function(e){switch(e){case nS.Z.Ignore:return"severity-ignore "+xw.lA.info.classNames;case nS.Z.Info:return xw.lA.info.classNames;case nS.Z.Warning:return xw.lA.warning.classNames;case nS.Z.Error:return xw.lA.error.classNames;default:return""}}}(Bk||(Bk={})),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.Jp);if(n){var i=xw.lA.error.cssSelector;t.addRule("\n\t\t\t.monaco-editor .zone-widget ".concat(i,",\n\t\t\t.markers-panel .marker-icon").concat(i,",\n\t\t\t.extensions-viewlet > .extensions ").concat(i," {\n\t\t\t\tcolor: ").concat(n,";\n\t\t\t}\n\t\t"))}var r=e.getColor(Jy.BO);if(r){var o=xw.lA.warning.cssSelector;t.addRule("\n\t\t\t.monaco-editor .zone-widget ".concat(o,",\n\t\t\t.markers-panel .marker-icon").concat(o,",\n\t\t\t.extensions-viewlet > .extensions ").concat(o,",\n\t\t\t.extension-editor ").concat(o," {\n\t\t\t\tcolor: ").concat(r,";\n\t\t\t}\n\t\t"))}var a=e.getColor(Jy.OL);if(a){var s=xw.lA.info.cssSelector;t.addRule("\n\t\t\t.monaco-editor .zone-widget ".concat(s,",\n\t\t\t.markers-panel .marker-icon").concat(s,",\n\t\t\t.extensions-viewlet > .extensions ").concat(s,",\n\t\t\t.extension-editor ").concat(s," {\n\t\t\t\tcolor: ").concat(a,";\n\t\t\t}\n\t\t"))}}));var iS=n(5399),rS=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},oS=function(e,t){return function(n,i){t(n,i,e)}},aS=function(){function e(t,n,r,o,a){var s=this;(0,i.Z)(this,e),this._openerService=o,this._labelService=a,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new Ky.SL,this._editor=n;var u=document.createElement("div");u.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),u.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),u.appendChild(this._relatedBlock),this._disposables.add(dw.addStandardDisposableListener(this._relatedBlock,"click",(function(e){e.preventDefault();var t=s._relatedDiagnostics.get(e.target);t&&r(t)}))),this._scrollable=new JC.NB(u,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:3,verticalScrollbarSize:3}),t.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((function(e){u.style.left="-".concat(e.scrollLeft,"px"),u.style.top="-".concat(e.scrollTop,"px")}))),this._disposables.add(this._scrollable)}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Ky.B9)(this._disposables)}},{key:"update",value:function(e){var t=this,n=e.source,i=e.message,r=e.relatedInformation,o=e.code,a=((null===n||void 0===n?void 0:n.length)||0)+"()".length;o&&(a+="string"===typeof o?o.length:o.value.length);var s=(0,Ib.uq)(i);this._lines=s.length,this._longestLineLength=0;var u,l=(0,tr.Z)(s);try{for(l.s();!(u=l.n()).done;){var c=u.value;this._longestLineLength=Math.max(c.length+a,this._longestLineLength)}}catch(N){l.e(N)}finally{l.f()}dw.clearNode(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);var d,h=this._messageBlock,f=(0,tr.Z)(s);try{for(f.s();!(d=f.n()).done;){var p=d.value;(h=document.createElement("div")).innerText=p,""===p&&(h.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(h)}}catch(N){f.e(N)}finally{f.f()}if(n||o){var g=document.createElement("span");if(g.classList.add("details"),h.appendChild(g),n){var v=document.createElement("span");v.innerText=n,v.classList.add("source"),g.appendChild(v)}if(o)if("string"===typeof o){var m=document.createElement("span");m.innerText="(".concat(o,")"),m.classList.add("code"),g.appendChild(m)}else{this._codeLink=dw.$("a.code-link"),this._codeLink.setAttribute("href","".concat(o.target.toString())),this._codeLink.onclick=function(e){t._openerService.open(o.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()},dw.append(this._codeLink,dw.$("span")).innerText=o.value,g.appendChild(this._codeLink)}}if(dw.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),(0,Ny.Of)(r)){var _=this._relatedBlock.appendChild(document.createElement("div"));_.style.paddingTop="".concat(Math.floor(.66*this._editor.getOption(55)),"px"),this._lines+=1;var y,b=(0,tr.Z)(r);try{for(b.s();!(y=b.n()).done;){var w=y.value,C=document.createElement("div"),k=document.createElement("a");k.classList.add("filename"),k.innerText="".concat(ak(w.resource),"(").concat(w.startLineNumber,", ").concat(w.startColumn,"): "),k.title=this._labelService.getUriLabel(w.resource),this._relatedDiagnostics.set(k,w);var S=document.createElement("span");S.innerText=w.message,C.appendChild(k),C.appendChild(S),this._lines+=1,_.appendChild(C)}}catch(N){b.e(N)}finally{b.f()}}var x=this._editor.getOption(40),L=Math.ceil(x.typicalFullwidthCharacterWidth*this._longestLineLength*.75),E=x.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:L,scrollHeight:E})}},{key:"layout",value:function(e,t){this._scrollable.getDomNode().style.height="".concat(e,"px"),this._scrollable.getDomNode().style.width="".concat(t,"px"),this._scrollable.setScrollDimensions({width:t,height:e})}},{key:"getHeightInLines",value:function(){return Math.min(17,this._lines)}},{key:"getAriaLabel",value:function(e){var t="";switch(e.severity){case Fw.ZL.Error:t=ky.N("Error","Error");break;case Fw.ZL.Warning:t=ky.N("Warning","Warning");break;case Fw.ZL.Info:t=ky.N("Info","Info");break;case Fw.ZL.Hint:t=ky.N("Hint","Hint")}var n=ky.N("marker aria","{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn),i=this._editor.getModel();if(i&&e.startLineNumber<=i.getLineCount()&&e.startLineNumber>=1){var r=i.getLineContent(e.startLineNumber);n="".concat(r,", ").concat(n)}return n}}]),e}(),sS=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l){var c;return(0,i.Z)(this,n),(c=t.call(this,e,{showArrow:!0,showFrame:!0,isAccessible:!0},s))._themeService=r,c._openerService=o,c._menuService=a,c._contextKeyService=u,c._labelService=l,c._callOnDispose=new Ky.SL,c._onDidSelectRelatedInformation=new kw.Q5,c.onDidSelectRelatedInformation=c._onDidSelectRelatedInformation.event,c._severity=Fw.ZL.Warning,c._backgroundColor=RC.Il.white,c._applyTheme(r.getColorTheme()),c._callOnDispose.add(r.onDidColorThemeChange(c._applyTheme.bind((0,Mb.Z)(c)))),c.create(),c}return(0,r.Z)(n,[{key:"_applyTheme",value:function(e){this._backgroundColor=e.getColor(pS);var t=dS;this._severity===Fw.ZL.Warning?t=hS:this._severity===Fw.ZL.Info&&(t=fS);var n=e.getColor(t);this.style({arrowColor:n,frameColor:n,headerBackgroundColor:this._backgroundColor,primaryHeadingColor:e.getColor(Wk),secondaryHeadingColor:e.getColor(Vk)})}},{key:"_applyStyles",value:function(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),(0,nw.Z)((0,iw.Z)(n.prototype),"_applyStyles",this).call(this)}},{key:"dispose",value:function(){this._callOnDispose.dispose(),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"_fillHead",value:function(e){var t=this;(0,nw.Z)((0,iw.Z)(n.prototype),"_fillHead",this).call(this,e),this._disposables.add(this._actionbarWidget.actionRunner.onBeforeRun((function(e){return t.editor.focus()})));var i=[],r=this._menuService.createMenu(n.TitleMenu,this._contextKeyService);Mk(r,void 0,i),this._actionbarWidget.push(i,{label:!1,icon:!0,index:0}),r.dispose()}},{key:"_fillTitleIcon",value:function(e){this._icon=dw.append(e,dw.$(""))}},{key:"_fillBody",value:function(e){var t=this;this._parentContainer=e,e.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),e.appendChild(this._container),this._message=new aS(this._container,this.editor,(function(e){return t._onDidSelectRelatedInformation.fire(e)}),this._openerService,this._labelService),this._disposables.add(this._message)}},{key:"show",value:function(){throw new Error("call showAtMarker")}},{key:"showAtMarker",value:function(e,t,i){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());var r=Gy.e.lift(e),o=this.editor.getPosition(),a=o&&r.containsPosition(o)?o:r.getStartPosition();(0,nw.Z)((0,iw.Z)(n.prototype),"show",this).call(this,a,this.computeRequiredHeight());var s=this.editor.getModel();if(s){var u=i>1?ky.N("problems","{0} of {1} problems",t,i):ky.N("change","{0} of {1} problem",t,i);this.setTitle((0,Bw.EZ)(s.uri),u)}this._icon.className="codicon ".concat(Bk.className(Fw.ZL.toSeverity(this._severity))),this.editor.revealPositionNearTop(a,0),this.editor.focus()}},{key:"updateMarker",value:function(e){this._container.classList.remove("stale"),this._message.update(e)}},{key:"showStale",value:function(){this._container.classList.add("stale"),this._relayout()}},{key:"_doLayoutBody",value:function(e,t){(0,nw.Z)((0,iw.Z)(n.prototype),"_doLayoutBody",this).call(this,e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height="".concat(e,"px")}},{key:"_onWidth",value:function(e){this._message.layout(this._heightInPixel,e)}},{key:"_relayout",value:function(){(0,nw.Z)((0,iw.Z)(n.prototype),"_relayout",this).call(this,this.computeRequiredHeight())}},{key:"computeRequiredHeight",value:function(){return 3+this._message.getHeightInLines()}}]),n}(Hk);sS.TitleMenu=new tb.eH("gotoErrorTitleMenu"),sS=rS([oS(1,eb.XE),oS(2,ik.v4),oS(3,tb.co),oS(4,cw.TG),oS(5,Ey.i6),oS(6,iS.e)],sS);var uS=(0,Jy.kw)(Jy.lX,Jy.b6),lS=(0,Jy.kw)(Jy.uo,Jy.pW),cS=(0,Jy.kw)(Jy.c6,Jy.T8),dS=(0,Jy.P6)("editorMarkerNavigationError.background",{dark:uS,light:uS,hc:uS},ky.N("editorMarkerNavigationError","Editor marker navigation widget error color.")),hS=(0,Jy.P6)("editorMarkerNavigationWarning.background",{dark:lS,light:lS,hc:lS},ky.N("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),fS=(0,Jy.P6)("editorMarkerNavigationInfo.background",{dark:cS,light:cS,hc:cS},ky.N("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),pS=(0,Jy.P6)("editorMarkerNavigation.background",{dark:"#2D2D30",light:RC.Il.white,hc:"#0C141F"},ky.N("editorMarkerNavigationBackground","Editor marker navigation widget background."));(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.ur);n&&(t.addRule(".monaco-editor .marker-widget a { color: ".concat(n,"; }")),t.addRule(".monaco-editor .marker-widget a.code-link span:hover { color: ".concat(n,"; }")))}));var gS=n(28214),vS=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},mS=function(e,t){return function(n,i){t(n,i,e)}},_S=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.marker=t,this.index=n,this.total=r})),yS=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._markerService=n,this._onDidChange=new kw.Q5,this.onDidChange=this._onDidChange.event,this._dispoables=new Ky.SL,this._markers=[],this._nextIdx=-1,Rb.o.isUri(t)?this._resourceFilter=function(e){return e.toString()===t.toString()}:t&&(this._resourceFilter=t);var o=function(){r._markers=r._markerService.read({resource:Rb.o.isUri(t)?t:void 0,severities:Fw.ZL.Error|Fw.ZL.Warning|Fw.ZL.Info}),"function"===typeof t&&(r._markers=r._markers.filter((function(e){return r._resourceFilter(e.resource)}))),r._markers.sort(e._compareMarker)};o(),this._dispoables.add(n.onMarkerChanged((function(e){r._resourceFilter&&!e.some((function(e){return r._resourceFilter(e)}))||(o(),r._nextIdx=-1,r._onDidChange.fire())})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._dispoables.dispose(),this._onDidChange.dispose()}},{key:"matches",value:function(e){return!this._resourceFilter&&!e||!(!this._resourceFilter||!e)&&this._resourceFilter(e)}},{key:"selected",get:function(){var e=this._markers[this._nextIdx];return e&&new _S(e,this._nextIdx+1,this._markers.length)}},{key:"_initIdx",value:function(e,t,n){var i=!1,r=this._markers.findIndex((function(t){return t.resource.toString()===e.uri.toString()}));r<0&&(r=(0,Ny.ry)(this._markers,{resource:e.uri},(function(e,t){return(0,Ib.qu)(e.resource.toString(),t.resource.toString())})),r<0&&(r=~r));for(var o=r;o<this._markers.length;o++){var a=Gy.e.lift(this._markers[o]);if(a.isEmpty()){var s=e.getWordAtPosition(a.getStartPosition());s&&(a=new Gy.e(a.startLineNumber,s.startColumn,a.startLineNumber,s.endColumn))}if(t&&(a.containsPosition(t)||t.isBeforeOrEqual(a.getStartPosition()))){this._nextIdx=o,i=!0;break}if(this._markers[o].resource.toString()!==e.uri.toString())break}i||(this._nextIdx=n?0:this._markers.length-1),this._nextIdx<0&&(this._nextIdx=this._markers.length-1)}},{key:"resetIndex",value:function(){this._nextIdx=-1}},{key:"move",value:function(e,t,n){if(0===this._markers.length)return!1;var i=this._nextIdx;return-1===this._nextIdx?this._initIdx(t,n,e):e?this._nextIdx=(this._nextIdx+1)%this._markers.length:e||(this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length),i!==this._nextIdx}},{key:"find",value:function(e,t){var n=this._markers.findIndex((function(t){return t.resource.toString()===e.toString()}));if(!(n<0))for(;n<this._markers.length;n++)if(Gy.e.containsPosition(this._markers[n],t))return new _S(this._markers[n],n+1,this._markers.length)}}],[{key:"_compareMarker",value:function(e,t){var n=(0,Ib.qu)(e.resource.toString(),t.resource.toString());return 0===n&&(n=Fw.ZL.compare(e.severity,t.severity)),0===n&&(n=Gy.e.compareRangesUsingStarts(e,t)),n}}]),e}();yS=vS([mS(1,Fw.lT)],yS);var bS=(0,cw.yh)("IMarkerNavigationService"),wS=function(){function e(t){(0,i.Z)(this,e),this._markerService=t,this._provider=new gS.S}return(0,r.Z)(e,[{key:"getMarkerList",value:function(e){var t,n=(0,tr.Z)(this._provider);try{for(n.s();!(t=n.n()).done;){var i=t.value.getMarkerList(e);if(i)return i}}catch(r){n.e(r)}finally{n.f()}return new yS(e,this._markerService)}}]),e}();wS=vS([mS(0,Fw.lT)],wS),(0,yC.z)(bS,wS,!0);var CS=n(62239),kS=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},SS=function(e,t){return function(n,i){t(n,i,e)}},xS=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},LS=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this._markerNavigationService=n,this._contextKeyService=r,this._editorService=o,this._instantiationService=a,this._sessionDispoables=new Ky.SL,this._editor=t,this._widgetVisible=OS.bindTo(this._contextKeyService)}return(0,r.Z)(e,[{key:"dispose",value:function(){this._cleanUp(),this._sessionDispoables.dispose()}},{key:"_cleanUp",value:function(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}},{key:"_getOrCreateModel",value:function(e){var t=this;if(this._model&&this._model.matches(e))return this._model;var n=!1;return this._model&&(n=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),n&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(sS,this._editor),this._widget.onDidClose((function(){return t.close()}),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((function(e){var n,i,r;(null===(n=t._model)||void 0===n?void 0:n.selected)&&Gy.e.containsPosition(null===(i=t._model)||void 0===i?void 0:i.selected.marker,e.position)||null===(r=t._model)||void 0===r||r.resetIndex()}))),this._sessionDispoables.add(this._model.onDidChange((function(){if(t._widget&&t._widget.position&&t._model){var e=t._model.find(t._editor.getModel().uri,t._widget.position);e?t._widget.updateMarker(e.marker):t._widget.showStale()}}))),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((function(e){t._editorService.openCodeEditor({resource:e.resource,options:{pinned:!0,revealIfOpened:!0,selection:Gy.e.lift(e).collapseToStart()}},t._editor),t.close(!1)}))),this._sessionDispoables.add(this._editor.onDidChangeModel((function(){return t._cleanUp()}))),this._model}},{key:"close",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this._cleanUp(),e&&this._editor.focus()}},{key:"showAtMarker",value:function(e){if(this._editor.hasModel()){var t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new qy.L(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}},{key:"nagivate",value:function(t,n){return xS(this,void 0,void 0,ti().mark((function i(){var r,o;return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(!this._editor.hasModel()){i.next=14;break}if((r=this._getOrCreateModel(n?void 0:this._editor.getModel().uri)).move(t,this._editor.getModel(),this._editor.getPosition()),r.selected){i.next=5;break}return i.abrupt("return");case 5:if(r.selected.marker.resource.toString()===this._editor.getModel().uri.toString()){i.next=13;break}return this._cleanUp(),i.next=9,this._editorService.openCodeEditor({resource:r.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:r.selected.marker}},this._editor);case 9:(o=i.sent)&&(e.get(o).close(),e.get(o).nagivate(t,n)),i.next=14;break;case 13:this._widget.showAtMarker(r.selected.marker,r.selected.index,r.selected.total);case 14:case"end":return i.stop()}}),i,this)})))}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();LS.ID="editor.contrib.markerController",LS=kS([SS(1,bS),SS(2,Ey.i6),SS(3,mb.$),SS(4,cw.TG)],LS);var ES=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,o))._next=e,a._multiFile=r,a}return(0,r.Z)(n,[{key:"run",value:function(e,t){return xS(this,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t.hasModel()&&LS.get(t).nagivate(this._next,this._multiFile);case 1:case"end":return e.stop()}}),e,this)})))}}]),n}(Cy.R6),NS=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,!1,{id:n.ID,label:n.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:578,weight:100},menuOpts:{menuId:sS.TitleMenu,title:n.LABEL,icon:(0,CS.q5)("marker-navigation-next",xw.lA.chevronDown,ky.N("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}return(0,r.Z)(n)}(ES);NS.ID="editor.action.marker.next",NS.LABEL=ky.N("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");var DS=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,!1,{id:n.ID,label:n.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:1602,weight:100},menuOpts:{menuId:sS.TitleMenu,title:NS.LABEL,icon:(0,CS.q5)("marker-navigation-previous",xw.lA.chevronUp,ky.N("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}return(0,r.Z)(n)}(ES);DS.ID="editor.action.marker.prev",DS.LABEL=ky.N("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");var MS=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,!0,{id:"editor.action.marker.nextInFiles",label:ky.N("markerAction.nextInFiles.label","Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:66,weight:100},menuOpts:{menuId:tb.eH.MenubarGoMenu,title:ky.N({key:"miGotoNextProblem",comment:["&& denotes a mnemonic"]},"Next &&Problem"),group:"6_problem_nav",order:1}})}return(0,r.Z)(n)}(ES),TS=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,!0,{id:"editor.action.marker.prevInFiles",label:ky.N("markerAction.previousInFiles.label","Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:1090,weight:100},menuOpts:{menuId:tb.eH.MenubarGoMenu,title:ky.N({key:"miGotoPreviousProblem",comment:["&& denotes a mnemonic"]},"Previous &&Problem"),group:"6_problem_nav",order:2}})}return(0,r.Z)(n)}(ES);(0,Cy._K)(LS.ID,LS),(0,Cy.Qr)(NS),(0,Cy.Qr)(DS),(0,Cy.Qr)(MS),(0,Cy.Qr)(TS);var OS=new Ey.uy("markersNavigationVisible",!1),IS=Cy._l.bindToContribution(LS.get);(0,Cy.fK)(new IS({id:"closeMarkersNavigation",precondition:OS,handler:function(e){return e.close()},kbOpts:{weight:150,kbExpr:Sy.u.focus,primary:9,secondary:[1033]}}));var AS=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},RS=function(e,t){return function(n,i){t(n,i,e)}},PS=dw.$,ZS=function(){function e(t,n){(0,i.Z)(this,e),this.range=t,this.marker=n}return(0,r.Z)(e,[{key:"equals",value:function(t){return t instanceof e&&Fw.H0.makeKey(this.marker)===Fw.H0.makeKey(t.marker)}}]),e}(),FS={type:1,filter:{include:jb.QuickFix}},jS=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this._editor=t,this._hover=n,this._markerDecorationsService=r,this._keybindingService=o,this._openerService=a,this.recentMarkerCodeActionsInfo=void 0}return(0,r.Z)(e,[{key:"computeSync",value:function(e,t){if(!this._editor.hasModel())return[];var n,i=this._editor.getModel(),r=e.startLineNumber,o=i.getLineMaxColumn(r),a=[],s=(0,tr.Z)(t);try{for(s.s();!(n=s.n()).done;){var u=n.value,l=u.range.startLineNumber===r?u.range.startColumn:1,c=u.range.endLineNumber===r?u.range.endColumn:o,d=this._markerDecorationsService.getMarker(i.uri,u);if(d){var h=new Gy.e(e.startLineNumber,l,e.startLineNumber,c);a.push(new ZS(h,d))}}}catch(f){s.e(f)}finally{s.f()}return a}},{key:"renderHoverParts",value:function(e,t){var n=this;if(!e.length)return Ky.JT.None;var i=new Ky.SL;e.forEach((function(e){return t.appendChild(n.renderMarkerHover(e,i))}));var r=1===e.length?e[0]:e.sort((function(e,t){return Fw.ZL.compare(e.marker.severity,t.marker.severity)}))[0];return t.appendChild(this.renderMarkerStatusbar(r,i)),i}},{key:"renderMarkerHover",value:function(e,t){var n=this,i=PS("div.hover-row"),r=dw.append(i,PS("div.marker.hover-contents")),o=e.marker,a=o.source,s=o.message,u=o.code,l=o.relatedInformation;this._editor.applyFontInfo(r);var c=dw.append(r,PS("span"));if(c.style.whiteSpace="pre-wrap",c.innerText=s,a||u)if(u&&"string"!==typeof u){var d=PS("span");if(a)dw.append(d,PS("span")).innerText=a;var h=dw.append(d,PS("a.code-link"));h.setAttribute("href",u.target.toString()),t.add(dw.addDisposableListener(h,"click",(function(e){n._openerService.open(u.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()}))),dw.append(h,PS("span")).innerText=u.value;var f=dw.append(r,d);f.style.opacity="0.6",f.style.paddingLeft="6px"}else{var p=dw.append(r,PS("span"));p.style.opacity="0.6",p.style.paddingLeft="6px",p.innerText=a&&u?"".concat(a,"(").concat(u,")"):a||"(".concat(u,")")}if((0,Ny.Of)(l)){var g,v=(0,tr.Z)(l);try{var m=function(){var e=g.value,i=e.message,o=e.resource,a=e.startLineNumber,s=e.startColumn,u=dw.append(r,PS("div"));u.style.marginTop="8px";var l=dw.append(u,PS("a"));l.innerText="".concat((0,Bw.EZ)(o),"(").concat(a,", ").concat(s,"): "),l.style.cursor="pointer",t.add(dw.addDisposableListener(l,"click",(function(e){e.stopPropagation(),e.preventDefault(),n._openerService&&n._openerService.open(o,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:a,startColumn:s}}}).catch(My.dL)})));var c=dw.append(u,PS("span"));c.innerText=i,n._editor.applyFontInfo(c)};for(v.s();!(g=v.n()).done;)m()}catch(_){v.e(_)}finally{v.f()}}return i}},{key:"renderMarkerStatusbar",value:function(e,t){var n=this,i=PS("div.hover-row.status-bar"),r=dw.append(i,PS("div.actions"));if(e.marker.severity!==Fw.ZL.Error&&e.marker.severity!==Fw.ZL.Warning&&e.marker.severity!==Fw.ZL.Info||t.add(this.renderAction(r,{label:ky.N("view problem","View Problem"),commandId:NS.ID,run:function(){n._hover.hide(),LS.get(n._editor).showAtMarker(e.marker),n._editor.focus()}})),!this._editor.getOption(77)){var o=dw.append(r,PS("div"));this.recentMarkerCodeActionsInfo&&(Fw.H0.makeKey(this.recentMarkerCodeActionsInfo.marker)===Fw.H0.makeKey(e.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(o.textContent=ky.N("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);var a=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?Ky.JT.None:t.add((0,Uy.Vg)((function(){return o.textContent=ky.N("checkingForQuickFixes","Checking for quick fixes...")}),200));o.textContent||(o.textContent=String.fromCharCode(160));var s=this.getCodeActions(e.marker);t.add((0,Ky.OF)((function(){return s.cancel()}))),s.then((function(i){if(a.dispose(),n.recentMarkerCodeActionsInfo={marker:e.marker,hasCodeActions:i.validActions.length>0},!n.recentMarkerCodeActionsInfo.hasCodeActions)return i.dispose(),void(o.textContent=ky.N("noQuickFixes","No quick fixes available"));o.style.display="none";var s=!1;t.add((0,Ky.OF)((function(){s||i.dispose()}))),t.add(n.renderAction(r,{label:ky.N("quick fixes","Quick Fix..."),commandId:iC.Id,run:function(e){s=!0;var t=Jw.get(n._editor),r=dw.getDomNodePagePosition(e);n._hover.hide(),t.showCodeActions(FS,i,{x:r.left+6,y:r.top+r.height+6})}}))}))}return i}},{key:"renderAction",value:function(e,t){var n=this._keybindingService.lookupKeybinding(t.commandId);return function(e,t,n){var i=dw.append(e,ek("div.action-container")),r=dw.append(i,ek("a.action"));return r.setAttribute("href","#"),r.setAttribute("role","button"),t.iconClass&&dw.append(r,ek("span.icon.".concat(t.iconClass))),dw.append(r,ek("span")).textContent=n?"".concat(t.label," (").concat(n,")"):t.label,dw.addDisposableListener(i,dw.EventType.CLICK,(function(e){e.stopPropagation(),e.preventDefault(),t.run(i)}))}(e,t,n?n.getLabel():null)}},{key:"getCodeActions",value:function(e){var t=this;return(0,Uy.PG)((function(n){return ew(t._editor.getModel(),new Gy.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),FS,Wb.E.None,n)}))}}]),e}();jS=AS([RS(2,nk.i),RS(3,pw.d),RS(4,ik.v4)],jS);var HS,BS=n(83935),zS=n(61329);!function e(t,n,i){function r(a,s){if(!n[a]){if(!t[a]){if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};t[a][0].call(l.exports,(function(e){return r(t[a][1][e]||e)}),l,l.exports,e,t,n,i)}return n[a].exports}for(var o=void 0,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(e,t,n){var i=e("./toMap");t.exports={uris:i(["background","base","cite","href","longdesc","src","usemap"])}},{"./toMap":10}],2:[function(e,t,n){t.exports={allowedAttributes:{"*":["title","accesskey"],a:["href","name","target","aria-label"],iframe:["allowfullscreen","frameborder","src"],img:["src","alt","title","aria-label"]},allowedClasses:{},allowedSchemes:["http","https","mailto"],allowedTags:["a","abbr","article","b","blockquote","br","caption","code","del","details","div","em","h1","h2","h3","h4","h5","h6","hr","i","img","ins","kbd","li","main","mark","ol","p","pre","section","span","strike","strong","sub","summary","sup","table","tbody","td","th","thead","tr","u","ul"],filter:null}},{}],3:[function(e,t,n){var i=e("./toMap");t.exports={voids:i(["area","br","col","hr","img","wbr","input","base","basefont","link","meta"])}},{"./toMap":10}],4:[function(e,t,n){e("he");var i=e("assignment"),r=e("./parser"),o=e("./sanitizer"),a=e("./defaults");function s(e,t,n){var s=[],u=!0===n?t:i({},a,t),l=o(s,u);return r(e,l),s.join("")}s.defaults=a,t.exports=s,HS=s},{"./defaults":2,"./parser":7,"./sanitizer":8,assignment:6,he:9}],5:[function(e,t,n){t.exports=function(e){return"string"===typeof e?e.toLowerCase():e}},{}],6:[function(e,t,n){t.exports=function e(t){for(var n,i,r=Array.prototype.slice.call(arguments,1);r.length;)for(i in n=r.shift())n.hasOwnProperty(i)&&("[object Object]"===Object.prototype.toString.call(t[i])?t[i]=e(t[i],n[i]):t[i]=n[i]);return t}},{}],7:[function(e,t,n){var i=e("he"),r=e("./lowercase"),o=(e("./attributes"),e("./elements")),a=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,s=/^<\s*\/\s*([\w:-]+)[^>]*>/,u=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,l=/^</,c=/^<\s*\//;t.exports=function(e,t){for(var n,d=function(){var e=[];return e.lastItem=function(){return e[e.length-1]},e}(),h=e;e;)f();function f(){n=!0,function(){"\x3c!--"===e.substr(0,4)?function(){var i=e.indexOf("--\x3e");i>=0&&(t.comment&&t.comment(e.substring(4,i)),e=e.substring(i+3),n=!1)}():c.test(e)?p(s,v):l.test(e)&&p(a,g);!function(){if(!n)return;var i,r=e.indexOf("<");r>=0?(i=e.substring(0,r),e=e.substring(r)):(i=e,e="");t.chars&&t.chars(i)}()}();var i=e===h;h=e,i&&(e="")}function p(t,i){var r=e.match(t);r&&(e=e.substring(r[0].length),r[0].replace(t,i),n=!1)}function g(e,n,a,s){var l={},c=r(n),h=o.voids[c]||!!s;a.replace(u,(function(e,t,n,r,o){l[t]=void 0===n&&void 0===r&&void 0===o?void 0:i.decode(n||r||o||"")})),h||d.push(c),t.start&&t.start(c,l,h)}function v(e,n){var i,o=0,a=r(n);if(a)for(o=d.length-1;o>=0&&d[o]!==a;o--);if(o>=0){for(i=d.length-1;i>=o;i--)t.end&&t.end(d[i]);d.length=o}}v()}},{"./attributes":1,"./elements":3,"./lowercase":5,he:9}],8:[function(e,t,n){var i=e("he"),r=e("./lowercase"),o=e("./attributes"),a=e("./elements");t.exports=function(e,t){var n,s=t||{};return d(),{start:function(e,t,a){var c=r(e);if(n.ignoring)return void l(c);if(-1===(s.allowedTags||[]).indexOf(c))return void l(c);if(s.filter&&!s.filter({tag:c,attrs:t}))return void l(c);u("<"),u(c),Object.keys(t).forEach((function(e){var n,a=t[e],l=(s.allowedClasses||{})[c]||[],d=(s.allowedAttributes||{})[c]||[];d=d.concat((s.allowedAttributes||{})["*"]||[]);var h=r(e);n="class"===h&&-1===d.indexOf(h)?(a=a.split(" ").filter((function(e){return l&&-1!==l.indexOf(e)})).join(" ").trim()).length:-1!==d.indexOf(h)&&(!0!==o.uris[h]||function(e){var t=e[0];if("#"===t||"/"===t)return!0;var n=e.indexOf(":");if(-1===n)return!0;var i=e.indexOf("?");if(-1!==i&&n>i)return!0;var r=e.indexOf("#");return-1!==r&&n>r||s.allowedSchemes.some(o);function o(t){return 0===e.indexOf(t+":")}}(a)),n&&(u(" "),u(e),"string"===typeof a&&(u('="'),u(i.encode(a)),u('"')))})),u(a?"/>":">")},end:function(e){var t=r(e);-1!==(s.allowedTags||[]).indexOf(t)&&!1===n.ignoring?(u("</"),u(t),u(">")):c(t)},chars:function(e){!1===n.ignoring&&u(s.transformText?s.transformText(e):e)}};function u(t){e.push(t)}function l(e){a.voids[e]||(!1===n.ignoring?n={ignoring:e,depth:1}:n.ignoring===e&&n.depth++)}function c(e){n.ignoring===e&&--n.depth<=0&&d()}function d(){n={ignoring:!1,depth:0}}}},{"./attributes":1,"./elements":3,"./lowercase":5,he:9}],9:[function(e,t,n){var i={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},r={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},o=/(&amp;|&lt;|&gt;|&quot;|&#39;)/g,a=/[&<>"']/g;function s(e){return i[e]}function u(e){return r[e]}function l(e){return null==e?"":String(e).replace(a,s)}function c(e){return null==e?"":String(e).replace(o,u)}l.options=c.options={},t.exports={encode:l,escape:l,decode:c,unescape:c,version:"1.0.0-browser"}},{}],10:[function(e,t,n){function i(e,t){return e[t]=!0,e}t.exports=function(e){return e.reduce(i,{})}},{}]},{},[4]);var WS,VS=HS,YS=n(83312),US=n(55076),KS=null===(WS=window.trustedTypes)||void 0===WS?void 0:WS.createPolicy("insane",{createHTML:function(e,t){return VS(e,t)}});function qS(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=(0,BS.az)(i),a=function(t){var n;try{n=(0,YS.Q)(decodeURIComponent(t))}catch(i){}return n?(n=(0,lk.rs)(n,(function(t){return e.uris&&e.uris[t]?Rb.o.revive(e.uris[t]):void 0})),encodeURIComponent(JSON.stringify(n))):t},s=function(t,n){var i=e.uris&&e.uris[t];if(!i)return t;var r=Rb.o.revive(i);return Rb.o.parse(t).toString()===r.toString()?t:n?rk.Gi.asBrowserUri(r).toString(!0):(r.query&&(r=r.with({query:a(r.query)})),r.toString())},u=new Promise((function(e){return n=e})),l=new zS.Renderer;l.image=function(e,t,n){var r=[],o=[];if(e){var a=function(e){var t=[],n=e.split("|").map((function(e){return e.trim()}));e=n[0];var i=n[1];if(i){var r=/height=(\d+)/.exec(i),o=/width=(\d+)/.exec(i),a=r?r[1]:"",s=o?o[1]:"",u=isFinite(parseInt(s)),l=isFinite(parseInt(a));u&&t.push('width="'.concat(s,'"')),l&&t.push('height="'.concat(a,'"'))}return{href:e,dimensions:t}}(e);e=a.href,r=a.dimensions,e=s(e,!0);try{var u=Rb.o.parse(e);i.baseUrl&&u.scheme===rk.lg.file&&(e=(0,Bw.i3)(i.baseUrl,e).toString())}catch(l){}o.push('src="'.concat(e,'"'))}return n&&o.push('alt="'.concat(n,'"')),t&&o.push('title="'.concat(t,'"')),r.length&&(o=o.concat(r)),"<img "+o.join(" ")+">"},l.link=function(t,n,r){(t===r&&(r=Ry(r)),t=s(t,!1),i.baseUrl)&&(/^\w[\w\d+.-]*:/.test(t)||(t=(0,Bw.i3)(i.baseUrl,t).toString()));return n=Ry(n),!(t=Ry(t))||t.match(/^data:|javascript:/i)||t.match(/^command:/i)&&!e.isTrusted||t.match(/^command:(\/\/\/)?_workbench\.downloadResource/i)?r:(t=t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),'<a href="#" data-href="'.concat(t,'" title="').concat(n||t,'">').concat(r,"</a>"))},l.paragraph=function(t){e.supportThemeIcons&&(t=(0,pC.T)(t).map((function(e){return"string"===typeof e?e:e.outerHTML})).join(""));return"<p>".concat(t,"</p>")},i.codeBlockRenderer&&(l.code=function(e,t){var n=i.codeBlockRenderer(t,e),r=gk.a.nextId(),a=Promise.all([n,u]).then((function(e){var t=o.querySelector('div[data-code="'.concat(r,'"]'));t&&dw.reset(t,e[0])})).catch((function(e){}));return i.asyncRenderCallback&&a.then(i.asyncRenderCallback),'<div class="code" data-code="'.concat(r,'">').concat((0,Ib.YU)(e),"</div>")}),i.actionHandler&&i.actionHandler.disposeables.add(kw.ju.any((0,Ck.jt)(o,"click"),(0,Ck.jt)(o,"auxclick"))((function(e){var t=new US.n(e);if(t.leftButton||t.middleButton){var n=t.target;if("A"===n.tagName||(n=n.parentElement)&&"A"===n.tagName)try{var r=n.dataset.href;r&&i.actionHandler.callback(r,t)}catch(o){(0,My.dL)(o)}finally{t.preventDefault()}}}))),r.sanitizer=function(t){return(e.isTrusted?t.match(/^(<span[^>]+>)|(<\/\s*span>)$/):void 0)?t:""},r.sanitize=!0,r.silent=!0,r.renderer=l;var c=null!==(t=e.value)&&void 0!==t?t:"";c.length>1e5&&(c="".concat(c.substr(0,1e5),"\u2026")),e.supportThemeIcons&&(c=(0,Dy.f$)(c));var d=zS.parse(c,r);if(o.innerHTML=function(e,t){var n,i=function(e){var t=[rk.lg.http,rk.lg.https,rk.lg.mailto,rk.lg.data,rk.lg.file,rk.lg.vscodeRemote,rk.lg.vscodeRemoteResource];e.isTrusted&&t.push(rk.lg.command);return{allowedSchemes:t,allowedTags:["ul","li","p","code","blockquote","ol","h1","h2","h3","h4","h5","h6","hr","em","pre","table","thead","tbody","tr","th","td","div","del","a","strong","br","img","span"],allowedAttributes:{a:["href","name","target","data-href"],img:["src","title","alt","width","height"],div:["class","data-code"],span:["class","style"],th:["align"],td:["align"]},filter:function(t){return"span"!==t.tag||!e.isTrusted||(t.attrs.style&&1===Object.keys(t.attrs).length?!!t.attrs.style.match(/^(color\:#[0-9a-fA-F]+;)?(background-color\:#[0-9a-fA-F]+;)?$/):!!t.attrs.class&&!!t.attrs.class.match(/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/))}}}(e);return null!==(n=null===KS||void 0===KS?void 0:KS.createHTML(t,i))&&void 0!==n?n:VS(t,i)}(e,d),n(),i.asyncRenderCallback){var h,f=(0,tr.Z)(o.getElementsByTagName("img"));try{var p=function(){var e=h.value,t=dw.addDisposableListener(e,"load",(function(){t.dispose(),i.asyncRenderCallback()}))};for(f.s();!(h=f.n()).done;)p()}catch(g){f.e(g)}finally{f.f()}}return o}var GS,$S=n(54821),QS=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},XS=function(e,t){return function(n,i){t(n,i,e)}},JS=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},ex=function(){function e(t,n,r){(0,i.Z)(this,e),this._options=t,this._modeService=n,this._openerService=r,this._onDidRenderAsync=new kw.Q5,this.onDidRenderAsync=this._onDidRenderAsync.event}return(0,r.Z)(e,[{key:"dispose",value:function(){this._onDidRenderAsync.dispose()}},{key:"render",value:function(e,t,n){var i=new Ky.SL;return{element:e?qS(e,Object.assign(Object.assign({},this._getRenderOptions(e,i)),t),n):document.createElement("span"),dispose:function(){return i.dispose()}}}},{key:"_getRenderOptions",value:function(t,n){var i=this;return{baseUrl:this._options.baseUrl,codeBlockRenderer:function(t,n){return JS(i,void 0,void 0,ti().mark((function i(){var r,o,a,s,u,l,c,d;return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return t?u=this._modeService.getModeIdForLanguageName(t):this._options.editor&&(u=null===(r=this._options.editor.getModel())||void 0===r?void 0:r.getLanguageIdentifier().language),u||(u="plaintext"),this._modeService.triggerMode(u),i.next=5,Zb.RW.getPromise(u);case 5:if(i.t1=o=i.sent,i.t0=null!==i.t1,!i.t0){i.next=9;break}i.t0=void 0!==o;case 9:if(!i.t0){i.next=13;break}i.t2=o,i.next=14;break;case 13:i.t2=void 0;case 14:return l=i.t2,(c=document.createElement("span")).innerHTML=null!==(s=null===(a=e._ttpTokenizer)||void 0===a?void 0:a.createHTML(n,l))&&void 0!==s?s:(0,$S.C)(n,l),d=this._options.codeBlockFontFamily,this._options.editor&&(d=this._options.editor.getOption(40).fontFamily),d&&(c.style.fontFamily=d),i.abrupt("return",c);case 21:case"end":return i.stop()}}),i,this)})))},asyncRenderCallback:function(){return i._onDidRenderAsync.fire()},actionHandler:{callback:function(e){return i._openerService.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:t.isTrusted}).catch(My.dL)},disposeables:n}}}}]),e}();function tx(e,t,n){var i=Zb.xp.ordered(e).map((function(i){return Promise.resolve(i.provideHover(e,t,n)).then((function(e){return e&&function(e){var t="undefined"!==typeof e.range,n="undefined"!==typeof e.contents&&e.contents&&e.contents.length>0;return t&&n}(e)?e:void 0}),(function(e){(0,My.Cp)(e)}))}));return Promise.all(i).then(Ny.kX)}ex._ttpTokenizer=null===(GS=window.trustedTypes)||void 0===GS?void 0:GS.createPolicy("tokenizeToString",{createHTML:function(e,t){return(0,$S.C)(e,t)}}),ex=QS([XS(1,BC.h),XS(2,ik.v4)],ex),(0,Cy.sb)("_executeHoverProvider",(function(e,t){return tx(e,t,Tb.T.None)}));var nx=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ix=function(e,t){return function(n,i){t(n,i,e)}},rx=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},ox=dw.$,ax=function(){function e(t,n){(0,i.Z)(this,e),this.range=t,this.contents=n}return(0,r.Z)(e,[{key:"equals",value:function(t){return t instanceof e&&function(e,t){return!e&&!t||!(!e||!t)&&(Array.isArray(e)&&Array.isArray(t)?(0,Ny.fS)(e,t,Ay):!(!Iy(e)||!Iy(t))&&Ay(e,t))}(this.contents,t.contents)}}]),e}(),sx=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._editor=t,this._hover=n,this._modeService=r,this._openerService=o}return(0,r.Z)(e,[{key:"createLoadingMessage",value:function(e){return new ax(e,[(new Ty).appendText(ky.N("modesContentHover.loading","Loading..."))])}},{key:"computeSync",value:function(e,t){if(!this._editor.hasModel())return[];var n,i=this._editor.getModel(),r=e.startLineNumber,o=i.getLineMaxColumn(r),a=[],s=(0,tr.Z)(t);try{for(s.s();!(n=s.n()).done;){var u=n.value,l=u.range.startLineNumber===r?u.range.startColumn:1,c=u.range.endLineNumber===r?u.range.endColumn:o,d=u.options.hoverMessage;if(d&&!Oy(d)){var h=new Gy.e(e.startLineNumber,l,e.startLineNumber,c);a.push(new ax(h,(0,Ny._2)(d)))}}}catch(f){s.e(f)}finally{s.f()}return a}},{key:"computeAsync",value:function(e,t){return rx(this,void 0,void 0,ti().mark((function n(){var i,r,o,a,s,u,l;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(this._editor.hasModel()&&e){n.next=2;break}return n.abrupt("return",Promise.resolve([]));case 2:if(i=this._editor.getModel(),Zb.xp.has(i)){n.next=5;break}return n.abrupt("return",Promise.resolve([]));case 5:return n.next=7,tx(i,new qy.L(e.startLineNumber,e.startColumn),t);case 7:r=n.sent,o=[],a=(0,tr.Z)(r),n.prev=10,a.s();case 12:if((s=a.n()).done){n.next=20;break}if(!Oy((u=s.value).contents)){n.next=16;break}return n.abrupt("continue",18);case 16:l=u.range?Gy.e.lift(u.range):e,o.push(new ax(l,u.contents));case 18:n.next=12;break;case 20:n.next=25;break;case 22:n.prev=22,n.t0=n.catch(10),a.e(n.t0);case 25:return n.prev=25,a.f(),n.finish(25);case 28:return n.abrupt("return",o);case 29:case"end":return n.stop()}}),n,this,[[10,22,25,28]])})))}},{key:"renderHoverParts",value:function(e,t){var n,i=this,r=new Ky.SL,o=(0,tr.Z)(e);try{for(o.s();!(n=o.n()).done;){var a,s=n.value,u=(0,tr.Z)(s.contents);try{var l=function(){var e=a.value;if(Oy(e))return"continue";var n=ox("div.hover-row.markdown-hover"),o=dw.append(n,ox("div.hover-contents")),s=r.add(new ex({editor:i._editor},i._modeService,i._openerService));r.add(s.onDidRenderAsync((function(){o.className="hover-contents code-hover-contents",i._hover.onContentsChanged()})));var u=r.add(s.render(e));o.appendChild(u.element),t.appendChild(n)};for(u.s();!(a=u.n()).done;)l()}catch(c){u.e(c)}finally{u.f()}}}catch(c){o.e(c)}finally{o.f()}return r}}]),e}();sx=nx([ix(2,BC.h),ix(3,ik.v4)],sx);var ux=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},lx=function(){function e(t,n,r){(0,i.Z)(this,e),this.range=t,this.color=n,this.provider=r}return(0,r.Z)(e,[{key:"equals",value:function(e){return!1}}]),e}(),cx=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.owner=t,this.data=n})),dx=function(){function e(t,n,r){(0,i.Z)(this,e),this._markerHoverParticipant=n,this._markdownHoverParticipant=r,this._editor=t,this._result=[],this._range=null}return(0,r.Z)(e,[{key:"setRange",value:function(e){this._range=e,this._result=[]}},{key:"clearResult",value:function(){this._result=[]}},{key:"computeAsync",value:function(e){return ux(this,void 0,void 0,ti().mark((function t(){var n,i=this;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()&&this._range){t.next=2;break}return t.abrupt("return",Promise.resolve([]));case 2:return t.next=4,this._markdownHoverParticipant.computeAsync(this._range,e);case 4:return n=t.sent,t.abrupt("return",n.map((function(e){return new cx(i._markdownHoverParticipant,e)})));case 6:case"end":return t.stop()}}),t,this)})))}},{key:"computeSync",value:function(){var e=this;if(!this._editor.hasModel()||!this._range)return[];var t=this._editor.getModel(),n=this._range,i=n.startLineNumber;if(i>this._editor.getModel().getLineCount())return[];var r,o=t.getLineMaxColumn(i),a=this._editor.getLineDecorations(i).filter((function(e){if(e.options.isWholeLine)return!0;var t=e.range.startLineNumber===i?e.range.startColumn:1,r=e.range.endLineNumber===i?e.range.endColumn:o;return!(t>n.startColumn||n.endColumn>r)})),s=[],u=HC.get(this._editor),l=(0,tr.Z)(a);try{for(l.s();!(r=l.n()).done;){var c=r.value,d=u.getColorData(c.range.getStartPosition());if(d){var h=d.colorInfo,f=h.color,p=h.range;s.push(new cx(null,new lx(Gy.e.lift(p),f,d.provider)));break}}}catch(m){l.e(m)}finally{l.f()}var g=this._markdownHoverParticipant.computeSync(this._range,a);s=s.concat(g.map((function(t){return new cx(e._markdownHoverParticipant,t)})));var v=this._markerHoverParticipant.computeSync(this._range,a);return s=s.concat(v.map((function(t){return new cx(e._markerHoverParticipant,t)}))),(0,Ny.kX)(s)}},{key:"onResult",value:function(e,t){this._result=t?e.concat(this._result):this._result.concat(e)}},{key:"getResult",value:function(){return this._result.slice(0)}},{key:"getResultWithLoadingMessage",value:function(){if(this._range){var e=new cx(this._markdownHoverParticipant,this._markdownHoverParticipant.createLoadingMessage(this._range));return this._result.slice(0).concat([e])}return this._result.slice(0)}}]),e}(),hx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._hoverVisibleKey=r,s._themeService=a,s.allowEditorOverflow=!0,s._markerHoverParticipant=o.createInstance(jS,e,(0,Mb.Z)(s)),s._markdownHoverParticipant=o.createInstance(sx,e,(0,Mb.Z)(s)),s._hover=s._register(new tk),s._id=n.ID,s._editor=e,s._isVisible=!1,s._stoleFocus=!1,s._renderDisposable=null,s.onkeydown(s._hover.containerDomNode,(function(e){e.equals(9)&&s.hide()})),s._register(s._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&s._updateFont()}))),s._editor.onDidLayoutChange((function(){return s.layout()})),s.layout(),s._editor.addContentWidget((0,Mb.Z)(s)),s._showAtPosition=null,s._showAtRange=null,s._stoleFocus=!1,s._messages=[],s._lastRange=null,s._computer=new dx(s._editor,s._markerHoverParticipant,s._markdownHoverParticipant),s._highlightDecorations=[],s._isChangingDecorations=!1,s._shouldFocus=!1,s._colorPicker=null,s._hoverOperation=new XC(s._computer,(function(e){return s._withResult(e,!0)}),null,(function(e){return s._withResult(e,!1)}),s._editor.getOption(50).delay),s._register(dw.addStandardDisposableListener(s.getDomNode(),dw.EventType.FOCUS,(function(){s._colorPicker&&s.getDomNode().classList.add("colorpicker-hover")}))),s._register(dw.addStandardDisposableListener(s.getDomNode(),dw.EventType.BLUR,(function(){s.getDomNode().classList.remove("colorpicker-hover")}))),s._register(e.onDidChangeConfiguration((function(){s._hoverOperation.setHoverTime(s._editor.getOption(50).delay)}))),s._register(Zb.RW.onDidChange((function(){s._isVisible&&s._lastRange&&s._messages.length>0&&(s._messages=s._messages.map((function(e){var t,n;if(e.data instanceof lx&&(null===(t=s._lastRange)||void 0===t?void 0:t.intersectRanges(e.data.range))&&(null===(n=s._colorPicker)||void 0===n?void 0:n.model.color)){var i=s._colorPicker.model.color,r={red:i.rgba.r/255,green:i.rgba.g/255,blue:i.rgba.b/255,alpha:i.rgba.a};return new cx(e.owner,new lx(e.data.range,r,e.data.provider))}return e})),s._hover.contentsDomNode.textContent="",s._renderMessages(s._lastRange,s._messages))}))),s}return(0,r.Z)(n,[{key:"dispose",value:function(){this._hoverOperation.cancel(),this._editor.removeContentWidget(this),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return this._id}},{key:"getDomNode",value:function(){return this._hover.containerDomNode}},{key:"showAt",value:function(e,t,n){this._showAtPosition=e,this._showAtRange=t,this._hoverVisibleKey.set(!0),this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._editor.layoutContentWidget(this),this._editor.render(),this._stoleFocus=n,n&&this._hover.containerDomNode.focus()}},{key:"getPosition",value:function(){return this._isVisible?{position:this._showAtPosition,range:this._showAtRange,preference:[1,2]}:null}},{key:"_updateFont",value:function(){var e=this;Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((function(t){return e._editor.applyFontInfo(t)}))}},{key:"_updateContents",value:function(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont(),this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}},{key:"layout",value:function(){var e=Math.max(this._editor.getLayoutInfo().height/4,250),t=this._editor.getOption(40),n=t.fontSize,i=t.lineHeight;this._hover.contentsDomNode.style.fontSize="".concat(n,"px"),this._hover.contentsDomNode.style.lineHeight="".concat(i,"px"),this._hover.contentsDomNode.style.maxHeight="".concat(e,"px"),this._hover.contentsDomNode.style.maxWidth="".concat(Math.max(.66*this._editor.getLayoutInfo().width,500),"px")}},{key:"onModelDecorationsChanged",value:function(){this._isChangingDecorations||this._isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._colorPicker||this._hoverOperation.start(0))}},{key:"startShowingAt",value:function(e,t,n){if(!this._lastRange||!this._lastRange.equalsRange(e)){if(this._hoverOperation.cancel(),this._isVisible)if(this._showAtPosition&&this._showAtPosition.lineNumber===e.startLineNumber){for(var i=[],r=0,o=this._messages.length;r<o;r++){var a=this._messages[r],s=a.data.range;s&&s.startColumn<=e.startColumn&&s.endColumn>=e.endColumn&&i.push(a)}if(i.length>0){if(function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!e[n].data.equals(t[n].data))return!1;return!0}(i,this._messages))return;this._renderMessages(e,i)}else this.hide()}else this.hide();this._lastRange=e,this._computer.setRange(e),this._shouldFocus=n,this._hoverOperation.start(t)}}},{key:"hide",value:function(){var e=this;this._lastRange=null,this._hoverOperation.cancel(),this._isVisible&&(setTimeout((function(){e._isVisible||e._hoverVisibleKey.set(!1)}),0),this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._editor.layoutContentWidget(this),this._stoleFocus&&this._editor.focus()),this._isChangingDecorations=!0,this._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,[]),this._isChangingDecorations=!1,this._renderDisposable&&(this._renderDisposable.dispose(),this._renderDisposable=null),this._colorPicker=null}},{key:"isColorPickerVisible",value:function(){return!!this._colorPicker}},{key:"onContentsChanged",value:function(){this._hover.onContentsChanged()}},{key:"_withResult",value:function(e,t){this._messages=e,this._lastRange&&this._messages.length>0?this._renderMessages(this._lastRange,this._messages):t&&this.hide()}},{key:"_renderMessages",value:function(e,t){var i=this;this._renderDisposable&&(this._renderDisposable.dispose(),this._renderDisposable=null),this._colorPicker=null;var r=1073741824,o=t[0].data.range?Gy.e.lift(t[0].data.range):null,a=document.createDocumentFragment(),s=!1,u=new Ky.SL,l=[],c=[];t.forEach((function(e){var t=e.data;if(t.range)if(r=Math.min(r,t.range.startColumn),o=o?Gy.e.plusRange(o,t.range):Gy.e.lift(t.range),t instanceof lx){s=!0;var n=t.color,d=n.red,h=n.green,f=n.blue,p=n.alpha,g=new RC.VS(Math.round(255*d),Math.round(255*h),Math.round(255*f),p),v=new RC.Il(g);if(!i._editor.hasModel())return;var m=i._editor.getModel(),_=new Gy.e(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn),y={range:t.range,color:t.color},b=new zC(v,[],0),w=new QC(a,b,i._editor.getOption(125),i._themeService);PC(m,y,t.provider,Tb.T.None).then((function(e){if(b.colorPresentations=e||[],i._editor.hasModel()){var n=i._editor.getModel().getValueInRange(t.range);b.guessColorPresentation(v,n);var r=function(){var e,t;if(b.presentation.textEdit){e=[b.presentation.textEdit],t=new Gy.e(b.presentation.textEdit.range.startLineNumber,b.presentation.textEdit.range.startColumn,b.presentation.textEdit.range.endLineNumber,b.presentation.textEdit.range.endColumn);var n=i._editor.getModel()._setTrackedRange(null,t,3);i._editor.pushUndoStop(),i._editor.executeEdits("colorpicker",e),t=i._editor.getModel()._getTrackedRange(n)||t}else e=[{identifier:null,range:_,text:b.presentation.label,forceMoveMarkers:!1}],t=_.setEndPosition(_.endLineNumber,_.startColumn+b.presentation.label.length),i._editor.pushUndoStop(),i._editor.executeEdits("colorpicker",e);b.presentation.additionalTextEdits&&(e=(0,zt.Z)(b.presentation.additionalTextEdits),i._editor.executeEdits("colorpicker",e),i.hide()),i._editor.pushUndoStop(),_=t},o=function(e){return PC(m,{range:_,color:{red:e.rgba.r/255,green:e.rgba.g/255,blue:e.rgba.b/255,alpha:e.rgba.a}},t.provider,Tb.T.None).then((function(e){b.colorPresentations=e||[]}))},s=b.onColorFlushed((function(e){o(e).then(r)})),l=b.onDidChangeColor(o);i._colorPicker=w,i.showAt(_.getStartPosition(),_,i._shouldFocus),i._updateContents(a),i._colorPicker.layout(),i._renderDisposable=(0,Ky.F8)(s,l,w,u)}}))}else t instanceof ZS?l.push(t):t instanceof ax&&c.push(t)})),c.length>0&&u.add(this._markdownHoverParticipant.renderHoverParts(c,a)),l.length&&u.add(this._markerHoverParticipant.renderHoverParts(l,a)),this._renderDisposable=u,!s&&a.hasChildNodes()&&(this.showAt(new qy.L(e.startLineNumber,r),o,this._shouldFocus),this._updateContents(a)),this._isChangingDecorations=!0,this._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,o?[{range:o,options:n._DECORATION_OPTIONS}]:[]),this._isChangingDecorations=!1}}]),n}(WC.$);hx.ID="editor.contrib.modesContentHoverWidget",hx._DECORATION_OPTIONS=Qy.qx.register({className:"hoverHighlight"}),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.ur);n&&t.addRule(".monaco-hover .hover-contents a.code-link span:hover { color: ".concat(n,"; }"))}));var fx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this))._id=e,o._editor=r,o._isVisible=!1,o._domNode=document.createElement("div"),o._domNode.className="monaco-hover hidden",o._domNode.setAttribute("aria-hidden","true"),o._domNode.setAttribute("role","tooltip"),o._showAtLineNumber=-1,o._register(o._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&o.updateFont()}))),o._editor.addOverlayWidget((0,Mb.Z)(o)),o}return(0,r.Z)(n,[{key:"isVisible",get:function(){return this._isVisible},set:function(e){this._isVisible=e,this._domNode.classList.toggle("hidden",!this._isVisible)}},{key:"getId",value:function(){return this._id}},{key:"getDomNode",value:function(){return this._domNode}},{key:"showAt",value:function(e){this._showAtLineNumber=e,this.isVisible||(this.isVisible=!0);var t=this._editor.getLayoutInfo(),n=this._editor.getTopForLineNumber(this._showAtLineNumber),i=this._editor.getScrollTop(),r=this._editor.getOption(55),o=n-i-(this._domNode.clientHeight-r)/2;this._domNode.style.left="".concat(t.glyphMarginLeft+t.glyphMarginWidth,"px"),this._domNode.style.top="".concat(Math.max(Math.round(o),0),"px")}},{key:"hide",value:function(){this.isVisible&&(this.isVisible=!1)}},{key:"getPosition",value:function(){return null}},{key:"dispose",value:function(){this._editor.removeOverlayWidget(this),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"updateFont",value:function(){var e=this,t=Array.prototype.slice.call(this._domNode.getElementsByTagName("code")),n=Array.prototype.slice.call(this._domNode.getElementsByClassName("code"));[].concat((0,zt.Z)(t),(0,zt.Z)(n)).forEach((function(t){return e._editor.applyFontInfo(t)}))}},{key:"updateContents",value:function(e){this._domNode.textContent="",this._domNode.appendChild(e),this.updateFont()}}]),n}(WC.$),px=function(){function e(t){(0,i.Z)(this,e),this._editor=t,this._lineNumber=-1,this._result=[]}return(0,r.Z)(e,[{key:"setLineNumber",value:function(e){this._lineNumber=e,this._result=[]}},{key:"clearResult",value:function(){this._result=[]}},{key:"computeSync",value:function(){var e=function(e){return{value:e}},t=this._editor.getLineDecorations(this._lineNumber),n=[];if(!t)return n;var i,r=(0,tr.Z)(t);try{for(r.s();!(i=r.n()).done;){var o=i.value;if(o.options.glyphMarginClassName){var a=o.options.glyphMarginHoverMessage;a&&!Oy(a)&&n.push.apply(n,(0,zt.Z)((0,Ny._2)(a).map(e)))}}}catch(s){r.e(s)}finally{r.f()}return n}},{key:"onResult",value:function(e,t){this._result=this._result.concat(e)}},{key:"getResult",value:function(){return this._result}},{key:"getResultWithLoadingMessage",value:function(){return this.getResult()}}]),e}(),gx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ik.SW;return(0,i.Z)(this,n),(o=t.call(this,n.ID,e))._renderDisposeables=o._register(new Ky.SL),o._messages=[],o._lastLineNumber=-1,o._markdownRenderer=o._register(new ex({editor:o._editor},r,a)),o._computer=new px(o._editor),o._hoverOperation=new XC(o._computer,(function(e){return o._withResult(e)}),void 0,(function(e){return o._withResult(e)}),300),o}return(0,r.Z)(n,[{key:"dispose",value:function(){this._hoverOperation.cancel(),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"onModelDecorationsChanged",value:function(){this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._hoverOperation.start(0))}},{key:"startShowingAt",value:function(e){this._lastLineNumber!==e&&(this._hoverOperation.cancel(),this.hide(),this._lastLineNumber=e,this._computer.setLineNumber(e),this._hoverOperation.start(0))}},{key:"hide",value:function(){this._lastLineNumber=-1,this._hoverOperation.cancel(),(0,nw.Z)((0,iw.Z)(n.prototype),"hide",this).call(this)}},{key:"_withResult",value:function(e){this._messages=e,this._messages.length>0?this._renderMessages(this._lastLineNumber,this._messages):this.hide()}},{key:"_renderMessages",value:function(e,t){this._renderDisposeables.clear();var n,i=document.createDocumentFragment(),r=(0,tr.Z)(t);try{for(r.s();!(n=r.n()).done;){var o=n.value,a=this._markdownRenderer.render(o.value);this._renderDisposeables.add(a),i.appendChild((0,dw.$)("div.hover-row",void 0,a.element))}}catch(s){r.e(s)}finally{r.f()}this.updateContents(i),this.showAt(e)}}]),n}(fx);gx.ID="editor.contrib.modesGlyphHoverWidget";var vx=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},mx=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.isProviderFirst=t,this.parent=n,this.link=r,this._rangeCallback=o,this.id=gk.a.nextId()}return(0,r.Z)(e,[{key:"uri",get:function(){return this.link.uri}},{key:"range",get:function(){var e,t;return null!==(t=null!==(e=this._range)&&void 0!==e?e:this.link.targetSelectionRange)&&void 0!==t?t:this.link.range},set:function(e){this._range=e,this._rangeCallback(this)}},{key:"ariaMessage",get:function(){var e,t=null===(e=this.parent.getPreview(this))||void 0===e?void 0:e.preview(this.range);return t?(0,ky.N)({key:"aria.oneReference.preview",comment:["Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code"]},"symbol in {0} on line {1} at column {2}, {3}",(0,Bw.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn,t.value):(0,ky.N)("aria.oneReference","symbol in {0} on line {1} at column {2}",(0,Bw.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn)}}]),e}(),_x=function(){function e(t){(0,i.Z)(this,e),this._modelReference=t}return(0,r.Z)(e,[{key:"dispose",value:function(){this._modelReference.dispose()}},{key:"preview",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=this._modelReference.object.textEditorModel;if(n){var i=e.startLineNumber,r=e.startColumn,o=e.endLineNumber,a=e.endColumn,s=n.getWordUntilPosition({lineNumber:i,column:r-t}),u=new Gy.e(i,s.startColumn,i,r),l=new Gy.e(o,a,o,1073741824),c=n.getValueInRange(u).replace(/^\s+/,""),d=n.getValueInRange(e);return{value:c+d+n.getValueInRange(l).replace(/\s+$/,""),highlight:{start:c.length,end:c.length+d.length}}}}}]),e}(),yx=function(){function e(t,n){(0,i.Z)(this,e),this.parent=t,this.uri=n,this.children=[],this._previews=new bC.Y9}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Ky.B9)(this._previews.values()),this._previews.clear()}},{key:"getPreview",value:function(e){return this._previews.get(e.uri)}},{key:"ariaMessage",get:function(){var e=this.children.length;return 1===e?(0,ky.N)("aria.fileReferences.1","1 symbol in {0}, full path {1}",(0,Bw.EZ)(this.uri),this.uri.fsPath):(0,ky.N)("aria.fileReferences.N","{0} symbols in {1}, full path {2}",e,(0,Bw.EZ)(this.uri),this.uri.fsPath)}},{key:"resolve",value:function(e){return vx(this,void 0,void 0,ti().mark((function t(){var n,i,r,o;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(0===this._previews.size){t.next=2;break}return t.abrupt("return",this);case 2:n=(0,tr.Z)(this.children),t.prev=3,n.s();case 5:if((i=n.n()).done){t.next=21;break}if(r=i.value,!this._previews.has(r.uri)){t.next=9;break}return t.abrupt("continue",19);case 9:return t.prev=9,t.next=12,e.createModelReference(r.uri);case 12:o=t.sent,this._previews.set(r.uri,new _x(o)),t.next=19;break;case 16:t.prev=16,t.t0=t.catch(9),(0,My.dL)(t.t0);case 19:t.next=5;break;case 21:t.next=26;break;case 23:t.prev=23,t.t1=t.catch(3),n.e(t.t1);case 26:return t.prev=26,n.f(),t.finish(26);case 29:return t.abrupt("return",this);case 30:case"end":return t.stop()}}),t,this,[[3,23,26,29],[9,16]])})))}}]),e}(),bx=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this.groups=[],this.references=[],this._onDidChangeReferenceRange=new kw.Q5,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=t,this._title=n;var o,a=(0,Ti.Z)(t,1)[0];t.sort(e._compareReferences);var s,u=(0,tr.Z)(t);try{for(u.s();!(s=u.n()).done;){var l=s.value;if(o&&Bw.SF.isEqual(o.uri,l.uri,!0)||(o=new yx(this,l.uri),this.groups.push(o)),0===o.children.length||0!==e._compareReferences(l,o.children[o.children.length-1])){var c=new mx(a===l,o,l,(function(e){return r._onDidChangeReferenceRange.fire(e)}));this.references.push(c),o.children.push(c)}}}catch(d){u.e(d)}finally{u.f()}}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Ky.B9)(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}},{key:"clone",value:function(){return new e(this._links,this._title)}},{key:"title",get:function(){return this._title}},{key:"isEmpty",get:function(){return 0===this.groups.length}},{key:"ariaMessage",get:function(){return this.isEmpty?(0,ky.N)("aria.result.0","No results found"):1===this.references.length?(0,ky.N)("aria.result.1","Found 1 symbol in {0}",this.references[0].uri.fsPath):1===this.groups.length?(0,ky.N)("aria.result.n1","Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):(0,ky.N)("aria.result.nm","Found {0} symbols in {1} files",this.references.length,this.groups.length)}},{key:"nextOrPreviousReference",value:function(e,t){var n=e.parent,i=n.children.indexOf(e),r=n.children.length,o=n.parent.groups.length;return 1===o||t&&i+1<r||!t&&i>0?(i=t?(i+1)%r:(i+r-1)%r,n.children[i]):(i=n.parent.groups.indexOf(n),t?(i=(i+1)%o,n.parent.groups[i].children[0]):(i=(i+o-1)%o,n.parent.groups[i].children[n.parent.groups[i].children.length-1]))}},{key:"nearestReference",value:function(e,t){var n=this.references.map((function(n,i){return{idx:i,prefixLen:Ib.Mh(n.uri.toString(),e.toString()),offsetDist:100*Math.abs(n.range.startLineNumber-t.lineNumber)+Math.abs(n.range.startColumn-t.column)}})).sort((function(e,t){return e.prefixLen>t.prefixLen?-1:e.prefixLen<t.prefixLen?1:e.offsetDist<t.offsetDist?-1:e.offsetDist>t.offsetDist?1:0}))[0];if(n)return this.references[n.idx]}},{key:"referenceAt",value:function(e,t){var n,i=(0,tr.Z)(this.references);try{for(i.s();!(n=i.n()).done;){var r=n.value;if(r.uri.toString()===e.toString()&&Gy.e.containsPosition(r.range,t))return r}}catch(o){i.e(o)}finally{i.f()}}},{key:"firstReference",value:function(){var e,t=(0,tr.Z)(this.references);try{for(t.s();!(e=t.n()).done;){var n=e.value;if(n.isProviderFirst)return n}}catch(i){t.e(i)}finally{t.f()}return this.references[0]}}],[{key:"_compareReferences",value:function(e,t){return Bw.SF.compare(e.uri,t.uri)||Gy.e.compareRangesUsingStarts(e.range,t.range)}}]),e}(),wx=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function Cx(e,t,n,i){var r=n.ordered(e).map((function(n){return Promise.resolve(i(n,e,t)).then(void 0,(function(e){(0,My.Cp)(e)}))}));return Promise.all(r).then((function(e){var t,n=[],i=(0,tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;Array.isArray(r)?n.push.apply(n,(0,zt.Z)(r)):r&&n.push(r)}}catch(o){i.e(o)}finally{i.f()}return n}))}function kx(e,t,n){return Cx(e,t,Zb.Ct,(function(e,t,i){return e.provideDefinition(t,i,n)}))}function Sx(e,t,n){return Cx(e,t,Zb.RN,(function(e,t,i){return e.provideDeclaration(t,i,n)}))}function xx(e,t,n){return Cx(e,t,Zb.vI,(function(e,t,i){return e.provideImplementation(t,i,n)}))}function Lx(e,t,n){return Cx(e,t,Zb.tA,(function(e,t,i){return e.provideTypeDefinition(t,i,n)}))}function Ex(e,t,n,i){var r=this;return Cx(e,t,Zb.FL,(function(e,t,o){return wx(r,void 0,void 0,ti().mark((function r(){var a,s;return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.provideReferences(t,o,{includeDeclaration:!0},i);case 2:if(a=r.sent,n&&a&&2===a.length){r.next=5;break}return r.abrupt("return",a);case 5:return r.next=7,e.provideReferences(t,o,{includeDeclaration:!1},i);case 7:if(!(s=r.sent)||1!==s.length){r.next=10;break}return r.abrupt("return",s);case 10:return r.abrupt("return",a);case 11:case"end":return r.stop()}}),r)})))}))}function Nx(e){return wx(this,void 0,void 0,ti().mark((function t(){var n,i,r;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e();case 2:return n=t.sent,i=new bx(n,""),r=i.references.map((function(e){return e.link})),i.dispose(),t.abrupt("return",r);case 7:case"end":return t.stop()}}),t)})))}(0,Cy.sb)("_executeDefinitionProvider",(function(e,t){return Nx((function(){return kx(e,t,Tb.T.None)}))})),(0,Cy.sb)("_executeDeclarationProvider",(function(e,t){return Nx((function(){return Sx(e,t,Tb.T.None)}))})),(0,Cy.sb)("_executeImplementationProvider",(function(e,t){return Nx((function(){return xx(e,t,Tb.T.None)}))})),(0,Cy.sb)("_executeTypeDefinitionProvider",(function(e,t){return Nx((function(){return Lx(e,t,Tb.T.None)}))})),(0,Cy.sb)("_executeReferenceProvider",(function(e,t){return Nx((function(){return Ex(e,t,!1,Tb.T.None)}))}));var Dx=n(44148),Mx=n(76191),Tx=n(5677),Ox=n(57502),Ix=n(35215),Ax=n(50482),Rx=n(61743),Px=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Zx=function(e,t){return function(n,i){t(n,i,e)}},Fx=function(){function e(t){(0,i.Z)(this,e),this._resolverService=t}return(0,r.Z)(e,[{key:"hasChildren",value:function(e){return e instanceof bx||e instanceof yx}},{key:"getChildren",value:function(e){if(e instanceof bx)return e.groups;if(e instanceof yx)return e.resolve(this._resolverService).then((function(e){return e.children}));throw new Error("bad tree")}}]),e}();Fx=Px([Zx(0,Dx.S)],Fx);var jx=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"getHeight",value:function(){return 23}},{key:"getTemplateId",value:function(e){return e instanceof yx?Wx.id:Yx.id}}]),e}(),Hx=function(){function e(t){(0,i.Z)(this,e),this._keybindingService=t}return(0,r.Z)(e,[{key:"getKeyboardNavigationLabel",value:function(e){var t;if(e instanceof mx){var n=null===(t=e.parent.getPreview(e))||void 0===t?void 0:t.preview(e.range);if(n)return n.value}return(0,Bw.EZ)(e.uri)}}]),e}();Hx=Px([Zx(0,pw.d)],Hx);var Bx=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"getId",value:function(e){return e instanceof mx?e.id:e.uri}}]),e}(),zx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;(0,i.Z)(this,n),(a=t.call(this))._uriLabel=r;var s=document.createElement("div");return s.classList.add("reference-file"),a.file=a._register(new Tx.g(s,{supportHighlights:!0})),a.badge=new Ox.Z(dw.append(s,dw.$(".count"))),a._register((0,Ix.WZ)(a.badge,o)),e.appendChild(s),a}return(0,r.Z)(n,[{key:"set",value:function(e,t){var n=(0,Bw.XX)(e.uri);this.file.setLabel(ak(e.uri),this._uriLabel.getUriLabel(n,{relative:!0}),{title:this._uriLabel.getUriLabel(e.uri),matches:t});var i=e.children.length;this.badge.setCount(i),i>1?this.badge.setTitleFormat((0,ky.N)("referencesCount","{0} references",i)):this.badge.setTitleFormat((0,ky.N)("referenceCount","{0} reference",i))}}]),n}(Ky.JT);zx=Px([Zx(1,iS.e),Zx(2,eb.XE)],zx);var Wx=function(){function e(t){(0,i.Z)(this,e),this._instantiationService=t,this.templateId=e.id}return(0,r.Z)(e,[{key:"renderTemplate",value:function(e){return this._instantiationService.createInstance(zx,e)}},{key:"renderElement",value:function(e,t,n){n.set(e.element,(0,Ax.mB)(e.filterData))}},{key:"disposeTemplate",value:function(e){e.dispose()}}]),e}();Wx.id="FileReferencesRenderer",Wx=Px([Zx(0,cw.TG)],Wx);var Vx=function(){function e(t){(0,i.Z)(this,e),this.label=new Rx.q(t,!1)}return(0,r.Z)(e,[{key:"set",value:function(e,t){var n,i=null===(n=e.parent.getPreview(e))||void 0===n?void 0:n.preview(e.range);if(i&&i.value){var r=i.value,o=i.highlight;t&&!Ax.CL.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(r,(0,Ax.mB)(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(r,[o]))}else this.label.set("".concat((0,Bw.EZ)(e.uri),":").concat(e.range.startLineNumber+1,":").concat(e.range.startColumn+1))}}]),e}(),Yx=function(){function e(){(0,i.Z)(this,e),this.templateId=e.id}return(0,r.Z)(e,[{key:"renderTemplate",value:function(e){return new Vx(e)}},{key:"renderElement",value:function(e,t,n){n.set(e.element,e.filterData)}},{key:"disposeTemplate",value:function(){}}]),e}();Yx.id="OneReferenceRenderer";var Ux=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"getWidgetAriaLabel",value:function(){return(0,ky.N)("treeAriaLabel","References")}},{key:"getAriaLabel",value:function(e){return e.ariaMessage}}]),e}(),Kx=n(98946),qx=n(44393),Gx=n(45822),$x=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Qx=function(e,t){return function(n,i){t(n,i,e)}},Xx=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Jx=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._editor=t,this._model=n,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new Ky.SL,this._callOnModelChange=new Ky.SL,this._callOnDispose.add(this._editor.onDidChangeModel((function(){return r._onModelChanged()}))),this._onModelChanged()}return(0,r.Z)(e,[{key:"dispose",value:function(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}},{key:"_onModelChanged",value:function(){this._callOnModelChange.clear();var e=this._editor.getModel();if(e){var t,n=(0,tr.Z)(this._model.references);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(i.uri.toString()===e.uri.toString())return void this._addDecorations(i.parent)}}catch(r){n.e(r)}finally{n.f()}}}},{key:"_addDecorations",value:function(t){var n=this;if(this._editor.hasModel()){this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations((function(){return n._onDecorationChanged()})));for(var i=[],r=[],o=0,a=t.children.length;o<a;o++){var s=t.children[o];this._decorationIgnoreSet.has(s.id)||s.uri.toString()===this._editor.getModel().uri.toString()&&(i.push({range:s.range,options:e.DecorationOptions}),r.push(o))}for(var u=this._editor.deltaDecorations([],i),l=0;l<u.length;l++)this._decorations.set(u[l],t.children[r[l]])}}},{key:"_onDecorationChanged",value:function(){var e=[],t=this._editor.getModel();if(t){var n,i=(0,tr.Z)(this._decorations);try{for(i.s();!(n=i.n()).done;){var r=(0,Ti.Z)(n.value,2),o=r[0],a=r[1],s=t.getDecorationRange(o);if(s){var u=!1;if(!Gy.e.equalsRange(s,a.range)){if(Gy.e.spansMultipleLines(s))u=!0;else a.range.endColumn-a.range.startColumn!==s.endColumn-s.startColumn&&(u=!0);u?(this._decorationIgnoreSet.add(a.id),e.push(o)):a.range=s}}}}catch(d){i.e(d)}finally{i.f()}for(var l=0,c=e.length;l<c;l++)this._decorations.delete(e[l]);this._editor.deltaDecorations(e,[])}}},{key:"removeDecorations",value:function(){this._editor.deltaDecorations((0,zt.Z)(this._decorations.keys()),[]),this._decorations.clear()}}]),e}();Jx.DecorationOptions=Qy.qx.register({stickiness:1,className:"reference-decoration"});var eL=function(){function e(){(0,i.Z)(this,e),this.ratio=.7,this.heightInLines=18}return(0,r.Z)(e,null,[{key:"fromJSON",value:function(e){var t,n;try{var i=JSON.parse(e);t=i.ratio,n=i.heightInLines}catch(WS){}return{ratio:t||.7,heightInLines:n||18}}}]),e}(),tL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n)}(Kx.ls),nL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l,c,d,h){var f;return(0,i.Z)(this,n),(f=t.call(this,e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0},u))._defaultTreeKeyboardSupport=r,f.layoutData=o,f._textModelResolverService=s,f._instantiationService=u,f._peekViewService=l,f._uriLabel=c,f._undoRedoService=d,f._keybindingService=h,f._disposeOnNewModel=new Ky.SL,f._callOnDispose=new Ky.SL,f._onDidSelectReference=new kw.Q5,f.onDidSelectReference=f._onDidSelectReference.event,f._dim=new dw.Dimension(0,0),f._applyTheme(a.getColorTheme()),f._callOnDispose.add(a.onDidColorThemeChange(f._applyTheme.bind((0,Mb.Z)(f)))),f._peekViewService.addExclusiveWidget(e,(0,Mb.Z)(f)),f.create(),f}return(0,r.Z)(n,[{key:"dispose",value:function(){this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),(0,Ky.B9)(this._preview),(0,Ky.B9)(this._previewNotAvailableMessage),(0,Ky.B9)(this._tree),(0,Ky.B9)(this._previewModelReference),this._splitView.dispose(),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"_applyTheme",value:function(e){var t=e.getColor(Yk)||RC.Il.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(zk)||RC.Il.transparent,primaryHeadingColor:e.getColor(Wk),secondaryHeadingColor:e.getColor(Vk)})}},{key:"show",value:function(e){this.editor.revealRangeInCenterIfOutsideViewport(e,0),(0,nw.Z)((0,iw.Z)(n.prototype),"show",this).call(this,e,this.layoutData.heightInLines||18)}},{key:"focusOnReferenceTree",value:function(){this._tree.domFocus()}},{key:"focusOnPreviewEditor",value:function(){this._preview.focus()}},{key:"isPreviewEditorFocused",value:function(){return this._preview.hasTextFocus()}},{key:"_onTitleClick",value:function(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?"side":"open",source:"title"})}},{key:"_fillBody",value:function(e){var t=this;this.setCssClass("reference-zone-widget"),this._messageContainer=dw.append(e,dw.$("div.messages")),dw.hide(this._messageContainer),this._splitView=new qx.z(e,{orientation:1}),this._previewContainer=dw.append(e,dw.$("div.preview.inline"));this._preview=this._instantiationService.createInstance(fk,this._previewContainer,{scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!1},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}},this.editor),dw.hide(this._previewContainer),this._previewNotAvailableMessage=new Qy.yO(ky.N("missingPreviewMessage","no preview available"),Qy.yO.DEFAULT_CREATION_OPTIONS,null,null,this._undoRedoService),this._treeContainer=dw.append(e,dw.$("div.ref-tree.inline"));var n={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new Ux,keyboardNavigationLabelProvider:this._instantiationService.createInstance(Hx),identityProvider:new Bx,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:Uk}};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(dw.addStandardDisposableListener(this._treeContainer,"keydown",(function(e){e.equals(9)&&(t._keybindingService.dispatchEvent(e,e.target),e.stopPropagation())}),!0)),this._tree=this._instantiationService.createInstance(tL,"ReferencesWidget",this._treeContainer,new jx,[this._instantiationService.createInstance(Wx),this._instantiationService.createInstance(Yx)],this._instantiationService.createInstance(Fx),n),this._splitView.addView({onDidChange:kw.ju.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:function(e){t._preview.layout({height:t._dim.height,width:e})}},qx.M.Distribute),this._splitView.addView({onDidChange:kw.ju.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:function(e){t._treeContainer.style.height="".concat(t._dim.height,"px"),t._treeContainer.style.width="".concat(e,"px"),t._tree.layout(t._dim.height,e)}},qx.M.Distribute),this._disposables.add(this._splitView.onDidSashChange((function(){t._dim.width&&(t.layoutData.ratio=t._splitView.getViewSize(0)/t._dim.width)}),void 0));var i=function(e,n){e instanceof mx&&("show"===n&&t._revealReference(e,!1),t._onDidSelectReference.fire({element:e,kind:n,source:"tree"}))};this._tree.onDidOpen((function(e){e.sideBySide?i(e.element,"side"):e.editorOptions.pinned?i(e.element,"goto"):i(e.element,"show")})),dw.hide(this._treeContainer)}},{key:"_onWidth",value:function(e){this._dim&&this._doLayoutBody(this._dim.height,e)}},{key:"_doLayoutBody",value:function(e,t){(0,nw.Z)((0,iw.Z)(n.prototype),"_doLayoutBody",this).call(this,e,t),this._dim=new dw.Dimension(t,e),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(t),this._splitView.resizeView(0,t*this.layoutData.ratio)}},{key:"setSelection",value:function(e){var t=this;return this._revealReference(e,!0).then((function(){t._model&&(t._tree.setSelection([e]),t._tree.setFocus([e]))}))}},{key:"setModel",value:function(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}},{key:"_onNewModel",value:function(){var e=this;return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=ky.N("noResults","No results"),dw.show(this._messageContainer),Promise.resolve(void 0)):(dw.hide(this._messageContainer),this._decorationsManager=new Jx(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((function(t){return e._tree.rerender(t)}))),this._disposeOnNewModel.add(this._preview.onMouseDown((function(t){var n=t.event,i=t.target;if(2===n.detail){var r=e._getFocusedReference();r&&e._onDidSelectReference.fire({element:{uri:r.uri,range:i.range},kind:n.ctrlKey||n.metaKey||n.altKey?"side":"open",source:"editor"})}}))),this.container.classList.add("results-loaded"),dw.show(this._treeContainer),dw.show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(1===this._model.groups.length?this._model.groups[0]:this._model)):Promise.resolve(void 0)}},{key:"_getFocusedReference",value:function(){var e=this._tree.getFocus(),t=(0,Ti.Z)(e,1)[0];return t instanceof mx?t:t instanceof yx&&t.children.length>0?t.children[0]:void 0}},{key:"revealReference",value:function(e){return Xx(this,void 0,void 0,ti().mark((function t(){return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._revealReference(e,!1);case 2:this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"});case 3:case"end":return t.stop()}}),t,this)})))}},{key:"_revealReference",value:function(e,t){return Xx(this,void 0,void 0,ti().mark((function n(){var i,r,o,a,s;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(this._revealedReference!==e){n.next=2;break}return n.abrupt("return");case 2:if(this._revealedReference=e,e.uri.scheme!==rk.lg.inMemory?this.setTitle((0,Bw.Hx)(e.uri),this._uriLabel.getUriLabel((0,Bw.XX)(e.uri))):this.setTitle(ky.N("peekView.alternateTitle","References")),i=this._textModelResolverService.createModelReference(e.uri),this._tree.getInput()!==e.parent){n.next=9;break}this._tree.reveal(e),n.next=13;break;case 9:return t&&this._tree.reveal(e.parent),n.next=12,this._tree.expand(e.parent);case 12:this._tree.reveal(e);case 13:return n.next=15,i;case 15:if(r=n.sent,this._model){n.next=19;break}return r.dispose(),n.abrupt("return");case 19:(0,Ky.B9)(this._previewModelReference),(o=r.object)?(a=this._preview.getModel()===o.textEditorModel?0:1,s=Gy.e.lift(e.range).collapseToStart(),this._previewModelReference=r,this._preview.setModel(o.textEditorModel),this._preview.setSelection(s),this._preview.revealRangeInCenter(s,a)):(this._preview.setModel(this._previewNotAvailableMessage),r.dispose());case 22:case"end":return n.stop()}}),n,this)})))}}]),n}(Hk);nL=$x([Qx(3,eb.XE),Qx(4,Dx.S),Qx(5,cw.TG),Qx(6,Zk),Qx(7,iS.e),Qx(8,Gx.tJ),Qx(9,pw.d)],nL),(0,eb.Ic)((function(e,t){var n=e.getColor(Jk);n&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { background-color: ".concat(n,"; }"));var i=e.getColor(eS);i&&t.addRule(".monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: ".concat(i,"; }"));var r=e.getColor(tS);r&&t.addRule(".monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid ".concat(r,"; box-sizing: border-box; }"));var o=e.getColor(Jy.xL);o&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { border: 1px dotted ".concat(o,"; box-sizing: border-box; }"));var a=e.getColor(Uk);a&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree { background-color: ".concat(a,"; }"));var s=e.getColor(Kk);s&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree { color: ".concat(s,"; }"));var u=e.getColor(qk);u&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .reference-file { color: ".concat(u,"; }"));var l=e.getColor(Gk);l&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { background-color: ".concat(l,"; }"));var c=e.getColor($k);c&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { color: ".concat(c," !important; }"));var d=e.getColor(Qk);d&&t.addRule(".monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {"+"\tbackground-color: ".concat(d,";")+"}");var h=e.getColor(Xk);h&&t.addRule(".monaco-editor .reference-zone-widget .preview .monaco-editor .margin {"+"\tbackground-color: ".concat(h,";")+"}")}));var iL=n(51519),rL=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},oL=function(e,t){return function(n,i){t(n,i,e)}},aL=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},sL=new Ey.uy("referenceSearchVisible",!1,ky.N("referenceSearchVisible","Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),uL=function(){function e(t,n,r,o,a,s,u,l){(0,i.Z)(this,e),this._defaultTreeKeyboardSupport=t,this._editor=n,this._editorService=o,this._notificationService=a,this._instantiationService=s,this._storageService=u,this._configurationService=l,this._disposables=new Ky.SL,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=sL.bindTo(r)}return(0,r.Z)(e,[{key:"dispose",value:function(){var e,t;this._referenceSearchVisible.reset(),this._disposables.dispose(),null===(e=this._widget)||void 0===e||e.dispose(),null===(t=this._model)||void 0===t||t.dispose(),this._widget=void 0,this._model=void 0}},{key:"toggleWidget",value:function(e,t,n){var i,r=this;if(this._widget&&(i=this._widget.position),this.closeWidget(),!i||!e.containsPosition(i)){this._peekMode=n,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage((function(){r.closeWidget()}))),this._disposables.add(this._editor.onDidChangeModel((function(){r._ignoreModelChangeEvent||r.closeWidget()})));var o="peekViewLayout",a=eL.fromJSON(this._storageService.get(o,0,"{}"));this._widget=this._instantiationService.createInstance(nL,this._editor,this._defaultTreeKeyboardSupport,a),this._widget.setTitle(ky.N("labelLoading","Loading...")),this._widget.show(e),this._disposables.add(this._widget.onDidClose((function(){t.cancel(),r._widget&&(r._storageService.store(o,JSON.stringify(r._widget.layoutData),0,1),r._widget=void 0),r.closeWidget()}))),this._disposables.add(this._widget.onDidSelectReference((function(e){var t=e.element,i=e.kind;if(t)switch(i){case"open":"editor"===e.source&&r._configurationService.getValue("editor.stablePeek")||r.openReference(t,!1,!1);break;case"side":r.openReference(t,!0,!1);break;case"goto":n?r._gotoReference(t):r.openReference(t,!1,!0)}})));var s=++this._requestIdPool;t.then((function(t){var n;if(s===r._requestIdPool&&r._widget)return null===(n=r._model)||void 0===n||n.dispose(),r._model=t,r._widget.setModel(r._model).then((function(){if(r._widget&&r._model&&r._editor.hasModel()){r._model.isEmpty?r._widget.setMetaTitle(""):r._widget.setMetaTitle(ky.N("metaTitle.N","{0} ({1})",r._model.title,r._model.references.length));var t=r._editor.getModel().uri,n=new qy.L(e.startLineNumber,e.startColumn),i=r._model.nearestReference(t,n);if(i)return r._widget.setSelection(i).then((function(){r._widget&&"editor"===r._editor.getOption(73)&&r._widget.focusOnPreviewEditor()}))}}));t.dispose()}),(function(e){r._notificationService.error(e)}))}}},{key:"changeFocusBetweenPreviewAndReferences",value:function(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}},{key:"goToNextOrPreviousReference",value:function(e){return aL(this,void 0,void 0,ti().mark((function t(){var n,i,r,o,a;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()&&this._model&&this._widget){t.next=2;break}return t.abrupt("return");case 2:if(n=this._widget.position){t.next=5;break}return t.abrupt("return");case 5:if(i=this._model.nearestReference(this._editor.getModel().uri,n)){t.next=8;break}return t.abrupt("return");case 8:return r=this._model.nextOrPreviousReference(i,e),o=this._editor.hasTextFocus(),a=this._widget.isPreviewEditorFocused(),t.next=13,this._widget.setSelection(r);case 13:return t.next=15,this._gotoReference(r);case 15:o?this._editor.focus():this._widget&&a&&this._widget.focusOnPreviewEditor();case 16:case"end":return t.stop()}}),t,this)})))}},{key:"revealReference",value:function(e){return aL(this,void 0,void 0,ti().mark((function t(){return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()&&this._model&&this._widget){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,this._widget.revealReference(e);case 4:case"end":return t.stop()}}),t,this)})))}},{key:"closeWidget",value:function(){var e,t,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];null===(e=this._widget)||void 0===e||e.dispose(),null===(t=this._model)||void 0===t||t.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,n&&this._editor.focus(),this._requestIdPool+=1}},{key:"_gotoReference",value:function(t){var n=this;this._widget&&this._widget.hide(),this._ignoreModelChangeEvent=!0;var i=Gy.e.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:i}},this._editor).then((function(t){var r;if(n._ignoreModelChangeEvent=!1,t&&n._widget)if(n._editor===t)n._widget.show(i),n._widget.focusOnReferenceTree();else{var o=e.get(t),a=n._model.clone();n.closeWidget(),t.focus(),o.toggleWidget(i,(0,Uy.PG)((function(e){return Promise.resolve(a)})),null!==(r=n._peekMode)&&void 0!==r&&r)}else n.closeWidget()}),(function(e){n._ignoreModelChangeEvent=!1,(0,My.dL)(e)}))}},{key:"openReference",value:function(e,t,n){t||this.closeWidget();var i=e.uri,r=e.range;this._editorService.openCodeEditor({resource:i,options:{selection:r,pinned:n}},this._editor,t)}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();function lL(e,t){var n=function(e){var t=e.get(mb.$).getFocusedCodeEditor();return t instanceof fk?t.getParentEditor():t}(e);if(n){var i=uL.get(n);i&&t(i)}}uL.ID="editor.contrib.referencesController",uL=rL([oL(2,Ey.i6),oL(3,mb.$),oL(4,jw.lT),oL(5,cw.TG),oL(6,wC.Uy),oL(7,ZC.Ui)],uL),iL.W.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:(0,Ly.gx)(2089,60),when:Ey.Ao.or(sL,Ak.inPeekEditor),handler:function(e){lL(e,(function(e){e.changeFocusBetweenPreviewAndReferences()}))}}),iL.W.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:Ey.Ao.or(sL,Ak.inPeekEditor),handler:function(e){lL(e,(function(e){e.goToNextOrPreviousReference(!0)}))}}),iL.W.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:Ey.Ao.or(sL,Ak.inPeekEditor),handler:function(e){lL(e,(function(e){e.goToNextOrPreviousReference(!1)}))}}),Vb.P.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),Vb.P.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),Vb.P.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),Vb.P.registerCommand("closeReferenceSearch",(function(e){return lL(e,(function(e){return e.closeWidget()}))})),iL.W.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:Ey.Ao.and(Ak.inPeekEditor,Ey.Ao.not("config.editor.stablePeek"))}),iL.W.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:Ey.Ao.and(sL,Ey.Ao.not("config.editor.stablePeek"))}),iL.W.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:Ey.Ao.and(sL,Kx.CQ),handler:function(e){var t,n=null===(t=e.get(Kx.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof mx&&lL(e,(function(e){return e.revealReference(n[0])}))}}),iL.W.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:Ey.Ao.and(sL,Kx.CQ),handler:function(e){var t,n=null===(t=e.get(Kx.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof mx&&lL(e,(function(e){return e.openReference(n[0],!0,!0)}))}}),Vb.P.registerCommand("openReference",(function(e){var t,n=null===(t=e.get(Kx.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof mx&&lL(e,(function(e){return e.openReference(n[0],!1,!0)}))}));var cL=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},dL=function(e,t){return function(n,i){t(n,i,e)}},hL=new Ey.uy("hasSymbols",!1,(0,ky.N)("hasSymbols","Whether there are symbol locations that can be navigated via keyboard-only.")),fL=(0,cw.yh)("ISymbolNavigationService"),pL=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._editorService=n,this._notificationService=r,this._keybindingService=o,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=hL.bindTo(t)}return(0,r.Z)(e,[{key:"reset",value:function(){var e,t;this._ctxHasSymbols.reset(),null===(e=this._currentState)||void 0===e||e.dispose(),null===(t=this._currentMessage)||void 0===t||t.dispose(),this._currentModel=void 0,this._currentIdx=-1}},{key:"put",value:function(e){var t=this,n=e.parent.parent;if(n.references.length<=1)this.reset();else{this._currentModel=n,this._currentIdx=n.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();var i=new gL(this._editorService),r=i.onDidChange((function(e){if(!t._ignoreEditorChange){var i=t._editorService.getActiveCodeEditor();if(i){var r=i.getModel(),o=i.getPosition();if(r&&o){var a,s=!1,u=!1,l=(0,tr.Z)(n.references);try{for(l.s();!(a=l.n()).done;){var c=a.value;if((0,Bw.Xy)(c.uri,r.uri))s=!0,u=u||Gy.e.containsPosition(c.range,o);else if(s)break}}catch(d){l.e(d)}finally{l.f()}s&&u||t.reset()}}}}));this._currentState=(0,Ky.F8)(i,r)}}},{key:"revealNext",value:function(e){var t=this;if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;var n=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:n.uri,options:{selection:Gy.e.collapseToStart(n.range),selectionRevealType:3}},e).finally((function(){t._ignoreEditorChange=!1}))}},{key:"_showMessage",value:function(){var e;null===(e=this._currentMessage)||void 0===e||e.dispose();var t=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),n=t?(0,ky.N)("location.kb","Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):(0,ky.N)("location","Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(n)}}]),e}();pL=cL([dL(0,Ey.i6),dL(1,mb.$),dL(2,jw.lT),dL(3,pw.d)],pL),(0,yC.z)(fL,pL,!0),(0,Cy.fK)(new(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.gotoNextSymbolFromResult",precondition:hL,kbOpts:{weight:100,primary:70}})}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t){return e.get(fL).revealNext(t)}}]),n}(Cy._l))),iL.W.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:hL,primary:9,handler:function(e){e.get(fL).reset()}});var gL=function(){function e(t){(0,i.Z)(this,e),this._listener=new Map,this._disposables=new Ky.SL,this._onDidChange=new kw.Q5,this.onDidChange=this._onDidChange.event,this._disposables.add(t.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(t.onCodeEditorAdd(this._onDidAddEditor,this)),t.listCodeEditors().forEach(this._onDidAddEditor,this)}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this._onDidChange.dispose(),(0,Ky.B9)(this._listener.values())}},{key:"_onDidAddEditor",value:function(e){var t=this;this._listener.set(e,(0,Ky.F8)(e.onDidChangeCursorPosition((function(n){return t._onDidChange.fire({editor:e})})),e.onDidChangeModelContent((function(n){return t._onDidChange.fire({editor:e})}))))}},{key:"_onDidRemoveEditor",value:function(e){var t;null===(t=this._listener.get(e))||void 0===t||t.dispose(),this._listener.delete(e)}}]),e}();gL=cL([dL(0,mb.$)],gL);var vL,mL,_L,yL,bL,wL,CL,kL,SL=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};tb.BH.appendMenuItem(tb.eH.EditorContext,{submenu:tb.eH.EditorContextPeek,title:ky.N("peek.submenu","Peek"),group:"navigation",order:100});var xL=new Set;function LL(e){var t=new e;return(0,Cy.QG)(t),xL.add(t.id),t}var EL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r))._configuration=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=this;if(!t.hasModel())return Promise.resolve(void 0);var i=e.get(jw.lT),r=e.get(mb.$),o=e.get(Wb.e),a=e.get(fL),s=t.getModel(),u=t.getPosition(),l=new Pb.Dl(t,5),c=(0,Uy.eP)(this._getLocationModel(s,u,l.token),l.token).then((function(e){return SL(n,void 0,void 0,ti().mark((function n(){var i,o,c,d;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e&&!l.token.isCancellationRequested){n.next=2;break}return n.abrupt("return");case 2:if((0,Py.Z9)(e.ariaMessage),e.referenceAt(s.uri,u)&&(o=this._getAlternativeCommand(t))!==this.id&&xL.has(o)&&(i=t.getAction(o)),0!==(c=e.references.length)){n.next=9;break}this._configuration.muteMessage||(d=s.getWordAtPosition(u),sw.get(t).showMessage(this._getNoResultFoundMessage(d),u)),n.next=14;break;case 9:if(1!==c||!i){n.next=13;break}i.run(),n.next=14;break;case 13:return n.abrupt("return",this._onResult(r,a,t,e));case 14:case"end":return n.stop()}}),n,this)})))}),(function(e){i.error(e)})).finally((function(){l.dispose()}));return o.showWhile(c,250),c}},{key:"_onResult",value:function(e,t,n,i){return SL(this,void 0,void 0,ti().mark((function r(){var o,a,s,u;return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=this._getGoToPreference(n),n instanceof fk||!(this._configuration.openInPeek||"peek"===o&&i.references.length>1)){r.next=5;break}this._openInPeek(n,i),r.next=12;break;case 5:return a=i.firstReference(),s=i.references.length>1&&"gotoAndPeek"===o,r.next=9,this._openReference(n,e,a,this._configuration.openToSide,!s);case 9:u=r.sent,s&&u?this._openInPeek(u,i):i.dispose(),"goto"===o&&t.put(a);case 12:case"end":return r.stop()}}),r,this)})))}},{key:"_openReference",value:function(e,t,n,i,r){return SL(this,void 0,void 0,ti().mark((function o(){var a,s,u,l;return ti().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(a=void 0,(0,Zb.vx)(n)&&(a=n.targetSelectionRange),a||(a=n.range),a){o.next=5;break}return o.abrupt("return",void 0);case 5:return o.next=7,t.openCodeEditor({resource:n.uri,options:{selection:Gy.e.collapseToStart(a),selectionRevealType:3}},e,i);case 7:if(s=o.sent){o.next=10;break}return o.abrupt("return",void 0);case 10:return r&&(u=s.getModel(),l=s.deltaDecorations([],[{range:a,options:{className:"symbolHighlight"}}]),setTimeout((function(){s.getModel()===u&&s.deltaDecorations(l,[])}),350)),o.abrupt("return",s);case 12:case"end":return o.stop()}}),o)})))}},{key:"_openInPeek",value:function(e,t){var n=uL.get(e);n&&e.hasModel()?n.toggleWidget(e.getSelection(),(0,Uy.PG)((function(e){return Promise.resolve(t)})),this._configuration.openInPeek):t.dispose()}}]),n}(Cy.R6),NL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return SL(this,void 0,void 0,ti().mark((function i(){return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=bx,i.next=3,kx(e,t,n);case 3:return i.t1=i.sent,i.t2=ky.N("def.title","Definitions"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?ky.N("noResultWord","No definition found for '{0}'",e.word):ky.N("generic.noResults","No definition found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeDefinitionCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleDefinitions}}]),n}(EL),DL=gb.$L&&!pb.$W?2118:70;LL(((vL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),e=t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.id,label:ky.N("actions.goToDecl.label","Go to Definition"),alias:"Go to Definition",precondition:Ey.Ao.and(Sy.u.hasDefinitionProvider,Sy.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:DL,weight:100},contextMenuOpts:{group:"navigation",order:1.1},menuOpts:{menuId:tb.eH.MenubarGoMenu,group:"4_symbol_nav",order:2,title:ky.N({key:"miGotoDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Definition")}}),Vb.P.registerCommandAlias("editor.action.goToDeclaration",n.id),e}return(0,r.Z)(n)}(NL)).id="editor.action.revealDefinition",vL)),LL(((mL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),e=t.call(this,{openToSide:!0,openInPeek:!1,muteMessage:!1},{id:n.id,label:ky.N("actions.goToDeclToSide.label","Open Definition to the Side"),alias:"Open Definition to the Side",precondition:Ey.Ao.and(Sy.u.hasDefinitionProvider,Sy.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,DL),weight:100}}),Vb.P.registerCommandAlias("editor.action.openDeclarationToTheSide",n.id),e}return(0,r.Z)(n)}(NL)).id="editor.action.revealDefinitionAside",mL)),LL(((_L=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),e=t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:n.id,label:ky.N("actions.previewDecl.label","Peek Definition"),alias:"Peek Definition",precondition:Ey.Ao.and(Sy.u.hasDefinitionProvider,Ak.notInPeekEditor,Sy.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:582,linux:{primary:3140},weight:100},contextMenuOpts:{menuId:tb.eH.EditorContextPeek,group:"peek",order:2}}),Vb.P.registerCommandAlias("editor.action.previewDeclaration",n.id),e}return(0,r.Z)(n)}(NL)).id="editor.action.peekDefinition",_L));var ML=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return SL(this,void 0,void 0,ti().mark((function i(){return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=bx,i.next=3,Sx(e,t,n);case 3:return i.t1=i.sent,i.t2=ky.N("decl.title","Declarations"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?ky.N("decl.noResultWord","No declaration found for '{0}'",e.word):ky.N("decl.generic.noResults","No declaration found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeDeclarationCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleDeclarations}}]),n}(EL);LL(((yL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.id,label:ky.N("actions.goToDeclaration.label","Go to Declaration"),alias:"Go to Declaration",precondition:Ey.Ao.and(Sy.u.hasDeclarationProvider,Sy.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{group:"navigation",order:1.3},menuOpts:{menuId:tb.eH.MenubarGoMenu,group:"4_symbol_nav",order:3,title:ky.N({key:"miGotoDeclaration",comment:["&& denotes a mnemonic"]},"Go to &&Declaration")}})}return(0,r.Z)(n,[{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?ky.N("decl.noResultWord","No declaration found for '{0}'",e.word):ky.N("decl.generic.noResults","No declaration found")}}]),n}(ML)).id="editor.action.revealDeclaration",yL)),LL(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",label:ky.N("actions.peekDecl.label","Peek Declaration"),alias:"Peek Declaration",precondition:Ey.Ao.and(Sy.u.hasDeclarationProvider,Ak.notInPeekEditor,Sy.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:tb.eH.EditorContextPeek,group:"peek",order:3}})}return(0,r.Z)(n)}(ML));var TL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return SL(this,void 0,void 0,ti().mark((function i(){return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=bx,i.next=3,Lx(e,t,n);case 3:return i.t1=i.sent,i.t2=ky.N("typedef.title","Type Definitions"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?ky.N("goToTypeDefinition.noResultWord","No type definition found for '{0}'",e.word):ky.N("goToTypeDefinition.generic.noResults","No type definition found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeTypeDefinitionCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleTypeDefinitions}}]),n}(EL);LL(((bL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.ID,label:ky.N("actions.goToTypeDefinition.label","Go to Type Definition"),alias:"Go to Type Definition",precondition:Ey.Ao.and(Sy.u.hasTypeDefinitionProvider,Sy.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:0,weight:100},contextMenuOpts:{group:"navigation",order:1.4},menuOpts:{menuId:tb.eH.MenubarGoMenu,group:"4_symbol_nav",order:3,title:ky.N({key:"miGotoTypeDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Type Definition")}})}return(0,r.Z)(n)}(TL)).ID="editor.action.goToTypeDefinition",bL)),LL(((wL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:n.ID,label:ky.N("actions.peekTypeDefinition.label","Peek Type Definition"),alias:"Peek Type Definition",precondition:Ey.Ao.and(Sy.u.hasTypeDefinitionProvider,Ak.notInPeekEditor,Sy.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:tb.eH.EditorContextPeek,group:"peek",order:4}})}return(0,r.Z)(n)}(TL)).ID="editor.action.peekTypeDefinition",wL));var OL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return SL(this,void 0,void 0,ti().mark((function i(){return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=bx,i.next=3,xx(e,t,n);case 3:return i.t1=i.sent,i.t2=ky.N("impl.title","Implementations"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?ky.N("goToImplementation.noResultWord","No implementation found for '{0}'",e.word):ky.N("goToImplementation.generic.noResults","No implementation found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeImplementationCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleImplementations}}]),n}(EL);LL(((CL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.ID,label:ky.N("actions.goToImplementation.label","Go to Implementations"),alias:"Go to Implementations",precondition:Ey.Ao.and(Sy.u.hasImplementationProvider,Sy.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:2118,weight:100},menuOpts:{menuId:tb.eH.MenubarGoMenu,group:"4_symbol_nav",order:4,title:ky.N({key:"miGotoImplementation",comment:["&& denotes a mnemonic"]},"Go to &&Implementations")},contextMenuOpts:{group:"navigation",order:1.45}})}return(0,r.Z)(n)}(OL)).ID="editor.action.goToImplementation",CL)),LL(((kL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:n.ID,label:ky.N("actions.peekImplementation.label","Peek Implementations"),alias:"Peek Implementations",precondition:Ey.Ao.and(Sy.u.hasImplementationProvider,Ak.notInPeekEditor,Sy.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3142,weight:100},contextMenuOpts:{menuId:tb.eH.EditorContextPeek,group:"peek",order:5}})}return(0,r.Z)(n)}(OL)).ID="editor.action.peekImplementation",kL));var IL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getNoResultFoundMessage",value:function(e){return e?ky.N("references.no","No references found for '{0}'",e.word):ky.N("references.noGeneric","No references found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeReferenceCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleReferences}}]),n}(EL);LL(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",label:ky.N("goToReferences.label","Go to References"),alias:"Go to References",precondition:Ey.Ao.and(Sy.u.hasReferenceProvider,Ak.notInPeekEditor,Sy.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1094,weight:100},contextMenuOpts:{group:"navigation",order:1.45},menuOpts:{menuId:tb.eH.MenubarGoMenu,group:"4_symbol_nav",order:5,title:ky.N({key:"miGotoReference",comment:["&& denotes a mnemonic"]},"Go to &&References")}})}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return SL(this,void 0,void 0,ti().mark((function i(){return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=bx,i.next=3,Ex(e,t,!0,n);case 3:return i.t1=i.sent,i.t2=ky.N("ref.title","References"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}}]),n}(IL)),LL(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",label:ky.N("references.action.label","Peek References"),alias:"Peek References",precondition:Ey.Ao.and(Sy.u.hasReferenceProvider,Ak.notInPeekEditor,Sy.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:tb.eH.EditorContextPeek,group:"peek",order:6}})}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return SL(this,void 0,void 0,ti().mark((function i(){return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=bx,i.next=3,Ex(e,t,!1,n);case 3:return i.t1=i.sent,i.t2=ky.N("ref.title","References"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}}]),n}(IL));var AL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,e,{id:"editor.action.goToLocation",label:ky.N("label.generic","Go To Any Symbol"),alias:"Go To Any Symbol",precondition:Ey.Ao.and(Ak.notInPeekEditor,Sy.u.isInWalkThroughSnippet.toNegated())}))._references=r,a._gotoMultipleBehaviour=o,a}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return SL(this,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new bx(this._references,ky.N("generic.title","Locations")));case 1:case"end":return e.stop()}}),e,this)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&ky.N("generic.noResult","No results for '{0}'",e.word)||""}},{key:"_getGoToPreference",value:function(e){var t;return null!==(t=this._gotoMultipleBehaviour)&&void 0!==t?t:e.getOption(47).multipleReferences}},{key:"_getAlternativeCommand",value:function(){return""}}]),n}(EL);function RL(e,t){return!!e[t]}Vb.P.registerCommand({id:"editor.action.goToLocations",description:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:Rb.o},{name:"position",description:"The position at which to start",constraint:qy.L.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:function(e,t,n,s,u,l,c){return SL(void 0,void 0,void 0,ti().mark((function d(){var h,f;return ti().wrap((function(d){for(;;)switch(d.prev=d.next){case 0:return(0,cC.p_)(Rb.o.isUri(t)),(0,cC.p_)(qy.L.isIPosition(n)),(0,cC.p_)(Array.isArray(s)),(0,cC.p_)("undefined"===typeof u||"string"===typeof u),(0,cC.p_)("undefined"===typeof c||"boolean"===typeof c),h=e.get(mb.$),d.next=8,h.openCodeEditor({resource:t},h.getFocusedCodeEditor());case 8:if(f=d.sent,!(0,Mx.CL)(f)){d.next=13;break}return f.setPosition(n),f.revealPositionInCenterIfOutsideViewport(n,0),d.abrupt("return",f.invokeWithinContext((function(e){var t=new(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getNoResultFoundMessage",value:function(e){return l||(0,nw.Z)((0,iw.Z)(n.prototype),"_getNoResultFoundMessage",this).call(this,e)}}]),n}(AL))({muteMessage:!Boolean(l),openInPeek:Boolean(c),openToSide:!1},s,u);e.get(cw.TG).invokeFunction(t.run.bind(t),f)})));case 13:case"end":return d.stop()}}),d)})))}}),Vb.P.registerCommand({id:"editor.action.peekLocations",description:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:Rb.o},{name:"position",description:"The position at which to start",constraint:qy.L.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"}]},handler:function(e,t,n,i,r){return SL(void 0,void 0,void 0,ti().mark((function o(){return ti().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:e.get(Vb.H).executeCommand("editor.action.goToLocations",t,n,i,r,void 0,!0);case 1:case"end":return o.stop()}}),o)})))}}),Vb.P.registerCommand({id:"editor.action.findReferences",handler:function(e,t,n){(0,cC.p_)(Rb.o.isUri(t)),(0,cC.p_)(qy.L.isIPosition(n));var i=e.get(mb.$);return i.openCodeEditor({resource:t},i.getFocusedCodeEditor()).then((function(e){if((0,Mx.CL)(e)&&e.hasModel()){var t=uL.get(e);if(t){var i=(0,Uy.PG)((function(t){return Ex(e.getModel(),qy.L.lift(n),!1,t).then((function(e){return new bx(e,ky.N("ref.title","References"))}))})),r=new Gy.e(n.lineNumber,n.column,n.lineNumber,n.column);return Promise.resolve(t.toggleWidget(r,i,!1))}}}))}}),Vb.P.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var PL=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.target=t.target,this.hasTriggerModifier=RL(t.event,n.triggerModifier),this.hasSideBySideModifier=RL(t.event,n.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=t.event.detail<=1})),ZL=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.keyCodeIsTriggerKey=t.keyCode===n.triggerKey,this.keyCodeIsSideBySideKey=t.keyCode===n.triggerSideBySideKey,this.hasTriggerModifier=RL(t,n.triggerModifier)})),FL=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.triggerKey=t,this.triggerModifier=n,this.triggerSideBySideKey=r,this.triggerSideBySideModifier=o}return(0,r.Z)(e,[{key:"equals",value:function(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}}]),e}();function jL(e){return"altKey"===e?gb.dz?new FL(57,"metaKey",6,"altKey"):new FL(5,"ctrlKey",6,"altKey"):gb.dz?new FL(6,"altKey",57,"metaKey"):new FL(6,"altKey",5,"ctrlKey")}var HL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._onMouseMoveOrRelevantKeyDown=r._register(new kw.Q5),r.onMouseMoveOrRelevantKeyDown=r._onMouseMoveOrRelevantKeyDown.event,r._onExecute=r._register(new kw.Q5),r.onExecute=r._onExecute.event,r._onCancel=r._register(new kw.Q5),r.onCancel=r._onCancel.event,r._editor=e,r._opts=jL(r._editor.getOption(66)),r._lastMouseMoveEvent=null,r._hasTriggerKeyOnMouseDown=!1,r._lineNumberOnMouseDown=0,r._register(r._editor.onDidChangeConfiguration((function(e){if(e.hasChanged(66)){var t=jL(r._editor.getOption(66));if(r._opts.equals(t))return;r._opts=t,r._lastMouseMoveEvent=null,r._hasTriggerKeyOnMouseDown=!1,r._lineNumberOnMouseDown=0,r._onCancel.fire()}}))),r._register(r._editor.onMouseMove((function(e){return r._onEditorMouseMove(new PL(e,r._opts))}))),r._register(r._editor.onMouseDown((function(e){return r._onEditorMouseDown(new PL(e,r._opts))}))),r._register(r._editor.onMouseUp((function(e){return r._onEditorMouseUp(new PL(e,r._opts))}))),r._register(r._editor.onKeyDown((function(e){return r._onEditorKeyDown(new ZL(e,r._opts))}))),r._register(r._editor.onKeyUp((function(e){return r._onEditorKeyUp(new ZL(e,r._opts))}))),r._register(r._editor.onMouseDrag((function(){return r._resetHandler()}))),r._register(r._editor.onDidChangeCursorSelection((function(e){return r._onDidChangeCursorSelection(e)}))),r._register(r._editor.onDidChangeModel((function(e){return r._resetHandler()}))),r._register(r._editor.onDidChangeModelContent((function(){return r._resetHandler()}))),r._register(r._editor.onDidScrollChange((function(e){(e.scrollTopChanged||e.scrollLeftChanged)&&r._resetHandler()}))),r}return(0,r.Z)(n,[{key:"_onDidChangeCursorSelection",value:function(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}},{key:"_onEditorMouseMove",value:function(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}},{key:"_onEditorMouseDown",value:function(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=e.target.position?e.target.position.lineNumber:0}},{key:"_onEditorMouseUp",value:function(e){var t=e.target.position?e.target.position.lineNumber:0;this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}},{key:"_onEditorKeyDown",value:function(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}},{key:"_onEditorKeyUp",value:function(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}},{key:"_resetHandler",value:function(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}]),n}(Ky.JT),BL=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},zL=function(e,t){return function(n,i){t(n,i,e)}},WL=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this.textModelResolverService=n,this.modeService=r,this.toUnhook=new Ky.SL,this.toUnhookForKeyboard=new Ky.SL,this.linkDecorations=[],this.currentWordAtPosition=null,this.previousPromise=null,this.editor=t;var a=new HL(t);this.toUnhook.add(a),this.toUnhook.add(a.onMouseMoveOrRelevantKeyDown((function(e){var t=(0,Ti.Z)(e,2),n=t[0],i=t[1];o.startFindDefinitionFromMouse(n,(0,cC.f6)(i))}))),this.toUnhook.add(a.onExecute((function(e){o.isEnabled(e)&&o.gotoDefinition(e.target.position,e.hasSideBySideModifier).then((function(){o.removeLinkDecorations()}),(function(e){o.removeLinkDecorations(),(0,My.dL)(e)}))}))),this.toUnhook.add(a.onCancel((function(){o.removeLinkDecorations(),o.currentWordAtPosition=null})))}return(0,r.Z)(e,[{key:"startFindDefinitionFromCursor",value:function(e){var t=this;return this.startFindDefinition(e).then((function(){t.toUnhookForKeyboard.add(t.editor.onDidChangeCursorPosition((function(){t.currentWordAtPosition=null,t.removeLinkDecorations(),t.toUnhookForKeyboard.clear()}))),t.toUnhookForKeyboard.add(t.editor.onKeyDown((function(e){e&&(t.currentWordAtPosition=null,t.removeLinkDecorations(),t.toUnhookForKeyboard.clear())})))}))}},{key:"startFindDefinitionFromMouse",value:function(e,t){if(!(9===e.target.type&&this.linkDecorations.length>0)){if(!this.editor.hasModel()||!this.isEnabled(e,t))return this.currentWordAtPosition=null,void this.removeLinkDecorations();var n=e.target.position;this.startFindDefinition(n)}}},{key:"startFindDefinition",value:function(e){var t,n=this;this.toUnhookForKeyboard.clear();var i=e?null===(t=this.editor.getModel())||void 0===t?void 0:t.getWordAtPosition(e):null;if(!i)return this.currentWordAtPosition=null,this.removeLinkDecorations(),Promise.resolve(0);if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===i.startColumn&&this.currentWordAtPosition.endColumn===i.endColumn&&this.currentWordAtPosition.word===i.word)return Promise.resolve(0);this.currentWordAtPosition=i;var r=new Pb.yy(this.editor,15);return this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=(0,Uy.PG)((function(t){return n.findDefinition(e,t)})),this.previousPromise.then((function(t){if(t&&t.length&&r.validate(n.editor))if(t.length>1)n.addDecoration(new Gy.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn),(new Ty).appendText(ky.N("multipleResults","Click to show {0} definitions.",t.length)));else{var o=t[0];if(!o.uri)return;n.textModelResolverService.createModelReference(o.uri).then((function(t){if(t.object&&t.object.textEditorModel){var r=t.object.textEditorModel,a=o.range.startLineNumber;if(a<1||a>r.getLineCount())t.dispose();else{var s,u=n.getPreviewValue(r,a,o);s=o.originSelectionRange?Gy.e.lift(o.originSelectionRange):new Gy.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn);var l=n.modeService.getModeIdByFilepathOrFirstLine(r.uri);n.addDecoration(s,(new Ty).appendCodeblock(l||"",u)),t.dispose()}}else t.dispose()}))}else n.removeLinkDecorations()})).then(void 0,My.dL)}},{key:"getPreviewValue",value:function(t,n,i){var r=i.targetSelectionRange?i.range:this.getPreviewRangeBasedOnBrackets(t,n);return r.endLineNumber-r.startLineNumber>=e.MAX_SOURCE_PREVIEW_LINES&&(r=this.getPreviewRangeBasedOnIndentation(t,n)),this.stripIndentationFromPreviewRange(t,n,r)}},{key:"stripIndentationFromPreviewRange",value:function(e,t,n){for(var i=e.getLineFirstNonWhitespaceColumn(t),r=t+1;r<n.endLineNumber;r++){var o=e.getLineFirstNonWhitespaceColumn(r);i=Math.min(i,o)}return e.getValueInRange(n).replace(new RegExp("^\\s{".concat(i-1,"}"),"gm"),"").trim()}},{key:"getPreviewRangeBasedOnIndentation",value:function(t,n){for(var i=t.getLineFirstNonWhitespaceColumn(n),r=Math.min(t.getLineCount(),n+e.MAX_SOURCE_PREVIEW_LINES),o=n+1;o<r;o++){if(i===t.getLineFirstNonWhitespaceColumn(o))break}return new Gy.e(n,1,o+1,1)}},{key:"getPreviewRangeBasedOnBrackets",value:function(t,n){for(var i=Math.min(t.getLineCount(),n+e.MAX_SOURCE_PREVIEW_LINES),r=[],o=!0,a=t.findNextBracket(new qy.L(n,1));null!==a;){if(0===r.length)r.push(a);else{var s=r[r.length-1];if(s.open[0]===a.open[0]&&s.isOpen&&!a.isOpen?r.pop():r.push(a),0===r.length){if(!o)return new Gy.e(n,1,a.range.endLineNumber+1,1);o=!1}}var u=t.getLineMaxColumn(n),l=a.range.endLineNumber,c=a.range.endColumn;if(u===a.range.endColumn&&(l++,c=1),l>i)return new Gy.e(n,1,i+1,1);a=t.findNextBracket(new qy.L(l,c))}return new Gy.e(n,1,i+1,1)}},{key:"addDecoration",value:function(e,t){var n={range:e,options:{inlineClassName:"goto-definition-link",hoverMessage:t}};this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[n])}},{key:"removeLinkDecorations",value:function(){this.linkDecorations.length>0&&(this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[]))}},{key:"isEnabled",value:function(e,t){return this.editor.hasModel()&&e.isNoneOrSingleMouseDown&&6===e.target.type&&(e.hasTriggerModifier||!!t&&t.keyCodeIsTriggerKey)&&Zb.Ct.has(this.editor.getModel())}},{key:"findDefinition",value:function(e,t){var n=this.editor.getModel();return n?kx(n,e,t):Promise.resolve(null)}},{key:"gotoDefinition",value:function(e,t){var n=this;return this.editor.setPosition(e),this.editor.invokeWithinContext((function(e){var i=!t&&n.editor.getOption(74)&&!n.isInPeekEditor(e);return new NL({openToSide:t,openInPeek:i,muteMessage:!0},{alias:"",label:"",id:"",precondition:void 0}).run(e,n.editor)}))}},{key:"isInPeekEditor",value:function(e){var t=e.get(Ey.i6);return Ak.inPeekEditor.getValue(t)}},{key:"dispose",value:function(){this.toUnhook.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();WL.ID="editor.contrib.gotodefinitionatposition",WL.MAX_SOURCE_PREVIEW_LINES=8,WL=BL([zL(1,Dx.S),zL(2,BC.h)],WL),(0,Cy._K)(WL.ID,WL),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy._Y);n&&t.addRule(".monaco-editor .goto-definition-link { color: ".concat(n," !important; }"))}));var VL=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},YL=function(e,t){return function(n,i){t(n,i,e)}},UL=function(){function e(t,n,r,o,a,s){var u=this;(0,i.Z)(this,e),this._editor=t,this._instantiationService=n,this._openerService=r,this._modeService=o,this._themeService=a,this._toUnhook=new Ky.SL,this._isMouseDown=!1,this._hoverClicked=!1,this._contentWidget=null,this._glyphWidget=null,this._hookEvents(),this._didChangeConfigurationHandler=this._editor.onDidChangeConfiguration((function(e){e.hasChanged(50)&&(u._unhookEvents(),u._hookEvents())})),this._hoverVisibleKey=Sy.u.hoverVisible.bindTo(s)}return(0,r.Z)(e,[{key:"_hookEvents",value:function(){var e=this,t=function(){return e._hideWidgets()},n=this._editor.getOption(50);this._isHoverEnabled=n.enabled,this._isHoverSticky=n.sticky,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown((function(t){return e._onEditorMouseDown(t)}))),this._toUnhook.add(this._editor.onMouseUp((function(t){return e._onEditorMouseUp(t)}))),this._toUnhook.add(this._editor.onMouseMove((function(t){return e._onEditorMouseMove(t)}))),this._toUnhook.add(this._editor.onKeyDown((function(t){return e._onKeyDown(t)}))),this._toUnhook.add(this._editor.onDidChangeModelDecorations((function(){return e._onModelDecorationsChanged()})))):(this._toUnhook.add(this._editor.onMouseMove((function(t){return e._onEditorMouseMove(t)}))),this._toUnhook.add(this._editor.onKeyDown((function(t){return e._onKeyDown(t)})))),this._toUnhook.add(this._editor.onMouseLeave(t)),this._toUnhook.add(this._editor.onDidChangeModel(t)),this._toUnhook.add(this._editor.onDidScrollChange((function(t){return e._onEditorScrollChanged(t)})))}},{key:"_unhookEvents",value:function(){this._toUnhook.clear()}},{key:"_onModelDecorationsChanged",value:function(){var e,t;null===(e=this._contentWidget)||void 0===e||e.onModelDecorationsChanged(),null===(t=this._glyphWidget)||void 0===t||t.onModelDecorationsChanged()}},{key:"_onEditorScrollChanged",value:function(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}},{key:"_onEditorMouseDown",value:function(e){this._isMouseDown=!0;var t=e.target.type;9!==t||e.target.detail!==hx.ID?12===t&&e.target.detail===gx.ID||(12!==t&&e.target.detail!==gx.ID&&(this._hoverClicked=!1),this._hideWidgets()):this._hoverClicked=!0}},{key:"_onEditorMouseUp",value:function(e){this._isMouseDown=!1}},{key:"_onEditorMouseMove",value:function(e){var t,n,i,r,o,a,s=e.target.type;if((!this._isMouseDown||!this._hoverClicked)&&(!this._isHoverSticky||9!==s||e.target.detail!==hx.ID)&&(!this._isHoverSticky||(null===(n=null===(t=e.event.browserEvent.view)||void 0===t?void 0:t.getSelection())||void 0===n?void 0:n.isCollapsed))&&(this._isHoverSticky||9!==s||e.target.detail!==hx.ID||!(null===(i=this._contentWidget)||void 0===i?void 0:i.isColorPickerVisible()))&&(!this._isHoverSticky||12!==s||e.target.detail!==gx.ID)){if(7===s){var u=this._editor.getOption(40).typicalHalfwidthCharacterWidth/2,l=e.target.detail;l&&!l.isAfterLines&&"number"===typeof l.horizontalDistanceToText&&l.horizontalDistanceToText<u&&(s=6)}if(6===s){if(null===(r=this._glyphWidget)||void 0===r||r.hide(),this._isHoverEnabled&&e.target.range){var c=(0,zt.Z)((null===(o=e.target.element)||void 0===o?void 0:o.classList.values())||[]).find((function(e){return e.startsWith("ced-colorBox")}))&&e.target.range.endColumn-e.target.range.startColumn===1?new Gy.e(e.target.range.startLineNumber,e.target.range.startColumn+1,e.target.range.endLineNumber,e.target.range.endColumn+1):e.target.range;this._contentWidget||(this._contentWidget=new hx(this._editor,this._hoverVisibleKey,this._instantiationService,this._themeService)),this._contentWidget.startShowingAt(c,0,!1)}}else 2===s?(null===(a=this._contentWidget)||void 0===a||a.hide(),this._isHoverEnabled&&e.target.position&&(this._glyphWidget||(this._glyphWidget=new gx(this._editor,this._modeService,this._openerService)),this._glyphWidget.startShowingAt(e.target.position.lineNumber))):this._hideWidgets()}}},{key:"_onKeyDown",value:function(e){5!==e.keyCode&&6!==e.keyCode&&57!==e.keyCode&&4!==e.keyCode&&this._hideWidgets()}},{key:"_hideWidgets",value:function(){var e,t,n;this._isMouseDown&&this._hoverClicked&&(null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible())||(this._hoverClicked=!1,null===(t=this._glyphWidget)||void 0===t||t.hide(),null===(n=this._contentWidget)||void 0===n||n.hide())}},{key:"isColorPickerVisible",value:function(){var e;return(null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible())||!1}},{key:"showContentHover",value:function(e,t,n){this._contentWidget||(this._contentWidget=new hx(this._editor,this._hoverVisibleKey,this._instantiationService,this._themeService)),this._contentWidget.startShowingAt(e,t,n)}},{key:"dispose",value:function(){var e,t;this._unhookEvents(),this._toUnhook.dispose(),this._didChangeConfigurationHandler.dispose(),null===(e=this._glyphWidget)||void 0===e||e.dispose(),null===(t=this._contentWidget)||void 0===t||t.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();UL.ID="editor.contrib.hover",UL=VL([YL(1,cw.TG),YL(2,ik.v4),YL(3,BC.h),YL(4,eb.XE),YL(5,Ey.i6)],UL);var KL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.showHover",label:ky.N({key:"showHover",comment:["Label for action that will trigger the showing of a hover in the editor.","This allows for users to show the hover without using the mouse."]},"Show Hover"),alias:"Show Hover",precondition:void 0,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2087),weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=UL.get(t);if(n){var i=t.getPosition(),r=new Gy.e(i.lineNumber,i.column,i.lineNumber,i.column),o=2===t.getOption(2);n.showContentHover(r,1,o)}}}}]),n}(Cy.R6),qL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.showDefinitionPreviewHover",label:ky.N({key:"showDefinitionPreviewHover",comment:["Label for action that will trigger the showing of definition preview hover in the editor.","This allows for users to show the definition preview hover without using the mouse."]},"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=UL.get(t);if(n){var i=t.getPosition();if(i){var r=new Gy.e(i.lineNumber,i.column,i.lineNumber,i.column);WL.get(t).startFindDefinitionFromCursor(i).then((function(){n.showContentHover(r,1,!0)}))}}}}]),n}(Cy.R6);(0,Cy._K)(UL.ID,UL),(0,Cy.Qr)(KL),(0,Cy.Qr)(qL),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.pt);n&&t.addRule(".monaco-editor .hoverHighlight { background-color: ".concat(n,"; }"));var i=e.getColor(Jy.yJ);i&&t.addRule(".monaco-editor .monaco-hover { background-color: ".concat(i,"; }"));var r=e.getColor(Jy.CN);r&&(t.addRule(".monaco-editor .monaco-hover { border: 1px solid ".concat(r,"; }")),t.addRule(".monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ".concat(r.transparent(.5),"; }")),t.addRule(".monaco-editor .monaco-hover hr { border-top: 1px solid ".concat(r.transparent(.5),"; }")),t.addRule(".monaco-editor .monaco-hover hr { border-bottom: 0px solid ".concat(r.transparent(.5),"; }")));var o=e.getColor(Jy.ur);o&&t.addRule(".monaco-editor .monaco-hover a { color: ".concat(o,"; }"));var a=e.getColor(Jy.Sb);a&&t.addRule(".monaco-editor .monaco-hover { color: ".concat(a,"; }"));var s=e.getColor(Jy.Lo);s&&t.addRule(".monaco-editor .monaco-hover .hover-row .actions { background-color: ".concat(s,"; }"));var u=e.getColor(Jy.Sw);u&&t.addRule(".monaco-editor .monaco-hover code { background-color: ".concat(u,"; }"))}));var GL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._editor=e,r._register(e.onMouseDown((function(e){return r.onMouseDown(e)}))),r}return(0,r.Z)(n,[{key:"dispose",value:function(){(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"onMouseDown",value:function(e){var t;if(6===e.target.type&&((0,zt.Z)((null===(t=e.target.element)||void 0===t?void 0:t.classList.values())||[]).find((function(e){return e.startsWith("ced-colorBox")}))&&e.target.range)){var n=this._editor.getContribution(UL.ID);if(!n.isColorPickerVisible()){var i=new Gy.e(e.target.range.startLineNumber,e.target.range.startColumn+1,e.target.range.endLineNumber,e.target.range.endColumn+1);n.showContentHover(i,0,!1)}}}}]),n}(Ky.JT);GL.ID="editor.contrib.colorContribution",(0,Cy._K)(GL.ID,GL);var $L=n(85025),QL=n(65262),XL=function(){function e(t,n){(0,i.Z)(this,e),this._selection=t,this._insertSpace=n,this._usedEndToken=null}return(0,r.Z)(e,[{key:"_createOperationsForBlockComment",value:function(t,n,i,r,o,a){var s,u=t.startLineNumber,l=t.startColumn,c=t.endLineNumber,d=t.endColumn,h=o.getLineContent(u),f=o.getLineContent(c),p=h.lastIndexOf(n,l-1+n.length),g=f.indexOf(i,d-1-i.length);if(-1!==p&&-1!==g)if(u===c){h.substring(p+n.length,g).indexOf(i)>=0&&(p=-1,g=-1)}else{var v=h.substring(p+n.length),m=f.substring(0,g);(v.indexOf(i)>=0||m.indexOf(i)>=0)&&(p=-1,g=-1)}-1!==p&&-1!==g?(r&&p+n.length<h.length&&32===h.charCodeAt(p+n.length)&&(n+=" "),r&&g>0&&32===f.charCodeAt(g-1)&&(i=" "+i,g-=1),s=e._createRemoveBlockCommentOperations(new Gy.e(u,p+n.length+1,c,g+1),n,i)):(s=e._createAddBlockCommentOperations(t,n,i,this._insertSpace),this._usedEndToken=1===s.length?i:null);var _,y=(0,tr.Z)(s);try{for(y.s();!(_=y.n()).done;){var b=_.value;a.addTrackedEditOperation(b.range,b.text)}}catch(w){y.e(w)}finally{y.f()}}},{key:"getEditOperations",value:function(e,t){var n=this._selection.startLineNumber,i=this._selection.startColumn;e.tokenizeIfCheap(n);var r=e.getLanguageIdAtPosition(n,i),o=QL.zu.getComments(r);o&&o.blockCommentStartToken&&o.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,o.blockCommentStartToken,o.blockCommentEndToken,this._insertSpace,e,t)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations();if(2===n.length){var i=n[0],r=n[1];return new xy.Y(i.range.endLineNumber,i.range.endColumn,r.range.startLineNumber,r.range.startColumn)}var o=n[0].range,a=this._usedEndToken?-this._usedEndToken.length-1:0;return new xy.Y(o.endLineNumber,o.endColumn+a,o.endLineNumber,o.endColumn+a)}}],[{key:"_haystackHasNeedleAtOffset",value:function(e,t,n){if(n<0)return!1;var i=t.length;if(n+i>e.length)return!1;for(var r=0;r<i;r++){var o=e.charCodeAt(n+r),a=t.charCodeAt(r);if(o!==a&&(!(o>=65&&o<=90&&o+32===a)&&!(a>=65&&a<=90&&a+32===o)))return!1}return!0}},{key:"_createRemoveBlockCommentOperations",value:function(e,t,n){var i=[];return Gy.e.isEmpty(e)?i.push($L.h.delete(new Gy.e(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+n.length))):(i.push($L.h.delete(new Gy.e(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),i.push($L.h.delete(new Gy.e(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+n.length)))),i}},{key:"_createAddBlockCommentOperations",value:function(e,t,n,i){var r=[];return Gy.e.isEmpty(e)?r.push($L.h.replace(new Gy.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+n)):(r.push($L.h.insert(new qy.L(e.startLineNumber,e.startColumn),t+(i?" ":""))),r.push($L.h.insert(new qy.L(e.endLineNumber,e.endColumn),(i?" ":"")+n))),r}}]),e}(),JL=function(){function e(t,n,r,o,a,s){(0,i.Z)(this,e),this._selection=t,this._tabSize=n,this._type=r,this._insertSpace=o,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=a,this._ignoreFirstLine=s||!1}return(0,r.Z)(e,[{key:"_executeLineComments",value:function(t,n,i,r){var o;i.shouldRemoveComments?o=e._createRemoveLineCommentsOperations(i.lines,r.startLineNumber):(e._normalizeInsertionPoint(t,i.lines,r.startLineNumber,this._tabSize),o=this._createAddLineCommentsOperations(i.lines,r.startLineNumber));for(var a=new qy.L(r.positionLineNumber,r.positionColumn),s=0,u=o.length;s<u;s++){if(n.addEditOperation(o[s].range,o[s].text),Gy.e.isEmpty(o[s].range)&&Gy.e.getStartPosition(o[s].range).equals(a))t.getLineContent(a.lineNumber).length+1===a.column&&(this._deltaColumn=(o[s].text||"").length)}this._selectionId=n.trackSelection(r)}},{key:"_attemptRemoveBlockComment",value:function(e,t,n,i){var r=t.startLineNumber,o=t.endLineNumber,a=i.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn),s=e.getLineContent(r).lastIndexOf(n,a-1),u=e.getLineContent(o).indexOf(i,t.endColumn-1-n.length);return-1!==s&&-1===u&&(u=e.getLineContent(r).indexOf(i,s+n.length),o=r),-1===s&&-1!==u&&(s=e.getLineContent(o).lastIndexOf(n,u),r=o),!t.isEmpty()||-1!==s&&-1!==u||-1!==(s=e.getLineContent(r).indexOf(n))&&(u=e.getLineContent(r).indexOf(i,s+n.length)),-1!==s&&32===e.getLineContent(r).charCodeAt(s+n.length)&&(n+=" "),-1!==u&&32===e.getLineContent(o).charCodeAt(u-1)&&(i=" "+i,u-=1),-1!==s&&-1!==u?XL._createRemoveBlockCommentOperations(new Gy.e(r,s+n.length+1,o,u+1),n,i):null}},{key:"_executeBlockComment",value:function(e,t,n){e.tokenizeIfCheap(n.startLineNumber);var i=e.getLanguageIdAtPosition(n.startLineNumber,1),r=QL.zu.getComments(i);if(r&&r.blockCommentStartToken&&r.blockCommentEndToken){var o=r.blockCommentStartToken,a=r.blockCommentEndToken,s=this._attemptRemoveBlockComment(e,n,o,a);if(!s){if(n.isEmpty()){var u=e.getLineContent(n.startLineNumber),l=Ib.LC(u);-1===l&&(l=u.length),s=XL._createAddBlockCommentOperations(new Gy.e(n.startLineNumber,l+1,n.startLineNumber,u.length+1),o,a,this._insertSpace)}else s=XL._createAddBlockCommentOperations(new Gy.e(n.startLineNumber,e.getLineFirstNonWhitespaceColumn(n.startLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),o,a,this._insertSpace);1===s.length&&(this._deltaColumn=o.length+1)}this._selectionId=t.trackSelection(n);var c,d=(0,tr.Z)(s);try{for(d.s();!(c=d.n()).done;){var h=c.value;t.addEditOperation(h.range,h.text)}}catch(f){d.e(f)}finally{d.f()}}}},{key:"getEditOperations",value:function(t,n){var i=this._selection;if(this._moveEndPositionDown=!1,i.startLineNumber===i.endLineNumber&&this._ignoreFirstLine)return n.addEditOperation(new Gy.e(i.startLineNumber,t.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===t.getLineCount()?"":"\n"),void(this._selectionId=n.trackSelection(i));i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,t.getLineMaxColumn(i.endLineNumber-1)));var r=e._gatherPreflightData(this._type,this._insertSpace,t,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine);return r.supported?this._executeLineComments(t,n,r,i):this._executeBlockComment(t,n,i)}},{key:"computeCursorState",value:function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),new xy.Y(n.selectionStartLineNumber,n.selectionStartColumn+this._deltaColumn,n.positionLineNumber,n.positionColumn+this._deltaColumn)}},{key:"_createAddLineCommentsOperations",value:function(e,t){for(var n=[],i=this._insertSpace?" ":"",r=0,o=e.length;r<o;r++){var a=e[r];a.ignore||n.push($L.h.insert(new qy.L(t+r,a.commentStrOffset+1),a.commentStr+i))}return n}}],[{key:"_gatherPreflightCommentStrings",value:function(e,t,n){e.tokenizeIfCheap(t);var i=e.getLanguageIdAtPosition(t,1),r=QL.zu.getComments(i),o=r?r.lineCommentToken:null;if(!o)return null;for(var a=[],s=0,u=n-t+1;s<u;s++)a[s]={ignore:!1,commentStr:o,commentStrOffset:0,commentStrLength:o.length};return a}},{key:"_analyzeLines",value:function(e,t,n,i,r,o,a){var s,u=!0;s=0===e||1!==e;for(var l=0,c=i.length;l<c;l++){var d=i[l],h=r+l;if(h===r&&a)d.ignore=!0;else{var f=n.getLineContent(h),p=Ib.LC(f);if(-1!==p){if(u=!1,d.ignore=!1,d.commentStrOffset=p,s&&!XL._haystackHasNeedleAtOffset(f,d.commentStr,p)&&(0===e?s=!1:1===e||(d.ignore=!0)),s&&t){var g=p+d.commentStrLength;g<f.length&&32===f.charCodeAt(g)&&(d.commentStrLength+=1)}}else d.ignore=o,d.commentStrOffset=f.length}}if(0===e&&u){s=!1;for(var v=0,m=i.length;v<m;v++)i[v].ignore=!1}return{supported:!0,shouldRemoveComments:s,lines:i}}},{key:"_gatherPreflightData",value:function(t,n,i,r,o,a,s){var u=e._gatherPreflightCommentStrings(i,r,o);return null===u?{supported:!1}:e._analyzeLines(t,n,i,u,r,a,s)}},{key:"_createRemoveLineCommentsOperations",value:function(e,t){for(var n=[],i=0,r=e.length;i<r;i++){var o=e[i];o.ignore||n.push($L.h.delete(new Gy.e(t+i,o.commentStrOffset+1,t+i,o.commentStrOffset+o.commentStrLength+1)))}return n}},{key:"nextVisibleColumn",value:function(e,t,n,i){return n?e+(t-e%t):e+i}},{key:"_normalizeInsertionPoint",value:function(t,n,i,r){for(var o,a,s=1073741824,u=0,l=n.length;u<l;u++)if(!n[u].ignore){for(var c=t.getLineContent(i+u),d=0,h=0,f=n[u].commentStrOffset;d<s&&h<f;h++)d=e.nextVisibleColumn(d,r,9===c.charCodeAt(h),1);d<s&&(s=d)}s=Math.floor(s/r)*r;for(var p=0,g=n.length;p<g;p++)if(!n[p].ignore){var v=t.getLineContent(i+p),m=0;for(o=0,a=n[p].commentStrOffset;m<s&&o<a;o++)m=e.nextVisibleColumn(m,r,9===v.charCodeAt(o),1);n[p].commentStrOffset=m>s?o-1:o}}}]),e}(),eE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r))._type=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=[],i=t.getModel().getOptions(),r=t.getOption(17),o=t.getSelections().map((function(e,t){return{selection:e,index:t,ignoreFirstLine:!1}}));o.sort((function(e,t){return Gy.e.compareRangesUsingStarts(e.selection,t.selection)}));for(var a=o[0],s=1;s<o.length;s++){var u=o[s];a.selection.endLineNumber===u.selection.startLineNumber&&(a.index<u.index?u.ignoreFirstLine=!0:(a.ignoreFirstLine=!0,a=u))}var l,c=(0,tr.Z)(o);try{for(c.s();!(l=c.n()).done;){var d=l.value;n.push(new JL(d.selection,i.tabSize,this._type,r.insertSpace,r.ignoreEmptyLines,d.ignoreFirstLine))}}catch(h){c.e(h)}finally{c.f()}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}}]),n}(Cy.R6),tE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,0,{id:"editor.action.commentLine",label:ky.N("comment.line","Toggle Line Comment"),alias:"Toggle Line Comment",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:2133,weight:100},menuOpts:{menuId:tb.eH.MenubarEditMenu,group:"5_insert",title:ky.N({key:"miToggleLineComment",comment:["&& denotes a mnemonic"]},"&&Toggle Line Comment"),order:1}})}return(0,r.Z)(n)}(eE),nE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,1,{id:"editor.action.addCommentLine",label:ky.N("comment.line.add","Add Line Comment"),alias:"Add Line Comment",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2081),weight:100}})}return(0,r.Z)(n)}(eE),iE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,2,{id:"editor.action.removeCommentLine",label:ky.N("comment.line.remove","Remove Line Comment"),alias:"Remove Line Comment",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2099),weight:100}})}return(0,r.Z)(n)}(eE),rE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.blockComment",label:ky.N("comment.block","Toggle Block Comment"),alias:"Toggle Block Comment",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:tb.eH.MenubarEditMenu,group:"5_insert",title:ky.N({key:"miToggleBlockComment",comment:["&& denotes a mnemonic"]},"Toggle &&Block Comment"),order:2}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n,i=t.getOption(17),r=[],o=t.getSelections(),a=(0,tr.Z)(o);try{for(a.s();!(n=a.n()).done;){var s=n.value;r.push(new XL(s,i.insertSpace))}}catch(u){a.e(u)}finally{a.f()}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}}]),n}(Cy.R6);(0,Cy.Qr)(tE),(0,Cy.Qr)(nE),(0,Cy.Qr)(iE),(0,Cy.Qr)(rE);var oE=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},aE=function(e,t){return function(n,i){t(n,i,e)}},sE=function(){function e(t,n,r,o,a,s){var u=this;(0,i.Z)(this,e),this._contextMenuService=n,this._contextViewService=r,this._contextKeyService=o,this._keybindingService=a,this._menuService=s,this._toDispose=new Ky.SL,this._contextMenuIsBeingShownCount=0,this._editor=t,this._toDispose.add(this._editor.onContextMenu((function(e){return u._onContextMenu(e)}))),this._toDispose.add(this._editor.onMouseWheel((function(e){if(u._contextMenuIsBeingShownCount>0){var t=u._contextViewService.getContextViewElement(),n=e.srcElement;n.shadowRoot&&dw.getShadowRoot(t)===n.shadowRoot||u._contextViewService.hideContextView()}}))),this._toDispose.add(this._editor.onKeyDown((function(e){58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),u.showContextMenu())})))}return(0,r.Z)(e,[{key:"_onContextMenu",value:function(e){if(this._editor.hasModel()){if(!this._editor.getOption(18))return this._editor.focus(),void(e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position));if(12!==e.target.type&&(e.event.preventDefault(),6===e.target.type||7===e.target.type||1===e.target.type)){if(this._editor.focus(),e.target.position){var t,n=!1,i=(0,tr.Z)(this._editor.getSelections());try{for(i.s();!(t=i.n()).done;){if(t.value.containsPosition(e.target.position)){n=!0;break}}}catch(o){i.e(o)}finally{i.f()}n||this._editor.setPosition(e.target.position)}var r=null;1!==e.target.type&&(r={x:e.event.posx-1,width:2,y:e.event.posy-1,height:2}),this.showContextMenu(r)}}}},{key:"showContextMenu",value:function(e){if(this._editor.getOption(18)&&this._editor.hasModel())if(this._contextMenuService){var t=this._getMenuActions(this._editor.getModel(),tb.eH.EditorContext);t.length>0&&this._doShowContextMenu(t,e)}else this._editor.focus()}},{key:"_getMenuActions",value:function(e,t){var n=[],i=this._menuService.createMenu(t,this._contextKeyService),r=i.getActions({arg:e.uri});i.dispose();var o,a=(0,tr.Z)(r);try{for(a.s();!(o=a.n()).done;){var s,u=o.value,l=(0,Ti.Z)(u,2)[1],c=0,d=(0,tr.Z)(l);try{for(d.s();!(s=d.n()).done;){var h=s.value;if(h instanceof tb.NZ){var f=this._getMenuActions(e,h.item.submenu);f.length>0&&(n.push(new hw.wY(h.id,h.label,f)),c++)}else n.push(h),c++}}catch(p){d.e(p)}finally{d.f()}c&&n.push(new hw.Z0)}}catch(p){a.e(p)}finally{a.f()}return n.length&&n.pop(),n}},{key:"_doShowContextMenu",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(this._editor.hasModel()){var i=this._editor.getOption(50);if(this._editor.updateOptions({hover:{enabled:!1}}),!n){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();var r=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),o=dw.getDomNodePagePosition(this._editor.getDomNode()),a=o.left+r.left,s=o.top+r.top+r.height;n={x:a,y:s}}var u=this._editor.getOption(111);this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:u?this._editor.getDomNode():void 0,getAnchor:function(){return n},getActions:function(){return e},getActionViewItem:function(e){var n=t._keybindingFor(e);if(n)return new Sk.g(e,e,{label:!0,keybinding:n.getLabel(),isMenu:!0});var i=e;return"function"===typeof i.getActionViewItem?i.getActionViewItem():new Sk.g(e,e,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:function(e){return t._keybindingFor(e)},onHide:function(e){t._contextMenuIsBeingShownCount--,t._editor.focus(),t._editor.updateOptions({hover:i})}})}}},{key:"_keybindingFor",value:function(e){return this._keybindingService.lookupKeybinding(e.id)}},{key:"dispose",value:function(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();sE.ID="editor.contrib.contextmenu",sE=oE([aE(1,fw.i),aE(2,fw.u),aE(3,Ey.i6),aE(4,pw.d),aE(5,tb.co)],sE);var uE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.showContextMenu",label:ky.N("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:1092,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){sE.get(t).showContextMenu()}}]),n}(Cy.R6);(0,Cy._K)(sE.ID,sE),(0,Cy.Qr)(uE);var lE=function(){function e(t){(0,i.Z)(this,e),this.selections=t}return(0,r.Z)(e,[{key:"equals",value:function(e){var t=this.selections.length;if(t!==e.selections.length)return!1;for(var n=0;n<t;n++)if(!this.selections[n].equalsSelection(e.selections[n]))return!1;return!0}}]),e}(),cE=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.cursorState=t,this.scrollTop=n,this.scrollLeft=r})),dE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._editor=e,r._isCursorUndoRedo=!1,r._undoStack=[],r._redoStack=[],r._register(e.onDidChangeModel((function(e){r._undoStack=[],r._redoStack=[]}))),r._register(e.onDidChangeModelContent((function(e){r._undoStack=[],r._redoStack=[]}))),r._register(e.onDidChangeCursorSelection((function(t){if(!r._isCursorUndoRedo&&t.oldSelections&&t.oldModelVersionId===t.modelVersionId){var n=new lE(t.oldSelections);r._undoStack.length>0&&r._undoStack[r._undoStack.length-1].cursorState.equals(n)||(r._undoStack.push(new cE(n,e.getScrollTop(),e.getScrollLeft())),r._redoStack=[],r._undoStack.length>50&&r._undoStack.shift())}}))),r}return(0,r.Z)(n,[{key:"cursorUndo",value:function(){this._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new cE(new lE(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}},{key:"cursorRedo",value:function(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new cE(new lE(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}},{key:"_applyState",value:function(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);dE.ID="editor.contrib.cursorUndoRedoController";var hE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"cursorUndo",label:ky.N("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:2099,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){dE.get(t).cursorUndo()}}]),n}(Cy.R6),fE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"cursorRedo",label:ky.N("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){dE.get(t).cursorRedo()}}]),n}(Cy.R6);(0,Cy._K)(dE.ID,dE),(0,Cy.Qr)(hE),(0,Cy.Qr)(fE);var pE=function(){function e(t,n,r){(0,i.Z)(this,e),this.selection=t,this.targetPosition=n,this.copy=r,this.targetSelection=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new Gy.e(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),n),!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?this.targetSelection=new xy.Y(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?this.targetSelection=new xy.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber<this.selection.endLineNumber?this.targetSelection=new xy.Y(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new xy.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,(this.selection.startLineNumber,this.selection.endLineNumber,this.targetPosition.column-this.selection.endColumn+this.selection.startColumn),this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn):this.targetSelection=new xy.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn):this.targetSelection=this.selection}},{key:"computeCursorState",value:function(e,t){return this.targetSelection}}]),e}();function gE(e){return gb.dz?e.altKey:e.ctrlKey}var vE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._editor=e,r._register(r._editor.onMouseDown((function(e){return r._onEditorMouseDown(e)}))),r._register(r._editor.onMouseUp((function(e){return r._onEditorMouseUp(e)}))),r._register(r._editor.onMouseDrag((function(e){return r._onEditorMouseDrag(e)}))),r._register(r._editor.onMouseDrop((function(e){return r._onEditorMouseDrop(e)}))),r._register(r._editor.onMouseDropCanceled((function(){return r._onEditorMouseDropCanceled()}))),r._register(r._editor.onKeyDown((function(e){return r.onEditorKeyDown(e)}))),r._register(r._editor.onKeyUp((function(e){return r.onEditorKeyUp(e)}))),r._register(r._editor.onDidBlurEditorWidget((function(){return r.onEditorBlur()}))),r._register(r._editor.onDidBlurEditorText((function(){return r.onEditorBlur()}))),r._dndDecorationIds=[],r._mouseDown=!1,r._modifierPressed=!1,r._dragSelection=null,r}return(0,r.Z)(n,[{key:"onEditorBlur",value:function(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}},{key:"onEditorKeyDown",value:function(e){this._editor.getOption(29)&&!this._editor.getOption(16)&&(gE(e)&&(this._modifierPressed=!0),this._mouseDown&&gE(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}},{key:"onEditorKeyUp",value:function(e){this._editor.getOption(29)&&!this._editor.getOption(16)&&(gE(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===n.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}},{key:"_onEditorMouseDown",value:function(e){this._mouseDown=!0}},{key:"_onEditorMouseUp",value:function(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}},{key:"_onEditorMouseDrag",value:function(e){var t=e.target;if(null===this._dragSelection){var n=(this._editor.getSelections()||[]).filter((function(e){return t.position&&e.containsPosition(t.position)}));if(1!==n.length)return;this._dragSelection=n[0]}gE(e.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}},{key:"_onEditorMouseDropCanceled",value:function(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}},{key:"_onEditorMouseDrop",value:function(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){var t=new qy.L(e.target.position.lineNumber,e.target.position.column);if(null===this._dragSelection){var i=null;if(e.event.shiftKey){var r=this._editor.getSelection();if(r){var o=r.selectionStartLineNumber,a=r.selectionStartColumn;i=[new xy.Y(o,a,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map((function(e){return e.containsPosition(t)?new xy.Y(t.lineNumber,t.column,t.lineNumber,t.column):e}));this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(gE(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(n.ID,new pE(this._dragSelection,t,gE(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}},{key:"showAt",value:function(e){var t=[{range:new Gy.e(e.lineNumber,e.column,e.lineNumber,e.column),options:n._DECORATION_OPTIONS}];this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,t),this._editor.revealPosition(e,1)}},{key:"_removeDecoration",value:function(){this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,[])}},{key:"_hitContent",value:function(e){return 6===e.type||7===e.type}},{key:"_hitMargin",value:function(e){return 2===e.type||3===e.type||4===e.type}},{key:"dispose",value:function(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}}]),n}(Ky.JT);vE.ID="editor.contrib.dragAndDrop",vE.TRIGGER_KEY_VALUE=gb.dz?6:5,vE._DECORATION_OPTIONS=Qy.qx.register({className:"dnd-target"}),(0,Cy._K)(vE.ID,vE);var mE=n(44322),_E=function(){function e(t){(0,i.Z)(this,e),this._editor=t,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}return(0,r.Z)(e,[{key:"dispose",value:function(){this._editor.deltaDecorations(this._allDecorations(),[]),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}},{key:"reset",value:function(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}},{key:"getCount",value:function(){return this._decorations.length}},{key:"getFindScope",value:function(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}},{key:"getFindScopes",value:function(){var e=this;if(this._findScopeDecorationIds.length){var t=this._findScopeDecorationIds.map((function(t){return e._editor.getModel().getDecorationRange(t)})).filter((function(e){return!!e}));if(t.length)return t}return null}},{key:"getStartPosition",value:function(){return this._startPosition}},{key:"setStartPosition",value:function(e){this._startPosition=e,this.setCurrentFindMatch(null)}},{key:"_getDecorationIndex",value:function(e){var t=this._decorations.indexOf(e);return t>=0?t+1:1}},{key:"getCurrentMatchesPosition",value:function(t){var n,i=this._editor.getModel().getDecorationsInRange(t),r=(0,tr.Z)(i);try{for(r.s();!(n=r.n()).done;){var o=n.value,a=o.options;if(a===e._FIND_MATCH_DECORATION||a===e._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(o.id)}}catch(s){r.e(s)}finally{r.f()}return 0}},{key:"setCurrentFindMatch",value:function(t){var n=this,i=null,r=0;if(t)for(var o=0,a=this._decorations.length;o<a;o++){var s=this._editor.getModel().getDecorationRange(this._decorations[o]);if(t.equalsRange(s)){i=this._decorations[o],r=o+1;break}}return null===this._highlightedDecorationId&&null===i||this._editor.changeDecorations((function(t){if(null!==n._highlightedDecorationId&&(t.changeDecorationOptions(n._highlightedDecorationId,e._FIND_MATCH_DECORATION),n._highlightedDecorationId=null),null!==i&&(n._highlightedDecorationId=i,t.changeDecorationOptions(n._highlightedDecorationId,e._CURRENT_FIND_MATCH_DECORATION)),null!==n._rangeHighlightDecorationId&&(t.removeDecoration(n._rangeHighlightDecorationId),n._rangeHighlightDecorationId=null),null!==i){var r=n._editor.getModel().getDecorationRange(i);if(r.startLineNumber!==r.endLineNumber&&1===r.endColumn){var o=r.endLineNumber-1,a=n._editor.getModel().getLineMaxColumn(o);r=new Gy.e(r.startLineNumber,r.startColumn,o,a)}n._rangeHighlightDecorationId=t.addDecoration(r,e._RANGE_HIGHLIGHT_DECORATION)}})),r}},{key:"set",value:function(t,n){var i=this;this._editor.changeDecorations((function(r){var o=e._FIND_MATCH_DECORATION,a=[];if(t.length>1e3){o=e._FIND_MATCH_NO_OVERVIEW_DECORATION;for(var s=i._editor.getModel().getLineCount(),u=i._editor.getLayoutInfo().height/s,l=Math.max(2,Math.ceil(3/u)),c=t[0].range.startLineNumber,d=t[0].range.endLineNumber,h=1,f=t.length;h<f;h++){var p=t[h].range;d+l>=p.startLineNumber?p.endLineNumber>d&&(d=p.endLineNumber):(a.push({range:new Gy.e(c,1,d,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),c=p.startLineNumber,d=p.endLineNumber)}a.push({range:new Gy.e(c,1,d,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}for(var g=new Array(t.length),v=0,m=t.length;v<m;v++)g[v]={range:t[v].range,options:o};i._decorations=r.deltaDecorations(i._decorations,g),i._overviewRulerApproximateDecorations=r.deltaDecorations(i._overviewRulerApproximateDecorations,a),i._rangeHighlightDecorationId&&(r.removeDecoration(i._rangeHighlightDecorationId),i._rangeHighlightDecorationId=null),i._findScopeDecorationIds.length&&(i._findScopeDecorationIds.forEach((function(e){return r.removeDecoration(e)})),i._findScopeDecorationIds=[]),(null===n||void 0===n?void 0:n.length)&&(i._findScopeDecorationIds=n.map((function(t){return r.addDecoration(t,e._FIND_SCOPE_DECORATION)})))}))}},{key:"matchBeforePosition",value:function(e){if(0===this._decorations.length)return null;for(var t=this._decorations.length-1;t>=0;t--){var n=this._decorations[t],i=this._editor.getModel().getDecorationRange(n);if(i&&!(i.endLineNumber>e.lineNumber)){if(i.endLineNumber<e.lineNumber)return i;if(!(i.endColumn>e.column))return i}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}},{key:"matchAfterPosition",value:function(e){if(0===this._decorations.length)return null;for(var t=0,n=this._decorations.length;t<n;t++){var i=this._decorations[t],r=this._editor.getModel().getDecorationRange(i);if(r&&!(r.startLineNumber<e.lineNumber)){if(r.startLineNumber>e.lineNumber)return r;if(!(r.startColumn<e.column))return r}}return this._editor.getModel().getDecorationRange(this._decorations[0])}},{key:"_allDecorations",value:function(){var e,t=[];(t=(t=t.concat(this._decorations)).concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length)&&(e=t).push.apply(e,(0,zt.Z)(this._findScopeDecorationIds));return this._rangeHighlightDecorationId&&t.push(this._rangeHighlightDecorationId),t}}]),e}();_E._CURRENT_FIND_MATCH_DECORATION=Qy.qx.register({stickiness:1,zIndex:13,className:"currentFindMatch",showIfCollapsed:!0,overviewRuler:{color:(0,eb.EN)(Jy.Fm),position:$y.sh.Center},minimap:{color:(0,eb.EN)(Jy.KT),position:$y.F5.Inline}}),_E._FIND_MATCH_DECORATION=Qy.qx.register({stickiness:1,className:"findMatch",showIfCollapsed:!0,overviewRuler:{color:(0,eb.EN)(Jy.Fm),position:$y.sh.Center},minimap:{color:(0,eb.EN)(Jy.KT),position:$y.F5.Inline}}),_E._FIND_MATCH_NO_OVERVIEW_DECORATION=Qy.qx.register({stickiness:1,className:"findMatch",showIfCollapsed:!0}),_E._FIND_MATCH_ONLY_OVERVIEW_DECORATION=Qy.qx.register({stickiness:1,overviewRuler:{color:(0,eb.EN)(Jy.Fm),position:$y.sh.Center}}),_E._RANGE_HIGHLIGHT_DECORATION=Qy.qx.register({stickiness:1,className:"rangeHighlight",isWholeLine:!0}),_E._FIND_SCOPE_DECORATION=Qy.qx.register({className:"findScope",isWholeLine:!0});var yE=function(){function e(t,n,r){(0,i.Z)(this,e),this._editorSelection=t,this._ranges=n,this._replaceStrings=r,this._trackedEditorSelectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){if(this._ranges.length>0){for(var n=[],i=0;i<this._ranges.length;i++)n.push({range:this._ranges[i],text:this._replaceStrings[i]});n.sort((function(e,t){return Gy.e.compareRangesUsingStarts(e.range,t.range)}));for(var r=[],o=n[0],a=1;a<n.length;a++)o.range.endLineNumber===n[a].range.startLineNumber&&o.range.endColumn===n[a].range.startColumn?(o.range=o.range.plusRange(n[a].range),o.text=o.text+n[a].text):(r.push(o),o=n[a]);r.push(o);for(var s=0,u=r;s<u.length;s++){var l=u[s];t.addEditOperation(l.range,l.text)}}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}}]),e}();function bE(e,t){if(e&&""!==e[0]){var n=wE(e,t,"-"),i=wE(e,t,"_");return n&&!i?CE(e,t,"-"):!n&&i?CE(e,t,"_"):e[0].toUpperCase()===e[0]?t.toUpperCase():e[0].toLowerCase()===e[0]?t.toLowerCase():Ib.Kw(e[0][0])&&t.length>0?t[0].toUpperCase()+t.substr(1):e[0][0].toUpperCase()!==e[0][0]&&t.length>0?t[0].toLowerCase()+t.substr(1):t}return t}function wE(e,t,n){return-1!==e[0].indexOf(n)&&-1!==t.indexOf(n)&&e[0].split(n).length===t.split(n).length}function CE(e,t,n){var i=t.split(n),r=e[0].split(n),o="";return i.forEach((function(e,t){o+=bE([r[t]],e)+n})),o.slice(0,-1)}var kE=(0,r.Z)((function e(t){(0,i.Z)(this,e),this.staticValue=t,this.kind=0})),SE=(0,r.Z)((function e(t){(0,i.Z)(this,e),this.pieces=t,this.kind=1})),xE=function(){function e(t){(0,i.Z)(this,e),t&&0!==t.length?1===t.length&&null!==t[0].staticValue?this._state=new kE(t[0].staticValue):this._state=new SE(t):this._state=new kE("")}return(0,r.Z)(e,[{key:"hasReplacementPatterns",get:function(){return 1===this._state.kind}},{key:"buildReplaceString",value:function(t,n){if(0===this._state.kind)return n?bE(t,this._state.staticValue):this._state.staticValue;for(var i="",r=0,o=this._state.pieces.length;r<o;r++){var a=this._state.pieces[r];if(null===a.staticValue){var s=e._substitute(a.matchIndex,t);if(null!==a.caseOps&&a.caseOps.length>0){for(var u=[],l=a.caseOps.length,c=0,d=0,h=s.length;d<h;d++){if(c>=l){u.push(s.slice(d));break}switch(a.caseOps[c]){case"U":u.push(s[d].toUpperCase());break;case"u":u.push(s[d].toUpperCase()),c++;break;case"L":u.push(s[d].toLowerCase());break;case"l":u.push(s[d].toLowerCase()),c++;break;default:u.push(s[d])}}s=u.join("")}i+=s}else i+=a.staticValue}return i}}],[{key:"fromStaticValue",value:function(t){return new e([LE.staticValue(t)])}},{key:"_substitute",value:function(e,t){if(null===t)return"";if(0===e)return t[0];for(var n="";e>0;){if(e<t.length)return(t[e]||"")+n;n=String(e%10)+n,e=Math.floor(e/10)}return"$"+n}}]),e}(),LE=function(){function e(t,n,r){(0,i.Z)(this,e),this.staticValue=t,this.matchIndex=n,r&&0!==r.length?this.caseOps=r.slice(0):this.caseOps=null}return(0,r.Z)(e,null,[{key:"staticValue",value:function(t){return new e(t,-1,null)}},{key:"caseOps",value:function(t,n){return new e(null,t,n)}}]),e}(),EE=function(){function e(t){(0,i.Z)(this,e),this._source=t,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}return(0,r.Z)(e,[{key:"emitUnchanged",value:function(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e}},{key:"emitStatic",value:function(e,t){this._emitStatic(e),this._lastCharIndex=t}},{key:"_emitStatic",value:function(e){0!==e.length&&(this._currentStaticPiece+=e)}},{key:"emitMatchIndex",value:function(e,t,n){0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=LE.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=LE.caseOps(e,n),this._lastCharIndex=t}},{key:"finalize",value:function(){return this.emitUnchanged(this._source.length),0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=LE.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),new xE(this._result)}}]),e}();var NE=new Ey.uy("findWidgetVisible",!1),DE=new Ey.uy("findInputFocussed",!1),ME=new Ey.uy("replaceInputFocussed",!1),TE={primary:545,mac:{primary:2593}},OE={primary:565,mac:{primary:2613}},IE={primary:560,mac:{primary:2608}},AE={primary:554,mac:{primary:2602}},RE={primary:558,mac:{primary:2606}},PE={StartFindAction:"actions.find",StartFindWithSelection:"actions.findWithSelection",NextMatchFindAction:"editor.action.nextMatchFindAction",PreviousMatchFindAction:"editor.action.previousMatchFindAction",NextSelectionMatchFindAction:"editor.action.nextSelectionMatchFindAction",PreviousSelectionMatchFindAction:"editor.action.previousSelectionMatchFindAction",StartFindReplaceAction:"editor.action.startFindReplaceAction",CloseFindWidgetCommand:"closeFindWidget",ToggleCaseSensitiveCommand:"toggleFindCaseSensitive",ToggleWholeWordCommand:"toggleFindWholeWord",ToggleRegexCommand:"toggleFindRegex",ToggleSearchScopeCommand:"toggleFindInSelection",TogglePreserveCaseCommand:"togglePreserveCase",ReplaceOneAction:"editor.action.replaceOne",ReplaceAllAction:"editor.action.replaceAll",SelectAllMatchesAction:"editor.action.selectAllMatches"},ZE=19999,FE=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._toDispose=new Ky.SL,this._editor=t,this._state=n,this._isDisposed=!1,this._startSearchingTimer=new Uy._F,this._decorations=new _E(t),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new Uy.pY((function(){return r.research(!1)}),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((function(e){3!==e.reason&&5!==e.reason&&6!==e.reason||r._decorations.setStartPosition(r._editor.getPosition())}))),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((function(e){r._ignoreModelContentChanged||(e.isFlush&&r._decorations.reset(),r._decorations.setStartPosition(r._editor.getPosition()),r._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((function(e){return r._onStateChanged(e)}))),this.research(!1,this._state.searchScope)}return(0,r.Z)(e,[{key:"dispose",value:function(){this._isDisposed=!0,(0,Ky.B9)(this._startSearchingTimer),this._toDispose.dispose()}},{key:"_onStateChanged",value:function(e){var t=this;this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet((function(){e.searchScope?t.research(e.moveCursor,t._state.searchScope):t.research(e.moveCursor)}),240)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}},{key:"research",value:function(e,t){var n=this,i=null;"undefined"!==typeof t?null!==t&&(i=Array.isArray(t)?t:[t]):i=this._decorations.getFindScopes(),null!==i&&(i=i.map((function(e){if(e.startLineNumber!==e.endLineNumber){var t=e.endLineNumber;return 1===e.endColumn&&(t-=1),new Gy.e(e.startLineNumber,1,t,n._editor.getModel().getLineMaxColumn(t))}return e})));var r=this._findMatches(i,!1,ZE);this._decorations.set(r,i);var o=this._editor.getSelection(),a=this._decorations.getCurrentMatchesPosition(o);if(0===a&&r.length>0){var s=(0,Ny.lG)(r.map((function(e){return e.range})),(function(e){return Gy.e.compareRangesUsingStarts(e,o)>=0}));a=s>0?s-1+1:a}this._state.changeMatchInfo(a,this._decorations.getCount(),void 0),e&&this._editor.getOption(33).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}},{key:"_hasMatches",value:function(){return this._state.matchesCount>0}},{key:"_cannotFind",value:function(){if(!this._hasMatches()){var e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}},{key:"_setCurrentFindMatch",value:function(e){var t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}},{key:"_prevSearchPosition",value:function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),n=e.lineNumber,i=e.column,r=this._editor.getModel();return t||1===i?(1===n?n=r.getLineCount():n--,i=r.getLineMaxColumn(n)):i--,new qy.L(n,i)}},{key:"_moveToPrevMatch",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._state.canNavigateBack()){if(this._decorations.getCount()<ZE){var i=this._decorations.matchBeforePosition(t);return i&&i.isEmpty()&&i.getStartPosition().equals(t)&&(t=this._prevSearchPosition(t),i=this._decorations.matchBeforePosition(t)),void(i&&this._setCurrentFindMatch(i))}if(!this._cannotFind()){var r=this._decorations.getFindScope(),o=e._getSearchRange(this._editor.getModel(),r);o.getEndPosition().isBefore(t)&&(t=o.getEndPosition()),t.isBefore(o.getStartPosition())&&(t=o.getEndPosition());var a=t,s=a.lineNumber,u=a.column,l=this._editor.getModel(),c=new qy.L(s,u),d=l.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,!1);if(d&&d.range.isEmpty()&&d.range.getStartPosition().equals(c)&&(c=this._prevSearchPosition(c),d=l.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,!1)),d)return n||o.containsRange(d.range)?void this._setCurrentFindMatch(d.range):this._moveToPrevMatch(d.range.getStartPosition(),!0)}}else{var h=this._decorations.matchAfterPosition(t);h&&this._setCurrentFindMatch(h)}}},{key:"moveToPrevMatch",value:function(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}},{key:"_nextSearchPosition",value:function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),n=e.lineNumber,i=e.column,r=this._editor.getModel();return t||i===r.getLineMaxColumn(n)?(n===r.getLineCount()?n=1:n++,i=1):i++,new qy.L(n,i)}},{key:"_moveToNextMatch",value:function(e){if(this._state.canNavigateForward()){if(this._decorations.getCount()<ZE){var t=this._decorations.matchAfterPosition(e);return t&&t.isEmpty()&&t.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),t=this._decorations.matchAfterPosition(e)),void(t&&this._setCurrentFindMatch(t))}var n=this._getNextMatch(e,!1,!0);n&&this._setCurrentFindMatch(n.range)}else{var i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i)}}},{key:"_getNextMatch",value:function(t,n,i){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(this._cannotFind())return null;var o=this._decorations.getFindScope(),a=e._getSearchRange(this._editor.getModel(),o);a.getEndPosition().isBefore(t)&&(t=a.getStartPosition()),t.isBefore(a.getStartPosition())&&(t=a.getStartPosition());var s=t,u=s.lineNumber,l=s.column,c=this._editor.getModel(),d=new qy.L(u,l),h=c.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,n);return i&&h&&h.range.isEmpty()&&h.range.getStartPosition().equals(d)&&(d=this._nextSearchPosition(d),h=c.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,n)),h?r||a.containsRange(h.range)?h:this._getNextMatch(h.range.getEndPosition(),n,i,!0):null}},{key:"moveToNextMatch",value:function(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}},{key:"_getReplacePattern",value:function(){return this._state.isRegex?function(e){if(!e||0===e.length)return new xE(null);for(var t=[],n=new EE(e),i=0,r=e.length;i<r;i++){var o=e.charCodeAt(i);if(92!==o){if(36===o){if(++i>=r)break;var a=e.charCodeAt(i);if(36===a){n.emitUnchanged(i-1),n.emitStatic("$",i+1);continue}if(48===a||38===a){n.emitUnchanged(i-1),n.emitMatchIndex(0,i+1,t),t.length=0;continue}if(49<=a&&a<=57){var s=a-48;if(i+1<r){var u=e.charCodeAt(i+1);if(48<=u&&u<=57){i++,s=10*s+(u-48),n.emitUnchanged(i-2),n.emitMatchIndex(s,i+1,t),t.length=0;continue}}n.emitUnchanged(i-1),n.emitMatchIndex(s,i+1,t),t.length=0;continue}}}else{if(++i>=r)break;var l=e.charCodeAt(i);switch(l){case 92:n.emitUnchanged(i-1),n.emitStatic("\\",i+1);break;case 110:n.emitUnchanged(i-1),n.emitStatic("\n",i+1);break;case 116:n.emitUnchanged(i-1),n.emitStatic("\t",i+1);break;case 117:case 85:case 108:case 76:n.emitUnchanged(i-1),n.emitStatic("",i+1),t.push(String.fromCharCode(l))}}}return n.finalize()}(this._state.replaceString):xE.fromStaticValue(this._state.replaceString)}},{key:"replace",value:function(){if(this._hasMatches()){var e=this._getReplacePattern(),t=this._editor.getSelection(),n=this._getNextMatch(t.getStartPosition(),!0,!1);if(n)if(t.equalsRange(n.range)){var i=e.buildReplaceString(n.matches,this._state.preserveCase),r=new db.T4(t,i);this._executeEditorCommand("replace",r),this._decorations.setStartPosition(new qy.L(t.startLineNumber,t.startColumn+i.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(n.range)}}},{key:"_findMatches",value:function(t,n,i){var r=this,o=(t||[null]).map((function(t){return e._getSearchRange(r._editor.getModel(),t)}));return this._editor.getModel().findMatches(this._state.searchString,o,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,n,i)}},{key:"replaceAll",value:function(){if(this._hasMatches()){var e=this._decorations.getFindScopes();null===e&&this._state.matchesCount>=ZE?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}}},{key:"_largeReplaceAll",value:function(){var e=new mE.bc(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null).parseSearchRequest();if(e){var t=e.regex;if(!t.multiline){var n="mu";t.ignoreCase&&(n+="i"),t.global&&(n+="g"),t=new RegExp(t.source,n)}var i,r=this._editor.getModel(),o=r.getValue(1),a=r.getFullModelRange(),s=this._getReplacePattern(),u=this._state.preserveCase;i=s.hasReplacementPatterns||u?o.replace(t,(function(){return s.buildReplaceString(arguments,u)})):o.replace(t,s.buildReplaceString(null,u));var l=new db.hP(a,i,this._editor.getSelection());this._executeEditorCommand("replaceAll",l)}}},{key:"_regularReplaceAll",value:function(e){for(var t=this._getReplacePattern(),n=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),i=[],r=0,o=n.length;r<o;r++)i[r]=t.buildReplaceString(n[r].matches,this._state.preserveCase);var a=new yE(this._editor.getSelection(),n.map((function(e){return e.range})),i);this._executeEditorCommand("replaceAll",a)}},{key:"selectAllMatches",value:function(){if(this._hasMatches()){for(var e=this._decorations.getFindScopes(),t=this._findMatches(e,!1,1073741824).map((function(e){return new xy.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)})),n=this._editor.getSelection(),i=0,r=t.length;i<r;i++){if(t[i].equalsRange(n)){t=[n].concat(t.slice(0,i)).concat(t.slice(i+1));break}}this._editor.setSelections(t)}}},{key:"_executeEditorCommand",value:function(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}],[{key:"_getSearchRange",value:function(e,t){return t||e.getFullModelRange()}}]),e}(),jE={inputActiveOptionBorder:RC.Il.fromHex("#007ACC00"),inputActiveOptionForeground:RC.Il.fromHex("#FFFFFF"),inputActiveOptionBackground:RC.Il.fromHex("#0E639C50")},HE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r,o;(0,i.Z)(this,n),(o=t.call(this))._onChange=o._register(new kw.Q5),o.onChange=o._onChange.event,o._onKeyDown=o._register(new kw.Q5),o.onKeyDown=o._onKeyDown.event,o._opts=Object.assign(Object.assign({},jE),e),o._checked=o._opts.isChecked;var a=["monaco-custom-checkbox"];return o._opts.icon&&a.push.apply(a,(0,zt.Z)(xw.dT.asClassNameArray(o._opts.icon))),o._opts.actionClassName&&a.push.apply(a,(0,zt.Z)(o._opts.actionClassName.split(" "))),o._checked&&a.push("checked"),o.domNode=document.createElement("div"),o.domNode.title=o._opts.title,(r=o.domNode.classList).add.apply(r,a),o._opts.notFocusable||(o.domNode.tabIndex=0),o.domNode.setAttribute("role","checkbox"),o.domNode.setAttribute("aria-checked",String(o._checked)),o.domNode.setAttribute("aria-label",o._opts.title),o.applyStyles(),o.onclick(o.domNode,(function(e){o.checked=!o._checked,o._onChange.fire(!1),e.preventDefault()})),o.ignoreGesture(o.domNode),o.onkeydown(o.domNode,(function(e){if(10===e.keyCode||3===e.keyCode)return o.checked=!o._checked,o._onChange.fire(!0),void e.preventDefault();o._onKeyDown.fire(e)})),o}return(0,r.Z)(n,[{key:"enabled",get:function(){return"true"!==this.domNode.getAttribute("aria-disabled")}},{key:"focus",value:function(){this.domNode.focus()}},{key:"checked",get:function(){return this._checked},set:function(e){this._checked=e,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}},{key:"width",value:function(){return 22}},{key:"style",value:function(e){e.inputActiveOptionBorder&&(this._opts.inputActiveOptionBorder=e.inputActiveOptionBorder),e.inputActiveOptionForeground&&(this._opts.inputActiveOptionForeground=e.inputActiveOptionForeground),e.inputActiveOptionBackground&&(this._opts.inputActiveOptionBackground=e.inputActiveOptionBackground),this.applyStyles()}},{key:"applyStyles",value:function(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder?this._opts.inputActiveOptionBorder.toString():"transparent",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground?this._opts.inputActiveOptionForeground.toString():"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground?this._opts.inputActiveOptionBackground.toString():"transparent")}},{key:"enable",value:function(){this.domNode.setAttribute("aria-disabled",String(!1))}},{key:"disable",value:function(){this.domNode.setAttribute("aria-disabled",String(!0))}}]),n}(WC.$),BE=ky.N("caseDescription","Match Case"),zE=ky.N("wordsDescription","Match Whole Word"),WE=ky.N("regexDescription","Use Regular Expression"),VE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){return(0,i.Z)(this,n),t.call(this,{icon:xw.lA.caseSensitive,title:BE+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,r.Z)(n)}(HE),YE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){return(0,i.Z)(this,n),t.call(this,{icon:xw.lA.wholeWord,title:zE+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,r.Z)(n)}(HE),UE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){return(0,i.Z)(this,n),t.call(this,{icon:xw.lA.regex,title:WE+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,r.Z)(n)}(HE),KE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;(0,i.Z)(this,n),(s=t.call(this))._hideSoon=s._register(new Uy.pY((function(){return s._hide()}),2e3)),s._isVisible=!1,s._editor=e,s._state=r,s._keybindingService=o,s._domNode=document.createElement("div"),s._domNode.className="findOptionsWidget",s._domNode.style.display="none",s._domNode.style.top="10px",s._domNode.setAttribute("role","presentation"),s._domNode.setAttribute("aria-hidden","true");var u=a.getColorTheme().getColor(Jy.PR),l=a.getColorTheme().getColor(Jy.Pv),c=a.getColorTheme().getColor(Jy.XE);return s.caseSensitive=s._register(new VE({appendTitle:s._keybindingLabelFor(PE.ToggleCaseSensitiveCommand),isChecked:s._state.matchCase,inputActiveOptionBorder:u,inputActiveOptionForeground:l,inputActiveOptionBackground:c})),s._domNode.appendChild(s.caseSensitive.domNode),s._register(s.caseSensitive.onChange((function(){s._state.change({matchCase:s.caseSensitive.checked},!1)}))),s.wholeWords=s._register(new YE({appendTitle:s._keybindingLabelFor(PE.ToggleWholeWordCommand),isChecked:s._state.wholeWord,inputActiveOptionBorder:u,inputActiveOptionForeground:l,inputActiveOptionBackground:c})),s._domNode.appendChild(s.wholeWords.domNode),s._register(s.wholeWords.onChange((function(){s._state.change({wholeWord:s.wholeWords.checked},!1)}))),s.regex=s._register(new UE({appendTitle:s._keybindingLabelFor(PE.ToggleRegexCommand),isChecked:s._state.isRegex,inputActiveOptionBorder:u,inputActiveOptionForeground:l,inputActiveOptionBackground:c})),s._domNode.appendChild(s.regex.domNode),s._register(s.regex.onChange((function(){s._state.change({isRegex:s.regex.checked},!1)}))),s._editor.addOverlayWidget((0,Mb.Z)(s)),s._register(s._state.onFindReplaceStateChange((function(e){var t=!1;e.isRegex&&(s.regex.checked=s._state.isRegex,t=!0),e.wholeWord&&(s.wholeWords.checked=s._state.wholeWord,t=!0),e.matchCase&&(s.caseSensitive.checked=s._state.matchCase,t=!0),!s._state.isRevealed&&t&&s._revealTemporarily()}))),s._register(dw.addDisposableNonBubblingMouseOutListener(s._domNode,(function(e){return s._onMouseOut()}))),s._register(dw.addDisposableListener(s._domNode,"mouseover",(function(e){return s._onMouseOver()}))),s._applyTheme(a.getColorTheme()),s._register(a.onDidColorThemeChange(s._applyTheme.bind((0,Mb.Z)(s)))),s}return(0,r.Z)(n,[{key:"_keybindingLabelFor",value:function(e){var t=this._keybindingService.lookupKeybinding(e);return t?" (".concat(t.getLabel(),")"):""}},{key:"dispose",value:function(){this._editor.removeOverlayWidget(this),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return n.ID}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return{preference:0}}},{key:"highlightFindOptions",value:function(){this._revealTemporarily()}},{key:"_revealTemporarily",value:function(){this._show(),this._hideSoon.schedule()}},{key:"_onMouseOut",value:function(){this._hideSoon.schedule()}},{key:"_onMouseOver",value:function(){this._hideSoon.cancel()}},{key:"_show",value:function(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}},{key:"_hide",value:function(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}},{key:"_applyTheme",value:function(e){var t={inputActiveOptionBorder:e.getColor(Jy.PR),inputActiveOptionForeground:e.getColor(Jy.Pv),inputActiveOptionBackground:e.getColor(Jy.XE)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)}}]),n}(WC.$);function qE(e,t){return 1===e||2!==e&&t}KE.ID="editor.contrib.findOptionsWidget",(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.D0);n&&t.addRule(".monaco-editor .findOptionsWidget { background-color: ".concat(n,"; }"));var i=e.getColor(Jy.Hf);i&&t.addRule(".monaco-editor .findOptionsWidget { color: ".concat(i,"; }"));var r=e.getColor(Jy.rh);r&&t.addRule(".monaco-editor .findOptionsWidget { box-shadow: 0 0 8px 2px ".concat(r,"; }"));var o=e.getColor(Jy.lR);o&&t.addRule(".monaco-editor .findOptionsWidget { border: 2px solid ".concat(o,"; }"))}));var GE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this))._onFindReplaceStateChange=e._register(new kw.Q5),e.onFindReplaceStateChange=e._onFindReplaceStateChange.event,e._searchString="",e._replaceString="",e._isRevealed=!1,e._isReplaceRevealed=!1,e._isRegex=!1,e._isRegexOverride=0,e._wholeWord=!1,e._wholeWordOverride=0,e._matchCase=!1,e._matchCaseOverride=0,e._preserveCase=!1,e._preserveCaseOverride=0,e._searchScope=null,e._matchesPosition=0,e._matchesCount=0,e._currentMatch=null,e._loop=!0,e}return(0,r.Z)(n,[{key:"searchString",get:function(){return this._searchString}},{key:"replaceString",get:function(){return this._replaceString}},{key:"isRevealed",get:function(){return this._isRevealed}},{key:"isReplaceRevealed",get:function(){return this._isReplaceRevealed}},{key:"isRegex",get:function(){return qE(this._isRegexOverride,this._isRegex)}},{key:"wholeWord",get:function(){return qE(this._wholeWordOverride,this._wholeWord)}},{key:"matchCase",get:function(){return qE(this._matchCaseOverride,this._matchCase)}},{key:"preserveCase",get:function(){return qE(this._preserveCaseOverride,this._preserveCase)}},{key:"actualIsRegex",get:function(){return this._isRegex}},{key:"actualWholeWord",get:function(){return this._wholeWord}},{key:"actualMatchCase",get:function(){return this._matchCase}},{key:"actualPreserveCase",get:function(){return this._preserveCase}},{key:"searchScope",get:function(){return this._searchScope}},{key:"matchesPosition",get:function(){return this._matchesPosition}},{key:"matchesCount",get:function(){return this._matchesCount}},{key:"currentMatch",get:function(){return this._currentMatch}},{key:"changeMatchInfo",value:function(e,t,n){var i={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1},r=!1;0===t&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,i.matchesPosition=!0,r=!0),this._matchesCount!==t&&(this._matchesCount=t,i.matchesCount=!0,r=!0),"undefined"!==typeof n&&(Gy.e.equalsRange(this._currentMatch,n)||(this._currentMatch=n,i.currentMatch=!0,r=!0)),r&&this._onFindReplaceStateChange.fire(i)}},{key:"change",value:function(e,t){var n,i=this,r={moveCursor:t,updateHistory:!(arguments.length>2&&void 0!==arguments[2])||arguments[2],searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1},o=!1,a=this.isRegex,s=this.wholeWord,u=this.matchCase,l=this.preserveCase;"undefined"!==typeof e.searchString&&this._searchString!==e.searchString&&(this._searchString=e.searchString,r.searchString=!0,o=!0),"undefined"!==typeof e.replaceString&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,r.replaceString=!0,o=!0),"undefined"!==typeof e.isRevealed&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,r.isRevealed=!0,o=!0),"undefined"!==typeof e.isReplaceRevealed&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,r.isReplaceRevealed=!0,o=!0),"undefined"!==typeof e.isRegex&&(this._isRegex=e.isRegex),"undefined"!==typeof e.wholeWord&&(this._wholeWord=e.wholeWord),"undefined"!==typeof e.matchCase&&(this._matchCase=e.matchCase),"undefined"!==typeof e.preserveCase&&(this._preserveCase=e.preserveCase),"undefined"!==typeof e.searchScope&&((null===(n=e.searchScope)||void 0===n?void 0:n.every((function(e){var t;return null===(t=i._searchScope)||void 0===t?void 0:t.some((function(t){return!Gy.e.equalsRange(t,e)}))})))||(this._searchScope=e.searchScope,r.searchScope=!0,o=!0)),"undefined"!==typeof e.loop&&this._loop!==e.loop&&(this._loop=e.loop,r.loop=!0,o=!0),this._isRegexOverride="undefined"!==typeof e.isRegexOverride?e.isRegexOverride:0,this._wholeWordOverride="undefined"!==typeof e.wholeWordOverride?e.wholeWordOverride:0,this._matchCaseOverride="undefined"!==typeof e.matchCaseOverride?e.matchCaseOverride:0,this._preserveCaseOverride="undefined"!==typeof e.preserveCaseOverride?e.preserveCaseOverride:0,a!==this.isRegex&&(o=!0,r.isRegex=!0),s!==this.wholeWord&&(o=!0,r.wholeWord=!0),u!==this.matchCase&&(o=!0,r.matchCase=!0),l!==this.preserveCase&&(o=!0,r.preserveCase=!0),o&&this._onFindReplaceStateChange.fire(r)}},{key:"canNavigateBack",value:function(){return this.canNavigateInLoop()||1!==this.matchesPosition}},{key:"canNavigateForward",value:function(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}},{key:"canNavigateInLoop",value:function(){return this._loop||this.matchesCount>=ZE}}]),n}(Ky.JT),$E=n(68027),QE=ky.N("defaultLabel","input"),XE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;(0,i.Z)(this,n),(s=t.call(this))._showOptionButtons=o,s.fixFocusOnOptionClickEnabled=!0,s._onDidOptionChange=s._register(new kw.Q5),s.onDidOptionChange=s._onDidOptionChange.event,s._onKeyDown=s._register(new kw.Q5),s.onKeyDown=s._onKeyDown.event,s._onMouseDown=s._register(new kw.Q5),s.onMouseDown=s._onMouseDown.event,s._onInput=s._register(new kw.Q5),s._onKeyUp=s._register(new kw.Q5),s._onCaseSensitiveKeyDown=s._register(new kw.Q5),s.onCaseSensitiveKeyDown=s._onCaseSensitiveKeyDown.event,s._onRegexKeyDown=s._register(new kw.Q5),s.onRegexKeyDown=s._onRegexKeyDown.event,s._lastHighlightFindOptions=0,s.contextViewProvider=r,s.placeholder=a.placeholder||"",s.validation=a.validation,s.label=a.label||QE,s.inputActiveOptionBorder=a.inputActiveOptionBorder,s.inputActiveOptionForeground=a.inputActiveOptionForeground,s.inputActiveOptionBackground=a.inputActiveOptionBackground,s.inputBackground=a.inputBackground,s.inputForeground=a.inputForeground,s.inputBorder=a.inputBorder,s.inputValidationInfoBorder=a.inputValidationInfoBorder,s.inputValidationInfoBackground=a.inputValidationInfoBackground,s.inputValidationInfoForeground=a.inputValidationInfoForeground,s.inputValidationWarningBorder=a.inputValidationWarningBorder,s.inputValidationWarningBackground=a.inputValidationWarningBackground,s.inputValidationWarningForeground=a.inputValidationWarningForeground,s.inputValidationErrorBorder=a.inputValidationErrorBorder,s.inputValidationErrorBackground=a.inputValidationErrorBackground,s.inputValidationErrorForeground=a.inputValidationErrorForeground;var u=a.appendCaseSensitiveLabel||"",l=a.appendWholeWordsLabel||"",c=a.appendRegexLabel||"",d=a.history||[],h=!!a.flexibleHeight,f=!!a.flexibleWidth,p=a.flexibleMaxHeight;s.domNode=document.createElement("div"),s.domNode.classList.add("monaco-findInput"),s.inputBox=s._register(new $E.p(s.domNode,s.contextViewProvider,{placeholder:s.placeholder||"",ariaLabel:s.label||"",validationOptions:{validation:s.validation},inputBackground:s.inputBackground,inputForeground:s.inputForeground,inputBorder:s.inputBorder,inputValidationInfoBackground:s.inputValidationInfoBackground,inputValidationInfoForeground:s.inputValidationInfoForeground,inputValidationInfoBorder:s.inputValidationInfoBorder,inputValidationWarningBackground:s.inputValidationWarningBackground,inputValidationWarningForeground:s.inputValidationWarningForeground,inputValidationWarningBorder:s.inputValidationWarningBorder,inputValidationErrorBackground:s.inputValidationErrorBackground,inputValidationErrorForeground:s.inputValidationErrorForeground,inputValidationErrorBorder:s.inputValidationErrorBorder,history:d,flexibleHeight:h,flexibleWidth:f,flexibleMaxHeight:p})),s.regex=s._register(new UE({appendTitle:c,isChecked:!1,inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})),s._register(s.regex.onChange((function(e){s._onDidOptionChange.fire(e),!e&&s.fixFocusOnOptionClickEnabled&&s.inputBox.focus(),s.validate()}))),s._register(s.regex.onKeyDown((function(e){s._onRegexKeyDown.fire(e)}))),s.wholeWords=s._register(new YE({appendTitle:l,isChecked:!1,inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})),s._register(s.wholeWords.onChange((function(e){s._onDidOptionChange.fire(e),!e&&s.fixFocusOnOptionClickEnabled&&s.inputBox.focus(),s.validate()}))),s.caseSensitive=s._register(new VE({appendTitle:u,isChecked:!1,inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})),s._register(s.caseSensitive.onChange((function(e){s._onDidOptionChange.fire(e),!e&&s.fixFocusOnOptionClickEnabled&&s.inputBox.focus(),s.validate()}))),s._register(s.caseSensitive.onKeyDown((function(e){s._onCaseSensitiveKeyDown.fire(e)}))),s._showOptionButtons&&(s.inputBox.paddingRight=s.caseSensitive.width()+s.wholeWords.width()+s.regex.width());var g=[s.caseSensitive.domNode,s.wholeWords.domNode,s.regex.domNode];s.onkeydown(s.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=g.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%g.length:e.equals(15)&&(n=0===t?g.length-1:t-1),e.equals(9)?(g[t].blur(),s.inputBox.focus()):n>=0&&g[n].focus(),dw.EventHelper.stop(e,!0)}}}));var v=document.createElement("div");return v.className="controls",v.style.display=s._showOptionButtons?"block":"none",v.appendChild(s.caseSensitive.domNode),v.appendChild(s.wholeWords.domNode),v.appendChild(s.regex.domNode),s.domNode.appendChild(v),e&&e.appendChild(s.domNode),s.onkeydown(s.inputBox.inputElement,(function(e){return s._onKeyDown.fire(e)})),s.onkeyup(s.inputBox.inputElement,(function(e){return s._onKeyUp.fire(e)})),s.oninput(s.inputBox.inputElement,(function(e){return s._onInput.fire()})),s.onmousedown(s.inputBox.inputElement,(function(e){return s._onMouseDown.fire(e)})),s}return(0,r.Z)(n,[{key:"enable",value:function(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.regex.enable(),this.wholeWords.enable(),this.caseSensitive.enable()}},{key:"disable",value:function(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.regex.disable(),this.wholeWords.disable(),this.caseSensitive.disable()}},{key:"setFocusInputOnOptionClick",value:function(e){this.fixFocusOnOptionClickEnabled=e}},{key:"setEnabled",value:function(e){e?this.enable():this.disable()}},{key:"getValue",value:function(){return this.inputBox.value}},{key:"setValue",value:function(e){this.inputBox.value!==e&&(this.inputBox.value=e)}},{key:"style",value:function(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}},{key:"applyStyles",value:function(){if(this.domNode){var e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground};this.regex.style(e),this.wholeWords.style(e),this.caseSensitive.style(e);var t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}},{key:"select",value:function(){this.inputBox.select()}},{key:"focus",value:function(){this.inputBox.focus()}},{key:"getCaseSensitive",value:function(){return this.caseSensitive.checked}},{key:"setCaseSensitive",value:function(e){this.caseSensitive.checked=e}},{key:"getWholeWords",value:function(){return this.wholeWords.checked}},{key:"setWholeWords",value:function(e){this.wholeWords.checked=e}},{key:"getRegex",value:function(){return this.regex.checked}},{key:"setRegex",value:function(e){this.regex.checked=e,this.validate()}},{key:"focusOnCaseSensitive",value:function(){this.caseSensitive.focus()}},{key:"highlightFindOptions",value:function(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}},{key:"validate",value:function(){this.inputBox.validate()}},{key:"clearMessage",value:function(){this.inputBox.hideMessage()}}]),n}(WC.$),JE=ky.N("defaultLabel","input"),eN=ky.N("label.preserveCaseCheckbox","Preserve Case"),tN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){return(0,i.Z)(this,n),t.call(this,{icon:xw.lA.preserveCase,title:eN+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,r.Z)(n)}(HE),nN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;(0,i.Z)(this,n),(s=t.call(this))._showOptionButtons=o,s.fixFocusOnOptionClickEnabled=!0,s.cachedOptionsWidth=0,s._onDidOptionChange=s._register(new kw.Q5),s.onDidOptionChange=s._onDidOptionChange.event,s._onKeyDown=s._register(new kw.Q5),s.onKeyDown=s._onKeyDown.event,s._onMouseDown=s._register(new kw.Q5),s._onInput=s._register(new kw.Q5),s._onKeyUp=s._register(new kw.Q5),s._onPreserveCaseKeyDown=s._register(new kw.Q5),s.onPreserveCaseKeyDown=s._onPreserveCaseKeyDown.event,s.contextViewProvider=r,s.placeholder=a.placeholder||"",s.validation=a.validation,s.label=a.label||JE,s.inputActiveOptionBorder=a.inputActiveOptionBorder,s.inputActiveOptionForeground=a.inputActiveOptionForeground,s.inputActiveOptionBackground=a.inputActiveOptionBackground,s.inputBackground=a.inputBackground,s.inputForeground=a.inputForeground,s.inputBorder=a.inputBorder,s.inputValidationInfoBorder=a.inputValidationInfoBorder,s.inputValidationInfoBackground=a.inputValidationInfoBackground,s.inputValidationInfoForeground=a.inputValidationInfoForeground,s.inputValidationWarningBorder=a.inputValidationWarningBorder,s.inputValidationWarningBackground=a.inputValidationWarningBackground,s.inputValidationWarningForeground=a.inputValidationWarningForeground,s.inputValidationErrorBorder=a.inputValidationErrorBorder,s.inputValidationErrorBackground=a.inputValidationErrorBackground,s.inputValidationErrorForeground=a.inputValidationErrorForeground;var u=a.appendPreserveCaseLabel||"",l=a.history||[],c=!!a.flexibleHeight,d=!!a.flexibleWidth,h=a.flexibleMaxHeight;s.domNode=document.createElement("div"),s.domNode.classList.add("monaco-findInput"),s.inputBox=s._register(new $E.p(s.domNode,s.contextViewProvider,{ariaLabel:s.label||"",placeholder:s.placeholder||"",validationOptions:{validation:s.validation},inputBackground:s.inputBackground,inputForeground:s.inputForeground,inputBorder:s.inputBorder,inputValidationInfoBackground:s.inputValidationInfoBackground,inputValidationInfoForeground:s.inputValidationInfoForeground,inputValidationInfoBorder:s.inputValidationInfoBorder,inputValidationWarningBackground:s.inputValidationWarningBackground,inputValidationWarningForeground:s.inputValidationWarningForeground,inputValidationWarningBorder:s.inputValidationWarningBorder,inputValidationErrorBackground:s.inputValidationErrorBackground,inputValidationErrorForeground:s.inputValidationErrorForeground,inputValidationErrorBorder:s.inputValidationErrorBorder,history:l,flexibleHeight:c,flexibleWidth:d,flexibleMaxHeight:h})),s.preserveCase=s._register(new tN({appendTitle:u,isChecked:!1,inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})),s._register(s.preserveCase.onChange((function(e){s._onDidOptionChange.fire(e),!e&&s.fixFocusOnOptionClickEnabled&&s.inputBox.focus(),s.validate()}))),s._register(s.preserveCase.onKeyDown((function(e){s._onPreserveCaseKeyDown.fire(e)}))),s._showOptionButtons?s.cachedOptionsWidth=s.preserveCase.width():s.cachedOptionsWidth=0;var f=[s.preserveCase.domNode];s.onkeydown(s.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=f.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%f.length:e.equals(15)&&(n=0===t?f.length-1:t-1),e.equals(9)?(f[t].blur(),s.inputBox.focus()):n>=0&&f[n].focus(),dw.EventHelper.stop(e,!0)}}}));var p=document.createElement("div");return p.className="controls",p.style.display=s._showOptionButtons?"block":"none",p.appendChild(s.preserveCase.domNode),s.domNode.appendChild(p),e&&e.appendChild(s.domNode),s.onkeydown(s.inputBox.inputElement,(function(e){return s._onKeyDown.fire(e)})),s.onkeyup(s.inputBox.inputElement,(function(e){return s._onKeyUp.fire(e)})),s.oninput(s.inputBox.inputElement,(function(e){return s._onInput.fire()})),s.onmousedown(s.inputBox.inputElement,(function(e){return s._onMouseDown.fire(e)})),s}return(0,r.Z)(n,[{key:"enable",value:function(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}},{key:"disable",value:function(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}},{key:"setEnabled",value:function(e){e?this.enable():this.disable()}},{key:"style",value:function(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}},{key:"applyStyles",value:function(){if(this.domNode){var e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground};this.preserveCase.style(e);var t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}},{key:"select",value:function(){this.inputBox.select()}},{key:"focus",value:function(){this.inputBox.focus()}},{key:"getPreserveCase",value:function(){return this.preserveCase.checked}},{key:"setPreserveCase",value:function(e){this.preserveCase.checked=e}},{key:"focusOnPreserve",value:function(){this.preserveCase.focus()}},{key:"validate",value:function(){this.inputBox&&this.inputBox.validate()}},{key:"width",set:function(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.inputBox.width=e,this.domNode.style.width=e+"px"}},{key:"dispose",value:function(){(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}}]),n}(WC.$),iN=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},rN=function(e,t){return function(n,i){t(n,i,e)}},oN="historyNavigationWidget",aN="historyNavigationEnabled";function sN(e,t){return e.getContext(document.activeElement).getValue(t)}function uN(e,t){var n=function(e,t){return e.createScoped(t.target)}(e,t);return function(e,t,n){new Ey.uy(n,t).bindTo(e)}(n,t,oN),{scopedContextKeyService:n,historyNavigationEnablement:new Ey.uy(aN,!0).bindTo(n)}}var lN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s,u=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return(0,i.Z)(this,n),(s=t.call(this,e,r,u,o))._register(uN(a,{target:s.inputBox.element,historyNavigator:s.inputBox}).scopedContextKeyService),s}return(0,r.Z)(n)}(XE);lN=iN([rN(3,Ey.i6)],lN);var cN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s,u=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return(0,i.Z)(this,n),(s=t.call(this,e,r,u,o))._register(uN(a,{target:s.inputBox.element,historyNavigator:s.inputBox}).scopedContextKeyService),s}return(0,r.Z)(n)}(nN);cN=iN([rN(3,Ey.i6)],cN),iL.W.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:Ey.Ao.and(Ey.Ao.has(oN),Ey.Ao.equals(aN,!0)),primary:16,secondary:[528],handler:function(e,t){var n=sN(e.get(Ey.i6),oN);n&&n.historyNavigator.showPreviousValue()}}),iL.W.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:Ey.Ao.and(Ey.Ao.has(oN),Ey.Ao.equals(aN,!0)),primary:18,secondary:[530],handler:function(e,t){var n=sN(e.get(Ey.i6),oN);n&&n.historyNavigator.showNextValue()}});var dN=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},hN=(0,CS.q5)("find-selection",xw.lA.selection,ky.N("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),fN=(0,CS.q5)("find-collapsed",xw.lA.chevronRight,ky.N("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),pN=(0,CS.q5)("find-expanded",xw.lA.chevronDown,ky.N("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),gN=(0,CS.q5)("find-replace",xw.lA.replace,ky.N("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),vN=(0,CS.q5)("find-replace-all",xw.lA.replaceAll,ky.N("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),mN=(0,CS.q5)("find-previous-match",xw.lA.arrowUp,ky.N("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),_N=(0,CS.q5)("find-next-match",xw.lA.arrowDown,ky.N("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),yN=ky.N("label.find","Find"),bN=ky.N("placeholder.find","Find"),wN=ky.N("label.previousMatchButton","Previous match"),CN=ky.N("label.nextMatchButton","Next match"),kN=ky.N("label.toggleSelectionFind","Find in selection"),SN=ky.N("label.closeButton","Close"),xN=ky.N("label.replace","Replace"),LN=ky.N("placeholder.replace","Replace"),EN=ky.N("label.replaceButton","Replace"),NN=ky.N("label.replaceAllButton","Replace All"),DN=ky.N("label.toggleReplaceButton","Toggle Replace mode"),MN=ky.N("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",ZE),TN=ky.N("label.matchesLocation","{0} of {1}"),ON=ky.N("label.noResults","No results"),IN=419,AN=69,RN="ctrlEnterReplaceAll.windows.donotask",PN=gb.dz?256:2048,ZN=(0,r.Z)((function e(t){(0,i.Z)(this,e),this.afterLineNumber=t,this.heightInPx=33,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}));function FN(e,t,n){var i=!!t.match(/\n/);n&&i&&n.selectionStart>0&&e.stopPropagation()}function jN(e,t,n){var i=!!t.match(/\n/);n&&i&&n.selectionEnd<n.value.length&&e.stopPropagation()}var HN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l,c,d){var h;return(0,i.Z)(this,n),(h=t.call(this))._cachedHeight=null,h._revealTimeouts=[],h._codeEditor=e,h._controller=r,h._state=o,h._contextViewProvider=a,h._keybindingService=s,h._contextKeyService=u,h._storageService=c,h._notificationService=d,h._ctrlEnterReplaceAllWarningPrompted=!!c.getBoolean(RN,0),h._isVisible=!1,h._isReplaceVisible=!1,h._ignoreChangeEvent=!1,h._updateHistoryDelayer=new Uy.vp(500),h._register((0,Ky.OF)((function(){return h._updateHistoryDelayer.cancel()}))),h._register(h._state.onFindReplaceStateChange((function(e){return h._onStateChanged(e)}))),h._buildDomNode(),h._updateButtons(),h._tryUpdateWidgetWidth(),h._findInput.inputBox.layout(),h._register(h._codeEditor.onDidChangeConfiguration((function(e){if(e.hasChanged(77)&&(h._codeEditor.getOption(77)&&h._state.change({isReplaceRevealed:!1},!1),h._updateButtons()),e.hasChanged(127)&&h._tryUpdateWidgetWidth(),e.hasChanged(2)&&h.updateAccessibilitySupport(),e.hasChanged(33)){var t=h._codeEditor.getOption(33).addExtraSpaceOnTop;t&&!h._viewZone&&(h._viewZone=new ZN(0),h._showViewZone()),!t&&h._viewZone&&h._removeViewZone()}}))),h.updateAccessibilitySupport(),h._register(h._codeEditor.onDidChangeCursorSelection((function(){h._isVisible&&h._updateToggleSelectionFindButton()}))),h._register(h._codeEditor.onDidFocusEditorWidget((function(){return dN((0,Mb.Z)(h),void 0,void 0,ti().mark((function e(){var t;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._isVisible){e.next=5;break}return e.next=3,this._controller.getGlobalBufferTerm();case 3:(t=e.sent)&&t!==this._state.searchString&&(this._state.change({searchString:t},!1),this._findInput.select());case 5:case"end":return e.stop()}}),e,this)})))}))),h._findInputFocused=DE.bindTo(u),h._findFocusTracker=h._register(dw.trackFocus(h._findInput.inputBox.inputElement)),h._register(h._findFocusTracker.onDidFocus((function(){h._findInputFocused.set(!0),h._updateSearchScope()}))),h._register(h._findFocusTracker.onDidBlur((function(){h._findInputFocused.set(!1)}))),h._replaceInputFocused=ME.bindTo(u),h._replaceFocusTracker=h._register(dw.trackFocus(h._replaceInput.inputBox.inputElement)),h._register(h._replaceFocusTracker.onDidFocus((function(){h._replaceInputFocused.set(!0),h._updateSearchScope()}))),h._register(h._replaceFocusTracker.onDidBlur((function(){h._replaceInputFocused.set(!1)}))),h._codeEditor.addOverlayWidget((0,Mb.Z)(h)),h._codeEditor.getOption(33).addExtraSpaceOnTop&&(h._viewZone=new ZN(0)),h._applyTheme(l.getColorTheme()),h._register(l.onDidColorThemeChange(h._applyTheme.bind((0,Mb.Z)(h)))),h._register(h._codeEditor.onDidChangeModel((function(){h._isVisible&&(h._viewZoneId=void 0)}))),h._register(h._codeEditor.onDidScrollChange((function(e){e.scrollTopChanged?h._layoutViewZone():setTimeout((function(){h._layoutViewZone()}),0)}))),h}return(0,r.Z)(n,[{key:"getId",value:function(){return n.ID}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return this._isVisible?{preference:0}:null}},{key:"_onStateChanged",value:function(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getOption(77)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=dw.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){var t=this._state.searchString.length>0&&0===this._state.matchesCount;this._domNode.classList.toggle("no-results",t),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}},{key:"_delayedUpdateHistory",value:function(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,My.dL)}},{key:"_updateHistory",value:function(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}},{key:"_updateMatchesCount",value:function(){var e;if(this._matchesCount.style.minWidth=AN+"px",this._state.matchesCount>=ZE?this._matchesCount.title=MN:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){var t=String(this._state.matchesCount);this._state.matchesCount>=ZE&&(t+="+");var n=String(this._state.matchesPosition);"0"===n&&(n="?"),e=Ib.WU(TN,n,t)}else e=ON;this._matchesCount.appendChild(document.createTextNode(e)),(0,Py.Z9)(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),AN=Math.max(AN,this._matchesCount.clientWidth)}},{key:"_getAriaLabel",value:function(e,t,n){if(e===ON)return""===n?ky.N("ariaSearchNoResultEmpty","{0} found",e):ky.N("ariaSearchNoResult","{0} found for '{1}'",e,n);if(t){var i=ky.N("ariaSearchNoResultWithLineNum","{0} found for '{1}', at {2}",e,n,t.startLineNumber+":"+t.startColumn),r=this._codeEditor.getModel();if(r&&t.startLineNumber<=r.getLineCount()&&t.startLineNumber>=1){var o=r.getLineContent(t.startLineNumber);return"".concat(o,", ").concat(i)}return i}return ky.N("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,n)}},{key:"_updateToggleSelectionFindButton",value:function(){var e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),n=this._toggleSelectionFind.checked;this._isVisible&&(n||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}},{key:"_updateButtons",value:function(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);var e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);var n=!this._codeEditor.getOption(77);this._toggleReplaceBtn.setEnabled(this._isVisible&&n)}},{key:"_reveal",value:function(){var e=this;if(this._revealTimeouts.forEach((function(e){clearTimeout(e)})),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;var t=this._codeEditor.getSelection();switch(this._codeEditor.getOption(33).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":var n=!!t&&t.startLineNumber!==t.endLineNumber;this._toggleSelectionFind.checked=n}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout((function(){e._domNode.classList.add("visible"),e._domNode.setAttribute("aria-hidden","false")}),0)),this._revealTimeouts.push(setTimeout((function(){e._findInput.validate()}),200)),this._codeEditor.layoutOverlayWidget(this);var i=!0;if(this._codeEditor.getOption(33).seedSearchStringFromSelection&&t){var r=this._codeEditor.getDomNode();if(r){var o=dw.getDomNodePagePosition(r),a=this._codeEditor.getScrolledVisiblePosition(t.getStartPosition()),s=o.left+(a?a.left:0),u=a?a.top:0;if(this._viewZone&&u<this._viewZone.heightInPx){t.endLineNumber>t.startLineNumber&&(i=!1);var l=dw.getTopLeftOffset(this._domNode).left;s>l&&(i=!1);var c=this._codeEditor.getScrolledVisiblePosition(t.getEndPosition());o.left+(c?c.left:0)>l&&(i=!1)}}}this._showViewZone(i)}}},{key:"_hide",value:function(e){this._revealTimeouts.forEach((function(e){clearTimeout(e)})),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}},{key:"_layoutViewZone",value:function(e){var t=this;if(this._codeEditor.getOption(33).addExtraSpaceOnTop){if(this._isVisible){var n=this._viewZone;void 0===this._viewZoneId&&n&&this._codeEditor.changeViewZones((function(i){n.heightInPx=t._getHeight(),t._viewZoneId=i.addZone(n),t._codeEditor.setScrollTop(e||t._codeEditor.getScrollTop()+n.heightInPx)}))}}else this._removeViewZone()}},{key:"_showViewZone",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(this._isVisible&&this._codeEditor.getOption(33).addExtraSpaceOnTop){void 0===this._viewZone&&(this._viewZone=new ZN(0));var n=this._viewZone;this._codeEditor.changeViewZones((function(i){if(void 0!==e._viewZoneId){var r=e._getHeight();if(r===n.heightInPx)return;var o=r-n.heightInPx;return n.heightInPx=r,i.layoutZone(e._viewZoneId),void(t&&e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()+o))}var a=e._getHeight();(a-=e._codeEditor.getOption(71).top)<=0||(n.heightInPx=a,e._viewZoneId=i.addZone(n),t&&e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()+a))}))}}},{key:"_removeViewZone",value:function(){var e=this;this._codeEditor.changeViewZones((function(t){void 0!==e._viewZoneId&&(t.removeZone(e._viewZoneId),e._viewZoneId=void 0,e._viewZone&&(e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()-e._viewZone.heightInPx),e._viewZone=void 0))}))}},{key:"_applyTheme",value:function(e){var t={inputActiveOptionBorder:e.getColor(Jy.PR),inputActiveOptionBackground:e.getColor(Jy.XE),inputActiveOptionForeground:e.getColor(Jy.Pv),inputBackground:e.getColor(Jy.sE),inputForeground:e.getColor(Jy.zJ),inputBorder:e.getColor(Jy.dt),inputValidationInfoBackground:e.getColor(Jy._l),inputValidationInfoForeground:e.getColor(Jy.YI),inputValidationInfoBorder:e.getColor(Jy.EP),inputValidationWarningBackground:e.getColor(Jy.RV),inputValidationWarningForeground:e.getColor(Jy.SU),inputValidationWarningBorder:e.getColor(Jy.C3),inputValidationErrorBackground:e.getColor(Jy.p),inputValidationErrorForeground:e.getColor(Jy._t),inputValidationErrorBorder:e.getColor(Jy.OZ)};this._findInput.style(t),this._replaceInput.style(t),this._toggleSelectionFind.style(t)}},{key:"_tryUpdateWidgetWidth",value:function(){if(this._isVisible&&dw.isInDOM(this._domNode)){var e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0)this._domNode.classList.add("hiddenEditor");else{this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");var t=e.width,n=e.minimap.minimapWidth,i=!1,r=!1,o=!1;if(this._resized)if(dw.getTotalWidth(this._domNode)>IN)return this._domNode.style.maxWidth="".concat(t-28-n-15,"px"),void(this._replaceInput.width=dw.getTotalWidth(this._findInput.domNode));if(447+n>=t&&(r=!0),447+n-AN>=t&&(o=!0),447+n-AN>=t+50&&(i=!0),this._domNode.classList.toggle("collapsed-find-widget",i),this._domNode.classList.toggle("narrow-find-widget",o),this._domNode.classList.toggle("reduced-find-widget",r),o||i||(this._domNode.style.maxWidth="".concat(t-28-n-15,"px")),this._resized){this._findInput.inputBox.layout();var a=this._findInput.inputBox.element.clientWidth;a>0&&(this._replaceInput.width=a)}else this._isReplaceVisible&&(this._replaceInput.width=dw.getTotalWidth(this._findInput.domNode))}}}},{key:"_getHeight",value:function(){var e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4}},{key:"_tryUpdateHeight",value:function(){var e=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==e)&&(this._cachedHeight=e,this._domNode.style.height="".concat(e,"px"),!0)}},{key:"focusFindInput",value:function(){this._findInput.select(),this._findInput.focus()}},{key:"focusReplaceInput",value:function(){this._replaceInput.select(),this._replaceInput.focus()}},{key:"highlightFindOptions",value:function(){this._findInput.highlightFindOptions()}},{key:"_updateSearchScope",value:function(){var e=this;if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){var t=this._codeEditor.getSelections();t.map((function(t){1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,e._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));var n=e._state.currentMatch;return t.startLineNumber===t.endLineNumber||Gy.e.equalsRange(t,n)?null:t})).filter((function(e){return!!e})),t.length&&this._state.change({searchScope:t},!0)}}},{key:"_onFindInputMouseDown",value:function(e){e.middleButton&&e.stopPropagation()}},{key:"_onFindInputKeyDown",value:function(e){return e.equals(3|PN)?(this._findInput.inputBox.insertAtCursor("\n"),void e.preventDefault()):e.equals(2)?(this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?FN(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):e.equals(18)?jN(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):void 0}},{key:"_onReplaceInputKeyDown",value:function(e){return e.equals(3|PN)?(gb.ED&&gb.tY&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(ky.N("ctrlEnter.keybindingChanged","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(RN,!0,0,0)),this._replaceInput.inputBox.insertAtCursor("\n"),void e.preventDefault()):e.equals(2)?(this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(1026)?(this._findInput.focus(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?FN(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):e.equals(18)?jN(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):void 0}},{key:"getVerticalSashLeft",value:function(e){return 0}},{key:"_keybindingLabelFor",value:function(e){var t=this._keybindingService.lookupKeybinding(e);return t?" (".concat(t.getLabel(),")"):""}},{key:"_buildDomNode",value:function(){var e=this;this._findInput=this._register(new lN(null,this._contextViewProvider,{width:221,label:yN,placeholder:bN,appendCaseSensitiveLabel:this._keybindingLabelFor(PE.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(PE.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(PE.ToggleRegexCommand),validation:function(t){if(0===t.length||!e._findInput.getRegex())return null;try{return new RegExp(t,"gu"),null}catch(n){return{content:n.message}}},flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118},this._contextKeyService,!0)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((function(t){return e._onFindInputKeyDown(t)}))),this._register(this._findInput.inputBox.onDidChange((function(){e._ignoreChangeEvent||e._state.change({searchString:e._findInput.getValue()},!0)}))),this._register(this._findInput.onDidOptionChange((function(){e._state.change({isRegex:e._findInput.getRegex(),wholeWord:e._findInput.getWholeWords(),matchCase:e._findInput.getCaseSensitive()},!0)}))),this._register(this._findInput.onCaseSensitiveKeyDown((function(t){t.equals(1026)&&e._isReplaceVisible&&(e._replaceInput.focus(),t.preventDefault())}))),this._register(this._findInput.onRegexKeyDown((function(t){t.equals(2)&&e._isReplaceVisible&&(e._replaceInput.focusOnPreserve(),t.preventDefault())}))),this._register(this._findInput.inputBox.onDidHeightChange((function(t){e._tryUpdateHeight()&&e._showViewZone()}))),gb.IJ&&this._register(this._findInput.onMouseDown((function(t){return e._onFindInputMouseDown(t)}))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new BN({label:wN+this._keybindingLabelFor(PE.PreviousMatchFindAction),icon:mN,onTrigger:function(){e._codeEditor.getAction(PE.PreviousMatchFindAction).run().then(void 0,My.dL)}})),this._nextBtn=this._register(new BN({label:CN+this._keybindingLabelFor(PE.NextMatchFindAction),icon:_N,onTrigger:function(){e._codeEditor.getAction(PE.NextMatchFindAction).run().then(void 0,My.dL)}}));var t=document.createElement("div");t.className="find-part",t.appendChild(this._findInput.domNode);var n=document.createElement("div");n.className="find-actions",t.appendChild(n),n.appendChild(this._matchesCount),n.appendChild(this._prevBtn.domNode),n.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new HE({icon:hN,title:kN+this._keybindingLabelFor(PE.ToggleSearchScopeCommand),isChecked:!1})),this._register(this._toggleSelectionFind.onChange((function(){if(e._toggleSelectionFind.checked){if(e._codeEditor.hasModel()){var t=e._codeEditor.getSelections();t.map((function(t){return 1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,e._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t})).filter((function(e){return!!e})),t.length&&e._state.change({searchScope:t},!0)}}else e._state.change({searchScope:null},!0)}))),n.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new BN({label:SN+this._keybindingLabelFor(PE.CloseFindWidgetCommand),icon:CS.s_,onTrigger:function(){e._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:function(t){t.equals(2)&&e._isReplaceVisible&&(e._replaceBtn.isEnabled()?e._replaceBtn.focus():e._codeEditor.focus(),t.preventDefault())}})),n.appendChild(this._closeBtn.domNode),this._replaceInput=this._register(new cN(null,void 0,{label:xN,placeholder:LN,appendPreserveCaseLabel:this._keybindingLabelFor(PE.TogglePreserveCaseCommand),history:[],flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((function(t){return e._onReplaceInputKeyDown(t)}))),this._register(this._replaceInput.inputBox.onDidChange((function(){e._state.change({replaceString:e._replaceInput.inputBox.value},!1)}))),this._register(this._replaceInput.inputBox.onDidHeightChange((function(t){e._isReplaceVisible&&e._tryUpdateHeight()&&e._showViewZone()}))),this._register(this._replaceInput.onDidOptionChange((function(){e._state.change({preserveCase:e._replaceInput.getPreserveCase()},!0)}))),this._register(this._replaceInput.onPreserveCaseKeyDown((function(t){t.equals(2)&&(e._prevBtn.isEnabled()?e._prevBtn.focus():e._nextBtn.isEnabled()?e._nextBtn.focus():e._toggleSelectionFind.enabled?e._toggleSelectionFind.focus():e._closeBtn.isEnabled()&&e._closeBtn.focus(),t.preventDefault())}))),this._replaceBtn=this._register(new BN({label:EN+this._keybindingLabelFor(PE.ReplaceOneAction),icon:gN,onTrigger:function(){e._controller.replace()},onKeyDown:function(t){t.equals(1026)&&(e._closeBtn.focus(),t.preventDefault())}})),this._replaceAllBtn=this._register(new BN({label:NN+this._keybindingLabelFor(PE.ReplaceAllAction),icon:vN,onTrigger:function(){e._controller.replaceAll()}}));var i=document.createElement("div");i.className="replace-part",i.appendChild(this._replaceInput.domNode);var r=document.createElement("div");r.className="replace-actions",i.appendChild(r),r.appendChild(this._replaceBtn.domNode),r.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new BN({label:DN,className:"codicon toggle left",onTrigger:function(){e._state.change({isReplaceRevealed:!e._isReplaceVisible},!1),e._isReplaceVisible&&(e._replaceInput.width=dw.getTotalWidth(e._findInput.domNode),e._replaceInput.inputBox.layout()),e._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.style.width="".concat(IN,"px"),this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(t),this._domNode.appendChild(i),this._resizeSash=new pk.g(this._domNode,this,{orientation:0,size:2}),this._resized=!1;var o=IN;this._register(this._resizeSash.onDidStart((function(){o=dw.getTotalWidth(e._domNode)}))),this._register(this._resizeSash.onDidChange((function(t){e._resized=!0;var n=o+t.startX-t.currentX;n<IN||(n>(parseFloat(dw.getComputedStyle(e._domNode).maxWidth)||0)||(e._domNode.style.width="".concat(n,"px"),e._isReplaceVisible&&(e._replaceInput.width=dw.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout(),e._tryUpdateHeight()))}))),this._register(this._resizeSash.onDidReset((function(){var t=dw.getTotalWidth(e._domNode);if(!(t<IN)){var n=IN;if(!e._resized||t===IN){var i=e._codeEditor.getLayoutInfo();n=i.width-28-i.minimap.minimapWidth-15,e._resized=!0}e._domNode.style.width="".concat(n,"px"),e._isReplaceVisible&&(e._replaceInput.width=dw.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout()}})))}},{key:"updateAccessibilitySupport",value:function(){var e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(2!==e)}}]),n}(WC.$);HN.ID="editor.contrib.findWidget";var BN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;(0,i.Z)(this,n),(r=t.call(this))._opts=e;var o="button";return r._opts.className&&(o=o+" "+r._opts.className),r._opts.icon&&(o=o+" "+eb.kS.asClassName(r._opts.icon)),r._domNode=document.createElement("div"),r._domNode.title=r._opts.label,r._domNode.tabIndex=0,r._domNode.className=o,r._domNode.setAttribute("role","button"),r._domNode.setAttribute("aria-label",r._opts.label),r.onclick(r._domNode,(function(e){r._opts.onTrigger(),e.preventDefault()})),r.onkeydown(r._domNode,(function(e){if(e.equals(10)||e.equals(3))return r._opts.onTrigger(),void e.preventDefault();r._opts.onKeyDown&&r._opts.onKeyDown(e)})),r}return(0,r.Z)(n,[{key:"domNode",get:function(){return this._domNode}},{key:"isEnabled",value:function(){return this._domNode.tabIndex>=0}},{key:"focus",value:function(){this._domNode.focus()}},{key:"setEnabled",value:function(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}},{key:"setExpanded",value:function(e){var t,n,i,r;(this._domNode.setAttribute("aria-expanded",String(!!e)),e)?((t=this._domNode.classList).remove.apply(t,(0,zt.Z)(eb.kS.asClassNameArray(fN))),(n=this._domNode.classList).add.apply(n,(0,zt.Z)(eb.kS.asClassNameArray(pN)))):((i=this._domNode.classList).remove.apply(i,(0,zt.Z)(eb.kS.asClassNameArray(pN))),(r=this._domNode.classList).add.apply(r,(0,zt.Z)(eb.kS.asClassNameArray(fN))))}}]),n}(WC.$);(0,eb.Ic)((function(e,t){var n=function(e,n){n&&t.addRule(".monaco-editor ".concat(e," { background-color: ").concat(n,"; }"))};n(".findMatch",e.getColor(Jy.MU)),n(".currentFindMatch",e.getColor(Jy.ny)),n(".findScope",e.getColor(Jy.jU)),n(".find-widget",e.getColor(Jy.D0));var i=e.getColor(Jy.rh);i&&t.addRule(".monaco-editor .find-widget { box-shadow: 0 0 8px 2px ".concat(i,"; }"));var r=e.getColor(Jy.Ei);r&&t.addRule(".monaco-editor .findMatch { border: 1px ".concat("hc"===e.type?"dotted":"solid"," ").concat(r,"; box-sizing: border-box; }"));var o=e.getColor(Jy.pn);o&&t.addRule(".monaco-editor .currentFindMatch { border: 2px solid ".concat(o,"; padding: 1px; box-sizing: border-box; }"));var a=e.getColor(Jy.gk);a&&t.addRule(".monaco-editor .findScope { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(a,"; }"));var s=e.getColor(Jy.lR);s&&t.addRule(".monaco-editor .find-widget { border: 1px solid ".concat(s,"; }"));var u=e.getColor(Jy.Hf);u&&t.addRule(".monaco-editor .find-widget { color: ".concat(u,"; }"));var l=e.getColor(Jy.Id);l&&t.addRule(".monaco-editor .find-widget.no-results .matchesCount { color: ".concat(l,"; }"));var c=e.getColor(Jy.Ng);if(c)t.addRule(".monaco-editor .find-widget .monaco-sash { background-color: ".concat(c,"; }"));else{var d=e.getColor(Jy.D1);d&&t.addRule(".monaco-editor .find-widget .monaco-sash { background-color: ".concat(d,"; }"))}var h=e.getColor(Jy.R8);h&&t.addRule(".monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ".concat(h,"; }"))}));var zN=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},WN=function(e,t){return function(n,i){t(n,i,e)}},VN=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},YN=524288;function UN(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"single";if(!e.hasModel())return null;var n=e.getSelection();if("single"===t&&n.startLineNumber===n.endLineNumber||"multiple"===t)if(n.isEmpty()){var i=e.getConfiguredWordAtPosition(n.getStartPosition());if(i)return i.word}else if(e.getModel().getValueLengthInRange(n)<YN)return e.getModel().getValueInRange(n);return null}var KN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._editor=e,s._findWidgetVisible=NE.bindTo(r),s._contextKeyService=r,s._storageService=o,s._clipboardService=a,s._updateHistoryDelayer=new Uy.vp(500),s._state=s._register(new GE),s.loadQueryState(),s._register(s._state.onFindReplaceStateChange((function(e){return s._onStateChanged(e)}))),s._model=null,s._register(s._editor.onDidChangeModel((function(){var e=s._editor.getModel()&&s._state.isRevealed;s.disposeModel(),s._state.change({searchScope:null,matchCase:s._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:s._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:s._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:s._storageService.getBoolean("editor.preserveCase",1,!1)},!1),e&&s._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:s._editor.getOption(33).loop})}))),s}return(0,r.Z)(n,[{key:"editor",get:function(){return this._editor}},{key:"dispose",value:function(){this.disposeModel(),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"disposeModel",value:function(){this._model&&(this._model.dispose(),this._model=null)}},{key:"_onStateChanged",value:function(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}},{key:"saveQueryState",value:function(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,0),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,0),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,0),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,0)}},{key:"loadQueryState",value:function(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}},{key:"isFindInputFocused",value:function(){return!!DE.getValue(this._contextKeyService)}},{key:"getState",value:function(){return this._state}},{key:"closeFindWidget",value:function(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}},{key:"toggleCaseSensitive",value:function(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}},{key:"toggleWholeWords",value:function(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}},{key:"toggleRegex",value:function(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}},{key:"togglePreserveCase",value:function(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}},{key:"toggleSearchScope",value:function(){var e=this;if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){var t=this._editor.getSelections();t.map((function(t){return 1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,e._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t})).filter((function(e){return!!e})),t.length&&this._state.change({searchScope:t},!0)}}},{key:"setSearchString",value:function(e){this._state.isRegex&&(e=Ib.ec(e)),this._state.change({searchString:e},!1)}},{key:"highlightFindOptions",value:function(){}},{key:"_start",value:function(e){return VN(this,void 0,void 0,ti().mark((function t(){var n,i,r,o,a;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.disposeModel(),this._editor.hasModel()){t.next=3;break}return t.abrupt("return");case 3:if(n={isRevealed:!0},"single"===e.seedSearchStringFromSelection?(i=UN(this._editor,e.seedSearchStringFromSelection))&&(this._state.isRegex?n.searchString=Ib.ec(i):n.searchString=i):"multiple"!==e.seedSearchStringFromSelection||e.updateSearchScope||(r=UN(this._editor,e.seedSearchStringFromSelection))&&(n.searchString=r),n.searchString||!e.seedSearchStringFromGlobalClipboard){t.next=12;break}return t.next=8,this.getGlobalBufferTerm();case 8:if(o=t.sent,this._editor.hasModel()){t.next=11;break}return t.abrupt("return");case 11:o&&(n.searchString=o);case 12:e.forceRevealReplace?n.isReplaceRevealed=!0:this._findWidgetVisible.get()||(n.isReplaceRevealed=!1),e.updateSearchScope&&(a=this._editor.getSelections()).some((function(e){return!e.isEmpty()}))&&(n.searchScope=a),n.loop=e.loop,this._state.change(n,!1),this._model||(this._model=new FE(this._editor,this._state));case 17:case"end":return t.stop()}}),t,this)})))}},{key:"start",value:function(e){return this._start(e)}},{key:"moveToNextMatch",value:function(){return!!this._model&&(this._model.moveToNextMatch(),!0)}},{key:"moveToPrevMatch",value:function(){return!!this._model&&(this._model.moveToPrevMatch(),!0)}},{key:"replace",value:function(){return!!this._model&&(this._model.replace(),!0)}},{key:"replaceAll",value:function(){return!!this._model&&(this._model.replaceAll(),!0)}},{key:"selectAllMatches",value:function(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)}},{key:"getGlobalBufferTerm",value:function(){return VN(this,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._editor.getOption(33).globalFindClipboard||!this._editor.hasModel()||this._editor.getModel().isTooLargeForSyncing()){e.next=2;break}return e.abrupt("return",this._clipboardService.readFindText());case 2:return e.abrupt("return","");case 3:case"end":return e.stop()}}),e,this)})))}},{key:"setGlobalBufferTerm",value:function(e){this._editor.getOption(33).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);KN.ID="editor.contrib.findController";var qN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l,c){var d;return(0,i.Z)(this,n),(d=t.call(this,e,o,l,c))._contextViewService=r,d._keybindingService=a,d._themeService=s,d._notificationService=u,d._widget=null,d._findOptionsWidget=null,d}return(0,r.Z)(n,[{key:"_start",value:function(e){var t=this,i=Object.create(null,{_start:{get:function(){return(0,nw.Z)((0,iw.Z)(n.prototype),"_start",t)}}});return VN(this,void 0,void 0,ti().mark((function t(){var n,r,o;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this._widget||this._createFindWidget(),n=this._editor.getSelection(),r=!1,t.t0=this._editor.getOption(33).autoFindInSelection,t.next="always"===t.t0?6:"never"===t.t0?8:"multiline"===t.t0?10:13;break;case 6:return r=!0,t.abrupt("break",14);case 8:return r=!1,t.abrupt("break",14);case 10:return o=!!n&&n.startLineNumber!==n.endLineNumber,r=o,t.abrupt("break",14);case 13:return t.abrupt("break",14);case 14:return e.updateSearchScope=r,t.next=17,i._start.call(this,e);case 17:this._widget&&(2===e.shouldFocus?this._widget.focusReplaceInput():1===e.shouldFocus&&this._widget.focusFindInput());case 18:case"end":return t.stop()}}),t,this)})))}},{key:"highlightFindOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}},{key:"_createFindWidget",value:function(){this._widget=this._register(new HN(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new KE(this._editor,this._state,this._keybindingService,this._themeService))}}]),n}(KN=zN([WN(1,Ey.i6),WN(2,wC.Uy),WN(3,_b.p)],KN));qN=zN([WN(1,fw.u),WN(2,Ey.i6),WN(3,pw.d),WN(4,eb.XE),WN(5,jw.lT),WN(6,wC.Uy),WN(7,_b.p)],qN),(0,Cy.rn)(new Cy.jY({id:PE.StartFindAction,label:ky.N("startFindAction","Find"),alias:"Find",precondition:Ey.Ao.or(Sy.u.focus,Ey.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:tb.eH.MenubarEditMenu,group:"3_find",title:ky.N({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}})).addImplementation(0,(function(e,t,n){var i=KN.get(t);return!!i&&i.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(33).seedSearchStringFromSelection?"single":"none",seedSearchStringFromGlobalClipboard:t.getOption(33).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop})}));var GN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:PE.StartFindWithSelection,label:ky.N("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return VN(this,void 0,void 0,ti().mark((function e(){var n;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=KN.get(t))){e.next=5;break}return e.next=4,n.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop});case 4:n.setGlobalBufferTerm(n.getState().searchString);case 5:case"end":return e.stop()}}),e)})))}}]),n}(Cy.R6),$N=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){return VN(this,void 0,void 0,ti().mark((function e(){var n;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=KN.get(t))||this._run(n)){e.next=5;break}return e.next=4,n.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===n.getState().searchString.length&&t.getOption(33).seedSearchStringFromSelection?"single":"none",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop});case 4:this._run(n);case 5:case"end":return e.stop()}}),e,this)})))}}]),n}(Cy.R6),QN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:PE.NextMatchFindAction,label:ky.N("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return!!e.moveToNextMatch()&&(e.editor.pushUndoStop(),!0)}}]),n}($N),XN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:PE.NextMatchFindAction,label:ky.N("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:{kbExpr:Ey.Ao.and(Sy.u.focus,DE),primary:3,weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return!!e.moveToNextMatch()&&(e.editor.pushUndoStop(),!0)}}]),n}($N),JN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:PE.PreviousMatchFindAction,label:ky.N("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return e.moveToPrevMatch()}}]),n}($N),eD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:PE.PreviousMatchFindAction,label:ky.N("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:{kbExpr:Ey.Ao.and(Sy.u.focus,DE),primary:1027,weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return e.moveToPrevMatch()}}]),n}($N),tD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){return VN(this,void 0,void 0,ti().mark((function e(){var n,i;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=KN.get(t)){e.next=3;break}return e.abrupt("return");case 3:if((i=UN(t))&&n.setSearchString(i),this._run(n)){e.next=9;break}return e.next=8,n.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(33).seedSearchStringFromSelection?"single":"none",seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop});case 8:this._run(n);case 9:case"end":return e.stop()}}),e,this)})))}}]),n}(Cy.R6),nD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:PE.NextSelectionMatchFindAction,label:ky.N("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:2109,weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return e.moveToNextMatch()}}]),n}(tD),iD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:PE.PreviousSelectionMatchFindAction,label:ky.N("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:3133,weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return e.moveToPrevMatch()}}]),n}(tD);(0,Cy.rn)(new Cy.jY({id:PE.StartFindReplaceAction,label:ky.N("startReplace","Replace"),alias:"Replace",precondition:Ey.Ao.or(Sy.u.focus,Ey.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:tb.eH.MenubarEditMenu,group:"3_find",title:ky.N({key:"miReplace",comment:["&& denotes a mnemonic"]},"&&Replace"),order:2}})).addImplementation(0,(function(e,t,n){if(!t.hasModel()||t.getOption(77))return!1;var i=KN.get(t);if(!i)return!1;var r=t.getSelection(),o=i.isFindInputFocused(),a=!r.isEmpty()&&r.startLineNumber===r.endLineNumber&&t.getOption(33).seedSearchStringFromSelection&&!o,s=o||a?2:1;return i.start({forceRevealReplace:!0,seedSearchStringFromSelection:a?"single":"none",seedSearchStringFromGlobalClipboard:t.getOption(33).seedSearchStringFromSelection,shouldFocus:s,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop})})),(0,Cy._K)(KN.ID,qN),(0,Cy.Qr)(GN),(0,Cy.Qr)(QN),(0,Cy.Qr)(XN),(0,Cy.Qr)(JN),(0,Cy.Qr)(eD),(0,Cy.Qr)(nD),(0,Cy.Qr)(iD);var rD=Cy._l.bindToContribution(KN.get);(0,Cy.fK)(new rD({id:PE.CloseFindWidgetCommand,precondition:NE,handler:function(e){return e.closeFindWidget()},kbOpts:{weight:105,kbExpr:Ey.Ao.and(Sy.u.focus,Ey.Ao.not("isComposing")),primary:9,secondary:[1033]}})),(0,Cy.fK)(new rD({id:PE.ToggleCaseSensitiveCommand,precondition:void 0,handler:function(e){return e.toggleCaseSensitive()},kbOpts:{weight:105,kbExpr:Sy.u.focus,primary:TE.primary,mac:TE.mac,win:TE.win,linux:TE.linux}})),(0,Cy.fK)(new rD({id:PE.ToggleWholeWordCommand,precondition:void 0,handler:function(e){return e.toggleWholeWords()},kbOpts:{weight:105,kbExpr:Sy.u.focus,primary:OE.primary,mac:OE.mac,win:OE.win,linux:OE.linux}})),(0,Cy.fK)(new rD({id:PE.ToggleRegexCommand,precondition:void 0,handler:function(e){return e.toggleRegex()},kbOpts:{weight:105,kbExpr:Sy.u.focus,primary:IE.primary,mac:IE.mac,win:IE.win,linux:IE.linux}})),(0,Cy.fK)(new rD({id:PE.ToggleSearchScopeCommand,precondition:void 0,handler:function(e){return e.toggleSearchScope()},kbOpts:{weight:105,kbExpr:Sy.u.focus,primary:AE.primary,mac:AE.mac,win:AE.win,linux:AE.linux}})),(0,Cy.fK)(new rD({id:PE.TogglePreserveCaseCommand,precondition:void 0,handler:function(e){return e.togglePreserveCase()},kbOpts:{weight:105,kbExpr:Sy.u.focus,primary:RE.primary,mac:RE.mac,win:RE.win,linux:RE.linux}})),(0,Cy.fK)(new rD({id:PE.ReplaceOneAction,precondition:NE,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:Sy.u.focus,primary:3094}})),(0,Cy.fK)(new rD({id:PE.ReplaceOneAction,precondition:NE,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:Ey.Ao.and(Sy.u.focus,ME),primary:3}})),(0,Cy.fK)(new rD({id:PE.ReplaceAllAction,precondition:NE,handler:function(e){return e.replaceAll()},kbOpts:{weight:105,kbExpr:Sy.u.focus,primary:2563}})),(0,Cy.fK)(new rD({id:PE.ReplaceAllAction,precondition:NE,handler:function(e){return e.replaceAll()},kbOpts:{weight:105,kbExpr:Ey.Ao.and(Sy.u.focus,ME),primary:void 0,mac:{primary:2051}}})),(0,Cy.fK)(new rD({id:PE.SelectAllMatchesAction,precondition:NE,handler:function(e){return e.selectAllMatches()},kbOpts:{weight:105,kbExpr:Sy.u.focus,primary:515}}));var oD=65535,aD=16777215,sD=4278190080,uD=function(){function e(t,n,r){if((0,i.Z)(this,e),t.length!==n.length||t.length>oD)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=t,this._endIndexes=n,this._collapseStates=new Uint32Array(Math.ceil(t.length/32)),this._types=r,this._parentsComputed=!1}return(0,r.Z)(e,[{key:"ensureParentIndices",value:function(){var e=this;if(!this._parentsComputed){this._parentsComputed=!0;for(var t=[],n=function(n,i){var r=t[t.length-1];return e.getStartLineNumber(r)<=n&&e.getEndLineNumber(r)>=i},i=0,r=this._startIndexes.length;i<r;i++){var o=this._startIndexes[i],a=this._endIndexes[i];if(o>aD||a>aD)throw new Error("startLineNumber or endLineNumber must not exceed "+aD);for(;t.length>0&&!n(o,a);)t.pop();var s=t.length>0?t[t.length-1]:-1;t.push(i),this._startIndexes[i]=o+((255&s)<<24),this._endIndexes[i]=a+((65280&s)<<16)}}}},{key:"length",get:function(){return this._startIndexes.length}},{key:"getStartLineNumber",value:function(e){return this._startIndexes[e]&aD}},{key:"getEndLineNumber",value:function(e){return this._endIndexes[e]&aD}},{key:"getType",value:function(e){return this._types?this._types[e]:void 0}},{key:"hasTypes",value:function(){return!!this._types}},{key:"isCollapsed",value:function(e){var t=e/32|0,n=e%32;return 0!==(this._collapseStates[t]&1<<n)}},{key:"setCollapsed",value:function(e,t){var n=e/32|0,i=e%32,r=this._collapseStates[n];this._collapseStates[n]=t?r|1<<i:r&~(1<<i)}},{key:"toRegion",value:function(e){return new lD(this,e)}},{key:"getParentIndex",value:function(e){this.ensureParentIndices();var t=((this._startIndexes[e]&sD)>>>24)+((this._endIndexes[e]&sD)>>>16);return t===oD?-1:t}},{key:"contains",value:function(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}},{key:"findIndex",value:function(e){var t=0,n=this._startIndexes.length;if(0===n)return-1;for(;t<n;){var i=Math.floor((t+n)/2);e<this.getStartLineNumber(i)?n=i:t=i+1}return t-1}},{key:"findRange",value:function(e){var t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);-1!==t;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}},{key:"toString",value:function(){for(var e=[],t=0;t<this.length;t++)e[t]="[".concat(this.isCollapsed(t)?"+":"-","] ").concat(this.getStartLineNumber(t),"/").concat(this.getEndLineNumber(t));return e.join(", ")}}]),e}(),lD=function(){function e(t,n){(0,i.Z)(this,e),this.ranges=t,this.index=n}return(0,r.Z)(e,[{key:"startLineNumber",get:function(){return this.ranges.getStartLineNumber(this.index)}},{key:"endLineNumber",get:function(){return this.ranges.getEndLineNumber(this.index)}},{key:"regionIndex",get:function(){return this.index}},{key:"parentIndex",get:function(){return this.ranges.getParentIndex(this.index)}},{key:"isCollapsed",get:function(){return this.ranges.isCollapsed(this.index)}},{key:"containedBy",value:function(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}},{key:"containsLine",value:function(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}]),e}(),cD=function(){function e(t,n){(0,i.Z)(this,e),this._updateEventEmitter=new kw.Q5,this.onDidChange=this._updateEventEmitter.event,this._textModel=t,this._decorationProvider=n,this._regions=new uD(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[],this._isInitialized=!1}return(0,r.Z)(e,[{key:"regions",get:function(){return this._regions}},{key:"textModel",get:function(){return this._textModel}},{key:"isInitialized",get:function(){return this._isInitialized}},{key:"toggleCollapseState",value:function(e){var t=this;if(e.length){e=e.sort((function(e,t){return e.regionIndex-t.regionIndex}));var n={};this._decorationProvider.changeDecorations((function(i){var r,o=0,a=-1,s=-1,u=function(e){for(;o<e;){var n=t._regions.getEndLineNumber(o),r=t._regions.isCollapsed(o);n<=a&&i.changeDecorationOptions(t._editorDecorationIds[o],t._decorationProvider.getDecorationOption(r,n<=s)),r&&n>s&&(s=n),o++}},l=(0,tr.Z)(e);try{for(l.s();!(r=l.n()).done;){var c=r.value.regionIndex,d=t._editorDecorationIds[c];if(d&&!n[d]){n[d]=!0,u(c);var h=!t._regions.isCollapsed(c);t._regions.setCollapsed(c,h),a=Math.max(a,t._regions.getEndLineNumber(c))}}}catch(f){l.e(f)}finally{l.f()}u(t._regions.length)})),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}}},{key:"update",value:function(e){for(var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=[],r=-1,o=function(o,a){var s=e.getStartLineNumber(o),u=e.getEndLineNumber(o);a&&function(e,t){var i,r=(0,tr.Z)(n);try{for(r.s();!(i=r.n()).done;){var o=i.value;if(e<o&&o<=t)return!0}}catch(a){r.e(a)}finally{r.f()}return!1}(s,u)&&(a=!1),e.setCollapsed(o,a);var l=t._textModel.getLineMaxColumn(s),c={startLineNumber:s,startColumn:Math.max(l-1,1),endLineNumber:s,endColumn:l};i.push({range:c,options:t._decorationProvider.getDecorationOption(a,u<=r)}),a&&u>r&&(r=u)},a=0,s=function(){for(;a<t._regions.length;){var e=t._regions.isCollapsed(a);if(a++,e)return a-1}return-1},u=0,l=s();-1!==l&&u<e.length;){var c=this._textModel.getDecorationRange(this._editorDecorationIds[l]);if(c){var d=c.startLineNumber;if(c.startColumn===Math.max(c.endColumn-1,1)&&this._textModel.getLineMaxColumn(d)===c.endColumn)for(;u<e.length;){var h=e.getStartLineNumber(u);if(!(d>=h))break;o(u,d===h),u++}}l=s()}for(;u<e.length;)o(u,!1),u++;this._editorDecorationIds=this._decorationProvider.deltaDecorations(this._editorDecorationIds,i),this._regions=e,this._isInitialized=!0,this._updateEventEmitter.fire({model:this})}},{key:"getMemento",value:function(){for(var e=[],t=0;t<this._regions.length;t++)if(this._regions.isCollapsed(t)){var n=this._textModel.getDecorationRange(this._editorDecorationIds[t]);if(n){var i=n.startLineNumber,r=n.endLineNumber+this._regions.getEndLineNumber(t)-this._regions.getStartLineNumber(t);e.push({startLineNumber:i,endLineNumber:r})}}if(e.length>0)return e}},{key:"applyMemento",value:function(e){if(Array.isArray(e)){var t,n=[],i=(0,tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.getRegionAtLine(r.startLineNumber);o&&!o.isCollapsed&&n.push(o)}}catch(a){i.e(a)}finally{i.f()}this.toggleCollapseState(n)}}},{key:"dispose",value:function(){this._decorationProvider.deltaDecorations(this._editorDecorationIds,[])}},{key:"getAllRegionsAtLine",value:function(e,t){var n=[];if(this._regions)for(var i=this._regions.findRange(e),r=1;i>=0;){var o=this._regions.toRegion(i);t&&!t(o,r)||n.push(o),r++,i=o.parentIndex}return n}},{key:"getRegionAtLine",value:function(e){if(this._regions){var t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}},{key:"getRegionsInside",value:function(e,t){var n=[],i=e?e.regionIndex+1:0,r=e?e.endLineNumber:Number.MAX_VALUE;if(t&&2===t.length)for(var o=[],a=i,s=this._regions.length;a<s;a++){var u=this._regions.toRegion(a);if(!(this._regions.getStartLineNumber(a)<r))break;for(;o.length>0&&!u.containedBy(o[o.length-1]);)o.pop();o.push(u),t(u,o.length)&&n.push(u)}else for(var l=i,c=this._regions.length;l<c;l++){var d=this._regions.toRegion(l);if(!(this._regions.getStartLineNumber(l)<r))break;t&&!t(d)||n.push(d)}return n}}]),e}();function dD(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.MAX_VALUE,i=arguments.length>3?arguments[3]:void 0,r=[];if(i&&i.length>0){var o,a=(0,tr.Z)(i);try{for(a.s();!(o=a.n()).done;){var s=o.value,u=e.getRegionAtLine(s);if(u&&(u.isCollapsed!==t&&r.push(u),n>1)){var l=e.getRegionsInside(u,(function(e,i){return e.isCollapsed!==t&&i<n}));r.push.apply(r,(0,zt.Z)(l))}}}catch(d){a.e(d)}finally{a.f()}}else{var c=e.getRegionsInside(null,(function(e,i){return e.isCollapsed!==t&&i<n}));r.push.apply(r,(0,zt.Z)(c))}e.toggleCollapseState(r)}function hD(e,t,n,i){var r,o=[],a=(0,tr.Z)(i);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=e.getAllRegionsAtLine(s,(function(e,i){return e.isCollapsed!==t&&i<=n}));o.push.apply(o,(0,zt.Z)(u))}}catch(l){a.e(l)}finally{a.f()}e.toggleCollapseState(o)}function fD(e,t,n){var i,r=[],o=(0,tr.Z)(n);try{for(o.s();!(i=o.n()).done;){var a=i.value;r.push(e.getAllRegionsAtLine(a,void 0)[0])}}catch(u){o.e(u)}finally{o.f()}var s=e.getRegionsInside(null,(function(e){return r.every((function(t){return!t.containedBy(e)&&!e.containedBy(t)}))&&e.isCollapsed!==t}));e.toggleCollapseState(s)}function pD(e,t,n){for(var i=e.textModel,r=e.regions,o=[],a=r.length-1;a>=0;a--)if(n!==r.isCollapsed(a)){var s=r.getStartLineNumber(a);t.test(i.getLineContent(s))&&o.push(r.toRegion(a))}e.toggleCollapseState(o)}function gD(e,t,n){for(var i=e.regions,r=[],o=i.length-1;o>=0;o--)n!==i.isCollapsed(o)&&t===i.getType(o)&&r.push(i.toRegion(o));e.toggleCollapseState(r)}var vD=(0,CS.q5)("folding-expanded",xw.lA.chevronDown,(0,ky.N)("foldingExpandedIcon","Icon for expanded ranges in the editor glyph margin.")),mD=(0,CS.q5)("folding-collapsed",xw.lA.chevronRight,(0,ky.N)("foldingCollapsedIcon","Icon for collapsed ranges in the editor glyph margin.")),_D=function(){function e(t){(0,i.Z)(this,e),this.editor=t,this.autoHideFoldingControls=!0,this.showFoldingHighlights=!0}return(0,r.Z)(e,[{key:"getDecorationOption",value:function(t,n){return n?e.HIDDEN_RANGE_DECORATION:t?this.showFoldingHighlights?e.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:e.COLLAPSED_VISUAL_DECORATION:this.autoHideFoldingControls?e.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:e.EXPANDED_VISUAL_DECORATION}},{key:"deltaDecorations",value:function(e,t){return this.editor.deltaDecorations(e,t)}},{key:"changeDecorations",value:function(e){return this.editor.changeDecorations(e)}}]),e}();_D.COLLAPSED_VISUAL_DECORATION=Qy.qx.register({stickiness:1,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:eb.kS.asClassName(mD)}),_D.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Qy.qx.register({stickiness:1,afterContentClassName:"inline-folded",className:"folded-background",isWholeLine:!0,firstLineDecorationClassName:eb.kS.asClassName(mD)}),_D.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Qy.qx.register({stickiness:1,isWholeLine:!0,firstLineDecorationClassName:eb.kS.asClassName(vD)}),_D.EXPANDED_VISUAL_DECORATION=Qy.qx.register({stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+eb.kS.asClassName(vD)}),_D.HIDDEN_RANGE_DECORATION=Qy.qx.register({stickiness:1});var yD=function(){function e(t){var n=this;(0,i.Z)(this,e),this._updateEventEmitter=new kw.Q5,this._foldingModel=t,this._foldingModelListener=t.onDidChange((function(e){return n.updateHiddenRanges()})),this._hiddenRanges=[],t.regions.length&&this.updateHiddenRanges()}return(0,r.Z)(e,[{key:"onDidChange",get:function(){return this._updateEventEmitter.event}},{key:"hiddenRanges",get:function(){return this._hiddenRanges}},{key:"updateHiddenRanges",value:function(){for(var e=!1,t=[],n=0,i=0,r=Number.MAX_VALUE,o=-1,a=this._foldingModel.regions;n<a.length;n++)if(a.isCollapsed(n)){var s=a.getStartLineNumber(n)+1,u=a.getEndLineNumber(n);r<=s&&u<=o||(!e&&i<this._hiddenRanges.length&&this._hiddenRanges[i].startLineNumber===s&&this._hiddenRanges[i].endLineNumber===u?(t.push(this._hiddenRanges[i]),i++):(e=!0,t.push(new Gy.e(s,1,u,1))),r=s,o=u)}(e||i<this._hiddenRanges.length)&&this.applyHiddenRanges(t)}},{key:"applyMemento",value:function(e){if(!Array.isArray(e)||0===e.length)return!1;var t,n=[],i=(0,tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;if(!r.startLineNumber||!r.endLineNumber)return!1;n.push(new Gy.e(r.startLineNumber+1,1,r.endLineNumber,1))}}catch(o){i.e(o)}finally{i.f()}return this.applyHiddenRanges(n),!0}},{key:"getMemento",value:function(){return this._hiddenRanges.map((function(e){return{startLineNumber:e.startLineNumber-1,endLineNumber:e.endLineNumber}}))}},{key:"applyHiddenRanges",value:function(e){this._hiddenRanges=e,this._updateEventEmitter.fire(e)}},{key:"hasRanges",value:function(){return this._hiddenRanges.length>0}},{key:"isHidden",value:function(e){return null!==bD(this._hiddenRanges,e)}},{key:"adjustSelections",value:function(e){for(var t=this,n=!1,i=this._foldingModel.textModel,r=null,o=function(e){return r&&function(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}(e,r)||(r=bD(t._hiddenRanges,e)),r?r.startLineNumber-1:null},a=0,s=e.length;a<s;a++){var u=e[a],l=o(u.startLineNumber);l&&(u=u.setStartPosition(l,i.getLineMaxColumn(l)),n=!0);var c=o(u.endLineNumber);c&&(u=u.setEndPosition(c,i.getLineMaxColumn(c)),n=!0),e[a]=u}return n}},{key:"dispose",value:function(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}]),e}();function bD(e,t){var n=(0,Ny.lG)(e,(function(e){return t<e.startLineNumber}))-1;return n>=0&&e[n].endLineNumber>=t?e[n]:null}var wD=5e3,CD="indent",kD=function(){function e(t){(0,i.Z)(this,e),this.editorModel=t,this.id=CD}return(0,r.Z)(e,[{key:"dispose",value:function(){}},{key:"compute",value:function(e){var t=QL.zu.getFoldingRules(this.editorModel.getLanguageIdentifier().id),n=t&&!!t.offSide,i=t&&t.markers;return Promise.resolve(function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:wD,r=e.getOptions().tabSize,o=new SD(i),a=void 0;n&&(a=new RegExp("(".concat(n.start.source,")|(?:").concat(n.end.source,")")));var s=[],u=e.getLineCount()+1;s.push({indent:-1,endAbove:u,line:u});for(var l=e.getLineCount();l>0;l--){var c=e.getLineContent(l),d=Qy.yO.computeIndentLevel(c,r),h=s[s.length-1];if(-1!==d){var f=void 0;if(a&&(f=c.match(a))){if(!f[1]){s.push({indent:-2,endAbove:l,line:l});continue}for(var p=s.length-1;p>0&&-2!==s[p].indent;)p--;if(p>0){s.length=p+1,h=s[p],o.insertFirst(l,h.line,d),h.line=l,h.indent=d,h.endAbove=l;continue}}if(h.indent>d){do{s.pop(),h=s[s.length-1]}while(h.indent>d);var g=h.endAbove-1;g-l>=1&&o.insertFirst(l,g,d)}h.indent===d?h.endAbove=l:s.push({indent:d,endAbove:l,line:l})}else t&&(h.endAbove=l)}return o.toIndentRanges(e)}(this.editorModel,n,i))}}]),e}(),SD=function(){function e(t){(0,i.Z)(this,e),this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=t}return(0,r.Z)(e,[{key:"insertFirst",value:function(e,t,n){if(!(e>aD||t>aD)){var i=this._length;this._startIndexes[i]=e,this._endIndexes[i]=t,this._length++,n<1e3&&(this._indentOccurrences[n]=(this._indentOccurrences[n]||0)+1)}}},{key:"toIndentRanges",value:function(e){if(this._length<=this._foldingRangesLimit){for(var t=new Uint32Array(this._length),n=new Uint32Array(this._length),i=this._length-1,r=0;i>=0;i--,r++)t[r]=this._startIndexes[i],n[r]=this._endIndexes[i];return new uD(t,n)}for(var o=0,a=this._indentOccurrences.length,s=0;s<this._indentOccurrences.length;s++){var u=this._indentOccurrences[s];if(u){if(u+o>this._foldingRangesLimit){a=s;break}o+=u}}for(var l=e.getOptions().tabSize,c=new Uint32Array(this._foldingRangesLimit),d=new Uint32Array(this._foldingRangesLimit),h=this._length-1,f=0;h>=0;h--){var p=this._startIndexes[h],g=e.getLineContent(p),v=Qy.yO.computeIndentLevel(g,l);(v<a||v===a&&o++<this._foldingRangesLimit)&&(c[f]=p,d[f]=this._endIndexes[h],f++)}return new uD(c,d)}}]),e}();var xD=5e3,LD={},ED="syntax",ND=function(){function e(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:xD;(0,i.Z)(this,e),this.editorModel=t,this.providers=n,this.limit=o,this.id=ED;var a,s=(0,tr.Z)(n);try{for(s.s();!(a=s.n()).done;){var u=a.value;"function"===typeof u.onDidChange&&(this.disposables||(this.disposables=new Ky.SL),this.disposables.add(u.onDidChange(r)))}}catch(l){s.e(l)}finally{s.f()}}return(0,r.Z)(e,[{key:"compute",value:function(e){var t=this;return function(e,t,n){var i=null,r=e.map((function(e,r){return Promise.resolve(e.provideFoldingRanges(t,LD,n)).then((function(e){if(!n.isCancellationRequested&&Array.isArray(e)){Array.isArray(i)||(i=[]);var o,a=t.getLineCount(),s=(0,tr.Z)(e);try{for(s.s();!(o=s.n()).done;){var u=o.value;u.start>0&&u.end>u.start&&u.end<=a&&i.push({start:u.start,end:u.end,rank:r,kind:u.kind})}}catch(l){s.e(l)}finally{s.f()}}}),My.Cp)}));return Promise.all(r).then((function(e){return i}))}(this.providers,this.editorModel,e).then((function(e){return e?MD(e,t.limit):null}))}},{key:"dispose",value:function(){var e;null===(e=this.disposables)||void 0===e||e.dispose()}}]),e}();var DD=function(){function e(t){(0,i.Z)(this,e),this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=t}return(0,r.Z)(e,[{key:"add",value:function(e,t,n,i){if(!(e>aD||t>aD)){var r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._nestingLevels[r]=i,this._types[r]=n,this._length++,i<30&&(this._nestingLevelCounts[i]=(this._nestingLevelCounts[i]||0)+1)}}},{key:"toIndentRanges",value:function(){if(this._length<=this._foldingRangesLimit){for(var e=new Uint32Array(this._length),t=new Uint32Array(this._length),n=0;n<this._length;n++)e[n]=this._startIndexes[n],t[n]=this._endIndexes[n];return new uD(e,t,this._types)}for(var i=0,r=this._nestingLevelCounts.length,o=0;o<this._nestingLevelCounts.length;o++){var a=this._nestingLevelCounts[o];if(a){if(a+i>this._foldingRangesLimit){r=o;break}i+=a}}for(var s=new Uint32Array(this._foldingRangesLimit),u=new Uint32Array(this._foldingRangesLimit),l=[],c=0,d=0;c<this._length;c++){var h=this._nestingLevels[c];(h<r||h===r&&i++<this._foldingRangesLimit)&&(s[d]=this._startIndexes[c],u[d]=this._endIndexes[c],l[d]=this._types[c],d++)}return new uD(s,u,l)}}]),e}();function MD(e,t){var n,i=e.sort((function(e,t){var n=e.start-t.start;return 0===n&&(n=e.rank-t.rank),n})),r=new DD(t),o=void 0,a=[],s=(0,tr.Z)(i);try{for(s.s();!(n=s.n()).done;){var u=n.value;if(o){if(u.start>o.start)if(u.end<=o.end)a.push(o),o=u,r.add(u.start,u.end,u.kind&&u.kind.value,a.length);else{if(u.start>o.end){do{o=a.pop()}while(o&&u.start>o.end);o&&a.push(o),o=u}r.add(u.start,u.end,u.kind&&u.kind.value,a.length)}}else o=u,r.add(u.start,u.end,u.kind&&u.kind.value,a.length)}}catch(l){s.e(l)}finally{s.f()}return r.toIndentRanges()}var TD="init",OD=function(){function e(t,n,r,o){if((0,i.Z)(this,e),this.editorModel=t,this.id=TD,n.length){this.decorationIds=t.deltaDecorations([],n.map((function(e){return{range:{startLineNumber:e.startLineNumber,startColumn:0,endLineNumber:e.endLineNumber,endColumn:t.getLineLength(e.endLineNumber)},options:{stickiness:1}}}))),this.timeout=setTimeout(r,o)}}return(0,r.Z)(e,[{key:"dispose",value:function(){this.decorationIds&&(this.editorModel.deltaDecorations(this.decorationIds,[]),this.decorationIds=void 0),"number"===typeof this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)}},{key:"compute",value:function(e){var t=[];if(this.decorationIds){var n,i=(0,tr.Z)(this.decorationIds);try{for(i.s();!(n=i.n()).done;){var r=n.value,o=this.editorModel.getDecorationRange(r);o&&t.push({start:o.startLineNumber,end:o.endLineNumber,rank:1})}}catch(a){i.e(a)}finally{i.f()}}return Promise.resolve(MD(t,Number.MAX_VALUE))}}]),e}(),ID=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},AD=function(e,t){return function(n,i){t(n,i,e)}},RD=new Ey.uy("foldingEnabled",!1),PD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;(0,i.Z)(this,n),(o=t.call(this)).contextKeyService=r,o.localToDispose=o._register(new Ky.SL),o.editor=e;var a=o.editor.getOptions();return o._isEnabled=a.get(35),o._useFoldingProviders="indentation"!==a.get(36),o._unfoldOnClickAfterEndOfLine=a.get(38),o._restoringViewState=!1,o.foldingModel=null,o.hiddenRangeModel=null,o.rangeProvider=null,o.foldingRegionPromise=null,o.foldingStateMemento=null,o.foldingModelPromise=null,o.updateScheduler=null,o.cursorChangedScheduler=null,o.mouseDownInfo=null,o.foldingDecorationProvider=new _D(e),o.foldingDecorationProvider.autoHideFoldingControls="mouseover"===a.get(96),o.foldingDecorationProvider.showFoldingHighlights=a.get(37),o.foldingEnabled=RD.bindTo(o.contextKeyService),o.foldingEnabled.set(o._isEnabled),o._register(o.editor.onDidChangeModel((function(){return o.onModelChanged()}))),o._register(o.editor.onDidChangeConfiguration((function(e){if(e.hasChanged(35)&&(o._isEnabled=o.editor.getOptions().get(35),o.foldingEnabled.set(o._isEnabled),o.onModelChanged()),e.hasChanged(96)||e.hasChanged(37)){var t=o.editor.getOptions();o.foldingDecorationProvider.autoHideFoldingControls="mouseover"===t.get(96),o.foldingDecorationProvider.showFoldingHighlights=t.get(37),o.onModelContentChanged()}e.hasChanged(36)&&(o._useFoldingProviders="indentation"!==o.editor.getOptions().get(36),o.onFoldingStrategyChanged()),e.hasChanged(38)&&(o._unfoldOnClickAfterEndOfLine=o.editor.getOptions().get(38))}))),o.onModelChanged(),o}return(0,r.Z)(n,[{key:"saveViewState",value:function(){var e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){var t=this.foldingModel.isInitialized?this.foldingModel.getMemento():this.hiddenRangeModel.getMemento(),n=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:n}}}},{key:"restoreViewState",value:function(e){var t=this,n=this.editor.getModel();if(n&&this._isEnabled&&!n.isTooLargeForTokenization()&&this.hiddenRangeModel&&e&&e.collapsedRegions&&e.lineCount===n.getLineCount()){e.provider!==ED&&e.provider!==TD||(this.foldingStateMemento=e);var i=e.collapsedRegions;if(this.hiddenRangeModel.applyMemento(i)){var r=this.getFoldingModel();r&&r.then((function(e){if(e){t._restoringViewState=!0;try{e.applyMemento(i)}finally{t._restoringViewState=!1}}})).then(void 0,My.dL)}}}},{key:"onModelChanged",value:function(){var e=this;this.localToDispose.clear();var t=this.editor.getModel();this._isEnabled&&t&&!t.isTooLargeForTokenization()&&(this.foldingModel=new cD(t,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new yD(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((function(t){return e.onHiddenRangesChanges(t)}))),this.updateScheduler=new Uy.vp(200),this.cursorChangedScheduler=new Uy.pY((function(){return e.revealCursor()}),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(Zb.aC.onDidChange((function(){return e.onFoldingStrategyChanged()}))),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((function(){return e.onFoldingStrategyChanged()}))),this.localToDispose.add(this.editor.onDidChangeModelContent((function(){return e.onModelContentChanged()}))),this.localToDispose.add(this.editor.onDidChangeCursorPosition((function(){return e.onCursorPositionChanged()}))),this.localToDispose.add(this.editor.onMouseDown((function(t){return e.onEditorMouseDown(t)}))),this.localToDispose.add(this.editor.onMouseUp((function(t){return e.onEditorMouseUp(t)}))),this.localToDispose.add({dispose:function(){e.foldingRegionPromise&&(e.foldingRegionPromise.cancel(),e.foldingRegionPromise=null),e.updateScheduler&&e.updateScheduler.cancel(),e.updateScheduler=null,e.foldingModel=null,e.foldingModelPromise=null,e.hiddenRangeModel=null,e.cursorChangedScheduler=null,e.foldingStateMemento=null,e.rangeProvider&&e.rangeProvider.dispose(),e.rangeProvider=null}}),this.onModelContentChanged())}},{key:"onFoldingStrategyChanged",value:function(){this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null,this.onModelContentChanged()}},{key:"getRangeProvider",value:function(e){var t=this;if(this.rangeProvider)return this.rangeProvider;if(this.rangeProvider=new kD(e),this._useFoldingProviders&&this.foldingModel){var n=Zb.aC.ordered(this.foldingModel.textModel);if(0===n.length&&this.foldingStateMemento&&this.foldingStateMemento.collapsedRegions)return this.rangeProvider=new OD(e,this.foldingStateMemento.collapsedRegions,(function(){t.foldingStateMemento=null,t.onFoldingStrategyChanged()}),3e4);n.length>0&&(this.rangeProvider=new ND(e,n,(function(){return t.onModelContentChanged()})))}return this.foldingStateMemento=null,this.rangeProvider}},{key:"getFoldingModel",value:function(){return this.foldingModelPromise}},{key:"onModelContentChanged",value:function(){var e=this;this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger((function(){var t=e.foldingModel;if(!t)return null;var n=e.foldingRegionPromise=(0,Uy.PG)((function(n){return e.getRangeProvider(t.textModel).compute(n)}));return n.then((function(i){if(i&&n===e.foldingRegionPromise){var r=e.editor.getSelections(),o=r?r.map((function(e){return e.startLineNumber})):[];t.update(i,o)}return t}))})).then(void 0,(function(e){return(0,My.dL)(e),null})))}},{key:"onHiddenRangesChanges",value:function(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){var t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e)}},{key:"onCursorPositionChanged",value:function(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}},{key:"revealCursor",value:function(){var e=this,t=this.getFoldingModel();t&&t.then((function(t){if(t){var n=e.editor.getSelections();if(n&&n.length>0){var i,r=[],o=(0,tr.Z)(n);try{var a=function(){var n=i.value.selectionStartLineNumber;e.hiddenRangeModel&&e.hiddenRangeModel.isHidden(n)&&r.push.apply(r,(0,zt.Z)(t.getAllRegionsAtLine(n,(function(e){return e.isCollapsed&&n>e.startLineNumber}))))};for(o.s();!(i=o.n()).done;)a()}catch(s){o.e(s)}finally{o.f()}r.length&&(t.toggleCollapseState(r),e.reveal(n[0].getPosition()))}}})).then(void 0,My.dL)}},{key:"onEditorMouseDown",value:function(e){if(this.mouseDownInfo=null,this.hiddenRangeModel&&e.target&&e.target.range&&(e.event.leftButton||e.event.middleButton)){var t=e.target.range,n=!1;switch(e.target.type){case 4:var i=e.target.detail,r=e.target.element.offsetLeft;if(i.offsetX-r<5)return;n=!0;break;case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges())if(!e.target.detail.isAfterLines)break;return;case 6:if(this.hiddenRangeModel.hasRanges()){var o=this.editor.getModel();if(o&&t.startColumn===o.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:n}}}},{key:"onEditorMouseUp",value:function(e){var t=this,n=this.getFoldingModel();if(n&&this.mouseDownInfo&&e.target){var i=this.mouseDownInfo.lineNumber,r=this.mouseDownInfo.iconClicked,o=e.target.range;if(o&&o.startLineNumber===i){if(r){if(4!==e.target.type)return}else{var a=this.editor.getModel();if(!a||o.startColumn!==a.getLineMaxColumn(i))return}n.then((function(n){if(n){var o=n.getRegionAtLine(i);if(o&&o.startLineNumber===i){var a=o.isCollapsed;if(r||a){var s=[];if(e.event.altKey){var u,l=n.getRegionsInside(null,(function(e){return!e.containedBy(o)&&!o.containedBy(e)})),c=(0,tr.Z)(l);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.isCollapsed&&s.push(d)}}catch(v){c.e(v)}finally{c.f()}0===s.length&&(s=l)}else{var h=e.event.middleButton||e.event.shiftKey;if(h){var f,p=(0,tr.Z)(n.getRegionsInside(o));try{for(p.s();!(f=p.n()).done;){var g=f.value;g.isCollapsed===a&&s.push(g)}}catch(v){p.e(v)}finally{p.f()}}!a&&h&&0!==s.length||s.push(o)}n.toggleCollapseState(s),t.reveal({lineNumber:i,column:1})}}}})).then(void 0,My.dL)}}}},{key:"reveal",value:function(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);PD.ID="editor.contrib.folding",PD=ID([AD(1,Ey.i6)],PD);var ZD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=this,r=PD.get(t);if(r){var o=r.getFoldingModel();return o?(this.reportTelemetry(e,t),o.then((function(e){if(e){i.invoke(r,e,t,n);var o=t.getSelection();o&&r.reveal(o.getStartPosition())}}))):void 0}}},{key:"getSelectedLines",value:function(e){var t=e.getSelections();return t?t.map((function(e){return e.startLineNumber})):[]}},{key:"getLineNumbers",value:function(e,t){return e&&e.selectionLines?e.selectionLines.map((function(e){return e+1})):this.getSelectedLines(t)}},{key:"run",value:function(e,t){}}]),n}(Cy.R6);function FD(e){if(!cC.o8(e)){if(!cC.Kn(e))return!1;var t=e;if(!cC.o8(t.levels)&&!cC.hj(t.levels))return!1;if(!cC.o8(t.direction)&&!cC.HD(t.direction))return!1;if(!cC.o8(t.selectionLines)&&(!cC.kJ(t.selectionLines)||!t.selectionLines.every(cC.hj)))return!1}return!0}var jD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfold",label:ky.N("unfoldAction.label","Unfold"),alias:"Unfold",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3161,mac:{primary:2649},weight:100},description:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t",constraint:FD,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n,i){var r=i&&i.levels||1,o=this.getLineNumbers(i,n);i&&"up"===i.direction?hD(t,!1,r,o):dD(t,!1,r,o)}}]),n}(ZD),HD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfoldRecursively",label:ky.N("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2137),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n,i){dD(t,!1,Number.MAX_VALUE,this.getSelectedLines(n))}}]),n}(ZD),BD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.fold",label:ky.N("foldAction.label","Fold"),alias:"Fold",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3159,mac:{primary:2647},weight:100},description:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t",constraint:FD,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n,i){var r=this.getLineNumbers(i,n),o=i&&i.levels,a=i&&i.direction;"number"!==typeof o&&"string"!==typeof a?function(e,t,n){var i,r=[],o=(0,tr.Z)(n);try{for(o.s();!(i=o.n()).done;){var a=i.value,s=e.getAllRegionsAtLine(a,(function(e){return e.isCollapsed!==t}));s.length>0&&r.push(s[0])}}catch(u){o.e(u)}finally{o.f()}e.toggleCollapseState(r)}(t,!0,r):"up"===a?hD(t,!0,o||1,r):dD(t,!0,o||1,r)}}]),n}(ZD),zD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.toggleFold",label:ky.N("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2090),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){!function(e,t,n){var i,r=[],o=(0,tr.Z)(n);try{var a=function(){var n=i.value,o=e.getRegionAtLine(n);if(o){var a=!o.isCollapsed;if(r.push(o),t>1){var s=e.getRegionsInside(o,(function(e,n){return e.isCollapsed!==a&&n<t}));r.push.apply(r,(0,zt.Z)(s))}}};for(o.s();!(i=o.n()).done;)a()}catch(s){o.e(s)}finally{o.f()}e.toggleCollapseState(r)}(t,1,this.getSelectedLines(n))}}]),n}(ZD),WD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldRecursively",label:ky.N("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2135),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){var i=this.getSelectedLines(n);dD(t,!0,Number.MAX_VALUE,i)}}]),n}(ZD),VD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldAllBlockComments",label:ky.N("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2133),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){if(t.regions.hasTypes())gD(t,Zb.AD.Comment.value,!0);else{var i=n.getModel();if(!i)return;var r=QL.zu.getComments(i.getLanguageIdentifier().id);if(r&&r.blockCommentStartToken)pD(t,new RegExp("^\\s*"+(0,Ib.ec)(r.blockCommentStartToken)),!0)}}}]),n}(ZD),YD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldAllMarkerRegions",label:ky.N("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2077),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){if(t.regions.hasTypes())gD(t,Zb.AD.Region.value,!0);else{var i=n.getModel();if(!i)return;var r=QL.zu.getFoldingRules(i.getLanguageIdentifier().id);if(r&&r.markers&&r.markers.start)pD(t,new RegExp(r.markers.start),!0)}}}]),n}(ZD),UD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfoldAllMarkerRegions",label:ky.N("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2078),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){if(t.regions.hasTypes())gD(t,Zb.AD.Region.value,!1);else{var i=n.getModel();if(!i)return;var r=QL.zu.getFoldingRules(i.getLanguageIdentifier().id);if(r&&r.markers&&r.markers.start)pD(t,new RegExp(r.markers.start),!1)}}}]),n}(ZD),KD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldAllExcept",label:ky.N("foldAllExcept.label","Fold All Regions Except Selected"),alias:"Fold All Regions Except Selected",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2131),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){fD(t,!0,this.getSelectedLines(n))}}]),n}(ZD),qD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfoldAllExcept",label:ky.N("unfoldAllExcept.label","Unfold All Regions Except Selected"),alias:"Unfold All Regions Except Selected",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2129),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){fD(t,!1,this.getSelectedLines(n))}}]),n}(ZD),GD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldAll",label:ky.N("foldAllAction.label","Fold All"),alias:"Fold All",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2069),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){dD(t,!0)}}]),n}(ZD),$D=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfoldAll",label:ky.N("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2088),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){dD(t,!1)}}]),n}(ZD),QD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"getFoldingLevel",value:function(){return parseInt(this.id.substr(n.ID_PREFIX.length))}},{key:"invoke",value:function(e,t,n){!function(e,t,n,i){var r=e.getRegionsInside(null,(function(e,r){return r===t&&e.isCollapsed!==n&&!i.some((function(t){return e.containsLine(t)}))}));e.toggleCollapseState(r)}(t,this.getFoldingLevel(),!0,this.getSelectedLines(n))}}]),n}(ZD);QD.ID_PREFIX="editor.foldLevel",QD.ID=function(e){return QD.ID_PREFIX+e},(0,Cy._K)(PD.ID,PD),(0,Cy.Qr)(jD),(0,Cy.Qr)(HD),(0,Cy.Qr)(BD),(0,Cy.Qr)(WD),(0,Cy.Qr)(GD),(0,Cy.Qr)($D),(0,Cy.Qr)(VD),(0,Cy.Qr)(YD),(0,Cy.Qr)(UD),(0,Cy.Qr)(KD),(0,Cy.Qr)(qD),(0,Cy.Qr)(zD);for(var XD=1;XD<=7;XD++)(0,Cy.QG)(new QD({id:QD.ID(XD),label:ky.N("foldLevelAction.label","Fold Level {0}",XD),alias:"Fold Level ".concat(XD),precondition:RD,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2048|21+XD),weight:100}}));var JD=(0,Jy.P6)("editor.foldBackground",{light:(0,Jy.Zn)(Jy.hE,.3),dark:(0,Jy.Zn)(Jy.hE,.3),hc:null},ky.N("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0),eM=(0,Jy.P6)("editorGutter.foldingControlForeground",{dark:Jy.XZ,light:Jy.XZ,hc:Jy.XZ},ky.N("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));(0,eb.Ic)((function(e,t){var n=e.getColor(JD);n&&t.addRule(".monaco-editor .folded-background { background-color: ".concat(n,"; }"));var i=e.getColor(eM);i&&t.addRule("\n\t\t.monaco-editor .cldr".concat(eb.kS.asCSSSelector(vD),",\n\t\t.monaco-editor .cldr").concat(eb.kS.asCSSSelector(mD)," {\n\t\t\tcolor: ").concat(i," !important;\n\t\t}\n\t\t"))}));var tM=n(51164),nM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.fontZoomIn",label:ky.N("EditorFontZoomIn.label","Editor Font Zoom In"),alias:"Editor Font Zoom In",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){tM.C.setZoomLevel(tM.C.getZoomLevel()+1)}}]),n}(Cy.R6),iM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.fontZoomOut",label:ky.N("EditorFontZoomOut.label","Editor Font Zoom Out"),alias:"Editor Font Zoom Out",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){tM.C.setZoomLevel(tM.C.getZoomLevel()-1)}}]),n}(Cy.R6),rM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.fontZoomReset",label:ky.N("EditorFontZoomReset.label","Editor Font Zoom Reset"),alias:"Editor Font Zoom Reset",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){tM.C.setZoomLevel(0)}}]),n}(Cy.R6);(0,Cy.Qr)(nM),(0,Cy.Qr)(iM),(0,Cy.Qr)(rM);var oM=n(84516),aM=n(333),sM=n(61335),uM=n(71481),lM=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},cM=function(e,t){return function(n,i){t(n,i,e)}},dM=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},hM=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._workerService=n,this._callOnDispose=new Ky.SL,this._callOnModel=new Ky.SL,this._editor=t,this._callOnDispose.add(t.onDidChangeConfiguration((function(){return r._update()}))),this._callOnDispose.add(t.onDidChangeModel((function(){return r._update()}))),this._callOnDispose.add(t.onDidChangeModelLanguage((function(){return r._update()}))),this._callOnDispose.add(Zb.ln.onDidChange(this._update,this))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._callOnDispose.dispose(),this._callOnModel.dispose()}},{key:"_update",value:function(){var e=this;if(this._callOnModel.clear(),this._editor.getOption(45)&&this._editor.hasModel()){var t=this._editor.getModel(),n=Zb.ln.ordered(t),i=(0,Ti.Z)(n,1)[0];if(i&&i.autoFormatTriggerCharacters){var r,o=new oM.q,a=(0,tr.Z)(i.autoFormatTriggerCharacters);try{for(a.s();!(r=a.n()).done;){var s=r.value;o.add(s.charCodeAt(0))}}catch(u){a.e(u)}finally{a.f()}this._callOnModel.add(this._editor.onDidType((function(t){var n=t.charCodeAt(t.length-1);o.has(n)&&e._trigger(String.fromCharCode(n))})))}}}},{key:"_trigger",value:function(e){var t=this;if(this._editor.hasModel()&&!(this._editor.getSelections().length>1)){var n=this._editor.getModel(),i=this._editor.getPosition(),r=!1,o=this._editor.onDidChangeModelContent((function(e){if(e.isFlush)return r=!0,void o.dispose();for(var t=0,n=e.changes.length;t<n;t++){if(e.changes[t].range.endLineNumber<=i.lineNumber)return r=!0,void o.dispose()}}));(0,sM.Qs)(this._workerService,n,i,e,n.getFormattingOptions()).then((function(e){o.dispose(),r||(0,Ny.Of)(e)&&(uM.V.execute(t._editor,e,!0),(0,sM.Zg)(e))}),(function(e){throw o.dispose(),e}))}}}]),e}();hM.ID="editor.contrib.autoFormat",hM=lM([cM(1,aM.p)],hM);var fM=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this.editor=t,this._instantiationService=n,this._callOnDispose=new Ky.SL,this._callOnModel=new Ky.SL,this._callOnDispose.add(t.onDidChangeConfiguration((function(){return r._update()}))),this._callOnDispose.add(t.onDidChangeModel((function(){return r._update()}))),this._callOnDispose.add(t.onDidChangeModelLanguage((function(){return r._update()}))),this._callOnDispose.add(Zb.vN.onDidChange(this._update,this))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._callOnDispose.dispose(),this._callOnModel.dispose()}},{key:"_update",value:function(){var e=this;this._callOnModel.clear(),this.editor.getOption(44)&&this.editor.hasModel()&&Zb.vN.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste((function(t){var n=t.range;return e._trigger(n)})))}},{key:"_trigger",value:function(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(sM.x$,this.editor,e,2,Wb.E.None,Tb.T.None).catch(My.dL))}}]),e}();fM.ID="editor.contrib.formatOnPaste",fM=lM([cM(1,cw.TG)],fM);var pM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.formatDocument",label:ky.N("formatDocument.label","Format Document"),alias:"Format Document",precondition:Ey.Ao.and(Sy.u.notInCompositeEditor,Sy.u.writable,Sy.u.hasDocumentFormattingProvider),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return dM(this,void 0,void 0,ti().mark((function n(){var i,r;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!t.hasModel()){n.next=5;break}return i=e.get(cw.TG),r=e.get(Wb.e),n.next=5,r.showWhile(i.invokeFunction(sM.Qq,t,1,Wb.E.None,Tb.T.None),250);case 5:case"end":return n.stop()}}),n)})))}}]),n}(Cy.R6),gM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.formatSelection",label:ky.N("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:Ey.Ao.and(Sy.u.writable,Sy.u.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2084),weight:100},contextMenuOpts:{when:Sy.u.hasNonEmptySelection,group:"1_modification",order:1.31}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return dM(this,void 0,void 0,ti().mark((function n(){var i,r,o,a;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t.hasModel()){n.next=2;break}return n.abrupt("return");case 2:return i=e.get(cw.TG),r=t.getModel(),o=t.getSelections().map((function(e){return e.isEmpty()?new Gy.e(e.startLineNumber,1,e.startLineNumber,r.getLineMaxColumn(e.startLineNumber)):e})),a=e.get(Wb.e),n.next=8,a.showWhile(i.invokeFunction(sM.x$,t,o,1,Wb.E.None,Tb.T.None),250);case 8:case"end":return n.stop()}}),n)})))}}]),n}(Cy.R6);(0,Cy._K)(hM.ID,hM),(0,Cy._K)(fM.ID,fM),(0,Cy.Qr)(pM),(0,Cy.Qr)(gM),Vb.P.registerCommand("editor.action.format",(function(e){return dM(void 0,void 0,void 0,ti().mark((function t(){var n,i;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((n=e.get(mb.$).getFocusedCodeEditor())&&n.hasModel()){t.next=3;break}return t.abrupt("return");case 3:if(i=e.get(Vb.H),!n.getSelection().isEmpty()){t.next=9;break}return t.next=7,i.executeCommand("editor.action.formatDocument");case 7:t.next=11;break;case 9:return t.next=11,i.executeCommand("editor.action.formatSelection");case 11:case"end":return t.stop()}}),t)})))}));var vM=n(98900),mM=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"remove",value:function(){this.parent&&this.parent.children.delete(this.id)}}],[{key:"findId",value:function(e,t){var n;"string"===typeof e?n="".concat(t.id,"/").concat(e):(n="".concat(t.id,"/").concat(e.name),void 0!==t.children.get(n)&&(n="".concat(t.id,"/").concat(e.name,"_").concat(e.range.startLineNumber,"_").concat(e.range.startColumn)));for(var i=n,r=0;void 0!==t.children.get(i);r++)i="".concat(n,"_").concat(r);return i}},{key:"empty",value:function(e){return 0===e.children.size}}]),e}(),_M=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).id=e,a.parent=r,a.symbol=o,a.children=new Map,a}return(0,r.Z)(n)}(mM),yM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this)).id=e,s.parent=r,s.label=o,s.order=a,s.children=new Map,s}return(0,r.Z)(n)}(mM),bM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).uri=e,r.id="root",r.parent=void 0,r._groups=new Map,r.children=new Map,r.id="root",r.parent=void 0,r}return(0,r.Z)(n,[{key:"_compact",value:function(){var e,t=0,n=(0,tr.Z)(this._groups);try{for(n.s();!(e=n.n()).done;){var i=(0,Ti.Z)(e.value,2),r=i[0];0===i[1].children.size?this._groups.delete(r):t+=1}}catch(l){n.e(l)}finally{n.f()}if(1!==t)this.children=this._groups;else{var o,a=vM.$.first(this._groups.values()),s=(0,tr.Z)(a.children);try{for(s.s();!(o=s.n()).done;){var u=(0,Ti.Z)(o.value,2)[1];u.parent=this,this.children.set(u.id,u)}}catch(l){s.e(l)}finally{s.f()}}return this}},{key:"getTopLevelSymbols",value:function(){var e,t=[],n=(0,tr.Z)(this.children.values());try{for(n.s();!(e=n.n()).done;){var i=e.value;i instanceof _M?t.push(i.symbol):t.push.apply(t,(0,zt.Z)(vM.$.map(i.children.values(),(function(e){return e.symbol}))))}}catch(r){n.e(r)}finally{n.f()}return t.sort((function(e,t){return Gy.e.compareRangesUsingStarts(e.range,t.range)}))}},{key:"asListOfDocumentSymbols",value:function(){var e=this.getTopLevelSymbols(),t=[];return n._flattenDocumentSymbols(t,e,""),t.sort((function(e,t){return Gy.e.compareRangesUsingStarts(e.range,t.range)}))}}],[{key:"create",value:function(e,t){var i=this,r=this._keys.for(e,!0),o=n._requests.get(r);if(!o){var a=new Tb.A;o={promiseCnt:0,source:a,promise:n._create(e,a.token),model:void 0},n._requests.set(r,o);var s=Date.now();o.promise.then((function(){i._requestDurations.update(e,Date.now()-s)}))}return o.model?Promise.resolve(o.model):(o.promiseCnt+=1,t.onCancellationRequested((function(){0===--o.promiseCnt&&(o.source.cancel(),n._requests.delete(r))})),new Promise((function(e,t){o.promise.then((function(t){o.model=t,e(t)}),(function(e){n._requests.delete(r),t(e)}))})))}},{key:"_create",value:function(e,t){var i=new Tb.A(t),r=new n(e.uri),o=Zb.vJ.ordered(e),a=o.map((function(t,o){var a,s=mM.findId("provider_".concat(o),r),u=new yM(s,r,null!==(a=t.displayName)&&void 0!==a?a:"Unknown Outline Provider",o);return Promise.resolve(t.provideDocumentSymbols(e,i.token)).then((function(e){var t,i=(0,tr.Z)(e||[]);try{for(i.s();!(t=i.n()).done;){var r=t.value;n._makeOutlineElement(r,u)}}catch(o){i.e(o)}finally{i.f()}return u}),(function(e){return(0,My.Cp)(e),u})).then((function(e){mM.empty(e)?e.remove():r._groups.set(s,e)}))})),s=Zb.vJ.onDidChange((function(){var t=Zb.vJ.ordered(e);(0,Ny.fS)(t,o)||i.cancel()}));return Promise.all(a).then((function(){return i.token.isCancellationRequested&&!t.isCancellationRequested?n._create(e,t):r._compact()})).finally((function(){s.dispose()}))}},{key:"_makeOutlineElement",value:function(e,t){var i=mM.findId(e,t),r=new _M(i,t,e);if(e.children){var o,a=(0,tr.Z)(e.children);try{for(a.s();!(o=a.n()).done;){var s=o.value;n._makeOutlineElement(s,r)}}catch(u){a.e(u)}finally{a.f()}}t.children.set(r.id,r)}},{key:"_flattenDocumentSymbols",value:function(e,t,i){var r,o=(0,tr.Z)(t);try{for(o.s();!(r=o.n()).done;){var a=r.value;e.push({kind:a.kind,tags:a.tags,name:a.name,detail:a.detail,containerName:a.containerName||i,range:a.range,selectionRange:a.selectionRange,children:void 0}),a.children&&n._flattenDocumentSymbols(e,a.children,a.name)}}catch(s){o.e(s)}finally{o.f()}}}]),n}(mM);bM._requestDurations=new MC.Y(Zb.vJ,350),bM._requests=new bC.z6(9,.75),bM._keys=new(function(){function e(){(0,i.Z)(this,e),this._counter=1,this._data=new WeakMap}return(0,r.Z)(e,[{key:"for",value:function(e,t){return"".concat(e.id,"/").concat(t?e.getVersionId():"","/").concat(this._hash(Zb.vJ.all(e)))}},{key:"_hash",value:function(e){var t,n="",i=(0,tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this._data.get(r);"undefined"===typeof o&&(o=this._counter++,this._data.set(r,o)),n+=o}}catch(a){i.e(a)}finally{i.f()}return n}}]),e}());var wM=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function CM(e,t,n){return wM(this,void 0,void 0,ti().mark((function i(){var r;return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,bM.create(e,n);case 2:return r=i.sent,i.abrupt("return",t?r.asListOfDocumentSymbols():r.getTopLevelSymbols());case 4:case"end":return i.stop()}}),i)})))}Vb.P.registerCommand("_executeDocumentSymbolProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return wM(this,void 0,void 0,ti().mark((function t(){var i,r,o;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],(0,cC.p_)(Rb.o.isUri(i)),!(r=e.get(Fb.q).getModel(i))){t.next=5;break}return t.abrupt("return",CM(r,!1,Tb.T.None));case 5:return t.next=7,e.get(Dx.S).createModelReference(i);case 7:return o=t.sent,t.prev=8,t.next=11,CM(o.object.textEditorModel,!1,Tb.T.None);case 11:return t.abrupt("return",t.sent);case 12:return t.prev=12,o.dispose(),t.finish(12);case 15:case"end":return t.stop()}}),t,null,[[8,,12,15]])})))}));var kM=n(83);function SM(e,t){for(var n=0,i=0;i<e.length;i++)"\t"===e.charAt(i)?n+=t:n++;return n}function xM(e,t,n){e=e<0?0:e;var i="";if(!n){var r=Math.floor(e/t);e%=t;for(var o=0;o<r;o++)i+="\t"}for(var a=0;a<e;a++)i+=" ";return i}function LM(e,t,n,i){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return[];var r=QL.zu.getIndentationRules(e.getLanguageIdentifier().id);if(!r)return[];for(n=Math.min(n,e.getLineCount());t<=n&&r.unIndentedLinePattern;){var o=e.getLineContent(t);if(!r.unIndentedLinePattern.test(o))break;t++}if(t>n-1)return[];var a,s=e.getOptions(),u=s.tabSize,l=s.indentSize,c=s.insertSpaces,d=function(e,t){return t=t||1,kM.U.shiftIndent(e,e.length+t,u,l,c)},h=function(e,t){return t=t||1,kM.U.unshiftIndent(e,e.length+t,u,l,c)},f=[],p=e.getLineContent(t),g=p;if(void 0!==i&&null!==i){a=i;var v=Ib.V8(p);g=a+p.substring(v.length),r.decreaseIndentPattern&&r.decreaseIndentPattern.test(g)&&(g=(a=h(a))+p.substring(v.length)),p!==g&&f.push($L.h.replaceMove(new xy.Y(t,1,t,v.length+1),Qy.yO.normalizeIndentation(a,l,c)))}else a=Ib.V8(p);var m=a;r.increaseIndentPattern&&r.increaseIndentPattern.test(g)?(m=d(m),a=d(a)):r.indentNextLinePattern&&r.indentNextLinePattern.test(g)&&(m=d(m));for(var _=++t;_<=n;_++){var y=e.getLineContent(_),b=Ib.V8(y),w=m+y.substring(b.length);r.decreaseIndentPattern&&r.decreaseIndentPattern.test(w)&&(m=h(m),a=h(a)),b!==m&&f.push($L.h.replaceMove(new xy.Y(_,1,_,b.length+1),Qy.yO.normalizeIndentation(m,l,c))),r.unIndentedLinePattern&&r.unIndentedLinePattern.test(y)||(m=r.increaseIndentPattern&&r.increaseIndentPattern.test(w)?a=d(a):r.indentNextLinePattern&&r.indentNextLinePattern.test(w)?d(m):a)}return f}var EM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:ky.N("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:Sy.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getModel();if(n){var i=n.getOptions(),r=t.getSelection();if(r){var o=new FM(r,i.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop(),n.updateOptions({insertSpaces:!0})}}}}]),n}(Cy.R6);EM.ID="editor.action.indentationToSpaces";var NM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:ky.N("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:Sy.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getModel();if(n){var i=n.getOptions(),r=t.getSelection();if(r){var o=new jM(r,i.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop(),n.updateOptions({insertSpaces:!1})}}}}]),n}(Cy.R6);NM.ID="editor.action.indentationToTabs";var DM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).insertSpaces=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=this,i=e.get(DC.eJ),r=e.get(Fb.q),o=t.getModel();if(o){var a=r.getCreationOptions(o.getLanguageIdentifier().language,o.uri,o.isForSimpleWidget),s=[1,2,3,4,5,6,7,8].map((function(e){return{id:e.toString(),label:e.toString(),description:e===a.tabSize?ky.N("configuredTabSize","Configured Tab Size"):void 0}})),u=Math.min(o.getOptions().tabSize-1,7);setTimeout((function(){i.pick(s,{placeHolder:ky.N({key:"selectTabWidth",comment:["Tab corresponds to the tab key"]},"Select Tab Size for Current File"),activeItem:s[u]}).then((function(e){e&&o&&!o.isDisposed()&&o.updateOptions({tabSize:parseInt(e.label,10),insertSpaces:n.insertSpaces})}))}),50)}}}]),n}(Cy.R6),MM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:n.ID,label:ky.N("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}return(0,r.Z)(n)}(DM);MM.ID="editor.action.indentUsingTabs";var TM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:n.ID,label:ky.N("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}return(0,r.Z)(n)}(DM);TM.ID="editor.action.indentUsingSpaces";var OM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:ky.N("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=e.get(Fb.q),i=t.getModel();if(i){var r=n.getCreationOptions(i.getLanguageIdentifier().language,i.uri,i.isForSimpleWidget);i.detectIndentation(r.insertSpaces,r.tabSize)}}}]),n}(Cy.R6);OM.ID="editor.action.detectIndentation";var IM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.reindentlines",label:ky.N("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:Sy.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getModel();if(n){var i=LM(n,1,n.getLineCount());i.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,i),t.pushUndoStop())}}}]),n}(Cy.R6),AM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.reindentselectedlines",label:ky.N("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:Sy.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getModel();if(n){var i=t.getSelections();if(null!==i){var r,o=[],a=(0,tr.Z)(i);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=s.startLineNumber,l=s.endLineNumber;if(u!==l&&1===s.endColumn&&l--,1===u){if(u===l)continue}else u--;var c=LM(n,u,l);o.push.apply(o,(0,zt.Z)(c))}}catch(d){a.e(d)}finally{a.f()}o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}}}]),n}(Cy.R6),RM=function(){function e(t,n){(0,i.Z)(this,e),this._initialSelection=n,this._edits=[],this._selectionId=null;var r,o=(0,tr.Z)(t);try{for(o.s();!(r=o.n()).done;){var a=r.value;a.range&&"string"===typeof a.text&&this._edits.push(a)}}catch(s){o.e(s)}finally{o.f()}}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n,i=(0,tr.Z)(this._edits);try{for(i.s();!(n=i.n()).done;){var r=n.value;t.addEditOperation(Gy.e.lift(r.range),r.text)}}catch(a){i.e(a)}finally{i.f()}var o=!1;Array.isArray(this._edits)&&1===this._edits.length&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(o=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(o=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),o||(this._selectionId=t.trackSelection(this._initialSelection))}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this._selectionId)}}]),e}(),PM=function(){function e(t){var n=this;(0,i.Z)(this,e),this.callOnDispose=new Ky.SL,this.callOnModel=new Ky.SL,this.editor=t,this.callOnDispose.add(t.onDidChangeConfiguration((function(){return n.update()}))),this.callOnDispose.add(t.onDidChangeModel((function(){return n.update()}))),this.callOnDispose.add(t.onDidChangeModelLanguage((function(){return n.update()})))}return(0,r.Z)(e,[{key:"update",value:function(){var e=this;this.callOnModel.clear(),this.editor.getOption(9)<4||this.editor.getOption(44)||this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste((function(t){var n=t.range;e.trigger(n)})))}},{key:"trigger",value:function(e){var t=this.editor.getSelections();if(!(null===t||t.length>1)){var n=this.editor.getModel();if(n&&n.isCheapToTokenize(e.getStartPosition().lineNumber)){for(var i=this.editor.getOption(9),r=n.getOptions(),o=r.tabSize,a=r.indentSize,s=r.insertSpaces,u=[],l={shiftIndent:function(e){return kM.U.shiftIndent(e,e.length+1,o,a,s)},unshiftIndent:function(e){return kM.U.unshiftIndent(e,e.length+1,o,a,s)}},c=e.startLineNumber;c<=e.endLineNumber&&this.shouldIgnoreLine(n,c);)c++;if(!(c>e.endLineNumber)){var d=n.getLineContent(c);if(!/\S/.test(d.substring(0,e.startColumn-1))){var h=QL.zu.getGoodIndentForLine(i,n,n.getLanguageIdentifier().id,c,l);if(null!==h){var f=Ib.V8(d),p=SM(h,o);if(p!==SM(f,o)){var g=xM(p,o,s);u.push({range:new Gy.e(c,1,c,f.length+1),text:g}),d=g+d.substr(f.length)}else{var v=QL.zu.getIndentMetadata(n,c);if(0===v||8===v)return}}}for(var m=c;c<e.endLineNumber&&!/\S/.test(n.getLineContent(c+1));)c++;if(c!==e.endLineNumber){var _={getLineTokens:function(e){return n.getLineTokens(e)},getLanguageIdentifier:function(){return n.getLanguageIdentifier()},getLanguageIdAtPosition:function(e,t){return n.getLanguageIdAtPosition(e,t)},getLineContent:function(e){return e===m?d:n.getLineContent(e)}},y=QL.zu.getGoodIndentForLine(i,_,n.getLanguageIdentifier().id,c+1,l);if(null!==y){var b=SM(y,o),w=SM(Ib.V8(n.getLineContent(c+1)),o);if(b!==w)for(var C=b-w,k=c+1;k<=e.endLineNumber;k++){var S=n.getLineContent(k),x=Ib.V8(S),L=xM(SM(x,o)+C,o,s);L!==x&&u.push({range:new Gy.e(k,1,k,x.length+1),text:L})}}}if(u.length>0){this.editor.pushUndoStop();var E=new RM(u,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",E),this.editor.pushUndoStop()}}}}}},{key:"shouldIgnoreLine",value:function(e,t){e.forceTokenization(t);var n=e.getLineFirstNonWhitespaceColumn(t);if(0===n)return!0;var i=e.getLineTokens(t);if(i.getCount()>0){var r=i.findTokenIndexAtOffset(n);if(r>=0&&1===i.getStandardTokenType(r))return!0}return!1}},{key:"dispose",value:function(){this.callOnDispose.dispose(),this.callOnModel.dispose()}}]),e}();function ZM(e,t,n,i){if(1!==e.getLineCount()||1!==e.getLineMaxColumn(1)){for(var r="",o=0;o<n;o++)r+=" ";for(var a=new RegExp(r,"gi"),s=1,u=e.getLineCount();s<=u;s++){var l=e.getLineFirstNonWhitespaceColumn(s);if(0===l&&(l=e.getLineMaxColumn(s)),1!==l){var c=new Gy.e(s,1,s,l),d=e.getValueInRange(c),h=i?d.replace(/\t/gi,r):d.replace(a,"\t");t.addEditOperation(c,h)}}}}PM.ID="editor.contrib.autoIndentOnPaste";var FM=function(){function e(t,n){(0,i.Z)(this,e),this.selection=t,this.tabSize=n,this.selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){this.selectionId=t.trackSelection(this.selection),ZM(e,t,this.tabSize,!0)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this.selectionId)}}]),e}(),jM=function(){function e(t,n){(0,i.Z)(this,e),this.selection=t,this.tabSize=n,this.selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){this.selectionId=t.trackSelection(this.selection),ZM(e,t,this.tabSize,!1)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this.selectionId)}}]),e}();(0,Cy._K)(PM.ID,PM),(0,Cy.Qr)(EM),(0,Cy.Qr)(NM),(0,Cy.Qr)(MM),(0,Cy.Qr)(TM),(0,Cy.Qr)(OM),(0,Cy.Qr)(IM),(0,Cy.Qr)(AM);var HM=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},BM=function(e,t){return function(n,i){t(n,i,e)}},zM=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function WM(e,t,n){return zM(this,void 0,void 0,ti().mark((function i(){var r,o,a;return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return r=[],o=Zb.wo.ordered(e).reverse(),a=(0,Ny.xH)(o.map((function(i){return t.map((function(t){return Promise.resolve(i.provideInlineHints(e,t,n)).then((function(e){e&&r.push({list:e,provider:i})}),(function(e){(0,My.Cp)(e)}))}))}))),i.next=5,Promise.all(a);case 5:return i.abrupt("return",r);case 6:case"end":return i.stop()}}),i)})))}var VM=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this._editor=t,this._codeEditorService=n,this._themeService=r,this._disposables=new Ky.SL,this._sessionDisposables=new Ky.SL,this._getInlineHintsDelays=new MC.Y(Zb.wo,250,2500),this._decorationsTypeIds=[],this._decorationIds=[],this._disposables.add(Zb.wo.onDidChange((function(){return o._update()}))),this._disposables.add(r.onDidColorThemeChange((function(){return o._update()}))),this._disposables.add(t.onDidChangeModel((function(){return o._update()}))),this._disposables.add(t.onDidChangeModelLanguage((function(){return o._update()}))),this._disposables.add(t.onDidChangeConfiguration((function(e){e.hasChanged(123)&&o._update()}))),this._update()}return(0,r.Z)(e,[{key:"dispose",value:function(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}},{key:"_update",value:function(){var e=this;if(this._sessionDisposables.clear(),this._editor.getOption(123).enabled){var t=this._editor.getModel();if(t&&Zb.wo.has(t)){var n=new Uy.pY((function(){return zM(e,void 0,void 0,ti().mark((function e(){var i,r,o,a,s;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=Date.now(),r=new Tb.A,this._sessionDisposables.add((0,Ky.OF)((function(){return r.dispose(!0)}))),o=this._editor.getVisibleRangesPlusViewportAboveBelow(),e.next=6,WM(t,o,r.token);case 6:a=e.sent,s=this._getInlineHintsDelays.update(t,Date.now()-i),n.delay=s,this._updateHintsDecorators(a);case 10:case"end":return e.stop()}}),e,this)})))}),this._getInlineHintsDelays.get(t));this._sessionDisposables.add(n),this._sessionDisposables.add(this._editor.onDidChangeModelContent((function(){return n.schedule()}))),this._disposables.add(this._editor.onDidScrollChange((function(){return n.schedule()}))),n.schedule();var i=new Ky.SL;this._sessionDisposables.add(i);var r,o=(0,tr.Z)(Zb.wo.all(t));try{for(o.s();!(r=o.n()).done;){var a=r.value;"function"===typeof a.onDidChangeInlineHints&&i.add(a.onDidChangeInlineHints((function(){return n.schedule()})))}}catch(s){o.e(s)}finally{o.f()}}else this._removeAllDecorations()}else this._removeAllDecorations()}},{key:"_updateHintsDecorators",value:function(e){var t=this._getLayoutInfo(),n=t.fontSize,i=t.fontFamily,r=this._themeService.getColorTheme().getColor(Jy.IB),o=this._themeService.getColorTheme().getColor(Jy.w),a=[],s=[],u="--inlineHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(u,i);var l,c=(0,tr.Z)(e);try{for(c.s();!(l=c.n()).done;)for(var d=l.value.list,h=0;h<d.length&&s.length<500;h++){var f=d[h],p=f.text,g=f.range,v=f.description,m=f.whitespaceBefore,_=f.whitespaceAfter,y=m?n/3|0:0,b=_?n/3|0:0,w={contentText:p,backgroundColor:"".concat(r),color:"".concat(o),margin:"0px ".concat(b,"px 0px ").concat(y,"px"),fontSize:"".concat(n,"px"),fontFamily:"var(".concat(u,")"),padding:"0px ".concat(n/4|0,"px"),borderRadius:"".concat(n/4|0,"px")},C="inlineHints-"+(0,NC.vp)(w).toString(16);this._codeEditorService.registerDecorationType(C,{before:w},void 0,this._editor),a.push(C);var k=this._codeEditorService.resolveDecorationOptions(C,!0);"string"===typeof v?k.hoverMessage=(new Ty).appendText(v):v&&(k.hoverMessage=v),s.push({range:g,options:k})}}catch(S){c.e(S)}finally{c.f()}this._decorationsTypeIds.forEach(this._codeEditorService.removeDecorationType,this._codeEditorService),this._decorationsTypeIds=a,this._decorationIds=this._editor.deltaDecorations(this._decorationIds,s)}},{key:"_getLayoutInfo",value:function(){var e=this._editor.getOption(123),t=this._editor.getOption(42),n=e.fontSize;return(!n||n<5||n>t)&&(n=.9*t|0),{fontSize:n,fontFamily:e.fontFamily}}},{key:"_removeAllDecorations",value:function(){this._decorationIds=this._editor.deltaDecorations(this._decorationIds,[]),this._decorationsTypeIds.forEach(this._codeEditorService.removeDecorationType,this._codeEditorService),this._decorationsTypeIds=[]}}]),e}();VM.ID="editor.contrib.InlineHints",VM=HM([BM(1,mb.$),BM(2,eb.XE)],VM),(0,Cy._K)(VM.ID,VM),Vb.P.registerCommand("_executeInlineHintProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return zM(void 0,void 0,void 0,ti().mark((function t(){var i,r,o,a;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=n[0],r=n[1],(0,cC.p_)(Rb.o.isUri(i)),(0,cC.p_)(Gy.e.isIRange(r)),t.next=5,e.get(Dx.S).createModelReference(i);case 5:return o=t.sent,t.prev=6,t.next=9,WM(o.object.textEditorModel,[Gy.e.lift(r)],Tb.T.None);case 9:return a=t.sent,t.abrupt("return",(0,Ny.xH)(a.map((function(e){return e.list}))).sort((function(e,t){return Gy.e.compareRangesUsingStarts(e.range,t.range)})));case 11:return t.prev=11,o.dispose(),t.finish(11);case 14:case"end":return t.stop()}}),t,null,[[6,,11,14]])})))}));var YM=function(){function e(t,n,r){(0,i.Z)(this,e),this._editRange=t,this._originalSelection=n,this._text=r}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._editRange,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new xy.Y(n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn),n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn)):new xy.Y(n.endLineNumber,n.endColumn-this._text.length,n.endLineNumber,n.endColumn)}}]),e}(),UM=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},KM=function(e,t){return function(n,i){t(n,i,e)}},qM=function(){function e(t,n){(0,i.Z)(this,e),this.decorationIds=[],this.editor=t,this.editorWorkerService=n}return(0,r.Z)(e,[{key:"dispose",value:function(){}},{key:"run",value:function(t,n){var i=this;this.currentRequest&&this.currentRequest.cancel();var r=this.editor.getSelection(),o=this.editor.getModel();if(o&&r){var a=r;if(a.startLineNumber===a.endLineNumber){var s=new Pb.yy(this.editor,5),u=o.uri;return this.editorWorkerService.canNavigateValueSet(u)?(this.currentRequest=(0,Uy.PG)((function(e){return i.editorWorkerService.navigateValueSet(u,a,n)})),this.currentRequest.then((function(n){if(n&&n.range&&n.value&&s.validate(i.editor)){var r=Gy.e.lift(n.range),o=n.range,u=n.value.length-(a.endColumn-a.startColumn);o={startLineNumber:o.startLineNumber,startColumn:o.startColumn,endLineNumber:o.endLineNumber,endColumn:o.startColumn+n.value.length},u>1&&(a=new xy.Y(a.startLineNumber,a.startColumn,a.endLineNumber,a.endColumn+u-1));var l=new YM(r,a,n.value);i.editor.pushUndoStop(),i.editor.executeCommand(t,l),i.editor.pushUndoStop(),i.decorationIds=i.editor.deltaDecorations(i.decorationIds,[{range:o,options:e.DECORATION}]),i.decorationRemover&&i.decorationRemover.cancel(),i.decorationRemover=(0,Uy.Vs)(350),i.decorationRemover.then((function(){return i.decorationIds=i.editor.deltaDecorations(i.decorationIds,[])})).catch(My.dL)}})).catch(My.dL)):Promise.resolve(void 0)}}}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();qM.ID="editor.contrib.inPlaceReplaceController",qM.DECORATION=Qy.qx.register({className:"valueSetReplacement"}),qM=UM([KM(1,aM.p)],qM);var GM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.inPlaceReplace.up",label:ky.N("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3154,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=qM.get(t);return n?n.run(this.id,!0):Promise.resolve(void 0)}}]),n}(Cy.R6),$M=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.inPlaceReplace.down",label:ky.N("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3156,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=qM.get(t);return n?n.run(this.id,!1):Promise.resolve(void 0)}}]),n}(Cy.R6);(0,Cy._K)(qM.ID,qM),(0,Cy.Qr)(GM),(0,Cy.Qr)($M),(0,eb.Ic)((function(e,t){var n=e.getColor(Xy.Dl);n&&t.addRule(".monaco-editor.vs .valueSetReplacement { outline: solid 2px ".concat(n,"; }"))}));var QM=function(){function e(t,n){(0,i.Z)(this,e),this._selection=t,this._cursors=n,this._selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){for(var n=function(e,t){t.sort((function(e,t){return e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber}));for(var n=t.length-2;n>=0;n--)t[n].lineNumber===t[n+1].lineNumber&&t.splice(n,1);for(var i=[],r=0,o=0,a=t.length,s=1,u=e.getLineCount();s<=u;s++){var l=e.getLineContent(s),c=l.length+1,d=0;if(!(o<a&&t[o].lineNumber===s&&(d=t[o].column,o++,d===c))&&0!==l.length){var h=Ib.ow(l),f=0;if(-1===h)f=1;else{if(h===l.length-1)continue;f=h+2}f=Math.max(d,f),i[r++]=$L.h.delete(new Gy.e(s,f,s,c))}}return i}(e,this._cursors),i=0,r=n.length;i<r;i++){var o=n[i];t.addEditOperation(o.range,o.text)}this._selectionId=t.trackSelection(this._selection)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this._selectionId)}}]),e}();var XM=n(22268),JM=function(){function e(t,n,r){(0,i.Z)(this,e),this._selection=t,this._isCopyingDown=n,this._noop=r||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,n.startLineNumber<n.endLineNumber&&1===n.endColumn&&(this._endLineNumberDelta=1,n=n.setEndPosition(n.endLineNumber-1,e.getLineMaxColumn(n.endLineNumber-1)));for(var i=[],r=n.startLineNumber;r<=n.endLineNumber;r++)i.push(e.getLineContent(r));var o=i.join("\n");""===o&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new Gy.e(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber+1,1),n.endLineNumber===e.getLineCount()?"":"\n"):this._isCopyingDown?t.addEditOperation(new Gy.e(n.startLineNumber,1,n.startLineNumber,1),o+"\n"):t.addEditOperation(new Gy.e(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),"\n"+o),this._selectionId=t.trackSelection(n),this._selectionDirection=this._selection.getDirection()}},{key:"computeCursorState",value:function(e,t){var n=t.getTrackedSelection(this._selectionId);if(0!==this._startLineNumberDelta||0!==this._endLineNumberDelta){var i=n.startLineNumber,r=n.startColumn,o=n.endLineNumber,a=n.endColumn;0!==this._startLineNumberDelta&&(i+=this._startLineNumberDelta,r=1),0!==this._endLineNumberDelta&&(o+=this._endLineNumberDelta,a=1),n=xy.Y.createWithDirection(i,r,o,a,this._selectionDirection)}return n}}]),e}(),eT=n(7273),tT=function(){function e(t,n,r){(0,i.Z)(this,e),this._selection=t,this._isMovingDown=n,this._autoIndent=r,this._selectionId=null,this._moveEndLineSelectionShrink=!1}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===n)this._selectionId=t.trackSelection(this._selection);else if(this._isMovingDown||1!==this._selection.startLineNumber){this._moveEndPositionDown=!1;var i=this._selection;i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));var r=e.getOptions(),o=r.tabSize,a=r.indentSize,s=r.insertSpaces,u=this.buildIndentConverter(o,a,s),l={getLineTokens:function(t){return e.getLineTokens(t)},getLanguageIdentifier:function(){return e.getLanguageIdentifier()},getLanguageIdAtPosition:function(t,n){return e.getLanguageIdAtPosition(t,n)},getLineContent:null};if(i.startLineNumber===i.endLineNumber&&1===e.getLineMaxColumn(i.startLineNumber)){var c=i.startLineNumber,d=this._isMovingDown?c+1:c-1;1===e.getLineMaxColumn(d)?t.addEditOperation(new Gy.e(1,1,1,1),null):(t.addEditOperation(new Gy.e(c,1,c,1),e.getLineContent(d)),t.addEditOperation(new Gy.e(d,1,d,e.getLineMaxColumn(d)),null)),i=new xy.Y(d,1,d,1)}else{var h,f;if(this._isMovingDown){h=i.endLineNumber+1,f=e.getLineContent(h),t.addEditOperation(new Gy.e(h-1,e.getLineMaxColumn(h-1),h,e.getLineMaxColumn(h)),null);var p=f;if(this.shouldAutoIndent(e,i)){var g=this.matchEnterRule(e,u,o,h,i.startLineNumber-1);if(null!==g){var v=xM(g+SM(Ib.V8(e.getLineContent(h)),o),o,s);p=v+this.trimLeft(f)}else{l.getLineContent=function(t){return t===i.startLineNumber?e.getLineContent(h):e.getLineContent(t)};var m=QL.zu.getGoodIndentForLine(this._autoIndent,l,e.getLanguageIdAtPosition(h,1),i.startLineNumber,u);if(null!==m){var _=Ib.V8(e.getLineContent(h)),y=SM(m,o);if(y!==SM(_,o)){var b=xM(y,o,s);p=b+this.trimLeft(f)}}}t.addEditOperation(new Gy.e(i.startLineNumber,1,i.startLineNumber,1),p+"\n");var w=this.matchEnterRuleMovingDown(e,u,o,i.startLineNumber,h,p);if(null!==w)0!==w&&this.getIndentEditsOfMovingBlock(e,t,i,o,s,w);else{l.getLineContent=function(t){return t===i.startLineNumber?p:t>=i.startLineNumber+1&&t<=i.endLineNumber+1?e.getLineContent(t-1):e.getLineContent(t)};var C=QL.zu.getGoodIndentForLine(this._autoIndent,l,e.getLanguageIdAtPosition(h,1),i.startLineNumber+1,u);if(null!==C){var k=Ib.V8(e.getLineContent(i.startLineNumber)),S=SM(C,o),x=SM(k,o);if(S!==x){var L=S-x;this.getIndentEditsOfMovingBlock(e,t,i,o,s,L)}}}}else t.addEditOperation(new Gy.e(i.startLineNumber,1,i.startLineNumber,1),p+"\n")}else if(h=i.startLineNumber-1,f=e.getLineContent(h),t.addEditOperation(new Gy.e(h,1,h+1,1),null),t.addEditOperation(new Gy.e(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),"\n"+f),this.shouldAutoIndent(e,i)){l.getLineContent=function(t){return t===h?e.getLineContent(i.startLineNumber):e.getLineContent(t)};var E=this.matchEnterRule(e,u,o,i.startLineNumber,i.startLineNumber-2);if(null!==E)0!==E&&this.getIndentEditsOfMovingBlock(e,t,i,o,s,E);else{var N=QL.zu.getGoodIndentForLine(this._autoIndent,l,e.getLanguageIdAtPosition(i.startLineNumber,1),h,u);if(null!==N){var D=Ib.V8(e.getLineContent(i.startLineNumber)),M=SM(N,o),T=SM(D,o);if(M!==T){var O=M-T;this.getIndentEditsOfMovingBlock(e,t,i,o,s,O)}}}}}this._selectionId=t.trackSelection(i)}else this._selectionId=t.trackSelection(this._selection)}},{key:"buildIndentConverter",value:function(e,t,n){return{shiftIndent:function(i){return kM.U.shiftIndent(i,i.length+1,e,t,n)},unshiftIndent:function(i){return kM.U.unshiftIndent(i,i.length+1,e,t,n)}}}},{key:"parseEnterResult",value:function(e,t,n,i,r){if(r){var o=r.indentation;r.indentAction===eT.wU.None||r.indentAction===eT.wU.Indent?o=r.indentation+r.appendText:r.indentAction===eT.wU.IndentOutdent?o=r.indentation:r.indentAction===eT.wU.Outdent&&(o=t.unshiftIndent(r.indentation)+r.appendText);var a=e.getLineContent(i);if(this.trimLeft(a).indexOf(this.trimLeft(o))>=0){var s=Ib.V8(e.getLineContent(i)),u=Ib.V8(o),l=QL.zu.getIndentMetadata(e,i);return null!==l&&2&l&&(u=t.unshiftIndent(u)),SM(u,n)-SM(s,n)}}return null}},{key:"matchEnterRuleMovingDown",value:function(e,t,n,i,r,o){if(Ib.ow(o)>=0){var a=e.getLineMaxColumn(r),s=QL.zu.getEnterAction(this._autoIndent,e,new Gy.e(r,a,r,a));return this.parseEnterResult(e,t,n,i,s)}for(var u=i-1;u>=1;){var l=e.getLineContent(u);if(Ib.ow(l)>=0)break;u--}if(u<1||i>e.getLineCount())return null;var c=e.getLineMaxColumn(u),d=QL.zu.getEnterAction(this._autoIndent,e,new Gy.e(u,c,u,c));return this.parseEnterResult(e,t,n,i,d)}},{key:"matchEnterRule",value:function(e,t,n,i,r,o){for(var a=r;a>=1;){var s=void 0;if(s=a===r&&void 0!==o?o:e.getLineContent(a),Ib.ow(s)>=0)break;a--}if(a<1||i>e.getLineCount())return null;var u=e.getLineMaxColumn(a),l=QL.zu.getEnterAction(this._autoIndent,e,new Gy.e(a,u,a,u));return this.parseEnterResult(e,t,n,i,l)}},{key:"trimLeft",value:function(e){return e.replace(/^\s+/,"")}},{key:"shouldAutoIndent",value:function(e,t){if(this._autoIndent<4)return!1;if(!e.isCheapToTokenize(t.startLineNumber))return!1;var n=e.getLanguageIdAtPosition(t.startLineNumber,1);return n===e.getLanguageIdAtPosition(t.endLineNumber,1)&&null!==QL.zu.getIndentRulesSupport(n)}},{key:"getIndentEditsOfMovingBlock",value:function(e,t,n,i,r,o){for(var a=n.startLineNumber;a<=n.endLineNumber;a++){var s=e.getLineContent(a),u=Ib.V8(s),l=xM(SM(u,i)+o,i,r);l!==u&&(t.addEditOperation(new Gy.e(a,1,a,u.length+1),l),a===n.endLineNumber&&n.endColumn<=u.length+1&&""===l&&(this._moveEndLineSelectionShrink=!0))}}},{key:"computeCursorState",value:function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&n.startLineNumber<n.endLineNumber&&(n=n.setEndPosition(n.endLineNumber,2)),n}}]),e}(),nT=function(){function e(t,n){(0,i.Z)(this,e),this.selection=t,this.descending=n,this.selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=function(e,t,n){var i=iT(e,t,n);if(!i)return null;return $L.h.replace(new Gy.e(i.startLineNumber,1,i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),i.after.join("\n"))}(e,this.selection,this.descending);n&&t.addEditOperation(n.range,n.text),this.selectionId=t.trackSelection(this.selection)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this.selectionId)}}],[{key:"getCollator",value:function(){return e._COLLATOR||(e._COLLATOR=new Intl.Collator),e._COLLATOR}},{key:"canRun",value:function(e,t,n){if(null===e)return!1;var i=iT(e,t,n);if(!i)return!1;for(var r=0,o=i.before.length;r<o;r++)if(i.before[r]!==i.after[r])return!0;return!1}}]),e}();function iT(e,t,n){var i=t.startLineNumber,r=t.endLineNumber;if(1===t.endColumn&&r--,i>=r)return null;for(var o=[],a=i;a<=r;a++)o.push(e.getLineContent(a));var s=o.slice(0);return s.sort(nT.getCollator().compare),!0===n&&(s=s.reverse()),{startLineNumber:i,endLineNumber:r,before:o,after:s}}nT._COLLATOR=null;var rT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).down=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=t.getSelections().map((function(e,t){return{selection:e,index:t,ignore:!1}}));n.sort((function(e,t){return Gy.e.compareRangesUsingStarts(e.selection,t.selection)}));for(var i=n[0],r=1;r<n.length;r++){var o=n[r];i.selection.endLineNumber===o.selection.startLineNumber&&(i.index<o.index?o.ignore=!0:(i.ignore=!0,i=o))}var a,s=[],u=(0,tr.Z)(n);try{for(u.s();!(a=u.n()).done;){var l=a.value;s.push(new JM(l.selection,this.down,l.ignore))}}catch(c){u.e(c)}finally{u.f()}t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}}]),n}(Cy.R6),oT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.copyLinesUpAction",label:ky.N("lines.copyUp","Copy Line Up"),alias:"Copy Line Up",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"2_line",title:ky.N({key:"miCopyLinesUp",comment:["&& denotes a mnemonic"]},"&&Copy Line Up"),order:1}})}return(0,r.Z)(n)}(rT),aT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.copyLinesDownAction",label:ky.N("lines.copyDown","Copy Line Down"),alias:"Copy Line Down",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"2_line",title:ky.N({key:"miCopyLinesDown",comment:["&& denotes a mnemonic"]},"Co&&py Line Down"),order:2}})}return(0,r.Z)(n)}(rT),sT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.duplicateSelection",label:ky.N("duplicateSelection","Duplicate Selection"),alias:"Duplicate Selection",precondition:Sy.u.writable,menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"2_line",title:ky.N({key:"miDuplicateSelection",comment:["&& denotes a mnemonic"]},"&&Duplicate Selection"),order:5}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i,r=[],o=t.getSelections(),a=t.getModel(),s=(0,tr.Z)(o);try{for(s.s();!(i=s.n()).done;){var u=i.value;if(u.isEmpty())r.push(new JM(u,!0));else{var l=new xy.Y(u.endLineNumber,u.endColumn,u.endLineNumber,u.endColumn);r.push(new db.OY(l,a.getValueInRange(u)))}}}catch(c){s.e(c)}finally{s.f()}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}}]),n}(Cy.R6),uT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).down=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n,i=[],r=t.getSelections()||[],o=t.getOption(9),a=(0,tr.Z)(r);try{for(a.s();!(n=a.n()).done;){var s=n.value;i.push(new tT(s,this.down,o))}}catch(u){a.e(u)}finally{a.f()}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}]),n}(Cy.R6),lT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.moveLinesUpAction",label:ky.N("lines.moveUp","Move Line Up"),alias:"Move Line Up",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"2_line",title:ky.N({key:"miMoveLinesUp",comment:["&& denotes a mnemonic"]},"Mo&&ve Line Up"),order:3}})}return(0,r.Z)(n)}(uT),cT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.moveLinesDownAction",label:ky.N("lines.moveDown","Move Line Down"),alias:"Move Line Down",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"2_line",title:ky.N({key:"miMoveLinesDown",comment:["&& denotes a mnemonic"]},"Move &&Line Down"),order:4}})}return(0,r.Z)(n)}(uT),dT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).descending=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n,i=t.getSelections()||[],r=(0,tr.Z)(i);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(!nT.canRun(t.getModel(),o,this.descending))return}}catch(l){r.e(l)}finally{r.f()}for(var a=[],s=0,u=i.length;s<u;s++)a[s]=new nT(i[s],this.descending);t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}]),n}(Cy.R6),hT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.sortLinesAscending",label:ky.N("lines.sortAscending","Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:Sy.u.writable})}return(0,r.Z)(n)}(dT),fT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.sortLinesDescending",label:ky.N("lines.sortDescending","Sort Lines Descending"),alias:"Sort Lines Descending",precondition:Sy.u.writable})}return(0,r.Z)(n)}(dT),pT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:ky.N("lines.trimTrailingWhitespace","Trim Trailing Whitespace"),alias:"Trim Trailing Whitespace",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:(0,Ly.gx)(2089,2102),weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=[];"auto-save"===n.reason&&(i=(t.getSelections()||[]).map((function(e){return new qy.L(e.positionLineNumber,e.positionColumn)})));var r=t.getSelection();if(null!==r){var o=new QM(r,i);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop()}}}]),n}(Cy.R6);pT.ID="editor.action.trimTrailingWhitespace";var gT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.deleteLines",label:ky.N("lines.delete","Delete Line"),alias:"Delete Line",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:3113,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=this._getLinesToRemove(t),i=t.getModel();if(1!==i.getLineCount()||1!==i.getLineMaxColumn(1)){for(var r=0,o=[],a=[],s=0,u=n.length;s<u;s++){var l=n[s],c=l.startLineNumber,d=l.endLineNumber,h=1,f=i.getLineMaxColumn(d);d<i.getLineCount()?(d+=1,f=1):c>1&&(c-=1,h=i.getLineMaxColumn(c)),o.push($L.h.replace(new xy.Y(c,h,d,f),"")),a.push(new xy.Y(c-r,l.positionColumn,c-r,l.positionColumn)),r+=l.endLineNumber-l.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,o,a),t.pushUndoStop()}}}},{key:"_getLinesToRemove",value:function(e){var t=e.getSelections().map((function(e){var t=e.endLineNumber;return e.startLineNumber<e.endLineNumber&&1===e.endColumn&&(t-=1),{startLineNumber:e.startLineNumber,selectionStartColumn:e.selectionStartColumn,endLineNumber:t,positionColumn:e.positionColumn}}));t.sort((function(e,t){return e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber}));for(var n=[],i=t[0],r=1;r<t.length;r++)i.endLineNumber+1>=t[r].startLineNumber?i.endLineNumber=t[r].endLineNumber:(n.push(i),i=t[r]);return n.push(i),n}}]),n}(Cy.R6),vT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.indentLines",label:ky.N("lines.indent","Indent Line"),alias:"Indent Line",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:2137,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,XM.u.indent(n.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}]),n}(Cy.R6),mT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.outdentLines",label:ky.N("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:2135,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){by.wk.Outdent.runEditorCommand(e,t,null)}}]),n}(Cy.R6),_T=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertLineBefore",label:ky.N("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3075,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,XM.u.lineInsertBefore(n.cursorConfig,t.getModel(),t.getSelections())))}}]),n}(Cy.R6),yT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertLineAfter",label:ky.N("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:2051,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,XM.u.lineInsertAfter(n.cursorConfig,t.getModel(),t.getSelections())))}}]),n}(Cy.R6),bT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){for(var n=t.getSelection(),i=this._getRangesToDelete(t),r=[],o=0,a=i.length-1;o<a;o++){var s=i[o],u=i[o+1];null===Gy.e.intersectRanges(s,u)?r.push(s):i[o+1]=Gy.e.plusRange(s,u)}r.push(i[i.length-1]);var l=this._getEndCursorState(n,r),c=r.map((function(e){return $L.h.replace(e,"")}));t.pushUndoStop(),t.executeEdits(this.id,c,l),t.pushUndoStop()}}}]),n}(Cy.R6),wT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"deleteAllLeft",label:ky.N("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}return(0,r.Z)(n,[{key:"_getEndCursorState",value:function(e,t){var n=null,i=[],r=0;return t.forEach((function(t){var o;if(1===t.endColumn&&r>0){var a=t.startLineNumber-r;o=new xy.Y(a,t.startColumn,a,t.startColumn)}else o=new xy.Y(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn);r+=t.endLineNumber-t.startLineNumber,t.intersectRanges(e)?n=o:i.push(o)})),n&&i.unshift(n),i}},{key:"_getRangesToDelete",value:function(e){var t=e.getSelections();if(null===t)return[];var n=t,i=e.getModel();return null===i?[]:(n.sort(Gy.e.compareRangesUsingStarts),n=n.map((function(e){if(e.isEmpty()){if(1===e.startColumn){var t=Math.max(1,e.startLineNumber-1),n=1===e.startLineNumber?1:i.getLineContent(t).length+1;return new Gy.e(t,n,e.startLineNumber,1)}return new Gy.e(e.startLineNumber,1,e.startLineNumber,e.startColumn)}return new Gy.e(e.startLineNumber,1,e.endLineNumber,e.endColumn)})))}}]),n}(bT),CT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"deleteAllRight",label:ky.N("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}return(0,r.Z)(n,[{key:"_getEndCursorState",value:function(e,t){for(var n=null,i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=new xy.Y(a.startLineNumber-0,a.startColumn,a.startLineNumber-0,a.startColumn);a.intersectRanges(e)?n=s:i.push(s)}return n&&i.unshift(n),i}},{key:"_getRangesToDelete",value:function(e){var t=e.getModel();if(null===t)return[];var n=e.getSelections();if(null===n)return[];var i=n.map((function(e){if(e.isEmpty()){var n=t.getLineMaxColumn(e.startLineNumber);return e.startColumn===n?new Gy.e(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new Gy.e(e.startLineNumber,e.startColumn,e.startLineNumber,n)}return e}));return i.sort(Gy.e.compareRangesUsingStarts),i}}]),n}(bT),kT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.joinLines",label:ky.N("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getSelections();if(null!==n){var i=t.getSelection();if(null!==i){n.sort(Gy.e.compareRangesUsingStarts);var r=[],o=n.reduce((function(e,t){return e.isEmpty()?e.endLineNumber===t.startLineNumber?(i.equalsSelection(e)&&(i=t),t):t.startLineNumber>e.endLineNumber+1?(r.push(e),t):new xy.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(r.push(e),t):new xy.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn)}));r.push(o);var a=t.getModel();if(null!==a){for(var s=[],u=[],l=i,c=0,d=0,h=r.length;d<h;d++){var f=r[d],p=f.startLineNumber,g=0,v=void 0,m=void 0,_=a.getLineContent(f.endLineNumber).length-f.endColumn;if(f.isEmpty()||f.startLineNumber===f.endLineNumber){var y=f.getStartPosition();y.lineNumber<a.getLineCount()?(v=p+1,m=a.getLineMaxColumn(v)):(v=y.lineNumber,m=a.getLineMaxColumn(y.lineNumber))}else v=f.endLineNumber,m=a.getLineMaxColumn(v);for(var b=a.getLineContent(p),w=p+1;w<=v;w++){var C=a.getLineContent(w),k=a.getLineFirstNonWhitespaceColumn(w);if(k>=1){var S=!0;""===b&&(S=!1),!S||" "!==b.charAt(b.length-1)&&"\t"!==b.charAt(b.length-1)||(S=!1,b=b.replace(/[\s\uFEFF\xA0]+$/g," "));var x=C.substr(k-1);b+=(S?" ":"")+x,g=S?x.length+1:x.length}else g=0}var L=new Gy.e(p,1,v,m);if(!L.isEmpty()){var E=void 0;f.isEmpty()?(s.push($L.h.replace(L,b)),E=new xy.Y(L.startLineNumber-c,b.length-g+1,p-c,b.length-g+1)):f.startLineNumber===f.endLineNumber?(s.push($L.h.replace(L,b)),E=new xy.Y(f.startLineNumber-c,f.startColumn,f.endLineNumber-c,f.endColumn)):(s.push($L.h.replace(L,b)),E=new xy.Y(f.startLineNumber-c,f.startColumn,f.startLineNumber-c,b.length-_)),null!==Gy.e.intersectRanges(L,i)?l=E:u.push(E)}c+=L.endLineNumber-L.startLineNumber}u.unshift(l),t.pushUndoStop(),t.executeEdits(this.id,s,u),t.pushUndoStop()}}}}}]),n}(Cy.R6),ST=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transpose",label:ky.N("editor.transpose","Transpose characters around the cursor"),alias:"Transpose characters around the cursor",precondition:Sy.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getSelections();if(null!==n){var i=t.getModel();if(null!==i){for(var r=[],o=0,a=n.length;o<a;o++){var s=n[o];if(s.isEmpty()){var u=s.getStartPosition(),l=i.getLineMaxColumn(u.lineNumber);if(u.column>=l){if(u.lineNumber===i.getLineCount())continue;var c=new Gy.e(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),d=i.getValueInRange(c).split("").reverse().join("");r.push(new db.T4(new xy.Y(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),d))}else{var h=new Gy.e(u.lineNumber,Math.max(1,u.column-1),u.lineNumber,u.column+1),f=i.getValueInRange(h).split("").reverse().join("");r.push(new db.hP(h,f,new xy.Y(u.lineNumber,u.column+1,u.lineNumber,u.column+1)))}}}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}}}]),n}(Cy.R6),xT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getSelections();if(null!==n){var i=t.getModel();if(null!==i){var r,o=t.getOption(113),a=[],s=(0,tr.Z)(n);try{for(s.s();!(r=s.n()).done;){var u=r.value;if(u.isEmpty()){var l=u.getStartPosition(),c=t.getConfiguredWordAtPosition(l);if(!c)continue;var d=new Gy.e(l.lineNumber,c.startColumn,l.lineNumber,c.endColumn),h=i.getValueInRange(d);a.push($L.h.replace(d,this._modifyText(h,o)))}else{var f=i.getValueInRange(u);a.push($L.h.replace(u,this._modifyText(f,o)))}}}catch(p){s.e(p)}finally{s.f()}t.pushUndoStop(),t.executeEdits(this.id,a),t.pushUndoStop()}}}}]),n}(Cy.R6),LT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transformToUppercase",label:ky.N("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:Sy.u.writable})}return(0,r.Z)(n,[{key:"_modifyText",value:function(e,t){return e.toLocaleUpperCase()}}]),n}(xT),ET=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transformToLowercase",label:ky.N("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:Sy.u.writable})}return(0,r.Z)(n,[{key:"_modifyText",value:function(e,t){return e.toLocaleLowerCase()}}]),n}(xT),NT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transformToTitlecase",label:ky.N("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:Sy.u.writable})}return(0,r.Z)(n,[{key:"_modifyText",value:function(e,t){for(var n=("\r\n\t "+t).split(""),i="",r=!0,o=0;o<e.length;o++){var a=e[o];n.indexOf(a)>=0?(r=!0,i+=a):r?(r=!1,i+=a.toLocaleUpperCase()):i+=a.toLocaleLowerCase()}return i}}]),n}(xT),DT=function(){function e(t,n){(0,i.Z)(this,e),this._pattern=t,this._flags=n,this._actual=null,this._evaluated=!1}return(0,r.Z)(e,[{key:"get",value:function(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(e){}}return this._actual}},{key:"isSupported",value:function(){return null!==this.get()}}]),e}(),MT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transformToSnakecase",label:ky.N("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:Sy.u.writable})}return(0,r.Z)(n,[{key:"_modifyText",value:function(e,t){var i=n.regExp1.get(),r=n.regExp2.get();return i&&r?e.replace(i,"$1_$2").replace(r,"$1_$2$3").toLocaleLowerCase():e}}]),n}(xT);MT.regExp1=new DT("(\\p{Ll})(\\p{Lu})","gmu"),MT.regExp2=new DT("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu"),(0,Cy.Qr)(oT),(0,Cy.Qr)(aT),(0,Cy.Qr)(sT),(0,Cy.Qr)(lT),(0,Cy.Qr)(cT),(0,Cy.Qr)(hT),(0,Cy.Qr)(fT),(0,Cy.Qr)(pT),(0,Cy.Qr)(gT),(0,Cy.Qr)(vT),(0,Cy.Qr)(mT),(0,Cy.Qr)(_T),(0,Cy.Qr)(yT),(0,Cy.Qr)(wT),(0,Cy.Qr)(CT),(0,Cy.Qr)(kT),(0,Cy.Qr)(ST),(0,Cy.Qr)(LT),(0,Cy.Qr)(ET),(0,Cy.Qr)(NT),MT.regExp1.isSupported()&&MT.regExp2.isSupported()&&(0,Cy.Qr)(MT);var TT=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},OT=function(e,t){return function(n,i){t(n,i,e)}},IT=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},AT=new Ey.uy("LinkedEditingInputVisible",!1),RT="linked-editing-decoration",PT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this))._debounceDuration=200,o._localToDispose=o._register(new Ky.SL),o._editor=e,o._enabled=!1,o._visibleContextKey=AT.bindTo(r),o._currentDecorations=[],o._languageWordPattern=null,o._currentWordPattern=null,o._ignoreChangeEvent=!1,o._localToDispose=o._register(new Ky.SL),o._rangeUpdateTriggerPromise=null,o._rangeSyncTriggerPromise=null,o._currentRequest=null,o._currentRequestPosition=null,o._currentRequestModelVersion=null,o._register(o._editor.onDidChangeModel((function(){return o.reinitialize()}))),o._register(o._editor.onDidChangeConfiguration((function(e){(e.hasChanged(58)||e.hasChanged(78))&&o.reinitialize()}))),o._register(Zb.id.onDidChange((function(){return o.reinitialize()}))),o._register(o._editor.onDidChangeModelLanguage((function(){return o.reinitialize()}))),o.reinitialize(),o}return(0,r.Z)(n,[{key:"reinitialize",value:function(){var e=this,t=this._editor.getModel(),n=null!==t&&(this._editor.getOption(58)||this._editor.getOption(78))&&Zb.id.has(t);if(n!==this._enabled&&(this._enabled=n,this.clearRanges(),this._localToDispose.clear(),n&&null!==t)){this._languageWordPattern=QL.zu.getWordDefinition(t.getLanguageIdentifier().id),this._localToDispose.add(t.onDidChangeLanguageConfiguration((function(){e._languageWordPattern=QL.zu.getWordDefinition(t.getLanguageIdentifier().id)})));var i=new Uy.vp(this._debounceDuration),r=function(){e._rangeUpdateTriggerPromise=i.trigger((function(){return e.updateRanges()}),e._debounceDuration)},o=new Uy.vp(0);this._localToDispose.add(this._editor.onDidChangeCursorPosition((function(){r()}))),this._localToDispose.add(this._editor.onDidChangeModelContent((function(n){if(!e._ignoreChangeEvent&&e._currentDecorations.length>0){var i=t.getDecorationRange(e._currentDecorations[0]);if(i&&n.changes.every((function(e){return i.intersectRanges(e.range)})))return a=e._currentDecorations,void(e._rangeSyncTriggerPromise=o.trigger((function(){return e._syncRanges(a)})))}var a;r()}))),this._localToDispose.add({dispose:function(){i.cancel(),o.cancel()}}),this.updateRanges()}}},{key:"_syncRanges",value:function(e){if(this._editor.hasModel()&&e===this._currentDecorations&&0!==e.length){var t=this._editor.getModel(),n=t.getDecorationRange(e[0]);if(!n||n.startLineNumber!==n.endLineNumber)return this.clearRanges();var i=t.getValueInRange(n);if(this._currentWordPattern){var r=i.match(this._currentWordPattern);if((r?r[0].length:0)!==i.length)return this.clearRanges()}for(var o=[],a=1,s=e.length;a<s;a++){var u=t.getDecorationRange(e[a]);if(u)if(u.startLineNumber!==u.endLineNumber)o.push({range:u,text:i});else{var l=t.getValueInRange(u),c=i,d=u.startColumn,h=u.endColumn,f=Ib.Mh(l,c);d+=f,l=l.substr(f),c=c.substr(f);var p=Ib.P1(l,c);h-=p,l=l.substr(0,l.length-p),c=c.substr(0,c.length-p),d===h&&0===c.length||o.push({range:new Gy.e(u.startLineNumber,d,u.endLineNumber,h),text:c})}}if(0!==o.length)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;var g=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits("linkedEditing",o),this._editor._getViewModel().setPrevEditOperationType(g)}finally{this._ignoreChangeEvent=!1}}}},{key:"dispose",value:function(){this.clearRanges(),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"clearRanges",value:function(){this._visibleContextKey.set(!1),this._currentDecorations=this._editor.deltaDecorations(this._currentDecorations,[]),this._currentRequest&&(this._currentRequest.cancel(),this._currentRequest=null,this._currentRequestPosition=null)}},{key:"updateRanges",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return IT(this,void 0,void 0,ti().mark((function t(){var i,r,o,a,s,u=this;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()){t.next=3;break}return this.clearRanges(),t.abrupt("return");case 3:if(i=this._editor.getPosition(),!(!this._enabled&&!e||this._editor.getSelections().length>1)){t.next=7;break}return this.clearRanges(),t.abrupt("return");case 7:if(r=this._editor.getModel(),o=r.getVersionId(),!this._currentRequestPosition||this._currentRequestModelVersion!==o){t.next=16;break}if(!i.equals(this._currentRequestPosition)){t.next=12;break}return t.abrupt("return");case 12:if(!(this._currentDecorations&&this._currentDecorations.length>0)){t.next=16;break}if(!(a=r.getDecorationRange(this._currentDecorations[0]))||!a.containsPosition(i)){t.next=16;break}return t.abrupt("return");case 16:return this._currentRequestPosition=i,this._currentRequestModelVersion=o,s=(0,Uy.PG)((function(e){return IT(u,void 0,void 0,ti().mark((function t(){var a,u,l,c,d,h,f;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,jT(r,i,e);case 3:if(a=t.sent,s===this._currentRequest){t.next=6;break}return t.abrupt("return");case 6:if(this._currentRequest=null,o===r.getVersionId()){t.next=9;break}return t.abrupt("return");case 9:u=[],(null===a||void 0===a?void 0:a.ranges)&&(u=a.ranges),this._currentWordPattern=(null===a||void 0===a?void 0:a.wordPattern)||this._languageWordPattern,l=!1,c=0,d=u.length;case 14:if(!(c<d)){t.next=22;break}if(!Gy.e.containsPosition(u[c],i)){t.next=19;break}return l=!0,0!==c&&(h=u[c],u.splice(c,1),u.unshift(h)),t.abrupt("break",22);case 19:c++,t.next=14;break;case 22:if(l){t.next=25;break}return this.clearRanges(),t.abrupt("return");case 25:f=u.map((function(e){return{range:e,options:n.DECORATION}})),this._visibleContextKey.set(!0),this._currentDecorations=this._editor.deltaDecorations(this._currentDecorations,f),t.next=34;break;case 30:t.prev=30,t.t0=t.catch(0),(0,My.VV)(t.t0)||(0,My.dL)(t.t0),this._currentRequest!==s&&this._currentRequest||this.clearRanges();case 34:case"end":return t.stop()}}),t,this,[[0,30]])})))})),this._currentRequest=s,t.abrupt("return",s);case 21:case"end":return t.stop()}}),t,this)})))}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);PT.ID="editor.contrib.linkedEditing",PT.DECORATION=Qy.qx.register({stickiness:0,className:RT}),PT=TT([OT(1,Ey.i6)],PT);var ZT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.linkedEditing",label:ky.N("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:Ey.Ao.and(Sy.u.writable,Sy.u.hasRenameProvider),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3132,weight:100}})}return(0,r.Z)(n,[{key:"runCommand",value:function(e,t){var i=this,r=e.get(mb.$),o=Array.isArray(t)&&t||[void 0,void 0],a=(0,Ti.Z)(o,2),s=a[0],u=a[1];return Rb.o.isUri(s)&&qy.L.isIPosition(u)?r.openCodeEditor({resource:s},r.getActiveCodeEditor()).then((function(e){e&&(e.setPosition(u),e.invokeWithinContext((function(t){return i.reportTelemetry(t,e),i.run(t,e)})))}),My.dL):(0,nw.Z)((0,iw.Z)(n.prototype),"runCommand",this).call(this,e,t)}},{key:"run",value:function(e,t){var n=PT.get(t);return n?Promise.resolve(n.updateRanges(!0)):Promise.resolve()}}]),n}(Cy.R6),FT=Cy._l.bindToContribution(PT.get);function jT(e,t,n){var i=this,r=Zb.id.ordered(e);return(0,Uy.Ps)(r.map((function(r){return function(){return IT(i,void 0,void 0,ti().mark((function i(){return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.prev=0,i.next=3,r.provideLinkedEditingRanges(e,t,n);case 3:return i.abrupt("return",i.sent);case 6:return i.prev=6,i.t0=i.catch(0),(0,My.Cp)(i.t0),i.abrupt("return",void 0);case 10:case"end":return i.stop()}}),i,null,[[0,6]])})))}})),(function(e){return!!e&&Ny.Of(null===e||void 0===e?void 0:e.ranges)}))}(0,Cy.fK)(new FT({id:"cancelLinkedEditingInput",precondition:AT,handler:function(e){return e.clearRanges()},kbOpts:{kbExpr:Sy.u.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));var HT=(0,Jy.P6)("editor.linkedEditingBackground",{dark:RC.Il.fromHex("#f00").transparent(.3),light:RC.Il.fromHex("#f00").transparent(.3),hc:RC.Il.fromHex("#f00").transparent(.3)},ky.N("editorLinkedEditingBackground","Background color when the editor auto renames on type."));(0,eb.Ic)((function(e,t){var n=e.getColor(HT);n&&t.addRule(".monaco-editor .".concat(RT," { background: ").concat(n,"; border-left-color: ").concat(n,"; }"))})),(0,Cy.sb)("_executeLinkedEditingProvider",(function(e,t){return jT(e,t,Tb.T.None)})),(0,Cy._K)(PT.ID,PT),(0,Cy.Qr)(ZT);var BT=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},zT=function(){function e(t,n){(0,i.Z)(this,e),this._link=t,this._provider=n}return(0,r.Z)(e,[{key:"toJSON",value:function(){return{range:this.range,url:this.url,tooltip:this.tooltip}}},{key:"range",get:function(){return this._link.range}},{key:"url",get:function(){return this._link.url}},{key:"tooltip",get:function(){return this._link.tooltip}},{key:"resolve",value:function(e){return BT(this,void 0,void 0,ti().mark((function t(){var n=this;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._link.url){t.next=2;break}return t.abrupt("return",this._link.url);case 2:if("function"!==typeof this._provider.resolveLink){t.next=4;break}return t.abrupt("return",Promise.resolve(this._provider.resolveLink(this._link,e)).then((function(t){return n._link=t||n._link,n._link.url?n.resolve(e):Promise.reject(new Error("missing"))})));case 4:return t.abrupt("return",Promise.reject(new Error("missing")));case 5:case"end":return t.stop()}}),t,this)})))}}]),e}(),WT=function(){function e(t){var n=this;(0,i.Z)(this,e),this._disposables=new Ky.SL;var r,o=[],a=(0,tr.Z)(t);try{var s=function(){var t=(0,Ti.Z)(r.value,2),i=t[0],a=t[1],s=i.links.map((function(e){return new zT(e,a)}));o=e._union(o,s),(0,Ky.Wf)(i)&&n._disposables.add(i)};for(a.s();!(r=a.n()).done;)s()}catch(u){a.e(u)}finally{a.f()}this.links=o}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this.links.length=0}}],[{key:"_union",value:function(e,t){var n,i,r,o,a=[];for(n=0,r=0,i=e.length,o=t.length;n<i&&r<o;){var s=e[n],u=t[r];if(Gy.e.areIntersectingOrTouching(s.range,u.range))n++;else Gy.e.compareRangesUsingStarts(s.range,u.range)<0?(a.push(s),n++):(a.push(u),r++)}for(;n<i;n++)a.push(e[n]);for(;r<o;r++)a.push(t[r]);return a}}]),e}();function VT(e,t){var n=[],i=Zb.pM.ordered(e).reverse().map((function(i,r){return Promise.resolve(i.provideLinks(e,t)).then((function(e){e&&(n[r]=[e,i])}),My.Cp)}));return Promise.all(i).then((function(){var e=new WT((0,Ny.kX)(n));return t.isCancellationRequested?(e.dispose(),new WT([])):e}))}Vb.P.registerCommand("_executeLinkProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return BT(void 0,void 0,void 0,ti().mark((function t(){var i,r,o,a,s,u;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],r=n[1],(0,cC.p_)(i instanceof Rb.o),"number"!==typeof r&&(r=0),o=e.get(Fb.q).getModel(i)){t.next=6;break}return t.abrupt("return",[]);case 6:return t.next=8,VT(o,Tb.T.None);case 8:if(a=t.sent){t.next=11;break}return t.abrupt("return",[]);case 11:s=0;case 12:if(!(s<Math.min(r,a.links.length))){t.next=18;break}return t.next=15,a.links[s].resolve(Tb.T.None);case 15:s++,t.next=12;break;case 18:return u=a.links.slice(0),a.dispose(),t.abrupt("return",u);case 21:case"end":return t.stop()}}),t)})))}));var YT=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},UT=function(e,t){return function(n,i){t(n,i,e)}},KT=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};var qT={general:Qy.qx.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:Qy.qx.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})},GT=function(){function e(t,n){(0,i.Z)(this,e),this.link=t,this.decorationId=n}return(0,r.Z)(e,[{key:"activate",value:function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!0))}},{key:"deactivate",value:function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!1))}}],[{key:"decoration",value:function(t,n){return{range:t.range,options:e._getOptions(t,n,!1)}}},{key:"_getOptions",value:function(e,t,n){var i=Object.assign({},n?qT.active:qT.general);return i.hoverMessage=function(e,t){var n=e.url&&/^command:/i.test(e.url.toString()),i=e.tooltip?e.tooltip:n?ky.N("links.navigate.executeCmd","Execute command"):ky.N("links.navigate.follow","Follow link"),r=t?gb.dz?ky.N("links.navigate.kb.meta.mac","cmd + click"):ky.N("links.navigate.kb.meta","ctrl + click"):gb.dz?ky.N("links.navigate.kb.alt.mac","option + click"):ky.N("links.navigate.kb.alt","alt + click");if(e.url){var o="";if(/^command:/i.test(e.url.toString())){var a=e.url.toString().match(/^command:([^?#]+)/);if(a){var s=a[1],u=ky.N("tooltip.explanation","Execute command {0}",s);o=' "'.concat(u,'"')}}return new Ty("",!0).appendMarkdown("[".concat(i,"](").concat(e.url.toString(!0)).concat(o,") (").concat(r,")"))}return(new Ty).appendText("".concat(i," (").concat(r,")"))}(e,t),i}}]),e}(),$T=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this.listenersToRemove=new Ky.SL,this.editor=t,this.openerService=n,this.notificationService=r;var a=new HL(t);this.listenersToRemove.add(a),this.listenersToRemove.add(a.onMouseMoveOrRelevantKeyDown((function(e){var t=(0,Ti.Z)(e,2),n=t[0],i=t[1];o._onEditorMouseMove(n,i)}))),this.listenersToRemove.add(a.onExecute((function(e){o.onEditorMouseUp(e)}))),this.listenersToRemove.add(a.onCancel((function(e){o.cleanUpActiveLinkDecoration()}))),this.enabled=t.getOption(59),this.listenersToRemove.add(t.onDidChangeConfiguration((function(e){var n=t.getOption(59);o.enabled!==n&&(o.enabled=n,o.updateDecorations([]),o.stop(),o.beginCompute())}))),this.listenersToRemove.add(t.onDidChangeModelContent((function(e){return o.onChange()}))),this.listenersToRemove.add(t.onDidChangeModel((function(e){return o.onModelChanged()}))),this.listenersToRemove.add(t.onDidChangeModelLanguage((function(e){return o.onModelModeChanged()}))),this.listenersToRemove.add(Zb.pM.onDidChange((function(e){return o.onModelModeChanged()}))),this.timeout=new Uy._F,this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null,this.beginCompute()}return(0,r.Z)(e,[{key:"onModelChanged",value:function(){this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.beginCompute()}},{key:"onModelModeChanged",value:function(){this.stop(),this.beginCompute()}},{key:"onChange",value:function(){var t=this;this.timeout.setIfNotSet((function(){return t.beginCompute()}),e.RECOMPUTE_TIME)}},{key:"beginCompute",value:function(){return KT(this,void 0,void 0,ti().mark((function e(){var t;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.editor.hasModel()&&this.enabled){e.next=2;break}return e.abrupt("return");case 2:if(t=this.editor.getModel(),Zb.pM.has(t)){e.next=5;break}return e.abrupt("return");case 5:return this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=Uy.PG((function(e){return VT(t,e)})),e.prev=7,e.next=10,this.computePromise;case 10:this.activeLinksList=e.sent,this.updateDecorations(this.activeLinksList.links),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(7),(0,My.dL)(e.t0);case 17:return e.prev=17,this.computePromise=null,e.finish(17);case 20:case"end":return e.stop()}}),e,this,[[7,14,17,20]])})))}},{key:"updateDecorations",value:function(e){for(var t="altKey"===this.editor.getOption(66),n=[],i=Object.keys(this.currentOccurrences),r=0,o=i.length;r<o;r++){var a=i[r],s=this.currentOccurrences[a];n.push(s.decorationId)}var u=[];if(e){var l,c=(0,tr.Z)(e);try{for(c.s();!(l=c.n()).done;){var d=l.value;u.push(GT.decoration(d,t))}}catch(v){c.e(v)}finally{c.f()}}var h=this.editor.deltaDecorations(n,u);this.currentOccurrences={},this.activeLinkDecorationId=null;for(var f=0,p=h.length;f<p;f++){var g=new GT(e[f],h[f]);this.currentOccurrences[g.decorationId]=g}}},{key:"_onEditorMouseMove",value:function(e,t){var n=this,i="altKey"===this.editor.getOption(66);if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();var r=this.getLinkOccurrence(e.target.position);r&&this.editor.changeDecorations((function(e){r.activate(e,i),n.activeLinkDecorationId=r.decorationId}))}else this.cleanUpActiveLinkDecoration()}},{key:"cleanUpActiveLinkDecoration",value:function(){var e="altKey"===this.editor.getOption(66);if(this.activeLinkDecorationId){var t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations((function(n){t.deactivate(n,e)})),this.activeLinkDecorationId=null}}},{key:"onEditorMouseUp",value:function(e){if(this.isEnabled(e)){var t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}}},{key:"openLinkOccurrence",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.openerService){var r=e.link;r.resolve(Tb.T.None).then((function(e){if("string"===typeof e&&n.editor.hasModel()){var r=n.editor.getModel().uri;if(r.scheme===rk.lg.file&&e.startsWith("".concat(rk.lg.file,":"))){var o=Rb.o.parse(e);if(o.scheme===rk.lg.file){var a=Bw.z_(o),s=null;a.startsWith("/./")?s=".".concat(a.substr(1)):a.startsWith("//./")&&(s=".".concat(a.substr(2))),s&&(e=Bw.Vo(r,s))}}}return n.openerService.open(e,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0})}),(function(e){var t=e instanceof Error?e.message:e;"invalid"===t?n.notificationService.warn(ky.N("invalid.url","Failed to open this link because it is not well-formed: {0}",r.url.toString())):"missing"===t?n.notificationService.warn(ky.N("missing.url","Failed to open this link because its target is missing.")):(0,My.dL)(e)}))}}},{key:"getLinkOccurrence",value:function(e){if(!this.editor.hasModel()||!e)return null;var t,n=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0),i=(0,tr.Z)(n);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.currentOccurrences[r.id];if(o)return o}}catch(a){i.e(a)}finally{i.f()}return null}},{key:"isEnabled",value:function(e,t){return Boolean(6===e.target.type&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}},{key:"stop",value:function(){var e;this.timeout.cancel(),this.activeLinksList&&(null===(e=this.activeLinksList)||void 0===e||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}},{key:"dispose",value:function(){this.listenersToRemove.dispose(),this.stop(),this.timeout.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();$T.ID="editor.linkDetector",$T.RECOMPUTE_TIME=1e3,$T=YT([UT(1,ik.v4),UT(2,jw.lT)],$T);var QT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.openLink",label:ky.N("label","Open Link"),alias:"Open Link",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=$T.get(t);if(n&&t.hasModel()){var i,r=t.getSelections(),o=(0,tr.Z)(r);try{for(o.s();!(i=o.n()).done;){var a=i.value,s=n.getLinkOccurrence(a.getEndPosition());s&&n.openLinkOccurrence(s,!1)}}catch(u){o.e(u)}finally{o.f()}}}}]),n}(Cy.R6);(0,Cy._K)($T.ID,$T),(0,Cy.Qr)(QT),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy._Y);n&&t.addRule(".monaco-editor .detected-link-active { color: ".concat(n," !important; }"))}));var XT=n(55561);function JT(e,t){var n=t.filter((function(t){return!e.find((function(e){return e.equals(t)}))}));if(n.length>=1){var i=n.map((function(e){return"line ".concat(e.viewState.position.lineNumber," column ").concat(e.viewState.position.column)})).join(", "),r=1===n.length?ky.N("cursorAdded","Cursor added: {0}",i):ky.N("cursorsAdded","Cursors added: {0}",i);(0,Py.i7)(r)}}var eO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertCursorAbove",label:ky.N("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"3_multi",title:ky.N({key:"miInsertCursorAbove",comment:["&& denotes a mnemonic"]},"&&Add Cursor Above"),order:2}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i=n&&!0===n.logicalLine,r=t._getViewModel();if(!r.cursorConfig.readOnly){r.pushStackElement();var o=r.getCursorStates();r.setCursorStates(n.source,3,XT.P.addCursorUp(r,o,i)),r.revealTopMostCursor(n.source),JT(o,r.getCursorStates())}}}}]),n}(Cy.R6),tO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertCursorBelow",label:ky.N("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"3_multi",title:ky.N({key:"miInsertCursorBelow",comment:["&& denotes a mnemonic"]},"A&&dd Cursor Below"),order:3}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i=n&&!0===n.logicalLine,r=t._getViewModel();if(!r.cursorConfig.readOnly){r.pushStackElement();var o=r.getCursorStates();r.setCursorStates(n.source,3,XT.P.addCursorDown(r,o,i)),r.revealBottomMostCursor(n.source),JT(o,r.getCursorStates())}}}}]),n}(Cy.R6),nO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertCursorAtEndOfEachLineSelected",label:ky.N("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"3_multi",title:ky.N({key:"miInsertCursorAtEndOfEachLineSelected",comment:["&& denotes a mnemonic"]},"Add C&&ursors to Line Ends"),order:4}})}return(0,r.Z)(n,[{key:"getCursorsForSelection",value:function(e,t,n){if(!e.isEmpty()){for(var i=e.startLineNumber;i<e.endLineNumber;i++){var r=t.getLineMaxColumn(i);n.push(new xy.Y(i,r,i,r))}e.endColumn>1&&n.push(new xy.Y(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}},{key:"run",value:function(e,t){var n=this;if(t.hasModel()){var i=t.getModel(),r=t.getSelections(),o=t._getViewModel(),a=o.getCursorStates(),s=[];r.forEach((function(e){return n.getCursorsForSelection(e,i,s)})),s.length>0&&t.setSelections(s),JT(a,o.getCursorStates())}}}]),n}(Cy.R6),iO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.addCursorsToBottom",label:ky.N("mutlicursor.addCursorsToBottom","Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){for(var n=t.getSelections(),i=t.getModel().getLineCount(),r=[],o=n[0].startLineNumber;o<=i;o++)r.push(new xy.Y(o,n[0].startColumn,o,n[0].endColumn));var a=t._getViewModel(),s=a.getCursorStates();r.length>0&&t.setSelections(r),JT(s,a.getCursorStates())}}}]),n}(Cy.R6),rO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.addCursorsToTop",label:ky.N("mutlicursor.addCursorsToTop","Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){for(var n=t.getSelections(),i=[],r=n[0].startLineNumber;r>=1;r--)i.push(new xy.Y(r,n[0].startColumn,r,n[0].endColumn));var o=t._getViewModel(),a=o.getCursorStates();i.length>0&&t.setSelections(i),JT(a,o.getCursorStates())}}}]),n}(Cy.R6),oO=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.selections=t,this.revealRange=n,this.revealScrollType=r})),aO=function(){function e(t,n,r,o,a,s,u){(0,i.Z)(this,e),this._editor=t,this.findController=n,this.isDisconnectedFromFindController=r,this.searchText=o,this.wholeWord=a,this.matchCase=s,this.currentMatch=u}return(0,r.Z)(e,[{key:"addSelectionToNextFindMatch",value:function(){if(!this._editor.hasModel())return null;var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new oO(t.concat(e),e,0)}},{key:"moveSelectionToNextFindMatch",value:function(){if(!this._editor.hasModel())return null;var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new oO(t.slice(0,t.length-1).concat(e),e,0)}},{key:"_getNextMatch",value:function(){if(!this._editor.hasModel())return null;if(this.currentMatch){var e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(113):null,!1);return i?new xy.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}},{key:"addSelectionToPreviousFindMatch",value:function(){if(!this._editor.hasModel())return null;var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new oO(t.concat(e),e,0)}},{key:"moveSelectionToPreviousFindMatch",value:function(){if(!this._editor.hasModel())return null;var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new oO(t.slice(0,t.length-1).concat(e),e,0)}},{key:"_getPreviousMatch",value:function(){if(!this._editor.hasModel())return null;if(this.currentMatch){var e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(113):null,!1);return i?new xy.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}},{key:"selectAll",value:function(){return this._editor.hasModel()?(this.findController.highlightFindOptions(),this._editor.getModel().findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(113):null,!1,1073741824)):[]}}],[{key:"create",value:function(t,n){if(!t.hasModel())return null;var i=n.getState();if(!t.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new e(t,n,!1,i.searchString,i.wholeWord,i.matchCase,null);var r,o,a=!1,s=t.getSelections();1===s.length&&s[0].isEmpty()?(a=!0,r=!0,o=!0):(r=i.wholeWord,o=i.matchCase);var u,l=t.getSelection(),c=null;if(l.isEmpty()){var d=t.getConfiguredWordAtPosition(l.getStartPosition());if(!d)return null;u=d.word,c=new xy.Y(l.startLineNumber,d.startColumn,l.startLineNumber,d.endColumn)}else u=t.getModel().getValueInRange(l).replace(/\r\n/g,"\n");return new e(t,n,a,u,r,o,c)}}]),e}(),sO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._sessionDispose=r._register(new Ky.SL),r._editor=e,r._ignoreSelectionChange=!1,r._session=null,r}return(0,r.Z)(n,[{key:"dispose",value:function(){this._endSession(),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"_beginSessionIfNeeded",value:function(e){var t=this;if(!this._session){var n=aO.create(this._editor,e);if(!n)return;this._session=n;var i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((function(e){t._ignoreSelectionChange||t._endSession()}))),this._sessionDispose.add(this._editor.onDidBlurEditorText((function(){t._endSession()}))),this._sessionDispose.add(e.getState().onFindReplaceStateChange((function(e){(e.matchCase||e.wholeWord)&&t._endSession()})))}}},{key:"_endSession",value:function(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){this._session.findController.getState().change({wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0},!1)}this._session=null}},{key:"_setSelections",value:function(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}},{key:"_expandEmptyToWord",value:function(e,t){if(!t.isEmpty())return t;var n=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return n?new xy.Y(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):t}},{key:"_applySessionResult",value:function(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}},{key:"getSession",value:function(e){return this._session}},{key:"addSelectionToNextFindMatch",value:function(e){if(this._editor.hasModel()){if(!this._session){var t=this._editor.getSelections();if(t.length>1){var n=e.getState().matchCase;if(!mO(this._editor.getModel(),t,n)){for(var i=this._editor.getModel(),r=[],o=0,a=t.length;o<a;o++)r[o]=this._expandEmptyToWord(i,t[o]);return void this._editor.setSelections(r)}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}}},{key:"addSelectionToPreviousFindMatch",value:function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}},{key:"moveSelectionToNextFindMatch",value:function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())}},{key:"moveSelectionToPreviousFindMatch",value:function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}},{key:"selectAll",value:function(e){if(this._editor.hasModel()){var t=null,n=e.getState();if(n.isRevealed&&n.searchString.length>0&&n.isRegex)t=this._editor.getModel().findMatches(n.searchString,!0,n.isRegex,n.matchCase,n.wholeWord?this._editor.getOption(113):null,!1,1073741824);else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll()}if(n.searchScope){var i=n.searchScope,r=[];t.forEach((function(e){i.forEach((function(t){e.range.endLineNumber<=t.endLineNumber&&e.range.startLineNumber>=t.startLineNumber&&r.push(e)}))})),t=r}if(t.length>0){for(var o=this._editor.getSelection(),a=0,s=t.length;a<s;a++){var u=t[a];if(u.range.intersectRanges(o)){t[a]=t[0],t[0]=u;break}}this._setSelections(t.map((function(e){return new xy.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)})))}}}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);sO.ID="editor.contrib.multiCursorController";var uO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=sO.get(t);if(n){var i=KN.get(t);if(i){var r=t._getViewModel();if(r){var o=r.getCursorStates();this._run(n,i),JT(o,r.getCursorStates())}}}}}]),n}(Cy.R6),lO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.addSelectionToNextFindMatch",label:ky.N("addSelectionToNextFindMatch","Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:2082,weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"3_multi",title:ky.N({key:"miAddSelectionToNextFindMatch",comment:["&& denotes a mnemonic"]},"Add &&Next Occurrence"),order:5}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.addSelectionToNextFindMatch(t)}}]),n}(uO),cO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.addSelectionToPreviousFindMatch",label:ky.N("addSelectionToPreviousFindMatch","Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"3_multi",title:ky.N({key:"miAddSelectionToPreviousFindMatch",comment:["&& denotes a mnemonic"]},"Add P&&revious Occurrence"),order:6}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.addSelectionToPreviousFindMatch(t)}}]),n}(uO),dO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.moveSelectionToNextFindMatch",label:ky.N("moveSelectionToNextFindMatch","Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:(0,Ly.gx)(2089,2082),weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.moveSelectionToNextFindMatch(t)}}]),n}(uO),hO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.moveSelectionToPreviousFindMatch",label:ky.N("moveSelectionToPreviousFindMatch","Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.moveSelectionToPreviousFindMatch(t)}}]),n}(uO),fO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.selectHighlights",label:ky.N("selectAllOccurrencesOfFindMatch","Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:3114,weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"3_multi",title:ky.N({key:"miSelectHighlights",comment:["&& denotes a mnemonic"]},"Select All &&Occurrences"),order:7}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.selectAll(t)}}]),n}(uO),pO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.changeAll",label:ky.N("changeAll.label","Change All Occurrences"),alias:"Change All Occurrences",precondition:Ey.Ao.and(Sy.u.writable,Sy.u.editorTextFocus),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.selectAll(t)}}]),n}(uO),gO=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.searchText=t,this.matchCase=n,this.wordSeparators=r,this.modelVersionId=o}return(0,r.Z)(e,null,[{key:"softEquals",value:function(e,t){return!e&&!t||!(!e||!t)&&(e.searchText===t.searchText&&e.matchCase===t.matchCase&&e.wordSeparators===t.wordSeparators&&e.modelVersionId===t.modelVersionId)}}]),e}(),vO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editor=e,r._isEnabled=e.getOption(94),r.decorations=[],r.updateSoon=r._register(new Uy.pY((function(){return r._update()}),300)),r.state=null,r._register(e.onDidChangeConfiguration((function(t){r._isEnabled=e.getOption(94)}))),r._register(e.onDidChangeCursorSelection((function(e){r._isEnabled&&(e.selection.isEmpty()?3===e.reason?(r.state&&r._setState(null),r.updateSoon.schedule()):r._setState(null):r._update())}))),r._register(e.onDidChangeModel((function(e){r._setState(null)}))),r._register(e.onDidChangeModelContent((function(e){r._isEnabled&&r.updateSoon.schedule()}))),r._register(KN.get(e).getState().onFindReplaceStateChange((function(e){r._update()}))),r}return(0,r.Z)(n,[{key:"_update",value:function(){this._setState(n._createState(this._isEnabled,this.editor))}},{key:"_setState",value:function(e){if(gO.softEquals(this.state,e))this.state=e;else if(this.state=e,this.state){if(this.editor.hasModel()){var t=this.editor.getModel();if(!t.isTooLargeForTokenization()){var i=Zb.vH.has(t)&&this.editor.getOption(68),r=t.findMatches(this.state.searchText,!0,!1,this.state.matchCase,this.state.wordSeparators,!1).map((function(e){return e.range}));r.sort(Gy.e.compareRangesUsingStarts);var o=this.editor.getSelections();o.sort(Gy.e.compareRangesUsingStarts);for(var a=[],s=0,u=0,l=r.length,c=o.length;s<l;){var d=r[s];if(u>=c)a.push(d),s++;else{var h=Gy.e.compareRangesUsingStarts(d,o[u]);h<0?(!o[u].isEmpty()&&Gy.e.areIntersecting(d,o[u])||a.push(d),s++):(h>0||s++,u++)}}var f=a.map((function(e){return{range:e,options:i?n._SELECTION_HIGHLIGHT:n._SELECTION_HIGHLIGHT_OVERVIEW}}));this.decorations=this.editor.deltaDecorations(this.decorations,f)}}}else this.decorations=this.editor.deltaDecorations(this.decorations,[])}},{key:"dispose",value:function(){this._setState(null),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}}],[{key:"_createState",value:function(e,t){if(!e)return null;if(!t.hasModel())return null;var n=t.getSelection();if(n.startLineNumber!==n.endLineNumber)return null;var i=sO.get(t);if(!i)return null;var r=KN.get(t);if(!r)return null;var o=i.getSession(r);if(!o){var a=t.getSelections();if(a.length>1){var s=r.getState().matchCase;if(!mO(t.getModel(),a,s))return null}o=aO.create(t,r)}if(!o)return null;if(o.currentMatch)return null;if(/^[ \t]+$/.test(o.searchText))return null;if(o.searchText.length>200)return null;var u=r.getState(),l=u.matchCase;if(u.isRevealed){var c=u.searchString;l||(c=c.toLowerCase());var d=o.searchText;if(l||(d=d.toLowerCase()),c===d&&o.matchCase===u.matchCase&&o.wholeWord===u.wholeWord&&!u.isRegex)return null}return new gO(o.searchText,o.matchCase,o.wholeWord?t.getOption(113):null,t.getModel().getVersionId())}}]),n}(Ky.JT);function mO(e,t,n){for(var i=_O(e,t[0],!n),r=1,o=t.length;r<o;r++){var a=t[r];if(a.isEmpty())return!1;if(i!==_O(e,a,!n))return!1}return!0}function _O(e,t,n){var i=e.getValueInRange(t);return n?i.toLowerCase():i}vO.ID="editor.contrib.selectionHighlighter",vO._SELECTION_HIGHLIGHT_OVERVIEW=Qy.qx.register({stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,eb.EN)(Jy.SP),position:$y.sh.Center}}),vO._SELECTION_HIGHLIGHT=Qy.qx.register({stickiness:1,className:"selectionHighlight"}),(0,Cy._K)(sO.ID,sO),(0,Cy._K)(vO.ID,vO),(0,Cy.Qr)(eO),(0,Cy.Qr)(tO),(0,Cy.Qr)(nO),(0,Cy.Qr)(lO),(0,Cy.Qr)(cO),(0,Cy.Qr)(dO),(0,Cy.Qr)(hO),(0,Cy.Qr)(fO),(0,Cy.Qr)(pO),(0,Cy.Qr)(iO),(0,Cy.Qr)(rO);var yO=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},bO={Visible:new Ey.uy("parameterHintsVisible",!1),MultipleSignatures:new Ey.uy("parameterHintsMultipleSignatures",!1)};function wO(e,t,n,i){return yO(this,void 0,void 0,ti().mark((function r(){var o,a,s,u,l;return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=Zb.nD.ordered(e),a=(0,tr.Z)(o),r.prev=2,a.s();case 4:if((s=a.n()).done){r.next=19;break}return u=s.value,r.prev=6,r.next=9,u.provideSignatureHelp(e,t,i,n);case 9:if(!(l=r.sent)){r.next=12;break}return r.abrupt("return",l);case 12:r.next=17;break;case 14:r.prev=14,r.t0=r.catch(6),(0,My.Cp)(r.t0);case 17:r.next=4;break;case 19:r.next=24;break;case 21:r.prev=21,r.t1=r.catch(2),a.e(r.t1);case 24:return r.prev=24,a.f(),r.finish(24);case 27:return r.abrupt("return",void 0);case 28:case"end":return r.stop()}}),r,null,[[2,21,24,27],[6,14]])})))}Vb.P.registerCommand("_executeSignatureHelpProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return yO(void 0,void 0,void 0,ti().mark((function t(){var i,r,o,a,s;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=n[0],r=n[1],o=n[2],(0,cC.p_)(Rb.o.isUri(i)),(0,cC.p_)(qy.L.isIPosition(r)),(0,cC.p_)("string"===typeof o||!o),t.next=6,e.get(Dx.S).createModelReference(i);case 6:return a=t.sent,t.prev=7,t.next=10,wO(a.object.textEditorModel,qy.L.lift(r),{triggerKind:Zb.WW.Invoke,isRetrigger:!1,triggerCharacter:o},Tb.T.None);case 10:if(s=t.sent){t.next=13;break}return t.abrupt("return",void 0);case 13:return setTimeout((function(){return s.dispose()}),0),t.abrupt("return",s.value);case 15:return t.prev=15,a.dispose(),t.finish(15);case 18:case"end":return t.stop()}}),t,null,[[7,,15,18]])})))}));var CO,kO=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};!function(e){e.Default={type:0};var t=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.request=t,this.previouslyActiveHints=n,this.type=2}));e.Pending=t;var n=(0,r.Z)((function e(t){(0,i.Z)(this,e),this.hints=t,this.type=1}));e.Active=n}(CO||(CO={}));var SO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.DEFAULT_DELAY;return(0,i.Z)(this,n),(r=t.call(this))._onChangedHints=r._register(new kw.Q5),r.onChangedHints=r._onChangedHints.event,r.triggerOnType=!1,r._state=CO.Default,r._pendingTriggers=[],r._lastSignatureHelpResult=r._register(new Ky.XK),r.triggerChars=new oM.q,r.retriggerChars=new oM.q,r.triggerId=0,r.editor=e,r.throttledDelayer=new Uy.vp(o),r._register(r.editor.onDidBlurEditorWidget((function(){return r.cancel()}))),r._register(r.editor.onDidChangeConfiguration((function(){return r.onEditorConfigurationChange()}))),r._register(r.editor.onDidChangeModel((function(e){return r.onModelChanged()}))),r._register(r.editor.onDidChangeModelLanguage((function(e){return r.onModelChanged()}))),r._register(r.editor.onDidChangeCursorSelection((function(e){return r.onCursorChange(e)}))),r._register(r.editor.onDidChangeModelContent((function(e){return r.onModelContentChange()}))),r._register(Zb.nD.onDidChange(r.onModelChanged,(0,Mb.Z)(r))),r._register(r.editor.onDidType((function(e){return r.onDidType(e)}))),r.onEditorConfigurationChange(),r.onModelChanged(),r}return(0,r.Z)(n,[{key:"state",get:function(){return this._state},set:function(e){2===this._state.type&&this._state.request.cancel(),this._state=e}},{key:"cancel",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.state=CO.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}},{key:"trigger",value:function(e,t){var n=this,i=this.editor.getModel();if(i&&Zb.nD.has(i)){var r=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger((function(){return n.doTrigger(r)}),t).catch(My.dL)}}},{key:"next",value:function(){if(1===this.state.type){var e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=t%e===e-1,i=this.editor.getOption(72).cycle;!(e<2||n)||i?this.updateActiveSignature(n&&i?0:t+1):this.cancel()}}},{key:"previous",value:function(){if(1===this.state.type){var e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=0===t,i=this.editor.getOption(72).cycle;!(e<2||n)||i?this.updateActiveSignature(n&&i?e-1:t-1):this.cancel()}}},{key:"updateActiveSignature",value:function(e){1===this.state.type&&(this.state=new CO.Active(Object.assign(Object.assign({},this.state.hints),{activeSignature:e})),this._onChangedHints.fire(this.state.hints))}},{key:"doTrigger",value:function(e){return kO(this,void 0,void 0,ti().mark((function t(){var n,i,r,o,a,s,u;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=1===this.state.type||2===this.state.type,i=this.getLastActiveHints(),this.cancel(!0),0!==this._pendingTriggers.length){t.next=5;break}return t.abrupt("return",!1);case 5:if(r=this._pendingTriggers.reduce(xO),this._pendingTriggers=[],o={triggerKind:r.triggerKind,triggerCharacter:r.triggerCharacter,isRetrigger:n,activeSignatureHelp:i},this.editor.hasModel()){t.next=10;break}return t.abrupt("return",!1);case 10:return a=this.editor.getModel(),s=this.editor.getPosition(),this.state=new CO.Pending((0,Uy.PG)((function(e){return wO(a,s,o,e)})),i),t.prev=13,t.next=16,this.state.request;case 16:if(u=t.sent,e===this.triggerId){t.next=20;break}return null===u||void 0===u||u.dispose(),t.abrupt("return",!1);case 20:if(u&&u.value.signatures&&0!==u.value.signatures.length){t.next=27;break}return null===u||void 0===u||u.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),t.abrupt("return",!1);case 27:return this.state=new CO.Active(u.value),this._lastSignatureHelpResult.value=u,this._onChangedHints.fire(this.state.hints),t.abrupt("return",!0);case 31:t.next=38;break;case 33:return t.prev=33,t.t0=t.catch(13),e===this.triggerId&&(this.state=CO.Default),(0,My.dL)(t.t0),t.abrupt("return",!1);case 38:case"end":return t.stop()}}),t,this,[[13,33]])})))}},{key:"getLastActiveHints",value:function(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}},{key:"isTriggered",get:function(){return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()}},{key:"onModelChanged",value:function(){this.cancel(),this.triggerChars=new oM.q,this.retriggerChars=new oM.q;var e=this.editor.getModel();if(e){var t,n=(0,tr.Z)(Zb.nD.ordered(e));try{for(n.s();!(t=n.n()).done;){var i,r=t.value,o=(0,tr.Z)(r.signatureHelpTriggerCharacters||[]);try{for(o.s();!(i=o.n()).done;){var a=i.value;this.triggerChars.add(a.charCodeAt(0)),this.retriggerChars.add(a.charCodeAt(0))}}catch(c){o.e(c)}finally{o.f()}var s,u=(0,tr.Z)(r.signatureHelpRetriggerCharacters||[]);try{for(u.s();!(s=u.n()).done;){var l=s.value;this.retriggerChars.add(l.charCodeAt(0))}}catch(c){u.e(c)}finally{u.f()}}}catch(c){n.e(c)}finally{n.f()}}}},{key:"onDidType",value:function(e){if(this.triggerOnType){var t=e.length-1,n=e.charCodeAt(t);(this.triggerChars.has(n)||this.isTriggered&&this.retriggerChars.has(n))&&this.trigger({triggerKind:Zb.WW.TriggerCharacter,triggerCharacter:e.charAt(t)})}}},{key:"onCursorChange",value:function(e){"mouse"===e.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:Zb.WW.ContentChange})}},{key:"onModelContentChange",value:function(){this.isTriggered&&this.trigger({triggerKind:Zb.WW.ContentChange})}},{key:"onEditorConfigurationChange",value:function(){this.triggerOnType=this.editor.getOption(72).enabled,this.triggerOnType||this.cancel()}},{key:"dispose",value:function(){this.cancel(!0),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}}]),n}(Ky.JT);function xO(e,t){switch(t.triggerKind){case Zb.WW.Invoke:return t;case Zb.WW.ContentChange:return e;case Zb.WW.TriggerCharacter:default:return t}}SO.DEFAULT_DELAY=120;var LO=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},EO=function(e,t){return function(n,i){t(n,i,e)}},NO=dw.$,DO=(0,CS.q5)("parameter-hints-next",xw.lA.chevronDown,ky.N("parameterHintsNextIcon","Icon for show next parameter hint.")),MO=(0,CS.q5)("parameter-hints-previous",xw.lA.chevronUp,ky.N("parameterHintsPreviousIcon","Icon for show previous parameter hint.")),TO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this)).editor=e,s.renderDisposeables=s._register(new Ky.SL),s.visible=!1,s.announcedLabel=null,s.allowEditorOverflow=!0,s.markdownRenderer=s._register(new ex({editor:e},a,o)),s.model=s._register(new SO(e)),s.keyVisible=bO.Visible.bindTo(r),s.keyMultipleSignatures=bO.MultipleSignatures.bindTo(r),s._register(s.model.onChangedHints((function(e){e?(s.show(),s.render(e)):s.hide()}))),s}return(0,r.Z)(n,[{key:"createParamaterHintDOMNodes",value:function(){var e=this,t=NO(".editor-widget.parameter-hints-widget"),n=dw.append(t,NO(".phwrapper"));n.tabIndex=-1;var i=dw.append(n,NO(".controls")),r=dw.append(i,NO(".button"+eb.kS.asCSSSelector(MO))),o=dw.append(i,NO(".overloads")),a=dw.append(i,NO(".button"+eb.kS.asCSSSelector(DO))),s=(0,Ck.sT)((0,Ck.jt)(r,"click"));this._register(s(this.previous,this));var u=(0,Ck.sT)((0,Ck.jt)(a,"click"));this._register(u(this.next,this));var l=NO(".body"),c=new JC.s$(l,{});this._register(c),n.appendChild(c.getDomNode());var d=dw.append(l,NO(".signature")),h=dw.append(l,NO(".docs"));t.style.userSelect="text",this.domNodes={element:t,signature:d,overloads:o,docs:h,scrollbar:c},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((function(t){e.visible&&e.editor.layoutContentWidget(e)})));var f=function(){if(e.domNodes){var t=e.editor.getOption(40);e.domNodes.element.style.fontSize="".concat(t.fontSize,"px")}};f(),this._register(kw.ju.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((function(e){return e.hasChanged(40)})).on(f,null)),this._register(this.editor.onDidLayoutChange((function(t){return e.updateMaxHeight()}))),this.updateMaxHeight()}},{key:"show",value:function(){var e=this;this.visible||(this.domNodes||this.createParamaterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout((function(){e.domNodes&&e.domNodes.element.classList.add("visible")}),100),this.editor.layoutContentWidget(this))}},{key:"hide",value:function(){this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes&&this.domNodes.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}},{key:"getPosition",value:function(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}},{key:"render",value:function(e){var t;if(this.renderDisposeables.clear(),this.domNodes){var n=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",n),this.keyMultipleSignatures.set(n),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";var i=e.signatures[e.activeSignature];if(i){var r=dw.append(this.domNodes.signature,NO(".code")),o=this.editor.getOption(40);r.style.fontSize="".concat(o.fontSize,"px"),r.style.fontFamily=o.fontFamily;var a=i.parameters.length>0,s=null!==(t=i.activeParameter)&&void 0!==t?t:e.activeParameter;if(a)this.renderParameters(r,i,s);else dw.append(r,NO("span")).textContent=i.label;var u=i.parameters[s];if(null===u||void 0===u?void 0:u.documentation){var l=NO("span.documentation");if("string"===typeof u.documentation)l.textContent=u.documentation;else{var c=this.renderMarkdownDocs(u.documentation);l.appendChild(c.element)}dw.append(this.domNodes.docs,NO("p",{},l))}if(void 0===i.documentation);else if("string"===typeof i.documentation)dw.append(this.domNodes.docs,NO("p",{},i.documentation));else{var d=this.renderMarkdownDocs(i.documentation);dw.append(this.domNodes.docs,d.element)}var h=this.hasDocs(i,u);if(this.domNodes.signature.classList.toggle("has-docs",h),this.domNodes.docs.classList.toggle("empty",!h),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,u){var f=this.getParameterLabel(i,s);this.announcedLabel!==f&&(Py.Z9(ky.N("hint","{0}, hint",f)),this.announcedLabel=f)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}}}},{key:"renderMarkdownDocs",value:function(e){var t=this,n=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:function(){var e;null===(e=t.domNodes)||void 0===e||e.scrollbar.scanDomNode()}}));return n.element.classList.add("markdown-docs"),n}},{key:"hasDocs",value:function(e,t){return!!(t&&"string"===typeof t.documentation&&(0,cC.cW)(t.documentation).length>0)||(!!(t&&"object"===typeof t.documentation&&(0,cC.cW)(t.documentation).value.length>0)||(!!(e.documentation&&"string"===typeof e.documentation&&(0,cC.cW)(e.documentation).length>0)||!!(e.documentation&&"object"===typeof e.documentation&&(0,cC.cW)(e.documentation.value).length>0)))}},{key:"renderParameters",value:function(e,t,n){var i=this.getParameterLabelOffsets(t,n),r=(0,Ti.Z)(i,2),o=r[0],a=r[1],s=document.createElement("span");s.textContent=t.label.substring(0,o);var u=document.createElement("span");u.textContent=t.label.substring(o,a),u.className="parameter active";var l=document.createElement("span");l.textContent=t.label.substring(a),dw.append(e,s,u,l)}},{key:"getParameterLabel",value:function(e,t){var n=e.parameters[t];return Array.isArray(n.label)?e.label.substring(n.label[0],n.label[1]):n.label}},{key:"getParameterLabelOffsets",value:function(e,t){var n=e.parameters[t];if(n){if(Array.isArray(n.label))return n.label;if(n.label.length){var i=new RegExp("(\\W|^)".concat((0,Ib.ec)(n.label),"(?=\\W|$)"),"g");i.test(e.label);var r=i.lastIndex-n.label.length;return r>=0?[r,i.lastIndex]:[0,0]}return[0,0]}return[0,0]}},{key:"next",value:function(){this.editor.focus(),this.model.next()}},{key:"previous",value:function(){this.editor.focus(),this.model.previous()}},{key:"cancel",value:function(){this.model.cancel()}},{key:"getDomNode",value:function(){return this.domNodes||this.createParamaterHintDOMNodes(),this.domNodes.element}},{key:"getId",value:function(){return n.ID}},{key:"trigger",value:function(e){this.model.trigger(e,0)}},{key:"updateMaxHeight",value:function(){if(this.domNodes){var e=Math.max(this.editor.getLayoutInfo().height/4,250),t="".concat(e,"px");this.domNodes.element.style.maxHeight=t;var n=this.domNodes.element.getElementsByClassName("phwrapper");n.length&&(n[0].style.maxHeight=t)}}}]),n}(Ky.JT);TO.ID="editor.widget.parameterHintsWidget",TO=LO([EO(1,Ey.i6),EO(2,ik.v4),EO(3,BC.h)],TO),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.CN);if(n){var i=e.type===rw.e.HIGH_CONTRAST?2:1;t.addRule(".monaco-editor .parameter-hints-widget { border: ".concat(i,"px solid ").concat(n,"; }")),t.addRule(".monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid ".concat(n.transparent(.5),"; }")),t.addRule(".monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid ".concat(n.transparent(.5),"; }"))}var r=e.getColor(Jy.yJ);r&&t.addRule(".monaco-editor .parameter-hints-widget { background-color: ".concat(r,"; }"));var o=e.getColor(Jy.ur);o&&t.addRule(".monaco-editor .parameter-hints-widget a { color: ".concat(o,"; }"));var a=e.getColor(Jy.Sb);a&&t.addRule(".monaco-editor .parameter-hints-widget { color: ".concat(a,"; }"));var s=e.getColor(Jy.Sw);s&&t.addRule(".monaco-editor .parameter-hints-widget code { background-color: ".concat(s,"; }"))}));var OO=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},IO=function(e,t){return function(n,i){t(n,i,e)}},AO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this)).editor=e,o.widget=o._register(r.createInstance(TO,o.editor)),o}return(0,r.Z)(n,[{key:"cancel",value:function(){this.widget.cancel()}},{key:"previous",value:function(){this.widget.previous()}},{key:"next",value:function(){this.widget.next()}},{key:"trigger",value:function(e){this.widget.trigger(e)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);AO.ID="editor.controller.parameterHints",AO=OO([IO(1,cw.TG)],AO);var RO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.triggerParameterHints",label:ky.N("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:Sy.u.hasSignatureHelpProvider,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:3082,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=AO.get(t);n&&n.trigger({triggerKind:Zb.WW.Invoke})}}]),n}(Cy.R6);(0,Cy._K)(AO.ID,AO),(0,Cy.Qr)(RO);var PO=Cy._l.bindToContribution(AO.get);(0,Cy.fK)(new PO({id:"closeParameterHints",precondition:bO.Visible,handler:function(e){return e.cancel()},kbOpts:{weight:175,kbExpr:Sy.u.focus,primary:9,secondary:[1033]}})),(0,Cy.fK)(new PO({id:"showPrevParameterHint",precondition:Ey.Ao.and(bO.Visible,bO.MultipleSignatures),handler:function(e){return e.previous()},kbOpts:{weight:175,kbExpr:Sy.u.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),(0,Cy.fK)(new PO({id:"showNextParameterHint",precondition:Ey.Ao.and(bO.Visible,bO.MultipleSignatures),handler:function(e){return e.next()},kbOpts:{weight:175,kbExpr:Sy.u.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var ZO=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},FO=function(e,t){return function(n,i){t(n,i,e)}},jO=new Ey.uy("renameInputVisible",!1,(0,ky.N)("renameInputVisible","Whether the rename input widget is visible")),HO=function(){function e(t,n,r,o,a){var s=this;(0,i.Z)(this,e),this._editor=t,this._acceptKeybindings=n,this._themeService=r,this._keybindingService=o,this._disposables=new Ky.SL,this.allowEditorOverflow=!0,this._visibleContextKey=jO.bindTo(a),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&s._updateFont()}))),this._disposables.add(r.onDidColorThemeChange(this._updateStyles,this))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this._editor.removeContentWidget(this)}},{key:"getId",value:function(){return"__renameInputWidget"}},{key:"getDomNode",value:function(){var e=this;if(!this._domNode){this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",(0,ky.N)("renameAriaLabel","Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._input),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label);var t=function(){var t,n,i=(0,Ti.Z)(e._acceptKeybindings,2),r=i[0],o=i[1];e._keybindingService.lookupKeybinding(r),e._label.innerText=(0,ky.N)({key:"label",comment:['placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"']},"{0} to Rename, {1} to Preview",null===(t=e._keybindingService.lookupKeybinding(r))||void 0===t?void 0:t.getLabel(),null===(n=e._keybindingService.lookupKeybinding(o))||void 0===n?void 0:n.getLabel())};t(),this._disposables.add(this._keybindingService.onDidUpdateKeybindings(t)),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())}return this._domNode}},{key:"_updateStyles",value:function(e){var t,n,i,r;if(this._input&&this._domNode){var o=e.getColor(Jy.rh);this._domNode.style.backgroundColor=String(null!==(t=e.getColor(Jy.D0))&&void 0!==t?t:""),this._domNode.style.boxShadow=o?" 0 0 8px 2px ".concat(o):"",this._domNode.style.color=String(null!==(n=e.getColor(Jy.zJ))&&void 0!==n?n:""),this._input.style.backgroundColor=String(null!==(i=e.getColor(Jy.sE))&&void 0!==i?i:"");var a=e.getColor(Jy.dt);this._input.style.borderWidth=a?"1px":"0px",this._input.style.borderStyle=a?"solid":"none",this._input.style.borderColor=null!==(r=null===a||void 0===a?void 0:a.toString())&&void 0!==r?r:"none"}}},{key:"_updateFont",value:function(){if(this._input&&this._label){var e=this._editor.getOption(40);this._input.style.fontFamily=e.fontFamily,this._input.style.fontWeight=e.fontWeight,this._input.style.fontSize="".concat(e.fontSize,"px"),this._label.style.fontSize="".concat(.8*e.fontSize,"px")}}},{key:"getPosition",value:function(){return this._visible?{position:this._position,preference:[2,1]}:null}},{key:"afterRender",value:function(e){e||this.cancelInput(!0)}},{key:"acceptInput",value:function(e){this._currentAcceptInput&&this._currentAcceptInput(e)}},{key:"cancelInput",value:function(e){this._currentCancelInput&&this._currentCancelInput(e)}},{key:"getInput",value:function(e,t,n,i,r,o){var a=this;this._domNode.classList.toggle("preview",r),this._position=new qy.L(e.startLineNumber,e.startColumn),this._input.value=t,this._input.setAttribute("selectionStart",n.toString()),this._input.setAttribute("selectionEnd",i.toString()),this._input.size=Math.max(1.1*(e.endColumn-e.startColumn),20);var s=new Ky.SL;return new Promise((function(e){a._currentCancelInput=function(t){return a._currentAcceptInput=void 0,a._currentCancelInput=void 0,e(t),!0},a._currentAcceptInput=function(n){0!==a._input.value.trim().length&&a._input.value!==t?(a._currentAcceptInput=void 0,a._currentCancelInput=void 0,e({newName:a._input.value,wantsPreview:r&&n})):a.cancelInput(!0)},o.onCancellationRequested((function(){return a.cancelInput(!0)})),s.add(a._editor.onDidBlurEditorWidget((function(){return a.cancelInput(!1)}))),a._show()})).finally((function(){s.dispose(),a._hide()}))}},{key:"_show",value:function(){var e=this;this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout((function(){e._input.focus(),e._input.setSelectionRange(parseInt(e._input.getAttribute("selectionStart")),parseInt(e._input.getAttribute("selectionEnd")))}),100)}},{key:"_hide",value:function(){this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}}]),e}();HO=ZO([FO(2,eb.XE),FO(3,pw.d),FO(4,Ey.i6)],HO);var BO=n(19974),zO=n(38774),WO=n(72885),VO=n(45862),YO=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},UO=function(e,t){return function(n,i){t(n,i,e)}},KO=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},qO=function(){function e(t,n){(0,i.Z)(this,e),this.model=t,this.position=n,this._providerRenameIdx=0,this._providers=Zb.G0.ordered(t)}return(0,r.Z)(e,[{key:"hasProvider",value:function(){return this._providers.length>0}},{key:"resolveRenameLocation",value:function(e){return KO(this,void 0,void 0,ti().mark((function t(){var n,i,r,o;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=[],this._providerRenameIdx=0;case 2:if(!(this._providerRenameIdx<this._providers.length)){t.next=18;break}if((i=this._providers[this._providerRenameIdx]).resolveRenameLocation){t.next=6;break}return t.abrupt("break",18);case 6:return t.next=8,i.resolveRenameLocation(this.model,this.position,e);case 8:if(r=t.sent){t.next=11;break}return t.abrupt("continue",15);case 11:if(!r.rejectReason){t.next=14;break}return n.push(r.rejectReason),t.abrupt("continue",15);case 14:return t.abrupt("return",r);case 15:this._providerRenameIdx++,t.next=2;break;case 18:if(o=this.model.getWordAtPosition(this.position)){t.next=21;break}return t.abrupt("return",{range:Gy.e.fromPositions(this.position),text:"",rejectReason:n.length>0?n.join("\n"):void 0});case 21:return t.abrupt("return",{range:new Gy.e(this.position.lineNumber,o.startColumn,this.position.lineNumber,o.endColumn),text:o.word,rejectReason:n.length>0?n.join("\n"):void 0});case 22:case"end":return t.stop()}}),t,this)})))}},{key:"provideRenameEdits",value:function(e,t){return KO(this,void 0,void 0,ti().mark((function n(){return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",this._provideRenameEdits(e,this._providerRenameIdx,[],t));case 1:case"end":return n.stop()}}),n,this)})))}},{key:"_provideRenameEdits",value:function(e,t,n,i){return KO(this,void 0,void 0,ti().mark((function r(){var o,a;return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=this._providers[t]){r.next=3;break}return r.abrupt("return",{edits:[],rejectReason:n.join("\n")});case 3:return r.next=5,o.provideRenameEdits(this.model,this.position,e,i);case 5:if(a=r.sent){r.next=10;break}return r.abrupt("return",this._provideRenameEdits(e,t+1,n.concat(ky.N("no result","No result.")),i));case 10:if(!a.rejectReason){r.next=12;break}return r.abrupt("return",this._provideRenameEdits(e,t+1,n.concat(a.rejectReason),i));case 12:return r.abrupt("return",a);case 13:case"end":return r.stop()}}),r,this)})))}}]),e}();var GO=function(){function e(t,n,r,o,a,s,u){var l=this;(0,i.Z)(this,e),this.editor=t,this._instaService=n,this._notificationService=r,this._bulkEditService=o,this._progressService=a,this._logService=s,this._configService=u,this._dispoableStore=new Ky.SL,this._cts=new Tb.A,this._renameInputField=this._dispoableStore.add(new Uy.Ue((function(){return l._dispoableStore.add(l._instaService.createInstance(HO,l.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._dispoableStore.dispose(),this._cts.dispose(!0)}},{key:"run",value:function(){return KO(this,void 0,void 0,ti().mark((function e(){var t,n,i,r,o,a,s,u,l,c,d=this;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._cts.dispose(!0),this.editor.hasModel()){e.next=3;break}return e.abrupt("return",void 0);case 3:if(t=this.editor.getPosition(),(n=new qO(this.editor.getModel(),t)).hasProvider()){e.next=7;break}return e.abrupt("return",void 0);case 7:return this._cts=new Pb.Dl(this.editor,5),e.prev=8,r=n.resolveRenameLocation(this._cts.token),this._progressService.showWhile(r,250),e.next=13,r;case 13:i=e.sent,e.next=20;break;case 16:return e.prev=16,e.t0=e.catch(8),sw.get(this.editor).showMessage(e.t0||ky.N("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),t),e.abrupt("return",void 0);case 20:if(i){e.next=22;break}return e.abrupt("return",void 0);case 22:if(!i.rejectReason){e.next=25;break}return sw.get(this.editor).showMessage(i.rejectReason,t),e.abrupt("return",void 0);case 25:if(!this._cts.token.isCancellationRequested){e.next=27;break}return e.abrupt("return",void 0);case 27:return this._cts.dispose(),this._cts=new Pb.Dl(this.editor,5,i.range),o=this.editor.getSelection(),a=0,s=i.text.length,Gy.e.isEmpty(o)||Gy.e.spansMultipleLines(o)||!Gy.e.containsRange(i.range,o)||(a=Math.max(0,o.startColumn-i.range.startColumn),s=Math.min(i.range.endColumn,o.endColumn)-i.range.startColumn),u=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),e.next=36,this._renameInputField.value.getInput(i.range,i.text,a,s,u,this._cts.token);case 36:if("boolean"!==typeof(l=e.sent)){e.next=40;break}return l&&this.editor.focus(),e.abrupt("return",void 0);case 40:return this.editor.focus(),c=(0,Uy.eP)(n.provideRenameEdits(l.newName,this._cts.token),this._cts.token).then((function(e){return KO(d,void 0,void 0,ti().mark((function t(){var n=this;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e&&this.editor.hasModel()){t.next=2;break}return t.abrupt("return");case 2:if(!e.rejectReason){t.next=5;break}return this._notificationService.info(e.rejectReason),t.abrupt("return");case 5:this._bulkEditService.apply(Ab.fo.convert(e),{editor:this.editor,showPreview:l.wantsPreview,label:ky.N("label","Renaming '{0}'",null===i||void 0===i?void 0:i.text),quotableLabel:ky.N("quotableLabel","Renaming {0}",null===i||void 0===i?void 0:i.text)}).then((function(e){e.ariaSummary&&(0,Py.Z9)(ky.N("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",i.text,l.newName,e.ariaSummary))})).catch((function(e){n._notificationService.error(ky.N("rename.failedApply","Rename failed to apply edits")),n._logService.error(e)}));case 6:case"end":return t.stop()}}),t,this)})))}),(function(e){d._notificationService.error(ky.N("rename.failed","Rename failed to compute edits")),d._logService.error(e)})),this._progressService.showWhile(c,250),e.abrupt("return",c);case 44:case"end":return e.stop()}}),e,this,[[8,16]])})))}},{key:"acceptRenameInput",value:function(e){this._renameInputField.value.acceptInput(e)}},{key:"cancelRenameInput",value:function(){this._renameInputField.value.cancelInput(!0)}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();GO.ID="editor.contrib.renameController",GO=YO([UO(1,cw.TG),UO(2,jw.lT),UO(3,Ab.vu),UO(4,Wb.e),UO(5,BO.VZ),UO(6,VO.V)],GO);var $O=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.rename",label:ky.N("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:Ey.Ao.and(Sy.u.writable,Sy.u.hasRenameProvider),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}return(0,r.Z)(n,[{key:"runCommand",value:function(e,t){var i=this,r=e.get(mb.$),o=Array.isArray(t)&&t||[void 0,void 0],a=(0,Ti.Z)(o,2),s=a[0],u=a[1];return Rb.o.isUri(s)&&qy.L.isIPosition(u)?r.openCodeEditor({resource:s},r.getActiveCodeEditor()).then((function(e){e&&(e.setPosition(u),e.invokeWithinContext((function(t){return i.reportTelemetry(t,e),i.run(t,e)})))}),My.dL):(0,nw.Z)((0,iw.Z)(n.prototype),"runCommand",this).call(this,e,t)}},{key:"run",value:function(e,t){var n=GO.get(t);return n?n.run():Promise.resolve()}}]),n}(Cy.R6);(0,Cy._K)(GO.ID,GO),(0,Cy.Qr)($O);var QO=Cy._l.bindToContribution(GO.get);(0,Cy.fK)(new QO({id:"acceptRenameInput",precondition:jO,handler:function(e){return e.acceptRenameInput(!1)},kbOpts:{weight:199,kbExpr:Sy.u.focus,primary:3}})),(0,Cy.fK)(new QO({id:"acceptRenameInputWithPreview",precondition:Ey.Ao.and(jO,Ey.Ao.has("config.editor.rename.enablePreview")),handler:function(e){return e.acceptRenameInput(!0)},kbOpts:{weight:199,kbExpr:Sy.u.focus,primary:1027}})),(0,Cy.fK)(new QO({id:"cancelRenameInput",precondition:jO,handler:function(e){return e.cancelRenameInput()},kbOpts:{weight:199,kbExpr:Sy.u.focus,primary:9,secondary:[1033]}})),(0,Cy.sb)("_executeDocumentRenameProvider",(function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];var o=i[0];return(0,cC.p_)("string"===typeof o),function(e,t,n){return KO(this,void 0,void 0,ti().mark((function i(){var r,o;return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return r=new qO(e,t),i.next=3,r.resolveRenameLocation(Tb.T.None);case 3:if(!(null===(o=i.sent)||void 0===o?void 0:o.rejectReason)){i.next=6;break}return i.abrupt("return",{edits:[],rejectReason:o.rejectReason});case 6:return i.abrupt("return",r.provideRenameEdits(n,Tb.T.None));case 7:case"end":return i.stop()}}),i)})))}(e,t,o)})),zO.B.as(WO.IP.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:ky.N("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var XO=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"provideSelectionRanges",value:function(e,t){var n,i=[],r=(0,tr.Z)(t);try{for(r.s();!(n=r.n()).done;){var o=n.value,a=[];i.push(a),this._addInWordRanges(a,e,o),this._addWordRanges(a,e,o),this._addWhitespaceLine(a,e,o),a.push({range:e.getFullModelRange()})}}catch(s){r.e(s)}finally{r.f()}return i}},{key:"_addInWordRanges",value:function(e,t,n){var i=t.getWordAtPosition(n);if(i){for(var r=i.word,o=i.startColumn,a=n.column-o,s=a,u=a,l=0;s>=0;s--){var c=r.charCodeAt(s);if(s!==a&&(95===c||45===c))break;if((0,Ib.mK)(c)&&(0,Ib.df)(l))break;l=c}for(s+=1;u<r.length;u++){var d=r.charCodeAt(u);if((0,Ib.df)(d)&&(0,Ib.mK)(l))break;if(95===d||45===d)break;l=d}s<u&&e.push({range:new Gy.e(n.lineNumber,o+s,n.lineNumber,o+u)})}}},{key:"_addWordRanges",value:function(e,t,n){var i=t.getWordAtPosition(n);i&&e.push({range:new Gy.e(n.lineNumber,i.startColumn,n.lineNumber,i.endColumn)})}},{key:"_addWhitespaceLine",value:function(e,t,n){t.getLineLength(n.lineNumber)>0&&0===t.getLineFirstNonWhitespaceColumn(n.lineNumber)&&0===t.getLineLastNonWhitespaceColumn(n.lineNumber)&&e.push({range:new Gy.e(n.lineNumber,1,n.lineNumber,t.getLineMaxColumn(n.lineNumber))})}}]),e}(),JO=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},eI=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"provideSelectionRanges",value:function(t,n){return JO(this,void 0,void 0,ti().mark((function i(){var r,o,a,s;return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r=[],o=(0,tr.Z)(n),i.prev=2,s=ti().mark((function n(){var i,o,s;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i=a.value,o=[],r.push(o),s=new Map,n.next=6,new Promise((function(n){return e._bracketsRightYield(n,0,t,i,s)}));case 6:return n.next=8,new Promise((function(n){return e._bracketsLeftYield(n,0,t,i,s,o)}));case 8:case"end":return n.stop()}}),n)})),o.s();case 5:if((a=o.n()).done){i.next=9;break}return i.delegateYield(s(),"t0",7);case 7:i.next=5;break;case 9:i.next=14;break;case 11:i.prev=11,i.t1=i.catch(2),o.e(i.t1);case 14:return i.prev=14,o.f(),i.finish(14);case 17:return i.abrupt("return",r);case 18:case"end":return i.stop()}}),i,null,[[2,11,14,17]])})))}}],[{key:"_bracketsRightYield",value:function(t,n,i,r,o){for(var a=new Map,s=Date.now();;){if(n>=e._maxRounds){t();break}if(!r){t();break}var u=i.findNextBracket(r);if(!u){t();break}if(Date.now()-s>e._maxDuration){setTimeout((function(){return e._bracketsRightYield(t,n+1,i,r,o)}));break}var l=u.close[0];if(u.isOpen){var c=a.has(l)?a.get(l):0;a.set(l,c+1)}else{var d=a.has(l)?a.get(l):0;if(d-=1,a.set(l,Math.max(0,d)),d<0){var h=o.get(l);h||(h=new gS.S,o.set(l,h)),h.push(u.range)}}r=u.range.getEndPosition()}}},{key:"_bracketsLeftYield",value:function(t,n,i,r,o,a){for(var s=new Map,u=Date.now();;){if(n>=e._maxRounds&&0===o.size){t();break}if(!r){t();break}var l=i.findPrevBracket(r);if(!l){t();break}if(Date.now()-u>e._maxDuration){setTimeout((function(){return e._bracketsLeftYield(t,n+1,i,r,o,a)}));break}var c=l.close[0];if(l.isOpen){var d=s.has(c)?s.get(c):0;if(d-=1,s.set(c,Math.max(0,d)),d<0){var h=o.get(c);if(h){var f=h.shift();0===h.size&&o.delete(c);var p=Gy.e.fromPositions(l.range.getEndPosition(),f.getStartPosition()),g=Gy.e.fromPositions(l.range.getStartPosition(),f.getEndPosition());a.push({range:p}),a.push({range:g}),e._addBracketLeading(i,g,a)}}}else{var v=s.has(c)?s.get(c):0;s.set(c,v+1)}r=l.range.getStartPosition()}}},{key:"_addBracketLeading",value:function(e,t,n){if(t.startLineNumber!==t.endLineNumber){var i=t.startLineNumber,r=e.getLineFirstNonWhitespaceColumn(i);0!==r&&r!==t.startColumn&&(n.push({range:Gy.e.fromPositions(new qy.L(i,r),t.getEndPosition())}),n.push({range:Gy.e.fromPositions(new qy.L(i,1),t.getEndPosition())}));var o=i-1;if(o>0){var a=e.getLineFirstNonWhitespaceColumn(o);a===t.startColumn&&a!==e.getLineLastNonWhitespaceColumn(o)&&(n.push({range:Gy.e.fromPositions(new qy.L(o,a),t.getEndPosition())}),n.push({range:Gy.e.fromPositions(new qy.L(o,1),t.getEndPosition())}))}}}}]),e}();eI._maxDuration=30,eI._maxRounds=2;var tI=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},nI=function(){function e(t,n){(0,i.Z)(this,e),this.index=t,this.ranges=n}return(0,r.Z)(e,[{key:"mov",value:function(t){var n=this.index+(t?1:-1);if(n<0||n>=this.ranges.length)return this;var i=new e(n,this.ranges);return i.ranges[n].equalsRange(this.ranges[this.index])?i.mov(t):i}}]),e}(),iI=function(){function e(t){(0,i.Z)(this,e),this._editor=t,this._ignoreSelection=!1}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;null===(e=this._selectionListener)||void 0===e||e.dispose()}},{key:"run",value:function(e){return tI(this,void 0,void 0,ti().mark((function t(){var n,i,r,o=this;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()){t.next=2;break}return t.abrupt("return");case 2:if(n=this._editor.getSelections(),i=this._editor.getModel(),Zb.AC.has(i)){t.next=6;break}return t.abrupt("return");case 6:if(this._state){t.next=9;break}return t.next=9,uI(i,n.map((function(e){return e.getPosition()})),this._editor.getOption(99),Tb.T.None).then((function(e){var t;if(Ny.Of(e)&&e.length===n.length&&o._editor.hasModel()&&Ny.fS(o._editor.getSelections(),n,(function(e,t){return e.equalsSelection(t)}))){for(var i=function(t){e[t]=e[t].filter((function(e){return e.containsPosition(n[t].getStartPosition())&&e.containsPosition(n[t].getEndPosition())})),e[t].unshift(n[t])},r=0;r<e.length;r++)i(r);o._state=e.map((function(e){return new nI(0,e)})),null===(t=o._selectionListener)||void 0===t||t.dispose(),o._selectionListener=o._editor.onDidChangeCursorPosition((function(){var e;o._ignoreSelection||(null===(e=o._selectionListener)||void 0===e||e.dispose(),o._state=void 0)}))}}));case 9:if(this._state){t.next=11;break}return t.abrupt("return");case 11:this._state=this._state.map((function(t){return t.mov(e)})),r=this._state.map((function(e){return xy.Y.fromPositions(e.ranges[e.index].getStartPosition(),e.ranges[e.index].getEndPosition())})),this._ignoreSelection=!0;try{this._editor.setSelections(r)}finally{this._ignoreSelection=!1}case 15:case"end":return t.stop()}}),t,this)})))}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();iI.ID="editor.contrib.smartSelectController";var rI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r))._forward=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){return tI(this,void 0,void 0,ti().mark((function e(){var n;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=iI.get(t))){e.next=4;break}return e.next=4,n.run(this._forward);case 4:case"end":return e.stop()}}),e,this)})))}}]),n}(Cy.R6),oI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.smartSelect.expand",label:ky.N("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"1_basic",title:ky.N({key:"miSmartSelectGrow",comment:["&& denotes a mnemonic"]},"&&Expand Selection"),order:2}})}return(0,r.Z)(n)}(rI);Vb.P.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");var aI,sI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.smartSelect.shrink",label:ky.N("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:tb.eH.MenubarSelectionMenu,group:"1_basic",title:ky.N({key:"miSmartSelectShrink",comment:["&& denotes a mnemonic"]},"&&Shrink Selection"),order:3}})}return(0,r.Z)(n)}(rI);function uI(e,t,n,i){return tI(this,void 0,void 0,ti().mark((function r(){var o,a,s,u,l,c;return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:1===(o=Zb.AC.all(e)).length&&o.unshift(new eI),a=[],s=[],u=(0,tr.Z)(o);try{for(u.s();!(l=u.n()).done;)c=l.value,a.push(Promise.resolve(c.provideSelectionRanges(e,t,i)).then((function(e){if(Ny.Of(e)&&e.length===t.length)for(var n=0;n<t.length;n++){s[n]||(s[n]=[]);var i,r=(0,tr.Z)(e[n]);try{for(r.s();!(i=r.n()).done;){var o=i.value;Gy.e.isIRange(o.range)&&Gy.e.containsPosition(o.range,t[n])&&s[n].push(Gy.e.lift(o.range))}}catch(a){r.e(a)}finally{r.f()}}}),My.Cp))}catch(d){u.e(d)}finally{u.f()}return r.next=8,Promise.all(a);case 8:return r.abrupt("return",s.map((function(t){if(0===t.length)return[];t.sort((function(e,t){return qy.L.isBefore(e.getStartPosition(),t.getStartPosition())?1:qy.L.isBefore(t.getStartPosition(),e.getStartPosition())||qy.L.isBefore(e.getEndPosition(),t.getEndPosition())?-1:qy.L.isBefore(t.getEndPosition(),e.getEndPosition())?1:0}));var i,r,o=[],a=(0,tr.Z)(t);try{for(a.s();!(r=a.n()).done;){var s=r.value;(!i||Gy.e.containsRange(s,i)&&!Gy.e.equalsRange(s,i))&&(o.push(s),i=s)}}catch(d){a.e(d)}finally{a.f()}if(!n.selectLeadingAndTrailingWhitespace)return o;for(var u=[o[0]],l=1;l<o.length;l++){var c=o[l-1],h=o[l];if(h.startLineNumber!==c.startLineNumber||h.endLineNumber!==c.endLineNumber){var f=new Gy.e(c.startLineNumber,e.getLineFirstNonWhitespaceColumn(c.startLineNumber),c.endLineNumber,e.getLineLastNonWhitespaceColumn(c.endLineNumber));f.containsRange(c)&&!f.equalsRange(c)&&h.containsRange(f)&&!h.equalsRange(f)&&u.push(f);var p=new Gy.e(c.startLineNumber,1,c.endLineNumber,e.getLineMaxColumn(c.endLineNumber));p.containsRange(c)&&!p.equalsRange(f)&&h.containsRange(p)&&!h.equalsRange(p)&&u.push(p)}u.push(h)}return u})));case 9:case"end":return r.stop()}}),r)})))}(0,Cy._K)(iI.ID,iI),(0,Cy.Qr)(oI),(0,Cy.Qr)(sI),Zb.AC.register("*",new XO),(0,Cy.f)("_executeSelectionRangeProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return uI(e,n[0],{selectLeadingAndTrailingWhitespace:!0},Tb.T.None)}));var lI=function(){function e(){(0,i.Z)(this,e),this.value="",this.pos=0}return(0,r.Z)(e,[{key:"text",value:function(e){this.value=e,this.pos=0}},{key:"tokenText",value:function(e){return this.value.substr(e.pos,e.len)}},{key:"next",value:function(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};var t,n=this.pos,i=0,r=this.value.charCodeAt(n);if("number"===typeof(t=e._table[r]))return this.pos+=1,{type:t,pos:n,len:1};if(e.isDigitCharacter(r)){t=8;do{i+=1,r=this.value.charCodeAt(n+i)}while(e.isDigitCharacter(r));return this.pos+=i,{type:t,pos:n,len:i}}if(e.isVariableCharacter(r)){t=9;do{r=this.value.charCodeAt(n+ ++i)}while(e.isVariableCharacter(r)||e.isDigitCharacter(r));return this.pos+=i,{type:t,pos:n,len:i}}t=10;do{i+=1,r=this.value.charCodeAt(n+i)}while(!isNaN(r)&&"undefined"===typeof e._table[r]&&!e.isDigitCharacter(r)&&!e.isVariableCharacter(r));return this.pos+=i,{type:t,pos:n,len:i}}}],[{key:"isDigitCharacter",value:function(e){return e>=48&&e<=57}},{key:"isVariableCharacter",value:function(e){return 95===e||e>=97&&e<=122||e>=65&&e<=90}}]),e}();lI._table=(aI={},(0,ht.Z)(aI,36,0),(0,ht.Z)(aI,58,1),(0,ht.Z)(aI,44,2),(0,ht.Z)(aI,123,3),(0,ht.Z)(aI,125,4),(0,ht.Z)(aI,92,5),(0,ht.Z)(aI,47,6),(0,ht.Z)(aI,124,7),(0,ht.Z)(aI,43,11),(0,ht.Z)(aI,45,12),(0,ht.Z)(aI,63,13),aI);var cI=function(){function e(){(0,i.Z)(this,e),this._children=[]}return(0,r.Z)(e,[{key:"appendChild",value:function(e){return e instanceof dI&&this._children[this._children.length-1]instanceof dI?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}},{key:"replace",value:function(e,t){var n=e.parent,i=n.children.indexOf(e),r=n.children.slice(0);r.splice.apply(r,[i,1].concat((0,zt.Z)(t))),n._children=r,function e(t,n){var i,r=(0,tr.Z)(t);try{for(r.s();!(i=r.n()).done;){var o=i.value;o.parent=n,e(o.children,o)}}catch(a){r.e(a)}finally{r.f()}}(t,n)}},{key:"children",get:function(){return this._children}},{key:"snippet",get:function(){for(var e=this;;){if(!e)return;if(e instanceof bI)return e;e=e.parent}}},{key:"toString",value:function(){return this.children.reduce((function(e,t){return e+t.toString()}),"")}},{key:"len",value:function(){return 0}}]),e}(),dI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).value=e,r}return(0,r.Z)(n,[{key:"toString",value:function(){return this.value}},{key:"len",value:function(){return this.value.length}},{key:"clone",value:function(){return new n(this.value)}}]),n}(cI),hI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n)}(cI),fI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).index=e,r}return(0,r.Z)(n,[{key:"isFinalTabstop",get:function(){return 0===this.index}},{key:"choice",get:function(){return 1===this._children.length&&this._children[0]instanceof pI?this._children[0]:void 0}},{key:"clone",value:function(){var e=new n(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((function(e){return e.clone()})),e}}],[{key:"compareByIndex",value:function(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}}]),n}(hI),pI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments)).options=[],e}return(0,r.Z)(n,[{key:"appendChild",value:function(e){return e instanceof dI&&(e.parent=this,this.options.push(e)),this}},{key:"toString",value:function(){return this.options[0].value}},{key:"len",value:function(){return this.options[0].len()}},{key:"clone",value:function(){var e=new n;return this.options.forEach(e.appendChild,e),e}}]),n}(cI),gI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments)).regexp=new RegExp(""),e}return(0,r.Z)(n,[{key:"resolve",value:function(e){var t=this,n=!1,i=e.replace(this.regexp,(function(){return n=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))}));return!n&&this._children.some((function(e){return e instanceof vI&&Boolean(e.elseValue)}))&&(i=this._replace([])),i}},{key:"_replace",value:function(e){var t,n="",i=(0,tr.Z)(this._children);try{for(i.s();!(t=i.n()).done;){var r=t.value;if(r instanceof vI){var o=e[r.index]||"";n+=o=r.resolve(o)}else n+=r.toString()}}catch(a){i.e(a)}finally{i.f()}return n}},{key:"toString",value:function(){return""}},{key:"clone",value:function(){var e=new n;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map((function(e){return e.clone()})),e}}]),n}(cI),vI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this)).index=e,s.shorthandName=r,s.ifValue=o,s.elseValue=a,s}return(0,r.Z)(n,[{key:"resolve",value:function(e){return"upcase"===this.shorthandName?e?e.toLocaleUpperCase():"":"downcase"===this.shorthandName?e?e.toLocaleLowerCase():"":"capitalize"===this.shorthandName?e?e[0].toLocaleUpperCase()+e.substr(1):"":"pascalcase"===this.shorthandName?e?this._toPascalCase(e):"":Boolean(e)&&"string"===typeof this.ifValue?this.ifValue:Boolean(e)||"string"!==typeof this.elseValue?e||"":this.elseValue}},{key:"_toPascalCase",value:function(e){var t=e.match(/[a-z]+/gi);return t?t.map((function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})).join(""):e}},{key:"clone",value:function(){return new n(this.index,this.shorthandName,this.ifValue,this.elseValue)}}]),n}(cI),mI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).name=e,r}return(0,r.Z)(n,[{key:"resolve",value:function(e){var t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),void 0!==t&&(this._children=[new dI(t)],!0)}},{key:"clone",value:function(){var e=new n(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((function(e){return e.clone()})),e}}]),n}(hI);function _I(e,t){for(var n=(0,zt.Z)(e);n.length>0;){var i=n.shift();if(!t(i))break;n.unshift.apply(n,(0,zt.Z)(i.children))}}var yI,bI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"placeholderInfo",get:function(){if(!this._placeholders){var e,t=[];this.walk((function(n){return n instanceof fI&&(t.push(n),e=!e||e.index<n.index?n:e),!0})),this._placeholders={all:t,last:e}}return this._placeholders}},{key:"placeholders",get:function(){return this.placeholderInfo.all}},{key:"offset",value:function(e){var t=0,n=!1;return this.walk((function(i){return i===e?(n=!0,!1):(t+=i.len(),!0)})),n?t:-1}},{key:"fullLen",value:function(e){var t=0;return _I([e],(function(e){return t+=e.len(),!0})),t}},{key:"enclosingPlaceholders",value:function(e){for(var t=[],n=e.parent;n;)n instanceof fI&&t.push(n),n=n.parent;return t}},{key:"resolveVariables",value:function(e){var t=this;return this.walk((function(n){return n instanceof mI&&n.resolve(e)&&(t._placeholders=void 0),!0})),this}},{key:"appendChild",value:function(e){return this._placeholders=void 0,(0,nw.Z)((0,iw.Z)(n.prototype),"appendChild",this).call(this,e)}},{key:"replace",value:function(e,t){return this._placeholders=void 0,(0,nw.Z)((0,iw.Z)(n.prototype),"replace",this).call(this,e,t)}},{key:"clone",value:function(){var e=new n;return this._children=this.children.map((function(e){return e.clone()})),e}},{key:"walk",value:function(e){_I(this.children,e)}}]),n}(cI),wI=function(){function e(){(0,i.Z)(this,e),this._scanner=new lI,this._token={type:14,pos:0,len:0}}return(0,r.Z)(e,[{key:"parse",value:function(e,t,n){this._scanner.text(e),this._token=this._scanner.next();for(var i=new bI;this._parse(i););var r=new Map,o=[],a=0;i.walk((function(e){return e instanceof fI&&(a+=1,e.isFinalTabstop?r.set(0,void 0):!r.has(e.index)&&e.children.length>0?r.set(e.index,e.children):o.push(e)),!0}));for(var s=0,u=o;s<u.length;s++){var l=u[s],c=r.get(l.index);if(c){var d=new fI(l.index);d.transform=l.transform;var h,f=(0,tr.Z)(c);try{for(f.s();!(h=f.n()).done;){var p=h.value;d.appendChild(p.clone())}}catch(g){f.e(g)}finally{f.f()}i.replace(l,[d])}}return n||(n=a>0&&t),!r.has(0)&&n&&i.appendChild(new fI(0)),i}},{key:"_accept",value:function(e,t){if(void 0===e||this._token.type===e){var n=!t||this._scanner.tokenText(this._token);return this._token=this._scanner.next(),n}return!1}},{key:"_backTo",value:function(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}},{key:"_until",value:function(e){for(var t=this._token;this._token.type!==e;){if(14===this._token.type)return!1;if(5===this._token.type){var n=this._scanner.next();if(0!==n.type&&4!==n.type&&5!==n.type)return!1}this._token=this._scanner.next()}var i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}},{key:"_parse",value:function(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}},{key:"_parseEscaped",value:function(e){var t;return!!(t=this._accept(5,!0))&&(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new dI(t)),!0)}},{key:"_parseTabstopOrVariableName",value:function(e){var t,n=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new fI(Number(t)):new mI(t)),!0):this._backTo(n)}},{key:"_parseComplexPlaceholder",value:function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(n);var i=new fI(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new dI("${"+t+":")),i.children.forEach(e.appendChild,e),!0}else{if(!(i.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(var r=new pI;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(i.appendChild(r),this._accept(4)))return e.appendChild(i),!0}return this._backTo(n),!1}}}},{key:"_parseChoiceElement",value:function(e){for(var t=this._token,n=[];2!==this._token.type&&7!==this._token.type;){var i=void 0;if(!(i=(i=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||i:this._accept(void 0,!0)))return this._backTo(t),!1;n.push(i)}return 0===n.length?(this._backTo(t),!1):(e.appendChild(new dI(n.join(""))),!0)}},{key:"_parseComplexVariable",value:function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(n);var i=new mI(t);if(!this._accept(1))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new dI("${"+t+":")),i.children.forEach(e.appendChild,e),!0}}},{key:"_parseTransform",value:function(e){for(var t=new gI,n="",i="";!this._accept(6);){var r=void 0;if(r=this._accept(5,!0))n+=r=this._accept(6,!0)||r;else{if(14===this._token.type)return!1;n+=this._accept(void 0,!0)}}for(;!this._accept(6);){var o=void 0;if(o=this._accept(5,!0))o=this._accept(5,!0)||this._accept(6,!0)||o,t.appendChild(new dI(o));else if(!this._parseFormatString(t)&&!this._parseAnything(t))return!1}for(;!this._accept(4);){if(14===this._token.type)return!1;i+=this._accept(void 0,!0)}try{t.regexp=new RegExp(n,i)}catch(a){return!1}return e.transform=t,!0}},{key:"_parseFormatString",value:function(e){var t=this._token;if(!this._accept(0))return!1;var n=!1;this._accept(3)&&(n=!0);var i=this._accept(8,!0);if(!i)return this._backTo(t),!1;if(!n)return e.appendChild(new vI(Number(i))),!0;if(this._accept(4))return e.appendChild(new vI(Number(i))),!0;if(!this._accept(1))return this._backTo(t),!1;if(this._accept(6)){var r=this._accept(9,!0);return r&&this._accept(4)?(e.appendChild(new vI(Number(i),r)),!0):(this._backTo(t),!1)}if(this._accept(11)){var o=this._until(4);if(o)return e.appendChild(new vI(Number(i),void 0,o,void 0)),!0}else if(this._accept(12)){var a=this._until(4);if(a)return e.appendChild(new vI(Number(i),void 0,void 0,a)),!0}else if(this._accept(13)){var s=this._until(1);if(s){var u=this._until(4);if(u)return e.appendChild(new vI(Number(i),void 0,s,u)),!0}}else{var l=this._until(4);if(l)return e.appendChild(new vI(Number(i),void 0,void 0,l)),!0}return this._backTo(t),!1}},{key:"_parseAnything",value:function(e){return 14!==this._token.type&&(e.appendChild(new dI(this._scanner.tokenText(this._token))),this._accept(void 0),!0)}}],[{key:"escape",value:function(e){return e.replace(/\$|}|\\/g,"\\$&")}},{key:"guessNeedsClipboard",value:function(e){return/\${?CLIPBOARD/.test(e)}}]),e}(),CI=n(96257),kI=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},SI={Visible:new Ey.uy("suggestWidgetVisible",!1,(0,ky.N)("suggestWidgetVisible","Whether suggestion are visible")),DetailsVisible:new Ey.uy("suggestWidgetDetailsVisible",!1,(0,ky.N)("suggestWidgetDetailsVisible","Whether suggestion details are visible")),MultipleSuggestions:new Ey.uy("suggestWidgetMultipleSuggestions",!1,(0,ky.N)("suggestWidgetMultipleSuggestions","Whether there are multiple suggestions to pick from")),MakesTextEdit:new Ey.uy("suggestionMakesTextEdit",!0,(0,ky.N)("suggestionMakesTextEdit","Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new Ey.uy("acceptSuggestionOnEnter",!0,(0,ky.N)("acceptSuggestionOnEnter","Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new Ey.uy("suggestionHasInsertAndReplaceRange",!1,(0,ky.N)("suggestionHasInsertAndReplaceRange","Whether the current suggestion has insert and replace behaviour")),InsertMode:new Ey.uy("suggestionInsertMode",void 0,{type:"string",description:(0,ky.N)("suggestionInsertMode","Whether the default behaviour is to insert or replace")}),CanResolve:new Ey.uy("suggestionCanResolve",!1,(0,ky.N)("suggestionCanResolve","Whether the current suggestion supports to resolve further details"))},xI=new tb.eH("suggestWidgetStatusBar"),LI=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.position=t,this.completion=n,this.container=r,this.provider=o,this.isInvalid=!1,this.score=Ax.CL.Default,this.distance=0,this.textLabel="string"===typeof n.label?n.label:n.label.name,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=n.sortText&&n.sortText.toLowerCase(),this.filterTextLow=n.filterText&&n.filterText.toLowerCase(),Gy.e.isIRange(n.range)?(this.editStart=new qy.L(n.range.startLineNumber,n.range.startColumn),this.editInsertEnd=new qy.L(n.range.endLineNumber,n.range.endColumn),this.editReplaceEnd=new qy.L(n.range.endLineNumber,n.range.endColumn),this.isInvalid=this.isInvalid||Gy.e.spansMultipleLines(n.range)||n.range.startLineNumber!==t.lineNumber):(this.editStart=new qy.L(n.range.insert.startLineNumber,n.range.insert.startColumn),this.editInsertEnd=new qy.L(n.range.insert.endLineNumber,n.range.insert.endColumn),this.editReplaceEnd=new qy.L(n.range.replace.endLineNumber,n.range.replace.endColumn),this.isInvalid=this.isInvalid||Gy.e.spansMultipleLines(n.range.insert)||Gy.e.spansMultipleLines(n.range.replace)||n.range.insert.startLineNumber!==t.lineNumber||n.range.replace.startLineNumber!==t.lineNumber||n.range.insert.startColumn!==n.range.replace.startColumn),"function"!==typeof o.resolveCompletionItem&&(this._resolveCache=Promise.resolve(),this._isResolved=!0)}return(0,r.Z)(e,[{key:"isResolved",get:function(){return!!this._isResolved}},{key:"resolve",value:function(e){return kI(this,void 0,void 0,ti().mark((function t(){var n,i=this;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this._resolveCache||(n=e.onCancellationRequested((function(){i._resolveCache=void 0,i._isResolved=!1})),this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then((function(e){Object.assign(i.completion,e),i._isResolved=!0,n.dispose()}),(function(e){(0,My.VV)(e)&&(i._resolveCache=void 0,i._isResolved=!1)}))),t.abrupt("return",this._resolveCache);case 2:case"end":return t.stop()}}),t,this)})))}}]),e}(),EI=(0,r.Z)((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;(0,i.Z)(this,e),this.snippetSortOrder=t,this.kindFilter=n,this.providerFilter=r}));EI.default=new EI;var NI=(0,r.Z)((function e(t,n,r,o){(0,i.Z)(this,e),this.items=t,this.needsClipboard=n,this.durations=r,this.disposable=o}));function DI(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:EI.default,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{triggerKind:0},r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Tb.T.None;return kI(this,void 0,void 0,ti().mark((function o(){var a,s,u,l,c,d,h,f,p,g,v,m,_,y,b=this;return ti().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:a=new CI.G(!0),t=t.clone(),s=e.getWordAtPosition(t),u=s?new Gy.e(t.lineNumber,s.startColumn,t.lineNumber,s.endColumn):Gy.e.fromPositions(t),l={replace:u,insert:u.setEndPosition(t.lineNumber,t.column)},c=[],d=new Ky.SL,h=[],f=!1,p=function(e,i,r){var o,a;if(i){var s,u=(0,tr.Z)(i.suggestions);try{for(u.s();!(s=u.n()).done;){var p=s.value;n.kindFilter.has(p.kind)||(p.range||(p.range=l),p.sortText||(p.sortText="string"===typeof p.label?p.label:p.label.name),!f&&p.insertTextRules&&4&p.insertTextRules&&(f=wI.guessNeedsClipboard(p.insertText)),c.push(new LI(t,p,i,e)))}}catch(g){u.e(g)}finally{u.f()}(0,Ky.Wf)(i)&&d.add(i),h.push({providerName:null!==(o=e._debugDisplayName)&&void 0!==o?o:"unkown_provider",elapsedProvider:null!==(a=i.duration)&&void 0!==a?a:-1,elapsedOverall:r.elapsed()})}},g=kI(b,void 0,void 0,ti().mark((function o(){var a,s;return ti().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(yI&&!n.kindFilter.has(27)){o.next=2;break}return o.abrupt("return");case 2:if(!(n.providerFilter.size>0)||n.providerFilter.has(yI)){o.next=4;break}return o.abrupt("return");case 4:return a=new CI.G(!0),o.next=7,yI.provideCompletionItems(e,t,i,r);case 7:s=o.sent,p(yI,s,a);case 9:case"end":return o.stop()}}),o)}))),v=(0,tr.Z)(Zb.KZ.orderedGroups(e)),o.prev=12,v.s();case 14:if((m=v.n()).done){o.next=23;break}return _=m.value,y=c.length,o.next=19,Promise.all(_.map((function(o){return kI(b,void 0,void 0,ti().mark((function a(){var s,u;return ti().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(!(n.providerFilter.size>0)||n.providerFilter.has(o)){a.next=2;break}return a.abrupt("return");case 2:return a.prev=2,s=new CI.G(!0),a.next=6,o.provideCompletionItems(e,t,i,r);case 6:u=a.sent,p(o,u,s),a.next=13;break;case 10:a.prev=10,a.t0=a.catch(2),(0,My.Cp)(a.t0);case 13:case"end":return a.stop()}}),a,null,[[2,10]])})))})));case 19:if(y===c.length&&!r.isCancellationRequested){o.next=21;break}return o.abrupt("break",23);case 21:o.next=14;break;case 23:o.next=28;break;case 25:o.prev=25,o.t0=o.catch(12),v.e(o.t0);case 28:return o.prev=28,v.f(),o.finish(28);case 31:return o.next=33,g;case 33:if(!r.isCancellationRequested){o.next=36;break}return d.dispose(),o.abrupt("return",Promise.reject((0,My.F0)()));case 36:return o.abrupt("return",new NI(c.sort(OI(n.snippetSortOrder)),f,{entries:h,elapsed:a.elapsed()},d));case 37:case"end":return o.stop()}}),o,null,[[12,25,28,31]])})))}function MI(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLow<t.sortTextLow)return-1;if(e.sortTextLow>t.sortTextLow)return 1}return e.completion.label<t.completion.label?-1:e.completion.label>t.completion.label?1:e.completion.kind-t.completion.kind}var TI=new Map;function OI(e){return TI.get(e)}TI.set(0,(function(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return-1;if(27===t.completion.kind)return 1}return MI(e,t)})),TI.set(2,(function(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return 1;if(27===t.completion.kind)return-1}return MI(e,t)})),TI.set(1,MI),Vb.P.registerCommand("_executeCompletionItemProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return kI(void 0,void 0,void 0,ti().mark((function t(){var i,r,o,a,s,u,l,c,d,h,f;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=n[0],r=n[1],o=n[2],a=n[3],(0,cC.p_)(Rb.o.isUri(i)),(0,cC.p_)(qy.L.isIPosition(r)),(0,cC.p_)("string"===typeof o||!o),(0,cC.p_)("number"===typeof a||!a),t.next=7,e.get(Dx.S).createModelReference(i);case 7:return s=t.sent,t.prev=8,u={incomplete:!1,suggestions:[]},l=[],t.next=13,DI(s.object.textEditorModel,qy.L.lift(r),void 0,{triggerCharacter:o,triggerKind:o?1:0});case 13:c=t.sent,d=(0,tr.Z)(c.items);try{for(d.s();!(h=d.n()).done;)f=h.value,l.length<(null!==a&&void 0!==a?a:0)&&l.push(f.resolve(Tb.T.None)),u.incomplete=u.incomplete||f.container.incomplete,u.suggestions.push(f.completion)}catch(p){d.e(p)}finally{d.f()}return t.prev=16,t.next=19,Promise.all(l);case 19:return t.abrupt("return",u);case 20:return t.prev=20,setTimeout((function(){return c.disposable.dispose()}),100),t.finish(20);case 23:return t.prev=23,s.dispose(),t.finish(23);case 26:case"end":return t.stop()}}),t,null,[[8,,23,26],[16,,20,23]])})))}));var II=new(function(){function e(){(0,i.Z)(this,e),this.onlyOnceSuggestions=[]}return(0,r.Z)(e,[{key:"provideCompletionItems",value:function(){var e={suggestions:this.onlyOnceSuggestions.slice(0)};return this.onlyOnceSuggestions.length=0,e}}]),e}());Zb.KZ.register("*",II);var AI=n(37753),RI=n(36912),PI="code-workspace";function ZI(e){var t=e;return"string"===typeof(null===t||void 0===t?void 0:t.id)&&Rb.o.isUri(t.uri)}for(var FI,jI=new Uint8Array(16),HI=[],BI=0;BI<256;BI++)HI.push(BI.toString(16).padStart(2,"0"));FI="object"===typeof crypto&&"function"===typeof crypto.getRandomValues?crypto.getRandomValues.bind(crypto):function(e){for(var t=0;t<e.length;t++)e[t]=Math.floor(256*Math.random());return e};var zI=function(){function e(t){(0,i.Z)(this,e),this._delegates=t}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t,n=(0,tr.Z)(this._delegates);try{for(n.s();!(t=n.n()).done;){var i=t.value.resolve(e);if(void 0!==i)return i}}catch(r){n.e(r)}finally{n.f()}}}]),e}(),WI=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._model=t,this._selection=n,this._selectionIdx=r,this._overtypingCapturer=o}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t=e.name;if("SELECTION"===t||"TM_SELECTED_TEXT"===t){var n=this._model.getValueInRange(this._selection)||void 0,i=this._selection.startLineNumber!==this._selection.endLineNumber;if(!n&&this._overtypingCapturer){var r=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);r&&(n=r.value,i=r.multiline)}if(n&&i&&e.snippet){var o=this._model.getLineContent(this._selection.startLineNumber),a=(0,Ib.V8)(o,0,this._selection.startColumn-1),s=a;e.snippet.walk((function(t){return t!==e&&(t instanceof dI&&(s=(0,Ib.V8)((0,Ib.uq)(t.value).pop())),!0)}));var u=(0,Ib.Mh)(s,a);n=n.replace(/(\r\n|\r|\n)(.*)/g,(function(e,t,n){return"".concat(t).concat(s.substr(u)).concat(n)}))}return n}if("TM_CURRENT_LINE"===t)return this._model.getLineContent(this._selection.positionLineNumber);if("TM_CURRENT_WORD"===t){var l=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return l&&l.word||void 0}return"TM_LINE_INDEX"===t?String(this._selection.positionLineNumber-1):"TM_LINE_NUMBER"===t?String(this._selection.positionLineNumber):void 0}}]),e}(),VI=function(){function e(t,n){(0,i.Z)(this,e),this._labelService=t,this._model=n}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t=e.name;if("TM_FILENAME"===t)return RI.EZ(this._model.uri.fsPath);if("TM_FILENAME_BASE"===t){var n=RI.EZ(this._model.uri.fsPath),i=n.lastIndexOf(".");return i<=0?n:n.slice(0,i)}return"TM_DIRECTORY"===t&&this._labelService?"."===RI.XX(this._model.uri.fsPath)?"":this._labelService.getUriLabel((0,Bw.XX)(this._model.uri)):"TM_FILEPATH"===t&&this._labelService?this._labelService.getUriLabel(this._model.uri):"RELATIVE_FILEPATH"===t&&this._labelService?this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0}):void 0}}]),e}(),YI=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._readClipboardText=t,this._selectionIdx=n,this._selectionCount=r,this._spread=o}return(0,r.Z)(e,[{key:"resolve",value:function(e){if("CLIPBOARD"===e.name){var t=this._readClipboardText();if(t){if(this._spread){var n=t.split(/\r\n|\n|\r/).filter((function(e){return!(0,Ib.m5)(e)}));if(n.length===this._selectionCount)return n[this._selectionIdx]}return t}}}}]),e}(),UI=function(){function e(t,n){(0,i.Z)(this,e),this._model=t,this._selection=n}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t=e.name,n=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),i=QL.zu.getComments(n);if(i)return"LINE_COMMENT"===t?i.lineCommentToken||void 0:"BLOCK_COMMENT_START"===t?i.blockCommentStartToken||void 0:"BLOCK_COMMENT_END"===t&&i.blockCommentEndToken||void 0}}]),e}(),KI=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"resolve",value:function(t){var n=t.name;return"CURRENT_YEAR"===n?String((new Date).getFullYear()):"CURRENT_YEAR_SHORT"===n?String((new Date).getFullYear()).slice(-2):"CURRENT_MONTH"===n?String((new Date).getMonth().valueOf()+1).padStart(2,"0"):"CURRENT_DATE"===n?String((new Date).getDate().valueOf()).padStart(2,"0"):"CURRENT_HOUR"===n?String((new Date).getHours().valueOf()).padStart(2,"0"):"CURRENT_MINUTE"===n?String((new Date).getMinutes().valueOf()).padStart(2,"0"):"CURRENT_SECOND"===n?String((new Date).getSeconds().valueOf()).padStart(2,"0"):"CURRENT_DAY_NAME"===n?e.dayNames[(new Date).getDay()]:"CURRENT_DAY_NAME_SHORT"===n?e.dayNamesShort[(new Date).getDay()]:"CURRENT_MONTH_NAME"===n?e.monthNames[(new Date).getMonth()]:"CURRENT_MONTH_NAME_SHORT"===n?e.monthNamesShort[(new Date).getMonth()]:"CURRENT_SECONDS_UNIX"===n?String(Math.floor(Date.now()/1e3)):void 0}}]),e}();KI.dayNames=[ky.N("Sunday","Sunday"),ky.N("Monday","Monday"),ky.N("Tuesday","Tuesday"),ky.N("Wednesday","Wednesday"),ky.N("Thursday","Thursday"),ky.N("Friday","Friday"),ky.N("Saturday","Saturday")],KI.dayNamesShort=[ky.N("SundayShort","Sun"),ky.N("MondayShort","Mon"),ky.N("TuesdayShort","Tue"),ky.N("WednesdayShort","Wed"),ky.N("ThursdayShort","Thu"),ky.N("FridayShort","Fri"),ky.N("SaturdayShort","Sat")],KI.monthNames=[ky.N("January","January"),ky.N("February","February"),ky.N("March","March"),ky.N("April","April"),ky.N("May","May"),ky.N("June","June"),ky.N("July","July"),ky.N("August","August"),ky.N("September","September"),ky.N("October","October"),ky.N("November","November"),ky.N("December","December")],KI.monthNamesShort=[ky.N("JanuaryShort","Jan"),ky.N("FebruaryShort","Feb"),ky.N("MarchShort","Mar"),ky.N("AprilShort","Apr"),ky.N("MayShort","May"),ky.N("JuneShort","Jun"),ky.N("JulyShort","Jul"),ky.N("AugustShort","Aug"),ky.N("SeptemberShort","Sep"),ky.N("OctoberShort","Oct"),ky.N("NovemberShort","Nov"),ky.N("DecemberShort","Dec")];var qI=function(){function e(t){(0,i.Z)(this,e),this._workspaceService=t}return(0,r.Z)(e,[{key:"resolve",value:function(e){if(this._workspaceService){var t=function(e){return e.configuration?{id:e.id,configPath:e.configuration}:1===e.folders.length?{id:e.id,uri:e.folders[0].uri}:void 0}(this._workspaceService.getWorkspace());if(t)return"WORKSPACE_NAME"===e.name?this._resolveWorkspaceName(t):"WORKSPACE_FOLDER"===e.name?this._resoveWorkspacePath(t):void 0}}},{key:"_resolveWorkspaceName",value:function(e){if(ZI(e))return RI.EZ(e.uri.path);var t=RI.EZ(e.configPath.path);return t.endsWith(PI)&&(t=t.substr(0,t.length-PI.length-1)),t}},{key:"_resoveWorkspacePath",value:function(e){if(ZI(e))return sk(e.uri.fsPath);var t=RI.EZ(e.configPath.path),n=e.configPath.fsPath;return n.endsWith(t)&&(n=n.substr(0,n.length-t.length-1)),n?sk(n):"/"}}]),e}(),GI=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t=e.name;return"RANDOM"===t?Math.random().toString().slice(-6):"RANDOM_HEX"===t?Math.random().toString(16).slice(-6):"UUID"===t?function(){FI(jI),jI[6]=15&jI[6]|64,jI[8]=63&jI[8]|128;var e=0,t="";return t+=HI[jI[e++]],t+=HI[jI[e++]],t+=HI[jI[e++]],t+=HI[jI[e++]],t+="-",t+=HI[jI[e++]],t+=HI[jI[e++]],t+="-",t+=HI[jI[e++]],t+=HI[jI[e++]],t+="-",t+=HI[jI[e++]],t+=HI[jI[e++]],t+="-",t+=HI[jI[e++]],t+=HI[jI[e++]],t+=HI[jI[e++]],t+=HI[jI[e++]],t+=HI[jI[e++]],t+HI[jI[e++]]}():void 0}}]),e}();(0,eb.Ic)((function(e,t){function n(t){var n=e.getColor(t);return n?n.toString():"transparent"}t.addRule(".monaco-editor .snippet-placeholder { background-color: ".concat(n(Jy.u2),"; outline-color: ").concat(n(Jy.Pk),"; }")),t.addRule(".monaco-editor .finish-snippet-placeholder { background-color: ".concat(n(Jy.I1),"; outline-color: ").concat(n(Jy.U6),"; }"))}));var $I=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._editor=t,this._snippet=n,this._offset=r,this._snippetLineLeadingWhitespace=o,this._nestingLevel=1,this._placeholderGroups=(0,Ny.vM)(n.placeholders,fI.compareByIndex),this._placeholderGroupsIdx=-1}return(0,r.Z)(e,[{key:"dispose",value:function(){this._placeholderDecorations&&this._editor.deltaDecorations((0,zt.Z)(this._placeholderDecorations.values()),[]),this._placeholderGroups.length=0}},{key:"_initDecorations",value:function(){var t=this;if(!this._placeholderDecorations){this._placeholderDecorations=new Map;var n=this._editor.getModel();this._editor.changeDecorations((function(i){var r,o=(0,tr.Z)(t._snippet.placeholders);try{for(o.s();!(r=o.n()).done;){var a=r.value,s=t._snippet.offset(a),u=t._snippet.fullLen(a),l=Gy.e.fromPositions(n.getPositionAt(t._offset+s),n.getPositionAt(t._offset+s+u)),c=a.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive,d=i.addDecoration(l,c);t._placeholderDecorations.set(a,d)}}catch(h){o.e(h)}finally{o.f()}}))}}},{key:"move",value:function(t){var n=this;if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){var i,r=[],o=(0,tr.Z)(this._placeholderGroups[this._placeholderGroupsIdx]);try{for(o.s();!(i=o.n()).done;){var a=i.value;if(a.transform){for(var s=this._placeholderDecorations.get(a),u=this._editor.getModel().getDecorationRange(s),l=this._editor.getModel().getValueInRange(u),c=a.transform.resolve(l).split(/\r\n|\r|\n/),d=1;d<c.length;d++)c[d]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+c[d]);r.push($L.h.replace(u,c.join(this._editor.getModel().getEOL())))}}}catch(p){o.e(p)}finally{o.f()}r.length>0&&this._editor.executeEdits("snippet.placeholderTransform",r)}var h=!1;!0===t&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,h=!0):!1===t&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,h=!0);var f=this._editor.getModel().changeDecorations((function(t){var i,r=new Set,o=[],a=(0,tr.Z)(n._placeholderGroups[n._placeholderGroupsIdx]);try{for(a.s();!(i=a.n()).done;){var s=i.value,u=n._placeholderDecorations.get(s),l=n._editor.getModel().getDecorationRange(u);o.push(new xy.Y(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn)),h=h&&n._hasPlaceholderBeenCollapsed(s),t.changeDecorationOptions(u,s.isFinalTabstop?e._decor.activeFinal:e._decor.active),r.add(s);var c,d=(0,tr.Z)(n._snippet.enclosingPlaceholders(s));try{for(d.s();!(c=d.n()).done;){var f=c.value,g=n._placeholderDecorations.get(f);t.changeDecorationOptions(g,f.isFinalTabstop?e._decor.activeFinal:e._decor.active),r.add(f)}}catch(p){d.e(p)}finally{d.f()}}}catch(p){a.e(p)}finally{a.f()}var v,m=(0,tr.Z)(n._placeholderDecorations);try{for(m.s();!(v=m.n()).done;){var _=(0,Ti.Z)(v.value,2),y=_[0],b=_[1];r.has(y)||t.changeDecorationOptions(b,y.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive)}}catch(p){m.e(p)}finally{m.f()}return o}));return h?this.move(t):null!==f&&void 0!==f?f:[]}},{key:"_hasPlaceholderBeenCollapsed",value:function(e){for(var t=e;t;){if(t instanceof fI){var n=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(n).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}},{key:"isAtFirstPlaceholder",get:function(){return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length}},{key:"isAtLastPlaceholder",get:function(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}},{key:"hasPlaceholder",get:function(){return this._snippet.placeholders.length>0}},{key:"computePossibleSelections",value:function(){var e,t=new Map,n=(0,tr.Z)(this._placeholderGroups);try{for(n.s();!(e=n.n()).done;){var i,r=e.value,o=void 0,a=(0,tr.Z)(r);try{for(a.s();!(i=a.n()).done;){var s=i.value;if(s.isFinalTabstop)break;o||(o=[],t.set(s.index,o));var u=this._placeholderDecorations.get(s),l=this._editor.getModel().getDecorationRange(u);if(!l){t.delete(s.index);break}o.push(l)}}catch(c){a.e(c)}finally{a.f()}}}catch(c){n.e(c)}finally{n.f()}return t}},{key:"choice",get:function(){return this._placeholderGroups[this._placeholderGroupsIdx][0].choice}},{key:"merge",value:function(t){var n=this,i=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((function(r){var o,a=(0,tr.Z)(n._placeholderGroups[n._placeholderGroupsIdx]);try{for(a.s();!(o=a.n()).done;){var s=o.value,u=t.shift();console.assert(!u._placeholderDecorations);var l,c=u._snippet.placeholderInfo.last.index,d=(0,tr.Z)(u._snippet.placeholderInfo.all);try{for(d.s();!(l=d.n()).done;){var h=l.value;h.isFinalTabstop?h.index=s.index+(c+1)/n._nestingLevel:h.index=s.index+h.index/n._nestingLevel}}catch(w){d.e(w)}finally{d.f()}n._snippet.replace(s,u._snippet.children);var f=n._placeholderDecorations.get(s);r.removeDecoration(f),n._placeholderDecorations.delete(s);var p,g=(0,tr.Z)(u._snippet.placeholders);try{for(g.s();!(p=g.n()).done;){var v=p.value,m=u._snippet.offset(v),_=u._snippet.fullLen(v),y=Gy.e.fromPositions(i.getPositionAt(u._offset+m),i.getPositionAt(u._offset+m+_)),b=r.addDecoration(y,e._decor.inactive);n._placeholderDecorations.set(v,b)}}catch(w){g.e(w)}finally{g.f()}}}catch(w){a.e(w)}finally{a.f()}n._placeholderGroups=(0,Ny.vM)(n._snippet.placeholders,fI.compareByIndex)}))}}]),e}();$I._decor={active:Qy.qx.register({stickiness:0,className:"snippet-placeholder"}),inactive:Qy.qx.register({stickiness:1,className:"snippet-placeholder"}),activeFinal:Qy.qx.register({stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:Qy.qx.register({stickiness:1,className:"finish-snippet-placeholder"})};var QI={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},XI=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:QI;(0,i.Z)(this,e),this._templateMerges=[],this._snippets=[],this._editor=t,this._template=n,this._options=r}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Ky.B9)(this._snippets)}},{key:"_logInfo",value:function(){return'template="'.concat(this._template,'", merged_templates="').concat(this._templateMerges.join(" -> "),'"')}},{key:"insert",value:function(){var t=this;if(this._editor.hasModel()){var n=e.createEditsAndSnippets(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer),i=n.edits,r=n.snippets;this._snippets=r,this._editor.executeEdits("snippet",i,(function(e){return t._snippets[0].hasPlaceholder?t._move(!0):e.filter((function(e){return!!e.identifier})).map((function(e){return xy.Y.fromPositions(e.range.getEndPosition())}))})),this._editor.revealRange(this._editor.getSelections()[0])}}},{key:"merge",value:function(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:QI;if(this._editor.hasModel()){this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);var r=e.createEditsAndSnippets(this._editor,t,i.overwriteBefore,i.overwriteAfter,!0,i.adjustWhitespace,i.clipboardText,i.overtypingCapturer),o=r.edits,a=r.snippets;this._editor.executeEdits("snippet",o,(function(e){var t,i=(0,tr.Z)(n._snippets);try{for(i.s();!(t=i.n()).done;){t.value.merge(a)}}catch(r){i.e(r)}finally{i.f()}return console.assert(0===a.length),n._snippets[0].hasPlaceholder?n._move(void 0):e.filter((function(e){return!!e.identifier})).map((function(e){return xy.Y.fromPositions(e.range.getEndPosition())}))}))}}},{key:"next",value:function(){var e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}},{key:"prev",value:function(){var e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}},{key:"_move",value:function(e){var t,n=[],i=(0,tr.Z)(this._snippets);try{for(i.s();!(t=i.n()).done;){var r=t.value.move(e);n.push.apply(n,(0,zt.Z)(r))}}catch(o){i.e(o)}finally{i.f()}return n}},{key:"isAtFirstPlaceholder",get:function(){return this._snippets[0].isAtFirstPlaceholder}},{key:"isAtLastPlaceholder",get:function(){return this._snippets[0].isAtLastPlaceholder}},{key:"hasPlaceholder",get:function(){return this._snippets[0].hasPlaceholder}},{key:"choice",get:function(){return this._snippets[0].choice}},{key:"isSelectionWithinPlaceholders",value:function(){if(!this.hasPlaceholder)return!1;var e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;var t,n=new Map,i=(0,tr.Z)(this._snippets);try{var r=function(){var i=t.value.computePossibleSelections();if(0===n.size){var r,o=(0,tr.Z)(i);try{for(o.s();!(r=o.n()).done;){var a=(0,Ti.Z)(r.value,2),s=a[0],u=a[1];u.sort(Gy.e.compareRangesUsingStarts);var l,c=(0,tr.Z)(e);try{for(c.s();!(l=c.n()).done;){var d=l.value;if(u[0].containsRange(d)){n.set(s,[]);break}}}catch(h){c.e(h)}finally{c.f()}}}catch(h){o.e(h)}finally{o.f()}}if(0===n.size)return{v:!1};n.forEach((function(e,t){e.push.apply(e,(0,zt.Z)(i.get(t)))}))};for(i.s();!(t=i.n()).done;){var o=r();if("object"===typeof o)return o.v}}catch(h){i.e(h)}finally{i.f()}e.sort(Gy.e.compareRangesUsingStarts);var a,s=(0,tr.Z)(n);try{for(s.s();!(a=s.n()).done;){var u=(0,Ti.Z)(a.value,2),l=u[0],c=u[1];if(c.length===e.length){c.sort(Gy.e.compareRangesUsingStarts);for(var d=0;d<c.length;d++)c[d].containsRange(e[d])||n.delete(l)}else n.delete(l)}}catch(h){s.e(h)}finally{s.f()}return n.size>0}}],[{key:"adjustWhitespace",value:function(e,t,n,i,r){var o,a=e.getLineContent(t.lineNumber),s=(0,Ib.V8)(a,0,t.column-1);return n.walk((function(t){if(!(t instanceof dI)||t.parent instanceof pI)return!0;var r=t.value.split(/\r\n|\r|\n/);if(i){var a=n.offset(t);if(0===a)r[0]=e.normalizeIndentation(r[0]);else{var u=(o=null!==o&&void 0!==o?o:n.toString()).charCodeAt(a-1);10!==u&&13!==u||(r[0]=e.normalizeIndentation(s+r[0]))}for(var l=1;l<r.length;l++)r[l]=e.normalizeIndentation(s+r[l])}var c=r.join(e.getEOL());return c!==t.value&&(t.parent.replace(t,[new dI(c)]),o=void 0),!0})),s}},{key:"adjustSelection",value:function(e,t,n,i){if(0!==n||0!==i){var r=t,o=r.positionLineNumber,a=r.positionColumn,s=a-n,u=a+i,l=e.validateRange({startLineNumber:o,startColumn:s,endLineNumber:o,endColumn:u});t=xy.Y.createWithDirection(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn,t.getDirection())}return t}},{key:"createEditsAndSnippets",value:function(t,n,i,r,o,a,s,u){var l=[],c=[];if(!t.hasModel())return{edits:l,snippets:c};var d,h=t.getModel(),f=t.invokeWithinContext((function(e){return e.get(AI.ec,cw.jt)})),p=t.invokeWithinContext((function(e){return new VI(e.get(iS.e,cw.jt),h)})),g=function(){return s},v=0,m=h.getValueInRange(e.adjustSelection(h,t.getSelection(),i,0)),_=h.getValueInRange(e.adjustSelection(h,t.getSelection(),0,r)),y=h.getLineFirstNonWhitespaceColumn(t.getSelection().positionLineNumber),b=t.getSelections().map((function(e,t){return{selection:e,idx:t}})).sort((function(e,t){return Gy.e.compareRangesUsingStarts(e.selection,t.selection)})),w=(0,tr.Z)(b);try{for(w.s();!(d=w.n()).done;){var C=d.value,k=C.selection,S=C.idx,x=e.adjustSelection(h,k,i,0),L=e.adjustSelection(h,k,0,r);m!==h.getValueInRange(x)&&(x=k),_!==h.getValueInRange(L)&&(L=k);var E=k.setStartPosition(x.startLineNumber,x.startColumn).setEndPosition(L.endLineNumber,L.endColumn),N=(new wI).parse(n,!0,o),D=E.getStartPosition(),M=e.adjustWhitespace(h,D,N,a||S>0&&y!==h.getLineFirstNonWhitespaceColumn(k.positionLineNumber),!0);N.resolveVariables(new zI([p,new YI(g,S,b.length,"spread"===t.getOption(67)),new WI(h,k,S,u),new UI(h,k),new KI,new qI(f),new GI]));var T=h.getOffsetAt(D)+v;v+=N.toString().length-h.getValueLengthInRange(E),l[S]=$L.h.replace(E,N.toString()),l[S].identifier={major:S,minor:0},c[S]=new $I(t,N,T,M)}}catch(O){w.e(O)}finally{w.f()}return{edits:l,snippets:c}}}]),e}(),JI=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},eA=function(e,t){return function(n,i){t(n,i,e)}},tA={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},nA=function(){function e(t,n,r){(0,i.Z)(this,e),this._editor=t,this._logService=n,this._snippetListener=new Ky.SL,this._modelVersionId=-1,this._inSnippet=e.InSnippetMode.bindTo(r),this._hasNextTabstop=e.HasNextTabstop.bindTo(r),this._hasPrevTabstop=e.HasPrevTabstop.bindTo(r)}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),null===(e=this._session)||void 0===e||e.dispose(),this._snippetListener.dispose()}},{key:"insert",value:function(e,t){try{this._doInsert(e,"undefined"===typeof t?tA:Object.assign(Object.assign({},tA),t))}catch(n){this.cancel(),this._logService.error(n),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}},{key:"_doInsert",value:function(e,t){var n=this;this._editor.hasModel()&&(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session?this._session.merge(e,t):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new XI(this._editor,e,t),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((function(e){return e.isFlush&&n.cancel()}))),this._snippetListener.add(this._editor.onDidChangeModel((function(){return n.cancel()}))),this._snippetListener.add(this._editor.onDidChangeCursorSelection((function(){return n._updateState()}))))}},{key:"_updateState",value:function(){if(this._session&&this._editor.hasModel()){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}},{key:"_handleChoice",value:function(){var e=this;if(this._session&&this._editor.hasModel()){var t,n,i=this._session.choice;if(i){if(this._currentChoice!==i){this._currentChoice=i,this._editor.setSelections(this._editor.getSelections().map((function(e){return xy.Y.fromPositions(e.getStartPosition())})));var r=(0,Ti.Z)(i.options,1)[0];t=this._editor,n=i.options.map((function(t,n){return{kind:13,label:t.value,insertText:t.value,sortText:"a".repeat(n+1),range:Gy.e.fromPositions(e._editor.getPosition(),e._editor.getPosition().delta(0,r.value.length))}})),setTimeout((function(){var e;(e=II.onlyOnceSuggestions).push.apply(e,(0,zt.Z)(n)),t.getContribution("editor.contrib.suggestController").triggerSuggest((new Set).add(II))}),0)}}else this._currentChoice=void 0}else this._currentChoice=void 0}},{key:"finish",value:function(){for(;this._inSnippet.get();)this.next()}},{key:"cancel",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),null===(e=this._session)||void 0===e||e.dispose(),this._session=void 0,this._modelVersionId=-1,t&&this._editor.setSelections([this._editor.getSelection()])}},{key:"prev",value:function(){this._session&&this._session.prev(),this._updateState()}},{key:"next",value:function(){this._session&&this._session.next(),this._updateState()}},{key:"isInSnippet",value:function(){return Boolean(this._inSnippet.get())}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();nA.ID="snippetController2",nA.InSnippetMode=new Ey.uy("inSnippetMode",!1,(0,ky.N)("inSnippetMode","Whether the editor in current in snippet mode")),nA.HasNextTabstop=new Ey.uy("hasNextTabstop",!1,(0,ky.N)("hasNextTabstop","Whether there is a next tab stop when in snippet mode")),nA.HasPrevTabstop=new Ey.uy("hasPrevTabstop",!1,(0,ky.N)("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode")),nA=JI([eA(1,BO.VZ),eA(2,Ey.i6)],nA),(0,Cy._K)(nA.ID,nA);var iA=Cy._l.bindToContribution(nA.get);(0,Cy.fK)(new iA({id:"jumpToNextSnippetPlaceholder",precondition:Ey.Ao.and(nA.InSnippetMode,nA.HasNextTabstop),handler:function(e){return e.next()},kbOpts:{weight:130,kbExpr:Sy.u.editorTextFocus,primary:2}})),(0,Cy.fK)(new iA({id:"jumpToPrevSnippetPlaceholder",precondition:Ey.Ao.and(nA.InSnippetMode,nA.HasPrevTabstop),handler:function(e){return e.prev()},kbOpts:{weight:130,kbExpr:Sy.u.editorTextFocus,primary:1026}})),(0,Cy.fK)(new iA({id:"leaveSnippet",precondition:nA.InSnippetMode,handler:function(e){return e.cancel(!0)},kbOpts:{weight:130,kbExpr:Sy.u.editorTextFocus,primary:9,secondary:[1033]}})),(0,Cy.fK)(new iA({id:"acceptSnippet",precondition:nA.InSnippetMode,handler:function(e){return e.finish()}}));var rA=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},oA=function(e,t){return function(n,i){t(n,i,e)}},aA=function(){function e(t){(0,i.Z)(this,e),this.name=t}return(0,r.Z)(e,[{key:"select",value:function(e,t,n){if(0===n.length)return 0;for(var i=n[0].score[0],r=0;r<n.length;r++){var o=n[r],a=o.score,s=o.completion;if(a[0]!==i)break;if(s.preselect)return r}return 0}}]),e}(),sA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,"first")}return(0,r.Z)(n,[{key:"memorize",value:function(e,t,n){}},{key:"toJSON",value:function(){}},{key:"fromJSON",value:function(){}}]),n}(aA),uA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this,"recentlyUsed"))._cache=new bC.z6(300,.66),e._seq=0,e}return(0,r.Z)(n,[{key:"memorize",value:function(e,t,n){var i="".concat(e.getLanguageIdentifier().language,"/").concat(n.textLabel);this._cache.set(i,{touch:this._seq++,type:n.completion.kind,insertText:n.completion.insertText})}},{key:"select",value:function(e,t,i){if(0===i.length)return 0;var r=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(r))return(0,nw.Z)((0,iw.Z)(n.prototype),"select",this).call(this,e,t,i);for(var o=i[0].score[0],a=-1,s=-1,u=-1,l=0;l<i.length&&i[l].score[0]===o;l++){var c="".concat(e.getLanguageIdentifier().language,"/").concat(i[l].textLabel),d=this._cache.peek(c);if(d&&d.touch>u&&d.type===i[l].completion.kind&&d.insertText===i[l].completion.insertText&&(u=d.touch,s=l),i[l].completion.preselect&&-1===a)return l}return-1!==s?s:-1!==a?a:0}},{key:"toJSON",value:function(){return this._cache.toJSON()}},{key:"fromJSON",value:function(e){this._cache.clear();var t,n=(0,tr.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=(0,Ti.Z)(t.value,2),r=i[0],o=i[1];o.touch=0,o.type="number"===typeof o.type?o.type:(0,Zb.jr)(o.type),this._cache.set(r,o)}}catch(a){n.e(a)}finally{n.f()}this._seq=this._cache.size}}]),n}(aA),lA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this,"recentlyUsedByPrefix"))._trie=bC.Id.forStrings(),e._seq=0,e}return(0,r.Z)(n,[{key:"memorize",value:function(e,t,n){var i=e.getWordUntilPosition(t).word,r="".concat(e.getLanguageIdentifier().language,"/").concat(i);this._trie.set(r,{type:n.completion.kind,insertText:n.completion.insertText,touch:this._seq++})}},{key:"select",value:function(e,t,i){var r=e.getWordUntilPosition(t).word;if(!r)return(0,nw.Z)((0,iw.Z)(n.prototype),"select",this).call(this,e,t,i);var o="".concat(e.getLanguageIdentifier().language,"/").concat(r),a=this._trie.get(o);if(a||(a=this._trie.findSubstr(o)),a)for(var s=0;s<i.length;s++){var u=i[s].completion,l=u.kind,c=u.insertText;if(l===a.type&&c===a.insertText)return s}return(0,nw.Z)((0,iw.Z)(n.prototype),"select",this).call(this,e,t,i)}},{key:"toJSON",value:function(){var e=[];return this._trie.forEach((function(t,n){return e.push([n,t])})),e.sort((function(e,t){return-(e[1].touch-t[1].touch)})).forEach((function(e,t){return e[1].touch=t})),e.slice(0,200)}},{key:"fromJSON",value:function(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;var t,n=(0,tr.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=(0,Ti.Z)(t.value,2),r=i[0],o=i[1];o.type="number"===typeof o.type?o.type:(0,Zb.jr)(o.type),this._trie.set(r,o)}}catch(a){n.e(a)}finally{n.f()}}}}]),n}(aA),cA=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this._storageService=t,this._modeService=n,this._configService=r,this._disposables=new Ky.SL,this._persistSoon=new Uy.pY((function(){return o._saveState()}),500),this._disposables.add(t.onWillSaveState((function(e){e.reason===wC.fk.SHUTDOWN&&o._saveState()})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this._persistSoon.dispose()}},{key:"memorize",value:function(e,t,n){this._withStrategy(e,t).memorize(e,t,n),this._persistSoon.schedule()}},{key:"select",value:function(e,t,n){return this._withStrategy(e,t).select(e,t,n)}},{key:"_withStrategy",value:function(t,n){var i,r,o=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:null===(i=this._modeService.getLanguageIdentifier(t.getLanguageIdAtPosition(n.lineNumber,n.column)))||void 0===i?void 0:i.language,resource:t.uri});if((null===(r=this._strategy)||void 0===r?void 0:r.name)!==o){this._saveState();var a=e._strategyCtors.get(o)||sA;this._strategy=new a;try{var s=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,u=this._storageService.get("".concat(e._storagePrefix,"/").concat(o),s);u&&this._strategy.fromJSON(JSON.parse(u))}catch(l){}}return this._strategy}},{key:"_saveState",value:function(){if(this._strategy){var t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,n=JSON.stringify(this._strategy);this._storageService.store("".concat(e._storagePrefix,"/").concat(this._strategy.name),n,t,1)}}}]),e}();cA._strategyCtors=new Map([["recentlyUsedByPrefix",lA],["recentlyUsed",uA],["first",sA]]),cA._storagePrefix="suggest/memories",cA=rA([oA(0,wC.Uy),oA(1,BC.h),oA(2,ZC.Ui)],cA);var dA=(0,cw.yh)("ISuggestMemories");(0,yC.z)(dA,cA,!0);var hA=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},fA=function(e,t){return function(n,i){t(n,i,e)}},pA=function(){function e(t,n){(0,i.Z)(this,e),this._editor=t,this._index=0,this._ckOtherSuggestions=e.OtherSuggestions.bindTo(n)}return(0,r.Z)(e,[{key:"dispose",value:function(){this.reset()}},{key:"reset",value:function(){var e;this._ckOtherSuggestions.reset(),null===(e=this._listener)||void 0===e||e.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}},{key:"set",value:function(t,n){var i=this,r=t.model,o=t.index;0!==r.items.length?e._moveIndex(!0,r,o)!==o?(this._acceptNext=n,this._model=r,this._index=o,this._listener=this._editor.onDidChangeCursorPosition((function(){i._ignore||i.reset()})),this._ckOtherSuggestions.set(!0)):this.reset():this.reset()}},{key:"next",value:function(){this._move(!0)}},{key:"prev",value:function(){this._move(!1)}},{key:"_move",value:function(t){if(this._model)try{this._ignore=!0,this._index=e._moveIndex(t,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}}],[{key:"_moveIndex",value:function(e,t,n){for(var i=n;(i=(i+t.items.length+(e?1:-1))%t.items.length)!==n&&t.items[i].completion.additionalTextEdits;);return i}}]),e}();pA.OtherSuggestions=new Ey.uy("hasOtherSuggestions",!1),pA=hA([fA(1,Ey.i6)],pA);var gA=function(){function e(t,n,r,o,a,s,u){(0,i.Z)(this,e),this.clipboardText=u,this._snippetCompareFn=e._compareCompletionItems,this._items=t,this._column=n,this._wordDistance=o,this._options=a,this._refilterKind=1,this._lineContext=r,"top"===s?this._snippetCompareFn=e._compareCompletionItemsSnippetsUp:"bottom"===s&&(this._snippetCompareFn=e._compareCompletionItemsSnippetsDown)}return(0,r.Z)(e,[{key:"lineContext",get:function(){return this._lineContext},set:function(e){this._lineContext.leadingLineContent===e.leadingLineContent&&this._lineContext.characterCountDelta===e.characterCountDelta||(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)}},{key:"items",get:function(){return this._ensureCachedState(),this._filteredItems}},{key:"allProvider",get:function(){return this._ensureCachedState(),this._providerInfo.keys()}},{key:"incomplete",get:function(){this._ensureCachedState();var e,t=new Set,n=(0,tr.Z)(this._providerInfo);try{for(n.s();!(e=n.n()).done;){var i=(0,Ti.Z)(e.value,2),r=i[0];i[1]&&t.add(r)}}catch(o){n.e(o)}finally{n.f()}return t}},{key:"adopt",value:function(e){for(var t=[],n=0;n<this._items.length;)e.has(this._items[n].provider)?n++:(t.push(this._items[n]),this._items[n]=this._items[this._items.length-1],this._items.pop());return this._refilterKind=1,t}},{key:"stats",get:function(){return this._ensureCachedState(),this._stats}},{key:"_ensureCachedState",value:function(){0!==this._refilterKind&&this._createCachedState()}},{key:"_createCachedState",value:function(){this._providerInfo=new Map;for(var e=[],t=this._lineContext,n=t.leadingLineContent,i=t.characterCountDelta,r="",o="",a=1===this._refilterKind?this._items:this._filteredItems,s=[],u=!this._options.filterGraceful||a.length>2e3?Ax.EW:Ax.l7,l=0;l<a.length;l++){var c=a[l];if(!c.isInvalid){this._providerInfo.set(c.provider,Boolean(c.container.incomplete));var d=c.position.column-c.editStart.column,h=d+i-(c.position.column-this._column);if(r.length!==h&&(o=(r=0===h?"":n.slice(-h)).toLowerCase()),c.word=r,0===h)c.score=Ax.CL.Default;else{for(var f=0;f<d;){var p=r.charCodeAt(f);if(32!==p&&9!==p)break;f+=1}if(f>=h)c.score=Ax.CL.Default;else if("string"===typeof c.completion.filterText){var g=u(r,o,f,c.completion.filterText,c.filterTextLow,0,!1);if(!g)continue;0===(0,Ib.zY)(c.completion.filterText,c.textLabel)?c.score=g:(c.score=(0,Ax.jB)(r,o,f,c.textLabel,c.labelLow,0),c.score[0]=g[0])}else{var v=u(r,o,f,c.textLabel,c.labelLow,0,!1);if(!v)continue;c.score=v}}c.idx=l,c.distance=this._wordDistance.distance(c.position,c.completion),s.push(c),e.push(c.textLabel.length)}}this._filteredItems=s.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?(0,Ny.HW)(e.length-.85,e,(function(e,t){return e-t})):0}}}],[{key:"_compareCompletionItems",value:function(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:e.idx>t.idx?1:0}},{key:"_compareCompletionItemsSnippetsDown",value:function(t,n){if(t.completion.kind!==n.completion.kind){if(27===t.completion.kind)return 1;if(27===n.completion.kind)return-1}return e._compareCompletionItems(t,n)}},{key:"_compareCompletionItemsSnippetsUp",value:function(t,n){if(t.completion.kind!==n.completion.kind){if(27===t.completion.kind)return-1;if(27===n.completion.kind)return 1}return e._compareCompletionItems(t,n)}}]),e}(),vA=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},mA=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,null,[{key:"create",value:function(t,n){return vA(this,void 0,void 0,ti().mark((function s(){var u,l,c,d,h,f,p;return ti().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:if(n.getOption(103).localityBonus){s.next=2;break}return s.abrupt("return",e.None);case 2:if(n.hasModel()){s.next=4;break}return s.abrupt("return",e.None);case 4:if(u=n.getModel(),l=n.getPosition(),t.canComputeWordRanges(u.uri)){s.next=8;break}return s.abrupt("return",e.None);case 8:return s.next=10,(new eI).provideSelectionRanges(u,[l]);case 10:if(c=s.sent,d=(0,Ti.Z)(c,1),0!==(h=d[0]).length){s.next=15;break}return s.abrupt("return",e.None);case 15:return s.next=17,t.computeWordRanges(u.uri,h[0].range);case 17:if(f=s.sent){s.next=20;break}return s.abrupt("return",e.None);case 20:return p=u.getWordUntilPosition(l),delete f[p.word],s.abrupt("return",new(function(e){(0,o.Z)(s,e);var t=(0,a.Z)(s);function s(){return(0,i.Z)(this,s),t.apply(this,arguments)}return(0,r.Z)(s,[{key:"distance",value:function(e,t){if(!l.equals(n.getPosition()))return 0;if(17===t.kind)return 2<<20;var i="string"===typeof t.label?t.label:t.label.name,r=f[i];if((0,Ny.XY)(r))return 2<<20;var o,a=(0,Ny.ry)(r,Gy.e.fromPositions(e),Gy.e.compareRangesUsingStarts),s=a>=0?r[a]:r[Math.max(0,~a-1)],u=h.length,c=(0,tr.Z)(h);try{for(c.s();!(o=c.n()).done;){var d=o.value;if(!Gy.e.containsRange(d.range,s))break;u-=1}}catch(p){c.e(p)}finally{c.f()}return u}}]),s}(e)));case 23:case"end":return s.stop()}}),s)})))}}]),e}();mA.None=new(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"distance",value:function(){return 0}}]),n}(mA));var _A=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},yA=function(e,t){return function(n,i){t(n,i,e)}},bA=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},wA=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.leadingLineContent=t.getLineContent(n.lineNumber).substr(0,n.column-1),this.leadingWord=t.getWordUntilPosition(n),this.lineNumber=n.lineNumber,this.column=n.column,this.auto=r,this.shy=o}return(0,r.Z)(e,null,[{key:"shouldAutoTrigger",value:function(e){if(!e.hasModel())return!1;var t=e.getModel(),n=e.getPosition();t.tokenizeIfCheap(n.lineNumber);var i=t.getWordAtPosition(n);return!!i&&(i.endColumn===n.column&&!!isNaN(Number(i.word)))}}]),e}(),CA=function(){function e(t,n,r,o,a){var s=this;(0,i.Z)(this,e),this._editor=t,this._editorWorkerService=n,this._clipboardService=r,this._telemetryService=o,this._logService=a,this._toDispose=new Ky.SL,this._quickSuggestDelay=10,this._triggerCharacterListener=new Ky.SL,this._triggerQuickSuggest=new Uy._F,this._state=0,this._completionDisposables=new Ky.SL,this._onDidCancel=new kw.Q5,this._onDidTrigger=new kw.Q5,this._onDidSuggest=new kw.Q5,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new xy.Y(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((function(){s._updateTriggerCharacters(),s.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((function(){s._updateTriggerCharacters(),s.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((function(){s._updateTriggerCharacters(),s._updateQuickSuggest()}))),this._toDispose.add(Zb.KZ.onDidChange((function(){s._updateTriggerCharacters(),s._updateActiveSuggestSession()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((function(e){s._onCursorChange(e)})));var u=!1;this._toDispose.add(this._editor.onDidCompositionStart((function(){u=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((function(){u=!1,s._refilterCompletionItems()}))),this._toDispose.add(this._editor.onDidChangeModelContent((function(){u||s._refilterCompletionItems()}))),this._updateTriggerCharacters(),this._updateQuickSuggest()}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Ky.B9)(this._triggerCharacterListener),(0,Ky.B9)([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}},{key:"_updateQuickSuggest",value:function(){this._quickSuggestDelay=this._editor.getOption(76),(isNaN(this._quickSuggestDelay)||!this._quickSuggestDelay&&0!==this._quickSuggestDelay||this._quickSuggestDelay<0)&&(this._quickSuggestDelay=10)}},{key:"_updateTriggerCharacters",value:function(){var e=this;if(this._triggerCharacterListener.clear(),!this._editor.getOption(77)&&this._editor.hasModel()&&this._editor.getOption(106)){var t,n=new Map,i=(0,tr.Z)(Zb.KZ.all(this._editor.getModel()));try{for(i.s();!(t=i.n()).done;){var r,o=t.value,a=(0,tr.Z)(o.triggerCharacters||[]);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=n.get(s);u||((u=new Set).add(yI),n.set(s,u)),u.add(o)}}catch(c){a.e(c)}finally{a.f()}}}catch(c){i.e(c)}finally{i.f()}var l=function(t){if(!t){var i=e._editor.getPosition();t=e._editor.getModel().getLineContent(i.lineNumber).substr(0,i.column-1)}var r="";(0,Ib.YK)(t.charCodeAt(t.length-1))?(0,Ib.ZG)(t.charCodeAt(t.length-2))&&(r=t.substr(t.length-2)):r=t.charAt(t.length-1);var o=n.get(r);if(o){var a=e._completionModel?{items:e._completionModel.adopt(o),clipboardText:e._completionModel.clipboardText}:void 0;e.trigger({auto:!0,shy:!1,triggerCharacter:r},Boolean(e._completionModel),o,a)}};this._triggerCharacterListener.add(this._editor.onDidType(l)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(l))}}},{key:"state",get:function(){return this._state}},{key:"cancel",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];0!==this._state&&(this._triggerQuickSuggest.cancel(),null===(e=this._requestToken)||void 0===e||e.cancel(),this._requestToken=void 0,this._state=0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:t}))}},{key:"clear",value:function(){this._completionDisposables.clear()}},{key:"_updateActiveSuggestSession",value:function(){0!==this._state&&(this._editor.hasModel()&&Zb.KZ.has(this._editor.getModel())?this.trigger({auto:2===this._state,shy:!1},!0):this.cancel())}},{key:"_onCursorChange",value:function(e){var t=this;if(this._editor.hasModel()){var n=this._editor.getModel(),i=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||0!==e.reason&&3!==e.reason||"keyboard"!==e.source&&"deleteLeft"!==e.source)this.cancel();else if(Zb.KZ.has(n))if(0===this._state&&0===e.reason){if(!1===this._editor.getOption(75))return;if(!i.containsRange(this._currentSelection)&&!i.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))return;if(this._editor.getOption(103).snippetsPreventQuickSuggestions&&nA.get(this._editor).isInSnippet())return;this.cancel(),this._triggerQuickSuggest.cancelAndSet((function(){if(0===t._state&&wA.shouldAutoTrigger(t._editor)&&t._editor.hasModel()){var e=t._editor.getModel(),n=t._editor.getPosition(),i=t._editor.getOption(75);if(!1!==i){if(!0===i);else{e.tokenizeIfCheap(n.lineNumber);var r=e.getLineTokens(n.lineNumber),o=r.getStandardTokenType(r.findTokenIndexAtOffset(Math.max(n.column-1-1,0)));if(!(i.other&&0===o||i.comments&&1===o||i.strings&&2===o))return}t.trigger({auto:!0,shy:!1})}}}),this._quickSuggestDelay)}else 0!==this._state&&3===e.reason&&this._refilterCompletionItems()}}},{key:"_refilterCompletionItems",value:function(){var e=this;Promise.resolve().then((function(){if(0!==e._state&&e._editor.hasModel()){var t=e._editor.getModel(),n=e._editor.getPosition(),i=new wA(t,n,2===e._state,!1);e._onNewContext(i)}}))}},{key:"trigger",value:function(t){var n,i=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0;if(this._editor.hasModel()){var s=this._editor.getModel(),u=t.auto,l=new wA(s,this._editor.getPosition(),u,t.shy);this.cancel(r),this._state=u?2:1,this._onDidTrigger.fire({auto:u,shy:t.shy,position:this._editor.getPosition()}),this._context=l;var c={triggerKind:null!==(n=t.triggerKind)&&void 0!==n?n:0};t.triggerCharacter&&(c={triggerKind:1,triggerCharacter:t.triggerCharacter}),this._requestToken=new Tb.A;var d=this._editor.getOption(98),h=1;switch(d){case"top":h=0;break;case"bottom":h=2}var f=e._createItemKindFilter(this._editor),p=mA.create(this._editorWorkerService,this._editor),g=DI(s,this._editor.getPosition(),new EI(h,f,o),c,this._requestToken.token);Promise.all([g,p]).then((function(e){var n=(0,Ti.Z)(e,2),r=n[0],o=n[1];return bA(i,void 0,void 0,ti().mark((function e(){var n,i,s,l,c,d;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(n=this._requestToken)||void 0===n||n.dispose(),this._editor.hasModel()){e.next=3;break}return e.abrupt("return");case 3:if((i=null===a||void 0===a?void 0:a.clipboardText)||!r.needsClipboard){e.next=8;break}return e.next=7,this._clipboardService.readText();case 7:i=e.sent;case 8:if(0!==this._state){e.next=10;break}return e.abrupt("return");case 10:s=this._editor.getModel(),l=r.items,a&&(c=OI(h),l=l.concat(a.items).sort(c)),d=new wA(s,this._editor.getPosition(),u,t.shy),this._completionModel=new gA(l,this._context.column,{leadingLineContent:d.leadingLineContent,characterCountDelta:d.column-this._context.column},o,this._editor.getOption(103),this._editor.getOption(98),i),this._completionDisposables.add(r.disposable),this._onNewContext(d),this._reportDurationsTelemetry(r.durations);case 18:case"end":return e.stop()}}),e,this)})))})).catch(My.dL)}}},{key:"_reportDurationsTelemetry",value:function(e){var t=this;this._telemetryGate++%230===0&&setTimeout((function(){t._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(e)}),t._logService.debug("suggest.durations.json",e)}))}},{key:"_onNewContext",value:function(e){if(this._context)if(e.lineNumber===this._context.lineNumber)if((0,Ib.V8)(e.leadingLineContent)===(0,Ib.V8)(this._context.leadingLineContent)){if(e.column<this._context.column)e.leadingWord.word?this.trigger({auto:this._context.auto,shy:!1},!0):this.cancel();else if(this._completionModel)if(0!==e.leadingWord.word.length&&e.leadingWord.startColumn>this._context.leadingWord.startColumn){var t,n=new Set(Zb.KZ.all(this._editor.getModel())),i=(0,tr.Z)(this._completionModel.allProvider);try{for(i.s();!(t=i.n()).done;){var r=t.value;n.delete(r)}}catch(c){i.e(c)}finally{i.f()}var o=this._completionModel.adopt(new Set);this.trigger({auto:this._context.auto,shy:!1},!0,n,{items:o,clipboardText:this._completionModel.clipboardText})}else if(e.column>this._context.column&&this._completionModel.incomplete.size>0&&0!==e.leadingWord.word.length){var a=this._completionModel.incomplete,s=this._completionModel.adopt(a);this.trigger({auto:2===this._state,shy:!1,triggerKind:2},!0,a,{items:s,clipboardText:this._completionModel.clipboardText})}else{var u=this._completionModel.lineContext,l=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},0===this._completionModel.items.length){if(wA.shouldAutoTrigger(this._editor)&&this._context.leadingWord.endColumn<e.leadingWord.startColumn)return void this.trigger({auto:this._context.auto,shy:!1},!0);if(this._context.auto)return void this.cancel();if(this._completionModel.lineContext=u,(l=this._completionModel.items.length>0)&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,auto:this._context.auto,shy:this._context.shy,isFrozen:l})}}else this.cancel();else this.cancel()}}],[{key:"_createItemKindFilter",value:function(e){var t=new Set;"none"===e.getOption(98)&&t.add(27);var n=e.getOption(103);return n.showMethods||t.add(0),n.showFunctions||t.add(1),n.showConstructors||t.add(2),n.showFields||t.add(3),n.showVariables||t.add(4),n.showClasses||t.add(5),n.showStructs||t.add(6),n.showInterfaces||t.add(7),n.showModules||t.add(8),n.showProperties||t.add(9),n.showEvents||t.add(10),n.showOperators||t.add(11),n.showUnits||t.add(12),n.showValues||t.add(13),n.showConstants||t.add(14),n.showEnums||t.add(15),n.showEnumMembers||t.add(16),n.showKeywords||t.add(17),n.showWords||t.add(18),n.showColors||t.add(19),n.showFiles||t.add(20),n.showReferences||t.add(21),n.showColors||t.add(22),n.showFolders||t.add(23),n.showTypeParameters||t.add(24),n.showSnippets||t.add(27),n.showUsers||t.add(25),n.showIssues||t.add(26),t}}]),e}();CA=_A([yA(1,aM.p),yA(2,_b.p),yA(3,Hw.b),yA(4,BO.VZ)],CA);n(22410);var kA=(0,Jy.P6)("symbolIcon.arrayForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),SA=(0,Jy.P6)("symbolIcon.booleanForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),xA=(0,Jy.P6)("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},(0,ky.N)("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),LA=(0,Jy.P6)("symbolIcon.colorForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),EA=(0,Jy.P6)("symbolIcon.constantForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),NA=(0,Jy.P6)("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},(0,ky.N)("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),DA=(0,Jy.P6)("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},(0,ky.N)("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),MA=(0,Jy.P6)("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,ky.N)("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),TA=(0,Jy.P6)("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},(0,ky.N)("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),OA=(0,Jy.P6)("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,ky.N)("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),IA=(0,Jy.P6)("symbolIcon.fileForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),AA=(0,Jy.P6)("symbolIcon.folderForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),RA=(0,Jy.P6)("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},(0,ky.N)("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),PA=(0,Jy.P6)("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,ky.N)("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),ZA=(0,Jy.P6)("symbolIcon.keyForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),FA=(0,Jy.P6)("symbolIcon.keywordForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),jA=(0,Jy.P6)("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},(0,ky.N)("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),HA=(0,Jy.P6)("symbolIcon.moduleForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),BA=(0,Jy.P6)("symbolIcon.namespaceForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),zA=(0,Jy.P6)("symbolIcon.nullForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),WA=(0,Jy.P6)("symbolIcon.numberForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),VA=(0,Jy.P6)("symbolIcon.objectForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),YA=(0,Jy.P6)("symbolIcon.operatorForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),UA=(0,Jy.P6)("symbolIcon.packageForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),KA=(0,Jy.P6)("symbolIcon.propertyForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),qA=(0,Jy.P6)("symbolIcon.referenceForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),GA=(0,Jy.P6)("symbolIcon.snippetForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),$A=(0,Jy.P6)("symbolIcon.stringForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),QA=(0,Jy.P6)("symbolIcon.structForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),XA=(0,Jy.P6)("symbolIcon.textForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),JA=(0,Jy.P6)("symbolIcon.typeParameterForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),eR=(0,Jy.P6)("symbolIcon.unitForeground",{dark:Jy.dR,light:Jy.dR,hc:Jy.dR},(0,ky.N)("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),tR=(0,Jy.P6)("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,ky.N)("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));(0,eb.Ic)((function(e,t){var n=e.getColor(kA);n&&t.addRule("".concat(xw.lA.symbolArray.cssSelector," { color: ").concat(n,"; }"));var i=e.getColor(SA);i&&t.addRule("".concat(xw.lA.symbolBoolean.cssSelector," { color: ").concat(i,"; }"));var r=e.getColor(xA);r&&t.addRule("".concat(xw.lA.symbolClass.cssSelector," { color: ").concat(r,"; }"));var o=e.getColor(jA);o&&t.addRule("".concat(xw.lA.symbolMethod.cssSelector," { color: ").concat(o,"; }"));var a=e.getColor(LA);a&&t.addRule("".concat(xw.lA.symbolColor.cssSelector," { color: ").concat(a,"; }"));var s=e.getColor(EA);s&&t.addRule("".concat(xw.lA.symbolConstant.cssSelector," { color: ").concat(s,"; }"));var u=e.getColor(NA);u&&t.addRule("".concat(xw.lA.symbolConstructor.cssSelector," { color: ").concat(u,"; }"));var l=e.getColor(DA);l&&t.addRule("\n\t\t\t".concat(xw.lA.symbolValue.cssSelector,",").concat(xw.lA.symbolEnum.cssSelector," { color: ").concat(l,"; }"));var c=e.getColor(MA);c&&t.addRule("".concat(xw.lA.symbolEnumMember.cssSelector," { color: ").concat(c,"; }"));var d=e.getColor(TA);d&&t.addRule("".concat(xw.lA.symbolEvent.cssSelector," { color: ").concat(d,"; }"));var h=e.getColor(OA);h&&t.addRule("".concat(xw.lA.symbolField.cssSelector," { color: ").concat(h,"; }"));var f=e.getColor(IA);f&&t.addRule("".concat(xw.lA.symbolFile.cssSelector," { color: ").concat(f,"; }"));var p=e.getColor(AA);p&&t.addRule("".concat(xw.lA.symbolFolder.cssSelector," { color: ").concat(p,"; }"));var g=e.getColor(RA);g&&t.addRule("".concat(xw.lA.symbolFunction.cssSelector," { color: ").concat(g,"; }"));var v=e.getColor(PA);v&&t.addRule("".concat(xw.lA.symbolInterface.cssSelector," { color: ").concat(v,"; }"));var m=e.getColor(ZA);m&&t.addRule("".concat(xw.lA.symbolKey.cssSelector," { color: ").concat(m,"; }"));var _=e.getColor(FA);_&&t.addRule("".concat(xw.lA.symbolKeyword.cssSelector," { color: ").concat(_,"; }"));var y=e.getColor(HA);y&&t.addRule("".concat(xw.lA.symbolModule.cssSelector," { color: ").concat(y,"; }"));var b=e.getColor(BA);b&&t.addRule("".concat(xw.lA.symbolNamespace.cssSelector," { color: ").concat(b,"; }"));var w=e.getColor(zA);w&&t.addRule("".concat(xw.lA.symbolNull.cssSelector," { color: ").concat(w,"; }"));var C=e.getColor(WA);C&&t.addRule("".concat(xw.lA.symbolNumber.cssSelector," { color: ").concat(C,"; }"));var k=e.getColor(VA);k&&t.addRule("".concat(xw.lA.symbolObject.cssSelector," { color: ").concat(k,"; }"));var S=e.getColor(YA);S&&t.addRule("".concat(xw.lA.symbolOperator.cssSelector," { color: ").concat(S,"; }"));var x=e.getColor(UA);x&&t.addRule("".concat(xw.lA.symbolPackage.cssSelector," { color: ").concat(x,"; }"));var L=e.getColor(KA);L&&t.addRule("".concat(xw.lA.symbolProperty.cssSelector," { color: ").concat(L,"; }"));var E=e.getColor(qA);E&&t.addRule("".concat(xw.lA.symbolReference.cssSelector," { color: ").concat(E,"; }"));var N=e.getColor(GA);N&&t.addRule("".concat(xw.lA.symbolSnippet.cssSelector," { color: ").concat(N,"; }"));var D=e.getColor($A);D&&t.addRule("".concat(xw.lA.symbolString.cssSelector," { color: ").concat(D,"; }"));var M=e.getColor(QA);M&&t.addRule("".concat(xw.lA.symbolStruct.cssSelector," { color: ").concat(M,"; }"));var T=e.getColor(XA);T&&t.addRule("".concat(xw.lA.symbolText.cssSelector," { color: ").concat(T,"; }"));var O=e.getColor(JA);O&&t.addRule("".concat(xw.lA.symbolTypeParameter.cssSelector," { color: ").concat(O,"; }"));var I=e.getColor(eR);I&&t.addRule("".concat(xw.lA.symbolUnit.cssSelector," { color: ").concat(I,"; }"));var A=e.getColor(tR);A&&t.addRule("".concat(xw.lA.symbolVariable.cssSelector," { color: ").concat(A,"; }"))}));var nR=n(92814),iR=function(){function e(){var t,n=this;(0,i.Z)(this,e),this._onDidWillResize=new kw.Q5,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new kw.Q5,this.onDidResize=this._onDidResize.event,this._sashListener=new Ky.SL,this._size=new dw.Dimension(0,0),this._minSize=new dw.Dimension(0,0),this._maxSize=new dw.Dimension(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new pk.g(this.domNode,{getVerticalSashLeft:function(){return n._size.width}},{orientation:0}),this._westSash=new pk.g(this.domNode,{getVerticalSashLeft:function(){return 0}},{orientation:0}),this._northSash=new pk.g(this.domNode,{getHorizontalSashTop:function(){return 0}},{orientation:1,orthogonalEdge:pk.l.North}),this._southSash=new pk.g(this.domNode,{getHorizontalSashTop:function(){return n._size.height}},{orientation:1,orthogonalEdge:pk.l.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;var r=0,o=0;this._sashListener.add(kw.ju.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)((function(){void 0===t&&(n._onDidWillResize.fire(),t=n._size,r=0,o=0)}))),this._sashListener.add(kw.ju.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)((function(){void 0!==t&&(t=void 0,r=0,o=0,n._onDidResize.fire({dimension:n._size,done:!0}))}))),this._sashListener.add(this._eastSash.onDidChange((function(e){t&&(o=e.currentX-e.startX,n.layout(t.height+r,t.width+o),n._onDidResize.fire({dimension:n._size,done:!1,east:!0}))}))),this._sashListener.add(this._westSash.onDidChange((function(e){t&&(o=-(e.currentX-e.startX),n.layout(t.height+r,t.width+o),n._onDidResize.fire({dimension:n._size,done:!1,west:!0}))}))),this._sashListener.add(this._northSash.onDidChange((function(e){t&&(r=-(e.currentY-e.startY),n.layout(t.height+r,t.width+o),n._onDidResize.fire({dimension:n._size,done:!1,north:!0}))}))),this._sashListener.add(this._southSash.onDidChange((function(e){t&&(r=e.currentY-e.startY,n.layout(t.height+r,t.width+o),n._onDidResize.fire({dimension:n._size,done:!1,south:!0}))}))),this._sashListener.add(kw.ju.any(this._eastSash.onDidReset,this._westSash.onDidReset)((function(e){n._preferredSize&&(n.layout(n._size.height,n._preferredSize.width),n._onDidResize.fire({dimension:n._size,done:!0}))}))),this._sashListener.add(kw.ju.any(this._northSash.onDidReset,this._southSash.onDidReset)((function(e){n._preferredSize&&(n.layout(n._preferredSize.height,n._size.width),n._onDidResize.fire({dimension:n._size,done:!0}))})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this.domNode.remove()}},{key:"enableSashes",value:function(e,t,n,i){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=n?3:0,this._westSash.state=i?3:0}},{key:"layout",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.size.height,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.size.width,n=this._minSize,i=n.height,r=n.width,o=this._maxSize,a=o.height,s=o.width;e=Math.max(i,Math.min(a,e)),t=Math.max(r,Math.min(s,t));var u=new dw.Dimension(t,e);dw.Dimension.equals(u,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=u,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}},{key:"clearSashHoverState",value:function(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}},{key:"size",get:function(){return this._size}},{key:"maxSize",get:function(){return this._maxSize},set:function(e){this._maxSize=e}},{key:"minSize",get:function(){return this._minSize},set:function(e){this._minSize=e}},{key:"preferredSize",get:function(){return this._preferredSize},set:function(e){this._preferredSize=e}}]),e}(),rR=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},oR=function(e,t){return function(n,i){t(n,i,e)}};function aR(e){return!!e&&Boolean(e.completion.documentation||e.completion.detail&&e.completion.detail!==e.completion.label)}var sR=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._editor=t,this._onDidClose=new kw.Q5,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new kw.Q5,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new Ky.SL,this._renderDisposeable=new Ky.SL,this._borderWidth=1,this._size=new dw.Dimension(330,0),this.domNode=dw.$(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=n.createInstance(ex,{editor:t}),this._body=dw.$(".body"),this._scrollbar=new JC.s$(this._body,{}),dw.append(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=dw.append(this._body,dw.$(".header")),this._close=dw.append(this._header,dw.$("span"+xw.lA.close.cssSelector)),this._close.title=ky.N("details.close","Close"),this._type=dw.append(this._header,dw.$("p.type")),this._docs=dw.append(this._body,dw.$("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&r._configureFont()})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this._renderDisposeable.dispose()}},{key:"_configureFont",value:function(){var e=this._editor.getOptions(),t=e.get(40),n=t.fontFamily,i=e.get(104)||t.fontSize,r=e.get(105)||t.lineHeight,o=t.fontWeight,a="".concat(i,"px"),s="".concat(r,"px");this.domNode.style.fontSize=a,this.domNode.style.lineHeight=s,this.domNode.style.fontWeight=o,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=n,this._close.style.height=s,this._close.style.width=s}},{key:"getLayoutInfo",value:function(){var e=this._editor.getOption(105)||this._editor.getOption(40).lineHeight,t=this._borderWidth;return{lineHeight:e,borderWidth:t,borderHeight:2*t,verticalPadding:22,horizontalPadding:14}}},{key:"renderLoading",value:function(){this._type.textContent=ky.N("loading","Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,2*this.getLayoutInfo().lineHeight),this._onDidChangeContents.fire(this)}},{key:"renderItem",value:function(e,t){var n,i,r=this;this._renderDisposeable.clear();var o=e.completion,a=o.detail,s=o.documentation;if(t){var u="";u+="score: ".concat(e.score[0],"\n"),u+="prefix: ".concat(null!==(n=e.word)&&void 0!==n?n:"(no prefix)","\n"),u+="word: ".concat(e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel,"\n"),u+="distance: ".concat(e.distance," (localityBonus-setting)\n"),u+="index: ".concat(e.idx,", based on ").concat(e.completion.sortText&&'sortText: "'.concat(e.completion.sortText,'"')||"label","\n"),u+="commit_chars: ".concat(null===(i=e.completion.commitCharacters)||void 0===i?void 0:i.join(""),"\n"),s=(new Ty).appendCodeblock("empty",u),a="Provider: ".concat(e.provider._debugDisplayName)}if(t||aR(e)){if(this.domNode.classList.remove("no-docs","no-type"),a){var l=a.length>1e5?"".concat(a.substr(0,1e5),"\u2026"):a;this._type.textContent=l,this._type.title=l,dw.show(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gim.test(l))}else dw.clearNode(this._type),this._type.title="",dw.hide(this._type),this.domNode.classList.add("no-type");if(dw.clearNode(this._docs),"string"===typeof s)this._docs.classList.remove("markdown-docs"),this._docs.textContent=s;else if(s){this._docs.classList.add("markdown-docs"),dw.clearNode(this._docs);var c=this._markdownRenderer.render(s);this._docs.appendChild(c.element),this._renderDisposeable.add(c),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync((function(){r.layout(r._size.width,r._type.clientHeight+r._docs.clientHeight),r._onDidChangeContents.fire(r)})))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=function(e){e.preventDefault(),e.stopPropagation()},this._close.onclick=function(e){e.preventDefault(),e.stopPropagation(),r._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}else this.clearContents()}},{key:"clearContents",value:function(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}},{key:"size",get:function(){return this._size}},{key:"layout",value:function(e,t){var n=new dw.Dimension(e,t);dw.Dimension.equals(n,this._size)||(this._size=n,dw.size(this.domNode,e,t)),this._scrollbar.scanDomNode()}},{key:"scrollDown",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;this._body.scrollTop+=e}},{key:"scrollUp",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;this._body.scrollTop-=e}},{key:"scrollTop",value:function(){this._body.scrollTop=0}},{key:"scrollBottom",value:function(){this._body.scrollTop=this._body.scrollHeight}},{key:"pageDown",value:function(){this.scrollDown(80)}},{key:"pageUp",value:function(){this.scrollUp(80)}},{key:"borderWidth",get:function(){return this._borderWidth},set:function(e){this._borderWidth=e}}]),e}();sR=rR([oR(1,cw.TG)],sR);var uR=function(){function e(t,n){var r,o,a=this;(0,i.Z)(this,e),this.widget=t,this._editor=n,this._disposables=new Ky.SL,this._added=!1,this._resizable=new iR,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(t.domNode),this._resizable.enableSashes(!1,!0,!0,!1);var s=0,u=0;this._disposables.add(this._resizable.onDidWillResize((function(){r=a._topLeft,o=a._resizable.size}))),this._disposables.add(this._resizable.onDidResize((function(e){if(r&&o){a.widget.layout(e.dimension.width,e.dimension.height);var t=!1;e.west&&(u=o.width-e.dimension.width,t=!0),e.north&&(s=o.height-e.dimension.height,t=!0),t&&a._applyTopLeft({top:r.top+s,left:r.left+u})}e.done&&(r=void 0,o=void 0,s=0,u=0,a._userSize=e.dimension)}))),this._disposables.add(this.widget.onDidChangeContents((function(){var e;a._anchorBox&&a._placeAtAnchor(a._anchorBox,null!==(e=a._userSize)&&void 0!==e?e:a.widget.size)})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this.hide()}},{key:"getId",value:function(){return"suggest.details"}},{key:"getDomNode",value:function(){return this._resizable.domNode}},{key:"getPosition",value:function(){return null}},{key:"show",value:function(){this._added||(this._editor.addOverlayWidget(this),this.getDomNode().style.position="fixed",this._added=!0)}},{key:"hide",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}},{key:"placeAtAnchor",value:function(e){var t,n=dw.getDomNodePagePosition(e);this._anchorBox=n,this._placeAtAnchor(this._anchorBox,null!==(t=this._userSize)&&void 0!==t?t:this.widget.size)}},{key:"_placeAtAnchor",value:function(e,t){var n,i,r,o,a=dw.getClientArea(document.body),s=this.widget.getLayoutInfo(),u=new dw.Dimension(220,2*s.lineHeight),l=0,c=e.top,d=e.top+e.height-s.borderHeight,h=a.width-(e.left+e.width+s.borderWidth+s.horizontalPadding);l=-s.borderWidth+e.left+e.width,o=!0,i=(n=new dw.Dimension(h,a.height-e.top-s.borderHeight-s.verticalPadding)).with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding),t.width>h&&(e.left>h&&(h=e.left-s.borderWidth-s.horizontalPadding,o=!1,l=Math.max(s.horizontalPadding,e.left-t.width-s.borderWidth),i=(n=n.with(h)).with(void 0,i.height)),e.width>1.3*h&&a.height-(e.top+e.height)>e.height&&(h=e.width,l=e.left,c=-s.borderWidth+e.top+e.height,i=(n=new dw.Dimension(e.width-s.borderHeight,a.height-e.top-e.height-s.verticalPadding)).with(void 0,e.top-s.verticalPadding),u=u.with(n.width)));var f,p=t.height,g=Math.max(n.height,i.height);p>g&&(p=g),p<=n.height?(r=!0,f=n):(r=!1,f=i),this._applyTopLeft({left:l,top:r?c:d-p}),this.getDomNode().style.position="fixed",this._resizable.enableSashes(!r,o,r,!o),this._resizable.minSize=u,this._resizable.maxSize=f,this._resizable.layout(p,Math.min(f.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}},{key:"_applyTopLeft",value:function(e){this._topLeft=e,this.getDomNode().style.left="".concat(this._topLeft.left,"px"),this.getDomNode().style.top="".concat(this._topLeft.top,"px")}}]),e}(),lR=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},cR=function(e,t){return function(n,i){t(n,i,e)}},dR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"updateLabel",value:function(){var e=this._keybindingService.lookupKeybinding(this._action.id);if(!e)return(0,nw.Z)((0,iw.Z)(n.prototype),"updateLabel",this).call(this);this.label&&(this.label.textContent=(0,ky.N)("ddd","{0} ({1})",this._action.label,n.symbolPrintEnter(e)))}}],[{key:"symbolPrintEnter",value:function(e){var t;return null===(t=e.getLabel())||void 0===t?void 0:t.replace(/\benter\b/gi,"\u23ce")}}]),n}(Tk),hR=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._menuService=r,this._contextKeyService=o,this._menuDisposables=new Ky.SL,this.element=dw.append(t,dw.$(".suggest-status-bar"));var a=function(e){return e instanceof tb.U8?n.createInstance(dR,e):void 0};this._leftActions=new uk.o(this.element,{actionViewItemProvider:a}),this._rightActions=new uk.o(this.element,{actionViewItemProvider:a}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}return(0,r.Z)(e,[{key:"dispose",value:function(){this._menuDisposables.dispose(),this.element.remove()}},{key:"show",value:function(){var e=this,t=this._menuService.createMenu(xI,this._contextKeyService);this._menuDisposables.add(t.onDidChange((function(){return function(){var n,i=[],r=[],o=(0,tr.Z)(t.getActions());try{for(o.s();!(n=o.n()).done;){var a=(0,Ti.Z)(n.value,2),s=a[0],u=a[1];"left"===s?i.push.apply(i,(0,zt.Z)(u)):r.push.apply(r,(0,zt.Z)(u))}}catch(l){o.e(l)}finally{o.f()}e._leftActions.clear(),e._leftActions.push(i),e._rightActions.clear(),e._rightActions.push(r)}()}))),this._menuDisposables.add(t)}},{key:"hide",value:function(){this._menuDisposables.clear()}}]),e}();hR=lR([cR(1,cw.TG),cR(2,tb.co),cR(3,Ey.i6)],hR);var fR,pR=n(54970);function gR(e,t,n,i){var r=i===fR.ROOT_FOLDER?["rootfolder-icon"]:i===fR.FOLDER?["folder-icon"]:["file-icon"];if(n){var o;if(n.scheme===rk.lg.data)o=Bw.Vb.parseMetaData(n).get(Bw.Vb.META_DATA_LABEL);else o=vR((0,Bw.Hx)(n).toLowerCase());if(i===fR.FOLDER)r.push("".concat(o,"-name-folder-icon"));else{if(o){if(r.push("".concat(o,"-name-file-icon")),o.length<=255)for(var a=o.split("."),s=1;s<a.length;s++)r.push("".concat(a.slice(s).join("."),"-ext-file-icon"));r.push("ext-file-icon")}var u=function(e,t,n){if(!n)return null;var i=null;if(n.scheme===rk.lg.data){var r=Bw.Vb.parseMetaData(n).get(Bw.Vb.META_DATA_MIME);r&&(i=t.getModeId(r))}else{var o=e.getModel(n);o&&(i=o.getModeId())}if(i&&i!==pR.XT)return i;return t.getModeIdByFilepathOrFirstLine(n)}(e,t,n);u&&r.push("".concat(vR(u),"-lang-file-icon"))}}return r}function vR(e){return e.replace(/[\11\12\14\15\40]/g,"/")}!function(e){e[e.FILE=0]="FILE",e[e.FOLDER=1]="FOLDER",e[e.ROOT_FOLDER=2]="ROOT_FOLDER"}(fR||(fR={}));var mR,_R=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},yR=function(e,t){return function(n,i){t(n,i,e)}};function bR(e){return"suggest-aria-id:".concat(e)}var wR=(0,CS.q5)("suggest-more-info",xw.lA.chevronRight,ky.N("suggestMoreInfoIcon","Icon for more information in the suggest widget.")),CR=new(mR=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"extract",value:function(t,n){if(t.textLabel.match(e._regexStrict))return n[0]=t.textLabel,!0;if(t.completion.detail&&t.completion.detail.match(e._regexStrict))return n[0]=t.completion.detail,!0;if("string"===typeof t.completion.documentation){var i=e._regexRelaxed.exec(t.completion.documentation);if(i&&(0===i.index||i.index+i[0].length===t.completion.documentation.length))return n[0]=i[0],!0}return!1}}]),e}(),mR._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,mR._regexStrict=new RegExp("^".concat(mR._regexRelaxed.source,"$"),"i"),mR),kR=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._editor=t,this._modelService=n,this._modeService=r,this._themeService=o,this._onDidToggleDetails=new kw.Q5,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}return(0,r.Z)(e,[{key:"dispose",value:function(){this._onDidToggleDetails.dispose()}},{key:"renderTemplate",value:function(e){var t=this,n=Object.create(null);n.disposables=new Ky.SL,n.root=e,n.root.classList.add("show-file-icons"),n.icon=(0,dw.append)(e,(0,dw.$)(".icon")),n.colorspan=(0,dw.append)(n.icon,(0,dw.$)("span.colorspan"));var i=(0,dw.append)(e,(0,dw.$)(".contents")),r=(0,dw.append)(i,(0,dw.$)(".main"));n.iconContainer=(0,dw.append)(r,(0,dw.$)(".icon-label.codicon")),n.left=(0,dw.append)(r,(0,dw.$)("span.left")),n.right=(0,dw.append)(r,(0,dw.$)("span.right")),n.iconLabel=new Tx.g(n.left,{supportHighlights:!0,supportIcons:!0}),n.disposables.add(n.iconLabel),n.parametersLabel=(0,dw.append)(n.left,(0,dw.$)("span.signature-label")),n.qualifierLabel=(0,dw.append)(n.left,(0,dw.$)("span.qualifier-label")),n.detailsLabel=(0,dw.append)(n.right,(0,dw.$)("span.details-label")),n.readMore=(0,dw.append)(n.right,(0,dw.$)("span.readMore"+eb.kS.asCSSSelector(wR))),n.readMore.title=ky.N("readMore","Read More");var o=function(){var e=t._editor.getOptions(),i=e.get(40),o=i.fontFamily,a=i.fontFeatureSettings,s=e.get(104)||i.fontSize,u=e.get(105)||i.lineHeight,l=i.fontWeight,c="".concat(s,"px"),d="".concat(u,"px");n.root.style.fontSize=c,n.root.style.fontWeight=l,r.style.fontFamily=o,r.style.fontFeatureSettings=a,r.style.lineHeight=d,n.icon.style.height=d,n.icon.style.width=d,n.readMore.style.height=d,n.readMore.style.width=d};return o(),n.disposables.add(this._editor.onDidChangeConfiguration((function(e){(e.hasChanged(40)||e.hasChanged(104)||e.hasChanged(105))&&o()}))),n}},{key:"renderElement",value:function(e,t,n){var i,r,o,a=this,s=e.completion;n.root.id=bR(t),n.colorspan.style.backgroundColor="";var u={labelEscapeNewLines:!0,matches:(0,Ax.mB)(e.score)},l=[];if(19===s.kind&&CR.extract(e,l))n.icon.className="icon customcolor",n.iconContainer.className="icon hide",n.colorspan.style.backgroundColor=l[0];else if(20===s.kind&&this._themeService.getFileIconTheme().hasFileIcons){n.icon.className="icon hide",n.iconContainer.className="icon hide";var c=gR(this._modelService,this._modeService,Rb.o.from({scheme:"fake",path:e.textLabel}),fR.FILE),d=gR(this._modelService,this._modeService,Rb.o.from({scheme:"fake",path:s.detail}),fR.FILE);u.extraClasses=c.length>d.length?c:d}else if(23===s.kind&&this._themeService.getFileIconTheme().hasFolderIcons)n.icon.className="icon hide",n.iconContainer.className="icon hide",u.extraClasses=(0,Ny.xH)([gR(this._modelService,this._modeService,Rb.o.from({scheme:"fake",path:e.textLabel}),fR.FOLDER),gR(this._modelService,this._modeService,Rb.o.from({scheme:"fake",path:s.detail}),fR.FOLDER)]);else{var h;n.icon.className="icon hide",n.iconContainer.className="",(h=n.iconContainer.classList).add.apply(h,["suggest-icon"].concat((0,zt.Z)((0,Zb.Sy)(s.kind).split(" "))))}s.tags&&s.tags.indexOf(1)>=0&&(u.extraClasses=(u.extraClasses||[]).concat(["deprecated"]),u.matches=[]),n.iconLabel.setLabel(e.textLabel,void 0,u),"string"===typeof s.label?(n.parametersLabel.textContent="",n.qualifierLabel.textContent="",n.detailsLabel.textContent=(s.detail||"").replace(/\n.*$/m,""),n.root.classList.add("string-label"),n.root.title=""):(n.parametersLabel.textContent=(s.label.parameters||"").replace(/\n.*$/m,""),n.qualifierLabel.textContent=(s.label.qualifier||"").replace(/\n.*$/m,""),n.detailsLabel.textContent=(s.label.type||"").replace(/\n.*$/m,""),n.root.classList.remove("string-label"),n.root.title="".concat(e.textLabel).concat(null!==(i=s.label.parameters)&&void 0!==i?i:""," ").concat(null!==(r=s.label.qualifier)&&void 0!==r?r:""," ").concat(null!==(o=s.label.type)&&void 0!==o?o:"")),this._editor.getOption(103).showInlineDetails?(0,dw.show)(n.detailsLabel):(0,dw.hide)(n.detailsLabel),aR(e)?(n.right.classList.add("can-expand-details"),(0,dw.show)(n.readMore),n.readMore.onmousedown=function(e){e.stopPropagation(),e.preventDefault()},n.readMore.onclick=function(e){e.stopPropagation(),e.preventDefault(),a._onDidToggleDetails.fire()}):(n.right.classList.remove("can-expand-details"),(0,dw.hide)(n.readMore),n.readMore.onmousedown=null,n.readMore.onclick=null)}},{key:"disposeTemplate",value:function(e){e.disposables.dispose()}}]),e}();kR=_R([yR(1,Fb.q),yR(2,BC.h),yR(3,eb.XE)],kR);var SR=n(5265),xR=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},LR=function(e,t){return function(n,i){t(n,i,e)}},ER=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},NR=(0,Jy.P6)("editorSuggestWidget.background",{dark:Jy.D0,light:Jy.D0,hc:Jy.D0},ky.N("editorSuggestWidgetBackground","Background color of the suggest widget.")),DR=(0,Jy.P6)("editorSuggestWidget.border",{dark:Jy.D1,light:Jy.D1,hc:Jy.D1},ky.N("editorSuggestWidgetBorder","Border color of the suggest widget.")),MR=(0,Jy.P6)("editorSuggestWidget.foreground",{dark:Jy.NO,light:Jy.NO,hc:Jy.NO},ky.N("editorSuggestWidgetForeground","Foreground color of the suggest widget.")),TR=(0,Jy.P6)("editorSuggestWidget.selectedBackground",{dark:Jy.Vq,light:Jy.Vq,hc:Jy.Vq},ky.N("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget.")),OR=(0,Jy.P6)("editorSuggestWidget.highlightForeground",{dark:Jy.Gw,light:Jy.Gw,hc:Jy.Gw},ky.N("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget.")),IR=function(){function e(t,n){(0,i.Z)(this,e),this._service=t,this._key="suggestWidget.size/".concat(n.getEditorType(),"/").concat(n instanceof fk)}return(0,r.Z)(e,[{key:"restore",value:function(){var e,t=null!==(e=this._service.get(this._key,0))&&void 0!==e?e:"";try{var n=JSON.parse(t);if(dw.Dimension.is(n))return dw.Dimension.lift(n)}catch(mL){}}},{key:"store",value:function(e){this._service.store(this._key,JSON.stringify(e),0,1)}},{key:"reset",value:function(){this._service.remove(this._key,0)}}]),e}(),AR=function(){function e(t,n,o,a,s){var u=this;(0,i.Z)(this,e),this.editor=t,this._storageService=n,this._state=0,this._isAuto=!1,this._ignoreFocusEvents=!1,this._explainMode=!1,this._showTimeout=new Uy._F,this._disposables=new Ky.SL,this._onDidSelect=new kw.Q5,this._onDidFocus=new kw.Q5,this._onDidHide=new kw.Q5,this._onDidShow=new kw.Q5,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new kw.Q5,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new iR,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new RR(this,t),this._persistedSize=new IR(n,t);var l,c=(0,r.Z)((function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];(0,i.Z)(this,e),this.persistedSize=t,this.currentSize=n,this.persistHeight=r,this.persistWidth=o}));this._disposables.add(this.element.onDidWillResize((function(){u._contentWidget.lockPreference(),l=new c(u._persistedSize.restore(),u.element.size)}))),this._disposables.add(this.element.onDidResize((function(e){var t,n,i,r;if(u._resize(e.dimension.width,e.dimension.height),l&&(l.persistHeight=l.persistHeight||!!e.north||!!e.south,l.persistWidth=l.persistWidth||!!e.east||!!e.west),e.done){if(l){var o=u.getLayoutInfo(),a=o.itemHeight,s=o.defaultSize,c=Math.round(a/2),d=u.element.size,h=d.width,f=d.height;(!l.persistHeight||Math.abs(l.currentSize.height-f)<=c)&&(f=null!==(n=null===(t=l.persistedSize)||void 0===t?void 0:t.height)&&void 0!==n?n:s.height),(!l.persistWidth||Math.abs(l.currentSize.width-h)<=c)&&(h=null!==(r=null===(i=l.persistedSize)||void 0===i?void 0:i.width)&&void 0!==r?r:s.width),u._persistedSize.store(new dw.Dimension(h,f))}u._contentWidget.unlockPreference(),l=void 0}}))),this._messageElement=dw.append(this.element.domNode,dw.$(".message")),this._listElement=dw.append(this.element.domNode,dw.$(".tree"));var d=s.createInstance(sR,this.editor);d.onDidClose(this.toggleDetails,this,this._disposables),this._details=new uR(d,this.editor);var h=function(){return u.element.domNode.classList.toggle("no-icons",!u.editor.getOption(103).showIcons)};h();var f=s.createInstance(kR,this.editor);this._disposables.add(f),this._disposables.add(f.onDidToggleDetails((function(){return u.toggleDetails()}))),this._list=new nR.aV("SuggestWidget",this._listElement,{getHeight:function(e){return u.getLayoutInfo().itemHeight},getTemplateId:function(e){return"suggestion"}},[f],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,accessibilityProvider:{getRole:function(){return"option"},getAriaLabel:function(e){if(e.isResolved&&u._isDetailsVisible()){var t=e.completion,n=t.documentation,i=t.detail,r=Ib.WU("{0}{1}",i||"",n?"string"===typeof n?n:n.value:"");return ky.N("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",e.textLabel,r)}return e.textLabel},getWidgetAriaLabel:function(){return ky.N("suggest","Suggest")},getWidgetRole:function(){return"listbox"}}}),this._status=s.createInstance(hR,this.element.domNode);var p=function(){return u.element.domNode.classList.toggle("with-status-bar",u.editor.getOption(103).showStatusBar)};p(),this._disposables.add((0,Ix.Jl)(this._list,a,{listInactiveFocusBackground:TR,listInactiveFocusOutline:Jy.xL})),this._disposables.add(a.onDidColorThemeChange((function(e){return u._onThemeChange(e)}))),this._onThemeChange(a.getColorTheme()),this._disposables.add(this._list.onMouseDown((function(e){return u._onListMouseDownOrTap(e)}))),this._disposables.add(this._list.onTap((function(e){return u._onListMouseDownOrTap(e)}))),this._disposables.add(this._list.onDidChangeSelection((function(e){return u._onListSelection(e)}))),this._disposables.add(this._list.onDidChangeFocus((function(e){return u._onListFocus(e)}))),this._disposables.add(this.editor.onDidChangeCursorSelection((function(){return u._onCursorSelectionChanged()}))),this._disposables.add(this.editor.onDidChangeConfiguration((function(e){e.hasChanged(103)&&(p(),h())}))),this._ctxSuggestWidgetVisible=SI.Visible.bindTo(o),this._ctxSuggestWidgetDetailsVisible=SI.DetailsVisible.bindTo(o),this._ctxSuggestWidgetMultipleSuggestions=SI.MultipleSuggestions.bindTo(o),this._disposables.add(dw.addStandardDisposableListener(this._details.widget.domNode,"keydown",(function(e){u._onDetailsKeydown.fire(e)}))),this._disposables.add(this.editor.onMouseDown((function(e){return u._onEditorMouseDown(e)})))}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),null===(e=this._loadingTimeout)||void 0===e||e.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}},{key:"_onEditorMouseDown",value:function(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}},{key:"_onCursorSelectionChanged",value:function(){0!==this._state&&this._contentWidget.layout()}},{key:"_onListMouseDownOrTap",value:function(e){"undefined"!==typeof e.element&&"undefined"!==typeof e.index&&(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}},{key:"_onListSelection",value:function(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}},{key:"_select",value:function(e,t){var n=this._completionModel;n&&(this._onDidSelect.fire({item:e,index:t,model:n}),this.editor.focus())}},{key:"_onThemeChange",value:function(e){var t=e.getColor(NR);t&&(this.element.domNode.style.backgroundColor=t.toString(),this._messageElement.style.backgroundColor=t.toString(),this._details.widget.domNode.style.backgroundColor=t.toString());var n=e.getColor(DR);n&&(this.element.domNode.style.borderColor=n.toString(),this._messageElement.style.borderColor=n.toString(),this._status.element.style.borderTopColor=n.toString(),this._details.widget.domNode.style.borderColor=n.toString(),this._detailsBorderColor=n.toString());var i=e.getColor(Jy.R8);i&&(this._detailsFocusBorderColor=i.toString()),this._details.widget.borderWidth="hc"===e.type?2:1}},{key:"_onListFocus",value:function(e){var t,n=this;if(!this._ignoreFocusEvents){if(!e.elements.length)return this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),void this.editor.setAriaOptions({activeDescendant:void 0});if(this._completionModel){var i=e.elements[0],r=e.indexes[0];i!==this._focusedItem&&(null===(t=this._currentSuggestionDetails)||void 0===t||t.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=i,this._list.reveal(r),this._currentSuggestionDetails=(0,Uy.PG)((function(e){return ER(n,void 0,void 0,ti().mark((function t(){var n,r,o=this;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,Uy.Vg)((function(){o._isDetailsVisible()&&o.showDetails(!0)}),250),e.onCancellationRequested((function(){return n.dispose()})),t.next=4,i.resolve(e);case 4:return r=t.sent,n.dispose(),t.abrupt("return",r);case 7:case"end":return t.stop()}}),t)})))})),this._currentSuggestionDetails.then((function(){r>=n._list.length||i!==n._list.element(r)||(n._ignoreFocusEvents=!0,n._list.splice(r,1,[i]),n._list.setFocus([r]),n._ignoreFocusEvents=!1,n._isDetailsVisible()?n.showDetails(!1):n.element.domNode.classList.remove("docs-side"),n.editor.setAriaOptions({activeDescendant:bR(r)}))})).catch(My.dL)),this._onDidFocus.fire({item:i,index:r,model:this._completionModel})}}}},{key:"_setState",value:function(t){if(this._state!==t)switch(this._state=t,this.element.domNode.classList.toggle("frozen",4===t),this.element.domNode.classList.remove("message"),t){case 0:dw.hide(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=e.LOADING_MESSAGE,dw.hide(this._listElement,this._status.element),dw.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0;break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=e.NO_SUGGESTIONS_MESSAGE,dw.hide(this._listElement,this._status.element),dw.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0;break;case 3:case 4:dw.hide(this._messageElement),dw.show(this._listElement,this._status.element),this._show();break;case 5:dw.hide(this._messageElement),dw.show(this._listElement,this._status.element),this._details.show(),this._show()}}},{key:"_show",value:function(){var e=this;this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet((function(){e.element.domNode.classList.add("visible"),e._onDidShow.fire(e)}),100)}},{key:"showTriggered",value:function(e,t){var n=this;0===this._state&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=(0,Uy.Vg)((function(){return n._setState(1)}),t)))}},{key:"showSuggestions",value:function(e,t,n,i){var r,o;if(this._contentWidget.setPosition(this.editor.getPosition()),null===(r=this._loadingTimeout)||void 0===r||r.dispose(),null===(o=this._currentSuggestionDetails)||void 0===o||o.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),n&&2!==this._state&&0!==this._state)this._setState(4);else{var a=this._completionModel.items.length,s=0===a;if(this._ctxSuggestWidgetMultipleSuggestions.set(a>1),s)return this._setState(i?0:2),void(this._completionModel=void 0);this._focusedItem=void 0,this._list.splice(0,this._list.length,this._completionModel.items),this._setState(n?4:3),this._list.reveal(t,0),this._list.setFocus([t]),this._layout(this.element.size),this._detailsBorderColor&&(this._details.widget.domNode.style.borderColor=this._detailsBorderColor)}}},{key:"selectNextPage",value:function(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}},{key:"selectNext",value:function(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}},{key:"selectLast",value:function(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}},{key:"selectPreviousPage",value:function(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}},{key:"selectPrevious",value:function(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}},{key:"selectFirst",value:function(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}},{key:"getFocusedItem",value:function(){if(0!==this._state&&2!==this._state&&1!==this._state&&this._completionModel)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}},{key:"toggleDetailsFocus",value:function(){5===this._state?(this._setState(3),this._detailsBorderColor&&(this._details.widget.domNode.style.borderColor=this._detailsBorderColor)):3===this._state&&this._isDetailsVisible()&&(this._setState(5),this._detailsFocusBorderColor&&(this._details.widget.domNode.style.borderColor=this._detailsFocusBorderColor))}},{key:"toggleDetails",value:function(){this._isDetailsVisible()?(this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):!aR(this._list.getFocusedElements()[0])&&!this._explainMode||3!==this._state&&5!==this._state&&4!==this._state||(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}},{key:"showDetails",value:function(e){this._details.show(),e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._positionDetails(),this.editor.focus(),this.element.domNode.classList.add("shows-details")}},{key:"toggleExplainMode",value:function(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}},{key:"resetPersistedSize",value:function(){this._persistedSize.reset()}},{key:"hideWidget",value:function(){var e;null===(e=this._loadingTimeout)||void 0===e||e.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();var t=this._persistedSize.restore(),n=Math.ceil(4.3*this.getLayoutInfo().itemHeight);t&&t.height<n&&this._persistedSize.store(t.with(void 0,n))}},{key:"isFrozen",value:function(){return 4===this._state}},{key:"_afterRender",value:function(e){null!==e?2!==this._state&&1!==this._state&&(this._isDetailsVisible()&&this._details.show(),this._positionDetails()):this._isDetailsVisible()&&this._details.hide()}},{key:"_layout",value:function(e){var t,n,i;if(this.editor.hasModel()&&this.editor.getDomNode()){var r=dw.getClientArea(document.body),o=this.getLayoutInfo();e||(e=o.defaultSize);var a=e.height,s=e.width;if(this._status.element.style.lineHeight="".concat(o.itemHeight,"px"),2===this._state||1===this._state)a=o.itemHeight+o.borderHeight,s=o.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new dw.Dimension(s,a),this._contentWidget.setPreference(2);else{var u=r.width-o.borderHeight-2*o.horizontalPadding;s>u&&(s=u);var l=this._completionModel?this._completionModel.stats.pLabelLen*o.typicalHalfwidthCharacterWidth:s,c=o.statusBarHeight+this._list.contentHeight+o.borderHeight,d=o.itemHeight+o.statusBarHeight,h=dw.getDomNodePagePosition(this.editor.getDomNode()),f=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=h.top+f.top+f.height,g=Math.min(r.height-p-o.verticalPadding,c),v=Math.min(h.top+f.top-o.verticalPadding,c),m=Math.min(Math.max(v,g)+o.borderHeight,c);a===(null===(t=this._cappedHeight)||void 0===t?void 0:t.capped)&&(a=this._cappedHeight.wanted),a<d&&(a=d),a>m&&(a=m),a>g?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),m=v):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),m=g),this.element.preferredSize=new dw.Dimension(l,o.defaultSize.height),this.element.maxSize=new dw.Dimension(u,m),this.element.minSize=new dw.Dimension(220,d),this._cappedHeight=a===c?{wanted:null!==(i=null===(n=this._cappedHeight)||void 0===n?void 0:n.wanted)&&void 0!==i?i:e.height,capped:a}:void 0}this._resize(s,a)}}},{key:"_resize",value:function(e,t){var n=this.element.maxSize,i=n.width,r=n.height;e=Math.min(i,e),t=Math.min(r,t);var o=this.getLayoutInfo().statusBarHeight;this._list.layout(t-o,e),this._listElement.style.height="".concat(t-o,"px"),this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}},{key:"_positionDetails",value:function(){this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode)}},{key:"getLayoutInfo",value:function(){var e=this.editor.getOption(40),t=(0,SR.u)(this.editor.getOption(105)||e.lineHeight,8,1e3),n=this.editor.getOption(103).showStatusBar&&2!==this._state&&1!==this._state?t:0,i=this._details.widget.borderWidth,r=2*i;return{itemHeight:t,statusBarHeight:n,borderWidth:i,borderHeight:r,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new dw.Dimension(430,n+12*t+r)}}},{key:"_isDetailsVisible",value:function(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}},{key:"_setDetailsVisible",value:function(e){this._storageService.store("expandSuggestionDocs",e,0,0)}}]),e}();AR.LOADING_MESSAGE=ky.N("suggestWidget.loading","Loading..."),AR.NO_SUGGESTIONS_MESSAGE=ky.N("suggestWidget.noSuggestions","No suggestions."),AR=xR([LR(1,wC.Uy),LR(2,Ey.i6),LR(3,eb.XE),LR(4,cw.TG)],AR);var RR=function(){function e(t,n){(0,i.Z)(this,e),this._widget=t,this._editor=n,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}return(0,r.Z)(e,[{key:"dispose",value:function(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}},{key:"getId",value:function(){return"editor.widget.suggestWidget"}},{key:"getDomNode",value:function(){return this._widget.element.domNode}},{key:"show",value:function(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}},{key:"hide",value:function(){this._hidden||(this._hidden=!0,this.layout())}},{key:"layout",value:function(){this._editor.layoutContentWidget(this)}},{key:"getPosition",value:function(){return!this._hidden&&this._position&&this._preference?{position:this._position,preference:[this._preference]}:null}},{key:"beforeRender",value:function(){var e=this._widget.element.size,t=e.height,n=e.width,i=this._widget.getLayoutInfo(),r=i.borderWidth,o=i.horizontalPadding;return new dw.Dimension(n+2*r+o,t+2*r)}},{key:"afterRender",value:function(e){this._widget._afterRender(e)}},{key:"setPreference",value:function(e){this._preferenceLocked||(this._preference=e)}},{key:"lockPreference",value:function(){this._preferenceLocked=!0}},{key:"unlockPreference",value:function(){this._preferenceLocked=!1}},{key:"setPosition",value:function(e){this._position=e}}]),e}();(0,eb.Ic)((function(e,t){var n=e.getColor(OR);n&&t.addRule(".monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: ".concat(n,"; }"));var i=e.getColor(MR);i&&t.addRule(".monaco-editor .suggest-widget, .monaco-editor .suggest-details { color: ".concat(i,"; }"));var r=e.getColor(Jy.ur);r&&t.addRule(".monaco-editor .suggest-details a { color: ".concat(r,"; }"));var o=e.getColor(Jy.Sw);o&&t.addRule(".monaco-editor .suggest-details code { background-color: ".concat(o,"; }"))}));var PR=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ZR=function(e,t){return function(n,i){t(n,i,e)}},FR=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._editor=t,this._enabled=!1,this._ckAtEnd=e.AtEnd.bindTo(n),this._configListener=this._editor.onDidChangeConfiguration((function(e){return e.hasChanged(108)&&r._update()})),this._update()}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;this._configListener.dispose(),null===(e=this._selectionListener)||void 0===e||e.dispose(),this._ckAtEnd.reset()}},{key:"_update",value:function(){var e=this,t="on"===this._editor.getOption(108);if(this._enabled!==t)if(this._enabled=t,this._enabled){var n=function(){if(e._editor.hasModel()){var t=e._editor.getModel(),n=e._editor.getSelection(),i=t.getWordAtPosition(n.getStartPosition());i?e._ckAtEnd.set(i.endColumn===n.getStartPosition().column):e._ckAtEnd.set(!1)}else e._ckAtEnd.set(!1)};this._selectionListener=this._editor.onDidChangeCursorSelection(n),n()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}}]),e}();FR.AtEnd=new Ey.uy("atEndOfWord",!1),FR=PR([ZR(1,Ey.i6)],FR);var jR=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this._disposables=new Ky.SL,this._disposables.add(n.onDidShow((function(){return o._onItem(n.getFocusedItem())}))),this._disposables.add(n.onDidFocus(this._onItem,this)),this._disposables.add(n.onDidHide(this.reset,this)),this._disposables.add(t.onWillType((function(e){if(o._active&&!n.isFrozen()){var i=e.charCodeAt(e.length-1);o._active.acceptCharacters.has(i)&&t.getOption(0)&&r(o._active.item)}})))}return(0,r.Z)(e,[{key:"_onItem",value:function(e){if(e&&(0,Ny.Of)(e.item.completion.commitCharacters)){if(!this._active||this._active.item.item!==e.item){var t,n=new oM.q,i=(0,tr.Z)(e.item.completion.commitCharacters);try{for(i.s();!(t=i.n()).done;){var r=t.value;r.length>0&&n.add(r.charCodeAt(0))}}catch(o){i.e(o)}finally{i.f()}this._active={acceptCharacters:n,item:e}}}else this.reset()}},{key:"reset",value:function(){this._active=void 0}},{key:"dispose",value:function(){this._disposables.dispose()}}]),e}(),HR=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._disposables=new Ky.SL,this._lastOvertyped=[],this._empty=!0,this._disposables.add(t.onWillType((function(){if(r._empty&&t.hasModel()){for(var n=t.getSelections(),i=n.length,o=!1,a=0;a<i;a++)if(!n[a].isEmpty()){o=!0;break}if(o){r._lastOvertyped=[];for(var s=t.getModel(),u=0;u<i;u++){var l=n[u];if(s.getValueLengthInRange(l)>e._maxSelectionLength)return;r._lastOvertyped[u]={value:s.getValueInRange(l),multiline:l.startLineNumber!==l.endLineNumber}}r._empty=!1}}}))),this._disposables.add(n.onDidCancel((function(e){r._empty||e.retrigger||(r._empty=!0)})))}return(0,r.Z)(e,[{key:"getLastOvertypedInfo",value:function(e){if(!this._empty&&e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}},{key:"dispose",value:function(){this._disposables.dispose()}}]),e}();HR._maxSelectionLength=51200;var BR=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},zR=function(e,t){return function(n,i){t(n,i,e)}},WR=!1,VR=function(){function e(t,n){if((0,i.Z)(this,e),this._model=t,this._position=n,t.getLineMaxColumn(n.lineNumber)!==n.column){var r=t.getOffsetAt(n),o=t.getPositionAt(r+1);this._marker=t.deltaDecorations([],[{range:Gy.e.fromPositions(n,o),options:{stickiness:1}}])}}return(0,r.Z)(e,[{key:"dispose",value:function(){this._marker&&!this._model.isDisposed()&&this._model.deltaDecorations(this._marker,[])}},{key:"delta",value:function(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){var t=this._model.getDecorationRange(this._marker[0]);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}return this._model.getLineMaxColumn(e.lineNumber)-e.column}}]),e}(),YR=function(){function e(t,n,r,o,a,s){var u=this;(0,i.Z)(this,e),this._memoryService=n,this._commandService=r,this._contextKeyService=o,this._instantiationService=a,this._logService=s,this._lineSuffix=new Ky.XK,this._toDispose=new Ky.SL,this.editor=t,this.model=a.createInstance(CA,this.editor);var l=SI.InsertMode.bindTo(o);l.set(t.getOption(103).insertMode),this.model.onDidTrigger((function(){return l.set(t.getOption(103).insertMode)})),this.widget=this._toDispose.add(new Uy.Ue((function(){var e=u._instantiationService.createInstance(AR,u.editor);u._toDispose.add(e),u._toDispose.add(e.onDidSelect((function(e){return u._insertSuggestion(e,0)}),u));var t=new jR(u.editor,e,(function(e){return u._insertSuggestion(e,2)}));u._toDispose.add(t),u._toDispose.add(u.model.onDidSuggest((function(e){0===e.completionModel.items.length&&t.reset()})));var n=SI.MakesTextEdit.bindTo(u._contextKeyService),i=SI.HasInsertAndReplaceRange.bindTo(u._contextKeyService),r=SI.CanResolve.bindTo(u._contextKeyService);return u._toDispose.add((0,Ky.OF)((function(){n.reset(),i.reset(),r.reset()}))),u._toDispose.add(e.onDidFocus((function(e){var t=e.item,o=u.editor.getPosition(),a=t.editStart.column,s=o.column,l=!0;"smart"!==u.editor.getOption(1)||2!==u.model.state||t.completion.command||t.completion.additionalTextEdits||4&t.completion.insertTextRules||s-a!==t.completion.insertText.length||(l=u.editor.getModel().getValueInRange({startLineNumber:o.lineNumber,startColumn:a,endLineNumber:o.lineNumber,endColumn:s})!==t.completion.insertText);n.set(l),i.set(!qy.L.equals(t.editInsertEnd,t.editReplaceEnd)),r.set(Boolean(t.provider.resolveCompletionItem)||Boolean(t.completion.documentation)||t.completion.detail!==t.completion.label)}))),u._toDispose.add(e.onDetailsKeyDown((function(e){e.toKeybinding().equals(new Ly.QC(!0,!1,!1,!1,33))||gb.dz&&e.toKeybinding().equals(new Ly.QC(!1,!1,!1,!0,33))?e.stopPropagation():e.toKeybinding().isModifierKey()||u.editor.focus()}))),e}))),this._overtypingCapturer=this._toDispose.add(new Uy.Ue((function(){return u._toDispose.add(new HR(u.editor,u.model))}))),this._alternatives=this._toDispose.add(new Uy.Ue((function(){return u._toDispose.add(new pA(u.editor,u._contextKeyService))}))),this._toDispose.add(a.createInstance(FR,t)),this._toDispose.add(this.model.onDidTrigger((function(e){u.widget.value.showTriggered(e.auto,e.shy?250:50),u._lineSuffix.value=new VR(u.editor.getModel(),e.position)}))),this._toDispose.add(this.model.onDidSuggest((function(e){if(!e.shy){var t=u._memoryService.select(u.editor.getModel(),u.editor.getPosition(),e.completionModel.items);u.widget.value.showSuggestions(e.completionModel,t,e.isFrozen,e.auto)}}))),this._toDispose.add(this.model.onDidCancel((function(e){e.retrigger||u.widget.value.hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((function(){WR||(u.model.cancel(),u.model.clear())})));var c=SI.AcceptSuggestionsOnEnter.bindTo(o),d=function(){var e=u.editor.getOption(1);c.set("on"===e||"smart"===e)};this._toDispose.add(this.editor.onDidChangeConfiguration((function(){return d()}))),d()}return(0,r.Z)(e,[{key:"dispose",value:function(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose()}},{key:"_insertSuggestion",value:function(e,t){var n=this;if(!e||!e.item)return this._alternatives.value.reset(),this.model.cancel(),void this.model.clear();if(this.editor.hasModel()){var i=this.editor.getModel(),r=i.getAlternativeVersionId(),o=e.item,a=[],s=new Tb.A;1&t||this.editor.pushUndoStop();var u=this.getOverwriteInfo(o,Boolean(8&t));if(this._memoryService.memorize(i,this.editor.getPosition(),o),Array.isArray(o.completion.additionalTextEdits)){var l=Pb.ZF.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",o.completion.additionalTextEdits.map((function(e){return $L.h.replace(Gy.e.lift(e.range),e.text)}))),l.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!o.isResolved){var c,d=new CI.G(!0),h=i.onDidChangeContent((function(e){if(e.isFlush)return s.cancel(),void h.dispose();var t,n=(0,tr.Z)(e.changes);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=Gy.e.getEndPosition(i.range);c&&!qy.L.isBefore(r,c)||(c=r)}}catch(o){n.e(o)}finally{n.f()}})),f=t;t|=2;var p=!1,g=this.editor.onWillType((function(){g.dispose(),p=!0,2&f||n.editor.pushUndoStop()}));a.push(o.resolve(s.token).then((function(){if(!o.completion.additionalTextEdits||s.token.isCancellationRequested)return!1;if(c&&o.completion.additionalTextEdits.some((function(e){return qy.L.isBefore(c,Gy.e.getStartPosition(e.range))})))return!1;p&&n.editor.pushUndoStop();var e=Pb.ZF.capture(n.editor);return n.editor.executeEdits("suggestController.additionalTextEdits.async",o.completion.additionalTextEdits.map((function(e){return $L.h.replace(Gy.e.lift(e.range),e.text)}))),e.restoreRelativeVerticalPositionOfCursor(n.editor),!p&&2&f||n.editor.pushUndoStop(),!0})).then((function(e){n._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",d.elapsed(),e),h.dispose(),g.dispose()})))}var v=o.completion.insertText;if(4&o.completion.insertTextRules||(v=wI.escape(v)),nA.get(this.editor).insert(v,{overwriteBefore:u.overwriteBefore,overwriteAfter:u.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&o.completion.insertTextRules),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),2&t||this.editor.pushUndoStop(),o.completion.command)if(o.completion.command.id===UR.id)this.model.trigger({auto:!0,shy:!1},!0);else{var m;a.push((m=this._commandService).executeCommand.apply(m,[o.completion.command.id].concat((0,zt.Z)(o.completion.command.arguments?(0,zt.Z)(o.completion.command.arguments):[]))).catch(My.dL)),this.model.cancel()}else this.model.cancel();4&t&&this._alternatives.value.set(e,(function(e){for(s.cancel();i.canUndo();){r!==i.getAlternativeVersionId()&&i.undo(),n._insertSuggestion(e,3|(8&t?8:0));break}})),this._alertCompletionItem(o),Promise.all(a).finally((function(){n.model.clear(),s.dispose()}))}}},{key:"getOverwriteInfo",value:function(e,t){(0,cC.p_)(this.editor.hasModel());var n="replace"===this.editor.getOption(103).insertMode;t&&(n=!n);var i=e.position.column-e.editStart.column,r=(n?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column;return{overwriteBefore:i+(this.editor.getPosition().column-e.position.column),overwriteAfter:r+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}}},{key:"_alertCompletionItem",value:function(e){if((0,Ny.Of)(e.completion.additionalTextEdits)){var t=ky.N("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);(0,Py.Z9)(t)}}},{key:"triggerSuggest",value:function(e){this.editor.hasModel()&&(this.model.trigger({auto:!1,shy:!1},!1,e),this.editor.revealLine(this.editor.getPosition().lineNumber,0),this.editor.focus())}},{key:"triggerSuggestAndAcceptBest",value:function(e){var t=this;if(this.editor.hasModel()){var n=this.editor.getPosition(),i=function(){n.equals(t.editor.getPosition())&&t._commandService.executeCommand(e.fallback)};kw.ju.once(this.model.onDidTrigger)((function(e){var n=[];kw.ju.any(t.model.onDidTrigger,t.model.onDidCancel)((function(){(0,Ky.B9)(n),i()}),void 0,n),t.model.onDidSuggest((function(e){var r=e.completionModel;if((0,Ky.B9)(n),0!==r.items.length){var o=t._memoryService.select(t.editor.getModel(),t.editor.getPosition(),r.items),a=r.items[o];!function(e){if(4&e.completion.insertTextRules||e.completion.additionalTextEdits)return!0;var n=t.editor.getPosition(),i=e.editStart.column,r=n.column;return r-i!==e.completion.insertText.length||t.editor.getModel().getValueInRange({startLineNumber:n.lineNumber,startColumn:i,endLineNumber:n.lineNumber,endColumn:r})!==e.completion.insertText}(a)?i():(t.editor.pushUndoStop(),t._insertSuggestion({index:o,item:a,model:r},7))}else i()}),void 0,n)})),this.model.trigger({auto:!1,shy:!0}),this.editor.revealLine(n.lineNumber,0),this.editor.focus()}}},{key:"acceptSelectedSuggestion",value:function(e,t){var n=this.widget.value.getFocusedItem(),i=0;e&&(i|=4),t&&(i|=8),this._insertSuggestion(n,i)}},{key:"acceptNextSuggestion",value:function(){this._alternatives.value.next()}},{key:"acceptPrevSuggestion",value:function(){this._alternatives.value.prev()}},{key:"cancelSuggestWidget",value:function(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}},{key:"selectNextSuggestion",value:function(){this.widget.value.selectNext()}},{key:"selectNextPageSuggestion",value:function(){this.widget.value.selectNextPage()}},{key:"selectLastSuggestion",value:function(){this.widget.value.selectLast()}},{key:"selectPrevSuggestion",value:function(){this.widget.value.selectPrevious()}},{key:"selectPrevPageSuggestion",value:function(){this.widget.value.selectPreviousPage()}},{key:"selectFirstSuggestion",value:function(){this.widget.value.selectFirst()}},{key:"toggleSuggestionDetails",value:function(){this.widget.value.toggleDetails()}},{key:"toggleExplainMode",value:function(){this.widget.value.toggleExplainMode()}},{key:"toggleSuggestionFocus",value:function(){this.widget.value.toggleDetailsFocus()}},{key:"resetWidgetSize",value:function(){this.widget.value.resetPersistedSize()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();YR.ID="editor.contrib.suggestController",YR=BR([zR(1,dA),zR(2,Vb.H),zR(3,Ey.i6),zR(4,cw.TG),zR(5,BO.VZ)],YR);var UR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.id,label:ky.N("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:Ey.Ao.and(Sy.u.writable,Sy.u.hasCompletionItemProvider),kbOpts:{kbExpr:Sy.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=YR.get(t);n&&n.triggerSuggest()}}]),n}(Cy.R6);UR.id="editor.action.triggerSuggest",(0,Cy._K)(YR.ID,YR),(0,Cy.Qr)(UR);var KR=190,qR=Cy._l.bindToContribution(YR.get);(0,Cy.fK)(new qR({id:"acceptSelectedSuggestion",precondition:SI.Visible,handler:function(e){e.acceptSelectedSuggestion(!0,!1)}})),iL.W.registerKeybindingRule({id:"acceptSelectedSuggestion",when:Ey.Ao.and(SI.Visible,Sy.u.textInputFocus),primary:2,weight:KR}),iL.W.registerKeybindingRule({id:"acceptSelectedSuggestion",when:Ey.Ao.and(SI.Visible,Sy.u.textInputFocus,SI.AcceptSuggestionsOnEnter,SI.MakesTextEdit),primary:3,weight:KR}),tb.BH.appendMenuItem(xI,{command:{id:"acceptSelectedSuggestion",title:ky.N("accept.insert","Insert")},group:"left",order:1,when:SI.HasInsertAndReplaceRange.toNegated()}),tb.BH.appendMenuItem(xI,{command:{id:"acceptSelectedSuggestion",title:ky.N("accept.insert","Insert")},group:"left",order:1,when:Ey.Ao.and(SI.HasInsertAndReplaceRange,SI.InsertMode.isEqualTo("insert"))}),tb.BH.appendMenuItem(xI,{command:{id:"acceptSelectedSuggestion",title:ky.N("accept.replace","Replace")},group:"left",order:1,when:Ey.Ao.and(SI.HasInsertAndReplaceRange,SI.InsertMode.isEqualTo("replace"))}),(0,Cy.fK)(new qR({id:"acceptAlternativeSelectedSuggestion",precondition:Ey.Ao.and(SI.Visible,Sy.u.textInputFocus),kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:1027,secondary:[1026]},handler:function(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:xI,group:"left",order:2,when:Ey.Ao.and(SI.HasInsertAndReplaceRange,SI.InsertMode.isEqualTo("insert")),title:ky.N("accept.replace","Replace")},{menuId:xI,group:"left",order:2,when:Ey.Ao.and(SI.HasInsertAndReplaceRange,SI.InsertMode.isEqualTo("replace")),title:ky.N("accept.insert","Insert")}]})),Vb.P.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),(0,Cy.fK)(new qR({id:"hideSuggestWidget",precondition:SI.Visible,handler:function(e){return e.cancelSuggestWidget()},kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:9,secondary:[1033]}})),(0,Cy.fK)(new qR({id:"selectNextSuggestion",precondition:Ey.Ao.and(SI.Visible,SI.MultipleSuggestions),handler:function(e){return e.selectNextSuggestion()},kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),(0,Cy.fK)(new qR({id:"selectNextPageSuggestion",precondition:Ey.Ao.and(SI.Visible,SI.MultipleSuggestions),handler:function(e){return e.selectNextPageSuggestion()},kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:12,secondary:[2060]}})),(0,Cy.fK)(new qR({id:"selectLastSuggestion",precondition:Ey.Ao.and(SI.Visible,SI.MultipleSuggestions),handler:function(e){return e.selectLastSuggestion()}})),(0,Cy.fK)(new qR({id:"selectPrevSuggestion",precondition:Ey.Ao.and(SI.Visible,SI.MultipleSuggestions),handler:function(e){return e.selectPrevSuggestion()},kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),(0,Cy.fK)(new qR({id:"selectPrevPageSuggestion",precondition:Ey.Ao.and(SI.Visible,SI.MultipleSuggestions),handler:function(e){return e.selectPrevPageSuggestion()},kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:11,secondary:[2059]}})),(0,Cy.fK)(new qR({id:"selectFirstSuggestion",precondition:Ey.Ao.and(SI.Visible,SI.MultipleSuggestions),handler:function(e){return e.selectFirstSuggestion()}})),(0,Cy.fK)(new qR({id:"toggleSuggestionDetails",precondition:SI.Visible,handler:function(e){return e.toggleSuggestionDetails()},kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:2058,mac:{primary:266}},menuOpts:[{menuId:xI,group:"right",order:1,when:Ey.Ao.and(SI.DetailsVisible,SI.CanResolve),title:ky.N("detail.more","show less")},{menuId:xI,group:"right",order:1,when:Ey.Ao.and(SI.DetailsVisible.toNegated(),SI.CanResolve),title:ky.N("detail.less","show more")}]})),(0,Cy.fK)(new qR({id:"toggleExplainMode",precondition:SI.Visible,handler:function(e){return e.toggleExplainMode()},kbOpts:{weight:100,primary:2133}})),(0,Cy.fK)(new qR({id:"toggleSuggestionFocus",precondition:SI.Visible,handler:function(e){return e.toggleSuggestionFocus()},kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:2570,mac:{primary:778}}})),(0,Cy.fK)(new qR({id:"insertBestCompletion",precondition:Ey.Ao.and(Sy.u.textInputFocus,Ey.Ao.equals("config.editor.tabCompletion","on"),FR.AtEnd,SI.Visible.toNegated(),pA.OtherSuggestions.toNegated(),nA.InSnippetMode.toNegated()),handler:function(e,t){e.triggerSuggestAndAcceptBest((0,cC.Kn)(t)?Object.assign({fallback:"tab"},t):{fallback:"tab"})},kbOpts:{weight:KR,primary:2}})),(0,Cy.fK)(new qR({id:"insertNextSuggestion",precondition:Ey.Ao.and(Sy.u.textInputFocus,Ey.Ao.equals("config.editor.tabCompletion","on"),pA.OtherSuggestions,SI.Visible.toNegated(),nA.InSnippetMode.toNegated()),handler:function(e){return e.acceptNextSuggestion()},kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:2}})),(0,Cy.fK)(new qR({id:"insertPrevSuggestion",precondition:Ey.Ao.and(Sy.u.textInputFocus,Ey.Ao.equals("config.editor.tabCompletion","on"),pA.OtherSuggestions,SI.Visible.toNegated(),nA.InSnippetMode.toNegated()),handler:function(e){return e.acceptPrevSuggestion()},kbOpts:{weight:KR,kbExpr:Sy.u.textInputFocus,primary:1026}})),(0,Cy.Qr)(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.resetSuggestSize",label:ky.N("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){YR.get(t).resetWidgetSize()}}]),n}(Cy.R6));var GR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.forceRetokenize",label:ky.N("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=t.getModel();n.resetTokenization();var i=new CI.G(!0);n.forceTokenization(n.getLineCount()),i.stop(),console.log("tokenization took ".concat(i.elapsed()))}}}]),n}(Cy.R6);(0,Cy.Qr)(GR);var $R=n(32995),QR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:ky.N({key:"toggle.tabMovesFocus",comment:["Turn on/off use of tab key for moving focus around VS Code"]},"Toggle Tab Key Moves Focus"),alias:"Toggle Tab Key Moves Focus",precondition:void 0,kbOpts:{kbExpr:null,primary:2091,mac:{primary:1323},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=!$R.nG.getTabFocusMode();$R.nG.setTabFocusMode(n),n?(0,Py.Z9)(ky.N("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element")):(0,Py.Z9)(ky.N("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}}]),n}(Cy.R6);QR.ID="editor.action.toggleTabFocusMode",(0,Cy.Qr)(QR);var XR=n(34782),JR=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},eP=function(e,t){return function(n,i){t(n,i,e)}},tP=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},nP="ignoreUnusualLineTerminators";function iP(e,t,n){e.setModelProperty(t.uri,nP,n)}function rP(e,t){return e.getModelProperty(t.uri,nP)}var oP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this))._editor=e,a._dialogService=r,a._codeEditorService=o,a._config=a._editor.getOption(110),a._register(a._editor.onDidChangeConfiguration((function(e){e.hasChanged(110)&&(a._config=a._editor.getOption(110),a._checkForUnusualLineTerminators())}))),a._register(a._editor.onDidChangeModel((function(){a._checkForUnusualLineTerminators()}))),a._register(a._editor.onDidChangeModelContent((function(e){e.isUndoing||a._checkForUnusualLineTerminators()}))),a}return(0,r.Z)(n,[{key:"_checkForUnusualLineTerminators",value:function(){return tP(this,void 0,void 0,ti().mark((function e(){var t;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("off"!==this._config){e.next=2;break}return e.abrupt("return");case 2:if(this._editor.hasModel()){e.next=4;break}return e.abrupt("return");case 4:if((t=this._editor.getModel()).mightContainUnusualLineTerminators()){e.next=7;break}return e.abrupt("return");case 7:if(!0!==rP(this._codeEditorService,t)){e.next=10;break}return e.abrupt("return");case 10:if(!this._editor.getOption(77)){e.next=12;break}return e.abrupt("return");case 12:if("auto"!==this._config){e.next=15;break}return t.removeUnusualLineTerminators(this._editor.getSelections()),e.abrupt("return");case 15:return e.next=17,this._dialogService.confirm({title:ky.N("unusualLineTerminators.title","Unusual Line Terminators"),message:ky.N("unusualLineTerminators.message","Detected unusual line terminators"),detail:ky.N("unusualLineTerminators.detail","This file contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`."),primaryButton:ky.N("unusualLineTerminators.fix","Fix this file"),secondaryButton:ky.N("unusualLineTerminators.ignore","Ignore problem for this file")});case 17:if(e.sent.confirmed){e.next=21;break}return iP(this._codeEditorService,t,!0),e.abrupt("return");case 21:t.removeUnusualLineTerminators(this._editor.getSelections());case 22:case"end":return e.stop()}}),e,this)})))}}]),n}(Ky.JT);oP.ID="editor.contrib.unusualLineTerminatorsDetector",oP=JR([eP(1,XR.S),eP(2,mb.$)],oP),(0,Cy._K)(oP.ID,oP);var aP=n(93445),sP=n(77993),uP=n(7845),lP=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},cP=function(e,t){return function(n,i){t(n,i,e)}},dP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._modelService=r,s._themeService=o,s._configurationService=a,s._editor=e,s._tokenizeViewport=new Uy.pY((function(){return s._tokenizeViewportNow()}),100),s._outstandingRequests=[],s._register(s._editor.onDidScrollChange((function(){s._tokenizeViewport.schedule()}))),s._register(s._editor.onDidChangeModel((function(){s._cancelAll(),s._tokenizeViewport.schedule()}))),s._register(s._editor.onDidChangeModelContent((function(e){s._cancelAll(),s._tokenizeViewport.schedule()}))),s._register(Zb.K7.onDidChange((function(){s._cancelAll(),s._tokenizeViewport.schedule()}))),s._register(s._configurationService.onDidChangeConfiguration((function(e){e.affectsConfiguration(sP.e3)&&(s._cancelAll(),s._tokenizeViewport.schedule())}))),s._register(s._themeService.onDidColorThemeChange((function(){s._cancelAll(),s._tokenizeViewport.schedule()}))),s}return(0,r.Z)(n,[{key:"_cancelAll",value:function(){var e,t=(0,tr.Z)(this._outstandingRequests);try{for(t.s();!(e=t.n()).done;){e.value.cancel()}}catch(n){t.e(n)}finally{t.f()}this._outstandingRequests=[]}},{key:"_removeOutstandingRequest",value:function(e){for(var t=0,n=this._outstandingRequests.length;t<n;t++)if(this._outstandingRequests[t]===e)return void this._outstandingRequests.splice(t,1)}},{key:"_tokenizeViewportNow",value:function(){var e=this;if(this._editor.hasModel()){var t=this._editor.getModel();if(!t.hasCompleteSemanticTokens())if((0,sP.tw)(t,this._themeService,this._configurationService)){var n=(0,uP.St)(t);if(n){var i=this._modelService.getSemanticTokensProviderStyling(n),r=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(r.map((function(r){return e._requestRange(t,r,n,i)})))}else t.hasSomeSemanticTokens()&&t.setSemanticTokens(null,!1)}else t.hasSomeSemanticTokens()&&t.setSemanticTokens(null,!1)}}},{key:"_requestRange",value:function(e,t,n,i){var r=this,o=e.getVersionId(),a=(0,Uy.PG)((function(i){return Promise.resolve(n.provideDocumentRangeSemanticTokens(e,t,i))}));return a.then((function(n){n&&!e.isDisposed()&&e.getVersionId()===o&&e.setPartialSemanticTokens(t,(0,aP.h)(n,i,e.getLanguageIdentifier()))})).then((function(){return r._removeOutstandingRequest(a)}),(function(){return r._removeOutstandingRequest(a)})),a}}]),n}(Ky.JT);dP.ID="editor.contrib.viewportSemanticTokens",dP=lP([cP(1,Fb.q),cP(2,eb.XE),cP(3,ZC.Ui)],dP),(0,Cy._K)(dP.ID,dP);var hP=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},fP=function(e,t){return function(n,i){t(n,i,e)}},pP=(0,Jy.P6)("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hc:null},ky.N("wordHighlight","Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0),gP=(0,Jy.P6)("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hc:null},ky.N("wordHighlightStrong","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0),vP=(0,Jy.P6)("editor.wordHighlightBorder",{light:null,dark:null,hc:Jy.xL},ky.N("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable.")),mP=(0,Jy.P6)("editor.wordHighlightStrongBorder",{light:null,dark:null,hc:Jy.xL},ky.N("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable.")),_P=(0,Jy.P6)("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hc:"#A0A0A0CC"},ky.N("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),yP=(0,Jy.P6)("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hc:"#C0A0C0CC"},ky.N("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),bP=new Ey.uy("hasWordHighlights",!1);function wP(e,t,n){var i=Zb.vH.ordered(e);return(0,Uy.Ps)(i.map((function(i){return function(){return Promise.resolve(i.provideDocumentHighlights(e,t,n)).then(void 0,My.Cp)}})),Ny.Of)}var CP=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this._wordRange=this._getCurrentWordRange(t,n),this.result=(0,Uy.PG)((function(e){return o._compute(t,n,r,e)}))}return(0,r.Z)(e,[{key:"_getCurrentWordRange",value:function(e,t){var n=e.getWordAtPosition(t.getPosition());return n?new Gy.e(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):null}},{key:"isValid",value:function(e,t,n){for(var i=t.startLineNumber,r=t.startColumn,o=t.endColumn,a=this._getCurrentWordRange(e,t),s=Boolean(this._wordRange&&this._wordRange.equalsRange(a)),u=0,l=n.length;!s&&u<l;u++){var c=e.getDecorationRange(n[u]);c&&c.startLineNumber===i&&c.startColumn<=r&&c.endColumn>=o&&(s=!0)}return s}},{key:"cancel",value:function(){this.result.cancel()}}]),e}(),kP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_compute",value:function(e,t,n,i){return wP(e,t.getPosition(),i).then((function(e){return e||[]}))}}]),n}(CP),SP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,e,r,o))._selectionIsEmpty=r.isEmpty(),a}return(0,r.Z)(n,[{key:"_compute",value:function(e,t,n,i){return(0,Uy.Vs)(250,i).then((function(){if(!t.isEmpty())return[];var i=e.getWordAtPosition(t.getPosition());return!i||i.word.length>1e3?[]:e.findMatches(i.word,!0,!1,!0,n,!1).map((function(e){return{range:e.range,kind:Zb.MY.Text}}))}))}},{key:"isValid",value:function(e,t,i){var r=t.isEmpty();return this._selectionIsEmpty===r&&(0,nw.Z)((0,iw.Z)(n.prototype),"isValid",this).call(this,e,t,i)}}]),n}(CP);(0,Cy.sb)("_executeDocumentHighlights",(function(e,t){return wP(e,t,Tb.T.None)}));var xP=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this.toUnhook=new Ky.SL,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=t,this._hasWordHighlights=bP.bindTo(n),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(68),this.model=this.editor.getModel(),this.toUnhook.add(t.onDidChangeCursorPosition((function(e){r._ignorePositionChangeEvent||r.occurrencesHighlight&&r._onPositionChanged(e)}))),this.toUnhook.add(t.onDidChangeModelContent((function(e){r._stopAll()}))),this.toUnhook.add(t.onDidChangeConfiguration((function(e){var t=r.editor.getOption(68);r.occurrencesHighlight!==t&&(r.occurrencesHighlight=t,r._stopAll())}))),this._decorationIds=[],this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}return(0,r.Z)(e,[{key:"hasDecorations",value:function(){return this._decorationIds.length>0}},{key:"restore",value:function(){this.occurrencesHighlight&&this._run()}},{key:"_getSortedHighlights",value:function(){var e=this;return Ny.kX(this._decorationIds.map((function(t){return e.model.getDecorationRange(t)})).sort(Gy.e.compareRangesUsingStarts))}},{key:"moveNext",value:function(){var e=this,t=this._getSortedHighlights(),n=(t.findIndex((function(t){return t.containsPosition(e.editor.getPosition())}))+1)%t.length,i=t[n];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);var r=this._getWord();if(r){var o=this.editor.getModel().getLineContent(i.startLineNumber);(0,Py.Z9)("".concat(o,", ").concat(n+1," of ").concat(t.length," for '").concat(r.word,"'"))}}finally{this._ignorePositionChangeEvent=!1}}},{key:"moveBack",value:function(){var e=this,t=this._getSortedHighlights(),n=(t.findIndex((function(t){return t.containsPosition(e.editor.getPosition())}))-1+t.length)%t.length,i=t[n];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);var r=this._getWord();if(r){var o=this.editor.getModel().getLineContent(i.startLineNumber);(0,Py.Z9)("".concat(o,", ").concat(n+1," of ").concat(t.length," for '").concat(r.word,"'"))}}finally{this._ignorePositionChangeEvent=!1}}},{key:"_removeDecorations",value:function(){this._decorationIds.length>0&&(this._decorationIds=this.editor.deltaDecorations(this._decorationIds,[]),this._hasWordHighlights.set(!1))}},{key:"_stopAll",value:function(){this._removeDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}},{key:"_onPositionChanged",value:function(e){this.occurrencesHighlight&&3===e.reason?this._run():this._stopAll()}},{key:"_getWord",value:function(){var e=this.editor.getSelection(),t=e.startLineNumber,n=e.startColumn;return this.model.getWordAtPosition({lineNumber:t,column:n})}},{key:"_run",value:function(){var e=this,t=this.editor.getSelection();if(t.startLineNumber===t.endLineNumber){var n=t.startColumn,i=t.endColumn,r=this._getWord();if(!r||r.startColumn>n||r.endColumn<i)this._stopAll();else{var o=this.workerRequest&&this.workerRequest.isValid(this.model,t,this._decorationIds);if(this.lastCursorPositionChangeTime=(new Date).getTime(),o)this.workerRequestCompleted&&-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();var a=++this.workerRequestTokenId;this.workerRequestCompleted=!1,this.workerRequest=function(e,t,n){return Zb.vH.has(e)?new kP(e,t,n):new SP(e,t,n)}(this.model,this.editor.getSelection(),this.editor.getOption(113)),this.workerRequest.result.then((function(t){a===e.workerRequestTokenId&&(e.workerRequestCompleted=!0,e.workerRequestValue=t||[],e._beginRenderDecorations())}),My.dL)}}}else this._stopAll()}},{key:"_beginRenderDecorations",value:function(){var e=this,t=(new Date).getTime(),n=this.lastCursorPositionChangeTime+250;t>=n?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout((function(){e.renderDecorations()}),n-t)}},{key:"renderDecorations",value:function(){this.renderDecorationsTimer=-1;var t,n=[],i=(0,tr.Z)(this.workerRequestValue);try{for(i.s();!(t=i.n()).done;){var r=t.value;r.range&&n.push({range:r.range,options:e._getDecorationOptions(r.kind)})}}catch(o){i.e(o)}finally{i.f()}this._decorationIds=this.editor.deltaDecorations(this._decorationIds,n),this._hasWordHighlights.set(this.hasDecorations())}},{key:"dispose",value:function(){this._stopAll(),this.toUnhook.dispose()}}],[{key:"_getDecorationOptions",value:function(e){return e===Zb.MY.Write?this._WRITE_OPTIONS:e===Zb.MY.Text?this._TEXT_OPTIONS:this._REGULAR_OPTIONS}}]),e}();xP._WRITE_OPTIONS=Qy.qx.register({stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:(0,eb.EN)(yP),position:$y.sh.Center}}),xP._TEXT_OPTIONS=Qy.qx.register({stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,eb.EN)(Jy.SP),position:$y.sh.Center}}),xP._REGULAR_OPTIONS=Qy.qx.register({stickiness:1,className:"wordHighlight",overviewRuler:{color:(0,eb.EN)(_P),position:$y.sh.Center}});var LP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;(0,i.Z)(this,n),(o=t.call(this)).wordHighlighter=null;var a=function(){e.hasModel()&&(o.wordHighlighter=new xP(e,r))};return o._register(e.onDidChangeModel((function(e){o.wordHighlighter&&(o.wordHighlighter.dispose(),o.wordHighlighter=null),a()}))),a(),o}return(0,r.Z)(n,[{key:"saveViewState",value:function(){return!(!this.wordHighlighter||!this.wordHighlighter.hasDecorations())}},{key:"moveNext",value:function(){this.wordHighlighter&&this.wordHighlighter.moveNext()}},{key:"moveBack",value:function(){this.wordHighlighter&&this.wordHighlighter.moveBack()}},{key:"restoreViewState",value:function(e){this.wordHighlighter&&e&&this.wordHighlighter.restore()}},{key:"dispose",value:function(){this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);LP.ID="editor.contrib.wordHighlighter",LP=hP([fP(1,Ey.i6)],LP);var EP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r))._isNext=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=LP.get(t);n&&(this._isNext?n.moveNext():n.moveBack())}}]),n}(Cy.R6),NP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.wordHighlight.next",label:ky.N("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:bP,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:65,weight:100}})}return(0,r.Z)(n)}(EP),DP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.wordHighlight.prev",label:ky.N("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:bP,kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:1089,weight:100}})}return(0,r.Z)(n)}(EP),MP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.wordHighlight.trigger",label:ky.N("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:bP.toNegated(),kbOpts:{kbExpr:Sy.u.editorTextFocus,primary:0,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=LP.get(t);i&&i.restoreViewState(!0)}}]),n}(Cy.R6);(0,Cy._K)(LP.ID,LP),(0,Cy.Qr)(NP),(0,Cy.Qr)(DP),(0,Cy.Qr)(MP),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.Rz);n&&(t.addRule(".monaco-editor .focused .selectionHighlight { background-color: ".concat(n,"; }")),t.addRule(".monaco-editor .selectionHighlight { background-color: ".concat(n.transparent(.5),"; }")));var i=e.getColor(pP);i&&t.addRule(".monaco-editor .wordHighlight { background-color: ".concat(i,"; }"));var r=e.getColor(gP);r&&t.addRule(".monaco-editor .wordHighlightStrong { background-color: ".concat(r,"; }"));var o=e.getColor(Jy.g_);o&&t.addRule(".monaco-editor .selectionHighlight { border: 1px ".concat("hc"===e.type?"dotted":"solid"," ").concat(o,"; box-sizing: border-box; }"));var a=e.getColor(vP);a&&t.addRule(".monaco-editor .wordHighlight { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(a,"; box-sizing: border-box; }"));var s=e.getColor(mP);s&&t.addRule(".monaco-editor .wordHighlightStrong { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(s,"; box-sizing: border-box; }"))}));var TP=n(16274),OP=n(86441),IP=n(20937),AP=n(76556),RP=n(49357),PP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this,e))._inSelectionMode=e.inSelectionMode,r._wordNavigationType=e.wordNavigationType,r}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=this;if(t.hasModel()){var r=(0,IP.u)(t.getOption(113)),o=t.getModel(),a=t.getSelections().map((function(e){var t=new qy.L(e.positionLineNumber,e.positionColumn),n=i._move(r,o,t,i._wordNavigationType);return i._moveTo(e,n,i._inSelectionMode)}));if(o.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,a.map((function(e){return TP.Vi.fromModelSelection(e)}))),1===a.length){var s=new qy.L(a[0].positionLineNumber,a[0].positionColumn);t.revealPosition(s,0)}}}},{key:"_moveTo",value:function(e,t,n){return n?new xy.Y(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new xy.Y(t.lineNumber,t.column,t.lineNumber,t.column)}}]),n}(Cy._l),ZP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_move",value:function(e,t,n,i){return OP.w.moveWordLeft(e,t,n,i)}}]),n}(PP),FP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_move",value:function(e,t,n,i){return OP.w.moveWordRight(e,t,n,i)}}]),n}(PP),jP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}return(0,r.Z)(n)}(ZP),HP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}return(0,r.Z)(n)}(ZP),BP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:Ey.Ao.and(Sy.u.textInputFocus,null===(e=Ey.Ao.and(ck.U,RP.c))||void 0===e?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}return(0,r.Z)(n)}(ZP),zP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}return(0,r.Z)(n)}(ZP),WP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}return(0,r.Z)(n)}(ZP),VP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:Ey.Ao.and(Sy.u.textInputFocus,null===(e=Ey.Ao.and(ck.U,RP.c))||void 0===e?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}return(0,r.Z)(n)}(ZP),YP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}return(0,r.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,nw.Z)((0,iw.Z)(n.prototype),"_move",this).call(this,(0,IP.u)(AP.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(ZP),UP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}return(0,r.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,nw.Z)((0,iw.Z)(n.prototype),"_move",this).call(this,(0,IP.u)(AP.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(ZP),KP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}return(0,r.Z)(n)}(FP),qP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:Ey.Ao.and(Sy.u.textInputFocus,null===(e=Ey.Ao.and(ck.U,RP.c))||void 0===e?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}return(0,r.Z)(n)}(FP),GP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}return(0,r.Z)(n)}(FP),$P=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}return(0,r.Z)(n)}(FP),QP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:Ey.Ao.and(Sy.u.textInputFocus,null===(e=Ey.Ao.and(ck.U,RP.c))||void 0===e?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}return(0,r.Z)(n)}(FP),XP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}return(0,r.Z)(n)}(FP),JP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}return(0,r.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,nw.Z)((0,iw.Z)(n.prototype),"_move",this).call(this,(0,IP.u)(AP.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(FP),eZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}return(0,r.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,nw.Z)((0,iw.Z)(n.prototype),"_move",this).call(this,(0,IP.u)(AP.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(FP),tZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this,e))._whitespaceHeuristics=e.whitespaceHeuristics,r._wordNavigationType=e.wordNavigationType,r}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=this;if(t.hasModel()){var r=(0,IP.u)(t.getOption(113)),o=t.getModel(),a=t.getSelections(),s=t.getOption(5),u=t.getOption(8),l=QL.zu.getAutoClosingPairs(o.getLanguageIdentifier().id),c=t._getViewModel(),d=a.map((function(e){var n=i._delete({wordSeparators:r,model:o,selection:e,whitespaceHeuristics:i._whitespaceHeuristics,autoClosingDelete:t.getOption(6),autoClosingBrackets:s,autoClosingQuotes:u,autoClosingPairs:l,autoClosedCharacters:c.getCursorAutoClosedCharacters()},i._wordNavigationType);return new db.T4(n,"")}));t.pushUndoStop(),t.executeCommands(this.id,d),t.pushUndoStop()}}}]),n}(Cy._l),nZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_delete",value:function(e,t){var n=OP.w.deleteWordLeft(e,t);return n||new Gy.e(1,1,1,1)}}]),n}(tZ),iZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_delete",value:function(e,t){var n=OP.w.deleteWordRight(e,t);if(n)return n;var i=e.model.getLineCount(),r=e.model.getLineMaxColumn(i);return new Gy.e(i,r,i,r)}}]),n}(tZ),rZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:Sy.u.writable})}return(0,r.Z)(n)}(nZ),oZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:Sy.u.writable})}return(0,r.Z)(n)}(nZ),aZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}return(0,r.Z)(n)}(nZ),sZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:Sy.u.writable})}return(0,r.Z)(n)}(iZ),uZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:Sy.u.writable})}return(0,r.Z)(n)}(iZ),lZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}return(0,r.Z)(n)}(iZ),cZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"deleteInsideWord",precondition:Sy.u.writable,label:ky.N("deleteInsideWord","Delete Word"),alias:"Delete Word"})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i=(0,IP.u)(t.getOption(113)),r=t.getModel(),o=t.getSelections().map((function(e){var t=OP.w.deleteInsideWord(i,r,e);return new db.T4(t,"")}));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}}]),n}(Cy.R6);(0,Cy.fK)(new jP),(0,Cy.fK)(new HP),(0,Cy.fK)(new BP),(0,Cy.fK)(new zP),(0,Cy.fK)(new WP),(0,Cy.fK)(new VP),(0,Cy.fK)(new KP),(0,Cy.fK)(new qP),(0,Cy.fK)(new GP),(0,Cy.fK)(new $P),(0,Cy.fK)(new QP),(0,Cy.fK)(new XP),(0,Cy.fK)(new YP),(0,Cy.fK)(new UP),(0,Cy.fK)(new JP),(0,Cy.fK)(new eZ),(0,Cy.fK)(new rZ),(0,Cy.fK)(new oZ),(0,Cy.fK)(new aZ),(0,Cy.fK)(new sZ),(0,Cy.fK)(new uZ),(0,Cy.fK)(new lZ),(0,Cy.Qr)(cZ);var dZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,mac:{primary:769},weight:100}})}return(0,r.Z)(n,[{key:"_delete",value:function(e,t){var n=OP.L.deleteWordPartLeft(e);return n||new Gy.e(1,1,1,1)}}]),n}(tZ),hZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:Sy.u.writable,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,mac:{primary:788},weight:100}})}return(0,r.Z)(n,[{key:"_delete",value:function(e,t){var n=OP.L.deleteWordPartRight(e);if(n)return n;var i=e.model.getLineCount(),r=e.model.getLineMaxColumn(i);return new Gy.e(i,r,i,r)}}]),n}(tZ),fZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_move",value:function(e,t,n,i){return OP.L.moveWordPartLeft(e,t,n)}}]),n}(PP),pZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,mac:{primary:783},weight:100}})}return(0,r.Z)(n)}(fZ);Vb.P.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");var gZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}return(0,r.Z)(n)}(fZ);Vb.P.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");var vZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_move",value:function(e,t,n,i){return OP.L.moveWordPartRight(e,t,n)}}]),n}(PP),mZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,mac:{primary:785},weight:100}})}return(0,r.Z)(n)}(vZ),_Z=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:Sy.u.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}return(0,r.Z)(n)}(vZ);(0,Cy.fK)(new dZ),(0,Cy.fK)(new hZ),(0,Cy.fK)(new pZ),(0,Cy.fK)(new gZ),(0,Cy.fK)(new mZ),(0,Cy.fK)(new _Z);var yZ=n(25741),bZ=n(41149),wZ=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},CZ=function(e,t){return function(n,i){t(n,i,e)}},kZ=new Ey.uy("accessibilityHelpWidgetVisible",!1),SZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this))._editor=e,o._widget=o._register(r.createInstance(xZ,o._editor)),o}return(0,r.Z)(n,[{key:"show",value:function(){this._widget.show()}},{key:"hide",value:function(){this._widget.hide()}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);SZ.ID="editor.contrib.accessibilityHelpController",SZ=wZ([CZ(1,cw.TG)],SZ);var xZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._contextKeyService=r,s._keybindingService=o,s._openerService=a,s._editor=e,s._isVisibleKey=kZ.bindTo(s._contextKeyService),s._domNode=(0,bZ.X)(document.createElement("div")),s._domNode.setClassName("accessibilityHelpWidget"),s._domNode.setDisplay("none"),s._domNode.setAttribute("role","dialog"),s._domNode.setAttribute("aria-hidden","true"),s._contentDomNode=(0,bZ.X)(document.createElement("div")),s._contentDomNode.setAttribute("role","document"),s._domNode.appendChild(s._contentDomNode),s._isVisible=!1,s._register(s._editor.onDidLayoutChange((function(){s._isVisible&&s._layout()}))),s._register(dw.addStandardDisposableListener(s._contentDomNode.domNode,"keydown",(function(e){if(s._isVisible&&(e.equals(2083)&&((0,Py.Z9)(yZ.Oe.emergencyConfOn),s._editor.updateOptions({accessibilitySupport:"on"}),dw.clearNode(s._contentDomNode.domNode),s._buildContent(),s._contentDomNode.domNode.focus(),e.preventDefault(),e.stopPropagation()),e.equals(2086))){(0,Py.Z9)(yZ.Oe.openingDocs);var t=s._editor.getRawOptions().accessibilityHelpUrl;"undefined"===typeof t&&(t="https://go.microsoft.com/fwlink/?linkid=852450"),s._openerService.open(Rb.o.parse(t)),e.preventDefault(),e.stopPropagation()}}))),s.onblur(s._contentDomNode.domNode,(function(){s.hide()})),s._editor.addOverlayWidget((0,Mb.Z)(s)),s}return(0,r.Z)(n,[{key:"dispose",value:function(){this._editor.removeOverlayWidget(this),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return n.ID}},{key:"getDomNode",value:function(){return this._domNode.domNode}},{key:"getPosition",value:function(){return{preference:null}}},{key:"show",value:function(){this._isVisible||(this._isVisible=!0,this._isVisibleKey.set(!0),this._layout(),this._domNode.setDisplay("block"),this._domNode.setAttribute("aria-hidden","false"),this._contentDomNode.domNode.tabIndex=0,this._buildContent(),this._contentDomNode.domNode.focus())}},{key:"_descriptionForCommand",value:function(e,t,n){var i=this._keybindingService.lookupKeybinding(e);return i?Ib.WU(t,i.getAriaLabel()):Ib.WU(n,e)}},{key:"_buildContent",value:function(){var e=this._editor.getOptions(),t=this._editor.getSelections(),n=0;if(t){var i=this._editor.getModel();i&&t.forEach((function(e){n+=i.getValueLengthInRange(e)}))}var r=function(e,t){return e&&0!==e.length?1===e.length?t?Ib.WU(yZ.Oe.singleSelectionRange,e[0].positionLineNumber,e[0].positionColumn,t):Ib.WU(yZ.Oe.singleSelection,e[0].positionLineNumber,e[0].positionColumn):t?Ib.WU(yZ.Oe.multiSelectionRange,e.length,t):e.length>0?Ib.WU(yZ.Oe.multiSelection,e.length):"":yZ.Oe.noSelection}(t,n);e.get(51)?e.get(77)?r+=yZ.Oe.readonlyDiffEditor:r+=yZ.Oe.editableDiffEditor:e.get(77)?r+=yZ.Oe.readonlyEditor:r+=yZ.Oe.editableEditor;var o=gb.dz?yZ.Oe.changeConfigToOnMac:yZ.Oe.changeConfigToOnWinLinux;switch(e.get(2)){case 0:r+="\n\n - "+o;break;case 2:r+="\n\n - "+yZ.Oe.auto_on;break;case 1:r+="\n\n - "+yZ.Oe.auto_off,r+=" "+o}e.get(126)?r+="\n\n - "+this._descriptionForCommand(QR.ID,yZ.Oe.tabFocusModeOnMsg,yZ.Oe.tabFocusModeOnMsgNoKb):r+="\n\n - "+this._descriptionForCommand(QR.ID,yZ.Oe.tabFocusModeOffMsg,yZ.Oe.tabFocusModeOffMsgNoKb),r+="\n\n - "+(gb.dz?yZ.Oe.openDocMac:yZ.Oe.openDocWinLinux),r+="\n\n"+yZ.Oe.outroMsg,this._contentDomNode.domNode.appendChild((0,BS.BO)(r)),this._contentDomNode.domNode.setAttribute("aria-label",r)}},{key:"hide",value:function(){this._isVisible&&(this._isVisible=!1,this._isVisibleKey.reset(),this._domNode.setDisplay("none"),this._domNode.setAttribute("aria-hidden","true"),this._contentDomNode.domNode.tabIndex=-1,dw.clearNode(this._contentDomNode.domNode),this._editor.focus())}},{key:"_layout",value:function(){var e=this._editor.getLayoutInfo(),t=Math.max(5,Math.min(n.WIDTH,e.width-40)),i=Math.max(5,Math.min(n.HEIGHT,e.height-40));this._domNode.setWidth(t),this._domNode.setHeight(i);var r=Math.round((e.height-i)/2);this._domNode.setTop(r);var o=Math.round((e.width-t)/2);this._domNode.setLeft(o)}}]),n}(WC.$);xZ.ID="editor.contrib.accessibilityHelpWidget",xZ.WIDTH=500,xZ.HEIGHT=300,xZ=wZ([CZ(1,Ey.i6),CZ(2,pw.d),CZ(3,ik.v4)],xZ);var LZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.showAccessibilityHelp",label:yZ.Oe.showAccessibilityHelpAction,alias:"Show Accessibility Help",precondition:void 0,kbOpts:{primary:571,weight:100,linux:{primary:1595,secondary:[571]}}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=SZ.get(t);n&&n.show()}}]),n}(Cy.R6);(0,Cy._K)(SZ.ID,SZ),(0,Cy.Qr)(LZ);var EZ=Cy._l.bindToContribution(SZ.get);(0,Cy.fK)(new EZ({id:"closeAccessibilityHelp",precondition:kZ,handler:function(e){return e.hide()},kbOpts:{weight:200,kbExpr:Sy.u.focus,primary:9,secondary:[1033]}})),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.D0);n&&t.addRule(".monaco-editor .accessibilityHelpWidget { background-color: ".concat(n,"; }"));var i=e.getColor(Jy.Hf);i&&t.addRule(".monaco-editor .accessibilityHelpWidget { color: ".concat(i,"; }"));var r=e.getColor(Jy.rh);r&&t.addRule(".monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px ".concat(r,"; }"));var o=e.getColor(Jy.lR);o&&t.addRule(".monaco-editor .accessibilityHelpWidget { border: 2px solid ".concat(o,"; }"))}));var NZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editor=e,r.widget=null,pb.zc&&(r._register(e.onDidChangeConfiguration((function(){return r.update()}))),r.update()),r}return(0,r.Z)(n,[{key:"update",value:function(){var e=!this.editor.getOption(77);!this.widget&&e?this.widget=new DZ(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}},{key:"dispose",value:function(){(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this),this.widget&&(this.widget.dispose(),this.widget=null)}}]),n}(Ky.JT);NZ.ID="editor.contrib.iPadShowKeyboard";var DZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editor=e,r._domNode=document.createElement("textarea"),r._domNode.className="iPadShowKeyboard",r._register(dw.addDisposableListener(r._domNode,"touchstart",(function(e){r.editor.focus()}))),r._register(dw.addDisposableListener(r._domNode,"focus",(function(e){r.editor.focus()}))),r.editor.addOverlayWidget((0,Mb.Z)(r)),r}return(0,r.Z)(n,[{key:"dispose",value:function(){this.editor.removeOverlayWidget(this),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return n.ID}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return{preference:1}}}]),n}(Ky.JT);DZ.ID="editor.contrib.ShowKeyboardWidget",(0,Cy._K)(NZ.ID,NZ);var MZ=n(59401),TZ=n(51342),OZ=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},IZ=function(e,t){return function(n,i){t(n,i,e)}},AZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this))._editor=e,a._modeService=o,a._widget=null,a._register(a._editor.onDidChangeModel((function(e){return a.stop()}))),a._register(a._editor.onDidChangeModelLanguage((function(e){return a.stop()}))),a._register(Zb.RW.onDidChange((function(e){return a.stop()}))),a._register(a._editor.onKeyUp((function(e){return 9===e.keyCode&&a.stop()}))),a}return(0,r.Z)(n,[{key:"dispose",value:function(){this.stop(),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"launch",value:function(){this._widget||this._editor.hasModel()&&(this._widget=new PZ(this._editor,this._modeService))}},{key:"stop",value:function(){this._widget&&(this._widget.dispose(),this._widget=null)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Ky.JT);AZ.ID="editor.contrib.inspectTokens",AZ=OZ([IZ(1,TZ.Z),IZ(2,BC.h)],AZ);var RZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.inspectTokens",label:yZ.ug.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=AZ.get(t);n&&n.launch()}}]),n}(Cy.R6);var PZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o,a;return(0,i.Z)(this,n),(o=t.call(this)).allowEditorOverflow=!0,o._editor=e,o._modeService=r,o._model=o._editor.getModel(),o._domNode=document.createElement("div"),o._domNode.className="tokens-inspect-widget",o._tokenizationSupport=(a=o._model.getLanguageIdentifier(),Zb.RW.get(a.language)||{getInitialState:function(){return MZ.nO},tokenize:function(e,t,n,i){return(0,MZ.Ri)(a.language,e,n,i)},tokenize2:function(e,t,n,i){return(0,MZ.mh)(a.id,e,n,i)}}),o._compute(o._editor.getPosition()),o._register(o._editor.onDidChangeCursorPosition((function(e){return o._compute(o._editor.getPosition())}))),o._editor.addContentWidget((0,Mb.Z)(o)),o}return(0,r.Z)(n,[{key:"dispose",value:function(){this._editor.removeContentWidget(this),(0,nw.Z)((0,iw.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return n._ID}},{key:"_compute",value:function(e){for(var t=this._getTokensAtLine(e.lineNumber),n=0,i=t.tokens1.length-1;i>=0;i--){var r=t.tokens1[i];if(e.column-1>=r.offset){n=i;break}}for(var o=0,a=t.tokens2.length>>>1;a>=0;a--)if(e.column-1>=t.tokens2[a<<1]){o=a;break}var s=this._model.getLineContent(e.lineNumber),u="";if(n<t.tokens1.length){var l=t.tokens1[n].offset,c=n+1<t.tokens1.length?t.tokens1[n+1].offset:s.length;u=s.substring(l,c)}(0,dw.reset)(this._domNode,(0,dw.$)("h2.tm-token",void 0,function(e){for(var t="",n=0,i=e.length;n<i;n++){var r=e.charCodeAt(n);switch(r){case 9:t+="\u2192";break;case 32:t+="\xb7";break;default:t+=String.fromCharCode(r)}}return t}(u),(0,dw.$)("span.tm-token-length",void 0,"".concat(u.length," ").concat(1===u.length?"char":"chars")))),(0,dw.append)(this._domNode,(0,dw.$)("hr.tokens-inspect-separator",{style:"clear:both"}));var d=1+(o<<1)<t.tokens2.length?this._decodeMetadata(t.tokens2[1+(o<<1)]):null;(0,dw.append)(this._domNode,(0,dw.$)("table.tm-metadata-table",void 0,(0,dw.$)("tbody",void 0,(0,dw.$)("tr",void 0,(0,dw.$)("td.tm-metadata-key",void 0,"language"),(0,dw.$)("td.tm-metadata-value",void 0,"".concat(d?d.languageIdentifier.language:"-?-"))),(0,dw.$)("tr",void 0,(0,dw.$)("td.tm-metadata-key",void 0,"token type"),(0,dw.$)("td.tm-metadata-value",void 0,"".concat(d?this._tokenTypeToString(d.tokenType):"-?-"))),(0,dw.$)("tr",void 0,(0,dw.$)("td.tm-metadata-key",void 0,"font style"),(0,dw.$)("td.tm-metadata-value",void 0,"".concat(d?this._fontStyleToString(d.fontStyle):"-?-"))),(0,dw.$)("tr",void 0,(0,dw.$)("td.tm-metadata-key",void 0,"foreground"),(0,dw.$)("td.tm-metadata-value",void 0,"".concat(d?RC.Il.Format.CSS.formatHex(d.foreground):"-?-"))),(0,dw.$)("tr",void 0,(0,dw.$)("td.tm-metadata-key",void 0,"background"),(0,dw.$)("td.tm-metadata-value",void 0,"".concat(d?RC.Il.Format.CSS.formatHex(d.background):"-?-")))))),(0,dw.append)(this._domNode,(0,dw.$)("hr.tokens-inspect-separator")),n<t.tokens1.length&&(0,dw.append)(this._domNode,(0,dw.$)("span.tm-token-type",void 0,t.tokens1[n].type)),this._editor.layoutContentWidget(this)}},{key:"_decodeMetadata",value:function(e){var t=Zb.RW.getColorMap(),n=Zb.NX.getLanguageId(e),i=Zb.NX.getTokenType(e),r=Zb.NX.getFontStyle(e),o=Zb.NX.getForeground(e),a=Zb.NX.getBackground(e);return{languageIdentifier:this._modeService.getLanguageIdentifier(n),tokenType:i,fontStyle:r,foreground:t[o],background:t[a]}}},{key:"_tokenTypeToString",value:function(e){switch(e){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 4:return"RegEx";default:return"??"}}},{key:"_fontStyleToString",value:function(e){var t="";return 1&e&&(t+="italic "),2&e&&(t+="bold "),4&e&&(t+="underline "),0===t.length&&(t="---"),t}},{key:"_getTokensAtLine",value:function(e){var t=this._getStateBeforeLine(e),n=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t,0),i=this._tokenizationSupport.tokenize2(this._model.getLineContent(e),!0,t,0);return{startState:t,tokens1:n.tokens,tokens2:i.tokens,endState:n.endState}}},{key:"_getStateBeforeLine",value:function(e){for(var t=this._tokenizationSupport.getInitialState(),n=1;n<e;n++){t=this._tokenizationSupport.tokenize(this._model.getLineContent(n),!0,t,0).endState}return t}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return{position:this._editor.getPosition(),preference:[2,1]}}}]),n}(Ky.JT);PZ._ID="editor.contrib.inspectTokensWidget",(0,Cy._K)(AZ.ID,AZ),(0,Cy.Qr)(RZ),(0,eb.Ic)((function(e,t){var n=e.getColor(Jy.CN);if(n){var i=e.type===rw.e.HIGH_CONTRAST?2:1;t.addRule(".monaco-editor .tokens-inspect-widget { border: ".concat(i,"px solid ").concat(n,"; }")),t.addRule(".monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: ".concat(n,"; }"))}var r=e.getColor(Jy.yJ);r&&t.addRule(".monaco-editor .tokens-inspect-widget { background-color: ".concat(r,"; }"));var o=e.getColor(Jy.Sb);o&&t.addRule(".monaco-editor .tokens-inspect-widget { color: ".concat(o,"; }"))}));var ZZ=n(73921),FZ=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},jZ=function(e,t){return function(n,i){t(n,i,e)}},HZ=function(){function e(t){(0,i.Z)(this,e),this.quickInputService=t,this.registry=zO.B.as(ZZ.IP.Quickaccess)}return(0,r.Z)(e,[{key:"provide",value:function(t){var n=this,i=new Ky.SL;i.add(t.onDidAccept((function(){var e=(0,Ti.Z)(t.selectedItems,1)[0];e&&n.quickInputService.quickAccess.show(e.prefix,{preserveValue:!0})}))),i.add(t.onDidChangeValue((function(t){var i=n.registry.getQuickAccessProvider(t.substr(e.PREFIX.length));i&&i.prefix&&i.prefix!==e.PREFIX&&n.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})));var r=this.getQuickAccessProviders(),o=r.editorProviders,a=r.globalProviders;return t.items=0===o.length||0===a.length?(0,zt.Z)(0===o.length?a:o):[{label:(0,ky.N)("globalCommands","global commands"),type:"separator"}].concat((0,zt.Z)(a),[{label:(0,ky.N)("editorCommands","editor commands"),type:"separator"}],(0,zt.Z)(o)),i}},{key:"getQuickAccessProviders",value:function(){var t,n=[],i=[],r=(0,tr.Z)(this.registry.getQuickAccessProviders().sort((function(e,t){return e.prefix.localeCompare(t.prefix)})));try{for(r.s();!(t=r.n()).done;){var o=t.value;if(o.prefix!==e.PREFIX){var a,s=(0,tr.Z)(o.helpEntries);try{for(s.s();!(a=s.n()).done;){var u=a.value,l=u.prefix||o.prefix,c=l||"\u2026";(u.needsEditor?i:n).push({prefix:l,label:c,ariaLabel:(0,ky.N)("helpPickAriaLabel","{0}, {1}",c,u.description),description:u.description})}}catch(d){s.e(d)}finally{s.f()}}}}catch(d){r.e(d)}finally{r.f()}return{editorProviders:i,globalProviders:n}}}]),e}();HZ.PREFIX="?",HZ=FZ([jZ(0,DC.eJ)],HZ),zO.B.as(ZZ.IP.Quickaccess).registerQuickAccessProvider({ctor:HZ,prefix:"",helpEntries:[{description:yZ.ld.helpQuickAccessActionLabel,needsEditor:!0}]});var BZ=function(){function e(t){(0,i.Z)(this,e),this.options=t,this.rangeHighlightDecorationId=void 0}return(0,r.Z)(e,[{key:"provide",value:function(e,t){var n,i=this,r=new Ky.SL;e.canAcceptInBackground=!!(null===(n=this.options)||void 0===n?void 0:n.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;var o=r.add(new Ky.XK);return o.value=this.doProvide(e,t),r.add(this.onDidActiveTextEditorControlChange((function(){o.value=void 0,o.value=i.doProvide(e,t)}))),r}},{key:"doProvide",value:function(e,t){var n=this,i=new Ky.SL,r=this.activeTextEditorControl;if(r&&this.canProvideWithTextEditor(r)){var o={editor:r},a=(0,Mx.Pi)(r);if(a){var s=(0,cC.f6)(r.saveViewState());i.add(a.onDidChangeCursorPosition((function(){s=(0,cC.f6)(r.saveViewState())}))),o.restoreViewState=function(){s&&r===n.activeTextEditorControl&&r.restoreViewState(s)},i.add((0,CC.I)(t.onCancellationRequested)((function(){var e;return null===(e=o.restoreViewState)||void 0===e?void 0:e.call(o)})))}i.add((0,Ky.OF)((function(){return n.clearDecorations(r)}))),i.add(this.provideWithTextEditor(o,e,t))}else i.add(this.provideWithoutTextEditor(e,t));return i}},{key:"canProvideWithTextEditor",value:function(e){return!0}},{key:"gotoLocation",value:function(e,t){var n=e.editor;n.setSelection(t.range),n.revealRangeInCenter(t.range,0),t.preserveFocus||n.focus()}},{key:"getModel",value:function(e){var t;return(0,Mx.QI)(e)?null===(t=e.getModel())||void 0===t?void 0:t.modified:e.getModel()}},{key:"addDecorations",value:function(e,t){var n=this;e.changeDecorations((function(e){var i=[];n.rangeHighlightDecorationId&&(i.push(n.rangeHighlightDecorationId.overviewRulerDecorationId),i.push(n.rangeHighlightDecorationId.rangeHighlightId),n.rangeHighlightDecorationId=void 0);var r=[{range:t,options:{className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{overviewRuler:{color:(0,eb.EN)(Xy.m9),position:$y.sh.Full}}}],o=e.deltaDecorations(i,r),a=(0,Ti.Z)(o,2),s=a[0],u=a[1];n.rangeHighlightDecorationId={rangeHighlightId:s,overviewRulerDecorationId:u}}))}},{key:"clearDecorations",value:function(e){var t=this.rangeHighlightDecorationId;t&&(e.changeDecorations((function(e){e.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])})),this.rangeHighlightDecorationId=void 0)}}]),e}(),zZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{canAcceptInBackground:!0})}return(0,r.Z)(n,[{key:"provideWithoutTextEditor",value:function(e){var t=(0,ky.N)("cannotRunGotoLine","Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,Ky.JT.None}},{key:"provideWithTextEditor",value:function(e,t,i){var r=this,o=e.editor,a=new Ky.SL;a.add(t.onDidAccept((function(n){var i=(0,Ti.Z)(t.selectedItems,1)[0];if(i){if(!r.isValidLineNumber(o,i.lineNumber))return;r.gotoLocation(e,{range:r.toRange(i.lineNumber,i.column),keyMods:t.keyMods,preserveFocus:n.inBackground}),n.inBackground||t.hide()}})));var s=function(){var e=r.parsePosition(o,t.value.trim().substr(n.PREFIX.length)),i=r.getPickLabel(o,e.lineNumber,e.column);if(t.items=[{lineNumber:e.lineNumber,column:e.column,label:i}],t.ariaLabel=i,r.isValidLineNumber(o,e.lineNumber)){var a=r.toRange(e.lineNumber,e.column);o.revealRangeInCenter(a,0),r.addDecorations(o,a)}else r.clearDecorations(o)};s(),a.add(t.onDidChangeValue((function(){return s()})));var u=(0,Mx.Pi)(o);u&&(2===u.getOptions().get(56).renderType&&(u.updateOptions({lineNumbers:"on"}),a.add((0,Ky.OF)((function(){return u.updateOptions({lineNumbers:"relative"})})))));return a}},{key:"toRange",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}},{key:"parsePosition",value:function(e,t){var n=t.split(/,|:|#/).map((function(e){return parseInt(e,10)})).filter((function(e){return!isNaN(e)})),i=this.lineCount(e)+1;return{lineNumber:n[0]>0?n[0]:i+n[0],column:n[1]}}},{key:"getPickLabel",value:function(e,t,n){if(this.isValidLineNumber(e,t))return this.isValidColumn(e,t,n)?(0,ky.N)("gotoLineColumnLabel","Go to line {0} and character {1}.",t,n):(0,ky.N)("gotoLineLabel","Go to line {0}.",t);var i=e.getPosition()||{lineNumber:1,column:1},r=this.lineCount(e);return r>1?(0,ky.N)("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",i.lineNumber,i.column,r):(0,ky.N)("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",i.lineNumber,i.column)}},{key:"isValidLineNumber",value:function(e,t){return!(!t||"number"!==typeof t)&&(t>0&&t<=this.lineCount(e))}},{key:"isValidColumn",value:function(e,t,n){if(!n||"number"!==typeof n)return!1;var i=this.getModel(e);if(!i)return!1;var r={lineNumber:t,column:n};return i.validatePosition(r).equals(r)}},{key:"lineCount",value:function(e){var t,n;return null!==(n=null===(t=this.getModel(e))||void 0===t?void 0:t.getLineCount())&&void 0!==n?n:0}}]),n}(BZ);zZ.PREFIX=":";var WZ=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},VZ=function(e,t){return function(n,i){t(n,i,e)}},YZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editorService=e,r.onDidActiveTextEditorControlChange=kw.ju.None,r}return(0,r.Z)(n,[{key:"activeTextEditorControl",get:function(){return(0,cC.f6)(this.editorService.getFocusedCodeEditor())}}]),n}(zZ);YZ=WZ([VZ(0,mb.$)],YZ),zO.B.as(ZZ.IP.Quickaccess).registerQuickAccessProvider({ctor:YZ,prefix:YZ.PREFIX,helpEntries:[{description:yZ.qq.gotoLineActionLabel,needsEditor:!0}]});var UZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.gotoLine",label:yZ.qq.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:2085,mac:{primary:293},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e){e.get(DC.eJ).quickAccess.show(YZ.PREFIX)}}]),n}(Cy.R6);(0,Cy.Qr)(UZ);var KZ=[void 0,[]];function qZ(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=t;return r.values&&r.values.length>1?function(e,t,n,i){var r,o=0,a=[],s=(0,tr.Z)(t);try{for(s.s();!(r=s.n()).done;){var u=GZ(e,r.value,n,i),l=(0,Ti.Z)(u,2),c=l[0],d=l[1];if("number"!==typeof c)return KZ;o+=c,a.push.apply(a,(0,zt.Z)(d))}}catch(h){s.e(h)}finally{s.f()}return[o,$Z(a)]}(e,r.values,n,i):GZ(e,t,n,i)}function GZ(e,t,n,i){var r=(0,Ax.EW)(t.original,t.originalLowercase,n,e,e.toLowerCase(),i,!0);return r?[r[0],(0,Ax.mB)(r)]:KZ}function $Z(e){var t,n=e.sort((function(e,t){return e.start-t.start})),i=[],r=void 0,o=(0,tr.Z)(n);try{for(o.s();!(t=o.n()).done;){var a=t.value;r&&QZ(r,a)?(r.start=Math.min(r.start,a.start),r.end=Math.max(r.end,a.end)):(r=a,i.push(a))}}catch(s){o.e(s)}finally{o.f()}return i}function QZ(e,t){return!(e.end<t.start)&&!(t.end<e.start)}var XZ,JZ=" ";function eF(e){"string"!==typeof e&&(e="");var t=e.toLowerCase(),n=tF(e),i=n.pathNormalized,r=n.normalized,o=n.normalizedLowercase,a=i.indexOf(RI.ir)>=0,s=void 0,u=e.split(JZ);if(u.length>1){var l,c=(0,tr.Z)(u);try{for(c.s();!(l=c.n()).done;){var d=l.value,h=tF(d),f=h.pathNormalized,p=h.normalized,g=h.normalizedLowercase;p&&(s||(s=[]),s.push({original:d,originalLowercase:d.toLowerCase(),pathNormalized:f,normalized:p,normalizedLowercase:g}))}}catch(v){c.e(v)}finally{c.f()}}return{original:e,originalLowercase:t,pathNormalized:i,normalized:r,normalizedLowercase:o,values:s,containsPathSeparator:a}}function tF(e){var t;t=gb.ED?e.replace(/\//g,RI.ir):e.replace(/\\/g,RI.ir);var n=(0,Ib.R1)(t).replace(/\s/g,"");return{pathNormalized:t,normalized:n,normalizedLowercase:n.toLowerCase()}}function nF(e){return Array.isArray(e)?eF(e.map((function(e){return e.original})).join(JZ)):eF(e.original)}var iF=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},rF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Object.create(null);return(0,i.Z)(this,n),(e=t.call(this,r)).options=r,e.options.canAcceptInBackground=!0,e}return(0,r.Z)(n,[{key:"provideWithoutTextEditor",value:function(e){return this.provideLabelPick(e,(0,ky.N)("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),Ky.JT.None}},{key:"provideWithTextEditor",value:function(e,t,n){var i=e.editor,r=this.getModel(i);return r?Zb.vJ.has(r)?this.doProvideWithEditorSymbols(e,r,t,n):this.doProvideWithoutEditorSymbols(e,r,t,n):Ky.JT.None}},{key:"doProvideWithoutEditorSymbols",value:function(e,t,n,i){var r=this,o=new Ky.SL;return this.provideLabelPick(n,(0,ky.N)("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),iF(r,void 0,void 0,ti().mark((function r(){return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.waitForLanguageSymbolRegistry(t,o);case 2:if(r.sent&&!i.isCancellationRequested){r.next=5;break}return r.abrupt("return");case 5:o.add(this.doProvideWithEditorSymbols(e,t,n,i));case 6:case"end":return r.stop()}}),r,this)}))),o}},{key:"provideLabelPick",value:function(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}},{key:"waitForLanguageSymbolRegistry",value:function(e,t){return iF(this,void 0,void 0,ti().mark((function n(){var i,r,o;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!Zb.vJ.has(e)){n.next=2;break}return n.abrupt("return",!0);case 2:return r=new Promise((function(e){return i=e})),o=t.add(Zb.vJ.onDidChange((function(){Zb.vJ.has(e)&&(o.dispose(),i(!0))}))),t.add((0,Ky.OF)((function(){return i(!1)}))),n.abrupt("return",r);case 6:case"end":return n.stop()}}),n)})))}},{key:"doProvideWithEditorSymbols",value:function(e,t,i,r){var o=this,a=e.editor,s=new Ky.SL;s.add(i.onDidAccept((function(t){var n=(0,Ti.Z)(i.selectedItems,1)[0];n&&n.range&&(o.gotoLocation(e,{range:n.range.selection,keyMods:i.keyMods,preserveFocus:t.inBackground}),t.inBackground||i.hide())}))),s.add(i.onDidTriggerItemButton((function(t){var n=t.item;n&&n.range&&(o.gotoLocation(e,{range:n.range.selection,keyMods:i.keyMods,forceSideBySide:!0}),i.hide())})));var u=this.getDocumentSymbols(t,r),l=void 0,c=function(){return iF(o,void 0,void 0,ti().mark((function e(){var t,o;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return null===l||void 0===l||l.dispose(!0),i.busy=!1,l=new Tb.A(r),i.busy=!0,e.prev=4,t=eF(i.value.substr(n.PREFIX.length).trim()),e.next=8,this.doGetSymbolPicks(u,t,void 0,l.token);case 8:if(o=e.sent,!r.isCancellationRequested){e.next=11;break}return e.abrupt("return");case 11:o.length>0?i.items=o:t.original.length>0?this.provideLabelPick(i,(0,ky.N)("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(i,(0,ky.N)("noSymbolResults","No editor symbols"));case 12:return e.prev=12,r.isCancellationRequested||(i.busy=!1),e.finish(12);case 15:case"end":return e.stop()}}),e,this,[[4,,12,15]])})))};s.add(i.onDidChangeValue((function(){return c()}))),c();var d=!0;return s.add(i.onDidChangeActive((function(){var e=(0,Ti.Z)(i.activeItems,1)[0];if(e&&e.range){if(d)return void(d=!1);a.revealRangeInCenter(e.range.selection,0),o.addDecorations(a,e.range.decoration)}}))),s}},{key:"doGetSymbolPicks",value:function(e,t,i,r){return iF(this,void 0,void 0,ti().mark((function o(){var a,s,u,l,c,d,h,f,p,g,v,m,_,y,b,w,C,k,S,x,L,E,N,D,M,T,O,I,A,R,P,Z,F,j=this;return ti().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,e;case 2:if(a=o.sent,!r.isCancellationRequested){o.next=5;break}return o.abrupt("return",[]);case 5:s=0===t.original.indexOf(n.SCOPE_PREFIX),u=s?1:0,t.values&&t.values.length>1?(l=nF(t.values[0]),c=nF(t.values.slice(1))):l=t,d=[],h=0;case 10:if(!(h<a.length)){o.next=41;break}if(f=a[h],p=(0,Ib.fy)(f.name),g="$(symbol-".concat(Zb.uZ.toString(f.kind)||"property",") ").concat(p),v=g.length-p.length,m=f.containerName,(null===i||void 0===i?void 0:i.extraContainerLabel)&&(m=m?"".concat(i.extraContainerLabel," \u2022 ").concat(m):i.extraContainerLabel),_=void 0,y=void 0,b=void 0,w=void 0,!(t.original.length>u)){o.next=36;break}if(C=!1,l!==t&&(k=qZ(g,Object.assign(Object.assign({},t),{values:void 0}),u,v),S=(0,Ti.Z)(k,2),_=S[0],y=S[1],"number"===typeof _&&(C=!0)),"number"===typeof _){o.next=31;break}if(x=qZ(g,l,u,v),L=(0,Ti.Z)(x,2),_=L[0],y=L[1],"number"===typeof _){o.next=31;break}return o.abrupt("continue",38);case 31:if(C||!c){o.next=36;break}if(m&&c.original.length>0&&(E=qZ(m,c),N=(0,Ti.Z)(E,2),b=N[0],w=N[1]),"number"===typeof b){o.next=35;break}return o.abrupt("continue",38);case 35:"number"===typeof _&&(_+=b);case 36:D=f.tags&&f.tags.indexOf(1)>=0,d.push({index:h,kind:f.kind,score:_,label:g,ariaLabel:p,description:m,highlights:D?void 0:{label:y,description:w},range:{selection:Gy.e.collapseToStart(f.selectionRange),decoration:f.range},strikethrough:D,buttons:function(){var e,t,n=(null===(e=j.options)||void 0===e?void 0:e.openSideBySideDirection)?null===(t=j.options)||void 0===t?void 0:t.openSideBySideDirection():void 0;if(n)return[{iconClass:"right"===n?xw.lA.splitHorizontal.classNames:xw.lA.splitVertical.classNames,tooltip:"right"===n?(0,ky.N)("openToSide","Open to the Side"):(0,ky.N)("openToBottom","Open to the Bottom")}]}()});case 38:h++,o.next=10;break;case 41:if(M=d.sort((function(e,t){return s?j.compareByKindAndScore(e,t):j.compareByScore(e,t)})),T=[],s){O=function(){A&&"number"===typeof I&&R>0&&(A.label=(0,Ib.WU)(aF[I]||oF,R))},I=void 0,A=void 0,R=0,P=(0,tr.Z)(M);try{for(P.s();!(Z=P.n()).done;)F=Z.value,I!==F.kind?(O(),I=F.kind,R=1,A={type:"separator"},T.push(A)):R++,T.push(F)}catch(H){P.e(H)}finally{P.f()}O()}else M.length>0&&(T=[{label:(0,ky.N)("symbols","symbols ({0})",d.length),type:"separator"}].concat((0,zt.Z)(M)));return o.abrupt("return",T);case 45:case"end":return o.stop()}}),o)})))}},{key:"compareByScore",value:function(e,t){if("number"!==typeof e.score&&"number"===typeof t.score)return 1;if("number"===typeof e.score&&"number"!==typeof t.score)return-1;if("number"===typeof e.score&&"number"===typeof t.score){if(e.score>t.score)return-1;if(e.score<t.score)return 1}return e.index<t.index?-1:e.index>t.index?1:0}},{key:"compareByKindAndScore",value:function(e,t){var n=aF[e.kind]||oF,i=aF[t.kind]||oF,r=n.localeCompare(i);return 0===r?this.compareByScore(e,t):r}},{key:"getDocumentSymbols",value:function(e,t){return iF(this,void 0,void 0,ti().mark((function n(){var i;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,bM.create(e,t);case 2:return i=n.sent,n.abrupt("return",t.isCancellationRequested?[]:i.asListOfDocumentSymbols());case 4:case"end":return n.stop()}}),n)})))}}]),n}(BZ);rF.PREFIX="@",rF.SCOPE_PREFIX=":",rF.PREFIX_BY_CATEGORY="".concat(rF.PREFIX).concat(rF.SCOPE_PREFIX);var oF=(0,ky.N)("property","properties ({0})"),aF=(XZ={},(0,ht.Z)(XZ,5,(0,ky.N)("method","methods ({0})")),(0,ht.Z)(XZ,11,(0,ky.N)("function","functions ({0})")),(0,ht.Z)(XZ,8,(0,ky.N)("_constructor","constructors ({0})")),(0,ht.Z)(XZ,12,(0,ky.N)("variable","variables ({0})")),(0,ht.Z)(XZ,4,(0,ky.N)("class","classes ({0})")),(0,ht.Z)(XZ,22,(0,ky.N)("struct","structs ({0})")),(0,ht.Z)(XZ,23,(0,ky.N)("event","events ({0})")),(0,ht.Z)(XZ,24,(0,ky.N)("operator","operators ({0})")),(0,ht.Z)(XZ,10,(0,ky.N)("interface","interfaces ({0})")),(0,ht.Z)(XZ,2,(0,ky.N)("namespace","namespaces ({0})")),(0,ht.Z)(XZ,3,(0,ky.N)("package","packages ({0})")),(0,ht.Z)(XZ,25,(0,ky.N)("typeParameter","type parameters ({0})")),(0,ht.Z)(XZ,1,(0,ky.N)("modules","modules ({0})")),(0,ht.Z)(XZ,6,(0,ky.N)("property","properties ({0})")),(0,ht.Z)(XZ,9,(0,ky.N)("enum","enumerations ({0})")),(0,ht.Z)(XZ,21,(0,ky.N)("enumMember","enumeration members ({0})")),(0,ht.Z)(XZ,14,(0,ky.N)("string","strings ({0})")),(0,ht.Z)(XZ,0,(0,ky.N)("file","files ({0})")),(0,ht.Z)(XZ,17,(0,ky.N)("array","arrays ({0})")),(0,ht.Z)(XZ,15,(0,ky.N)("number","numbers ({0})")),(0,ht.Z)(XZ,16,(0,ky.N)("boolean","booleans ({0})")),(0,ht.Z)(XZ,18,(0,ky.N)("object","objects ({0})")),(0,ht.Z)(XZ,19,(0,ky.N)("key","keys ({0})")),(0,ht.Z)(XZ,7,(0,ky.N)("field","fields ({0})")),(0,ht.Z)(XZ,13,(0,ky.N)("constant","constants ({0})")),XZ),sF=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},uF=function(e,t){return function(n,i){t(n,i,e)}},lF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editorService=e,r.onDidActiveTextEditorControlChange=kw.ju.None,r}return(0,r.Z)(n,[{key:"activeTextEditorControl",get:function(){return(0,cC.f6)(this.editorService.getFocusedCodeEditor())}}]),n}(rF);lF=sF([uF(0,mb.$)],lF),zO.B.as(ZZ.IP.Quickaccess).registerQuickAccessProvider({ctor:lF,prefix:rF.PREFIX,helpEntries:[{description:yZ.aq.quickOutlineActionLabel,prefix:rF.PREFIX,needsEditor:!0},{description:yZ.aq.quickOutlineByCategoryActionLabel,prefix:rF.PREFIX_BY_CATEGORY,needsEditor:!0}]});var cF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.quickOutline",label:yZ.aq.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:Sy.u.hasDocumentSymbolProvider,kbOpts:{kbExpr:Sy.u.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}return(0,r.Z)(n,[{key:"run",value:function(e){e.get(DC.eJ).quickAccess.show(rF.PREFIX)}}]),n}(Cy.R6);(0,Cy.Qr)(cF);var dF,hF=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function fF(e){var t=e;return Array.isArray(t.items)}function pF(e){var t=e;return!!t.picks&&t.additionalPicks instanceof Promise}!function(e){e[e.NO_ACTION=0]="NO_ACTION",e[e.CLOSE_PICKER=1]="CLOSE_PICKER",e[e.REFRESH_PICKER=2]="REFRESH_PICKER",e[e.REMOVE_ITEM=3]="REMOVE_ITEM"}(dF||(dF={}));var gF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this)).prefix=e,o.options=r,o}return(0,r.Z)(n,[{key:"provide",value:function(e,t){var i,r=this,o=new Ky.SL;e.canAcceptInBackground=!!(null===(i=this.options)||void 0===i?void 0:i.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;var a=void 0,s=o.add(new Ky.XK),u=function(){return hF(r,void 0,void 0,ti().mark((function i(){var r,o,u,l,c,d,h,f,p=this;return ti().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(r=s.value=new Ky.SL,null===a||void 0===a||a.dispose(!0),e.busy=!1,a=new Tb.A(t),o=a.token,u=e.value.substr(this.prefix.length).trim(),l=this.getPicks(u,r,o),c=function(t,n){var i,r,o=void 0;if(fF(t)?(r=t.items,o=t.active):r=t,0===r.length){if(n)return!1;u.length>0&&(null===(i=p.options)||void 0===i?void 0:i.noResultsPick)&&(r=[p.options.noResultsPick])}return e.items=r,o&&(e.activeItems=[o]),!0},null!==l){i.next=11;break}i.next=33;break;case 11:if(!pF(l)){i.next=18;break}return d=!1,h=!1,i.next=16,Promise.all([hF(p,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,Uy.Vs)(n.FAST_PICKS_RACE_DELAY);case 2:if(!o.isCancellationRequested){e.next=4;break}return e.abrupt("return");case 4:h||(d=c(l.picks,!0));case 5:case"end":return e.stop()}}),e)}))),hF(p,void 0,void 0,ti().mark((function t(){var n,i,r,a,s,u,f;return ti().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.busy=!0,t.prev=1,t.next=4,l.additionalPicks;case 4:if(n=t.sent,!o.isCancellationRequested){t.next=7;break}return t.abrupt("return");case 7:r=void 0,fF(l.picks)?(i=l.picks.items,r=l.picks.active):i=l.picks,s=void 0,fF(n)?(a=n.items,s=n.active):a=n,(a.length>0||!d)&&(u=void 0,r||s||(f=e.activeItems[0])&&-1!==i.indexOf(f)&&(u=f),c({items:[].concat((0,zt.Z)(i),(0,zt.Z)(a)),active:r||s||u}));case 12:return t.prev=12,o.isCancellationRequested||(e.busy=!1),h=!0,t.finish(12);case 16:case"end":return t.stop()}}),t,null,[[1,,12,16]])})))]);case 16:i.next=33;break;case 18:if(l instanceof Promise){i.next=22;break}c(l),i.next=33;break;case 22:return e.busy=!0,i.prev=23,i.next=26,l;case 26:if(f=i.sent,!o.isCancellationRequested){i.next=29;break}return i.abrupt("return");case 29:c(f);case 30:return i.prev=30,o.isCancellationRequested||(e.busy=!1),i.finish(30);case 33:case"end":return i.stop()}}),i,this,[[23,,30,33]])})))};return o.add(e.onDidChangeValue((function(){return u()}))),u(),o.add(e.onDidAccept((function(t){var n=(0,Ti.Z)(e.selectedItems,1)[0];"function"===typeof(null===n||void 0===n?void 0:n.accept)&&(t.inBackground||e.hide(),n.accept(e.keyMods,t))}))),o.add(e.onDidTriggerItemButton((function(n){var i=n.button,o=n.item;return hF(r,void 0,void 0,ti().mark((function n(){var r,a,s,l,c,d,h;return ti().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if("function"!==typeof o.trigger){n.next=25;break}if(!((s=null!==(a=null===(r=o.buttons)||void 0===r?void 0:r.indexOf(i))&&void 0!==a?a:-1)>=0)){n.next=25;break}if("number"!==typeof(l=o.trigger(s,e.keyMods))){n.next=8;break}n.t0=l,n.next=11;break;case 8:return n.next=10,l;case 10:n.t0=n.sent;case 11:if(c=n.t0,!t.isCancellationRequested){n.next=14;break}return n.abrupt("return");case 14:n.t1=c,n.next=n.t1===dF.NO_ACTION?17:n.t1===dF.CLOSE_PICKER?18:n.t1===dF.REFRESH_PICKER?20:n.t1===dF.REMOVE_ITEM?22:25;break;case 17:return n.abrupt("break",25);case 18:return e.hide(),n.abrupt("break",25);case 20:return u(),n.abrupt("break",25);case 22:return-1!==(d=e.items.indexOf(o))&&((h=e.items.slice()).splice(d,1),e.items=h),n.abrupt("break",25);case 25:case"end":return n.stop()}}),n)})))}))),o}}]),n}(Ky.JT);function vF(e,t){return t&&(e.stack||e.stacktrace)?ky.N("stackTrace.format","{0}: {1}",_F(e),mF(e.stack)||mF(e.stacktrace)):_F(e)}function mF(e){return Array.isArray(e)?e.join("\n"):e}function _F(e){return"string"===typeof e.code&&"number"===typeof e.errno&&"string"===typeof e.syscall?ky.N("nodeExceptionMessage","A system error occurred ({0})",e.message):e.message||ky.N("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function yF(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e)return ky.N("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(e)){var n=Ny.kX(e),i=yF(n[0],t);return n.length>1?ky.N("error.moreErrors","{0} ({1} errors in total)",i,n.length):i}if(cC.HD(e))return e;if(e.detail){var r=e.detail;if(r.error)return vF(r.error,t);if(r.exception)return vF(r.exception,t)}return e.stack?vF(e,t):e.message?e.message:ky.N("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}gF.FAST_PICKS_RACE_DELAY=200;var bF=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},wF=function(e,t){return function(n,i){t(n,i,e)}},CF=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},kF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u){var l;return(0,i.Z)(this,n),(l=t.call(this,n.PREFIX,e)).instantiationService=r,l.keybindingService=o,l.commandService=a,l.telemetryService=s,l.notificationService=u,l.commandsHistory=l._register(l.instantiationService.createInstance(SF)),l.options=e,l}return(0,r.Z)(n,[{key:"getPicks",value:function(e,t,i){return CF(this,void 0,void 0,ti().mark((function r(){var o,a,s,u,l,c,d,h,f,p,g,v,m,_,y,b,w=this;return ti().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.getCommandPicks(t,i);case 2:if(o=r.sent,!i.isCancellationRequested){r.next=5;break}return r.abrupt("return",[]);case 5:a=[],s=(0,tr.Z)(o);try{for(s.s();!(u=s.n()).done;)l=u.value,c=(0,cC.f6)(n.WORD_FILTER(e,l.label)),d=l.commandAlias?(0,cC.f6)(n.WORD_FILTER(e,l.commandAlias)):void 0,c||d?(l.highlights={label:c,detail:this.options.showAlias?d:void 0},a.push(l)):e===l.commandId&&a.push(l)}catch(C){s.e(C)}finally{s.f()}for(h=new Map,f=0,p=a;f<p.length;f++)g=p[f],(v=h.get(g.label))?(g.description=g.commandId,v.description=v.commandId):h.set(g.label,g);a.sort((function(e,t){var n=w.commandsHistory.peek(e.commandId),i=w.commandsHistory.peek(t.commandId);return n&&i?n>i?-1:1:n?-1:i?1:e.label.localeCompare(t.label)})),m=[],_=!1,y=ti().mark((function e(){var t,n,i;return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=a[b],n=w.keybindingService.lookupKeybinding(t.commandId),i=n?(0,ky.N)("commandPickAriaLabelWithKeybinding","{0}, {1}",t.label,n.getAriaLabel()):t.label,0===b&&w.commandsHistory.peek(t.commandId)&&(m.push({type:"separator",label:(0,ky.N)("recentlyUsed","recently used")}),_=!0),0!==b&&_&&!w.commandsHistory.peek(t.commandId)&&(m.push({type:"separator",label:(0,ky.N)("morecCommands","other commands")}),_=!1),m.push(Object.assign(Object.assign({},t),{ariaLabel:i,detail:w.options.showAlias&&t.commandAlias!==t.label?t.commandAlias:void 0,keybinding:n,accept:function(){return CF(w,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.commandId,from:"quick open"}),e.prev=2,e.next=5,this.commandService.executeCommand(t.commandId);case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(2),(0,My.VV)(e.t0)||this.notificationService.error((0,ky.N)("canNotRun","Command '{0}' resulted in an error ({1})",t.label,yF(e.t0)));case 10:case"end":return e.stop()}}),e,this,[[2,7]])})))}}));case 6:case"end":return e.stop()}}),e)})),b=0;case 15:if(!(b<a.length)){r.next=20;break}return r.delegateYield(y(),"t0",17);case 17:b++,r.next=15;break;case 20:return r.abrupt("return",m);case 21:case"end":return r.stop()}}),r,this)})))}}]),n}(gF);kF.PREFIX=">",kF.WORD_FILTER=(0,Ax.or)(Ax.Ji,Ax.KZ,Ax.ir),kF=bF([wF(1,cw.TG),wF(2,pw.d),wF(3,Vb.H),wF(4,Hw.b),wF(5,jw.lT)],kF);var SF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this)).storageService=e,o.configurationService=r,o.configuredCommandsHistoryLength=0,o.updateConfiguration(),o.load(),o.registerListeners(),o}return(0,r.Z)(n,[{key:"registerListeners",value:function(){var e=this;this._register(this.configurationService.onDidChangeConfiguration((function(){return e.updateConfiguration()})))}},{key:"updateConfiguration",value:function(){this.configuredCommandsHistoryLength=n.getConfiguredCommandHistoryLength(this.configurationService),n.cache&&n.cache.limit!==this.configuredCommandsHistoryLength&&(n.cache.limit=this.configuredCommandsHistoryLength,n.saveState(this.storageService))}},{key:"load",value:function(){var e,t=this.storageService.get(n.PREF_KEY_CACHE,0);if(t)try{e=JSON.parse(t)}catch(o){}var i,r=n.cache=new bC.z6(this.configuredCommandsHistoryLength,1);e&&(i=e.usesLRU?e.entries:e.entries.sort((function(e,t){return e.value-t.value})),i.forEach((function(e){return r.set(e.key,e.value)})));n.counter=this.storageService.getNumber(n.PREF_KEY_COUNTER,0,n.counter)}},{key:"push",value:function(e){n.cache&&(n.cache.set(e,n.counter++),n.saveState(this.storageService))}},{key:"peek",value:function(e){var t;return null===(t=n.cache)||void 0===t?void 0:t.peek(e)}}],[{key:"saveState",value:function(e){if(n.cache){var t={usesLRU:!0,entries:[]};n.cache.forEach((function(e,n){return t.entries.push({key:n,value:e})})),e.store(n.PREF_KEY_CACHE,JSON.stringify(t),0,0),e.store(n.PREF_KEY_COUNTER,n.counter,0,0)}}},{key:"getConfiguredCommandHistoryLength",value:function(e){var t,i,r=null===(i=null===(t=e.getValue().workbench)||void 0===t?void 0:t.commandPalette)||void 0===i?void 0:i.history;return"number"===typeof r?r:n.DEFAULT_COMMANDS_HISTORY_LENGTH}}]),n}(Ky.JT);SF.DEFAULT_COMMANDS_HISTORY_LENGTH=50,SF.PREF_KEY_CACHE="commandPalette.mru.cache",SF.PREF_KEY_COUNTER="commandPalette.mru.counter",SF.counter=1,SF=bF([wF(0,wC.Uy),wF(1,ZC.Ui)],SF);var xF=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},LF=function(e,t){return function(n,i){t(n,i,e)}},EF=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},NF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u){var l;return(0,i.Z)(this,n),(l=t.call(this,{showAlias:!1},e,o,a,s,u)).codeEditorService=r,l}return(0,r.Z)(n,[{key:"activeTextEditorControl",get:function(){return(0,cC.f6)(this.codeEditorService.getFocusedCodeEditor())}},{key:"getCommandPicks",value:function(){return EF(this,void 0,void 0,ti().mark((function e(){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getCodeEditorCommandPicks());case 1:case"end":return e.stop()}}),e,this)})))}}]),n}(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u){return(0,i.Z)(this,n),t.call(this,e,r,o,a,s,u)}return(0,r.Z)(n,[{key:"getCodeEditorCommandPicks",value:function(){var e=this.activeTextEditorControl;if(!e)return[];var t,n=[],i=(0,tr.Z)(e.getSupportedActions());try{for(i.s();!(t=i.n()).done;){var r=t.value;n.push({commandId:r.id,commandAlias:r.alias,label:(0,Dy.x$)(r.label)||r.id})}}catch(o){i.e(o)}finally{i.f()}return n}}]),n}(kF));NF=xF([LF(0,cw.TG),LF(1,mb.$),LF(2,pw.d),LF(3,Vb.H),LF(4,Hw.b),LF(5,jw.lT)],NF),zO.B.as(ZZ.IP.Quickaccess).registerQuickAccessProvider({ctor:NF,prefix:NF.PREFIX,helpEntries:[{description:yZ.UX.quickCommandHelp,needsEditor:!0}]});var DF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.quickCommand",label:yZ.UX.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:Sy.u.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}return(0,r.Z)(n,[{key:"run",value:function(e){e.get(DC.eJ).quickAccess.show(NF.PREFIX)}}]),n}(Cy.R6);(0,Cy.Qr)(DF);var MF=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},TF=function(e,t){return function(n,i){t(n,i,e)}},OF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l){return(0,i.Z)(this,n),t.call(this,!0,e,r,o,a,s,u,l)}return(0,r.Z)(n)}(uL);OF=MF([TF(1,Ey.i6),TF(2,mb.$),TF(3,jw.lT),TF(4,cw.TG),TF(5,wC.Uy),TF(6,ZC.Ui)],OF),(0,Cy._K)(uL.ID,OF);var IF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this,{id:"editor.action.toggleHighContrast",label:yZ.xi.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}))._originalThemeName=null,e}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=e.get(TZ.Z);this._originalThemeName?(n.setTheme(this._originalThemeName),this._originalThemeName=null):(this._originalThemeName=n.getColorTheme().themeName,n.setTheme("hc-black"))}}]),n}(Cy.R6);(0,Cy.Qr)(IF);var AF="s-expression";var RF=(0,ct.Z)("kv-query-explain"),PF={automaticLayout:!0,selectOnLineNumbers:!0,readOnly:!0,minimap:{enabled:!1},wrappingIndent:"indent"},ZF={schema:"schema",json:"json",ast:"ast"},FF=[{value:ZF.schema,content:"Schema"},{value:ZF.json,content:"JSON"},{value:ZF.ast,content:"AST"}];function jF(t){var n=(0,e.useRef)(),i=t.data,r=t.opts,o=t.shapes,a=t.version,s=t.theme,u=(0,e.useState)(s),l=(0,Ti.Z)(u,2),c=l[0],d=l[1];(0,e.useEffect)((function(){d(s)}),[s]);var h=function(){a===wl.v2?(n.current=d_("graphRoot",i,r,o),n.current.render()):a===wl.v1&&(n.current=c_("graphRoot",i,r),n.current.renderCompactTopology())};return(0,e.useEffect)((function(){return h(),function(){n.current=void 0}}),[]),(0,e.useEffect)((function(){var e=document.getElementById("graphRoot");if(!e)throw new Error("Can't find element with id #graphRoot");e.innerHTML="",h()}),[c]),(0,e.useEffect)((function(){var e,i;null===(e=n.current)||void 0===e||null===(i=e.updateData)||void 0===i||i.call(e,t.data)}),[t.data]),(0,ra.jsx)("div",{id:"graphRoot",style:{height:"100vh"}})}var HF=function(t){var n=Q(),i=(0,e.useState)(ZF.schema),r=(0,Ti.Z)(i,2),o=r[0],a=r[1],s=te((function(e){return e.fullscreen}));(0,e.useEffect)((function(){return function(){n(Gc())}}),[]),(0,e.useEffect)((function(){t.ast||o!==ZF.ast||t.astQuery()}),[o]);var u=function(){var e,n;switch(o){case ZF.schema:return Boolean(null===(e=t.explain)||void 0===e||null===(n=e.nodes)||void 0===n?void 0:n.length);case ZF.json:return Boolean(t.explain);case ZF.ast:return Boolean(t.ast);default:return!1}};return(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)("div",{className:RF("controls"),children:!t.loading&&(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsxs)("div",{className:RF("controls-right"),children:[(0,ra.jsx)(zv,{error:t.error}),!t.error&&(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(Iv,{}),(0,ra.jsx)(nh.E,{options:FF,value:o,onUpdate:function(e){a(e)}})]})]}),(0,ra.jsxs)("div",{className:RF("controls-left"),children:[(0,ra.jsx)(Av,{disabled:Boolean(t.error)||!u()}),(0,ra.jsx)(sv,{onCollapse:t.onCollapseResults,onExpand:t.onExpandResults,isCollapsed:t.isResultsCollapsed,initialDirection:"bottom"})]})]})}),(0,ra.jsx)("div",{className:RF("result"),children:function(){var n=t.error,i=t.loading,r=t.loadingAst;if(i||r)return(0,ra.jsx)("div",{className:RF("loader"),children:(0,ra.jsx)(fd.a,{size:"m"})});if(n)return function(){var e,n,i=t.error;return e=i.data?"string"===typeof i.data?i.data:null===(n=i.data.error)||void 0===n?void 0:n.message:i,(0,ra.jsx)("div",{className:RF("text-message"),children:e})}();if(!u())return(0,ra.jsx)("div",{className:RF("text-message"),children:"There is no explanation for the request"});switch(o){case ZF.json:return function(){var n,i=(0,ra.jsx)(ia(),{data:null===(n=t.explain)||void 0===n?void 0:n.pristine,isExpanded:function(){return!0},className:RF("inspector"),searchOptions:{debounceTime:300}});return(0,ra.jsxs)(e.Fragment,{children:[i,s&&(0,ra.jsx)(Fv,{children:i})]})}();case ZF.ast:return function(){var n=(0,ra.jsx)("div",{className:RF("ast"),children:(0,ra.jsx)(dv.ZP,{language:AF,value:t.ast,options:PF,wrappingIndent:"indent"})});return(0,ra.jsxs)(e.Fragment,{children:[n,s&&(0,ra.jsx)(Fv,{children:n})]})}();case ZF.schema:return function(){var n=t.explain,i=void 0===n?{}:n,r=t.theme,a=i.links,u=i.nodes,l=i.version,c=a&&u&&u.length?(0,ra.jsx)("div",{className:RF("explain-canvas-container",{hidden:o!==ZF.schema}),children:(0,ra.jsx)(jF,{theme:r,version:l,data:{links:a,nodes:u},opts:{renderNodeTitle:Ar,textOverflow:hm.Normal,initialZoomFitsCanvas:!0},shapes:{node:I_}})}):null;return(0,ra.jsxs)(e.Fragment,{children:[!s&&c,s&&(0,ra.jsx)(Fv,{children:c})]})}();default:return null}}()})]})},BF=(0,ct.Z)("kv-queries-history"),zF=3;var WF=function(t){var n,i=(0,e.useState)(!1),r=(0,Ti.Z)(i,2),o=r[0],a=r[1],s=null!==(n=te((function(e){var t;return null===(t=e.executeQuery.history)||void 0===t?void 0:t.queries})))&&void 0!==n?n:[],u=(0,e.useRef)(null),l=function(){a(!1)},c=function(e){var n=t.changeUserInput;return function(){n({input:e}),l()}};return(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(dd.z,{ref:u,onClick:function(){a(!0)},children:"Query history"}),o&&function(){var t=[].concat(s).reverse();return(0,ra.jsx)(Hf.G,{className:BF("popup-wrapper"),anchorRef:u,open:o,placement:["bottom-end"],onClose:l,children:(0,ra.jsx)("div",{className:BF(),children:0===t.length?(0,ra.jsx)("div",{className:BF("empty"),children:"History is empty"}):(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)("div",{className:BF("saved-queries-row",{header:!0}),children:(0,ra.jsx)("div",{className:BF("query-body",{header:!0}),children:(0,ra.jsx)("span",{children:"QueryText"})})}),(0,ra.jsx)("div",{children:t.map((function(e,t){return(0,ra.jsx)("div",{className:BF("saved-queries-row"),onClick:c(e),children:(0,ra.jsx)("div",{className:BF("query-body"),children:(0,ra.jsx)(Nv,{value:e,maxQueryHeight:zF})})},t)}))})]})})})}()]})},VF=(0,ct.Z)("kv-preview"),YF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).sendQueryForPreview=function(){var t=e.props,n=t.sendQuery,i=t.database,r=t.table,o=t.type;ks(o)&&n({query:"--!syntax_v1\nselect * from `".concat(r,"` limit 32"),database:i,action:"execute-scan",path:r})},e.onClosePreview=function(){e.props.setShowPreview(!1)},e.renderHeader=function(){var t=e.props,n=t.currentSchemaPath,i=t.error;return(0,ra.jsxs)("div",{className:VF("header"),children:[(0,ra.jsxs)("div",{className:VF("title"),children:["Preview ",(0,ra.jsx)("div",{className:VF("table-name"),children:n})]}),(0,ra.jsxs)("div",{className:VF("controls-left"),children:[(0,ra.jsx)(Av,{disabled:Boolean(i)}),(0,ra.jsx)(dd.z,{view:"flat-secondary",onClick:e.onClosePreview,title:"Close preview",children:(0,ra.jsx)(fh,{name:"close",viewBox:"0 0 16 16",width:16,height:16})})]})]})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this;this.sendQueryForPreview(),this.autofetcher=new lh,this.props.autorefresh&&(this.autofetcher.start(),this.autofetcher.fetch((function(){return e.sendQueryForPreview()})))}},{key:"componentDidUpdate",value:function(e){var t=this,n=this.props,i=n.table,r=n.autorefresh,o=n.setQueryOptions;e.table!==i&&(this.sendQueryForPreview(),o({wasLoaded:!1,data:void 0})),r&&!e.autorefresh&&(this.sendQueryForPreview(),this.autofetcher.start(),this.autofetcher.fetch((function(){return t.sendQueryForPreview()}))),!r&&e.autorefresh&&this.autofetcher.stop()}},{key:"componentWillUnmount",value:function(){this.autofetcher.stop()}},{key:"render",value:function(){var e,t,n=this.props,i=n.error,r=n.loading,o=n.data,a=n.type,s=n.wasLoaded,u=n.isFullscreen;if(r&&!s)return(0,ra.jsx)("div",{className:VF("loader-container"),children:(0,ra.jsx)(fd.a,{size:"m"})});ks(a)?i&&(t=(0,ra.jsx)("div",{className:VF("message-container"),children:Xu(i)})):t=(0,ra.jsx)("div",{className:VF("message-container"),children:"Not available"});var l=null!==(e=t)&&void 0!==e?e:(0,ra.jsx)("div",{className:VF("result"),children:(0,ra.jsx)(kv,{data:o.result,columns:o.columns})});return(0,ra.jsxs)("div",{className:VF(),children:[this.renderHeader(),u?(0,ra.jsx)(Fv,{children:l}):l]})}}]),n}(e.Component),UF={sendQuery:function(e){var t=e.query,n=e.database,i=e.action;return Wi({request:window.api.sendQuery({schema:"modern",query:t,database:n,action:i}),actions:Dl,dataHandler:$u})},setQueryOptions:function(e){return{type:Ml,data:e}},setShowPreview:Gs},KF=U((function(e){var t=e.preview,n=t.data,i=void 0===n?{}:n,r=t.loading,o=t.error,a=t.wasLoaded,s=e.schema;return{data:i,loading:r,error:o,autorefresh:s.autorefresh,wasLoaded:a,currentSchemaPath:s.currentSchemaPath,isFullscreen:e.fullscreen}}),UF)(YF),qF=[{value:ll,content:"Run Script"},{value:cl,content:"Run Scan"}],GF={sortable:!1},$F={automaticLayout:!0,selectOnLineNumbers:!0,minimap:{enabled:!1}},QF="navigation",XF={EXECUTE:"execute",EXPLAIN:"explain"},JF=(0,ct.Z)("query-editor"),ej={triggerExpand:!1,triggerCollapse:!1,collapsed:!0};var tj={sendQuery:function(e){var t=e.query,n=e.database,i=e.action;return Wi({request:window.api.sendQuery({schema:"modern",query:t,database:n,action:i,stats:"profile"}),actions:el,dataHandler:$u})},changeUserInput:fl,saveQueryToHistory:function(e){return{type:nl,data:e}},goToPreviousQuery:function(){return{type:il}},goToNextQuery:function(){return{type:rl}},getExplainQuery:function(e){var t=e.query,n=e.database;return Wi({request:window.api.getExplainQuery(t,n),actions:_l,dataHandler:function(e){var t=Qu(e),n=t.plan,i=t.ast;if(!n)return{ast:i};var r=[],o=[],a=n.tables,s=n.meta,u=n.Plan;if(-1===Cl.indexOf(s.version))return{pristine:n,version:s.version};if(s.version===wl.v2){var l=function(e){var t=[],n=[],i=e,r={name:String(i.PlanNodeId),data:{id:i.PlanNodeId,type:ml(i),name:i["Node Type"]}};return t.push(r),function e(){var i=arguments.length>1?arguments[1]:void 0;(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(r){var o,a={name:String(r.PlanNodeId),data:{id:r.PlanNodeId,type:ml(r),name:r["Node Type"],operators:null===(o=r.Operators)||void 0===o?void 0:o.map((function(e){return e.Name})),stats:vl(r),tables:r.Tables}};t.push(a),n.push({from:i,to:a.name}),e(r.Plans,a.name)}))}(i.Plans,r.name),{nodes:t,links:n}}(u);r=l.links,o=l.nodes}else Zt().forEach(a,(function(e){o.push({name:e.name});var t={},n=e.reads,i=void 0===n?[]:n,a=e.writes,s=void 0===a?[]:a,u=e.name;Zt().forEach([].concat((0,zt.Z)(i),(0,zt.Z)(s)),(function(n){t[n.type]?t[n.type]=t[n.type]+1:t[n.type]=1;var i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.join("|")}(e.name,n.type,t[n.type]);r.push({from:u,to:i}),o.push({name:i,meta:Pr(n),id:i}),u=i}))}));return{plan:{links:r,nodes:o,tables:a,version:s.version,pristine:n},ast:i}}})},getExplainQueryAst:function(e){var t=e.query,n=e.database;return Wi({request:window.api.getExplainQueryAst(t,n),actions:yl,dataHandler:Qu})},setSettingValue:Ei,selectRunAction:function(e){return{type:ol,data:e}},setShowPreview:Gs,setMonacoHotKey:function(e){return{type:al,data:e}}},nj=U((function(e){var t;return{executeQuery:e.executeQuery,explainQuery:e.explainQuery,savedQueries:di(Ni(e,Hn)),showPreview:e.schema.showPreview,currentSchema:e.schema.currentSchema,monacoHotKey:null===(t=e.executeQuery)||void 0===t?void 0:t.monacoHotKey}}),tj)((function(t){var n=(0,e.useState)(XF.EXECUTE),i=(0,Ti.Z)(n,2),r=i[0],o=i[1],a=(0,e.useState)(!1),s=(0,Ti.Z)(a,2),u=s[0],l=s[1],c=(0,e.useReducer)(ov(qn),ej),d=(0,Ti.Z)(c,2),h=d[0],f=d[1],p=(0,e.useRef)(null);(0,e.useEffect)((function(){return M(),window.addEventListener("resize",N),window.addEventListener("storage",D),function(){window.removeEventListener("resize",N),window.removeEventListener("storage",D),window.onbeforeunload=void 0,t.setMonacoHotKey(null)}}),[]),(0,e.useEffect)((function(){f(Bg.triggerCollapse)}),[]),(0,e.useEffect)((function(){t.showPreview||u?f(Bg.triggerExpand):f(Bg.triggerCollapse)}),[t.showPreview,u]),(0,e.useEffect)((function(){var e,n=t.explainQuery.data,i=t.executeQuery,r=i.input,o=i.history,a=!!r&&r!==o.queries[(null===(e=o.queries)||void 0===e?void 0:e.length)-1];window.onbeforeunload=a?g:void 0,n&&XF.EXPLAIN}),[t.executeQuery,t.executeQuery]),(0,e.useEffect)((function(){var e=t.monacoHotKey,n=t.setMonacoHotKey;if(null!==e)switch(n(null),e){case dl.sendQuery:return m();case dl.goPrev:return C();case dl.goNext:return k();case dl.getExplain:return _();default:return}}),[t.monacoHotKey]);var g=function(e){e.preventDefault(),e.returnValue=""},v=function(e){return function(){return t.setMonacoHotKey(e)}},m=function(){var e=t.path,n=t.executeQuery,i=n.input,r=n.history,a=n.runAction,s=t.sendQuery,u=t.saveQueryToHistory,c=t.setShowPreview;o(XF.EXECUTE),s({query:i,database:e,action:a}),l(!0),c(!1),i!==r.queries[r.currentIndex]&&u(i),f(Bg.triggerExpand)},_=function(){var e=t.path,n=t.executeQuery.input,i=t.getExplainQuery,r=t.setShowPreview;o(XF.EXPLAIN),i({query:n,database:e}),l(!0),r(!1),f(Bg.triggerExpand)},y=function(){var e=t.path,n=t.executeQuery.input;(0,t.getExplainQueryAst)({query:n,database:e})},b=function(){f(Bg.triggerCollapse)},w=function(){f(Bg.triggerExpand)},C=function(){var e=t.changeUserInput,n=t.executeQuery.history,i=t.goToPreviousQuery,r=n.queries,o=n.currentIndex;S()||(i(),e({input:r[o-1]}))},k=function(){var e=t.changeUserInput,n=t.executeQuery.history,i=t.goToNextQuery,r=n.queries,o=n.currentIndex;x()||(i(),e({input:r[o+1]}))},S=function(){return t.executeQuery.history.currentIndex<=0},x=function(){var e=t.executeQuery.history,n=e.queries,i=e.currentIndex;return n.length-1===i},L=function(){var e=t.changeUserInput;return(0,ra.jsx)("div",{className:JF("history-controls"),children:(0,ra.jsx)(WF,{changeUserInput:e})})},E=function(){var e,n=t.executeQuery.data;return null!==n&&void 0!==n&&null!==(e=n.result)&&void 0!==e&&e.length?[Object.keys(n.result[0])].concat(n.result).map((function(e){var t=[];for(var n in e)"object"===typeof e[n]||Array.isArray(e[n])?t.push(JSON.stringify(e[n])):t.push(e[n]);return t.join("\t")})).join("\n"):""},N=Zt().throttle((function(){M()}),100),D=function(e){e.key===Hn&&t.setSettingValue(Hn,e.newValue)},M=function(){p.current&&p.current.layout()},T=function(e){var n=t.executeQuery.input,i=t.savedQueries,r=void 0===i?[]:i,o=t.setSettingValue,a=r.findIndex((function(t){return t.name.toLowerCase()===e.toLowerCase()})),s=(0,zt.Z)(r),u={name:e,body:n};-1!==a?s[a]=u:s.push(u),o(Hn,JSON.stringify(s))},O=function(e){var n=t.savedQueries,i=void 0===n?[]:n,r=t.setSettingValue,o=i.filter((function(t){return t.name.toLowerCase()!==e.toLowerCase()}));r(Hn,JSON.stringify(o))},I=t.executeQuery,A=t.theme,R=function(){var e;switch(r){case XF.EXECUTE:e=function(){var e,n=t.executeQuery,i=n.data,o=n.error,a=n.stats;i&&(e=(0,ra.jsx)(kv,{data:i.result,columns:i.columns,settings:GF}));var s=E(),u=!s.length||r!==XF.EXECUTE;return i||o?(0,ra.jsx)(fm,{result:e,stats:a,error:o,textResults:s,copyDisabled:u,isResultsCollapsed:h.collapsed,onExpandResults:w,onCollapseResults:b}):null}();break;case XF.EXPLAIN:e=function(){var e=t.explainQuery,n=e.data,i=e.dataAst,r=e.error,o=e.loading,a=e.loadingAst,s=t.theme;return(0,ra.jsx)(HF,{error:r,explain:n,astQuery:y,ast:i,loading:o,loadingAst:a,theme:s,isResultsCollapsed:h.collapsed,onExpandResults:w,onCollapseResults:b})}();break;default:e=null}return e}();return(0,ra.jsx)("div",{className:JF(),children:(0,ra.jsxs)(_g,{direction:"vertical",defaultSizePaneKey:Wn,triggerCollapse:h.triggerCollapse,triggerExpand:h.triggerExpand,minSize:[0,52],collapsedSizes:[100,0],onSplitStartDragAdditional:function(){f(Bg.clear)},children:[(0,ra.jsxs)("div",{className:JF("pane-wrapper"),children:[(0,ra.jsx)("div",{className:JF("monaco-wrapper"),children:(0,ra.jsx)("div",{className:JF("monaco"),children:(0,ra.jsx)(dv.ZP,{language:"sql",value:I.input,options:$F,onChange:function(e){t.changeUserInput({input:e})},editorDidMount:function(e,t){p.current=e,e.focus(),e.addAction({id:"run",label:"Run",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.Enter],precondition:null,keybindingContext:null,contextMenuGroupId:QF,contextMenuOrder:1,run:v(dl.sendQuery)}),e.addAction({id:"previous-query",label:"Previous query",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.UpArrow],contextMenuGroupId:QF,contextMenuOrder:2,run:v(dl.goPrev)}),e.addAction({id:"next-query",label:"Next query",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.DownArrow],contextMenuGroupId:QF,contextMenuOrder:3,run:v(dl.goNext)}),e.addAction({id:"explain",label:"Explain",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.KEY_E],precondition:null,keybindingContext:null,contextMenuGroupId:QF,contextMenuOrder:4,run:v(dl.getExplain)})},theme:"vs-".concat(A)})})}),function(){var e=t.executeQuery,n=t.explainQuery,i=t.savedQueries,r=t.selectRunAction,o=t.setSettingValue,a=e.runAction,s=!e.input||e.loading,u=Zt().find(qF,{value:a}).content,l=qF.map((function(e){return{text:e.content,action:function(){r(e.value),o(Qn,e.value)}}}));return(0,ra.jsxs)("div",{className:JF("controls"),children:[(0,ra.jsxs)("div",{className:JF("control-run"),children:[(0,ra.jsxs)(dd.z,{onClick:m,view:"action",pin:"round-brick",disabled:s,loading:e.loading,children:[(0,ra.jsx)(fh,{name:"startPlay",viewBox:"0 0 16 16",width:16,height:16}),u]}),(0,ra.jsx)(hv.h,{items:l,switcher:(0,ra.jsx)(dd.z,{view:"action",pin:"brick-round",disabled:s,loading:e.loading,className:JF("select-query-action"),children:(0,ra.jsx)(fh,{name:"chevron-down",width:16,height:16})})})]}),(0,ra.jsx)(dd.z,{onClick:_,disabled:!e.input,loading:n.loading,children:"Explain"}),(0,ra.jsx)(Iv,{}),(0,ra.jsx)(Lv,{savedQueries:i,onSaveQuery:T,saveButtonDisabled:s})]})}(),function(){var e=t.savedQueries,n=t.changeUserInput;return(0,ra.jsxs)("div",{className:JF("upper-controls"),children:[L(),(0,ra.jsx)(Tv,{savedQueries:e,changeUserInput:n,onDeleteQuery:O})]})}()]}),(0,ra.jsx)("div",{className:JF("pane-wrapper"),children:t.showPreview?function(){var e,n,i=t.path,r=t.type,o=t.currentSchema,a=void 0===o?{}:o,s=null===a||void 0===a||null===(e=a.PathDescription)||void 0===e||null===(n=e.TableStats)||void 0===n?void 0:n.PartCount;return(0,ra.jsx)(KF,{database:i,table:a.Path,type:r,partCount:s})}():R})]})})})),ij=n(44306),rj=(0,ct.Z)("date-range"),oj=function(e){if(e&&!isNaN(e)){var t=e-60*(new Date).getTimezoneOffset()*1e3;return new Date(t).toISOString().substring(0,"yyyy-MM-DDThh:mm".length)}},aj=function(e){var t=e.from,n=e.to,i=e.className,r=e.onChange,o=oj(t),a=oj(n);return(0,ra.jsxs)("div",{className:rj(null,i),children:[(0,ra.jsx)("input",{type:"datetime-local",value:o||"",max:a,onChange:function(e){var t=e.target.value,i=t?new Date(t).getTime():void 0;i&&n&&i>n&&(i=n),null===r||void 0===r||r({from:i,to:n})},className:rj("input")}),"\u2014",(0,ra.jsx)("input",{type:"datetime-local",min:o,value:a||"",onChange:function(e){var n=e.target.value,i=n?new Date(n).getTime():void 0;t&&i&&t>i&&(i=t),null===r||void 0===r||r({from:t,to:i})},className:rj("input")})]})},sj=JSON.parse('{"no-data":"No data","filter.text.placeholder":"Search by query text..."}'),uj=JSON.parse('{"no-data":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445","filter.text.placeholder":"\u0418\u0441\u043a\u0430\u0442\u044c \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430..."}'),lj="ydb-diagnostics-top-queries";gr.registerKeyset(ar.En,lj,sj),gr.registerKeyset(ar.Ru,lj,uj);var cj=gr.keyset(lj),dj=(0,ct.Z)("kv-top-queries"),hj=pt(pt({},Gn),{},{dynamicRenderType:"variable"}),fj=[{name:"CPUTimeUs",width:140,sortAccessor:function(e){return Number(e.CPUTimeUs)}},{name:"QueryText",width:500,sortable:!1,render:function(e){var t=e.value;return(0,ra.jsx)(Nv,{value:t,maxQueryHeight:10})}},{name:"IntervalEnd",width:140,render:function(e){var t=e.value;return Tr(new Date(t).getTime())}}],pj=function(t){var n=t.path,i=t.type,r=t.changeSchemaTab,o=Q(),a=jh((function(e){return e.schema})).autorefresh,s=jh((function(e){return e.executeTopQueries})),u=s.loading,l=s.wasLoaded,c=s.error,d=s.data,h=(void 0===d?{}:d).result,f=void 0===h?void 0:h,p=s.filters,g=(0,e.useRef)(!1),v=(0,e.useState)(p),m=(0,Ti.Z)(v,2),_=m[0],y=m[1];(0,e.useEffect)((function(){o(function(e){return{type:Kl,filters:e}}(_))}),[o,_]);var b=function(e){var t,n,i=null===e||void 0===e||null===(t=e.result)||void 0===t||null===(n=t[0])||void 0===n?void 0:n.IntervalEnd;if(i){var r=new Date(i).getTime(),o=new Date(r-1e3*Ln).getTime();y((function(e){return e.from||e.to?e:(g.current=!0,pt(pt({},e),{},{from:o,to:r}))}))}};Fh((function(e){g.current?g.current=!1:(e||o({type:Ul,data:{wasLoaded:!1,data:void 0}}),o(function(e){var t=e.database,n=e.filters;return function(){var e=(0,Jn.Z)(ti().mark((function e(i,r){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.abrupt("return",Wi({request:window.api.sendQuery({schema:"modern",query:$l(t,n),database:t,action:"execute-scan"},{concurrentId:"executeTopQueries"}),actions:Yl,dataHandler:$u})(i,r));case 4:throw e.prev=4,e.t0=e.catch(0),i({type:Yl.FAILURE,error:e.t0}),e.t0;case 8:case"end":return e.stop()}}),e,null,[[0,4]])})));return function(t,n){return e.apply(this,arguments)}}()}({database:n,filters:_})).then(b))}),[o,_,n],a);var w=(0,e.useCallback)((function(e){var t=e.QueryText;o(fl({input:t})),r(ch.query)}),[r,o]);return(0,ra.jsxs)("div",{className:dj(),children:[(0,ra.jsxs)("div",{className:dj("controls"),children:[(0,ra.jsx)(Oh,{value:_.text,onChange:function(e){y((function(t){return pt(pt({},t),{},{text:e})}))},placeholder:cj("filter.text.placeholder"),className:dj("search")}),(0,ra.jsx)(aj,{from:_.from,to:_.to,onChange:function(e){y((function(t){return pt(pt({},t),e)}))}})]}),u&&!l?(0,ra.jsx)("div",{className:dj("loader"),children:(0,ra.jsx)(fd.a,{size:"m"})}):c&&!c.isCancelled?(0,ra.jsx)("div",{className:"error",children:Xu(c)}):!f||Es(i)?cj("no-data"):(0,ra.jsx)("div",{className:dj("result"),children:(0,ra.jsx)(wn,{columns:fj,data:f,settings:hj,onRowClick:w,theme:"yandex-cloud"})})]})},gj=n(36296),vj=function(e){var t,n,i=(null===e||void 0===e?void 0:e.Self)||{},r=i.PathType,o=i.PathSubType;return t=r,(n=o)&&ys[n]||t&&bs[t]},mj=new Set(["Type","State","DataSize","KeyColumnNames","DataColumnNames"]),_j=function(e){var t,n=e.data,i=vj(null===n||void 0===n?void 0:n.PathDescription);if(!n)return(0,ra.jsxs)("div",{className:"error",children:["No ",i," data"]});var r,o=null===(t=n.PathDescription)||void 0===t?void 0:t.TableIndex,a=[];for(r in o)mj.has(r)&&a.push(Vg(r,null===o||void 0===o?void 0:o[r]));return(0,ra.jsx)(aa,{title:i,info:a})},yj=function(e){var t=e.error,n=e.className,i=e.defaultMessage,r=void 0===i?Nh("responseError.defaultMessage"):i;return(0,ra.jsx)("div",{className:"error ".concat(n),children:(null===t||void 0===t?void 0:t.statusText)||r})},bj=function(e){var t,n,i=null===e||void 0===e||null===(t=e.PathDescription)||void 0===t?void 0:t.PersQueueGroup;if(!i)return[];var r=i.Partitions,o=void 0===r?[]:r,a=i.PQTabletConfig,s=void 0===a?{PartitionConfig:{LifetimeSeconds:0}}:a,u=null===i||void 0===i?void 0:i.PQTabletConfig,l=u.Codecs,c=u.MeteringMode,d=null===i||void 0===i||null===(n=i.PQTabletConfig)||void 0===n?void 0:n.PartitionConfig,h=d.WriteSpeedInBytesPerSecond,f=d.StorageLimitBytes,p=ca(Ug,{Partitions:o,PQTabletConfig:s}),g=ca(qg,{StorageLimitBytes:f,WriteSpeedInBytesPerSecond:h}),v=ca(Kg,{Codecs:l,MeteringMode:c});return[].concat((0,zt.Z)(p),(0,zt.Z)(g),(0,zt.Z)(v))},wj=JSON.parse('{"averageSpeed":"Average speed","perMinute":"per minute","perHour":"per hour","perDay":"per day"}'),Cj=JSON.parse('{"averageSpeed":"\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c","perMinute":"\u0437\u0430 \u043c\u0438\u043d\u0443\u0442\u0443","perHour":"\u0437\u0430 \u0447\u0430\u0441","perDay":"\u0437\u0430 \u0434\u0435\u043d\u044c"}'),kj="ydb-components-speed-multimeter";gr.registerKeyset(ar.En,kj,wj),gr.registerKeyset(ar.Ru,kj,Cj);var Sj=gr.keyset(kj),xj=(0,ct.Z)("speed-multimeter"),Lj=function(t){var n=t.data,i=t.speedSize,r=void 0===i?"kb":i,o=t.withValue,a=void 0===o||o,s=t.withPopover,u=void 0===s||s,l=n||{},c=l.perMinute,d=void 0===c?0:c,h=l.perHour,f=void 0===h?0:h,p=l.perDay,g=void 0===p?0:p,v=[d,f,g],m=function(e){return function(e){var t=e.value,n=e.size,i=void 0===n?"mb":n,r=e.precision,o=void 0===r?0:r,a=e.withLabel,s=void 0===a||a,u=e.isSpeed,l=void 0!==u&&u;if(!yi(t))return"";var c=(Number(t)/Eu[i].value).toFixed(o);return s&&(c+=" ".concat(Eu[i].label),l&&(c+=Lu("perSecond"))),c}({value:e,size:r,isSpeed:!0})},_=[{value:m(d),label:Sj("perMinute")},{value:m(f),label:Sj("perHour")},{value:m(g),label:Sj("perDay")}],y=(0,e.useState)(d),b=(0,Ti.Z)(y,2),w=b[0],C=b[1],k=(0,e.useState)(a?0:void 0),S=(0,Ti.Z)(k,2),x=S[0],L=S[1],E=(0,e.useState)(),N=(0,Ti.Z)(E,2),D=N[0],M=N[1],T=function(e,t){C(e[t]),L(t),M(t)},O=function(e){return x===e},I=function(e){return D===e};return(0,ra.jsx)("div",{className:xj(),children:(0,ra.jsxs)("div",{className:xj("content"),children:[a&&(0,ra.jsx)("div",{className:xj("displayed-value"),children:m(w)}),(0,ra.jsx)("div",{className:xj("popover-container"),children:(0,ra.jsx)(Hh.J,{content:(0,ra.jsxs)("div",{className:xj("popover-content"),children:[(0,ra.jsx)("span",{className:xj("popover-header"),children:Sj("averageSpeed")}),_.map((function(e,t){return(0,ra.jsx)("span",{className:xj("popover-row",(n=O(t),n?{color:"primary"}:{color:"secondary"})),children:"".concat(e.label,": ").concat(e.value)},t);var n}))]}),placement:"bottom",disabled:!u,hasArrow:!0,size:"s",children:(0,ra.jsx)("div",{className:xj("bars"),onMouseLeave:function(){C(d),L(a?0:void 0),M(void 0)},children:function(){var e=Math.max.apply(Math,v.concat([0]))||1;return v.map((function(t,n){return(0,ra.jsx)("div",{className:xj("bar-container",{highlighted:I(n)}),onMouseEnter:T.bind(null,v,n),children:(0,ra.jsx)("div",{className:xj("bar",{color:O(n)?"dark":"light"}),style:{width:"".concat(100*t/e,"%")}})},n)}))}()})})})]})})},Ej=function(e){var t=e.text,n=e.popoverContent,i=e.className;return(0,ra.jsxs)("div",{className:i,children:[t,(0,ra.jsx)(Vp.J,{content:n})]})},Nj=70,Dj=54,Mj=268,Tj="#ADE8F5",Oj="#f5be9d",Ij=function(e){var t=e.width,n=e.height,i=e.transform;return(0,ra.jsx)("path",{d:"M-".concat(t/2," 0 c0 -").concat(n,", ").concat(t," -").concat(n,", ").concat(t," 0"),fill:"none",strokeDasharray:"4,6",stroke:"#28f",strokeWidth:"1.6",transform:i})},Aj=function(e){var t=e.width;return(0,ra.jsx)("path",{fill:"none",strokeWidth:"2",d:"M0 0 h".concat(t," l-10 -5 m0 10 l10 -5")})},Rj=function(){return(0,ra.jsxs)("g",{fill:"var(--yc-color-text-primary)",fontSize:"12",children:[(0,ra.jsx)("g",{transform:"translate(0, ".concat(27,")"),stroke:Oj,children:(0,ra.jsx)(Aj,{width:203})}),(0,ra.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,ra.jsxs)("g",{transform:"translate(".concat(35,", ").concat(27,")"),children:[(0,ra.jsx)(Ij,{width:Nj,height:15}),(0,ra.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"write lag"})})]}),(0,ra.jsxs)("g",{transform:"translate(".concat(119,", ").concat(27,")"),children:[(0,ra.jsx)(Ij,{width:98,height:15}),(0,ra.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"write idle time"})})]})]}),(0,ra.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,ra.jsxs)("g",{transform:"translate(".concat(0,", ",27,")"),children:[(0,ra.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:Oj}),(0,ra.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"create time"})})]}),(0,ra.jsxs)("g",{transform:"translate(".concat(Nj,", ").concat(27,")"),children:[(0,ra.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:Oj}),(0,ra.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"write time"})})]}),(0,ra.jsx)("g",{transform:"translate(".concat(168,", ").concat(27,")"),children:(0,ra.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"now"})})})]})]})},Pj=function(){return(0,ra.jsxs)("g",{fill:"var(--yc-color-text-primary)",fontSize:"12",children:[(0,ra.jsx)("g",{transform:"translate(0, ".concat(27,")"),stroke:Tj,children:(0,ra.jsx)(Aj,{width:Mj})}),(0,ra.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,ra.jsxs)("g",{transform:"translate(".concat(105,", ").concat(27,")"),children:[(0,ra.jsx)(Ij,{width:Nj,height:15}),(0,ra.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"read lag"})})]}),(0,ra.jsxs)("g",{transform:"translate(".concat(35,", ").concat(27,")"),children:[(0,ra.jsx)(Ij,{width:Nj,height:15}),(0,ra.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"write lag"})})]}),(0,ra.jsxs)("g",{transform:"translate(".concat(182,", ").concat(27,")"),children:[(0,ra.jsx)(Ij,{width:91,height:15}),(0,ra.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"read idle time"})})]})]}),(0,ra.jsxs)("g",{transform:"translate(".concat(30,", ").concat(27,")"),children:[(0,ra.jsxs)("g",{transform:"translate(".concat(0,", 0)"),children:[(0,ra.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:Tj}),(0,ra.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"create time"})})]}),(0,ra.jsxs)("g",{transform:"translate(".concat(Nj,", 0)"),children:[(0,ra.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:Tj}),(0,ra.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"write time"})})]}),(0,ra.jsxs)("g",{transform:"translate(".concat(140,", 0)"),children:[(0,ra.jsx)("use",{x:"-2",y:"-10",xlinkHref:"#check",stroke:Tj}),(0,ra.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"read time"})})]}),(0,ra.jsx)("g",{transform:"translate(".concat(224,", 0)"),children:(0,ra.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,ra.jsx)("tspan",{x:"0",dy:"0",children:"now"})})})]})]})},Zj=function(e){var t=e.id,n=e.fill;return(0,ra.jsx)("pattern",{id:t,x:"0",y:"0",width:"8",height:"8",patternUnits:"userSpaceOnUse",children:(0,ra.jsx)("path",{d:"M0 5L5 0H8L0 8V5M5 8L8 5V8Z",fill:n})})},Fj=function(){return(0,ra.jsxs)("svg",{className:"paint",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 ".concat(Mj," ").concat(Dj),width:Mj,height:Dj,children:[(0,ra.jsxs)("defs",{children:[(0,ra.jsx)("g",{id:"check",children:(0,ra.jsx)("path",{d:"M0 3 v14",strokeWidth:"2"})}),(0,ra.jsx)(Zj,{id:"latest-read",fill:Tj}),(0,ra.jsx)(Zj,{id:"latest-write",fill:Oj})]}),(0,ra.jsx)(Rj,{})]})},jj=function(){return(0,ra.jsxs)("svg",{className:"paint",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 ".concat(Mj," ").concat(Dj),width:Mj,height:Dj,children:[(0,ra.jsxs)("defs",{children:[(0,ra.jsx)("g",{id:"check",children:(0,ra.jsx)("path",{d:"M0 3 v14",strokeWidth:"2"})}),(0,ra.jsx)(Zj,{id:"latest-read",fill:Tj}),(0,ra.jsx)(Zj,{id:"latest-write",fill:Oj})]}),(0,ra.jsx)(Pj,{})]})},Hj=(0,ct.Z)("ydb-lag-popover-content"),Bj=function(e){var t=e.text,n=e.type;return(0,ra.jsxs)("div",{className:Hj({type:n}),children:[(0,ra.jsx)("div",{className:Hj("text"),children:t}),(0,ra.jsx)("div",{children:"read"===n?(0,ra.jsx)(jj,{}):(0,ra.jsx)(Fj,{})})]})},zj=JSON.parse('{"writeLagPopover":"Write lag, maximum among all topic partitions","writeIdleTimePopover":"Write idle time, maximum among all topic partitions"}'),Wj=JSON.parse('{"writeLagPopover":"\u041b\u0430\u0433 \u0437\u0430\u043f\u0438\u0441\u0438, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439 \u0442\u043e\u043f\u0438\u043a\u0430","writeIdleTimePopover":"\u0412\u0440\u0435\u043c\u044f \u0431\u0435\u0437 \u0437\u0430\u043f\u0438\u0441\u0438, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439 \u0442\u043e\u043f\u0438\u043a\u0430"}'),Vj="ydb-diagnostics-overview-topic-stats";gr.registerKeyset(ar.En,Vj,zj),gr.registerKeyset(ar.Ru,Vj,Wj);var Yj=gr.keyset(Vj),Uj=(0,ct.Z)("ydb-overview-topic-stats"),Kj=function(e){return[{label:"Store size",value:yr(e.storeSize)},{label:(0,ra.jsx)(Ej,{text:"Write idle time",popoverContent:(0,ra.jsx)(Bj,{text:Yj("writeIdleTimePopover"),type:"write"})}),value:yu(e.partitionsIdleTime)},{label:(0,ra.jsx)(Ej,{text:"Write lag",popoverContent:(0,ra.jsx)(Bj,{text:Yj("writeLagPopover"),type:"write"})}),value:yu(e.partitionsWriteLag)},{label:"Average write speed",value:(0,ra.jsx)(Lj,{data:e.writeSpeed,withValue:!1})}]},qj=function(e){var t=e.writeSpeed;return[{label:"per minute",value:br(t.perMinute)},{label:"per hour",value:br(t.perHour)},{label:"per day",value:br(t.perDay)}]},Gj=function(){var e=jh((function(e){return e.topic})),t=e.error,n=e.loading,i=e.wasLoaded,r=jh(Ru);return n&&!i?(0,ra.jsx)("div",{className:Uj(),children:(0,ra.jsx)(Th,{size:"s"})}):t||!r?(0,ra.jsxs)("div",{className:Uj(),children:[(0,ra.jsx)("div",{className:Uj("title"),children:"Stats"}),(0,ra.jsx)(yj,{error:t})]}):(0,ra.jsxs)("div",{className:Uj(),children:[(0,ra.jsx)("div",{className:Uj("title"),children:"Stats"}),(0,ra.jsx)("div",{className:Uj("info"),children:(0,ra.jsx)(aa,{info:Kj(r),multilineLabels:!0})}),(0,ra.jsx)("div",{className:Uj("bytes-written"),children:(0,ra.jsx)(aa,{info:qj(r)})})]})},$j=function(e){var t=e.data,n=vj(null===t||void 0===t?void 0:t.PathDescription),i=jh((function(e){return e.schema})).error;return i?(0,ra.jsx)("div",{className:"error",children:i.statusText}):t?(0,ra.jsxs)("div",{children:[(0,ra.jsx)(aa,{title:n,info:bj(t)}),(0,ra.jsx)(Gj,{})]}):(0,ra.jsxs)("div",{className:"error",children:["No ",n," data"]})},Qj=function(e,t){var n,i,r;if(!e&&!t)return[];var o=(null===e||void 0===e||null===(n=e.PathDescription)||void 0===n?void 0:n.CdcStreamDescription)||{},a=o.Mode,s=o.Format,u=Wg("CreateStep",null===e||void 0===e||null===(i=e.PathDescription)||void 0===i||null===(r=i.Self)||void 0===r?void 0:r.CreateStep),l=ca(Gg,{Mode:a,Format:s}),c=bj(t);return[u].concat((0,zt.Z)(l),(0,zt.Z)(c))},Xj=function(e){var t=e.data,n=e.childrenPaths,i=vj(null===t||void 0===t?void 0:t.PathDescription),r=jh((function(e){return e.schema})).error,o=jh((function(e){return function(e,t){return t?e.schema.data[t]:void 0}(e,null===n||void 0===n?void 0:n[0])}));return r?(0,ra.jsx)("div",{className:"error",children:r.statusText}):t&&o?(0,ra.jsxs)("div",{children:[(0,ra.jsx)(aa,{title:i,info:Qj(t,o)}),(0,ra.jsx)(Gj,{})]}):(0,ra.jsxs)("div",{className:"error",children:["No ",i," data"]})},Jj=["PartCount","RowCount","DataSize","IndexSize","LastAccessTime","LastUpdateTime","ImmediateTxCompleted","PlannedTxCompleted","TxRejectedByOverload","TxRejectedBySpace","TxCompleteLagMsec","InFlightTxCount","RowUpdates","RowDeletes","RowReads","RangeReads","RangeReadRows"],eH=JSON.parse('{"tableStats":"Table Stats","tabletMetrics":"Tablet Metrics","partitionConfig":"Partition Config"}'),tH=JSON.parse('{"tableStats":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b","tabletMetrics":"\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0430\u0431\u043b\u0435\u0442\u043a\u0438","partitionConfig":"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438"}'),nH="ydb-diagnostics-overview-table-info";gr.registerKeyset(ar.En,nH,eH),gr.registerKeyset(ar.Ru,nH,tH);var iH=gr.keyset(nH),rH=(0,ct.Z)("ydb-diagnostics-table-info"),oH=function(t){var n=t.data,i=vj(null===n||void 0===n?void 0:n.PathDescription),r=(0,e.useMemo)((function(){return function(e){if(!e)return{};var t=e.PathDescription,n=void 0===t?{}:t,i=n.TableStats,r=void 0===i?{}:i,o=n.TabletMetrics,a=void 0===o?{}:o,s=n.Table,u=(void 0===s?{}:s).PartitionConfig,l=void 0===u?{}:u,c=r.PartCount,d=r.RowCount,h=r.DataSize,f=r.IndexSize,p=r.LastAccessTime,g=r.LastUpdateTime,v=r.ImmediateTxCompleted,m=r.PlannedTxCompleted,_=r.TxRejectedByOverload,y=r.TxRejectedBySpace,b=r.TxCompleteLagMsec,w=r.InFlightTxCount,C=r.RowUpdates,k=r.RowDeletes,S=r.RowReads,x=r.RangeReads,L=r.RangeReadRows,E=Rt(r,Jj),N=l.FollowerGroups,D=l.FollowerCount,M=l.CrossDataCenterFollowerCount,T=ca(Jg,pt({PartCount:c,RowCount:d,DataSize:h,IndexSize:f},E)),O=[ca(Jg,{LastAccessTime:p,LastUpdateTime:g}),ca(Jg,{ImmediateTxCompleted:v,PlannedTxCompleted:m,TxRejectedByOverload:_,TxRejectedBySpace:y,TxCompleteLagMsec:b,InFlightTxCount:w}),ca(Jg,{RowUpdates:C,RowDeletes:k,RowReads:S,RangeReads:x,RangeReadRows:L})],I=ca($g,a),A=[];return Array.isArray(N)&&N.length>0?A=ca(Qg,N[0]):void 0!==D?A.push(Xg("FollowerCount",D)):void 0!==M&&A.push(Xg("CrossDataCenterFollowerCount",M)),{generalTableInfo:T,tableStatsInfo:O,tabletMetricsInfo:I,partitionConfigInfo:A}}(n)}),[n]),o=r.generalTableInfo,a=void 0===o?[]:o,s=r.tableStatsInfo,u=void 0===s?[]:s,l=r.tabletMetricsInfo,c=void 0===l?[]:l,d=r.partitionConfigInfo,h=void 0===d?[]:d;return(0,ra.jsxs)("div",{className:rH(),children:[(0,ra.jsx)(aa,{info:a,title:i,className:rH("info-block"),renderEmptyState:function(){return(0,ra.jsx)("div",{className:rH("title"),children:i})}}),(0,ra.jsxs)("div",{className:rH("row"),children:[c.length>0||h.length>0?(0,ra.jsxs)("div",{className:rH("col"),children:[(0,ra.jsx)(aa,{info:c,title:iH("tabletMetrics"),className:rH("info-block"),renderEmptyState:function(){return null}}),(0,ra.jsx)(aa,{info:h,title:iH("partitionConfig"),className:rH("info-block"),renderEmptyState:function(){return null}})]}):null,(0,ra.jsx)("div",{className:rH("col"),children:u.map((function(e,t){return(0,ra.jsx)(aa,{info:e,title:0===t?iH("tableStats"):void 0,className:rH("info-block"),renderEmptyState:function(){return null}},t)}))})]})]})};var aH,sH,uH,lH,cH,dH=function(t){var n=t.type,i=t.tenantName,r=t.className,o=Q(),a=te((function(e){return e.schema})),s=a.currentSchema,u=void 0===s?{}:s,l=a.loading,c=a.wasLoaded,d=a.autorefresh,h=a.currentSchemaPath,f=a.error,p=te((function(e){return e.olapStats})),g=p.data,v=(void 0===g?{result:void 0}:g).result,m=p.loading,_=l||m,y=Os(n),b=jh((function(e){return Qs(e,h,n)}),M),w=(0,e.useCallback)((function(e){e||o($s());var t=h||i;y?b&&o(function(e){var t=e.map((function(e){return window.api.getSchema({path:e},{concurrentId:"getSchemaBatched|".concat(e)})}));return Wi({request:Promise.all(t),actions:Fs,dataHandler:function(e){var t={};return e.forEach((function(e){e.Path&&(t[e.Path]=e)})),{path:e[0].Path,currentSchema:e[0],data:t}}})}([t].concat((0,zt.Z)(b)))):o(Us({path:t})),ks(n)&&Es(n)&&(e||o({type:Oc}),o(Rc({path:t}))),Zs(n)&&o(Au(h))}),[i,h,n,y,b,o]);Fh(w,[w],d);var C=(0,e.useMemo)((function(){return ks(n)&&Es(n)?function(e,t){var n,i,r,o,a,s=null===e||void 0===e||null===(n=e.PathDescription)||void 0===n?void 0:n.ColumnTableDescription,u=null===t||void 0===t?void 0:t.reduce((function(e,t){return e+(parseInt(t.Bytes)||0)}),0),l=null===t||void 0===t?void 0:t.reduce((function(e,t){return e+(parseInt(t.Rows)||0)}),0),c=null===t||void 0===t?void 0:t.reduce((function(e,t){return e.add(t.TabletId),e}),new Set);return{PathDescription:{Self:null===e||void 0===e||null===(i=e.PathDescription)||void 0===i?void 0:i.Self,TableStats:{ColumnShardCount:null===s||void 0===s?void 0:s.ColumnShardCount,Bytes:null!==(r=null===u||void 0===u?void 0:u.toLocaleString("ru-RU",{useGrouping:!0}))&&void 0!==r?r:0,Rows:null!==(o=null===l||void 0===l?void 0:l.toLocaleString("ru-RU",{useGrouping:!0}))&&void 0!==o?o:0,Parts:null!==(a=null===c||void 0===c?void 0:c.size)&&void 0!==a?a:0}}}}(u,v):u}),[n,v,u]);return _&&!c||y&&!b?(0,ra.jsx)(Th,{size:"m"}):f?(0,ra.jsx)(yj,{error:f}):(0,ra.jsx)("div",{className:r,children:function(){var e,t,i=(e={},(0,ht.Z)(e,Wa.EPathTypeInvalid,void 0),(0,ht.Z)(e,Wa.EPathTypeDir,void 0),(0,ht.Z)(e,Wa.EPathTypeTable,void 0),(0,ht.Z)(e,Wa.EPathTypeSubDomain,void 0),(0,ht.Z)(e,Wa.EPathTypeTableIndex,(function(){return(0,ra.jsx)(_j,{data:C})})),(0,ht.Z)(e,Wa.EPathTypeExtSubDomain,void 0),(0,ht.Z)(e,Wa.EPathTypeColumnStore,void 0),(0,ht.Z)(e,Wa.EPathTypeColumnTable,void 0),(0,ht.Z)(e,Wa.EPathTypeCdcStream,(function(){return(0,ra.jsx)(Xj,{data:C,childrenPaths:b})})),(0,ht.Z)(e,Wa.EPathTypePersQueueGroup,(function(){return(0,ra.jsx)($j,{data:C})})),e);return n&&(null===(t=i[n])||void 0===t?void 0:t.call(i))||(0,ra.jsx)(oH,{data:C})}()})};function hH(){return hH=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},hH.apply(this,arguments)}!function(e){e.UNSPECIFIED="UNSPECIFIED",e.GOOD="GOOD",e.DEGRADED="DEGRADED",e.MAINTENANCE_REQUIRED="MAINTENANCE_REQUIRED",e.EMERGENCY="EMERGENCY"}(aH||(aH={})),function(e){e.UNSPECIFIED="UNSPECIFIED",e.GREY="GREY",e.GREEN="GREEN",e.BLUE="BLUE",e.YELLOW="YELLOW",e.ORANGE="ORANGE",e.RED="RED"}(sH||(sH={}));var fH=function(t){return e.createElement("svg",hH({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),uH||(uH=e.createElement("path",{d:"M21 12a9 9 0 01-9 9c-2.5 0-5.5-2-7-4",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})),lH||(lH=e.createElement("path",{d:"M5 21v-4h4M3 12a9 9 0 019-9c2.5 0 5.5 2 7 4",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})),cH||(cH=e.createElement("path",{d:"M19 3v4h-4",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))},pH=n(66589),gH=n.n(pH),vH=(0,ct.Z)("issue-tree-item"),mH=function(e){var t=e.status,n=e.message,i=e.type,r=e.onClick;return(0,ra.jsxs)("div",{className:vH(),onClick:r,children:[(0,ra.jsx)("div",{className:vH("field",{status:!0}),children:(0,ra.jsx)(Hd,{mode:"icons",status:t,name:i})}),(0,ra.jsx)("div",{className:vH("field",{message:!0}),children:n})]})},_H=["status","message","type","reasonsItems","level"],yH=(0,ct.Z)("issue-tree"),bH=function(t){var n=t.issueTree,i=(0,e.useState)({}),r=(0,Ti.Z)(i,2),o=r[0],a=r[1],s=(0,e.useCallback)((function(e){return e.map((function(e){var t=e.id,n=e.status,i=e.message,r=e.type,l=e.reasonsItems,c=e.level,d=Rt(e,_H),h="undefined"===typeof o[t]||o[t],f=function(){a((function(e){return pt(pt({},e),{},(0,ht.Z)({},t,!h))}))};return(0,ra.jsxs)(pr.TreeView,{name:(0,ra.jsx)(mH,{status:n,message:i,type:r}),collapsed:h,hasArrow:!0,onClick:f,onArrowClick:f,level:c-1,children:[u(gH()(d,["reason"])),s(l||[])]},t)}))}),[n,o]),u=(0,e.useCallback)((function(e){return e?(0,ra.jsx)("div",{className:yH("info-panel"),children:(0,ra.jsx)(ia(),{data:e,search:!1,isExpanded:function(){return!0},className:yH("inspector")})}):null}),[n]);return(0,ra.jsx)("div",{className:yH(),children:(0,ra.jsx)("div",{className:yH("block"),children:s([n])})})},wH=JSON.parse('{"title.healthcheck":"Healthcheck","label.update":"Update","label.show-details":"Show details","status_message.ok":"No issues have been found on this database","no-data":"no healthcheck data"}'),CH=JSON.parse('{"title.healthcheck":"Healthcheck","label.update":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c","label.show-details":"\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438","status_message.ok":"\u0412 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c","no-data":"\u043d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 healthcheck"}'),kH="ydb-diagnostics-healthcheck";gr.registerKeyset(ar.En,kH,wH),gr.registerKeyset(ar.Ru,kH,CH);var SH=gr.keyset(kH),xH=(0,ct.Z)("healthcheck"),LH=function(e){var t=e.loading,n=e.onUpdate,i=e.issueTree;if(!i)return null;return(0,ra.jsxs)("div",{className:xH("details"),children:[(0,ra.jsxs)("div",{className:xH("details-header"),children:[(0,ra.jsx)("h3",{className:xH("details-header-title"),children:SH("title.healthcheck")}),(0,ra.jsx)("div",{className:xH("details-header-update"),children:(0,ra.jsx)(dd.z,{size:"s",onClick:n,loading:t,view:"flat-secondary",children:(0,ra.jsx)(kd.J,{data:fH,height:20,width:20})})})]}),(0,ra.jsx)("div",{className:xH("issues-wrapper"),children:(0,ra.jsx)(bH,{issueTree:i})})]})},EH=n(97736),NH=(0,ct.Z)("healthcheck"),DH=function(e){var t=e.data,n=e.onShowMore;return t?(0,ra.jsxs)("div",{className:NH("issue-preview"),children:[(0,ra.jsx)(Hd,{mode:"icons",status:t.status,name:t.type}),(0,ra.jsx)(EH.x,{as:"div",color:"secondary",variant:"body-2",children:t.message}),(0,ra.jsx)(Sd.r,{onClick:function(){return null===n||void 0===n?void 0:n(t.id)},children:SH("label.show-details")})]}):null},MH=(0,ct.Z)("healthcheck"),TH=function(e){var t=e.selfCheckResult,n=e.issuesTrees,i=e.loading,r=e.onShowMore,o=e.onUpdate,a=t===aH.GOOD;if(!n)return null;return(0,ra.jsxs)("div",{className:MH("preview"),children:[function(){var e=t.toLowerCase();return(0,ra.jsxs)("div",{className:MH("status-wrapper"),children:[(0,ra.jsx)("div",{className:MH("preview-title"),children:SH("title.healthcheck")}),(0,ra.jsx)("div",{className:MH("self-check-status-indicator",(0,ht.Z)({},e,!0)),children:t}),(0,ra.jsx)(dd.z,{size:"s",onClick:o,loading:i,view:"flat-secondary",children:(0,ra.jsx)(kd.J,{data:fH,width:20,height:20})})]})}(),(0,ra.jsx)("div",{className:MH("preview-content"),children:a?SH("status_message.ok"):null===n||void 0===n?void 0:n.map((function(e){return(0,ra.jsx)(DH,{data:e,onShowMore:r},e.id)}))})]})},OH=(0,ct.Z)("healthcheck"),IH=function(t){var n=t.tenant,i=t.preview,r=t.fetchData,o=void 0===r||r,a=t.showMoreHandler,s=t.expandedIssueId,u=Q(),l=jh((function(e){return e.healthcheckInfo})),c=l.data,d=l.loading,h=l.wasLoaded,f=l.error,p=(null===c||void 0===c?void 0:c.self_check_result)||aH.UNSPECIFIED,g=jh(hc),v=jh((function(e){return pc(e,s)})),m=jh((function(e){return e.schema})).autorefresh,_=(0,e.useCallback)((function(){var e;!(arguments.length>0&&void 0!==arguments[0])||arguments[0]||u(vc()),u((e=n,Wi({request:window.api.getHealthcheckInfo(e),actions:rc})))}),[u,n]);Fh((function(e){o&&_(e)}),[o,_],m);return(0,ra.jsx)("div",{className:OH(),children:f?f.statusText:d&&!h?(0,ra.jsx)("div",{className:OH("loader"),children:(0,ra.jsx)(fd.a,{size:"m"})}):c&&c.self_check_result?i?(0,ra.jsx)(TH,{issuesTrees:g,selfCheckResult:p,loading:d,onShowMore:a,onUpdate:_}):(0,ra.jsx)(LH,{issueTree:v,loading:d,onUpdate:_}):(0,ra.jsx)("div",{className:"error",children:SH("no-data")})})},AH=(0,ct.Z)("pool-usage"),RH=function(e){var t="green";return e>60&&e<=80?t="yellow":e>80&&(t="red"),t},PH=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e,t=this.props.data,n=void 0===t?{}:t,i=n.Threads,r=n.Name,o=void 0===r?"Unknown":r,a=n.Usage&&i,s="undefined"===typeof(e=n.Usage)?"":Math.floor(100*e),u=s>100?100:s;return(0,ra.jsxs)("div",{className:AH(),children:[(0,ra.jsxs)("div",{className:AH("info"),children:[(0,ra.jsx)("div",{className:AH("pool-name"),children:o}),a&&(0,ra.jsxs)("div",{className:AH("value"),children:[(0,ra.jsxs)("div",{className:AH("percents"),children:[s<1?"<1":s,"%"]}),(0,ra.jsxs)("div",{className:AH("threads"),children:["(\xd7",i,")"]})]})]}),(0,ra.jsx)("div",{className:AH("visual"),children:(0,ra.jsx)("div",{className:AH("usage-line",{type:RH(u)}),style:{width:"".concat(u,"%")}})})]})}}]),n}(e.Component),ZH=PH,FH=(0,ct.Z)("tenant-overview"),jH=function(e){if(e){var t=e.Name;return(0,ra.jsxs)("div",{className:FH("tenant-name-wrapper"),children:[(0,ra.jsx)(Hd,{status:e.State}),(0,ra.jsx)("span",{className:FH("tenant-name-trim"),children:(0,ra.jsx)("span",{className:FH("tenant-name"),children:t})})]})}return(0,ra.jsx)("div",{children:"no tenant data"})},HH=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).renderLoader=function(){return(0,ra.jsx)("div",{className:FH("loader"),children:(0,ra.jsx)(fd.a,{size:"m"})})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.tenantName,n=e.autorefresh,i=e.getTenantInfo;i({path:t}),this.autofetcher=new lh,n&&(this.autofetcher.start(),this.autofetcher.fetch((function(){return i({path:t})})))}},{key:"componentDidUpdate",value:function(e){var t=this,n=this.props,i=n.autorefresh,r=n.tenantName,o=n.getTenantInfo,a=function(){t.autofetcher.stop(),t.autofetcher.start(),t.autofetcher.fetch((function(){return o({path:r})}))};e.tenantName!==this.props.tenantName&&(o({path:r}),i&&a()),i&&!e.autorefresh&&(o({path:r}),a()),!i&&e.autorefresh&&this.autofetcher.stop()}},{key:"componentWillUnmount",value:function(){this.autofetcher.stop()}},{key:"render",value:function(){var e,t=this.props,n=t.tenant,i=t.hideTooltip,r=t.showTooltip,o=t.loading,a=n.Metrics,s=void 0===a?{}:a,u=n.PoolStats,l=n.StateStats,c=void 0===l?[]:l,d=n.MemoryUsed,h=n.CoresUsed,f=n.StorageGroups,p=n.StorageAllocatedSize,g=n.Type,v=n.SystemTablets,m=(e=g)&&ws[e],_=null!==d&&void 0!==d?d:s.Memory,y=_&&mi(_)||"no data",b=s.Storage&&mi(s.Storage)||"no data",w=null!==f&&void 0!==f?f:"no data",C=p&&mi(p)||"no data",k=s.Storage&&p?"".concat((100*s.Storage/p).toFixed(2),"%"):"no data",S=void 0!==h?1e6*Number(h):s.CPU,x=[{label:"Type",value:g},{label:"Memory",value:y},{label:"CPU",value:Mr(S)},{label:"Tablet storage",value:b},{label:"Storage groups",value:w},{label:"Blob storage",value:C},{label:"Storage efficiency",value:k}],L=c.map((function(e){return{label:Nn[e.VolatileState],value:e.Count}}));return o?this.renderLoader():(0,ra.jsxs)("div",{className:FH(),children:[(0,ra.jsx)("div",{className:FH("top-label"),children:m}),(0,ra.jsxs)("div",{className:FH("top"),children:[jH(n),this.props.additionalTenantInfo&&this.props.additionalTenantInfo(this.props.tenant.Name,this.props.tenant.Type)]}),(0,ra.jsx)("div",{className:FH("system-tablets"),children:v&&v.map((function(e,t){return(0,ra.jsx)(Rp,{onMouseEnter:r,onMouseLeave:i,tablet:e},t)}))}),(0,ra.jsxs)("div",{className:FH("common-info"),children:[(0,ra.jsxs)("div",{children:[(0,ra.jsx)("div",{className:FH("section-title"),children:"Pools"}),u?(0,ra.jsx)("div",{className:FH("section",{pools:!0}),children:u.map((function(e,t){return(0,ra.jsx)(ZH,{data:e},t)}))}):(0,ra.jsx)("div",{className:"error",children:"no pools data"})]}),(0,ra.jsx)(aa,{title:"Metrics",className:FH("section",{metrics:!0}),info:x}),(0,ra.jsx)("div",{className:FH("section"),children:(0,ra.jsx)(aa,{info:L,title:"Tablets"})})]})]})}}]),n}(e.Component);var BH=U((function(e){var t=e.tenant,n=t.tenant,i=void 0===n?{}:n,r=t.loading,o=t.data;return{tenant:i,loading:r,status:(void 0===o?{}:o).status,autorefresh:e.schema.autorefresh}}),{hideTooltip:Da,showTooltip:Ma,getTenantInfo:ro})(HH),zH=(0,ct.Z)("kv-detailed-overview");var WH=function(t){var n=(0,e.useState)(!1),i=(0,Ti.Z)(n,2),r=i[0],o=i[1],a=(0,e.useState)(),s=(0,Ti.Z)(a,2),u=s[0],l=s[1],c=te((function(e){return e.schema})).currentSchemaPath,d=function(e){l(e),o(!0)},h=function(){o(!1)};return(0,ra.jsxs)(e.Fragment,{children:[function(){var e=t.type,n=t.tenantName,i=t.additionalTenantInfo,r=n===c;return(0,ra.jsx)("div",{className:zH(),children:r?(0,ra.jsxs)(ra.Fragment,{children:[(0,ra.jsx)("div",{className:zH("section"),children:(0,ra.jsx)(BH,{tenantName:n,additionalTenantInfo:i})}),(0,ra.jsx)("div",{className:zH("section"),children:(0,ra.jsx)(IH,{tenant:n,preview:!0,showMoreHandler:d})})]}):(0,ra.jsx)(dH,{type:e,tenantName:n})})}(),(0,ra.jsxs)(gj.u,{open:r,onClose:h,className:zH("modal"),children:[(0,ra.jsx)(IH,{tenant:t.tenantName,fetchData:!1,expandedIssueId:u}),(0,ra.jsx)(dd.z,{className:zH("close-modal-button"),onClick:h,view:"flat-secondary",title:"Close",children:(0,ra.jsx)(fh,{name:"close",viewBox:"0 0 16 16 ",height:20,width:20})})]})]})},VH=e.createContext(ke());VH.displayName="HistoryContext";var YH=VH,UH=JSON.parse('{"no-data":"No data","filters.mode.immediate":"Immediate","filters.mode.history":"Historical","description":"Historical data only tracks shards with CPU load over 70%"}'),KH=JSON.parse('{"no-data":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445","filters.mode.immediate":"\u041c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u0435","filters.mode.history":"\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435","description":"\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e \u0448\u0430\u0440\u0434\u0430\u0445 \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 CPU \u0432\u044b\u0448\u0435 70%"}'),qH="ydb-diagnostics-top-shards";gr.registerKeyset(ar.En,qH,UH),gr.registerKeyset(ar.Ru,qH,KH);var GH=gr.keyset(qH),$H=function(e){var t=e.value,n=e.onChange,i=e.className,r=t.mode===gc.Immediate?void 0:t.from,o=t.mode===gc.Immediate?void 0:t.to;return(0,ra.jsxs)("div",{className:QH("filters",i),children:[(0,ra.jsxs)(nh.E,{value:t.mode,onUpdate:function(e){if(!function(e,t){return Object.values(e).includes(t)}(gc,e)){var t=Object.values(gc).join(", ");throw new Error('Unexpected TopShards mode "'.concat(e,'". Should be one of: ').concat(t))}n({mode:e})},children:[(0,ra.jsx)(nh.E.Option,{value:gc.Immediate,children:GH("filters.mode.immediate")}),(0,ra.jsx)(nh.E.Option,{value:gc.History,children:GH("filters.mode.history")})]}),(0,ra.jsx)(aj,{from:r,to:o,onChange:function(e){n(pt({mode:gc.History},e))}})]})},QH=(0,ct.Z)("top-shards"),XH=(0,ct.Z)("yc-link"),JH=pt(pt({},Gn),{},{dynamicRender:!1,externalSort:!0,disableSortReset:!0,defaultOrder:wn.DESCENDING}),eB="TabletId",tB="CPUCores",nB="DataSize",iB="Path",rB="NodeId",oB="PeakTime",aB="InFlightTxCount",sB="IntervalEnd";function uB(e){return e?e.split(",").map((function(e){return{columnId:e,order:wn.DESCENDING}})):void 0}function lB(e){return e?e.split(",").map((function(e){return{columnId:e,order:"DESC"}})):void 0}function cB(e){return e.to=Date.now(),e.from=e.to-1e3*Ln,e}var dB=function(t){var n=t.tenantPath,i=t.type,r=Q(),o=jh((function(e){return e.schema})),a=o.autorefresh,s=o.currentSchemaPath,u=jh((function(e){return e.shardsWorkload})),l=u.loading,c=u.data,d=(void 0===c?{}:c).result,h=void 0===d?void 0:d,f=u.filters,p=u.error,g=u.wasLoaded,v=(0,e.useState)((function(){var e=pt({},f);return e.mode||(e.mode=gc.Immediate),e.from||e.to||cB(e),e})),m=(0,Ti.Z)(v,2),_=m[0],y=m[1],b=(0,e.useState)(tB),w=(0,Ti.Z)(b,2),C=w[0],k=w[1];Fh((function(){r(function(e){var t=e.database,n=e.path,i=void 0===n?"":n,r=e.sortOrder,o=e.filters;try{return Wi({request:window.api.sendQuery({schema:"modern",query:(null===o||void 0===o?void 0:o.mode)===gc.Immediate?Sc(i,r,t):kc(i,o,r,t),database:t,action:"execute-scan"},{concurrentId:"shardsWorkload"}),actions:_c,dataHandler:$u})}catch(p){return{type:_c.FAILURE,error:p}}}({database:n,path:s,sortOrder:lB(C),filters:_}))}),[r,n,s,C,_],a),(0,e.useEffect)((function(){r({type:yc,data:{wasLoaded:!1,data:void 0}})}),[r,s,n,_]);var S=(0,e.useContext)(YH),x=function(e){k(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(Array.isArray(e)?e:[e]).map((function(e){return e.columnId})).join(",")}(e))},L=(0,e.useMemo)((function(){var e=[{name:iB,render:function(e){var t,i=e.value;return(0,ra.jsx)("span",{onClick:(t=n+i,function(){r(Ks(t)),r(Us({path:t})),S.go(0)}),className:XH({view:"normal"}),children:i})},sortable:!1},{name:tB,render:function(e){return function(e){return"".concat((100*Number(e)).toFixed(2),"%")}(e.value)},align:wn.RIGHT},{name:nB,header:"DataSize (B)",render:function(e){var t=e.value;return Dr(t)},align:wn.RIGHT},{name:eB,render:function(e){var t=e.value;return(0,ra.jsx)(jf,{to:ld(cd.tablet,{id:t}),children:t})},sortable:!1},{name:rB,render:function(e){var t=e.value;return(0,ra.jsx)(jf,{to:$h(t),children:t})},align:wn.RIGHT,sortable:!1},{name:aB,render:function(e){var t=e.value;return Dr(t)},align:wn.RIGHT,sortable:!1}];return _.mode===gc.History&&(e.splice(5,0,{name:oB,render:function(e){var t=e.value;return Tr(new Date(t).valueOf())},sortable:!1}),e.push({name:sB,render:function(e){var t=e.value;return Tr(new Date(t).getTime())}})),e}),[r,_.mode,S,n]);return(0,ra.jsxs)("div",{className:QH(),children:[(0,ra.jsx)($H,{value:_,onChange:function(e){var t=pt({},e);if(!f.from&&!f.to&&!e.from&&!e.to)switch(e.mode){case gc.Immediate:t.from=t.to=void 0;break;case gc.History:cB(t)}r(function(e){return{type:bc,filters:e}}(e)),y((function(e){return pt(pt({},e),t)}))}}),_.mode===gc.History&&(0,ra.jsx)("div",{children:GH("description")}),l&&!g?(0,ra.jsx)("div",{className:QH("loader"),children:(0,ra.jsx)(fd.a,{size:"m"})}):p&&!p.isCancelled?(0,ra.jsx)("div",{className:"error",children:Xu(p)}):!h||Es(i)?GH("no-data"):(0,ra.jsx)("div",{className:QH("table"),children:(0,ra.jsx)(wn,{columns:L,data:h,settings:JH,theme:"yandex-cloud",onSort:x,sortOrder:uB(C)})})]})},hB=n(96040),fB=(0,ct.Z)("node-network"),pB=function(e,t){var n=Math.floor(e/t*100);return 100===n?"green":n>=70?"yellow":n>=1?"red":"gray"},gB=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;(0,i.Z)(this,s);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(t=n.call.apply(n,[this].concat(o))).node=e.createRef(),t._onNodeHover=function(){var e=t.props,n=e.onMouseEnter,i={nodeId:e.nodeId,connected:e.connected,capacity:e.capacity,rack:e.rack};n(t.node.current,i,"node")},t._onNodeLeave=function(){t.props.onMouseLeave()},t}return(0,r.Z)(s,[{key:"render",value:function(){var e,t=this.props,n=t.nodeId,i=t.connected,r=t.capacity,o=t.status,a=t.onClick,s=t.showID,u=t.isBlurred;return(0,ra.jsx)("div",{ref:this.node,className:fB((e={},(0,ht.Z)(e,(null===o||void 0===o?void 0:o.toLowerCase())||pB(i,r),!0),(0,ht.Z)(e,"id",s),(0,ht.Z)(e,"blur",u),e)),onMouseEnter:this._onNodeHover,onMouseLeave:this._onNodeLeave,onClick:function(){return a(n)},children:s&&n})}}]),s}(e.Component);gB.defaultProps={onMouseEnter:function(){},onMouseLeave:function(){},onClick:function(){}};var vB=gB,mB=(0,ct.Z)("network"),_B=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={howNodeSeeOtherNodesSortType:"",howOthersSeeNodeSortType:"",howNodeSeeOtherSearch:"",howOtherSeeNodeSearch:"",hoveredNode:void 0,clickedNode:void 0,highlightedNodes:[],showId:!1,showRacks:!1},e.onChange=function(t,n){e.setState((0,ht.Z)({},t,n))},e.handleSortChange=function(t){e.setState({sort:t})},e.handleNodeClickWrap=function(t){return function(){var n=e.state.clickedNode,i=t.NodeId;n&&i===n.nodeId?e.setState({clickedNode:void 0}):e.setState({clickedNode:t,rightNodes:e.groupNodesByField(t.Peers,"NodeType")})}},e.groupNodesByField=function(e,t){return Zt().reduce(e,(function(e,n){return e[n[t]]?e[n[t]].push(n):e[n[t]]=[n],e}),{})},e.getConnectedNodesCount=function(e){return null===e||void 0===e?void 0:e.reduce((function(e,t){return t.Connected?e+1:e}),0)},e.renderNodes=function(t,n){var i=e.state,r=i.showId,o=i.showRacks,a=i.clickedNode,s=0,u=e.props,l=u.showTooltip,c=u.hideTooltip,d=u.filter,h=Object.keys(t).map((function(i,u){var h=e.groupNodesByField(t[i],"Rack");return(0,ra.jsxs)("div",{className:mB("nodes-container",{right:n}),children:[(0,ra.jsxs)("div",{className:mB("nodes-title"),children:[i," nodes"]}),(0,ra.jsx)("div",{className:mB("nodes"),children:o?Object.keys(h).map((function(t,i){return(0,ra.jsxs)("div",{className:mB("rack-column"),children:[(0,ra.jsx)("div",{className:mB("rack-index"),children:"undefined"===t?"?":t}),h[t].map((function(t,i){var o,u;if(!n&&null!==t&&void 0!==t&&t.Peers&&(o=Object.keys(null===t||void 0===t?void 0:t.Peers).length,u=e.getConnectedNodesCount(null===t||void 0===t?void 0:t.Peers)),d===Pn&&o!==u||d===Rn||n)return s++,(0,ra.jsx)(vB,{nodeId:t.NodeId,showID:r,rack:t.Rack,status:t.ConnectStatus,capacity:o,connected:u,onMouseEnter:l,onMouseLeave:c,onClick:!n&&e.handleNodeClickWrap(t),isBlurred:!n&&a&&a.NodeId!==t.NodeId},i)}))]},i)})):t[i].map((function(t,i){var o,u,h;n||(o=null===t||void 0===t||null===(h=t.Peers)||void 0===h?void 0:h.length,u=e.getConnectedNodesCount(null===t||void 0===t?void 0:t.Peers));if(d===Pn&&o!==u||d===Rn||n)return s++,(0,ra.jsx)(vB,{nodeId:t.NodeId,showID:r,rack:t.Rack,status:t.ConnectStatus,capacity:(null===t||void 0===t?void 0:t.Peers)&&(null===t||void 0===t?void 0:t.Peers.length),connected:(null===t||void 0===t?void 0:t.Peers)&&e.getConnectedNodesCount(null===t||void 0===t?void 0:t.Peers),onMouseEnter:l,onMouseLeave:c,onClick:!n&&e.handleNodeClickWrap(t),isBlurred:!n&&a&&a.NodeId!==t.NodeId},i)}))})]},u)}));return d===Pn&&0===s?(0,ra.jsx)(uh,{name:"thumbsUp",width:"200"}):h},e.renderContent=function(){var t=e.props,n=t.netWorkInfo,i=t.filter,r=t.changeFilter,o=e.state,a=o.showId,s=o.showRacks,u=o.rightNodes,l=e.state.clickedNode,c=n.Tenants&&n.Tenants[0].Nodes,d=e.groupNodesByField(c,"NodeType");return null!==c&&void 0!==c&&c.length?(0,ra.jsx)("div",{className:mB(),children:(0,ra.jsx)("div",{className:mB("inner"),children:(0,ra.jsxs)("div",{className:mB("nodes-row"),children:[(0,ra.jsxs)("div",{className:mB("left"),children:[(0,ra.jsx)("div",{className:mB("controls-wrapper"),children:(0,ra.jsxs)("div",{className:mB("controls"),children:[(0,ra.jsx)(ih,{value:i,onChange:r,className:mB("problem-filter")}),(0,ra.jsx)("div",{className:mB("checkbox-wrapper"),children:(0,ra.jsx)(hB.X,{onUpdate:function(){return e.onChange("showId",!a)},checked:a,children:"ID"})}),(0,ra.jsx)("div",{className:mB("checkbox-wrapper"),children:(0,ra.jsx)(hB.X,{onUpdate:function(){return e.onChange("showRacks",!s)},checked:s,children:"Racks"})})]})}),e.renderNodes(d)]}),(0,ra.jsx)("div",{className:mB("right"),children:l?(0,ra.jsxs)("div",{children:[(0,ra.jsxs)("div",{className:mB("label"),children:["Connectivity of node"," ",(0,ra.jsx)(yd,{className:mB("link"),to:$h(l.NodeId),children:l.NodeId})," ","to other nodes"]}),(0,ra.jsx)("div",{className:mB("nodes-row"),children:e.renderNodes(u,!0)})]}):(0,ra.jsxs)("div",{className:mB("placeholder"),children:[(0,ra.jsx)("div",{className:mB("placeholder-img"),children:(0,ra.jsx)(fh,{name:"network-placeholder",viewBox:"0 0 221 204",width:221,height:204})}),(0,ra.jsx)("div",{className:mB("placeholder-text"),children:"Select node to see its connectivity to other nodes"})]})})]})})}):(0,ra.jsx)("div",{className:"error",children:"no nodes data"})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.path,n=e.autorefresh,i=e.getNetworkInfo;this.autofetcher=new lh,n&&(this.autofetcher.start(),this.autofetcher.fetch((function(){return i(t)}))),i(t)}},{key:"componentDidUpdate",value:function(e){var t=this,n=this.props,i=n.autorefresh,r=n.path,o=n.setDataWasNotLoaded,a=n.getNetworkInfo,s=function(){t.autofetcher.stop(),t.autofetcher.start(),t.autofetcher.fetch((function(){return a(r)}))};i&&!e.autorefresh&&(a(r),s()),!i&&e.autorefresh&&this.autofetcher.stop(),r!==e.path&&(o(),a(r),s())}},{key:"componentWillUnmount",value:function(){this.autofetcher.stop()}},{key:"render",value:function(){var e=this.props,t=e.loading,i=e.wasLoaded,r=e.error;return t&&!i?n.renderLoader():r?(0,ra.jsx)("div",{children:r.statusText}):this.renderContent()}}],[{key:"renderLoader",value:function(){return(0,ra.jsx)("div",{className:"loader",children:(0,ra.jsx)(fd.a,{size:"l"})})}}]),n}(e.Component);_B.defaultProps={};var yB={getNetworkInfo:function(e){return Wi({request:window.api.getNetwork(e),actions:nu})},hideTooltip:Da,showTooltip:Ma,changeFilter:Di,setDataWasNotLoaded:function(){return{type:iu}}},bB=U((function(e){var t=e.network,n=t.wasLoaded,i=t.loading,r=t.data,o=e.schema.autorefresh;return{netWorkInfo:r,wasLoaded:n,loading:i,filter:e.settings.problemFilter,autorefresh:o}}),yB)(_B),wB=(0,ct.Z)("kv-describe"),CB=new Map,kB=function(t){var n=t.tenant,i=t.type,r=Q(),o=jh((function(e){return e.describe})),a=o.currentDescribe,s=o.error,u=o.loading,l=o.wasLoaded,c=(0,e.useState)(),d=(0,Ti.Z)(c,2),h=d[0],f=d[1];(0,e.useEffect)((function(){if(a){var e=Object.keys(a);1===e.length?f(a[e[0]]):f(a)}}),[a]);var p=jh((function(e){return e.schema})),g=p.autorefresh,v=p.currentSchemaPath,m=Os(i),_=jh((function(e){return Qs(e,v,i)}),M),y=(0,e.useCallback)((function(e){e||r({type:jl});var t=v||n;r(function(e){return{type:Fl,data:e}}(t)),m?_&&r(function(e){var t=e.map((function(e){return window.api.getDescribe({path:e})}));return Wi({request:Promise.all(t),actions:Zl,dataHandler:function(e){var t={},n={};return e.forEach((function(e){e.Path&&(n[e.Path]=e,t[e.Path]=e)})),{path:e[0].Path,currentDescribe:t,data:n}}})}([t].concat((0,zt.Z)(_)))):r(function(e){var t=e.path;return Wi({request:window.api.getDescribe({path:t}),actions:Zl,dataHandler:function(e){var t=e.Path,n={},i={};return t&&(n[t]=e,i[t]=e),{path:t,currentDescribe:n,data:i}}})}({path:t}))}),[v,n,_,m,r]);return Fh(y,[y],g),u&&!l||m&&!_?(0,ra.jsx)(Th,{size:"m"}):s?(0,ra.jsx)("div",{className:wB("message-container","error"),children:Xu(s)}):u||h?(0,ra.jsx)("div",{className:wB(),children:(0,ra.jsx)("div",{className:wB("result"),children:(0,ra.jsx)(ia(),{data:h,className:wB("tree"),onClick:function(e){var t=e.path,n=!CB.get(t);CB.set(t,n)},searchOptions:{debounceTime:300},isExpanded:function(e){return CB.get(e)||!1}})})}):(0,ra.jsx)("div",{className:wB("message-container"),children:"Empty"})},SB=(0,ct.Z)("hot-keys"),xB={displayIndices:!1,syncHeadOnResize:!0,stickyHead:wn.MOVING,stickyTop:0},LB={accessSample:"accessSample",keyValues:"keyValues"},EB=new lh;var NB=U((function(e){var t=e.hotKeys,n=t.loading,i=t.data,r=t.error,o=t.wasLoaded,a=e.schema,s=a.currentSchema,u=void 0===s?{}:s,l=a.autorefresh;return{loading:n,data:i,error:r,currentSchemaPath:u.Path,autorefresh:l,wasLoaded:o,currentSchema:u}}),{getHotKeys:function(e,t){return Wi({request:window.api.getHotKeys(e,t),actions:Lc})},setHotKeysOptions:function(e){return{type:Ec,data:e}}})((function(t){var n=t.getHotKeys,i=t.currentSchemaPath,r=t.loading,o=t.wasLoaded,a=t.error,s=t.data,u=t.autorefresh,l=t.setHotKeysOptions,c=t.currentSchema,d=t.type,h=function(){ks(d)&&!Es(d)&&n(i)};(0,e.useEffect)((function(){return u?(h(),EB.start(),EB.fetch((function(){return h()}))):EB.stop(),function(){EB.stop()}}),[u]),(0,e.useEffect)((function(){h(),l({wasLoaded:!1,data:void 0})}),[i]);var f=(0,e.useMemo)((function(){var e,t,n,i=null!==(e=null===c||void 0===c||null===(t=c.PathDescription)||void 0===t||null===(n=t.Table)||void 0===n?void 0:n.KeyColumnNames)&&void 0!==e?e:[];return[{name:LB.accessSample,header:"Samples",sortable:!1,align:wn.RIGHT}].concat((0,zt.Z)(null===i||void 0===i?void 0:i.map((function(e,t){return{name:e,header:(0,ra.jsxs)("div",{className:SB("primary-key-column"),children:[(0,ra.jsx)(fh,{name:"key",viewBox:"0 0 12 7",width:12,height:7}),e]}),render:function(e){return e.row[LB.keyValues][t]},align:wn.RIGHT,sortable:!1}}))))}),[c]);return r||void 0!==s?(0,ra.jsx)("div",{className:SB(),children:r&&!o?(0,ra.jsx)("div",{className:SB("loader"),children:(0,ra.jsx)(fd.a,{size:"l"})}):a?Xu(a):null!==s?(0,ra.jsx)("div",{className:SB("table-content"),children:(0,ra.jsx)(wn,{columns:f,data:s,settings:xB,theme:"yandex-cloud",initialSortOrder:{columnId:LB.accessSample,order:wn.DESCENDING}})}):(0,ra.jsx)("div",{className:SB("stub"),children:"No information about hot keys"})}):(0,ra.jsx)("div",{className:SB("stub"),children:"Cluster version does not support hot keys viewing"})})),DB={r:255,g:4,b:0},MB={r:255,g:219,b:77},TB={r:59,g:201,b:53},OB={CPU:{min:0,max:1e6},Network:{min:0,max:1e9},Storage:{min:0,max:2e9},DataSize:{min:0,max:2e9},RowCount:{min:0},IndexSize:{min:0}},IB=function(e){var t=e.toString(16);return 1===t.length?"0".concat(t):t},AB=function(e,t,n){if(1===e)return[t];if(2===e)return[t,n];for(var i=(t.r-n.r)/(e-1),r=(t.g-n.g)/(e-1),o=(t.b-n.b)/(e-1),a=[],s=0;s<e;s++)a.push({r:Math.round(t.r-i*s),g:Math.round(t.g-r*s),b:Math.round(t.b-o*s)});return a.map((function(e){return function(e){var t=e.r,n=e.g,i=e.b;return"#".concat(IB(t)).concat(IB(n)).concat(IB(i))}(e)}))},RB=function(e){var t=Math.floor(e/2),n=t+1,i=AB(e%2===0?t:t+1,TB,MB),r=AB(n,MB,DB);return[].concat((0,zt.Z)(i),(0,zt.Z)(r.slice(1)))},PB=function(e,t){var n=new Set,i=OB[e]||{};t.forEach((function(t){n.add(Number(t.metrics[e]))})),Number.isInteger(i.min)&&n.add(i.min),Number.isInteger(i.max)&&n.add(i.max);var r=Array.from(n.values()).sort((function(e,t){return e-t}));return{min:r[0],max:r[r.length-1]}},ZB=(0,ct.Z)("heatmap"),FB={width:0,height:0},jB=10,HB=2,BB=function(t){var n=(0,e.useState)(FB),i=(0,Ti.Z)(n,2),r=i[0],o=i[1],a=t.tablets,s=(0,e.useRef)(null),u=(0,e.useRef)(null);(0,e.useEffect)((function(){var e=s.current,t=e.getContext("2d");t.clearRect(0,0,e.offsetWidth,e.offsetHeight),a.map(function(e){return function(t,n){var i=r.columnsCount,o=n%i*(jB+HB),a=Math.floor(n/i)*(jB+HB);e.fillStyle=t.color||"gray",e.fillRect(o,a,jB,jB)}}(t))})),(0,e.useLayoutEffect)((function(){var e=u.current;if(e){var t=e.offsetWidth-15,n=Math.floor(t/(jB+HB)),i=Math.ceil(a.length/n);o({width:t,height:i*(jB+HB),columnsCount:n,rowsCount:i})}}),[]);var l=function(){for(var e=s.current,t=0;e;)t+=e.offsetTop,e=e.offsetParent;return t},c=function(){for(var e=s.current,t=0;e;)t+=e.offsetLeft,e=e.offsetParent;return t},d=function(e,t){var n=r.columnsCount,i=jB+HB,o=jB+HB,a=Math.floor(e/i);return n*Math.floor(t/o)+a},h=Zt().throttle((function(e,n){var i=new CustomEvent("scroll");window.dispatchEvent(i);var r=t.parentRef.current,o=e-c()+r.scrollLeft,s=n-l()+r.scrollTop,u=d(o,s),h=a[u];if(h){var f={name:h.currentMetric,value:h.formattedValue};t.showTooltip(void 0,h,"tablet",f,{left:e-20,top:n-20})}else t.hideTooltip()}),20);return(0,ra.jsx)("div",{ref:u,className:ZB("canvas-container"),onMouseLeave:function(){setTimeout((function(){t.hideTooltip()}),40)},children:(0,ra.jsx)("canvas",{ref:s,width:r.width,height:r.height,onClick:function(e){var n=t.parentRef.current,i=e.clientX-c()+n.scrollLeft,r=e.clientY-l()+n.scrollTop,o=d(i,r),s=a[o];s&&window.open(function(e){var t=e.TabletId,n=window.location.hostname,i=ld(cd.tablet,{id:t}),r=[n,Xc,i].map((function(e){return e.startsWith("/")?e.slice(1):e})).filter(Boolean).join("/");return"".concat("https://").concat(r)}(s),"_blank")},onMouseMove:function(e){return h(e.clientX,e.clientY)}})})},zB=(0,ct.Z)("histogram"),WB=function(t){var n=(0,e.useRef)(),i=t.data,r=void 0===i?{}:i,o=t.maxCount,a=r.count,s=r.leftBound,u=r.rightBound,l=r.color,c=a/o*100;return(0,ra.jsx)("div",{ref:n,className:zB("item"),style:{backgroundColor:l,height:"".concat(c,"%")},onMouseEnter:function(){var e=n.current;t.showTooltip(e,{count:a,leftBound:s,rightBound:u},"histogram")},onMouseLeave:t.hideTooltip})},VB=function(e){var t=e.tablets,n=e.currentMetric,i=PB(n,t),r=i.min,o=i.max,a=RB(50),s=(o-r)/50,u=a.map((function(e,t){return{color:e,count:0,leftBound:Dr(r+t*s),rightBound:Dr(r+(t+1)*s)}})),l=0;t.forEach((function(e){var t,i=n&&Number(e.metrics[n]),r=Math.floor(i/s),o=(null===(t=u[r])||void 0===t?void 0:t.count)+1;o>l&&(l=o),u[r]=pt(pt({},u[r]),{},{count:o})}));return(0,ra.jsx)("div",{className:zB(),children:(0,ra.jsxs)("div",{className:zB("chart"),children:[Boolean(o)&&u.map((function(t,n){return(0,ra.jsx)(WB,{data:t,maxCount:l,showTooltip:e.showTooltip,hideTooltip:e.hideTooltip},n)})),(0,ra.jsx)("div",{className:zB("x-min"),children:Dr(r)}),(0,ra.jsx)("div",{className:zB("x-max"),children:Dr(o)}),(0,ra.jsx)("div",{className:zB("y-min"),children:"0"}),(0,ra.jsx)("div",{className:zB("y-max"),children:Dr(l)})]})})},YB=(0,ct.Z)("heatmap"),UB=RB(500),KB=function(t){var n=t.path,i=Q(),r=e.createRef(),o=jh((function(e){return e.schema})).autorefresh,a=jh((function(e){return e.heatmap})),s=a.loading,u=a.wasLoaded,l=a.error,c=a.sort,d=a.heatmap,h=a.metrics,f=a.currentMetric,p=a.data,g=void 0===p?[]:p,v=(0,e.useState)([""]),m=(0,Ti.Z)(v,2),_=m[0],y=m[1];(0,e.useEffect)((function(){!f&&h&&h.length&&i(Ki({currentMetric:h[0].value})),f&&y([f])}),[f,h,i]);var b=(0,e.useCallback)((function(e){e||i(Ki({wasLoaded:!1})),i(function(e){var t=e.nodes,n=e.path;return Wi({request:Promise.all([window.api.getTabletsInfo({nodes:t,path:n}),window.api.getHeatmapData({path:n})]),actions:Vi,dataHandler:function(e){var t=(0,Ti.Z)(e,2),n=t[0],i=void 0===n?{}:n,r=t[1],o=void 0===r?{}:r,a=i.TabletStateInfo,s=void 0===a?[]:a,u=new Map,l=o.PathDescription,c=void 0===l?{}:l,d=c.TablePartitions,h=void 0===d?[]:d,f=c.TablePartitionStats,p=void 0===f?[]:f,g=c.TablePartitionMetrics,v=void 0===g?[]:g;s.forEach((function(e){e.TabletId&&u.set(e.TabletId,e)})),h.forEach((function(e,t){var n=Object.assign({},p[t],v[t]);e.DatashardId&&u.set(e.DatashardId,pt(pt({},u.get(e.DatashardId)),{},{metrics:n}))}));var m=Array.from(u.values());return{data:m,metrics:m[0]&&m[0].metrics&&Object.keys(m[0].metrics).map((function(e){return{value:e,content:e}}))}}})}({path:n}))}),[n,i]);Fh(b,[b],o);var w=function(){i(Ma.apply(void 0,arguments))},C=function(){i(Da)},k=function(e){i(Ki({currentMetric:e[0]}))},S=function(){i(Ki({sort:!c}))},x=function(){i(Ki({heatmap:!d}))},L=function(){var e=PB(f,g),t=e.min,n=e.max,i=g.map((function(e){var i,r=f&&Number(null===(i=e.metrics)||void 0===i?void 0:i[f]),o=function(e,t,n){return 0===n?0:Math.round((e-t)/(n-t)*499)}(r,t,n),a=UB[o];return pt(pt({},e),{},{color:a,value:r,formattedValue:Dr(r),currentMetric:f})})),o=c?i.sort((function(e,t){return Number(t.value)-Number(e.value)})):i;return(0,ra.jsx)("div",{ref:r,className:YB("items"),children:(0,ra.jsx)(BB,{tablets:o,parentRef:r,showTooltip:w,hideTooltip:C,currentMetric:f})})};return s&&!u?(0,ra.jsx)(Th,{}):l?(0,ra.jsx)("div",{children:Xu(l)}):function(){var e=PB(f,g),t=e.min,n=e.max;return(0,ra.jsxs)("div",{className:YB(),children:[(0,ra.jsxs)("div",{className:YB("filters"),children:[(0,ra.jsx)(af.P,{className:YB("heatmap-select"),value:_,options:h,onUpdate:k,width:200}),(0,ra.jsx)("div",{className:YB("sort-checkbox"),children:(0,ra.jsx)(hB.X,{onUpdate:S,checked:c,children:"Sort"})}),(0,ra.jsx)("div",{className:YB("histogram-checkbox"),children:(0,ra.jsx)(hB.X,{onUpdate:x,checked:d,children:"Heatmap"})}),(0,ra.jsxs)("div",{className:YB("limits"),children:[(0,ra.jsxs)("div",{className:YB("limits-block"),children:[(0,ra.jsx)("div",{className:YB("limits-title"),children:"min:"}),(0,ra.jsx)("div",{className:YB("limits-value"),children:Number.isInteger(t)?Dr(t):"\u2014"})]}),(0,ra.jsxs)("div",{className:YB("limits-block"),children:[(0,ra.jsx)("div",{className:YB("limits-title"),children:"max:"}),(0,ra.jsx)("div",{className:YB("limits-value"),children:Number.isInteger(n)?Dr(n):"\u2014"})]}),(0,ra.jsxs)("div",{className:YB("limits-block"),children:[(0,ra.jsx)("div",{className:YB("limits-title"),children:"count:"}),(0,ra.jsx)("div",{className:YB("limits-value"),children:Dr(g.length)})]})]})]}),d?L():(0,ra.jsx)(VB,{tablets:g,currentMetric:f,showTooltip:w,hideTooltip:C})]})}()},qB=n(74140),GB=n.n(qB),$B=n(32521),QB=3,XB={grey:"var(--yc-color-base-misc-heavy)",green:"var(--yc-color-base-positive-heavy)",yellow:" var(--yc-color-base-warning-heavy)",orange:"var( --yc-color-base-warning-orange)",red:"var(--yc-color-base-danger-heavy)",blue:"var(--yc-color-base-info-heavy)"},JB=(0,ct.Z)("kv-tablets-overall");var ez=function(e){var t=e.tablets,n=Q(),i=t.length,r=t.reduce((function(e,t){var n,i=null===(n=t.Overall)||void 0===n?void 0:n.toLowerCase();return i&&!e[i]?e[i]=1:i&&e[i]++,e}),{}),o=[];Object.keys(r).forEach((function(e){var n=r[e]/i*100,a=r[e];r[e]=n,o.push({color:e,percents:n,value:a,total:t.length})})),Object.keys(r).forEach((function(e){r[e]<QB&&(!function(e,t){Object.keys(e).some((function(n){return e[n]>10&&(e[n]-=QB-t,!0)}))}(r,r[e]),r[e]=QB)}));var a=Object.keys(r).map((function(e){return{color:XB[e],colorKey:e,value:r[e]}}));return a.sort((function(e,t){return An[t.colorKey]-An[e.colorKey]})),(0,ra.jsxs)("div",{className:JB("row",{overall:!0}),children:[(0,ra.jsx)("span",{className:JB("label",{overall:!0}),children:"Overall:"}),(0,ra.jsx)("div",{onMouseLeave:function(){return n(Da())},onMouseEnter:function(e){return n(Ma(e.target,o,"tabletsOverall"))},children:(0,ra.jsx)($B.E,{value:100,stack:a})})]})},tz=JSON.parse('{"controls.type":"Type","controls.state":"State","controls.allItems":"All items","noTabletsData":"No tablets data"}'),nz=JSON.parse('{"controls.type":"\u0422\u0438\u043f","controls.state":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435","controls.allItems":"\u0412\u0441\u0435","noTabletsData":"\u041d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u0430\u0431\u043b\u0435\u0442\u043a\u0430\u0445"}'),iz="ydb-tablets";gr.registerKeyset(ar.En,iz,tz),gr.registerKeyset(ar.Ru,iz,nz);var rz,oz,az=gr.keyset(iz),sz=(0,ct.Z)("tablets"),uz=function(t){var n=t.path,i=t.nodeId,r=t.className,o=Q(),a=jh((function(e){return e.tablets})),s=a.data,u=void 0===s?{}:s,l=a.wasLoaded,c=a.loading,d=a.error,h=a.stateFilter,f=a.typeFilter,p=jh((function(e){return e.schema})).autorefresh,g=(0,e.useMemo)((function(){return(null===u||void 0===u?void 0:u.TabletStateInfo)||[]}),[u]),v=(0,e.useCallback)((function(e){e||o({type:Ia}),i?o(Za({nodes:[String(i)]})):n&&o(Za({path:n}))}),[n,i,o]);Fh(v,[v],p);var m=(0,e.useState)([]),_=(0,Ti.Z)(m,2),y=_[0],b=_[1];(0,e.useEffect)((function(){var e=g;f.length>0&&(e=e.filter((function(e){return f.some((function(t){return e.Type===t}))}))),h.length>0&&(e=e.filter((function(e){return h.some((function(t){return e.State===t}))}))),b(e)}),[g,h,f]);var w=function(e){o(function(e){return{type:Aa,data:e}}(e))},C=function(e){o(function(e){return{type:Ra,data:e}}(e))},k=function(){o(Ma.apply(void 0,arguments))},S=function(){o(Da())},x=function(e){return(0,ra.jsx)(Rp,{onMouseLeave:S,onMouseEnter:k,tablet:y[e]},e)};return c&&!l?(0,ra.jsx)(Th,{}):d?(0,ra.jsx)("div",{className:"error",children:d.statusText}):g.length>0?function(){var e=Array.from(new Set(g.map((function(e){return e.State})))).filter((function(e){return void 0!==e})).map((function(e){return{value:e,content:e}})),t=Array.from(new Set(g.map((function(e){return e.Type})))).filter((function(e){return void 0!==e})).map((function(e){return{value:e,content:e}}));return(0,ra.jsxs)("div",{className:sz(null,r),children:[(0,ra.jsxs)("div",{className:sz("header"),children:[(0,ra.jsx)(af.P,{className:sz("filter-control"),multiple:!0,placeholder:az("controls.allItems"),label:"".concat(az("controls.state"),":"),options:e,value:h,onUpdate:w}),(0,ra.jsx)(af.P,{className:sz("filter-control"),multiple:!0,placeholder:az("controls.allItems"),label:"".concat(az("controls.type"),":"),options:t,value:f,onUpdate:C}),(0,ra.jsx)(ez,{tablets:g})]}),(0,ra.jsx)("div",{className:sz("items"),children:(0,ra.jsx)(GB(),{itemRenderer:x,length:y.length,type:"uniform"})})]})}():(0,ra.jsx)("div",{className:"error",children:az("noTabletsData")})},lz=(0,ct.Z)("ydb-diagnostics-consumers-topic-stats"),cz=function(e){var t=e.data||{},n=t.writeSpeed,i=t.partitionsWriteLag,r=t.partitionsIdleTime,o=[{label:"Write speed",value:(0,ra.jsx)(Lj,{data:n})},{label:"Write lag",value:Sr(i||0)},{label:"Write idle time",value:Sr(r||0)}];return(0,ra.jsx)("div",{className:lz("wrapper"),children:o.map((function(e,t){return(0,ra.jsxs)("div",{className:lz("item"),children:[(0,ra.jsx)("div",{className:lz("label"),children:e.label}),(0,ra.jsx)("div",{className:lz("value"),children:e.value})]},t)}))})};!function(e){e.overview="Overview",e.topQueries="topQueries",e.topShards="topShards",e.nodes="Nodes",e.tablets="Tablets",e.storage="Storage",e.network="Network",e.describe="Describe",e.hotKeys="hotKeys",e.graph="graph",e.consumers="consumers",e.partitions="partitions"}(oz||(oz={}));var dz,hz,fz={id:oz.overview,title:"Info"},pz={id:oz.topQueries,title:"Top queries"},gz={id:oz.topShards,title:"Top shards"},vz={id:oz.nodes,title:"Nodes"},mz={id:oz.tablets,title:"Tablets"},_z={id:oz.storage,title:"Storage"},yz={id:oz.network,title:"Network"},bz={id:oz.describe,title:"Describe"},wz={id:oz.hotKeys,title:"Hot keys"},Cz={id:oz.graph,title:"Graph"},kz={id:oz.consumers,title:"Consumers"},Sz={id:oz.partitions,title:"Partitions"},xz=[fz,pz,gz,vz,mz,_z,yz,bz],Lz=[fz,gz,vz,Cz,mz,wz,bz],Ez=[fz,gz,vz,bz],Nz=[fz,kz,Sz,vz,bz],Dz=[fz,kz,Sz,vz,bz],Mz=(rz={},(0,ht.Z)(rz,Wa.EPathTypeInvalid,void 0),(0,ht.Z)(rz,Wa.EPathTypeSubDomain,xz),(0,ht.Z)(rz,Wa.EPathTypeExtSubDomain,xz),(0,ht.Z)(rz,Wa.EPathTypeColumnStore,xz),(0,ht.Z)(rz,Wa.EPathTypeTable,Lz),(0,ht.Z)(rz,Wa.EPathTypeColumnTable,Lz),(0,ht.Z)(rz,Wa.EPathTypeDir,Ez),(0,ht.Z)(rz,Wa.EPathTypeTableIndex,Ez),(0,ht.Z)(rz,Wa.EPathTypeCdcStream,Nz),(0,ht.Z)(rz,Wa.EPathTypePersQueueGroup,Dz),rz),Tz=function(e){return e&&Mz[e]||Ez},Oz="consumer",Iz="readSpeed",Az="readLags",Rz=(dz={},(0,ht.Z)(dz,Oz,"Consumer"),(0,ht.Z)(dz,Iz,"Read speed"),(0,ht.Z)(dz,Az,"Read lags, duration"),dz),Pz="writeLag",Zz="readLag",Fz="readIdleTime",jz=(hz={},(0,ht.Z)(hz,Pz,"write lag"),(0,ht.Z)(hz,Zz,"read lag"),(0,ht.Z)(hz,Fz,"read idle time"),hz),Hz=JSON.parse('{"noConsumersMessage.topic":"This topic has no consumers","noConsumersMessage.stream":"This changefeed has no consumers","lagsPopover.readLags":"Read lags statistics, maximum among all consumer partitions (time format dd hh:mm:ss)","table.emptyDataMessage":"No consumers match the current search","controls.search":"Consumer"}'),Bz=JSON.parse('{"noConsumersMessage.topic":"\u0423 \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u043f\u0438\u043a\u0430 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439","noConsumersMessage.stream":"\u0423 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0440\u0438\u043c\u0430 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439","lagsPopover.readLags":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043b\u0430\u0433\u043e\u0432 \u0447\u0442\u0435\u043d\u0438\u044f, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f (\u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u0434 \u0447\u0447:\u043c\u043c:\u0441\u0441)","table.emptyDataMessage":"\u041f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0438\u0441\u043a\u0443 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439","controls.search":"Consumer"}'),zz="ydb-diagnostics-consumers";gr.registerKeyset(ar.En,zz,Hz),gr.registerKeyset(ar.Ru,zz,Bz);var Wz,Vz,Yz,Uz=gr.keyset(zz),Kz=(0,ct.Z)("ydb-diagnostics-consumers-columns-header"),qz=function(){return(0,ra.jsx)(Ej,{className:Kz("lags"),text:Rz[Az],popoverContent:(0,ra.jsx)(Bj,{text:Uz("lagsPopover.readLags"),type:"read"})})},Gz=(0,ct.Z)("ydb-diagnostics-consumers-columns"),$z=[{name:Oz,header:Rz[Oz],align:wn.LEFT,render:function(e){var t,n=e.row;if(!n.name)return"\u2013";var i=vt().parse(location.search,{ignoreQueryPrefix:!0});return(0,ra.jsx)(jf,{to:ld(cd.tenant,void 0,pt(pt({},i),{},(t={},(0,ht.Z)(t,hh.generalTab,oz.partitions),(0,ht.Z)(t,"selectedConsumer",n.name),t))),children:n.name})}},{name:Iz,header:Rz[Iz],align:wn.RIGHT,sortAccessor:function(e){return e.readSpeed.perMinute},render:function(e){var t=e.row;return(0,ra.jsx)(Lj,{data:t.readSpeed})}},{name:Az,header:(0,ra.jsx)(qz,{}),className:Gz("lags-header"),sub:[{name:Pz,header:jz[Pz],align:wn.RIGHT,render:function(e){var t=e.row;return Sr(t.writeLag)}},{name:Zz,header:jz[Zz],align:wn.RIGHT,render:function(e){var t=e.row;return Sr(t.readLag)}},{name:Fz,header:jz[Fz],align:wn.RIGHT,render:function(e){var t=e.row;return Sr(t.readIdleTime)}}]}],Qz=(0,ct.Z)("ydb-diagnostics-consumers"),Xz=function(t){var n=t.path,i=t.type,r=Ms(i),o=Q(),a=(0,e.useState)(""),s=(0,Ti.Z)(a,2),u=s[0],l=s[1],c=jh((function(e){return e.schema})).autorefresh,d=jh((function(e){return e.topic})),h=d.loading,f=d.wasLoaded,p=d.error,g=jh((function(e){return Pu(e)})),v=jh((function(e){return Ru(e)})),m=(0,e.useCallback)((function(e){e||o(Iu),o(Au(n))}),[o,n]);Fh(m,[m],c);var _=(0,e.useMemo)((function(){if(!g)return[];var e=new RegExp((0,ur.escapeRegExp)(u),"i");return g.filter((function(t){return e.test(String(t.name))}))}),[g,u]);return h&&!f?(0,ra.jsx)(Th,{size:"m"}):p?(0,ra.jsx)(yj,{error:p}):g&&g.length?(0,ra.jsxs)("div",{className:Qz(),children:[(0,ra.jsxs)("div",{className:Qz("controls"),children:[(0,ra.jsx)(Oh,{onChange:function(e){l(e)},placeholder:Uz("controls.search"),className:Qz("search"),value:u}),v&&(0,ra.jsx)(cz,{data:v})]}),(0,ra.jsx)("div",{className:Qz("table-wrapper"),children:(0,ra.jsx)("div",{className:Qz("table-content"),children:(0,ra.jsx)(wn,{theme:"yandex-cloud",data:_,columns:$z,settings:Gn,emptyDataMessage:Uz("table.emptyDataMessage")})})})]}):(0,ra.jsx)("div",{children:Uz("noConsumersMessage.".concat(r?"stream":"topic"))})},Jz=n(27689),eW={PARTITION_ID:"partitionId",STORE_SIZE:"storeSize",WRITE_SPEED:"writeSpeed",READ_SPEED:"readSpeed",WRITE_LAGS:"writeLags",READ_LAGS:"readLags",UNCOMMITED_MESSAGES:"uncommitedMessages",UNREAD_MESSAGES:"unreadMessages",START_OFFSET:"startOffset",END_OFFSET:"endOffset",COMMITED_OFFSET:"commitedOffset",READ_SESSION_ID:"readSessionId",READER_NAME:"readerName",PARTITION_HOST:"partitionHost",CONNECTION_HOST:"connectionHost"},tW=(Wz={},(0,ht.Z)(Wz,eW.PARTITION_ID,"Partition ID"),(0,ht.Z)(Wz,eW.STORE_SIZE,"Store size"),(0,ht.Z)(Wz,eW.WRITE_SPEED,"Write speed"),(0,ht.Z)(Wz,eW.READ_SPEED,"Read speed"),(0,ht.Z)(Wz,eW.WRITE_LAGS,"Write lags, duration"),(0,ht.Z)(Wz,eW.READ_LAGS,"Read lags, duration"),(0,ht.Z)(Wz,eW.UNCOMMITED_MESSAGES,"Uncommited messages"),(0,ht.Z)(Wz,eW.UNREAD_MESSAGES,"Unread messages"),(0,ht.Z)(Wz,eW.START_OFFSET,"Start offset"),(0,ht.Z)(Wz,eW.END_OFFSET,"End offset"),(0,ht.Z)(Wz,eW.COMMITED_OFFSET,"Commited offset"),(0,ht.Z)(Wz,eW.READ_SESSION_ID,"Read session ID"),(0,ht.Z)(Wz,eW.READER_NAME,"Reader name"),(0,ht.Z)(Wz,eW.PARTITION_HOST,"Partition host"),(0,ht.Z)(Wz,eW.CONNECTION_HOST,"Connection host"),Wz),nW="partitionWriteLag",iW="partitionWriteIdleTime",rW=(Vz={},(0,ht.Z)(Vz,nW,"write lag"),(0,ht.Z)(Vz,iW,"write idle time"),Vz),oW="consumerWriteLag",aW="consumerReadLag",sW="consumerReadIdleTime",uW=(Yz={},(0,ht.Z)(Yz,oW,"write lag"),(0,ht.Z)(Yz,aW,"read lag"),(0,ht.Z)(Yz,sW,"read idle time"),Yz),lW=Object.values(eW),cW=JSON.parse('{"lagsPopover.writeLags":"Write lags statistics (time format dd hh:mm:ss)","lagsPopover.readLags":"Read lags statistics (time format dd hh:mm:ss)","headers.unread":"End offset - Last read offset","headers.uncommited":"End offset - Committed offset","controls.consumerSelector":"Consumer:","controls.consumerSelector.placeholder":"Consumer","controls.partitionSearch":"Partition ID","controls.generalSearch":"Host, Host ID, Reader, Read Session ID","table.emptyDataMessage":"No partitions match the current search","noConsumersMessage.topic":"This topic has no consumers","noConsumersMessage.stream":"This changefeed has no consumers"}'),dW=JSON.parse('{"lagsPopover.writeLags":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043b\u0430\u0433\u043e\u0432 \u0437\u0430\u043f\u0438\u0441\u0438 (\u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u0434 \u0447\u0447:\u043c\u043c:\u0441\u0441)","lagsPopover.readLags":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043b\u0430\u0433\u043e\u0432 \u0447\u0442\u0435\u043d\u0438\u044f (\u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u0434 \u0447\u0447:\u043c\u043c:\u0441\u0441)","headers.unread":"End offset - Last read offset","headers.uncommited":"End offset - Committed offset","controls.consumerSelector":"\u0427\u0438\u0442\u0430\u0442\u0435\u043b\u044c:","controls.consumerSelector.placeholder":"\u0427\u0438\u0442\u0430\u0442\u0435\u043b\u044c","controls.partitionSearch":"Partition ID","controls.generalSearch":"Host, Host ID, Reader, Read Session ID","table.emptyDataMessage":"\u041f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0438\u0441\u043a\u0443 \u043d\u0435\u0442 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439","noConsumersMessage.topic":"\u0423 \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u043f\u0438\u043a\u0430 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439","noConsumersMessage.stream":"\u0423 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0440\u0438\u043c\u0430 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439"}'),hW="ydb-diagnostics-partitions";gr.registerKeyset(ar.En,hW,cW),gr.registerKeyset(ar.Ru,hW,dW);var fW=gr.keyset(hW),pW=(0,ct.Z)("ydb-diagnostics-partitions-columns-header"),gW=function(e){var t=e.title;return(0,ra.jsx)("div",{className:pW("multiline"),children:t})},vW=function(){return(0,ra.jsx)("div",{className:pW("read-session"),children:tW[eW.READ_SESSION_ID]})},mW=function(){return(0,ra.jsx)(Ej,{className:pW("lags"),text:tW[eW.READ_LAGS],popoverContent:(0,ra.jsx)(Bj,{text:fW("lagsPopover.readLags"),type:"read"})})},_W=function(){return(0,ra.jsx)(Ej,{className:pW("lags"),text:tW[eW.WRITE_LAGS],popoverContent:(0,ra.jsx)(Bj,{text:fW("lagsPopover.writeLags"),type:"write"})})},yW=function(){return(0,ra.jsx)(Ej,{className:pW("messages"),text:tW[eW.UNREAD_MESSAGES],popoverContent:(0,ra.jsx)("div",{className:pW("messages-popover-content"),children:fW("headers.unread")})})},bW=function(){return(0,ra.jsx)(Ej,{className:pW("messages"),text:tW[eW.UNCOMMITED_MESSAGES],popoverContent:(0,ra.jsx)("div",{className:pW("messages-popover-content"),children:fW("headers.uncommited")})})},wW=(0,ct.Z)("ydb-diagnostics-partitions-columns"),CW=[{name:eW.PARTITION_ID,header:(0,ra.jsx)(gW,{title:tW[eW.PARTITION_ID]}),sortAccessor:function(e){return yi(e.partitionId)&&Number(e.partitionId)},align:wn.LEFT,render:function(e){return e.row.partitionId}},{name:eW.STORE_SIZE,header:(0,ra.jsx)(gW,{title:tW[eW.STORE_SIZE]}),align:wn.RIGHT,render:function(e){var t=e.row;return yr(t.storeSize)}},{name:eW.WRITE_SPEED,header:tW[eW.WRITE_SPEED],align:wn.LEFT,sortAccessor:function(e){return e.writeSpeed.perMinute},render:function(e){var t=e.row;return(0,ra.jsx)(Lj,{data:t.writeSpeed})}},{name:eW.READ_SPEED,header:tW[eW.READ_SPEED],align:wn.LEFT,sortAccessor:function(e){return e.readSpeed.perMinute},render:function(e){var t=e.row;return(0,ra.jsx)(Lj,{data:t.readSpeed})}},{name:eW.WRITE_LAGS,header:(0,ra.jsx)(mW,{}),className:wW("lags-header"),sub:[{name:nW,header:rW[nW],align:wn.RIGHT,render:function(e){var t=e.row;return Sr(t.partitionWriteLag)}},{name:iW,header:rW[iW],align:wn.RIGHT,render:function(e){var t=e.row;return Sr(t.partitionWriteIdleTime)}}]},{name:eW.READ_LAGS,header:(0,ra.jsx)(_W,{}),className:wW("lags-header"),sub:[{name:oW,header:uW[oW],align:wn.RIGHT,render:function(e){var t=e.row;return Sr(t.consumerWriteLag)}},{name:aW,header:uW[aW],align:wn.RIGHT,render:function(e){var t=e.row;return Sr(t.consumerReadLag)}},{name:sW,header:uW[sW],align:wn.RIGHT,render:function(e){var t=e.row;return Sr(t.consumerReadIdleTime)}}]},{name:eW.UNCOMMITED_MESSAGES,header:(0,ra.jsx)(bW,{}),align:wn.RIGHT,render:function(e){return e.row.uncommitedMessages}},{name:eW.UNREAD_MESSAGES,header:(0,ra.jsx)(yW,{}),align:wn.RIGHT,render:function(e){return e.row.unreadMessages}},{name:eW.START_OFFSET,header:(0,ra.jsx)(gW,{title:tW[eW.START_OFFSET]}),sortAccessor:function(e){return yi(e.startOffset)&&Number(e.startOffset)},align:wn.RIGHT,render:function(e){return e.row.startOffset}},{name:eW.END_OFFSET,header:(0,ra.jsx)(gW,{title:tW[eW.END_OFFSET]}),sortAccessor:function(e){return yi(e.endOffset)&&Number(e.endOffset)},align:wn.RIGHT,render:function(e){return e.row.endOffset}},{name:eW.COMMITED_OFFSET,header:(0,ra.jsx)(gW,{title:tW[eW.COMMITED_OFFSET]}),sortAccessor:function(e){return yi(e.commitedOffset)&&Number(e.commitedOffset)},align:wn.RIGHT,render:function(e){return e.row.commitedOffset}},{name:eW.READ_SESSION_ID,header:(0,ra.jsx)(vW,{}),align:wn.LEFT,render:function(e){var t=e.row;return t.readSessionId?(0,ra.jsx)(Hd,{name:t.readSessionId,showStatus:!1,hasClipboardButton:!0,className:wW("string-with-copy")}):"\u2013"}},{name:eW.READER_NAME,header:(0,ra.jsx)(gW,{title:tW[eW.READER_NAME]}),align:wn.LEFT,render:function(e){var t=e.row;return t.readerName?(0,ra.jsx)(Hd,{name:t.readerName,showStatus:!1,hasClipboardButton:!0,className:wW("string-with-copy")}):"\u2013"}},{name:eW.PARTITION_HOST,header:(0,ra.jsx)(gW,{title:tW[eW.PARTITION_HOST]}),align:wn.LEFT,render:function(e){var t=e.row;return t.partitionHost?(0,ra.jsx)(Hd,{name:t.partitionHost,path:$h(t.partitionHost),showStatus:!1,hasClipboardButton:!0,className:wW("string-with-copy")}):"\u2013"}},{name:eW.CONNECTION_HOST,header:(0,ra.jsx)(gW,{title:tW[eW.CONNECTION_HOST]}),align:wn.LEFT,render:function(e){var t=e.row;return t.connectionHost?(0,ra.jsx)(Hd,{name:t.connectionHost,path:$h(t.connectionNodeId),showStatus:!1,hasClipboardButton:!0,className:wW("string-with-copy")}):"\u2013"}}],kW=(0,ct.Z)("ydb-diagnostics-partitions"),SW=function(t){var n=t.path,i=t.type,r=t.nodes,o=t.consumers,a=Ms(i),s=Q(),u=(0,e.useState)(""),l=(0,Ti.Z)(u,2),c=l[0],d=l[1],h=(0,e.useState)(""),f=(0,Ti.Z)(h,2),p=f[0],g=f[1],v=(0,e.useState)(n),m=(0,Ti.Z)(v,2),_=m[0],y=m[1],b=jh((function(e){return e.schema})).autorefresh,w=jh((function(e){return e.consumer})),C=w.loading,k=w.wasLoaded,S=w.error,x=w.selectedConsumer,L=jh((function(e){return Vu(e)})),E=jh((function(e){return Ni(e,Xn)}));(0,e.useEffect)((function(){y(n)}),[s,n]);var N=(0,e.useCallback)((function(e){e||s({type:ju}),x&&o&&o.includes(x)&&s(function(e,t){return Wi({request:window.api.getConsumer({path:e,consumer:t}),actions:Fu})}(_,x))}),[s,x,_,o]);Fh(N,[N],b);var D=(0,e.useMemo)((function(){return o?o.map((function(e){return{value:e,content:e}})):void 0}),[o]);(0,e.useEffect)((function(){var e=!x||o&&!o.includes(x);D&&D.length&&e&&s(zu(D[0].value))}),[s,D,x,o]);var M=(0,e.useMemo)((function(){return E?JSON.parse(E):lW}),[E]),T=(0,e.useMemo)((function(){return Object.values(eW).map((function(e){return{title:tW[e],selected:Boolean(null===M||void 0===M?void 0:M.includes(e)),id:e,required:e===eW.PARTITION_ID}}))}),[M]),O=(0,e.useMemo)((function(){return CW.filter((function(e){return null===M||void 0===M?void 0:M.includes(e.name)}))}),[M]),I=(0,e.useMemo)((function(){return null===L||void 0===L?void 0:L.map((function(e){var t=e.partitionNodeId&&r?r[e.partitionNodeId]:void 0,n=e.connectionNodeId&&r?r[e.connectionNodeId]:void 0;return pt(pt({},e),{},{partitionHost:t,connectionHost:n})}))}),[L,r]),A=(0,e.useMemo)((function(){if(!I)return[];var e=new RegExp((0,ur.escapeRegExp)(p),"i"),t=new RegExp((0,ur.escapeRegExp)(c),"i");return I.filter((function(n){var i=n.partitionId,r=n.readerName,o=void 0===r?"":r,a=n.readSessionId,s=void 0===a?"":a,u=n.partitionNodeId,l=n.connectionNodeId,c=n.partitionHost,d=void 0===c?"":c,h=n.connectionHost,f=void 0===h?"":h,p=e.test(i),g=t.test(o)||t.test(s)||t.test(String(u))||t.test(String(l))||t.test(d)||t.test(f);return p&&g}))}),[p,c,I]);return S?(0,ra.jsx)(yj,{error:S}):D&&D.length?(0,ra.jsxs)("div",{className:kW(),children:[(0,ra.jsxs)("div",{className:kW("controls"),children:[(0,ra.jsx)(af.P,{className:kW("consumer-select"),placeholder:fW("controls.consumerSelector.placeholder"),label:fW("controls.consumerSelector"),options:D,value:[x||""],onUpdate:function(e){s(zu(e[0]))},filterable:o&&o.length>5}),(0,ra.jsx)(Oh,{onChange:function(e){g(e)},placeholder:fW("controls.partitionSearch"),className:kW("search",{partition:!0}),value:p}),(0,ra.jsx)(Oh,{onChange:function(e){d(e)},placeholder:fW("controls.generalSearch"),className:kW("search",{general:!0}),value:c}),(0,ra.jsx)(Jz.N,{popupWidth:"242px",items:T,showStatus:!0,onUpdate:function(e){var t=e.filter((function(e){return e.selected})).map((function(e){return e.id}));s(Ei(Xn,JSON.stringify(t)))},className:kW("table-settings")},"TableColumnSetup")]}),(0,ra.jsx)("div",{className:kW("table-wrapper"),children:(0,ra.jsx)("div",{className:kW("table-content"),children:C&&!k?(0,ra.jsx)(Ef,{className:kW("loader")}):(0,ra.jsx)(wn,{theme:"yandex-cloud",data:A,columns:O,settings:Gn,emptyDataMessage:fW("table.emptyDataMessage")})})})]}):(0,ra.jsx)("div",{children:fW("noConsumersMessage.".concat(a?"stream":"topic"))})},xW=function(t){var n=t.path,i=t.type,r=Q(),o=jh((function(e){return e.topic})),a=o.loading,s=o.wasLoaded,u=o.error,l=o.data,c=jh((function(e){return e.nodes})),d=c.loading,h=c.wasLoaded,f=c.error,p=c.data,g=(0,e.useMemo)((function(){var e;return null===l||void 0===l||null===(e=l.consumers)||void 0===e?void 0:e.map((function(e){return null===e||void 0===e?void 0:e.name})).filter((function(e){return void 0!==e}))}),[l]),v=(0,e.useMemo)((function(){var e={};return null===p||void 0===p||p.forEach((function(t){t.NodeId&&t.Host&&(e[t.NodeId]=t.Host)})),e}),[p]);return(0,e.useEffect)((function(){r(Iu()),r({type:Tu}),r({type:zr}),r(Au(n)),r(Yr({}))}),[r,n]),a&&!s||d&&!h?(0,ra.jsx)(Th,{}):u||f?(0,ra.jsx)(yj,{error:u||f}):(0,ra.jsx)(SW,{path:n,type:i,consumers:g,nodes:v})},LW=(0,ct.Z)("kv-tenant-diagnostics");var EW=function(t){var n=Q(),i=te((function(e){return e.schema})),r=i.currentSchemaPath,o=i.autorefresh,a=te((function(e){return e.tenant})),s=a.diagnosticsTab,u=void 0===s?oz.overview:s,l=a.wasLoaded,c=ut(),d=vt().parse(c.search,{ignoreQueryPrefix:!0}),h=d.name,f=Ds(t.type)?r:h,p=Ds(t.type)||r===h,g=(0,e.useMemo)((function(){return p?xz:Tz(t.type)}),[t.type,p]),v=function(e){n(function(e){return{type:to,data:e}}(e))},m=(0,e.useMemo)((function(){if(l){if(g.find((function(e){return e.id===u})))return u;var e=g[0].id;return v(e),e}}),[g,u,l]),_=function(e){n(e?{type:zs}:qs())},y=function(e){n(oo(e))};return l?(0,ra.jsxs)("div",{className:LW(),children:[(0,ra.jsx)("div",{className:LW("header-wrapper"),children:(0,ra.jsxs)("div",{className:LW("tabs"),children:[(0,ra.jsx)(Bp.m,{size:"l",items:g,activeTab:m,wrapTo:function(e,t){var n=e.id,i=ld(cd.tenant,void 0,pt(pt({},d),{},(0,ht.Z)({},hh.generalTab,n)));return(0,ra.jsx)(yd,{to:i,className:LW("tab"),children:t},n)},allowNotSelected:!0}),(0,ra.jsx)(ij.r,{checked:o,onUpdate:_,content:"Autorefresh"})]})}),(0,ra.jsx)("div",{className:LW("page-wrapper"),children:function(){var e=t.type,n=f;switch(u){case oz.overview:return(0,ra.jsx)(WH,{type:e,tenantName:n,additionalTenantInfo:t.additionalTenantInfo});case oz.topQueries:return(0,ra.jsx)(pj,{path:n,changeSchemaTab:y,type:e});case oz.topShards:return(0,ra.jsx)(dB,{tenantPath:n,type:e});case oz.nodes:return(0,ra.jsx)(of,{path:r,type:e,additionalNodesInfo:t.additionalNodesInfo});case oz.tablets:return(0,ra.jsx)(uz,{path:r});case oz.storage:return(0,ra.jsx)(Dp,{tenant:n,database:!0});case oz.network:return(0,ra.jsx)(bB,{path:n});case oz.describe:return(0,ra.jsx)(kB,{tenant:n,type:e});case oz.hotKeys:return(0,ra.jsx)(NB,{type:e});case oz.graph:return(0,ra.jsx)(KB,{path:r});case oz.consumers:return(0,ra.jsx)(Xz,{path:r,type:e});case oz.partitions:return(0,ra.jsx)(xW,{path:r,type:e});default:return(0,ra.jsx)("div",{children:"No data..."})}}()})]}):(0,ra.jsx)(Th,{size:"l"})},NW=(0,ct.Z)("object-general");var DW=function(e){var t=ut(),n=(0,rh.C)(),i=vt().parse(t.search,{ignoreQueryPrefix:!0}),r=i.name,o=i.general,a=function(){var t=e.type,i=e.additionalTenantInfo,a=e.additionalNodesInfo;return o===ch.query?(0,ra.jsx)(nj,{path:r,theme:n,type:t}):(0,ra.jsx)(EW,{type:t,additionalTenantInfo:i,additionalNodesInfo:a})};return r?(0,ra.jsx)("div",{className:NW(),children:a()}):null},MW=(0,ct.Z)("tenant-page"),TW={triggerExpand:!1,triggerCollapse:!1,collapsed:Boolean(localStorage.getItem(Un))};var OW=function(t){var n,i=(0,e.useReducer)(ov(Un),TW),r=(0,Ti.Z)(i,2),o=r[0],a=r[1],s=te((function(e){return e.schema})),u=s.currentSchemaPath,l=s.currentSchema,c=void 0===l?{}:l,d=te((function(e){var t,n;return(null===(t=e.schema.data[u])||void 0===t||null===(n=t.PathDescription)||void 0===n?void 0:n.Self)||{}})),h=d.PathType,f=d.PathSubType,p=(null===(n=c.PathDescription)||void 0===n?void 0:n.Self)||{},g=p.PathType,v=p.PathSubType,m=te((function(e){return e.tenant})).data,_=(void 0===m?{}:m).status,y=void 0===_?200:_,b=te((function(e){return e.schema})).error,w=(void 0===b?{}:b).status,C=void 0===w?200:w,k=Q(),S=ut(),x=vt().parse(S.search,{ignoreQueryPrefix:!0}).name;(0,e.useEffect)((function(){k(Us({path:x})),k(Wl({path:x}))}),[x,k]),(0,e.useEffect)((function(){k($s()),k(Us({path:u})),k(Wl({path:u}))}),[u,k]),(0,e.useEffect)((function(){k(qs())}),[u,x,k]),(0,e.useEffect)((function(){return x&&(k(ro({path:x})),k(jc([{text:ud.tenants.title,link:ld(cd.cluster,{activeTab:ud.tenants.id})},{text:x.startsWith("/")?x.slice(1):x,link:ld(cd.tenant,void 0,{name:x})}]))),function(){k(io())}}),[x,k]);var L=403===y||403===C;return(0,ra.jsx)("div",{className:MW(),children:L?(0,ra.jsx)(Dh,{}):(0,ra.jsxs)(ra.Fragment,{children:[(0,ra.jsx)(Wp,{}),(0,ra.jsx)("div",{className:MW("tab-content"),children:(0,ra.jsxs)(_g,{defaultSizePaneKey:Yn,defaultSizes:[25,75],triggerCollapse:o.triggerCollapse,triggerExpand:o.triggerExpand,minSize:[36,200],onSplitStartDragAdditional:function(){a(Bg.clear)},children:[(0,ra.jsx)(cv,{type:h||g,subType:f||v,onCollapseSummary:function(){a(Bg.triggerCollapse)},onExpandSummary:function(){a(Bg.triggerExpand)},isCollapsed:o.collapsed,additionalTenantInfo:t.additionalTenantInfo}),(0,ra.jsx)(DW,{type:h||g,additionalTenantInfo:t.additionalTenantInfo,additionalNodesInfo:t.additionalNodesInfo})]})})]})})},IW=(0,ct.Z)("full-node-viewer"),AW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e,t=this.props,n=t.node,i=t.className,r=null===(e=n.Endpoints)||void 0===e?void 0:e.map((function(e){return{label:e.Name,value:e.Address}})),o=[{label:"Version",value:n.Version},{label:"Uptime",value:Ir(n.StartTime)},{label:"DC",value:n.DataCenterDescription},{label:"Rack",value:n.Rack}],a=n.LoadAverage.map((function(e,t){return{label:On["".concat(t)],value:(0,ra.jsx)(Vh,{value:e,percents:!0,colorizeProgress:!0})}}));return(0,ra.jsx)("div",{className:"".concat(IW()," ").concat(i),children:n?(0,ra.jsxs)("div",{className:IW("common-info"),children:[(0,ra.jsxs)("div",{children:[(0,ra.jsx)("div",{className:IW("section-title"),children:"Pools"}),(0,ra.jsx)("div",{className:IW("section",{pools:!0}),children:n.PoolStats.map((function(e,t){return(0,ra.jsx)(ZH,{data:e},t)}))})]}),r&&r.length&&(0,ra.jsx)(aa,{title:"Endpoints",className:IW("section"),info:r}),(0,ra.jsx)(aa,{title:"Common info",className:IW("section"),info:o}),(0,ra.jsx)(aa,{title:"Load average",className:IW("section",{average:!0}),info:a})]}):(0,ra.jsx)("div",{className:"error",children:"no data"})})}}]),n}(e.Component);AW.defaultProps={className:""};var RW=AW;var PW=function(e){var t=e.node,n=e.className;return(0,ra.jsx)(RW,{node:t,backend:Qc,className:n})},ZW=(0,ct.Z)("kv-node-structure");function FW(t){var n=t.AllocatedSize,i=t.DiskSpace,r=t.FrontQueues,o=t.Guid,a=t.Replicated,s=t.VDiskState,u=t.VDiskId,l=t.VDiskSlotId,c=t.Kind,d=t.SatisfactionRank,h=t.AvailableSize,f=t.HasUnreadableBlobs,p=t.IncarnationGuid,g=t.InstanceGuid,v=t.StoragePoolName,m=t.ReadThroughput,_=t.WriteThroughput,y=[];return KW(l)&&y.push({label:"VDisk Slot Id",value:l}),KW(o)&&y.push({label:"GUID",value:o}),KW(c)&&y.push({label:"Kind",value:c}),KW(s)&&y.push({label:"VDisk State",value:s}),KW(i)&&y.push({label:"Disk Space",value:(0,ra.jsx)(Hd,{status:i})}),KW(null===d||void 0===d?void 0:d.FreshRank.Flag)&&y.push({label:"Fresh Rank Satisfaction",value:(0,ra.jsx)(Hd,{status:null===d||void 0===d?void 0:d.FreshRank.Flag})}),KW(null===d||void 0===d?void 0:d.LevelRank.Flag)&&y.push({label:"Level Rank Satisfaction",value:(0,ra.jsx)(Hd,{status:null===d||void 0===d?void 0:d.LevelRank.Flag})}),y.push({label:"Replicated",value:a?"Yes":"No"}),y.push({label:"Allocated Size",value:mi(n)}),y.push({label:"Available Size",value:mi(h)}),Number(n)>=0&&Number(h)>=0&&y.push({label:"Size",value:(0,ra.jsx)(Vh,{value:n,capacity:Number(n)+Number(h),formatValues:Er,colorizeProgress:!0})}),y.push({label:"Has Unreadable Blobs",value:f?"Yes":"No"}),KW(p)&&y.push({label:"Incarnation GUID",value:p}),KW(g)&&y.push({label:"Instance GUID",value:g}),KW(r)&&y.push({label:"Front Queues",value:(0,ra.jsx)(Hd,{status:r})}),KW(v)&&y.push({label:"Storage Pool Name",value:v}),y.push({label:"Read Throughput",value:vi(m)}),y.push({label:"Write Throughput",value:vi(_)}),(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsxs)("div",{className:ZW("row"),children:[(0,ra.jsx)("span",{className:ZW("title"),children:"VDisk "}),(0,ra.jsx)(Hd,{status:"OK"===s?"green":"red",name:Cr(u)})]}),(0,ra.jsx)("div",{className:ZW("column"),children:(0,ra.jsx)(aa,{className:ZW("section"),info:y})})]})}var jW=(0,ct.Z)("kv-node-structure");function HW(e){var t=e.label,n=e.value,i=e.className;return(0,ra.jsxs)("span",{className:jW("pdisk-title-item",i),children:[t&&(0,ra.jsxs)("span",{className:jW("pdisk-title-item-label"),children:[t,":"]}),(0,ra.jsx)("span",{className:jW("pdisk-title-item-value"),children:n})]})}var BW,zW=(0,ct.Z)("kv-node-structure");!function(e){e.slotId="VDiskSlotId",e.VDiskState="VDiskState",e.Size="Size",e.Info="Info"}(BW||(BW={}));var WW={VDiskSlotId:"Slot id",VDiskState:"Status",Size:"Size",Info:""};function VW(e){var t=e.pDiskId,n=e.selectedVdiskId,i=e.nodeHref;return[{name:BW.slotId,header:WW[BW.slotId],width:100,render:function(e){var r=e.value,o=e.row,a="";return i&&void 0!==r&&(a+=i+"actors/vdisks/vdisk"+_i(t)+"_"+_i(r)),(0,ra.jsxs)("div",{className:zW("vdisk-id",{selected:o.id===n}),children:[(0,ra.jsx)("span",{children:r}),a&&(0,ra.jsx)(dd.z,{size:"s",className:zW("external-button",{hidden:!0}),href:a,target:"_blank",children:(0,ra.jsx)(fh,{name:"external"})})]})},align:wn.LEFT},{name:BW.VDiskState,header:WW[BW.VDiskState],width:70,render:function(e){var t=e.value;return(0,ra.jsx)(Hd,{status:"OK"===t?"green":"red"})},sortAccessor:function(e){return"OK"===e[BW.VDiskState]?1:0},align:wn.CENTER},{name:BW.Size,header:WW[BW.Size],width:100,render:function(e){var t=e.row;return(0,ra.jsx)(Vh,{value:t.AllocatedSize,capacity:Number(t.AllocatedSize)+Number(t.AvailableSize),formatValues:Er,colorizeProgress:!0})},sortAccessor:function(e){return Number(e.AllocatedSize)},align:wn.CENTER},{name:BW.Info,header:WW[BW.Info],width:70,render:function(e){var t=e.row;return(0,ra.jsx)(Hh.J,{placement:["right"],content:(0,ra.jsx)(FW,pt({},t)),contentClassName:zW("vdisk-details"),children:(0,ra.jsx)(dd.z,{view:"flat-secondary",className:zW("vdisk-details-button",{selected:t.id===n}),children:(0,ra.jsx)(fh,{name:"information",viewBox:"0 0 512 512",height:16,width:16})})})},sortable:!1}]}function YW(t){var n,i,r=(0,e.useState)(null!==(n=t.unfolded)&&void 0!==n&&n),o=(0,Ti.Z)(r,2),a=o[0],s=o[1],u=null!==(i=t.data)&&void 0!==i?i:{},l=function(){var e=t.selectedVdiskId,n=t.data,i=t.nodeHref,r=n.vDisks;return(0,ra.jsx)(wn,{theme:"yandex-cloud",data:r,columns:VW({nodeHref:i,pDiskId:n.PDiskId,selectedVdiskId:e}),settings:pt(pt({},Gn),{},{dynamicRender:!1}),rowClassName:function(t){return t.id===e?zW("selected-vdisk"):""}})};return(0,ra.jsxs)("div",{className:zW("pdisk"),id:t.id,children:[(0,ra.jsxs)("div",{className:zW("pdisk-header"),children:[(0,ra.jsxs)("div",{className:zW("pdisk-title-wrapper"),children:[(0,ra.jsx)(Hd,{status:u.Device}),(0,ra.jsx)(HW,{label:"PDiskID",value:u.PDiskId,className:zW("pdisk-title-id")}),(0,ra.jsx)(HW,{value:ho(u),className:zW("pdisk-title-type")}),(0,ra.jsx)(Vh,{value:u.TotalSize-u.AvailableSize,capacity:u.TotalSize,formatValues:Er,colorizeProgress:!0,className:zW("pdisk-title-size")}),(0,ra.jsx)(HW,{label:"VDisks",value:u.vDisks.length})]}),(0,ra.jsx)(dd.z,{onClick:a?function(){s(!1)}:function(){s(!0)},view:"flat-secondary",children:(0,ra.jsx)(Wv.F,{direction:a?"top":"bottom"})})]}),a&&function(){if(Zt().isEmpty(u))return(0,ra.jsx)("div",{children:"No information about PDisk"});var e=t.nodeHref,n=u.TotalSize,i=u.AvailableSize,r=u.Device,o=u.Guid,a=u.PDiskId,s=u.Path,c=u.Realtime,d=u.State,h=u.Category,f=u.SerialNumber,p="";e&&(p+=e+"actors/pdisks/pdisk"+_i(a));var g=[{label:"PDisk Id",value:(0,ra.jsxs)("div",{className:zW("pdisk-id"),children:[a,p&&(0,ra.jsx)(dd.z,{size:"s",className:zW("external-button"),href:p,target:"_blank",view:"flat-secondary",children:(0,ra.jsx)(fh,{name:"external"})})]})}];return KW(s)&&g.push({label:"Path",value:s}),KW(o)&&g.push({label:"GUID",value:o}),KW(h)&&(g.push({label:"Category",value:h}),g.push({label:"Type",value:ho(u)})),g.push({label:"Allocated Size",value:mi(n-i)}),g.push({label:"Available Size",value:mi(i)}),Number(n)>=0&&Number(i)>=0&&g.push({label:"Size",value:(0,ra.jsx)(Vh,{value:n-i,capacity:n,formatValues:Er,colorizeProgress:!0,className:zW("size")})}),KW(d)&&g.push({label:"State",value:d}),KW(r)&&g.push({label:"Device",value:(0,ra.jsx)(Hd,{status:r})}),KW(c)&&g.push({label:"Realtime",value:(0,ra.jsx)(Hd,{status:c})}),KW(f)&&g.push({label:"SerialNumber",value:f}),(0,ra.jsxs)("div",{children:[(0,ra.jsx)(aa,{className:zW("pdisk-details"),info:g}),(0,ra.jsxs)("div",{className:zW("vdisks-container"),children:[(0,ra.jsx)("div",{className:zW("vdisks-header"),children:"VDisks"}),l()]})]})}()]})}var UW=(0,ct.Z)("kv-node-structure");function KW(e){return null!==e&&void 0!==e}function qW(e){var t=e.type,n=e.id;return"".concat(t,"-").concat(n)}var GW=new lh;var $W=function(t){var n=Q(),i=te(Wo),r=te((function(e){return e.node.loadingStructure})),o=te((function(e){return e.node.wasLoadedStructure})),a=te((function(e){var t,n,i;return null===(t=e.node)||void 0===t||null===(n=t.data)||void 0===n||null===(i=n.SystemStateInfo)||void 0===i?void 0:i[0]})),s=(0,e.useMemo)((function(){var e;return null!==(e=t.additionalNodesInfo)&&void 0!==e&&e.getNodeRef?t.additionalNodesInfo.getNodeRef(a):void 0}),[a,t.additionalNodesInfo]),u=It.parse(window.location.href,!0).query,l=u.pdiskId,c=u.vdiskId,d=(0,e.useRef)(null),h=d.current,f=(0,e.useRef)(!1),p=(0,e.useRef)(!1);return(0,e.useEffect)((function(){return function(){h&&h.scrollTo({behavior:"smooth",top:0})}}),[]),(0,e.useEffect)((function(){return n(zo(t.nodeId)),GW.start(),GW.fetch((function(){return n(zo(t.nodeId))})),function(){p.current=!1,f.current=!1,GW.stop()}}),[t.nodeId,n]),(0,e.useEffect)((function(){!Zt().isEmpty(i)&&h&&(f.current=!0)}),[i]),(0,e.useEffect)((function(){if(f.current&&!p.current&&h){var e=document.getElementById(qW({type:"pdisk",id:l})),t=0;if(c){var n,r=null===(n=i[l])||void 0===n?void 0:n.vDisks,o=null===r||void 0===r?void 0:r.find((function(e){return e.id===c})),a=o?document.querySelector(".data-table"):void 0,s=null===o||void 0===o?void 0:o.order;a&&(t+=a.offsetTop+40*s)}e&&(h.scrollTo({behavior:"smooth",top:t||e.offsetTop}),p.current=!0)}}),[i,l,c]),(0,ra.jsx)("div",{className:UW(),ref:d,children:(0,ra.jsx)("div",{className:t.className,children:r&&!o?(0,ra.jsx)(Th,{size:"m"}):function(){var e=Object.keys(i);return e.length>0?e.map((function(e){return(0,ra.jsx)(YW,{data:i[e],id:qW({type:"pdisk",id:e}),unfolded:l===e,selectedVdiskId:c,nodeHref:s},e)})):"There is no information about node structure."}()})})},QW=(0,ct.Z)("basic-node-viewer"),XW=function(e){var t=e.node,n=e.additionalNodesInfo,i=e.className,r=null!==n&&void 0!==n&&n.getNodeRef?n.getNodeRef(t)+"internal":void 0;return(0,ra.jsx)("div",{className:QW(null,i),children:t?(0,ra.jsxs)(ra.Fragment,{children:[(0,ra.jsx)("div",{className:QW("title"),children:"Node"}),(0,ra.jsx)(Hd,{status:t.SystemState,name:t.Host}),r&&(0,ra.jsx)("a",{rel:"noopener noreferrer",className:QW("link",{external:!0}),href:r,target:"_blank",children:(0,ra.jsx)(fh,{name:"external"})}),(0,ra.jsxs)("div",{className:QW("id"),children:[(0,ra.jsx)("label",{className:QW("label"),children:"NodeID"}),(0,ra.jsx)("label",{children:t.NodeId})]}),(0,ra.jsx)(Ip,{tags:[t.DataCenter]}),(0,ra.jsx)(Ip,{tags:t.Roles,tagsType:"blue"})]}):(0,ra.jsx)("div",{className:"error",children:"no data"})})},JW=(0,ct.Z)("node"),eV="Storage",tV={text:ud.nodes.title,link:ld(cd.cluster,{activeTab:ud.nodes.id})},nV=new lh;var iV=function(t){var n,i=Q(),r=te((function(e){return e.node.wasLoaded})),o=te((function(e){return e.node.loading})),a=te((function(e){return e.node.error})),s=te((function(e){var t,n,i;return null===(t=e.node)||void 0===t||null===(n=t.data)||void 0===n||null===(i=n.SystemStateInfo)||void 0===i?void 0:i[0]})),u=null===s||void 0===s?void 0:s.Host,l=(null!==(n=lt(cd.node))&&void 0!==n?n:Object.create(null)).params,c=l.id,d=l.activeTab,h=e.useMemo((function(){var e=Zt().find(null===s||void 0===s?void 0:s.Roles,(function(e){return e===eV})),t=d;return e||d!==Yh||(t=Kh),{activeTabVerified:t,nodeTabs:(e?Gh:Gh.filter((function(e){return e.id!==Yh}))).map((function(e){return pt(pt({},e),{},{title:e.name})}))}}),[d,s]),f=h.activeTabVerified,p=h.nodeTabs;return e.useEffect((function(){var e=function(){return i(Bo(c))};return e(),nV.start(),nV.fetch((function(){return e()})),i(jc([tV])),function(){nV.stop(),i({type:Ho})}}),[c]),e.useEffect((function(){i(jc([tV,{text:u}]))}),[u]),o&&!r?(0,ra.jsx)(Th,{size:"l"}):a?(0,ra.jsx)("div",{children:a.statusText}):s?(0,ra.jsxs)("div",{className:JW(null,t.className),children:[(0,ra.jsx)(XW,{node:s,additionalNodesInfo:t.additionalNodesInfo,className:JW("header")}),(0,ra.jsx)("div",{className:JW("tabs"),children:(0,ra.jsx)(Bp.m,{size:"l",items:p,activeTab:f,wrapTo:function(e,t){var n=e.id;return(0,ra.jsx)(yd,{to:ld(cd.node,{id:c,activeTab:n}),className:JW("tab"),children:t},n)},allowNotSelected:!0})}),(0,ra.jsx)("div",{className:JW("content"),children:function(){var e=t.additionalNodesInfo;switch(d){case Yh:return(0,ra.jsx)("div",{className:JW("storage"),children:(0,ra.jsx)(Dp,{nodeId:c})});case Uh:return(0,ra.jsx)(uz,{nodeId:c,className:JW("node-page-wrapper")});case Kh:return(0,ra.jsx)(PW,{node:s,className:JW("overview-wrapper")});case qh:return(0,ra.jsx)($W,{className:JW("node-page-wrapper"),nodeId:c,additionalNodesInfo:e});default:return!1}}()})]}):(0,ra.jsx)("div",{className:"error",children:"no node data"})},rV=(0,ct.Z)("pdisk"),oV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).renderContent=function(){var t=e.props.pdisk,n=t.TotalSize,i=t.AvailableSize,r=t.ChangeTime,o=t.Device,a=t.Guid,s=t.NodeId,u=t.PDiskId,l=t.Path,c=t.Realtime,d=t.State,h=[{label:"Device",value:(0,ra.jsx)(Hd,{status:o})},{label:"Realtime",value:(0,ra.jsx)(Hd,{status:c})},{label:"State",value:d},{label:"Size",value:(0,ra.jsx)(Vh,{value:n-i||0,capacity:n||0,formatValues:Lr,colorizeProgress:!0,className:rV("size")})},{label:"ChangeTime",value:Ir(r)},{label:"Path",value:l},{label:"Guid",value:a},{label:"NodeId",value:(0,ra.jsx)(yd,{className:rV("link"),to:$h(s),children:s})}];return(0,ra.jsxs)("div",{className:rV(),children:[(0,ra.jsxs)("div",{className:rV("row"),children:[(0,ra.jsx)("span",{className:rV("title"),children:"PDisk "}),(0,ra.jsx)(Hd,{status:o,name:u})]}),(0,ra.jsx)("div",{className:rV("column"),children:(0,ra.jsx)(aa,{className:rV("section"),info:h})})]})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this,t=vt().parse(this.props.location.search,{ignoreQueryPrefix:!0}).node_id;this.props.getPdiskInfo(t),this.reloadDescriptor=setInterval((function(){return e.props.getPdiskInfo(t)}),1e4)}},{key:"componentWillUnmount",value:function(){this.props.clearStore(),clearInterval(this.reloadDescriptor)}},{key:"render",value:function(){var e=this.props,t=e.loading,i=e.wasLoaded,r=e.error;return t&&!i?n.renderLoader():r?(0,ra.jsx)("div",{children:r.statusText}):this.renderContent()}}],[{key:"renderLoader",value:function(){return(0,ra.jsx)("div",{className:"loader",children:(0,ra.jsx)(fd.a,{size:"l"})})}}]),n}(e.Component);oV.defaultProps={className:""};var aV=U((function(e,t){var n,i=e.pdisk,r=i.data,o=i.wasLoaded,a=i.loading,s=i.error,u=t.match.params.id;return r&&(n=r.PDiskStateInfo.filter((function(e){return e.PDiskId===Number(u)}))[0]),{pdisk:n,wasLoaded:o,loading:a,error:s}}),{getPdiskInfo:function(e,t){return Wi({request:window.api.getPdiskInfo(e,t),actions:Yo})},clearStore:function(){return{type:"CLEAR_STORE"}}})(oV),sV=n(95227),uV=(0,ct.Z)("kv-breadcrumbs"),lV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e=this.props.items;return(0,ra.jsx)(sV.Oo,{items:e,firstDisplayedItemsCount:1,className:uV()})}}]),n}(e.Component);lV.defaultProps={items:[]};var cV=lV,dV=(0,ct.Z)("full-group-viewer"),hV=pt(pt({},Gn),{},{stickyHead:wn.FIXED}),fV=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;(0,i.Z)(this,s);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(t=n.call.apply(n,[this].concat(o))).renderContent=function(){var n=t.props.group,i=n.VDisks,r=[{name:"VDiskId",header:"VDisk",render:function(e){var t=e.value,n=e.row;return(0,ra.jsx)(Hd,{status:n.Overall,name:Cr(t),path:ld(cd.vdisk,null,{vdiskId:Cr(t)})})}},{name:"pdisk",header:"PDisk",render:function(e){var t=e.row;return t.PDisk?(0,ra.jsx)(Hd,{path:ld(cd.pdisk,{id:t.PDisk.PDiskId},{node_id:t.PDisk.NodeId}),status:t.PDisk.Overall,name:"".concat(t.NodeId,"-").concat(t.PDisk.PDiskId)}):(0,ra.jsx)("div",{className:"error",children:"\u2014"})}},{name:"space",header:"Space",width:"150px",render:function(e){var t=e.row;return t.PDisk?(0,ra.jsx)(Vh,{capacity:t.PDisk.TotalSize,value:t.PDisk.TotalSize-t.PDisk.AvailableSize,formatValues:Lr}):(0,ra.jsx)("div",{className:"error",children:"\u2014"})}},{name:"category",header:"Category",render:function(e){var t=e.row;return t.PDisk?In[t.PDisk.Category]:(0,ra.jsx)("div",{className:"error",children:"\u2014"})},align:wn.RIGHT},{name:"path",header:"Path",render:function(e){var t=e.row;return t.PDisk?t.PDisk.Path:(0,ra.jsx)("div",{className:"error",children:"\u2014"})}},{name:"guid",header:"Guid",render:function(e){var t=e.row;return t.PDisk?t.PDisk.Guid:(0,ra.jsx)("div",{className:"error",children:"\u2014"})},align:wn.RIGHT}],o=[{label:"Generation",value:n.GroupGeneration},{label:"Latency",value:(0,ra.jsx)(Hd,{status:n.Latency})},{label:"Erasure",value:n.ErasureSpecies}];return(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(cV,{items:[{text:"Database"},{text:"Storage Pool"},{text:"BS Group"}]}),(0,ra.jsx)(aa,{className:dV("section"),info:o,title:"Info"}),(0,ra.jsx)(wn,{cls:dV("disks"),columns:r,data:i,settings:hV})]})},t}return(0,r.Z)(s,[{key:"render",value:function(){var e=this.props,t=e.className,n=e.group;return(0,ra.jsx)("div",{className:"".concat(dV()," ").concat(t),children:n?this.renderContent():(0,ra.jsx)("div",{className:"error",children:"no group data"})})}}]),s}(e.Component);fV.defaultProps={className:""};var pV=fV,gV=(0,ct.Z)("group"),vV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).renderContent=function(){var t=e.props,n=t.className,i=t.group;return(0,ra.jsx)("div",{className:"".concat(gV()," ").concat(n),children:(0,ra.jsx)(pV,{group:i})})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this,t=this.props.match.params.id;this.props.getGroupInfo(t),this.reloadDescriptor=setInterval((function(){return e.props.getGroupInfo(t)}),1e4)}},{key:"componentWillUnmount",value:function(){this.props.clearStore(),clearInterval(this.reloadDescriptor)}},{key:"render",value:function(){var e=this.props,t=e.loading,i=e.wasLoaded,r=e.error,o=e.group;return t&&!i?n.renderLoader():r?(0,ra.jsx)("div",{children:r.statusText}):o?this.renderContent():(0,ra.jsx)("div",{className:"error",children:"no data"})}}],[{key:"renderLoader",value:function(){return(0,ra.jsx)("div",{className:"loader",children:(0,ra.jsx)(fd.a,{size:"l"})})}}]),n}(e.Component);vV.defaultProps={className:""};var mV=U((function(e){var t,n=e.group,i=n.data,r=n.wasLoaded,o=n.loading,a=n.error;return i&&(t=i.StoragePools[0].Groups[0]),{group:t,wasLoaded:r,loading:o,error:a}}),{getGroupInfo:function(e){return Wi({request:window.api.getGroupInfo(e),actions:Qo})},clearStore:function(){return{type:"CLEAR_STORE"}}})(vV),_V=(0,ct.Z)("group-viewer"),yV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.group,n=e.className,i=t.GroupID,r=void 0===i?"no id":i,o=t.Overall,a=void 0===o?"gray":o,s=t.VDisks,u=t.ErasureSpecies,l=t.Latency,c=void 0===l?"gray":l,d=t.AcquiredIOPS,h=t.AcquiredSize,f=t.AcquiredThroughput,p=t.MaximumIOPS,g=t.MaximumSize,v=t.MaximumThroughput;return t&&Object.keys(t).length?(0,ra.jsxs)("div",{className:"".concat(_V()," ").concat(n),children:[(0,ra.jsx)("div",{className:_V("group"),children:(0,ra.jsx)(Hd,{name:r,status:a,path:ld(cd.group,{id:r}),className:_V("name")})}),(0,ra.jsx)("div",{className:_V("latency"),children:(0,ra.jsx)(Hd,{name:"Latency",status:c})}),(0,ra.jsxs)("div",{className:_V("label"),children:[s&&s.length||0," Vdisks"]}),(0,ra.jsx)("div",{className:_V("label"),children:u||"no ErasureSpecies info"}),(0,ra.jsx)("div",{className:_V("vdisks"),children:null===s||void 0===s?void 0:s.map((function(e){return(0,ra.jsx)("div",{className:_V("disk-overall"),children:(0,ra.jsx)(Hd,{status:e.Overall})},e.Guid)}))}),(0,ra.jsx)("div",{className:_V("progress"),children:(0,ra.jsx)(Vh,{value:h,capacity:g,colorizeProgress:!0,formatValues:Lr})}),(0,ra.jsx)("div",{className:_V("progress"),children:(0,ra.jsx)(Vh,{value:d,capacity:p,colorizeProgress:!0,formatValues:xr})}),(0,ra.jsx)("div",{className:_V("progress"),children:(0,ra.jsx)(Vh,{value:f,capacity:v,colorizeProgress:!0,formatValues:Nr})})]}):(0,ra.jsx)("div",{className:_V(),children:"No data"})}}]),n}(e.Component);yV.defaultProps={className:""};var bV=yV,wV=(0,ct.Z)("pdisk-viewer"),CV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.disk,n=e.className;return t?(0,ra.jsxs)("div",{className:"".concat(wV()," ").concat(n),children:[t&&(0,ra.jsx)("div",{className:wV("item"),children:(0,ra.jsx)(Hd,{status:t.Realtime,path:ld(cd.pdisk,{id:t.PDiskId},{node_id:t.NodeId}),label:"PDiskID",name:t.PDiskId})}),t&&(0,ra.jsx)("div",{className:wV("item"),children:(0,ra.jsx)(Hd,{status:"green",label:"NodeID",path:$h(t.NodeId),name:t.NodeId})}),t&&(0,ra.jsx)(Vh,{value:t.TotalSize-t.AvailableSize||0,capacity:t.TotalSize||0,formatValues:Lr,colorizeProgress:!0,className:wV("size")}),(0,ra.jsx)("div",{className:wV("item"),children:t&&(0,ra.jsx)("div",{className:wV("label"),children:t.Path||"no path"})})]}):(0,ra.jsx)("div",{className:"error",children:"no PDisk data"})}}]),n}(e.Component);CV.defaultProps={className:""};var kV=CV,SV=(0,ct.Z)("group-tree-viewer"),xV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e,t=this.props,n=t.group,i=t.collapsed,r=t.onClick,o=(0,ra.jsx)("div",{children:(0,ra.jsx)(bV,{group:n},n.GroupID)});return n&&Object.keys(n).length?(0,ra.jsx)("div",{className:SV(),children:(0,ra.jsx)(pr.TreeView,{name:o,collapsed:i,onClick:r,children:null===(e=n.VDisks)||void 0===e?void 0:e.map((function(e,t){return(0,ra.jsxs)("div",{className:SV("row"),children:[(0,ra.jsx)(Hd,{className:SV("disk"),status:e.Overall,name:Cr(e.VDiskId),label:"VDiskID",path:ld(cd.vdisk,null,{vdiskId:Cr(e.VDiskId)})}),(0,ra.jsx)(kV,{className:SV("disk"),disk:e.PDisk,backend:Qc},e.Guid)]},t)}))},n.GroupID)}):(0,ra.jsx)("div",{className:SV(),children:"No data"})}}]),n}(e.Component);xV.ITEM_HEIGHT_COLLAPSED=38,xV.GROUP_ITEM_HEIGHT=34,xV.makeGetHeight=function(e,t){return function(n){var i=e[n].VDisks,r=null===i||void 0===i?void 0:i.length,o=xV.ITEM_HEIGHT_COLLAPSED,a=xV.GROUP_ITEM_HEIGHT;return t.has(n)?o+r*a:o}};var LV=function(t){var n="withRouter("+(t.displayName||t.name)+")",i=function(n){var i=n.wrappedComponentRef,r=(0,g.Z)(n,["wrappedComponentRef"]);return e.createElement(Be.Consumer,null,(function(n){return n||ce(!1),e.createElement(t,(0,p.Z)({},r,n,{ref:i}))}))};return i.displayName=n,i.WrappedComponent=t,m()(i,t)}(xV),EV=(0,ct.Z)("pool"),NV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={extendedGroups:new Set},e.makeHandleGroupClick=function(t){return function(){var n=e.state.extendedGroups,i=new Set((0,zt.Z)(n));i.has(t)?i.delete(t):i.add(t),e.setState({extendedGroups:i})}},e.makeRenderGroups=function(t){return function(n,i){var r=t[n],o=e.state.extendedGroups;return(0,ra.jsx)(LV,{group:r,collapsed:!o.has(n),onClick:e.makeHandleGroupClick(n)},i)}},e.renderContent=function(){var t=e.props,i=t.pool,r=t.filter,o=t.changeFilter,a=e.state.extendedGroups;if(i&&i.StoragePools){var s=i.StoragePools[0],u=n.filterGroups(s.Groups,r);return(0,ra.jsxs)("div",{className:EV(),children:[(0,ra.jsx)(cV,{items:[{text:"Database"},{text:"Storage Pool"}]}),(0,ra.jsxs)("div",{className:EV("row"),children:[(0,ra.jsx)("span",{className:EV("title"),children:"Pool "}),(0,ra.jsx)(Hd,{status:s.Overall,name:s.Name})]}),(0,ra.jsxs)("div",{className:EV("controls"),children:[(0,ra.jsx)("div",{className:EV("title",{groups:!0}),children:"Groups"}),(0,ra.jsx)(ih,{value:r,onChange:o})]}),0===u.length?(0,ra.jsx)(uh,{name:"thumbsUp",width:"200"}):(0,ra.jsx)(GB(),{itemRenderer:e.makeRenderGroups(u),length:u.length,itemSizeGetter:LV.makeGetHeight(u,a),type:"variable"})]})}},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this,t=this.props.match.params.poolName;this.props.getPoolInfo(decodeURIComponent(t)),this.reloadDescriptor=setInterval((function(){return e.props.getPoolInfo(decodeURIComponent(t))}),Cn)}},{key:"componentWillUnmount",value:function(){clearInterval(this.reloadDescriptor)}},{key:"render",value:function(){var e=this.props,t=e.loading,i=e.wasLoaded,r=e.error;return t&&!i?n.renderLoader():r?(0,ra.jsx)("div",{children:r.statusText}):this.renderContent()}}],[{key:"renderLoader",value:function(){return(0,ra.jsx)("div",{className:"loader",children:(0,ra.jsx)(fd.a,{size:"l"})})}},{key:"filterGroups",value:function(e,t){return Zt().filter(e,(function(e){return t===Rn||e.Overall&&"Green"!==e.Overall}))}}]),n}(e.Component);NV.defaultProps={pool:{}};var DV=U((function(e){var t=e.pool;return{pool:t.data,wasLoaded:t.wasLoaded,loading:t.loading,error:t.error,filter:e.settings.problemFilter}}),{getPoolInfo:function(e){return Wi({request:window.api.getPoolInfo(e),actions:au})},changeFilter:Di})(NV),MV=[{name:"Generation",align:wn.RIGHT,render:function(e){return e.row.generation}},{name:"Node ID",align:wn.RIGHT,sortable:!1,render:function(e){return e.row.nodeId}},{name:"Change time",align:wn.RIGHT,sortable:!1,render:function(e){var t=e.row;return Ir(t.changeTime)}},{name:"State",sortable:!1,render:function(e){return e.row.state}},{name:"Follower ID",sortable:!1,render:function(e){var t=e.row;return t.leader?"leader":t.followerId}}],TV={displayIndices:!1},OV=function(e){var t=e.history;return(0,ra.jsx)(wn,{theme:"yandex-cloud",data:t,columns:MV,settings:TV,initialSortOrder:{columnId:"Generation",order:wn.DESCENDING}})},IV=function(e){var t=e.tablet,n=e.tenantPath,i=t.ChangeTime,r=t.Generation,o=t.FollowerId,a=t.NodeId,s=t.HiveId,u=t.State,l=t.Type,c=t.TenantId,d=(void 0===c?{}:c).SchemeShard,h=s&&"0"!==s,f=u===Kd.Active,p=[{label:"Database",value:n}];return h&&p.push({label:"HiveId",value:(0,ra.jsx)(Sd.r,{href:ld(cd.tablet,{id:s}),target:"_blank",children:s})}),d&&p.push({label:"SchemeShard",value:(0,ra.jsx)(Sd.r,{href:ld(cd.tablet,{id:d}),target:"_blank",children:d})}),p.push({label:"Type",value:l},{label:"State",value:u}),f&&p.push({label:"Uptime",value:Ir(i)}),p.push({label:"Generation",value:r},{label:"Node",value:(0,ra.jsx)(yd,{className:zV("link"),to:$h(String(a)),children:a})}),o&&p.push({label:"Follower",value:o}),(0,ra.jsx)(aa,{info:p})},AV=(0,ct.Z)("ydb-critical-dialog"),RV=function(t){var n=t.visible,i=t.text,r=t.onClose,o=t.onConfirm,a=(0,e.useState)(!1),s=(0,Ti.Z)(a,2),u=s[0],l=s[1],c=function(){var e=(0,Jn.Z)(ti().mark((function e(t){return ti().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.preventDefault(),l(!0),e.abrupt("return",o().then((function(){l(!1),r()})));case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return(0,ra.jsx)(Sv.V,{open:n,hasCloseButton:!1,className:AV(),size:"s",onClose:r,children:(0,ra.jsxs)("form",{onSubmit:c,children:[(0,ra.jsxs)(Sv.V.Body,{className:AV("body"),children:[(0,ra.jsx)("span",{className:AV("warning-icon"),children:(0,ra.jsx)(fh,{name:"dialog-warning",width:"24",height:"22",viewBox:"0 0 24 22"})}),i]}),(0,ra.jsx)(Sv.V.Footer,{loading:u,preset:"default",textButtonApply:"Confirm",textButtonCancel:"Cancel",propsButtonApply:{type:"submit"},onClickButtonCancel:r,onClickButtonApply:function(){}})]})})},PV=JSON.parse('{"tablet.header":"Tablet","controls.kill":"Restart","controls.stop":"Stop","controls.resume":"Resume","dialog.kill":"The tablet will be restarted. Do you want to proceed?","dialog.stop":"The tablet will be stopped. Do you want to proceed?","dialog.resume":"The tablet will be resumed. Do you want to proceed?","emptyState":"The tablet was not found"}'),ZV=JSON.parse('{"tablet.header":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430","controls.kill":"\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c","controls.stop":"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c","controls.resume":"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c","dialog.kill":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?","dialog.stop":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?","dialog.resume":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?","emptyState":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430"}'),FV="ydb-tablet-page";gr.registerKeyset(ar.En,FV,PV),gr.registerKeyset(ar.Ru,FV,ZV);var jV,HV=gr.keyset(FV);!function(e){e.kill="kill",e.stop="kill",e.resume="kill"}(jV||(jV={}));var BV=function(t){var n=t.tablet,i=n.TabletId,r=n.HiveId,o=(0,e.useState)(!1),a=(0,Ti.Z)(o,2),s=a[0],u=a[1],l=(0,e.useState)(null),c=(0,Ti.Z)(l,2),d=c[0],h=c[1],f=(0,e.useState)(!1),p=(0,Ti.Z)(f,2),g=p[0],v=p[1];(0,e.useEffect)((function(){v(!1)}),[n]);var m=function(e){return function(){u(!0),h(e)}},_=m(jV.kill),y=m(jV.stop),b=m(jV.resume),w=function(){u(!1),h(null)},C=function(){return v(!0),window.api.killTablet(i)},k=function(){return v(!0),window.api.stopTablet(i,r)},S=function(){return v(!0),window.api.resumeTablet(i,r)};return(0,ra.jsxs)("div",{className:zV("controls"),children:[(0,ra.jsx)(dd.z,{onClick:_,view:"action",disabled:g,className:zV("control"),children:HV("controls.kill")}),r&&"0"!==r?(0,ra.jsxs)(ra.Fragment,{children:[(0,ra.jsx)(dd.z,{onClick:y,view:"action",disabled:!!g||n.State===Kd.Stopped||n.State===Kd.Deleted,className:zV("control"),children:HV("controls.stop")}),(0,ra.jsx)(dd.z,{onClick:b,view:"action",disabled:!!g||n.State!==Kd.Stopped&&n.State!==Kd.Dead,className:zV("control"),children:HV("controls.resume")})]}):null,function(){if(!s)return null;switch(d){case jV.kill:return(0,ra.jsx)(RV,{visible:s,text:HV("dialog.kill"),onClose:w,onConfirm:C});case jV.stop:return(0,ra.jsx)(RV,{visible:s,text:HV("dialog.stop"),onClose:w,onConfirm:k});case jV.resume:return(0,ra.jsx)(RV,{visible:s,text:HV("dialog.resume"),onClose:w,onConfirm:S});default:return null}}()]})},zV=(0,ct.Z)("tablet-page"),WV=function(){var t=(0,e.useRef)(!0),n=Q(),i=function(){var e=at(Be).match;return e?e.params:{}}(),r=i.id,o=jh((function(e){return e.tablet})),a=o.data,s=void 0===a?{}:a,u=o.loading,l=o.id,c=o.history,d=void 0===c?[]:c,h=o.tenantPath,f=o.error;(0,e.useEffect)((function(){t.current&&s&&s.TenantId&&(n(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Wi({request:window.api.getTabletDescribe(e),actions:hu,dataHandler:function(t){var n=e.SchemeShard,i=e.PathId;return{tenantPath:t.Path||"".concat(n,":").concat(i)}}})}(s.TenantId)),t.current=!1)}),[n,s]);var p=(0,e.useCallback)((function(){n(function(e){return Wi({request:Promise.all([window.api.getTablet({id:e}),window.api.getTabletHistory({id:e})]),actions:du,dataHandler:function(e){var t=(0,Ti.Z)(e,2),n=t[0],i=t[1],r=Object.keys(i).reduce((function(e,t){var n,r=null===(n=i[t])||void 0===n?void 0:n.TabletStateInfo;if(r&&r.length){var o=r.find((function(e){return e.Leader}))||r[0],a=o.ChangeTime,s=o.Generation,u=o.State,l=o.Leader,c=o.FollowerId;e.push({nodeId:t,generation:s,changeTime:a,state:u,leader:l,followerId:c})}return e}),[]),o=n.TabletStateInfo,a=void 0===o?[]:o,s=(0,Ti.Z)(a,1)[0];return{tabletData:void 0===s?{}:s,historyData:r}}})}(r))}),[n,r]);Fh(p,[p],!0);if(u&&r!==l&&t.current)return(0,ra.jsx)(Th,{size:"l"});if(f)return(0,ra.jsx)(yj,{error:f});if(!s||!Object.keys(s).length)return(0,ra.jsx)("div",{className:zV("placeholder"),children:(0,ra.jsx)(Sh,{title:HV("emptyState")})});var g=s.TabletId,v=s.Overall,m=s.Leader,_=[{name:"Internal viewer - tablet",path:"/tablets?TabletID=".concat(g)}];return(0,ra.jsx)("div",{className:zV(),children:(0,ra.jsxs)("div",{className:zV("pane-wrapper"),children:[(0,ra.jsxs)("div",{className:zV("left-pane"),children:[(0,ra.jsx)("ul",{className:zV("links"),children:_.map((function(e,t){return(0,ra.jsx)("li",{className:zV("link",{external:!0}),children:(0,ra.jsx)(Sd.r,{href:"".concat(Qc).concat(e.path),target:"_blank",children:e.name})},t)}))}),(0,ra.jsxs)("div",{className:zV("row",{header:!0}),children:[(0,ra.jsx)("span",{className:zV("title"),children:HV("tablet.header")}),(0,ra.jsx)(Hd,{status:v,name:g}),(0,ra.jsx)("a",{rel:"noopener noreferrer",className:zV("link",{external:!0}),href:"".concat(Qc,"/tablets?TabletID=").concat(g),target:"_blank",children:(0,ra.jsx)(fh,{name:"external"})}),m&&(0,ra.jsx)(Tp,{text:"Leader",type:"blue"})]}),(0,ra.jsx)(IV,{tablet:s,tenantPath:h}),(0,ra.jsx)(BV,{tablet:s})]}),(0,ra.jsx)("div",{className:zV("rigth-pane"),children:(0,ra.jsx)(OV,{history:d})})]})})},VV=n(5647),YV=(0,ct.Z)("tablets-filters"),UV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={nodeFilter:[],tenantPath:""},e.reloadDescriptor=-1,e.makeRequest=function(){var t=e.state,n=t.nodeFilter,i=t.tenantPath;e.props.getTabletsInfo({nodes:n,path:[i]})},e.getTablets=function(){var t=e.props.timeoutForRequest;clearInterval(e.reloadDescriptor),e.reloadDescriptor=setTimeout((function(){e.makeRequest(),e.reloadDescriptor=-1}),t)},e.handleNodeFilterChange=function(t){e.setState({nodeFilter:t},(function(){e.props.clearWasLoadingFlag(),e.makeRequest()}))},e.handleStateFilterChange=function(t){(0,e.props.setStateFilter)(t)},e.handleTypeFilterChange=function(t){(0,e.props.setTypeFilter)(t)},e.renderTablet=function(t,n){var i=e.props,r=i.filteredTablets,o=i.hideTooltip,a=i.showTooltip,s=i.size;return(0,ra.jsx)(Rp,{onMouseLeave:o,onMouseEnter:a,tablet:r[t],size:s,className:YV("tablet")},n)},e.renderContent=function(){var t=e.state,n=t.nodeFilter,i=t.tenantPath,r=e.props,o=r.tablets,a=r.filteredTablets,s=r.nodes,u=r.stateFilter,l=r.typeFilter,c=r.error,d=Qd.map((function(e){return{value:e,content:e}})),h=Array.from((0,VV.Z)(Set,[Zt().map(o,(function(e){return e.Type}))])).map((function(e){return{value:e,content:e}})),f=Zt().map(s,(function(e){return{content:e.Id,value:e.Id,meta:e.Host}}));return(0,ra.jsxs)("div",{className:YV(),children:[i?(0,ra.jsx)("div",{className:YV("tenant"),children:(0,ra.jsxs)(ra.Fragment,{children:[(0,ra.jsx)("span",{className:YV("label"),children:"Database: "})," ",i]})}):null,(0,ra.jsx)(qV,{nodesForSelect:f,nodeFilter:n,onChangeNodes:e.handleNodeFilterChange,states:d,stateFilter:u,onChangeStates:e.handleStateFilterChange,types:h,typeFilter:l,onChangeTypes:e.handleTypeFilterChange}),c&&(0,ra.jsx)("div",{className:"error",children:c}),a.length>0?(0,ra.jsx)("div",{className:YV("items"),children:(0,ra.jsx)(GB(),{itemRenderer:e.renderTablet,length:a.length,type:"uniform"})}):!c&&(0,ra.jsx)("div",{className:YV("empty-message"),children:"no tablets"})]})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this,t=this.props,i=t.setStateFilter,r=t.setTypeFilter,o=vt().parse(this.props.location.search,{ignoreQueryPrefix:!0}),a=o.nodeIds,s=o.type,u=o.path,l=o.state,c=n.parseNodes(a);i(n.getStateFiltersFromColor(l)),r([s]),this.setState({nodeFilter:c,tenantPath:u},(function(){e.makeRequest()}))}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.loading,i=t.error;!i&&e.path&&this.props.path&&e.path!==this.props.path&&(this.props.clearWasLoadingFlag(),this.getTablets()),i||n||-1!==this.reloadDescriptor||this.getTablets()}},{key:"componentWillUnmount",value:function(){clearInterval(this.reloadDescriptor)}},{key:"render",value:function(){var e=this.props,t=e.loading,i=e.wasLoaded,r=e.error;return t&&!i?n.renderLoader():r&&"object"===typeof r?403===r.status?(0,ra.jsx)(Dh,{}):(0,ra.jsx)("div",{children:r.statusText}):this.renderContent()}}],[{key:"renderLoader",value:function(){return(0,ra.jsx)("div",{className:"loader",children:(0,ra.jsx)(fd.a,{size:"l"})})}}]),n}(e.Component);UV.parseNodes=function(e){if(Array.isArray(e))return e.map(Number).filter(Number.isInteger)},UV.getStateFiltersFromColor=function(e){return Xd[e]||[e]},UV.CONTROL_WIDTH=220,UV.POPUP_WIDTH=300;var KV=function(e){var t=e.nodesForSelect,n=e.nodeFilter,i=e.onChangeNodes,r=e.states,o=e.stateFilter,a=e.onChangeStates,s=e.types,u=e.typeFilter,l=e.onChangeTypes;return(0,ra.jsxs)("div",{className:YV("filters"),children:[(0,ra.jsx)("div",{className:YV("filter-wrapper"),children:(0,ra.jsx)(af.P,{multiple:!0,label:"Node ID",width:UV.CONTROL_WIDTH,popupWidth:UV.POPUP_WIDTH,placeholder:"All",options:t,value:n,onUpdate:i,renderOption:function(e){return(0,ra.jsxs)("div",{className:YV("node"),children:[(0,ra.jsx)("div",{children:e.content}),(0,ra.jsx)("div",{className:YV("node-meta"),title:e.meta,children:e.meta})]})},getOptionHeight:function(){return 40}})}),(0,ra.jsx)("div",{className:YV("filter-wrapper"),children:(0,ra.jsx)(af.P,{multiple:!0,label:"multiple",width:UV.CONTROL_WIDTH,placeholder:"All",options:r,value:o,onUpdate:a})}),(0,ra.jsx)("div",{className:YV("filter-wrapper"),children:(0,ra.jsx)(af.P,{multiple:!0,label:"Types",width:UV.CONTROL_WIDTH,placeholder:"All",options:s,value:u,onUpdate:l})})]})},qV=e.memo(KV,(function(e,t){return Zt().isEqual(e.nodeFilter,t.nodeFilter)&&Zt().isEqual(e.stateFilter,t.stateFilter)&&Zt().isEqual(e.typeFilter,t.typeFilter)})),GV=U((function(e){var t=e.tabletsFilters,n=t.nodes,i=t.wasLoaded,r=t.loading,o=t.timeoutForRequest,a=t.stateFilter,s=t.typeFilter,u=t.error;return{tablets:Ll(e),filteredTablets:El(e),nodes:n,timeoutForRequest:o,wasLoaded:i,loading:r,stateFilter:a,typeFilter:s,error:u}}),{getTabletsInfo:function(e){return Wi({request:Promise.all([window.api.getTabletsInfo(e),window.api.getNodesList()]),actions:Sl})},hideTooltip:Da,showTooltip:Ma,clearWasLoadingFlag:function(){return{type:"CLEAR_WAS_LOADING_TABLETS"}},setStateFilter:function(e){return{type:"SET_STATE_FILTER",data:e}},setTypeFilter:function(e){return{type:"SET_TYPE_FILTER",data:e}}})(UV),$V=n(29670);var QV=U((function(e){var t=e.tooltip,n=t.toolTipVisible,i=t.currentHoveredRef,r=t.data,o=t.template,a=t.additionalData;return{toolTipVisible:n,currentHoveredRef:i,data:r,template:o,additionalData:a,positions:t.positions,popupClassName:(a||{}).popupClassName}}),{hideTooltip:Da})((function(t){var n,i,r=(0,$V.J)({rect:{top:null===(n=t.positions)||void 0===n?void 0:n.top,left:null===(i=t.positions)||void 0===i?void 0:i.left}});(0,e.useEffect)((function(){return window.addEventListener("scroll",o,!0),function(){window.removeEventListener("scroll",o)}}),[]);var o=function(){var e=t.hideTooltip;t.toolTipVisible&&setTimeout((function(){return e()}),500)},a=t.className,s=void 0===a?"":a,u=t.toolTipVisible,l=t.currentHoveredRef,c=t.data,d=t.additionalData,h=t.positions;return(0,ra.jsx)("div",{className:"redux-tooltip ".concat(s),children:h?function(n,i,o,a){var s=t.template,u=t.popupClassName,l=t.hideTooltip;return(0,ra.jsx)(e.Fragment,{children:(0,ra.jsx)(Hf.G,{open:n,placement:["top","bottom","left","right"],className:u,anchorRef:r,onOutsideClick:l,children:o&&s(o,a)})})}(u,0,c,d):function(e,n,i,r){var o=t.template,a=t.popupClassName,s=t.hideTooltip;return(0,ra.jsx)(Hf.G,{open:e,anchorRef:{current:n},hasArrow:!0,placement:["top","bottom","left","right"],className:a,onOutsideClick:s,children:i&&o(i,r)})}(u,l,c,d)})})),XV=(0,ct.Z)("header");function JV(e){var t=e.name;return(0,ra.jsxs)("div",{className:XV("cluster-info"),children:[(0,ra.jsx)("div",{className:XV("cluster-info-title"),children:"cluster"}),(0,ra.jsx)("div",{className:XV("cluster-info-name"),children:t})]})}var eY,tY,nY=function(t){var n=t.clusterName,i=Q(),r=te((function(e){return e.host})).data,o=te((function(e){return e})),a=o.singleClusterMode,s=o.header,u=ut(),l=st(),c=u.pathname;return(0,e.useEffect)((function(){c.includes("/clusters")||n||a||i(Qr(Jc)),i(Wi({request:window.api.getHostInfo(),actions:Js}))}),[]),function(){var t=a?r.ClusterName:n,i=Qc+"/internal";a&&!ad&&(i="/internal");var o=s.reduce((function(e,t){return e.push({text:t.text,action:function(){t.link&&l.push(t.link)}}),e}),[]);return(0,ra.jsxs)("header",{className:XV(),children:[(0,ra.jsx)("div",{children:(0,ra.jsx)(sV.Oo,{items:o,lastDisplayedItemsCount:1,firstDisplayedItemsCount:1})}),(0,ra.jsxs)("div",{className:XV("cluster-name-wrapper"),children:[(0,ra.jsxs)(Sd.r,{href:i,target:"_blank",children:["Internal viewer"," ",(0,ra.jsx)(fh,{name:"external",viewBox:"0 0 16 16",width:16,height:16})]}),t&&(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)("div",{className:XV("divider"),children:(0,ra.jsx)(Iv,{})}),(0,ra.jsx)(JV,{name:t})]})]})]})}()},iY=function(){return(0,ra.jsx)("svg",{width:"0",height:"0",children:(0,ra.jsxs)("defs",{children:[(0,ra.jsx)("path",{id:"icon.information",d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"}),(0,ra.jsx)("path",{id:"icon.tablePreview",d:"M13.2812 2.4375H2.71875C2.0332 2.4375 1.5 2.99609 1.5 3.65625V12.5938C1.5 13.2793 2.0332 13.8125 2.71875 13.8125H13.2812C13.9414 13.8125 14.5 13.2793 14.5 12.5938V3.65625C14.5 2.99609 13.9414 2.4375 13.2812 2.4375ZM7.1875 12.1875H3.125V9.75H7.1875V12.1875ZM7.1875 8.125H3.125V5.6875H7.1875V8.125ZM12.875 12.1875H8.8125V9.75H12.875V12.1875ZM12.875 8.125H8.8125V5.6875H12.875V8.125Z"}),(0,ra.jsx)("path",{id:"icon.close",fillRule:"evenodd",clipRule:"evenodd",d:"M12.7559 11.5774C13.0814 11.9028 13.0814 12.4305 12.7559 12.7559C12.4305 13.0814 11.9028 13.0814 11.5774 12.7559L8 9.17851L4.42259 12.7559C4.09715 13.0814 3.56951 13.0814 3.24408 12.7559C2.91864 12.4305 2.91864 11.9028 3.24408 11.5774L6.82149 8L3.24408 4.42259C2.91864 4.09715 2.91864 3.56951 3.24408 3.24408C3.56951 2.91864 4.09715 2.91864 4.42259 3.24408L8 6.82149L11.5774 3.24408C11.9028 2.91864 12.4305 2.91864 12.7559 3.24408C13.0814 3.56951 13.0814 4.09715 12.7559 4.42259L9.17851 8L12.7559 11.5774Z"}),(0,ra.jsx)("path",{id:"icon.enableFullscreen",d:"M2.3125 6.19531C2.3125 6.37305 2.43945 6.5 2.61719 6.5H3.63281C3.78516 6.5 3.9375 6.37305 3.9375 6.19531V4.0625H6.07031C6.22266 4.0625 6.375 3.93555 6.375 3.75781V2.74219C6.375 2.58984 6.22266 2.4375 6.07031 2.4375H2.92188C2.56641 2.4375 2.3125 2.7168 2.3125 3.04688V6.19531ZM9.625 2.74219V3.75781C9.625 3.93555 9.75195 4.0625 9.92969 4.0625H12.0625V6.19531C12.0625 6.37305 12.1895 6.5 12.3672 6.5H13.3828C13.5352 6.5 13.6875 6.37305 13.6875 6.19531V3.04688C13.6875 2.7168 13.4082 2.4375 13.0781 2.4375H9.92969C9.75195 2.4375 9.625 2.58984 9.625 2.74219ZM13.3828 9.75H12.3672C12.1895 9.75 12.0625 9.90234 12.0625 10.0547V12.1875H9.92969C9.75195 12.1875 9.625 12.3398 9.625 12.4922V13.5078C9.625 13.6855 9.75195 13.8125 9.92969 13.8125H13.0781C13.4082 13.8125 13.6875 13.5586 13.6875 13.2031V10.0547C13.6875 9.90234 13.5352 9.75 13.3828 9.75ZM6.375 13.5078V12.4922C6.375 12.3398 6.22266 12.1875 6.07031 12.1875H3.9375V10.0547C3.9375 9.90234 3.78516 9.75 3.63281 9.75H2.61719C2.43945 9.75 2.3125 9.90234 2.3125 10.0547V13.2031C2.3125 13.5586 2.56641 13.8125 2.92188 13.8125H6.07031C6.22266 13.8125 6.375 13.6855 6.375 13.5078Z"}),(0,ra.jsx)("path",{id:"icon.disableFullscreen",d:"M13.3828 6.5C13.5352 6.5 13.6875 6.37305 13.6875 6.19531V5.17969C13.6875 5.02734 13.5352 4.875 13.3828 4.875H11.25V2.74219C11.25 2.58984 11.0977 2.4375 10.9453 2.4375H9.92969C9.75195 2.4375 9.625 2.58984 9.625 2.74219V5.89062C9.625 6.24609 9.87891 6.5 10.2344 6.5H13.3828ZM6.375 5.89062V2.74219C6.375 2.58984 6.22266 2.4375 6.07031 2.4375H5.05469C4.87695 2.4375 4.75 2.58984 4.75 2.74219V4.875H2.61719C2.43945 4.875 2.3125 5.02734 2.3125 5.17969V6.19531C2.3125 6.37305 2.43945 6.5 2.61719 6.5H5.76562C6.0957 6.5 6.375 6.24609 6.375 5.89062ZM6.375 13.5078V10.3594C6.375 10.0293 6.0957 9.75 5.76562 9.75H2.61719C2.43945 9.75 2.3125 9.90234 2.3125 10.0547V11.0703C2.3125 11.248 2.43945 11.375 2.61719 11.375H4.75V13.5078C4.75 13.6855 4.87695 13.8125 5.05469 13.8125H6.07031C6.22266 13.8125 6.375 13.6855 6.375 13.5078ZM11.25 13.5078V11.375H13.3828C13.5352 11.375 13.6875 11.248 13.6875 11.0703V10.0547C13.6875 9.90234 13.5352 9.75 13.3828 9.75H10.2344C9.87891 9.75 9.625 10.0293 9.625 10.3594V13.5078C9.625 13.6855 9.75195 13.8125 9.92969 13.8125H10.9453C11.0977 13.8125 11.25 13.6855 11.25 13.5078Z"}),(0,ra.jsx)("path",{id:"icon.copy",d:"M10.4375 13H6.17188C5.38477 13 4.75 12.3652 4.75 11.5781V4.0625H2.92188C2.56641 4.0625 2.3125 4.3418 2.3125 4.67188V14.0156C2.3125 14.3711 2.56641 14.625 2.92188 14.625H9.82812C10.1582 14.625 10.4375 14.3711 10.4375 14.0156V13ZM10.4375 4.26562V1.625H6.17188C5.81641 1.625 5.5625 1.9043 5.5625 2.23438V11.5781C5.5625 11.9336 5.81641 12.1875 6.17188 12.1875H13.0781C13.4082 12.1875 13.6875 11.9336 13.6875 11.5781V4.875H11.0469C10.6914 4.875 10.4375 4.62109 10.4375 4.26562ZM13.4844 3.47852L11.834 1.82812C11.7324 1.72656 11.5293 1.625 11.4023 1.625H11.25V4.0625H13.6875V3.91016C13.6875 3.7832 13.5859 3.58008 13.4844 3.47852Z"}),(0,ra.jsx)("path",{id:"icon.failure",d:"M336.1 175c-9.375-9.375-24.56-9.375-33.94 0L256 222.1L208.1 175c-9.375-9.375-24.56-9.375-33.94 0s-9.375 24.56 0 33.94l47.03 47.03L175 303c-9.375 9.375-9.375 24.56 0 33.94c9.373 9.373 24.56 9.381 33.94 0L256 289.9l47.03 47.03c9.373 9.373 24.56 9.381 33.94 0c9.375-9.375 9.375-24.56 0-33.94l-47.03-47.03l47.03-47.03C346.3 199.6 346.3 184.4 336.1 175zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256S512 397.4 512 256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z"}),(0,ra.jsx)("path",{id:"icon.success",d:"M8 0.25C3.71875 0.25 0.25 3.75 0.25 8C0.25 12.2812 3.71875 15.75 8 15.75C12.25 15.75 15.75 12.2812 15.75 8C15.75 3.75 12.25 0.25 8 0.25ZM8 1.75C11.4375 1.75 14.25 4.5625 14.25 8C14.25 11.4688 11.4375 14.25 8 14.25C4.53125 14.25 1.75 11.4688 1.75 8C1.75 4.5625 4.53125 1.75 8 1.75ZM12.375 5.84375L11.6562 5.125C11.5312 4.96875 11.2812 4.96875 11.125 5.125L6.71875 9.5L4.84375 7.625C4.6875 7.46875 4.46875 7.46875 4.3125 7.625L3.59375 8.3125C3.46875 8.46875 3.46875 8.71875 3.59375 8.84375L6.4375 11.7188C6.59375 11.875 6.8125 11.875 6.96875 11.7188L12.375 6.375C12.5 6.21875 12.5 5.96875 12.375 5.84375Z"}),(0,ra.jsx)("path",{id:"icon.startPlay",d:"M4 2.99383V13.0072C3.99999 13.359 4.1862 13.6846 4.48948 13.863C4.79276 14.0413 5.16779 14.0459 5.47529 13.8749L14.4869 8.8682C14.8019 8.69306 14.9973 8.36093 14.9973 8.0005C14.9973 7.64006 14.8019 7.30794 14.4869 7.13279L5.47529 2.12513C5.16764 1.95405 4.79239 1.95868 4.48905 2.13729C4.18571 2.31591 3.99963 2.64181 4 2.99383Z"}),(0,ra.jsx)("path",{id:"icon.collapse",d:"M54.63 246.6L192 109.3l137.4 137.4C335.6 252.9 343.8 256 352 256s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25l-160-160c-12.5-12.5-32.75-12.5-45.25 0l-160 160c-12.5 12.5-12.5 32.75 0 45.25S42.13 259.1 54.63 246.6zM214.6 233.4c-12.5-12.5-32.75-12.5-45.25 0l-160 160c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0L192 301.3l137.4 137.4C335.6 444.9 343.8 448 352 448s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25L214.6 233.4z"}),(0,ra.jsx)("path",{id:"icon.query",fill:"currentColor",d:"M13.6875 12.5938V3.65625C13.6875 2.99609 13.1289 2.4375 12.4688 2.4375H3.53125C2.8457 2.4375 2.3125 2.99609 2.3125 3.65625V12.5938C2.3125 13.2793 2.8457 13.8125 3.53125 13.8125H12.4688C13.1289 13.8125 13.6875 13.2793 13.6875 12.5938ZM5.15625 6.5C4.92773 6.5 4.75 6.32227 4.75 6.09375V5.28125C4.75 5.07812 4.92773 4.875 5.15625 4.875H8.40625C8.60938 4.875 8.8125 5.07812 8.8125 5.28125V6.09375C8.8125 6.32227 8.60938 6.5 8.40625 6.5H5.15625ZM5.15625 8.9375C4.92773 8.9375 4.75 8.75977 4.75 8.53125V7.71875C4.75 7.51562 4.92773 7.3125 5.15625 7.3125H10.8438C11.0469 7.3125 11.25 7.51562 11.25 7.71875V8.53125C11.25 8.75977 11.0469 8.9375 10.8438 8.9375H5.15625ZM5.15625 11.375C4.92773 11.375 4.75 11.1973 4.75 10.9688V10.1562C4.75 9.95312 4.92773 9.75 5.15625 9.75H6.78125C6.98438 9.75 7.1875 9.95312 7.1875 10.1562V10.9688C7.1875 11.1973 6.98438 11.375 6.78125 11.375H5.15625Z"}),(0,ra.jsx)("path",{id:"icon.diagnostics",fill:"currentColor",d:"M15.7188 7.3125H12.0625C11.7324 7.3125 11.4531 7.49023 11.3262 7.76953L10.6406 9.11523L8.76172 2.23438C8.66016 1.87891 8.33008 1.625 7.97461 1.65039C7.59375 1.65039 7.26367 1.9043 7.1875 2.28516L5.43555 10.4609L4.69922 7.92188C4.59766 7.56641 4.29297 7.3125 3.9375 7.3125H0.28125C0.0527344 7.3125 -0.125 7.51562 -0.125 7.71875V8.53125C-0.125 8.75977 0.0527344 8.9375 0.28125 8.9375H3.30273L4.77539 14.041C4.87695 14.3965 5.18164 14.625 5.53711 14.625C5.5625 14.625 5.5625 14.625 5.58789 14.625C5.94336 14.625 6.27344 14.3711 6.34961 13.9902L8.07617 5.89062L9.65039 11.6035C9.72656 11.9082 10.0312 12.1621 10.3359 12.1875C10.6914 12.2383 10.9961 12.0605 11.1484 11.7559L12.5449 8.9375H15.7188C15.9219 8.9375 16.125 8.75977 16.125 8.53125V7.71875C16.125 7.51562 15.9219 7.3125 15.7188 7.3125Z"}),(0,ra.jsx)("path",{id:"icon.key",d:"M8 7H11V5H12V2H6.66C6.085 0.79 4.86 0 3.5 0C1.57 0 0 1.57 0 3.5C0 5.43 1.57 7 3.5 7C4.86 7 6.09 6.21 6.66 5H8V7ZM10 6H9V4H5.97L5.855 4.335C5.5 5.33 4.555 6 3.5 6C2.11929 6 1 4.88071 1 3.5C1 2.11929 2.11929 1 3.5 1C4.555 1 5.5 1.67 5.855 2.665L5.97 3H11V4H10V6ZM3.5 5C2.67157 5 2 4.32843 2 3.5C2 2.67157 2.67157 2 3.5 2C4.32843 2 5 2.67157 5 3.5C5 4.32843 4.32843 5 3.5 5ZM3 3.5C3 3.22386 3.22386 3 3.5 3C3.77614 3 4 3.22386 4 3.5C4 3.77614 3.77614 4 3.5 4C3.22386 4 3 3.77614 3 3.5Z"}),(0,ra.jsx)("path",{id:"icon.new",d:"M6,2A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6M6,4H13V9H18V20H6V4Z"}),(0,ra.jsx)("path",{id:"icon.subdomain",d:"M13.6875 3.50391C13.6875 2.46289 11.123 1.625 8 1.625C4.85156 1.625 2.3125 2.46289 2.3125 3.50391V4.64648C2.3125 5.6875 4.85156 6.5 8 6.5C11.123 6.5 13.6875 5.6875 13.6875 4.64648V3.50391ZM13.6875 6.09375C12.4434 6.95703 10.209 7.33789 8 7.33789C5.76562 7.33789 3.53125 6.95703 2.3125 6.09375V8.70898C2.3125 9.75 4.85156 10.5625 8 10.5625C11.123 10.5625 13.6875 9.75 13.6875 8.70898V6.09375ZM13.6875 10.1562C12.4434 11.0195 10.209 11.4004 8 11.4004C5.76562 11.4004 3.53125 11.0195 2.3125 10.1562V12.7715C2.3125 13.8125 4.85156 14.625 8 14.625C11.123 14.625 13.6875 13.8125 13.6875 12.7715V10.1562Z"}),(0,ra.jsx)("path",{id:"icon.openFolder",d:"M15.2109 9.06445C15.4648 8.6582 15.1602 8.125 14.6777 8.125H4.54688C4.01367 8.125 3.37891 8.50586 3.125 8.9375L1.29688 12.0859C1.04297 12.4922 1.34766 13 1.83008 13H11.9609C12.4941 13 13.1289 12.6445 13.3828 12.2129L15.2109 9.06445ZM4.54688 7.3125H12.875V6.09375C12.875 5.43359 12.3164 4.875 11.6562 4.875H7.59375L5.96875 3.25H1.90625C1.2207 3.25 0.6875 3.80859 0.6875 4.46875V11.5527L2.43945 8.53125C2.87109 7.79492 3.6582 7.3125 4.54688 7.3125Z"}),(0,ra.jsx)("path",{id:"icon.folder",d:"M13.2812 4.875H8.40625L6.78125 3.25H2.71875C2.0332 3.25 1.5 3.80859 1.5 4.46875V11.7812C1.5 12.4668 2.0332 13 2.71875 13H13.2812C13.9414 13 14.5 12.4668 14.5 11.7812V6.09375C14.5 5.43359 13.9414 4.875 13.2812 4.875Z"}),(0,ra.jsx)("path",{id:"icon.table",d:"M13.2812 2.4375H2.71875C2.0332 2.4375 1.5 2.99609 1.5 3.65625V12.5938C1.5 13.2793 2.0332 13.8125 2.71875 13.8125H13.2812C13.9414 13.8125 14.5 13.2793 14.5 12.5938V3.65625C14.5 2.99609 13.9414 2.4375 13.2812 2.4375ZM7.1875 12.1875H3.125V9.75H7.1875V12.1875ZM7.1875 8.125H3.125V5.6875H7.1875V8.125ZM12.875 12.1875H8.8125V9.75H12.875V12.1875ZM12.875 8.125H8.8125V5.6875H12.875V8.125Z"}),(0,ra.jsx)("path",{id:"icon.arrow-right",d:"M.786.194C.829.151.872.13.958.13c.064 0 .128.021.193.064l4.49 4.512c.043.043.086.108.086.172 0 .086-.043.129-.086.172l-4.49 4.512a.347.347 0 0 1-.194.064c-.085 0-.128-.021-.171-.064l-.43-.43C.29 9.089.27 9.046.27 8.96c0-.064.021-.129.086-.193l3.889-3.889L.355.99C.292.946.27.882.27.796.27.732.291.667.356.624z"}),(0,ra.jsx)("path",{id:"icon.external",d:"M15.3125 2.00586C15.3125 1.80273 15.1348 1.625 14.9316 1.625L10.793 1.65039C10.5898 1.65039 10.4375 1.80273 10.4375 2.00586V2.84375C10.4375 3.04688 10.5898 3.22461 10.793 3.22461L12.6719 3.14844L12.7227 3.19922L5.63867 10.2832C5.51172 10.4102 5.51172 10.5879 5.63867 10.7148L6.22266 11.2988C6.34961 11.4258 6.52734 11.4258 6.6543 11.2988L13.7383 4.21484L13.7891 4.26562L13.7129 6.14453C13.7129 6.34766 13.8906 6.5 14.0938 6.5H14.9316C15.1348 6.5 15.2871 6.34766 15.2871 6.14453L15.3125 2.00586ZM11.5293 7.56641L10.9199 8.17578C10.8691 8.22656 10.8438 8.32812 10.8438 8.4043V13.2539C10.8438 13.3555 10.7676 13.4062 10.6914 13.4062H2.05859C1.95703 13.4062 1.90625 13.3555 1.90625 13.2539V4.62109C1.90625 4.54492 1.95703 4.46875 2.05859 4.46875H9.70117C9.98047 4.46875 10.1328 4.16406 9.92969 3.96094L9.32031 3.35156C9.26953 3.30078 9.16797 3.25 9.0918 3.25H1.90625C1.2207 3.25 0.6875 3.80859 0.6875 4.46875V13.4062C0.6875 14.0918 1.2207 14.625 1.90625 14.625H10.8438C11.5039 14.625 12.0625 14.0918 12.0625 13.4062V7.79492C12.0625 7.51562 11.7324 7.38867 11.5293 7.56641Z"}),(0,ra.jsxs)("g",{id:"icon.network-placeholder",children:[(0,ra.jsx)("path",{d:"M68.4597 2.52853V27.7564C68.4597 28.9827 69.3356 30.0339 70.562 30.2675C87.2054 33.2458 99.7025 48.0788 99.0601 65.715C98.4177 83.7599 83.7015 98.4177 65.715 99.1185C48.0788 99.7609 33.3042 87.2638 30.2675 70.6788C30.0339 69.4524 28.9827 68.5765 27.7564 68.5765H2.52853C1.01019 68.5765 -0.157769 69.8612 0.0174243 71.3212C3.4629 104.024 31.2603 129.427 64.9558 129.135C100.111 128.843 128.785 100.111 129.077 64.9558C129.369 31.2603 103.907 3.4629 71.2044 0.0174243C69.7444 -0.157769 68.4597 1.01019 68.4597 2.52853Z",fill:"#EBF2FA"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M22.7358 18.3543L40.5472 36.1657C41.4231 37.0416 42.8247 37.1584 43.8758 36.3993C48.0221 33.3042 52.9275 31.2019 58.2417 30.2091C59.4681 29.9755 60.344 28.9827 60.344 27.698V2.52853C60.344 1.01019 59.0593 -0.157769 57.5409 0.0174243C44.4598 1.41897 32.4883 6.67478 22.911 14.6753C21.7431 15.6096 21.6847 17.3032 22.7358 18.3543ZM13.3334 24.4868C6.09205 33.8304 1.30343 45.1596 0.0186744 57.54C-0.156519 58.9999 1.06984 60.2846 2.52978 60.2846H27.6992C28.9256 60.2846 29.9768 59.4087 30.2103 58.1823C31.0279 53.5105 32.8382 49.1307 35.3494 45.3348C35.9917 44.342 35.8749 42.9989 35.0574 42.1229L17.1292 24.3116C16.0781 23.202 14.2677 23.3188 13.3334 24.4868ZM80.6078 131.879H113.603C115.471 131.879 116.99 133.397 117.048 135.324V200.555C117.048 202.482 115.471 204 113.603 204H80.6078C78.6807 204 77.1624 202.423 77.1624 200.555V135.324C77.1624 133.397 78.7391 131.879 80.6078 131.879ZM158.452 158.976H125.574C123.647 158.976 122.071 160.553 122.071 162.48V200.439C122.071 202.366 123.647 203.943 125.574 203.943H158.452C160.379 203.943 161.956 202.366 161.956 200.439V162.48C161.956 160.553 160.379 158.976 158.452 158.976ZM170.657 177.256H203.243C205.229 177.256 206.864 178.891 206.864 180.876V200.264C206.864 202.25 205.229 203.885 203.243 203.885H170.657C168.672 203.885 167.037 202.25 167.037 200.264V180.876C167.037 178.891 168.672 177.256 170.657 177.256Z",fill:"#EBF2FA"}),(0,ra.jsx)("path",{d:"M134.275 171.532H21.2749C15.4351 171.532 10.6465 166.743 10.6465 160.903V87.6726C10.6465 81.8328 15.4351 77.0442 21.2749 77.0442H134.216C140.056 77.0442 144.845 81.8328 144.845 87.6726V160.903C144.903 166.802 140.114 171.532 134.275 171.532V171.532Z",fillRule:"evenodd",clipRule:"evenodd",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,ra.jsx)("path",{d:"M21.6246 90.7687C23.3017 90.7687 24.6613 89.4091 24.6613 87.732C24.6613 86.0549 23.3017 84.6953 21.6246 84.6953C19.9475 84.6953 18.5879 86.0549 18.5879 87.732C18.5879 89.4091 19.9475 90.7687 21.6246 90.7687Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M31.4937 90.7687C33.1708 90.7687 34.5304 89.4091 34.5304 87.732C34.5304 86.0549 33.1708 84.6953 31.4937 84.6953C29.8166 84.6953 28.457 86.0549 28.457 87.732C28.457 89.4091 29.8166 90.7687 31.4937 90.7687Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M41.3629 90.7687C43.04 90.7687 44.3995 89.4091 44.3995 87.732C44.3995 86.0549 43.04 84.6953 41.3629 84.6953C39.6857 84.6953 38.3262 86.0549 38.3262 87.732C38.3262 89.4091 39.6857 90.7687 41.3629 90.7687Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M10.8223 98.592H144.495",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,ra.jsx)("path",{d:"M184.555 149.164L57.89 156.172C53.6269 156.406 50.123 153.135 50.123 148.872V51.1145C50.123 46.8514 53.6269 43.5812 57.89 43.8148L184.555 50.8225C187.825 50.9977 190.453 54.1512 190.453 57.8302V142.157C190.453 145.836 187.825 148.989 184.555 149.164Z",fill:"#027BF3"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M65.1304 54.1512C65.1304 56.1368 63.5537 57.6551 61.5681 57.5383C59.5826 57.4799 58.0059 55.7864 58.0059 53.8009C58.0059 51.8153 59.641 50.297 61.5681 50.4138C63.4953 50.4722 65.1304 52.1657 65.1304 54.1512ZM76.6357 54.6174C76.6357 56.5445 75.059 58.0629 73.1319 58.0045C71.2047 57.9461 69.628 56.2525 69.628 54.3254C69.628 52.3983 71.2047 50.8799 73.1319 50.9383C75.059 51.0551 76.6357 52.6903 76.6357 54.6174ZM84.461 58.4718C86.3298 58.5886 87.8481 57.0702 87.8481 55.1431C87.8481 53.216 86.3298 51.5808 84.461 51.5224C82.5339 51.4056 81.0156 52.924 81.0156 54.8511C81.0156 56.7782 82.5923 58.4134 84.461 58.4718Z",fill:"white"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M75.467 142.974V85.2772C71.496 84.7516 66.8826 84.8684 61.5684 85.9779V143.617L75.467 142.974ZM88.84 90.6509V142.45L77.7444 142.917V85.6871C82.0658 86.6214 85.6865 88.4318 88.84 90.6509ZM102.271 104.55C102.213 104.491 102.169 104.433 102.125 104.374C102.082 104.316 102.038 104.258 101.979 104.199C101.559 103.689 101.138 103.173 100.714 102.653L100.714 102.653C97.8391 99.1308 94.8401 95.4564 91.1759 92.4028V142.333L102.271 141.866V104.55ZM115.703 110.272C111.79 110.214 107.994 109.571 104.607 106.827V141.749L115.703 141.281V110.272ZM129.134 109.863C126.37 109.69 123.605 109.869 120.888 110.044L120.888 110.044L120.888 110.044C119.931 110.106 118.981 110.167 118.039 110.213V141.164L129.134 140.697V109.863ZM153.136 139.704L144.902 140.054V117.863C153.078 127.148 153.136 139.704 153.136 139.704ZM140.113 113.6C140.989 114.184 141.807 114.826 142.566 115.527V140.171L131.47 140.638V110.155C134.39 110.622 137.252 111.615 140.113 113.6Z",fill:"#00236B"}),(0,ra.jsx)("path",{d:"M55.7449 76.4361C55.0549 77.2986 55.1947 78.5572 56.0573 79.2472C56.9198 79.9372 58.1784 79.7974 58.8684 78.9349L55.7449 76.4361ZM61.5113 72.4297L63.0863 71.1971C62.7095 70.7157 62.1333 70.433 61.522 70.4297C60.9107 70.4264 60.3314 70.7029 59.9495 71.1803L61.5113 72.4297ZM64.1409 79.0349C64.8217 79.9048 66.0787 80.0581 66.9485 79.3773C67.8184 78.6965 67.9717 77.4395 67.2909 76.5697L64.1409 79.0349ZM172.081 132.537C171.218 131.847 169.96 131.987 169.27 132.849C168.58 133.712 168.719 134.97 169.582 135.66L172.081 132.537ZM176.087 138.303L177.301 139.893C177.79 139.52 178.08 138.942 178.087 138.326C178.094 137.711 177.817 137.126 177.337 136.742L176.087 138.303ZM169.443 140.86C168.565 141.53 168.396 142.785 169.067 143.663C169.737 144.541 170.992 144.71 171.87 144.039L169.443 140.86ZM58.8684 78.9349L63.073 73.6791L59.9495 71.1803L55.7449 76.4361L58.8684 78.9349ZM59.9363 73.6623L64.1409 79.0349L67.2909 76.5697L63.0863 71.1971L59.9363 73.6623ZM169.582 135.66L174.838 139.865L177.337 136.742L172.081 132.537L169.582 135.66ZM174.874 136.714L169.443 140.86L171.87 144.039L177.301 139.893L174.874 136.714Z",fill:"white"}),(0,ra.jsx)("path",{d:"M147.137 69.1464C146.033 69.1053 145.105 69.9668 145.064 71.0706C145.023 72.1744 145.884 73.1025 146.988 73.1436L147.137 69.1464ZM176.771 74.2532C177.875 74.2943 178.803 73.4328 178.844 72.329C178.885 71.2252 178.024 70.2971 176.92 70.256L176.771 74.2532ZM147.114 79.6573C146.01 79.6291 145.092 80.5015 145.064 81.6057C145.036 82.7099 145.908 83.6278 147.012 83.656L147.114 79.6573ZM176.795 84.4152C177.899 84.4433 178.817 83.571 178.846 82.4668C178.874 81.3626 178.001 80.4446 176.897 80.4165L176.795 84.4152ZM147.075 90.3435C145.97 90.337 145.07 91.2271 145.063 92.3317C145.057 93.4362 145.947 94.3369 147.052 94.3434L147.075 90.3435ZM176.834 94.5186C177.939 94.5251 178.84 93.635 178.846 92.5304C178.853 91.4258 177.962 90.5252 176.858 90.5187L176.834 94.5186ZM146.988 73.1436L176.771 74.2532L176.92 70.256L147.137 69.1464L146.988 73.1436ZM147.012 83.656L176.795 84.4152L176.897 80.4165L147.114 79.6573L147.012 83.656ZM147.052 94.3434L176.834 94.5186L176.858 90.5187L147.075 90.3435L147.052 94.3434Z",fill:"white"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M143.442 71.2024C143.442 72.604 142.274 73.7135 140.872 73.6551C139.471 73.5967 138.303 72.3704 138.303 70.9688C138.303 69.5673 139.471 68.3993 140.872 68.5161C142.332 68.5745 143.442 69.8009 143.442 71.2024ZM143.443 81.5981C143.443 82.9996 142.275 84.1092 140.873 84.0508C139.472 83.9924 138.304 82.766 138.304 81.3645C138.304 79.9045 139.472 78.795 140.873 78.9118C142.333 78.9702 143.443 80.1965 143.443 81.5981ZM140.873 94.4457C142.275 94.5041 143.443 93.3945 143.443 91.993C143.443 90.5914 142.333 89.3651 140.873 89.3067C139.472 89.1899 138.304 90.3578 138.304 91.7594C138.304 93.1609 139.472 94.3873 140.873 94.4457Z",fill:"white"}),(0,ra.jsx)("path",{opacity:"0.2",d:"M190.452 91.8753V57.771C190.452 54.0919 187.824 50.9385 184.553 50.7633L160.902 49.4785C159.793 52.8656 159.15 56.5447 159.15 60.4573C159.15 78.0934 171.94 92.2841 187.24 92.1089C188.291 92.1673 189.4 92.0505 190.452 91.8753Z",fill:"#00236B"}),(0,ra.jsx)("path",{d:"M220.645 58.8832C220.645 42.2982 209.024 28.1076 194.191 27.2316C178.891 26.3556 166.102 39.9039 166.102 57.5401C166.102 75.1762 178.891 89.3669 194.191 89.1917C209.024 89.0749 220.645 75.4682 220.645 58.8832Z",fill:"#FF4645"}),(0,ra.jsx)("path",{d:"M215.329 40.3719C210.541 32.897 202.949 27.758 194.189 27.2324V58.2417L215.329 40.3719Z",fill:"#FFCC00"}),(0,ra.jsx)("path",{d:"M215.329 40.3721L194.189 58.2418L220.644 58.8842C220.644 51.9932 218.658 45.5695 215.329 40.3721V40.3721Z",fill:"#00236B"}),(0,ra.jsx)("path",{d:"M194.248 58.2408V27.2316C178.947 26.3556 166.158 39.9039 166.158 57.5401L194.248 58.2408Z",fill:"#FF4645"}),(0,ra.jsx)("path",{d:"M161.151 14.7336C161.151 13.6291 160.256 12.7336 159.151 12.7336C158.047 12.7336 157.151 13.6291 157.151 14.7336H161.151ZM157.151 18.9383C157.151 20.0429 158.047 20.9383 159.151 20.9383C160.256 20.9383 161.151 20.0429 161.151 18.9383H157.151ZM161.151 27.8138C161.151 26.7093 160.256 25.8138 159.151 25.8138C158.047 25.8138 157.151 26.7093 157.151 27.8138H161.151ZM157.151 32.3689C157.151 33.4734 158.047 34.3689 159.151 34.3689C160.256 34.3689 161.151 33.4734 161.151 32.3689H157.151ZM167.97 25.5526C169.074 25.5526 169.97 24.6572 169.97 23.5526C169.97 22.4481 169.074 21.5526 167.97 21.5526V25.5526ZM163.707 21.5526C162.602 21.5526 161.707 22.4481 161.707 23.5526C161.707 24.6572 162.602 25.5526 163.707 25.5526V21.5526ZM154.538 25.5526C155.643 25.5526 156.538 24.6572 156.538 23.5526C156.538 22.4481 155.643 21.5526 154.538 21.5526V25.5526ZM150.275 21.5526C149.171 21.5526 148.275 22.4481 148.275 23.5526C148.275 24.6572 149.171 25.5526 150.275 25.5526V21.5526ZM157.151 14.7336V18.9383H161.151V14.7336H157.151ZM157.151 27.8138V32.3689H161.151V27.8138H157.151ZM167.97 21.5526H163.707V25.5526H167.97V21.5526ZM154.538 21.5526H150.275V25.5526H154.538V21.5526Z",fill:"#2EE5C0"})]}),(0,ra.jsxs)("g",{id:"icon.404",children:[(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M307.333 168.43C316.733 154.23 321.433 135.83 321.433 113.13C321.433 78.7305 309.733 51.2305 286.133 30.9305C262.733 10.4305 223.133 0.230469 179.433 0.230469C166.333 0.230469 155.333 1.13047 144.633 2.93047C133.933 4.73047 124.533 6.83047 116.433 9.23047C111.033 10.8305 100.333 14.9305 93.1334 17.8305C89.0334 19.5305 86.2334 23.8305 86.2334 28.6305V68.1305C86.2334 76.3305 94.0334 81.9305 101.133 78.6305C101.749 78.3525 102.352 78.0786 102.939 77.8124C105.306 76.738 107.391 75.7915 108.833 75.2305C114.533 72.9305 121.233 71.0305 128.933 69.4305C136.633 67.8305 145.233 67.0305 154.633 67.0305C176.833 67.0305 197.733 72.0305 206.933 81.9305C216.133 91.9305 220.733 104.43 220.733 119.43C220.733 132.43 218.033 143.53 212.533 152.63C207.033 161.73 199.433 170.63 189.633 179.13C181.733 186.03 174.433 192.63 167.633 198.93C160.833 205.23 155.033 212.13 150.133 219.63C145.233 227.13 141.433 235.63 138.833 244.93C137.233 250.53 136.133 265.23 135.533 275.93C135.233 282.53 140.033 288.13 146.233 288.13H197.433C202.833 288.13 207.433 283.73 208.033 277.93C208.633 272.23 210.033 265.43 213.533 260.13C217.533 254.23 222.233 248.33 228.233 242.83C234.233 237.33 241.233 231.83 249.133 226.13C257.133 220.53 265.333 214.03 274.033 206.73C286.833 195.33 297.933 182.63 307.333 168.43ZM139.733 381.13C148.733 390.63 159.833 395.33 173.133 395.33C179.433 395.33 185.533 394.03 191.333 391.33C197.133 388.73 202.233 385.33 206.533 381.03C210.833 376.73 214.233 371.63 216.733 365.83C219.233 360.03 220.433 353.73 220.433 346.83C220.433 340.03 219.233 333.63 216.733 327.83C214.233 322.03 210.833 316.93 206.533 312.43C202.233 307.93 197.133 304.53 191.333 302.13C185.533 299.73 179.433 298.53 173.133 298.53C159.833 298.53 148.733 303.13 139.733 312.43C130.733 321.73 126.233 333.23 126.233 346.93C126.233 360.33 130.733 371.73 139.733 381.13Z",fill:"#ECF2F9"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M213.933 353.03H20.4334C10.4334 353.03 2.2334 344.83 2.2334 334.83V209.43C2.2334 199.43 10.4334 191.23 20.4334 191.23H213.933C223.933 191.23 232.133 199.43 232.133 209.43V334.83C232.133 344.93 223.933 353.03 213.933 353.03Z",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10"}),(0,ra.jsx)("path",{d:"M21.0335 214.732C23.9054 214.732 26.2335 212.404 26.2335 209.532C26.2335 206.66 23.9054 204.332 21.0335 204.332C18.1616 204.332 15.8335 206.66 15.8335 209.532C15.8335 212.404 18.1616 214.732 21.0335 214.732Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M37.9334 214.732C40.8053 214.732 43.1334 212.404 43.1334 209.532C43.1334 206.66 40.8053 204.332 37.9334 204.332C35.0615 204.332 32.7334 206.66 32.7334 209.532C32.7334 212.404 35.0615 214.732 37.9334 214.732Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M54.8333 214.732C57.7052 214.732 60.0333 212.404 60.0333 209.532C60.0333 206.66 57.7052 204.332 54.8333 204.332C51.9614 204.332 49.6333 206.66 49.6333 209.532C49.6333 212.404 51.9614 214.732 54.8333 214.732Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M2.5332 228.129H231.433",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10",fill:"#FFFFFF"}),(0,ra.jsx)("path",{d:"M301.033 264.83L84.1335 276.83C76.8335 277.23 70.8335 271.63 70.8335 264.33V96.9303C70.8335 89.6303 76.8335 84.0303 84.1335 84.4303L301.033 96.4303C306.633 96.7303 311.133 102.13 311.133 108.43V252.83C311.133 259.13 306.633 264.53 301.033 264.83Z",fill:"#027BF3"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M90.4335 107.93C93.8335 108.13 96.5335 105.53 96.5335 102.13C96.5335 98.7296 93.8335 95.8296 90.4335 95.7296C87.1335 95.5296 84.3335 98.1296 84.3335 101.53C84.3335 104.93 87.0335 107.83 90.4335 107.93ZM110.233 108.728C113.533 108.828 116.233 106.228 116.233 102.928C116.233 99.6278 113.533 96.8278 110.233 96.6278C106.933 96.5278 104.233 99.1278 104.233 102.428C104.233 105.728 106.933 108.628 110.233 108.728ZM135.433 103.828C135.433 107.128 132.833 109.728 129.633 109.528C126.433 109.428 123.733 106.628 123.733 103.328C123.733 100.028 126.333 97.428 129.633 97.628C132.833 97.728 135.433 100.528 135.433 103.828ZM201.434 165.531L220.534 144.631L237.934 163.731L219.034 184.631L237.934 205.131L220.534 224.631L201.434 204.131L182.034 225.631L163.934 206.531L183.534 185.031L163.934 164.031L182.034 144.531L201.434 165.531Z",fill:"white"}),(0,ra.jsx)("path",{d:"M327.433 112.83C327.433 84.4297 305.733 75.7297 293.933 74.9297C293.833 74.9297 260.433 77.2297 260.433 120.23C260.433 145.73 281.633 165.73 306.433 164.83C314.233 164.53 321.333 162.23 327.433 158.43V112.83Z",fill:"#67B0F8"}),(0,ra.jsx)("path",{d:"M380.534 195.931C377.634 199.331 372.934 199.631 370.034 196.731L331.434 157.731L342.734 145.531L380.534 184.531C383.434 187.531 383.434 192.531 380.534 195.931Z",fill:"#FF4645"}),(0,ra.jsx)("path",{d:"M342.833 145.629L331.533 157.829L335.233 161.529C337.133 163.429 340.133 163.529 342.033 161.729C343.133 160.729 344.233 159.629 345.233 158.529C345.833 157.829 346.533 157.129 347.133 156.429C348.733 154.529 348.633 151.629 346.833 149.829L342.833 145.629Z",fill:"#D93654"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M267.633 154.13C244.633 132.729 244.633 96.8295 267.633 76.0295C289.533 56.2295 322.733 59.0295 342.033 80.3295C360.433 100.729 360.433 132.03 342.033 151.93C322.733 172.73 289.533 174.53 267.633 154.13ZM277.033 143.328C292.633 158.328 316.833 157.528 331.133 142.428C344.933 127.828 344.933 104.628 331.133 89.6281C316.833 74.128 292.633 72.628 277.033 87.1281C260.833 102.228 260.833 127.828 277.033 143.328Z",fill:"#00236B"}),(0,ra.jsx)("path",{d:"M41.0336 42.7305C41.0336 41.6259 40.1382 40.7305 39.0336 40.7305C37.929 40.7305 37.0336 41.6259 37.0336 42.7305H41.0336ZM37.0336 51.0305C37.0336 52.135 37.929 53.0305 39.0336 53.0305C40.1382 53.0305 41.0336 52.135 41.0336 51.0305H37.0336ZM41.0336 68.2305C41.0336 67.1259 40.1382 66.2305 39.0336 66.2305C37.929 66.2305 37.0336 67.1259 37.0336 68.2305H41.0336ZM37.0336 77.1305C37.0336 78.235 37.929 79.1305 39.0336 79.1305C40.1382 79.1305 41.0336 78.235 41.0336 77.1305H37.0336ZM56.2336 61.9305C57.3382 61.9305 58.2336 61.035 58.2336 59.9305C58.2336 58.8259 57.3382 57.9305 56.2336 57.9305V61.9305ZM48.0336 57.9305C46.929 57.9305 46.0336 58.8259 46.0336 59.9305C46.0336 61.035 46.929 61.9305 48.0336 61.9305V57.9305ZM30.1336 61.9305C31.2382 61.9305 32.1336 61.035 32.1336 59.9305C32.1336 58.8259 31.2382 57.9305 30.1336 57.9305V61.9305ZM21.9336 57.9305C20.829 57.9305 19.9336 58.8259 19.9336 59.9305C19.9336 61.035 20.829 61.9305 21.9336 61.9305V57.9305ZM37.0336 42.7305V51.0305H41.0336V42.7305H37.0336ZM37.0336 68.2305V77.1305H41.0336V68.2305H37.0336ZM56.2336 57.9305H48.0336V61.9305H56.2336V57.9305ZM30.1336 57.9305H21.9336V61.9305H30.1336V57.9305Z",fill:"#2EE5C0"})]}),"/* History controls */",(0,ra.jsx)("path",{id:"icon.previous",d:"M5.41406 10.6094C5.36719 10.6562 5.29688 10.6797 5.22656 10.6797C5.13281 10.6797 5.0625 10.6562 5.01562 10.6094L0.117188 5.6875C0.046875 5.64062 0.0234375 5.59375 0.0234375 5.5C0.0234375 5.42969 0.046875 5.35938 0.117188 5.3125L5.01562 0.390625C5.0625 0.34375 5.13281 0.320312 5.22656 0.320312C5.29688 0.320312 5.36719 0.34375 5.41406 0.390625L5.88281 0.859375C5.92969 0.90625 5.97656 0.976562 5.97656 1.04688C5.97656 1.14062 5.92969 1.21094 5.88281 1.25781L1.64062 5.5L5.88281 9.74219C5.92969 9.8125 5.97656 9.88281 5.97656 9.95312C5.97656 10.0469 5.92969 10.0938 5.88281 10.1406L5.41406 10.6094Z",fill:"currentColor"}),(0,ra.jsx)("path",{id:"icon.next",d:"M0.787109 0.191406C0.830078 0.148438 0.873047 0.126953 0.958984 0.126953C1.02344 0.126953 1.08789 0.148438 1.15234 0.191406L5.64258 4.70312C5.68555 4.74609 5.72852 4.81055 5.72852 4.875C5.72852 4.96094 5.68555 5.00391 5.64258 5.04688L1.15234 9.55859C1.08789 9.60156 1.02344 9.62305 0.958984 9.62305C0.873047 9.62305 0.830078 9.60156 0.787109 9.55859L0.357422 9.12891C0.292969 9.08594 0.271484 9.04297 0.271484 8.95703C0.271484 8.89258 0.292969 8.82812 0.357422 8.76367L4.24609 4.875L0.357422 0.986328C0.292969 0.943359 0.271484 0.878906 0.271484 0.792969C0.271484 0.728516 0.292969 0.664062 0.357422 0.621094L0.787109 0.191406Z",fill:"currentColor"}),(0,ra.jsxs)("g",{id:"icon.dialog-warning",width:"24",height:"22",viewBox:"0 0 24 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.253448 19.0301L10.7294 0.712125C11.2724 -0.237375 12.7304 -0.237375 13.2719 0.712125L23.7479 19.0301C24.2609 19.9256 23.5649 21.0071 22.4774 21.0071H1.52545C0.436448 21.0071 -0.258052 19.9256 0.253448 19.0301Z",fill:"var(--yc-color-base-warning-heavy)"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.5 13.0074C13.5 13.2836 13.2761 13.5074 13 13.5074H11C10.7239 13.5074 10.5 13.2836 10.5 13.0074V7.39844C10.5 7.1223 10.7239 6.89844 11 6.89844H13C13.2761 6.89844 13.5 7.1223 13.5 7.39844V13.0074Z",fill:"var(--yc-color-text-complementary)"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.5 17.548C13.5 17.8241 13.2761 18.048 13 18.048H11C10.7239 18.048 10.5 17.8241 10.5 17.548V15.8555C10.5 15.5793 10.7239 15.3555 11 15.3555H13C13.2761 15.3555 13.5 15.5793 13.5 15.8555V17.548Z",fill:"var(--yc-color-text-complementary)"})]}),(0,ra.jsx)("g",{id:"icon.chevron-down",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:(0,ra.jsx)("path",{stroke:"currentColor",fill:"none",d:"M3 6l5 5 5-5"})}),"/* theme icons */",(0,ra.jsx)("path",{id:"icon.sun",d:"M7.99108 5.98e-05C7.67665 0.00674984 7.42467 0.265426 7.42913 0.579851V2.29246C7.4269 2.49762 7.53394 2.6894 7.71233 2.79421C7.89073 2.89679 8.10927 2.89679 8.28767 2.79421C8.46606 2.6894 8.5731 2.49762 8.57087 2.29246V0.579851C8.5731 0.425983 8.51289 0.276576 8.40362 0.167307C8.29436 0.0580392 8.14495 -0.00217002 7.99108 5.98e-05ZM2.7462 2.17651C2.51429 2.17874 2.30467 2.31922 2.2177 2.5333C2.13073 2.74961 2.18202 2.9949 2.34927 3.15769L3.56014 4.36856C3.70286 4.51797 3.91693 4.57818 4.1154 4.52466C4.3161 4.47337 4.47219 4.31727 4.52348 4.11658C4.577 3.91811 4.51679 3.70403 4.36739 3.56131L3.15652 2.35044C3.04948 2.23895 2.90007 2.17651 2.7462 2.17651ZM13.236 2.17651C13.0865 2.18097 12.9461 2.2434 12.8435 2.35044L11.6326 3.56131C11.4832 3.70403 11.423 3.91811 11.4765 4.11658C11.5278 4.31727 11.6839 4.47337 11.8846 4.52466C12.0831 4.57818 12.2971 4.51797 12.4399 4.36856L13.6507 3.15769C13.8202 2.99267 13.8693 2.74292 13.7778 2.52661C13.6864 2.30807 13.4723 2.16982 13.236 2.17651ZM8 4.00508C5.79233 4.00508 4.0039 5.79351 4.0039 8.00118C4.0039 10.2088 5.79233 11.9973 8 11.9973C10.2077 11.9973 11.9961 10.2088 11.9961 8.00118C11.9961 5.79351 10.2077 4.00508 8 4.00508ZM0.578676 7.43031C0.373519 7.42808 0.181743 7.53511 0.076934 7.71351C-0.0256447 7.89191 -0.0256447 8.11044 0.076934 8.28884C0.181743 8.46724 0.373519 8.57428 0.578676 8.57205H2.29129C2.49645 8.57428 2.68822 8.46724 2.79303 8.28884C2.89561 8.11044 2.89561 7.89191 2.79303 7.71351C2.68822 7.53511 2.49645 7.42808 2.29129 7.43031H0.578676ZM13.7087 7.43031C13.5036 7.42808 13.3118 7.53511 13.207 7.71351C13.1044 7.89191 13.1044 8.11044 13.207 8.28884C13.3118 8.46724 13.5036 8.57428 13.7087 8.57205H15.4213C15.6265 8.57428 15.8183 8.46724 15.9231 8.28884C16.0256 8.11044 16.0256 7.89191 15.9231 7.71351C15.8183 7.53511 15.6265 7.42808 15.4213 7.43031H13.7087ZM3.95261 11.4621C3.80321 11.4643 3.66272 11.5268 3.56014 11.6338L2.34927 12.8447C2.19986 12.9874 2.13965 13.2015 2.19317 13.3999C2.24446 13.6006 2.40056 13.7567 2.60125 13.808C2.79972 13.8615 3.0138 13.8013 3.15652 13.6519L4.36739 12.441C4.53686 12.276 4.58592 12.0263 4.49449 11.81C4.40307 11.5914 4.18899 11.4532 3.95261 11.4621ZM12.0318 11.4621C11.7976 11.4621 11.5902 11.6026 11.501 11.8166C11.4141 12.033 11.4654 12.2782 11.6326 12.441L12.8435 13.6519C12.9862 13.8013 13.2003 13.8615 13.3987 13.808C13.5994 13.7567 13.7555 13.6006 13.8068 13.3999C13.8603 13.2015 13.8001 12.9874 13.6507 12.8447L12.4399 11.6338C12.3328 11.5223 12.1856 11.4621 12.0318 11.4621ZM7.99108 13.1301C7.67665 13.1368 7.42467 13.3955 7.42913 13.7099V15.4225C7.4269 15.6277 7.53394 15.8194 7.71233 15.9242C7.89073 16.0268 8.10927 16.0268 8.28767 15.9242C8.46606 15.8194 8.5731 15.6277 8.57087 15.4225V13.7099C8.5731 13.556 8.51289 13.4066 8.40362 13.2973C8.29436 13.1881 8.14495 13.1279 7.99108 13.1301Z",fill:"currentColor"}),(0,ra.jsx)("path",{id:"icon.moon",d:"M10.9102 13.991C12.7951 13.305 14.209 11.8446 14.8419 10.0201C14.9307 9.74456 14.627 9.50386 14.3819 9.6471C11.6317 11.2966 8.08679 10.0199 6.99259 7.01362C6.36734 5.29574 6.70084 3.39103 7.89136 1.98499C8.07785 1.755 7.88469 1.44702 7.60487 1.49482C7.2925 1.52745 6.78277 1.68596 6.46392 1.77499C3.07588 3.00814 1.35459 6.74195 2.57904 10.1061C3.81219 13.4942 7.52215 15.2241 10.9102 13.991Z",fill:"currentColor"}),(0,ra.jsx)("path",{id:"icon.pencil",d:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"}),(0,ra.jsx)("path",{id:"icon.trash",d:"M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z"}),(0,ra.jsx)("path",{id:"icon.kikimr-logo",d:"M6.47 30.11L6.47 21.37L10.81 7.45L9.35 7.45L5.80 19.50L2.19 7.45L0.51 7.45L4.88 21.37L4.88 30.11ZM13.12 30.11L15.44 30.11C20.45 30.11 23.84 25.61 23.84 17.94C23.84 10.08 20.26 7.45 15.79 7.45L13.12 7.45ZM15.79 8.75C19.34 8.75 22.22 11.06 22.22 18.07C22.22 25.01 19.50 28.82 15.47 28.82L14.71 28.82L14.71 8.75ZM29.67 30.11C33.38 30.11 36.17 28.15 36.17 23.62C36.17 20.80 34.97 18.67 32.37 18.01C34.30 17.15 35.38 15.44 35.38 12.81C35.38 9.48 33.60 7.45 30.05 7.45L26.75 7.45L26.75 30.11ZM29.99 8.72C32.65 8.72 33.82 10.24 33.82 12.93C33.82 16.10 32.24 17.47 29.92 17.47L28.34 17.47L28.34 8.72ZM30.40 18.70C33.22 18.70 34.58 20.70 34.58 23.84C34.58 27.55 32.52 28.85 29.45 28.85L28.34 28.85L28.34 18.70ZM49.58 26.63L50.82 26.63L54.21 14.01C54.46 13.06 54.68 12.14 54.97 10.87L55.09 10.87C55.03 12.01 54.97 13.16 54.97 14.23L54.97 30.11L56.49 30.11L56.49 7.45L54.71 7.45L50.85 21.94C50.69 22.51 50.43 23.71 50.31 24.57L50.21 24.57C50.12 23.71 49.90 22.54 49.74 21.94L45.90 7.45L44.06 7.45L44.06 30.11L45.46 30.11L45.46 14.23C45.46 13.09 45.43 11.95 45.36 10.87L45.46 10.87C45.65 11.92 45.90 12.93 46.22 14.11ZM64.13 30.43C66.89 30.43 69.01 27.33 69.01 22.03C69.01 16.55 66.89 13.82 64.13 13.82C61.37 13.82 59.25 16.90 59.25 22.22C59.25 27.67 61.37 30.43 64.13 30.43ZM64.13 29.23C62.26 29.23 60.74 27.10 60.74 22.13C60.74 17.28 62.26 15.06 64.13 15.06C66.00 15.06 67.52 17.12 67.52 22.13C67.52 26.95 66.00 29.23 64.13 29.23ZM76.81 15.09C78.27 15.09 78.96 15.98 78.96 17.88L78.96 30.11L80.45 30.11L80.45 17.69C80.45 15.15 79.22 13.82 77.09 13.82C74.94 13.82 73.67 15.60 73.23 16.77L73.16 16.77L73.10 14.14L71.74 14.14L71.74 30.11L73.23 30.11L73.23 18.45C74.02 16.42 75.22 15.09 76.81 15.09ZM84.64 11.00C85.18 11.00 85.65 10.56 85.65 9.99C85.65 9.45 85.18 8.94 84.64 8.94C84.07 8.94 83.62 9.45 83.62 9.99C83.62 10.56 84.07 11.00 84.64 11.00ZM83.88 14.14L83.88 30.11L85.37 30.11L85.37 14.14ZM93.64 29.92L93.32 28.82C93.13 28.91 92.82 29.04 92.34 29.04C91.39 29.04 90.88 28.34 90.88 26.75L90.88 15.31L93.61 15.31L93.61 14.14L90.88 14.14L90.88 10.97L89.55 10.97L89.39 14.14L87.78 14.14L87.78 15.31L89.39 15.31L89.39 26.91C89.39 28.88 90.28 30.27 92.18 30.27C92.85 30.27 93.29 30.11 93.64 29.92ZM100.17 30.43C102.93 30.43 105.05 27.33 105.05 22.03C105.05 16.55 102.93 13.82 100.17 13.82C97.41 13.82 95.29 16.90 95.29 22.22C95.29 27.67 97.41 30.43 100.17 30.43ZM100.17 29.23C98.30 29.23 96.78 27.10 96.78 22.13C96.78 17.28 98.30 15.06 100.17 15.06C102.04 15.06 103.56 17.12 103.56 22.13C103.56 26.95 102.04 29.23 100.17 29.23ZM113.07 15.60L113.07 14.04C111.11 14.17 109.81 15.79 109.30 17.34L109.21 17.34L109.14 14.14L107.78 14.14L107.78 30.11L109.27 30.11L109.27 19.02C110.00 16.83 111.33 15.66 113.07 15.60ZM116.28 11.00C116.81 11.00 117.29 10.56 117.29 9.99C117.29 9.45 116.81 8.94 116.28 8.94C115.70 8.94 115.26 9.45 115.26 9.99C115.26 10.56 115.70 11.00 116.28 11.00ZM115.51 14.14L115.51 30.11L117.00 30.11L117.00 14.14ZM125.63 15.09C127.09 15.09 127.78 15.98 127.78 17.88L127.78 30.11L129.27 30.11L129.27 17.69C129.27 15.15 128.04 13.82 125.91 13.82C123.76 13.82 122.49 15.60 122.05 16.77L121.98 16.77L121.92 14.14L120.56 14.14L120.56 30.11L122.05 30.11L122.05 18.45C122.84 16.42 124.04 15.09 125.63 15.09ZM136.60 29.10C134.69 29.10 133.49 26.63 133.49 22.44C133.49 17.72 134.82 14.99 136.85 14.99C138.28 14.99 139.16 15.72 139.80 17.24L139.80 26.09C139.10 27.71 137.96 29.10 136.60 29.10ZM136.37 35.31C139.26 35.31 141.29 33.76 141.29 29.96L141.29 14.14L140.05 14.14L139.89 15.63C139.35 14.55 138.28 13.82 137.04 13.82C133.96 13.82 132.00 17.02 132.00 22.57C132.00 27.20 133.65 30.40 136.31 30.40C137.99 30.40 139.10 29.16 139.80 27.77L139.80 29.80C139.80 32.87 138.50 34.01 136.37 34.01C134.88 34.01 133.55 33.38 132.98 32.81L132.54 34.11C133.17 34.62 134.53 35.31 136.37 35.31Z"}),(0,ra.jsx)("path",{id:"icon.question",fillRule:"evenodd",clipRule:"evenodd",d:"M22 12.219c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10 10 4.477 10 10zm-2 0a8 8 0 11-16 0 8 8 0 0116 0zm-9.25 4.243c0-.723.55-1.243 1.243-1.243.708 0 1.257.52 1.257 1.243 0 .722-.55 1.257-1.257 1.257a1.228 1.228 0 01-1.243-1.258zm1.475-9.743c-2.157 0-3.775 1.243-3.775 3.25v.025a.5.5 0 00.5.5h.803c.24 0 .435-.195.435-.435 0-1.123.868-1.722 2.037-1.722 1.138 0 1.887.599 1.887 1.453 0 .809-.42 1.183-1.468 1.662l-.3.135c-.883.39-1.213.974-1.213 1.992v.14a.5.5 0 00.5.5h.738a.5.5 0 00.5-.5v-.035c0-.45.12-.629.48-.794l.299-.134c1.258-.57 2.202-1.319 2.202-2.951v-.09c0-1.723-1.498-2.996-3.625-2.996z",fill:"currentColor"}),(0,ra.jsxs)("g",{id:"icon.emptyState",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 383 396",width:"383",height:"396",fill:"none",children:[(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M307.333 168.43c9.4-14.2 14.1-32.6 14.1-55.3 0-34.4-11.7-61.9-35.3-82.2-23.4-20.5-63-30.7-106.7-30.7-13.1 0-24.1.9-34.8 2.7-10.7 1.8-20.1 3.9-28.2 6.3-5.4 1.6-16.1 5.7-23.3 8.6-4.1 1.7-6.9 6-6.9 10.8v39.5c0 8.2 7.8 13.8 14.9 10.5a458.74 458.74 0 0 0 1.806-.818c2.367-1.074 4.452-2.02 5.894-2.581 5.7-2.3 12.4-4.2 20.1-5.8 7.7-1.6 16.3-2.4 25.7-2.4 22.2 0 43.1 5 52.3 14.9 9.2 10 13.8 22.499 13.8 37.499 0 13-2.7 24.1-8.2 33.2-5.5 9.1-13.1 18-22.9 26.5-7.9 6.9-15.2 13.5-22 19.8-6.8 6.3-12.6 13.2-17.5 20.7s-8.7 16-11.3 25.3c-1.6 5.6-2.7 20.3-3.3 31-.3 6.6 4.5 12.2 10.7 12.2h51.2c5.4 0 10-4.4 10.6-10.2.6-5.7 2-12.5 5.5-17.8 4-5.9 8.7-11.8 14.7-17.3s13-11 20.9-16.7c8-5.6 16.2-12.1 24.9-19.4 12.8-11.4 23.9-24.1 33.3-38.3zm-167.6 212.7c9 9.5 20.1 14.2 33.4 14.2 6.3 0 12.4-1.3 18.2-4 5.8-2.6 10.9-6 15.2-10.3 4.3-4.3 7.7-9.4 10.2-15.2 2.5-5.8 3.7-12.1 3.7-19 0-6.8-1.2-13.2-3.7-19-2.5-5.8-5.9-10.9-10.2-15.4-4.3-4.5-9.4-7.9-15.2-10.3-5.8-2.4-11.9-3.6-18.2-3.6-13.3 0-24.4 4.6-33.4 13.9s-13.5 20.8-13.5 34.5c0 13.4 4.5 24.8 13.5 34.2z",fill:"#ECF2F9"}),(0,ra.jsx)("path",{clipRule:"evenodd",d:"M213.933 353.03h-193.5c-10 0-18.2-8.2-18.2-18.2v-125.4c0-10 8.2-18.2 18.2-18.2h193.5c10 0 18.2 8.2 18.2 18.2v125.4c0 10.1-8.2 18.2-18.2 18.2z",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10"}),(0,ra.jsx)("path",{d:"M21.034 214.732a5.2 5.2 0 1 0 0-10.4 5.2 5.2 0 0 0 0 10.4zm16.899 0a5.2 5.2 0 1 0 0-10.4 5.2 5.2 0 0 0 0 10.4zm16.9 0a5.2 5.2 0 1 0 0-10.4 5.2 5.2 0 0 0 0 10.4z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M2.533 228.129h228.9",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10"}),(0,ra.jsx)("path",{d:"M301.033 264.83l-216.9 12c-7.3.4-13.3-5.2-13.3-12.5V96.93c0-7.3 6-12.9 13.3-12.5l216.9 12c5.6.3 10.1 5.7 10.1 12v144.4c0 6.3-4.5 11.7-10.1 12z",fill:"#027BF3"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M90.433 107.93c3.4.2 6.1-2.4 6.1-5.8s-2.7-6.3-6.1-6.4c-3.3-.2-6.1 2.4-6.1 5.8s2.7 6.3 6.1 6.4zm19.8.798c3.3.1 6-2.5 6-5.8s-2.7-6.1-6-6.3c-3.3-.1-6 2.5-6 5.8s2.7 6.2 6 6.3zm25.2-4.9c0 3.3-2.6 5.9-5.8 5.7-3.2-.1-5.9-2.9-5.9-6.2 0-3.3 2.6-5.9 5.9-5.7 3.2.1 5.8 2.9 5.8 6.2zm66.001 61.703l19.1-20.9 17.4 19.1-18.9 20.9 18.9 20.5-17.4 19.5-19.1-20.5-19.4 21.5-18.1-19.1 19.6-21.5-19.6-21 18.1-19.5 19.4 21z",fill:"#fff"}),(0,ra.jsx)("path",{d:"M327.433 112.83c0-28.4-21.7-37.1-33.5-37.9-.1 0-33.5 2.3-33.5 45.3 0 25.5 21.2 45.5 46 44.6 7.8-.3 14.9-2.6 21-6.4v-45.6z",fill:"#67B0F8"}),(0,ra.jsx)("path",{d:"M380.534 195.931c-2.9 3.4-7.6 3.7-10.5.8l-38.6-39 11.3-12.2 37.8 39c2.9 3 2.9 8 0 11.4z",fill:"#FF4645"}),(0,ra.jsx)("path",{d:"M342.833 145.629l-11.3 12.2 3.7 3.7c1.9 1.9 4.9 2 6.8.2 1.1-1 2.2-2.1 3.2-3.2.6-.7 1.3-1.4 1.9-2.1 1.6-1.9 1.5-4.8-.3-6.6l-4-4.2z",fill:"#D93654"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M267.633 154.13c-23-21.401-23-57.3 0-78.1 21.9-19.8 55.1-17 74.4 4.3 18.4 20.399 18.4 51.7 0 71.6-19.3 20.8-52.5 22.6-74.4 2.2zm9.4-10.802c15.6 15 39.8 14.2 54.1-.9 13.8-14.6 13.8-37.8 0-52.8-14.3-15.5-38.5-17-54.1-2.5-16.2 15.1-16.2 40.7 0 56.2z",fill:"#00236B"}),(0,ra.jsx)("path",{d:"M41.034 42.73a2 2 0 1 0-4 0h4zm-4 8.3a2 2 0 0 0 4 0h-4zm4 17.2a2 2 0 1 0-4 0h4zm-4 8.9a2 2 0 0 0 4 0h-4zm19.2-15.2a2 2 0 0 0 0-4v4zm-8.2-4a2 2 0 1 0 0 4v-4zm-17.9 4a2 2 0 0 0 0-4v4zm-8.2-4a2 2 0 1 0 0 4v-4zm15.1-15.2v8.3h4v-8.3h-4zm0 25.5v8.9h4v-8.9h-4zm19.2-10.3h-8.2v4h8.2v-4zm-26.1 0h-8.2v4h8.2v-4z",fill:"#2EE5C0"})]}),(0,ra.jsxs)("g",{id:"icon.accessDenied",width:"240",height:"240",viewBox:"0 0 240 240",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,ra.jsx)("path",{d:"M8.09538 76.0473H58.6587C61.5462 76.0473 64.2412 77.6463 65.7171 80.2046L102.228 145.123C105.436 150.815 113.521 150.624 116.473 144.803L177.495 25.1359C178.907 22.3856 181.666 20.6588 184.682 20.6588H231.909C238.005 20.6588 241.919 27.3105 239.031 32.811L139.188 224.049C128.215 244.515 99.7896 245.475 87.4696 225.839L1.29371 88.7751C-2.17129 83.2747 1.74288 76.0473 8.09538 76.0473Z",fill:"currentColor"}),(0,ra.jsx)("path",{d:"M38.51 148.083C39.6146 148.083 40.51 147.187 40.51 146.083C40.51 144.978 39.6146 144.083 38.51 144.083V148.083ZM25.5483 144.083C24.4438 144.083 23.5483 144.978 23.5483 146.083C23.5483 147.187 24.4438 148.083 25.5483 148.083V144.083ZM33.5708 152.649C34.1243 153.605 35.3479 153.931 36.3038 153.378C37.2597 152.824 37.5859 151.601 37.0324 150.645L33.5708 152.649ZM30.5516 139.452C29.9981 138.496 28.7745 138.17 27.8186 138.723C26.8627 139.277 26.5365 140.5 27.09 141.456L30.5516 139.452ZM27.09 150.645C26.5365 151.601 26.8627 152.824 27.8186 153.378C28.7745 153.931 29.9981 153.605 30.5516 152.649L27.09 150.645ZM37.0324 141.456C37.5859 140.5 37.2597 139.277 36.3038 138.723C35.3479 138.17 34.1243 138.496 33.5708 139.452L37.0324 141.456ZM59.2359 148.083C60.3405 148.083 61.2359 147.187 61.2359 146.083C61.2359 144.978 60.3405 144.083 59.2359 144.083V148.083ZM46.3384 144.083C45.2338 144.083 44.3384 144.978 44.3384 146.083C44.3384 147.187 45.2338 148.083 46.3384 148.083V144.083ZM54.2964 152.649C54.8499 153.605 56.0735 153.931 57.0294 153.378C57.9853 152.824 58.3115 151.601 57.758 150.645L54.2964 152.649ZM51.2772 139.452C50.7237 138.496 49.5001 138.17 48.5442 138.723C47.5883 139.277 47.2621 140.5 47.8156 141.456L51.2772 139.452ZM47.8156 150.645C47.2621 151.601 47.5883 152.824 48.5442 153.378C49.5001 153.931 50.7237 153.605 51.2772 152.649L47.8156 150.645ZM57.758 141.456C58.3115 140.5 57.9853 139.277 57.0294 138.723C56.0735 138.17 54.8499 138.496 54.2964 139.452L57.758 141.456ZM124.878 158.729H26.0616V162.729H124.878V158.729ZM26.0616 158.729C21.3209 158.729 17.4741 154.886 17.4741 150.176H13.4741C13.4741 157.107 19.124 162.729 26.0616 162.729V158.729ZM17.4741 150.176V141.925H13.4741V150.176H17.4741ZM17.4741 141.925C17.4741 137.216 21.3209 133.372 26.0616 133.372V129.372C19.124 129.372 13.4741 134.994 13.4741 141.925H17.4741ZM26.0616 133.372H124.878V129.372H26.0616V133.372ZM124.878 133.372C129.619 133.372 133.466 137.216 133.466 141.925H137.466C137.466 134.994 131.816 129.372 124.878 129.372V133.372ZM133.466 141.925V150.176H137.466V141.925H133.466ZM133.466 150.176C133.466 154.886 129.619 158.729 124.878 158.729V162.729C131.816 162.729 137.466 157.107 137.466 150.176H133.466ZM38.51 144.083H25.5483V148.083H38.51V144.083ZM25.5483 148.083H38.51V144.083H25.5483V148.083ZM37.0324 150.645L30.5516 139.452L27.09 141.456L33.5708 152.649L37.0324 150.645ZM27.09 141.456L33.5708 152.649L37.0324 150.645L30.5516 139.452L27.09 141.456ZM30.5516 152.649L37.0324 141.456L33.5708 139.452L27.09 150.645L30.5516 152.649ZM33.5708 139.452L27.09 150.645L30.5516 152.649L37.0324 141.456L33.5708 139.452ZM59.2359 144.083H46.3384V148.083H59.2359V144.083ZM46.3384 148.083H59.2359V144.083H46.3384V148.083ZM57.758 150.645L51.2772 139.452L47.8156 141.456L54.2964 152.649L57.758 150.645ZM47.8156 141.456L54.2964 152.649L57.758 150.645L51.2772 139.452L47.8156 141.456ZM51.2772 152.649L57.758 141.456L54.2964 139.452L47.8156 150.645L51.2772 152.649ZM54.2964 139.452L47.8156 150.645L51.2772 152.649L57.758 141.456L54.2964 139.452Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M80.0266 148.083C81.1312 148.083 82.0266 147.187 82.0266 146.083C82.0266 144.978 81.1312 144.083 80.0266 144.083V148.083ZM67.0649 144.083C65.9604 144.083 65.0649 144.978 65.0649 146.083C65.0649 147.187 65.9604 148.083 67.0649 148.083V144.083ZM75.0233 152.649C75.5768 153.605 76.8004 153.931 77.7563 153.378C78.7122 152.824 79.0384 151.601 78.4849 150.645L75.0233 152.649ZM72.0041 139.452C71.4506 138.496 70.227 138.17 69.2711 138.723C68.3152 139.277 67.989 140.5 68.5425 141.456L72.0041 139.452ZM68.5425 150.645C67.989 151.601 68.3152 152.824 69.2711 153.378C70.227 153.931 71.4506 153.605 72.0041 152.649L68.5425 150.645ZM78.4849 141.456C79.0384 140.5 78.7122 139.277 77.7563 138.723C76.8004 138.17 75.5768 138.496 75.0233 139.452L78.4849 141.456ZM80.0266 144.083H67.0649V148.083H80.0266V144.083ZM78.4849 150.645L72.0041 139.452L68.5425 141.456L75.0233 152.649L78.4849 150.645ZM72.0041 152.649L78.4849 141.456L75.0233 139.452L68.5425 150.645L72.0041 152.649Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M100.752 148.083C101.857 148.083 102.752 147.187 102.752 146.083C102.752 144.978 101.857 144.083 100.752 144.083V148.083ZM87.7905 144.083C86.686 144.083 85.7905 144.978 85.7905 146.083C85.7905 147.187 86.686 148.083 87.7905 148.083V144.083ZM95.8127 152.649C96.3662 153.605 97.5898 153.931 98.5457 153.378C99.5016 152.824 99.8278 151.601 99.2743 150.645L95.8127 152.649ZM92.7935 139.452C92.24 138.496 91.0164 138.17 90.0605 138.723C89.1046 139.277 88.7784 140.5 89.3319 141.456L92.7935 139.452ZM89.3319 150.645C88.7784 151.601 89.1046 152.824 90.0605 153.378C91.0164 153.931 92.24 153.605 92.7935 152.649L89.3319 150.645ZM99.2743 141.456C99.8278 140.5 99.5016 139.277 98.5457 138.723C97.5898 138.17 96.3662 138.496 95.8127 139.452L99.2743 141.456ZM100.752 144.083H87.7905V148.083H100.752V144.083ZM99.2743 150.645L92.7935 139.452L89.3319 141.456L95.8127 152.649L99.2743 150.645ZM92.7935 152.649L99.2743 141.456L95.8127 139.452L89.3319 150.645L92.7935 152.649Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M122.376 148.083C123.481 148.083 124.376 147.187 124.376 146.083C124.376 144.978 123.481 144.083 122.376 144.083V148.083ZM109.415 144.083C108.31 144.083 107.415 144.978 107.415 146.083C107.415 147.187 108.31 148.083 109.415 148.083V144.083ZM117.373 152.649C117.926 153.605 119.15 153.931 120.106 153.378C121.062 152.824 121.388 151.601 120.835 150.645L117.373 152.649ZM114.354 139.452C113.8 138.496 112.577 138.17 111.621 138.723C110.665 139.277 110.339 140.5 110.892 141.456L114.354 139.452ZM110.892 150.645C110.339 151.601 110.665 152.824 111.621 153.378C112.577 153.931 113.8 153.605 114.354 152.649L110.892 150.645ZM120.835 141.456C121.388 140.5 121.062 139.277 120.106 138.723C119.15 138.17 117.926 138.496 117.373 139.452L120.835 141.456ZM122.376 144.083H109.415V148.083H122.376V144.083ZM120.835 150.645L114.354 139.452L110.892 141.456L117.373 152.649L120.835 150.645ZM114.354 152.649L120.835 141.456L117.373 139.452L110.892 150.645L114.354 152.649Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M85.6732 44.3876H126.291C131.36 44.3876 135.467 48.481 135.467 53.5338V112.632C135.467 117.685 131.36 121.778 126.291 121.778H24.5865C19.5173 121.778 15.4106 117.685 15.4106 112.632V53.5338C15.4106 48.481 19.5173 44.3876 24.5865 44.3876H65.1398",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M85.6729 52.9581H65.2037V34.2181C65.2037 28.5897 69.7596 23.9846 75.4704 23.9846C81.1171 23.9846 85.7371 28.5257 85.7371 34.2181V52.9581H85.6729Z",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M75.471 38.0556C77.6682 38.0556 79.4493 36.2802 79.4493 34.0902C79.4493 31.9001 77.6682 30.1247 75.471 30.1247C73.2738 30.1247 71.4927 31.9001 71.4927 34.0902C71.4927 36.2802 73.2738 38.0556 75.471 38.0556Z",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M51.2157 109.114C64.576 109.114 75.4066 98.3185 75.4066 85.0015C75.4066 71.6845 64.576 60.889 51.2157 60.889C37.8555 60.889 27.0249 71.6845 27.0249 85.0015C27.0249 98.3185 37.8555 109.114 51.2157 109.114Z",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M51.2158 89.6066C56.1063 89.6066 60.0708 85.6549 60.0708 80.7802C60.0708 75.9056 56.1063 71.9539 51.2158 71.9539C46.3254 71.9539 42.3608 75.9056 42.3608 80.7802C42.3608 85.6549 46.3254 89.6066 51.2158 89.6066Z",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,ra.jsx)("path",{d:"M67.578 102.782L68.9221 104.263C69.6769 103.578 69.7958 102.435 69.1981 101.61L67.578 102.782ZM34.853 102.782L33.2329 101.61C32.6352 102.435 32.7541 103.578 33.509 104.263L34.853 102.782ZM85.6733 71.1053C84.5688 71.1053 83.6733 72.0007 83.6733 73.1053C83.6733 74.2099 84.5688 75.1053 85.6733 75.1053V71.1053ZM120.773 75.1053C121.877 75.1053 122.773 74.2099 122.773 73.1053C122.773 72.0007 121.877 71.1053 120.773 71.1053V75.1053ZM85.6733 81.8505C84.5688 81.8505 83.6733 82.7459 83.6733 83.8505C83.6733 84.955 84.5688 85.8505 85.6733 85.8505V81.8505ZM120.773 85.8505C121.877 85.8505 122.773 84.955 122.773 83.8505C122.773 82.7459 121.877 81.8505 120.773 81.8505V85.8505ZM85.6733 92.5955C84.5688 92.5955 83.6733 93.4909 83.6733 94.5955C83.6733 95.7001 84.5688 96.5955 85.6733 96.5955V92.5955ZM120.773 96.5955C121.877 96.5955 122.773 95.7001 122.773 94.5955C122.773 93.4909 121.877 92.5955 120.773 92.5955V96.5955ZM51.2155 111.114C58.0246 111.114 64.273 108.482 68.9221 104.263L66.234 101.301C62.2848 104.885 56.9831 107.114 51.2155 107.114V111.114ZM69.1981 101.61C65.1754 96.0522 58.6128 92.4676 51.2155 92.4676V96.4676C57.2932 96.4676 62.6657 99.4068 65.9579 103.955L69.1981 101.61ZM51.2155 92.4676C43.8182 92.4676 37.2557 96.0522 33.2329 101.61L36.4731 103.955C39.7654 99.4068 45.1378 96.4676 51.2155 96.4676V92.4676ZM33.509 104.263C38.1581 108.482 44.4065 111.114 51.2155 111.114V107.114C45.4479 107.114 40.1463 104.885 36.1971 101.301L33.509 104.263ZM85.6733 75.1053H120.773V71.1053H85.6733V75.1053ZM120.773 71.1053H85.6733V75.1053H120.773V71.1053ZM85.6733 85.8505H120.773V81.8505H85.6733V85.8505ZM120.773 81.8505H85.6733V85.8505H120.773V81.8505ZM85.6733 96.5955H120.773V92.5955H85.6733V96.5955ZM120.773 92.5955H85.6733V96.5955H120.773V92.5955Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{d:"M204.905 160.729C204.905 159.625 204.01 158.729 202.905 158.729C201.801 158.729 200.905 159.625 200.905 160.729H204.905ZM200.905 164.759C200.905 165.863 201.801 166.759 202.905 166.759C204.01 166.759 204.905 165.863 204.905 164.759H200.905ZM204.905 173.137C204.905 172.033 204.01 171.137 202.905 171.137C201.801 171.137 200.905 172.033 200.905 173.137H204.905ZM200.905 177.487C200.905 178.591 201.801 179.487 202.905 179.487C204.01 179.487 204.905 178.591 204.905 177.487H200.905ZM211.247 171.108C212.352 171.108 213.247 170.212 213.247 169.108C213.247 168.003 212.352 167.108 211.247 167.108V171.108ZM207.269 167.108C206.164 167.108 205.269 168.003 205.269 169.108C205.269 170.212 206.164 171.108 207.269 171.108V167.108ZM198.542 171.108C199.647 171.108 200.542 170.212 200.542 169.108C200.542 168.003 199.647 167.108 198.542 167.108V171.108ZM194.5 167.108C193.395 167.108 192.5 168.003 192.5 169.108C192.5 170.212 193.395 171.108 194.5 171.108V167.108ZM200.905 160.729V164.759H204.905V160.729H200.905ZM200.905 173.137V177.487H204.905V173.137H200.905ZM211.247 167.108H207.269V171.108H211.247V167.108ZM198.542 167.108H194.5V171.108H198.542V167.108Z",fill:"#2EE5C0"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M138.482 49.5682L185.965 76.8787C191.547 80.0767 193.472 87.1761 190.2 92.101L163.699 137.832C160.427 143.972 153.368 145.891 147.786 142.693L142.011 139.367L138.931 144.611C138.546 145.187 137.84 145.379 137.327 145.059L133.99 143.14L129.242 151.327C129.049 151.711 128.664 151.967 128.279 152.095L116.922 155.484C116.087 155.74 115.574 156.7 115.767 157.531L118.269 167.509C118.462 168.34 117.948 169.236 117.114 169.491L107.04 172.561C106.206 172.881 105.692 173.777 105.885 174.608L108.452 184.522C108.708 185.353 108.131 186.249 107.297 186.505L97.1582 189.639C96.3241 189.958 95.8107 190.854 96.0032 191.685L98.6982 201.983C98.9549 202.814 98.3774 203.71 97.5432 203.965C97.5432 203.965 90.2924 206.204 84.6457 208.059C78.999 209.914 76.1757 207.099 75.149 203.773C74.1224 200.384 71.2349 189.702 71.2349 189.702C71.1707 189.319 71.2349 188.871 71.4274 188.487L106.783 127.47L103.254 125.424C102.677 125.104 102.484 124.336 102.805 123.761L105.885 118.516L100.367 115.382C94.8482 112.12 92.9232 105.085 96.1316 99.5202L122.568 53.7895C125.841 48.289 132.899 46.3703 138.482 49.5682ZM144 76.2392C141.433 80.6523 142.973 86.2807 147.401 88.8391C151.828 91.3975 157.475 89.8624 160.042 85.4493C162.608 81.0361 161.068 75.4077 156.641 72.8493C152.213 70.291 146.567 71.826 144 76.2392Z",fill:"#00236B"}),(0,ra.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M129.755 57.3713L182.115 61.5286C187.954 61.8484 192.702 67.0291 192.638 73.2331V121.522C192.638 127.598 187.89 132.459 181.986 132.459H175.762V138.279C175.762 138.919 175.313 139.431 174.736 139.431H171.142V149.216C171.142 149.664 170.95 150.048 170.693 150.368L163.057 158.746C162.48 159.386 162.48 160.345 163.057 160.985L169.795 168.02C170.372 168.596 170.372 169.619 169.795 170.259L163.057 177.87C162.48 178.51 162.48 179.533 163.057 180.109L169.795 186.952C170.372 187.528 170.372 188.551 169.795 189.191L163.057 196.994C162.48 197.633 162.48 198.657 163.057 199.232L170.116 206.268C170.693 206.844 170.693 207.867 170.116 208.507C170.116 208.507 165.303 214.199 161.517 218.612C157.731 223.025 154.074 222.322 151.636 220.083C149.197 217.845 141.561 210.553 141.561 210.553C141.305 210.233 141.112 209.85 141.112 209.402V140.006H137.134C136.492 140.006 135.979 139.431 135.979 138.791V132.779H129.755C123.338 132.779 118.141 127.534 118.141 121.138V68.3083C118.141 61.9124 123.402 56.9875 129.755 57.3713ZM147.465 78.2858C147.465 83.2746 151.507 87.432 156.384 87.6238C161.261 87.8157 165.175 83.9142 165.175 78.9894C165.175 74.0645 161.261 69.9072 156.384 69.6514C151.443 69.4595 147.465 73.297 147.465 78.2858Z",fill:"#007CE9"}),(0,ra.jsx)("path",{d:"M149.839 0C126.995 0 108.451 18.4842 108.451 41.2536C108.451 50.5276 111.467 59.354 117.114 66.5174L119.873 61.8484C115.702 55.8362 113.456 48.7368 113.456 41.2536C113.456 21.2344 129.755 4.98881 149.839 4.98881C169.923 4.98881 186.221 21.2344 186.221 41.2536C186.221 61.2728 169.859 77.4544 149.839 77.4544C149.069 77.4544 148.17 77.3904 147.529 77.3904C147.465 77.9661 147.336 78.6696 147.465 80.0767C147.593 81.3559 148.042 82.3792 148.042 82.3792C148.94 82.4432 148.876 82.4432 149.775 82.4432C172.618 82.4432 191.162 63.959 191.162 41.1896C191.162 18.4202 172.618 0 149.839 0Z",fill:"#00236B"}),(0,ra.jsx)("path",{opacity:"0.2",d:"M161.581 218.548C165.367 214.135 170.18 208.443 170.18 208.443C170.757 207.803 170.757 206.78 170.18 206.204L163.121 199.168C162.544 198.593 162.544 197.569 163.121 196.93L169.859 189.127C170.436 188.487 170.436 187.464 169.859 186.888L163.121 180.045C162.544 179.469 162.544 178.446 163.121 177.806L169.859 170.195C170.436 169.555 170.436 168.532 169.859 167.956L163.121 160.921C162.544 160.281 162.544 159.322 163.121 158.682L170.757 150.304C171.014 149.984 171.206 149.6 171.206 149.152V141.413C171.206 140.262 170.308 139.367 169.153 139.367L162.48 140.006C159.079 140.006 156.384 142.757 156.384 146.082V218.74C156.384 220.403 158.309 221.426 159.656 220.403C160.298 219.955 160.94 219.316 161.581 218.548Z",fill:"#00236B"})]})]})})};function rY(){return rY=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},rY.apply(this,arguments)}var oY,aY=function(t){return e.createElement("svg",rY({viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),eY||(eY=e.createElement("path",{d:"M0 16C0 7.163 7.163 0 16 0s16 7.163 16 16-7.163 16-16 16S0 24.837 0 16z",fill:"#5282FF"})),tY||(tY=e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M24 9.5c0 .828-1.343 1.5-3 1.5s-3-.672-3-1.5S19.343 8 21 8s3 .672 3 1.5zM13 19.6v2.7c0 .9 1.3 1.6 3 1.6s3-.7 3-1.6v-2.7c-.8.7-1.9 1-3 1s-2.2-.3-3-1zm5-8.6v-.4c.8.7 1.9 1 3 1s2.2-.3 3-1v2.8c0 .8-1.2 1.5-2.8 1.6l-2.475 2.871c.176.192.275.405.275.629 0 .828-1.343 1.5-3 1.5s-3-.672-3-1.5a.9.9 0 01.232-.58L10.8 15.1C9.3 15 8 14.3 8 13.5v-2.9c.8.7 1.9 1 3 1s2.2-.3 3-1v.4h4zm-.276 6.272A5.27 5.27 0 0016 17c-.265 0-.522.017-.766.05a5.994 5.994 0 00-1.134.25L12 14.9c1.1-.2 2-.8 2-1.5V12h4v1.4c0 .7.7 1.3 1.8 1.5l-2.076 2.372zM14 9.5c0 .828-1.343 1.5-3 1.5s-3-.672-3-1.5S9.343 8 11 8s3 .672 3 1.5z",fill:"#fff"})))};function sY(){return sY=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},sY.apply(this,arguments)}var uY,lY=function(t){return e.createElement("svg",sY({"aria-hidden":"true","data-prefix":"fas","data-icon":"eye",className:"show_svg__svg-inline--fa show_svg__fa-eye",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},t),oY||(oY=e.createElement("path",{fill:"currentColor",d:"M572.5 238.1C518.3 115.5 410.9 32 288 32S57.69 115.6 3.469 238.1C1.563 243.4 0 251 0 256c0 4.977 1.562 12.6 3.469 17.03C57.72 396.5 165.1 480 288 480s230.3-83.58 284.5-206.1c1.9-5.3 3.5-13.8 3.5-17.9 0-5-1.6-12.6-3.5-17.9zM432 256c0 79.45-64.47 144-143.9 144-79.5 0-144.1-64.5-144.1-144s64.5-144 144-144 144 64.5 144 144zm-144-96c-2.3 0-5.6.4-8.5.8 5.3 9.2 8.5 19.8 8.5 31.2 0 35.35-28.65 64-64 64-11.4 0-22.9-3.3-31.3-8.5-.3 3-.7 6.1-.7 8.5 0 52.1 43 96 96 96s96-42.99 96-95.99S340.1 160 288 160z"})))};function cY(){return cY=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},cY.apply(this,arguments)}var dY,hY=function(t){return e.createElement("svg",cY({"aria-hidden":"true","data-prefix":"fas","data-icon":"eye-slash",className:"hide_svg__svg-inline--fa hide_svg__fa-eye-slash",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},t),uY||(uY=e.createElement("path",{fill:"currentColor",d:"M325.1 351.5l-99.3-77.9c8.303 44.56 47.26 78.37 94.22 78.37 1.78.03 3.38-.37 5.08-.47zM320 400c-79.5 0-144-64.52-144-143.1 0-6.789 1.09-13.28 1.1-19.82L81.28 160.4c-17.77 23.75-33.27 50.04-45.81 78.59C33.56 243.4 31.1 251 31.1 256c0 4.977 1.563 12.6 3.469 17.03 54.25 123.4 161.6 206.1 284.5 206.1 45.46 0 88.77-11.49 128.1-32.14l-74.5-58.4C356.1 396.1 338.1 400 320 400zm310.8 69.1l-103.5-81.11c31.37-31.96 57.77-70.75 77.21-114.1 1.906-4.43 3.469-12.07 3.469-17.03 0-4.976-1.562-12.6-3.469-17.03-54.25-123.4-161.6-206.1-284.5-206.1-62.69 0-121.2 21.94-170.8 59.62L38.81 5.116C34.41 1.679 29.19 0 24.03 0 16.91 0 9.839 3.158 5.121 9.189c-8.187 10.44-6.37 25.53 4.068 33.7l591.1 463.1c10.5 8.203 25.57 6.333 33.69-4.073C643.1 492.4 641.2 477.3 630.8 469.1zM463.1 256c0 24.85-6.705 47.98-17.95 68.27l-38.55-30.23c5.24-11.68 8.495-24.42 8.495-38.08 0-52.1-43-96-95.1-96-2.301.03-5.575.444-8.461.766C316.8 170 319.1 180.6 319.1 192c0 10.17-2.561 19.67-6.821 28.16L223.6 149.9c25.46-23.38 59.12-37.93 96.42-37.93C399.5 112 463.1 176.6 463.1 256z"})))};function fY(){return fY=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},fY.apply(this,arguments)}var pY=function(t){return e.createElement("svg",fY({"aria-hidden":"true","data-prefix":"fas","data-icon":"xmark",className:"close_svg__svg-inline--fa close_svg__fa-xmark",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512"},t),dY||(dY=e.createElement("path",{fill:"currentColor",d:"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25-6.2 6.25-14.4 9.35-22.6 9.35s-16.38-3.125-22.62-9.375L160 301.3 54.63 406.6C48.38 412.9 40.19 416 32 416s-16.37-3.1-22.625-9.4c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"})))},gY=(0,ct.Z)("authentication");var vY=function(t){var n=t.returnUrl,i=t.closable,r=void 0!==i&&i,o=Q(),a=st(),s=jh((function(e){return e.authentication})).error,u=(0,e.useState)(""),l=(0,Ti.Z)(u,2),c=l[0],d=l[1],h=(0,e.useState)(""),f=(0,Ti.Z)(h,2),p=f[0],g=f[1],v=(0,e.useState)(""),m=(0,Ti.Z)(v,2),_=m[0],y=m[1],b=(0,e.useState)(""),w=(0,Ti.Z)(b,2),C=w[0],k=w[1],S=(0,e.useState)(!1),x=(0,Ti.Z)(S,2),L=x[0],E=x[1];(0,e.useEffect)((function(){var e,t,n,i;null!==s&&void 0!==s&&null!==(e=s.data)&&void 0!==e&&null!==(t=e.error)&&void 0!==t&&t.includes("user")&&y(s.data.error),null!==s&&void 0!==s&&null!==(n=s.data)&&void 0!==n&&null!==(i=n.error)&&void 0!==i&&i.includes("password")&&k(s.data.error)}),[s]);var N=function(){o(Fi(c,p)).then((function(){n&&a.replace(decodeURI(n))}))},D=function(e){13===e.keyCode&&N()};return(0,ra.jsxs)("section",{className:gY(),children:[(0,ra.jsxs)("form",{className:gY("form-wrapper"),children:[(0,ra.jsxs)("div",{className:gY("header"),children:[(0,ra.jsxs)("div",{className:gY("logo"),children:[(0,ra.jsx)(kd.J,{data:aY,size:24}),"YDB"]}),(0,ra.jsx)(Sd.r,{href:"http://ydb.tech/docs",target:"_blank",children:"Documentation"})]}),(0,ra.jsx)("h2",{className:gY("title"),children:"Sign in"}),(0,ra.jsx)("div",{className:gY("field-wrapper"),children:(0,ra.jsx)(hd.o,{value:c,onUpdate:function(e){d(e),y("")},placeholder:"Username",error:_,onKeyDown:D,size:"l",autoFocus:!0})}),(0,ra.jsxs)("div",{className:gY("field-wrapper"),children:[(0,ra.jsx)(hd.o,{value:p,onUpdate:function(e){g(e),k("")},type:L?"text":"password",placeholder:"Password",error:C,onKeyDown:D,size:"l"}),(0,ra.jsx)(dd.z,{onClick:function(){E((function(e){return!e}))},size:"l",className:gY("show-password-button"),children:(0,ra.jsx)(kd.J,{data:L?hY:lY,size:16})})]}),(0,ra.jsx)(dd.z,{view:"action",onClick:N,width:"max",size:"l",disabled:Boolean(!c||_||C),className:gY("button-sign-in"),children:"Sign in"})]}),r&&a.length>1&&(0,ra.jsx)(dd.z,{onClick:function(){a.go(-1)},className:gY("close"),children:(0,ra.jsx)(kd.J,{data:pY,size:24})})]})},mY=(0,ct.Z)("app");function _Y(t){var n=t.singleClusterMode,i=location.pathname.includes("/clusters")||!n&&"/"===location.pathname;return(0,ra.jsxs)(e.Fragment,{children:[!i&&(0,ra.jsx)(nY,{clusterName:t.clusterName}),(0,ra.jsx)("main",{className:mY("main"),children:t.children||(0,ra.jsxs)(ot,{children:[(0,ra.jsx)(Je,{path:cd.cluster,component:Hp}),(0,ra.jsx)(Je,{path:cd.tenant,component:OW}),(0,ra.jsx)(Je,{path:cd.pdisk,component:aV}),(0,ra.jsx)(Je,{path:cd.node,component:iV}),(0,ra.jsx)(Je,{path:cd.group,component:mV}),(0,ra.jsx)(Je,{path:cd.pool,component:DV}),(0,ra.jsx)(Je,{path:cd.tablet,component:WV}),(0,ra.jsx)(Je,{path:cd.tabletsFilters,component:GV}),(0,ra.jsx)(qe,{to:ld(cd.cluster,{activeTab:ud.tenants.id})})]})}),(0,ra.jsx)(QV,{}),(0,ra.jsx)(iY,{})]})}var yY,bY=U((function(e){return{theme:Ni(e,Zn),isAuthenticated:e.authentication.isAuthenticated,singleClusterMode:e.singleClusterMode}}))((function(e){var t=e.theme,n=e.singleClusterMode,i=e.isAuthenticated;return(0,ra.jsx)(YH.Consumer,{children:function(r){return(0,ra.jsx)(ze,{history:r,children:(0,ra.jsxs)(ot,{children:[(0,ra.jsx)(Je,{path:cd.auth,children:(0,ra.jsx)(vY,{closable:!0})}),(0,ra.jsx)(Je,{children:(0,ra.jsx)(dt.f,{theme:t,children:(0,ra.jsx)("div",{className:mY({embedded:n}),children:i?e.children:(0,ra.jsx)(vY,{})})})})]})})}})})),wY=n(99507),CY="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self?self:{},kY={},SY={exports:{}};SY.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var i=n(1);t.ERROR_BLOCK_NAME_TYPE="Block name should be a string",t.ERROR_BLOCK_NAME_EMPTY="Block name should be non-empty";var r={ns:"",el:"__",mod:"_",modValue:"_"},o=function(e){return"string"==typeof e},a=function(e){return"string"!=typeof e},s=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=i.assign({},t);return o.mixes=o.mixes.concat(n),d(o,e)},u=function(e,t,n){for(var r=[],o=3;o<arguments.length;o++)r[o-3]=arguments[o];var a=i.assign({},t),s=i.assign({},a.states||{});return s[n]=i.assign.apply(void 0,[{},s[n]||{}].concat(r)),a.states=s,d(a,e)},l=function(e,t,n,i){return String.prototype.split.call(c(e,t),n,i)},c=function(e,t){var n=t.name,i=t.mods,r=t.mixes,o=t.states,a=[n];if(i&&(a=a.concat(Object.keys(i).filter((function(e){return i[e]})).map((function(t){var r=i[t];return!0===r?n+e.mod+t:n+e.mod+t+e.modValue+r})))),o&&Object.keys(o).forEach((function(e){var t=o[e];a=a.concat(Object.keys(t).filter((function(e){return t[e]})).map((function(t){return e+t})))})),e.ns&&(a=a.map((function(t){return e.ns+t}))),r&&(a=a.concat(function(e){return void 0===e&&(e=[]),e.map((function(e){return Array.isArray(e)?e.join(" "):"object"==typeof e&&null!==e||"function"==typeof e?e.toString():"string"==typeof e?e:""})).filter((function(e){return!!e}))}(r))),e.classMap){var s=e.classMap;a=a.map((function(e){return s[e]||e}))}return a.join(" ")},d=function(e,t){return{mix:s.bind(null,t,e),split:l.bind(null,t,e),is:u.bind(null,t,e,"is-"),has:u.bind(null,t,e,"has-"),state:u.bind(null,t,e,"is-"),toString:c.bind(null,t,e)}},h=function(e,t){var n={name:e,mods:{},mixes:[],states:{"is-":{},"has-":{}}},r=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!n.length)return c(e,t);var s=i.assign({},t),u=n.filter(o).reduce((function(t,n){return t+e.el+n}),"");u&&(s.name=s.name+u);var l=n.filter(a).reduce((function(e,t){return i.assign(e,t)}),{});return s.mods=i.assign({},s.mods,l),d(s,e)}.bind(null,t,n);return r.mix=s.bind(null,t,n),r.split=l.bind(null,t,n),r.is=u.bind(null,t,n,"is-"),r.has=u.bind(null,t,n,"has-"),r.state=u.bind(null,t,n,"is-"),r.toString=c.bind(null,t,n),r};t.setup=function(e){return void 0===e&&(e={}),function(n){if("string"!=typeof n)throw new Error(t.ERROR_BLOCK_NAME_TYPE);var o=n.trim();if(!o)throw new Error(t.ERROR_BLOCK_NAME_EMPTY);return h(o,i.assign({},r,e))}},t.block=t.setup(),t.default=t.block},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.assign=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var i=0;i<t.length;i++){var r=t[i];for(var o in r)r.hasOwnProperty(o)&&(e[o]=r[o])}return e}}]),Object.defineProperty(kY,"__esModule",{value:!0});var xY=SY.exports,LY=xY.setup();function EY(e){var t=LY(e);function n(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var i,r=e.shift(),o=e[0],a=e[1];return"string"===typeof r&&"string"!==typeof o||(a=o,o=null),i=t(r,o),a&&(i=i.mix(a)),i.toString()}return n.builder=function(){return t},n}EY.setup=function(e){LY=xY.setup(e)},EY.reset=function(){LY=xY.setup()};var NY=kY.default=EY,DY="ycn-";function MY(e){return NY("".concat(DY).concat(e))}function TY(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!==typeof document){var i=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}TY(".ycn-action-bar-group {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n margin: 0;\n padding: 0;\n}\n.ycn-action-bar-group_pull_left {\n margin-left: 0;\n margin-right: auto;\n}\n.ycn-action-bar-group_pull_right {\n margin-left: auto;\n margin-right: 0;\n}\n.ycn-action-bar-group_pull_center {\n margin-left: auto;\n margin-right: auto;\n}");var OY=MY("action-bar-group"),IY=function(t){var n=t.children,i=t.className,r=t.pull;return e.createElement("ul",{className:OY({pull:r},i),role:"group"},n)};IY.displayName="ActionBar.Group";TY(".ycn-action-bar-item {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.ycn-action-bar-item_pull_left {\n margin-left: 0;\n margin-right: auto;\n}\n.ycn-action-bar-item_pull_right {\n margin-left: auto;\n margin-right: 0;\n}\n.ycn-action-bar-item_pull_center {\n margin-left: auto;\n margin-right: auto;\n}\n.ycn-action-bar-item + .ycn-action-bar-item_spacing {\n margin-left: 8px;\n}");var AY=MY("action-bar-item"),RY=function(t){var n=t.children,i=t.className,r=t.pull,o=t.spacing,a=void 0===o||o;return e.createElement("li",{className:AY({pull:r,spacing:a},i)},n)};RY.displayName="ActionBar.Item";TY(".ycn-action-bar-section {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n align-items: stretch;\n}\n.ycn-action-bar-section + .ycn-action-bar-section {\n border-left: solid 1px var(--yc-color-line-generic);\n}\n.ycn-action-bar-section_type_primary {\n flex: 1 1 auto;\n padding-left: 20px;\n padding-right: 20px;\n}\n.ycn-action-bar-section_type_secondary {\n padding-left: 6px;\n padding-right: 6px;\n}");var PY=MY("action-bar-section"),ZY=function(t){var n=t.children,i=t.type,r=void 0===i?"primary":i;return e.createElement("div",{className:PY({type:r})},n)};ZY.displayName="ActionBar.Section";TY(".ycn-action-bar-separator {\n list-style: none;\n margin: 0;\n padding: 0;\n margin-left: 6px;\n margin-right: 6px;\n border-right: solid 1px var(--yc-color-line-generic);\n height: 40px;\n}");var FY=MY("action-bar-separator"),jY=function(){return e.createElement("li",{role:"separator",className:FY()})};jY.displayName="ActionBar.Separator";TY(".ycn-action-bar {\n box-sizing: border-box;\n height: 40px;\n border-bottom: solid 1px var(--yc-color-line-generic);\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n align-items: stretch;\n}");var HY=MY("action-bar"),BY=function(t){var n=t.children,i=t.className,r=t["aria-label"];return e.createElement("section",{className:HY(null,i),"aria-label":r},n)};BY.displayName="ActionBar";var zY;Object.assign(BY,{Section:ZY,Group:IY,Item:RY,Separator:jY});!function(e){e.ExpandButton="button_expand",e.CollapseButton="button_collapse",e.MoreButton="button_more"}(zY||(zY={}));var WY=56,VY=(yY={},(0,ht.Z)(yY,zY.CollapseButton,"Collapse"),(0,ht.Z)(yY,zY.ExpandButton,"Expand"),(0,ht.Z)(yY,zY.MoreButton,"More"),yY);function YY(){return YY=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},YY.apply(this,arguments)}function UY(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}function KY(e,t){return KY=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},KY(e,t)}function qY(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,KY(e,t)}var GY,$Y,QY,XY;function JY(){if($Y)return GY;$Y=1;return GY="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}function eU(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}(function(){if(XY)return QY;XY=1;var e=JY();function t(){}function n(){}return n.resetWarningCache=t,QY=function(){function i(t,n,i,r,o,a){if(a!==e){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function r(){return i}i.isRequired=i;var o={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:r,element:i,elementType:i,instanceOf:r,node:i,objectOf:r,oneOf:r,oneOfType:r,shape:r,exact:r,checkPropTypes:n,resetWarningCache:t};return o.PropTypes=o,o}})()();var tU=!1,nU=e.createContext(null),iU=function(e){return e.scrollTop},rU="unmounted",oU="exited",aU="entering",sU="entered",uU="exiting",lU=function(n){function i(e,t){var i;i=n.call(this,e,t)||this;var r,o=t&&!t.isMounting?e.enter:e.appear;return i.appearStatus=null,e.in?o?(r=oU,i.appearStatus=aU):r=sU:r=e.unmountOnExit||e.mountOnEnter?rU:oU,i.state={status:r},i.nextCallback=null,i}qY(i,n),i.getDerivedStateFromProps=function(e,t){return e.in&&t.status===rU?{status:oU}:null};var r=i.prototype;return r.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},r.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==aU&&n!==sU&&(t=aU):n!==aU&&n!==sU||(t=uU)}this.updateStatus(!1,t)},r.componentWillUnmount=function(){this.cancelNextCallback()},r.getTimeouts=function(){var e,t,n,i=this.props.timeout;return e=t=n=i,null!=i&&"number"!==typeof i&&(e=i.exit,t=i.enter,n=void 0!==i.appear?i.appear:t),{exit:e,enter:t,appear:n}},r.updateStatus=function(e,n){if(void 0===e&&(e=!1),null!==n)if(this.cancelNextCallback(),n===aU){if(this.props.unmountOnExit||this.props.mountOnEnter){var i=this.props.nodeRef?this.props.nodeRef.current:t.findDOMNode(this);i&&iU(i)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===oU&&this.setState({status:rU})},r.performEnter=function(e){var n=this,i=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[t.findDOMNode(this),r],a=o[0],s=o[1],u=this.getTimeouts(),l=r?u.appear:u.enter;!e&&!i||tU?this.safeSetState({status:sU},(function(){n.props.onEntered(a)})):(this.props.onEnter(a,s),this.safeSetState({status:aU},(function(){n.props.onEntering(a,s),n.onTransitionEnd(l,(function(){n.safeSetState({status:sU},(function(){n.props.onEntered(a,s)}))}))})))},r.performExit=function(){var e=this,n=this.props.exit,i=this.getTimeouts(),r=this.props.nodeRef?void 0:t.findDOMNode(this);n&&!tU?(this.props.onExit(r),this.safeSetState({status:uU},(function(){e.props.onExiting(r),e.onTransitionEnd(i.exit,(function(){e.safeSetState({status:oU},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:oU},(function(){e.props.onExited(r)}))},r.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},r.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},r.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(i){n&&(n=!1,t.nextCallback=null,e(i))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},r.onTransitionEnd=function(e,n){this.setNextCallback(n);var i=this.props.nodeRef?this.props.nodeRef.current:t.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(i&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[i,this.nextCallback],a=o[0],s=o[1];this.props.addEndListener(a,s)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},r.render=function(){var t=this.state.status;if(t===rU)return null;var n=this.props,i=n.children;n.in,n.mountOnEnter,n.unmountOnExit,n.appear,n.enter,n.exit,n.timeout,n.addEndListener,n.onEnter,n.onEntering,n.onEntered,n.onExit,n.onExiting,n.onExited,n.nodeRef;var r=UY(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return e.createElement(nU.Provider,{value:null},"function"===typeof i?i(t,r):e.cloneElement(e.Children.only(i),r))},i}(e.Component);function cU(){}lU.contextType=nU,lU.propTypes={},lU.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:cU,onEntering:cU,onEntered:cU,onExit:cU,onExiting:cU,onExited:cU},lU.UNMOUNTED=rU,lU.EXITED=oU,lU.ENTERING=aU,lU.ENTERED=sU,lU.EXITING=uU;var dU=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return i=t,void((n=e).classList?n.classList.add(i):function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}(n,i)||("string"===typeof n.className?n.className=n.className+" "+i:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+i)));var n,i}))},hU=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return i=t,void((n=e).classList?n.classList.remove(i):"string"===typeof n.className?n.className=eU(n.className,i):n.setAttribute("class",eU(n.className&&n.className.baseVal||"",i)));var n,i}))},fU=function(t){function n(){for(var e,n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return(e=t.call.apply(t,[this].concat(i))||this).appliedClasses={appear:{},enter:{},exit:{}},e.onEnter=function(t,n){var i=e.resolveArguments(t,n),r=i[0],o=i[1];e.removeClasses(r,"exit"),e.addClass(r,o?"appear":"enter","base"),e.props.onEnter&&e.props.onEnter(t,n)},e.onEntering=function(t,n){var i=e.resolveArguments(t,n),r=i[0],o=i[1]?"appear":"enter";e.addClass(r,o,"active"),e.props.onEntering&&e.props.onEntering(t,n)},e.onEntered=function(t,n){var i=e.resolveArguments(t,n),r=i[0],o=i[1]?"appear":"enter";e.removeClasses(r,o),e.addClass(r,o,"done"),e.props.onEntered&&e.props.onEntered(t,n)},e.onExit=function(t){var n=e.resolveArguments(t)[0];e.removeClasses(n,"appear"),e.removeClasses(n,"enter"),e.addClass(n,"exit","base"),e.props.onExit&&e.props.onExit(t)},e.onExiting=function(t){var n=e.resolveArguments(t)[0];e.addClass(n,"exit","active"),e.props.onExiting&&e.props.onExiting(t)},e.onExited=function(t){var n=e.resolveArguments(t)[0];e.removeClasses(n,"exit"),e.addClass(n,"exit","done"),e.props.onExited&&e.props.onExited(t)},e.resolveArguments=function(t,n){return e.props.nodeRef?[e.props.nodeRef.current,t]:[t,n]},e.getClassNames=function(t){var n=e.props.classNames,i="string"===typeof n,r=i?""+(i&&n?n+"-":"")+t:n[t];return{baseClassName:r,activeClassName:i?r+"-active":n[t+"Active"],doneClassName:i?r+"-done":n[t+"Done"]}},e}qY(n,t);var i=n.prototype;return i.addClass=function(e,t,n){var i=this.getClassNames(t)[n+"ClassName"],r=this.getClassNames("enter").doneClassName;"appear"===t&&"done"===n&&r&&(i+=" "+r),"active"===n&&e&&iU(e),i&&(this.appliedClasses[t][n]=i,dU(e,i))},i.removeClasses=function(e,t){var n=this.appliedClasses[t],i=n.base,r=n.active,o=n.done;this.appliedClasses[t]={},i&&hU(e,i),r&&hU(e,r),o&&hU(e,o)},i.render=function(){var t=this.props;t.classNames;var n=UY(t,["classNames"]);return e.createElement(lU,YY({},n,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},n}(e.Component);function pU(t,n){var i=Object.create(null);return t&&e.Children.map(t,(function(e){return e})).forEach((function(t){i[t.key]=function(t){return n&&(0,e.isValidElement)(t)?n(t):t}(t)})),i}function gU(e,t,n){return null!=n[t]?n[t]:e.props[t]}function vU(t,n,i){var r=pU(t.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var i,r=Object.create(null),o=[];for(var a in e)a in t?o.length&&(r[a]=o,o=[]):o.push(a);var s={};for(var u in t){if(r[u])for(i=0;i<r[u].length;i++){var l=r[u][i];s[r[u][i]]=n(l)}s[u]=n(u)}for(i=0;i<o.length;i++)s[o[i]]=n(o[i]);return s}(n,r);return Object.keys(o).forEach((function(a){var s=o[a];if((0,e.isValidElement)(s)){var u=a in n,l=a in r,c=n[a],d=(0,e.isValidElement)(c)&&!c.props.in;!l||u&&!d?l||!u||d?l&&u&&(0,e.isValidElement)(c)&&(o[a]=(0,e.cloneElement)(s,{onExited:i.bind(null,s),in:c.props.in,exit:gU(s,"exit",t),enter:gU(s,"enter",t)})):o[a]=(0,e.cloneElement)(s,{in:!1}):o[a]=(0,e.cloneElement)(s,{onExited:i.bind(null,s),in:!0,exit:gU(s,"exit",t),enter:gU(s,"enter",t)})}})),o}fU.defaultProps={classNames:""},fU.propTypes={};var mU=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},_U=function(t){function n(e,n){var i,r=(i=t.call(this,e,n)||this).handleExited.bind(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(i));return i.state={contextValue:{isMounting:!0},handleExited:r,firstRender:!0},i}qY(n,t);var i=n.prototype;return i.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},i.componentWillUnmount=function(){this.mounted=!1},n.getDerivedStateFromProps=function(t,n){var i,r,o=n.children,a=n.handleExited;return{children:n.firstRender?(i=t,r=a,pU(i.children,(function(t){return(0,e.cloneElement)(t,{onExited:r.bind(null,t),in:!0,appear:gU(t,"appear",i),enter:gU(t,"enter",i),exit:gU(t,"exit",i)})}))):vU(t,o,a),firstRender:!1}},i.handleExited=function(e,t){var n=pU(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=YY({},t.children);return delete n[e.key],{children:n}})))},i.render=function(){var t=this.props,n=t.component,i=t.childFactory,r=UY(t,["component","childFactory"]),o=this.state.contextValue,a=mU(this.state.children).map(i);return delete r.appear,delete r.enter,delete r.exit,null===n?e.createElement(nU.Provider,{value:o},a):e.createElement(nU.Provider,{value:o},e.createElement(n,r,a))},n}(e.Component);_U.propTypes={},_U.defaultProps={component:"div",childFactory:function(e){return e}};var yU,bU,wU=function(n){function i(){for(var e,t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return(e=n.call.apply(n,[this].concat(i))||this).handleEnter=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onEnter",0,n)},e.handleEntering=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onEntering",0,n)},e.handleEntered=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onEntered",0,n)},e.handleExit=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onExit",1,n)},e.handleExiting=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onExiting",1,n)},e.handleExited=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onExited",1,n)},e}qY(i,n);var r=i.prototype;return r.handleLifecycle=function(n,i,r){var o,a=this.props.children,s=e.Children.toArray(a)[i];if(s.props[n]&&(o=s.props)[n].apply(o,r),this.props[n]){var u=s.props.nodeRef?void 0:t.findDOMNode(this);this.props[n](u)}},r.render=function(){var t=this.props,n=t.children,i=t.in,r=UY(t,["children","in"]),o=e.Children.toArray(n),a=o[0],s=o[1];return delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,e.createElement(_U,r,i?e.cloneElement(a,{key:"first",onEnter:this.handleEnter,onEntering:this.handleEntering,onEntered:this.handleEntered}):e.cloneElement(s,{key:"second",onEnter:this.handleExit,onEntering:this.handleExiting,onEntered:this.handleExited}))},i}(e.Component);wU.propTypes={};var CU="out-in",kU="in-out",SU=function(e,t,n){return function(){var i;e.props[t]&&(i=e.props)[t].apply(i,arguments),n()}},xU=((yU={})[CU]=function(t){var n=t.current,i=t.changeState;return e.cloneElement(n,{in:!1,onExited:SU(n,"onExited",(function(){i(aU,null)}))})},yU[kU]=function(t){var n=t.current,i=t.changeState,r=t.children;return[n,e.cloneElement(r,{in:!0,onEntered:SU(r,"onEntered",(function(){i(aU)}))})]},yU),LU=((bU={})[CU]=function(t){var n=t.children,i=t.changeState;return e.cloneElement(n,{in:!0,onEntered:SU(n,"onEntered",(function(){i(sU,e.cloneElement(n,{in:!0}))}))})},bU[kU]=function(t){var n=t.current,i=t.children,r=t.changeState;return[e.cloneElement(n,{in:!1,onExited:SU(n,"onExited",(function(){r(sU,e.cloneElement(i,{in:!0}))}))}),e.cloneElement(i,{in:!0})]},bU),EU=function(t){function n(){for(var e,n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return(e=t.call.apply(t,[this].concat(i))||this).state={status:sU,current:null},e.appeared=!1,e.changeState=function(t,n){void 0===n&&(n=e.state.current),e.setState({status:t,current:n})},e}qY(n,t);var i=n.prototype;return i.componentDidMount=function(){this.appeared=!0},n.getDerivedStateFromProps=function(t,n){return null==t.children?{current:null}:n.status===aU&&t.mode===kU?{status:aU}:!n.current||(i=n.current,r=t.children,i===r||e.isValidElement(i)&&e.isValidElement(r)&&null!=i.key&&i.key===r.key)?{current:e.cloneElement(t.children,{in:!0})}:{status:uU};var i,r},i.render=function(){var t,n=this.props,i=n.children,r=n.mode,o=this.state,a=o.status,s=o.current,u={children:i,current:s,changeState:this.changeState,status:a};switch(a){case aU:t=LU[r](u);break;case uU:t=xU[r](u);break;case sU:t=s}return e.createElement(nU.Provider,{value:{isMounting:!this.appeared}},t)},n}(e.Component);EU.propTypes={},EU.defaultProps={mode:CU};TY(".ycn-drawer__item {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n height: 100%;\n will-change: transform;\n background-color: var(--yc-color-base-background);\n}\n.ycn-drawer__item-transition-enter {\n transform: translate(-100%, 0);\n}\n.ycn-drawer__item-transition-enter-active {\n transform: translate(0, 0);\n transition: transform 300ms;\n}\n.ycn-drawer__item-transition-enter-done {\n filter: blur(0px);\n transform: translateZ(0);\n}\n.ycn-drawer__item-transition-exit {\n transform: translate(0, 0);\n}\n.ycn-drawer__item-transition-exit-active {\n transform: translate(-100%, 0);\n transition: transform 300ms;\n}\n.ycn-drawer__item-transition-exit-done {\n visibility: hidden;\n}\n.ycn-drawer__veil {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n background-color: var(--yc-color-sfx-veil);\n}\n.ycn-drawer__veil-transition-enter {\n opacity: 0;\n}\n.ycn-drawer__veil-transition-enter-active {\n opacity: 1;\n transition: opacity 300ms;\n}\n.ycn-drawer__veil-transition-exit {\n opacity: 1;\n}\n.ycn-drawer__veil-transition-exit-active {\n opacity: 0;\n transition: opacity 300ms;\n}\n.ycn-drawer__veil-transition-exit-done {\n visibility: hidden;\n}");var NU=MY("drawer"),DU=function(t){var n=t.visible,i=t.content,r=t.className,o=e.useRef(null);return e.createElement(fU,{in:n,timeout:300,unmountOnExit:!0,classNames:NU("item-transition"),nodeRef:o},e.createElement("div",{ref:o,className:NU("item",r)},i))},MU=function(t){var n=t.className,i=t.children,r=t.style,o=t.onVeilClick,a=t.onEscape,s=t.preventScrollBody,u=void 0===s||s,l=!1;e.Children.forEach(i,(function(e){var t=e;t.type===DU&&(Boolean(t.props.visible)&&(l=!0))})),e.useEffect((function(){function e(e){"Escape"===e.key&&(null===a||void 0===a||a())}return l&&window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[a,l]),e.useEffect((function(){var e=u,t=function(){document.body.style.paddingRight="",document.body.style.paddingBottom="",document.body.style.overflow=""};return e&&(l?function(){var e=window.innerWidth-document.documentElement.clientWidth,t=window.innerHeight-document.documentElement.clientHeight;document.body.style.paddingRight=e+"px",document.body.style.paddingBottom=t+"px",document.body.style.overflow="hidden"}():t()),function(){e&&t()}}),[l,u]);var c=e.useRef(null),d=e.useRef(null);return e.createElement(lU,{in:l,timeout:{enter:0,exit:300},mountOnEnter:!0,unmountOnExit:!0,nodeRef:c},(function(t){var a=l&&"entered"===t;return e.createElement("div",{ref:c,className:NU(null,n),style:r},e.createElement(fU,{in:a,timeout:300,unmountOnExit:!0,classNames:NU("veil-transition"),nodeRef:d},e.createElement("div",{ref:d,className:NU("veil"),onClick:o})),e.Children.map(i,(function(t){var n=t;if(n.type===DU){var i=Boolean(n.props.visible);return e.cloneElement(n,Object.assign(Object.assign({},n.props),{visible:i&&a}))}return t})))}))};TY(".ycn-logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n height: 40px;\n}\n.ycn-logo__logo-btn-place {\n flex-shrink: 0;\n width: var(--aside-header-min-width);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ycn-logo__btn-logo.yc-button_view_flat.yc-button_size_l {\n --yc-button-height: 38px;\n}\n.ycn-logo__logo {\n font-size: var(--yc-text-body-2-font-size);\n line-height: var(--yc-text-body-2-line-height);\n font-weight: var(--yc-text-body-font-weight);\n vertical-align: middle;\n}\n.ycn-logo__logo-link, .ycn-logo__logo-link:hover, .ycn-logo__logo-link:active, .ycn-logo__logo-link:visited, .ycn-logo__logo-link:focus {\n text-decoration: none;\n outline: none;\n color: inherit;\n}\n.yc-root .ycn-logo__btn-logo.button2_theme_flat.button2_hovered_yes::before {\n background-color: transparent;\n}");var TU=MY("logo"),OU=function(t){var n,i=t.text,r=t.compact,o=t.icon,a=t.iconSrc,s=t.iconClassName,u=t.iconSize,l=void 0===u?24:u,c=t.textSize,d=void 0===c?15:c,h=t.href,f=void 0===h?"/":h,p=t.wrapper,g=t.onClick,v="function"===typeof p,m="function"===typeof g?{}:{target:"_self",href:f};a?n=e.createElement(dd.z.Icon,{className:s},e.createElement("img",{alt:"logo icon",src:a,width:l,height:l})):o&&(n=e.createElement(kd.J,{data:o,size:l,className:s}));var _,y=e.createElement(dd.z,Object.assign({view:"flat",size:"l",className:TU("btn-logo"),component:v?"span":void 0,onClick:g},m),n);return _="function"===typeof i?i():e.createElement("div",{className:TU("logo"),style:{fontSize:d}},i),e.createElement("div",{className:TU()},e.createElement("div",{className:TU("logo-btn-place")},v?p(y,r):y),!r&&(v?p(_,r):e.createElement("a",Object.assign({},m,{className:TU("logo-link"),onClick:g}),_)))},IU=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},AU=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),RU=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},PU=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t},ZU=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(u){r=!0,o=u}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},FU=void 0;FU="undefined"!==typeof window?window:"undefined"!==typeof self?self:n.g;var jU=null,HU=null,BU=FU.clearTimeout,zU=FU.setTimeout,WU=FU.cancelAnimationFrame||FU.mozCancelAnimationFrame||FU.webkitCancelAnimationFrame,VU=FU.requestAnimationFrame||FU.mozRequestAnimationFrame||FU.webkitRequestAnimationFrame;function YU(e){var t=void 0,n=void 0,i=void 0,r=void 0,o=void 0,a=void 0,s=void 0,u="undefined"!==typeof document&&document.attachEvent;if(!u){a=function(e){var t=e.__resizeTriggers__,n=t.firstElementChild,i=t.lastElementChild,r=n.firstElementChild;i.scrollLeft=i.scrollWidth,i.scrollTop=i.scrollHeight,r.style.width=n.offsetWidth+1+"px",r.style.height=n.offsetHeight+1+"px",n.scrollLeft=n.scrollWidth,n.scrollTop=n.scrollHeight},o=function(e){return e.offsetWidth!==e.__resizeLast__.width||e.offsetHeight!==e.__resizeLast__.height},s=function(e){if(!(e.target.className&&"function"===typeof e.target.className.indexOf&&e.target.className.indexOf("contract-trigger")<0&&e.target.className.indexOf("expand-trigger")<0)){var t=this;a(this),this.__resizeRAF__&&jU(this.__resizeRAF__),this.__resizeRAF__=HU((function(){o(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach((function(n){n.call(t,e)})))}))}};var l=!1,c="";i="animationstart";var d="Webkit Moz O ms".split(" "),h="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),f=document.createElement("fakeelement");if(void 0!==f.style.animationName&&(l=!0),!1===l)for(var p=0;p<d.length;p++)if(void 0!==f.style[d[p]+"AnimationName"]){c="-"+d[p].toLowerCase()+"-",i=h[p],l=!0;break}t="@"+c+"keyframes "+(n="resizeanim")+" { from { opacity: 0; } to { opacity: 0; } } ",r=c+"animation: 1ms "+n+"; "}return{addResizeListener:function(o,l){if(u)o.attachEvent("onresize",l);else{if(!o.__resizeTriggers__){var c=o.ownerDocument,d=FU.getComputedStyle(o);d&&"static"===d.position&&(o.style.position="relative"),function(n){if(!n.getElementById("detectElementResize")){var i=(t||"")+".resize-triggers { "+(r||"")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',o=n.head||n.getElementsByTagName("head")[0],a=n.createElement("style");a.id="detectElementResize",a.type="text/css",null!=e&&a.setAttribute("nonce",e),a.styleSheet?a.styleSheet.cssText=i:a.appendChild(n.createTextNode(i)),o.appendChild(a)}}(c),o.__resizeLast__={},o.__resizeListeners__=[],(o.__resizeTriggers__=c.createElement("div")).className="resize-triggers";var h=c.createElement("div");h.className="expand-trigger",h.appendChild(c.createElement("div"));var f=c.createElement("div");f.className="contract-trigger",o.__resizeTriggers__.appendChild(h),o.__resizeTriggers__.appendChild(f),o.appendChild(o.__resizeTriggers__),a(o),o.addEventListener("scroll",s,!0),i&&(o.__resizeTriggers__.__animationListener__=function(e){e.animationName===n&&a(o)},o.__resizeTriggers__.addEventListener(i,o.__resizeTriggers__.__animationListener__))}o.__resizeListeners__.push(l)}},removeResizeListener:function(e,t){if(u)e.detachEvent("onresize",t);else if(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),!e.__resizeListeners__.length){e.removeEventListener("scroll",s,!0),e.__resizeTriggers__.__animationListener__&&(e.__resizeTriggers__.removeEventListener(i,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(n){}}}}}null==WU||null==VU?(jU=BU,HU=function(e){return zU(e,20)}):(jU=function(e){var t=ZU(e,2),n=t[0],i=t[1];WU(n),BU(i)},HU=function(e){var t=VU((function(){BU(n),e()})),n=zU((function(){WU(t),e()}),20);return[t,n]});var UU=function(t){function n(){var e,t,i;IU(this,n);for(var r=arguments.length,o=Array(r),a=0;a<r;a++)o[a]=arguments[a];return t=i=PU(this,(e=n.__proto__||Object.getPrototypeOf(n)).call.apply(e,[this].concat(o))),i.state={height:i.props.defaultHeight||0,width:i.props.defaultWidth||0},i._onResize=function(){var e=i.props,t=e.disableHeight,n=e.disableWidth,r=e.onResize;if(i._parentNode){var o=i._parentNode.offsetHeight||0,a=i._parentNode.offsetWidth||0,s=window.getComputedStyle(i._parentNode)||{},u=parseInt(s.paddingLeft,10)||0,l=parseInt(s.paddingRight,10)||0,c=parseInt(s.paddingTop,10)||0,d=parseInt(s.paddingBottom,10)||0,h=o-c-d,f=a-u-l;(!t&&i.state.height!==h||!n&&i.state.width!==f)&&(i.setState({height:o-c-d,width:a-u-l}),r({height:o,width:a}))}},i._setRef=function(e){i._autoSizer=e},PU(i,t)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,t),AU(n,[{key:"componentDidMount",value:function(){var e=this.props.nonce;this._autoSizer&&this._autoSizer.parentNode&&this._autoSizer.parentNode.ownerDocument&&this._autoSizer.parentNode.ownerDocument.defaultView&&this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement&&(this._parentNode=this._autoSizer.parentNode,this._detectElementResize=YU(e),this._detectElementResize.addResizeListener(this._parentNode,this._onResize),this._onResize())}},{key:"componentWillUnmount",value:function(){this._detectElementResize&&this._parentNode&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize)}},{key:"render",value:function(){var t=this.props,n=t.children,i=t.className,r=t.disableHeight,o=t.disableWidth,a=t.style,s=this.state,u=s.height,l=s.width,c={overflow:"visible"},d={},h=!1;return r||(0===u&&(h=!0),c.height=0,d.height=u),o||(0===l&&(h=!0),c.width=0,d.width=l),(0,e.createElement)("div",{className:i,ref:this._setRef,style:RU({},c,a)},!h&&n(d))}}]),n}(e.PureComponent);UU.defaultProps={onResize:function(){},disableHeight:!1,disableWidth:!1,style:{}};var KU=40,qU="collapse-item-id",GU=["right-start","right-end","right"],$U=28;function QU(e){switch(e.type){case"action":return 50;case"divider":return 15;default:return KU}}function XU(e){return e.reduce((function(e,t){return e+QU(t)}),0)}function JU(e){var t=e.findIndex((function(e){var t=e.current;return Boolean(t)}));return-1===t?void 0:t}function eK(e){var t=function(e){var t,n=[],i=(0,tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;(r.pinned||"divider"===r.type&&n.length>0&&"divider"!==n[n.length-1].type)&&n.push(r)}}catch(o){i.e(o)}finally{i.f()}return n}(e),n=e.filter((function(e){return e.afterMoreButton}));return XU(t)+XU(n)+(t.length===e.length?0:KU)}TY(".ycn-item-tooltip.yc-popup {\n animation-name: none;\n box-shadow: none;\n border: none;\n}\n.ycn-item-tooltip__text {\n padding: 6px 12px;\n background-color: var(--yc-color-base-float-heavy);\n color: var(--yc-color-text-light-primary);\n border-radius: 4px;\n}");var tK=MY("item-tooltip"),nK=["right"],iK=function(t){var n=t.anchor,i=t.text,r=e.useRef(n);return e.useEffect((function(){r.current=n}),[n]),n?e.createElement(Hf.G,{className:tK(),open:!0,anchorRef:r,placement:nK,disableEscapeKeyDown:!0,disableOutsideClick:!0,disableLayer:!0},e.createElement("div",{className:tK("text")},i)):null};TY('.ycn-composite-bar-item {\n --composite-bar-item-action-size: 36px;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n cursor: pointer;\n}\n.ycn-composite-bar-item__icon {\n color: var(--yc-color-text-misc);\n}\n.ycn-composite-bar-item__icon-place {\n flex-shrink: 0;\n width: var(--aside-header-min-width);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n.ycn-composite-bar-item__title {\n display: flex;\n overflow: hidden;\n}\n.ycn-composite-bar-item__title-text {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.ycn-composite-bar-item__title-adornment {\n margin: 0 10px;\n}\n.ycn-composite-bar-item__collapse-item {\n display: flex;\n padding: 0 16px;\n align-items: center;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.ycn-composite-bar-item__collapse-item .ycn-composite-bar-item__title-adornment {\n margin-right: 0;\n}\n.ycn-composite-bar-item__menu-divider {\n margin: 0 8px;\n width: 100%;\n border-top: 1px solid var(--yc-color-line-generic);\n cursor: default;\n}\n.ycn-composite-bar-item__collapse-items-popup-content {\n padding: 4px 0;\n}\n.ycn-composite-bar-item__link {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n}\n.ycn-composite-bar-item__link, .ycn-composite-bar-item__link:hover, .ycn-composite-bar-item__link:active, .ycn-composite-bar-item__link:visited, .ycn-composite-bar-item__link:focus {\n text-decoration: none;\n outline: none;\n color: inherit;\n}\n.ycn-composite-bar-item__btn-icon {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ycn-composite-bar-item_type_action {\n justify-content: center;\n height: var(--composite-bar-item-action-size);\n margin: 0 10px 8px;\n background: var(--yc-color-base-float);\n box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.03), 0px 5px 6px rgba(0, 0, 0, 0.12);\n border-radius: var(--composite-bar-item-action-size);\n transition: transform 0.1s ease-out, background-color 0.15s linear;\n}\n.ycn-composite-bar-item_type_action:focus {\n box-shadow: 0 0 0 2px var(--yc-color-line-misc);\n}\n.ycn-composite-bar-item_type_action:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.ycn-composite-bar-item_type_action:hover {\n background-color: var(--yc-color-base-float-hover);\n}\n.ycn-composite-bar-item_type_action:active {\n box-shadow: 0 1px 2px var(--yc-color-sfx-shadow);\n transition: none;\n transform: scale(0.96);\n}\n.ycn-composite-bar-item_type_action .ycn-composite-bar-item__icon-place {\n width: var(--composite-bar-item-action-size);\n}\n.ycn-composite-bar-item_type_action .ycn-composite-bar-item__title {\n margin-right: 16px;\n}\n.ycn-composite-bar-item:not(.ycn-composite-bar-item_compact).ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular {\n background-color: var(--yc-color-base-selection);\n}\n.ycn-composite-bar-item:not(.ycn-composite-bar-item_compact):not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular {\n background-color: var(--yc-color-base-simple-hover);\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_type_action {\n width: var(--composite-bar-item-action-size);\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_type_action .ycn-composite-bar-item__title {\n margin: 0;\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon {\n position: relative;\n background-color: transparent;\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: -1;\n width: 38px;\n height: 38px;\n margin-top: -19px;\n margin-left: -19px;\n border-radius: 7px;\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n background-color: var(--yc-color-base-selection);\n}\n.ycn-composite-bar-item_compact:not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon {\n position: relative;\n background-color: transparent;\n}\n.ycn-composite-bar-item_compact:not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: -1;\n width: 38px;\n height: 38px;\n margin-top: -19px;\n margin-left: -19px;\n border-radius: 7px;\n}\n.ycn-composite-bar-item_compact:not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n background-color: var(--yc-color-base-simple-hover);\n}');var rK=MY("composite-bar-item");function oK(t){var n=e.createElement("div",{className:rK("title-text")},t.title);return t.rightAdornment&&(n=e.createElement(e.Fragment,null,n,e.createElement("div",{className:rK("title-adornment")},t.rightAdornment))),n}var aK,sK=["right-end"],uK=[-20,8],lK=function(t){var n=t.item,i=t.compact,r=t.className,o=t.collapseItems,a=t.onMouseLeave,s=t.onMouseEnter,u=t.enableTooltip,l=void 0===u||u,c=t.popupVisible,d=void 0!==c&&c,h=t.popupAnchor,f=t.popupPlacement,p=void 0===f?sK:f,g=t.popupOffset,v=void 0===g?uK:g,m=t.renderPopupContent,_=t.onClosePopup,y=t.onItemClick;if("divider"===n.type)return e.createElement("div",{className:rK("menu-divider")});var b,w=e.useState(null),C=(0,Ti.Z)(w,2),k=C[0],S=C[1],x=e.useState(!1),L=(0,Ti.Z)(x,2),E=L[0],N=L[1],D=e.useRef(null),M=h||D,T=n.type||"regular",O=n.current||!1,I=n.tooltipText||n.title,A=n.icon,R=n.iconSize||24,P=n.id===qU,Z=e.useCallback((function(e){var t;e instanceof MouseEvent&&e.target&&(null===(t=D.current)||void 0===t?void 0:t.contains(e.target))||null===_||void 0===_||_()}),[_]),F=function(t){var o=t.icon,u=t.title,c=e.createElement("div",{className:rK({type:T,current:O,compact:i},r),ref:D,onClick:function(){P?(N(!E),S(null)):null===y||void 0===y||y(n,!1)},onMouseEnter:function(){i||null===s||void 0===s||s()},onMouseLeave:function(){i||null===a||void 0===a||a()}},e.createElement("div",{className:rK("icon-place")},i?e.createElement(e.Fragment,null,e.createElement("div",{onMouseEnter:function(e){E||S(e.currentTarget),null===s||void 0===s||s()},onMouseLeave:function(){S(null),null===a||void 0===a||a()},className:rK("btn-icon")},o),l&&e.createElement(iK,{anchor:k,text:I})):o),e.createElement("div",{className:rK("title"),title:"string"===typeof n.title?n.title:void 0},u),m&&Boolean(null===M||void 0===M?void 0:M.current)&&e.createElement(Hf.G,{className:rK("popup"),open:d,placement:p,offset:v,anchorRef:M,onClose:Z},m()));return n.link?e.createElement("a",{href:n.link,className:rK("link")},c):c},j={icon:A?e.createElement(kd.J,{data:A,size:R,className:rK("icon")}):null,title:oK(n)},H={compact:i,collapsed:!1,item:n};return b="function"===typeof n.itemWrapper?n.itemWrapper(j,F,H):F(j),e.createElement(e.Fragment,null,b,E&&P&&(null===o||void 0===o?void 0:o.length)&&Boolean(null===M||void 0===M?void 0:M.current)&&e.createElement(cK,Object.assign({},t,{anchorRef:D,onClose:function(){return N(!1)}})))};function cK(t){var n=t.compact,i=t.onItemClick,r=t.collapseItems,o=t.anchorRef,a=t.onClose;return(null===r||void 0===r?void 0:r.length)?e.createElement(Hf.G,{placement:GU,open:!0,anchorRef:o,onClose:a},e.createElement("div",{className:rK("collapse-items-popup-content")},e.createElement(wY.a,{itemClassName:rK("root-collapse-item"),items:r,selectedItemIndex:JU(r),itemHeight:$U,itemsHeight:r.length*$U,virtualized:!1,filterable:!1,sortable:!1,renderItem:function(t){var r=function(n){var r=n.title,o=e.createElement("div",{className:rK("collapse-item"),onClick:function(){null===i||void 0===i||i(t,!0)}},r);return t.link?e.createElement("a",{href:t.link,className:rK("link")},o):o},o={title:oK(t)},a={compact:n,collapsed:!0,item:t};return"function"===typeof t.itemWrapper?t.itemWrapper(o,r,a):r(o)}}))):null}function dK(){return dK=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},dK.apply(this,arguments)}lK.displayName="Item";var hK=function(t){return e.createElement("svg",dK({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:16,height:16},t),aK||(aK=e.createElement("path",{d:"M14 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 14 6.125zm-5.906 0a1.874 1.874 0 1 1 0 3.749 1.874 1.874 0 0 1 0-3.749zM2 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 2 6.125z",fill:"currentColor",fillRule:"evenodd"})))};TY(".ycn-composite-bar {\n flex: 1 0 auto;\n width: 100%;\n min-height: 40px;\n}\n.ycn-composite-bar .ycn-composite-bar__root-menu-item[class] {\n background-color: transparent;\n}");var fK=MY("composite-bar"),pK=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).state={activeItemIndex:void 0},t.listRef=e.createRef(),t}return(0,r.Z)(s,[{key:"render",value:function(){var t=this,n=this.props,i=n.enableCollapsing,r=n.items;if(0===r.length)return null;if(!i)return e.createElement("div",{className:fK()},this.renderMenu());var o=eK(r);return e.createElement("div",{className:fK({autosizer:!0}),style:{minHeight:o}},0!==r.length&&e.createElement(UU,null,(function(n){var i=n.width,r=n.height,o={width:i,height:r};return e.createElement("div",{style:o},t.renderAutosizeMenu(r))})))}},{key:"renderAutosizeMenu",value:function(t){var n=this,i=this.props,r=i.compact,o=i.onItemClick,a=this.getAutosizeListItems(t),s=a.listItems,u=a.collapseItems;return e.createElement(wY.a,{ref:this.listRef,items:s,selectedItemIndex:JU(s),itemHeight:QU,itemClassName:fK("root-menu-item"),itemsHeight:XU,virtualized:!1,filterable:!1,sortable:!1,renderItem:function(t){return e.createElement(lK,{item:t,onMouseLeave:function(){var e;r&&(null===(e=n.listRef.current)||void 0===e||e.activateItem(void 0))},compact:r,collapseItems:u,onItemClick:o})}})}},{key:"renderMenu",value:function(){var t=this,n=this.props,i=n.items,r=n.onItemClick,o=n.compact;return e.createElement(wY.a,{ref:this.listRef,items:i,selectedItemIndex:JU(i),itemHeight:QU,itemClassName:fK("root-menu-item"),itemsHeight:XU,virtualized:!1,filterable:!1,sortable:!1,renderItem:function(n){return e.createElement(lK,{item:n,onMouseLeave:function(){var e;o&&(null===(e=t.listRef.current)||void 0===e||e.activateItem(void 0))},compact:o,onItemClick:r})}})}},{key:"getMoreButtonItem",value:function(){var e,t=this.props.dict,n=null!==(e=null===t||void 0===t?void 0:t[zY.MoreButton])&&void 0!==e?e:VY[zY.MoreButton];return{id:qU,title:n,icon:hK,iconSize:16}}},{key:"getAutosizeListItems",value:function(e){var t=this.props.items,n=t.filter((function(e){return e.afterMoreButton})),i=t.filter((function(e){return!e.afterMoreButton})),r=[].concat((0,zt.Z)(i),(0,zt.Z)(n)),o=XU(r);if(o<=e)return{listItems:r,collapseItems:[]};var a=this.getMoreButtonItem(),s=QU(a);r.splice(i.length,0,a);for(var u=[],l=o+s,c=r.length;l>e&&0!==c;){var d=r[--c];d.pinned||d.id===qU||d.afterMoreButton||("divider"!==d.type?(l-=QU(d),u.unshift.apply(u,(0,zt.Z)(r.splice(c,1)))):c+1<r.length&&"divider"===r[c+1].type&&(l-=QU(d),r.splice(c,1)))}return"divider"!==r[c].type||0!==c&&"divider"!==r[c-1].type||r.splice(c,1),{listItems:r,collapseItems:u}}}]),s}(e.Component),gK=e.memo((function(t){var n=t.renderContent,i=t.size;return e.createElement(e.Fragment,null,n({size:i}))}));gK.displayName="RenderContent";var vK,mK=function(t){var n=t.size,i=t.className,r=t.renderContent;return e.createElement("div",{className:i,style:Object.assign({},{"--aside-header-size":"".concat(n,"px")})},"function"===typeof r&&e.createElement(gK,{size:n,renderContent:r}))};function _K(){return _K=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},_K.apply(this,arguments)}var yK,bK=function(t){return e.createElement("svg",_K({width:8,height:8,viewBox:"0 0 8 8",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),vK||(vK=e.createElement("path",{d:"m.72 7.64 6.39-3.2a.5.5 0 0 0 0-.89L.72.36A.5.5 0 0 0 0 .81v6.38c0 .37.4.61.72.45Z"})))};function wK(){return wK=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},wK.apply(this,arguments)}var CK=function(t){return e.createElement("svg",wK({width:56,height:29,viewBox:"0 0 56 29",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),yK||(yK=e.createElement("path",{d:"M56 0v29c-.8-1-7-6.1-17.7-8.4L13 15.7A16 16 0 0 1 0 0Z"})))};TY('.yc-root {\n --aside-header-background-color: var(--yc-color-base-info);\n --aside-header-collapse-button-divider-line-color: var(\n --aside-header-header-divider-line-color\n );\n}\n\n.yc-root_theme_light {\n --aside-header-divider-line-color: transparent;\n --aside-header-header-divider-line-color: var(--yc-color-line-generic);\n}\n\n.yc-root_theme_dark {\n --aside-header-divider-line-color: var(--yc-color-base-light-simple-hover);\n --aside-header-header-divider-line-color: var(--yc-color-base-light-simple-hover);\n}\n\n.ycn-aside-header {\n --aside-header-min-width: 56px;\n height: 100%;\n width: 100%;\n position: relative;\n background-color: var(--yc-color-base-background);\n}\n.ycn-aside-header__aside {\n position: sticky;\n top: 0;\n left: 0;\n height: 100vh;\n width: inherit;\n display: flex;\n flex-direction: column;\n background-color: var(--yc-color-base-background);\n z-index: 100;\n box-sizing: border-box;\n}\n.ycn-aside-header__aside::after {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n width: 1px;\n height: 100%;\n content: "";\n background-color: var(--aside-header-divider-line-color);\n}\n.ycn-aside-header__aside-popup-anchor {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n}\n.ycn-aside-header__aside-content {\n --gradient-height: 334px;\n display: flex;\n flex-direction: column;\n overflow-x: hidden;\n width: inherit;\n height: inherit;\n position: relative;\n z-index: 2;\n user-select: none;\n background: linear-gradient(180deg, var(--aside-header-background-color) calc(var(--gradient-height) * 0.33), transparent calc(var(--gradient-height) * 0.88));\n}\n.ycn-aside-header__aside-content::after {\n position: absolute;\n top: 0;\n right: -100px;\n bottom: 0;\n width: 100px;\n content: "";\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1), 0px 0px 24px rgba(0, 0, 0, 0.08);\n}\n.ycn-aside-header__aside-content > .ycn-aside-header-logo {\n margin: 8px 0;\n}\n.ycn-aside-header_compact .ycn-aside-header__aside-content {\n background: transparent;\n}\n.ycn-aside-header__header {\n --aside-header-header-divider-height: 29px;\n position: relative;\n z-index: 1;\n flex: none;\n box-sizing: border-box;\n width: 100%;\n padding-top: 8px;\n padding-bottom: 22px;\n}\n.ycn-aside-header__header .ycn-aside-header__header-divider {\n position: absolute;\n bottom: 0;\n left: 0;\n z-index: -2;\n display: none;\n color: var(--aside-header-background-color);\n}\n.ycn-aside-header__header::before {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -2;\n display: none;\n width: 100%;\n height: calc(100% - var(--aside-header-header-divider-height));\n content: "";\n background-color: var(--aside-header-background-color);\n}\n.ycn-aside-header__header::after {\n position: absolute;\n bottom: 12px;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 1px;\n content: "";\n background-color: var(--aside-header-header-divider-line-color);\n}\n.ycn-aside-header_compact .ycn-aside-header__header::before {\n display: block;\n}\n.ycn-aside-header_compact .ycn-aside-header__header::after {\n display: none;\n}\n.ycn-aside-header_compact .ycn-aside-header__header .ycn-aside-header__header-divider {\n display: block;\n}\n.ycn-aside-header__menu-items {\n flex-grow: 1;\n}\n.ycn-aside-header__footer {\n flex-shrink: 0;\n width: 100%;\n margin: 8px 0;\n display: flex;\n flex-direction: column;\n}\n.ycn-aside-header__panels {\n z-index: 98;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n overflow: auto;\n}\n.ycn-aside-header__panel {\n height: 100%;\n}\n.ycn-aside-header__pane-container {\n display: flex;\n outline: none;\n overflow: visible;\n user-select: text;\n flex-direction: row;\n}\n.ycn-aside-header__content {\n width: calc(100% - var(--aside-header-size));\n z-index: 95;\n}\n.ycn-aside-header__collapse-button {\n --yc-button-background-color-hover: transparent;\n overflow: hidden;\n box-sizing: border-box;\n flex: none;\n width: 100%;\n height: 20px;\n border-top: 1px solid var(--aside-header-collapse-button-divider-line-color);\n margin-top: auto;\n}\n.ycn-aside-header__collapse-button:not(.ycn-aside-header__collapse-button_compact) .ycn-aside-header__collapse-icon {\n transform: rotate(180deg);\n}\n.ycn-aside-header__collapse-button .ycn-aside-header__collapse-icon {\n color: var(--yc-color-text-secondary);\n}\n.ycn-aside-header__collapse-button:hover .ycn-aside-header__collapse-icon {\n color: var(--yc-color-text-primary);\n}');var kK=MY("aside-header"),SK=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).asideRef=e.createRef(),t.renderFirstPane=function(n){var i=t.props,r=i.dict,o=i.menuItems,a=i.panelItems,s=i.compact;return e.createElement(e.Fragment,null,e.createElement("div",{className:kK("aside"),style:{width:n}},e.createElement("div",{className:kK("aside-popup-anchor"),ref:t.asideRef}),e.createElement("div",{className:kK("aside-content")},t.renderHeader(),(null===o||void 0===o?void 0:o.length)?e.createElement(pK,{items:o,compact:s,enableCollapsing:!0,dict:r,onItemClick:t.onItemClick}):e.createElement("div",{className:kK("menu-items")}),t.renderFooter(n),t.renderCollapseButton())),a&&t.renderPanels(n))},t.renderSecondPane=function(n){return e.createElement(mK,{size:n,renderContent:t.props.renderContent,className:kK("content")})},t.renderLogo=function(){return e.createElement(OU,Object.assign({},t.props.logo,{compact:t.props.compact}))},t.renderHeader=function(){return e.createElement("div",{className:kK("header")},t.renderLogo(),e.createElement(pK,{items:t.props.subheaderItems,compact:t.props.compact,enableCollapsing:!1,onItemClick:t.onItemClick}),e.createElement(kd.J,{data:CK,className:kK("header-divider"),width:WY,height:"29"}))},t.renderFooter=function(n){var i=t.props,r=i.compact,o=i.renderFooter;return e.createElement("div",{className:kK("footer")},null===o||void 0===o?void 0:o({size:n,compact:r,asideRef:t.asideRef}))},t.renderPanels=function(n){var i=t.props.panelItems;return e.createElement(MU,{className:kK("panels"),onVeilClick:t.onCloseDrawer,onEscape:t.onCloseDrawer,style:{left:n}},i.map((function(t){return e.createElement(DU,Object.assign({key:t.id},t))})))},t.renderCollapseButton=function(){var n,i=t.props,r=i.compact,o=i.dict,a=r?zY.ExpandButton:zY.CollapseButton;return e.createElement(dd.z,{className:kK("collapse-button",{compact:r}),view:"flat",onClick:t.onCollapseButtonClick,title:null!==(n=null===o||void 0===o?void 0:o[a])&&void 0!==n?n:VY[a]},e.createElement(kd.J,{data:bK,className:kK("collapse-icon"),width:"16",height:"10"}))},t.onCollapseButtonClick=function(){var e,n;null===(n=(e=t.props).onChangeCompact)||void 0===n||n.call(e,!t.props.compact)},t.onCloseDrawer=function(){var e,n;null===(n=(e=t.props).onClosePanel)||void 0===n||n.call(e)},t.onItemClick=function(e,n){var i,r,o;null===(r=(i=t.props).onClosePanel)||void 0===r||r.call(i),null===(o=e.onItemClick)||void 0===o||o.call(e,e,n)},t}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.className,i=t.compact,r=i?WY:236;return e.createElement("div",{className:kK({compact:i},n)},e.createElement("div",{className:kK("pane-container")},this.renderFirstPane(r),this.renderSecondPane(r)))}}]),s}(e.Component);function xK(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}SK.defaultProps={panelItems:[],subheaderItems:[],menuItems:[]};TY(".ycn-footer-item {\n width: 100%;\n height: 40px;\n}");var LK=MY("footer-item"),EK=function(t){var n=t.item,i=xK(t,["item"]);return e.createElement(lK,Object.assign({},i,{item:Object.assign({iconSize:20},n),className:LK({compact:i.compact}),onItemClick:n.onItemClick}))};var NK=function(e){return e};var DK=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},MK="object"==typeof CY&&CY&&CY.Object===Object&&CY,TK="object"==typeof self&&self&&self.Object===Object&&self,OK=MK||TK||Function("return this")(),IK=OK,AK=function(){return IK.Date.now()},RK=/\s/;var PK=function(e){for(var t=e.length;t--&&RK.test(e.charAt(t)););return t},ZK=PK,FK=/^\s+/;var jK=function(e){return e?e.slice(0,ZK(e)+1).replace(FK,""):e},HK=OK.Symbol,BK=HK,zK=Object.prototype,WK=zK.hasOwnProperty,VK=zK.toString,YK=BK?BK.toStringTag:void 0;var UK=function(e){var t=WK.call(e,YK),n=e[YK];try{e[YK]=void 0;var i=!0}catch(o){}var r=VK.call(e);return i&&(t?e[YK]=n:delete e[YK]),r},KK=Object.prototype.toString;var qK=UK,GK=function(e){return KK.call(e)},$K="[object Null]",QK="[object Undefined]",XK=HK?HK.toStringTag:void 0;var JK=function(e){return null==e?void 0===e?QK:$K:XK&&XK in Object(e)?qK(e):GK(e)},eq=function(e){return null!=e&&"object"==typeof e},tq="[object Symbol]";var nq=jK,iq=DK,rq=function(e){return"symbol"==typeof e||eq(e)&&JK(e)==tq},oq=NaN,aq=/^[-+]0x[0-9a-f]+$/i,sq=/^0b[01]+$/i,uq=/^0o[0-7]+$/i,lq=parseInt;var cq=DK,dq=AK,hq=function(e){if("number"==typeof e)return e;if(rq(e))return oq;if(iq(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=iq(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=nq(e);var n=sq.test(e);return n||uq.test(e)?lq(e.slice(2),n?2:8):aq.test(e)?oq:+e},fq="Expected a function",pq=Math.max,gq=Math.min;var vq=function(e,t,n){var i,r,o,a,s,u,l=0,c=!1,d=!1,h=!0;if("function"!=typeof e)throw new TypeError(fq);function f(t){var n=i,o=r;return i=r=void 0,l=t,a=e.apply(o,n)}function p(e){var n=e-u;return void 0===u||n>=t||n<0||d&&e-l>=o}function g(){var e=dq();if(p(e))return v(e);s=setTimeout(g,function(e){var n=t-(e-u);return d?gq(n,o-(e-l)):n}(e))}function v(e){return s=void 0,h&&i?f(e):(i=r=void 0,a)}function m(){var e=dq(),n=p(e);if(i=arguments,r=this,u=e,n){if(void 0===s)return function(e){return l=e,s=setTimeout(g,t),c?f(e):a}(u);if(d)return clearTimeout(s),s=setTimeout(g,t),f(u)}return void 0===s&&(s=setTimeout(g,t)),a}return t=hq(t)||0,cq(n)&&(c=!!n.leading,o=(d="maxWait"in n)?pq(hq(n.maxWait)||0,t):o,h="trailing"in n?!!n.trailing:h),m.cancel=function(){void 0!==s&&clearTimeout(s),l=0,i=u=r=s=void 0},m.flush=function(){return void 0===s?a:v(dq())},m};function mq(t){var n=e.useRef();return e.useEffect((function(){return n.current=t,function(){n.current=void 0}}),[t]),e.useCallback((function(){if("function"===typeof n.current)return n.current.apply(n,arguments)}),[])}function _q(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var yq=MY("settings-search");function bq(t){var n=t.className,i=t.onChange,r=t.debounce,o=void 0===r?200:r,a=t.inputRef,s=t.placeholder,u=mq(i),l=e.useCallback(vq(u,o),[o]);return e.createElement("div",{className:yq(null,n)},e.createElement(hd.o,{controlRef:a,hasClear:!0,autoFocus:!0,placeholder:s,onUpdate:l}))}TY('.ycn-settings-menu__group-heading {\n font-weight: var(--yc-text-accent-font-weight);\n display: inline-block;\n padding: 0 20px;\n margin-bottom: 12px;\n line-height: 18px;\n}\n.ycn-settings-menu__group + .ycn-settings-menu__group {\n margin-top: 24px;\n}\n.ycn-settings-menu__item {\n display: flex;\n align-items: center;\n height: 40px;\n padding: 0 20px;\n cursor: pointer;\n color: var(--yc-color-text-primary);\n}\n.ycn-settings-menu__item-icon {\n color: var(--yc-color-text-misc);\n margin-right: 5px;\n}\n.ycn-settings-menu__item:hover, .ycn-settings-menu__item_focused {\n background: var(--yc-color-base-simple-hover);\n}\n.ycn-settings-menu__item_selected {\n background: var(--yc-color-base-selection);\n}\n.ycn-settings-menu__item_selected:hover, .ycn-settings-menu__item_selected.ycn-settings-menu__item_focused {\n background: var(--yc-color-base-selection-hover);\n}\n.ycn-settings-menu__item_disabled {\n color: var(--yc-color-text-secondary);\n cursor: auto;\n}\n.ycn-settings-menu__item_disabled:hover {\n background: none;\n}\n.ycn-settings-menu__item_disabled .ycn-settings-menu__item-icon {\n color: var(--yc-color-base-misc-heavy);\n}\n.ycn-settings-menu__item_badge {\n position: relative;\n}\n.ycn-settings-menu__item_badge::after {\n content: "";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--yc-color-text-danger);\n position: absolute;\n right: 9px;\n top: calc(50% - 3px);\n}');var wq=MY("settings-menu"),Cq=e.forwardRef((function(t,n){var i=t.items,r=t.onChange,o=t.activeItem,a=e.useState(),s=(0,Ti.Z)(a,2),u=s[0],l=s[1],c=e.useRef(null),d=mq(r),h=function(t){var n=e.useRef(t);return n.current=t,e.useCallback((function(){return n.current}),[])}(u);return e.useImperativeHandle(n,(function(){return{handleKeyDown:function(e){if(!c.current)return!1;var t=h();return t&&"Enter"===e.key?(d(t),!0):"ArrowDown"===e.key?(l(Sq(c.current,t,1)),!0):"ArrowUp"===e.key&&(l(Sq(c.current,t,-1)),!0)},clearFocus:function(){l(void 0)}}}),[h,d]),e.createElement("div",{ref:c,className:wq()},i.map((function(t){return"groupTitle"in t?e.createElement("div",{key:t.groupTitle,className:wq("group")},e.createElement("span",{className:wq("group-heading")},t.groupTitle),t.items.map((function(e){return kq(e,r,o,u)}))):kq(t,r,o,u)})))}));function kq(t,n,i,r){return e.createElement("span",{key:t.title,className:wq("item",{selected:i===t.id,disabled:t.disabled,focused:r===t.id,badge:t.withBadge}),onClick:function(){t.disabled||n(t.id)},"data-id":t.id},t.icon?e.createElement(kd.J,Object.assign({size:16},t.icon,{className:wq("item-icon")})):void 0,e.createElement("span",null,t.title))}function Sq(e,t,n){var i,r=e.querySelectorAll(".".concat(wq("item"),":not(.").concat(wq("item"),"_disabled)"));if(0!==r.length){var o=n>0?-1:0;return t&&(o=Array.prototype.findIndex.call(r,(function(e){return e.getAttribute("data-id")===t}))),null!==(i=r[o=(r.length+o+n)%r.length].getAttribute("data-id"))&&void 0!==i?i:void 0}}function xq(e){var t=_q(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").replace(/\s+/g,".*?");return Lq(e,"",new RegExp(t,"i"))}function Lq(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,r=[],o={};return e.Children.forEach(t,(function(t){var a,s;if(e.isValidElement(t))if(t.type===e.Fragment){var u=Lq(t.props.children,n,i),l=u.menu,c=u.pages;r.push.apply(r,(0,zt.Z)(l)),Object.assign(o,c)}else if(t.props.groupTitle){0;var d="".concat(n,"/").concat(null!==(a=t.props.id)&&void 0!==a?a:t.props.groupTitle);!0;var h=Lq(t.props.children,d,i),f=h.menu,p=h.pages;r.push({groupTitle:t.props.groupTitle,items:f}),Object.assign(o,p)}else{!0;var g="".concat(n,"/").concat(null!==(s=t.props.id)&&void 0!==s?s:t.props.title);0,o[g]=Eq(t.props.children,i),o[g].id=g,r.push({id:g,title:t.props.title,icon:t.props.icon,withBadge:o[g].withBadge,disabled:o[g].hidden})}})),{menu:r,pages:o}}function Eq(t,n){var i={id:"",sections:[],hidden:!0};return e.Children.forEach(t,(function(t){if(e.isValidElement(t))if(t.type===e.Fragment){var r,o=Eq(t.props.children,n),a=o.sections,s=o.withBadge,u=o.hidden;(r=i.sections).push.apply(r,(0,zt.Z)(a)),i.withBadge=s||i.withBadge,i.hidden=u&&i.hidden}else{var l=t.props,c=l.title,d=l.header,h=l.withBadge,f=Nq(t.props.children,n),p=f.items,g=f.hidden;i.withBadge=h||i.withBadge,i.hidden=g&&i.hidden,i.sections.push({title:c,header:d,withBadge:h,items:p,hidden:g})}})),i}function Nq(t,n){var i=!0,r=[];return e.Children.forEach(t,(function(t){if(e.isValidElement(t))if(t.type===e.Fragment){var o=Nq(t.props.children,n);r.push.apply(r,(0,zt.Z)(o.items)),i=i&&o.hidden}else{var a={title:t.props.title,renderTitleComponent:t.props.renderTitleComponent,element:t,hidden:!n.test(t.props.title)};r.push(a),i=i&&a.hidden}})),{items:r,hidden:i}}TY('.ycn-settings {\n display: grid;\n grid-template-columns: 216px 1fr;\n width: 834px;\n height: 100%;\n}\n.ycn-settings_loading {\n grid-template-columns: auto;\n}\n.ycn-settings__loader {\n align-self: center;\n justify-self: center;\n}\n.ycn-settings__not-found {\n display: grid;\n align-items: center;\n justify-items: center;\n height: 100%;\n}\n.ycn-settings__menu {\n border-right: 1px solid var(--yc-color-line-generic);\n}\n.ycn-settings__heading {\n font-size: var(--yc-text-subheader-2-font-size);\n line-height: var(--yc-text-subheader-2-line-height);\n font-weight: var(--yc-text-subheader-font-weight);\n margin: 20px 20px 0;\n}\n.ycn-settings__search {\n margin: 12px 20px 16px;\n}\n.ycn-settings__page {\n padding: 20px;\n overflow-y: auto;\n}\n.ycn-settings__section-heading {\n font-size: var(--yc-text-subheader-2-font-size);\n line-height: var(--yc-text-subheader-2-line-height);\n font-weight: var(--yc-text-subheader-font-weight);\n margin: 0;\n}\n.ycn-settings__section-item {\n margin-top: 24px;\n}\n.ycn-settings__section + .ycn-settings__section {\n margin-top: 32px;\n}\n.ycn-settings__item {\n display: grid;\n grid-template-columns: 216px 1fr;\n justify-items: start;\n}\n.ycn-settings__item_align_top {\n align-items: start;\n}\n.ycn-settings__item_align_center {\n align-items: center;\n}\n.ycn-settings__item-heading_badge {\n position: relative;\n}\n.ycn-settings__item-heading_badge::after {\n content: "";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--yc-color-text-danger);\n position: absolute;\n right: -8px;\n top: 1px;\n}\n.ycn-settings__found {\n font-weight: var(--yc-text-accent-font-weight);\n background: var(--yc-color-base-selection);\n}');var Dq,Mq=MY("settings");function Tq(t){var n=t.loading,i=t.renderLoading,r=t.children,o=xK(t,["loading","renderLoading","children"]);return n?e.createElement("div",{className:Mq({loading:!0})},"function"===typeof i?i():e.createElement(fd.a,{className:Mq("loader"),size:"m"})):e.createElement(Oq,Object.assign({},o),r)}function Oq(t){var n,i,r=t.initialPage,o=t.onPageChange,a=t.children,s=t.renderNotFound,u=t.dict,l=e.useState(""),c=(0,Ti.Z)(l,2),d=c[0],h=c[1],f=xq(a,d),p=f.menu,g=f.pages,v=Object.keys(g),m=e.useState(r&&v.includes(r)?r:void 0),_=(0,Ti.Z)(m,2),y=_[0],b=_[1],w=e.useRef(null),C=e.useRef(null);e.useEffect((function(){var e;null===(e=C.current)||void 0===e||e.clearFocus()}),[d]),e.useEffect((function(){var e=function(){var e;null===(e=C.current)||void 0===e||e.clearFocus()};return window.addEventListener("click",e),function(){window.removeEventListener("click",e)}}),[]);var k=y;k&&!(null===(n=g[k])||void 0===n?void 0:n.hidden)||(k=null===(i=Object.values(g).find((function(e){return!e.hidden})))||void 0===i?void 0:i.id);var S=function(e){b((function(t){return t!==e&&(null===o||void 0===o||o(e)),e}))};e.useEffect((function(){k!==y&&S(k)}));return e.createElement("div",{className:Mq()},e.createElement("div",{className:Mq("menu"),onClick:function(){w.current&&w.current.focus()},onKeyDown:function(e){C.current&&C.current.handleKeyDown(e)&&e.preventDefault()}},e.createElement("h2",{className:Mq("heading")},null===u||void 0===u?void 0:u.heading_settings),e.createElement(bq,{inputRef:w,className:Mq("search"),onChange:h,placeholder:null===u||void 0===u?void 0:u.placeholder_search}),e.createElement(Cq,{ref:C,items:p,onChange:S,activeItem:k})),e.createElement("div",{className:Mq("page")},k?g[k].sections.filter((function(e){return!e.hidden})).map((function(t){return e.createElement("div",{key:t.title,className:Mq("section")},e.createElement("h3",{className:Mq("section-heading")},t.title),t.header?t.header:null,t.items.map((function(t){var n=t.hidden,i=t.title,r=t.element;return n?null:e.createElement("div",{key:i,className:Mq("section-item")},e.cloneElement(r,Object.assign(Object.assign({},r.props),{title:d&&i?Iq(i,d):i})))})))})):"function"===typeof s?s():e.createElement("div",{className:Mq("not-found")},null===u||void 0===u?void 0:u.not_found)))}function Iq(t,n){var i,r=t.slice(0),o=[],a=_q(n).split(" ").filter(Boolean),s=0,u=(0,tr.Z)(a);try{for(u.s();!(i=u.n()).done;){var l=i.value,c=new RegExp(l,"ig").exec(r);if(c){var d=c[0],h=c.index;h>0&&o.push(r.slice(0,h)),o.push(e.createElement("strong",{key:s++,className:Mq("found")},d)),r=r.slice(h+d.length)}}}catch(f){u.e(f)}finally{u.f()}return r&&o.push(r),o}function Aq(){return Aq=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Aq.apply(this,arguments)}Tq.defaultProps={dict:{heading_settings:"Settings",placeholder_search:"Search settings",not_found:"No results found"}},Tq.Group=function(t){var n=t.children;return e.createElement(e.Fragment,null,n)},Tq.Page=function(t){var n=t.children;return e.createElement(e.Fragment,null,n)},Tq.Section=function(t){var n=t.children;return e.createElement(e.Fragment,null,n)},Tq.Item=function(t){var n=t.title,i=t.children,r=t.align,o=void 0===r?"center":r,a=t.withBadge,s=t.renderTitleComponent,u=void 0===s?NK:s;return e.createElement("div",{className:Mq("item",{align:o})},e.createElement("label",{className:Mq("item-heading",{badge:a})},u(n)),e.createElement("div",null,i))};var Rq,Pq=function(t){return e.createElement("svg",Aq({"aria-hidden":"true","data-prefix":"fas","data-icon":"arrow-right-from-bracket",className:"signOut_svg__svg-inline--fa signOut_svg__fa-arrow-right-from-bracket",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Dq||(Dq=e.createElement("path",{fill:"currentColor",d:"M160 416H96c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h64c17.67 0 32-14.33 32-32s-14.3-32-32-32H96C42.98 32 0 74.98 0 128v256c0 53.02 42.98 96 96 96h64c17.67 0 32-14.33 32-32s-14.3-32-32-32zm342.6-182.6l-128-128c-12.51-12.51-32.76-12.49-45.25 0-12.5 12.5-12.5 32.75 0 45.25L402.8 224H192c-17.7 0-32 14.3-32 32s14.31 32 32 32h210.8l-73.38 73.38c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0l128-128c12.43-12.53 12.43-32.73-.07-45.23z"})))};function Zq(){return Zq=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Zq.apply(this,arguments)}var Fq,jq=function(t){return e.createElement("svg",Zq({"aria-hidden":"true","data-prefix":"fas","data-icon":"arrow-right-to-bracket",className:"signIn_svg__svg-inline--fa signIn_svg__fa-arrow-right-to-bracket",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Rq||(Rq=e.createElement("path",{fill:"currentColor",d:"M416 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c17.67 0 32 14.33 32 32v256c0 17.67-14.33 32-32 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c53.02 0 96-42.98 96-96V128c0-53.02-43-96-96-96zm-73.4 201.4l-128-128c-12.51-12.51-32.76-12.49-45.25 0-12.5 12.5-12.5 32.75 0 45.25L242.8 224H32c-17.69 0-32 14.3-32 32s14.31 32 32 32h210.8l-73.38 73.38c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0l128-128c12.43-12.53 12.43-32.73-.07-45.23z"})))};function Hq(){return Hq=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Hq.apply(this,arguments)}var Bq,zq=function(t){return e.createElement("svg",Hq({"aria-hidden":"true","data-prefix":"fas","data-icon":"server",className:"server_svg__svg-inline--fa server_svg__fa-server",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Fq||(Fq=e.createElement("path",{fill:"currentColor",d:"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"})))};function Wq(){return Wq=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Wq.apply(this,arguments)}var Vq,Yq=function(t){return e.createElement("svg",Wq({"aria-hidden":"true","data-prefix":"fas","data-icon":"database",className:"storage_svg__svg-inline--fa storage_svg__fa-database",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},t),Bq||(Bq=e.createElement("path",{fill:"currentColor",d:"M448 73.12v45.75C448 159.1 347.6 192 224 192S0 159.1 0 118.9V73.12C0 32.88 100.4 0 224 0s224 32.88 224 73.12zM448 176v102.9c0 40.2-100.4 73.1-224 73.1S0 319.1 0 278.9V176c48.12 33.12 136.2 48.62 224 48.62S399.9 209.1 448 176zm0 160v102.9c0 40.2-100.4 73.1-224 73.1S0 479.12 0 438.87V336c48.12 33.13 136.2 48.63 224 48.63S399.9 369.1 448 336z"})))};function Uq(){return Uq=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Uq.apply(this,arguments)}var Kq,qq=function(t){return e.createElement("svg",Uq({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Vq||(Vq=e.createElement("path",{d:"M260.353 254.878L131.538 33.1a2.208 2.208 0 00-3.829.009L.3 254.887a2.234 2.234 0 000 2.235L129.116 478.9a2.208 2.208 0 003.83-.009l127.412-221.778a2.239 2.239 0 00-.005-2.235zm39.078-25.713a2.19 2.19 0 001.9 1.111h66.509a2.226 2.226 0 001.9-3.341L259.115 33.111a2.187 2.187 0 00-1.9-1.111h-66.508a2.226 2.226 0 00-1.9 3.341zM511.7 254.886L384.9 33.112A2.2 2.2 0 00382.99 32h-66.6a2.226 2.226 0 00-1.906 3.34L440.652 256 314.481 476.66a2.226 2.226 0 001.906 3.34h66.6a2.2 2.2 0 001.906-1.112L511.7 257.114a2.243 2.243 0 000-2.228zm-145.684 30.031h-66.508a2.187 2.187 0 00-1.9 1.111l-108.8 190.631a2.226 2.226 0 001.9 3.341h66.509a2.187 2.187 0 001.9-1.111l108.8-190.631a2.226 2.226 0 00-1.901-3.341z"})))};function Gq(){return Gq=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Gq.apply(this,arguments)}var $q,Qq=function(t){return e.createElement("svg",Gq({viewBox:"0 0 16 16",fill:"currenColor",xmlns:"http://www.w3.org/2000/svg"},t),Kq||(Kq=e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16 1.5c0 .828-1.343 1.5-3 1.5s-3-.672-3-1.5S11.343 0 13 0s3 .672 3 1.5zM5 11.6v2.7c0 .9 1.3 1.6 3 1.6s3-.7 3-1.6v-2.7c-.8.7-1.9 1-3 1s-2.2-.3-3-1zM10 3v-.4c.8.7 1.9 1 3 1s2.2-.3 3-1v2.8c0 .8-1.2 1.5-2.8 1.6l-2.475 2.871c.176.192.275.404.275.629 0 .828-1.343 1.5-3 1.5s-3-.672-3-1.5a.9.9 0 01.232-.58L2.8 7.1C1.3 7 0 6.3 0 5.5V2.6c.8.7 1.9 1 3 1s2.2-.3 3-1V3h4zm-.276 6.272A5.27 5.27 0 008 9a5.88 5.88 0 00-.766.05A5.992 5.992 0 006.1 9.3L4 6.9c1.1-.2 2-.8 2-1.5V4h4v1.4c0 .7.7 1.3 1.8 1.5L9.724 9.272zM6 1.5C6 2.328 4.657 3 3 3s-3-.672-3-1.5S1.343 0 3 0s3 .672 3 1.5z"})))};function Xq(){return Xq=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Xq.apply(this,arguments)}var Jq,eG=function(t){return e.createElement("svg",Xq({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},t),$q||($q=e.createElement("path",{d:"M560 448h-48V113.5c0-27.25-21.5-49.5-48-49.5l-112 .01V128h96v384h112c8.875 0 16-7.125 16-15.1v-31.1c0-10.7-7.1-17.8-16-17.8zM280.3 1.007l-192 49.75C73.1 54.51 64 67.76 64 82.88V448H16c-8.875 0-16 7.125-16 15.1v31.1C0 504.9 7.125 512 16 512h304V33.13c0-21.5-19.5-37.373-39.7-32.123zM232 288c-13.25 0-24-14.37-24-31.1 0-17.62 10.75-31.1 24-31.1s24 12.6 24 30.2-10.7 32-24 32z"})))};function tG(){return tG=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},tG.apply(this,arguments)}var nG,iG=function(t){return e.createElement("svg",tG({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Jq||(Jq=e.createElement("path",{d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c39.77 0 72 32.24 72 72s-32.2 72-72 72c-39.76 0-72-32.24-72-72s32.2-72 72-72zm0 320c-52.93 0-100.9-21.53-135.7-56.29C136.5 349.9 176.5 320 224 320h64c47.54 0 87.54 29.88 103.7 71.71C356.9 426.5 308.9 448 256 448z"})))};function rG(){return rG=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},rG.apply(this,arguments)}var oG,aG=function(t){return e.createElement("svg",rG({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),nG||(nG=e.createElement("path",{d:"M20.763 14.255l-1.63-.912c.19-.911.19-1.784 0-2.696l1.63-.911a.437.437 0 00.19-.532 9.714 9.714 0 00-2.046-3.607.459.459 0 00-.569-.076l-1.63.911a7.611 7.611 0 00-2.273-1.329v-1.86c0-.19-.151-.38-.379-.418-1.402-.342-2.804-.304-4.13 0-.227.038-.34.227-.34.417v1.861c-.872.304-1.63.76-2.312 1.367l-1.63-.95a.459.459 0 00-.568.077A9.714 9.714 0 003.03 9.204c-.076.19 0 .418.19.532l1.629.911a8.05 8.05 0 000 2.696l-1.63.912a.437.437 0 00-.19.531 9.713 9.713 0 002.047 3.608c.152.152.379.19.568.076l1.63-.912a7.355 7.355 0 002.311 1.33v1.86c0 .19.152.38.341.456 1.402.304 2.804.266 4.13 0 .228-.076.38-.266.38-.456v-1.86a7.612 7.612 0 002.273-1.33l1.63.912a.458.458 0 00.568-.076c.947-1.025 1.629-2.24 2.084-3.608a.511.511 0 00-.228-.531zm-8.753.76c-1.705 0-3.031-1.33-3.031-3.039a3.02 3.02 0 013.031-3.038 3.044 3.044 0 013.031 3.038 3.02 3.02 0 01-3.03 3.038z",fill:"currentColor"})))};function sG(){return sG=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},sG.apply(this,arguments)}var uG,lG=function(t){return e.createElement("svg",sG({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),oG||(oG=e.createElement("path",{d:"M21 12c0-4.936-4.065-9-9-9-4.972 0-9 4.064-9 9 0 4.972 4.028 9 9 9 4.935 0 9-4.028 9-9zm-8.782-6.024c2.068 0 4.246 1.596 4.246 3.701 0 2.831-3.012 2.867-3.012 3.883v.037a.441.441 0 01-.436.435h-2.032a.42.42 0 01-.436-.435v-.146c0-1.487 1.125-2.068 1.96-2.54.726-.399 1.198-.69 1.198-1.234 0-.725-.944-1.197-1.67-1.197-.98 0-1.415.472-2.068 1.306a.453.453 0 01-.617.073l-1.27-.944c-.182-.145-.218-.399-.073-.617.98-1.488 2.25-2.322 4.21-2.322zm-.218 9c.907 0 1.67.762 1.67 1.67 0 .943-.763 1.668-1.67 1.668-.944 0-1.67-.725-1.67-1.669 0-.907.726-1.67 1.67-1.67z",fill:"currentColor"})))};function cG(){return cG=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},cG.apply(this,arguments)}var dG,hG=function(t){return e.createElement("svg",cG({"aria-hidden":"true","data-prefix":"fas","data-icon":"star",className:"star_svg__svg-inline--fa star_svg__fa-star",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},t),uG||(uG=e.createElement("path",{fill:"currentColor",d:"M316.7 17.8l65.43 132.4 146.4 21.29c26.27 3.796 36.79 36.09 17.75 54.59l-105.9 102.1 25.05 145.5c4.508 26.31-23.23 45.9-46.49 33.7L288 439.6l-130.9 68.7c-23.3 12.2-51-7.4-46.5-33.7l25.05-145.5-105.93-103c-19.03-18.5-8.516-50.79 17.75-54.59l146.4-21.29 65.43-132.4c11.8-23.903 45.7-23.606 57.4-.02z"})))};function fG(){return fG=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},fG.apply(this,arguments)}var pG,gG=function(t){return e.createElement("svg",fG({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},t),dG||(dG=e.createElement("path",{d:"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"})))},vG=(0,ct.Z)("ydb-user-settings");!function(e){e.light="light",e.dark="dark",e.system="system"}(pG||(pG={}));var mG=U((function(e){var t=e.settings.userSettings,n=t.theme,i=t.invertedDisks,r=t.useNodesEndpointInDiagnostics;return{theme:n,invertedDisks:JSON.parse(i),useNodesEndpointInDiagnostics:JSON.parse(r)}}),{setSettingValue:Ei})((function(e){return(0,ra.jsxs)(Tq,{children:[(0,ra.jsx)(Tq.Page,{id:"general",title:"General",icon:{data:hG,height:14,width:14},children:(0,ra.jsx)(Tq.Section,{title:"General",children:(0,ra.jsx)(Tq.Item,{title:"Interface theme",children:(0,ra.jsxs)(nh.E,{value:e.theme,onUpdate:function(t){e.setSettingValue(Zn,t)},children:[(0,ra.jsx)(nh.E.Option,{value:pG.system,children:"System"}),(0,ra.jsx)(nh.E.Option,{value:pG.light,children:"Light"}),(0,ra.jsx)(nh.E.Option,{value:pG.dark,children:"Dark"})]})})})}),(0,ra.jsx)(Tq.Page,{id:"experiments",title:"Experiments",icon:{data:gG},children:(0,ra.jsxs)(Tq.Section,{title:"Experiments",children:[(0,ra.jsx)(Tq.Item,{title:"Inverted disks space indicators",children:(0,ra.jsx)(ij.r,{checked:e.invertedDisks,onUpdate:function(t){e.setSettingValue(Fn,String(t))}})}),(0,ra.jsx)(Tq.Item,{title:"Break the Nodes tab in Diagnostics",renderTitleComponent:function(e){return(0,ra.jsxs)("div",{className:vG("item-with-popup"),children:[e,(0,ra.jsx)(Vp.J,{content:"Use /viewer/json/nodes endpoint for Nodes Tab in diagnostics. It returns incorrect data on older versions",contentClassName:vG("popup"),hasArrow:!0})]})},children:(0,ra.jsx)(ij.r,{checked:e.useNodesEndpointInDiagnostics,onUpdate:function(t){e.setSettingValue(jn,String(t))}})})]})})]})})),_G=(0,ct.Z)("kv-navigation");function yG(e){var t=e.ydbUser,n=e.logout,i=st();return(0,ra.jsxs)("div",{className:_G("internal-user"),children:[(0,ra.jsxs)("div",{className:_G("user-info-wrapper"),children:[(0,ra.jsx)("div",{className:_G("ydb-internal-user-title"),children:"YDB user"}),t&&(0,ra.jsx)("div",{className:_G("username"),children:t})]}),t?(0,ra.jsx)(dd.z,{view:"flat-secondary",onClick:n,title:"logout",children:(0,ra.jsx)(kd.J,{data:Pq,size:16})}):(0,ra.jsx)(dd.z,{view:"flat-secondary",title:"login",onClick:function(){i.push(ld(cd.auth,void 0,{returnUrl:encodeURI(location.href)}))},children:(0,ra.jsx)(kd.J,{data:jq,size:16})})]})}function bG(t){var n,i=t.isCompact,r=t.popupAnchor,o=t.ydbUser,a=(0,e.useState)(!1),s=(0,Ti.Z)(a,2),u=s[0],l=s[1],c=null!==o&&void 0!==o&&o.login?iG:eG;return(0,ra.jsx)(EK,{compact:i,item:{id:"user-popup",title:null!==(n=null===o||void 0===o?void 0:o.login)&&void 0!==n?n:"Account",current:u,icon:c,iconSize:22,onItemClick:function(){return l(!0)}},enableTooltip:!u,popupAnchor:r,popupVisible:u,onClosePopup:function(){return l(!1)},renderPopupContent:function(){return(0,ra.jsx)("div",{className:_G("ydb-user-wrapper"),children:(0,ra.jsx)(yG,{ydbUser:o.login,logout:o.logout})})}})}var wG,CG=[{id:ud.tenants.id,title:"Databases",icon:Qq,iconSize:20,location:ld(cd.cluster,{activeTab:ud.tenants.id}),locationKeys:["/tenant"]},{id:ud.nodes.id,title:"Nodes",icon:zq,iconSize:20,location:ld(cd.cluster,{activeTab:ud.nodes.id}),locationKeys:["/node"]},{id:ud.storage.id,title:"Storage",icon:Yq,iconSize:20,location:ld(cd.cluster,{activeTab:ud.storage.id}),locationKeys:["/storage"]},{id:ud.cluster.id,title:"Cluster",icon:qq,iconSize:20,location:ld(cd.cluster,{activeTab:ud.cluster.id}),locationKeys:["/cluster/cluster"]}];!function(e){e.UserSettings="UserSettings"}(wG||(wG={}));var kG=U((function(e){return{ydbUser:e.authentication.user,compact:JSON.parse(Ni(e,Bn))}}),{logout:function(){return Wi({request:window.api.logout(),actions:Ai})},setSettingValue:Ei})((function(t){var n=ut(),i=st(),r=(0,e.useState)(),o=(0,Ti.Z)(r,2),a=o[0],s=o[1],u=function(e){t.setSettingValue(Bn,JSON.stringify(e))};(0,e.useEffect)((function(){!1===t.compact&&u(t.compact)}),[]);var l=e.useMemo((function(){var e=n.pathname,t="/cluster"===e,r=CG.map((function(n){var r,o=null===(r=n.locationKeys)||void 0===r?void 0:r.filter((function(t){return e.startsWith(t)})),a=o&&o.length>0||n.location.startsWith(e);return t&&n.id!==ud.tenants.id&&(a=!1),{id:n.id,title:n.title,icon:n.icon,iconSize:n.iconSize,current:a,onItemClick:function(){i.push(n.location)}}}));return r}),[n,i]);return(0,ra.jsx)(e.Fragment,{children:(0,ra.jsx)(SK,{logo:{text:"YDB",icon:aY,onClick:function(){return i.push("/")}},menuItems:l,compact:t.compact,onChangeCompact:u,className:_G(),renderContent:function(){return t.children},renderFooter:function(n){var i=n.compact,r=n.asideRef;return(0,ra.jsxs)(e.Fragment,{children:[(0,ra.jsx)(EK,{compact:i,item:{id:"documentation",title:"Documentation",icon:lG,iconSize:24,onItemClick:function(){window.open("https://ydb.tech/docs","_blank","noreferrer")}}}),(0,ra.jsx)(EK,{item:{id:"user-settings",title:"Settings",icon:aG,iconSize:24,current:a===wG.UserSettings,onItemClick:function(){s(a===wG.UserSettings?void 0:wG.UserSettings)}},compact:i}),(0,ra.jsx)(bG,{isCompact:i,popupAnchor:r,ydbUser:{login:t.ydbUser,logout:t.logout}})]})},panelItems:[{id:"user-settings",visible:a===wG.UserSettings,content:(0,ra.jsx)(mG,{})}],onClosePanel:function(){s(void 0)}})})}));j_.languages.register({id:AF}),j_.languages.setMonarchTokensProvider(AF,{defaultToken:"text",ignoreCase:!0,tokenPostfix:".yql",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],keywordControl:"bind|block|declare|export|import|lambda|let|quote|return".split("|"),escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(#)((?:\w|[\\+-=<>'"&#])+)/,["delimiter","constant"]],[/(?:\b(?:(defun|defmethod|defmacro))\b)(\s+)((?:\w|-|\?)*)/,["type.function","text","entity.name"]],[/(\*)(\S*)(\*)/,["delimiter","variable","delimiter"]],{include:"@strings"},[/'[^#\s)(]+/,"variable.parameter"],[/[(){}[\]]/,"@brackets"],[/(?:(?:<=?|>=?|==|!=|[-+*/%])|[a-zA-Z][a-zA-Z0-9!]*)/,{cases:{"@keywordControl":{token:"keyword.operator"},"@default":"identifier"}}]],whitespace:[[/\s+/,"white"]],comment:[[/#.*/,"comment"]],strings:[[/'?"(?=.)/,{token:"string",next:"@qqstring"}],[/'?[@]{2}/,{token:"string",next:"@multiline"}],[/'?x"(?:[0-9A-Fa-f]{2})*"/,"string"]],qqstring:[[/\\(?:[0-3][0-7][0-7]|x[0-9A-Fa-f]{2}|["tnrbfav\\])/,"string.escape"],[/[^"\\]+/,"string"],[/"|$/,{token:"string",next:"@pop"}]],multiline:[[/[^@]+/,"string"],[/[@]{2}/,{token:"string",next:"@pop"}],[/./,{token:"string"}]]}});var SG=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.isAuthenticated,n=e.getUser;t&&n()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.isAuthenticated,i=t.getUser,r=t.internalUser;!n||e.isAuthenticated&&r||i()}},{key:"renderContentWithNavigation",value:function(){var e=this.props,t=e.singleClusterMode,n=e.clusterName;return(0,ra.jsxs)(kG,{children:[(0,ra.jsx)(_Y,{singleClusterMode:t,clusterName:n}),(0,ra.jsx)("div",{id:"fullscreen-root"})]})}},{key:"render",value:function(){return(0,ra.jsx)(bY,{children:this.renderContentWithNavigation()})}}]),n}(e.Component);var xG=U((function(e){var t;return{isAuthenticated:e.authentication.isAuthenticated,internalUser:e.authentication.user,singleClusterMode:e.singleClusterMode,clusterName:null===(t=e.cluster.data)||void 0===t?void 0:t.Name}}),{getUser:function(){return Wi({request:window.api.whoami(),actions:Pi,dataHandler:function(e){var t=e.UserSID;return"Login"===e.AuthType?t:void 0}})}})(SG),LG=function(e){e&&e instanceof Function&&n.e(4529).then(n.bind(n,34529)).then((function(t){var n=t.getCLS,i=t.getFID,r=t.getFCP,o=t.getLCP,a=t.getTTFB;n(e),i(e),r(e),o(e),a(e)}))},EG=sd(),NG=EG.store,DG=EG.history;window.store=NG,t.render((0,ra.jsx)(e.StrictMode,{children:(0,ra.jsx)(f,{store:NG,children:(0,ra.jsx)(YH.Provider,{value:DG,children:(0,ra.jsx)(xG,{})})})}),document.getElementById("root")),LG()}()}();
-//# sourceMappingURL=main.8120faa2.js.map \ No newline at end of file
diff --git a/ydb/core/viewer/monitoring/static/js/main.8a169fdc.js b/ydb/core/viewer/monitoring/static/js/main.8a169fdc.js
new file mode 100644
index 0000000000..a189c81442
--- /dev/null
+++ b/ydb/core/viewer/monitoring/static/js/main.8a169fdc.js
@@ -0,0 +1,3 @@
+/*! For license information please see main.8a169fdc.js.LICENSE.txt */
+!function(){var e={67228:function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i},e.exports.__esModule=!0,e.exports.default=e.exports},22858:function(e){e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports},23646:function(e,t,n){var i=n(67228);e.exports=function(e){if(Array.isArray(e))return i(e)},e.exports.__esModule=!0,e.exports.default=e.exports},81506:function(e){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports},48926:function(e){function t(e,t,n,i,r,o,a){try{var s=e[o](a),u=s.value}catch(l){return void n(l)}s.done?t(u):Promise.resolve(u).then(i,r)}e.exports=function(e){return function(){var n=this,i=arguments;return new Promise((function(r,o){var a=e.apply(n,i);function s(e){t(a,r,o,s,u,"next",e)}function u(e){t(a,r,o,s,u,"throw",e)}s(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},34575:function(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},93913:function(e){function t(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}e.exports=function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports},43269:function(e,t,n){var i=n(60379);e.exports=function(e,t){var n="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=i(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}},e.exports.__esModule=!0,e.exports.default=e.exports},99842:function(e,t,n){var i=n(29754),r=n(57067),o=n(78585);e.exports=function(e){var t=r();return function(){var n,r=i(e);if(t){var a=i(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return o(this,n)}},e.exports.__esModule=!0,e.exports.default=e.exports},59713:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},29754:function(e){function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},2205:function(e,t,n){var i=n(99489);e.exports=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&i(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},57067:function(e){e.exports=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.__esModule=!0,e.exports.default=e.exports},46860:function(e){e.exports=function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports},13884:function(e){e.exports=function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,r,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(i=n.next()).done)&&(o.push(i.value),!t||o.length!==t);a=!0);}catch(u){s=!0,r=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw r}}return o}},e.exports.__esModule=!0,e.exports.default=e.exports},80521:function(e){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},98206:function(e){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},78585:function(e,t,n){var i=n(50008).default,r=n(81506);e.exports=function(e,t){if(t&&("object"===i(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return r(e)},e.exports.__esModule=!0,e.exports.default=e.exports},99489:function(e){function t(n,i){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,i)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},63038:function(e,t,n){var i=n(22858),r=n(13884),o=n(60379),a=n(80521);e.exports=function(e,t){return i(e)||r(e,t)||o(e,t)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},319:function(e,t,n){var i=n(23646),r=n(46860),o=n(60379),a=n(98206);e.exports=function(e){return i(e)||r(e)||o(e)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},50008:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},60379:function(e,t,n){var i=n(67228);e.exports=function(e,t){if(e){if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},87757:function(e,t,n){e.exports=n(9780)},97851:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.STRICT=void 0,t.STRICT=!0},6438:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_SYSTEM_DATE_FORMAT=void 0,t.DEFAULT_SYSTEM_DATE_FORMAT="YYYY-MM-DD"},61819:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(97851),t),r(n(6438),t),r(n(46445),t),r(n(72132),t)},46445:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UtcTimeZone=void 0,t.UtcTimeZone="UTC"},72132:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CollatorSensitivity=void 0,t.CollatorSensitivity={ACCENT:"accent",BASE:"base",CASE:"case",VARIANT:"variant"}},60052:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.isDateTime=t.dateTime=t.createUTCDateTime=t.createDateTime=void 0;var r=i(n(8047)),o=n(61819),a=n(83671);t.createDateTime=function(e,t,n){var i=t?(0,r.default)(e,t,o.STRICT):(0,r.default)(e);return n?i.tz(n):i};t.createUTCDateTime=function(e,t){return t?r.default.utc(e,t,o.STRICT):r.default.utc(e)};t.dateTime=function(e){var n=e||{},i=n.input,s=n.format,u=n.timeZone,l=n.lang,c=r.default.locale(),d=l&&c!==l;d&&r.default.locale(l);var h=(0,a.compareStrings)(u,o.UtcTimeZone,{ignoreCase:!0})?(0,t.createUTCDateTime)(i,s):(0,t.createDateTime)(i,s,u);return d&&r.default.locale(c),h};t.isDateTime=function(e){return r.default.isDayjs(e)}},25079:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(60052),t)},77956:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseDateMath=t.parse=t.isValid=void 0;var i=n(32048),r=n(25079),o=["y","Q","M","w","d","h","m","s"];function a(e,t,n){if(e){if("string"===typeof e){var o=void 0,a="",u=void 0,l=void 0;return"now"===e.substring(0,3)?(o=(0,r.dateTime)({timeZone:n}),a=e.substring("now".length)):(-1===(u=e.indexOf("||"))?(l=e,a=""):(l=e.substring(0,u),a=e.substring(u+2)),o=(0,r.dateTime)({input:l})),a.length?s(a,o,t):o}return(0,r.isDateTime)(e)?e:(0,i.isDate)(e)?(0,r.dateTime)({input:e}):void 0}}function s(e,t,n){for(var r=e.replace(/\s/g,""),a=t,s=0,u=r.length;s<u;){var l=r.charAt(s++),c=void 0,d=void 0;if("/"===l)c=0;else if("+"===l)c=1;else{if("-"!==l)return;c=2}if(isNaN(parseInt(r.charAt(s),10)))d=1;else if(2===r.length)d=r.charAt(s);else{for(var h=s;!isNaN(parseInt(r.charAt(s),10));)if(++s>10)return;d=parseInt(r.substring(h,s),10)}if(0===c&&1!==d)return;var f=r.charAt(s++);if(!(0,i.includes)(o,f))return;0===c?a=n?a.endOf(f):a.startOf(f):1===c?a=a.add(d,f):2===c&&(a=a.subtract(d,f))}return a}t.isValid=function(e){var t=a(e);return!!t&&(!!(0,r.isDateTime)(t)&&t.isValid())},t.parse=a,t.parseDateMath=s},42259:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(77956),t)},8047:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},r=i(n(99517)),o=i(n(72547)),a=i(n(51235)),s=i(n(28699)),u=i(n(27369)),l=i(n(51277)),c=i(n(51714)),d=i(n(63540)),h=i(n(18272)),f=i(n(79748)),p=i(n(14230));r.default.extend(o.default),r.default.extend(a.default),r.default.extend(s.default),r.default.extend(l.default),r.default.extend(c.default),r.default.extend(d.default),r.default.extend(h.default),r.default.extend(f.default),r.default.extend(p.default),r.default.extend(u.default),e.exports=r.default},7406:function(e,t,n){"use strict";t.J=void 0;var i=n(25079);var r=n(42259);var o=n(10969);Object.defineProperty(t,"J",{enumerable:!0,get:function(){return o.dateTimeParse}});var a=n(23464);var s=n(6706)},10969:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(56729),t)},56729:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.dateTimeParse=void 0;var r=i(n(8047)),o=n(25079),a=n(42259);t.dateTimeParse=function(e,t){if(e){r.default.tz.setDefault(null===t||void 0===t?void 0:t.timeZone);var n=function(e,t){var n;if("string"===typeof e&&-1!==e.indexOf("now")){var i=null===(n=null===t||void 0===t?void 0:t.allowRelative)||void 0===n||n;if(!(0,a.isValid)(e)||!i)return;return(0,a.parse)(e,null===t||void 0===t?void 0:t.roundUp,null===t||void 0===t?void 0:t.timeZone)}var r=t||{},s=r.format,u=r.lang,l=(0,o.dateTime)({input:e,format:s,lang:u,timeZone:null===t||void 0===t?void 0:t.timeZone});return l.isValid()?l:void 0}(e,t);return r.default.tz.setDefault(),n}}},6706:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(28170),t)},28170:function(e,t,n){"use strict";var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var n,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(u){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(n=1,i&&(r=2&s[0]?i.return:s[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,s[1])).done)return r;switch(i=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,i=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){a.label=s[1];break}if(6===s[0]&&a.label<r[1]){a.label=r[1],r=s;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(s);break}r[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(u){s=[6,u],i=0}finally{n=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.settings=void 0;var a=o(n(8047)),s=function(){function e(){this.loadedLocales=new Set(["en"]),this.updateLocale({weekStart:1})}return e.prototype.loadLocale=function(e){return i(this,void 0,void 0,(function(){var t;return r(this,(function(i){switch(i.label){case 0:if(this.isLocaleLoaded(e))return[3,4];i.label=1;case 1:return i.trys.push([1,3,,4]),t=e.toLocaleLowerCase(),[4,n(36817)("./".concat(t,".js"))];case 2:return i.sent(),this.loadedLocales.add(t),[3,4];case 3:throw i.sent(),new Error("Can't load locale \"".concat(e,'". Either it does not exist, or there was a connection problem. Check the dayjs locations list: https://github.com/iamkun/dayjs/tree/dev/src/locale'));case 4:return[2]}}))}))},e.prototype.getLocale=function(){return a.default.locale()},e.prototype.setLocale=function(e){if(!this.isLocaleLoaded(e))throw new Error('Seems you are trying to set an unloaded locale "'.concat(e,"\". Load it first by calling settings.loadLocale('").concat(e,"'). Check the dayjs locations list: https://github.com/iamkun/dayjs/tree/dev/src/locale"));a.default.locale(e)},e.prototype.updateLocale=function(e){var t=this.getLocale();a.default.updateLocale(t,e)},e.prototype.isLocaleLoaded=function(e){var t=e.toLocaleLowerCase();return this.loadedLocales.has(t)},e}();t.settings=new s},23464:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(20425),t)},20425:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getTimeZonesList=t.guessUserTimeZone=t.getTimeZone=void 0;var r=i(n(8047)),o=n(61819);t.getTimeZone=function(e){var t;return null!==(t=null===e||void 0===e?void 0:e.timeZone)&&void 0!==t?t:o.UtcTimeZone};t.guessUserTimeZone=function(){return r.default.tz.guess()};t.getTimeZonesList=function(){var e;return(null===(e=Intl.supportedValuesOf)||void 0===e?void 0:e.call(Intl,"timeZone"))||[]}},83671:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(84078),t)},84078:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compareStrings=void 0;var i=n(61819);t.compareStrings=function(e,t,n){if(void 0===n&&(n={}),"string"!==typeof e||"string"!==typeof t)return!1;var r,o=n.ignoreCase;"boolean"===typeof o&&(r={sensitivity:o?i.CollatorSensitivity.BASE:i.CollatorSensitivity.CASE});return 0===e.localeCompare(t,void 0,r)}},24755:function(e,t,n){"use strict";n.r(t),n.d(t,{I18N:function(){return d},PluralForm:function(){return i}});var i,r=n(4942),o=n(15671),a=n(43144),s=n(29439),u=/{{(.*?)}}/g;function l(e,t){return 0===e?t.None:1===e||-1===e?t.One:t.Many}function c(e,t){var n=Math.abs(e%10),i=Math.abs(e%100);return 0===e?t.None:1===n&&11!==i?t.One:n>1&&n<5&&(i<10||i>20)?t.Few:t.Many}!function(e){e[e.One=0]="One",e[e.Few=1]="Few",e[e.Many=2]="Many",e[e.None=3]="None"}(i||(i={}));var d=function(){function e(t){(0,o.Z)(this,e),this.data={},this.lang=void 0,this.pluralizers={en:l,ru:c},this.logger=null,this.logger=(null===t||void 0===t?void 0:t.logger)||null}return(0,a.Z)(e,[{key:"setLang",value:function(e){this.lang=e}},{key:"configurePluralization",value:function(e){this.pluralizers=Object.assign({},this.pluralizers,e)}},{key:"registerKeyset",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this.data[e]&&Object.prototype.hasOwnProperty.call(this.data[e],t))throw new Error("Keyset '".concat(t,"' is already registered, aborting!"));this.data[e]=Object.assign({},this.data[e],(0,r.Z)({},t,n))}},{key:"registerKeysets",value:function(e,t){var n=this;Object.keys(t).forEach((function(i){n.registerKeyset(e,i,t[i])}))}},{key:"has",value:function(e,t,n){var i=this.getLanguageData(n);return Boolean(i&&i[e]&&i[e][t])}},{key:"i18n",value:function(e,t,n){var r=this.getLanguageData(this.lang);if("undefined"===typeof r)throw new Error("Language '".concat(this.lang,"' is not defined, make sure you call setLang for the same language you called registerKeysets for!"));if(0===Object.keys(r).length)return this.warn("Language data is empty."),t;var o=r[e];if(!o)return this.warn("Keyset not found.",e),t;if(0===Object.keys(o).length)return this.warn("Keyset is empty.",e),t;var a,l=o&&o[t];if("undefined"===typeof l)return this.warn("Missing key.",e,t),t;if(Array.isArray(l)){if(l.length<3)return this.warn("Missing required plurals",e,t),t;var c=Number(null===n||void 0===n?void 0:n.count);if(Number.isNaN(c))return this.warn("Missing params.count for key.",e,t),t;a=l[this.getLanguagePluralizer(this.lang)(c,i)]||l[i.Many],void 0===l[i.None]&&this.warn("Missing key for 0",e,t)}else a=l;return n&&(a=function(e,t){for(var n,i="",r=u.lastIndex=0;n=u.exec(e);){r!==n.index&&(i+=e.slice(r,n.index)),r=u.lastIndex;var o=n,a=(0,s.Z)(o,2),l=a[0],c=a[1];Object.prototype.hasOwnProperty.call(t,c)?i+=t[c]:i+=l}return r<e.length&&(i+=e.slice(r)),i}(a,n)),a}},{key:"keyset",value:function(e){var t=this;return function(n,i){return t.i18n(e,n,i)}}},{key:"warn",value:function(e,t,n){var i,r="";t?(r+=t,n&&(r+=".".concat(n))):r="languageData",null===(i=this.logger)||void 0===i||i.log("I18n: ".concat(e),{level:"info",logger:r,extra:{type:"i18n"}})}},{key:"getLanguageData",value:function(e){var t=e||this.lang;return t?this.data[t]:void 0}},{key:"getLanguagePluralizer",value:function(e){var t=e?this.pluralizers[e]:void 0;return t||this.warn("Pluralization is not configured for language '".concat(e,"', falling back to the english ruleset")),t||l}}]),e}()},39779:function(e,t,n){var i,r,o;"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self&&self,r=[n(91386),n(4519)],i=function(t,n){"use strict";var i,r;function o(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function a(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!==typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var a=i?Object.getOwnPropertyDescriptor(e,r):null;a&&(a.get||a.set)?Object.defineProperty(n,r,a):n[r]=e[r]}return n.default=e,t&&t.set(e,n),n}function s(e){return e&&e.__esModule?e:{default:e}}function u(e){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function d(e,t,n){return t&&c(e.prototype,t),n&&c(e,n),e}function h(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e){var t=m();return function(){var n,i=_(e);if(t){var r=_(this).constructor;n=Reflect.construct(i,arguments,r)}else n=i.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?g(e):t}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _(e){return _=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_(e)}function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){w(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t=s(t),n=a(n);var C={x:"clientWidth",y:"clientHeight"},k={x:"clientTop",y:"clientLeft"},S={x:"innerWidth",y:"innerHeight"},x={x:"offsetWidth",y:"offsetHeight"},L={x:"offsetLeft",y:"offsetTop"},E={x:"overflowX",y:"overflowY"},N={x:"scrollWidth",y:"scrollHeight"},D={x:"scrollLeft",y:"scrollTop"},M={x:"width",y:"height"},T=function(){},O=!!function(){if("undefined"===typeof window)return!1;var e=!1;try{document.createElement("div").addEventListener("test",T,{get passive(){return e=!0,!1}})}catch(t){}return e}()&&{passive:!0},I="ReactList failed to reach a stable state.",A=40,P=function(e,t){for(var n in t)if(e[n]!==t[n])return!1;return!0},R=function(e){for(var t=e.props.axis,n=e.getEl(),i=E[t];n=n.parentElement;)switch(window.getComputedStyle(n)[i]){case"auto":case"scroll":case"overlay":return n}return window},Z=function(e){var t=e.props.axis,n=e.scrollParent;return n===window?window[S[t]]:n[C[t]]},F=function(e,t){var n=e.length,i=e.minSize,r=e.type,o=t.from,a=t.size,s=t.itemsPerRow,u=(a=Math.max(a,i))%s;return u&&(a+=s-u),a>n&&(a=n),(u=(o="simple"!==r&&o?Math.max(Math.min(o,n-a),0):0)%s)&&(o-=u,a+=u),o===t.from&&a==t.size?t:b(b({},t),{},{from:o,size:a})};e.exports=(r=i=function(e){h(i,e);var t=p(i);function i(e){var n;return l(this,i),(n=t.call(this,e)).state=F(e,{itemsPerRow:1,from:e.initialIndex,size:0}),n.cache={},n.cachedScrollPosition=null,n.prevPrevState={},n.unstable=!1,n.updateCounter=0,n}return d(i,null,[{key:"getDerivedStateFromProps",value:function(e,t){var n=F(e,t);return n===t?null:n}}]),d(i,[{key:"componentDidMount",value:function(){this.updateFrameAndClearCache=this.updateFrameAndClearCache.bind(this),window.addEventListener("resize",this.updateFrameAndClearCache),this.updateFrame(this.scrollTo.bind(this,this.props.initialIndex))}},{key:"componentDidUpdate",value:function(e){var t=this;if(this.props.axis!==e.axis&&this.clearSizeCache(),!this.unstable){if(++this.updateCounter>A)return this.unstable=!0,console.error(I);this.updateCounterTimeoutId||(this.updateCounterTimeoutId=setTimeout((function(){t.updateCounter=0,delete t.updateCounterTimeoutId}),0)),this.updateFrame()}}},{key:"maybeSetState",value:function(e,t){if(P(this.state,e))return t();this.setState(e,t)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.updateFrameAndClearCache),this.scrollParent.removeEventListener("scroll",this.updateFrameAndClearCache,O),this.scrollParent.removeEventListener("mousewheel",T,O)}},{key:"getOffset",value:function(e){var t=this.props.axis,n=e[k[t]]||0,i=L[t];do{n+=e[i]||0}while(e=e.offsetParent);return n}},{key:"getEl",value:function(){return this.el||this.items}},{key:"getScrollPosition",value:function(){if("number"===typeof this.cachedScrollPosition)return this.cachedScrollPosition;var e=this.scrollParent,t=this.props.axis,n=D[t],i=e===window?document.body[n]||document.documentElement[n]:e[n],r=this.getScrollSize()-this.props.scrollParentViewportSizeGetter(this),o=Math.max(0,Math.min(i,r)),a=this.getEl();return this.cachedScrollPosition=this.getOffset(e)+o-this.getOffset(a),this.cachedScrollPosition}},{key:"setScroll",value:function(e){var t=this.scrollParent,n=this.props.axis;if(e+=this.getOffset(this.getEl()),t===window)return window.scrollTo(0,e);e-=this.getOffset(this.scrollParent),t[D[n]]=e}},{key:"getScrollSize",value:function(){var e=this.scrollParent,t=document,n=t.body,i=t.documentElement,r=N[this.props.axis];return e===window?Math.max(n[r],i[r]):e[r]}},{key:"hasDeterminateSize",value:function(){var e=this.props,t=e.itemSizeGetter;return"uniform"===e.type||t}},{key:"getStartAndEnd",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.threshold,t=this.getScrollPosition(),n=Math.max(0,t-e),i=t+this.props.scrollParentViewportSizeGetter(this)+e;return this.hasDeterminateSize()&&(i=Math.min(i,this.getSpaceBefore(this.props.length))),{start:n,end:i}}},{key:"getItemSizeAndItemsPerRow",value:function(){var e=this.props,t=e.axis,n=e.useStaticSize,i=this.state,r=i.itemSize,o=i.itemsPerRow;if(n&&r&&o)return{itemSize:r,itemsPerRow:o};var a=this.items.children;if(!a.length)return{};var s=a[0],u=s[x[t]],l=Math.abs(u-r);if((isNaN(l)||l>=1)&&(r=u),!r)return{};for(var c=L[t],d=s[c],h=a[o=1];h&&h[c]===d;h=a[o])++o;return{itemSize:r,itemsPerRow:o}}},{key:"clearSizeCache",value:function(){this.cachedScrollPosition=null}},{key:"updateFrameAndClearCache",value:function(e){return this.clearSizeCache(),this.updateFrame(e)}},{key:"updateFrame",value:function(e){switch(this.updateScrollParent(),"function"!=typeof e&&(e=T),this.props.type){case"simple":return this.updateSimpleFrame(e);case"variable":return this.updateVariableFrame(e);case"uniform":return this.updateUniformFrame(e)}}},{key:"updateScrollParent",value:function(){var e=this.scrollParent;this.scrollParent=this.props.scrollParentGetter(this),e!==this.scrollParent&&(e&&(e.removeEventListener("scroll",this.updateFrameAndClearCache),e.removeEventListener("mousewheel",T)),this.clearSizeCache(),this.scrollParent.addEventListener("scroll",this.updateFrameAndClearCache,O),this.scrollParent.addEventListener("mousewheel",T,O))}},{key:"updateSimpleFrame",value:function(e){var t=this.getStartAndEnd().end,n=this.items.children,i=0;if(n.length){var r=this.props.axis,o=n[0],a=n[n.length-1];i=this.getOffset(a)+a[x[r]]-this.getOffset(o)}if(i>t)return e();var s=this.props,u=s.pageSize,l=s.length,c=Math.min(this.state.size+u,l);this.maybeSetState({size:c},e)}},{key:"updateVariableFrame",value:function(e){this.props.itemSizeGetter||this.cacheSizes();for(var t=this.getStartAndEnd(),n=t.start,i=t.end,r=this.props,o=r.length,a=r.pageSize,s=0,u=0,l=0,c=o-1;u<c;){var d=this.getSizeOfItem(u);if(null==d||s+d>n)break;s+=d,++u}for(var h=o-u;l<h&&s<i;){var f=this.getSizeOfItem(u+l);if(null==f){l=Math.min(l+a,h);break}s+=f,++l}this.maybeSetState(F(this.props,{from:u,itemsPerRow:1,size:l}),e)}},{key:"updateUniformFrame",value:function(e){var t=this.getItemSizeAndItemsPerRow(),n=t.itemSize,i=t.itemsPerRow;if(!n||!i)return e();var r=this.getStartAndEnd(),o=r.start,a=r.end,s=F(this.props,{from:Math.floor(o/n)*i,size:(Math.ceil((a-o)/n)+1)*i,itemsPerRow:i}),u=s.from,l=s.size;return this.maybeSetState({itemsPerRow:i,from:u,itemSize:n,size:l},e)}},{key:"getSpaceBefore",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null!=t[e])return t[e];var n=this.state,i=n.itemSize,r=n.itemsPerRow;if(i)return t[e]=Math.floor(e/r)*i;for(var o=e;o>0&&null==t[--o];);for(var a=t[o]||0,s=o;s<e;++s){t[s]=a;var u=this.getSizeOfItem(s);if(null==u)break;a+=u}return t[e]=a}},{key:"cacheSizes",value:function(){for(var e=this.cache,t=this.state.from,n=this.items.children,i=x[this.props.axis],r=0,o=n.length;r<o;++r)e[t+r]=n[r][i]}},{key:"getSizeOfItem",value:function(e){var t=this.cache,n=this.items,i=this.props,r=i.axis,o=i.itemSizeGetter,a=i.itemSizeEstimator,s=i.type,u=this.state,l=u.from,c=u.itemSize,d=u.size;if(c)return c;if(o)return o(e);if(e in t)return t[e];if("simple"===s&&e>=l&&e<l+d&&n){var h=n.children[e-l];if(h)return h[x[r]]}return a?a(e,t):void 0}},{key:"scrollTo",value:function(e){null!=e&&this.setScroll(this.getSpaceBefore(e))}},{key:"scrollAround",value:function(e){var t=this.getScrollPosition(),n=this.getSpaceBefore(e),i=n-this.props.scrollParentViewportSizeGetter(this)+this.getSizeOfItem(e),r=Math.min(i,n),o=Math.max(i,n);return t<=r?this.setScroll(r):t>o?this.setScroll(o):void 0}},{key:"getVisibleRange",value:function(){for(var e,t,n=this.state,i=n.from,r=n.size,o=this.getStartAndEnd(0),a=o.start,s=o.end,u={},l=i;l<i+r;++l){var c=this.getSpaceBefore(l,u),d=c+this.getSizeOfItem(l);null==e&&d>a&&(e=l),null!=e&&c<s&&(t=l)}return[e,t]}},{key:"renderItems",value:function(){for(var e=this,t=this.props,n=t.itemRenderer,i=t.itemsRenderer,r=this.state,o=r.from,a=r.size,s=[],u=0;u<a;++u)s.push(n(o+u,u));return i(s,(function(t){return e.items=t}))}},{key:"render",value:function(){var e=this,t=this.props,i=t.axis,r=t.length,o=t.type,a=t.useTranslate3d,s=this.state,u=s.from,l=s.itemsPerRow,c=this.renderItems();if("simple"===o)return c;var d={position:"relative"},h={},f=Math.ceil(r/l)*l,p=this.getSpaceBefore(f,h);p&&(d[M[i]]=p,"x"===i&&(d.overflowX="hidden"));var v=this.getSpaceBefore(u,h),g="x"===i?v:0,m="y"===i?v:0,_=a?"translate3d(".concat(g,"px, ").concat(m,"px, 0)"):"translate(".concat(g,"px, ").concat(m,"px)"),y={msTransform:_,WebkitTransform:_,transform:_};return n.default.createElement("div",{style:d,ref:function(t){return e.el=t}},n.default.createElement("div",{style:y},c))}}]),i}(n.Component),w(i,"displayName","ReactList"),w(i,"propTypes",{axis:t.default.oneOf(["x","y"]),initialIndex:t.default.number,itemRenderer:t.default.func,itemSizeEstimator:t.default.func,itemSizeGetter:t.default.func,itemsRenderer:t.default.func,length:t.default.number,minSize:t.default.number,pageSize:t.default.number,scrollParentGetter:t.default.func,scrollParentViewportSizeGetter:t.default.func,threshold:t.default.number,type:t.default.oneOf(["simple","variable","uniform"]),useStaticSize:t.default.bool,useTranslate3d:t.default.bool}),w(i,"defaultProps",{axis:"y",itemRenderer:function(e,t){return n.default.createElement("div",{key:t},e)},itemsRenderer:function(e,t){return n.default.createElement("div",{ref:t},e)},length:0,minSize:1,pageSize:10,scrollParentGetter:R,scrollParentViewportSizeGetter:Z,threshold:100,type:"simple",useStaticSize:!1,useTranslate3d:!1}),r)},void 0===(o="function"===typeof i?i.apply(t,r):i)||(e.exports=o)},9500:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActionTooltip=void 0;var i=n(15791),r=(0,i.__importDefault)(n(4519)),o=n(90),a=n(34327),s=n(95716),u=(0,o.block)("action-tooltip");t.ActionTooltip=function(e){var t=e.title,n=e.hotkey,o=e.description,l=e.children,c=(0,i.__rest)(e,["title","hotkey","description","children"]);return r.default.createElement(s.Tooltip,Object.assign({},c,{className:u(null,c.className),contentClassName:u("layout"),content:r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:u("heading")},r.default.createElement("div",{className:u("title")},t),n&&r.default.createElement(a.Hotkey,{view:"dark",value:n,className:u("hotkey")})),o&&r.default.createElement("div",{className:u("description")},o))}),l)}},148:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActionTooltip=void 0;var i=n(9500);Object.defineProperty(t,"ActionTooltip",{enumerable:!0,get:function(){return i.ActionTooltip}})},70391:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ArrowToggle=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(96225),a=n(85607),s=(0,r.block)("arrow-toggle");t.ArrowToggle=function(e){var t=e.size,n=void 0===t?16:t,r=e.direction,u=void 0===r?"bottom":r,l=e.className;return i.default.createElement("span",{style:{width:n,height:n},className:s({direction:u},l)},i.default.createElement(o.Icon,{data:a.ChevronDownIcon,size:n}))}},78019:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(70391),t)},64983:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Breadcrumbs=t.FirstDisplayedItemsCount=t.LastDisplayedItemsCount=void 0;var s,u=n(15791),l=(0,u.__importStar)(n(4519)),c=(0,u.__importDefault)(n(17571)),d=(0,u.__importDefault)(n(81451)),h=n(90),f=n(48350),p=n(97396),v=n(78272),g=200,m=(0,h.block)("breadcrumbs");!function(e){e[e.One=1]="One",e[e.Two=2]="Two"}(s=t.LastDisplayedItemsCount||(t.LastDisplayedItemsCount={})),function(e){e[e.Zero=0]="Zero",e[e.One=1]="One"}(t.FirstDisplayedItemsCount||(t.FirstDisplayedItemsCount={}));var _=function(e){o(n,e);var t=a(n);function n(e){var r;return i(this,n),(r=t.call(this,e)).handleResize=function(){var e=n.prepareInitialState(r.props);r.setState(e,r.recalculate)},r.handleResize=(0,c.default)(r.handleResize,g),r.resizeObserver=new d.default(r.handleResize),r.container=l.createRef(),r.state=n.prepareInitialState(e),r}return r(n,[{key:"componentDidMount",value:function(){this.recalculate(),this.resizeObserver.observe(this.container.current)}},{key:"componentDidUpdate",value:function(e){e.items!==this.state.allItems&&this.recalculate()}},{key:"componentWillUnmount",value:function(){this.resizeObserver.disconnect()}},{key:"render",value:function(){var e=this.props.className,t=this.state.calculated,n=this.renderRootItem();return l.createElement("div",{className:m({calculated:t?"yes":"no"},e)},l.createElement("div",{className:m("inner"),ref:this.container},n,this.renderMoreItem(),this.renderVisibleItems()))}},{key:"renderItem",value:function(e,t,n){var i=this.props.renderItemContent;return l.createElement(f.BreadcrumbsItem,{data:e,isCurrent:t,isPrevCurrent:n,renderItem:i})}},{key:"renderItemDivider",value:function(){var e=this.props.renderItemDivider;return l.createElement(p.BreadcrumbsSeparator,{renderItemDivider:e})}},{key:"renderRootItem",value:function(){var e=this.props,t=e.renderRootContent,n=e.renderItemContent,i=this.state,r=i.rootItem,o=0===i.visibleItems.length;return r?l.createElement(f.BreadcrumbsItem,{data:r,isCurrent:o,isPrevCurrent:!1,renderItem:t||n}):null}},{key:"renderVisibleItems",value:function(){var e=this;return this.state.visibleItems.map((function(t,n,i){var r=n===i.length-1,o=n===i.length-2;return l.createElement(l.Fragment,{key:n},e.renderItemDivider(),e.renderItem(t,r,o))}))}},{key:"renderMoreItem",value:function(){var e=this.state.hiddenItems;if(0===e.length)return null;var t=this.props,n=t.popupStyle,i=t.popupPlacement,r=t.renderItemDivider;return l.createElement(l.Fragment,null,l.createElement(p.BreadcrumbsSeparator,{renderItemDivider:r}),l.createElement(v.BreadcrumbsMore,{items:e,popupPlacement:i,popupStyle:n}))}},{key:"recalculate",value:function(){var e=this.props,t=e.items,n=e.lastDisplayedItemsCount,i=e.firstDisplayedItemsCount;if(this.container.current){for(var r=Array.from(this.container.current.querySelectorAll(".".concat(m("divider")))),o=Array.from(this.container.current.querySelectorAll(".".concat(m("item")))),a=this.container.current.offsetWidth,u=o.map((function(e){return e.scrollWidth})),l=r.map((function(e){return e.offsetWidth})),c=u.reduce((function(e,t,i,r){var o=r.length-1===i,a=n===s.Two&&r.length-2===i;return o||a?e+Math.min(t,200):e+t}),0)+l.reduce((function(e,t){return e+t}),0),d=1;c>a&&d<o.length-n;)1===d&&(c+=34+l[d]),c-=u[d]+l[d],d++;this.setState({calculated:!0,visibleItems:t.slice(d-(1-i)),hiddenItems:t.slice(i,d-(1-i))})}}}],[{key:"prepareInitialState",value:function(e){var t=e.firstDisplayedItemsCount;return{calculated:!1,rootItem:t?e.items[0]:void 0,visibleItems:e.items.slice(t),hiddenItems:[],allItems:e.items}}},{key:"getDerivedStateFromProps",value:function(e,t){return t.allItems!==e.items?n.prepareInitialState(e):null}}]),n}(l.Component);t.Breadcrumbs=_,_.defaultProps={popupPlacement:["bottom","top"]}},48350:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BreadcrumbsItem=void 0;var i=(0,n(15791).__importStar)(n(4519)),r=n(43299),o=(0,n(90).block)("breadcrumbs");t.BreadcrumbsItem=i.memo((function(e){var t=e.data,n=e.isCurrent,a=e.isPrevCurrent,s=e.renderItem,u=t.text,l=t.href,c=t.action;return a||!n?i.createElement(r.Link,{key:u,view:"secondary",href:l,title:u,onClick:c,className:o("item",{"prev-current":a})},s?s(t,n,a):u):i.createElement("div",{title:u,className:o("item",{current:!0})},s?s(t,n,a):u)})),t.BreadcrumbsItem.displayName="Breadcrumbs.Item"},78272:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BreadcrumbsMore=void 0;var i=n(15791),r=(0,i.__importStar)(n(4519)),o=n(38995),a=n(43299),s=n(90),u=(0,i.__importDefault)(n(83562)),l=(0,s.block)("breadcrumbs");function c(){return r.createElement(a.Link,{view:"secondary",title:(0,u.default)("label_more"),className:l("item",{more:!0})},"...")}function d(e){var t=e.popupStyle,n=e.popupPlacement,i=e.items;return r.createElement(o.DropdownMenu,{items:i,popupProps:{className:l("popup",{staircase:"staircase"===t}),placement:n},switcher:r.createElement(c,null)})}t.BreadcrumbsMore=d,d.displayName="Breadcrumbs.More"},97396:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BreadcrumbsSeparator=void 0;var i=(0,n(15791).__importStar)(n(4519)),r=(0,n(90).block)("breadcrumbs");function o(e){var t=e.renderItemDivider;return i.createElement("div",{"aria-hidden":!0,className:r("divider")},t?t():"/")}t.BreadcrumbsSeparator=o,o.displayName="Breadcrumbs.Separator"},83562:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791),r=n(55138),o=(0,i.__importDefault)(n(60484)),a=(0,i.__importDefault)(n(80148));t.default=(0,r.registerKeyset)({en:o.default,ru:a.default},"Breadcrumbs")},52756:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(64983),t)},54279:function(e,t,n){"use strict";var i=n(43269).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Button=void 0;var r=(0,n(15791).__importStar)(n(4519)),o=n(90),a=n(80495),s=n(81242),u=n(44654),l=n(58538),c=(0,o.block)("button"),d=r.default.forwardRef((function(e,t){var n=e.view,i=void 0===n?"normal":n,o=e.size,a=void 0===o?"m":o,u=e.pin,l=void 0===u?"round-round":u,d=e.selected,h=void 0!==d&&d,p=e.disabled,v=void 0!==p&&p,g=e.loading,m=void 0!==g&&g,_=e.width,y=e.title,b=e.tabIndex,w=e.type,C=void 0===w?"button":w,k=e.component,S=e.href,x=e.target,L=e.rel,E=e.extraProps,N=e.onClick,D=e.onMouseEnter,M=e.onMouseLeave,T=e.onFocus,O=e.onBlur,I=e.children,A=e.id,P=e.style,R=e.className,Z=e.qa,F={title:y,tabIndex:b,onClick:N,onClickCapture:r.default.useCallback((function(e){s.eventBroker.publish({componentId:"Button",eventId:"click",domEvent:e,meta:{content:e.currentTarget.textContent,view:i}})}),[i]),onMouseEnter:D,onMouseLeave:M,onFocus:T,onBlur:O,id:A,style:P,className:c({view:i,size:a,pin:l,selected:h,disabled:v||m,loading:m,width:_},R),"data-qa":Z};if("string"===typeof S||k){var j={href:S,target:x,rel:"_blank"!==x||L?L:"noopener noreferrer"};return r.default.createElement(k||"a",Object.assign(Object.assign(Object.assign(Object.assign({},E),F),k?{}:j),{ref:t,"aria-disabled":v||m}),f(I))}return r.default.createElement("button",Object.assign({},E,F,{ref:t,type:C,disabled:v||m}),f(I))}));d.displayName="Button",t.Button=Object.assign(d,{Icon:u.ButtonIcon});var h=(0,a.isOfType)(u.ButtonIcon);function f(e){var n=r.default.Children.toArray(e);if(1===n.length){var o=n[0];return h(o)?o:(0,l.isIcon)(o)?r.default.createElement(t.Button.Icon,{key:"icon"},o):r.default.createElement("span",{key:"text",className:c("text")},o)}var a,s,u,d,f=[],p=i(n);try{for(p.s();!(d=p.n()).done;){var v=d.value,g=(0,l.isIcon)(v),m=h(v);if(g||m)if(a||0!==f.length){if(!s&&0!==f.length){var _="right";s=g?r.default.createElement(t.Button.Icon,{key:"icon-right",side:_},v):(0,r.cloneElement)(v,{side:_})}}else{var y="left";a=g?r.default.createElement(t.Button.Icon,{key:"icon-left",side:y},v):(0,r.cloneElement)(v,{side:y})}else f.push(v)}}catch(b){p.e(b)}finally{p.f()}return f.length>0&&(u=r.default.createElement("span",{key:"text",className:c("text")},f)),[a,s,u]}},44654:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("button");t.ButtonIcon=function(e){var t=e.side,n=e.className,o=e.children;return i.default.createElement("span",{className:r("icon",{side:t},n)},i.default.createElement("span",{className:r("icon-inner")},o))},t.ButtonIcon.displayName="Button.Icon"},5698:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(54279),t)},54398:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Card=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("card");t.Card=i.default.forwardRef((function(e,t){var n=e.type,o=void 0===n?"container":n,a=e.theme,s=e.view,u=e.size,l=void 0===u?"m":u,c=e.children,d=e.className,h=e.onClick,f=e.disabled,p=e.selected,v="selection"===o,g="container"===o,m=("action"===o||v)&&Boolean(h)&&!(f||p),_=g?"normal":void 0,y=g||v?"outlined":void 0;return i.default.createElement("div",{ref:t,className:r({theme:a||_,view:s||y,type:o,selected:p,size:l,disabled:f,clickable:m},d),onClick:m?h:void 0},c)}))},6013:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(54398),t)},24856:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Checkbox=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(77784),o=n(90),a=n(38212),s=n(1015),u=n(18129),l=(0,o.block)("checkbox");t.Checkbox=i.default.forwardRef((function(e,t){var n=e.size,o=void 0===n?"m":n,c=e.indeterminate,d=e.disabled,h=void 0!==d&&d,f=e.content,p=e.children,v=e.title,g=e.style,m=e.className,_=e.qa,y=(0,a.useCheckbox)(e),b=y.checked,w=y.inputProps,C=f||p,k=i.default.createElement("span",{className:l("indicator")},i.default.createElement("span",{className:l("icon"),"aria-hidden":!0},c?i.default.createElement(u.CheckboxDashIcon,{className:l("icon-svg",{type:"dash"})}):i.default.createElement(s.CheckboxTickIcon,{className:l("icon-svg",{type:"tick"})})),i.default.createElement("input",Object.assign({},w,{className:l("control")})),i.default.createElement("span",{className:l("outline")}));return i.default.createElement(r.ControlLabel,{ref:t,title:v,style:g,size:o,disabled:h,className:l({size:o,disabled:h,indeterminate:c,checked:b},m),qa:_,control:k},C)}))},18129:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxDashIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.CheckboxDashIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 17 17",width:"16",height:"16",fill:"currentColor"},e),i.default.createElement("path",{d:"M4 7h9v3H4z"}))}},1015:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxTickIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.CheckboxTickIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 10",width:"16",height:"16",fill:"currentColor"},e),i.default.createElement("path",{d:"M.49 5.385l1.644-1.644 4.385 4.385L4.874 9.77.49 5.385zm4.384 1.096L10.356 1 12 2.644 6.519 8.126 4.874 6.48v.001z"}))}},48283:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(24856),t)},57485:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ClipboardButton=void 0;var i=(0,n(15791).__importStar)(n(4519)),r=n(5698),o=n(45338),a=n(77700),s=(0,n(90).block)("clipboard-button"),u=24,l=1e3;t.ClipboardButton=function(e){var t=e.text,n=e.size,c=void 0===n?u:n,d=e.className,h=e.qa,f=e.onCopy,p=e.timeout,v=void 0===p?l:p,g=e.options,m=(0,i.useRef)(null);return(0,i.useEffect)((function(){var e;null===(e=null===m||void 0===m?void 0:m.current)||void 0===e||e.style.setProperty("--yc-button-height","".concat(c,"px"))}),[c]),i.default.createElement(a.CopyToClipboard,{text:t,timeout:v,onCopy:f,options:g},(function(e){return i.default.createElement(r.Button,{ref:m,view:"flat",className:s(null,d),qa:h},i.default.createElement(r.Button.Icon,null,i.default.createElement(o.ClipboardIcon,{status:e,size:c,className:s("icon")})))}))}},97641:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(57485),t)},85531:function(e,t,n){"use strict";var i,r=n(59713).default;Object.defineProperty(t,"__esModule",{value:!0}),t.ClipboardIcon=void 0;var o=(0,n(15791).__importDefault)(n(4519)),a=n(90),s=n(88749),u=n(68454),l=(0,a.block)("clipboard-icon"),c=function(e){return o.default.createElement("path",{stroke:"currentColor",fill:"transparent",className:l("state"),strokeWidth:"1.5",d:e})},d=(r(i={},u.CopyToClipboardStatus.Success,c("M9.5 13l3 3l5 -5")),r(i,u.CopyToClipboardStatus.Error,c("M9.5 10l8 8m-8 0l8 -8")),i);t.ClipboardIcon=function(e){var t=e.size,n=e.status,i=e.className;return o.default.createElement("svg",Object.assign({width:t,height:t,viewBox:"0 0 24 24",className:l(null,i)},s.a11yHiddenSvgProps),o.default.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}),n===u.CopyToClipboardStatus.Pending?null:d[n])}},45338:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(85531),t)},81267:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlLabel=void 0;var i=(0,n(15791).__importStar)(n(4519)),r=(0,n(90).block)("control-label");t.ControlLabel=(0,i.forwardRef)((function(e,t){var n=e.children,o=e.className,a=e.labelClassName,s=e.title,u=e.style,l=e.disabled,c=void 0!==l&&l,d=e.control,h=e.size,f=void 0===h?"m":h,p=e.qa,v=(0,i.cloneElement)(d,{className:r("indicator",d.props.className)});return i.default.createElement("label",{ref:t,title:s,style:u,className:r({size:f,disabled:c},o),"data-qa":p},v,n?i.default.createElement("span",{className:r("text",a)},n):null)})),t.ControlLabel.displayName="ControlLabel"},77784:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlLabel=void 0;var i=n(81267);Object.defineProperty(t,"ControlLabel",{enumerable:!0,get:function(){return i.ControlLabel}})},68531:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var s=n(15791),u=(0,s.__importDefault)(n(4519)),l=(0,s.__importDefault)(n(17972)),c=n(68454),d=function(e){o(n,e);var t=a(n);function n(){var e;return i(this,n),(e=t.apply(this,arguments)).state={status:n.INITIAL_STATUS},e.handleCopy=function(t,i){var r=e.props,o=r.timeout,a=r.onCopy;e.setState({status:i?c.CopyToClipboardStatus.Success:c.CopyToClipboardStatus.Error}),clearTimeout(e.timerId),e.timerId=window.setTimeout((function(){e.setState({status:n.INITIAL_STATUS}),e.timerId=void 0}),o),null===a||void 0===a||a(t,i)},e}return r(n,[{key:"componentWillUnmount",value:function(){clearTimeout(this.timerId)}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.text,i=e.options,r=t(this.state.status);if(!u.default.isValidElement(r))throw new Error("Content must be a valid react element");return u.default.createElement(l.default,{text:String(n),onCopy:this.handleCopy,options:i},r)}}]),n}(u.default.Component);t.CopyToClipboard=d,d.INITIAL_STATUS=c.CopyToClipboardStatus.Pending},77700:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboardStatus=void 0,(0,n(15791).__exportStar)(n(68531),t);var i=n(68454);Object.defineProperty(t,"CopyToClipboardStatus",{enumerable:!0,get:function(){return i.CopyToClipboardStatus}})},68454:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboardStatus=void 0,function(e){e.Pending="pending",e.Success="success",e.Error="error"}(t.CopyToClipboardStatus||(t.CopyToClipboardStatus={}))},80282:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonClose=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(5698),a=n(96225),s=n(99959),u=(0,r.block)("dialog-btn-close");t.ButtonClose=function(e){var t=e.onClose;return i.default.createElement("div",{className:u()},i.default.createElement(o.Button,{view:"flat",size:"l",className:u("btn"),onClick:function(e){return t(e,{isOutsideClick:!1})}},i.default.createElement(a.Icon,{data:s.CrossIcon,size:12})))}},70974:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Dialog=void 0;var s=(0,n(15791).__importDefault)(n(4519)),u=n(90),l=n(56688),c=n(86136),d=n(31307),h=n(25239),f=n(20783),p=n(80282),v=(0,u.block)("dialog"),g=function(e){o(n,e);var t=a(n);function n(){var e;return i(this,n),(e=t.apply(this,arguments)).handleCloseButtonClick=function(t){(0,e.props.onClose)(t.nativeEvent,"closeButtonClick")},e}return r(n,[{key:"render",value:function(){var e=this.props,t=e.container,n=e.children,i=e.open,r=e.disableBodyScrollLock,o=e.disableEscapeKeyDown,a=e.disableOutsideClick,u=e.disableFocusTrap,c=e.disableAutoFocus,d=e.restoreFocusRef,h=e.keepMounted,f=e.size,g=e.className,m=e.modalClassName,_=e.hasCloseButton,y=e.onEscapeKeyDown,b=e.onEnterKeyDown,w=e.onOutsideClick,C=e.onClose,k=e.onTransitionEnter,S=e.onTransitionEntered,x=e.onTransitionExit,L=e.onTransitionExited,E=e["aria-label"],N=e["aria-labelledby"],D=e.qa;return s.default.createElement(l.Modal,{open:i,disableBodyScrollLock:r,disableEscapeKeyDown:o,disableOutsideClick:a,disableFocusTrap:u,disableAutoFocus:c,restoreFocusRef:d,keepMounted:h,onEscapeKeyDown:y,onEnterKeyDown:b,onOutsideClick:w,onClose:C,onTransitionEnter:k,onTransitionEntered:S,onTransitionExit:x,onTransitionExited:L,className:v("modal",m),"aria-label":E,"aria-labelledby":N,container:t,qa:D},s.default.createElement("div",{className:v({size:f,"has-close":_},g)},n,_&&s.default.createElement(p.ButtonClose,{onClose:this.handleCloseButtonClick})))}}]),n}(s.default.Component);t.Dialog=g,g.defaultProps={disableBodyScrollLock:!1,disableEscapeKeyDown:!1,disableOutsideClick:!1,keepMounted:!1,hasCloseButton:!0},g.Footer=c.DialogFooter,g.Header=d.DialogHeader,g.Body=h.DialogBody,g.Divider=f.DialogDivider},25239:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DialogBody=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("dialog-body");t.DialogBody=function(e){var t=e.className;return i.default.createElement("div",{className:r(null,t)},e.children)}},20783:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DialogDivider=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("dialog-divider");t.DialogDivider=function(e){var t=e.className;return i.default.createElement("div",{className:r(null,t)})}},86136:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.DialogFooter=void 0;var s=(0,n(15791).__importDefault)(n(4519)),u=n(90),l=n(5698),c=n(1541),d=(0,u.block)("dialog-footer");var h=function(e){o(n,e);var t=a(n);function n(){var e;return i(this,n),(e=t.apply(this,arguments)).errorTooltipRef=s.default.createRef(),e.handleKeyDown=function(t){"Enter"===t.key&&(t.preventDefault(),e.props.onClickButtonApply&&e.props.onClickButtonApply(t))},e}return r(n,[{key:"componentDidMount",value:function(){this.props.listenKeyEnter&&this.attachKeyDownListeners()}},{key:"componentDidUpdate",value:function(e){!this.props.listenKeyEnter&&e.listenKeyEnter&&this.detachKeyDownListeners(),this.props.listenKeyEnter&&!e.listenKeyEnter&&this.attachKeyDownListeners()}},{key:"componentWillUnmount",value:function(){this.detachKeyDownListeners()}},{key:"render",value:function(){var e=this.props,t=e.onClickButtonCancel,n=e.onClickButtonApply,i=e.loading,r=e.textButtonCancel,o=e.textButtonApply,a=e.propsButtonCancel,u=e.propsButtonApply,h=e.preset,f=e.children,p=e.errorText,v=e.showError,g=e.renderButtons,m=s.default.createElement("div",{className:d("button",{action:"cancel"})},s.default.createElement(l.Button,Object.assign({view:o?"flat":"normal",size:"l",width:"max",onClick:t,disabled:i},a),r)),_=s.default.createElement("div",{className:d("button",{action:"apply"})},s.default.createElement(l.Button,Object.assign({ref:this.errorTooltipRef,type:"submit",view:"action",size:"l",width:"max",onClick:n,loading:i,className:d("button-apply",{preset:h})},u),o),p&&s.default.createElement(c.Popup,{open:v,anchorRef:this.errorTooltipRef,placement:["bottom","top"],disableLayer:!0,hasArrow:!0},s.default.createElement("div",{className:d("error")},p)));return s.default.createElement("div",{className:d()},s.default.createElement("div",{className:d("children")},f),s.default.createElement("div",{className:d("bts-wrapper")},g?g(_,m):s.default.createElement(s.default.Fragment,null,r&&m,o&&_)))}},{key:"attachKeyDownListeners",value:function(){var e=this;setTimeout((function(){window.addEventListener("keydown",e.handleKeyDown)}),0)}},{key:"detachKeyDownListeners",value:function(){window.removeEventListener("keydown",this.handleKeyDown)}}]),n}(s.default.Component);t.DialogFooter=h,h.defaultProps={preset:"default",showError:!1,listenKeyEnter:!1}},31307:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DialogHeader=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("dialog-header");t.DialogHeader=function(e){var t=e.caption,n=void 0===t?"":t,o=e.insertBefore,a=e.insertAfter,s=e.className,u=e.id;return i.default.createElement("div",{className:r(null,s)},o,i.default.createElement("div",{className:r("caption"),id:u},n),a)}},95885:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(70974),t),(0,i.__exportStar)(n(25239),t),(0,i.__exportStar)(n(20783),t),(0,i.__exportStar)(n(31307),t),(0,i.__exportStar)(n(86136),t)},17961:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.cnDropdownMenu=void 0;var i=n(90);t.cnDropdownMenu=(0,i.block)("dropdown-menu")},66560:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownMenu=void 0;var i=(0,n(15791).__importStar)(n(4519)),r=n(5698),o=n(96225),a=n(40923),s=n(57441),u=n(54947),l=n(73501),c=n(19874),d=n(47521),h=n(17961),f=n(43205),p=n(83643),v=n(646),g=Object.assign((function(e){var t=e.items,n=void 0===t?[]:t,v=e.size,g=void 0===v?"m":v,m=e.icon,_=void 0===m?i.default.createElement(o.Icon,{data:a.DotsIcon}):m,y=e.open,b=e.onOpenToggle,w=e.hideOnScroll,C=void 0===w||w,k=e.data,S=e.disabled,x=e.switcher,L=e.switcherWrapperClassName,E=e.defaultSwitcherProps,N=e.defaultSwitcherClassName,D=e.onSwitcherClick,M=e.menuProps,T=e.popupProps,O=e.children,I=(0,i.useRef)(null),A=(0,u.usePopupVisibility)(y,b,S),P=A.isPopupShown,R=A.togglePopup,Z=A.closePopup;(0,l.useScrollHandler)(Z,I,!P||!C);var F=(0,i.useMemo)((function(){return{toggle:R,data:k}}),[k,R]),j=(0,i.useMemo)((function(){return(0,c.toItemList)(n,d.dropdownMenuSeparator)}),[n]);return i.default.createElement(p.DropdownMenuContext.Provider,{value:F},i.default.createElement("div",{ref:I,className:(0,h.cnDropdownMenu)("switcher-wrapper",L),onClick:function(e){S||(null===D||void 0===D||D(e),R())}},x||i.default.createElement(r.Button,Object.assign({view:"flat",size:g},E,{className:(0,h.cnDropdownMenu)("switcher-button",N),disabled:S}),_)),i.default.createElement(s.DropdownMenuNavigationContextProvider,{anchorRef:I,disabled:!P},i.default.createElement(f.DropdownMenuPopup,{items:j,open:P,size:g,menuProps:M,anchorRef:I,onClose:Z,popupProps:T},O)))}),{Item:v.DropdownMenuItem});t.DropdownMenu=g},83643:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownMenuContext=void 0;var i=n(4519);t.DropdownMenuContext=(0,i.createContext)({toggle:function(){},data:void 0}),t.DropdownMenuContext.displayName="DropdownMenu.Context"},646:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownMenuItem=void 0;var i=n(15791),r=(0,i.__importStar)(n(4519)),o=n(96225),a=n(85190),s=n(40923),u=n(47521),l=n(64890),c=n(17961),d=n(43205),h=n(83643);t.DropdownMenuItem=function(e){var t=e.text,n=e.action,f=e.items,p=e.popupProps,v=e.closeMenu,g=e.children,m=e.path,_=(0,i.__rest)(e,["text","action","items","popupProps","closeMenu","children","path"]),y=(0,r.useContext)(h.DropdownMenuContext),b=y.toggle,w=y.data,C=(0,r.useRef)(null),k=(0,l.useSubmenu)({items:f,path:m}),S=k.hasSubmenu,x=k.isSubmenuOpen,L=k.closeSubmenu,E=k.openSubmenu,N=(0,r.useCallback)((function(){var e=function(){v?v():b(!1)};S?(L(),requestAnimationFrame(e)):e()}),[v,L,S,b]),D=(0,r.useCallback)((function(e){S||(null===n||void 0===n||n(e,w),N())}),[n,w,N,S]),M=(0,r.useMemo)((function(){return Object.assign(Object.assign({},_.extraProps),{onMouseEnter:function(e){var t,n;null===(n=null===(t=_.extraProps)||void 0===t?void 0:t.onMouseEnter)||void 0===n||n.call(t,e),S&&E()},onMouseLeave:function(e){var t,n;null===(n=null===(t=_.extraProps)||void 0===t?void 0:t.onMouseLeave)||void 0===n||n.call(t,e),S&&L()}})}),[_.extraProps,L,S,E]);return r.default.createElement(r.default.Fragment,null,r.default.createElement(a.Menu.Item,Object.assign({ref:C},_,{extraProps:M,onClick:D}),r.default.createElement("div",{className:(0,c.cnDropdownMenu)("menu-item-content")},r.default.createElement("div",null,t||g),S&&r.default.createElement(o.Icon,{data:s.Chevron,className:(0,c.cnDropdownMenu)("menu-item-chevron"),size:8}))),S&&f&&r.default.createElement(d.DropdownMenuPopup,{popupProps:Object.assign(Object.assign({},p),{className:(0,c.cnDropdownMenu)("sub-menu",null===p||void 0===p?void 0:p.className),placement:u.subMenuPlacement}),items:f,path:m,open:x,anchorRef:C,onClose:N}))}},57441:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownMenuNavigationContextProvider=t.DropdownMenuNavigationContext=void 0;var r=(0,n(15791).__importStar)(n(4519)),o=[];t.DropdownMenuNavigationContext=(0,r.createContext)({activeMenuPath:o,setActiveMenuPath:function(){},anchorRef:{current:null}});t.DropdownMenuNavigationContextProvider=function(e){var n=e.anchorRef,a=e.children,s=e.disabled,u=(0,r.useState)(o),l=i(u,2),c=l[0],d=l[1];(0,r.useEffect)((function(){s&&d(o)}),[s]);var h=(0,r.useMemo)((function(){return{activeMenuPath:c,setActiveMenuPath:d,anchorRef:n}}),[c,n]);return r.default.createElement(t.DropdownMenuNavigationContext.Provider,{value:h},a)}},43205:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownMenuPopup=void 0;var i=(0,n(15791).__importStar)(n(4519)),r=n(1541),o=n(85190),a=n(93399),s=n(17961),u=n(83643),l=n(646),c=n(57441),d=n(65449),h=n(97008),f=n(31068);t.DropdownMenuPopup=function(e){var t=e.items,n=e.open,p=e.anchorRef,v=e.onClose,g=e.size,m=e.menuProps,_=e.children,y=e.popupProps,b=e.path,w=void 0===b?[]:b,C=(0,i.useContext)(u.DropdownMenuContext),k=C.toggle,S=C.data,x=(0,i.useContext)(c.DropdownMenuNavigationContext),L=x.activeMenuPath,E=x.setActiveMenuPath,N=x.anchorRef,D=w.length>0,M=(0,i.useCallback)((function(){E(w.slice(0,w.length-1))}),[E,w]),T=(0,i.useCallback)((function(e){var t;E(w),null===(t=null===y||void 0===y?void 0:y.onMouseEnter)||void 0===t||t.call(y,e)}),[w,y,E]),O=(0,i.useCallback)((function(e){var t;M(),null===(t=null===y||void 0===y?void 0:y.onMouseLeave)||void 0===t||t.call(y,e)}),[M,y]),I=(0,i.useCallback)((function(e,t){var n;e.items&&e.path?E(e.path):(null===(n=e.action)||void 0===n||n.call(e,t,S),k(!1))}),[S,E,k]),A=(0,i.useCallback)((function(e,n){switch(n.key){case"Escape":return D&&(n.stopPropagation(),null===M||void 0===M||M()),!1;case"Enter":case" ":var i=t[e];return i&&(n.preventDefault(),I(i,n)),!1}return!0}),[M,I,D,t]),P=n&&(0,f.stringifyNavigationPath)(w)===(0,f.stringifyNavigationPath)(L),R=(0,a.useListNavigation)({items:t,skip:h.shouldSkipItemNavigation,anchorRef:N,onAnchorKeyDown:A,disabled:!P,initialValue:D?0:-1}),Z=R.activeItemIndex,F=R.setActiveItemIndex,j=R.reset;return(0,i.useEffect)((function(){n||j()}),[n,j]),i.default.createElement(r.Popup,Object.assign({open:n,anchorRef:p,onClose:v},y,{onMouseEnter:T,onMouseLeave:O}),_||i.default.createElement(o.Menu,Object.assign({className:(0,s.cnDropdownMenu)("menu"),size:g},m),t.map((function(e,t){var n=P&&Z===t,r=Object.assign(Object.assign({},e.extraProps),{onMouseEnter:function(){return F(t)}});return i.default.createElement(l.DropdownMenuItem,Object.assign({key:t,className:(0,s.cnDropdownMenu)("menu-item",{separator:(0,d.isSeparator)(e)},e.className),selected:n,popupProps:y,closeMenu:v},e,{extraProps:r}))}))))}},47521:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dropdownMenuSeparator=t.subMenuPlacement=void 0,t.subMenuPlacement=["right-start","left-start"],t.dropdownMenuSeparator={text:"",action:function(){},path:[]}},54947:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.usePopupVisibility=void 0;var r=n(4519),o=n(68371);t.usePopupVisibility=function(e,t,n){var a=(0,o.useConditionallyControlledState)(e,t,!1),s=i(a,2),u=s[0],l=s[1],c=(0,r.useCallback)((function(e){l((function(t){return"boolean"===typeof e?e:!t}))}),[l]),d=(0,r.useCallback)((function(){l(!1)}),[l]);return(0,r.useEffect)((function(){n&&u&&d()}),[d,n,u]),{isPopupShown:u,togglePopup:c,closePopup:d}}},73501:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useScrollHandler=void 0;var i=n(4519);t.useScrollHandler=function(e,t,n){(0,i.useEffect)((function(){if(!n){var i=function(n){n.target.contains(t.current)&&e(n)};return document.addEventListener("scroll",i,!0),function(){document.removeEventListener("scroll",i,!0)}}}),[t,e,n])}},64890:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSubmenu=void 0;var i=n(4519),r=n(57441),o=n(67983);t.useSubmenu=function(e){var t=e.items,n=e.path,a=(0,i.useContext)(r.DropdownMenuNavigationContext),s=a.activeMenuPath,u=a.setActiveMenuPath,l=Boolean(n)&&Boolean(null===t||void 0===t?void 0:t.length),c=(0,i.useCallback)((function(){n&&u(n.slice(0,n.length-1))}),[n,u]),d=(0,i.useCallback)((function(){n&&u(n)}),[n,u]);return{hasSubmenu:l,isSubmenuOpen:(0,o.isSubmenuOpen)(n,s),openSubmenu:d,closeSubmenu:c}}},38995:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(66560),t)},65449:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isSeparator=void 0;var i=n(47521);t.isSeparator=function(e){return e===i.dropdownMenuSeparator}},67983:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isSubmenuOpen=void 0,t.isSubmenuOpen=function(e,t){var n;return null!==(n=null===e||void 0===e?void 0:e.every((function(e,n){return e===(null===t||void 0===t?void 0:t[n])})))&&void 0!==n&&n}},97008:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldSkipItemNavigation=void 0;var i=n(65449);t.shouldSkipItemNavigation=function(e){return e.disabled||(0,i.isSeparator)(e)}},31068:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringifyNavigationPath=void 0,t.stringifyNavigationPath=function(e){var t;return null!==(t=null===e||void 0===e?void 0:e.join(" "))&&void 0!==t?t:""}},19874:function(e,t,n){"use strict";var i=n(319).default,r=n(43269).default;Object.defineProperty(t,"__esModule",{value:!0}),t.toItemList=void 0,t.toItemList=function e(t,n){var o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],s=[],u=!1,l=-1,c=r(t);try{for(c.s();!(o=c.n()).done;){var d=o.value;if(Array.isArray(d)){var h=e(d,n,[].concat(i(a),[l]));if(0===h.length)continue;0!==s.length&&s.push(n);var f,p=r(h);try{for(p.s();!(f=p.n()).done;){f.value.path[a.length]=++l}}catch(g){p.e(g)}finally{p.f()}s.push.apply(s,i(h)),u=!0}else{if(d.hidden)continue;u&&s.push(n);var v=Object.assign({},d);v.path=[].concat(i(a),[++l]),d.items&&(v.items=e(d.items,n,v.path)),s.push(v),u=!1}}}catch(g){c.e(g)}finally{c.f()}return s}},58352:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HelpPopover=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(51700),a=n(96225),s=n(58367),u=(0,r.block)("help-popover");t.HelpPopover=function(e){return i.default.createElement(o.Popover,Object.assign({},e,{className:u(null,e.className)}),i.default.createElement(a.Icon,{data:s.QuestionMarkIcon,size:16}))}},94291:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(58352),t)},39629:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseHotkeys=t.Hotkey=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(25448),a=n(89387),s=n(26353),u=(0,r.block)("hotkey"),l={BetweenGroups:String.fromCharCode(160),BetweenKeys:String.fromCharCode(8239)};function c(e,t){var n,i=null!==(n=t.platform)&&void 0!==n?n:(0,s.isMac)()?"mac":"pc",r=o.defsByPlatform[i];return(0,a.parseKeyGroups)(r,e)}t.Hotkey=i.default.forwardRef((function(e,t){var n=e.value,r=e.platform,o=e.view,a=void 0===o?"light":o,s=e.qa,d=e.style,h=e.className,f=c(n,{platform:r}),p=[],v=!1;return f.forEach((function(e,t){0!==e.length&&(v?p.push(l.BetweenGroups):v=!0,e.forEach((function(e,n){0===n||p.push(l.BetweenKeys,i.default.createElement("span",{className:u("plus")},"+"),l.BetweenKeys),p.push(i.default.createElement("kbd",{key:"".concat(e,"_").concat(t,"_").concat(n)},e))})))})),0===p.length?null:i.default.createElement("kbd",{ref:t,style:d,"data-qa":s,className:u({view:a},h)},p)})),t.parseHotkeys=c},25448:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defsByPlatform=void 0;t.defsByPlatform={pc:{NormalizeMap:{arrowup:"up",arrowdown:"down",arrowleft:"left",arrowright:"right",esc:"escape",return:"enter",mod:"ctrl",control:"ctrl",opt:"alt",option:"alt",cmd:"ctrl",command:"ctrl"},Priority:{shift:200,alt:300,ctrl:400},DisplayName:{up:"\u2191",down:"\u2193",left:"\u2190",right:"\u2192",escape:"Esc",plus:"\uff0b",enter:"Enter",ctrl:"Ctrl",alt:"Alt",shift:"Shift",tab:"Tab",backspace:"Backspace"}},mac:{NormalizeMap:{arrowup:"up",arrowdown:"down",arrowleft:"left",arrowright:"right",esc:"escape",enter:"return",mod:"command",ctrl:"control",alt:"option",opt:"option",cmd:"command"},Priority:{command:100,shift:200,option:300,control:400},DisplayName:{up:"\u25b2",down:"\u25bc",left:"\u25c0",right:"\u25b6",escape:"\u238b",plus:"\uff0b",return:"\u23ce",command:"\u2318",option:"\u2325",control:"\u2303",shift:"\u21e7",backspace:"\u232b",tab:"\u21e5"}}}},34327:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseHotkeys=t.Hotkey=void 0;var i=n(39629);Object.defineProperty(t,"Hotkey",{enumerable:!0,get:function(){return i.Hotkey}}),Object.defineProperty(t,"parseHotkeys",{enumerable:!0,get:function(){return i.parseHotkeys}})},89387:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseKeyGroups=void 0;var i=n(15791),r=(0,i.__importDefault)(n(20762)),o=(0,i.__importDefault)(n(4688)),a=n(26353),s=/\s/,u="+";function l(e){var t;return null!==(t=e.displayName)&&void 0!==t?t:(0,o.default)(e.id)}t.parseKeyGroups=function(e,t){return(0,a.split)(t,s).map((function(t){return(0,r.default)((0,a.split)(t,u).map(function(e){return function(t){var n,i=function(e,t){var n;return t=t.toLowerCase(),null!==(n=e.NormalizeMap[t])&&void 0!==n?n:t}(e,t);return{raw:t,id:i,priority:null!==(n=e.Priority[i])&&void 0!==n?n:0,displayName:e.DisplayName[i]}}}(e)).sort((function(e,t){return t.priority-e.priority})),(function(e){return e.id})).map(l)}))}},26353:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.split=t.isMac=void 0;t.isMac=function(){return"undefined"!==typeof navigator&&/Mac|iP(hone|[oa]d)/.test(navigator.platform)},t.split=function(e,t){return e.trim().split(t).filter(Boolean)}},15658:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Icon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(88749),a=n(94947),s=(0,r.block)("icon");function u(e){var t,n,r,l=e.data,c=e.width,d=e.height,h=e.size,f=e.className,p=e.fill,v=void 0===p?"currentColor":p,g=e.stroke,m=void 0===g?"none":g,_=e.qa;if(h&&(t=h,n=h),c&&(t=c),d&&(n=d),(0,a.isSpriteData)(l))r=l.viewBox;else if((0,a.isStringSvgData)(l))r=(0,a.getStringViewBox)(l);else if((0,a.isComponentSvgData)(l))r=l.defaultProps.viewBox;else if((0,a.isSvgrData)(l)){var y=l({});y&&(r=y.props.viewBox)}if(r&&(!t||!n)){var b=r.split(/\s+|\s*,\s*/);t||(t=b[2]),n||(n=b[3])}var w=Object.assign({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:t,height:n,className:s(null,f),fill:v,stroke:m,"data-qa":_},o.a11yHiddenSvgProps);if((0,a.isStringSvgData)(l)){var C=(0,a.prepareStringData)(l);return i.default.createElement("svg",Object.assign({},w,{dangerouslySetInnerHTML:{__html:C}}))}if((0,a.isSpriteData)(l)){var k=u.prefix+(l.url||"#".concat(l.id));return i.default.createElement("svg",Object.assign({},w,{viewBox:r}),i.default.createElement("use",{href:k,xlinkHref:k}))}var S=l;return S.defaultProps&&(S.defaultProps.width=S.defaultProps.height=void 0),i.default.createElement("svg",Object.assign({},w),i.default.createElement(S,{width:void 0,height:void 0}))}t.Icon=u,u.displayName="Icon",u.prefix=""},96225:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(15658),t)},94947:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getStringViewBox=t.prepareStringData=t.isStringSvgData=t.isComponentSvgData=t.isSvgrData=t.isSpriteData=void 0,t.isSpriteData=function(e){return"object"===typeof e},t.isSvgrData=function(e){return"function"===typeof e&&(!e.prototype||!e.prototype.render)},t.isComponentSvgData=function(e){return"object"===typeof e&&"defaultProps"in e},t.isStringSvgData=function(e){return"string"===typeof e},t.prepareStringData=function(e){return e.replace(/(width|height)=(["']?)\d+\2/g,"")},t.getStringViewBox=function(e){var t=e.match(/viewBox=(["']?)([\d\s,-]+)\1/);return t?t[2]:void 0}},20566:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Label=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(77700),a=n(45338),s=n(96225),u=n(99959),l=n(5698),c=(0,r.block)("label"),d={xs:{copyIconSize:12,closeIconSize:8,buttonSize:"s"},s:{copyIconSize:12,closeIconSize:8,buttonSize:"s"},m:{copyIconSize:12,closeIconSize:8,buttonSize:"m"}},h={pin:"brick-round",className:c("addon",{side:"right",interactive:!0})};t.Label=i.default.forwardRef((function(e,t){var n=e.type,r=void 0===n?"default":n,f=e.theme,p=void 0===f?"normal":f,v=e.size,g=void 0===v?"xs":v,m=e.style,_=void 0===m?"default":m,y=e.icon,b=e.children,w=e.onClose,C=e.className,k=e.disabled,S=e.copyText,x=e.closeButtonLabel,L=e.copyButtonLabel,E=e.interactive,N=void 0!==E&&E,D=e.onCopy,M=e.onClick,T=Boolean(""!==b&&i.default.Children.count(b)>0),O="close"===r&&T,I="copy"===r&&T,A=Boolean(M),P=Boolean(I&&S),R=A||P||N,Z=d[g],F=Z.copyIconSize,j=Z.closeIconSize,H=Z.buttonSize,B=y&&i.default.createElement("div",{className:c("addon",{side:T?"left":void 0})},y),z=T&&i.default.createElement("div",{className:c("text")},b),W=function(e){A&&e.stopPropagation(),w&&w(e)},V=function(e){var n;return I?n=i.default.createElement(l.Button,Object.assign({size:H,extraProps:{"aria-label":L||void 0}},h),i.default.createElement(l.Button.Icon,null,i.default.createElement(a.ClipboardIcon,{status:e||o.CopyToClipboardStatus.Pending,size:F}))):O&&(n=i.default.createElement(l.Button,Object.assign({onClick:w?W:void 0,size:H,extraProps:{"aria-label":x||void 0}},h),i.default.createElement(s.Icon,{size:j,data:u.CrossIcon}))),i.default.createElement("div",{ref:t,onClick:A?M:void 0,className:c({theme:p,size:g,style:_,type:r,"is-interactive":R,"has-right-addon":Boolean(n),"has-left-addon":Boolean(B),disabled:k},C)},B,z,n)};return P&&S?i.default.createElement(o.CopyToClipboard,{text:S,onCopy:D,timeout:1e3},(function(e){return V(e)})):V()}))},27480:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(20566),t)},26850:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Link=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(81242),a=(0,r.block)("link");t.Link=i.default.forwardRef((function(e,t){var n=e.view,r=void 0===n?"normal":n,s=e.href,u=e.target,l=e.rel,c=e.title,d=e.children,h=e.extraProps,f=e.onClick,p=e.onFocus,v=e.onBlur,g=e.id,m=e.style,_=e.className,y=e.qa,b={title:c,children:d,onClick:f,onClickCapture:i.default.useCallback((function(e){o.eventBroker.publish({componentId:"Link",eventId:"click",domEvent:e})}),[]),onFocus:p,onBlur:v,id:g,style:m,className:a({view:r},_),"data-qa":y};if("string"===typeof s){var w="_blank"!==u||l?l:"noopener noreferrer";return i.default.createElement("a",Object.assign({},h,b,{ref:t,href:s,target:u,rel:w}))}return i.default.createElement("span",Object.assign({},h,b,{ref:t,tabIndex:0}))}))},43299:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(26850),t)},32891:function(e,t,n){"use strict";var i=n(63038).default,r=n(34575).default,o=n(93913).default,a=n(2205).default,s=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.List=t.listDefaultProps=void 0;var u=n(15791),l=(0,u.__importDefault)(n(4519)),c=(0,u.__importDefault)(n(55255)),d=n(80276),h=n(71461),f=n(90),p=n(31859),v=n(14077),g=n(15215),m=n(11505),_=(0,f.block)("list"),y=28,b=(0,h.SortableElement)(g.ListItem),w=(0,h.SortableContainer)(d.VariableSizeList,{withRef:!0}),C=(0,h.SortableContainer)(g.SimpleContainer,{withRef:!0});t.listDefaultProps={items:[],itemClassName:"",filterable:!0,sortable:!1,virtualized:!0,deactivateOnLeave:!0};var k=function(e){a(n,e);var t=s(n);function n(){var e;return r(this,n),(e=t.apply(this,arguments)).state={items:e.props.items,filter:""},e.refFilter=l.default.createRef(),e.refContainer=l.default.createRef(),e.blurTimer=null,e.onKeyDown=function(t){var n=e.state,i=n.activeItem,r=n.pageSize;if(!m.listNavigationIgnoredKeys.includes(t.key))switch(t.key){case"ArrowDown":e.handleKeyMove(t,1,-1);break;case"ArrowUp":e.handleKeyMove(t,-1);break;case"PageDown":e.handleKeyMove(t,r);break;case"PageUp":e.handleKeyMove(t,-r);break;case"Home":e.handleKeyMove(t,e.state.items.length-(i||0));break;case"End":e.handleKeyMove(t,-(i||0)-1);break;case"Enter":"number"===typeof i&&e.props.onItemClick&&e.props.onItemClick(e.state.items[i],i,!0);break;default:e.refFilter.current&&e.refFilter.current.focus()}},e.renderItem=function(t){var n=t.index,i=t.style,r=e.props.sortHandleAlign,o=e.state,a=o.items,s=o.activeItem,u=a[n],c=e.props.sortable&&a.length>1&&!e.getFilter(),d=n===s||n===e.props.activeItemIndex,h=c?b:g.ListItem;return l.default.createElement(h,{key:n,style:i,index:n,itemIndex:n,item:u,sortable:c,sortHandleAlign:r,renderItem:e.props.renderItem,itemClassName:e.props.itemClassName,active:d,selected:n===e.props.selectedItemIndex,onActivate:e.onItemActivate,onClick:e.props.onItemClick})},e.filterItem=function(e){return function(t){return String(t).includes(e)}},e.scrollToIndex=function(t){var n=e.getContainer();n&&n.scrollToItem(t)},e.deactivate=function(){e.blurTimer&&e.props.deactivateOnLeave&&e.setState({activeItem:void 0})},e.handleFocus=function(){e.blurTimer&&(clearTimeout(e.blurTimer),e.blurTimer=null)},e.handleBlur=function(){e.blurTimer||(e.blurTimer=setTimeout(e.deactivate,50))},e.onUpdateFilterInternal=function(t){var n=e.props,i=n.items,r=n.filterItem,o=void 0===r?e.filterItem:r,a=n.onFilterEnd;e.setState({filter:t,items:t?i.filter(o(t)):i},(function(){a&&a({items:e.state.items})}))},e.onFilterUpdate=function(t){e.props.onFilterUpdate?e.props.onFilterUpdate(t):e.onUpdateFilterInternal(t)},e.onItemsRendered=function(t){var n=t.visibleStartIndex,i=t.visibleStopIndex;e.setState({pageSize:i-n})},e.onItemActivate=function(t){e.state.sorting||e.activateItem(t,!1)},e.onMouseLeave=function(){e.deactivate()},e.onSortStart=function(){e.setState({sorting:!0})},e.onSortEnd=function(t){e.props.onSortEnd&&e.props.onSortEnd(t),e.setState({sorting:!1,activeItem:t.newIndex})},e.getItemHeight=function(t){var n=e.props.itemHeight;return"function"===typeof n?n(e.state.items[t],t):n},e.getVirtualizedItemHeight=function(t){return e.getItemHeight(t)||y},e}return o(n,[{key:"componentDidUpdate",value:function(e){if(this.props.items!==e.items){var t=this.getFilter();t&&!this.props.onFilterUpdate?this.onUpdateFilterInternal(t):this.setState({items:this.props.items})}this.props.activeItemIndex!==e.activeItemIndex&&this.activateItem(this.props.activeItemIndex)}},{key:"componentWillUnmount",value:function(){this.blurTimer=null}},{key:"render",value:function(){var e=this,t=this.props,n=t.emptyPlaceholder,i=t.virtualized,r=t.className,o=t.itemsClassName,a=t.qa,s=this.state.items;return l.default.createElement(p.MobileContext.Consumer,null,(function(t){var u=t.mobile;return l.default.createElement("div",{className:_({mobile:u},r),"data-qa":a,tabIndex:-1,onFocus:e.handleFocus,onBlur:e.handleBlur,onKeyDown:e.onKeyDown},e.renderFilter(),l.default.createElement("div",{className:_("items",{virtualized:i},o),style:e.getItemsStyle(),onMouseLeave:e.onMouseLeave},e.renderItems(),0===s.length&&Boolean(n)&&l.default.createElement("div",{className:_("empty-placeholder")},n)))}))}},{key:"getItems",value:function(){return this.state.items}},{key:"getActiveItem",value:function(){return"number"===typeof this.state.activeItem?this.state.activeItem:null}},{key:"activateItem",value:function(e){"number"===typeof e&&(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&this.scrollToIndex(e),this.setState({activeItem:e})}},{key:"renderFilter",value:function(){var e=this.props,t=e.size,n=e.filterable,i=e.filter,r=void 0===i?this.state.filter:i,o=e.filterPlaceholder,a=e.filterClassName,s=void 0===a?"":a,u=e.autoFocus;return n?l.default.createElement("div",{className:_("filter",s)},l.default.createElement(v.TextInput,{controlRef:this.refFilter,size:t,placeholder:o,value:r,hasClear:!0,onUpdate:this.onFilterUpdate,autoFocus:u})):null}},{key:"renderSimpleContainer",value:function(){var e=this,t=this.props.sortable,n=this.state.items,i=t?C:g.SimpleContainer;return l.default.createElement(i,{helperClass:_("item",{sorting:!0}),distance:5,lockAxis:"y",onSortStart:this.onSortStart,onSortEnd:this.onSortEnd,itemCount:n.length,ref:this.refContainer},n.map((function(t,n){return e.renderItem({index:n,style:{height:e.getItemHeight(n)}})})))}},{key:"renderVirtualizedContainer",value:function(){var e=this,t=this.props.sortable?w:d.VariableSizeList;return l.default.createElement(c.default,null,(function(n){var i=n.width,r=n.height;return l.default.createElement(t,{ref:e.refContainer,width:i,height:r,itemSize:e.getVirtualizedItemHeight,itemData:e.state.items,itemCount:e.state.items.length,overscanCount:10,helperClass:_("item",{sorting:!0}),distance:5,lockAxis:"y",onItemsRendered:e.onItemsRendered,onSortStart:e.onSortStart,onSortEnd:e.onSortEnd,activeItem:e.state.activeItem},e.renderItem)}))}},{key:"renderItems",value:function(){return this.props.virtualized?this.renderVirtualizedContainer():this.renderSimpleContainer()}},{key:"getContainer",value:function(){var e=this.refContainer.current,t=e&&"getWrappedInstance"in e&&"function"===typeof e.getWrappedInstance&&e.getWrappedInstance();return this.props.sortable?t:e}},{key:"getFilter",value:function(){var e=this.props.filter;return void 0===e?this.state.filter:e}},{key:"getItemsStyle",value:function(){var e=this.props.itemsHeight;return"function"===typeof e&&(e=e(this.state.items)),e?{height:e}:void 0}},{key:"handleKeyMove",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;e.preventDefault();var r=this.state.activeItem,o=void 0===r?i:r;this.activateItem(n.findNextIndex(this.state.items,o+t,Math.sign(t)))}}],[{key:"moveListElement",value:function(e,t,n){if(t!==n){var r=e.splice(t,1),o=i(r,1)[0];e.splice(n,0,o)}return e}},{key:"findNextIndex",value:function(e,t,n){for(var i=e.length,r=(t+i)%i,o=0;o<i;o+=1){if(e[r]&&!e[r].disabled)return r;r=(r+i+n)%i}}}]),n}(l.default.Component);t.List=k,k.defaultProps=t.listDefaultProps},17125:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DragHandleIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.DragHandleIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 6 10",width:"6",height:"10",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{d:"M0 0h2v2H0zm0 4h2v2H0zm0 4h2v2H0zm4-8h2v2H4zm0 4h2v2H4zm0 4h2v2H4z"}))}},30256:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.ListItem=void 0;var s=(0,n(15791).__importDefault)(n(4519)),u=n(90),l=n(81242),c=n(11505),d=n(17125),h=(0,u.block)("list"),f=function(e){return String(e)},p=function(e){o(n,e);var t=a(n);function n(){var e;return i(this,n),(e=t.apply(this,arguments)).ref=s.default.createRef(),e.getRef=function(){return e.ref},e.onClick=function(){var t,n;return null===(n=(t=e.props).onClick)||void 0===n?void 0:n.call(t,e.props.item,e.props.itemIndex)},e.onClickCapture=function(e){n.publishEvent({domEvent:e,eventId:"click"})},e.onMouseEnter=function(){return!e.props.item.disabled&&e.props.onActivate(e.props.itemIndex)},e.onMouseLeave=function(){return e.props.onActivate(void 0)},e}return r(n,[{key:"render",value:function(){var e=this.props,t=e.item,n=e.style,i=e.sortable,r=e.sortHandleAlign,o=e.itemClassName,a=e.selected,u=e.active;return s.default.createElement("div",{role:"listitem","data-qa":u?c.ListQa.ACTIVE_ITEM:void 0,className:h("item",{sortable:i,active:u,selected:a,inactive:t.disabled,"sort-handle-align":r},o),style:n,onClick:t.disabled?void 0:this.onClick,onClickCapture:t.disabled?void 0:this.onClickCapture,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,ref:this.ref},this.renderSortIcon(),this.renderContent())}},{key:"renderSortIcon",value:function(){return this.props.sortable?s.default.createElement("div",{className:h("item-sort-icon")},s.default.createElement(d.DragHandleIcon,null)):null}},{key:"renderContent",value:function(){var e=this.props,t=e.renderItem,n=void 0===t?f:t,i=e.item,r=e.active,o=e.itemIndex;return s.default.createElement("div",{className:h("item-content")},n(i,r,o))}}]),n}(s.default.Component);t.ListItem=p,p.publishEvent=l.eventBroker.withEventPublisher("List")},50472:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleContainer=void 0;var s=n(15791),u=(0,s.__importDefault)(n(4519)),l=(0,s.__importDefault)(n(61883));function c(e){return(0,l.default)(e).reduce((function(e,t){return e[t]=u.default.createRef(),e}),{})}var d=function(e){o(n,e);var t=a(n);function n(e){var r;return i(this,n),(r=t.call(this,e)).state=c(e.itemCount),r}return r(n,[{key:"render",value:function(){var e=this,t=u.default.Children.map(this.props.children,(function(t,n){return u.default.cloneElement(t,{ref:e.state[n]})}));return u.default.createElement("div",null,t)}},{key:"scrollToItem",value:function(e){var t,n,i,r=null===(t=this.state[e])||void 0===t?void 0:t.current;if(r&&"function"===typeof r.getRef){var o=r.getRef();o.current&&(null===(i=(n=o.current).scrollIntoView)||void 0===i||i.call(n,{block:"nearest"}))}}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.itemCount;return n===Object.keys(t).length?t:c(n)}}]),n}(u.default.Component);t.SimpleContainer=d},15215:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(30256),t),(0,i.__exportStar)(n(50472),t)},11505:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.listNavigationIgnoredKeys=t.ListQa=void 0;var i=n(61065);t.ListQa={ACTIVE_ITEM:"list-active-item"},t.listNavigationIgnoredKeys=[i.KeyCode.TAB]},17029:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ListWrapper=t.ListQa=void 0;var i=n(15791),r=(0,i.__importDefault)(n(4519)),o=n(32891);(0,i.__exportStar)(n(32891),t),(0,i.__exportStar)(n(9284),t),(0,i.__exportStar)(n(30256),t);var a=n(11505);Object.defineProperty(t,"ListQa",{enumerable:!0,get:function(){return a.ListQa}});t.ListWrapper=function(e){return r.default.createElement(o.List,Object.assign({},e))},t.ListWrapper.defaultProps=o.listDefaultProps},9284:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},46377:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Loader=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("loader");t.Loader=function(e){var t=e.size,n=void 0===t?"s":t,o=e.className;return i.default.createElement("div",{className:r({size:n},o)},i.default.createElement("div",{className:r("left")}),i.default.createElement("div",{className:r("center")}),i.default.createElement("div",{className:r("right")}))}},63898:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(46377),t)},39561:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Menu=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(36696),a=n(61406),s=(0,r.block)("menu");t.Menu=i.default.forwardRef((function(e,t){var n=e.size,r=void 0===n?"m":n,o=e.children,a=e.style,u=e.className,l=e.qa;return i.default.createElement("ul",{ref:t,role:"menu",style:a,className:s({size:r},u),"data-qa":l},o)})),t.Menu.Item=o.MenuItem,t.Menu.Group=a.MenuGroup},61406:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MenuGroup=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(59548),a=(0,r.block)("menu");t.MenuGroup=i.default.forwardRef((function(e,t){var n=e.label,r=e.children,s=e.style,u=e.className,l=e.qa,c=(0,o.useUniqId)();return i.default.createElement("li",{ref:t,className:a("list-group-item")},i.default.createElement("div",{style:s,className:a("group",u),"data-qa":l},n&&i.default.createElement("div",{id:c,className:a("group-label")},n),i.default.createElement("ul",{role:"group","aria-labelledby":c,className:a("group-list")},r)))}))},36696:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MenuItem=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(81242),a=(0,r.block)("menu");t.MenuItem=i.default.forwardRef((function(e,t){var n,r=e.icon,s=e.title,u=e.disabled,l=e.active,c=e.selected,d=e.href,h=e.target,f=e.rel,p=e.onClick,v=e.style,g=e.className,m=e.theme,_=e.extraProps,y=e.children,b=e.qa,w=i.default.useCallback((function(e){o.eventBroker.publish({componentId:"MenuItem",eventId:"click",domEvent:e})}),[]),C={title:s,onClick:u?void 0:p,onClickCapture:u?void 0:w,style:v,tabIndex:u?-1:0,className:a("item",{disabled:u,active:l,selected:c,theme:m},g),qa:b},k=[r&&i.default.createElement("div",{key:"icon",className:a("item-icon")},r),i.default.createElement("div",{key:"content",className:a("item-content")},y)];return n=d?i.default.createElement("a",Object.assign({},_,C,{href:d,target:h,rel:f}),k):i.default.createElement("div",Object.assign({},_,C),k),i.default.createElement("li",{ref:t,className:a("list-item")},n)}))},85190:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(39561),t)},65964:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(559),a=n(90),s=n(17858),u=n(43977),l=n(91263),c=n(54608),d=n(64669),h=n(45031),f=(0,a.block)("modal");t.Modal=function(e){var t=e.open,n=void 0!==t&&t,a=e.keepMounted,p=void 0!==a&&a,v=e.disableBodyScrollLock,g=void 0!==v&&v,m=e.disableEscapeKeyDown,_=e.disableOutsideClick,y=e.disableFocusTrap,b=e.disableAutoFocus,w=e.restoreFocusRef,C=e.onEscapeKeyDown,k=e.onEnterKeyDown,S=e.onOutsideClick,x=e.onClose,L=e.onTransitionEnter,E=e.onTransitionEntered,N=e.onTransitionExit,D=e.onTransitionExited,M=e.children,T=e.style,O=e.className,I=e.contentClassName,A=e["aria-labelledby"],P=e["aria-label"],R=e.container,Z=e.qa,F=r.default.useRef(null),j=r.default.useRef(null),H=r.default.useState(!1),B=i(H,2),z=B[0],W=B[1];(0,l.useBodyScrollLock)({enabled:!g&&(n||z)});var V=(0,d.useRestoreFocus)({enabled:n||z,restoreFocusRef:w,focusTrapped:!0});return(0,h.useLayer)({open:n,disableEscapeKeyDown:m,disableOutsideClick:_,onEscapeKeyDown:C,onEnterKeyDown:k,onOutsideClick:S,onClose:x,contentRefs:[j]}),r.default.createElement(u.Portal,{container:R},r.default.createElement(o.CSSTransition,{nodeRef:F,in:n,addEndListener:function(e){var t;return null===(t=F.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:(0,s.getCSSTransitionClassNames)(f),mountOnEnter:!p,unmountOnExit:!p,appear:!0,onEnter:function(){W(!0),null===L||void 0===L||L()},onExit:function(){W(!0),null===N||void 0===N||N()},onEntered:function(){W(!1),null===E||void 0===E||E()},onExited:function(){W(!1),null===D||void 0===D||D()}},r.default.createElement("div",{ref:F,style:T,className:f({open:n},O),"data-qa":Z},r.default.createElement("div",{className:f("table")},r.default.createElement("div",{className:f("cell")},r.default.createElement(c.FocusTrap,{enabled:!y&&n&&!z,disableAutoFocus:b},r.default.createElement("div",Object.assign({ref:j,tabIndex:-1,role:"dialog","aria-modal":n,"aria-label":P,"aria-labelledby":A,className:f("content",I)},V),M)))))))}},56688:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(65964),t)},5172:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Persona=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(96225),o=n(40923),a=n(54953),s=n(9060);t.Persona=function(e){var t,n=e.size,u=void 0===n?"s":n,l=e.theme,c=void 0===l?"default":l,d=e.type,h=void 0===d?"person":d,f=e.onClick,p=e.onClose,v=e.text,g=e.image,m=e.className;switch(h){case"person":t=g?i.default.createElement("img",{alt:"",src:g}):i.default.createElement("span",null,(0,s.getTwoLetters)(v));break;case"email":t=i.default.createElement(r.Icon,{data:o.Mail,size:14});break;case"empty":t=null}return i.default.createElement(a.PersonaWrap,{size:u,theme:c,isEmpty:"empty"===h,onClick:f&&f.bind(null,v),onClose:p&&p.bind(null,v),avatar:t,className:m},v)},t.Persona.displayName="Persona"},9060:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getTwoLetters=void 0;var i=(0,n(15791).__importDefault)(n(41925));t.getTwoLetters=function(e){var t=e.split(" ");return[i.default.get(t,"[0][0]"),i.default.get(t,"[1][0]")].filter(Boolean).join("")}},13080:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(5172),t)},71877:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PersonaWrap=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(96225),o=n(40923),a=(0,n(90).block)("persona");t.PersonaWrap=function(e){var t=e.size,n=void 0===t?"s":t,s=e.theme,u=void 0===s?"default":s,l=e.isEmpty,c=e.onClick,d=e.onClose,h=e.className,f=e.avatar,p=e.children,v=Boolean(c),g=Boolean(d);return i.default.createElement("div",{className:a({size:n,theme:u,clickable:v,closeable:g,empty:l},h)},i.default.createElement("div",{className:a("main"),onClick:c},f&&i.default.createElement("div",{className:a("avatar")},f),i.default.createElement("div",{className:a("text")},p)),d&&i.default.createElement("div",{className:a("close"),onClick:d},i.default.createElement(r.Icon,{data:o.CrossIcon,size:8})))},t.PersonaWrap.displayName="PersonaWrap"},54953:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(71877),t)},74829:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.cnPopover=void 0;var i=n(90);t.cnPopover=(0,i.block)("popover")},64618:function(e,t,n){"use strict";var i=n(59713).default,r=n(87757),o=n(48926).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Popover=void 0;var a=(0,n(15791).__importStar)(n(4519)),s=n(1541),u=n(5698),l=n(96225),c=n(40923),d=n(9566),h=n(83838),f=n(7829),p=n(72491),v=n(90556),g=n(74829),m=n(32531);t.Popover=(0,a.forwardRef)((function(e,t){var n,_=e.initialOpen,y=void 0!==_&&_,b=e.disabled,w=void 0!==b&&b,C=e.autoclosable,k=void 0===C||C,S=e.openOnHover,x=void 0===S||S,L=e.delayOpening,E=e.delayClosing,N=e.behavior,D=void 0===N?m.PopoverBehavior.Delayed:N,M=e.placement,T=void 0===M?["right","bottom"]:M,O=e.offset,I=void 0===O?{}:O,A=e.tooltipOffset,P=e.tooltipClassName,R=e.theme,Z=void 0===R?"info":R,F=e.size,j=void 0===F?"s":F,H=e.hasArrow,B=void 0===H||H,z=e.hasClose,W=void 0!==z&&z,V=e.className,Y=e.children,U=e.title,K=e.content,q=e.htmlContent,G=e.contentClassName,$=e.links,Q=e.forceLinksAppearance,X=void 0!==Q&&Q,J=e.tooltipActionButton,ee=e.tooltipCancelButton,te=e.onOpenChange,ne=e.onCloseClick,ie=e.onClick,re=e.anchorRef,oe=e.strategy,ae=e.qa,se=(0,a.useRef)(null),ue=(0,a.useRef)(!1),le=(0,a.useRef)(y),ce=(0,v.useOpen)({initialOpen:y,disabled:w,autoclosable:k,onOpenChange:te,delayOpening:L,delayClosing:E,behavior:D,shouldBeOpen:le}),de=ce.isOpen,he=ce.closingTimeout,fe=ce.openTooltip,pe=ce.openTooltipDelayed,ve=ce.unsetOpeningTimeout,ge=ce.closeTooltip,me=ce.closeTooltipDelayed,_e=ce.unsetClosingTimeout;(0,a.useImperativeHandle)(t,(function(){return{openTooltip:fe,closeTooltip:ge}}),[fe,ge]);var ye=function(){var e=o(r.mark((function e(t){return r.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:ge(),null===ne||void 0===ne||ne(t);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),be=Boolean(U),we=a.default.createElement(s.Popup,{strategy:oe,anchorRef:re||se,className:(0,g.cnPopover)("tooltip",(n={theme:Z,size:j},i(n,"with-close",W),i(n,"force-links-appearance",X),n),P),open:de,placement:T,hasArrow:B,offset:A,onClose:re?void 0:ge,qa:ae?"".concat(ae,"-tooltip"):""},a.default.createElement(a.default.Fragment,null,U&&a.default.createElement("h3",{className:(0,g.cnPopover)("tooltip-title")},U),a.default.createElement(h.Content,{secondary:!!be&&"announcement"!==Z,content:K,htmlContent:q,className:G}),$&&a.default.createElement(f.Links,{links:$}),a.default.createElement(d.Buttons,{theme:Z,tooltipActionButton:J,tooltipCancelButton:ee}),W&&a.default.createElement("div",{className:(0,g.cnPopover)("tooltip-close")},a.default.createElement(u.Button,{size:"s",view:"flat-secondary",onClick:ye,extraProps:{"aria-label":"Close"}},a.default.createElement(l.Icon,{data:c.PreviewCloseIcon,size:24})))));if(re)return we;return a.default.createElement("div",{ref:se,className:(0,g.cnPopover)({disabled:w},V),onMouseEnter:x?function(){_e(),de||w||ue.current?le.current=!0:pe()}:void 0,onMouseLeave:x?function(){!k||ue.current||he.current?le.current=!1:(ve(),me()),ue.current=!1}:void 0,style:{top:I.top,left:I.left},"data-qa":ae},a.default.createElement(p.Trigger,{closeTooltip:ge,openTooltip:fe,open:de,disabled:w,onClick:ie,closedManually:ue},Y),we)})),t.Popover.displayName="Popover"},9566:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Buttons=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(5698),o=n(74829),a=n(31059);t.Buttons=function(e){var t=e.theme,n=e.tooltipActionButton,s=e.tooltipCancelButton;return n||s?i.default.createElement("div",{className:(0,o.cnPopover)("tooltip-buttons")},n&&i.default.createElement(r.Button,{view:(0,a.getButtonView)(t,!0),width:"max",onClick:n.onClick,className:(0,o.cnPopover)("tooltip-button")},n.text),s&&i.default.createElement(r.Button,{view:(0,a.getButtonView)(t,!1),width:"max",onClick:s.onClick,className:(0,o.cnPopover)("tooltip-button")},s.text)):null}},31059:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getButtonView=void 0;t.getButtonView=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];switch(e){case"special":return t?"normal-contrast":"flat-contrast";case"announcement":return t?"normal-contrast":"outlined";default:return t?"normal":"flat"}}},83838:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Content=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(74829);t.Content=function(e){var t=e.secondary,n=e.htmlContent,o=e.content,a=e.className;return n||o?n?i.default.createElement("div",{className:(0,r.cnPopover)("tooltip-content",{secondary:t}),dangerouslySetInnerHTML:{__html:n}}):o?i.default.createElement("div",{className:(0,r.cnPopover)("tooltip-content",{secondary:t},a)},o):null:null}},7829:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Links=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(43299),o=n(74829);t.Links=function(e){var t=e.links;return 0===t.length?null:i.default.createElement("div",{className:(0,o.cnPopover)("tooltip-links")},t.map((function(e,t){var n=e.text,a=e.href,s=e.target,u=void 0===s?"_blank":s,l=e.onClick;return i.default.createElement(i.default.Fragment,{key:"link-".concat(t)},i.default.createElement(r.Link,{href:a,target:u,onClick:l,className:(0,o.cnPopover)("tooltip-link")},n),i.default.createElement("br",null))})))}},72491:function(e,t,n){"use strict";var i=n(87757),r=n(48926).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Trigger=void 0;var o=(0,n(15791).__importDefault)(n(4519));t.Trigger=function(e){var t=e.open,n=e.disabled,a=e.openTooltip,s=e.closeTooltip,u=e.closedManually,l=e.onClick,c=e.children,d=function(){var e=r(i.mark((function e(r){return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n){e.next=2;break}return e.abrupt("return");case 2:if(e.t0=!l,e.t0){e.next=7;break}return e.next=6,l(r);case 6:e.t0=e.sent;case 7:if(e.t0){e.next=10;break}return e.abrupt("return");case 10:(function(){!t?(a(),u.current=!1):(s(),u.current=!0)})();case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return o.default.createElement("span",{onClick:d},c)}},32531:function(e,t,n){"use strict";var i,r,o=n(59713).default;Object.defineProperty(t,"__esModule",{value:!0}),t.delayByBehavior=t.PopoverBehavior=void 0,function(e){e.Immediate="immediate",e.Delayed="delayed",e.DelayedClosing="delayedClosing"}(r=t.PopoverBehavior||(t.PopoverBehavior={})),t.delayByBehavior=(o(i={},r.Immediate,[0,0]),o(i,r.Delayed,[300,300]),o(i,r.DelayedClosing,[0,300]),i)},90556:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useOpen=void 0;var r=n(4519),o=n(9280),a=n(32531);t.useOpen=function(e){var t=e.initialOpen,n=e.disabled,s=e.autoclosable,u=e.onOpenChange,l=e.delayOpening,c=e.delayClosing,d=e.behavior,h=e.shouldBeOpen,f=(0,r.useRef)(null),p=(0,r.useRef)(null),v=(0,r.useState)(t),g=i(v,2),m=g[0],_=g[1],y=(0,r.useCallback)((function(){f.current&&(clearTimeout(f.current),f.current=null)}),[]),b=(0,r.useCallback)((function(){p.current&&(clearTimeout(p.current),p.current=null)}),[]);(0,r.useEffect)((function(){return function(){y(),b()}}),[b,y]);var w=(0,r.useCallback)((function(e){_(e),h.current=e,null===u||void 0===u||u(e)}),[u,h]),C=(0,r.useCallback)((function(){y(),w(!0)}),[w,y]),k=(0,r.useCallback)((function(){b(),w(!1)}),[w,b]);(0,r.useEffect)((function(){n&&k()}),[n,k]),(0,o.useUpdateEffect)((function(){s&&!h.current&&k()}),[s,k,h]);var S=i(a.delayByBehavior[d],2),x=S[0],L=S[1],E=(0,r.useCallback)((function(){f.current=setTimeout((function(){f.current=null,C()}),null!==l&&void 0!==l?l:x)}),[x,l,C]),N=(0,r.useCallback)((function(){p.current=setTimeout((function(){p.current=null,k()}),null!==c&&void 0!==c?c:L)}),[k,L,c]);return{isOpen:m,closingTimeout:p,openTooltip:C,openTooltipDelayed:E,unsetOpeningTimeout:y,closeTooltip:k,closeTooltipDelayed:N,unsetClosingTimeout:b}}},51700:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PopoverBehavior=void 0,(0,n(15791).__exportStar)(n(64618),t);var i=n(32531);Object.defineProperty(t,"PopoverBehavior",{enumerable:!0,get:function(){return i.PopoverBehavior}})},43254:function(e,t,n){"use strict";var i=n(319).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Popup=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(559),a=n(90),s=n(17858),u=n(43977),l=n(45031),c=n(54740),d=n(72842),h=n(64669),f=n(79004),p=n(54608),v=(0,a.block)("popup"),g=(0,a.block)("popup-wrapper"),m=8;t.Popup=function(e){var t=e.keepMounted,n=void 0!==t&&t,a=e.hasArrow,_=void 0!==a&&a,y=e.offset,b=void 0===y?[0,4]:y,w=e.open,C=e.placement,k=e.anchorRef,S=e.disableEscapeKeyDown,x=e.disableOutsideClick,L=e.disableLayer,E=e.style,N=e.className,D=e.modifiers,M=void 0===D?[]:D,T=e.children,O=e.onEscapeKeyDown,I=e.onOutsideClick,A=e.onClose,P=e.onClick,R=e.onMouseEnter,Z=e.onMouseLeave,F=e.disablePortal,j=e.container,H=e.strategy,B=e.qa,z=e.restoreFocus,W=e.restoreFocusRef,V=r.default.useRef(null);(0,l.useLayer)({open:w,disableEscapeKeyDown:S,disableOutsideClick:x,onEscapeKeyDown:O,onOutsideClick:I,onClose:A,contentRefs:[k,V],enabled:!L});var Y=(0,c.usePopper)({anchorRef:k,placement:C,offset:_?[b[0],b[1]+m]:b,strategy:H,altBoundary:F,modifiers:[{name:"arrow",options:{enabled:_,padding:4}},{name:"preventOverflow",options:{padding:1,altBoundary:F}}].concat(i(M))}),U=Y.attributes,K=Y.styles,q=Y.setPopperRef,G=Y.setArrowRef,$=(0,d.useForkRef)(q,V,(0,p.useParentFocusTrap)()),Q=(0,h.useRestoreFocus)({enabled:Boolean(z&&w),restoreFocusRef:W});return r.default.createElement(u.Portal,{container:j,disablePortal:F},r.default.createElement(o.CSSTransition,{nodeRef:V,in:w,addEndListener:function(e){var t;return null===(t=V.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:(0,s.getCSSTransitionClassNames)(g),mountOnEnter:!n,unmountOnExit:!n,appear:!0},r.default.createElement("div",Object.assign({ref:$,style:K.popper},U.popper,Q,{className:g({open:w})}),r.default.createElement("div",{onClick:P,onMouseEnter:R,onMouseLeave:Z,className:v({open:w},N),style:E,"data-qa":B},_&&r.default.createElement(f.PopupArrow,{styles:K.arrow,attributes:U.arrow,setArrowRef:G}),T))))}},79004:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PopupArrow=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("popup");t.PopupArrow=function(e){var t=e.styles,n=e.attributes,o=e.setArrowRef;return i.default.createElement("div",Object.assign({"data-popper-arrow":!0,ref:o,className:r("arrow"),style:t},n),i.default.createElement("div",{className:r("arrow-content")},i.default.createElement("div",{className:r("arrow-circle-wrapper")},i.default.createElement("div",{className:r("arrow-circle",{left:!0})})),i.default.createElement("div",{className:r("arrow-circle-wrapper")},i.default.createElement("div",{className:r("arrow-circle",{right:!0})}))))}},1541:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(43254),t)},37334:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Portal=void 0;var i=n(15791),r=(0,i.__importDefault)(n(4519)),o=(0,i.__importDefault)(n(84453)),a=n(54480);t.Portal=function(e){var t=e.container,n=e.children,i=e.disablePortal,s=(0,a.usePortalContainer)(),u=null!==t&&void 0!==t?t:s;return i?r.default.createElement(r.default.Fragment,null,n):u?o.default.createPortal(n,u):null}},43977:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(37334),t)},58523:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Progress=void 0;var s=n(15791),u=(0,s.__importStar)(n(4519)),l=n(90),c=(0,s.__importDefault)(n(780)),d=(0,l.block)("progress"),h=function(e){o(n,e);var t=a(n);function n(){return i(this,n),t.apply(this,arguments)}return r(n,[{key:"render",value:function(){var e=this.props,t=e.view,n=e.className;return u.default.createElement("div",{className:d({view:t},n)},this.renderText(),this.renderContent())}},{key:"getTheme",value:function(){if(n.isProgressWithStack(this.props))throw new Error("Unexpected behavior");var e=this.props,t=e.theme,i=e.colorStops,r=e.colorStopsValue,o=e.value;if(i){var a=i.find((function(e,t){var a="number"===typeof r?r:o;return n.isBetween(a,t>1?i[t-1].stop:0,t<i.length-1?e.stop:100)}));return a?a.theme:t}return t}},{key:"renderContent",value:function(){return n.isProgressWithStack(this.props)?this.renderStack(this.props):this.renderItem(this.props)}},{key:"renderItem",value:function(e){var t=e.value,i=d("item",{theme:this.getTheme(),loading:this.props.loading}),r=n.getOffset(t),o={transform:"translateX(".concat(r,"%)")};return n.isFiniteNumber(t)?u.default.createElement("div",{className:i,style:o},this.renderInnerText(r)):null}},{key:"renderStack",value:function(e){var t=e.stack,i=e.stackClassName,r=d("stack",i),o=e.value||n.getValueFromStack(t),a=n.getOffset(o),s={transform:"translateX(".concat(a,"%)")},l={width:"".concat(-a,"%")};return u.default.createElement("div",{className:r,style:s},u.default.createElement("div",{className:d("item"),style:l}),t.map((function(e,t){var i=e.value,r=e.color,a=e.title,s=e.theme,c=e.loading,h=void 0!==c&&c,f=e.className,p=e.content;l={width:"".concat(i,"%"),backgroundColor:r};var v={loading:h};return"undefined"===typeof r&&(v.theme=s||"default"),n.isFiniteNumber(o)?u.default.createElement("div",{key:t,className:d("item",v,f),style:l,title:a},p):null})),this.renderInnerText(a))}},{key:"renderInnerText",value:function(e){var t=this.props.text;if(!t)return null;var n=d("text-inner"),i={transform:"translateX(".concat(-e,"%)")};return u.default.createElement("div",{className:n,style:i},t)}},{key:"renderText",value:function(){var e=this.props.text,t=d("text");return u.default.createElement("div",{className:t},e)}}],[{key:"isFiniteNumber",value:function(e){return isFinite(e)&&!isNaN(e)}},{key:"isBetween",value:function(e,t,n){return e>=t&&e<=n}},{key:"getOffset",value:function(e){return e<100?e-100:0}},{key:"getValueFromStack",value:function(e){return(0,c.default)(e,(function(e){return e.value}))}},{key:"isProgressWithStack",value:function(e){return void 0!==e.stack}}]),n}(u.Component);t.Progress=h,h.defaultProps={text:"",theme:"default",view:"normal",loading:!1}},70249:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(58523),t)},35380:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.PromoSheet=void 0;var r=(0,n(15791).__importStar)(n(4519)),o=n(90),a=n(99959),s=n(5698),u=n(21618),l=n(96225),c=(0,o.block)("promo-sheet");t.PromoSheet=function(e){var t=e.title,n=e.message,o=e.actionText,d=e.closeText,h=e.actionHref,f=e.imageSrc,p=e.className,v=e.contentClassName,g=e.imageContainerClassName,m=e.imageClassName,_=e.onActionClick,y=e.onClose,b=(0,r.useState)(!0),w=i(b,2),C=w[0],k=w[1],S=(0,r.useState)(!f),x=i(S,2),L=x[0],E=x[1],N=(0,r.useState)(),D=i(N,2),M=D[0],T=D[1],O=(0,r.useCallback)((function(e){k(!1),null===_||void 0===_||_(e)}),[_]),I=(0,r.useCallback)((function(){k(!1)}),[]),A=(0,r.useMemo)((function(){return{"aria-label":d}}),[d]);return(0,r.useEffect)((function(){if(f){var e=new Image;e.onload=function(){T({width:e.naturalWidth,height:e.naturalHeight}),E(!0),e.onload=null,e.onerror=null},e.onerror=function(){T(void 0),E(!0),e.onload=null,e.onerror=null},e.src=f}else E(!0)}),[f]),r.default.createElement(u.Sheet,{className:c(null,p),contentClassName:c("content",v),visible:C&&L,hideTopBar:!0,onClose:y},r.default.createElement("header",{className:c("header")},r.default.createElement("h2",{className:c("title")},t),r.default.createElement(s.Button,{className:c("close-button"),size:"xl",view:"flat-contrast",onClick:I,extraProps:A},r.default.createElement(l.Icon,{data:a.CrossIcon,size:16}))),r.default.createElement("p",{className:c("message")},n),f&&r.default.createElement("div",{className:c("image-container",g)},r.default.createElement("img",{role:"presentation",className:c("image",m),src:f,alt:"",width:null===M||void 0===M?void 0:M.width,height:null===M||void 0===M?void 0:M.height})),r.default.createElement("div",{className:c("actions")},r.default.createElement(s.Button,{className:c("action-button"),size:"xl",view:"outlined-contrast",width:"max",href:h,onClick:O},o)))}},16285:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(35380),t)},63821:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Radio=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(77784),o=n(90),a=n(82550),s=(0,o.block)("radio");t.Radio=i.default.forwardRef((function(e,t){var n=e.size,o=void 0===n?"m":n,u=e.disabled,l=void 0!==u&&u,c=e.content,d=e.children,h=e.title,f=e.style,p=e.className,v=e.qa,g=(0,a.useRadio)(e),m=g.checked,_=g.inputProps,y=c||d,b=i.default.createElement("span",{className:s("indicator")},i.default.createElement("span",{className:s("disc")}),i.default.createElement("input",Object.assign({},_,{className:s("control")})),i.default.createElement("span",{className:s("outline")}));return i.default.createElement(r.ControlLabel,{ref:t,title:h,style:f,size:o,disabled:l,className:s({size:o,disabled:l,checked:m},p),qa:v,control:b},y)}))},64621:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(63821),t)},83260:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RadioButton=void 0;var i=(0,n(15791).__importStar)(n(4519)),r=n(90),o=n(78589),a=n(42662),s=(0,r.block)("radio-button");t.RadioButton=i.default.forwardRef((function(e,t){var n=e.size,r=void 0===n?"m":n,u=e.width,l=e.style,c=e.className,d=e.qa,h=e.children,f=e.options;f||(f=i.default.Children.toArray(h).map((function(e){var t=e.props;return{value:t.value,content:t.content||t.children,disabled:t.disabled}})));var p=(0,i.useRef)(null),v=(0,i.useRef)(),g=(0,i.useCallback)((function(e){if(e){var t=p.current;if(t){var n=v.current;if(n&&n!==e){var i=function(e){t.style.left="".concat(e.offsetLeft,"px"),t.style.width="".concat(e.offsetWidth,"px")};i(n),t.hidden=!1,i(e)}v.current=e}}}),[]),m=(0,i.useCallback)((function(e){e.currentTarget.hidden=!0}),[]),_=(0,a.useRadioGroup)(Object.assign(Object.assign({},e),{options:f})),y=_.containerProps,b=_.optionsProps;return i.default.createElement("div",Object.assign({},y,{ref:t,style:l,className:s({size:r,width:u},c),"data-qa":d}),i.default.createElement("div",{ref:p,className:s("plate"),onTransitionEnd:m,hidden:!0}),b.map((function(e){return i.default.createElement(o.RadioButtonOption,Object.assign({},e,{key:e.value,ref:e.checked?g:void 0}))})))})),t.RadioButton.Option=o.RadioButtonOption},78589:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RadioButtonOption=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(58538),a=n(82550),s=(0,r.block)("radio-button");t.RadioButtonOption=i.default.forwardRef((function(e,t){var n=e.disabled,r=void 0!==n&&n,u=e.content,l=e.children,c=(0,a.useRadio)(e),d=c.checked,h=c.inputProps,f=u||l,p=(0,o.isIcon)(f);return i.default.createElement("label",{className:s("option",{disabled:r,checked:d}),ref:t},i.default.createElement("input",Object.assign({},h,{className:s("option-control")})),i.default.createElement("span",{className:s("option-outline")}),f&&i.default.createElement("span",{className:s("option-text",{icon:p})},f))}))},46780:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(83260),t)},53338:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RadioGroup=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(64621),a=n(42662),s=(0,r.block)("radio-group");t.RadioGroup=i.default.forwardRef((function(e,t){var n=e.size,r=void 0===n?"m":n,u=e.direction,l=void 0===u?"horizontal":u,c=e.style,d=e.className,h=e.optionClassName,f=e.qa,p=e.children,v=e.options;v||(v=i.default.Children.toArray(p).map((function(e){var t=e.props;return{value:t.value,content:t.content||t.children,disabled:t.disabled}})));var g=(0,a.useRadioGroup)(Object.assign(Object.assign({},e),{options:v})),m=g.containerProps,_=g.optionsProps;return i.default.createElement("div",Object.assign({},m,{ref:t,style:c,className:s({size:r,direction:l},d),"data-qa":f}),_.map((function(e){return i.default.createElement(o.Radio,Object.assign({},e,{key:e.value,className:s("option",h),size:r}))})))})),t.RadioGroup.Option=o.Radio},66638:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(53338),t)},49339:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Select=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(72842),a=n(25700),s=n(61065),u=n(26563),l=n(92914),c=n(76157),d=n(49471),h=n(67249),f=n(43769),p=n(8675),v=n(31859);t.Select=r.default.forwardRef((function(e,t){var n=e.onUpdate,h=e.onOpenChange,g=e.onFilterChange,m=e.renderControl,_=e.renderFilter,y=e.renderOption,b=e.renderSelectedOption,w=e.renderEmptyOptions,C=e.getOptionHeight,k=e.filterOption,S=e.name,x=e.className,L=e.controlClassName,E=e.popupClassName,N=e.qa,D=e.value,M=e.defaultValue,T=e.defaultOpen,O=e.open,I=e.label,A=e.placeholder,P=e.filterPlaceholder,R=e.width,Z=e.popupWidth,F=e.error,j=e.virtualizationThreshold,H=void 0===j?f.DEFAULT_VIRTUALIZATION_THRESHOLD:j,B=e.view,z=void 0===B?"normal":B,W=e.size,V=void 0===W?"m":W,Y=e.pin,U=void 0===Y?"round-round":Y,K=e.multiple,q=void 0!==K&&K,G=e.disabled,$=void 0!==G&&G,Q=e.filterable,X=void 0!==Q&&Q,J=e.disablePortal,ee=e.onClose,te=(0,v.useMobile)(),ne=i(te,1)[0],ie=r.default.useReducer(u.reducer,u.initialState),re=i(ie,2),oe=re[0].filter,ae=re[1],se=r.default.useRef(null),ue=r.default.useRef(null),le=r.default.useRef(null),ce=r.default.useRef(null),de=(0,o.useForkRef)(t,ue),he=(0,a.useSelect)({onUpdate:n,value:D,defaultValue:M,defaultOpen:T,multiple:q,open:O,onClose:ee,onOpenChange:h}),fe=he.value,pe=he.open,ve=he.toggleOpen,ge=he.handleSelection,me=e.options||(0,c.getOptionsFromChildren)(e.children),_e=(0,c.getFlattenOptions)(me),ye=X?(0,c.getFilteredFlattenOptions)({options:_e,filter:oe,filterOption:k}):_e,be=(0,c.getSelectedOptionsContent)(_e,fe,b),we=ye.length>=H,Ce=r.default.useCallback((function(e){var t,n;if(e&&!("label"in e)){if(q){var i=null===(t=null===ce||void 0===ce?void 0:ce.current)||void 0===t?void 0:t.getActiveItem();null===(n=le.current)||void 0===n||n.focus(),"number"===typeof i&&setTimeout((function(){var e;null===(e=null===ce||void 0===ce?void 0:ce.current)||void 0===e||e.activateItem(i,!0)}),50)}ge(e)}}),[ge,q]),ke=r.default.useCallback((function(e){var t;[s.KeyCode.ENTER,s.KeyCode.SPACEBAR].includes(e.key)&&pe&&(e.preventDefault(),e.key===s.KeyCode.SPACEBAR&&Ce((0,c.getActiveItem)(ce))),null===(t=null===ce||void 0===ce?void 0:ce.current)||void 0===t||t.onKeyDown(e)}),[Ce,pe]),Se=r.default.useCallback((function(e){var t;null===(t=null===ce||void 0===ce?void 0:ce.current)||void 0===t||t.onKeyDown(e)}),[]),xe=r.default.useCallback((function(e){null===g||void 0===g||g(e),ae({type:"SET_FILTER",payload:{filter:e}})}),[g]),Le=r.default.useCallback((function(e){var t;if(e){var n=(0,c.findItemIndexByQuickSearch)(e,(0,c.getListItems)(ce));"number"===typeof n&&-1!==n&&(null===(t=null===ce||void 0===ce?void 0:ce.current)||void 0===t||t.activateItem(n,!0))}}),[]);(0,l.useQuickSearch)({onChange:Le,open:pe,disabled:X}),r.default.useEffect((function(){var e;pe?((0,c.activateFirstClickableItem)(ce),X&&(null===(e=le.current)||void 0===e||e.focus())):ae({type:"SET_FILTER",payload:{filter:""}})}),[pe,X]);var Ee=Object.assign({},"max"===R&&{width:R}),Ne={};"number"===typeof R&&(Ne.width=R);var De=r.default.useCallback((function(){return ve(!1)}),[ve]),Me=(0,p.useOnFocusOutside)({enabled:pe,onFocusOutside:De}),Te=Me.onFocus,Oe=Me.onBlur;return r.default.createElement("div",{ref:se,className:(0,f.selectBlock)(Ee,x),onFocus:Te,onBlur:Oe,style:Ne},r.default.createElement(d.SelectControl,{toggleOpen:ve,ref:de,className:L,qa:N,name:S,view:z,size:V,pin:U,label:I,placeholder:A,selectedOptionsContent:be,error:F,open:pe,disabled:$,onKeyDown:ke,renderControl:m,value:fe}),r.default.createElement(d.SelectPopup,{ref:se,className:E,controlRef:ue,width:Z,open:pe,handleClose:De,disablePortal:J,virtualized:we,mobile:ne},X&&r.default.createElement(d.SelectFilter,{ref:le,size:V,value:oe,placeholder:P,onChange:xe,onKeyDown:Se,renderFilter:_}),ye.length?r.default.createElement(d.SelectList,{ref:ce,size:V,value:fe,mobile:ne,flattenOptions:ye,multiple:q,virtualized:we,onOptionClick:Ce,renderOption:y,getOptionHeight:C}):r.default.createElement(d.EmptyOptions,{filter:oe,renderEmptyOptions:w})))})),t.Select.Option=h.Option,t.Select.OptionGroup=h.OptionGroup},21237:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EmptyOptions=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).blockNew)("select-empty-placeholder");t.EmptyOptions=function(e){var t=e.renderEmptyOptions,n=e.filter;return i.default.createElement("div",{className:r({empty:!t})},null===t||void 0===t?void 0:t({filter:n}))}},25450:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectControl=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(72842),o=n(5698),a=n(96225),s=n(52162),u=n(43769),l=n(76157);t.SelectControl=i.default.forwardRef((function(e,t){var n=e.toggleOpen,c=e.onKeyDown,d=e.renderControl,h=e.view,f=e.size,p=e.pin,v=e.selectedOptionsContent,g=e.className,m=e.qa,_=e.name,y=e.label,b=e.placeholder,w=e.error,C=e.open,k=e.disabled,S=e.value,x=i.default.useRef(null),L=(0,r.useForkRef)(t,x),E=Boolean(v),N=Boolean(b&&!E);return d?d({onKeyDown:c,onClick:n,ref:L,open:Boolean(C)},{value:S}):i.default.createElement(i.default.Fragment,null,i.default.createElement(o.Button,{ref:L,className:(0,u.selectControlBlock)({open:C,error:Boolean(w)},g),qa:m,view:(0,l.mapToButtonView)(h),size:f,pin:p,extraProps:{name:_,"aria-haspopup":"listbox","aria-expanded":C?"true":"false",onKeyDown:c},disabled:k,onClick:n},y&&i.default.createElement("span",{className:(0,u.selectControlBlock)("label")},y),N&&i.default.createElement("span",{className:(0,u.selectControlBlock)("placeholder")},b),E&&i.default.createElement("span",{className:(0,u.selectControlBlock)("option-text")},v),i.default.createElement(a.Icon,{className:(0,u.selectControlBlock)("chevron-icon",{disabled:k}),data:s.Chevron})),"string"===typeof w&&i.default.createElement("div",{className:(0,u.selectControlBlock)("error")},w))})),t.SelectControl.displayName="SelectControl"},46692:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectFilter=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(14077),a=(0,r.blockNew)("select-filter");t.SelectFilter=i.default.forwardRef((function(e,t){var n=e.onChange,r=e.onKeyDown,s=e.renderFilter,u=e.size,l=e.value,c=e.placeholder,d=i.default.useRef(null),h=i.default.useRef(null);return i.default.useImperativeHandle(t,(function(){return{focus:function(){var e;return null===(e=h.current)||void 0===e?void 0:e.focus({preventScroll:!0})}}}),[]),i.default.createElement("div",{ref:d,className:a()},s?s({onChange:n,onKeyDown:r,value:l,ref:h}):i.default.createElement(o.TextInput,{controlRef:h,controlProps:{className:a("input"),size:1},size:u,value:l,placeholder:c,onUpdate:n,onKeyDown:r}))})),t.SelectFilter.displayName="SelectFilter"},79846:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GroupLabel=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).blockNew)("select-list");t.GroupLabel=function(e){var t=e.label;return i.default.createElement("div",{className:r("group-label",{empty:""===t})},i.default.createElement("div",{className:r("group-label-content")},t))}},8383:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OptionWrap=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(96225),a=n(92976),s=(0,r.blockNew)("select-list"),u=function(e){var t=e.option,n=t.content,r=t.children,o=t.disabled;return i.default.createElement("span",{className:s("option-default-label",{disabled:o})},n||r)};t.OptionWrap=function(e){var t=e.renderOption,n=e.value,r=e.option,l=e.multiple,c=-1!==n.indexOf(r.value),d=t?t(r):i.default.createElement(u,{option:r});return i.default.createElement("div",{"data-qa":r.qa,className:s("option",{colored:c&&!l,disabled:r.disabled})},d,l&&i.default.createElement(o.Icon,{className:s("tick-icon",{shown:c&&l}),data:a.Tick}))}},1457:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectList=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(17029),o=n(76157),a=n(43769),s=n(79846),u=n(8383);t.SelectList=i.default.forwardRef((function(e,t){var n=e.onOptionClick,l=e.renderOption,c=e.getOptionHeight,d=e.size,h=e.flattenOptions,f=e.value,p=e.multiple,v=e.virtualized,g=e.mobile,m=(0,o.getOptionsHeight)({options:h,getOptionHeight:c,size:d,mobile:g}),_=i.default.useCallback((function(e,t){return(0,o.getPopupItemHeight)({getOptionHeight:c,size:d,option:e,index:t,mobile:g})}),[c,g,d]),y=i.default.useCallback((function(e,t,n){if("label"in e)return i.default.createElement(s.GroupLabel,{label:e.label});var r=l?function(e){return l(e,{itemHeight:_(e,n)})}:void 0;return i.default.createElement(u.OptionWrap,{option:e,value:f,multiple:p,renderOption:r})}),[l,f,p,_]);return i.default.createElement(r.List,{ref:t,className:(0,a.selectListBlock)({size:d,virtualized:v,mobile:g}),qa:a.SelectQa.LIST,itemClassName:(0,a.selectListBlock)("item"),itemHeight:_,itemsHeight:v?m:void 0,items:h,filterable:!1,virtualized:v,renderItem:y,onItemClick:n})})),t.SelectList.displayName="SelectList"},94007:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectPopup=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(1541),o=n(90),a=n(43769),s=n(53193),u=n(21618),l=(0,o.blockNew)("select-popup");t.SelectPopup=i.default.forwardRef((function(e,t){var n=e.handleClose,o=e.width,c=e.open,d=e.controlRef,h=e.children,f=e.className,p=e.disablePortal,v=e.virtualized;return e.mobile?i.default.createElement(u.Sheet,{qa:a.SelectQa.SHEET,className:f,visible:Boolean(c),onClose:n},h):i.default.createElement(r.Popup,{className:l(null,f),qa:a.SelectQa.POPUP,anchorRef:t,placement:["bottom-start","bottom-end","top-start","top-end"],offset:[a.BORDER_WIDTH,a.BORDER_WIDTH],open:c,onClose:n,disablePortal:p,restoreFocus:!0,restoreFocusRef:d,modifiers:(0,s.getModifiers)({width:o,disablePortal:p,virtualized:v})},h)})),t.SelectPopup.displayName="SelectPopup"},53193:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getModifiers=void 0;var i=n(43769);t.getModifiers=function(e){var t=e.width,n=e.disablePortal,r=e.virtualized,o={name:"sameWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var n=e.state;if(!n.attributes.popper["data-width-set"]){var o=function(e,t){return t?e>i.POPUP_MIN_WIDTH_IN_VIRTUALIZE_CASE?e:i.POPUP_MIN_WIDTH_IN_VIRTUALIZE_CASE:e-2*i.BORDER_WIDTH}(n.rects.reference.width,r);n.attributes.popper["data-width-set"]=!0,n.styles.popper.minWidth="".concat(o,"px")}"number"===typeof t&&(n.styles.popper.width="".concat(t,"px"))}};return[o,{name:"preventOverflow",options:{padding:10,altBoundary:n,altAxis:!0}}]}},49471:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectList=t.SelectFilter=t.EmptyOptions=void 0;var i=n(15791),r=n(21237);Object.defineProperty(t,"EmptyOptions",{enumerable:!0,get:function(){return r.EmptyOptions}}),(0,i.__exportStar)(n(25450),t);var o=n(46692);Object.defineProperty(t,"SelectFilter",{enumerable:!0,get:function(){return o.SelectFilter}});var a=n(1457);Object.defineProperty(t,"SelectList",{enumerable:!0,get:function(){return a.SelectList}}),(0,i.__exportStar)(n(94007),t)},43769:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectQa=t.DEFAULT_VIRTUALIZATION_THRESHOLD=t.QUICK_SEARCH_TIMEOUT=t.POPUP_MIN_WIDTH_IN_VIRTUALIZE_CASE=t.BORDER_WIDTH=t.GROUP_ITEM_MARGIN_TOP=t.MOBILE_ITEM_HEIGHT=t.SIZE_TO_ITEM_HEIGHT=t.selectListBlock=t.selectControlBlock=t.selectBlock=void 0;var i=n(90);t.selectBlock=(0,i.blockNew)("select"),t.selectControlBlock=(0,i.blockNew)("select-control"),t.selectListBlock=(0,i.blockNew)("select-list"),t.SIZE_TO_ITEM_HEIGHT={s:28,m:28,l:32,xl:36},t.MOBILE_ITEM_HEIGHT=32,t.GROUP_ITEM_MARGIN_TOP=5,t.BORDER_WIDTH=1,t.POPUP_MIN_WIDTH_IN_VIRTUALIZE_CASE=100,t.QUICK_SEARCH_TIMEOUT=2e3,t.DEFAULT_VIRTUALIZATION_THRESHOLD=50,t.SelectQa={LIST:"select-list",POPUP:"select-popup",SHEET:"select-sheet"}},92914:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useQuickSearch=void 0;var i=n(26171);Object.defineProperty(t,"useQuickSearch",{enumerable:!0,get:function(){return i.useQuickSearch}})},26171:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useQuickSearch=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(76157),a=n(43769);t.useQuickSearch=function(e){var t=e.onChange,n=e.open,s=e.disabled,u=r.default.useState(""),l=i(u,2),c=l[0],d=l[1],h=r.default.useState(),f=i(h,2),p=f[0],v=f[1],g=r.default.useCallback((function(e){if(clearTimeout(p),e){var t=window.setTimeout((function(){return d("")}),a.QUICK_SEARCH_TIMEOUT);v(t)}}),[p]),m=r.default.useCallback((function(e){e.stopPropagation();var t=(0,o.getNextQuickSearch)(e.key,c);c!==t&&(g(t),d(t))}),[g,c]);r.default.useEffect((function(){return n&&!s?document.addEventListener("keydown",m):n||s||d(""),function(){n&&!s&&document.removeEventListener("keydown",m)}}),[m,n,s]),r.default.useEffect((function(){return n||clearTimeout(p),function(){return clearTimeout(p)}}),[n,p]),r.default.useEffect((function(){t(c)}),[t,c])}},33393:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelectQa=void 0;var i=n(15791);(0,i.__exportStar)(n(49339),t),(0,i.__exportStar)(n(47157),t);var r=n(43769);Object.defineProperty(t,"SelectQa",{enumerable:!0,get:function(){return r.SelectQa}})},26563:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(73338),t),(0,i.__exportStar)(n(91785),t)},73338:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reducer=t.initialState=void 0,t.initialState={filter:""};t.reducer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.initialState,n=arguments.length>1?arguments[1]:void 0;if("SET_FILTER"===n.type){var i=n.payload.filter;return Object.assign(Object.assign({},e),{filter:i})}return e}},91785:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},67249:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OptionGroup=t.Option=void 0;t.Option=function(e){return null};t.OptionGroup=function(e){return null}},47157:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},76157:function(e,t,n){"use strict";var i=n(319).default;Object.defineProperty(t,"__esModule",{value:!0}),t.mapToButtonView=t.getFilteredFlattenOptions=t.activateFirstClickableItem=t.getActiveItem=t.getListItems=t.findItemIndexByQuickSearch=t.getNextQuickSearch=t.getOptionsFromChildren=t.getSelectedOptionsContent=t.getOptionsHeight=t.getPopupItemHeight=t.getFlattenOptions=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(61065),a=n(43769);t.getFlattenOptions=function(e){return e.reduce((function(e,t){return"label"in t?(e.push({label:t.label,disabled:!0}),e.push.apply(e,i(t.options||[]))):e.push(t),e}),[])};t.getPopupItemHeight=function(e){var t=e.getOptionHeight,n=e.size,i=e.option,r=e.index,o=e.mobile?a.MOBILE_ITEM_HEIGHT:a.SIZE_TO_ITEM_HEIGHT[n];if("label"in i){var s=0===r?0:a.GROUP_ITEM_MARGIN_TOP;return(o=""===i.label?0:o)+s}return t?t(i):o};t.getOptionsHeight=function(e){var n=e.getOptionHeight,i=e.size,r=e.options,o=e.mobile;return r.reduce((function(e,r,a){return e+(0,t.getPopupItemHeight)({getOptionHeight:n,size:i,option:r,index:a,mobile:o})}),0)};var s=function(e){return"string"===typeof e.content?e.content:"string"===typeof e.children?e.children:e.text?e.text:e.value};t.getSelectedOptionsContent=function(e,t,n){if(0===t.length)return null;var i=e.reduce((function(e,n){return"label"in n||t.includes(n.value)&&e.push(n),e}),[]);return n?i.map((function(e,t){return r.default.createElement(r.default.Fragment,{key:e.value},n(e,t))})):i.map((function(e){return s(e)})).join(", ")};t.getOptionsFromChildren=function(e){return function(e){return r.default.Children.toArray(e)}(e).reduce((function(e,t){var n=t.props;if("label"in n){var i=n.options||function(e){return r.default.Children.toArray(e).reduce((function(e,t){var n=t.props;return"value"in n&&e.push(n),e}),[])}(n.children);e.push({options:i,label:n.label})}return"value"in n&&e.push(Object.assign({},n)),e}),[])};t.getNextQuickSearch=function(e,t){var n=1===e.length,i="";return e===o.KeyCode.BACKSPACE&&t.length?i=t.slice(0,t.length-1):n&&(i=(t+e).trim()),i};t.findItemIndexByQuickSearch=function(e,t){return t?t.findIndex((function(t){if("label"in t)return!1;if(t.disabled)return!1;var n,i=s(t);return(n=e,new RegExp(n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"i")).test(i)})):-1};t.getListItems=function(e){var t;return(null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.getItems())||[]};t.getActiveItem=function(e){var n,i=(0,t.getListItems)(e),r=null===(n=null===e||void 0===e?void 0:e.current)||void 0===n?void 0:n.getActiveItem();return"number"===typeof r?i[r]:void 0};t.activateFirstClickableItem=function(e){var n,i=(0,t.getListItems)(e),r=i[0]&&"label"in i[0];null===(n=null===e||void 0===e?void 0:e.current)||void 0===n||n.activateItem(r?1:0,!1)};var u=function(e){return Boolean(e&&"label"in e)};t.getFilteredFlattenOptions=function(e){var t=e.options,n=e.filter,i=e.filterOption,r=t.filter((function(e){return!!u(e)||(i?i(e,n):function(e,t){var n=s(e).toLocaleLowerCase(),i=t.toLocaleLowerCase();return Boolean(n.match(i))}(e,n))}));return r.reduce((function(e,t,n){var i=u(t),o=u(e[n-1]),a=n===r.length-1;return i&&o&&e.pop(),(!i||i&&!a)&&e.push(t),e}),[])};t.mapToButtonView=function(e){return"clear"===e?"flat":"outlined"}},91942:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.ShareList=void 0;var s=n(15791),u=(0,s.__importDefault)(n(4519)),l=n(90),c=n(65062),d=n(96225),h=n(5698),f=n(40923),p=n(77700),v=n(80495),g=(0,s.__importDefault)(n(118)),m=(0,l.block)("share-list"),_=(0,v.isOfType)(c.ShareListItem),y=function(e){o(n,e);var t=a(n);function n(){var e;return i(this,n),(e=t.apply(this,arguments)).state={copied:!1},e.copyLink=null,e.copyLinkRef=function(t){e.copyLink=t},e}return r(n,[{key:"componentDidMount",value:function(){this.props.withCopyLink&&this.copyLink&&(this.copyLink.style.width="".concat(this.copyLink.scrollWidth,"px"))}},{key:"render",value:function(){var e=this.props,t=e.shareOptions,n=e.withCopyLink,i=e.className,r=e.direction,o=e.children,a=Array.isArray(t)&&t.length>0,s=u.default.Children.toArray(o).filter((function(e){return _(e)}));return u.default.createElement("div",{className:m({layout:r},i)},u.default.createElement("div",{className:m("options-container")},a&&this.renderShareOptionsLinks(),Boolean(null===s||void 0===s?void 0:s.length)&&s),a&&n&&u.default.createElement("div",{className:m("separator")}),n&&this.renderCopyLink())}},{key:"renderShareOptionsLinks",value:function(){var e=this.props,t=e.url,n=e.title,i=e.text,r=e.shareOptions,o=e.direction;return u.default.createElement("div",{className:m("option")},r.map((function(e){return u.default.createElement(c.ShareListItem,{key:e,type:e,url:t,title:n,text:i,className:m("link"),direction:o})})))}},{key:"renderCopyLink",value:function(){var e=this,t=this.props,n=t.url,i=t.copyIcon,r=t.copyTitle,o=t.renderCopy,a=this.state.copied,s=r||(a?(0,g.default)("label_copy-link-copied"):(0,g.default)("label_copy-link"));return u.default.createElement("div",{className:m("copy-link")},o?o({url:n,title:s,icon:i||f.Link}):u.default.createElement(p.CopyToClipboard,{text:this.props.url,timeout:1500},(function(t){return u.default.createElement(h.Button,{ref:e.copyLinkRef,view:"flat-secondary",size:"l",disabled:t===p.CopyToClipboardStatus.Success,width:"max"},u.default.createElement(d.Icon,{data:i||f.Link,size:16}),s)})))}}]),n}(u.default.PureComponent);t.ShareList=y,y.defaultProps={shareOptions:[],withCopyLink:!1},y.Item=c.ShareListItem},65062:function(e,t,n){"use strict";var i=n(63038).default,r=n(34575).default,o=n(93913).default,a=n(2205).default,s=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.ShareListItem=void 0;var u=n(15791),l=(0,u.__importDefault)(n(4519)),c=n(90),d=n(5698),h=n(96225),f=n(31870),p=(0,u.__importStar)(n(3749)),v=(0,u.__importDefault)(n(118)),g=(0,c.block)("share-list-item"),m=function(e){a(n,e);var t=s(n);function n(){return r(this,n),t.apply(this,arguments)}return o(n,[{key:"render",value:function(){var e,t=this.props,n=t.type,i=t.direction,r=t.className,o=t.label,a=t.getShareLink,s=(0,u.__rest)(t,["type","direction","className","label","getShareLink"]),c=this.props.icon||n&&p[n],m=null!==(e=null===a||void 0===a?void 0:a(s))&&void 0!==e?e:n&&this.getShareLink(n),_=null===n||void 0===n?void 0:n.toLowerCase(),y=o||n&&f.ShareOptions[n];return m?"column"===i?l.default.createElement(d.Button,{view:"flat",size:"l",href:m,target:"_blank",width:"max",className:g(null,r),extraProps:{"aria-label":(0,v.default)("label_share",{name:y})}},c&&l.default.createElement(h.Icon,{data:c,size:16,className:g("icon",{type:_})}),y&&l.default.createElement("span",{className:g(null,r)},y)):l.default.createElement(d.Button,{view:"flat",size:"l",href:m,target:"_blank",className:g(null,r),extraProps:{"aria-label":(0,v.default)("label_share",{name:y})}},c&&l.default.createElement(h.Icon,{data:c,size:24,className:g("icon",{type:_})})):null}},{key:"getShareLink",value:function(e){var t=this.props,n=t.url,i=t.title,r=t.text;switch(e){case f.ShareOptions.Telegram:return this.getShareUrlWithParams("https://t.me/share/url",{url:n,text:i});case f.ShareOptions.Facebook:return this.getShareUrlWithParams("https://facebook.com/sharer.php",{u:n});case f.ShareOptions.Twitter:return this.getShareUrlWithParams("https://twitter.com/intent/tweet",{url:n,text:i});case f.ShareOptions.VK:return this.getShareUrlWithParams("https://vk.com/share.php",{url:n,title:i,comment:r});case f.ShareOptions.LinkedIn:return this.getShareUrlWithParams("https://www.linkedin.com/sharing/share-offsite/",{url:n});case f.ShareOptions.Mail:return this.getShareUrlWithParams("mailto:",{subject:i,body:r?"".concat(r,"\n").concat(n):n});default:return console.error("Unknown share type: ".concat(e)),null}}},{key:"getShareUrlWithParams",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new URL(e);return Object.entries(t).forEach((function(e){var t=i(e,2),r=t[0],o=t[1];o&&n.searchParams.set(r,o)})),n.toString()}}]),n}(l.default.PureComponent);t.ShareListItem=m},68314:function(e,t,n){"use strict";var i=n(87757),r=n(48926).default,o=n(34575).default,a=n(93913).default,s=n(2205).default,u=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.SharePopover=t.sharePopoverDefaultProps=void 0;var l=(0,n(15791).__importDefault)(n(4519)),c=n(90),d=n(31870),h=n(91942),f=n(51700),p=n(96225),v=n(40923),g=(0,c.block)("share-popover");t.sharePopoverDefaultProps={iconSize:16,shareOptions:h.ShareList.defaultProps.shareOptions,withCopyLink:!0,useWebShareApi:!1,placement:["bottom-end"],openByHover:!0,autoclosable:!0,closeDelay:300,direction:d.LayoutDirection.Row};var m=function(e){s(n,e);var t=u(n);function n(){var e;return o(this,n),(e=t.apply(this,arguments)).handleClick=function(){var t=r(i.mark((function t(n){var r,o,a,s,u,l,c;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.props,o=r.url,a=r.title,s=r.text,u=r.useWebShareApi,l=r.handleMetrika,c=r.onClick,l&&l(),c&&c(n),!u||!navigator||"function"!==typeof navigator.share){t.next=8;break}return t.next=6,navigator.share({url:o,title:a,text:s});case 6:return n.preventDefault(),t.abrupt("return",!1);case 8:return t.abrupt("return",!0);case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),e}return a(n,[{key:"render",value:function(){var e=this.props,t=e.url,n=e.title,i=e.text,r=e.shareOptions,o=e.withCopyLink,a=e.useWebShareApi,s=e.placement,u=e.openByHover,c=e.autoclosable,d=e.closeDelay,m=e.iconSize,_=e.iconClass,y=e.tooltipClassName,b=e.switcherClassName,w=e.className,C=e.direction,k=e.customIcon,S=e.buttonTitle,x=e.copyTitle,L=e.copyIcon,E=e.renderCopy,N=e.children,D=l.default.createElement(h.ShareList,{url:t,title:n,text:i,shareOptions:r,withCopyLink:o,direction:C,copyTitle:x,copyIcon:L,renderCopy:E},N);return l.default.createElement(f.Popover,{placement:s,hasArrow:!1,openOnHover:u&&!a,autoclosable:c,delayClosing:d,content:D,className:g(null,w),tooltipClassName:g("tooltip",y),onClick:this.handleClick},l.default.createElement("div",{className:g("container",b)},l.default.createElement("div",{className:g("icon-container")},l.default.createElement(p.Icon,{data:k||v.Share,size:m,className:g("icon",_)})),Boolean(S)&&l.default.createElement("div",{className:g("title")},S)))}}]),n}(l.default.PureComponent);t.SharePopover=m,m.defaultProps=t.sharePopoverDefaultProps},31870:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LayoutDirection=t.ShareOptions=void 0,function(e){e.Telegram="Telegram",e.Facebook="Facebook",e.Twitter="Twitter",e.VK="VK",e.LinkedIn="LinkedIn",e.Mail="Mail"}(t.ShareOptions||(t.ShareOptions={})),function(e){e.Row="row",e.Column="column"}(t.LayoutDirection||(t.LayoutDirection={}))},118:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791),r=n(55138),o=(0,i.__importDefault)(n(58731)),a=(0,i.__importDefault)(n(57108));t.default=(0,r.registerKeyset)({en:o.default,ru:a.default},"yc-share-tooltip")},88402:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SharePopover=t.ShareList=t.ShareLayoutDirection=t.ShareOptions=void 0;var i=n(31870);Object.defineProperty(t,"ShareOptions",{enumerable:!0,get:function(){return i.ShareOptions}}),Object.defineProperty(t,"ShareLayoutDirection",{enumerable:!0,get:function(){return i.LayoutDirection}});var r=n(91942);Object.defineProperty(t,"ShareList",{enumerable:!0,get:function(){return r.ShareList}});var o=n(68314);Object.defineProperty(t,"SharePopover",{enumerable:!0,get:function(){return o.SharePopover}})},14467:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Sheet=void 0;var s=n(15791),u=(0,s.__importDefault)(n(4519)),l=(0,s.__importDefault)(n(84453)),c=n(36239),d=n(43865),h=function(e){o(n,e);var t=a(n);function n(){var e;return i(this,n),(e=t.apply(this,arguments)).bodyScrollLocked=!1,e.state={visible:!1},e.showSheet=function(){e.lockBodyScroll(),e.setState({visible:!0})},e.hideSheet=function(){e.restoreBodyScroll(),e.props.onClose&&e.props.onClose(),e.setState({visible:!1})},e}return r(n,[{key:"componentDidMount",value:function(){this.props.visible&&this.showSheet()}},{key:"componentDidUpdate",value:function(e){!e.visible&&this.props.visible&&this.showSheet()}},{key:"componentWillUnmount",value:function(){this.restoreBodyScroll()}},{key:"render",value:function(){return this.state.visible?l.default.createPortal(this.renderSheet(),document.body):null}},{key:"restoreBodyScroll",value:function(){this.bodyScrollLocked&&(n.restoreBodyScroll(),this.bodyScrollLocked=!1)}},{key:"lockBodyScroll",value:function(){n.lockBodyScroll(),this.bodyScrollLocked=!0}},{key:"renderSheet",value:function(){var e=this.props,t=e.id,n=e.children,i=e.className,r=e.contentClassName,o=e.swipeAreaClassName,a=e.title,s=e.visible,l=e.allowHideOnContentScroll,h=e.hideTopBar,f=e.qa;return u.default.createElement("div",{"data-qa":f,className:(0,d.sheetBlock)(null,i)},u.default.createElement(c.SheetContentContainer,{id:t,content:n,contentClassName:r,swipeAreaClassName:o,title:a,visible:s,allowHideOnContentScroll:l,hideTopBar:h,hideSheet:this.hideSheet}))}}],[{key:"lockBodyScroll",value:function(){1===++n.bodyScrollLocksCount&&(n.bodyInitialOverflow=document.body.style.overflow,document.body.style.overflow="hidden")}},{key:"restoreBodyScroll",value:function(){0!==n.bodyScrollLocksCount&&0===--n.bodyScrollLocksCount&&(document.body.style.overflow=n.bodyInitialOverflow||"",n.bodyInitialOverflow=void 0)}}]),n}(u.default.Component);t.Sheet=h,h.bodyScrollLocksCount=0,h.bodyInitialOverflow=void 0},36239:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.SheetContentContainer=void 0;var s=n(15791),u=(0,s.__importDefault)(n(4519)),l=n(31859),c=n(34821),d=n(43865),h="0.3s",f=50,p=.08,v=-.02,g=.9,m=[],_=function(e){o(n,e);var t=a(n);function n(){var e;return i(this,n),(e=t.apply(this,arguments)).veilRef=u.default.createRef(),e.sheetRef=u.default.createRef(),e.sheetTopRef=u.default.createRef(),e.sheetContentRef=u.default.createRef(),e.sheetInnerContentRef=u.default.createRef(),e.sheetTitleRef=u.default.createRef(),e.velocityTracker=new c.VelocityTracker,e.observer=null,e.transitionDuration=h,e.state={startScrollTop:0,startY:0,deltaY:0,prevInnerContentHeight:0,swipeAreaTouched:!1,contentTouched:!1,veilTouched:!1,isAnimating:!1,inWindowResizeScope:!1},e.setStyles=function(t){var n=t.status,i=t.deltaHeight,r=void 0===i?0:i;if(e.sheetRef.current&&e.veilRef.current){var o=e.sheetHeight-r,a="showing"===n?"translate3d(0, -".concat(o,"px, 0)"):"translate3d(0, 0, 0)",s=0;"showing"===n&&(s=0===r?1:o/e.sheetHeight),e.veilRef.current.style.opacity=String(s),e.sheetRef.current.style.transform=a}},e.show=function(){e.setState({isAnimating:!0},(function(){e.setStyles({status:"showing"}),e.setHash()}))},e.hide=function(){e.setState({isAnimating:!0},(function(){e.setStyles({status:"hiding"}),e.removeHash()}))},e.onSwipeAreaTouchStart=function(t){e.velocityTracker.clear(),e.setState({startY:t.nativeEvent.touches[0].clientY,swipeAreaTouched:!0})},e.onContentTouchStart=function(t){e.props.allowHideOnContentScroll&&!e.state.swipeAreaTouched&&(e.velocityTracker.clear(),e.setState({startY:t.nativeEvent.touches[0].clientY,startScrollTop:e.sheetScrollTop,contentTouched:!0}))},e.onSwipeAriaTouchMove=function(t){var n=t.nativeEvent.touches[0].clientY-e.state.startY;e.velocityTracker.addMovement({x:t.nativeEvent.touches[0].clientX,y:t.nativeEvent.touches[0].clientY}),e.setState({deltaY:n}),n<=0||e.setStyles({status:"showing",deltaHeight:n})},e.onContentTouchMove=function(t){if(e.props.allowHideOnContentScroll){var n=e.state,i=n.startScrollTop;if(!(n.swipeAreaTouched||e.sheetScrollTop>0||i>0&&i!==e.sheetScrollTop)){var r=t.nativeEvent.touches[0].clientY-e.state.startY;e.velocityTracker.addMovement({x:t.nativeEvent.touches[0].clientX,y:t.nativeEvent.touches[0].clientY}),e.setState({deltaY:r}),r<=0||e.setStyles({status:"showing",deltaHeight:r})}}},e.onTouchEndAction=function(t){var n=e.velocityTracker.getYAcceleration();e.sheetHeight<=t?e.props.hideSheet():t>f&&n<=p&&n>=v||n>p?e.hide():t>0&&e.show()},e.onSwipeAriaTouchEnd=function(){var t=e.state.deltaY;e.onTouchEndAction(t),e.setState({startY:0,deltaY:0,swipeAreaTouched:!1})},e.onContentTouchEnd=function(){var t=e.state,n=t.deltaY,i=t.swipeAreaTouched;e.props.allowHideOnContentScroll&&!i&&(e.onTouchEndAction(n),e.setState({startY:0,deltaY:0,contentTouched:!1}))},e.onVeilClick=function(){e.setState({veilTouched:!0}),e.hide()},e.onVeilTransitionEnd=function(){e.setState({isAnimating:!1}),"0"===e.veilOpacity&&e.props.hideSheet()},e.onContentTransitionEnd=function(t){"height"===t.propertyName&&e.sheetContentRef.current&&(e.sheetContentRef.current.style.transition="none")},e.onResizeWindow=function(){e.setState({inWindowResizeScope:!0}),e.onResize(),setTimeout((function(){return e.setState({inWindowResizeScope:!1})}),0)},e.onResize=function(){var t=e.state.prevInnerContentHeight!==e.innerContentHeight;if(e.sheetRef.current&&e.sheetContentRef.current&&t){e.sheetContentRef.current.style.transition=e.state.prevInnerContentHeight>e.innerContentHeight?"height 0s ease ".concat(e.transitionDuration):"none";var n=e.sheetTitleHeight+e.innerContentHeight,i=window.innerHeight,r=n>=i?i*g:n;e.sheetContentRef.current.style.height="".concat(r,"px"),e.sheetRef.current.style.transform="translate3d(0, -".concat(r+e.sheetTopHeight,"px, 0)"),e.setState({prevInnerContentHeight:n})}},e}return r(n,[{key:"componentDidMount",value:function(){this.addListeners(),this.show(),this.setInitialStyles(),this.setState({prevInnerContentHeight:this.innerContentHeight})}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.visible,i=t.location;!e.visible&&n&&this.show(),(e.visible&&!n||this.shouldClose(e))&&this.hide(),e.location.pathname!==i.pathname&&(m=[])}},{key:"componentWillUnmount",value:function(){this.removeListeners()}},{key:"render",value:function(){var e=this.props,t=e.content,n=e.contentClassName,i=e.swipeAreaClassName,r=e.hideTopBar,o=e.title,a=this.state,s=a.deltaY,l=a.swipeAreaTouched,c=a.contentTouched,h=a.veilTouched,f=a.isAnimating,p={"with-transition":!s||h},v={"with-transition":!a.inWindowResizeScope&&p["with-transition"]},g={"without-scroll":s>0&&c||l};return u.default.createElement(u.default.Fragment,null,u.default.createElement("div",{ref:this.veilRef,className:(0,d.sheetBlock)("veil",p),onClick:f?void 0:this.onVeilClick,onTransitionEnd:this.onVeilTransitionEnd}),u.default.createElement("div",{ref:this.sheetRef,className:(0,d.sheetBlock)("sheet",v)},!r&&u.default.createElement("div",{ref:this.sheetTopRef,className:(0,d.sheetBlock)("sheet-top")},u.default.createElement("div",{className:(0,d.sheetBlock)("sheet-top-resizer")})),u.default.createElement("div",{className:(0,d.sheetBlock)("sheet-swipe-area",i),onTouchStart:this.onSwipeAreaTouchStart,onTouchMove:this.onSwipeAriaTouchMove,onTouchEnd:this.onSwipeAriaTouchEnd}),u.default.createElement("div",{ref:this.sheetContentRef,className:(0,d.sheetBlock)("sheet-content",g,n),onTouchStart:this.onContentTouchStart,onTouchMove:this.onContentTouchMove,onTouchEnd:this.onContentTouchEnd,onTransitionEnd:this.onContentTransitionEnd},o&&u.default.createElement("div",{ref:this.sheetTitleRef,className:(0,d.sheetBlock)("sheet-content-title")},o),u.default.createElement("div",{ref:this.sheetInnerContentRef},t))))}},{key:"veilOpacity",get:function(){var e;return(null===(e=this.veilRef.current)||void 0===e?void 0:e.style.opacity)||0}},{key:"sheetTopHeight",get:function(){var e;return(null===(e=this.sheetTopRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"sheetHeight",get:function(){var e;return(null===(e=this.sheetRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"innerContentHeight",get:function(){var e;return(null===(e=this.sheetInnerContentRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"sheetTitleHeight",get:function(){var e;return(null===(e=this.sheetTitleRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"sheetScrollTop",get:function(){var e;return(null===(e=this.sheetContentRef.current)||void 0===e?void 0:e.scrollTop)||0}},{key:"setInitialStyles",value:function(){if(this.sheetContentRef.current&&this.sheetInnerContentRef.current){this.transitionDuration=getComputedStyle(this.sheetContentRef.current).getPropertyValue("--yc-sheet-transition-duration");var e=this.sheetHeight-this.sheetTopHeight;this.sheetContentRef.current.style.height="".concat(e,"px")}}},{key:"addListeners",value:function(){if(window.addEventListener("resize",this.onResizeWindow),this.sheetRef.current){this.observer=new MutationObserver(this.onResize),this.observer.observe(this.sheetRef.current,{subtree:!0,childList:!0})}}},{key:"removeListeners",value:function(){window.removeEventListener("resize",this.onResizeWindow),this.observer&&this.observer.disconnect()}},{key:"setHash",value:function(){var e=this.props,t=e.id,n=e.platform,i=e.location,r=e.history;if(n!==l.Platform.BROWSER){var o=Object.assign(Object.assign({},i),{hash:t});switch(n){case l.Platform.IOS:i.hash&&m.push(i.hash),r.replace(o);break;case l.Platform.ANDROID:r.push(o)}}}},{key:"removeHash",value:function(){var e,t=this.props,n=t.id,i=t.platform,r=t.location,o=t.history;if(i!==l.Platform.BROWSER&&r.hash==="#".concat(n))switch(i){case l.Platform.IOS:o.replace(Object.assign(Object.assign({},r),{hash:null!==(e=m.pop())&&void 0!==e?e:""}));break;case l.Platform.ANDROID:o.goBack()}}},{key:"shouldClose",value:function(e){var t=this.props,n=t.id,i=t.platform,r=t.location,o=t.history;return i!==l.Platform.BROWSER&&"POP"===o.action&&e.location.hash!==r.hash&&r.hash!=="#".concat(n)}}]),n}(u.default.Component);_.defaultProps={id:"sheet",allowHideOnContentScroll:!0},t.SheetContentContainer=(0,l.withMobile)(function(e){var t=function(t){var n=t.useHistory,i=t.useLocation,r=(0,s.__rest)(t,["useHistory","useLocation"]);return u.default.createElement(e,Object.assign({},r,{history:n(),location:i()}))},n=e.displayName||e.name||"Component";return t.displayName="withRouterWrapper(".concat(n,")"),t}(_))},43865:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sheetBlock=void 0;var i=n(90);t.sheetBlock=(0,i.block)("sheet")},21618:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(14467),t)},34821:function(e,t,n){"use strict";var i=n(93913).default,r=n(34575).default;Object.defineProperty(t,"__esModule",{value:!0}),t.VelocityTracker=void 0;var o=i((function e(t,n){r(this,e),this.x=t,this.y=n,this.timeStamp=Date.now()})),a=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;r(this,e),this.points=[],this.pointsLen=t,this.clear()}return i(e,[{key:"clear",value:function(){this.points=new Array(this.pointsLen)}},{key:"addMovement",value:function(e){var t=e.x,n=e.y;this.points.pop(),this.points.unshift(new o(t,n))}},{key:"getYAcceleration",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=this.points[0],n=this.points[e];return t&&n?(t.y-n.y)/Math.pow(t.timeStamp-n.timeStamp,2):0}}]),e}();t.VelocityTracker=a},92656:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Skeleton=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("skeleton");t.Skeleton=function(e){var t=e.className,n=e.style;return i.default.createElement("div",{className:r(null,t),style:n})}},6374:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(92656),t)},75334:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Spin=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("spin");t.Spin=i.default.forwardRef((function(e,t){var n=e.size,o=void 0===n?"m":n,a=e.style,s=e.className,u=e.qa;return i.default.createElement("div",{ref:t,style:a,className:r({size:o},s),"data-qa":u},i.default.createElement("div",{className:r("inner")}))}))},28121:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(75334),t)},14041:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StoreBadge=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(24782),a=(0,r.block)("store-badge");t.StoreBadge=function(e){var t=e.platform,n=e.lang,r=void 0===n?o.Lang.En:n,s=e.className,u=e.onClick,l=e.url,c=e.alt;return l?i.default.createElement("a",{className:a(null,s),onClick:u,href:l,target:"_blank",rel:"noopener noreferrer"},i.default.createElement("img",{className:a("image",{platform:t,lang:r}),alt:c})):i.default.createElement("img",{className:a({platform:t,lang:r},s),onClick:u,alt:c})}},25074:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(14041),t)},97905:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Stories=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(56688),a=n(57946),s=(0,n(90).block)("stories");t.Stories=function(e){var t=e.open,n=e.onClose,u=e.items,l=e.onPreviousClick,c=e.onNextClick,d=e.initialStoryIndex,h=void 0===d?0:d,f=e.disableOutsideClick,p=void 0===f||f,v=e.className,g=e.action,m=r.default.useState(h),_=i(m,2),y=_[0],b=_[1],w=r.default.useCallback((function(e,t){null===n||void 0===n||n(e,t)}),[n]),C=r.default.useCallback((function(e){w(e,"closeButtonClick")}),[w]),k=r.default.useCallback((function(){b((function(e){if(e<=0)return 0;var t=e-1;return null===l||void 0===l||l(t),t}))}),[l]),S=r.default.useCallback((function(){b((function(e){if(e>=u.length-1)return u.length-1;var t=e+1;return null===c||void 0===c||c(t),t}))}),[u,c]);if(0===u.length)return null;if(void 0===u[y]){var x=void 0===u[h]?0:h;return b(x),null}var L=0===y&&a.IndexType.Start||y===u.length-1&&a.IndexType.End||a.IndexType.InProccess;return r.default.createElement(o.Modal,{open:t,onClose:w,disableOutsideClick:p,contentClassName:s("modal-content",v)},r.default.createElement(a.StoriesLayout,{items:u,storyIndex:y,indexType:L,handleButtonClose:C,handleGotoNext:S,handleGotoPrevious:k,action:g}))}},65454:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ImageView=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("stories-image-view");t.ImageView=function(e){var t=e.media;return"image"===(t.type||"image")?i.default.createElement("img",{className:r(),src:t.url,alt:""}):null}},89929:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MediaRenderer=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(95835);t.MediaRenderer=function(e){var t=e.media;return"image"===(t.type||"image")?i.default.createElement(r.ImageView,{media:t}):i.default.createElement(r.VideoView,{media:t})}},57946:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StoriesLayout=t.IndexType=void 0;var i,r=n(15791),o=(0,r.__importDefault)(n(4519)),a=n(5698),s=n(80282),u=n(43299),l=n(95835),c=(0,r.__importDefault)(n(94881)),d=(0,n(90).block)("stories-layout");!function(e){e[e.Start=1]="Start",e[e.End=2]="End",e[e.InProccess=3]="InProccess"}(i=t.IndexType||(t.IndexType={}));t.StoriesLayout=function(e){var t=e.items[e.storyIndex],n=e.items.length>1;return o.default.createElement("div",{className:d("wrap-outer")},o.default.createElement("div",{className:d("wrap-inner")},o.default.createElement("div",{className:d("container")},o.default.createElement("div",{className:d("left-pane")},n&&o.default.createElement("div",{className:d("counter")},(0,c.default)("label_counter",{current:e.storyIndex+1,total:e.items.length})),o.default.createElement("div",{className:d("text-block")},t&&o.default.createElement(o.default.Fragment,null,t.title&&o.default.createElement("div",{className:d("text-header")},t.title),t.description&&o.default.createElement("div",{className:d("text-content")},t.description),t.url&&o.default.createElement("div",{className:d("story-link-block")},o.default.createElement(u.Link,{href:t.url,target:"_blank"},(0,c.default)("label_more"))))),o.default.createElement("div",{className:d("controls-block")},n&&i.Start!==e.indexType&&o.default.createElement(a.Button,{onClick:e.handleGotoPrevious,view:"outlined",size:"l",width:"max"},(0,c.default)("label_back")),i.InProccess!==e.indexType&&o.default.createElement(a.Button,{onClick:e.handleButtonClose,size:"l",width:"max"},(0,c.default)("label_close")),n&&i.End!==e.indexType&&o.default.createElement(a.Button,{onClick:e.handleGotoNext,view:"action",size:"l",width:"max"},(0,c.default)("label_next")),(!n||i.End===e.indexType)&&e.action&&o.default.createElement(a.Button,Object.assign({size:"l",width:"max"},e.action)))),o.default.createElement("div",{className:d("right-pane")},o.default.createElement(s.ButtonClose,{onClose:e.handleButtonClose}),(null===t||void 0===t?void 0:t.media)&&o.default.createElement("div",{className:d("media-block")},o.default.createElement(l.MediaRenderer,{media:t.media}))))))}},85984:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VideoView=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("stories-video-view");t.VideoView=function(e){var t=e.media;return"video"===t.type?i.default.createElement("video",{className:r(),src:t.url,controls:!1,playsInline:!0,muted:!0,autoPlay:!0,loop:!0,"webkit-playsinline":"true",poster:t.posterUrl}):null}},95835:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(65454),t),(0,i.__exportStar)(n(85984),t),(0,i.__exportStar)(n(89929),t)},94881:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791),r=n(55138),o=(0,i.__importDefault)(n(69165)),a=(0,i.__importDefault)(n(24734));t.default=(0,r.registerKeyset)({en:o.default,ru:a.default},"Stories")},16844:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(97905),t),(0,i.__exportStar)(n(160),t)},160:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},19212:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.StoriesGroup=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(56688),a=n(57946),s=n(88232),u=n(90),l=(0,u.block)("stories-group");t.StoriesGroup=function(e){var t=e.open,n=e.groups,u=e.onItemSelect,c=e.disableOutsideClick,d=void 0===c||c,h=e.initialStoryIndex,f=void 0===h?[0,0]:h,p=e.maxSliderItemsCount,v=void 0===p?12:p,g=e.onClose,m=r.default.useState(f),_=i(m,2),y=i(_[0],2),b=y[0],w=y[1],C=_[1],k=r.default.useCallback((function(e,t){null===g||void 0===g||g(e,t)}),[g]),S=r.default.useCallback((function(e){k(e,"closeButtonClick")}),[k]),x=r.default.useCallback((function(){C((function(e){var t=i(e,2),r=t[0],o=t[1];if(o>0){var a=[r,o-1];return null===u||void 0===u||u(a,!1),a}for(var s=r-1;s>=0;--s)if(0!==n[s].items.length){var l=[s,n[s].items.length-1];return null===u||void 0===u||u(l,!1),l}return e}))}),[n,u]),L=r.default.useCallback((function(){C((function(e){var t,r=i(e,2),o=r[0],a=r[1];if(a<(null===(t=n[o])||void 0===t?void 0:t.items.length)-1){var s=[o,a+1];return null===u||void 0===u||u(s,!1),s}for(var l=o+1;l<n.length;++l)if(0!==n[l].items.length){var c=[l,0];return null===u||void 0===u||u(c,!1),c}return e}))}),[n,u]),E=r.default.useCallback((function(e){C([e,0]),null===u||void 0===u||u([e,0],!0)}),[u]);if(0===n.length)return null;var N=n[b],D=(null===N||void 0===N?void 0:N.items)||[];if(void 0===N||void 0===D[w]){if(n[f[0]]&&n[f[0]].items[f[1]])C(f);else for(var M=0;M<n.length;++M)if(n[M]&&0!==n[M].items.length){C([M,0]);break}return null}var T=0===b&&0===w&&a.IndexType.Start||b===n.length-1&&w===D.length-1&&a.IndexType.End||a.IndexType.InProccess;return r.default.createElement(o.Modal,{open:t,onClose:k,disableOutsideClick:d,contentClassName:l("modal-content")},r.default.createElement(s.StoriesPreview,{maxSliderItemsCount:v>0?v:1,groups:n,groupIndex:b,onGroupSelect:E,onClose:d?void 0:k}),r.default.createElement(a.StoriesLayout,{storyIndex:w,items:D,indexType:T,handleButtonClose:S,handleGotoNext:L,handleGotoPrevious:x}))}},11101:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.StoriesPreview=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(15658),a=n(95835),s=n(52162),u=n(5698),l=n(90),c=(0,l.block)("stories-group-preview"),d=function(e){var t=e.active,n=e.disabled,i=e.groupIndex,o=e.media,s=e.onSelectGroup,u=r.default.useCallback((function(e){e.preventDefault(),e.stopPropagation(),null===s||void 0===s||s(i)}),[s,i]);return r.default.createElement("div",{className:c("stories-preview-item",{active:t,disabled:n}),onClick:u},o&&r.default.createElement(a.MediaRenderer,{media:o}))},h=function(e){var t=e.groupIndex,n=e.groups,i=e.onGroupSelect,o=e.offset,a=void 0===o?0:o;return r.default.createElement(r.default.Fragment,null,n.map((function(e,n){var o,s=e.thumbnailMedia,u=e.items,l=s||(null===(o=u[0])||void 0===o?void 0:o.media),c=a+n;return r.default.createElement(d,{key:n,groupIndex:c,active:c===t,disabled:0===u.length,media:l,onSelectGroup:i})})))},f=function(e){var t=e.groupIndex,n=e.groups,a=e.onGroupSelect,l=e.maxSliderItemsCount,d=r.default.useState(0),f=i(d,2),p=f[0],v=f[1];r.default.useEffect((function(){var e=l*Math.floor(t/l);v(e)}),[t,l]);var g=r.default.useCallback((function(e){e.preventDefault(),e.stopPropagation(),v((function(e){return e-l}))}),[l]),m=r.default.useCallback((function(e){e.preventDefault(),e.stopPropagation(),v((function(e){return e+l}))}),[l]);return r.default.createElement(r.default.Fragment,null,n.length>l&&r.default.createElement("div",{className:c("slider-button-wrapper")},0!==p&&r.default.createElement(u.Button,{view:"raised",pin:"circle-circle",onClick:g},r.default.createElement(o.Icon,{className:c("Icon",{left:!0}),data:s.Chevron}))),r.default.createElement("div",{className:c("slider-preview-list-wrapper"),style:{width:"".concat(40*l+8*(l-1),"px")}},r.default.createElement(h,{groupIndex:t,groups:n.slice(p,p+l),onGroupSelect:a,offset:p})),n.length>l&&r.default.createElement("div",{className:c("slider-button-wrapper")},p<n.length-l&&r.default.createElement(u.Button,{view:"raised",pin:"circle-circle",onClick:m},r.default.createElement(o.Icon,{className:c("Icon",{right:!0}),data:s.Chevron}))))};t.StoriesPreview=function(e){var t=e.groups,n=e.groupIndex,i=e.onGroupSelect,o=e.maxSliderItemsCount,a=e.onClose,s=r.default.useCallback((function(e){null===a||void 0===a||a(e,"outsideClick")}),[a]);return t.length<o?r.default.createElement("div",{className:c(),onClick:s},r.default.createElement(h,{groupIndex:n,groups:t,onGroupSelect:i})):r.default.createElement("div",{className:c(),onClick:s},r.default.createElement(f,{maxSliderItemsCount:o,groupIndex:n,groups:t,onGroupSelect:i}))}},88232:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(11101),t)},24345:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(19212),t),(0,i.__exportStar)(n(59392),t)},59392:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},77741:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Switch=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(77784),o=n(90),a=n(38212),s=(0,o.block)("switch");t.Switch=i.default.forwardRef((function(e,t){var n=e.size,o=void 0===n?"m":n,u=e.disabled,l=void 0!==u&&u,c=e.content,d=e.children,h=e.title,f=e.style,p=e.className,v=e.qa,g=(0,a.useCheckbox)(e),m=g.checked,_=g.inputProps,y=c||d,b=i.default.createElement("span",{className:s("indicator")},i.default.createElement("input",Object.assign({},_,{className:s("control")})),i.default.createElement("span",{className:s("outline")}),i.default.createElement("span",{className:s("slider")}));return i.default.createElement(r.ControlLabel,{ref:t,title:h,style:f,size:o,disabled:l,className:s({size:o,disabled:l,checked:m},p),labelClassName:s("text"),qa:v,control:b},y)}))},84117:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(77741),t)},15279:function(e,t,n){"use strict";var i=n(59713).default,r=n(34575).default,o=n(93913).default,a=n(2205).default,s=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Table=void 0;var u=n(15791),l=(0,u.__importDefault)(n(4519)),c=(0,u.__importDefault)(n(11141)),d=(0,u.__importDefault)(n(71197)),h=(0,u.__importDefault)(n(24433)),f=(0,u.__importDefault)(n(81451)),p=n(90),v=(0,u.__importDefault)(n(12848)),g=(0,p.block)("table"),m=function(e){a(n,e);var t=s(n);function n(){var e;return r(this,n),(e=t.apply(this,arguments)).state={activeScrollElement:"scrollContainer",columnsStyles:Array.from(e.props.columns,(function(){return{}})),columnHeaderRefs:Array.from(e.props.columns,(function(){return l.default.createRef()}))},e.tableRef=l.default.createRef(),e.scrollContainerRef=l.default.createRef(),e.horizontalScrollBarRef=l.default.createRef(),e.horizontalScrollBarInnerRef=l.default.createRef(),e.renderRow=function(t,r){var o=e.props,a=o.columns,s=o.isRowDisabled,u=o.onRowClick,c=o.onRowMouseEnter,d=o.onRowMouseLeave,h=o.onRowMouseDown,f=o.getRowClassNames,p=o.verticalAlign,v=o.edgePadding,m=e.state.columnsStyles,_=!!s&&s(t,r),y=Boolean(!_&&u),b=f?f(t,r):[];return l.default.createElement("tr",{key:n.getRowId(e.props,t,r),onClick:!_&&u?u.bind(null,t,r):void 0,onMouseEnter:!_&&c?c.bind(null,t,r):void 0,onMouseLeave:!_&&d?d.bind(null,t,r):void 0,onMouseDown:!_&&h?h.bind(null,t,r):void 0,className:g("row",{disabled:_,interactive:y,"vertical-align":p},b.join(" "))},a.map((function(e,o){var a=e.id,s=e.align,u=e.primary,c=e.className,d=e.sticky,h=n.getBodyCellContent(e,t,r);return l.default.createElement("td",{key:a,style:m[o],className:g("cell",i({align:s,primary:u,sticky:d},"edge-padding",v),c)},h)})))},e.handleScrollContainerMouseenter=function(){e.setState({activeScrollElement:"scrollContainer"})},e.handleScrollContainerScroll=function(){"scrollContainer"===e.state.activeScrollElement&&e.horizontalScrollBarRef.current&&e.scrollContainerRef.current&&(e.horizontalScrollBarRef.current.scrollLeft=e.scrollContainerRef.current.scrollLeft)},e.handleHorizontalScrollBarMouseenter=function(){e.setState({activeScrollElement:"scrollBar"})},e.handleHorizontalScrollBarScroll=function(){"scrollBar"===e.state.activeScrollElement&&e.horizontalScrollBarRef.current&&e.scrollContainerRef.current&&(e.scrollContainerRef.current.scrollLeft=e.horizontalScrollBarRef.current.scrollLeft)},e}return o(n,[{key:"componentDidMount",value:function(){var e=this;this.props.stickyHorizontalScroll&&(this.tableResizeObserver=new f.default((function(t){var n,i=t[0].contentRect;null===(n=e.horizontalScrollBarInnerRef.current)||void 0===n||n.style.setProperty("width","".concat(i.width,"px"))})),this.tableRef.current&&this.tableResizeObserver.observe(this.tableRef.current),this.scrollContainerRef.current&&(this.scrollContainerRef.current.addEventListener("scroll",this.handleScrollContainerScroll),this.scrollContainerRef.current.addEventListener("mouseenter",this.handleScrollContainerMouseenter)),this.horizontalScrollBarRef.current&&(this.horizontalScrollBarRef.current.addEventListener("scroll",this.handleHorizontalScrollBarScroll),this.horizontalScrollBarRef.current.addEventListener("mouseenter",this.handleHorizontalScrollBarMouseenter))),this.columnsResizeObserver=new f.default((function(t){window.requestAnimationFrame((function(){Array.isArray(t)&&t.length&&e.updateColumnStyles()}))})),this.tableRef.current&&this.columnsResizeObserver.observe(this.tableRef.current)}},{key:"componentDidUpdate",value:function(e){this.props.columns!==e.columns&&this.updateColumnStyles()}},{key:"componentWillUnmount",value:function(){this.props.stickyHorizontalScroll&&(this.tableResizeObserver&&this.tableResizeObserver.disconnect(),this.scrollContainerRef.current&&(this.scrollContainerRef.current.removeEventListener("scroll",this.handleScrollContainerScroll),this.scrollContainerRef.current.removeEventListener("mouseenter",this.handleScrollContainerMouseenter)),this.horizontalScrollBarRef.current&&(this.horizontalScrollBarRef.current.removeEventListener("scroll",this.handleHorizontalScrollBarScroll),this.horizontalScrollBarRef.current.removeEventListener("mouseenter",this.handleHorizontalScrollBarMouseenter))),this.columnsResizeObserver&&this.columnsResizeObserver.disconnect()}},{key:"render",value:function(){var e=this.props,t=e.columns,n=e.stickyHorizontalScroll,i=e.className,r=e.qa,o=t.some((function(e){return e.primary}));return l.default.createElement("div",{className:g({"with-primary":o,"with-sticky-scroll":n},i),"data-qa":r},n?l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{ref:this.scrollContainerRef,className:g("scroll-container")},this.renderTable()),this.renderHorizontalScrollBar()):this.renderTable())}},{key:"renderHead",value:function(){var e=this,t=this.props,r=t.columns,o=t.edgePadding,a=this.state.columnsStyles;return l.default.createElement("thead",{className:g("head")},l.default.createElement("tr",{className:g("row")},r.map((function(t,r){var s=t.id,u=t.align,c=t.primary,d=t.sticky,h=t.className,f=n.getHeadCellContent(t);return l.default.createElement("th",{key:s,ref:e.state.columnHeaderRefs[r],style:a[r],className:g("cell",i({align:u,primary:c,sticky:d},"edge-padding",o),h)},f)}))))}},{key:"renderBody",value:function(){var e=this.props.data;return l.default.createElement("tbody",{className:g("body")},e.length>0?e.map(this.renderRow):this.renderEmptyRow())}},{key:"renderTable",value:function(){return l.default.createElement("table",{ref:this.tableRef,className:g("table")},this.renderHead(),this.renderBody())}},{key:"renderEmptyRow",value:function(){var e=this.props,t=e.columns,n=e.emptyMessage;return l.default.createElement("tr",{className:g("row",{empty:!0})},l.default.createElement("td",{className:g("cell"),colSpan:t.length},n||(0,v.default)("label_empty")))}},{key:"renderHorizontalScrollBar",value:function(){var e=this.props,t=e.stickyHorizontalScroll,n=e.stickyHorizontalScrollBreakpoint,i=void 0===n?0:n;return l.default.createElement("div",{ref:this.horizontalScrollBarRef,className:g("horizontal-scroll-bar",{"sticky-horizontal-scroll":t}),style:{bottom:"".concat(i,"px")},"data-qa":"sticky-horizontal-scroll-breakpoint-qa"},l.default.createElement("div",{ref:this.horizontalScrollBarInnerRef,className:g("horizontal-scroll-bar-inner")}))}},{key:"updateColumnStyles",value:function(){var e=this;this.setState((function(t){var n=t.columnHeaderRefs.map((function(e){return null===e.current?void 0:e.current.getBoundingClientRect().width}));return{columnsStyles:e.props.columns.map((function(t,i){return e.getColumnStyles(i,n)}))}}))}},{key:"getColumnStyles",value:function(e,t){var n=this.props.columns[e],i={};if("string"===typeof n.width)return{maxWidth:0,width:n.width};if("undefined"!==typeof n.width&&(i.width=n.width),!n.sticky)return i;var r="left"===n.sticky?t.slice(0,e):t.slice(e+1);return i[n.sticky]=r.reduce((function(e,t){return(0,h.default)(t)?e+t:e}),0),i}}],[{key:"getRowId",value:function(e,t,n){var i=e.data,r=e.getRowId,o=null!==n&&void 0!==n?n:i.indexOf(t);return"function"===typeof r?r(t,o):String(r&&r in t?t[r]:o)}},{key:"getHeadCellContent",value:function(e){var t,n=e.id,i=e.name;return t="function"===typeof i?i():"string"===typeof i?i:n,l.default.createElement("span",{className:g("th-content")},t)}},{key:"getBodyCellContent",value:function(e,t,n){var i,r,o=e.id,a=e.template,s=e.placeholder;return i="function"===typeof s?s(t,n):null!==s&&void 0!==s?s:"\u2014","function"===typeof a?r=a(t,n):"string"===typeof a?r=(0,c.default)(t,a):(0,d.default)(t,o)&&(r=(0,c.default)(t,o)),[void 0,null,""].includes(r)&&i?i:r}},{key:"getDerivedStateFromProps",value:function(e,t){return e.columns.length===t.columnHeaderRefs.length?null:{columnHeaderRefs:Array.from(e.columns,(function(){return l.default.createRef()}))}}}]),n}(l.default.Component);t.Table=m,m.defaultProps={edgePadding:!0}},25126:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.withTableSettings=t.TableSortIndicator=t.withTableSorting=t.withTableCopy=t.withTableActions=t.withTableSelection=void 0;var i=n(15791),r=n(7461);Object.defineProperty(t,"withTableSelection",{enumerable:!0,get:function(){return r.withTableSelection}});var o=n(83332);Object.defineProperty(t,"withTableActions",{enumerable:!0,get:function(){return o.withTableActions}});var a=n(20584);Object.defineProperty(t,"withTableCopy",{enumerable:!0,get:function(){return a.withTableCopy}});var s=n(13184);Object.defineProperty(t,"withTableSorting",{enumerable:!0,get:function(){return s.withTableSorting}}),Object.defineProperty(t,"TableSortIndicator",{enumerable:!0,get:function(){return s.TableSortIndicator}});var u=n(51086);Object.defineProperty(t,"withTableSettings",{enumerable:!0,get:function(){return u.withTableSettings}}),(0,i.__exportStar)(n(32657),t)},83332:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(81506).default,a=n(2205).default,s=n(99842).default,u=n(319).default;Object.defineProperty(t,"__esModule",{value:!0}),t.withTableActions=t.enhanceSystemColumn=t.actionsColumnId=void 0;var l=n(15791),c=(0,l.__importDefault)(n(4519)),d=(0,l.__importDefault)(n(51761)),h=n(90),f=n(35207),p=n(96225),v=n(5698),g=n(1541),m=n(85190),_=n(66393);function y(e,n){var i=e.find((function(e){return e.id===t.actionsColumnId})),r=i||{id:t.actionsColumnId,name:"",sticky:"right",width:28,placeholder:""};return n(r),i?e:[].concat(u(e),[r])}t.actionsColumnId="_actions",t.enhanceSystemColumn=y;var b=(0,h.block)("table"),w=(0,h.block)("table-action-popup"),C=b("actions-button");t.withTableActions=function(e){var t,n=(0,f.getComponentName)(e),u="withTableActions(".concat(n,")");return t=function(t){a(u,t);var n=s(u);function u(){var e;return i(this,u),(e=n.apply(this,arguments)).state={popupOpen:!1,popupData:null},e.anchorRef=c.default.createRef(),e.renderBodyCell=function(t,n){var i=e.props,r=i.isRowDisabled,a=i.getRowActions,s=i.rowActionsSize;if(0===a(t,n).length)return null;var u=!!r&&r(t,n);return c.default.createElement("div",{className:b("actions")},c.default.createElement(v.Button,{view:"flat-secondary",disabled:u,className:C,onClick:e.handleActionsButtonClick.bind(o(e),{item:t,index:n}),size:s},c.default.createElement(p.Icon,{data:_.DotsIcon})))},e.renderPopupMenuItem=function(t,n){var i=e.state.popupData;return e.isActionGroup(t)?c.default.createElement(m.Menu.Group,{key:n,label:t.title},t.items.map(e.renderPopupMenuItem)):c.default.createElement(m.Menu.Item,{key:n,disabled:t.disabled,onClick:e.handleActionClick.bind(o(e),t,i),theme:t.theme,icon:t.icon,className:w("menu-item")},t.text)},e.handleActionsButtonClick=function(t,n){var i=e.state.popupOpen,r=n.currentTarget;i&&e.anchorRef.current===r?e.closePopup():e.openPopup(r,t)},e.handleActionClick=function(t,n,i){t.handler(n.item,n.index,i),e.closePopup()},e.handlePopupClose=function(){e.closePopup()},e.enhanceColumns=(0,d.default)((function(t){return y(t,(function(t){t.template=e.renderBodyCell}))})),e.enhanceOnRowClick=(0,d.default)((function(e){return e?function(t,n,i){if(!i.nativeEvent.target.matches(".".concat(C,", .").concat(C," *")))return e(t,n,i)}:e})),e}return r(u,[{key:"render",value:function(){var t=this.props,n=(t.getRowActions,t.columns),i=t.onRowClick,r=(0,l.__rest)(t,["getRowActions","columns","onRowClick"]);return c.default.createElement(c.default.Fragment,null,c.default.createElement(e,Object.assign({},r,{columns:this.enhanceColumns(n),onRowClick:this.enhanceOnRowClick(i)})),this.renderPopup())}},{key:"renderPopup",value:function(){var e=this.props,t=e.getRowActions,n=e.rowActionsSize,i=this.state,r=i.popupOpen,o=i.popupData;if(!o)return null;var a=t(o.item,o.index);return c.default.createElement(g.Popup,{open:r,anchorRef:this.anchorRef,placement:["bottom-end","top-end"],onClose:this.handlePopupClose},c.default.createElement(m.Menu,{className:w("menu"),size:n},a.map(this.renderPopupMenuItem)))}},{key:"openPopup",value:function(e,t){this.anchorRef.current=e,this.setState({popupOpen:!0,popupData:t})}},{key:"closePopup",value:function(){this.setState({popupOpen:!1})}},{key:"isActionGroup",value:function(e){return Array.isArray(e.items)}}]),u}(c.default.Component),t.displayName=u,t}},20584:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.withTableCopy=void 0;var s=n(15791),u=(0,s.__importDefault)(n(4519)),l=(0,s.__importDefault)(n(51761)),c=n(90),d=n(35207),h=n(97641),f=n(15279),p=(0,c.block)("table");t.withTableCopy=function(e){var t,n=(0,d.getComponentName)(e),c="withTableCopy(".concat(n,")");return t=function(t){o(c,t);var n=a(c);function c(){var e;return i(this,c),(e=n.apply(this,arguments)).enhanceColumns=(0,l.default)((function(e){return e.map((function(e){var t=e.meta;return t&&t.copy?Object.assign(Object.assign({},e),{template:function(n,i){var r,o=f.Table.getBodyCellContent(Object.assign(Object.assign({},e),{placeholder:""}),n,i);return o?("function"===typeof t.copy?r=String(t.copy(n,i)):"string"!==typeof o&&"number"!==typeof o||(r=String(o)),r?u.default.createElement("div",{className:p("copy")},u.default.createElement("div",{className:p("copy-content")},o),u.default.createElement("div",{className:p("copy-button")},u.default.createElement(h.ClipboardButton,{text:r,size:14}))):o):o}}):e}))})),e.enhanceOnRowClick=(0,l.default)((function(e){return e?function(t,n,i){var r=p("copy-button");if(!i.nativeEvent.target.matches(".".concat(r,", .").concat(r," *")))return e(t,n,i)}:e})),e}return r(c,[{key:"render",value:function(){var t=this.props,n=t.columns,i=t.onRowClick,r=(0,s.__rest)(t,["columns","onRowClick"]);return u.default.createElement(e,Object.assign({},r,{columns:this.enhanceColumns(n),onRowClick:this.enhanceOnRowClick(i)}))}}]),c}(u.default.Component),t.displayName=c,t}},7461:function(e,t,n){"use strict";var i=n(319).default,r=n(34575).default,o=n(93913).default,a=n(81506).default,s=n(2205).default,u=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.withTableSelection=t.selectionColumnId=void 0;var l=n(15791),c=(0,l.__importDefault)(n(4519)),d=(0,l.__importDefault)(n(44046)),h=(0,l.__importDefault)(n(45441)),f=(0,l.__importDefault)(n(4076)),p=(0,l.__importDefault)(n(51761)),v=(0,l.__importDefault)(n(11141)),g=n(90),m=n(35207),_=n(48283),y=n(15279),b=(0,g.block)("table");t.selectionColumnId="_selection",t.withTableSelection=function(e){var n,g=(0,m.getComponentName)(e),w="withTableSelection(".concat(g,")");return n=function(n){s(m,n);var g=u(m);function m(){var e;return r(this,m),(e=g.apply(this,arguments)).renderHeadCell=function(){var t=e.props,n=t.data,i=t.selectedIds,r=!0,o=n.every((function(t,n){if(e.isDisabled(t,n))return!0;r=!1;var o=y.Table.getRowId(e.props,t,n);return i.includes(o)}));return r&&(o=!1),e.renderCheckBox({disabled:r,checked:o,handler:e.handleAllCheckBoxUpdate})},e.renderBodyCell=function(t,n){var i=e.props.selectedIds,r=y.Table.getRowId(e.props,t,n),o=i.includes(r);return e.renderCheckBox({disabled:e.isDisabled(t,n),checked:o,handler:e.handleCheckBoxUpdate.bind(a(e),r,n)})},e.handleCheckBoxUpdate=function(t,n,r){var o=r.target.checked,a=r.nativeEvent.shiftKey,s=e.props,u=s.data,l=s.selectedIds,c=s.onSelectionChange;if(a&&void 0!==e.lastCheckedIndex&&e.lastCheckedIndex>=0){var f=Math.min(e.lastCheckedIndex,n),p=Math.max(e.lastCheckedIndex,n),v=u.map((function(t,n){return y.Table.getRowId(e.props,t,n)})).filter((function(t,n){return f<=n&&n<=p&&!e.isDisabled(u[n],n)}));c(o?(0,h.default)(l,v):d.default.apply(void 0,[l].concat(i(v))))}else c(o?[].concat(i(l),[t]):(0,d.default)(l,t));e.lastCheckedIndex=n},e.handleAllCheckBoxUpdate=function(t){var n=t.target.checked,i=e.props,r=i.data,o=i.selectedIds,a=i.onSelectionChange,s=r.map((function(t,n){return y.Table.getRowId(e.props,t,n)})),u=s.filter((function(t,n){return!e.isDisabled(r[n],n)}));a(n?(0,h.default)(o,u):(0,f.default)(o,s))},e.enhanceColumns=(0,p.default)((function(n){return[{id:t.selectionColumnId,name:e.renderHeadCell,template:e.renderBodyCell,width:17,sticky:"left"===(0,v.default)(n,[0,"sticky"])?"left":void 0}].concat(i(n))})),e.enhanceOnRowClick=(0,p.default)((function(e){return e?function(t,n,i){var r=b("selection-checkbox");if(!i.nativeEvent.target.matches(".".concat(r,", .").concat(r," *")))return e(t,n,i)}:e})),e.enhanceGetRowClassNames=(0,p.default)((function(t){return function(n,i){var r=e.props.selectedIds,o=t?t(n,i):[],a=y.Table.getRowId(e.props,n,i),s=r.includes(a);return o.push(b("row",{selected:s})),o}})),e.isDisabled=function(t,n){var i=e.props,r=i.isRowDisabled,o=i.isRowSelectionDisabled;return!(!o||!o(t,n))||!!r&&r(t,n)},e}return o(m,[{key:"render",value:function(){var t=this.props,n=(t.selectedIds,t.onSelectionChange,t.columns),i=t.onRowClick,r=t.getRowClassNames,o=(0,l.__rest)(t,["selectedIds","onSelectionChange","columns","onRowClick","getRowClassNames"]);return c.default.createElement(e,Object.assign({},o,{columns:this.enhanceColumns(n),onRowClick:this.enhanceOnRowClick(i),getRowClassNames:this.enhanceGetRowClassNames(r)}))}},{key:"renderCheckBox",value:function(e){var t=e.disabled,n=e.checked,i=e.handler;return c.default.createElement(_.Checkbox,{size:"l",checked:n,disabled:t,onChange:i,className:b("selection-checkbox")})}}]),m}(c.default.Component),n.displayName=w,n}},5134:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LockIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.LockIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{d:"M5.75 6.232C5.75 3.811 6.953 3.5 8 3.5s2.25.31 2.25 2.732V7h-4.5v-.768zm6 .768v-.768C11.75 2.55 9.4 2 8 2s-3.75.55-3.75 4.232V7H3v7h10V7h-1.25z"}))}},32657:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.TableColumnSetup=void 0;var r=n(15791),o=(0,r.__importDefault)(n(4519)),a=n(90),s=n(17029),u=n(96225),l=n(1541),c=n(5698),d=n(13215),h=n(32993),f=n(5134),p=(0,r.__importDefault)(n(17502)),v=(0,a.block)("table-column-setup");t.TableColumnSetup=function(e){var t=e.switcher,n=e.disabled,r=e.popupWidth,a=e.popupPlacement,g=e.className,m=e.items,_=e.getItemTitle,y=void 0===_?function(e){return e.title}:_,b=e.sortable,w=void 0===b||b,C=e.filterable,k=void 0!==C&&C,S=e.showStatus,x=o.default.useState(!1),L=i(x,2),E=L[0],N=L[1],D=o.default.useState([]),M=i(D,2),T=M[0],O=M[1],I=o.default.useState([]),A=i(I,2),P=A[0],R=A[1],Z=o.default.useState([]),F=i(Z,2),j=F[0],H=F[1],B=o.default.useRef(null),z=function(e){return e.filter((function(e){return e.required})).map((function(e){return Object.assign(Object.assign({},e),{disabled:!0})}))},W=function(e){return e.filter((function(e){return!e.required}))};o.default.useEffect((function(){m!==T&&(O(m),H(z(m)),R(W(m)))}),[T,m]);var V=function(){N(!1),H(z(T)),R(W(T))},Y=function(e){return 36*Math.min(5,e.length)+18},U=function(e){return 36*e.length},K=function(e){!function(e){R(e)}(P.map((function(t){return t===e?Object.assign(Object.assign({},t),{selected:!t.selected}):t})))},q=function(e){return o.default.createElement("div",{className:v("item-content")},e.required?o.default.createElement("div",{className:v("lock-wrap",{visible:e.selected})},o.default.createElement(u.Icon,{data:f.LockIcon})):o.default.createElement("div",{className:v("tick-wrap",{visible:e.selected})},o.default.createElement(u.Icon,{data:h.TickIcon,className:v("tick"),width:10,height:10})),o.default.createElement("div",{className:v("title")},y(e)))};return o.default.createElement("div",{className:v(null,g)},o.default.createElement("div",{className:v("control"),ref:B,onClick:function(){n||(N(!E),H(z(T)),R(W(T)))}},t||o.default.createElement(c.Button,{disabled:n},o.default.createElement(u.Icon,{data:d.GearIcon}),(0,p.default)("button_switcher"),function(){if(!S)return null;var e=T.reduce((function(e,t){return t.selected?e+1:e}),0),t=m.length,n="".concat(e,"/").concat(t);return o.default.createElement("span",{className:v("status")},n)}())),o.default.createElement(l.Popup,{anchorRef:B,placement:a||["bottom-start","bottom-end","top-start","top-end"],open:E,onClose:function(){return V()},className:v("popup"),style:{width:r}},j.length?o.default.createElement(s.List,{items:j,itemHeight:36,itemsHeight:U,filterable:k,renderItem:q,itemsClassName:v("items"),itemClassName:v("item"),virtualized:!1}):null,function(){return o.default.createElement(s.List,{items:P,itemHeight:36,itemsHeight:Y,sortable:w,filterable:k,sortHandleAlign:"right",onSortEnd:(e=P,function(t){var n=t.oldIndex,i=t.newIndex;R(s.List.moveListElement(e.slice(),n,i))}),onItemClick:K,renderItem:q,itemsClassName:v("items"),itemClassName:v("item"),virtualized:!1});var e}(),o.default.createElement("div",{className:v("controls")},o.default.createElement(c.Button,{view:"action",width:"max",onClick:function(){V();var t=j.concat(P);T!==t&&e.onUpdate(t)}},(0,p.default)("button_apply")))))}},32993:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TickIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.TickIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{d:"M5.95 11.008L1.863 6.572.392 7.927l5.533 6.003 9.67-10.114-1.444-1.381z"}))}},17502:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791),r=n(55138),o=(0,i.__importDefault)(n(96060)),a=(0,i.__importDefault)(n(36799));t.default=(0,r.registerKeyset)({en:o.default,ru:a.default},"TableColumnSetup")},51086:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.withTableSettings=t.getActualItems=t.getColumnStringTitle=t.filterColumns=void 0;var i=n(15791),r=(0,i.__importDefault)(n(4519)),o=(0,i.__importDefault)(n(22560)),a=(0,i.__importDefault)(n(45999)),s=(0,i.__importDefault)(n(11141)),u=n(90),l=n(35207),c=n(32657),d=n(96225),h=n(13215),f=n(5698),p=n(83332),v=n(7461);function g(e,t){var n=t.map((function(t){var n=t.id;return{isSelected:t.isSelected,columnSettings:e.find((function(e){return n===e.id}))}})).filter((function(e){var t=e.isSelected,n=e.columnSettings;return t&&n})).map((function(e){return e.columnSettings}));e[0]&&e[0].id===v.selectionColumnId&&n.unshift(e[0]);var i=(0,o.default)(e);return i&&i.id===p.actionsColumnId&&n.push(i),n}function m(e){if((0,a.default)(e.name))return e.name;var t=(0,s.default)(e,["meta","_originalName"]);return(0,a.default)(t)?t:e.id}function _(e,t){var n=e.filter((function(e){var n=e.id;return n!==p.actionsColumnId&&n!==v.selectionColumnId&&t.every((function(e){return e.id!==n}))})).map((function(e){var t;return{id:e.id,isSelected:!1!==(null===(t=e.meta)||void 0===t?void 0:t.selectedByDefault)}}));return t.filter((function(t){var n=t.id;return e.some((function(e){return n===e.id}))})).concat(n).map((function(t){var n,i=t.id,r=t.isSelected,o=e.find((function(e){return e.id===i})),a=Boolean(null===(n=null===o||void 0===o?void 0:o.meta)||void 0===n?void 0:n.selectedAlways);return{id:i,isSelected:!!a||r,isProtected:a,title:o?m(o):i}}))}t.filterColumns=g,t.getColumnStringTitle=m,t.getActualItems=_;var y=(0,u.block)("table");t.withTableSettings=function(e){var t=(0,l.getComponentName)(e),n=function(t){var n=t.updateSettings,o=t.settings,a=t.columns,s=t.settingsPopupWidth,u=(0,i.__rest)(t,["updateSettings","settings","columns","settingsPopupWidth"]),l=r.default.useMemo((function(){return _(a,o||[])}),[a,o]),v=r.default.useCallback((function(e){n(e.map((function(e){return{id:e.id,isSelected:e.selected}})))}),[n]),m=r.default.useMemo((function(){return l.map((function(e){return{id:e.id,title:e.title,selected:e.isSelected,required:e.isProtected}}))}),[l]),b=r.default.useMemo((function(){return(0,p.enhanceSystemColumn)(g(a,l),(function(e){e.name=function(){return r.default.createElement("div",{className:y("settings")},r.default.createElement(c.TableColumnSetup,{popupWidth:s,popupPlacement:["bottom-end","bottom","top-end","top"],onUpdate:v,items:m,switcher:r.default.createElement(f.Button,{view:"flat",className:y("settings-button")},r.default.createElement(d.Icon,{data:h.GearIcon,size:20}))}))}}))}),[l,m,a,v,s]);return r.default.createElement(r.default.Fragment,null,r.default.createElement(e,Object.assign({},u,{columns:b})))};return n.displayName="withTableSettings(".concat(t,")"),n}},18192:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SortIndicator=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(88749),a=(0,r.block)("sort-indicator");t.SortIndicator=function(e){var t=e.order,n=void 0===t?"asc":t;return i.default.createElement("div",{className:a()},i.default.createElement("div",{className:a("caret"),style:{transform:"asc"===n?"scale(1, -1)":void 0}},i.default.createElement("svg",Object.assign({width:"6",height:"3",viewBox:"0 0 6 3",fill:"currentColor"},o.a11yHiddenSvgProps),i.default.createElement("path",{d:"M0.404698 0C0.223319 0 0.102399 0.0887574 0.0419396 0.230769C-0.0386733 0.372781 0.00163315 0.497041 0.122552 0.60355L2.72232 2.89349C2.80293 2.9645 2.88354 3 3.00446 3C3.10523 3 3.20599 2.9645 3.28661 2.89349L5.88637 0.60355C6.00729 0.497041 6.02745 0.372781 5.96699 0.230769C5.88637 0.0887574 5.76545 0 5.60423 0H0.404698Z"}))))}},13184:function(e,t,n){"use strict";var i=n(319).default,r=n(34575).default,o=n(93913).default,a=n(81506).default,s=n(2205).default,u=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.withTableSorting=t.TableSortIndicator=void 0;var l=n(15791),c=(0,l.__importDefault)(n(4519)),d=(0,l.__importDefault)(n(51761)),h=n(90),f=n(35207),p=n(15279),v=n(18192);t.TableSortIndicator=v.SortIndicator;var g=(0,h.block)("table");t.withTableSorting=function(e){var t,n=(0,f.getComponentName)(e),h="withTableSorting(".concat(n,")");return t=function(t){s(h,t);var n=u(h);function h(){var e,t;return r(this,h),(e=n.apply(this,arguments)).state={sort:null!==(t=e.props.defaultSortState)&&void 0!==t?t:[]},e.enhanceColumns=(0,d.default)((function(t){return t.map((function(t){var n=t.meta;return n&&n.sort?Object.assign(Object.assign({},t),{meta:Object.assign(Object.assign({},t.meta),{_originalName:t.name}),name:function(){var n,i=e.getSortState();if(i.length>0){var r=i.find((function(e){return e.column===t.id}));r&&(n=r.order)}var o=p.Table.getHeadCellContent(t),s=[c.default.createElement("div",{key:"content",className:g("sort-content")},o),c.default.createElement("div",{key:"spacer",className:g("sort-spacer")}),c.default.createElement("div",{key:"indicator",className:g("sort-indicator")},c.default.createElement(v.SortIndicator,{order:n||e.getColumnDefaultSortOrder(t)}))];return"right"===t.align&&s.reverse(),c.default.createElement("div",{className:g("sort",{active:Boolean(n)}),onClick:e.handleColumnSortClick.bind(a(e),t)},s)}}):t}))})),e.handleColumnSortClick=function(t,n){var r=e.getSortState(),o=r.findIndex((function(e){return e.column===t.id})),a=r[o],s=e.getNextSortForColumn(t,a);n.shiftKey?a?e.handleSortStateChange([].concat(i(r.slice(0,o)),i(r.slice(o+1)),i(s))):e.handleSortStateChange([].concat(i(r),i(s))):e.handleSortStateChange(s)},e}return o(h,[{key:"render",value:function(){var t=this.props,n=t.columns,i=(0,l.__rest)(t,["columns"]);return c.default.createElement(e,Object.assign({},i,{data:this.getSortedData(),columns:this.enhanceColumns(n)}))}},{key:"getSortedData",value:function(){var e=this.props,t=e.data,n=e.columns,i=this.getSortState();return this.isControlledState()||0===i.length?t:t.slice().sort((function(e,t){for(var r,o=0,a=function(){var a=i[o++],s=n.find((function(e){return e.id===a.column})),u=null===(r=null===s||void 0===s?void 0:s.meta)||void 0===r?void 0:r.sort;if(!u)return"continue";var l="function"===typeof u?u(e,t):function(e,t,n){return e[n]===t[n]?0:e[n]>t[n]?1:-1}(e,t,a.column);return 0!==l?{v:"asc"===a.order?l:-l}:void 0};o<i.length;){var s=a();if("continue"!==s&&"object"===typeof s)return s.v}return 0}))}},{key:"getSortState",value:function(){var e=this.props.sortState,t=this.state.sort;return this.isControlledState()?e:t}},{key:"handleSortStateChange",value:function(e){var t=this.props.onSortStateChange;this.isControlledState()?t(e):this.setState({sort:e})}},{key:"isControlledState",value:function(){var e=this.props,t=e.sortState,n=e.onSortStateChange;return Boolean(t&&n)}},{key:"getColumnDefaultSortOrder",value:function(e){var t;return(null===(t=e.meta)||void 0===t?void 0:t.defaultSortOrder)||"asc"}},{key:"getNextSortForColumn",value:function(e,t){var n="desc"===this.getColumnDefaultSortOrder(e)?["desc","asc",void 0]:["asc","desc",void 0],i=n.indexOf(null===t||void 0===t?void 0:t.order),r=n[(i+1)%n.length];return r?[{column:e.id,order:r}]:[]}}]),h}(c.default.Component),t.displayName=h,t}},12848:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791),r=n(55138),o=(0,i.__importDefault)(n(32966)),a=(0,i.__importDefault)(n(50196));t.default=(0,r.registerKeyset)({en:o.default,ru:a.default},"Table")},17526:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(15279),t),(0,i.__exportStar)(n(25126),t)},3196:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Tabs=t.TabsDirection=void 0;var i,r=(0,n(15791).__importStar)(n(4519)),o=n(90),a=n(8777),s=n(97803),u=(0,o.block)("tabs");!function(e){e.Horizontal="horizontal",e.Vertical="vertical"}(i=t.TabsDirection||(t.TabsDirection={}));var l=[],c=(0,r.forwardRef)((function(e,t){var n=e.direction,o=void 0===n?i.Horizontal:n,c=e.size,d=void 0===c?"m":c,h=e.activeTab,f=e.allowNotSelected,p=void 0!==f&&f,v=e.items,g=void 0===v?l:v,m=e.children,_=e.className,y=e.onSelectTab,b=e.wrapTo,w=e.qa,C=function(e,t,n){var i;return e||(t||0===(null===n||void 0===n?void 0:n.length)||null===(i=null===n||void 0===n?void 0:n[0])||void 0===i?void 0:i.id)}(h,p,g),k=(0,r.useMemo)((function(){return{activeTabId:C}}),[C]),S=(0,r.useMemo)((function(){var e=function(e){y&&y(e)};return g.map((function(t,n){var i=r.default.createElement(s.TabsItem,Object.assign({key:t.id},t,{onClick:e}));return b?b(t,i,n):i}))}),[g,y,b]);return r.default.createElement("div",{role:"tablist",className:u({direction:o,size:d},_),"data-qa":w,ref:t},r.default.createElement(a.TabsContext.Provider,{value:k},m||S))}));c.displayName="Tabs",t.Tabs=Object.assign(c,{Item:s.TabsItem})},8777:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TabsContext=void 0;var i=n(4519);t.TabsContext=(0,i.createContext)({activeTabId:void 0}),t.TabsContext.displayName="TabsContext"},97803:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TabsItem=void 0;var i=(0,n(15791).__importStar)(n(4519)),r=n(90),o=n(27480),a=n(8777),s=(0,r.block)("tabs");t.TabsItem=function(e){var t=e.id,n=e.className,r=e.title,u=e.meta,l=e.hint,c=e.icon,d=e.counter,h=e.label,f=e.active,p=e.disabled,v=e.hasOverflow,g=e.extraProps,m=e.onClick,_=(0,i.useContext)(a.TabsContext).activeTabId,y="boolean"===typeof f?f:_===t,b=(0,i.useMemo)((function(){return void 0!==l?l:"string"===typeof r?r:void 0}),[l,r]);return i.default.createElement("div",Object.assign({},g,{role:"tab","aria-selected":y,"aria-disabled":!0===p,tabIndex:p?-1:0,className:s("item",{active:y,disabled:p,overflow:Boolean(v)},n),title:b,onClick:function(){m(t)},onKeyDown:function(e){" "===e.key&&m(t)}}),i.default.createElement("div",{className:s("item-content")},c&&i.default.createElement("div",{className:s("item-icon")},c),i.default.createElement("div",{className:s("item-title")},r||t),"number"===typeof d&&i.default.createElement("div",{className:s("item-counter")},d),h&&i.default.createElement(o.Label,{className:s("item-label"),theme:h.theme},h.content)),u&&i.default.createElement("div",{className:s("item-meta")},u))},t.TabsItem.displayName="Tabs.Item"},62556:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(3196),t)},84991:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Text=void 0;var i=n(15791),r=(0,i.__importDefault)(n(4519)),o=n(90417),a=n(84855);t.Text=r.default.forwardRef((function(e,t){var n=e.as,s=e.children,u=e.variant,l=e.className,c=e.ellipsis,d=e.color,h=e.whiteSpace,f=e.wordBreak,p=(0,i.__rest)(e,["as","children","variant","className","ellipsis","color","whiteSpace","wordBreak"]),v=n||"span";return r.default.createElement(v,Object.assign({ref:t,className:(0,o.text)({variant:u,ellipsis:c,whiteSpace:h,wordBreak:f},d?(0,a.colorText)({color:d},l):l)},p),s)})),t.Text.displayName="Text"},84855:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.colorText=t.TEXT_COLORS=void 0;var i=(0,n(90).block)("color-text");t.TEXT_COLORS=["primary","complementary","secondary","hint","info","info-heavy","positive","positive-heavy","warning","warning-heavy","danger","danger-heavy","utility","utility-heavy","misc","misc-heavy","special","link","link-hover","link-visited","link-visited-hover","yandex-red","dark-primary","dark-complementary","dark-secondary","light-primary","light-complementary","light-secondary","light-hint","inverted-primary","inverted-complementary","inverted-secondary","inverted-hint"];t.colorText=function(e,t){var n=e.color;return i({color:n},t)}},66923:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.colorText=t.TEXT_COLORS=t.text=t.TEXT_VARIANTS=void 0,(0,n(15791).__exportStar)(n(84991),t);var i=n(90417);Object.defineProperty(t,"TEXT_VARIANTS",{enumerable:!0,get:function(){return i.TEXT_VARIANTS}}),Object.defineProperty(t,"text",{enumerable:!0,get:function(){return i.text}});var r=n(84855);Object.defineProperty(t,"TEXT_COLORS",{enumerable:!0,get:function(){return r.TEXT_COLORS}}),Object.defineProperty(t,"colorText",{enumerable:!0,get:function(){return r.colorText}})},90417:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.text=t.TEXT_VARIANTS=void 0;var i=(0,n(90).block)("text");t.TEXT_VARIANTS=["display-4","display-3","display-2","display-1","header-2","header-1","subheader-3","subheader-2","subheader-1","body-3","body-2","body-1","body-short","caption-2","caption-1","code-3","code-inline-3","code-2","code-inline-2","code-1","code-inline-1"];t.text=function(e,t){var n=e.variant,r=void 0===n?"body-1":n,o=e.ellipsis,a=e.whiteSpace,s=e.wordBreak;return i({variant:r,ellipsis:o,ws:a,wb:s},t)}},36786:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AdditionalContent=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("text-input");t.AdditionalContent=function(e){var t=e.children,n=e.className;return t?i.default.createElement("div",{className:r("additional-content",n)},t):null}},41069:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ClearAction=void 0;var i=n(15791),r=(0,i.__importDefault)(n(4519)),o=n(5698),a=n(96225),s=n(99959),u=n(90),l=(0,i.__importDefault)(n(17140)),c=(0,u.block)("text-input");t.ClearAction=function(e){var t=e.size,n=e.className,i=e.onClick;return r.default.createElement(o.Button,{size:t,className:c("clear",n),onClick:i,extraProps:{"aria-label":(0,l.default)("label_clear-button")}},r.default.createElement(a.Icon,{data:s.CrossIcon,size:10}))}},56704:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputControl=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=(0,n(90).block)("text-input");t.InputControl=function(e){var t=e.type,n=e.name,o=e.id,a=e.tabIndex,s=e.autoFocus,u=e.autoComplete,l=e.placeholder,c=e.value,d=e.defaultValue,h=e.onChange,f=e.onFocus,p=e.onBlur,v=e.onKeyDown,g=e.onKeyUp,m=e.onKeyPress,_=e.controlProps,y=e.controlRef,b=e.disabled;return i.default.createElement("input",Object.assign({},_,{ref:y,className:r("control",{type:"input"},null===_||void 0===_?void 0:_.className),type:t,name:n,id:o,tabIndex:a,placeholder:l,value:c,defaultValue:d,autoFocus:s,autoComplete:u,onChange:h,onFocus:f,onBlur:p,onKeyDown:v,onKeyUp:g,onKeyPress:m,disabled:b}))}},8897:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextAreaControl=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(72842),a=(0,r.block)("text-input");t.TextAreaControl=function(e){var t,n=e.name,r=e.id,s=e.tabIndex,u=e.autoFocus,l=e.autoComplete,c=e.placeholder,d=e.value,h=e.defaultValue,f=e.onChange,p=e.onFocus,v=e.onBlur,g=e.onKeyDown,m=e.onKeyUp,_=e.onKeyPress,y=e.controlRef,b=e.controlProps,w=e.disabled,C=e.rows,k=e.minRows,S=void 0===k?1:k,x=e.maxRows,L=i.default.useRef(null),E=(0,o.useForkRef)(y,L),N=C||S,D=i.default.useCallback((function(){var e=null===L||void 0===L?void 0:L.current;if(e&&!C){var t=((d||e.value).match(/\n/g)||[]).length+1,n=getComputedStyle(e),i=parseInt(n.getPropertyValue("line-height"),10),r=parseInt(n.getPropertyValue("border-top-width"),10),o=parseInt(n.getPropertyValue("padding-top"),10),a=Math.floor(e.scrollHeight/i);x&&x<Math.max(a,t)?(e.style.height="auto",e.style.height="".concat(x*i+2*o+2*r,"px")):(e.style.height="auto",e.style.height="".concat(e.scrollHeight+2*r,"px"))}}),[C,x,d]);return i.default.useEffect(D,[D]),i.default.createElement("textarea",Object.assign({},b,{ref:E,style:Object.assign(Object.assign({},null===(t=b)||void 0===t?void 0:t.style),{height:C?"auto":void 0}),className:a("control",{type:"textarea"},null===b||void 0===b?void 0:b.className),name:n,id:r,tabIndex:s,placeholder:c,value:d,defaultValue:h,rows:N,autoFocus:u,autoComplete:l,onChange:function(e){f?f(e):D()},onFocus:p,onBlur:v,onKeyDown:g,onKeyUp:m,onKeyPress:_,disabled:w}))}},35615:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.TextInput=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(90),a=n(72842),s=n(20813),u=n(59548),l=n(56704),c=n(8897),d=n(41069),h=n(36786),f=(0,o.block)("text-input"),p=function(e){return"boolean"===typeof e?e?"on":"off":e};t.TextInput=r.default.forwardRef((function(e,t){var n=e.view,v=void 0===n?"normal":n,g=e.size,m=void 0===g?"m":g,_=e.pin,y=void 0===_?"round-round":_,b=e.name,w=e.value,C=e.defaultValue,k=e.label,S=e.disabled,x=void 0!==S&&S,L=e.multiline,E=void 0!==L&&L,N=e.hasClear,D=void 0!==N&&N,M=e.error,T=e.autoComplete,O=e.onUpdate,I=e.onChange,A=e.id,P=e.tabIndex,R=e.style,Z=e.className,F=e.qa,j=e.controlProps,H=e.rightContent,B=r.default.useState(null!==C&&void 0!==C?C:""),z=i(B,2),W=z[0],V=z[1],Y=r.default.useRef(null),U=r.default.useRef(null),K=r.default.useState(!1),q=i(K,2),G=q[0],$=q[1],Q=void 0!==w,X=Q?w:W,J=!E&&Boolean(k),ee=(0,u.useUniqId)(),te=J?A||ee:A,ne=J&&!A&&!b&&"undefined"===typeof T,ie=(0,a.useForkRef)(e.controlRef,Y),re=(0,s.useElementSize)(J?U:null,m);r.default.useEffect((function(){var e=Y.current;if(e&&E){var t=e.scrollHeight>e.clientHeight;G!==t&&$(t)}}),[E,X,G]);var oe=r.default.useMemo((function(){return function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).error?"error":void 0}({error:M})}),[M]),ae="string"===typeof M,se=Boolean(D&&!x&&X),ue=Boolean(H&&!E),le=Object.assign(Object.assign({},j),{style:Object.assign(Object.assign({},null===j||void 0===j?void 0:j.style),J&&re.width?{paddingLeft:"".concat(re.width,"px")}:{})}),ce={id:te,tabIndex:P,name:b,onChange:function(e){var t=e.target.value;Q||V(t),I&&I(e),O&&O(t)},autoComplete:ne?"off":p(T),controlProps:le};return r.default.createElement("span",{ref:t,style:R,className:f({view:v,size:m,disabled:x,state:oe,pin:"clear"===v?void 0:y,"has-right-content":(se||ue)&&!E,"has-scrollbar":G},Z),"data-qa":F},r.default.createElement("span",{className:f("content")},J&&r.default.createElement("label",{ref:U,className:f("label"),title:k,htmlFor:te},"".concat(k)),E?r.default.createElement(c.TextAreaControl,Object.assign({},e,ce,{controlRef:ie})):r.default.createElement(l.InputControl,Object.assign({},e,ce,{controlRef:ie})),se&&r.default.createElement(d.ClearAction,{className:(0,o.modsClassName)(f("clear",{textarea:E})),size:m,onClick:function(e){var t=Y.current;if(t){t.focus();var n=Object.create(e);n.target=t,n.currentTarget=t,t.value="",I&&I(n),O&&O("")}Q||V("")}}),ue&&r.default.createElement(h.AdditionalContent,null,H)),ae&&r.default.createElement("div",{className:f("error")},M))}))},17140:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791),r=n(55138),o=(0,i.__importDefault)(n(82625)),a=(0,i.__importDefault)(n(74969));t.default=(0,r.registerKeyset)({en:o.default,ru:a.default},"text-input")},14077:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(35615),t)},81855:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ToasterContext=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.ToasterContext=i.default.createContext(null),t.ToasterContext.displayName="ToasterContext"},47585:function(e,t,n){"use strict";var i=n(319).default,r=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.ToasterProvider=void 0;var o=(0,n(15791).__importDefault)(n(4519)),a=n(81855),s=n(48424),u=n(90175),l=n(31757),c=n(91541);t.ToasterProvider=o.default.forwardRef((function(e,t){var n=e.children,d=o.default.useState([]),h=r(d,2),f=h[0],p=h[1],v=o.default.useCallback((function(e){var t=e.name;p((function(n){var r=n;return(0,s.hasToast)(n,t)&&(r=(0,u.removeToast)(n,t)),[].concat(i(r),[Object.assign(Object.assign({},e),{addedAt:Date.now()})])}))}),[]),g=o.default.useCallback((function(e){p((function(t){return(0,u.removeToast)(t,e)}))}),[]),m=o.default.useCallback((function(){p((function(){return[]}))}),[]),_=o.default.useCallback((function(e,t){p((function(n){var r;if(!(0,s.hasToast)(n,e))return n;var o=(0,l.getToastIndex)(n,e);return[].concat(i(n.slice(0,o)),[Object.assign(Object.assign(Object.assign({},n[o]),t),{isOverride:!0,updatesCounter:(null!==(r=n[o].updatesCounter)&&void 0!==r?r:0)+1})],i(n.slice(o+1)))}))}),[]),y=o.default.useRef(f);o.default.useEffect((function(){y.current=f}),[f]);var b=o.default.useCallback((function(e){return!!y.current&&(0,s.hasToast)(y.current,e)}),[]),w=o.default.useMemo((function(){return{add:v,remove:g,removeAll:m,update:_,has:b}}),[v,g,m,_,b]);return o.default.useImperativeHandle(t,(function(){return{add:v,remove:g,removeAll:m,update:_,has:b}})),o.default.createElement(a.ToasterContext.Provider,{value:w},o.default.createElement(c.ToastsContext.Provider,{value:f},n))})),t.ToasterProvider.displayName="ToasterProvider"},91541:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ToastsContext=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.ToastsContext=i.default.createContext([]),t.ToastsContext.displayName="ToastsContext"},15681:function(e,t,n){"use strict";var i=n(59713).default,r=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Toast=void 0;var o,a=n(15791),s=(0,a.__importDefault)(n(4519)),u=n(90),l=n(26739),c=n(96225),d=n(5698),h=n(40923),f=(0,a.__importDefault)(n(12035)),p=(0,u.block)("toast"),v="toast-display-end",g="toast-hide-end",m=5e3,_=12,y={info:h.Info,success:h.Success,warning:h.Alarm,error:h.Alarm};function b(e){var t;return null===(t=e.current)||void 0===t?void 0:t.offsetHeight}!function(e){e.Creating="creating",e.ShowingIndents="showing-indents",e.ShowingHeight="showing-height",e.Hiding="hiding",e.Shown="shown"}(o||(o={})),t.Toast=function(e){var t=e.content,n=e.actions,a=e.title,u=e.className,w=e.type,C=e.renderIcon,k=e.autoHiding,S=void 0===k?m:k,x=e.isClosable,L=void 0===x||x,E=e.isOverride,N=void 0!==E&&E,D=e.updatesCounter,M=void 0===D?0:D,T=e.mobile,O=void 0!==T&&T,I=function(e){var t,n=e.onRemove,i=s.default.useState(o.Creating),a=r(i,2),u=a[0],l=a[1];s.default.useEffect((function(){u===o.Creating?l(o.ShowingIndents):u===o.ShowingIndents&&l(o.ShowingHeight)}),[u]),u===o.ShowingHeight&&(t=function(e){e.animationName===v&&l(o.Shown)}),u===o.Hiding&&(t=function(e){e.animationName===g&&n()});var c=s.default.useCallback((function(){l(o.Hiding)}),[]);return{status:u,containerProps:{onAnimationEnd:t},handleClose:c}}({onRemove:e.removeCallback}),A=I.status,P=I.containerProps,R=I.handleClose,Z=function(e){var t=e.isOverride,n=e.status,i=e.updatesCounter,a=s.default.useState(void 0),u=r(a,2),l=u[0],c=u[1],d=s.default.useRef(null);s.default.useEffect((function(){n===o.ShowingIndents&&b(d)}),[n]),s.default.useEffect((function(){if(n!==o.ShowingIndents&&n!==o.ShowingHeight&&n!==o.Hiding){var e=b(d);c(e)}}),[t,i]);var h={};return l&&n!==o.ShowingIndents&&n!==o.Shown&&(h.height=l),{style:h,ref:d}}({isOverride:N,status:A,updatesCounter:M}),F="number"===typeof S?S:void 0,j=(0,l.useCloseOnTimeout)({onClose:R,timeout:F}),H=i({mobile:O,appearing:A===o.ShowingIndents||A===o.ShowingHeight,"show-animation":A===o.ShowingHeight,"hide-animation":A===o.Hiding,created:A!==o.Creating},w||"default",!0),B=C?C(e):function(e){var t=e.type;return t?s.default.createElement(c.Icon,{data:y[t],className:p("icon",i({},t,!0))}):null}({type:w});return s.default.createElement("div",Object.assign({className:p(H,u)},P,Z,j),B&&s.default.createElement("div",{className:p("icon-container")},B),s.default.createElement("div",{className:p("container")},s.default.createElement("h3",{className:p("title")},a),L&&s.default.createElement(d.Button,{view:"flat-secondary",className:p("btn-close"),onClick:R,extraProps:{"aria-label":(0,f.default)("label_close-button")}},s.default.createElement(c.Icon,{data:h.CrossIcon,size:_})),Boolean(t)&&s.default.createElement("div",{className:p("content")},t),function(e){var t=e.actions,n=e.onClose;return t?s.default.createElement("div",{className:p("actions")},t.map((function(e,t){var i=e.label,r=e.onClick,o=e.view,a=void 0===o?"outlined":o,u=e.removeAfterClick,l=void 0===u||u;return s.default.createElement(d.Button,{key:"".concat(i,"__").concat(t),className:p("action"),onClick:function(){r(),l&&n()},type:"button",view:a},i)}))):null}({actions:n,onClose:R})))}},43191:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ToastList=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(15681);t.ToastList=function(e){var t=e.toasts,n=e.mobile,o=e.removeCallback;return i.default.createElement(i.default.Fragment,null,t.map((function(e){return i.default.createElement(r.Toast,Object.assign({},e,{key:"".concat(e.name,"_").concat(e.addedAt),mobile:n,removeCallback:function(){return o(e.name)}}))})))}},31499:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.ToasterComponent=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(31859),a=n(70772),s=n(91541),u=n(43191),l=n(91700);function c(e){var t=e.className,n=e.mobile,c=e.hasPortal,d=void 0===c||c,h=(0,o.useMobile)(),f=i(h,1)[0],p=(0,a.useToaster)().remove,v=r.default.useContext(s.ToastsContext),g=r.default.createElement(u.ToastList,{toasts:v,removeCallback:p,mobile:null!==n&&void 0!==n?n:f});return d?r.default.createElement(l.ToasterPortal,{className:t||"",mobile:null!==n&&void 0!==n?n:f},g):g}t.ToasterComponent=c,c.displayName="ToasterComponent"},91700:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ToasterPortal=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(43977),o=(0,n(90).block)("toaster");function a(e){var t=e.children,n=e.className,a=e.mobile,s=i.default.useRef("undefined"!==typeof document?document.createElement("div"):void 0);return i.default.useEffect((function(){var e=s.current;if(e)return document.body.appendChild(e),function(){document.body.removeChild(e)}}),[]),i.default.useEffect((function(){s.current&&(s.current.className=o({mobile:a},n))}),[n,a]),i.default.createElement(r.Portal,{container:s.current},t)}t.ToasterPortal=a,a.displayName="ToasterPortal"},46030:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default;Object.defineProperty(t,"__esModule",{value:!0}),t.ToasterSingleton=void 0;var o,a=n(15791),s=(0,a.__importDefault)(n(4519)),u=(0,a.__importDefault)(n(84453)),l=(0,a.__importDefault)(n(11141)),c=n(90),d=n(47585),h=n(31499),f=Symbol("Toaster instance key"),p=(0,c.block)("toaster"),v=function(){function e(t){var n=this;i(this,e),this.className="",this.mobile=!1,this.componentAPI=null,this.add=function(e){var t;null===(t=n.componentAPI)||void 0===t||t.add(e)},this.remove=function(e){var t;null===(t=n.componentAPI)||void 0===t||t.remove(e)},this.removeAll=function(){var e;null===(e=n.componentAPI)||void 0===e||e.removeAll()},this.update=function(e,t){var i;null===(i=n.componentAPI)||void 0===i||i.update(e,t)},this.has=function(e){var t,i;return null!==(i=null===(t=n.componentAPI)||void 0===t?void 0:t.has(e))&&void 0!==i&&i};var r=(0,l.default)(t,["className"],""),o=(0,l.default)(t,["mobile"],!1);if(window[f]instanceof e){var a=window[f];return a.className=r,a.mobile=o,a.setRootNodeClassName(),a}this.className=r,this.mobile=o,this.createRootNode(),this.createReactRoot(),this.render(),window[f]=this}return r(e,[{key:"destroy",value:function(){u.default.unmountComponentAtNode(this.rootNode),document.body.removeChild(this.rootNode)}},{key:"createRootNode",value:function(){this.rootNode=document.createElement("div"),this.setRootNodeClassName(),document.body.appendChild(this.rootNode)}},{key:"createReactRoot",value:function(){o&&(this.reactRoot=o.createRoot(this.rootNode))}},{key:"render",value:function(){var e=this,t=s.default.createElement(d.ToasterProvider,{ref:function(t){e.componentAPI=t}},s.default.createElement(h.ToasterComponent,{hasPortal:!1,mobile:this.mobile}));this.reactRoot?this.reactRoot.render(t):u.default.render(t,this.rootNode,(function(){return Promise.resolve()}))}},{key:"setRootNodeClassName",value:function(){this.rootNode.className=p({mobile:this.mobile},this.className)}}],[{key:"injectReactDOMClient",value:function(e){o=e}}]),e}();t.ToasterSingleton=v},70772:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useToaster=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(81855);t.useToaster=function(){var e=i.default.useContext(r.ToasterContext);if(null===e)throw new Error("Toaster: `useToaster` hook is used out of context");return i.default.useMemo((function(){return e}),[e])}},12035:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791),r=n(55138),o=(0,i.__importDefault)(n(2736)),a=(0,i.__importDefault)(n(38842));t.default=(0,r.registerKeyset)({en:o.default,ru:a.default},"Toaster")},67723:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ToasterProvider=t.ToasterComponent=t.withToaster=t.useToaster=t.Toast=t.Toaster=void 0;var i=n(15791),r=n(46030);Object.defineProperty(t,"Toaster",{enumerable:!0,get:function(){return r.ToasterSingleton}});var o=n(15681);Object.defineProperty(t,"Toast",{enumerable:!0,get:function(){return o.Toast}}),(0,i.__exportStar)(n(85082),t);var a=n(70772);Object.defineProperty(t,"useToaster",{enumerable:!0,get:function(){return a.useToaster}});var s=n(18486);Object.defineProperty(t,"withToaster",{enumerable:!0,get:function(){return s.withToaster}});var u=n(31499);Object.defineProperty(t,"ToasterComponent",{enumerable:!0,get:function(){return u.ToasterComponent}});var l=n(47585);Object.defineProperty(t,"ToasterProvider",{enumerable:!0,get:function(){return l.ToasterProvider}})},85082:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},31757:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getToastIndex=void 0,t.getToastIndex=function(e,t){return e.findIndex((function(e){return e.name===t}))}},48424:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasToast=void 0;var i=n(31757);t.hasToast=function(e,t){return-1!==(0,i.getToastIndex)(e,t)}},90175:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeToast=void 0;var i=n(48424);t.removeToast=function(e,t){return(0,i.hasToast)(e,t)?e.filter((function(e){return e.name!==t})):e}},18486:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.withToaster=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(35207),o=n(70772);t.withToaster=function(){return function(e){function t(t){var n=(0,o.useToaster)();return i.default.createElement(e,Object.assign({},t,{toaster:n}))}return t.displayName="WithToaster(".concat((0,r.getComponentName)(e),")"),t}}},43995:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.Tooltip=void 0;var r=(0,n(15791).__importStar)(n(4519)),o=n(1541),a=n(39318),s=n(90),u=n(72842),l=(0,s.block)("tooltip"),c=["bottom","top"];t.Tooltip=function(e){var t=e.children,n=e.content,s=e.disabled,d=e.placement,h=void 0===d?c:d,f=(0,r.useState)(null),p=i(f,2),v=p[0],g=p[1],m=function(e,t){var n=t.openDelay,o=t.closeDelay,s=(0,a.useBoolean)(!1),u=i(s,3),l=u[0],c=u[1],d=u[2],h=r.default.useRef();return(0,r.useEffect)((function(){if(e)return e.addEventListener("mouseenter",t),e.addEventListener("mouseleave",i),function(){e.removeEventListener("mouseenter",t),e.removeEventListener("mouseleave",i)};function t(){clearTimeout(h.current),h.current=window.setTimeout(c,n)}function i(){clearTimeout(h.current),h.current=window.setTimeout(d,o)}}),[e,c,d,n,o]),l}(v,e),_=r.Children.only(t),y=_.ref,b=(0,u.useForkRef)(g,y);return r.default.createElement(r.default.Fragment,null,(0,r.cloneElement)(_,{ref:b}),v?r.default.createElement(o.Popup,{className:l(null,e.className),open:m&&!s,placement:h,anchorRef:{current:v},disableEscapeKeyDown:!0,disableOutsideClick:!0,disableLayer:!0},r.default.createElement("div",{className:l("content",e.contentClassName)},n)):null)}},95716:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Tooltip=void 0;var i=n(43995);Object.defineProperty(t,"Tooltip",{enumerable:!0,get:function(){return i.Tooltip}})},49336:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.User=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(7721),a=(0,r.block)("user");t.User=function(e){var t=e.name,n=e.description,r=e.imgUrl,s=e.size,u=void 0===s?"m":s,l=e.className,c="xs"===u;return i.default.createElement("div",{className:a({size:u},l)},r&&i.default.createElement(o.UserAvatar,{imgUrl:r,size:u,className:a("avatar")}),(t||n)&&i.default.createElement("div",{className:a("info")},t&&i.default.createElement("span",{className:a("name")},t),!c&&n&&i.default.createElement("span",{className:a("description")},n)))}},69664:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(49336),t)},57446:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserAvatar=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90),o=n(27812),a=(0,r.block)("user-avatar");t.UserAvatar=function(e){var t=e.imgUrl,n=e.size,r=void 0===n?"m":n,s=e.srcSet,u=e.sizes,l=e.title,c=e.className,d=e.onClick;return i.default.createElement("div",{title:l,className:a({size:r},c),onClick:d},i.default.createElement("img",{className:a("figure"),width:o.SIZES[r],height:o.SIZES[r],src:t,srcSet:s,sizes:u,alt:""}))}},27812:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SIZES=void 0,t.SIZES={xs:24,s:28,m:32,l:42,xl:50}},7721:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AVATAR_SIZES=void 0,(0,n(15791).__exportStar)(n(57446),t);var i=n(27812);Object.defineProperty(t,"AVATAR_SIZES",{enumerable:!0,get:function(){return i.SIZES}})},61065:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KeyCode=void 0,t.KeyCode={BACKSPACE:"Backspace",ENTER:"Enter",TAB:"Tab",SPACEBAR:" "}},50735:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Alarm=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Alarm=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"none"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m13.441 4.094 8.438 14.66c.633 1.125-.176 2.496-1.477 2.496H3.562c-1.3 0-2.109-1.406-1.476-2.496l8.437-14.66c.633-1.125 2.286-1.09 2.918 0Zm-2.592 12.08c.29-.294.694-.479 1.151-.479.879 0 1.617.739 1.617 1.617 0 .395-.137.75-.364 1.027a1.62 1.62 0 0 1-1.253.59 1.591 1.591 0 0 1-1.617-1.616 1.62 1.62 0 0 1 .466-1.139Zm-.31-6.578a.381.381 0 0 0-.086.299l.246 4.78c.035.247.211.388.422.388h1.723a.408.408 0 0 0 .32-.147.478.478 0 0 0 .102-.24l.246-4.781c.035-.247-.176-.457-.422-.457h-2.215a.438.438 0 0 0-.336.158Z",fill:"currentColor"}))}},52162:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Chevron=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Chevron=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{d:"M3.50172 5.44253C3.19384 5.16544 2.71962 5.19039 2.44253 5.49828C2.16544 5.80616 2.19039 6.28038 2.49828 6.55747L3.50172 5.44253ZM8 10.5L7.49828 11.0575C7.7835 11.3142 8.2165 11.3142 8.50172 11.0575L8 10.5ZM13.5017 6.55747C13.8096 6.28038 13.8346 5.80616 13.5575 5.49828C13.2804 5.19039 12.8062 5.16544 12.4983 5.44253L13.5017 6.55747ZM2.49828 6.55747L7.49828 11.0575L8.50172 9.94253L3.50172 5.44253L2.49828 6.55747ZM8.50172 11.0575L13.5017 6.55747L12.4983 5.44253L7.49828 9.94253L8.50172 11.0575Z"}))}},85607:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChevronDownIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.ChevronDownIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{stroke:"currentColor",fill:"none",d:"M3 6l5 5 5-5"}))}},99959:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CrossIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.CrossIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 10 10",width:"10",height:"10",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{d:"M9.75592 8.57741C10.0814 8.90285 10.0814 9.43049 9.75592 9.75592C9.43049 10.0814 8.90285 10.0814 8.57741 9.75592L5 6.17851L1.42259 9.75592C1.09715 10.0814 0.569515 10.0814 0.244078 9.75592C-0.0813592 9.43049 -0.0813592 8.90285 0.244078 8.57741L3.82149 5L0.244078 1.42259C-0.0813592 1.09715 -0.0813592 0.569515 0.244078 0.244078C0.569515 -0.0813592 1.09715 -0.0813592 1.42259 0.244078L5 3.82149L8.57741 0.244078C8.90285 -0.0813592 9.43049 -0.0813592 9.75592 0.244078C10.0814 0.569515 10.0814 1.09715 9.75592 1.42259L6.17851 5L9.75592 8.57741Z"}))}},66393:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DotsIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.DotsIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{d:"M14 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 14 6.125zm-5.906 0a1.874 1.874 0 1 1 0 3.749 1.874 1.874 0 0 1 0-3.749zM2 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 2 6.125z"}))}},69950:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalLinkIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.ExternalLinkIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 14 14",width:"14",height:"14",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 0.250006C9.58578 0.250007 9.25 0.585794 9.25 1.00001C9.25 1.41422 9.58579 1.75001 10 1.75001L11.1893 1.75L5.71967 7.21966C5.42678 7.51256 5.42678 7.98743 5.71967 8.28032C6.01256 8.57322 6.48744 8.57322 6.78033 8.28032L12.25 2.81065L12.25 3.99999C12.25 4.41421 12.5858 4.74999 13 4.74999C13.4142 4.74999 13.75 4.4142 13.75 3.99999L13.75 0.999997C13.75 0.585784 13.4142 0.25 13 0.25L10 0.250006ZM3.25 3.24999C2.42157 3.24999 1.75 3.92157 1.75 4.74999V10.75C1.75 11.5784 2.42157 12.25 3.25 12.25H9.25C10.0784 12.25 10.75 11.5784 10.75 10.75V6.99999C10.75 6.58578 11.0858 6.24999 11.5 6.24999C11.9142 6.24999 12.25 6.58578 12.25 6.99999V10.75C12.25 12.4068 10.9069 13.75 9.25 13.75H3.25C1.59315 13.75 0.25 12.4068 0.25 10.75V4.74999C0.25 3.09314 1.59315 1.74999 3.25 1.74999H7C7.41421 1.74999 7.75 2.08578 7.75 2.49999C7.75 2.91421 7.41421 3.24999 7 3.24999H3.25Z"}))}},31378:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Facebook=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Facebook=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currenColor"},r.a11yHiddenSvgProps,e),i.default.createElement("circle",{cx:"8",cy:"8",r:"8",fill:"#fff"}),i.default.createElement("path",{d:"M0 8a8 8 0 1 1 9.229 7.906V10.29h1.859l.352-2.304H9.23v-1.5c0-.625.31-1.25 1.302-1.25h1V3.283s-.902-.164-1.77-.164c-1.818 0-2.998 1.111-2.998 3.111v1.762H4.732v2.305h2.031v5.608A8.002 8.002 0 0 1 0 8Z",fill:"#1877F2"}))}},13215:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GearIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.GearIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.929 4.93l.001-.002.002.001.527-.528a.575.575 0 01.786-.025l1.21 1.061a1.856 1.856 0 003.115-1.291h.004l.105-1.607a.575.575 0 01.574-.537h.746V2v.002h.747c.303 0 .554.235.574.537l.105 1.607h.005c.019.484.223.92.544 1.24a1.854 1.854 0 002.584.039l1.196-1.05a.575.575 0 01.786.026l.528.528.002-.002v.002l-.001.002.528.527a.575.575 0 01.026.786l-1.06 1.212a1.85 1.85 0 00-.492 1.258c0 .515.21.98.548 1.317.32.318.753.52 1.235.539v.004l1.606.105c.303.02.538.271.538.574V12H22v.002h-.002v.746a.575.575 0 01-.537.574l-1.607.107v.001c-.484.02-.92.223-1.24.544a1.854 1.854 0 00-.05 2.572h-.002l1.062 1.211c.2.228.188.572-.026.786l-.528.528v.002h-.001l-.528.527a.575.575 0 01-.785.026l-1.168-1.021a1.851 1.851 0 00-1.302-.534 1.86 1.86 0 00-1.857 1.786h-.004l-.105 1.607a.575.575 0 01-.54.536h-1.56a.575.575 0 01-.54-.536l-.105-1.607h-.004a1.851 1.851 0 00-.545-1.244 1.851 1.851 0 00-1.31-.542c-.504 0-.96.2-1.295.526l-1.177 1.03a.575.575 0 01-.785-.027l-.528-.528-.001-.001-.528-.528a.575.575 0 01-.026-.786l1.062-1.21-.001-.001a1.85 1.85 0 00.493-1.26c0-.515-.21-.98-.548-1.317a1.85 1.85 0 00-1.236-.539v-.001l-1.607-.107a.575.575 0 01-.537-.574v-.746H2V12h.001v-.747c0-.303.235-.554.538-.574l1.606-.105v-.004a1.851 1.851 0 001.242-.545 1.854 1.854 0 00.043-2.577L4.376 6.244a.575.575 0 01.026-.786l.528-.527-.001-.002zM16.286 12a4.286 4.286 0 11-8.572 0 4.286 4.286 0 018.572 0z"}))}},30563:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Info=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Info=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"none"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.281 12.25c0-4.781 3.903-8.719 8.719-8.719 4.781 0 8.719 3.938 8.719 8.719 0 4.816-3.938 8.719-8.719 8.719a8.717 8.717 0 0 1-8.719-8.719Zm10.196-3.375c0-.809-.668-1.477-1.477-1.477-.844 0-1.477.668-1.477 1.477 0 .844.633 1.477 1.477 1.477.809 0 1.477-.633 1.477-1.477Zm.07 7.875c.21 0 .422-.176.422-.422v-.844a.454.454 0 0 0-.422-.421h-.422v-3.516a.454.454 0 0 0-.422-.422h-2.25a.427.427 0 0 0-.422.422v.844c0 .246.176.421.422.421h.422v2.25h-.422a.427.427 0 0 0-.422.422v.844c0 .246.176.422.422.422h3.094Z",fill:"currentColor"}))}},96924:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Link=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Link=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.47 6.53a.75.75 0 0 1 1.06 1.061l-.727.727a2.743 2.743 0 0 0 3.879 3.879l.727-.727a.75.75 0 0 1 1.06 1.06l-.726.727a4.243 4.243 0 0 1-6-6l.727-.727Zm8 1.879a.75.75 0 0 0 1.06 1.06l.727-.726a4.243 4.243 0 0 0-6-6l-.727.727a.75.75 0 0 0 1.061 1.06l.727-.727a2.743 2.743 0 0 1 3.879 3.879l-.727.727Zm-.94-1.879a.75.75 0 1 0-1.06-1.06l-4 4a.75.75 0 1 0 1.06 1.06l4-4Z"}))}},44315:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LinkedIn=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.LinkedIn=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},r.a11yHiddenSvgProps,e),i.default.createElement("rect",{x:".5",y:".5",width:"15",height:"15",rx:"3",fill:"#0A66C2"}),i.default.createElement("path",{d:"M12.987 12.988h-2.099V9.7c0-.784-.014-1.793-1.091-1.793-1.094 0-1.261.854-1.261 1.736v3.344H6.437v-6.76h2.015v.924h.028a2.208 2.208 0 0 1 1.989-1.092c2.127 0 2.52 1.4 2.52 3.22l-.002 3.709ZM4.07 5.303a1.218 1.218 0 1 1 0-2.436 1.218 1.218 0 0 1 0 2.436Zm1.05 7.685H3.016V6.227h2.101v6.76Z",fill:"#fff"}))}},73387:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Mail=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Mail=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.5 4h9c.25 0 .485.06.692.169L8.75 7.5a1.25 1.25 0 0 1-1.5 0L2.808 4.169C3.015 4.06 3.251 4 3.5 4ZM2.001 5.438 2 5.5v5A1.5 1.5 0 0 0 3.5 12h9a1.5 1.5 0 0 0 1.5-1.5v-5l-.001-.062L9.65 8.7a2.75 2.75 0 0 1-3.3 0L2.001 5.438ZM.5 5.5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3v-5Z"}))}},34752:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PlayIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.PlayIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 14 14",width:"14",height:"14",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.5 7C12.5 10.0376 10.0376 12.5 7 12.5C3.96243 12.5 1.5 10.0376 1.5 7C1.5 3.96243 3.96243 1.5 7 1.5C10.0376 1.5 12.5 3.96243 12.5 7ZM14 7C14 10.866 10.866 14 7 14C3.13401 14 0 10.866 0 7C0 3.13401 3.13401 0 7 0C10.866 0 14 3.13401 14 7ZM6.5 9.59808L9.5 7.86603C10.1667 7.48113 10.1667 6.51888 9.5 6.13398L6.5 4.40192C5.83333 4.01702 5 4.49815 5 5.26795L5 8.73205C5 9.50185 5.83333 9.98298 6.5 9.59808Z"}))}},70991:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PreviewCloseIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.PreviewCloseIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",d:"M7.357 7.357l9.286 9.286m0-9.286l-9.286 9.286"}))}},58367:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuestionMarkIcon=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.QuestionMarkIcon=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"none"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{d:"M15.5 8C15.5 12.1421 12.1421 15.5 8 15.5C3.85786 15.5 0.5 12.1421 0.5 8C0.5 3.85786 3.85786 0.5 8 0.5C12.1421 0.5 15.5 3.85786 15.5 8Z",stroke:"currentColor",strokeOpacity:"0.15"}),i.default.createElement("path",{opacity:"0.5",fillRule:"evenodd",clipRule:"evenodd",d:"M8.46436 9.92432H7.09473C7.09115 9.72738 7.08936 9.60742 7.08936 9.56445C7.08936 9.12044 7.16276 8.75521 7.30957 8.46875C7.45638 8.18229 7.75 7.86003 8.19043 7.50195C8.63086 7.14388 8.89404 6.90934 8.97998 6.79834C9.11247 6.62288 9.17871 6.42953 9.17871 6.21826C9.17871 5.92464 9.06144 5.6731 8.8269 5.46362C8.59237 5.25415 8.27637 5.14941 7.87891 5.14941C7.49577 5.14941 7.17529 5.25863 6.91748 5.47705C6.65967 5.69548 6.48242 6.02848 6.38574 6.47607L5 6.3042C5.03939 5.66325 5.31242 5.11898 5.81909 4.67139C6.32577 4.22379 6.99088 4 7.81445 4C8.68099 4 9.37028 4.22648 9.88232 4.67944C10.3944 5.13241 10.6504 5.65966 10.6504 6.26123C10.6504 6.59424 10.5564 6.90934 10.3684 7.20654C10.1804 7.50375 9.77849 7.90836 9.1626 8.42041C8.84391 8.68539 8.64608 8.89844 8.56909 9.05957C8.49211 9.2207 8.45719 9.50895 8.46436 9.92432ZM7.09473 11.9546V10.4453H8.604V11.9546H7.09473Z",fill:"currentColor"}))}},12193:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Share=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Share=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{d:"M12.5 5a2.98 2.98 0 0 0-1.976.758L6.45 3.495c.027-.162.05-.325.05-.495a3 3 0 1 0-3 3c.76 0 1.447-.292 1.976-.759L9.55 7.505c-.027.162-.05.326-.05.495 0 .169.023.333.05.495l-4.074 2.264A2.975 2.975 0 0 0 3.5 10a3 3 0 1 0 3 3c0-.17-.023-.333-.05-.495l4.074-2.263A2.98 2.98 0 0 0 12.5 11a3 3 0 1 0 0-6z"}))}},9327:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Success=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Success=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"none"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 3.531c4.781 0 8.719 3.938 8.719 8.719 0 4.816-3.938 8.719-8.719 8.719a8.717 8.717 0 0 1-8.719-8.719c0-4.781 3.903-8.719 8.719-8.719Zm-1.828 13.36c.21.21.598.21.808 0l6.47-6.47a.596.596 0 0 0 0-.808l-.81-.773a.497.497 0 0 0-.773 0l-5.273 5.273-2.496-2.46a.497.497 0 0 0-.774 0l-.808.773a.596.596 0 0 0 0 .808l3.656 3.657Z",fill:"currentColor"}))}},90728:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Telegram=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Telegram=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},r.a11yHiddenSvgProps,e),i.default.createElement("g",{clipPath:"url(#clip0_3048_78838)"},i.default.createElement("circle",{cx:"8",cy:"8",r:"8",fill:"#2AABEE"}),i.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.619 8.013A408.555 408.555 0 0 1 8.452 6.06c2.301-.899 2.78-1.055 3.091-1.06a.571.571 0 0 1 .321.09.32.32 0 0 1 .118.211c.011.06.025.199.014.306-.125 1.23-.664 4.215-.939 5.592-.116.583-.345.778-.566.797-.482.042-.847-.298-1.313-.585-.73-.448-1.142-.728-1.85-1.166-.818-.506-.287-.784.179-1.238.122-.12 2.242-1.93 2.283-2.094.006-.02.01-.097-.038-.137-.049-.04-.12-.027-.172-.016-.073.016-1.238.739-3.495 2.169-.331.213-.63.317-.899.311-.296-.006-.865-.157-1.288-.286-.52-.158-.932-.242-.896-.51.019-.14.224-.284.617-.43Z",fill:"#fff"})),i.default.createElement("defs",null,i.default.createElement("clipPath",{id:"clip0_3048_78838"},i.default.createElement("path",{fill:"#fff",d:"M0 0h16v16H0z"}))))}},92976:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Tick=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Tick=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"none"},r.a11yHiddenSvgProps,e),i.default.createElement("path",{d:"M3 7.75L6.75 11.5L13 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}))}},1827:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Twitter=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.Twitter=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},r.a11yHiddenSvgProps,e),i.default.createElement("circle",{cx:"8",cy:"8",r:"8",fill:"#1D9BF0"}),i.default.createElement("path",{d:"M12.569 6.077c.006.094.006.188.006.283 0 2.895-2.177 6.234-6.158 6.234v-.002A6.073 6.073 0 0 1 3.1 11.61a4.313 4.313 0 0 0 3.203-.908A2.17 2.17 0 0 1 4.281 9.18c.325.064.659.05.977-.037a2.185 2.185 0 0 1-1.736-2.148v-.028c.301.17.638.264.982.275a2.21 2.21 0 0 1-.67-2.926 6.118 6.118 0 0 0 4.46 2.29 2.21 2.21 0 0 1 .627-2.094 2.148 2.148 0 0 1 3.062.095c.485-.097.95-.277 1.374-.532-.161.507-.5.938-.951 1.212a4.263 4.263 0 0 0 1.243-.345c-.29.44-.657.825-1.08 1.135Z",fill:"#fff"}))}},71621:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VK=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(88749);t.VK=function(e){return i.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"currnetColor"},r.a11yHiddenSvgProps,e),i.default.createElement("g",{clipPath:"url(#clip0_3274_86056)"},i.default.createElement("path",{d:"M.5 7.7c0-3.394 0-5.091 1.054-6.146C2.61.5 4.306.5 7.7.5h.6c3.394 0 5.091 0 6.146 1.054C15.5 2.61 15.5 4.306 15.5 7.7v.6c0 3.394 0 5.091-1.054 6.146C13.39 15.5 11.694 15.5 8.3 15.5h-.6c-3.394 0-5.091 0-6.146-1.054C.5 13.39.5 11.694.5 8.3v-.6Z",fill:"#07F"}),i.default.createElement("path",{d:"M8.516 11.542c-3.663 0-5.753-2.51-5.84-6.69h1.835c.06 3.068 1.413 4.367 2.485 4.635V4.853h1.727v2.645c1.058-.114 2.17-1.32 2.545-2.645h1.727c-.287 1.634-1.493 2.839-2.35 3.334.857.402 2.23 1.454 2.752 3.355h-1.902c-.408-1.272-1.426-2.256-2.772-2.39v2.39h-.207Z",fill:"#fff"})),i.default.createElement("defs",null,i.default.createElement("clipPath",{id:"clip0_3274_86056"},i.default.createElement("path",{fill:"#fff",d:"M0 0h16v16H0z"}))))}},40923:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(50735),t),(0,i.__exportStar)(n(52162),t),(0,i.__exportStar)(n(85607),t),(0,i.__exportStar)(n(99959),t),(0,i.__exportStar)(n(66393),t),(0,i.__exportStar)(n(69950),t),(0,i.__exportStar)(n(13215),t),(0,i.__exportStar)(n(30563),t),(0,i.__exportStar)(n(34752),t),(0,i.__exportStar)(n(70991),t),(0,i.__exportStar)(n(58367),t),(0,i.__exportStar)(n(9327),t),(0,i.__exportStar)(n(96924),t),(0,i.__exportStar)(n(12193),t),(0,i.__exportStar)(n(3749),t)},3749:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(31378),t),(0,i.__exportStar)(n(90728),t),(0,i.__exportStar)(n(1827),t),(0,i.__exportStar)(n(71621),t),(0,i.__exportStar)(n(44315),t),(0,i.__exportStar)(n(73387),t)},24782:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useOnFocusOutside=t.configure=t.Lang=t.getComponentName=void 0;var i=n(15791);(0,i.__exportStar)(n(93920),t),(0,i.__exportStar)(n(31859),t),(0,i.__exportStar)(n(61426),t),(0,i.__exportStar)(n(148),t),(0,i.__exportStar)(n(78019),t),(0,i.__exportStar)(n(52756),t),(0,i.__exportStar)(n(5698),t),(0,i.__exportStar)(n(48283),t),(0,i.__exportStar)(n(6013),t),(0,i.__exportStar)(n(97641),t),(0,i.__exportStar)(n(45338),t),(0,i.__exportStar)(n(77700),t),(0,i.__exportStar)(n(95885),t),(0,i.__exportStar)(n(38995),t),(0,i.__exportStar)(n(94291),t),(0,i.__exportStar)(n(34327),t),(0,i.__exportStar)(n(96225),t),(0,i.__exportStar)(n(27480),t),(0,i.__exportStar)(n(43299),t),(0,i.__exportStar)(n(17029),t),(0,i.__exportStar)(n(63898),t),(0,i.__exportStar)(n(85190),t),(0,i.__exportStar)(n(56688),t),(0,i.__exportStar)(n(13080),t),(0,i.__exportStar)(n(51700),t),(0,i.__exportStar)(n(1541),t),(0,i.__exportStar)(n(43977),t),(0,i.__exportStar)(n(70249),t),(0,i.__exportStar)(n(16285),t),(0,i.__exportStar)(n(64621),t),(0,i.__exportStar)(n(46780),t),(0,i.__exportStar)(n(66638),t),(0,i.__exportStar)(n(33393),t),(0,i.__exportStar)(n(88402),t),(0,i.__exportStar)(n(21618),t),(0,i.__exportStar)(n(6374),t),(0,i.__exportStar)(n(28121),t),(0,i.__exportStar)(n(25074),t),(0,i.__exportStar)(n(16844),t),(0,i.__exportStar)(n(24345),t),(0,i.__exportStar)(n(84117),t),(0,i.__exportStar)(n(17526),t),(0,i.__exportStar)(n(62556),t),(0,i.__exportStar)(n(66923),t),(0,i.__exportStar)(n(14077),t),(0,i.__exportStar)(n(67723),t),(0,i.__exportStar)(n(95716),t),(0,i.__exportStar)(n(69664),t),(0,i.__exportStar)(n(7721),t),(0,i.__exportStar)(n(2865),t),(0,i.__exportStar)(n(81242),t);var r=n(35207);Object.defineProperty(t,"getComponentName",{enumerable:!0,get:function(){return r.getComponentName}}),(0,i.__exportStar)(n(28971),t),(0,i.__exportStar)(n(91263),t),(0,i.__exportStar)(n(49310),t),(0,i.__exportStar)(n(45031),t),(0,i.__exportStar)(n(12963),t);var o=n(64340);Object.defineProperty(t,"Lang",{enumerable:!0,get:function(){return o.Lang}}),Object.defineProperty(t,"configure",{enumerable:!0,get:function(){return o.configure}}),(0,i.__exportStar)(n(39818),t),(0,i.__exportStar)(n(54480),t),(0,i.__exportStar)(n(25700),t),(0,i.__exportStar)(n(93399),t),(0,i.__exportStar)(n(72842),t),(0,i.__exportStar)(n(77429),t);var a=n(8675);Object.defineProperty(t,"useOnFocusOutside",{enumerable:!0,get:function(){return a.useOnFocusOutside}}),(0,i.__exportStar)(n(11170),t),(0,i.__exportStar)(n(44081),t)},34362:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MobileContext=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r={mobile:!1,platform:n(92113).Platform.BROWSER,useHistory:function(){return{action:"",replace:function(){},push:function(){},goBack:function(){}}},useLocation:function(){return{pathname:"",search:"",hash:""}},setMobile:function(){},setPlatform:function(){}};t.MobileContext=i.default.createContext(r)},99496:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.MobileProvider=void 0;var r=n(15791),o=(0,r.__importDefault)(n(4519)),a=n(34362),s=n(92113);function u(){return{action:"",replace:function(){},push:function(){},goBack:function(){}}}function l(){return{pathname:"",search:"",hash:""}}t.MobileProvider=function(e){var t=e.mobile,n=void 0!==t&&t,c=e.platform,d=void 0===c?s.Platform.BROWSER:c,h=e.useHistory,f=void 0===h?u:h,p=e.useLocation,v=void 0===p?l:p,g=e.children,m=o.default.useState(n),_=i(m,2),y=_[0],b=_[1],w=o.default.useState(d),C=i(w,2),k=C[0],S=C[1],x=o.default.useCallback((function(){var e,t=f(),n=t.goBack,i=t.back,o=(0,r.__rest)(t,["goBack","back"]);return e="function"===typeof n?n:"function"===typeof i?i:function(){},Object.assign(Object.assign({},o),{goBack:e})}),[f]);document.body.classList.toggle(s.rootMobileClassName,y);var L=o.default.useMemo((function(){return{mobile:y,setMobile:b,platform:k,setPlatform:S,useLocation:v,useHistory:x}}),[y,k,v,x]);return o.default.createElement(a.MobileContext.Provider,{value:L},g)}},92113:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.rootMobileClassName=t.Platform=void 0;var i=n(90);!function(e){e.IOS="ios",e.ANDROID="android",e.BROWSER="browser"}(t.Platform||(t.Platform={}));var r=(0,i.block)("root");t.rootMobileClassName=r({mobile:!0}).split(/\s+/)[1]},31859:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(34362),t),(0,i.__exportStar)(n(99496),t),(0,i.__exportStar)(n(43499),t),(0,i.__exportStar)(n(49374),t),(0,i.__exportStar)(n(36809),t),(0,i.__exportStar)(n(92113),t)},43499:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useMobile=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(34362);t.useMobile=function(){var e=i.default.useContext(r.MobileContext);return[e.mobile,e.setMobile]}},49374:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePlatform=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(34362);t.usePlatform=function(){var e=i.default.useContext(r.MobileContext);return[e.platform,e.setPlatform]}},36809:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.withMobile=void 0;var s=(0,n(15791).__importDefault)(n(4519)),u=n(35207),l=n(34362);t.withMobile=function(e){var t,n=(0,u.getComponentName)(e);return t=function(t){o(u,t);var n=a(u);function u(){return i(this,u),n.apply(this,arguments)}return r(u,[{key:"render",value:function(){return s.default.createElement(e,Object.assign({},this.props,{mobile:this.context.mobile,platform:this.context.platform,useHistory:this.context.useHistory,useLocation:this.context.useLocation,setMobile:this.context.setMobile,setPlatform:this.context.setPlatform}))}}]),u}(s.default.Component),t.displayName="withMobile(".concat(n,")"),t.contextType=l.MobileContext,t}},90215:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeContext=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r={theme:n(47439).DEFAULT_THEME,setTheme:function(){}};t.ThemeContext=i.default.createContext(r),t.ThemeContext.displayName="ThemeContext"},6213:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeProvider=void 0;var r=(0,n(15791).__importStar)(n(4519)),o=n(90),a=n(47439),s=n(90215),u=n(11146),l=n(34018),c=n(59785),d=n(46006),h=(0,o.block)(a.ROOT_CLASS_NAME);function f(e){var t=e.theme,n=void 0===t?a.DEFAULT_THEME:t,o=e.systemLightTheme,f=void 0===o?a.DEFAULT_LIGHT_THEME:o,p=e.systemDarkTheme,v=void 0===p?a.DEFAULT_DARK_THEME:p,g=e.nativeScrollbar,m=void 0!==g&&g,_=e.scoped,y=void 0!==_&&_,b=e.rootClassName,w=void 0===b?"":b,C=e.children,k=(0,r.useState)(n),S=i(k,2),x=S[0],L=S[1],E=(0,r.useState)({systemLightTheme:f,systemDarkTheme:v}),N=i(E,2),D=N[0],M=D.systemLightTheme,T=D.systemDarkTheme,O=N[1];(0,r.useLayoutEffect)((function(){L(n),O({systemLightTheme:f,systemDarkTheme:v})}),[n,f,v]);var I="light"===(0,d.useSystemTheme)()?M:T,A="system"===x?I:x;(0,r.useEffect)((function(){y||(0,c.updateBodyClassName)(A,{"native-scrollbar":m},w)}),[m,A,y,w]);var P=(0,r.useMemo)((function(){return{theme:x,themeValue:A,setTheme:L}}),[x,A]),R=(0,r.useMemo)((function(){return{themeValue:A}}),[A]),Z=(0,r.useMemo)((function(){return{themeSettings:{systemLightTheme:M,systemDarkTheme:T},setThemeSettings:O}}),[M,T]);return r.default.createElement(s.ThemeContext.Provider,{value:P},r.default.createElement(l.ThemeSettingsContext.Provider,{value:Z},r.default.createElement(u.ThemeValueContext.Provider,{value:R},y?r.default.createElement("div",{className:h({theme:A,"native-scrollbar":m},w)},C):C)))}t.ThemeProvider=f,f.displayName="ThemeProvider"},34018:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeSettingsContext=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.ThemeSettingsContext=i.default.createContext(void 0),t.ThemeSettingsContext.displayName="ThemeSettingsContext"},11146:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeValueContext=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.ThemeValueContext=i.default.createContext({themeValue:"light"}),t.ThemeValueContext.displayName="ThemeValueContext"},47439:function(e,t,n){"use strict";var i=n(319).default;Object.defineProperty(t,"__esModule",{value:!0}),t.ROOT_CLASS_NAME=t.THEMES=t.DARK_THEMES=t.LIGHT_THEMES=t.DEFAULT_DARK_THEME=t.DEFAULT_LIGHT_THEME=t.DEFAULT_THEME=void 0,t.DEFAULT_THEME="system",t.DEFAULT_LIGHT_THEME="light",t.DEFAULT_DARK_THEME="dark",t.LIGHT_THEMES=["light","light-hc"],t.DARK_THEMES=["dark","dark-hc"],t.THEMES=[].concat(i(t.LIGHT_THEMES),i(t.DARK_THEMES)),t.ROOT_CLASS_NAME="root"},94940:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDarkMediaMatch=void 0;t.getDarkMediaMatch=function(){return window.matchMedia("(prefers-color-scheme: dark)")}},68280:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSystemTheme=void 0;var i=n(94940);t.getSystemTheme=function(){return"object"===typeof window&&(0,i.getDarkMediaMatch)().matches?"dark":"light"}},96326:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getThemeType=void 0;var i=n(47439);t.getThemeType=function(e){return i.DARK_THEMES.includes(e)?"dark":"light"}},61426:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(15791);(0,i.__exportStar)(n(90215),t),(0,i.__exportStar)(n(11146),t),(0,i.__exportStar)(n(6213),t),(0,i.__exportStar)(n(34018),t),(0,i.__exportStar)(n(60220),t),(0,i.__exportStar)(n(11583),t),(0,i.__exportStar)(n(95004),t),(0,i.__exportStar)(n(65322),t),(0,i.__exportStar)(n(95913),t),(0,i.__exportStar)(n(67010),t),(0,i.__exportStar)(n(96326),t)},59785:function(e,t,n){"use strict";var i=n(59713).default,r=n(63038).default,o=n(319).default;Object.defineProperty(t,"__esModule",{value:!0}),t.updateBodyClassName=void 0;var a=n(90),s=n(47439),u=(0,a.block)(s.ROOT_CLASS_NAME),l=u(),c={"native-scrollbar":!1};t.updateBodyClassName=function(e,t,n){var s=document.body;s.classList.contains(l)||s.classList.add(l),n&&n.split(" ").forEach((function(e){e&&!s.classList.contains(e)&&s.classList.add(e)})),o(s.classList).forEach((function(e){e.startsWith((0,a.modsClassName)(u({theme:!0})))&&s.classList.remove(e)})),s.classList.add((0,a.modsClassName)(u({theme:e})));for(var d=0,h=Object.entries(Object.assign(Object.assign({},c),t));d<h.length;d++){var f=r(h[d],2),p=f[0],v=f[1];s.classList.toggle((0,a.modsClassName)(u(i({},p,!0))),v)}}},46006:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useSystemTheme=void 0;var r=n(4519),o=n(94940),a=n(68280);t.useSystemTheme=function(){var e=(0,r.useState)((0,a.getSystemTheme)()),t=i(e,2),n=t[0],s=t[1];return(0,r.useEffect)((function(){var e=function(e,t){var n="function"!==typeof e.addEventListener;return n?e.addListener(t):e.addEventListener("change",t),function(){n?e.removeListener(t):e.removeEventListener("change",t)}}((0,o.getDarkMediaMatch)(),(function(e){s(e.matches?"dark":"light")}));return function(){return e()}}),[]),n}},60220:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useTheme=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(90215);t.useTheme=function(){var e=i.default.useContext(r.ThemeContext);return[e.theme,e.setTheme]}},95004:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useThemeSettings=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(34018);t.useThemeSettings=function(){var e=i.default.useContext(r.ThemeSettingsContext);if(void 0===e)throw new Error("useThemeSettings must be used within ThemeProvider");return[e.themeSettings,e.setThemeSettings]}},65322:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useThemeType=void 0;var i=n(96326),r=n(11583);t.useThemeType=function(){var e=(0,r.useThemeValue)();return(0,i.getThemeType)(e)}},11583:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useThemeValue=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(11146);t.useThemeValue=function(){return i.default.useContext(r.ThemeValueContext).themeValue}},95913:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.withTheme=void 0;var s=(0,n(15791).__importDefault)(n(4519)),u=n(35207),l=n(90215);t.withTheme=function(e){var t,n=(0,u.getComponentName)(e);return t=function(t){o(u,t);var n=a(u);function u(){return i(this,u),n.apply(this,arguments)}return r(u,[{key:"render",value:function(){return s.default.createElement(e,Object.assign({},this.props,{theme:this.context.theme,setTheme:this.context.setTheme}))}}]),u}(s.default.Component),t.displayName="withTheme(".concat(n,")"),t.contextType=l.ThemeContext,t}},67010:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default,o=n(2205).default,a=n(99842).default;Object.defineProperty(t,"__esModule",{value:!0}),t.withThemeValue=void 0;var s=(0,n(15791).__importDefault)(n(4519)),u=n(35207),l=n(11146);t.withThemeValue=function(e){var t,n=(0,u.getComponentName)(e);return t=function(t){o(u,t);var n=a(u);function u(){return i(this,u),n.apply(this,arguments)}return r(u,[{key:"render",value:function(){return s.default.createElement(e,Object.assign({},this.props,{themeValue:this.context.themeValue}))}}]),u}(s.default.Component),t.displayName="withThemeValue(".concat(n,")"),t.contextType=l.ThemeValueContext,t}},93920:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},54608:function(e,t,n){"use strict";var i=n(319).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useParentFocusTrap=t.FocusTrap=void 0;var r=(0,n(15791).__importStar)(n(4519)),o=n(69171),a=n(59548),s=n(72842),u=r.default.createContext(void 0);t.FocusTrap=function(e){var t=e.children,n=e.enabled,a=void 0===n||n,l=e.disableAutoFocus,c=r.default.useRef(null),d=r.default.useRef(!l);r.default.useEffect((function(){d.current=!l}));var h=r.default.useRef();h.current||(h.current=(0,o.createFocusTrap)([],{initialFocus:function(){return d.current&&function(e){if(null===e)throw new Error("");if(!(document.activeElement instanceof HTMLElement)||!e.contains(document.activeElement))return e.hasAttribute("tabIndex")||e.setAttribute("tabIndex","-1"),e;return document.activeElement}(c.current)},fallbackFocus:function(){return c.current},returnFocusOnDeactivate:!1,escapeDeactivates:!1,clickOutsideDeactivates:!1,allowOutsideClick:!0}));var f=r.default.useRef({}),p=r.default.useCallback((function(){var e;null===(e=h.current)||void 0===e||e.updateContainerElements([c.current].concat(i(Object.values(f.current))))}),[]),v=r.default.useMemo((function(){return{addNode:function(e,t){var n;f.current[e]===t||(null===(n=c.current)||void 0===n?void 0:n.contains(t))||(f.current[e]=t,p())},removeNode:function(e){f.current[e]&&(delete f.current[e],p())}}}),[p]),g=r.default.useCallback((function(e){var t,n;a&&e?(c.current=e,p(),null===(t=h.current)||void 0===t||t.activate()):(null===(n=h.current)||void 0===n||n.deactivate(),c.current=null)}),[a,p]),m=r.default.Children.only(t);if(!r.default.isValidElement(m))throw new Error("Children must contain only one valid element");var _=m.ref,y=(0,s.useForkRef)(g,_);return r.default.createElement(u.Provider,{value:v},r.default.cloneElement(m,{ref:y}))},t.useParentFocusTrap=function(){var e=(0,r.useContext)(u),t=(0,a.useUniqId)();return r.default.useMemo((function(){if(e)return function(n){n?e.addNode(t,n):e.removeNode(t)}}),[e,t])}},593:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default;Object.defineProperty(t,"__esModule",{value:!0}),t.layerManager=void 0;var o=function(){function e(){var t=this;i(this,e),this.stack=[],this.handleDocumentKeyDown=function(e){var n,i,r;if("Escape"===e.code){var o=t.getTopLayer();o.disableEscapeKeyDown||(null===(n=o.onEscapeKeyDown)||void 0===n||n.call(o,e),null===(i=o.onClose)||void 0===i||i.call(o,e,"escapeKeyDown"))}if("Enter"===e.code){var a=t.getTopLayer();null===(r=a.onEnterKeyDown)||void 0===r||r.call(a,e)}},this.handleDocumentClick=function(e){var n,i,r,o=null;if(t.mouseDownLayerTarget){if(r=t.mouseDownLayerTarget.layer,o=t.mouseDownLayerTarget.target,t.mouseDownLayerTarget=void 0,!t.stack.includes(r))return}else r=t.getTopLayer();!r.disableOutsideClick&&t.isOutsideClick(r,e,o)&&(null===(n=r.onOutsideClick)||void 0===n||n.call(r,e),null===(i=r.onClose)||void 0===i||i.call(r,e,"outsideClick"))},this.handleDocumentMouseDown=function(e){var n=t.getTopLayer();n&&(t.mouseDownLayerTarget={layer:n,target:e.target})}}return r(e,[{key:"add",value:function(e){this.stack.push(e),1===this.stack.length&&this.addListeners()}},{key:"remove",value:function(e){var t=this.stack.indexOf(e);this.stack.splice(t,1),0===this.stack.length&&this.removeListeners()}},{key:"addListeners",value:function(){document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("click",this.handleDocumentClick,!0),document.addEventListener("mousedown",this.handleDocumentMouseDown,!0)}},{key:"removeListeners",value:function(){document.removeEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("click",this.handleDocumentClick,!0),document.removeEventListener("mousedown",this.handleDocumentMouseDown,!0)}},{key:"getTopLayer",value:function(){return this.stack[this.stack.length-1]}},{key:"isOutsideClick",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=e.contentRefs||[],r=t.target,o="function"===typeof t.composedPath?t.composedPath():[];return i.length>0&&!i.some((function(e){var t,i,a,s;return(null===(i=null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.contains)||void 0===i?void 0:i.call(t,r))||(null===(s=null===(a=null===e||void 0===e?void 0:e.current)||void 0===a?void 0:a.contains)||void 0===s?void 0:s.call(a,n))||o.includes(null===e||void 0===e?void 0:e.current)}))}}]),e}();t.layerManager=new o},39818:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PortalProvider=t.PortalContext=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.PortalContext=i.default.createContext({current:null}),t.PortalContext.displayName="PortalContext";t.PortalProvider=function(e){var n=e.container,r=e.children;return i.default.createElement(t.PortalContext.Provider,{value:n},r)}},2865:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatClass=t.parseClass=void 0,t.parseClass=function(e){var t=e.split("_").filter((function(e){return e}));return e.includes("__")?{block:t[0],element:t[1],mod:t[2]?{key:t[2],value:!t[3]||t[3]}:void 0}:{block:t[0],mod:t[1]?{key:t[1],value:!t[2]||t[2]}:void 0}},t.formatClass=function(e){var t,n=e.block;return e.element&&(n="".concat(n,"__").concat(e.element)),(null===(t=e.mod)||void 0===t?void 0:t.value)&&(n="".concat(n,"_").concat(e.mod.key),"string"===typeof e.mod.value&&(n="".concat(n,"_").concat(e.mod.value))),n}},90:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.modsClassName=t.blockNew=t.block=t.NAMESPACE_NEW=t.NAMESPACE=void 0;var i=(0,n(15791).__importDefault)(n(78243));t.NAMESPACE="yc-",t.NAMESPACE_NEW="g-",t.block=function(e){return(0,i.default)("".concat(t.NAMESPACE).concat(e))},t.blockNew=function(e){return(0,i.default)("".concat(t.NAMESPACE_NEW).concat(e))},t.modsClassName=function(e){return e.split(/\s(.*)/)[1]}},58538:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isIcon=t.getUniqId=void 0;var i=n(90),r=n(80495),o=n(96225),a=1;t.getUniqId=function(){return"".concat(i.NAMESPACE,"uniq-").concat(a++)},t.isIcon=(0,r.isOfType)(o.Icon)},64340:function(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.getConfig=t.subscribeConfigure=t.configure=t.Lang=void 0,function(e){e.Ru="ru",e.En="en"}(n=t.Lang||(t.Lang={}));var i=[],r={lang:n.En};t.configure=function(e){Object.assign(r,e),i.forEach((function(e){e(r)}))};t.subscribeConfigure=function(e){return i.push(e),function(){i=i.filter((function(t){return t!==e}))}};t.getConfig=function(){return r}},81242:function(e,t,n){"use strict";var i=n(34575).default,r=n(93913).default;Object.defineProperty(t,"__esModule",{value:!0}),t.eventBroker=t.EventBroker=void 0;var o=n(15791),a=n(90),s=function(){function e(t){i(this,e),this.subscriptions=[],this.componentPrefix=t}return r(e,[{key:"subscribe",value:function(e){this.subscriptions.push(e)}},{key:"unsubscribe",value:function(e){var t=this.subscriptions.indexOf(e);t>-1&&this.subscriptions.splice(t,1)}},{key:"publish",value:function(e){var t=this,n=e.componentId,i=(0,o.__rest)(e,["componentId"]);this.subscriptions.forEach((function(e){return e(Object.assign(Object.assign({},i),{componentId:t.componentPrefix?"".concat(t.componentPrefix).concat(n):n}))}))}},{key:"withEventPublisher",value:function(e,t){var n=this;return function(i){n.publish(Object.assign(Object.assign({},i),{componentId:e,qa:t}))}}}]),e}();t.EventBroker=s,t.eventBroker=new s(a.NAMESPACE)},35207:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getComponentName=void 0,t.getComponentName=function(e){return e.displayName||e.name||"Component"}},80495:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isOfType=void 0;var i=n(4519);t.isOfType=function(e){return function(t){if(!(0,i.isValidElement)(t))return!1;var n=t.type;return n===e||n.displayName===e.displayName}}},55138:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.registerKeyset=void 0;var r=n(28191);t.registerKeyset=function(e,t){return Object.entries(e).forEach((function(e){var n=i(e,2),o=n[0],a=n[1];return r.i18n.registerKeyset(o,t,a)})),r.i18n.keyset(t)}},77429:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setRef=void 0,t.setRef=function(e,t){"function"===typeof e?e(t):e&&(e.current=t)}},88749:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.a11yHiddenSvgProps=void 0,t.a11yHiddenSvgProps={"aria-hidden":!0}},17858:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getCSSTransitionClassNames=void 0;var i=n(90);t.getCSSTransitionClassNames=function(e){return{appear:(0,i.modsClassName)(e({appear:!0})),appearActive:(0,i.modsClassName)(e({appear:"active"})),appearDone:(0,i.modsClassName)(e({appear:"done"})),enter:(0,i.modsClassName)(e({enter:!0})),enterActive:(0,i.modsClassName)(e({enter:"active"})),enterDone:(0,i.modsClassName)(e({enter:"done"})),exit:(0,i.modsClassName)(e({exit:!0})),exitActive:(0,i.modsClassName)(e({exit:"active"})),exitDone:(0,i.modsClassName)(e({exit:"done"}))}}},24781:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isFunction=void 0;t.isFunction=function(e){return"function"===typeof e}},91263:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useBodyScrollLock=void 0;var i,r=(0,n(15791).__importDefault)(n(4519)),o=0;t.useBodyScrollLock=function(e){var t=e.enabled;r.default.useLayoutEffect((function(){if(t)return 1===++o&&function(){var e=window.innerWidth-document.documentElement.clientWidth,t=window.innerHeight-document.documentElement.clientHeight,n=function(){var e=window.getComputedStyle(document.body);return{top:Number.parseFloat(e.paddingTop),right:Number.parseFloat(e.paddingRight),bottom:Number.parseFloat(e.paddingBottom),left:Number.parseFloat(e.paddingLeft)}}();i=document.body.style.cssText,document.body.style.overflow="hidden",e&&(document.body.style.paddingRight="".concat(n.right+e,"px"));t&&(document.body.style.paddingBottom="".concat(n.bottom+t,"px"))}(),function(){0===--o&&(i?document.body.style.cssText=i:document.body.removeAttribute("style"))}}),[t])}},39318:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useBoolean=void 0;var r=n(4519);t.useBoolean=function(e){var t=(0,r.useState)(e),n=i(t,2),o=n[0],a=n[1];return[o,(0,r.useCallback)((function(){return a(!0)}),[]),(0,r.useCallback)((function(){return a(!1)}),[]),(0,r.useCallback)((function(){return a((function(e){return!e}))}),[])]}},38212:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useCheckbox=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(72842),a=n(81242);t.useCheckbox=function(e){var t=e.name,n=e.value,s=e.id,u=e.defaultChecked,l=e.checked,c=e.indeterminate,d=e.onUpdate,h=e.onChange,f=e.controlRef,p=e.controlProps,v=e.onFocus,g=e.onBlur,m=e.disabled,_=r.default.useRef(null),y=r.default.useState(null!==u&&void 0!==u&&u),b=i(y,2),w=b[0],C=b[1],k="boolean"===typeof l,S=k?l:w,x=!c&&l,L=c?"mixed":S,E=(0,o.useForkRef)(f,_);r.default.useLayoutEffect((function(){_.current&&(_.current.indeterminate=Boolean(c))}),[c]);var N=r.default.useCallback((function(e){a.eventBroker.publish({componentId:"Checkbox",eventId:"click",domEvent:e,meta:{checked:e.target.checked}})}),[]);return{checked:S,inputProps:Object.assign(Object.assign({},p),{name:t,value:n,id:s,onFocus:v,onBlur:g,disabled:m,type:"checkbox",onChange:function(e){k||C(e.target.checked),h&&h(e),d&&d(e.target.checked)},onClickCapture:N,defaultChecked:u,checked:x,"aria-checked":L,ref:E})}}},26739:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useCloseOnTimeout=void 0;var r=n(37200),o=n(75210);t.useCloseOnTimeout=function(e){var t=e.onClose,n=e.timeout,a=(0,r.useHover)(),s=i(a,3),u=s[0],l=s[1],c=s[2];return(0,o.useTimeout)(t,c?null:n),{onMouseOver:u,onMouseLeave:l}}},68371:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useConditionallyControlledState=void 0;var i=n(33087);Object.defineProperty(t,"useConditionallyControlledState",{enumerable:!0,get:function(){return i.useConditionallyControlledState}})},33087:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useConditionallyControlledState=void 0;var i=n(36783);t.useConditionallyControlledState=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0!==e&&void 0!==t,o=(0,i.useStateWithCallback)(e||n,t);return r?[e,t]:o}},20813:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useElementSize=void 0;var r=n(15791),o=n(4519),a=(0,r.__importDefault)(n(81451)),s=(0,r.__importDefault)(n(17571)),u=16;t.useElementSize=function(e,t){var n=(0,o.useState)({width:0,height:0}),r=i(n,2),l=r[0],c=r[1];return(0,o.useLayoutEffect)((function(){if(null===e||void 0===e?void 0:e.current){var t=new a.default((0,s.default)((function(e){if(Array.isArray(e)){var t=e[0];if(t.borderBoxSize){var n=t.borderBoxSize[0]?t.borderBoxSize[0]:t.borderBoxSize;c({width:Math.round(n.inlineSize),height:Math.round(n.blockSize)})}else{var i=t.target;c({width:Math.round(i.offsetWidth),height:Math.round(i.offsetHeight)})}}}),u));return t.observe(e.current),function(){t.disconnect()}}}),[e,t]),l}},49310:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useEventBroker=void 0;var i=n(4519),r=n(81242);t.useEventBroker=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.eventBroker;(0,i.useEffect)((function(){return t.subscribe(e),function(){return t.unsubscribe(e)}}),[t,e])}},44081:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useFileInput=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.useFileInput=function(e){var t=e.onUpdate,n=e.onChange,r=i.default.useRef(null),o=i.default.useCallback((function(e){null===n||void 0===n||n(e),null===t||void 0===t||t(Array.from(e.target.files||[])),e.target.value=""}),[n,t]),a=i.default.useCallback((function(){var e;null===(e=r.current)||void 0===e||e.click()}),[]);return i.default.useMemo((function(){return{controlProps:{ref:r,type:"file",tabIndex:-1,style:{opacity:0,position:"absolute",width:1,height:1},onChange:o},triggerProps:{onClick:a}}}),[o,a])}},72842:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useForkRef=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(77429);t.useForkRef=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return i.default.useMemo((function(){return t.every((function(e){return null===e||void 0===e}))?null:function(e){for(var n=0,i=t;n<i.length;n++){var o=i[n];(0,r.setRef)(o,e)}}}),t)}},37200:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useHover=void 0;var r=(0,n(15791).__importDefault)(n(4519));t.useHover=function(){var e=r.default.useState(!1),t=i(e,2),n=t[0],o=t[1];return[r.default.useCallback((function(){o(!0)}),[]),r.default.useCallback((function(){o(!1)}),[]),n]}},45031:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useLayer=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(593);t.useLayer=function(e){var t=e.open,n=e.disableEscapeKeyDown,o=e.disableOutsideClick,a=e.onEscapeKeyDown,s=e.onEnterKeyDown,u=e.onOutsideClick,l=e.onClose,c=e.contentRefs,d=e.enabled,h=void 0===d||d,f=i.default.useRef({disableEscapeKeyDown:n,disableOutsideClick:o,onEscapeKeyDown:a,onEnterKeyDown:s,onOutsideClick:u,onClose:l,contentRefs:c});i.default.useEffect((function(){Object.assign(f.current,{disableEscapeKeyDown:n,disableOutsideClick:o,onEscapeKeyDown:a,onEnterKeyDown:s,onOutsideClick:u,onClose:l,contentRefs:c,enabled:h})}),[n,o,a,s,u,l,c,h]),i.default.useEffect((function(){if(t&&h){var e=f.current;return r.layerManager.add(e),function(){r.layerManager.remove(e)}}}),[t,h])}},93399:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useListNavigation=void 0;var i=n(63456);Object.defineProperty(t,"useListNavigation",{enumerable:!0,get:function(){return i.useListNavigation}})},45373:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.moveBack=void 0,t.moveBack=function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3?arguments[3]:void 0,o=(t.length+n-i%t.length)%t.length;return r&&r(t[o])?e(t,o,1,r):o}},46259:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.moveForward=void 0,t.moveForward=function e(t,n){var i=arguments.length>3?arguments[3]:void 0,r=(n+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:1))%t.length;return i&&i(t[r])?e(t,r,1,i):r}},63456:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useListNavigation=void 0;var r=n(4519),o=n(45373),a=n(46259);t.useListNavigation=function(e){var t=e.items,n=e.skip,s=e.pageSize,u=e.processHomeKey,l=void 0===u||u,c=e.processEndKey,d=void 0===c||c,h=e.anchorRef,f=e.disabled,p=void 0!==f&&f,v=e.initialValue,g=void 0===v?-1:v,m=e.onAnchorKeyDown,_=(0,r.useState)(g),y=i(_,2),b=y[0],w=y[1],C=(0,r.useCallback)((function(){w(g)}),[g]);return(0,r.useEffect)((function(){t&&C()}),[t,C]),(0,r.useLayoutEffect)((function(){if(!p&&t.some((function(e){return!(null===n||void 0===n?void 0:n(e))}))){var e=null===h||void 0===h?void 0:h.current;if(e){var i=function(e){if(!1!==(null===m||void 0===m?void 0:m(b,e)))switch(e.key){case"ArrowDown":case"ArrowRight":e.preventDefault(),w((function(e){return(0,a.moveForward)(t,e,1,n)}));break;case"ArrowUp":case"ArrowLeft":e.preventDefault(),w((function(e){return(0,o.moveBack)(t,e,1,n)}));break;case"PageDown":if(!s)return;e.preventDefault(),w((function(e){return(0,a.moveForward)(t,e,s,n)}));break;case"PageUp":if(!s)return;e.preventDefault(),w((function(e){return(0,o.moveBack)(t,e,s,n)}));break;case"Home":if(!l)return;e.preventDefault(),w((function(e){return(0,o.moveBack)(t,e,e,n)}));break;case"End":if(!d)return;e.preventDefault(),w((function(e){return(0,o.moveBack)(t,e,e+1,n)}))}};return e.addEventListener("keydown",i),function(){e.removeEventListener("keydown",i)}}}}),[b,h,p,t,m,s,d,l,n]),{activeItemIndex:b,setActiveItemIndex:w,reset:C}}},8675:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useOnFocusOutside=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.useOnFocusOutside=function(e){var t=e.onFocusOutside,n=e.enabled,r=void 0===n||n,o=i.default.useRef(!1);return i.default.useEffect((function(){if(r){var e=function(e){o.current=!1,window.setTimeout((function(){o.current||t(e)}),0)};return window.addEventListener("focus",e,{capture:!0}),function(){window.removeEventListener("focus",e,{capture:!0})}}}),[r,t]),{onFocus:i.default.useCallback((function(){o.current=!0}),[]),onBlur:i.default.useCallback((function(e){!r||null!==e.relatedTarget&&e.relatedTarget!==document.body||t(e.nativeEvent)}),[t,r])}}},54740:function(e,t,n){"use strict";var i=n(319).default,r=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.usePopper=void 0;var o=(0,n(15791).__importDefault)(n(4519)),a=n(14126),s=["bottom-start","bottom","bottom-end","top-start","top","top-end","right-start","right","right-end","left-start","left","left-end"];t.usePopper=function(e){var t=e.anchorRef,n=e.placement,u=void 0===n?s:n,l=e.offset,c=e.modifiers,d=void 0===c?[]:c,h=e.strategy,f=e.altBoundary,p=o.default.useState(null),v=r(p,2),g=v[0],m=v[1],_=o.default.useState(null),y=r(_,2),b=y[0],w=y[1],C=Array.isArray(u)?u:[u],k=(0,a.usePopper)(null===t||void 0===t?void 0:t.current,g,{strategy:h,modifiers:[{name:"arrow",options:{element:b}},{name:"offset",options:{offset:l,altBoundary:f}},{name:"flip",options:{fallbackPlacements:C.slice(1),altBoundary:f}}].concat(i(d)),placement:C[0]});return{attributes:k.attributes,styles:k.styles,setPopperRef:m,setArrowRef:w}}},54480:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePortalContainer=void 0;var i=n(4519),r=n(39818);t.usePortalContainer=function(){var e,t=(0,i.useContext)(r.PortalContext),n=null;return"object"===typeof window&&(n=window.document.body),null!==(e=t.current)&&void 0!==e?e:n}},82550:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useRadio=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(59548),a=n(72842),s=n(81242);t.useRadio=function(e){var t=e.name,n=e.value,u=e.checked,l=e.defaultChecked,c=e.disabled,d=e.controlRef,h=e.controlProps,f=e.onUpdate,p=e.onChange,v=e.onFocus,g=e.onBlur,m=e.id,_=(0,o.useUniqId)(),y=r.default.useRef(null),b=r.default.useState(null!==l&&void 0!==l&&l),w=i(b,2),C=w[0],k=w[1],S="boolean"===typeof u,x=S?u:C,L=(0,a.useForkRef)(d,y);return{checked:x,inputProps:Object.assign(Object.assign({},h),{name:t||_,value:n,id:m,onFocus:v,onBlur:g,disabled:c,type:"radio",onChange:function(e){S||k(e.target.checked),p&&p(e),f&&f(e.target.checked)},onChangeCapture:function(e){s.eventBroker.publish({componentId:"Radio",eventId:"click",domEvent:e})},checked:u,defaultChecked:l,"aria-checked":x,ref:L})}}},42662:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useRadioGroup=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(59548);t.useRadioGroup=function(e){var t,n,a=e.name,s=e.value,u=e.defaultValue,l=e.options,c=void 0===l?[]:l,d=e.disabled,h=e.onUpdate,f=e.onChange,p=e.onFocus,v=e.onBlur,g=(0,o.useUniqId)(),m=r.default.useState(null!==u&&void 0!==u?u:null===(n=null===(t=c[0])||void 0===t?void 0:t.value)||void 0===n?void 0:n.toString()),_=i(m,2),y=_[0],b=_[1],w="string"===typeof s,C=w?s:y,k=r.default.useCallback((function(e){w||b(e.target.value),f&&f(e),h&&h(e.target.value)}),[w,h,f]);return{containerProps:{role:"radiogroup","aria-disabled":d,"aria-label":e["aria-label"],"aria-labelledby":e["aria-labelledby"]},optionsProps:c.map((function(e){return{name:a||g,value:String(e.value),content:e.content,checked:C===String(e.value),disabled:d||e.disabled,onChange:k,onFocus:p,onBlur:v}}))}}},64669:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useRestoreFocus=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(22020);t.useRestoreFocus=function(e){var t=e.enabled,n=e.restoreFocusRef,o=e.focusTrapped,a=i.default.useRef(null),s=i.default.useRef(null),u=i.default.useRef(null);return i.default.useEffect((function(){if(t){var e=function(e){var t=e.target;!o&&t instanceof HTMLElement&&(0,r.isTabbable)(t)&&(u.current=t)},n=function(e){var t=e.target;t instanceof HTMLElement&&(0,r.isTabbable)(t)?u.current=t:u.current=null};return window.addEventListener("focusin",e),window.addEventListener("mousedown",n),window.addEventListener("touchstart",n),function(){window.removeEventListener("focusin",e),window.removeEventListener("mousedown",n),window.removeEventListener("touchstart",n)}}}),[t,o]),i.default.useEffect((function(){var e;a.current=null!==(e=(null===n||void 0===n?void 0:n.current)||s.current)&&void 0!==e?e:null})),i.default.useEffect((function(){if(t)return function(){var e=a.current,t=u.current;t&&document.contains(t)&&(0,r.isTabbable)(t)&&(e=t),e&&"function"===typeof e.focus&&document.contains(e)&&(0,r.isFocusable)(e)&&(e!==document.activeElement&&setTimeout((function(){null===e||void 0===e||e.focus()}),0),s.current=null,u.current=null)}}),[t]),{onFocus:function(e){t&&null===s.current&&(s.current=e.relatedTarget,u.current=s.current)}}}},25700:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSelect=void 0;var i=n(49939);Object.defineProperty(t,"useSelect",{enumerable:!0,get:function(){return i.useSelect}})},86911:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useOpenState=void 0;var r=(0,n(15791).__importDefault)(n(4519));t.useOpenState=function(e){var t=r.default.useState(e.defaultOpen||!1),n=i(t,2),o=n[0],a=n[1],s=e.onOpenChange,u="boolean"===typeof e.open,l=u?e.open:o,c=r.default.useCallback((function(e){var t="boolean"===typeof e?e:!l;t!==l&&(null===s||void 0===s||s(t),u||a(t))}),[l,s,u]);return{open:l,toggleOpen:c}}},49939:function(e,t,n){"use strict";var i=n(319).default,r=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useSelect=void 0;var o=n(15791),a=(0,o.__importDefault)(n(4519)),s=n(86911);t.useSelect=function(e){var t=e.value,n=e.defaultValue,u=void 0===n?[]:n,l=e.multiple,c=e.onUpdate,d=a.default.useState(u),h=r(d,2),f=h[0],p=h[1],v=t||f,g=!t,m=(0,s.useOpenState)(e),_=m.toggleOpen,y=(0,o.__rest)(m,["toggleOpen"]),b=a.default.useCallback((function(e){if(!v.includes(e.value)){var t=[e.value];null===c||void 0===c||c(t),g&&p(t)}_(!1)}),[v,g,c,_]),w=a.default.useCallback((function(e){var t=v.includes(e.value)?v.filter((function(t){return t!==e.value})):[].concat(i(v),[e.value]);null===c||void 0===c||c(t),g&&p(t)}),[v,g,c]),C=a.default.useCallback((function(e){l?w(e):b(e)}),[l,b,w]);return Object.assign({value:v,handleSelection:C,setOpen:_,toggleOpen:_},y)}},36783:function(e,t,n){"use strict";var i=n(63038).default;Object.defineProperty(t,"__esModule",{value:!0}),t.useStateWithCallback=void 0;var r=n(4519),o=n(24781);t.useStateWithCallback=function(e,t){var n=(0,r.useState)(e),a=i(n,2),s=a[0],u=a[1];return[s,(0,r.useCallback)((function(e){(0,o.isFunction)(e)?u((function(n){var i=e(n);return null===t||void 0===t||t(i),i})):(null===t||void 0===t||t(e),u(e))}),[t])]}},75210:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useTimeout=void 0;var i=(0,n(15791).__importDefault)(n(4519));t.useTimeout=function(e,t){i.default.useEffect((function(){if("number"===typeof t){var n=setTimeout((function(){e()}),t);return function(){clearTimeout(n)}}}),[e,t])}},59548:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useUniqId=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r=n(58538);t.useUniqId=function(){return i.default.useRef((0,r.getUniqId)()).current}},9280:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useUpdateEffect=void 0;var i=n(4519);t.useUpdateEffect=function(e,t){var n=(0,i.useRef)(!0);(0,i.useEffect)((function(){n.current?n.current=!1:e()}),t)}},12963:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useVirtualElementRef=void 0;var i=(0,n(15791).__importDefault)(n(4519)),r={top:0,right:0,bottom:0,left:0};t.useVirtualElementRef=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.rect,n=e.contextElement,o=i.default.useRef(r),a=i.default.useRef({contextElement:n,getBoundingClientRect:function(){var e=o.current,t=e.top,n=e.right,i=e.bottom,r=e.left;return{top:t,right:n,bottom:i,left:r,width:n-r,height:i-t}}});if(a.current.contextElement=n,t){var s=t.top,u=void 0===s?0:s,l=t.left,c=void 0===l?0:l,d=t.right,h=void 0===d?c:d,f=t.bottom,p=void 0===f?u:f;o.current={top:u,right:h,bottom:p,left:c}}else o.current=r;return a}},28971:function(e,t,n){"use strict";var i=n(59713).default;Object.defineProperty(t,"__esModule",{value:!0}),t.withEventBrokerDomHandlers=void 0;var r=(0,n(15791).__importDefault)(n(4519)),o=n(81242),a=n(35207);t.withEventBrokerDomHandlers=function(e,t,n){var s=(0,a.getComponentName)(e),u="withEventBroker(".concat(s,")"),l=r.default.forwardRef((function(a,s){var u=t.reduce((function(e,t){var r=a[t];return Object.assign(Object.assign({},e),i({},t,(function(e){return o.eventBroker.publish(Object.assign({eventId:t.replace(/^on/,"").toLowerCase(),domEvent:e},n)),r&&r(e)})))}),{});return r.default.createElement(e,Object.assign({},a,u,{ref:s}))}));return l.displayName=u,l}},11170:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getXpath=t.withoutClassMods=void 0;var i=(0,n(15791).__importDefault)(n(48080)),r=n(2865);function o(e,t){if(!e||!function(e){return e.nodeType===Node.ELEMENT_NODE}(e))return"";var n=e.tagName.toLowerCase(),i="/".concat(n);if(e.id&&!t.withoutId)i+="[@id='".concat(e.id,"']");else{var a=[];e.classList.forEach((function(e){var i=t.classConverter(Object.assign(Object.assign({},(0,r.parseClass)(e)),{tag:n}),e);i&&a.push((0,r.formatClass)(i))})),a.length&&(i+="[@class='".concat(a.join(" "),"']"))}return o(e.parentElement,t)+i}t.withoutClassMods=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return function(t,n){return t.mod?void 0:e(t,n)}};var a={classConverter:function(e){return e},withoutId:!1};t.getXpath=function(e,t){var n=Object.assign(Object.assign({},a),t||{}),r=o(e.currentTarget||e.target,n);return{xpath:r,hash:(0,i.default)(r)}}},28191:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.i18n=void 0;var i=n(24755),r=n(64340);t.i18n=new i.I18N,t.i18n.setLang((0,r.getConfig)().lang),(0,r.subscribeConfigure)((function(e){t.i18n.setLang(e.lang)}))},52154:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(15791).__exportStar)(n(24782),t)},7572:function(e,t,n){var i=n(46076)(n(3650),"DataView");e.exports=i},41895:function(e,t,n){var i=n(22426),r=n(5096),o=n(14190),a=n(5911),s=n(25570);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},72953:function(e,t,n){var i=n(19792),r=n(38240),o=n(96033),a=n(87333),s=n(45460);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},23301:function(e,t,n){var i=n(46076)(n(3650),"Map");e.exports=i},69121:function(e,t,n){var i=n(32388),r=n(2871),o=n(38006),a=n(98281),s=n(31831);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},64407:function(e,t,n){var i=n(46076)(n(3650),"Promise");e.exports=i},95808:function(e,t,n){var i=n(46076)(n(3650),"Set");e.exports=i},46746:function(e,t,n){var i=n(69121),r=n(68908),o=n(73771);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new i;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=r,a.prototype.has=o,e.exports=a},91395:function(e,t,n){var i=n(72953),r=n(98971),o=n(60386),a=n(20600),s=n(12752),u=n(75130);function l(e){var t=this.__data__=new i(e);this.size=t.size}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},125:function(e,t,n){var i=n(3650).Symbol;e.exports=i},67753:function(e,t,n){var i=n(3650).Uint8Array;e.exports=i},4665:function(e,t,n){var i=n(46076)(n(3650),"WeakMap");e.exports=i},70225:function(e){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},47757:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}},25262:function(e,t,n){var i=n(48075);e.exports=function(e,t){return!!(null==e?0:e.length)&&i(e,t,0)>-1}},20093:function(e){e.exports=function(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}},97233:function(e,t,n){var i=n(55412),r=n(10878),o=n(60508),a=n(47874),s=n(10026),u=n(52841),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),c=!n&&r(e),d=!n&&!c&&a(e),h=!n&&!c&&!d&&u(e),f=n||c||d||h,p=f?i(e.length,String):[],v=p.length;for(var g in e)!t&&!l.call(e,g)||f&&("length"==g||d&&("offset"==g||"parent"==g)||h&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||s(g,v))||p.push(g);return p}},19954:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}},95610:function(e){e.exports=function(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}},18503:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}},58897:function(e){e.exports=function(e){return e.split("")}},77569:function(e,t,n){var i=n(20965);e.exports=function(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}},60602:function(e,t,n){var i=n(46746),r=n(25262),o=n(20093),a=n(19954),s=n(29937),u=n(61832),l=200;e.exports=function(e,t,n,c){var d=-1,h=r,f=!0,p=e.length,v=[],g=t.length;if(!p)return v;n&&(t=a(t,s(n))),c?(h=o,f=!1):t.length>=l&&(h=u,f=!1,t=new i(t));e:for(;++d<p;){var m=e[d],_=null==n?m:n(m);if(m=c||0!==m?m:0,f&&_===_){for(var y=g;y--;)if(t[y]===_)continue e;v.push(m)}else h(t,_,c)||v.push(m)}return v}},32099:function(e){e.exports=function(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}},87379:function(e,t,n){var i=n(95610),r=n(86109);e.exports=function e(t,n,o,a,s){var u=-1,l=t.length;for(o||(o=r),s||(s=[]);++u<l;){var c=t[u];n>0&&o(c)?n>1?e(c,n-1,o,a,s):i(s,c):a||(s[s.length]=c)}return s}},71369:function(e,t,n){var i=n(38697),r=n(64089);e.exports=function(e,t){for(var n=0,o=(t=i(t,e)).length;null!=e&&n<o;)e=e[r(t[n++])];return n&&n==o?e:void 0}},12200:function(e,t,n){var i=n(95610),r=n(60508);e.exports=function(e,t,n){var o=t(e);return r(e)?o:i(o,n(e))}},20161:function(e,t,n){var i=n(125),r=n(46937),o=n(4868),a="[object Null]",s="[object Undefined]",u=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?r(e):o(e)}},25257:function(e){var t=Object.prototype.hasOwnProperty;e.exports=function(e,n){return null!=e&&t.call(e,n)}},27534:function(e){e.exports=function(e,t){return null!=e&&t in Object(e)}},48075:function(e,t,n){var i=n(32099),r=n(97057),o=n(39139);e.exports=function(e,t,n){return t===t?o(e,t,n):i(e,r,n)}},94051:function(e,t,n){var i=n(20161),r=n(84341),o="[object Arguments]";e.exports=function(e){return r(e)&&i(e)==o}},22327:function(e,t,n){var i=n(40723),r=n(84341);e.exports=function e(t,n,o,a,s){return t===n||(null==t||null==n||!r(t)&&!r(n)?t!==t&&n!==n:i(t,n,o,a,e,s))}},40723:function(e,t,n){var i=n(91395),r=n(3704),o=n(57318),a=n(31223),s=n(81591),u=n(60508),l=n(47874),c=n(52841),d=1,h="[object Arguments]",f="[object Array]",p="[object Object]",v=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,g,m,_){var y=u(e),b=u(t),w=y?f:s(e),C=b?f:s(t),k=(w=w==h?p:w)==p,S=(C=C==h?p:C)==p,x=w==C;if(x&&l(e)){if(!l(t))return!1;y=!0,k=!1}if(x&&!k)return _||(_=new i),y||c(e)?r(e,t,n,g,m,_):o(e,t,w,n,g,m,_);if(!(n&d)){var L=k&&v.call(e,"__wrapped__"),E=S&&v.call(t,"__wrapped__");if(L||E){var N=L?e.value():e,D=E?t.value():t;return _||(_=new i),m(N,D,n,g,_)}}return!!x&&(_||(_=new i),a(e,t,n,g,m,_))}},26922:function(e,t,n){var i=n(91395),r=n(22327),o=1,a=2;e.exports=function(e,t,n,s){var u=n.length,l=u,c=!s;if(null==e)return!l;for(e=Object(e);u--;){var d=n[u];if(c&&d[2]?d[1]!==e[d[0]]:!(d[0]in e))return!1}for(;++u<l;){var h=(d=n[u])[0],f=e[h],p=d[1];if(c&&d[2]){if(void 0===f&&!(h in e))return!1}else{var v=new i;if(s)var g=s(f,p,h,e,t,v);if(!(void 0===g?r(p,f,o|a,s,v):g))return!1}}return!0}},97057:function(e){e.exports=function(e){return e!==e}},3092:function(e,t,n){var i=n(57119),r=n(19705),o=n(82222),a=n(94552),s=/^\[object .+?Constructor\]$/,u=Function.prototype,l=Object.prototype,c=u.toString,d=l.hasOwnProperty,h=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||r(e))&&(i(e)?h:s).test(a(e))}},72533:function(e,t,n){var i=n(20161),r=n(60997),o=n(84341),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&r(e.length)&&!!a[i(e)]}},37823:function(e,t,n){var i=n(92774),r=n(85870),o=n(55308),a=n(60508),s=n(23364);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?r(e[0],e[1]):i(e):s(e)}},72467:function(e,t,n){var i=n(9986),r=n(87682),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return r(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},92774:function(e,t,n){var i=n(26922),r=n(94891),o=n(47e3);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||i(n,e,t)}}},85870:function(e,t,n){var i=n(22327),r=n(11141),o=n(8976),a=n(22498),s=n(79787),u=n(47e3),l=n(64089),c=1,d=2;e.exports=function(e,t){return a(e)&&s(t)?u(l(e),t):function(n){var a=r(n,e);return void 0===a&&a===t?o(n,e):i(t,a,c|d)}}},96067:function(e){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},87402:function(e,t,n){var i=n(71369);e.exports=function(e){return function(t){return i(t,e)}}},86013:function(e){var t=Math.ceil,n=Math.max;e.exports=function(e,i,r,o){for(var a=-1,s=n(t((i-e)/(r||1)),0),u=Array(s);s--;)u[o?s:++a]=e,e+=r;return u}},38825:function(e,t,n){var i=n(55308),r=n(46770),o=n(94969);e.exports=function(e,t){return o(r(e,t,i),e+"")}},29962:function(e,t,n){var i=n(83842),r=n(24695),o=n(55308),a=r?function(e,t){return r(e,"toString",{configurable:!0,enumerable:!1,value:i(t),writable:!0})}:o;e.exports=a},65144:function(e){e.exports=function(e,t,n){var i=-1,r=e.length;t<0&&(t=-t>r?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(r);++i<r;)o[i]=e[i+t];return o}},68317:function(e){e.exports=function(e,t){for(var n,i=-1,r=e.length;++i<r;){var o=t(e[i]);void 0!==o&&(n=void 0===n?o:n+o)}return n}},55412:function(e){e.exports=function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}},40252:function(e,t,n){var i=n(125),r=n(19954),o=n(60508),a=n(17189),s=1/0,u=i?i.prototype:void 0,l=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return r(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},6893:function(e,t,n){var i=n(61855),r=/^\s+/;e.exports=function(e){return e?e.slice(0,i(e)+1).replace(r,""):e}},29937:function(e){e.exports=function(e){return function(t){return e(t)}}},60966:function(e,t,n){var i=n(46746),r=n(25262),o=n(20093),a=n(61832),s=n(553),u=n(54258),l=200;e.exports=function(e,t,n){var c=-1,d=r,h=e.length,f=!0,p=[],v=p;if(n)f=!1,d=o;else if(h>=l){var g=t?null:s(e);if(g)return u(g);f=!1,d=a,v=new i}else v=t?[]:p;e:for(;++c<h;){var m=e[c],_=t?t(m):m;if(m=n||0!==m?m:0,f&&_===_){for(var y=v.length;y--;)if(v[y]===_)continue e;t&&v.push(_),p.push(m)}else d(v,_,n)||(v!==p&&v.push(_),p.push(m))}return p}},61832:function(e){e.exports=function(e,t){return e.has(t)}},38697:function(e,t,n){var i=n(60508),r=n(22498),o=n(53200),a=n(5881);e.exports=function(e,t){return i(e)?e:r(e,t)?[e]:o(a(e))}},69919:function(e,t,n){var i=n(65144);e.exports=function(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:i(e,t,n)}},88517:function(e,t,n){var i=n(3650)["__core-js_shared__"];e.exports=i},8616:function(e,t,n){var i=n(69919),r=n(47285),o=n(81930),a=n(5881);e.exports=function(e){return function(t){t=a(t);var n=r(t)?o(t):void 0,s=n?n[0]:t.charAt(0),u=n?i(n,1).join(""):t.slice(1);return s[e]()+u}}},10787:function(e,t,n){var i=n(86013),r=n(53323),o=n(11347);e.exports=function(e){return function(t,n,a){return a&&"number"!=typeof a&&r(t,n,a)&&(n=a=void 0),t=o(t),void 0===n?(n=t,t=0):n=o(n),a=void 0===a?t<n?1:-1:o(a),i(t,n,a,e)}}},553:function(e,t,n){var i=n(95808),r=n(34519),o=n(54258),a=i&&1/o(new i([,-0]))[1]==1/0?function(e){return new i(e)}:r;e.exports=a},24695:function(e,t,n){var i=n(46076),r=function(){try{var e=i(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=r},3704:function(e,t,n){var i=n(46746),r=n(18503),o=n(61832),a=1,s=2;e.exports=function(e,t,n,u,l,c){var d=n&a,h=e.length,f=t.length;if(h!=f&&!(d&&f>h))return!1;var p=c.get(e),v=c.get(t);if(p&&v)return p==t&&v==e;var g=-1,m=!0,_=n&s?new i:void 0;for(c.set(e,t),c.set(t,e);++g<h;){var y=e[g],b=t[g];if(u)var w=d?u(b,y,g,t,e,c):u(y,b,g,e,t,c);if(void 0!==w){if(w)continue;m=!1;break}if(_){if(!r(t,(function(e,t){if(!o(_,t)&&(y===e||l(y,e,n,u,c)))return _.push(t)}))){m=!1;break}}else if(y!==b&&!l(y,b,n,u,c)){m=!1;break}}return c.delete(e),c.delete(t),m}},57318:function(e,t,n){var i=n(125),r=n(67753),o=n(20965),a=n(3704),s=n(77140),u=n(54258),l=1,c=2,d="[object Boolean]",h="[object Date]",f="[object Error]",p="[object Map]",v="[object Number]",g="[object RegExp]",m="[object Set]",_="[object String]",y="[object Symbol]",b="[object ArrayBuffer]",w="[object DataView]",C=i?i.prototype:void 0,k=C?C.valueOf:void 0;e.exports=function(e,t,n,i,C,S,x){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case b:return!(e.byteLength!=t.byteLength||!S(new r(e),new r(t)));case d:case h:case v:return o(+e,+t);case f:return e.name==t.name&&e.message==t.message;case g:case _:return e==t+"";case p:var L=s;case m:var E=i&l;if(L||(L=u),e.size!=t.size&&!E)return!1;var N=x.get(e);if(N)return N==t;i|=c,x.set(e,t);var D=a(L(e),L(t),i,C,S,x);return x.delete(e),D;case y:if(k)return k.call(e)==k.call(t)}return!1}},31223:function(e,t,n){var i=n(25534),r=1,o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,s,u){var l=n&r,c=i(e),d=c.length;if(d!=i(t).length&&!l)return!1;for(var h=d;h--;){var f=c[h];if(!(l?f in t:o.call(t,f)))return!1}var p=u.get(e),v=u.get(t);if(p&&v)return p==t&&v==e;var g=!0;u.set(e,t),u.set(t,e);for(var m=l;++h<d;){var _=e[f=c[h]],y=t[f];if(a)var b=l?a(y,_,f,t,e,u):a(_,y,f,e,t,u);if(!(void 0===b?_===y||s(_,y,n,a,u):b)){g=!1;break}m||(m="constructor"==f)}if(g&&!m){var w=e.constructor,C=t.constructor;w==C||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof C&&C instanceof C||(g=!1)}return u.delete(e),u.delete(t),g}},9198:function(e,t,n){var i="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=i},25534:function(e,t,n){var i=n(12200),r=n(30958),o=n(21198);e.exports=function(e){return i(e,o,r)}},5669:function(e,t,n){var i=n(38688);e.exports=function(e,t){var n=e.__data__;return i(t)?n["string"==typeof t?"string":"hash"]:n.map}},94891:function(e,t,n){var i=n(79787),r=n(21198);e.exports=function(e){for(var t=r(e),n=t.length;n--;){var o=t[n],a=e[o];t[n]=[o,a,i(a)]}return t}},46076:function(e,t,n){var i=n(3092),r=n(51677);e.exports=function(e,t){var n=r(e,t);return i(n)?n:void 0}},46937:function(e,t,n){var i=n(125),r=Object.prototype,o=r.hasOwnProperty,a=r.toString,s=i?i.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var i=!0}catch(u){}var r=a.call(e);return i&&(t?e[s]=n:delete e[s]),r}},30958:function(e,t,n){var i=n(47757),r=n(99500),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),i(a(e),(function(t){return o.call(e,t)})))}:r;e.exports=s},81591:function(e,t,n){var i=n(7572),r=n(23301),o=n(64407),a=n(95808),s=n(4665),u=n(20161),l=n(94552),c="[object Map]",d="[object Promise]",h="[object Set]",f="[object WeakMap]",p="[object DataView]",v=l(i),g=l(r),m=l(o),_=l(a),y=l(s),b=u;(i&&b(new i(new ArrayBuffer(1)))!=p||r&&b(new r)!=c||o&&b(o.resolve())!=d||a&&b(new a)!=h||s&&b(new s)!=f)&&(b=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,i=n?l(n):"";if(i)switch(i){case v:return p;case g:return c;case m:return d;case _:return h;case y:return f}return t}),e.exports=b},51677:function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},76341:function(e,t,n){var i=n(38697),r=n(10878),o=n(60508),a=n(10026),s=n(60997),u=n(64089);e.exports=function(e,t,n){for(var l=-1,c=(t=i(t,e)).length,d=!1;++l<c;){var h=u(t[l]);if(!(d=null!=e&&n(e,h)))break;e=e[h]}return d||++l!=c?d:!!(c=null==e?0:e.length)&&s(c)&&a(h,c)&&(o(e)||r(e))}},47285:function(e){var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},22426:function(e,t,n){var i=n(50662);e.exports=function(){this.__data__=i?i(null):{},this.size=0}},5096:function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},14190:function(e,t,n){var i=n(50662),r="__lodash_hash_undefined__",o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(i){var n=t[e];return n===r?void 0:n}return o.call(t,e)?t[e]:void 0}},5911:function(e,t,n){var i=n(50662),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return i?void 0!==t[e]:r.call(t,e)}},25570:function(e,t,n){var i=n(50662),r="__lodash_hash_undefined__";e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=i&&void 0===t?r:t,this}},86109:function(e,t,n){var i=n(125),r=n(10878),o=n(60508),a=i?i.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||r(e)||!!(a&&e&&e[a])}},10026:function(e){var t=9007199254740991,n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,i){var r=typeof e;return!!(i=null==i?t:i)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e<i}},53323:function(e,t,n){var i=n(20965),r=n(75359),o=n(10026),a=n(82222);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?r(n)&&o(t,n.length):"string"==s&&t in n)&&i(n[t],e)}},22498:function(e,t,n){var i=n(60508),r=n(17189),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(i(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}},38688:function(e){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},19705:function(e,t,n){var i=n(88517),r=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!r&&r in e}},9986:function(e){var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},79787:function(e,t,n){var i=n(82222);e.exports=function(e){return e===e&&!i(e)}},19792:function(e){e.exports=function(){this.__data__=[],this.size=0}},38240:function(e,t,n){var i=n(77569),r=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=i(t,e);return!(n<0)&&(n==t.length-1?t.pop():r.call(t,n,1),--this.size,!0)}},96033:function(e,t,n){var i=n(77569);e.exports=function(e){var t=this.__data__,n=i(t,e);return n<0?void 0:t[n][1]}},87333:function(e,t,n){var i=n(77569);e.exports=function(e){return i(this.__data__,e)>-1}},45460:function(e,t,n){var i=n(77569);e.exports=function(e,t){var n=this.__data__,r=i(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}},32388:function(e,t,n){var i=n(41895),r=n(72953),o=n(23301);e.exports=function(){this.size=0,this.__data__={hash:new i,map:new(o||r),string:new i}}},2871:function(e,t,n){var i=n(5669);e.exports=function(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}},38006:function(e,t,n){var i=n(5669);e.exports=function(e){return i(this,e).get(e)}},98281:function(e,t,n){var i=n(5669);e.exports=function(e){return i(this,e).has(e)}},31831:function(e,t,n){var i=n(5669);e.exports=function(e,t){var n=i(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}},77140:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}},47e3:function(e){e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},71244:function(e,t,n){var i=n(51761),r=500;e.exports=function(e){var t=i(e,(function(e){return n.size===r&&n.clear(),e})),n=t.cache;return t}},50662:function(e,t,n){var i=n(46076)(Object,"create");e.exports=i},87682:function(e,t,n){var i=n(97269)(Object.keys,Object);e.exports=i},56408:function(e,t,n){e=n.nmd(e);var i=n(9198),r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r&&i.process,s=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=s},4868:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},97269:function(e){e.exports=function(e,t){return function(n){return e(t(n))}}},46770:function(e,t,n){var i=n(70225),r=Math.max;e.exports=function(e,t,n){return t=r(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=r(o.length-t,0),u=Array(s);++a<s;)u[a]=o[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=o[a];return l[t]=n(u),i(e,this,l)}}},3650:function(e,t,n){var i=n(9198),r="object"==typeof self&&self&&self.Object===Object&&self,o=i||r||Function("return this")();e.exports=o},68908:function(e){var t="__lodash_hash_undefined__";e.exports=function(e){return this.__data__.set(e,t),this}},73771:function(e){e.exports=function(e){return this.__data__.has(e)}},54258:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},94969:function(e,t,n){var i=n(29962),r=n(1904)(i);e.exports=r},1904:function(e){var t=800,n=16,i=Date.now;e.exports=function(e){var r=0,o=0;return function(){var a=i(),s=n-(a-o);if(o=a,s>0){if(++r>=t)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},98971:function(e,t,n){var i=n(72953);e.exports=function(){this.__data__=new i,this.size=0}},60386:function(e){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},20600:function(e){e.exports=function(e){return this.__data__.get(e)}},12752:function(e){e.exports=function(e){return this.__data__.has(e)}},75130:function(e,t,n){var i=n(72953),r=n(23301),o=n(69121),a=200;e.exports=function(e,t){var n=this.__data__;if(n instanceof i){var s=n.__data__;if(!r||s.length<a-1)return s.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(s)}return n.set(e,t),this.size=n.size,this}},39139:function(e){e.exports=function(e,t,n){for(var i=n-1,r=e.length;++i<r;)if(e[i]===t)return i;return-1}},81930:function(e,t,n){var i=n(58897),r=n(47285),o=n(89275);e.exports=function(e){return r(e)?o(e):i(e)}},53200:function(e,t,n){var i=n(71244),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=i((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(r,(function(e,n,i,r){t.push(i?r.replace(o,"$1"):n||e)})),t}));e.exports=a},64089:function(e,t,n){var i=n(17189),r=1/0;e.exports=function(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-r?"-0":t}},94552:function(e){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},61855:function(e){var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},89275:function(e){var t="\\ud800-\\udfff",n="["+t+"]",i="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",r="\\ud83c[\\udffb-\\udfff]",o="[^"+t+"]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",u="(?:"+i+"|"+r+")"+"?",l="[\\ufe0e\\ufe0f]?",c=l+u+("(?:\\u200d(?:"+[o,a,s].join("|")+")"+l+u+")*"),d="(?:"+[o+i+"?",i,a,s,n].join("|")+")",h=RegExp(r+"(?="+r+")|"+d+c,"g");e.exports=function(e){return e.match(h)||[]}},4688:function(e,t,n){var i=n(5881),r=n(1932);e.exports=function(e){return r(i(e).toLowerCase())}},83842:function(e){e.exports=function(e){return function(){return e}}},14762:function(e,t,n){var i=n(82222),r=n(61135),o=n(1584),a="Expected a function",s=Math.max,u=Math.min;e.exports=function(e,t,n){var l,c,d,h,f,p,v=0,g=!1,m=!1,_=!0;if("function"!=typeof e)throw new TypeError(a);function y(t){var n=l,i=c;return l=c=void 0,v=t,h=e.apply(i,n)}function b(e){var n=e-p;return void 0===p||n>=t||n<0||m&&e-v>=d}function w(){var e=r();if(b(e))return C(e);f=setTimeout(w,function(e){var n=t-(e-p);return m?u(n,d-(e-v)):n}(e))}function C(e){return f=void 0,_&&l?y(e):(l=c=void 0,h)}function k(){var e=r(),n=b(e);if(l=arguments,c=this,p=e,n){if(void 0===f)return function(e){return v=e,f=setTimeout(w,t),g?y(e):h}(p);if(m)return clearTimeout(f),f=setTimeout(w,t),y(p)}return void 0===f&&(f=setTimeout(w,t)),h}return t=o(t)||0,i(n)&&(g=!!n.leading,d=(m="maxWait"in n)?s(o(n.maxWait)||0,t):d,_="trailing"in n?!!n.trailing:_),k.cancel=function(){void 0!==f&&clearTimeout(f),v=0,l=p=c=f=void 0},k.flush=function(){return void 0===f?h:C(r())},k}},4076:function(e,t,n){var i=n(60602),r=n(87379),o=n(38825),a=n(30818),s=o((function(e,t){return a(e)?i(e,r(t,1,a,!0)):[]}));e.exports=s},20965:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},11141:function(e,t,n){var i=n(71369);e.exports=function(e,t,n){var r=null==e?void 0:i(e,t);return void 0===r?n:r}},71197:function(e,t,n){var i=n(25257),r=n(76341);e.exports=function(e,t){return null!=e&&r(e,t,i)}},8976:function(e,t,n){var i=n(27534),r=n(76341);e.exports=function(e,t){return null!=e&&r(e,t,i)}},55308:function(e){e.exports=function(e){return e}},10878:function(e,t,n){var i=n(94051),r=n(84341),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,u=i(function(){return arguments}())?i:function(e){return r(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},60508:function(e){var t=Array.isArray;e.exports=t},75359:function(e,t,n){var i=n(57119),r=n(60997);e.exports=function(e){return null!=e&&r(e.length)&&!i(e)}},30818:function(e,t,n){var i=n(75359),r=n(84341);e.exports=function(e){return r(e)&&i(e)}},47874:function(e,t,n){e=n.nmd(e);var i=n(3650),r=n(79151),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,s=a&&a.exports===o?i.Buffer:void 0,u=(s?s.isBuffer:void 0)||r;e.exports=u},57119:function(e,t,n){var i=n(20161),r=n(82222),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!r(e))return!1;var t=i(e);return t==a||t==s||t==o||t==u}},60997:function(e){var t=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=t}},24433:function(e,t,n){var i=n(20161),r=n(84341),o="[object Number]";e.exports=function(e){return"number"==typeof e||r(e)&&i(e)==o}},82222:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},84341:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},45999:function(e,t,n){var i=n(20161),r=n(60508),o=n(84341),a="[object String]";e.exports=function(e){return"string"==typeof e||!r(e)&&o(e)&&i(e)==a}},17189:function(e,t,n){var i=n(20161),r=n(84341),o="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||r(e)&&i(e)==o}},52841:function(e,t,n){var i=n(72533),r=n(29937),o=n(56408),a=o&&o.isTypedArray,s=a?r(a):i;e.exports=s},21198:function(e,t,n){var i=n(97233),r=n(72467),o=n(75359);e.exports=function(e){return o(e)?i(e):r(e)}},22560:function(e){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},41925:function(e,t,n){var i;e=n.nmd(e),function(){var r,o=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",u="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",h=1,f=2,p=4,v=1,g=2,m=1,_=2,y=4,b=8,w=16,C=32,k=64,S=128,x=256,L=512,E=30,N="...",D=800,M=16,T=1,O=2,I=1/0,A=9007199254740991,P=17976931348623157e292,R=NaN,Z=4294967295,F=Z-1,j=Z>>>1,H=[["ary",S],["bind",m],["bindKey",_],["curry",b],["curryRight",w],["flip",L],["partial",C],["partialRight",k],["rearg",x]],B="[object Arguments]",z="[object Array]",W="[object AsyncFunction]",V="[object Boolean]",Y="[object Date]",U="[object DOMException]",K="[object Error]",q="[object Function]",G="[object GeneratorFunction]",$="[object Map]",Q="[object Number]",X="[object Null]",J="[object Object]",ee="[object Promise]",te="[object Proxy]",ne="[object RegExp]",ie="[object Set]",re="[object String]",oe="[object Symbol]",ae="[object Undefined]",se="[object WeakMap]",ue="[object WeakSet]",le="[object ArrayBuffer]",ce="[object DataView]",de="[object Float32Array]",he="[object Float64Array]",fe="[object Int8Array]",pe="[object Int16Array]",ve="[object Int32Array]",ge="[object Uint8Array]",me="[object Uint8ClampedArray]",_e="[object Uint16Array]",ye="[object Uint32Array]",be=/\b__p \+= '';/g,we=/\b(__p \+=) '' \+/g,Ce=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ke=/&(?:amp|lt|gt|quot|#39);/g,Se=/[&<>"']/g,xe=RegExp(ke.source),Le=RegExp(Se.source),Ee=/<%-([\s\S]+?)%>/g,Ne=/<%([\s\S]+?)%>/g,De=/<%=([\s\S]+?)%>/g,Me=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Te=/^\w*$/,Oe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ie=/[\\^$.*+?()[\]{}|]/g,Ae=RegExp(Ie.source),Pe=/^\s+/,Re=/\s/,Ze=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Fe=/\{\n\/\* \[wrapped with (.+)\] \*/,je=/,? & /,He=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Be=/[()=,{}\[\]\/\s]/,ze=/\\(\\)?/g,We=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ve=/\w*$/,Ye=/^[-+]0x[0-9a-f]+$/i,Ue=/^0b[01]+$/i,Ke=/^\[object .+?Constructor\]$/,qe=/^0o[0-7]+$/i,Ge=/^(?:0|[1-9]\d*)$/,$e=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qe=/($^)/,Xe=/['\n\r\u2028\u2029\\]/g,Je="\\ud800-\\udfff",et="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",tt="\\u2700-\\u27bf",nt="a-z\\xdf-\\xf6\\xf8-\\xff",it="A-Z\\xc0-\\xd6\\xd8-\\xde",rt="\\ufe0e\\ufe0f",ot="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",at="['\u2019]",st="["+Je+"]",ut="["+ot+"]",lt="["+et+"]",ct="\\d+",dt="["+tt+"]",ht="["+nt+"]",ft="[^"+Je+ot+ct+tt+nt+it+"]",pt="\\ud83c[\\udffb-\\udfff]",vt="[^"+Je+"]",gt="(?:\\ud83c[\\udde6-\\uddff]){2}",mt="[\\ud800-\\udbff][\\udc00-\\udfff]",_t="["+it+"]",yt="\\u200d",bt="(?:"+ht+"|"+ft+")",wt="(?:"+_t+"|"+ft+")",Ct="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",kt="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",St="(?:"+lt+"|"+pt+")"+"?",xt="["+rt+"]?",Lt=xt+St+("(?:"+yt+"(?:"+[vt,gt,mt].join("|")+")"+xt+St+")*"),Et="(?:"+[dt,gt,mt].join("|")+")"+Lt,Nt="(?:"+[vt+lt+"?",lt,gt,mt,st].join("|")+")",Dt=RegExp(at,"g"),Mt=RegExp(lt,"g"),Tt=RegExp(pt+"(?="+pt+")|"+Nt+Lt,"g"),Ot=RegExp([_t+"?"+ht+"+"+Ct+"(?="+[ut,_t,"$"].join("|")+")",wt+"+"+kt+"(?="+[ut,_t+bt,"$"].join("|")+")",_t+"?"+bt+"+"+Ct,_t+"+"+kt,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ct,Et].join("|"),"g"),It=RegExp("["+yt+Je+et+rt+"]"),At=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Pt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Rt=-1,Zt={};Zt[de]=Zt[he]=Zt[fe]=Zt[pe]=Zt[ve]=Zt[ge]=Zt[me]=Zt[_e]=Zt[ye]=!0,Zt[B]=Zt[z]=Zt[le]=Zt[V]=Zt[ce]=Zt[Y]=Zt[K]=Zt[q]=Zt[$]=Zt[Q]=Zt[J]=Zt[ne]=Zt[ie]=Zt[re]=Zt[se]=!1;var Ft={};Ft[B]=Ft[z]=Ft[le]=Ft[ce]=Ft[V]=Ft[Y]=Ft[de]=Ft[he]=Ft[fe]=Ft[pe]=Ft[ve]=Ft[$]=Ft[Q]=Ft[J]=Ft[ne]=Ft[ie]=Ft[re]=Ft[oe]=Ft[ge]=Ft[me]=Ft[_e]=Ft[ye]=!0,Ft[K]=Ft[q]=Ft[se]=!1;var jt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ht=parseFloat,Bt=parseInt,zt="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,Wt="object"==typeof self&&self&&self.Object===Object&&self,Vt=zt||Wt||Function("return this")(),Yt=t&&!t.nodeType&&t,Ut=Yt&&e&&!e.nodeType&&e,Kt=Ut&&Ut.exports===Yt,qt=Kt&&zt.process,Gt=function(){try{var e=Ut&&Ut.require&&Ut.require("util").types;return e||qt&&qt.binding&&qt.binding("util")}catch(t){}}(),$t=Gt&&Gt.isArrayBuffer,Qt=Gt&&Gt.isDate,Xt=Gt&&Gt.isMap,Jt=Gt&&Gt.isRegExp,en=Gt&&Gt.isSet,tn=Gt&&Gt.isTypedArray;function nn(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function rn(e,t,n,i){for(var r=-1,o=null==e?0:e.length;++r<o;){var a=e[r];t(i,a,n(a),e)}return i}function on(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}function an(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function sn(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(!t(e[n],n,e))return!1;return!0}function un(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}function ln(e,t){return!!(null==e?0:e.length)&&yn(e,t,0)>-1}function cn(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}function dn(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}function hn(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}function fn(e,t,n,i){var r=-1,o=null==e?0:e.length;for(i&&o&&(n=e[++r]);++r<o;)n=t(n,e[r],r,e);return n}function pn(e,t,n,i){var r=null==e?0:e.length;for(i&&r&&(n=e[--r]);r--;)n=t(n,e[r],r,e);return n}function vn(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}var gn=kn("length");function mn(e,t,n){var i;return n(e,(function(e,n,r){if(t(e,n,r))return i=n,!1})),i}function _n(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}function yn(e,t,n){return t===t?function(e,t,n){var i=n-1,r=e.length;for(;++i<r;)if(e[i]===t)return i;return-1}(e,t,n):_n(e,wn,n)}function bn(e,t,n,i){for(var r=n-1,o=e.length;++r<o;)if(i(e[r],t))return r;return-1}function wn(e){return e!==e}function Cn(e,t){var n=null==e?0:e.length;return n?Ln(e,t)/n:R}function kn(e){return function(t){return null==t?r:t[e]}}function Sn(e){return function(t){return null==e?r:e[t]}}function xn(e,t,n,i,r){return r(e,(function(e,r,o){n=i?(i=!1,e):t(n,e,r,o)})),n}function Ln(e,t){for(var n,i=-1,o=e.length;++i<o;){var a=t(e[i]);a!==r&&(n=n===r?a:n+a)}return n}function En(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}function Nn(e){return e?e.slice(0,Yn(e)+1).replace(Pe,""):e}function Dn(e){return function(t){return e(t)}}function Mn(e,t){return dn(t,(function(t){return e[t]}))}function Tn(e,t){return e.has(t)}function On(e,t){for(var n=-1,i=e.length;++n<i&&yn(t,e[n],0)>-1;);return n}function In(e,t){for(var n=e.length;n--&&yn(t,e[n],0)>-1;);return n}var An=Sn({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),Pn=Sn({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function Rn(e){return"\\"+jt[e]}function Zn(e){return It.test(e)}function Fn(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function jn(e,t){return function(n){return e(t(n))}}function Hn(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n];a!==t&&a!==d||(e[n]=d,o[r++]=n)}return o}function Bn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function zn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function Wn(e){return Zn(e)?function(e){var t=Tt.lastIndex=0;for(;Tt.test(e);)++t;return t}(e):gn(e)}function Vn(e){return Zn(e)?function(e){return e.match(Tt)||[]}(e):function(e){return e.split("")}(e)}function Yn(e){for(var t=e.length;t--&&Re.test(e.charAt(t)););return t}var Un=Sn({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"});var Kn=function e(t){var n=(t=null==t?Vt:Kn.defaults(Vt.Object(),t,Kn.pick(Vt,Pt))).Array,i=t.Date,Re=t.Error,Je=t.Function,et=t.Math,tt=t.Object,nt=t.RegExp,it=t.String,rt=t.TypeError,ot=n.prototype,at=Je.prototype,st=tt.prototype,ut=t["__core-js_shared__"],lt=at.toString,ct=st.hasOwnProperty,dt=0,ht=function(){var e=/[^.]+$/.exec(ut&&ut.keys&&ut.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),ft=st.toString,pt=lt.call(tt),vt=Vt._,gt=nt("^"+lt.call(ct).replace(Ie,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),mt=Kt?t.Buffer:r,_t=t.Symbol,yt=t.Uint8Array,bt=mt?mt.allocUnsafe:r,wt=jn(tt.getPrototypeOf,tt),Ct=tt.create,kt=st.propertyIsEnumerable,St=ot.splice,xt=_t?_t.isConcatSpreadable:r,Lt=_t?_t.iterator:r,Et=_t?_t.toStringTag:r,Nt=function(){try{var e=Bo(tt,"defineProperty");return e({},"",{}),e}catch(t){}}(),Tt=t.clearTimeout!==Vt.clearTimeout&&t.clearTimeout,It=i&&i.now!==Vt.Date.now&&i.now,jt=t.setTimeout!==Vt.setTimeout&&t.setTimeout,zt=et.ceil,Wt=et.floor,Yt=tt.getOwnPropertySymbols,Ut=mt?mt.isBuffer:r,qt=t.isFinite,Gt=ot.join,gn=jn(tt.keys,tt),Sn=et.max,qn=et.min,Gn=i.now,$n=t.parseInt,Qn=et.random,Xn=ot.reverse,Jn=Bo(t,"DataView"),ei=Bo(t,"Map"),ti=Bo(t,"Promise"),ni=Bo(t,"Set"),ii=Bo(t,"WeakMap"),ri=Bo(tt,"create"),oi=ii&&new ii,ai={},si=fa(Jn),ui=fa(ei),li=fa(ti),ci=fa(ni),di=fa(ii),hi=_t?_t.prototype:r,fi=hi?hi.valueOf:r,pi=hi?hi.toString:r;function vi(e){if(Ms(e)&&!ys(e)&&!(e instanceof yi)){if(e instanceof _i)return e;if(ct.call(e,"__wrapped__"))return pa(e)}return new _i(e)}var gi=function(){function e(){}return function(t){if(!Ds(t))return{};if(Ct)return Ct(t);e.prototype=t;var n=new e;return e.prototype=r,n}}();function mi(){}function _i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=r}function yi(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Z,this.__views__=[]}function bi(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function wi(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ci(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function ki(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Ci;++t<n;)this.add(e[t])}function Si(e){var t=this.__data__=new wi(e);this.size=t.size}function xi(e,t){var n=ys(e),i=!n&&_s(e),r=!n&&!i&&ks(e),o=!n&&!i&&!r&&Fs(e),a=n||i||r||o,s=a?En(e.length,it):[],u=s.length;for(var l in e)!t&&!ct.call(e,l)||a&&("length"==l||r&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||qo(l,u))||s.push(l);return s}function Li(e){var t=e.length;return t?e[kr(0,t-1)]:r}function Ei(e,t){return ca(ro(e),Ri(t,0,e.length))}function Ni(e){return ca(ro(e))}function Di(e,t,n){(n!==r&&!vs(e[t],n)||n===r&&!(t in e))&&Ai(e,t,n)}function Mi(e,t,n){var i=e[t];ct.call(e,t)&&vs(i,n)&&(n!==r||t in e)||Ai(e,t,n)}function Ti(e,t){for(var n=e.length;n--;)if(vs(e[n][0],t))return n;return-1}function Oi(e,t,n,i){return Bi(e,(function(e,r,o){t(i,e,n(e),o)})),i}function Ii(e,t){return e&&oo(t,au(t),e)}function Ai(e,t,n){"__proto__"==t&&Nt?Nt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Pi(e,t){for(var i=-1,o=t.length,a=n(o),s=null==e;++i<o;)a[i]=s?r:tu(e,t[i]);return a}function Ri(e,t,n){return e===e&&(n!==r&&(e=e<=n?e:n),t!==r&&(e=e>=t?e:t)),e}function Zi(e,t,n,i,o,a){var s,u=t&h,l=t&f,c=t&p;if(n&&(s=o?n(e,i,o,a):n(e)),s!==r)return s;if(!Ds(e))return e;var d=ys(e);if(d){if(s=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&ct.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!u)return ro(e,s)}else{var v=Vo(e),g=v==q||v==G;if(ks(e))return Xr(e,u);if(v==J||v==B||g&&!o){if(s=l||g?{}:Uo(e),!u)return l?function(e,t){return oo(e,Wo(e),t)}(e,function(e,t){return e&&oo(t,su(t),e)}(s,e)):function(e,t){return oo(e,zo(e),t)}(e,Ii(s,e))}else{if(!Ft[v])return o?e:{};s=function(e,t,n){var i=e.constructor;switch(t){case le:return Jr(e);case V:case Y:return new i(+e);case ce:return function(e,t){var n=t?Jr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case de:case he:case fe:case pe:case ve:case ge:case me:case _e:case ye:return eo(e,n);case $:return new i;case Q:case re:return new i(e);case ne:return function(e){var t=new e.constructor(e.source,Ve.exec(e));return t.lastIndex=e.lastIndex,t}(e);case ie:return new i;case oe:return r=e,fi?tt(fi.call(r)):{}}var r}(e,v,u)}}a||(a=new Si);var m=a.get(e);if(m)return m;a.set(e,s),Ps(e)?e.forEach((function(i){s.add(Zi(i,t,n,i,e,a))})):Ts(e)&&e.forEach((function(i,r){s.set(r,Zi(i,t,n,r,e,a))}));var _=d?r:(c?l?Ao:Io:l?su:au)(e);return on(_||e,(function(i,r){_&&(i=e[r=i]),Mi(s,r,Zi(i,t,n,r,e,a))})),s}function Fi(e,t,n){var i=n.length;if(null==e)return!i;for(e=tt(e);i--;){var o=n[i],a=t[o],s=e[o];if(s===r&&!(o in e)||!a(s))return!1}return!0}function ji(e,t,n){if("function"!=typeof e)throw new rt(s);return aa((function(){e.apply(r,n)}),t)}function Hi(e,t,n,i){var r=-1,a=ln,s=!0,u=e.length,l=[],c=t.length;if(!u)return l;n&&(t=dn(t,Dn(n))),i?(a=cn,s=!1):t.length>=o&&(a=Tn,s=!1,t=new ki(t));e:for(;++r<u;){var d=e[r],h=null==n?d:n(d);if(d=i||0!==d?d:0,s&&h===h){for(var f=c;f--;)if(t[f]===h)continue e;l.push(d)}else a(t,h,i)||l.push(d)}return l}vi.templateSettings={escape:Ee,evaluate:Ne,interpolate:De,variable:"",imports:{_:vi}},vi.prototype=mi.prototype,vi.prototype.constructor=vi,_i.prototype=gi(mi.prototype),_i.prototype.constructor=_i,yi.prototype=gi(mi.prototype),yi.prototype.constructor=yi,bi.prototype.clear=function(){this.__data__=ri?ri(null):{},this.size=0},bi.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},bi.prototype.get=function(e){var t=this.__data__;if(ri){var n=t[e];return n===l?r:n}return ct.call(t,e)?t[e]:r},bi.prototype.has=function(e){var t=this.__data__;return ri?t[e]!==r:ct.call(t,e)},bi.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ri&&t===r?l:t,this},wi.prototype.clear=function(){this.__data__=[],this.size=0},wi.prototype.delete=function(e){var t=this.__data__,n=Ti(t,e);return!(n<0)&&(n==t.length-1?t.pop():St.call(t,n,1),--this.size,!0)},wi.prototype.get=function(e){var t=this.__data__,n=Ti(t,e);return n<0?r:t[n][1]},wi.prototype.has=function(e){return Ti(this.__data__,e)>-1},wi.prototype.set=function(e,t){var n=this.__data__,i=Ti(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},Ci.prototype.clear=function(){this.size=0,this.__data__={hash:new bi,map:new(ei||wi),string:new bi}},Ci.prototype.delete=function(e){var t=jo(this,e).delete(e);return this.size-=t?1:0,t},Ci.prototype.get=function(e){return jo(this,e).get(e)},Ci.prototype.has=function(e){return jo(this,e).has(e)},Ci.prototype.set=function(e,t){var n=jo(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},ki.prototype.add=ki.prototype.push=function(e){return this.__data__.set(e,l),this},ki.prototype.has=function(e){return this.__data__.has(e)},Si.prototype.clear=function(){this.__data__=new wi,this.size=0},Si.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Si.prototype.get=function(e){return this.__data__.get(e)},Si.prototype.has=function(e){return this.__data__.has(e)},Si.prototype.set=function(e,t){var n=this.__data__;if(n instanceof wi){var i=n.__data__;if(!ei||i.length<o-1)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ci(i)}return n.set(e,t),this.size=n.size,this};var Bi=uo(Gi),zi=uo($i,!0);function Wi(e,t){var n=!0;return Bi(e,(function(e,i,r){return n=!!t(e,i,r)})),n}function Vi(e,t,n){for(var i=-1,o=e.length;++i<o;){var a=e[i],s=t(a);if(null!=s&&(u===r?s===s&&!Zs(s):n(s,u)))var u=s,l=a}return l}function Yi(e,t){var n=[];return Bi(e,(function(e,i,r){t(e,i,r)&&n.push(e)})),n}function Ui(e,t,n,i,r){var o=-1,a=e.length;for(n||(n=Ko),r||(r=[]);++o<a;){var s=e[o];t>0&&n(s)?t>1?Ui(s,t-1,n,i,r):hn(r,s):i||(r[r.length]=s)}return r}var Ki=lo(),qi=lo(!0);function Gi(e,t){return e&&Ki(e,t,au)}function $i(e,t){return e&&qi(e,t,au)}function Qi(e,t){return un(t,(function(t){return Ls(e[t])}))}function Xi(e,t){for(var n=0,i=(t=qr(t,e)).length;null!=e&&n<i;)e=e[ha(t[n++])];return n&&n==i?e:r}function Ji(e,t,n){var i=t(e);return ys(e)?i:hn(i,n(e))}function er(e){return null==e?e===r?ae:X:Et&&Et in tt(e)?function(e){var t=ct.call(e,Et),n=e[Et];try{e[Et]=r;var i=!0}catch(a){}var o=ft.call(e);i&&(t?e[Et]=n:delete e[Et]);return o}(e):function(e){return ft.call(e)}(e)}function tr(e,t){return e>t}function nr(e,t){return null!=e&&ct.call(e,t)}function ir(e,t){return null!=e&&t in tt(e)}function rr(e,t,i){for(var o=i?cn:ln,a=e[0].length,s=e.length,u=s,l=n(s),c=1/0,d=[];u--;){var h=e[u];u&&t&&(h=dn(h,Dn(t))),c=qn(h.length,c),l[u]=!i&&(t||a>=120&&h.length>=120)?new ki(u&&h):r}h=e[0];var f=-1,p=l[0];e:for(;++f<a&&d.length<c;){var v=h[f],g=t?t(v):v;if(v=i||0!==v?v:0,!(p?Tn(p,g):o(d,g,i))){for(u=s;--u;){var m=l[u];if(!(m?Tn(m,g):o(e[u],g,i)))continue e}p&&p.push(g),d.push(v)}}return d}function or(e,t,n){var i=null==(e=ia(e,t=qr(t,e)))?e:e[ha(xa(t))];return null==i?r:nn(i,e,n)}function ar(e){return Ms(e)&&er(e)==B}function sr(e,t,n,i,o){return e===t||(null==e||null==t||!Ms(e)&&!Ms(t)?e!==e&&t!==t:function(e,t,n,i,o,a){var s=ys(e),u=ys(t),l=s?z:Vo(e),c=u?z:Vo(t),d=(l=l==B?J:l)==J,h=(c=c==B?J:c)==J,f=l==c;if(f&&ks(e)){if(!ks(t))return!1;s=!0,d=!1}if(f&&!d)return a||(a=new Si),s||Fs(e)?To(e,t,n,i,o,a):function(e,t,n,i,r,o,a){switch(n){case ce:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case le:return!(e.byteLength!=t.byteLength||!o(new yt(e),new yt(t)));case V:case Y:case Q:return vs(+e,+t);case K:return e.name==t.name&&e.message==t.message;case ne:case re:return e==t+"";case $:var s=Fn;case ie:var u=i&v;if(s||(s=Bn),e.size!=t.size&&!u)return!1;var l=a.get(e);if(l)return l==t;i|=g,a.set(e,t);var c=To(s(e),s(t),i,r,o,a);return a.delete(e),c;case oe:if(fi)return fi.call(e)==fi.call(t)}return!1}(e,t,l,n,i,o,a);if(!(n&v)){var p=d&&ct.call(e,"__wrapped__"),m=h&&ct.call(t,"__wrapped__");if(p||m){var _=p?e.value():e,y=m?t.value():t;return a||(a=new Si),o(_,y,n,i,a)}}if(!f)return!1;return a||(a=new Si),function(e,t,n,i,o,a){var s=n&v,u=Io(e),l=u.length,c=Io(t),d=c.length;if(l!=d&&!s)return!1;var h=l;for(;h--;){var f=u[h];if(!(s?f in t:ct.call(t,f)))return!1}var p=a.get(e),g=a.get(t);if(p&&g)return p==t&&g==e;var m=!0;a.set(e,t),a.set(t,e);var _=s;for(;++h<l;){var y=e[f=u[h]],b=t[f];if(i)var w=s?i(b,y,f,t,e,a):i(y,b,f,e,t,a);if(!(w===r?y===b||o(y,b,n,i,a):w)){m=!1;break}_||(_="constructor"==f)}if(m&&!_){var C=e.constructor,k=t.constructor;C==k||!("constructor"in e)||!("constructor"in t)||"function"==typeof C&&C instanceof C&&"function"==typeof k&&k instanceof k||(m=!1)}return a.delete(e),a.delete(t),m}(e,t,n,i,o,a)}(e,t,n,i,sr,o))}function ur(e,t,n,i){var o=n.length,a=o,s=!i;if(null==e)return!a;for(e=tt(e);o--;){var u=n[o];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++o<a;){var l=(u=n[o])[0],c=e[l],d=u[1];if(s&&u[2]){if(c===r&&!(l in e))return!1}else{var h=new Si;if(i)var f=i(c,d,l,e,t,h);if(!(f===r?sr(d,c,v|g,i,h):f))return!1}}return!0}function lr(e){return!(!Ds(e)||(t=e,ht&&ht in t))&&(Ls(e)?gt:Ke).test(fa(e));var t}function cr(e){return"function"==typeof e?e:null==e?Ou:"object"==typeof e?ys(e)?gr(e[0],e[1]):vr(e):Bu(e)}function dr(e){if(!Jo(e))return gn(e);var t=[];for(var n in tt(e))ct.call(e,n)&&"constructor"!=n&&t.push(n);return t}function hr(e){if(!Ds(e))return function(e){var t=[];if(null!=e)for(var n in tt(e))t.push(n);return t}(e);var t=Jo(e),n=[];for(var i in e)("constructor"!=i||!t&&ct.call(e,i))&&n.push(i);return n}function fr(e,t){return e<t}function pr(e,t){var i=-1,r=ws(e)?n(e.length):[];return Bi(e,(function(e,n,o){r[++i]=t(e,n,o)})),r}function vr(e){var t=Ho(e);return 1==t.length&&t[0][2]?ta(t[0][0],t[0][1]):function(n){return n===e||ur(n,e,t)}}function gr(e,t){return $o(e)&&ea(t)?ta(ha(e),t):function(n){var i=tu(n,e);return i===r&&i===t?nu(n,e):sr(t,i,v|g)}}function mr(e,t,n,i,o){e!==t&&Ki(t,(function(a,s){if(o||(o=new Si),Ds(a))!function(e,t,n,i,o,a,s){var u=ra(e,n),l=ra(t,n),c=s.get(l);if(c)return void Di(e,n,c);var d=a?a(u,l,n+"",e,t,s):r,h=d===r;if(h){var f=ys(l),p=!f&&ks(l),v=!f&&!p&&Fs(l);d=l,f||p||v?ys(u)?d=u:Cs(u)?d=ro(u):p?(h=!1,d=Xr(l,!0)):v?(h=!1,d=eo(l,!0)):d=[]:Is(l)||_s(l)?(d=u,_s(u)?d=Us(u):Ds(u)&&!Ls(u)||(d=Uo(l))):h=!1}h&&(s.set(l,d),o(d,l,i,a,s),s.delete(l));Di(e,n,d)}(e,t,s,n,mr,i,o);else{var u=i?i(ra(e,s),a,s+"",e,t,o):r;u===r&&(u=a),Di(e,s,u)}}),su)}function _r(e,t){var n=e.length;if(n)return qo(t+=t<0?n:0,n)?e[t]:r}function yr(e,t,n){t=t.length?dn(t,(function(e){return ys(e)?function(t){return Xi(t,1===e.length?e[0]:e)}:e})):[Ou];var i=-1;t=dn(t,Dn(Fo()));var r=pr(e,(function(e,n,r){var o=dn(t,(function(t){return t(e)}));return{criteria:o,index:++i,value:e}}));return function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}(r,(function(e,t){return function(e,t,n){var i=-1,r=e.criteria,o=t.criteria,a=r.length,s=n.length;for(;++i<a;){var u=to(r[i],o[i]);if(u)return i>=s?u:u*("desc"==n[i]?-1:1)}return e.index-t.index}(e,t,n)}))}function br(e,t,n){for(var i=-1,r=t.length,o={};++i<r;){var a=t[i],s=Xi(e,a);n(s,a)&&Nr(o,qr(a,e),s)}return o}function wr(e,t,n,i){var r=i?bn:yn,o=-1,a=t.length,s=e;for(e===t&&(t=ro(t)),n&&(s=dn(e,Dn(n)));++o<a;)for(var u=0,l=t[o],c=n?n(l):l;(u=r(s,c,u,i))>-1;)s!==e&&St.call(s,u,1),St.call(e,u,1);return e}function Cr(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==o){var o=r;qo(r)?St.call(e,r,1):Hr(e,r)}}return e}function kr(e,t){return e+Wt(Qn()*(t-e+1))}function Sr(e,t){var n="";if(!e||t<1||t>A)return n;do{t%2&&(n+=e),(t=Wt(t/2))&&(e+=e)}while(t);return n}function xr(e,t){return sa(na(e,t,Ou),e+"")}function Lr(e){return Li(vu(e))}function Er(e,t){var n=vu(e);return ca(n,Ri(t,0,n.length))}function Nr(e,t,n,i){if(!Ds(e))return e;for(var o=-1,a=(t=qr(t,e)).length,s=a-1,u=e;null!=u&&++o<a;){var l=ha(t[o]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(o!=s){var d=u[l];(c=i?i(d,l,u):r)===r&&(c=Ds(d)?d:qo(t[o+1])?[]:{})}Mi(u,l,c),u=u[l]}return e}var Dr=oi?function(e,t){return oi.set(e,t),e}:Ou,Mr=Nt?function(e,t){return Nt(e,"toString",{configurable:!0,enumerable:!1,value:Du(t),writable:!0})}:Ou;function Tr(e){return ca(vu(e))}function Or(e,t,i){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(i=i>o?o:i)<0&&(i+=o),o=t>i?0:i-t>>>0,t>>>=0;for(var a=n(o);++r<o;)a[r]=e[r+t];return a}function Ir(e,t){var n;return Bi(e,(function(e,i,r){return!(n=t(e,i,r))})),!!n}function Ar(e,t,n){var i=0,r=null==e?i:e.length;if("number"==typeof t&&t===t&&r<=j){for(;i<r;){var o=i+r>>>1,a=e[o];null!==a&&!Zs(a)&&(n?a<=t:a<t)?i=o+1:r=o}return r}return Pr(e,t,Ou,n)}function Pr(e,t,n,i){var o=0,a=null==e?0:e.length;if(0===a)return 0;for(var s=(t=n(t))!==t,u=null===t,l=Zs(t),c=t===r;o<a;){var d=Wt((o+a)/2),h=n(e[d]),f=h!==r,p=null===h,v=h===h,g=Zs(h);if(s)var m=i||v;else m=c?v&&(i||f):u?v&&f&&(i||!p):l?v&&f&&!p&&(i||!g):!p&&!g&&(i?h<=t:h<t);m?o=d+1:a=d}return qn(a,F)}function Rr(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n],s=t?t(a):a;if(!n||!vs(s,u)){var u=s;o[r++]=0===a?0:a}}return o}function Zr(e){return"number"==typeof e?e:Zs(e)?R:+e}function Fr(e){if("string"==typeof e)return e;if(ys(e))return dn(e,Fr)+"";if(Zs(e))return pi?pi.call(e):"";var t=e+"";return"0"==t&&1/e==-I?"-0":t}function jr(e,t,n){var i=-1,r=ln,a=e.length,s=!0,u=[],l=u;if(n)s=!1,r=cn;else if(a>=o){var c=t?null:xo(e);if(c)return Bn(c);s=!1,r=Tn,l=new ki}else l=t?[]:u;e:for(;++i<a;){var d=e[i],h=t?t(d):d;if(d=n||0!==d?d:0,s&&h===h){for(var f=l.length;f--;)if(l[f]===h)continue e;t&&l.push(h),u.push(d)}else r(l,h,n)||(l!==u&&l.push(h),u.push(d))}return u}function Hr(e,t){return null==(e=ia(e,t=qr(t,e)))||delete e[ha(xa(t))]}function Br(e,t,n,i){return Nr(e,t,n(Xi(e,t)),i)}function zr(e,t,n,i){for(var r=e.length,o=i?r:-1;(i?o--:++o<r)&&t(e[o],o,e););return n?Or(e,i?0:o,i?o+1:r):Or(e,i?o+1:0,i?r:o)}function Wr(e,t){var n=e;return n instanceof yi&&(n=n.value()),fn(t,(function(e,t){return t.func.apply(t.thisArg,hn([e],t.args))}),n)}function Vr(e,t,i){var r=e.length;if(r<2)return r?jr(e[0]):[];for(var o=-1,a=n(r);++o<r;)for(var s=e[o],u=-1;++u<r;)u!=o&&(a[o]=Hi(a[o]||s,e[u],t,i));return jr(Ui(a,1),t,i)}function Yr(e,t,n){for(var i=-1,o=e.length,a=t.length,s={};++i<o;){var u=i<a?t[i]:r;n(s,e[i],u)}return s}function Ur(e){return Cs(e)?e:[]}function Kr(e){return"function"==typeof e?e:Ou}function qr(e,t){return ys(e)?e:$o(e,t)?[e]:da(Ks(e))}var Gr=xr;function $r(e,t,n){var i=e.length;return n=n===r?i:n,!t&&n>=i?e:Or(e,t,n)}var Qr=Tt||function(e){return Vt.clearTimeout(e)};function Xr(e,t){if(t)return e.slice();var n=e.length,i=bt?bt(n):new e.constructor(n);return e.copy(i),i}function Jr(e){var t=new e.constructor(e.byteLength);return new yt(t).set(new yt(e)),t}function eo(e,t){var n=t?Jr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function to(e,t){if(e!==t){var n=e!==r,i=null===e,o=e===e,a=Zs(e),s=t!==r,u=null===t,l=t===t,c=Zs(t);if(!u&&!c&&!a&&e>t||a&&s&&l&&!u&&!c||i&&s&&l||!n&&l||!o)return 1;if(!i&&!a&&!c&&e<t||c&&n&&o&&!i&&!a||u&&n&&o||!s&&o||!l)return-1}return 0}function no(e,t,i,r){for(var o=-1,a=e.length,s=i.length,u=-1,l=t.length,c=Sn(a-s,0),d=n(l+c),h=!r;++u<l;)d[u]=t[u];for(;++o<s;)(h||o<a)&&(d[i[o]]=e[o]);for(;c--;)d[u++]=e[o++];return d}function io(e,t,i,r){for(var o=-1,a=e.length,s=-1,u=i.length,l=-1,c=t.length,d=Sn(a-u,0),h=n(d+c),f=!r;++o<d;)h[o]=e[o];for(var p=o;++l<c;)h[p+l]=t[l];for(;++s<u;)(f||o<a)&&(h[p+i[s]]=e[o++]);return h}function ro(e,t){var i=-1,r=e.length;for(t||(t=n(r));++i<r;)t[i]=e[i];return t}function oo(e,t,n,i){var o=!n;n||(n={});for(var a=-1,s=t.length;++a<s;){var u=t[a],l=i?i(n[u],e[u],u,n,e):r;l===r&&(l=e[u]),o?Ai(n,u,l):Mi(n,u,l)}return n}function ao(e,t){return function(n,i){var r=ys(n)?rn:Oi,o=t?t():{};return r(n,e,Fo(i,2),o)}}function so(e){return xr((function(t,n){var i=-1,o=n.length,a=o>1?n[o-1]:r,s=o>2?n[2]:r;for(a=e.length>3&&"function"==typeof a?(o--,a):r,s&&Go(n[0],n[1],s)&&(a=o<3?r:a,o=1),t=tt(t);++i<o;){var u=n[i];u&&e(t,u,i,a)}return t}))}function uo(e,t){return function(n,i){if(null==n)return n;if(!ws(n))return e(n,i);for(var r=n.length,o=t?r:-1,a=tt(n);(t?o--:++o<r)&&!1!==i(a[o],o,a););return n}}function lo(e){return function(t,n,i){for(var r=-1,o=tt(t),a=i(t),s=a.length;s--;){var u=a[e?s:++r];if(!1===n(o[u],u,o))break}return t}}function co(e){return function(t){var n=Zn(t=Ks(t))?Vn(t):r,i=n?n[0]:t.charAt(0),o=n?$r(n,1).join(""):t.slice(1);return i[e]()+o}}function ho(e){return function(t){return fn(Lu(_u(t).replace(Dt,"")),e,"")}}function fo(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=gi(e.prototype),i=e.apply(n,t);return Ds(i)?i:n}}function po(e){return function(t,n,i){var o=tt(t);if(!ws(t)){var a=Fo(n,3);t=au(t),n=function(e){return a(o[e],e,o)}}var s=e(t,n,i);return s>-1?o[a?t[s]:s]:r}}function vo(e){return Oo((function(t){var n=t.length,i=n,o=_i.prototype.thru;for(e&&t.reverse();i--;){var a=t[i];if("function"!=typeof a)throw new rt(s);if(o&&!u&&"wrapper"==Ro(a))var u=new _i([],!0)}for(i=u?i:n;++i<n;){var l=Ro(a=t[i]),c="wrapper"==l?Po(a):r;u=c&&Qo(c[0])&&c[1]==(S|b|C|x)&&!c[4].length&&1==c[9]?u[Ro(c[0])].apply(u,c[3]):1==a.length&&Qo(a)?u[l]():u.thru(a)}return function(){var e=arguments,i=e[0];if(u&&1==e.length&&ys(i))return u.plant(i).value();for(var r=0,o=n?t[r].apply(this,e):i;++r<n;)o=t[r].call(this,o);return o}}))}function go(e,t,i,o,a,s,u,l,c,d){var h=t&S,f=t&m,p=t&_,v=t&(b|w),g=t&L,y=p?r:fo(e);return function m(){for(var _=arguments.length,b=n(_),w=_;w--;)b[w]=arguments[w];if(v)var C=Zo(m),k=function(e,t){for(var n=e.length,i=0;n--;)e[n]===t&&++i;return i}(b,C);if(o&&(b=no(b,o,a,v)),s&&(b=io(b,s,u,v)),_-=k,v&&_<d){var S=Hn(b,C);return ko(e,t,go,m.placeholder,i,b,S,l,c,d-_)}var x=f?i:this,L=p?x[e]:e;return _=b.length,l?b=function(e,t){var n=e.length,i=qn(t.length,n),o=ro(e);for(;i--;){var a=t[i];e[i]=qo(a,n)?o[a]:r}return e}(b,l):g&&_>1&&b.reverse(),h&&c<_&&(b.length=c),this&&this!==Vt&&this instanceof m&&(L=y||fo(L)),L.apply(x,b)}}function mo(e,t){return function(n,i){return function(e,t,n,i){return Gi(e,(function(e,r,o){t(i,n(e),r,o)})),i}(n,e,t(i),{})}}function _o(e,t){return function(n,i){var o;if(n===r&&i===r)return t;if(n!==r&&(o=n),i!==r){if(o===r)return i;"string"==typeof n||"string"==typeof i?(n=Fr(n),i=Fr(i)):(n=Zr(n),i=Zr(i)),o=e(n,i)}return o}}function yo(e){return Oo((function(t){return t=dn(t,Dn(Fo())),xr((function(n){var i=this;return e(t,(function(e){return nn(e,i,n)}))}))}))}function bo(e,t){var n=(t=t===r?" ":Fr(t)).length;if(n<2)return n?Sr(t,e):t;var i=Sr(t,zt(e/Wn(t)));return Zn(t)?$r(Vn(i),0,e).join(""):i.slice(0,e)}function wo(e){return function(t,i,o){return o&&"number"!=typeof o&&Go(t,i,o)&&(i=o=r),t=zs(t),i===r?(i=t,t=0):i=zs(i),function(e,t,i,r){for(var o=-1,a=Sn(zt((t-e)/(i||1)),0),s=n(a);a--;)s[r?a:++o]=e,e+=i;return s}(t,i,o=o===r?t<i?1:-1:zs(o),e)}}function Co(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=Ys(t),n=Ys(n)),e(t,n)}}function ko(e,t,n,i,o,a,s,u,l,c){var d=t&b;t|=d?C:k,(t&=~(d?k:C))&y||(t&=~(m|_));var h=[e,t,o,d?a:r,d?s:r,d?r:a,d?r:s,u,l,c],f=n.apply(r,h);return Qo(e)&&oa(f,h),f.placeholder=i,ua(f,e,t)}function So(e){var t=et[e];return function(e,n){if(e=Ys(e),(n=null==n?0:qn(Ws(n),292))&&qt(e)){var i=(Ks(e)+"e").split("e");return+((i=(Ks(t(i[0]+"e"+(+i[1]+n)))+"e").split("e"))[0]+"e"+(+i[1]-n))}return t(e)}}var xo=ni&&1/Bn(new ni([,-0]))[1]==I?function(e){return new ni(e)}:Zu;function Lo(e){return function(t){var n=Vo(t);return n==$?Fn(t):n==ie?zn(t):function(e,t){return dn(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Eo(e,t,i,o,a,u,l,c){var h=t&_;if(!h&&"function"!=typeof e)throw new rt(s);var f=o?o.length:0;if(f||(t&=~(C|k),o=a=r),l=l===r?l:Sn(Ws(l),0),c=c===r?c:Ws(c),f-=a?a.length:0,t&k){var p=o,v=a;o=a=r}var g=h?r:Po(e),L=[e,t,i,o,a,p,v,u,l,c];if(g&&function(e,t){var n=e[1],i=t[1],r=n|i,o=r<(m|_|S),a=i==S&&n==b||i==S&&n==x&&e[7].length<=t[8]||i==(S|x)&&t[7].length<=t[8]&&n==b;if(!o&&!a)return e;i&m&&(e[2]=t[2],r|=n&m?0:y);var s=t[3];if(s){var u=e[3];e[3]=u?no(u,s,t[4]):s,e[4]=u?Hn(e[3],d):t[4]}(s=t[5])&&(u=e[5],e[5]=u?io(u,s,t[6]):s,e[6]=u?Hn(e[5],d):t[6]);(s=t[7])&&(e[7]=s);i&S&&(e[8]=null==e[8]?t[8]:qn(e[8],t[8]));null==e[9]&&(e[9]=t[9]);e[0]=t[0],e[1]=r}(L,g),e=L[0],t=L[1],i=L[2],o=L[3],a=L[4],!(c=L[9]=L[9]===r?h?0:e.length:Sn(L[9]-f,0))&&t&(b|w)&&(t&=~(b|w)),t&&t!=m)E=t==b||t==w?function(e,t,i){var o=fo(e);return function a(){for(var s=arguments.length,u=n(s),l=s,c=Zo(a);l--;)u[l]=arguments[l];var d=s<3&&u[0]!==c&&u[s-1]!==c?[]:Hn(u,c);return(s-=d.length)<i?ko(e,t,go,a.placeholder,r,u,d,r,r,i-s):nn(this&&this!==Vt&&this instanceof a?o:e,this,u)}}(e,t,c):t!=C&&t!=(m|C)||a.length?go.apply(r,L):function(e,t,i,r){var o=t&m,a=fo(e);return function t(){for(var s=-1,u=arguments.length,l=-1,c=r.length,d=n(c+u),h=this&&this!==Vt&&this instanceof t?a:e;++l<c;)d[l]=r[l];for(;u--;)d[l++]=arguments[++s];return nn(h,o?i:this,d)}}(e,t,i,o);else var E=function(e,t,n){var i=t&m,r=fo(e);return function t(){return(this&&this!==Vt&&this instanceof t?r:e).apply(i?n:this,arguments)}}(e,t,i);return ua((g?Dr:oa)(E,L),e,t)}function No(e,t,n,i){return e===r||vs(e,st[n])&&!ct.call(i,n)?t:e}function Do(e,t,n,i,o,a){return Ds(e)&&Ds(t)&&(a.set(t,e),mr(e,t,r,Do,a),a.delete(t)),e}function Mo(e){return Is(e)?r:e}function To(e,t,n,i,o,a){var s=n&v,u=e.length,l=t.length;if(u!=l&&!(s&&l>u))return!1;var c=a.get(e),d=a.get(t);if(c&&d)return c==t&&d==e;var h=-1,f=!0,p=n&g?new ki:r;for(a.set(e,t),a.set(t,e);++h<u;){var m=e[h],_=t[h];if(i)var y=s?i(_,m,h,t,e,a):i(m,_,h,e,t,a);if(y!==r){if(y)continue;f=!1;break}if(p){if(!vn(t,(function(e,t){if(!Tn(p,t)&&(m===e||o(m,e,n,i,a)))return p.push(t)}))){f=!1;break}}else if(m!==_&&!o(m,_,n,i,a)){f=!1;break}}return a.delete(e),a.delete(t),f}function Oo(e){return sa(na(e,r,ba),e+"")}function Io(e){return Ji(e,au,zo)}function Ao(e){return Ji(e,su,Wo)}var Po=oi?function(e){return oi.get(e)}:Zu;function Ro(e){for(var t=e.name+"",n=ai[t],i=ct.call(ai,t)?n.length:0;i--;){var r=n[i],o=r.func;if(null==o||o==e)return r.name}return t}function Zo(e){return(ct.call(vi,"placeholder")?vi:e).placeholder}function Fo(){var e=vi.iteratee||Iu;return e=e===Iu?cr:e,arguments.length?e(arguments[0],arguments[1]):e}function jo(e,t){var n=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?n["string"==typeof t?"string":"hash"]:n.map}function Ho(e){for(var t=au(e),n=t.length;n--;){var i=t[n],r=e[i];t[n]=[i,r,ea(r)]}return t}function Bo(e,t){var n=function(e,t){return null==e?r:e[t]}(e,t);return lr(n)?n:r}var zo=Yt?function(e){return null==e?[]:(e=tt(e),un(Yt(e),(function(t){return kt.call(e,t)})))}:Vu,Wo=Yt?function(e){for(var t=[];e;)hn(t,zo(e)),e=wt(e);return t}:Vu,Vo=er;function Yo(e,t,n){for(var i=-1,r=(t=qr(t,e)).length,o=!1;++i<r;){var a=ha(t[i]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++i!=r?o:!!(r=null==e?0:e.length)&&Ns(r)&&qo(a,r)&&(ys(e)||_s(e))}function Uo(e){return"function"!=typeof e.constructor||Jo(e)?{}:gi(wt(e))}function Ko(e){return ys(e)||_s(e)||!!(xt&&e&&e[xt])}function qo(e,t){var n=typeof e;return!!(t=null==t?A:t)&&("number"==n||"symbol"!=n&&Ge.test(e))&&e>-1&&e%1==0&&e<t}function Go(e,t,n){if(!Ds(n))return!1;var i=typeof t;return!!("number"==i?ws(n)&&qo(t,n.length):"string"==i&&t in n)&&vs(n[t],e)}function $o(e,t){if(ys(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Zs(e))||(Te.test(e)||!Me.test(e)||null!=t&&e in tt(t))}function Qo(e){var t=Ro(e),n=vi[t];if("function"!=typeof n||!(t in yi.prototype))return!1;if(e===n)return!0;var i=Po(n);return!!i&&e===i[0]}(Jn&&Vo(new Jn(new ArrayBuffer(1)))!=ce||ei&&Vo(new ei)!=$||ti&&Vo(ti.resolve())!=ee||ni&&Vo(new ni)!=ie||ii&&Vo(new ii)!=se)&&(Vo=function(e){var t=er(e),n=t==J?e.constructor:r,i=n?fa(n):"";if(i)switch(i){case si:return ce;case ui:return $;case li:return ee;case ci:return ie;case di:return se}return t});var Xo=ut?Ls:Yu;function Jo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||st)}function ea(e){return e===e&&!Ds(e)}function ta(e,t){return function(n){return null!=n&&(n[e]===t&&(t!==r||e in tt(n)))}}function na(e,t,i){return t=Sn(t===r?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=Sn(r.length-t,0),s=n(a);++o<a;)s[o]=r[t+o];o=-1;for(var u=n(t+1);++o<t;)u[o]=r[o];return u[t]=i(s),nn(e,this,u)}}function ia(e,t){return t.length<2?e:Xi(e,Or(t,0,-1))}function ra(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}var oa=la(Dr),aa=jt||function(e,t){return Vt.setTimeout(e,t)},sa=la(Mr);function ua(e,t,n){var i=t+"";return sa(e,function(e,t){var n=t.length;if(!n)return e;var i=n-1;return t[i]=(n>1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(Ze,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return on(H,(function(n){var i="_."+n[0];t&n[1]&&!ln(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(Fe);return t?t[1].split(je):[]}(i),n)))}function la(e){var t=0,n=0;return function(){var i=Gn(),o=M-(i-n);if(n=i,o>0){if(++t>=D)return arguments[0]}else t=0;return e.apply(r,arguments)}}function ca(e,t){var n=-1,i=e.length,o=i-1;for(t=t===r?i:t;++n<t;){var a=kr(n,o),s=e[a];e[a]=e[n],e[n]=s}return e.length=t,e}var da=function(e){var t=ls(e,(function(e){return n.size===c&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Oe,(function(e,n,i,r){t.push(i?r.replace(ze,"$1"):n||e)})),t}));function ha(e){if("string"==typeof e||Zs(e))return e;var t=e+"";return"0"==t&&1/e==-I?"-0":t}function fa(e){if(null!=e){try{return lt.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function pa(e){if(e instanceof yi)return e.clone();var t=new _i(e.__wrapped__,e.__chain__);return t.__actions__=ro(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var va=xr((function(e,t){return Cs(e)?Hi(e,Ui(t,1,Cs,!0)):[]})),ga=xr((function(e,t){var n=xa(t);return Cs(n)&&(n=r),Cs(e)?Hi(e,Ui(t,1,Cs,!0),Fo(n,2)):[]})),ma=xr((function(e,t){var n=xa(t);return Cs(n)&&(n=r),Cs(e)?Hi(e,Ui(t,1,Cs,!0),r,n):[]}));function _a(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:Ws(n);return r<0&&(r=Sn(i+r,0)),_n(e,Fo(t,3),r)}function ya(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var o=i-1;return n!==r&&(o=Ws(n),o=n<0?Sn(i+o,0):qn(o,i-1)),_n(e,Fo(t,3),o,!0)}function ba(e){return(null==e?0:e.length)?Ui(e,1):[]}function wa(e){return e&&e.length?e[0]:r}var Ca=xr((function(e){var t=dn(e,Ur);return t.length&&t[0]===e[0]?rr(t):[]})),ka=xr((function(e){var t=xa(e),n=dn(e,Ur);return t===xa(n)?t=r:n.pop(),n.length&&n[0]===e[0]?rr(n,Fo(t,2)):[]})),Sa=xr((function(e){var t=xa(e),n=dn(e,Ur);return(t="function"==typeof t?t:r)&&n.pop(),n.length&&n[0]===e[0]?rr(n,r,t):[]}));function xa(e){var t=null==e?0:e.length;return t?e[t-1]:r}var La=xr(Ea);function Ea(e,t){return e&&e.length&&t&&t.length?wr(e,t):e}var Na=Oo((function(e,t){var n=null==e?0:e.length,i=Pi(e,t);return Cr(e,dn(t,(function(e){return qo(e,n)?+e:e})).sort(to)),i}));function Da(e){return null==e?e:Xn.call(e)}var Ma=xr((function(e){return jr(Ui(e,1,Cs,!0))})),Ta=xr((function(e){var t=xa(e);return Cs(t)&&(t=r),jr(Ui(e,1,Cs,!0),Fo(t,2))})),Oa=xr((function(e){var t=xa(e);return t="function"==typeof t?t:r,jr(Ui(e,1,Cs,!0),r,t)}));function Ia(e){if(!e||!e.length)return[];var t=0;return e=un(e,(function(e){if(Cs(e))return t=Sn(e.length,t),!0})),En(t,(function(t){return dn(e,kn(t))}))}function Aa(e,t){if(!e||!e.length)return[];var n=Ia(e);return null==t?n:dn(n,(function(e){return nn(t,r,e)}))}var Pa=xr((function(e,t){return Cs(e)?Hi(e,t):[]})),Ra=xr((function(e){return Vr(un(e,Cs))})),Za=xr((function(e){var t=xa(e);return Cs(t)&&(t=r),Vr(un(e,Cs),Fo(t,2))})),Fa=xr((function(e){var t=xa(e);return t="function"==typeof t?t:r,Vr(un(e,Cs),r,t)})),ja=xr(Ia);var Ha=xr((function(e){var t=e.length,n=t>1?e[t-1]:r;return n="function"==typeof n?(e.pop(),n):r,Aa(e,n)}));function Ba(e){var t=vi(e);return t.__chain__=!0,t}function za(e,t){return t(e)}var Wa=Oo((function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,o=function(t){return Pi(t,e)};return!(t>1||this.__actions__.length)&&i instanceof yi&&qo(n)?((i=i.slice(n,+n+(t?1:0))).__actions__.push({func:za,args:[o],thisArg:r}),new _i(i,this.__chain__).thru((function(e){return t&&!e.length&&e.push(r),e}))):this.thru(o)}));var Va=ao((function(e,t,n){ct.call(e,n)?++e[n]:Ai(e,n,1)}));var Ya=po(_a),Ua=po(ya);function Ka(e,t){return(ys(e)?on:Bi)(e,Fo(t,3))}function qa(e,t){return(ys(e)?an:zi)(e,Fo(t,3))}var Ga=ao((function(e,t,n){ct.call(e,n)?e[n].push(t):Ai(e,n,[t])}));var $a=xr((function(e,t,i){var r=-1,o="function"==typeof t,a=ws(e)?n(e.length):[];return Bi(e,(function(e){a[++r]=o?nn(t,e,i):or(e,t,i)})),a})),Qa=ao((function(e,t,n){Ai(e,n,t)}));function Xa(e,t){return(ys(e)?dn:pr)(e,Fo(t,3))}var Ja=ao((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var es=xr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&Go(e,t[0],t[1])?t=[]:n>2&&Go(t[0],t[1],t[2])&&(t=[t[0]]),yr(e,Ui(t,1),[])})),ts=It||function(){return Vt.Date.now()};function ns(e,t,n){return t=n?r:t,t=e&&null==t?e.length:t,Eo(e,S,r,r,r,r,t)}function is(e,t){var n;if("function"!=typeof t)throw new rt(s);return e=Ws(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=r),n}}var rs=xr((function(e,t,n){var i=m;if(n.length){var r=Hn(n,Zo(rs));i|=C}return Eo(e,i,t,n,r)})),os=xr((function(e,t,n){var i=m|_;if(n.length){var r=Hn(n,Zo(os));i|=C}return Eo(t,i,e,n,r)}));function as(e,t,n){var i,o,a,u,l,c,d=0,h=!1,f=!1,p=!0;if("function"!=typeof e)throw new rt(s);function v(t){var n=i,a=o;return i=o=r,d=t,u=e.apply(a,n)}function g(e){var n=e-c;return c===r||n>=t||n<0||f&&e-d>=a}function m(){var e=ts();if(g(e))return _(e);l=aa(m,function(e){var n=t-(e-c);return f?qn(n,a-(e-d)):n}(e))}function _(e){return l=r,p&&i?v(e):(i=o=r,u)}function y(){var e=ts(),n=g(e);if(i=arguments,o=this,c=e,n){if(l===r)return function(e){return d=e,l=aa(m,t),h?v(e):u}(c);if(f)return Qr(l),l=aa(m,t),v(c)}return l===r&&(l=aa(m,t)),u}return t=Ys(t)||0,Ds(n)&&(h=!!n.leading,a=(f="maxWait"in n)?Sn(Ys(n.maxWait)||0,t):a,p="trailing"in n?!!n.trailing:p),y.cancel=function(){l!==r&&Qr(l),d=0,i=c=o=l=r},y.flush=function(){return l===r?u:_(ts())},y}var ss=xr((function(e,t){return ji(e,1,t)})),us=xr((function(e,t,n){return ji(e,Ys(t)||0,n)}));function ls(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new rt(s);var n=function n(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(ls.Cache||Ci),n}function cs(e){if("function"!=typeof e)throw new rt(s);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ls.Cache=Ci;var ds=Gr((function(e,t){var n=(t=1==t.length&&ys(t[0])?dn(t[0],Dn(Fo())):dn(Ui(t,1),Dn(Fo()))).length;return xr((function(i){for(var r=-1,o=qn(i.length,n);++r<o;)i[r]=t[r].call(this,i[r]);return nn(e,this,i)}))})),hs=xr((function(e,t){var n=Hn(t,Zo(hs));return Eo(e,C,r,t,n)})),fs=xr((function(e,t){var n=Hn(t,Zo(fs));return Eo(e,k,r,t,n)})),ps=Oo((function(e,t){return Eo(e,x,r,r,r,t)}));function vs(e,t){return e===t||e!==e&&t!==t}var gs=Co(tr),ms=Co((function(e,t){return e>=t})),_s=ar(function(){return arguments}())?ar:function(e){return Ms(e)&&ct.call(e,"callee")&&!kt.call(e,"callee")},ys=n.isArray,bs=$t?Dn($t):function(e){return Ms(e)&&er(e)==le};function ws(e){return null!=e&&Ns(e.length)&&!Ls(e)}function Cs(e){return Ms(e)&&ws(e)}var ks=Ut||Yu,Ss=Qt?Dn(Qt):function(e){return Ms(e)&&er(e)==Y};function xs(e){if(!Ms(e))return!1;var t=er(e);return t==K||t==U||"string"==typeof e.message&&"string"==typeof e.name&&!Is(e)}function Ls(e){if(!Ds(e))return!1;var t=er(e);return t==q||t==G||t==W||t==te}function Es(e){return"number"==typeof e&&e==Ws(e)}function Ns(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=A}function Ds(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ms(e){return null!=e&&"object"==typeof e}var Ts=Xt?Dn(Xt):function(e){return Ms(e)&&Vo(e)==$};function Os(e){return"number"==typeof e||Ms(e)&&er(e)==Q}function Is(e){if(!Ms(e)||er(e)!=J)return!1;var t=wt(e);if(null===t)return!0;var n=ct.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&lt.call(n)==pt}var As=Jt?Dn(Jt):function(e){return Ms(e)&&er(e)==ne};var Ps=en?Dn(en):function(e){return Ms(e)&&Vo(e)==ie};function Rs(e){return"string"==typeof e||!ys(e)&&Ms(e)&&er(e)==re}function Zs(e){return"symbol"==typeof e||Ms(e)&&er(e)==oe}var Fs=tn?Dn(tn):function(e){return Ms(e)&&Ns(e.length)&&!!Zt[er(e)]};var js=Co(fr),Hs=Co((function(e,t){return e<=t}));function Bs(e){if(!e)return[];if(ws(e))return Rs(e)?Vn(e):ro(e);if(Lt&&e[Lt])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Lt]());var t=Vo(e);return(t==$?Fn:t==ie?Bn:vu)(e)}function zs(e){return e?(e=Ys(e))===I||e===-I?(e<0?-1:1)*P:e===e?e:0:0===e?e:0}function Ws(e){var t=zs(e),n=t%1;return t===t?n?t-n:t:0}function Vs(e){return e?Ri(Ws(e),0,Z):0}function Ys(e){if("number"==typeof e)return e;if(Zs(e))return R;if(Ds(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ds(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Nn(e);var n=Ue.test(e);return n||qe.test(e)?Bt(e.slice(2),n?2:8):Ye.test(e)?R:+e}function Us(e){return oo(e,su(e))}function Ks(e){return null==e?"":Fr(e)}var qs=so((function(e,t){if(Jo(t)||ws(t))oo(t,au(t),e);else for(var n in t)ct.call(t,n)&&Mi(e,n,t[n])})),Gs=so((function(e,t){oo(t,su(t),e)})),$s=so((function(e,t,n,i){oo(t,su(t),e,i)})),Qs=so((function(e,t,n,i){oo(t,au(t),e,i)})),Xs=Oo(Pi);var Js=xr((function(e,t){e=tt(e);var n=-1,i=t.length,o=i>2?t[2]:r;for(o&&Go(t[0],t[1],o)&&(i=1);++n<i;)for(var a=t[n],s=su(a),u=-1,l=s.length;++u<l;){var c=s[u],d=e[c];(d===r||vs(d,st[c])&&!ct.call(e,c))&&(e[c]=a[c])}return e})),eu=xr((function(e){return e.push(r,Do),nn(lu,r,e)}));function tu(e,t,n){var i=null==e?r:Xi(e,t);return i===r?n:i}function nu(e,t){return null!=e&&Yo(e,t,ir)}var iu=mo((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=ft.call(t)),e[t]=n}),Du(Ou)),ru=mo((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=ft.call(t)),ct.call(e,t)?e[t].push(n):e[t]=[n]}),Fo),ou=xr(or);function au(e){return ws(e)?xi(e):dr(e)}function su(e){return ws(e)?xi(e,!0):hr(e)}var uu=so((function(e,t,n){mr(e,t,n)})),lu=so((function(e,t,n,i){mr(e,t,n,i)})),cu=Oo((function(e,t){var n={};if(null==e)return n;var i=!1;t=dn(t,(function(t){return t=qr(t,e),i||(i=t.length>1),t})),oo(e,Ao(e),n),i&&(n=Zi(n,h|f|p,Mo));for(var r=t.length;r--;)Hr(n,t[r]);return n}));var du=Oo((function(e,t){return null==e?{}:function(e,t){return br(e,t,(function(t,n){return nu(e,n)}))}(e,t)}));function hu(e,t){if(null==e)return{};var n=dn(Ao(e),(function(e){return[e]}));return t=Fo(t),br(e,n,(function(e,n){return t(e,n[0])}))}var fu=Lo(au),pu=Lo(su);function vu(e){return null==e?[]:Mn(e,au(e))}var gu=ho((function(e,t,n){return t=t.toLowerCase(),e+(n?mu(t):t)}));function mu(e){return xu(Ks(e).toLowerCase())}function _u(e){return(e=Ks(e))&&e.replace($e,An).replace(Mt,"")}var yu=ho((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),bu=ho((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),wu=co("toLowerCase");var Cu=ho((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var ku=ho((function(e,t,n){return e+(n?" ":"")+xu(t)}));var Su=ho((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),xu=co("toUpperCase");function Lu(e,t,n){return e=Ks(e),(t=n?r:t)===r?function(e){return At.test(e)}(e)?function(e){return e.match(Ot)||[]}(e):function(e){return e.match(He)||[]}(e):e.match(t)||[]}var Eu=xr((function(e,t){try{return nn(e,r,t)}catch(n){return xs(n)?n:new Re(n)}})),Nu=Oo((function(e,t){return on(t,(function(t){t=ha(t),Ai(e,t,rs(e[t],e))})),e}));function Du(e){return function(){return e}}var Mu=vo(),Tu=vo(!0);function Ou(e){return e}function Iu(e){return cr("function"==typeof e?e:Zi(e,h))}var Au=xr((function(e,t){return function(n){return or(n,e,t)}})),Pu=xr((function(e,t){return function(n){return or(e,n,t)}}));function Ru(e,t,n){var i=au(t),r=Qi(t,i);null!=n||Ds(t)&&(r.length||!i.length)||(n=t,t=e,e=this,r=Qi(t,au(t)));var o=!(Ds(n)&&"chain"in n)||!!n.chain,a=Ls(e);return on(r,(function(n){var i=t[n];e[n]=i,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=ro(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,hn([this.value()],arguments))})})),e}function Zu(){}var Fu=yo(dn),ju=yo(sn),Hu=yo(vn);function Bu(e){return $o(e)?kn(ha(e)):function(e){return function(t){return Xi(t,e)}}(e)}var zu=wo(),Wu=wo(!0);function Vu(){return[]}function Yu(){return!1}var Uu=_o((function(e,t){return e+t}),0),Ku=So("ceil"),qu=_o((function(e,t){return e/t}),1),Gu=So("floor");var $u=_o((function(e,t){return e*t}),1),Qu=So("round"),Xu=_o((function(e,t){return e-t}),0);return vi.after=function(e,t){if("function"!=typeof t)throw new rt(s);return e=Ws(e),function(){if(--e<1)return t.apply(this,arguments)}},vi.ary=ns,vi.assign=qs,vi.assignIn=Gs,vi.assignInWith=$s,vi.assignWith=Qs,vi.at=Xs,vi.before=is,vi.bind=rs,vi.bindAll=Nu,vi.bindKey=os,vi.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return ys(e)?e:[e]},vi.chain=Ba,vi.chunk=function(e,t,i){t=(i?Go(e,t,i):t===r)?1:Sn(Ws(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var a=0,s=0,u=n(zt(o/t));a<o;)u[s++]=Or(e,a,a+=t);return u},vi.compact=function(e){for(var t=-1,n=null==e?0:e.length,i=0,r=[];++t<n;){var o=e[t];o&&(r[i++]=o)}return r},vi.concat=function(){var e=arguments.length;if(!e)return[];for(var t=n(e-1),i=arguments[0],r=e;r--;)t[r-1]=arguments[r];return hn(ys(i)?ro(i):[i],Ui(t,1))},vi.cond=function(e){var t=null==e?0:e.length,n=Fo();return e=t?dn(e,(function(e){if("function"!=typeof e[1])throw new rt(s);return[n(e[0]),e[1]]})):[],xr((function(n){for(var i=-1;++i<t;){var r=e[i];if(nn(r[0],this,n))return nn(r[1],this,n)}}))},vi.conforms=function(e){return function(e){var t=au(e);return function(n){return Fi(n,e,t)}}(Zi(e,h))},vi.constant=Du,vi.countBy=Va,vi.create=function(e,t){var n=gi(e);return null==t?n:Ii(n,t)},vi.curry=function e(t,n,i){var o=Eo(t,b,r,r,r,r,r,n=i?r:n);return o.placeholder=e.placeholder,o},vi.curryRight=function e(t,n,i){var o=Eo(t,w,r,r,r,r,r,n=i?r:n);return o.placeholder=e.placeholder,o},vi.debounce=as,vi.defaults=Js,vi.defaultsDeep=eu,vi.defer=ss,vi.delay=us,vi.difference=va,vi.differenceBy=ga,vi.differenceWith=ma,vi.drop=function(e,t,n){var i=null==e?0:e.length;return i?Or(e,(t=n||t===r?1:Ws(t))<0?0:t,i):[]},vi.dropRight=function(e,t,n){var i=null==e?0:e.length;return i?Or(e,0,(t=i-(t=n||t===r?1:Ws(t)))<0?0:t):[]},vi.dropRightWhile=function(e,t){return e&&e.length?zr(e,Fo(t,3),!0,!0):[]},vi.dropWhile=function(e,t){return e&&e.length?zr(e,Fo(t,3),!0):[]},vi.fill=function(e,t,n,i){var o=null==e?0:e.length;return o?(n&&"number"!=typeof n&&Go(e,t,n)&&(n=0,i=o),function(e,t,n,i){var o=e.length;for((n=Ws(n))<0&&(n=-n>o?0:o+n),(i=i===r||i>o?o:Ws(i))<0&&(i+=o),i=n>i?0:Vs(i);n<i;)e[n++]=t;return e}(e,t,n,i)):[]},vi.filter=function(e,t){return(ys(e)?un:Yi)(e,Fo(t,3))},vi.flatMap=function(e,t){return Ui(Xa(e,t),1)},vi.flatMapDeep=function(e,t){return Ui(Xa(e,t),I)},vi.flatMapDepth=function(e,t,n){return n=n===r?1:Ws(n),Ui(Xa(e,t),n)},vi.flatten=ba,vi.flattenDeep=function(e){return(null==e?0:e.length)?Ui(e,I):[]},vi.flattenDepth=function(e,t){return(null==e?0:e.length)?Ui(e,t=t===r?1:Ws(t)):[]},vi.flip=function(e){return Eo(e,L)},vi.flow=Mu,vi.flowRight=Tu,vi.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,i={};++t<n;){var r=e[t];i[r[0]]=r[1]}return i},vi.functions=function(e){return null==e?[]:Qi(e,au(e))},vi.functionsIn=function(e){return null==e?[]:Qi(e,su(e))},vi.groupBy=Ga,vi.initial=function(e){return(null==e?0:e.length)?Or(e,0,-1):[]},vi.intersection=Ca,vi.intersectionBy=ka,vi.intersectionWith=Sa,vi.invert=iu,vi.invertBy=ru,vi.invokeMap=$a,vi.iteratee=Iu,vi.keyBy=Qa,vi.keys=au,vi.keysIn=su,vi.map=Xa,vi.mapKeys=function(e,t){var n={};return t=Fo(t,3),Gi(e,(function(e,i,r){Ai(n,t(e,i,r),e)})),n},vi.mapValues=function(e,t){var n={};return t=Fo(t,3),Gi(e,(function(e,i,r){Ai(n,i,t(e,i,r))})),n},vi.matches=function(e){return vr(Zi(e,h))},vi.matchesProperty=function(e,t){return gr(e,Zi(t,h))},vi.memoize=ls,vi.merge=uu,vi.mergeWith=lu,vi.method=Au,vi.methodOf=Pu,vi.mixin=Ru,vi.negate=cs,vi.nthArg=function(e){return e=Ws(e),xr((function(t){return _r(t,e)}))},vi.omit=cu,vi.omitBy=function(e,t){return hu(e,cs(Fo(t)))},vi.once=function(e){return is(2,e)},vi.orderBy=function(e,t,n,i){return null==e?[]:(ys(t)||(t=null==t?[]:[t]),ys(n=i?r:n)||(n=null==n?[]:[n]),yr(e,t,n))},vi.over=Fu,vi.overArgs=ds,vi.overEvery=ju,vi.overSome=Hu,vi.partial=hs,vi.partialRight=fs,vi.partition=Ja,vi.pick=du,vi.pickBy=hu,vi.property=Bu,vi.propertyOf=function(e){return function(t){return null==e?r:Xi(e,t)}},vi.pull=La,vi.pullAll=Ea,vi.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?wr(e,t,Fo(n,2)):e},vi.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?wr(e,t,r,n):e},vi.pullAt=Na,vi.range=zu,vi.rangeRight=Wu,vi.rearg=ps,vi.reject=function(e,t){return(ys(e)?un:Yi)(e,cs(Fo(t,3)))},vi.remove=function(e,t){var n=[];if(!e||!e.length)return n;var i=-1,r=[],o=e.length;for(t=Fo(t,3);++i<o;){var a=e[i];t(a,i,e)&&(n.push(a),r.push(i))}return Cr(e,r),n},vi.rest=function(e,t){if("function"!=typeof e)throw new rt(s);return xr(e,t=t===r?t:Ws(t))},vi.reverse=Da,vi.sampleSize=function(e,t,n){return t=(n?Go(e,t,n):t===r)?1:Ws(t),(ys(e)?Ei:Er)(e,t)},vi.set=function(e,t,n){return null==e?e:Nr(e,t,n)},vi.setWith=function(e,t,n,i){return i="function"==typeof i?i:r,null==e?e:Nr(e,t,n,i)},vi.shuffle=function(e){return(ys(e)?Ni:Tr)(e)},vi.slice=function(e,t,n){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&Go(e,t,n)?(t=0,n=i):(t=null==t?0:Ws(t),n=n===r?i:Ws(n)),Or(e,t,n)):[]},vi.sortBy=es,vi.sortedUniq=function(e){return e&&e.length?Rr(e):[]},vi.sortedUniqBy=function(e,t){return e&&e.length?Rr(e,Fo(t,2)):[]},vi.split=function(e,t,n){return n&&"number"!=typeof n&&Go(e,t,n)&&(t=n=r),(n=n===r?Z:n>>>0)?(e=Ks(e))&&("string"==typeof t||null!=t&&!As(t))&&!(t=Fr(t))&&Zn(e)?$r(Vn(e),0,n):e.split(t,n):[]},vi.spread=function(e,t){if("function"!=typeof e)throw new rt(s);return t=null==t?0:Sn(Ws(t),0),xr((function(n){var i=n[t],r=$r(n,0,t);return i&&hn(r,i),nn(e,this,r)}))},vi.tail=function(e){var t=null==e?0:e.length;return t?Or(e,1,t):[]},vi.take=function(e,t,n){return e&&e.length?Or(e,0,(t=n||t===r?1:Ws(t))<0?0:t):[]},vi.takeRight=function(e,t,n){var i=null==e?0:e.length;return i?Or(e,(t=i-(t=n||t===r?1:Ws(t)))<0?0:t,i):[]},vi.takeRightWhile=function(e,t){return e&&e.length?zr(e,Fo(t,3),!1,!0):[]},vi.takeWhile=function(e,t){return e&&e.length?zr(e,Fo(t,3)):[]},vi.tap=function(e,t){return t(e),e},vi.throttle=function(e,t,n){var i=!0,r=!0;if("function"!=typeof e)throw new rt(s);return Ds(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),as(e,t,{leading:i,maxWait:t,trailing:r})},vi.thru=za,vi.toArray=Bs,vi.toPairs=fu,vi.toPairsIn=pu,vi.toPath=function(e){return ys(e)?dn(e,ha):Zs(e)?[e]:ro(da(Ks(e)))},vi.toPlainObject=Us,vi.transform=function(e,t,n){var i=ys(e),r=i||ks(e)||Fs(e);if(t=Fo(t,4),null==n){var o=e&&e.constructor;n=r?i?new o:[]:Ds(e)&&Ls(o)?gi(wt(e)):{}}return(r?on:Gi)(e,(function(e,i,r){return t(n,e,i,r)})),n},vi.unary=function(e){return ns(e,1)},vi.union=Ma,vi.unionBy=Ta,vi.unionWith=Oa,vi.uniq=function(e){return e&&e.length?jr(e):[]},vi.uniqBy=function(e,t){return e&&e.length?jr(e,Fo(t,2)):[]},vi.uniqWith=function(e,t){return t="function"==typeof t?t:r,e&&e.length?jr(e,r,t):[]},vi.unset=function(e,t){return null==e||Hr(e,t)},vi.unzip=Ia,vi.unzipWith=Aa,vi.update=function(e,t,n){return null==e?e:Br(e,t,Kr(n))},vi.updateWith=function(e,t,n,i){return i="function"==typeof i?i:r,null==e?e:Br(e,t,Kr(n),i)},vi.values=vu,vi.valuesIn=function(e){return null==e?[]:Mn(e,su(e))},vi.without=Pa,vi.words=Lu,vi.wrap=function(e,t){return hs(Kr(t),e)},vi.xor=Ra,vi.xorBy=Za,vi.xorWith=Fa,vi.zip=ja,vi.zipObject=function(e,t){return Yr(e||[],t||[],Mi)},vi.zipObjectDeep=function(e,t){return Yr(e||[],t||[],Nr)},vi.zipWith=Ha,vi.entries=fu,vi.entriesIn=pu,vi.extend=Gs,vi.extendWith=$s,Ru(vi,vi),vi.add=Uu,vi.attempt=Eu,vi.camelCase=gu,vi.capitalize=mu,vi.ceil=Ku,vi.clamp=function(e,t,n){return n===r&&(n=t,t=r),n!==r&&(n=(n=Ys(n))===n?n:0),t!==r&&(t=(t=Ys(t))===t?t:0),Ri(Ys(e),t,n)},vi.clone=function(e){return Zi(e,p)},vi.cloneDeep=function(e){return Zi(e,h|p)},vi.cloneDeepWith=function(e,t){return Zi(e,h|p,t="function"==typeof t?t:r)},vi.cloneWith=function(e,t){return Zi(e,p,t="function"==typeof t?t:r)},vi.conformsTo=function(e,t){return null==t||Fi(e,t,au(t))},vi.deburr=_u,vi.defaultTo=function(e,t){return null==e||e!==e?t:e},vi.divide=qu,vi.endsWith=function(e,t,n){e=Ks(e),t=Fr(t);var i=e.length,o=n=n===r?i:Ri(Ws(n),0,i);return(n-=t.length)>=0&&e.slice(n,o)==t},vi.eq=vs,vi.escape=function(e){return(e=Ks(e))&&Le.test(e)?e.replace(Se,Pn):e},vi.escapeRegExp=function(e){return(e=Ks(e))&&Ae.test(e)?e.replace(Ie,"\\$&"):e},vi.every=function(e,t,n){var i=ys(e)?sn:Wi;return n&&Go(e,t,n)&&(t=r),i(e,Fo(t,3))},vi.find=Ya,vi.findIndex=_a,vi.findKey=function(e,t){return mn(e,Fo(t,3),Gi)},vi.findLast=Ua,vi.findLastIndex=ya,vi.findLastKey=function(e,t){return mn(e,Fo(t,3),$i)},vi.floor=Gu,vi.forEach=Ka,vi.forEachRight=qa,vi.forIn=function(e,t){return null==e?e:Ki(e,Fo(t,3),su)},vi.forInRight=function(e,t){return null==e?e:qi(e,Fo(t,3),su)},vi.forOwn=function(e,t){return e&&Gi(e,Fo(t,3))},vi.forOwnRight=function(e,t){return e&&$i(e,Fo(t,3))},vi.get=tu,vi.gt=gs,vi.gte=ms,vi.has=function(e,t){return null!=e&&Yo(e,t,nr)},vi.hasIn=nu,vi.head=wa,vi.identity=Ou,vi.includes=function(e,t,n,i){e=ws(e)?e:vu(e),n=n&&!i?Ws(n):0;var r=e.length;return n<0&&(n=Sn(r+n,0)),Rs(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&yn(e,t,n)>-1},vi.indexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:Ws(n);return r<0&&(r=Sn(i+r,0)),yn(e,t,r)},vi.inRange=function(e,t,n){return t=zs(t),n===r?(n=t,t=0):n=zs(n),function(e,t,n){return e>=qn(t,n)&&e<Sn(t,n)}(e=Ys(e),t,n)},vi.invoke=ou,vi.isArguments=_s,vi.isArray=ys,vi.isArrayBuffer=bs,vi.isArrayLike=ws,vi.isArrayLikeObject=Cs,vi.isBoolean=function(e){return!0===e||!1===e||Ms(e)&&er(e)==V},vi.isBuffer=ks,vi.isDate=Ss,vi.isElement=function(e){return Ms(e)&&1===e.nodeType&&!Is(e)},vi.isEmpty=function(e){if(null==e)return!0;if(ws(e)&&(ys(e)||"string"==typeof e||"function"==typeof e.splice||ks(e)||Fs(e)||_s(e)))return!e.length;var t=Vo(e);if(t==$||t==ie)return!e.size;if(Jo(e))return!dr(e).length;for(var n in e)if(ct.call(e,n))return!1;return!0},vi.isEqual=function(e,t){return sr(e,t)},vi.isEqualWith=function(e,t,n){var i=(n="function"==typeof n?n:r)?n(e,t):r;return i===r?sr(e,t,r,n):!!i},vi.isError=xs,vi.isFinite=function(e){return"number"==typeof e&&qt(e)},vi.isFunction=Ls,vi.isInteger=Es,vi.isLength=Ns,vi.isMap=Ts,vi.isMatch=function(e,t){return e===t||ur(e,t,Ho(t))},vi.isMatchWith=function(e,t,n){return n="function"==typeof n?n:r,ur(e,t,Ho(t),n)},vi.isNaN=function(e){return Os(e)&&e!=+e},vi.isNative=function(e){if(Xo(e))throw new Re(a);return lr(e)},vi.isNil=function(e){return null==e},vi.isNull=function(e){return null===e},vi.isNumber=Os,vi.isObject=Ds,vi.isObjectLike=Ms,vi.isPlainObject=Is,vi.isRegExp=As,vi.isSafeInteger=function(e){return Es(e)&&e>=-A&&e<=A},vi.isSet=Ps,vi.isString=Rs,vi.isSymbol=Zs,vi.isTypedArray=Fs,vi.isUndefined=function(e){return e===r},vi.isWeakMap=function(e){return Ms(e)&&Vo(e)==se},vi.isWeakSet=function(e){return Ms(e)&&er(e)==ue},vi.join=function(e,t){return null==e?"":Gt.call(e,t)},vi.kebabCase=yu,vi.last=xa,vi.lastIndexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var o=i;return n!==r&&(o=(o=Ws(n))<0?Sn(i+o,0):qn(o,i-1)),t===t?function(e,t,n){for(var i=n+1;i--;)if(e[i]===t)return i;return i}(e,t,o):_n(e,wn,o,!0)},vi.lowerCase=bu,vi.lowerFirst=wu,vi.lt=js,vi.lte=Hs,vi.max=function(e){return e&&e.length?Vi(e,Ou,tr):r},vi.maxBy=function(e,t){return e&&e.length?Vi(e,Fo(t,2),tr):r},vi.mean=function(e){return Cn(e,Ou)},vi.meanBy=function(e,t){return Cn(e,Fo(t,2))},vi.min=function(e){return e&&e.length?Vi(e,Ou,fr):r},vi.minBy=function(e,t){return e&&e.length?Vi(e,Fo(t,2),fr):r},vi.stubArray=Vu,vi.stubFalse=Yu,vi.stubObject=function(){return{}},vi.stubString=function(){return""},vi.stubTrue=function(){return!0},vi.multiply=$u,vi.nth=function(e,t){return e&&e.length?_r(e,Ws(t)):r},vi.noConflict=function(){return Vt._===this&&(Vt._=vt),this},vi.noop=Zu,vi.now=ts,vi.pad=function(e,t,n){e=Ks(e);var i=(t=Ws(t))?Wn(e):0;if(!t||i>=t)return e;var r=(t-i)/2;return bo(Wt(r),n)+e+bo(zt(r),n)},vi.padEnd=function(e,t,n){e=Ks(e);var i=(t=Ws(t))?Wn(e):0;return t&&i<t?e+bo(t-i,n):e},vi.padStart=function(e,t,n){e=Ks(e);var i=(t=Ws(t))?Wn(e):0;return t&&i<t?bo(t-i,n)+e:e},vi.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),$n(Ks(e).replace(Pe,""),t||0)},vi.random=function(e,t,n){if(n&&"boolean"!=typeof n&&Go(e,t,n)&&(t=n=r),n===r&&("boolean"==typeof t?(n=t,t=r):"boolean"==typeof e&&(n=e,e=r)),e===r&&t===r?(e=0,t=1):(e=zs(e),t===r?(t=e,e=0):t=zs(t)),e>t){var i=e;e=t,t=i}if(n||e%1||t%1){var o=Qn();return qn(e+o*(t-e+Ht("1e-"+((o+"").length-1))),t)}return kr(e,t)},vi.reduce=function(e,t,n){var i=ys(e)?fn:xn,r=arguments.length<3;return i(e,Fo(t,4),n,r,Bi)},vi.reduceRight=function(e,t,n){var i=ys(e)?pn:xn,r=arguments.length<3;return i(e,Fo(t,4),n,r,zi)},vi.repeat=function(e,t,n){return t=(n?Go(e,t,n):t===r)?1:Ws(t),Sr(Ks(e),t)},vi.replace=function(){var e=arguments,t=Ks(e[0]);return e.length<3?t:t.replace(e[1],e[2])},vi.result=function(e,t,n){var i=-1,o=(t=qr(t,e)).length;for(o||(o=1,e=r);++i<o;){var a=null==e?r:e[ha(t[i])];a===r&&(i=o,a=n),e=Ls(a)?a.call(e):a}return e},vi.round=Qu,vi.runInContext=e,vi.sample=function(e){return(ys(e)?Li:Lr)(e)},vi.size=function(e){if(null==e)return 0;if(ws(e))return Rs(e)?Wn(e):e.length;var t=Vo(e);return t==$||t==ie?e.size:dr(e).length},vi.snakeCase=Cu,vi.some=function(e,t,n){var i=ys(e)?vn:Ir;return n&&Go(e,t,n)&&(t=r),i(e,Fo(t,3))},vi.sortedIndex=function(e,t){return Ar(e,t)},vi.sortedIndexBy=function(e,t,n){return Pr(e,t,Fo(n,2))},vi.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var i=Ar(e,t);if(i<n&&vs(e[i],t))return i}return-1},vi.sortedLastIndex=function(e,t){return Ar(e,t,!0)},vi.sortedLastIndexBy=function(e,t,n){return Pr(e,t,Fo(n,2),!0)},vi.sortedLastIndexOf=function(e,t){if(null==e?0:e.length){var n=Ar(e,t,!0)-1;if(vs(e[n],t))return n}return-1},vi.startCase=ku,vi.startsWith=function(e,t,n){return e=Ks(e),n=null==n?0:Ri(Ws(n),0,e.length),t=Fr(t),e.slice(n,n+t.length)==t},vi.subtract=Xu,vi.sum=function(e){return e&&e.length?Ln(e,Ou):0},vi.sumBy=function(e,t){return e&&e.length?Ln(e,Fo(t,2)):0},vi.template=function(e,t,n){var i=vi.templateSettings;n&&Go(e,t,n)&&(t=r),e=Ks(e),t=$s({},t,i,No);var o,a,s=$s({},t.imports,i.imports,No),l=au(s),c=Mn(s,l),d=0,h=t.interpolate||Qe,f="__p += '",p=nt((t.escape||Qe).source+"|"+h.source+"|"+(h===De?We:Qe).source+"|"+(t.evaluate||Qe).source+"|$","g"),v="//# sourceURL="+(ct.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Rt+"]")+"\n";e.replace(p,(function(t,n,i,r,s,u){return i||(i=r),f+=e.slice(d,u).replace(Xe,Rn),n&&(o=!0,f+="' +\n__e("+n+") +\n'"),s&&(a=!0,f+="';\n"+s+";\n__p += '"),i&&(f+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),d=u+t.length,t})),f+="';\n";var g=ct.call(t,"variable")&&t.variable;if(g){if(Be.test(g))throw new Re(u)}else f="with (obj) {\n"+f+"\n}\n";f=(a?f.replace(be,""):f).replace(we,"$1").replace(Ce,"$1;"),f="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var m=Eu((function(){return Je(l,v+"return "+f).apply(r,c)}));if(m.source=f,xs(m))throw m;return m},vi.times=function(e,t){if((e=Ws(e))<1||e>A)return[];var n=Z,i=qn(e,Z);t=Fo(t),e-=Z;for(var r=En(i,t);++n<e;)t(n);return r},vi.toFinite=zs,vi.toInteger=Ws,vi.toLength=Vs,vi.toLower=function(e){return Ks(e).toLowerCase()},vi.toNumber=Ys,vi.toSafeInteger=function(e){return e?Ri(Ws(e),-A,A):0===e?e:0},vi.toString=Ks,vi.toUpper=function(e){return Ks(e).toUpperCase()},vi.trim=function(e,t,n){if((e=Ks(e))&&(n||t===r))return Nn(e);if(!e||!(t=Fr(t)))return e;var i=Vn(e),o=Vn(t);return $r(i,On(i,o),In(i,o)+1).join("")},vi.trimEnd=function(e,t,n){if((e=Ks(e))&&(n||t===r))return e.slice(0,Yn(e)+1);if(!e||!(t=Fr(t)))return e;var i=Vn(e);return $r(i,0,In(i,Vn(t))+1).join("")},vi.trimStart=function(e,t,n){if((e=Ks(e))&&(n||t===r))return e.replace(Pe,"");if(!e||!(t=Fr(t)))return e;var i=Vn(e);return $r(i,On(i,Vn(t))).join("")},vi.truncate=function(e,t){var n=E,i=N;if(Ds(t)){var o="separator"in t?t.separator:o;n="length"in t?Ws(t.length):n,i="omission"in t?Fr(t.omission):i}var a=(e=Ks(e)).length;if(Zn(e)){var s=Vn(e);a=s.length}if(n>=a)return e;var u=n-Wn(i);if(u<1)return i;var l=s?$r(s,0,u).join(""):e.slice(0,u);if(o===r)return l+i;if(s&&(u+=l.length-u),As(o)){if(e.slice(u).search(o)){var c,d=l;for(o.global||(o=nt(o.source,Ks(Ve.exec(o))+"g")),o.lastIndex=0;c=o.exec(d);)var h=c.index;l=l.slice(0,h===r?u:h)}}else if(e.indexOf(Fr(o),u)!=u){var f=l.lastIndexOf(o);f>-1&&(l=l.slice(0,f))}return l+i},vi.unescape=function(e){return(e=Ks(e))&&xe.test(e)?e.replace(ke,Un):e},vi.uniqueId=function(e){var t=++dt;return Ks(e)+t},vi.upperCase=Su,vi.upperFirst=xu,vi.each=Ka,vi.eachRight=qa,vi.first=wa,Ru(vi,function(){var e={};return Gi(vi,(function(t,n){ct.call(vi.prototype,n)||(e[n]=t)})),e}(),{chain:!1}),vi.VERSION="4.17.21",on(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){vi[e].placeholder=vi})),on(["drop","take"],(function(e,t){yi.prototype[e]=function(n){n=n===r?1:Sn(Ws(n),0);var i=this.__filtered__&&!t?new yi(this):this.clone();return i.__filtered__?i.__takeCount__=qn(n,i.__takeCount__):i.__views__.push({size:qn(n,Z),type:e+(i.__dir__<0?"Right":"")}),i},yi.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),on(["filter","map","takeWhile"],(function(e,t){var n=t+1,i=n==T||3==n;yi.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Fo(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}})),on(["head","last"],(function(e,t){var n="take"+(t?"Right":"");yi.prototype[e]=function(){return this[n](1).value()[0]}})),on(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");yi.prototype[e]=function(){return this.__filtered__?new yi(this):this[n](1)}})),yi.prototype.compact=function(){return this.filter(Ou)},yi.prototype.find=function(e){return this.filter(e).head()},yi.prototype.findLast=function(e){return this.reverse().find(e)},yi.prototype.invokeMap=xr((function(e,t){return"function"==typeof e?new yi(this):this.map((function(n){return or(n,e,t)}))})),yi.prototype.reject=function(e){return this.filter(cs(Fo(e)))},yi.prototype.slice=function(e,t){e=Ws(e);var n=this;return n.__filtered__&&(e>0||t<0)?new yi(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==r&&(n=(t=Ws(t))<0?n.dropRight(-t):n.take(t-e)),n)},yi.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},yi.prototype.toArray=function(){return this.take(Z)},Gi(yi.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),o=vi[i?"take"+("last"==t?"Right":""):t],a=i||/^find/.test(t);o&&(vi.prototype[t]=function(){var t=this.__wrapped__,s=i?[1]:arguments,u=t instanceof yi,l=s[0],c=u||ys(t),d=function(e){var t=o.apply(vi,hn([e],s));return i&&h?t[0]:t};c&&n&&"function"==typeof l&&1!=l.length&&(u=c=!1);var h=this.__chain__,f=!!this.__actions__.length,p=a&&!h,v=u&&!f;if(!a&&c){t=v?t:new yi(this);var g=e.apply(t,s);return g.__actions__.push({func:za,args:[d],thisArg:r}),new _i(g,h)}return p&&v?e.apply(this,s):(g=this.thru(d),p?i?g.value()[0]:g.value():g)})})),on(["pop","push","shift","sort","splice","unshift"],(function(e){var t=ot[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);vi.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var r=this.value();return t.apply(ys(r)?r:[],e)}return this[n]((function(n){return t.apply(ys(n)?n:[],e)}))}})),Gi(yi.prototype,(function(e,t){var n=vi[t];if(n){var i=n.name+"";ct.call(ai,i)||(ai[i]=[]),ai[i].push({name:t,func:n})}})),ai[go(r,_).name]=[{name:"wrapper",func:r}],yi.prototype.clone=function(){var e=new yi(this.__wrapped__);return e.__actions__=ro(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=ro(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=ro(this.__views__),e},yi.prototype.reverse=function(){if(this.__filtered__){var e=new yi(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},yi.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=ys(e),i=t<0,r=n?e.length:0,o=function(e,t,n){var i=-1,r=n.length;for(;++i<r;){var o=n[i],a=o.size;switch(o.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=qn(t,e+a);break;case"takeRight":e=Sn(e,t-a)}}return{start:e,end:t}}(0,r,this.__views__),a=o.start,s=o.end,u=s-a,l=i?s:a-1,c=this.__iteratees__,d=c.length,h=0,f=qn(u,this.__takeCount__);if(!n||!i&&r==u&&f==u)return Wr(e,this.__actions__);var p=[];e:for(;u--&&h<f;){for(var v=-1,g=e[l+=t];++v<d;){var m=c[v],_=m.iteratee,y=m.type,b=_(g);if(y==O)g=b;else if(!b){if(y==T)continue e;break e}}p[h++]=g}return p},vi.prototype.at=Wa,vi.prototype.chain=function(){return Ba(this)},vi.prototype.commit=function(){return new _i(this.value(),this.__chain__)},vi.prototype.next=function(){this.__values__===r&&(this.__values__=Bs(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?r:this.__values__[this.__index__++]}},vi.prototype.plant=function(e){for(var t,n=this;n instanceof mi;){var i=pa(n);i.__index__=0,i.__values__=r,t?o.__wrapped__=i:t=i;var o=i;n=n.__wrapped__}return o.__wrapped__=e,t},vi.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof yi){var t=e;return this.__actions__.length&&(t=new yi(this)),(t=t.reverse()).__actions__.push({func:za,args:[Da],thisArg:r}),new _i(t,this.__chain__)}return this.thru(Da)},vi.prototype.toJSON=vi.prototype.valueOf=vi.prototype.value=function(){return Wr(this.__wrapped__,this.__actions__)},vi.prototype.first=vi.prototype.head,Lt&&(vi.prototype[Lt]=function(){return this}),vi}();Vt._=Kn,(i=function(){return Kn}.call(t,n,t,e))===r||(e.exports=i)}.call(this)},51761:function(e,t,n){var i=n(69121),r="Expected a function";function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(r);var n=function n(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(o.Cache||i),n}o.Cache=i,e.exports=o},34519:function(e){e.exports=function(){}},61135:function(e,t,n){var i=n(3650);e.exports=function(){return i.Date.now()}},23364:function(e,t,n){var i=n(96067),r=n(87402),o=n(22498),a=n(64089);e.exports=function(e){return o(e)?i(a(e)):r(e)}},61883:function(e,t,n){var i=n(10787)();e.exports=i},99500:function(e){e.exports=function(){return[]}},79151:function(e){e.exports=function(){return!1}},780:function(e,t,n){var i=n(37823),r=n(68317);e.exports=function(e,t){return e&&e.length?r(e,i(t,2)):0}},17571:function(e,t,n){var i=n(14762),r=n(82222),o="Expected a function";e.exports=function(e,t,n){var a=!0,s=!0;if("function"!=typeof e)throw new TypeError(o);return r(n)&&(a="leading"in n?!!n.leading:a,s="trailing"in n?!!n.trailing:s),i(e,t,{leading:a,maxWait:t,trailing:s})}},11347:function(e,t,n){var i=n(1584),r=1/0,o=17976931348623157e292;e.exports=function(e){return e?(e=i(e))===r||e===-r?(e<0?-1:1)*o:e===e?e:0:0===e?e:0}},1584:function(e,t,n){var i=n(6893),r=n(82222),o=n(17189),a=NaN,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return a;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=i(e);var n=u.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):s.test(e)?a:+e}},5881:function(e,t,n){var i=n(40252);e.exports=function(e){return null==e?"":i(e)}},45441:function(e,t,n){var i=n(87379),r=n(38825),o=n(60966),a=n(30818),s=r((function(e){return o(i(e,1,a,!0))}));e.exports=s},20762:function(e,t,n){var i=n(37823),r=n(60966);e.exports=function(e,t){return e&&e.length?r(e,i(t,2)):[]}},1932:function(e,t,n){var i=n(8616)("toUpperCase");e.exports=i},44046:function(e,t,n){var i=n(60602),r=n(38825),o=n(30818),a=r((function(e,t){return o(e)?i(e,t):[]}));e.exports=a},74318:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var i=n(87462),r=n(63366),o=n(94578);function a(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var s=n(4519),u=n(50339),l=n(61077),c=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return i=t,void((n=e).classList?n.classList.remove(i):"string"===typeof n.className?n.className=a(n.className,i):n.setAttribute("class",a(n.className&&n.className.baseVal||"",i)));var n,i}))},d=function(e){function t(){for(var t,n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return(t=e.call.apply(e,[this].concat(i))||this).appliedClasses={appear:{},enter:{},exit:{}},t.onEnter=function(e,n){var i=t.resolveArguments(e,n),r=i[0],o=i[1];t.removeClasses(r,"exit"),t.addClass(r,o?"appear":"enter","base"),t.props.onEnter&&t.props.onEnter(e,n)},t.onEntering=function(e,n){var i=t.resolveArguments(e,n),r=i[0],o=i[1]?"appear":"enter";t.addClass(r,o,"active"),t.props.onEntering&&t.props.onEntering(e,n)},t.onEntered=function(e,n){var i=t.resolveArguments(e,n),r=i[0],o=i[1]?"appear":"enter";t.removeClasses(r,o),t.addClass(r,o,"done"),t.props.onEntered&&t.props.onEntered(e,n)},t.onExit=function(e){var n=t.resolveArguments(e)[0];t.removeClasses(n,"appear"),t.removeClasses(n,"enter"),t.addClass(n,"exit","base"),t.props.onExit&&t.props.onExit(e)},t.onExiting=function(e){var n=t.resolveArguments(e)[0];t.addClass(n,"exit","active"),t.props.onExiting&&t.props.onExiting(e)},t.onExited=function(e){var n=t.resolveArguments(e)[0];t.removeClasses(n,"exit"),t.addClass(n,"exit","done"),t.props.onExited&&t.props.onExited(e)},t.resolveArguments=function(e,n){return t.props.nodeRef?[t.props.nodeRef.current,e]:[e,n]},t.getClassNames=function(e){var n=t.props.classNames,i="string"===typeof n,r=i?""+(i&&n?n+"-":"")+e:n[e];return{baseClassName:r,activeClassName:i?r+"-active":n[e+"Active"],doneClassName:i?r+"-done":n[e+"Done"]}},t}(0,o.Z)(t,e);var n=t.prototype;return n.addClass=function(e,t,n){var i=this.getClassNames(t)[n+"ClassName"],r=this.getClassNames("enter").doneClassName;"appear"===t&&"done"===n&&r&&(i+=" "+r),"active"===n&&e&&(0,l.Q)(e),i&&(this.appliedClasses[t][n]=i,function(e,t){e&&t&&t.split(" ").forEach((function(t){return i=t,void((n=e).classList?n.classList.add(i):function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}(n,i)||("string"===typeof n.className?n.className=n.className+" "+i:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+i)));var n,i}))}(e,i))},n.removeClasses=function(e,t){var n=this.appliedClasses[t],i=n.base,r=n.active,o=n.done;this.appliedClasses[t]={},i&&c(e,i),r&&c(e,r),o&&c(e,o)},n.render=function(){var e=this.props,t=(e.classNames,(0,r.Z)(e,["classNames"]));return s.createElement(u.ZP,(0,i.Z)({},t,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},t}(s.Component);d.defaultProps={classNames:""},d.propTypes={};var h=d},50339:function(e,t,n){"use strict";n.d(t,{Ix:function(){return p},cn:function(){return f},d0:function(){return h}});var i=n(63366),r=n(94578),o=n(4519),a=n(84453),s=n(69593),u=n(91879),l=n(61077),c="unmounted",d="exited",h="entering",f="entered",p="exiting",v=function(e){function t(t,n){var i;i=e.call(this,t,n)||this;var r,o=n&&!n.isMounting?t.enter:t.appear;return i.appearStatus=null,t.in?o?(r=d,i.appearStatus=h):r=f:r=t.unmountOnExit||t.mountOnEnter?c:d,i.state={status:r},i.nextCallback=null,i}(0,r.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===c?{status:d}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==h&&n!==f&&(t=h):n!==h&&n!==f||(t=p)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,i=this.props.timeout;return e=t=n=i,null!=i&&"number"!==typeof i&&(e=i.exit,t=i.enter,n=void 0!==i.appear?i.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===h){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:a.findDOMNode(this);n&&(0,l.Q)(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===d&&this.setState({status:c})},n.performEnter=function(e){var t=this,n=this.props.enter,i=this.context?this.context.isMounting:e,r=this.props.nodeRef?[i]:[a.findDOMNode(this),i],o=r[0],u=r[1],l=this.getTimeouts(),c=i?l.appear:l.enter;!e&&!n||s.Z.disabled?this.safeSetState({status:f},(function(){t.props.onEntered(o)})):(this.props.onEnter(o,u),this.safeSetState({status:h},(function(){t.props.onEntering(o,u),t.onTransitionEnd(c,(function(){t.safeSetState({status:f},(function(){t.props.onEntered(o,u)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),i=this.props.nodeRef?void 0:a.findDOMNode(this);t&&!s.Z.disabled?(this.props.onExit(i),this.safeSetState({status:p},(function(){e.props.onExiting(i),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:d},(function(){e.props.onExited(i)}))}))}))):this.safeSetState({status:d},(function(){e.props.onExited(i)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(i){n&&(n=!1,t.nextCallback=null,e(i))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:a.findDOMNode(this),i=null==e&&!this.props.addEndListener;if(n&&!i){if(this.props.addEndListener){var r=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],o=r[0],s=r[1];this.props.addEndListener(o,s)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===c)return null;var t=this.props,n=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,(0,i.Z)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return o.createElement(u.Z.Provider,{value:null},"function"===typeof n?n(e,r):o.cloneElement(o.Children.only(n),r))},t}(o.Component);function g(){}v.contextType=u.Z,v.propTypes={},v.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:g,onEntering:g,onEntered:g,onExit:g,onExiting:g,onExited:g},v.UNMOUNTED=c,v.EXITED=d,v.ENTERING=h,v.ENTERED=f,v.EXITING=p,t.ZP=v},91879:function(e,t,n){"use strict";var i=n(4519);t.Z=i.createContext(null)},69593:function(e,t){"use strict";t.Z={disabled:!1}},559:function(e,t,n){"use strict";n.r(t),n.d(t,{CSSTransition:function(){return i.Z},ReplaceTransition:function(){return b},SwitchTransition:function(){return N},Transition:function(){return w.ZP},TransitionGroup:function(){return g},config:function(){return D.Z}});var i=n(74318),r=n(63366),o=n(94578),a=n(4519),s=n(84453),u=n(87462),l=n(97326),c=n(91879);function d(e,t){var n=Object.create(null);return e&&a.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,a.isValidElement)(e)?t(e):e}(e)})),n}function h(e,t,n){return null!=n[t]?n[t]:e.props[t]}function f(e,t,n){var i=d(e.children),r=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var i,r=Object.create(null),o=[];for(var a in e)a in t?o.length&&(r[a]=o,o=[]):o.push(a);var s={};for(var u in t){if(r[u])for(i=0;i<r[u].length;i++){var l=r[u][i];s[r[u][i]]=n(l)}s[u]=n(u)}for(i=0;i<o.length;i++)s[o[i]]=n(o[i]);return s}(t,i);return Object.keys(r).forEach((function(o){var s=r[o];if((0,a.isValidElement)(s)){var u=o in t,l=o in i,c=t[o],d=(0,a.isValidElement)(c)&&!c.props.in;!l||u&&!d?l||!u||d?l&&u&&(0,a.isValidElement)(c)&&(r[o]=(0,a.cloneElement)(s,{onExited:n.bind(null,s),in:c.props.in,exit:h(s,"exit",e),enter:h(s,"enter",e)})):r[o]=(0,a.cloneElement)(s,{in:!1}):r[o]=(0,a.cloneElement)(s,{onExited:n.bind(null,s),in:!0,exit:h(s,"exit",e),enter:h(s,"enter",e)})}})),r}var p=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},v=function(e){function t(t,n){var i,r=(i=e.call(this,t,n)||this).handleExited.bind((0,l.Z)(i));return i.state={contextValue:{isMounting:!0},handleExited:r,firstRender:!0},i}(0,o.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(e,t){var n,i,r=t.children,o=t.handleExited;return{children:t.firstRender?(n=e,i=o,d(n.children,(function(e){return(0,a.cloneElement)(e,{onExited:i.bind(null,e),in:!0,appear:h(e,"appear",n),enter:h(e,"enter",n),exit:h(e,"exit",n)})}))):f(e,r,o),firstRender:!1}},n.handleExited=function(e,t){var n=d(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=(0,u.Z)({},t.children);return delete n[e.key],{children:n}})))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,i=(0,r.Z)(e,["component","childFactory"]),o=this.state.contextValue,s=p(this.state.children).map(n);return delete i.appear,delete i.enter,delete i.exit,null===t?a.createElement(c.Z.Provider,{value:o},s):a.createElement(c.Z.Provider,{value:o},a.createElement(t,i,s))},t}(a.Component);v.propTypes={},v.defaultProps={component:"div",childFactory:function(e){return e}};var g=v,m=function(e){function t(){for(var t,n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return(t=e.call.apply(e,[this].concat(i))||this).handleEnter=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return t.handleLifecycle("onEnter",0,n)},t.handleEntering=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return t.handleLifecycle("onEntering",0,n)},t.handleEntered=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return t.handleLifecycle("onEntered",0,n)},t.handleExit=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return t.handleLifecycle("onExit",1,n)},t.handleExiting=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return t.handleLifecycle("onExiting",1,n)},t.handleExited=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return t.handleLifecycle("onExited",1,n)},t}(0,o.Z)(t,e);var n=t.prototype;return n.handleLifecycle=function(e,t,n){var i,r=this.props.children,o=a.Children.toArray(r)[t];if(o.props[e]&&(i=o.props)[e].apply(i,n),this.props[e]){var u=o.props.nodeRef?void 0:s.findDOMNode(this);this.props[e](u)}},n.render=function(){var e=this.props,t=e.children,n=e.in,i=(0,r.Z)(e,["children","in"]),o=a.Children.toArray(t),s=o[0],u=o[1];return delete i.onEnter,delete i.onEntering,delete i.onEntered,delete i.onExit,delete i.onExiting,delete i.onExited,a.createElement(g,i,n?a.cloneElement(s,{key:"first",onEnter:this.handleEnter,onEntering:this.handleEntering,onEntered:this.handleEntered}):a.cloneElement(u,{key:"second",onEnter:this.handleExit,onEntering:this.handleExiting,onEntered:this.handleExited}))},t}(a.Component);m.propTypes={};var _,y,b=m,w=n(50339);var C="out-in",k="in-out",S=function(e,t,n){return function(){var i;e.props[t]&&(i=e.props)[t].apply(i,arguments),n()}},x=((_={})[C]=function(e){var t=e.current,n=e.changeState;return a.cloneElement(t,{in:!1,onExited:S(t,"onExited",(function(){n(w.d0,null)}))})},_[k]=function(e){var t=e.current,n=e.changeState,i=e.children;return[t,a.cloneElement(i,{in:!0,onEntered:S(i,"onEntered",(function(){n(w.d0)}))})]},_),L=((y={})[C]=function(e){var t=e.children,n=e.changeState;return a.cloneElement(t,{in:!0,onEntered:S(t,"onEntered",(function(){n(w.cn,a.cloneElement(t,{in:!0}))}))})},y[k]=function(e){var t=e.current,n=e.children,i=e.changeState;return[a.cloneElement(t,{in:!1,onExited:S(t,"onExited",(function(){i(w.cn,a.cloneElement(n,{in:!0}))}))}),a.cloneElement(n,{in:!0})]},y),E=function(e){function t(){for(var t,n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return(t=e.call.apply(e,[this].concat(i))||this).state={status:w.cn,current:null},t.appeared=!1,t.changeState=function(e,n){void 0===n&&(n=t.state.current),t.setState({status:e,current:n})},t}(0,o.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.appeared=!0},t.getDerivedStateFromProps=function(e,t){return null==e.children?{current:null}:t.status===w.d0&&e.mode===k?{status:w.d0}:!t.current||(n=t.current,i=e.children,n===i||a.isValidElement(n)&&a.isValidElement(i)&&null!=n.key&&n.key===i.key)?{current:a.cloneElement(e.children,{in:!0})}:{status:w.Ix};var n,i},n.render=function(){var e,t=this.props,n=t.children,i=t.mode,r=this.state,o=r.status,s=r.current,u={children:n,current:s,changeState:this.changeState,status:o};switch(o){case w.d0:e=L[i](u);break;case w.Ix:e=x[i](u);break;case w.cn:e=s}return a.createElement(c.Z.Provider,{value:{isMounting:!this.appeared}},e)},t}(a.Component);E.propTypes={},E.defaultProps={mode:C};var N=E,D=n(69593)},61077:function(e,t,n){"use strict";n.d(t,{Q:function(){return i}});var i=function(e){return e.scrollTop}},15791:function(e,t,n){"use strict";n.r(t),n.d(t,{__assign:function(){return o},__asyncDelegator:function(){return w},__asyncGenerator:function(){return b},__asyncValues:function(){return C},__await:function(){return y},__awaiter:function(){return c},__classPrivateFieldGet:function(){return E},__classPrivateFieldSet:function(){return N},__createBinding:function(){return h},__decorate:function(){return s},__exportStar:function(){return f},__extends:function(){return r},__generator:function(){return d},__importDefault:function(){return L},__importStar:function(){return x},__makeTemplateObject:function(){return k},__metadata:function(){return l},__param:function(){return u},__read:function(){return v},__rest:function(){return a},__spread:function(){return g},__spreadArray:function(){return _},__spreadArrays:function(){return m},__values:function(){return p}});var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)};function r(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},o.apply(this,arguments)};function a(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}function s(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}function u(e,t){return function(n,i){t(n,i,e)}}function l(e,t){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(e,t)}function c(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))}function d(e,t){var n,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}r[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(s){o=[6,s],i=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}var h=Object.create?function(e,t,n,i){void 0===i&&(i=n),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]};function f(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||h(t,e,n)}function p(e){var t="function"===typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"===typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"===typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)a.push(i.value)}catch(s){r={error:s}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return a}function g(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}function m(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),r=0;for(t=0;t<n;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i}function _(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}function y(e){return this instanceof y?(this.v=e,this):new y(e)}function b(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=n.apply(e,t||[]),o=[];return i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i;function a(e){r[e]&&(i[e]=function(t){return new Promise((function(n,i){o.push([e,t,n,i])>1||s(e,t)}))})}function s(e,t){try{(n=r[e](t)).value instanceof y?Promise.resolve(n.value.v).then(u,l):c(o[0][2],n)}catch(i){c(o[0][3],i)}var n}function u(e){s("next",e)}function l(e){s("throw",e)}function c(e,t){e(t),o.shift(),o.length&&s(o[0][0],o[0][1])}}function w(e){var t,n;return t={},i("next"),i("throw",(function(e){throw e})),i("return"),t[Symbol.iterator]=function(){return this},t;function i(i,r){t[i]=e[i]?function(t){return(n=!n)?{value:y(e[i](t)),done:"return"===i}:r?r(t):t}:r}}function C(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=p(e),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(n){t[n]=e[n]&&function(t){return new Promise((function(i,r){(function(e,t,n,i){Promise.resolve(i).then((function(t){e({value:t,done:n})}),t)})(i,r,(t=e[n](t)).done,t.value)}))}}}function k(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var S=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function x(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&h(t,e,n);return S(t,e),t}function L(e){return e&&e.__esModule?e:{default:e}}function E(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}function N(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n}},56787:function(e,t,n){e.exports=n(74034)},63866:function(e,t,n){"use strict";var i=n(32865),r=n(87520),o=n(95136),a=n(97387),s=n(11279),u=n(90660),l=n(97993);e.exports=function(e){return new Promise((function(t,c){var d=e.data,h=e.headers;i.isFormData(d)&&delete h["Content-Type"];var f=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",v=e.auth.password||"";h.Authorization="Basic "+btoa(p+":"+v)}var g=a(e.baseURL,e.url);if(f.open(e.method.toUpperCase(),o(g,e.params,e.paramsSerializer),!0),f.timeout=e.timeout,f.onreadystatechange=function(){if(f&&4===f.readyState&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in f?s(f.getAllResponseHeaders()):null,i={data:e.responseType&&"text"!==e.responseType?f.response:f.responseText,status:f.status,statusText:f.statusText,headers:n,config:e,request:f};r(t,c,i),f=null}},f.onabort=function(){f&&(c(l("Request aborted",e,"ECONNABORTED",f)),f=null)},f.onerror=function(){c(l("Network Error",e,null,f)),f=null},f.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),c(l(t,e,"ECONNABORTED",f)),f=null},i.isStandardBrowserEnv()){var m=n(4915),_=(e.withCredentials||u(g))&&e.xsrfCookieName?m.read(e.xsrfCookieName):void 0;_&&(h[e.xsrfHeaderName]=_)}if("setRequestHeader"in f&&i.forEach(h,(function(e,t){"undefined"===typeof d&&"content-type"===t.toLowerCase()?delete h[t]:f.setRequestHeader(t,e)})),i.isUndefined(e.withCredentials)||(f.withCredentials=!!e.withCredentials),e.responseType)try{f.responseType=e.responseType}catch(y){if("json"!==e.responseType)throw y}"function"===typeof e.onDownloadProgress&&f.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){f&&(f.abort(),c(e),f=null)})),void 0===d&&(d=null),f.send(d)}))}},74034:function(e,t,n){"use strict";var i=n(32865),r=n(23198),o=n(19988),a=n(72889);function s(e){var t=new o(e),n=r(o.prototype.request,t);return i.extend(n,o.prototype,t),i.extend(n,t),n}var u=s(n(1488));u.Axios=o,u.create=function(e){return s(a(u.defaults,e))},u.Cancel=n(44011),u.CancelToken=n(2518),u.isCancel=n(66788),u.all=function(e){return Promise.all(e)},u.spread=n(27974),e.exports=u,e.exports.default=u},44011:function(e){"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},2518:function(e,t,n){"use strict";var i=n(44011);function r(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new i(e),t(n.reason))}))}r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e;return{token:new r((function(t){e=t})),cancel:e}},e.exports=r},66788:function(e){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},19988:function(e,t,n){"use strict";var i=n(32865),r=n(95136),o=n(66515),a=n(80812),s=n(72889);function u(e){this.defaults=e,this.interceptors={request:new o,response:new o}}u.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)n=n.then(t.shift(),t.shift());return n},u.prototype.getUri=function(e){return e=s(this.defaults,e),r(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},i.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))}})),i.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))}})),e.exports=u},66515:function(e,t,n){"use strict";var i=n(32865);function r(){this.handlers=[]}r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){i.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=r},97387:function(e,t,n){"use strict";var i=n(88817),r=n(79154);e.exports=function(e,t){return e&&!i(t)?r(e,t):t}},97993:function(e,t,n){"use strict";var i=n(13401);e.exports=function(e,t,n,r,o){var a=new Error(e);return i(a,t,n,r,o)}},80812:function(e,t,n){"use strict";var i=n(32865),r=n(55470),o=n(66788),a=n(1488);function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return s(e),e.headers=e.headers||{},e.data=r(e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),i.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return s(e),t.data=r(t.data,t.headers,e.transformResponse),t}),(function(t){return o(t)||(s(e),t&&t.response&&(t.response.data=r(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},13401:function(e){"use strict";e.exports=function(e,t,n,i,r){return e.config=t,n&&(e.code=n),e.request=i,e.response=r,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},72889:function(e,t,n){"use strict";var i=n(32865);e.exports=function(e,t){t=t||{};var n={},r=["url","method","params","data"],o=["headers","auth","proxy"],a=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];i.forEach(r,(function(e){"undefined"!==typeof t[e]&&(n[e]=t[e])})),i.forEach(o,(function(r){i.isObject(t[r])?n[r]=i.deepMerge(e[r],t[r]):"undefined"!==typeof t[r]?n[r]=t[r]:i.isObject(e[r])?n[r]=i.deepMerge(e[r]):"undefined"!==typeof e[r]&&(n[r]=e[r])})),i.forEach(a,(function(i){"undefined"!==typeof t[i]?n[i]=t[i]:"undefined"!==typeof e[i]&&(n[i]=e[i])}));var s=r.concat(o).concat(a),u=Object.keys(t).filter((function(e){return-1===s.indexOf(e)}));return i.forEach(u,(function(i){"undefined"!==typeof t[i]?n[i]=t[i]:"undefined"!==typeof e[i]&&(n[i]=e[i])})),n}},87520:function(e,t,n){"use strict";var i=n(97993);e.exports=function(e,t,n){var r=n.config.validateStatus;!r||r(n.status)?e(n):t(i("Request failed with status code "+n.status,n.config,null,n.request,n))}},55470:function(e,t,n){"use strict";var i=n(32865);e.exports=function(e,t,n){return i.forEach(n,(function(n){e=n(e,t)})),e}},1488:function(e,t,n){"use strict";var i=n(32865),r=n(16118),o={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!i.isUndefined(e)&&i.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s={adapter:function(){var e;return("undefined"!==typeof XMLHttpRequest||"undefined"!==typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(e=n(63866)),e}(),transformRequest:[function(e,t){return r(t,"Accept"),r(t,"Content-Type"),i.isFormData(e)||i.isArrayBuffer(e)||i.isBuffer(e)||i.isStream(e)||i.isFile(e)||i.isBlob(e)?e:i.isArrayBufferView(e)?e.buffer:i.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):i.isObject(e)?(a(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};i.forEach(["delete","get","head"],(function(e){s.headers[e]={}})),i.forEach(["post","put","patch"],(function(e){s.headers[e]=i.merge(o)})),e.exports=s},23198:function(e){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];return e.apply(t,n)}}},95136:function(e,t,n){"use strict";var i=n(32865);function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var o;if(n)o=n(t);else if(i.isURLSearchParams(t))o=t.toString();else{var a=[];i.forEach(t,(function(e,t){null!==e&&"undefined"!==typeof e&&(i.isArray(e)?t+="[]":e=[e],i.forEach(e,(function(e){i.isDate(e)?e=e.toISOString():i.isObject(e)&&(e=JSON.stringify(e)),a.push(r(t)+"="+r(e))})))})),o=a.join("&")}if(o){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},79154:function(e){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4915:function(e,t,n){"use strict";var i=n(32865);e.exports=i.isStandardBrowserEnv()?{write:function(e,t,n,r,o,a){var s=[];s.push(e+"="+encodeURIComponent(t)),i.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),i.isString(r)&&s.push("path="+r),i.isString(o)&&s.push("domain="+o),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},88817:function(e){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},90660:function(e,t,n){"use strict";var i=n(32865);e.exports=i.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function r(e){var i=e;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=r(window.location.href),function(t){var n=i.isString(t)?r(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},16118:function(e,t,n){"use strict";var i=n(32865);e.exports=function(e,t){i.forEach(e,(function(n,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[i])}))}},11279:function(e,t,n){"use strict";var i=n(32865),r=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,o,a={};return e?(i.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=i.trim(e.substr(0,o)).toLowerCase(),n=i.trim(e.substr(o+1)),t){if(a[t]&&r.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},27974:function(e){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},32865:function(e,t,n){"use strict";var i=n(23198),r=Object.prototype.toString;function o(e){return"[object Array]"===r.call(e)}function a(e){return"undefined"===typeof e}function s(e){return null!==e&&"object"===typeof e}function u(e){return"[object Function]"===r.call(e)}function l(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),o(e))for(var n=0,i=e.length;n<i;n++)t.call(null,e[n],n,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.call(null,e[r],r,e)}e.exports={isArray:o,isArrayBuffer:function(e){return"[object ArrayBuffer]"===r.call(e)},isBuffer:function(e){return null!==e&&!a(e)&&null!==e.constructor&&!a(e.constructor)&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!==typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"===typeof e},isNumber:function(e){return"number"===typeof e},isObject:s,isUndefined:a,isDate:function(e){return"[object Date]"===r.call(e)},isFile:function(e){return"[object File]"===r.call(e)},isBlob:function(e){return"[object Blob]"===r.call(e)},isFunction:u,isStream:function(e){return s(e)&&u(e.pipe)},isURLSearchParams:function(e){return"undefined"!==typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"===typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!==typeof window&&"undefined"!==typeof document)},forEach:l,merge:function e(){var t={};function n(n,i){"object"===typeof t[i]&&"object"===typeof n?t[i]=e(t[i],n):t[i]=n}for(var i=0,r=arguments.length;i<r;i++)l(arguments[i],n);return t},deepMerge:function e(){var t={};function n(n,i){"object"===typeof t[i]&&"object"===typeof n?t[i]=e(t[i],n):t[i]="object"===typeof n?e({},n):n}for(var i=0,r=arguments.length;i<r;i++)l(arguments[i],n);return t},extend:function(e,t,n){return l(t,(function(t,r){e[r]=n&&"function"===typeof t?i(t,n):t})),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},78243:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(44763),r=i.setup();function o(e){var t=r(e);function n(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var i,r=e.shift(),o=e[0],a=e[1];return"string"===typeof r&&"string"!==typeof o||(a=o,o=null),i=t(r,o),a&&(i=i.mix(a)),i.toString()}return n.builder=function(){return t},n}o.setup=function(e){r=i.setup(e)},o.reset=function(){r=i.setup()},t.default=o},44763:function(e){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(1);t.ERROR_BLOCK_NAME_TYPE="Block name should be a string",t.ERROR_BLOCK_NAME_EMPTY="Block name should be non-empty";var r={ns:"",el:"__",mod:"_",modValue:"_"},o=function(e){return"string"==typeof e},a=function(e){return"string"!=typeof e},s=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=i.assign({},t);return o.mixes=o.mixes.concat(n),d(o,e)},u=function(e,t,n){for(var r=[],o=3;o<arguments.length;o++)r[o-3]=arguments[o];var a=i.assign({},t),s=i.assign({},a.states||{});return s[n]=i.assign.apply(void 0,[{},s[n]||{}].concat(r)),a.states=s,d(a,e)},l=function(e,t,n,i){return String.prototype.split.call(c(e,t),n,i)},c=function(e,t){var n=t.name,i=t.mods,r=t.mixes,o=t.states,a=[n];if(i&&(a=a.concat(Object.keys(i).filter((function(e){return i[e]})).map((function(t){var r=i[t];return!0===r?n+e.mod+t:n+e.mod+t+e.modValue+r})))),o&&Object.keys(o).forEach((function(e){var t=o[e];a=a.concat(Object.keys(t).filter((function(e){return t[e]})).map((function(t){return e+t})))})),e.ns&&(a=a.map((function(t){return e.ns+t}))),r&&(a=a.concat(function(e){return void 0===e&&(e=[]),e.map((function(e){return Array.isArray(e)?e.join(" "):"object"==typeof e&&null!==e||"function"==typeof e?e.toString():"string"==typeof e?e:""})).filter((function(e){return!!e}))}(r))),e.classMap){var s=e.classMap;a=a.map((function(e){return s[e]||e}))}return a.join(" ")},d=function(e,t){return{mix:s.bind(null,t,e),split:l.bind(null,t,e),is:u.bind(null,t,e,"is-"),has:u.bind(null,t,e,"has-"),state:u.bind(null,t,e,"is-"),toString:c.bind(null,t,e)}},h=function(e,t){var n={name:e,mods:{},mixes:[],states:{"is-":{},"has-":{}}},r=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!n.length)return c(e,t);var s=i.assign({},t),u=n.filter(o).reduce((function(t,n){return t+e.el+n}),"");u&&(s.name=s.name+u);var l=n.filter(a).reduce((function(e,t){return i.assign(e,t)}),{});return s.mods=i.assign({},s.mods,l),d(s,e)}.bind(null,t,n);return r.mix=s.bind(null,t,n),r.split=l.bind(null,t,n),r.is=u.bind(null,t,n,"is-"),r.has=u.bind(null,t,n,"has-"),r.state=u.bind(null,t,n,"is-"),r.toString=c.bind(null,t,n),r};t.setup=function(e){return void 0===e&&(e={}),function(n){if("string"!=typeof n)throw new Error(t.ERROR_BLOCK_NAME_TYPE);var o=n.trim();if(!o)throw new Error(t.ERROR_BLOCK_NAME_EMPTY);return h(o,i.assign({},r,e))}},t.block=t.setup(),t.default=t.block},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assign=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var i=0;i<t.length;i++){var r=t[i];for(var o in r)r.hasOwnProperty(o)&&(e[o]=r[o])}return e}}])},48080:function(e,t,n){var i;!function(r){"use strict";function o(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function a(e,t,n,i,r,a){return o((s=o(o(t,e),o(i,a)))<<(u=r)|s>>>32-u,n);var s,u}function s(e,t,n,i,r,o,s){return a(t&n|~t&i,e,t,r,o,s)}function u(e,t,n,i,r,o,s){return a(t&i|n&~i,e,t,r,o,s)}function l(e,t,n,i,r,o,s){return a(t^n^i,e,t,r,o,s)}function c(e,t,n,i,r,o,s){return a(n^(t|~i),e,t,r,o,s)}function d(e,t){var n,i,r,a,d;e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;var h=1732584193,f=-271733879,p=-1732584194,v=271733878;for(n=0;n<e.length;n+=16)i=h,r=f,a=p,d=v,h=s(h,f,p,v,e[n],7,-680876936),v=s(v,h,f,p,e[n+1],12,-389564586),p=s(p,v,h,f,e[n+2],17,606105819),f=s(f,p,v,h,e[n+3],22,-1044525330),h=s(h,f,p,v,e[n+4],7,-176418897),v=s(v,h,f,p,e[n+5],12,1200080426),p=s(p,v,h,f,e[n+6],17,-1473231341),f=s(f,p,v,h,e[n+7],22,-45705983),h=s(h,f,p,v,e[n+8],7,1770035416),v=s(v,h,f,p,e[n+9],12,-1958414417),p=s(p,v,h,f,e[n+10],17,-42063),f=s(f,p,v,h,e[n+11],22,-1990404162),h=s(h,f,p,v,e[n+12],7,1804603682),v=s(v,h,f,p,e[n+13],12,-40341101),p=s(p,v,h,f,e[n+14],17,-1502002290),h=u(h,f=s(f,p,v,h,e[n+15],22,1236535329),p,v,e[n+1],5,-165796510),v=u(v,h,f,p,e[n+6],9,-1069501632),p=u(p,v,h,f,e[n+11],14,643717713),f=u(f,p,v,h,e[n],20,-373897302),h=u(h,f,p,v,e[n+5],5,-701558691),v=u(v,h,f,p,e[n+10],9,38016083),p=u(p,v,h,f,e[n+15],14,-660478335),f=u(f,p,v,h,e[n+4],20,-405537848),h=u(h,f,p,v,e[n+9],5,568446438),v=u(v,h,f,p,e[n+14],9,-1019803690),p=u(p,v,h,f,e[n+3],14,-187363961),f=u(f,p,v,h,e[n+8],20,1163531501),h=u(h,f,p,v,e[n+13],5,-1444681467),v=u(v,h,f,p,e[n+2],9,-51403784),p=u(p,v,h,f,e[n+7],14,1735328473),h=l(h,f=u(f,p,v,h,e[n+12],20,-1926607734),p,v,e[n+5],4,-378558),v=l(v,h,f,p,e[n+8],11,-2022574463),p=l(p,v,h,f,e[n+11],16,1839030562),f=l(f,p,v,h,e[n+14],23,-35309556),h=l(h,f,p,v,e[n+1],4,-1530992060),v=l(v,h,f,p,e[n+4],11,1272893353),p=l(p,v,h,f,e[n+7],16,-155497632),f=l(f,p,v,h,e[n+10],23,-1094730640),h=l(h,f,p,v,e[n+13],4,681279174),v=l(v,h,f,p,e[n],11,-358537222),p=l(p,v,h,f,e[n+3],16,-722521979),f=l(f,p,v,h,e[n+6],23,76029189),h=l(h,f,p,v,e[n+9],4,-640364487),v=l(v,h,f,p,e[n+12],11,-421815835),p=l(p,v,h,f,e[n+15],16,530742520),h=c(h,f=l(f,p,v,h,e[n+2],23,-995338651),p,v,e[n],6,-198630844),v=c(v,h,f,p,e[n+7],10,1126891415),p=c(p,v,h,f,e[n+14],15,-1416354905),f=c(f,p,v,h,e[n+5],21,-57434055),h=c(h,f,p,v,e[n+12],6,1700485571),v=c(v,h,f,p,e[n+3],10,-1894986606),p=c(p,v,h,f,e[n+10],15,-1051523),f=c(f,p,v,h,e[n+1],21,-2054922799),h=c(h,f,p,v,e[n+8],6,1873313359),v=c(v,h,f,p,e[n+15],10,-30611744),p=c(p,v,h,f,e[n+6],15,-1560198380),f=c(f,p,v,h,e[n+13],21,1309151649),h=c(h,f,p,v,e[n+4],6,-145523070),v=c(v,h,f,p,e[n+11],10,-1120210379),p=c(p,v,h,f,e[n+2],15,718787259),f=c(f,p,v,h,e[n+9],21,-343485551),h=o(h,i),f=o(f,r),p=o(p,a),v=o(v,d);return[h,f,p,v]}function h(e){var t,n="",i=32*e.length;for(t=0;t<i;t+=8)n+=String.fromCharCode(e[t>>5]>>>t%32&255);return n}function f(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t<n.length;t+=1)n[t]=0;var i=8*e.length;for(t=0;t<i;t+=8)n[t>>5]|=(255&e.charCodeAt(t/8))<<t%32;return n}function p(e){var t,n,i="0123456789abcdef",r="";for(n=0;n<e.length;n+=1)t=e.charCodeAt(n),r+=i.charAt(t>>>4&15)+i.charAt(15&t);return r}function v(e){return unescape(encodeURIComponent(e))}function g(e){return function(e){return h(d(f(e),8*e.length))}(v(e))}function m(e,t){return function(e,t){var n,i,r=f(e),o=[],a=[];for(o[15]=a[15]=void 0,r.length>16&&(r=d(r,8*e.length)),n=0;n<16;n+=1)o[n]=909522486^r[n],a[n]=1549556828^r[n];return i=d(o.concat(f(t)),512+8*t.length),h(d(a.concat(i),640))}(v(e),v(t))}function _(e,t,n){return t?n?m(t,e):p(m(t,e)):n?g(e):p(g(e))}void 0===(i=function(){return _}.call(t,n,t,e))||(e.exports=i)}()},15017:function(e,t,n){"use strict";var i=n(11333),r=n(17448),o=r(i("String.prototype.indexOf"));e.exports=function(e,t){var n=i(e,!!t);return"function"===typeof n&&o(e,".prototype.")>-1?r(n):n}},17448:function(e,t,n){"use strict";var i=n(62018),r=n(11333),o=r("%Function.prototype.apply%"),a=r("%Function.prototype.call%"),s=r("%Reflect.apply%",!0)||i.call(a,o),u=r("%Object.getOwnPropertyDescriptor%",!0),l=r("%Object.defineProperty%",!0),c=r("%Math.max%");if(l)try{l({},"a",{value:1})}catch(h){l=null}e.exports=function(e){var t=s(i,a,arguments);u&&l&&(u(t,"length").configurable&&l(t,"length",{value:1+c(0,e.length-(arguments.length-1))}));return t};var d=function(){return s(i,o,arguments)};l?l(e.exports,"apply",{value:d}):e.exports.apply=d},80358:function(e,t,n){"use strict";var i=n(22710),r={"text/plain":"Text","text/html":"Url",default:"Text"},o="Copy to clipboard: #{key}, Enter";e.exports=function(e,t){var n,a,s,u,l,c,d=!1;t||(t={}),n=t.debug||!1;try{if(s=i(),u=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(i){if(i.stopPropagation(),t.format)if(i.preventDefault(),"undefined"===typeof i.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=r[t.format]||r.default;window.clipboardData.setData(o,e)}else i.clipboardData.clearData(),i.clipboardData.setData(t.format,e);t.onCopy&&(i.preventDefault(),t.onCopy(i.clipboardData))})),document.body.appendChild(c),u.selectNodeContents(c),l.addRange(u),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");d=!0}catch(h){n&&console.error("unable to copy using execCommand: ",h),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),d=!0}catch(h){n&&console.error("unable to copy using clipboardData: ",h),n&&console.error("falling back to prompt"),a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:o),window.prompt(a,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(u):l.removeAllRanges()),c&&document.body.removeChild(c),s()}return d}},5426:function(e,t,n){"use strict";var i=n(58105),r={};var o=function(e){};function a(e,t,n,i,r,a,s,u){if(o(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,i,r,a,s,u],d=0;(l=new Error(t.replace(/%s/g,(function(){return c[d++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}var s="mixins";e.exports=function(e,t,n){var o=[],u={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},l={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},c={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)h(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=i({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=i({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=p(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=i({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(!t)return;for(var n in t){var i=t[n];if(t.hasOwnProperty(n)){if(a(!(n in c),'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n),n in e)return a("DEFINE_MANY_MERGED"===(l.hasOwnProperty(n)?l[n]:null),"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),void(e[n]=p(e[n],i));e[n]=i}}}(e,t)},autobind:function(){}};function d(e,t){var n=u.hasOwnProperty(t)?u[t]:null;y.hasOwnProperty(t)&&a("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&a("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function h(e,n){if(n){a("function"!==typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),a(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var i=e.prototype,r=i.__reactAutoBindPairs;for(var o in n.hasOwnProperty(s)&&c.mixins(e,n.mixins),n)if(n.hasOwnProperty(o)&&o!==s){var l=n[o],h=i.hasOwnProperty(o);if(d(h,o),c.hasOwnProperty(o))c[o](e,l);else{var f=u.hasOwnProperty(o);if("function"===typeof l&&!f&&!h&&!1!==n.autobind)r.push(o,l),i[o]=l;else if(h){var g=u[o];a(f&&("DEFINE_MANY_MERGED"===g||"DEFINE_MANY"===g),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",g,o),"DEFINE_MANY_MERGED"===g?i[o]=p(i[o],l):"DEFINE_MANY"===g&&(i[o]=v(i[o],l))}else i[o]=l}}}else;}function f(e,t){for(var n in a(e&&t&&"object"===typeof e&&"object"===typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(a(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function p(e,t){return function(){var n=e.apply(this,arguments),i=t.apply(this,arguments);if(null==n)return i;if(null==i)return n;var r={};return f(r,n),f(r,i),r}}function v(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function g(e,t){return t.bind(e)}var m={componentDidMount:function(){this.__isMounted=!0}},_={componentWillUnmount:function(){this.__isMounted=!1}},y={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},b=function(){};return i(b.prototype,e.prototype,y),function(e){var t=function(e,i,o){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var i=t[n],r=t[n+1];e[i]=g(e,r)}}(this),this.props=e,this.context=i,this.refs=r,this.updater=o||n,this.state=null;var s=this.getInitialState?this.getInitialState():null;a("object"===typeof s&&!Array.isArray(s),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=s};for(var i in t.prototype=new b,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],o.forEach(h.bind(null,t)),h(t,m),h(t,e),h(t,_),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),a(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),u)t.prototype[i]||(t.prototype[i]=null);return t}}},94278:function(e,t,n){"use strict";var i=n(4519),r=n(5426);if("undefined"===typeof i)throw Error("create-react-class could not find the React object. If you are using script tags, make sure that React is being loaded before create-react-class.");var o=(new i.Component).updater;e.exports=r(i.Component,i.isValidElement,o)},77801:function(e){e.exports=Date.now||function(){return(new Date).getTime()}},99517:function(e){e.exports=function(){"use strict";var e=1e3,t=6e4,n=36e5,i="millisecond",r="second",o="minute",a="hour",s="day",u="week",l="month",c="quarter",d="year",h="date",f="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,v=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},m=function(e,t,n){var i=String(e);return!i||i.length>=t?e:""+Array(t+1-i.length).join(n)+e},_={s:m,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),i=Math.floor(n/60),r=n%60;return(t<=0?"+":"-")+m(i,2,"0")+":"+m(r,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var i=12*(n.year()-t.year())+(n.month()-t.month()),r=t.clone().add(i,l),o=n-r<0,a=t.clone().add(i+(o?-1:1),l);return+(-(i+(n-r)/(o?r-a:a-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:u,d:s,D:h,h:a,m:o,s:r,ms:i,Q:c}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},y="en",b={};b[y]=g;var w=function(e){return e instanceof x},C=function e(t,n,i){var r;if(!t)return y;if("string"==typeof t){var o=t.toLowerCase();b[o]&&(r=o),n&&(b[o]=n,r=o);var a=t.split("-");if(!r&&a.length>1)return e(a[0])}else{var s=t.name;b[s]=t,r=s}return!i&&r&&(y=r),r||!i&&y},k=function(e,t){if(w(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new x(n)},S=_;S.l=C,S.i=w,S.w=function(e,t){return k(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var x=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e)}var m=g.prototype;return m.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(S.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var i=t.match(p);if(i){var r=i[2]-1||0,o=(i[7]||"0").substring(0,3);return n?new Date(Date.UTC(i[1],r,i[3]||1,i[4]||0,i[5]||0,i[6]||0,o)):new Date(i[1],r,i[3]||1,i[4]||0,i[5]||0,i[6]||0,o)}}return new Date(t)}(e),this.$x=e.x||{},this.init()},m.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},m.$utils=function(){return S},m.isValid=function(){return!(this.$d.toString()===f)},m.isSame=function(e,t){var n=k(e);return this.startOf(t)<=n&&n<=this.endOf(t)},m.isAfter=function(e,t){return k(e)<this.startOf(t)},m.isBefore=function(e,t){return this.endOf(t)<k(e)},m.$g=function(e,t,n){return S.u(e)?this[t]:this.set(n,e)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(e,t){var n=this,i=!!S.u(t)||t,c=S.p(e),f=function(e,t){var r=S.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return i?r:r.endOf(s)},p=function(e,t){return S.w(n.toDate()[e].apply(n.toDate("s"),(i?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},v=this.$W,g=this.$M,m=this.$D,_="set"+(this.$u?"UTC":"");switch(c){case d:return i?f(1,0):f(31,11);case l:return i?f(1,g):f(0,g+1);case u:var y=this.$locale().weekStart||0,b=(v<y?v+7:v)-y;return f(i?m-b:m+(6-b),g);case s:case h:return p(_+"Hours",0);case a:return p(_+"Minutes",1);case o:return p(_+"Seconds",2);case r:return p(_+"Milliseconds",3);default:return this.clone()}},m.endOf=function(e){return this.startOf(e,!1)},m.$set=function(e,t){var n,u=S.p(e),c="set"+(this.$u?"UTC":""),f=(n={},n[s]=c+"Date",n[h]=c+"Date",n[l]=c+"Month",n[d]=c+"FullYear",n[a]=c+"Hours",n[o]=c+"Minutes",n[r]=c+"Seconds",n[i]=c+"Milliseconds",n)[u],p=u===s?this.$D+(t-this.$W):t;if(u===l||u===d){var v=this.clone().set(h,1);v.$d[f](p),v.init(),this.$d=v.set(h,Math.min(this.$D,v.daysInMonth())).$d}else f&&this.$d[f](p);return this.init(),this},m.set=function(e,t){return this.clone().$set(e,t)},m.get=function(e){return this[S.p(e)]()},m.add=function(i,c){var h,f=this;i=Number(i);var p=S.p(c),v=function(e){var t=k(f);return S.w(t.date(t.date()+Math.round(e*i)),f)};if(p===l)return this.set(l,this.$M+i);if(p===d)return this.set(d,this.$y+i);if(p===s)return v(1);if(p===u)return v(7);var g=(h={},h[o]=t,h[a]=n,h[r]=e,h)[p]||1,m=this.$d.getTime()+i*g;return S.w(m,this)},m.subtract=function(e,t){return this.add(-1*e,t)},m.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var i=e||"YYYY-MM-DDTHH:mm:ssZ",r=S.z(this),o=this.$H,a=this.$m,s=this.$M,u=n.weekdays,l=n.months,c=function(e,n,r,o){return e&&(e[n]||e(t,i))||r[n].slice(0,o)},d=function(e){return S.s(o%12||12,e,"0")},h=n.meridiem||function(e,t,n){var i=e<12?"AM":"PM";return n?i.toLowerCase():i},p={YY:String(this.$y).slice(-2),YYYY:this.$y,M:s+1,MM:S.s(s+1,2,"0"),MMM:c(n.monthsShort,s,l,3),MMMM:c(l,s),D:this.$D,DD:S.s(this.$D,2,"0"),d:String(this.$W),dd:c(n.weekdaysMin,this.$W,u,2),ddd:c(n.weekdaysShort,this.$W,u,3),dddd:u[this.$W],H:String(o),HH:S.s(o,2,"0"),h:d(1),hh:d(2),a:h(o,a,!0),A:h(o,a,!1),m:String(a),mm:S.s(a,2,"0"),s:String(this.$s),ss:S.s(this.$s,2,"0"),SSS:S.s(this.$ms,3,"0"),Z:r};return i.replace(v,(function(e,t){return t||p[e]||r.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(i,h,f){var p,v=S.p(h),g=k(i),m=(g.utcOffset()-this.utcOffset())*t,_=this-g,y=S.m(this,g);return y=(p={},p[d]=y/12,p[l]=y,p[c]=y/3,p[u]=(_-m)/6048e5,p[s]=(_-m)/864e5,p[a]=_/n,p[o]=_/t,p[r]=_/e,p)[v]||_,f?y:S.a(y)},m.daysInMonth=function(){return this.endOf(l).$D},m.$locale=function(){return b[this.$L]},m.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),i=C(e,t,!0);return i&&(n.$L=i),n},m.clone=function(){return S.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},g}(),L=x.prototype;return k.prototype=L,[["$ms",i],["$s",r],["$m",o],["$H",a],["$W",s],["$M",l],["$y",d],["$D",h]].forEach((function(e){L[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),k.extend=function(e,t){return e.$i||(e(t,x,k),e.$i=!0),k},k.locale=C,k.isDayjs=w,k.unix=function(e){return k(1e3*e)},k.en=b[y],k.Ls=b,k.p={},k}()},20707:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"af",weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),weekStart:1,weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"}};return n.default.locale(i,null,!0),i}(n(99517))},28106:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"am",weekdays:"\u12a5\u1211\u12f5_\u1230\u129e_\u121b\u12ad\u1230\u129e_\u1228\u1261\u12d5_\u1210\u1219\u1235_\u12a0\u122d\u1265_\u1245\u12f3\u121c".split("_"),weekdaysShort:"\u12a5\u1211\u12f5_\u1230\u129e_\u121b\u12ad\u1230_\u1228\u1261\u12d5_\u1210\u1219\u1235_\u12a0\u122d\u1265_\u1245\u12f3\u121c".split("_"),weekdaysMin:"\u12a5\u1211_\u1230\u129e_\u121b\u12ad_\u1228\u1261_\u1210\u1219_\u12a0\u122d_\u1245\u12f3".split("_"),months:"\u1303\u1295\u12cb\u122a_\u134c\u1265\u122f\u122a_\u121b\u122d\u127d_\u12a4\u1355\u122a\u120d_\u121c\u12ed_\u1301\u1295_\u1301\u120b\u12ed_\u12a6\u1308\u1235\u1275_\u1234\u1355\u1274\u121d\u1260\u122d_\u12a6\u12ad\u1276\u1260\u122d_\u1296\u126c\u121d\u1260\u122d_\u12f2\u1234\u121d\u1260\u122d".split("_"),monthsShort:"\u1303\u1295\u12cb_\u134c\u1265\u122f_\u121b\u122d\u127d_\u12a4\u1355\u122a_\u121c\u12ed_\u1301\u1295_\u1301\u120b\u12ed_\u12a6\u1308\u1235_\u1234\u1355\u1274_\u12a6\u12ad\u1276_\u1296\u126c\u121d_\u12f2\u1234\u121d".split("_"),weekStart:1,yearStart:4,relativeTime:{future:"\u1260%s",past:"%s \u1260\u134a\u1275",s:"\u1325\u1242\u1275 \u1230\u12a8\u1295\u12f6\u127d",m:"\u12a0\u1295\u12f5 \u12f0\u1242\u1243",mm:"%d \u12f0\u1242\u1243\u12ce\u127d",h:"\u12a0\u1295\u12f5 \u1230\u12d3\u1275",hh:"%d \u1230\u12d3\u1273\u1275",d:"\u12a0\u1295\u12f5 \u1240\u1295",dd:"%d \u1240\u1293\u1275",M:"\u12a0\u1295\u12f5 \u12c8\u122d",MM:"%d \u12c8\u122b\u1275",y:"\u12a0\u1295\u12f5 \u12d3\u1218\u1275",yy:"%d \u12d3\u1218\u1273\u1275"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM D \u1363 YYYY",LLL:"MMMM D \u1363 YYYY HH:mm",LLLL:"dddd \u1363 MMMM D \u1363 YYYY HH:mm"},ordinal:function(e){return e+"\u129b"}};return n.default.locale(i,null,!0),i}(n(99517))},28440:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-dz",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},32087:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-iq",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0634\u0628\u0627\u0637_\u0622\u0630\u0627\u0631_\u0646\u064a\u0633\u0627\u0646_\u0623\u064a\u0627\u0631_\u062d\u0632\u064a\u0631\u0627\u0646_\u062a\u0645\u0648\u0632_\u0622\u0628_\u0623\u064a\u0644\u0648\u0644_\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644_ \u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644".split("_"),weekStart:1,weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0634\u0628\u0627\u0637_\u0622\u0630\u0627\u0631_\u0646\u064a\u0633\u0627\u0646_\u0623\u064a\u0627\u0631_\u062d\u0632\u064a\u0631\u0627\u0646_\u062a\u0645\u0648\u0632_\u0622\u0628_\u0623\u064a\u0644\u0648\u0644_\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644_ \u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},69545:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-kw",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},28263:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-ly",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekStart:6,weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},meridiem:function(e){return e>12?"\u0645":"\u0635"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},93205:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-ma",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekStart:6,weekdaysShort:"\u0627\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},10681:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-sa",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},58187:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ar-tn",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekStart:1,weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiem:function(e){return e>12?"\u0645":"\u0635"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"}};return n.default.locale(i,null,!0),i}(n(99517))},32871:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),r={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},o={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},a={name:"ar",weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),months:i,monthsShort:i,weekStart:6,relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",m:"\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",yy:"%d \u0623\u0639\u0648\u0627\u0645"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return o[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return r[e]})).replace(/,/g,"\u060c")},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"}};return n.default.locale(a,null,!0),a}(n(99517))},40885:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"az",weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"bir ne\xe7\u0259 saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},ordinal:function(e){return e}};return n.default.locale(i,null,!0),i}(n(99517))},56654:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"be",weekdays:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),months:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),weekStart:1,weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},77737:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bg",weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekStart:1,ordinal:function(e){var t=e%100;if(t>10&&t<20)return e+"-\u0442\u0438";var n=e%10;return 1===n?e+"-\u0432\u0438":2===n?e+"-\u0440\u0438":7===n||8===n?e+"-\u043c\u0438":e+"-\u0442\u0438"},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"}};return n.default.locale(i,null,!0),i}(n(99517))},69666:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bi",weekdays:"Sande_Mande_Tusde_Wenesde_Tosde_Fraede_Sarade".split("_"),months:"Januari_Februari_Maj_Eprel_Mei_Jun_Julae_Okis_Septemba_Oktoba_Novemba_Disemba".split("_"),weekStart:1,weekdaysShort:"San_Man_Tus_Wen_Tos_Frae_Sar".split("_"),monthsShort:"Jan_Feb_Maj_Epr_Mai_Jun_Jul_Oki_Sep_Okt_Nov_Dis".split("_"),weekdaysMin:"San_Ma_Tu_We_To_Fr_Sar".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"lo %s",past:"%s bifo",s:"sam seken",m:"wan minit",mm:"%d minit",h:"wan haoa",hh:"%d haoa",d:"wan dei",dd:"%d dei",M:"wan manis",MM:"%d manis",y:"wan yia",yy:"%d yia"}};return n.default.locale(i,null,!0),i}(n(99517))},27308:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bm",weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),weekStart:1,weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"}};return n.default.locale(i,null,!0),i}(n(99517))},13561:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},r={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"},o={name:"bn-bd",weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekStart:0,preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(e){return r[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return i[e]}))},ordinal:function(e){var t=["\u0987","\u09b2\u09be","\u09b0\u09be","\u09a0\u09be","\u09b6\u09c7"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"},formats:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY \u0996\u09cd\u09b0\u09bf\u09b8\u09cd\u099f\u09be\u09ac\u09cd\u09a6",LL:"D MMMM YYYY \u0996\u09cd\u09b0\u09bf\u09b8\u09cd\u099f\u09be\u09ac\u09cd\u09a6",LLL:"D MMMM YYYY \u0996\u09cd\u09b0\u09bf\u09b8\u09cd\u099f\u09be\u09ac\u09cd\u09a6, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY \u0996\u09cd\u09b0\u09bf\u09b8\u09cd\u099f\u09be\u09ac\u09cd\u09a6, A h:mm \u09b8\u09ae\u09df"},meridiem:function(e){return e<4?"\u09b0\u09be\u09a4":e<6?"\u09ad\u09cb\u09b0":e<12?"\u09b8\u0995\u09be\u09b2":e<15?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<18?"\u09ac\u09bf\u0995\u09be\u09b2":e<20?"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be":"\u09b0\u09be\u09a4"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"}};return n.default.locale(o,null,!0),o}(n(99517))},95051:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},r={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"},o={name:"bn",weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(e){return r[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return i[e]}))},ordinal:function(e){return e},formats:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"}};return n.default.locale(o,null,!0),o}(n(99517))},87409:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bo",weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f7c\u0f53\u0f0b\u0f63\u0f0b",s:"\u0f4f\u0f7c\u0f42\u0f0b\u0f59\u0f58\u0f0b",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",mm:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b %d",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",hh:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b %d",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",dd:"\u0f49\u0f72\u0f53\u0f0b %d",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",MM:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b %d",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b",yy:"\u0f63\u0f7c\u0f0b %d"}};return n.default.locale(i,null,!0),i}(n(99517))},81149:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e){return e>9?i(e%10):e}function r(e,t,n){return e+" "+function(e,t){return 2===t?function(e){return{m:"v",b:"v",d:"z"}[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}var o={name:"br",weekdays:"Sul_Lun_Meurzh_Merc\u02bcher_Yaou_Gwener_Sadorn".split("_"),months:"Genver_C\u02bchwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),weekStart:1,weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),monthsShort:"Gen_C\u02bchwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},relativeTime:{future:"a-benn %s",past:"%s \u02bczo",s:"un nebeud segondenno\xf9",m:"ur vunutenn",mm:r,h:"un eur",hh:"%d eur",d:"un devezh",dd:r,M:"ur miz",MM:r,y:"ur bloaz",yy:function(e){switch(i(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},meridiem:function(e){return e<12?"a.m.":"g.m."}};return n.default.locale(o,null,!0),o}(n(99517))},52362:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"bs",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),weekStart:1,weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},30242:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ca",weekdays:"Diumenge_Dilluns_Dimarts_Dimecres_Dijous_Divendres_Dissabte".split("_"),weekdaysShort:"Dg._Dl._Dt._Dc._Dj._Dv._Ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),months:"Gener_Febrer_Mar\xe7_Abril_Maig_Juny_Juliol_Agost_Setembre_Octubre_Novembre_Desembre".split("_"),monthsShort:"Gen._Febr._Mar\xe7_Abr._Maig_Juny_Jul._Ag._Set._Oct._Nov._Des.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",ll:"D MMM YYYY",lll:"D MMM YYYY, H:mm",llll:"ddd D MMM YYYY, H:mm"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:function(e){return e+(1===e||3===e?"r":2===e?"n":4===e?"t":"\xe8")}};return n.default.locale(i,null,!0),i}(n(99517))},61822:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e){return e>1&&e<5&&1!=~~(e/10)}function r(e,t,n,r){var o=e+" ";switch(n){case"s":return t||r?"p\xe1r sekund":"p\xe1r sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?o+(i(e)?"minuty":"minut"):o+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?o+(i(e)?"hodiny":"hodin"):o+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?o+(i(e)?"dny":"dn\xed"):o+"dny";case"M":return t||r?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return t||r?o+(i(e)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):o+"m\u011bs\xedci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?o+(i(e)?"roky":"let"):o+"lety"}}var o={name:"cs",weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),months:"leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),monthsShort:"led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_"),weekStart:1,yearStart:4,ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},52289:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"cv",weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),weekStart:1,weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},65452:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"cy",weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),weekStart:1,weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"}};return n.default.locale(i,null,!0),i}(n(99517))},27498:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"da",weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n._man._tirs._ons._tors._fre._l\xf8r.".split("_"),weekdaysMin:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj_juni_juli_aug._sept._okt._nov._dec.".split("_"),weekStart:1,ordinal:function(e){return e+"."},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"}};return n.default.locale(i,null,!0),i}(n(99517))},13578:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function r(e,t,n){var r=i[n];return Array.isArray(r)&&(r=r[t?0:1]),r.replace("%d",e)}var o={name:"de-at",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),ordinal:function(e){return e+"."},weekStart:1,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},18534:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function r(e,t,n){var r=i[n];return Array.isArray(r)&&(r=r[t?0:1]),r.replace("%d",e)}var o={name:"de-ch",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),ordinal:function(e){return e+"."},weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},83467:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function r(e,t,n){var r=i[n];return Array.isArray(r)&&(r=r[t?0:1]),r.replace("%d",e)}var o={name:"de",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},69174:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"dv",weekdays:"\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8_\u0780\u07aa\u0786\u07aa\u0783\u07aa_\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa".split("_"),months:"\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9_\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9_\u0789\u07a7\u0783\u07a8\u0797\u07aa_\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa_\u0789\u07ad_\u0796\u07ab\u0782\u07b0_\u0796\u07aa\u078d\u07a6\u0787\u07a8_\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa_\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa_\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa_\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa_\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa".split("_"),weekStart:7,weekdaysShort:"\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8_\u0780\u07aa\u0786\u07aa\u0783\u07aa_\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa".split("_"),monthsShort:"\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9_\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9_\u0789\u07a7\u0783\u07a8\u0797\u07aa_\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa_\u0789\u07ad_\u0796\u07ab\u0782\u07b0_\u0796\u07aa\u078d\u07a6\u0787\u07a8_\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa_\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa_\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa_\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa_\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa".split("_"),weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"}};return n.default.locale(i,null,!0),i}(n(99517))},90049:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"el",weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),months:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03b9_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0\u03c4_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),ordinal:function(e){return e},weekStart:1,relativeTime:{future:"\u03c3\u03b5 %s",past:"\u03c0\u03c1\u03b9\u03bd %s",s:"\u03bc\u03b5\u03c1\u03b9\u03ba\u03ac \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1 \u03bc\u03ae\u03bd\u03b1",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1 \u03c7\u03c1\u03cc\u03bd\u03bf",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"}};return n.default.locale(i,null,!0),i}(n(99517))},52875:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-au",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},42854:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-ca",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},73200:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-gb",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekStart:1,yearStart:4,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}};return n.default.locale(i,null,!0),i}(n(99517))},69027:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-ie",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},86886:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-il",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},52882:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-in",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekStart:1,yearStart:4,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}};return n.default.locale(i,null,!0),i}(n(99517))},85822:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-nz",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},47175:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-sg",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),weekStart:1,weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"}};return n.default.locale(i,null,!0),i}(n(99517))},45611:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"en-tt",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekStart:1,yearStart:4,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}};return n.default.locale(i,null,!0),i}(n(99517))},22898:function(e){e.exports=function(){"use strict";return{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}}}()},28486:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"eo",weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),weekStart:1,weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"}};return n.default.locale(i,null,!0),i}(n(99517))},48402:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es-do",weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekStart:1,relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"}};return n.default.locale(i,null,!0),i}(n(99517))},70610:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es-mx",weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},38309:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es-pr",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"}};return n.default.locale(i,null,!0),i}(n(99517))},9842:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es-us",weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"}};return n.default.locale(i,null,!0),i}(n(99517))},59110:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"es",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},ordinal:function(e){return e+"\xba"}};return n.default.locale(i,null,!0),i}(n(99517))},65104:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e,t,n,i){var r={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],m:["\xfche minuti","\xfcks minut"],mm:["%d minuti","%d minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:["%d tunni","%d tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:["%d kuu","%d kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:["%d aasta","%d aastat"]};return t?(r[n][2]?r[n][2]:r[n][1]).replace("%d",e):(i?r[n][0]:r[n][1]).replace("%d",e)}var r={name:"et",weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:"%d p\xe4eva",M:i,MM:i,y:i,yy:i},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return n.default.locale(r,null,!0),r}(n(99517))},95386:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"eu",weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),weekStart:1,weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"}};return n.default.locale(i,null,!0),i}(n(99517))},26736:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fa",weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c_\u062f\u0648_\u0633\u0647\u200c_\u0686\u0647_\u067e\u0646_\u062c\u0645_\u0634\u0646".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekStart:6,months:"\u0641\u0631\u0648\u0631\u062f\u06cc\u0646_\u0627\u0631\u062f\u06cc\u0628\u0647\u0634\u062a_\u062e\u0631\u062f\u0627\u062f_\u062a\u06cc\u0631_\u0645\u0631\u062f\u0627\u062f_\u0634\u0647\u0631\u06cc\u0648\u0631_\u0645\u0647\u0631_\u0622\u0628\u0627\u0646_\u0622\u0630\u0631_\u062f\u06cc_\u0628\u0647\u0645\u0646_\u0627\u0633\u0641\u0646\u062f".split("_"),monthsShort:"\u0641\u0631\u0648_\u0627\u0631\u062f_\u062e\u0631\u062f_\u062a\u06cc\u0631_\u0645\u0631\u062f_\u0634\u0647\u0631_\u0645\u0647\u0631_\u0622\u0628\u0627_\u0622\u0630\u0631_\u062f\u06cc_\u0628\u0647\u0645_\u0627\u0633\u0641".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"}};return n.default.locale(i,null,!0),i}(n(99517))},22614:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e,t,n,i){var r={s:"muutama sekunti",m:"minuutti",mm:"%d minuuttia",h:"tunti",hh:"%d tuntia",d:"p\xe4iv\xe4",dd:"%d p\xe4iv\xe4\xe4",M:"kuukausi",MM:"%d kuukautta",y:"vuosi",yy:"%d vuotta",numbers:"nolla_yksi_kaksi_kolme_nelj\xe4_viisi_kuusi_seitsem\xe4n_kahdeksan_yhdeks\xe4n".split("_")},o={s:"muutaman sekunnin",m:"minuutin",mm:"%d minuutin",h:"tunnin",hh:"%d tunnin",d:"p\xe4iv\xe4n",dd:"%d p\xe4iv\xe4n",M:"kuukauden",MM:"%d kuukauden",y:"vuoden",yy:"%d vuoden",numbers:"nollan_yhden_kahden_kolmen_nelj\xe4n_viiden_kuuden_seitsem\xe4n_kahdeksan_yhdeks\xe4n".split("_")},a=i&&!t?o:r,s=a[n];return e<10?s.replace("%d",a.numbers[e]):s.replace("%d",e)}var r={name:"fi",weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM[ta] YYYY",LLL:"D. MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, D. MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"D. MMM YYYY",lll:"D. MMM YYYY, [klo] HH.mm",llll:"ddd, D. MMM YYYY, [klo] HH.mm"}};return n.default.locale(r,null,!0),r}(n(99517))},99022:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fo",weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),weekStart:1,weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",m:"ein minuttur",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0ur",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"}};return n.default.locale(i,null,!0),i}(n(99517))},28983:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fr-ca",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"}};return n.default.locale(i,null,!0),i}(n(99517))},49347:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fr-ch",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),weekStart:1,weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"}};return n.default.locale(i,null,!0),i}(n(99517))},43344:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fr",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(e){return e+(1===e?"er":"")}};return n.default.locale(i,null,!0),i}(n(99517))},49007:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"fy",weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),weekStart:1,weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"}};return n.default.locale(i,null,!0),i}(n(99517))},54199:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ga",weekdays:"D\xe9 Domhnaigh_D\xe9 Luain_D\xe9 M\xe1irt_D\xe9 C\xe9adaoin_D\xe9ardaoin_D\xe9 hAoine_D\xe9 Satharn".split("_"),months:"Ean\xe1ir_Feabhra_M\xe1rta_Aibre\xe1n_Bealtaine_M\xe9itheamh_I\xfail_L\xfanasa_Me\xe1n F\xf3mhair_Deaireadh F\xf3mhair_Samhain_Nollaig".split("_"),weekStart:1,weekdaysShort:"Dom_Lua_M\xe1i_C\xe9a_D\xe9a_hAo_Sat".split("_"),monthsShort:"Ean\xe1_Feab_M\xe1rt_Aibr_Beal_M\xe9it_I\xfail_L\xfana_Me\xe1n_Deai_Samh_Noll".split("_"),weekdaysMin:"Do_Lu_M\xe1_Ce_D\xe9_hA_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"i %s",past:"%s \xf3 shin",s:"c\xfapla soicind",m:"n\xf3im\xe9ad",mm:"%d n\xf3im\xe9ad",h:"uair an chloig",hh:"%d uair an chloig",d:"l\xe1",dd:"%d l\xe1",M:"m\xed",MM:"%d m\xed",y:"bliain",yy:"%d bliain"}};return n.default.locale(i,null,!0),i}(n(99517))},97279:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"gd",weekdays:"Did\xf2mhnaich_Diluain_Dim\xe0irt_Diciadain_Diardaoin_Dihaoine_Disathairne".split("_"),months:"Am Faoilleach_An Gearran_Am M\xe0rt_An Giblean_An C\xe8itean_An t-\xd2gmhios_An t-Iuchar_An L\xf9nastal_An t-Sultain_An D\xe0mhair_An t-Samhain_An D\xf9bhlachd".split("_"),weekStart:1,weekdaysShort:"Did_Dil_Dim_Dic_Dia_Dih_Dis".split("_"),monthsShort:"Faoi_Gear_M\xe0rt_Gibl_C\xe8it_\xd2gmh_Iuch_L\xf9n_Sult_D\xe0mh_Samh_D\xf9bh".split("_"),weekdaysMin:"D\xf2_Lu_M\xe0_Ci_Ar_Ha_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"}};return n.default.locale(i,null,!0),i}(n(99517))},58326:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"gl",weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),weekStart:1,weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),ordinal:function(e){return e+"\xba"},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"fai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"}};return n.default.locale(i,null,!0),i}(n(99517))},35618:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"gom-latn",weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),weekStart:1,weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"}};return n.default.locale(i,null,!0),i}(n(99517))},72741:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"gu",weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"}};return n.default.locale(i,null,!0),i}(n(99517))},26006:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:"%d \u05e9\u05e2\u05d5\u05ea",hh2:"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd",d:"\u05d9\u05d5\u05dd",dd:"%d \u05d9\u05de\u05d9\u05dd",dd2:"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd",M:"\u05d7\u05d5\u05d3\u05e9",MM:"%d \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd",MM2:"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd",y:"\u05e9\u05e0\u05d4",yy:"%d \u05e9\u05e0\u05d9\u05dd",yy2:"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd"};function r(e,t,n){return(i[n+(2===e?"2":"")]||i[n]).replace("%d",e)}var o={name:"he",weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5_\u05e9\u05f3".split("_"),months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5_\u05e4\u05d1\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0_\u05d9\u05d5\u05dc_\u05d0\u05d5\u05d2_\u05e1\u05e4\u05d8_\u05d0\u05d5\u05e7_\u05e0\u05d5\u05d1_\u05d3\u05e6\u05de".split("_"),relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},ordinal:function(e){return e},format:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"}};return n.default.locale(o,null,!0),o}(n(99517))},95160:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"hi",weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"}};return n.default.locale(i,null,!0),i}(n(99517))},15417:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),r="sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),o=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/,a=function(e,t){return o.test(t)?i[e.month()]:r[e.month()]};a.s=r,a.f=i;var s={name:"hr",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),months:a,monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},relativeTime:{future:"za %s",past:"prije %s",s:"sekunda",m:"minuta",mm:"%d minuta",h:"sat",hh:"%d sati",d:"dan",dd:"%d dana",M:"mjesec",MM:"%d mjeseci",y:"godina",yy:"%d godine"},ordinal:function(e){return e+"."}};return n.default.locale(s,null,!0),s}(n(99517))},15123:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ht",weekdays:"dimanch_lendi_madi_m\xe8kredi_jedi_vandredi_samdi".split("_"),months:"janvye_fevriye_mas_avril_me_jen_jiy\xe8_out_septanm_okt\xf2b_novanm_desanm".split("_"),weekdaysShort:"dim._len._mad._m\xe8k._jed._van._sam.".split("_"),monthsShort:"jan._fev._mas_avr._me_jen_jiy\xe8._out_sept._okt._nov._des.".split("_"),weekdaysMin:"di_le_ma_m\xe8_je_va_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"nan %s",past:"sa gen %s",s:"k\xe8k segond",m:"yon minit",mm:"%d minit",h:"in\xe8dtan",hh:"%d z\xe8",d:"yon jou",dd:"%d jou",M:"yon mwa",MM:"%d mwa",y:"yon ane",yy:"%d ane"}};return n.default.locale(i,null,!0),i}(n(99517))},4802:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"hu",weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"%s m\xfalva",past:"%s",s:function(e,t,n,i){return"n\xe9h\xe1ny m\xe1sodperc"+(i||t?"":"e")},m:function(e,t,n,i){return"egy perc"+(i||t?"":"e")},mm:function(e,t,n,i){return e+" perc"+(i||t?"":"e")},h:function(e,t,n,i){return"egy "+(i||t?"\xf3ra":"\xf3r\xe1ja")},hh:function(e,t,n,i){return e+" "+(i||t?"\xf3ra":"\xf3r\xe1ja")},d:function(e,t,n,i){return"egy "+(i||t?"nap":"napja")},dd:function(e,t,n,i){return e+" "+(i||t?"nap":"napja")},M:function(e,t,n,i){return"egy "+(i||t?"h\xf3nap":"h\xf3napja")},MM:function(e,t,n,i){return e+" "+(i||t?"h\xf3nap":"h\xf3napja")},y:function(e,t,n,i){return"egy "+(i||t?"\xe9v":"\xe9ve")},yy:function(e,t,n,i){return e+" "+(i||t?"\xe9v":"\xe9ve")}},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},82474:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"hy-am",weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),months:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),weekStart:1,weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"}};return n.default.locale(i,null,!0),i}(n(99517))},59745:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"id",weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},48139:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={s:["nokkrar sek\xfandur","nokkrar sek\xfandur","nokkrum sek\xfandum"],m:["m\xedn\xfata","m\xedn\xfatu","m\xedn\xfatu"],mm:["m\xedn\xfatur","m\xedn\xfatur","m\xedn\xfatum"],h:["klukkustund","klukkustund","klukkustund"],hh:["klukkustundir","klukkustundir","klukkustundum"],d:["dagur","dag","degi"],dd:["dagar","daga","d\xf6gum"],M:["m\xe1nu\xf0ur","m\xe1nu\xf0","m\xe1nu\xf0i"],MM:["m\xe1nu\xf0ir","m\xe1nu\xf0i","m\xe1nu\xf0um"],y:["\xe1r","\xe1r","\xe1ri"],yy:["\xe1r","\xe1r","\xe1rum"]};function r(e,t,n,r){var o=function(e,t,n,r){var o=r?0:n?1:2,a=2===e.length&&t%10==1?e[0]:e,s=i[a][o];return 1===e.length?s:"%d "+s}(n,e,r,t);return o.replace("%d",e)}var o={name:"is",weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),weekStart:1,weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},32436:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"it-ch",weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),weekStart:1,weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"}};return n.default.locale(i,null,!0),i}(n(99517))},46869:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"it",weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),weekStart:1,monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"tra %s",past:"%s fa",s:"qualche secondo",m:"un minuto",mm:"%d minuti",h:"un' ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:function(e){return e+"\xba"}};return n.default.locale(i,null,!0),i}(n(99517))},7942:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ja",weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e){return e+"\u65e5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiem:function(e){return e<12?"\u5348\u524d":"\u5348\u5f8c"},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u6570\u79d2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65e5",dd:"%d\u65e5",M:"1\u30f6\u6708",MM:"%d\u30f6\u6708",y:"1\u5e74",yy:"%d\u5e74"}};return n.default.locale(i,null,!0),i}(n(99517))},24512:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"jv",weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),weekStart:1,weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),ordinal:function(e){return e},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"}};return n.default.locale(i,null,!0),i}(n(99517))},11499:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ka",weekdays:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),months:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekStart:1,formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"%s \u10e8\u10d4\u10db\u10d3\u10d4\u10d2",past:"%s \u10ec\u10d8\u10dc",s:"\u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8\u10e1",d:"\u10d3\u10e6\u10d4\u10e1",dd:"%d \u10d3\u10e6\u10d8\u10e1 \u10d2\u10d0\u10dc\u10db\u10d0\u10d5\u10da\u10dd\u10d1\u10d0\u10e8\u10d8",M:"\u10d7\u10d5\u10d8\u10e1",MM:"%d \u10d7\u10d5\u10d8\u10e1",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10da\u10d8\u10e1"},ordinal:function(e){return e}};return n.default.locale(i,null,!0),i}(n(99517))},17700:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"kk",weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekStart:1,relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},42661:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"km",weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekStart:1,weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"}};return n.default.locale(i,null,!0),i}(n(99517))},4439:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"kn",weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"}};return n.default.locale(i,null,!0),i}(n(99517))},24989:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ko",weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},meridiem:function(e){return e<12?"\uc624\uc804":"\uc624\ud6c4"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"}};return n.default.locale(i,null,!0),i}(n(99517))},31316:function(e,t,n){!function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=n(t),r={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},o={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},a=["\u06a9\u0627\u0646\u0648\u0648\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0634\u0648\u0628\u0627\u062a","\u0626\u0627\u062f\u0627\u0631","\u0646\u06cc\u0633\u0627\u0646","\u0626\u0627\u06cc\u0627\u0631","\u062d\u0648\u0632\u06d5\u06cc\u0631\u0627\u0646","\u062a\u06d5\u0645\u0645\u0648\u0648\u0632","\u0626\u0627\u0628","\u0626\u06d5\u06cc\u0644\u0648\u0648\u0644","\u062a\u0634\u0631\u06cc\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645","\u062a\u0634\u0631\u06cc\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u06a9\u0627\u0646\u0648\u0648\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645"],s={name:"ku",months:a,monthsShort:a,weekdays:"\u06cc\u06d5\u06a9\u0634\u06d5\u0645\u0645\u06d5_\u062f\u0648\u0648\u0634\u06d5\u0645\u0645\u06d5_\u0633\u06ce\u0634\u06d5\u0645\u0645\u06d5_\u0686\u0648\u0627\u0631\u0634\u06d5\u0645\u0645\u06d5_\u067e\u06ce\u0646\u062c\u0634\u06d5\u0645\u0645\u06d5_\u0647\u06d5\u06cc\u0646\u06cc_\u0634\u06d5\u0645\u0645\u06d5".split("_"),weekdaysShort:"\u06cc\u06d5\u06a9\u0634\u06d5\u0645_\u062f\u0648\u0648\u0634\u06d5\u0645_\u0633\u06ce\u0634\u06d5\u0645_\u0686\u0648\u0627\u0631\u0634\u06d5\u0645_\u067e\u06ce\u0646\u062c\u0634\u06d5\u0645_\u0647\u06d5\u06cc\u0646\u06cc_\u0634\u06d5\u0645\u0645\u06d5".split("_"),weekStart:6,weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u0647\u0640_\u0634".split("_"),preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return o[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return r[e]})).replace(/,/g,"\u060c")},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiem:function(e){return e<12?"\u067e.\u0646":"\u062f.\u0646"},relativeTime:{future:"\u0644\u06d5 %s",past:"\u0644\u06d5\u0645\u06d5\u0648\u067e\u06ce\u0634 %s",s:"\u0686\u06d5\u0646\u062f \u0686\u0631\u06a9\u06d5\u06cc\u06d5\u06a9",m:"\u06cc\u06d5\u06a9 \u062e\u0648\u0644\u06d5\u06a9",mm:"%d \u062e\u0648\u0644\u06d5\u06a9",h:"\u06cc\u06d5\u06a9 \u06a9\u0627\u062a\u0698\u0645\u06ce\u0631",hh:"%d \u06a9\u0627\u062a\u0698\u0645\u06ce\u0631",d:"\u06cc\u06d5\u06a9 \u0695\u06c6\u0698",dd:"%d \u0695\u06c6\u0698",M:"\u06cc\u06d5\u06a9 \u0645\u0627\u0646\u06af",MM:"%d \u0645\u0627\u0646\u06af",y:"\u06cc\u06d5\u06a9 \u0633\u0627\u06b5",yy:"%d \u0633\u0627\u06b5"}};i.default.locale(s,null,!0),e.default=s,e.englishToArabicNumbersMap=r,Object.defineProperty(e,"__esModule",{value:!0})}(t,n(99517))},88412:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ky",weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),weekStart:1,weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"}};return n.default.locale(i,null,!0),i}(n(99517))},69139:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"lb",weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),weekStart:1,weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"}};return n.default.locale(i,null,!0),i}(n(99517))},69052:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"lo",weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"}};return n.default.locale(i,null,!0),i}(n(99517))},41244:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),r="sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),o=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,a=function(e,t){return o.test(t)?i[e.month()]:r[e.month()]};a.s=r,a.f=i;var s={name:"lt",weekdays:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),weekdaysShort:"sek_pir_ant_tre_ket_pen_\u0161e\u0161".split("_"),weekdaysMin:"s_p_a_t_k_pn_\u0161".split("_"),months:a,monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"u\u017e %s",past:"prie\u0161 %s",s:"kelias sekundes",m:"minut\u0119",mm:"%d minutes",h:"valand\u0105",hh:"%d valandas",d:"dien\u0105",dd:"%d dienas",M:"m\u0117nes\u012f",MM:"%d m\u0117nesius",y:"metus",yy:"%d metus"},format:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"}};return n.default.locale(s,null,!0),s}(n(99517))},99648:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"lv",weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),weekStart:1,weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:"da\u017e\u0101m sekund\u0113m",m:"min\u016btes",mm:"%d min\u016bt\u0113m",h:"stundas",hh:"%d stund\u0101m",d:"dienas",dd:"%d dien\u0101m",M:"m\u0113ne\u0161a",MM:"%d m\u0113ne\u0161iem",y:"gada",yy:"%d gadiem"}};return n.default.locale(i,null,!0),i}(n(99517))},81888:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"me",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),weekStart:1,weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},87700:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mi",weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),weekStart:1,weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"}};return n.default.locale(i,null,!0),i}(n(99517))},14880:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mk",weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),weekStart:1,weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"}};return n.default.locale(i,null,!0),i}(n(99517))},71405:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ml",weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"}};return n.default.locale(i,null,!0),i}(n(99517))},1792:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mn",weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},relativeTime:{future:"%s",past:"%s",s:"\u0441\u0430\u044f\u0445\u0430\u043d",m:"\u043c",mm:"%d\u043c",h:"1\u0446",hh:"%d\u0446",d:"1\u04e9",dd:"%d\u04e9",M:"1\u0441",MM:"%d\u0441",y:"1\u0436",yy:"%d\u0436"}};return n.default.locale(i,null,!0),i}(n(99517))},62936:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mr",weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"}};return n.default.locale(i,null,!0),i}(n(99517))},4967:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ms-my",weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),weekStart:1,weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),ordinal:function(e){return e},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"}};return n.default.locale(i,null,!0),i}(n(99517))},23603:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ms",weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH.mm",LLLL:"dddd, D MMMM YYYY HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},76408:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"mt",weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),weekStart:1,weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"}};return n.default.locale(i,null,!0),i}(n(99517))},72460:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"my",weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),weekStart:1,weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"}};return n.default.locale(i,null,!0),i}(n(99517))},27680:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"nb",weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"}};return n.default.locale(i,null,!0),i}(n(99517))},23964:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ne",weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),relativeTime:{future:"%s \u092a\u091b\u093f",past:"%s \u0905\u0918\u093f",s:"\u0938\u0947\u0915\u0947\u0928\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u0918\u0928\u094d\u091f\u093e",hh:"%d \u0918\u0928\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},ordinal:function(e){return(""+e).replace(/\d/g,(function(e){return"\u0966\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f"[e]}))},formats:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"}};return n.default.locale(i,null,!0),i}(n(99517))},76803:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"nl-be",weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),weekStart:1,weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"}};return n.default.locale(i,null,!0),i}(n(99517))},90792:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"nl",weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),ordinal:function(e){return"["+e+(1===e||8===e||e>=20?"ste":"de")+"]"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"een minuut",mm:"%d minuten",h:"een uur",hh:"%d uur",d:"een dag",dd:"%d dagen",M:"een maand",MM:"%d maanden",y:"een jaar",yy:"%d jaar"}};return n.default.locale(i,null,!0),i}(n(99517))},23693:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"nn",weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_la".split("_"),months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"om %s",past:"for %s sidan",s:"nokre sekund",m:"eitt minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nadar",y:"eitt \xe5r",yy:"%d \xe5r"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},76136:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"oc-lnc",weekdays:"dimenge_diluns_dimars_dim\xe8cres_dij\xf2us_divendres_dissabte".split("_"),weekdaysShort:"Dg_Dl_Dm_Dc_Dj_Dv_Ds".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),months:"geni\xe8r_febri\xe8r_mar\xe7_abrial_mai_junh_julhet_agost_setembre_oct\xf2bre_novembre_decembre".split("_"),monthsShort:"gen_feb_mar\xe7_abr_mai_junh_julh_ago_set_oct_nov_dec".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"unas segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},ordinal:function(e){return e+"\xba"}};return n.default.locale(i,null,!0),i}(n(99517))},8565:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"pa-in",weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"}};return n.default.locale(i,null,!0),i}(n(99517))},86348:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function r(e,t,n){var r=e+" ";switch(n){case"m":return t?"minuta":"minut\u0119";case"mm":return r+(i(e)?"minuty":"minut");case"h":return t?"godzina":"godzin\u0119";case"hh":return r+(i(e)?"godziny":"godzin");case"MM":return r+(i(e)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return r+(i(e)?"lata":"lat")}}var o="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_"),a="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),s=/D MMMM/,u=function(e,t){return s.test(t)?o[e.month()]:a[e.month()]};u.s=a,u.f=o;var l={name:"pl",weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),months:u,monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:r,mm:r,h:r,hh:r,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:r,y:"rok",yy:r},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(l,null,!0),l}(n(99517))},86064:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"pt-br",weekdays:"domingo_segunda-feira_ter\xe7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xe1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_s\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),ordinal:function(e){return e+"\xba"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"}};return n.default.locale(i,null,!0),i}(n(99517))},68239:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"pt",weekdays:"domingo_segunda-feira_ter\xe7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xe1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sab".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_Sa".split("_"),months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),ordinal:function(e){return e+"\xba"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"alguns segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"}};return n.default.locale(i,null,!0),i}(n(99517))},70233:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"rn",weekdays:"Ku wa Mungu_Ku wa Mbere_Ku wa Kabiri_Ku wa Gatatu_Ku wa Kane_Ku wa Gatanu_Ku wa Gatandatu".split("_"),weekdaysShort:"Kngu_Kmbr_Kbri_Ktat_Kkan_Ktan_Kdat".split("_"),weekdaysMin:"K7_K1_K2_K3_K4_K5_K6".split("_"),months:"Nzero_Ruhuhuma_Ntwarante_Ndamukiza_Rusama_Ruhenshi_Mukakaro_Myandagaro_Nyakanga_Gitugutu_Munyonyo_Kigarama".split("_"),monthsShort:"Nzer_Ruhuh_Ntwar_Ndam_Rus_Ruhen_Muk_Myand_Nyak_Git_Muny_Kig".split("_"),weekStart:1,ordinal:function(e){return e},relativeTime:{future:"mu %s",past:"%s",s:"amasegonda",m:"Umunota",mm:"%d iminota",h:"isaha",hh:"%d amasaha",d:"Umunsi",dd:"%d iminsi",M:"ukwezi",MM:"%d amezi",y:"umwaka",yy:"%d imyaka"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},9656:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ro",weekdays:"Duminic\u0103_Luni_Mar\u021bi_Miercuri_Joi_Vineri_S\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),months:"Ianuarie_Februarie_Martie_Aprilie_Mai_Iunie_Iulie_August_Septembrie_Octombrie_Noiembrie_Decembrie".split("_"),monthsShort:"Ian._Febr._Mart._Apr._Mai_Iun._Iul._Aug._Sept._Oct._Nov._Dec.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"peste %s",past:"acum %s",s:"c\xe2teva secunde",m:"un minut",mm:"%d minute",h:"o or\u0103",hh:"%d ore",d:"o zi",dd:"%d zile",M:"o lun\u0103",MM:"%d luni",y:"un an",yy:"%d ani"},ordinal:function(e){return e}};return n.default.locale(i,null,!0),i}(n(99517))},98848:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),r="\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),o="\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),a="\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),s=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function u(e,t,n){var i,r;return"m"===n?t?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":e+" "+(i=+e,r={mm:t?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[n].split("_"),i%10==1&&i%100!=11?r[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?r[1]:r[2])}var l=function(e,t){return s.test(t)?i[e.month()]:r[e.month()]};l.s=r,l.f=i;var c=function(e,t){return s.test(t)?o[e.month()]:a[e.month()]};c.s=a,c.f=o;var d={name:"ru",weekdays:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u0432\u0441\u043a_\u043f\u043d\u0434_\u0432\u0442\u0440_\u0441\u0440\u0434_\u0447\u0442\u0432_\u043f\u0442\u043d_\u0441\u0431\u0442".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),months:l,monthsShort:c,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",m:u,mm:u,h:"\u0447\u0430\u0441",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},ordinal:function(e){return e},meridiem:function(e){return e<4?"\u043d\u043e\u0447\u0438":e<12?"\u0443\u0442\u0440\u0430":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"}};return n.default.locale(d,null,!0),d}(n(99517))},36411:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"rw",weekdays:"Ku Cyumweru_Kuwa Mbere_Kuwa Kabiri_Kuwa Gatatu_Kuwa Kane_Kuwa Gatanu_Kuwa Gatandatu".split("_"),months:"Mutarama_Gashyantare_Werurwe_Mata_Gicurasi_Kamena_Nyakanga_Kanama_Nzeri_Ukwakira_Ugushyingo_Ukuboza".split("_"),relativeTime:{future:"mu %s",past:"%s",s:"amasegonda",m:"Umunota",mm:"%d iminota",h:"isaha",hh:"%d amasaha",d:"Umunsi",dd:"%d iminsi",M:"ukwezi",MM:"%d amezi",y:"umwaka",yy:"%d imyaka"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:function(e){return e}};return n.default.locale(i,null,!0),i}(n(99517))},14166:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sd",weekdays:"\u0622\u0686\u0631_\u0633\u0648\u0645\u0631_\u0627\u06b1\u0627\u0631\u0648_\u0627\u0631\u0628\u0639_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639_\u0687\u0646\u0687\u0631".split("_"),months:"\u062c\u0646\u0648\u0631\u064a_\u0641\u064a\u0628\u0631\u0648\u0631\u064a_\u0645\u0627\u0631\u0686_\u0627\u067e\u0631\u064a\u0644_\u0645\u0626\u064a_\u062c\u0648\u0646_\u062c\u0648\u0644\u0627\u0621\u0650_\u0622\u06af\u0633\u067d_\u0633\u064a\u067e\u067d\u0645\u0628\u0631_\u0622\u06aa\u067d\u0648\u0628\u0631_\u0646\u0648\u0645\u0628\u0631_\u068a\u0633\u0645\u0628\u0631".split("_"),weekStart:1,weekdaysShort:"\u0622\u0686\u0631_\u0633\u0648\u0645\u0631_\u0627\u06b1\u0627\u0631\u0648_\u0627\u0631\u0628\u0639_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639_\u0687\u0646\u0687\u0631".split("_"),monthsShort:"\u062c\u0646\u0648\u0631\u064a_\u0641\u064a\u0628\u0631\u0648\u0631\u064a_\u0645\u0627\u0631\u0686_\u0627\u067e\u0631\u064a\u0644_\u0645\u0626\u064a_\u062c\u0648\u0646_\u062c\u0648\u0644\u0627\u0621\u0650_\u0622\u06af\u0633\u067d_\u0633\u064a\u067e\u067d\u0645\u0628\u0631_\u0622\u06aa\u067d\u0648\u0628\u0631_\u0646\u0648\u0645\u0628\u0631_\u068a\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u0622\u0686\u0631_\u0633\u0648\u0645\u0631_\u0627\u06b1\u0627\u0631\u0648_\u0627\u0631\u0628\u0639_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639_\u0687\u0646\u0687\u0631".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"}};return n.default.locale(i,null,!0),i}(n(99517))},71400:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"se",weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),weekStart:1,weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"}};return n.default.locale(i,null,!0),i}(n(99517))},11545:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"si",weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),months:"\u0daf\u0dd4\u0dbb\u0dd4\u0dad\u0dd4_\u0db1\u0dc0\u0db8\u0dca_\u0db8\u0dd0\u0daf\u0dd2\u0db1\u0dca_\u0db6\u0d9a\u0dca_\u0dc0\u0dd9\u0dc3\u0d9a\u0dca_\u0db4\u0ddc\u0dc3\u0ddc\u0db1\u0dca_\u0d87\u0dc3\u0dc5_\u0db1\u0dd2\u0d9a\u0dd2\u0dab\u0dd2_\u0db6\u0dd2\u0db1\u0dbb_\u0dc0\u0db4\u0dca_\u0d89\u0dbd\u0dca_\u0d8b\u0db3\u0dd4\u0dc0\u0db4\u0dca".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),monthsShort:"\u0daf\u0dd4\u0dbb\u0dd4_\u0db1\u0dc0_\u0db8\u0dd0\u0daf\u0dd2_\u0db6\u0d9a\u0dca_\u0dc0\u0dd9\u0dc3_\u0db4\u0ddc\u0dc3\u0ddc_\u0d87\u0dc3_\u0db1\u0dd2\u0d9a\u0dd2_\u0db6\u0dd2\u0db1_\u0dc0\u0db4\u0dca_\u0d89\u0dbd\u0dca_\u0d8b\u0db3\u0dd4".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),ordinal:function(e){return e},formats:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",m:"\u0dc0\u0dd2\u0db1\u0dcf\u0da9\u0dd2\u0dba",mm:"\u0dc0\u0dd2\u0db1\u0dcf\u0da9\u0dd2 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"}};return n.default.locale(i,null,!0),i}(n(99517))},71778:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function i(e){return e>1&&e<5&&1!=~~(e/10)}function r(e,t,n,r){var o=e+" ";switch(n){case"s":return t||r?"p\xe1r sek\xfand":"p\xe1r sekundami";case"m":return t?"min\xfata":r?"min\xfatu":"min\xfatou";case"mm":return t||r?o+(i(e)?"min\xfaty":"min\xfat"):o+"min\xfatami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?o+(i(e)?"hodiny":"hod\xedn"):o+"hodinami";case"d":return t||r?"de\u0148":"d\u0148om";case"dd":return t||r?o+(i(e)?"dni":"dn\xed"):o+"d\u0148ami";case"M":return t||r?"mesiac":"mesiacom";case"MM":return t||r?o+(i(e)?"mesiace":"mesiacov"):o+"mesiacmi";case"y":return t||r?"rok":"rokom";case"yy":return t||r?o+(i(e)?"roky":"rokov"):o+"rokmi"}}var o={name:"sk",weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),months:"janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_"),weekStart:1,yearStart:4,ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},relativeTime:{future:"za %s",past:"pred %s",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return n.default.locale(o,null,!0),o}(n(99517))},39552:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sl",weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),weekStart:1,weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:"nekaj sekund",m:"minuta",mm:"%d minut",h:"ura",hh:"%d ur",d:"dan",dd:"%d dni",M:"mesec",MM:"%d mesecev",y:"leto",yy:"%d let"}};return n.default.locale(i,null,!0),i}(n(99517))},61622:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sq",weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),weekStart:1,weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"}};return n.default.locale(i,null,!0),i}(n(99517))},64306:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={words:{m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u043c\u0438\u043d\u0443\u0442\u0430"],mm:["%d \u043c\u0438\u043d\u0443\u0442","%d \u043c\u0438\u043d\u0443\u0442\u0430","%d \u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["%d \u0441\u0430\u0442","%d \u0441\u0430\u0442\u0430","%d \u0441\u0430\u0442\u0438"],d:["\u0458\u0435\u0434\u0430\u043d \u0434\u0430\u043d","\u0458\u0435\u0434\u043d\u043e\u0433 \u0434\u0430\u043d\u0430"],dd:["%d \u0434\u0430\u043d","%d \u0434\u0430\u043d\u0430","%d \u0434\u0430\u043d\u0430"],M:["\u0458\u0435\u0434\u0430\u043d \u043c\u0435\u0441\u0435\u0446","\u0458\u0435\u0434\u043d\u043e\u0433 \u043c\u0435\u0441\u0435\u0446\u0430"],MM:["%d \u043c\u0435\u0441\u0435\u0446","%d \u043c\u0435\u0441\u0435\u0446\u0430","%d \u043c\u0435\u0441\u0435\u0446\u0438"],y:["\u0458\u0435\u0434\u043d\u0443 \u0433\u043e\u0434\u0438\u043d\u0443","\u0458\u0435\u0434\u043d\u0435 \u0433\u043e\u0434\u0438\u043d\u0435"],yy:["%d \u0433\u043e\u0434\u0438\u043d\u0443","%d \u0433\u043e\u0434\u0438\u043d\u0435","%d \u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammarCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},relativeTimeFormatter:function(e,t,n,r){var o=i.words[n];if(1===n.length)return"y"===n&&t?"\u0458\u0435\u0434\u043d\u0430 \u0433\u043e\u0434\u0438\u043d\u0430":r||t?o[0]:o[1];var a=i.correctGrammarCase(e,o);return"yy"===n&&t&&"%d \u0433\u043e\u0434\u0438\u043d\u0443"===a?e+" \u0433\u043e\u0434\u0438\u043d\u0430":a.replace("%d",e)}},r={name:"sr-cyrl",weekdays:"\u041d\u0435\u0434\u0435\u0459\u0430_\u041f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0423\u0442\u043e\u0440\u0430\u043a_\u0421\u0440\u0435\u0434\u0430_\u0427\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u041f\u0435\u0442\u0430\u043a_\u0421\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u041d\u0435\u0434._\u041f\u043e\u043d._\u0423\u0442\u043e._\u0421\u0440\u0435._\u0427\u0435\u0442._\u041f\u0435\u0442._\u0421\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),months:"\u0408\u0430\u043d\u0443\u0430\u0440_\u0424\u0435\u0431\u0440\u0443\u0430\u0440_\u041c\u0430\u0440\u0442_\u0410\u043f\u0440\u0438\u043b_\u041c\u0430\u0458_\u0408\u0443\u043d_\u0408\u0443\u043b_\u0410\u0432\u0433\u0443\u0441\u0442_\u0421\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u041e\u043a\u0442\u043e\u0431\u0430\u0440_\u041d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0414\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0408\u0430\u043d._\u0424\u0435\u0431._\u041c\u0430\u0440._\u0410\u043f\u0440._\u041c\u0430\u0458_\u0408\u0443\u043d_\u0408\u0443\u043b_\u0410\u0432\u0433._\u0421\u0435\u043f._\u041e\u043a\u0442._\u041d\u043e\u0432._\u0414\u0435\u0446.".split("_"),weekStart:1,relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:i.relativeTimeFormatter,mm:i.relativeTimeFormatter,h:i.relativeTimeFormatter,hh:i.relativeTimeFormatter,d:i.relativeTimeFormatter,dd:i.relativeTimeFormatter,M:i.relativeTimeFormatter,MM:i.relativeTimeFormatter,y:i.relativeTimeFormatter,yy:i.relativeTimeFormatter},ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"}};return n.default.locale(r,null,!0),r}(n(99517))},23139:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={words:{m:["jedan minut","jednog minuta"],mm:["%d minut","%d minuta","%d minuta"],h:["jedan sat","jednog sata"],hh:["%d sat","%d sata","%d sati"],d:["jedan dan","jednog dana"],dd:["%d dan","%d dana","%d dana"],M:["jedan mesec","jednog meseca"],MM:["%d mesec","%d meseca","%d meseci"],y:["jednu godinu","jedne godine"],yy:["%d godinu","%d godine","%d godina"]},correctGrammarCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},relativeTimeFormatter:function(e,t,n,r){var o=i.words[n];if(1===n.length)return"y"===n&&t?"jedna godina":r||t?o[0]:o[1];var a=i.correctGrammarCase(e,o);return"yy"===n&&t&&"%d godinu"===a?e+" godina":a.replace("%d",e)}},r={name:"sr",weekdays:"Nedelja_Ponedeljak_Utorak_Sreda_\u010cetvrtak_Petak_Subota".split("_"),weekdaysShort:"Ned._Pon._Uto._Sre._\u010cet._Pet._Sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),months:"Januar_Februar_Mart_April_Maj_Jun_Jul_Avgust_Septembar_Oktobar_Novembar_Decembar".split("_"),monthsShort:"Jan._Feb._Mar._Apr._Maj_Jun_Jul_Avg._Sep._Okt._Nov._Dec.".split("_"),weekStart:1,relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:i.relativeTimeFormatter,mm:i.relativeTimeFormatter,h:i.relativeTimeFormatter,hh:i.relativeTimeFormatter,d:i.relativeTimeFormatter,dd:i.relativeTimeFormatter,M:i.relativeTimeFormatter,MM:i.relativeTimeFormatter,y:i.relativeTimeFormatter,yy:i.relativeTimeFormatter},ordinal:function(e){return e+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"}};return n.default.locale(r,null,!0),r}(n(99517))},40359:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ss",weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),weekStart:1,weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"}};return n.default.locale(i,null,!0),i}(n(99517))},80357:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sv-fi",weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekStart:1,yearStart:4,ordinal:function(e){var t=e%10;return"["+e+(1===t||2===t?"a":"e")+"]"},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY, [kl.] HH.mm",LLLL:"dddd, D. MMMM YYYY, [kl.] HH.mm",l:"D.M.YYYY",ll:"D. MMM YYYY",lll:"D. MMM YYYY, [kl.] HH.mm",llll:"ddd, D. MMM YYYY, [kl.] HH.mm"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"}};return n.default.locale(i,null,!0),i}(n(99517))},73306:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sv",weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekStart:1,yearStart:4,ordinal:function(e){var t=e%10;return"["+e+(1===t||2===t?"a":"e")+"]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"}};return n.default.locale(i,null,!0),i}(n(99517))},73237:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"sw",weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekStart:1,ordinal:function(e){return e},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},77067:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ta",weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"}};return n.default.locale(i,null,!0),i}(n(99517))},15083:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"te",weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"}};return n.default.locale(i,null,!0),i}(n(99517))},6927:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tet",weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),weekStart:1,weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"}};return n.default.locale(i,null,!0),i}(n(99517))},24567:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tg",weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),weekStart:1,weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"}};return n.default.locale(i,null,!0),i}(n(99517))},34419:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"th",weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},54216:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tk",weekdays:"\xddek\u015fenbe_Du\u015fenbe_Si\u015fenbe_\xc7ar\u015fenbe_Pen\u015fenbe_Anna_\u015eenbe".split("_"),weekdaysShort:"\xddek_Du\u015f_Si\u015f_\xc7ar_Pen_Ann_\u015een".split("_"),weekdaysMin:"\xddk_D\u015f_S\u015f_\xc7r_Pn_An_\u015en".split("_"),months:"\xddanwar_Fewral_Mart_Aprel_Ma\xfd_I\xfdun_I\xfdul_Awgust_Sent\xfdabr_Okt\xfdabr_No\xfdabr_Dekabr".split("_"),monthsShort:"\xddan_Few_Mar_Apr_Ma\xfd_I\xfdn_I\xfdl_Awg_Sen_Okt_No\xfd_Dek".split("_"),weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s so\u0148",past:"%s \xf6\u0148",s:"birn\xe4\xe7e sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir a\xfd",MM:"%d a\xfd",y:"bir \xfdyl",yy:"%d \xfdyl"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},91107:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tl-ph",weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),weekStart:1,weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"}};return n.default.locale(i,null,!0),i}(n(99517))},25875:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tlh",weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),weekStart:1,weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return n.default.locale(i,null,!0),i}(n(99517))},72145:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tr",weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(e){return e+"."}};return n.default.locale(i,null,!0),i}(n(99517))},92611:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tzl",weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),weekStart:1,weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),ordinal:function(e){return e},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"}};return n.default.locale(i,null,!0),i}(n(99517))},17715:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tzm-latn",weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekStart:6,weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"}};return n.default.locale(i,null,!0),i}(n(99517))},85408:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"tzm",weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekStart:6,weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"}};return n.default.locale(i,null,!0),i}(n(99517))},62948:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ug-cn",weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekStart:1,weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"}};return n.default.locale(i,null,!0),i}(n(99517))},42024:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i="\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),r="\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_"),o=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function a(e,t,n){var i,r;return"m"===n?t?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===n?t?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":e+" "+(i=+e,r={ss:t?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:t?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:t?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[n].split("_"),i%10==1&&i%100!=11?r[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?r[1]:r[2])}var s=function(e,t){return o.test(t)?i[e.month()]:r[e.month()]};s.s=r,s.f=i;var u={name:"uk",weekdays:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0434\u043b_\u043f\u043d\u0434_\u0432\u0442\u0440_\u0441\u0440\u0434_\u0447\u0442\u0432_\u043f\u0442\u043d_\u0441\u0431\u0442".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),months:s,monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekStart:1,relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",m:a,mm:a,h:a,hh:a,d:"\u0434\u0435\u043d\u044c",dd:a,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:a,y:"\u0440\u0456\u043a",yy:a},ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"}};return n.default.locale(u,null,!0),u}(n(99517))},53008:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"ur",weekdays:"\u0627\u062a\u0648\u0627\u0631_\u067e\u06cc\u0631_\u0645\u0646\u06af\u0644_\u0628\u062f\u06be_\u062c\u0645\u0639\u0631\u0627\u062a_\u062c\u0645\u0639\u06c1_\u06c1\u0641\u062a\u06c1".split("_"),months:"\u062c\u0646\u0648\u0631\u06cc_\u0641\u0631\u0648\u0631\u06cc_\u0645\u0627\u0631\u0686_\u0627\u067e\u0631\u06cc\u0644_\u0645\u0626\u06cc_\u062c\u0648\u0646_\u062c\u0648\u0644\u0627\u0626\u06cc_\u0627\u06af\u0633\u062a_\u0633\u062a\u0645\u0628\u0631_\u0627\u06a9\u062a\u0648\u0628\u0631_\u0646\u0648\u0645\u0628\u0631_\u062f\u0633\u0645\u0628\u0631".split("_"),weekStart:1,weekdaysShort:"\u0627\u062a\u0648\u0627\u0631_\u067e\u06cc\u0631_\u0645\u0646\u06af\u0644_\u0628\u062f\u06be_\u062c\u0645\u0639\u0631\u0627\u062a_\u062c\u0645\u0639\u06c1_\u06c1\u0641\u062a\u06c1".split("_"),monthsShort:"\u062c\u0646\u0648\u0631\u06cc_\u0641\u0631\u0648\u0631\u06cc_\u0645\u0627\u0631\u0686_\u0627\u067e\u0631\u06cc\u0644_\u0645\u0626\u06cc_\u062c\u0648\u0646_\u062c\u0648\u0644\u0627\u0626\u06cc_\u0627\u06af\u0633\u062a_\u0633\u062a\u0645\u0628\u0631_\u0627\u06a9\u062a\u0648\u0628\u0631_\u0646\u0648\u0645\u0628\u0631_\u062f\u0633\u0645\u0628\u0631".split("_"),weekdaysMin:"\u0627\u062a\u0648\u0627\u0631_\u067e\u06cc\u0631_\u0645\u0646\u06af\u0644_\u0628\u062f\u06be_\u062c\u0645\u0639\u0631\u0627\u062a_\u062c\u0645\u0639\u06c1_\u06c1\u0641\u062a\u06c1".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"}};return n.default.locale(i,null,!0),i}(n(99517))},21413:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"uz-latn",weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),weekStart:1,weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"}};return n.default.locale(i,null,!0),i}(n(99517))},63609:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"uz",weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),weekStart:1,weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"}};return n.default.locale(i,null,!0),i}(n(99517))},2606:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"vi",weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),weekStart:1,weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"}};return n.default.locale(i,null,!0),i}(n(99517))},14953:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"x-pseudo",weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),weekStart:1,weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"}};return n.default.locale(i,null,!0),i}(n(99517))},57091:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"yo",weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekStart:1,weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),ordinal:function(e){return e},formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"}};return n.default.locale(i,null,!0),i}(n(99517))},6432:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"zh-cn",weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,t){return"W"===t?e+"\u5468":e+"\u65e5"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},meridiem:function(e,t){var n=100*e+t;return n<600?"\u51cc\u6668":n<900?"\u65e9\u4e0a":n<1100?"\u4e0a\u5348":n<1300?"\u4e2d\u5348":n<1800?"\u4e0b\u5348":"\u665a\u4e0a"}};return n.default.locale(i,null,!0),i}(n(99517))},35732:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"zh-hk",months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),ordinal:function(e,t){return"W"===t?e+"\u9031":e+"\u65e5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",m:"\u4e00\u5206\u9418",mm:"%d \u5206\u9418",h:"\u4e00\u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"\u4e00\u5929",dd:"%d \u5929",M:"\u4e00\u500b\u6708",MM:"%d \u500b\u6708",y:"\u4e00\u5e74",yy:"%d \u5e74"}};return n.default.locale(i,null,!0),i}(n(99517))},30795:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"zh-tw",weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,t){return"W"===t?e+"\u9031":e+"\u65e5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"},meridiem:function(e,t){var n=100*e+t;return n<600?"\u51cc\u6668":n<900?"\u65e9\u4e0a":n<1100?"\u4e0a\u5348":n<1300?"\u4e2d\u5348":n<1800?"\u4e0b\u5348":"\u665a\u4e0a"}};return n.default.locale(i,null,!0),i}(n(99517))},73972:function(e,t,n){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),i={name:"zh",weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,t){return"W"===t?e+"\u5468":e+"\u65e5"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},relativeTime:{future:"%s\u540e",past:"%s\u524d",s:"\u51e0\u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},meridiem:function(e,t){var n=100*e+t;return n<600?"\u51cc\u6668":n<900?"\u65e9\u4e0a":n<1100?"\u4e0a\u5348":n<1300?"\u4e2d\u5348":n<1800?"\u4e0b\u5348":"\u665a\u4e0a"}};return n.default.locale(i,null,!0),i}(n(99517))},72547:function(e){e.exports=function(){"use strict";return function(e,t,n){var i=t.prototype,r=function(e){var t=e.date,i=e.utc;return Array.isArray(t)?i?t.length?new Date(Date.UTC.apply(null,t)):new Date:1===t.length?n(String(t[0])).toDate():new(Function.prototype.bind.apply(Date,[null].concat(t))):t},o=i.parse;i.parse=function(e){e.date=r.bind(this)(e),o.bind(this)(e)}}}()},51235:function(e){e.exports=function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,i=/\d\d?/,r=/\d*[^-_:/,()\s\d]+/,o={},a=function(e){return(e=+e)+(e>68?1900:2e3)},s=function(e){return function(t){this[e]=+t}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],l=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},c=function(e,t){var n,i=o.meridiem;if(i){for(var r=1;r<=24;r+=1)if(e.indexOf(i(r,0,t))>-1){n=r>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[r,function(e){this.afternoon=c(e,!1)}],a:[r,function(e){this.afternoon=c(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,s("seconds")],ss:[i,s("seconds")],m:[i,s("minutes")],mm:[i,s("minutes")],H:[i,s("hours")],h:[i,s("hours")],HH:[i,s("hours")],hh:[i,s("hours")],D:[i,s("day")],DD:[n,s("day")],Do:[r,function(e){var t=o.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var i=1;i<=31;i+=1)t(i).replace(/\[|\]/g,"")===e&&(this.day=i)}],M:[i,s("month")],MM:[n,s("month")],MMM:[r,function(e){var t=l("months"),n=(l("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[r,function(e){var t=l("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,s("year")],YY:[n,function(e){this.year=a(e)}],YYYY:[/\d{4}/,s("year")],Z:u,ZZ:u};function h(n){var i,r;i=n,r=o&&o.formats;for(var a=(n=i.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,i){var o=i&&i.toUpperCase();return n||r[i]||e[i]||r[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),s=a.length,u=0;u<s;u+=1){var l=a[u],c=d[l],h=c&&c[0],f=c&&c[1];a[u]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(e){for(var t={},n=0,i=0;n<s;n+=1){var r=a[n];if("string"==typeof r)i+=r.length;else{var o=r.regex,u=r.parser,l=e.slice(i),c=o.exec(l)[0];u.call(t,c),e=e.replace(c,"")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var i=t.prototype,r=i.parse;i.parse=function(e){var t=e.date,i=e.utc,a=e.args;this.$u=i;var s=a[1];if("string"==typeof s){var u=!0===a[2],l=!0===a[3],c=u||l,d=a[2];l&&(d=a[2]),o=this.$locale(),!u&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if(["x","X"].indexOf(t)>-1)return new Date(("X"===t?1e3:1)*e);var i=h(t)(e),r=i.year,o=i.month,a=i.day,s=i.hours,u=i.minutes,l=i.seconds,c=i.milliseconds,d=i.zone,f=new Date,p=a||(r||o?1:f.getDate()),v=r||f.getFullYear(),g=0;r&&!o||(g=o>0?o-1:f.getMonth());var m=s||0,_=u||0,y=l||0,b=c||0;return d?new Date(Date.UTC(v,g,p,m,_,y,b+60*d.offset*1e3)):n?new Date(Date.UTC(v,g,p,m,_,y,b)):new Date(v,g,p,m,_,y,b)}catch(e){return new Date("")}}(t,s,i),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),c&&t!=this.format(s)&&(this.$d=new Date("")),o={}}else if(s instanceof Array)for(var f=s.length,p=1;p<=f;p+=1){a[1]=s[p-1];var v=n.apply(this,a);if(v.isValid()){this.$d=v.$d,this.$L=v.$L,this.init();break}p===f&&(this.$d=new Date(""))}else r.call(this,e)}}}()},28699:function(e){e.exports=function(){"use strict";var e="day";return function(t,n,i){var r=function(t){return t.add(4-t.isoWeekday(),e)},o=n.prototype;o.isoWeekYear=function(){return r(this).year()},o.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var n,o,a,s=r(this),u=(n=this.isoWeekYear(),a=4-(o=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),o.isoWeekday()>4&&(a+=7),o.add(a,e));return s.diff(u,"week")+1},o.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var a=o.startOf;o.startOf=function(e,t){var n=this.$utils(),i=!!n.u(t)||t;return"isoweek"===n.p(e)?i?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):a.bind(this)(e,t)}}}()},79748:function(e){e.exports=function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(t,n,i){var r=n.prototype,o=r.format;i.en.formats=e,r.format=function(t){void 0===t&&(t="YYYY-MM-DDTHH:mm:ssZ");var n=this.$locale().formats,i=function(t,n){return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,i,r){var o=r&&r.toUpperCase();return i||n[r]||e[r]||n[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))}(t,void 0===n?{}:n);return o.call(this,i)}}}()},27369:function(e){e.exports=function(){"use strict";return function(e,t,n){var i=t.prototype,r=function(e){var t,r=e.date,o=e.utc,a={};if(!((t=r)instanceof Date||t instanceof Array||i.$utils().u(t)||"Object"!==t.constructor.name)){if(!Object.keys(r).length)return new Date;var s=o?n.utc():n();Object.keys(r).forEach((function(e){var t,n;a[(t=e,n=i.$utils().p(t),"date"===n?"day":n)]=r[e]}));var u=a.day||(a.year||a.month>=0?1:s.date()),l=a.year||s.year(),c=a.month>=0?a.month:a.year||a.day?0:s.month(),d=a.hour||0,h=a.minute||0,f=a.second||0,p=a.millisecond||0;return o?new Date(Date.UTC(l,c,u,d,h,f,p)):new Date(l,c,u,d,h,f,p)}return r},o=i.parse;i.parse=function(e){e.date=r.bind(this)(e),o.bind(this)(e)};var a=i.set,s=i.add,u=i.subtract,l=function(e,t,n,i){void 0===i&&(i=1);var r=Object.keys(t),o=this;return r.forEach((function(n){o=e.bind(o)(t[n]*i,n)})),o};i.set=function(e,t){return t=void 0===t?e:t,"Object"===e.constructor.name?l.bind(this)((function(e,t){return a.bind(this)(t,e)}),t,e):a.bind(this)(e,t)},i.add=function(e,t){return"Object"===e.constructor.name?l.bind(this)(s,e,t):s.bind(this)(e,t)},i.subtract=function(e,t){return"Object"===e.constructor.name?l.bind(this)(s,e,t,-1):u.bind(this)(e,t)}}}()},51277:function(e){e.exports=function(){"use strict";var e="month",t="quarter";return function(n,i){var r=i.prototype;r.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var o=r.add;r.add=function(n,i){return n=Number(n),this.$utils().p(i)===t?this.add(3*n,e):o.bind(this)(n,i)};var a=r.startOf;r.startOf=function(n,i){var r=this.$utils(),o=!!r.u(i)||i;if(r.p(n)===t){var s=this.quarter()-1;return o?this.month(3*s).startOf(e).startOf("day"):this.month(3*s+2).endOf(e).endOf("day")}return a.bind(this)(n,i)}}}()},51714:function(e){e.exports=function(){"use strict";return function(e,t,n){e=e||{};var i=t.prototype,r={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function o(e,t,n,r){return i.fromToBase(e,t,n,r)}n.en.relativeTime=r,i.fromToBase=function(t,i,o,a,s){for(var u,l,c,d=o.$locale().relativeTime||r,h=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],f=h.length,p=0;p<f;p+=1){var v=h[p];v.d&&(u=a?n(t).diff(o,v.d,!0):o.diff(t,v.d,!0));var g=(e.rounding||Math.round)(Math.abs(u));if(c=u>0,g<=v.r||!v.r){g<=1&&p>0&&(v=h[p-1]);var m=d[v.l];s&&(g=s(""+g)),l="string"==typeof m?m.replace("%d",g):m(g,i,v.l,c);break}}if(i)return l;var _=c?d.future:d.past;return"function"==typeof _?_(l):_.replace("%s",l)},i.to=function(e,t){return o(e,t,this,!0)},i.from=function(e,t){return o(e,t,this)};var a=function(e){return e.$u?n.utc():n()};i.toNow=function(e){return this.to(a(this),e)},i.fromNow=function(e){return this.from(a(this),e)}}}()},63540:function(e){e.exports=function(){"use strict";var e={year:0,month:1,day:2,hour:3,minute:4,second:5},t={};return function(n,i,r){var o,a=function(e,n,i){void 0===i&&(i={});var r=new Date(e),o=function(e,n){void 0===n&&(n={});var i=n.timeZoneName||"short",r=e+"|"+i,o=t[r];return o||(o=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),t[r]=o),o}(n,i);return o.formatToParts(r)},s=function(t,n){for(var i=a(t,n),o=[],s=0;s<i.length;s+=1){var u=i[s],l=u.type,c=u.value,d=e[l];d>=0&&(o[d]=parseInt(c,10))}var h=o[3],f=24===h?0:h,p=o[0]+"-"+o[1]+"-"+o[2]+" "+f+":"+o[4]+":"+o[5]+":000",v=+t;return(r.utc(p).valueOf()-(v-=v%1e3))/6e4},u=i.prototype;u.tz=function(e,t){void 0===e&&(e=o);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString("en-US",{timeZone:e}),s=Math.round((i-new Date(a))/1e3/60),u=r(a).$set("millisecond",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-s,!0);if(t){var l=u.utcOffset();u=u.add(n-l,"minute")}return u.$x.$timezone=e,u},u.offsetName=function(e){var t=this.$x.$timezone||r.tz.guess(),n=a(this.valueOf(),t,{timeZoneName:e}).find((function(e){return"timezonename"===e.type.toLowerCase()}));return n&&n.value};var l=u.startOf;u.startOf=function(e,t){if(!this.$x||!this.$x.$timezone)return l.call(this,e,t);var n=r(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return l.call(n,e,t).tz(this.$x.$timezone,!0)},r.tz=function(e,t,n){var i=n&&t,a=n||t||o,u=s(+r(),a);if("string"!=typeof e)return r(e).tz(a);var l=function(e,t,n){var i=e-60*t*1e3,r=s(i,n);if(t===r)return[i,t];var o=s(i-=60*(r-t)*1e3,n);return r===o?[i,r]:[e-60*Math.min(r,o)*1e3,Math.max(r,o)]}(r.utc(e,i).valueOf(),u,a),c=l[0],d=l[1],h=r(c).utcOffset(d);return h.$x.$timezone=a,h},r.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},r.tz.setDefault=function(e){o=e}}}()},14230:function(e){e.exports=function(){"use strict";return function(e,t,n){n.updateLocale=function(e,t){var i=n.Ls[e];if(i)return(t?Object.keys(t):[]).forEach((function(e){i[e]=t[e]})),i}}}()},18272:function(e){e.exports=function(){"use strict";var e="minute",t=/[+-]\d\d(?::?\d\d)?/g,n=/([+-]|\d\d)/g;return function(i,r,o){var a=r.prototype;o.utc=function(e){return new r({date:e,utc:!0,args:arguments})},a.utc=function(t){var n=o(this.toDate(),{locale:this.$L,utc:!0});return t?n.add(this.utcOffset(),e):n},a.local=function(){return o(this.toDate(),{locale:this.$L,utc:!1})};var s=a.parse;a.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),s.call(this,e)};var u=a.init;a.init=function(){if(this.$u){var e=this.$d;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else u.call(this)};var l=a.utcOffset;a.utcOffset=function(i,r){var o=this.$utils().u;if(o(i))return this.$u?0:o(this.$offset)?l.call(this):this.$offset;if("string"==typeof i&&(i=function(e){void 0===e&&(e="");var i=e.match(t);if(!i)return null;var r=(""+i[0]).match(n)||["-",0,0],o=r[0],a=60*+r[1]+ +r[2];return 0===a?0:"+"===o?a:-a}(i),null===i))return this;var a=Math.abs(i)<=16?60*i:i,s=this;if(r)return s.$offset=a,s.$u=0===i,s;if(0!==i){var u=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(s=this.local().add(a+u,e)).$offset=a,s.$x.$localOffset=u}else s=this.utc();return s};var c=a.format;a.format=function(e){var t=e||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return c.call(this,t)},a.valueOf=function(){var e=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*e},a.isUTC=function(){return!!this.$u},a.toISOString=function(){return this.toDate().toISOString()},a.toString=function(){return this.toDate().toUTCString()};var d=a.toDate;a.toDate=function(e){return"s"===e&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():d.call(this)};var h=a.diff;a.diff=function(e,t,n){if(e&&this.$u===e.$u)return h.call(this,e,t,n);var i=this.local(),r=o(e).local();return h.call(i,r,t,n)}}}()},34712:function(e,t,n){var i=n(77801);e.exports=function(e,t,n){var r,o,a,s,u;function l(){var c=i()-s;c<t&&c>0?r=setTimeout(l,t-c):(r=null,n||(u=e.apply(a,o),r||(a=o=null)))}return null==t&&(t=100),function(){a=this,o=arguments,s=i();var c=n&&!r;return r||(r=setTimeout(l,t)),c&&(u=e.apply(a,o),a=o=null),u}}},59312:function(e,t,n){var i,r=r||{version:"4.2.0"};if(t.fabric=r,"undefined"!==typeof document&&"undefined"!==typeof window)document instanceof("undefined"!==typeof HTMLDocument?HTMLDocument:Document)?r.document=document:r.document=document.implementation.createHTMLDocument(""),r.window=window;else{var o=new(n(24960).JSDOM)(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;r.document=o.document,r.jsdomImplForWrapper=n(26759).implForWrapper,r.nodeCanvas=n(56272).Canvas,r.window=o,DOMParser=r.window.DOMParser}function a(e,t){var n=e.canvas,i=t.targetCanvas,r=i.getContext("2d");r.translate(0,i.height),r.scale(1,-1);var o=n.height-i.height;r.drawImage(n,0,o,i.width,i.height,0,0,i.width,i.height)}function s(e,t){var n=t.targetCanvas.getContext("2d"),i=t.destinationWidth,r=t.destinationHeight,o=i*r*4,a=new Uint8Array(this.imageBuffer,0,o),s=new Uint8ClampedArray(this.imageBuffer,0,o);e.readPixels(0,0,i,r,e.RGBA,e.UNSIGNED_BYTE,a);var u=new ImageData(s,i,r);n.putImageData(u,0,0)}r.isTouchSupported="ontouchstart"in r.window||"ontouchstart"in r.document||r.window&&r.window.navigator&&r.window.navigator.maxTouchPoints>0,r.isLikelyNode="undefined"!==typeof Buffer&&"undefined"===typeof window,r.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],r.DPI=96,r.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",r.commaWsp="(?:\\s+,?\\s*|,\\s*)",r.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,r.reNonWord=/[ \n\.,;!\?\-]/,r.fontPaths={},r.iMatrix=[1,0,0,1,0,0],r.svgNS="http://www.w3.org/2000/svg",r.perfLimitSizeTotal=2097152,r.maxCacheSideLimit=4096,r.minCacheSideLimit=256,r.charWidthsCache={},r.textureSize=2048,r.disableStyleCopyPaste=!1,r.enableGLFiltering=!0,r.devicePixelRatio=r.window.devicePixelRatio||r.window.webkitDevicePixelRatio||r.window.mozDevicePixelRatio||1,r.browserShadowBlurConstant=1,r.arcToSegmentsCache={},r.boundsOfCurveCache={},r.cachesBoundsOfCurve=!0,r.forceGLPutImageData=!1,r.initFilterBackend=function(){return r.enableGLFiltering&&r.isWebglSupported&&r.isWebglSupported(r.textureSize)?(console.log("max texture size: "+r.maxTextureSize),new r.WebglFilterBackend({tileSize:r.textureSize})):r.Canvas2dFilterBackend?new r.Canvas2dFilterBackend:void 0},"undefined"!==typeof document&&"undefined"!==typeof window&&(window.fabric=r),function(){function e(e,t){if(this.__eventListeners[e]){var n=this.__eventListeners[e];t?n[n.indexOf(t)]=!1:r.util.array.fill(n,!1)}}r.Observable={fire:function(e,t){if(!this.__eventListeners)return this;var n=this.__eventListeners[e];if(!n)return this;for(var i=0,r=n.length;i<r;i++)n[i]&&n[i].call(this,t||{});return this.__eventListeners[e]=n.filter((function(e){return!1!==e})),this},on:function(e,t){if(this.__eventListeners||(this.__eventListeners={}),1===arguments.length)for(var n in e)this.on(n,e[n]);else this.__eventListeners[e]||(this.__eventListeners[e]=[]),this.__eventListeners[e].push(t);return this},off:function(t,n){if(!this.__eventListeners)return this;if(0===arguments.length)for(t in this.__eventListeners)e.call(this,t);else if(1===arguments.length&&"object"===typeof arguments[0])for(var i in t)e.call(this,i,t[i]);else e.call(this,t,n);return this}}}(),r.Collection={_objects:[],add:function(){if(this._objects.push.apply(this._objects,arguments),this._onObjectAdded)for(var e=0,t=arguments.length;e<t;e++)this._onObjectAdded(arguments[e]);return this.renderOnAddRemove&&this.requestRenderAll(),this},insertAt:function(e,t,n){var i=this._objects;return n?i[t]=e:i.splice(t,0,e),this._onObjectAdded&&this._onObjectAdded(e),this.renderOnAddRemove&&this.requestRenderAll(),this},remove:function(){for(var e,t=this._objects,n=!1,i=0,r=arguments.length;i<r;i++)-1!==(e=t.indexOf(arguments[i]))&&(n=!0,t.splice(e,1),this._onObjectRemoved&&this._onObjectRemoved(arguments[i]));return this.renderOnAddRemove&&n&&this.requestRenderAll(),this},forEachObject:function(e,t){for(var n=this.getObjects(),i=0,r=n.length;i<r;i++)e.call(t,n[i],i,n);return this},getObjects:function(e){return"undefined"===typeof e?this._objects.concat():this._objects.filter((function(t){return t.type===e}))},item:function(e){return this._objects[e]},isEmpty:function(){return 0===this._objects.length},size:function(){return this._objects.length},contains:function(e){return this._objects.indexOf(e)>-1},complexity:function(){return this._objects.reduce((function(e,t){return e+=t.complexity?t.complexity():0}),0)}},r.CommonMethods={_setOptions:function(e){for(var t in e)this.set(t,e[t])},_initGradient:function(e,t){!e||!e.colorStops||e instanceof r.Gradient||this.set(t,new r.Gradient(e))},_initPattern:function(e,t,n){!e||!e.source||e instanceof r.Pattern?n&&n():this.set(t,new r.Pattern(e,n))},_setObject:function(e){for(var t in e)this._set(t,e[t])},set:function(e,t){return"object"===typeof e?this._setObject(e):this._set(e,t),this},_set:function(e,t){this[e]=t},toggle:function(e){var t=this.get(e);return"boolean"===typeof t&&this.set(e,!t),this},get:function(e){return this[e]}},function(e){var t=Math.sqrt,n=Math.atan2,i=Math.pow,o=Math.PI/180,a=Math.PI/2;r.util={cos:function(e){if(0===e)return 1;switch(e<0&&(e=-e),e/a){case 1:case 3:return 0;case 2:return-1}return Math.cos(e)},sin:function(e){if(0===e)return 0;var t=1;switch(e<0&&(t=-1),e/a){case 1:return t;case 2:return 0;case 3:return-t}return Math.sin(e)},removeFromArray:function(e,t){var n=e.indexOf(t);return-1!==n&&e.splice(n,1),e},getRandomInt:function(e,t){return Math.floor(Math.random()*(t-e+1))+e},degreesToRadians:function(e){return e*o},radiansToDegrees:function(e){return e/o},rotatePoint:function(e,t,n){e.subtractEquals(t);var i=r.util.rotateVector(e,n);return new r.Point(i.x,i.y).addEquals(t)},rotateVector:function(e,t){var n=r.util.sin(t),i=r.util.cos(t);return{x:e.x*i-e.y*n,y:e.x*n+e.y*i}},transformPoint:function(e,t,n){return n?new r.Point(t[0]*e.x+t[2]*e.y,t[1]*e.x+t[3]*e.y):new r.Point(t[0]*e.x+t[2]*e.y+t[4],t[1]*e.x+t[3]*e.y+t[5])},makeBoundingBoxFromPoints:function(e,t){if(t)for(var n=0;n<e.length;n++)e[n]=r.util.transformPoint(e[n],t);var i=[e[0].x,e[1].x,e[2].x,e[3].x],o=r.util.array.min(i),a=r.util.array.max(i)-o,s=[e[0].y,e[1].y,e[2].y,e[3].y],u=r.util.array.min(s);return{left:o,top:u,width:a,height:r.util.array.max(s)-u}},invertTransform:function(e){var t=1/(e[0]*e[3]-e[1]*e[2]),n=[t*e[3],-t*e[1],-t*e[2],t*e[0]],i=r.util.transformPoint({x:e[4],y:e[5]},n,!0);return n[4]=-i.x,n[5]=-i.y,n},toFixed:function(e,t){return parseFloat(Number(e).toFixed(t))},parseUnit:function(e,t){var n=/\D{0,2}$/.exec(e),i=parseFloat(e);switch(t||(t=r.Text.DEFAULT_SVG_FONT_SIZE),n[0]){case"mm":return i*r.DPI/25.4;case"cm":return i*r.DPI/2.54;case"in":return i*r.DPI;case"pt":return i*r.DPI/72;case"pc":return i*r.DPI/72*12;case"em":return i*t;default:return i}},falseFunction:function(){return!1},getKlass:function(e,t){return e=r.util.string.camelize(e.charAt(0).toUpperCase()+e.slice(1)),r.util.resolveNamespace(t)[e]},getSvgAttributes:function(e){var t=["instantiated_by_use","style","id","class"];switch(e){case"linearGradient":t=t.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);break;case"radialGradient":t=t.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);break;case"stop":t=t.concat(["offset","stop-color","stop-opacity"])}return t},resolveNamespace:function(t){if(!t)return r;var n,i=t.split("."),o=i.length,a=e||r.window;for(n=0;n<o;++n)a=a[i[n]];return a},loadImage:function(e,t,n,i){if(e){var o=r.util.createImage(),a=function(){t&&t.call(n,o,!1),o=o.onload=o.onerror=null};o.onload=a,o.onerror=function(){r.log("Error loading "+o.src),t&&t.call(n,null,!0),o=o.onload=o.onerror=null},0!==e.indexOf("data")&&void 0!==i&&null!==i&&(o.crossOrigin=i),"data:image/svg"===e.substring(0,14)&&(o.onload=null,r.util.loadImageInDom(o,a)),o.src=e}else t&&t.call(n,e)},loadImageInDom:function(e,t){var n=r.document.createElement("div");n.style.width=n.style.height="1px",n.style.left=n.style.top="-100%",n.style.position="absolute",n.appendChild(e),r.document.querySelector("body").appendChild(n),e.onload=function(){t(),n.parentNode.removeChild(n),n=null}},enlivenObjects:function(e,t,n,i){var o=[],a=0,s=(e=e||[]).length;function u(){++a===s&&t&&t(o.filter((function(e){return e})))}s?e.forEach((function(e,t){e&&e.type?r.util.getKlass(e.type,n).fromObject(e,(function(n,r){r||(o[t]=n),i&&i(e,n,r),u()})):u()})):t&&t(o)},enlivenPatterns:function(e,t){function n(){++o===a&&t&&t(i)}var i=[],o=0,a=(e=e||[]).length;a?e.forEach((function(e,t){e&&e.source?new r.Pattern(e,(function(e){i[t]=e,n()})):(i[t]=e,n())})):t&&t(i)},groupSVGElements:function(e,t,n){var i;return e&&1===e.length?e[0]:(t&&(t.width&&t.height?t.centerPoint={x:t.width/2,y:t.height/2}:(delete t.width,delete t.height)),i=new r.Group(e,t),"undefined"!==typeof n&&(i.sourcePath=n),i)},populateWithProperties:function(e,t,n){if(n&&"[object Array]"===Object.prototype.toString.call(n))for(var i=0,r=n.length;i<r;i++)n[i]in e&&(t[n[i]]=e[n[i]])},drawDashedLine:function(e,i,r,o,a,s){var u=o-i,l=a-r,c=t(u*u+l*l),d=n(l,u),h=s.length,f=0,p=!0;for(e.save(),e.translate(i,r),e.moveTo(0,0),e.rotate(d),i=0;c>i;)(i+=s[f++%h])>c&&(i=c),e[p?"lineTo":"moveTo"](i,0),p=!p;e.restore()},createCanvasElement:function(){return r.document.createElement("canvas")},copyCanvasElement:function(e){var t=r.util.createCanvasElement();return t.width=e.width,t.height=e.height,t.getContext("2d").drawImage(e,0,0),t},toDataURL:function(e,t,n){return e.toDataURL("image/"+t,n)},createImage:function(){return r.document.createElement("img")},multiplyTransformMatrices:function(e,t,n){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],n?0:e[0]*t[4]+e[2]*t[5]+e[4],n?0:e[1]*t[4]+e[3]*t[5]+e[5]]},qrDecompose:function(e){var r=n(e[1],e[0]),a=i(e[0],2)+i(e[1],2),s=t(a),u=(e[0]*e[3]-e[2]*e[1])/s,l=n(e[0]*e[2]+e[1]*e[3],a);return{angle:r/o,scaleX:s,scaleY:u,skewX:l/o,skewY:0,translateX:e[4],translateY:e[5]}},calcRotateMatrix:function(e){if(!e.angle)return r.iMatrix.concat();var t=r.util.degreesToRadians(e.angle),n=r.util.cos(t),i=r.util.sin(t);return[n,i,-i,n,0,0]},calcDimensionsMatrix:function(e){var t="undefined"===typeof e.scaleX?1:e.scaleX,n="undefined"===typeof e.scaleY?1:e.scaleY,i=[e.flipX?-t:t,0,0,e.flipY?-n:n,0,0],o=r.util.multiplyTransformMatrices,a=r.util.degreesToRadians;return e.skewX&&(i=o(i,[1,0,Math.tan(a(e.skewX)),1],!0)),e.skewY&&(i=o(i,[1,Math.tan(a(e.skewY)),0,1],!0)),i},composeMatrix:function(e){var t=[1,0,0,1,e.translateX||0,e.translateY||0],n=r.util.multiplyTransformMatrices;return e.angle&&(t=n(t,r.util.calcRotateMatrix(e))),(1!==e.scaleX||1!==e.scaleY||e.skewX||e.skewY||e.flipX||e.flipY)&&(t=n(t,r.util.calcDimensionsMatrix(e))),t},resetObjectTransform:function(e){e.scaleX=1,e.scaleY=1,e.skewX=0,e.skewY=0,e.flipX=!1,e.flipY=!1,e.rotate(0)},saveObjectTransform:function(e){return{scaleX:e.scaleX,scaleY:e.scaleY,skewX:e.skewX,skewY:e.skewY,angle:e.angle,left:e.left,flipX:e.flipX,flipY:e.flipY,top:e.top}},isTransparent:function(e,t,n,i){i>0&&(t>i?t-=i:t=0,n>i?n-=i:n=0);var r,o=!0,a=e.getImageData(t,n,2*i||1,2*i||1),s=a.data.length;for(r=3;r<s&&!1!==(o=a.data[r]<=0);r+=4);return a=null,o},parsePreserveAspectRatioAttribute:function(e){var t,n="meet",i=e.split(" ");return i&&i.length&&("meet"!==(n=i.pop())&&"slice"!==n?(t=n,n="meet"):i.length&&(t=i.pop())),{meetOrSlice:n,alignX:"none"!==t?t.slice(1,4):"none",alignY:"none"!==t?t.slice(5,8):"none"}},clearFabricFontCache:function(e){(e=(e||"").toLowerCase())?r.charWidthsCache[e]&&delete r.charWidthsCache[e]:r.charWidthsCache={}},limitDimsByArea:function(e,t){var n=Math.sqrt(t*e),i=Math.floor(t/n);return{x:Math.floor(n),y:i}},capValue:function(e,t,n){return Math.max(e,Math.min(t,n))},findScaleToFit:function(e,t){return Math.min(t.width/e.width,t.height/e.height)},findScaleToCover:function(e,t){return Math.max(t.width/e.width,t.height/e.height)},matrixToSVG:function(e){return"matrix("+e.map((function(e){return r.util.toFixed(e,r.Object.NUM_FRACTION_DIGITS)})).join(" ")+")"},sizeAfterTransform:function(e,t,n){var i=e/2,o=t/2,a=[{x:-i,y:-o},{x:i,y:-o},{x:-i,y:o},{x:i,y:o}],s=r.util.calcDimensionsMatrix(n),u=r.util.makeBoundingBoxFromPoints(a,s);return{x:u.width,y:u.height}}}}(t),function(){var e=Array.prototype.join,t={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},n={m:"l",M:"L"};function i(e,t,n,i,o,a,s,u,l,c,d){var h=r.util.cos(e),f=r.util.sin(e),p=r.util.cos(t),v=r.util.sin(t),g=n*o*p-i*a*v+s,m=i*o*p+n*a*v+u;return["C",c+l*(-n*o*f-i*a*h),d+l*(-i*o*f+n*a*h),g+l*(n*o*v+i*a*p),m+l*(i*o*v-n*a*p),g,m]}function o(e,t,n,o,s,u,l){var c=Math.PI,d=l*c/180,h=r.util.sin(d),f=r.util.cos(d),p=0,v=0,g=-f*e*.5-h*t*.5,m=-f*t*.5+h*e*.5,_=(n=Math.abs(n))*n,y=(o=Math.abs(o))*o,b=m*m,w=g*g,C=_*y-_*b-y*w,k=0;if(C<0){var S=Math.sqrt(1-C/(_*y));n*=S,o*=S}else k=(s===u?-1:1)*Math.sqrt(C/(_*b+y*w));var x=k*n*m/o,L=-k*o*g/n,E=f*x-h*L+.5*e,N=h*x+f*L+.5*t,D=a(1,0,(g-x)/n,(m-L)/o),M=a((g-x)/n,(m-L)/o,(-g-x)/n,(-m-L)/o);0===u&&M>0?M-=2*c:1===u&&M<0&&(M+=2*c);for(var T=Math.ceil(Math.abs(M/c*2)),O=[],I=M/T,A=8/3*Math.sin(I/4)*Math.sin(I/4)/Math.sin(I/2),P=D+I,R=0;R<T;R++)O[R]=i(D,P,f,h,n,o,E,N,A,p,v),p=O[R][5],v=O[R][6],D=P,P+=I;return O}function a(e,t,n,i){var r=Math.atan2(t,e),o=Math.atan2(i,n);return o>=r?o-r:2*Math.PI-(r-o)}function s(t,n,i,o,a,s,u,l){var c;if(r.cachesBoundsOfCurve&&(c=e.call(arguments),r.boundsOfCurveCache[c]))return r.boundsOfCurveCache[c];var d,h,f,p,v,g,m,_,y=Math.sqrt,b=Math.min,w=Math.max,C=Math.abs,k=[],S=[[],[]];h=6*t-12*i+6*a,d=-3*t+9*i-9*a+3*u,f=3*i-3*t;for(var x=0;x<2;++x)if(x>0&&(h=6*n-12*o+6*s,d=-3*n+9*o-9*s+3*l,f=3*o-3*n),C(d)<1e-12){if(C(h)<1e-12)continue;0<(p=-f/h)&&p<1&&k.push(p)}else(m=h*h-4*f*d)<0||(0<(v=(-h+(_=y(m)))/(2*d))&&v<1&&k.push(v),0<(g=(-h-_)/(2*d))&&g<1&&k.push(g));for(var L,E,N,D=k.length,M=D;D--;)L=(N=1-(p=k[D]))*N*N*t+3*N*N*p*i+3*N*p*p*a+p*p*p*u,S[0][D]=L,E=N*N*N*n+3*N*N*p*o+3*N*p*p*s+p*p*p*l,S[1][D]=E;S[0][M]=t,S[1][M]=n,S[0][M+1]=u,S[1][M+1]=l;var T=[{x:b.apply(null,S[0]),y:b.apply(null,S[1])},{x:w.apply(null,S[0]),y:w.apply(null,S[1])}];return r.cachesBoundsOfCurve&&(r.boundsOfCurveCache[c]=T),T}function u(e,t,n){for(var i=n[1],r=n[2],a=n[3],s=n[4],u=n[5],l=o(n[6]-e,n[7]-t,i,r,s,u,a),c=0,d=l.length;c<d;c++)l[c][1]+=e,l[c][2]+=t,l[c][3]+=e,l[c][4]+=t,l[c][5]+=e,l[c][6]+=t;return l}function l(e,t,n,i){return Math.sqrt((n-e)*(n-e)+(i-t)*(i-t))}function c(e,t,n,i,r,o,a,s){return function(u){var l,c=(l=u)*l*l,d=function(e){return 3*e*e*(1-e)}(u),h=function(e){return 3*e*(1-e)*(1-e)}(u),f=function(e){return(1-e)*(1-e)*(1-e)}(u);return{x:a*c+r*d+n*h+e*f,y:s*c+o*d+i*h+t*f}}}function d(e,t,n,i,r,o){return function(a){var s,u=(s=a)*s,l=function(e){return 2*e*(1-e)}(a),c=function(e){return(1-e)*(1-e)}(a);return{x:r*u+n*l+e*c,y:o*u+i*l+t*c}}}function h(e,t,n){var i,r,o={x:t,y:n},a=0;for(r=.01;r<=1;r+=.01)i=e(r),a+=l(o.x,o.y,i.x,i.y),o=i;return a}function f(e){for(var t,n,i,r=0,o=e.length,a=0,s=0,u=0,f=0,p=[],v=0;v<o;v++){switch(i={x:a,y:s,command:(t=e[v])[0]},t[0]){case"M":i.length=0,u=a=t[1],f=s=t[2];break;case"L":i.length=l(a,s,t[1],t[2]),a=t[1],s=t[2];break;case"C":n=c(a,s,t[1],t[2],t[3],t[4],t[5],t[6]),i.length=h(n,a,s),a=t[5],s=t[6];break;case"Q":n=d(a,s,t[1],t[2],t[3],t[4]),i.length=h(n,a,s),a=t[3],s=t[4];break;case"Z":case"z":i.destX=u,i.destY=f,i.length=l(a,s,u,f),a=u,s=f}r+=i.length,p.push(i)}return p.push({length:r,x:a,y:s}),p}r.util.parsePath=function(e){var i,o,a,s,u,l=[],c=[],d=r.rePathCommand,h="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",f="("+h+")"+r.commaWsp,p="([01])"+r.commaWsp+"?",v=new RegExp(f+"?"+f+"?"+f+p+p+f+"?("+h+")","g");if(!e||!e.match)return l;for(var g,m=0,_=(u=e.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi)).length;m<_;m++){s=(i=u[m]).slice(1).trim(),c.length=0;var y=i.charAt(0);if(g=[y],"a"===y.toLowerCase())for(var b;b=v.exec(s);)for(var w=1;w<b.length;w++)c.push(b[w]);else for(;a=d.exec(s);)c.push(a[0]);w=0;for(var C=c.length;w<C;w++)o=parseFloat(c[w]),isNaN(o)||g.push(o);var k=t[y.toLowerCase()],S=n[y]||y;if(g.length-1>k)for(var x=1,L=g.length;x<L;x+=k)l.push([y].concat(g.slice(x,x+k))),y=S;else l.push(g)}return l},r.util.makePathSimpler=function(e){var t,n,i,r,o,a,s=0,l=0,c=e.length,d=0,h=0,f=[];for(n=0;n<c;++n){switch(i=!1,(t=e[n].slice(0))[0]){case"l":t[0]="L",t[1]+=s,t[2]+=l;case"L":s=t[1],l=t[2];break;case"h":t[1]+=s;case"H":t[0]="L",t[2]=l,s=t[1];break;case"v":t[1]+=l;case"V":t[0]="L",l=t[1],t[1]=s,t[2]=l;break;case"m":t[0]="M",t[1]+=s,t[2]+=l;case"M":s=t[1],l=t[2],d=t[1],h=t[2];break;case"c":t[0]="C",t[1]+=s,t[2]+=l,t[3]+=s,t[4]+=l,t[5]+=s,t[6]+=l;case"C":o=t[3],a=t[4],s=t[5],l=t[6];break;case"s":t[0]="S",t[1]+=s,t[2]+=l,t[3]+=s,t[4]+=l;case"S":"C"===r?(o=2*s-o,a=2*l-a):(o=s,a=l),s=t[3],l=t[4],t[0]="C",t[5]=t[3],t[6]=t[4],t[3]=t[1],t[4]=t[2],t[1]=o,t[2]=a,o=t[3],a=t[4];break;case"q":t[0]="Q",t[1]+=s,t[2]+=l,t[3]+=s,t[4]+=l;case"Q":o=t[1],a=t[2],s=t[3],l=t[4];break;case"t":t[0]="T",t[1]+=s,t[2]+=l;case"T":"Q"===r?(o=2*s-o,a=2*l-a):(o=s,a=l),t[0]="Q",s=t[1],l=t[2],t[1]=o,t[2]=a,t[3]=s,t[4]=l;break;case"a":t[0]="A",t[6]+=s,t[7]+=l;case"A":i=!0,f=f.concat(u(s,l,t)),s=t[6],l=t[7];break;case"z":case"Z":s=d,l=h}i||f.push(t),r=t[0]}return f},r.util.getPathSegmentsInfo=f,r.util.fromArcToBeizers=u,r.util.getBoundsOfCurve=s,r.util.getPointOnPath=function(e,t,n){n||(n=f(e));for(var i=n[n.length-1]*t,o=0;i-n[o]>0&&o<n.length;)i-=n[o],o++;var a=n[o],s=i/a.length,u=a.length,l=e[o];switch(u){case"Z":case"z":return new r.Point(a.x,a.y).lerp(new r.Point(a.destX,a.destY),s);case"L":return new r.Point(a.x,a.y).lerp(new r.Point(l[1],l[2]),s);case"C":return c(a.x,a.y,l[1],l[2],l[3],l[4],l[5],l[6])(s);case"Q":return d(a.x,a.y,l[1],l[2],l[3],l[4])(s)}},r.util.getBoundsOfArc=function(e,t,n,i,r,a,u,l,c){for(var d,h=0,f=0,p=[],v=o(l-e,c-t,n,i,a,u,r),g=0,m=v.length;g<m;g++)d=s(h,f,v[g][1],v[g][2],v[g][3],v[g][4],v[g][5],v[g][6]),p.push({x:d[0].x+e,y:d[0].y+t}),p.push({x:d[1].x+e,y:d[1].y+t}),h=v[g][5],f=v[g][6];return p},r.util.drawArc=function(e,t,n,i){u(t,n,i=i.slice(0).unshift("X")).forEach((function(t){e.bezierCurveTo.apply(e,t.slice(1))}))}}(),function(){var e=Array.prototype.slice;function t(e,t,n){if(e&&0!==e.length){var i=e.length-1,r=t?e[i][t]:e[i];if(t)for(;i--;)n(e[i][t],r)&&(r=e[i][t]);else for(;i--;)n(e[i],r)&&(r=e[i]);return r}}r.util.array={fill:function(e,t){for(var n=e.length;n--;)e[n]=t;return e},invoke:function(t,n){for(var i=e.call(arguments,2),r=[],o=0,a=t.length;o<a;o++)r[o]=i.length?t[o][n].apply(t[o],i):t[o][n].call(t[o]);return r},min:function(e,n){return t(e,n,(function(e,t){return e<t}))},max:function(e,n){return t(e,n,(function(e,t){return e>=t}))}}}(),function(){function e(t,n,i){if(i)if(!r.isLikelyNode&&n instanceof Element)t=n;else if(n instanceof Array){t=[];for(var o=0,a=n.length;o<a;o++)t[o]=e({},n[o],i)}else if(n&&"object"===typeof n)for(var s in n)"canvas"===s||"group"===s?t[s]=null:n.hasOwnProperty(s)&&(t[s]=e({},n[s],i));else t=n;else for(var s in n)t[s]=n[s];return t}r.util.object={extend:e,clone:function(t,n){return e({},t,n)}},r.util.object.extend(r.util,r.Observable)}(),function(){function e(e,t){var n=e.charCodeAt(t);if(isNaN(n))return"";if(n<55296||n>57343)return e.charAt(t);if(55296<=n&&n<=56319){if(e.length<=t+1)throw"High surrogate without following low surrogate";var i=e.charCodeAt(t+1);if(56320>i||i>57343)throw"High surrogate without following low surrogate";return e.charAt(t)+e.charAt(t+1)}if(0===t)throw"Low surrogate without preceding high surrogate";var r=e.charCodeAt(t-1);if(55296>r||r>56319)throw"Low surrogate without preceding high surrogate";return!1}r.util.string={camelize:function(e){return e.replace(/-+(.)?/g,(function(e,t){return t?t.toUpperCase():""}))},capitalize:function(e,t){return e.charAt(0).toUpperCase()+(t?e.slice(1):e.slice(1).toLowerCase())},escapeXml:function(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},graphemeSplit:function(t){var n,i=0,r=[];for(i=0;i<t.length;i++)!1!==(n=e(t,i))&&r.push(n);return r}}}(),function(){var e=Array.prototype.slice,t=function(){},n=function(){for(var e in{toString:1})if("toString"===e)return!1;return!0}(),i=function(e,t,i){for(var r in t)r in e.prototype&&"function"===typeof e.prototype[r]&&(t[r]+"").indexOf("callSuper")>-1?e.prototype[r]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=i;var r=t[e].apply(this,arguments);if(this.constructor.superclass=n,"initialize"!==e)return r}}(r):e.prototype[r]=t[r],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};function o(){}function a(t){for(var n=null,i=this;i.constructor.superclass;){var r=i.constructor.superclass.prototype[t];if(i[t]!==r){n=r;break}i=i.constructor.superclass.prototype}return n?arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this):console.log("tried to callSuper "+t+", method not found in prototype chain",this)}r.util.createClass=function(){var n=null,r=e.call(arguments,0);function s(){this.initialize.apply(this,arguments)}"function"===typeof r[0]&&(n=r.shift()),s.superclass=n,s.subclasses=[],n&&(o.prototype=n.prototype,s.prototype=new o,n.subclasses.push(s));for(var u=0,l=r.length;u<l;u++)i(s,r[u],n);return s.prototype.initialize||(s.prototype.initialize=t),s.prototype.constructor=s,s.prototype.callSuper=a,s}}(),function(){var e=!!r.document.createElement("div").attachEvent,t=["touchstart","touchmove","touchend"];r.util.addListener=function(t,n,i,r){t&&t.addEventListener(n,i,!e&&r)},r.util.removeListener=function(t,n,i,r){t&&t.removeEventListener(n,i,!e&&r)},r.util.getPointer=function(e){var t=e.target,n=r.util.getScrollLeftTop(t),i=function(e){var t=e.changedTouches;return t&&t[0]?t[0]:e}(e);return{x:i.clientX+n.left,y:i.clientY+n.top}},r.util.isTouchEvent=function(e){return t.indexOf(e.type)>-1||"touch"===e.pointerType}}(),function(){var e=r.document.createElement("div"),t="string"===typeof e.style.opacity,n="string"===typeof e.style.filter,i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,o=function(e){return e};t?o=function(e,t){return e.style.opacity=t,e}:n&&(o=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+100*t+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+100*t+")",e}),r.util.setStyle=function(e,t){var n=e.style;if(!n)return e;if("string"===typeof t)return e.style.cssText+=";"+t,t.indexOf("opacity")>-1?o(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var i in t){if("opacity"===i)o(e,t[i]);else n["float"===i||"cssFloat"===i?"undefined"===typeof n.styleFloat?"cssFloat":"styleFloat":i]=t[i]}return e}}(),function(){var e=Array.prototype.slice;var t,n,i=function(t){return e.call(t,0)};try{t=i(r.document.childNodes)instanceof Array}catch(s){}function o(e,t){var n=r.document.createElement(e);for(var i in t)"class"===i?n.className=t[i]:"for"===i?n.htmlFor=t[i]:n.setAttribute(i,t[i]);return n}function a(e){for(var t=0,n=0,i=r.document.documentElement,o=r.document.body||{scrollLeft:0,scrollTop:0};e&&(e.parentNode||e.host)&&((e=e.parentNode||e.host)===r.document?(t=o.scrollLeft||i.scrollLeft||0,n=o.scrollTop||i.scrollTop||0):(t+=e.scrollLeft||0,n+=e.scrollTop||0),1!==e.nodeType||"fixed"!==e.style.position););return{left:t,top:n}}t||(i=function(e){for(var t=new Array(e.length),n=e.length;n--;)t[n]=e[n];return t}),n=r.document.defaultView&&r.document.defaultView.getComputedStyle?function(e,t){var n=r.document.defaultView.getComputedStyle(e,null);return n?n[t]:void 0}:function(e,t){var n=e.style[t];return!n&&e.currentStyle&&(n=e.currentStyle[t]),n},function(){var e=r.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";r.util.makeElementUnselectable=function(e){return"undefined"!==typeof e.onselectstart&&(e.onselectstart=r.util.falseFunction),t?e.style[t]="none":"string"===typeof e.unselectable&&(e.unselectable="on"),e},r.util.makeElementSelectable=function(e){return"undefined"!==typeof e.onselectstart&&(e.onselectstart=null),t?e.style[t]="":"string"===typeof e.unselectable&&(e.unselectable=""),e}}(),r.util.setImageSmoothing=function(e,t){e.imageSmoothingEnabled=e.imageSmoothingEnabled||e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled||e.oImageSmoothingEnabled,e.imageSmoothingEnabled=t},r.util.getById=function(e){return"string"===typeof e?r.document.getElementById(e):e},r.util.toArray=i,r.util.addClass=function(e,t){e&&-1===(" "+e.className+" ").indexOf(" "+t+" ")&&(e.className+=(e.className?" ":"")+t)},r.util.makeElement=o,r.util.wrapElement=function(e,t,n){return"string"===typeof t&&(t=o(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t},r.util.getScrollLeftTop=a,r.util.getElementOffset=function(e){var t,i,r=e&&e.ownerDocument,o={left:0,top:0},s={left:0,top:0},u={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!r)return s;for(var l in u)s[u[l]]+=parseInt(n(e,l),10)||0;return t=r.documentElement,"undefined"!==typeof e.getBoundingClientRect&&(o=e.getBoundingClientRect()),i=a(e),{left:o.left+i.left-(t.clientLeft||0)+s.left,top:o.top+i.top-(t.clientTop||0)+s.top}},r.util.getNodeCanvas=function(e){var t=r.jsdomImplForWrapper(e);return t._canvas||t._image},r.util.cleanUpJsdomNode=function(e){if(r.isLikelyNode){var t=r.jsdomImplForWrapper(e);t&&(t._image=null,t._canvas=null,t._currentSrc=null,t._attributes=null,t._classList=null)}}}(),function(){function e(){}r.util.request=function(t,n){n||(n={});var i=n.method?n.method.toUpperCase():"GET",o=n.onComplete||function(){},a=new r.window.XMLHttpRequest,s=n.body||n.parameters;return a.onreadystatechange=function(){4===a.readyState&&(o(a),a.onreadystatechange=e)},"GET"===i&&(s=null,"string"===typeof n.parameters&&(t=function(e,t){return e+(/\?/.test(e)?"&":"?")+t}(t,n.parameters))),a.open(i,t,!0),"POST"!==i&&"PUT"!==i||a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),a.send(s),a}}(),r.log=console.log,r.warn=console.warn,function(){function e(){return!1}function t(e,t,n,i){return-n*Math.cos(e/i*(Math.PI/2))+n+t}var n=r.window.requestAnimationFrame||r.window.webkitRequestAnimationFrame||r.window.mozRequestAnimationFrame||r.window.oRequestAnimationFrame||r.window.msRequestAnimationFrame||function(e){return r.window.setTimeout(e,1e3/60)},i=r.window.cancelAnimationFrame||r.window.clearTimeout;function o(){return n.apply(r.window,arguments)}r.util.animate=function(n){o((function(i){n||(n={});var r,a=i||+new Date,s=n.duration||500,u=a+s,l=n.onChange||e,c=n.abort||e,d=n.onComplete||e,h=n.easing||t,f="startValue"in n?n.startValue:0,p="endValue"in n?n.endValue:100,v=n.byValue||p-f;n.onStart&&n.onStart(),function e(t){var n=(r=t||+new Date)>u?s:r-a,i=n/s,g=h(n,f,v,s),m=Math.abs((g-f)/v);if(!c())return r>u?(l(p,1,1),void d(p,1,1)):(l(g,m,i),void o(e));d(p,1,1)}(a)}))},r.util.requestAnimFrame=o,r.util.cancelAnimFrame=function(){return i.apply(r.window,arguments)}}(),function(){function e(e,t,n){var i="rgba("+parseInt(e[0]+n*(t[0]-e[0]),10)+","+parseInt(e[1]+n*(t[1]-e[1]),10)+","+parseInt(e[2]+n*(t[2]-e[2]),10);return i+=","+(e&&t?parseFloat(e[3]+n*(t[3]-e[3])):1),i+=")"}r.util.animateColor=function(t,n,i,o){var a=new r.Color(t).getSource(),s=new r.Color(n).getSource(),u=o.onComplete,l=o.onChange;o=o||{},r.util.animate(r.util.object.extend(o,{duration:i||500,startValue:a,endValue:s,byValue:s,easing:function(t,n,i,r){return e(n,i,o.colorEasing?o.colorEasing(t,r):1-Math.cos(t/r*(Math.PI/2)))},onComplete:function(t,n,i){if(u)return u(e(s,s,0),n,i)},onChange:function(t,n,i){if(l){if(Array.isArray(t))return l(e(t,t,0),n,i);l(t,n,i)}}}))}}(),function(){function e(e,t,n,i){return e<Math.abs(t)?(e=t,i=n/4):i=0===t&&0===e?n/(2*Math.PI)*Math.asin(1):n/(2*Math.PI)*Math.asin(t/e),{a:e,c:t,p:n,s:i}}function t(e,t,n){return e.a*Math.pow(2,10*(t-=1))*Math.sin((t*n-e.s)*(2*Math.PI)/e.p)}function n(e,t,n,r){return n-i(r-e,0,n,r)+t}function i(e,t,n,i){return(e/=i)<1/2.75?n*(7.5625*e*e)+t:e<2/2.75?n*(7.5625*(e-=1.5/2.75)*e+.75)+t:e<2.5/2.75?n*(7.5625*(e-=2.25/2.75)*e+.9375)+t:n*(7.5625*(e-=2.625/2.75)*e+.984375)+t}r.util.ease={easeInQuad:function(e,t,n,i){return n*(e/=i)*e+t},easeOutQuad:function(e,t,n,i){return-n*(e/=i)*(e-2)+t},easeInOutQuad:function(e,t,n,i){return(e/=i/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t},easeInCubic:function(e,t,n,i){return n*(e/=i)*e*e+t},easeOutCubic:function(e,t,n,i){return n*((e=e/i-1)*e*e+1)+t},easeInOutCubic:function(e,t,n,i){return(e/=i/2)<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t},easeInQuart:function(e,t,n,i){return n*(e/=i)*e*e*e+t},easeOutQuart:function(e,t,n,i){return-n*((e=e/i-1)*e*e*e-1)+t},easeInOutQuart:function(e,t,n,i){return(e/=i/2)<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t},easeInQuint:function(e,t,n,i){return n*(e/=i)*e*e*e*e+t},easeOutQuint:function(e,t,n,i){return n*((e=e/i-1)*e*e*e*e+1)+t},easeInOutQuint:function(e,t,n,i){return(e/=i/2)<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t},easeInSine:function(e,t,n,i){return-n*Math.cos(e/i*(Math.PI/2))+n+t},easeOutSine:function(e,t,n,i){return n*Math.sin(e/i*(Math.PI/2))+t},easeInOutSine:function(e,t,n,i){return-n/2*(Math.cos(Math.PI*e/i)-1)+t},easeInExpo:function(e,t,n,i){return 0===e?t:n*Math.pow(2,10*(e/i-1))+t},easeOutExpo:function(e,t,n,i){return e===i?t+n:n*(1-Math.pow(2,-10*e/i))+t},easeInOutExpo:function(e,t,n,i){return 0===e?t:e===i?t+n:(e/=i/2)<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(2-Math.pow(2,-10*--e))+t},easeInCirc:function(e,t,n,i){return-n*(Math.sqrt(1-(e/=i)*e)-1)+t},easeOutCirc:function(e,t,n,i){return n*Math.sqrt(1-(e=e/i-1)*e)+t},easeInOutCirc:function(e,t,n,i){return(e/=i/2)<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t},easeInElastic:function(n,i,r,o){var a=0;return 0===n?i:1===(n/=o)?i+r:(a||(a=.3*o),-t(e(r,r,a,1.70158),n,o)+i)},easeOutElastic:function(t,n,i,r){var o=0;if(0===t)return n;if(1===(t/=r))return n+i;o||(o=.3*r);var a=e(i,i,o,1.70158);return a.a*Math.pow(2,-10*t)*Math.sin((t*r-a.s)*(2*Math.PI)/a.p)+a.c+n},easeInOutElastic:function(n,i,r,o){var a=0;if(0===n)return i;if(2===(n/=o/2))return i+r;a||(a=o*(.3*1.5));var s=e(r,r,a,1.70158);return n<1?-.5*t(s,n,o)+i:s.a*Math.pow(2,-10*(n-=1))*Math.sin((n*o-s.s)*(2*Math.PI)/s.p)*.5+s.c+i},easeInBack:function(e,t,n,i,r){return void 0===r&&(r=1.70158),n*(e/=i)*e*((r+1)*e-r)+t},easeOutBack:function(e,t,n,i,r){return void 0===r&&(r=1.70158),n*((e=e/i-1)*e*((r+1)*e+r)+1)+t},easeInOutBack:function(e,t,n,i,r){return void 0===r&&(r=1.70158),(e/=i/2)<1?n/2*(e*e*((1+(r*=1.525))*e-r))+t:n/2*((e-=2)*e*((1+(r*=1.525))*e+r)+2)+t},easeInBounce:n,easeOutBounce:i,easeInOutBounce:function(e,t,r,o){return e<o/2?.5*n(2*e,0,r,o)+t:.5*i(2*e-o,0,r,o)+.5*r+t}}}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.util.object.clone,r=t.util.toFixed,o=t.util.parseUnit,a=t.util.multiplyTransformMatrices,s={cx:"left",x:"left",r:"radius",cy:"top",y:"top",display:"visible",visibility:"visible",transform:"transformMatrix","fill-opacity":"fillOpacity","fill-rule":"fillRule","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","letter-spacing":"charSpacing","paint-order":"paintFirst","stroke-dasharray":"strokeDashArray","stroke-dashoffset":"strokeDashOffset","stroke-linecap":"strokeLineCap","stroke-linejoin":"strokeLineJoin","stroke-miterlimit":"strokeMiterLimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-decoration":"textDecoration","text-anchor":"textAnchor",opacity:"opacity","clip-path":"clipPath","clip-rule":"clipRule","vector-effect":"strokeUniform","image-rendering":"imageSmoothing"},u={stroke:"strokeOpacity",fill:"fillOpacity"},l="font-size",c="clip-path";function d(e){return e in s?s[e]:e}function h(e,n,i,r){var s,u="[object Array]"===Object.prototype.toString.call(n);if("fill"!==e&&"stroke"!==e||"none"!==n){if("strokeUniform"===e)return"non-scaling-stroke"===n;if("strokeDashArray"===e)n="none"===n?null:n.replace(/,/g," ").split(/\s+/).map(parseFloat);else if("transformMatrix"===e)n=i&&i.transformMatrix?a(i.transformMatrix,t.parseTransformAttribute(n)):t.parseTransformAttribute(n);else if("visible"===e)n="none"!==n&&"hidden"!==n,i&&!1===i.visible&&(n=!1);else if("opacity"===e)n=parseFloat(n),i&&"undefined"!==typeof i.opacity&&(n*=i.opacity);else if("textAnchor"===e)n="start"===n?"left":"end"===n?"right":"center";else if("charSpacing"===e)s=o(n,r)/r*1e3;else if("paintFirst"===e){var l=n.indexOf("fill"),c=n.indexOf("stroke");n="fill";(l>-1&&c>-1&&c<l||-1===l&&c>-1)&&(n="stroke")}else{if("href"===e||"xlink:href"===e||"font"===e)return n;if("imageSmoothing"===e)return"optimizeQuality"===n;s=u?n.map(o):o(n,r)}}else n="";return!u&&isNaN(s)?n:s}function f(e){return new RegExp("^("+e.join("|")+")\\b","i")}function p(e,t){var n,i,r,o,a=[];for(r=0,o=t.length;r<o;r++)n=t[r],i=e.getElementsByTagName(n),a=a.concat(Array.prototype.slice.call(i));return a}function v(e,t){var n,i=!0;return(n=g(e,t.pop()))&&t.length&&(i=function(e,t){var n,i=!0;for(;e.parentNode&&1===e.parentNode.nodeType&&t.length;)i&&(n=t.pop()),i=g(e=e.parentNode,n);return 0===t.length}(e,t)),n&&i&&0===t.length}function g(e,t){var n,i,r=e.nodeName,o=e.getAttribute("class"),a=e.getAttribute("id");if(n=new RegExp("^"+r,"i"),t=t.replace(n,""),a&&t.length&&(n=new RegExp("#"+a+"(?![a-zA-Z\\-]+)","i"),t=t.replace(n,"")),o&&t.length)for(i=(o=o.split(" ")).length;i--;)n=new RegExp("\\."+o[i]+"(?![a-zA-Z\\-]+)","i"),t=t.replace(n,"");return 0===t.length}function m(e,t){var n;if(e.getElementById&&(n=e.getElementById(t)),n)return n;var i,r,o,a=e.getElementsByTagName("*");for(r=0,o=a.length;r<o;r++)if(t===(i=a[r]).getAttribute("id"))return i}t.svgValidTagNamesRegEx=f(["path","circle","polygon","polyline","ellipse","rect","line","image","text"]),t.svgViewBoxElementsRegEx=f(["symbol","image","marker","pattern","view","svg"]),t.svgInvalidAncestorsRegEx=f(["pattern","defs","symbol","metadata","clipPath","mask","desc"]),t.svgValidParentsRegEx=f(["symbol","g","a","svg","clipPath","defs"]),t.cssRules={},t.gradientDefs={},t.clipPaths={},t.parseTransformAttribute=function(){function e(e,n,i){e[i]=Math.tan(t.util.degreesToRadians(n[0]))}var n=t.iMatrix,i=t.reNum,r=t.commaWsp,o="(?:"+("(?:(matrix)\\s*\\(\\s*("+i+")"+r+"("+i+")"+r+"("+i+")"+r+"("+i+")"+r+"("+i+")"+r+"("+i+")\\s*\\))")+"|"+("(?:(translate)\\s*\\(\\s*("+i+")(?:"+r+"("+i+"))?\\s*\\))")+"|"+("(?:(scale)\\s*\\(\\s*("+i+")(?:"+r+"("+i+"))?\\s*\\))")+"|"+("(?:(rotate)\\s*\\(\\s*("+i+")(?:"+r+"("+i+")"+r+"("+i+"))?\\s*\\))")+"|"+("(?:(skewX)\\s*\\(\\s*("+i+")\\s*\\))")+"|"+("(?:(skewY)\\s*\\(\\s*("+i+")\\s*\\))")+")",a=new RegExp("^\\s*(?:"+("(?:"+o+"(?:"+r+"*"+o+")*)")+"?)\\s*$"),s=new RegExp(o,"g");return function(i){var r=n.concat(),u=[];if(!i||i&&!a.test(i))return r;i.replace(s,(function(i){var a=new RegExp(o).exec(i).filter((function(e){return!!e})),s=a[1],l=a.slice(2).map(parseFloat);switch(s){case"translate":!function(e,t){e[4]=t[0],2===t.length&&(e[5]=t[1])}(r,l);break;case"rotate":l[0]=t.util.degreesToRadians(l[0]),function(e,n){var i=t.util.cos(n[0]),r=t.util.sin(n[0]),o=0,a=0;3===n.length&&(o=n[1],a=n[2]),e[0]=i,e[1]=r,e[2]=-r,e[3]=i,e[4]=o-(i*o-r*a),e[5]=a-(r*o+i*a)}(r,l);break;case"scale":!function(e,t){var n=t[0],i=2===t.length?t[1]:t[0];e[0]=n,e[3]=i}(r,l);break;case"skewX":e(r,l,2);break;case"skewY":e(r,l,1);break;case"matrix":r=l}u.push(r.concat()),r=n.concat()}));for(var l=u[0];u.length>1;)u.shift(),l=t.util.multiplyTransformMatrices(l,u[0]);return l}}();var _=new RegExp("^\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*$");function y(e){if(t.svgViewBoxElementsRegEx.test(e.nodeName)){var n,i,r,a,s,u,l=e.getAttribute("viewBox"),c=1,d=1,h=e.getAttribute("width"),f=e.getAttribute("height"),p=e.getAttribute("x")||0,v=e.getAttribute("y")||0,g=e.getAttribute("preserveAspectRatio")||"",m=!l||!(l=l.match(_)),y=!h||!f||"100%"===h||"100%"===f,b=m&&y,w={},C="",k=0,S=0;if(w.width=0,w.height=0,w.toBeParsed=b,m&&(p||v)&&"#document"!==e.parentNode.nodeName&&(C=" translate("+o(p)+" "+o(v)+") ",s=(e.getAttribute("transform")||"")+C,e.setAttribute("transform",s),e.removeAttribute("x"),e.removeAttribute("y")),b)return w;if(m)return w.width=o(h),w.height=o(f),w;if(n=-parseFloat(l[1]),i=-parseFloat(l[2]),r=parseFloat(l[3]),a=parseFloat(l[4]),w.minX=n,w.minY=i,w.viewBoxWidth=r,w.viewBoxHeight=a,y?(w.width=r,w.height=a):(w.width=o(h),w.height=o(f),c=w.width/r,d=w.height/a),"none"!==(g=t.util.parsePreserveAspectRatioAttribute(g)).alignX&&("meet"===g.meetOrSlice&&(d=c=c>d?d:c),"slice"===g.meetOrSlice&&(d=c=c>d?c:d),k=w.width-r*c,S=w.height-a*c,"Mid"===g.alignX&&(k/=2),"Mid"===g.alignY&&(S/=2),"Min"===g.alignX&&(k=0),"Min"===g.alignY&&(S=0)),1===c&&1===d&&0===n&&0===i&&0===p&&0===v)return w;if((p||v)&&"#document"!==e.parentNode.nodeName&&(C=" translate("+o(p)+" "+o(v)+") "),s=C+" matrix("+c+" 0 0 "+d+" "+(n*c+k)+" "+(i*d+S)+") ","svg"===e.nodeName){for(u=e.ownerDocument.createElementNS(t.svgNS,"g");e.firstChild;)u.appendChild(e.firstChild);e.appendChild(u)}else(u=e).removeAttribute("x"),u.removeAttribute("y"),s=u.getAttribute("transform")+s;return u.setAttribute("transform",s),w}}function b(e,t){var n="xlink:href",i=m(e,t.getAttribute(n).substr(1));if(i&&i.getAttribute(n)&&b(e,i),["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"].forEach((function(e){i&&!t.hasAttribute(e)&&i.hasAttribute(e)&&t.setAttribute(e,i.getAttribute(e))})),!t.children.length)for(var r=i.cloneNode(!0);r.firstChild;)t.appendChild(r.firstChild);t.removeAttribute(n)}t.parseSVGDocument=function(e,n,r,o){if(e){!function(e){for(var n=p(e,["use","svg:use"]),i=0;n.length&&i<n.length;){var r,o,a,s,u=n[i],l=(u.getAttribute("xlink:href")||u.getAttribute("href")).substr(1),c=u.getAttribute("x")||0,d=u.getAttribute("y")||0,h=m(e,l).cloneNode(!0),f=(h.getAttribute("transform")||"")+" translate("+c+", "+d+")",v=n.length,g=t.svgNS;if(y(h),/^svg$/i.test(h.nodeName)){var _=h.ownerDocument.createElementNS(g,"g");for(o=0,s=(a=h.attributes).length;o<s;o++)r=a.item(o),_.setAttributeNS(g,r.nodeName,r.nodeValue);for(;h.firstChild;)_.appendChild(h.firstChild);h=_}for(o=0,s=(a=u.attributes).length;o<s;o++)"x"!==(r=a.item(o)).nodeName&&"y"!==r.nodeName&&"xlink:href"!==r.nodeName&&"href"!==r.nodeName&&("transform"===r.nodeName?f=r.nodeValue+" "+f:h.setAttribute(r.nodeName,r.nodeValue));h.setAttribute("transform",f),h.setAttribute("instantiated_by_use","1"),h.removeAttribute("id"),u.parentNode.replaceChild(h,u),n.length===v&&i++}}(e);var a,s,u=t.Object.__uid++,l=y(e),c=t.util.toArray(e.getElementsByTagName("*"));if(l.crossOrigin=o&&o.crossOrigin,l.svgUid=u,0===c.length&&t.isLikelyNode){var d=[];for(a=0,s=(c=e.selectNodes('//*[name(.)!="svg"]')).length;a<s;a++)d[a]=c[a];c=d}var h=c.filter((function(e){return y(e),t.svgValidTagNamesRegEx.test(e.nodeName.replace("svg:",""))&&!function(e,t){for(;e&&(e=e.parentNode);)if(e.nodeName&&t.test(e.nodeName.replace("svg:",""))&&!e.getAttribute("instantiated_by_use"))return!0;return!1}(e,t.svgInvalidAncestorsRegEx)}));if(!h||h&&!h.length)n&&n([],{});else{var f={};c.filter((function(e){return"clipPath"===e.nodeName.replace("svg:","")})).forEach((function(e){var n=e.getAttribute("id");f[n]=t.util.toArray(e.getElementsByTagName("*")).filter((function(e){return t.svgValidTagNamesRegEx.test(e.nodeName.replace("svg:",""))}))})),t.gradientDefs[u]=t.getGradientDefs(e),t.cssRules[u]=t.getCSSRules(e),t.clipPaths[u]=f,t.parseElements(h,(function(e,i){n&&(n(e,l,i,c),delete t.gradientDefs[u],delete t.cssRules[u],delete t.clipPaths[u])}),i(l),r,o)}}};var w=new RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+t.reNum+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+t.reNum+"))?\\s+(.*)");n(t,{parseFontDeclaration:function(e,t){var n=e.match(w);if(n){var i=n[1],r=n[3],a=n[4],s=n[5],u=n[6];i&&(t.fontStyle=i),r&&(t.fontWeight=isNaN(parseFloat(r))?r:parseFloat(r)),a&&(t.fontSize=o(a)),u&&(t.fontFamily=u),s&&(t.lineHeight="normal"===s?1:s)}},getGradientDefs:function(e){var t,n=p(e,["linearGradient","radialGradient","svg:linearGradient","svg:radialGradient"]),i=0,r={};for(i=n.length;i--;)(t=n[i]).getAttribute("xlink:href")&&b(e,t),r[t.getAttribute("id")]=t;return r},parseAttributes:function(e,i,a){if(e){var s,f,p,g={};"undefined"===typeof a&&(a=e.getAttribute("svgUid")),e.parentNode&&t.svgValidParentsRegEx.test(e.parentNode.nodeName)&&(g=t.parseAttributes(e.parentNode,i,a));var m=i.reduce((function(t,n){return(s=e.getAttribute(n))&&(t[n]=s),t}),{}),_=n(function(e,n){var i={};for(var r in t.cssRules[n])if(v(e,r.split(" ")))for(var o in t.cssRules[n][r])i[o]=t.cssRules[n][r][o];return i}(e,a),t.parseStyleAttribute(e));m=n(m,_),_[c]&&e.setAttribute(c,_[c]),f=p=g.fontSize||t.Text.DEFAULT_SVG_FONT_SIZE,m[l]&&(m[l]=f=o(m[l],p));var y,b,w={};for(var C in m)b=h(y=d(C),m[C],g,f),w[y]=b;w&&w.font&&t.parseFontDeclaration(w.font,w);var k=n(g,w);return t.svgValidParentsRegEx.test(e.nodeName)?k:function(e){for(var n in u)if("undefined"!==typeof e[u[n]]&&""!==e[n]){if("undefined"===typeof e[n]){if(!t.Object.prototype[n])continue;e[n]=t.Object.prototype[n]}if(0!==e[n].indexOf("url(")){var i=new t.Color(e[n]);e[n]=i.setAlpha(r(i.getAlpha()*e[u[n]],2)).toRgba()}}return e}(k)}},parseElements:function(e,n,i,r,o){new t.ElementsParser(e,n,i,r,o).parse()},parseStyleAttribute:function(e){var t={},n=e.getAttribute("style");return n?("string"===typeof n?function(e,t){var n,i;e.replace(/;\s*$/,"").split(";").forEach((function(e){var r=e.split(":");n=r[0].trim().toLowerCase(),i=r[1].trim(),t[n]=i}))}(n,t):function(e,t){var n,i;for(var r in e)"undefined"!==typeof e[r]&&(n=r.toLowerCase(),i=e[r],t[n]=i)}(n,t),t):t},parsePointsAttribute:function(e){if(!e)return null;var t,n,i=[];for(t=0,n=(e=(e=e.replace(/,/g," ").trim()).split(/\s+/)).length;t<n;t+=2)i.push({x:parseFloat(e[t]),y:parseFloat(e[t+1])});return i},getCSSRules:function(e){var n,i,r=e.getElementsByTagName("style"),o={};for(n=0,i=r.length;n<i;n++){var a=r[n].textContent||"";""!==(a=a.replace(/\/\*[\s\S]*?\*\//g,"")).trim()&&a.match(/[^{]*\{[\s\S]*?\}/g).map((function(e){return e.trim()})).forEach((function(e){var r=e.match(/([\s\S]*?)\s*\{([^}]*)\}/),a={},s=r[2].trim().replace(/;$/,"").split(/\s*;\s*/);for(n=0,i=s.length;n<i;n++){var u=s[n].split(/\s*:\s*/),l=u[0],c=u[1];a[l]=c}(e=r[1]).split(",").forEach((function(e){""!==(e=e.replace(/^svg/i,"").trim())&&(o[e]?t.util.object.extend(o[e],a):o[e]=t.util.object.clone(a))}))}))}return o},loadSVGFromURL:function(e,n,i,r){e=e.replace(/^\n\s*/,"").trim(),new t.util.request(e,{method:"get",onComplete:function(e){var o=e.responseXML;if(!o||!o.documentElement)return n&&n(null),!1;t.parseSVGDocument(o.documentElement,(function(e,t,i,r){n&&n(e,t,i,r)}),i,r)}})},loadSVGFromString:function(e,n,i,r){var o=(new t.window.DOMParser).parseFromString(e.trim(),"text/xml");t.parseSVGDocument(o.documentElement,(function(e,t,i,r){n(e,t,i,r)}),i,r)}})}(t),r.ElementsParser=function(e,t,n,i,r,o){this.elements=e,this.callback=t,this.options=n,this.reviver=i,this.svgUid=n&&n.svgUid||0,this.parsingOptions=r,this.regexUrl=/^url\(['"]?#([^'"]+)['"]?\)/g,this.doc=o},(i=r.ElementsParser.prototype).parse=function(){this.instances=new Array(this.elements.length),this.numElements=this.elements.length,this.createObjects()},i.createObjects=function(){var e=this;this.elements.forEach((function(t,n){t.setAttribute("svgUid",e.svgUid),e.createObject(t,n)}))},i.findTag=function(e){return r[r.util.string.capitalize(e.tagName.replace("svg:",""))]},i.createObject=function(e,t){var n=this.findTag(e);if(n&&n.fromElement)try{n.fromElement(e,this.createCallback(t,e),this.options)}catch(i){r.log(i)}else this.checkIfDone()},i.createCallback=function(e,t){var n=this;return function(i){var o;n.resolveGradient(i,t,"fill"),n.resolveGradient(i,t,"stroke"),i instanceof r.Image&&i._originalElement&&(o=i.parsePreserveAspectRatioAttribute(t)),i._removeTransformMatrix(o),n.resolveClipPath(i,t),n.reviver&&n.reviver(t,i),n.instances[e]=i,n.checkIfDone()}},i.extractPropertyDefinition=function(e,t,n){var i=e[t],o=this.regexUrl;if(o.test(i)){o.lastIndex=0;var a=o.exec(i)[1];return o.lastIndex=0,r[n][this.svgUid][a]}},i.resolveGradient=function(e,t,n){var i=this.extractPropertyDefinition(e,n,"gradientDefs");if(i){var o=t.getAttribute(n+"-opacity"),a=r.Gradient.fromElement(i,e,o,this.options);e.set(n,a)}},i.createClipPathCallback=function(e,t){return function(e){e._removeTransformMatrix(),e.fillRule=e.clipRule,t.push(e)}},i.resolveClipPath=function(e,t){var n,i,o,a,s=this.extractPropertyDefinition(e,"clipPath","clipPaths");if(s){o=[],i=r.util.invertTransform(e.calcTransformMatrix());for(var u=s[0].parentNode,l=t;l.parentNode&&l.getAttribute("clip-path")!==e.clipPath;)l=l.parentNode;l.parentNode.appendChild(u);for(var c=0;c<s.length;c++)n=s[c],this.findTag(n).fromElement(n,this.createClipPathCallback(e,o),this.options);s=1===o.length?o[0]:new r.Group(o),a=r.util.multiplyTransformMatrices(i,s.calcTransformMatrix()),s.clipPath&&this.resolveClipPath(s,l);var d=r.util.qrDecompose(a);s.flipX=!1,s.flipY=!1,s.set("scaleX",d.scaleX),s.set("scaleY",d.scaleY),s.angle=d.angle,s.skewX=d.skewX,s.skewY=0,s.setPositionByOrigin({x:d.translateX,y:d.translateY},"center","center"),e.clipPath=s}else delete e.clipPath},i.checkIfDone=function(){0===--this.numElements&&(this.instances=this.instances.filter((function(e){return null!=e})),this.callback(this.instances,this.elements))},function(e){"use strict";var t=e.fabric||(e.fabric={});function n(e,t){this.x=e,this.y=t}t.Point?t.warn("fabric.Point is already defined"):(t.Point=n,n.prototype={type:"point",constructor:n,add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.x<e.x&&this.y<e.y},lte:function(e){return this.x<=e.x&&this.y<=e.y},gt:function(e){return this.x>e.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return"undefined"===typeof t&&(t=.5),t=Math.max(Math.min(1,t),0),new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return this.lerp(e)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){return this.x=e,this.y=t,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setFromPoint:function(e){return this.x=e.x,this.y=e.y,this},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n},clone:function(){return new n(this.x,this.y)}})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});function n(e){this.status=e,this.points=[]}t.Intersection?t.warn("fabric.Intersection is already defined"):(t.Intersection=n,t.Intersection.prototype={constructor:n,appendPoint:function(e){return this.points.push(e),this},appendPoints:function(e){return this.points=this.points.concat(e),this}},t.Intersection.intersectLineLine=function(e,i,r,o){var a,s=(o.x-r.x)*(e.y-r.y)-(o.y-r.y)*(e.x-r.x),u=(i.x-e.x)*(e.y-r.y)-(i.y-e.y)*(e.x-r.x),l=(o.y-r.y)*(i.x-e.x)-(o.x-r.x)*(i.y-e.y);if(0!==l){var c=s/l,d=u/l;0<=c&&c<=1&&0<=d&&d<=1?(a=new n("Intersection")).appendPoint(new t.Point(e.x+c*(i.x-e.x),e.y+c*(i.y-e.y))):a=new n}else a=new n(0===s||0===u?"Coincident":"Parallel");return a},t.Intersection.intersectLinePolygon=function(e,t,i){var r,o,a,s,u=new n,l=i.length;for(s=0;s<l;s++)r=i[s],o=i[(s+1)%l],a=n.intersectLineLine(e,t,r,o),u.appendPoints(a.points);return u.points.length>0&&(u.status="Intersection"),u},t.Intersection.intersectPolygonPolygon=function(e,t){var i,r=new n,o=e.length;for(i=0;i<o;i++){var a=e[i],s=e[(i+1)%o],u=n.intersectLinePolygon(a,s,t);r.appendPoints(u.points)}return r.points.length>0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,i,r){var o=i.min(r),a=i.max(r),s=new t.Point(a.x,o.y),u=new t.Point(o.x,a.y),l=n.intersectLinePolygon(o,s,e),c=n.intersectLinePolygon(s,a,e),d=n.intersectLinePolygon(a,u,e),h=n.intersectLinePolygon(u,o,e),f=new n;return f.appendPoints(l.points),f.appendPoints(c.points),f.appendPoints(d.points),f.appendPoints(h.points),f.points.length>0&&(f.status="Intersection"),f})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}function i(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}t.Color?t.warn("fabric.Color is already defined."):(t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),"transparent"===e&&(t=[255,255,255,0]),t||(t=n.sourceFromHex(e)),t||(t=n.sourceFromRgb(e)),t||(t=n.sourceFromHsl(e)),t||(t=[0,0,0,1]),t&&this.setSource(t)},_rgbToHsl:function(e,n,i){e/=255,n/=255,i/=255;var r,o,a,s=t.util.array.max([e,n,i]),u=t.util.array.min([e,n,i]);if(a=(s+u)/2,s===u)r=o=0;else{var l=s-u;switch(o=a>.5?l/(2-s-u):l/(s+u),s){case e:r=(n-i)/l+(n<i?6:0);break;case n:r=(i-e)/l+2;break;case i:r=(e-n)/l+4}r/=6}return[Math.round(360*r),Math.round(100*o),Math.round(100*a)]},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHsl:function(){var e=this.getSource(),t=this._rgbToHsl(e[0],e[1],e[2]);return"hsl("+t[0]+","+t[1]+"%,"+t[2]+"%)"},toHsla:function(){var e=this.getSource(),t=this._rgbToHsl(e[0],e[1],e[2]);return"hsla("+t[0]+","+t[1]+"%,"+t[2]+"%,"+e[3]+")"},toHex:function(){var e,t,n,i=this.getSource();return e=1===(e=i[0].toString(16)).length?"0"+e:e,t=1===(t=i[1].toString(16)).length?"0"+t:t,n=1===(n=i[2].toString(16)).length?"0"+n:n,e.toUpperCase()+t.toUpperCase()+n.toUpperCase()},toHexa:function(){var e,t=this.getSource();return e=1===(e=(e=Math.round(255*t[3])).toString(16)).length?"0"+e:e,this.toHex()+e.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((.3*e[0]+.59*e[1]+.11*e[2]).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(.3*t[0]+.59*t[1]+.11*t[2]).toFixed(0),i=t[3];return e=e||127,n=Number(n)<Number(e)?0:255,this.setSource([n,n,n,i]),this},overlayWith:function(e){e instanceof n||(e=new n(e));var t,i=[],r=this.getAlpha(),o=this.getSource(),a=e.getSource();for(t=0;t<3;t++)i.push(Math.round(.5*o[t]+.5*a[t]));return i[3]=r,this.setSource(i),this}},t.Color.reRGBa=/^rgba?\(\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*(?:\s*,\s*((?:\d*\.?\d+)?)\s*)?\)$/i,t.Color.reHSLa=/^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3}\%)\s*,\s*(\d{1,3}\%)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/i,t.Color.reHex=/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i,t.Color.colorNameMap={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",darkgreen:"#006400",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",lightgreen:"#90EE90",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399",red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"},t.Color.fromRgb=function(e){return n.fromSource(n.sourceFromRgb(e))},t.Color.sourceFromRgb=function(e){var t=e.match(n.reRGBa);if(t){var i=parseInt(t[1],10)/(/%$/.test(t[1])?100:1)*(/%$/.test(t[1])?255:1),r=parseInt(t[2],10)/(/%$/.test(t[2])?100:1)*(/%$/.test(t[2])?255:1),o=parseInt(t[3],10)/(/%$/.test(t[3])?100:1)*(/%$/.test(t[3])?255:1);return[parseInt(i,10),parseInt(r,10),parseInt(o,10),t[4]?parseFloat(t[4]):1]}},t.Color.fromRgba=n.fromRgb,t.Color.fromHsl=function(e){return n.fromSource(n.sourceFromHsl(e))},t.Color.sourceFromHsl=function(e){var t=e.match(n.reHSLa);if(t){var r,o,a,s=(parseFloat(t[1])%360+360)%360/360,u=parseFloat(t[2])/(/%$/.test(t[2])?100:1),l=parseFloat(t[3])/(/%$/.test(t[3])?100:1);if(0===u)r=o=a=l;else{var c=l<=.5?l*(u+1):l+u-l*u,d=2*l-c;r=i(d,c,s+1/3),o=i(d,c,s),a=i(d,c,s-1/3)}return[Math.round(255*r),Math.round(255*o),Math.round(255*a),t[4]?parseFloat(t[4]):1]}},t.Color.fromHsla=n.fromHsl,t.Color.fromHex=function(e){return n.fromSource(n.sourceFromHex(e))},t.Color.sourceFromHex=function(e){if(e.match(n.reHex)){var t=e.slice(e.indexOf("#")+1),i=3===t.length||4===t.length,r=8===t.length||4===t.length,o=i?t.charAt(0)+t.charAt(0):t.substring(0,2),a=i?t.charAt(1)+t.charAt(1):t.substring(2,4),s=i?t.charAt(2)+t.charAt(2):t.substring(4,6),u=r?i?t.charAt(3)+t.charAt(3):t.substring(6,8):"FF";return[parseInt(o,16),parseInt(a,16),parseInt(s,16),parseFloat((parseInt(u,16)/255).toFixed(2))]}},t.Color.fromSource=function(e){var t=new n;return t.setSource(e),t})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=["e","se","s","sw","w","nw","n","ne","e"],i=["ns","nesw","ew","nwse"],r={},o="left",a="top",s="right",u="bottom",l="center",c={top:u,bottom:a,left:s,right:o,center:l},d=t.util.radiansToDegrees,h=Math.sign||function(e){return(e>0)-(e<0)||+e};function f(e,t){var n=e.angle+d(Math.atan2(t.y,t.x))+360;return Math.round(n%360/45)}function p(e,n){var i=n.transform.target,r=i.canvas,o=t.util.object.clone(n);o.target=i,r&&r.fire("object:"+e,o),i.fire(e,n)}function v(e,t){var n=t.canvas,i=e[n.uniScaleKey];return n.uniformScaling&&!i||!n.uniformScaling&&i}function g(e){return e.originX===l&&e.originY===l}function m(e,t,n){var i=e.lockScalingX,r=e.lockScalingY;return!(!i||!r)||(!(t||!i&&!r||!n)||(!(!i||"x"!==t)||!(!r||"y"!==t)))}function _(e,t,n,i){return{e:e,transform:t,pointer:{x:n,y:i}}}function y(e){return function(t,n,i,r){var o=n.target,a=o.getCenterPoint(),s=o.translateToOriginPoint(a,n.originX,n.originY),u=e(t,n,i,r);return o.setPositionByOrigin(s,n.originX,n.originY),u}}function b(e,n,i,r,o){var a=e.target,s=a.controls[e.corner],u=a.canvas.getZoom(),l=a.padding/u,c=a.toLocalPoint(new t.Point(r,o),n,i);return c.x>=l&&(c.x-=l),c.x<=-l&&(c.x+=l),c.y>=l&&(c.y-=l),c.y<=l&&(c.y+=l),c.x-=s.offsetX,c.y-=s.offsetY,c}function w(e){return e.flipX&&!e.flipY||!e.flipX&&e.flipY}function C(e,t,n,i,r){if(0!==e[t]){var o=r/e._getTransformedDimensions()[i]*e[n];e.set(n,o)}}function k(e,t,n,i){var r,l=t.target,c=l._getTransformedDimensions(0,l.skewY),h=b(t,t.originX,t.originY,n,i),f=Math.abs(2*h.x)-c.x,v=l.skewX;f<2?r=0:(r=d(Math.atan2(f/l.scaleX,c.y/l.scaleY)),t.originX===o&&t.originY===u&&(r=-r),t.originX===s&&t.originY===a&&(r=-r),w(l)&&(r=-r));var g=v!==r;if(g){var m=l._getTransformedDimensions().y;l.set("skewX",r),C(l,"skewY","scaleY","y",m),p("skewing",_(e,t,n,i))}return g}function S(e,t,n,i){var r,l=t.target,c=l._getTransformedDimensions(l.skewX,0),h=b(t,t.originX,t.originY,n,i),f=Math.abs(2*h.y)-c.y,v=l.skewY;f<2?r=0:(r=d(Math.atan2(f/l.scaleY,c.x/l.scaleX)),t.originX===o&&t.originY===u&&(r=-r),t.originX===s&&t.originY===a&&(r=-r),w(l)&&(r=-r));var g=v!==r;if(g){var m=l._getTransformedDimensions().x;l.set("skewY",r),C(l,"skewX","scaleX","x",m),p("skewing",_(e,t,n,i))}return g}function x(e,t,n,i,r){r=r||{};var o,a,s,u,l,d,f=t.target,y=f.lockScalingX,w=f.lockScalingY,C=r.by,k=v(e,f),S=m(f,C,k),x=t.gestureScale;if(S)return!1;if(x)a=t.scaleX*x,s=t.scaleY*x;else{if(o=b(t,t.originX,t.originY,n,i),l="y"!==C?h(o.x):1,d="x"!==C?h(o.y):1,t.signX||(t.signX=l),t.signY||(t.signY=d),f.lockScalingFlip&&(t.signX!==l||t.signY!==d))return!1;if(u=f._getTransformedDimensions(),k&&!C){var L,E=Math.abs(o.x)+Math.abs(o.y),N=t.original,D=E/(Math.abs(u.x*N.scaleX/f.scaleX)+Math.abs(u.y*N.scaleY/f.scaleY));a=N.scaleX*D,s=N.scaleY*D}else a=Math.abs(o.x*f.scaleX/u.x),s=Math.abs(o.y*f.scaleY/u.y);g(t)&&(a*=2,s*=2),t.signX!==l&&"y"!==C&&(t.originX=c[t.originX],a*=-1,t.signX=l),t.signY!==d&&"x"!==C&&(t.originY=c[t.originY],s*=-1,t.signY=d)}var M=f.scaleX,T=f.scaleY;return C?("x"===C&&f.set("scaleX",a),"y"===C&&f.set("scaleY",s)):(!y&&f.set("scaleX",a),!w&&f.set("scaleY",s)),(L=M!==f.scaleX||T!==f.scaleY)&&p("scaling",_(e,t,n,i)),L}r.scaleCursorStyleHandler=function(e,t,i){var r=v(e,i),o="";if(0!==t.x&&0===t.y?o="x":0===t.x&&0!==t.y&&(o="y"),m(i,o,r))return"not-allowed";var a=f(i,t);return n[a]+"-resize"},r.skewCursorStyleHandler=function(e,t,n){var r="not-allowed";if(0!==t.x&&n.lockSkewingY)return r;if(0!==t.y&&n.lockSkewingX)return r;var o=f(n,t)%4;return i[o]+"-resize"},r.scaleSkewCursorStyleHandler=function(e,t,n){return e[n.canvas.altActionKey]?r.skewCursorStyleHandler(e,t,n):r.scaleCursorStyleHandler(e,t,n)},r.rotationWithSnapping=y((function(e,t,n,i){var r=t,o=r.target,a=o.translateToOriginPoint(o.getCenterPoint(),r.originX,r.originY);if(o.lockRotation)return!1;var s,u=Math.atan2(r.ey-a.y,r.ex-a.x),l=Math.atan2(i-a.y,n-a.x),c=d(l-u+r.theta);if(o.snapAngle>0){var h=o.snapAngle,f=o.snapThreshold||h,v=Math.ceil(c/h)*h,g=Math.floor(c/h)*h;Math.abs(c-g)<f?c=g:Math.abs(c-v)<f&&(c=v)}return c<0&&(c=360+c),c%=360,s=o.angle!==c,o.angle=c,s&&p("rotating",_(e,t,n,i)),s})),r.scalingEqually=y((function(e,t,n,i){return x(e,t,n,i)})),r.scalingX=y((function(e,t,n,i){return x(e,t,n,i,{by:"x"})})),r.scalingY=y((function(e,t,n,i){return x(e,t,n,i,{by:"y"})})),r.scalingYOrSkewingX=function(e,t,n,i){return e[t.target.canvas.altActionKey]?r.skewHandlerX(e,t,n,i):r.scalingY(e,t,n,i)},r.scalingXOrSkewingY=function(e,t,n,i){return e[t.target.canvas.altActionKey]?r.skewHandlerY(e,t,n,i):r.scalingX(e,t,n,i)},r.changeWidth=y((function(e,t,n,i){var r,o=t.target,a=b(t,t.originX,t.originY,n,i),s=o.strokeWidth/(o.strokeUniform?o.scaleX:1),u=g(t)?2:1,l=o.width,c=Math.abs(a.x*u/o.scaleX)-s;return o.set("width",Math.max(c,0)),(r=l!==c)&&p("resizing",_(e,t,n,i)),r})),r.skewHandlerX=function(e,t,n,i){var r,u=t.target,c=u.skewX,d=t.originY;return!u.lockSkewingX&&(0===c?r=b(t,l,l,n,i).x>0?o:s:(c>0&&(r=d===a?o:s),c<0&&(r=d===a?s:o),w(u)&&(r=r===o?s:o)),t.originX=r,y(k)(e,t,n,i))},r.skewHandlerY=function(e,t,n,i){var r,s=t.target,c=s.skewY,d=t.originX;return!s.lockSkewingY&&(0===c?r=b(t,l,l,n,i).y>0?a:u:(c>0&&(r=d===o?a:u),c<0&&(r=d===o?u:a),w(s)&&(r=r===a?u:a)),t.originY=r,y(S)(e,t,n,i))},r.dragHandler=function(e,t,n,i){var r=t.target,o=n-t.offsetX,a=i-t.offsetY,s=!r.get("lockMovementX")&&r.left!==o,u=!r.get("lockMovementY")&&r.top!==a;return s&&r.set("left",o),u&&r.set("top",a),(s||u)&&p("moving",_(e,t,n,i)),s||u},r.scaleOrSkewActionName=function(e,t,n){var i=e[n.canvas.altActionKey];return 0===t.x?i?"skewX":"scaleY":0===t.y?i?"skewY":"scaleX":void 0},r.rotationStyleHandler=function(e,t,n){return n.lockRotation?"not-allowed":t.cursorStyle},r.fireEvent=p,r.wrapWithFixedAnchor=y,r.getLocalPoint=b,t.controlsUtils=r}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.degreesToRadians,i=t.controlsUtils;i.renderCircleControl=function(e,t,n,i,r){var o=(i=i||{}).cornerSize||r.cornerSize,a="undefined"!==typeof i.transparentCorners?i.transparentCorners:this.transparentCorners,s=a?"stroke":"fill",u=!a&&(i.cornerStrokeColor||r.cornerStrokeColor);e.save(),e.fillStyle=i.cornerColor||r.cornerColor,e.strokeStyle=i.cornerStrokeColor||r.cornerStrokeColor,e.lineWidth=1,e.beginPath(),e.arc(t,n,o/2,0,2*Math.PI,!1),e[s](),u&&e.stroke(),e.restore()},i.renderSquareControl=function(e,t,i,r,o){var a=(r=r||{}).cornerSize||o.cornerSize,s="undefined"!==typeof r.transparentCorners?r.transparentCorners:o.transparentCorners,u=s?"stroke":"fill",l=!s&&(r.cornerStrokeColor||o.cornerStrokeColor),c=a/2;e.save(),e.fillStyle=r.cornerColor||o.cornerColor,e.strokeStyle=r.strokeCornerColor||o.strokeCornerColor,e.lineWidth=1,e.translate(t,i),e.rotate(n(o.angle)),e[u+"Rect"](-c,-c,a,a),l&&e.strokeRect(-c,-c,a,a),e.restore()}}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});t.Control=function(e){for(var t in e)this[t]=e[t]},t.Control.prototype={visible:!0,actionName:"scale",angle:0,x:0,y:0,offsetX:0,offsetY:0,cursorStyle:"crosshair",withConnection:!1,actionHandler:function(){},mouseDownHandler:function(){},mouseUpHandler:function(){},getActionHandler:function(){return this.actionHandler},getMouseDownHandler:function(){return this.mouseDownHandler},getMouseUpHandler:function(){return this.mouseUpHandler},cursorStyleHandler:function(e,t){return t.cursorStyle},getActionName:function(e,t){return t.actionName},getVisibility:function(e,t){var n=e._controlsVisibility;return n&&"undefined"!==typeof n[t]?n[t]:this.visible},setVisibility:function(e){this.visible=e},positionHandler:function(e,n){return t.util.transformPoint({x:this.x*e.x+this.offsetX,y:this.y*e.y+this.offsetY},n)},render:function(e,n,i,r,o){if("circle"===((r=r||{}).cornerStyle||o.cornerStyle))t.controlsUtils.renderCircleControl.call(this,e,n,i,r,o);else t.controlsUtils.renderSquareControl.call(this,e,n,i,r,o)}}}(t),function(){function e(e,t){var n,i,o,a,s=e.getAttribute("style"),u=e.getAttribute("offset")||0;if(u=(u=parseFloat(u)/(/%$/.test(u)?100:1))<0?0:u>1?1:u,s){var l=s.split(/\s*;\s*/);for(""===l[l.length-1]&&l.pop(),a=l.length;a--;){var c=l[a].split(/\s*:\s*/),d=c[0].trim(),h=c[1].trim();"stop-color"===d?n=h:"stop-opacity"===d&&(o=h)}}return n||(n=e.getAttribute("stop-color")||"rgb(0,0,0)"),o||(o=e.getAttribute("stop-opacity")),i=(n=new r.Color(n)).getAlpha(),o=isNaN(parseFloat(o))?1:parseFloat(o),o*=i*t,{offset:u,color:n.toRgb(),opacity:o}}var t=r.util.object.clone;r.Gradient=r.util.createClass({offsetX:0,offsetY:0,gradientTransform:null,gradientUnits:"pixels",type:"linear",initialize:function(e){e||(e={}),e.coords||(e.coords={});var t,n=this;Object.keys(e).forEach((function(t){n[t]=e[t]})),this.id?this.id+="_"+r.Object.__uid++:this.id=r.Object.__uid++,t={x1:e.coords.x1||0,y1:e.coords.y1||0,x2:e.coords.x2||0,y2:e.coords.y2||0},"radial"===this.type&&(t.r1=e.coords.r1||0,t.r2=e.coords.r2||0),this.coords=t,this.colorStops=e.colorStops.slice()},addColorStop:function(e){for(var t in e){var n=new r.Color(e[t]);this.colorStops.push({offset:parseFloat(t),color:n.toRgb(),opacity:n.getAlpha()})}return this},toObject:function(e){var t={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return r.util.populateWithProperties(this,t,e),t},toSVG:function(e,n){var i,o,a,s,u=t(this.coords,!0),l=(n=n||{},t(this.colorStops,!0)),c=u.r1>u.r2,d=this.gradientTransform?this.gradientTransform.concat():r.iMatrix.concat(),h=-this.offsetX,f=-this.offsetY,p=!!n.additionalTransform,v="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox";if(l.sort((function(e,t){return e.offset-t.offset})),"objectBoundingBox"===v?(h/=e.width,f/=e.height):(h+=e.width/2,f+=e.height/2),"path"===e.type&&(h-=e.pathOffset.x,f-=e.pathOffset.y),d[4]-=h,d[5]-=f,s='id="SVGID_'+this.id+'" gradientUnits="'+v+'"',s+=' gradientTransform="'+(p?n.additionalTransform+" ":"")+r.util.matrixToSVG(d)+'" ',"linear"===this.type?a=["<linearGradient ",s,' x1="',u.x1,'" y1="',u.y1,'" x2="',u.x2,'" y2="',u.y2,'">\n']:"radial"===this.type&&(a=["<radialGradient ",s,' cx="',c?u.x1:u.x2,'" cy="',c?u.y1:u.y2,'" r="',c?u.r1:u.r2,'" fx="',c?u.x2:u.x1,'" fy="',c?u.y2:u.y1,'">\n']),"radial"===this.type){if(c)for((l=l.concat()).reverse(),i=0,o=l.length;i<o;i++)l[i].offset=1-l[i].offset;var g=Math.min(u.r1,u.r2);if(g>0){var m=g/Math.max(u.r1,u.r2);for(i=0,o=l.length;i<o;i++)l[i].offset+=m*(1-l[i].offset)}}for(i=0,o=l.length;i<o;i++){var _=l[i];a.push("<stop ",'offset="',100*_.offset+"%",'" style="stop-color:',_.color,"undefined"!==typeof _.opacity?";stop-opacity: "+_.opacity:";",'"/>\n')}return a.push("linear"===this.type?"</linearGradient>\n":"</radialGradient>\n"),a.join("")},toLive:function(e){var t,n,i,o=r.util.object.clone(this.coords);if(this.type){for("linear"===this.type?t=e.createLinearGradient(o.x1,o.y1,o.x2,o.y2):"radial"===this.type&&(t=e.createRadialGradient(o.x1,o.y1,o.r1,o.x2,o.y2,o.r2)),n=0,i=this.colorStops.length;n<i;n++){var a=this.colorStops[n].color,s=this.colorStops[n].opacity,u=this.colorStops[n].offset;"undefined"!==typeof s&&(a=new r.Color(a).setAlpha(s).toRgba()),t.addColorStop(u,a)}return t}}}),r.util.object.extend(r.Gradient,{fromElement:function(t,n,i,o){var a=parseFloat(i)/(/%$/.test(i)?100:1);a=a<0?0:a>1?1:a,isNaN(a)&&(a=1);var s,u,l,c,d=t.getElementsByTagName("stop"),h="userSpaceOnUse"===t.getAttribute("gradientUnits")?"pixels":"percentage",f=t.getAttribute("gradientTransform")||"",p=[],v=0,g=0;for("linearGradient"===t.nodeName||"LINEARGRADIENT"===t.nodeName?(s="linear",u=function(e){return{x1:e.getAttribute("x1")||0,y1:e.getAttribute("y1")||0,x2:e.getAttribute("x2")||"100%",y2:e.getAttribute("y2")||0}}(t)):(s="radial",u=function(e){return{x1:e.getAttribute("fx")||e.getAttribute("cx")||"50%",y1:e.getAttribute("fy")||e.getAttribute("cy")||"50%",r1:0,x2:e.getAttribute("cx")||"50%",y2:e.getAttribute("cy")||"50%",r2:e.getAttribute("r")||"50%"}}(t)),l=d.length;l--;)p.push(e(d[l],a));return c=r.parseTransformAttribute(f),function(e,t,n,i){var r,o;Object.keys(t).forEach((function(e){"Infinity"===(r=t[e])?o=1:"-Infinity"===r?o=0:(o=parseFloat(t[e],10),"string"===typeof r&&/^(\d+\.\d+)%|(\d+)%$/.test(r)&&(o*=.01,"pixels"===i&&("x1"!==e&&"x2"!==e&&"r2"!==e||(o*=n.viewBoxWidth||n.width),"y1"!==e&&"y2"!==e||(o*=n.viewBoxHeight||n.height)))),t[e]=o}))}(0,u,o,h),"pixels"===h&&(v=-n.left,g=-n.top),new r.Gradient({id:t.getAttribute("id"),type:s,coords:u,colorStops:p,gradientUnits:h,gradientTransform:c,offsetX:v,offsetY:g})}})}(),function(){"use strict";var e=r.util.toFixed;r.Pattern=r.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(e,t){if(e||(e={}),this.id=r.Object.__uid++,this.setOptions(e),!e.source||e.source&&"string"!==typeof e.source)t&&t(this);else{var n=this;this.source=r.util.createImage(),r.util.loadImage(e.source,(function(e,i){n.source=e,t&&t(n,i)}),null,this.crossOrigin)}},toObject:function(t){var n,i,o=r.Object.NUM_FRACTION_DIGITS;return"string"===typeof this.source.src?n=this.source.src:"object"===typeof this.source&&this.source.toDataURL&&(n=this.source.toDataURL()),i={type:"pattern",source:n,repeat:this.repeat,crossOrigin:this.crossOrigin,offsetX:e(this.offsetX,o),offsetY:e(this.offsetY,o),patternTransform:this.patternTransform?this.patternTransform.concat():null},r.util.populateWithProperties(this,i,t),i},toSVG:function(e){var t="function"===typeof this.source?this.source():this.source,n=t.width/e.width,i=t.height/e.height,r=this.offsetX/e.width,o=this.offsetY/e.height,a="";return"repeat-x"!==this.repeat&&"no-repeat"!==this.repeat||(i=1,o&&(i+=Math.abs(o))),"repeat-y"!==this.repeat&&"no-repeat"!==this.repeat||(n=1,r&&(n+=Math.abs(r))),t.src?a=t.src:t.toDataURL&&(a=t.toDataURL()),'<pattern id="SVGID_'+this.id+'" x="'+r+'" y="'+o+'" width="'+n+'" height="'+i+'">\n<image x="0" y="0" width="'+t.width+'" height="'+t.height+'" xlink:href="'+a+'"></image>\n</pattern>\n'},setOptions:function(e){for(var t in e)this[t]=e[t]},toLive:function(e){var t=this.source;if(!t)return"";if("undefined"!==typeof t.src){if(!t.complete)return"";if(0===t.naturalWidth||0===t.naturalHeight)return""}return e.createPattern(t,this.repeat)}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;t.Shadow?t.warn("fabric.Shadow is already defined."):(t.Shadow=t.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1,initialize:function(e){for(var n in"string"===typeof e&&(e=this._parseShadow(e)),e)this[n]=e[n];this.id=t.Object.__uid++},_parseShadow:function(e){var n=e.trim(),i=t.Shadow.reOffsetsAndBlur.exec(n)||[];return{color:(n.replace(t.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)").trim(),offsetX:parseInt(i[1],10)||0,offsetY:parseInt(i[2],10)||0,blur:parseInt(i[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(e){var i=40,r=40,o=t.Object.NUM_FRACTION_DIGITS,a=t.util.rotateVector({x:this.offsetX,y:this.offsetY},t.util.degreesToRadians(-e.angle)),s=new t.Color(this.color);return e.width&&e.height&&(i=100*n((Math.abs(a.x)+this.blur)/e.width,o)+20,r=100*n((Math.abs(a.y)+this.blur)/e.height,o)+20),e.flipX&&(a.x*=-1),e.flipY&&(a.y*=-1),'<filter id="SVGID_'+this.id+'" y="-'+r+'%" height="'+(100+2*r)+'%" x="-'+i+'%" width="'+(100+2*i)+'%" >\n\t<feGaussianBlur in="SourceAlpha" stdDeviation="'+n(this.blur?this.blur/2:0,o)+'"></feGaussianBlur>\n\t<feOffset dx="'+n(a.x,o)+'" dy="'+n(a.y,o)+'" result="oBlur" ></feOffset>\n\t<feFlood flood-color="'+s.toRgb()+'" flood-opacity="'+s.getAlpha()+'"/>\n\t<feComposite in2="oBlur" operator="in" />\n\t<feMerge>\n\t\t<feMergeNode></feMergeNode>\n\t\t<feMergeNode in="SourceGraphic"></feMergeNode>\n\t</feMerge>\n</filter>\n'},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var e={},n=t.Shadow.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach((function(t){this[t]!==n[t]&&(e[t]=this[t])}),this),e}}),t.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:px)?(?:\s?|$))?(-?\d+(?:px)?(?:\s?|$))?(\d+(?:px)?)?(?:\s?|$)(?:$|\s)/)}(t),function(){"use strict";if(r.StaticCanvas)r.warn("fabric.StaticCanvas is already defined.");else{var e=r.util.object.extend,t=r.util.getElementOffset,n=r.util.removeFromArray,i=r.util.toFixed,o=r.util.transformPoint,a=r.util.invertTransform,s=r.util.getNodeCanvas,u=r.util.createCanvasElement,l=new Error("Could not initialize `canvas` element");r.StaticCanvas=r.util.createClass(r.CommonMethods,{initialize:function(e,t){t||(t={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(e,t)},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!1,renderOnAddRemove:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,viewportTransform:r.iMatrix.concat(),backgroundVpt:!0,overlayVpt:!0,enableRetinaScaling:!0,vptCoords:{},skipOffscreen:!0,clipPath:void 0,_initStatic:function(e,t){var n=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(e),this._initOptions(t),this.interactive||this._initRetinaScaling(),t.overlayImage&&this.setOverlayImage(t.overlayImage,n),t.backgroundImage&&this.setBackgroundImage(t.backgroundImage,n),t.backgroundColor&&this.setBackgroundColor(t.backgroundColor,n),t.overlayColor&&this.setOverlayColor(t.overlayColor,n),this.calcOffset()},_isRetinaScaling:function(){return 1!==r.devicePixelRatio&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?r.devicePixelRatio:1},_initRetinaScaling:function(){if(this._isRetinaScaling()){var e=r.devicePixelRatio;this.__initRetinaScaling(e,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(e,this.upperCanvasEl,this.contextTop)}},__initRetinaScaling:function(e,t,n){t.setAttribute("width",this.width*e),t.setAttribute("height",this.height*e),n.scale(e,e)},calcOffset:function(){return this._offset=t(this.lowerCanvasEl),this},setOverlayImage:function(e,t,n){return this.__setBgOverlayImage("overlayImage",e,t,n)},setBackgroundImage:function(e,t,n){return this.__setBgOverlayImage("backgroundImage",e,t,n)},setOverlayColor:function(e,t){return this.__setBgOverlayColor("overlayColor",e,t)},setBackgroundColor:function(e,t){return this.__setBgOverlayColor("backgroundColor",e,t)},__setBgOverlayImage:function(e,t,n,i){return"string"===typeof t?r.util.loadImage(t,(function(t,o){if(t){var a=new r.Image(t,i);this[e]=a,a.canvas=this}n&&n(t,o)}),this,i&&i.crossOrigin):(i&&t.setOptions(i),this[e]=t,t&&(t.canvas=this),n&&n(t,!1)),this},__setBgOverlayColor:function(e,t,n){return this[e]=t,this._initGradient(t,e),this._initPattern(t,e,n),this},_createCanvasElement:function(){var e=u();if(!e)throw l;if(e.style||(e.style={}),"undefined"===typeof e.getContext)throw l;return e},_initOptions:function(e){var t=this.lowerCanvasEl;this._setOptions(e),this.width=this.width||parseInt(t.width,10)||0,this.height=this.height||parseInt(t.height,10)||0,this.lowerCanvasEl.style&&(t.width=this.width,t.height=this.height,t.style.width=this.width+"px",t.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(e){e&&e.getContext?this.lowerCanvasEl=e:this.lowerCanvasEl=r.util.getById(e)||this._createCanvasElement(),r.util.addClass(this.lowerCanvasEl,"lower-canvas"),this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(e,t){return this.setDimensions({width:e},t)},setHeight:function(e,t){return this.setDimensions({height:e},t)},setDimensions:function(e,t){var n;for(var i in t=t||{},e)n=e[i],t.cssOnly||(this._setBackstoreDimension(i,e[i]),n+="px",this.hasLostContext=!0),t.backstoreOnly||this._setCssDimension(i,n);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(),this._initRetinaScaling(),this.calcOffset(),t.cssOnly||this.requestRenderAll(),this},_setBackstoreDimension:function(e,t){return this.lowerCanvasEl[e]=t,this.upperCanvasEl&&(this.upperCanvasEl[e]=t),this.cacheCanvasEl&&(this.cacheCanvasEl[e]=t),this[e]=t,this},_setCssDimension:function(e,t){return this.lowerCanvasEl.style[e]=t,this.upperCanvasEl&&(this.upperCanvasEl.style[e]=t),this.wrapperEl&&(this.wrapperEl.style[e]=t),this},getZoom:function(){return this.viewportTransform[0]},setViewportTransform:function(e){var t,n,i,r=this._activeObject;for(this.viewportTransform=e,n=0,i=this._objects.length;n<i;n++)(t=this._objects[n]).group||t.setCoords(!0);return r&&r.setCoords(),this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll(),this},zoomToPoint:function(e,t){var n=e,i=this.viewportTransform.slice(0);e=o(e,a(this.viewportTransform)),i[0]=t,i[3]=t;var r=o(e,i);return i[4]+=n.x-r.x,i[5]+=n.y-r.y,this.setViewportTransform(i)},setZoom:function(e){return this.zoomToPoint(new r.Point(0,0),e),this},absolutePan:function(e){var t=this.viewportTransform.slice(0);return t[4]=-e.x,t[5]=-e.y,this.setViewportTransform(t)},relativePan:function(e){return this.absolutePan(new r.Point(-e.x-this.viewportTransform[4],-e.y-this.viewportTransform[5]))},getElement:function(){return this.lowerCanvasEl},_onObjectAdded:function(e){this.stateful&&e.setupState(),e._set("canvas",this),e.setCoords(),this.fire("object:added",{target:e}),e.fire("added")},_onObjectRemoved:function(e){this.fire("object:removed",{target:e}),e.fire("removed"),delete e.canvas},clearContext:function(e){return e.clearRect(0,0,this.width,this.height),this},getContext:function(){return this.contextContainer},clear:function(){return this._objects.length=0,this.backgroundImage=null,this.overlayImage=null,this.backgroundColor="",this.overlayColor="",this._hasITextHandlers&&(this.off("mouse:up",this._mouseUpITextHandler),this._iTextInstances=null,this._hasITextHandlers=!1),this.clearContext(this.contextContainer),this.fire("canvas:cleared"),this.renderOnAddRemove&&this.requestRenderAll(),this},renderAll:function(){var e=this.contextContainer;return this.renderCanvas(e,this._objects),this},renderAndReset:function(){this.isRendering=0,this.renderAll()},requestRenderAll:function(){return this.isRendering||(this.isRendering=r.util.requestAnimFrame(this.renderAndResetBound)),this},calcViewportBoundaries:function(){var e={},t=this.width,n=this.height,i=a(this.viewportTransform);return e.tl=o({x:0,y:0},i),e.br=o({x:t,y:n},i),e.tr=new r.Point(e.br.x,e.tl.y),e.bl=new r.Point(e.tl.x,e.br.y),this.vptCoords=e,e},cancelRequestedRender:function(){this.isRendering&&(r.util.cancelAnimFrame(this.isRendering),this.isRendering=0)},renderCanvas:function(e,t){var n=this.viewportTransform,i=this.clipPath;this.cancelRequestedRender(),this.calcViewportBoundaries(),this.clearContext(e),r.util.setImageSmoothing(e,this.imageSmoothingEnabled),this.fire("before:render",{ctx:e}),this._renderBackground(e),e.save(),e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),this._renderObjects(e,t),e.restore(),!this.controlsAboveOverlay&&this.interactive&&this.drawControls(e),i&&(i.canvas=this,i.shouldCache(),i._transformDone=!0,i.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(e)),this._renderOverlay(e),this.controlsAboveOverlay&&this.interactive&&this.drawControls(e),this.fire("after:render",{ctx:e})},drawClipPathOnCanvas:function(e){var t=this.viewportTransform,n=this.clipPath;e.save(),e.transform(t[0],t[1],t[2],t[3],t[4],t[5]),e.globalCompositeOperation="destination-in",n.transform(e),e.scale(1/n.zoomX,1/n.zoomY),e.drawImage(n._cacheCanvas,-n.cacheTranslationX,-n.cacheTranslationY),e.restore()},_renderObjects:function(e,t){var n,i;for(n=0,i=t.length;n<i;++n)t[n]&&t[n].render(e)},_renderBackgroundOrOverlay:function(e,t){var n=this[t+"Color"],i=this[t+"Image"],r=this.viewportTransform,o=this[t+"Vpt"];if(n||i){if(n){e.save(),e.beginPath(),e.moveTo(0,0),e.lineTo(this.width,0),e.lineTo(this.width,this.height),e.lineTo(0,this.height),e.closePath(),e.fillStyle=n.toLive?n.toLive(e,this):n,o&&e.transform(r[0],r[1],r[2],r[3],r[4],r[5]),e.transform(1,0,0,1,n.offsetX||0,n.offsetY||0);var a=n.gradientTransform||n.patternTransform;a&&e.transform(a[0],a[1],a[2],a[3],a[4],a[5]),e.fill(),e.restore()}i&&(e.save(),o&&e.transform(r[0],r[1],r[2],r[3],r[4],r[5]),i.render(e),e.restore())}},_renderBackground:function(e){this._renderBackgroundOrOverlay(e,"background")},_renderOverlay:function(e){this._renderBackgroundOrOverlay(e,"overlay")},getCenter:function(){return{top:this.height/2,left:this.width/2}},centerObjectH:function(e){return this._centerObject(e,new r.Point(this.getCenter().left,e.getCenterPoint().y))},centerObjectV:function(e){return this._centerObject(e,new r.Point(e.getCenterPoint().x,this.getCenter().top))},centerObject:function(e){var t=this.getCenter();return this._centerObject(e,new r.Point(t.left,t.top))},viewportCenterObject:function(e){var t=this.getVpCenter();return this._centerObject(e,t)},viewportCenterObjectH:function(e){var t=this.getVpCenter();return this._centerObject(e,new r.Point(t.x,e.getCenterPoint().y)),this},viewportCenterObjectV:function(e){var t=this.getVpCenter();return this._centerObject(e,new r.Point(e.getCenterPoint().x,t.y))},getVpCenter:function(){var e=this.getCenter(),t=a(this.viewportTransform);return o({x:e.left,y:e.top},t)},_centerObject:function(e,t){return e.setPositionByOrigin(t,"center","center"),e.setCoords(),this.renderOnAddRemove&&this.requestRenderAll(),this},toDatalessJSON:function(e){return this.toDatalessObject(e)},toObject:function(e){return this._toObjectMethod("toObject",e)},toDatalessObject:function(e){return this._toObjectMethod("toDatalessObject",e)},_toObjectMethod:function(t,n){var i=this.clipPath,o={version:r.version,objects:this._toObjects(t,n)};return i&&(o.clipPath=this._toObject(this.clipPath,t,n)),e(o,this.__serializeBgOverlay(t,n)),r.util.populateWithProperties(this,o,n),o},_toObjects:function(e,t){return this._objects.filter((function(e){return!e.excludeFromExport})).map((function(n){return this._toObject(n,e,t)}),this)},_toObject:function(e,t,n){var i;this.includeDefaultValues||(i=e.includeDefaultValues,e.includeDefaultValues=!1);var r=e[t](n);return this.includeDefaultValues||(e.includeDefaultValues=i),r},__serializeBgOverlay:function(e,t){var n={},i=this.backgroundImage,r=this.overlayImage;return this.backgroundColor&&(n.background=this.backgroundColor.toObject?this.backgroundColor.toObject(t):this.backgroundColor),this.overlayColor&&(n.overlay=this.overlayColor.toObject?this.overlayColor.toObject(t):this.overlayColor),i&&!i.excludeFromExport&&(n.backgroundImage=this._toObject(i,e,t)),r&&!r.excludeFromExport&&(n.overlayImage=this._toObject(r,e,t)),n},svgViewportTransformation:!0,toSVG:function(e,t){e||(e={}),e.reviver=t;var n=[];return this._setSVGPreamble(n,e),this._setSVGHeader(n,e),this.clipPath&&n.push('<g clip-path="url(#'+this.clipPath.clipPathId+')" >\n'),this._setSVGBgOverlayColor(n,"background"),this._setSVGBgOverlayImage(n,"backgroundImage",t),this._setSVGObjects(n,t),this.clipPath&&n.push("</g>\n"),this._setSVGBgOverlayColor(n,"overlay"),this._setSVGBgOverlayImage(n,"overlayImage",t),n.push("</svg>"),n.join("")},_setSVGPreamble:function(e,t){t.suppressPreamble||e.push('<?xml version="1.0" encoding="',t.encoding||"UTF-8",'" standalone="no" ?>\n','<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ','"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')},_setSVGHeader:function(e,t){var n,o=t.width||this.width,a=t.height||this.height,s='viewBox="0 0 '+this.width+" "+this.height+'" ',u=r.Object.NUM_FRACTION_DIGITS;t.viewBox?s='viewBox="'+t.viewBox.x+" "+t.viewBox.y+" "+t.viewBox.width+" "+t.viewBox.height+'" ':this.svgViewportTransformation&&(n=this.viewportTransform,s='viewBox="'+i(-n[4]/n[0],u)+" "+i(-n[5]/n[3],u)+" "+i(this.width/n[0],u)+" "+i(this.height/n[3],u)+'" '),e.push("<svg ",'xmlns="http://www.w3.org/2000/svg" ','xmlns:xlink="http://www.w3.org/1999/xlink" ','version="1.1" ','width="',o,'" ','height="',a,'" ',s,'xml:space="preserve">\n',"<desc>Created with Fabric.js ",r.version,"</desc>\n","<defs>\n",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(t),"</defs>\n")},createSVGClipPathMarkup:function(e){var t=this.clipPath;return t?(t.clipPathId="CLIPPATH_"+r.Object.__uid++,'<clipPath id="'+t.clipPathId+'" >\n'+this.clipPath.toClipPathSVG(e.reviver)+"</clipPath>\n"):""},createSVGRefElementsMarkup:function(){var e=this;return["background","overlay"].map((function(t){var n=e[t+"Color"];if(n&&n.toLive){var i=e[t+"Vpt"],o=e.viewportTransform,a={width:e.width/(i?o[0]:1),height:e.height/(i?o[3]:1)};return n.toSVG(a,{additionalTransform:i?r.util.matrixToSVG(o):""})}})).join("")},createSVGFontFacesMarkup:function(){var e,t,n,i,o,a,s,u,l="",c={},d=r.fontPaths,h=[];for(this._objects.forEach((function e(t){h.push(t),t._objects&&t._objects.forEach(e)})),s=0,u=h.length;s<u;s++)if(t=(e=h[s]).fontFamily,-1!==e.type.indexOf("text")&&!c[t]&&d[t]&&(c[t]=!0,e.styles))for(o in n=e.styles)for(a in i=n[o])!c[t=i[a].fontFamily]&&d[t]&&(c[t]=!0);for(var f in c)l+=["\t\t@font-face {\n","\t\t\tfont-family: '",f,"';\n","\t\t\tsrc: url('",d[f],"');\n","\t\t}\n"].join("");return l&&(l=['\t<style type="text/css">',"<![CDATA[\n",l,"]]>","</style>\n"].join("")),l},_setSVGObjects:function(e,t){var n,i,r,o=this._objects;for(i=0,r=o.length;i<r;i++)(n=o[i]).excludeFromExport||this._setSVGObject(e,n,t)},_setSVGObject:function(e,t,n){e.push(t.toSVG(n))},_setSVGBgOverlayImage:function(e,t,n){this[t]&&!this[t].excludeFromExport&&this[t].toSVG&&e.push(this[t].toSVG(n))},_setSVGBgOverlayColor:function(e,t){var n=this[t+"Color"],i=this.viewportTransform,o=this.width,a=this.height;if(n)if(n.toLive){var s=n.repeat,u=r.util.invertTransform(i),l=this[t+"Vpt"]?r.util.matrixToSVG(u):"";e.push('<rect transform="'+l+" translate(",o/2,",",a/2,')"',' x="',n.offsetX-o/2,'" y="',n.offsetY-a/2,'" ','width="',"repeat-y"===s||"no-repeat"===s?n.source.width:o,'" height="',"repeat-x"===s||"no-repeat"===s?n.source.height:a,'" fill="url(#SVGID_'+n.id+')"',"></rect>\n")}else e.push('<rect x="0" y="0" width="100%" height="100%" ','fill="',n,'"',"></rect>\n")},sendToBack:function(e){if(!e)return this;var t,i,r,o=this._activeObject;if(e===o&&"activeSelection"===e.type)for(t=(r=o._objects).length;t--;)i=r[t],n(this._objects,i),this._objects.unshift(i);else n(this._objects,e),this._objects.unshift(e);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(e){if(!e)return this;var t,i,r,o=this._activeObject;if(e===o&&"activeSelection"===e.type)for(r=o._objects,t=0;t<r.length;t++)i=r[t],n(this._objects,i),this._objects.push(i);else n(this._objects,e),this._objects.push(e);return this.renderOnAddRemove&&this.requestRenderAll(),this},sendBackwards:function(e,t){if(!e)return this;var i,r,o,a,s,u=this._activeObject,l=0;if(e===u&&"activeSelection"===e.type)for(s=u._objects,i=0;i<s.length;i++)r=s[i],(o=this._objects.indexOf(r))>0+l&&(a=o-1,n(this._objects,r),this._objects.splice(a,0,r)),l++;else 0!==(o=this._objects.indexOf(e))&&(a=this._findNewLowerIndex(e,o,t),n(this._objects,e),this._objects.splice(a,0,e));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewLowerIndex:function(e,t,n){var i,r;if(n)for(i=t,r=t-1;r>=0;--r){if(e.intersectsWithObject(this._objects[r])||e.isContainedWithinObject(this._objects[r])||this._objects[r].isContainedWithinObject(e)){i=r;break}}else i=t-1;return i},bringForward:function(e,t){if(!e)return this;var i,r,o,a,s,u=this._activeObject,l=0;if(e===u&&"activeSelection"===e.type)for(i=(s=u._objects).length;i--;)r=s[i],(o=this._objects.indexOf(r))<this._objects.length-1-l&&(a=o+1,n(this._objects,r),this._objects.splice(a,0,r)),l++;else(o=this._objects.indexOf(e))!==this._objects.length-1&&(a=this._findNewUpperIndex(e,o,t),n(this._objects,e),this._objects.splice(a,0,e));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewUpperIndex:function(e,t,n){var i,r,o;if(n)for(i=t,r=t+1,o=this._objects.length;r<o;++r){if(e.intersectsWithObject(this._objects[r])||e.isContainedWithinObject(this._objects[r])||this._objects[r].isContainedWithinObject(e)){i=r;break}}else i=t+1;return i},moveTo:function(e,t){return n(this._objects,e),this._objects.splice(t,0,e),this.renderOnAddRemove&&this.requestRenderAll()},dispose:function(){return this.isRendering&&(r.util.cancelAnimFrame(this.isRendering),this.isRendering=0),this.forEachObject((function(e){e.dispose&&e.dispose()})),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose&&this.backgroundImage.dispose(),this.backgroundImage=null,this.overlayImage&&this.overlayImage.dispose&&this.overlayImage.dispose(),this.overlayImage=null,this._iTextInstances=null,this.contextContainer=null,r.util.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0,this},toString:function(){return"#<fabric.Canvas ("+this.complexity()+"): { objects: "+this._objects.length+" }>"}}),e(r.StaticCanvas.prototype,r.Observable),e(r.StaticCanvas.prototype,r.Collection),e(r.StaticCanvas.prototype,r.DataURLExporter),e(r.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(e){var t=u();if(!t||!t.getContext)return null;var n=t.getContext("2d");return n&&"setLineDash"===e?"undefined"!==typeof n.setLineDash:null}}),r.StaticCanvas.prototype.toJSON=r.StaticCanvas.prototype.toObject,r.isLikelyNode&&(r.StaticCanvas.prototype.createPNGStream=function(){var e=s(this.lowerCanvasEl);return e&&e.createPNGStream()},r.StaticCanvas.prototype.createJPEGStream=function(e){var t=s(this.lowerCanvasEl);return t&&t.createJPEGStream(e)})}}(),r.BaseBrush=r.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,_setBrushStyles:function(){var e=this.canvas.contextTop;e.strokeStyle=this.color,e.lineWidth=this.width,e.lineCap=this.strokeLineCap,e.miterLimit=this.strokeMiterLimit,e.lineJoin=this.strokeLineJoin,r.StaticCanvas.supports("setLineDash")&&e.setLineDash(this.strokeDashArray||[])},_saveAndTransform:function(e){var t=this.canvas.viewportTransform;e.save(),e.transform(t[0],t[1],t[2],t[3],t[4],t[5])},_setShadow:function(){if(this.shadow){var e=this.canvas,t=this.shadow,n=e.contextTop,i=e.getZoom();e&&e._isRetinaScaling()&&(i*=r.devicePixelRatio),n.shadowColor=t.color,n.shadowBlur=t.blur*i,n.shadowOffsetX=t.offsetX*i,n.shadowOffsetY=t.offsetY*i}},needsFullRender:function(){return new r.Color(this.color).getAlpha()<1||!!this.shadow},_resetShadow:function(){var e=this.canvas.contextTop;e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0}}),r.PencilBrush=r.util.createClass(r.BaseBrush,{decimate:.4,initialize:function(e){this.canvas=e,this._points=[]},_drawSegment:function(e,t,n){var i=t.midPointFrom(n);return e.quadraticCurveTo(t.x,t.y,i.x,i.y),i},onMouseDown:function(e,t){this.canvas._isMainEvent(t.e)&&(this._prepareForDrawing(e),this._captureDrawingPath(e),this._render())},onMouseMove:function(e,t){if(this.canvas._isMainEvent(t.e)&&this._captureDrawingPath(e)&&this._points.length>1)if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var n=this._points,i=n.length,r=this.canvas.contextTop;this._saveAndTransform(r),this.oldEnd&&(r.beginPath(),r.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(r,n[i-2],n[i-1],!0),r.stroke(),r.restore()}},onMouseUp:function(e){return!this.canvas._isMainEvent(e.e)||(this.oldEnd=void 0,this._finalizeAndAddPath(),!1)},_prepareForDrawing:function(e){var t=new r.Point(e.x,e.y);this._reset(),this._addPoint(t),this.canvas.contextTop.moveTo(t.x,t.y)},_addPoint:function(e){return!(this._points.length>1&&e.eq(this._points[this._points.length-1]))&&(this._points.push(e),!0)},_reset:function(){this._points=[],this._setBrushStyles(),this._setShadow()},_captureDrawingPath:function(e){var t=new r.Point(e.x,e.y);return this._addPoint(t)},_render:function(){var e,t,n=this.canvas.contextTop,i=this._points[0],o=this._points[1];if(this._saveAndTransform(n),n.beginPath(),2===this._points.length&&i.x===o.x&&i.y===o.y){var a=this.width/1e3;i=new r.Point(i.x,i.y),o=new r.Point(o.x,o.y),i.x-=a,o.x+=a}for(n.moveTo(i.x,i.y),e=1,t=this._points.length;e<t;e++)this._drawSegment(n,i,o),i=this._points[e],o=this._points[e+1];n.lineTo(i.x,i.y),n.stroke(),n.restore()},convertPointsToSVGPath:function(e){var t,n=[],i=this.width/1e3,o=new r.Point(e[0].x,e[0].y),a=new r.Point(e[1].x,e[1].y),s=e.length,u=1,l=0,c=s>2;for(c&&(u=e[2].x<a.x?-1:e[2].x===a.x?0:1,l=e[2].y<a.y?-1:e[2].y===a.y?0:1),n.push("M ",o.x-u*i," ",o.y-l*i," "),t=1;t<s;t++){if(!o.eq(a)){var d=o.midPointFrom(a);n.push("Q ",o.x," ",o.y," ",d.x," ",d.y," ")}o=e[t],t+1<e.length&&(a=e[t+1])}return c&&(u=o.x>e[t-2].x?1:o.x===e[t-2].x?0:-1,l=o.y>e[t-2].y?1:o.y===e[t-2].y?0:-1),n.push("L ",o.x+u*i," ",o.y+l*i),n},createPath:function(e){var t=new r.Path(e,{fill:null,stroke:this.color,strokeWidth:this.width,strokeLineCap:this.strokeLineCap,strokeMiterLimit:this.strokeMiterLimit,strokeLineJoin:this.strokeLineJoin,strokeDashArray:this.strokeDashArray});return this.shadow&&(this.shadow.affectStroke=!0,t.shadow=new r.Shadow(this.shadow)),t},decimatePoints:function(e,t){if(e.length<=2)return e;var n,i=this.canvas.getZoom(),o=Math.pow(t/i,2),a=e.length-1,s=e[0],u=[s];for(n=1;n<a;n++)Math.pow(s.x-e[n].x,2)+Math.pow(s.y-e[n].y,2)>=o&&(s=e[n],u.push(s));return 1===u.length&&u.push(new r.Point(u[0].x,u[0].y)),u},_finalizeAndAddPath:function(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var e=this.convertPointsToSVGPath(this._points).join("");if("M 0 0 Q 0 0 0 0 L 0 0"!==e){var t=this.createPath(e);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:t}),this.canvas.add(t),this.canvas.requestRenderAll(),t.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:t})}else this.canvas.requestRenderAll()}}),r.CircleBrush=r.util.createClass(r.BaseBrush,{width:10,initialize:function(e){this.canvas=e,this.points=[]},drawDot:function(e){var t=this.addPoint(e),n=this.canvas.contextTop;this._saveAndTransform(n),this.dot(n,t),n.restore()},dot:function(e,t){e.fillStyle=t.fill,e.beginPath(),e.arc(t.x,t.y,t.radius,0,2*Math.PI,!1),e.closePath(),e.fill()},onMouseDown:function(e){this.points.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(e)},_render:function(){var e,t,n=this.canvas.contextTop,i=this.points;for(this._saveAndTransform(n),e=0,t=i.length;e<t;e++)this.dot(n,i[e]);n.restore()},onMouseMove:function(e){this.needsFullRender()?(this.canvas.clearContext(this.canvas.contextTop),this.addPoint(e),this._render()):this.drawDot(e)},onMouseUp:function(){var e,t,n=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;var i=[];for(e=0,t=this.points.length;e<t;e++){var o=this.points[e],a=new r.Circle({radius:o.radius,left:o.x,top:o.y,originX:"center",originY:"center",fill:o.fill});this.shadow&&(a.shadow=new r.Shadow(this.shadow)),i.push(a)}var s=new r.Group(i);s.canvas=this.canvas,this.canvas.fire("before:path:created",{path:s}),this.canvas.add(s),this.canvas.fire("path:created",{path:s}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=n,this.canvas.requestRenderAll()},addPoint:function(e){var t=new r.Point(e.x,e.y),n=r.util.getRandomInt(Math.max(0,this.width-20),this.width+20)/2,i=new r.Color(this.color).setAlpha(r.util.getRandomInt(0,100)/100).toRgba();return t.radius=n,t.fill=i,this.points.push(t),t}}),r.SprayBrush=r.util.createClass(r.BaseBrush,{width:10,density:20,dotWidth:1,dotWidthVariance:1,randomOpacity:!1,optimizeOverlapping:!0,initialize:function(e){this.canvas=e,this.sprayChunks=[]},onMouseDown:function(e){this.sprayChunks.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.addSprayChunk(e),this.render(this.sprayChunkPoints)},onMouseMove:function(e){this.addSprayChunk(e),this.render(this.sprayChunkPoints)},onMouseUp:function(){var e=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;for(var t=[],n=0,i=this.sprayChunks.length;n<i;n++)for(var o=this.sprayChunks[n],a=0,s=o.length;a<s;a++){var u=new r.Rect({width:o[a].width,height:o[a].width,left:o[a].x+1,top:o[a].y+1,originX:"center",originY:"center",fill:this.color});t.push(u)}this.optimizeOverlapping&&(t=this._getOptimizedRects(t));var l=new r.Group(t);this.shadow&&l.set("shadow",new r.Shadow(this.shadow)),this.canvas.fire("before:path:created",{path:l}),this.canvas.add(l),this.canvas.fire("path:created",{path:l}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=e,this.canvas.requestRenderAll()},_getOptimizedRects:function(e){var t,n,i,r={};for(n=0,i=e.length;n<i;n++)r[t=e[n].left+""+e[n].top]||(r[t]=e[n]);var o=[];for(t in r)o.push(r[t]);return o},render:function(e){var t,n,i=this.canvas.contextTop;for(i.fillStyle=this.color,this._saveAndTransform(i),t=0,n=e.length;t<n;t++){var r=e[t];"undefined"!==typeof r.opacity&&(i.globalAlpha=r.opacity),i.fillRect(r.x,r.y,r.width,r.width)}i.restore()},_render:function(){var e,t,n=this.canvas.contextTop;for(n.fillStyle=this.color,this._saveAndTransform(n),e=0,t=this.sprayChunks.length;e<t;e++)this.render(this.sprayChunks[e]);n.restore()},addSprayChunk:function(e){this.sprayChunkPoints=[];var t,n,i,o,a=this.width/2;for(o=0;o<this.density;o++){t=r.util.getRandomInt(e.x-a,e.x+a),n=r.util.getRandomInt(e.y-a,e.y+a),i=this.dotWidthVariance?r.util.getRandomInt(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):this.dotWidth;var s=new r.Point(t,n);s.width=i,this.randomOpacity&&(s.opacity=r.util.getRandomInt(0,100)/100),this.sprayChunkPoints.push(s)}this.sprayChunks.push(this.sprayChunkPoints)}}),r.PatternBrush=r.util.createClass(r.PencilBrush,{getPatternSrc:function(){var e=r.util.createCanvasElement(),t=e.getContext("2d");return e.width=e.height=25,t.fillStyle=this.color,t.beginPath(),t.arc(10,10,10,0,2*Math.PI,!1),t.closePath(),t.fill(),e},getPatternSrcFunction:function(){return String(this.getPatternSrc).replace("this.color",'"'+this.color+'"')},getPattern:function(){return this.canvas.contextTop.createPattern(this.source||this.getPatternSrc(),"repeat")},_setBrushStyles:function(){this.callSuper("_setBrushStyles"),this.canvas.contextTop.strokeStyle=this.getPattern()},createPath:function(e){var t=this.callSuper("createPath",e),n=t._getLeftTopCoords().scalarAdd(t.strokeWidth/2);return t.stroke=new r.Pattern({source:this.source||this.getPatternSrcFunction(),offsetX:-n.x,offsetY:-n.y}),t}}),function(){var e=r.util.getPointer,t=r.util.degreesToRadians,n=Math.abs,i=r.StaticCanvas.supports("setLineDash"),o=r.util.isTouchEvent,a=.5;for(var s in r.Canvas=r.util.createClass(r.StaticCanvas,{initialize:function(e,t){t||(t={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(e,t),this._initInteractive(),this._createCacheCanvas()},uniformScaling:!0,uniScaleKey:"shiftKey",centeredScaling:!1,centeredRotation:!1,centeredKey:"altKey",altActionKey:"shiftKey",interactive:!0,selection:!0,selectionKey:"shiftKey",altSelectionKey:null,selectionColor:"rgba(100, 100, 255, 0.3)",selectionDashArray:[],selectionBorderColor:"rgba(255, 255, 255, 0.3)",selectionLineWidth:1,selectionFullyContained:!1,hoverCursor:"move",moveCursor:"move",defaultCursor:"default",freeDrawingCursor:"crosshair",rotationCursor:"crosshair",notAllowedCursor:"not-allowed",containerClass:"canvas-container",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,isDrawingMode:!1,preserveObjectStacking:!1,snapAngle:0,snapThreshold:null,stopContextMenu:!1,fireRightClick:!1,fireMiddleClick:!1,targets:[],_hoveredTarget:null,_hoveredTargets:[],_initInteractive:function(){this._currentTransform=null,this._groupSelector=null,this._initWrapperElement(),this._createUpperCanvas(),this._initEventListeners(),this._initRetinaScaling(),this.freeDrawingBrush=r.PencilBrush&&new r.PencilBrush(this),this.calcOffset()},_chooseObjectsToRender:function(){var e,t,n,i=this.getActiveObjects();if(i.length>0&&!this.preserveObjectStacking){t=[],n=[];for(var r=0,o=this._objects.length;r<o;r++)e=this._objects[r],-1===i.indexOf(e)?t.push(e):n.push(e);i.length>1&&(this._activeObject._objects=n),t.push.apply(t,n)}else t=this._objects;return t},renderAll:function(){!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&this.renderTopLayer(this.contextTop);var e=this.contextContainer;return this.renderCanvas(e,this._chooseObjectsToRender()),this},renderTopLayer:function(e){e.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(e),this.contextTopDirty=!0),e.restore()},renderTop:function(){var e=this.contextTop;return this.clearContext(e),this.renderTopLayer(e),this.fire("after:render"),this},_normalizePointer:function(e,t){var n=e.calcTransformMatrix(),i=r.util.invertTransform(n),o=this.restorePointerVpt(t);return r.util.transformPoint(o,i)},isTargetTransparent:function(e,t,n){if(e.shouldCache()&&e._cacheCanvas&&e!==this._activeObject){var i=this._normalizePointer(e,{x:t,y:n}),o=Math.max(e.cacheTranslationX+i.x*e.zoomX,0),a=Math.max(e.cacheTranslationY+i.y*e.zoomY,0);return r.util.isTransparent(e._cacheContext,Math.round(o),Math.round(a),this.targetFindTolerance)}var s=this.contextCache,u=e.selectionBackgroundColor,l=this.viewportTransform;return e.selectionBackgroundColor="",this.clearContext(s),s.save(),s.transform(l[0],l[1],l[2],l[3],l[4],l[5]),e.render(s),s.restore(),e===this._activeObject&&e._renderControls(s,{hasBorders:!1,transparentCorners:!1},{hasBorders:!1}),e.selectionBackgroundColor=u,r.util.isTransparent(s,t,n,this.targetFindTolerance)},_isSelectionKeyPressed:function(e){return"[object Array]"===Object.prototype.toString.call(this.selectionKey)?!!this.selectionKey.find((function(t){return!0===e[t]})):e[this.selectionKey]},_shouldClearSelection:function(e,t){var n=this.getActiveObjects(),i=this._activeObject;return!t||t&&i&&n.length>1&&-1===n.indexOf(t)&&i!==t&&!this._isSelectionKeyPressed(e)||t&&!t.evented||t&&!t.selectable&&i&&i!==t},_shouldCenterTransform:function(e,t,n){var i;if(e)return"scale"===t||"scaleX"===t||"scaleY"===t||"resizing"===t?i=this.centeredScaling||e.centeredScaling:"rotate"===t&&(i=this.centeredRotation||e.centeredRotation),i?!n:n},_getOriginFromCorner:function(e,t){var n={x:e.originX,y:e.originY};return"ml"===t||"tl"===t||"bl"===t?n.x="right":"mr"!==t&&"tr"!==t&&"br"!==t||(n.x="left"),"tl"===t||"mt"===t||"tr"===t?n.y="bottom":"bl"===t||"mb"===t||"br"===t?n.y="top":"mtr"===t&&(n.x="center",n.y="center"),n},_getActionFromCorner:function(e,t,n,i){if(!t||!e)return"drag";var r=i.controls[t];return r.getActionName(n,r,i)},_setupCurrentTransform:function(e,n,i){if(n){var o=this.getPointer(e),a=n.__corner,s=i&&a?n.controls[a].getActionHandler():r.controlsUtils.dragHandler,u=this._getActionFromCorner(i,a,e,n),l=this._getOriginFromCorner(n,a),c=e[this.centeredKey],d={target:n,action:u,actionHandler:s,corner:a,scaleX:n.scaleX,scaleY:n.scaleY,skewX:n.skewX,skewY:n.skewY,offsetX:o.x-n.left,offsetY:o.y-n.top,originX:l.x,originY:l.y,ex:o.x,ey:o.y,lastX:o.x,lastY:o.y,theta:t(n.angle),width:n.width*n.scaleX,shiftKey:e.shiftKey,altKey:c,original:r.util.saveObjectTransform(n)};this._shouldCenterTransform(n,u,c)&&(d.originX="center",d.originY="center"),d.original.originX=l.x,d.original.originY=l.y,this._currentTransform=d,this._beforeTransform(e)}},setCursor:function(e){this.upperCanvasEl.style.cursor=e},_drawSelection:function(e){var t=this._groupSelector,o=t.left,s=t.top,u=n(o),l=n(s);if(this.selectionColor&&(e.fillStyle=this.selectionColor,e.fillRect(t.ex-(o>0?0:-o),t.ey-(s>0?0:-s),u,l)),this.selectionLineWidth&&this.selectionBorderColor)if(e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor,this.selectionDashArray.length>1&&!i){var c=t.ex+a-(o>0?0:u),d=t.ey+a-(s>0?0:l);e.beginPath(),r.util.drawDashedLine(e,c,d,c+u,d,this.selectionDashArray),r.util.drawDashedLine(e,c,d+l-1,c+u,d+l-1,this.selectionDashArray),r.util.drawDashedLine(e,c,d,c,d+l,this.selectionDashArray),r.util.drawDashedLine(e,c+u-1,d,c+u-1,d+l,this.selectionDashArray),e.closePath(),e.stroke()}else r.Object.prototype._setLineDash.call(this,e,this.selectionDashArray),e.strokeRect(t.ex+a-(o>0?0:u),t.ey+a-(s>0?0:l),u,l)},findTarget:function(e,t){if(!this.skipTargetFind){var n,i,r=this.getPointer(e,!0),a=this._activeObject,s=this.getActiveObjects(),u=o(e);if(this.targets=[],s.length>1&&!t&&a===this._searchPossibleTargets([a],r))return a;if(1===s.length&&a._findTargetCorner(r,u))return a;if(1===s.length&&a===this._searchPossibleTargets([a],r)){if(!this.preserveObjectStacking)return a;n=a,i=this.targets,this.targets=[]}var l=this._searchPossibleTargets(this._objects,r);return e[this.altSelectionKey]&&l&&n&&l!==n&&(l=n,this.targets=i),l}},_checkTarget:function(e,t,n){if(t&&t.visible&&t.evented&&(t.containsPoint(e)||t._findTargetCorner(e))){if(!this.perPixelTargetFind&&!t.perPixelTargetFind||t.isEditing)return!0;if(!this.isTargetTransparent(t,n.x,n.y))return!0}},_searchPossibleTargets:function(e,t){for(var n,i,o=e.length;o--;){var a=e[o],s=a.group?this._normalizePointer(a.group,t):t;if(this._checkTarget(s,a,t)){(n=e[o]).subTargetCheck&&n instanceof r.Group&&(i=this._searchPossibleTargets(n._objects,t))&&this.targets.push(i);break}}return n},restorePointerVpt:function(e){return r.util.transformPoint(e,r.util.invertTransform(this.viewportTransform))},getPointer:function(t,n){if(this._absolutePointer&&!n)return this._absolutePointer;if(this._pointer&&n)return this._pointer;var i,r=e(t),o=this.upperCanvasEl,a=o.getBoundingClientRect(),s=a.width||0,u=a.height||0;s&&u||("top"in a&&"bottom"in a&&(u=Math.abs(a.top-a.bottom)),"right"in a&&"left"in a&&(s=Math.abs(a.right-a.left))),this.calcOffset(),r.x=r.x-this._offset.left,r.y=r.y-this._offset.top,n||(r=this.restorePointerVpt(r));var l=this.getRetinaScaling();return 1!==l&&(r.x/=l,r.y/=l),i=0===s||0===u?{width:1,height:1}:{width:o.width/s,height:o.height/u},{x:r.x*i.width,y:r.y*i.height}},_createUpperCanvas:function(){var e=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),t=this.lowerCanvasEl,n=this.upperCanvasEl;n?n.className="":(n=this._createCanvasElement(),this.upperCanvasEl=n),r.util.addClass(n,"upper-canvas "+e),this.wrapperEl.appendChild(n),this._copyCanvasStyle(t,n),this._applyCanvasStyle(n),this.contextTop=n.getContext("2d")},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=r.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),r.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),r.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(e){var t=this.width||e.width,n=this.height||e.height;r.util.setStyle(e,{position:"absolute",width:t+"px",height:n+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),e.width=t,e.height=n,r.util.makeElementUnselectable(e)},_copyCanvasStyle:function(e,t){t.style.cssText=e.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},getActiveObject:function(){return this._activeObject},getActiveObjects:function(){var e=this._activeObject;return e?"activeSelection"===e.type&&e._objects?e._objects.slice(0):[e]:[]},_onObjectRemoved:function(e){e===this._activeObject&&(this.fire("before:selection:cleared",{target:e}),this._discardActiveObject(),this.fire("selection:cleared",{target:e}),e.fire("deselected")),e===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),this.callSuper("_onObjectRemoved",e)},_fireSelectionEvents:function(e,t){var n=!1,i=this.getActiveObjects(),r=[],o=[],a={e:t};e.forEach((function(e){-1===i.indexOf(e)&&(n=!0,e.fire("deselected",a),o.push(e))})),i.forEach((function(t){-1===e.indexOf(t)&&(n=!0,t.fire("selected",a),r.push(t))})),e.length>0&&i.length>0?(a.selected=r,a.deselected=o,a.updated=r[0]||o[0],a.target=this._activeObject,n&&this.fire("selection:updated",a)):i.length>0?(a.selected=r,a.target=this._activeObject,this.fire("selection:created",a)):e.length>0&&(a.deselected=o,this.fire("selection:cleared",a))},setActiveObject:function(e,t){var n=this.getActiveObjects();return this._setActiveObject(e,t),this._fireSelectionEvents(n,t),this},_setActiveObject:function(e,t){return this._activeObject!==e&&(!!this._discardActiveObject(t,e)&&(!e.onSelect({e:t})&&(this._activeObject=e,!0)))},_discardActiveObject:function(e,t){var n=this._activeObject;if(n){if(n.onDeselect({e:e,object:t}))return!1;this._activeObject=null}return!0},discardActiveObject:function(e){var t=this.getActiveObjects(),n=this.getActiveObject();return t.length&&this.fire("before:selection:cleared",{target:n,e:e}),this._discardActiveObject(e),this._fireSelectionEvents(t,e),this},dispose:function(){var e=this.wrapperEl;return this.removeListeners(),e.removeChild(this.upperCanvasEl),e.removeChild(this.lowerCanvasEl),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach(function(e){r.util.cleanUpJsdomNode(this[e]),this[e]=void 0}.bind(this)),e.parentNode&&e.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,r.StaticCanvas.prototype.dispose.call(this),this},clear:function(){return this.discardActiveObject(),this.clearContext(this.contextTop),this.callSuper("clear")},drawControls:function(e){var t=this._activeObject;t&&t._renderControls(e)},_toObject:function(e,t,n){var i=this._realizeGroupTransformOnObject(e),r=this.callSuper("_toObject",e,t,n);return this._unwindGroupTransformOnObject(e,i),r},_realizeGroupTransformOnObject:function(e){if(e.group&&"activeSelection"===e.group.type&&this._activeObject===e.group){var t={};return["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"].forEach((function(n){t[n]=e[n]})),this._activeObject.realizeTransform(e),t}return null},_unwindGroupTransformOnObject:function(e,t){t&&e.set(t)},_setSVGObject:function(e,t,n){var i=this._realizeGroupTransformOnObject(t);this.callSuper("_setSVGObject",e,t,n),this._unwindGroupTransformOnObject(t,i)},setViewportTransform:function(e){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),r.StaticCanvas.prototype.setViewportTransform.call(this,e)}}),r.StaticCanvas)"prototype"!==s&&(r.Canvas[s]=r.StaticCanvas[s])}(),function(){var e=r.util.addListener,t=r.util.removeListener,n={passive:!1};function i(e,t){return e.button&&e.button===t-1}r.util.object.extend(r.Canvas.prototype,{mainTouchId:null,_initEventListeners:function(){this.removeListeners(),this._bindEvents(),this.addOrRemove(e,"add")},_getEventPrefix:function(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove:function(e,t){var i=this.upperCanvasEl,o=this._getEventPrefix();e(r.window,"resize",this._onResize),e(i,o+"down",this._onMouseDown),e(i,o+"move",this._onMouseMove,n),e(i,o+"out",this._onMouseOut),e(i,o+"enter",this._onMouseEnter),e(i,"wheel",this._onMouseWheel),e(i,"contextmenu",this._onContextMenu),e(i,"dblclick",this._onDoubleClick),e(i,"dragover",this._onDragOver),e(i,"dragenter",this._onDragEnter),e(i,"dragleave",this._onDragLeave),e(i,"drop",this._onDrop),this.enablePointerEvents||e(i,"touchstart",this._onTouchStart,n),"undefined"!==typeof eventjs&&t in eventjs&&(eventjs[t](i,"gesture",this._onGesture),eventjs[t](i,"drag",this._onDrag),eventjs[t](i,"orientation",this._onOrientationChange),eventjs[t](i,"shake",this._onShake),eventjs[t](i,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(t,"remove");var e=this._getEventPrefix();t(r.document,e+"up",this._onMouseUp),t(r.document,"touchend",this._onTouchEnd,n),t(r.document,e+"move",this._onMouseMove,n),t(r.document,"touchmove",this._onMouseMove,n)},_bindEvents:function(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onGesture=this._onGesture.bind(this),this._onDrag=this._onDrag.bind(this),this._onShake=this._onShake.bind(this),this._onLongPress=this._onLongPress.bind(this),this._onOrientationChange=this._onOrientationChange.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._simpleEventHandler.bind(this,"drop"),this.eventsBound=!0)},_onGesture:function(e,t){this.__onTransformGesture&&this.__onTransformGesture(e,t)},_onDrag:function(e,t){this.__onDrag&&this.__onDrag(e,t)},_onMouseWheel:function(e){this.__onMouseWheel(e)},_onMouseOut:function(e){var t=this._hoveredTarget;this.fire("mouse:out",{target:t,e:e}),this._hoveredTarget=null,t&&t.fire("mouseout",{e:e});var n=this;this._hoveredTargets.forEach((function(i){n.fire("mouse:out",{target:t,e:e}),i&&t.fire("mouseout",{e:e})})),this._hoveredTargets=[],this._iTextInstances&&this._iTextInstances.forEach((function(e){e.isEditing&&e.hiddenTextarea.focus()}))},_onMouseEnter:function(e){this._currentTransform||this.findTarget(e)||(this.fire("mouse:over",{target:null,e:e}),this._hoveredTarget=null,this._hoveredTargets=[])},_onOrientationChange:function(e,t){this.__onOrientationChange&&this.__onOrientationChange(e,t)},_onShake:function(e,t){this.__onShake&&this.__onShake(e,t)},_onLongPress:function(e,t){this.__onLongPress&&this.__onLongPress(e,t)},_onDragOver:function(e){e.preventDefault();var t=this._simpleEventHandler("dragover",e);this._fireEnterLeaveEvents(t,e)},_onContextMenu:function(e){return this.stopContextMenu&&(e.stopPropagation(),e.preventDefault()),!1},_onDoubleClick:function(e){this._cacheTransformEventData(e),this._handleEvent(e,"dblclick"),this._resetTransformEventData(e)},getPointerId:function(e){var t=e.changedTouches;return t?t[0]&&t[0].identifier:this.enablePointerEvents?e.pointerId:-1},_isMainEvent:function(e){return!0===e.isPrimary||!1!==e.isPrimary&&("touchend"===e.type&&0===e.touches.length||(!e.changedTouches||e.changedTouches[0].identifier===this.mainTouchId))},_onTouchStart:function(i){i.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(i)),this.__onMouseDown(i),this._resetTransformEventData();var o=this.upperCanvasEl,a=this._getEventPrefix();e(r.document,"touchend",this._onTouchEnd,n),e(r.document,"touchmove",this._onMouseMove,n),t(o,a+"down",this._onMouseDown)},_onMouseDown:function(i){this.__onMouseDown(i),this._resetTransformEventData();var o=this.upperCanvasEl,a=this._getEventPrefix();t(o,a+"move",this._onMouseMove,n),e(r.document,a+"up",this._onMouseUp),e(r.document,a+"move",this._onMouseMove,n)},_onTouchEnd:function(i){if(!(i.touches.length>0)){this.__onMouseUp(i),this._resetTransformEventData(),this.mainTouchId=null;var o=this._getEventPrefix();t(r.document,"touchend",this._onTouchEnd,n),t(r.document,"touchmove",this._onMouseMove,n);var a=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((function(){e(a.upperCanvasEl,o+"down",a._onMouseDown),a._willAddMouseDown=0}),400)}},_onMouseUp:function(i){this.__onMouseUp(i),this._resetTransformEventData();var o=this.upperCanvasEl,a=this._getEventPrefix();this._isMainEvent(i)&&(t(r.document,a+"up",this._onMouseUp),t(r.document,a+"move",this._onMouseMove,n),e(o,a+"move",this._onMouseMove,n))},_onMouseMove:function(e){!this.allowTouchScrolling&&e.preventDefault&&e.preventDefault(),this.__onMouseMove(e)},_onResize:function(){this.calcOffset()},_shouldRender:function(e){var t=this._activeObject;return!!(!!t!==!!e||t&&e&&t!==e)||(t&&t.isEditing,!1)},__onMouseUp:function(e){var t,n=this._currentTransform,o=this._groupSelector,a=!1,s=!o||0===o.left&&0===o.top;if(this._cacheTransformEventData(e),t=this._target,this._handleEvent(e,"up:before"),i(e,3))this.fireRightClick&&this._handleEvent(e,"up",3,s);else{if(i(e,2))return this.fireMiddleClick&&this._handleEvent(e,"up",2,s),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)this._onMouseUpInDrawingMode(e);else if(this._isMainEvent(e)){if(n&&(this._finalizeCurrentTransform(e),a=n.actionPerformed),!s){var u=t===this._activeObject;this._maybeGroupObjects(e),a||(a=this._shouldRender(t)||!u&&t===this._activeObject)}if(t){var l=t._findTargetCorner(this.getPointer(e,!0),r.util.isTouchEvent(e)),c=t.controls[l],d=c&&c.getMouseUpHandler(e,t,c);d&&d(e,t,c),t.isMoving=!1}this._setCursorFromEvent(e,t),this._handleEvent(e,"up",1,s),this._groupSelector=null,this._currentTransform=null,t&&(t.__corner=0),a?this.requestRenderAll():s||this.renderTop()}}},_simpleEventHandler:function(e,t){var n=this.findTarget(t),i=this.targets,r={e:t,target:n,subTargets:i};if(this.fire(e,r),n&&n.fire(e,r),!i)return n;for(var o=0;o<i.length;o++)i[o].fire(e,r);return n},_handleEvent:function(e,t,n,i){var r=this._target,o=this.targets||[],a={e:e,target:r,subTargets:o,button:n||1,isClick:i||!1,pointer:this._pointer,absolutePointer:this._absolutePointer,transform:this._currentTransform};"up"===t&&(a.currentTarget=this.findTarget(e),a.currentSubTargets=this.targets),this.fire("mouse:"+t,a),r&&r.fire("mouse"+t,a);for(var s=0;s<o.length;s++)o[s].fire("mouse"+t,a)},_finalizeCurrentTransform:function(e){var t,n=this._currentTransform,i=n.target,r={e:e,target:i,transform:n,action:n.action};i._scaling&&(i._scaling=!1),i.setCoords(),(n.actionPerformed||this.stateful&&i.hasStateChanged())&&(n.actionPerformed&&(t=this._addEventOptions(r,n),this._fire(t,r)),this._fire("modified",r))},_addEventOptions:function(e,t){var n,i;switch(t.action){case"scaleX":n="scaled",i="x";break;case"scaleY":n="scaled",i="y";break;case"skewX":n="skewed",i="x";break;case"skewY":n="skewed",i="y";break;case"scale":n="scaled",i="equally";break;case"rotate":n="rotated";break;case"drag":n="moved"}return e.by=i,n},_onMouseDownInDrawingMode:function(e){this._isCurrentlyDrawing=!0,this.getActiveObject()&&this.discardActiveObject(e).requestRenderAll();var t=this.getPointer(e);this.freeDrawingBrush.onMouseDown(t,{e:e,pointer:t}),this._handleEvent(e,"down")},_onMouseMoveInDrawingMode:function(e){if(this._isCurrentlyDrawing){var t=this.getPointer(e);this.freeDrawingBrush.onMouseMove(t,{e:e,pointer:t})}this.setCursor(this.freeDrawingCursor),this._handleEvent(e,"move")},_onMouseUpInDrawingMode:function(e){var t=this.getPointer(e);this._isCurrentlyDrawing=this.freeDrawingBrush.onMouseUp({e:e,pointer:t}),this._handleEvent(e,"up")},__onMouseDown:function(e){this._cacheTransformEventData(e),this._handleEvent(e,"down:before");var t=this._target;if(i(e,3))this.fireRightClick&&this._handleEvent(e,"down",3);else if(i(e,2))this.fireMiddleClick&&this._handleEvent(e,"down",2);else if(this.isDrawingMode)this._onMouseDownInDrawingMode(e);else if(this._isMainEvent(e)&&!this._currentTransform){var n=this._pointer;this._previousPointer=n;var o=this._shouldRender(t),a=this._shouldGroup(e,t);if(this._shouldClearSelection(e,t)?this.discardActiveObject(e):a&&(this._handleGrouping(e,t),t=this._activeObject),!this.selection||t&&(t.selectable||t.isEditing||t===this._activeObject)||(this._groupSelector={ex:n.x,ey:n.y,top:0,left:0}),t){var s=t===this._activeObject;t.selectable&&this.setActiveObject(t,e);var u=t._findTargetCorner(this.getPointer(e,!0),r.util.isTouchEvent(e));if(t.__corner=u,t===this._activeObject&&(u||!a)){var l=t.controls[u],c=l&&l.getMouseDownHandler(e,t,l);c&&c(e,t,l),this._setupCurrentTransform(e,t,s)}}this._handleEvent(e,"down"),(o||a)&&this.requestRenderAll()}},_resetTransformEventData:function(){this._target=null,this._pointer=null,this._absolutePointer=null},_cacheTransformEventData:function(e){this._resetTransformEventData(),this._pointer=this.getPointer(e,!0),this._absolutePointer=this.restorePointerVpt(this._pointer),this._target=this._currentTransform?this._currentTransform.target:this.findTarget(e)||null},_beforeTransform:function(e){var t=this._currentTransform;this.stateful&&t.target.saveState(),this.fire("before:transform",{e:e,transform:t})},__onMouseMove:function(e){var t,n;if(this._handleEvent(e,"move:before"),this._cacheTransformEventData(e),this.isDrawingMode)this._onMouseMoveInDrawingMode(e);else if(this._isMainEvent(e)){var i=this._groupSelector;i?(n=this._pointer,i.left=n.x-i.ex,i.top=n.y-i.ey,this.renderTop()):this._currentTransform?this._transformObject(e):(t=this.findTarget(e)||null,this._setCursorFromEvent(e,t),this._fireOverOutEvents(t,e)),this._handleEvent(e,"move"),this._resetTransformEventData()}},_fireOverOutEvents:function(e,t){var n=this._hoveredTarget,i=this._hoveredTargets,r=this.targets,o=Math.max(i.length,r.length);this.fireSyntheticInOutEvents(e,t,{oldTarget:n,evtOut:"mouseout",canvasEvtOut:"mouse:out",evtIn:"mouseover",canvasEvtIn:"mouse:over"});for(var a=0;a<o;a++)this.fireSyntheticInOutEvents(r[a],t,{oldTarget:i[a],evtOut:"mouseout",evtIn:"mouseover"});this._hoveredTarget=e,this._hoveredTargets=this.targets.concat()},_fireEnterLeaveEvents:function(e,t){var n=this._draggedoverTarget,i=this._hoveredTargets,r=this.targets,o=Math.max(i.length,r.length);this.fireSyntheticInOutEvents(e,t,{oldTarget:n,evtOut:"dragleave",evtIn:"dragenter"});for(var a=0;a<o;a++)this.fireSyntheticInOutEvents(r[a],t,{oldTarget:i[a],evtOut:"dragleave",evtIn:"dragenter"});this._draggedoverTarget=e},fireSyntheticInOutEvents:function(e,t,n){var i,r,o,a=n.oldTarget,s=a!==e,u=n.canvasEvtIn,l=n.canvasEvtOut;s&&(i={e:t,target:e,previousTarget:a},r={e:t,target:a,nextTarget:e}),o=e&&s,a&&s&&(l&&this.fire(l,r),a.fire(n.evtOut,r)),o&&(u&&this.fire(u,i),e.fire(n.evtIn,i))},__onMouseWheel:function(e){this._cacheTransformEventData(e),this._handleEvent(e,"wheel"),this._resetTransformEventData()},_transformObject:function(e){var t=this.getPointer(e),n=this._currentTransform;n.reset=!1,n.target.isMoving=!0,n.shiftKey=e.shiftKey,n.altKey=e[this.centeredKey],this._performTransformAction(e,n,t),n.actionPerformed&&this.requestRenderAll()},_performTransformAction:function(e,t,n){var i=n.x,r=n.y,o=t.action,a=!1,s=t.actionHandler;s&&(a=s(e,t,i,r)),"drag"===o&&a&&this.setCursor(t.target.moveCursor||this.moveCursor),t.actionPerformed=t.actionPerformed||a},_fire:r.controlsUtils.fireEvent,_setCursorFromEvent:function(e,t){if(!t)return this.setCursor(this.defaultCursor),!1;var n=t.hoverCursor||this.hoverCursor,i=this._activeObject&&"activeSelection"===this._activeObject.type?this._activeObject:null,r=(!i||!i.contains(t))&&t._findTargetCorner(this.getPointer(e,!0));r?this.setCursor(this.getCornerCursor(r,t,e)):(t.subTargetCheck&&this.targets.concat().reverse().map((function(e){n=e.hoverCursor||n})),this.setCursor(n))},getCornerCursor:function(e,t,n){var i=t.controls[e];return i.cursorStyleHandler(n,i,t)}})}(),function(){var e=Math.min,t=Math.max;r.util.object.extend(r.Canvas.prototype,{_shouldGroup:function(e,t){var n=this._activeObject;return n&&this._isSelectionKeyPressed(e)&&t&&t.selectable&&this.selection&&(n!==t||"activeSelection"===n.type)&&!t.onSelect({e:e})},_handleGrouping:function(e,t){var n=this._activeObject;n.__corner||(t!==n||(t=this.findTarget(e,!0))&&t.selectable)&&(n&&"activeSelection"===n.type?this._updateActiveSelection(t,e):this._createActiveSelection(t,e))},_updateActiveSelection:function(e,t){var n=this._activeObject,i=n._objects.slice(0);n.contains(e)?(n.removeWithUpdate(e),this._hoveredTarget=e,this._hoveredTargets=this.targets.concat(),1===n.size()&&this._setActiveObject(n.item(0),t)):(n.addWithUpdate(e),this._hoveredTarget=n,this._hoveredTargets=this.targets.concat()),this._fireSelectionEvents(i,t)},_createActiveSelection:function(e,t){var n=this.getActiveObjects(),i=this._createGroup(e);this._hoveredTarget=i,this._setActiveObject(i,t),this._fireSelectionEvents(n,t)},_createGroup:function(e){var t=this._objects,n=t.indexOf(this._activeObject)<t.indexOf(e)?[this._activeObject,e]:[e,this._activeObject];return this._activeObject.isEditing&&this._activeObject.exitEditing(),new r.ActiveSelection(n,{canvas:this})},_groupSelectedObjects:function(e){var t,n=this._collectObjects(e);1===n.length?this.setActiveObject(n[0],e):n.length>1&&(t=new r.ActiveSelection(n.reverse(),{canvas:this}),this.setActiveObject(t,e))},_collectObjects:function(n){for(var i,o=[],a=this._groupSelector.ex,s=this._groupSelector.ey,u=a+this._groupSelector.left,l=s+this._groupSelector.top,c=new r.Point(e(a,u),e(s,l)),d=new r.Point(t(a,u),t(s,l)),h=!this.selectionFullyContained,f=a===u&&s===l,p=this._objects.length;p--&&!((i=this._objects[p])&&i.selectable&&i.visible&&(h&&i.intersectsWithRect(c,d)||i.isContainedWithinRect(c,d)||h&&i.containsPoint(c)||h&&i.containsPoint(d))&&(o.push(i),f)););return o.length>1&&(o=o.filter((function(e){return!e.onSelect({e:n})}))),o},_maybeGroupObjects:function(e){this.selection&&this._groupSelector&&this._groupSelectedObjects(e),this.setCursor(this.defaultCursor),this._groupSelector=null}})}(),r.util.object.extend(r.StaticCanvas.prototype,{toDataURL:function(e){e||(e={});var t=e.format||"png",n=e.quality||1,i=(e.multiplier||1)*(e.enableRetinaScaling?this.getRetinaScaling():1),o=this.toCanvasElement(i,e);return r.util.toDataURL(o,t,n)},toCanvasElement:function(e,t){e=e||1;var n=((t=t||{}).width||this.width)*e,i=(t.height||this.height)*e,o=this.getZoom(),a=this.width,s=this.height,u=o*e,l=this.viewportTransform,c=(l[4]-(t.left||0))*e,d=(l[5]-(t.top||0))*e,h=this.interactive,f=[u,0,0,u,c,d],p=this.enableRetinaScaling,v=r.util.createCanvasElement(),g=this.contextTop;return v.width=n,v.height=i,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=f,this.width=n,this.height=i,this.calcViewportBoundaries(),this.renderCanvas(v.getContext("2d"),this._objects),this.viewportTransform=l,this.width=a,this.height=s,this.calcViewportBoundaries(),this.interactive=h,this.enableRetinaScaling=p,this.contextTop=g,v}}),r.util.object.extend(r.StaticCanvas.prototype,{loadFromJSON:function(e,t,n){if(e){var i="string"===typeof e?JSON.parse(e):r.util.object.clone(e),o=this,a=i.clipPath,s=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete i.clipPath,this._enlivenObjects(i.objects,(function(e){o.clear(),o._setBgOverlay(i,(function(){a?o._enlivenObjects([a],(function(n){o.clipPath=n[0],o.__setupCanvas.call(o,i,e,s,t)})):o.__setupCanvas.call(o,i,e,s,t)}))}),n),this}},__setupCanvas:function(e,t,n,i){var r=this;t.forEach((function(e,t){r.insertAt(e,t)})),this.renderOnAddRemove=n,delete e.objects,delete e.backgroundImage,delete e.overlayImage,delete e.background,delete e.overlay,this._setOptions(e),this.renderAll(),i&&i()},_setBgOverlay:function(e,t){var n={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(e.backgroundImage||e.overlayImage||e.background||e.overlay){var i=function(){n.backgroundImage&&n.overlayImage&&n.backgroundColor&&n.overlayColor&&t&&t()};this.__setBgOverlay("backgroundImage",e.backgroundImage,n,i),this.__setBgOverlay("overlayImage",e.overlayImage,n,i),this.__setBgOverlay("backgroundColor",e.background,n,i),this.__setBgOverlay("overlayColor",e.overlay,n,i)}else t&&t()},__setBgOverlay:function(e,t,n,i){var o=this;if(!t)return n[e]=!0,void(i&&i());"backgroundImage"===e||"overlayImage"===e?r.util.enlivenObjects([t],(function(t){o[e]=t[0],n[e]=!0,i&&i()})):this["set"+r.util.string.capitalize(e,!0)](t,(function(){n[e]=!0,i&&i()}))},_enlivenObjects:function(e,t,n){e&&0!==e.length?r.util.enlivenObjects(e,(function(e){t&&t(e)}),null,n):t&&t([])},_toDataURL:function(e,t){this.clone((function(n){t(n.toDataURL(e))}))},_toDataURLWithMultiplier:function(e,t,n){this.clone((function(i){n(i.toDataURLWithMultiplier(e,t))}))},clone:function(e,t){var n=JSON.stringify(this.toJSON(t));this.cloneWithoutData((function(t){t.loadFromJSON(n,(function(){e&&e(t)}))}))},cloneWithoutData:function(e){var t=r.util.createCanvasElement();t.width=this.width,t.height=this.height;var n=new r.Canvas(t);this.backgroundImage?(n.setBackgroundImage(this.backgroundImage.src,(function(){n.renderAll(),e&&e(n)})),n.backgroundImageOpacity=this.backgroundImageOpacity,n.backgroundImageStretch=this.backgroundImageStretch):e&&e(n)}}),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.util.object.clone,r=t.util.toFixed,o=t.util.string.capitalize,a=t.util.degreesToRadians,s=t.StaticCanvas.supports("setLineDash"),u=!t.isLikelyNode;t.Object||(t.Object=t.util.createClass(t.CommonMethods,{type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:u,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,initialize:function(e){e&&this.setOptions(e)},_createCacheCanvas:function(){this._cacheProperties={},this._cacheCanvas=t.util.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0},_limitCacheSize:function(e){var n=t.perfLimitSizeTotal,i=e.width,r=e.height,o=t.maxCacheSideLimit,a=t.minCacheSideLimit;if(i<=o&&r<=o&&i*r<=n)return i<a&&(e.width=a),r<a&&(e.height=a),e;var s=i/r,u=t.util.limitDimsByArea(s,n),l=t.util.capValue,c=l(a,u.x,o),d=l(a,u.y,o);return i>c&&(e.zoomX/=i/c,e.width=c,e.capped=!0),r>d&&(e.zoomY/=r/d,e.height=d,e.capped=!0),e},_getCacheCanvasDimensions:function(){var e=this.getTotalObjectScaling(),t=this._getTransformedDimensions(0,0),n=t.x*e.scaleX/this.scaleX,i=t.y*e.scaleY/this.scaleY;return{width:n+2,height:i+2,zoomX:e.scaleX,zoomY:e.scaleY,x:n,y:i}},_updateCacheCanvas:function(){var e=this.canvas;if(this.noScaleCache&&e&&e._currentTransform){var n=e._currentTransform.target,i=e._currentTransform.action;if(this===n&&i.slice&&"scale"===i.slice(0,5))return!1}var r,o,a=this._cacheCanvas,s=this._limitCacheSize(this._getCacheCanvasDimensions()),u=t.minCacheSideLimit,l=s.width,c=s.height,d=s.zoomX,h=s.zoomY,f=l!==this.cacheWidth||c!==this.cacheHeight,p=this.zoomX!==d||this.zoomY!==h,v=f||p,g=0,m=0,_=!1;if(f){var y=this._cacheCanvas.width,b=this._cacheCanvas.height,w=l>y||c>b;_=w||(l<.9*y||c<.9*b)&&y>u&&b>u,w&&!s.capped&&(l>u||c>u)&&(g=.1*l,m=.1*c)}return!!v&&(_?(a.width=Math.ceil(l+g),a.height=Math.ceil(c+m)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,a.width,a.height)),r=s.x/2,o=s.y/2,this.cacheTranslationX=Math.round(a.width/2-r)+r,this.cacheTranslationY=Math.round(a.height/2-o)+o,this.cacheWidth=l,this.cacheHeight=c,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(d,h),this.zoomX=d,this.zoomY=h,!0)},setOptions:function(e){this._setOptions(e),this._initGradient(e.fill,"fill"),this._initGradient(e.stroke,"stroke"),this._initPattern(e.fill,"fill"),this._initPattern(e.stroke,"stroke")},transform:function(e){var t=this.group&&!this.group._transformDone||this.group&&this.canvas&&e===this.canvas.contextTop,n=this.calcTransformMatrix(!t);e.transform(n[0],n[1],n[2],n[3],n[4],n[5])},toObject:function(e){var n=t.Object.NUM_FRACTION_DIGITS,i={type:this.type,version:t.version,originX:this.originX,originY:this.originY,left:r(this.left,n),top:r(this.top,n),width:r(this.width,n),height:r(this.height,n),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:r(this.strokeWidth,n),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeMiterLimit:r(this.strokeMiterLimit,n),scaleX:r(this.scaleX,n),scaleY:r(this.scaleY,n),angle:r(this.angle,n),flipX:this.flipX,flipY:this.flipY,opacity:r(this.opacity,n),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:r(this.skewX,n),skewY:r(this.skewY,n)};return this.clipPath&&(i.clipPath=this.clipPath.toObject(e),i.clipPath.inverted=this.clipPath.inverted,i.clipPath.absolutePositioned=this.clipPath.absolutePositioned),t.util.populateWithProperties(this,i,e),this.includeDefaultValues||(i=this._removeDefaultValues(i)),i},toDatalessObject:function(e){return this.toObject(e)},_removeDefaultValues:function(e){var n=t.util.getKlass(e.type).prototype;return n.stateProperties.forEach((function(t){"left"!==t&&"top"!==t&&(e[t]===n[t]&&delete e[t],"[object Array]"===Object.prototype.toString.call(e[t])&&"[object Array]"===Object.prototype.toString.call(n[t])&&0===e[t].length&&0===n[t].length&&delete e[t])})),e},toString:function(){return"#<fabric."+o(this.type)+">"},getObjectScaling:function(){var e=t.util.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(e.scaleX),scaleY:Math.abs(e.scaleY)}},getTotalObjectScaling:function(){var e=this.getObjectScaling(),t=e.scaleX,n=e.scaleY;if(this.canvas){var i=this.canvas.getZoom(),r=this.canvas.getRetinaScaling();t*=i*r,n*=i*r}return{scaleX:t,scaleY:n}},getObjectOpacity:function(){var e=this.opacity;return this.group&&(e*=this.group.getObjectOpacity()),e},_set:function(e,n){var i="scaleX"===e||"scaleY"===e,r=this[e]!==n,o=!1;return i&&(n=this._constrainScale(n)),"scaleX"===e&&n<0?(this.flipX=!this.flipX,n*=-1):"scaleY"===e&&n<0?(this.flipY=!this.flipY,n*=-1):"shadow"!==e||!n||n instanceof t.Shadow?"dirty"===e&&this.group&&this.group.set("dirty",n):n=new t.Shadow(n),this[e]=n,r&&(o=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(e)>-1?(this.dirty=!0,o&&this.group.set("dirty",!0)):o&&this.stateProperties.indexOf(e)>-1&&this.group.set("dirty",!0)),this},setOnGroup:function(){},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:t.iMatrix.concat()},isNotVisible:function(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible},render:function(e){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(e.save(),this._setupCompositeOperation(e),this.drawSelectionBackground(e),this.transform(e),this._setOpacity(e),this._setShadow(e,this),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(e)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(e),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),e.restore())},renderCache:function(e){e=e||{},this._cacheCanvas||this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,e.forClipping),this.dirty=!1)},_removeCacheCanvas:function(){this._cacheCanvas=null,this.cacheWidth=0,this.cacheHeight=0},hasStroke:function(){return this.stroke&&"transparent"!==this.stroke&&0!==this.strokeWidth},hasFill:function(){return this.fill&&"transparent"!==this.fill},needsItsOwnCache:function(){return!("stroke"!==this.paintFirst||!this.hasFill()||!this.hasStroke()||"object"!==typeof this.shadow)||!!this.clipPath},shouldCache:function(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching},willDrawShadow:function(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)},drawClipPathOnCache:function(e){var n=this.clipPath;if(e.save(),n.inverted?e.globalCompositeOperation="destination-out":e.globalCompositeOperation="destination-in",n.absolutePositioned){var i=t.util.invertTransform(this.calcTransformMatrix());e.transform(i[0],i[1],i[2],i[3],i[4],i[5])}n.transform(e),e.scale(1/n.zoomX,1/n.zoomY),e.drawImage(n._cacheCanvas,-n.cacheTranslationX,-n.cacheTranslationY),e.restore()},drawObject:function(e,t){var n=this.fill,i=this.stroke;t?(this.fill="black",this.stroke="",this._setClippingProperties(e)):(this._renderBackground(e),this._setStrokeStyles(e,this),this._setFillStyles(e,this)),this._render(e),this._drawClipPath(e),this.fill=n,this.stroke=i},_drawClipPath:function(e){var t=this.clipPath;t&&(t.canvas=this.canvas,t.shouldCache(),t._transformDone=!0,t.renderCache({forClipping:!0}),this.drawClipPathOnCache(e))},drawCacheOnCanvas:function(e){e.scale(1/this.zoomX,1/this.zoomY),e.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)},isCacheDirty:function(e){if(this.isNotVisible())return!1;if(this._cacheCanvas&&!e&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&!e){var t=this.cacheWidth/this.zoomX,n=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-t/2,-n/2,t,n)}return!0}return!1},_renderBackground:function(e){if(this.backgroundColor){var t=this._getNonTransformedDimensions();e.fillStyle=this.backgroundColor,e.fillRect(-t.x/2,-t.y/2,t.x,t.y),this._removeShadow(e)}},_setOpacity:function(e){this.group&&!this.group._transformDone?e.globalAlpha=this.getObjectOpacity():e.globalAlpha*=this.opacity},_setStrokeStyles:function(e,t){t.stroke&&(e.lineWidth=t.strokeWidth,e.lineCap=t.strokeLineCap,e.lineDashOffset=t.strokeDashOffset,e.lineJoin=t.strokeLineJoin,e.miterLimit=t.strokeMiterLimit,e.strokeStyle=t.stroke.toLive?t.stroke.toLive(e,this):t.stroke)},_setFillStyles:function(e,t){t.fill&&(e.fillStyle=t.fill.toLive?t.fill.toLive(e,this):t.fill)},_setClippingProperties:function(e){e.globalAlpha=1,e.strokeStyle="transparent",e.fillStyle="#000000"},_setLineDash:function(e,t,n){t&&0!==t.length&&(1&t.length&&t.push.apply(t,t),s?e.setLineDash(t):n&&n(e))},_renderControls:function(e,n){var i,r,o,s=this.getViewportTransform(),u=this.calcTransformMatrix();r="undefined"!==typeof(n=n||{}).hasBorders?n.hasBorders:this.hasBorders,o="undefined"!==typeof n.hasControls?n.hasControls:this.hasControls,u=t.util.multiplyTransformMatrices(s,u),i=t.util.qrDecompose(u),e.save(),e.translate(i.translateX,i.translateY),e.lineWidth=1*this.borderScaleFactor,this.group||(e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),n.forActiveSelection?(e.rotate(a(i.angle)),r&&this.drawBordersInGroup(e,i,n)):(e.rotate(a(this.angle)),r&&this.drawBorders(e,n)),o&&this.drawControls(e,n),e.restore()},_setShadow:function(e){if(this.shadow){var n,i=this.shadow,r=this.canvas,o=r&&r.viewportTransform[0]||1,a=r&&r.viewportTransform[3]||1;n=i.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),r&&r._isRetinaScaling()&&(o*=t.devicePixelRatio,a*=t.devicePixelRatio),e.shadowColor=i.color,e.shadowBlur=i.blur*t.browserShadowBlurConstant*(o+a)*(n.scaleX+n.scaleY)/4,e.shadowOffsetX=i.offsetX*o*n.scaleX,e.shadowOffsetY=i.offsetY*a*n.scaleY}},_removeShadow:function(e){this.shadow&&(e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0)},_applyPatternGradientTransform:function(e,t){if(!t||!t.toLive)return{offsetX:0,offsetY:0};var n=t.gradientTransform||t.patternTransform,i=-this.width/2+t.offsetX||0,r=-this.height/2+t.offsetY||0;return"percentage"===t.gradientUnits?e.transform(this.width,0,0,this.height,i,r):e.transform(1,0,0,1,i,r),n&&e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),{offsetX:i,offsetY:r}},_renderPaintInOrder:function(e){"stroke"===this.paintFirst?(this._renderStroke(e),this._renderFill(e)):(this._renderFill(e),this._renderStroke(e))},_render:function(){},_renderFill:function(e){this.fill&&(e.save(),this._applyPatternGradientTransform(e,this.fill),"evenodd"===this.fillRule?e.fill("evenodd"):e.fill(),e.restore())},_renderStroke:function(e){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(e),e.save(),this.strokeUniform&&this.group){var t=this.getObjectScaling();e.scale(1/t.scaleX,1/t.scaleY)}else this.strokeUniform&&e.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(e,this.strokeDashArray,this._renderDashedStroke),this.stroke.toLive&&"percentage"===this.stroke.gradientUnits?this._applyPatternForTransformedGradient(e,this.stroke):this._applyPatternGradientTransform(e,this.stroke),e.stroke(),e.restore()}},_applyPatternForTransformedGradient:function(e,n){var i,r=this._limitCacheSize(this._getCacheCanvasDimensions()),o=t.util.createCanvasElement(),a=this.canvas.getRetinaScaling(),s=r.x/this.scaleX/a,u=r.y/this.scaleY/a;o.width=s,o.height=u,(i=o.getContext("2d")).beginPath(),i.moveTo(0,0),i.lineTo(s,0),i.lineTo(s,u),i.lineTo(0,u),i.closePath(),i.translate(s/2,u/2),i.scale(r.zoomX/this.scaleX/a,r.zoomY/this.scaleY/a),this._applyPatternGradientTransform(i,n),i.fillStyle=n.toLive(e),i.fill(),e.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),e.scale(a*this.scaleX/r.zoomX,a*this.scaleY/r.zoomY),e.strokeStyle=i.createPattern(o,"no-repeat")},_findCenterFromElement:function(){return{x:this.left+this.width/2,y:this.top+this.height/2}},_assignTransformMatrixProps:function(){if(this.transformMatrix){var e=t.util.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",e.scaleX),this.set("scaleY",e.scaleY),this.angle=e.angle,this.skewX=e.skewX,this.skewY=0}},_removeTransformMatrix:function(e){var n=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),n=t.util.transformPoint(n,this.transformMatrix)),this.transformMatrix=null,e&&(this.scaleX*=e.scaleX,this.scaleY*=e.scaleY,this.cropX=e.cropX,this.cropY=e.cropY,n.x+=e.offsetLeft,n.y+=e.offsetTop,this.width=e.width,this.height=e.height),this.setPositionByOrigin(n,"center","center")},clone:function(e,n){var i=this.toObject(n);this.constructor.fromObject?this.constructor.fromObject(i,e):t.Object._fromObject("Object",i,e)},cloneAsImage:function(e,n){var i=this.toCanvasElement(n);return e&&e(new t.Image(i)),this},toCanvasElement:function(e){e||(e={});var n=t.util,i=n.saveObjectTransform(this),r=this.group,o=this.shadow,a=Math.abs,s=(e.multiplier||1)*(e.enableRetinaScaling?t.devicePixelRatio:1);delete this.group,e.withoutTransform&&n.resetObjectTransform(this),e.withoutShadow&&(this.shadow=null);var u,l,c,d,h=t.util.createCanvasElement(),f=this.getBoundingRect(!0,!0),p=this.shadow,v={x:0,y:0};p&&(l=p.blur,u=p.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),v.x=2*Math.round(a(p.offsetX)+l)*a(u.scaleX),v.y=2*Math.round(a(p.offsetY)+l)*a(u.scaleY)),c=f.width+v.x,d=f.height+v.y,h.width=Math.ceil(c),h.height=Math.ceil(d);var g=new t.StaticCanvas(h,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});"jpeg"===e.format&&(g.backgroundColor="#fff"),this.setPositionByOrigin(new t.Point(g.width/2,g.height/2),"center","center");var m=this.canvas;g.add(this);var _=g.toCanvasElement(s||1,e);return this.shadow=o,this.set("canvas",m),r&&(this.group=r),this.set(i).setCoords(),g._objects=[],g.dispose(),g=null,_},toDataURL:function(e){return e||(e={}),t.util.toDataURL(this.toCanvasElement(e),e.format||"png",e.quality||1)},isType:function(e){return this.type===e},complexity:function(){return 1},toJSON:function(e){return this.toObject(e)},rotate:function(e){var t=("center"!==this.originX||"center"!==this.originY)&&this.centeredRotation;return t&&this._setOriginToCenter(),this.set("angle",e),t&&this._resetOrigin(),this},centerH:function(){return this.canvas&&this.canvas.centerObjectH(this),this},viewportCenterH:function(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this},centerV:function(){return this.canvas&&this.canvas.centerObjectV(this),this},viewportCenterV:function(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this},center:function(){return this.canvas&&this.canvas.centerObject(this),this},viewportCenter:function(){return this.canvas&&this.canvas.viewportCenterObject(this),this},getLocalPointer:function(e,n){n=n||this.canvas.getPointer(e);var i=new t.Point(n.x,n.y),r=this._getLeftTopCoords();return this.angle&&(i=t.util.rotatePoint(i,r,a(-this.angle))),{x:i.x-r.x,y:i.y-r.y}},_setupCompositeOperation:function(e){this.globalCompositeOperation&&(e.globalCompositeOperation=this.globalCompositeOperation)}}),t.util.createAccessors&&t.util.createAccessors(t.Object),n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object._fromObject=function(e,n,r,o){var a=t[e];n=i(n,!0),t.util.enlivenPatterns([n.fill,n.stroke],(function(e){"undefined"!==typeof e[0]&&(n.fill=e[0]),"undefined"!==typeof e[1]&&(n.stroke=e[1]),t.util.enlivenObjects([n.clipPath],(function(e){n.clipPath=e[0];var t=o?new a(n[o],n):new a(n);r&&r(t)}))}))},t.Object.__uid=0)}(t),function(){var e=r.util.degreesToRadians,t={left:-.5,center:0,right:.5},n={top:-.5,center:0,bottom:.5};r.util.object.extend(r.Object.prototype,{translateToGivenOrigin:function(e,i,o,a,s){var u,l,c,d=e.x,h=e.y;return"string"===typeof i?i=t[i]:i-=.5,"string"===typeof a?a=t[a]:a-=.5,"string"===typeof o?o=n[o]:o-=.5,"string"===typeof s?s=n[s]:s-=.5,l=s-o,((u=a-i)||l)&&(c=this._getTransformedDimensions(),d=e.x+u*c.x,h=e.y+l*c.y),new r.Point(d,h)},translateToCenterPoint:function(t,n,i){var o=this.translateToGivenOrigin(t,n,i,"center","center");return this.angle?r.util.rotatePoint(o,t,e(this.angle)):o},translateToOriginPoint:function(t,n,i){var o=this.translateToGivenOrigin(t,"center","center",n,i);return this.angle?r.util.rotatePoint(o,t,e(this.angle)):o},getCenterPoint:function(){var e=new r.Point(this.left,this.top);return this.translateToCenterPoint(e,this.originX,this.originY)},getPointByOrigin:function(e,t){var n=this.getCenterPoint();return this.translateToOriginPoint(n,e,t)},toLocalPoint:function(t,n,i){var o,a,s=this.getCenterPoint();return o="undefined"!==typeof n&&"undefined"!==typeof i?this.translateToGivenOrigin(s,"center","center",n,i):new r.Point(this.left,this.top),a=new r.Point(t.x,t.y),this.angle&&(a=r.util.rotatePoint(a,s,-e(this.angle))),a.subtractEquals(o)},setPositionByOrigin:function(e,t,n){var i=this.translateToCenterPoint(e,t,n),r=this.translateToOriginPoint(i,this.originX,this.originY);this.set("left",r.x),this.set("top",r.y)},adjustPosition:function(n){var i,o,a=e(this.angle),s=this.getScaledWidth(),u=r.util.cos(a)*s,l=r.util.sin(a)*s;i="string"===typeof this.originX?t[this.originX]:this.originX-.5,o="string"===typeof n?t[n]:n-.5,this.left+=u*(o-i),this.top+=l*(o-i),this.setCoords(),this.originX=n},_setOriginToCenter:function(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var e=this.getCenterPoint();this.originX="center",this.originY="center",this.left=e.x,this.top=e.y},_resetOrigin:function(){var e=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=e.x,this.top=e.y,this._originalOriginX=null,this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}})}(),function(){var e=r.util,t=e.degreesToRadians,n=e.multiplyTransformMatrices,i=e.transformPoint;e.object.extend(r.Object.prototype,{oCoords:null,aCoords:null,lineCoords:null,ownMatrixCache:null,matrixCache:null,controls:{},_getCoords:function(e,t){return t?e?this.calcACoords():this.calcLineCoords():(this.aCoords&&this.lineCoords||this.setCoords(!0),e?this.aCoords:this.lineCoords)},getCoords:function(e,t){return n=this._getCoords(e,t),[new r.Point(n.tl.x,n.tl.y),new r.Point(n.tr.x,n.tr.y),new r.Point(n.br.x,n.br.y),new r.Point(n.bl.x,n.bl.y)];var n},intersectsWithRect:function(e,t,n,i){var o=this.getCoords(n,i);return"Intersection"===r.Intersection.intersectPolygonRectangle(o,e,t).status},intersectsWithObject:function(e,t,n){return"Intersection"===r.Intersection.intersectPolygonPolygon(this.getCoords(t,n),e.getCoords(t,n)).status||e.isContainedWithinObject(this,t,n)||this.isContainedWithinObject(e,t,n)},isContainedWithinObject:function(e,t,n){for(var i=this.getCoords(t,n),r=t?e.aCoords:e.lineCoords,o=0,a=e._getImageLines(r);o<4;o++)if(!e.containsPoint(i[o],a))return!1;return!0},isContainedWithinRect:function(e,t,n,i){var r=this.getBoundingRect(n,i);return r.left>=e.x&&r.left+r.width<=t.x&&r.top>=e.y&&r.top+r.height<=t.y},containsPoint:function(e,t,n,i){var r=this._getCoords(n,i),o=(t=t||this._getImageLines(r),this._findCrossPoints(e,t));return 0!==o&&o%2===1},isOnScreen:function(e){if(!this.canvas)return!1;var t=this.canvas.vptCoords.tl,n=this.canvas.vptCoords.br;return!!this.getCoords(!0,e).some((function(e){return e.x<=n.x&&e.x>=t.x&&e.y<=n.y&&e.y>=t.y}))||(!!this.intersectsWithRect(t,n,!0,e)||this._containsCenterOfCanvas(t,n,e))},_containsCenterOfCanvas:function(e,t,n){var i={x:(e.x+t.x)/2,y:(e.y+t.y)/2};return!!this.containsPoint(i,null,!0,n)},isPartiallyOnScreen:function(e){if(!this.canvas)return!1;var t=this.canvas.vptCoords.tl,n=this.canvas.vptCoords.br;return!!this.intersectsWithRect(t,n,!0,e)||this.getCoords(!0,e).every((function(e){return(e.x>=n.x||e.x<=t.x)&&(e.y>=n.y||e.y<=t.y)}))&&this._containsCenterOfCanvas(t,n,e)},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_findCrossPoints:function(e,t){var n,i,r,o=0;for(var a in t)if(!((r=t[a]).o.y<e.y&&r.d.y<e.y)&&!(r.o.y>=e.y&&r.d.y>=e.y)&&(r.o.x===r.d.x&&r.o.x>=e.x?i=r.o.x:(0,n=(r.d.y-r.o.y)/(r.d.x-r.o.x),i=-(e.y-0*e.x-(r.o.y-n*r.o.x))/(0-n)),i>=e.x&&(o+=1),2===o))break;return o},getBoundingRect:function(t,n){var i=this.getCoords(t,n);return e.makeBoundingBoxFromPoints(i)},getScaledWidth:function(){return this._getTransformedDimensions().x},getScaledHeight:function(){return this._getTransformedDimensions().y},_constrainScale:function(e){return Math.abs(e)<this.minScaleLimit?e<0?-this.minScaleLimit:this.minScaleLimit:0===e?1e-4:e},scale:function(e){return this._set("scaleX",e),this._set("scaleY",e),this.setCoords()},scaleToWidth:function(e,t){var n=this.getBoundingRect(t).width/this.getScaledWidth();return this.scale(e/this.width/n)},scaleToHeight:function(e,t){var n=this.getBoundingRect(t).height/this.getScaledHeight();return this.scale(e/this.height/n)},calcCoords:function(e){return e?this.calcACoords():this.calcOCoords()},calcLineCoords:function(){var n=this.getViewportTransform(),r=this.padding,o=t(this.angle),a=e.cos(o)*r,s=e.sin(o)*r,u=a+s,l=a-s,c=this.calcACoords(),d={tl:i(c.tl,n),tr:i(c.tr,n),bl:i(c.bl,n),br:i(c.br,n)};return r&&(d.tl.x-=l,d.tl.y-=u,d.tr.x+=u,d.tr.y-=l,d.bl.x-=u,d.bl.y+=l,d.br.x+=l,d.br.y+=u),d},calcOCoords:function(){var e=this._calcRotateMatrix(),t=this._calcTranslateMatrix(),i=this.getViewportTransform(),r=n(i,t),o=n(r,e),a=(o=n(o,[1/i[0],0,0,1/i[3],0,0]),this._calculateCurrentDimensions()),s={};return this.forEachControl((function(e,t,n){s[t]=e.positionHandler(a,o,n)})),s},calcACoords:function(){var e=this._calcRotateMatrix(),t=this._calcTranslateMatrix(),r=n(t,e),o=this._getTransformedDimensions(),a=o.x/2,s=o.y/2;return{tl:i({x:-a,y:-s},r),tr:i({x:a,y:-s},r),bl:i({x:-a,y:s},r),br:i({x:a,y:s},r)}},setCoords:function(e){return this.aCoords=this.calcACoords(),this.lineCoords=this.group?this.aCoords:this.calcLineCoords(),e||(this.oCoords=this.calcOCoords(),this._setCornerCoords&&this._setCornerCoords()),this},_calcRotateMatrix:function(){return e.calcRotateMatrix(this)},_calcTranslateMatrix:function(){var e=this.getCenterPoint();return[1,0,0,1,e.x,e.y]},transformMatrixKey:function(e){var t="_",n="";return!e&&this.group&&(n=this.group.transformMatrixKey(e)+t),n+this.top+t+this.left+t+this.scaleX+t+this.scaleY+t+this.skewX+t+this.skewY+t+this.angle+t+this.originX+t+this.originY+t+this.width+t+this.height+t+this.strokeWidth+this.flipX+this.flipY},calcTransformMatrix:function(e){var t=this.calcOwnMatrix();if(e||!this.group)return t;var i=this.transformMatrixKey(e),r=this.matrixCache||(this.matrixCache={});return r.key===i?r.value:(this.group&&(t=n(this.group.calcTransformMatrix(!1),t)),r.key=i,r.value=t,t)},calcOwnMatrix:function(){var t=this.transformMatrixKey(!0),n=this.ownMatrixCache||(this.ownMatrixCache={});if(n.key===t)return n.value;var i=this._calcTranslateMatrix(),r={angle:this.angle,translateX:i[4],translateY:i[5],scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY};return n.key=t,n.value=e.composeMatrix(r),n.value},_calcDimensionsTransformMatrix:function(t,n,i){return e.calcDimensionsMatrix({skewX:t,skewY:n,scaleX:this.scaleX*(i&&this.flipX?-1:1),scaleY:this.scaleY*(i&&this.flipY?-1:1)})},_getNonTransformedDimensions:function(){var e=this.strokeWidth;return{x:this.width+e,y:this.height+e}},_getTransformedDimensions:function(t,n){"undefined"===typeof t&&(t=this.skewX),"undefined"===typeof n&&(n=this.skewY);var i,r,o=this._getNonTransformedDimensions(),a=0===t&&0===n;if(this.strokeUniform?(i=this.width,r=this.height):(i=o.x,r=o.y),a)return this._finalizeDimensions(i*this.scaleX,r*this.scaleY);var s=e.sizeAfterTransform(i,r,{scaleX:this.scaleX,scaleY:this.scaleY,skewX:t,skewY:n});return this._finalizeDimensions(s.x,s.y)},_finalizeDimensions:function(e,t){return this.strokeUniform?{x:e+this.strokeWidth,y:t+this.strokeWidth}:{x:e,y:t}},_calculateCurrentDimensions:function(){var e=this.getViewportTransform(),t=this._getTransformedDimensions();return i(t,e,!0).scalarAdd(2*this.padding)}})}(),r.util.object.extend(r.Object.prototype,{sendToBack:function(){return this.group?r.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas&&this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?r.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas&&this.canvas.bringToFront(this),this},sendBackwards:function(e){return this.group?r.StaticCanvas.prototype.sendBackwards.call(this.group,this,e):this.canvas&&this.canvas.sendBackwards(this,e),this},bringForward:function(e){return this.group?r.StaticCanvas.prototype.bringForward.call(this.group,this,e):this.canvas&&this.canvas.bringForward(this,e),this},moveTo:function(e){return this.group&&"activeSelection"!==this.group.type?r.StaticCanvas.prototype.moveTo.call(this.group,this,e):this.canvas&&this.canvas.moveTo(this,e),this}}),function(){function e(e,t){if(t){if(t.toLive)return e+": url(#SVGID_"+t.id+"); ";var n=new r.Color(t),i=e+": "+n.toRgb()+"; ",o=n.getAlpha();return 1!==o&&(i+=e+"-opacity: "+o.toString()+"; "),i}return e+": none; "}var t=r.util.toFixed;r.util.object.extend(r.Object.prototype,{getSvgStyles:function(t){var n=this.fillRule?this.fillRule:"nonzero",i=this.strokeWidth?this.strokeWidth:"0",r=this.strokeDashArray?this.strokeDashArray.join(" "):"none",o=this.strokeDashOffset?this.strokeDashOffset:"0",a=this.strokeLineCap?this.strokeLineCap:"butt",s=this.strokeLineJoin?this.strokeLineJoin:"miter",u=this.strokeMiterLimit?this.strokeMiterLimit:"4",l="undefined"!==typeof this.opacity?this.opacity:"1",c=this.visible?"":" visibility: hidden;",d=t?"":this.getSvgFilter(),h=e("fill",this.fill);return[e("stroke",this.stroke),"stroke-width: ",i,"; ","stroke-dasharray: ",r,"; ","stroke-linecap: ",a,"; ","stroke-dashoffset: ",o,"; ","stroke-linejoin: ",s,"; ","stroke-miterlimit: ",u,"; ",h,"fill-rule: ",n,"; ","opacity: ",l,";",d,c].join("")},getSvgSpanStyles:function(t,n){var i="; ",r=t.fontFamily?"font-family: "+(-1===t.fontFamily.indexOf("'")&&-1===t.fontFamily.indexOf('"')?"'"+t.fontFamily+"'":t.fontFamily)+i:"",o=t.strokeWidth?"stroke-width: "+t.strokeWidth+i:"",a=(r=r,t.fontSize?"font-size: "+t.fontSize+"px"+i:""),s=t.fontStyle?"font-style: "+t.fontStyle+i:"",u=t.fontWeight?"font-weight: "+t.fontWeight+i:"",l=t.fill?e("fill",t.fill):"",c=t.stroke?e("stroke",t.stroke):"",d=this.getSvgTextDecoration(t);return d&&(d="text-decoration: "+d+i),[c,o,r,a,s,u,d,l,t.deltaY?"baseline-shift: "+-t.deltaY+"; ":"",n?"white-space: pre; ":""].join("")},getSvgTextDecoration:function(e){return["overline","underline","line-through"].filter((function(t){return e[t.replace("-","")]})).join(" ")},getSvgFilter:function(){return this.shadow?"filter: url(#SVGID_"+this.shadow.id+");":""},getSvgCommons:function(){return[this.id?'id="'+this.id+'" ':"",this.clipPath?'clip-path="url(#'+this.clipPath.clipPathId+')" ':""].join("")},getSvgTransform:function(e,t){var n=e?this.calcTransformMatrix():this.calcOwnMatrix();return'transform="'+r.util.matrixToSVG(n)+(t||"")+'" '},_setSVGBg:function(e){if(this.backgroundColor){var n=r.Object.NUM_FRACTION_DIGITS;e.push("\t\t<rect ",this._getFillAttributes(this.backgroundColor),' x="',t(-this.width/2,n),'" y="',t(-this.height/2,n),'" width="',t(this.width,n),'" height="',t(this.height,n),'"></rect>\n')}},toSVG:function(e){return this._createBaseSVGMarkup(this._toSVG(e),{reviver:e})},toClipPathSVG:function(e){return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(e),{reviver:e})},_createBaseClipPathSVGMarkup:function(e,t){var n=(t=t||{}).reviver,i=t.additionalTransform||"",r=[this.getSvgTransform(!0,i),this.getSvgCommons()].join(""),o=e.indexOf("COMMON_PARTS");return e[o]=r,n?n(e.join("")):e.join("")},_createBaseSVGMarkup:function(e,t){var n,i,o=(t=t||{}).noStyle,a=t.reviver,s=o?"":'style="'+this.getSvgStyles()+'" ',u=t.withShadow?'style="'+this.getSvgFilter()+'" ':"",l=this.clipPath,c=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",d=l&&l.absolutePositioned,h=this.stroke,f=this.fill,p=this.shadow,v=[],g=e.indexOf("COMMON_PARTS"),m=t.additionalTransform;return l&&(l.clipPathId="CLIPPATH_"+r.Object.__uid++,i='<clipPath id="'+l.clipPathId+'" >\n'+l.toClipPathSVG(a)+"</clipPath>\n"),d&&v.push("<g ",u,this.getSvgCommons()," >\n"),v.push("<g ",this.getSvgTransform(!1),d?"":u+this.getSvgCommons()," >\n"),n=[s,c,o?"":this.addPaintOrder()," ",m?'transform="'+m+'" ':""].join(""),e[g]=n,f&&f.toLive&&v.push(f.toSVG(this)),h&&h.toLive&&v.push(h.toSVG(this)),p&&v.push(p.toSVG(this)),l&&v.push(i),v.push(e.join("")),v.push("</g>\n"),d&&v.push("</g>\n"),a?a(v.join("")):v.join("")},addPaintOrder:function(){return"fill"!==this.paintFirst?' paint-order="'+this.paintFirst+'" ':""}})}(),function(){var e=r.util.object.extend,t="stateProperties";function n(t,n,i){var r={};i.forEach((function(e){r[e]=t[e]})),e(t[n],r,!0)}function i(e,t,n){if(e===t)return!0;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var r=0,o=e.length;r<o;r++)if(!i(e[r],t[r]))return!1;return!0}if(e&&"object"===typeof e){var a,s=Object.keys(e);if(!t||"object"!==typeof t||!n&&s.length!==Object.keys(t).length)return!1;for(r=0,o=s.length;r<o;r++)if("canvas"!==(a=s[r])&&"group"!==a&&!i(e[a],t[a]))return!1;return!0}}r.util.object.extend(r.Object.prototype,{hasStateChanged:function(e){var n="_"+(e=e||t);return Object.keys(this[n]).length<this[e].length||!i(this[n],this,!0)},saveState:function(e){var i=e&&e.propertySet||t,r="_"+i;return this[r]?(n(this,r,this[i]),e&&e.stateProperties&&n(this,r,e.stateProperties),this):this.setupState(e)},setupState:function(e){var n=(e=e||{}).propertySet||t;return e.propertySet=n,this["_"+n]={},this.saveState(e),this}})}(),function(){var e=r.util.degreesToRadians;r.util.object.extend(r.Object.prototype,{_findTargetCorner:function(e,t){if(!this.hasControls||this.group||!this.canvas||this.canvas._activeObject!==this)return!1;var n,i,r,o=e.x,a=e.y,s=Object.keys(this.oCoords),u=s.length-1;for(this.__corner=0;u>=0;u--)if(r=s[u],this.isControlVisible(r)&&(i=this._getImageLines(t?this.oCoords[r].touchCorner:this.oCoords[r].corner),0!==(n=this._findCrossPoints({x:o,y:a},i))&&n%2===1))return this.__corner=r,r;return!1},forEachControl:function(e){for(var t in this.controls)e(this.controls[t],t,this)},_setCornerCoords:function(){var t,n,i=this.oCoords,o=e(45-this.angle),a=r.util.cos(o),s=r.util.sin(o),u=.707106*this.cornerSize,l=.707106*this.touchCornerSize,c=u*a,d=u*s,h=l*a,f=l*s;for(var p in i)t=i[p].x,n=i[p].y,i[p].corner={tl:{x:t-d,y:n-c},tr:{x:t+c,y:n-d},bl:{x:t-c,y:n+d},br:{x:t+d,y:n+c}},i[p].touchCorner={tl:{x:t-f,y:n-h},tr:{x:t+h,y:n-f},bl:{x:t-h,y:n+f},br:{x:t+f,y:n+h}}},drawSelectionBackground:function(t){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;t.save();var n=this.getCenterPoint(),i=this._calculateCurrentDimensions(),r=this.canvas.viewportTransform;return t.translate(n.x,n.y),t.scale(1/r[0],1/r[3]),t.rotate(e(this.angle)),t.fillStyle=this.selectionBackgroundColor,t.fillRect(-i.x/2,-i.y/2,i.x,i.y),t.restore(),this},drawBorders:function(e,t){t=t||{};var n=this._calculateCurrentDimensions(),i=this.borderScaleFactor,r=n.x+i,o=n.y+i,a="undefined"!==typeof t.hasControls?t.hasControls:this.hasControls,s=!1;return e.save(),e.strokeStyle=t.borderColor||this.borderColor,this._setLineDash(e,t.borderDashArray||this.borderDashArray,null),e.strokeRect(-r/2,-o/2,r,o),a&&(e.beginPath(),this.forEachControl((function(t,n,i){t.withConnection&&t.getVisibility(i,n)&&(s=!0,e.moveTo(t.x*r,t.y*o),e.lineTo(t.x*r+t.offsetX,t.y*o+t.offsetY))})),s&&e.stroke()),e.restore(),this},drawBordersInGroup:function(e,t,n){n=n||{};var i=r.util.sizeAfterTransform(this.width,this.height,t),o=this.strokeWidth,a=this.strokeUniform,s=this.borderScaleFactor,u=i.x+o*(a?this.canvas.getZoom():t.scaleX)+s,l=i.y+o*(a?this.canvas.getZoom():t.scaleY)+s;return e.save(),this._setLineDash(e,n.borderDashArray||this.borderDashArray,null),e.strokeStyle=n.borderColor||this.borderColor,e.strokeRect(-u/2,-l/2,u,l),e.restore(),this},drawControls:function(e,t){return t=t||{},e.save(),e.setTransform(this.canvas.getRetinaScaling(),0,0,this.canvas.getRetinaScaling(),0,0),e.strokeStyle=e.fillStyle=t.cornerColor||this.cornerColor,this.transparentCorners||(e.strokeStyle=t.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(e,t.cornerDashArray||this.cornerDashArray,null),this.setCoords(),this.forEachControl((function(n,i,r){n.getVisibility(r,i)&&n.render(e,r.oCoords[i].x,r.oCoords[i].y,t,r)})),e.restore(),this},isControlVisible:function(e){return this.controls[e]&&this.controls[e].getVisibility(this,e)},setControlVisible:function(e,t){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[e]=t,this},setControlsVisibility:function(e){for(var t in e||(e={}),e)this.setControlVisible(t,e[t]);return this},onDeselect:function(){},onSelect:function(){}})}(),r.util.object.extend(r.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(e,t){var n=function(){},i=(t=t||{}).onComplete||n,o=t.onChange||n,a=this;return r.util.animate({startValue:e.left,endValue:this.getCenter().left,duration:this.FX_DURATION,onChange:function(t){e.set("left",t),a.requestRenderAll(),o()},onComplete:function(){e.setCoords(),i()}}),this},fxCenterObjectV:function(e,t){var n=function(){},i=(t=t||{}).onComplete||n,o=t.onChange||n,a=this;return r.util.animate({startValue:e.top,endValue:this.getCenter().top,duration:this.FX_DURATION,onChange:function(t){e.set("top",t),a.requestRenderAll(),o()},onComplete:function(){e.setCoords(),i()}}),this},fxRemove:function(e,t){var n=function(){},i=(t=t||{}).onComplete||n,o=t.onChange||n,a=this;return r.util.animate({startValue:e.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(t){e.set("opacity",t),a.requestRenderAll(),o()},onComplete:function(){a.remove(e),i()}}),this}}),r.util.object.extend(r.Object.prototype,{animate:function(){if(arguments[0]&&"object"===typeof arguments[0]){var e,t,n=[];for(e in arguments[0])n.push(e);for(var i=0,r=n.length;i<r;i++)e=n[i],t=i!==r-1,this._animate(e,arguments[0][e],arguments[1],t)}else this._animate.apply(this,arguments);return this},_animate:function(e,t,n,i){var o,a=this;t=t.toString(),n=n?r.util.object.clone(n):{},~e.indexOf(".")&&(o=e.split("."));var s=a.colorProperties.indexOf(e)>-1||o&&a.colorProperties.indexOf(o[1])>-1,u=o?this.get(o[0])[o[1]]:this.get(e);"from"in n||(n.from=u),s||(t=~t.indexOf("=")?u+parseFloat(t.replace("=","")):parseFloat(t));var l={startValue:n.from,endValue:t,byValue:n.by,easing:n.easing,duration:n.duration,abort:n.abort&&function(){return n.abort.call(a)},onChange:function(t,r,s){o?a[o[0]][o[1]]=t:a.set(e,t),i||n.onChange&&n.onChange(t,r,s)},onComplete:function(e,t,r){i||(a.setCoords(),n.onComplete&&n.onComplete(e,t,r))}};s?r.util.animateColor(l.startValue,l.endValue,l.duration,l):r.util.animate(l)}}),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.util.object.clone,r={x1:1,x2:1,y1:1,y2:1},o=t.StaticCanvas.supports("setLineDash");function a(e,t){var n=e.origin,i=e.axis1,r=e.axis2,o=e.dimension,a=t.nearest,s=t.center,u=t.farthest;return function(){switch(this.get(n)){case a:return Math.min(this.get(i),this.get(r));case s:return Math.min(this.get(i),this.get(r))+.5*this.get(o);case u:return Math.max(this.get(i),this.get(r))}}}t.Line?t.warn("fabric.Line is already defined"):(t.Line=t.util.createClass(t.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,cacheProperties:t.Object.prototype.cacheProperties.concat("x1","x2","y1","y2"),initialize:function(e,t){e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.width=Math.abs(this.x2-this.x1),this.height=Math.abs(this.y2-this.y1),this.left="left"in e?e.left:this._getLeftToOriginX(),this.top="top"in e?e.top:this._getTopToOriginY()},_set:function(e,t){return this.callSuper("_set",e,t),"undefined"!==typeof r[e]&&this._setWidthHeight(),this},_getLeftToOriginX:a({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:a({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(e){if(e.beginPath(),!this.strokeDashArray||this.strokeDashArray&&o){var t=this.calcLinePoints();e.moveTo(t.x1,t.y1),e.lineTo(t.x2,t.y2)}e.lineWidth=this.strokeWidth;var n=e.strokeStyle;e.strokeStyle=this.stroke||e.fillStyle,this.stroke&&this._renderStroke(e),e.strokeStyle=n},_renderDashedStroke:function(e){var n=this.calcLinePoints();e.beginPath(),t.util.drawDashedLine(e,n.x1,n.y1,n.x2,n.y2,this.strokeDashArray),e.closePath()},_findCenterFromElement:function(){return{x:(this.x1+this.x2)/2,y:(this.y1+this.y2)/2}},toObject:function(e){return n(this.callSuper("toObject",e),this.calcLinePoints())},_getNonTransformedDimensions:function(){var e=this.callSuper("_getNonTransformedDimensions");return"butt"===this.strokeLineCap&&(0===this.width&&(e.y-=this.strokeWidth),0===this.height&&(e.x-=this.strokeWidth)),e},calcLinePoints:function(){var e=this.x1<=this.x2?-1:1,t=this.y1<=this.y2?-1:1,n=e*this.width*.5,i=t*this.height*.5;return{x1:n,x2:e*this.width*-.5,y1:i,y2:t*this.height*-.5}},_toSVG:function(){var e=this.calcLinePoints();return["<line ","COMMON_PARTS",'x1="',e.x1,'" y1="',e.y1,'" x2="',e.x2,'" y2="',e.y2,'" />\n']}}),t.Line.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" ")),t.Line.fromElement=function(e,i,r){r=r||{};var o=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),a=[o.x1||0,o.y1||0,o.x2||0,o.y2||0];i(new t.Line(a,n(o,r)))},t.Line.fromObject=function(e,n){var r=i(e,!0);r.points=[e.x1,e.y1,e.x2,e.y2],t.Object._fromObject("Line",r,(function(e){delete e.points,n&&n(e)}),"points")})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI;t.Circle?t.warn("fabric.Circle is already defined."):(t.Circle=t.util.createClass(t.Object,{type:"circle",radius:0,startAngle:0,endAngle:2*n,cacheProperties:t.Object.prototype.cacheProperties.concat("radius","startAngle","endAngle"),_set:function(e,t){return this.callSuper("_set",e,t),"radius"===e&&this.setRadius(t),this},toObject:function(e){return this.callSuper("toObject",["radius","startAngle","endAngle"].concat(e))},_toSVG:function(){var e,i=(this.endAngle-this.startAngle)%(2*n);if(0===i)e=["<circle ","COMMON_PARTS",'cx="0" cy="0" ','r="',this.radius,'" />\n'];else{var r=t.util.cos(this.startAngle)*this.radius,o=t.util.sin(this.startAngle)*this.radius,a=t.util.cos(this.endAngle)*this.radius,s=t.util.sin(this.endAngle)*this.radius,u=i>n?"1":"0";e=['<path d="M '+r+" "+o," A "+this.radius+" "+this.radius," 0 ",+u+" 1"," "+a+" "+s,'" ',"COMMON_PARTS"," />\n"]}return e},_render:function(e){e.beginPath(),e.arc(0,0,this.radius,this.startAngle,this.endAngle,!1),this._renderPaintInOrder(e)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){return this.radius=e,this.set("width",2*e).set("height",2*e)}}),t.Circle.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("cx cy r".split(" ")),t.Circle.fromElement=function(e,n){var i,r=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!("radius"in(i=r)&&i.radius>=0))throw new Error("value of `r` attribute is required and can not be negative");r.left=(r.left||0)-r.radius,r.top=(r.top||0)-r.radius,n(new t.Circle(r))},t.Circle.fromObject=function(e,n){return t.Object._fromObject("Circle",e,n)})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});t.Triangle?t.warn("fabric.Triangle is already defined"):(t.Triangle=t.util.createClass(t.Object,{type:"triangle",width:100,height:100,_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this._renderPaintInOrder(e)},_renderDashedStroke:function(e){var n=this.width/2,i=this.height/2;e.beginPath(),t.util.drawDashedLine(e,-n,i,0,-i,this.strokeDashArray),t.util.drawDashedLine(e,0,-i,n,i,this.strokeDashArray),t.util.drawDashedLine(e,n,i,-n,i,this.strokeDashArray),e.closePath()},_toSVG:function(){var e=this.width/2,t=this.height/2;return["<polygon ","COMMON_PARTS",'points="',[-e+" "+t,"0 "+-t,e+" "+t].join(","),'" />']}}),t.Triangle.fromObject=function(e,n){return t.Object._fromObject("Triangle",e,n)})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=2*Math.PI;t.Ellipse?t.warn("fabric.Ellipse is already defined."):(t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,cacheProperties:t.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(e){this.callSuper("initialize",e),this.set("rx",e&&e.rx||0),this.set("ry",e&&e.ry||0)},_set:function(e,t){switch(this.callSuper("_set",e,t),e){case"rx":this.rx=t,this.set("width",2*t);break;case"ry":this.ry=t,this.set("height",2*t)}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(e){return this.callSuper("toObject",["rx","ry"].concat(e))},_toSVG:function(){return["<ellipse ","COMMON_PARTS",'cx="0" cy="0" ','rx="',this.rx,'" ry="',this.ry,'" />\n']},_render:function(e){e.beginPath(),e.save(),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(0,0,this.rx,0,n,!1),e.restore(),this._renderPaintInOrder(e)}}),t.Ellipse.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" ")),t.Ellipse.fromElement=function(e,n){var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES);i.left=(i.left||0)-i.rx,i.top=(i.top||0)-i.ry,n(new t.Ellipse(i))},t.Ellipse.fromObject=function(e,n){return t.Object._fromObject("Ellipse",e,n)})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend;t.Rect?t.warn("fabric.Rect is already defined"):(t.Rect=t.util.createClass(t.Object,{stateProperties:t.Object.prototype.stateProperties.concat("rx","ry"),type:"rect",rx:0,ry:0,cacheProperties:t.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(e){this.callSuper("initialize",e),this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx?Math.min(this.rx,this.width/2):0,n=this.ry?Math.min(this.ry,this.height/2):0,i=this.width,r=this.height,o=-this.width/2,a=-this.height/2,s=0!==t||0!==n,u=.4477152502;e.beginPath(),e.moveTo(o+t,a),e.lineTo(o+i-t,a),s&&e.bezierCurveTo(o+i-u*t,a,o+i,a+u*n,o+i,a+n),e.lineTo(o+i,a+r-n),s&&e.bezierCurveTo(o+i,a+r-u*n,o+i-u*t,a+r,o+i-t,a+r),e.lineTo(o+t,a+r),s&&e.bezierCurveTo(o+u*t,a+r,o,a+r-u*n,o,a+r-n),e.lineTo(o,a+n),s&&e.bezierCurveTo(o,a+u*n,o+u*t,a,o+t,a),e.closePath(),this._renderPaintInOrder(e)},_renderDashedStroke:function(e){var n=-this.width/2,i=-this.height/2,r=this.width,o=this.height;e.beginPath(),t.util.drawDashedLine(e,n,i,n+r,i,this.strokeDashArray),t.util.drawDashedLine(e,n+r,i,n+r,i+o,this.strokeDashArray),t.util.drawDashedLine(e,n+r,i+o,n,i+o,this.strokeDashArray),t.util.drawDashedLine(e,n,i+o,n,i,this.strokeDashArray),e.closePath()},toObject:function(e){return this.callSuper("toObject",["rx","ry"].concat(e))},_toSVG:function(){return["<rect ","COMMON_PARTS",'x="',-this.width/2,'" y="',-this.height/2,'" rx="',this.rx,'" ry="',this.ry,'" width="',this.width,'" height="',this.height,'" />\n']}}),t.Rect.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" ")),t.Rect.fromElement=function(e,i,r){if(!e)return i(null);r=r||{};var o=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);o.left=o.left||0,o.top=o.top||0,o.height=o.height||0,o.width=o.width||0;var a=new t.Rect(n(r?t.util.object.clone(r):{},o));a.visible=a.visible&&a.width>0&&a.height>0,i(a)},t.Rect.fromObject=function(e,n){return t.Object._fromObject("Rect",e,n)})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.util.array.min,r=t.util.array.max,o=t.util.toFixed;t.Polyline?t.warn("fabric.Polyline is already defined"):(t.Polyline=t.util.createClass(t.Object,{type:"polyline",points:null,cacheProperties:t.Object.prototype.cacheProperties.concat("points"),initialize:function(e,t){t=t||{},this.points=e||[],this.callSuper("initialize",t),this._setPositionDimensions(t)},_setPositionDimensions:function(e){var t,n=this._calcDimensions(e);this.width=n.width,this.height=n.height,e.fromSVG||(t=this.translateToGivenOrigin({x:n.left-this.strokeWidth/2,y:n.top-this.strokeWidth/2},"left","top",this.originX,this.originY)),"undefined"===typeof e.left&&(this.left=e.fromSVG?n.left:t.x),"undefined"===typeof e.top&&(this.top=e.fromSVG?n.top:t.y),this.pathOffset={x:n.left+this.width/2,y:n.top+this.height/2}},_calcDimensions:function(){var e=this.points,t=i(e,"x")||0,n=i(e,"y")||0;return{left:t,top:n,width:(r(e,"x")||0)-t,height:(r(e,"y")||0)-n}},toObject:function(e){return n(this.callSuper("toObject",e),{points:this.points.concat()})},_toSVG:function(){for(var e=[],n=this.pathOffset.x,i=this.pathOffset.y,r=t.Object.NUM_FRACTION_DIGITS,a=0,s=this.points.length;a<s;a++)e.push(o(this.points[a].x-n,r),",",o(this.points[a].y-i,r)," ");return["<"+this.type+" ","COMMON_PARTS",'points="',e.join(""),'" />\n']},commonRender:function(e){var t,n=this.points.length,i=this.pathOffset.x,r=this.pathOffset.y;if(!n||isNaN(this.points[n-1].y))return!1;e.beginPath(),e.moveTo(this.points[0].x-i,this.points[0].y-r);for(var o=0;o<n;o++)t=this.points[o],e.lineTo(t.x-i,t.y-r);return!0},_render:function(e){this.commonRender(e)&&this._renderPaintInOrder(e)},_renderDashedStroke:function(e){var n,i;e.beginPath();for(var r=0,o=this.points.length;r<o;r++)n=this.points[r],i=this.points[r+1]||n,t.util.drawDashedLine(e,n.x,n.y,i.x,i.y,this.strokeDashArray)},complexity:function(){return this.get("points").length}}),t.Polyline.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat(),t.Polyline.fromElementGenerator=function(e){return function(i,r,o){if(!i)return r(null);o||(o={});var a=t.parsePointsAttribute(i.getAttribute("points")),s=t.parseAttributes(i,t[e].ATTRIBUTE_NAMES);s.fromSVG=!0,r(new t[e](a,n(s,o)))}},t.Polyline.fromElement=t.Polyline.fromElementGenerator("Polyline"),t.Polyline.fromObject=function(e,n){return t.Object._fromObject("Polyline",e,n,"points")})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});t.Polygon?t.warn("fabric.Polygon is already defined"):(t.Polygon=t.util.createClass(t.Polyline,{type:"polygon",_render:function(e){this.commonRender(e)&&(e.closePath(),this._renderPaintInOrder(e))},_renderDashedStroke:function(e){this.callSuper("_renderDashedStroke",e),e.closePath()}}),t.Polygon.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat(),t.Polygon.fromElement=t.Polyline.fromElementGenerator("Polygon"),t.Polygon.fromObject=function(e,n){return t.Object._fromObject("Polygon",e,n,"points")})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.array.min,i=t.util.array.max,r=t.util.object.extend,o=Object.prototype.toString,a=t.util.toFixed;t.Path?t.warn("fabric.Path is already defined"):(t.Path=t.util.createClass(t.Object,{type:"path",path:null,cacheProperties:t.Object.prototype.cacheProperties.concat("path","fillRule"),stateProperties:t.Object.prototype.stateProperties.concat("path"),initialize:function(e,n){n=n||{},this.callSuper("initialize",n),e||(e=[]);var i="[object Array]"===o.call(e);this.path=i?t.util.makePathSimpler(e):t.util.makePathSimpler(t.util.parsePath(e)),this.path&&t.Polyline.prototype._setPositionDimensions.call(this,n)},_renderPathCommands:function(e){var t,n=0,i=0,r=0,o=0,a=0,s=0,u=-this.pathOffset.x,l=-this.pathOffset.y;e.beginPath();for(var c=0,d=this.path.length;c<d;++c)switch((t=this.path[c])[0]){case"L":r=t[1],o=t[2],e.lineTo(r+u,o+l);break;case"M":n=r=t[1],i=o=t[2],e.moveTo(r+u,o+l);break;case"C":r=t[5],o=t[6],a=t[3],s=t[4],e.bezierCurveTo(t[1]+u,t[2]+l,a+u,s+l,r+u,o+l);break;case"Q":e.quadraticCurveTo(t[1]+u,t[2]+l,t[3]+u,t[4]+l),r=t[3],o=t[4],a=t[1],s=t[2];break;case"z":case"Z":r=n,o=i,e.closePath()}},_render:function(e){this._renderPathCommands(e),this._renderPaintInOrder(e)},toString:function(){return"#<fabric.Path ("+this.complexity()+'): { "top": '+this.top+', "left": '+this.left+" }>"},toObject:function(e){return r(this.callSuper("toObject",e),{path:this.path.map((function(e){return e.slice()}))})},toDatalessObject:function(e){var t=this.toObject(["sourcePath"].concat(e));return t.sourcePath&&delete t.path,t},_toSVG:function(){return["<path ","COMMON_PARTS",'d="',this.path.map((function(e){return e.join(" ")})).join(" "),'" stroke-linecap="round" ',"/>\n"]},_getOffsetTransform:function(){var e=t.Object.NUM_FRACTION_DIGITS;return" translate("+a(-this.pathOffset.x,e)+", "+a(-this.pathOffset.y,e)+")"},toClipPathSVG:function(e){var t=this._getOffsetTransform();return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:e,additionalTransform:t})},toSVG:function(e){var t=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:e,additionalTransform:t})},complexity:function(){return this.path.length},_calcDimensions:function(){for(var e,r,o=[],a=[],s=0,u=0,l=0,c=0,d=0,h=this.path.length;d<h;++d){switch((e=this.path[d])[0]){case"L":l=e[1],c=e[2],r=[];break;case"M":s=l=e[1],u=c=e[2],r=[];break;case"C":r=t.util.getBoundsOfCurve(l,c,e[1],e[2],e[3],e[4],e[5],e[6]),l=e[5],c=e[6];break;case"Q":r=t.util.getBoundsOfCurve(l,c,e[1],e[2],e[1],e[2],e[3],e[4]),l=e[3],c=e[4];break;case"z":case"Z":l=s,c=u}r.forEach((function(e){o.push(e.x),a.push(e.y)})),o.push(l),a.push(c)}var f=n(o)||0,p=n(a)||0;return{left:f,top:p,width:(i(o)||0)-f,height:(i(a)||0)-p}}}),t.Path.fromObject=function(e,n){if("string"===typeof e.sourcePath){var i=e.sourcePath;t.loadSVGFromURL(i,(function(t){var i=t[0];i.setOptions(e),n&&n(i)}))}else t.Object._fromObject("Path",e,n,"path")},t.Path.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat(["d"]),t.Path.fromElement=function(e,n,i){var o=t.parseAttributes(e,t.Path.ATTRIBUTE_NAMES);o.fromSVG=!0,n(new t.Path(o.d,r(o,i)))})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.array.min,i=t.util.array.max;t.Group||(t.Group=t.util.createClass(t.Object,t.Collection,{type:"group",strokeWidth:0,subTargetCheck:!1,cacheProperties:[],useSetOnGroup:!1,initialize:function(e,t,n){t=t||{},this._objects=[],n&&this.callSuper("initialize",t),this._objects=e||[];for(var i=this._objects.length;i--;)this._objects[i].group=this;if(n)this._updateObjectsACoords();else{var r=t&&t.centerPoint;void 0!==t.originX&&(this.originX=t.originX),void 0!==t.originY&&(this.originY=t.originY),r||this._calcBounds(),this._updateObjectsCoords(r),delete t.centerPoint,this.callSuper("initialize",t)}this.setCoords()},_updateObjectsACoords:function(){for(var e=this._objects.length;e--;)this._objects[e].setCoords(true)},_updateObjectsCoords:function(e){e=e||this.getCenterPoint();for(var t=this._objects.length;t--;)this._updateObjectCoords(this._objects[t],e)},_updateObjectCoords:function(e,t){var n=e.left,i=e.top;e.set({left:n-t.x,top:i-t.y}),e.group=this,e.setCoords(!0)},toString:function(){return"#<fabric.Group: ("+this.complexity()+")>"},addWithUpdate:function(e){return this._restoreObjectsState(),t.util.resetObjectTransform(this),e&&(this._objects.push(e),e.group=this,e._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},removeWithUpdate:function(e){return this._restoreObjectsState(),t.util.resetObjectTransform(this),this.remove(e),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},_onObjectAdded:function(e){this.dirty=!0,e.group=this,e._set("canvas",this.canvas)},_onObjectRemoved:function(e){this.dirty=!0,delete e.group},_set:function(e,n){var i=this._objects.length;if(this.useSetOnGroup)for(;i--;)this._objects[i].setOnGroup(e,n);if("canvas"===e)for(;i--;)this._objects[i]._set(e,n);t.Object.prototype._set.call(this,e,n)},toObject:function(e){var n=this.includeDefaultValues,i=this._objects.map((function(t){var i=t.includeDefaultValues;t.includeDefaultValues=n;var r=t.toObject(e);return t.includeDefaultValues=i,r})),r=t.Object.prototype.toObject.call(this,e);return r.objects=i,r},toDatalessObject:function(e){var n,i=this.sourcePath;if(i)n=i;else{var r=this.includeDefaultValues;n=this._objects.map((function(t){var n=t.includeDefaultValues;t.includeDefaultValues=r;var i=t.toDatalessObject(e);return t.includeDefaultValues=n,i}))}var o=t.Object.prototype.toDatalessObject.call(this,e);return o.objects=n,o},render:function(e){this._transformDone=!0,this.callSuper("render",e),this._transformDone=!1},shouldCache:function(){var e=t.Object.prototype.shouldCache.call(this);if(e)for(var n=0,i=this._objects.length;n<i;n++)if(this._objects[n].willDrawShadow())return this.ownCaching=!1,!1;return e},willDrawShadow:function(){if(t.Object.prototype.willDrawShadow.call(this))return!0;for(var e=0,n=this._objects.length;e<n;e++)if(this._objects[e].willDrawShadow())return!0;return!1},isOnACache:function(){return this.ownCaching||this.group&&this.group.isOnACache()},drawObject:function(e){for(var t=0,n=this._objects.length;t<n;t++)this._objects[t].render(e);this._drawClipPath(e)},isCacheDirty:function(e){if(this.callSuper("isCacheDirty",e))return!0;if(!this.statefullCache)return!1;for(var t=0,n=this._objects.length;t<n;t++)if(this._objects[t].isCacheDirty(!0)){if(this._cacheCanvas){var i=this.cacheWidth/this.zoomX,r=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-i/2,-r/2,i,r)}return!0}return!1},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},realizeTransform:function(e){var n=e.calcTransformMatrix(),i=t.util.qrDecompose(n),r=new t.Point(i.translateX,i.translateY);return e.flipX=!1,e.flipY=!1,e.set("scaleX",i.scaleX),e.set("scaleY",i.scaleY),e.skewX=i.skewX,e.skewY=i.skewY,e.angle=i.angle,e.setPositionByOrigin(r,"center","center"),e},_restoreObjectState:function(e){return this.realizeTransform(e),delete e.group,e.setCoords(),this},destroy:function(){return this._objects.forEach((function(e){e.set("dirty",!0)})),this._restoreObjectsState()},toActiveSelection:function(){if(this.canvas){var e=this._objects,n=this.canvas;this._objects=[];var i=this.toObject();delete i.objects;var r=new t.ActiveSelection([]);return r.set(i),r.type="activeSelection",n.remove(this),e.forEach((function(e){e.group=r,e.dirty=!0,n.add(e)})),r.canvas=n,r._objects=e,n._activeObject=r,r.setCoords(),r}},ungroupOnCanvas:function(){return this._restoreObjectsState()},setObjectsCoords:function(){return this.forEachObject((function(e){e.setCoords(true)})),this},_calcBounds:function(e){for(var t,n,i,r=[],o=[],a=["tr","br","bl","tl"],s=0,u=this._objects.length,l=a.length;s<u;++s)for((t=this._objects[s]).aCoords=t.calcACoords(),i=0;i<l;i++)n=a[i],r.push(t.aCoords[n].x),o.push(t.aCoords[n].y);this._getBounds(r,o,e)},_getBounds:function(e,r,o){var a=new t.Point(n(e),n(r)),s=new t.Point(i(e),i(r)),u=a.y||0,l=a.x||0,c=s.x-a.x||0,d=s.y-a.y||0;this.width=c,this.height=d,o||this.setPositionByOrigin({x:l,y:u},"left","top")},_toSVG:function(e){for(var t=["<g ","COMMON_PARTS"," >\n"],n=0,i=this._objects.length;n<i;n++)t.push("\t\t",this._objects[n].toSVG(e));return t.push("</g>\n"),t},getSvgStyles:function(){var e="undefined"!==typeof this.opacity&&1!==this.opacity?"opacity: "+this.opacity+";":"",t=this.visible?"":" visibility: hidden;";return[e,this.getSvgFilter(),t].join("")},toClipPathSVG:function(e){for(var t=[],n=0,i=this._objects.length;n<i;n++)t.push("\t",this._objects[n].toClipPathSVG(e));return this._createBaseClipPathSVGMarkup(t,{reviver:e})}}),t.Group.fromObject=function(e,n){var i=e.objects,r=t.util.object.clone(e,!0);delete r.objects,"string"!==typeof i?t.util.enlivenObjects(i,(function(i){t.util.enlivenObjects([e.clipPath],(function(r){var o=t.util.object.clone(e,!0);o.clipPath=r[0],delete o.objects,n&&n(new t.Group(i,o,!0))}))})):t.loadSVGFromURL(i,(function(o){var a=t.util.groupSVGElements(o,e,i);a.set(r),n&&n(a)}))})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={});t.ActiveSelection||(t.ActiveSelection=t.util.createClass(t.Group,{type:"activeSelection",initialize:function(e,n){n=n||{},this._objects=e||[];for(var i=this._objects.length;i--;)this._objects[i].group=this;n.originX&&(this.originX=n.originX),n.originY&&(this.originY=n.originY),this._calcBounds(),this._updateObjectsCoords(),t.Object.prototype.initialize.call(this,n),this.setCoords()},toGroup:function(){var e=this._objects.concat();this._objects=[];var n=t.Object.prototype.toObject.call(this),i=new t.Group([]);if(delete n.type,i.set(n),e.forEach((function(e){e.canvas.remove(e),e.group=i})),i._objects=e,!this.canvas)return i;var r=this.canvas;return r.add(i),r._activeObject=i,i.setCoords(),i},onDeselect:function(){return this.destroy(),!1},toString:function(){return"#<fabric.ActiveSelection: ("+this.complexity()+")>"},shouldCache:function(){return!1},isOnACache:function(){return!1},_renderControls:function(e,t,n){e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,this.callSuper("_renderControls",e,t),"undefined"===typeof(n=n||{}).hasControls&&(n.hasControls=!1),n.forActiveSelection=!0;for(var i=0,r=this._objects.length;i<r;i++)this._objects[i]._renderControls(e,n);e.restore()}}),t.ActiveSelection.fromObject=function(e,n){t.util.enlivenObjects(e.objects,(function(i){delete e.objects,n&&n(new t.ActiveSelection(i,e,!0))}))})}(t),function(e){"use strict";var t=r.util.object.extend;e.fabric||(e.fabric={}),e.fabric.Image?r.warn("fabric.Image is already defined."):(r.Image=r.util.createClass(r.Object,{type:"image",strokeWidth:0,srcFromAttribute:!1,_lastScaleX:1,_lastScaleY:1,_filterScalingX:1,_filterScalingY:1,minimumScaleTrigger:.5,stateProperties:r.Object.prototype.stateProperties.concat("cropX","cropY"),cacheKey:"",cropX:0,cropY:0,imageSmoothing:!0,initialize:function(e,t){t||(t={}),this.filters=[],this.cacheKey="texture"+r.Object.__uid++,this.callSuper("initialize",t),this._initElement(e,t)},getElement:function(){return this._element||{}},setElement:function(e,t){return this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._element=e,this._originalElement=e,this._initConfig(t),0!==this.filters.length&&this.applyFilters(),this.resizeFilter&&this.applyResizeFilters(),this},removeTexture:function(e){var t=r.filterBackend;t&&t.evictCachesForKey&&t.evictCachesForKey(e)},dispose:function(){this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._cacheContext=void 0,["_originalElement","_element","_filteredEl","_cacheCanvas"].forEach(function(e){r.util.cleanUpJsdomNode(this[e]),this[e]=void 0}.bind(this))},getCrossOrigin:function(){return this._originalElement&&(this._originalElement.crossOrigin||null)},getOriginalSize:function(){var e=this.getElement();return{width:e.naturalWidth||e.width,height:e.naturalHeight||e.height}},_stroke:function(e){if(this.stroke&&0!==this.strokeWidth){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,-n),e.lineTo(t,-n),e.lineTo(t,n),e.lineTo(-t,n),e.lineTo(-t,-n),e.closePath()}},_renderDashedStroke:function(e){var t=-this.width/2,n=-this.height/2,i=this.width,o=this.height;e.save(),this._setStrokeStyles(e,this),e.beginPath(),r.util.drawDashedLine(e,t,n,t+i,n,this.strokeDashArray),r.util.drawDashedLine(e,t+i,n,t+i,n+o,this.strokeDashArray),r.util.drawDashedLine(e,t+i,n+o,t,n+o,this.strokeDashArray),r.util.drawDashedLine(e,t,n+o,t,n,this.strokeDashArray),e.closePath(),e.restore()},toObject:function(e){var n=[];this.filters.forEach((function(e){e&&n.push(e.toObject())}));var i=t(this.callSuper("toObject",["cropX","cropY"].concat(e)),{src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:n});return this.resizeFilter&&(i.resizeFilter=this.resizeFilter.toObject()),i},hasCrop:function(){return this.cropX||this.cropY||this.width<this._element.width||this.height<this._element.height},_toSVG:function(){var e,t=[],n=[],i=this._element,o=-this.width/2,a=-this.height/2,s="",u="";if(!i)return[];if(this.hasCrop()){var l=r.Object.__uid++;t.push('<clipPath id="imageCrop_'+l+'">\n','\t<rect x="'+o+'" y="'+a+'" width="'+this.width+'" height="'+this.height+'" />\n',"</clipPath>\n"),s=' clip-path="url(#imageCrop_'+l+')" '}if(this.imageSmoothing||(u='" image-rendering="optimizeSpeed'),n.push("\t<image ","COMMON_PARTS",'xlink:href="',this.getSvgSrc(!0),'" x="',o-this.cropX,'" y="',a-this.cropY,'" width="',i.width||i.naturalWidth,'" height="',i.height||i.height,u,'"',s,"></image>\n"),this.stroke||this.strokeDashArray){var c=this.fill;this.fill=null,e=["\t<rect ",'x="',o,'" y="',a,'" width="',this.width,'" height="',this.height,'" style="',this.getSvgStyles(),'"/>\n'],this.fill=c}return t="fill"!==this.paintFirst?t.concat(e,n):t.concat(n,e)},getSrc:function(e){var t=e?this._element:this._originalElement;return t?t.toDataURL?t.toDataURL():this.srcFromAttribute?t.getAttribute("src"):t.src:this.src||""},setSrc:function(e,t,n){return r.util.loadImage(e,(function(e,i){this.setElement(e,n),this._setWidthHeight(),t&&t(this,i)}),this,n&&n.crossOrigin),this},toString:function(){return'#<fabric.Image: { src: "'+this.getSrc()+'" }>'},applyResizeFilters:function(){var e=this.resizeFilter,t=this.minimumScaleTrigger,n=this.getTotalObjectScaling(),i=n.scaleX,o=n.scaleY,a=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!e||i>t&&o>t)return this._element=a,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=i,void(this._lastScaleY=o);r.filterBackend||(r.filterBackend=r.initFilterBackend());var s=r.util.createCanvasElement(),u=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,l=a.width,c=a.height;s.width=l,s.height=c,this._element=s,this._lastScaleX=e.scaleX=i,this._lastScaleY=e.scaleY=o,r.filterBackend.applyFilters([e],a,l,c,this._element,u),this._filterScalingX=s.width/this._originalElement.width,this._filterScalingY=s.height/this._originalElement.height},applyFilters:function(e){if(e=(e=e||this.filters||[]).filter((function(e){return e&&!e.isNeutralState()})),this.set("dirty",!0),this.removeTexture(this.cacheKey+"_filtered"),0===e.length)return this._element=this._originalElement,this._filteredEl=null,this._filterScalingX=1,this._filterScalingY=1,this;var t=this._originalElement,n=t.naturalWidth||t.width,i=t.naturalHeight||t.height;if(this._element===this._originalElement){var o=r.util.createCanvasElement();o.width=n,o.height=i,this._element=o,this._filteredEl=o}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,n,i),this._lastScaleX=1,this._lastScaleY=1;return r.filterBackend||(r.filterBackend=r.initFilterBackend()),r.filterBackend.applyFilters(e,this._originalElement,n,i,this._element,this.cacheKey),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height),this},_render:function(e){r.util.setImageSmoothing(e,this.imageSmoothing),!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(e),this._renderPaintInOrder(e)},drawCacheOnCanvas:function(e){r.util.setImageSmoothing(e,this.imageSmoothing),r.Object.prototype.drawCacheOnCanvas.call(this,e)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(e){var t=this._element;if(t){var n=this._filterScalingX,i=this._filterScalingY,r=this.width,o=this.height,a=Math.min,s=Math.max,u=s(this.cropX,0),l=s(this.cropY,0),c=t.naturalWidth||t.width,d=t.naturalHeight||t.height,h=u*n,f=l*i,p=a(r*n,c-h),v=a(o*i,d-f),g=-r/2,m=-o/2,_=a(r,c/n-u),y=a(o,d/n-l);t&&e.drawImage(t,h,f,p,v,g,m,_,y)}},_needsResize:function(){var e=this.getTotalObjectScaling();return e.scaleX!==this._lastScaleX||e.scaleY!==this._lastScaleY},_resetWidthHeight:function(){this.set(this.getOriginalSize())},_initElement:function(e,t){this.setElement(r.util.getById(e),t),r.util.addClass(this.getElement(),r.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e,t){e&&e.length?r.util.enlivenObjects(e,(function(e){t&&t(e)}),"fabric.Image.filters"):t&&t()},_setWidthHeight:function(e){e||(e={});var t=this.getElement();this.width=e.width||t.naturalWidth||t.width||0,this.height=e.height||t.naturalHeight||t.height||0},parsePreserveAspectRatioAttribute:function(){var e,t=r.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),n=this._element.width,i=this._element.height,o=1,a=1,s=0,u=0,l=0,c=0,d=this.width,h=this.height,f={width:d,height:h};return!t||"none"===t.alignX&&"none"===t.alignY?(o=d/n,a=h/i):("meet"===t.meetOrSlice&&(e=(d-n*(o=a=r.util.findScaleToFit(this._element,f)))/2,"Min"===t.alignX&&(s=-e),"Max"===t.alignX&&(s=e),e=(h-i*a)/2,"Min"===t.alignY&&(u=-e),"Max"===t.alignY&&(u=e)),"slice"===t.meetOrSlice&&(e=n-d/(o=a=r.util.findScaleToCover(this._element,f)),"Mid"===t.alignX&&(l=e/2),"Max"===t.alignX&&(l=e),e=i-h/a,"Mid"===t.alignY&&(c=e/2),"Max"===t.alignY&&(c=e),n=d/o,i=h/a)),{width:n,height:i,scaleX:o,scaleY:a,offsetLeft:s,offsetTop:u,cropX:l,cropY:c}}}),r.Image.CSS_CANVAS="canvas-img",r.Image.prototype.getSvgSrc=r.Image.prototype.getSrc,r.Image.fromObject=function(e,t){var n=r.util.object.clone(e);r.util.loadImage(n.src,(function(e,i){i?t&&t(null,!0):r.Image.prototype._initFilters.call(n,n.filters,(function(i){n.filters=i||[],r.Image.prototype._initFilters.call(n,[n.resizeFilter],(function(i){n.resizeFilter=i[0],r.util.enlivenObjects([n.clipPath],(function(i){n.clipPath=i[0];var o=new r.Image(e,n);t(o,!1)}))}))}))}),null,n.crossOrigin)},r.Image.fromURL=function(e,t,n){r.util.loadImage(e,(function(e,i){t&&t(new r.Image(e,n),i)}),null,n&&n.crossOrigin)},r.Image.ATTRIBUTE_NAMES=r.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),r.Image.fromElement=function(e,n,i){var o=r.parseAttributes(e,r.Image.ATTRIBUTE_NAMES);r.Image.fromURL(o["xlink:href"],n,t(i?r.util.object.clone(i):{},o))})}(t),r.util.object.extend(r.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.angle%360;return e>0?90*Math.round((e-1)/90):90*Math.round(e/90)},straighten:function(){return this.rotate(this._getAngleValueForStraighten()),this},fxStraighten:function(e){var t=function(){},n=(e=e||{}).onComplete||t,i=e.onChange||t,o=this;return r.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){o.rotate(e),i()},onComplete:function(){o.setCoords(),n()}}),this}}),r.util.object.extend(r.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.requestRenderAllBound}),this}}),function(){"use strict";function e(e,t){var n="precision "+t+" float;\nvoid main(){}",i=e.createShader(e.FRAGMENT_SHADER);return e.shaderSource(i,n),e.compileShader(i),!!e.getShaderParameter(i,e.COMPILE_STATUS)}function t(e){e&&e.tileSize&&(this.tileSize=e.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}r.isWebglSupported=function(t){if(r.isLikelyNode)return!1;t=t||r.WebglFilterBackend.prototype.tileSize;var n=document.createElement("canvas"),i=n.getContext("webgl")||n.getContext("experimental-webgl"),o=!1;if(i){r.maxTextureSize=i.getParameter(i.MAX_TEXTURE_SIZE),o=r.maxTextureSize>=t;for(var a=["highp","mediump","lowp"],s=0;s<3;s++)if(e(i,a[s])){r.webGlPrecision=a[s];break}}return this.isSupported=o,o},r.WebglFilterBackend=t,t.prototype={tileSize:2048,resources:{},setupGLContext:function(e,t){this.dispose(),this.createWebGLCanvas(e,t),this.aPosition=new Float32Array([0,0,0,1,1,0,1,1]),this.chooseFastestCopyGLTo2DMethod(e,t)},chooseFastestCopyGLTo2DMethod:function(e,t){var n,i="undefined"!==typeof window.performance;try{new ImageData(1,1),n=!0}catch(p){n=!1}var o="undefined"!==typeof ArrayBuffer,u="undefined"!==typeof Uint8ClampedArray;if(i&&n&&o&&u){var l=r.util.createCanvasElement(),c=new ArrayBuffer(e*t*4);if(r.forceGLPutImageData)return this.imageBuffer=c,void(this.copyGLTo2D=s);var d,h,f={imageBuffer:c,destinationWidth:e,destinationHeight:t,targetCanvas:l};l.width=e,l.height=t,d=window.performance.now(),a.call(f,this.gl,f),h=window.performance.now()-d,d=window.performance.now(),s.call(f,this.gl,f),h>window.performance.now()-d?(this.imageBuffer=c,this.copyGLTo2D=s):this.copyGLTo2D=a}},createWebGLCanvas:function(e,t){var n=r.util.createCanvasElement();n.width=e,n.height=t;var i={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},o=n.getContext("webgl",i);o||(o=n.getContext("experimental-webgl",i)),o&&(o.clearColor(0,0,0,0),this.canvas=n,this.gl=o)},applyFilters:function(e,t,n,i,r,o){var a,s=this.gl;o&&(a=this.getCachedTexture(o,t));var u={originalWidth:t.width||t.originalWidth,originalHeight:t.height||t.originalHeight,sourceWidth:n,sourceHeight:i,destinationWidth:n,destinationHeight:i,context:s,sourceTexture:this.createTexture(s,n,i,!a&&t),targetTexture:this.createTexture(s,n,i),originalTexture:a||this.createTexture(s,n,i,!a&&t),passes:e.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:r},l=s.createFramebuffer();return s.bindFramebuffer(s.FRAMEBUFFER,l),e.forEach((function(e){e&&e.applyTo(u)})),function(e){var t=e.targetCanvas,n=t.width,i=t.height,r=e.destinationWidth,o=e.destinationHeight;n===r&&i===o||(t.width=r,t.height=o)}(u),this.copyGLTo2D(s,u),s.bindTexture(s.TEXTURE_2D,null),s.deleteTexture(u.sourceTexture),s.deleteTexture(u.targetTexture),s.deleteFramebuffer(l),r.getContext("2d").setTransform(1,0,0,1,0,0),u},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(e,t,n,i){var r=e.createTexture();return e.bindTexture(e.TEXTURE_2D,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),i?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.UNSIGNED_BYTE,null),r},getCachedTexture:function(e,t){if(this.textureCache[e])return this.textureCache[e];var n=this.createTexture(this.gl,t.width,t.height,t);return this.textureCache[e]=n,n},evictCachesForKey:function(e){this.textureCache[e]&&(this.gl.deleteTexture(this.textureCache[e]),delete this.textureCache[e])},copyGLTo2D:a,captureGPUInfo:function(){if(this.gpuInfo)return this.gpuInfo;var e=this.gl,t={renderer:"",vendor:""};if(!e)return t;var n=e.getExtension("WEBGL_debug_renderer_info");if(n){var i=e.getParameter(n.UNMASKED_RENDERER_WEBGL),r=e.getParameter(n.UNMASKED_VENDOR_WEBGL);i&&(t.renderer=i.toLowerCase()),r&&(t.vendor=r.toLowerCase())}return this.gpuInfo=t,t}}}(),function(){"use strict";var e=function(){};function t(){}r.Canvas2dFilterBackend=t,t.prototype={evictCachesForKey:e,dispose:e,clearWebGLCaches:e,resources:{},applyFilters:function(e,t,n,i,r){var o=r.getContext("2d");o.drawImage(t,0,0,n,i);var a={sourceWidth:n,sourceHeight:i,imageData:o.getImageData(0,0,n,i),originalEl:t,originalImageData:o.getImageData(0,0,n,i),canvasEl:r,ctx:o,filterBackend:this};return e.forEach((function(e){e.applyTo(a)})),a.imageData.width===n&&a.imageData.height===i||(r.width=a.imageData.width,r.height=a.imageData.height),o.putImageData(a.imageData,0,0),a}}}(),r.Image=r.Image||{},r.Image.filters=r.Image.filters||{},r.Image.filters.BaseFilter=r.util.createClass({type:"BaseFilter",vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvoid main() {\nvTexCoord = aPosition;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:"precision highp float;\nvarying vec2 vTexCoord;\nuniform sampler2D uTexture;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\n}",initialize:function(e){e&&this.setOptions(e)},setOptions:function(e){for(var t in e)this[t]=e[t]},createProgram:function(e,t,n){t=t||this.fragmentSource,n=n||this.vertexSource,"highp"!==r.webGlPrecision&&(t=t.replace(/precision highp float/g,"precision "+r.webGlPrecision+" float"));var i=e.createShader(e.VERTEX_SHADER);if(e.shaderSource(i,n),e.compileShader(i),!e.getShaderParameter(i,e.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+e.getShaderInfoLog(i));var o=e.createShader(e.FRAGMENT_SHADER);if(e.shaderSource(o,t),e.compileShader(o),!e.getShaderParameter(o,e.COMPILE_STATUS))throw new Error("Fragment shader compile error for "+this.type+": "+e.getShaderInfoLog(o));var a=e.createProgram();if(e.attachShader(a,i),e.attachShader(a,o),e.linkProgram(a),!e.getProgramParameter(a,e.LINK_STATUS))throw new Error('Shader link error for "${this.type}" '+e.getProgramInfoLog(a));var s=this.getAttributeLocations(e,a),u=this.getUniformLocations(e,a)||{};return u.uStepW=e.getUniformLocation(a,"uStepW"),u.uStepH=e.getUniformLocation(a,"uStepH"),{program:a,attributeLocations:s,uniformLocations:u}},getAttributeLocations:function(e,t){return{aPosition:e.getAttribLocation(t,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(e,t,n){var i=t.aPosition,r=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,r),e.enableVertexAttribArray(i),e.vertexAttribPointer(i,2,e.FLOAT,!1,0,0),e.bufferData(e.ARRAY_BUFFER,n,e.STATIC_DRAW)},_setupFrameBuffer:function(e){var t,n,i=e.context;e.passes>1?(t=e.destinationWidth,n=e.destinationHeight,e.sourceWidth===t&&e.sourceHeight===n||(i.deleteTexture(e.targetTexture),e.targetTexture=e.filterBackend.createTexture(i,t,n)),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,e.targetTexture,0)):(i.bindFramebuffer(i.FRAMEBUFFER,null),i.finish())},_swapTextures:function(e){e.passes--,e.pass++;var t=e.targetTexture;e.targetTexture=e.sourceTexture,e.sourceTexture=t},isNeutralState:function(){var e=this.mainParameter,t=r.Image.filters[this.type].prototype;if(e){if(Array.isArray(t[e])){for(var n=t[e].length;n--;)if(this[e][n]!==t[e][n])return!1;return!0}return t[e]===this[e]}return!1},applyTo:function(e){e.webgl?(this._setupFrameBuffer(e),this.applyToWebGL(e),this._swapTextures(e)):this.applyTo2d(e)},retrieveShader:function(e){return e.programCache.hasOwnProperty(this.type)||(e.programCache[this.type]=this.createProgram(e.context)),e.programCache[this.type]},applyToWebGL:function(e){var t=e.context,n=this.retrieveShader(e);0===e.pass&&e.originalTexture?t.bindTexture(t.TEXTURE_2D,e.originalTexture):t.bindTexture(t.TEXTURE_2D,e.sourceTexture),t.useProgram(n.program),this.sendAttributeData(t,n.attributeLocations,e.aPosition),t.uniform1f(n.uniformLocations.uStepW,1/e.sourceWidth),t.uniform1f(n.uniformLocations.uStepH,1/e.sourceHeight),this.sendUniformData(t,n.uniformLocations),t.viewport(0,0,e.destinationWidth,e.destinationHeight),t.drawArrays(t.TRIANGLE_STRIP,0,4)},bindAdditionalTexture:function(e,t,n){e.activeTexture(n),e.bindTexture(e.TEXTURE_2D,t),e.activeTexture(e.TEXTURE0)},unbindAdditionalTexture:function(e,t){e.activeTexture(t),e.bindTexture(e.TEXTURE_2D,null),e.activeTexture(e.TEXTURE0)},getMainParameter:function(){return this[this.mainParameter]},setMainParameter:function(e){this[this.mainParameter]=e},sendUniformData:function(){},createHelpLayer:function(e){if(!e.helpLayer){var t=document.createElement("canvas");t.width=e.sourceWidth,t.height=e.sourceHeight,e.helpLayer=t}},toObject:function(){var e={type:this.type},t=this.mainParameter;return t&&(e[t]=this[t]),e},toJSON:function(){return this.toObject()}}),r.Image.filters.BaseFilter.fromObject=function(e,t){var n=new r.Image.filters[e.type](e);return t&&t(n),n},function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.ColorMatrix=i(n.BaseFilter,{type:"ColorMatrix",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nuniform mat4 uColorMatrix;\nuniform vec4 uConstants;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor *= uColorMatrix;\ncolor += uConstants;\ngl_FragColor = color;\n}",matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0,initialize:function(e){this.callSuper("initialize",e),this.matrix=this.matrix.slice(0)},applyTo2d:function(e){var t,n,i,r,o,a=e.imageData.data,s=a.length,u=this.matrix,l=this.colorsOnly;for(o=0;o<s;o+=4)t=a[o],n=a[o+1],i=a[o+2],l?(a[o]=t*u[0]+n*u[1]+i*u[2]+255*u[4],a[o+1]=t*u[5]+n*u[6]+i*u[7]+255*u[9],a[o+2]=t*u[10]+n*u[11]+i*u[12]+255*u[14]):(r=a[o+3],a[o]=t*u[0]+n*u[1]+i*u[2]+r*u[3]+255*u[4],a[o+1]=t*u[5]+n*u[6]+i*u[7]+r*u[8]+255*u[9],a[o+2]=t*u[10]+n*u[11]+i*u[12]+r*u[13]+255*u[14],a[o+3]=t*u[15]+n*u[16]+i*u[17]+r*u[18]+255*u[19])},getUniformLocations:function(e,t){return{uColorMatrix:e.getUniformLocation(t,"uColorMatrix"),uConstants:e.getUniformLocation(t,"uConstants")}},sendUniformData:function(e,t){var n=this.matrix,i=[n[0],n[1],n[2],n[3],n[5],n[6],n[7],n[8],n[10],n[11],n[12],n[13],n[15],n[16],n[17],n[18]],r=[n[4],n[9],n[14],n[19]];e.uniformMatrix4fv(t.uColorMatrix,!1,i),e.uniform4fv(t.uConstants,r)}}),t.Image.filters.ColorMatrix.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Brightness=i(n.BaseFilter,{type:"Brightness",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uBrightness;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor.rgb += uBrightness;\ngl_FragColor = color;\n}",brightness:0,mainParameter:"brightness",applyTo2d:function(e){if(0!==this.brightness){var t,n=e.imageData.data,i=n.length,r=Math.round(255*this.brightness);for(t=0;t<i;t+=4)n[t]=n[t]+r,n[t+1]=n[t+1]+r,n[t+2]=n[t+2]+r}},getUniformLocations:function(e,t){return{uBrightness:e.getUniformLocation(t,"uBrightness")}},sendUniformData:function(e,t){e.uniform1f(t.uBrightness,this.brightness)}}),t.Image.filters.Brightness.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.Image.filters,r=t.util.createClass;i.Convolute=r(i.BaseFilter,{type:"Convolute",opaque:!1,matrix:[0,0,0,0,1,0,0,0,0],fragmentSource:{Convolute_3_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[9];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 3.0; h+=1.0) {\nfor (float w = 0.0; w < 3.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_3_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[9];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 3.0; h+=1.0) {\nfor (float w = 0.0; w < 3.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_5_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[25];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 5.0; h+=1.0) {\nfor (float w = 0.0; w < 5.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_5_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[25];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 5.0; h+=1.0) {\nfor (float w = 0.0; w < 5.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_7_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[49];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 7.0; h+=1.0) {\nfor (float w = 0.0; w < 7.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_7_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[49];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 7.0; h+=1.0) {\nfor (float w = 0.0; w < 7.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_9_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[81];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 9.0; h+=1.0) {\nfor (float w = 0.0; w < 9.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_9_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[81];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 9.0; h+=1.0) {\nfor (float w = 0.0; w < 9.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}"},retrieveShader:function(e){var t=Math.sqrt(this.matrix.length),n=this.type+"_"+t+"_"+(this.opaque?1:0),i=this.fragmentSource[n];return e.programCache.hasOwnProperty(n)||(e.programCache[n]=this.createProgram(e.context,i)),e.programCache[n]},applyTo2d:function(e){var t,n,i,r,o,a,s,u,l,c,d,h,f,p=e.imageData,v=p.data,g=this.matrix,m=Math.round(Math.sqrt(g.length)),_=Math.floor(m/2),y=p.width,b=p.height,w=e.ctx.createImageData(y,b),C=w.data,k=this.opaque?1:0;for(d=0;d<b;d++)for(c=0;c<y;c++){for(o=4*(d*y+c),t=0,n=0,i=0,r=0,f=0;f<m;f++)for(h=0;h<m;h++)a=c+h-_,(s=d+f-_)<0||s>=b||a<0||a>=y||(u=4*(s*y+a),l=g[f*m+h],t+=v[u]*l,n+=v[u+1]*l,i+=v[u+2]*l,k||(r+=v[u+3]*l));C[o]=t,C[o+1]=n,C[o+2]=i,C[o+3]=k?v[o+3]:r}e.imageData=w},getUniformLocations:function(e,t){return{uMatrix:e.getUniformLocation(t,"uMatrix"),uOpaque:e.getUniformLocation(t,"uOpaque"),uHalfSize:e.getUniformLocation(t,"uHalfSize"),uSize:e.getUniformLocation(t,"uSize")}},sendUniformData:function(e,t){e.uniform1fv(t.uMatrix,this.matrix)},toObject:function(){return n(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}}),t.Image.filters.Convolute.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Grayscale=i(n.BaseFilter,{type:"Grayscale",fragmentSource:{average:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat average = (color.r + color.b + color.g) / 3.0;\ngl_FragColor = vec4(average, average, average, color.a);\n}",lightness:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\ngl_FragColor = vec4(average, average, average, col.a);\n}",luminosity:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\ngl_FragColor = vec4(average, average, average, col.a);\n}"},mode:"average",mainParameter:"mode",applyTo2d:function(e){var t,n,i=e.imageData.data,r=i.length,o=this.mode;for(t=0;t<r;t+=4)"average"===o?n=(i[t]+i[t+1]+i[t+2])/3:"lightness"===o?n=(Math.min(i[t],i[t+1],i[t+2])+Math.max(i[t],i[t+1],i[t+2]))/2:"luminosity"===o&&(n=.21*i[t]+.72*i[t+1]+.07*i[t+2]),i[t]=n,i[t+1]=n,i[t+2]=n},retrieveShader:function(e){var t=this.type+"_"+this.mode;if(!e.programCache.hasOwnProperty(t)){var n=this.fragmentSource[this.mode];e.programCache[t]=this.createProgram(e.context,n)}return e.programCache[t]},getUniformLocations:function(e,t){return{uMode:e.getUniformLocation(t,"uMode")}},sendUniformData:function(e,t){e.uniform1i(t.uMode,1)},isNeutralState:function(){return!1}}),t.Image.filters.Grayscale.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Invert=i(n.BaseFilter,{type:"Invert",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uInvert;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nif (uInvert == 1) {\ngl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\n} else {\ngl_FragColor = color;\n}\n}",invert:!0,mainParameter:"invert",applyTo2d:function(e){var t,n=e.imageData.data,i=n.length;for(t=0;t<i;t+=4)n[t]=255-n[t],n[t+1]=255-n[t+1],n[t+2]=255-n[t+2]},isNeutralState:function(){return!this.invert},getUniformLocations:function(e,t){return{uInvert:e.getUniformLocation(t,"uInvert")}},sendUniformData:function(e,t){e.uniform1i(t.uInvert,this.invert)}}),t.Image.filters.Invert.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.Image.filters,r=t.util.createClass;i.Noise=r(i.BaseFilter,{type:"Noise",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uStepH;\nuniform float uNoise;\nuniform float uSeed;\nvarying vec2 vTexCoord;\nfloat rand(vec2 co, float seed, float vScale) {\nreturn fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\n}\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\ngl_FragColor = color;\n}",mainParameter:"noise",noise:0,applyTo2d:function(e){if(0!==this.noise){var t,n,i=e.imageData.data,r=i.length,o=this.noise;for(t=0,r=i.length;t<r;t+=4)n=(.5-Math.random())*o,i[t]+=n,i[t+1]+=n,i[t+2]+=n}},getUniformLocations:function(e,t){return{uNoise:e.getUniformLocation(t,"uNoise"),uSeed:e.getUniformLocation(t,"uSeed")}},sendUniformData:function(e,t){e.uniform1f(t.uNoise,this.noise/255),e.uniform1f(t.uSeed,Math.random())},toObject:function(){return n(this.callSuper("toObject"),{noise:this.noise})}}),t.Image.filters.Noise.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Pixelate=i(n.BaseFilter,{type:"Pixelate",blocksize:4,mainParameter:"blocksize",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uBlocksize;\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nfloat blockW = uBlocksize * uStepW;\nfloat blockH = uBlocksize * uStepW;\nint posX = int(vTexCoord.x / blockW);\nint posY = int(vTexCoord.y / blockH);\nfloat fposX = float(posX);\nfloat fposY = float(posY);\nvec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\nvec4 color = texture2D(uTexture, squareCoords);\ngl_FragColor = color;\n}",applyTo2d:function(e){var t,n,i,r,o,a,s,u,l,c,d,h=e.imageData,f=h.data,p=h.height,v=h.width;for(n=0;n<p;n+=this.blocksize)for(i=0;i<v;i+=this.blocksize)for(r=f[t=4*n*v+4*i],o=f[t+1],a=f[t+2],s=f[t+3],c=Math.min(n+this.blocksize,p),d=Math.min(i+this.blocksize,v),u=n;u<c;u++)for(l=i;l<d;l++)f[t=4*u*v+4*l]=r,f[t+1]=o,f[t+2]=a,f[t+3]=s},isNeutralState:function(){return 1===this.blocksize},getUniformLocations:function(e,t){return{uBlocksize:e.getUniformLocation(t,"uBlocksize"),uStepW:e.getUniformLocation(t,"uStepW"),uStepH:e.getUniformLocation(t,"uStepH")}},sendUniformData:function(e,t){e.uniform1f(t.uBlocksize,this.blocksize)}}),t.Image.filters.Pixelate.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,i=t.Image.filters,r=t.util.createClass;i.RemoveColor=r(i.BaseFilter,{type:"RemoveColor",color:"#FFFFFF",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uLow;\nuniform vec4 uHigh;\nvarying vec2 vTexCoord;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\nif(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\ngl_FragColor.a = 0.0;\n}\n}",distance:.02,useAlpha:!1,applyTo2d:function(e){var n,i,r,o,a=e.imageData.data,s=255*this.distance,u=new t.Color(this.color).getSource(),l=[u[0]-s,u[1]-s,u[2]-s],c=[u[0]+s,u[1]+s,u[2]+s];for(n=0;n<a.length;n+=4)i=a[n],r=a[n+1],o=a[n+2],i>l[0]&&r>l[1]&&o>l[2]&&i<c[0]&&r<c[1]&&o<c[2]&&(a[n+3]=0)},getUniformLocations:function(e,t){return{uLow:e.getUniformLocation(t,"uLow"),uHigh:e.getUniformLocation(t,"uHigh")}},sendUniformData:function(e,n){var i=new t.Color(this.color).getSource(),r=parseFloat(this.distance),o=[0+i[0]/255-r,0+i[1]/255-r,0+i[2]/255-r,1],a=[i[0]/255+r,i[1]/255+r,i[2]/255+r,1];e.uniform4fv(n.uLow,o),e.uniform4fv(n.uHigh,a)},toObject:function(){return n(this.callSuper("toObject"),{color:this.color,distance:this.distance})}}),t.Image.filters.RemoveColor.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass,r={Brownie:[.5997,.34553,-.27082,0,.186,-.0377,.86095,.15059,0,-.1449,.24113,-.07441,.44972,0,-.02965,0,0,0,1,0],Vintage:[.62793,.32021,-.03965,0,.03784,.02578,.64411,.03259,0,.02926,.0466,-.08512,.52416,0,.02023,0,0,0,1,0],Kodachrome:[1.12855,-.39673,-.03992,0,.24991,-.16404,1.08352,-.05498,0,.09698,-.16786,-.56034,1.60148,0,.13972,0,0,0,1,0],Technicolor:[1.91252,-.85453,-.09155,0,.04624,-.30878,1.76589,-.10601,0,-.27589,-.2311,-.75018,1.84759,0,.12137,0,0,0,1,0],Polaroid:[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0],Sepia:[.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0],BlackWhite:[1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,0,0,0,1,0]};for(var o in r)n[o]=i(n.ColorMatrix,{type:o,matrix:r[o],mainParameter:!1,colorsOnly:!0}),t.Image.filters[o].fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric,n=t.Image.filters,i=t.util.createClass;n.BlendColor=i(n.BaseFilter,{type:"BlendColor",color:"#F95C63",mode:"multiply",alpha:1,fragmentSource:{multiply:"gl_FragColor.rgb *= uColor.rgb;\n",screen:"gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\n",add:"gl_FragColor.rgb += uColor.rgb;\n",diff:"gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\n",subtract:"gl_FragColor.rgb -= uColor.rgb;\n",lighten:"gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\n",darken:"gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\n",exclusion:"gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\n",overlay:"if (uColor.r < 0.5) {\ngl_FragColor.r *= 2.0 * uColor.r;\n} else {\ngl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\n}\nif (uColor.g < 0.5) {\ngl_FragColor.g *= 2.0 * uColor.g;\n} else {\ngl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\n}\nif (uColor.b < 0.5) {\ngl_FragColor.b *= 2.0 * uColor.b;\n} else {\ngl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\n}\n",tint:"gl_FragColor.rgb *= (1.0 - uColor.a);\ngl_FragColor.rgb += uColor.rgb;\n"},buildSource:function(e){return"precision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ngl_FragColor = color;\nif (color.a > 0.0) {\n"+this.fragmentSource[e]+"}\n}"},retrieveShader:function(e){var t,n=this.type+"_"+this.mode;return e.programCache.hasOwnProperty(n)||(t=this.buildSource(this.mode),e.programCache[n]=this.createProgram(e.context,t)),e.programCache[n]},applyTo2d:function(e){var n,i,r,o,a,s,u,l=e.imageData.data,c=l.length,d=1-this.alpha;n=(u=new t.Color(this.color).getSource())[0]*this.alpha,i=u[1]*this.alpha,r=u[2]*this.alpha;for(var h=0;h<c;h+=4)switch(o=l[h],a=l[h+1],s=l[h+2],this.mode){case"multiply":l[h]=o*n/255,l[h+1]=a*i/255,l[h+2]=s*r/255;break;case"screen":l[h]=255-(255-o)*(255-n)/255,l[h+1]=255-(255-a)*(255-i)/255,l[h+2]=255-(255-s)*(255-r)/255;break;case"add":l[h]=o+n,l[h+1]=a+i,l[h+2]=s+r;break;case"diff":case"difference":l[h]=Math.abs(o-n),l[h+1]=Math.abs(a-i),l[h+2]=Math.abs(s-r);break;case"subtract":l[h]=o-n,l[h+1]=a-i,l[h+2]=s-r;break;case"darken":l[h]=Math.min(o,n),l[h+1]=Math.min(a,i),l[h+2]=Math.min(s,r);break;case"lighten":l[h]=Math.max(o,n),l[h+1]=Math.max(a,i),l[h+2]=Math.max(s,r);break;case"overlay":l[h]=n<128?2*o*n/255:255-2*(255-o)*(255-n)/255,l[h+1]=i<128?2*a*i/255:255-2*(255-a)*(255-i)/255,l[h+2]=r<128?2*s*r/255:255-2*(255-s)*(255-r)/255;break;case"exclusion":l[h]=n+o-2*n*o/255,l[h+1]=i+a-2*i*a/255,l[h+2]=r+s-2*r*s/255;break;case"tint":l[h]=n+o*d,l[h+1]=i+a*d,l[h+2]=r+s*d}},getUniformLocations:function(e,t){return{uColor:e.getUniformLocation(t,"uColor")}},sendUniformData:function(e,n){var i=new t.Color(this.color).getSource();i[0]=this.alpha*i[0]/255,i[1]=this.alpha*i[1]/255,i[2]=this.alpha*i[2]/255,i[3]=this.alpha,e.uniform4fv(n.uColor,i)},toObject:function(){return{type:this.type,color:this.color,mode:this.mode,alpha:this.alpha}}}),t.Image.filters.BlendColor.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric,n=t.Image.filters,i=t.util.createClass;n.BlendImage=i(n.BaseFilter,{type:"BlendImage",image:null,mode:"multiply",alpha:1,vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nuniform mat3 uTransformMatrix;\nvoid main() {\nvTexCoord = aPosition;\nvTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:{multiply:"precision highp float;\nuniform sampler2D uTexture;\nuniform sampler2D uImage;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec4 color2 = texture2D(uImage, vTexCoord2);\ncolor.rgba *= color2.rgba;\ngl_FragColor = color;\n}",mask:"precision highp float;\nuniform sampler2D uTexture;\nuniform sampler2D uImage;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec4 color2 = texture2D(uImage, vTexCoord2);\ncolor.a = color2.a;\ngl_FragColor = color;\n}"},retrieveShader:function(e){var t=this.type+"_"+this.mode,n=this.fragmentSource[this.mode];return e.programCache.hasOwnProperty(t)||(e.programCache[t]=this.createProgram(e.context,n)),e.programCache[t]},applyToWebGL:function(e){var t=e.context,n=this.createTexture(e.filterBackend,this.image);this.bindAdditionalTexture(t,n,t.TEXTURE1),this.callSuper("applyToWebGL",e),this.unbindAdditionalTexture(t,t.TEXTURE1)},createTexture:function(e,t){return e.getCachedTexture(t.cacheKey,t._element)},calculateMatrix:function(){var e=this.image,t=e._element.width,n=e._element.height;return[1/e.scaleX,0,0,0,1/e.scaleY,0,-e.left/t,-e.top/n,1]},applyTo2d:function(e){var n,i,r,o,a,s,u,l,c,d,h,f=e.imageData,p=e.filterBackend.resources,v=f.data,g=v.length,m=f.width,_=f.height,y=this.image;p.blendImage||(p.blendImage=t.util.createCanvasElement()),d=(c=p.blendImage).getContext("2d"),c.width!==m||c.height!==_?(c.width=m,c.height=_):d.clearRect(0,0,m,_),d.setTransform(y.scaleX,0,0,y.scaleY,y.left,y.top),d.drawImage(y._element,0,0,m,_),h=d.getImageData(0,0,m,_).data;for(var b=0;b<g;b+=4)switch(a=v[b],s=v[b+1],u=v[b+2],l=v[b+3],n=h[b],i=h[b+1],r=h[b+2],o=h[b+3],this.mode){case"multiply":v[b]=a*n/255,v[b+1]=s*i/255,v[b+2]=u*r/255,v[b+3]=l*o/255;break;case"mask":v[b+3]=o}},getUniformLocations:function(e,t){return{uTransformMatrix:e.getUniformLocation(t,"uTransformMatrix"),uImage:e.getUniformLocation(t,"uImage")}},sendUniformData:function(e,t){var n=this.calculateMatrix();e.uniform1i(t.uImage,1),e.uniformMatrix3fv(t.uTransformMatrix,!1,n)},toObject:function(){return{type:this.type,image:this.image&&this.image.toObject(),mode:this.mode,alpha:this.alpha}}}),t.Image.filters.BlendImage.fromObject=function(e,n){t.Image.fromObject(e.image,(function(i){var r=t.util.object.clone(e);r.image=i,n(new t.Image.filters.BlendImage(r))}))}}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.pow,i=Math.floor,r=Math.sqrt,o=Math.abs,a=Math.round,s=Math.sin,u=Math.ceil,l=t.Image.filters,c=t.util.createClass;l.Resize=c(l.BaseFilter,{type:"Resize",resizeType:"hermite",scaleX:1,scaleY:1,lanczosLobes:3,getUniformLocations:function(e,t){return{uDelta:e.getUniformLocation(t,"uDelta"),uTaps:e.getUniformLocation(t,"uTaps")}},sendUniformData:function(e,t){e.uniform2fv(t.uDelta,this.horizontal?[1/this.width,0]:[0,1/this.height]),e.uniform1fv(t.uTaps,this.taps)},retrieveShader:function(e){var t=this.getFilterWindow(),n=this.type+"_"+t;if(!e.programCache.hasOwnProperty(n)){var i=this.generateShader(t);e.programCache[n]=this.createProgram(e.context,i)}return e.programCache[n]},getFilterWindow:function(){var e=this.tempScale;return Math.ceil(this.lanczosLobes/e)},getTaps:function(){for(var e=this.lanczosCreate(this.lanczosLobes),t=this.tempScale,n=this.getFilterWindow(),i=new Array(n),r=1;r<=n;r++)i[r-1]=e(r*t);return i},generateShader:function(e){for(var t=new Array(e),n=this.fragmentSourceTOP,i=1;i<=e;i++)t[i-1]=i+".0 * uDelta";return n+="uniform float uTaps["+e+"];\n",n+="void main() {\n",n+=" vec4 color = texture2D(uTexture, vTexCoord);\n",n+=" float sum = 1.0;\n",t.forEach((function(e,t){n+=" color += texture2D(uTexture, vTexCoord + "+e+") * uTaps["+t+"];\n",n+=" color += texture2D(uTexture, vTexCoord - "+e+") * uTaps["+t+"];\n",n+=" sum += 2.0 * uTaps["+t+"];\n"})),n+=" gl_FragColor = color / sum;\n",n+="}"},fragmentSourceTOP:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec2 uDelta;\nvarying vec2 vTexCoord;\n",applyTo:function(e){e.webgl?(e.passes++,this.width=e.sourceWidth,this.horizontal=!0,this.dW=Math.round(this.width*this.scaleX),this.dH=e.sourceHeight,this.tempScale=this.dW/this.width,this.taps=this.getTaps(),e.destinationWidth=this.dW,this._setupFrameBuffer(e),this.applyToWebGL(e),this._swapTextures(e),e.sourceWidth=e.destinationWidth,this.height=e.sourceHeight,this.horizontal=!1,this.dH=Math.round(this.height*this.scaleY),this.tempScale=this.dH/this.height,this.taps=this.getTaps(),e.destinationHeight=this.dH,this._setupFrameBuffer(e),this.applyToWebGL(e),this._swapTextures(e),e.sourceHeight=e.destinationHeight):this.applyTo2d(e)},isNeutralState:function(){return 1===this.scaleX&&1===this.scaleY},lanczosCreate:function(e){return function(t){if(t>=e||t<=-e)return 0;if(t<1.1920929e-7&&t>-1.1920929e-7)return 1;var n=(t*=Math.PI)/e;return s(t)/t*s(n)/n}},applyTo2d:function(e){var t=e.imageData,n=this.scaleX,i=this.scaleY;this.rcpScaleX=1/n,this.rcpScaleY=1/i;var r,o=t.width,s=t.height,u=a(o*n),l=a(s*i);"sliceHack"===this.resizeType?r=this.sliceByTwo(e,o,s,u,l):"hermite"===this.resizeType?r=this.hermiteFastResize(e,o,s,u,l):"bilinear"===this.resizeType?r=this.bilinearFiltering(e,o,s,u,l):"lanczos"===this.resizeType&&(r=this.lanczosResize(e,o,s,u,l)),e.imageData=r},sliceByTwo:function(e,n,r,o,a){var s,u,l=e.imageData,c=.5,d=!1,h=!1,f=n*c,p=r*c,v=t.filterBackend.resources,g=0,m=0,_=n,y=0;for(v.sliceByTwo||(v.sliceByTwo=document.createElement("canvas")),((s=v.sliceByTwo).width<1.5*n||s.height<r)&&(s.width=1.5*n,s.height=r),(u=s.getContext("2d")).clearRect(0,0,1.5*n,r),u.putImageData(l,0,0),o=i(o),a=i(a);!d||!h;)n=f,r=p,o<i(f*c)?f=i(f*c):(f=o,d=!0),a<i(p*c)?p=i(p*c):(p=a,h=!0),u.drawImage(s,g,m,n,r,_,y,f,p),g=_,m=y,y+=p;return u.getImageData(g,m,o,a)},lanczosResize:function(e,t,a,s,l){var c=e.imageData.data,d=e.ctx.createImageData(s,l),h=d.data,f=this.lanczosCreate(this.lanczosLobes),p=this.rcpScaleX,v=this.rcpScaleY,g=2/this.rcpScaleX,m=2/this.rcpScaleY,_=u(p*this.lanczosLobes/2),y=u(v*this.lanczosLobes/2),b={},w={},C={};return function e(u){var k,S,x,L,E,N,D,M,T,O,I;for(w.x=(u+.5)*p,C.x=i(w.x),k=0;k<l;k++){for(w.y=(k+.5)*v,C.y=i(w.y),E=0,N=0,D=0,M=0,T=0,S=C.x-_;S<=C.x+_;S++)if(!(S<0||S>=t)){O=i(1e3*o(S-w.x)),b[O]||(b[O]={});for(var A=C.y-y;A<=C.y+y;A++)A<0||A>=a||(I=i(1e3*o(A-w.y)),b[O][I]||(b[O][I]=f(r(n(O*g,2)+n(I*m,2))/1e3)),(x=b[O][I])>0&&(E+=x,N+=x*c[L=4*(A*t+S)],D+=x*c[L+1],M+=x*c[L+2],T+=x*c[L+3]))}h[L=4*(k*s+u)]=N/E,h[L+1]=D/E,h[L+2]=M/E,h[L+3]=T/E}return++u<s?e(u):d}(0)},bilinearFiltering:function(e,t,n,r,o){var a,s,u,l,c,d,h,f,p,v=0,g=this.rcpScaleX,m=this.rcpScaleY,_=4*(t-1),y=e.imageData.data,b=e.ctx.createImageData(r,o),w=b.data;for(u=0;u<o;u++)for(l=0;l<r;l++)for(c=g*l-(a=i(g*l)),d=m*u-(s=i(m*u)),p=4*(s*t+a),h=0;h<4;h++)f=y[p+h]*(1-c)*(1-d)+y[p+4+h]*c*(1-d)+y[p+_+h]*d*(1-c)+y[p+_+4+h]*c*d,w[v++]=f;return b},hermiteFastResize:function(e,t,n,a,s){for(var l=this.rcpScaleX,c=this.rcpScaleY,d=u(l/2),h=u(c/2),f=e.imageData.data,p=e.ctx.createImageData(a,s),v=p.data,g=0;g<s;g++)for(var m=0;m<a;m++){for(var _=4*(m+g*a),y=0,b=0,w=0,C=0,k=0,S=0,x=0,L=(g+.5)*c,E=i(g*c);E<(g+1)*c;E++)for(var N=o(L-(E+.5))/h,D=(m+.5)*l,M=N*N,T=i(m*l);T<(m+1)*l;T++){var O=o(D-(T+.5))/d,I=r(M+O*O);I>1&&I<-1||(y=2*I*I*I-3*I*I+1)>0&&(x+=y*f[(O=4*(T+E*t))+3],w+=y,f[O+3]<255&&(y=y*f[O+3]/250),C+=y*f[O],k+=y*f[O+1],S+=y*f[O+2],b+=y)}v[_]=C/b,v[_+1]=k/b,v[_+2]=S/b,v[_+3]=x/w}return p},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaleY:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}}),t.Image.filters.Resize.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Contrast=i(n.BaseFilter,{type:"Contrast",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uContrast;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\ncolor.rgb = contrastF * (color.rgb - 0.5) + 0.5;\ngl_FragColor = color;\n}",contrast:0,mainParameter:"contrast",applyTo2d:function(e){if(0!==this.contrast){var t,n=e.imageData.data,i=n.length,r=Math.floor(255*this.contrast),o=259*(r+255)/(255*(259-r));for(t=0;t<i;t+=4)n[t]=o*(n[t]-128)+128,n[t+1]=o*(n[t+1]-128)+128,n[t+2]=o*(n[t+2]-128)+128}},getUniformLocations:function(e,t){return{uContrast:e.getUniformLocation(t,"uContrast")}},sendUniformData:function(e,t){e.uniform1f(t.uContrast,this.contrast)}}),t.Image.filters.Contrast.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Saturation=i(n.BaseFilter,{type:"Saturation",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uSaturation;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat rgMax = max(color.r, color.g);\nfloat rgbMax = max(rgMax, color.b);\ncolor.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\ncolor.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\ncolor.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\ngl_FragColor = color;\n}",saturation:0,mainParameter:"saturation",applyTo2d:function(e){if(0!==this.saturation){var t,n,i=e.imageData.data,r=i.length,o=-this.saturation;for(t=0;t<r;t+=4)n=Math.max(i[t],i[t+1],i[t+2]),i[t]+=n!==i[t]?(n-i[t])*o:0,i[t+1]+=n!==i[t+1]?(n-i[t+1])*o:0,i[t+2]+=n!==i[t+2]?(n-i[t+2])*o:0}},getUniformLocations:function(e,t){return{uSaturation:e.getUniformLocation(t,"uSaturation")}},sendUniformData:function(e,t){e.uniform1f(t.uSaturation,-this.saturation)}}),t.Image.filters.Saturation.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Blur=i(n.BaseFilter,{type:"Blur",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec2 uDelta;\nvarying vec2 vTexCoord;\nconst float nSamples = 15.0;\nvec3 v3offset = vec3(12.9898, 78.233, 151.7182);\nfloat random(vec3 scale) {\nreturn fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\n}\nvoid main() {\nvec4 color = vec4(0.0);\nfloat total = 0.0;\nfloat offset = random(v3offset);\nfor (float t = -nSamples; t <= nSamples; t++) {\nfloat percent = (t + offset - 0.5) / nSamples;\nfloat weight = 1.0 - abs(percent);\ncolor += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;\ntotal += weight;\n}\ngl_FragColor = color / total;\n}",blur:0,mainParameter:"blur",applyTo:function(e){e.webgl?(this.aspectRatio=e.sourceWidth/e.sourceHeight,e.passes++,this._setupFrameBuffer(e),this.horizontal=!0,this.applyToWebGL(e),this._swapTextures(e),this._setupFrameBuffer(e),this.horizontal=!1,this.applyToWebGL(e),this._swapTextures(e)):this.applyTo2d(e)},applyTo2d:function(e){e.imageData=this.simpleBlur(e)},simpleBlur:function(e){var n,i,r=e.filterBackend.resources,o=e.imageData.width,a=e.imageData.height;r.blurLayer1||(r.blurLayer1=t.util.createCanvasElement(),r.blurLayer2=t.util.createCanvasElement()),n=r.blurLayer1,i=r.blurLayer2,n.width===o&&n.height===a||(i.width=n.width=o,i.height=n.height=a);var s,u,l,c,d=n.getContext("2d"),h=i.getContext("2d"),f=15,p=.06*this.blur*.5;for(d.putImageData(e.imageData,0,0),h.clearRect(0,0,o,a),c=-15;c<=f;c++)l=p*(u=c/f)*o+(s=(Math.random()-.5)/4),h.globalAlpha=1-Math.abs(u),h.drawImage(n,l,s),d.drawImage(i,0,0),h.globalAlpha=1,h.clearRect(0,0,i.width,i.height);for(c=-15;c<=f;c++)l=p*(u=c/f)*a+(s=(Math.random()-.5)/4),h.globalAlpha=1-Math.abs(u),h.drawImage(n,s,l),d.drawImage(i,0,0),h.globalAlpha=1,h.clearRect(0,0,i.width,i.height);e.ctx.drawImage(n,0,0);var v=e.ctx.getImageData(0,0,n.width,n.height);return d.globalAlpha=1,d.clearRect(0,0,n.width,n.height),v},getUniformLocations:function(e,t){return{delta:e.getUniformLocation(t,"uDelta")}},sendUniformData:function(e,t){var n=this.chooseRightDelta();e.uniform2fv(t.delta,n)},chooseRightDelta:function(){var e,t=1,n=[0,0];return this.horizontal?this.aspectRatio>1&&(t=1/this.aspectRatio):this.aspectRatio<1&&(t=this.aspectRatio),e=t*this.blur*.12,this.horizontal?n[0]=e:n[1]=e,n}}),n.Blur.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Gamma=i(n.BaseFilter,{type:"Gamma",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec3 uGamma;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec3 correction = (1.0 / uGamma);\ncolor.r = pow(color.r, correction.r);\ncolor.g = pow(color.g, correction.g);\ncolor.b = pow(color.b, correction.b);\ngl_FragColor = color;\ngl_FragColor.rgb *= color.a;\n}",gamma:[1,1,1],mainParameter:"gamma",initialize:function(e){this.gamma=[1,1,1],n.BaseFilter.prototype.initialize.call(this,e)},applyTo2d:function(e){var t,n=e.imageData.data,i=this.gamma,r=n.length,o=1/i[0],a=1/i[1],s=1/i[2];for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),t=0,r=256;t<r;t++)this.rVals[t]=255*Math.pow(t/255,o),this.gVals[t]=255*Math.pow(t/255,a),this.bVals[t]=255*Math.pow(t/255,s);for(t=0,r=n.length;t<r;t+=4)n[t]=this.rVals[n[t]],n[t+1]=this.gVals[n[t+1]],n[t+2]=this.bVals[n[t+2]]},getUniformLocations:function(e,t){return{uGamma:e.getUniformLocation(t,"uGamma")}},sendUniformData:function(e,t){e.uniform3fv(t.uGamma,this.gamma)}}),t.Image.filters.Gamma.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.Composed=i(n.BaseFilter,{type:"Composed",subFilters:[],initialize:function(e){this.callSuper("initialize",e),this.subFilters=this.subFilters.slice(0)},applyTo:function(e){e.passes+=this.subFilters.length-1,this.subFilters.forEach((function(t){t.applyTo(e)}))},toObject:function(){return t.util.object.extend(this.callSuper("toObject"),{subFilters:this.subFilters.map((function(e){return e.toObject()}))})},isNeutralState:function(){return!this.subFilters.some((function(e){return!e.isNeutralState()}))}}),t.Image.filters.Composed.fromObject=function(e,n){var i=(e.subFilters||[]).map((function(e){return new t.Image.filters[e.type](e)})),r=new t.Image.filters.Composed({subFilters:i});return n&&n(r),r}}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,i=t.util.createClass;n.HueRotation=i(n.ColorMatrix,{type:"HueRotation",rotation:0,mainParameter:"rotation",calculateMatrix:function(){var e=this.rotation*Math.PI,n=t.util.cos(e),i=t.util.sin(e),r=1/3,o=Math.sqrt(r)*i,a=1-n;this.matrix=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],this.matrix[0]=n+a/3,this.matrix[1]=r*a-o,this.matrix[2]=r*a+o,this.matrix[5]=r*a+o,this.matrix[6]=n+r*a,this.matrix[7]=r*a-o,this.matrix[10]=r*a-o,this.matrix[11]=r*a+o,this.matrix[12]=n+r*a},isNeutralState:function(e){return this.calculateMatrix(),n.BaseFilter.prototype.isNeutralState.call(this,e)},applyTo:function(e){this.calculateMatrix(),n.BaseFilter.prototype.applyTo.call(this,e)}}),t.Image.filters.HueRotation.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.clone;t.Text?t.warn("fabric.Text is already defined"):(t.Text=t.util.createClass(t.Object,{_dimensionAffectingProps:["fontSize","fontWeight","fontFamily","fontStyle","lineHeight","text","charSpacing","textAlign","styles"],_reNewline:/\r?\n/,_reSpacesAndTabs:/[ \t\r]/g,_reSpaceAndTab:/[ \t\r]/,_reWords:/\S+/g,type:"text",fontSize:40,fontWeight:"normal",fontFamily:"Times New Roman",underline:!1,overline:!1,linethrough:!1,textAlign:"left",fontStyle:"normal",lineHeight:1.16,superscript:{size:.6,baseline:-.35},subscript:{size:.6,baseline:.11},textBackgroundColor:"",stateProperties:t.Object.prototype.stateProperties.concat("fontFamily","fontWeight","fontSize","text","underline","overline","linethrough","textAlign","fontStyle","lineHeight","textBackgroundColor","charSpacing","styles"),cacheProperties:t.Object.prototype.cacheProperties.concat("fontFamily","fontWeight","fontSize","text","underline","overline","linethrough","textAlign","fontStyle","lineHeight","textBackgroundColor","charSpacing","styles"),stroke:null,shadow:null,_fontSizeFraction:.222,offsets:{underline:.1,linethrough:-.315,overline:-.88},_fontSizeMult:1.13,charSpacing:0,styles:null,_measuringContext:null,deltaY:0,_styleProperties:["stroke","strokeWidth","fill","fontFamily","fontSize","fontWeight","fontStyle","underline","overline","linethrough","deltaY","textBackgroundColor"],__charBounds:[],CACHE_FONT_SIZE:400,MIN_TEXT_WIDTH:2,initialize:function(e,t){this.styles=t&&t.styles||{},this.text=e,this.__skipDimension=!0,this.callSuper("initialize",t),this.__skipDimension=!1,this.initDimensions(),this.setCoords(),this.setupState({propertySet:"_dimensionAffectingProps"})},getMeasuringContext:function(){return t._measuringContext||(t._measuringContext=this.canvas&&this.canvas.contextCache||t.util.createCanvasElement().getContext("2d")),t._measuringContext},_splitText:function(){var e=this._splitTextIntoLines(this.text);return this.textLines=e.lines,this._textLines=e.graphemeLines,this._unwrappedTextLines=e._unwrappedLines,this._text=e.graphemeText,e},initDimensions:function(){this.__skipDimension||(this._splitText(),this._clearCache(),this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},enlargeSpaces:function(){for(var e,t,n,i,r,o,a,s=0,u=this._textLines.length;s<u;s++)if(("justify"===this.textAlign||s!==u-1&&!this.isEndOfWrapping(s))&&(i=0,r=this._textLines[s],(t=this.getLineWidth(s))<this.width&&(a=this.textLines[s].match(this._reSpacesAndTabs)))){n=a.length,e=(this.width-t)/n;for(var l=0,c=r.length;l<=c;l++)o=this.__charBounds[s][l],this._reSpaceAndTab.test(r[l])?(o.width+=e,o.kernedWidth+=e,o.left+=i,i+=e):o.left+=i}},isEndOfWrapping:function(e){return e===this._textLines.length-1},missingNewlineOffset:function(){return 1},toString:function(){return"#<fabric.Text ("+this.complexity()+'): { "text": "'+this.text+'", "fontFamily": "'+this.fontFamily+'" }>'},_getCacheCanvasDimensions:function(){var e=this.callSuper("_getCacheCanvasDimensions"),t=this.fontSize;return e.width+=t*e.zoomX,e.height+=t*e.zoomY,e},_render:function(e){this._setTextStyles(e),this._renderTextLinesBackground(e),this._renderTextDecoration(e,"underline"),this._renderText(e),this._renderTextDecoration(e,"overline"),this._renderTextDecoration(e,"linethrough")},_renderText:function(e){"stroke"===this.paintFirst?(this._renderTextStroke(e),this._renderTextFill(e)):(this._renderTextFill(e),this._renderTextStroke(e))},_setTextStyles:function(e,t,n){e.textBaseline="alphabetic",e.font=this._getFontDeclaration(t,n)},calcTextWidth:function(){for(var e=this.getLineWidth(0),t=1,n=this._textLines.length;t<n;t++){var i=this.getLineWidth(t);i>e&&(e=i)}return e},_renderTextLine:function(e,t,n,i,r,o){this._renderChars(e,t,n,i,r,o)},_renderTextLinesBackground:function(e){if(this.textBackgroundColor||this.styleHas("textBackgroundColor")){for(var t,n,i,r,o,a,s=0,u=e.fillStyle,l=this._getLeftOffset(),c=this._getTopOffset(),d=0,h=0,f=0,p=this._textLines.length;f<p;f++)if(t=this.getHeightOfLine(f),this.textBackgroundColor||this.styleHas("textBackgroundColor",f)){i=this._textLines[f],n=this._getLineLeftOffset(f),h=0,d=0,r=this.getValueOfPropertyAt(f,0,"textBackgroundColor");for(var v=0,g=i.length;v<g;v++)o=this.__charBounds[f][v],(a=this.getValueOfPropertyAt(f,v,"textBackgroundColor"))!==r?(e.fillStyle=r,r&&e.fillRect(l+n+d,c+s,h,t/this.lineHeight),d=o.left,h=o.width,r=a):h+=o.kernedWidth;a&&(e.fillStyle=a,e.fillRect(l+n+d,c+s,h,t/this.lineHeight)),s+=t}else s+=t;e.fillStyle=u,this._removeShadow(e)}},getFontCache:function(e){var n=e.fontFamily.toLowerCase();t.charWidthsCache[n]||(t.charWidthsCache[n]={});var i=t.charWidthsCache[n],r=e.fontStyle.toLowerCase()+"_"+(e.fontWeight+"").toLowerCase();return i[r]||(i[r]={}),i[r]},_applyCharStyles:function(e,t,n,i,r){this._setFillStyles(t,r),this._setStrokeStyles(t,r),t.font=this._getFontDeclaration(r)},_measureChar:function(e,t,n,i){var r,o,a,s,u=this.getFontCache(t),l=n+e,c=this._getFontDeclaration(t)===this._getFontDeclaration(i),d=t.fontSize/this.CACHE_FONT_SIZE;if(n&&void 0!==u[n]&&(a=u[n]),void 0!==u[e]&&(s=r=u[e]),c&&void 0!==u[l]&&(s=(o=u[l])-a),void 0===r||void 0===a||void 0===o){var h=this.getMeasuringContext();this._setTextStyles(h,t,!0)}return void 0===r&&(s=r=h.measureText(e).width,u[e]=r),void 0===a&&c&&n&&(a=h.measureText(n).width,u[n]=a),c&&void 0===o&&(o=h.measureText(l).width,u[l]=o,s=o-a),{width:r*d,kernedWidth:s*d}},getHeightOfChar:function(e,t){return this.getValueOfPropertyAt(e,t,"fontSize")},measureLine:function(e){var t=this._measureLine(e);return 0!==this.charSpacing&&(t.width-=this._getWidthOfCharSpacing()),t.width<0&&(t.width=0),t},_measureLine:function(e){var t,n,i,r,o=0,a=this._textLines[e],s=new Array(a.length);for(this.__charBounds[e]=s,t=0;t<a.length;t++)n=a[t],r=this._getGraphemeBox(n,e,t,i),s[t]=r,o+=r.kernedWidth,i=n;return s[t]={left:r?r.left+r.width:0,width:0,kernedWidth:0,height:this.fontSize},{width:o,numOfSpaces:0}},_getGraphemeBox:function(e,t,n,i,r){var o,a=this.getCompleteStyleDeclaration(t,n),s=i?this.getCompleteStyleDeclaration(t,n-1):{},u=this._measureChar(e,a,i,s),l=u.kernedWidth,c=u.width;0!==this.charSpacing&&(c+=o=this._getWidthOfCharSpacing(),l+=o);var d={width:c,left:0,height:a.fontSize,kernedWidth:l,deltaY:a.deltaY};if(n>0&&!r){var h=this.__charBounds[t][n-1];d.left=h.left+h.width+u.kernedWidth-u.width}return d},getHeightOfLine:function(e){if(this.__lineHeights[e])return this.__lineHeights[e];for(var t=this._textLines[e],n=this.getHeightOfChar(e,0),i=1,r=t.length;i<r;i++)n=Math.max(this.getHeightOfChar(e,i),n);return this.__lineHeights[e]=n*this.lineHeight*this._fontSizeMult},calcTextHeight:function(){for(var e,t=0,n=0,i=this._textLines.length;n<i;n++)e=this.getHeightOfLine(n),t+=n===i-1?e/this.lineHeight:e;return t},_getLeftOffset:function(){return-this.width/2},_getTopOffset:function(){return-this.height/2},_renderTextCommon:function(e,t){e.save();for(var n=0,i=this._getLeftOffset(),r=this._getTopOffset(),o=this._applyPatternGradientTransform(e,"fillText"===t?this.fill:this.stroke),a=0,s=this._textLines.length;a<s;a++){var u=this.getHeightOfLine(a),l=u/this.lineHeight,c=this._getLineLeftOffset(a);this._renderTextLine(t,e,this._textLines[a],i+c-o.offsetX,r+n+l-o.offsetY,a),n+=u}e.restore()},_renderTextFill:function(e){(this.fill||this.styleHas("fill"))&&this._renderTextCommon(e,"fillText")},_renderTextStroke:function(e){(this.stroke&&0!==this.strokeWidth||!this.isEmptyStyles())&&(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(e),e.save(),this._setLineDash(e,this.strokeDashArray),e.beginPath(),this._renderTextCommon(e,"strokeText"),e.closePath(),e.restore())},_renderChars:function(e,t,n,i,r,o){var a,s,u,l,c=this.getHeightOfLine(o),d=-1!==this.textAlign.indexOf("justify"),h="",f=0,p=!d&&0===this.charSpacing&&this.isEmptyStyles(o);if(t.save(),r-=c*this._fontSizeFraction/this.lineHeight,p)return this._renderChar(e,t,o,0,n.join(""),i,r,c),void t.restore();for(var v=0,g=n.length-1;v<=g;v++)l=v===g||this.charSpacing,h+=n[v],u=this.__charBounds[o][v],0===f?(i+=u.kernedWidth-u.width,f+=u.width):f+=u.kernedWidth,d&&!l&&this._reSpaceAndTab.test(n[v])&&(l=!0),l||(a=a||this.getCompleteStyleDeclaration(o,v),s=this.getCompleteStyleDeclaration(o,v+1),l=this._hasStyleChanged(a,s)),l&&(this._renderChar(e,t,o,v,h,i,r,c),h="",a=s,i+=f,f=0);t.restore()},_renderChar:function(e,t,n,i,r,o,a){var s=this._getStyleDeclaration(n,i),u=this.getCompleteStyleDeclaration(n,i),l="fillText"===e&&u.fill,c="strokeText"===e&&u.stroke&&u.strokeWidth;(c||l)&&(s&&t.save(),this._applyCharStyles(e,t,n,i,u),s&&s.textBackgroundColor&&this._removeShadow(t),s&&s.deltaY&&(a+=s.deltaY),l&&t.fillText(r,o,a),c&&t.strokeText(r,o,a),s&&t.restore())},setSuperscript:function(e,t){return this._setScript(e,t,this.superscript)},setSubscript:function(e,t){return this._setScript(e,t,this.subscript)},_setScript:function(e,t,n){var i=this.get2DCursorLocation(e,!0),r=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,"fontSize"),o=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,"deltaY"),a={fontSize:r*n.size,deltaY:o+r*n.baseline};return this.setSelectionStyles(a,e,t),this},_hasStyleChanged:function(e,t){return e.fill!==t.fill||e.stroke!==t.stroke||e.strokeWidth!==t.strokeWidth||e.fontSize!==t.fontSize||e.fontFamily!==t.fontFamily||e.fontWeight!==t.fontWeight||e.fontStyle!==t.fontStyle||e.deltaY!==t.deltaY},_hasStyleChangedForSvg:function(e,t){return this._hasStyleChanged(e,t)||e.overline!==t.overline||e.underline!==t.underline||e.linethrough!==t.linethrough},_getLineLeftOffset:function(e){var t=this.getLineWidth(e);return"center"===this.textAlign?(this.width-t)/2:"right"===this.textAlign?this.width-t:"justify-center"===this.textAlign&&this.isEndOfWrapping(e)?(this.width-t)/2:"justify-right"===this.textAlign&&this.isEndOfWrapping(e)?this.width-t:0},_clearCache:function(){this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]},_shouldClearDimensionCache:function(){var e=this._forceClearCache;return e||(e=this.hasStateChanged("_dimensionAffectingProps")),e&&(this.dirty=!0,this._forceClearCache=!1),e},getLineWidth:function(e){return this.__lineWidths[e]?this.__lineWidths[e]:(t=""===this._textLines[e]?0:this.measureLine(e).width,this.__lineWidths[e]=t,t);var t},_getWidthOfCharSpacing:function(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0},getValueOfPropertyAt:function(e,t,n){var i=this._getStyleDeclaration(e,t);return i&&"undefined"!==typeof i[n]?i[n]:this[n]},_renderTextDecoration:function(e,t){if(this[t]||this.styleHas(t)){for(var n,i,r,o,a,s,u,l,c,d,h,f,p,v,g,m,_=this._getLeftOffset(),y=this._getTopOffset(),b=this._getWidthOfCharSpacing(),w=0,C=this._textLines.length;w<C;w++)if(n=this.getHeightOfLine(w),this[t]||this.styleHas(t,w)){u=this._textLines[w],v=n/this.lineHeight,o=this._getLineLeftOffset(w),d=0,h=0,l=this.getValueOfPropertyAt(w,0,t),m=this.getValueOfPropertyAt(w,0,"fill"),c=y+v*(1-this._fontSizeFraction),i=this.getHeightOfChar(w,0),a=this.getValueOfPropertyAt(w,0,"deltaY");for(var k=0,S=u.length;k<S;k++)f=this.__charBounds[w][k],p=this.getValueOfPropertyAt(w,k,t),g=this.getValueOfPropertyAt(w,k,"fill"),r=this.getHeightOfChar(w,k),s=this.getValueOfPropertyAt(w,k,"deltaY"),(p!==l||g!==m||r!==i||s!==a)&&h>0?(e.fillStyle=m,l&&m&&e.fillRect(_+o+d,c+this.offsets[t]*i+a,h,this.fontSize/15),d=f.left,h=f.width,l=p,m=g,i=r,a=s):h+=f.kernedWidth;e.fillStyle=g,p&&g&&e.fillRect(_+o+d,c+this.offsets[t]*i+a,h-b,this.fontSize/15),y+=n}else y+=n;this._removeShadow(e)}},_getFontDeclaration:function(e,n){var i=e||this,r=this.fontFamily,o=t.Text.genericFonts.indexOf(r.toLowerCase())>-1,a=void 0===r||r.indexOf("'")>-1||r.indexOf(",")>-1||r.indexOf('"')>-1||o?i.fontFamily:'"'+i.fontFamily+'"';return[t.isLikelyNode?i.fontWeight:i.fontStyle,t.isLikelyNode?i.fontStyle:i.fontWeight,n?this.CACHE_FONT_SIZE+"px":i.fontSize+"px",a].join(" ")},render:function(e){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),this.callSuper("render",e)))},_splitTextIntoLines:function(e){for(var n=e.split(this._reNewline),i=new Array(n.length),r=["\n"],o=[],a=0;a<n.length;a++)i[a]=t.util.string.graphemeSplit(n[a]),o=o.concat(i[a],r);return o.pop(),{_unwrappedLines:i,lines:n,graphemeText:o,graphemeLines:i}},toObject:function(e){var t=["text","fontSize","fontWeight","fontFamily","fontStyle","lineHeight","underline","overline","linethrough","textAlign","textBackgroundColor","charSpacing"].concat(e),i=this.callSuper("toObject",t);return i.styles=n(this.styles,!0),i},set:function(e,t){this.callSuper("set",e,t);var n=!1;if("object"===typeof e)for(var i in e)n=n||-1!==this._dimensionAffectingProps.indexOf(i);else n=-1!==this._dimensionAffectingProps.indexOf(e);return n&&(this.initDimensions(),this.setCoords()),this},complexity:function(){return 1}}),t.Text.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y dx dy font-family font-style font-weight font-size letter-spacing text-decoration text-anchor".split(" ")),t.Text.DEFAULT_SVG_FONT_SIZE=16,t.Text.fromElement=function(e,i,r){if(!e)return i(null);var o=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES),a=o.textAnchor||"left";if((r=t.util.object.extend(r?n(r):{},o)).top=r.top||0,r.left=r.left||0,o.textDecoration){var s=o.textDecoration;-1!==s.indexOf("underline")&&(r.underline=!0),-1!==s.indexOf("overline")&&(r.overline=!0),-1!==s.indexOf("line-through")&&(r.linethrough=!0),delete r.textDecoration}"dx"in o&&(r.left+=o.dx),"dy"in o&&(r.top+=o.dy),"fontSize"in r||(r.fontSize=t.Text.DEFAULT_SVG_FONT_SIZE);var u="";"textContent"in e?u=e.textContent:"firstChild"in e&&null!==e.firstChild&&"data"in e.firstChild&&null!==e.firstChild.data&&(u=e.firstChild.data),u=u.replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," ");var l=r.strokeWidth;r.strokeWidth=0;var c=new t.Text(u,r),d=c.getScaledHeight()/c.height,h=((c.height+c.strokeWidth)*c.lineHeight-c.height)*d,f=c.getScaledHeight()+h,p=0;"center"===a&&(p=c.getScaledWidth()/2),"right"===a&&(p=c.getScaledWidth()),c.set({left:c.left-p,top:c.top-(f-c.fontSize*(.07+c._fontSizeFraction))/c.lineHeight,strokeWidth:"undefined"!==typeof l?l:1}),i(c)},t.Text.fromObject=function(e,n){return t.Object._fromObject("Text",e,n,"text")},t.Text.genericFonts=["sans-serif","serif","cursive","fantasy","monospace"],t.util.createAccessors&&t.util.createAccessors(t.Text))}(t),r.util.object.extend(r.Text.prototype,{isEmptyStyles:function(e){if(!this.styles)return!0;if("undefined"!==typeof e&&!this.styles[e])return!0;var t="undefined"===typeof e?this.styles:{line:this.styles[e]};for(var n in t)for(var i in t[n])for(var r in t[n][i])return!1;return!0},styleHas:function(e,t){if(!this.styles||!e||""===e)return!1;if("undefined"!==typeof t&&!this.styles[t])return!1;var n="undefined"===typeof t?this.styles:{0:this.styles[t]};for(var i in n)for(var r in n[i])if("undefined"!==typeof n[i][r][e])return!0;return!1},cleanStyle:function(e){if(!this.styles||!e||""===e)return!1;var t,n,i=this.styles,r=0,o=!0,a=0;for(var s in i){for(var u in t=0,i[s]){var l;r++,(l=i[s][u]).hasOwnProperty(e)?(n?l[e]!==n&&(o=!1):n=l[e],l[e]===this[e]&&delete l[e]):o=!1,0!==Object.keys(l).length?t++:delete i[s][u]}0===t&&delete i[s]}for(var c=0;c<this._textLines.length;c++)a+=this._textLines[c].length;o&&r===a&&(this[e]=n,this.removeStyle(e))},removeStyle:function(e){if(this.styles&&e&&""!==e){var t,n,i,r=this.styles;for(n in r){for(i in t=r[n])delete t[i][e],0===Object.keys(t[i]).length&&delete t[i];0===Object.keys(t).length&&delete r[n]}}},_extendStyles:function(e,t){var n=this.get2DCursorLocation(e);this._getLineStyle(n.lineIndex)||this._setLineStyle(n.lineIndex),this._getStyleDeclaration(n.lineIndex,n.charIndex)||this._setStyleDeclaration(n.lineIndex,n.charIndex,{}),r.util.object.extend(this._getStyleDeclaration(n.lineIndex,n.charIndex),t)},get2DCursorLocation:function(e,t){"undefined"===typeof e&&(e=this.selectionStart);for(var n=t?this._unwrappedTextLines:this._textLines,i=n.length,r=0;r<i;r++){if(e<=n[r].length)return{lineIndex:r,charIndex:e};e-=n[r].length+this.missingNewlineOffset(r)}return{lineIndex:r-1,charIndex:n[r-1].length<e?n[r-1].length:e}},getSelectionStyles:function(e,t,n){"undefined"===typeof e&&(e=this.selectionStart||0),"undefined"===typeof t&&(t=this.selectionEnd||e);for(var i=[],r=e;r<t;r++)i.push(this.getStyleAtPosition(r,n));return i},getStyleAtPosition:function(e,t){var n=this.get2DCursorLocation(e);return(t?this.getCompleteStyleDeclaration(n.lineIndex,n.charIndex):this._getStyleDeclaration(n.lineIndex,n.charIndex))||{}},setSelectionStyles:function(e,t,n){"undefined"===typeof t&&(t=this.selectionStart||0),"undefined"===typeof n&&(n=this.selectionEnd||t);for(var i=t;i<n;i++)this._extendStyles(i,e);return this._forceClearCache=!0,this},_getStyleDeclaration:function(e,t){var n=this.styles&&this.styles[e];return n?n[t]:null},getCompleteStyleDeclaration:function(e,t){for(var n,i=this._getStyleDeclaration(e,t)||{},r={},o=0;o<this._styleProperties.length;o++)r[n=this._styleProperties[o]]="undefined"===typeof i[n]?this[n]:i[n];return r},_setStyleDeclaration:function(e,t,n){this.styles[e][t]=n},_deleteStyleDeclaration:function(e,t){delete this.styles[e][t]},_getLineStyle:function(e){return!!this.styles[e]},_setLineStyle:function(e){this.styles[e]={}},_deleteLineStyle:function(e){delete this.styles[e]}}),function(){function e(e){e.textDecoration&&(e.textDecoration.indexOf("underline")>-1&&(e.underline=!0),e.textDecoration.indexOf("line-through")>-1&&(e.linethrough=!0),e.textDecoration.indexOf("overline")>-1&&(e.overline=!0),delete e.textDecoration)}r.IText=r.util.createClass(r.Text,r.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"",cursorDelay:1e3,cursorDuration:600,caching:!0,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,__widthOfSpace:[],inCompositionMode:!1,initialize:function(e,t){this.callSuper("initialize",e,t),this.initBehavior()},setSelectionStart:function(e){e=Math.max(e,0),this._updateAndFire("selectionStart",e)},setSelectionEnd:function(e){e=Math.min(e,this.text.length),this._updateAndFire("selectionEnd",e)},_updateAndFire:function(e,t){this[e]!==t&&(this._fireSelectionChanged(),this[e]=t),this._updateTextarea()},_fireSelectionChanged:function(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})},initDimensions:function(){this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this.callSuper("initDimensions")},render:function(e){this.clearContextTop(),this.callSuper("render",e),this.cursorOffsetCache={},this.renderCursorOrSelection()},_render:function(e){this.callSuper("_render",e)},clearContextTop:function(e){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var t=this.canvas.contextTop,n=this.canvas.viewportTransform;t.save(),t.transform(n[0],n[1],n[2],n[3],n[4],n[5]),this.transform(t),this._clearTextArea(t),e||t.restore()}},renderCursorOrSelection:function(){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var e=this._getCursorBoundaries(),t=this.canvas.contextTop;this.clearContextTop(!0),this.selectionStart===this.selectionEnd?this.renderCursor(e,t):this.renderSelection(e,t),t.restore()}},_clearTextArea:function(e){var t=this.width+4,n=this.height+4;e.clearRect(-t/2,-n/2,t,n)},_getCursorBoundaries:function(e){"undefined"===typeof e&&(e=this.selectionStart);var t=this._getLeftOffset(),n=this._getTopOffset(),i=this._getCursorBoundariesOffsets(e);return{left:t,top:n,leftOffset:i.left,topOffset:i.top}},_getCursorBoundariesOffsets:function(e){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var t,n,i,r,o=0,a=0,s=this.get2DCursorLocation(e);i=s.charIndex,n=s.lineIndex;for(var u=0;u<n;u++)o+=this.getHeightOfLine(u);t=this._getLineLeftOffset(n);var l=this.__charBounds[n][i];return l&&(a=l.left),0!==this.charSpacing&&i===this._textLines[n].length&&(a-=this._getWidthOfCharSpacing()),r={top:o,left:t+(a>0?a:0)},this.cursorOffsetCache=r,this.cursorOffsetCache},renderCursor:function(e,t){var n=this.get2DCursorLocation(),i=n.lineIndex,r=n.charIndex>0?n.charIndex-1:0,o=this.getValueOfPropertyAt(i,r,"fontSize"),a=this.scaleX*this.canvas.getZoom(),s=this.cursorWidth/a,u=e.topOffset,l=this.getValueOfPropertyAt(i,r,"deltaY");u+=(1-this._fontSizeFraction)*this.getHeightOfLine(i)/this.lineHeight-o*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(e,t),t.fillStyle=this.cursorColor||this.getValueOfPropertyAt(i,r,"fill"),t.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,t.fillRect(e.left+e.leftOffset-s/2,u+e.top+l,s,o)},renderSelection:function(e,t){for(var n=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,i=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,r=-1!==this.textAlign.indexOf("justify"),o=this.get2DCursorLocation(n),a=this.get2DCursorLocation(i),s=o.lineIndex,u=a.lineIndex,l=o.charIndex<0?0:o.charIndex,c=a.charIndex<0?0:a.charIndex,d=s;d<=u;d++){var h,f=this._getLineLeftOffset(d)||0,p=this.getHeightOfLine(d),v=0,g=0;if(d===s&&(v=this.__charBounds[s][l].left),d>=s&&d<u)g=r&&!this.isEndOfWrapping(d)?this.width:this.getLineWidth(d)||5;else if(d===u)if(0===c)g=this.__charBounds[u][c].left;else{var m=this._getWidthOfCharSpacing();g=this.__charBounds[u][c-1].left+this.__charBounds[u][c-1].width-m}h=p,(this.lineHeight<1||d===u&&this.lineHeight>1)&&(p/=this.lineHeight),this.inCompositionMode?(t.fillStyle=this.compositionColor||"black",t.fillRect(e.left+f+v,e.top+e.topOffset+p,g-v,1)):(t.fillStyle=this.selectionColor,t.fillRect(e.left+f+v,e.top+e.topOffset,g-v,p)),e.topOffset+=h}},getCurrentCharFontSize:function(){var e=this._getCurrentCharIndex();return this.getValueOfPropertyAt(e.l,e.c,"fontSize")},getCurrentCharColor:function(){var e=this._getCurrentCharIndex();return this.getValueOfPropertyAt(e.l,e.c,"fill")},_getCurrentCharIndex:function(){var e=this.get2DCursorLocation(this.selectionStart,!0),t=e.charIndex>0?e.charIndex-1:0;return{l:e.lineIndex,c:t}}}),r.IText.fromObject=function(t,n){if(e(t),t.styles)for(var i in t.styles)for(var o in t.styles[i])e(t.styles[i][o]);r.Object._fromObject("IText",t,n,"text")}}(),function(){var e=r.util.object.clone;r.util.object.extend(r.IText.prototype,{initBehavior:function(){this.initAddedHandler(),this.initRemovedHandler(),this.initCursorSelectionHandlers(),this.initDoubleClickSimulation(),this.mouseMoveHandler=this.mouseMoveHandler.bind(this)},onDeselect:function(){this.isEditing&&this.exitEditing(),this.selected=!1},initAddedHandler:function(){var e=this;this.on("added",(function(){var t=e.canvas;t&&(t._hasITextHandlers||(t._hasITextHandlers=!0,e._initCanvasHandlers(t)),t._iTextInstances=t._iTextInstances||[],t._iTextInstances.push(e))}))},initRemovedHandler:function(){var e=this;this.on("removed",(function(){var t=e.canvas;t&&(t._iTextInstances=t._iTextInstances||[],r.util.removeFromArray(t._iTextInstances,e),0===t._iTextInstances.length&&(t._hasITextHandlers=!1,e._removeCanvasHandlers(t)))}))},_initCanvasHandlers:function(e){e._mouseUpITextHandler=function(){e._iTextInstances&&e._iTextInstances.forEach((function(e){e.__isMousedown=!1}))},e.on("mouse:up",e._mouseUpITextHandler)},_removeCanvasHandlers:function(e){e.off("mouse:up",e._mouseUpITextHandler)},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(e,t,n,i){var r;return r={isAborted:!1,abort:function(){this.isAborted=!0}},e.animate("_currentCursorOpacity",t,{duration:n,onComplete:function(){r.isAborted||e[i]()},onChange:function(){e.canvas&&e.selectionStart===e.selectionEnd&&e.renderCursorOrSelection()},abort:function(){return r.isAborted}}),r},_onTickComplete:function(){var e=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1),this._cursorTimeout1=setTimeout((function(){e._currentTickCompleteState=e._animateCursor(e,0,this.cursorDuration/2,"_tick")}),100)},initDelayedCursor:function(e){var t=this,n=e?0:this.cursorDelay;this.abortCursorAnimation(),this._currentCursorOpacity=1,this._cursorTimeout2=setTimeout((function(){t._tick()}),n)},abortCursorAnimation:function(){var e=this._currentTickState||this._currentTickCompleteState,t=this.canvas;this._currentTickState&&this._currentTickState.abort(),this._currentTickCompleteState&&this._currentTickCompleteState.abort(),clearTimeout(this._cursorTimeout1),clearTimeout(this._cursorTimeout2),this._currentCursorOpacity=0,e&&t&&t.clearContext(t.contextTop||t.contextContainer)},selectAll:function(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this},getSelectedText:function(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")},findWordBoundaryLeft:function(e){var t=0,n=e-1;if(this._reSpace.test(this._text[n]))for(;this._reSpace.test(this._text[n]);)t++,n--;for(;/\S/.test(this._text[n])&&n>-1;)t++,n--;return e-t},findWordBoundaryRight:function(e){var t=0,n=e;if(this._reSpace.test(this._text[n]))for(;this._reSpace.test(this._text[n]);)t++,n++;for(;/\S/.test(this._text[n])&&n<this._text.length;)t++,n++;return e+t},findLineBoundaryLeft:function(e){for(var t=0,n=e-1;!/\n/.test(this._text[n])&&n>-1;)t++,n--;return e-t},findLineBoundaryRight:function(e){for(var t=0,n=e;!/\n/.test(this._text[n])&&n<this._text.length;)t++,n++;return e+t},searchWordBoundary:function(e,t){for(var n=this._text,i=this._reSpace.test(n[e])?e-1:e,o=n[i],a=r.reNonWord;!a.test(o)&&i>0&&i<n.length;)o=n[i+=t];return a.test(o)&&(i+=1===t?0:1),i},selectWord:function(e){e=e||this.selectionStart;var t=this.searchWordBoundary(e,-1),n=this.searchWordBoundary(e,1);this.selectionStart=t,this.selectionEnd=n,this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()},selectLine:function(e){e=e||this.selectionStart;var t=this.findLineBoundaryLeft(e),n=this.findLineBoundaryRight(e);return this.selectionStart=t,this.selectionEnd=n,this._fireSelectionChanged(),this._updateTextarea(),this},enterEditing:function(e){if(!this.isEditing&&this.editable)return this.canvas&&(this.canvas.calcOffset(),this.exitEditingOnOthers(this.canvas)),this.isEditing=!0,this.initHiddenTextarea(e),this.hiddenTextarea.focus(),this.hiddenTextarea.value=this.text,this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this._tick(),this.fire("editing:entered"),this._fireSelectionChanged(),this.canvas?(this.canvas.fire("text:editing:entered",{target:this}),this.initMouseMoveHandler(),this.canvas.requestRenderAll(),this):this},exitEditingOnOthers:function(e){e._iTextInstances&&e._iTextInstances.forEach((function(e){e.selected=!1,e.isEditing&&e.exitEditing()}))},initMouseMoveHandler:function(){this.canvas.on("mouse:move",this.mouseMoveHandler)},mouseMoveHandler:function(e){if(this.__isMousedown&&this.isEditing){var t=this.getSelectionStartFromPointer(e.e),n=this.selectionStart,i=this.selectionEnd;(t===this.__selectionStartOnMouseDown&&n!==i||n!==t&&i!==t)&&(t>this.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=t):(this.selectionStart=t,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===n&&this.selectionEnd===i||(this.restartCursorIfNeeded(),this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}},_setEditingProps:function(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0},fromStringToGraphemeSelection:function(e,t,n){var i=n.slice(0,e),o=r.util.string.graphemeSplit(i).length;if(e===t)return{selectionStart:o,selectionEnd:o};var a=n.slice(e,t);return{selectionStart:o,selectionEnd:o+r.util.string.graphemeSplit(a).length}},fromGraphemeToStringSelection:function(e,t,n){var i=n.slice(0,e).join("").length;return e===t?{selectionStart:i,selectionEnd:i}:{selectionStart:i,selectionEnd:i+n.slice(e,t).join("").length}},_updateTextarea:function(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){var e=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=e.selectionStart,this.hiddenTextarea.selectionEnd=e.selectionEnd}this.updateTextareaPosition()}},updateFromTextArea:function(){if(this.hiddenTextarea){this.cursorOffsetCache={},this.text=this.hiddenTextarea.value,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords());var e=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value);this.selectionEnd=this.selectionStart=e.selectionEnd,this.inCompositionMode||(this.selectionStart=e.selectionStart),this.updateTextareaPosition()}},updateTextareaPosition:function(){if(this.selectionStart===this.selectionEnd){var e=this._calcTextareaPosition();this.hiddenTextarea.style.left=e.left,this.hiddenTextarea.style.top=e.top}},_calcTextareaPosition:function(){if(!this.canvas)return{x:1,y:1};var e=this.inCompositionMode?this.compositionStart:this.selectionStart,t=this._getCursorBoundaries(e),n=this.get2DCursorLocation(e),i=n.lineIndex,o=n.charIndex,a=this.getValueOfPropertyAt(i,o,"fontSize")*this.lineHeight,s=t.leftOffset,u=this.calcTransformMatrix(),l={x:t.left+s,y:t.top+t.topOffset+a},c=this.canvas.getRetinaScaling(),d=this.canvas.upperCanvasEl,h=d.width/c,f=d.height/c,p=h-a,v=f-a,g=d.clientWidth/h,m=d.clientHeight/f;return l=r.util.transformPoint(l,u),(l=r.util.transformPoint(l,this.canvas.viewportTransform)).x*=g,l.y*=m,l.x<0&&(l.x=0),l.x>p&&(l.x=p),l.y<0&&(l.y=0),l.y>v&&(l.y=v),l.x+=this.canvas._offset.left,l.y+=this.canvas._offset.top,{left:l.x+"px",top:l.y+"px",fontSize:a+"px",charHeight:a}},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){var e=this._textBeforeEdit!==this.text,t=this.hiddenTextarea;return this.selected=!1,this.isEditing=!1,this.selectionEnd=this.selectionStart,t&&(t.blur&&t.blur(),t.parentNode&&t.parentNode.removeChild(t)),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this.fire("editing:exited"),e&&this.fire("modified"),this.canvas&&(this.canvas.off("mouse:move",this.mouseMoveHandler),this.canvas.fire("text:editing:exited",{target:this}),e&&this.canvas.fire("object:modified",{target:this})),this},_removeExtraneousStyles:function(){for(var e in this.styles)this._textLines[e]||delete this.styles[e]},removeStyleFromTo:function(e,t){var n,i,r=this.get2DCursorLocation(e,!0),o=this.get2DCursorLocation(t,!0),a=r.lineIndex,s=r.charIndex,u=o.lineIndex,l=o.charIndex;if(a!==u){if(this.styles[a])for(n=s;n<this._unwrappedTextLines[a].length;n++)delete this.styles[a][n];if(this.styles[u])for(n=l;n<this._unwrappedTextLines[u].length;n++)(i=this.styles[u][n])&&(this.styles[a]||(this.styles[a]={}),this.styles[a][s+n-l]=i);for(n=a+1;n<=u;n++)delete this.styles[n];this.shiftLineStyles(u,a-u)}else if(this.styles[a]){i=this.styles[a];var c,d,h=l-s;for(n=s;n<l;n++)delete i[n];for(d in this.styles[a])(c=parseInt(d,10))>=l&&(i[c-h]=i[d],delete i[d])}},shiftLineStyles:function(t,n){var i=e(this.styles);for(var r in this.styles){var o=parseInt(r,10);o>t&&(this.styles[o+n]=i[o],i[o-n]||delete this.styles[o])}},restartCursorIfNeeded:function(){this._currentTickState&&!this._currentTickState.isAborted&&this._currentTickCompleteState&&!this._currentTickCompleteState.isAborted||this.initDelayedCursor()},insertNewlineStyleObject:function(t,n,i,r){var o,a={},s=!1,u=this._unwrappedTextLines[t].length===n;for(var l in i||(i=1),this.shiftLineStyles(t,i),this.styles[t]&&(o=this.styles[t][0===n?n:n-1]),this.styles[t]){var c=parseInt(l,10);c>=n&&(s=!0,a[c-n]=this.styles[t][l],u&&0===n||delete this.styles[t][l])}var d=!1;for(s&&!u&&(this.styles[t+i]=a,d=!0),d&&i--;i>0;)r&&r[i-1]?this.styles[t+i]={0:e(r[i-1])}:o?this.styles[t+i]={0:e(o)}:delete this.styles[t+i],i--;this._forceClearCache=!0},insertCharStyleObject:function(t,n,i,r){this.styles||(this.styles={});var o=this.styles[t],a=o?e(o):{};for(var s in i||(i=1),a){var u=parseInt(s,10);u>=n&&(o[u+i]=a[u],a[u-i]||delete o[u])}if(this._forceClearCache=!0,r)for(;i--;)Object.keys(r[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][n+i]=e(r[i]));else if(o)for(var l=o[n?n-1:1];l&&i--;)this.styles[t][n+i]=e(l)},insertNewStyleBlock:function(e,t,n){for(var i=this.get2DCursorLocation(t,!0),r=[0],o=0,a=0;a<e.length;a++)"\n"===e[a]?r[++o]=0:r[o]++;r[0]>0&&(this.insertCharStyleObject(i.lineIndex,i.charIndex,r[0],n),n=n&&n.slice(r[0]+1)),o&&this.insertNewlineStyleObject(i.lineIndex,i.charIndex+r[0],o);for(a=1;a<o;a++)r[a]>0?this.insertCharStyleObject(i.lineIndex+a,0,r[a],n):n&&(this.styles[i.lineIndex+a][0]=n[0]),n=n&&n.slice(r[a]+1);r[a]>0&&this.insertCharStyleObject(i.lineIndex+a,0,r[a],n)},setSelectionStartEndWithShift:function(e,t,n){n<=e?(t===e?this._selectionDirection="left":"right"===this._selectionDirection&&(this._selectionDirection="left",this.selectionEnd=e),this.selectionStart=n):n>e&&n<t?"right"===this._selectionDirection?this.selectionEnd=n:this.selectionStart=n:(t===e?this._selectionDirection="right":"left"===this._selectionDirection&&(this._selectionDirection="right",this.selectionStart=t),this.selectionEnd=n)},setSelectionInBoundaries:function(){var e=this.text.length;this.selectionStart>e?this.selectionStart=e:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>e?this.selectionEnd=e:this.selectionEnd<0&&(this.selectionEnd=0)}})}(),r.util.object.extend(r.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(e){if(this.canvas){this.__newClickTime=+new Date;var t=e.pointer;this.isTripleClick(t)&&(this.fire("tripleclick",e),this._stopEvent(e.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=t,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(e){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===e.x&&this.__lastPointer.y===e.y},_stopEvent:function(e){e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(e){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(e.e))},tripleClickHandler:function(e){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(e.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(e){!this.canvas||!this.editable||e.e.button&&1!==e.e.button||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(e.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(e){!this.canvas||!this.editable||e.e.button&&1!==e.e.button||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(e){if(this.__isMousedown=!1,!(!this.editable||this.group||e.transform&&e.transform.actionPerformed||e.e.button&&1!==e.e.button)){if(this.canvas){var t=this.canvas._activeObject;if(t&&t!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(e.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(e){var t=this.getSelectionStartFromPointer(e),n=this.selectionStart,i=this.selectionEnd;e.shiftKey?this.setSelectionStartEndWithShift(n,i,t):(this.selectionStart=t,this.selectionEnd=t),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(e){for(var t=this.getLocalPointer(e),n=0,i=0,r=0,o=0,a=0,s=0,u=this._textLines.length;s<u&&r<=t.y;s++)r+=this.getHeightOfLine(s)*this.scaleY,a=s,s>0&&(o+=this._textLines[s-1].length+this.missingNewlineOffset(s-1));i=this._getLineLeftOffset(a)*this.scaleX;for(var l=0,c=this._textLines[a].length;l<c&&(n=i,(i+=this.__charBounds[a][l].kernedWidth*this.scaleX)<=t.x);l++)o++;return this._getNewSelectionStartFromOffset(t,n,i,o,c)},_getNewSelectionStartFromOffset:function(e,t,n,i,r){var o=e.x-t,a=n-e.x,s=i+(a>o||a<0?0:1);return this.flipX&&(s=r-s),s>this._text.length&&(s=this._text.length),s}}),r.util.object.extend(r.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=r.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var e=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+e.top+"; left: "+e.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding\uff70top: "+e.fontSize+";",r.document.body.appendChild(this.hiddenTextarea),r.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),r.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),r.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),r.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),r.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),r.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),r.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),r.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),r.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(r.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(e){if(this.isEditing){if(e.keyCode in this.keysMap)this[this.keysMap[e.keyCode]](e);else{if(!(e.keyCode in this.ctrlKeysMapDown)||!e.ctrlKey&&!e.metaKey)return;this[this.ctrlKeysMapDown[e.keyCode]](e)}e.stopImmediatePropagation(),e.preventDefault(),e.keyCode>=33&&e.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}},onKeyUp:function(e){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:e.keyCode in this.ctrlKeysMapUp&&(e.ctrlKey||e.metaKey)&&(this[this.ctrlKeysMapUp[e.keyCode]](e),e.stopImmediatePropagation(),e.preventDefault(),this.canvas&&this.canvas.requestRenderAll())},onInput:function(e){var t=this.fromPaste;if(this.fromPaste=!1,e&&e.stopPropagation(),this.isEditing){var n,i,o,a,s,u=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,l=this._text.length,c=u.length,d=c-l,h=this.selectionStart,f=this.selectionEnd,p=h!==f;if(""===this.hiddenTextarea.value)return this.styles={},this.updateFromTextArea(),this.fire("changed"),void(this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll()));var v=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),g=h>v.selectionStart;p?(n=this._text.slice(h,f),d+=f-h):c<l&&(n=g?this._text.slice(f+d,f):this._text.slice(h,h-d)),i=u.slice(v.selectionEnd-d,v.selectionEnd),n&&n.length&&(i.length&&(o=this.getSelectionStyles(h,h+1,!1),o=i.map((function(){return o[0]}))),p?(a=h,s=f):g?(a=f-n.length,s=f):(a=f,s=f+n.length),this.removeStyleFromTo(a,s)),i.length&&(t&&i.join("")===r.copiedText&&!r.disableStyleCopyPaste&&(o=r.copiedTextStyle),this.insertNewStyleBlock(i,h,o)),this.updateFromTextArea(),this.fire("changed"),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())}},onCompositionStart:function(){this.inCompositionMode=!0},onCompositionEnd:function(){this.inCompositionMode=!1},onCompositionUpdate:function(e){this.compositionStart=e.target.selectionStart,this.compositionEnd=e.target.selectionEnd,this.updateTextareaPosition()},copy:function(){this.selectionStart!==this.selectionEnd&&(r.copiedText=this.getSelectedText(),r.disableStyleCopyPaste?r.copiedTextStyle=null:r.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0)},paste:function(){this.fromPaste=!0},_getClipboardData:function(e){return e&&e.clipboardData||r.window.clipboardData},_getWidthBeforeCursor:function(e,t){var n,i=this._getLineLeftOffset(e);return t>0&&(i+=(n=this.__charBounds[e][t-1]).left+n.width),i},getDownCursorOffset:function(e,t){var n=this._getSelectionForOffset(e,t),i=this.get2DCursorLocation(n),r=i.lineIndex;if(r===this._textLines.length-1||e.metaKey||34===e.keyCode)return this._text.length-n;var o=i.charIndex,a=this._getWidthBeforeCursor(r,o),s=this._getIndexOnLine(r+1,a);return this._textLines[r].slice(o).length+s+1+this.missingNewlineOffset(r)},_getSelectionForOffset:function(e,t){return e.shiftKey&&this.selectionStart!==this.selectionEnd&&t?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(e,t){var n=this._getSelectionForOffset(e,t),i=this.get2DCursorLocation(n),r=i.lineIndex;if(0===r||e.metaKey||33===e.keyCode)return-n;var o=i.charIndex,a=this._getWidthBeforeCursor(r,o),s=this._getIndexOnLine(r-1,a),u=this._textLines[r].slice(0,o),l=this.missingNewlineOffset(r-1);return-this._textLines[r-1].length+s-u.length+(1-l)},_getIndexOnLine:function(e,t){for(var n,i,r=this._textLines[e],o=this._getLineLeftOffset(e),a=0,s=0,u=r.length;s<u;s++)if((o+=n=this.__charBounds[e][s].width)>t){i=!0;var l=o-n,c=o,d=Math.abs(l-t);a=Math.abs(c-t)<d?s:s-1;break}return i||(a=r.length-1),a},moveCursorDown:function(e){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",e)},moveCursorUp:function(e){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",e)},_moveCursorUpOrDown:function(e,t){var n=this["get"+e+"CursorOffset"](t,"right"===this._selectionDirection);t.shiftKey?this.moveCursorWithShift(n):this.moveCursorWithoutShift(n),0!==n&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(e){var t="left"===this._selectionDirection?this.selectionStart+e:this.selectionEnd+e;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,t),0!==e},moveCursorWithoutShift:function(e){return e<0?(this.selectionStart+=e,this.selectionEnd=this.selectionStart):(this.selectionEnd+=e,this.selectionStart=this.selectionEnd),0!==e},moveCursorLeft:function(e){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",e)},_move:function(e,t,n){var i;if(e.altKey)i=this["findWordBoundary"+n](this[t]);else{if(!e.metaKey&&35!==e.keyCode&&36!==e.keyCode)return this[t]+="Left"===n?-1:1,!0;i=this["findLineBoundary"+n](this[t])}if(void 0!==typeof i&&this[t]!==i)return this[t]=i,!0},_moveLeft:function(e,t){return this._move(e,t,"Left")},_moveRight:function(e,t){return this._move(e,t,"Right")},moveCursorLeftWithoutShift:function(e){var t=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(t=this._moveLeft(e,"selectionStart")),this.selectionEnd=this.selectionStart,t},moveCursorLeftWithShift:function(e){return"right"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveLeft(e,"selectionEnd"):0!==this.selectionStart?(this._selectionDirection="left",this._moveLeft(e,"selectionStart")):void 0},moveCursorRight:function(e){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",e)},_moveCursorLeftOrRight:function(e,t){var n="moveCursor"+e+"With";this._currentCursorOpacity=1,t.shiftKey?n+="Shift":n+="outShift",this[n](t)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(e){return"left"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveRight(e,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection="right",this._moveRight(e,"selectionEnd")):void 0},moveCursorRightWithoutShift:function(e){var t=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(t=this._moveRight(e,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,t},removeChars:function(e,t){"undefined"===typeof t&&(t=e+1),this.removeStyleFromTo(e,t),this._text.splice(e,t-e),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(e,t,n,i){"undefined"===typeof i&&(i=n),i>n&&this.removeStyleFromTo(n,i);var o=r.util.string.graphemeSplit(e);this.insertNewStyleBlock(o,n,t),this._text=[].concat(this._text.slice(0,n),o,this._text.slice(i)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),function(){var e=r.util.toFixed,t=/ +/g;r.util.object.extend(r.Text.prototype,{_toSVG:function(){var e=this._getSVGLeftTopOffsets(),t=this._getSVGTextAndBg(e.textTop,e.textLeft);return this._wrapSVGTextAndBg(t)},toSVG:function(e){return this._createBaseSVGMarkup(this._toSVG(),{reviver:e,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(e){var t=this.getSvgTextDecoration(this);return[e.textBgRects.join(""),'\t\t<text xml:space="preserve" ',this.fontFamily?'font-family="'+this.fontFamily.replace(/"/g,"'")+'" ':"",this.fontSize?'font-size="'+this.fontSize+'" ':"",this.fontStyle?'font-style="'+this.fontStyle+'" ':"",this.fontWeight?'font-weight="'+this.fontWeight+'" ':"",t?'text-decoration="'+t+'" ':"",'style="',this.getSvgStyles(!0),'"',this.addPaintOrder()," >",e.textSpans.join(""),"</text>\n"]},_getSVGTextAndBg:function(e,t){var n,i=[],r=[],o=e;this._setSVGBg(r);for(var a=0,s=this._textLines.length;a<s;a++)n=this._getLineLeftOffset(a),(this.textBackgroundColor||this.styleHas("textBackgroundColor",a))&&this._setSVGTextLineBg(r,a,t+n,o),this._setSVGTextLineText(i,a,t+n,o),o+=this.getHeightOfLine(a);return{textSpans:i,textBgRects:r}},_createTextCharSpan:function(n,i,o,a){var s=n!==n.trim()||n.match(t),u=this.getSvgSpanStyles(i,s),l=u?'style="'+u+'"':"",c=i.deltaY,d="",h=r.Object.NUM_FRACTION_DIGITS;return c&&(d=' dy="'+e(c,h)+'" '),['<tspan x="',e(o,h),'" y="',e(a,h),'" ',d,l,">",r.util.string.escapeXml(n),"</tspan>"].join("")},_setSVGTextLineText:function(e,t,n,i){var r,o,a,s,u,l=this.getHeightOfLine(t),c=-1!==this.textAlign.indexOf("justify"),d="",h=0,f=this._textLines[t];i+=l*(1-this._fontSizeFraction)/this.lineHeight;for(var p=0,v=f.length-1;p<=v;p++)u=p===v||this.charSpacing,d+=f[p],a=this.__charBounds[t][p],0===h?(n+=a.kernedWidth-a.width,h+=a.width):h+=a.kernedWidth,c&&!u&&this._reSpaceAndTab.test(f[p])&&(u=!0),u||(r=r||this.getCompleteStyleDeclaration(t,p),o=this.getCompleteStyleDeclaration(t,p+1),u=this._hasStyleChangedForSvg(r,o)),u&&(s=this._getStyleDeclaration(t,p)||{},e.push(this._createTextCharSpan(d,s,n,i)),d="",r=o,n+=h,h=0)},_pushTextBgRect:function(t,n,i,o,a,s){var u=r.Object.NUM_FRACTION_DIGITS;t.push("\t\t<rect ",this._getFillAttributes(n),' x="',e(i,u),'" y="',e(o,u),'" width="',e(a,u),'" height="',e(s,u),'"></rect>\n')},_setSVGTextLineBg:function(e,t,n,i){for(var r,o,a=this._textLines[t],s=this.getHeightOfLine(t)/this.lineHeight,u=0,l=0,c=this.getValueOfPropertyAt(t,0,"textBackgroundColor"),d=0,h=a.length;d<h;d++)r=this.__charBounds[t][d],(o=this.getValueOfPropertyAt(t,d,"textBackgroundColor"))!==c?(c&&this._pushTextBgRect(e,c,n+l,i,u,s),l=r.left,u=r.width,c=o):u+=r.kernedWidth;o&&this._pushTextBgRect(e,o,n+l,i,u,s)},_getFillAttributes:function(e){var t=e&&"string"===typeof e?new r.Color(e):"";return t&&t.getSource()&&1!==t.getAlpha()?'opacity="'+t.getAlpha()+'" fill="'+t.setAlpha(1).toRgb()+'"':'fill="'+e+'"'},_getSVGLineTopOffset:function(e){for(var t,n=0,i=0;i<e;i++)n+=this.getHeightOfLine(i);return t=this.getHeightOfLine(i),{lineTop:n,offset:(this._fontSizeMult-this._fontSizeFraction)*t/(this.lineHeight*this._fontSizeMult)}},getSvgStyles:function(e){return r.Object.prototype.getSvgStyles.call(this,e)+" white-space: pre;"}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={});t.Textbox=t.util.createClass(t.IText,t.Observable,{type:"textbox",minWidth:20,dynamicMinWidth:2,__cachedLines:null,lockScalingFlip:!0,noScaleCache:!1,_dimensionAffectingProps:t.Text.prototype._dimensionAffectingProps.concat("width"),_wordJoiners:/[ \t\r]/,splitByGrapheme:!1,initDimensions:function(){this.__skipDimension||(this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set("width",this.dynamicMinWidth),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(e){for(var t=0,n=0,i=0,r={},o=0;o<e.graphemeLines.length;o++)"\n"===e.graphemeText[i]&&o>0?(n=0,i++,t++):!this.splitByGrapheme&&this._reSpaceAndTab.test(e.graphemeText[i])&&o>0&&(n++,i++),r[o]={line:t,offset:n},i+=e.graphemeLines[o].length,n+=e.graphemeLines[o].length;return r},styleHas:function(e,n){if(this._styleMap&&!this.isWrapping){var i=this._styleMap[n];i&&(n=i.line)}return t.Text.prototype.styleHas.call(this,e,n)},isEmptyStyles:function(e){if(!this.styles)return!0;var t,n,i=0,r=!1,o=this._styleMap[e],a=this._styleMap[e+1];for(var s in o&&(e=o.line,i=o.offset),a&&(r=a.line===e,t=a.offset),n="undefined"===typeof e?this.styles:{line:this.styles[e]})for(var u in n[s])if(u>=i&&(!r||u<t))for(var l in n[s][u])return!1;return!0},_getStyleDeclaration:function(e,t){if(this._styleMap&&!this.isWrapping){var n=this._styleMap[e];if(!n)return null;e=n.line,t=n.offset+t}return this.callSuper("_getStyleDeclaration",e,t)},_setStyleDeclaration:function(e,t,n){var i=this._styleMap[e];e=i.line,t=i.offset+t,this.styles[e][t]=n},_deleteStyleDeclaration:function(e,t){var n=this._styleMap[e];e=n.line,t=n.offset+t,delete this.styles[e][t]},_getLineStyle:function(e){var t=this._styleMap[e];return!!this.styles[t.line]},_setLineStyle:function(e){var t=this._styleMap[e];this.styles[t.line]={}},_wrapText:function(e,t){var n,i=[];for(this.isWrapping=!0,n=0;n<e.length;n++)i=i.concat(this._wrapLine(e[n],n,t));return this.isWrapping=!1,i},_measureWord:function(e,t,n){var i,r=0;n=n||0;for(var o=0,a=e.length;o<a;o++){r+=this._getGraphemeBox(e[o],t,o+n,i,true).kernedWidth,i=e[o]}return r},_wrapLine:function(e,n,i,r){var o=0,a=this.splitByGrapheme,s=[],u=[],l=a?t.util.string.graphemeSplit(e):e.split(this._wordJoiners),c="",d=0,h=a?"":" ",f=0,p=0,v=0,g=!0,m=this._getWidthOfCharSpacing();r=r||0;0===l.length&&l.push([]),i-=r;for(var _=0;_<l.length;_++)c=a?l[_]:t.util.string.graphemeSplit(l[_]),f=this._measureWord(c,n,d),d+=c.length,(o+=p+f-m)>=i&&!g?(s.push(u),u=[],o=f,g=!0):o+=m,g||a||u.push(h),u=u.concat(c),p=a?0:this._measureWord([h],n,d),d++,g=!1,f>v&&(v=f);return _&&s.push(u),v+r>this.dynamicMinWidth&&(this.dynamicMinWidth=v-m+r),s},isEndOfWrapping:function(e){return!this._styleMap[e+1]||this._styleMap[e+1].line!==this._styleMap[e].line},missingNewlineOffset:function(e){return this.splitByGrapheme?this.isEndOfWrapping(e)?1:0:1},_splitTextIntoLines:function(e){for(var n=t.Text.prototype._splitTextIntoLines.call(this,e),i=this._wrapText(n.lines,this.width),r=new Array(i.length),o=0;o<i.length;o++)r[o]=i[o].join("");return n.lines=r,n.graphemeLines=i,n},getMinWidth:function(){return Math.max(this.minWidth,this.dynamicMinWidth)},_removeExtraneousStyles:function(){var e={};for(var t in this._styleMap)this._textLines[t]&&(e[this._styleMap[t].line]=1);for(var t in this.styles)e[t]||delete this.styles[t]},toObject:function(e){return this.callSuper("toObject",["minWidth","splitByGrapheme"].concat(e))}}),t.Textbox.fromObject=function(e,n){return t.Object._fromObject("Textbox",e,n,"text")}}(t),function(){var e=r.controlsUtils,t=e.scaleSkewCursorStyleHandler,n=e.scaleCursorStyleHandler,i=e.scalingEqually,o=e.scalingYOrSkewingX,a=e.scalingXOrSkewingY,s=e.scaleOrSkewActionName,u=r.Object.prototype.controls;if(u.ml=new r.Control({x:-.5,y:0,cursorStyleHandler:t,actionHandler:a,getActionName:s}),u.mr=new r.Control({x:.5,y:0,cursorStyleHandler:t,actionHandler:a,getActionName:s}),u.mb=new r.Control({x:0,y:.5,cursorStyleHandler:t,actionHandler:o,getActionName:s}),u.mt=new r.Control({x:0,y:-.5,cursorStyleHandler:t,actionHandler:o,getActionName:s}),u.tl=new r.Control({x:-.5,y:-.5,cursorStyleHandler:n,actionHandler:i}),u.tr=new r.Control({x:.5,y:-.5,cursorStyleHandler:n,actionHandler:i}),u.bl=new r.Control({x:-.5,y:.5,cursorStyleHandler:n,actionHandler:i}),u.br=new r.Control({x:.5,y:.5,cursorStyleHandler:n,actionHandler:i}),u.mtr=new r.Control({x:0,y:-.5,actionHandler:e.rotationWithSnapping,cursorStyleHandler:e.rotationStyleHandler,offsetY:-40,withConnection:!0,actionName:"rotate"}),r.Textbox){var l=r.Textbox.prototype.controls={};l.mtr=u.mtr,l.tr=u.tr,l.br=u.br,l.tl=u.tl,l.bl=u.bl,l.mt=u.mt,l.mb=u.mb,l.mr=new r.Control({x:.5,y:0,actionHandler:e.changeWidth,cursorStyleHandler:t,actionName:"resizing"}),l.ml=new r.Control({x:-.5,y:0,actionHandler:e.changeWidth,cursorStyleHandler:t,actionName:"resizing"})}}()},69171:function(e,t,n){"use strict";n.r(t),n.d(t,{createFocusTrap:function(){return m}});var i=n(22020);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!==typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=function(e,t){if(e.length>0){var n=e[e.length-1];n!==t&&n.pause()}var i=e.indexOf(t);-1===i||e.splice(i,1),e.push(t)},u=function(e,t){var n=e.indexOf(t);-1!==n&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()},l=function(e){return"Tab"===e.key||9===e.keyCode},c=function(e){return l(e)&&!e.shiftKey},d=function(e){return l(e)&&e.shiftKey},h=function(e){return setTimeout(e,0)},f=function(e,t){var n=-1;return e.every((function(e,i){return!t(e)||(n=i,!1)})),n},p=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return"function"===typeof e?e.apply(void 0,n):e},v=function(e){return e.target.shadowRoot&&"function"===typeof e.composedPath?e.composedPath()[0]:e.target},g=[],m=function(e,t){var n,r=(null===t||void 0===t?void 0:t.document)||document,a=(null===t||void 0===t?void 0:t.trapStack)||g,m=o({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isKeyForward:c,isKeyBackward:d},t),_={containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0},y=function(e,t,n){return e&&void 0!==e[t]?e[t]:m[n||t]},b=function(e){return _.containerGroups.findIndex((function(t){var n=t.container,i=t.tabbableNodes;return n.contains(e)||i.find((function(t){return t===e}))}))},w=function(e){var t=m[e];if("function"===typeof t){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];t=t.apply(void 0,i)}if(!0===t&&(t=void 0),!t){if(void 0===t||!1===t)return t;throw new Error("`".concat(e,"` was specified but was not a node, or did not return a node"))}var a=t;if("string"===typeof t&&!(a=r.querySelector(t)))throw new Error("`".concat(e,"` as selector refers to no known node"));return a},C=function(){var e=w("initialFocus");if(!1===e)return!1;if(void 0===e)if(b(r.activeElement)>=0)e=r.activeElement;else{var t=_.tabbableGroups[0];e=t&&t.firstTabbableNode||w("fallbackFocus")}if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},k=function(){if(_.containerGroups=_.containers.map((function(e){var t=(0,i.tabbable)(e,m.tabbableOptions),n=(0,i.focusable)(e,m.tabbableOptions);return{container:e,tabbableNodes:t,focusableNodes:n,firstTabbableNode:t.length>0?t[0]:null,lastTabbableNode:t.length>0?t[t.length-1]:null,nextTabbableNode:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=n.findIndex((function(t){return t===e}));if(!(r<0))return t?n.slice(r+1).find((function(e){return(0,i.isTabbable)(e,m.tabbableOptions)})):n.slice(0,r).reverse().find((function(e){return(0,i.isTabbable)(e,m.tabbableOptions)}))}}})),_.tabbableGroups=_.containerGroups.filter((function(e){return e.tabbableNodes.length>0})),_.tabbableGroups.length<=0&&!w("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times")},S=function e(t){!1!==t&&t!==r.activeElement&&(t&&t.focus?(t.focus({preventScroll:!!m.preventScroll}),_.mostRecentlyFocusedNode=t,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"===typeof e.select}(t)&&t.select()):e(C()))},x=function(e){var t=w("setReturnFocus",e);return t||!1!==t&&e},L=function(e){var t=v(e);b(t)>=0||(p(m.clickOutsideDeactivates,e)?n.deactivate({returnFocus:m.returnFocusOnDeactivate}):p(m.allowOutsideClick,e)||e.preventDefault())},E=function(e){var t=v(e),n=b(t)>=0;n||t instanceof Document?n&&(_.mostRecentlyFocusedNode=t):(e.stopImmediatePropagation(),S(_.mostRecentlyFocusedNode||C()))},N=function(e){if(("Escape"===(t=e).key||"Esc"===t.key||27===t.keyCode)&&!1!==p(m.escapeDeactivates,e))return e.preventDefault(),void n.deactivate();var t;(m.isKeyForward(e)||m.isKeyBackward(e))&&function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=v(e);k();var r=null;if(_.tabbableGroups.length>0){var o=b(n),a=o>=0?_.containerGroups[o]:void 0;if(o<0)r=t?_.tabbableGroups[_.tabbableGroups.length-1].lastTabbableNode:_.tabbableGroups[0].firstTabbableNode;else if(t){var s=f(_.tabbableGroups,(function(e){var t=e.firstTabbableNode;return n===t}));if(s<0&&(a.container===n||(0,i.isFocusable)(n,m.tabbableOptions)&&!(0,i.isTabbable)(n,m.tabbableOptions)&&!a.nextTabbableNode(n,!1))&&(s=o),s>=0){var u=0===s?_.tabbableGroups.length-1:s-1;r=_.tabbableGroups[u].lastTabbableNode}else l(e)||(r=a.nextTabbableNode(n,!1))}else{var c=f(_.tabbableGroups,(function(e){var t=e.lastTabbableNode;return n===t}));if(c<0&&(a.container===n||(0,i.isFocusable)(n,m.tabbableOptions)&&!(0,i.isTabbable)(n,m.tabbableOptions)&&!a.nextTabbableNode(n))&&(c=o),c>=0){var d=c===_.tabbableGroups.length-1?0:c+1;r=_.tabbableGroups[d].firstTabbableNode}else l(e)||(r=a.nextTabbableNode(n))}}else r=w("fallbackFocus");r&&(l(e)&&e.preventDefault(),S(r))}(e,m.isKeyBackward(e))},D=function(e){var t=v(e);b(t)>=0||p(m.clickOutsideDeactivates,e)||p(m.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},M=function(){if(_.active)return s(a,n),_.delayInitialFocusTimer=m.delayInitialFocus?h((function(){S(C())})):S(C()),r.addEventListener("focusin",E,!0),r.addEventListener("mousedown",L,{capture:!0,passive:!1}),r.addEventListener("touchstart",L,{capture:!0,passive:!1}),r.addEventListener("click",D,{capture:!0,passive:!1}),r.addEventListener("keydown",N,{capture:!0,passive:!1}),n},T=function(){if(_.active)return r.removeEventListener("focusin",E,!0),r.removeEventListener("mousedown",L,!0),r.removeEventListener("touchstart",L,!0),r.removeEventListener("click",D,!0),r.removeEventListener("keydown",N,!0),n};return(n={get active(){return _.active},get paused(){return _.paused},activate:function(e){if(_.active)return this;var t=y(e,"onActivate"),n=y(e,"onPostActivate"),i=y(e,"checkCanFocusTrap");i||k(),_.active=!0,_.paused=!1,_.nodeFocusedBeforeActivation=r.activeElement,null===t||void 0===t||t();var o=function(){i&&k(),M(),null===n||void 0===n||n()};return i?(i(_.containers.concat()).then(o,o),this):(o(),this)},deactivate:function(e){if(!_.active)return this;var t=o({onDeactivate:m.onDeactivate,onPostDeactivate:m.onPostDeactivate,checkCanReturnFocus:m.checkCanReturnFocus},e);clearTimeout(_.delayInitialFocusTimer),_.delayInitialFocusTimer=void 0,T(),_.active=!1,_.paused=!1,u(a,n);var i=y(t,"onDeactivate"),r=y(t,"onPostDeactivate"),s=y(t,"checkCanReturnFocus"),l=y(t,"returnFocus","returnFocusOnDeactivate");null===i||void 0===i||i();var c=function(){h((function(){l&&S(x(_.nodeFocusedBeforeActivation)),null===r||void 0===r||r()}))};return l&&s?(s(x(_.nodeFocusedBeforeActivation)).then(c,c),this):(c(),this)},pause:function(e){if(_.paused||!_.active)return this;var t=y(e,"onPause"),n=y(e,"onPostPause");return _.paused=!0,null===t||void 0===t||t(),T(),null===n||void 0===n||n(),this},unpause:function(e){if(!_.paused||!_.active)return this;var t=y(e,"onUnpause"),n=y(e,"onPostUnpause");return _.paused=!1,null===t||void 0===t||t(),k(),M(),null===n||void 0===n||n(),this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return _.containers=t.map((function(e){return"string"===typeof e?r.querySelector(e):e})),_.active&&k(),this}}).updateContainerElements(e),n}},83872:function(e){"use strict";var t="Function.prototype.bind called on incompatible ",n=Array.prototype.slice,i=Object.prototype.toString,r="[object Function]";e.exports=function(e){var o=this;if("function"!==typeof o||i.call(o)!==r)throw new TypeError(t+o);for(var a,s=n.call(arguments,1),u=Math.max(0,o.length-s.length),l=[],c=0;c<u;c++)l.push("$"+c);if(a=Function("binder","return function ("+l.join(",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof a){var t=o.apply(this,s.concat(n.call(arguments)));return Object(t)===t?t:this}return o.apply(e,s.concat(n.call(arguments)))})),o.prototype){var d=function(){};d.prototype=o.prototype,a.prototype=new d,d.prototype=null}return a}},62018:function(e,t,n){"use strict";var i=n(83872);e.exports=Function.prototype.bind||i},11333:function(e,t,n){"use strict";var i,r=SyntaxError,o=Function,a=TypeError,s=function(e){try{return o('"use strict"; return ('+e+").constructor;")()}catch(t){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(N){u=null}var l=function(){throw new a},c=u?function(){try{return l}catch(e){try{return u(arguments,"callee").get}catch(t){return l}}}():l,d=n(69718)(),h=Object.getPrototypeOf||function(e){return e.__proto__},f={},p="undefined"===typeof Uint8Array?i:h(Uint8Array),v={"%AggregateError%":"undefined"===typeof AggregateError?i:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?i:ArrayBuffer,"%ArrayIteratorPrototype%":d?h([][Symbol.iterator]()):i,"%AsyncFromSyncIteratorPrototype%":i,"%AsyncFunction%":f,"%AsyncGenerator%":f,"%AsyncGeneratorFunction%":f,"%AsyncIteratorPrototype%":f,"%Atomics%":"undefined"===typeof Atomics?i:Atomics,"%BigInt%":"undefined"===typeof BigInt?i:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?i:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"===typeof Float32Array?i:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?i:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?i:FinalizationRegistry,"%Function%":o,"%GeneratorFunction%":f,"%Int8Array%":"undefined"===typeof Int8Array?i:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?i:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?i:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":d?h(h([][Symbol.iterator]())):i,"%JSON%":"object"===typeof JSON?JSON:i,"%Map%":"undefined"===typeof Map?i:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&d?h((new Map)[Symbol.iterator]()):i,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?i:Promise,"%Proxy%":"undefined"===typeof Proxy?i:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"===typeof Reflect?i:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?i:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&d?h((new Set)[Symbol.iterator]()):i,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?i:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":d?h(""[Symbol.iterator]()):i,"%Symbol%":d?Symbol:i,"%SyntaxError%":r,"%ThrowTypeError%":c,"%TypedArray%":p,"%TypeError%":a,"%Uint8Array%":"undefined"===typeof Uint8Array?i:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?i:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?i:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?i:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"===typeof WeakMap?i:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?i:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?i:WeakSet},g=function e(t){var n;if("%AsyncFunction%"===t)n=s("async function () {}");else if("%GeneratorFunction%"===t)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=s("async function* () {}");else if("%AsyncGenerator%"===t){var i=e("%AsyncGeneratorFunction%");i&&(n=i.prototype)}else if("%AsyncIteratorPrototype%"===t){var r=e("%AsyncGenerator%");r&&(n=h(r.prototype))}return v[t]=n,n},m={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},_=n(62018),y=n(13705),b=_.call(Function.call,Array.prototype.concat),w=_.call(Function.apply,Array.prototype.splice),C=_.call(Function.call,String.prototype.replace),k=_.call(Function.call,String.prototype.slice),S=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,x=/\\(\\)?/g,L=function(e){var t=k(e,0,1),n=k(e,-1);if("%"===t&&"%"!==n)throw new r("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new r("invalid intrinsic syntax, expected opening `%`");var i=[];return C(e,S,(function(e,t,n,r){i[i.length]=n?C(r,x,"$1"):t||e})),i},E=function(e,t){var n,i=e;if(y(m,i)&&(i="%"+(n=m[i])[0]+"%"),y(v,i)){var o=v[i];if(o===f&&(o=g(i)),"undefined"===typeof o&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:i,value:o}}throw new r("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new a('"allowMissing" argument must be a boolean');var n=L(e),i=n.length>0?n[0]:"",o=E("%"+i+"%",t),s=o.name,l=o.value,c=!1,d=o.alias;d&&(i=d[0],w(n,b([0,1],d)));for(var h=1,f=!0;h<n.length;h+=1){var p=n[h],g=k(p,0,1),m=k(p,-1);if(('"'===g||"'"===g||"`"===g||'"'===m||"'"===m||"`"===m)&&g!==m)throw new r("property names with quotes must have matching quotes");if("constructor"!==p&&f||(c=!0),y(v,s="%"+(i+="."+p)+"%"))l=v[s];else if(null!=l){if(!(p in l)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(u&&h+1>=n.length){var _=u(l,p);l=(f=!!_)&&"get"in _&&!("originalValue"in _.get)?_.get:l[p]}else f=y(l,p),l=l[p];f&&!c&&(v[s]=l)}}return l}},69718:function(e,t,n){"use strict";var i="undefined"!==typeof Symbol&&Symbol,r=n(30596);e.exports=function(){return"function"===typeof i&&("function"===typeof Symbol&&("symbol"===typeof i("foo")&&("symbol"===typeof Symbol("bar")&&r())))}},30596:function(e){"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var i=Object.getOwnPropertySymbols(e);if(1!==i.length||i[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var r=Object.getOwnPropertyDescriptor(e,t);if(42!==r.value||!0!==r.enumerable)return!1}return!0}},13705:function(e,t,n){"use strict";var i=n(62018);e.exports=i.call(Function.call,Object.prototype.hasOwnProperty)},63993:function(e,t,n){"use strict";var i=n(55775),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return i.isMemo(e)?a:s[e.$$typeof]||r}s[i.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[i.Memo]=a;var l=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,p=Object.prototype;e.exports=function e(t,n,i){if("string"!==typeof n){if(p){var r=f(n);r&&r!==p&&e(t,r,i)}var a=c(n);d&&(a=a.concat(d(n)));for(var s=u(t),v=u(n),g=0;g<a.length;++g){var m=a[g];if(!o[m]&&(!i||!i[m])&&(!v||!v[m])&&(!s||!s[m])){var _=h(n,m);try{l(t,m,_)}catch(y){}}}}return t}},85496:function(e,t){"use strict";var n="function"===typeof Symbol&&Symbol.for,i=n?Symbol.for("react.element"):60103,r=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,h=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,p=n?Symbol.for("react.suspense_list"):60120,v=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.block"):60121,_=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,b=n?Symbol.for("react.scope"):60119;function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case i:switch(e=e.type){case c:case d:case o:case s:case a:case f:return e;default:switch(e=e&&e.$$typeof){case l:case h:case g:case v:case u:return e;default:return t}}case r:return t}}}function C(e){return w(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=l,t.ContextProvider=u,t.Element=i,t.ForwardRef=h,t.Fragment=o,t.Lazy=g,t.Memo=v,t.Portal=r,t.Profiler=s,t.StrictMode=a,t.Suspense=f,t.isAsyncMode=function(e){return C(e)||w(e)===c},t.isConcurrentMode=C,t.isContextConsumer=function(e){return w(e)===l},t.isContextProvider=function(e){return w(e)===u},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===i},t.isForwardRef=function(e){return w(e)===h},t.isFragment=function(e){return w(e)===o},t.isLazy=function(e){return w(e)===g},t.isMemo=function(e){return w(e)===v},t.isPortal=function(e){return w(e)===r},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===a},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===o||e===d||e===s||e===a||e===f||e===p||"object"===typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===v||e.$$typeof===u||e.$$typeof===l||e.$$typeof===h||e.$$typeof===_||e.$$typeof===y||e.$$typeof===b||e.$$typeof===m)},t.typeOf=w},55775:function(e,t,n){"use strict";e.exports=n(85496)},15731:function(e){"use strict";e.exports=function(e,t,n,i,r,o,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,i,r,o,a,s],c=0;(u=new Error(t.replace(/%s/g,(function(){return l[c++]})))).name="Invariant Violation"}throw u.framesToPop=1,u}}},60060:function(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},99383:function(e,t,n){var i=n(80651)(n(4210),"DataView");e.exports=i},11724:function(e,t,n){var i=n(73206),r=n(59288),o=n(20740),a=n(40900),s=n(99762);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},82966:function(e,t,n){var i=n(46474),r=n(39243),o=4294967295;function a(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=o,this.__views__=[]}a.prototype=i(r.prototype),a.prototype.constructor=a,e.exports=a},87889:function(e,t,n){var i=n(89330),r=n(12671),o=n(15960),a=n(34508),s=n(56062);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},88936:function(e,t,n){var i=n(46474),r=n(39243);function o(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}o.prototype=i(r.prototype),o.prototype.constructor=o,e.exports=o},10628:function(e,t,n){var i=n(80651)(n(4210),"Map");e.exports=i},50042:function(e,t,n){var i=n(78846),r=n(53799),o=n(15778),a=n(53032),s=n(70420);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}u.prototype.clear=i,u.prototype.delete=r,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},89883:function(e,t,n){var i=n(80651)(n(4210),"Promise");e.exports=i},55092:function(e,t,n){var i=n(80651)(n(4210),"Set");e.exports=i},53530:function(e,t,n){var i=n(50042),r=n(18892),o=n(77750);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new i;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=r,a.prototype.has=o,e.exports=a},48368:function(e,t,n){var i=n(87889),r=n(68913),o=n(58444),a=n(7606),s=n(85993),u=n(11987);function l(e){var t=this.__data__=new i(e);this.size=t.size}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},96298:function(e,t,n){var i=n(4210).Symbol;e.exports=i},64345:function(e,t,n){var i=n(4210).Uint8Array;e.exports=i},16479:function(e,t,n){var i=n(80651)(n(4210),"WeakMap");e.exports=i},75049:function(e){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},50294:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}},42498:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}},43938:function(e,t,n){var i=n(5001);e.exports=function(e,t){return!!(null==e?0:e.length)&&i(e,t,0)>-1}},53020:function(e){e.exports=function(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}},42311:function(e,t,n){var i=n(5813),r=n(43917),o=n(39262),a=n(76966),s=n(47247),u=n(57421),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),c=!n&&r(e),d=!n&&!c&&a(e),h=!n&&!c&&!d&&u(e),f=n||c||d||h,p=f?i(e.length,String):[],v=p.length;for(var g in e)!t&&!l.call(e,g)||f&&("length"==g||d&&("offset"==g||"parent"==g)||h&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||s(g,v))||p.push(g);return p}},79746:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}},96827:function(e){e.exports=function(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}},63102:function(e){e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}},49402:function(e,t,n){var i=n(34778),r=n(93841),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];o.call(e,t)&&r(a,n)&&(void 0!==n||t in e)||i(e,t,n)}},71394:function(e,t,n){var i=n(93841);e.exports=function(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}},68007:function(e,t,n){var i=n(77516),r=n(66005);e.exports=function(e,t){return e&&i(t,r(t),e)}},62029:function(e,t,n){var i=n(77516),r=n(94370);e.exports=function(e,t){return e&&i(t,r(t),e)}},34778:function(e,t,n){var i=n(53789);e.exports=function(e,t,n){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},60301:function(e,t,n){var i=n(48368),r=n(50294),o=n(49402),a=n(68007),s=n(62029),u=n(19130),l=n(91342),c=n(54801),d=n(88333),h=n(72038),f=n(73561),p=n(84047),v=n(50665),g=n(72280),m=n(59645),_=n(39262),y=n(76966),b=n(64818),w=n(13108),C=n(76095),k=n(66005),S=1,x=2,L=4,E="[object Arguments]",N="[object Function]",D="[object GeneratorFunction]",M="[object Object]",T={};T[E]=T["[object Array]"]=T["[object ArrayBuffer]"]=T["[object DataView]"]=T["[object Boolean]"]=T["[object Date]"]=T["[object Float32Array]"]=T["[object Float64Array]"]=T["[object Int8Array]"]=T["[object Int16Array]"]=T["[object Int32Array]"]=T["[object Map]"]=T["[object Number]"]=T[M]=T["[object RegExp]"]=T["[object Set]"]=T["[object String]"]=T["[object Symbol]"]=T["[object Uint8Array]"]=T["[object Uint8ClampedArray]"]=T["[object Uint16Array]"]=T["[object Uint32Array]"]=!0,T["[object Error]"]=T[N]=T["[object WeakMap]"]=!1,e.exports=function e(t,n,O,I,A,P){var R,Z=n&S,F=n&x,j=n&L;if(O&&(R=A?O(t,I,A,P):O(t)),void 0!==R)return R;if(!w(t))return t;var H=_(t);if(H){if(R=v(t),!Z)return l(t,R)}else{var B=p(t),z=B==N||B==D;if(y(t))return u(t,Z);if(B==M||B==E||z&&!A){if(R=F||z?{}:m(t),!Z)return F?d(t,s(R,t)):c(t,a(R,t))}else{if(!T[B])return A?t:{};R=g(t,B,Z)}}P||(P=new i);var W=P.get(t);if(W)return W;if(P.set(t,R),C(t))return t.forEach((function(i){R.add(e(i,n,O,i,t,P))})),R;if(b(t))return t.forEach((function(i,r){R.set(r,e(i,n,O,r,t,P))})),R;var V=j?F?f:h:F?keysIn:k,Y=H?void 0:V(t);return r(Y||t,(function(i,r){Y&&(i=t[r=i]),o(R,r,e(i,n,O,r,t,P))})),R}},46474:function(e,t,n){var i=n(13108),r=Object.create,o=function(){function e(){}return function(t){if(!i(t))return{};if(r)return r(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},81297:function(e,t,n){var i=n(34644),r=n(92788)(i);e.exports=r},21765:function(e){e.exports=function(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}},31368:function(e,t,n){var i=n(96827),r=n(25812);e.exports=function e(t,n,o,a,s){var u=-1,l=t.length;for(o||(o=r),s||(s=[]);++u<l;){var c=t[u];n>0&&o(c)?n>1?e(c,n-1,o,a,s):i(s,c):a||(s[s.length]=c)}return s}},66186:function(e,t,n){var i=n(87388)();e.exports=i},34644:function(e,t,n){var i=n(66186),r=n(66005);e.exports=function(e,t){return e&&i(e,t,r)}},48661:function(e,t,n){var i=n(33576),r=n(55852);e.exports=function(e,t){for(var n=0,o=(t=i(t,e)).length;null!=e&&n<o;)e=e[r(t[n++])];return n&&n==o?e:void 0}},30014:function(e,t,n){var i=n(96827),r=n(39262);e.exports=function(e,t,n){var o=t(e);return r(e)?o:i(o,n(e))}},46316:function(e,t,n){var i=n(96298),r=n(30636),o=n(86861),a="[object Null]",s="[object Undefined]",u=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?r(e):o(e)}},83937:function(e){e.exports=function(e,t){return null!=e&&t in Object(e)}},5001:function(e,t,n){var i=n(21765),r=n(55815),o=n(29011);e.exports=function(e,t,n){return t===t?o(e,t,n):i(e,r,n)}},13175:function(e,t,n){var i=n(46316),r=n(71983),o="[object Arguments]";e.exports=function(e){return r(e)&&i(e)==o}},1831:function(e,t,n){var i=n(35986),r=n(71983);e.exports=function e(t,n,o,a,s){return t===n||(null==t||null==n||!r(t)&&!r(n)?t!==t&&n!==n:i(t,n,o,a,e,s))}},35986:function(e,t,n){var i=n(48368),r=n(29435),o=n(15893),a=n(12553),s=n(84047),u=n(39262),l=n(76966),c=n(57421),d=1,h="[object Arguments]",f="[object Array]",p="[object Object]",v=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,g,m,_){var y=u(e),b=u(t),w=y?f:s(e),C=b?f:s(t),k=(w=w==h?p:w)==p,S=(C=C==h?p:C)==p,x=w==C;if(x&&l(e)){if(!l(t))return!1;y=!0,k=!1}if(x&&!k)return _||(_=new i),y||c(e)?r(e,t,n,g,m,_):o(e,t,w,n,g,m,_);if(!(n&d)){var L=k&&v.call(e,"__wrapped__"),E=S&&v.call(t,"__wrapped__");if(L||E){var N=L?e.value():e,D=E?t.value():t;return _||(_=new i),m(N,D,n,g,_)}}return!!x&&(_||(_=new i),a(e,t,n,g,m,_))}},57535:function(e,t,n){var i=n(84047),r=n(71983),o="[object Map]";e.exports=function(e){return r(e)&&i(e)==o}},90897:function(e,t,n){var i=n(48368),r=n(1831),o=1,a=2;e.exports=function(e,t,n,s){var u=n.length,l=u,c=!s;if(null==e)return!l;for(e=Object(e);u--;){var d=n[u];if(c&&d[2]?d[1]!==e[d[0]]:!(d[0]in e))return!1}for(;++u<l;){var h=(d=n[u])[0],f=e[h],p=d[1];if(c&&d[2]){if(void 0===f&&!(h in e))return!1}else{var v=new i;if(s)var g=s(f,p,h,e,t,v);if(!(void 0===g?r(p,f,o|a,s,v):g))return!1}}return!0}},55815:function(e){e.exports=function(e){return e!==e}},54437:function(e,t,n){var i=n(99539),r=n(73095),o=n(13108),a=n(69913),s=/^\[object .+?Constructor\]$/,u=Function.prototype,l=Object.prototype,c=u.toString,d=l.hasOwnProperty,h=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||r(e))&&(i(e)?h:s).test(a(e))}},19543:function(e,t,n){var i=n(84047),r=n(71983),o="[object Set]";e.exports=function(e){return r(e)&&i(e)==o}},65965:function(e,t,n){var i=n(46316),r=n(13392),o=n(71983),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&r(e.length)&&!!a[i(e)]}},19829:function(e,t,n){var i=n(1732),r=n(14963),o=n(70396),a=n(39262),s=n(44149);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?r(e[0],e[1]):i(e):s(e)}},30675:function(e,t,n){var i=n(965),r=n(96379),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return r(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},76085:function(e,t,n){var i=n(13108),r=n(965),o=n(27732),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return o(e);var t=r(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},39243:function(e){e.exports=function(){}},61841:function(e,t,n){var i=n(81297),r=n(14925);e.exports=function(e,t){var n=-1,o=r(e)?Array(e.length):[];return i(e,(function(e,i,r){o[++n]=t(e,i,r)})),o}},1732:function(e,t,n){var i=n(90897),r=n(63718),o=n(86706);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||i(n,e,t)}}},14963:function(e,t,n){var i=n(1831),r=n(93128),o=n(60693),a=n(24445),s=n(83052),u=n(86706),l=n(55852),c=1,d=2;e.exports=function(e,t){return a(e)&&s(t)?u(l(e),t):function(n){var a=r(n,e);return void 0===a&&a===t?o(n,e):i(t,a,c|d)}}},33457:function(e,t,n){var i=n(79746),r=n(19829),o=n(61841),a=n(69411),s=n(35313),u=n(15323),l=n(70396);e.exports=function(e,t,n){var c=-1;t=i(t.length?t:[l],s(r));var d=o(e,(function(e,n,r){return{criteria:i(t,(function(t){return t(e)})),index:++c,value:e}}));return a(d,(function(e,t){return u(e,t,n)}))}},95391:function(e){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},35087:function(e,t,n){var i=n(48661);e.exports=function(e){return function(t){return i(t,e)}}},52850:function(e,t,n){var i=n(70396),r=n(80780),o=n(21762);e.exports=function(e,t){return o(r(e,t,i),e+"")}},32559:function(e,t,n){var i=n(49402),r=n(33576),o=n(47247),a=n(13108),s=n(55852);e.exports=function(e,t,n,u){if(!a(e))return e;for(var l=-1,c=(t=r(t,e)).length,d=c-1,h=e;null!=h&&++l<c;){var f=s(t[l]),p=n;if(l!=d){var v=h[f];void 0===(p=u?u(v,f,h):void 0)&&(p=a(v)?v:o(t[l+1])?[]:{})}i(h,f,p),h=h[f]}return e}},5105:function(e,t,n){var i=n(70396),r=n(51485),o=r?function(e,t){return r.set(e,t),e}:i;e.exports=o},14360:function(e,t,n){var i=n(41853),r=n(53789),o=n(70396),a=r?function(e,t){return r(e,"toString",{configurable:!0,enumerable:!1,value:i(t),writable:!0})}:o;e.exports=a},80296:function(e){e.exports=function(e,t,n){var i=-1,r=e.length;t<0&&(t=-t>r?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(r);++i<r;)o[i]=e[i+t];return o}},69411:function(e){e.exports=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}},5813:function(e){e.exports=function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}},24714:function(e,t,n){var i=n(96298),r=n(79746),o=n(39262),a=n(89718),s=1/0,u=i?i.prototype:void 0,l=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return r(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},35313:function(e){e.exports=function(e){return function(t){return e(t)}}},73911:function(e,t,n){var i=n(53530),r=n(43938),o=n(53020),a=n(15176),s=n(56571),u=n(86483),l=200;e.exports=function(e,t,n){var c=-1,d=r,h=e.length,f=!0,p=[],v=p;if(n)f=!1,d=o;else if(h>=l){var g=t?null:s(e);if(g)return u(g);f=!1,d=a,v=new i}else v=t?[]:p;e:for(;++c<h;){var m=e[c],_=t?t(m):m;if(m=n||0!==m?m:0,f&&_===_){for(var y=v.length;y--;)if(v[y]===_)continue e;t&&v.push(_),p.push(m)}else d(v,_,n)||(v!==p&&v.push(_),p.push(m))}return p}},88343:function(e,t,n){var i=n(33576),r=n(51478),o=n(47728),a=n(55852);e.exports=function(e,t){return t=i(t,e),null==(e=o(e,t))||delete e[a(r(t))]}},15176:function(e){e.exports=function(e,t){return e.has(t)}},33576:function(e,t,n){var i=n(39262),r=n(24445),o=n(34786),a=n(20403);e.exports=function(e,t){return i(e)?e:r(e,t)?[e]:o(a(e))}},78370:function(e,t,n){var i=n(64345);e.exports=function(e){var t=new e.constructor(e.byteLength);return new i(t).set(new i(e)),t}},19130:function(e,t,n){e=n.nmd(e);var i=n(4210),r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r?i.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,i=s?s(n):new e.constructor(n);return e.copy(i),i}},45587:function(e,t,n){var i=n(78370);e.exports=function(e,t){var n=t?i(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},76327:function(e){var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},75036:function(e,t,n){var i=n(96298),r=i?i.prototype:void 0,o=r?r.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},12528:function(e,t,n){var i=n(78370);e.exports=function(e,t){var n=t?i(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},83844:function(e,t,n){var i=n(89718);e.exports=function(e,t){if(e!==t){var n=void 0!==e,r=null===e,o=e===e,a=i(e),s=void 0!==t,u=null===t,l=t===t,c=i(t);if(!u&&!c&&!a&&e>t||a&&s&&l&&!u&&!c||r&&s&&l||!n&&l||!o)return 1;if(!r&&!a&&!c&&e<t||c&&n&&o&&!r&&!a||u&&n&&o||!s&&o||!l)return-1}return 0}},15323:function(e,t,n){var i=n(83844);e.exports=function(e,t,n){for(var r=-1,o=e.criteria,a=t.criteria,s=o.length,u=n.length;++r<s;){var l=i(o[r],a[r]);if(l)return r>=u?l:l*("desc"==n[r]?-1:1)}return e.index-t.index}},78250:function(e){var t=Math.max;e.exports=function(e,n,i,r){for(var o=-1,a=e.length,s=i.length,u=-1,l=n.length,c=t(a-s,0),d=Array(l+c),h=!r;++u<l;)d[u]=n[u];for(;++o<s;)(h||o<a)&&(d[i[o]]=e[o]);for(;c--;)d[u++]=e[o++];return d}},83995:function(e){var t=Math.max;e.exports=function(e,n,i,r){for(var o=-1,a=e.length,s=-1,u=i.length,l=-1,c=n.length,d=t(a-u,0),h=Array(d+c),f=!r;++o<d;)h[o]=e[o];for(var p=o;++l<c;)h[p+l]=n[l];for(;++s<u;)(f||o<a)&&(h[p+i[s]]=e[o++]);return h}},91342:function(e){e.exports=function(e,t){var n=-1,i=e.length;for(t||(t=Array(i));++n<i;)t[n]=e[n];return t}},77516:function(e,t,n){var i=n(49402),r=n(34778);e.exports=function(e,t,n,o){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var l=t[s],c=o?o(n[l],e[l],l,n,e):void 0;void 0===c&&(c=e[l]),a?r(n,l,c):i(n,l,c)}return n}},54801:function(e,t,n){var i=n(77516),r=n(76054);e.exports=function(e,t){return i(e,r(e),t)}},88333:function(e,t,n){var i=n(77516),r=n(5226);e.exports=function(e,t){return i(e,r(e),t)}},79695:function(e,t,n){var i=n(4210)["__core-js_shared__"];e.exports=i},58337:function(e){e.exports=function(e,t){for(var n=e.length,i=0;n--;)e[n]===t&&++i;return i}},92788:function(e,t,n){var i=n(14925);e.exports=function(e,t){return function(n,r){if(null==n)return n;if(!i(n))return e(n,r);for(var o=n.length,a=t?o:-1,s=Object(n);(t?a--:++a<o)&&!1!==r(s[a],a,s););return n}}},87388:function(e){e.exports=function(e){return function(t,n,i){for(var r=-1,o=Object(t),a=i(t),s=a.length;s--;){var u=a[e?s:++r];if(!1===n(o[u],u,o))break}return t}}},1320:function(e,t,n){var i=n(7064),r=n(4210),o=1;e.exports=function(e,t,n){var a=t&o,s=i(e);return function t(){return(this&&this!==r&&this instanceof t?s:e).apply(a?n:this,arguments)}}},7064:function(e,t,n){var i=n(46474),r=n(13108);e.exports=function(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=i(e.prototype),o=e.apply(n,t);return r(o)?o:n}}},67808:function(e,t,n){var i=n(75049),r=n(7064),o=n(24470),a=n(910),s=n(54802),u=n(64791),l=n(4210);e.exports=function(e,t,n){var c=r(e);return function r(){for(var d=arguments.length,h=Array(d),f=d,p=s(r);f--;)h[f]=arguments[f];var v=d<3&&h[0]!==p&&h[d-1]!==p?[]:u(h,p);return(d-=v.length)<n?a(e,t,o,r.placeholder,void 0,h,v,void 0,void 0,n-d):i(this&&this!==l&&this instanceof r?c:e,this,h)}}},74103:function(e,t,n){var i=n(19829),r=n(14925),o=n(66005);e.exports=function(e){return function(t,n,a){var s=Object(t);if(!r(t)){var u=i(n,3);t=o(t),n=function(e){return u(s[e],e,s)}}var l=e(t,n,a);return l>-1?s[u?t[l]:l]:void 0}}},91290:function(e,t,n){var i=n(88936),r=n(95057),o=n(84097),a=n(70492),s=n(39262),u=n(35804),l="Expected a function",c=8,d=32,h=128,f=256;e.exports=function(e){return r((function(t){var n=t.length,r=n,p=i.prototype.thru;for(e&&t.reverse();r--;){var v=t[r];if("function"!=typeof v)throw new TypeError(l);if(p&&!g&&"wrapper"==a(v))var g=new i([],!0)}for(r=g?r:n;++r<n;){v=t[r];var m=a(v),_="wrapper"==m?o(v):void 0;g=_&&u(_[0])&&_[1]==(h|c|d|f)&&!_[4].length&&1==_[9]?g[a(_[0])].apply(g,_[3]):1==v.length&&u(v)?g[m]():g.thru(v)}return function(){var e=arguments,i=e[0];if(g&&1==e.length&&s(i))return g.plant(i).value();for(var r=0,o=n?t[r].apply(this,e):i;++r<n;)o=t[r].call(this,o);return o}}))}},24470:function(e,t,n){var i=n(78250),r=n(83995),o=n(58337),a=n(7064),s=n(910),u=n(54802),l=n(29358),c=n(64791),d=n(4210),h=1,f=2,p=8,v=16,g=128,m=512;e.exports=function e(t,n,_,y,b,w,C,k,S,x){var L=n&g,E=n&h,N=n&f,D=n&(p|v),M=n&m,T=N?void 0:a(t);return function h(){for(var f=arguments.length,p=Array(f),v=f;v--;)p[v]=arguments[v];if(D)var g=u(h),m=o(p,g);if(y&&(p=i(p,y,b,D)),w&&(p=r(p,w,C,D)),f-=m,D&&f<x){var O=c(p,g);return s(t,n,e,h.placeholder,_,p,O,k,S,x-f)}var I=E?_:this,A=N?I[t]:t;return f=p.length,k?p=l(p,k):M&&f>1&&p.reverse(),L&&S<f&&(p.length=S),this&&this!==d&&this instanceof h&&(A=T||a(A)),A.apply(I,p)}}},13299:function(e,t,n){var i=n(75049),r=n(7064),o=n(4210),a=1;e.exports=function(e,t,n,s){var u=t&a,l=r(e);return function t(){for(var r=-1,a=arguments.length,c=-1,d=s.length,h=Array(d+a),f=this&&this!==o&&this instanceof t?l:e;++c<d;)h[c]=s[c];for(;a--;)h[c++]=arguments[++r];return i(f,u?n:this,h)}}},910:function(e,t,n){var i=n(35804),r=n(85998),o=n(39565),a=1,s=2,u=4,l=8,c=32,d=64;e.exports=function(e,t,n,h,f,p,v,g,m,_){var y=t&l;t|=y?c:d,(t&=~(y?d:c))&u||(t&=~(a|s));var b=[e,t,f,y?p:void 0,y?v:void 0,y?void 0:p,y?void 0:v,g,m,_],w=n.apply(void 0,b);return i(e)&&r(w,b),w.placeholder=h,o(w,e,t)}},56571:function(e,t,n){var i=n(55092),r=n(4395),o=n(86483),a=i&&1/o(new i([,-0]))[1]==1/0?function(e){return new i(e)}:r;e.exports=a},56541:function(e,t,n){var i=n(5105),r=n(1320),o=n(67808),a=n(24470),s=n(13299),u=n(84097),l=n(83289),c=n(85998),d=n(39565),h=n(33061),f="Expected a function",p=1,v=2,g=8,m=16,_=32,y=64,b=Math.max;e.exports=function(e,t,n,w,C,k,S,x){var L=t&v;if(!L&&"function"!=typeof e)throw new TypeError(f);var E=w?w.length:0;if(E||(t&=~(_|y),w=C=void 0),S=void 0===S?S:b(h(S),0),x=void 0===x?x:h(x),E-=C?C.length:0,t&y){var N=w,D=C;w=C=void 0}var M=L?void 0:u(e),T=[e,t,n,w,C,N,D,k,S,x];if(M&&l(T,M),e=T[0],t=T[1],n=T[2],w=T[3],C=T[4],!(x=T[9]=void 0===T[9]?L?0:e.length:b(T[9]-E,0))&&t&(g|m)&&(t&=~(g|m)),t&&t!=p)O=t==g||t==m?o(e,t,x):t!=_&&t!=(p|_)||C.length?a.apply(void 0,T):s(e,t,n,w);else var O=r(e,t,n);return d((M?i:c)(O,T),e,t)}},1594:function(e,t,n){var i=n(267);e.exports=function(e){return i(e)?void 0:e}},53789:function(e,t,n){var i=n(80651),r=function(){try{var e=i(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=r},29435:function(e,t,n){var i=n(53530),r=n(63102),o=n(15176),a=1,s=2;e.exports=function(e,t,n,u,l,c){var d=n&a,h=e.length,f=t.length;if(h!=f&&!(d&&f>h))return!1;var p=c.get(e);if(p&&c.get(t))return p==t;var v=-1,g=!0,m=n&s?new i:void 0;for(c.set(e,t),c.set(t,e);++v<h;){var _=e[v],y=t[v];if(u)var b=d?u(y,_,v,t,e,c):u(_,y,v,e,t,c);if(void 0!==b){if(b)continue;g=!1;break}if(m){if(!r(t,(function(e,t){if(!o(m,t)&&(_===e||l(_,e,n,u,c)))return m.push(t)}))){g=!1;break}}else if(_!==y&&!l(_,y,n,u,c)){g=!1;break}}return c.delete(e),c.delete(t),g}},15893:function(e,t,n){var i=n(96298),r=n(64345),o=n(93841),a=n(29435),s=n(30040),u=n(86483),l=1,c=2,d="[object Boolean]",h="[object Date]",f="[object Error]",p="[object Map]",v="[object Number]",g="[object RegExp]",m="[object Set]",_="[object String]",y="[object Symbol]",b="[object ArrayBuffer]",w="[object DataView]",C=i?i.prototype:void 0,k=C?C.valueOf:void 0;e.exports=function(e,t,n,i,C,S,x){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case b:return!(e.byteLength!=t.byteLength||!S(new r(e),new r(t)));case d:case h:case v:return o(+e,+t);case f:return e.name==t.name&&e.message==t.message;case g:case _:return e==t+"";case p:var L=s;case m:var E=i&l;if(L||(L=u),e.size!=t.size&&!E)return!1;var N=x.get(e);if(N)return N==t;i|=c,x.set(e,t);var D=a(L(e),L(t),i,C,S,x);return x.delete(e),D;case y:if(k)return k.call(e)==k.call(t)}return!1}},12553:function(e,t,n){var i=n(72038),r=1,o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,s,u){var l=n&r,c=i(e),d=c.length;if(d!=i(t).length&&!l)return!1;for(var h=d;h--;){var f=c[h];if(!(l?f in t:o.call(t,f)))return!1}var p=u.get(e);if(p&&u.get(t))return p==t;var v=!0;u.set(e,t),u.set(t,e);for(var g=l;++h<d;){var m=e[f=c[h]],_=t[f];if(a)var y=l?a(_,m,f,t,e,u):a(m,_,f,e,t,u);if(!(void 0===y?m===_||s(m,_,n,a,u):y)){v=!1;break}g||(g="constructor"==f)}if(v&&!g){var b=e.constructor,w=t.constructor;b==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w||(v=!1)}return u.delete(e),u.delete(t),v}},95057:function(e,t,n){var i=n(68369),r=n(80780),o=n(21762);e.exports=function(e){return o(r(e,void 0,i),e+"")}},86876:function(e,t,n){var i="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=i},72038:function(e,t,n){var i=n(30014),r=n(76054),o=n(66005);e.exports=function(e){return i(e,o,r)}},73561:function(e,t,n){var i=n(30014),r=n(5226),o=n(94370);e.exports=function(e){return i(e,o,r)}},84097:function(e,t,n){var i=n(51485),r=n(4395),o=i?function(e){return i.get(e)}:r;e.exports=o},70492:function(e,t,n){var i=n(45947),r=Object.prototype.hasOwnProperty;e.exports=function(e){for(var t=e.name+"",n=i[t],o=r.call(i,t)?n.length:0;o--;){var a=n[o],s=a.func;if(null==s||s==e)return a.name}return t}},54802:function(e){e.exports=function(e){return e.placeholder}},95680:function(e,t,n){var i=n(94030);e.exports=function(e,t){var n=e.__data__;return i(t)?n["string"==typeof t?"string":"hash"]:n.map}},63718:function(e,t,n){var i=n(83052),r=n(66005);e.exports=function(e){for(var t=r(e),n=t.length;n--;){var o=t[n],a=e[o];t[n]=[o,a,i(a)]}return t}},80651:function(e,t,n){var i=n(54437),r=n(47722);e.exports=function(e,t){var n=r(e,t);return i(n)?n:void 0}},2629:function(e,t,n){var i=n(16648)(Object.getPrototypeOf,Object);e.exports=i},30636:function(e,t,n){var i=n(96298),r=Object.prototype,o=r.hasOwnProperty,a=r.toString,s=i?i.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var i=!0}catch(u){}var r=a.call(e);return i&&(t?e[s]=n:delete e[s]),r}},76054:function(e,t,n){var i=n(42498),r=n(8304),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),i(a(e),(function(t){return o.call(e,t)})))}:r;e.exports=s},5226:function(e,t,n){var i=n(96827),r=n(2629),o=n(76054),a=n(8304),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)i(t,o(e)),e=r(e);return t}:a;e.exports=s},84047:function(e,t,n){var i=n(99383),r=n(10628),o=n(89883),a=n(55092),s=n(16479),u=n(46316),l=n(69913),c="[object Map]",d="[object Promise]",h="[object Set]",f="[object WeakMap]",p="[object DataView]",v=l(i),g=l(r),m=l(o),_=l(a),y=l(s),b=u;(i&&b(new i(new ArrayBuffer(1)))!=p||r&&b(new r)!=c||o&&b(o.resolve())!=d||a&&b(new a)!=h||s&&b(new s)!=f)&&(b=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,i=n?l(n):"";if(i)switch(i){case v:return p;case g:return c;case m:return d;case _:return h;case y:return f}return t}),e.exports=b},47722:function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},49906:function(e){var t=/\{\n\/\* \[wrapped with (.+)\] \*/,n=/,? & /;e.exports=function(e){var i=e.match(t);return i?i[1].split(n):[]}},5367:function(e,t,n){var i=n(33576),r=n(43917),o=n(39262),a=n(47247),s=n(13392),u=n(55852);e.exports=function(e,t,n){for(var l=-1,c=(t=i(t,e)).length,d=!1;++l<c;){var h=u(t[l]);if(!(d=null!=e&&n(e,h)))break;e=e[h]}return d||++l!=c?d:!!(c=null==e?0:e.length)&&s(c)&&a(h,c)&&(o(e)||r(e))}},73206:function(e,t,n){var i=n(53788);e.exports=function(){this.__data__=i?i(null):{},this.size=0}},59288:function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},20740:function(e,t,n){var i=n(53788),r="__lodash_hash_undefined__",o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(i){var n=t[e];return n===r?void 0:n}return o.call(t,e)?t[e]:void 0}},40900:function(e,t,n){var i=n(53788),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return i?void 0!==t[e]:r.call(t,e)}},99762:function(e,t,n){var i=n(53788),r="__lodash_hash_undefined__";e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=i&&void 0===t?r:t,this}},50665:function(e){var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,i=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(i.index=e.index,i.input=e.input),i}},72280:function(e,t,n){var i=n(78370),r=n(45587),o=n(76327),a=n(75036),s=n(12528),u="[object Boolean]",l="[object Date]",c="[object Map]",d="[object Number]",h="[object RegExp]",f="[object Set]",p="[object String]",v="[object Symbol]",g="[object ArrayBuffer]",m="[object DataView]",_="[object Float32Array]",y="[object Float64Array]",b="[object Int8Array]",w="[object Int16Array]",C="[object Int32Array]",k="[object Uint8Array]",S="[object Uint8ClampedArray]",x="[object Uint16Array]",L="[object Uint32Array]";e.exports=function(e,t,n){var E=e.constructor;switch(t){case g:return i(e);case u:case l:return new E(+e);case m:return r(e,n);case _:case y:case b:case w:case C:case k:case S:case x:case L:return s(e,n);case c:return new E;case d:case p:return new E(e);case h:return o(e);case f:return new E;case v:return a(e)}}},59645:function(e,t,n){var i=n(46474),r=n(2629),o=n(965);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:i(r(e))}},63714:function(e){var t=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;e.exports=function(e,n){var i=n.length;if(!i)return e;var r=i-1;return n[r]=(i>1?"& ":"")+n[r],n=n.join(i>2?", ":" "),e.replace(t,"{\n/* [wrapped with "+n+"] */\n")}},25812:function(e,t,n){var i=n(96298),r=n(43917),o=n(39262),a=i?i.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||r(e)||!!(a&&e&&e[a])}},47247:function(e){var t=9007199254740991,n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,i){var r=typeof e;return!!(i=null==i?t:i)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e<i}},59072:function(e,t,n){var i=n(93841),r=n(14925),o=n(47247),a=n(13108);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?r(n)&&o(t,n.length):"string"==s&&t in n)&&i(n[t],e)}},24445:function(e,t,n){var i=n(39262),r=n(89718),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(i(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}},94030:function(e){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},35804:function(e,t,n){var i=n(82966),r=n(84097),o=n(70492),a=n(83440);e.exports=function(e){var t=o(e),n=a[t];if("function"!=typeof n||!(t in i.prototype))return!1;if(e===n)return!0;var s=r(n);return!!s&&e===s[0]}},73095:function(e,t,n){var i=n(79695),r=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!r&&r in e}},965:function(e){var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},83052:function(e,t,n){var i=n(13108);e.exports=function(e){return e===e&&!i(e)}},89330:function(e){e.exports=function(){this.__data__=[],this.size=0}},12671:function(e,t,n){var i=n(71394),r=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=i(t,e);return!(n<0)&&(n==t.length-1?t.pop():r.call(t,n,1),--this.size,!0)}},15960:function(e,t,n){var i=n(71394);e.exports=function(e){var t=this.__data__,n=i(t,e);return n<0?void 0:t[n][1]}},34508:function(e,t,n){var i=n(71394);e.exports=function(e){return i(this.__data__,e)>-1}},56062:function(e,t,n){var i=n(71394);e.exports=function(e,t){var n=this.__data__,r=i(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}},78846:function(e,t,n){var i=n(11724),r=n(87889),o=n(10628);e.exports=function(){this.size=0,this.__data__={hash:new i,map:new(o||r),string:new i}}},53799:function(e,t,n){var i=n(95680);e.exports=function(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}},15778:function(e,t,n){var i=n(95680);e.exports=function(e){return i(this,e).get(e)}},53032:function(e,t,n){var i=n(95680);e.exports=function(e){return i(this,e).has(e)}},70420:function(e,t,n){var i=n(95680);e.exports=function(e,t){var n=i(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}},30040:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}},86706:function(e){e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},77751:function(e,t,n){var i=n(95130),r=500;e.exports=function(e){var t=i(e,(function(e){return n.size===r&&n.clear(),e})),n=t.cache;return t}},83289:function(e,t,n){var i=n(78250),r=n(83995),o=n(64791),a="__lodash_placeholder__",s=1,u=2,l=4,c=8,d=128,h=256,f=Math.min;e.exports=function(e,t){var n=e[1],p=t[1],v=n|p,g=v<(s|u|d),m=p==d&&n==c||p==d&&n==h&&e[7].length<=t[8]||p==(d|h)&&t[7].length<=t[8]&&n==c;if(!g&&!m)return e;p&s&&(e[2]=t[2],v|=n&s?0:l);var _=t[3];if(_){var y=e[3];e[3]=y?i(y,_,t[4]):_,e[4]=y?o(e[3],a):t[4]}return(_=t[5])&&(y=e[5],e[5]=y?r(y,_,t[6]):_,e[6]=y?o(e[5],a):t[6]),(_=t[7])&&(e[7]=_),p&d&&(e[8]=null==e[8]?t[8]:f(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=v,e}},51485:function(e,t,n){var i=n(16479),r=i&&new i;e.exports=r},53788:function(e,t,n){var i=n(80651)(Object,"create");e.exports=i},96379:function(e,t,n){var i=n(16648)(Object.keys,Object);e.exports=i},27732:function(e){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},63138:function(e,t,n){e=n.nmd(e);var i=n(86876),r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r&&i.process,s=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=s},86861:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},16648:function(e){e.exports=function(e,t){return function(n){return e(t(n))}}},80780:function(e,t,n){var i=n(75049),r=Math.max;e.exports=function(e,t,n){return t=r(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=r(o.length-t,0),u=Array(s);++a<s;)u[a]=o[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=o[a];return l[t]=n(u),i(e,this,l)}}},47728:function(e,t,n){var i=n(48661),r=n(80296);e.exports=function(e,t){return t.length<2?e:i(e,r(t,0,-1))}},45947:function(e){e.exports={}},29358:function(e,t,n){var i=n(91342),r=n(47247),o=Math.min;e.exports=function(e,t){for(var n=e.length,a=o(t.length,n),s=i(e);a--;){var u=t[a];e[a]=r(u,n)?s[u]:void 0}return e}},64791:function(e){var t="__lodash_placeholder__";e.exports=function(e,n){for(var i=-1,r=e.length,o=0,a=[];++i<r;){var s=e[i];s!==n&&s!==t||(e[i]=t,a[o++]=i)}return a}},4210:function(e,t,n){var i=n(86876),r="object"==typeof self&&self&&self.Object===Object&&self,o=i||r||Function("return this")();e.exports=o},18892:function(e){var t="__lodash_hash_undefined__";e.exports=function(e){return this.__data__.set(e,t),this}},77750:function(e){e.exports=function(e){return this.__data__.has(e)}},85998:function(e,t,n){var i=n(5105),r=n(87442)(i);e.exports=r},86483:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},21762:function(e,t,n){var i=n(14360),r=n(87442)(i);e.exports=r},39565:function(e,t,n){var i=n(49906),r=n(63714),o=n(21762),a=n(5832);e.exports=function(e,t,n){var s=t+"";return o(e,r(s,a(i(s),n)))}},87442:function(e){var t=800,n=16,i=Date.now;e.exports=function(e){var r=0,o=0;return function(){var a=i(),s=n-(a-o);if(o=a,s>0){if(++r>=t)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},68913:function(e,t,n){var i=n(87889);e.exports=function(){this.__data__=new i,this.size=0}},58444:function(e){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7606:function(e){e.exports=function(e){return this.__data__.get(e)}},85993:function(e){e.exports=function(e){return this.__data__.has(e)}},11987:function(e,t,n){var i=n(87889),r=n(10628),o=n(50042),a=200;e.exports=function(e,t){var n=this.__data__;if(n instanceof i){var s=n.__data__;if(!r||s.length<a-1)return s.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(s)}return n.set(e,t),this.size=n.size,this}},29011:function(e){e.exports=function(e,t,n){for(var i=n-1,r=e.length;++i<r;)if(e[i]===t)return i;return-1}},34786:function(e,t,n){var i=n(77751),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=i((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(r,(function(e,n,i,r){t.push(i?r.replace(o,"$1"):n||e)})),t}));e.exports=a},55852:function(e,t,n){var i=n(89718),r=1/0;e.exports=function(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-r?"-0":t}},69913:function(e){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},5832:function(e,t,n){var i=n(50294),r=n(43938),o=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]];e.exports=function(e,t){return i(o,(function(n){var i="_."+n[0];t&n[1]&&!r(e,i)&&e.push(i)})),e.sort()}},94426:function(e,t,n){var i=n(82966),r=n(88936),o=n(91342);e.exports=function(e){if(e instanceof i)return e.clone();var t=new r(e.__wrapped__,e.__chain__);return t.__actions__=o(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}},83437:function(e,t,n){var i=n(56541),r=128;e.exports=function(e,t,n){return t=n?void 0:t,t=e&&null==t?e.length:t,i(e,r,void 0,void 0,void 0,void 0,t)}},31939:function(e,t,n){var i=n(60301),r=4;e.exports=function(e){return i(e,r)}},40794:function(e,t,n){var i=n(60301),r=1,o=4;e.exports=function(e){return i(e,r|o)}},41853:function(e){e.exports=function(e){return function(){return e}}},54211:function(e,t,n){var i=n(56541),r=8;function o(e,t,n){var a=i(e,r,void 0,void 0,void 0,void 0,void 0,t=n?void 0:t);return a.placeholder=o.placeholder,a}o.placeholder={},e.exports=o},93841:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},4218:function(e,t,n){var i=n(74103)(n(25742));e.exports=i},25742:function(e,t,n){var i=n(21765),r=n(19829),o=n(33061),a=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var u=null==n?0:o(n);return u<0&&(u=a(s+u,0)),i(e,r(t,3),u)}},68369:function(e,t,n){var i=n(31368);e.exports=function(e){return(null==e?0:e.length)?i(e,1):[]}},57968:function(e,t,n){var i=n(91290)();e.exports=i},46553:function(e,t,n){var i=n(970).runInContext();e.exports=n(81089)(i,i)},81089:function(e,t,n){var i=n(21864),r=n(37421),o=Array.prototype.push;function a(e,t){return 2==t?function(t,n){return e(t,n)}:function(t){return e(t)}}function s(e){for(var t=e?e.length:0,n=Array(t);t--;)n[t]=e[t];return n}function u(e,t){return function(){var n=arguments.length;if(n){for(var i=Array(n);n--;)i[n]=arguments[n];var r=i[0]=t.apply(void 0,i);return e.apply(void 0,i),r}}}e.exports=function e(t,n,l,c){var d="function"==typeof n,h=n===Object(n);if(h&&(c=l,l=n,n=void 0),null==l)throw new TypeError;c||(c={});var f={cap:!("cap"in c)||c.cap,curry:!("curry"in c)||c.curry,fixed:!("fixed"in c)||c.fixed,immutable:!("immutable"in c)||c.immutable,rearg:!("rearg"in c)||c.rearg},p=d?l:r,v="curry"in c&&c.curry,g="fixed"in c&&c.fixed,m="rearg"in c&&c.rearg,_=d?l.runInContext():void 0,y=d?l:{ary:t.ary,assign:t.assign,clone:t.clone,curry:t.curry,forEach:t.forEach,isArray:t.isArray,isError:t.isError,isFunction:t.isFunction,isWeakMap:t.isWeakMap,iteratee:t.iteratee,keys:t.keys,rearg:t.rearg,toInteger:t.toInteger,toPath:t.toPath},b=y.ary,w=y.assign,C=y.clone,k=y.curry,S=y.forEach,x=y.isArray,L=y.isError,E=y.isFunction,N=y.isWeakMap,D=y.keys,M=y.rearg,T=y.toInteger,O=y.toPath,I=D(i.aryMethod),A={castArray:function(e){return function(){var t=arguments[0];return x(t)?e(s(t)):e.apply(void 0,arguments)}},iteratee:function(e){return function(){var t=arguments[1],n=e(arguments[0],t),i=n.length;return f.cap&&"number"==typeof t?(t=t>2?t-2:1,i&&i<=t?n:a(n,t)):n}},mixin:function(e){return function(t){var n=this;if(!E(n))return e(n,Object(t));var i=[];return S(D(t),(function(e){E(t[e])&&i.push([e,n.prototype[e]])})),e(n,Object(t)),S(i,(function(e){var t=e[1];E(t)?n.prototype[e[0]]=t:delete n.prototype[e[0]]})),n}},nthArg:function(e){return function(t){var n=t<0?1:T(t)+1;return k(e(t),n)}},rearg:function(e){return function(t,n){var i=n?n.length:0;return k(e(t,n),i)}},runInContext:function(n){return function(i){return e(t,n(i),c)}}};function P(e,t){if(f.cap){var n=i.iterateeRearg[e];if(n)return function(e,t){return H(e,(function(e){var n=t.length;return function(e,t){return 2==t?function(t,n){return e.apply(void 0,arguments)}:function(t){return e.apply(void 0,arguments)}}(M(a(e,n),t),n)}))}(t,n);var r=!d&&i.iterateeAry[e];if(r)return function(e,t){return H(e,(function(e){return"function"==typeof e?a(e,t):e}))}(t,r)}return t}function R(e,t,n){if(f.fixed&&(g||!i.skipFixed[e])){var r=i.methodSpread[e],a=r&&r.start;return void 0===a?b(t,n):function(e,t){return function(){for(var n=arguments.length,i=n-1,r=Array(n);n--;)r[n]=arguments[n];var a=r[t],s=r.slice(0,t);return a&&o.apply(s,a),t!=i&&o.apply(s,r.slice(t+1)),e.apply(this,s)}}(t,a)}return t}function Z(e,t,n){return f.rearg&&n>1&&(m||!i.skipRearg[e])?M(t,i.methodRearg[e]||i.aryRearg[n]):t}function F(e,t){for(var n=-1,i=(t=O(t)).length,r=i-1,o=C(Object(e)),a=o;null!=a&&++n<i;){var s=t[n],u=a[s];null==u||E(u)||L(u)||N(u)||(a[s]=C(n==r?u:Object(u))),a=a[s]}return o}function j(t,n){var r=i.aliasToReal[t]||t,o=i.remap[r]||r,a=c;return function(t){var i=d?_:y,s=d?_[o]:n,u=w(w({},a),t);return e(i,r,s,u)}}function H(e,t){return function(){var n=arguments.length;if(!n)return e();for(var i=Array(n);n--;)i[n]=arguments[n];var r=f.rearg?0:n-1;return i[r]=t(i[r]),e.apply(void 0,i)}}function B(e,t,n){var r,o=i.aliasToReal[e]||e,a=t,l=A[o];return l?a=l(t):f.immutable&&(i.mutate.array[o]?a=u(t,s):i.mutate.object[o]?a=u(t,function(e){return function(t){return e({},t)}}(t)):i.mutate.set[o]&&(a=u(t,F))),S(I,(function(e){return S(i.aryMethod[e],(function(t){if(o==t){var n=i.methodSpread[o],s=n&&n.afterRearg;return r=s?R(o,Z(o,a,e),e):Z(o,R(o,a,e),e),r=function(e,t,n){return v||f.curry&&n>1?k(t,n):t}(0,r=P(o,r),e),!1}})),!r})),r||(r=a),r==t&&(r=v?k(r,1):function(){return t.apply(this,arguments)}),r.convert=j(o,t),r.placeholder=t.placeholder=n,r}if(!h)return B(n,l,p);var z=l,W=[];return S(I,(function(e){S(i.aryMethod[e],(function(e){var t=z[i.remap[e]||e];t&&W.push([e,B(e,t,z)])}))})),S(D(z),(function(e){var t=z[e];if("function"==typeof t){for(var n=W.length;n--;)if(W[n][0]==e)return;t.convert=j(e,t),W.push([e,t])}})),S(W,(function(e){z[e[0]]=e[1]})),z.convert=function(e){return z.runInContext.convert(e)(void 0)},z.placeholder=z,S(D(z),(function(e){S(i.realToAlias[e]||[],(function(t){z[t]=z[e]}))})),z}},21864:function(e,t){t.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},t.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},t.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},t.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},t.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},t.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},t.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},t.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},t.realToAlias=function(){var e=Object.prototype.hasOwnProperty,n=t.aliasToReal,i={};for(var r in n){var o=n[r];e.call(i,o)?i[o].push(r):i[o]=[r]}return i}(),t.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},t.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},t.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},27013:function(e,t,n){e.exports={ary:n(83437),assign:n(68007),clone:n(31939),curry:n(54211),forEach:n(50294),isArray:n(39262),isError:n(88718),isFunction:n(99539),isWeakMap:n(82406),iteratee:n(35587),keys:n(30675),rearg:n(95810),toInteger:n(33061),toPath:n(24216)}},98566:function(e,t,n){var i=n(81089),r=n(27013);e.exports=function(e,t,n){return i(r,e,t,n)}},54952:function(e,t,n){var i=n(98566)("flow",n(57968));i.placeholder=n(37421),e.exports=i},37421:function(e){e.exports={}},1990:function(e,t,n){var i=n(98566)("sortBy",n(39769));i.placeholder=n(37421),e.exports=i},26567:function(e,t,n){var i=n(98566)("uniqBy",n(50675));i.placeholder=n(37421),e.exports=i},93128:function(e,t,n){var i=n(48661);e.exports=function(e,t,n){var r=null==e?void 0:i(e,t);return void 0===r?n:r}},60693:function(e,t,n){var i=n(83937),r=n(5367);e.exports=function(e,t){return null!=e&&r(e,t,i)}},70396:function(e){e.exports=function(e){return e}},43917:function(e,t,n){var i=n(13175),r=n(71983),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,u=i(function(){return arguments}())?i:function(e){return r(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},39262:function(e){var t=Array.isArray;e.exports=t},14925:function(e,t,n){var i=n(99539),r=n(13392);e.exports=function(e){return null!=e&&r(e.length)&&!i(e)}},76966:function(e,t,n){e=n.nmd(e);var i=n(4210),r=n(54666),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,s=a&&a.exports===o?i.Buffer:void 0,u=(s?s.isBuffer:void 0)||r;e.exports=u},20061:function(e,t,n){var i=n(30675),r=n(84047),o=n(43917),a=n(39262),s=n(14925),u=n(76966),l=n(965),c=n(57421),d="[object Map]",h="[object Set]",f=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(a(e)||"string"==typeof e||"function"==typeof e.splice||u(e)||c(e)||o(e)))return!e.length;var t=r(e);if(t==d||t==h)return!e.size;if(l(e))return!i(e).length;for(var n in e)if(f.call(e,n))return!1;return!0}},34495:function(e,t,n){var i=n(1831);e.exports=function(e,t){return i(e,t)}},88718:function(e,t,n){var i=n(46316),r=n(71983),o=n(267),a="[object DOMException]",s="[object Error]";e.exports=function(e){if(!r(e))return!1;var t=i(e);return t==s||t==a||"string"==typeof e.message&&"string"==typeof e.name&&!o(e)}},99539:function(e,t,n){var i=n(46316),r=n(13108),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!r(e))return!1;var t=i(e);return t==a||t==s||t==o||t==u}},13392:function(e){var t=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=t}},64818:function(e,t,n){var i=n(57535),r=n(35313),o=n(63138),a=o&&o.isMap,s=a?r(a):i;e.exports=s},13108:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},71983:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},267:function(e,t,n){var i=n(46316),r=n(2629),o=n(71983),a="[object Object]",s=Function.prototype,u=Object.prototype,l=s.toString,c=u.hasOwnProperty,d=l.call(Object);e.exports=function(e){if(!o(e)||i(e)!=a)return!1;var t=r(e);if(null===t)return!0;var n=c.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==d}},76095:function(e,t,n){var i=n(19543),r=n(35313),o=n(63138),a=o&&o.isSet,s=a?r(a):i;e.exports=s},89718:function(e,t,n){var i=n(46316),r=n(71983),o="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||r(e)&&i(e)==o}},57421:function(e,t,n){var i=n(65965),r=n(35313),o=n(63138),a=o&&o.isTypedArray,s=a?r(a):i;e.exports=s},82406:function(e,t,n){var i=n(84047),r=n(71983),o="[object WeakMap]";e.exports=function(e){return r(e)&&i(e)==o}},35587:function(e,t,n){var i=n(60301),r=n(19829),o=1;e.exports=function(e){return r("function"==typeof e?e:i(e,o))}},66005:function(e,t,n){var i=n(42311),r=n(30675),o=n(14925);e.exports=function(e){return o(e)?i(e):r(e)}},94370:function(e,t,n){var i=n(42311),r=n(76085),o=n(14925);e.exports=function(e){return o(e)?i(e,!0):r(e)}},51478:function(e){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},32048:function(e,t,n){var i;e=n.nmd(e),function(){var r,o=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",s="Expected a function",u="__lodash_hash_undefined__",l=500,c="__lodash_placeholder__",d=1,h=2,f=4,p=1,v=2,g=1,m=2,_=4,y=8,b=16,w=32,C=64,k=128,S=256,x=512,L=30,E="...",N=800,D=16,M=1,T=2,O=1/0,I=9007199254740991,A=17976931348623157e292,P=NaN,R=4294967295,Z=R-1,F=R>>>1,j=[["ary",k],["bind",g],["bindKey",m],["curry",y],["curryRight",b],["flip",x],["partial",w],["partialRight",C],["rearg",S]],H="[object Arguments]",B="[object Array]",z="[object AsyncFunction]",W="[object Boolean]",V="[object Date]",Y="[object DOMException]",U="[object Error]",K="[object Function]",q="[object GeneratorFunction]",G="[object Map]",$="[object Number]",Q="[object Null]",X="[object Object]",J="[object Promise]",ee="[object Proxy]",te="[object RegExp]",ne="[object Set]",ie="[object String]",re="[object Symbol]",oe="[object Undefined]",ae="[object WeakMap]",se="[object WeakSet]",ue="[object ArrayBuffer]",le="[object DataView]",ce="[object Float32Array]",de="[object Float64Array]",he="[object Int8Array]",fe="[object Int16Array]",pe="[object Int32Array]",ve="[object Uint8Array]",ge="[object Uint8ClampedArray]",me="[object Uint16Array]",_e="[object Uint32Array]",ye=/\b__p \+= '';/g,be=/\b(__p \+=) '' \+/g,we=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ce=/&(?:amp|lt|gt|quot|#39);/g,ke=/[&<>"']/g,Se=RegExp(Ce.source),xe=RegExp(ke.source),Le=/<%-([\s\S]+?)%>/g,Ee=/<%([\s\S]+?)%>/g,Ne=/<%=([\s\S]+?)%>/g,De=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Me=/^\w*$/,Te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oe=/[\\^$.*+?()[\]{}|]/g,Ie=RegExp(Oe.source),Ae=/^\s+|\s+$/g,Pe=/^\s+/,Re=/\s+$/,Ze=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Fe=/\{\n\/\* \[wrapped with (.+)\] \*/,je=/,? & /,He=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Be=/\\(\\)?/g,ze=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,We=/\w*$/,Ve=/^[-+]0x[0-9a-f]+$/i,Ye=/^0b[01]+$/i,Ue=/^\[object .+?Constructor\]$/,Ke=/^0o[0-7]+$/i,qe=/^(?:0|[1-9]\d*)$/,Ge=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,$e=/($^)/,Qe=/['\n\r\u2028\u2029\\]/g,Xe="\\ud800-\\udfff",Je="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",et="\\u2700-\\u27bf",tt="a-z\\xdf-\\xf6\\xf8-\\xff",nt="A-Z\\xc0-\\xd6\\xd8-\\xde",it="\\ufe0e\\ufe0f",rt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ot="['\u2019]",at="["+Xe+"]",st="["+rt+"]",ut="["+Je+"]",lt="\\d+",ct="["+et+"]",dt="["+tt+"]",ht="[^"+Xe+rt+lt+et+tt+nt+"]",ft="\\ud83c[\\udffb-\\udfff]",pt="[^"+Xe+"]",vt="(?:\\ud83c[\\udde6-\\uddff]){2}",gt="[\\ud800-\\udbff][\\udc00-\\udfff]",mt="["+nt+"]",_t="\\u200d",yt="(?:"+dt+"|"+ht+")",bt="(?:"+mt+"|"+ht+")",wt="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Ct="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",kt="(?:"+ut+"|"+ft+")"+"?",St="["+it+"]?",xt=St+kt+("(?:"+_t+"(?:"+[pt,vt,gt].join("|")+")"+St+kt+")*"),Lt="(?:"+[ct,vt,gt].join("|")+")"+xt,Et="(?:"+[pt+ut+"?",ut,vt,gt,at].join("|")+")",Nt=RegExp(ot,"g"),Dt=RegExp(ut,"g"),Mt=RegExp(ft+"(?="+ft+")|"+Et+xt,"g"),Tt=RegExp([mt+"?"+dt+"+"+wt+"(?="+[st,mt,"$"].join("|")+")",bt+"+"+Ct+"(?="+[st,mt+yt,"$"].join("|")+")",mt+"?"+yt+"+"+wt,mt+"+"+Ct,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",lt,Lt].join("|"),"g"),Ot=RegExp("["+_t+Xe+Je+it+"]"),It=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,At=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Pt=-1,Rt={};Rt[ce]=Rt[de]=Rt[he]=Rt[fe]=Rt[pe]=Rt[ve]=Rt[ge]=Rt[me]=Rt[_e]=!0,Rt[H]=Rt[B]=Rt[ue]=Rt[W]=Rt[le]=Rt[V]=Rt[U]=Rt[K]=Rt[G]=Rt[$]=Rt[X]=Rt[te]=Rt[ne]=Rt[ie]=Rt[ae]=!1;var Zt={};Zt[H]=Zt[B]=Zt[ue]=Zt[le]=Zt[W]=Zt[V]=Zt[ce]=Zt[de]=Zt[he]=Zt[fe]=Zt[pe]=Zt[G]=Zt[$]=Zt[X]=Zt[te]=Zt[ne]=Zt[ie]=Zt[re]=Zt[ve]=Zt[ge]=Zt[me]=Zt[_e]=!0,Zt[U]=Zt[K]=Zt[ae]=!1;var Ft={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},jt=parseFloat,Ht=parseInt,Bt="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,zt="object"==typeof self&&self&&self.Object===Object&&self,Wt=Bt||zt||Function("return this")(),Vt=t&&!t.nodeType&&t,Yt=Vt&&e&&!e.nodeType&&e,Ut=Yt&&Yt.exports===Vt,Kt=Ut&&Bt.process,qt=function(){try{var e=Yt&&Yt.require&&Yt.require("util").types;return e||Kt&&Kt.binding&&Kt.binding("util")}catch(t){}}(),Gt=qt&&qt.isArrayBuffer,$t=qt&&qt.isDate,Qt=qt&&qt.isMap,Xt=qt&&qt.isRegExp,Jt=qt&&qt.isSet,en=qt&&qt.isTypedArray;function tn(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function nn(e,t,n,i){for(var r=-1,o=null==e?0:e.length;++r<o;){var a=e[r];t(i,a,n(a),e)}return i}function rn(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}function on(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function an(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(!t(e[n],n,e))return!1;return!0}function sn(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}function un(e,t){return!!(null==e?0:e.length)&&_n(e,t,0)>-1}function ln(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}function cn(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}function dn(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}function hn(e,t,n,i){var r=-1,o=null==e?0:e.length;for(i&&o&&(n=e[++r]);++r<o;)n=t(n,e[r],r,e);return n}function fn(e,t,n,i){var r=null==e?0:e.length;for(i&&r&&(n=e[--r]);r--;)n=t(n,e[r],r,e);return n}function pn(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}var vn=Cn("length");function gn(e,t,n){var i;return n(e,(function(e,n,r){if(t(e,n,r))return i=n,!1})),i}function mn(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}function _n(e,t,n){return t===t?function(e,t,n){var i=n-1,r=e.length;for(;++i<r;)if(e[i]===t)return i;return-1}(e,t,n):mn(e,bn,n)}function yn(e,t,n,i){for(var r=n-1,o=e.length;++r<o;)if(i(e[r],t))return r;return-1}function bn(e){return e!==e}function wn(e,t){var n=null==e?0:e.length;return n?xn(e,t)/n:P}function Cn(e){return function(t){return null==t?r:t[e]}}function kn(e){return function(t){return null==e?r:e[t]}}function Sn(e,t,n,i,r){return r(e,(function(e,r,o){n=i?(i=!1,e):t(n,e,r,o)})),n}function xn(e,t){for(var n,i=-1,o=e.length;++i<o;){var a=t(e[i]);a!==r&&(n=n===r?a:n+a)}return n}function Ln(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}function En(e){return function(t){return e(t)}}function Nn(e,t){return cn(t,(function(t){return e[t]}))}function Dn(e,t){return e.has(t)}function Mn(e,t){for(var n=-1,i=e.length;++n<i&&_n(t,e[n],0)>-1;);return n}function Tn(e,t){for(var n=e.length;n--&&_n(t,e[n],0)>-1;);return n}var On=kn({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),In=kn({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function An(e){return"\\"+Ft[e]}function Pn(e){return Ot.test(e)}function Rn(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function Zn(e,t){return function(n){return e(t(n))}}function Fn(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n];a!==t&&a!==c||(e[n]=c,o[r++]=n)}return o}function jn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function Hn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function Bn(e){return Pn(e)?function(e){var t=Mt.lastIndex=0;for(;Mt.test(e);)++t;return t}(e):vn(e)}function zn(e){return Pn(e)?function(e){return e.match(Mt)||[]}(e):function(e){return e.split("")}(e)}var Wn=kn({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"});var Vn=function e(t){var n=(t=null==t?Wt:Vn.defaults(Wt.Object(),t,Vn.pick(Wt,At))).Array,i=t.Date,Xe=t.Error,Je=t.Function,et=t.Math,tt=t.Object,nt=t.RegExp,it=t.String,rt=t.TypeError,ot=n.prototype,at=Je.prototype,st=tt.prototype,ut=t["__core-js_shared__"],lt=at.toString,ct=st.hasOwnProperty,dt=0,ht=function(){var e=/[^.]+$/.exec(ut&&ut.keys&&ut.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),ft=st.toString,pt=lt.call(tt),vt=Wt._,gt=nt("^"+lt.call(ct).replace(Oe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),mt=Ut?t.Buffer:r,_t=t.Symbol,yt=t.Uint8Array,bt=mt?mt.allocUnsafe:r,wt=Zn(tt.getPrototypeOf,tt),Ct=tt.create,kt=st.propertyIsEnumerable,St=ot.splice,xt=_t?_t.isConcatSpreadable:r,Lt=_t?_t.iterator:r,Et=_t?_t.toStringTag:r,Mt=function(){try{var e=jo(tt,"defineProperty");return e({},"",{}),e}catch(t){}}(),Ot=t.clearTimeout!==Wt.clearTimeout&&t.clearTimeout,Ft=i&&i.now!==Wt.Date.now&&i.now,Bt=t.setTimeout!==Wt.setTimeout&&t.setTimeout,zt=et.ceil,Vt=et.floor,Yt=tt.getOwnPropertySymbols,Kt=mt?mt.isBuffer:r,qt=t.isFinite,vn=ot.join,kn=Zn(tt.keys,tt),Yn=et.max,Un=et.min,Kn=i.now,qn=t.parseInt,Gn=et.random,$n=ot.reverse,Qn=jo(t,"DataView"),Xn=jo(t,"Map"),Jn=jo(t,"Promise"),ei=jo(t,"Set"),ti=jo(t,"WeakMap"),ni=jo(tt,"create"),ii=ti&&new ti,ri={},oi=da(Qn),ai=da(Xn),si=da(Jn),ui=da(ei),li=da(ti),ci=_t?_t.prototype:r,di=ci?ci.valueOf:r,hi=ci?ci.toString:r;function fi(e){if(Ns(e)&&!ms(e)&&!(e instanceof mi)){if(e instanceof gi)return e;if(ct.call(e,"__wrapped__"))return ha(e)}return new gi(e)}var pi=function(){function e(){}return function(t){if(!Es(t))return{};if(Ct)return Ct(t);e.prototype=t;var n=new e;return e.prototype=r,n}}();function vi(){}function gi(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=r}function mi(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=R,this.__views__=[]}function _i(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function yi(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function bi(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function wi(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new bi;++t<n;)this.add(e[t])}function Ci(e){var t=this.__data__=new yi(e);this.size=t.size}function ki(e,t){var n=ms(e),i=!n&&gs(e),r=!n&&!i&&ws(e),o=!n&&!i&&!r&&Rs(e),a=n||i||r||o,s=a?Ln(e.length,it):[],u=s.length;for(var l in e)!t&&!ct.call(e,l)||a&&("length"==l||r&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Uo(l,u))||s.push(l);return s}function Si(e){var t=e.length;return t?e[wr(0,t-1)]:r}function xi(e,t){return ua(no(e),Ai(t,0,e.length))}function Li(e){return ua(no(e))}function Ei(e,t,n){(n!==r&&!fs(e[t],n)||n===r&&!(t in e))&&Oi(e,t,n)}function Ni(e,t,n){var i=e[t];ct.call(e,t)&&fs(i,n)&&(n!==r||t in e)||Oi(e,t,n)}function Di(e,t){for(var n=e.length;n--;)if(fs(e[n][0],t))return n;return-1}function Mi(e,t,n,i){return ji(e,(function(e,r,o){t(i,e,n(e),o)})),i}function Ti(e,t){return e&&io(t,ru(t),e)}function Oi(e,t,n){"__proto__"==t&&Mt?Mt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Ii(e,t){for(var i=-1,o=t.length,a=n(o),s=null==e;++i<o;)a[i]=s?r:Js(e,t[i]);return a}function Ai(e,t,n){return e===e&&(n!==r&&(e=e<=n?e:n),t!==r&&(e=e>=t?e:t)),e}function Pi(e,t,n,i,o,a){var s,u=t&d,l=t&h,c=t&f;if(n&&(s=o?n(e,i,o,a):n(e)),s!==r)return s;if(!Es(e))return e;var p=ms(e);if(p){if(s=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&ct.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!u)return no(e,s)}else{var v=zo(e),g=v==K||v==q;if(ws(e))return $r(e,u);if(v==X||v==H||g&&!o){if(s=l||g?{}:Vo(e),!u)return l?function(e,t){return io(e,Bo(e),t)}(e,function(e,t){return e&&io(t,ou(t),e)}(s,e)):function(e,t){return io(e,Ho(e),t)}(e,Ti(s,e))}else{if(!Zt[v])return o?e:{};s=function(e,t,n){var i=e.constructor;switch(t){case ue:return Qr(e);case W:case V:return new i(+e);case le:return function(e,t){var n=t?Qr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case ce:case de:case he:case fe:case pe:case ve:case ge:case me:case _e:return Xr(e,n);case G:return new i;case $:case ie:return new i(e);case te:return function(e){var t=new e.constructor(e.source,We.exec(e));return t.lastIndex=e.lastIndex,t}(e);case ne:return new i;case re:return r=e,di?tt(di.call(r)):{}}var r}(e,v,u)}}a||(a=new Ci);var m=a.get(e);if(m)return m;if(a.set(e,s),Is(e))return e.forEach((function(i){s.add(Pi(i,t,n,i,e,a))})),s;if(Ds(e))return e.forEach((function(i,r){s.set(r,Pi(i,t,n,r,e,a))})),s;var _=p?r:(c?l?Oo:To:l?ou:ru)(e);return rn(_||e,(function(i,r){_&&(i=e[r=i]),Ni(s,r,Pi(i,t,n,r,e,a))})),s}function Ri(e,t,n){var i=n.length;if(null==e)return!i;for(e=tt(e);i--;){var o=n[i],a=t[o],s=e[o];if(s===r&&!(o in e)||!a(s))return!1}return!0}function Zi(e,t,n){if("function"!=typeof e)throw new rt(s);return ra((function(){e.apply(r,n)}),t)}function Fi(e,t,n,i){var r=-1,a=un,s=!0,u=e.length,l=[],c=t.length;if(!u)return l;n&&(t=cn(t,En(n))),i?(a=ln,s=!1):t.length>=o&&(a=Dn,s=!1,t=new wi(t));e:for(;++r<u;){var d=e[r],h=null==n?d:n(d);if(d=i||0!==d?d:0,s&&h===h){for(var f=c;f--;)if(t[f]===h)continue e;l.push(d)}else a(t,h,i)||l.push(d)}return l}fi.templateSettings={escape:Le,evaluate:Ee,interpolate:Ne,variable:"",imports:{_:fi}},fi.prototype=vi.prototype,fi.prototype.constructor=fi,gi.prototype=pi(vi.prototype),gi.prototype.constructor=gi,mi.prototype=pi(vi.prototype),mi.prototype.constructor=mi,_i.prototype.clear=function(){this.__data__=ni?ni(null):{},this.size=0},_i.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},_i.prototype.get=function(e){var t=this.__data__;if(ni){var n=t[e];return n===u?r:n}return ct.call(t,e)?t[e]:r},_i.prototype.has=function(e){var t=this.__data__;return ni?t[e]!==r:ct.call(t,e)},_i.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ni&&t===r?u:t,this},yi.prototype.clear=function(){this.__data__=[],this.size=0},yi.prototype.delete=function(e){var t=this.__data__,n=Di(t,e);return!(n<0)&&(n==t.length-1?t.pop():St.call(t,n,1),--this.size,!0)},yi.prototype.get=function(e){var t=this.__data__,n=Di(t,e);return n<0?r:t[n][1]},yi.prototype.has=function(e){return Di(this.__data__,e)>-1},yi.prototype.set=function(e,t){var n=this.__data__,i=Di(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},bi.prototype.clear=function(){this.size=0,this.__data__={hash:new _i,map:new(Xn||yi),string:new _i}},bi.prototype.delete=function(e){var t=Zo(this,e).delete(e);return this.size-=t?1:0,t},bi.prototype.get=function(e){return Zo(this,e).get(e)},bi.prototype.has=function(e){return Zo(this,e).has(e)},bi.prototype.set=function(e,t){var n=Zo(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},wi.prototype.add=wi.prototype.push=function(e){return this.__data__.set(e,u),this},wi.prototype.has=function(e){return this.__data__.has(e)},Ci.prototype.clear=function(){this.__data__=new yi,this.size=0},Ci.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Ci.prototype.get=function(e){return this.__data__.get(e)},Ci.prototype.has=function(e){return this.__data__.has(e)},Ci.prototype.set=function(e,t){var n=this.__data__;if(n instanceof yi){var i=n.__data__;if(!Xn||i.length<o-1)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new bi(i)}return n.set(e,t),this.size=n.size,this};var ji=ao(Ki),Hi=ao(qi,!0);function Bi(e,t){var n=!0;return ji(e,(function(e,i,r){return n=!!t(e,i,r)})),n}function zi(e,t,n){for(var i=-1,o=e.length;++i<o;){var a=e[i],s=t(a);if(null!=s&&(u===r?s===s&&!Ps(s):n(s,u)))var u=s,l=a}return l}function Wi(e,t){var n=[];return ji(e,(function(e,i,r){t(e,i,r)&&n.push(e)})),n}function Vi(e,t,n,i,r){var o=-1,a=e.length;for(n||(n=Yo),r||(r=[]);++o<a;){var s=e[o];t>0&&n(s)?t>1?Vi(s,t-1,n,i,r):dn(r,s):i||(r[r.length]=s)}return r}var Yi=so(),Ui=so(!0);function Ki(e,t){return e&&Yi(e,t,ru)}function qi(e,t){return e&&Ui(e,t,ru)}function Gi(e,t){return sn(t,(function(t){return Ss(e[t])}))}function $i(e,t){for(var n=0,i=(t=Ur(t,e)).length;null!=e&&n<i;)e=e[ca(t[n++])];return n&&n==i?e:r}function Qi(e,t,n){var i=t(e);return ms(e)?i:dn(i,n(e))}function Xi(e){return null==e?e===r?oe:Q:Et&&Et in tt(e)?function(e){var t=ct.call(e,Et),n=e[Et];try{e[Et]=r;var i=!0}catch(a){}var o=ft.call(e);i&&(t?e[Et]=n:delete e[Et]);return o}(e):function(e){return ft.call(e)}(e)}function Ji(e,t){return e>t}function er(e,t){return null!=e&&ct.call(e,t)}function tr(e,t){return null!=e&&t in tt(e)}function nr(e,t,i){for(var o=i?ln:un,a=e[0].length,s=e.length,u=s,l=n(s),c=1/0,d=[];u--;){var h=e[u];u&&t&&(h=cn(h,En(t))),c=Un(h.length,c),l[u]=!i&&(t||a>=120&&h.length>=120)?new wi(u&&h):r}h=e[0];var f=-1,p=l[0];e:for(;++f<a&&d.length<c;){var v=h[f],g=t?t(v):v;if(v=i||0!==v?v:0,!(p?Dn(p,g):o(d,g,i))){for(u=s;--u;){var m=l[u];if(!(m?Dn(m,g):o(e[u],g,i)))continue e}p&&p.push(g),d.push(v)}}return d}function ir(e,t,n){var i=null==(e=ta(e,t=Ur(t,e)))?e:e[ca(ka(t))];return null==i?r:tn(i,e,n)}function rr(e){return Ns(e)&&Xi(e)==H}function or(e,t,n,i,o){return e===t||(null==e||null==t||!Ns(e)&&!Ns(t)?e!==e&&t!==t:function(e,t,n,i,o,a){var s=ms(e),u=ms(t),l=s?B:zo(e),c=u?B:zo(t),d=(l=l==H?X:l)==X,h=(c=c==H?X:c)==X,f=l==c;if(f&&ws(e)){if(!ws(t))return!1;s=!0,d=!1}if(f&&!d)return a||(a=new Ci),s||Rs(e)?Do(e,t,n,i,o,a):function(e,t,n,i,r,o,a){switch(n){case le:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case ue:return!(e.byteLength!=t.byteLength||!o(new yt(e),new yt(t)));case W:case V:case $:return fs(+e,+t);case U:return e.name==t.name&&e.message==t.message;case te:case ie:return e==t+"";case G:var s=Rn;case ne:var u=i&p;if(s||(s=jn),e.size!=t.size&&!u)return!1;var l=a.get(e);if(l)return l==t;i|=v,a.set(e,t);var c=Do(s(e),s(t),i,r,o,a);return a.delete(e),c;case re:if(di)return di.call(e)==di.call(t)}return!1}(e,t,l,n,i,o,a);if(!(n&p)){var g=d&&ct.call(e,"__wrapped__"),m=h&&ct.call(t,"__wrapped__");if(g||m){var _=g?e.value():e,y=m?t.value():t;return a||(a=new Ci),o(_,y,n,i,a)}}if(!f)return!1;return a||(a=new Ci),function(e,t,n,i,o,a){var s=n&p,u=To(e),l=u.length,c=To(t),d=c.length;if(l!=d&&!s)return!1;var h=l;for(;h--;){var f=u[h];if(!(s?f in t:ct.call(t,f)))return!1}var v=a.get(e);if(v&&a.get(t))return v==t;var g=!0;a.set(e,t),a.set(t,e);var m=s;for(;++h<l;){var _=e[f=u[h]],y=t[f];if(i)var b=s?i(y,_,f,t,e,a):i(_,y,f,e,t,a);if(!(b===r?_===y||o(_,y,n,i,a):b)){g=!1;break}m||(m="constructor"==f)}if(g&&!m){var w=e.constructor,C=t.constructor;w==C||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof C&&C instanceof C||(g=!1)}return a.delete(e),a.delete(t),g}(e,t,n,i,o,a)}(e,t,n,i,or,o))}function ar(e,t,n,i){var o=n.length,a=o,s=!i;if(null==e)return!a;for(e=tt(e);o--;){var u=n[o];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++o<a;){var l=(u=n[o])[0],c=e[l],d=u[1];if(s&&u[2]){if(c===r&&!(l in e))return!1}else{var h=new Ci;if(i)var f=i(c,d,l,e,t,h);if(!(f===r?or(d,c,p|v,i,h):f))return!1}}return!0}function sr(e){return!(!Es(e)||(t=e,ht&&ht in t))&&(Ss(e)?gt:Ue).test(da(e));var t}function ur(e){return"function"==typeof e?e:null==e?Mu:"object"==typeof e?ms(e)?pr(e[0],e[1]):fr(e):ju(e)}function lr(e){if(!Qo(e))return kn(e);var t=[];for(var n in tt(e))ct.call(e,n)&&"constructor"!=n&&t.push(n);return t}function cr(e){if(!Es(e))return function(e){var t=[];if(null!=e)for(var n in tt(e))t.push(n);return t}(e);var t=Qo(e),n=[];for(var i in e)("constructor"!=i||!t&&ct.call(e,i))&&n.push(i);return n}function dr(e,t){return e<t}function hr(e,t){var i=-1,r=ys(e)?n(e.length):[];return ji(e,(function(e,n,o){r[++i]=t(e,n,o)})),r}function fr(e){var t=Fo(e);return 1==t.length&&t[0][2]?Jo(t[0][0],t[0][1]):function(n){return n===e||ar(n,e,t)}}function pr(e,t){return qo(e)&&Xo(t)?Jo(ca(e),t):function(n){var i=Js(n,e);return i===r&&i===t?eu(n,e):or(t,i,p|v)}}function vr(e,t,n,i,o){e!==t&&Yi(t,(function(a,s){if(Es(a))o||(o=new Ci),function(e,t,n,i,o,a,s){var u=na(e,n),l=na(t,n),c=s.get(l);if(c)return void Ei(e,n,c);var d=a?a(u,l,n+"",e,t,s):r,h=d===r;if(h){var f=ms(l),p=!f&&ws(l),v=!f&&!p&&Rs(l);d=l,f||p||v?ms(u)?d=u:bs(u)?d=no(u):p?(h=!1,d=$r(l,!0)):v?(h=!1,d=Xr(l,!0)):d=[]:Ts(l)||gs(l)?(d=u,gs(u)?d=Vs(u):Es(u)&&!Ss(u)||(d=Vo(l))):h=!1}h&&(s.set(l,d),o(d,l,i,a,s),s.delete(l));Ei(e,n,d)}(e,t,s,n,vr,i,o);else{var u=i?i(na(e,s),a,s+"",e,t,o):r;u===r&&(u=a),Ei(e,s,u)}}),ou)}function gr(e,t){var n=e.length;if(n)return Uo(t+=t<0?n:0,n)?e[t]:r}function mr(e,t,n){var i=-1;t=cn(t.length?t:[Mu],En(Ro()));var r=hr(e,(function(e,n,r){var o=cn(t,(function(t){return t(e)}));return{criteria:o,index:++i,value:e}}));return function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}(r,(function(e,t){return function(e,t,n){var i=-1,r=e.criteria,o=t.criteria,a=r.length,s=n.length;for(;++i<a;){var u=Jr(r[i],o[i]);if(u)return i>=s?u:u*("desc"==n[i]?-1:1)}return e.index-t.index}(e,t,n)}))}function _r(e,t,n){for(var i=-1,r=t.length,o={};++i<r;){var a=t[i],s=$i(e,a);n(s,a)&&Lr(o,Ur(a,e),s)}return o}function yr(e,t,n,i){var r=i?yn:_n,o=-1,a=t.length,s=e;for(e===t&&(t=no(t)),n&&(s=cn(e,En(n)));++o<a;)for(var u=0,l=t[o],c=n?n(l):l;(u=r(s,c,u,i))>-1;)s!==e&&St.call(s,u,1),St.call(e,u,1);return e}function br(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==o){var o=r;Uo(r)?St.call(e,r,1):Fr(e,r)}}return e}function wr(e,t){return e+Vt(Gn()*(t-e+1))}function Cr(e,t){var n="";if(!e||t<1||t>I)return n;do{t%2&&(n+=e),(t=Vt(t/2))&&(e+=e)}while(t);return n}function kr(e,t){return oa(ea(e,t,Mu),e+"")}function Sr(e){return Si(fu(e))}function xr(e,t){var n=fu(e);return ua(n,Ai(t,0,n.length))}function Lr(e,t,n,i){if(!Es(e))return e;for(var o=-1,a=(t=Ur(t,e)).length,s=a-1,u=e;null!=u&&++o<a;){var l=ca(t[o]),c=n;if(o!=s){var d=u[l];(c=i?i(d,l,u):r)===r&&(c=Es(d)?d:Uo(t[o+1])?[]:{})}Ni(u,l,c),u=u[l]}return e}var Er=ii?function(e,t){return ii.set(e,t),e}:Mu,Nr=Mt?function(e,t){return Mt(e,"toString",{configurable:!0,enumerable:!1,value:Eu(t),writable:!0})}:Mu;function Dr(e){return ua(fu(e))}function Mr(e,t,i){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(i=i>o?o:i)<0&&(i+=o),o=t>i?0:i-t>>>0,t>>>=0;for(var a=n(o);++r<o;)a[r]=e[r+t];return a}function Tr(e,t){var n;return ji(e,(function(e,i,r){return!(n=t(e,i,r))})),!!n}function Or(e,t,n){var i=0,r=null==e?i:e.length;if("number"==typeof t&&t===t&&r<=F){for(;i<r;){var o=i+r>>>1,a=e[o];null!==a&&!Ps(a)&&(n?a<=t:a<t)?i=o+1:r=o}return r}return Ir(e,t,Mu,n)}function Ir(e,t,n,i){t=n(t);for(var o=0,a=null==e?0:e.length,s=t!==t,u=null===t,l=Ps(t),c=t===r;o<a;){var d=Vt((o+a)/2),h=n(e[d]),f=h!==r,p=null===h,v=h===h,g=Ps(h);if(s)var m=i||v;else m=c?v&&(i||f):u?v&&f&&(i||!p):l?v&&f&&!p&&(i||!g):!p&&!g&&(i?h<=t:h<t);m?o=d+1:a=d}return Un(a,Z)}function Ar(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n],s=t?t(a):a;if(!n||!fs(s,u)){var u=s;o[r++]=0===a?0:a}}return o}function Pr(e){return"number"==typeof e?e:Ps(e)?P:+e}function Rr(e){if("string"==typeof e)return e;if(ms(e))return cn(e,Rr)+"";if(Ps(e))return hi?hi.call(e):"";var t=e+"";return"0"==t&&1/e==-O?"-0":t}function Zr(e,t,n){var i=-1,r=un,a=e.length,s=!0,u=[],l=u;if(n)s=!1,r=ln;else if(a>=o){var c=t?null:ko(e);if(c)return jn(c);s=!1,r=Dn,l=new wi}else l=t?[]:u;e:for(;++i<a;){var d=e[i],h=t?t(d):d;if(d=n||0!==d?d:0,s&&h===h){for(var f=l.length;f--;)if(l[f]===h)continue e;t&&l.push(h),u.push(d)}else r(l,h,n)||(l!==u&&l.push(h),u.push(d))}return u}function Fr(e,t){return null==(e=ta(e,t=Ur(t,e)))||delete e[ca(ka(t))]}function jr(e,t,n,i){return Lr(e,t,n($i(e,t)),i)}function Hr(e,t,n,i){for(var r=e.length,o=i?r:-1;(i?o--:++o<r)&&t(e[o],o,e););return n?Mr(e,i?0:o,i?o+1:r):Mr(e,i?o+1:0,i?r:o)}function Br(e,t){var n=e;return n instanceof mi&&(n=n.value()),hn(t,(function(e,t){return t.func.apply(t.thisArg,dn([e],t.args))}),n)}function zr(e,t,i){var r=e.length;if(r<2)return r?Zr(e[0]):[];for(var o=-1,a=n(r);++o<r;)for(var s=e[o],u=-1;++u<r;)u!=o&&(a[o]=Fi(a[o]||s,e[u],t,i));return Zr(Vi(a,1),t,i)}function Wr(e,t,n){for(var i=-1,o=e.length,a=t.length,s={};++i<o;){var u=i<a?t[i]:r;n(s,e[i],u)}return s}function Vr(e){return bs(e)?e:[]}function Yr(e){return"function"==typeof e?e:Mu}function Ur(e,t){return ms(e)?e:qo(e,t)?[e]:la(Ys(e))}var Kr=kr;function qr(e,t,n){var i=e.length;return n=n===r?i:n,!t&&n>=i?e:Mr(e,t,n)}var Gr=Ot||function(e){return Wt.clearTimeout(e)};function $r(e,t){if(t)return e.slice();var n=e.length,i=bt?bt(n):new e.constructor(n);return e.copy(i),i}function Qr(e){var t=new e.constructor(e.byteLength);return new yt(t).set(new yt(e)),t}function Xr(e,t){var n=t?Qr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Jr(e,t){if(e!==t){var n=e!==r,i=null===e,o=e===e,a=Ps(e),s=t!==r,u=null===t,l=t===t,c=Ps(t);if(!u&&!c&&!a&&e>t||a&&s&&l&&!u&&!c||i&&s&&l||!n&&l||!o)return 1;if(!i&&!a&&!c&&e<t||c&&n&&o&&!i&&!a||u&&n&&o||!s&&o||!l)return-1}return 0}function eo(e,t,i,r){for(var o=-1,a=e.length,s=i.length,u=-1,l=t.length,c=Yn(a-s,0),d=n(l+c),h=!r;++u<l;)d[u]=t[u];for(;++o<s;)(h||o<a)&&(d[i[o]]=e[o]);for(;c--;)d[u++]=e[o++];return d}function to(e,t,i,r){for(var o=-1,a=e.length,s=-1,u=i.length,l=-1,c=t.length,d=Yn(a-u,0),h=n(d+c),f=!r;++o<d;)h[o]=e[o];for(var p=o;++l<c;)h[p+l]=t[l];for(;++s<u;)(f||o<a)&&(h[p+i[s]]=e[o++]);return h}function no(e,t){var i=-1,r=e.length;for(t||(t=n(r));++i<r;)t[i]=e[i];return t}function io(e,t,n,i){var o=!n;n||(n={});for(var a=-1,s=t.length;++a<s;){var u=t[a],l=i?i(n[u],e[u],u,n,e):r;l===r&&(l=e[u]),o?Oi(n,u,l):Ni(n,u,l)}return n}function ro(e,t){return function(n,i){var r=ms(n)?nn:Mi,o=t?t():{};return r(n,e,Ro(i,2),o)}}function oo(e){return kr((function(t,n){var i=-1,o=n.length,a=o>1?n[o-1]:r,s=o>2?n[2]:r;for(a=e.length>3&&"function"==typeof a?(o--,a):r,s&&Ko(n[0],n[1],s)&&(a=o<3?r:a,o=1),t=tt(t);++i<o;){var u=n[i];u&&e(t,u,i,a)}return t}))}function ao(e,t){return function(n,i){if(null==n)return n;if(!ys(n))return e(n,i);for(var r=n.length,o=t?r:-1,a=tt(n);(t?o--:++o<r)&&!1!==i(a[o],o,a););return n}}function so(e){return function(t,n,i){for(var r=-1,o=tt(t),a=i(t),s=a.length;s--;){var u=a[e?s:++r];if(!1===n(o[u],u,o))break}return t}}function uo(e){return function(t){var n=Pn(t=Ys(t))?zn(t):r,i=n?n[0]:t.charAt(0),o=n?qr(n,1).join(""):t.slice(1);return i[e]()+o}}function lo(e){return function(t){return hn(Su(gu(t).replace(Nt,"")),e,"")}}function co(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=pi(e.prototype),i=e.apply(n,t);return Es(i)?i:n}}function ho(e){return function(t,n,i){var o=tt(t);if(!ys(t)){var a=Ro(n,3);t=ru(t),n=function(e){return a(o[e],e,o)}}var s=e(t,n,i);return s>-1?o[a?t[s]:s]:r}}function fo(e){return Mo((function(t){var n=t.length,i=n,o=gi.prototype.thru;for(e&&t.reverse();i--;){var a=t[i];if("function"!=typeof a)throw new rt(s);if(o&&!u&&"wrapper"==Ao(a))var u=new gi([],!0)}for(i=u?i:n;++i<n;){var l=Ao(a=t[i]),c="wrapper"==l?Io(a):r;u=c&&Go(c[0])&&c[1]==(k|y|w|S)&&!c[4].length&&1==c[9]?u[Ao(c[0])].apply(u,c[3]):1==a.length&&Go(a)?u[l]():u.thru(a)}return function(){var e=arguments,i=e[0];if(u&&1==e.length&&ms(i))return u.plant(i).value();for(var r=0,o=n?t[r].apply(this,e):i;++r<n;)o=t[r].call(this,o);return o}}))}function po(e,t,i,o,a,s,u,l,c,d){var h=t&k,f=t&g,p=t&m,v=t&(y|b),_=t&x,w=p?r:co(e);return function g(){for(var m=arguments.length,y=n(m),b=m;b--;)y[b]=arguments[b];if(v)var C=Po(g),k=function(e,t){for(var n=e.length,i=0;n--;)e[n]===t&&++i;return i}(y,C);if(o&&(y=eo(y,o,a,v)),s&&(y=to(y,s,u,v)),m-=k,v&&m<d){var S=Fn(y,C);return wo(e,t,po,g.placeholder,i,y,S,l,c,d-m)}var x=f?i:this,L=p?x[e]:e;return m=y.length,l?y=function(e,t){var n=e.length,i=Un(t.length,n),o=no(e);for(;i--;){var a=t[i];e[i]=Uo(a,n)?o[a]:r}return e}(y,l):_&&m>1&&y.reverse(),h&&c<m&&(y.length=c),this&&this!==Wt&&this instanceof g&&(L=w||co(L)),L.apply(x,y)}}function vo(e,t){return function(n,i){return function(e,t,n,i){return Ki(e,(function(e,r,o){t(i,n(e),r,o)})),i}(n,e,t(i),{})}}function go(e,t){return function(n,i){var o;if(n===r&&i===r)return t;if(n!==r&&(o=n),i!==r){if(o===r)return i;"string"==typeof n||"string"==typeof i?(n=Rr(n),i=Rr(i)):(n=Pr(n),i=Pr(i)),o=e(n,i)}return o}}function mo(e){return Mo((function(t){return t=cn(t,En(Ro())),kr((function(n){var i=this;return e(t,(function(e){return tn(e,i,n)}))}))}))}function _o(e,t){var n=(t=t===r?" ":Rr(t)).length;if(n<2)return n?Cr(t,e):t;var i=Cr(t,zt(e/Bn(t)));return Pn(t)?qr(zn(i),0,e).join(""):i.slice(0,e)}function yo(e){return function(t,i,o){return o&&"number"!=typeof o&&Ko(t,i,o)&&(i=o=r),t=Hs(t),i===r?(i=t,t=0):i=Hs(i),function(e,t,i,r){for(var o=-1,a=Yn(zt((t-e)/(i||1)),0),s=n(a);a--;)s[r?a:++o]=e,e+=i;return s}(t,i,o=o===r?t<i?1:-1:Hs(o),e)}}function bo(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=Ws(t),n=Ws(n)),e(t,n)}}function wo(e,t,n,i,o,a,s,u,l,c){var d=t&y;t|=d?w:C,(t&=~(d?C:w))&_||(t&=~(g|m));var h=[e,t,o,d?a:r,d?s:r,d?r:a,d?r:s,u,l,c],f=n.apply(r,h);return Go(e)&&ia(f,h),f.placeholder=i,aa(f,e,t)}function Co(e){var t=et[e];return function(e,n){if(e=Ws(e),n=null==n?0:Un(Bs(n),292)){var i=(Ys(e)+"e").split("e");return+((i=(Ys(t(i[0]+"e"+(+i[1]+n)))+"e").split("e"))[0]+"e"+(+i[1]-n))}return t(e)}}var ko=ei&&1/jn(new ei([,-0]))[1]==O?function(e){return new ei(e)}:Pu;function So(e){return function(t){var n=zo(t);return n==G?Rn(t):n==ne?Hn(t):function(e,t){return cn(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function xo(e,t,i,o,a,u,l,d){var h=t&m;if(!h&&"function"!=typeof e)throw new rt(s);var f=o?o.length:0;if(f||(t&=~(w|C),o=a=r),l=l===r?l:Yn(Bs(l),0),d=d===r?d:Bs(d),f-=a?a.length:0,t&C){var p=o,v=a;o=a=r}var x=h?r:Io(e),L=[e,t,i,o,a,p,v,u,l,d];if(x&&function(e,t){var n=e[1],i=t[1],r=n|i,o=r<(g|m|k),a=i==k&&n==y||i==k&&n==S&&e[7].length<=t[8]||i==(k|S)&&t[7].length<=t[8]&&n==y;if(!o&&!a)return e;i&g&&(e[2]=t[2],r|=n&g?0:_);var s=t[3];if(s){var u=e[3];e[3]=u?eo(u,s,t[4]):s,e[4]=u?Fn(e[3],c):t[4]}(s=t[5])&&(u=e[5],e[5]=u?to(u,s,t[6]):s,e[6]=u?Fn(e[5],c):t[6]);(s=t[7])&&(e[7]=s);i&k&&(e[8]=null==e[8]?t[8]:Un(e[8],t[8]));null==e[9]&&(e[9]=t[9]);e[0]=t[0],e[1]=r}(L,x),e=L[0],t=L[1],i=L[2],o=L[3],a=L[4],!(d=L[9]=L[9]===r?h?0:e.length:Yn(L[9]-f,0))&&t&(y|b)&&(t&=~(y|b)),t&&t!=g)E=t==y||t==b?function(e,t,i){var o=co(e);return function a(){for(var s=arguments.length,u=n(s),l=s,c=Po(a);l--;)u[l]=arguments[l];var d=s<3&&u[0]!==c&&u[s-1]!==c?[]:Fn(u,c);return(s-=d.length)<i?wo(e,t,po,a.placeholder,r,u,d,r,r,i-s):tn(this&&this!==Wt&&this instanceof a?o:e,this,u)}}(e,t,d):t!=w&&t!=(g|w)||a.length?po.apply(r,L):function(e,t,i,r){var o=t&g,a=co(e);return function t(){for(var s=-1,u=arguments.length,l=-1,c=r.length,d=n(c+u),h=this&&this!==Wt&&this instanceof t?a:e;++l<c;)d[l]=r[l];for(;u--;)d[l++]=arguments[++s];return tn(h,o?i:this,d)}}(e,t,i,o);else var E=function(e,t,n){var i=t&g,r=co(e);return function t(){return(this&&this!==Wt&&this instanceof t?r:e).apply(i?n:this,arguments)}}(e,t,i);return aa((x?Er:ia)(E,L),e,t)}function Lo(e,t,n,i){return e===r||fs(e,st[n])&&!ct.call(i,n)?t:e}function Eo(e,t,n,i,o,a){return Es(e)&&Es(t)&&(a.set(t,e),vr(e,t,r,Eo,a),a.delete(t)),e}function No(e){return Ts(e)?r:e}function Do(e,t,n,i,o,a){var s=n&p,u=e.length,l=t.length;if(u!=l&&!(s&&l>u))return!1;var c=a.get(e);if(c&&a.get(t))return c==t;var d=-1,h=!0,f=n&v?new wi:r;for(a.set(e,t),a.set(t,e);++d<u;){var g=e[d],m=t[d];if(i)var _=s?i(m,g,d,t,e,a):i(g,m,d,e,t,a);if(_!==r){if(_)continue;h=!1;break}if(f){if(!pn(t,(function(e,t){if(!Dn(f,t)&&(g===e||o(g,e,n,i,a)))return f.push(t)}))){h=!1;break}}else if(g!==m&&!o(g,m,n,i,a)){h=!1;break}}return a.delete(e),a.delete(t),h}function Mo(e){return oa(ea(e,r,_a),e+"")}function To(e){return Qi(e,ru,Ho)}function Oo(e){return Qi(e,ou,Bo)}var Io=ii?function(e){return ii.get(e)}:Pu;function Ao(e){for(var t=e.name+"",n=ri[t],i=ct.call(ri,t)?n.length:0;i--;){var r=n[i],o=r.func;if(null==o||o==e)return r.name}return t}function Po(e){return(ct.call(fi,"placeholder")?fi:e).placeholder}function Ro(){var e=fi.iteratee||Tu;return e=e===Tu?ur:e,arguments.length?e(arguments[0],arguments[1]):e}function Zo(e,t){var n=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?n["string"==typeof t?"string":"hash"]:n.map}function Fo(e){for(var t=ru(e),n=t.length;n--;){var i=t[n],r=e[i];t[n]=[i,r,Xo(r)]}return t}function jo(e,t){var n=function(e,t){return null==e?r:e[t]}(e,t);return sr(n)?n:r}var Ho=Yt?function(e){return null==e?[]:(e=tt(e),sn(Yt(e),(function(t){return kt.call(e,t)})))}:zu,Bo=Yt?function(e){for(var t=[];e;)dn(t,Ho(e)),e=wt(e);return t}:zu,zo=Xi;function Wo(e,t,n){for(var i=-1,r=(t=Ur(t,e)).length,o=!1;++i<r;){var a=ca(t[i]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++i!=r?o:!!(r=null==e?0:e.length)&&Ls(r)&&Uo(a,r)&&(ms(e)||gs(e))}function Vo(e){return"function"!=typeof e.constructor||Qo(e)?{}:pi(wt(e))}function Yo(e){return ms(e)||gs(e)||!!(xt&&e&&e[xt])}function Uo(e,t){var n=typeof e;return!!(t=null==t?I:t)&&("number"==n||"symbol"!=n&&qe.test(e))&&e>-1&&e%1==0&&e<t}function Ko(e,t,n){if(!Es(n))return!1;var i=typeof t;return!!("number"==i?ys(n)&&Uo(t,n.length):"string"==i&&t in n)&&fs(n[t],e)}function qo(e,t){if(ms(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ps(e))||(Me.test(e)||!De.test(e)||null!=t&&e in tt(t))}function Go(e){var t=Ao(e),n=fi[t];if("function"!=typeof n||!(t in mi.prototype))return!1;if(e===n)return!0;var i=Io(n);return!!i&&e===i[0]}(Qn&&zo(new Qn(new ArrayBuffer(1)))!=le||Xn&&zo(new Xn)!=G||Jn&&zo(Jn.resolve())!=J||ei&&zo(new ei)!=ne||ti&&zo(new ti)!=ae)&&(zo=function(e){var t=Xi(e),n=t==X?e.constructor:r,i=n?da(n):"";if(i)switch(i){case oi:return le;case ai:return G;case si:return J;case ui:return ne;case li:return ae}return t});var $o=ut?Ss:Wu;function Qo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||st)}function Xo(e){return e===e&&!Es(e)}function Jo(e,t){return function(n){return null!=n&&(n[e]===t&&(t!==r||e in tt(n)))}}function ea(e,t,i){return t=Yn(t===r?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=Yn(r.length-t,0),s=n(a);++o<a;)s[o]=r[t+o];o=-1;for(var u=n(t+1);++o<t;)u[o]=r[o];return u[t]=i(s),tn(e,this,u)}}function ta(e,t){return t.length<2?e:$i(e,Mr(t,0,-1))}function na(e,t){if("__proto__"!=t)return e[t]}var ia=sa(Er),ra=Bt||function(e,t){return Wt.setTimeout(e,t)},oa=sa(Nr);function aa(e,t,n){var i=t+"";return oa(e,function(e,t){var n=t.length;if(!n)return e;var i=n-1;return t[i]=(n>1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(Ze,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return rn(j,(function(n){var i="_."+n[0];t&n[1]&&!un(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(Fe);return t?t[1].split(je):[]}(i),n)))}function sa(e){var t=0,n=0;return function(){var i=Kn(),o=D-(i-n);if(n=i,o>0){if(++t>=N)return arguments[0]}else t=0;return e.apply(r,arguments)}}function ua(e,t){var n=-1,i=e.length,o=i-1;for(t=t===r?i:t;++n<t;){var a=wr(n,o),s=e[a];e[a]=e[n],e[n]=s}return e.length=t,e}var la=function(e){var t=ss(e,(function(e){return n.size===l&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Te,(function(e,n,i,r){t.push(i?r.replace(Be,"$1"):n||e)})),t}));function ca(e){if("string"==typeof e||Ps(e))return e;var t=e+"";return"0"==t&&1/e==-O?"-0":t}function da(e){if(null!=e){try{return lt.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function ha(e){if(e instanceof mi)return e.clone();var t=new gi(e.__wrapped__,e.__chain__);return t.__actions__=no(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var fa=kr((function(e,t){return bs(e)?Fi(e,Vi(t,1,bs,!0)):[]})),pa=kr((function(e,t){var n=ka(t);return bs(n)&&(n=r),bs(e)?Fi(e,Vi(t,1,bs,!0),Ro(n,2)):[]})),va=kr((function(e,t){var n=ka(t);return bs(n)&&(n=r),bs(e)?Fi(e,Vi(t,1,bs,!0),r,n):[]}));function ga(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:Bs(n);return r<0&&(r=Yn(i+r,0)),mn(e,Ro(t,3),r)}function ma(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var o=i-1;return n!==r&&(o=Bs(n),o=n<0?Yn(i+o,0):Un(o,i-1)),mn(e,Ro(t,3),o,!0)}function _a(e){return(null==e?0:e.length)?Vi(e,1):[]}function ya(e){return e&&e.length?e[0]:r}var ba=kr((function(e){var t=cn(e,Vr);return t.length&&t[0]===e[0]?nr(t):[]})),wa=kr((function(e){var t=ka(e),n=cn(e,Vr);return t===ka(n)?t=r:n.pop(),n.length&&n[0]===e[0]?nr(n,Ro(t,2)):[]})),Ca=kr((function(e){var t=ka(e),n=cn(e,Vr);return(t="function"==typeof t?t:r)&&n.pop(),n.length&&n[0]===e[0]?nr(n,r,t):[]}));function ka(e){var t=null==e?0:e.length;return t?e[t-1]:r}var Sa=kr(xa);function xa(e,t){return e&&e.length&&t&&t.length?yr(e,t):e}var La=Mo((function(e,t){var n=null==e?0:e.length,i=Ii(e,t);return br(e,cn(t,(function(e){return Uo(e,n)?+e:e})).sort(Jr)),i}));function Ea(e){return null==e?e:$n.call(e)}var Na=kr((function(e){return Zr(Vi(e,1,bs,!0))})),Da=kr((function(e){var t=ka(e);return bs(t)&&(t=r),Zr(Vi(e,1,bs,!0),Ro(t,2))})),Ma=kr((function(e){var t=ka(e);return t="function"==typeof t?t:r,Zr(Vi(e,1,bs,!0),r,t)}));function Ta(e){if(!e||!e.length)return[];var t=0;return e=sn(e,(function(e){if(bs(e))return t=Yn(e.length,t),!0})),Ln(t,(function(t){return cn(e,Cn(t))}))}function Oa(e,t){if(!e||!e.length)return[];var n=Ta(e);return null==t?n:cn(n,(function(e){return tn(t,r,e)}))}var Ia=kr((function(e,t){return bs(e)?Fi(e,t):[]})),Aa=kr((function(e){return zr(sn(e,bs))})),Pa=kr((function(e){var t=ka(e);return bs(t)&&(t=r),zr(sn(e,bs),Ro(t,2))})),Ra=kr((function(e){var t=ka(e);return t="function"==typeof t?t:r,zr(sn(e,bs),r,t)})),Za=kr(Ta);var Fa=kr((function(e){var t=e.length,n=t>1?e[t-1]:r;return n="function"==typeof n?(e.pop(),n):r,Oa(e,n)}));function ja(e){var t=fi(e);return t.__chain__=!0,t}function Ha(e,t){return t(e)}var Ba=Mo((function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,o=function(t){return Ii(t,e)};return!(t>1||this.__actions__.length)&&i instanceof mi&&Uo(n)?((i=i.slice(n,+n+(t?1:0))).__actions__.push({func:Ha,args:[o],thisArg:r}),new gi(i,this.__chain__).thru((function(e){return t&&!e.length&&e.push(r),e}))):this.thru(o)}));var za=ro((function(e,t,n){ct.call(e,n)?++e[n]:Oi(e,n,1)}));var Wa=ho(ga),Va=ho(ma);function Ya(e,t){return(ms(e)?rn:ji)(e,Ro(t,3))}function Ua(e,t){return(ms(e)?on:Hi)(e,Ro(t,3))}var Ka=ro((function(e,t,n){ct.call(e,n)?e[n].push(t):Oi(e,n,[t])}));var qa=kr((function(e,t,i){var r=-1,o="function"==typeof t,a=ys(e)?n(e.length):[];return ji(e,(function(e){a[++r]=o?tn(t,e,i):ir(e,t,i)})),a})),Ga=ro((function(e,t,n){Oi(e,n,t)}));function $a(e,t){return(ms(e)?cn:hr)(e,Ro(t,3))}var Qa=ro((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var Xa=kr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&Ko(e,t[0],t[1])?t=[]:n>2&&Ko(t[0],t[1],t[2])&&(t=[t[0]]),mr(e,Vi(t,1),[])})),Ja=Ft||function(){return Wt.Date.now()};function es(e,t,n){return t=n?r:t,t=e&&null==t?e.length:t,xo(e,k,r,r,r,r,t)}function ts(e,t){var n;if("function"!=typeof t)throw new rt(s);return e=Bs(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=r),n}}var ns=kr((function(e,t,n){var i=g;if(n.length){var r=Fn(n,Po(ns));i|=w}return xo(e,i,t,n,r)})),is=kr((function(e,t,n){var i=g|m;if(n.length){var r=Fn(n,Po(is));i|=w}return xo(t,i,e,n,r)}));function rs(e,t,n){var i,o,a,u,l,c,d=0,h=!1,f=!1,p=!0;if("function"!=typeof e)throw new rt(s);function v(t){var n=i,a=o;return i=o=r,d=t,u=e.apply(a,n)}function g(e){var n=e-c;return c===r||n>=t||n<0||f&&e-d>=a}function m(){var e=Ja();if(g(e))return _(e);l=ra(m,function(e){var n=t-(e-c);return f?Un(n,a-(e-d)):n}(e))}function _(e){return l=r,p&&i?v(e):(i=o=r,u)}function y(){var e=Ja(),n=g(e);if(i=arguments,o=this,c=e,n){if(l===r)return function(e){return d=e,l=ra(m,t),h?v(e):u}(c);if(f)return l=ra(m,t),v(c)}return l===r&&(l=ra(m,t)),u}return t=Ws(t)||0,Es(n)&&(h=!!n.leading,a=(f="maxWait"in n)?Yn(Ws(n.maxWait)||0,t):a,p="trailing"in n?!!n.trailing:p),y.cancel=function(){l!==r&&Gr(l),d=0,i=c=o=l=r},y.flush=function(){return l===r?u:_(Ja())},y}var os=kr((function(e,t){return Zi(e,1,t)})),as=kr((function(e,t,n){return Zi(e,Ws(t)||0,n)}));function ss(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new rt(s);var n=function n(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(ss.Cache||bi),n}function us(e){if("function"!=typeof e)throw new rt(s);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ss.Cache=bi;var ls=Kr((function(e,t){var n=(t=1==t.length&&ms(t[0])?cn(t[0],En(Ro())):cn(Vi(t,1),En(Ro()))).length;return kr((function(i){for(var r=-1,o=Un(i.length,n);++r<o;)i[r]=t[r].call(this,i[r]);return tn(e,this,i)}))})),cs=kr((function(e,t){var n=Fn(t,Po(cs));return xo(e,w,r,t,n)})),ds=kr((function(e,t){var n=Fn(t,Po(ds));return xo(e,C,r,t,n)})),hs=Mo((function(e,t){return xo(e,S,r,r,r,t)}));function fs(e,t){return e===t||e!==e&&t!==t}var ps=bo(Ji),vs=bo((function(e,t){return e>=t})),gs=rr(function(){return arguments}())?rr:function(e){return Ns(e)&&ct.call(e,"callee")&&!kt.call(e,"callee")},ms=n.isArray,_s=Gt?En(Gt):function(e){return Ns(e)&&Xi(e)==ue};function ys(e){return null!=e&&Ls(e.length)&&!Ss(e)}function bs(e){return Ns(e)&&ys(e)}var ws=Kt||Wu,Cs=$t?En($t):function(e){return Ns(e)&&Xi(e)==V};function ks(e){if(!Ns(e))return!1;var t=Xi(e);return t==U||t==Y||"string"==typeof e.message&&"string"==typeof e.name&&!Ts(e)}function Ss(e){if(!Es(e))return!1;var t=Xi(e);return t==K||t==q||t==z||t==ee}function xs(e){return"number"==typeof e&&e==Bs(e)}function Ls(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=I}function Es(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ns(e){return null!=e&&"object"==typeof e}var Ds=Qt?En(Qt):function(e){return Ns(e)&&zo(e)==G};function Ms(e){return"number"==typeof e||Ns(e)&&Xi(e)==$}function Ts(e){if(!Ns(e)||Xi(e)!=X)return!1;var t=wt(e);if(null===t)return!0;var n=ct.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&lt.call(n)==pt}var Os=Xt?En(Xt):function(e){return Ns(e)&&Xi(e)==te};var Is=Jt?En(Jt):function(e){return Ns(e)&&zo(e)==ne};function As(e){return"string"==typeof e||!ms(e)&&Ns(e)&&Xi(e)==ie}function Ps(e){return"symbol"==typeof e||Ns(e)&&Xi(e)==re}var Rs=en?En(en):function(e){return Ns(e)&&Ls(e.length)&&!!Rt[Xi(e)]};var Zs=bo(dr),Fs=bo((function(e,t){return e<=t}));function js(e){if(!e)return[];if(ys(e))return As(e)?zn(e):no(e);if(Lt&&e[Lt])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Lt]());var t=zo(e);return(t==G?Rn:t==ne?jn:fu)(e)}function Hs(e){return e?(e=Ws(e))===O||e===-O?(e<0?-1:1)*A:e===e?e:0:0===e?e:0}function Bs(e){var t=Hs(e),n=t%1;return t===t?n?t-n:t:0}function zs(e){return e?Ai(Bs(e),0,R):0}function Ws(e){if("number"==typeof e)return e;if(Ps(e))return P;if(Es(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Es(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Ae,"");var n=Ye.test(e);return n||Ke.test(e)?Ht(e.slice(2),n?2:8):Ve.test(e)?P:+e}function Vs(e){return io(e,ou(e))}function Ys(e){return null==e?"":Rr(e)}var Us=oo((function(e,t){if(Qo(t)||ys(t))io(t,ru(t),e);else for(var n in t)ct.call(t,n)&&Ni(e,n,t[n])})),Ks=oo((function(e,t){io(t,ou(t),e)})),qs=oo((function(e,t,n,i){io(t,ou(t),e,i)})),Gs=oo((function(e,t,n,i){io(t,ru(t),e,i)})),$s=Mo(Ii);var Qs=kr((function(e,t){e=tt(e);var n=-1,i=t.length,o=i>2?t[2]:r;for(o&&Ko(t[0],t[1],o)&&(i=1);++n<i;)for(var a=t[n],s=ou(a),u=-1,l=s.length;++u<l;){var c=s[u],d=e[c];(d===r||fs(d,st[c])&&!ct.call(e,c))&&(e[c]=a[c])}return e})),Xs=kr((function(e){return e.push(r,Eo),tn(su,r,e)}));function Js(e,t,n){var i=null==e?r:$i(e,t);return i===r?n:i}function eu(e,t){return null!=e&&Wo(e,t,tr)}var tu=vo((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=ft.call(t)),e[t]=n}),Eu(Mu)),nu=vo((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=ft.call(t)),ct.call(e,t)?e[t].push(n):e[t]=[n]}),Ro),iu=kr(ir);function ru(e){return ys(e)?ki(e):lr(e)}function ou(e){return ys(e)?ki(e,!0):cr(e)}var au=oo((function(e,t,n){vr(e,t,n)})),su=oo((function(e,t,n,i){vr(e,t,n,i)})),uu=Mo((function(e,t){var n={};if(null==e)return n;var i=!1;t=cn(t,(function(t){return t=Ur(t,e),i||(i=t.length>1),t})),io(e,Oo(e),n),i&&(n=Pi(n,d|h|f,No));for(var r=t.length;r--;)Fr(n,t[r]);return n}));var lu=Mo((function(e,t){return null==e?{}:function(e,t){return _r(e,t,(function(t,n){return eu(e,n)}))}(e,t)}));function cu(e,t){if(null==e)return{};var n=cn(Oo(e),(function(e){return[e]}));return t=Ro(t),_r(e,n,(function(e,n){return t(e,n[0])}))}var du=So(ru),hu=So(ou);function fu(e){return null==e?[]:Nn(e,ru(e))}var pu=lo((function(e,t,n){return t=t.toLowerCase(),e+(n?vu(t):t)}));function vu(e){return ku(Ys(e).toLowerCase())}function gu(e){return(e=Ys(e))&&e.replace(Ge,On).replace(Dt,"")}var mu=lo((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),_u=lo((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),yu=uo("toLowerCase");var bu=lo((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var wu=lo((function(e,t,n){return e+(n?" ":"")+ku(t)}));var Cu=lo((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),ku=uo("toUpperCase");function Su(e,t,n){return e=Ys(e),(t=n?r:t)===r?function(e){return It.test(e)}(e)?function(e){return e.match(Tt)||[]}(e):function(e){return e.match(He)||[]}(e):e.match(t)||[]}var xu=kr((function(e,t){try{return tn(e,r,t)}catch(n){return ks(n)?n:new Xe(n)}})),Lu=Mo((function(e,t){return rn(t,(function(t){t=ca(t),Oi(e,t,ns(e[t],e))})),e}));function Eu(e){return function(){return e}}var Nu=fo(),Du=fo(!0);function Mu(e){return e}function Tu(e){return ur("function"==typeof e?e:Pi(e,d))}var Ou=kr((function(e,t){return function(n){return ir(n,e,t)}})),Iu=kr((function(e,t){return function(n){return ir(e,n,t)}}));function Au(e,t,n){var i=ru(t),r=Gi(t,i);null!=n||Es(t)&&(r.length||!i.length)||(n=t,t=e,e=this,r=Gi(t,ru(t)));var o=!(Es(n)&&"chain"in n)||!!n.chain,a=Ss(e);return rn(r,(function(n){var i=t[n];e[n]=i,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=no(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,dn([this.value()],arguments))})})),e}function Pu(){}var Ru=mo(cn),Zu=mo(an),Fu=mo(pn);function ju(e){return qo(e)?Cn(ca(e)):function(e){return function(t){return $i(t,e)}}(e)}var Hu=yo(),Bu=yo(!0);function zu(){return[]}function Wu(){return!1}var Vu=go((function(e,t){return e+t}),0),Yu=Co("ceil"),Uu=go((function(e,t){return e/t}),1),Ku=Co("floor");var qu=go((function(e,t){return e*t}),1),Gu=Co("round"),$u=go((function(e,t){return e-t}),0);return fi.after=function(e,t){if("function"!=typeof t)throw new rt(s);return e=Bs(e),function(){if(--e<1)return t.apply(this,arguments)}},fi.ary=es,fi.assign=Us,fi.assignIn=Ks,fi.assignInWith=qs,fi.assignWith=Gs,fi.at=$s,fi.before=ts,fi.bind=ns,fi.bindAll=Lu,fi.bindKey=is,fi.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return ms(e)?e:[e]},fi.chain=ja,fi.chunk=function(e,t,i){t=(i?Ko(e,t,i):t===r)?1:Yn(Bs(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var a=0,s=0,u=n(zt(o/t));a<o;)u[s++]=Mr(e,a,a+=t);return u},fi.compact=function(e){for(var t=-1,n=null==e?0:e.length,i=0,r=[];++t<n;){var o=e[t];o&&(r[i++]=o)}return r},fi.concat=function(){var e=arguments.length;if(!e)return[];for(var t=n(e-1),i=arguments[0],r=e;r--;)t[r-1]=arguments[r];return dn(ms(i)?no(i):[i],Vi(t,1))},fi.cond=function(e){var t=null==e?0:e.length,n=Ro();return e=t?cn(e,(function(e){if("function"!=typeof e[1])throw new rt(s);return[n(e[0]),e[1]]})):[],kr((function(n){for(var i=-1;++i<t;){var r=e[i];if(tn(r[0],this,n))return tn(r[1],this,n)}}))},fi.conforms=function(e){return function(e){var t=ru(e);return function(n){return Ri(n,e,t)}}(Pi(e,d))},fi.constant=Eu,fi.countBy=za,fi.create=function(e,t){var n=pi(e);return null==t?n:Ti(n,t)},fi.curry=function e(t,n,i){var o=xo(t,y,r,r,r,r,r,n=i?r:n);return o.placeholder=e.placeholder,o},fi.curryRight=function e(t,n,i){var o=xo(t,b,r,r,r,r,r,n=i?r:n);return o.placeholder=e.placeholder,o},fi.debounce=rs,fi.defaults=Qs,fi.defaultsDeep=Xs,fi.defer=os,fi.delay=as,fi.difference=fa,fi.differenceBy=pa,fi.differenceWith=va,fi.drop=function(e,t,n){var i=null==e?0:e.length;return i?Mr(e,(t=n||t===r?1:Bs(t))<0?0:t,i):[]},fi.dropRight=function(e,t,n){var i=null==e?0:e.length;return i?Mr(e,0,(t=i-(t=n||t===r?1:Bs(t)))<0?0:t):[]},fi.dropRightWhile=function(e,t){return e&&e.length?Hr(e,Ro(t,3),!0,!0):[]},fi.dropWhile=function(e,t){return e&&e.length?Hr(e,Ro(t,3),!0):[]},fi.fill=function(e,t,n,i){var o=null==e?0:e.length;return o?(n&&"number"!=typeof n&&Ko(e,t,n)&&(n=0,i=o),function(e,t,n,i){var o=e.length;for((n=Bs(n))<0&&(n=-n>o?0:o+n),(i=i===r||i>o?o:Bs(i))<0&&(i+=o),i=n>i?0:zs(i);n<i;)e[n++]=t;return e}(e,t,n,i)):[]},fi.filter=function(e,t){return(ms(e)?sn:Wi)(e,Ro(t,3))},fi.flatMap=function(e,t){return Vi($a(e,t),1)},fi.flatMapDeep=function(e,t){return Vi($a(e,t),O)},fi.flatMapDepth=function(e,t,n){return n=n===r?1:Bs(n),Vi($a(e,t),n)},fi.flatten=_a,fi.flattenDeep=function(e){return(null==e?0:e.length)?Vi(e,O):[]},fi.flattenDepth=function(e,t){return(null==e?0:e.length)?Vi(e,t=t===r?1:Bs(t)):[]},fi.flip=function(e){return xo(e,x)},fi.flow=Nu,fi.flowRight=Du,fi.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,i={};++t<n;){var r=e[t];i[r[0]]=r[1]}return i},fi.functions=function(e){return null==e?[]:Gi(e,ru(e))},fi.functionsIn=function(e){return null==e?[]:Gi(e,ou(e))},fi.groupBy=Ka,fi.initial=function(e){return(null==e?0:e.length)?Mr(e,0,-1):[]},fi.intersection=ba,fi.intersectionBy=wa,fi.intersectionWith=Ca,fi.invert=tu,fi.invertBy=nu,fi.invokeMap=qa,fi.iteratee=Tu,fi.keyBy=Ga,fi.keys=ru,fi.keysIn=ou,fi.map=$a,fi.mapKeys=function(e,t){var n={};return t=Ro(t,3),Ki(e,(function(e,i,r){Oi(n,t(e,i,r),e)})),n},fi.mapValues=function(e,t){var n={};return t=Ro(t,3),Ki(e,(function(e,i,r){Oi(n,i,t(e,i,r))})),n},fi.matches=function(e){return fr(Pi(e,d))},fi.matchesProperty=function(e,t){return pr(e,Pi(t,d))},fi.memoize=ss,fi.merge=au,fi.mergeWith=su,fi.method=Ou,fi.methodOf=Iu,fi.mixin=Au,fi.negate=us,fi.nthArg=function(e){return e=Bs(e),kr((function(t){return gr(t,e)}))},fi.omit=uu,fi.omitBy=function(e,t){return cu(e,us(Ro(t)))},fi.once=function(e){return ts(2,e)},fi.orderBy=function(e,t,n,i){return null==e?[]:(ms(t)||(t=null==t?[]:[t]),ms(n=i?r:n)||(n=null==n?[]:[n]),mr(e,t,n))},fi.over=Ru,fi.overArgs=ls,fi.overEvery=Zu,fi.overSome=Fu,fi.partial=cs,fi.partialRight=ds,fi.partition=Qa,fi.pick=lu,fi.pickBy=cu,fi.property=ju,fi.propertyOf=function(e){return function(t){return null==e?r:$i(e,t)}},fi.pull=Sa,fi.pullAll=xa,fi.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?yr(e,t,Ro(n,2)):e},fi.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?yr(e,t,r,n):e},fi.pullAt=La,fi.range=Hu,fi.rangeRight=Bu,fi.rearg=hs,fi.reject=function(e,t){return(ms(e)?sn:Wi)(e,us(Ro(t,3)))},fi.remove=function(e,t){var n=[];if(!e||!e.length)return n;var i=-1,r=[],o=e.length;for(t=Ro(t,3);++i<o;){var a=e[i];t(a,i,e)&&(n.push(a),r.push(i))}return br(e,r),n},fi.rest=function(e,t){if("function"!=typeof e)throw new rt(s);return kr(e,t=t===r?t:Bs(t))},fi.reverse=Ea,fi.sampleSize=function(e,t,n){return t=(n?Ko(e,t,n):t===r)?1:Bs(t),(ms(e)?xi:xr)(e,t)},fi.set=function(e,t,n){return null==e?e:Lr(e,t,n)},fi.setWith=function(e,t,n,i){return i="function"==typeof i?i:r,null==e?e:Lr(e,t,n,i)},fi.shuffle=function(e){return(ms(e)?Li:Dr)(e)},fi.slice=function(e,t,n){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&Ko(e,t,n)?(t=0,n=i):(t=null==t?0:Bs(t),n=n===r?i:Bs(n)),Mr(e,t,n)):[]},fi.sortBy=Xa,fi.sortedUniq=function(e){return e&&e.length?Ar(e):[]},fi.sortedUniqBy=function(e,t){return e&&e.length?Ar(e,Ro(t,2)):[]},fi.split=function(e,t,n){return n&&"number"!=typeof n&&Ko(e,t,n)&&(t=n=r),(n=n===r?R:n>>>0)?(e=Ys(e))&&("string"==typeof t||null!=t&&!Os(t))&&!(t=Rr(t))&&Pn(e)?qr(zn(e),0,n):e.split(t,n):[]},fi.spread=function(e,t){if("function"!=typeof e)throw new rt(s);return t=null==t?0:Yn(Bs(t),0),kr((function(n){var i=n[t],r=qr(n,0,t);return i&&dn(r,i),tn(e,this,r)}))},fi.tail=function(e){var t=null==e?0:e.length;return t?Mr(e,1,t):[]},fi.take=function(e,t,n){return e&&e.length?Mr(e,0,(t=n||t===r?1:Bs(t))<0?0:t):[]},fi.takeRight=function(e,t,n){var i=null==e?0:e.length;return i?Mr(e,(t=i-(t=n||t===r?1:Bs(t)))<0?0:t,i):[]},fi.takeRightWhile=function(e,t){return e&&e.length?Hr(e,Ro(t,3),!1,!0):[]},fi.takeWhile=function(e,t){return e&&e.length?Hr(e,Ro(t,3)):[]},fi.tap=function(e,t){return t(e),e},fi.throttle=function(e,t,n){var i=!0,r=!0;if("function"!=typeof e)throw new rt(s);return Es(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),rs(e,t,{leading:i,maxWait:t,trailing:r})},fi.thru=Ha,fi.toArray=js,fi.toPairs=du,fi.toPairsIn=hu,fi.toPath=function(e){return ms(e)?cn(e,ca):Ps(e)?[e]:no(la(Ys(e)))},fi.toPlainObject=Vs,fi.transform=function(e,t,n){var i=ms(e),r=i||ws(e)||Rs(e);if(t=Ro(t,4),null==n){var o=e&&e.constructor;n=r?i?new o:[]:Es(e)&&Ss(o)?pi(wt(e)):{}}return(r?rn:Ki)(e,(function(e,i,r){return t(n,e,i,r)})),n},fi.unary=function(e){return es(e,1)},fi.union=Na,fi.unionBy=Da,fi.unionWith=Ma,fi.uniq=function(e){return e&&e.length?Zr(e):[]},fi.uniqBy=function(e,t){return e&&e.length?Zr(e,Ro(t,2)):[]},fi.uniqWith=function(e,t){return t="function"==typeof t?t:r,e&&e.length?Zr(e,r,t):[]},fi.unset=function(e,t){return null==e||Fr(e,t)},fi.unzip=Ta,fi.unzipWith=Oa,fi.update=function(e,t,n){return null==e?e:jr(e,t,Yr(n))},fi.updateWith=function(e,t,n,i){return i="function"==typeof i?i:r,null==e?e:jr(e,t,Yr(n),i)},fi.values=fu,fi.valuesIn=function(e){return null==e?[]:Nn(e,ou(e))},fi.without=Ia,fi.words=Su,fi.wrap=function(e,t){return cs(Yr(t),e)},fi.xor=Aa,fi.xorBy=Pa,fi.xorWith=Ra,fi.zip=Za,fi.zipObject=function(e,t){return Wr(e||[],t||[],Ni)},fi.zipObjectDeep=function(e,t){return Wr(e||[],t||[],Lr)},fi.zipWith=Fa,fi.entries=du,fi.entriesIn=hu,fi.extend=Ks,fi.extendWith=qs,Au(fi,fi),fi.add=Vu,fi.attempt=xu,fi.camelCase=pu,fi.capitalize=vu,fi.ceil=Yu,fi.clamp=function(e,t,n){return n===r&&(n=t,t=r),n!==r&&(n=(n=Ws(n))===n?n:0),t!==r&&(t=(t=Ws(t))===t?t:0),Ai(Ws(e),t,n)},fi.clone=function(e){return Pi(e,f)},fi.cloneDeep=function(e){return Pi(e,d|f)},fi.cloneDeepWith=function(e,t){return Pi(e,d|f,t="function"==typeof t?t:r)},fi.cloneWith=function(e,t){return Pi(e,f,t="function"==typeof t?t:r)},fi.conformsTo=function(e,t){return null==t||Ri(e,t,ru(t))},fi.deburr=gu,fi.defaultTo=function(e,t){return null==e||e!==e?t:e},fi.divide=Uu,fi.endsWith=function(e,t,n){e=Ys(e),t=Rr(t);var i=e.length,o=n=n===r?i:Ai(Bs(n),0,i);return(n-=t.length)>=0&&e.slice(n,o)==t},fi.eq=fs,fi.escape=function(e){return(e=Ys(e))&&xe.test(e)?e.replace(ke,In):e},fi.escapeRegExp=function(e){return(e=Ys(e))&&Ie.test(e)?e.replace(Oe,"\\$&"):e},fi.every=function(e,t,n){var i=ms(e)?an:Bi;return n&&Ko(e,t,n)&&(t=r),i(e,Ro(t,3))},fi.find=Wa,fi.findIndex=ga,fi.findKey=function(e,t){return gn(e,Ro(t,3),Ki)},fi.findLast=Va,fi.findLastIndex=ma,fi.findLastKey=function(e,t){return gn(e,Ro(t,3),qi)},fi.floor=Ku,fi.forEach=Ya,fi.forEachRight=Ua,fi.forIn=function(e,t){return null==e?e:Yi(e,Ro(t,3),ou)},fi.forInRight=function(e,t){return null==e?e:Ui(e,Ro(t,3),ou)},fi.forOwn=function(e,t){return e&&Ki(e,Ro(t,3))},fi.forOwnRight=function(e,t){return e&&qi(e,Ro(t,3))},fi.get=Js,fi.gt=ps,fi.gte=vs,fi.has=function(e,t){return null!=e&&Wo(e,t,er)},fi.hasIn=eu,fi.head=ya,fi.identity=Mu,fi.includes=function(e,t,n,i){e=ys(e)?e:fu(e),n=n&&!i?Bs(n):0;var r=e.length;return n<0&&(n=Yn(r+n,0)),As(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&_n(e,t,n)>-1},fi.indexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:Bs(n);return r<0&&(r=Yn(i+r,0)),_n(e,t,r)},fi.inRange=function(e,t,n){return t=Hs(t),n===r?(n=t,t=0):n=Hs(n),function(e,t,n){return e>=Un(t,n)&&e<Yn(t,n)}(e=Ws(e),t,n)},fi.invoke=iu,fi.isArguments=gs,fi.isArray=ms,fi.isArrayBuffer=_s,fi.isArrayLike=ys,fi.isArrayLikeObject=bs,fi.isBoolean=function(e){return!0===e||!1===e||Ns(e)&&Xi(e)==W},fi.isBuffer=ws,fi.isDate=Cs,fi.isElement=function(e){return Ns(e)&&1===e.nodeType&&!Ts(e)},fi.isEmpty=function(e){if(null==e)return!0;if(ys(e)&&(ms(e)||"string"==typeof e||"function"==typeof e.splice||ws(e)||Rs(e)||gs(e)))return!e.length;var t=zo(e);if(t==G||t==ne)return!e.size;if(Qo(e))return!lr(e).length;for(var n in e)if(ct.call(e,n))return!1;return!0},fi.isEqual=function(e,t){return or(e,t)},fi.isEqualWith=function(e,t,n){var i=(n="function"==typeof n?n:r)?n(e,t):r;return i===r?or(e,t,r,n):!!i},fi.isError=ks,fi.isFinite=function(e){return"number"==typeof e&&qt(e)},fi.isFunction=Ss,fi.isInteger=xs,fi.isLength=Ls,fi.isMap=Ds,fi.isMatch=function(e,t){return e===t||ar(e,t,Fo(t))},fi.isMatchWith=function(e,t,n){return n="function"==typeof n?n:r,ar(e,t,Fo(t),n)},fi.isNaN=function(e){return Ms(e)&&e!=+e},fi.isNative=function(e){if($o(e))throw new Xe(a);return sr(e)},fi.isNil=function(e){return null==e},fi.isNull=function(e){return null===e},fi.isNumber=Ms,fi.isObject=Es,fi.isObjectLike=Ns,fi.isPlainObject=Ts,fi.isRegExp=Os,fi.isSafeInteger=function(e){return xs(e)&&e>=-I&&e<=I},fi.isSet=Is,fi.isString=As,fi.isSymbol=Ps,fi.isTypedArray=Rs,fi.isUndefined=function(e){return e===r},fi.isWeakMap=function(e){return Ns(e)&&zo(e)==ae},fi.isWeakSet=function(e){return Ns(e)&&Xi(e)==se},fi.join=function(e,t){return null==e?"":vn.call(e,t)},fi.kebabCase=mu,fi.last=ka,fi.lastIndexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var o=i;return n!==r&&(o=(o=Bs(n))<0?Yn(i+o,0):Un(o,i-1)),t===t?function(e,t,n){for(var i=n+1;i--;)if(e[i]===t)return i;return i}(e,t,o):mn(e,bn,o,!0)},fi.lowerCase=_u,fi.lowerFirst=yu,fi.lt=Zs,fi.lte=Fs,fi.max=function(e){return e&&e.length?zi(e,Mu,Ji):r},fi.maxBy=function(e,t){return e&&e.length?zi(e,Ro(t,2),Ji):r},fi.mean=function(e){return wn(e,Mu)},fi.meanBy=function(e,t){return wn(e,Ro(t,2))},fi.min=function(e){return e&&e.length?zi(e,Mu,dr):r},fi.minBy=function(e,t){return e&&e.length?zi(e,Ro(t,2),dr):r},fi.stubArray=zu,fi.stubFalse=Wu,fi.stubObject=function(){return{}},fi.stubString=function(){return""},fi.stubTrue=function(){return!0},fi.multiply=qu,fi.nth=function(e,t){return e&&e.length?gr(e,Bs(t)):r},fi.noConflict=function(){return Wt._===this&&(Wt._=vt),this},fi.noop=Pu,fi.now=Ja,fi.pad=function(e,t,n){e=Ys(e);var i=(t=Bs(t))?Bn(e):0;if(!t||i>=t)return e;var r=(t-i)/2;return _o(Vt(r),n)+e+_o(zt(r),n)},fi.padEnd=function(e,t,n){e=Ys(e);var i=(t=Bs(t))?Bn(e):0;return t&&i<t?e+_o(t-i,n):e},fi.padStart=function(e,t,n){e=Ys(e);var i=(t=Bs(t))?Bn(e):0;return t&&i<t?_o(t-i,n)+e:e},fi.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),qn(Ys(e).replace(Pe,""),t||0)},fi.random=function(e,t,n){if(n&&"boolean"!=typeof n&&Ko(e,t,n)&&(t=n=r),n===r&&("boolean"==typeof t?(n=t,t=r):"boolean"==typeof e&&(n=e,e=r)),e===r&&t===r?(e=0,t=1):(e=Hs(e),t===r?(t=e,e=0):t=Hs(t)),e>t){var i=e;e=t,t=i}if(n||e%1||t%1){var o=Gn();return Un(e+o*(t-e+jt("1e-"+((o+"").length-1))),t)}return wr(e,t)},fi.reduce=function(e,t,n){var i=ms(e)?hn:Sn,r=arguments.length<3;return i(e,Ro(t,4),n,r,ji)},fi.reduceRight=function(e,t,n){var i=ms(e)?fn:Sn,r=arguments.length<3;return i(e,Ro(t,4),n,r,Hi)},fi.repeat=function(e,t,n){return t=(n?Ko(e,t,n):t===r)?1:Bs(t),Cr(Ys(e),t)},fi.replace=function(){var e=arguments,t=Ys(e[0]);return e.length<3?t:t.replace(e[1],e[2])},fi.result=function(e,t,n){var i=-1,o=(t=Ur(t,e)).length;for(o||(o=1,e=r);++i<o;){var a=null==e?r:e[ca(t[i])];a===r&&(i=o,a=n),e=Ss(a)?a.call(e):a}return e},fi.round=Gu,fi.runInContext=e,fi.sample=function(e){return(ms(e)?Si:Sr)(e)},fi.size=function(e){if(null==e)return 0;if(ys(e))return As(e)?Bn(e):e.length;var t=zo(e);return t==G||t==ne?e.size:lr(e).length},fi.snakeCase=bu,fi.some=function(e,t,n){var i=ms(e)?pn:Tr;return n&&Ko(e,t,n)&&(t=r),i(e,Ro(t,3))},fi.sortedIndex=function(e,t){return Or(e,t)},fi.sortedIndexBy=function(e,t,n){return Ir(e,t,Ro(n,2))},fi.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var i=Or(e,t);if(i<n&&fs(e[i],t))return i}return-1},fi.sortedLastIndex=function(e,t){return Or(e,t,!0)},fi.sortedLastIndexBy=function(e,t,n){return Ir(e,t,Ro(n,2),!0)},fi.sortedLastIndexOf=function(e,t){if(null==e?0:e.length){var n=Or(e,t,!0)-1;if(fs(e[n],t))return n}return-1},fi.startCase=wu,fi.startsWith=function(e,t,n){return e=Ys(e),n=null==n?0:Ai(Bs(n),0,e.length),t=Rr(t),e.slice(n,n+t.length)==t},fi.subtract=$u,fi.sum=function(e){return e&&e.length?xn(e,Mu):0},fi.sumBy=function(e,t){return e&&e.length?xn(e,Ro(t,2)):0},fi.template=function(e,t,n){var i=fi.templateSettings;n&&Ko(e,t,n)&&(t=r),e=Ys(e),t=qs({},t,i,Lo);var o,a,s=qs({},t.imports,i.imports,Lo),u=ru(s),l=Nn(s,u),c=0,d=t.interpolate||$e,h="__p += '",f=nt((t.escape||$e).source+"|"+d.source+"|"+(d===Ne?ze:$e).source+"|"+(t.evaluate||$e).source+"|$","g"),p="//# sourceURL="+("sourceURL"in t?t.sourceURL:"lodash.templateSources["+ ++Pt+"]")+"\n";e.replace(f,(function(t,n,i,r,s,u){return i||(i=r),h+=e.slice(c,u).replace(Qe,An),n&&(o=!0,h+="' +\n__e("+n+") +\n'"),s&&(a=!0,h+="';\n"+s+";\n__p += '"),i&&(h+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),c=u+t.length,t})),h+="';\n";var v=t.variable;v||(h="with (obj) {\n"+h+"\n}\n"),h=(a?h.replace(ye,""):h).replace(be,"$1").replace(we,"$1;"),h="function("+(v||"obj")+") {\n"+(v?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var g=xu((function(){return Je(u,p+"return "+h).apply(r,l)}));if(g.source=h,ks(g))throw g;return g},fi.times=function(e,t){if((e=Bs(e))<1||e>I)return[];var n=R,i=Un(e,R);t=Ro(t),e-=R;for(var r=Ln(i,t);++n<e;)t(n);return r},fi.toFinite=Hs,fi.toInteger=Bs,fi.toLength=zs,fi.toLower=function(e){return Ys(e).toLowerCase()},fi.toNumber=Ws,fi.toSafeInteger=function(e){return e?Ai(Bs(e),-I,I):0===e?e:0},fi.toString=Ys,fi.toUpper=function(e){return Ys(e).toUpperCase()},fi.trim=function(e,t,n){if((e=Ys(e))&&(n||t===r))return e.replace(Ae,"");if(!e||!(t=Rr(t)))return e;var i=zn(e),o=zn(t);return qr(i,Mn(i,o),Tn(i,o)+1).join("")},fi.trimEnd=function(e,t,n){if((e=Ys(e))&&(n||t===r))return e.replace(Re,"");if(!e||!(t=Rr(t)))return e;var i=zn(e);return qr(i,0,Tn(i,zn(t))+1).join("")},fi.trimStart=function(e,t,n){if((e=Ys(e))&&(n||t===r))return e.replace(Pe,"");if(!e||!(t=Rr(t)))return e;var i=zn(e);return qr(i,Mn(i,zn(t))).join("")},fi.truncate=function(e,t){var n=L,i=E;if(Es(t)){var o="separator"in t?t.separator:o;n="length"in t?Bs(t.length):n,i="omission"in t?Rr(t.omission):i}var a=(e=Ys(e)).length;if(Pn(e)){var s=zn(e);a=s.length}if(n>=a)return e;var u=n-Bn(i);if(u<1)return i;var l=s?qr(s,0,u).join(""):e.slice(0,u);if(o===r)return l+i;if(s&&(u+=l.length-u),Os(o)){if(e.slice(u).search(o)){var c,d=l;for(o.global||(o=nt(o.source,Ys(We.exec(o))+"g")),o.lastIndex=0;c=o.exec(d);)var h=c.index;l=l.slice(0,h===r?u:h)}}else if(e.indexOf(Rr(o),u)!=u){var f=l.lastIndexOf(o);f>-1&&(l=l.slice(0,f))}return l+i},fi.unescape=function(e){return(e=Ys(e))&&Se.test(e)?e.replace(Ce,Wn):e},fi.uniqueId=function(e){var t=++dt;return Ys(e)+t},fi.upperCase=Cu,fi.upperFirst=ku,fi.each=Ya,fi.eachRight=Ua,fi.first=ya,Au(fi,function(){var e={};return Ki(fi,(function(t,n){ct.call(fi.prototype,n)||(e[n]=t)})),e}(),{chain:!1}),fi.VERSION="4.17.11",rn(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){fi[e].placeholder=fi})),rn(["drop","take"],(function(e,t){mi.prototype[e]=function(n){n=n===r?1:Yn(Bs(n),0);var i=this.__filtered__&&!t?new mi(this):this.clone();return i.__filtered__?i.__takeCount__=Un(n,i.__takeCount__):i.__views__.push({size:Un(n,R),type:e+(i.__dir__<0?"Right":"")}),i},mi.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),rn(["filter","map","takeWhile"],(function(e,t){var n=t+1,i=n==M||3==n;mi.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Ro(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}})),rn(["head","last"],(function(e,t){var n="take"+(t?"Right":"");mi.prototype[e]=function(){return this[n](1).value()[0]}})),rn(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");mi.prototype[e]=function(){return this.__filtered__?new mi(this):this[n](1)}})),mi.prototype.compact=function(){return this.filter(Mu)},mi.prototype.find=function(e){return this.filter(e).head()},mi.prototype.findLast=function(e){return this.reverse().find(e)},mi.prototype.invokeMap=kr((function(e,t){return"function"==typeof e?new mi(this):this.map((function(n){return ir(n,e,t)}))})),mi.prototype.reject=function(e){return this.filter(us(Ro(e)))},mi.prototype.slice=function(e,t){e=Bs(e);var n=this;return n.__filtered__&&(e>0||t<0)?new mi(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==r&&(n=(t=Bs(t))<0?n.dropRight(-t):n.take(t-e)),n)},mi.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},mi.prototype.toArray=function(){return this.take(R)},Ki(mi.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),o=fi[i?"take"+("last"==t?"Right":""):t],a=i||/^find/.test(t);o&&(fi.prototype[t]=function(){var t=this.__wrapped__,s=i?[1]:arguments,u=t instanceof mi,l=s[0],c=u||ms(t),d=function(e){var t=o.apply(fi,dn([e],s));return i&&h?t[0]:t};c&&n&&"function"==typeof l&&1!=l.length&&(u=c=!1);var h=this.__chain__,f=!!this.__actions__.length,p=a&&!h,v=u&&!f;if(!a&&c){t=v?t:new mi(this);var g=e.apply(t,s);return g.__actions__.push({func:Ha,args:[d],thisArg:r}),new gi(g,h)}return p&&v?e.apply(this,s):(g=this.thru(d),p?i?g.value()[0]:g.value():g)})})),rn(["pop","push","shift","sort","splice","unshift"],(function(e){var t=ot[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);fi.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var r=this.value();return t.apply(ms(r)?r:[],e)}return this[n]((function(n){return t.apply(ms(n)?n:[],e)}))}})),Ki(mi.prototype,(function(e,t){var n=fi[t];if(n){var i=n.name+"";(ri[i]||(ri[i]=[])).push({name:t,func:n})}})),ri[po(r,m).name]=[{name:"wrapper",func:r}],mi.prototype.clone=function(){var e=new mi(this.__wrapped__);return e.__actions__=no(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=no(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=no(this.__views__),e},mi.prototype.reverse=function(){if(this.__filtered__){var e=new mi(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},mi.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=ms(e),i=t<0,r=n?e.length:0,o=function(e,t,n){var i=-1,r=n.length;for(;++i<r;){var o=n[i],a=o.size;switch(o.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=Un(t,e+a);break;case"takeRight":e=Yn(e,t-a)}}return{start:e,end:t}}(0,r,this.__views__),a=o.start,s=o.end,u=s-a,l=i?s:a-1,c=this.__iteratees__,d=c.length,h=0,f=Un(u,this.__takeCount__);if(!n||!i&&r==u&&f==u)return Br(e,this.__actions__);var p=[];e:for(;u--&&h<f;){for(var v=-1,g=e[l+=t];++v<d;){var m=c[v],_=m.iteratee,y=m.type,b=_(g);if(y==T)g=b;else if(!b){if(y==M)continue e;break e}}p[h++]=g}return p},fi.prototype.at=Ba,fi.prototype.chain=function(){return ja(this)},fi.prototype.commit=function(){return new gi(this.value(),this.__chain__)},fi.prototype.next=function(){this.__values__===r&&(this.__values__=js(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?r:this.__values__[this.__index__++]}},fi.prototype.plant=function(e){for(var t,n=this;n instanceof vi;){var i=ha(n);i.__index__=0,i.__values__=r,t?o.__wrapped__=i:t=i;var o=i;n=n.__wrapped__}return o.__wrapped__=e,t},fi.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof mi){var t=e;return this.__actions__.length&&(t=new mi(this)),(t=t.reverse()).__actions__.push({func:Ha,args:[Ea],thisArg:r}),new gi(t,this.__chain__)}return this.thru(Ea)},fi.prototype.toJSON=fi.prototype.valueOf=fi.prototype.value=function(){return Br(this.__wrapped__,this.__actions__)},fi.prototype.first=fi.prototype.head,Lt&&(fi.prototype[Lt]=function(){return this}),fi}();Wt._=Vn,(i=function(){return Vn}.call(t,n,t,e))===r||(e.exports=i)}.call(this)},970:function(e,t,n){var i;e=n.nmd(e),function(){function r(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function o(e,t,n,i){for(var r=-1,o=null==e?0:e.length;++r<o;){var a=e[r];t(i,a,n(a),e)}return i}function a(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}function s(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function u(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(!t(e[n],n,e))return!1;return!0}function l(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}function c(e,t){return!(null==e||!e.length)&&-1<y(e,t,0)}function d(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}function h(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}function f(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}function p(e,t,n,i){var r=-1,o=null==e?0:e.length;for(i&&o&&(n=e[++r]);++r<o;)n=t(n,e[r],r,e);return n}function v(e,t,n,i){var r=null==e?0:e.length;for(i&&r&&(n=e[--r]);r--;)n=t(n,e[r],r,e);return n}function g(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}function m(e,t,n){var i;return n(e,(function(e,n,r){if(t(e,n,r))return i=n,!1})),i}function _(e,t,n,i){var r=e.length;for(n+=i?1:-1;i?n--:++n<r;)if(t(e[n],n,e))return n;return-1}function y(e,t,n){if(t===t)e:{--n;for(var i=e.length;++n<i;)if(e[n]===t){e=n;break e}e=-1}else e=_(e,w,n);return e}function b(e,t,n,i){--n;for(var r=e.length;++n<r;)if(i(e[n],t))return n;return-1}function w(e){return e!==e}function C(e,t){var n=null==e?0:e.length;return n?L(e,t)/n:z}function k(e){return function(t){return null==t?H:t[e]}}function S(e){return function(t){return null==e?H:e[t]}}function x(e,t,n,i,r){return r(e,(function(e,r,o){n=i?(i=!1,e):t(n,e,r,o)})),n}function L(e,t){for(var n,i=-1,r=e.length;++i<r;){var o=t(e[i]);o!==H&&(n=n===H?o:n+o)}return n}function E(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}function N(e){return function(t){return e(t)}}function D(e,t){return h(t,(function(t){return e[t]}))}function M(e,t){return e.has(t)}function T(e,t){for(var n=-1,i=e.length;++n<i&&-1<y(t,e[n],0););return n}function O(e,t){for(var n=e.length;n--&&-1<y(t,e[n],0););return n}function I(e){return"\\"+Ae[e]}function A(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function P(e,t){return function(n){return e(t(n))}}function R(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n];a!==t&&"__lodash_placeholder__"!==a||(e[n]="__lodash_placeholder__",o[r++]=n)}return o}function Z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function F(e){if(De.test(e)){for(var t=Ee.lastIndex=0;Ee.test(e);)++t;e=t}else e=Qe(e);return e}function j(e){return De.test(e)?e.match(Ee)||[]:e.split("")}var H,B=1/0,z=NaN,W=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],V=/\b__p\+='';/g,Y=/\b(__p\+=)''\+/g,U=/(__e\(.*?\)|\b__t\))\+'';/g,K=/&(?:amp|lt|gt|quot|#39);/g,q=/[&<>"']/g,G=RegExp(K.source),$=RegExp(q.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,ee=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,te=/^\w*$/,ne=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ie=/[\\^$.*+?()[\]{}|]/g,re=RegExp(ie.source),oe=/^\s+|\s+$/g,ae=/^\s+/,se=/\s+$/,ue=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,le=/\{\n\/\* \[wrapped with (.+)\] \*/,ce=/,? & /,de=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,he=/\\(\\)?/g,fe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,ve=/^[-+]0x[0-9a-f]+$/i,ge=/^0b[01]+$/i,me=/^\[object .+?Constructor\]$/,_e=/^0o[0-7]+$/i,ye=/^(?:0|[1-9]\d*)$/,be=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,we=/($^)/,Ce=/['\n\r\u2028\u2029\\]/g,ke="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",Se="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+ke,xe=RegExp("['\u2019]","g"),Le=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),Ee=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])"+ke,"g"),Ne=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",Se].join("|"),"g"),De=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Me=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Te="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Oe={};Oe["[object Float32Array]"]=Oe["[object Float64Array]"]=Oe["[object Int8Array]"]=Oe["[object Int16Array]"]=Oe["[object Int32Array]"]=Oe["[object Uint8Array]"]=Oe["[object Uint8ClampedArray]"]=Oe["[object Uint16Array]"]=Oe["[object Uint32Array]"]=!0,Oe["[object Arguments]"]=Oe["[object Array]"]=Oe["[object ArrayBuffer]"]=Oe["[object Boolean]"]=Oe["[object DataView]"]=Oe["[object Date]"]=Oe["[object Error]"]=Oe["[object Function]"]=Oe["[object Map]"]=Oe["[object Number]"]=Oe["[object Object]"]=Oe["[object RegExp]"]=Oe["[object Set]"]=Oe["[object String]"]=Oe["[object WeakMap]"]=!1;var Ie={};Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object DataView]"]=Ie["[object Boolean]"]=Ie["[object Date]"]=Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object Symbol]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object WeakMap]"]=!1;var Ae={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Pe=parseFloat,Re=parseInt,Ze="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,Fe="object"==typeof self&&self&&self.Object===Object&&self,je=Ze||Fe||Function("return this")(),He=t&&!t.nodeType&&t,Be=He&&e&&!e.nodeType&&e,ze=Be&&Be.exports===He,We=ze&&Ze.process,Ve=function(){try{var e=Be&&Be.require&&Be.require("util").types;return e||We&&We.binding&&We.binding("util")}catch(e){}}(),Ye=Ve&&Ve.isArrayBuffer,Ue=Ve&&Ve.isDate,Ke=Ve&&Ve.isMap,qe=Ve&&Ve.isRegExp,Ge=Ve&&Ve.isSet,$e=Ve&&Ve.isTypedArray,Qe=k("length"),Xe=S({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),Je=S({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}),et=S({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),tt=function e(t){function n(e){if(Gi(e)&&!Za(e)&&!(e instanceof ke)){if(e instanceof S)return e;if(Zr.call(e,"__wrapped__"))return wi(e)}return new S(e)}function i(){}function S(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=H}function ke(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Se(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ee(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ae(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ze(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Ae;++t<n;)this.add(e[t])}function Fe(e){this.size=(this.__data__=new Ee(e)).size}function He(e,t){var n,i=Za(e),r=!i&&Ra(e),o=!i&&!r&&ja(e),a=!i&&!r&&!o&&Va(e),s=(r=(i=i||r||o||a)?E(e.length,Tr):[]).length;for(n in e)!t&&!Zr.call(e,n)||i&&("length"==n||o&&("offset"==n||"parent"==n)||a&&("buffer"==n||"byteLength"==n||"byteOffset"==n)||si(n,s))||r.push(n);return r}function Be(e){var t=e.length;return t?e[Vt(0,t-1)]:H}function We(e,t){return mi(wn(e),ut(t,0,e.length))}function Ve(e){return mi(wn(e))}function Qe(e,t,n){(n===H||Bi(e[t],n))&&(n!==H||t in e)||at(e,t,n)}function nt(e,t,n){var i=e[t];Zr.call(e,t)&&Bi(i,n)&&(n!==H||t in e)||at(e,t,n)}function it(e,t){for(var n=e.length;n--;)if(Bi(e[n][0],t))return n;return-1}function rt(e,t,n,i){return Ro(e,(function(e,r,o){t(i,e,n(e),o)})),i}function ot(e,t){return e&&Cn(t,lr(t),e)}function at(e,t,n){"__proto__"==t&&to?to(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function st(e,t){for(var n=-1,i=t.length,r=Sr(i),o=null==e;++n<i;)r[n]=o?H:sr(e,t[n]);return r}function ut(e,t,n){return e===e&&(n!==H&&(e=e<=n?e:n),t!==H&&(e=e>=t?e:t)),e}function lt(e,t,n,i,r,o){var s,u=1&t,l=2&t,c=4&t;if(n&&(s=r?n(e,i,r,o):n(e)),s!==H)return s;if(!qi(e))return e;if(i=Za(e)){if(s=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Zr.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!u)return wn(e,s)}else{var d=Ko(e),h="[object Function]"==d||"[object GeneratorFunction]"==d;if(ja(e))return vn(e,u);if("[object Object]"==d||"[object Arguments]"==d||h&&!r){if(s=l||h?{}:oi(e),!u)return l?function(e,t){return Cn(e,Uo(e),t)}(e,function(e,t){return e&&Cn(t,cr(t),e)}(s,e)):function(e,t){return Cn(e,Yo(e),t)}(e,ot(s,e))}else{if(!Ie[d])return r?e:{};s=function(e,t,n){var i=e.constructor;switch(t){case"[object ArrayBuffer]":return gn(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return t=n?gn(e.buffer):e.buffer,new e.constructor(t,e.byteOffset,e.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return mn(e,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(t=new e.constructor(e.source,pe.exec(e))).lastIndex=e.lastIndex,t;case"[object Symbol]":return Io?Dr(Io.call(e)):{}}}(e,d,u)}}if(o||(o=new Fe),r=o.get(e))return r;if(o.set(e,s),Wa(e))return e.forEach((function(i){s.add(lt(i,t,n,i,e,o))})),s;if(Ba(e))return e.forEach((function(i,r){s.set(r,lt(i,t,n,r,e,o))})),s;l=c?l?Qn:$n:l?cr:lr;var f=i?H:l(e);return a(f||e,(function(i,r){f&&(i=e[r=i]),nt(s,r,lt(i,t,n,r,e,o))})),s}function ct(e,t,n){var i=n.length;if(null==e)return!i;for(e=Dr(e);i--;){var r=n[i],o=t[r],a=e[r];if(a===H&&!(r in e)||!o(a))return!1}return!0}function dt(e,t,n){if("function"!=typeof e)throw new Or("Expected a function");return $o((function(){e.apply(H,n)}),t)}function ht(e,t,n,i){var r=-1,o=c,a=!0,s=e.length,u=[],l=t.length;if(!s)return u;n&&(t=h(t,N(n))),i?(o=d,a=!1):200<=t.length&&(o=M,a=!1,t=new Ze(t));e:for(;++r<s;){var f=e[r],p=null==n?f:n(f);f=i||0!==f?f:0;if(a&&p===p){for(var v=l;v--;)if(t[v]===p)continue e;u.push(f)}else o(t,p,i)||u.push(f)}return u}function ft(e,t){var n=!0;return Ro(e,(function(e,i,r){return n=!!t(e,i,r)})),n}function pt(e,t,n){for(var i=-1,r=e.length;++i<r;){var o=e[i],a=t(o);if(null!=a&&(s===H?a===a&&!Ji(a):n(a,s)))var s=a,u=o}return u}function vt(e,t){var n=[];return Ro(e,(function(e,i,r){t(e,i,r)&&n.push(e)})),n}function gt(e,t,n,i,r){var o=-1,a=e.length;for(n||(n=ai),r||(r=[]);++o<a;){var s=e[o];0<t&&n(s)?1<t?gt(s,t-1,n,i,r):f(r,s):i||(r[r.length]=s)}return r}function mt(e,t){return e&&Fo(e,t,lr)}function _t(e,t){return e&&jo(e,t,lr)}function yt(e,t){return l(t,(function(t){return Yi(e[t])}))}function bt(e,t){for(var n=0,i=(t=fn(t,e)).length;null!=e&&n<i;)e=e[_i(t[n++])];return n&&n==i?e:H}function wt(e,t,n){return t=t(e),Za(e)?t:f(t,n(e))}function Ct(e){if(null==e)return e===H?"[object Undefined]":"[object Null]";if(eo&&eo in Dr(e)){var t=Zr.call(e,eo),n=e[eo];try{e[eo]=H;var i=!0}catch(e){}var r=Hr.call(e);i&&(t?e[eo]=n:delete e[eo]),e=r}else e=Hr.call(e);return e}function kt(e,t){return e>t}function St(e,t){return null!=e&&Zr.call(e,t)}function xt(e,t){return null!=e&&t in Dr(e)}function Lt(e,t,n){for(var i=n?d:c,r=e[0].length,o=e.length,a=o,s=Sr(o),u=1/0,l=[];a--;){var f=e[a];a&&t&&(f=h(f,N(t))),u=po(f.length,u),s[a]=!n&&(t||120<=r&&120<=f.length)?new Ze(a&&f):H}f=e[0];var p=-1,v=s[0];e:for(;++p<r&&l.length<u;){var g=f[p],m=t?t(g):g;g=n||0!==g?g:0;if(v?!M(v,m):!i(l,m,n)){for(a=o;--a;){var _=s[a];if(_?!M(_,m):!i(e[a],m,n))continue e}v&&v.push(m),l.push(g)}}return l}function Et(e,t,n){return null==(t=null==(e=2>(t=fn(t,e)).length?e:bt(e,Qt(t,0,-1)))?e:e[_i(Li(t))])?H:r(t,e,n)}function Nt(e){return Gi(e)&&"[object Arguments]"==Ct(e)}function Dt(e,t,n,i,r){if(e===t)return!0;if(null==e||null==t||!Gi(e)&&!Gi(t))return e!==e&&t!==t;e:{var o,a,s=Za(e),u=Za(t),l="[object Object]"==(o="[object Arguments]"==(o=s?"[object Array]":Ko(e))?"[object Object]":o);u="[object Object]"==(a="[object Arguments]"==(a=u?"[object Array]":Ko(t))?"[object Object]":a);if((a=o==a)&&ja(e)){if(!ja(t)){t=!1;break e}s=!0,l=!1}if(a&&!l)r||(r=new Fe),t=s||Va(e)?qn(e,t,n,i,Dt,r):function(e,t,n,i,r,o,a){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)break;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":if(e.byteLength!=t.byteLength||!o(new Ur(e),new Ur(t)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return Bi(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var s=A;case"[object Set]":if(s||(s=Z),e.size!=t.size&&!(1&i))break;return(n=a.get(e))?n==t:(i|=2,a.set(e,t),t=qn(s(e),s(t),i,r,o,a),a.delete(e),t);case"[object Symbol]":if(Io)return Io.call(e)==Io.call(t)}return!1}(e,t,o,n,i,Dt,r);else{if(!(1&n)&&(s=l&&Zr.call(e,"__wrapped__"),o=u&&Zr.call(t,"__wrapped__"),s||o)){e=s?e.value():e,t=o?t.value():t,r||(r=new Fe),t=Dt(e,t,n,i,r);break e}if(a)t:if(r||(r=new Fe),s=1&n,o=$n(e),u=o.length,a=$n(t).length,u==a||s){for(l=u;l--;){var c=o[l];if(!(s?c in t:Zr.call(t,c))){t=!1;break t}}if((a=r.get(e))&&r.get(t))t=a==t;else{a=!0,r.set(e,t),r.set(t,e);for(var d=s;++l<u;){var h=e[c=o[l]],f=t[c];if(i)var p=s?i(f,h,c,t,e,r):i(h,f,c,e,t,r);if(p===H?h!==f&&!Dt(h,f,n,i,r):!p){a=!1;break}d||(d="constructor"==c)}a&&!d&&((n=e.constructor)!=(i=t.constructor)&&"constructor"in e&&"constructor"in t&&!("function"==typeof n&&n instanceof n&&"function"==typeof i&&i instanceof i)&&(a=!1)),r.delete(e),r.delete(t),t=a}}else t=!1;else t=!1}}return t}function Mt(e,t,n,i){var r=n.length,o=r,a=!i;if(null==e)return!o;for(e=Dr(e);r--;){var s=n[r];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++r<o;){var u=(s=n[r])[0],l=e[u],c=s[1];if(a&&s[2]){if(l===H&&!(u in e))return!1}else{if(s=new Fe,i)var d=i(l,c,u,e,t,s);if(d===H?!Dt(c,l,3,i,s):!d)return!1}}return!0}function Tt(e){return!(!qi(e)||jr&&jr in e)&&(Yi(e)?Wr:me).test(yi(e))}function Ot(e){return"function"==typeof e?e:null==e?mr:"object"==typeof e?Za(e)?Zt(e[0],e[1]):Rt(e):wr(e)}function It(e){if(!di(e))return ho(e);var t,n=[];for(t in Dr(e))Zr.call(e,t)&&"constructor"!=t&&n.push(t);return n}function At(e,t){return e<t}function Pt(e,t){var n=-1,i=zi(e)?Sr(e.length):[];return Ro(e,(function(e,r,o){i[++n]=t(e,r,o)})),i}function Rt(e){var t=ni(e);return 1==t.length&&t[0][2]?hi(t[0][0],t[0][1]):function(n){return n===e||Mt(n,e,t)}}function Zt(e,t){return li(e)&&t===t&&!qi(t)?hi(_i(e),t):function(n){var i=sr(n,e);return i===H&&i===t?ur(n,e):Dt(t,i,3)}}function Ft(e,t,n,i,r){e!==t&&Fo(t,(function(o,a){if(qi(o)){r||(r=new Fe);var s=r,u=pi(e,a),l=pi(t,a);if(!(p=s.get(l))){var c=(p=i?i(u,l,a+"",e,t,s):H)===H;if(c){var d=Za(l),h=!d&&ja(l),f=!d&&!h&&Va(l),p=l;d||h||f?Za(u)?p=u:Wi(u)?p=wn(u):h?(c=!1,p=vn(l,!0)):f?(c=!1,p=mn(l,!0)):p=[]:Qi(l)||Ra(l)?(p=u,Ra(u)?p=or(u):qi(u)&&!Yi(u)||(p=oi(l))):c=!1}c&&(s.set(l,p),Ft(p,l,n,i,s),s.delete(l))}Qe(e,a,p)}else(s=i?i(pi(e,a),o,a+"",e,t,r):H)===H&&(s=o),Qe(e,a,s)}),cr)}function jt(e,t){var n=e.length;if(n)return si(t+=0>t?n:0,n)?e[t]:H}function Ht(e,t,n){var i=-1;return t=h(t.length?t:[mr],N(ei())),e=Pt(e,(function(e,n,r){return{a:h(t,(function(t){return t(e)})),b:++i,c:e}})),function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].c;return e}(e,(function(e,t){var i;e:{i=-1;for(var r=e.a,o=t.a,a=r.length,s=n.length;++i<a;){var u=_n(r[i],o[i]);if(u){if(i>=s){i=u;break e}i=u*("desc"==n[i]?-1:1);break e}}i=e.b-t.b}return i}))}function Bt(e,t,n){for(var i=-1,r=t.length,o={};++i<r;){var a=t[i],s=bt(e,a);n(s,a)&&Gt(o,fn(a,e),s)}return o}function zt(e,t,n,i){var r=i?b:y,o=-1,a=t.length,s=e;for(e===t&&(t=wn(t)),n&&(s=h(e,N(n)));++o<a;){var u=0,l=t[o];for(l=n?n(l):l;-1<(u=r(s,l,u,i));)s!==e&&Qr.call(s,u,1),Qr.call(e,u,1)}return e}function Wt(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==o){var o=r;si(r)?Qr.call(e,r,1):an(e,r)}}return e}function Vt(e,t){return e+ao(mo()*(t-e+1))}function Yt(e,t){var n="";if(!e||1>t||9007199254740991<t)return n;do{t%2&&(n+=e),(t=ao(t/2))&&(e+=e)}while(t);return n}function Ut(e,t){return Qo(fi(e,t,mr),e+"")}function Kt(e){return Be(hr(e))}function qt(e,t){var n=hr(e);return mi(n,ut(t,0,n.length))}function Gt(e,t,n,i){if(!qi(e))return e;for(var r=-1,o=(t=fn(t,e)).length,a=o-1,s=e;null!=s&&++r<o;){var u=_i(t[r]),l=n;if(r!=a){var c=s[u];(l=i?i(c,u,s):H)===H&&(l=qi(c)?c:si(t[r+1])?[]:{})}nt(s,u,l),s=s[u]}return e}function $t(e){return mi(hr(e))}function Qt(e,t,n){var i=-1,r=e.length;for(0>t&&(t=-t>r?0:r+t),0>(n=n>r?r:n)&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0,n=Sr(r);++i<r;)n[i]=e[i+t];return n}function Xt(e,t){var n;return Ro(e,(function(e,i,r){return!(n=t(e,i,r))})),!!n}function Jt(e,t,n){var i=0,r=null==e?i:e.length;if("number"==typeof t&&t===t&&2147483647>=r){for(;i<r;){var o=i+r>>>1,a=e[o];null!==a&&!Ji(a)&&(n?a<=t:a<t)?i=o+1:r=o}return r}return en(e,t,mr,n)}function en(e,t,n,i){t=n(t);for(var r=0,o=null==e?0:e.length,a=t!==t,s=null===t,u=Ji(t),l=t===H;r<o;){var c=ao((r+o)/2),d=n(e[c]),h=d!==H,f=null===d,p=d===d,v=Ji(d);(a?i||p:l?p&&(i||h):s?p&&h&&(i||!f):u?p&&h&&!f&&(i||!v):!f&&!v&&(i?d<=t:d<t))?r=c+1:o=c}return po(o,4294967294)}function tn(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n],s=t?t(a):a;if(!n||!Bi(s,u)){var u=s;o[r++]=0===a?0:a}}return o}function nn(e){return"number"==typeof e?e:Ji(e)?z:+e}function rn(e){if("string"==typeof e)return e;if(Za(e))return h(e,rn)+"";if(Ji(e))return Ao?Ao.call(e):"";var t=e+"";return"0"==t&&1/e==-B?"-0":t}function on(e,t,n){var i=-1,r=c,o=e.length,a=!0,s=[],u=s;if(n)a=!1,r=d;else if(200<=o){if(r=t?null:Wo(e))return Z(r);a=!1,r=M,u=new Ze}else u=t?[]:s;e:for(;++i<o;){var l=e[i],h=t?t(l):l;l=n||0!==l?l:0;if(a&&h===h){for(var f=u.length;f--;)if(u[f]===h)continue e;t&&u.push(h),s.push(l)}else r(u,h,n)||(u!==s&&u.push(h),s.push(l))}return s}function an(e,t){return null==(e=2>(t=fn(t,e)).length?e:bt(e,Qt(t,0,-1)))||delete e[_i(Li(t))]}function sn(e,t,n,i){for(var r=e.length,o=i?r:-1;(i?o--:++o<r)&&t(e[o],o,e););return n?Qt(e,i?0:o,i?o+1:r):Qt(e,i?o+1:0,i?r:o)}function un(e,t){var n=e;return n instanceof ke&&(n=n.value()),p(t,(function(e,t){return t.func.apply(t.thisArg,f([e],t.args))}),n)}function ln(e,t,n){var i=e.length;if(2>i)return i?on(e[0]):[];for(var r=-1,o=Sr(i);++r<i;)for(var a=e[r],s=-1;++s<i;)s!=r&&(o[r]=ht(o[r]||a,e[s],t,n));return on(gt(o,1),t,n)}function cn(e,t,n){for(var i=-1,r=e.length,o=t.length,a={};++i<r;)n(a,e[i],i<o?t[i]:H);return a}function dn(e){return Wi(e)?e:[]}function hn(e){return"function"==typeof e?e:mr}function fn(e,t){return Za(e)?e:li(e,t)?[e]:Xo(ar(e))}function pn(e,t,n){var i=e.length;return n=n===H?i:n,!t&&n>=i?e:Qt(e,t,n)}function vn(e,t){if(t)return e.slice();var n=e.length;n=Kr?Kr(n):new e.constructor(n);return e.copy(n),n}function gn(e){var t=new e.constructor(e.byteLength);return new Ur(t).set(new Ur(e)),t}function mn(e,t){return new e.constructor(t?gn(e.buffer):e.buffer,e.byteOffset,e.length)}function _n(e,t){if(e!==t){var n=e!==H,i=null===e,r=e===e,o=Ji(e),a=t!==H,s=null===t,u=t===t,l=Ji(t);if(!s&&!l&&!o&&e>t||o&&a&&u&&!s&&!l||i&&a&&u||!n&&u||!r)return 1;if(!i&&!o&&!l&&e<t||l&&n&&r&&!i&&!o||s&&n&&r||!a&&r||!u)return-1}return 0}function yn(e,t,n,i){var r=-1,o=e.length,a=n.length,s=-1,u=t.length,l=fo(o-a,0),c=Sr(u+l);for(i=!i;++s<u;)c[s]=t[s];for(;++r<a;)(i||r<o)&&(c[n[r]]=e[r]);for(;l--;)c[s++]=e[r++];return c}function bn(e,t,n,i){var r=-1,o=e.length,a=-1,s=n.length,u=-1,l=t.length,c=fo(o-s,0),d=Sr(c+l);for(i=!i;++r<c;)d[r]=e[r];for(c=r;++u<l;)d[c+u]=t[u];for(;++a<s;)(i||r<o)&&(d[c+n[a]]=e[r++]);return d}function wn(e,t){var n=-1,i=e.length;for(t||(t=Sr(i));++n<i;)t[n]=e[n];return t}function Cn(e,t,n,i){var r=!n;n||(n={});for(var o=-1,a=t.length;++o<a;){var s=t[o],u=i?i(n[s],e[s],s,n,e):H;u===H&&(u=e[s]),r?at(n,s,u):nt(n,s,u)}return n}function kn(e,t){return function(n,i){var r=Za(n)?o:rt,a=t?t():{};return r(n,e,ei(i,2),a)}}function Sn(e){return Ut((function(t,n){var i=-1,r=n.length,o=1<r?n[r-1]:H,a=2<r?n[2]:H;o=3<e.length&&"function"==typeof o?(r--,o):H;for(a&&ui(n[0],n[1],a)&&(o=3>r?H:o,r=1),t=Dr(t);++i<r;)(a=n[i])&&e(t,a,i,o);return t}))}function xn(e,t){return function(n,i){if(null==n)return n;if(!zi(n))return e(n,i);for(var r=n.length,o=t?r:-1,a=Dr(n);(t?o--:++o<r)&&!1!==i(a[o],o,a););return n}}function Ln(e){return function(t,n,i){for(var r=-1,o=Dr(t),a=(i=i(t)).length;a--;){var s=i[e?a:++r];if(!1===n(o[s],s,o))break}return t}}function En(e){return function(t){t=ar(t);var n=De.test(t)?j(t):H,i=n?n[0]:t.charAt(0);return t=n?pn(n,1).join(""):t.slice(1),i[e]()+t}}function Nn(e){return function(t){return p(vr(pr(t).replace(xe,"")),e,"")}}function Dn(e){return function(){switch((t=arguments).length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var t,n=Po(e.prototype);return qi(t=e.apply(n,t))?t:n}}function Mn(e,t,n){var i=Dn(e);return function o(){for(var a=arguments.length,s=Sr(a),u=a,l=Jn(o);u--;)s[u]=arguments[u];return(a-=(u=3>a&&s[0]!==l&&s[a-1]!==l?[]:R(s,l)).length)<n?Bn(e,t,In,o.placeholder,H,s,u,H,H,n-a):r(this&&this!==je&&this instanceof o?i:e,this,s)}}function Tn(e){return function(t,n,i){var r=Dr(t);if(!zi(t)){var o=ei(n,3);t=lr(t),n=function(e){return o(r[e],e,r)}}return-1<(n=e(t,n,i))?r[o?t[n]:n]:H}}function On(e){return Gn((function(t){var n=t.length,i=n,r=S.prototype.thru;for(e&&t.reverse();i--;){if("function"!=typeof(a=t[i]))throw new Or("Expected a function");if(r&&!o&&"wrapper"==Xn(a))var o=new S([],!0)}for(i=o?i:n;++i<n;){var a,s="wrapper"==(r=Xn(a=t[i]))?Vo(a):H;o=s&&ci(s[0])&&424==s[1]&&!s[4].length&&1==s[9]?o[Xn(s[0])].apply(o,s[3]):1==a.length&&ci(a)?o[r]():o.thru(a)}return function(){var e=(r=arguments)[0];if(o&&1==r.length&&Za(e))return o.plant(e).value();for(var i=0,r=n?t[i].apply(this,r):e;++i<n;)r=t[i].call(this,r);return r}}))}function In(e,t,n,i,r,o,a,s,u,l){var c=128&t,d=1&t,h=2&t,f=24&t,p=512&t,v=h?H:Dn(e);return function g(){for(var m=arguments.length,_=Sr(m),y=m;y--;)_[y]=arguments[y];if(f){var b,w=Jn(g);y=_.length;for(b=0;y--;)_[y]===w&&++b}if(i&&(_=yn(_,i,r,f)),o&&(_=bn(_,o,a,f)),m-=b,f&&m<l)return w=R(_,w),Bn(e,t,In,g.placeholder,n,_,w,s,u,l-m);if(w=d?n:this,y=h?w[e]:e,m=_.length,s){b=_.length;for(var C=po(s.length,b),k=wn(_);C--;){var S=s[C];_[C]=si(S,b)?k[S]:H}}else p&&1<m&&_.reverse();return c&&u<m&&(_.length=u),this&&this!==je&&this instanceof g&&(y=v||Dn(y)),y.apply(w,_)}}function An(e,t){return function(n,i){return function(e,t,n,i){return mt(e,(function(e,r,o){t(i,n(e),r,o)})),i}(n,e,t(i),{})}}function Pn(e,t){return function(n,i){var r;if(n===H&&i===H)return t;if(n!==H&&(r=n),i!==H){if(r===H)return i;"string"==typeof n||"string"==typeof i?(n=rn(n),i=rn(i)):(n=nn(n),i=nn(i)),r=e(n,i)}return r}}function Rn(e){return Gn((function(t){return t=h(t,N(ei())),Ut((function(n){var i=this;return e(t,(function(e){return r(e,i,n)}))}))}))}function Zn(e,t){var n=(t=t===H?" ":rn(t)).length;return 2>n?n?Yt(t,e):t:(n=Yt(t,oo(e/F(t))),De.test(t)?pn(j(n),0,e).join(""):n.slice(0,e))}function Fn(e,t,n,i){var o=1&t,a=Dn(e);return function t(){for(var s=-1,u=arguments.length,l=-1,c=i.length,d=Sr(c+u),h=this&&this!==je&&this instanceof t?a:e;++l<c;)d[l]=i[l];for(;u--;)d[l++]=arguments[++s];return r(h,o?n:this,d)}}function jn(e){return function(t,n,i){i&&"number"!=typeof i&&ui(t,n,i)&&(n=i=H),t=tr(t),n===H?(n=t,t=0):n=tr(n),i=i===H?t<n?1:-1:tr(i);var r=-1;n=fo(oo((n-t)/(i||1)),0);for(var o=Sr(n);n--;)o[e?n:++r]=t,t+=i;return o}}function Hn(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=rr(t),n=rr(n)),e(t,n)}}function Bn(e,t,n,i,r,o,a,s,u,l){var c=8&t;return 4&(t=(t|(c?32:64))&~(c?64:32))||(t&=-4),r=[e,t,r,c?o:H,c?a:H,o=c?H:o,a=c?H:a,s,u,l],n=n.apply(H,r),ci(e)&&Go(n,r),n.placeholder=i,vi(n,e,t)}function zn(e){var t=Nr[e];return function(e,n){if(e=rr(e),n=null==n?0:po(nr(n),292)){var i=(ar(e)+"e").split("e");return+((i=(ar(i=t(i[0]+"e"+(+i[1]+n)))+"e").split("e"))[0]+"e"+(+i[1]-n))}return t(e)}}function Wn(e){return function(t){var n=Ko(t);return"[object Map]"==n?A(t):"[object Set]"==n?function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}(t):function(e,t){return h(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Vn(e,t,n,i,r,o,a,s){var u=2&t;if(!u&&"function"!=typeof e)throw new Or("Expected a function");var l=i?i.length:0;if(l||(t&=-97,i=r=H),a=a===H?a:fo(nr(a),0),s=s===H?s:nr(s),l-=r?r.length:0,64&t){var c=i,d=r;i=r=H}var h=u?H:Vo(e);return o=[e,t,n,i,r,c,d,o,a,s],h&&(t=(n=o[1])|(e=h[1]),i=128==e&&8==n||128==e&&256==n&&o[7].length<=h[8]||384==e&&h[7].length<=h[8]&&8==n,131>t||i)&&(1&e&&(o[2]=h[2],t|=1&n?0:4),(n=h[3])&&(i=o[3],o[3]=i?yn(i,n,h[4]):n,o[4]=i?R(o[3],"__lodash_placeholder__"):h[4]),(n=h[5])&&(i=o[5],o[5]=i?bn(i,n,h[6]):n,o[6]=i?R(o[5],"__lodash_placeholder__"):h[6]),(n=h[7])&&(o[7]=n),128&e&&(o[8]=null==o[8]?h[8]:po(o[8],h[8])),null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=t),e=o[0],t=o[1],n=o[2],i=o[3],r=o[4],!(s=o[9]=o[9]===H?u?0:e.length:fo(o[9]-l,0))&&24&t&&(t&=-25),u=t&&1!=t?8==t||16==t?Mn(e,t,s):32!=t&&33!=t||r.length?In.apply(H,o):Fn(e,t,n,i):function(e,t,n){var i=1&t,r=Dn(e);return function t(){return(this&&this!==je&&this instanceof t?r:e).apply(i?n:this,arguments)}}(e,t,n),vi((h?Ho:Go)(u,o),e,t)}function Yn(e,t,n,i){return e===H||Bi(e,Ar[n])&&!Zr.call(i,n)?t:e}function Un(e,t,n,i,r,o){return qi(e)&&qi(t)&&(o.set(t,e),Ft(e,t,H,Un,o),o.delete(t)),e}function Kn(e){return Qi(e)?H:e}function qn(e,t,n,i,r,o){var a=1&n,s=e.length;if(s!=(u=t.length)&&!(a&&u>s))return!1;if((u=o.get(e))&&o.get(t))return u==t;var u=-1,l=!0,c=2&n?new Ze:H;for(o.set(e,t),o.set(t,e);++u<s;){var d=e[u],h=t[u];if(i)var f=a?i(h,d,u,t,e,o):i(d,h,u,e,t,o);if(f!==H){if(f)continue;l=!1;break}if(c){if(!g(t,(function(e,t){if(!M(c,t)&&(d===e||r(d,e,n,i,o)))return c.push(t)}))){l=!1;break}}else if(d!==h&&!r(d,h,n,i,o)){l=!1;break}}return o.delete(e),o.delete(t),l}function Gn(e){return Qo(fi(e,H,Si),e+"")}function $n(e){return wt(e,lr,Yo)}function Qn(e){return wt(e,cr,Uo)}function Xn(e){for(var t=e.name+"",n=Lo[t],i=Zr.call(Lo,t)?n.length:0;i--;){var r=n[i],o=r.func;if(null==o||o==e)return r.name}return t}function Jn(e){return(Zr.call(n,"placeholder")?n:e).placeholder}function ei(){var e=(e=n.iteratee||_r)===_r?Ot:e;return arguments.length?e(arguments[0],arguments[1]):e}function ti(e,t){var n=e.__data__,i=typeof t;return("string"==i||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==t:null===t)?n["string"==typeof t?"string":"hash"]:n.map}function ni(e){for(var t=lr(e),n=t.length;n--;){var i=t[n],r=e[i];t[n]=[i,r,r===r&&!qi(r)]}return t}function ii(e,t){var n=null==e?H:e[t];return Tt(n)?n:H}function ri(e,t,n){for(var i=-1,r=(t=fn(t,e)).length,o=!1;++i<r;){var a=_i(t[i]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++i!=r?o:!!(r=null==e?0:e.length)&&Ki(r)&&si(a,r)&&(Za(e)||Ra(e))}function oi(e){return"function"!=typeof e.constructor||di(e)?{}:Po(qr(e))}function ai(e){return Za(e)||Ra(e)||!!(Xr&&e&&e[Xr])}function si(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&ye.test(e))&&-1<e&&0==e%1&&e<t}function ui(e,t,n){if(!qi(n))return!1;var i=typeof t;return!!("number"==i?zi(n)&&si(t,n.length):"string"==i&&t in n)&&Bi(n[t],e)}function li(e,t){if(Za(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ji(e))||te.test(e)||!ee.test(e)||null!=t&&e in Dr(t)}function ci(e){var t=Xn(e),i=n[t];return"function"==typeof i&&t in ke.prototype&&(e===i||!!(t=Vo(i))&&e===t[0])}function di(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ar)}function hi(e,t){return function(n){return null!=n&&n[e]===t&&(t!==H||e in Dr(n))}}function fi(e,t,n){return t=fo(t===H?e.length-1:t,0),function(){for(var i=arguments,o=-1,a=fo(i.length-t,0),s=Sr(a);++o<a;)s[o]=i[t+o];for(o=-1,a=Sr(t+1);++o<t;)a[o]=i[o];return a[t]=n(s),r(e,this,a)}}function pi(e,t){if("__proto__"!=t)return e[t]}function vi(e,t,n){var i=t+"";t=Qo;var r,o=bi;return n=o(r=(r=i.match(le))?r[1].split(ce):[],n),(o=n.length)&&(n[r=o-1]=(1<o?"& ":"")+n[r],n=n.join(2<o?", ":" "),i=i.replace(ue,"{\n/* [wrapped with "+n+"] */\n")),t(e,i)}function gi(e){var t=0,n=0;return function(){var i=vo(),r=16-(i-n);if(n=i,0<r){if(800<=++t)return arguments[0]}else t=0;return e.apply(H,arguments)}}function mi(e,t){var n=-1,i=(r=e.length)-1;for(t=t===H?r:t;++n<t;){var r,o=e[r=Vt(n,i)];e[r]=e[n],e[n]=o}return e.length=t,e}function _i(e){if("string"==typeof e||Ji(e))return e;var t=e+"";return"0"==t&&1/e==-B?"-0":t}function yi(e){if(null!=e){try{return Rr.call(e)}catch(e){}return e+""}return""}function bi(e,t){return a(W,(function(n){var i="_."+n[0];t&n[1]&&!c(e,i)&&e.push(i)})),e.sort()}function wi(e){if(e instanceof ke)return e.clone();var t=new S(e.__wrapped__,e.__chain__);return t.__actions__=wn(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}function Ci(e,t,n){var i=null==e?0:e.length;return i?(0>(n=null==n?0:nr(n))&&(n=fo(i+n,0)),_(e,ei(t,3),n)):-1}function ki(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=i-1;return n!==H&&(r=nr(n),r=0>n?fo(i+r,0):po(r,i-1)),_(e,ei(t,3),r,!0)}function Si(e){return null!=e&&e.length?gt(e,1):[]}function xi(e){return e&&e.length?e[0]:H}function Li(e){var t=null==e?0:e.length;return t?e[t-1]:H}function Ei(e,t){return e&&e.length&&t&&t.length?zt(e,t):e}function Ni(e){return null==e?e:_o.call(e)}function Di(e){if(!e||!e.length)return[];var t=0;return e=l(e,(function(e){if(Wi(e))return t=fo(e.length,t),!0})),E(t,(function(t){return h(e,k(t))}))}function Mi(e,t){if(!e||!e.length)return[];var n=Di(e);return null==t?n:h(n,(function(e){return r(t,H,e)}))}function Ti(e){return(e=n(e)).__chain__=!0,e}function Oi(e,t){return t(e)}function Ii(e,t){return(Za(e)?a:Ro)(e,ei(t,3))}function Ai(e,t){return(Za(e)?s:Zo)(e,ei(t,3))}function Pi(e,t){return(Za(e)?h:Pt)(e,ei(t,3))}function Ri(e,t,n){return t=n?H:t,t=e&&null==t?e.length:t,Vn(e,128,H,H,H,H,t)}function Zi(e,t){var n;if("function"!=typeof t)throw new Or("Expected a function");return e=nr(e),function(){return 0<--e&&(n=t.apply(this,arguments)),1>=e&&(t=H),n}}function Fi(e,t,n){function i(t){var n=u,i=l;return u=l=H,p=t,d=e.apply(i,n)}function r(e){var n=e-f;return e-=p,f===H||n>=t||0>n||g&&e>=c}function o(){var e=xa();if(r(e))return a(e);var n,i=$o;n=e-p,e=t-(e-f),n=g?po(e,c-n):e,h=i(o,n)}function a(e){return h=H,m&&u?i(e):(u=l=H,d)}function s(){var e=xa(),n=r(e);if(u=arguments,l=this,f=e,n){if(h===H)return p=e=f,h=$o(o,t),v?i(e):d;if(g)return h=$o(o,t),i(f)}return h===H&&(h=$o(o,t)),d}var u,l,c,d,h,f,p=0,v=!1,g=!1,m=!0;if("function"!=typeof e)throw new Or("Expected a function");return t=rr(t)||0,qi(n)&&(v=!!n.leading,c=(g="maxWait"in n)?fo(rr(n.maxWait)||0,t):c,m="trailing"in n?!!n.trailing:m),s.cancel=function(){h!==H&&zo(h),p=0,u=f=l=h=H},s.flush=function(){return h===H?d:a(xa())},s}function ji(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Or("Expected a function");var n=function n(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;return o.has(r)?o.get(r):(i=e.apply(this,i),n.cache=o.set(r,i)||o,i)};return n.cache=new(ji.Cache||Ae),n}function Hi(e){if("function"!=typeof e)throw new Or("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Bi(e,t){return e===t||e!==e&&t!==t}function zi(e){return null!=e&&Ki(e.length)&&!Yi(e)}function Wi(e){return Gi(e)&&zi(e)}function Vi(e){if(!Gi(e))return!1;var t=Ct(e);return"[object Error]"==t||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Qi(e)}function Yi(e){return!!qi(e)&&("[object Function]"==(e=Ct(e))||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e)}function Ui(e){return"number"==typeof e&&e==nr(e)}function Ki(e){return"number"==typeof e&&-1<e&&0==e%1&&9007199254740991>=e}function qi(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Gi(e){return null!=e&&"object"==typeof e}function $i(e){return"number"==typeof e||Gi(e)&&"[object Number]"==Ct(e)}function Qi(e){return!(!Gi(e)||"[object Object]"!=Ct(e))&&(null===(e=qr(e))||"function"==typeof(e=Zr.call(e,"constructor")&&e.constructor)&&e instanceof e&&Rr.call(e)==Br)}function Xi(e){return"string"==typeof e||!Za(e)&&Gi(e)&&"[object String]"==Ct(e)}function Ji(e){return"symbol"==typeof e||Gi(e)&&"[object Symbol]"==Ct(e)}function er(e){if(!e)return[];if(zi(e))return Xi(e)?j(e):wn(e);if(Jr&&e[Jr]){e=e[Jr]();for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}return("[object Map]"==(t=Ko(e))?A:"[object Set]"==t?Z:hr)(e)}function tr(e){return e?(e=rr(e))===B||e===-B?17976931348623157e292*(0>e?-1:1):e===e?e:0:0===e?e:0}function nr(e){var t=(e=tr(e))%1;return e===e?t?e-t:e:0}function ir(e){return e?ut(nr(e),0,4294967295):0}function rr(e){if("number"==typeof e)return e;if(Ji(e))return z;if(qi(e)&&(e=qi(e="function"==typeof e.valueOf?e.valueOf():e)?e+"":e),"string"!=typeof e)return 0===e?e:+e;e=e.replace(oe,"");var t=ge.test(e);return t||_e.test(e)?Re(e.slice(2),t?2:8):ve.test(e)?z:+e}function or(e){return Cn(e,cr(e))}function ar(e){return null==e?"":rn(e)}function sr(e,t,n){return(e=null==e?H:bt(e,t))===H?n:e}function ur(e,t){return null!=e&&ri(e,t,xt)}function lr(e){return zi(e)?He(e):It(e)}function cr(e){if(zi(e))e=He(e,!0);else if(qi(e)){var t,n=di(e),i=[];for(t in e)("constructor"!=t||!n&&Zr.call(e,t))&&i.push(t);e=i}else{if(t=[],null!=e)for(n in Dr(e))t.push(n);e=t}return e}function dr(e,t){if(null==e)return{};var n=h(Qn(e),(function(e){return[e]}));return t=ei(t),Bt(e,n,(function(e,n){return t(e,n[0])}))}function hr(e){return null==e?[]:D(e,lr(e))}function fr(e){return gs(ar(e).toLowerCase())}function pr(e){return(e=ar(e))&&e.replace(be,Xe).replace(Le,"")}function vr(e,t,n){return e=ar(e),(t=n?H:t)===H?Me.test(e)?e.match(Ne)||[]:e.match(de)||[]:e.match(t)||[]}function gr(e){return function(){return e}}function mr(e){return e}function _r(e){return Ot("function"==typeof e?e:lt(e,1))}function yr(e,t,n){var i=lr(t),r=yt(t,i);null!=n||qi(t)&&(r.length||!i.length)||(n=t,t=e,e=this,r=yt(t,lr(t)));var o=!(qi(n)&&"chain"in n&&!n.chain),s=Yi(e);return a(r,(function(n){var i=t[n];e[n]=i,s&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=wn(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,f([this.value()],arguments))})})),e}function br(){}function wr(e){return li(e)?k(_i(e)):function(e){return function(t){return bt(t,e)}}(e)}function Cr(){return[]}function kr(){return!1}var Sr=(t=null==t?je:tt.defaults(je.Object(),t,tt.pick(je,Te))).Array,xr=t.Date,Lr=t.Error,Er=t.Function,Nr=t.Math,Dr=t.Object,Mr=t.RegExp,Tr=t.String,Or=t.TypeError,Ir=Sr.prototype,Ar=Dr.prototype,Pr=t["__core-js_shared__"],Rr=Er.prototype.toString,Zr=Ar.hasOwnProperty,Fr=0,jr=function(){var e=/[^.]+$/.exec(Pr&&Pr.keys&&Pr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Hr=Ar.toString,Br=Rr.call(Dr),zr=je._,Wr=Mr("^"+Rr.call(Zr).replace(ie,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Vr=ze?t.Buffer:H,Yr=t.Symbol,Ur=t.Uint8Array,Kr=Vr?Vr.allocUnsafe:H,qr=P(Dr.getPrototypeOf,Dr),Gr=Dr.create,$r=Ar.propertyIsEnumerable,Qr=Ir.splice,Xr=Yr?Yr.isConcatSpreadable:H,Jr=Yr?Yr.iterator:H,eo=Yr?Yr.toStringTag:H,to=function(){try{var e=ii(Dr,"defineProperty");return e({},"",{}),e}catch(e){}}(),no=t.clearTimeout!==je.clearTimeout&&t.clearTimeout,io=xr&&xr.now!==je.Date.now&&xr.now,ro=t.setTimeout!==je.setTimeout&&t.setTimeout,oo=Nr.ceil,ao=Nr.floor,so=Dr.getOwnPropertySymbols,uo=Vr?Vr.isBuffer:H,lo=t.isFinite,co=Ir.join,ho=P(Dr.keys,Dr),fo=Nr.max,po=Nr.min,vo=xr.now,go=t.parseInt,mo=Nr.random,_o=Ir.reverse,yo=ii(t,"DataView"),bo=ii(t,"Map"),wo=ii(t,"Promise"),Co=ii(t,"Set"),ko=ii(t,"WeakMap"),So=ii(Dr,"create"),xo=ko&&new ko,Lo={},Eo=yi(yo),No=yi(bo),Do=yi(wo),Mo=yi(Co),To=yi(ko),Oo=Yr?Yr.prototype:H,Io=Oo?Oo.valueOf:H,Ao=Oo?Oo.toString:H,Po=function(){function e(){}return function(t){return qi(t)?Gr?Gr(t):(e.prototype=t,t=new e,e.prototype=H,t):{}}}();n.templateSettings={escape:Q,evaluate:X,interpolate:J,variable:"",imports:{_:n}},n.prototype=i.prototype,n.prototype.constructor=n,S.prototype=Po(i.prototype),S.prototype.constructor=S,ke.prototype=Po(i.prototype),ke.prototype.constructor=ke,Se.prototype.clear=function(){this.__data__=So?So(null):{},this.size=0},Se.prototype.delete=function(e){return e=this.has(e)&&delete this.__data__[e],this.size-=e?1:0,e},Se.prototype.get=function(e){var t=this.__data__;return So?"__lodash_hash_undefined__"===(e=t[e])?H:e:Zr.call(t,e)?t[e]:H},Se.prototype.has=function(e){var t=this.__data__;return So?t[e]!==H:Zr.call(t,e)},Se.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=So&&t===H?"__lodash_hash_undefined__":t,this},Ee.prototype.clear=function(){this.__data__=[],this.size=0},Ee.prototype.delete=function(e){var t=this.__data__;return!(0>(e=it(t,e)))&&(e==t.length-1?t.pop():Qr.call(t,e,1),--this.size,!0)},Ee.prototype.get=function(e){var t=this.__data__;return 0>(e=it(t,e))?H:t[e][1]},Ee.prototype.has=function(e){return-1<it(this.__data__,e)},Ee.prototype.set=function(e,t){var n=this.__data__,i=it(n,e);return 0>i?(++this.size,n.push([e,t])):n[i][1]=t,this},Ae.prototype.clear=function(){this.size=0,this.__data__={hash:new Se,map:new(bo||Ee),string:new Se}},Ae.prototype.delete=function(e){return e=ti(this,e).delete(e),this.size-=e?1:0,e},Ae.prototype.get=function(e){return ti(this,e).get(e)},Ae.prototype.has=function(e){return ti(this,e).has(e)},Ae.prototype.set=function(e,t){var n=ti(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},Ze.prototype.add=Ze.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Ze.prototype.has=function(e){return this.__data__.has(e)},Fe.prototype.clear=function(){this.__data__=new Ee,this.size=0},Fe.prototype.delete=function(e){var t=this.__data__;return e=t.delete(e),this.size=t.size,e},Fe.prototype.get=function(e){return this.__data__.get(e)},Fe.prototype.has=function(e){return this.__data__.has(e)},Fe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ee){var i=n.__data__;if(!bo||199>i.length)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ae(i)}return n.set(e,t),this.size=n.size,this};var Ro=xn(mt),Zo=xn(_t,!0),Fo=Ln(),jo=Ln(!0),Ho=xo?function(e,t){return xo.set(e,t),e}:mr,Bo=to?function(e,t){return to(e,"toString",{configurable:!0,enumerable:!1,value:gr(t),writable:!0})}:mr,zo=no||function(e){return je.clearTimeout(e)},Wo=Co&&1/Z(new Co([,-0]))[1]==B?function(e){return new Co(e)}:br,Vo=xo?function(e){return xo.get(e)}:br,Yo=so?function(e){return null==e?[]:(e=Dr(e),l(so(e),(function(t){return $r.call(e,t)})))}:Cr,Uo=so?function(e){for(var t=[];e;)f(t,Yo(e)),e=qr(e);return t}:Cr,Ko=Ct;(yo&&"[object DataView]"!=Ko(new yo(new ArrayBuffer(1)))||bo&&"[object Map]"!=Ko(new bo)||wo&&"[object Promise]"!=Ko(wo.resolve())||Co&&"[object Set]"!=Ko(new Co)||ko&&"[object WeakMap]"!=Ko(new ko))&&(Ko=function(e){var t=Ct(e);if(e=(e="[object Object]"==t?e.constructor:H)?yi(e):"")switch(e){case Eo:return"[object DataView]";case No:return"[object Map]";case Do:return"[object Promise]";case Mo:return"[object Set]";case To:return"[object WeakMap]"}return t});var qo=Pr?Yi:kr,Go=gi(Ho),$o=ro||function(e,t){return je.setTimeout(e,t)},Qo=gi(Bo),Xo=function(e){var t=(e=ji(e,(function(e){return 500===t.size&&t.clear(),e}))).cache;return e}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ne,(function(e,n,i,r){t.push(i?r.replace(he,"$1"):n||e)})),t})),Jo=Ut((function(e,t){return Wi(e)?ht(e,gt(t,1,Wi,!0)):[]})),ea=Ut((function(e,t){var n=Li(t);return Wi(n)&&(n=H),Wi(e)?ht(e,gt(t,1,Wi,!0),ei(n,2)):[]})),ta=Ut((function(e,t){var n=Li(t);return Wi(n)&&(n=H),Wi(e)?ht(e,gt(t,1,Wi,!0),H,n):[]})),na=Ut((function(e){var t=h(e,dn);return t.length&&t[0]===e[0]?Lt(t):[]})),ia=Ut((function(e){var t=Li(e),n=h(e,dn);return t===Li(n)?t=H:n.pop(),n.length&&n[0]===e[0]?Lt(n,ei(t,2)):[]})),ra=Ut((function(e){var t=Li(e),n=h(e,dn);return(t="function"==typeof t?t:H)&&n.pop(),n.length&&n[0]===e[0]?Lt(n,H,t):[]})),oa=Ut(Ei),aa=Gn((function(e,t){var n=null==e?0:e.length,i=st(e,t);return Wt(e,h(t,(function(e){return si(e,n)?+e:e})).sort(_n)),i})),sa=Ut((function(e){return on(gt(e,1,Wi,!0))})),ua=Ut((function(e){var t=Li(e);return Wi(t)&&(t=H),on(gt(e,1,Wi,!0),ei(t,2))})),la=Ut((function(e){var t="function"==typeof(t=Li(e))?t:H;return on(gt(e,1,Wi,!0),H,t)})),ca=Ut((function(e,t){return Wi(e)?ht(e,t):[]})),da=Ut((function(e){return ln(l(e,Wi))})),ha=Ut((function(e){var t=Li(e);return Wi(t)&&(t=H),ln(l(e,Wi),ei(t,2))})),fa=Ut((function(e){var t="function"==typeof(t=Li(e))?t:H;return ln(l(e,Wi),H,t)})),pa=Ut(Di),va=Ut((function(e){var t="function"==typeof(t=1<(t=e.length)?e[t-1]:H)?(e.pop(),t):H;return Mi(e,t)})),ga=Gn((function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,r=function(t){return st(t,e)};return!(1<t||this.__actions__.length)&&i instanceof ke&&si(n)?((i=i.slice(n,+n+(t?1:0))).__actions__.push({func:Oi,args:[r],thisArg:H}),new S(i,this.__chain__).thru((function(e){return t&&!e.length&&e.push(H),e}))):this.thru(r)})),ma=kn((function(e,t,n){Zr.call(e,n)?++e[n]:at(e,n,1)})),_a=Tn(Ci),ya=Tn(ki),ba=kn((function(e,t,n){Zr.call(e,n)?e[n].push(t):at(e,n,[t])})),wa=Ut((function(e,t,n){var i=-1,o="function"==typeof t,a=zi(e)?Sr(e.length):[];return Ro(e,(function(e){a[++i]=o?r(t,e,n):Et(e,t,n)})),a})),Ca=kn((function(e,t,n){at(e,n,t)})),ka=kn((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]})),Sa=Ut((function(e,t){if(null==e)return[];var n=t.length;return 1<n&&ui(e,t[0],t[1])?t=[]:2<n&&ui(t[0],t[1],t[2])&&(t=[t[0]]),Ht(e,gt(t,1),[])})),xa=io||function(){return je.Date.now()},La=Ut((function(e,t,n){var i=1;if(n.length){var r=R(n,Jn(La));i=32|i}return Vn(e,i,t,n,r)})),Ea=Ut((function(e,t,n){var i=3;if(n.length){var r=R(n,Jn(Ea));i=32|i}return Vn(t,i,e,n,r)})),Na=Ut((function(e,t){return dt(e,1,t)})),Da=Ut((function(e,t,n){return dt(e,rr(t)||0,n)}));ji.Cache=Ae;var Ma=Ut((function(e,t){var n=(t=1==t.length&&Za(t[0])?h(t[0],N(ei())):h(gt(t,1),N(ei()))).length;return Ut((function(i){for(var o=-1,a=po(i.length,n);++o<a;)i[o]=t[o].call(this,i[o]);return r(e,this,i)}))})),Ta=Ut((function(e,t){return Vn(e,32,H,t,R(t,Jn(Ta)))})),Oa=Ut((function(e,t){return Vn(e,64,H,t,R(t,Jn(Oa)))})),Ia=Gn((function(e,t){return Vn(e,256,H,H,H,t)})),Aa=Hn(kt),Pa=Hn((function(e,t){return e>=t})),Ra=Nt(function(){return arguments}())?Nt:function(e){return Gi(e)&&Zr.call(e,"callee")&&!$r.call(e,"callee")},Za=Sr.isArray,Fa=Ye?N(Ye):function(e){return Gi(e)&&"[object ArrayBuffer]"==Ct(e)},ja=uo||kr,Ha=Ue?N(Ue):function(e){return Gi(e)&&"[object Date]"==Ct(e)},Ba=Ke?N(Ke):function(e){return Gi(e)&&"[object Map]"==Ko(e)},za=qe?N(qe):function(e){return Gi(e)&&"[object RegExp]"==Ct(e)},Wa=Ge?N(Ge):function(e){return Gi(e)&&"[object Set]"==Ko(e)},Va=$e?N($e):function(e){return Gi(e)&&Ki(e.length)&&!!Oe[Ct(e)]},Ya=Hn(At),Ua=Hn((function(e,t){return e<=t})),Ka=Sn((function(e,t){if(di(t)||zi(t))Cn(t,lr(t),e);else for(var n in t)Zr.call(t,n)&&nt(e,n,t[n])})),qa=Sn((function(e,t){Cn(t,cr(t),e)})),Ga=Sn((function(e,t,n,i){Cn(t,cr(t),e,i)})),$a=Sn((function(e,t,n,i){Cn(t,lr(t),e,i)})),Qa=Gn(st),Xa=Ut((function(e,t){e=Dr(e);var n=-1,i=t.length;for((r=2<i?t[2]:H)&&ui(t[0],t[1],r)&&(i=1);++n<i;)for(var r,o=cr(r=t[n]),a=-1,s=o.length;++a<s;){var u=o[a],l=e[u];(l===H||Bi(l,Ar[u])&&!Zr.call(e,u))&&(e[u]=r[u])}return e})),Ja=Ut((function(e){return e.push(H,Un),r(rs,H,e)})),es=An((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Hr.call(t)),e[t]=n}),gr(mr)),ts=An((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Hr.call(t)),Zr.call(e,t)?e[t].push(n):e[t]=[n]}),ei),ns=Ut(Et),is=Sn((function(e,t,n){Ft(e,t,n)})),rs=Sn((function(e,t,n,i){Ft(e,t,n,i)})),os=Gn((function(e,t){var n={};if(null==e)return n;var i=!1;t=h(t,(function(t){return t=fn(t,e),i||(i=1<t.length),t})),Cn(e,Qn(e),n),i&&(n=lt(n,7,Kn));for(var r=t.length;r--;)an(n,t[r]);return n})),as=Gn((function(e,t){return null==e?{}:function(e,t){return Bt(e,t,(function(t,n){return ur(e,n)}))}(e,t)})),ss=Wn(lr),us=Wn(cr),ls=Nn((function(e,t,n){return t=t.toLowerCase(),e+(n?fr(t):t)})),cs=Nn((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),ds=Nn((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),hs=En("toLowerCase"),fs=Nn((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()})),ps=Nn((function(e,t,n){return e+(n?" ":"")+gs(t)})),vs=Nn((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),gs=En("toUpperCase"),ms=Ut((function(e,t){try{return r(e,H,t)}catch(r){return Vi(r)?r:new Lr(r)}})),_s=Gn((function(e,t){return a(t,(function(t){t=_i(t),at(e,t,La(e[t],e))})),e})),ys=On(),bs=On(!0),ws=Ut((function(e,t){return function(n){return Et(n,e,t)}})),Cs=Ut((function(e,t){return function(n){return Et(e,n,t)}})),ks=Rn(h),Ss=Rn(u),xs=Rn(g),Ls=jn(),Es=jn(!0),Ns=Pn((function(e,t){return e+t}),0),Ds=zn("ceil"),Ms=Pn((function(e,t){return e/t}),1),Ts=zn("floor"),Os=Pn((function(e,t){return e*t}),1),Is=zn("round"),As=Pn((function(e,t){return e-t}),0);return n.after=function(e,t){if("function"!=typeof t)throw new Or("Expected a function");return e=nr(e),function(){if(1>--e)return t.apply(this,arguments)}},n.ary=Ri,n.assign=Ka,n.assignIn=qa,n.assignInWith=Ga,n.assignWith=$a,n.at=Qa,n.before=Zi,n.bind=La,n.bindAll=_s,n.bindKey=Ea,n.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Za(e)?e:[e]},n.chain=Ti,n.chunk=function(e,t,n){if(t=(n?ui(e,t,n):t===H)?1:fo(nr(t),0),!(n=null==e?0:e.length)||1>t)return[];for(var i=0,r=0,o=Sr(oo(n/t));i<n;)o[r++]=Qt(e,i,i+=t);return o},n.compact=function(e){for(var t=-1,n=null==e?0:e.length,i=0,r=[];++t<n;){var o=e[t];o&&(r[i++]=o)}return r},n.concat=function(){var e=arguments.length;if(!e)return[];for(var t=Sr(e-1),n=arguments[0];e--;)t[e-1]=arguments[e];return f(Za(n)?wn(n):[n],gt(t,1))},n.cond=function(e){var t=null==e?0:e.length,n=ei();return e=t?h(e,(function(e){if("function"!=typeof e[1])throw new Or("Expected a function");return[n(e[0]),e[1]]})):[],Ut((function(n){for(var i=-1;++i<t;){var o=e[i];if(r(o[0],this,n))return r(o[1],this,n)}}))},n.conforms=function(e){return function(e){var t=lr(e);return function(n){return ct(n,e,t)}}(lt(e,1))},n.constant=gr,n.countBy=ma,n.create=function(e,t){var n=Po(e);return null==t?n:ot(n,t)},n.curry=function e(t,n,i){return(t=Vn(t,8,H,H,H,H,H,n=i?H:n)).placeholder=e.placeholder,t},n.curryRight=function e(t,n,i){return(t=Vn(t,16,H,H,H,H,H,n=i?H:n)).placeholder=e.placeholder,t},n.debounce=Fi,n.defaults=Xa,n.defaultsDeep=Ja,n.defer=Na,n.delay=Da,n.difference=Jo,n.differenceBy=ea,n.differenceWith=ta,n.drop=function(e,t,n){var i=null==e?0:e.length;return i?Qt(e,0>(t=n||t===H?1:nr(t))?0:t,i):[]},n.dropRight=function(e,t,n){var i=null==e?0:e.length;return i?Qt(e,0,0>(t=i-(t=n||t===H?1:nr(t)))?0:t):[]},n.dropRightWhile=function(e,t){return e&&e.length?sn(e,ei(t,3),!0,!0):[]},n.dropWhile=function(e,t){return e&&e.length?sn(e,ei(t,3),!0):[]},n.fill=function(e,t,n,i){var r=null==e?0:e.length;if(!r)return[];for(n&&"number"!=typeof n&&ui(e,t,n)&&(n=0,i=r),r=e.length,0>(n=nr(n))&&(n=-n>r?0:r+n),0>(i=i===H||i>r?r:nr(i))&&(i+=r),i=n>i?0:ir(i);n<i;)e[n++]=t;return e},n.filter=function(e,t){return(Za(e)?l:vt)(e,ei(t,3))},n.flatMap=function(e,t){return gt(Pi(e,t),1)},n.flatMapDeep=function(e,t){return gt(Pi(e,t),B)},n.flatMapDepth=function(e,t,n){return n=n===H?1:nr(n),gt(Pi(e,t),n)},n.flatten=Si,n.flattenDeep=function(e){return null!=e&&e.length?gt(e,B):[]},n.flattenDepth=function(e,t){return null!=e&&e.length?gt(e,t=t===H?1:nr(t)):[]},n.flip=function(e){return Vn(e,512)},n.flow=ys,n.flowRight=bs,n.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,i={};++t<n;){var r=e[t];i[r[0]]=r[1]}return i},n.functions=function(e){return null==e?[]:yt(e,lr(e))},n.functionsIn=function(e){return null==e?[]:yt(e,cr(e))},n.groupBy=ba,n.initial=function(e){return null!=e&&e.length?Qt(e,0,-1):[]},n.intersection=na,n.intersectionBy=ia,n.intersectionWith=ra,n.invert=es,n.invertBy=ts,n.invokeMap=wa,n.iteratee=_r,n.keyBy=Ca,n.keys=lr,n.keysIn=cr,n.map=Pi,n.mapKeys=function(e,t){var n={};return t=ei(t,3),mt(e,(function(e,i,r){at(n,t(e,i,r),e)})),n},n.mapValues=function(e,t){var n={};return t=ei(t,3),mt(e,(function(e,i,r){at(n,i,t(e,i,r))})),n},n.matches=function(e){return Rt(lt(e,1))},n.matchesProperty=function(e,t){return Zt(e,lt(t,1))},n.memoize=ji,n.merge=is,n.mergeWith=rs,n.method=ws,n.methodOf=Cs,n.mixin=yr,n.negate=Hi,n.nthArg=function(e){return e=nr(e),Ut((function(t){return jt(t,e)}))},n.omit=os,n.omitBy=function(e,t){return dr(e,Hi(ei(t)))},n.once=function(e){return Zi(2,e)},n.orderBy=function(e,t,n,i){return null==e?[]:(Za(t)||(t=null==t?[]:[t]),Za(n=i?H:n)||(n=null==n?[]:[n]),Ht(e,t,n))},n.over=ks,n.overArgs=Ma,n.overEvery=Ss,n.overSome=xs,n.partial=Ta,n.partialRight=Oa,n.partition=ka,n.pick=as,n.pickBy=dr,n.property=wr,n.propertyOf=function(e){return function(t){return null==e?H:bt(e,t)}},n.pull=oa,n.pullAll=Ei,n.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?zt(e,t,ei(n,2)):e},n.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?zt(e,t,H,n):e},n.pullAt=aa,n.range=Ls,n.rangeRight=Es,n.rearg=Ia,n.reject=function(e,t){return(Za(e)?l:vt)(e,Hi(ei(t,3)))},n.remove=function(e,t){var n=[];if(!e||!e.length)return n;var i=-1,r=[],o=e.length;for(t=ei(t,3);++i<o;){var a=e[i];t(a,i,e)&&(n.push(a),r.push(i))}return Wt(e,r),n},n.rest=function(e,t){if("function"!=typeof e)throw new Or("Expected a function");return Ut(e,t=t===H?t:nr(t))},n.reverse=Ni,n.sampleSize=function(e,t,n){return t=(n?ui(e,t,n):t===H)?1:nr(t),(Za(e)?We:qt)(e,t)},n.set=function(e,t,n){return null==e?e:Gt(e,t,n)},n.setWith=function(e,t,n,i){return i="function"==typeof i?i:H,null==e?e:Gt(e,t,n,i)},n.shuffle=function(e){return(Za(e)?Ve:$t)(e)},n.slice=function(e,t,n){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&ui(e,t,n)?(t=0,n=i):(t=null==t?0:nr(t),n=n===H?i:nr(n)),Qt(e,t,n)):[]},n.sortBy=Sa,n.sortedUniq=function(e){return e&&e.length?tn(e):[]},n.sortedUniqBy=function(e,t){return e&&e.length?tn(e,ei(t,2)):[]},n.split=function(e,t,n){return n&&"number"!=typeof n&&ui(e,t,n)&&(t=n=H),(n=n===H?4294967295:n>>>0)?(e=ar(e))&&("string"==typeof t||null!=t&&!za(t))&&(!(t=rn(t))&&De.test(e))?pn(j(e),0,n):e.split(t,n):[]},n.spread=function(e,t){if("function"!=typeof e)throw new Or("Expected a function");return t=null==t?0:fo(nr(t),0),Ut((function(n){var i=n[t];return n=pn(n,0,t),i&&f(n,i),r(e,this,n)}))},n.tail=function(e){var t=null==e?0:e.length;return t?Qt(e,1,t):[]},n.take=function(e,t,n){return e&&e.length?Qt(e,0,0>(t=n||t===H?1:nr(t))?0:t):[]},n.takeRight=function(e,t,n){var i=null==e?0:e.length;return i?Qt(e,0>(t=i-(t=n||t===H?1:nr(t)))?0:t,i):[]},n.takeRightWhile=function(e,t){return e&&e.length?sn(e,ei(t,3),!1,!0):[]},n.takeWhile=function(e,t){return e&&e.length?sn(e,ei(t,3)):[]},n.tap=function(e,t){return t(e),e},n.throttle=function(e,t,n){var i=!0,r=!0;if("function"!=typeof e)throw new Or("Expected a function");return qi(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),Fi(e,t,{leading:i,maxWait:t,trailing:r})},n.thru=Oi,n.toArray=er,n.toPairs=ss,n.toPairsIn=us,n.toPath=function(e){return Za(e)?h(e,_i):Ji(e)?[e]:wn(Xo(ar(e)))},n.toPlainObject=or,n.transform=function(e,t,n){var i=Za(e),r=i||ja(e)||Va(e);if(t=ei(t,4),null==n){var o=e&&e.constructor;n=r?i?new o:[]:qi(e)&&Yi(o)?Po(qr(e)):{}}return(r?a:mt)(e,(function(e,i,r){return t(n,e,i,r)})),n},n.unary=function(e){return Ri(e,1)},n.union=sa,n.unionBy=ua,n.unionWith=la,n.uniq=function(e){return e&&e.length?on(e):[]},n.uniqBy=function(e,t){return e&&e.length?on(e,ei(t,2)):[]},n.uniqWith=function(e,t){return t="function"==typeof t?t:H,e&&e.length?on(e,H,t):[]},n.unset=function(e,t){return null==e||an(e,t)},n.unzip=Di,n.unzipWith=Mi,n.update=function(e,t,n){return null!=e&&(e=Gt(e,t,(n=hn(n))(bt(e,t)),void 0)),e},n.updateWith=function(e,t,n,i){return i="function"==typeof i?i:H,null!=e&&(e=Gt(e,t,(n=hn(n))(bt(e,t)),i)),e},n.values=hr,n.valuesIn=function(e){return null==e?[]:D(e,cr(e))},n.without=ca,n.words=vr,n.wrap=function(e,t){return Ta(hn(t),e)},n.xor=da,n.xorBy=ha,n.xorWith=fa,n.zip=pa,n.zipObject=function(e,t){return cn(e||[],t||[],nt)},n.zipObjectDeep=function(e,t){return cn(e||[],t||[],Gt)},n.zipWith=va,n.entries=ss,n.entriesIn=us,n.extend=qa,n.extendWith=Ga,yr(n,n),n.add=Ns,n.attempt=ms,n.camelCase=ls,n.capitalize=fr,n.ceil=Ds,n.clamp=function(e,t,n){return n===H&&(n=t,t=H),n!==H&&(n=(n=rr(n))===n?n:0),t!==H&&(t=(t=rr(t))===t?t:0),ut(rr(e),t,n)},n.clone=function(e){return lt(e,4)},n.cloneDeep=function(e){return lt(e,5)},n.cloneDeepWith=function(e,t){return lt(e,5,t="function"==typeof t?t:H)},n.cloneWith=function(e,t){return lt(e,4,t="function"==typeof t?t:H)},n.conformsTo=function(e,t){return null==t||ct(e,t,lr(t))},n.deburr=pr,n.defaultTo=function(e,t){return null==e||e!==e?t:e},n.divide=Ms,n.endsWith=function(e,t,n){e=ar(e),t=rn(t);var i=e.length;i=n=n===H?i:ut(nr(n),0,i);return 0<=(n-=t.length)&&e.slice(n,i)==t},n.eq=Bi,n.escape=function(e){return(e=ar(e))&&$.test(e)?e.replace(q,Je):e},n.escapeRegExp=function(e){return(e=ar(e))&&re.test(e)?e.replace(ie,"\\$&"):e},n.every=function(e,t,n){var i=Za(e)?u:ft;return n&&ui(e,t,n)&&(t=H),i(e,ei(t,3))},n.find=_a,n.findIndex=Ci,n.findKey=function(e,t){return m(e,ei(t,3),mt)},n.findLast=ya,n.findLastIndex=ki,n.findLastKey=function(e,t){return m(e,ei(t,3),_t)},n.floor=Ts,n.forEach=Ii,n.forEachRight=Ai,n.forIn=function(e,t){return null==e?e:Fo(e,ei(t,3),cr)},n.forInRight=function(e,t){return null==e?e:jo(e,ei(t,3),cr)},n.forOwn=function(e,t){return e&&mt(e,ei(t,3))},n.forOwnRight=function(e,t){return e&&_t(e,ei(t,3))},n.get=sr,n.gt=Aa,n.gte=Pa,n.has=function(e,t){return null!=e&&ri(e,t,St)},n.hasIn=ur,n.head=xi,n.identity=mr,n.includes=function(e,t,n,i){return e=zi(e)?e:hr(e),n=n&&!i?nr(n):0,i=e.length,0>n&&(n=fo(i+n,0)),Xi(e)?n<=i&&-1<e.indexOf(t,n):!!i&&-1<y(e,t,n)},n.indexOf=function(e,t,n){var i=null==e?0:e.length;return i?(0>(n=null==n?0:nr(n))&&(n=fo(i+n,0)),y(e,t,n)):-1},n.inRange=function(e,t,n){return t=tr(t),n===H?(n=t,t=0):n=tr(n),(e=rr(e))>=po(t,n)&&e<fo(t,n)},n.invoke=ns,n.isArguments=Ra,n.isArray=Za,n.isArrayBuffer=Fa,n.isArrayLike=zi,n.isArrayLikeObject=Wi,n.isBoolean=function(e){return!0===e||!1===e||Gi(e)&&"[object Boolean]"==Ct(e)},n.isBuffer=ja,n.isDate=Ha,n.isElement=function(e){return Gi(e)&&1===e.nodeType&&!Qi(e)},n.isEmpty=function(e){if(null==e)return!0;if(zi(e)&&(Za(e)||"string"==typeof e||"function"==typeof e.splice||ja(e)||Va(e)||Ra(e)))return!e.length;var t=Ko(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(di(e))return!It(e).length;for(var n in e)if(Zr.call(e,n))return!1;return!0},n.isEqual=function(e,t){return Dt(e,t)},n.isEqualWith=function(e,t,n){var i=(n="function"==typeof n?n:H)?n(e,t):H;return i===H?Dt(e,t,H,n):!!i},n.isError=Vi,n.isFinite=function(e){return"number"==typeof e&&lo(e)},n.isFunction=Yi,n.isInteger=Ui,n.isLength=Ki,n.isMap=Ba,n.isMatch=function(e,t){return e===t||Mt(e,t,ni(t))},n.isMatchWith=function(e,t,n){return n="function"==typeof n?n:H,Mt(e,t,ni(t),n)},n.isNaN=function(e){return $i(e)&&e!=+e},n.isNative=function(e){if(qo(e))throw new Lr("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Tt(e)},n.isNil=function(e){return null==e},n.isNull=function(e){return null===e},n.isNumber=$i,n.isObject=qi,n.isObjectLike=Gi,n.isPlainObject=Qi,n.isRegExp=za,n.isSafeInteger=function(e){return Ui(e)&&-9007199254740991<=e&&9007199254740991>=e},n.isSet=Wa,n.isString=Xi,n.isSymbol=Ji,n.isTypedArray=Va,n.isUndefined=function(e){return e===H},n.isWeakMap=function(e){return Gi(e)&&"[object WeakMap]"==Ko(e)},n.isWeakSet=function(e){return Gi(e)&&"[object WeakSet]"==Ct(e)},n.join=function(e,t){return null==e?"":co.call(e,t)},n.kebabCase=cs,n.last=Li,n.lastIndexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=i;if(n!==H&&(r=0>(r=nr(n))?fo(i+r,0):po(r,i-1)),t===t)e:{for(n=r+1;n--;)if(e[n]===t){e=n;break e}e=n}else e=_(e,w,r,!0);return e},n.lowerCase=ds,n.lowerFirst=hs,n.lt=Ya,n.lte=Ua,n.max=function(e){return e&&e.length?pt(e,mr,kt):H},n.maxBy=function(e,t){return e&&e.length?pt(e,ei(t,2),kt):H},n.mean=function(e){return C(e,mr)},n.meanBy=function(e,t){return C(e,ei(t,2))},n.min=function(e){return e&&e.length?pt(e,mr,At):H},n.minBy=function(e,t){return e&&e.length?pt(e,ei(t,2),At):H},n.stubArray=Cr,n.stubFalse=kr,n.stubObject=function(){return{}},n.stubString=function(){return""},n.stubTrue=function(){return!0},n.multiply=Os,n.nth=function(e,t){return e&&e.length?jt(e,nr(t)):H},n.noConflict=function(){return je._===this&&(je._=zr),this},n.noop=br,n.now=xa,n.pad=function(e,t,n){e=ar(e);var i=(t=nr(t))?F(e):0;return!t||i>=t?e:Zn(ao(t=(t-i)/2),n)+e+Zn(oo(t),n)},n.padEnd=function(e,t,n){e=ar(e);var i=(t=nr(t))?F(e):0;return t&&i<t?e+Zn(t-i,n):e},n.padStart=function(e,t,n){e=ar(e);var i=(t=nr(t))?F(e):0;return t&&i<t?Zn(t-i,n)+e:e},n.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),go(ar(e).replace(ae,""),t||0)},n.random=function(e,t,n){if(n&&"boolean"!=typeof n&&ui(e,t,n)&&(t=n=H),n===H&&("boolean"==typeof t?(n=t,t=H):"boolean"==typeof e&&(n=e,e=H)),e===H&&t===H?(e=0,t=1):(e=tr(e),t===H?(t=e,e=0):t=tr(t)),e>t){var i=e;e=t,t=i}return n||e%1||t%1?(n=mo(),po(e+n*(t-e+Pe("1e-"+((n+"").length-1))),t)):Vt(e,t)},n.reduce=function(e,t,n){var i=Za(e)?p:x,r=3>arguments.length;return i(e,ei(t,4),n,r,Ro)},n.reduceRight=function(e,t,n){var i=Za(e)?v:x,r=3>arguments.length;return i(e,ei(t,4),n,r,Zo)},n.repeat=function(e,t,n){return t=(n?ui(e,t,n):t===H)?1:nr(t),Yt(ar(e),t)},n.replace=function(){var e=arguments,t=ar(e[0]);return 3>e.length?t:t.replace(e[1],e[2])},n.result=function(e,t,n){var i=-1,r=(t=fn(t,e)).length;for(r||(r=1,e=H);++i<r;){var o=null==e?H:e[_i(t[i])];o===H&&(i=r,o=n),e=Yi(o)?o.call(e):o}return e},n.round=Is,n.runInContext=e,n.sample=function(e){return(Za(e)?Be:Kt)(e)},n.size=function(e){if(null==e)return 0;if(zi(e))return Xi(e)?F(e):e.length;var t=Ko(e);return"[object Map]"==t||"[object Set]"==t?e.size:It(e).length},n.snakeCase=fs,n.some=function(e,t,n){var i=Za(e)?g:Xt;return n&&ui(e,t,n)&&(t=H),i(e,ei(t,3))},n.sortedIndex=function(e,t){return Jt(e,t)},n.sortedIndexBy=function(e,t,n){return en(e,t,ei(n,2))},n.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var i=Jt(e,t);if(i<n&&Bi(e[i],t))return i}return-1},n.sortedLastIndex=function(e,t){return Jt(e,t,!0)},n.sortedLastIndexBy=function(e,t,n){return en(e,t,ei(n,2),!0)},n.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var n=Jt(e,t,!0)-1;if(Bi(e[n],t))return n}return-1},n.startCase=ps,n.startsWith=function(e,t,n){return e=ar(e),n=null==n?0:ut(nr(n),0,e.length),t=rn(t),e.slice(n,n+t.length)==t},n.subtract=As,n.sum=function(e){return e&&e.length?L(e,mr):0},n.sumBy=function(e,t){return e&&e.length?L(e,ei(t,2)):0},n.template=function(e,t,i){var r=n.templateSettings;i&&ui(e,t,i)&&(t=H),e=ar(e),t=Ga({},t,r,Yn);var o,a,s=lr(i=Ga({},t.imports,r.imports,Yn)),u=D(i,s),l=0;i=t.interpolate||we;var c="__p+='";i=Mr((t.escape||we).source+"|"+i.source+"|"+(i===J?fe:we).source+"|"+(t.evaluate||we).source+"|$","g");var d="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(e.replace(i,(function(t,n,i,r,s,u){return i||(i=r),c+=e.slice(l,u).replace(Ce,I),n&&(o=!0,c+="'+__e("+n+")+'"),s&&(a=!0,c+="';"+s+";\n__p+='"),i&&(c+="'+((__t=("+i+"))==null?'':__t)+'"),l=u+t.length,t})),c+="';",(t=t.variable)||(c="with(obj){"+c+"}"),c=(a?c.replace(V,""):c).replace(Y,"$1").replace(U,"$1;"),c="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(o?",__e=_.escape":"")+(a?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}",(t=ms((function(){return Er(s,d+"return "+c).apply(H,u)}))).source=c,Vi(t))throw t;return t},n.times=function(e,t){if(1>(e=nr(e))||9007199254740991<e)return[];var n=4294967295,i=po(e,4294967295);for(e-=4294967295,i=E(i,t=ei(t));++n<e;)t(n);return i},n.toFinite=tr,n.toInteger=nr,n.toLength=ir,n.toLower=function(e){return ar(e).toLowerCase()},n.toNumber=rr,n.toSafeInteger=function(e){return e?ut(nr(e),-9007199254740991,9007199254740991):0===e?e:0},n.toString=ar,n.toUpper=function(e){return ar(e).toUpperCase()},n.trim=function(e,t,n){return(e=ar(e))&&(n||t===H)?e.replace(oe,""):e&&(t=rn(t))?pn(e=j(e),t=T(e,n=j(t)),n=O(e,n)+1).join(""):e},n.trimEnd=function(e,t,n){return(e=ar(e))&&(n||t===H)?e.replace(se,""):e&&(t=rn(t))?pn(e=j(e),0,t=O(e,j(t))+1).join(""):e},n.trimStart=function(e,t,n){return(e=ar(e))&&(n||t===H)?e.replace(ae,""):e&&(t=rn(t))?pn(e=j(e),t=T(e,j(t))).join(""):e},n.truncate=function(e,t){var n=30,i="...";if(qi(t)){var r="separator"in t?t.separator:r;n="length"in t?nr(t.length):n,i="omission"in t?rn(t.omission):i}var o=(e=ar(e)).length;if(De.test(e)){var a=j(e);o=a.length}if(n>=o)return e;if(1>(o=n-F(i)))return i;if(n=a?pn(a,0,o).join(""):e.slice(0,o),r===H)return n+i;if(a&&(o+=n.length-o),za(r)){if(e.slice(o).search(r)){var s=n;for(r.global||(r=Mr(r.source,ar(pe.exec(r))+"g")),r.lastIndex=0;a=r.exec(s);)var u=a.index;n=n.slice(0,u===H?o:u)}}else e.indexOf(rn(r),o)!=o&&(-1<(r=n.lastIndexOf(r))&&(n=n.slice(0,r)));return n+i},n.unescape=function(e){return(e=ar(e))&&G.test(e)?e.replace(K,et):e},n.uniqueId=function(e){var t=++Fr;return ar(e)+t},n.upperCase=vs,n.upperFirst=gs,n.each=Ii,n.eachRight=Ai,n.first=xi,yr(n,function(){var e={};return mt(n,(function(t,i){Zr.call(n.prototype,i)||(e[i]=t)})),e}(),{chain:!1}),n.VERSION="4.17.11",a("bind bindKey curry curryRight partial partialRight".split(" "),(function(e){n[e].placeholder=n})),a(["drop","take"],(function(e,t){ke.prototype[e]=function(n){n=n===H?1:fo(nr(n),0);var i=this.__filtered__&&!t?new ke(this):this.clone();return i.__filtered__?i.__takeCount__=po(n,i.__takeCount__):i.__views__.push({size:po(n,4294967295),type:e+(0>i.__dir__?"Right":"")}),i},ke.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),a(["filter","map","takeWhile"],(function(e,t){var n=t+1,i=1==n||3==n;ke.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ei(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}})),a(["head","last"],(function(e,t){var n="take"+(t?"Right":"");ke.prototype[e]=function(){return this[n](1).value()[0]}})),a(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");ke.prototype[e]=function(){return this.__filtered__?new ke(this):this[n](1)}})),ke.prototype.compact=function(){return this.filter(mr)},ke.prototype.find=function(e){return this.filter(e).head()},ke.prototype.findLast=function(e){return this.reverse().find(e)},ke.prototype.invokeMap=Ut((function(e,t){return"function"==typeof e?new ke(this):this.map((function(n){return Et(n,e,t)}))})),ke.prototype.reject=function(e){return this.filter(Hi(ei(e)))},ke.prototype.slice=function(e,t){e=nr(e);var n=this;return n.__filtered__&&(0<e||0>t)?new ke(n):(0>e?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==H&&(n=0>(t=nr(t))?n.dropRight(-t):n.take(t-e)),n)},ke.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},ke.prototype.toArray=function(){return this.take(4294967295)},mt(ke.prototype,(function(e,t){var i=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),o=n[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);o&&(n.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,u=s[0],l=(p=t instanceof ke)||Za(t),c=function(e){return e=o.apply(n,f([e],s)),r&&d?e[0]:e};l&&i&&"function"==typeof u&&1!=u.length&&(p=l=!1);var d=this.__chain__,h=!!this.__actions__.length,p=(u=a&&!d,p&&!h);return!a&&l?(t=p?t:new ke(this),(t=e.apply(t,s)).__actions__.push({func:Oi,args:[c],thisArg:H}),new S(t,d)):u&&p?e.apply(this,s):(t=this.thru(c),u?r?t.value()[0]:t.value():t)})})),a("pop push shift sort splice unshift".split(" "),(function(e){var t=Ir[e],i=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);n.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var n=this.value();return t.apply(Za(n)?n:[],e)}return this[i]((function(n){return t.apply(Za(n)?n:[],e)}))}})),mt(ke.prototype,(function(e,t){var i=n[t];if(i){var r=i.name+"";(Lo[r]||(Lo[r]=[])).push({name:t,func:i})}})),Lo[In(H,2).name]=[{name:"wrapper",func:H}],ke.prototype.clone=function(){var e=new ke(this.__wrapped__);return e.__actions__=wn(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=wn(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=wn(this.__views__),e},ke.prototype.reverse=function(){if(this.__filtered__){var e=new ke(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},ke.prototype.value=function(){var e,t=this.__wrapped__.value(),n=this.__dir__,i=Za(t),r=0>n,o=i?t.length:0;e=0;for(var a=o,s=this.__views__,u=-1,l=s.length;++u<l;){var c=s[u],d=c.size;switch(c.type){case"drop":e+=d;break;case"dropRight":a-=d;break;case"take":a=po(a,e+d);break;case"takeRight":e=fo(e,a-d)}}if(a=(e={start:e,end:a}).start,e=(s=e.end)-a,a=r?s:a-1,u=(s=this.__iteratees__).length,l=0,c=po(e,this.__takeCount__),!i||!r&&o==e&&c==e)return un(t,this.__actions__);i=[];e:for(;e--&&l<c;){for(r=-1,o=t[a+=n];++r<u;){d=(h=s[r]).type;var h=(0,h.iteratee)(o);if(2==d)o=h;else if(!h){if(1==d)continue e;break e}}i[l++]=o}return i},n.prototype.at=ga,n.prototype.chain=function(){return Ti(this)},n.prototype.commit=function(){return new S(this.value(),this.__chain__)},n.prototype.next=function(){this.__values__===H&&(this.__values__=er(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?H:this.__values__[this.__index__++]}},n.prototype.plant=function(e){for(var t,n=this;n instanceof i;){var r=wi(n);r.__index__=0,r.__values__=H,t?o.__wrapped__=r:t=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,t},n.prototype.reverse=function(){var e=this.__wrapped__;return e instanceof ke?(this.__actions__.length&&(e=new ke(this)),(e=e.reverse()).__actions__.push({func:Oi,args:[Ni],thisArg:H}),new S(e,this.__chain__)):this.thru(Ni)},n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=function(){return un(this.__wrapped__,this.__actions__)},n.prototype.first=n.prototype.head,Jr&&(n.prototype[Jr]=function(){return this}),n}();je._=tt,void 0===(i=function(){return tt}.call(t,n,t,e))||(e.exports=i)}.call(this)},95130:function(e,t,n){var i=n(50042),r="Expected a function";function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(r);var n=function n(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(o.Cache||i),n}o.Cache=i,e.exports=o},4395:function(e){e.exports=function(){}},66589:function(e,t,n){var i=n(79746),r=n(60301),o=n(88343),a=n(33576),s=n(77516),u=n(1594),l=n(95057),c=n(73561),d=l((function(e,t){var n={};if(null==e)return n;var l=!1;t=i(t,(function(t){return t=a(t,e),l||(l=t.length>1),t})),s(e,c(e),n),l&&(n=r(n,7,u));for(var d=t.length;d--;)o(n,t[d]);return n}));e.exports=d},44149:function(e,t,n){var i=n(95391),r=n(35087),o=n(24445),a=n(55852);e.exports=function(e){return o(e)?i(a(e)):r(e)}},95810:function(e,t,n){var i=n(56541),r=n(95057),o=r((function(e,t){return i(e,256,void 0,void 0,void 0,t)}));e.exports=o},59537:function(e,t,n){var i=n(32559);e.exports=function(e,t,n){return null==e?e:i(e,t,n)}},39769:function(e,t,n){var i=n(31368),r=n(33457),o=n(52850),a=n(59072),s=o((function(e,t){if(null==e)return[];var n=t.length;return n>1&&a(e,t[0],t[1])?t=[]:n>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),r(e,i(t,1),[])}));e.exports=s},8304:function(e){e.exports=function(){return[]}},54666:function(e){e.exports=function(){return!1}},46675:function(e,t,n){var i=n(42416),r=1/0,o=17976931348623157e292;e.exports=function(e){return e?(e=i(e))===r||e===-r?(e<0?-1:1)*o:e===e?e:0:0===e?e:0}},33061:function(e,t,n){var i=n(46675);e.exports=function(e){var t=i(e),n=t%1;return t===t?n?t-n:t:0}},42416:function(e,t,n){var i=n(13108),r=n(89718),o=NaN,a=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(r(e))return o;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(a,"");var n=u.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):s.test(e)?o:+e}},24216:function(e,t,n){var i=n(79746),r=n(91342),o=n(39262),a=n(89718),s=n(34786),u=n(55852),l=n(20403);e.exports=function(e){return o(e)?i(e,u):a(e)?[e]:r(s(l(e)))}},20403:function(e,t,n){var i=n(24714);e.exports=function(e){return null==e?"":i(e)}},50675:function(e,t,n){var i=n(19829),r=n(73911);e.exports=function(e,t){return e&&e.length?r(e,i(t,2)):[]}},83440:function(e,t,n){var i=n(82966),r=n(88936),o=n(39243),a=n(39262),s=n(71983),u=n(94426),l=Object.prototype.hasOwnProperty;function c(e){if(s(e)&&!a(e)&&!(e instanceof i)){if(e instanceof r)return e;if(l.call(e,"__wrapped__"))return u(e)}return new r(e)}c.prototype=o.prototype,c.prototype.constructor=c,e.exports=c},43911:function(e){"use strict";e.exports=function(e){for(var t=function(e){var t,n=1+(e.length+8>>6),i=new Array(16*n);for(t=0;t<16*n;t++)i[t]=0;for(t=0;t<e.length;t++)i[t>>2]|=e.charCodeAt(t)<<(8*e.length+t)%4*8;i[t>>2]|=128<<(8*e.length+t)%4*8;var r=8*e.length;return i[16*n-2]=255&r,i[16*n-2]|=(r>>>8&255)<<8,i[16*n-2]|=(r>>>16&255)<<16,i[16*n-2]|=(r>>>24&255)<<24,i}(e),n=1732584193,i=-271733879,r=-1732584194,s=271733878,h=0;h<t.length;h+=16){var f=n,p=i,v=r,g=s;n=u(n,i,r,s,t[h+0],7,-680876936),s=u(s,n,i,r,t[h+1],12,-389564586),r=u(r,s,n,i,t[h+2],17,606105819),i=u(i,r,s,n,t[h+3],22,-1044525330),n=u(n,i,r,s,t[h+4],7,-176418897),s=u(s,n,i,r,t[h+5],12,1200080426),r=u(r,s,n,i,t[h+6],17,-1473231341),i=u(i,r,s,n,t[h+7],22,-45705983),n=u(n,i,r,s,t[h+8],7,1770035416),s=u(s,n,i,r,t[h+9],12,-1958414417),r=u(r,s,n,i,t[h+10],17,-42063),i=u(i,r,s,n,t[h+11],22,-1990404162),n=u(n,i,r,s,t[h+12],7,1804603682),s=u(s,n,i,r,t[h+13],12,-40341101),r=u(r,s,n,i,t[h+14],17,-1502002290),n=l(n,i=u(i,r,s,n,t[h+15],22,1236535329),r,s,t[h+1],5,-165796510),s=l(s,n,i,r,t[h+6],9,-1069501632),r=l(r,s,n,i,t[h+11],14,643717713),i=l(i,r,s,n,t[h+0],20,-373897302),n=l(n,i,r,s,t[h+5],5,-701558691),s=l(s,n,i,r,t[h+10],9,38016083),r=l(r,s,n,i,t[h+15],14,-660478335),i=l(i,r,s,n,t[h+4],20,-405537848),n=l(n,i,r,s,t[h+9],5,568446438),s=l(s,n,i,r,t[h+14],9,-1019803690),r=l(r,s,n,i,t[h+3],14,-187363961),i=l(i,r,s,n,t[h+8],20,1163531501),n=l(n,i,r,s,t[h+13],5,-1444681467),s=l(s,n,i,r,t[h+2],9,-51403784),r=l(r,s,n,i,t[h+7],14,1735328473),n=c(n,i=l(i,r,s,n,t[h+12],20,-1926607734),r,s,t[h+5],4,-378558),s=c(s,n,i,r,t[h+8],11,-2022574463),r=c(r,s,n,i,t[h+11],16,1839030562),i=c(i,r,s,n,t[h+14],23,-35309556),n=c(n,i,r,s,t[h+1],4,-1530992060),s=c(s,n,i,r,t[h+4],11,1272893353),r=c(r,s,n,i,t[h+7],16,-155497632),i=c(i,r,s,n,t[h+10],23,-1094730640),n=c(n,i,r,s,t[h+13],4,681279174),s=c(s,n,i,r,t[h+0],11,-358537222),r=c(r,s,n,i,t[h+3],16,-722521979),i=c(i,r,s,n,t[h+6],23,76029189),n=c(n,i,r,s,t[h+9],4,-640364487),s=c(s,n,i,r,t[h+12],11,-421815835),r=c(r,s,n,i,t[h+15],16,530742520),n=d(n,i=c(i,r,s,n,t[h+2],23,-995338651),r,s,t[h+0],6,-198630844),s=d(s,n,i,r,t[h+7],10,1126891415),r=d(r,s,n,i,t[h+14],15,-1416354905),i=d(i,r,s,n,t[h+5],21,-57434055),n=d(n,i,r,s,t[h+12],6,1700485571),s=d(s,n,i,r,t[h+3],10,-1894986606),r=d(r,s,n,i,t[h+10],15,-1051523),i=d(i,r,s,n,t[h+1],21,-2054922799),n=d(n,i,r,s,t[h+8],6,1873313359),s=d(s,n,i,r,t[h+15],10,-30611744),r=d(r,s,n,i,t[h+6],15,-1560198380),i=d(i,r,s,n,t[h+13],21,1309151649),n=d(n,i,r,s,t[h+4],6,-145523070),s=d(s,n,i,r,t[h+11],10,-1120210379),r=d(r,s,n,i,t[h+2],15,718787259),i=d(i,r,s,n,t[h+9],21,-343485551),n=o(n,f),i=o(i,p),r=o(r,v),s=o(s,g)}return a(n)+a(i)+a(r)+a(s)};var t="0123456789abcdef";function n(e,t){return(e>>>1|t>>>1)<<1|(1&e|1&t)}function i(e,t){return(e>>>1^t>>>1)<<1|1&e^1&t}function r(e,t){return(e>>>1&t>>>1)<<1|1&e&t}function o(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function a(e){var n,i="";for(n=0;n<=3;n++)i+=t.charAt(e>>8*n+4&15)+t.charAt(e>>8*n&15);return i}function s(e,t,n,i,r,a){return o((s=o(o(t,e),o(i,a)))<<(u=r)|s>>>32-u,n);var s,u}function u(e,t,i,o,a,u,l){return s(n(r(t,i),r(~t,o)),e,t,a,u,l)}function l(e,t,i,o,a,u,l){return s(n(r(t,o),r(i,~o)),e,t,a,u,l)}function c(e,t,n,r,o,a,u){return s(i(i(t,n),r),e,t,o,a,u)}function d(e,t,r,o,a,u,l){return s(i(r,n(t,~o)),e,t,a,u,l)}},84539:function(e,t,n){"use strict";n.d(t,{$W:function(){return b},Dt:function(){return y},G6:function(){return g},MG:function(){return m},Pf:function(){return p},WP:function(){return u},fX:function(){return l},i7:function(){return v},ie:function(){return c},mX:function(){return d},px:function(){return s},vU:function(){return f},zc:function(){return _}});var i=n(15671),r=n(43144),o=n(11732),a=function(){function e(){(0,i.Z)(this,e),this._zoomLevel=0,this._lastZoomLevelChangeTime=0,this._onDidChangeZoomLevel=new o.Q5,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this._zoomFactor=1}return(0,r.Z)(e,[{key:"getZoomLevel",value:function(){return this._zoomLevel}},{key:"getTimeSinceLastZoomLevelChanged",value:function(){return Date.now()-this._lastZoomLevelChangeTime}},{key:"getZoomFactor",value:function(){return this._zoomFactor}},{key:"getPixelRatio",value:function(){var e=document.createElement("canvas").getContext("2d");return(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)}}]),e}();function s(){return a.INSTANCE.getZoomLevel()}function u(){return a.INSTANCE.getTimeSinceLastZoomLevelChanged()}function l(e){return a.INSTANCE.onDidChangeZoomLevel(e)}function c(){return a.INSTANCE.getZoomFactor()}function d(){return a.INSTANCE.getPixelRatio()}a.INSTANCE=new a;var h=navigator.userAgent,f=h.indexOf("Firefox")>=0,p=h.indexOf("AppleWebKit")>=0,v=h.indexOf("Chrome")>=0,g=!v&&h.indexOf("Safari")>=0,m=!v&&!g&&p,_=h.indexOf("iPad")>=0||g&&navigator.maxTouchPoints>0,y=h.indexOf("Android")>=0,b=window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches},32721:function(e,t,n){"use strict";n.d(t,{D:function(){return o}});var i=n(84539),r=n(30487),o={clipboard:{writeText:r.tY||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:r.tY||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:r.tY||i.$W?0:navigator.keyboard||i.G6?1:2,touch:"ontouchstart"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0,pointerEvents:window.PointerEvent&&("ontouchstart"in window||window.navigator.maxTouchPoints>0||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0)}},53042:function(e,t,n){"use strict";n.d(t,{P$:function(){return s},TN:function(){return a},go:function(){return o}});var i=n(15671),r=n(43144),o={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:"text/plain"},a=function(){function e(t){(0,i.Z)(this,e),this.data=t}return(0,r.Z)(e,[{key:"update",value:function(){}},{key:"getData",value:function(){return this.data}}]),e}(),s={CurrentDragAndDropData:void 0}},84540:function(e,t,n){"use strict";n.r(t),n.d(t,{$:function(){return we},Dimension:function(){return z},EventHelper:function(){return de},EventType:function(){return ce},ModifierKeyEmitter:function(){return Me},Namespace:function(){return _e},StandardWindow:function(){return U},addDisposableGenericMouseDownListner:function(){return E},addDisposableGenericMouseUpListner:function(){return N},addDisposableListener:function(){return k},addDisposableNonBubblingMouseOutListener:function(){return D},addDisposableNonBubblingPointerOutListener:function(){return M},addDisposableThrottledListener:function(){return F},addMatchMediaChangeListener:function(){return Te},addStandardDisposableGenericMouseDownListner:function(){return L},addStandardDisposableListener:function(){return x},animate:function(){return Ee},append:function(){return ge},asCSSPropertyValue:function(){return De},asCSSUrl:function(){return Ne},clearNode:function(){return b},computeScreenAwareSize:function(){return xe},createCSSRule:function(){return se},createStyleSheet:function(){return re},findParentWithClass:function(){return X},getActiveElement:function(){return ie},getClientArea:function(){return H},getComputedStyle:function(){return j},getContentHeight:function(){return G},getContentWidth:function(){return q},getDomNodePagePosition:function(){return Y},getElementsByTagName:function(){return Se},getShadowRoot:function(){return ne},getTopLeftOffset:function(){return W},getTotalHeight:function(){return $},getTotalWidth:function(){return K},hasParentWithClass:function(){return J},hide:function(){return ke},isAncestor:function(){return Q},isHTMLElement:function(){return le},isInDOM:function(){return w},isInShadowDOM:function(){return te},isShadowRoot:function(){return ee},removeCSSRulesContainingSelector:function(){return ue},reset:function(){return me},restoreParentsScrollTop:function(){return fe},runAtThisOrScheduleAtNextAnimationFrame:function(){return T},saveParentsScrollTop:function(){return he},scheduleAtNextAnimationFrame:function(){return O},show:function(){return Ce},size:function(){return V},trackFocus:function(){return ve},windowOpenNoOpener:function(){return Le}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(84539),c=n(61680),d=n(31737),h=n(55076),f=n(27997),p=n(8729),v=n(11732),g=n(81626),m=n(30487),_=n(55585),y=n(32721);function b(e){for(;e.firstChild;)e.firstChild.remove()}function w(e){var t;return null!==(t=null===e||void 0===e?void 0:e.isConnected)&&void 0!==t&&t}var C=function(){function e(t,n,i,r){(0,s.Z)(this,e),this._node=t,this._type=n,this._handler=i,this._options=r||!1,this._node.addEventListener(this._type,this._handler,this._options)}return(0,u.Z)(e,[{key:"dispose",value:function(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}]),e}();function k(e,t,n,i){return new C(e,t,n,i)}function S(e){return function(t){return e(new h.n(t))}}var x=function(e,t,n,i){var r=n;return"click"===t||"mousedown"===t?r=S(n):"keydown"!==t&&"keypress"!==t&&"keyup"!==t||(r=function(e){return function(t){return e(new d.y(t))}}(n)),k(e,t,r,i)},L=function(e,t,n){return E(e,S(t),n)};function E(e,t,n){return k(e,m.gn&&y.D.pointerEvents?ce.POINTER_DOWN:ce.MOUSE_DOWN,t,n)}function N(e,t,n){return k(e,m.gn&&y.D.pointerEvents?ce.POINTER_UP:ce.MOUSE_UP,t,n)}function D(e,t){return k(e,"mouseout",(function(n){for(var i=n.relatedTarget;i&&i!==e;)i=i.parentNode;i!==e&&t(n)}))}function M(e,t){return k(e,"pointerout",(function(n){for(var i=n.relatedTarget;i&&i!==e;)i=i.parentNode;i!==e&&t(n)}))}var T,O,I=null;var A=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;(0,s.Z)(this,e),this._runner=t,this.priority=n,this._canceled=!1}return(0,u.Z)(e,[{key:"dispose",value:function(){this._canceled=!0}},{key:"execute",value:function(){if(!this._canceled)try{this._runner()}catch(e){(0,p.dL)(e)}}}],[{key:"sort",value:function(e,t){return t.priority-e.priority}}]),e}();!function(){var e=[],t=null,n=!1,i=!1,r=function(){for(n=!1,t=e,e=[],i=!0;t.length>0;){t.sort(A.sort),t.shift().execute()}i=!1};O=function(t){var i=new A(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0);return e.push(i),n||(n=!0,function(e){I||(I=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame||function(e){return setTimeout((function(){return e((new Date).getTime())}),0)});I.call(self,e)}(r)),i},T=function(e,n){if(i){var r=new A(e,n);return t.push(r),r}return O(e,n)}}();var P=8,R=function(e,t){return t},Z=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:R,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:P;(0,s.Z)(this,n),o=t.call(this);var l=null,c=0,d=o._register(new f._F),h=function(){c=(new Date).getTime(),r(l),l=null};return o._register(k(e,i,(function(e){l=a(l,e);var t=(new Date).getTime()-c;t>=u?(d.cancel(),h()):d.setIfNotSet(h,u-t)}))),o}return(0,u.Z)(n)}(g.JT);function F(e,t,n,i,r){return new Z(e,t,n,i,r)}function j(e){return document.defaultView.getComputedStyle(e,null)}function H(e){if(e!==document.body)return new z(e.clientWidth,e.clientHeight);if(m.gn&&window.visualViewport){var t=window.visualViewport.width,n=window.visualViewport.height-(l.$W?24:0);return new z(t,n)}if(window.innerWidth&&window.innerHeight)return new z(window.innerWidth,window.innerHeight);if(document.body&&document.body.clientWidth&&document.body.clientHeight)return new z(document.body.clientWidth,document.body.clientHeight);if(document.documentElement&&document.documentElement.clientWidth&&document.documentElement.clientHeight)return new z(document.documentElement.clientWidth,document.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}var B=function(){function e(){(0,s.Z)(this,e)}return(0,u.Z)(e,null,[{key:"convertToPixels",value:function(e,t){return parseFloat(t)||0}},{key:"getDimension",value:function(t,n,i){var r=j(t),o="0";return r&&(o=r.getPropertyValue?r.getPropertyValue(n):r.getAttribute(i)),e.convertToPixels(t,o)}},{key:"getBorderLeftWidth",value:function(t){return e.getDimension(t,"border-left-width","borderLeftWidth")}},{key:"getBorderRightWidth",value:function(t){return e.getDimension(t,"border-right-width","borderRightWidth")}},{key:"getBorderTopWidth",value:function(t){return e.getDimension(t,"border-top-width","borderTopWidth")}},{key:"getBorderBottomWidth",value:function(t){return e.getDimension(t,"border-bottom-width","borderBottomWidth")}},{key:"getPaddingLeft",value:function(t){return e.getDimension(t,"padding-left","paddingLeft")}},{key:"getPaddingRight",value:function(t){return e.getDimension(t,"padding-right","paddingRight")}},{key:"getPaddingTop",value:function(t){return e.getDimension(t,"padding-top","paddingTop")}},{key:"getPaddingBottom",value:function(t){return e.getDimension(t,"padding-bottom","paddingBottom")}},{key:"getMarginLeft",value:function(t){return e.getDimension(t,"margin-left","marginLeft")}},{key:"getMarginTop",value:function(t){return e.getDimension(t,"margin-top","marginTop")}},{key:"getMarginRight",value:function(t){return e.getDimension(t,"margin-right","marginRight")}},{key:"getMarginBottom",value:function(t){return e.getDimension(t,"margin-bottom","marginBottom")}}]),e}(),z=function(){function e(t,n){(0,s.Z)(this,e),this.width=t,this.height=n}return(0,u.Z)(e,[{key:"with",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.width,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.height;return t!==this.width||n!==this.height?new e(t,n):this}}],[{key:"is",value:function(e){return"object"===typeof e&&"number"===typeof e.height&&"number"===typeof e.width}},{key:"lift",value:function(t){return t instanceof e?t:new e(t.width,t.height)}},{key:"equals",value:function(e,t){return e===t||!(!e||!t)&&(e.width===t.width&&e.height===t.height)}}]),e}();function W(e){for(var t=e.offsetParent,n=e.offsetTop,i=e.offsetLeft;null!==(e=e.parentNode)&&e!==document.body&&e!==document.documentElement;){n-=e.scrollTop;var r=ee(e)?null:j(e);r&&(i-="rtl"!==r.direction?e.scrollLeft:-e.scrollLeft),e===t&&(i+=B.getBorderLeftWidth(e),n+=B.getBorderTopWidth(e),n+=e.offsetTop,i+=e.offsetLeft,t=e.offsetParent)}return{left:i,top:n}}function V(e,t,n){"number"===typeof t&&(e.style.width="".concat(t,"px")),"number"===typeof n&&(e.style.height="".concat(n,"px"))}function Y(e){var t=e.getBoundingClientRect();return{left:t.left+U.scrollX,top:t.top+U.scrollY,width:t.width,height:t.height}}var U=new(function(){function e(){(0,s.Z)(this,e)}return(0,u.Z)(e,[{key:"scrollX",get:function(){return"number"===typeof window.scrollX?window.scrollX:document.body.scrollLeft+document.documentElement.scrollLeft}},{key:"scrollY",get:function(){return"number"===typeof window.scrollY?window.scrollY:document.body.scrollTop+document.documentElement.scrollTop}}]),e}());function K(e){var t=B.getMarginLeft(e)+B.getMarginRight(e);return e.offsetWidth+t}function q(e){var t=B.getBorderLeftWidth(e)+B.getBorderRightWidth(e),n=B.getPaddingLeft(e)+B.getPaddingRight(e);return e.offsetWidth-t-n}function G(e){var t=B.getBorderTopWidth(e)+B.getBorderBottomWidth(e),n=B.getPaddingTop(e)+B.getPaddingBottom(e);return e.offsetHeight-t-n}function $(e){var t=B.getMarginTop(e)+B.getMarginBottom(e);return e.offsetHeight+t}function Q(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function X(e,t,n){for(;e&&e.nodeType===e.ELEMENT_NODE;){if(e.classList.contains(t))return e;if(n)if("string"===typeof n){if(e.classList.contains(n))return null}else if(e===n)return null;e=e.parentNode}return null}function J(e,t,n){return!!X(e,t,n)}function ee(e){return e&&!!e.host&&!!e.mode}function te(e){return!!ne(e)}function ne(e){for(;e.parentNode;){if(e===document.body)return null;e=e.parentNode}return ee(e)?e:null}function ie(){for(var e=document.activeElement;null===e||void 0===e?void 0:e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function re(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.getElementsByTagName("head")[0],t=document.createElement("style");return t.type="text/css",t.media="screen",e.appendChild(t),t}var oe=null;function ae(){return oe||(oe=re()),oe}function se(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ae();n&&t&&n.sheet.insertRule(e+"{"+t+"}",0)}function ue(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ae();if(t){for(var n=function(e){var t,n;return(null===(t=null===e||void 0===e?void 0:e.sheet)||void 0===t?void 0:t.rules)?e.sheet.rules:(null===(n=null===e||void 0===e?void 0:e.sheet)||void 0===n?void 0:n.cssRules)?e.sheet.cssRules:[]}(t),i=[],r=0;r<n.length;r++){-1!==n[r].selectorText.indexOf(e)&&i.push(r)}for(var o=i.length-1;o>=0;o--)t.sheet.deleteRule(i[o])}}function le(e){return"object"===typeof HTMLElement?e instanceof HTMLElement:e&&"object"===typeof e&&1===e.nodeType&&"string"===typeof e.nodeName}var ce={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:l.Pf?"webkitAnimationStart":"animationstart",ANIMATION_END:l.Pf?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:l.Pf?"webkitAnimationIteration":"animationiteration"},de={stop:function(e,t){e.preventDefault?e.preventDefault():e.returnValue=!1,t&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)}};function he(e){for(var t=[],n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)t[n]=e.scrollTop,e=e.parentNode;return t}function fe(e,t){for(var n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)e.scrollTop!==t[n]&&(e.scrollTop=t[n]),e=e.parentNode}var pe=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;(0,s.Z)(this,n),(i=t.call(this))._onDidFocus=i._register(new v.Q5),i.onDidFocus=i._onDidFocus.event,i._onDidBlur=i._register(new v.Q5),i.onDidBlur=i._onDidBlur.event;var r=Q(document.activeElement,e),o=!1,a=function(){o=!1,r||(r=!0,i._onDidFocus.fire())},u=function(){r&&(o=!0,window.setTimeout((function(){o&&(o=!1,r=!1,i._onDidBlur.fire())}),0))};return i._refreshStateHandler=function(){Q(document.activeElement,e)!==r&&(r?u():a())},i._register((0,c.jt)(e,ce.FOCUS,!0)(a)),i._register((0,c.jt)(e,ce.BLUR,!0)(u)),i}return(0,u.Z)(n)}(g.JT);function ve(e){return new pe(e)}function ge(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(e.append.apply(e,n),1===n.length&&"string"!==typeof n[0])return n[0]}function me(e){e.innerText="";for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];ge.apply(void 0,[e].concat(n))}var _e,ye=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;function be(e,t,n){var i,r=ye.exec(t);if(!r)throw new Error("Bad use of emmet");n=Object.assign({},n||{});var o,a=r[1]||"div";o=e!==_e.HTML?document.createElementNS(e,a):document.createElement(a),r[3]&&(o.id=r[3]),r[4]&&(o.className=r[4].replace(/\./g," ").trim()),Object.keys(n).forEach((function(e){var t=n[e];"undefined"!==typeof t&&(/^on\w+$/.test(e)?o[e]=t:"selected"===e?t&&o.setAttribute(e,"true"):o.setAttribute(e,t))}));for(var s=arguments.length,u=new Array(s>3?s-3:0),l=3;l<s;l++)u[l-3]=arguments[l];return(i=o).append.apply(i,u),o}function we(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return be.apply(void 0,[_e.HTML,e,t].concat(i))}function Ce(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var i=0,r=t;i<r.length;i++){var o=r[i];o.style.display="",o.removeAttribute("aria-hidden")}}function ke(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var i=0,r=t;i<r.length;i++){var o=r[i];o.style.display="none",o.setAttribute("aria-hidden","true")}}function Se(e){return Array.prototype.slice.call(document.getElementsByTagName(e),0)}function xe(e){var t=window.devicePixelRatio*e;return Math.max(1,Math.floor(t))/window.devicePixelRatio}function Le(e){window.open(e,"_blank","noopener")}function Ee(e){var t=O((function n(){e(),t=O(n)}));return(0,g.OF)((function(){return t.dispose()}))}function Ne(e){return e?"url('".concat(_.Gi.asBrowserUri(e).toString(!0).replace(/'/g,"%27"),"')"):"url('')"}function De(e){return"'".concat(e.replace(/'/g,"%27"),"'")}!function(e){e.HTML="http://www.w3.org/1999/xhtml",e.SVG="http://www.w3.org/2000/svg"}(_e||(_e={})),we.SVG=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return be.apply(void 0,[_e.SVG,e,t].concat(i))},_.WX.setPreferredWebSchema(/^https:/.test(window.location.href)?"https":"http");var Me=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,s.Z)(this,n),(e=t.call(this))._subscriptions=new g.SL,e._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},e._subscriptions.add((0,c.jt)(window,"keydown",!0)((function(t){var n=new d.y(t);if(6!==n.keyCode||!t.repeat){if(t.altKey&&!e._keyStatus.altKey)e._keyStatus.lastKeyPressed="alt";else if(t.ctrlKey&&!e._keyStatus.ctrlKey)e._keyStatus.lastKeyPressed="ctrl";else if(t.metaKey&&!e._keyStatus.metaKey)e._keyStatus.lastKeyPressed="meta";else if(t.shiftKey&&!e._keyStatus.shiftKey)e._keyStatus.lastKeyPressed="shift";else{if(6===n.keyCode)return;e._keyStatus.lastKeyPressed=void 0}e._keyStatus.altKey=t.altKey,e._keyStatus.ctrlKey=t.ctrlKey,e._keyStatus.metaKey=t.metaKey,e._keyStatus.shiftKey=t.shiftKey,e._keyStatus.lastKeyPressed&&(e._keyStatus.event=t,e.fire(e._keyStatus))}}))),e._subscriptions.add((0,c.jt)(window,"keyup",!0)((function(t){!t.altKey&&e._keyStatus.altKey?e._keyStatus.lastKeyReleased="alt":!t.ctrlKey&&e._keyStatus.ctrlKey?e._keyStatus.lastKeyReleased="ctrl":!t.metaKey&&e._keyStatus.metaKey?e._keyStatus.lastKeyReleased="meta":!t.shiftKey&&e._keyStatus.shiftKey?e._keyStatus.lastKeyReleased="shift":e._keyStatus.lastKeyReleased=void 0,e._keyStatus.lastKeyPressed!==e._keyStatus.lastKeyReleased&&(e._keyStatus.lastKeyPressed=void 0),e._keyStatus.altKey=t.altKey,e._keyStatus.ctrlKey=t.ctrlKey,e._keyStatus.metaKey=t.metaKey,e._keyStatus.shiftKey=t.shiftKey,e._keyStatus.lastKeyReleased&&(e._keyStatus.event=t,e.fire(e._keyStatus))}))),e._subscriptions.add((0,c.jt)(document.body,"mousedown",!0)((function(t){e._keyStatus.lastKeyPressed=void 0}))),e._subscriptions.add((0,c.jt)(document.body,"mouseup",!0)((function(t){e._keyStatus.lastKeyPressed=void 0}))),e._subscriptions.add((0,c.jt)(document.body,"mousemove",!0)((function(t){t.buttons&&(e._keyStatus.lastKeyPressed=void 0)}))),e._subscriptions.add((0,c.jt)(window,"blur")((function(t){e.resetKeyStatus()}))),e}return(0,u.Z)(n,[{key:"keyStatus",get:function(){return this._keyStatus}},{key:"resetKeyStatus",value:function(){this.doResetKeyStatus(),this.fire(this._keyStatus)}},{key:"doResetKeyStatus",value:function(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}},{key:"dispose",value:function(){(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this),this._subscriptions.dispose()}}],[{key:"getInstance",value:function(){return n.instance||(n.instance=new n),n.instance}}]),n}(v.Q5);function Te(e,t){var n=window.matchMedia(e);"function"===typeof n.addEventListener?n.addEventListener("change",t):n.addListener(t)}},61680:function(e,t,n){"use strict";n.d(t,{jt:function(){return r},p7:function(){return o},sT:function(){return a}});var i=n(11732),r=function(e,t,n){var r=function(e){return o.fire(e)},o=new i.Q5({onFirstListenerAdd:function(){e.addEventListener(t,r,n)},onLastListenerRemove:function(){e.removeEventListener(t,r,n)}});return o.event};function o(e){return e.preventDefault(),e.stopPropagation(),e}function a(e){return i.ju.map(e,o)}},41149:function(e,t,n){"use strict";n.d(t,{X:function(){return a},Z:function(){return o}});var i=n(15671),r=n(43144),o=function(){function e(t){(0,i.Z)(this,e),this.domNode=t,this._maxWidth=-1,this._width=-1,this._height=-1,this._top=-1,this._left=-1,this._bottom=-1,this._right=-1,this._fontFamily="",this._fontWeight="",this._fontSize=-1,this._fontFeatureSettings="",this._lineHeight=-1,this._letterSpacing=-100,this._className="",this._display="",this._position="",this._visibility="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}return(0,r.Z)(e,[{key:"setMaxWidth",value:function(e){this._maxWidth!==e&&(this._maxWidth=e,this.domNode.style.maxWidth=this._maxWidth+"px")}},{key:"setWidth",value:function(e){this._width!==e&&(this._width=e,this.domNode.style.width=this._width+"px")}},{key:"setHeight",value:function(e){this._height!==e&&(this._height=e,this.domNode.style.height=this._height+"px")}},{key:"setTop",value:function(e){this._top!==e&&(this._top=e,this.domNode.style.top=this._top+"px")}},{key:"unsetTop",value:function(){-1!==this._top&&(this._top=-1,this.domNode.style.top="")}},{key:"setLeft",value:function(e){this._left!==e&&(this._left=e,this.domNode.style.left=this._left+"px")}},{key:"setBottom",value:function(e){this._bottom!==e&&(this._bottom=e,this.domNode.style.bottom=this._bottom+"px")}},{key:"setRight",value:function(e){this._right!==e&&(this._right=e,this.domNode.style.right=this._right+"px")}},{key:"setFontFamily",value:function(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}},{key:"setFontWeight",value:function(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}},{key:"setFontSize",value:function(e){this._fontSize!==e&&(this._fontSize=e,this.domNode.style.fontSize=this._fontSize+"px")}},{key:"setFontFeatureSettings",value:function(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}},{key:"setLineHeight",value:function(e){this._lineHeight!==e&&(this._lineHeight=e,this.domNode.style.lineHeight=this._lineHeight+"px")}},{key:"setLetterSpacing",value:function(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.domNode.style.letterSpacing=this._letterSpacing+"px")}},{key:"setClassName",value:function(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}},{key:"toggleClassName",value:function(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}},{key:"setDisplay",value:function(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}},{key:"setPosition",value:function(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}},{key:"setVisibility",value:function(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}},{key:"setBackgroundColor",value:function(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}},{key:"setLayerHinting",value:function(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}},{key:"setBoxShadow",value:function(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}},{key:"setContain",value:function(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}},{key:"setAttribute",value:function(e,t){this.domNode.setAttribute(e,t)}},{key:"removeAttribute",value:function(e){this.domNode.removeAttribute(e)}},{key:"appendChild",value:function(e){this.domNode.appendChild(e.domNode)}},{key:"removeChild",value:function(e){this.domNode.removeChild(e.domNode)}}]),e}();function a(e){return new o(e)}},83935:function(e,t,n){"use strict";n.d(t,{BO:function(){return s},IY:function(){return a},az:function(){return u}});var i=n(15671),r=n(43144),o=n(84540);function a(e){var t=u(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});return t.textContent=e,t}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=u(t);return c(n,function(e,t){var n={type:1,children:[]},i=0,r=n,o=[],a=new l(e);for(;!a.eos();){var s=a.next(),u="\\"===s&&0!==h(a.peek(),t);if(u&&(s=a.next()),!u&&d(s,t)&&s===a.peek()){a.advance(),2===r.type&&(r=o.pop());var c=h(s,t);if(r.type===c||5===r.type&&6===c)r=o.pop();else{var f={type:c,children:[]};5===c&&(f.index=i,i++),r.children.push(f),o.push(r),r=f}}else if("\n"===s)2===r.type&&(r=o.pop()),r.children.push({type:8});else if(2!==r.type){var p={type:2,content:s};r.children.push(p),o.push(r),r=p}else r.content+=s}2===r.type&&(r=o.pop());o.length;return n}(e,!!t.renderCodeSegements),t.actionHandler,t.renderCodeSegements),n}function u(e){var t=e.inline?"span":"div",n=document.createElement(t);return e.className&&(n.className=e.className),n}var l=function(){function e(t){(0,i.Z)(this,e),this.source=t,this.index=0}return(0,r.Z)(e,[{key:"eos",value:function(){return this.index>=this.source.length}},{key:"next",value:function(){var e=this.peek();return this.advance(),e}},{key:"peek",value:function(){return this.source[this.index]}},{key:"advance",value:function(){this.index++}}]),e}();function c(e,t,n,i){var r;if(2===t.type)r=document.createTextNode(t.content||"");else if(3===t.type)r=document.createElement("b");else if(4===t.type)r=document.createElement("i");else if(7===t.type&&i)r=document.createElement("code");else if(5===t.type&&n){var a=document.createElement("a");a.href="#",n.disposeables.add(o.addStandardDisposableListener(a,"click",(function(e){n.callback(String(t.index),e)}))),r=a}else 8===t.type?r=document.createElement("br"):1===t.type&&(r=e);r&&e!==r&&e.appendChild(r),r&&Array.isArray(t.children)&&t.children.forEach((function(e){c(r,e,n,i)}))}function d(e,t){return 0!==h(e,t)}function h(e,t){switch(e){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return t?7:0;default:return 0}}},78101:function(e,t,n){"use strict";n.d(t,{Z:function(){return d},e:function(){return c}});var i=n(37762),r=n(15671),o=n(43144),a=n(84540),s=n(83581),u=n(55076),l=n(81626);function c(e,t){var n=new u.n(t);return n.preventDefault(),{leftButton:n.leftButton,buttons:n.buttons,posx:n.posx,posy:n.posy}}var d=function(){function e(){(0,r.Z)(this,e),this._hooks=new l.SL,this._mouseMoveEventMerger=null,this._mouseMoveCallback=null,this._onStopCallback=null}return(0,o.Z)(e,[{key:"dispose",value:function(){this.stopMonitoring(!1),this._hooks.dispose()}},{key:"stopMonitoring",value:function(e,t){if(this.isMonitoring()){this._hooks.clear(),this._mouseMoveEventMerger=null,this._mouseMoveCallback=null;var n=this._onStopCallback;this._onStopCallback=null,e&&n&&n(t)}}},{key:"isMonitoring",value:function(){return!!this._mouseMoveEventMerger}},{key:"startMonitoring",value:function(e,t,n,r,o){var l=this;if(!this.isMonitoring()){this._mouseMoveEventMerger=n,this._mouseMoveCallback=r,this._onStopCallback=o;var c=s.E.getSameOriginWindowChain(),d=c.map((function(e){return e.window.document})),h=a.getShadowRoot(e);h&&d.unshift(h);var f,p=(0,i.Z)(d);try{for(p.s();!(f=p.n()).done;){var v=f.value;this._hooks.add(a.addDisposableThrottledListener(v,"mousemove",(function(e){e.buttons===t?l._mouseMoveCallback(e):l.stopMonitoring(!0)}),(function(e,t){return l._mouseMoveEventMerger(e,t)}))),this._hooks.add(a.addDisposableListener(v,"mouseup",(function(e){return l.stopMonitoring(!0)})))}}catch(m){p.e(m)}finally{p.f()}if(s.E.hasDifferentOriginAncestor()){var g=c[c.length-1];this._hooks.add(a.addDisposableListener(g.window.document,"mouseout",(function(e){"html"===new u.n(e).target.tagName.toLowerCase()&&l.stopMonitoring(!0)}))),this._hooks.add(a.addDisposableListener(g.window.document,"mouseover",(function(e){"html"===new u.n(e).target.tagName.toLowerCase()&&l.stopMonitoring(!0)}))),this._hooks.add(a.addDisposableListener(g.window.document.body,"mouseleave",(function(e){l.stopMonitoring(!0)})))}}}}]),e}()},83581:function(e,t,n){"use strict";n.d(t,{E:function(){return l}});var i=n(37762),r=n(15671),o=n(43144),a=!1,s=null;function u(e){if(!e.parent||e.parent===e)return null;try{var t=e.location,n=e.parent.location;if("null"!==t.origin&&"null"!==n.origin&&(t.protocol!==n.protocol||t.hostname!==n.hostname||t.port!==n.port))return a=!0,null}catch(i){return a=!0,null}return e.parent}var l=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"getSameOriginWindowChain",value:function(){if(!s){s=[];var e,t=window;do{(e=u(t))?s.push({window:t,iframeElement:t.frameElement||null}):s.push({window:t,iframeElement:null}),t=e}while(t)}return s.slice(0)}},{key:"hasDifferentOriginAncestor",value:function(){return s||this.getSameOriginWindowChain(),a}},{key:"getPositionOfChildWindowRelativeToAncestorWindow",value:function(e,t){if(!t||e===t)return{top:0,left:0};var n,r=0,o=0,a=this.getSameOriginWindowChain(),s=(0,i.Z)(a);try{for(s.s();!(n=s.n()).done;){var u=n.value;if(r+=u.window.scrollY,o+=u.window.scrollX,u.window===t)break;if(!u.iframeElement)break;var l=u.iframeElement.getBoundingClientRect();r+=l.top,o+=l.left}}catch(c){s.e(c)}finally{s.f()}return{top:r,left:o}}}]),e}()},31737:function(e,t,n){"use strict";n.d(t,{y:function(){return h}});var i=n(15671),r=n(43144),o=n(84539),a=n(38792),s=n(30487),u=new Array(230),l=new Array(112);!function(){for(var e=0;e<l.length;e++)l[e]=-1;function t(e,t){u[e]=t,l[t]=e}t(3,7),t(8,1),t(9,2),t(13,3),t(16,4),t(17,5),t(18,6),t(19,7),t(20,8),t(27,9),t(32,10),t(33,11),t(34,12),t(35,13),t(36,14),t(37,15),t(38,16),t(39,17),t(40,18),t(45,19),t(46,20),t(48,21),t(49,22),t(50,23),t(51,24),t(52,25),t(53,26),t(54,27),t(55,28),t(56,29),t(57,30),t(65,31),t(66,32),t(67,33),t(68,34),t(69,35),t(70,36),t(71,37),t(72,38),t(73,39),t(74,40),t(75,41),t(76,42),t(77,43),t(78,44),t(79,45),t(80,46),t(81,47),t(82,48),t(83,49),t(84,50),t(85,51),t(86,52),t(87,53),t(88,54),t(89,55),t(90,56),t(93,58),t(96,93),t(97,94),t(98,95),t(99,96),t(100,97),t(101,98),t(102,99),t(103,100),t(104,101),t(105,102),t(106,103),t(107,104),t(108,105),t(109,106),t(110,107),t(111,108),t(112,59),t(113,60),t(114,61),t(115,62),t(116,63),t(117,64),t(118,65),t(119,66),t(120,67),t(121,68),t(122,69),t(123,70),t(124,71),t(125,72),t(126,73),t(127,74),t(128,75),t(129,76),t(130,77),t(144,78),t(145,79),t(186,80),t(187,81),t(188,82),t(189,83),t(190,84),t(191,85),t(192,86),t(193,110),t(194,111),t(219,87),t(220,88),t(221,89),t(222,90),t(223,91),t(226,92),t(229,109),o.vU?(t(59,80),t(107,81),t(109,83),s.dz&&t(224,57)):o.Pf&&(t(91,57),s.dz?t(93,57):t(92,57))}();var c=s.dz?256:2048,d=s.dz?2048:256,h=function(){function e(t){(0,i.Z)(this,e),this._standardKeyboardEventBrand=!0;var n=t;this.browserEvent=n,this.target=n.target,this.ctrlKey=n.ctrlKey,this.shiftKey=n.shiftKey,this.altKey=n.altKey,this.metaKey=n.metaKey,this.keyCode=function(e){if(e.charCode){var t=String.fromCharCode(e.charCode).toUpperCase();return a.kL.fromString(t)}return u[e.keyCode]||0}(n),this.code=n.code,this.ctrlKey=this.ctrlKey||5===this.keyCode,this.altKey=this.altKey||6===this.keyCode,this.shiftKey=this.shiftKey||4===this.keyCode,this.metaKey=this.metaKey||57===this.keyCode,this._asKeybinding=this._computeKeybinding(),this._asRuntimeKeybinding=this._computeRuntimeKeybinding()}return(0,r.Z)(e,[{key:"preventDefault",value:function(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}},{key:"stopPropagation",value:function(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}},{key:"toKeybinding",value:function(){return this._asRuntimeKeybinding}},{key:"equals",value:function(e){return this._asKeybinding===e}},{key:"_computeKeybinding",value:function(){var e=0;5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode);var t=0;return this.ctrlKey&&(t|=c),this.altKey&&(t|=512),this.shiftKey&&(t|=1024),this.metaKey&&(t|=d),t|=e}},{key:"_computeRuntimeKeybinding",value:function(){var e=0;return 5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode),new a.QC(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)}}]),e}()},55076:function(e,t,n){"use strict";n.d(t,{n:function(){return u},q:function(){return l}});var i=n(15671),r=n(43144),o=n(84539),a=n(83581),s=n(30487),u=function(){function e(t){(0,i.Z)(this,e),this.timestamp=Date.now(),this.browserEvent=t,this.leftButton=0===t.button,this.middleButton=1===t.button,this.rightButton=2===t.button,this.buttons=t.buttons,this.target=t.target,this.detail=t.detail||1,"dblclick"===t.type&&(this.detail=2),this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,"number"===typeof t.pageX?(this.posx=t.pageX,this.posy=t.pageY):(this.posx=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,this.posy=t.clientY+document.body.scrollTop+document.documentElement.scrollTop);var n=a.E.getPositionOfChildWindowRelativeToAncestorWindow(self,t.view);this.posx-=n.left,this.posy-=n.top}return(0,r.Z)(e,[{key:"preventDefault",value:function(){this.browserEvent.preventDefault()}},{key:"stopPropagation",value:function(){this.browserEvent.stopPropagation()}}]),e}(),l=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if((0,i.Z)(this,e),this.browserEvent=t||null,this.target=t?t.target||t.targetNode||t.srcElement:null,this.deltaY=r,this.deltaX=n,t){var a=t,u=t;if("undefined"!==typeof a.wheelDeltaY)this.deltaY=a.wheelDeltaY/120;else if("undefined"!==typeof u.VERTICAL_AXIS&&u.axis===u.VERTICAL_AXIS)this.deltaY=-u.detail/3;else if("wheel"===t.type){var l=t;l.deltaMode===l.DOM_DELTA_LINE?o.vU&&!s.dz?this.deltaY=-t.deltaY/3:this.deltaY=-t.deltaY:this.deltaY=-t.deltaY/40}if("undefined"!==typeof a.wheelDeltaX)o.G6&&s.ED?this.deltaX=-a.wheelDeltaX/120:this.deltaX=a.wheelDeltaX/120;else if("undefined"!==typeof u.HORIZONTAL_AXIS&&u.axis===u.HORIZONTAL_AXIS)this.deltaX=-t.detail/3;else if("wheel"===t.type){var c=t;c.deltaMode===c.DOM_DELTA_LINE?o.vU&&!s.dz?this.deltaX=-t.deltaX/3:this.deltaX=-t.deltaX:this.deltaX=-t.deltaX/40}0===this.deltaY&&0===this.deltaX&&t.wheelDelta&&(this.deltaY=t.wheelDelta/120)}}return(0,r.Z)(e,[{key:"preventDefault",value:function(){this.browserEvent&&this.browserEvent.preventDefault()}},{key:"stopPropagation",value:function(){this.browserEvent&&this.browserEvent.stopPropagation()}}]),e}()},25044:function(e,t,n){"use strict";n.d(t,{o:function(){return v},t:function(){return i}});var i,r=n(15671),o=n(43144),a=n(11752),s=n(61120),u=n(60136),l=n(29388),c=n(49396),d=n(81626),h=n(84540),f=n(94995),p=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a};!function(e){e.Tap="-monaco-gesturetap",e.Change="-monaco-gesturechange",e.Start="-monaco-gesturestart",e.End="-monaco-gesturesend",e.Contextmenu="-monaco-gesturecontextmenu"}(i||(i={}));var v=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.call(this)).dispatched=!1,e.activeTouches={},e.handle=null,e.targets=[],e.ignoreTargets=[],e._lastSetTapCountTime=0,e._register(h.addDisposableListener(document,"touchstart",(function(t){return e.onTouchStart(t)}),{passive:!1})),e._register(h.addDisposableListener(document,"touchend",(function(t){return e.onTouchEnd(t)}))),e._register(h.addDisposableListener(document,"touchmove",(function(t){return e.onTouchMove(t)}),{passive:!1})),e}return(0,o.Z)(n,[{key:"dispose",value:function(){this.handle&&(this.handle.dispose(),this.handle=null),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onTouchStart",value:function(e){var t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(var n=0,r=e.targetTouches.length;n<r;n++){var o=e.targetTouches.item(n);this.activeTouches[o.identifier]={id:o.identifier,initialTarget:o.target,initialTimeStamp:t,initialPageX:o.pageX,initialPageY:o.pageY,rollingTimestamps:[t],rollingPageX:[o.pageX],rollingPageY:[o.pageY]};var a=this.newGestureEvent(i.Start,o.target);a.pageX=o.pageX,a.pageY=o.pageY,this.dispatchEvent(a)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}},{key:"onTouchEnd",value:function(e){for(var t=this,r=Date.now(),o=Object.keys(this.activeTouches).length,a=function(){var a=e.changedTouches.item(s);if(!t.activeTouches.hasOwnProperty(String(a.identifier)))return console.warn("move of an UNKNOWN touch",a),"continue";var u=t.activeTouches[a.identifier],l=Date.now()-u.initialTimeStamp;if(l<n.HOLD_DELAY&&Math.abs(u.initialPageX-c.Gb(u.rollingPageX))<30&&Math.abs(u.initialPageY-c.Gb(u.rollingPageY))<30){var d=t.newGestureEvent(i.Tap,u.initialTarget);d.pageX=c.Gb(u.rollingPageX),d.pageY=c.Gb(u.rollingPageY),t.dispatchEvent(d)}else if(l>=n.HOLD_DELAY&&Math.abs(u.initialPageX-c.Gb(u.rollingPageX))<30&&Math.abs(u.initialPageY-c.Gb(u.rollingPageY))<30){var h=t.newGestureEvent(i.Contextmenu,u.initialTarget);h.pageX=c.Gb(u.rollingPageX),h.pageY=c.Gb(u.rollingPageY),t.dispatchEvent(h)}else if(1===o){var f=c.Gb(u.rollingPageX),p=c.Gb(u.rollingPageY),v=c.Gb(u.rollingTimestamps)-u.rollingTimestamps[0],g=f-u.rollingPageX[0],m=p-u.rollingPageY[0],_=t.targets.filter((function(e){return u.initialTarget instanceof Node&&e.contains(u.initialTarget)}));t.inertia(_,r,Math.abs(g)/v,g>0?1:-1,f,Math.abs(m)/v,m>0?1:-1,p)}t.dispatchEvent(t.newGestureEvent(i.End,u.initialTarget)),delete t.activeTouches[a.identifier]},s=0,u=e.changedTouches.length;s<u;s++)a();this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}},{key:"newGestureEvent",value:function(e,t){var n=document.createEvent("CustomEvent");return n.initEvent(e,!1,!0),n.initialTarget=t,n.tapCount=0,n}},{key:"dispatchEvent",value:function(e){var t=this;if(e.type===i.Tap){var r=(new Date).getTime(),o=0;o=r-this._lastSetTapCountTime>n.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=r,e.tapCount=o}else e.type!==i.Change&&e.type!==i.Contextmenu||(this._lastSetTapCountTime=0);for(var a=0;a<this.ignoreTargets.length;a++)if(e.initialTarget instanceof Node&&this.ignoreTargets[a].contains(e.initialTarget))return;this.targets.forEach((function(n){e.initialTarget instanceof Node&&n.contains(e.initialTarget)&&(n.dispatchEvent(e),t.dispatched=!0)}))}},{key:"inertia",value:function(e,t,r,o,a,s,u,l){var c=this;this.handle=h.scheduleAtNextAnimationFrame((function(){var d=Date.now(),h=d-t,f=0,p=0,v=!0;r+=n.SCROLL_FRICTION*h,s+=n.SCROLL_FRICTION*h,r>0&&(v=!1,f=o*r*h),s>0&&(v=!1,p=u*s*h);var g=c.newGestureEvent(i.Change);g.translationX=f,g.translationY=p,e.forEach((function(e){return e.dispatchEvent(g)})),v||c.inertia(e,d,r,o,a+f,s,u,l+p)}))}},{key:"onTouchMove",value:function(e){for(var t=Date.now(),n=0,r=e.changedTouches.length;n<r;n++){var o=e.changedTouches.item(n);if(this.activeTouches.hasOwnProperty(String(o.identifier))){var a=this.activeTouches[o.identifier],s=this.newGestureEvent(i.Change,a.initialTarget);s.translationX=o.pageX-c.Gb(a.rollingPageX),s.translationY=o.pageY-c.Gb(a.rollingPageY),s.pageX=o.pageX,s.pageY=o.pageY,this.dispatchEvent(s),a.rollingPageX.length>3&&(a.rollingPageX.shift(),a.rollingPageY.shift(),a.rollingTimestamps.shift()),a.rollingPageX.push(o.pageX),a.rollingPageY.push(o.pageY),a.rollingTimestamps.push(t)}else console.warn("end of an UNKNOWN touch",o)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}],[{key:"addTarget",value:function(e){return n.isTouchDevice()?(n.INSTANCE||(n.INSTANCE=new n),n.INSTANCE.targets.push(e),{dispose:function(){n.INSTANCE.targets=n.INSTANCE.targets.filter((function(t){return t!==e}))}}):d.JT.None}},{key:"ignoreTarget",value:function(e){return n.isTouchDevice()?(n.INSTANCE||(n.INSTANCE=new n),n.INSTANCE.ignoreTargets.push(e),{dispose:function(){n.INSTANCE.ignoreTargets=n.INSTANCE.ignoreTargets.filter((function(t){return t!==e}))}}):d.JT.None}},{key:"isTouchDevice",value:function(){return"ontouchstart"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0}}]),n}(d.JT);v.SCROLL_FRICTION=-.005,v.HOLD_DELAY=700,v.CLEAR_TAP_COUNT_TIME=400,p([f.H],v,"isTouchDevice",null)},84039:function(e,t,n){"use strict";n.d(t,{Y:function(){return b},g:function(){return w}});var i=n(93433),r=n(15671),o=n(43144),a=n(97326),s=n(11752),u=n(61120),l=n(60136),c=n(29388),d=(n(26116),n(30487)),h=n(56345),f=n(81626),p=n(29077),v=n(25941),g=n(25044),m=n(53042),_=n(84539),y=n(84540),b=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(e,i){var o,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.Z)(this,n),(o=t.call(this)).options=s,o._context=e||(0,a.Z)(o),o._action=i,i instanceof p.aU&&o._register(i.onDidChange((function(e){o.element&&o.handleActionChangeEvent(e)}))),o}return(0,o.Z)(n,[{key:"handleActionChangeEvent",value:function(e){void 0!==e.enabled&&this.updateEnabled(),void 0!==e.checked&&this.updateChecked(),void 0!==e.class&&this.updateClass(),void 0!==e.label&&(this.updateLabel(),this.updateTooltip()),void 0!==e.tooltip&&this.updateTooltip()}},{key:"actionRunner",get:function(){return this._actionRunner||(this._actionRunner=this._register(new p.Wi)),this._actionRunner},set:function(e){this._actionRunner=e}},{key:"getAction",value:function(){return this._action}},{key:"isEnabled",value:function(){return this._action.enabled}},{key:"setActionContext",value:function(e){this._context=e}},{key:"render",value:function(e){var t=this,n=this.element=e;this._register(g.o.addTarget(e));var i=this.options&&this.options.draggable;i&&(e.draggable=!0,_.vU&&this._register((0,y.addDisposableListener)(e,y.EventType.DRAG_START,(function(e){var n;return null===(n=e.dataTransfer)||void 0===n?void 0:n.setData(m.go.TEXT,t._action.label)})))),this._register((0,y.addDisposableListener)(n,g.t.Tap,(function(e){return t.onClick(e)}))),this._register((0,y.addDisposableListener)(n,y.EventType.MOUSE_DOWN,(function(e){i||y.EventHelper.stop(e,!0),t._action.enabled&&0===e.button&&n.classList.add("active")}))),d.dz&&this._register((0,y.addDisposableListener)(n,y.EventType.CONTEXT_MENU,(function(e){0===e.button&&!0===e.ctrlKey&&t.onClick(e)}))),this._register((0,y.addDisposableListener)(n,y.EventType.CLICK,(function(e){y.EventHelper.stop(e,!0),t.options&&t.options.isMenu||d.xS((function(){return t.onClick(e)}))}))),this._register((0,y.addDisposableListener)(n,y.EventType.DBLCLICK,(function(e){y.EventHelper.stop(e,!0)}))),[y.EventType.MOUSE_UP,y.EventType.MOUSE_OUT].forEach((function(e){t._register((0,y.addDisposableListener)(n,e,(function(e){y.EventHelper.stop(e),n.classList.remove("active")})))}))}},{key:"onClick",value:function(e){var t;y.EventHelper.stop(e,!0);var n=v.Jp(this._context)?(null===(t=this.options)||void 0===t?void 0:t.useEventAsContext)?e:void 0:this._context;this.actionRunner.run(this._action,n)}},{key:"focus",value:function(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}},{key:"blur",value:function(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}},{key:"setFocusable",value:function(e){this.element&&(this.element.tabIndex=e?0:-1)}},{key:"trapsArrowNavigation",get:function(){return!1}},{key:"updateEnabled",value:function(){}},{key:"updateLabel",value:function(){}},{key:"updateTooltip",value:function(){}},{key:"updateClass",value:function(){}},{key:"updateChecked",value:function(){}},{key:"dispose",value:function(){this.element&&(this.element.remove(),this.element=void 0),(0,s.Z)((0,u.Z)(n.prototype),"dispose",this).call(this)}}]),n}(f.JT),w=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(e,i){var o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.Z)(this,n),(o=t.call(this,e,i,a)).options=a,o.options.icon=void 0!==a.icon&&a.icon,o.options.label=void 0===a.label||a.label,o.cssClass="",o}return(0,o.Z)(n,[{key:"render",value:function(e){(0,s.Z)((0,u.Z)(n.prototype),"render",this).call(this,e),this.element&&(this.label=(0,y.append)(this.element,(0,y.$)("a.action-label"))),this.label&&(this._action.id===p.Z0.ID?this.label.setAttribute("role","presentation"):this.options.isMenu?this.label.setAttribute("role","menuitem"):this.label.setAttribute("role","button")),this.options.label&&this.options.keybinding&&this.element&&((0,y.append)(this.element,(0,y.$)("span.keybinding")).textContent=this.options.keybinding),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}},{key:"focus",value:function(){this.label&&(this.label.tabIndex=0,this.label.focus())}},{key:"blur",value:function(){this.label&&(this.label.tabIndex=-1)}},{key:"setFocusable",value:function(e){this.label&&(this.label.tabIndex=e?0:-1)}},{key:"updateLabel",value:function(){this.options.label&&this.label&&(this.label.textContent=this.getAction().label)}},{key:"updateTooltip",value:function(){var e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=h.N({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),e&&this.label&&(this.label.title=e)}},{key:"updateClass",value:function(){var e;this.cssClass&&this.label&&(e=this.label.classList).remove.apply(e,(0,i.Z)(this.cssClass.split(" ")));if(this.options.icon){var t;if(this.cssClass=this.getAction().class,this.label)if(this.label.classList.add("codicon"),this.cssClass)(t=this.label.classList).add.apply(t,(0,i.Z)(this.cssClass.split(" ")));this.updateEnabled()}else this.label&&this.label.classList.remove("codicon")}},{key:"updateEnabled",value:function(){this.getAction().enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),this.element&&this.element.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),this.element&&this.element.classList.add("disabled"))}},{key:"updateChecked",value:function(){this.label&&(this.getAction().checked?this.label.classList.add("checked"):this.label.classList.remove("checked"))}}]),n}(b)},67404:function(e,t,n){"use strict";n.d(t,{o:function(){return y}});var i=n(15671),r=n(43144),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(87757),c=n.n(l),d=(n(26116),n(81626)),h=n(29077),f=n(84540),p=n(25941),v=n(31737),g=n(11732),m=n(84039),_=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},y=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var r,o,a,s,u,l,c,d,p,_=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch((0,i.Z)(this,n),(r=t.call(this)).triggerKeyDown=!1,r.focusable=!0,r._onDidBlur=r._register(new g.Q5),r.onDidBlur=r._onDidBlur.event,r._onDidCancel=r._register(new g.Q5({onFirstListenerAdd:function(){return r.cancelHasListener=!0}})),r.onDidCancel=r._onDidCancel.event,r.cancelHasListener=!1,r._onDidRun=r._register(new g.Q5),r.onDidRun=r._onDidRun.event,r._onBeforeRun=r._register(new g.Q5),r.onBeforeRun=r._onBeforeRun.event,r.options=_,r._context=null!==(o=_.context)&&void 0!==o?o:null,r._orientation=null!==(a=r.options.orientation)&&void 0!==a?a:0,r._triggerKeys={keyDown:null!==(u=null===(s=r.options.triggerKeys)||void 0===s?void 0:s.keyDown)&&void 0!==u&&u,keys:null!==(c=null===(l=r.options.triggerKeys)||void 0===l?void 0:l.keys)&&void 0!==c?c:[3,10]},r.options.actionRunner?r._actionRunner=r.options.actionRunner:(r._actionRunner=new h.Wi,r._register(r._actionRunner)),r._register(r._actionRunner.onDidRun((function(e){return r._onDidRun.fire(e)}))),r._register(r._actionRunner.onBeforeRun((function(e){return r._onBeforeRun.fire(e)}))),r._actionIds=[],r.viewItems=[],r.focusedItem=void 0,r.domNode=document.createElement("div"),r.domNode.className="monaco-action-bar",!1!==_.animated&&r.domNode.classList.add("animated"),r._orientation){case 0:d=[15],p=[17];break;case 1:d=[16],p=[18],r.domNode.className+=" vertical"}return r._register(f.addDisposableListener(r.domNode,f.EventType.KEY_DOWN,(function(e){var t=new v.y(e),n=!0,i="number"===typeof r.focusedItem?r.viewItems[r.focusedItem]:void 0;d&&(t.equals(d[0])||t.equals(d[1]))?n=r.focusPrevious():p&&(t.equals(p[0])||t.equals(p[1]))?n=r.focusNext():t.equals(9)&&r.cancelHasListener?r._onDidCancel.fire():t.equals(14)?n=r.focusFirst():t.equals(13)?n=r.focusLast():t.equals(2)&&i instanceof m.Y&&i.trapsArrowNavigation?n=r.focusNext():r.isTriggerKeyEvent(t)?r._triggerKeys.keyDown?r.doTrigger(t):r.triggerKeyDown=!0:n=!1,n&&(t.preventDefault(),t.stopPropagation())}))),r._register(f.addDisposableListener(r.domNode,f.EventType.KEY_UP,(function(e){var t=new v.y(e);r.isTriggerKeyEvent(t)?(!r._triggerKeys.keyDown&&r.triggerKeyDown&&(r.triggerKeyDown=!1,r.doTrigger(t)),t.preventDefault(),t.stopPropagation()):(t.equals(2)||t.equals(1026))&&r.updateFocusedItem()}))),r.focusTracker=r._register(f.trackFocus(r.domNode)),r._register(r.focusTracker.onDidBlur((function(){f.getActiveElement()!==r.domNode&&f.isAncestor(f.getActiveElement(),r.domNode)||(r._onDidBlur.fire(),r.focusedItem=void 0,r.triggerKeyDown=!1)}))),r._register(r.focusTracker.onDidFocus((function(){return r.updateFocusedItem()}))),r.actionsList=document.createElement("ul"),r.actionsList.className="actions-container",r.actionsList.setAttribute("role","toolbar"),r.options.ariaLabel&&r.actionsList.setAttribute("aria-label",r.options.ariaLabel),r.domNode.appendChild(r.actionsList),e.appendChild(r.domNode),r}return(0,r.Z)(n,[{key:"isTriggerKeyEvent",value:function(e){var t=!1;return this._triggerKeys.keys.forEach((function(n){t=t||e.equals(n)})),t}},{key:"updateFocusedItem",value:function(){for(var e=0;e<this.actionsList.children.length;e++){var t=this.actionsList.children[e];if(f.isAncestor(f.getActiveElement(),t)){this.focusedItem=e;break}}}},{key:"context",get:function(){return this._context},set:function(e){this._context=e,this.viewItems.forEach((function(t){return t.setActionContext(e)}))}},{key:"actionRunner",get:function(){return this._actionRunner},set:function(e){e&&(this._actionRunner=e,this.viewItems.forEach((function(t){return t.actionRunner=e})))}},{key:"getContainer",value:function(){return this.domNode}},{key:"push",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=Array.isArray(e)?e:[e],r=p.hj(n.index)?n.index:null;i.forEach((function(e){var i,o=document.createElement("li");o.className="action-item",o.setAttribute("role","presentation"),t.options.allowContextMenu||t._register(f.addDisposableListener(o,f.EventType.CONTEXT_MENU,(function(e){f.EventHelper.stop(e,!0)}))),t.options.actionViewItemProvider&&(i=t.options.actionViewItemProvider(e)),i||(i=new m.g(t.context,e,n)),i.actionRunner=t._actionRunner,i.setActionContext(t.context),i.render(o),t.focusable&&i instanceof m.Y&&0===t.viewItems.length&&i.setFocusable(!0),null===r||r<0||r>=t.actionsList.children.length?(t.actionsList.appendChild(o),t.viewItems.push(i),t._actionIds.push(e.id)):(t.actionsList.insertBefore(o,t.actionsList.children[r]),t.viewItems.splice(r,0,i),t._actionIds.splice(r,0,e.id),r++)})),"number"===typeof this.focusedItem&&this.focus(this.focusedItem)}},{key:"clear",value:function(){(0,d.B9)(this.viewItems),this.viewItems=[],this._actionIds=[],f.clearNode(this.actionsList)}},{key:"length",value:function(){return this.viewItems.length}},{key:"focus",value:function(e){var t=!1,n=void 0;if(void 0===e?t=!0:"number"===typeof e?n=e:"boolean"===typeof e&&(t=e),t&&"undefined"===typeof this.focusedItem){var i=this.viewItems.findIndex((function(e){return e.isEnabled()}));this.focusedItem=-1===i?void 0:i,this.updateFocus()}else void 0!==n&&(this.focusedItem=n),this.updateFocus()}},{key:"focusFirst",value:function(){return this.focusedItem=this.length()>1?1:0,this.focusPrevious()}},{key:"focusLast",value:function(){return this.focusedItem=this.length()<2?0:this.length()-2,this.focusNext()}},{key:"focusNext",value:function(){if("undefined"===typeof this.focusedItem)this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;var e,t=this.focusedItem;do{if(this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,e=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&this.options.focusOnlyEnabledItems&&!e.isEnabled());return this.updateFocus(),!0}},{key:"focusPrevious",value:function(){if("undefined"===typeof this.focusedItem)this.focusedItem=0;else if(this.viewItems.length<=1)return!1;var e,t=this.focusedItem;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}e=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&this.options.focusOnlyEnabledItems&&!e.isEnabled());return this.updateFocus(!0),!0}},{key:"updateFocus",value:function(e,t){"undefined"===typeof this.focusedItem&&this.actionsList.focus({preventScroll:t});for(var n=0;n<this.viewItems.length;n++){var i=this.viewItems[n],r=i;if(n===this.focusedItem){var o=!0;p.mf(r.focus)||(o=!1),this.options.focusOnlyEnabledItems&&p.mf(i.isEnabled)&&!i.isEnabled()&&(o=!1),o?r.focus(e):this.actionsList.focus({preventScroll:t})}else p.mf(r.blur)&&r.blur()}}},{key:"doTrigger",value:function(e){if("undefined"!==typeof this.focusedItem){var t=this.viewItems[this.focusedItem];if(t instanceof m.Y){var n=null===t._context||void 0===t._context?e:t._context;this.run(t._action,n)}}}},{key:"run",value:function(e,t){return _(this,void 0,void 0,c().mark((function n(){return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this._actionRunner.run(e,t);case 2:case"end":return n.stop()}}),n,this)})))}},{key:"dispose",value:function(){(0,d.B9)(this.viewItems),this.viewItems=[],this._actionIds=[],this.getContainer().remove(),(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this)}}]),n}(d.JT)},52180:function(e,t,n){"use strict";n.d(t,{Z9:function(){return h},wW:function(){return d},i7:function(){return f}});var i,r,o,a,s,u=n(30487),l=n(84540),c=2e4;function d(e){(i=document.createElement("div")).className="monaco-aria-container";var t=function(){var e=document.createElement("div");return e.className="monaco-alert",e.setAttribute("role","alert"),e.setAttribute("aria-atomic","true"),i.appendChild(e),e};r=t(),o=t();var n=function(){var e=document.createElement("div");return e.className="monaco-status",e.setAttribute("role","complementary"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),i.appendChild(e),e};a=n(),s=n(),e.appendChild(i)}function h(e){i&&(r.textContent!==e?(l.clearNode(o),p(r,e)):(l.clearNode(r),p(o,e)))}function f(e){i&&(u.dz?h(e):a.textContent!==e?(l.clearNode(s),p(a,e)):(l.clearNode(a),p(s,e)))}function p(e,t){l.clearNode(e),t.length>c&&(t=t.substr(0,c)),e.textContent=t,e.style.visibility="hidden",e.style.visibility="visible"}},22410:function(e,t,n){"use strict";n.d(t,{a:function(){return r}});var i=n(4354);function r(e){for(var t=e.definition;t instanceof i.lA;)t=t.definition;return".codicon-".concat(e.id,":before { content: '").concat(t.fontCharacter,"'; }")}},57502:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var i=n(15671),r=n(43144),o=n(84540),a=n(51747),s=n(89938),u=n(10405),l={badgeBackground:s.Il.fromHex("#4D4D4D"),badgeForeground:s.Il.fromHex("#FFFFFF")},c=function(){function e(t,n){(0,i.Z)(this,e),this.count=0,this.options=n||Object.create(null),(0,u.jB)(this.options,l,!1),this.badgeBackground=this.options.badgeBackground,this.badgeForeground=this.options.badgeForeground,this.badgeBorder=this.options.badgeBorder,this.element=(0,o.append)(t,(0,o.$)(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}return(0,r.Z)(e,[{key:"setCount",value:function(e){this.count=e,this.render()}},{key:"setTitleFormat",value:function(e){this.titleFormat=e,this.render()}},{key:"render",value:function(){this.element.textContent=(0,a.WU)(this.countFormat,this.count),this.element.title=(0,a.WU)(this.titleFormat,this.count),this.applyStyles()}},{key:"style",value:function(e){this.badgeBackground=e.badgeBackground,this.badgeForeground=e.badgeForeground,this.badgeBorder=e.badgeBorder,this.applyStyles()}},{key:"applyStyles",value:function(){if(this.element){var e=this.badgeBackground?this.badgeBackground.toString():"",t=this.badgeForeground?this.badgeForeground.toString():"",n=this.badgeBorder?this.badgeBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.element.style.borderWidth=n?"1px":"",this.element.style.borderStyle=n?"solid":"",this.element.style.borderColor=n}}}]),e}()},61743:function(e,t,n){"use strict";n.d(t,{q:function(){return c}});var i=n(93433),r=n(37762),o=n(15671),a=n(43144),s=n(10405),u=n(84540),l=n(66404),c=function(){function e(t,n){(0,o.Z)(this,e),this.supportIcons=n,this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.domNode=document.createElement("span"),this.domNode.className="monaco-highlighted-label",t.appendChild(this.domNode)}return(0,a.Z)(e,[{key:"element",get:function(){return this.domNode}},{key:"set",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";t||(t=""),(arguments.length>3?arguments[3]:void 0)&&(t=e.escapeNewLines(t,n)),this.didEverRender&&this.text===t&&this.title===i&&s.fS(this.highlights,n)||(this.text=t,this.title=i,this.highlights=n,this.render())}},{key:"render",value:function(){var e,t=[],n=0,o=(0,r.Z)(this.highlights);try{for(o.s();!(e=o.n()).done;){var a=e.value;if(a.end!==a.start){if(n<a.start){var s=this.text.substring(n,a.start);t.push(u.$.apply(u,["span",void 0].concat((0,i.Z)(this.supportIcons?(0,l.T)(s):[s])))),n=a.end}var c=this.text.substring(a.start,a.end),d=u.$.apply(u,["span.highlight",void 0].concat((0,i.Z)(this.supportIcons?(0,l.T)(c):[c])));a.extraClasses&&d.classList.add(a.extraClasses),t.push(d),n=a.end}}}catch(f){o.e(f)}finally{o.f()}if(n<this.text.length){var h=this.text.substring(n);t.push(u.$.apply(u,["span",void 0].concat((0,i.Z)(this.supportIcons?(0,l.T)(h):[h]))))}u.reset.apply(u,[this.domNode].concat(t)),this.title?this.domNode.title=this.title:this.domNode.removeAttribute("title"),this.didEverRender=!0}}],[{key:"escapeNewLines",value:function(e,t){var n=0,i=0;return e.replace(/\r\n|\r|\n/g,(function(e,o){i="\r\n"===e?-1:0,o+=n;var a,s=(0,r.Z)(t);try{for(s.s();!(a=s.n()).done;){var u=a.value;u.end<=o||(u.start>=o&&(u.start+=i),u.end>=o&&(u.end+=i))}}catch(l){s.e(l)}finally{s.f()}return n+=i,"\u23ce"}))}}]),e}()},5677:function(e,t,n){"use strict";n.d(t,{g:function(){return w}});var i=n(93433),r=n(60136),o=n(29388),a=n(15671),s=n(43144),u=n(87757),l=n.n(u),c=n(84540),d=n(61743),h=n(81626),f=n(81629),p=n(10405),v=n(25941),g=n(61680),m=n(56345),_=n(66526),y=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},b=function(){function e(t){(0,a.Z)(this,e),this._element=t}return(0,s.Z)(e,[{key:"element",get:function(){return this._element}},{key:"textContent",set:function(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}},{key:"className",set:function(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}},{key:"empty",set:function(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?"0":"")}},{key:"dispose",value:function(){this.disposed=!0}}]),e}(),w=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i){var r;(0,a.Z)(this,n),(r=t.call(this)).hoverDelegate=void 0,r.customHovers=new Map,r.domNode=r._register(new b(c.append(e,c.$(".monaco-icon-label")))),r.labelContainer=c.append(r.domNode.element,c.$(".monaco-icon-label-container"));var o=c.append(r.labelContainer,c.$("span.monaco-icon-name-container"));return r.descriptionContainer=r._register(new b(c.append(r.labelContainer,c.$("span.monaco-icon-description-container")))),(null===i||void 0===i?void 0:i.supportHighlights)?r.nameNode=new k(o,!!i.supportIcons):r.nameNode=new C(o),(null===i||void 0===i?void 0:i.supportDescriptionHighlights)?r.descriptionNodeFactory=function(){return new d.q(c.append(r.descriptionContainer.element,c.$("span.label-description")),!!i.supportIcons)}:r.descriptionNodeFactory=function(){return r._register(new b(c.append(r.descriptionContainer.element,c.$("span.label-description"))))},(null===i||void 0===i?void 0:i.hoverDelegate)&&(r.hoverDelegate=i.hoverDelegate),r}return(0,s.Z)(n,[{key:"setLabel",value:function(e,t,n){var r=["monaco-icon-label"];n&&(n.extraClasses&&r.push.apply(r,(0,i.Z)(n.extraClasses)),n.italic&&r.push("italic"),n.strikethrough&&r.push("strikethrough")),this.domNode.className=r.join(" "),this.setupHover(this.labelContainer,null===n||void 0===n?void 0:n.title),this.nameNode.setLabel(e,n),(t||this.descriptionNode)&&(this.descriptionNode||(this.descriptionNode=this.descriptionNodeFactory()),this.descriptionNode instanceof d.q?(this.descriptionNode.set(t||"",n?n.descriptionMatches:void 0),this.setupHover(this.descriptionNode.element,null===n||void 0===n?void 0:n.descriptionTitle)):(this.descriptionNode.textContent=t||"",this.setupHover(this.descriptionNode.element,(null===n||void 0===n?void 0:n.descriptionTitle)||""),this.descriptionNode.empty=!t))}},{key:"setupHover",value:function(e,t){var n=this.customHovers.get(e);if(n&&(n.dispose(),this.customHovers.delete(e)),t)return this.hoverDelegate?this.setupCustomHover(this.hoverDelegate,e,t):this.setupNativeHover(e,t);e.removeAttribute("title")}},{key:"getTooltipForCustom",value:function(e){var t=this;if((0,v.HD)(e))return function(){return y(t,void 0,void 0,l().mark((function t(){return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e);case 1:case"end":return t.stop()}}),t)})))};if((0,v.mf)(e.markdown))return e.markdown;var n=e.markdown;return function(){return y(t,void 0,void 0,l().mark((function e(){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",n);case 1:case"end":return e.stop()}}),e)})))}}},{key:"setupCustomHover",value:function(e,t,i){t.setAttribute("title",""),t.removeAttribute("title");var r,o,a,s,u=this.getTooltipForCustom(i),d=!1;var h=this._register((0,g.jt)(t,c.EventType.MOUSE_OVER,!0)(function(h){var f=this;if(!d){a=new _.A;var p=(0,g.jt)(t,c.EventType.MOUSE_LEAVE,!0)(C.bind(t)),b=(0,g.jt)(t,c.EventType.MOUSE_DOWN,!0)(C.bind(t));d=!0;var w=(0,g.jt)(t,c.EventType.MOUSE_MOVE,!0)(function(e){o=e.x}.bind(t));setTimeout((function(){return y(f,void 0,void 0,l().mark((function t(){var c,h,f;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!d||!u){t.next=18;break}if(r){t.next=18;break}return h={targetElements:[this],dispose:function(){}},r={text:(0,m.N)("iconLabel.loading","Loading..."),target:h,hoverPosition:2},s=n.adjustXAndShowCustomHover(r,o,e,d),t.next=7,u(a.token);case 7:if(t.t1=c=t.sent,t.t0=null!==t.t1,!t.t0){t.next=11;break}t.t0=void 0!==c;case 11:if(!t.t0){t.next=15;break}t.t2=c,t.next=16;break;case 15:t.t2=(0,v.HD)(i)?void 0:i.markdownNotSupportedFallback;case 16:(f=t.t2)?(r={text:f,target:h,hoverPosition:2},s=n.adjustXAndShowCustomHover(r,o,e,d)):s&&(s.dispose(),s=void 0);case 18:w.dispose();case 19:case"end":return t.stop()}}),t,this)})))}),e.delay)}function C(e){var n=e.type===c.EventType.MOUSE_DOWN;n&&(null===s||void 0===s||s.dispose(),s=void 0),(n||e.fromElement===t)&&(d=!1,r=void 0,a.dispose(!0),p.dispose(),b.dispose())}}.bind(t)));this.customHovers.set(t,h)}},{key:"setupNativeHover",value:function(e,t){var n="";(0,v.HD)(t)?n=t:(null===t||void 0===t?void 0:t.markdownNotSupportedFallback)&&(n=t.markdownNotSupportedFallback),e.title=n}}],[{key:"adjustXAndShowCustomHover",value:function(e,t,n,i){if(e&&i)return void 0!==t&&(e.target.x=t+10),n.showHover(e)}}]),n}(h.JT),C=function(){function e(t){(0,a.Z)(this,e),this.container=t,this.label=void 0,this.singleLabel=void 0}return(0,s.Z)(e,[{key:"setLabel",value:function(e,t){if(this.label!==e||!(0,p.fS)(this.options,t))if(this.label=e,this.options=t,"string"===typeof e)this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=c.append(this.container,c.$("a.label-name",{id:null===t||void 0===t?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(var n=0;n<e.length;n++){var i=e[n],r=(null===t||void 0===t?void 0:t.domId)&&"".concat(null===t||void 0===t?void 0:t.domId,"_").concat(n);c.append(this.container,c.$("a.label-name",{id:r,"data-icon-label-count":e.length,"data-icon-label-index":n,role:"treeitem"},i)),n<e.length-1&&c.append(this.container,c.$("span.label-separator",void 0,(null===t||void 0===t?void 0:t.separator)||"/"))}}}}]),e}();var k=function(){function e(t,n){(0,a.Z)(this,e),this.container=t,this.supportIcons=n,this.label=void 0,this.singleLabel=void 0}return(0,s.Z)(e,[{key:"setLabel",value:function(e,t){if(this.label!==e||!(0,p.fS)(this.options,t))if(this.label=e,this.options=t,"string"===typeof e)this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=new d.q(c.append(this.container,c.$("a.label-name",{id:null===t||void 0===t?void 0:t.domId})),this.supportIcons)),this.singleLabel.set(e,null===t||void 0===t?void 0:t.matches,void 0,null===t||void 0===t?void 0:t.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(var n=(null===t||void 0===t?void 0:t.separator)||"/",i=function(e,t,n){if(n){var i=0;return e.map((function(e){var r={start:i,end:i+e.length},o=n.map((function(e){return f.e.intersect(r,e)})).filter((function(e){return!f.e.isEmpty(e)})).map((function(e){var t=e.start,n=e.end;return{start:t-i,end:n-i}}));return i=r.end+t.length,o}))}}(e,n,null===t||void 0===t?void 0:t.matches),r=0;r<e.length;r++){var o=e[r],a=i?i[r]:void 0,s=(null===t||void 0===t?void 0:t.domId)&&"".concat(null===t||void 0===t?void 0:t.domId,"_").concat(r),u=c.$("a.label-name",{id:s,"data-icon-label-count":e.length,"data-icon-label-index":r,role:"treeitem"});new d.q(c.append(this.container,u),this.supportIcons).set(o,a,void 0,null===t||void 0===t?void 0:t.labelEscapeNewLines),r<e.length-1&&c.append(u,c.$("span.label-separator",void 0,n))}}}}]),e}()},66404:function(e,t,n){"use strict";n.d(t,{T:function(){return u}});var i=n(93433),r=n(29439),o=n(84540),a=n(4354),s=new RegExp("(\\\\)?\\$\\((".concat(a.dT.iconNameExpression,"(?:").concat(a.dT.iconModifierExpression,")?)\\)"),"g");function u(e){for(var t,n=new Array,i=0,o=0;null!==(t=s.exec(e));){o=t.index||0,n.push(e.substring(i,o)),i=(t.index||0)+t[0].length;var a=t,u=(0,r.Z)(a,3),c=u[1],d=u[2];n.push(c?"$(".concat(d,")"):l({id:d}))}return i<e.length&&n.push(e.substring(i)),n}function l(e){var t,n=o.$("span");return(t=n.classList).add.apply(t,(0,i.Z)(a.dT.asClassNameArray(e))),n}},68027:function(e,t,n){"use strict";n.d(t,{p:function(){return E},W:function(){return L}});var i=n(15671),r=n(43144),o=n(97326),a=n(11752),s=n(61120),u=n(60136),l=n(29388),c=n(56345),d=n(84540),h=n(83935),f=n(52180),p=n(67404),v=n(11732),g=n(43257),m=n(89938),_=n(10405),y=n(37762),b=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n-1;(0,i.Z)(this,e),this.items=t,this.start=n,this.end=r,this.index=o}return(0,r.Z)(e,[{key:"current",value:function(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}},{key:"next",value:function(){return this.index=Math.min(this.index+1,this.end),this.current()}},{key:"previous",value:function(){return this.index=Math.max(this.index-1,this.start-1),this.current()}},{key:"first",value:function(){return this.index=this.start,this.current()}},{key:"last",value:function(){return this.index=this.end-1,this.current()}}]),e}(),w=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;(0,i.Z)(this,e),this._initialize(t),this._limit=n,this._onChange()}return(0,r.Z)(e,[{key:"add",value:function(e){this._history.delete(e),this._history.add(e),this._onChange()}},{key:"next",value:function(){return this._currentPosition()!==this._elements.length-1?this._navigator.next():null}},{key:"previous",value:function(){return 0!==this._currentPosition()?this._navigator.previous():null}},{key:"current",value:function(){return this._navigator.current()}},{key:"first",value:function(){return this._navigator.first()}},{key:"last",value:function(){return this._navigator.last()}},{key:"has",value:function(e){return this._history.has(e)}},{key:"_onChange",value:function(){this._reduceToLimit();var e=this._elements;this._navigator=new b(e,0,e.length,e.length)}},{key:"_reduceToLimit",value:function(){var e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}},{key:"_currentPosition",value:function(){var e=this._navigator.current();return e?this._elements.indexOf(e):-1}},{key:"_initialize",value:function(e){this._history=new Set;var t,n=(0,y.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;this._history.add(i)}}catch(r){n.e(r)}finally{n.f()}}},{key:"_elements",get:function(){var e=[];return this._history.forEach((function(t){return e.push(t)})),e}}]),e}(),C=n(61727),k=n(61680),S=d.$,x={inputBackground:m.Il.fromHex("#3C3C3C"),inputForeground:m.Il.fromHex("#CCCCCC"),inputValidationInfoBorder:m.Il.fromHex("#55AAFF"),inputValidationInfoBackground:m.Il.fromHex("#063B49"),inputValidationWarningBorder:m.Il.fromHex("#B89500"),inputValidationWarningBackground:m.Il.fromHex("#352A05"),inputValidationErrorBorder:m.Il.fromHex("#BE1100"),inputValidationErrorBackground:m.Il.fromHex("#5A1D1D")},L=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,r,a){var s,u;(0,i.Z)(this,n),(s=t.call(this)).state="idle",s.maxHeight=Number.POSITIVE_INFINITY,s._onDidChange=s._register(new v.Q5),s.onDidChange=s._onDidChange.event,s._onDidHeightChange=s._register(new v.Q5),s.onDidHeightChange=s._onDidHeightChange.event,s.contextViewProvider=r,s.options=a||Object.create(null),(0,_.jB)(s.options,x,!1),s.message=null,s.placeholder=s.options.placeholder||"",s.tooltip=null!==(u=s.options.tooltip)&&void 0!==u?u:s.placeholder||"",s.ariaLabel=s.options.ariaLabel||"",s.inputBackground=s.options.inputBackground,s.inputForeground=s.options.inputForeground,s.inputBorder=s.options.inputBorder,s.inputValidationInfoBorder=s.options.inputValidationInfoBorder,s.inputValidationInfoBackground=s.options.inputValidationInfoBackground,s.inputValidationInfoForeground=s.options.inputValidationInfoForeground,s.inputValidationWarningBorder=s.options.inputValidationWarningBorder,s.inputValidationWarningBackground=s.options.inputValidationWarningBackground,s.inputValidationWarningForeground=s.options.inputValidationWarningForeground,s.inputValidationErrorBorder=s.options.inputValidationErrorBorder,s.inputValidationErrorBackground=s.options.inputValidationErrorBackground,s.inputValidationErrorForeground=s.options.inputValidationErrorForeground,s.options.validationOptions&&(s.validation=s.options.validationOptions.validation),s.element=d.append(e,S(".monaco-inputbox.idle"));var l=s.options.flexibleHeight?"textarea":"input",c=d.append(s.element,S(".ibwrapper"));if(s.input=d.append(c,S(l+".input.empty")),s.input.setAttribute("autocorrect","off"),s.input.setAttribute("autocapitalize","off"),s.input.setAttribute("spellcheck","false"),s.onfocus(s.input,(function(){return s.element.classList.add("synthetic-focus")})),s.onblur(s.input,(function(){return s.element.classList.remove("synthetic-focus")})),s.options.flexibleHeight){s.maxHeight="number"===typeof s.options.flexibleMaxHeight?s.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,s.mirror=d.append(c,S("div.mirror")),s.mirror.innerText="\xa0",s.scrollableElement=new C.NB(s.element,{vertical:1}),s.options.flexibleWidth&&(s.input.setAttribute("wrap","off"),s.mirror.style.whiteSpace="pre",s.mirror.style.wordWrap="initial"),d.append(e,s.scrollableElement.getDomNode()),s._register(s.scrollableElement),s._register(s.scrollableElement.onScroll((function(e){return s.input.scrollTop=e.scrollTop})));var h=v.ju.filter((0,k.jt)(document,"selectionchange"),(function(){var e=document.getSelection();return(null===e||void 0===e?void 0:e.anchorNode)===c}));s._register(h(s.updateScrollDimensions,(0,o.Z)(s))),s._register(s.onDidHeightChange(s.updateScrollDimensions,(0,o.Z)(s)))}else s.input.type=s.options.type||"text",s.input.setAttribute("wrap","off");return s.ariaLabel&&s.input.setAttribute("aria-label",s.ariaLabel),s.placeholder&&s.setPlaceHolder(s.placeholder),s.tooltip&&s.setTooltip(s.tooltip),s.oninput(s.input,(function(){return s.onValueChange()})),s.onblur(s.input,(function(){return s.onBlur()})),s.onfocus(s.input,(function(){return s.onFocus()})),s.ignoreGesture(s.input),setTimeout((function(){return s.updateMirror()}),0),s.options.actions&&(s.actionbar=s._register(new p.o(s.element)),s.actionbar.push(s.options.actions,{icon:!0,label:!1})),s.applyStyles(),s}return(0,r.Z)(n,[{key:"onBlur",value:function(){this._hideMessage()}},{key:"onFocus",value:function(){this._showMessage()}},{key:"setPlaceHolder",value:function(e){this.placeholder=e,this.input.setAttribute("placeholder",e)}},{key:"setTooltip",value:function(e){this.tooltip=e,this.input.title=e}},{key:"setAriaLabel",value:function(e){this.ariaLabel=e,e?this.input.setAttribute("aria-label",this.ariaLabel):this.input.removeAttribute("aria-label")}},{key:"getAriaLabel",value:function(){return this.ariaLabel}},{key:"inputElement",get:function(){return this.input}},{key:"value",get:function(){return this.input.value},set:function(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}},{key:"height",get:function(){return"number"===typeof this.cachedHeight?this.cachedHeight:d.getTotalHeight(this.element)}},{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"hasFocus",value:function(){return document.activeElement===this.input}},{key:"select",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.input.select(),e&&(this.input.setSelectionRange(e.start,e.end),e.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}},{key:"isSelectionAtEnd",value:function(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}},{key:"enable",value:function(){this.input.removeAttribute("disabled")}},{key:"disable",value:function(){this.blur(),this.input.disabled=!0,this._hideMessage()}},{key:"width",get:function(){return d.getTotalWidth(this.input)},set:function(e){if(this.options.flexibleHeight&&this.options.flexibleWidth){var t=0;if(this.mirror)t=(parseFloat(this.mirror.style.paddingLeft||"")||0)+(parseFloat(this.mirror.style.paddingRight||"")||0);this.input.style.width=e-t+"px"}else this.input.style.width=e+"px";this.mirror&&(this.mirror.style.width=e+"px")}},{key:"paddingRight",set:function(e){this.options.flexibleHeight&&this.options.flexibleWidth?this.input.style.width="calc(100% - ".concat(e,"px)"):this.input.style.paddingRight=e+"px",this.mirror&&(this.mirror.style.paddingRight=e+"px")}},{key:"updateScrollDimensions",value:function(){if("number"===typeof this.cachedContentHeight&&"number"===typeof this.cachedHeight&&this.scrollableElement){var e=this.cachedContentHeight,t=this.cachedHeight,n=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:n})}}},{key:"showMessage",value:function(e,t){this.message=e,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(e.type));var n=this.stylesForType(this.message.type);this.element.style.border=n.border?"1px solid ".concat(n.border):"",(this.hasFocus()||t)&&this._showMessage()}},{key:"hideMessage",value:function(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}},{key:"validate",value:function(){var e=null;return this.validation&&((e=this.validation(this.value))?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(e)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),null===e||void 0===e?void 0:e.type}},{key:"stylesForType",value:function(e){switch(e){case 1:return{border:this.inputValidationInfoBorder,background:this.inputValidationInfoBackground,foreground:this.inputValidationInfoForeground};case 2:return{border:this.inputValidationWarningBorder,background:this.inputValidationWarningBackground,foreground:this.inputValidationWarningForeground};default:return{border:this.inputValidationErrorBorder,background:this.inputValidationErrorBackground,foreground:this.inputValidationErrorForeground}}}},{key:"classForType",value:function(e){switch(e){case 1:return"info";case 2:return"warning";default:return"error"}}},{key:"_showMessage",value:function(){var e=this;if(this.contextViewProvider&&this.message){var t,n,i=function(){return t.style.width=d.getTotalWidth(e.element)+"px"};this.contextViewProvider.showContextView({getAnchor:function(){return e.element},anchorAlignment:1,render:function(n){if(!e.message)return null;t=d.append(n,S(".monaco-inputbox-container")),i();var r={inline:!0,className:"monaco-inputbox-message"},o=e.message.formatContent?(0,h.BO)(e.message.content,r):(0,h.IY)(e.message.content,r);o.classList.add(e.classForType(e.message.type));var a=e.stylesForType(e.message.type);return o.style.backgroundColor=a.background?a.background.toString():"",o.style.color=a.foreground?a.foreground.toString():"",o.style.border=a.border?"1px solid ".concat(a.border):"",d.append(t,o),null},onHide:function(){e.state="closed"},layout:i}),n=3===this.message.type?c.N("alertErrorMessage","Error: {0}",this.message.content):2===this.message.type?c.N("alertWarningMessage","Warning: {0}",this.message.content):c.N("alertInfoMessage","Info: {0}",this.message.content),f.Z9(n),this.state="open"}}},{key:"_hideMessage",value:function(){this.contextViewProvider&&("open"===this.state&&this.contextViewProvider.hideContextView(),this.state="idle")}},{key:"onValueChange",value:function(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),"open"===this.state&&this.contextViewProvider&&this.contextViewProvider.layout()}},{key:"updateMirror",value:function(){if(this.mirror){var e=this.value,t=10===e.charCodeAt(e.length-1)?" ":"";e+t?this.mirror.textContent=e+t:this.mirror.innerText="\xa0",this.layout()}}},{key:"style",value:function(e){this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}},{key:"applyStyles",value:function(){var e=this.inputBackground?this.inputBackground.toString():"",t=this.inputForeground?this.inputForeground.toString():"",n=this.inputBorder?this.inputBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.input.style.backgroundColor="inherit",this.input.style.color=t,this.element.style.borderWidth=n?"1px":"",this.element.style.borderStyle=n?"solid":"",this.element.style.borderColor=n}},{key:"layout",value:function(){if(this.mirror){var e=this.cachedContentHeight;this.cachedContentHeight=d.getTotalHeight(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}}},{key:"insertAtCursor",value:function(e){var t=this.inputElement,n=t.selectionStart,i=t.selectionEnd,r=t.value;null!==n&&null!==i&&(this.value=r.substr(0,n)+e+r.substr(i),t.setSelectionRange(n+1,n+1),this.layout())}},{key:"dispose",value:function(){this._hideMessage(),this.message=null,this.actionbar&&this.actionbar.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(g.$),E=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,e,r,o)).history=new w(o.history,100),a}return(0,r.Z)(n,[{key:"addToHistory",value:function(){this.value&&this.value!==this.getCurrentValue()&&this.history.add(this.value)}},{key:"showNextValue",value:function(){this.history.has(this.value)||this.addToHistory();var e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),e&&(this.value=e,f.i7(this.value))}},{key:"showPreviousValue",value:function(){this.history.has(this.value)||this.addToHistory();var e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,f.i7(this.value))}},{key:"getCurrentValue",value:function(){var e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}},{key:"getPreviousValue",value:function(){return this.history.previous()||this.history.first()}},{key:"getNextValue",value:function(){return this.history.next()||this.history.last()}}]),n}(L)},6709:function(e,t,n){"use strict";n.d(t,{kX:function(){return N},Bv:function(){return O}});var i=n(37762),r=n(93433),o=n(15671),a=n(43144),s=n(10405),u=n(81626),l=n(25044),c=n(11732),d=n(61680),h=n(61727),f=n(58604),p=n(81629);function v(e,t){var n,r=[],o=(0,i.Z)(t);try{for(o.s();!(n=o.n()).done;){var a=n.value;if(!(e.start>=a.range.end)){if(e.end<a.range.start)break;var s=p.e.intersect(e,a.range);p.e.isEmpty(s)||r.push({range:s,size:a.size})}}}catch(u){o.e(u)}finally{o.f()}return r}function g(e,t){return{start:e.start+t,end:e.end+t}}function m(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){var t,n=[],r=null,o=(0,i.Z)(e);try{for(o.s();!(t=o.n()).done;){var a=t.value,s=a.range.start,u=a.range.end,l=a.size;r&&l===r.size?r.range.end=u:(r={range:{start:s,end:u},size:l},n.push(r))}}catch(c){o.e(c)}finally{o.f()}return n}(t.reduce((function(e,t){return e.concat(t)}),[]))}var _=function(){function e(){(0,o.Z)(this,e),this.groups=[],this._size=0}return(0,a.Z)(e,[{key:"splice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=n.length-t,r=v({start:0,end:e},this.groups),o=v({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map((function(e){return{range:g(e.range,i),size:e.size}})),a=n.map((function(t,n){return{range:{start:e+n,end:e+n+1},size:t.size}}));this.groups=m(r,a,o),this._size=this.groups.reduce((function(e,t){return e+t.size*(t.range.end-t.range.start)}),0)}},{key:"count",get:function(){var e=this.groups.length;return e?this.groups[e-1].range.end:0}},{key:"size",get:function(){return this._size}},{key:"indexAt",value:function(e){if(e<0)return-1;var t,n=0,r=0,o=(0,i.Z)(this.groups);try{for(o.s();!(t=o.n()).done;){var a=t.value,s=a.range.end-a.range.start,u=r+s*a.size;if(e<u)return n+Math.floor((e-r)/a.size);n+=s,r=u}}catch(l){o.e(l)}finally{o.f()}return n}},{key:"indexAfter",value:function(e){return Math.min(this.indexAt(e)+1,this.count)}},{key:"positionAt",value:function(e){if(e<0)return-1;var t,n=0,r=0,o=(0,i.Z)(this.groups);try{for(o.s();!(t=o.n()).done;){var a=t.value,s=a.range.end-a.range.start,u=r+s;if(e<u)return n+(e-r)*a.size;n+=s*a.size,r=u}}catch(l){o.e(l)}finally{o.f()}return-1}}]),e}(),y=n(84540);var b=function(){function e(t){(0,o.Z)(this,e),this.renderers=t,this.cache=new Map}return(0,a.Z)(e,[{key:"alloc",value:function(e){var t=this.getTemplateCache(e).pop();if(!t){var n=(0,y.$)(".monaco-list-row");t={domNode:n,templateId:e,templateData:this.getRenderer(e).renderTemplate(n)}}return t}},{key:"release",value:function(e){e&&this.releaseRow(e)}},{key:"releaseRow",value:function(e){var t=e.domNode,n=e.templateId;t&&(t.classList.remove("scrolling"),function(e){try{e.parentElement&&e.parentElement.removeChild(e)}catch(t){}}(t)),this.getTemplateCache(n).push(e)}},{key:"getTemplateCache",value:function(e){var t=this.cache.get(e);return t||(t=[],this.cache.set(e,t)),t}},{key:"dispose",value:function(){var e=this;this.cache.forEach((function(t,n){var r,o=(0,i.Z)(t);try{for(o.s();!(r=o.n()).done;){var a=r.value;e.getRenderer(n).disposeTemplate(a.templateData),a.templateData=null}}catch(s){o.e(s)}finally{o.f()}})),this.cache.clear()}},{key:"getRenderer",value:function(e){var t=this.renderers.get(e);if(!t)throw new Error("No renderer found for ".concat(e));return t}}]),e}(),w=n(94995),C=n(49396),k=n(53042),S=n(27997),x=n(84539),L=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},E={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements:function(e){return[e]},getDragURI:function(){return null},onDragStart:function(){},onDragOver:function(){return!1},drop:function(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0},N=function(){function e(t){(0,o.Z)(this,e),this.elements=t}return(0,a.Z)(e,[{key:"update",value:function(){}},{key:"getData",value:function(){return this.elements}}]),e}(),D=function(){function e(t){(0,o.Z)(this,e),this.elements=t}return(0,a.Z)(e,[{key:"update",value:function(){}},{key:"getData",value:function(){return this.elements}}]),e}(),M=function(){function e(){(0,o.Z)(this,e),this.types=[],this.files=[]}return(0,a.Z)(e,[{key:"update",value:function(e){var t;e.types&&(t=this.types).splice.apply(t,[0,this.types.length].concat((0,r.Z)(e.types)));if(e.files){this.files.splice(0,this.files.length);for(var n=0;n<e.files.length;n++){var i=e.files.item(n);i&&(i.size||i.type)&&this.files.push(i)}}}},{key:"getData",value:function(){return{types:this.types,files:this.files}}}]),e}();var T=(0,a.Z)((function e(t){(0,o.Z)(this,e),(null===t||void 0===t?void 0:t.getSetSize)?this.getSetSize=t.getSetSize.bind(t):this.getSetSize=function(e,t,n){return n},(null===t||void 0===t?void 0:t.getPosInSet)?this.getPosInSet=t.getPosInSet.bind(t):this.getPosInSet=function(e,t){return t+1},(null===t||void 0===t?void 0:t.getRole)?this.getRole=t.getRole.bind(t):this.getRole=function(e){return"listitem"},(null===t||void 0===t?void 0:t.isChecked)?this.isChecked=t.isChecked.bind(t):this.isChecked=function(e){}})),O=function(){function e(t,n,r){var a=this,p=arguments.length>3&&void 0!==arguments[3]?arguments[3]:E;if((0,o.Z)(this,e),this.virtualDelegate=n,this.domId="list_id_".concat(++e.InstanceCount),this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new S.vp(50),this.splicing=!1,this.dragOverAnimationStopDisposable=u.JT.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=u.JT.None,this.onDragLeaveTimeout=u.JT.None,this.disposables=new u.SL,this._onDidChangeContentHeight=new c.Q5,this._horizontalScrolling=!1,p.horizontalScrolling&&p.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=new _;var v,g=(0,i.Z)(r);try{for(g.s();!(v=g.n()).done;){var m=v.value;this.renderers.set(m.templateId,m)}}catch(w){g.e(w)}finally{g.f()}this.cache=this.disposables.add(new b(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support","boolean"!==typeof p.mouseSupport||p.mouseSupport),this._horizontalScrolling=(0,s.CJ)(p,(function(e){return e.horizontalScrolling}),E.horizontalScrolling),this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.additionalScrollHeight="undefined"===typeof p.additionalScrollHeight?0:p.additionalScrollHeight,this.accessibilityProvider=new T(p.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",(0,s.CJ)(p,(function(e){return e.transformOptimization}),E.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)"),this.disposables.add(l.o.addTarget(this.rowsContainer)),this.scrollable=new f.Rm((0,s.CJ)(p,(function(e){return e.smoothScrolling}),!1)?125:0,(function(e){return(0,y.scheduleAtNextAnimationFrame)(e)})),this.scrollableElement=this.disposables.add(new h.$Z(this.rowsContainer,{alwaysConsumeMouseWheel:(0,s.CJ)(p,(function(e){return e.alwaysConsumeMouseWheel}),E.alwaysConsumeMouseWheel),horizontal:1,vertical:(0,s.CJ)(p,(function(e){return e.verticalScrollMode}),E.verticalScrollMode),useShadows:(0,s.CJ)(p,(function(e){return e.useShadows}),E.useShadows)},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),t.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),(0,d.jt)(this.rowsContainer,l.t.Change)((function(e){return a.onTouchChange(e)}),this,this.disposables),(0,d.jt)(this.scrollableElement.getDomNode(),"scroll")((function(e){return e.target.scrollTop=0}),null,this.disposables),c.ju.map((0,d.jt)(this.domNode,"dragover"),(function(e){return a.toDragEvent(e)}))(this.onDragOver,this,this.disposables),c.ju.map((0,d.jt)(this.domNode,"drop"),(function(e){return a.toDragEvent(e)}))(this.onDrop,this,this.disposables),(0,d.jt)(this.domNode,"dragleave")(this.onDragLeave,this,this.disposables),(0,d.jt)(window,"dragend")(this.onDragEnd,this,this.disposables),this.setRowLineHeight=(0,s.CJ)(p,(function(e){return e.setRowLineHeight}),E.setRowLineHeight),this.setRowHeight=(0,s.CJ)(p,(function(e){return e.setRowHeight}),E.setRowHeight),this.supportDynamicHeights=(0,s.CJ)(p,(function(e){return e.supportDynamicHeights}),E.supportDynamicHeights),this.dnd=(0,s.CJ)(p,(function(e){return e.dnd}),E.dnd),this.layout()}return(0,a.Z)(e,[{key:"contentHeight",get:function(){return this.rangeMap.size}},{key:"horizontalScrolling",get:function(){return this._horizontalScrolling},set:function(e){if(e!==this._horizontalScrolling){if(e&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=e,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){var t,n=(0,i.Z)(this.items);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.measureItemWidth(r)}}catch(o){n.e(o)}finally{n.f()}this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:(0,y.getContentWidth)(this.domNode)}),this.rowsContainer.style.width="".concat(Math.max(this.scrollWidth||0,this.renderWidth),"px")}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}},{key:"updateOptions",value:function(e){void 0!==e.additionalScrollHeight&&(this.additionalScrollHeight=e.additionalScrollHeight,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),void 0!==e.smoothScrolling&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),void 0!==e.horizontalScrolling&&(this.horizontalScrolling=e.horizontalScrolling)}},{key:"splice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(e,t,n)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}},{key:"_splice",value:function(e,t){for(var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),s={start:e,end:e+t},l=p.e.intersect(a,s),c=new Map,d=l.start;d<l.end;d++){var h=this.items[d];if(h.dragStartDisposable.dispose(),h.row){var f=c.get(h.templateId);f||(f=[],c.set(h.templateId,f));var v=this.renderers.get(h.templateId);v&&v.disposeElement&&v.disposeElement(h.element,d,h.row.templateData,h.size),f.push(h.row)}h.row=null}var m,y,b={start:e+t,end:this.items.length},w=p.e.intersect(b,a),C=p.e.relativeComplement(b,a),k=o.map((function(e){return{id:String(n.itemId++),element:e,templateId:n.virtualDelegate.getTemplateId(e),size:n.virtualDelegate.getHeight(e),width:void 0,hasDynamicHeight:!!n.virtualDelegate.hasDynamicHeight&&n.virtualDelegate.hasDynamicHeight(e),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:u.JT.None}}));0===e&&t>=this.items.length?(this.rangeMap=new _,this.rangeMap.splice(0,0,k),m=this.items,this.items=k):(this.rangeMap.splice(e,t,k),m=(y=this.items).splice.apply(y,[e,t].concat((0,r.Z)(k))));for(var S=o.length-t,x=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),L=g(w,S),E=p.e.intersect(x,L),N=E.start;N<E.end;N++)this.updateItemInDOM(this.items[N],N);var D,M=p.e.relativeComplement(L,x),T=(0,i.Z)(M);try{for(T.s();!(D=T.n()).done;)for(var O=D.value,I=O.start;I<O.end;I++)this.removeItemFromDOM(I)}catch($){T.e($)}finally{T.f()}var A,P=C.map((function(e){return g(e,S)})),R=[{start:e,end:e+o.length}].concat((0,r.Z)(P)).map((function(e){return p.e.intersect(x,e)})),Z=this.getNextToLastElement(R),F=(0,i.Z)(R);try{for(F.s();!(A=F.n()).done;)for(var j=A.value,H=j.start;H<j.end;H++){var B=this.items[H],z=c.get(B.templateId),W=null===z||void 0===z?void 0:z.pop();this.insertItemInDOM(H,Z,W)}}catch($){F.e($)}finally{F.f()}var V,Y=(0,i.Z)(c.values());try{for(Y.s();!(V=Y.n()).done;){var U,K=V.value,q=(0,i.Z)(K);try{for(q.s();!(U=q.n()).done;){var G=U.value;this.cache.release(G)}}catch($){q.e($)}finally{q.f()}}}catch($){Y.e($)}finally{Y.f()}return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),m.map((function(e){return e.element}))}},{key:"eventuallyUpdateScrollDimensions",value:function(){var e=this;this._scrollHeight=this.contentHeight,this.rowsContainer.style.height="".concat(this._scrollHeight,"px"),this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=(0,y.scheduleAtNextAnimationFrame)((function(){e.scrollableElement.setScrollDimensions({scrollHeight:e.scrollHeight}),e.updateScrollWidth(),e.scrollableElementUpdateDisposable=null})))}},{key:"eventuallyUpdateScrollWidth",value:function(){var e=this;this.horizontalScrolling?this.scrollableElementWidthDelayer.trigger((function(){return e.updateScrollWidth()})):this.scrollableElementWidthDelayer.cancel()}},{key:"updateScrollWidth",value:function(){if(this.horizontalScrolling){var e,t=0,n=(0,i.Z)(this.items);try{for(n.s();!(e=n.n()).done;){var r=e.value;"undefined"!==typeof r.width&&(t=Math.max(t,r.width))}}catch(o){n.e(o)}finally{n.f()}this.scrollWidth=t,this.scrollableElement.setScrollDimensions({scrollWidth:0===t?0:t+10})}}},{key:"rerender",value:function(){if(this.supportDynamicHeights){var e,t=(0,i.Z)(this.items);try{for(t.s();!(e=t.n()).done;){e.value.lastDynamicHeightWidth=void 0}}catch(n){t.e(n)}finally{t.f()}this._rerender(this.lastRenderTop,this.lastRenderHeight)}}},{key:"length",get:function(){return this.items.length}},{key:"renderHeight",get:function(){return this.scrollableElement.getScrollDimensions().height}},{key:"element",value:function(e){return this.items[e].element}},{key:"domElement",value:function(e){var t=this.items[e].row;return t&&t.domNode}},{key:"elementHeight",value:function(e){return this.items[e].size}},{key:"elementTop",value:function(e){return this.rangeMap.positionAt(e)}},{key:"indexAt",value:function(e){return this.rangeMap.indexAt(e)}},{key:"indexAfter",value:function(e){return this.rangeMap.indexAfter(e)}},{key:"layout",value:function(e,t){var n={height:"number"===typeof e?e:(0,y.getContentHeight)(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,n.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(n),"undefined"!==typeof t&&(this.renderWidth=t,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:"number"===typeof t?t:(0,y.getContentWidth)(this.domNode)})}},{key:"render",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5],s=this.getRenderRange(t,n),u=p.e.relativeComplement(s,e),l=p.e.relativeComplement(e,s),c=this.getNextToLastElement(u);if(a)for(var d=p.e.intersect(e,s),h=d.start;h<d.end;h++)this.updateItemInDOM(this.items[h],h);var f,v=(0,i.Z)(u);try{for(v.s();!(f=v.n()).done;)for(var g=f.value,m=g.start;m<g.end;m++)this.insertItemInDOM(m,c)}catch(C){v.e(C)}finally{v.f()}var _,y=(0,i.Z)(l);try{for(y.s();!(_=y.n()).done;)for(var b=_.value,w=b.start;w<b.end;w++)this.removeItemFromDOM(w)}catch(C){y.e(C)}finally{y.f()}void 0!==r&&(this.rowsContainer.style.left="-".concat(r,"px")),this.rowsContainer.style.top="-".concat(t,"px"),this.horizontalScrolling&&void 0!==o&&(this.rowsContainer.style.width="".concat(Math.max(o,this.renderWidth),"px")),this.lastRenderTop=t,this.lastRenderHeight=n}},{key:"insertItemInDOM",value:function(e,t,n){var i=this,r=this.items[e];r.row||(r.row=null!==n&&void 0!==n?n:this.cache.alloc(r.templateId));var o=this.accessibilityProvider.getRole(r.element)||"listitem";r.row.domNode.setAttribute("role",o);var a=this.accessibilityProvider.isChecked(r.element);"undefined"!==typeof a&&r.row.domNode.setAttribute("aria-checked",String(!!a)),r.row.domNode.parentElement||(t?this.rowsContainer.insertBefore(r.row.domNode,t):this.rowsContainer.appendChild(r.row.domNode)),this.updateItemInDOM(r,e);var s=this.renderers.get(r.templateId);if(!s)throw new Error("No renderer found for template id ".concat(r.templateId));s&&s.renderElement(r.element,e,r.row.templateData,r.size);var u=this.dnd.getDragURI(r.element);if(r.dragStartDisposable.dispose(),r.row.domNode.draggable=!!u,u){var l=(0,d.jt)(r.row.domNode,"dragstart");r.dragStartDisposable=l((function(e){return i.onDragStart(r.element,u,e)}))}this.horizontalScrolling&&(this.measureItemWidth(r),this.eventuallyUpdateScrollWidth())}},{key:"measureItemWidth",value:function(e){if(e.row&&e.row.domNode){e.row.domNode.style.width=x.vU?"-moz-fit-content":"fit-content",e.width=(0,y.getContentWidth)(e.row.domNode);var t=window.getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=""}}},{key:"updateItemInDOM",value:function(e,t){e.row.domNode.style.top="".concat(this.elementTop(t),"px"),this.setRowHeight&&(e.row.domNode.style.height="".concat(e.size,"px")),this.setRowLineHeight&&(e.row.domNode.style.lineHeight="".concat(e.size,"px")),e.row.domNode.setAttribute("data-index","".concat(t)),e.row.domNode.setAttribute("data-last-element",t===this.length-1?"true":"false"),e.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute("id",this.getElementDomId(t)),e.row.domNode.classList.toggle("drop-target",e.dropTarget)}},{key:"removeItemFromDOM",value:function(e){var t=this.items[e];if(t.dragStartDisposable.dispose(),t.row){var n=this.renderers.get(t.templateId);n&&n.disposeElement&&n.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}},{key:"getScrollTop",value:function(){return this.scrollableElement.getScrollPosition().scrollTop}},{key:"setScrollTop",value:function(e,t){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e,reuseAnimation:t})}},{key:"scrollTop",get:function(){return this.getScrollTop()},set:function(e){this.setScrollTop(e)}},{key:"scrollHeight",get:function(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.additionalScrollHeight}},{key:"onMouseClick",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"click"),(function(t){return e.toMouseEvent(t)}))}},{key:"onMouseDblClick",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"dblclick"),(function(t){return e.toMouseEvent(t)}))}},{key:"onMouseMiddleClick",get:function(){var e=this;return c.ju.filter(c.ju.map((0,d.jt)(this.domNode,"auxclick"),(function(t){return e.toMouseEvent(t)})),(function(e){return 1===e.browserEvent.button}))}},{key:"onMouseDown",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"mousedown"),(function(t){return e.toMouseEvent(t)}))}},{key:"onContextMenu",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"contextmenu"),(function(t){return e.toMouseEvent(t)}))}},{key:"onTouchStart",get:function(){var e=this;return c.ju.map((0,d.jt)(this.domNode,"touchstart"),(function(t){return e.toTouchEvent(t)}))}},{key:"onTap",get:function(){var e=this;return c.ju.map((0,d.jt)(this.rowsContainer,l.t.Tap),(function(t){return e.toGestureEvent(t)}))}},{key:"toMouseEvent",value:function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}}},{key:"toTouchEvent",value:function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}}},{key:"toGestureEvent",value:function(e){var t=this.getItemIndexFromEventTarget(e.initialTarget||null),n="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}}},{key:"toDragEvent",value:function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}}},{key:"onScroll",value:function(e){try{var t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height,e.inSmoothScrolling)}catch(n){throw console.error("Got bad scroll event:",e),n}}},{key:"onTouchChange",value:function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}},{key:"onDragStart",value:function(e,t,n){if(n.dataTransfer){var i=this.dnd.getDragElements(e);if(n.dataTransfer.effectAllowed="copyMove",n.dataTransfer.setData(k.go.RESOURCES,JSON.stringify([t])),n.dataTransfer.setDragImage){var r;this.dnd.getDragLabel&&(r=this.dnd.getDragLabel(i,n)),"undefined"===typeof r&&(r=String(i.length));var o=(0,y.$)(".monaco-drag-image");o.textContent=r,document.body.appendChild(o),n.dataTransfer.setDragImage(o,-10,-10),setTimeout((function(){return document.body.removeChild(o)}),0)}this.currentDragData=new N(i),k.P$.CurrentDragAndDropData=new D(i),this.dnd.onDragStart&&this.dnd.onDragStart(this.currentDragData,n)}}},{key:"onDragOver",value:function(e){var t=this;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),k.P$.CurrentDragAndDropData&&"vscode-ui"===k.P$.CurrentDragAndDropData.getData())return!1;if(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer)return!1;if(!this.currentDragData)if(k.P$.CurrentDragAndDropData)this.currentDragData=k.P$.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new M}var n,r,o,a=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.browserEvent);if(this.canDrop="boolean"===typeof a?a:a.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;if(e.browserEvent.dataTransfer.dropEffect="boolean"!==typeof a&&0===a.effect?"copy":"move",n="boolean"!==typeof a&&a.feedback?a.feedback:"undefined"===typeof e.index?[-1]:[e.index],n=-1===(n=(0,C.EB)(n).filter((function(e){return e>=-1&&e<t.length})).sort((function(e,t){return e-t})))[0]?[-1]:n,r=this.currentDragFeedback,o=n,Array.isArray(r)&&Array.isArray(o)?(0,C.fS)(r,o):r===o)return!0;if(this.currentDragFeedback=n,this.currentDragFeedbackDisposable.dispose(),-1===n[0])this.domNode.classList.add("drop-target"),this.rowsContainer.classList.add("drop-target"),this.currentDragFeedbackDisposable=(0,u.OF)((function(){t.domNode.classList.remove("drop-target"),t.rowsContainer.classList.remove("drop-target")}));else{var s,l=(0,i.Z)(n);try{for(l.s();!(s=l.n()).done;){var c=s.value,d=this.items[c];d.dropTarget=!0,d.row&&d.row.domNode.classList.add("drop-target")}}catch(h){l.e(h)}finally{l.f()}this.currentDragFeedbackDisposable=(0,u.OF)((function(){var e,r=(0,i.Z)(n);try{for(r.s();!(e=r.n()).done;){var o=e.value,a=t.items[o];a.dropTarget=!1,a.row&&a.row.domNode.classList.remove("drop-target")}}catch(h){r.e(h)}finally{r.f()}}))}return!0}},{key:"onDragLeave",value:function(){var e=this;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=(0,S.Vg)((function(){return e.clearDragOverFeedback()}),100)}},{key:"onDrop",value:function(e){if(this.canDrop){var t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,k.P$.CurrentDragAndDropData=void 0,t&&e.browserEvent.dataTransfer&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.browserEvent))}}},{key:"onDragEnd",value:function(e){this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,k.P$.CurrentDragAndDropData=void 0,this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}},{key:"clearDragOverFeedback",value:function(){this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=u.JT.None}},{key:"setupDragAndDropScrollTopAnimation",value:function(e){var t=this;if(!this.dragOverAnimationDisposable){var n=(0,y.getTopLeftOffset)(this.domNode).top;this.dragOverAnimationDisposable=(0,y.animate)(this.animateDragAndDropScrollTop.bind(this,n))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=(0,S.Vg)((function(){t.dragOverAnimationDisposable&&(t.dragOverAnimationDisposable.dispose(),t.dragOverAnimationDisposable=void 0)}),1e3),this.dragOverMouseY=e.pageY}},{key:"animateDragAndDropScrollTop",value:function(e){if(void 0!==this.dragOverMouseY){var t=this.dragOverMouseY-e,n=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>n&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-n))))}}},{key:"teardownDragAndDropScrollTopAnimation",value:function(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}},{key:"getItemIndexFromEventTarget",value:function(e){for(var t=this.scrollableElement.getDomNode(),n=e;n instanceof HTMLElement&&n!==this.rowsContainer&&t.contains(n);){var i=n.getAttribute("data-index");if(i){var r=Number(i);if(!isNaN(r))return r}n=n.parentElement}}},{key:"getRenderRange",value:function(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}},{key:"_rerender",value:function(e,t,n){var r,o,a=this.getRenderRange(e,t);e===this.elementTop(a.start)?(r=a.start,o=0):a.end-a.start>1&&(r=a.start+1,o=this.elementTop(r)-e);for(var s=0;;){for(var u=this.getRenderRange(e,t),l=!1,c=u.start;c<u.end;c++){var d=this.probeDynamicHeight(c);0!==d&&this.rangeMap.splice(c,1,[this.items[c]]),s+=d,l=l||0!==d}if(!l){0!==s&&this.eventuallyUpdateScrollDimensions();var h,f=p.e.relativeComplement(a,u),v=(0,i.Z)(f);try{for(v.s();!(h=v.n()).done;)for(var g=h.value,m=g.start;m<g.end;m++)this.items[m].row&&this.removeItemFromDOM(m)}catch(D){v.e(D)}finally{v.f()}var _,y=p.e.relativeComplement(u,a),b=(0,i.Z)(y);try{for(b.s();!(_=b.n()).done;)for(var w=_.value,C=w.start;C<w.end;C++){var k=C+1,S=k<this.items.length?this.items[k].row:null,x=S?S.domNode:null;this.insertItemInDOM(C,x)}}catch(D){b.e(D)}finally{b.f()}for(var L=u.start;L<u.end;L++)this.items[L].row&&this.updateItemInDOM(this.items[L],L);if("number"===typeof r){var E=this.scrollable.getFutureScrollPosition().scrollTop-e,N=this.elementTop(r)-o+E;this.setScrollTop(N,n)}return void this._onDidChangeContentHeight.fire(this.contentHeight)}}}},{key:"probeDynamicHeight",value:function(e){var t=this.items[e];if(!t.hasDynamicHeight||t.lastDynamicHeightWidth===this.renderWidth)return 0;if(this.virtualDelegate.hasDynamicHeight&&!this.virtualDelegate.hasDynamicHeight(t.element))return 0;var n=t.size;if(!this.setRowHeight&&t.row){var i=t.row.domNode.offsetHeight;return t.size=i,t.lastDynamicHeightWidth=this.renderWidth,i-n}var r=this.cache.alloc(t.templateId);r.domNode.style.height="",this.rowsContainer.appendChild(r.domNode);var o=this.renderers.get(t.templateId);return o&&(o.renderElement(t.element,e,r.templateData,void 0),o.disposeElement&&o.disposeElement(t.element,e,r.templateData,void 0)),t.size=r.domNode.offsetHeight,this.virtualDelegate.setDynamicHeight&&this.virtualDelegate.setDynamicHeight(t.element,t.size),t.lastDynamicHeightWidth=this.renderWidth,this.rowsContainer.removeChild(r.domNode),this.cache.release(r),t.size-n}},{key:"getNextToLastElement",value:function(e){var t=e[e.length-1];if(!t)return null;var n=this.items[t.end];return n&&n.row?n.row.domNode:null}},{key:"getElementDomId",value:function(e){return"".concat(this.domId,"_").concat(e)}},{key:"dispose",value:function(){if(this.items){var e,t=(0,i.Z)(this.items);try{for(t.s();!(e=t.n()).done;){var n=e.value;if(n.row){var r=this.renderers.get(n.row.templateId);r&&(r.disposeElement&&r.disposeElement(n.element,-1,n.row.templateData,void 0),r.disposeTemplate(n.row.templateData))}}}catch(o){t.e(o)}finally{t.f()}this.items=[]}this.domNode&&this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),(0,u.B9)(this.disposables)}}]),e}();O.InstanceCount=0,L([w.H],O.prototype,"onMouseClick",null),L([w.H],O.prototype,"onMouseDblClick",null),L([w.H],O.prototype,"onMouseMiddleClick",null),L([w.H],O.prototype,"onMouseDown",null),L([w.H],O.prototype,"onContextMenu",null),L([w.H],O.prototype,"onTouchStart",null),L([w.H],O.prototype,"onTap",null)},92814:function(e,t,n){"use strict";n.d(t,{WK:function(){return z},wD:function(){return G},aV:function(){return ie},sx:function(){return q},cK:function(){return F},hD:function(){return j},wn:function(){return U},Zo:function(){return Y}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(93433),u=n(37762),l=n(15671),c=n(43144),d=n(87757),h=n.n(d),f=(n(43185),n(81626)),p=n(25941),v=n(49396),g=n(94995),m=n(30487),_=n(25044),y=n(31737),b=n(11732),w=n(61680),C=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){return(0,l.Z)(this,n),t.call(this,"ListError [".concat(e,"] ").concat(i))}return(0,c.Z)(n)}((0,n(28664).Z)(Error)),k=n(6709),S=n(89938),x=n(10405),L=function(){function e(t){(0,l.Z)(this,e),this.spliceables=t}return(0,c.Z)(e,[{key:"splice",value:function(e,t,n){this.spliceables.forEach((function(i){return i.splice(e,t,n)}))}}]),e}(),E=n(5265),N=n(50482),D=n(52180),M=n(84540),T=n(27997),O=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},I=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},A=function(){function e(t){(0,l.Z)(this,e),this.trait=t,this.renderedElements=[]}return(0,c.Z)(e,[{key:"templateId",get:function(){return"template:".concat(this.trait.trait)}},{key:"renderTemplate",value:function(e){return e}},{key:"renderElement",value:function(e,t,n){var i=this.renderedElements.findIndex((function(e){return e.templateData===n}));if(i>=0){var r=this.renderedElements[i];this.trait.unrender(n),r.index=t}else{var o={index:t,templateData:n};this.renderedElements.push(o)}this.trait.renderIndex(t,n)}},{key:"splice",value:function(e,t,n){var i,r=[],o=(0,u.Z)(this.renderedElements);try{for(o.s();!(i=o.n()).done;){var a=i.value;a.index<e?r.push(a):a.index>=e+t&&r.push({index:a.index+n-t,templateData:a.templateData})}}catch(s){o.e(s)}finally{o.f()}this.renderedElements=r}},{key:"renderIndexes",value:function(e){var t,n=(0,u.Z)(this.renderedElements);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=i.index,o=i.templateData;e.indexOf(r)>-1&&this.trait.renderIndex(r,o)}}catch(a){n.e(a)}finally{n.f()}}},{key:"disposeTemplate",value:function(e){var t=this.renderedElements.findIndex((function(t){return t.templateData===e}));t<0||this.renderedElements.splice(t,1)}}]),e}(),P=function(){function e(t){(0,l.Z)(this,e),this._trait=t,this.indexes=[],this.sortedIndexes=[],this._onChange=new b.Q5,this.onChange=this._onChange.event}return(0,c.Z)(e,[{key:"trait",get:function(){return this._trait}},{key:"renderer",get:function(){return new A(this)}},{key:"splice",value:function(e,t,n){var i=n.length-t,r=e+t,o=[].concat((0,s.Z)(this.sortedIndexes.filter((function(t){return t<e}))),(0,s.Z)(n.map((function(t,n){return t?n+e:-1})).filter((function(e){return-1!==e}))),(0,s.Z)(this.sortedIndexes.filter((function(e){return e>=r})).map((function(e){return e+i}))));this.renderer.splice(e,t,n.length),this._set(o,o)}},{key:"renderIndex",value:function(e,t){t.classList.toggle(this._trait,this.contains(e))}},{key:"unrender",value:function(e){e.classList.remove(this._trait)}},{key:"set",value:function(e,t){return this._set(e,(0,s.Z)(e).sort(J),t)}},{key:"_set",value:function(e,t,n){var i=this.indexes,r=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;var o=X(r,e);return this.renderer.renderIndexes(o),this._onChange.fire({indexes:e,browserEvent:n}),i}},{key:"get",value:function(){return this.indexes}},{key:"contains",value:function(e){return(0,v.ry)(this.sortedIndexes,e,J)>=0}},{key:"dispose",value:function(){(0,f.B9)(this._onChange)}}]),e}();O([g.H],P.prototype,"renderer",null);var R=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;return(0,l.Z)(this,n),(i=t.call(this,"selected")).setAriaSelected=e,i}return(0,c.Z)(n,[{key:"renderIndex",value:function(e,t){(0,i.Z)((0,r.Z)(n.prototype),"renderIndex",this).call(this,e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute("aria-selected","true"):t.setAttribute("aria-selected","false"))}}]),n}(P),Z=function(){function e(t,n,i){(0,l.Z)(this,e),this.trait=t,this.view=n,this.identityProvider=i}return(0,c.Z)(e,[{key:"splice",value:function(e,t,n){var i=this;if(!this.identityProvider)return this.trait.splice(e,t,n.map((function(){return!1})));var r=this.trait.get().map((function(e){return i.identityProvider.getId(i.view.element(e)).toString()})),o=n.map((function(e){return r.indexOf(i.identityProvider.getId(e).toString())>-1}));this.trait.splice(e,t,o)}}]),e}();function F(e){return"INPUT"===e.tagName||"TEXTAREA"===e.tagName}function j(e){return!!e.classList.contains("monaco-editor")||!e.classList.contains("monaco-list")&&(!!e.parentElement&&j(e.parentElement))}var H,B=function(){function e(t,n,i){(0,l.Z)(this,e),this.list=t,this.view=n,this.disposables=new f.SL;var r=!1!==i.multipleSelectionSupport,o=b.ju.chain((0,w.jt)(n.domNode,"keydown")).filter((function(e){return!F(e.target)})).map((function(e){return new y.y(e)}));o.filter((function(e){return 3===e.keyCode})).on(this.onEnter,this,this.disposables),o.filter((function(e){return 16===e.keyCode})).on(this.onUpArrow,this,this.disposables),o.filter((function(e){return 18===e.keyCode})).on(this.onDownArrow,this,this.disposables),o.filter((function(e){return 11===e.keyCode})).on(this.onPageUpArrow,this,this.disposables),o.filter((function(e){return 12===e.keyCode})).on(this.onPageDownArrow,this,this.disposables),o.filter((function(e){return 9===e.keyCode})).on(this.onEscape,this,this.disposables),r&&o.filter((function(e){return(m.dz?e.metaKey:e.ctrlKey)&&31===e.keyCode})).on(this.onCtrlA,this,this.disposables)}return(0,c.Z)(e,[{key:"onEnter",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}},{key:"onUpArrow",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}},{key:"onDownArrow",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}},{key:"onPageUpArrow",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}},{key:"onPageDownArrow",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()}},{key:"onCtrlA",value:function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection((0,v.w6)(this.list.length),e.browserEvent),this.view.domNode.focus()}},{key:"onEscape",value:function(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.view.domNode.focus())}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}();!function(e){e[e.Idle=0]="Idle",e[e.Typing=1]="Typing"}(H||(H={}));var z=new(function(){function e(){(0,l.Z)(this,e)}return(0,c.Z)(e,[{key:"mightProducePrintableCharacter",value:function(e){return!(e.ctrlKey||e.metaKey||e.altKey)&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30||e.keyCode>=93&&e.keyCode<=102||e.keyCode>=80&&e.keyCode<=90)}}]),e}()),W=function(){function e(t,n,i,r){(0,l.Z)(this,e),this.list=t,this.view=n,this.keyboardNavigationLabelProvider=i,this.delegate=r,this.enabled=!1,this.state=H.Idle,this.automaticKeyboardNavigation=!0,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new f.SL,this.disposables=new f.SL,this.updateOptions(t.options)}return(0,c.Z)(e,[{key:"updateOptions",value:function(e){"undefined"===typeof e.enableKeyboardNavigation||!!e.enableKeyboardNavigation?this.enable():this.disable(),"undefined"!==typeof e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation)}},{key:"enable",value:function(){var e=this;if(!this.enabled){var t=b.ju.chain((0,w.jt)(this.view.domNode,"keydown")).filter((function(e){return!F(e.target)})).filter((function(){return e.automaticKeyboardNavigation||e.triggered})).map((function(e){return new y.y(e)})).filter((function(t){return e.delegate.mightProducePrintableCharacter(t)})).forEach((function(e){e.stopPropagation(),e.preventDefault()})).map((function(e){return e.browserEvent.key})).event,n=b.ju.debounce(t,(function(){return null}),800);b.ju.reduce(b.ju.any(t,n),(function(e,t){return null===t?null:(e||"")+t}))(this.onInput,this,this.enabledDisposables),n(this.onClear,this,this.enabledDisposables),this.enabled=!0,this.triggered=!1}}},{key:"disable",value:function(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}},{key:"onClear",value:function(){var e,t=this.list.getFocus();if(t.length>0&&t[0]===this.previouslyFocused){var n=null===(e=this.list.options.accessibilityProvider)||void 0===e?void 0:e.getAriaLabel(this.list.element(t[0]));n&&(0,D.Z9)(n)}this.previouslyFocused=-1}},{key:"onInput",value:function(e){if(!e)return this.state=H.Idle,void(this.triggered=!1);var t=this.list.getFocus(),n=t.length>0?t[0]:0,i=this.state===H.Idle?1:0;this.state=H.Typing;for(var r=0;r<this.list.length;r++){var o=(n+r+i)%this.list.length,a=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(o)),s=a&&a.toString();if("undefined"===typeof s||(0,N.Ji)(e,s))return this.previouslyFocused=n,this.list.setFocus([o]),void this.list.reveal(o)}}},{key:"dispose",value:function(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}]),e}(),V=function(){function e(t,n){(0,l.Z)(this,e),this.list=t,this.view=n,this.disposables=new f.SL,b.ju.chain((0,w.jt)(n.domNode,"keydown")).filter((function(e){return!F(e.target)})).map((function(e){return new y.y(e)})).filter((function(e){return 2===e.keyCode&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey})).on(this.onTab,this,this.disposables)}return(0,c.Z)(e,[{key:"onTab",value:function(e){if(e.target===this.view.domNode){var t=this.list.getFocus();if(0!==t.length){var n=this.view.domElement(t[0]);if(n){var i=n.querySelector("[tabIndex]");if(i&&i instanceof HTMLElement&&-1!==i.tabIndex){var r=window.getComputedStyle(i);"hidden"!==r.visibility&&"none"!==r.display&&(e.preventDefault(),e.stopPropagation(),i.focus())}}}}}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}();function Y(e){return m.dz?e.browserEvent.metaKey:e.browserEvent.ctrlKey}function U(e){return e.browserEvent.shiftKey}var K={isSelectionSingleChangeEvent:Y,isSelectionRangeChangeEvent:U},q=function(){function e(t){(0,l.Z)(this,e),this.list=t,this.disposables=new f.SL,this._onPointer=new b.Q5,this.onPointer=this._onPointer.event,this.multipleSelectionSupport=!(!1===t.options.multipleSelectionSupport),this.multipleSelectionSupport&&(this.multipleSelectionController=t.options.multipleSelectionController||K),this.mouseSupport="undefined"===typeof t.options.mouseSupport||!!t.options.mouseSupport,this.mouseSupport&&(t.onMouseDown(this.onMouseDown,this,this.disposables),t.onContextMenu(this.onContextMenu,this,this.disposables),t.onMouseDblClick(this.onDoubleClick,this,this.disposables),t.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(_.o.addTarget(t.getHTMLElement()))),b.ju.any(t.onMouseClick,t.onMouseMiddleClick,t.onTap)(this.onViewPointer,this,this.disposables)}return(0,c.Z)(e,[{key:"isSelectionSingleChangeEvent",value:function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):m.dz?e.browserEvent.metaKey:e.browserEvent.ctrlKey}},{key:"isSelectionRangeChangeEvent",value:function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):e.browserEvent.shiftKey}},{key:"isSelectionChangeEvent",value:function(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}},{key:"onMouseDown",value:function(e){j(e.browserEvent.target)||document.activeElement!==e.browserEvent.target&&this.list.domFocus()}},{key:"onContextMenu",value:function(e){if(!j(e.browserEvent.target)){var t="undefined"===typeof e.index?[]:[e.index];this.list.setFocus(t,e.browserEvent)}}},{key:"onViewPointer",value:function(e){if(this.mouseSupport&&!F(e.browserEvent.target)&&!j(e.browserEvent.target)){var t,n=e.index;if("undefined"===typeof n)return this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),void this.list.setAnchor(void 0);if(this.multipleSelectionSupport&&this.isSelectionRangeChangeEvent(e))return this.changeSelection(e);if(this.multipleSelectionSupport&&this.isSelectionChangeEvent(e))return this.changeSelection(e);this.list.setFocus([n],e.browserEvent),this.list.setAnchor(n),(t=e.browserEvent)instanceof MouseEvent&&2===t.button||this.list.setSelection([n],e.browserEvent),this._onPointer.fire(e)}}},{key:"onDoubleClick",value:function(e){if(!F(e.browserEvent.target)&&!j(e.browserEvent.target)&&(!this.multipleSelectionSupport||!this.isSelectionChangeEvent(e))){var t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}}},{key:"changeSelection",value:function(e){var t=e.index,n=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)&&"number"===typeof n){var i=Math.min(n,t),r=Math.max(n,t),o=(0,v.w6)(i,r+1),a=this.list.getSelection(),u=function(e,t){var n=e.indexOf(t);if(-1===n)return[];var i=[],r=n-1;for(;r>=0&&e[r]===t-(n-r);)i.push(e[r--]);i.reverse(),r=n;for(;r<e.length&&e[r]===t+(r-n);)i.push(e[r++]);return i}(X(a,[n]),n);if(0===u.length)return;var l=X(o,function(e,t){var n=[],i=0,r=0;for(;i<e.length||r<t.length;)if(i>=e.length)n.push(t[r++]);else if(r>=t.length)n.push(e[i++]);else{if(e[i]===t[r]){i++,r++;continue}e[i]<t[r]?n.push(e[i++]):r++}return n}(a,u));this.list.setSelection(l,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){var c=this.list.getSelection(),d=c.filter((function(e){return e!==t}));this.list.setFocus([t]),this.list.setAnchor(t),c.length===d.length?this.list.setSelection([].concat((0,s.Z)(d),[t]),e.browserEvent):this.list.setSelection(d,e.browserEvent)}}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}(),G=function(){function e(t,n){(0,l.Z)(this,e),this.styleElement=t,this.selectorSuffix=n}return(0,c.Z)(e,[{key:"style",value:function(e){var t=this.selectorSuffix&&".".concat(this.selectorSuffix),n=[];e.listBackground&&(e.listBackground.isOpaque()?n.push(".monaco-list".concat(t," .monaco-list-rows { background: ").concat(e.listBackground,"; }")):m.dz||console.warn("List with id '".concat(this.selectorSuffix,"' was styled with a non-opaque background color. This will break sub-pixel antialiasing."))),e.listFocusBackground&&(n.push(".monaco-list".concat(t,":focus .monaco-list-row.focused { background-color: ").concat(e.listFocusBackground,"; }")),n.push(".monaco-list".concat(t,":focus .monaco-list-row.focused:hover { background-color: ").concat(e.listFocusBackground,"; }"))),e.listFocusForeground&&n.push(".monaco-list".concat(t,":focus .monaco-list-row.focused { color: ").concat(e.listFocusForeground,"; }")),e.listActiveSelectionBackground&&(n.push(".monaco-list".concat(t,":focus .monaco-list-row.selected { background-color: ").concat(e.listActiveSelectionBackground,"; }")),n.push(".monaco-list".concat(t,":focus .monaco-list-row.selected:hover { background-color: ").concat(e.listActiveSelectionBackground,"; }"))),e.listActiveSelectionForeground&&n.push(".monaco-list".concat(t,":focus .monaco-list-row.selected { color: ").concat(e.listActiveSelectionForeground,"; }")),e.listFocusAndSelectionBackground&&n.push("\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list".concat(t,":focus .monaco-list-row.selected.focused { background-color: ").concat(e.listFocusAndSelectionBackground,"; }\n\t\t\t")),e.listFocusAndSelectionForeground&&n.push("\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list".concat(t,":focus .monaco-list-row.selected.focused { color: ").concat(e.listFocusAndSelectionForeground,"; }\n\t\t\t")),e.listInactiveFocusForeground&&(n.push(".monaco-list".concat(t," .monaco-list-row.focused { color: ").concat(e.listInactiveFocusForeground,"; }")),n.push(".monaco-list".concat(t," .monaco-list-row.focused:hover { color: ").concat(e.listInactiveFocusForeground,"; }"))),e.listInactiveFocusBackground&&(n.push(".monaco-list".concat(t," .monaco-list-row.focused { background-color: ").concat(e.listInactiveFocusBackground,"; }")),n.push(".monaco-list".concat(t," .monaco-list-row.focused:hover { background-color: ").concat(e.listInactiveFocusBackground,"; }"))),e.listInactiveSelectionBackground&&(n.push(".monaco-list".concat(t," .monaco-list-row.selected { background-color: ").concat(e.listInactiveSelectionBackground,"; }")),n.push(".monaco-list".concat(t," .monaco-list-row.selected:hover { background-color: ").concat(e.listInactiveSelectionBackground,"; }"))),e.listInactiveSelectionForeground&&n.push(".monaco-list".concat(t," .monaco-list-row.selected { color: ").concat(e.listInactiveSelectionForeground,"; }")),e.listHoverBackground&&n.push(".monaco-list".concat(t,":not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ").concat(e.listHoverBackground,"; }")),e.listHoverForeground&&n.push(".monaco-list".concat(t," .monaco-list-row:hover:not(.selected):not(.focused) { color: ").concat(e.listHoverForeground,"; }")),e.listSelectionOutline&&n.push(".monaco-list".concat(t," .monaco-list-row.selected { outline: 1px dotted ").concat(e.listSelectionOutline,"; outline-offset: -1px; }")),e.listFocusOutline&&n.push("\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list".concat(t,":focus .monaco-list-row.focused { outline: 1px solid ").concat(e.listFocusOutline,"; outline-offset: -1px; }\n\t\t\t")),e.listInactiveFocusOutline&&n.push(".monaco-list".concat(t," .monaco-list-row.focused { outline: 1px dotted ").concat(e.listInactiveFocusOutline,"; outline-offset: -1px; }")),e.listHoverOutline&&n.push(".monaco-list".concat(t," .monaco-list-row:hover { outline: 1px dashed ").concat(e.listHoverOutline,"; outline-offset: -1px; }")),e.listDropBackground&&n.push("\n\t\t\t\t.monaco-list".concat(t,".drop-target,\n\t\t\t\t.monaco-list").concat(t," .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list").concat(t," .monaco-list-row.drop-target { background-color: ").concat(e.listDropBackground," !important; color: inherit !important; }\n\t\t\t")),e.listFilterWidgetBackground&&n.push(".monaco-list-type-filter { background-color: ".concat(e.listFilterWidgetBackground," }")),e.listFilterWidgetOutline&&n.push(".monaco-list-type-filter { border: 1px solid ".concat(e.listFilterWidgetOutline,"; }")),e.listFilterWidgetNoMatchesOutline&&n.push(".monaco-list-type-filter.no-matches { border: 1px solid ".concat(e.listFilterWidgetNoMatchesOutline,"; }")),e.listMatchesShadow&&n.push(".monaco-list-type-filter { box-shadow: 1px 1px 1px ".concat(e.listMatchesShadow,"; }")),e.tableColumnsBorder&&n.push("\n\t\t\t\t.monaco-table:hover > .monaco-split-view2,\n\t\t\t\t.monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ".concat(e.tableColumnsBorder,";\n\t\t\t}")),this.styleElement.textContent=n.join("\n")}}]),e}(),$={listFocusBackground:S.Il.fromHex("#7FB0D0"),listActiveSelectionBackground:S.Il.fromHex("#0E639C"),listActiveSelectionForeground:S.Il.fromHex("#FFFFFF"),listFocusAndSelectionBackground:S.Il.fromHex("#094771"),listFocusAndSelectionForeground:S.Il.fromHex("#FFFFFF"),listInactiveSelectionBackground:S.Il.fromHex("#3F3F46"),listHoverBackground:S.Il.fromHex("#2A2D2E"),listDropBackground:S.Il.fromHex("#383B3D"),treeIndentGuidesStroke:S.Il.fromHex("#a9a9a9"),tableColumnsBorder:S.Il.fromHex("#cccccc").transparent(.2)},Q={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI:function(){return null},onDragStart:function(){},onDragOver:function(){return!1},drop:function(){}}};function X(e,t){for(var n=[],i=0,r=0;i<e.length||r<t.length;)if(i>=e.length)n.push(t[r++]);else if(r>=t.length)n.push(e[i++]);else{if(e[i]===t[r]){n.push(e[i]),i++,r++;continue}e[i]<t[r]?n.push(e[i++]):n.push(t[r++])}return n}var J=function(e,t){return e-t},ee=function(){function e(t,n){(0,l.Z)(this,e),this._templateId=t,this.renderers=n}return(0,c.Z)(e,[{key:"templateId",get:function(){return this._templateId}},{key:"renderTemplate",value:function(e){return this.renderers.map((function(t){return t.renderTemplate(e)}))}},{key:"renderElement",value:function(e,t,n,i){var r,o=0,a=(0,u.Z)(this.renderers);try{for(a.s();!(r=a.n()).done;){r.value.renderElement(e,t,n[o++],i)}}catch(s){a.e(s)}finally{a.f()}}},{key:"disposeElement",value:function(e,t,n,i){var r,o=0,a=(0,u.Z)(this.renderers);try{for(a.s();!(r=a.n()).done;){var s=r.value;s.disposeElement&&s.disposeElement(e,t,n[o],i),o+=1}}catch(l){a.e(l)}finally{a.f()}}},{key:"disposeTemplate",value:function(e){var t,n=0,i=(0,u.Z)(this.renderers);try{for(i.s();!(t=i.n()).done;){t.value.disposeTemplate(e[n++])}}catch(r){i.e(r)}finally{i.f()}}}]),e}(),te=function(){function e(t){(0,l.Z)(this,e),this.accessibilityProvider=t,this.templateId="a18n"}return(0,c.Z)(e,[{key:"renderTemplate",value:function(e){return e}},{key:"renderElement",value:function(e,t,n){var i=this.accessibilityProvider.getAriaLabel(e);i?n.setAttribute("aria-label",i):n.removeAttribute("aria-label");var r=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);"number"===typeof r?n.setAttribute("aria-level","".concat(r)):n.removeAttribute("aria-level")}},{key:"disposeTemplate",value:function(e){}}]),e}(),ne=function(){function e(t,n){(0,l.Z)(this,e),this.list=t,this.dnd=n}return(0,c.Z)(e,[{key:"getDragElements",value:function(e){var t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}},{key:"getDragURI",value:function(e){return this.dnd.getDragURI(e)}},{key:"getDragLabel",value:function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}},{key:"onDragStart",value:function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(e,t)}},{key:"onDragOver",value:function(e,t,n,i){return this.dnd.onDragOver(e,t,n,i)}},{key:"onDragEnd",value:function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}},{key:"drop",value:function(e,t,n,i){this.dnd.drop(e,t,n,i)}}]),e}(),ie=function(){function e(t,n,i,r){var o,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Q;(0,l.Z)(this,e),this.user=t,this._options=a,this.focus=new P("focused"),this.anchor=new P("anchor"),this.eventBufferer=new b.E7,this._ariaLabel="",this.disposables=new f.SL,this._onDidDispose=new b.Q5,this.onDidDispose=this._onDidDispose.event;var s=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?null===(o=this._options.accessibilityProvider)||void 0===o?void 0:o.getWidgetRole():"list";this.selection=new R("listbox"!==s),(0,x.jB)(a,$,!1);var u=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=a.accessibilityProvider,this.accessibilityProvider&&(u.push(new te(this.accessibilityProvider)),this.accessibilityProvider.onDidChangeActiveDescendant&&this.accessibilityProvider.onDidChangeActiveDescendant(this.onDidChangeActiveDescendant,this,this.disposables)),r=r.map((function(e){return new ee(e.templateId,[].concat(u,[e]))}));var c=Object.assign(Object.assign({},a),{dnd:a.dnd&&new ne(this,a.dnd)});if(this.view=new k.Bv(n,i,r,c),this.view.domNode.setAttribute("role",s),a.styleController)this.styleController=a.styleController(this.view.domId);else{var d=(0,M.createStyleSheet)(this.view.domNode);this.styleController=new G(d,this.view.domId)}if(this.spliceable=new L([new Z(this.focus,this.view,a.identityProvider),new Z(this.selection,this.view,a.identityProvider),new Z(this.anchor,this.view,a.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.onDidFocus=b.ju.map((0,w.jt)(this.view.domNode,"focus",!0),(function(){return null})),this.onDidBlur=b.ju.map((0,w.jt)(this.view.domNode,"blur",!0),(function(){return null})),this.disposables.add(new V(this,this.view)),"boolean"!==typeof a.keyboardSupport||a.keyboardSupport){var h=new B(this,this.view,a);this.disposables.add(h)}if(a.keyboardNavigationLabelProvider){var p=a.keyboardNavigationDelegate||z;this.typeLabelController=new W(this,this.view,a.keyboardNavigationLabelProvider,p),this.disposables.add(this.typeLabelController)}this.mouseController=this.createMouseController(a),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),a.multipleSelectionSupport&&this.view.domNode.setAttribute("aria-multiselectable","true")}return(0,c.Z)(e,[{key:"onDidChangeFocus",get:function(){var e=this;return b.ju.map(this.eventBufferer.wrapEvent(this.focus.onChange),(function(t){return e.toListEvent(t)}))}},{key:"onDidChangeSelection",get:function(){var e=this;return b.ju.map(this.eventBufferer.wrapEvent(this.selection.onChange),(function(t){return e.toListEvent(t)}))}},{key:"domId",get:function(){return this.view.domId}},{key:"onMouseClick",get:function(){return this.view.onMouseClick}},{key:"onMouseDblClick",get:function(){return this.view.onMouseDblClick}},{key:"onMouseMiddleClick",get:function(){return this.view.onMouseMiddleClick}},{key:"onPointer",get:function(){return this.mouseController.onPointer}},{key:"onMouseDown",get:function(){return this.view.onMouseDown}},{key:"onTouchStart",get:function(){return this.view.onTouchStart}},{key:"onTap",get:function(){return this.view.onTap}},{key:"onContextMenu",get:function(){var e=this,t=!1,n=b.ju.chain((0,w.jt)(this.view.domNode,"keydown")).map((function(e){return new y.y(e)})).filter((function(e){return t=58===e.keyCode||e.shiftKey&&68===e.keyCode})).map(w.p7).filter((function(){return!1})).event,i=b.ju.chain((0,w.jt)(this.view.domNode,"keyup")).forEach((function(){return t=!1})).map((function(e){return new y.y(e)})).filter((function(e){return 58===e.keyCode||e.shiftKey&&68===e.keyCode})).map(w.p7).map((function(t){var n=t.browserEvent,i=e.getFocus(),r=i.length?i[0]:void 0;return{index:r,element:"undefined"!==typeof r?e.view.element(r):void 0,anchor:"undefined"!==typeof r?e.view.domElement(r):e.view.domNode,browserEvent:n}})).event,r=b.ju.chain(this.view.onContextMenu).filter((function(e){return!t})).map((function(e){var t=e.element,n=e.index,i=e.browserEvent;return{element:t,index:n,anchor:{x:i.clientX+1,y:i.clientY},browserEvent:i}})).event;return b.ju.any(n,i,r)}},{key:"onKeyDown",get:function(){return(0,w.jt)(this.view.domNode,"keydown")}},{key:"createMouseController",value:function(e){return new q(this)}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._options=Object.assign(Object.assign({},this._options),e),this.typeLabelController&&this.typeLabelController.updateOptions(this._options),this.view.updateOptions(e)}},{key:"options",get:function(){return this._options}},{key:"splice",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(e<0||e>this.view.length)throw new C(this.user,"Invalid start index: ".concat(e));if(t<0)throw new C(this.user,"Invalid delete count: ".concat(t));0===t&&0===i.length||this.eventBufferer.bufferEvents((function(){return n.spliceable.splice(e,t,i)}))}},{key:"rerender",value:function(){this.view.rerender()}},{key:"element",value:function(e){return this.view.element(e)}},{key:"length",get:function(){return this.view.length}},{key:"contentHeight",get:function(){return this.view.contentHeight}},{key:"scrollTop",get:function(){return this.view.getScrollTop()},set:function(e){this.view.setScrollTop(e)}},{key:"ariaLabel",get:function(){return this._ariaLabel},set:function(e){this._ariaLabel=e,this.view.domNode.setAttribute("aria-label",e)}},{key:"domFocus",value:function(){this.view.domNode.focus({preventScroll:!0})}},{key:"layout",value:function(e,t){this.view.layout(e,t)}},{key:"setSelection",value:function(e,t){var n,i=(0,u.Z)(e);try{for(i.s();!(n=i.n()).done;){var r=n.value;if(r<0||r>=this.length)throw new C(this.user,"Invalid index ".concat(r))}}catch(o){i.e(o)}finally{i.f()}this.selection.set(e,t)}},{key:"getSelection",value:function(){return this.selection.get()}},{key:"getSelectedElements",value:function(){var e=this;return this.getSelection().map((function(t){return e.view.element(t)}))}},{key:"setAnchor",value:function(e){if("undefined"!==typeof e){if(e<0||e>=this.length)throw new C(this.user,"Invalid index ".concat(e));this.anchor.set([e])}else this.anchor.set([])}},{key:"getAnchor",value:function(){return(0,v.Xh)(this.anchor.get(),void 0)}},{key:"setFocus",value:function(e,t){var n,i=(0,u.Z)(e);try{for(i.s();!(n=i.n()).done;){var r=n.value;if(r<0||r>=this.length)throw new C(this.user,"Invalid index ".concat(r))}}catch(o){i.e(o)}finally{i.f()}this.focus.set(e,t)}},{key:"focusNext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(0!==this.length){var r=this.focus.get(),o=this.findNextIndex(r.length>0?r[0]+e:0,t,i);o>-1&&this.setFocus([o],n)}}},{key:"focusPrevious",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;if(0!==this.length){var r=this.focus.get(),o=this.findPreviousIndex(r.length>0?r[0]-e:0,t,i);o>-1&&this.setFocus([o],n)}}},{key:"focusNextPage",value:function(e,t){return I(this,void 0,void 0,h().mark((function n(){var i,r,o,a,s;return h().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(i=0===(i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight))?0:i-1,r=this.view.element(i),(o=this.getFocusedElements()[0])===r){n.next=9;break}(a=this.findPreviousIndex(i,!1,t))>-1&&o!==this.view.element(a)?this.setFocus([a],e):this.setFocus([i],e),n.next=17;break;case 9:if(s=this.view.getScrollTop(),this.view.setScrollTop(s+this.view.renderHeight-this.view.elementHeight(i)),this.view.getScrollTop()===s){n.next=17;break}return this.setFocus([]),n.next=15,(0,T.Vs)(0);case 15:return n.next=17,this.focusNextPage(e,t);case 17:case"end":return n.stop()}}),n,this)})))}},{key:"focusPreviousPage",value:function(e,t){return I(this,void 0,void 0,h().mark((function n(){var i,r,o,a,s,u;return h().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=this.view.getScrollTop(),i=0===r?this.view.indexAt(r):this.view.indexAfter(r-1),o=this.view.element(i),(a=this.getFocusedElements()[0])===o){n.next=9;break}(s=this.findNextIndex(i,!1,t))>-1&&a!==this.view.element(s)?this.setFocus([s],e):this.setFocus([i],e),n.next=17;break;case 9:if(u=r,this.view.setScrollTop(r-this.view.renderHeight),this.view.getScrollTop()===u){n.next=17;break}return this.setFocus([]),n.next=15,(0,T.Vs)(0);case 15:return n.next=17,this.focusPreviousPage(e,t);case 17:case"end":return n.stop()}}),n,this)})))}},{key:"focusLast",value:function(e,t){if(0!==this.length){var n=this.findPreviousIndex(this.length-1,!1,t);n>-1&&this.setFocus([n],e)}}},{key:"focusFirst",value:function(e,t){this.focusNth(0,e,t)}},{key:"focusNth",value:function(e,t,n){if(0!==this.length){var i=this.findNextIndex(e,!1,n);i>-1&&this.setFocus([i],t)}}},{key:"findNextIndex",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=0;i<this.length;i++){if(e>=this.length&&!t)return-1;if(e%=this.length,!n||n(this.element(e)))return e;e++}return-1}},{key:"findPreviousIndex",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=0;i<this.length;i++){if(e<0&&!t)return-1;if(e=(this.length+e%this.length)%this.length,!n||n(this.element(e)))return e;e--}return-1}},{key:"getFocus",value:function(){return this.focus.get()}},{key:"getFocusedElements",value:function(){var e=this;return this.getFocus().map((function(t){return e.view.element(t)}))}},{key:"reveal",value:function(e,t){if(e<0||e>=this.length)throw new C(this.user,"Invalid index ".concat(e));var n=this.view.getScrollTop(),i=this.view.elementTop(e),r=this.view.elementHeight(e);if((0,p.hj)(t)){var o=r-this.view.renderHeight;this.view.setScrollTop(o*(0,E.u)(t,0,1)+i)}else{var a=i+r,s=n+this.view.renderHeight;i<n&&a>=s||(i<n||a>=s&&r>=this.view.renderHeight?this.view.setScrollTop(i):a>=s&&this.view.setScrollTop(a-this.view.renderHeight))}}},{key:"getRelativeTop",value:function(e){if(e<0||e>=this.length)throw new C(this.user,"Invalid index ".concat(e));var t=this.view.getScrollTop(),n=this.view.elementTop(e),i=this.view.elementHeight(e);if(n<t||n+i>t+this.view.renderHeight)return null;var r=i-this.view.renderHeight;return Math.abs((t-n)/r)}},{key:"getHTMLElement",value:function(){return this.view.domNode}},{key:"style",value:function(e){this.styleController.style(e)}},{key:"toListEvent",value:function(e){var t=this,n=e.indexes,i=e.browserEvent;return{indexes:n,elements:n.map((function(e){return t.view.element(e)})),browserEvent:i}}},{key:"_onFocusChange",value:function(){var e=this.focus.get();this.view.domNode.classList.toggle("element-focused",e.length>0),this.onDidChangeActiveDescendant()}},{key:"onDidChangeActiveDescendant",value:function(){var e,t,n=this.focus.get();n.length>0?((null===(e=this.accessibilityProvider)||void 0===e?void 0:e.getActiveDescendantId)&&(t=this.accessibilityProvider.getActiveDescendantId(this.view.element(n[0]))),this.view.domNode.setAttribute("aria-activedescendant",t||this.view.getElementDomId(n[0]))):this.view.domNode.removeAttribute("aria-activedescendant")}},{key:"_onSelectionChange",value:function(){var e=this.selection.get();this.view.domNode.classList.toggle("selection-none",0===e.length),this.view.domNode.classList.toggle("selection-single",1===e.length),this.view.domNode.classList.toggle("selection-multiple",e.length>1)}},{key:"dispose",value:function(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}]),e}();O([g.H],ie.prototype,"onDidChangeFocus",null),O([g.H],ie.prototype,"onDidChangeSelection",null),O([g.H],ie.prototype,"onContextMenu",null)},79026:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var i="monaco-mouse-cursor-text"},2523:function(e,t,n){"use strict";n.d(t,{l:function(){return i},g:function(){return E}});var i,r=n(37762),o=n(93433),a=n(15671),s=n(43144),u=n(97326),l=n(11752),c=n(61120),d=n(60136),h=n(29388),f=n(81626),p=n(30487),v=n(25941),g=n(25044),m=n(55076),_=n(11732),y=n(84540),b=n(61680),w=n(27997),C=!1;!function(e){e.North="north",e.South="south",e.East="east",e.West="west"}(i||(i={}));var k=4,S=new _.Q5,x=300,L=new _.Q5,E=function(e){(0,d.Z)(n,e);var t=(0,h.Z)(n);function n(e,i,r){var o;return(0,a.Z)(this,n),(o=t.call(this)).hoverDelay=x,o.hoverDelayer=o._register(new w.vp(o.hoverDelay)),o._state=3,o._onDidEnablementChange=o._register(new _.Q5),o.onDidEnablementChange=o._onDidEnablementChange.event,o._onDidStart=o._register(new _.Q5),o.onDidStart=o._onDidStart.event,o._onDidChange=o._register(new _.Q5),o.onDidChange=o._onDidChange.event,o._onDidReset=o._register(new _.Q5),o.onDidReset=o._onDidReset.event,o._onDidEnd=o._register(new _.Q5),o.onDidEnd=o._onDidEnd.event,o.linkedSash=void 0,o.orthogonalStartSashDisposables=o._register(new f.SL),o.orthogonalStartDragHandleDisposables=o._register(new f.SL),o.orthogonalEndSashDisposables=o._register(new f.SL),o.orthogonalEndDragHandleDisposables=o._register(new f.SL),o.el=(0,y.append)(e,(0,y.$)(".monaco-sash")),r.orthogonalEdge&&o.el.classList.add("orthogonal-edge-".concat(r.orthogonalEdge)),p.dz&&o.el.classList.add("mac"),o._register((0,b.jt)(o.el,"mousedown")(o.onMouseDown,(0,u.Z)(o))),o._register((0,b.jt)(o.el,"dblclick")(o.onMouseDoubleClick,(0,u.Z)(o))),o._register((0,b.jt)(o.el,"mouseenter")((function(){return n.onMouseEnter((0,u.Z)(o))}))),o._register((0,b.jt)(o.el,"mouseleave")((function(){return n.onMouseLeave((0,u.Z)(o))}))),o._register(g.o.addTarget(o.el)),o._register((0,b.jt)(o.el,g.t.Start)((function(e){return o.onTouchStart(e)}),(0,u.Z)(o))),"number"===typeof r.size?(o.size=r.size,0===r.orientation?o.el.style.width="".concat(o.size,"px"):o.el.style.height="".concat(o.size,"px")):(o.size=k,o._register(S.event((function(e){o.size=e,o.layout()})))),o._register(L.event((function(e){return o.hoverDelay=e}))),o.hidden=!1,o.layoutProvider=i,o.orthogonalStartSash=r.orthogonalStartSash,o.orthogonalEndSash=r.orthogonalEndSash,o.orientation=r.orientation||0,1===o.orientation?(o.el.classList.add("horizontal"),o.el.classList.remove("vertical")):(o.el.classList.remove("horizontal"),o.el.classList.add("vertical")),o.el.classList.toggle("debug",C),o.layout(),o}return(0,s.Z)(n,[{key:"state",get:function(){return this._state},set:function(e){this._state!==e&&(this.el.classList.toggle("disabled",0===e),this.el.classList.toggle("minimum",1===e),this.el.classList.toggle("maximum",2===e),this._state=e,this._onDidEnablementChange.fire(e))}},{key:"orthogonalStartSash",get:function(){return this._orthogonalStartSash},set:function(e){var t=this;if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){var i=function(i){t.orthogonalStartDragHandleDisposables.clear(),0!==i&&(t._orthogonalStartDragHandle=(0,y.append)(t.el,(0,y.$)(".orthogonal-drag-handle.start")),t.orthogonalStartDragHandleDisposables.add((0,f.OF)((function(){return t._orthogonalStartDragHandle.remove()}))),(0,b.jt)(t._orthogonalStartDragHandle,"mouseenter")((function(){return n.onMouseEnter(e)}),void 0,t.orthogonalStartDragHandleDisposables),(0,b.jt)(t._orthogonalStartDragHandle,"mouseleave")((function(){return n.onMouseLeave(e)}),void 0,t.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange(i,this)),i(e.state)}this._orthogonalStartSash=e}},{key:"orthogonalEndSash",get:function(){return this._orthogonalEndSash},set:function(e){var t=this;if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){var i=function(i){t.orthogonalEndDragHandleDisposables.clear(),0!==i&&(t._orthogonalEndDragHandle=(0,y.append)(t.el,(0,y.$)(".orthogonal-drag-handle.end")),t.orthogonalEndDragHandleDisposables.add((0,f.OF)((function(){return t._orthogonalEndDragHandle.remove()}))),(0,b.jt)(t._orthogonalEndDragHandle,"mouseenter")((function(){return n.onMouseEnter(e)}),void 0,t.orthogonalEndDragHandleDisposables),(0,b.jt)(t._orthogonalEndDragHandle,"mouseleave")((function(){return n.onMouseLeave(e)}),void 0,t.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange(i,this)),i(e.state)}this._orthogonalEndSash=e}},{key:"onMouseDown",value:function(e){var t=this;y.EventHelper.stop(e,!1);var n=!1;if(!e.__orthogonalSashEvent){var i=this.getOrthogonalSash(e);i&&(n=!0,e.__orthogonalSashEvent=!0,i.onMouseDown(e))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onMouseDown(e)),this.state){var a,s=[].concat((0,o.Z)((0,y.getElementsByTagName)("iframe")),(0,o.Z)((0,y.getElementsByTagName)("webview"))),u=(0,r.Z)(s);try{for(u.s();!(a=u.n()).done;){a.value.style.pointerEvents="none"}}catch(C){u.e(C)}finally{u.f()}var l=new m.n(e),c=l.posx,d=l.posy,h=l.altKey,v={startX:c,currentX:c,startY:d,currentY:d,altKey:h};this.el.classList.add("active"),this._onDidStart.fire(v);var g=(0,y.createStyleSheet)(this.el),_=function(){var e="";e=n?"all-scroll":1===t.orientation?1===t.state?"s-resize":2===t.state?"n-resize":p.dz?"row-resize":"ns-resize":1===t.state?"e-resize":2===t.state?"w-resize":p.dz?"col-resize":"ew-resize",g.textContent="* { cursor: ".concat(e," !important; }")},w=new f.SL;_(),n||this.onDidEnablementChange(_,null,w);(0,b.jt)(window,"mousemove")((function(e){y.EventHelper.stop(e,!1);var n=new m.n(e),i={startX:c,currentX:n.posx,startY:d,currentY:n.posy,altKey:h};t._onDidChange.fire(i)}),null,w),(0,b.jt)(window,"mouseup")((function(e){y.EventHelper.stop(e,!1),t.el.removeChild(g),t.el.classList.remove("active"),t._onDidEnd.fire(),w.dispose();var n,i=(0,r.Z)(s);try{for(i.s();!(n=i.n()).done;){n.value.style.pointerEvents="auto"}}catch(C){i.e(C)}finally{i.f()}}),null,w)}}},{key:"onMouseDoubleClick",value:function(e){var t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}},{key:"onTouchStart",value:function(e){var t=this;y.EventHelper.stop(e);var n=[],i=e.pageX,r=e.pageY,o=e.altKey;this._onDidStart.fire({startX:i,currentX:i,startY:r,currentY:r,altKey:o}),n.push((0,y.addDisposableListener)(this.el,g.t.Change,(function(e){v.hj(e.pageX)&&v.hj(e.pageY)&&t._onDidChange.fire({startX:i,currentX:e.pageX,startY:r,currentY:e.pageY,altKey:o})}))),n.push((0,y.addDisposableListener)(this.el,g.t.End,(function(){t._onDidEnd.fire(),(0,f.B9)(n)})))}},{key:"clearSashHoverState",value:function(){n.onMouseLeave(this)}},{key:"layout",value:function(){if(0===this.orientation){var e=this.layoutProvider;this.el.style.left=e.getVerticalSashLeft(this)-this.size/2+"px",e.getVerticalSashTop&&(this.el.style.top=e.getVerticalSashTop(this)+"px"),e.getVerticalSashHeight&&(this.el.style.height=e.getVerticalSashHeight(this)+"px")}else{var t=this.layoutProvider;this.el.style.top=t.getHorizontalSashTop(this)-this.size/2+"px",t.getHorizontalSashLeft&&(this.el.style.left=t.getHorizontalSashLeft(this)+"px"),t.getHorizontalSashWidth&&(this.el.style.width=t.getHorizontalSashWidth(this)+"px")}}},{key:"hide",value:function(){this.hidden=!0,this.el.style.display="none",this.el.setAttribute("aria-hidden","true")}},{key:"getOrthogonalSash",value:function(e){if(e.target&&e.target instanceof HTMLElement)return e.target.classList.contains("orthogonal-drag-handle")?e.target.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash:void 0}},{key:"dispose",value:function(){(0,l.Z)((0,c.Z)(n.prototype),"dispose",this).call(this),this.el.remove()}}],[{key:"onMouseEnter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.el.classList.contains("active")?(e.hoverDelayer.cancel(),e.el.classList.add("hover")):e.hoverDelayer.trigger((function(){return e.el.classList.add("hover")}),e.hoverDelay).then(void 0,(function(){})),!t&&e.linkedSash&&n.onMouseEnter(e.linkedSash,!0)}},{key:"onMouseLeave",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.hoverDelayer.cancel(),e.el.classList.remove("hover"),!t&&e.linkedSash&&n.onMouseLeave(e.linkedSash,!0)}}]),n}(f.JT)},61727:function(e,t,n){"use strict";n.d(t,{s$:function(){return F},NB:function(){return R},$Z:function(){return Z}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(43144),u=n(15671),l=n(84540),c=n(41149),d=n(55076),h=n(78101),f=n(93433),p=n(43257),v=n(27997),g=11,m=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i,r;return(0,u.Z)(this,n),(r=t.call(this))._onActivate=e.onActivate,r.bgDomNode=document.createElement("div"),r.bgDomNode.className="arrow-background",r.bgDomNode.style.position="absolute",r.bgDomNode.style.width=e.bgWidth+"px",r.bgDomNode.style.height=e.bgHeight+"px","undefined"!==typeof e.top&&(r.bgDomNode.style.top="0px"),"undefined"!==typeof e.left&&(r.bgDomNode.style.left="0px"),"undefined"!==typeof e.bottom&&(r.bgDomNode.style.bottom="0px"),"undefined"!==typeof e.right&&(r.bgDomNode.style.right="0px"),r.domNode=document.createElement("div"),r.domNode.className=e.className,(i=r.domNode.classList).add.apply(i,(0,f.Z)(e.icon.classNamesArray)),r.domNode.style.position="absolute",r.domNode.style.width=g+"px",r.domNode.style.height=g+"px","undefined"!==typeof e.top&&(r.domNode.style.top=e.top+"px"),"undefined"!==typeof e.left&&(r.domNode.style.left=e.left+"px"),"undefined"!==typeof e.bottom&&(r.domNode.style.bottom=e.bottom+"px"),"undefined"!==typeof e.right&&(r.domNode.style.right=e.right+"px"),r._mouseMoveMonitor=r._register(new h.Z),r.onmousedown(r.bgDomNode,(function(e){return r._arrowMouseDown(e)})),r.onmousedown(r.domNode,(function(e){return r._arrowMouseDown(e)})),r._mousedownRepeatTimer=r._register(new v.zh),r._mousedownScheduleRepeatTimer=r._register(new v._F),r}return(0,s.Z)(n,[{key:"_arrowMouseDown",value:function(e){var t=this;this._onActivate(),this._mousedownRepeatTimer.cancel(),this._mousedownScheduleRepeatTimer.cancelAndSet((function(){t._mousedownRepeatTimer.cancelAndSet((function(){return t._onActivate()}),1e3/24)}),200),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,h.e,(function(e){}),(function(){t._mousedownRepeatTimer.cancel(),t._mousedownScheduleRepeatTimer.cancel()})),e.preventDefault()}}]),n}(p.$),_=n(81626),y=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o;return(0,u.Z)(this,n),(o=t.call(this))._visibility=e,o._visibleClassName=i,o._invisibleClassName=r,o._domNode=null,o._isVisible=!1,o._isNeeded=!1,o._shouldBeVisible=!1,o._revealTimer=o._register(new v._F),o}return(0,s.Z)(n,[{key:"applyVisibilitySetting",value:function(e){return 2!==this._visibility&&(3===this._visibility||e)}},{key:"setShouldBeVisible",value:function(e){var t=this.applyVisibilitySetting(e);this._shouldBeVisible!==t&&(this._shouldBeVisible=t,this.ensureVisibility())}},{key:"setIsNeeded",value:function(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}},{key:"setDomNode",value:function(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}},{key:"ensureVisibility",value:function(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)}},{key:"_reveal",value:function(){var e=this;this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet((function(){e._domNode&&e._domNode.setClassName(e._visibleClassName)}),0))}},{key:"_hide",value:function(e){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode&&this._domNode.setClassName(this._invisibleClassName+(e?" fade":"")))}}]),n}(_.JT),b=n(30487),w=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;return(0,u.Z)(this,n),(i=t.call(this))._lazyRender=e.lazyRender,i._host=e.host,i._scrollable=e.scrollable,i._scrollByPage=e.scrollByPage,i._scrollbarState=e.scrollbarState,i._visibilityController=i._register(new y(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),i._visibilityController.setIsNeeded(i._scrollbarState.isNeeded()),i._mouseMoveMonitor=i._register(new h.Z),i._shouldRender=!0,i.domNode=(0,c.X)(document.createElement("div")),i.domNode.setAttribute("role","presentation"),i.domNode.setAttribute("aria-hidden","true"),i._visibilityController.setDomNode(i.domNode),i.domNode.setPosition("absolute"),i.onmousedown(i.domNode.domNode,(function(e){return i._domNodeMouseDown(e)})),i}return(0,s.Z)(n,[{key:"_createArrow",value:function(e){var t=this._register(new m(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}},{key:"_createSlider",value:function(e,t,n,i){var r=this;this.slider=(0,c.X)(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),"number"===typeof n&&this.slider.setWidth(n),"number"===typeof i&&this.slider.setHeight(i),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this.onmousedown(this.slider.domNode,(function(e){e.leftButton&&(e.preventDefault(),r._sliderMouseDown(e,(function(){})))})),this.onclick(this.slider.domNode,(function(e){e.leftButton&&e.stopPropagation()}))}},{key:"_onElementSize",value:function(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}},{key:"_onElementScrollSize",value:function(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}},{key:"_onElementScrollPosition",value:function(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}},{key:"beginReveal",value:function(){this._visibilityController.setShouldBeVisible(!0)}},{key:"beginHide",value:function(){this._visibilityController.setShouldBeVisible(!1)}},{key:"render",value:function(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}},{key:"_domNodeMouseDown",value:function(e){e.target===this.domNode.domNode&&this._onMouseDown(e)}},{key:"delegateMouseDown",value:function(e){var t=this.domNode.domNode.getClientRects()[0].top,n=t+this._scrollbarState.getSliderPosition(),i=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),r=this._sliderMousePosition(e);n<=r&&r<=i?e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,(function(){}))):this._onMouseDown(e)}},{key:"_onMouseDown",value:function(e){var t,n;if(e.target===this.domNode.domNode&&"number"===typeof e.browserEvent.offsetX&&"number"===typeof e.browserEvent.offsetY)t=e.browserEvent.offsetX,n=e.browserEvent.offsetY;else{var i=l.getDomNodePagePosition(this.domNode.domNode);t=e.posx-i.left,n=e.posy-i.top}var r=this._mouseDownRelativePosition(t,n);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(r):this._scrollbarState.getDesiredScrollPositionFromOffset(r)),e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,(function(){})))}},{key:"_sliderMouseDown",value:function(e,t){var n=this,i=this._sliderMousePosition(e),r=this._sliderOrthogonalMousePosition(e),o=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,h.e,(function(e){var t=n._sliderOrthogonalMousePosition(e),a=Math.abs(t-r);if(b.ED&&a>140)n._setDesiredScrollPositionNow(o.getScrollPosition());else{var s=n._sliderMousePosition(e)-i;n._setDesiredScrollPositionNow(o.getDesiredScrollPositionFromDelta(s))}}),(function(){n.slider.toggleClassName("active",!1),n._host.onDragEnd(),t()})),this._host.onDragStart()}},{key:"_setDesiredScrollPositionNow",value:function(e){var t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}},{key:"updateScrollbarSize",value:function(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}},{key:"isNeeded",value:function(){return this._scrollbarState.isNeeded()}}]),n}(p.$),C=function(){function e(t,n,i,r,o,a){(0,u.Z)(this,e),this._scrollbarSize=Math.round(n),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(t),this._visibleSize=r,this._scrollSize=o,this._scrollPosition=a,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}return(0,s.Z)(e,[{key:"clone",value:function(){return new e(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}},{key:"setVisibleSize",value:function(e){var t=Math.round(e);return this._visibleSize!==t&&(this._visibleSize=t,this._refreshComputedValues(),!0)}},{key:"setScrollSize",value:function(e){var t=Math.round(e);return this._scrollSize!==t&&(this._scrollSize=t,this._refreshComputedValues(),!0)}},{key:"setScrollPosition",value:function(e){var t=Math.round(e);return this._scrollPosition!==t&&(this._scrollPosition=t,this._refreshComputedValues(),!0)}},{key:"setScrollbarSize",value:function(e){this._scrollbarSize=e}},{key:"_refreshComputedValues",value:function(){var t=e._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=t.computedAvailableSize,this._computedIsNeeded=t.computedIsNeeded,this._computedSliderSize=t.computedSliderSize,this._computedSliderRatio=t.computedSliderRatio,this._computedSliderPosition=t.computedSliderPosition}},{key:"getArrowSize",value:function(){return this._arrowSize}},{key:"getScrollPosition",value:function(){return this._scrollPosition}},{key:"getRectangleLargeSize",value:function(){return this._computedAvailableSize}},{key:"getRectangleSmallSize",value:function(){return this._scrollbarSize}},{key:"isNeeded",value:function(){return this._computedIsNeeded}},{key:"getSliderSize",value:function(){return this._computedSliderSize}},{key:"getSliderPosition",value:function(){return this._computedSliderPosition}},{key:"getDesiredScrollPositionFromOffset",value:function(e){if(!this._computedIsNeeded)return 0;var t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}},{key:"getDesiredScrollPositionFromOffsetPaged",value:function(e){if(!this._computedIsNeeded)return 0;var t=e-this._arrowSize,n=this._scrollPosition;return t<this._computedSliderPosition?n-=this._visibleSize:n+=this._visibleSize,n}},{key:"getDesiredScrollPositionFromDelta",value:function(e){if(!this._computedIsNeeded)return 0;var t=this._computedSliderPosition+e;return Math.round(t/this._computedSliderRatio)}}],[{key:"_computeValues",value:function(e,t,n,i,r){var o=Math.max(0,n-e),a=Math.max(0,o-2*t),s=i>0&&i>n;if(!s)return{computedAvailableSize:Math.round(o),computedIsNeeded:s,computedSliderSize:Math.round(a),computedSliderRatio:0,computedSliderPosition:0};var u=Math.round(Math.max(20,Math.floor(n*a/i))),l=(a-u)/(i-n),c=r*l;return{computedAvailableSize:Math.round(o),computedIsNeeded:s,computedSliderSize:Math.round(u),computedSliderRatio:l,computedSliderPosition:Math.round(c)}}}]),e}(),k=n(4354),S=(0,k.CM)("scrollbar-button-left",k.lA.triangleLeft),x=(0,k.CM)("scrollbar-button-right",k.lA.triangleRight),L=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o;(0,u.Z)(this,n);var a=e.getScrollDimensions(),s=e.getCurrentScrollPosition();if(o=t.call(this,{lazyRender:i.lazyRender,host:r,scrollbarState:new C(i.horizontalHasArrows?i.arrowSize:0,2===i.horizontal?0:i.horizontalScrollbarSize,2===i.vertical?0:i.verticalScrollbarSize,a.width,a.scrollWidth,s.scrollLeft),visibility:i.horizontal,extraScrollbarClassName:"horizontal",scrollable:e,scrollByPage:i.scrollByPage}),i.horizontalHasArrows){var l=(i.arrowSize-g)/2,c=(i.horizontalScrollbarSize-g)/2;o._createArrow({className:"scra",icon:S,top:c,left:l,bottom:void 0,right:void 0,bgWidth:i.arrowSize,bgHeight:i.horizontalScrollbarSize,onActivate:function(){return o._host.onMouseWheel(new d.q(null,1,0))}}),o._createArrow({className:"scra",icon:x,top:c,left:void 0,bottom:void 0,right:l,bgWidth:i.arrowSize,bgHeight:i.horizontalScrollbarSize,onActivate:function(){return o._host.onMouseWheel(new d.q(null,-1,0))}})}return o._createSlider(Math.floor((i.horizontalScrollbarSize-i.horizontalSliderSize)/2),0,void 0,i.horizontalSliderSize),o}return(0,s.Z)(n,[{key:"_updateSlider",value:function(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}},{key:"_renderDomNode",value:function(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}},{key:"onDidScroll",value:function(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}},{key:"_mouseDownRelativePosition",value:function(e,t){return e}},{key:"_sliderMousePosition",value:function(e){return e.posx}},{key:"_sliderOrthogonalMousePosition",value:function(e){return e.posy}},{key:"_updateScrollbarSize",value:function(e){this.slider.setHeight(e)}},{key:"writeScrollPosition",value:function(e,t){e.scrollLeft=t}}]),n}(w),E=(0,k.CM)("scrollbar-button-up",k.lA.triangleUp),N=(0,k.CM)("scrollbar-button-down",k.lA.triangleDown),D=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o;(0,u.Z)(this,n);var a=e.getScrollDimensions(),s=e.getCurrentScrollPosition();if(o=t.call(this,{lazyRender:i.lazyRender,host:r,scrollbarState:new C(i.verticalHasArrows?i.arrowSize:0,2===i.vertical?0:i.verticalScrollbarSize,0,a.height,a.scrollHeight,s.scrollTop),visibility:i.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:i.scrollByPage}),i.verticalHasArrows){var l=(i.arrowSize-g)/2,c=(i.verticalScrollbarSize-g)/2;o._createArrow({className:"scra",icon:E,top:l,left:c,bottom:void 0,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:function(){return o._host.onMouseWheel(new d.q(null,0,1))}}),o._createArrow({className:"scra",icon:N,top:void 0,left:c,bottom:l,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:function(){return o._host.onMouseWheel(new d.q(null,0,-1))}})}return o._createSlider(0,Math.floor((i.verticalScrollbarSize-i.verticalSliderSize)/2),i.verticalSliderSize,void 0),o}return(0,s.Z)(n,[{key:"_updateSlider",value:function(e,t){this.slider.setHeight(e),this.slider.setTop(t)}},{key:"_renderDomNode",value:function(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}},{key:"onDidScroll",value:function(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}},{key:"_mouseDownRelativePosition",value:function(e,t){return t}},{key:"_sliderMousePosition",value:function(e){return e.posy}},{key:"_sliderOrthogonalMousePosition",value:function(e){return e.posx}},{key:"_updateScrollbarSize",value:function(e){this.slider.setWidth(e)}},{key:"writeScrollPosition",value:function(e,t){e.scrollTop=t}}]),n}(w),M=n(11732),T=n(58604),O=n(84539),I=(0,s.Z)((function e(t,n,i){(0,u.Z)(this,e),this.timestamp=t,this.deltaX=n,this.deltaY=i,this.score=0})),A=function(){function e(){(0,u.Z)(this,e),this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}return(0,s.Z)(e,[{key:"isPhysicalMouseWheel",value:function(){if(-1===this._front&&-1===this._rear)return!1;for(var e=1,t=0,n=1,i=this._rear;;){var r=i===this._front?e:Math.pow(2,-n);if(e-=r,t+=this._memory[i].score*r,i===this._front)break;i=(this._capacity+i-1)%this._capacity,n++}return t<=.5}},{key:"accept",value:function(e,t,n){var i=new I(e,t,n);i.score=this._computeScore(i),-1===this._front&&-1===this._rear?(this._memory[0]=i,this._front=0,this._rear=0):(this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=i)}},{key:"_computeScore",value:function(e){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;var t=.5;-1===this._front&&-1===this._rear||this._memory[this._rear];return this._isAlmostInt(e.deltaX)&&this._isAlmostInt(e.deltaY)||(t+=.25),Math.min(Math.max(t,0),1)}},{key:"_isAlmostInt",value:function(e){return Math.abs(Math.round(e)-e)<.01}}]),e}();A.INSTANCE=new A;var P=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){var o;(0,u.Z)(this,n),(o=t.call(this))._onScroll=o._register(new M.Q5),o.onScroll=o._onScroll.event,o._onWillScroll=o._register(new M.Q5),e.style.overflow="hidden",o._options=function(e){var t={lazyRender:"undefined"!==typeof e.lazyRender&&e.lazyRender,className:"undefined"!==typeof e.className?e.className:"",useShadows:"undefined"===typeof e.useShadows||e.useShadows,handleMouseWheel:"undefined"===typeof e.handleMouseWheel||e.handleMouseWheel,flipAxes:"undefined"!==typeof e.flipAxes&&e.flipAxes,consumeMouseWheelIfScrollbarIsNeeded:"undefined"!==typeof e.consumeMouseWheelIfScrollbarIsNeeded&&e.consumeMouseWheelIfScrollbarIsNeeded,alwaysConsumeMouseWheel:"undefined"!==typeof e.alwaysConsumeMouseWheel&&e.alwaysConsumeMouseWheel,scrollYToX:"undefined"!==typeof e.scrollYToX&&e.scrollYToX,mouseWheelScrollSensitivity:"undefined"!==typeof e.mouseWheelScrollSensitivity?e.mouseWheelScrollSensitivity:1,fastScrollSensitivity:"undefined"!==typeof e.fastScrollSensitivity?e.fastScrollSensitivity:5,scrollPredominantAxis:"undefined"===typeof e.scrollPredominantAxis||e.scrollPredominantAxis,mouseWheelSmoothScroll:"undefined"===typeof e.mouseWheelSmoothScroll||e.mouseWheelSmoothScroll,arrowSize:"undefined"!==typeof e.arrowSize?e.arrowSize:11,listenOnDomNode:"undefined"!==typeof e.listenOnDomNode?e.listenOnDomNode:null,horizontal:"undefined"!==typeof e.horizontal?e.horizontal:1,horizontalScrollbarSize:"undefined"!==typeof e.horizontalScrollbarSize?e.horizontalScrollbarSize:10,horizontalSliderSize:"undefined"!==typeof e.horizontalSliderSize?e.horizontalSliderSize:0,horizontalHasArrows:"undefined"!==typeof e.horizontalHasArrows&&e.horizontalHasArrows,vertical:"undefined"!==typeof e.vertical?e.vertical:1,verticalScrollbarSize:"undefined"!==typeof e.verticalScrollbarSize?e.verticalScrollbarSize:10,verticalHasArrows:"undefined"!==typeof e.verticalHasArrows&&e.verticalHasArrows,verticalSliderSize:"undefined"!==typeof e.verticalSliderSize?e.verticalSliderSize:0,scrollByPage:"undefined"!==typeof e.scrollByPage&&e.scrollByPage};t.horizontalSliderSize="undefined"!==typeof e.horizontalSliderSize?e.horizontalSliderSize:t.horizontalScrollbarSize,t.verticalSliderSize="undefined"!==typeof e.verticalSliderSize?e.verticalSliderSize:t.verticalScrollbarSize,b.dz&&(t.className+=" mac");return t}(i),o._scrollable=r,o._register(o._scrollable.onScroll((function(e){o._onWillScroll.fire(e),o._onDidScroll(e),o._onScroll.fire(e)})));var a={onMouseWheel:function(e){return o._onMouseWheel(e)},onDragStart:function(){return o._onDragStart()},onDragEnd:function(){return o._onDragEnd()}};return o._verticalScrollbar=o._register(new D(o._scrollable,o._options,a)),o._horizontalScrollbar=o._register(new L(o._scrollable,o._options,a)),o._domNode=document.createElement("div"),o._domNode.className="monaco-scrollable-element "+o._options.className,o._domNode.setAttribute("role","presentation"),o._domNode.style.position="relative",o._domNode.style.overflow="hidden",o._domNode.appendChild(e),o._domNode.appendChild(o._horizontalScrollbar.domNode.domNode),o._domNode.appendChild(o._verticalScrollbar.domNode.domNode),o._options.useShadows?(o._leftShadowDomNode=(0,c.X)(document.createElement("div")),o._leftShadowDomNode.setClassName("shadow"),o._domNode.appendChild(o._leftShadowDomNode.domNode),o._topShadowDomNode=(0,c.X)(document.createElement("div")),o._topShadowDomNode.setClassName("shadow"),o._domNode.appendChild(o._topShadowDomNode.domNode),o._topLeftShadowDomNode=(0,c.X)(document.createElement("div")),o._topLeftShadowDomNode.setClassName("shadow"),o._domNode.appendChild(o._topLeftShadowDomNode.domNode)):(o._leftShadowDomNode=null,o._topShadowDomNode=null,o._topLeftShadowDomNode=null),o._listenOnDomNode=o._options.listenOnDomNode||o._domNode,o._mouseWheelToDispose=[],o._setListeningToMouseWheel(o._options.handleMouseWheel),o.onmouseover(o._listenOnDomNode,(function(e){return o._onMouseOver(e)})),o.onnonbubblingmouseout(o._listenOnDomNode,(function(e){return o._onMouseOut(e)})),o._hideTimeout=o._register(new v._F),o._isDragging=!1,o._mouseIsOver=!1,o._shouldRender=!0,o._revealOnScroll=!0,o}return(0,s.Z)(n,[{key:"dispose",value:function(){this._mouseWheelToDispose=(0,_.B9)(this._mouseWheelToDispose),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getOverviewRulerLayoutInfo",value:function(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}},{key:"delegateVerticalScrollbarMouseDown",value:function(e){this._verticalScrollbar.delegateMouseDown(e)}},{key:"getScrollDimensions",value:function(){return this._scrollable.getScrollDimensions()}},{key:"setScrollDimensions",value:function(e){this._scrollable.setScrollDimensions(e,!1)}},{key:"updateClassName",value:function(e){this._options.className=e,b.dz&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}},{key:"updateOptions",value:function(e){"undefined"!==typeof e.handleMouseWheel&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),"undefined"!==typeof e.mouseWheelScrollSensitivity&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),"undefined"!==typeof e.fastScrollSensitivity&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),"undefined"!==typeof e.scrollPredominantAxis&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),"undefined"!==typeof e.horizontalScrollbarSize&&this._horizontalScrollbar.updateScrollbarSize(e.horizontalScrollbarSize),this._options.lazyRender||this._render()}},{key:"_setListeningToMouseWheel",value:function(e){var t=this;if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=(0,_.B9)(this._mouseWheelToDispose),e)){this._mouseWheelToDispose.push(l.addDisposableListener(this._listenOnDomNode,l.EventType.MOUSE_WHEEL,(function(e){t._onMouseWheel(new d.q(e))}),{passive:!1}))}}},{key:"_onMouseWheel",value:function(e){var t=A.INSTANCE,n=window.devicePixelRatio/(0,O.ie)();b.ED||b.IJ?t.accept(Date.now(),e.deltaX/n,e.deltaY/n):t.accept(Date.now(),e.deltaX,e.deltaY);var i=!1;if(e.deltaY||e.deltaX){var r=e.deltaY*this._options.mouseWheelScrollSensitivity,o=e.deltaX*this._options.mouseWheelScrollSensitivity;if(this._options.scrollPredominantAxis&&(Math.abs(r)>=Math.abs(o)?o=0:r=0),this._options.flipAxes){var a=[o,r];r=a[0],o=a[1]}var s=!b.dz&&e.browserEvent&&e.browserEvent.shiftKey;!this._options.scrollYToX&&!s||o||(o=r,r=0),e.browserEvent&&e.browserEvent.altKey&&(o*=this._options.fastScrollSensitivity,r*=this._options.fastScrollSensitivity);var u=this._scrollable.getFutureScrollPosition(),l={};if(r){var c=u.scrollTop-50*r;this._verticalScrollbar.writeScrollPosition(l,c)}if(o){var d=u.scrollLeft-50*o;this._horizontalScrollbar.writeScrollPosition(l,d)}if(l=this._scrollable.validateScrollPosition(l),u.scrollLeft!==l.scrollLeft||u.scrollTop!==l.scrollTop)this._options.mouseWheelSmoothScroll&&t.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(l):this._scrollable.setScrollPositionNow(l),i=!0}var h=i;!h&&this._options.alwaysConsumeMouseWheel&&(h=!0),!h&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(h=!0),h&&(e.preventDefault(),e.stopPropagation())}},{key:"_onDidScroll",value:function(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}},{key:"renderNow",value:function(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}},{key:"_render",value:function(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){var e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,n=e.scrollLeft>0,i=n?" left":"",r=t?" top":"",o=n||t?" top-left-corner":"";this._leftShadowDomNode.setClassName("shadow".concat(i)),this._topShadowDomNode.setClassName("shadow".concat(r)),this._topLeftShadowDomNode.setClassName("shadow".concat(o).concat(r).concat(i))}}},{key:"_onDragStart",value:function(){this._isDragging=!0,this._reveal()}},{key:"_onDragEnd",value:function(){this._isDragging=!1,this._hide()}},{key:"_onMouseOut",value:function(e){this._mouseIsOver=!1,this._hide()}},{key:"_onMouseOver",value:function(e){this._mouseIsOver=!0,this._reveal()}},{key:"_reveal",value:function(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}},{key:"_hide",value:function(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}},{key:"_scheduleHide",value:function(){var e=this;this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet((function(){return e._hide()}),500)}}]),n}(p.$),R=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;(0,u.Z)(this,n),(i=i||{}).mouseWheelSmoothScroll=!1;var o=new T.Rm(0,(function(e){return l.scheduleAtNextAnimationFrame(e)}));return(r=t.call(this,e,i,o))._register(o),r}return(0,s.Z)(n,[{key:"setScrollPosition",value:function(e){this._scrollable.setScrollPositionNow(e)}}]),n}(P),Z=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r){return(0,u.Z)(this,n),t.call(this,e,i,r)}return(0,s.Z)(n,[{key:"setScrollPosition",value:function(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}},{key:"getScrollPosition",value:function(){return this._scrollable.getCurrentScrollPosition()}}]),n}(P),F=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;return(0,u.Z)(this,n),(r=t.call(this,e,i))._element=e,r.onScroll((function(e){e.scrollTopChanged&&(r._element.scrollTop=e.scrollTop),e.scrollLeftChanged&&(r._element.scrollLeft=e.scrollLeft)})),r.scanDomNode(),r}return(0,s.Z)(n,[{key:"scanDomNode",value:function(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}]),n}(R)},44393:function(e,t,n){"use strict";n.d(t,{M:function(){return r},z:function(){return N}});var i,r,o=n(93433),a=n(37762),s=n(11752),u=n(61120),l=n(60136),c=n(29388),d=n(15671),h=n(43144),f=n(81626),p=n(11732),v=n(25941),g=n(5265),m=n(49396),_=n(2523),y=n(89938),b=n(61680),w=n(84540),C=n(61727),k=n(58604),S={separatorBorder:y.Il.transparent},x=function(){function e(t,n,i,r){(0,d.Z)(this,e),this.container=t,this.view=n,this.disposable=r,this._cachedVisibleSize=void 0,"number"===typeof i?(this._size=i,this._cachedVisibleSize=void 0,t.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}return(0,h.Z)(e,[{key:"size",get:function(){return this._size},set:function(e){this._size=e}},{key:"visible",get:function(){return"undefined"===typeof this._cachedVisibleSize}},{key:"setVisible",value:function(e,t){e!==this.visible&&(e?(this.size=(0,g.u)(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize="number"===typeof t?t:this.size,this.size=0),this.container.classList.toggle("visible",e),this.view.setVisible&&this.view.setVisible(e))}},{key:"minimumSize",get:function(){return this.visible?this.view.minimumSize:0}},{key:"viewMinimumSize",get:function(){return this.view.minimumSize}},{key:"maximumSize",get:function(){return this.visible?this.view.maximumSize:0}},{key:"viewMaximumSize",get:function(){return this.view.maximumSize}},{key:"priority",get:function(){return this.view.priority}},{key:"snap",get:function(){return!!this.view.snap}},{key:"enabled",set:function(e){this.container.style.pointerEvents=e?"":"none"}},{key:"layout",value:function(e,t){this.layoutContainer(e),this.view.layout(this.size,e,t)}},{key:"dispose",value:function(){return this.disposable.dispose(),this.view}}]),e}(),L=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(){return(0,d.Z)(this,n),t.apply(this,arguments)}return(0,h.Z)(n,[{key:"layoutContainer",value:function(e){this.container.style.top="".concat(e,"px"),this.container.style.height="".concat(this.size,"px")}}]),n}(x),E=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(){return(0,d.Z)(this,n),t.apply(this,arguments)}return(0,h.Z)(n,[{key:"layoutContainer",value:function(e){this.container.style.left="".concat(e,"px"),this.container.style.width="".concat(this.size,"px")}}]),n}(x);!function(e){e[e.Idle=0]="Idle",e[e.Busy=1]="Busy"}(i||(i={})),function(e){e.Distribute={type:"distribute"},e.Split=function(e){return{type:"split",index:e}},e.Invisible=function(e){return{type:"invisible",cachedVisibleSize:e}}}(r||(r={}));var N=function(e){(0,l.Z)(n,e);var t=(0,c.Z)(n);function n(e){var r,o,a,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,d.Z)(this,n),(r=t.call(this)).size=0,r.contentSize=0,r.proportions=void 0,r.viewItems=[],r.sashItems=[],r.state=i.Idle,r._onDidSashChange=r._register(new p.Q5),r.onDidSashChange=r._onDidSashChange.event,r._onDidSashReset=r._register(new p.Q5),r._startSnappingEnabled=!0,r._endSnappingEnabled=!0,r.orientation=v.o8(s.orientation)?0:s.orientation,r.inverseAltBehavior=!!s.inverseAltBehavior,r.proportionalLayout=!!v.o8(s.proportionalLayout)||!!s.proportionalLayout,r.getSashOrthogonalSize=s.getSashOrthogonalSize,r.el=document.createElement("div"),r.el.classList.add("monaco-split-view2"),r.el.classList.add(0===r.orientation?"vertical":"horizontal"),e.appendChild(r.el),r.sashContainer=(0,w.append)(r.el,(0,w.$)(".sash-container")),r.viewContainer=(0,w.$)(".split-view-container"),r.scrollable=new k.Rm(125,w.scheduleAtNextAnimationFrame),r.scrollableElement=r._register(new C.$Z(r.viewContainer,{vertical:0===r.orientation?null!==(o=s.scrollbarVisibility)&&void 0!==o?o:1:2,horizontal:1===r.orientation?null!==(a=s.scrollbarVisibility)&&void 0!==a?a:1:2},r.scrollable)),r._register(r.scrollableElement.onScroll((function(e){r.viewContainer.scrollTop=e.scrollTop,r.viewContainer.scrollLeft=e.scrollLeft}))),(0,w.append)(r.el,r.scrollableElement.getDomNode()),r.style(s.styles||S),s.descriptor&&(r.size=s.descriptor.size,s.descriptor.views.forEach((function(e,t){var n=v.o8(e.visible)||e.visible?e.size:{type:"invisible",cachedVisibleSize:e.size},i=e.view;r.doAddView(i,n,t,!0)})),r.contentSize=r.viewItems.reduce((function(e,t){return e+t.size}),0),r.saveProportions()),r}return(0,h.Z)(n,[{key:"orthogonalStartSash",get:function(){return this._orthogonalStartSash},set:function(e){var t,n=(0,a.Z)(this.sashItems);try{for(n.s();!(t=n.n()).done;){t.value.sash.orthogonalStartSash=e}}catch(i){n.e(i)}finally{n.f()}this._orthogonalStartSash=e}},{key:"orthogonalEndSash",get:function(){return this._orthogonalEndSash},set:function(e){var t,n=(0,a.Z)(this.sashItems);try{for(n.s();!(t=n.n()).done;){t.value.sash.orthogonalEndSash=e}}catch(i){n.e(i)}finally{n.f()}this._orthogonalEndSash=e}},{key:"startSnappingEnabled",get:function(){return this._startSnappingEnabled},set:function(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}},{key:"endSnappingEnabled",get:function(){return this._endSnappingEnabled},set:function(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}},{key:"style",value:function(e){e.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",e.separatorBorder.toString()))}},{key:"addView",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.viewItems.length,i=arguments.length>3?arguments[3]:void 0;this.doAddView(e,t,n,i)}},{key:"layout",value:function(e,t){var n=this,i=Math.max(this.size,this.contentSize);if(this.size=e,this.layoutContext=t,this.proportions)for(var r=0;r<this.viewItems.length;r++){var o=this.viewItems[r];o.size=(0,g.u)(Math.round(this.proportions[r]*e),o.minimumSize,o.maximumSize)}else{var a=(0,m.w6)(this.viewItems.length),s=a.filter((function(e){return 1===n.viewItems[e].priority})),u=a.filter((function(e){return 2===n.viewItems[e].priority}));this.resize(this.viewItems.length-1,e-i,void 0,s,u)}this.distributeEmptySpace(),this.layoutViews()}},{key:"saveProportions",value:function(){var e=this;this.proportionalLayout&&this.contentSize>0&&(this.proportions=this.viewItems.map((function(t){return t.size/e.contentSize})))}},{key:"onSashStart",value:function(e){var t,n=this,i=e.sash,r=e.start,o=e.alt,s=(0,a.Z)(this.viewItems);try{for(s.s();!(t=s.n()).done;){t.value.enabled=!1}}catch(d){s.e(d)}finally{s.f()}var u=this.sashItems.findIndex((function(e){return e.sash===i})),l=(0,f.F8)((0,b.jt)(document.body,"keydown")((function(e){return c(n.sashDragState.current,e.altKey)})),(0,b.jt)(document.body,"keyup")((function(){return c(n.sashDragState.current,!1)}))),c=function(e,t){var i,r,o=n.viewItems.map((function(e){return e.size})),a=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY;if(n.inverseAltBehavior&&(t=!t),t)if(u===n.sashItems.length-1){var c=n.viewItems[u];a=(c.minimumSize-c.size)/2,s=(c.maximumSize-c.size)/2}else{var d=n.viewItems[u+1];a=(d.size-d.maximumSize)/2,s=(d.size-d.minimumSize)/2}if(!t){var h=(0,m.w6)(u,-1),f=(0,m.w6)(u+1,n.viewItems.length),p=h.reduce((function(e,t){return e+(n.viewItems[t].minimumSize-o[t])}),0),v=h.reduce((function(e,t){return e+(n.viewItems[t].viewMaximumSize-o[t])}),0),g=0===f.length?Number.POSITIVE_INFINITY:f.reduce((function(e,t){return e+(o[t]-n.viewItems[t].minimumSize)}),0),_=0===f.length?Number.NEGATIVE_INFINITY:f.reduce((function(e,t){return e+(o[t]-n.viewItems[t].viewMaximumSize)}),0),y=Math.max(p,_),b=Math.min(g,v),w=n.findFirstSnapIndex(h),C=n.findFirstSnapIndex(f);if("number"===typeof w){var k=n.viewItems[w],S=Math.floor(k.viewMinimumSize/2);i={index:w,limitDelta:k.visible?y-S:y+S,size:k.size}}if("number"===typeof C){var x=n.viewItems[C],L=Math.floor(x.viewMinimumSize/2);r={index:C,limitDelta:x.visible?b+L:b-L,size:x.size}}}n.sashDragState={start:e,current:e,index:u,sizes:o,minDelta:a,maxDelta:s,alt:t,snapBefore:i,snapAfter:r,disposable:l}};c(r,o)}},{key:"onSashChange",value:function(e){var t=e.current,n=this.sashDragState,i=n.index,r=n.start,o=n.sizes,a=n.alt,s=n.minDelta,u=n.maxDelta,l=n.snapBefore,c=n.snapAfter;this.sashDragState.current=t;var d=t-r,h=this.resize(i,d,o,void 0,void 0,s,u,l,c);if(a){var f=i===this.sashItems.length-1,p=this.viewItems.map((function(e){return e.size})),v=f?i:i+1,g=this.viewItems[v],m=g.size-g.maximumSize,_=g.size-g.minimumSize,y=f?i-1:i+1;this.resize(y,-h,p,void 0,void 0,m,_)}this.distributeEmptySpace(),this.layoutViews()}},{key:"onSashEnd",value:function(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();var t,n=(0,a.Z)(this.viewItems);try{for(n.s();!(t=n.n()).done;){t.value.enabled=!0}}catch(i){n.e(i)}finally{n.f()}}},{key:"onViewChange",value:function(e,t){var n=this.viewItems.indexOf(e);n<0||n>=this.viewItems.length||(t="number"===typeof t?t:e.size,t=(0,g.u)(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&n>0?(this.resize(n-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([n],void 0)))}},{key:"resizeView",value:function(e,t){var n=this;if(this.state!==i.Idle)throw new Error("Cant modify splitview");if(this.state=i.Busy,!(e<0||e>=this.viewItems.length)){var r=(0,m.w6)(this.viewItems.length).filter((function(t){return t!==e})),a=[].concat((0,o.Z)(r.filter((function(e){return 1===n.viewItems[e].priority}))),[e]),s=r.filter((function(e){return 2===n.viewItems[e].priority})),u=this.viewItems[e];t=Math.round(t),t=(0,g.u)(t,u.minimumSize,Math.min(u.maximumSize,this.size)),u.size=t,this.relayout(a,s),this.state=i.Idle}}},{key:"distributeViewSizes",value:function(){var e,t=this,n=[],i=0,r=(0,a.Z)(this.viewItems);try{for(r.s();!(e=r.n()).done;){var o=e.value;o.maximumSize-o.minimumSize>0&&(n.push(o),i+=o.size)}}catch(p){r.e(p)}finally{r.f()}for(var s=Math.floor(i/n.length),u=0,l=n;u<l.length;u++){var c=l[u];c.size=(0,g.u)(s,c.minimumSize,c.maximumSize)}var d=(0,m.w6)(this.viewItems.length),h=d.filter((function(e){return 1===t.viewItems[e].priority})),f=d.filter((function(e){return 2===t.viewItems[e].priority}));this.relayout(h,f)}},{key:"getViewSize",value:function(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}},{key:"doAddView",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.viewItems.length,o=arguments.length>3?arguments[3]:void 0;if(this.state!==i.Idle)throw new Error("Cant modify splitview");this.state=i.Busy;var a=(0,w.$)(".split-view-view");r===this.viewItems.length?this.viewContainer.appendChild(a):this.viewContainer.insertBefore(a,this.viewContainer.children.item(r));var s,u=e.onDidChange((function(e){return n.onViewChange(h,e)})),l=(0,f.OF)((function(){return n.viewContainer.removeChild(a)})),c=(0,f.F8)(u,l);s="number"===typeof t?t:"split"===t.type?this.getViewSize(t.index)/2:"invisible"===t.type?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize;var d,h=0===this.orientation?new L(a,e,s,c):new E(a,e,s,c);if(this.viewItems.splice(r,0,h),this.viewItems.length>1){var v={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},g=0===this.orientation?new _.g(this.sashContainer,{getHorizontalSashTop:function(e){return n.getSashPosition(e)},getHorizontalSashWidth:this.getSashOrthogonalSize},Object.assign(Object.assign({},v),{orientation:1})):new _.g(this.sashContainer,{getVerticalSashLeft:function(e){return n.getSashPosition(e)},getVerticalSashHeight:this.getSashOrthogonalSize},Object.assign(Object.assign({},v),{orientation:0})),y=0===this.orientation?function(e){return{sash:g,start:e.startY,current:e.currentY,alt:e.altKey}}:function(e){return{sash:g,start:e.startX,current:e.currentX,alt:e.altKey}},b=p.ju.map(g.onDidStart,y)(this.onSashStart,this),C=p.ju.map(g.onDidChange,y)(this.onSashChange,this),k=p.ju.map(g.onDidEnd,(function(){return n.sashItems.findIndex((function(e){return e.sash===g}))})),S=k(this.onSashEnd,this),x=g.onDidReset((function(){var e=n.sashItems.findIndex((function(e){return e.sash===g})),t=(0,m.w6)(e,-1),i=(0,m.w6)(e+1,n.viewItems.length),r=n.findFirstSnapIndex(t),o=n.findFirstSnapIndex(i);("number"!==typeof r||n.viewItems[r].visible)&&("number"!==typeof o||n.viewItems[o].visible)&&n._onDidSashReset.fire(e)})),N=(0,f.F8)(b,C,S,x,g),D={sash:g,disposable:N};this.sashItems.splice(r-1,0,D)}a.appendChild(e.element),"number"!==typeof t&&"split"===t.type&&(d=[t.index]),o||this.relayout([r],d),this.state=i.Idle,o||"number"===typeof t||"distribute"!==t.type||this.distributeViewSizes()}},{key:"relayout",value:function(e,t){var n=this.viewItems.reduce((function(e,t){return e+t.size}),0);this.resize(this.viewItems.length-1,this.size-n,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}},{key:"resize",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.viewItems.map((function(e){return e.size})),r=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Number.NEGATIVE_INFINITY,u=arguments.length>6&&void 0!==arguments[6]?arguments[6]:Number.POSITIVE_INFINITY,l=arguments.length>7?arguments[7]:void 0,c=arguments.length>8?arguments[8]:void 0;if(e<0||e>=this.viewItems.length)return 0;var d=(0,m.w6)(e,-1),h=(0,m.w6)(e+1,this.viewItems.length);if(o){var f,p=(0,a.Z)(o);try{for(p.s();!(f=p.n()).done;){var v=f.value;(0,m.zI)(d,v),(0,m.zI)(h,v)}}catch(V){p.e(V)}finally{p.f()}}if(r){var _,y=(0,a.Z)(r);try{for(y.s();!(_=y.n()).done;){var b=_.value;(0,m.al)(d,b),(0,m.al)(h,b)}}catch(V){y.e(V)}finally{y.f()}}var w=d.map((function(e){return n.viewItems[e]})),C=d.map((function(e){return i[e]})),k=h.map((function(e){return n.viewItems[e]})),S=h.map((function(e){return i[e]})),x=d.reduce((function(e,t){return e+(n.viewItems[t].minimumSize-i[t])}),0),L=d.reduce((function(e,t){return e+(n.viewItems[t].maximumSize-i[t])}),0),E=0===h.length?Number.POSITIVE_INFINITY:h.reduce((function(e,t){return e+(i[t]-n.viewItems[t].minimumSize)}),0),N=0===h.length?Number.NEGATIVE_INFINITY:h.reduce((function(e,t){return e+(i[t]-n.viewItems[t].maximumSize)}),0),D=Math.max(x,N,s),M=Math.min(E,L,u),T=!1;if(l){var O=this.viewItems[l.index],I=t>=l.limitDelta;T=I!==O.visible,O.setVisible(I,l.size)}if(!T&&c){var A=this.viewItems[c.index],P=t<c.limitDelta;T=P!==A.visible,A.setVisible(P,c.size)}if(T)return this.resize(e,t,i,r,o,s,u);for(var R=0,Z=t=(0,g.u)(t,D,M);R<w.length;R++){var F=w[R],j=(0,g.u)(C[R]+Z,F.minimumSize,F.maximumSize);Z-=j-C[R],F.size=j}for(var H=0,B=t;H<k.length;H++){var z=k[H],W=(0,g.u)(S[H]-B,z.minimumSize,z.maximumSize);B+=W-S[H],z.size=W}return t}},{key:"distributeEmptySpace",value:function(e){var t,n=this,i=this.viewItems.reduce((function(e,t){return e+t.size}),0),r=this.size-i,o=(0,m.w6)(this.viewItems.length-1,-1),s=o.filter((function(e){return 1===n.viewItems[e].priority})),u=o.filter((function(e){return 2===n.viewItems[e].priority})),l=(0,a.Z)(u);try{for(l.s();!(t=l.n()).done;){var c=t.value;(0,m.zI)(o,c)}}catch(y){l.e(y)}finally{l.f()}var d,h=(0,a.Z)(s);try{for(h.s();!(d=h.n()).done;){var f=d.value;(0,m.al)(o,f)}}catch(y){h.e(y)}finally{h.f()}"number"===typeof e&&(0,m.al)(o,e);for(var p=0;0!==r&&p<o.length;p++){var v=this.viewItems[o[p]],_=(0,g.u)(v.size+r,v.minimumSize,v.maximumSize);r-=_-v.size,v.size=_}}},{key:"layoutViews",value:function(){this.contentSize=this.viewItems.reduce((function(e,t){return e+t.size}),0);var e,t=0,n=(0,a.Z)(this.viewItems);try{for(n.s();!(e=n.n()).done;){var i=e.value;i.layout(t,this.layoutContext),t+=i.size}}catch(r){n.e(r)}finally{n.f()}this.sashItems.forEach((function(e){return e.sash.layout()})),this.updateSashEnablement(),this.updateScrollableElement()}},{key:"updateScrollableElement",value:function(){0===this.orientation?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this.contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this.contentSize})}},{key:"updateSashEnablement",value:function(){var e=!1,t=this.viewItems.map((function(t){return e=t.size-t.minimumSize>0||e}));e=!1;var n=this.viewItems.map((function(t){return e=t.maximumSize-t.size>0||e})),i=(0,o.Z)(this.viewItems).reverse();e=!1;var r=i.map((function(t){return e=t.size-t.minimumSize>0||e})).reverse();e=!1;for(var a=i.map((function(t){return e=t.maximumSize-t.size>0||e})).reverse(),s=0,u=0;u<this.sashItems.length;u++){var l=this.sashItems[u].sash;s+=this.viewItems[u].size;var c=!(t[u]&&a[u+1]),d=!(n[u]&&r[u+1]);if(c&&d){var h=(0,m.w6)(u,-1),f=(0,m.w6)(u+1,this.viewItems.length),p=this.findFirstSnapIndex(h),v=this.findFirstSnapIndex(f),g="number"===typeof p&&!this.viewItems[p].visible,_="number"===typeof v&&!this.viewItems[v].visible;g&&r[u]&&(s>0||this.startSnappingEnabled)?l.state=1:_&&t[u]&&(s<this.contentSize||this.endSnappingEnabled)?l.state=2:l.state=0}else l.state=c&&!d?1:!c&&d?2:3}}},{key:"getSashPosition",value:function(e){for(var t=0,n=0;n<this.sashItems.length;n++)if(t+=this.viewItems[n].size,this.sashItems[n].sash===e)return t;return 0}},{key:"findFirstSnapIndex",value:function(e){var t,n=(0,a.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=this.viewItems[i];if(r.visible&&r.snap)return i}}catch(c){n.e(c)}finally{n.f()}var o,s=(0,a.Z)(e);try{for(s.s();!(o=s.n()).done;){var u=o.value,l=this.viewItems[u];if(l.visible&&l.maximumSize-l.minimumSize>0)return;if(!l.visible&&l.snap)return u}}catch(c){s.e(c)}finally{s.f()}}},{key:"dispose",value:function(){(0,s.Z)((0,u.Z)(n.prototype),"dispose",this).call(this),this.viewItems.forEach((function(e){return e.dispose()})),this.viewItems=[],this.sashItems.forEach((function(e){return e.disposable.dispose()})),this.sashItems=[]}}]),n}(f.JT)},43257:function(e,t,n){"use strict";n.d(t,{$:function(){return h}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(84540),u=n(31737),l=n(55076),c=n(81626),d=n(25044),h=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"onclick",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.CLICK,(function(e){return t(new l.n(e))})))}},{key:"onmousedown",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.MOUSE_DOWN,(function(e){return t(new l.n(e))})))}},{key:"onmouseover",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.MOUSE_OVER,(function(e){return t(new l.n(e))})))}},{key:"onnonbubblingmouseout",value:function(e,t){this._register(s.addDisposableNonBubblingMouseOutListener(e,(function(e){return t(new l.n(e))})))}},{key:"onkeydown",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.KEY_DOWN,(function(e){return t(new u.y(e))})))}},{key:"onkeyup",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.KEY_UP,(function(e){return t(new u.y(e))})))}},{key:"oninput",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.INPUT,t))}},{key:"onblur",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.BLUR,t))}},{key:"onfocus",value:function(e,t){this._register(s.addDisposableListener(e,s.EventType.FOCUS,t))}},{key:"ignoreGesture",value:function(e){d.o.ignoreTarget(e)}}]),n}(c.JT)},29077:function(e,t,n){"use strict";n.d(t,{Wi:function(){return p},Z0:function(){return v},aU:function(){return f},eZ:function(){return m},wY:function(){return g}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(87757),u=n.n(s),l=n(56345),c=n(81626),d=n(11732),h=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},f=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],u=arguments.length>4?arguments[4]:void 0;return(0,i.Z)(this,n),(r=t.call(this))._onDidChange=r._register(new d.Q5),r.onDidChange=r._onDidChange.event,r._enabled=!0,r._checked=!1,r._id=e,r._label=o,r._cssClass=a,r._enabled=s,r._actionCallback=u,r}return(0,r.Z)(n,[{key:"id",get:function(){return this._id}},{key:"label",get:function(){return this._label},set:function(e){this._setLabel(e)}},{key:"_setLabel",value:function(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}},{key:"tooltip",get:function(){return this._tooltip||""},set:function(e){this._setTooltip(e)}},{key:"_setTooltip",value:function(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}},{key:"class",get:function(){return this._cssClass},set:function(e){this._setClass(e)}},{key:"_setClass",value:function(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}},{key:"enabled",get:function(){return this._enabled},set:function(e){this._setEnabled(e)}},{key:"_setEnabled",value:function(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}},{key:"checked",get:function(){return this._checked},set:function(e){this._setChecked(e)}},{key:"_setChecked",value:function(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}},{key:"run",value:function(e,t){return h(this,void 0,void 0,u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._actionCallback){t.next=3;break}return t.next=3,this._actionCallback(e);case 3:case"end":return t.stop()}}),t,this)})))}}]),n}(c.JT),p=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments))._onBeforeRun=e._register(new d.Q5),e.onBeforeRun=e._onBeforeRun.event,e._onDidRun=e._register(new d.Q5),e.onDidRun=e._onDidRun.event,e}return(0,r.Z)(n,[{key:"run",value:function(e,t){return h(this,void 0,void 0,u().mark((function n(){var i;return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e.enabled){n.next=2;break}return n.abrupt("return");case 2:return this._onBeforeRun.fire({action:e}),i=void 0,n.prev=4,n.next=7,this.runAction(e,t);case 7:n.next=12;break;case 9:n.prev=9,n.t0=n.catch(4),i=n.t0;case 12:this._onDidRun.fire({action:e,error:i});case 13:case"end":return n.stop()}}),n,this,[[4,9]])})))}},{key:"runAction",value:function(e,t){return h(this,void 0,void 0,u().mark((function n(){return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,e.run(t);case 2:case"end":return n.stop()}}),n)})))}}]),n}(c.JT),v=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this,n.ID,e,e?"separator text":"separator")).checked=!1,r.enabled=!1,r}return(0,r.Z)(n)}(f);v.ID="vs.actions.separator";var g=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.tooltip="",this.enabled=!0,this.checked=!1,this.id=t,this.label=n,this.class=o,this._actions=r}return(0,r.Z)(e,[{key:"actions",get:function(){return this._actions}},{key:"dispose",value:function(){}},{key:"run",value:function(){return h(this,void 0,void 0,u().mark((function e(){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})))}}]),e}(),m=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,n.ID,l.N("submenu.empty","(empty)"),void 0,!1)}return(0,r.Z)(n)}(f);m.ID="vs.actions.empty"},49396:function(e,t,n){"use strict";n.d(t,{EB:function(){return v},Gb:function(){return o},HW:function(){return c},JH:function(){return a},Of:function(){return p},XY:function(){return f},Xh:function(){return m},Zv:function(){return b},_2:function(){return k},al:function(){return C},cU:function(){return g},fS:function(){return s},kX:function(){return h},lG:function(){return l},ry:function(){return u},vM:function(){return d},w6:function(){return y},xH:function(){return _},zI:function(){return w}});var i=n(93433),r=n(37762);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e[e.length-(1+t)]}function a(e){if(0===e.length)throw new Error("Invalid tail call");return[e.slice(0,e.length-1),e[e.length-1]]}function s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e,t){return e===t};if(e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(var i=0,r=e.length;i<r;i++)if(!n(e[i],t[i]))return!1;return!0}function u(e,t,n){for(var i=0,r=e.length-1;i<=r;){var o=(i+r)/2|0,a=n(e[o],t);if(a<0)i=o+1;else{if(!(a>0))return o;r=o-1}}return-(i+1)}function l(e,t){var n=0,i=e.length;if(0===i)return 0;for(;n<i;){var r=Math.floor((n+i)/2);t(e[r])?i=r:n=r+1}return n}function c(e,t,n){if((e|=0)>=t.length)throw new TypeError("invalid index");var i,o=t[Math.floor(t.length*Math.random())],a=[],s=[],u=[],l=(0,r.Z)(t);try{for(l.s();!(i=l.n()).done;){var d=i.value,h=n(d,o);h<0?a.push(d):h>0?s.push(d):u.push(d)}}catch(f){l.e(f)}finally{l.f()}return e<a.length?c(e,a,n):e<a.length+u.length?u[0]:c(e-(a.length+u.length),s,n)}function d(e,t){var n,i=[],o=void 0,a=(0,r.Z)(e.slice(0).sort(t));try{for(a.s();!(n=a.n()).done;){var s=n.value;o&&0===t(o[0],s)?o.push(s):(o=[s],i.push(o))}}catch(u){a.e(u)}finally{a.f()}return i}function h(e){return e.filter((function(e){return!!e}))}function f(e){return!Array.isArray(e)||0===e.length}function p(e){return Array.isArray(e)&&e.length>0}function v(e,t){if(!t)return e.filter((function(t,n){return e.indexOf(t)===n}));var n=Object.create(null);return e.filter((function(e){var i=t(e);return!n[i]&&(n[i]=!0,!0)}))}function g(e){var t=new Set;return e.filter((function(e){return!t.has(e)&&(t.add(e),!0)}))}function m(e,t){return e.length>0?e[0]:t}function _(e){var t;return(t=[]).concat.apply(t,(0,i.Z)(e))}function y(e,t){var n="number"===typeof t?e:0;"number"===typeof t?n=e:(n=0,t=e);var i=[];if(n<=t)for(var r=n;r<t;r++)i.push(r);else for(var o=n;o>t;o--)i.push(o);return i}function b(e,t,n){var i=e.slice(0,t),r=e.slice(t);return i.concat(n,r)}function w(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.unshift(t))}function C(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))}function k(e){return Array.isArray(e)?e:[e]}},96147:function(e,t,n){"use strict";function i(e,t){if(!e)throw new Error(t?"Assertion failed (".concat(t,")"):"Assertion Failed")}n.d(t,{ok:function(){return i}})},27997:function(e,t,n){"use strict";n.d(t,{J8:function(){return d},PG:function(){return h},Ps:function(){return y},To:function(){return b},Ue:function(){return x},Vg:function(){return _},Vs:function(){return m},_F:function(){return w},eP:function(){return f},jT:function(){return S},pY:function(){return k},rH:function(){return g},vp:function(){return v},zh:function(){return C}});var i=n(15671),r=n(43144),o=n(87757),a=n.n(o),s=n(66526),u=n(8729),l=n(81626),c=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function d(e){return!!e&&"function"===typeof e.then}function h(e){var t=new s.A,n=e(t.token),o=new Promise((function(e,i){t.token.onCancellationRequested((function(){i((0,u.F0)())})),Promise.resolve(n).then((function(n){t.dispose(),e(n)}),(function(e){t.dispose(),i(e)}))}));return new(function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"cancel",value:function(){t.cancel()}},{key:"then",value:function(e,t){return o.then(e,t)}},{key:"catch",value:function(e){return this.then(void 0,e)}},{key:"finally",value:function(e){return o.finally(e)}}]),e}())}function f(e,t,n){return Promise.race([e,new Promise((function(e){return t.onCancellationRequested((function(){return e(n)}))}))])}var p=function(){function e(){(0,i.Z)(this,e),this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}return(0,r.Z)(e,[{key:"queue",value:function(e){var t=this;if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){var n=function(){t.queuedPromise=null;var e=t.queue(t.queuedPromiseFactory);return t.queuedPromiseFactory=null,e};this.queuedPromise=new Promise((function(e){t.activePromise.then(n,n).then(e)}))}return new Promise((function(e,n){t.queuedPromise.then(e,n)}))}return this.activePromise=e(),new Promise((function(e,n){t.activePromise.then((function(n){t.activePromise=null,e(n)}),(function(e){t.activePromise=null,n(e)}))}))}}]),e}(),v=function(){function e(t){(0,i.Z)(this,e),this.defaultDelay=t,this.timeout=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}return(0,r.Z)(e,[{key:"trigger",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.defaultDelay;return this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((function(e,n){t.doResolve=e,t.doReject=n})).then((function(){if(t.completionPromise=null,t.doResolve=null,t.task){var e=t.task;return t.task=null,e()}}))),this.timeout=setTimeout((function(){t.timeout=null,t.doResolve&&t.doResolve(null)}),n),this.completionPromise}},{key:"isTriggered",value:function(){return null!==this.timeout}},{key:"cancel",value:function(){this.cancelTimeout(),this.completionPromise&&(this.doReject&&this.doReject((0,u.F0)()),this.completionPromise=null)}},{key:"cancelTimeout",value:function(){null!==this.timeout&&(clearTimeout(this.timeout),this.timeout=null)}},{key:"dispose",value:function(){this.cancelTimeout()}}]),e}(),g=function(){function e(t){(0,i.Z)(this,e),this.delayer=new v(t),this.throttler=new p}return(0,r.Z)(e,[{key:"trigger",value:function(e,t){var n=this;return this.delayer.trigger((function(){return n.throttler.queue(e)}),t)}},{key:"cancel",value:function(){this.delayer.cancel()}},{key:"dispose",value:function(){this.delayer.dispose()}}]),e}();function m(e,t){return t?new Promise((function(n,i){var r=setTimeout(n,e);t.onCancellationRequested((function(){clearTimeout(r),i((0,u.F0)())}))})):h((function(t){return m(e,t)}))}function _(e){var t=setTimeout(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0);return(0,l.OF)((function(){return clearTimeout(t)}))}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return!!e},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=0,r=e.length;return function o(){if(i>=r)return Promise.resolve(n);var a=e[i++];return Promise.resolve(a()).then((function(e){return t(e)?Promise.resolve(e):o()}))}()}var b,w=function(){function e(t,n){(0,i.Z)(this,e),this._token=-1,"function"===typeof t&&"number"===typeof n&&this.setIfNotSet(t,n)}return(0,r.Z)(e,[{key:"dispose",value:function(){this.cancel()}},{key:"cancel",value:function(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)}},{key:"cancelAndSet",value:function(e,t){var n=this;this.cancel(),this._token=setTimeout((function(){n._token=-1,e()}),t)}},{key:"setIfNotSet",value:function(e,t){var n=this;-1===this._token&&(this._token=setTimeout((function(){n._token=-1,e()}),t))}}]),e}(),C=function(){function e(){(0,i.Z)(this,e),this._token=-1}return(0,r.Z)(e,[{key:"dispose",value:function(){this.cancel()}},{key:"cancel",value:function(){-1!==this._token&&(clearInterval(this._token),this._token=-1)}},{key:"cancelAndSet",value:function(e,t){this.cancel(),this._token=setInterval((function(){e()}),t)}}]),e}(),k=function(){function e(t,n){(0,i.Z)(this,e),this.timeoutToken=-1,this.runner=t,this.timeout=n,this.timeoutHandler=this.onTimeout.bind(this)}return(0,r.Z)(e,[{key:"dispose",value:function(){this.cancel(),this.runner=null}},{key:"cancel",value:function(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}},{key:"schedule",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.timeout;this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}},{key:"delay",get:function(){return this.timeout},set:function(e){this.timeout=e}},{key:"isScheduled",value:function(){return-1!==this.timeoutToken}},{key:"onTimeout",value:function(){this.timeoutToken=-1,this.runner&&this.doRun()}},{key:"doRun",value:function(){this.runner&&this.runner()}}]),e}();!function(){if("function"!==typeof requestIdleCallback||"function"!==typeof cancelIdleCallback){var e=Object.freeze({didTimeout:!0,timeRemaining:function(){return 15}});b=function(t){var n=setTimeout((function(){return t(e)})),i=!1;return{dispose:function(){i||(i=!0,clearTimeout(n))}}}}else b=function(e,t){var n=requestIdleCallback(e,"number"===typeof t?{timeout:t}:void 0),i=!1;return{dispose:function(){i||(i=!0,cancelIdleCallback(n))}}}}();var S,x=function(){function e(t){var n=this;(0,i.Z)(this,e),this._didRun=!1,this._executor=function(){try{n._value=t()}catch(e){n._error=e}finally{n._didRun=!0}},this._handle=b((function(){return n._executor()}))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._handle.dispose()}},{key:"value",get:function(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}}]),e}();!function(e){function t(e){return c(this,void 0,void 0,a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",Promise.allSettled(e));case 1:case"end":return t.stop()}}),t)})))}function n(e){return c(this,void 0,void 0,a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",Promise.all(e.map((function(e){return e.then((function(e){return{status:"fulfilled",value:e}}),(function(e){return{status:"rejected",reason:e}}))}))));case 1:case"end":return t.stop()}}),t)})))}e.allSettled=function(e){return c(this,void 0,void 0,a().mark((function i(){return a().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if("function"!==typeof Promise.allSettled){i.next=2;break}return i.abrupt("return",t(e));case 2:return i.abrupt("return",n(e));case 3:case"end":return i.stop()}}),i)})))},e.settled=function(e){return c(this,void 0,void 0,a().mark((function t(){var n,i;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=void 0,t.next=3,Promise.all(e.map((function(e){return e.then((function(e){return e}),(function(e){n||(n=e)}))})));case 3:if(i=t.sent,"undefined"===typeof n){t.next=6;break}throw n;case 6:return t.abrupt("return",i);case 7:case"end":return t.stop()}}),t)})))}}(S||(S={}))},27877:function(e,t,n){"use strict";n.d(t,{Ag:function(){return h},Cg:function(){return v},KN:function(){return l},Q$:function(){return p},T4:function(){return f},mP:function(){return c},oq:function(){return d}});var i,r=n(15671),o=n(43144),a=n(51747),s="undefined"!==typeof Buffer,u="undefined"!==typeof TextDecoder,l=function(){function e(t){(0,r.Z)(this,e),this.buffer=t,this.byteLength=this.buffer.byteLength}return(0,o.Z)(e,[{key:"toString",value:function(){return s?this.buffer.toString():u?(i||(i=new TextDecoder),i.decode(this.buffer)):a.CZ(this.buffer)}}],[{key:"wrap",value:function(t){return s&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new e(t)}}]),e}();function c(e,t){return e[t+0]<<0>>>0|e[t+1]<<8>>>0}function d(e,t,n){e[n+0]=255&t,t>>>=8,e[n+1]=255&t}function h(e,t){return e[t]*Math.pow(2,24)+e[t+1]*Math.pow(2,16)+e[t+2]*Math.pow(2,8)+e[t+3]}function f(e,t,n){e[n+3]=t,t>>>=8,e[n+2]=t,t>>>=8,e[n+1]=t,t>>>=8,e[n]=t}function p(e,t){return e[t]}function v(e,t,n){e[n]=t}},66526:function(e,t,n){"use strict";n.d(t,{A:function(){return l},T:function(){return i}});var i,r=n(15671),o=n(43144),a=n(11732),s=Object.freeze((function(e,t){var n=setTimeout(e.bind(t),0);return{dispose:function(){clearTimeout(n)}}}));!function(e){e.isCancellationToken=function(t){return t===e.None||t===e.Cancelled||(t instanceof u||!(!t||"object"!==typeof t)&&("boolean"===typeof t.isCancellationRequested&&"function"===typeof t.onCancellationRequested))},e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:a.ju.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:s})}(i||(i={}));var u=function(){function e(){(0,r.Z)(this,e),this._isCancelled=!1,this._emitter=null}return(0,o.Z)(e,[{key:"cancel",value:function(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}},{key:"isCancellationRequested",get:function(){return this._isCancelled}},{key:"onCancellationRequested",get:function(){return this._isCancelled?s:(this._emitter||(this._emitter=new a.Q5),this._emitter.event)}},{key:"dispose",value:function(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}]),e}(),l=function(){function e(t){(0,r.Z)(this,e),this._token=void 0,this._parentListener=void 0,this._parentListener=t&&t.onCancellationRequested(this.cancel,this)}return(0,o.Z)(e,[{key:"token",get:function(){return this._token||(this._token=new u),this._token}},{key:"cancel",value:function(){this._token?this._token instanceof u&&this._token.cancel():this._token=i.Cancelled}},{key:"dispose",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof u&&this._token.dispose():this._token=i.None}}]),e}()},4354:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},JL:function(){return c},dT:function(){return d},fK:function(){return u},lA:function(){return h}});var i=n(29439),r=n(15671),o=n(43144),a=n(11732),s=new(function(){function e(){(0,r.Z)(this,e),this._icons=new Map,this._onDidRegister=new a.Q5}return(0,o.Z)(e,[{key:"add",value:function(e){var t=this._icons.get(e.id);t?e.description?t.description=e.description:console.error("Duplicate registration of codicon ".concat(e.id)):(this._icons.set(e.id,e),this._onDidRegister.fire(e))}},{key:"get",value:function(e){return this._icons.get(e)}},{key:"all",get:function(){return this._icons.values()}},{key:"onDidRegister",get:function(){return this._onDidRegister.event}}]),e}()),u=s;function l(e,t){return new h(e,t)}function c(e){return e?e.replace(/\$\((.*?)\)/g,(function(e,t){return" ".concat(t," ")})).trim():""}var d,h=function(){function e(t,n,i){(0,r.Z)(this,e),this.id=t,this.definition=n,this.description=i,s.add(this)}return(0,o.Z)(e,[{key:"classNames",get:function(){return"codicon codicon-"+this.id}},{key:"classNamesArray",get:function(){return["codicon","codicon-"+this.id]}},{key:"cssSelector",get:function(){return".codicon.codicon-"+this.id}}]),e}();!function(e){e.iconNameSegment="[A-Za-z0-9]+",e.iconNameExpression="[A-Za-z0-9\\-]+",e.iconModifierExpression="~[A-Za-z]+";var t=new RegExp("^(".concat(e.iconNameExpression,")(").concat(e.iconModifierExpression,")?$"));function n(e){if(e instanceof h)return["codicon","codicon-"+e.id];var r=t.exec(e.id);if(!r)return n(h.error);var o=(0,i.Z)(r,3),a=o[1],s=o[2],u=["codicon","codicon-"+a];return s&&u.push("codicon-modifier-"+s.substr(1)),u}e.asClassNameArray=n,e.asClassName=function(e){return n(e).join(" ")},e.asCSSSelector=function(e){return"."+n(e).join(".")}}(d||(d={})),function(e){e.add=new e("add",{fontCharacter:"\\ea60"}),e.plus=new e("plus",{fontCharacter:"\\ea60"}),e.gistNew=new e("gist-new",{fontCharacter:"\\ea60"}),e.repoCreate=new e("repo-create",{fontCharacter:"\\ea60"}),e.lightbulb=new e("lightbulb",{fontCharacter:"\\ea61"}),e.lightBulb=new e("light-bulb",{fontCharacter:"\\ea61"}),e.repo=new e("repo",{fontCharacter:"\\ea62"}),e.repoDelete=new e("repo-delete",{fontCharacter:"\\ea62"}),e.gistFork=new e("gist-fork",{fontCharacter:"\\ea63"}),e.repoForked=new e("repo-forked",{fontCharacter:"\\ea63"}),e.gitPullRequest=new e("git-pull-request",{fontCharacter:"\\ea64"}),e.gitPullRequestAbandoned=new e("git-pull-request-abandoned",{fontCharacter:"\\ea64"}),e.recordKeys=new e("record-keys",{fontCharacter:"\\ea65"}),e.keyboard=new e("keyboard",{fontCharacter:"\\ea65"}),e.tag=new e("tag",{fontCharacter:"\\ea66"}),e.tagAdd=new e("tag-add",{fontCharacter:"\\ea66"}),e.tagRemove=new e("tag-remove",{fontCharacter:"\\ea66"}),e.person=new e("person",{fontCharacter:"\\ea67"}),e.personFollow=new e("person-follow",{fontCharacter:"\\ea67"}),e.personOutline=new e("person-outline",{fontCharacter:"\\ea67"}),e.personFilled=new e("person-filled",{fontCharacter:"\\ea67"}),e.gitBranch=new e("git-branch",{fontCharacter:"\\ea68"}),e.gitBranchCreate=new e("git-branch-create",{fontCharacter:"\\ea68"}),e.gitBranchDelete=new e("git-branch-delete",{fontCharacter:"\\ea68"}),e.sourceControl=new e("source-control",{fontCharacter:"\\ea68"}),e.mirror=new e("mirror",{fontCharacter:"\\ea69"}),e.mirrorPublic=new e("mirror-public",{fontCharacter:"\\ea69"}),e.star=new e("star",{fontCharacter:"\\ea6a"}),e.starAdd=new e("star-add",{fontCharacter:"\\ea6a"}),e.starDelete=new e("star-delete",{fontCharacter:"\\ea6a"}),e.starEmpty=new e("star-empty",{fontCharacter:"\\ea6a"}),e.comment=new e("comment",{fontCharacter:"\\ea6b"}),e.commentAdd=new e("comment-add",{fontCharacter:"\\ea6b"}),e.alert=new e("alert",{fontCharacter:"\\ea6c"}),e.warning=new e("warning",{fontCharacter:"\\ea6c"}),e.search=new e("search",{fontCharacter:"\\ea6d"}),e.searchSave=new e("search-save",{fontCharacter:"\\ea6d"}),e.logOut=new e("log-out",{fontCharacter:"\\ea6e"}),e.signOut=new e("sign-out",{fontCharacter:"\\ea6e"}),e.logIn=new e("log-in",{fontCharacter:"\\ea6f"}),e.signIn=new e("sign-in",{fontCharacter:"\\ea6f"}),e.eye=new e("eye",{fontCharacter:"\\ea70"}),e.eyeUnwatch=new e("eye-unwatch",{fontCharacter:"\\ea70"}),e.eyeWatch=new e("eye-watch",{fontCharacter:"\\ea70"}),e.circleFilled=new e("circle-filled",{fontCharacter:"\\ea71"}),e.primitiveDot=new e("primitive-dot",{fontCharacter:"\\ea71"}),e.closeDirty=new e("close-dirty",{fontCharacter:"\\ea71"}),e.debugBreakpoint=new e("debug-breakpoint",{fontCharacter:"\\ea71"}),e.debugBreakpointDisabled=new e("debug-breakpoint-disabled",{fontCharacter:"\\ea71"}),e.debugHint=new e("debug-hint",{fontCharacter:"\\ea71"}),e.primitiveSquare=new e("primitive-square",{fontCharacter:"\\ea72"}),e.edit=new e("edit",{fontCharacter:"\\ea73"}),e.pencil=new e("pencil",{fontCharacter:"\\ea73"}),e.info=new e("info",{fontCharacter:"\\ea74"}),e.issueOpened=new e("issue-opened",{fontCharacter:"\\ea74"}),e.gistPrivate=new e("gist-private",{fontCharacter:"\\ea75"}),e.gitForkPrivate=new e("git-fork-private",{fontCharacter:"\\ea75"}),e.lock=new e("lock",{fontCharacter:"\\ea75"}),e.mirrorPrivate=new e("mirror-private",{fontCharacter:"\\ea75"}),e.close=new e("close",{fontCharacter:"\\ea76"}),e.removeClose=new e("remove-close",{fontCharacter:"\\ea76"}),e.x=new e("x",{fontCharacter:"\\ea76"}),e.repoSync=new e("repo-sync",{fontCharacter:"\\ea77"}),e.sync=new e("sync",{fontCharacter:"\\ea77"}),e.clone=new e("clone",{fontCharacter:"\\ea78"}),e.desktopDownload=new e("desktop-download",{fontCharacter:"\\ea78"}),e.beaker=new e("beaker",{fontCharacter:"\\ea79"}),e.microscope=new e("microscope",{fontCharacter:"\\ea79"}),e.vm=new e("vm",{fontCharacter:"\\ea7a"}),e.deviceDesktop=new e("device-desktop",{fontCharacter:"\\ea7a"}),e.file=new e("file",{fontCharacter:"\\ea7b"}),e.fileText=new e("file-text",{fontCharacter:"\\ea7b"}),e.more=new e("more",{fontCharacter:"\\ea7c"}),e.ellipsis=new e("ellipsis",{fontCharacter:"\\ea7c"}),e.kebabHorizontal=new e("kebab-horizontal",{fontCharacter:"\\ea7c"}),e.mailReply=new e("mail-reply",{fontCharacter:"\\ea7d"}),e.reply=new e("reply",{fontCharacter:"\\ea7d"}),e.organization=new e("organization",{fontCharacter:"\\ea7e"}),e.organizationFilled=new e("organization-filled",{fontCharacter:"\\ea7e"}),e.organizationOutline=new e("organization-outline",{fontCharacter:"\\ea7e"}),e.newFile=new e("new-file",{fontCharacter:"\\ea7f"}),e.fileAdd=new e("file-add",{fontCharacter:"\\ea7f"}),e.newFolder=new e("new-folder",{fontCharacter:"\\ea80"}),e.fileDirectoryCreate=new e("file-directory-create",{fontCharacter:"\\ea80"}),e.trash=new e("trash",{fontCharacter:"\\ea81"}),e.trashcan=new e("trashcan",{fontCharacter:"\\ea81"}),e.history=new e("history",{fontCharacter:"\\ea82"}),e.clock=new e("clock",{fontCharacter:"\\ea82"}),e.folder=new e("folder",{fontCharacter:"\\ea83"}),e.fileDirectory=new e("file-directory",{fontCharacter:"\\ea83"}),e.symbolFolder=new e("symbol-folder",{fontCharacter:"\\ea83"}),e.logoGithub=new e("logo-github",{fontCharacter:"\\ea84"}),e.markGithub=new e("mark-github",{fontCharacter:"\\ea84"}),e.github=new e("github",{fontCharacter:"\\ea84"}),e.terminal=new e("terminal",{fontCharacter:"\\ea85"}),e.console=new e("console",{fontCharacter:"\\ea85"}),e.repl=new e("repl",{fontCharacter:"\\ea85"}),e.zap=new e("zap",{fontCharacter:"\\ea86"}),e.symbolEvent=new e("symbol-event",{fontCharacter:"\\ea86"}),e.error=new e("error",{fontCharacter:"\\ea87"}),e.stop=new e("stop",{fontCharacter:"\\ea87"}),e.variable=new e("variable",{fontCharacter:"\\ea88"}),e.symbolVariable=new e("symbol-variable",{fontCharacter:"\\ea88"}),e.array=new e("array",{fontCharacter:"\\ea8a"}),e.symbolArray=new e("symbol-array",{fontCharacter:"\\ea8a"}),e.symbolModule=new e("symbol-module",{fontCharacter:"\\ea8b"}),e.symbolPackage=new e("symbol-package",{fontCharacter:"\\ea8b"}),e.symbolNamespace=new e("symbol-namespace",{fontCharacter:"\\ea8b"}),e.symbolObject=new e("symbol-object",{fontCharacter:"\\ea8b"}),e.symbolMethod=new e("symbol-method",{fontCharacter:"\\ea8c"}),e.symbolFunction=new e("symbol-function",{fontCharacter:"\\ea8c"}),e.symbolConstructor=new e("symbol-constructor",{fontCharacter:"\\ea8c"}),e.symbolBoolean=new e("symbol-boolean",{fontCharacter:"\\ea8f"}),e.symbolNull=new e("symbol-null",{fontCharacter:"\\ea8f"}),e.symbolNumeric=new e("symbol-numeric",{fontCharacter:"\\ea90"}),e.symbolNumber=new e("symbol-number",{fontCharacter:"\\ea90"}),e.symbolStructure=new e("symbol-structure",{fontCharacter:"\\ea91"}),e.symbolStruct=new e("symbol-struct",{fontCharacter:"\\ea91"}),e.symbolParameter=new e("symbol-parameter",{fontCharacter:"\\ea92"}),e.symbolTypeParameter=new e("symbol-type-parameter",{fontCharacter:"\\ea92"}),e.symbolKey=new e("symbol-key",{fontCharacter:"\\ea93"}),e.symbolText=new e("symbol-text",{fontCharacter:"\\ea93"}),e.symbolReference=new e("symbol-reference",{fontCharacter:"\\ea94"}),e.goToFile=new e("go-to-file",{fontCharacter:"\\ea94"}),e.symbolEnum=new e("symbol-enum",{fontCharacter:"\\ea95"}),e.symbolValue=new e("symbol-value",{fontCharacter:"\\ea95"}),e.symbolRuler=new e("symbol-ruler",{fontCharacter:"\\ea96"}),e.symbolUnit=new e("symbol-unit",{fontCharacter:"\\ea96"}),e.activateBreakpoints=new e("activate-breakpoints",{fontCharacter:"\\ea97"}),e.archive=new e("archive",{fontCharacter:"\\ea98"}),e.arrowBoth=new e("arrow-both",{fontCharacter:"\\ea99"}),e.arrowDown=new e("arrow-down",{fontCharacter:"\\ea9a"}),e.arrowLeft=new e("arrow-left",{fontCharacter:"\\ea9b"}),e.arrowRight=new e("arrow-right",{fontCharacter:"\\ea9c"}),e.arrowSmallDown=new e("arrow-small-down",{fontCharacter:"\\ea9d"}),e.arrowSmallLeft=new e("arrow-small-left",{fontCharacter:"\\ea9e"}),e.arrowSmallRight=new e("arrow-small-right",{fontCharacter:"\\ea9f"}),e.arrowSmallUp=new e("arrow-small-up",{fontCharacter:"\\eaa0"}),e.arrowUp=new e("arrow-up",{fontCharacter:"\\eaa1"}),e.bell=new e("bell",{fontCharacter:"\\eaa2"}),e.bold=new e("bold",{fontCharacter:"\\eaa3"}),e.book=new e("book",{fontCharacter:"\\eaa4"}),e.bookmark=new e("bookmark",{fontCharacter:"\\eaa5"}),e.debugBreakpointConditionalUnverified=new e("debug-breakpoint-conditional-unverified",{fontCharacter:"\\eaa6"}),e.debugBreakpointConditional=new e("debug-breakpoint-conditional",{fontCharacter:"\\eaa7"}),e.debugBreakpointConditionalDisabled=new e("debug-breakpoint-conditional-disabled",{fontCharacter:"\\eaa7"}),e.debugBreakpointDataUnverified=new e("debug-breakpoint-data-unverified",{fontCharacter:"\\eaa8"}),e.debugBreakpointData=new e("debug-breakpoint-data",{fontCharacter:"\\eaa9"}),e.debugBreakpointDataDisabled=new e("debug-breakpoint-data-disabled",{fontCharacter:"\\eaa9"}),e.debugBreakpointLogUnverified=new e("debug-breakpoint-log-unverified",{fontCharacter:"\\eaaa"}),e.debugBreakpointLog=new e("debug-breakpoint-log",{fontCharacter:"\\eaab"}),e.debugBreakpointLogDisabled=new e("debug-breakpoint-log-disabled",{fontCharacter:"\\eaab"}),e.briefcase=new e("briefcase",{fontCharacter:"\\eaac"}),e.broadcast=new e("broadcast",{fontCharacter:"\\eaad"}),e.browser=new e("browser",{fontCharacter:"\\eaae"}),e.bug=new e("bug",{fontCharacter:"\\eaaf"}),e.calendar=new e("calendar",{fontCharacter:"\\eab0"}),e.caseSensitive=new e("case-sensitive",{fontCharacter:"\\eab1"}),e.check=new e("check",{fontCharacter:"\\eab2"}),e.checklist=new e("checklist",{fontCharacter:"\\eab3"}),e.chevronDown=new e("chevron-down",{fontCharacter:"\\eab4"}),e.chevronLeft=new e("chevron-left",{fontCharacter:"\\eab5"}),e.chevronRight=new e("chevron-right",{fontCharacter:"\\eab6"}),e.chevronUp=new e("chevron-up",{fontCharacter:"\\eab7"}),e.chromeClose=new e("chrome-close",{fontCharacter:"\\eab8"}),e.chromeMaximize=new e("chrome-maximize",{fontCharacter:"\\eab9"}),e.chromeMinimize=new e("chrome-minimize",{fontCharacter:"\\eaba"}),e.chromeRestore=new e("chrome-restore",{fontCharacter:"\\eabb"}),e.circleOutline=new e("circle-outline",{fontCharacter:"\\eabc"}),e.debugBreakpointUnverified=new e("debug-breakpoint-unverified",{fontCharacter:"\\eabc"}),e.circleSlash=new e("circle-slash",{fontCharacter:"\\eabd"}),e.circuitBoard=new e("circuit-board",{fontCharacter:"\\eabe"}),e.clearAll=new e("clear-all",{fontCharacter:"\\eabf"}),e.clippy=new e("clippy",{fontCharacter:"\\eac0"}),e.closeAll=new e("close-all",{fontCharacter:"\\eac1"}),e.cloudDownload=new e("cloud-download",{fontCharacter:"\\eac2"}),e.cloudUpload=new e("cloud-upload",{fontCharacter:"\\eac3"}),e.code=new e("code",{fontCharacter:"\\eac4"}),e.collapseAll=new e("collapse-all",{fontCharacter:"\\eac5"}),e.colorMode=new e("color-mode",{fontCharacter:"\\eac6"}),e.commentDiscussion=new e("comment-discussion",{fontCharacter:"\\eac7"}),e.compareChanges=new e("compare-changes",{fontCharacter:"\\eafd"}),e.creditCard=new e("credit-card",{fontCharacter:"\\eac9"}),e.dash=new e("dash",{fontCharacter:"\\eacc"}),e.dashboard=new e("dashboard",{fontCharacter:"\\eacd"}),e.database=new e("database",{fontCharacter:"\\eace"}),e.debugContinue=new e("debug-continue",{fontCharacter:"\\eacf"}),e.debugDisconnect=new e("debug-disconnect",{fontCharacter:"\\ead0"}),e.debugPause=new e("debug-pause",{fontCharacter:"\\ead1"}),e.debugRestart=new e("debug-restart",{fontCharacter:"\\ead2"}),e.debugStart=new e("debug-start",{fontCharacter:"\\ead3"}),e.debugStepInto=new e("debug-step-into",{fontCharacter:"\\ead4"}),e.debugStepOut=new e("debug-step-out",{fontCharacter:"\\ead5"}),e.debugStepOver=new e("debug-step-over",{fontCharacter:"\\ead6"}),e.debugStop=new e("debug-stop",{fontCharacter:"\\ead7"}),e.debug=new e("debug",{fontCharacter:"\\ead8"}),e.deviceCameraVideo=new e("device-camera-video",{fontCharacter:"\\ead9"}),e.deviceCamera=new e("device-camera",{fontCharacter:"\\eada"}),e.deviceMobile=new e("device-mobile",{fontCharacter:"\\eadb"}),e.diffAdded=new e("diff-added",{fontCharacter:"\\eadc"}),e.diffIgnored=new e("diff-ignored",{fontCharacter:"\\eadd"}),e.diffModified=new e("diff-modified",{fontCharacter:"\\eade"}),e.diffRemoved=new e("diff-removed",{fontCharacter:"\\eadf"}),e.diffRenamed=new e("diff-renamed",{fontCharacter:"\\eae0"}),e.diff=new e("diff",{fontCharacter:"\\eae1"}),e.discard=new e("discard",{fontCharacter:"\\eae2"}),e.editorLayout=new e("editor-layout",{fontCharacter:"\\eae3"}),e.emptyWindow=new e("empty-window",{fontCharacter:"\\eae4"}),e.exclude=new e("exclude",{fontCharacter:"\\eae5"}),e.extensions=new e("extensions",{fontCharacter:"\\eae6"}),e.eyeClosed=new e("eye-closed",{fontCharacter:"\\eae7"}),e.fileBinary=new e("file-binary",{fontCharacter:"\\eae8"}),e.fileCode=new e("file-code",{fontCharacter:"\\eae9"}),e.fileMedia=new e("file-media",{fontCharacter:"\\eaea"}),e.filePdf=new e("file-pdf",{fontCharacter:"\\eaeb"}),e.fileSubmodule=new e("file-submodule",{fontCharacter:"\\eaec"}),e.fileSymlinkDirectory=new e("file-symlink-directory",{fontCharacter:"\\eaed"}),e.fileSymlinkFile=new e("file-symlink-file",{fontCharacter:"\\eaee"}),e.fileZip=new e("file-zip",{fontCharacter:"\\eaef"}),e.files=new e("files",{fontCharacter:"\\eaf0"}),e.filter=new e("filter",{fontCharacter:"\\eaf1"}),e.flame=new e("flame",{fontCharacter:"\\eaf2"}),e.foldDown=new e("fold-down",{fontCharacter:"\\eaf3"}),e.foldUp=new e("fold-up",{fontCharacter:"\\eaf4"}),e.fold=new e("fold",{fontCharacter:"\\eaf5"}),e.folderActive=new e("folder-active",{fontCharacter:"\\eaf6"}),e.folderOpened=new e("folder-opened",{fontCharacter:"\\eaf7"}),e.gear=new e("gear",{fontCharacter:"\\eaf8"}),e.gift=new e("gift",{fontCharacter:"\\eaf9"}),e.gistSecret=new e("gist-secret",{fontCharacter:"\\eafa"}),e.gist=new e("gist",{fontCharacter:"\\eafb"}),e.gitCommit=new e("git-commit",{fontCharacter:"\\eafc"}),e.gitCompare=new e("git-compare",{fontCharacter:"\\eafd"}),e.gitMerge=new e("git-merge",{fontCharacter:"\\eafe"}),e.githubAction=new e("github-action",{fontCharacter:"\\eaff"}),e.githubAlt=new e("github-alt",{fontCharacter:"\\eb00"}),e.globe=new e("globe",{fontCharacter:"\\eb01"}),e.grabber=new e("grabber",{fontCharacter:"\\eb02"}),e.graph=new e("graph",{fontCharacter:"\\eb03"}),e.gripper=new e("gripper",{fontCharacter:"\\eb04"}),e.heart=new e("heart",{fontCharacter:"\\eb05"}),e.home=new e("home",{fontCharacter:"\\eb06"}),e.horizontalRule=new e("horizontal-rule",{fontCharacter:"\\eb07"}),e.hubot=new e("hubot",{fontCharacter:"\\eb08"}),e.inbox=new e("inbox",{fontCharacter:"\\eb09"}),e.issueClosed=new e("issue-closed",{fontCharacter:"\\eb0a"}),e.issueReopened=new e("issue-reopened",{fontCharacter:"\\eb0b"}),e.issues=new e("issues",{fontCharacter:"\\eb0c"}),e.italic=new e("italic",{fontCharacter:"\\eb0d"}),e.jersey=new e("jersey",{fontCharacter:"\\eb0e"}),e.json=new e("json",{fontCharacter:"\\eb0f"}),e.kebabVertical=new e("kebab-vertical",{fontCharacter:"\\eb10"}),e.key=new e("key",{fontCharacter:"\\eb11"}),e.law=new e("law",{fontCharacter:"\\eb12"}),e.lightbulbAutofix=new e("lightbulb-autofix",{fontCharacter:"\\eb13"}),e.linkExternal=new e("link-external",{fontCharacter:"\\eb14"}),e.link=new e("link",{fontCharacter:"\\eb15"}),e.listOrdered=new e("list-ordered",{fontCharacter:"\\eb16"}),e.listUnordered=new e("list-unordered",{fontCharacter:"\\eb17"}),e.liveShare=new e("live-share",{fontCharacter:"\\eb18"}),e.loading=new e("loading",{fontCharacter:"\\eb19"}),e.location=new e("location",{fontCharacter:"\\eb1a"}),e.mailRead=new e("mail-read",{fontCharacter:"\\eb1b"}),e.mail=new e("mail",{fontCharacter:"\\eb1c"}),e.markdown=new e("markdown",{fontCharacter:"\\eb1d"}),e.megaphone=new e("megaphone",{fontCharacter:"\\eb1e"}),e.mention=new e("mention",{fontCharacter:"\\eb1f"}),e.milestone=new e("milestone",{fontCharacter:"\\eb20"}),e.mortarBoard=new e("mortar-board",{fontCharacter:"\\eb21"}),e.move=new e("move",{fontCharacter:"\\eb22"}),e.multipleWindows=new e("multiple-windows",{fontCharacter:"\\eb23"}),e.mute=new e("mute",{fontCharacter:"\\eb24"}),e.noNewline=new e("no-newline",{fontCharacter:"\\eb25"}),e.note=new e("note",{fontCharacter:"\\eb26"}),e.octoface=new e("octoface",{fontCharacter:"\\eb27"}),e.openPreview=new e("open-preview",{fontCharacter:"\\eb28"}),e.package_=new e("package",{fontCharacter:"\\eb29"}),e.paintcan=new e("paintcan",{fontCharacter:"\\eb2a"}),e.pin=new e("pin",{fontCharacter:"\\eb2b"}),e.play=new e("play",{fontCharacter:"\\eb2c"}),e.run=new e("run",{fontCharacter:"\\eb2c"}),e.plug=new e("plug",{fontCharacter:"\\eb2d"}),e.preserveCase=new e("preserve-case",{fontCharacter:"\\eb2e"}),e.preview=new e("preview",{fontCharacter:"\\eb2f"}),e.project=new e("project",{fontCharacter:"\\eb30"}),e.pulse=new e("pulse",{fontCharacter:"\\eb31"}),e.question=new e("question",{fontCharacter:"\\eb32"}),e.quote=new e("quote",{fontCharacter:"\\eb33"}),e.radioTower=new e("radio-tower",{fontCharacter:"\\eb34"}),e.reactions=new e("reactions",{fontCharacter:"\\eb35"}),e.references=new e("references",{fontCharacter:"\\eb36"}),e.refresh=new e("refresh",{fontCharacter:"\\eb37"}),e.regex=new e("regex",{fontCharacter:"\\eb38"}),e.remoteExplorer=new e("remote-explorer",{fontCharacter:"\\eb39"}),e.remote=new e("remote",{fontCharacter:"\\eb3a"}),e.remove=new e("remove",{fontCharacter:"\\eb3b"}),e.replaceAll=new e("replace-all",{fontCharacter:"\\eb3c"}),e.replace=new e("replace",{fontCharacter:"\\eb3d"}),e.repoClone=new e("repo-clone",{fontCharacter:"\\eb3e"}),e.repoForcePush=new e("repo-force-push",{fontCharacter:"\\eb3f"}),e.repoPull=new e("repo-pull",{fontCharacter:"\\eb40"}),e.repoPush=new e("repo-push",{fontCharacter:"\\eb41"}),e.report=new e("report",{fontCharacter:"\\eb42"}),e.requestChanges=new e("request-changes",{fontCharacter:"\\eb43"}),e.rocket=new e("rocket",{fontCharacter:"\\eb44"}),e.rootFolderOpened=new e("root-folder-opened",{fontCharacter:"\\eb45"}),e.rootFolder=new e("root-folder",{fontCharacter:"\\eb46"}),e.rss=new e("rss",{fontCharacter:"\\eb47"}),e.ruby=new e("ruby",{fontCharacter:"\\eb48"}),e.saveAll=new e("save-all",{fontCharacter:"\\eb49"}),e.saveAs=new e("save-as",{fontCharacter:"\\eb4a"}),e.save=new e("save",{fontCharacter:"\\eb4b"}),e.screenFull=new e("screen-full",{fontCharacter:"\\eb4c"}),e.screenNormal=new e("screen-normal",{fontCharacter:"\\eb4d"}),e.searchStop=new e("search-stop",{fontCharacter:"\\eb4e"}),e.server=new e("server",{fontCharacter:"\\eb50"}),e.settingsGear=new e("settings-gear",{fontCharacter:"\\eb51"}),e.settings=new e("settings",{fontCharacter:"\\eb52"}),e.shield=new e("shield",{fontCharacter:"\\eb53"}),e.smiley=new e("smiley",{fontCharacter:"\\eb54"}),e.sortPrecedence=new e("sort-precedence",{fontCharacter:"\\eb55"}),e.splitHorizontal=new e("split-horizontal",{fontCharacter:"\\eb56"}),e.splitVertical=new e("split-vertical",{fontCharacter:"\\eb57"}),e.squirrel=new e("squirrel",{fontCharacter:"\\eb58"}),e.starFull=new e("star-full",{fontCharacter:"\\eb59"}),e.starHalf=new e("star-half",{fontCharacter:"\\eb5a"}),e.symbolClass=new e("symbol-class",{fontCharacter:"\\eb5b"}),e.symbolColor=new e("symbol-color",{fontCharacter:"\\eb5c"}),e.symbolConstant=new e("symbol-constant",{fontCharacter:"\\eb5d"}),e.symbolEnumMember=new e("symbol-enum-member",{fontCharacter:"\\eb5e"}),e.symbolField=new e("symbol-field",{fontCharacter:"\\eb5f"}),e.symbolFile=new e("symbol-file",{fontCharacter:"\\eb60"}),e.symbolInterface=new e("symbol-interface",{fontCharacter:"\\eb61"}),e.symbolKeyword=new e("symbol-keyword",{fontCharacter:"\\eb62"}),e.symbolMisc=new e("symbol-misc",{fontCharacter:"\\eb63"}),e.symbolOperator=new e("symbol-operator",{fontCharacter:"\\eb64"}),e.symbolProperty=new e("symbol-property",{fontCharacter:"\\eb65"}),e.wrench=new e("wrench",{fontCharacter:"\\eb65"}),e.wrenchSubaction=new e("wrench-subaction",{fontCharacter:"\\eb65"}),e.symbolSnippet=new e("symbol-snippet",{fontCharacter:"\\eb66"}),e.tasklist=new e("tasklist",{fontCharacter:"\\eb67"}),e.telescope=new e("telescope",{fontCharacter:"\\eb68"}),e.textSize=new e("text-size",{fontCharacter:"\\eb69"}),e.threeBars=new e("three-bars",{fontCharacter:"\\eb6a"}),e.thumbsdown=new e("thumbsdown",{fontCharacter:"\\eb6b"}),e.thumbsup=new e("thumbsup",{fontCharacter:"\\eb6c"}),e.tools=new e("tools",{fontCharacter:"\\eb6d"}),e.triangleDown=new e("triangle-down",{fontCharacter:"\\eb6e"}),e.triangleLeft=new e("triangle-left",{fontCharacter:"\\eb6f"}),e.triangleRight=new e("triangle-right",{fontCharacter:"\\eb70"}),e.triangleUp=new e("triangle-up",{fontCharacter:"\\eb71"}),e.twitter=new e("twitter",{fontCharacter:"\\eb72"}),e.unfold=new e("unfold",{fontCharacter:"\\eb73"}),e.unlock=new e("unlock",{fontCharacter:"\\eb74"}),e.unmute=new e("unmute",{fontCharacter:"\\eb75"}),e.unverified=new e("unverified",{fontCharacter:"\\eb76"}),e.verified=new e("verified",{fontCharacter:"\\eb77"}),e.versions=new e("versions",{fontCharacter:"\\eb78"}),e.vmActive=new e("vm-active",{fontCharacter:"\\eb79"}),e.vmOutline=new e("vm-outline",{fontCharacter:"\\eb7a"}),e.vmRunning=new e("vm-running",{fontCharacter:"\\eb7b"}),e.watch=new e("watch",{fontCharacter:"\\eb7c"}),e.whitespace=new e("whitespace",{fontCharacter:"\\eb7d"}),e.wholeWord=new e("whole-word",{fontCharacter:"\\eb7e"}),e.window=new e("window",{fontCharacter:"\\eb7f"}),e.wordWrap=new e("word-wrap",{fontCharacter:"\\eb80"}),e.zoomIn=new e("zoom-in",{fontCharacter:"\\eb81"}),e.zoomOut=new e("zoom-out",{fontCharacter:"\\eb82"}),e.listFilter=new e("list-filter",{fontCharacter:"\\eb83"}),e.listFlat=new e("list-flat",{fontCharacter:"\\eb84"}),e.listSelection=new e("list-selection",{fontCharacter:"\\eb85"}),e.selection=new e("selection",{fontCharacter:"\\eb85"}),e.listTree=new e("list-tree",{fontCharacter:"\\eb86"}),e.debugBreakpointFunctionUnverified=new e("debug-breakpoint-function-unverified",{fontCharacter:"\\eb87"}),e.debugBreakpointFunction=new e("debug-breakpoint-function",{fontCharacter:"\\eb88"}),e.debugBreakpointFunctionDisabled=new e("debug-breakpoint-function-disabled",{fontCharacter:"\\eb88"}),e.debugStackframeActive=new e("debug-stackframe-active",{fontCharacter:"\\eb89"}),e.debugStackframeDot=new e("debug-stackframe-dot",{fontCharacter:"\\eb8a"}),e.debugStackframe=new e("debug-stackframe",{fontCharacter:"\\eb8b"}),e.debugStackframeFocused=new e("debug-stackframe-focused",{fontCharacter:"\\eb8b"}),e.debugBreakpointUnsupported=new e("debug-breakpoint-unsupported",{fontCharacter:"\\eb8c"}),e.symbolString=new e("symbol-string",{fontCharacter:"\\eb8d"}),e.debugReverseContinue=new e("debug-reverse-continue",{fontCharacter:"\\eb8e"}),e.debugStepBack=new e("debug-step-back",{fontCharacter:"\\eb8f"}),e.debugRestartFrame=new e("debug-restart-frame",{fontCharacter:"\\eb90"}),e.callIncoming=new e("call-incoming",{fontCharacter:"\\eb92"}),e.callOutgoing=new e("call-outgoing",{fontCharacter:"\\eb93"}),e.menu=new e("menu",{fontCharacter:"\\eb94"}),e.expandAll=new e("expand-all",{fontCharacter:"\\eb95"}),e.feedback=new e("feedback",{fontCharacter:"\\eb96"}),e.groupByRefType=new e("group-by-ref-type",{fontCharacter:"\\eb97"}),e.ungroupByRefType=new e("ungroup-by-ref-type",{fontCharacter:"\\eb98"}),e.account=new e("account",{fontCharacter:"\\eb99"}),e.bellDot=new e("bell-dot",{fontCharacter:"\\eb9a"}),e.debugConsole=new e("debug-console",{fontCharacter:"\\eb9b"}),e.library=new e("library",{fontCharacter:"\\eb9c"}),e.output=new e("output",{fontCharacter:"\\eb9d"}),e.runAll=new e("run-all",{fontCharacter:"\\eb9e"}),e.syncIgnored=new e("sync-ignored",{fontCharacter:"\\eb9f"}),e.pinned=new e("pinned",{fontCharacter:"\\eba0"}),e.githubInverted=new e("github-inverted",{fontCharacter:"\\eba1"}),e.debugAlt=new e("debug-alt",{fontCharacter:"\\eb91"}),e.serverProcess=new e("server-process",{fontCharacter:"\\eba2"}),e.serverEnvironment=new e("server-environment",{fontCharacter:"\\eba3"}),e.pass=new e("pass",{fontCharacter:"\\eba4"}),e.stopCircle=new e("stop-circle",{fontCharacter:"\\eba5"}),e.playCircle=new e("play-circle",{fontCharacter:"\\eba6"}),e.record=new e("record",{fontCharacter:"\\eba7"}),e.debugAltSmall=new e("debug-alt-small",{fontCharacter:"\\eba8"}),e.vmConnect=new e("vm-connect",{fontCharacter:"\\eba9"}),e.cloud=new e("cloud",{fontCharacter:"\\ebaa"}),e.merge=new e("merge",{fontCharacter:"\\ebab"}),e.exportIcon=new e("export",{fontCharacter:"\\ebac"}),e.graphLeft=new e("graph-left",{fontCharacter:"\\ebad"}),e.magnet=new e("magnet",{fontCharacter:"\\ebae"}),e.notebook=new e("notebook",{fontCharacter:"\\ebaf"}),e.redo=new e("redo",{fontCharacter:"\\ebb0"}),e.checkAll=new e("check-all",{fontCharacter:"\\ebb1"}),e.pinnedDirty=new e("pinned-dirty",{fontCharacter:"\\ebb2"}),e.passFilled=new e("pass-filled",{fontCharacter:"\\ebb3"}),e.circleLargeFilled=new e("circle-large-filled",{fontCharacter:"\\ebb4"}),e.circleLargeOutline=new e("circle-large-outline",{fontCharacter:"\\ebb5"}),e.combine=new e("combine",{fontCharacter:"\\ebb6"}),e.gather=new e("gather",{fontCharacter:"\\ebb6"}),e.table=new e("table",{fontCharacter:"\\ebb7"}),e.variableGroup=new e("variable-group",{fontCharacter:"\\ebb8"}),e.typeHierarchy=new e("type-hierarchy",{fontCharacter:"\\ebb9"}),e.typeHierarchySub=new e("type-hierarchy-sub",{fontCharacter:"\\ebba"}),e.typeHierarchySuper=new e("type-hierarchy-super",{fontCharacter:"\\ebbb"}),e.gitPullRequestCreate=new e("git-pull-request-create",{fontCharacter:"\\ebbc"}),e.runAbove=new e("run-above",{fontCharacter:"\\ebbd"}),e.runBelow=new e("run-below",{fontCharacter:"\\ebbe"}),e.notebookTemplate=new e("notebook-template",{fontCharacter:"\\ebbf"}),e.debugRerun=new e("debug-rerun",{fontCharacter:"\\ebc0"}),e.workspaceTrusted=new e("workspace-trusted",{fontCharacter:"\\ebc1"}),e.workspaceUntrusted=new e("workspace-untrusted",{fontCharacter:"\\ebc2"}),e.workspaceUnspecified=new e("workspace-unspecified",{fontCharacter:"\\ebc3"}),e.terminalCmd=new e("terminal-cmd",{fontCharacter:"\\ebc4"}),e.terminalDebian=new e("terminal-debian",{fontCharacter:"\\ebc5"}),e.terminalLinux=new e("terminal-linux",{fontCharacter:"\\ebc6"}),e.terminalPowershell=new e("terminal-powershell",{fontCharacter:"\\ebc7"}),e.terminalTmux=new e("terminal-tmux",{fontCharacter:"\\ebc8"}),e.terminalUbuntu=new e("terminal-ubuntu",{fontCharacter:"\\ebc9"}),e.terminalBash=new e("terminal-bash",{fontCharacter:"\\ebca"}),e.arrowSwap=new e("arrow-swap",{fontCharacter:"\\ebcb"}),e.copy=new e("copy",{fontCharacter:"\\ebcc"}),e.personAdd=new e("person-add",{fontCharacter:"\\ebcd"}),e.filterFilled=new e("filter-filled",{fontCharacter:"\\ebce"}),e.wand=new e("wand",{fontCharacter:"\\ebcf"}),e.debugLineByLine=new e("debug-line-by-line",{fontCharacter:"\\ebd0"}),e.dropDownButton=new e("drop-down-button",e.chevronDown.definition)}(h||(h={}))},15723:function(e,t,n){"use strict";n.d(t,{E:function(){return a},r:function(){return s}});var i=n(15671),r=n(43144),o=Object.prototype.hasOwnProperty;function a(e,t){var n=function(n){if(o.call(e,n)&&!1===t({key:n,value:e[n]},(function(){delete e[n]})))return{v:void 0}};for(var i in e){var r=n(i);if("object"===typeof r)return r.v}}var s=function(){function e(){(0,i.Z)(this,e),this.map=new Map}return(0,r.Z)(e,[{key:"add",value:function(e,t){var n=this.map.get(e);n||(n=new Set,this.map.set(e,n)),n.add(t)}},{key:"delete",value:function(e,t){var n=this.map.get(e);n&&(n.delete(t),0===n.size&&this.map.delete(e))}},{key:"forEach",value:function(e,t){var n=this.map.get(e);n&&n.forEach(t)}}]),e}()},89938:function(e,t,n){"use strict";n.d(t,{Il:function(){return l},VS:function(){return a},tx:function(){return u}});var i=n(15671),r=n(43144);function o(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}var a=function(){function e(t,n,r){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,i.Z)(this,e),this.r=0|Math.min(255,Math.max(0,t)),this.g=0|Math.min(255,Math.max(0,n)),this.b=0|Math.min(255,Math.max(0,r)),this.a=o(Math.max(Math.min(1,a),0),3)}return(0,r.Z)(e,null,[{key:"equals",value:function(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}]),e}(),s=function(){function e(t,n,r,a){(0,i.Z)(this,e),this.h=0|Math.max(Math.min(360,t),0),this.s=o(Math.max(Math.min(1,n),0),3),this.l=o(Math.max(Math.min(1,r),0),3),this.a=o(Math.max(Math.min(1,a),0),3)}return(0,r.Z)(e,null,[{key:"equals",value:function(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a}},{key:"fromRGBA",value:function(t){var n=t.r/255,i=t.g/255,r=t.b/255,o=t.a,a=Math.max(n,i,r),s=Math.min(n,i,r),u=0,l=0,c=(s+a)/2,d=a-s;if(d>0){switch(l=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),a){case n:u=(i-r)/d+(i<r?6:0);break;case i:u=(r-n)/d+2;break;case r:u=(n-i)/d+4}u*=60,u=Math.round(u)}return new e(u,l,c,o)}},{key:"_hue2rgb",value:function(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}},{key:"toRGBA",value:function(t){var n,i,r,o=t.h/360,s=t.s,u=t.l,l=t.a;if(0===s)n=i=r=u;else{var c=u<.5?u*(1+s):u+s-u*s,d=2*u-c;n=e._hue2rgb(d,c,o+1/3),i=e._hue2rgb(d,c,o),r=e._hue2rgb(d,c,o-1/3)}return new a(Math.round(255*n),Math.round(255*i),Math.round(255*r),l)}}]),e}(),u=function(){function e(t,n,r,a){(0,i.Z)(this,e),this.h=0|Math.max(Math.min(360,t),0),this.s=o(Math.max(Math.min(1,n),0),3),this.v=o(Math.max(Math.min(1,r),0),3),this.a=o(Math.max(Math.min(1,a),0),3)}return(0,r.Z)(e,null,[{key:"equals",value:function(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a}},{key:"fromRGBA",value:function(t){var n,i=t.r/255,r=t.g/255,o=t.b/255,a=Math.max(i,r,o),s=a-Math.min(i,r,o),u=0===a?0:s/a;return n=0===s?0:a===i?((r-o)/s%6+6)%6:a===r?(o-i)/s+2:(i-r)/s+4,new e(Math.round(60*n),u,a,t.a)}},{key:"toRGBA",value:function(e){var t=e.h,n=e.s,i=e.v,r=e.a,o=i*n,s=o*(1-Math.abs(t/60%2-1)),u=i-o,l=0,c=0,d=0;return t<60?(l=o,c=s):t<120?(l=s,c=o):t<180?(c=o,d=s):t<240?(c=s,d=o):t<300?(l=s,d=o):t<=360&&(l=o,d=s),l=Math.round(255*(l+u)),c=Math.round(255*(c+u)),d=Math.round(255*(d+u)),new a(l,c,d,r)}}]),e}(),l=function(){function e(t){if((0,i.Z)(this,e),!t)throw new Error("Color needs a value");if(t instanceof a)this.rgba=t;else if(t instanceof s)this._hsla=t,this.rgba=s.toRGBA(t);else{if(!(t instanceof u))throw new Error("Invalid color ctor argument");this._hsva=t,this.rgba=u.toRGBA(t)}}return(0,r.Z)(e,[{key:"hsla",get:function(){return this._hsla?this._hsla:s.fromRGBA(this.rgba)}},{key:"hsva",get:function(){return this._hsva?this._hsva:u.fromRGBA(this.rgba)}},{key:"equals",value:function(e){return!!e&&a.equals(this.rgba,e.rgba)&&s.equals(this.hsla,e.hsla)&&u.equals(this.hsva,e.hsva)}},{key:"getRelativeLuminance",value:function(){return o(.2126*e._relativeLuminanceForComponent(this.rgba.r)+.7152*e._relativeLuminanceForComponent(this.rgba.g)+.0722*e._relativeLuminanceForComponent(this.rgba.b),4)}},{key:"isLighter",value:function(){return(299*this.rgba.r+587*this.rgba.g+114*this.rgba.b)/1e3>=128}},{key:"isLighterThan",value:function(e){return this.getRelativeLuminance()>e.getRelativeLuminance()}},{key:"isDarkerThan",value:function(e){return this.getRelativeLuminance()<e.getRelativeLuminance()}},{key:"lighten",value:function(t){return new e(new s(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*t,this.hsla.a))}},{key:"darken",value:function(t){return new e(new s(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*t,this.hsla.a))}},{key:"transparent",value:function(t){var n=this.rgba,i=n.r,r=n.g,o=n.b,s=n.a;return new e(new a(i,r,o,s*t))}},{key:"isTransparent",value:function(){return 0===this.rgba.a}},{key:"isOpaque",value:function(){return 1===this.rgba.a}},{key:"opposite",value:function(){return new e(new a(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))}},{key:"toString",value:function(){return""+e.Format.CSS.format(this)}}],[{key:"fromHex",value:function(t){return e.Format.CSS.parseHex(t)||e.red}},{key:"_relativeLuminanceForComponent",value:function(e){var t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}},{key:"getLighterColor",value:function(e,t,n){if(e.isLighterThan(t))return e;n=n||.5;var i=e.getRelativeLuminance(),r=t.getRelativeLuminance();return n=n*(r-i)/r,e.lighten(n)}},{key:"getDarkerColor",value:function(e,t,n){if(e.isDarkerThan(t))return e;n=n||.5;var i=e.getRelativeLuminance();return n=n*(i-t.getRelativeLuminance())/i,e.darken(n)}}]),e}();l.white=new l(new a(255,255,255,1)),l.black=new l(new a(0,0,0,1)),l.red=new l(new a(255,0,0,1)),l.blue=new l(new a(0,0,255,1)),l.cyan=new l(new a(0,255,255,1)),l.lightgrey=new l(new a(211,211,211,1)),l.transparent=new l(new a(0,0,0,0)),function(e){!function(t){!function(t){function n(e){var t=e.toString(16);return 2!==t.length?"0"+t:t}function i(e){switch(e){case 48:return 0;case 49:return 1;case 50:return 2;case 51:return 3;case 52:return 4;case 53:return 5;case 54:return 6;case 55:return 7;case 56:return 8;case 57:return 9;case 97:case 65:return 10;case 98:case 66:return 11;case 99:case 67:return 12;case 100:case 68:return 13;case 101:case 69:return 14;case 102:case 70:return 15}return 0}t.formatRGB=function(t){return 1===t.rgba.a?"rgb(".concat(t.rgba.r,", ").concat(t.rgba.g,", ").concat(t.rgba.b,")"):e.Format.CSS.formatRGBA(t)},t.formatRGBA=function(e){return"rgba(".concat(e.rgba.r,", ").concat(e.rgba.g,", ").concat(e.rgba.b,", ").concat(+e.rgba.a.toFixed(2),")")},t.formatHSL=function(t){return 1===t.hsla.a?"hsl(".concat(t.hsla.h,", ").concat((100*t.hsla.s).toFixed(2),"%, ").concat((100*t.hsla.l).toFixed(2),"%)"):e.Format.CSS.formatHSLA(t)},t.formatHSLA=function(e){return"hsla(".concat(e.hsla.h,", ").concat((100*e.hsla.s).toFixed(2),"%, ").concat((100*e.hsla.l).toFixed(2),"%, ").concat(e.hsla.a.toFixed(2),")")},t.formatHex=function(e){return"#".concat(n(e.rgba.r)).concat(n(e.rgba.g)).concat(n(e.rgba.b))},t.formatHexA=function(t){return arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&1===t.rgba.a?e.Format.CSS.formatHex(t):"#".concat(n(t.rgba.r)).concat(n(t.rgba.g)).concat(n(t.rgba.b)).concat(n(Math.round(255*t.rgba.a)))},t.format=function(t){return t.isOpaque()?e.Format.CSS.formatHex(t):e.Format.CSS.formatRGBA(t)},t.parseHex=function(t){var n=t.length;if(0===n)return null;if(35!==t.charCodeAt(0))return null;if(7===n){var r=16*i(t.charCodeAt(1))+i(t.charCodeAt(2)),o=16*i(t.charCodeAt(3))+i(t.charCodeAt(4)),s=16*i(t.charCodeAt(5))+i(t.charCodeAt(6));return new e(new a(r,o,s,1))}if(9===n){var u=16*i(t.charCodeAt(1))+i(t.charCodeAt(2)),l=16*i(t.charCodeAt(3))+i(t.charCodeAt(4)),c=16*i(t.charCodeAt(5))+i(t.charCodeAt(6)),d=16*i(t.charCodeAt(7))+i(t.charCodeAt(8));return new e(new a(u,l,c,d/255))}if(4===n){var h=i(t.charCodeAt(1)),f=i(t.charCodeAt(2)),p=i(t.charCodeAt(3));return new e(new a(16*h+h,16*f+f,16*p+p))}if(5===n){var v=i(t.charCodeAt(1)),g=i(t.charCodeAt(2)),m=i(t.charCodeAt(3)),_=i(t.charCodeAt(4));return new e(new a(16*v+v,16*g+g,16*m+m,(16*_+_)/255))}return null}}(t.CSS||(t.CSS={}))}(e.Format||(e.Format={}))}(l||(l={}))},94995:function(e,t,n){"use strict";n.d(t,{H:function(){return r}});var i=0;function r(e,t,n){return function(){var e="$memoize".concat(i++),t=void 0,n=function(n,i,r){var o=null,a=null;if("function"===typeof r.value?(o="value",0!==(a=r.value).length&&console.warn("Memoize should only be used in functions with zero parameters")):"function"===typeof r.get&&(o="get",a=r.get),!a)throw new Error("not supported");var s="".concat(e,":").concat(i);r[o]=function(){if(t=this,!this.hasOwnProperty(s)){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];Object.defineProperty(this,s,{configurable:!0,enumerable:!1,writable:!0,value:a.apply(this,n)})}return this[s]}};return n.clear=function(){"undefined"!==typeof t&&Object.getOwnPropertyNames(t).forEach((function(n){0===n.indexOf(e)&&delete t[n]}))},n}()(e,t,n)}},95676:function(e,t,n){"use strict";n.d(t,{Hs:function(){return f},a$:function(){return l}});var i=n(29439),r=n(15671),o=n(43144),a=function(){function e(t,n,i,o){(0,r.Z)(this,e),this.originalStart=t,this.originalLength=n,this.modifiedStart=i,this.modifiedLength=o}return(0,o.Z)(e,[{key:"getOriginalEnd",value:function(){return this.originalStart+this.originalLength}},{key:"getModifiedEnd",value:function(){return this.modifiedStart+this.modifiedLength}}]),e}(),s=n(25567),u=function(){function e(t){(0,r.Z)(this,e),this.source=t}return(0,o.Z)(e,[{key:"getElements",value:function(){for(var e=this.source,t=new Int32Array(e.length),n=0,i=e.length;n<i;n++)t[n]=e.charCodeAt(n);return t}}]),e}();function l(e,t,n){return new f(new u(e),new u(t)).ComputeDiff(n).changes}var c=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"Assert",value:function(e,t){if(!e)throw new Error(t)}}]),e}(),d=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"Copy",value:function(e,t,n,i,r){for(var o=0;o<r;o++)n[i+o]=e[t+o]}},{key:"Copy2",value:function(e,t,n,i,r){for(var o=0;o<r;o++)n[i+o]=e[t+o]}}]),e}(),h=function(){function e(){(0,r.Z)(this,e),this.m_changes=[],this.m_originalStart=1073741824,this.m_modifiedStart=1073741824,this.m_originalCount=0,this.m_modifiedCount=0}return(0,o.Z)(e,[{key:"MarkNextChange",value:function(){(this.m_originalCount>0||this.m_modifiedCount>0)&&this.m_changes.push(new a(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}},{key:"AddOriginalElement",value:function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}},{key:"AddModifiedElement",value:function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}},{key:"getChanges",value:function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}},{key:"getReverseChanges",value:function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}]),e}(),f=function(){function e(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;(0,r.Z)(this,e),this.ContinueProcessingPredicate=o;var a=e._getElements(t),s=(0,i.Z)(a,3),u=s[0],l=s[1],c=s[2],d=e._getElements(n),h=(0,i.Z)(d,3),f=h[0],p=h[1],v=h[2];this._hasStrings=c&&v,this._originalStringElements=u,this._originalElementsOrHash=l,this._modifiedStringElements=f,this._modifiedElementsOrHash=p,this.m_forwardHistory=[],this.m_reverseHistory=[]}return(0,o.Z)(e,[{key:"ElementsAreEqual",value:function(e,t){return this._originalElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._modifiedStringElements[t])}},{key:"OriginalElementsAreEqual",value:function(e,t){return this._originalElementsOrHash[e]===this._originalElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._originalStringElements[t])}},{key:"ModifiedElementsAreEqual",value:function(e,t){return this._modifiedElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._modifiedStringElements[e]===this._modifiedStringElements[t])}},{key:"ComputeDiff",value:function(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)}},{key:"_ComputeDiff",value:function(e,t,n,i,r){var o=[!1],a=this.ComputeDiffRecursive(e,t,n,i,o);return r&&(a=this.PrettifyChanges(a)),{quitEarly:o[0],changes:a}}},{key:"ComputeDiffRecursive",value:function(e,t,n,i,r){for(r[0]=!1;e<=t&&n<=i&&this.ElementsAreEqual(e,n);)e++,n++;for(;t>=e&&i>=n&&this.ElementsAreEqual(t,i);)t--,i--;var o;if(e>t||n>i)return n<=i?(c.Assert(e===t+1,"originalStart should only be one more than originalEnd"),o=[new a(e,0,n,i-n+1)]):e<=t?(c.Assert(n===i+1,"modifiedStart should only be one more than modifiedEnd"),o=[new a(e,t-e+1,n,0)]):(c.Assert(e===t+1,"originalStart should only be one more than originalEnd"),c.Assert(n===i+1,"modifiedStart should only be one more than modifiedEnd"),o=[]),o;var s=[0],u=[0],l=this.ComputeRecursionPoint(e,t,n,i,s,u,r),d=s[0],h=u[0];if(null!==l)return l;if(!r[0]){var f=this.ComputeDiffRecursive(e,d,n,h,r),p=[];return p=r[0]?[new a(d+1,t-(d+1)+1,h+1,i-(h+1)+1)]:this.ComputeDiffRecursive(d+1,t,h+1,i,r),this.ConcatenateChanges(f,p)}return[new a(e,t-e+1,n,i-n+1)]}},{key:"WALKTRACE",value:function(e,t,n,i,r,o,s,u,l,c,d,f,p,v,g,m,_,y){var b,w=null,C=new h,k=t,S=n,x=p[0]-m[0]-i,L=-1073741824,E=this.m_forwardHistory.length-1;do{var N=x+e;N===k||N<S&&l[N-1]<l[N+1]?(v=(d=l[N+1])-x-i,d<L&&C.MarkNextChange(),L=d,C.AddModifiedElement(d+1,v),x=N+1-e):(v=(d=l[N-1]+1)-x-i,d<L&&C.MarkNextChange(),L=d-1,C.AddOriginalElement(d,v+1),x=N-1-e),E>=0&&(e=(l=this.m_forwardHistory[E])[0],k=1,S=l.length-1)}while(--E>=-1);if(b=C.getReverseChanges(),y[0]){var D=p[0]+1,M=m[0]+1;if(null!==b&&b.length>0){var T=b[b.length-1];D=Math.max(D,T.getOriginalEnd()),M=Math.max(M,T.getModifiedEnd())}w=[new a(D,f-D+1,M,g-M+1)]}else{C=new h,k=o,S=s,x=p[0]-m[0]-u,L=1073741824,E=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{var O=x+r;O===k||O<S&&c[O-1]>=c[O+1]?(v=(d=c[O+1]-1)-x-u,d>L&&C.MarkNextChange(),L=d+1,C.AddOriginalElement(d+1,v+1),x=O+1-r):(v=(d=c[O-1])-x-u,d>L&&C.MarkNextChange(),L=d,C.AddModifiedElement(d+1,v+1),x=O-1-r),E>=0&&(r=(c=this.m_reverseHistory[E])[0],k=1,S=c.length-1)}while(--E>=-1);w=C.getChanges()}return this.ConcatenateChanges(b,w)}},{key:"ComputeRecursionPoint",value:function(e,t,n,i,r,o,s){var u=0,l=0,c=0,h=0,f=0,p=0;e--,n--,r[0]=0,o[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];var v=t-e+(i-n),g=v+1,m=new Int32Array(g),_=new Int32Array(g),y=i-n,b=t-e,w=e-n,C=t-i,k=(b-y)%2===0;m[y]=e,_[b]=t,s[0]=!1;for(var S=1;S<=v/2+1;S++){var x=0,L=0;c=this.ClipDiagonalBound(y-S,S,y,g),h=this.ClipDiagonalBound(y+S,S,y,g);for(var E=c;E<=h;E+=2){l=(u=E===c||E<h&&m[E-1]<m[E+1]?m[E+1]:m[E-1]+1)-(E-y)-w;for(var N=u;u<t&&l<i&&this.ElementsAreEqual(u+1,l+1);)u++,l++;if(m[E]=u,u+l>x+L&&(x=u,L=l),!k&&Math.abs(E-b)<=S-1&&u>=_[E])return r[0]=u,o[0]=l,N<=_[E]&&S<=1448?this.WALKTRACE(y,c,h,w,b,f,p,C,m,_,u,t,r,l,i,o,k,s):null}var D=(x-e+(L-n)-S)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(x,D))return s[0]=!0,r[0]=x,o[0]=L,D>0&&S<=1448?this.WALKTRACE(y,c,h,w,b,f,p,C,m,_,u,t,r,l,i,o,k,s):(e++,n++,[new a(e,t-e+1,n,i-n+1)]);f=this.ClipDiagonalBound(b-S,S,b,g),p=this.ClipDiagonalBound(b+S,S,b,g);for(var M=f;M<=p;M+=2){l=(u=M===f||M<p&&_[M-1]>=_[M+1]?_[M+1]-1:_[M-1])-(M-b)-C;for(var T=u;u>e&&l>n&&this.ElementsAreEqual(u,l);)u--,l--;if(_[M]=u,k&&Math.abs(M-y)<=S&&u<=m[M])return r[0]=u,o[0]=l,T>=m[M]&&S<=1448?this.WALKTRACE(y,c,h,w,b,f,p,C,m,_,u,t,r,l,i,o,k,s):null}if(S<=1447){var O=new Int32Array(h-c+2);O[0]=y-c+1,d.Copy2(m,c,O,1,h-c+1),this.m_forwardHistory.push(O),(O=new Int32Array(p-f+2))[0]=b-f+1,d.Copy2(_,f,O,1,p-f+1),this.m_reverseHistory.push(O)}}return this.WALKTRACE(y,c,h,w,b,f,p,C,m,_,u,t,r,l,i,o,k,s)}},{key:"PrettifyChanges",value:function(e){for(var t=0;t<e.length;t++){for(var n=e[t],r=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,o=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,a=n.originalLength>0,s=n.modifiedLength>0;n.originalStart+n.originalLength<r&&n.modifiedStart+n.modifiedLength<o&&(!a||this.OriginalElementsAreEqual(n.originalStart,n.originalStart+n.originalLength))&&(!s||this.ModifiedElementsAreEqual(n.modifiedStart,n.modifiedStart+n.modifiedLength));)n.originalStart++,n.modifiedStart++;var u=[null];t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],u)&&(e[t]=u[0],e.splice(t+1,1),t--)}for(var l=e.length-1;l>=0;l--){var c=e[l],d=0,h=0;if(l>0){var f=e[l-1];d=f.originalStart+f.originalLength,h=f.modifiedStart+f.modifiedLength}for(var p=c.originalLength>0,v=c.modifiedLength>0,g=0,m=this._boundaryScore(c.originalStart,c.originalLength,c.modifiedStart,c.modifiedLength),_=1;;_++){var y=c.originalStart-_,b=c.modifiedStart-_;if(y<d||b<h)break;if(p&&!this.OriginalElementsAreEqual(y,y+c.originalLength))break;if(v&&!this.ModifiedElementsAreEqual(b,b+c.modifiedLength))break;var w=(y===d&&b===h?5:0)+this._boundaryScore(y,c.originalLength,b,c.modifiedLength);w>m&&(m=w,g=_)}c.originalStart-=g,c.modifiedStart-=g;var C=[null];l>0&&this.ChangesOverlap(e[l-1],e[l],C)&&(e[l-1]=C[0],e.splice(l,1),l++)}if(this._hasStrings)for(var k=1,S=e.length;k<S;k++){var x=e[k-1],L=e[k],E=L.originalStart-x.originalStart-x.originalLength,N=x.originalStart,D=L.originalStart+L.originalLength,M=D-N,T=x.modifiedStart,O=L.modifiedStart+L.modifiedLength,I=O-T;if(E<5&&M<20&&I<20){var A=this._findBetterContiguousSequence(N,M,T,I,E);if(A){var P=(0,i.Z)(A,2),R=P[0],Z=P[1];R===x.originalStart+x.originalLength&&Z===x.modifiedStart+x.modifiedLength||(x.originalLength=R-x.originalStart,x.modifiedLength=Z-x.modifiedStart,L.originalStart=R+E,L.modifiedStart=Z+E,L.originalLength=D-L.originalStart,L.modifiedLength=O-L.modifiedStart)}}}return e}},{key:"_findBetterContiguousSequence",value:function(e,t,n,i,r){if(t<r||i<r)return null;for(var o=e+t-r+1,a=n+i-r+1,s=0,u=0,l=0,c=e;c<o;c++)for(var d=n;d<a;d++){var h=this._contiguousSequenceScore(c,d,r);h>0&&h>s&&(s=h,u=c,l=d)}return s>0?[u,l]:null}},{key:"_contiguousSequenceScore",value:function(e,t,n){for(var i=0,r=0;r<n;r++){if(!this.ElementsAreEqual(e+r,t+r))return 0;i+=this._originalStringElements[e+r].length}return i}},{key:"_OriginalIsBoundary",value:function(e){return e<=0||e>=this._originalElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}},{key:"_OriginalRegionIsBoundary",value:function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1}},{key:"_ModifiedIsBoundary",value:function(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}},{key:"_ModifiedRegionIsBoundary",value:function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1}},{key:"_boundaryScore",value:function(e,t,n,i){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,i)?1:0)}},{key:"ConcatenateChanges",value:function(e,t){var n=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],n)){var i=new Array(e.length+t.length-1);return d.Copy(e,0,i,0,e.length-1),i[e.length-1]=n[0],d.Copy(t,1,i,e.length,t.length-1),i}var r=new Array(e.length+t.length);return d.Copy(e,0,r,0,e.length),d.Copy(t,0,r,e.length,t.length),r}},{key:"ChangesOverlap",value:function(e,t,n){if(c.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),c.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var i=e.originalStart,r=e.originalLength,o=e.modifiedStart,s=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(r=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(s=t.modifiedStart+t.modifiedLength-e.modifiedStart),n[0]=new a(i,r,o,s),!0}return n[0]=null,!1}},{key:"ClipDiagonalBound",value:function(e,t,n,i){if(e>=0&&e<i)return e;var r=t%2===0;return e<0?r===(n%2===0)?0:1:r===((i-n-1)%2===0)?i-1:i-2}}],[{key:"_isStringArray",value:function(e){return e.length>0&&"string"===typeof e[0]}},{key:"_getElements",value:function(t){var n=t.getElements();if(e._isStringArray(n)){for(var i=new Int32Array(n.length),r=0,o=n.length;r<o;r++)i[r]=(0,s.Cv)(n[r],0);return[n,i,!0]}return n instanceof Int32Array?[[],n,!1]:[[],new Int32Array(n),!1]}}]),e}()},8729:function(e,t,n){"use strict";n.d(t,{Cp:function(){return s},F0:function(){return d},L6:function(){return f},VV:function(){return c},b1:function(){return h},dL:function(){return a},ri:function(){return u}});var i=n(15671),r=n(43144),o=new(function(){function e(){(0,i.Z)(this,e),this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout((function(){if(e.stack)throw new Error(e.message+"\n\n"+e.stack);throw e}),0)}}return(0,r.Z)(e,[{key:"emit",value:function(e){this.listeners.forEach((function(t){t(e)}))}},{key:"onUnexpectedError",value:function(e){this.unexpectedErrorHandler(e),this.emit(e)}},{key:"onUnexpectedExternalError",value:function(e){this.unexpectedErrorHandler(e)}}]),e}());function a(e){c(e)||o.onUnexpectedError(e)}function s(e){c(e)||o.onUnexpectedExternalError(e)}function u(e){return e instanceof Error?{$isError:!0,name:e.name,message:e.message,stack:e.stacktrace||e.stack}:e}var l="Canceled";function c(e){return e instanceof Error&&e.name===l&&e.message===l}function d(){var e=new Error(l);return e.name=e.message,e}function h(e){return e?new Error("Illegal argument: ".concat(e)):new Error("Illegal argument")}function f(e){return e?new Error("Illegal state: ".concat(e)):new Error("Illegal state")}},11732:function(e,t,n){"use strict";n.d(t,{E7:function(){return C},K3:function(){return w},Q5:function(){return b},ZD:function(){return k},ju:function(){return i}});var i,r=n(11752),o=n(61120),a=n(60136),s=n(29388),u=n(29439),l=n(37762),c=n(15671),d=n(43144),h=n(93433),f=n(8729),p=n(81626),v=n(28214),g=n(96257);!function(e){function t(e){return function(t){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=!1;return n=e((function(e){if(!r)return n?n.dispose():r=!0,t.call(i,e)}),null,arguments.length>2?arguments[2]:void 0),r&&n.dispose(),n}}function n(e,t){return a((function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e((function(e){return n.call(i,t(e))}),null,arguments.length>2?arguments[2]:void 0)}))}function i(e,t){return a((function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e((function(e){t(e),n.call(i,e)}),null,arguments.length>2?arguments[2]:void 0)}))}function r(e,t){return a((function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e((function(e){return t(e)&&n.call(i,e)}),null,arguments.length>2?arguments[2]:void 0)}))}function o(e,t,i){var r=i;return n(e,(function(e){return r=t(r,e)}))}function a(e){var t,n=new b({onFirstListenerAdd:function(){t=e(n.fire,n)},onLastListenerRemove:function(){t.dispose()}});return n.event}function s(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=void 0,a=void 0,s=0,u=new b({leakWarningThreshold:arguments.length>4?arguments[4]:void 0,onFirstListenerAdd:function(){n=e((function(e){s++,o=t(o,e),r&&!a&&(u.fire(o),o=void 0),clearTimeout(a),a=setTimeout((function(){var e=o;o=void 0,a=void 0,(!r||s>1)&&u.fire(e),s=0}),i)}))},onLastListenerRemove:function(){n.dispose()}});return u.event}function u(e){var t,n=!0;return r(e,(function(e){var i=n||e!==t;return n=!1,t=e,i}))}e.None=function(){return p.JT.None},e.once=t,e.map=n,e.forEach=i,e.filter=r,e.signal=function(e){return e},e.any=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2?arguments[2]:void 0;return p.F8.apply(void 0,(0,h.Z)(t.map((function(t){return t((function(t){return e.call(n,t)}),null,i)}))))}},e.reduce=o,e.snapshot=a,e.debounce=s,e.stopwatch=function(e){var i=(new Date).getTime();return n(t(e),(function(e){return(new Date).getTime()-i}))},e.latch=u,e.buffer=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]).slice(),i=e((function(e){n?n.push(e):o.fire(e)})),r=function(){n&&n.forEach((function(e){return o.fire(e)})),n=null},o=new b({onFirstListenerAdd:function(){i||(i=e((function(e){return o.fire(e)})))},onFirstListenerDidAdd:function(){n&&(t?setTimeout(r):r())},onLastListenerRemove:function(){i&&i.dispose(),i=null}});return o.event};var l=function(){function e(t){(0,c.Z)(this,e),this.event=t}return(0,d.Z)(e,[{key:"map",value:function(t){return new e(n(this.event,t))}},{key:"forEach",value:function(t){return new e(i(this.event,t))}},{key:"filter",value:function(t){return new e(r(this.event,t))}},{key:"reduce",value:function(t,n){return new e(o(this.event,t,n))}},{key:"latch",value:function(){return new e(u(this.event))}},{key:"debounce",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;return new e(s(this.event,t,n,i,r))}},{key:"on",value:function(e,t,n){return this.event(e,t,n)}},{key:"once",value:function(e,n,i){return t(this.event)(e,n,i)}}]),e}();e.chain=function(e){return new l(e)},e.fromNodeEventEmitter=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){return e},i=function(){return r.fire(n.apply(void 0,arguments))},r=new b({onFirstListenerAdd:function(){return e.on(t,i)},onLastListenerRemove:function(){return e.removeListener(t,i)}});return r.event},e.fromDOMEventEmitter=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){return e},i=function(){return r.fire(n.apply(void 0,arguments))},r=new b({onFirstListenerAdd:function(){return e.addEventListener(t,i)},onLastListenerRemove:function(){return e.removeEventListener(t,i)}});return r.event},e.fromPromise=function(e){var t=new b,n=!1;return e.then(void 0,(function(){return null})).then((function(){n?t.fire(void 0):setTimeout((function(){return t.fire(void 0)}),0)})),n=!0,t.event},e.toPromise=function(e){return new Promise((function(n){return t(e)(n)}))}}(i||(i={}));var m=function(){function e(t){(0,c.Z)(this,e),this._listenerCount=0,this._invocationCount=0,this._elapsedOverall=0,this._name="".concat(t,"_").concat(e._idPool++)}return(0,d.Z)(e,[{key:"start",value:function(e){this._stopWatch=new g.G(!0),this._listenerCount=e}},{key:"stop",value:function(){if(this._stopWatch){var e=this._stopWatch.elapsed();this._elapsedOverall+=e,this._invocationCount+=1,console.info("did FIRE ".concat(this._name,": elapsed_ms: ").concat(e.toFixed(5),", listener: ").concat(this._listenerCount," (elapsed_overall: ").concat(this._elapsedOverall.toFixed(2),", invocations: ").concat(this._invocationCount,")")),this._stopWatch=void 0}}}]),e}();m._idPool=0;var _=-1,y=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.random().toString(18).slice(2,5);(0,c.Z)(this,e),this.customThreshold=t,this.name=n,this._warnCountdown=0}return(0,d.Z)(e,[{key:"dispose",value:function(){this._stacks&&this._stacks.clear()}},{key:"check",value:function(e){var t=this,n=_;if("number"===typeof this.customThreshold&&(n=this.customThreshold),!(n<=0||e<n)){this._stacks||(this._stacks=new Map);var i=(new Error).stack.split("\n").slice(3).join("\n"),r=this._stacks.get(i)||0;if(this._stacks.set(i,r+1),this._warnCountdown-=1,this._warnCountdown<=0){var o;this._warnCountdown=.5*n;var a,s=0,c=(0,l.Z)(this._stacks);try{for(c.s();!(a=c.n()).done;){var d=(0,u.Z)(a.value,2),h=d[0],f=d[1];(!o||s<f)&&(o=h,s=f)}}catch(p){c.e(p)}finally{c.f()}console.warn("[".concat(this.name,"] potential listener LEAK detected, having ").concat(e," listeners already. MOST frequent listener (").concat(s,"):")),console.warn(o)}return function(){var e=t._stacks.get(i)||0;t._stacks.set(i,e-1)}}}}]),e}(),b=function(){function e(t){var n;(0,c.Z)(this,e),this._disposed=!1,this._options=t,this._leakageMon=_>0?new y(this._options&&this._options.leakWarningThreshold):void 0,this._perfMon=(null===(n=this._options)||void 0===n?void 0:n._profName)?new m(this._options._profName):void 0}return(0,d.Z)(e,[{key:"event",get:function(){var t=this;return this._event||(this._event=function(n,i,r){var o;t._listeners||(t._listeners=new v.S);var a=t._listeners.isEmpty();a&&t._options&&t._options.onFirstListenerAdd&&t._options.onFirstListenerAdd(t);var s=t._listeners.push(i?[n,i]:n);a&&t._options&&t._options.onFirstListenerDidAdd&&t._options.onFirstListenerDidAdd(t),t._options&&t._options.onListenerDidAdd&&t._options.onListenerDidAdd(t,n,i);var u,l=null===(o=t._leakageMon)||void 0===o?void 0:o.check(t._listeners.size);return u={dispose:function(){(l&&l(),u.dispose=e._noop,t._disposed)||(s(),t._options&&t._options.onLastListenerRemove&&(t._listeners&&!t._listeners.isEmpty()||t._options.onLastListenerRemove(t)))}},r instanceof p.SL?r.add(u):Array.isArray(r)&&r.push(u),u}),this._event}},{key:"fire",value:function(e){var t,n;if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new v.S);var i,r=(0,l.Z)(this._listeners);try{for(r.s();!(i=r.n()).done;){var o=i.value;this._deliveryQueue.push([o,e])}}catch(h){r.e(h)}finally{r.f()}for(null===(t=this._perfMon)||void 0===t||t.start(this._deliveryQueue.size);this._deliveryQueue.size>0;){var a=this._deliveryQueue.shift(),s=(0,u.Z)(a,2),c=s[0],d=s[1];try{"function"===typeof c?c.call(void 0,d):c[0].call(c[1],d)}catch(p){(0,f.dL)(p)}}null===(n=this._perfMon)||void 0===n||n.stop()}}},{key:"dispose",value:function(){var e,t,n;null===(e=this._listeners)||void 0===e||e.clear(),null===(t=this._deliveryQueue)||void 0===t||t.clear(),null===(n=this._leakageMon)||void 0===n||n.dispose(),this._disposed=!0}}]),e}();b._noop=function(){};var w=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e))._isPaused=0,i._eventQueue=new v.S,i._mergeFn=null===e||void 0===e?void 0:e.merge,i}return(0,d.Z)(n,[{key:"pause",value:function(){this._isPaused++}},{key:"resume",value:function(){if(0!==this._isPaused&&0===--this._isPaused)if(this._mergeFn){var e=Array.from(this._eventQueue);this._eventQueue.clear(),(0,r.Z)((0,o.Z)(n.prototype),"fire",this).call(this,this._mergeFn(e))}else for(;!this._isPaused&&0!==this._eventQueue.size;)(0,r.Z)((0,o.Z)(n.prototype),"fire",this).call(this,this._eventQueue.shift())}},{key:"fire",value:function(e){this._listeners&&(0!==this._isPaused?this._eventQueue.push(e):(0,r.Z)((0,o.Z)(n.prototype),"fire",this).call(this,e))}}]),n}(b),C=function(){function e(){(0,c.Z)(this,e),this.buffers=[]}return(0,d.Z)(e,[{key:"wrapEvent",value:function(e){var t=this;return function(n,i,r){return e((function(e){var r=t.buffers[t.buffers.length-1];r?r.push((function(){return n.call(i,e)})):n.call(i,e)}),void 0,r)}}},{key:"bufferEvents",value:function(e){var t=[];this.buffers.push(t);var n=e();return this.buffers.pop(),t.forEach((function(e){return e()})),n}}]),e}(),k=function(){function e(){var t=this;(0,c.Z)(this,e),this.listening=!1,this.inputEvent=i.None,this.inputEventListener=p.JT.None,this.emitter=new b({onFirstListenerDidAdd:function(){t.listening=!0,t.inputEventListener=t.inputEvent(t.emitter.fire,t.emitter)},onLastListenerRemove:function(){t.listening=!1,t.inputEventListener.dispose()}}),this.event=this.emitter.event}return(0,d.Z)(e,[{key:"input",set:function(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}},{key:"dispose",value:function(){this.inputEventListener.dispose(),this.emitter.dispose()}}]),e}()},67537:function(e,t,n){"use strict";n.d(t,{KM:function(){return s},ej:function(){return a},oP:function(){return l},vY:function(){return u}});var i=n(30487),r=n(51747),o=n(36912);function a(e){return e.replace(/[\\/]/g,o.KR.sep)}function s(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:o.ir;if(e===t)return!0;if(!e||!t)return!1;if(t.length>e.length)return!1;if(n){if(!(0,r.ok)(e,t))return!1;if(t.length===e.length)return!0;var a=t.length;return t.charAt(t.length-1)===i&&a--,e.charAt(a)===i}return t.charAt(t.length-1)!==i&&(t+=i),0===e.indexOf(t)}function u(e){var t=(0,o.Fv)(e);return i.ED?!(e.length>3)&&(l(t)&&(2===e.length||92===t.charCodeAt(2))):t===o.KR.sep}function l(e){return!!i.ED&&(((t=e.charCodeAt(0))>=65&&t<=90||t>=97&&t<=122)&&58===e.charCodeAt(1));var t}},50482:function(e,t,n){"use strict";n.d(t,{CL:function(){return O},EW:function(){return W},Ji:function(){return a},KZ:function(){return b},Oh:function(){return L},ir:function(){return s},jB:function(){return E},l7:function(){return Y},mB:function(){return N},or:function(){return o}});var i=n(15022),r=n(51747);function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e,n){for(var i=0,r=t.length;i<r;i++){var o=t[i](e,n);if(o)return o}return null}}var a=function(e,t,n){if(!n||n.length<t.length)return null;var i;i=e?r.ok(n,t):0===n.indexOf(t);if(!i)return null;return t.length>0?[{start:0,end:t.length}]:[]}.bind(void 0,!0);function s(e,t){var n=t.toLowerCase().indexOf(e.toLowerCase());return-1===n?null:[{start:n,end:n+e.length}]}function u(e,t,n,i){if(n===e.length)return[];if(i===t.length)return null;if(e[n]===t[i]){var r;return(r=u(e,t,n+1,i+1))?g({start:i,end:i+1},r):null}return u(e,t,n,i+1)}function l(e){return 97<=e&&e<=122}function c(e){return 65<=e&&e<=90}function d(e){return 48<=e&&e<=57}function h(e){return 32===e||9===e||10===e||13===e}var f=new Set;function p(e){return h(e)||f.has(e)}function v(e){return l(e)||c(e)||d(e)}function g(e,t){return 0===t.length?t=[e]:e.end===t[0].start?t[0].start=e.start:t.unshift(e),t}function m(e,t){for(var n=t;n<e.length;n++){var i=e.charCodeAt(n);if(c(i)||d(i)||n>0&&!v(e.charCodeAt(n-1)))return n}return e.length}function _(e,t,n,i){if(n===e.length)return[];if(i===t.length)return null;if(e[n]!==t[i].toLowerCase())return null;var r=null,o=i+1;for(r=_(e,t,n+1,i+1);!r&&(o=m(t,o))<t.length;)r=_(e,t,n+1,o),o++;return null===r?null:g({start:i,end:i+1},r)}function y(e,t){if(!t)return null;if(0===(t=t.trim()).length)return null;if(!function(e){for(var t=0,n=0,i=0,r=0,o=0;o<e.length;o++)c(i=e.charCodeAt(o))&&t++,l(i)&&n++,h(i)&&r++;return 0!==t&&0!==n||0!==r?t<=5:e.length<=30}(e))return null;if(t.length>60)return null;var n=function(e){for(var t=0,n=0,i=0,r=0,o=0,a=0;a<e.length;a++)c(o=e.charCodeAt(a))&&t++,l(o)&&n++,v(o)&&i++,d(o)&&r++;return{upperPercent:t/e.length,lowerPercent:n/e.length,alphaPercent:i/e.length,numericPercent:r/e.length}}(t);if(!function(e){var t=e.upperPercent,n=e.lowerPercent,i=e.alphaPercent,r=e.numericPercent;return n>.2&&t<.8&&i>.6&&r<.2}(n)){if(!function(e){var t=e.upperPercent;return 0===e.lowerPercent&&t>.6}(n))return null;t=t.toLowerCase()}var i=null,r=0;for(e=e.toLowerCase();r<t.length&&null===(i=_(e,t,0,r));)r=m(t,r+1);return i}function b(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!t||0===t.length)return null;var i=null,r=0;for(e=e.toLowerCase(),t=t.toLowerCase();r<t.length&&null===(i=w(e,t,0,r,n));)r=C(t,r+1);return i}function w(e,t,n,i,r){if(n===e.length)return[];if(i===t.length)return null;if(s=e.charCodeAt(n),u=t.charCodeAt(i),s===u||p(s)&&p(u)){var o=null,a=i+1;if(o=w(e,t,n+1,i+1,r),!r)for(;!o&&(a=C(t,a))<t.length;)o=w(e,t,n+1,a,r),a++;return null===o?null:g({start:i,end:i+1},o)}return null;var s,u}function C(e,t){for(var n=t;n<e.length;n++)if(p(e.charCodeAt(n))||n>0&&p(e.charCodeAt(n-1)))return n;return e.length}"`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?".split("").forEach((function(e){return f.add(e.charCodeAt(0))}));var k=o(a,y,s),S=o(a,y,(function(e,t){return u(e.toLowerCase(),t.toLowerCase(),0,0)})),x=new i.z6(1e4);function L(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"!==typeof e||"string"!==typeof t)return null;var i=x.get(e);i||(i=new RegExp(r.un(e),"i"),x.set(e,i));var o=i.exec(t);return o?[{start:o.index,end:o.index+o[0].length}]:n?S(e,t):k(e,t)}function E(e,t,n,i,r,o){for(var a=Math.min(13,e.length);n<a;n++){var s=W(e,t,n,i,r,o,!1);if(s)return s}return[0,o]}function N(e){if("undefined"===typeof e)return[];for(var t=[],n=e[1],i=e.length-1;i>1;i--){var r=e[i]+n,o=t[t.length-1];o&&o.end===r?o.end=r+1:t.push({start:r,end:r+1})}return t}var D=128;function M(){for(var e=[],t=[],n=0;n<=D;n++)t[n]=0;for(var i=0;i<=D;i++)e.push(t.slice(0));return e}function T(e){for(var t=[],n=0;n<=e;n++)t[n]=0;return t}var O,I=T(2*D),A=T(2*D),P=M(),R=M(),Z=M(),F=!1;function j(e,t,n,i,r){function o(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:" ";e.length<t;)e=n+e;return e}for(var a=" | |".concat(i.split("").map((function(e){return o(e,3)})).join("|"),"\n"),s=0;s<=n;s++)a+=0===s?" |":"".concat(t[s-1],"|"),a+=e[s].slice(0,r+1).map((function(e){return o(e.toString(),3)})).join("|")+"\n";return a}function H(e,t){if(t<0||t>=e.length)return!1;var n=e.codePointAt(t);switch(n){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 40:case 91:return!0;case void 0:return!1;default:return!!r.C8(n)}}function B(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 32:case 9:return!0;default:return!1}}function z(e,t,n){return t[e]!==n[e]}function W(e,t,n,i,r,o,a){var s=e.length>D?D:e.length,u=i.length>D?D:i.length;if(!(n>=s||o>=u||s-n>u-o)&&function(e,t,n,i,r,o){for(var a=arguments.length>6&&void 0!==arguments[6]&&arguments[6];t<n&&r<o;)e[t]===i[r]&&(a&&(I[t]=r),t+=1),r+=1;return t===n}(t,n,s,r,o,u,!0)){!function(e,t,n,i,r,o){var a=e-1,s=t-1;for(;a>=n&&s>=i;)r[a]===o[s]&&(A[a]=s,a--),s--}(s,u,n,o,t,r);var l=1,c=1,d=n,h=o,f=[!1];for(l=1,d=n;d<s;l++,d++){var p=I[d],v=A[d],g=d+1<s?A[d+1]:u;for(c=p-o+1,h=p;h<g;c++,h++){var m=Number.MIN_SAFE_INTEGER,_=!1;h<=v&&(m=V(e,t,d,n,i,r,h,u,o,0===P[l-1][c-1],f));var y=0;m!==Number.MAX_SAFE_INTEGER&&(_=!0,y=m+R[l-1][c-1]);var b=h>p,w=b?R[l][c-1]+(P[l][c-1]>0?-5:0):0,C=h>p+1&&P[l][c-1]>0,k=C?R[l][c-2]+(P[l][c-2]>0?-5:0):0;if(C&&(!b||k>=w)&&(!_||k>=y))R[l][c]=k,Z[l][c]=3,P[l][c]=0;else if(b&&(!_||w>=y))R[l][c]=w,Z[l][c]=2,P[l][c]=0;else{if(!_)throw new Error("not possible");R[l][c]=y,Z[l][c]=1,P[l][c]=P[l-1][c-1]+1}}}if(F&&function(e,t,n,i){e=e.substr(t),n=n.substr(i),console.log(j(R,e,e.length,n,n.length)),console.log(j(Z,e,e.length,n,n.length)),console.log(j(P,e,e.length,n,n.length))}(e,n,i,o),f[0]||a){l--,c--;for(var S=[R[l][c],o],x=0,L=0;l>=1;){var E=c;do{var N=Z[l][E];if(3===N)E-=2;else{if(2!==N)break;E-=1}}while(E>=1);x>1&&t[n+l-1]===r[o+c-1]&&!z(E+o-1,i,r)&&x+1>P[l][E]&&(E=c),E===c?x++:x=1,L||(L=E),l--,c=E-1,S.push(c)}u===s&&(S[0]+=2);var M=L-s;return S[0]-=M,S}}}function V(e,t,n,i,r,o,a,s,u,l,c){if(t[n]!==o[a])return Number.MIN_SAFE_INTEGER;var d=1,h=!1;return a===n-i?d=e[n]===r[a]?7:5:!z(a,r,o)||0!==a&&z(a-1,r,o)?!H(o,a)||0!==a&&H(o,a-1)?(H(o,a-1)||B(o,a-1))&&(d=5,h=!0):d=5:(d=e[n]===r[a]?7:5,h=!0),d>1&&n===i&&(c[0]=!0),h||(h=z(a,r,o)||H(o,a-1)||B(o,a-1)),n===i?a>u&&(d-=h?3:5):d+=l?h?2:0:h?0:1,a+1===s&&(d-=h?3:5),d}function Y(e,t,n,i,r,o,a){return function(e,t,n,i,r,o,a,s){var u=W(e,t,n,i,r,o,s);if(u&&!a)return u;if(e.length>=3)for(var l=Math.min(7,e.length-1),c=n+1;c<l;c++){var d=U(e,c);if(d){var h=W(d,d.toLowerCase(),n,i,r,o,s);h&&(h[0]-=3,(!u||h[0]>u[0])&&(u=h))}}return u}(e,t,n,i,r,o,!0,a)}function U(e,t){if(!(t+1>=e.length)){var n=e[t],i=e[t+1];if(n!==i)return e.slice(0,t)+i+n+e.slice(t+2)}}!function(e){e.Default=[-100,0],e.isDefault=function(e){return!e||2===e.length&&-100===e[0]&&0===e[1]}}(O||(O={}))},60106:function(e,t,n){"use strict";function i(e){var t,n=this,i=!1;return function(){return i?t:(i=!0,t=e.apply(n,arguments))}}n.d(t,{I:function(){return i}})},79612:function(e,t,n){"use strict";n.d(t,{EQ:function(){return M}});var i=n(37762),r=n(51747),o=n(67537),a=n(36912),s=n(15022),u=n(27997),l="**",c="/",d="[/\\\\]",h="[^/\\\\]",f=/\//g;function p(e){switch(e){case 0:return"";case 1:return"".concat(h,"*?");default:return"(?:".concat(d,"|").concat(h,"+").concat(d,"|").concat(d).concat(h,"+)*?")}}function v(e,t){if(!e)return[];var n,r=[],o=!1,a=!1,s="",u=(0,i.Z)(e);try{for(u.s();!(n=u.n()).done;){var l=n.value;switch(l){case t:if(!o&&!a){r.push(s),s="";continue}break;case"{":o=!0;break;case"}":o=!1;break;case"[":a=!0;break;case"]":a=!1}s+=l}}catch(c){u.e(c)}finally{u.f()}return s&&r.push(s),r}function g(e){if(!e)return"";var t="",n=v(e,c);if(n.every((function(e){return e===l})))t=".*";else{var o=!1;n.forEach((function(e,a){if(e!==l){var s,u=!1,f="",m=!1,_="",y=(0,i.Z)(e);try{for(y.s();!(s=y.n()).done;){var b=s.value;if("}"!==b&&u)f+=b;else if(!m||"]"===b&&_)switch(b){case"{":u=!0;continue;case"[":m=!0;continue;case"}":var w=v(f,","),C="(?:".concat(w.map((function(e){return g(e)})).join("|"),")");t+=C,u=!1,f="";break;case"]":t+="["+_+"]",m=!1,_="";break;case"?":t+=h;continue;case"*":t+=p(1);continue;default:t+=r.ec(b)}else{_+="-"===b?b:"^"!==b&&"!"!==b||_?b===c?"":r.ec(b):"^"}}}catch(k){y.e(k)}finally{y.f()}a<n.length-1&&(n[a+1]!==l||a+2<n.length)&&(t+=d),o=!1}else o||(t+=p(2),o=!0)}))}return t}var m=/^\*\*\/\*\.[\w\.-]+$/,_=/^\*\*\/([\w\.-]+)\/?$/,y=/^{\*\*\/[\*\.]?[\w\.-]+\/?(,\*\*\/[\*\.]?[\w\.-]+\/?)*}$/,b=/^{\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?(,\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?)*}$/,w=/^\*\*((\/[\w\.-]+)+)\/?$/,C=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,k=new s.z6(1e4),S=function(){return!1},x=function(){return null};function L(e,t){if(!e)return x;var n;n=(n="string"!==typeof e?e.pattern:e).trim();var i,r="".concat(n,"_").concat(!!t.trimForExclusions),o=k.get(r);if(o)return E(o,e);if(m.test(n)){var a=n.substr(4);o=function(e,t){return"string"===typeof e&&e.endsWith(a)?n:null}}else o=(i=_.exec(N(n,t)))?function(e,t){var n="/".concat(e),i="\\".concat(e),r=function(r,o){return"string"!==typeof r?null:o?o===e?t:null:r===e||r.endsWith(n)||r.endsWith(i)?t:null},o=[e];return r.basenames=o,r.patterns=[t],r.allBasenames=o,r}(i[1],n):(t.trimForExclusions?b:y).test(n)?function(e,t){var n=T(e.slice(1,-1).split(",").map((function(e){return L(e,t)})).filter((function(e){return e!==x})),e),i=n.length;if(!i)return x;if(1===i)return n[0];var r=function(t,i){for(var r=0,o=n.length;r<o;r++)if(n[r](t,i))return e;return null},o=n.find((function(e){return!!e.allBasenames}));o&&(r.allBasenames=o.allBasenames);var a=n.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);a.length&&(r.allPaths=a);return r}(n,t):(i=w.exec(N(n,t)))?D(i[1].substr(1),n,!0):(i=C.exec(N(n,t)))?D(i[1],n,!1):function(e){try{var t=new RegExp("^".concat(g(e),"$"));return function(n){return t.lastIndex=0,"string"===typeof n&&t.test(n)?e:null}}catch(n){return x}}(n);return k.set(r,o),E(o,e)}function E(e,t){return"string"===typeof t?e:function(n,i){return o.KM(n,t.base)?e(a.Gf(t.base,n),i):null}}function N(e,t){return t.trimForExclusions&&e.endsWith("/**")?e.substr(0,e.length-2):e}function D(e,t,n){var i=a.ir===a.KR.sep,r=i?e:e.replace(f,a.ir),o=a.ir+r,s=a.KR.sep+e,u=n?function(n,a){return"string"!==typeof n||n!==r&&!n.endsWith(o)&&(i||n!==e&&!n.endsWith(s))?null:t}:function(n,o){return"string"!==typeof n||n!==r&&(i||n!==e)?null:t};return u.allPaths=[(n?"*/":"./")+e],u}function M(e,t,n){return!(!e||"string"!==typeof t)&&function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return S;if("string"===typeof e||function(e){var t=e;return t&&"string"===typeof t.base&&"string"===typeof t.pattern}(e)){var n=L(e,t);if(n===x)return S;var i=function(e,t){return!!n(e,t)};return n.allBasenames&&(i.allBasenames=n.allBasenames),n.allPaths&&(i.allPaths=n.allPaths),i}return function(e,t){var n=T(Object.getOwnPropertyNames(e).map((function(n){return function(e,t,n){if(!1===t)return x;var i=L(e,n);if(i===x)return x;if("boolean"===typeof t)return i;if(t){var r=t.when;if("string"===typeof r){var o=function(t,n,o,a){if(!a||!i(t,n))return null;var s=a(r.replace("$(basename)",o));return(0,u.J8)(s)?s.then((function(t){return t?e:null})):s?e:null};return o.requiresSiblings=!0,o}}return i}(n,e[n],t)})).filter((function(e){return e!==x}))),i=n.length;if(!i)return x;if(!n.some((function(e){return!!e.requiresSiblings}))){if(1===i)return n[0];var r=function(e,t){for(var i=0,r=n.length;i<r;i++){var o=n[i](e,t);if(o)return o}return null},o=n.find((function(e){return!!e.allBasenames}));o&&(r.allBasenames=o.allBasenames);var s=n.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);return s.length&&(r.allPaths=s),r}var l=function(e,t,i){for(var r=void 0,o=0,s=n.length;o<s;o++){var u=n[o];u.requiresSiblings&&i&&(t||(t=a.EZ(e)),r||(r=t.substr(0,t.length-a.DZ(e).length)));var l=u(e,t,r,i);if(l)return l}return null},c=n.find((function(e){return!!e.allBasenames}));c&&(l.allBasenames=c.allBasenames);var d=n.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);d.length&&(l.allPaths=d);return l}(e,t)}(e)(t,void 0,n)}function T(e,t){var n=e.filter((function(e){return!!e.basenames}));if(n.length<2)return e;var i,r=n.reduce((function(e,t){var n=t.basenames;return n?e.concat(n):e}),[]);if(t){i=[];for(var o=0,a=r.length;o<a;o++)i.push(t)}else i=n.reduce((function(e,t){var n=t.patterns;return n?e.concat(n):e}),[]);var s=function(e,t){if("string"!==typeof e)return null;if(!t){var n;for(n=e.length;n>0;n--){var o=e.charCodeAt(n-1);if(47===o||92===o)break}t=e.substr(n)}var a=r.indexOf(t);return-1!==a?i[a]:null};s.basenames=r,s.patterns=i,s.allBasenames=r;var u=e.filter((function(e){return!e.basenames}));return u.push(s),u}},25567:function(e,t,n){"use strict";n.d(t,{Cv:function(){return l},vp:function(){return a},yP:function(){return f}});var i=n(15671),r=n(43144),o=n(51747);function a(e){return s(e,0)}function s(e,t){switch(typeof e){case"object":return null===e?u(349,t):Array.isArray(e)?(n=e,i=u(104579,i=t),n.reduce((function(e,t){return s(t,e)}),i)):function(e,t){return t=u(181387,t),Object.keys(e).sort().reduce((function(t,n){return t=l(n,t),s(e[n],t)}),t)}(e,t);case"string":return l(e,t);case"boolean":return function(e,t){return u(e?433:863,t)}(e,t);case"number":return u(e,t);case"undefined":return u(937,t);default:return u(617,t)}var n,i}function u(e,t){return(t<<5)-t+e|0}function l(e,t){t=u(149417,t);for(var n=0,i=e.length;n<i;n++)t=u(e.charCodeAt(n),t);return t}function c(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:32)-t;return(e<<t|(~((1<<n)-1)&e)>>>n)>>>0}function d(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.byteLength,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=0;r<n;r++)e[t+r]=i}function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:32;return e instanceof ArrayBuffer?Array.from(new Uint8Array(e)).map((function(e){return e.toString(16).padStart(2,"0")})).join(""):function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"0";e.length<t;)e=n+e;return e}((e>>>0).toString(16),t/4)}var f=function(){function e(){(0,i.Z)(this,e),this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}return(0,r.Z)(e,[{key:"update",value:function(e){var t=e.length;if(0!==t){var n,i,r=this._buff,a=this._buffLen,s=this._leftoverHighSurrogate;for(0!==s?(n=s,i=-1,s=0):(n=e.charCodeAt(0),i=0);;){var u=n;if(o.ZG(n)){if(!(i+1<t)){s=n;break}var l=e.charCodeAt(i+1);o.YK(l)?(i++,u=o.rL(n,l)):u=65533}else o.YK(n)&&(u=65533);if(a=this._push(r,a,u),!(++i<t))break;n=e.charCodeAt(i)}this._buffLen=a,this._leftoverHighSurrogate=s}}},{key:"_push",value:function(e,t,n){return n<128?e[t++]=n:n<2048?(e[t++]=192|(1984&n)>>>6,e[t++]=128|(63&n)>>>0):n<65536?(e[t++]=224|(61440&n)>>>12,e[t++]=128|(4032&n)>>>6,e[t++]=128|(63&n)>>>0):(e[t++]=240|(1835008&n)>>>18,e[t++]=128|(258048&n)>>>12,e[t++]=128|(4032&n)>>>6,e[t++]=128|(63&n)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}},{key:"digest",value:function(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),h(this._h0)+h(this._h1)+h(this._h2)+h(this._h3)+h(this._h4)}},{key:"_wrapUp",value:function(){this._buff[this._buffLen++]=128,d(this._buff,this._buffLen),this._buffLen>56&&(this._step(),d(this._buff));var e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}},{key:"_step",value:function(){for(var t=e._bigBlock32,n=this._buffDV,i=0;i<64;i+=4)t.setUint32(i,n.getUint32(i,!1),!1);for(var r=64;r<320;r+=4)t.setUint32(r,c(t.getUint32(r-12,!1)^t.getUint32(r-32,!1)^t.getUint32(r-56,!1)^t.getUint32(r-64,!1),1),!1);for(var o,a,s,u=this._h0,l=this._h1,d=this._h2,h=this._h3,f=this._h4,p=0;p<80;p++)p<20?(o=l&d|~l&h,a=1518500249):p<40?(o=l^d^h,a=1859775393):p<60?(o=l&d|l&h|d&h,a=2400959708):(o=l^d^h,a=3395469782),s=c(u,5)+o+f+a+t.getUint32(4*p,!1)&4294967295,f=h,h=d,d=c(l,30),l=u,u=s;this._h0=this._h0+u&4294967295,this._h1=this._h1+l&4294967295,this._h2=this._h2+d&4294967295,this._h3=this._h3+h&4294967295,this._h4=this._h4+f&4294967295}}]),e}();f._bigBlock32=new DataView(new ArrayBuffer(320))},10939:function(e,t,n){"use strict";n.d(t,{Gt:function(){return g},Ho:function(){return v},Qo:function(){return c},f$:function(){return h},x$:function(){return p}});var i=n(37762),r=n(4354),o=n(50482),a=n(51747),s="$(",u=new RegExp("\\$\\(".concat(r.dT.iconNameExpression,"(?:").concat(r.dT.iconModifierExpression,")?\\)"),"g"),l=new RegExp("(\\\\)?".concat(u.source),"g");function c(e){return e.replace(l,(function(e,t){return t?e:"\\".concat(e)}))}var d=new RegExp("\\\\".concat(u.source),"g");function h(e){return e.replace(d,(function(e){return"\\".concat(e)}))}var f=new RegExp("(\\s)?(\\\\)?".concat(u.source,"(\\s)?"),"g");function p(e){return-1===e.indexOf(s)?e:e.replace(f,(function(e,t,n,i){return n?e:t||i||""}))}function v(e){var t=e.indexOf(s);return-1===t?{text:e}:function(e,t){var n=[],r="";function o(e){if(e){r+=e;var t,o=(0,i.Z)(e);try{for(o.s();!(t=o.n()).done;){t.value;n.push(d)}}catch(a){o.e(a)}finally{o.f()}}}var a,u,l=-1,c="",d=0,h=t,f=e.length;o(e.substr(0,t));for(;h<f;){if(a=e[h],u=e[h+1],a===s[0]&&u===s[1])l=h,o(c),c=s,h++;else if(")"===a&&-1!==l){d+=h-l+1,l=-1,c=""}else-1!==l?/^[a-z0-9\-]$/i.test(a)?c+=a:(o(c),l=-1,c=""):o(a);h++}return o(c),{text:r,iconOffsets:n}}(e,t)}function g(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t.text,s=t.iconOffsets;if(!s||0===s.length)return(0,o.Oh)(e,r,n);var u=(0,a.j3)(r," "),l=r.length-u.length,c=(0,o.Oh)(e,u,n);if(c){var d,h=(0,i.Z)(c);try{for(h.s();!(d=h.n()).done;){var f=d.value,p=s[f.start+l]+l;f.start+=p,f.end+=p}}catch(v){h.e(v)}finally{h.f()}}return c}},12394:function(e,t,n){"use strict";n.d(t,{R:function(){return o},a:function(){return a}});var i=n(15671),r=n(43144),o=function(){function e(t){(0,i.Z)(this,e),this._prefix=t,this._lastId=0}return(0,r.Z)(e,[{key:"nextId",value:function(){return this._prefix+ ++this._lastId}}]),e}(),a=new o("id#")},98900:function(e,t,n){"use strict";n.d(t,{$:function(){return i}});var i,r=n(4942),o=n(37762),a=n(87757),s=n.n(a);!function(e){var t=s().mark(c),n=s().mark(d),i=s().mark(h),a=s().mark(f),u=s().mark(p);e.is=function(e){return e&&"object"===typeof e&&"function"===typeof e[Symbol.iterator]};var l=Object.freeze([]);function c(e){return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e;case 2:case"end":return t.stop()}}),t)}function d(e,t){var i,r,a;return s().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:i=(0,o.Z)(e),n.prev=1,i.s();case 3:if((r=i.n()).done){n.next=10;break}if(a=r.value,!t(a)){n.next=8;break}return n.next=8,a;case 8:n.next=3;break;case 10:n.next=15;break;case 12:n.prev=12,n.t0=n.catch(1),i.e(n.t0);case 15:return n.prev=15,i.f(),n.finish(15);case 18:case"end":return n.stop()}}),n,null,[[1,12,15,18]])}function h(e,t){var n,r,a;return s().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:n=(0,o.Z)(e),i.prev=1,n.s();case 3:if((r=n.n()).done){i.next=9;break}return a=r.value,i.next=7,t(a);case 7:i.next=3;break;case 9:i.next=14;break;case 11:i.prev=11,i.t0=i.catch(1),n.e(i.t0);case 14:return i.prev=14,n.f(),i.finish(14);case 17:case"end":return i.stop()}}),i,null,[[1,11,14,17]])}function f(){var e,t,n,i,r,u,l,c,d,h=arguments;return s().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:for(e=h.length,t=new Array(e),n=0;n<e;n++)t[n]=h[n];i=0,r=t;case 2:if(!(i<r.length)){a.next=24;break}u=r[i],l=(0,o.Z)(u),a.prev=5,l.s();case 7:if((c=l.n()).done){a.next=13;break}return d=c.value,a.next=11,d;case 11:a.next=7;break;case 13:a.next=18;break;case 15:a.prev=15,a.t0=a.catch(5),l.e(a.t0);case 18:return a.prev=18,l.f(),a.finish(18);case 21:i++,a.next=2;break;case 24:case"end":return a.stop()}}),a,null,[[5,15,18,21]])}function p(e){var t,n,i,r,a,l;return s().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:t=(0,o.Z)(e),s.prev=1,t.s();case 3:if((n=t.n()).done){s.next=24;break}i=n.value,r=(0,o.Z)(i),s.prev=6,r.s();case 8:if((a=r.n()).done){s.next=14;break}return l=a.value,s.next=12,l;case 12:s.next=8;break;case 14:s.next=19;break;case 16:s.prev=16,s.t0=s.catch(6),r.e(s.t0);case 19:return s.prev=19,r.f(),s.finish(19);case 22:s.next=3;break;case 24:s.next=29;break;case 26:s.prev=26,s.t1=s.catch(1),t.e(s.t1);case 29:return s.prev=29,t.f(),s.finish(29);case 32:case"end":return s.stop()}}),u,null,[[1,26,29,32],[6,16,19,22]])}e.empty=function(){return l},e.single=c,e.from=function(e){return e||l},e.isEmpty=function(e){return!e||!0===e[Symbol.iterator]().next().done},e.first=function(e){return e[Symbol.iterator]().next().value},e.some=function(e,t){var n,i=(0,o.Z)(e);try{for(i.s();!(n=i.n()).done;){if(t(n.value))return!0}}catch(r){i.e(r)}finally{i.f()}return!1},e.find=function(e,t){var n,i=(0,o.Z)(e);try{for(i.s();!(n=i.n()).done;){var r=n.value;if(t(r))return r}}catch(a){i.e(a)}finally{i.f()}},e.filter=d,e.map=h,e.concat=f,e.concatNested=p,e.reduce=function(e,t,n){var i,r=n,a=(0,o.Z)(e);try{for(a.s();!(i=a.n()).done;){r=t(r,i.value)}}catch(s){a.e(s)}finally{a.f()}return r},e.slice=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;return s().mark((function i(){return s().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:t<0&&(t+=e.length),n<0?n+=e.length:n>e.length&&(n=e.length);case 2:if(!(t<n)){i.next=8;break}return i.next=5,e[t];case 5:t++,i.next=2;break;case 8:case"end":return i.stop()}}),i)}))()},e.consume=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY,i=[];if(0===n)return[i,t];for(var o=t[Symbol.iterator](),a=0;a<n;a++){var s=o.next();if(s.done)return[i,e.empty()];i.push(s.value)}return[i,(0,r.Z)({},Symbol.iterator,(function(){return o}))]},e.equals=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e,t){return e===t},i=e[Symbol.iterator](),r=t[Symbol.iterator]();;){var o=i.next(),a=r.next();if(o.done!==a.done)return!1;if(o.done)return!0;if(!n(o.value,a.value))return!1}}}(i||(i={}))},38792:function(e,t,n){"use strict";n.d(t,{BQ:function(){return g},QC:function(){return p},f1:function(){return m},gm:function(){return h},gx:function(){return d},kL:function(){return i}});var i,r=n(15671),o=n(43144),a=n(8729),s=function(){function e(){(0,r.Z)(this,e),this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}return(0,o.Z)(e,[{key:"define",value:function(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}},{key:"keyCodeToStr",value:function(e){return this._keyCodeToStr[e]}},{key:"strToKeyCode",value:function(e){return this._strToKeyCode[e.toLowerCase()]||0}}]),e}(),u=new s,l=new s,c=new s;function d(e,t){return(e|(65535&t)<<16>>>0)>>>0}function h(e,t){if(0===e)return null;var n=(65535&e)>>>0,i=(4294901760&e)>>>16;return new v(0!==i?[f(n,t),f(i,t)]:[f(n,t)])}function f(e,t){var n=!!(2048&e),i=!!(256&e);return new p(2===t?i:n,!!(1024&e),!!(512&e),2===t?n:i,255&e)}!function(){function e(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;u.define(e,t),l.define(e,n),c.define(e,i)}e(0,"unknown"),e(1,"Backspace"),e(2,"Tab"),e(3,"Enter"),e(4,"Shift"),e(5,"Ctrl"),e(6,"Alt"),e(7,"PauseBreak"),e(8,"CapsLock"),e(9,"Escape"),e(10,"Space"),e(11,"PageUp"),e(12,"PageDown"),e(13,"End"),e(14,"Home"),e(15,"LeftArrow","Left"),e(16,"UpArrow","Up"),e(17,"RightArrow","Right"),e(18,"DownArrow","Down"),e(19,"Insert"),e(20,"Delete"),e(21,"0"),e(22,"1"),e(23,"2"),e(24,"3"),e(25,"4"),e(26,"5"),e(27,"6"),e(28,"7"),e(29,"8"),e(30,"9"),e(31,"A"),e(32,"B"),e(33,"C"),e(34,"D"),e(35,"E"),e(36,"F"),e(37,"G"),e(38,"H"),e(39,"I"),e(40,"J"),e(41,"K"),e(42,"L"),e(43,"M"),e(44,"N"),e(45,"O"),e(46,"P"),e(47,"Q"),e(48,"R"),e(49,"S"),e(50,"T"),e(51,"U"),e(52,"V"),e(53,"W"),e(54,"X"),e(55,"Y"),e(56,"Z"),e(57,"Meta"),e(58,"ContextMenu"),e(59,"F1"),e(60,"F2"),e(61,"F3"),e(62,"F4"),e(63,"F5"),e(64,"F6"),e(65,"F7"),e(66,"F8"),e(67,"F9"),e(68,"F10"),e(69,"F11"),e(70,"F12"),e(71,"F13"),e(72,"F14"),e(73,"F15"),e(74,"F16"),e(75,"F17"),e(76,"F18"),e(77,"F19"),e(78,"NumLock"),e(79,"ScrollLock"),e(80,";",";","OEM_1"),e(81,"=","=","OEM_PLUS"),e(82,",",",","OEM_COMMA"),e(83,"-","-","OEM_MINUS"),e(84,".",".","OEM_PERIOD"),e(85,"/","/","OEM_2"),e(86,"`","`","OEM_3"),e(110,"ABNT_C1"),e(111,"ABNT_C2"),e(87,"[","[","OEM_4"),e(88,"\\","\\","OEM_5"),e(89,"]","]","OEM_6"),e(90,"'","'","OEM_7"),e(91,"OEM_8"),e(92,"OEM_102"),e(93,"NumPad0"),e(94,"NumPad1"),e(95,"NumPad2"),e(96,"NumPad3"),e(97,"NumPad4"),e(98,"NumPad5"),e(99,"NumPad6"),e(100,"NumPad7"),e(101,"NumPad8"),e(102,"NumPad9"),e(103,"NumPad_Multiply"),e(104,"NumPad_Add"),e(105,"NumPad_Separator"),e(106,"NumPad_Subtract"),e(107,"NumPad_Decimal"),e(108,"NumPad_Divide")}(),function(e){e.toString=function(e){return u.keyCodeToStr(e)},e.fromString=function(e){return u.strToKeyCode(e)},e.toUserSettingsUS=function(e){return l.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return c.keyCodeToStr(e)},e.fromUserSettings=function(e){return l.strToKeyCode(e)||c.strToKeyCode(e)}}(i||(i={}));var p=function(){function e(t,n,i,o,a){(0,r.Z)(this,e),this.ctrlKey=t,this.shiftKey=n,this.altKey=i,this.metaKey=o,this.keyCode=a}return(0,o.Z)(e,[{key:"equals",value:function(e){return this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode}},{key:"isModifierKey",value:function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode}},{key:"toChord",value:function(){return new v([this])}},{key:"isDuplicateModifierCase",value:function(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode}}]),e}(),v=(0,o.Z)((function e(t){if((0,r.Z)(this,e),0===t.length)throw(0,a.b1)("parts");this.parts=t})),g=(0,o.Z)((function e(t,n,i,o,a,s){(0,r.Z)(this,e),this.ctrlKey=t,this.shiftKey=n,this.altKey=i,this.metaKey=o,this.keyLabel=a,this.keyAriaLabel=s})),m=(0,o.Z)((function e(){(0,r.Z)(this,e)}))},85733:function(e,t,n){"use strict";n.d(t,{X4:function(){return u},xo:function(){return s}});var i=n(15671),r=n(43144),o=n(56345),a=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n;(0,i.Z)(this,e),this.modifierLabels=[null],this.modifierLabels[2]=t,this.modifierLabels[1]=n,this.modifierLabels[3]=r}return(0,r.Z)(e,[{key:"toLabel",value:function(e,t,n){if(0===t.length)return null;for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=n(a);if(null===s)return null;i[r]=l(a,s,this.modifierLabels[e])}return i.join(" ")}}]),e}(),s=new a({ctrlKey:"\u2303",shiftKey:"\u21e7",altKey:"\u2325",metaKey:"\u2318",separator:""},{ctrlKey:o.N({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:o.N({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"windowsKey",comment:["This is the short form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:o.N({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:o.N({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"superKey",comment:["This is the short form for the Super key on the keyboard"]},"Super"),separator:"+"}),u=new a({ctrlKey:o.N({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:o.N({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"cmdKey.long",comment:["This is the long form for the Command key on the keyboard"]},"Command"),separator:"+"},{ctrlKey:o.N({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:o.N({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"windowsKey.long",comment:["This is the long form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:o.N({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:o.N({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:o.N({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:o.N({key:"superKey.long",comment:["This is the long form for the Super key on the keyboard"]},"Super"),separator:"+"});function l(e,t,n){if(null===t)return"";var i=[];return e.ctrlKey&&i.push(n.ctrlKey),e.shiftKey&&i.push(n.shiftKey),e.altKey&&i.push(n.altKey),e.metaKey&&i.push(n.metaKey),""!==t&&i.push(t),i.join(n.separator)}},81626:function(e,t,n){"use strict";n.d(t,{B9:function(){return v},F8:function(){return g},JT:function(){return y},Jz:function(){return w},OF:function(){return m},SL:function(){return _},Wf:function(){return p},XK:function(){return b}});var i=n(37762),r=n(60136),o=n(29388),a=n(28664),s=n(15671),u=n(43144),l=n(98900),c=null;function d(e){c&&c.markTracked(e)}function h(e){return c?(c.trackDisposable(e),e):e}var f=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,"Encountered errors while disposing of store. Errors: [".concat(e.join(", "),"]"))).errors=e,i}return(0,u.Z)(n)}((0,a.Z)(Error));function p(e){return"function"===typeof e.dispose&&0===e.dispose.length}function v(e){if(l.$.is(e)){var t,n=[],r=(0,i.Z)(e);try{for(r.s();!(t=r.n()).done;){var o=t.value;if(o){d(o);try{o.dispose()}catch(a){n.push(a)}}}}catch(s){r.e(s)}finally{r.f()}if(1===n.length)throw n[0];if(n.length>1)throw new f(n);return Array.isArray(e)?[]:e}if(e)return d(e),e.dispose(),e}function g(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.forEach(d),m((function(){return v(t)}))}function m(e){var t=h({dispose:function(){d(t),e()}});return t}var _=function(){function e(){(0,s.Z)(this,e),this._toDispose=new Set,this._isDisposed=!1}return(0,u.Z)(e,[{key:"dispose",value:function(){this._isDisposed||(d(this),this._isDisposed=!0,this.clear())}},{key:"clear",value:function(){try{v(this._toDispose.values())}finally{this._toDispose.clear()}}},{key:"add",value:function(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return d(t),this._isDisposed?e.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}}]),e}();_.DISABLE_DISPOSED_WARNING=!1;var y=function(){function e(){(0,s.Z)(this,e),this._store=new _,h(this)}return(0,u.Z)(e,[{key:"dispose",value:function(){d(this),this._store.dispose()}},{key:"_register",value:function(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}}]),e}();y.None=Object.freeze({dispose:function(){}});var b=function(){function e(){(0,s.Z)(this,e),this._isDisposed=!1,h(this)}return(0,u.Z)(e,[{key:"value",get:function(){return this._isDisposed?void 0:this._value},set:function(e){var t;this._isDisposed||e===this._value||(null===(t=this._value)||void 0===t||t.dispose(),e&&d(e),this._value=e)}},{key:"clear",value:function(){this.value=void 0}},{key:"dispose",value:function(){var e;this._isDisposed=!0,d(this),null===(e=this._value)||void 0===e||e.dispose(),this._value=void 0}}]),e}(),w=function(){function e(t){(0,s.Z)(this,e),this.object=t}return(0,u.Z)(e,[{key:"dispose",value:function(){}}]),e}()},28214:function(e,t,n){"use strict";n.d(t,{S:function(){return u}});var i=n(43144),r=n(15671),o=n(87757),a=n.n(o),s=(0,i.Z)((function e(t){(0,r.Z)(this,e),this.element=t,this.next=e.Undefined,this.prev=e.Undefined}));s.Undefined=new s(void 0);var u=function(e){function t(){(0,r.Z)(this,t),this._first=s.Undefined,this._last=s.Undefined,this._size=0}return(0,i.Z)(t,[{key:"size",get:function(){return this._size}},{key:"isEmpty",value:function(){return this._first===s.Undefined}},{key:"clear",value:function(){this._first=s.Undefined,this._last=s.Undefined,this._size=0}},{key:"unshift",value:function(e){return this._insert(e,!1)}},{key:"push",value:function(e){return this._insert(e,!0)}},{key:"_insert",value:function(e,t){var n=this,i=new s(e);if(this._first===s.Undefined)this._first=i,this._last=i;else if(t){var r=this._last;this._last=i,i.prev=r,r.next=i}else{var o=this._first;this._first=i,i.next=o,o.prev=i}this._size+=1;var a=!1;return function(){a||(a=!0,n._remove(i))}}},{key:"shift",value:function(){if(this._first!==s.Undefined){var e=this._first.element;return this._remove(this._first),e}}},{key:"pop",value:function(){if(this._last!==s.Undefined){var e=this._last.element;return this._remove(this._last),e}}},{key:"_remove",value:function(e){if(e.prev!==s.Undefined&&e.next!==s.Undefined){var t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===s.Undefined&&e.next===s.Undefined?(this._first=s.Undefined,this._last=s.Undefined):e.next===s.Undefined?(this._last=this._last.prev,this._last.next=s.Undefined):e.prev===s.Undefined&&(this._first=this._first.next,this._first.prev=s.Undefined);this._size-=1}},{key:e,value:a().mark((function e(){var t;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this._first;case 1:if(t===s.Undefined){e.next=7;break}return e.next=4,t.element;case 4:t=t.next,e.next=1;break;case 7:case"end":return e.stop()}}),e,this)}))}]),t}(Symbol.iterator)},15022:function(e,t,n){"use strict";n.d(t,{Id:function(){return k},Y9:function(){return S},z6:function(){return L}});var i,r,o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(4942),c=n(37762),d=n(29439),h=n(15671),f=n(43144),p=n(87757),v=n.n(p),g=n(67775),m=n(51747),_=function(){function e(){(0,h.Z)(this,e),this._value="",this._pos=0}return(0,f.Z)(e,[{key:"reset",value:function(e){return this._value=e,this._pos=0,this}},{key:"next",value:function(){return this._pos+=1,this}},{key:"hasNext",value:function(){return this._pos<this._value.length-1}},{key:"cmp",value:function(e){return e.charCodeAt(0)-this._value.charCodeAt(this._pos)}},{key:"value",value:function(){return this._value[this._pos]}}]),e}(),y=function(){function e(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(0,h.Z)(this,e),this._caseSensitive=t}return(0,f.Z)(e,[{key:"reset",value:function(e){return this._value=e,this._from=0,this._to=0,this.next()}},{key:"hasNext",value:function(){return this._to<this._value.length}},{key:"next",value:function(){this._from=this._to;for(var e=!0;this._to<this._value.length;this._to++){if(46===this._value.charCodeAt(this._to)){if(!e)break;this._from++}else e=!1}return this}},{key:"cmp",value:function(e){return this._caseSensitive?(0,m.TT)(e,this._value,0,e.length,this._from,this._to):(0,m.j_)(e,this._value,0,e.length,this._from,this._to)}},{key:"value",value:function(){return this._value.substring(this._from,this._to)}}]),e}(),b=function(){function e(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];(0,h.Z)(this,e),this._splitOnBackslash=t,this._caseSensitive=n}return(0,f.Z)(e,[{key:"reset",value:function(e){return this._value=e.replace(/\\$|\/$/,""),this._from=0,this._to=0,this.next()}},{key:"hasNext",value:function(){return this._to<this._value.length}},{key:"next",value:function(){this._from=this._to;for(var e=!0;this._to<this._value.length;this._to++){var t=this._value.charCodeAt(this._to);if(47===t||this._splitOnBackslash&&92===t){if(!e)break;this._from++}else e=!1}return this}},{key:"cmp",value:function(e){return this._caseSensitive?(0,m.TT)(e,this._value,0,e.length,this._from,this._to):(0,m.j_)(e,this._value,0,e.length,this._from,this._to)}},{key:"value",value:function(){return this._value.substring(this._from,this._to)}}]),e}(),w=function(){function e(t){(0,h.Z)(this,e),this._ignorePathCasing=t,this._states=[],this._stateIdx=0}return(0,f.Z)(e,[{key:"reset",value:function(e){return this._value=e,this._states=[],this._value.scheme&&this._states.push(1),this._value.authority&&this._states.push(2),this._value.path&&(this._pathIterator=new b(!1,!this._ignorePathCasing(e)),this._pathIterator.reset(e.path),this._pathIterator.value()&&this._states.push(3)),this._value.query&&this._states.push(4),this._value.fragment&&this._states.push(5),this._stateIdx=0,this}},{key:"next",value:function(){return 3===this._states[this._stateIdx]&&this._pathIterator.hasNext()?this._pathIterator.next():this._stateIdx+=1,this}},{key:"hasNext",value:function(){return 3===this._states[this._stateIdx]&&this._pathIterator.hasNext()||this._stateIdx<this._states.length-1}},{key:"cmp",value:function(e){if(1===this._states[this._stateIdx])return(0,m.zY)(e,this._value.scheme);if(2===this._states[this._stateIdx])return(0,m.zY)(e,this._value.authority);if(3===this._states[this._stateIdx])return this._pathIterator.cmp(e);if(4===this._states[this._stateIdx])return(0,m.qu)(e,this._value.query);if(5===this._states[this._stateIdx])return(0,m.qu)(e,this._value.fragment);throw new Error}},{key:"value",value:function(){if(1===this._states[this._stateIdx])return this._value.scheme;if(2===this._states[this._stateIdx])return this._value.authority;if(3===this._states[this._stateIdx])return this._pathIterator.value();if(4===this._states[this._stateIdx])return this._value.query;if(5===this._states[this._stateIdx])return this._value.fragment;throw new Error}}]),e}(),C=function(){function e(){(0,h.Z)(this,e)}return(0,f.Z)(e,[{key:"isEmpty",value:function(){return!this.left&&!this.mid&&!this.right&&!this.value}}]),e}(),k=function(e){function t(e){(0,h.Z)(this,t),this._iter=e}return(0,f.Z)(t,[{key:"clear",value:function(){this._root=void 0}},{key:"set",value:function(e,t){var n,i=this._iter.reset(e);for(this._root||(this._root=new C,this._root.segment=i.value()),n=this._root;;){var r=i.cmp(n.segment);if(r>0)n.left||(n.left=new C,n.left.segment=i.value()),n=n.left;else if(r<0)n.right||(n.right=new C,n.right.segment=i.value()),n=n.right;else{if(!i.hasNext())break;i.next(),n.mid||(n.mid=new C,n.mid.segment=i.value()),n=n.mid}}var o=n.value;return n.value=t,n.key=e,o}},{key:"get",value:function(e){var t;return null===(t=this._getNode(e))||void 0===t?void 0:t.value}},{key:"_getNode",value:function(e){for(var t=this._iter.reset(e),n=this._root;n;){var i=t.cmp(n.segment);if(i>0)n=n.left;else if(i<0)n=n.right;else{if(!t.hasNext())break;t.next(),n=n.mid}}return n}},{key:"has",value:function(e){var t=this._getNode(e);return!(void 0===(null===t||void 0===t?void 0:t.value)&&void 0===(null===t||void 0===t?void 0:t.mid))}},{key:"delete",value:function(e){return this._delete(e,!1)}},{key:"deleteSuperstr",value:function(e){return this._delete(e,!0)}},{key:"_delete",value:function(e,t){for(var n=this._iter.reset(e),i=[],r=this._root;r;){var o=n.cmp(r.segment);if(o>0)i.push([1,r]),r=r.left;else if(o<0)i.push([-1,r]),r=r.right;else{if(!n.hasNext()){for(t?(r.left=void 0,r.mid=void 0,r.right=void 0):r.value=void 0;i.length>0&&r.isEmpty();){var a=i.pop(),s=(0,d.Z)(a,2),u=s[0],l=s[1];switch(u){case 1:l.left=void 0;break;case 0:l.mid=void 0;break;case-1:l.right=void 0}r=l}break}n.next(),i.push([0,r]),r=r.mid}}}},{key:"findSubstr",value:function(e){for(var t=this._iter.reset(e),n=this._root,i=void 0;n;){var r=t.cmp(n.segment);if(r>0)n=n.left;else if(r<0)n=n.right;else{if(!t.hasNext())break;t.next(),i=n.value||i,n=n.mid}}return n&&n.value||i}},{key:"findSuperstr",value:function(e){for(var t=this._iter.reset(e),n=this._root;n;){var i=t.cmp(n.segment);if(i>0)n=n.left;else if(i<0)n=n.right;else{if(!t.hasNext())return n.mid?this._entries(n.mid):void 0;t.next(),n=n.mid}}}},{key:"forEach",value:function(e){var t,n=(0,c.Z)(this);try{for(n.s();!(t=n.n()).done;){var i=(0,d.Z)(t.value,2),r=i[0];e(i[1],r)}}catch(o){n.e(o)}finally{n.f()}}},{key:e,value:v().mark((function e(){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(this._entries(this._root),"t0",1);case 1:case"end":return e.stop()}}),e,this)}))},{key:"_entries",value:v().mark((function e(t){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=7;break}return e.delegateYield(this._entries(t.left),"t0",2);case 2:if(!t.value){e.next=5;break}return e.next=5,[t.key,t.value];case 5:return e.delegateYield(this._entries(t.mid),"t1",6);case 6:return e.delegateYield(this._entries(t.right),"t2",7);case 7:case"end":return e.stop()}}),e,this)}))}],[{key:"forUris",value:function(){return new t(new w(arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1}))}},{key:"forStrings",value:function(){return new t(new _)}},{key:"forConfigKeys",value:function(){return new t(new y)}}]),t}(Symbol.iterator),S=function(e){function t(e,n){(0,h.Z)(this,t),this[i]="ResourceMap",e instanceof t?(this.map=new Map(e.map),this.toKey=null!==n&&void 0!==n?n:t.defaultToKey):(this.map=new Map,this.toKey=null!==e&&void 0!==e?e:t.defaultToKey)}return(0,f.Z)(t,[{key:"set",value:function(e,t){return this.map.set(this.toKey(e),t),this}},{key:"get",value:function(e){return this.map.get(this.toKey(e))}},{key:"has",value:function(e){return this.map.has(this.toKey(e))}},{key:"size",get:function(){return this.map.size}},{key:"clear",value:function(){this.map.clear()}},{key:"delete",value:function(e){return this.map.delete(this.toKey(e))}},{key:"forEach",value:function(e,t){"undefined"!==typeof t&&(e=e.bind(t));var n,i=(0,c.Z)(this.map);try{for(i.s();!(n=i.n()).done;){var r=(0,d.Z)(n.value,2),o=r[0];e(r[1],g.o.parse(o),this)}}catch(a){i.e(a)}finally{i.f()}}},{key:"values",value:function(){return this.map.values()}},{key:"keys",value:v().mark((function e(){var t,n,i;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=(0,c.Z)(this.map.keys()),e.prev=1,t.s();case 3:if((n=t.n()).done){e.next=9;break}return i=n.value,e.next=7,g.o.parse(i);case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))},{key:"entries",value:v().mark((function e(){var t,n,i;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=(0,c.Z)(this.map.entries()),e.prev=1,t.s();case 3:if((n=t.n()).done){e.next=9;break}return i=n.value,e.next=7,[g.o.parse(i[0]),i[1]];case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))},{key:e,value:v().mark((function e(){var t,n,i;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=(0,c.Z)(this.map),e.prev=1,t.s();case 3:if((n=t.n()).done){e.next=9;break}return i=n.value,e.next=7,[g.o.parse(i[0]),i[1]];case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))}]),t}((i=Symbol.toStringTag,Symbol.iterator));S.defaultToKey=function(e){return e.toString()};var x=function(e){function t(){(0,h.Z)(this,t),this[r]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}return(0,f.Z)(t,[{key:"clear",value:function(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}},{key:"isEmpty",value:function(){return!this._head&&!this._tail}},{key:"size",get:function(){return this._size}},{key:"first",get:function(){var e;return null===(e=this._head)||void 0===e?void 0:e.value}},{key:"last",get:function(){var e;return null===(e=this._tail)||void 0===e?void 0:e.value}},{key:"has",value:function(e){return this._map.has(e)}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this._map.get(e);if(n)return 0!==t&&this.touch(n,t),n.value}},{key:"set",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=this._map.get(e);if(i)i.value=t,0!==n&&this.touch(i,n);else{switch(i={key:e,value:t,next:void 0,previous:void 0},n){case 0:case 2:default:this.addItemLast(i);break;case 1:this.addItemFirst(i)}this._map.set(e,i),this._size++}return this}},{key:"delete",value:function(e){return!!this.remove(e)}},{key:"remove",value:function(e){var t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}},{key:"shift",value:function(){if(this._head||this._tail){if(!this._head||!this._tail)throw new Error("Invalid list");var e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}}},{key:"forEach",value:function(e,t){for(var n=this._state,i=this._head;i;){if(t?e.bind(t)(i.value,i.key,this):e(i.value,i.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");i=i.next}}},{key:"keys",value:function(){var e,t=this,n=this._state,i=this._head,r=(e={},(0,l.Z)(e,Symbol.iterator,(function(){return r})),(0,l.Z)(e,"next",(function(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(i){var e={value:i.key,done:!1};return i=i.next,e}return{value:void 0,done:!0}})),e);return r}},{key:"values",value:function(){var e,t=this,n=this._state,i=this._head,r=(e={},(0,l.Z)(e,Symbol.iterator,(function(){return r})),(0,l.Z)(e,"next",(function(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(i){var e={value:i.value,done:!1};return i=i.next,e}return{value:void 0,done:!0}})),e);return r}},{key:"entries",value:function(){var e,t=this,n=this._state,i=this._head,r=(e={},(0,l.Z)(e,Symbol.iterator,(function(){return r})),(0,l.Z)(e,"next",(function(){if(t._state!==n)throw new Error("LinkedMap got modified during iteration.");if(i){var e={value:[i.key,i.value],done:!1};return i=i.next,e}return{value:void 0,done:!0}})),e);return r}},{key:e,value:function(){return this.entries()}},{key:"trimOld",value:function(e){if(!(e>=this.size))if(0!==e){for(var t=this._head,n=this.size;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t&&(t.previous=void 0),this._state++}else this.clear()}},{key:"addItemFirst",value:function(e){if(this._head||this._tail){if(!this._head)throw new Error("Invalid list");e.next=this._head,this._head.previous=e}else this._tail=e;this._head=e,this._state++}},{key:"addItemLast",value:function(e){if(this._head||this._tail){if(!this._tail)throw new Error("Invalid list");e.previous=this._tail,this._tail.next=e}else this._head=e;this._tail=e,this._state++}},{key:"removeItem",value:function(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{var t=e.next,n=e.previous;if(!t||!n)throw new Error("Invalid list");t.previous=n,n.next=t}e.next=void 0,e.previous=void 0,this._state++}},{key:"touch",value:function(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(1===t||2===t)if(1===t){if(e===this._head)return;var n=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(2===t){if(e===this._tail)return;var r=e.next,o=e.previous;e===this._head?(r.previous=void 0,this._head=r):(r.previous=o,o.next=r),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}},{key:"toJSON",value:function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),e}},{key:"fromJSON",value:function(e){this.clear();var t,n=(0,c.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=(0,d.Z)(t.value,2),r=i[0],o=i[1];this.set(r,o)}}catch(a){n.e(a)}finally{n.f()}}}]),t}((r=Symbol.toStringTag,Symbol.iterator)),L=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return(0,h.Z)(this,n),(i=t.call(this))._limit=e,i._ratio=Math.min(Math.max(0,r),1),i}return(0,f.Z)(n,[{key:"limit",get:function(){return this._limit},set:function(e){this._limit=e,this.checkTrim()}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return(0,o.Z)((0,a.Z)(n.prototype),"get",this).call(this,e,t)}},{key:"peek",value:function(e){return(0,o.Z)((0,a.Z)(n.prototype),"get",this).call(this,e,0)}},{key:"set",value:function(e,t){return(0,o.Z)((0,a.Z)(n.prototype),"set",this).call(this,e,t,2),this.checkTrim(),this}},{key:"checkTrim",value:function(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}]),n}(x)},61329:function(e){e.exports=function(){"use strict";function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function t(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}function n(e,t){if(e){if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function r(e,t){var i;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(i=n(e))||t&&e&&"number"===typeof e.length){i&&(e=i);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(i=e[Symbol.iterator]()).next.bind(i)}function o(e){var t={exports:{}};return e(t,t.exports),t.exports}var a=o((function(e){function t(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}function n(t){e.exports.defaults=t}e.exports={defaults:t(),getDefaults:t,changeDefaults:n}})),s=/[&<>"']/,u=/[&<>"']/g,l=/[<>"']|&(?!#?\w+;)/,c=/[<>"']|&(?!#?\w+;)/g,d={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},h=function(e){return d[e]};function f(e,t){if(t){if(s.test(e))return e.replace(u,h)}else if(l.test(e))return e.replace(c,h);return e}var p=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function v(e){return e.replace(p,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var g=/(^|[^\[])\^/g;function m(e,t){e=e.source||e,t=t||"";var n={replace:function(t,i){return i=(i=i.source||i).replace(g,"$1"),e=e.replace(t,i),n},getRegex:function(){return new RegExp(e,t)}};return n}var _=/[^\w:]/g,y=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function b(e,t,n){if(e){var i;try{i=decodeURIComponent(v(n)).replace(_,"").toLowerCase()}catch(r){return null}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return null}t&&!y.test(n)&&(n=x(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(r){return null}return n}var w={},C=/^[^:]+:\/*[^/]*$/,k=/^([^:]+:)[\s\S]*$/,S=/^([^:]+:\/*[^/]*)[\s\S]*$/;function x(e,t){w[" "+e]||(C.test(e)?w[" "+e]=e+"/":w[" "+e]=N(e,"/",!0));var n=-1===(e=w[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(k,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(S,"$1")+t:e+t}function L(e){for(var t,n,i=1;i<arguments.length;i++)for(n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}function E(e,t){var n=e.replace(/\|/g,(function(e,t,n){for(var i=!1,r=t;--r>=0&&"\\"===n[r];)i=!i;return i?"|":" |"})).split(/ \|/),i=0;if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;i<n.length;i++)n[i]=n[i].trim().replace(/\\\|/g,"|");return n}function N(e,t,n){var i=e.length;if(0===i)return"";for(var r=0;r<i;){var o=e.charAt(i-r-1);if(o!==t||n){if(o===t||!n)break;r++}else r++}return e.substr(0,i-r)}function D(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=e.length,i=0,r=0;r<n;r++)if("\\"===e[r])r++;else if(e[r]===t[0])i++;else if(e[r]===t[1]&&--i<0)return r;return-1}function M(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function T(e,t){if(t<1)return"";for(var n="";t>1;)1&t&&(n+=e),t>>=1,e+=e;return n+e}var O={escape:f,unescape:v,edit:m,cleanUrl:b,resolveUrl:x,noopTest:{exec:function(){}},merge:L,splitCells:E,rtrim:N,findClosingBracket:D,checkSanitizeDeprecation:M,repeatString:T},I=a.defaults,A=O.rtrim,P=O.splitCells,R=O.escape,Z=O.findClosingBracket;function F(e,t,n){var i=t.href,r=t.title?R(t.title):null,o=e[1].replace(/\\([\[\]])/g,"$1");return"!"!==e[0].charAt(0)?{type:"link",raw:n,href:i,title:r,text:o}:{type:"image",raw:n,href:i,title:r,text:R(o)}}function j(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var i=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=i.length?e.slice(i.length):e})).join("\n")}var H=function(){function e(e){this.options=e||I}var t=e.prototype;return t.space=function(e){var t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}},t.code=function(e){var t=this.rules.block.code.exec(e);if(t){var n=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:A(n,"\n")}}},t.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],i=j(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:i}}},t.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var n=t[2].trim();if(/#$/.test(n)){var i=A(n,"#");this.options.pedantic?n=i.trim():i&&!/ $/.test(i)||(n=i.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n}}},t.nptable=function(e){var t=this.rules.block.nptable.exec(e);if(t){var n={type:"table",header:P(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(n.header.length===n.align.length){var i,r=n.align.length;for(i=0;i<r;i++)/^ *-+: *$/.test(n.align[i])?n.align[i]="right":/^ *:-+: *$/.test(n.align[i])?n.align[i]="center":/^ *:-+ *$/.test(n.align[i])?n.align[i]="left":n.align[i]=null;for(r=n.cells.length,i=0;i<r;i++)n.cells[i]=P(n.cells[i],n.header.length);return n}}},t.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}},t.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var n=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],text:n}}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){var n,i,r,o,a,s,u,l,c=t[0],d=t[2],h=d.length>1,f={type:"list",raw:c,ordered:h,start:h?+d.slice(0,-1):"",loose:!1,items:[]},p=t[0].match(this.rules.block.item),v=!1,g=p.length;r=this.rules.block.listItemStart.exec(p[0]);for(var m=0;m<g;m++){if(c=n=p[m],m!==g-1){if(o=this.rules.block.listItemStart.exec(p[m+1]),this.options.pedantic?o[1].length>r[1].length:o[1].length>r[0].length||o[1].length>3){p.splice(m,2,p[m]+"\n"+p[m+1]),m--,g--;continue}(!this.options.pedantic||this.options.smartLists?o[2][o[2].length-1]!==d[d.length-1]:h===(1===o[2].length))&&(a=p.slice(m+1).join("\n"),f.raw=f.raw.substring(0,f.raw.length-a.length),m=g-1),r=o}i=n.length,~(n=n.replace(/^ *([*+-]|\d+[.)]) ?/,"")).indexOf("\n ")&&(i-=n.length,n=this.options.pedantic?n.replace(/^ {1,4}/gm,""):n.replace(new RegExp("^ {1,"+i+"}","gm"),"")),s=v||/\n\n(?!\s*$)/.test(n),m!==g-1&&(v="\n"===n.charAt(n.length-1),s||(s=v)),s&&(f.loose=!0),this.options.gfm&&(l=void 0,(u=/^\[[ xX]\] /.test(n))&&(l=" "!==n[1],n=n.replace(/^\[[ xX]\] +/,""))),f.items.push({type:"list_item",raw:c,task:u,checked:l,loose:s,text:n})}return f}},t.html=function(e){var t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):R(t[0]):t[0]}},t.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},t.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:P(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var i,r=n.align.length;for(i=0;i<r;i++)/^ *-+: *$/.test(n.align[i])?n.align[i]="right":/^ *:-+: *$/.test(n.align[i])?n.align[i]="center":/^ *:-+ *$/.test(n.align[i])?n.align[i]="left":n.align[i]=null;for(r=n.cells.length,i=0;i<r;i++)n.cells[i]=P(n.cells[i].replace(/^ *\| *| *\| *$/g,""),n.header.length);return n}}},t.lheading=function(e){var t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1]}},t.paragraph=function(e){var t=this.rules.block.paragraph.exec(e);if(t)return{type:"paragraph",raw:t[0],text:"\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1]}},t.text=function(e){var t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0]}},t.escape=function(e){var t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:R(t[1])}},t.tag=function(e,t,n){var i=this.rules.inline.tag.exec(e);if(i)return!t&&/^<a /i.test(i[0])?t=!0:t&&/^<\/a>/i.test(i[0])&&(t=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(i[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(i[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:i[0],inLink:t,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):R(i[0]):i[0]}},t.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=t[2].trim();if(!this.options.pedantic&&/^</.test(n)){if(!/>$/.test(n))return;var i=A(n.slice(0,-1),"\\");if((n.length-i.length)%2===0)return}else{var r=Z(t[2],"()");if(r>-1){var o=(0===t[0].indexOf("!")?5:4)+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,o).trim(),t[3]=""}}var a=t[2],s="";if(this.options.pedantic){var u=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(a);u&&(a=u[1],s=u[3])}else s=t[3]?t[3].slice(1,-1):"";return a=a.trim(),/^</.test(a)&&(a=this.options.pedantic&&!/>$/.test(n)?a.slice(1):a.slice(1,-1)),F(t,{href:a?a.replace(this.rules.inline._escapes,"$1"):a,title:s?s.replace(this.rules.inline._escapes,"$1"):s},t[0])}},t.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var i=(n[2]||n[1]).replace(/\s+/g," ");if(!(i=t[i.toLowerCase()])||!i.href){var r=n[0].charAt(0);return{type:"text",raw:r,text:r}}return F(n,i,n[0])}},t.emStrong=function(e,t,n){void 0===n&&(n="");var i=this.rules.inline.emStrong.lDelim.exec(e);if(i&&(!i[3]||!n.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var r=i[1]||i[2]||"";if(!r||r&&(""===n||this.rules.inline.punctuation.exec(n))){var o,a,s=i[0].length-1,u=s,l=0,c="*"===i[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+s);null!=(i=c.exec(t));)if(o=i[1]||i[2]||i[3]||i[4]||i[5]||i[6])if(a=o.length,i[3]||i[4])u+=a;else if(!((i[5]||i[6])&&s%3)||(s+a)%3){if(!((u-=a)>0)){if(u+l-a<=0&&!t.slice(c.lastIndex).match(c)&&(a=Math.min(a,a+u+l)),Math.min(s,a)%2)return{type:"em",raw:e.slice(0,s+i.index+a+1),text:e.slice(1,s+i.index+a)};if(Math.min(s,a)%2===0)return{type:"strong",raw:e.slice(0,s+i.index+a+1),text:e.slice(2,s+i.index+a-1)}}}else l+=a}}},t.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),i=/[^ ]/.test(n),r=/^ /.test(n)&&/ $/.test(n);return i&&r&&(n=n.substring(1,n.length-1)),n=R(n,!0),{type:"codespan",raw:t[0],text:n}}},t.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},t.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2]}},t.autolink=function(e,t){var n,i,r=this.rules.inline.autolink.exec(e);if(r)return i="@"===r[2]?"mailto:"+(n=R(this.options.mangle?t(r[1]):r[1])):n=R(r[1]),{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}},t.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var i,r;if("@"===n[2])r="mailto:"+(i=R(this.options.mangle?t(n[0]):n[0]));else{var o;do{o=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(o!==n[0]);i=R(n[0]),r="www."===n[1]?"http://"+i:i}return{type:"link",raw:n[0],text:i,href:r,tokens:[{type:"text",raw:i,text:i}]}}},t.inlineText=function(e,t,n){var i,r=this.rules.inline.text.exec(e);if(r)return i=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):R(r[0]):r[0]:R(this.options.smartypants?n(r[0]):r[0]),{type:"text",raw:r[0],text:i}},e}(),B=O.noopTest,z=O.edit,W=O.merge,V={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:B,table:B,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};V.def=z(V.def).replace("label",V._label).replace("title",V._title).getRegex(),V.bullet=/(?:[*+-]|\d{1,9}[.)])/,V.item=/^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/,V.item=z(V.item,"gm").replace(/bull/g,V.bullet).getRegex(),V.listItemStart=z(/^( *)(bull)/).replace("bull",V.bullet).getRegex(),V.list=z(V.list).replace(/bull/g,V.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+V.def.source+")").getRegex(),V._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",V._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,V.html=z(V.html,"i").replace("comment",V._comment).replace("tag",V._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),V.paragraph=z(V._paragraph).replace("hr",V.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",V._tag).getRegex(),V.blockquote=z(V.blockquote).replace("paragraph",V.paragraph).getRegex(),V.normal=W({},V),V.gfm=W({},V.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),V.gfm.nptable=z(V.gfm.nptable).replace("hr",V.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",V._tag).getRegex(),V.gfm.table=z(V.gfm.table).replace("hr",V.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",V._tag).getRegex(),V.pedantic=W({},V.normal,{html:z("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",V._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:B,paragraph:z(V.normal._paragraph).replace("hr",V.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",V.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var Y={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:B,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/\_\_[^_]*?\*[^_]*?\_\_|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/\*\*[^*]*?\_[^*]*?\*\*|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:B,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/,_punctuation:"!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~"};Y.punctuation=z(Y.punctuation).replace(/punctuation/g,Y._punctuation).getRegex(),Y.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Y.escapedEmSt=/\\\*|\\_/g,Y._comment=z(V._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Y.emStrong.lDelim=z(Y.emStrong.lDelim).replace(/punct/g,Y._punctuation).getRegex(),Y.emStrong.rDelimAst=z(Y.emStrong.rDelimAst,"g").replace(/punct/g,Y._punctuation).getRegex(),Y.emStrong.rDelimUnd=z(Y.emStrong.rDelimUnd,"g").replace(/punct/g,Y._punctuation).getRegex(),Y._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Y._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Y._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Y.autolink=z(Y.autolink).replace("scheme",Y._scheme).replace("email",Y._email).getRegex(),Y._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Y.tag=z(Y.tag).replace("comment",Y._comment).replace("attribute",Y._attribute).getRegex(),Y._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Y._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Y._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Y.link=z(Y.link).replace("label",Y._label).replace("href",Y._href).replace("title",Y._title).getRegex(),Y.reflink=z(Y.reflink).replace("label",Y._label).getRegex(),Y.reflinkSearch=z(Y.reflinkSearch,"g").replace("reflink",Y.reflink).replace("nolink",Y.nolink).getRegex(),Y.normal=W({},Y),Y.pedantic=W({},Y.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:z(/^!?\[(label)\]\((.*?)\)/).replace("label",Y._label).getRegex(),reflink:z(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Y._label).getRegex()}),Y.gfm=W({},Y.normal,{escape:z(Y.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),Y.gfm.url=z(Y.gfm.url,"i").replace("email",Y.gfm._extended_email).getRegex(),Y.breaks=W({},Y.gfm,{br:z(Y.br).replace("{2,}","*").getRegex(),text:z(Y.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var U={block:V,inline:Y},K=a.defaults,q=U.block,G=U.inline,$=O.repeatString;function Q(e){return e.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201c").replace(/"/g,"\u201d").replace(/\.{3}/g,"\u2026")}function X(e){var t,n,i="",r=e.length;for(t=0;t<r;t++)n=e.charCodeAt(t),Math.random()>.5&&(n="x"+n.toString(16)),i+="&#"+n+";";return i}var J=function(){function e(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||K,this.options.tokenizer=this.options.tokenizer||new H,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var t={block:q.normal,inline:G.normal};this.options.pedantic?(t.block=q.pedantic,t.inline=G.pedantic):this.options.gfm&&(t.block=q.gfm,this.options.breaks?t.inline=G.breaks:t.inline=G.gfm),this.tokenizer.rules=t}e.lex=function(t,n){return new e(n).lex(t)},e.lexInline=function(t,n){return new e(n).inlineTokens(t)};var n=e.prototype;return n.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens},n.blockTokens=function(e,t,n){var i,r,o,a;for(void 0===t&&(t=[]),void 0===n&&(n=!0),this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(i=this.tokenizer.space(e))e=e.substring(i.raw.length),i.type&&t.push(i);else if(i=this.tokenizer.code(e))e=e.substring(i.raw.length),(a=t[t.length-1])&&"paragraph"===a.type?(a.raw+="\n"+i.raw,a.text+="\n"+i.text):t.push(i);else if(i=this.tokenizer.fences(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.heading(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.nptable(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.hr(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.blockquote(e))e=e.substring(i.raw.length),i.tokens=this.blockTokens(i.text,[],n),t.push(i);else if(i=this.tokenizer.list(e)){for(e=e.substring(i.raw.length),o=i.items.length,r=0;r<o;r++)i.items[r].tokens=this.blockTokens(i.items[r].text,[],!1);t.push(i)}else if(i=this.tokenizer.html(e))e=e.substring(i.raw.length),t.push(i);else if(n&&(i=this.tokenizer.def(e)))e=e.substring(i.raw.length),this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});else if(i=this.tokenizer.table(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.lheading(e))e=e.substring(i.raw.length),t.push(i);else if(n&&(i=this.tokenizer.paragraph(e)))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.text(e))e=e.substring(i.raw.length),(a=t[t.length-1])&&"text"===a.type?(a.raw+="\n"+i.raw,a.text+="\n"+i.text):t.push(i);else if(e){var s="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(s);break}throw new Error(s)}return t},n.inline=function(e){var t,n,i,r,o,a,s=e.length;for(t=0;t<s;t++)switch((a=e[t]).type){case"paragraph":case"text":case"heading":a.tokens=[],this.inlineTokens(a.text,a.tokens);break;case"table":for(a.tokens={header:[],cells:[]},r=a.header.length,n=0;n<r;n++)a.tokens.header[n]=[],this.inlineTokens(a.header[n],a.tokens.header[n]);for(r=a.cells.length,n=0;n<r;n++)for(o=a.cells[n],a.tokens.cells[n]=[],i=0;i<o.length;i++)a.tokens.cells[n][i]=[],this.inlineTokens(o[i],a.tokens.cells[n][i]);break;case"blockquote":this.inline(a.tokens);break;case"list":for(r=a.items.length,n=0;n<r;n++)this.inline(a.items[n].tokens)}return e},n.inlineTokens=function(e,t,n,i){var r,o;void 0===t&&(t=[]),void 0===n&&(n=!1),void 0===i&&(i=!1);var a,s,u,l=e;if(this.tokens.links){var c=Object.keys(this.tokens.links);if(c.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(l));)c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,a.index)+"["+$("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,a.index)+"["+$("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(l));)l=l.slice(0,a.index)+"++"+l.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(s||(u=""),s=!1,r=this.tokenizer.escape(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.tag(e,n,i)){e=e.substring(r.raw.length),n=r.inLink,i=r.inRawBlock;var d=t[t.length-1];d&&"text"===r.type&&"text"===d.type?(d.raw+=r.raw,d.text+=r.text):t.push(r)}else if(r=this.tokenizer.link(e))e=e.substring(r.raw.length),"link"===r.type&&(r.tokens=this.inlineTokens(r.text,[],!0,i)),t.push(r);else if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);var h=t[t.length-1];"link"===r.type?(r.tokens=this.inlineTokens(r.text,[],!0,i),t.push(r)):h&&"text"===r.type&&"text"===h.type?(h.raw+=r.raw,h.text+=r.text):t.push(r)}else if(r=this.tokenizer.emStrong(e,l,u))e=e.substring(r.raw.length),r.tokens=this.inlineTokens(r.text,[],n,i),t.push(r);else if(r=this.tokenizer.codespan(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.br(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.del(e))e=e.substring(r.raw.length),r.tokens=this.inlineTokens(r.text,[],n,i),t.push(r);else if(r=this.tokenizer.autolink(e,X))e=e.substring(r.raw.length),t.push(r);else if(n||!(r=this.tokenizer.url(e,X))){if(r=this.tokenizer.inlineText(e,i,Q))e=e.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(u=r.raw.slice(-1)),s=!0,(o=t[t.length-1])&&"text"===o.type?(o.raw+=r.raw,o.text+=r.text):t.push(r);else if(e){var f="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(f);break}throw new Error(f)}}else e=e.substring(r.raw.length),t.push(r);return t},t(e,null,[{key:"rules",get:function(){return{block:q,inline:G}}}]),e}(),ee=a.defaults,te=O.cleanUrl,ne=O.escape,ie=function(){function e(e){this.options=e||ee}var t=e.prototype;return t.code=function(e,t,n){var i=(t||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(e,i);null!=r&&r!==e&&(n=!0,e=r)}return e=e.replace(/\n$/,"")+"\n",i?'<pre><code class="'+this.options.langPrefix+ne(i,!0)+'">'+(n?e:ne(e,!0))+"</code></pre>\n":"<pre><code>"+(n?e:ne(e,!0))+"</code></pre>\n"},t.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},t.html=function(e){return e},t.heading=function(e,t,n,i){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+i.slug(n)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"},t.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},t.list=function(e,t,n){var i=t?"ol":"ul";return"<"+i+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"</"+i+">\n"},t.listitem=function(e){return"<li>"+e+"</li>\n"},t.checkbox=function(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},t.paragraph=function(e){return"<p>"+e+"</p>\n"},t.table=function(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"},t.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},t.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"},t.strong=function(e){return"<strong>"+e+"</strong>"},t.em=function(e){return"<em>"+e+"</em>"},t.codespan=function(e){return"<code>"+e+"</code>"},t.br=function(){return this.options.xhtml?"<br/>":"<br>"},t.del=function(e){return"<del>"+e+"</del>"},t.link=function(e,t,n){if(null===(e=te(this.options.sanitize,this.options.baseUrl,e)))return n;var i='<a href="'+ne(e)+'"';return t&&(i+=' title="'+t+'"'),i+=">"+n+"</a>"},t.image=function(e,t,n){if(null===(e=te(this.options.sanitize,this.options.baseUrl,e)))return n;var i='<img src="'+e+'" alt="'+n+'"';return t&&(i+=' title="'+t+'"'),i+=this.options.xhtml?"/>":">"},t.text=function(e){return e},e}(),re=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),oe=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,i=0;if(this.seen.hasOwnProperty(n)){i=this.seen[e];do{n=e+"-"+ ++i}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=i,this.seen[n]=0),n},t.slug=function(e,t){void 0===t&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),ae=a.defaults,se=O.unescape,ue=function(){function e(e){this.options=e||ae,this.options.renderer=this.options.renderer||new ie,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new re,this.slugger=new oe}e.parse=function(t,n){return new e(n).parse(t)},e.parseInline=function(t,n){return new e(n).parseInline(t)};var t=e.prototype;return t.parse=function(e,t){void 0===t&&(t=!0);var n,i,r,o,a,s,u,l,c,d,h,f,p,v,g,m,_,y,b="",w=e.length;for(n=0;n<w;n++)switch((d=e[n]).type){case"space":continue;case"hr":b+=this.renderer.hr();continue;case"heading":b+=this.renderer.heading(this.parseInline(d.tokens),d.depth,se(this.parseInline(d.tokens,this.textRenderer)),this.slugger);continue;case"code":b+=this.renderer.code(d.text,d.lang,d.escaped);continue;case"table":for(l="",u="",o=d.header.length,i=0;i<o;i++)u+=this.renderer.tablecell(this.parseInline(d.tokens.header[i]),{header:!0,align:d.align[i]});for(l+=this.renderer.tablerow(u),c="",o=d.cells.length,i=0;i<o;i++){for(u="",a=(s=d.tokens.cells[i]).length,r=0;r<a;r++)u+=this.renderer.tablecell(this.parseInline(s[r]),{header:!1,align:d.align[r]});c+=this.renderer.tablerow(u)}b+=this.renderer.table(l,c);continue;case"blockquote":c=this.parse(d.tokens),b+=this.renderer.blockquote(c);continue;case"list":for(h=d.ordered,f=d.start,p=d.loose,o=d.items.length,c="",i=0;i<o;i++)m=(g=d.items[i]).checked,_=g.task,v="",g.task&&(y=this.renderer.checkbox(m),p?g.tokens.length>0&&"text"===g.tokens[0].type?(g.tokens[0].text=y+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&"text"===g.tokens[0].tokens[0].type&&(g.tokens[0].tokens[0].text=y+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:y}):v+=y),v+=this.parse(g.tokens,p),c+=this.renderer.listitem(v,_,m);b+=this.renderer.list(c,h,f);continue;case"html":b+=this.renderer.html(d.text);continue;case"paragraph":b+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(c=d.tokens?this.parseInline(d.tokens):d.text;n+1<w&&"text"===e[n+1].type;)c+="\n"+((d=e[++n]).tokens?this.parseInline(d.tokens):d.text);b+=t?this.renderer.paragraph(c):c;continue;default:var C='Token with "'+d.type+'" type was not found.';if(this.options.silent)return void console.error(C);throw new Error(C)}return b},t.parseInline=function(e,t){t=t||this.renderer;var n,i,r="",o=e.length;for(n=0;n<o;n++)switch((i=e[n]).type){case"escape":case"text":r+=t.text(i.text);break;case"html":r+=t.html(i.text);break;case"link":r+=t.link(i.href,i.title,this.parseInline(i.tokens,t));break;case"image":r+=t.image(i.href,i.title,i.text);break;case"strong":r+=t.strong(this.parseInline(i.tokens,t));break;case"em":r+=t.em(this.parseInline(i.tokens,t));break;case"codespan":r+=t.codespan(i.text);break;case"br":r+=t.br();break;case"del":r+=t.del(this.parseInline(i.tokens,t));break;default:var a='Token with "'+i.type+'" type was not found.';if(this.options.silent)return void console.error(a);throw new Error(a)}return r},e}(),le=O.merge,ce=O.checkSanitizeDeprecation,de=O.escape,he=a.getDefaults,fe=a.changeDefaults,pe=a.defaults;function ve(e,t,n){if("undefined"===typeof e||null===e)throw new Error("marked(): input parameter is undefined or null");if("string"!==typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if("function"===typeof t&&(n=t,t=null),t=le({},ve.defaults,t||{}),ce(t),n){var i,r=t.highlight;try{i=J.lex(e,t)}catch(u){return n(u)}var o=function(e){var o;if(!e)try{o=ue.parse(i,t)}catch(u){e=u}return t.highlight=r,e?n(e):n(null,o)};if(!r||r.length<3)return o();if(delete t.highlight,!i.length)return o();var a=0;return ve.walkTokens(i,(function(e){"code"===e.type&&(a++,setTimeout((function(){r(e.text,e.lang,(function(t,n){if(t)return o(t);null!=n&&n!==e.text&&(e.text=n,e.escaped=!0),0===--a&&o()}))}),0))})),void(0===a&&o())}try{var s=J.lex(e,t);return t.walkTokens&&ve.walkTokens(s,t.walkTokens),ue.parse(s,t)}catch(u){if(u.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+de(u.message+"",!0)+"</pre>";throw u}}return ve.options=ve.setOptions=function(e){return le(ve.defaults,e),fe(ve.defaults),ve},ve.getDefaults=he,ve.defaults=pe,ve.use=function(e){var t=le({},e);if(e.renderer&&function(){var n=ve.defaults.renderer||new ie,i=function(t){var i=n[t];n[t]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.renderer[t].apply(n,o);return!1===s&&(s=i.apply(n,o)),s}};for(var r in e.renderer)i(r);t.renderer=n}(),e.tokenizer&&function(){var n=ve.defaults.tokenizer||new H,i=function(t){var i=n[t];n[t]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.tokenizer[t].apply(n,o);return!1===s&&(s=i.apply(n,o)),s}};for(var r in e.tokenizer)i(r);t.tokenizer=n}(),e.walkTokens){var n=ve.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens(t),n&&n(t)}}ve.setOptions(t)},ve.walkTokens=function(e,t){for(var n,i=r(e);!(n=i()).done;){var o=n.value;switch(t(o),o.type){case"table":for(var a,s=r(o.tokens.header);!(a=s()).done;){var u=a.value;ve.walkTokens(u,t)}for(var l,c=r(o.tokens.cells);!(l=c()).done;)for(var d,h=r(l.value);!(d=h()).done;){var f=d.value;ve.walkTokens(f,t)}break;case"list":ve.walkTokens(o.items,t);break;default:o.tokens&&ve.walkTokens(o.tokens,t)}}},ve.parseInline=function(e,t){if("undefined"===typeof e||null===e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!==typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");t=le({},ve.defaults,t||{}),ce(t);try{var n=J.lexInline(e,t);return t.walkTokens&&ve.walkTokens(n,t.walkTokens),ue.parseInline(n,t)}catch(i){if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+de(i.message+"",!0)+"</pre>";throw i}},ve.Parser=ue,ve.parser=ue.parse,ve.Renderer=ie,ve.TextRenderer=re,ve.Lexer=J,ve.lexer=J.lex,ve.Tokenizer=H,ve.Slugger=oe,ve.parse=ve,ve}()},83312:function(e,t,n){"use strict";n.d(t,{Q:function(){return o}});var i=n(27877),r=n(67775);function o(e){var t=JSON.parse(e);return t=a(t)}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!e||t>200)return e;if("object"===typeof e){switch(e.$mid){case 1:return r.o.revive(e);case 2:return new RegExp(e.source,e.flags)}if(e instanceof i.KN||e instanceof Uint8Array)return e;if(Array.isArray(e))for(var n=0;n<e.length;++n)e[n]=a(e[n],t+1);else for(var o in e)Object.hasOwnProperty.call(e,o)&&(e[o]=a(e[o],t+1))}return e}},55585:function(e,t,n){"use strict";n.d(t,{Gi:function(){return l},WX:function(){return u},lg:function(){return i}});var i,r=n(15671),o=n(43144),a=n(67775),s=n(30487);!function(e){e.inMemory="inmemory",e.vscode="vscode",e.internal="private",e.walkThrough="walkThrough",e.walkThroughSnippet="walkThroughSnippet",e.http="http",e.https="https",e.file="file",e.mailto="mailto",e.untitled="untitled",e.data="data",e.command="command",e.vscodeRemote="vscode-remote",e.vscodeRemoteResource="vscode-remote-resource",e.userData="vscode-userdata",e.vscodeCustomEditor="vscode-custom-editor",e.vscodeNotebook="vscode-notebook",e.vscodeNotebookCell="vscode-notebook-cell",e.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",e.vscodeSettings="vscode-settings",e.vscodeWorkspaceTrust="vscode-workspace-trust",e.vscodeTerminal="vscode-terminal",e.webviewPanel="webview-panel",e.vscodeWebview="vscode-webview",e.extension="extension",e.vscodeFileResource="vscode-file",e.tmp="tmp"}(i||(i={}));var u=new(function(){function e(){(0,r.Z)(this,e),this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null}return(0,o.Z)(e,[{key:"setPreferredWebSchema",value:function(e){this._preferredWebSchema=e}},{key:"rewrite",value:function(e){if(this._delegate)return this._delegate(e);var t=e.authority,n=this._hosts[t];n&&-1!==n.indexOf(":")&&(n="[".concat(n,"]"));var r=this._ports[t],o=this._connectionTokens[t],u="path=".concat(encodeURIComponent(e.path));return"string"===typeof o&&(u+="&tkn=".concat(encodeURIComponent(o))),a.o.from({scheme:s.$L?this._preferredWebSchema:i.vscodeRemoteResource,authority:"".concat(n,":").concat(r),path:"/vscode-remote-resource",query:u})}}]),e}()),l=new(function(){function e(){(0,r.Z)(this,e),this.FALLBACK_AUTHORITY="vscode-app"}return(0,o.Z)(e,[{key:"asBrowserUri",value:function(e,t,n){var r=this.toUri(e,t);return r.scheme===i.vscodeRemote?u.rewrite(r):s.tY&&(n||s.MM)&&r.scheme===i.file?r.with({scheme:i.vscodeFileResource,authority:r.authority||this.FALLBACK_AUTHORITY,query:null,fragment:null}):r}},{key:"toUri",value:function(e,t){return a.o.isUri(e)?e:a.o.parse(t.toUrl(e))}}]),e}())},5265:function(e,t,n){"use strict";n.d(t,{n:function(){return a},u:function(){return o}});var i=n(15671),r=n(43144);function o(e,t,n){return Math.min(Math.max(e,t),n)}var a=function(){function e(){(0,i.Z)(this,e),this._n=1,this._val=0}return(0,r.Z)(e,[{key:"update",value:function(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this}},{key:"value",get:function(){return this._val}}]),e}()},10405:function(e,t,n){"use strict";n.d(t,{CJ:function(){return h},I8:function(){return o},_A:function(){return a},fS:function(){return d},jB:function(){return c},rs:function(){return u}});var i=n(37762),r=n(25941);function o(e){if(!e||"object"!==typeof e)return e;if(e instanceof RegExp)return e;var t=Array.isArray(e)?[]:{};return Object.keys(e).forEach((function(n){e[n]&&"object"===typeof e[n]?t[n]=o(e[n]):t[n]=e[n]})),t}function a(e){if(!e||"object"!==typeof e)return e;for(var t=[e];t.length>0;){var n=t.shift();for(var i in Object.freeze(n),n)if(s.call(n,i)){var r=n[i];"object"!==typeof r||Object.isFrozen(r)||t.push(r)}}return e}var s=Object.prototype.hasOwnProperty;function u(e,t){return l(e,t,new Set)}function l(e,t,n){if((0,r.Jp)(e))return e;var o=t(e);if("undefined"!==typeof o)return o;if((0,r.kJ)(e)){var a,u=[],c=(0,i.Z)(e);try{for(c.s();!(a=c.n()).done;){var d=a.value;u.push(l(d,t,n))}}catch(p){c.e(p)}finally{c.f()}return u}if((0,r.Kn)(e)){if(n.has(e))throw new Error("Cannot clone recursive data-structure");n.add(e);var h={};for(var f in e)s.call(e,f)&&(h[f]=l(e[f],t,n));return n.delete(e),h}return e}function c(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return(0,r.Kn)(e)?((0,r.Kn)(t)&&Object.keys(t).forEach((function(i){i in e?n&&((0,r.Kn)(e[i])&&(0,r.Kn)(t[i])?c(e[i],t[i],n):e[i]=t[i]):e[i]=t[i]})),e):t}function d(e,t){if(e===t)return!0;if(null===e||void 0===e||null===t||void 0===t)return!1;if(typeof e!==typeof t)return!1;if("object"!==typeof e)return!1;if(Array.isArray(e)!==Array.isArray(t))return!1;var n,i;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(n=0;n<e.length;n++)if(!d(e[n],t[n]))return!1}else{var r=[];for(i in e)r.push(i);r.sort();var o=[];for(i in t)o.push(i);if(o.sort(),!d(r,o))return!1;for(n=0;n<r.length;n++)if(!d(e[r[n]],t[r[n]]))return!1}return!0}function h(e,t,n){var i=t(e);return"undefined"===typeof i?n:i}},36912:function(e,t,n){"use strict";n.d(t,{EZ:function(){return A},XX:function(){return I},DZ:function(){return P},Fv:function(){return M},KR:function(){return D},Gf:function(){return O},DB:function(){return T},ir:function(){return R},Ku:function(){return N}});var i,r=n(43144),o=n(15671),a=n(60136),s=n(29388),u=n(28664),l=n(30487);if("undefined"!==typeof l.li.vscode&&"undefined"!==typeof l.li.vscode.process){var c=l.li.vscode.process;i={get platform(){return c.platform},get env(){return c.env},cwd:function(){return c.cwd()},nextTick:function(e){return(0,l.xS)(e)}}}else i="undefined"!==typeof process?{get platform(){return process.platform},get env(){return{NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_BACKEND:"http://localhost:8765"}},cwd:function(){return{NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_BACKEND:"http://localhost:8765"}.VSCODE_CWD||process.cwd()},nextTick:function(e){return process.nextTick(e)}}:{get platform(){return l.ED?"win32":l.dz?"darwin":"linux"},nextTick:function(e){return(0,l.xS)(e)},get env(){return Object.create(null)},cwd:function(){return"/"}};var d=i.cwd,h=(i.env,i.platform),f=65,p=97,v=90,g=122,m=46,_=47,y=92,b=58,w=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,i,r){var a,s;(0,o.Z)(this,n),"string"===typeof i&&0===i.indexOf("not ")?(s="must not be",i=i.replace(/^not /,"")):s="must be";var u=-1!==e.indexOf(".")?"property":"argument",l='The "'.concat(e,'" ').concat(u," ").concat(s," of type ").concat(i);return l+=". Received type ".concat(typeof r),(a=t.call(this,l)).code="ERR_INVALID_ARG_TYPE",a}return(0,r.Z)(n)}((0,u.Z)(Error));function C(e,t){if("string"!==typeof e)throw new w(t,"string",e)}function k(e){return e===_||e===y}function S(e){return e===_}function x(e){return e>=f&&e<=v||e>=p&&e<=g}function L(e,t,n,i){for(var r="",o=0,a=-1,s=0,u=0,l=0;l<=e.length;++l){if(l<e.length)u=e.charCodeAt(l);else{if(i(u))break;u=_}if(i(u)){if(a===l-1||1===s);else if(2===s){if(r.length<2||2!==o||r.charCodeAt(r.length-1)!==m||r.charCodeAt(r.length-2)!==m){if(r.length>2){var c=r.lastIndexOf(n);-1===c?(r="",o=0):o=(r=r.slice(0,c)).length-1-r.lastIndexOf(n),a=l,s=0;continue}if(0!==r.length){r="",o=0,a=l,s=0;continue}}t&&(r+=r.length>0?"".concat(n,".."):"..",o=2)}else r.length>0?r+="".concat(n).concat(e.slice(a+1,l)):r=e.slice(a+1,l),o=l-a-1;a=l,s=0}else u===m&&-1!==s?++s:s=-1}return r}function E(e,t){if(null===t||"object"!==typeof t)throw new w("pathObject","Object",t);var n=t.dir||t.root,i=t.base||"".concat(t.name||"").concat(t.ext||"");return n?n===t.root?"".concat(n).concat(i):"".concat(n).concat(e).concat(i):i}var N={resolve:function(){for(var e="",t="",n=!1,i=arguments.length-1;i>=-1;i--){var r=void 0;if(i>=0){if(C(r=i<0||arguments.length<=i?void 0:arguments[i],"path"),0===r.length)continue}else 0===e.length?r=d():(void 0===(r={NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_BACKEND:"http://localhost:8765"}["=".concat(e)]||d())||r.slice(0,2).toLowerCase()!==e.toLowerCase()&&r.charCodeAt(2)===y)&&(r="".concat(e,"\\"));var o=r.length,a=0,s="",u=!1,l=r.charCodeAt(0);if(1===o)k(l)&&(a=1,u=!0);else if(k(l))if(u=!0,k(r.charCodeAt(1))){for(var c=2,h=c;c<o&&!k(r.charCodeAt(c));)c++;if(c<o&&c!==h){var f=r.slice(h,c);for(h=c;c<o&&k(r.charCodeAt(c));)c++;if(c<o&&c!==h){for(h=c;c<o&&!k(r.charCodeAt(c));)c++;c!==o&&c===h||(s="\\\\".concat(f,"\\").concat(r.slice(h,c)),a=c)}}}else a=1;else x(l)&&r.charCodeAt(1)===b&&(s=r.slice(0,2),a=2,o>2&&k(r.charCodeAt(2))&&(u=!0,a=3));if(s.length>0)if(e.length>0){if(s.toLowerCase()!==e.toLowerCase())continue}else e=s;if(n){if(e.length>0)break}else if(t="".concat(r.slice(a),"\\").concat(t),n=u,u&&e.length>0)break}return t=L(t,!n,"\\",k),n?"".concat(e,"\\").concat(t):"".concat(e).concat(t)||"."},normalize:function(e){C(e,"path");var t=e.length;if(0===t)return".";var n,i=0,r=!1,o=e.charCodeAt(0);if(1===t)return S(o)?"\\":e;if(k(o))if(r=!0,k(e.charCodeAt(1))){for(var a=2,s=a;a<t&&!k(e.charCodeAt(a));)a++;if(a<t&&a!==s){var u=e.slice(s,a);for(s=a;a<t&&k(e.charCodeAt(a));)a++;if(a<t&&a!==s){for(s=a;a<t&&!k(e.charCodeAt(a));)a++;if(a===t)return"\\\\".concat(u,"\\").concat(e.slice(s),"\\");a!==s&&(n="\\\\".concat(u,"\\").concat(e.slice(s,a)),i=a)}}}else i=1;else x(o)&&e.charCodeAt(1)===b&&(n=e.slice(0,2),i=2,t>2&&k(e.charCodeAt(2))&&(r=!0,i=3));var l=i<t?L(e.slice(i),!r,"\\",k):"";return 0!==l.length||r||(l="."),l.length>0&&k(e.charCodeAt(t-1))&&(l+="\\"),void 0===n?r?"\\".concat(l):l:r?"".concat(n,"\\").concat(l):"".concat(n).concat(l)},isAbsolute:function(e){C(e,"path");var t=e.length;if(0===t)return!1;var n=e.charCodeAt(0);return k(n)||t>2&&x(n)&&e.charCodeAt(1)===b&&k(e.charCodeAt(2))},join:function(){if(0===arguments.length)return".";for(var e,t,n=0;n<arguments.length;++n){var i=n<0||arguments.length<=n?void 0:arguments[n];C(i,"path"),i.length>0&&(void 0===e?e=t=i:e+="\\".concat(i))}if(void 0===e)return".";var r=!0,o=0;if("string"===typeof t&&k(t.charCodeAt(0))){++o;var a=t.length;a>1&&k(t.charCodeAt(1))&&(++o,a>2&&(k(t.charCodeAt(2))?++o:r=!1))}if(r){for(;o<e.length&&k(e.charCodeAt(o));)o++;o>=2&&(e="\\".concat(e.slice(o)))}return N.normalize(e)},relative:function(e,t){if(C(e,"from"),C(t,"to"),e===t)return"";var n=N.resolve(e),i=N.resolve(t);if(n===i)return"";if((e=n.toLowerCase())===(t=i.toLowerCase()))return"";for(var r=0;r<e.length&&e.charCodeAt(r)===y;)r++;for(var o=e.length;o-1>r&&e.charCodeAt(o-1)===y;)o--;for(var a=o-r,s=0;s<t.length&&t.charCodeAt(s)===y;)s++;for(var u=t.length;u-1>s&&t.charCodeAt(u-1)===y;)u--;for(var l=u-s,c=a<l?a:l,d=-1,h=0;h<c;h++){var f=e.charCodeAt(r+h);if(f!==t.charCodeAt(s+h))break;f===y&&(d=h)}if(h!==c){if(-1===d)return i}else{if(l>c){if(t.charCodeAt(s+h)===y)return i.slice(s+h+1);if(2===h)return i.slice(s+h)}a>c&&(e.charCodeAt(r+h)===y?d=h:2===h&&(d=3)),-1===d&&(d=0)}var p="";for(h=r+d+1;h<=o;++h)h!==o&&e.charCodeAt(h)!==y||(p+=0===p.length?"..":"\\..");return s+=d,p.length>0?"".concat(p).concat(i.slice(s,u)):(i.charCodeAt(s)===y&&++s,i.slice(s,u))},toNamespacedPath:function(e){if("string"!==typeof e)return e;if(0===e.length)return"";var t=N.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===y){if(t.charCodeAt(1)===y){var n=t.charCodeAt(2);if(63!==n&&n!==m)return"\\\\?\\UNC\\".concat(t.slice(2))}}else if(x(t.charCodeAt(0))&&t.charCodeAt(1)===b&&t.charCodeAt(2)===y)return"\\\\?\\".concat(t);return e},dirname:function(e){C(e,"path");var t=e.length;if(0===t)return".";var n=-1,i=0,r=e.charCodeAt(0);if(1===t)return k(r)?e:".";if(k(r)){if(n=i=1,k(e.charCodeAt(1))){for(var o=2,a=o;o<t&&!k(e.charCodeAt(o));)o++;if(o<t&&o!==a){for(a=o;o<t&&k(e.charCodeAt(o));)o++;if(o<t&&o!==a){for(a=o;o<t&&!k(e.charCodeAt(o));)o++;if(o===t)return e;o!==a&&(n=i=o+1)}}}}else x(r)&&e.charCodeAt(1)===b&&(i=n=t>2&&k(e.charCodeAt(2))?3:2);for(var s=-1,u=!0,l=t-1;l>=i;--l)if(k(e.charCodeAt(l))){if(!u){s=l;break}}else u=!1;if(-1===s){if(-1===n)return".";s=n}return e.slice(0,s)},basename:function(e,t){void 0!==t&&C(t,"ext"),C(e,"path");var n,i=0,r=-1,o=!0;if(e.length>=2&&x(e.charCodeAt(0))&&e.charCodeAt(1)===b&&(i=2),void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";var a=t.length-1,s=-1;for(n=e.length-1;n>=i;--n){var u=e.charCodeAt(n);if(k(u)){if(!o){i=n+1;break}}else-1===s&&(o=!1,s=n+1),a>=0&&(u===t.charCodeAt(a)?-1===--a&&(r=n):(a=-1,r=s))}return i===r?r=s:-1===r&&(r=e.length),e.slice(i,r)}for(n=e.length-1;n>=i;--n)if(k(e.charCodeAt(n))){if(!o){i=n+1;break}}else-1===r&&(o=!1,r=n+1);return-1===r?"":e.slice(i,r)},extname:function(e){C(e,"path");var t=0,n=-1,i=0,r=-1,o=!0,a=0;e.length>=2&&e.charCodeAt(1)===b&&x(e.charCodeAt(0))&&(t=i=2);for(var s=e.length-1;s>=t;--s){var u=e.charCodeAt(s);if(k(u)){if(!o){i=s+1;break}}else-1===r&&(o=!1,r=s+1),u===m?-1===n?n=s:1!==a&&(a=1):-1!==n&&(a=-1)}return-1===n||-1===r||0===a||1===a&&n===r-1&&n===i+1?"":e.slice(n,r)},format:E.bind(null,"\\"),parse:function(e){C(e,"path");var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n=e.length,i=0,r=e.charCodeAt(0);if(1===n)return k(r)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(k(r)){if(i=1,k(e.charCodeAt(1))){for(var o=2,a=o;o<n&&!k(e.charCodeAt(o));)o++;if(o<n&&o!==a){for(a=o;o<n&&k(e.charCodeAt(o));)o++;if(o<n&&o!==a){for(a=o;o<n&&!k(e.charCodeAt(o));)o++;o===n?i=o:o!==a&&(i=o+1)}}}}else if(x(r)&&e.charCodeAt(1)===b){if(n<=2)return t.root=t.dir=e,t;if(i=2,k(e.charCodeAt(2))){if(3===n)return t.root=t.dir=e,t;i=3}}i>0&&(t.root=e.slice(0,i));for(var s=-1,u=i,l=-1,c=!0,d=e.length-1,h=0;d>=i;--d)if(k(r=e.charCodeAt(d))){if(!c){u=d+1;break}}else-1===l&&(c=!1,l=d+1),r===m?-1===s?s=d:1!==h&&(h=1):-1!==s&&(h=-1);return-1!==l&&(-1===s||0===h||1===h&&s===l-1&&s===u+1?t.base=t.name=e.slice(u,l):(t.name=e.slice(u,s),t.base=e.slice(u,l),t.ext=e.slice(s,l))),t.dir=u>0&&u!==i?e.slice(0,u-1):t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},D={resolve:function(){for(var e="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var i=n>=0?n<0||arguments.length<=n?void 0:arguments[n]:d();C(i,"path"),0!==i.length&&(e="".concat(i,"/").concat(e),t=i.charCodeAt(0)===_)}return e=L(e,!t,"/",S),t?"/".concat(e):e.length>0?e:"."},normalize:function(e){if(C(e,"path"),0===e.length)return".";var t=e.charCodeAt(0)===_,n=e.charCodeAt(e.length-1)===_;return 0===(e=L(e,!t,"/",S)).length?t?"/":n?"./":".":(n&&(e+="/"),t?"/".concat(e):e)},isAbsolute:function(e){return C(e,"path"),e.length>0&&e.charCodeAt(0)===_},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var n=t<0||arguments.length<=t?void 0:arguments[t];C(n,"path"),n.length>0&&(void 0===e?e=n:e+="/".concat(n))}return void 0===e?".":D.normalize(e)},relative:function(e,t){if(C(e,"from"),C(t,"to"),e===t)return"";if((e=D.resolve(e))===(t=D.resolve(t)))return"";for(var n=e.length,i=n-1,r=t.length-1,o=i<r?i:r,a=-1,s=0;s<o;s++){var u=e.charCodeAt(1+s);if(u!==t.charCodeAt(1+s))break;u===_&&(a=s)}if(s===o)if(r>o){if(t.charCodeAt(1+s)===_)return t.slice(1+s+1);if(0===s)return t.slice(1+s)}else i>o&&(e.charCodeAt(1+s)===_?a=s:0===s&&(a=0));var l="";for(s=1+a+1;s<=n;++s)s!==n&&e.charCodeAt(s)!==_||(l+=0===l.length?"..":"/..");return"".concat(l).concat(t.slice(1+a))},toNamespacedPath:function(e){return e},dirname:function(e){if(C(e,"path"),0===e.length)return".";for(var t=e.charCodeAt(0)===_,n=-1,i=!0,r=e.length-1;r>=1;--r)if(e.charCodeAt(r)===_){if(!i){n=r;break}}else i=!1;return-1===n?t?"/":".":t&&1===n?"//":e.slice(0,n)},basename:function(e,t){void 0!==t&&C(t,"ext"),C(e,"path");var n,i=0,r=-1,o=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";var a=t.length-1,s=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(u===_){if(!o){i=n+1;break}}else-1===s&&(o=!1,s=n+1),a>=0&&(u===t.charCodeAt(a)?-1===--a&&(r=n):(a=-1,r=s))}return i===r?r=s:-1===r&&(r=e.length),e.slice(i,r)}for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===_){if(!o){i=n+1;break}}else-1===r&&(o=!1,r=n+1);return-1===r?"":e.slice(i,r)},extname:function(e){C(e,"path");for(var t=-1,n=0,i=-1,r=!0,o=0,a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(s!==_)-1===i&&(r=!1,i=a+1),s===m?-1===t?t=a:1!==o&&(o=1):-1!==t&&(o=-1);else if(!r){n=a+1;break}}return-1===t||-1===i||0===o||1===o&&t===i-1&&t===n+1?"":e.slice(t,i)},format:E.bind(null,"/"),parse:function(e){C(e,"path");var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,i=e.charCodeAt(0)===_;i?(t.root="/",n=1):n=0;for(var r=-1,o=0,a=-1,s=!0,u=e.length-1,l=0;u>=n;--u){var c=e.charCodeAt(u);if(c!==_)-1===a&&(s=!1,a=u+1),c===m?-1===r?r=u:1!==l&&(l=1):-1!==r&&(l=-1);else if(!s){o=u+1;break}}if(-1!==a){var d=0===o&&i?1:o;-1===r||0===l||1===l&&r===a-1&&r===o+1?t.base=t.name=e.slice(d,a):(t.name=e.slice(d,r),t.base=e.slice(d,a),t.ext=e.slice(r,a))}return o>0?t.dir=e.slice(0,o-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};D.win32=N.win32=N,D.posix=N.posix=D;var M="win32"===h?N.normalize:D.normalize,T="win32"===h?N.resolve:D.resolve,O="win32"===h?N.relative:D.relative,I="win32"===h?N.dirname:D.dirname,A="win32"===h?N.basename:D.basename,P="win32"===h?N.extname:D.extname,R="win32"===h?N.sep:D.sep},30487:function(e,t,n){"use strict";var i;n.d(t,{$L:function(){return S},ED:function(){return b},IJ:function(){return C},MM:function(){return g},OS:function(){return N},WE:function(){return L},dz:function(){return w},gn:function(){return x},li:function(){return h},r:function(){return T},tY:function(){return k},xS:function(){return E}});var r="en",o=!1,a=!1,s=!1,u=!1,l=!1,c=!1,d=void 0,h="object"===typeof self?self:"object"===typeof n.g?n.g:{},f=void 0;"undefined"!==typeof h.vscode&&"undefined"!==typeof h.vscode.process?f=h.vscode.process:"undefined"!==typeof process&&(f=process);var p="string"===typeof(null===(i=null===f||void 0===f?void 0:f.versions)||void 0===i?void 0:i.electron)&&"renderer"===f.type,v=p&&(null===f||void 0===f?void 0:f.sandboxed),g="string"===typeof function(){if(v)return"bypassHeatCheck";var e=null===f||void 0===f?void 0:f.env.VSCODE_BROWSER_CODE_LOADING;return"string"===typeof e?"none"===e||"code"===e||"bypassHeatCheck"===e||"bypassHeatCheckAndEagerCompile"===e?e:"bypassHeatCheck":void 0}();if("object"!==typeof navigator||p)if("object"===typeof f){o="win32"===f.platform,a="darwin"===f.platform,(s="linux"===f.platform)&&!!f.env.SNAP&&!!f.env.SNAP_REVISION,r,r;var m=f.env.VSCODE_NLS_CONFIG;if(m)try{var _=JSON.parse(m),y=_.availableLanguages["*"];_.locale,y||r,_._translationsConfigFile}catch(O){}u=!0}else console.error("Unable to resolve platform.");else o=(d=navigator.userAgent).indexOf("Windows")>=0,a=d.indexOf("Macintosh")>=0,c=(d.indexOf("Macintosh")>=0||d.indexOf("iPad")>=0||d.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,s=d.indexOf("Linux")>=0,l=!0,navigator.language;var b=o,w=a,C=s,k=u,S=l,x=c,L=d,E=function(){if(h.setImmediate)return h.setImmediate.bind(h);if("function"===typeof h.postMessage&&!h.importScripts){var e=[];h.addEventListener("message",(function(t){if(t.data&&t.data.vscodeSetImmediateId)for(var n=0,i=e.length;n<i;n++){var r=e[n];if(r.id===t.data.vscodeSetImmediateId)return e.splice(n,1),void r.callback()}}));var t=0;return function(n){var i=++t;e.push({id:i,callback:n}),h.postMessage({vscodeSetImmediateId:i},"*")}}if("function"===typeof(null===f||void 0===f?void 0:f.nextTick))return f.nextTick.bind(f);var n=Promise.resolve();return function(e){return n.then(e)}}(),N=a||c?2:o?1:3,D=!0,M=!1;function T(){if(!M){M=!0;var e=new Uint8Array(2);e[0]=1,e[1]=2;var t=new Uint16Array(e.buffer);D=513===t[0]}return D}},81629:function(e,t,n){"use strict";var i;n.d(t,{e:function(){return i}}),function(e){function t(e,t){if(e.start>=t.end||t.start>=e.end)return{start:0,end:0};var n=Math.max(e.start,t.start),i=Math.min(e.end,t.end);return i-n<=0?{start:0,end:0}:{start:n,end:i}}function n(e){return e.end-e.start<=0}e.intersect=t,e.isEmpty=n,e.intersects=function(e,i){return!n(t(e,i))},e.relativeComplement=function(e,t){var i=[],r={start:e.start,end:Math.min(t.start,e.end)},o={start:Math.max(t.end,e.start),end:e.end};return n(r)||i.push(r),n(o)||i.push(o),i}}(i||(i={}))},51334:function(e,t,n){"use strict";n.d(t,{AH:function(){return b},EZ:function(){return m},Hx:function(){return g},SF:function(){return p},Vb:function(){return h},Vo:function(){return y},XX:function(){return _},Xy:function(){return v},i3:function(){return w},z_:function(){return d}});var i=n(29439),r=n(15671),o=n(43144),a=n(67537),s=n(36912),u=n(67775),l=n(51747),c=n(55585);function d(e){return(0,u.q)(e,!0)}var h,f=function(){function e(t){(0,r.Z)(this,e),this._ignorePathCasing=t}return(0,o.Z)(e,[{key:"compare",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e===t?0:(0,l.qu)(this.getComparisonKey(e,n),this.getComparisonKey(t,n))}},{key:"isEqual",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e===t||!(!e||!t)&&this.getComparisonKey(e,n)===this.getComparisonKey(t,n)}},{key:"getComparisonKey",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}},{key:"joinPath",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return u.o.joinPath.apply(u.o,[e].concat(n))}},{key:"basenameOrAuthority",value:function(e){return m(e)||e.authority}},{key:"basename",value:function(e){return s.KR.basename(e.path)}},{key:"dirname",value:function(e){return 0===e.path.length?e:(e.scheme===c.lg.file?t=u.o.file(s.XX(d(e))).path:(t=s.KR.dirname(e.path),e.authority&&t.length&&47!==t.charCodeAt(0)&&(console.error('dirname("'.concat(e.toString,")) resulted in a relative path")),t="/")),e.with({path:t}));var t}},{key:"normalizePath",value:function(e){return e.path.length?(t=e.scheme===c.lg.file?u.o.file(s.Fv(d(e))).path:s.KR.normalize(e.path),e.with({path:t})):e;var t}},{key:"resolvePath",value:function(e,t){if(e.scheme===c.lg.file){var n=u.o.file(s.DB(d(e),t));return e.with({authority:n.authority,path:n.path})}return-1===t.indexOf("/")&&(t=a.ej(t),/^[a-zA-Z]:(\/|$)/.test(t)&&(t="/"+t)),e.with({path:s.KR.resolve(e.path,t)})}}]),e}(),p=new f((function(){return!1})),v=p.isEqual.bind(p),g=p.basenameOrAuthority.bind(p),m=p.basename.bind(p),_=p.dirname.bind(p),y=p.joinPath.bind(p),b=p.normalizePath.bind(p),w=p.resolvePath.bind(p);!function(e){e.META_DATA_LABEL="label",e.META_DATA_DESCRIPTION="description",e.META_DATA_SIZE="size",e.META_DATA_MIME="mime",e.parseMetaData=function(t){var n=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach((function(e){var t=e.split(":"),r=(0,i.Z)(t,2),o=r[0],a=r[1];o&&a&&n.set(o,a)}));var r=t.path.substring(0,t.path.indexOf(";"));return r&&n.set(e.META_DATA_MIME,r),n}}(h||(h={}))},58604:function(e,t,n){"use strict";n.d(t,{Rm:function(){return h}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(11732),c=n(81626),d=function(){function e(t,n,i,r,o,a){(0,s.Z)(this,e),t|=0,n|=0,i|=0,r|=0,o|=0,a|=0,this.rawScrollLeft=i,this.rawScrollTop=a,t<0&&(t=0),i+t>n&&(i=n-t),i<0&&(i=0),r<0&&(r=0),a+r>o&&(a=o-r),a<0&&(a=0),this.width=t,this.scrollWidth=n,this.scrollLeft=i,this.height=r,this.scrollHeight=o,this.scrollTop=a}return(0,u.Z)(e,[{key:"equals",value:function(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}},{key:"withScrollDimensions",value:function(t,n){return new e("undefined"!==typeof t.width?t.width:this.width,"undefined"!==typeof t.scrollWidth?t.scrollWidth:this.scrollWidth,n?this.rawScrollLeft:this.scrollLeft,"undefined"!==typeof t.height?t.height:this.height,"undefined"!==typeof t.scrollHeight?t.scrollHeight:this.scrollHeight,n?this.rawScrollTop:this.scrollTop)}},{key:"withScrollPosition",value:function(t){return new e(this.width,this.scrollWidth,"undefined"!==typeof t.scrollLeft?t.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,"undefined"!==typeof t.scrollTop?t.scrollTop:this.rawScrollTop)}},{key:"createScrollEvent",value:function(e,t){var n=this.width!==e.width,i=this.scrollWidth!==e.scrollWidth,r=this.scrollLeft!==e.scrollLeft,o=this.height!==e.height,a=this.scrollHeight!==e.scrollHeight,s=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:n,scrollWidthChanged:i,scrollLeftChanged:r,heightChanged:o,scrollHeightChanged:a,scrollTopChanged:s}}}]),e}(),h=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;return(0,s.Z)(this,n),(r=t.call(this))._onScroll=r._register(new l.Q5),r.onScroll=r._onScroll.event,r._smoothScrollDuration=e,r._scheduleAtNextAnimationFrame=i,r._state=new d(0,0,0,0,0,0),r._smoothScrolling=null,r}return(0,u.Z)(n,[{key:"dispose",value:function(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}},{key:"setSmoothScrollDuration",value:function(e){this._smoothScrollDuration=e}},{key:"validateScrollPosition",value:function(e){return this._state.withScrollPosition(e)}},{key:"getScrollDimensions",value:function(){return this._state}},{key:"setScrollDimensions",value:function(e,t){var n=this._state.withScrollDimensions(e,t);this._setState(n,Boolean(this._smoothScrolling)),this._smoothScrolling&&this._smoothScrolling.acceptScrollDimensions(this._state)}},{key:"getFutureScrollPosition",value:function(){return this._smoothScrolling?this._smoothScrolling.to:this._state}},{key:"getCurrentScrollPosition",value:function(){return this._state}},{key:"setScrollPositionNow",value:function(e){var t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}},{key:"setScrollPositionSmooth",value:function(e,t){var n=this;if(0===this._smoothScrollDuration)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:"undefined"===typeof e.scrollLeft?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:"undefined"===typeof e.scrollTop?this._smoothScrolling.to.scrollTop:e.scrollTop};var i,r=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===r.scrollLeft&&this._smoothScrolling.to.scrollTop===r.scrollTop)return;i=t?new v(this._smoothScrolling.from,r,this._smoothScrolling.startTime,this._smoothScrolling.duration):this._smoothScrolling.combine(this._state,r,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=i}else{var o=this._state.withScrollPosition(e);this._smoothScrolling=v.start(this._state,o,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((function(){n._smoothScrolling&&(n._smoothScrolling.animationFrameDisposable=null,n._performSmoothScrolling())}))}},{key:"_performSmoothScrolling",value:function(){var e=this;if(this._smoothScrolling){var t=this._smoothScrolling.tick(),n=this._state.withScrollPosition(t);if(this._setState(n,!0),this._smoothScrolling)return t.isDone?(this._smoothScrolling.dispose(),void(this._smoothScrolling=null)):void(this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((function(){e._smoothScrolling&&(e._smoothScrolling.animationFrameDisposable=null,e._performSmoothScrolling())})))}}},{key:"_setState",value:function(e,t){var n=this._state;n.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(n,t)))}}]),n}(c.JT),f=(0,u.Z)((function e(t,n,i){(0,s.Z)(this,e),this.scrollLeft=t,this.scrollTop=n,this.isDone=i}));function p(e,t){var n=t-e;return function(t){return e+n*(1-function(e){return Math.pow(e,3)}(1-t))}}var v=function(){function e(t,n,i,r){(0,s.Z)(this,e),this.from=t,this.to=n,this.duration=r,this.startTime=i,this.animationFrameDisposable=null,this._initAnimations()}return(0,u.Z)(e,[{key:"_initAnimations",value:function(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}},{key:"_initAnimation",value:function(e,t,n){var i,r,o,a,s;return Math.abs(e-t)>2.5*n?(e<t?(i=e+.75*n,r=t-.75*n):(i=e-.75*n,r=t+.75*n),o=p(e,i),a=p(r,t),s=.33,function(e){return e<s?o(e/s):a((e-s)/(1-s))}):p(e,t)}},{key:"dispose",value:function(){null!==this.animationFrameDisposable&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)}},{key:"acceptScrollDimensions",value:function(e){this.to=e.withScrollPosition(this.to),this._initAnimations()}},{key:"tick",value:function(){return this._tick(Date.now())}},{key:"_tick",value:function(e){var t=(e-this.startTime)/this.duration;if(t<1){var n=this.scrollLeft(t),i=this.scrollTop(t);return new f(n,i,!1)}return new f(this.to.scrollLeft,this.to.scrollTop,!0)}},{key:"combine",value:function(t,n,i){return e.start(t,n,i)}}],[{key:"start",value:function(t,n,i){return i+=10,new e(t,n,Date.now()-10,i)}}]),e}()},55046:function(e,t,n){"use strict";var i,r=n(51747);!function(e){e[e.Ignore=0]="Ignore",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(i||(i={})),function(e){var t="error",n="warning",i="warn",o="info",a="ignore";e.fromValue=function(a){return a?r.qq(t,a)?e.Error:r.qq(n,a)||r.qq(i,a)?e.Warning:r.qq(o,a)?e.Info:e.Ignore:e.Ignore},e.toString=function(i){switch(i){case e.Error:return t;case e.Warning:return n;case e.Info:return o;default:return a}}}(i||(i={})),t.Z=i},96257:function(e,t,n){"use strict";n.d(t,{G:function(){return s}});var i=n(15671),r=n(43144),o=n(30487),a=o.li.performance&&"function"===typeof o.li.performance.now,s=function(){function e(t){(0,i.Z)(this,e),this._highResolution=a&&t,this._startTime=this._now(),this._stopTime=-1}return(0,r.Z)(e,[{key:"stop",value:function(){this._stopTime=this._now()}},{key:"elapsed",value:function(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime}},{key:"_now",value:function(){return this._highResolution?o.li.performance.now():Date.now()}}],[{key:"create",value:function(){return new e(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}}]),e}()},51747:function(e,t,n){"use strict";n.d(t,{$i:function(){return K},C8:function(){return X},CZ:function(){return B},GF:function(){return v},HO:function(){return H},IO:function(){return g},K7:function(){return Q},Kw:function(){return te},LC:function(){return y},Mh:function(){return O},P1:function(){return I},PJ:function(){return ne},Qe:function(){return q},R1:function(){return p},RP:function(){return Y},S6:function(){return ie},TT:function(){return k},Ut:function(){return W},V8:function(){return b},WU:function(){return s},YK:function(){return P},YU:function(){return u},ZG:function(){return A},ZH:function(){return Z},ab:function(){return G},c1:function(){return J},df:function(){return E},ec:function(){return l},fi:function(){return re},fy:function(){return c},j3:function(){return d},j_:function(){return x},m5:function(){return o},mK:function(){return L},mr:function(){return m},oL:function(){return h},ok:function(){return T},ow:function(){return w},qq:function(){return D},qu:function(){return C},rL:function(){return R},uS:function(){return ee},un:function(){return f},uq:function(){return _},vH:function(){return j},xe:function(){return $},zY:function(){return S}});var i=n(15671),r=n(43144);function o(e){return!e||"string"!==typeof e||0===e.trim().length}var a=/{(\d+)}/g;function s(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return 0===n.length?e:e.replace(a,(function(e,t){var i=parseInt(t,10);return isNaN(i)||i<0||i>=n.length?e:n[i]}))}function u(e){return e.replace(/[<>&]/g,(function(e){switch(e){case"<":return"&lt;";case">":return"&gt;";case"&":return"&amp;";default:return e}}))}function l(e){return e.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return h(d(e,t),t)}function d(e,t){if(!e||!t)return e;var n=t.length;if(0===n||0===e.length)return e;for(var i=0;e.indexOf(t,i)===i;)i+=n;return e.substring(i)}function h(e,t){if(!e||!t)return e;var n=t.length,i=e.length;if(0===n||0===i)return e;for(var r=i,o=-1;-1!==(o=e.lastIndexOf(t,r-1))&&o+n===r;){if(0===o)return"";r=o}return e.substring(0,r)}function f(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function p(e){return e.replace(/\*/g,"")}function v(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)throw new Error("Cannot create regex from empty string");t||(e=l(e)),n.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e+="\\b"));var i="";return n.global&&(i+="g"),n.matchCase||(i+="i"),n.multiline&&(i+="m"),n.unicode&&(i+="u"),new RegExp(e,i)}function g(e){return"^"!==e.source&&"^$"!==e.source&&"$"!==e.source&&"^\\s*$"!==e.source&&!(!e.exec("")||0!==e.lastIndex)}function m(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")}function _(e){return e.split(/\r\n|\r|\n/)}function y(e){for(var t=0,n=e.length;t<n;t++){var i=e.charCodeAt(t);if(32!==i&&9!==i)return t}return-1}function b(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,i=t;i<n;i++){var r=e.charCodeAt(i);if(32!==r&&9!==r)return e.substring(t,i)}return e.substring(t,n)}function w(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.length-1;t>=0;t--){var n=e.charCodeAt(t);if(32!==n&&9!==n)return t}return-1}function C(e,t){return e<t?-1:e>t?1:0}function k(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:t.length;n<i&&r<o;n++,r++){var a=e.charCodeAt(n),s=t.charCodeAt(r);if(a<s)return-1;if(a>s)return 1}var u=i-n,l=o-r;return u<l?-1:u>l?1:0}function S(e,t){return x(e,t,0,e.length,0,t.length)}function x(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:t.length;n<i&&r<o;n++,r++){var a=e.charCodeAt(n),s=t.charCodeAt(r);if(a!==s){var u=a-s;if((32!==u||!E(s))&&(-32!==u||!E(a)))return L(a)&&L(s)?u:k(e.toLowerCase(),t.toLowerCase(),n,i,r,o)}}var l=i-n,c=o-r;return l<c?-1:l>c?1:0}function L(e){return e>=97&&e<=122}function E(e){return e>=65&&e<=90}function N(e){return L(e)||E(e)}function D(e,t){return e.length===t.length&&M(e,t)}function M(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,i=0;i<n;i++){var r=e.charCodeAt(i),o=t.charCodeAt(i);if(r!==o)if(N(r)&&N(o)){var a=Math.abs(r-o);if(0!==a&&32!==a)return!1}else if(String.fromCharCode(r).toLowerCase()!==String.fromCharCode(o).toLowerCase())return!1}return!0}function T(e,t){var n=t.length;return!(t.length>e.length)&&M(e,t,n)}function O(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n<i;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return i}function I(e,t){var n,i=Math.min(e.length,t.length),r=e.length-1,o=t.length-1;for(n=0;n<i;n++)if(e.charCodeAt(r-n)!==t.charCodeAt(o-n))return n;return i}function A(e){return 55296<=e&&e<=56319}function P(e){return 56320<=e&&e<=57343}function R(e,t){return t-56320+(e-55296<<10)+65536}function Z(e,t,n){var i=e.charCodeAt(n);if(A(i)&&n+1<t){var r=e.charCodeAt(n+1);if(P(r))return R(i,r)}return i}function F(e,t){var n=e.charCodeAt(t-1);if(P(n)&&t>1){var i=e.charCodeAt(t-2);if(A(i))return R(i,n)}return n}function j(e,t){var n=oe.getInstance(),i=t,r=e.length,o=Z(e,r,t);t+=o>=65536?2:1;for(var a=n.getGraphemeBreakType(o);t<r;){var s=Z(e,r,t),u=n.getGraphemeBreakType(s);if(re(a,u))break;t+=s>=65536?2:1,a=u}return t-i}function H(e,t){var n=oe.getInstance(),i=t,r=F(e,t);t-=r>=65536?2:1;for(var o=n.getGraphemeBreakType(r);t>0;){var a=F(e,t),s=n.getGraphemeBreakType(a);if(re(s,o))break;t-=a>=65536?2:1,o=s}return i-t}function B(e){for(var t=e.byteLength,n=[],i=0;i<t;){var r=e[i],o=void 0;if((o=r>=240&&i+3<t?(7&e[i++])<<18>>>0|(63&e[i++])<<12>>>0|(63&e[i++])<<6>>>0|(63&e[i++])<<0>>>0:r>=224&&i+2<t?(15&e[i++])<<12>>>0|(63&e[i++])<<6>>>0|(63&e[i++])<<0>>>0:r>=192&&i+1<t?(31&e[i++])<<6>>>0|(63&e[i++])<<0>>>0:e[i++])>=0&&o<=55295||o>=57344&&o<=65535)n.push(String.fromCharCode(o));else if(o>=65536&&o<=1114111){var a=o-65536,s=55296+((1047552&a)>>>10),u=56320+((1023&a)>>>0);n.push(String.fromCharCode(s)),n.push(String.fromCharCode(u))}else n.push(String.fromCharCode(65533))}return n.join("")}var z=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;function W(e){return z.test(e)}var V=/(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD00-\uDDFF\uDE70-\uDED6])/;function Y(e){return V.test(e)}var U=/^[\t\n\r\x20-\x7E]*$/;function K(e){return U.test(e)}var q=/[\u2028\u2029]/;function G(e){return q.test(e)}function $(e){for(var t=0,n=e.length;t<n;t++)if(Q(e.charCodeAt(t)))return!0;return!1}function Q(e){return(e=+e)>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function X(e){return e>=127462&&e<=127487||8986===e||8987===e||9200===e||9203===e||e>=9728&&e<=10175||11088===e||11093===e||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129003||e>=129280&&e<=129535||e>=129648&&e<=129750}var J=String.fromCharCode(65279);function ee(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))}function te(e){return!!e&&(arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&(e=e.replace(/\\./g,"")),e.toLowerCase()!==e)}function ne(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)}function ie(e){return oe.getInstance().getGraphemeBreakType(e)}function re(e,t){return 0===e?5!==t&&7!==t:(2!==e||3!==t)&&(4===e||2===e||3===e||(4===t||2===t||3===t||(8!==e||8!==t&&9!==t&&11!==t&&12!==t)&&((11!==e&&9!==e||9!==t&&10!==t)&&((12!==e&&10!==e||10!==t)&&(5!==t&&13!==t&&(7!==t&&(1!==e&&((13!==e||14!==t)&&(6!==e||6!==t)))))))))}var oe=function(){function e(){(0,i.Z)(this,e),this._data=JSON.parse("[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]")}return(0,r.Z)(e,[{key:"getGraphemeBreakType",value:function(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;for(var t=this._data,n=t.length/3,i=1;i<=n;)if(e<t[3*i])i*=2;else{if(!(e>t[3*i+1]))return t[3*i+2];i=2*i+1}return 0}}],[{key:"getInstance",value:function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE}}]),e}();oe._INSTANCE=null},25941:function(e,t,n){"use strict";n.d(t,{$E:function(){return g},D8:function(){return p},HD:function(){return o},IU:function(){return m},Jp:function(){return c},Kn:function(){return a},cW:function(){return h},f6:function(){return _},hj:function(){return s},jn:function(){return u},kJ:function(){return r},mf:function(){return f},o8:function(){return l},p_:function(){return d}});var i=n(37762);function r(e){return Array.isArray(e)}function o(e){return"string"===typeof e}function a(e){return"object"===typeof e&&null!==e&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function s(e){return"number"===typeof e&&!isNaN(e)}function u(e){return!0===e||!1===e}function l(e){return"undefined"===typeof e}function c(e){return l(e)||null===e}function d(e,t){if(!e)throw new Error(t?"Unexpected type, expected '".concat(t,"'"):"Unexpected type")}function h(e){if(c(e))throw new Error("Assertion Failed: argument is undefined or null");return e}function f(e){return"function"===typeof e}function p(e,t){for(var n=Math.min(e.length,t.length),i=0;i<n;i++)v(e[i],t[i])}function v(e,t){if(o(t)){if(typeof e!==t)throw new Error("argument does not match constraint: typeof ".concat(t))}else if(f(t)){try{if(e instanceof t)return}catch(n){}if(!c(e)&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function g(e){var t,n=[],r=(0,i.Z)(function(e){for(var t=[],n=Object.getPrototypeOf(e);Object.prototype!==n;)t=t.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return t}(e));try{for(r.s();!(t=r.n()).done;){var o=t.value;"function"===typeof e[o]&&n.push(o)}}catch(a){r.e(a)}finally{r.f()}return n}function m(e,t){var n,r=function(e){return function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},o={},a=(0,i.Z)(e);try{for(a.s();!(n=a.n()).done;){var s=n.value;o[s]=r(s)}}catch(u){a.e(u)}finally{a.f()}return o}function _(e){return null===e?void 0:e}},38820:function(e,t,n){"use strict";function i(e){return e<0?0:e>255?255:0|e}function r(e){return e<0?0:e>4294967295?4294967295:0|e}n.d(t,{A:function(){return r},K:function(){return i}})},67775:function(e,t,n){"use strict";n.d(t,{o:function(){return m},q:function(){return k}});var i,r=n(4942),o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(30487),c=n(36912),d=/^\w[\w\d+.-]*$/,h=/^\//,f=/^\/\//;var p="",v="/",g=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,m=function(){function e(t,n,i,r,o){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5];(0,s.Z)(this,e),"object"===typeof t?(this.scheme=t.scheme||p,this.authority=t.authority||p,this.path=t.path||p,this.query=t.query||p,this.fragment=t.fragment||p):(this.scheme=function(e,t){return e||t?e:"file"}(t,a),this.authority=n||p,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==v&&(t=v+t):t=v}return t}(this.scheme,i||p),this.query=r||p,this.fragment=o||p,function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'.concat(e.authority,'", path: "').concat(e.path,'", query: "').concat(e.query,'", fragment: "').concat(e.fragment,'"}'));if(e.scheme&&!d.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!h.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}(this,a))}return(0,u.Z)(e,[{key:"fsPath",get:function(){return k(this,!1)}},{key:"with",value:function(e){if(!e)return this;var t=e.scheme,n=e.authority,i=e.path,r=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=p),void 0===n?n=this.authority:null===n&&(n=p),void 0===i?i=this.path:null===i&&(i=p),void 0===r?r=this.query:null===r&&(r=p),void 0===o?o=this.fragment:null===o&&(o=p),t===this.scheme&&n===this.authority&&i===this.path&&r===this.query&&o===this.fragment?this:new y(t,n,i,r,o)}},{key:"toString",value:function(){return S(this,arguments.length>0&&void 0!==arguments[0]&&arguments[0])}},{key:"toJSON",value:function(){return this}}],[{key:"isUri",value:function(t){return t instanceof e||!!t&&("string"===typeof t.authority&&"string"===typeof t.fragment&&"string"===typeof t.path&&"string"===typeof t.query&&"string"===typeof t.scheme&&"string"===typeof t.fsPath&&"function"===typeof t.with&&"function"===typeof t.toString)}},{key:"parse",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=g.exec(e);return n?new y(n[2]||p,E(n[4]||p),E(n[5]||p),E(n[7]||p),E(n[9]||p),t):new y(p,p,p,p,p)}},{key:"file",value:function(e){var t=p;if(l.ED&&(e=e.replace(/\\/g,v)),e[0]===v&&e[1]===v){var n=e.indexOf(v,2);-1===n?(t=e.substring(2),e=v):(t=e.substring(2,n),e=e.substring(n)||v)}return new y("file",t,e,p,p)}},{key:"from",value:function(e){return new y(e.scheme,e.authority,e.path,e.query,e.fragment)}},{key:"joinPath",value:function(t){if(!t.path)throw new Error("[UriError]: cannot call joinPath on URI without path");for(var n,i,r,o=arguments.length,a=new Array(o>1?o-1:0),s=1;s<o;s++)a[s-1]=arguments[s];l.ED&&"file"===t.scheme?n=e.file((i=c.Ku).join.apply(i,[k(t,!0)].concat(a))).path:n=(r=c.KR).join.apply(r,[t.path].concat(a));return t.with({path:n})}},{key:"revive",value:function(t){if(t){if(t instanceof e)return t;var n=new y(t);return n._formatted=t.external,n._fsPath=t._sep===_?t.fsPath:null,n}return t}}]),e}(),_=l.ED?1:void 0,y=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,s.Z)(this,n),(e=t.apply(this,arguments))._formatted=null,e._fsPath=null,e}return(0,u.Z)(n,[{key:"fsPath",get:function(){return this._fsPath||(this._fsPath=k(this,!1)),this._fsPath}},{key:"toString",value:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]?S(this,!0):(this._formatted||(this._formatted=S(this,!1)),this._formatted)}},{key:"toJSON",value:function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=_),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}]),n}(m),b=(i={},(0,r.Z)(i,58,"%3A"),(0,r.Z)(i,47,"%2F"),(0,r.Z)(i,63,"%3F"),(0,r.Z)(i,35,"%23"),(0,r.Z)(i,91,"%5B"),(0,r.Z)(i,93,"%5D"),(0,r.Z)(i,64,"%40"),(0,r.Z)(i,33,"%21"),(0,r.Z)(i,36,"%24"),(0,r.Z)(i,38,"%26"),(0,r.Z)(i,39,"%27"),(0,r.Z)(i,40,"%28"),(0,r.Z)(i,41,"%29"),(0,r.Z)(i,42,"%2A"),(0,r.Z)(i,43,"%2B"),(0,r.Z)(i,44,"%2C"),(0,r.Z)(i,59,"%3B"),(0,r.Z)(i,61,"%3D"),(0,r.Z)(i,32,"%20"),i);function w(e,t){for(var n=void 0,i=-1,r=0;r<e.length;r++){var o=e.charCodeAt(r);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),void 0!==n&&(n+=e.charAt(r));else{void 0===n&&(n=e.substr(0,r));var a=b[o];void 0!==a?(-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),n+=a):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function C(e){for(var t=void 0,n=0;n<e.length;n++){var i=e.charCodeAt(n);35===i||63===i?(void 0===t&&(t=e.substr(0,n)),t+=b[i]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function k(e,t){var n;return n=e.authority&&e.path.length>1&&"file"===e.scheme?"//".concat(e.authority).concat(e.path):47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?t?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,l.ED&&(n=n.replace(/\//g,"\\")),n}function S(e,t){var n=t?C:w,i="",r=e.scheme,o=e.authority,a=e.path,s=e.query,u=e.fragment;if(r&&(i+=r,i+=":"),(o||"file"===r)&&(i+=v,i+=v),o){var l=o.indexOf("@");if(-1!==l){var c=o.substr(0,l);o=o.substr(l+1),-1===(l=c.indexOf(":"))?i+=n(c,!1):(i+=n(c.substr(0,l),!1),i+=":",i+=n(c.substr(l+1),!1)),i+="@"}-1===(l=(o=o.toLowerCase()).indexOf(":"))?i+=n(o,!1):(i+=n(o.substr(0,l),!1),i+=o.substr(l))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2)){var d=a.charCodeAt(1);d>=65&&d<=90&&(a="/".concat(String.fromCharCode(d+32),":").concat(a.substr(3)))}else if(a.length>=2&&58===a.charCodeAt(1)){var h=a.charCodeAt(0);h>=65&&h<=90&&(a="".concat(String.fromCharCode(h+32),":").concat(a.substr(2)))}i+=n(a,!0)}return s&&(i+="?",i+=n(s,!1)),u&&(i+="#",i+=t?u:w(u,!1)),i}function x(e){try{return decodeURIComponent(e)}catch(t){return e.length>3?e.substr(0,3)+x(e.substr(3)):e}}var L=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(e){return e.match(L)?e.replace(L,(function(e){return x(e)})):e}},42659:function(e,t,n){"use strict";n.d(t,{Jq:function(){return i},X5:function(){return o},jG:function(){return r}});var i,r,o={ctrlCmd:!1,alt:!1};!function(e){e[e.Blur=1]="Blur",e[e.Gesture=2]="Gesture",e[e.Other=3]="Other"}(i||(i={})),function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.SECOND=2]="SECOND",e[e.LAST=3]="LAST"}(r||(r={}))},37456:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages}});var i=n(14717)},47014:function(e,t,n){"use strict";n.d(t,{V:function(){return k},P:function(){return w}});var i=n(37762),r=n(11752),o=n(61120),a=n(60136),s=n(29388),u=n(15671),l=n(43144),c=n(84539),d=n(11732),h=n(81626),f=n(30487),p=function(){function e(t,n){(0,u.Z)(this,e),this.chr=t,this.type=n,this.width=0}return(0,l.Z)(e,[{key:"fulfill",value:function(e){this.width=e}}]),e}(),v=function(){function e(t,n){(0,u.Z)(this,e),this._bareFontInfo=t,this._requests=n,this._container=null,this._testElements=null}return(0,l.Z)(e,[{key:"read",value:function(){this._createDomElements(),document.body.appendChild(this._container),this._readFromDomElements(),document.body.removeChild(this._container),this._container=null,this._testElements=null}},{key:"_createDomElements",value:function(){var t=document.createElement("div");t.style.position="absolute",t.style.top="-50000px",t.style.width="50000px";var n=document.createElement("div");n.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),n.style.fontWeight=this._bareFontInfo.fontWeight,n.style.fontSize=this._bareFontInfo.fontSize+"px",n.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,n.style.lineHeight=this._bareFontInfo.lineHeight+"px",n.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",t.appendChild(n);var r=document.createElement("div");r.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),r.style.fontWeight="bold",r.style.fontSize=this._bareFontInfo.fontSize+"px",r.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,r.style.lineHeight=this._bareFontInfo.lineHeight+"px",r.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",t.appendChild(r);var o=document.createElement("div");o.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),o.style.fontWeight=this._bareFontInfo.fontWeight,o.style.fontSize=this._bareFontInfo.fontSize+"px",o.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,o.style.lineHeight=this._bareFontInfo.lineHeight+"px",o.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",o.style.fontStyle="italic",t.appendChild(o);var a,s=[],u=(0,i.Z)(this._requests);try{for(u.s();!(a=u.n()).done;){var l=a.value,c=void 0;0===l.type&&(c=n),2===l.type&&(c=r),1===l.type&&(c=o),c.appendChild(document.createElement("br"));var d=document.createElement("span");e._render(d,l),c.appendChild(d),s.push(d)}}catch(h){u.e(h)}finally{u.f()}this._container=t,this._testElements=s}},{key:"_readFromDomElements",value:function(){for(var e=0,t=this._requests.length;e<t;e++){var n=this._requests[e],i=this._testElements[e];n.fulfill(i.offsetWidth/256)}}}],[{key:"_render",value:function(e,t){if(" "===t.chr){for(var n="\xa0",i=0;i<8;i++)n+=n;e.innerText=n}else{for(var r=t.chr,o=0;o<8;o++)r+=r;e.textContent=r}}}]),e}();var g=n(75949),m=n(32995),_=n(76556),y=n(28702),b=function(){function e(){(0,u.Z)(this,e),this._keys=Object.create(null),this._values=Object.create(null)}return(0,l.Z)(e,[{key:"has",value:function(e){var t=e.getId();return!!this._values[t]}},{key:"get",value:function(e){var t=e.getId();return this._values[t]}},{key:"put",value:function(e,t){var n=e.getId();this._keys[n]=e,this._values[n]=t}},{key:"remove",value:function(e){var t=e.getId();delete this._keys[t],delete this._values[t]}},{key:"getValues",value:function(){var e=this;return Object.keys(this._keys).map((function(t){return e._values[t]}))}}]),e}();function w(){C.INSTANCE.clearCache()}var C=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,u.Z)(this,n),(e=t.call(this))._onDidChange=e._register(new d.Q5),e.onDidChange=e._onDidChange.event,e._cache=new b,e._evictUntrustedReadingsTimeout=-1,e}return(0,l.Z)(n,[{key:"dispose",value:function(){-1!==this._evictUntrustedReadingsTimeout&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),(0,r.Z)((0,o.Z)(n.prototype),"dispose",this).call(this)}},{key:"clearCache",value:function(){this._cache=new b,this._onDidChange.fire()}},{key:"_writeToCache",value:function(e,t){var n=this;this._cache.put(e,t),t.isTrusted||-1!==this._evictUntrustedReadingsTimeout||(this._evictUntrustedReadingsTimeout=setTimeout((function(){n._evictUntrustedReadingsTimeout=-1,n._evictUntrustedReadings()}),5e3))}},{key:"_evictUntrustedReadings",value:function(){var e,t=this._cache.getValues(),n=!1,r=(0,i.Z)(t);try{for(r.s();!(e=r.n()).done;){var o=e.value;o.isTrusted||(n=!0,this._cache.remove(o))}}catch(a){r.e(a)}finally{r.f()}n&&this._onDidChange.fire()}},{key:"readConfiguration",value:function(e){if(!this._cache.has(e)){var t=n._actualReadConfiguration(e);(t.typicalHalfwidthCharacterWidth<=2||t.typicalFullwidthCharacterWidth<=2||t.spaceWidth<=2||t.maxDigitWidth<=2)&&(t=new y.pR({zoomLevel:c.px(),pixelRatio:c.mX(),fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:t.isMonospace,typicalHalfwidthCharacterWidth:Math.max(t.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(t.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:t.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(t.spaceWidth,5),middotWidth:Math.max(t.middotWidth,5),wsmiddotWidth:Math.max(t.wsmiddotWidth,5),maxDigitWidth:Math.max(t.maxDigitWidth,5)},!1)),this._writeToCache(e,t)}return this._cache.get(e)}}],[{key:"createRequest",value:function(e,t,n,i){var r=new p(e,t);return n.push(r),i&&i.push(r),r}},{key:"_actualReadConfiguration",value:function(e){var t=[],n=[],i=this.createRequest("n",0,t,n),r=this.createRequest("\uff4d",0,t,null),o=this.createRequest(" ",0,t,n),a=this.createRequest("0",0,t,n),s=this.createRequest("1",0,t,n),u=this.createRequest("2",0,t,n),l=this.createRequest("3",0,t,n),d=this.createRequest("4",0,t,n),h=this.createRequest("5",0,t,n),f=this.createRequest("6",0,t,n),p=this.createRequest("7",0,t,n),g=this.createRequest("8",0,t,n),m=this.createRequest("9",0,t,n),b=this.createRequest("\u2192",0,t,n),w=this.createRequest("\uffeb",0,t,null),C=this.createRequest("\xb7",0,t,n),k=this.createRequest(String.fromCharCode(11825),0,t,null);this.createRequest("|",0,t,n),this.createRequest("/",0,t,n),this.createRequest("-",0,t,n),this.createRequest("_",0,t,n),this.createRequest("i",0,t,n),this.createRequest("l",0,t,n),this.createRequest("m",0,t,n),this.createRequest("|",1,t,n),this.createRequest("_",1,t,n),this.createRequest("i",1,t,n),this.createRequest("l",1,t,n),this.createRequest("m",1,t,n),this.createRequest("n",1,t,n),this.createRequest("|",2,t,n),this.createRequest("_",2,t,n),this.createRequest("i",2,t,n),this.createRequest("l",2,t,n),this.createRequest("m",2,t,n),this.createRequest("n",2,t,n),function(e,t){new v(e,t).read()}(e,t);for(var S=Math.max(a.width,s.width,u.width,l.width,d.width,h.width,f.width,p.width,g.width,m.width),x=e.fontFeatureSettings===_.n0.OFF,L=n[0].width,E=1,N=n.length;x&&E<N;E++){var D=L-n[E].width;if(D<-.001||D>.001){x=!1;break}}var M=!0;x&&w.width!==L&&(M=!1),w.width>b.width&&(M=!1);var T=c.WP()>2e3;return new y.pR({zoomLevel:c.px(),pixelRatio:c.mX(),fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,fontFeatureSettings:e.fontFeatureSettings,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:x,typicalHalfwidthCharacterWidth:i.width,typicalFullwidthCharacterWidth:r.width,canUseHalfwidthRightwardsArrow:M,spaceWidth:o.width,middotWidth:C.width,wsmiddotWidth:k.width,maxDigitWidth:S},T)}}]),n}(h.JT);C.INSTANCE=new C;var k=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,i){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3?arguments[3]:void 0;return(0,u.Z)(this,n),(r=t.call(this,e,i)).accessibilityService=a,r._elementSizeObserver=r._register(new g.I(o,i.dimension,(function(){return r._recomputeOptions()}))),r._register(C.INSTANCE.onDidChange((function(){return r._recomputeOptions()}))),r._validatedOptions.get(10)&&r._elementSizeObserver.startObserving(),r._register(c.fX((function(e){return r._recomputeOptions()}))),r._register(r.accessibilityService.onDidChangeScreenReaderOptimized((function(){return r._recomputeOptions()}))),r._recomputeOptions(),r}return(0,l.Z)(n,[{key:"observeReferenceElement",value:function(e){this._elementSizeObserver.observe(e)}},{key:"updatePixelRatio",value:function(){this._recomputeOptions()}},{key:"_getEnvConfiguration",value:function(){return{extraEditorClassName:n._getExtraEditorClassName(),outerWidth:this._elementSizeObserver.getWidth(),outerHeight:this._elementSizeObserver.getHeight(),emptySelectionClipboard:c.Pf||c.vU,pixelRatio:c.mX(),zoomLevel:c.px(),accessibilitySupport:this.accessibilityService.isScreenReaderOptimized()?2:this.accessibilityService.getAccessibilitySupport()}}},{key:"readConfiguration",value:function(e){return C.INSTANCE.readConfiguration(e)}}],[{key:"applyFontInfoSlow",value:function(e,t){e.style.fontFamily=t.getMassagedFontFamily(),e.style.fontWeight=t.fontWeight,e.style.fontSize=t.fontSize+"px",e.style.fontFeatureSettings=t.fontFeatureSettings,e.style.lineHeight=t.lineHeight+"px",e.style.letterSpacing=t.letterSpacing+"px"}},{key:"applyFontInfo",value:function(e,t){e.setFontFamily(t.getMassagedFontFamily()),e.setFontWeight(t.fontWeight),e.setFontSize(t.fontSize),e.setFontFeatureSettings(t.fontFeatureSettings),e.setLineHeight(t.lineHeight),e.setLetterSpacing(t.letterSpacing)}},{key:"_getExtraEditorClassName",value:function(){var e="";return c.G6||c.MG||(e+="no-user-select "),c.G6&&(e+="no-minimap-shadow "),f.dz&&(e+="mac "),e}}]),n}(m.fv)},75949:function(e,t,n){"use strict";n.d(t,{I:function(){return l}});var i=n(15671),r=n(43144),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).referenceDomElement=e,a.changeCallback=o,a.width=-1,a.height=-1,a.resizeObserver=null,a.measureReferenceDomElementToken=-1,a.measureReferenceDomElement(!1,r),a}return(0,r.Z)(n,[{key:"dispose",value:function(){this.stopObserving(),(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this)}},{key:"getWidth",value:function(){return this.width}},{key:"getHeight",value:function(){return this.height}},{key:"startObserving",value:function(){var e=this;"undefined"!==typeof ResizeObserver?!this.resizeObserver&&this.referenceDomElement&&(this.resizeObserver=new ResizeObserver((function(t){t&&t[0]&&t[0].contentRect?e.observe({width:t[0].contentRect.width,height:t[0].contentRect.height}):e.observe()})),this.resizeObserver.observe(this.referenceDomElement)):-1===this.measureReferenceDomElementToken&&(this.measureReferenceDomElementToken=setInterval((function(){return e.observe()}),100))}},{key:"stopObserving",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),-1!==this.measureReferenceDomElementToken&&(clearInterval(this.measureReferenceDomElementToken),this.measureReferenceDomElementToken=-1)}},{key:"observe",value:function(e){this.measureReferenceDomElement(!0,e)}},{key:"measureReferenceDomElement",value:function(e,t){var n=0,i=0;t?(n=t.width,i=t.height):this.referenceDomElement&&(n=this.referenceDomElement.clientWidth,i=this.referenceDomElement.clientHeight),n=Math.max(5,n),i=Math.max(5,i),this.width===n&&this.height===i||(this.width=n,this.height=i,e&&this.changeCallback())}}]),n}(n(81626).JT)},8518:function(e,t,n){"use strict";n.d(t,{wk:function(){return M},Ox:function(){return N}});var i,r,o=n(29439),a=n(15671),s=n(43144),u=n(60136),l=n(29388),c=n(56345),d=n(84539),h=n(25941),f=n(52180),p=n(33399),v=n(8295),g=n(16274),m=n(67297),_=n(67033),y=function(){function e(){(0,a.Z)(this,e)}return(0,s.Z)(e,null,[{key:"columnSelect",value:function(e,t,n,i,r,o){for(var a=Math.abs(r-n)+1,s=n>r,u=i>o,l=i<o,c=[],d=0;d<a;d++){var h=n+(s?-d:d),f=g.io.columnFromVisibleColumn2(e,t,h,i),p=g.io.columnFromVisibleColumn2(e,t,h,o),v=g.io.visibleColumnFromColumn2(e,t,new m.L(h,f)),y=g.io.visibleColumnFromColumn2(e,t,new m.L(h,p));if(l){if(v>o)continue;if(y<i)continue}if(u){if(y>i)continue;if(v<o)continue}c.push(new g.rS(new _.e(h,f,h,f),0,new m.L(h,p),0))}if(0===c.length)for(var b=0;b<a;b++){var w=n+(s?-b:b),C=t.getLineMaxColumn(w);c.push(new g.rS(new _.e(w,C,w,C),0,new m.L(w,C),0))}return{viewStates:c,reversed:s,fromLineNumber:n,fromVisualColumn:i,toLineNumber:r,toVisualColumn:o}}},{key:"columnSelectLeft",value:function(t,n,i){var r=i.toViewVisualColumn;return r>0&&r--,e.columnSelect(t,n,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,r)}},{key:"columnSelectRight",value:function(e,t,n){for(var i=0,r=Math.min(n.fromViewLineNumber,n.toViewLineNumber),o=Math.max(n.fromViewLineNumber,n.toViewLineNumber),a=r;a<=o;a++){var s=t.getLineMaxColumn(a),u=g.io.visibleColumnFromColumn2(e,t,new m.L(a,s));i=Math.max(i,u)}var l=n.toViewVisualColumn;return l<i&&l++,this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,n.toViewLineNumber,l)}},{key:"columnSelectUp",value:function(e,t,n,i){var r=i?e.pageSize:1,o=Math.max(1,n.toViewLineNumber-r);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,o,n.toViewVisualColumn)}},{key:"columnSelectDown",value:function(e,t,n,i){var r=i?e.pageSize:1,o=Math.min(t.getLineCount(),n.toViewLineNumber+r);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,o,n.toViewVisualColumn)}}]),e}(),b=n(39765),w=n(55561),C=n(22268),k=n(21204),S=n(18948),x=n(51519),L=0,E=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.apply(this,arguments)}return(0,s.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=t._getViewModel();i&&this.runCoreEditorCommand(i,n||{})}}]),n}(p._l);!function(e){e.description={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t",constraint:function(e){if(!h.Kn(e))return!1;var t=e;return!!h.HD(t.to)&&(!(!h.o8(t.by)&&!h.HD(t.by))&&(!(!h.o8(t.value)&&!h.hj(t.value))&&!(!h.o8(t.revealCursor)&&!h.jn(t.revealCursor))))},schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["up","down"]},by:{type:"string",enum:["line","wrappedLine","page","halfPage"]},value:{type:"number",default:1},revealCursor:{type:"boolean"}}}}]},e.RawDirection={Up:"up",Down:"down"},e.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage"},e.parse=function(t){var n,i;switch(t.to){case e.RawDirection.Up:n=1;break;case e.RawDirection.Down:n=2;break;default:return null}switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Page:i=3;break;case e.RawUnit.HalfPage:i=4;break;default:i=2}return{direction:n,unit:i,value:Math.floor(t.value||1),revealCursor:!!t.revealCursor,select:!!t.select}}}(i||(i={})),function(e){e.description={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t```\n\t\t\t\t",constraint:function(e){if(!h.Kn(e))return!1;var t=e;return!(!h.hj(t.lineNumber)&&!h.HD(t.lineNumber))&&!(!h.o8(t.at)&&!h.HD(t.at))},schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},e.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}}(r||(r={}));var N,D=function(){function e(t){var n=this;(0,a.Z)(this,e),t.addImplementation(1e4,"code-editor",(function(e,t){var i=e.get(v.$).getFocusedCodeEditor();return!(!i||!i.hasTextFocus())&&n._runEditorCommand(e,i,t)})),t.addImplementation(1e3,"generic-dom-input-textarea",(function(e,t){var i=document.activeElement;return!!(i&&["input","textarea"].indexOf(i.tagName.toLowerCase())>=0)&&(n.runDOMCommand(),!0)})),t.addImplementation(0,"generic-dom",(function(e,t){var i=e.get(v.$).getActiveCodeEditor();return!!i&&(i.focus(),n._runEditorCommand(e,i,t))}))}return(0,s.Z)(e,[{key:"_runEditorCommand",value:function(e,t,n){var i=this.runEditorCommand(e,t,n);return i||!0}}]),e}();!function(e){var t=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[w.P.moveTo(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)]),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.MoveTo=(0,p.fK)(new t({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=(0,p.fK)(new t({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));var n=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.apply(this,arguments)}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement();var n=this._getColumnSelectResult(e,e.getPrimaryCursorState(),e.getCursorColumnSelectData(),t);e.setCursorStates(t.source,3,n.viewStates.map((function(e){return g.Vi.fromViewState(e)}))),e.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:n.fromLineNumber,fromViewVisualColumn:n.fromVisualColumn,toViewLineNumber:n.toLineNumber,toViewVisualColumn:n.toVisualColumn}),n.reversed?e.revealTopMostCursor(t.source):e.revealBottomMostCursor(t.source)}}]),n}(E);e.ColumnSelect=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"columnSelect",precondition:void 0})}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){var r=e.model.validatePosition(i.position),o=e.coordinatesConverter.validateViewPosition(new m.L(i.viewPosition.lineNumber,i.viewPosition.column),r),a=i.doColumnSelect?n.fromViewLineNumber:o.lineNumber,s=i.doColumnSelect?n.fromViewVisualColumn:i.mouseColumn-1;return y.columnSelect(e.cursorConfig,e,a,s,o.lineNumber,i.mouseColumn-1)}}]),n}(n))),e.CursorColumnSelectLeft=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3599,linux:{primary:0}}})}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){return y.columnSelectLeft(e.cursorConfig,e,n)}}]),n}(n))),e.CursorColumnSelectRight=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3601,linux:{primary:0}}})}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){return y.columnSelectRight(e.cursorConfig,e,n)}}]),n}(n)));var o=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._isPaged=e.isPaged,i}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){return y.columnSelectUp(e.cursorConfig,e,n,this._isPaged)}}]),n}(n);e.CursorColumnSelectUp=(0,p.fK)(new o({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=(0,p.fK)(new o({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3595,linux:{primary:0}}}));var h=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._isPaged=e.isPaged,i}return(0,s.Z)(n,[{key:"_getColumnSelectResult",value:function(e,t,n,i){return y.columnSelectDown(e.cursorConfig,e,n,this._isPaged)}}]),n}(n);e.CursorColumnSelectDown=(0,p.fK)(new h({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3602,linux:{primary:0}}})),e.CursorColumnSelectPageDown=(0,p.fK)(new h({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3596,linux:{primary:0}}}));var v=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"cursorMove",precondition:void 0,description:w.N.description})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=w.N.parse(t);n&&this._runCursorMove(e,t.source,n)}},{key:"_runCursorMove",value:function(e,t,i){e.model.pushStackElement(),e.setCursorStates(t,3,n._move(e,e.getCursorStates(),i)),e.revealPrimaryCursor(t,!0)}}],[{key:"_move",value:function(e,t,n){var i=n.select,r=n.value;switch(n.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return w.P.simpleMove(e,t,n.direction,i,r,n.unit);case 11:case 13:case 12:case 14:return w.P.viewportMove(e,t,n.direction,i,r);default:return null}}}]),n}(E);e.CursorMoveImpl=v,e.CursorMove=(0,p.fK)(new v);var b=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._staticArgs=e.args,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=this._staticArgs;-1===this._staticArgs.value&&(n={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:e.cursorConfig.pageSize}),e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.simpleMove(e,e.getCursorStates(),n.direction,n.select,n.value,n.unit)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorLeft=(0,p.fK)(new b({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=(0,p.fK)(new b({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1039}})),e.CursorRight=(0,p.fK)(new b({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=(0,p.fK)(new b({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1041}})),e.CursorUp=(0,p.fK)(new b({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=(0,p.fK)(new b({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=(0,p.fK)(new b({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:11}})),e.CursorPageUpSelect=(0,p.fK)(new b({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1035}})),e.CursorDown=(0,p.fK)(new b({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=(0,p.fK)(new b({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=(0,p.fK)(new b({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:12}})),e.CursorPageDownSelect=(0,p.fK)(new b({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1036}})),e.CreateCursor=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"createCursor",precondition:void 0})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n;n=t.wholeLine?w.P.line(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition):w.P.moveTo(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition);var i=e.getCursorStates();if(i.length>1)for(var r=n.modelState?n.modelState.position:null,o=n.viewState?n.viewState.position:null,a=0,s=i.length;a<s;a++){var u=i[a];if((!r||u.modelState.selection.containsPosition(r))&&(!o||u.viewState.selection.containsPosition(o)))return i.splice(a,1),e.model.pushStackElement(),void e.setCursorStates(t.source,3,i)}i.push(n),e.model.pushStackElement(),e.setCursorStates(t.source,3,i)}}]),n}(E))),e.LastCursorMoveToSelect=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"_lastCursorMoveToSelect",precondition:void 0})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=e.getLastAddedCursorIndex(),i=e.getCursorStates(),r=i.slice(0);r[n]=w.P.moveTo(e,i[n],!0,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,r)}}]),n}(E)));var C=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.moveToBeginningOfLine(e,e.getCursorStates(),this._inSelectionMode)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorHome=(0,p.fK)(new C({inSelectionMode:!1,id:"cursorHome",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),e.CursorHomeSelect=(0,p.fK)(new C({inSelectionMode:!0,id:"cursorHomeSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));var S=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e.getCursorStates())),e.revealPrimaryCursor(t.source,!0)}},{key:"_exec",value:function(e){for(var t=[],n=0,i=e.length;n<i;n++){var r=e[n],o=r.modelState.position.lineNumber;t[n]=g.Vi.fromModelState(r.modelState.move(this._inSelectionMode,o,1,0))}return t}}]),n}(E);e.CursorLineStart=(0,p.fK)(new S({inSelectionMode:!1,id:"cursorLineStart",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:287}}})),e.CursorLineStartSelect=(0,p.fK)(new S({inSelectionMode:!0,id:"cursorLineStartSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:1311}}}));var x=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.moveToEndOfLine(e,e.getCursorStates(),this._inSelectionMode,t.sticky||!1)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorEnd=(0,p.fK)(new x({inSelectionMode:!1,id:"cursorEnd",precondition:void 0,kbOpts:{args:{sticky:!1},weight:L,kbExpr:k.u.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},description:{description:"Go to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:c.N("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}})),e.CursorEndSelect=(0,p.fK)(new x({inSelectionMode:!0,id:"cursorEndSelect",precondition:void 0,kbOpts:{args:{sticky:!1},weight:L,kbExpr:k.u.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},description:{description:"Select to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:c.N("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}}));var N=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e,e.getCursorStates())),e.revealPrimaryCursor(t.source,!0)}},{key:"_exec",value:function(e,t){for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i],a=o.modelState.position.lineNumber,s=e.model.getLineMaxColumn(a);n[i]=g.Vi.fromModelState(o.modelState.move(this._inSelectionMode,a,s,0))}return n}}]),n}(E);e.CursorLineEnd=(0,p.fK)(new N({inSelectionMode:!1,id:"cursorLineEnd",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:291}}})),e.CursorLineEndSelect=(0,p.fK)(new N({inSelectionMode:!0,id:"cursorLineEndSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:1315}}}));var M=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.moveToBeginningOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorTop=(0,p.fK)(new M({inSelectionMode:!1,id:"cursorTop",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2062,mac:{primary:2064}}})),e.CursorTopSelect=(0,p.fK)(new M({inSelectionMode:!0,id:"cursorTopSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3086,mac:{primary:3088}}}));var T=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.moveToEndOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.CursorBottom=(0,p.fK)(new T({inSelectionMode:!1,id:"cursorBottom",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2061,mac:{primary:2066}}})),e.CursorBottomSelect=(0,p.fK)(new T({inSelectionMode:!0,id:"cursorBottomSelect",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:3085,mac:{primary:3090}}}));var O=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"editorScroll",precondition:void 0,description:i.description})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=i.parse(t);n&&this._runEditorScroll(e,t.source,n)}},{key:"_runEditorScroll",value:function(e,t,n){var i=this._computeDesiredScrollTop(e,n);if(n.revealCursor){var r=e.getCompletelyVisibleViewRangeAtScrollTop(i);e.setCursorStates(t,3,[w.P.findPositionInViewportIfOutside(e,e.getPrimaryCursorState(),r,n.select)])}e.setScrollTop(i,0)}},{key:"_computeDesiredScrollTop",value:function(e,t){if(1===t.unit){var n,i=e.getCompletelyVisibleViewRange(),r=e.coordinatesConverter.convertViewRangeToModelRange(i);n=1===t.direction?Math.max(1,r.startLineNumber-t.value):Math.min(e.model.getLineCount(),r.startLineNumber+t.value);var o=e.coordinatesConverter.convertModelPositionToViewPosition(new m.L(n,1));return e.getVerticalOffsetForLineNumber(o.lineNumber)}var a;a=3===t.unit?e.cursorConfig.pageSize*t.value:4===t.unit?Math.round(e.cursorConfig.pageSize/2)*t.value:t.value;var s=(1===t.direction?-1:1)*a;return e.getScrollTop()+s*e.cursorConfig.lineHeight}}]),n}(E);e.EditorScrollImpl=O,e.EditorScroll=(0,p.fK)(new O),e.ScrollLineUp=(0,p.fK)(new(function(t){(0,u.Z)(i,t);var n=(0,l.Z)(i);function i(){return(0,a.Z)(this,i),n.call(this,{id:"scrollLineUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2064,mac:{primary:267}}})}return(0,s.Z)(i,[{key:"runCoreEditorCommand",value:function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:1,unit:2,value:1,revealCursor:!1,select:!1})}}]),i}(E))),e.ScrollPageUp=(0,p.fK)(new(function(t){(0,u.Z)(i,t);var n=(0,l.Z)(i);function i(){return(0,a.Z)(this,i),n.call(this,{id:"scrollPageUp",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})}return(0,s.Z)(i,[{key:"runCoreEditorCommand",value:function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:1,unit:3,value:1,revealCursor:!1,select:!1})}}]),i}(E))),e.ScrollLineDown=(0,p.fK)(new(function(t){(0,u.Z)(i,t);var n=(0,l.Z)(i);function i(){return(0,a.Z)(this,i),n.call(this,{id:"scrollLineDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2066,mac:{primary:268}}})}return(0,s.Z)(i,[{key:"runCoreEditorCommand",value:function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:2,unit:2,value:1,revealCursor:!1,select:!1})}}]),i}(E))),e.ScrollPageDown=(0,p.fK)(new(function(t){(0,u.Z)(i,t);var n=(0,l.Z)(i);function i(){return(0,a.Z)(this,i),n.call(this,{id:"scrollPageDown",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})}return(0,s.Z)(i,[{key:"runCoreEditorCommand",value:function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:2,unit:3,value:1,revealCursor:!1,select:!1})}}]),i}(E)));var I=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[w.P.word(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position)]),e.revealPrimaryCursor(t.source,!0)}}]),n}(E);e.WordSelect=(0,p.fK)(new I({inSelectionMode:!1,id:"_wordSelect",precondition:void 0})),e.WordSelectDrag=(0,p.fK)(new I({inSelectionMode:!0,id:"_wordSelectDrag",precondition:void 0})),e.LastCursorWordSelect=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"lastCursorWordSelect",precondition:void 0})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=e.getLastAddedCursorIndex(),i=e.getCursorStates(),r=i.slice(0),o=i[n];r[n]=w.P.word(e,o,o.modelState.hasSelection(),t.position),e.model.pushStackElement(),e.setCursorStates(t.source,3,r)}}]),n}(E)));var A=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[w.P.line(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)]),e.revealPrimaryCursor(t.source,!1)}}]),n}(E);e.LineSelect=(0,p.fK)(new A({inSelectionMode:!1,id:"_lineSelect",precondition:void 0})),e.LineSelectDrag=(0,p.fK)(new A({inSelectionMode:!0,id:"_lineSelectDrag",precondition:void 0}));var P=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,a.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=e.getLastAddedCursorIndex(),i=e.getCursorStates(),r=i.slice(0);r[n]=w.P.line(e,i[n],this._inSelectionMode,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,r)}}]),n}(E);e.LastCursorLineSelect=(0,p.fK)(new P({inSelectionMode:!1,id:"lastCursorLineSelect",precondition:void 0})),e.LastCursorLineSelectDrag=(0,p.fK)(new P({inSelectionMode:!0,id:"lastCursorLineSelectDrag",precondition:void 0})),e.ExpandLineSelection=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"expandLineSelection",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:2090}})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,w.P.expandLineSelection(e,e.getCursorStates())),e.revealPrimaryCursor(t.source,!0)}}]),n}(E))),e.CancelSelection=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"cancelSelection",precondition:k.u.hasNonEmptySelection,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:9,secondary:[1033]}})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[w.P.cancelSelection(e,e.getPrimaryCursorState())]),e.revealPrimaryCursor(t.source,!0)}}]),n}(E))),e.RemoveSecondaryCursors=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"removeSecondaryCursors",precondition:k.u.hasMultipleSelections,kbOpts:{weight:L+1,kbExpr:k.u.textInputFocus,primary:9,secondary:[1033]}})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[e.getPrimaryCursorState()]),e.revealPrimaryCursor(t.source,!0),(0,f.i7)(c.N("removedCursor","Removed secondary cursors"))}}]),n}(E))),e.RevealLine=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"revealLine",precondition:void 0,description:r.description})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){var n=t,i=n.lineNumber||0,o="number"===typeof i?i+1:parseInt(i)+1;o<1&&(o=1);var a=e.model.getLineCount();o>a&&(o=a);var s=new _.e(o,1,o,e.model.getLineMaxColumn(o)),u=0;if(n.at)switch(n.at){case r.RawAtArgument.Top:u=3;break;case r.RawAtArgument.Center:u=1;break;case r.RawAtArgument.Bottom:u=4}var l=e.coordinatesConverter.convertModelRangeToViewRange(s);e.revealRange(t.source,!1,l,u,0)}}]),n}(E))),e.SelectAll=new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,p.Sq)}return(0,s.Z)(n,[{key:"runDOMCommand",value:function(){d.vU&&(document.activeElement.focus(),document.activeElement.select()),document.execCommand("selectAll")}},{key:"runEditorCommand",value:function(e,t,n){var i=t._getViewModel();i&&this.runCoreEditorCommand(i,n)}},{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates("keyboard",3,[w.P.selectAll(e,e.getPrimaryCursorState())])}}]),n}(D)),e.SetSelection=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"setSelection",precondition:void 0})}return(0,s.Z)(n,[{key:"runCoreEditorCommand",value:function(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[g.Vi.fromModelSelection(t.selection)])}}]),n}(E)))}(N||(N={}));var M,T=S.Ao.and(k.u.textInputFocus,k.u.columnSelection);function O(e,t){x.W.registerKeybindingRule({id:e,primary:t,when:T,weight:L+1})}function I(e){return e.register(),e}O(N.CursorColumnSelectLeft.id,1039),O(N.CursorColumnSelectRight.id,1041),O(N.CursorColumnSelectUp.id,1040),O(N.CursorColumnSelectPageUp.id,1035),O(N.CursorColumnSelectDown.id,1042),O(N.CursorColumnSelectPageDown.id,1036),function(e){var t=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.apply(this,arguments)}return(0,s.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=t._getViewModel();i&&this.runCoreEditingCommand(t,i,n||{})}}]),n}(p._l);e.CoreEditingCommand=t,e.LineBreakInsert=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"lineBreakInsert",precondition:k.u.writable,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:0,mac:{primary:301}}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,C.u.lineBreakInsert(t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection}))))}}]),n}(t))),e.Outdent=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"outdent",precondition:k.u.writable,kbOpts:{weight:L,kbExpr:S.Ao.and(k.u.editorTextFocus,k.u.tabDoesNotMoveFocus),primary:1026}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,C.u.outdent(t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection})))),e.pushUndoStop()}}]),n}(t))),e.Tab=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"tab",precondition:k.u.writable,kbOpts:{weight:L,kbExpr:S.Ao.and(k.u.editorTextFocus,k.u.tabDoesNotMoveFocus),primary:2}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,C.u.tab(t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection})))),e.pushUndoStop()}}]),n}(t))),e.DeleteLeft=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"deleteLeft",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){var i=b.A.deleteLeft(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection})),t.getCursorAutoClosedCharacters()),r=(0,o.Z)(i,2),a=r[0],s=r[1];a&&e.pushUndoStop(),e.executeCommands(this.id,s),t.setPrevEditOperationType(2)}}]),n}(t))),e.DeleteRight=(0,p.fK)(new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,{id:"deleteRight",precondition:void 0,kbOpts:{weight:L,kbExpr:k.u.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}return(0,s.Z)(n,[{key:"runCoreEditingCommand",value:function(e,t,n){var i=b.A.deleteRight(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map((function(e){return e.modelState.selection}))),r=(0,o.Z)(i,2),a=r[0],s=r[1];a&&e.pushUndoStop(),e.executeCommands(this.id,s),t.setPrevEditOperationType(3)}}]),n}(t))),e.Undo=new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,p.n_)}return(0,s.Z)(n,[{key:"runDOMCommand",value:function(){document.execCommand("undo")}},{key:"runEditorCommand",value:function(e,t,n){if(t.hasModel()&&!0!==t.getOption(77))return t.getModel().undo()}}]),n}(D)),e.Redo=new(function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,p.kz)}return(0,s.Z)(n,[{key:"runDOMCommand",value:function(){document.execCommand("redo")}},{key:"runEditorCommand",value:function(e,t,n){if(t.hasModel()&&!0!==t.getOption(77))return t.getModel().redo()}}]),n}(D))}(M||(M={}));var A=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;return(0,a.Z)(this,n),(o=t.call(this,{id:e,precondition:void 0,description:r}))._handlerId=i,o}return(0,s.Z)(n,[{key:"runCommand",value:function(e,t){var n=e.get(v.$).getFocusedCodeEditor();n&&n.trigger("keyboard",this._handlerId,t)}}]),n}(p.mY);function P(e,t){I(new A("default:"+e,e)),I(new A(e,e,t))}P("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),P("replacePreviousChar"),P("compositionType"),P("compositionStart"),P("compositionEnd"),P("paste"),P("cut")},83106:function(e,t,n){"use strict";n.d(t,{Fz:function(){return k},Nl:function(){return C},RA:function(){return w},pd:function(){return i}});var i,r=n(29439),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(15671),c=n(43144),d=n(84539),h=n(84540),f=n(27997),p=n(11732),v=n(81626),g=n(30487),m=n(51747),_=n(90224),y=n(67297),b=n(74964);!function(e){e.Tap="-monaco-textarea-synthetic-tap"}(i||(i={}));var w={forceCopyWithSyntaxHighlighting:!1},C=function(){function e(){(0,l.Z)(this,e),this._lastState=null}return(0,c.Z)(e,[{key:"set",value:function(e,t){this._lastState={lastCopiedValue:e,data:t}}},{key:"get",value:function(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}}]),e}();C.INSTANCE=new C;var k=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,o){var a;(0,l.Z)(this,n),(a=t.call(this)).textArea=o,a._onFocus=a._register(new p.Q5),a.onFocus=a._onFocus.event,a._onBlur=a._register(new p.Q5),a.onBlur=a._onBlur.event,a._onKeyDown=a._register(new p.Q5),a.onKeyDown=a._onKeyDown.event,a._onKeyUp=a._register(new p.Q5),a.onKeyUp=a._onKeyUp.event,a._onCut=a._register(new p.Q5),a.onCut=a._onCut.event,a._onPaste=a._register(new p.Q5),a.onPaste=a._onPaste.event,a._onType=a._register(new p.Q5),a.onType=a._onType.event,a._onCompositionStart=a._register(new p.Q5),a.onCompositionStart=a._onCompositionStart.event,a._onCompositionUpdate=a._register(new p.Q5),a.onCompositionUpdate=a._onCompositionUpdate.event,a._onCompositionEnd=a._register(new p.Q5),a.onCompositionEnd=a._onCompositionEnd.event,a._onSelectionChangeRequest=a._register(new p.Q5),a.onSelectionChangeRequest=a._onSelectionChangeRequest.event,a._host=e,a._textArea=a._register(new x(o)),a._asyncTriggerCut=a._register(new f.pY((function(){return a._onCut.fire()}),0)),a._asyncFocusGainWriteScreenReaderContent=a._register(new f.pY((function(){return a.writeScreenReaderContent("asyncFocusGain")}),0)),a._textAreaState=_.un.EMPTY,a._selectionChangeListener=null,a.writeScreenReaderContent("ctor"),a._hasFocus=!1,a._isDoingComposition=!1,a._nextCommand=0;var s=null;a._register(h.addStandardDisposableListener(o.domNode,"keydown",(function(e){(109===e.keyCode||a._isDoingComposition&&1===e.keyCode)&&e.stopPropagation(),e.equals(9)&&e.preventDefault(),s=e,a._onKeyDown.fire(e)}))),a._register(h.addStandardDisposableListener(o.domNode,"keyup",(function(e){a._onKeyUp.fire(e)}))),a._register(h.addDisposableListener(o.domNode,"compositionstart",(function(e){if(_.al&&console.log("[compositionstart]",e),!a._isDoingComposition){if(a._isDoingComposition=!0,g.dz&&a._textAreaState.selectionStart===a._textAreaState.selectionEnd&&a._textAreaState.selectionStart>0&&a._textAreaState.value.substr(a._textAreaState.selectionStart-1,1)===e.data)if(s&&s.equals(109)&&("ArrowRight"===s.code||"ArrowLeft"===s.code)||d.vU)return _.al&&console.log("[compositionstart] Handling long press case on macOS + arrow key or Firefox",e),a._textAreaState=new _.un(a._textAreaState.value,a._textAreaState.selectionStart-1,a._textAreaState.selectionEnd,a._textAreaState.selectionStartPosition?new y.L(a._textAreaState.selectionStartPosition.lineNumber,a._textAreaState.selectionStartPosition.column-1):null,a._textAreaState.selectionEndPosition),void a._onCompositionStart.fire({revealDeltaColumns:-1});d.Dt?a._onCompositionStart.fire({revealDeltaColumns:-a._textAreaState.selectionStart}):(a._setAndWriteTextAreaState("compositionstart",_.un.EMPTY),a._onCompositionStart.fire({revealDeltaColumns:0}))}})));var u=function(){var e=a._textAreaState,t=_.un.readFromTextArea(a._textArea);return[t,_.un.deduceAndroidCompositionInput(e,t)]},c=function(e){var t=a._textAreaState,n=_.un.selectedText(e);return[n,{text:n.value,replacePrevCharCnt:t.selectionEnd-t.selectionStart,replaceNextCharCnt:0,positionDelta:0}]};return a._register(h.addDisposableListener(o.domNode,"compositionupdate",(function(e){if(_.al&&console.log("[compositionupdate]",e),d.Dt){var t=u(),n=(0,r.Z)(t,2),i=n[0],o=n[1];return a._textAreaState=i,a._onType.fire(o),void a._onCompositionUpdate.fire(e)}var s=c(e.data||""),l=(0,r.Z)(s,2),h=l[0],f=l[1];a._textAreaState=h,a._onType.fire(f),a._onCompositionUpdate.fire(e)}))),a._register(h.addDisposableListener(o.domNode,"compositionend",(function(e){if(_.al&&console.log("[compositionend]",e),a._isDoingComposition){if(a._isDoingComposition=!1,d.Dt){var t=u(),n=(0,r.Z)(t,2),i=n[0],o=n[1];return a._textAreaState=i,a._onType.fire(o),void a._onCompositionEnd.fire()}var s=c(e.data||""),l=(0,r.Z)(s,2),h=l[0],f=l[1];a._textAreaState=h,a._onType.fire(f),(d.i7||d.vU)&&(a._textAreaState=_.un.readFromTextArea(a._textArea)),a._onCompositionEnd.fire()}}))),a._register(h.addDisposableListener(o.domNode,"input",(function(){if(a._textArea.setIgnoreSelectionChangeTime("received input event"),!a._isDoingComposition){var e=function(e){var t=a._textAreaState,n=_.un.readFromTextArea(a._textArea);return[n,_.un.deduceInput(t,n,e)]}(g.dz),t=(0,r.Z)(e,2),n=t[0],i=t[1];0===i.replacePrevCharCnt&&1===i.text.length&&m.ZG(i.text.charCodeAt(0))||(a._textAreaState=n,0===a._nextCommand?""===i.text&&0===i.replacePrevCharCnt||a._onType.fire(i):(""===i.text&&0===i.replacePrevCharCnt||a._firePaste(i.text,null),a._nextCommand=0))}}))),a._register(h.addDisposableListener(o.domNode,"cut",(function(e){a._textArea.setIgnoreSelectionChangeTime("received cut event"),a._ensureClipboardGetsEditorSelection(e),a._asyncTriggerCut.schedule()}))),a._register(h.addDisposableListener(o.domNode,"copy",(function(e){a._ensureClipboardGetsEditorSelection(e)}))),a._register(h.addDisposableListener(o.domNode,"paste",(function(e){if(a._textArea.setIgnoreSelectionChangeTime("received paste event"),S.canUseTextData(e)){var t=S.getTextData(e),n=(0,r.Z)(t,2),i=n[0],o=n[1];""!==i&&a._firePaste(i,o)}else a._textArea.getSelectionStart()!==a._textArea.getSelectionEnd()&&a._setAndWriteTextAreaState("paste",_.un.EMPTY),a._nextCommand=1}))),a._register(h.addDisposableListener(o.domNode,"focus",(function(){var e=a._hasFocus;a._setHasFocus(!0),d.G6&&!e&&a._hasFocus&&a._asyncFocusGainWriteScreenReaderContent.schedule()}))),a._register(h.addDisposableListener(o.domNode,"blur",(function(){a._isDoingComposition&&(a._isDoingComposition=!1,a.writeScreenReaderContent("blurWithoutCompositionEnd"),a._onCompositionEnd.fire()),a._setHasFocus(!1)}))),a._register(h.addDisposableListener(o.domNode,i.Tap,(function(){d.Dt&&a._isDoingComposition&&(a._isDoingComposition=!1,a.writeScreenReaderContent("tapWithoutCompositionEnd"),a._onCompositionEnd.fire())}))),a}return(0,c.Z)(n,[{key:"_installSelectionChangeListener",value:function(){var e=this,t=0;return h.addDisposableListener(document,"selectionchange",(function(n){if(e._hasFocus&&!e._isDoingComposition&&d.i7){var i=Date.now(),r=i-t;if(t=i,!(r<5)){var o=i-e._textArea.getIgnoreSelectionChangeTime();if(e._textArea.resetSelectionChangeTime(),!(o<100)&&e._textAreaState.selectionStartPosition&&e._textAreaState.selectionEndPosition){var a=e._textArea.getValue();if(e._textAreaState.value===a){var s=e._textArea.getSelectionStart(),u=e._textArea.getSelectionEnd();if(e._textAreaState.selectionStart!==s||e._textAreaState.selectionEnd!==u){var l=e._textAreaState.deduceEditorPosition(s),c=e._host.deduceModelPosition(l[0],l[1],l[2]),h=e._textAreaState.deduceEditorPosition(u),f=e._host.deduceModelPosition(h[0],h[1],h[2]),p=new b.Y(c.lineNumber,c.column,f.lineNumber,f.column);e._onSelectionChangeRequest.fire(p)}}}}}}))}},{key:"dispose",value:function(){(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}},{key:"focusTextArea",value:function(){this._setHasFocus(!0),this.refreshFocusState()}},{key:"isFocused",value:function(){return this._hasFocus}},{key:"refreshFocusState",value:function(){var e=h.getShadowRoot(this.textArea.domNode);e?this._setHasFocus(e.activeElement===this.textArea.domNode):h.isInDOM(this.textArea.domNode)?this._setHasFocus(document.activeElement===this.textArea.domNode):this._setHasFocus(!1)}},{key:"_setHasFocus",value:function(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeScreenReaderContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}},{key:"_setAndWriteTextAreaState",value:function(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}},{key:"writeScreenReaderContent",value:function(e){this._isDoingComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent(this._textAreaState))}},{key:"_ensureClipboardGetsEditorSelection",value:function(e){var t=this._host.getDataToCopy(S.canUseTextData(e)),n={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};C.INSTANCE.set(d.vU?t.text.replace(/\r\n/g,"\n"):t.text,n),S.canUseTextData(e)?S.setTextData(e,t.text,t.html,n):this._setAndWriteTextAreaState("copy or cut",_.un.selectedText(t.text))}},{key:"_firePaste",value:function(e,t){t||(t=C.INSTANCE.get(e)),this._onPaste.fire({text:e,metadata:t})}}]),n}(v.JT),S=function(){function e(){(0,l.Z)(this,e)}return(0,c.Z)(e,null,[{key:"canUseTextData",value:function(e){return!!e.clipboardData||!!window.clipboardData}},{key:"getTextData",value:function(e){if(e.clipboardData){e.preventDefault();var t=e.clipboardData.getData("text/plain"),n=null,i=e.clipboardData.getData("vscode-editor-data");if("string"===typeof i)try{1!==(n=JSON.parse(i)).version&&(n=null)}catch(r){}return[t,n]}if(window.clipboardData)return e.preventDefault(),[window.clipboardData.getData("Text"),null];throw new Error("ClipboardEventUtils.getTextData: Cannot use text data!")}},{key:"setTextData",value:function(e,t,n,i){if(e.clipboardData)return e.clipboardData.setData("text/plain",t),"string"===typeof n&&e.clipboardData.setData("text/html",n),e.clipboardData.setData("vscode-editor-data",JSON.stringify(i)),void e.preventDefault();if(window.clipboardData)return window.clipboardData.setData("Text",t),void e.preventDefault();throw new Error("ClipboardEventUtils.setTextData: Cannot use text data!")}}]),e}(),x=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,l.Z)(this,n),(i=t.call(this))._actual=e,i._ignoreSelectionChangeTime=0,i}return(0,c.Z)(n,[{key:"setIgnoreSelectionChangeTime",value:function(e){this._ignoreSelectionChangeTime=Date.now()}},{key:"getIgnoreSelectionChangeTime",value:function(){return this._ignoreSelectionChangeTime}},{key:"resetSelectionChangeTime",value:function(){this._ignoreSelectionChangeTime=0}},{key:"getValue",value:function(){return this._actual.domNode.value}},{key:"setValue",value:function(e,t){var n=this._actual.domNode;n.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),n.value=t)}},{key:"getSelectionStart",value:function(){return"backward"===this._actual.domNode.selectionDirection?this._actual.domNode.selectionEnd:this._actual.domNode.selectionStart}},{key:"getSelectionEnd",value:function(){return"backward"===this._actual.domNode.selectionDirection?this._actual.domNode.selectionStart:this._actual.domNode.selectionEnd}},{key:"setSelectionRange",value:function(e,t,n){var i=this._actual.domNode,r=h.getShadowRoot(i),o=(r?r.activeElement:document.activeElement)===i,a=i.selectionStart,s=i.selectionEnd;if(o&&a===t&&s===n)d.vU&&window.parent!==window&&i.focus();else{if(o)return this.setIgnoreSelectionChangeTime("setSelectionRange"),i.setSelectionRange(t,n),void(d.vU&&window.parent!==window&&i.focus());try{var u=h.saveParentsScrollTop(i);this.setIgnoreSelectionChangeTime("setSelectionRange"),i.focus(),i.setSelectionRange(t,n),h.restoreParentsScrollTop(i,u)}catch(l){}}}}]),n}(v.JT)},90224:function(e,t,n){"use strict";n.d(t,{al:function(){return u},ee:function(){return c},un:function(){return l}});var i=n(15671),r=n(43144),o=n(51747),a=n(67297),s=n(67033),u=!1,l=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.value=t,this.selectionStart=n,this.selectionEnd=r,this.selectionStartPosition=o,this.selectionEndPosition=a}return(0,r.Z)(e,[{key:"toString",value:function(){return"[ <"+this.value+">, selectionStart: "+this.selectionStart+", selectionEnd: "+this.selectionEnd+"]"}},{key:"collapseSelection",value:function(){return new e(this.value,this.value.length,this.value.length,null,null)}},{key:"writeToTextArea",value:function(e,t,n){u&&console.log("writeToTextArea "+e+": "+this.toString()),t.setValue(e,this.value),n&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}},{key:"deduceEditorPosition",value:function(e){if(e<=this.selectionStart){var t=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition(this.selectionStartPosition,t,-1)}if(e>=this.selectionEnd){var n=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(this.selectionEndPosition,n,1)}var i=this.value.substring(this.selectionStart,e);if(-1===i.indexOf(String.fromCharCode(8230)))return this._finishDeduceEditorPosition(this.selectionStartPosition,i,1);var r=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(this.selectionEndPosition,r,-1)}},{key:"_finishDeduceEditorPosition",value:function(e,t,n){for(var i=0,r=-1;-1!==(r=t.indexOf("\n",r+1));)i++;return[e,n*t.length,i]}}],[{key:"readFromTextArea",value:function(t){return new e(t.getValue(),t.getSelectionStart(),t.getSelectionEnd(),null,null)}},{key:"selectedText",value:function(t){return new e(t,0,t.length,null,null)}},{key:"deduceInput",value:function(e,t,n){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};u&&(console.log("------------------------deduceInput"),console.log("PREVIOUS STATE: "+e.toString()),console.log("CURRENT STATE: "+t.toString()));var i=e.value,r=e.selectionStart,a=e.selectionEnd,s=t.value,l=t.selectionStart,c=t.selectionEnd,d=i.substring(a),h=s.substring(c),f=o.P1(d,h);s=s.substring(0,s.length-f);var p=(i=i.substring(0,i.length-f)).substring(0,r),v=s.substring(0,l),g=o.Mh(p,v);if(s=s.substring(g),i=i.substring(g),l-=g,r-=g,c-=g,a-=g,u&&(console.log("AFTER DIFFING PREVIOUS STATE: <"+i+">, selectionStart: "+r+", selectionEnd: "+a),console.log("AFTER DIFFING CURRENT STATE: <"+s+">, selectionStart: "+l+", selectionEnd: "+c)),n&&l===c&&i.length>0){var m=null;if(l===s.length?s.startsWith(i)&&(m=s.substring(i.length)):s.endsWith(i)&&(m=s.substring(0,s.length-i.length)),null!==m&&m.length>0&&(/\uFE0F/.test(m)||o.RP(m)))return{text:m,replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0}}if(l===c){if(i===s&&0===r&&a===i.length&&l===s.length&&-1===s.indexOf("\n")&&o.xe(s))return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};var _=p.length-g;return u&&console.log("REMOVE PREVIOUS: "+(p.length-g)+" chars"),{text:s,replacePrevCharCnt:_,replaceNextCharCnt:0,positionDelta:0}}return{text:s,replacePrevCharCnt:a-r,replaceNextCharCnt:0,positionDelta:0}}},{key:"deduceAndroidCompositionInput",value:function(e,t){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(u&&(console.log("------------------------deduceAndroidCompositionInput"),console.log("PREVIOUS STATE: "+e.toString()),console.log("CURRENT STATE: "+t.toString())),e.value===t.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};var n=Math.min(o.Mh(e.value,t.value),e.selectionEnd),i=Math.min(o.P1(e.value,t.value),e.value.length-e.selectionEnd),r=e.value.substring(n,e.value.length-i),a=t.value.substring(n,t.value.length-i),s=e.selectionStart-n,l=e.selectionEnd-n,c=t.selectionStart-n,d=t.selectionEnd-n;return u&&(console.log("AFTER DIFFING PREVIOUS STATE: <"+r+">, selectionStart: "+s+", selectionEnd: "+l),console.log("AFTER DIFFING CURRENT STATE: <"+a+">, selectionStart: "+c+", selectionEnd: "+d)),{text:a,replacePrevCharCnt:l,replaceNextCharCnt:r.length-l,positionDelta:d-a.length}}}]),e}();l.EMPTY=new l("",0,0,null,null);var c=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,null,[{key:"_getPageOfLine",value:function(e,t){return Math.floor((e-1)/t)}},{key:"_getRangeForPage",value:function(e,t){var n=e*t,i=n+1,r=n+t;return new s.e(i,1,r+1,1)}},{key:"fromEditorSelection",value:function(t,n,i,r,o){var u,c=e._getPageOfLine(i.startLineNumber,r),d=e._getRangeForPage(c,r),h=e._getPageOfLine(i.endLineNumber,r),f=e._getRangeForPage(h,r),p=d.intersectRanges(new s.e(1,1,i.startLineNumber,i.startColumn)),v=n.getValueInRange(p,1),g=n.getLineCount(),m=n.getLineMaxColumn(g),_=f.intersectRanges(new s.e(i.endLineNumber,i.endColumn,g,m)),y=n.getValueInRange(_,1);if(c===h||c+1===h)u=n.getValueInRange(i,1);else{var b=d.intersectRanges(i),w=f.intersectRanges(i);u=n.getValueInRange(b,1)+String.fromCharCode(8230)+n.getValueInRange(w,1)}if(o){var C=500;v.length>C&&(v=v.substring(v.length-C,v.length)),y.length>C&&(y=y.substring(0,C)),u.length>1e3&&(u=u.substring(0,C)+String.fromCharCode(8230)+u.substring(u.length-C,u.length))}return new l(v+u+y,v.length,v.length+u.length,new a.L(i.startLineNumber,i.startColumn),new a.L(i.endLineNumber,i.endColumn))}}]),e}()},47908:function(e,t,n){"use strict";n.d(t,{yy:function(){return k},Dl:function(){return S},ZF:function(){return L},YQ:function(){return x}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(51747),c=n(67033),d=n(66526),h=n(81626),f=n(97326),p=n(33399),v=n(18948),g=n(28214),m=n(84596),_=n(77863),y=n(56345),b=(0,m.yh)("IEditorCancelService"),w=new v.uy("cancellableOperation",!1,(0,y.N)("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));(0,_.z)(b,function(){function e(){(0,s.Z)(this,e),this._tokens=new WeakMap}return(0,u.Z)(e,[{key:"add",value:function(e,t){var n,i=this._tokens.get(e);return i||(i=e.invokeWithinContext((function(e){return{key:w.bindTo(e.get(v.i6)),tokens:new g.S}})),this._tokens.set(e,i)),i.key.set(!0),n=i.tokens.push(t),function(){n&&(n(),i.key.set(!i.tokens.isEmpty()),n=void 0)}}},{key:"cancel",value:function(e){var t=this._tokens.get(e);if(t){var n=t.tokens.pop();n&&(n.cancel(),t.key.set(!t.tokens.isEmpty()))}}}]),e}(),!0);var C=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;return(0,s.Z)(this,n),(r=t.call(this,i)).editor=e,r._unregister=e.invokeWithinContext((function(t){return t.get(b).add(e,(0,f.Z)(r))})),r}return(0,u.Z)(n,[{key:"dispose",value:function(){this._unregister(),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}}]),n}(d.A);(0,p.fK)(new(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,s.Z)(this,n),t.call(this,{id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:w})}return(0,u.Z)(n,[{key:"runEditorCommand",value:function(e,t){e.get(b).cancel(t)}}]),n}(p._l)));var k=function(){function e(t,n){if((0,s.Z)(this,e),this.flags=n,0!==(1&this.flags)){var i=t.getModel();this.modelVersionId=i?l.WU("{0}#{1}",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null;0!==(4&this.flags)?this.position=t.getPosition():this.position=null,0!==(2&this.flags)?this.selection=t.getSelection():this.selection=null,0!==(8&this.flags)?(this.scrollLeft=t.getScrollLeft(),this.scrollTop=t.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}return(0,u.Z)(e,[{key:"_equals",value:function(t){if(!(t instanceof e))return!1;var n=t;return this.modelVersionId===n.modelVersionId&&(this.scrollLeft===n.scrollLeft&&this.scrollTop===n.scrollTop&&(!(!this.position&&n.position||this.position&&!n.position||this.position&&n.position&&!this.position.equals(n.position))&&!(!this.selection&&n.selection||this.selection&&!n.selection||this.selection&&n.selection&&!this.selection.equalsRange(n.selection))))}},{key:"validate",value:function(t){return this._equals(new e(t,this.flags))}}]),e}(),S=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r,o){var a;return(0,s.Z)(this,n),(a=t.call(this,e,o))._listener=new h.SL,4&i&&a._listener.add(e.onDidChangeCursorPosition((function(e){r&&c.e.containsPosition(r,e.position)||a.cancel()}))),2&i&&a._listener.add(e.onDidChangeCursorSelection((function(e){r&&c.e.containsRange(r,e.selection)||a.cancel()}))),8&i&&a._listener.add(e.onDidScrollChange((function(e){return a.cancel()}))),1&i&&(a._listener.add(e.onDidChangeModel((function(e){return a.cancel()}))),a._listener.add(e.onDidChangeModelContent((function(e){return a.cancel()})))),a}return(0,u.Z)(n,[{key:"dispose",value:function(){this._listener.dispose(),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}}]),n}(C),x=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i){var r;return(0,s.Z)(this,n),(r=t.call(this,i))._listener=e.onDidChangeContent((function(){return r.cancel()})),r}return(0,u.Z)(n,[{key:"dispose",value:function(){this._listener.dispose(),(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}}]),n}(d.A),L=function(){function e(t,n,i){(0,s.Z)(this,e),this._visiblePosition=t,this._visiblePositionScrollDelta=n,this._cursorPosition=i}return(0,u.Z)(e,[{key:"restore",value:function(e){if(this._visiblePosition){var t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}},{key:"restoreRelativeVerticalPositionOfCursor",value:function(e){var t=e.getPosition();if(this._cursorPosition&&t){var n=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+n)}}}],[{key:"capture",value:function(t){var n=null,i=0;if(0!==t.getScrollTop()){var r=t.getVisibleRanges();if(r.length>0){n=r[0].getStartPosition();var o=t.getTopForPosition(n.lineNumber,n.column);i=t.getScrollTop()-o}}return new e(n,i,t.getPosition())}}]),e}()},76191:function(e,t,n){"use strict";n.d(t,{CL:function(){return r},Pi:function(){return a},QI:function(){return o}});var i=n(30062);function r(e){return!(!e||"function"!==typeof e.getEditorType)&&e.getEditorType()===i.g.ICodeEditor}function o(e){return!(!e||"function"!==typeof e.getEditorType)&&e.getEditorType()===i.g.IDiffEditor}function a(e){return r(e)?e:o(e)?e.getModifiedEditor():null}},33399:function(e,t,n){"use strict";n.d(t,{AJ:function(){return x},QG:function(){return P},Qr:function(){return I},R6:function(){return N},Sq:function(){return B},Uc:function(){return i},_K:function(){return R},_l:function(){return E},f:function(){return T},fK:function(){return O},jY:function(){return D},kz:function(){return H},mY:function(){return S},n_:function(){return j},rn:function(){return A},sb:function(){return M}});var i,r=n(93433),o=n(37762),a=n(60136),s=n(29388),u=n(15671),l=n(43144),c=n(56345),d=n(67775),h=n(8295),f=n(67297),p=n(49076),v=n(44148),g=n(31585),m=n(72611),_=n(18948),y=n(51519),b=n(38774),w=n(45014),C=n(25941),k=n(19974),S=function(){function e(t){(0,u.Z)(this,e),this.id=t.id,this.precondition=t.precondition,this._kbOpts=t.kbOpts,this._menuOpts=t.menuOpts,this._description=t.description}return(0,l.Z)(e,[{key:"register",value:function(){var e=this;if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){var t=this._kbOpts.kbExpr;this.precondition&&(t=t?_.Ao.and(t,this.precondition):this.precondition),y.W.registerCommandAndKeybindingRule({id:this.id,handler:function(t,n){return e.runCommand(t,n)},weight:this._kbOpts.weight,args:this._kbOpts.args,when:t,primary:this._kbOpts.primary,secondary:this._kbOpts.secondary,win:this._kbOpts.win,linux:this._kbOpts.linux,mac:this._kbOpts.mac,description:this._description})}else m.P.registerCommand({id:this.id,handler:function(t,n){return e.runCommand(t,n)},description:this._description})}},{key:"_registerMenuItem",value:function(e){g.BH.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon,precondition:this.precondition},when:e.when,order:e.order})}}]),e}(),x=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,u.Z)(this,n),(e=t.apply(this,arguments))._implementations=[],e}return(0,l.Z)(n,[{key:"addImplementation",value:function(e,t,n){var i=this;return this._implementations.push({priority:e,name:t,implementation:n}),this._implementations.sort((function(e,t){return t.priority-e.priority})),{dispose:function(){for(var e=0;e<i._implementations.length;e++)if(i._implementations[e].implementation===n)return void i._implementations.splice(e,1)}}}},{key:"runCommand",value:function(e,t){var n,i=e.get(k.VZ),r=(0,o.Z)(this._implementations);try{for(r.s();!(n=r.n()).done;){var a=n.value,s=a.implementation(e,t);if(s){if(i.trace("Command '".concat(this.id,"' was handled by '").concat(a.name,"'.")),"boolean"===typeof s)return;return s}}}catch(u){r.e(u)}finally{r.f()}}}]),n}(S),L=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,i){var r;return(0,u.Z)(this,n),(r=t.call(this,i)).command=e,r}return(0,l.Z)(n,[{key:"runCommand",value:function(e,t){return this.command.runCommand(e,t)}}]),n}(S),E=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){return(0,u.Z)(this,n),t.apply(this,arguments)}return(0,l.Z)(n,[{key:"runCommand",value:function(e,t){var n=this,i=e.get(h.$),r=i.getFocusedCodeEditor()||i.getActiveCodeEditor();if(r)return r.invokeWithinContext((function(e){if(e.get(_.i6).contextMatchesRules((0,C.f6)(n.precondition)))return n.runEditorCommand(e,r,t)}))}}],[{key:"bindToContribution",value:function(e){return function(t){(0,a.Z)(i,t);var n=(0,s.Z)(i);function i(e){var t;return(0,u.Z)(this,i),(t=n.call(this,e))._callback=e.handler,t}return(0,l.Z)(i,[{key:"runEditorCommand",value:function(t,n,i){e(n)&&this._callback(e(n),i)}}]),i}(n)}}]),n}(S),N=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var i;return(0,u.Z)(this,n),(i=t.call(this,n.convertOptions(e))).label=e.label,i.alias=e.alias,i}return(0,l.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){return this.reportTelemetry(e,t),this.run(e,t,n||{})}},{key:"reportTelemetry",value:function(e,t){e.get(w.b).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}],[{key:"convertOptions",value:function(e){var t,n;function i(t){return t.menuId||(t.menuId=g.eH.EditorContext),t.title||(t.title=e.label),t.when=_.Ao.and(e.precondition,t.when),t}(t=Array.isArray(e.menuOpts)?e.menuOpts:e.menuOpts?[e.menuOpts]:[],Array.isArray(e.contextMenuOpts))?(n=t).push.apply(n,(0,r.Z)(e.contextMenuOpts.map(i))):e.contextMenuOpts&&t.push(i(e.contextMenuOpts));return e.menuOpts=t,e}}]),n}(E),D=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,u.Z)(this,n),(e=t.apply(this,arguments))._implementations=[],e}return(0,l.Z)(n,[{key:"addImplementation",value:function(e,t){var n=this;return this._implementations.push([e,t]),this._implementations.sort((function(e,t){return t[0]-e[0]})),{dispose:function(){for(var e=0;e<n._implementations.length;e++)if(n._implementations[e][1]===t)return void n._implementations.splice(e,1)}}}},{key:"run",value:function(e,t,n){var i,r=(0,o.Z)(this._implementations);try{for(r.s();!(i=r.n()).done;){var a=i.value[1](e,t,n);if(a){if("boolean"===typeof a)return;return a}}}catch(s){r.e(s)}finally{r.f()}}}]),n}(N);function M(e,t){m.P.registerCommand(e,(function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];var a=i[0],s=i[1];(0,C.p_)(d.o.isUri(a)),(0,C.p_)(f.L.isIPosition(s));var u=e.get(p.q).getModel(a);if(u){var l=f.L.lift(s);return t.apply(void 0,[u,l].concat((0,r.Z)(i.slice(2))))}return e.get(v.S).createModelReference(a).then((function(e){return new Promise((function(n,r){try{n(t(e.object.textEditorModel,f.L.lift(s),i.slice(2)))}catch(o){r(o)}})).finally((function(){e.dispose()}))}))}))}function T(e,t){m.P.registerCommand(e,(function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];var a=i[0];(0,C.p_)(d.o.isUri(a));var s=e.get(p.q).getModel(a);return s?t.apply(void 0,[s].concat((0,r.Z)(i.slice(1)))):e.get(v.S).createModelReference(a).then((function(e){return new Promise((function(n,r){try{n(t(e.object.textEditorModel,i.slice(1)))}catch(o){r(o)}})).finally((function(){e.dispose()}))}))}))}function O(e){return Z.INSTANCE.registerEditorCommand(e),e}function I(e){var t=new e;return Z.INSTANCE.registerEditorAction(t),t}function A(e){return Z.INSTANCE.registerEditorAction(e),e}function P(e){Z.INSTANCE.registerEditorAction(e)}function R(e,t){Z.INSTANCE.registerEditorContribution(e,t)}!function(e){e.getEditorCommand=function(e){return Z.INSTANCE.getEditorCommand(e)},e.getEditorActions=function(){return Z.INSTANCE.getEditorActions()},e.getEditorContributions=function(){return Z.INSTANCE.getEditorContributions()},e.getSomeEditorContributions=function(e){return Z.INSTANCE.getEditorContributions().filter((function(t){return e.indexOf(t.id)>=0}))},e.getDiffEditorContributions=function(){return Z.INSTANCE.getDiffEditorContributions()}}(i||(i={}));var Z=function(){function e(){(0,u.Z)(this,e),this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}return(0,l.Z)(e,[{key:"registerEditorContribution",value:function(e,t){this.editorContributions.push({id:e,ctor:t})}},{key:"getEditorContributions",value:function(){return this.editorContributions.slice(0)}},{key:"getDiffEditorContributions",value:function(){return this.diffEditorContributions.slice(0)}},{key:"registerEditorAction",value:function(e){e.register(),this.editorActions.push(e)}},{key:"getEditorActions",value:function(){return this.editorActions.slice(0)}},{key:"registerEditorCommand",value:function(e){e.register(),this.editorCommands[e.id]=e}},{key:"getEditorCommand",value:function(e){return this.editorCommands[e]||null}}]),e}();function F(e){return e.register(),e}Z.INSTANCE=new Z,b.B.add("editor.contributions",Z.INSTANCE);var j=F(new x({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:g.eH.MenubarEditMenu,group:"1_do",title:c.N({key:"miUndo",comment:["&& denotes a mnemonic"]},"&&Undo"),order:1},{menuId:g.eH.CommandPalette,group:"",title:c.N("undo","Undo"),order:1}]}));F(new L(j,{id:"default:undo",precondition:void 0}));var H=F(new x({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:g.eH.MenubarEditMenu,group:"1_do",title:c.N({key:"miRedo",comment:["&& denotes a mnemonic"]},"&&Redo"),order:2},{menuId:g.eH.CommandPalette,group:"",title:c.N("redo","Redo"),order:1}]}));F(new L(H,{id:"default:redo",precondition:void 0}));var B=F(new x({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:g.eH.MenubarSelectionMenu,group:"1_basic",title:c.N({key:"miSelectAll",comment:["&& denotes a mnemonic"]},"&&Select All"),order:1},{menuId:g.eH.CommandPalette,group:"",title:c.N("selectAll","Select All"),order:1}]}))},49803:function(e,t,n){"use strict";n.d(t,{Gl:function(){return h},fo:function(){return d},vu:function(){return c}});var i=n(60136),r=n(29388),o=n(15671),a=n(43144),s=n(84596),u=n(67775),l=n(25941),c=(0,s.yh)("IWorkspaceEditService");var d=function(){function e(t){(0,o.Z)(this,e),this.metadata=t}return(0,a.Z)(e,null,[{key:"convert",value:function(e){return e.edits.map((function(e){if(t=e,(0,l.Kn)(t)&&u.o.isUri(t.resource)&&(0,l.Kn)(t.edit))return new h(e.resource,e.edit,e.modelVersionId,e.metadata);var t;if(function(e){return(0,l.Kn)(e)&&(Boolean(e.newUri)||Boolean(e.oldUri))}(e))return new f(e.oldUri,e.newUri,e.options,e.metadata);throw new Error("Unsupported edit")}))}}]),e}(),h=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i,r,a){var s;return(0,o.Z)(this,n),(s=t.call(this,a)).resource=e,s.textEdit=i,s.versionId=r,s}return(0,a.Z)(n)}(d),f=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i,r,a){var s;return(0,o.Z)(this,n),(s=t.call(this,a)).oldResource=e,s.newResource=i,s.options=r,s}return(0,a.Z)(n)}(d)},8295:function(e,t,n){"use strict";n.d(t,{$:function(){return i}});var i=(0,n(84596).yh)("codeEditorService")},95079:function(e,t,n){"use strict";n.d(t,{Gm:function(){return rr}});var i=n(29439),r=n(37762),o=n(97326),a=n(11752),s=n(61120),u=n(60136),l=n(29388),c=n(15671),d=n(43144),h=n(50816),f=n(33399),p=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},v=function(e,t){return function(n,i){t(n,i,e)}},g=function(){function e(t,n){(0,c.Z)(this,e)}return(0,d.Z)(e,[{key:"dispose",value:function(){}}]),e}();g.ID="editor.contrib.markerDecorations",g=p([v(1,h.i)],g),(0,f._K)(g.ID,g);var m=n(56345),_=n(84540),y=n(8729),b=n(11732),w=n(81626),C=n(55585),k=n(47014),S=n(8295),x=n(84539),L=n(74964),E=n(41149),N=n(30487),D=n(25044),M=n(55076),T=n(27997),O=n(78101),I=function(){function e(t,n){(0,c.Z)(this,e),this.x=t,this.y=n}return(0,d.Z)(e,[{key:"toClientCoordinates",value:function(){return new A(this.x-_.StandardWindow.scrollX,this.y-_.StandardWindow.scrollY)}}]),e}(),A=function(){function e(t,n){(0,c.Z)(this,e),this.clientX=t,this.clientY=n}return(0,d.Z)(e,[{key:"toPageCoordinates",value:function(){return new I(this.clientX+_.StandardWindow.scrollX,this.clientY+_.StandardWindow.scrollY)}}]),e}(),P=(0,d.Z)((function e(t,n,i,r){(0,c.Z)(this,e),this.x=t,this.y=n,this.width=i,this.height=r}));function R(e){var t=_.getDomNodePagePosition(e);return new P(t.left,t.top,t.width,t.height)}var Z=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e)).pos=new I(r.posx,r.posy),r.editorPos=R(i),r}return(0,d.Z)(n)}(M.n),F=function(){function e(t){(0,c.Z)(this,e),this._editorViewDomNode=t}return(0,d.Z)(e,[{key:"_create",value:function(e){return new Z(e,this._editorViewDomNode)}},{key:"onContextMenu",value:function(e,t){var n=this;return _.addDisposableListener(e,"contextmenu",(function(e){t(n._create(e))}))}},{key:"onMouseUp",value:function(e,t){var n=this;return _.addDisposableListener(e,"mouseup",(function(e){t(n._create(e))}))}},{key:"onMouseDown",value:function(e,t){var n=this;return _.addDisposableListener(e,"mousedown",(function(e){t(n._create(e))}))}},{key:"onMouseLeave",value:function(e,t){var n=this;return _.addDisposableNonBubblingMouseOutListener(e,(function(e){t(n._create(e))}))}},{key:"onMouseMoveThrottled",value:function(e,t,n,i){var r=this;return _.addDisposableThrottledListener(e,"mousemove",t,(function(e,t){return n(e,r._create(t))}),i)}}]),e}(),j=function(){function e(t){(0,c.Z)(this,e),this._editorViewDomNode=t}return(0,d.Z)(e,[{key:"_create",value:function(e){return new Z(e,this._editorViewDomNode)}},{key:"onPointerUp",value:function(e,t){var n=this;return _.addDisposableListener(e,"pointerup",(function(e){t(n._create(e))}))}},{key:"onPointerDown",value:function(e,t){var n=this;return _.addDisposableListener(e,"pointerdown",(function(e){t(n._create(e))}))}},{key:"onPointerLeave",value:function(e,t){var n=this;return _.addDisposableNonBubblingPointerOutListener(e,(function(e){t(n._create(e))}))}},{key:"onPointerMoveThrottled",value:function(e,t,n,i){var r=this;return _.addDisposableThrottledListener(e,"pointermove",t,(function(e,t){return n(e,r._create(t))}),i)}}]),e}(),H=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._editorViewDomNode=e,i._globalMouseMoveMonitor=i._register(new O.Z),i._keydownListener=null,i}return(0,d.Z)(n,[{key:"startMonitoring",value:function(e,t,n,i,r){var o=this;this._keydownListener=_.addStandardDisposableListener(document,"keydown",(function(e){e.toKeybinding().isModifierKey()||o._globalMouseMoveMonitor.stopMonitoring(!0,e.browserEvent)}),!0);this._globalMouseMoveMonitor.startMonitoring(e,t,(function(e,t){return n(e,new Z(t,o._editorViewDomNode))}),i,(function(e){o._keydownListener.dispose(),r(e)}))}},{key:"stopMonitoring",value:function(){this._globalMouseMoveMonitor.stopMonitoring(!0)}}]),n}(w.JT),B=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,c.Z)(this,n),(e=t.call(this))._shouldRender=!0,e}return(0,d.Z)(n,[{key:"shouldRender",value:function(){return this._shouldRender}},{key:"forceShouldRender",value:function(){this._shouldRender=!0}},{key:"setShouldRender",value:function(){this._shouldRender=!0}},{key:"onDidRender",value:function(){this._shouldRender=!1}},{key:"onCompositionStart",value:function(e){return!1}},{key:"onCompositionEnd",value:function(e){return!1}},{key:"onConfigurationChanged",value:function(e){return!1}},{key:"onCursorStateChanged",value:function(e){return!1}},{key:"onDecorationsChanged",value:function(e){return!1}},{key:"onFlushed",value:function(e){return!1}},{key:"onFocusChanged",value:function(e){return!1}},{key:"onLanguageConfigurationChanged",value:function(e){return!1}},{key:"onLineMappingChanged",value:function(e){return!1}},{key:"onLinesChanged",value:function(e){return!1}},{key:"onLinesDeleted",value:function(e){return!1}},{key:"onLinesInserted",value:function(e){return!1}},{key:"onRevealRangeRequest",value:function(e){return!1}},{key:"onScrollChanged",value:function(e){return!1}},{key:"onThemeChanged",value:function(e){return!1}},{key:"onTokensChanged",value:function(e){return!1}},{key:"onTokensColorsChanged",value:function(e){return!1}},{key:"onZonesChanged",value:function(e){return!1}},{key:"handleEvents",value:function(e){for(var t=!1,n=0,i=e.length;n<i;n++){var r=e[n];switch(r.type){case 0:this.onCompositionStart(r)&&(t=!0);break;case 1:this.onCompositionEnd(r)&&(t=!0);break;case 2:this.onConfigurationChanged(r)&&(t=!0);break;case 3:this.onCursorStateChanged(r)&&(t=!0);break;case 4:this.onDecorationsChanged(r)&&(t=!0);break;case 5:this.onFlushed(r)&&(t=!0);break;case 6:this.onFocusChanged(r)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(r)&&(t=!0);break;case 8:this.onLineMappingChanged(r)&&(t=!0);break;case 9:this.onLinesChanged(r)&&(t=!0);break;case 10:this.onLinesDeleted(r)&&(t=!0);break;case 11:this.onLinesInserted(r)&&(t=!0);break;case 12:this.onRevealRangeRequest(r)&&(t=!0);break;case 13:this.onScrollChanged(r)&&(t=!0);break;case 15:this.onTokensChanged(r)&&(t=!0);break;case 14:this.onThemeChanged(r)&&(t=!0);break;case 16:this.onTokensColorsChanged(r)&&(t=!0);break;case 17:this.onZonesChanged(r)&&(t=!0);break;default:console.info("View received unknown event: "),console.info(r)}}t&&(this._shouldRender=!0)}}]),n}(w.JT),z=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._context=e,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(B),W=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"write",value:function(e,t){E.Z,e.setAttribute("data-mprt",String(t))}},{key:"read",value:function(e){var t=e.getAttribute("data-mprt");return null===t?0:parseInt(t,10)}},{key:"collect",value:function(e,t){for(var n=[],i=0;e&&e!==document.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(n[i++]=this.read(e)),e=e.parentElement;for(var r=new Uint8Array(i),o=0;o<i;o++)r[o]=n[i-o-1];return r}}]),e}(),V=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;return(0,c.Z)(this,n),(o=t.call(this,e,i))._viewLines=r,o}return(0,d.Z)(n,[{key:"linesVisibleRangesForRange",value:function(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)}},{key:"visibleRangeForPosition",value:function(e){return this._viewLines.visibleRangeForPosition(e)}}]),n}(function(){function e(t,n){(0,c.Z)(this,e),this._viewLayout=t,this.viewportData=n,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;var i=this._viewLayout.getCurrentViewport();this.scrollTop=i.top,this.scrollLeft=i.left,this.viewportWidth=i.width,this.viewportHeight=i.height}return(0,d.Z)(e,[{key:"getScrolledTopFromAbsoluteTop",value:function(e){return e-this.scrollTop}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this._viewLayout.getVerticalOffsetForLineNumber(e)}},{key:"getDecorationsInViewport",value:function(){return this.viewportData.getDecorationsInViewport()}}]),e}()),Y=(0,d.Z)((function e(t,n,i){(0,c.Z)(this,e),this.outsideRenderedLine=t,this.lineNumber=n,this.ranges=i})),U=function(){function e(t,n){(0,c.Z)(this,e),this.left=Math.round(t),this.width=Math.round(n)}return(0,d.Z)(e,[{key:"toString",value:function(){return"[".concat(this.left,",").concat(this.width,"]")}}]),e}(),K=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.outsideRenderedLine=t,this.left=Math.round(n)})),q=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.outsideRenderedLine=t,this.ranges=n})),G=function(){function e(t,n){(0,c.Z)(this,e),this.left=t,this.width=n}return(0,d.Z)(e,[{key:"toString",value:function(){return"[".concat(this.left,",").concat(this.width,"]")}}],[{key:"compare",value:function(e,t){return e.left-t.left}}]),e}(),$=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"_createRange",value:function(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange}},{key:"_detachRange",value:function(e,t){e.selectNodeContents(t)}},{key:"_readClientRects",value:function(e,t,n,i,r){var o=this._createRange();try{return o.setStart(e,t),o.setEnd(n,i),o.getClientRects()}catch(a){return null}finally{this._detachRange(o,r)}}},{key:"_mergeAdjacentRanges",value:function(e){if(1===e.length)return[new U(e[0].left,e[0].width)];e.sort(G.compare);for(var t=[],n=0,i=e[0].left,r=e[0].width,o=1,a=e.length;o<a;o++){var s=e[o],u=s.left,l=s.width;i+r+.9>=u?r=Math.max(r,u+l-i):(t[n++]=new U(i,r),i=u,r=l)}return t[n++]=new U(i,r),t}},{key:"_createHorizontalRangesFromClientRects",value:function(e,t){if(!e||0===e.length)return null;for(var n=[],i=0,r=e.length;i<r;i++){var o=e[i];n[i]=new G(Math.max(0,o.left-t),o.width)}return this._mergeAdjacentRanges(n)}},{key:"readHorizontalRanges",value:function(e,t,n,i,r,o,a){var s=e.children.length-1;if(0>s)return null;if((t=Math.min(s,Math.max(0,t)))===(i=Math.min(s,Math.max(0,i)))&&n===r&&0===n&&!e.children[t].firstChild){var u=e.children[t].getClientRects();return this._createHorizontalRangesFromClientRects(u,o)}t!==i&&i>0&&0===r&&(i--,r=1073741824);var l=e.children[t].firstChild,c=e.children[i].firstChild;if(l&&c||(!l&&0===n&&t>0&&(l=e.children[t-1].firstChild,n=1073741824),!c&&0===r&&i>0&&(c=e.children[i-1].firstChild,r=1073741824)),!l||!c)return null;n=Math.min(l.textContent.length,Math.max(0,n)),r=Math.min(c.textContent.length,Math.max(0,r));var d=this._readClientRects(l,n,c,r,a);return this._createHorizontalRangesFromClientRects(d,o)}}]),e}(),Q=n(29805),X=n(70632),J=n(7644),ee=n(76556),te=!!N.tY||!(N.IJ||x.vU||x.G6),ne=!0,ie=function(){function e(t,n){(0,c.Z)(this,e),this._domNode=t,this._clientRectDeltaLeft=0,this._clientRectDeltaLeftRead=!1,this.endNode=n}return(0,d.Z)(e,[{key:"clientRectDeltaLeft",get:function(){return this._clientRectDeltaLeftRead||(this._clientRectDeltaLeftRead=!0,this._clientRectDeltaLeft=this._domNode.getBoundingClientRect().left),this._clientRectDeltaLeft}}]),e}(),re=function(){function e(t,n){(0,c.Z)(this,e),this.themeType=n;var i=t.options,r=i.get(40);this.renderWhitespace=i.get(85),this.renderControlCharacters=i.get(79),this.spaceWidth=r.spaceWidth,this.middotWidth=r.middotWidth,this.wsmiddotWidth=r.wsmiddotWidth,this.useMonospaceOptimizations=r.isMonospace&&!i.get(27),this.canUseHalfwidthRightwardsArrow=r.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(55),this.stopRenderingLineAfter=i.get(102),this.fontLigatures=i.get(41)}return(0,d.Z)(e,[{key:"equals",value:function(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures}}]),e}(),oe=function(){function e(t){(0,c.Z)(this,e),this._options=t,this._isMaybeInvalid=!0,this._renderedViewLine=null}return(0,d.Z)(e,[{key:"getDomNode",value:function(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}},{key:"setDomNode",value:function(e){if(!this._renderedViewLine)throw new Error("I have no rendered view line to set the dom node to...");this._renderedViewLine.domNode=(0,E.X)(e)}},{key:"onContentChanged",value:function(){this._isMaybeInvalid=!0}},{key:"onTokensChanged",value:function(){this._isMaybeInvalid=!0}},{key:"onDecorationsChanged",value:function(){this._isMaybeInvalid=!0}},{key:"onOptionsChanged",value:function(e){this._isMaybeInvalid=!0,this._options=e}},{key:"onSelectionChanged",value:function(){return(this._options.themeType===J.e.HIGH_CONTRAST||"selection"===this._options.renderWhitespace)&&(this._isMaybeInvalid=!0,!0)}},{key:"renderLine",value:function(t,n,i,o){if(!1===this._isMaybeInvalid)return!1;this._isMaybeInvalid=!1;var a=i.getViewLineRenderingData(t),s=this._options,u=Q.Kp.filter(a.inlineDecorations,t,a.minColumn,a.maxColumn),l=null;if(s.themeType===J.e.HIGH_CONTRAST||"selection"===this._options.renderWhitespace){var c,d=i.selections,h=(0,r.Z)(d);try{for(h.s();!(c=h.n()).done;){var f=c.value;if(!(f.endLineNumber<t||f.startLineNumber>t)){var p=f.startLineNumber===t?f.startColumn:a.minColumn,v=f.endLineNumber===t?f.endColumn:a.maxColumn;p<v&&(s.themeType===J.e.HIGH_CONTRAST||"selection"!==this._options.renderWhitespace?u.push(new Q.Kp(p,v,"inline-selected-text",0)):(l||(l=[]),l.push(new X.zG(p-1,v-1))))}}}catch(y){h.e(y)}finally{h.f()}}var g=new X.IJ(s.useMonospaceOptimizations,s.canUseHalfwidthRightwardsArrow,a.content,a.continuesWithWrappedLine,a.isBasicASCII,a.containsRTL,a.minColumn-1,a.tokens,u,a.tabSize,a.startVisibleColumn,s.spaceWidth,s.middotWidth,s.wsmiddotWidth,s.stopRenderingLineAfter,s.renderWhitespace,s.renderControlCharacters,s.fontLigatures!==ee.n0.OFF,l);if(this._renderedViewLine&&this._renderedViewLine.input.equals(g))return!1;o.appendASCIIString('<div style="top:'),o.appendASCIIString(String(n)),o.appendASCIIString("px;height:"),o.appendASCIIString(String(this._options.lineHeight)),o.appendASCIIString('px;" class="'),o.appendASCIIString(e.CLASS_NAME),o.appendASCIIString('">');var m=(0,X.d1)(g,o);o.appendASCIIString("</div>");var _=null;return ne&&te&&a.isBasicASCII&&s.useMonospaceOptimizations&&0===m.containsForeignElements&&a.content.length<300&&g.lineTokens.getCount()<100&&(_=new ae(this._renderedViewLine?this._renderedViewLine.domNode:null,g,m.characterMapping)),_||(_=le(this._renderedViewLine?this._renderedViewLine.domNode:null,g,m.characterMapping,m.containsRTL,m.containsForeignElements)),this._renderedViewLine=_,!0}},{key:"layoutLine",value:function(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))}},{key:"getWidth",value:function(){return this._renderedViewLine?this._renderedViewLine.getWidth():0}},{key:"getWidthIsFast",value:function(){return!this._renderedViewLine||this._renderedViewLine.getWidthIsFast()}},{key:"needsMonospaceFontCheck",value:function(){return!!this._renderedViewLine&&this._renderedViewLine instanceof ae}},{key:"monospaceAssumptionsAreValid",value:function(){return this._renderedViewLine&&this._renderedViewLine instanceof ae?this._renderedViewLine.monospaceAssumptionsAreValid():ne}},{key:"onMonospaceAssumptionsInvalidated",value:function(){this._renderedViewLine&&this._renderedViewLine instanceof ae&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}},{key:"getVisibleRangesForRange",value:function(e,t,n){if(!this._renderedViewLine)return null;e|=0,t|=0,e=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,e)),t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t));var i=0|this._renderedViewLine.input.stopRenderingLineAfter,r=!1;-1!==i&&e>i+1&&t>i+1&&(r=!0),-1!==i&&e>i+1&&(e=i+1),-1!==i&&t>i+1&&(t=i+1);var o=this._renderedViewLine.getVisibleRangesForRange(e,t,n);return o&&o.length>0?new q(r,o):null}},{key:"getColumnOfNodeOffset",value:function(e,t,n){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t,n):1}}]),e}();oe.CLASS_NAME="view-line";var ae=function(){function e(t,n,i){(0,c.Z)(this,e),this.domNode=t,this.input=n,this._characterMapping=i,this._charWidth=n.spaceWidth}return(0,d.Z)(e,[{key:"getWidth",value:function(){return this._getCharPosition(this._characterMapping.length)}},{key:"getWidthIsFast",value:function(){return!0}},{key:"monospaceAssumptionsAreValid",value:function(){if(!this.domNode)return ne;var e=this.getWidth(),t=this.domNode.domNode.firstChild.offsetWidth;return Math.abs(e-t)>=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),ne=!1),ne}},{key:"toSlowRenderedLine",value:function(){return le(this.domNode,this.input,this._characterMapping,!1,0)}},{key:"getVisibleRangesForRange",value:function(e,t,n){var i=this._getCharPosition(e),r=this._getCharPosition(t);return[new U(i,r-i)]}},{key:"_getCharPosition",value:function(e){var t=this._characterMapping.getAbsoluteOffsets();return 0===t.length?0:Math.round(this._charWidth*t[e-1])}},{key:"getColumnOfNodeOffset",value:function(e,t,n){for(var i=t.textContent.length,r=-1;t;)t=t.previousSibling,r++;return this._characterMapping.partDataToCharOffset(r,i,n)+1}}]),e}(),se=function(){function e(t,n,i,r,o){if((0,c.Z)(this,e),this.domNode=t,this.input=n,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(n.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!r||0===this._characterMapping.length){this._pixelOffsetCache=new Int32Array(Math.max(2,this._characterMapping.length+1));for(var a=0,s=this._characterMapping.length;a<=s;a++)this._pixelOffsetCache[a]=-1}}return(0,d.Z)(e,[{key:"_getReadingTarget",value:function(e){return e.domNode.firstChild}},{key:"getWidth",value:function(){return this.domNode?(-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth),this._cachedWidth):0}},{key:"getWidthIsFast",value:function(){return-1!==this._cachedWidth}},{key:"getVisibleRangesForRange",value:function(e,t,n){if(!this.domNode)return null;if(null!==this._pixelOffsetCache){var i=this._readPixelOffset(this.domNode,e,n);if(-1===i)return null;var r=this._readPixelOffset(this.domNode,t,n);return-1===r?null:[new U(i,r-i)]}return this._readVisibleRangesForRange(this.domNode,e,t,n)}},{key:"_readVisibleRangesForRange",value:function(e,t,n,i){if(t===n){var r=this._readPixelOffset(e,t,i);return-1===r?null:[new U(r,0)]}return this._readRawVisibleRangesForRange(e,t,n,i)}},{key:"_readPixelOffset",value:function(e,t,n){if(0===this._characterMapping.length){if(0===this._containsForeignElements)return 0;if(2===this._containsForeignElements)return 0;if(1===this._containsForeignElements)return this.getWidth();var i=this._getReadingTarget(e);return i.firstChild?i.firstChild.offsetWidth:0}if(null!==this._pixelOffsetCache){var r=this._pixelOffsetCache[t];if(-1!==r)return r;var o=this._actualReadPixelOffset(e,t,n);return this._pixelOffsetCache[t]=o,o}return this._actualReadPixelOffset(e,t,n)}},{key:"_actualReadPixelOffset",value:function(e,t,n){if(0===this._characterMapping.length){var i=$.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,n.clientRectDeltaLeft,n.endNode);return i&&0!==i.length?i[0].left:-1}if(t===this._characterMapping.length&&this._isWhitespaceOnly&&0===this._containsForeignElements)return this.getWidth();var r=this._characterMapping.charOffsetToPartData(t-1),o=X.fH.getPartIndex(r),a=X.fH.getCharIndex(r),s=$.readHorizontalRanges(this._getReadingTarget(e),o,a,o,a,n.clientRectDeltaLeft,n.endNode);if(!s||0===s.length)return-1;var u=s[0].left;if(this.input.isBasicASCII){var l=this._characterMapping.getAbsoluteOffsets(),c=Math.round(this.input.spaceWidth*l[t-1]);if(Math.abs(c-u)<=1)return c}return u}},{key:"_readRawVisibleRangesForRange",value:function(e,t,n,i){if(1===t&&n===this._characterMapping.length)return[new U(0,this.getWidth())];var r=this._characterMapping.charOffsetToPartData(t-1),o=X.fH.getPartIndex(r),a=X.fH.getCharIndex(r),s=this._characterMapping.charOffsetToPartData(n-1),u=X.fH.getPartIndex(s),l=X.fH.getCharIndex(s);return $.readHorizontalRanges(this._getReadingTarget(e),o,a,u,l,i.clientRectDeltaLeft,i.endNode)}},{key:"getColumnOfNodeOffset",value:function(e,t,n){for(var i=t.textContent.length,r=-1;t;)t=t.previousSibling,r++;return this._characterMapping.partDataToCharOffset(r,i,n)+1}}]),e}(),ue=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n,[{key:"_readVisibleRangesForRange",value:function(e,t,i,r){var o=(0,a.Z)((0,s.Z)(n.prototype),"_readVisibleRangesForRange",this).call(this,e,t,i,r);if(!o||0===o.length||t===i||1===t&&i===this._characterMapping.length)return o;if(!this.input.containsRTL){var u=this._readPixelOffset(e,i,r);if(-1!==u){var l=o[o.length-1];l.left<u&&(l.width=u-l.left)}}return o}}]),n}(se),le=x.Pf?ce:de;function ce(e,t,n,i,r){return new ue(e,t,n,i,r)}function de(e,t,n,i,r){return new se(e,t,n,i,r)}var he=n(67297),fe=n(67033),pe=n(16274),ve=n(86036),ge=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.lastViewCursorsRenderData=t,this.lastTextareaPosition=n})),me=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;(0,c.Z)(this,e),this.element=t,this.type=n,this.mouseColumn=i,this.position=r,!o&&r&&(o=new fe.e(r.lineNumber,r.column,r.lineNumber,r.column)),this.range=o,this.detail=a}return(0,d.Z)(e,[{key:"toString",value:function(){return e.toString(this)}}],[{key:"_typeToString",value:function(e){return 1===e?"TEXTAREA":2===e?"GUTTER_GLYPH_MARGIN":3===e?"GUTTER_LINE_NUMBERS":4===e?"GUTTER_LINE_DECORATIONS":5===e?"GUTTER_VIEW_ZONE":6===e?"CONTENT_TEXT":7===e?"CONTENT_EMPTY":8===e?"CONTENT_VIEW_ZONE":9===e?"CONTENT_WIDGET":10===e?"OVERVIEW_RULER":11===e?"SCROLLBAR":12===e?"OVERLAY_WIDGET":"UNKNOWN"}},{key:"toString",value:function(e){return this._typeToString(e.type)+": "+e.position+" - "+e.range+" - "+e.detail}}]),e}(),_e=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"isTextArea",value:function(e){return 2===e.length&&3===e[0]&&6===e[1]}},{key:"isChildOfViewLines",value:function(e){return e.length>=4&&3===e[0]&&7===e[3]}},{key:"isStrictChildOfViewLines",value:function(e){return e.length>4&&3===e[0]&&7===e[3]}},{key:"isChildOfScrollableElement",value:function(e){return e.length>=2&&3===e[0]&&5===e[1]}},{key:"isChildOfMinimap",value:function(e){return e.length>=2&&3===e[0]&&8===e[1]}},{key:"isChildOfContentWidgets",value:function(e){return e.length>=4&&3===e[0]&&1===e[3]}},{key:"isChildOfOverflowingContentWidgets",value:function(e){return e.length>=1&&2===e[0]}},{key:"isChildOfOverlayWidgets",value:function(e){return e.length>=2&&3===e[0]&&4===e[1]}}]),e}(),ye=function(){function e(t,n,i){(0,c.Z)(this,e),this.model=t.model;var r=t.configuration.options;this.layoutInfo=r.get(127),this.viewDomNode=n.viewDomNode,this.lineHeight=r.get(55),this.stickyTabStops=r.get(101),this.typicalHalfwidthCharacterWidth=r.get(40).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=t,this._viewHelper=n}return(0,d.Z)(e,[{key:"getZoneAtCoord",value:function(t){return e.getZoneAtCoord(this._context,t)}},{key:"getFullLineRangeAtCoord",value:function(e){if(this._context.viewLayout.isAfterLines(e)){var t=this._context.model.getLineCount(),n=this._context.model.getLineMaxColumn(t);return{range:new fe.e(t,n,t,n),isAfterLines:!0}}var i=this._context.viewLayout.getLineNumberAtVerticalOffset(e),r=this._context.model.getLineMaxColumn(i);return{range:new fe.e(i,1,i,r),isAfterLines:!1}}},{key:"getLineNumberAtVerticalOffset",value:function(e){return this._context.viewLayout.getLineNumberAtVerticalOffset(e)}},{key:"isAfterLines",value:function(e){return this._context.viewLayout.isAfterLines(e)}},{key:"isInTopPadding",value:function(e){return this._context.viewLayout.isInTopPadding(e)}},{key:"isInBottomPadding",value:function(e){return this._context.viewLayout.isInBottomPadding(e)}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this._context.viewLayout.getVerticalOffsetForLineNumber(e)}},{key:"findAttribute",value:function(t,n){return e._findAttribute(t,n,this._viewHelper.viewDomNode)}},{key:"getLineWidth",value:function(e){return this._viewHelper.getLineWidth(e)}},{key:"visibleRangeForPosition",value:function(e,t){return this._viewHelper.visibleRangeForPosition(e,t)}},{key:"getPositionFromDOMInfo",value:function(e,t){return this._viewHelper.getPositionFromDOMInfo(e,t)}},{key:"getCurrentScrollTop",value:function(){return this._context.viewLayout.getCurrentScrollTop()}},{key:"getCurrentScrollLeft",value:function(){return this._context.viewLayout.getCurrentScrollLeft()}}],[{key:"getZoneAtCoord",value:function(e,t){var n=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(n){var i,r=n.verticalOffset+n.height/2,o=e.model.getLineCount(),a=null,s=null;return n.afterLineNumber!==o&&(s=new he.L(n.afterLineNumber+1,1)),n.afterLineNumber>0&&(a=new he.L(n.afterLineNumber,e.model.getLineMaxColumn(n.afterLineNumber))),i=null===s?a:null===a?s:t<r?a:s,{viewZoneId:n.id,afterLineNumber:n.afterLineNumber,positionBefore:a,positionAfter:s,position:i}}return null}},{key:"_findAttribute",value:function(e,t,n){for(;e&&e!==document.body;){if(e.hasAttribute&&e.hasAttribute(t))return e.getAttribute(t);if(e===n)return null;e=e.parentNode}return null}}]),e}(),be=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o){var a;return(0,c.Z)(this,n),(a=t.call(this,e,i,r))._ctx=e,o?(a.target=o,a.targetPath=W.collect(o,e.viewDomNode)):(a.target=null,a.targetPath=new Uint8Array(0)),a}return(0,d.Z)(n,[{key:"toString",value:function(){return"pos(".concat(this.pos.x,",").concat(this.pos.y,"), editorPos(").concat(this.editorPos.x,",").concat(this.editorPos.y,"), mouseVerticalOffset: ").concat(this.mouseVerticalOffset,", mouseContentHorizontalOffset: ").concat(this.mouseContentHorizontalOffset,"\n\ttarget: ").concat(this.target?this.target.outerHTML:null)}},{key:"fulfill",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=this.mouseColumn;return t&&t.column<this._ctx.model.getLineMaxColumn(t.lineNumber)&&(r=pe.io.visibleColumnFromColumn(this._ctx.model.getLineContent(t.lineNumber),t.column,this._ctx.model.getTextModelOptions().tabSize)+1),new me(this.target,e,r,t,n,i)}},{key:"withTarget",value:function(e){return new n(this._ctx,this.editorPos,this.pos,e)}}]),n}((0,d.Z)((function e(t,n,i){(0,c.Z)(this,e),this.editorPos=n,this.pos=i,this.mouseVerticalOffset=Math.max(0,t.getCurrentScrollTop()+i.y-n.y),this.mouseContentHorizontalOffset=t.getCurrentScrollLeft()+i.x-n.x-t.layoutInfo.contentLeft,this.isInMarginArea=i.x-n.x<t.layoutInfo.contentLeft&&i.x-n.x>=t.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,ke._getMouseColumn(this.mouseContentHorizontalOffset,t.typicalHalfwidthCharacterWidth))}))),we={isAfterLines:!0};function Ce(e){return{isAfterLines:!1,horizontalDistanceToText:e}}var ke=function(){function e(t,n){(0,c.Z)(this,e),this._context=t,this._viewHelper=n}return(0,d.Z)(e,[{key:"mouseTargetIsWidget",value:function(e){var t=e.target,n=W.collect(t,this._viewHelper.viewDomNode);return!(!_e.isChildOfContentWidgets(n)&&!_e.isChildOfOverflowingContentWidgets(n))||!!_e.isChildOfOverlayWidgets(n)}},{key:"createMouseTarget",value:function(t,n,i,r){var o=new ye(this._context,this._viewHelper,t),a=new be(o,n,i,r);try{return e._createMouseTarget(o,a,!1)}catch(s){return a.fulfill(0)}}},{key:"getMouseColumn",value:function(t,n){var i=this._context.configuration.options,r=i.get(127),o=this._context.viewLayout.getCurrentScrollLeft()+n.x-t.x-r.contentLeft;return e._getMouseColumn(o,i.get(40).typicalHalfwidthCharacterWidth)}}],[{key:"_createMouseTarget",value:function(t,n,i){if(null===n.target){if(i)return n.fulfill(0);var r=e._doHitTest(t,n);return r.position?e.createMouseTargetFromHitTestPosition(t,n,r.position.lineNumber,r.position.column):this._createMouseTarget(t,n.withTarget(r.hitTarget),!0)}var o=n,a=null;return(a=(a=(a=(a=(a=(a=(a=(a=(a=(a=a||e._hitTestContentWidget(t,o))||e._hitTestOverlayWidget(t,o))||e._hitTestMinimap(t,o))||e._hitTestScrollbarSlider(t,o))||e._hitTestViewZone(t,o))||e._hitTestMargin(t,o))||e._hitTestViewCursor(t,o))||e._hitTestTextArea(t,o))||e._hitTestViewLines(t,o,i))||e._hitTestScrollbar(t,o))||n.fulfill(0)}},{key:"_hitTestContentWidget",value:function(e,t){if(_e.isChildOfContentWidgets(t.targetPath)||_e.isChildOfOverflowingContentWidgets(t.targetPath)){var n=e.findAttribute(t.target,"widgetId");return n?t.fulfill(9,null,null,n):t.fulfill(0)}return null}},{key:"_hitTestOverlayWidget",value:function(e,t){if(_e.isChildOfOverlayWidgets(t.targetPath)){var n=e.findAttribute(t.target,"widgetId");return n?t.fulfill(12,null,null,n):t.fulfill(0)}return null}},{key:"_hitTestViewCursor",value:function(e,t){if(t.target){var n,i=e.lastRenderData.lastViewCursorsRenderData,o=(0,r.Z)(i);try{for(o.s();!(n=o.n()).done;){var a=n.value;if(t.target===a.domNode)return t.fulfill(6,a.position)}}catch(p){o.e(p)}finally{o.f()}}if(t.isInContentArea){var s,u=e.lastRenderData.lastViewCursorsRenderData,l=t.mouseContentHorizontalOffset,c=t.mouseVerticalOffset,d=(0,r.Z)(u);try{for(d.s();!(s=d.n()).done;){var h=s.value;if(!(l<h.contentLeft)&&!(l>h.contentLeft+h.width)){var f=e.getVerticalOffsetForLineNumber(h.position.lineNumber);if(f<=c&&c<=f+h.height)return t.fulfill(6,h.position)}}}catch(p){d.e(p)}finally{d.f()}}return null}},{key:"_hitTestViewZone",value:function(e,t){var n=e.getZoneAtCoord(t.mouseVerticalOffset);if(n){var i=t.isInContentArea?8:5;return t.fulfill(i,n.position,null,n)}return null}},{key:"_hitTestTextArea",value:function(e,t){return _e.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfill(6,e.lastRenderData.lastTextareaPosition):t.fulfill(1,e.lastRenderData.lastTextareaPosition):null}},{key:"_hitTestMargin",value:function(e,t){if(t.isInMarginArea){var n=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),i=n.range.getStartPosition(),r=Math.abs(t.pos.x-t.editorPos.x),o={isAfterLines:n.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:r};return(r-=e.layoutInfo.glyphMarginLeft)<=e.layoutInfo.glyphMarginWidth?t.fulfill(2,i,n.range,o):(r-=e.layoutInfo.glyphMarginWidth)<=e.layoutInfo.lineNumbersWidth?t.fulfill(3,i,n.range,o):(r-=e.layoutInfo.lineNumbersWidth,t.fulfill(4,i,n.range,o))}return null}},{key:"_hitTestViewLines",value:function(t,n,i){if(!_e.isChildOfViewLines(n.targetPath))return null;if(t.isInTopPadding(n.mouseVerticalOffset))return n.fulfill(7,new he.L(1,1),void 0,we);if(t.isAfterLines(n.mouseVerticalOffset)||t.isInBottomPadding(n.mouseVerticalOffset)){var r=t.model.getLineCount(),o=t.model.getLineMaxColumn(r);return n.fulfill(7,new he.L(r,o),void 0,we)}if(i){if(_e.isStrictChildOfViewLines(n.targetPath)){var a=t.getLineNumberAtVerticalOffset(n.mouseVerticalOffset);if(0===t.model.getLineLength(a)){var s=t.getLineWidth(a),u=Ce(n.mouseContentHorizontalOffset-s);return n.fulfill(7,new he.L(a,1),void 0,u)}var l=t.getLineWidth(a);if(n.mouseContentHorizontalOffset>=l){var c=Ce(n.mouseContentHorizontalOffset-l),d=new he.L(a,t.model.getLineMaxColumn(a));return n.fulfill(7,d,void 0,c)}}return n.fulfill(0)}var h=e._doHitTest(t,n);return h.position?e.createMouseTargetFromHitTestPosition(t,n,h.position.lineNumber,h.position.column):this._createMouseTarget(t,n.withTarget(h.hitTarget),!0)}},{key:"_hitTestMinimap",value:function(e,t){if(_e.isChildOfMinimap(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(11,new he.L(n,i))}return null}},{key:"_hitTestScrollbarSlider",value:function(e,t){if(_e.isChildOfScrollableElement(t.targetPath)&&t.target&&1===t.target.nodeType){var n=t.target.className;if(n&&/\b(slider|scrollbar)\b/.test(n)){var i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.model.getLineMaxColumn(i);return t.fulfill(11,new he.L(i,r))}}return null}},{key:"_hitTestScrollbar",value:function(e,t){if(_e.isChildOfScrollableElement(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(11,new he.L(n,i))}return null}},{key:"_getMouseColumn",value:function(e,t){return e<0?1:Math.round(e/t)+1}},{key:"createMouseTargetFromHitTestPosition",value:function(e,t,n,i){var r=new he.L(n,i),o=e.getLineWidth(n);if(t.mouseContentHorizontalOffset>o){var a=Ce(t.mouseContentHorizontalOffset-o);return t.fulfill(7,r,void 0,a)}var s=e.visibleRangeForPosition(n,i);if(!s)return t.fulfill(0,r);var u=s.left;if(t.mouseContentHorizontalOffset===u)return t.fulfill(6,r);var l=[];if(l.push({offset:s.left,column:i}),i>1){var c=e.visibleRangeForPosition(n,i-1);c&&l.push({offset:c.left,column:i-1})}if(i<e.model.getLineMaxColumn(n)){var d=e.visibleRangeForPosition(n,i+1);d&&l.push({offset:d.left,column:i+1})}l.sort((function(e,t){return e.offset-t.offset}));for(var h=1;h<l.length;h++){var f=l[h-1],p=l[h];if(f.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=p.offset){var v=new fe.e(n,f.column,n,p.column);return t.fulfill(6,r,v)}}return t.fulfill(6,r)}},{key:"_doHitTestWithCaretRangeFromPoint",value:function(e,t){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.getVerticalOffsetForLineNumber(n)+Math.floor(e.lineHeight/2),r=t.pos.y+(i-t.mouseVerticalOffset);r<=t.editorPos.y&&(r=t.editorPos.y+1),r>=t.editorPos.y+e.layoutInfo.height&&(r=t.editorPos.y+e.layoutInfo.height-1);var o=new I(t.pos.x,r),a=this._actualDoHitTestWithCaretRangeFromPoint(e,o.toClientCoordinates());return a.position?a:this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())}},{key:"_actualDoHitTestWithCaretRangeFromPoint",value:function(e,t){var n,i=_.getShadowRoot(e.viewDomNode);if(n=i?"undefined"===typeof i.caretRangeFromPoint?function(e,t,n){var i=document.createRange(),r=e.elementFromPoint(t,n);if(null!==r){for(;r&&r.firstChild&&r.firstChild.nodeType!==r.firstChild.TEXT_NODE&&r.lastChild&&r.lastChild.firstChild;)r=r.lastChild;var o,a=r.getBoundingClientRect(),s=window.getComputedStyle(r,null).getPropertyValue("font"),u=r.innerText,l=a.left,c=0;if(t>a.left+a.width)c=u.length;else for(var d=Se.getInstance(),h=0;h<u.length+1;h++){if(t<(l+=o=d.getCharWidth(u.charAt(h),s)/2)){c=h;break}l+=o}i.setStart(r.firstChild,c),i.setEnd(r.firstChild,c)}return i}(i,t.clientX,t.clientY):i.caretRangeFromPoint(t.clientX,t.clientY):document.caretRangeFromPoint(t.clientX,t.clientY),!n||!n.startContainer)return{position:null,hitTarget:null};var r=n.startContainer,o=null;if(r.nodeType===r.TEXT_NODE){var a=r.parentNode,s=a?a.parentNode:null,u=s?s.parentNode:null;if((u&&u.nodeType===u.ELEMENT_NODE?u.className:null)===oe.CLASS_NAME)return{position:e.getPositionFromDOMInfo(a,n.startOffset),hitTarget:null};o=r.parentNode}else if(r.nodeType===r.ELEMENT_NODE){var l=r.parentNode,c=l?l.parentNode:null;if((c&&c.nodeType===c.ELEMENT_NODE?c.className:null)===oe.CLASS_NAME)return{position:e.getPositionFromDOMInfo(r,r.textContent.length),hitTarget:null};o=r}return{position:null,hitTarget:o}}},{key:"_doHitTestWithCaretPositionFromPoint",value:function(e,t){var n=document.caretPositionFromPoint(t.clientX,t.clientY);if(n.offsetNode.nodeType===n.offsetNode.TEXT_NODE){var i=n.offsetNode.parentNode,r=i?i.parentNode:null,o=r?r.parentNode:null;return(o&&o.nodeType===o.ELEMENT_NODE?o.className:null)===oe.CLASS_NAME?{position:e.getPositionFromDOMInfo(n.offsetNode.parentNode,n.offset),hitTarget:null}:{position:null,hitTarget:n.offsetNode.parentNode}}if(n.offsetNode.nodeType===n.offsetNode.ELEMENT_NODE){var a=n.offsetNode.parentNode,s=a&&a.nodeType===a.ELEMENT_NODE?a.className:null,u=a?a.parentNode:null,l=u&&u.nodeType===u.ELEMENT_NODE?u.className:null;if(s===oe.CLASS_NAME){var c=n.offsetNode.childNodes[Math.min(n.offset,n.offsetNode.childNodes.length-1)];if(c)return{position:e.getPositionFromDOMInfo(c,0),hitTarget:null}}else if(l===oe.CLASS_NAME){return{position:e.getPositionFromDOMInfo(n.offsetNode,0),hitTarget:null}}}return{position:null,hitTarget:n.offsetNode}}},{key:"_snapToSoftTabBoundary",value:function(e,t){var n=t.getLineContent(e.lineNumber),i=t.getTextModelOptions().tabSize,r=ve.l.atomicPosition(n,e.column-1,i,2);return-1!==r?new he.L(e.lineNumber,r+1):e}},{key:"_doHitTest",value:function(e,t){var n;return(n="function"===typeof document.caretRangeFromPoint?this._doHitTestWithCaretRangeFromPoint(e,t):document.caretPositionFromPoint?this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates()):{position:null,hitTarget:null}).position&&e.stickyTabStops&&(n.position=this._snapToSoftTabBoundary(n.position,e.model)),n}}]),e}();var Se=function(){function e(){(0,c.Z)(this,e),this._cache={},this._canvas=document.createElement("canvas")}return(0,d.Z)(e,[{key:"getCharWidth",value:function(e,t){var n=e+t;if(this._cache[n])return this._cache[n];var i=this._canvas.getContext("2d");i.font=t;var r=i.measureText(e).width;return this._cache[n]=r,r}}],[{key:"getInstance",value:function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE}}]),e}();Se._INSTANCE=null;var xe=n(51164);function Le(e){return function(t,n){var i=!1;return e&&(i=e.mouseTargetIsWidget(n)),i||n.preventDefault(),n}}var Ee=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var a;(0,c.Z)(this,n),(a=t.call(this))._context=e,a.viewController=i,a.viewHelper=r,a.mouseTargetFactory=new ke(a._context,r),a._mouseDownOperation=a._register(new Ne(a._context,a.viewController,a.viewHelper,(function(e,t){return a._createMouseTarget(e,t)}),(function(e){return a._getMouseColumn(e)}))),a.lastMouseLeaveTime=-1,a._height=a._context.configuration.options.get(127).height;var s=new F(a.viewHelper.viewDomNode);a._register(s.onContextMenu(a.viewHelper.viewDomNode,(function(e){return a._onContextMenu(e,!0)}))),a._register(s.onMouseMoveThrottled(a.viewHelper.viewDomNode,(function(e){return a._onMouseMove(e)}),Le(a.mouseTargetFactory),n.MOUSE_MOVE_MINIMUM_TIME)),a._register(s.onMouseUp(a.viewHelper.viewDomNode,(function(e){return a._onMouseUp(e)}))),a._register(s.onMouseLeave(a.viewHelper.viewDomNode,(function(e){return a._onMouseLeave(e)}))),a._register(s.onMouseDown(a.viewHelper.viewDomNode,(function(e){return a._onMouseDown(e)})));return a._register(_.addDisposableListener(a.viewHelper.viewDomNode,_.EventType.MOUSE_WHEEL,(function(e){if(a.viewController.emitMouseWheel(e),a._context.configuration.options.get(64)){var t=new M.q(e);if(N.dz?(e.metaKey||e.ctrlKey)&&!e.shiftKey&&!e.altKey:e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey){var n=xe.C.getZoomLevel(),i=t.deltaY>0?1:-1;xe.C.setZoomLevel(n+i),t.preventDefault(),t.stopPropagation()}}}),{capture:!0,passive:!1})),a._context.addEventHandler((0,o.Z)(a)),a}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){if(e.hasChanged(127)){var t=this._context.configuration.options.get(127).height;this._height!==t&&(this._height=t,this._mouseDownOperation.onHeightChanged())}return!1}},{key:"onCursorStateChanged",value:function(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}},{key:"onFocusChanged",value:function(e){return!1}},{key:"onScrollChanged",value:function(e){return this._mouseDownOperation.onScrollChanged(),!1}},{key:"getTargetAtClientPoint",value:function(e,t){var n=new A(e,t).toPageCoordinates(),i=R(this.viewHelper.viewDomNode);return n.y<i.y||n.y>i.y+i.height||n.x<i.x||n.x>i.x+i.width?null:this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),i,n,null)}},{key:"_createMouseTarget",value:function(e,t){return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,t?e.target:null)}},{key:"_getMouseColumn",value:function(e){return this.mouseTargetFactory.getMouseColumn(e.editorPos,e.pos)}},{key:"_onContextMenu",value:function(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}},{key:"_onMouseMove",value:function(e){this._mouseDownOperation.isActive()||(e.timestamp<this.lastMouseLeaveTime||this.viewController.emitMouseMove({event:e,target:this._createMouseTarget(e,!0)}))}},{key:"_onMouseLeave",value:function(e){this.lastMouseLeaveTime=(new Date).getTime(),this.viewController.emitMouseLeave({event:e,target:null})}},{key:"_onMouseUp",value:function(e){this.viewController.emitMouseUp({event:e,target:this._createMouseTarget(e,!0)})}},{key:"_onMouseDown",value:function(e){var t=this,n=this._createMouseTarget(e,!0),i=6===n.type||7===n.type,r=2===n.type||3===n.type||4===n.type,o=3===n.type,a=this._context.configuration.options.get(95),s=8===n.type||5===n.type,u=9===n.type,l=e.leftButton||e.middleButton;N.dz&&e.leftButton&&e.ctrlKey&&(l=!1);var c=function(){e.preventDefault(),t.viewHelper.focusTextArea()};if(l&&(i||o&&a))c(),this._mouseDownOperation.start(n.type,e);else if(r)e.preventDefault();else if(s){var d=n.detail;this.viewHelper.shouldSuppressMouseDownOnViewZone(d.viewZoneId)&&(c(),this._mouseDownOperation.start(n.type,e),e.preventDefault())}else u&&this.viewHelper.shouldSuppressMouseDownOnWidget(n.detail)&&(c(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:n})}}]),n}(B);Ee.MOUSE_MOVE_MINIMUM_TIME=100;var Ne=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o,a){var s;return(0,c.Z)(this,n),(s=t.call(this))._context=e,s._viewController=i,s._viewHelper=r,s._createMouseTarget=o,s._getMouseColumn=a,s._mouseMoveMonitor=s._register(new H(s._viewHelper.viewDomNode)),s._onScrollTimeout=s._register(new T._F),s._mouseState=new De,s._currentSelection=new L.Y(1,1,1,1),s._isActive=!1,s._lastMouseEvent=null,s}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"isActive",value:function(){return this._isActive}},{key:"_onMouseDownThenMove",value:function(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);var t=this._findMousePosition(e,!0);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):this._dispatchMouse(t,!0))}},{key:"start",value:function(e,t){var n=this;this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(3===e),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);var i=this._findMousePosition(t,!0);if(i&&i.position){this._mouseState.trySetCount(t.detail,i.position),t.detail=this._mouseState.count;var r=this._context.configuration.options;if(!r.get(77)&&r.get(29)&&!r.get(16)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&6===i.type&&i.position&&this._currentSelection.containsPosition(i.position))return this._mouseState.isDragAndDrop=!0,this._isActive=!0,void this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,Le(null),(function(e){return n._onMouseDownThenMove(e)}),(function(e){var t=n._findMousePosition(n._lastMouseEvent,!0);e&&e instanceof KeyboardEvent?n._viewController.emitMouseDropCanceled():n._viewController.emitMouseDrop({event:n._lastMouseEvent,target:t?n._createMouseTarget(n._lastMouseEvent,!0):null}),n._stop()}));this._mouseState.isDragAndDrop=!1,this._dispatchMouse(i,t.shiftKey),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,Le(null),(function(e){return n._onMouseDownThenMove(e)}),(function(){return n._stop()})))}}},{key:"_stop",value:function(){this._isActive=!1,this._onScrollTimeout.cancel()}},{key:"onHeightChanged",value:function(){this._mouseMoveMonitor.stopMonitoring()}},{key:"onScrollChanged",value:function(){var e=this;this._isActive&&this._onScrollTimeout.setIfNotSet((function(){if(e._lastMouseEvent){var t=e._findMousePosition(e._lastMouseEvent,!1);t&&(e._mouseState.isDragAndDrop||e._dispatchMouse(t,!0))}}),10)}},{key:"onCursorStateChanged",value:function(e){this._currentSelection=e.selections[0]}},{key:"_getPositionOutsideEditor",value:function(e){var t=e.editorPos,n=this._context.model,i=this._context.viewLayout,r=this._getMouseColumn(e);if(e.posy<t.y){var o=Math.max(i.getCurrentScrollTop()-(t.y-e.posy),0),a=ye.getZoneAtCoord(this._context,o);if(a){var s=this._helpPositionJumpOverViewZone(a);if(s)return new me(null,13,r,s)}var u=i.getLineNumberAtVerticalOffset(o);return new me(null,13,r,new he.L(u,1))}if(e.posy>t.y+t.height){var l=i.getCurrentScrollTop()+(e.posy-t.y),c=ye.getZoneAtCoord(this._context,l);if(c){var d=this._helpPositionJumpOverViewZone(c);if(d)return new me(null,13,r,d)}var h=i.getLineNumberAtVerticalOffset(l);return new me(null,13,r,new he.L(h,n.getLineMaxColumn(h)))}var f=i.getLineNumberAtVerticalOffset(i.getCurrentScrollTop()+(e.posy-t.y));return e.posx<t.x?new me(null,13,r,new he.L(f,1)):e.posx>t.x+t.width?new me(null,13,r,new he.L(f,n.getLineMaxColumn(f))):null}},{key:"_findMousePosition",value:function(e,t){var n=this._getPositionOutsideEditor(e);if(n)return n;var i=this._createMouseTarget(e,t);if(!i.position)return null;if(8===i.type||5===i.type){var r=this._helpPositionJumpOverViewZone(i.detail);if(r)return new me(i.element,i.type,i.mouseColumn,r,null,i.detail)}return i}},{key:"_helpPositionJumpOverViewZone",value:function(e){var t=new he.L(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),n=e.positionBefore,i=e.positionAfter;return n&&i?n.isBefore(t)?n:i:null}},{key:"_dispatchMouse",value:function(e,t){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton})}}]),n}(w.JT),De=function(){function e(){(0,c.Z)(this,e),this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}return(0,d.Z)(e,[{key:"altKey",get:function(){return this._altKey}},{key:"ctrlKey",get:function(){return this._ctrlKey}},{key:"metaKey",get:function(){return this._metaKey}},{key:"shiftKey",get:function(){return this._shiftKey}},{key:"leftButton",get:function(){return this._leftButton}},{key:"middleButton",get:function(){return this._middleButton}},{key:"startedOnLineNumbers",get:function(){return this._startedOnLineNumbers}},{key:"count",get:function(){return this._lastMouseDownCount}},{key:"setModifiers",value:function(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}},{key:"setStartButtons",value:function(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}},{key:"setStartedOnLineNumbers",value:function(e){this._startedOnLineNumbers=e}},{key:"trySetCount",value:function(t,n){var i=(new Date).getTime();i-this._lastSetMouseDownCountTime>e.CLEAR_MOUSE_DOWN_COUNT_TIME&&(t=1),this._lastSetMouseDownCountTime=i,t>this._lastMouseDownCount+1&&(t=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(n)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=n,this._lastMouseDownCount=Math.min(t,this._lastMouseDownPositionEqualCount)}}]),e}();De.CLEAR_MOUSE_DOWN_COUNT_TIME=400;var Me=n(32721),Te=n(83106),Oe=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;(0,c.Z)(this,n),(o=t.call(this,e,i,r))._register(D.o.addTarget(o.viewHelper.linesContentDomNode)),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Tap,(function(e){return o.onTap(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Change,(function(e){return o.onChange(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Contextmenu,(function(e){return o._onContextMenu(new Z(e,o.viewHelper.viewDomNode),!1)}))),o._lastPointerType="mouse",o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,"pointerdown",(function(e){var t=e.pointerType;o._lastPointerType="mouse"!==t?"touch"===t?"touch":"pen":"mouse"})));var a=new j(o.viewHelper.viewDomNode);return o._register(a.onPointerMoveThrottled(o.viewHelper.viewDomNode,(function(e){return o._onMouseMove(e)}),Le(o.mouseTargetFactory),Ee.MOUSE_MOVE_MINIMUM_TIME)),o._register(a.onPointerUp(o.viewHelper.viewDomNode,(function(e){return o._onMouseUp(e)}))),o._register(a.onPointerLeave(o.viewHelper.viewDomNode,(function(e){return o._onMouseLeave(e)}))),o._register(a.onPointerDown(o.viewHelper.viewDomNode,(function(e){return o._onMouseDown(e)}))),o}return(0,d.Z)(n,[{key:"onTap",value:function(e){if(e.initialTarget&&this.viewHelper.linesContentDomNode.contains(e.initialTarget)){e.preventDefault(),this.viewHelper.focusTextArea();var t=this._createMouseTarget(new Z(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.dispatchMouse({position:t.position,mouseColumn:t.position.column,startedOnLineNumbers:!1,mouseDownCount:e.tapCount,inSelectionMode:!1,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1})}}},{key:"onChange",value:function(e){"touch"===this._lastPointerType&&this._context.model.deltaScrollNow(-e.translationX,-e.translationY)}},{key:"_onMouseDown",value:function(e){"touch"!==e.browserEvent.pointerType&&(0,a.Z)((0,s.Z)(n.prototype),"_onMouseDown",this).call(this,e)}}]),n}(Ee),Ie=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;return(0,c.Z)(this,n),(o=t.call(this,e,i,r))._register(D.o.addTarget(o.viewHelper.linesContentDomNode)),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Tap,(function(e){return o.onTap(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Change,(function(e){return o.onChange(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,D.t.Contextmenu,(function(e){return o._onContextMenu(new Z(e,o.viewHelper.viewDomNode),!1)}))),o}return(0,d.Z)(n,[{key:"onTap",value:function(e){e.preventDefault(),this.viewHelper.focusTextArea();var t=this._createMouseTarget(new Z(e,this.viewHelper.viewDomNode),!1);if(t.position){var n=document.createEvent("CustomEvent");n.initEvent(Te.pd.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(n),this.viewController.moveTo(t.position)}}},{key:"onChange",value:function(e){this._context.model.deltaScrollNow(-e.translationX,-e.translationY)}}]),n}(Ee),Ae=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;return(0,c.Z)(this,n),o=t.call(this),N.gn&&Me.D.pointerEvents?o.handler=o._register(new Oe(e,i,r)):window.TouchEvent?o.handler=o._register(new Ie(e,i,r)):o.handler=o._register(new Ee(e,i,r)),o}return(0,d.Z)(n,[{key:"getTargetAtClientPoint",value:function(e,t){return this.handler.getTargetAtClientPoint(e,t)}}]),n}(w.JT),Pe=n(51747),Re=n(90224),Ze=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n)}(B),Fe=n(80449),je=n(70182),He=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._context=e,i._readConfig(),i._lastCursorModelPosition=new he.L(1,1),i._renderResult=null,i._activeLineNumber=1,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"_readConfig",value:function(){var e=this._context.configuration.options;this._lineHeight=e.get(55);var t=e.get(56);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(81);var n=e.get(127);this._lineNumbersLeft=n.lineNumbersLeft,this._lineNumbersWidth=n.lineNumbersWidth}},{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){return this._readConfig(),!0}},{key:"onCursorStateChanged",value:function(e){var t=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(t);var n=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,n=!0),2!==this._renderLineNumbers&&3!==this._renderLineNumbers||(n=!0),n}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getLineRenderLineNumber",value:function(e){var t=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new he.L(e,1));if(1!==t.column)return"";var n=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(n);if(2===this._renderLineNumbers){var i=Math.abs(this._lastCursorModelPosition.lineNumber-n);return 0===i?'<span class="relative-current-line-number">'+n+"</span>":String(i)}return 3===this._renderLineNumbers?this._lastCursorModelPosition.lineNumber===n||n%10===0?String(n):"":String(n)}},{key:"prepareRender",value:function(e){if(0!==this._renderLineNumbers){for(var t=N.IJ?this._lineHeight%2===0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,o='<div class="'+n.CLASS_NAME+t+'" style="left:'+this._lineNumbersLeft+"px;width:"+this._lineNumbersWidth+'px;">',a=this._context.model.getLineCount(),s=[],u=i;u<=r;u++){var l=u-i;if(this._renderFinalNewline||u!==a||0!==this._context.model.getLineLength(u)){var c=this._getLineRenderLineNumber(u);c?u===this._activeLineNumber?s[l]='<div class="active-line-number '+n.CLASS_NAME+t+'" style="left:'+this._lineNumbersLeft+"px;width:"+this._lineNumbersWidth+'px;">'+c+"</div>":s[l]=o+c+"</div>":s[l]=""}else s[l]=""}this._renderResult=s}else this._renderResult=null}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(Ze);He.CLASS_NAME="line-numbers",(0,je.Ic)((function(e,t){var n=e.getColor(Fe.hw);n&&t.addRule(".monaco-editor .line-numbers { color: ".concat(n,"; }"));var i=e.getColor(Fe.DD);i&&t.addRule(".monaco-editor .line-numbers.active-line-number { color: ".concat(i,"; }"))}));var Be=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options,o=r.get(127);return i._canUseLayerHinting=!r.get(26),i._contentLeft=o.contentLeft,i._glyphMarginLeft=o.glyphMarginLeft,i._glyphMarginWidth=o.glyphMarginWidth,i._domNode=(0,E.X)(document.createElement("div")),i._domNode.setClassName(n.OUTER_CLASS_NAME),i._domNode.setPosition("absolute"),i._domNode.setAttribute("role","presentation"),i._domNode.setAttribute("aria-hidden","true"),i._glyphMarginBackgroundDomNode=(0,E.X)(document.createElement("div")),i._glyphMarginBackgroundDomNode.setClassName(n.CLASS_NAME),i._domNode.appendChild(i._glyphMarginBackgroundDomNode),i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"getDomNode",value:function(){return this._domNode}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._canUseLayerHinting=!t.get(26),this._contentLeft=n.contentLeft,this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,!0}},{key:"onScrollChanged",value:function(e){return(0,a.Z)((0,s.Z)(n.prototype),"onScrollChanged",this).call(this,e)||e.scrollTopChanged}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain("strict");var t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);var n=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(n),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(n)}}]),n}(z);Be.CLASS_NAME="glyph-margin",Be.OUTER_CLASS_NAME="margin";var ze=n(20937),We=n(79026),Ve=function(){function e(t,n,i){(0,c.Z)(this,e),this.top=t,this.left=n,this.width=i}return(0,d.Z)(e,[{key:"setWidth",value:function(t){return new e(this.top,this.left,t)}}]),e}(),Ye=x.vU,Ue=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,r,o){var a;(0,c.Z)(this,n),(a=t.call(this,e))._primaryCursorPosition=new he.L(1,1),a._primaryCursorVisibleRange=null,a._viewController=r,a._viewHelper=o,a._scrollLeft=0,a._scrollTop=0;var s=a._context.configuration.options,u=s.get(127);a._setAccessibilityOptions(s),a._contentLeft=u.contentLeft,a._contentWidth=u.contentWidth,a._contentHeight=u.height,a._fontInfo=s.get(40),a._lineHeight=s.get(55),a._emptySelectionClipboard=s.get(30),a._copyWithSyntaxHighlighting=s.get(19),a._visibleTextArea=null,a._selections=[new L.Y(1,1,1,1)],a._modelSelections=[new L.Y(1,1,1,1)],a._lastRenderPosition=null,a.textArea=(0,E.X)(document.createElement("textarea")),W.write(a.textArea,6),a.textArea.setClassName("inputarea ".concat(We.S)),a.textArea.setAttribute("wrap","off"),a.textArea.setAttribute("autocorrect","off"),a.textArea.setAttribute("autocapitalize","off"),a.textArea.setAttribute("autocomplete","off"),a.textArea.setAttribute("spellcheck","false"),a.textArea.setAttribute("aria-label",a._getAriaLabel(s)),a.textArea.setAttribute("tabindex",String(s.get(109))),a.textArea.setAttribute("role","textbox"),a.textArea.setAttribute("aria-roledescription",m.N("editor","editor")),a.textArea.setAttribute("aria-multiline","true"),a.textArea.setAttribute("aria-haspopup","false"),a.textArea.setAttribute("aria-autocomplete","both"),s.get(28)&&s.get(77)&&a.textArea.setAttribute("readonly","true"),a.textAreaCover=(0,E.X)(document.createElement("div")),a.textAreaCover.setPosition("absolute");var l={getLineCount:function(){return a._context.model.getLineCount()},getLineMaxColumn:function(e){return a._context.model.getLineMaxColumn(e)},getValueInRange:function(e,t){return a._context.model.getValueInRange(e,t)}},d={getDataToCopy:function(e){var t=a._context.model.getPlainTextToCopy(a._modelSelections,a._emptySelectionClipboard,N.ED),n=a._context.model.getEOL(),i=a._emptySelectionClipboard&&1===a._modelSelections.length&&a._modelSelections[0].isEmpty(),r=Array.isArray(t)?t:null,o=Array.isArray(t)?t.join(n):t,s=void 0,u=null;if(e&&(Te.RA.forceCopyWithSyntaxHighlighting||a._copyWithSyntaxHighlighting&&o.length<65536)){var l=a._context.model.getRichTextToCopy(a._modelSelections,a._emptySelectionClipboard);l&&(s=l.html,u=l.mode)}return{isFromEmptySelection:i,multicursorText:r,text:o,html:s,mode:u}},getScreenReaderContent:function(e){if(1===a._accessibilitySupport){if(N.dz){var t=a._selections[0];if(t.isEmpty()){var n=t.getStartPosition(),r=a._getWordBeforePosition(n);if(0===r.length&&(r=a._getCharacterBeforePosition(n)),r.length>0)return new Re.un(r,r.length,r.length,n,n)}}return Re.un.EMPTY}if(x.Dt){var o=a._selections[0];if(o.isEmpty()){var s=o.getStartPosition(),u=a._getAndroidWordAtPosition(s),c=(0,i.Z)(u,2),d=c[0],h=c[1];if(d.length>0)return new Re.un(d,h,h,s,s)}return Re.un.EMPTY}return Re.ee.fromEditorSelection(e,l,a._selections[0],a._accessibilityPageSize,0===a._accessibilitySupport)},deduceModelPosition:function(e,t,n){return a._context.model.deduceModelPositionRelativeToViewPosition(e,t,n)}};return a._textAreaInput=a._register(new Te.Fz(d,a.textArea)),a._register(a._textAreaInput.onKeyDown((function(e){a._viewController.emitKeyDown(e)}))),a._register(a._textAreaInput.onKeyUp((function(e){a._viewController.emitKeyUp(e)}))),a._register(a._textAreaInput.onPaste((function(e){var t=!1,n=null,i=null;e.metadata&&(t=a._emptySelectionClipboard&&!!e.metadata.isFromEmptySelection,n="undefined"!==typeof e.metadata.multicursorText?e.metadata.multicursorText:null,i=e.metadata.mode),a._viewController.paste(e.text,t,n,i)}))),a._register(a._textAreaInput.onCut((function(){a._viewController.cut()}))),a._register(a._textAreaInput.onType((function(e){e.replacePrevCharCnt||e.replaceNextCharCnt||e.positionDelta?(Re.al&&console.log(" => compositionType: <<".concat(e.text,">>, ").concat(e.replacePrevCharCnt,", ").concat(e.replaceNextCharCnt,", ").concat(e.positionDelta)),a._viewController.compositionType(e.text,e.replacePrevCharCnt,e.replaceNextCharCnt,e.positionDelta)):(Re.al&&console.log(" => type: <<".concat(e.text,">>")),a._viewController.type(e.text))}))),a._register(a._textAreaInput.onSelectionChangeRequest((function(e){a._viewController.setSelection(e)}))),a._register(a._textAreaInput.onCompositionStart((function(e){var t=a._selections[0].startLineNumber,n=a._selections[0].startColumn+e.revealDeltaColumns;a._context.model.revealRange("keyboard",!0,new fe.e(t,n,t,n),0,1);var i=a._viewHelper.visibleRangeForPositionRelativeToEditor(t,n);i&&(a._visibleTextArea=new Ve(a._context.viewLayout.getVerticalOffsetForLineNumber(t),i.left,Ye?0:1),a._render()),a.textArea.setClassName("inputarea ".concat(We.S," ime-input")),a._viewController.compositionStart(),a._context.model.onCompositionStart()}))),a._register(a._textAreaInput.onCompositionUpdate((function(e){a._visibleTextArea&&(a._visibleTextArea=a._visibleTextArea.setWidth(function(e,t){var n=document.createElement("canvas").getContext("2d");n.font=function(e){return t="normal",n=e.fontWeight,i=e.fontSize,r=e.lineHeight,o=e.fontFamily,"".concat(t," normal ").concat(n," ").concat(i,"px / ").concat(r,"px ").concat(o);var t,n,i,r,o}(t);var i=n.measureText(e);return x.vU?i.width+2:i.width}(e.data,a._fontInfo)),a._render())}))),a._register(a._textAreaInput.onCompositionEnd((function(){a._visibleTextArea=null,a._render(),a.textArea.setClassName("inputarea ".concat(We.S)),a._viewController.compositionEnd(),a._context.model.onCompositionEnd()}))),a._register(a._textAreaInput.onFocus((function(){a._context.model.setHasFocus(!0)}))),a._register(a._textAreaInput.onBlur((function(){a._context.model.setHasFocus(!1)}))),a}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_getAndroidWordAtPosition",value:function(e){for(var t=this._context.model.getLineContent(e.lineNumber),n=(0,ze.u)('`~!@#$%^&*()-=+[{]}\\|;:",.<>/?'),i=!0,r=e.column,o=!0,a=e.column,s=0;s<50&&(i||o);){if(i&&r<=1&&(i=!1),i){var u=t.charCodeAt(r-2);0!==n.get(u)?i=!1:r--}if(o&&a>t.length&&(o=!1),o){var l=t.charCodeAt(a-1);0!==n.get(l)?o=!1:a++}s++}return[t.substring(r-1,a-1),e.column-r]}},{key:"_getWordBeforePosition",value:function(e){for(var t=this._context.model.getLineContent(e.lineNumber),n=(0,ze.u)(this._context.configuration.options.get(113)),i=e.column,r=0;i>1;){var o=t.charCodeAt(i-2);if(0!==n.get(o)||r>50)return t.substring(i-1,e.column-1);r++,i--}return t.substring(0,e.column-1)}},{key:"_getCharacterBeforePosition",value:function(e){if(e.column>1){var t=this._context.model.getLineContent(e.lineNumber).charAt(e.column-2);if(!Pe.ZG(t.charCodeAt(0)))return t}return""}},{key:"_getAriaLabel",value:function(e){return 1===e.get(2)?m.N("accessibilityOffAriaLabel","The editor is not accessible at this time. Press {0} for options.",N.IJ?"Shift+Alt+F1":"Alt+F1"):e.get(4)}},{key:"_setAccessibilityOptions",value:function(e){this._accessibilitySupport=e.get(2);var t=e.get(3);2===this._accessibilitySupport&&t===ee.BH.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._setAccessibilityOptions(t),this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,this._contentHeight=n.height,this._fontInfo=t.get(40),this._lineHeight=t.get(55),this._emptySelectionClipboard=t.get(30),this._copyWithSyntaxHighlighting=t.get(19),this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("tabindex",String(t.get(109))),(e.hasChanged(28)||e.hasChanged(77))&&(t.get(28)&&t.get(77)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")),e.hasChanged(2)&&this._textAreaInput.writeScreenReaderContent("strategy changed"),!0}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeScreenReaderContent("selection changed"),!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}},{key:"onZonesChanged",value:function(e){return!0}},{key:"isFocused",value:function(){return this._textAreaInput.isFocused()}},{key:"focusTextArea",value:function(){this._textAreaInput.focusTextArea()}},{key:"getLastRenderData",value:function(){return this._lastRenderPosition}},{key:"setAriaOptions",value:function(e){e.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",e.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),e.role&&this.textArea.setAttribute("role",e.role)}},{key:"prepareRender",value:function(e){this._primaryCursorPosition=new he.L(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition)}},{key:"render",value:function(e){this._textAreaInput.writeScreenReaderContent("render"),this._render()}},{key:"_render",value:function(){if(this._visibleTextArea)this._renderInsideEditor(null,this._visibleTextArea.top-this._scrollTop,this._contentLeft+this._visibleTextArea.left-this._scrollLeft,this._visibleTextArea.width,this._lineHeight);else if(this._primaryCursorVisibleRange){var e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(e<this._contentLeft||e>this._contentLeft+this._contentWidth)this._renderAtTopLeft();else{var t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;t<0||t>this._contentHeight?this._renderAtTopLeft():N.dz?this._renderInsideEditor(this._primaryCursorPosition,t,e,Ye?0:1,this._lineHeight):this._renderInsideEditor(this._primaryCursorPosition,t,e,Ye?0:1,Ye?0:1)}}else this._renderAtTopLeft()}},{key:"_renderInsideEditor",value:function(e,t,n,i,r){this._lastRenderPosition=e;var o=this.textArea,a=this.textAreaCover;k.V.applyFontInfo(o,this._fontInfo),o.setTop(t),o.setLeft(n),o.setWidth(i),o.setHeight(r),a.setTop(0),a.setLeft(0),a.setWidth(0),a.setHeight(0)}},{key:"_renderAtTopLeft",value:function(){this._lastRenderPosition=null;var e=this.textArea,t=this.textAreaCover;if(k.V.applyFontInfo(e,this._fontInfo),e.setTop(0),e.setLeft(0),t.setTop(0),t.setLeft(0),Ye)return e.setWidth(0),e.setHeight(0),t.setWidth(0),void t.setHeight(0);e.setWidth(1),e.setHeight(1),t.setWidth(1),t.setHeight(1);var n=this._context.configuration.options;n.get(46)?t.setClassName("monaco-editor-background textAreaCover "+Be.OUTER_CLASS_NAME):0!==n.get(56).renderType?t.setClassName("monaco-editor-background textAreaCover "+He.CLASS_NAME):t.setClassName("monaco-editor-background textAreaCover")}}]),n}(z);var Ke,qe=n(8518),Ge=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.configuration=t,this.viewModel=n,this.userInputEvents=i,this.commandDelegate=r}return(0,d.Z)(e,[{key:"paste",value:function(e,t,n,i){this.commandDelegate.paste(e,t,n,i)}},{key:"type",value:function(e){this.commandDelegate.type(e)}},{key:"compositionType",value:function(e,t,n,i){this.commandDelegate.compositionType(e,t,n,i)}},{key:"compositionStart",value:function(){this.commandDelegate.startComposition()}},{key:"compositionEnd",value:function(){this.commandDelegate.endComposition()}},{key:"cut",value:function(){this.commandDelegate.cut()}},{key:"setSelection",value:function(e){qe.Ox.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}},{key:"_validateViewColumn",value:function(e){var t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new he.L(e.lineNumber,t):e}},{key:"_hasMulticursorModifier",value:function(e){switch(this.configuration.options.get(66)){case"altKey":return e.altKey;case"ctrlKey":return e.ctrlKey;case"metaKey":return e.metaKey;default:return!1}}},{key:"_hasNonMulticursorModifier",value:function(e){switch(this.configuration.options.get(66)){case"altKey":return e.ctrlKey||e.metaKey;case"ctrlKey":return e.altKey||e.metaKey;case"metaKey":return e.ctrlKey||e.altKey;default:return!1}}},{key:"dispatchMouse",value:function(e){var t=this.configuration.options,n=N.IJ&&t.get(93),i=t.get(16);e.middleButton&&!n?this._columnSelect(e.position,e.mouseColumn,e.inSelectionMode):e.startedOnLineNumbers?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelect(e.position):this._createCursor(e.position,!0):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):e.mouseDownCount>=4?this._selectAll():3===e.mouseDownCount?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position):this._lastCursorLineSelect(e.position):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):2===e.mouseDownCount?this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position):e.inSelectionMode?this._wordSelectDrag(e.position):this._wordSelect(e.position):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey||i?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position):this.moveTo(e.position)}},{key:"_usualArgs",value:function(e){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e}}},{key:"moveTo",value:function(e){qe.Ox.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_moveToSelect",value:function(e){qe.Ox.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_columnSelect",value:function(e,t,n){e=this._validateViewColumn(e),qe.Ox.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:n})}},{key:"_createCursor",value:function(e,t){e=this._validateViewColumn(e),qe.Ox.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}},{key:"_lastCursorMoveToSelect",value:function(e){qe.Ox.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_wordSelect",value:function(e){qe.Ox.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_wordSelectDrag",value:function(e){qe.Ox.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lastCursorWordSelect",value:function(e){qe.Ox.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lineSelect",value:function(e){qe.Ox.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lineSelectDrag",value:function(e){qe.Ox.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lastCursorLineSelect",value:function(e){qe.Ox.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_lastCursorLineSelectDrag",value:function(e){qe.Ox.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}},{key:"_selectAll",value:function(){qe.Ox.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}},{key:"_convertViewToModelPosition",value:function(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}},{key:"emitKeyDown",value:function(e){this.userInputEvents.emitKeyDown(e)}},{key:"emitKeyUp",value:function(e){this.userInputEvents.emitKeyUp(e)}},{key:"emitContextMenu",value:function(e){this.userInputEvents.emitContextMenu(e)}},{key:"emitMouseMove",value:function(e){this.userInputEvents.emitMouseMove(e)}},{key:"emitMouseLeave",value:function(e){this.userInputEvents.emitMouseLeave(e)}},{key:"emitMouseUp",value:function(e){this.userInputEvents.emitMouseUp(e)}},{key:"emitMouseDown",value:function(e){this.userInputEvents.emitMouseDown(e)}},{key:"emitMouseDrag",value:function(e){this.userInputEvents.emitMouseDrag(e)}},{key:"emitMouseDrop",value:function(e){this.userInputEvents.emitMouseDrop(e)}},{key:"emitMouseDropCanceled",value:function(){this.userInputEvents.emitMouseDropCanceled()}},{key:"emitMouseWheel",value:function(e){this.userInputEvents.emitMouseWheel(e)}}]),e}(),$e=function(){function e(t){(0,c.Z)(this,e),this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=t}return(0,d.Z)(e,[{key:"emitKeyDown",value:function(e){this.onKeyDown&&this.onKeyDown(e)}},{key:"emitKeyUp",value:function(e){this.onKeyUp&&this.onKeyUp(e)}},{key:"emitContextMenu",value:function(e){this.onContextMenu&&this.onContextMenu(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseMove",value:function(e){this.onMouseMove&&this.onMouseMove(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseLeave",value:function(e){this.onMouseLeave&&this.onMouseLeave(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseDown",value:function(e){this.onMouseDown&&this.onMouseDown(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseUp",value:function(e){this.onMouseUp&&this.onMouseUp(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseDrag",value:function(e){this.onMouseDrag&&this.onMouseDrag(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseDrop",value:function(e){this.onMouseDrop&&this.onMouseDrop(this._convertViewToModelMouseEvent(e))}},{key:"emitMouseDropCanceled",value:function(){this.onMouseDropCanceled&&this.onMouseDropCanceled()}},{key:"emitMouseWheel",value:function(e){this.onMouseWheel&&this.onMouseWheel(e)}},{key:"_convertViewToModelMouseEvent",value:function(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}},{key:"_convertViewToModelMouseTarget",value:function(t){return e.convertViewToModelMouseTarget(t,this._coordinatesConverter)}}],[{key:"convertViewToModelMouseTarget",value:function(e,t){return new Qe(e.element,e.type,e.mouseColumn,e.position?t.convertViewPositionToModelPosition(e.position):null,e.range?t.convertViewRangeToModelRange(e.range):null,e.detail)}}]),e}(),Qe=function(){function e(t,n,i,r,o,a){(0,c.Z)(this,e),this.element=t,this.type=n,this.mouseColumn=i,this.position=r,this.range=o,this.detail=a}return(0,d.Z)(e,[{key:"toString",value:function(){return me.toString(this)}}]),e}(),Xe=n(85500),Je=function(){function e(t){(0,c.Z)(this,e),this._createLine=t,this._set(1,[])}return(0,d.Z)(e,[{key:"flush",value:function(){this._set(1,[])}},{key:"_set",value:function(e,t){this._lines=t,this._rendLineNumberStart=e}},{key:"_get",value:function(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}},{key:"getStartLineNumber",value:function(){return this._rendLineNumberStart}},{key:"getEndLineNumber",value:function(){return this._rendLineNumberStart+this._lines.length-1}},{key:"getCount",value:function(){return this._lines.length}},{key:"getLine",value:function(e){var t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new Error("Illegal value for lineNumber");return this._lines[t]}},{key:"onLinesDeleted",value:function(e,t){if(0===this.getCount())return null;var n=this.getStartLineNumber(),i=this.getEndLineNumber();if(t<n){var r=t-e+1;return this._rendLineNumberStart-=r,null}if(e>i)return null;for(var o=0,a=0,s=n;s<=i;s++){var u=s-this._rendLineNumberStart;e<=s&&s<=t&&(0===a?(o=u,a=1):a++)}if(e<n){var l=0;l=t<n?t-e+1:n-e,this._rendLineNumberStart-=l}return this._lines.splice(o,a)}},{key:"onLinesChanged",value:function(e,t){if(0===this.getCount())return!1;for(var n=this.getStartLineNumber(),i=this.getEndLineNumber(),r=!1,o=e;o<=t;o++)o>=n&&o<=i&&(this._lines[o-this._rendLineNumberStart].onContentChanged(),r=!0);return r}},{key:"onLinesInserted",value:function(e,t){if(0===this.getCount())return null;var n=t-e+1,i=this.getStartLineNumber(),r=this.getEndLineNumber();if(e<=i)return this._rendLineNumberStart+=n,null;if(e>r)return null;if(n+e>r)return this._lines.splice(e-this._rendLineNumberStart,r-e+1);for(var o=[],a=0;a<n;a++)o[a]=this._createLine();var s=e-this._rendLineNumberStart,u=this._lines.slice(0,s),l=this._lines.slice(s,this._lines.length-n),c=this._lines.slice(this._lines.length-n,this._lines.length);return this._lines=u.concat(o).concat(l),c}},{key:"onTokensChanged",value:function(e){if(0===this.getCount())return!1;for(var t=this.getStartLineNumber(),n=this.getEndLineNumber(),i=!1,r=0,o=e.length;r<o;r++){var a=e[r];if(!(a.toLineNumber<t||a.fromLineNumber>n))for(var s=Math.max(t,a.fromLineNumber),u=Math.min(n,a.toLineNumber),l=s;l<=u;l++){var c=l-this._rendLineNumberStart;this._lines[c].onTokensChanged(),i=!0}}return i}}]),e}(),et=function(){function e(t){var n=this;(0,c.Z)(this,e),this._host=t,this.domNode=this._createDomNode(),this._linesCollection=new Je((function(){return n._host.createVisibleLine()}))}return(0,d.Z)(e,[{key:"_createDomNode",value:function(){var e=(0,E.X)(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e}},{key:"onConfigurationChanged",value:function(e){return!!e.hasChanged(127)}},{key:"onFlushed",value:function(e){return this._linesCollection.flush(),!0}},{key:"onLinesChanged",value:function(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.toLineNumber)}},{key:"onLinesDeleted",value:function(e){var t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;n<i;n++){var r=t[n].getDomNode();r&&this.domNode.domNode.removeChild(r)}return!0}},{key:"onLinesInserted",value:function(e){var t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;n<i;n++){var r=t[n].getDomNode();r&&this.domNode.domNode.removeChild(r)}return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onTokensChanged",value:function(e){return this._linesCollection.onTokensChanged(e.ranges)}},{key:"onZonesChanged",value:function(e){return!0}},{key:"getStartLineNumber",value:function(){return this._linesCollection.getStartLineNumber()}},{key:"getEndLineNumber",value:function(){return this._linesCollection.getEndLineNumber()}},{key:"getVisibleLine",value:function(e){return this._linesCollection.getLine(e)}},{key:"renderLines",value:function(e){var t=this._linesCollection._get(),n=new tt(this.domNode.domNode,this._host,e),i={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},r=n.render(i,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(r.rendLineNumberStart,r.lines)}}]),e}(),tt=function(){function e(t,n,i){(0,c.Z)(this,e),this.domNode=t,this.host=n,this.viewportData=i}return(0,d.Z)(e,[{key:"render",value:function(e,t,n,i){var r={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(r.rendLineNumberStart+r.linesLength-1<t||n<r.rendLineNumberStart){r.rendLineNumberStart=t,r.linesLength=n-t+1,r.lines=[];for(var o=t;o<=n;o++)r.lines[o-t]=this.host.createVisibleLine();return this._finishRendering(r,!0,i),r}if(this._renderUntouchedLines(r,Math.max(t-r.rendLineNumberStart,0),Math.min(n-r.rendLineNumberStart,r.linesLength-1),i,t),r.rendLineNumberStart>t){var a=t,s=Math.min(n,r.rendLineNumberStart-1);a<=s&&(this._insertLinesBefore(r,a,s,i,t),r.linesLength+=s-a+1)}else if(r.rendLineNumberStart<t){var u=Math.min(r.linesLength,t-r.rendLineNumberStart);u>0&&(this._removeLinesBefore(r,u),r.linesLength-=u)}if(r.rendLineNumberStart=t,r.rendLineNumberStart+r.linesLength-1<n){var l=r.rendLineNumberStart+r.linesLength,c=n;l<=c&&(this._insertLinesAfter(r,l,c,i,t),r.linesLength+=c-l+1)}else if(r.rendLineNumberStart+r.linesLength-1>n){var d=Math.max(0,n-r.rendLineNumberStart+1),h=r.linesLength-1-d+1;h>0&&(this._removeLinesAfter(r,h),r.linesLength-=h)}return this._finishRendering(r,!1,i),r}},{key:"_renderUntouchedLines",value:function(e,t,n,i,r){for(var o=e.rendLineNumberStart,a=e.lines,s=t;s<=n;s++){var u=o+s;a[s].layoutLine(u,i[u-r])}}},{key:"_insertLinesBefore",value:function(e,t,n,i,r){for(var o=[],a=0,s=t;s<=n;s++)o[a++]=this.host.createVisibleLine();e.lines=o.concat(e.lines)}},{key:"_removeLinesBefore",value:function(e,t){for(var n=0;n<t;n++){var i=e.lines[n].getDomNode();i&&this.domNode.removeChild(i)}e.lines.splice(0,t)}},{key:"_insertLinesAfter",value:function(e,t,n,i,r){for(var o=[],a=0,s=t;s<=n;s++)o[a++]=this.host.createVisibleLine();e.lines=e.lines.concat(o)}},{key:"_removeLinesAfter",value:function(e,t){for(var n=e.linesLength-t,i=0;i<t;i++){var r=e.lines[n+i].getDomNode();r&&this.domNode.removeChild(r)}e.lines.splice(n,t)}},{key:"_finishRenderingNewLines",value:function(t,n,i,r){e._ttPolicy&&(i=e._ttPolicy.createHTML(i));var o=this.domNode.lastChild;n||!o?this.domNode.innerHTML=i:o.insertAdjacentHTML("afterend",i);for(var a=this.domNode.lastChild,s=t.linesLength-1;s>=0;s--){var u=t.lines[s];r[s]&&(u.setDomNode(a),a=a.previousSibling)}}},{key:"_finishRenderingInvalidLines",value:function(t,n,i){var r=document.createElement("div");e._ttPolicy&&(n=e._ttPolicy.createHTML(n)),r.innerHTML=n;for(var o=0;o<t.linesLength;o++){var a=t.lines[o];if(i[o]){var s=r.firstChild,u=a.getDomNode();u.parentNode.replaceChild(s,u),a.setDomNode(s)}}}},{key:"_finishRendering",value:function(t,n,i){var r=e._sb,o=t.linesLength,a=t.lines,s=t.rendLineNumberStart,u=[];r.reset();for(var l=!1,c=0;c<o;c++){var d=a[c];if(u[c]=!1,!d.getDomNode())d.renderLine(c+s,i[c],this.viewportData,r)&&(u[c]=!0,l=!0)}l&&this._finishRenderingNewLines(t,n,r.build(),u),r.reset();for(var h=!1,f=[],p=0;p<o;p++){var v=a[p];if(f[p]=!1,!u[p])v.renderLine(p+s,i[p],this.viewportData,r)&&(f[p]=!0,h=!0)}h&&this._finishRenderingInvalidLines(t,r.build(),f)}}]),e}();tt._ttPolicy=null===(Ke=window.trustedTypes)||void 0===Ke?void 0:Ke.createPolicy("editorViewLayer",{createHTML:function(e){return e}}),tt._sb=(0,Xe.l$)(1e5);var nt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e))._visibleLines=new et((0,o.Z)(i)),i.domNode=i._visibleLines.domNode,i._dynamicOverlays=[],i._isFocused=!1,i.domNode.setClassName("view-overlays"),i}return(0,d.Z)(n,[{key:"shouldRender",value:function(){if((0,a.Z)((0,s.Z)(n.prototype),"shouldRender",this).call(this))return!0;for(var e=0,t=this._dynamicOverlays.length;e<t;e++){if(this._dynamicOverlays[e].shouldRender())return!0}return!1}},{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this);for(var e=0,t=this._dynamicOverlays.length;e<t;e++){this._dynamicOverlays[e].dispose()}this._dynamicOverlays=[]}},{key:"getDomNode",value:function(){return this.domNode}},{key:"createVisibleLine",value:function(){return new it(this._context.configuration,this._dynamicOverlays)}},{key:"addDynamicOverlay",value:function(e){this._dynamicOverlays.push(e)}},{key:"onConfigurationChanged",value:function(e){this._visibleLines.onConfigurationChanged(e);for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++){this._visibleLines.getVisibleLine(i).onConfigurationChanged(e)}return!0}},{key:"onFlushed",value:function(e){return this._visibleLines.onFlushed(e)}},{key:"onFocusChanged",value:function(e){return this._isFocused=e.isFocused,!0}},{key:"onLinesChanged",value:function(e){return this._visibleLines.onLinesChanged(e)}},{key:"onLinesDeleted",value:function(e){return this._visibleLines.onLinesDeleted(e)}},{key:"onLinesInserted",value:function(e){return this._visibleLines.onLinesInserted(e)}},{key:"onScrollChanged",value:function(e){return this._visibleLines.onScrollChanged(e)||!0}},{key:"onTokensChanged",value:function(e){return this._visibleLines.onTokensChanged(e)}},{key:"onZonesChanged",value:function(e){return this._visibleLines.onZonesChanged(e)}},{key:"prepareRender",value:function(e){for(var t=this._dynamicOverlays.filter((function(e){return e.shouldRender()})),n=0,i=t.length;n<i;n++){var r=t[n];r.prepareRender(e),r.onDidRender()}}},{key:"render",value:function(e){this._viewOverlaysRender(e),this.domNode.toggleClassName("focused",this._isFocused)}},{key:"_viewOverlaysRender",value:function(e){this._visibleLines.renderLines(e.viewportData)}}]),n}(z),it=function(){function e(t,n){(0,c.Z)(this,e),this._configuration=t,this._lineHeight=this._configuration.options.get(55),this._dynamicOverlays=n,this._domNode=null,this._renderedContent=null}return(0,d.Z)(e,[{key:"getDomNode",value:function(){return this._domNode?this._domNode.domNode:null}},{key:"setDomNode",value:function(e){this._domNode=(0,E.X)(e)}},{key:"onContentChanged",value:function(){}},{key:"onTokensChanged",value:function(){}},{key:"onConfigurationChanged",value:function(e){this._lineHeight=this._configuration.options.get(55)}},{key:"renderLine",value:function(e,t,n,i){for(var r="",o=0,a=this._dynamicOverlays.length;o<a;o++){r+=this._dynamicOverlays[o].render(n.startLineNumber,e)}return this._renderedContent!==r&&(this._renderedContent=r,i.appendASCIIString('<div style="position:absolute;top:'),i.appendASCIIString(String(t)),i.appendASCIIString("px;width:100%;height:"),i.appendASCIIString(String(this._lineHeight)),i.appendASCIIString('px;">'),i.appendASCIIString(r),i.appendASCIIString("</div>"),!0)}},{key:"layoutLine",value:function(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))}}]),e}(),rt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options.get(127);return i._contentWidth=r.contentWidth,i.domNode.setHeight(0),i}return(0,d.Z)(n,[{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options.get(127);return this._contentWidth=t.contentWidth,(0,a.Z)((0,s.Z)(n.prototype),"onConfigurationChanged",this).call(this,e)||!0}},{key:"onScrollChanged",value:function(e){return(0,a.Z)((0,s.Z)(n.prototype),"onScrollChanged",this).call(this,e)||e.scrollWidthChanged}},{key:"_viewOverlaysRender",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"_viewOverlaysRender",this).call(this,e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}]),n}(nt),ot=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options,o=r.get(127);return i._contentLeft=o.contentLeft,i.domNode.setClassName("margin-view-overlays"),i.domNode.setWidth(1),k.V.applyFontInfo(i.domNode,r.get(40)),i}return(0,d.Z)(n,[{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;k.V.applyFontInfo(this.domNode,t.get(40));var i=t.get(127);return this._contentLeft=i.contentLeft,(0,a.Z)((0,s.Z)(n.prototype),"onConfigurationChanged",this).call(this,e)||!0}},{key:"onScrollChanged",value:function(e){return(0,a.Z)((0,s.Z)(n.prototype),"onScrollChanged",this).call(this,e)||e.scrollHeightChanged}},{key:"_viewOverlaysRender",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"_viewOverlaysRender",this).call(this,e);var t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}]),n}(nt),at=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.top=t,this.left=n})),st=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e))._viewDomNode=i,r._widgets={},r.domNode=(0,E.X)(document.createElement("div")),W.write(r.domNode,1),r.domNode.setClassName("contentWidgets"),r.domNode.setPosition("absolute"),r.domNode.setTop(0),r.overflowingContentWidgetsDomNode=(0,E.X)(document.createElement("div")),W.write(r.overflowingContentWidgetsDomNode,2),r.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets"),r}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._widgets={}}},{key:"onConfigurationChanged",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onConfigurationChanged(e)}return!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLineMappingChanged",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onLineMappingChanged(e)}return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return!0}},{key:"onZonesChanged",value:function(e){return!0}},{key:"addWidget",value:function(e){var t=new ut(this._context,this._viewDomNode,e);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()}},{key:"setWidgetPosition",value:function(e,t,n){this._widgets[e.getId()].setPosition(t,n),this.setShouldRender()}},{key:"removeWidget",value:function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t];delete this._widgets[t];var i=n.domNode.domNode;i.parentNode.removeChild(i),i.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}},{key:"shouldSuppressMouseDownOnWidget",value:function(e){return!!this._widgets.hasOwnProperty(e)&&this._widgets[e].suppressMouseDown}},{key:"onBeforeRender",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onBeforeRender(e)}}},{key:"prepareRender",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].prepareRender(e)}}},{key:"render",value:function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].render(e)}}}]),n}(z),ut=function(){function e(t,n,i){(0,c.Z)(this,e),this._context=t,this._viewDomNode=n,this._actual=i,this.domNode=(0,E.X)(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;var r=this._context.configuration.options,o=r.get(127);this._fixedOverflowWidgets=r.get(34),this._contentWidth=o.contentWidth,this._contentLeft=o.contentLeft,this._lineHeight=r.get(55),this._range=null,this._viewRange=null,this._preference=[],this._cachedDomNodeClientWidth=-1,this._cachedDomNodeClientHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}return(0,d.Z)(e,[{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;if(this._lineHeight=t.get(55),e.hasChanged(127)){var n=t.get(127);this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,this._maxWidth=this._getMaxWidth()}}},{key:"onLineMappingChanged",value:function(e){this._setPosition(this._range)}},{key:"_setPosition",value:function(e){if(this._range=e,this._viewRange=null,this._range){var t=this._context.model.validateModelRange(this._range);(this._context.model.coordinatesConverter.modelPositionIsVisible(t.getStartPosition())||this._context.model.coordinatesConverter.modelPositionIsVisible(t.getEndPosition()))&&(this._viewRange=this._context.model.coordinatesConverter.convertModelRangeToViewRange(t))}}},{key:"_getMaxWidth",value:function(){return this.allowEditorOverflow?window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth:this._contentWidth}},{key:"setPosition",value:function(e,t){this._setPosition(e),this._preference=t,this._cachedDomNodeClientWidth=-1,this._cachedDomNodeClientHeight=-1}},{key:"_layoutBoxInViewport",value:function(e,t,n,i,r){var o=e.top,a=o,s=t.top+this._lineHeight,u=o-i,l=a>=i,c=s,d=r.viewportHeight-s>=i,h=e.left,f=t.left;return h+n>r.scrollLeft+r.viewportWidth&&(h=r.scrollLeft+r.viewportWidth-n),f+n>r.scrollLeft+r.viewportWidth&&(f=r.scrollLeft+r.viewportWidth-n),h<r.scrollLeft&&(h=r.scrollLeft),f<r.scrollLeft&&(f=r.scrollLeft),{fitsAbove:l,aboveTop:u,aboveLeft:h,fitsBelow:d,belowTop:c,belowLeft:f}}},{key:"_layoutHorizontalSegmentInPage",value:function(e,t,n,i){var r=Math.max(0,t.left-i),o=Math.min(t.left+t.width+i,e.width),a=t.left+n-_.StandardWindow.scrollX;if(a+i>o){var s=a-(o-i);a-=s,n-=s}if(a<r){var u=a-r;a-=u,n-=u}return[n,a]}},{key:"_layoutBoxInPage",value:function(e,t,n,r,o){var a=e.top-r,s=t.top+this._lineHeight,u=_.getDomNodePagePosition(this._viewDomNode.domNode),l=u.top+a-_.StandardWindow.scrollY,c=u.top+s-_.StandardWindow.scrollY,d=_.getClientArea(document.body),h=this._layoutHorizontalSegmentInPage(d,u,e.left-o.scrollLeft+this._contentLeft,n),f=(0,i.Z)(h,2),p=f[0],v=f[1],g=this._layoutHorizontalSegmentInPage(d,u,t.left-o.scrollLeft+this._contentLeft,n),m=(0,i.Z)(g,2),y=m[0],b=m[1],w=l>=22,C=c+r<=d.height-22;return this._fixedOverflowWidgets?{fitsAbove:w,aboveTop:Math.max(l,22),aboveLeft:v,fitsBelow:C,belowTop:c,belowLeft:b}:{fitsAbove:w,aboveTop:a,aboveLeft:p,fitsBelow:C,belowTop:s,belowLeft:y}}},{key:"_prepareRenderWidgetAtExactPositionOverflowing",value:function(e){return new at(e.top,e.left+this._contentLeft)}},{key:"_getTopAndBottomLeft",value:function(e){if(!this._viewRange)return[null,null];var t=e.linesVisibleRangesForRange(this._viewRange,!1);if(!t||0===t.length)return[null,null];var n,i=t[0],o=t[0],a=(0,r.Z)(t);try{for(a.s();!(n=a.n()).done;){var s=n.value;s.lineNumber<i.lineNumber&&(i=s),s.lineNumber>o.lineNumber&&(o=s)}}catch(y){a.e(y)}finally{a.f()}var u,l=1073741824,c=(0,r.Z)(i.ranges);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.left<l&&(l=d.left)}}catch(y){c.e(y)}finally{c.f()}var h,f=1073741824,p=(0,r.Z)(o.ranges);try{for(p.s();!(h=p.n()).done;){var v=h.value;v.left<f&&(f=v.left)}}catch(y){p.e(y)}finally{p.f()}var g=e.getVerticalOffsetForLineNumber(i.lineNumber)-e.scrollTop,m=new at(g,l),_=e.getVerticalOffsetForLineNumber(o.lineNumber)-e.scrollTop;return[m,new at(_,f)]}},{key:"_prepareRenderWidget",value:function(e){var t,n=this._getTopAndBottomLeft(e),o=(0,i.Z)(n,2),a=o[0],s=o[1];if(!a||!s)return null;if(-1===this._cachedDomNodeClientWidth||-1===this._cachedDomNodeClientHeight){var u=null;if("function"===typeof this._actual.beforeRender&&(u=lt(this._actual.beforeRender,this._actual)),u)this._cachedDomNodeClientWidth=u.width,this._cachedDomNodeClientHeight=u.height;else{var l=this.domNode.domNode;this._cachedDomNodeClientWidth=l.clientWidth,this._cachedDomNodeClientHeight=l.clientHeight}}if(t=this.allowEditorOverflow?this._layoutBoxInPage(a,s,this._cachedDomNodeClientWidth,this._cachedDomNodeClientHeight,e):this._layoutBoxInViewport(a,s,this._cachedDomNodeClientWidth,this._cachedDomNodeClientHeight,e),this._preference)for(var c=1;c<=2;c++){var d,h=(0,r.Z)(this._preference);try{for(h.s();!(d=h.n()).done;){var f=d.value;if(1===f){if(!t)return null;if(2===c||t.fitsAbove)return{coordinate:new at(t.aboveTop,t.aboveLeft),position:1}}else{if(2!==f)return this.allowEditorOverflow?{coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(a),position:0}:{coordinate:a,position:0};if(!t)return null;if(2===c||t.fitsBelow)return{coordinate:new at(t.belowTop,t.belowLeft),position:2}}}}catch(p){h.e(p)}finally{h.f()}}return null}},{key:"onBeforeRender",value:function(e){this._viewRange&&this._preference&&(this._viewRange.endLineNumber<e.startLineNumber||this._viewRange.startLineNumber>e.endLineNumber||this.domNode.setMaxWidth(this._maxWidth))}},{key:"prepareRender",value:function(e){this._renderData=this._prepareRenderWidget(e)}},{key:"render",value:function(e){if(!this._renderData)return this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden")),void("function"===typeof this._actual.afterRender&&lt(this._actual.afterRender,this._actual,null));this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),"function"===typeof this._actual.afterRender&&lt(this._actual.afterRender,this._actual,this._renderData.position)}}]),e}();function lt(e,t){try{for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return e.call.apply(e,[t].concat(i))}catch(Ke){return null}}var ct=n(49396),dt=!0,ht=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e;var r=i._context.configuration.options,a=r.get(127);return i._lineHeight=r.get(55),i._renderLineHighlight=r.get(82),i._renderLineHighlightOnlyWhenFocus=r.get(83),i._contentLeft=a.contentLeft,i._contentWidth=a.contentWidth,i._selectionIsEmpty=!0,i._focused=!1,i._cursorLineNumbers=[1],i._selections=[new L.Y(1,1,1,1)],i._renderData=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_readFromSelections",value:function(){var e=!1,t=dt?this._selections.slice(0,1):this._selections,n=t.map((function(e){return e.positionLineNumber}));n.sort((function(e,t){return e-t})),ct.fS(this._cursorLineNumbers,n)||(this._cursorLineNumbers=n,e=!0);var i=t.every((function(e){return e.isEmpty()}));return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,e=!0),e}},{key:"onThemeChanged",value:function(e){return this._readFromSelections()}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._lineHeight=t.get(55),this._renderLineHighlight=t.get(82),this._renderLineHighlightOnlyWhenFocus=t.get(83),this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,!0}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections,this._readFromSelections()}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollWidthChanged||e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"onFocusChanged",value:function(e){return!!this._renderLineHighlightOnlyWhenFocus&&(this._focused=e.isFocused,!0)}},{key:"prepareRender",value:function(e){if(this._shouldRenderThis()){for(var t=this._renderOne(e),n=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,r=this._cursorLineNumbers.length,o=0,a=[],s=n;s<=i;s++){for(var u=s-n;o<r&&this._cursorLineNumbers[o]<s;)o++;o<r&&this._cursorLineNumbers[o]===s?a[u]=t:a[u]=""}this._renderData=a}else this._renderData=null}},{key:"render",value:function(e,t){if(!this._renderData)return"";var n=t-e;return n>=this._renderData.length?"":this._renderData[n]}}]),n}(Ze),ft=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n,[{key:"_renderOne",value:function(e){var t="current-line"+(this._shouldRenderOther()?" current-line-both":"");return'<div class="'.concat(t,'" style="width:').concat(Math.max(e.scrollWidth,this._contentWidth),"px; height:").concat(this._lineHeight,'px;"></div>')}},{key:"_shouldRenderThis",value:function(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}},{key:"_shouldRenderOther",value:function(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}]),n}(ht),pt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n,[{key:"_renderOne",value:function(e){var t="current-line"+(this._shouldRenderMargin()?" current-line-margin":"")+(this._shouldRenderOther()?" current-line-margin-both":"");return'<div class="'.concat(t,'" style="width:').concat(this._contentLeft,"px; height:").concat(this._lineHeight,'px;"></div>')}},{key:"_shouldRenderMargin",value:function(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}},{key:"_shouldRenderThis",value:function(){return!0}},{key:"_shouldRenderOther",value:function(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}]),n}(ht);(0,je.Ic)((function(e,t){dt=!1;var n=e.getColor(Fe.Kh);if(n&&(t.addRule(".monaco-editor .view-overlays .current-line { background-color: ".concat(n,"; }")),t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { background-color: ".concat(n,"; border: none; }"))),!n||n.isTransparent()||e.defines(Fe.Mm)){var i=e.getColor(Fe.Mm);i&&(dt=!0,t.addRule(".monaco-editor .view-overlays .current-line { border: 2px solid ".concat(i,"; }")),t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ".concat(i,"; }")),"hc"===e.type&&(t.addRule(".monaco-editor .view-overlays .current-line { border-width: 1px; }"),t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")))}}));var vt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e;var r=i._context.configuration.options;return i._lineHeight=r.get(55),i._typicalHalfwidthCharacterWidth=r.get(40).typicalHalfwidthCharacterWidth,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;return this._lineHeight=t.get(55),this._typicalHalfwidthCharacterWidth=t.get(40).typicalHalfwidthCharacterWidth,!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged||e.scrollWidthChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"prepareRender",value:function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;r<o;r++){var a=t[r];a.options.className&&(n[i++]=a)}n=n.sort((function(e,t){if(e.options.zIndex<t.options.zIndex)return-1;if(e.options.zIndex>t.options.zIndex)return 1;var n=e.options.className,i=t.options.className;return n<i?-1:n>i?1:fe.e.compareRangesUsingStarts(e.range,t.range)}));for(var s=e.visibleRange.startLineNumber,u=e.visibleRange.endLineNumber,l=[],c=s;c<=u;c++){l[c-s]=""}this._renderWholeLineDecorations(e,n,l),this._renderNormalDecorations(e,n,l),this._renderResult=l}},{key:"_renderWholeLineDecorations",value:function(e,t,n){for(var i=String(this._lineHeight),r=e.visibleRange.startLineNumber,o=e.visibleRange.endLineNumber,a=0,s=t.length;a<s;a++){var u=t[a];if(u.options.isWholeLine)for(var l='<div class="cdr '+u.options.className+'" style="left:0;width:100%;height:'+i+'px;"></div>',c=Math.max(u.range.startLineNumber,r),d=Math.min(u.range.endLineNumber,o),h=c;h<=d;h++){n[h-r]+=l}}}},{key:"_renderNormalDecorations",value:function(e,t,n){for(var i=String(this._lineHeight),r=e.visibleRange.startLineNumber,o=null,a=!1,s=null,u=0,l=t.length;u<l;u++){var c=t[u];if(!c.options.isWholeLine){var d=c.options.className,h=Boolean(c.options.showIfCollapsed),f=c.range;h&&1===f.endColumn&&f.endLineNumber!==f.startLineNumber&&(f=new fe.e(f.startLineNumber,f.startColumn,f.endLineNumber-1,this._context.model.getLineMaxColumn(f.endLineNumber-1))),o===d&&a===h&&fe.e.areIntersectingOrTouching(s,f)?s=fe.e.plusRange(s,f):(null!==o&&this._renderNormalDecoration(e,s,o,a,i,r,n),o=d,a=h,s=f)}}null!==o&&this._renderNormalDecoration(e,s,o,a,i,r,n)}},{key:"_renderNormalDecoration",value:function(e,t,n,i,r,o,a){var s=e.linesVisibleRangesForRange(t,"findMatch"===n);if(s)for(var u=0,l=s.length;u<l;u++){var c=s[u];if(!c.outsideRenderedLine){var d=c.lineNumber-o;if(i&&1===c.ranges.length){var h=c.ranges[0];0===h.width&&(c.ranges[0]=new U(h.left,this._typicalHalfwidthCharacterWidth))}for(var f=0,p=c.ranges.length;f<p;f++){var v=c.ranges[f],g='<div class="cdr '+n+'" style="left:'+String(v.left)+"px;width:"+String(v.width)+"px;height:"+r+'px;"></div>';a[d]+=g}}}}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(Ze),gt=n(61727),mt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o){var a;(0,c.Z)(this,n);var s=(a=t.call(this,e))._context.configuration.options,u=s.get(89),l=s.get(63),d=s.get(32),h=s.get(92),f={listenOnDomNode:r.domNode,className:"editor-scrollable "+(0,je.m6)(e.theme.type),useShadows:!1,lazyRender:!0,vertical:u.vertical,horizontal:u.horizontal,verticalHasArrows:u.verticalHasArrows,horizontalHasArrows:u.horizontalHasArrows,verticalScrollbarSize:u.verticalScrollbarSize,verticalSliderSize:u.verticalSliderSize,horizontalScrollbarSize:u.horizontalScrollbarSize,horizontalSliderSize:u.horizontalSliderSize,handleMouseWheel:u.handleMouseWheel,alwaysConsumeMouseWheel:u.alwaysConsumeMouseWheel,arrowSize:u.arrowSize,mouseWheelScrollSensitivity:l,fastScrollSensitivity:d,scrollPredominantAxis:h,scrollByPage:u.scrollByPage};a.scrollbar=a._register(new gt.$Z(i.domNode,f,a._context.viewLayout.getScrollable())),W.write(a.scrollbar.getDomNode(),5),a.scrollbarDomNode=(0,E.X)(a.scrollbar.getDomNode()),a.scrollbarDomNode.setPosition("absolute"),a._setLayout();var p=function(e,t,n){var i={};if(t){var r=e.scrollTop;r&&(i.scrollTop=a._context.viewLayout.getCurrentScrollTop()+r,e.scrollTop=0)}if(n){var o=e.scrollLeft;o&&(i.scrollLeft=a._context.viewLayout.getCurrentScrollLeft()+o,e.scrollLeft=0)}a._context.model.setScrollPosition(i,1)};return a._register(_.addDisposableListener(r.domNode,"scroll",(function(e){return p(r.domNode,!0,!0)}))),a._register(_.addDisposableListener(i.domNode,"scroll",(function(e){return p(i.domNode,!0,!1)}))),a._register(_.addDisposableListener(o.domNode,"scroll",(function(e){return p(o.domNode,!0,!1)}))),a._register(_.addDisposableListener(a.scrollbarDomNode.domNode,"scroll",(function(e){return p(a.scrollbarDomNode.domNode,!0,!1)}))),a}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_setLayout",value:function(){var e=this._context.configuration.options,t=e.get(127);this.scrollbarDomNode.setLeft(t.contentLeft),"right"===e.get(61).side?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}},{key:"getOverviewRulerLayoutInfo",value:function(){return this.scrollbar.getOverviewRulerLayoutInfo()}},{key:"getDomNode",value:function(){return this.scrollbarDomNode}},{key:"delegateVerticalScrollbarMouseDown",value:function(e){this.scrollbar.delegateVerticalScrollbarMouseDown(e)}},{key:"onConfigurationChanged",value:function(e){if(e.hasChanged(89)||e.hasChanged(63)||e.hasChanged(32)){var t=this._context.configuration.options,n=t.get(89),i=t.get(63),r=t.get(32),o=t.get(92),a={handleMouseWheel:n.handleMouseWheel,mouseWheelScrollSensitivity:i,fastScrollSensitivity:r,scrollPredominantAxis:o};this.scrollbar.updateOptions(a)}return e.hasChanged(127)&&this._setLayout(),!0}},{key:"onScrollChanged",value:function(e){return!0}},{key:"onThemeChanged",value:function(e){return this.scrollbar.updateClassName("editor-scrollable "+(0,je.m6)(this._context.theme.type)),!0}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this.scrollbar.renderNow()}}]),n}(z),_t=(0,d.Z)((function e(t,n,i){(0,c.Z)(this,e),this.startLineNumber=+t,this.endLineNumber=+n,this.className=String(i)})),yt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,d.Z)(n,[{key:"_render",value:function(e,t,n){for(var i=[],r=e;r<=t;r++){i[r-e]=[]}if(0===n.length)return i;n.sort((function(e,t){return e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className<t.className?-1:1}));for(var o=null,a=0,s=0,u=n.length;s<u;s++){var l=n[s],c=l.className,d=Math.max(l.startLineNumber,e)-e,h=Math.min(l.endLineNumber,t)-e;o===c?(d=Math.max(a+1,d),a=Math.max(a,h)):(o=c,a=h);for(var f=d;f<=a;f++)i[f].push(o)}return i}}]),n}(Ze),bt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e;var r=i._context.configuration.options,a=r.get(127);return i._lineHeight=r.get(55),i._glyphMargin=r.get(46),i._glyphMarginLeft=a.glyphMarginLeft,i._glyphMarginWidth=a.glyphMarginWidth,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._lineHeight=t.get(55),this._glyphMargin=t.get(46),this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getDecorations",value:function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;r<o;r++){var a=t[r],s=a.options.glyphMarginClassName;s&&(n[i++]=new _t(a.range.startLineNumber,a.range.endLineNumber,s))}return n}},{key:"prepareRender",value:function(e){if(this._glyphMargin){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),r=this._lineHeight.toString(),o='" style="left:'+this._glyphMarginLeft.toString()+"px;width:"+this._glyphMarginWidth.toString()+"px;height:"+r+'px;"></div>',a=[],s=t;s<=n;s++){var u=s-t,l=i[u];0===l.length?a[u]="":a[u]='<div class="cgmr codicon '+l.join(" ")+o}this._renderResult=a}else this._renderResult=null}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(yt),wt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e,i._primaryLineNumber=0;var r=i._context.configuration.options,a=r.get(128),s=r.get(40);return i._lineHeight=r.get(55),i._spaceWidth=s.spaceWidth,i._enabled=r.get(80),i._activeIndentEnabled=r.get(49),i._maxIndentLeft=-1===a.wrappingColumn?-1:a.wrappingColumn*s.typicalHalfwidthCharacterWidth,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(128),i=t.get(40);return this._lineHeight=t.get(55),this._spaceWidth=i.spaceWidth,this._enabled=t.get(80),this._activeIndentEnabled=t.get(49),this._maxIndentLeft=-1===n.wrappingColumn?-1:n.wrappingColumn*i.typicalHalfwidthCharacterWidth,!0}},{key:"onCursorStateChanged",value:function(e){var t=e.selections[0],n=t.isEmpty()?t.positionLineNumber:0;return this._primaryLineNumber!==n&&(this._primaryLineNumber=n,!0)}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"onLanguageConfigurationChanged",value:function(e){return!0}},{key:"prepareRender",value:function(e){if(this._enabled){var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._context.model.getTextModelOptions().indentSize*this._spaceWidth,r=e.scrollWidth,o=this._lineHeight,a=this._context.model.getLinesIndentGuides(t,n),s=0,u=0,l=0;if(this._activeIndentEnabled&&this._primaryLineNumber){var c=this._context.model.getActiveIndentGuide(this._primaryLineNumber,t,n);s=c.startLineNumber,u=c.endLineNumber,l=c.indent}for(var d=[],h=t;h<=n;h++){var f=s<=h&&h<=u,p=h-t,v=a[p],g="";if(v>=1)for(var m=e.visibleRangeForPosition(new he.L(h,1)),_=m?m.left:0,y=1;y<=v;y++){if(g+='<div class="'.concat(f&&y===l?"cigra":"cigr",'" style="left:').concat(_,"px;height:").concat(o,"px;width:").concat(i,'px"></div>'),(_+=i)>r||this._maxIndentLeft>0&&_>this._maxIndentLeft)break}d[p]=g}this._renderResult=d}else this._renderResult=null}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(Ze);(0,je.Ic)((function(e,t){var n=e.getColor(Fe.tR);n&&t.addRule(".monaco-editor .lines-content .cigr { box-shadow: 1px 0 0 0 ".concat(n," inset; }"));var i=e.getColor(Fe.Ym)||n;i&&t.addRule(".monaco-editor .lines-content .cigra { box-shadow: 1px 0 0 0 ".concat(i," inset; }"))}));var Ct=function(){function e(){(0,c.Z)(this,e),this._currentVisibleRange=new fe.e(1,1,1,1)}return(0,d.Z)(e,[{key:"getCurrentVisibleRange",value:function(){return this._currentVisibleRange}},{key:"setCurrentVisibleRange",value:function(e){this._currentVisibleRange=e}}]),e}(),kt=(0,d.Z)((function e(t,n,i,r,o,a){(0,c.Z)(this,e),this.lineNumber=t,this.startColumn=n,this.endColumn=i,this.startScrollTop=r,this.stopScrollTop=o,this.scrollType=a,this.type="range",this.minLineNumber=t,this.maxLineNumber=t})),St=(0,d.Z)((function e(t,n,i,r){(0,c.Z)(this,e),this.selections=t,this.startScrollTop=n,this.stopScrollTop=i,this.scrollType=r,this.type="selections";for(var o=t[0].startLineNumber,a=t[0].endLineNumber,s=1,u=t.length;s<u;s++){var l=t[s];o=Math.min(o,l.startLineNumber),a=Math.max(a,l.endLineNumber)}this.minLineNumber=o,this.maxLineNumber=a})),xt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;(0,c.Z)(this,n),(r=t.call(this,e))._linesContent=i,r._textRangeRestingSpot=document.createElement("div"),r._visibleLines=new et((0,o.Z)(r)),r.domNode=r._visibleLines.domNode;var a=r._context.configuration,s=r._context.configuration.options,u=s.get(40),l=s.get(128);return r._lineHeight=s.get(55),r._typicalHalfwidthCharacterWidth=u.typicalHalfwidthCharacterWidth,r._isViewportWrapping=l.isViewportWrapping,r._revealHorizontalRightPadding=s.get(86),r._cursorSurroundingLines=s.get(23),r._cursorSurroundingLinesStyle=s.get(24),r._canUseLayerHinting=!s.get(26),r._viewLineOptions=new re(a,r._context.theme.type),W.write(r.domNode,7),r.domNode.setClassName("view-lines ".concat(We.S)),k.V.applyFontInfo(r.domNode,u),r._maxLineWidth=0,r._asyncUpdateLineWidths=new T.pY((function(){r._updateLineWidthsSlow()}),200),r._asyncCheckMonospaceFontAssumptions=new T.pY((function(){r._checkMonospaceFontAssumptions()}),2e3),r._lastRenderedData=new Ct,r._horizontalRevealRequest=null,r}return(0,d.Z)(n,[{key:"dispose",value:function(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"getDomNode",value:function(){return this.domNode}},{key:"createVisibleLine",value:function(){return new oe(this._viewLineOptions)}},{key:"onConfigurationChanged",value:function(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(128)&&(this._maxLineWidth=0);var t=this._context.configuration.options,n=t.get(40),i=t.get(128);return this._lineHeight=t.get(55),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._isViewportWrapping=i.isViewportWrapping,this._revealHorizontalRightPadding=t.get(86),this._cursorSurroundingLines=t.get(23),this._cursorSurroundingLinesStyle=t.get(24),this._canUseLayerHinting=!t.get(26),k.V.applyFontInfo(this.domNode,n),this._onOptionsMaybeChanged(),e.hasChanged(127)&&(this._maxLineWidth=0),!0}},{key:"_onOptionsMaybeChanged",value:function(){var e=this._context.configuration,t=new re(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;for(var n=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber(),r=n;r<=i;r++){this._visibleLines.getVisibleLine(r).onOptionsChanged(this._viewLineOptions)}return!0}return!1}},{key:"onCursorStateChanged",value:function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=!1,r=t;r<=n;r++)i=this._visibleLines.getVisibleLine(r).onSelectionChanged()||i;return i}},{key:"onDecorationsChanged",value:function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++)this._visibleLines.getVisibleLine(i).onDecorationsChanged();return!0}},{key:"onFlushed",value:function(e){var t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}},{key:"onLinesChanged",value:function(e){return this._visibleLines.onLinesChanged(e)}},{key:"onLinesDeleted",value:function(e){return this._visibleLines.onLinesDeleted(e)}},{key:"onLinesInserted",value:function(e){return this._visibleLines.onLinesInserted(e)}},{key:"onRevealRangeRequest",value:function(e){var t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.range,e.selections,e.verticalType);if(-1===t)return!1;var n=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?n={scrollTop:n.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new kt(e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),n.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new St(e.selections,this._context.viewLayout.getCurrentScrollTop(),n.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;var i=Math.abs(this._context.viewLayout.getCurrentScrollTop()-n.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.model.setScrollPosition(n,i),!0}},{key:"onScrollChanged",value:function(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){var t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),n=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>n)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}},{key:"onTokensChanged",value:function(e){return this._visibleLines.onTokensChanged(e)}},{key:"onZonesChanged",value:function(e){return this._context.model.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}},{key:"onThemeChanged",value:function(e){return this._onOptionsMaybeChanged()}},{key:"getPositionFromDOMInfo",value:function(e,t){var n=this._getViewLineDomNode(e);if(null===n)return null;var i=this._getLineNumberFor(n);if(-1===i)return null;if(i<1||i>this._context.model.getLineCount())return null;if(1===this._context.model.getLineMaxColumn(i))return new he.L(i,1);var r=this._visibleLines.getStartLineNumber(),o=this._visibleLines.getEndLineNumber();if(i<r||i>o)return null;var a=this._visibleLines.getVisibleLine(i).getColumnOfNodeOffset(i,e,t),s=this._context.model.getLineMinColumn(i);return a<s&&(a=s),new he.L(i,a)}},{key:"_getViewLineDomNode",value:function(e){for(;e&&1===e.nodeType;){if(e.className===oe.CLASS_NAME)return e;e=e.parentElement}return null}},{key:"_getLineNumberFor",value:function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++){if(e===this._visibleLines.getVisibleLine(i).getDomNode())return i}return-1}},{key:"getLineWidth",value:function(e){var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();return e<t||e>n?-1:this._visibleLines.getVisibleLine(e).getWidth()}},{key:"linesVisibleRangesForRange",value:function(e,t){if(this.shouldRender())return null;var n=e.endLineNumber,i=fe.e.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!i)return null;var r=[],o=0,a=new ie(this.domNode.domNode,this._textRangeRestingSpot),s=0;t&&(s=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new he.L(i.startLineNumber,1)).lineNumber);for(var u=this._visibleLines.getStartLineNumber(),l=this._visibleLines.getEndLineNumber(),c=i.startLineNumber;c<=i.endLineNumber;c++)if(!(c<u||c>l)){var d=c===i.startLineNumber?i.startColumn:1,h=c===i.endLineNumber?i.endColumn:this._context.model.getLineMaxColumn(c),f=this._visibleLines.getVisibleLine(c).getVisibleRangesForRange(d,h,a);if(f){if(t&&c<n)s!==(s=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new he.L(c+1,1)).lineNumber)&&(f.ranges[f.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth);r[o++]=new Y(f.outsideRenderedLine,c,f.ranges)}}return 0===o?null:r}},{key:"_visibleRangesForLineRange",value:function(e,t,n){return this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber()?null:this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(t,n,new ie(this.domNode.domNode,this._textRangeRestingSpot))}},{key:"visibleRangeForPosition",value:function(e){var t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new K(t.outsideRenderedLine,t.ranges[0].left):null}},{key:"updateLineWidths",value:function(){this._updateLineWidths(!1)}},{key:"_updateLineWidthsFast",value:function(){return this._updateLineWidths(!0)}},{key:"_updateLineWidthsSlow",value:function(){this._updateLineWidths(!1)}},{key:"_updateLineWidths",value:function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=1,r=!0,o=t;o<=n;o++){var a=this._visibleLines.getVisibleLine(o);!e||a.getWidthIsFast()?i=Math.max(i,a.getWidth()):r=!1}return r&&1===t&&n===this._context.model.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(i),r}},{key:"_checkMonospaceFontAssumptions",value:function(){for(var e=-1,t=-1,n=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber(),r=n;r<=i;r++){var o=this._visibleLines.getVisibleLine(r);if(o.needsMonospaceFontCheck()){var a=o.getWidth();a>t&&(t=a,e=r)}}if(-1!==e&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(var s=n;s<=i;s++){this._visibleLines.getVisibleLine(s).onMonospaceAssumptionsInvalidated()}}},{key:"prepareRender",value:function(){throw new Error("Not supported")}},{key:"render",value:function(){throw new Error("Not supported")}},{key:"renderText",value:function(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){var t=this._horizontalRevealRequest;if(e.startLineNumber<=t.minLineNumber&&t.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();var n=this._computeScrollLeftToReveal(t);n&&(this._isViewportWrapping||this._ensureMaxLineWidth(n.maxHorizontalOffset),this._context.model.setScrollPosition({scrollLeft:n.scrollLeft},t.scrollType))}}if(this._updateLineWidthsFast()||this._asyncUpdateLineWidths.schedule(),N.IJ&&!this._asyncCheckMonospaceFontAssumptions.isScheduled())for(var i=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber(),o=i;o<=r;o++){if(this._visibleLines.getVisibleLine(o).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");var a=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-a),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}},{key:"_ensureMaxLineWidth",value:function(e){var t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.model.setMaxLineWidth(this._maxLineWidth))}},{key:"_computeScrollTopToRevealRange",value:function(e,t,n,i,r){var o,a,s,u,l=e.top,c=e.height,d=l+c;if(i&&i.length>0){for(var h=i[0].startLineNumber,f=i[0].endLineNumber,p=1,v=i.length;p<v;p++){var g=i[p];h=Math.min(h,g.startLineNumber),f=Math.max(f,g.endLineNumber)}o=!1,a=this._context.viewLayout.getVerticalOffsetForLineNumber(h),s=this._context.viewLayout.getVerticalOffsetForLineNumber(f)+this._lineHeight}else{if(!n)return-1;o=!0,a=this._context.viewLayout.getVerticalOffsetForLineNumber(n.startLineNumber),s=this._context.viewLayout.getVerticalOffsetForLineNumber(n.endLineNumber)+this._lineHeight}if(!("mouse"===t&&"default"===this._cursorSurroundingLinesStyle)){var m=Math.min(c/this._lineHeight/2,this._cursorSurroundingLines);a-=m*this._lineHeight,s+=Math.max(0,m-1)*this._lineHeight}if(0!==r&&4!==r||(s+=this._lineHeight),s-a>c){if(!o)return-1;u=a}else if(5===r||6===r)if(6===r&&l<=a&&s<=d)u=l;else{var _=a-Math.max(5*this._lineHeight,.2*c),y=s-c;u=Math.max(y,_)}else if(1===r||2===r)if(2===r&&l<=a&&s<=d)u=l;else{var b=(a+s)/2;u=Math.max(0,b-c/2)}else u=this._computeMinimumScrolling(l,d,a,s,3===r,4===r);return u}},{key:"_computeScrollLeftToReveal",value:function(e){var t=this._context.viewLayout.getCurrentViewport(),i=t.left,o=i+t.width,a=1073741824,s=0;if("range"===e.type){var u=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!u)return null;var l,c=(0,r.Z)(u.ranges);try{for(c.s();!(l=c.n()).done;){var d=l.value;a=Math.min(a,d.left),s=Math.max(s,d.left+d.width)}}catch(y){c.e(y)}finally{c.f()}}else{var h,f=(0,r.Z)(e.selections);try{for(f.s();!(h=f.n()).done;){var p=h.value;if(p.startLineNumber!==p.endLineNumber)return null;var v=this._visibleRangesForLineRange(p.startLineNumber,p.startColumn,p.endColumn);if(!v)return null;var g,m=(0,r.Z)(v.ranges);try{for(m.s();!(g=m.n()).done;){var _=g.value;a=Math.min(a,_.left),s=Math.max(s,_.left+_.width)}}catch(y){m.e(y)}finally{m.f()}}}catch(y){f.e(y)}finally{f.f()}}return a=Math.max(0,a-n.HORIZONTAL_EXTRA_PX),s+=this._revealHorizontalRightPadding,"selections"===e.type&&s-a>t.width?null:{scrollLeft:this._computeMinimumScrolling(i,o,a,s),maxHorizontalOffset:s}}},{key:"_computeMinimumScrolling",value:function(e,t,n,i,r,o){r=!!r,o=!!o;var a=(t|=0)-(e|=0);return(i|=0)-(n|=0)<a?r?n:o?Math.max(0,i-a):n<e?n:i>t?Math.max(0,i-a):e:n}}]),n}(z);xt.HORIZONTAL_EXTRA_PX=30;var Lt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._context=e;var r=i._context.configuration.options.get(127);return i._decorationsLeft=r.decorationsLeft,i._decorationsWidth=r.decorationsWidth,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options.get(127);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getDecorations",value:function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;r<o;r++){var a=t[r],s=a.options.linesDecorationsClassName;s&&(n[i++]=new _t(a.range.startLineNumber,a.range.endLineNumber,s));var u=a.options.firstLineDecorationClassName;u&&(n[i++]=new _t(a.range.startLineNumber,a.range.startLineNumber,u))}return n}},{key:"prepareRender",value:function(e){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),r='" style="left:'+this._decorationsLeft.toString()+"px;width:"+this._decorationsWidth.toString()+'px;"></div>',o=[],a=t;a<=n;a++){for(var s=a-t,u=i[s],l="",c=0,d=u.length;c<d;c++)l+='<div class="cldr '+u[c]+r;o[s]=l}this._renderResult=o}},{key:"render",value:function(e,t){return this._renderResult?this._renderResult[t-e]:""}}]),n}(yt),Et=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._context=e,i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){return!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getDecorations",value:function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;r<o;r++){var a=t[r],s=a.options.marginClassName;s&&(n[i++]=new _t(a.range.startLineNumber,a.range.endLineNumber,s))}return n}},{key:"prepareRender",value:function(e){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),r=[],o=t;o<=n;o++){for(var a=o-t,s=i[a],u="",l=0,c=s.length;l<c;l++)u+='<div class="cmdr '+s[l]+'" style=""></div>';r[a]=u}this._renderResult=r}},{key:"render",value:function(e,t){return this._renderResult?this._renderResult[t-e]:""}}]),n}(yt),Nt=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.r=e._clamp(t),this.g=e._clamp(n),this.b=e._clamp(i),this.a=e._clamp(r)}return(0,d.Z)(e,[{key:"equals",value:function(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}}],[{key:"_clamp",value:function(e){return e<0?0:e>255?255:0|e}}]),e}();Nt.Empty=new Nt(0,0,0,0);var Dt=n(99404),Mt=function(){function e(){var t=this;(0,c.Z)(this,e),this._onDidChange=new b.Q5,this.onDidChange=this._onDidChange.event,this._updateColorMap(),Dt.RW.onDidChange((function(e){e.changedColorMap&&t._updateColorMap()}))}return(0,d.Z)(e,[{key:"_updateColorMap",value:function(){var e=Dt.RW.getColorMap();if(!e)return this._colors=[Nt.Empty],void(this._backgroundIsLight=!0);this._colors=[Nt.Empty];for(var t=1;t<e.length;t++){var n=e[t].rgba;this._colors[t]=new Nt(n.r,n.g,n.b,Math.round(255*n.a))}var i=e[2].getRelativeLuminance();this._backgroundIsLight=i>=.5,this._onDidChange.fire(void 0)}},{key:"getColor",value:function(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}},{key:"backgroundIsLight",value:function(){return this._backgroundIsLight}}],[{key:"getInstance",value:function(){return this._INSTANCE||(this._INSTANCE=new e),this._INSTANCE}}]),e}();Mt._INSTANCE=null;var Tt=n(4587),Ot=n(92992),It=function(){for(var e=[],t=32;t<=126;t++)e.push(t);return e.push(65533),e}(),At=n(38820),Pt=function(){function e(t,n){(0,c.Z)(this,e),this.scale=n,this.charDataNormal=e.soften(t,.8),this.charDataLight=e.soften(t,50/60)}return(0,d.Z)(e,[{key:"renderChar",value:function(e,t,n,i,r,o,a,s,u){var l=1*this.scale,c=2*this.scale,d=u?1:c;if(t+l>e.width||n+d>e.height)console.warn("bad render request outside image data");else for(var h=s?this.charDataLight:this.charDataNormal,f=function(e,t){return(e-=32)<0||e>96?t<=2?(e+96)%96:95:e}(i,a),p=4*e.width,v=o.r,g=o.g,m=o.b,_=r.r-v,y=r.g-g,b=r.b-m,w=e.data,C=f*l*c,k=n*p+4*t,S=0;S<d;S++){for(var x=k,L=0;L<l;L++){var E=h[C++]/255;w[x++]=v+_*E,w[x++]=g+y*E,w[x++]=m+b*E,x++}k+=p}}},{key:"blockRenderChar",value:function(e,t,n,i,r,o,a){var s=1*this.scale,u=2*this.scale,l=a?1:u;if(t+s>e.width||n+l>e.height)console.warn("bad render request outside image data");else for(var c=4*e.width,d=r.r,h=r.g,f=r.b,p=d+.5*(i.r-d),v=h+.5*(i.g-h),g=f+.5*(i.b-f),m=e.data,_=n*c+4*t,y=0;y<l;y++){for(var b=_,w=0;w<s;w++)m[b++]=p,m[b++]=v,m[b++]=g,b++;_+=c}}}],[{key:"soften",value:function(e,t){for(var n=new Uint8ClampedArray(e.length),i=0,r=e.length;i<r;i++)n[i]=(0,At.K)(e[i]*t);return n}}]),e}(),Rt=n(60106),Zt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15},Ft=function(e){for(var t=new Uint8ClampedArray(e.length/2),n=0;n<e.length;n+=2)t[n>>1]=Zt[e[n]]<<4|15&Zt[e[n+1]];return t},jt={1:(0,Rt.I)((function(){return Ft("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")})),2:(0,Rt.I)((function(){return Ft("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126")}))},Ht=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"create",value:function(t,n){return this.lastCreated&&t===this.lastCreated.scale&&n===this.lastFontFamily?this.lastCreated:(i=jt[t]?new Pt(jt[t](),t):e.createFromSampleData(e.createSampleData(n).data,t),this.lastFontFamily=n,this.lastCreated=i,i);var i}},{key:"createSampleData",value:function(e){var t=document.createElement("canvas"),n=t.getContext("2d");t.style.height="".concat(16,"px"),t.height=16,t.width=960,t.style.width="960px",n.fillStyle="#ffffff",n.font="bold ".concat(16,"px ",e),n.textBaseline="middle";var i,o=0,a=(0,r.Z)(It);try{for(a.s();!(i=a.n()).done;){var s=i.value;n.fillText(String.fromCharCode(s),o,8),o+=10}}catch(u){a.e(u)}finally{a.f()}return n.getImageData(0,0,960,16)}},{key:"createFromSampleData",value:function(t,n){if(61440!==t.length)throw new Error("Unexpected source in MinimapCharRenderer");var i=e._downsample(t,n);return new Pt(i,n)}},{key:"_downsampleChar",value:function(e,t,n,i,r){for(var o=1*r,a=2*r,s=i,u=0,l=0;l<a;l++)for(var c=l/a*16,d=(l+1)/a*16,h=0;h<o;h++){for(var f=h/o*10,p=(h+1)/o*10,v=0,g=0,m=c;m<d;m++)for(var _=t+3840*Math.floor(m),y=1-(m-Math.floor(m)),b=f;b<p;b++){var w=1-(b-Math.floor(b)),C=_+4*Math.floor(b),k=w*y;g+=k,v+=e[C]*e[C+3]/255*k}var S=v/g;u=Math.max(u,S),n[s++]=(0,At.K)(S)}return u}},{key:"_downsample",value:function(e,t){for(var n=2*t*1*t,i=96*n,r=new Uint8ClampedArray(i),o=0,a=0,s=0,u=0;u<96;u++)s=Math.max(s,this._downsampleChar(e,a,r,o,t)),o+=n,a+=40;if(s>0)for(var l=255/s,c=0;c<i;c++)r[c]*=l;return r}}]),e}(),Bt=n(46502),zt=function(){function e(t,n,i){var r=this;(0,c.Z)(this,e);var o=t.options,a=o.get(125),s=o.get(127),u=s.minimap,l=o.get(40),d=o.get(61);this.renderMinimap=u.renderMinimap,this.size=d.size,this.minimapHeightIsEditorHeight=u.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=o.get(91),this.showSlider=d.showSlider,this.pixelRatio=a,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.lineHeight=o.get(55),this.minimapLeft=u.minimapLeft,this.minimapWidth=u.minimapWidth,this.minimapHeight=s.height,this.canvasInnerWidth=u.minimapCanvasInnerWidth,this.canvasInnerHeight=u.minimapCanvasInnerHeight,this.canvasOuterWidth=u.minimapCanvasOuterWidth,this.canvasOuterHeight=u.minimapCanvasOuterHeight,this.isSampling=u.minimapIsSampling,this.editorHeight=s.height,this.fontScale=u.minimapScale,this.minimapLineHeight=u.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.charRenderer=(0,Rt.I)((function(){return Ht.create(r.fontScale,l.fontFamily)})),this.backgroundColor=e._getMinimapBackground(n,i)}return(0,d.Z)(e,[{key:"equals",value:function(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.showSlider===e.showSlider&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)}}],[{key:"_getMinimapBackground",value:function(e,t){var n=e.getColor(Ot.kV);return n?new Nt(n.rgba.r,n.rgba.g,n.rgba.b,n.rgba.a):t.getColor(2)}}]),e}(),Wt=function(){function e(t,n,i,r,o,a,s,u){(0,c.Z)(this,e),this.scrollTop=t,this.scrollHeight=n,this.sliderNeeded=i,this._computedSliderRatio=r,this.sliderTop=o,this.sliderHeight=a,this.startLineNumber=s,this.endLineNumber=u}return(0,d.Z)(e,[{key:"getDesiredScrollTopFromDelta",value:function(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}},{key:"getDesiredScrollTopFromTouchLocation",value:function(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}}],[{key:"create",value:function(t,n,i,r,o,a,s,u,l,c,d){var h,f,p=t.pixelRatio,v=t.minimapLineHeight,g=Math.floor(t.canvasInnerHeight/v),m=t.lineHeight;if(t.minimapHeightIsEditorHeight){var _=u*t.lineHeight+(t.scrollBeyondLastLine?o-t.lineHeight:0),y=Math.max(1,Math.floor(o*o/_)),b=Math.max(0,t.minimapHeight-y),w=b/(c-o),C=l*w,k=b>0,S=Math.floor(t.canvasInnerHeight/t.minimapLineHeight);return new e(l,c,k,w,C,y,1,Math.min(s,S))}if(a&&i!==s){var x=i-n+1;h=Math.floor(x*v/p)}else{var L=o/m;h=Math.floor(L*v/p)}f=t.scrollBeyondLastLine?(s-1)*v/p:Math.max(0,s*v/p-h);var E=(f=Math.min(t.minimapHeight-h,f))/(c-o),N=l*E,D=0;t.scrollBeyondLastLine&&(D=o/m-1);if(g>=s+D){return new e(l,c,f>0,E,N,h,1,s)}var M=Math.max(1,Math.floor(n-N*p/v));return d&&d.scrollHeight===c&&(d.scrollTop>l&&(M=Math.min(M,d.startLineNumber)),d.scrollTop<l&&(M=Math.max(M,d.startLineNumber))),new e(l,c,!0,E,(n-M+(l-r)/m)*v/p,h,M,Math.min(s,M+g-1))}}]),e}(),Vt=function(){function e(t){(0,c.Z)(this,e),this.dy=t}return(0,d.Z)(e,[{key:"onContentChanged",value:function(){this.dy=-1}},{key:"onTokensChanged",value:function(){this.dy=-1}}]),e}();Vt.INVALID=new Vt(-1);var Yt=function(){function e(t,n,i){(0,c.Z)(this,e),this.renderedLayout=t,this._imageData=n,this._renderedLines=new Je((function(){return Vt.INVALID})),this._renderedLines._set(t.startLineNumber,i)}return(0,d.Z)(e,[{key:"linesEquals",value:function(e){if(!this.scrollEquals(e))return!1;for(var t=this._renderedLines._get().lines,n=0,i=t.length;n<i;n++)if(-1===t[n].dy)return!1;return!0}},{key:"scrollEquals",value:function(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber}},{key:"_get",value:function(){var e=this._renderedLines._get();return{imageData:this._imageData,rendLineNumberStart:e.rendLineNumberStart,lines:e.lines}}},{key:"onLinesChanged",value:function(e,t){return this._renderedLines.onLinesChanged(e,t)}},{key:"onLinesDeleted",value:function(e,t){this._renderedLines.onLinesDeleted(e,t)}},{key:"onLinesInserted",value:function(e,t){this._renderedLines.onLinesInserted(e,t)}},{key:"onTokensChanged",value:function(e){return this._renderedLines.onTokensChanged(e)}}]),e}(),Ut=function(){function e(t,n,i,r){(0,c.Z)(this,e),this._backgroundFillData=e._createBackgroundFillData(n,i,r),this._buffers=[t.createImageData(n,i),t.createImageData(n,i)],this._lastUsedBuffer=0}return(0,d.Z)(e,[{key:"getBuffer",value:function(){this._lastUsedBuffer=1-this._lastUsedBuffer;var e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e}}],[{key:"_createBackgroundFillData",value:function(e,t,n){for(var i=n.r,r=n.g,o=n.b,a=new Uint8ClampedArray(e*t*4),s=0,u=0;u<t;u++)for(var l=0;l<e;l++)a[s]=i,a[s+1]=r,a[s+2]=o,a[s+3]=255,s+=4;return a}}]),e}(),Kt=function(){function e(t,n){(0,c.Z)(this,e),this.samplingRatio=t,this.minimapLines=n}return(0,d.Z)(e,[{key:"modelLineToMinimapLine",value:function(e){return Math.min(this.minimapLines.length,Math.max(1,Math.round(e/this.samplingRatio)))}},{key:"modelLineRangeToMinimapLineRange",value:function(e,t){for(var n=this.modelLineToMinimapLine(e)-1;n>0&&this.minimapLines[n-1]>=e;)n--;for(var i=this.modelLineToMinimapLine(t)-1;i+1<this.minimapLines.length&&this.minimapLines[i+1]<=t;)i++;if(n===i){var r=this.minimapLines[n];if(r<e||r>t)return null}return[n+1,i+1]}},{key:"decorationLineRangeToMinimapLineRange",value:function(e,t){var n=this.modelLineToMinimapLine(e),i=this.modelLineToMinimapLine(t);return e!==t&&i===n&&(i===this.minimapLines.length?n>1&&n--:i++),[n,i]}},{key:"onLinesDeleted",value:function(e){for(var t=e.toLineNumber-e.fromLineNumber+1,n=this.minimapLines.length,i=0,r=this.minimapLines.length-1;r>=0&&!(this.minimapLines[r]<e.fromLineNumber);r--)this.minimapLines[r]<=e.toLineNumber?(this.minimapLines[r]=Math.max(1,e.fromLineNumber-1),n=Math.min(n,r),i=Math.max(i,r)):this.minimapLines[r]-=t;return[n,i]}},{key:"onLinesInserted",value:function(e){for(var t=e.toLineNumber-e.fromLineNumber+1,n=this.minimapLines.length-1;n>=0&&!(this.minimapLines[n]<e.fromLineNumber);n--)this.minimapLines[n]+=t}}],[{key:"compute",value:function(t,n,i){if(0===t.renderMinimap||!t.isSampling)return[null,[]];var r=t.pixelRatio,o=t.lineHeight,a=t.scrollBeyondLastLine,s=ee.gk.computeContainedMinimapLineCount({viewLineCount:n,scrollBeyondLastLine:a,height:t.editorHeight,lineHeight:o,pixelRatio:r}).minimapLineCount,u=n/s,l=u/2;if(!i||0===i.minimapLines.length){var c=[];if(c[0]=1,s>1){for(var d=0,h=s-1;d<h;d++)c[d]=Math.round(d*u+l);c[s-1]=n}return[new e(u,c),[]]}for(var f=i.minimapLines,p=f.length,v=[],g=0,m=0,_=1,y=[],b=null,w=0;w<s;w++){for(var C=Math.max(_,Math.round(w*u)),k=Math.max(C,Math.round((w+1)*u));g<p&&f[g]<C;){if(y.length<10){var S=g+1+m;b&&"deleted"===b.type&&b._oldIndex===g-1?b.deleteToLineNumber++:(b={type:"deleted",_oldIndex:g,deleteFromLineNumber:S,deleteToLineNumber:S},y.push(b)),m--}g++}var x=void 0;if(g<p&&f[g]<=k)x=f[g],g++;else if(x=0===w?1:w+1===s?n:Math.round(w*u+l),y.length<10){var L=g+1+m;b&&"inserted"===b.type&&b._i===w-1?b.insertToLineNumber++:(b={type:"inserted",_i:w,insertFromLineNumber:L,insertToLineNumber:L},y.push(b)),m++}v[w]=x,_=x}if(y.length<10)for(;g<p;){var E=g+1+m;b&&"deleted"===b.type&&b._oldIndex===g-1?b.deleteToLineNumber++:(b={type:"deleted",_oldIndex:g,deleteFromLineNumber:E,deleteToLineNumber:E},y.push(b)),m--,g++}else y=[{type:"flush"}];return[new e(u,v),y]}}]),e}(),qt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var r;(0,c.Z)(this,n),(r=t.call(this,e)).tokensColorTracker=Mt.getInstance(),r._selections=[],r._minimapSelections=null,r.options=new zt(r._context.configuration,r._context.theme,r.tokensColorTracker);var a=Kt.compute(r.options,r._context.model.getLineCount(),null),s=(0,i.Z)(a,1)[0];return r._samplingState=s,r._shouldCheckSampling=!1,r._actual=new Gt(e.theme,(0,o.Z)(r)),r}return(0,d.Z)(n,[{key:"dispose",value:function(){this._actual.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"getDomNode",value:function(){return this._actual.getDomNode()}},{key:"_onOptionsMaybeChanged",value:function(){var e=new zt(this._context.configuration,this._context.theme,this.tokensColorTracker);return!this.options.equals(e)&&(this.options=e,this._recreateLineSampling(),this._actual.onDidChangeOptions(),!0)}},{key:"onConfigurationChanged",value:function(e){return this._onOptionsMaybeChanged()}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections,this._minimapSelections=null,this._actual.onSelectionChanged()}},{key:"onDecorationsChanged",value:function(e){return!!e.affectsMinimap&&this._actual.onDecorationsChanged()}},{key:"onFlushed",value:function(e){return this._samplingState&&(this._shouldCheckSampling=!0),this._actual.onFlushed()}},{key:"onLinesChanged",value:function(e){if(this._samplingState){var t=this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber,e.toLineNumber);return!!t&&this._actual.onLinesChanged(t[0],t[1])}return this._actual.onLinesChanged(e.fromLineNumber,e.toLineNumber)}},{key:"onLinesDeleted",value:function(e){if(this._samplingState){var t=this._samplingState.onLinesDeleted(e),n=(0,i.Z)(t,2),r=n[0],o=n[1];return r<=o&&this._actual.onLinesChanged(r+1,o+1),this._shouldCheckSampling=!0,!0}return this._actual.onLinesDeleted(e.fromLineNumber,e.toLineNumber)}},{key:"onLinesInserted",value:function(e){return this._samplingState?(this._samplingState.onLinesInserted(e),this._shouldCheckSampling=!0,!0):this._actual.onLinesInserted(e.fromLineNumber,e.toLineNumber)}},{key:"onScrollChanged",value:function(e){return this._actual.onScrollChanged()}},{key:"onThemeChanged",value:function(e){return this._context.model.invalidateMinimapColorCache(),this._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}},{key:"onTokensChanged",value:function(e){if(this._samplingState){var t,n=[],i=(0,r.Z)(e.ranges);try{for(i.s();!(t=i.n()).done;){var o=t.value,a=this._samplingState.modelLineRangeToMinimapLineRange(o.fromLineNumber,o.toLineNumber);a&&n.push({fromLineNumber:a[0],toLineNumber:a[1]})}}catch(s){i.e(s)}finally{i.f()}return!!n.length&&this._actual.onTokensChanged(n)}return this._actual.onTokensChanged(e.ranges)}},{key:"onTokensColorsChanged",value:function(e){return this._onOptionsMaybeChanged(),this._actual.onTokensColorsChanged()}},{key:"onZonesChanged",value:function(e){return this._actual.onZonesChanged()}},{key:"prepareRender",value:function(e){this._shouldCheckSampling&&(this._shouldCheckSampling=!1,this._recreateLineSampling())}},{key:"render",value:function(e){var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber;this._samplingState&&(t=this._samplingState.modelLineToMinimapLine(t),n=this._samplingState.modelLineToMinimapLine(n));var i={viewportContainsWhitespaceGaps:e.viewportData.whitespaceViewportData.length>0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:n,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(i)}},{key:"_recreateLineSampling",value:function(){this._minimapSelections=null;var e=Boolean(this._samplingState),t=Kt.compute(this.options,this._context.model.getLineCount(),this._samplingState),n=(0,i.Z)(t,2),o=n[0],a=n[1];if(this._samplingState=o,e&&this._samplingState){var s,u=(0,r.Z)(a);try{for(u.s();!(s=u.n()).done;){var l=s.value;switch(l.type){case"deleted":this._actual.onLinesDeleted(l.deleteFromLineNumber,l.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(l.insertFromLineNumber,l.insertToLineNumber);break;case"flush":this._actual.onFlushed()}}}catch(c){u.e(c)}finally{u.f()}}}},{key:"getLineCount",value:function(){return this._samplingState?this._samplingState.minimapLines.length:this._context.model.getLineCount()}},{key:"getRealLineCount",value:function(){return this._context.model.getLineCount()}},{key:"getLineContent",value:function(e){return this._samplingState?this._context.model.getLineContent(this._samplingState.minimapLines[e-1]):this._context.model.getLineContent(e)}},{key:"getMinimapLinesRenderingData",value:function(e,t,n){if(this._samplingState){for(var i=[],r=0,o=t-e+1;r<o;r++)n[r]?i[r]=this._context.model.getViewLineData(this._samplingState.minimapLines[e+r-1]):i[r]=null;return i}return this._context.model.getMinimapLinesRenderingData(e,t,n).data}},{key:"getSelections",value:function(){if(null===this._minimapSelections)if(this._samplingState){this._minimapSelections=[];var e,t=(0,r.Z)(this._selections);try{for(t.s();!(e=t.n()).done;){var n=e.value,o=this._samplingState.decorationLineRangeToMinimapLineRange(n.startLineNumber,n.endLineNumber),a=(0,i.Z)(o,2),s=a[0],u=a[1];this._minimapSelections.push(new L.Y(s,n.startColumn,u,n.endColumn))}}catch(l){t.e(l)}finally{t.f()}}else this._minimapSelections=this._selections;return this._minimapSelections}},{key:"getMinimapDecorationsInViewport",value:function(e,t){var n;if(this._samplingState){var i=this._samplingState.minimapLines[e-1],o=this._samplingState.minimapLines[t-1];n=new fe.e(i,1,o,this._context.model.getLineMaxColumn(o))}else n=new fe.e(e,1,t,this._context.model.getLineMaxColumn(t));var a=this._context.model.getDecorationsInViewport(n);if(this._samplingState){var s,u=[],l=(0,r.Z)(a);try{for(l.s();!(s=l.n()).done;){var c=s.value;if(c.options.minimap){var d=c.range,h=this._samplingState.modelLineToMinimapLine(d.startLineNumber),f=this._samplingState.modelLineToMinimapLine(d.endLineNumber);u.push(new Tt.$l(new fe.e(h,d.startColumn,f,d.endColumn),c.options))}}}catch(p){l.e(p)}finally{l.f()}return u}return a}},{key:"getOptions",value:function(){return this._context.model.getTextModelOptions()}},{key:"revealLineNumber",value:function(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.model.revealRange("mouse",!1,new fe.e(e,1,e,1),1,0)}},{key:"setScrollTop",value:function(e){this._context.model.setScrollPosition({scrollTop:e},1)}}]),n}(z),Gt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this))._renderDecorations=!1,r._gestureInProgress=!1,r._theme=e,r._model=i,r._lastRenderData=null,r._buffers=null,r._selectionColor=r._theme.getColor(Ot.ov),r._domNode=(0,E.X)(document.createElement("div")),W.write(r._domNode,8),r._domNode.setClassName(r._getMinimapDomNodeClassName()),r._domNode.setPosition("absolute"),r._domNode.setAttribute("role","presentation"),r._domNode.setAttribute("aria-hidden","true"),r._shadow=(0,E.X)(document.createElement("div")),r._shadow.setClassName("minimap-shadow-hidden"),r._domNode.appendChild(r._shadow),r._canvas=(0,E.X)(document.createElement("canvas")),r._canvas.setPosition("absolute"),r._canvas.setLeft(0),r._domNode.appendChild(r._canvas),r._decorationsCanvas=(0,E.X)(document.createElement("canvas")),r._decorationsCanvas.setPosition("absolute"),r._decorationsCanvas.setClassName("minimap-decorations-layer"),r._decorationsCanvas.setLeft(0),r._domNode.appendChild(r._decorationsCanvas),r._slider=(0,E.X)(document.createElement("div")),r._slider.setPosition("absolute"),r._slider.setClassName("minimap-slider"),r._slider.setLayerHinting(!0),r._slider.setContain("strict"),r._domNode.appendChild(r._slider),r._sliderHorizontal=(0,E.X)(document.createElement("div")),r._sliderHorizontal.setPosition("absolute"),r._sliderHorizontal.setClassName("minimap-slider-horizontal"),r._slider.appendChild(r._sliderHorizontal),r._applyLayout(),r._mouseDownListener=_.addStandardDisposableListener(r._domNode.domNode,"mousedown",(function(e){if(e.preventDefault(),0!==r._model.options.renderMinimap&&r._lastRenderData)if("proportional"===r._model.options.size){var t=r._model.options.minimapLineHeight,n=r._model.options.canvasInnerHeight/r._model.options.canvasOuterHeight*e.browserEvent.offsetY,i=Math.floor(n/t)+r._lastRenderData.renderedLayout.startLineNumber;i=Math.min(i,r._model.getLineCount()),r._model.revealLineNumber(i)}else if(e.leftButton&&r._lastRenderData){var o=_.getDomNodePagePosition(r._slider.domNode),a=o.top+o.height/2;r._startSliderDragging(e.buttons,e.posx,a,e.posy,r._lastRenderData.renderedLayout)}})),r._sliderMouseMoveMonitor=new O.Z,r._sliderMouseDownListener=_.addStandardDisposableListener(r._slider.domNode,"mousedown",(function(e){e.preventDefault(),e.stopPropagation(),e.leftButton&&r._lastRenderData&&r._startSliderDragging(e.buttons,e.posx,e.posy,e.posy,r._lastRenderData.renderedLayout)})),r._gestureDisposable=D.o.addTarget(r._domNode.domNode),r._sliderTouchStartListener=_.addDisposableListener(r._domNode.domNode,D.t.Start,(function(e){e.preventDefault(),e.stopPropagation(),r._lastRenderData&&(r._slider.toggleClassName("active",!0),r._gestureInProgress=!0,r.scrollDueToTouchEvent(e))}),{passive:!1}),r._sliderTouchMoveListener=_.addDisposableListener(r._domNode.domNode,D.t.Change,(function(e){e.preventDefault(),e.stopPropagation(),r._lastRenderData&&r._gestureInProgress&&r.scrollDueToTouchEvent(e)}),{passive:!1}),r._sliderTouchEndListener=_.addStandardDisposableListener(r._domNode.domNode,D.t.End,(function(e){e.preventDefault(),e.stopPropagation(),r._gestureInProgress=!1,r._slider.toggleClassName("active",!1)})),r}return(0,d.Z)(n,[{key:"_startSliderDragging",value:function(e,t,n,i,r){var o=this;this._slider.toggleClassName("active",!0);var a=function(e,i){var a=Math.abs(i-t);if(N.ED&&a>140)o._model.setScrollTop(r.scrollTop);else{var s=e-n;o._model.setScrollTop(r.getDesiredScrollTopFromDelta(s))}};i!==n&&a(i,t),this._sliderMouseMoveMonitor.startMonitoring(this._slider.domNode,e,O.e,(function(e){return a(e.posy,e.posx)}),(function(){o._slider.toggleClassName("active",!1)}))}},{key:"scrollDueToTouchEvent",value:function(e){var t=this._domNode.domNode.getBoundingClientRect().top,n=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(n)}},{key:"dispose",value:function(){this._mouseDownListener.dispose(),this._sliderMouseMoveMonitor.dispose(),this._sliderMouseDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_getMinimapDomNodeClassName",value:function(){return"always"===this._model.options.showSlider?"minimap slider-always":"minimap slider-mouseover"}},{key:"getDomNode",value:function(){return this._domNode}},{key:"_applyLayout",value:function(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}},{key:"_getBuffer",value:function(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new Ut(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}},{key:"onDidChangeOptions",value:function(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}},{key:"onSelectionChanged",value:function(){return this._renderDecorations=!0,!0}},{key:"onDecorationsChanged",value:function(){return this._renderDecorations=!0,!0}},{key:"onFlushed",value:function(){return this._lastRenderData=null,!0}},{key:"onLinesChanged",value:function(e,t){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e,t)}},{key:"onLinesDeleted",value:function(e,t){return this._lastRenderData&&this._lastRenderData.onLinesDeleted(e,t),!0}},{key:"onLinesInserted",value:function(e,t){return this._lastRenderData&&this._lastRenderData.onLinesInserted(e,t),!0}},{key:"onScrollChanged",value:function(){return this._renderDecorations=!0,!0}},{key:"onThemeChanged",value:function(){return this._selectionColor=this._theme.getColor(Ot.ov),this._renderDecorations=!0,!0}},{key:"onTokensChanged",value:function(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)}},{key:"onTokensColorsChanged",value:function(){return this._lastRenderData=null,this._buffers=null,!0}},{key:"onZonesChanged",value:function(){return this._lastRenderData=null,!0}},{key:"render",value:function(e){if(0===this._model.options.renderMinimap)return this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),void this._sliderHorizontal.setHeight(0);e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");var t=Wt.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(t.sliderNeeded?"block":"none"),this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight);var n=e.scrollLeft/this._model.options.typicalHalfwidthCharacterWidth,i=Math.min(this._model.options.minimapWidth,Math.round(n*this._model.options.minimapCharWidth/this._model.options.pixelRatio));this._sliderHorizontal.setLeft(i),this._sliderHorizontal.setWidth(this._model.options.minimapWidth-i),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)}},{key:"renderDecorations",value:function(e){if(this._renderDecorations){this._renderDecorations=!1;var t=this._model.getSelections(),n=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber),i=this._model.options,r=i.canvasInnerWidth,o=i.canvasInnerHeight,a=this._model.options.minimapLineHeight,s=this._model.options.minimapCharWidth,u=this._model.getOptions().tabSize,l=this._decorationsCanvas.domNode.getContext("2d");l.clearRect(0,0,r,o);for(var c=new Map,d=0;d<t.length;d++)for(var h=t[d],f=h.startLineNumber;f<=h.endLineNumber;f++)this.renderDecorationOnLine(l,c,h,this._selectionColor,e,f,a,a,u,s);for(var p=0;p<n.length;p++){var v=n[p];if(v.options.minimap)for(var g=v.options.minimap.getColor(this._theme),m=v.range.startLineNumber;m<=v.range.endLineNumber;m++)switch(v.options.minimap.position){case Bt.F5.Inline:this.renderDecorationOnLine(l,c,v.range,g,e,m,a,a,u,s);continue;case Bt.F5.Gutter:var _=(m-e.startLineNumber)*a;this.renderDecoration(l,g,2,_,2,a);continue}}}}},{key:"renderDecorationOnLine",value:function(e,t,n,i,r,o,a,s,u,l){var c=(o-r.startLineNumber)*s;if(!(c+a<0||c>this._model.options.canvasInnerHeight)){var d=t.get(o),h=!d;if(!d){var f=this._model.getLineContent(o);d=[ee.y0];for(var p=1;p<f.length+1;p++){var v=f.charCodeAt(p-1),g=9===v?u*l:Pe.K7(v)?2*l:l;d[p]=d[p-1]+g}t.set(o,d)}var m=n.startColumn,_=n.endColumn,y=n.startLineNumber,b=n.endLineNumber,w=y===o?d[m-1]:ee.y0,C=b>o?d.length-1:_-1;if(C>0){var k=d[C]-w||2;this.renderDecoration(e,i,w,c,k,a)}h&&this.renderLineHighlight(e,i,c,a)}}},{key:"renderLineHighlight",value:function(e,t,n,i){e.fillStyle=t&&t.transparent(.5).toString()||"",e.fillRect(ee.y0,n,e.canvas.width,i)}},{key:"renderDecoration",value:function(e,t,n,i,r,o){e.fillStyle=t&&t.toString()||"",e.fillRect(n,i,r,o)}},{key:"renderLines",value:function(e){var t=e.startLineNumber,r=e.endLineNumber,o=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){var a=this._lastRenderData._get();return new Yt(e,a.imageData,a.lines)}var s=this._getBuffer();if(!s)return null;for(var u=n._renderUntouchedLines(s,t,r,o,this._lastRenderData),l=(0,i.Z)(u,3),c=l[0],d=l[1],h=l[2],f=this._model.getMinimapLinesRenderingData(t,r,h),p=this._model.getOptions().tabSize,v=this._model.options.backgroundColor,g=this._model.tokensColorTracker,m=g.backgroundIsLight(),_=this._model.options.renderMinimap,y=this._model.options.charRenderer(),b=this._model.options.fontScale,w=this._model.options.minimapCharWidth,C=(1===_?2:3)*b,k=o>C?Math.floor((o-C)/2):0,S=0,x=[],L=0,E=r-t+1;L<E;L++)h[L]&&n._renderLine(s,v,m,_,w,g,y,S,k,p,f[L],b,o),x[L]=new Vt(S),S+=o;var N=-1===c?0:c,D=(-1===d?s.height:d)-N;return this._canvas.domNode.getContext("2d").putImageData(s,0,0,0,N,s.width,D),new Yt(e,s,x)}}],[{key:"_renderUntouchedLines",value:function(e,t,n,i,r){var o=[];if(!r){for(var a=0,s=n-t+1;a<s;a++)o[a]=!0;return[-1,-1,o]}for(var u=r._get(),l=u.imageData.data,c=u.rendLineNumberStart,d=u.lines,h=d.length,f=e.width,p=e.data,v=(n-t+1)*i*f*4,g=-1,m=-1,_=-1,y=-1,b=-1,w=-1,C=0,k=t;k<=n;k++){var S=k-t,x=k-c,L=x>=0&&x<h?d[x].dy:-1;if(-1!==L){var E=L*f*4,N=(L+i)*f*4,D=C*f*4,M=(C+i)*f*4;y===E&&w===D?(y=N,w=M):(-1!==_&&(p.set(l.subarray(_,y),b),-1===g&&0===_&&_===b&&(g=y),-1===m&&y===v&&_===b&&(m=_)),_=E,y=N,b=D,w=M),o[S]=!1,C+=i}else o[S]=!0,C+=i}return-1!==_&&(p.set(l.subarray(_,y),b),-1===g&&0===_&&_===b&&(g=y),-1===m&&y===v&&_===b&&(m=_)),[-1===g?-1:g/(4*f),-1===m?-1:m/(4*f),o]}},{key:"_renderLine",value:function(e,t,n,i,r,o,a,s,u,l,c,d,h){for(var f=c.content,p=c.tokens,v=e.width-r,g=1===h,m=ee.y0,_=0,y=0,b=0,w=p.getCount();b<w;b++)for(var C=p.getEndOffset(b),k=p.getForeground(b),S=o.getColor(k);_<C;_++){if(m>v)return;var x=f.charCodeAt(_);if(9===x){var L=l-(_+y)%l;y+=L-1,m+=L*r}else if(32===x)m+=r;else for(var E=Pe.K7(x)?2:1,N=0;N<E;N++)if(2===i?a.blockRenderChar(e,m,s+u,S,t,n,g):a.renderChar(e,m,s+u,x,S,t,d,n,g),(m+=r)>v)return}}}]),n}(w.JT);(0,je.Ic)((function(e,t){var n=e.getColor(Ot.kV);n&&t.addRule(".monaco-editor .minimap > canvas { opacity: ".concat(n.rgba.a,"; will-change: opacity; }"));var i=e.getColor(Ot.CA);i&&t.addRule(".monaco-editor .minimap-slider .minimap-slider-horizontal { background: ".concat(i,"; }"));var r=e.getColor(Ot.Xy);r&&t.addRule(".monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ".concat(r,"; }"));var o=e.getColor(Ot.br);o&&t.addRule(".monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ".concat(o,"; }"));var a=e.getColor(Ot._w);a&&t.addRule(".monaco-editor .minimap-shadow-visible { box-shadow: ".concat(a," -6px 0 6px -6px inset; }"))}));var $t=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options.get(127);return i._widgets={},i._verticalScrollbarWidth=r.verticalScrollbarWidth,i._minimapWidth=r.minimap.minimapWidth,i._horizontalScrollbarHeight=r.horizontalScrollbarHeight,i._editorHeight=r.height,i._editorWidth=r.width,i._domNode=(0,E.X)(document.createElement("div")),W.write(i._domNode,4),i._domNode.setClassName("overlayWidgets"),i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._widgets={}}},{key:"getDomNode",value:function(){return this._domNode}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options.get(127);return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0}},{key:"addWidget",value:function(e){var t=(0,E.X)(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),this._domNode.appendChild(t),this.setShouldRender()}},{key:"setWidgetPosition",value:function(e,t){var n=this._widgets[e.getId()];return n.preference!==t&&(n.preference=t,this.setShouldRender(),!0)}},{key:"removeWidget",value:function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t].domNode.domNode;delete this._widgets[t],n.parentNode.removeChild(n),this.setShouldRender()}}},{key:"_renderWidget",value:function(e){var t=e.domNode;if(null!==e.preference)if(0===e.preference)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(1===e.preference){var n=t.domNode.clientHeight;t.setTop(this._editorHeight-n-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else 2===e.preference&&(t.setTop(0),t.domNode.style.right="50%");else t.unsetTop()}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this._domNode.setWidth(this._editorWidth);for(var t=Object.keys(this._widgets),n=0,i=t.length;n<i;n++){var r=t[n];this._renderWidget(this._widgets[r])}}}]),n}(z),Qt=n(89938),Xt=function(){function e(t,n){(0,c.Z)(this,e);var r=t.options;this.lineHeight=r.get(55),this.pixelRatio=r.get(125),this.overviewRulerLanes=r.get(70),this.renderBorder=r.get(69);var o=n.getColor(Fe.zw);this.borderColor=o?o.toString():null,this.hideCursor=r.get(48);var a=n.getColor(Fe.n0);this.cursorColor=a?a.transparent(.7).toString():null,this.themeType=n.type;var s=r.get(61),u=s.enabled,l=s.side,d=u?n.getColor(Fe.e_)||Dt.RW.getDefaultBackground():null;this.backgroundColor=null===d||"left"===l?null:Qt.Il.Format.CSS.formatHex(d);var h=r.get(127).overviewRuler;this.top=h.top,this.right=h.right,this.domWidth=h.width,this.domHeight=h.height,0===this.overviewRulerLanes?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);var f=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes),p=(0,i.Z)(f,2),v=p[0],g=p[1];this.x=v,this.w=g}return(0,d.Z)(e,[{key:"_initLanes",value:function(e,t,n){var i=t-e;if(n>=3){var r=Math.floor(i/3),o=Math.floor(i/3),a=i-r-o,s=e+r;return[[0,e,s,e,e+r+a,e,s,e],[0,r,a,r+a,o,r+a+o,a+o,r+a+o]]}if(2===n){var u=Math.floor(i/2),l=i-u;return[[0,e,e,e,e+u,e,e,e],[0,u,u,u,l,u+l,u+l,u+l]]}return[[0,e,e,e,e,e,e,e],[0,i,i,i,i,i,i,i]]}},{key:"equals",value:function(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColor===e.cursorColor&&this.themeType===e.themeType&&this.backgroundColor===e.backgroundColor&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}}]),e}(),Jt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e))._domNode=(0,E.X)(document.createElement("canvas")),i._domNode.setClassName("decorationsOverviewRuler"),i._domNode.setPosition("absolute"),i._domNode.setLayerHinting(!0),i._domNode.setContain("strict"),i._domNode.setAttribute("aria-hidden","true"),i._updateSettings(!1),i._tokensColorTrackerListener=Dt.RW.onDidChange((function(e){e.changedColorMap&&i._updateSettings(!0)})),i._cursorPositions=[],i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._tokensColorTrackerListener.dispose()}},{key:"_updateSettings",value:function(e){var t=new Xt(this._context.configuration,this._context.theme);return(!this._settings||!this._settings.equals(t))&&(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}},{key:"onConfigurationChanged",value:function(e){return this._updateSettings(!1)}},{key:"onCursorStateChanged",value:function(e){this._cursorPositions=[];for(var t=0,n=e.selections.length;t<n;t++)this._cursorPositions[t]=e.selections[t].getPosition();return this._cursorPositions.sort(he.L.compare),!0}},{key:"onDecorationsChanged",value:function(e){return!!e.affectsOverviewRuler}},{key:"onFlushed",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollHeightChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"onThemeChanged",value:function(e){return this._context.model.invalidateOverviewRulerColorCache(),this._updateSettings(!1)}},{key:"getDomNode",value:function(){return this._domNode.domNode}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this._render()}},{key:"_render",value:function(){if(0!==this._settings.overviewRulerLanes){var e=this._settings.canvasWidth,t=this._settings.canvasHeight,n=this._settings.lineHeight,i=this._context.viewLayout,r=t/this._context.viewLayout.getScrollHeight(),o=this._context.model.getAllOverviewRulerDecorations(this._context.theme),a=6*this._settings.pixelRatio|0,s=a/2|0,u=this._domNode.domNode.getContext("2d");null===this._settings.backgroundColor?u.clearRect(0,0,e,t):(u.fillStyle=this._settings.backgroundColor,u.fillRect(0,0,e,t));var l=this._settings.x,c=this._settings.w,d=Object.keys(o);d.sort();for(var h=0,f=d.length;h<f;h++){var p=d[h],v=o[p];u.fillStyle=p;for(var g=0,m=0,_=0,y=0,b=v.length;y<b;y++){var w=v[3*y],C=v[3*y+1],k=v[3*y+2],S=i.getVerticalOffsetForLineNumber(C)*r|0,x=(i.getVerticalOffsetForLineNumber(k)+n)*r|0;if(x-S<a){var L=(S+x)/2|0;L<s?L=s:L+s>t&&(L=t-s),S=L-s,x=L+s}S>_+1||w!==g?(0!==y&&u.fillRect(l[g],m,c[g],_-m),g=w,m=S,_=x):x>_&&(_=x)}u.fillRect(l[g],m,c[g],_-m)}if(!this._settings.hideCursor&&this._settings.cursorColor){var E=2*this._settings.pixelRatio|0,N=E/2|0,D=this._settings.x[7],M=this._settings.w[7];u.fillStyle=this._settings.cursorColor;for(var T=-100,O=-100,I=0,A=this._cursorPositions.length;I<A;I++){var P=this._cursorPositions[I],R=i.getVerticalOffsetForLineNumber(P.lineNumber)*r|0;R<N?R=N:R+N>t&&(R=t-N);var Z=R-N,F=Z+E;Z>O+1?(0!==I&&u.fillRect(D,T,M,O-T),T=Z,O=F):F>O&&(O=F)}u.fillRect(D,T,M,O-T)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(u.beginPath(),u.lineWidth=1,u.strokeStyle=this._settings.borderColor,u.moveTo(0,0),u.lineTo(0,t),u.stroke(),u.moveTo(0,0),u.lineTo(e,0),u.stroke())}else this._domNode.setBackgroundColor(this._settings.backgroundColor?this._settings.backgroundColor:"")}}]),n}(z),en=n(32110),tn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;(0,c.Z)(this,n),(r=t.call(this))._context=e;var a=r._context.configuration.options;return r._domNode=(0,E.X)(document.createElement("canvas")),r._domNode.setClassName(i),r._domNode.setPosition("absolute"),r._domNode.setLayerHinting(!0),r._domNode.setContain("strict"),r._zoneManager=new en.Tj((function(e){return r._context.viewLayout.getVerticalOffsetForLineNumber(e)})),r._zoneManager.setDOMWidth(0),r._zoneManager.setDOMHeight(0),r._zoneManager.setOuterHeight(r._context.viewLayout.getScrollHeight()),r._zoneManager.setLineHeight(a.get(55)),r._zoneManager.setPixelRatio(a.get(125)),r._context.addEventHandler((0,o.Z)(r)),r}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;return e.hasChanged(55)&&(this._zoneManager.setLineHeight(t.get(55)),this._render()),e.hasChanged(125)&&(this._zoneManager.setPixelRatio(t.get(125)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}},{key:"onFlushed",value:function(e){return this._render(),!0}},{key:"onScrollChanged",value:function(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}},{key:"onZonesChanged",value:function(e){return this._render(),!0}},{key:"getDomNode",value:function(){return this._domNode.domNode}},{key:"setLayout",value:function(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);var t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,(t=this._zoneManager.setDOMHeight(e.height)||t)&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}},{key:"setZones",value:function(e){this._zoneManager.setZones(e),this._render()}},{key:"_render",value:function(){if(0===this._zoneManager.getOuterHeight())return!1;var e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),n=this._zoneManager.resolveColorZones(),i=this._zoneManager.getId2Color(),r=this._domNode.domNode.getContext("2d");return r.clearRect(0,0,e,t),n.length>0&&this._renderOneLane(r,n,i,e),!0}},{key:"_renderOneLane",value:function(e,t,n,i){var o,a=0,s=0,u=0,l=(0,r.Z)(t);try{for(l.s();!(o=l.n()).done;){var c=o.value,d=c.colorId,h=c.from,f=c.to;d!==a?(e.fillRect(0,s,i,u-s),a=d,e.fillStyle=n[a],s=h,u=f):u>=h?u=Math.max(u,f):(e.fillRect(0,s,i,u-s),s=h,u=f)}}catch(p){l.e(p)}finally{l.f()}e.fillRect(0,s,i,u-s)}}]),n}(B),nn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this,e)).domNode=(0,E.X)(document.createElement("div")),i.domNode.setAttribute("role","presentation"),i.domNode.setAttribute("aria-hidden","true"),i.domNode.setClassName("view-rulers"),i._renderedRulers=[];var r=i._context.configuration.options;return i._rulers=r.get(88),i._typicalHalfwidthCharacterWidth=r.get(40).typicalHalfwidthCharacterWidth,i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;return this._rulers=t.get(88),this._typicalHalfwidthCharacterWidth=t.get(40).typicalHalfwidthCharacterWidth,!0}},{key:"onScrollChanged",value:function(e){return e.scrollHeightChanged}},{key:"prepareRender",value:function(e){}},{key:"_ensureRulersCount",value:function(){var e=this._renderedRulers.length,t=this._rulers.length;if(e!==t)if(e<t)for(var n=this._context.model.getTextModelOptions().tabSize,i=t-e;i>0;){var r=(0,E.X)(document.createElement("div"));r.setClassName("view-ruler"),r.setWidth(n),this.domNode.appendChild(r),this._renderedRulers.push(r),i--}else for(var o=e-t;o>0;){var a=this._renderedRulers.pop();this.domNode.removeChild(a),o--}}},{key:"render",value:function(e){this._ensureRulersCount();for(var t=0,n=this._rulers.length;t<n;t++){var i=this._renderedRulers[t],r=this._rulers[t];i.setBoxShadow(r.color?"1px 0 0 0 ".concat(r.color," inset"):""),i.setHeight(Math.min(e.scrollHeight,1e6)),i.setLeft(r.column*this._typicalHalfwidthCharacterWidth)}}}]),n}(z);(0,je.Ic)((function(e,t){var n=e.getColor(Fe.zk);n&&t.addRule(".monaco-editor .view-ruler { box-shadow: 1px 0 0 0 ".concat(n," inset; }"))}));var rn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this,e))._scrollTop=0,i._width=0,i._updateWidth(),i._shouldShow=!1;var r=i._context.configuration.options.get(89);return i._useShadows=r.useShadows,i._domNode=(0,E.X)(document.createElement("div")),i._domNode.setAttribute("role","presentation"),i._domNode.setAttribute("aria-hidden","true"),i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_updateShouldShow",value:function(){var e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e&&(this._shouldShow=e,!0)}},{key:"getDomNode",value:function(){return this._domNode}},{key:"_updateWidth",value:function(){var e=this._context.configuration.options.get(127);0===e.minimap.renderMinimap||e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?this._width=e.width:this._width=e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options.get(89);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0}},{key:"onScrollChanged",value:function(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}]),n}(z);(0,je.Ic)((function(e,t){var n=e.getColor(Ot._w);n&&t.addRule(".monaco-editor .scroll-decoration { box-shadow: ".concat(n," 0 6px 6px -6px inset; }"))}));var on=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.left=t.left,this.width=t.width,this.startStyle=null,this.endStyle=null})),an=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.lineNumber=t,this.ranges=n}));function sn(e){return new on(e)}function un(e){return new an(e.lineNumber,e.ranges.map(sn))}var ln=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n),(i=t.call(this))._previousFrameVisibleRangesWithStyle=[],i._context=e;var r=i._context.configuration.options;return i._lineHeight=r.get(55),i._roundedSelection=r.get(87),i._typicalHalfwidthCharacterWidth=r.get(40).typicalHalfwidthCharacterWidth,i._selections=[],i._renderResult=null,i._context.addEventHandler((0,o.Z)(i)),i}return(0,d.Z)(n,[{key:"dispose",value:function(){this._context.removeEventHandler(this),this._renderResult=null,(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;return this._lineHeight=t.get(55),this._roundedSelection=t.get(87),this._typicalHalfwidthCharacterWidth=t.get(40).typicalHalfwidthCharacterWidth,!0}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections.slice(0),!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_visibleRangesHaveGaps",value:function(e){for(var t=0,n=e.length;t<n;t++){if(e[t].ranges.length>1)return!0}return!1}},{key:"_enrichVisibleRangesWithStyle",value:function(e,t,n){var i=this._typicalHalfwidthCharacterWidth/4,r=null,o=null;if(n&&n.length>0&&t.length>0){var a=t[0].lineNumber;if(a===e.startLineNumber)for(var s=0;!r&&s<n.length;s++)n[s].lineNumber===a&&(r=n[s].ranges[0]);var u=t[t.length-1].lineNumber;if(u===e.endLineNumber)for(var l=n.length-1;!o&&l>=0;l--)n[l].lineNumber===u&&(o=n[l].ranges[0]);r&&!r.startStyle&&(r=null),o&&!o.startStyle&&(o=null)}for(var c=0,d=t.length;c<d;c++){var h=t[c].ranges[0],f=h.left,p=h.left+h.width,v={top:0,bottom:0},g={top:0,bottom:0};if(c>0){var m=t[c-1].ranges[0].left,_=t[c-1].ranges[0].left+t[c-1].ranges[0].width;cn(f-m)<i?v.top=2:f>m&&(v.top=1),cn(p-_)<i?g.top=2:m<p&&p<_&&(g.top=1)}else r&&(v.top=r.startStyle.top,g.top=r.endStyle.top);if(c+1<d){var y=t[c+1].ranges[0].left,b=t[c+1].ranges[0].left+t[c+1].ranges[0].width;cn(f-y)<i?v.bottom=2:y<f&&f<b&&(v.bottom=1),cn(p-b)<i?g.bottom=2:p<b&&(g.bottom=1)}else o&&(v.bottom=o.startStyle.bottom,g.bottom=o.endStyle.bottom);h.startStyle=v,h.endStyle=g}}},{key:"_getVisibleRangesWithStyle",value:function(e,t,n){var i=(t.linesVisibleRangesForRange(e,!0)||[]).map(un);return!this._visibleRangesHaveGaps(i)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,i,n),i}},{key:"_createSelectionPiece",value:function(e,t,n,i,r){return'<div class="cslr '+n+'" style="top:'+e.toString()+"px;left:"+i.toString()+"px;width:"+r.toString()+"px;height:"+t+'px;"></div>'}},{key:"_actualRenderOneSelection",value:function(e,t,i,r){if(0!==r.length)for(var o=!!r[0].ranges[0].startStyle,a=this._lineHeight.toString(),s=(this._lineHeight-1).toString(),u=r[0].lineNumber,l=r[r.length-1].lineNumber,c=0,d=r.length;c<d;c++){for(var h=r[c],f=h.lineNumber,p=f-t,v=i&&(f===l||f===u)?s:a,g=i&&f===u?1:0,m="",_="",y=0,b=h.ranges.length;y<b;y++){var w=h.ranges[y];if(o){var C=w.startStyle,k=w.endStyle;if(1===C.top||1===C.bottom){m+=this._createSelectionPiece(g,v,n.SELECTION_CLASS_NAME,w.left-n.ROUNDED_PIECE_WIDTH,n.ROUNDED_PIECE_WIDTH);var S=n.EDITOR_BACKGROUND_CLASS_NAME;1===C.top&&(S+=" "+n.SELECTION_TOP_RIGHT),1===C.bottom&&(S+=" "+n.SELECTION_BOTTOM_RIGHT),m+=this._createSelectionPiece(g,v,S,w.left-n.ROUNDED_PIECE_WIDTH,n.ROUNDED_PIECE_WIDTH)}if(1===k.top||1===k.bottom){m+=this._createSelectionPiece(g,v,n.SELECTION_CLASS_NAME,w.left+w.width,n.ROUNDED_PIECE_WIDTH);var x=n.EDITOR_BACKGROUND_CLASS_NAME;1===k.top&&(x+=" "+n.SELECTION_TOP_LEFT),1===k.bottom&&(x+=" "+n.SELECTION_BOTTOM_LEFT),m+=this._createSelectionPiece(g,v,x,w.left+w.width,n.ROUNDED_PIECE_WIDTH)}}var L=n.SELECTION_CLASS_NAME;if(o){var E=w.startStyle,N=w.endStyle;0===E.top&&(L+=" "+n.SELECTION_TOP_LEFT),0===E.bottom&&(L+=" "+n.SELECTION_BOTTOM_LEFT),0===N.top&&(L+=" "+n.SELECTION_TOP_RIGHT),0===N.bottom&&(L+=" "+n.SELECTION_BOTTOM_RIGHT)}_+=this._createSelectionPiece(g,v,L,w.left,w.width)}e[p][0]+=m,e[p][1]+=_}}},{key:"prepareRender",value:function(e){for(var t=[],n=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,o=n;o<=r;o++){t[o-n]=["",""]}for(var a=[],s=0,u=this._selections.length;s<u;s++){var l=this._selections[s];if(l.isEmpty())a[s]=null;else{var c=this._getVisibleRangesWithStyle(l,e,this._previousFrameVisibleRangesWithStyle[s]);a[s]=c,this._actualRenderOneSelection(t,n,this._selections.length>1,c)}}this._previousFrameVisibleRangesWithStyle=a,this._renderResult=t.map((function(e){var t=(0,i.Z)(e,2);return t[0]+t[1]}))}},{key:"render",value:function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]}}]),n}(Ze);function cn(e){return e<0?-e:e}ln.SELECTION_CLASS_NAME="selected-text",ln.SELECTION_TOP_LEFT="top-left-radius",ln.SELECTION_BOTTOM_LEFT="bottom-left-radius",ln.SELECTION_TOP_RIGHT="top-right-radius",ln.SELECTION_BOTTOM_RIGHT="bottom-right-radius",ln.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",ln.ROUNDED_PIECE_WIDTH=10,(0,je.Ic)((function(e,t){var n=e.getColor(Ot.hE);n&&t.addRule(".monaco-editor .focused .selected-text { background-color: ".concat(n,"; }"));var i=e.getColor(Ot.ES);i&&t.addRule(".monaco-editor .selected-text { background-color: ".concat(i,"; }"));var r=e.getColor(Ot.yb);r&&!r.isTransparent()&&t.addRule(".monaco-editor .view-line span.inline-selected-text { color: ".concat(r,"; }"))}));var dn=(0,d.Z)((function e(t,n,i,r,o,a){(0,c.Z)(this,e),this.top=t,this.left=n,this.width=i,this.height=r,this.textContent=o,this.textContentClassName=a})),hn=function(){function e(t){(0,c.Z)(this,e),this._context=t;var n=this._context.configuration.options,i=n.get(40);this._cursorStyle=n.get(22),this._lineHeight=n.get(55),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(n.get(25),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=(0,E.X)(document.createElement("div")),this._domNode.setClassName("cursor ".concat(We.S)),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),k.V.applyFontInfo(this._domNode,i),this._domNode.setDisplay("none"),this._position=new he.L(1,1),this._lastRenderedContent="",this._renderData=null}return(0,d.Z)(e,[{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return this._position}},{key:"show",value:function(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}},{key:"hide",value:function(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(40);return this._cursorStyle=t.get(22),this._lineHeight=t.get(55),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(25),this._typicalHalfwidthCharacterWidth),k.V.applyFontInfo(this._domNode,n),!0}},{key:"onCursorPositionChanged",value:function(e){return this._position=e,!0}},{key:"_prepareRender",value:function(e){var t="";if(this._cursorStyle===ee.d2.Line||this._cursorStyle===ee.d2.LineThin){var n,i=e.visibleRangeForPosition(this._position);if(!i||i.outsideRenderedLine)return null;if(this._cursorStyle===ee.d2.Line){if((n=_.computeScreenAwareSize(this._lineCursorWidth>0?this._lineCursorWidth:2))>2){var r=this._context.model.getLineContent(this._position.lineNumber),o=Pe.vH(r,this._position.column-1);t=r.substr(this._position.column-1,o)}}else n=_.computeScreenAwareSize(1);var a=i.left;n>=2&&a>=1&&(a-=1);var s=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta;return new dn(s,a,n,this._lineHeight,t,"")}var u=this._context.model.getLineContent(this._position.lineNumber),l=Pe.vH(u,this._position.column-1),c=e.linesVisibleRangesForRange(new fe.e(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column+l),!1);if(!c||0===c.length)return null;var d=c[0];if(d.outsideRenderedLine||0===d.ranges.length)return null;var h=d.ranges[0],f=h.width<1?this._typicalHalfwidthCharacterWidth:h.width,p="";if(this._cursorStyle===ee.d2.Block){var v=this._context.model.getViewLineData(this._position.lineNumber);t=u.substr(this._position.column-1,l);var g=v.tokens.findTokenIndexAtOffset(this._position.column-1);p=v.tokens.getClassName(g)}var m=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta,y=this._lineHeight;return this._cursorStyle!==ee.d2.Underline&&this._cursorStyle!==ee.d2.UnderlineThin||(m+=this._lineHeight-2,y=2),new dn(m,h.left,f,y,t,p)}},{key:"prepareRender",value:function(e){this._renderData=this._prepareRender(e)}},{key:"render",value:function(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName("cursor ".concat(We.S," ").concat(this._renderData.textContentClassName)),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}]),e}(),fn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options;return i._readOnly=r.get(77),i._cursorBlinking=r.get(20),i._cursorStyle=r.get(22),i._cursorSmoothCaretAnimation=r.get(21),i._selectionIsEmpty=!0,i._isComposingInput=!1,i._isVisible=!1,i._primaryCursor=new hn(i._context),i._secondaryCursors=[],i._renderData=[],i._domNode=(0,E.X)(document.createElement("div")),i._domNode.setAttribute("role","presentation"),i._domNode.setAttribute("aria-hidden","true"),i._updateDomClassName(),i._domNode.appendChild(i._primaryCursor.getDomNode()),i._startCursorBlinkAnimation=new T._F,i._cursorFlatBlinkInterval=new T.zh,i._blinkingEnabled=!1,i._editorHasFocus=!1,i._updateBlinking(),i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}},{key:"getDomNode",value:function(){return this._domNode}},{key:"onCompositionStart",value:function(e){return this._isComposingInput=!0,this._updateBlinking(),!0}},{key:"onCompositionEnd",value:function(e){return this._isComposingInput=!1,this._updateBlinking(),!0}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options;this._readOnly=t.get(77),this._cursorBlinking=t.get(20),this._cursorStyle=t.get(22),this._cursorSmoothCaretAnimation=t.get(21),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(var n=0,i=this._secondaryCursors.length;n<i;n++)this._secondaryCursors[n].onConfigurationChanged(e);return!0}},{key:"_onCursorPositionChanged",value:function(e,t){if(this._primaryCursor.onCursorPositionChanged(e),this._updateBlinking(),this._secondaryCursors.length<t.length)for(var n=t.length-this._secondaryCursors.length,i=0;i<n;i++){var r=new hn(this._context);this._domNode.domNode.insertBefore(r.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(r)}else if(this._secondaryCursors.length>t.length)for(var o=this._secondaryCursors.length-t.length,a=0;a<o;a++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1);for(var s=0;s<t.length;s++)this._secondaryCursors[s].onCursorPositionChanged(t[s])}},{key:"onCursorStateChanged",value:function(e){for(var t=[],n=0,i=e.selections.length;n<i;n++)t[n]=e.selections[n].getPosition();this._onCursorPositionChanged(t[0],t.slice(1));var r=e.selections[0].isEmpty();return this._selectionIsEmpty!==r&&(this._selectionIsEmpty=r,this._updateDomClassName()),!0}},{key:"onDecorationsChanged",value:function(e){return!0}},{key:"onFlushed",value:function(e){return!0}},{key:"onFocusChanged",value:function(e){return this._editorHasFocus=e.isFocused,this._updateBlinking(),!1}},{key:"onLinesChanged",value:function(e){return!0}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return!0}},{key:"onTokensChanged",value:function(e){var t=function(t){for(var n=0,i=e.ranges.length;n<i;n++)if(e.ranges[n].fromLineNumber<=t.lineNumber&&t.lineNumber<=e.ranges[n].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;var n,i=(0,r.Z)(this._secondaryCursors);try{for(i.s();!(n=i.n()).done;){if(t(n.value.getPosition()))return!0}}catch(o){i.e(o)}finally{i.f()}return!1}},{key:"onZonesChanged",value:function(e){return!0}},{key:"_getCursorBlinking",value:function(){return this._isComposingInput?0:this._editorHasFocus?this._readOnly?5:this._cursorBlinking:0}},{key:"_updateBlinking",value:function(){var e=this;this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();var t=this._getCursorBlinking(),i=0===t,r=5===t;i?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),i||r||(1===t?this._cursorFlatBlinkInterval.cancelAndSet((function(){e._isVisible?e._hide():e._show()}),n.BLINK_INTERVAL):this._startCursorBlinkAnimation.setIfNotSet((function(){e._blinkingEnabled=!0,e._updateDomClassName()}),n.BLINK_INTERVAL))}},{key:"_updateDomClassName",value:function(){this._domNode.setClassName(this._getClassName())}},{key:"_getClassName",value:function(){var e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case ee.d2.Line:e+=" cursor-line-style";break;case ee.d2.Block:e+=" cursor-block-style";break;case ee.d2.Underline:e+=" cursor-underline-style";break;case ee.d2.LineThin:e+=" cursor-line-thin-style";break;case ee.d2.BlockOutline:e+=" cursor-block-outline-style";break;case ee.d2.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return this._cursorSmoothCaretAnimation&&(e+=" cursor-smooth-caret-animation"),e}},{key:"_show",value:function(){this._primaryCursor.show();for(var e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0}},{key:"_hide",value:function(){this._primaryCursor.hide();for(var e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1}},{key:"prepareRender",value:function(e){this._primaryCursor.prepareRender(e);for(var t=0,n=this._secondaryCursors.length;t<n;t++)this._secondaryCursors[t].prepareRender(e)}},{key:"render",value:function(e){var t=[],n=0,i=this._primaryCursor.render(e);i&&(t[n++]=i);for(var r=0,o=this._secondaryCursors.length;r<o;r++){var a=this._secondaryCursors[r].render(e);a&&(t[n++]=a)}this._renderData=t}},{key:"getLastRenderData",value:function(){return this._renderData}}]),n}(z);fn.BLINK_INTERVAL=500,(0,je.Ic)((function(e,t){var n=e.getColor(Fe.n0);if(n){var i=e.getColor(Fe.fY);i||(i=n.opposite()),t.addRule(".monaco-editor .cursors-layer .cursor { background-color: ".concat(n,"; border-color: ").concat(n,"; color: ").concat(i,"; }")),"hc"===e.type&&t.addRule(".monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ".concat(i,"; border-right: 1px solid ").concat(i,"; }"))}}));var pn=function(){throw new Error("Invalid change accessor")},vn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;(0,c.Z)(this,n);var r=(i=t.call(this,e))._context.configuration.options,o=r.get(127);return i._lineHeight=r.get(55),i._contentWidth=o.contentWidth,i._contentLeft=o.contentLeft,i.domNode=(0,E.X)(document.createElement("div")),i.domNode.setClassName("view-zones"),i.domNode.setPosition("absolute"),i.domNode.setAttribute("role","presentation"),i.domNode.setAttribute("aria-hidden","true"),i.marginDomNode=(0,E.X)(document.createElement("div")),i.marginDomNode.setClassName("margin-view-zones"),i.marginDomNode.setPosition("absolute"),i.marginDomNode.setAttribute("role","presentation"),i.marginDomNode.setAttribute("aria-hidden","true"),i._zones={},i}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._zones={}}},{key:"_recomputeWhitespacesProps",value:function(){var e,t=this,n=this._context.viewLayout.getWhitespaces(),i=new Map,o=(0,r.Z)(n);try{for(o.s();!(e=o.n()).done;){var a=e.value;i.set(a.id,a)}}catch(u){o.e(u)}finally{o.f()}var s=!1;return this._context.model.changeWhitespace((function(e){for(var n=Object.keys(t._zones),r=0,o=n.length;r<o;r++){var a=n[r],u=t._zones[a],l=t._computeWhitespaceProps(u.delegate),c=i.get(a);!c||c.afterLineNumber===l.afterViewLineNumber&&c.height===l.heightInPx||(e.changeOneWhitespace(a,l.afterViewLineNumber,l.heightInPx),t._safeCallOnComputedHeight(u.delegate,l.heightInPx),s=!0)}})),s}},{key:"onConfigurationChanged",value:function(e){var t=this._context.configuration.options,n=t.get(127);return this._lineHeight=t.get(55),this._contentWidth=n.contentWidth,this._contentLeft=n.contentLeft,e.hasChanged(55)&&this._recomputeWhitespacesProps(),!0}},{key:"onLineMappingChanged",value:function(e){return this._recomputeWhitespacesProps()}},{key:"onLinesDeleted",value:function(e){return!0}},{key:"onScrollChanged",value:function(e){return e.scrollTopChanged||e.scrollWidthChanged}},{key:"onZonesChanged",value:function(e){return!0}},{key:"onLinesInserted",value:function(e){return!0}},{key:"_getZoneOrdinal",value:function(e){return"undefined"!==typeof e.afterColumn?e.afterColumn:1e4}},{key:"_computeWhitespaceProps",value:function(e){if(0===e.afterLineNumber)return{afterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};var t,n;if("undefined"!==typeof e.afterColumn)t=this._context.model.validateModelPosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{var i=this._context.model.validateModelPosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new he.L(i,this._context.model.getModelLineMaxColumn(i))}n=t.column===this._context.model.getModelLineMaxColumn(t.lineNumber)?this._context.model.validateModelPosition({lineNumber:t.lineNumber+1,column:1}):this._context.model.validateModelPosition({lineNumber:t.lineNumber,column:t.column+1});var r=this._context.model.coordinatesConverter.convertModelPositionToViewPosition(t),o=this._context.model.coordinatesConverter.modelPositionIsVisible(n);return{afterViewLineNumber:r.lineNumber,heightInPx:o?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}},{key:"changeViewZones",value:function(e){var t=this,n=!1;return this._context.model.changeWhitespace((function(i){var r={addZone:function(e){return n=!0,t._addZone(i,e)},removeZone:function(e){e&&(n=t._removeZone(i,e)||n)},layoutZone:function(e){e&&(n=t._layoutZone(i,e)||n)}};!function(e,t){try{return e(t)}catch(n){(0,y.dL)(n)}}(e,r),r.addZone=pn,r.removeZone=pn,r.layoutZone=pn})),n}},{key:"_addZone",value:function(e,t){var n=this._computeWhitespaceProps(t),i={whitespaceId:e.insertWhitespace(n.afterViewLineNumber,this._getZoneOrdinal(t),n.heightInPx,n.minWidthInPx),delegate:t,isVisible:!1,domNode:(0,E.X)(t.domNode),marginDomNode:t.marginDomNode?(0,E.X)(t.marginDomNode):null};return this._safeCallOnComputedHeight(i.delegate,n.heightInPx),i.domNode.setPosition("absolute"),i.domNode.domNode.style.width="100%",i.domNode.setDisplay("none"),i.domNode.setAttribute("monaco-view-zone",i.whitespaceId),this.domNode.appendChild(i.domNode),i.marginDomNode&&(i.marginDomNode.setPosition("absolute"),i.marginDomNode.domNode.style.width="100%",i.marginDomNode.setDisplay("none"),i.marginDomNode.setAttribute("monaco-view-zone",i.whitespaceId),this.marginDomNode.appendChild(i.marginDomNode)),this._zones[i.whitespaceId]=i,this.setShouldRender(),i.whitespaceId}},{key:"_removeZone",value:function(e,t){if(this._zones.hasOwnProperty(t)){var n=this._zones[t];return delete this._zones[t],e.removeWhitespace(n.whitespaceId),n.domNode.removeAttribute("monaco-visible-view-zone"),n.domNode.removeAttribute("monaco-view-zone"),n.domNode.domNode.parentNode.removeChild(n.domNode.domNode),n.marginDomNode&&(n.marginDomNode.removeAttribute("monaco-visible-view-zone"),n.marginDomNode.removeAttribute("monaco-view-zone"),n.marginDomNode.domNode.parentNode.removeChild(n.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}},{key:"_layoutZone",value:function(e,t){if(this._zones.hasOwnProperty(t)){var n=this._zones[t],i=this._computeWhitespaceProps(n.delegate);return e.changeOneWhitespace(n.whitespaceId,i.afterViewLineNumber,i.heightInPx),this._safeCallOnComputedHeight(n.delegate,i.heightInPx),this.setShouldRender(),!0}return!1}},{key:"shouldSuppressMouseDownOnViewZone",value:function(e){if(this._zones.hasOwnProperty(e)){var t=this._zones[e];return Boolean(t.delegate.suppressMouseDown)}return!1}},{key:"_heightInPixels",value:function(e){return"number"===typeof e.heightInPx?e.heightInPx:"number"===typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight}},{key:"_minWidthInPixels",value:function(e){return"number"===typeof e.minWidthInPx?e.minWidthInPx:0}},{key:"_safeCallOnComputedHeight",value:function(e,t){if("function"===typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(n){(0,y.dL)(n)}}},{key:"_safeCallOnDomNodeTop",value:function(e,t){if("function"===typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(n){(0,y.dL)(n)}}},{key:"prepareRender",value:function(e){}},{key:"render",value:function(e){for(var t=e.viewportData.whitespaceViewportData,n={},i=!1,r=0,o=t.length;r<o;r++)n[t[r].id]=t[r],i=!0;for(var a=Object.keys(this._zones),s=0,u=a.length;s<u;s++){var l=a[s],c=this._zones[l],d=0,h=0,f="none";n.hasOwnProperty(l)?(d=n[l].verticalOffset-e.bigNumbersDelta,h=n[l].height,f="block",c.isVisible||(c.domNode.setAttribute("monaco-visible-view-zone","true"),c.isVisible=!0),this._safeCallOnDomNodeTop(c.delegate,e.getScrolledTopFromAbsoluteTop(n[l].verticalOffset))):(c.isVisible&&(c.domNode.removeAttribute("monaco-visible-view-zone"),c.isVisible=!1),this._safeCallOnDomNodeTop(c.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),c.domNode.setTop(d),c.domNode.setHeight(h),c.domNode.setDisplay(f),c.marginDomNode&&(c.marginDomNode.setTop(d),c.marginDomNode.setHeight(h),c.marginDomNode.setDisplay(f))}i&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))}}]),n}(z);var gn=function(){function e(t){(0,c.Z)(this,e),this._theme=t}return(0,d.Z)(e,[{key:"type",get:function(){return this._theme.type}},{key:"update",value:function(e){this._theme=e}},{key:"getColor",value:function(e){return this._theme.getColor(e)}}]),e}(),mn=function(){function e(t,n,i){(0,c.Z)(this,e),this.configuration=t,this.theme=new gn(n),this.model=i,this.viewLayout=i.viewLayout}return(0,d.Z)(e,[{key:"addEventHandler",value:function(e){this.model.addViewEventHandler(e)}},{key:"removeEventHandler",value:function(e){this.model.removeViewEventHandler(e)}}]),e}(),_n=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.selections=t,this.startLineNumber=0|n.startLineNumber,this.endLineNumber=0|n.endLineNumber,this.relativeVerticalOffset=n.relativeVerticalOffset,this.bigNumbersDelta=0|n.bigNumbersDelta,this.whitespaceViewportData=i,this._model=r,this.visibleRange=new fe.e(n.startLineNumber,this._model.getLineMinColumn(n.startLineNumber),n.endLineNumber,this._model.getLineMaxColumn(n.endLineNumber))}return(0,d.Z)(e,[{key:"getViewLineRenderingData",value:function(e){return this._model.getViewLineRenderingData(this.visibleRange,e)}},{key:"getDecorationsInViewport",value:function(){return this._model.getDecorationsInViewport(this.visibleRange)}}]),e}(),yn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u){var l;(0,c.Z)(this,n),(l=t.call(this))._selections=[new L.Y(1,1,1,1)],l._renderAnimationFrame=null;var d=new Ge(i,a,s,e);l._context=new mn(i,r.getColorTheme(),a),l._configPixelRatio=l._context.configuration.options.get(125),l._context.addEventHandler((0,o.Z)(l)),l._register(r.onDidColorThemeChange((function(e){l._context.theme.update(e),l._context.model.onDidColorThemeChange(),l.render(!0,!1)}))),l._viewParts=[],l._textAreaHandler=new Ue(l._context,d,l._createTextAreaHandlerHelper()),l._viewParts.push(l._textAreaHandler),l._linesContent=(0,E.X)(document.createElement("div")),l._linesContent.setClassName("lines-content monaco-editor-background"),l._linesContent.setPosition("absolute"),l.domNode=(0,E.X)(document.createElement("div")),l.domNode.setClassName(l._getEditorClassName()),l.domNode.setAttribute("role","code"),l._overflowGuardContainer=(0,E.X)(document.createElement("div")),W.write(l._overflowGuardContainer,3),l._overflowGuardContainer.setClassName("overflow-guard"),l._scrollbar=new mt(l._context,l._linesContent,l.domNode,l._overflowGuardContainer),l._viewParts.push(l._scrollbar),l._viewLines=new xt(l._context,l._linesContent),l._viewZones=new vn(l._context),l._viewParts.push(l._viewZones);var h=new Jt(l._context);l._viewParts.push(h);var f=new rn(l._context);l._viewParts.push(f);var p=new rt(l._context);l._viewParts.push(p),p.addDynamicOverlay(new ft(l._context)),p.addDynamicOverlay(new ln(l._context)),p.addDynamicOverlay(new wt(l._context)),p.addDynamicOverlay(new vt(l._context));var v=new ot(l._context);l._viewParts.push(v),v.addDynamicOverlay(new pt(l._context)),v.addDynamicOverlay(new bt(l._context)),v.addDynamicOverlay(new Et(l._context)),v.addDynamicOverlay(new Lt(l._context)),v.addDynamicOverlay(new He(l._context));var g=new Be(l._context);g.getDomNode().appendChild(l._viewZones.marginDomNode),g.getDomNode().appendChild(v.getDomNode()),l._viewParts.push(g),l._contentWidgets=new st(l._context,l.domNode),l._viewParts.push(l._contentWidgets),l._viewCursors=new fn(l._context),l._viewParts.push(l._viewCursors),l._overlayWidgets=new $t(l._context),l._viewParts.push(l._overlayWidgets);var m=new nn(l._context);l._viewParts.push(m);var _=new qt(l._context);if(l._viewParts.push(_),h){var y=l._scrollbar.getOverviewRulerLayoutInfo();y.parent.insertBefore(h.getDomNode(),y.insertBefore)}return l._linesContent.appendChild(p.getDomNode()),l._linesContent.appendChild(m.domNode),l._linesContent.appendChild(l._viewZones.domNode),l._linesContent.appendChild(l._viewLines.getDomNode()),l._linesContent.appendChild(l._contentWidgets.domNode),l._linesContent.appendChild(l._viewCursors.getDomNode()),l._overflowGuardContainer.appendChild(g.getDomNode()),l._overflowGuardContainer.appendChild(l._scrollbar.getDomNode()),l._overflowGuardContainer.appendChild(f.getDomNode()),l._overflowGuardContainer.appendChild(l._textAreaHandler.textArea),l._overflowGuardContainer.appendChild(l._textAreaHandler.textAreaCover),l._overflowGuardContainer.appendChild(l._overlayWidgets.getDomNode()),l._overflowGuardContainer.appendChild(_.getDomNode()),l.domNode.appendChild(l._overflowGuardContainer),u?u.appendChild(l._contentWidgets.overflowingContentWidgetsDomNode.domNode):l.domNode.appendChild(l._contentWidgets.overflowingContentWidgetsDomNode),l._applyLayout(),l._pointerHandler=l._register(new Ae(l._context,d,l._createPointerHandlerHelper())),l}return(0,d.Z)(n,[{key:"_flushAccumulatedAndRenderNow",value:function(){this._renderNow()}},{key:"_createPointerHandlerHelper",value:function(){var e=this;return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,focusTextArea:function(){e.focus()},dispatchTextAreaEvent:function(t){e._textAreaHandler.textArea.domNode.dispatchEvent(t)},getLastRenderData:function(){var t=e._viewCursors.getLastRenderData()||[],n=e._textAreaHandler.getLastRenderData();return new ge(t,n)},shouldSuppressMouseDownOnViewZone:function(t){return e._viewZones.shouldSuppressMouseDownOnViewZone(t)},shouldSuppressMouseDownOnWidget:function(t){return e._contentWidgets.shouldSuppressMouseDownOnWidget(t)},getPositionFromDOMInfo:function(t,n){return e._flushAccumulatedAndRenderNow(),e._viewLines.getPositionFromDOMInfo(t,n)},visibleRangeForPosition:function(t,n){return e._flushAccumulatedAndRenderNow(),e._viewLines.visibleRangeForPosition(new he.L(t,n))},getLineWidth:function(t){return e._flushAccumulatedAndRenderNow(),e._viewLines.getLineWidth(t)}}}},{key:"_createTextAreaHandlerHelper",value:function(){var e=this;return{visibleRangeForPositionRelativeToEditor:function(t,n){return e._flushAccumulatedAndRenderNow(),e._viewLines.visibleRangeForPosition(new he.L(t,n))}}}},{key:"_applyLayout",value:function(){var e=this._context.configuration.options.get(127);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this._overflowGuardContainer.setWidth(e.width),this._overflowGuardContainer.setHeight(e.height),this._linesContent.setWidth(1e6),this._linesContent.setHeight(1e6)}},{key:"_getEditorClassName",value:function(){var e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(124)+" "+(0,je.m6)(this._context.theme.type)+e}},{key:"handleEvents",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"handleEvents",this).call(this,e),this._scheduleRender()}},{key:"onConfigurationChanged",value:function(e){return this._configPixelRatio=this._context.configuration.options.get(125),this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}},{key:"onCursorStateChanged",value:function(e){return this._selections=e.selections,!1}},{key:"onFocusChanged",value:function(e){return this.domNode.setClassName(this._getEditorClassName()),!1}},{key:"onThemeChanged",value:function(e){return this.domNode.setClassName(this._getEditorClassName()),!1}},{key:"dispose",value:function(){null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();var e,t=(0,r.Z)(this._viewParts);try{for(t.s();!(e=t.n()).done;){e.value.dispose()}}catch(i){t.e(i)}finally{t.f()}(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"_scheduleRender",value:function(){null===this._renderAnimationFrame&&(this._renderAnimationFrame=_.runAtThisOrScheduleAtNextAnimationFrame(this._onRenderScheduled.bind(this),100))}},{key:"_onRenderScheduled",value:function(){this._renderAnimationFrame=null,this._flushAccumulatedAndRenderNow()}},{key:"_renderNow",value:function(){var e=this;!function(e){try{return e()}catch(t){(0,y.dL)(t)}}((function(){return e._actualRender()}))}},{key:"_getViewPartsToRender",value:function(){var e,t=[],n=0,i=(0,r.Z)(this._viewParts);try{for(i.s();!(e=i.n()).done;){var o=e.value;o.shouldRender()&&(t[n++]=o)}}catch(a){i.e(a)}finally{i.f()}return t}},{key:"_actualRender",value:function(){if(_.isInDOM(this.domNode.domNode)){var e=this._getViewPartsToRender();if(this._viewLines.shouldRender()||0!==e.length){var t=this._context.viewLayout.getLinesViewportData();this._context.model.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);var n=new _n(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.model);this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(n),this._viewLines.shouldRender()&&(this._viewLines.renderText(n),this._viewLines.onDidRender(),e=this._getViewPartsToRender());var i,o=new V(this._context.viewLayout,n,this._viewLines),a=(0,r.Z)(e);try{for(a.s();!(i=a.n()).done;){i.value.prepareRender(o)}}catch(c){a.e(c)}finally{a.f()}var s,u=(0,r.Z)(e);try{for(u.s();!(s=u.n()).done;){var l=s.value;l.render(o),l.onDidRender()}}catch(c){u.e(c)}finally{u.f()}Math.abs(x.mX()-this._configPixelRatio)>.001&&this._context.configuration.updatePixelRatio()}}}},{key:"delegateVerticalScrollbarMouseDown",value:function(e){this._scrollbar.delegateVerticalScrollbarMouseDown(e)}},{key:"restoreState",value:function(e){this._context.model.setScrollPosition({scrollTop:e.scrollTop},1),this._context.model.tokenizeViewport(),this._renderNow(),this._viewLines.updateLineWidths(),this._context.model.setScrollPosition({scrollLeft:e.scrollLeft},1)}},{key:"getOffsetForColumn",value:function(e,t){var n=this._context.model.validateModelPosition({lineNumber:e,column:t}),i=this._context.model.coordinatesConverter.convertModelPositionToViewPosition(n);this._flushAccumulatedAndRenderNow();var r=this._viewLines.visibleRangeForPosition(new he.L(i.lineNumber,i.column));return r?r.left:-1}},{key:"getTargetAtClientPoint",value:function(e,t){var n=this._pointerHandler.getTargetAtClientPoint(e,t);return n?$e.convertViewToModelMouseTarget(n,this._context.model.coordinatesConverter):null}},{key:"createOverviewRuler",value:function(e){return new tn(this._context,e)}},{key:"change",value:function(e){this._viewZones.changeViewZones(e),this._scheduleRender()}},{key:"render",value:function(e,t){if(t){this._viewLines.forceShouldRender();var n,i=(0,r.Z)(this._viewParts);try{for(i.s();!(n=i.n()).done;){n.value.forceShouldRender()}}catch(o){i.e(o)}finally{i.f()}}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}},{key:"focus",value:function(){this._textAreaHandler.focusTextArea()}},{key:"isFocused",value:function(){return this._textAreaHandler.isFocused()}},{key:"setAriaOptions",value:function(e){this._textAreaHandler.setAriaOptions(e)}},{key:"addContentWidget",value:function(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}},{key:"layoutContentWidget",value:function(e){var t=e.position&&e.position.range||null;if(null===t){var n=e.position?e.position.position:null;null!==n&&(t=new fe.e(n.lineNumber,n.column,n.lineNumber,n.column))}var i=e.position?e.position.preference:null;this._contentWidgets.setWidgetPosition(e.widget,t,i),this._scheduleRender()}},{key:"removeContentWidget",value:function(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}},{key:"addOverlayWidget",value:function(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}},{key:"layoutOverlayWidget",value:function(e){var t=e.position?e.position.preference:null;this._overlayWidgets.setWidgetPosition(e.widget,t)&&this._scheduleRender()}},{key:"removeOverlayWidget",value:function(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}}]),n}(B);var bn=function(){function e(t){(0,c.Z)(this,e),this._selTrackedRange=null,this._trackSelection=!0,this._setState(t,new pe.rS(new fe.e(1,1,1,1),0,new he.L(1,1),0),new pe.rS(new fe.e(1,1,1,1),0,new he.L(1,1),0))}return(0,d.Z)(e,[{key:"dispose",value:function(e){this._removeTrackedRange(e)}},{key:"startTrackingSelection",value:function(e){this._trackSelection=!0,this._updateTrackedRange(e)}},{key:"stopTrackingSelection",value:function(e){this._trackSelection=!1,this._removeTrackedRange(e)}},{key:"_updateTrackedRange",value:function(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}},{key:"_removeTrackedRange",value:function(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}},{key:"asCursorState",value:function(){return new pe.Vi(this.modelState,this.viewState)}},{key:"readSelectionFromMarkers",value:function(e){var t=e.model._getTrackedRange(this._selTrackedRange);return 0===this.modelState.selection.getDirection()?new L.Y(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new L.Y(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)}},{key:"ensureValidState",value:function(e){this._setState(e,this.modelState,this.viewState)}},{key:"setState",value:function(e,t,n){this._setState(e,t,n)}},{key:"_setState",value:function(e,t,n){if(t){var i=e.model.validateRange(t.selectionStart),r=t.selectionStart.equalsRange(i)?t.selectionStartLeftoverVisibleColumns:0,o=e.model.validatePosition(t.position),a=t.position.equals(o)?t.leftoverVisibleColumns:0;t=new pe.rS(i,r,o,a)}else{if(!n)return;var s=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(n.selectionStart)),u=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(n.position));t=new pe.rS(s,n.selectionStartLeftoverVisibleColumns,u,n.leftoverVisibleColumns)}if(n){var l=e.coordinatesConverter.validateViewRange(n.selectionStart,t.selectionStart),c=e.coordinatesConverter.validateViewPosition(n.position,t.position);n=new pe.rS(l,t.selectionStartLeftoverVisibleColumns,c,t.leftoverVisibleColumns)}else{var d=e.coordinatesConverter.convertModelPositionToViewPosition(new he.L(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),h=e.coordinatesConverter.convertModelPositionToViewPosition(new he.L(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),f=new fe.e(d.lineNumber,d.column,h.lineNumber,h.column),p=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);n=new pe.rS(f,t.selectionStartLeftoverVisibleColumns,p,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=n,this._updateTrackedRange(e)}}]),e}(),wn=function(){function e(t){(0,c.Z)(this,e),this.context=t,this.primaryCursor=new bn(t),this.secondaryCursors=[],this.lastAddedCursorIndex=0}return(0,d.Z)(e,[{key:"dispose",value:function(){this.primaryCursor.dispose(this.context),this.killSecondaryCursors()}},{key:"startTrackingSelections",value:function(){this.primaryCursor.startTrackingSelection(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].startTrackingSelection(this.context)}},{key:"stopTrackingSelections",value:function(){this.primaryCursor.stopTrackingSelection(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].stopTrackingSelection(this.context)}},{key:"updateContext",value:function(e){this.context=e}},{key:"ensureValidState",value:function(){this.primaryCursor.ensureValidState(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].ensureValidState(this.context)}},{key:"readSelectionFromMarkers",value:function(){var e=[];e[0]=this.primaryCursor.readSelectionFromMarkers(this.context);for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].readSelectionFromMarkers(this.context);return e}},{key:"getAll",value:function(){var e=[];e[0]=this.primaryCursor.asCursorState();for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].asCursorState();return e}},{key:"getViewPositions",value:function(){var e=[];e[0]=this.primaryCursor.viewState.position;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].viewState.position;return e}},{key:"getTopMostViewPosition",value:function(){for(var e=this.primaryCursor.viewState.position,t=0,n=this.secondaryCursors.length;t<n;t++){var i=this.secondaryCursors[t].viewState.position;i.isBefore(e)&&(e=i)}return e}},{key:"getBottomMostViewPosition",value:function(){for(var e=this.primaryCursor.viewState.position,t=0,n=this.secondaryCursors.length;t<n;t++){var i=this.secondaryCursors[t].viewState.position;e.isBeforeOrEqual(i)&&(e=i)}return e}},{key:"getSelections",value:function(){var e=[];e[0]=this.primaryCursor.modelState.selection;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].modelState.selection;return e}},{key:"getViewSelections",value:function(){var e=[];e[0]=this.primaryCursor.viewState.selection;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].viewState.selection;return e}},{key:"setSelections",value:function(e){this.setStates(pe.Vi.fromModelSelections(e))}},{key:"getPrimaryCursor",value:function(){return this.primaryCursor.asCursorState()}},{key:"setStates",value:function(e){null!==e&&(this.primaryCursor.setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}},{key:"_setSecondaryStates",value:function(e){var t=this.secondaryCursors.length,n=e.length;if(t<n)for(var i=n-t,r=0;r<i;r++)this._addSecondaryCursor();else if(t>n)for(var o=t-n,a=0;a<o;a++)this._removeSecondaryCursor(this.secondaryCursors.length-1);for(var s=0;s<n;s++)this.secondaryCursors[s].setState(this.context,e[s].modelState,e[s].viewState)}},{key:"killSecondaryCursors",value:function(){this._setSecondaryStates([])}},{key:"_addSecondaryCursor",value:function(){this.secondaryCursors.push(new bn(this.context)),this.lastAddedCursorIndex=this.secondaryCursors.length}},{key:"getLastAddedCursorIndex",value:function(){return 0===this.secondaryCursors.length||0===this.lastAddedCursorIndex?0:this.lastAddedCursorIndex}},{key:"_removeSecondaryCursor",value:function(e){this.lastAddedCursorIndex>=e+1&&this.lastAddedCursorIndex--,this.secondaryCursors[e].dispose(this.context),this.secondaryCursors.splice(e,1)}},{key:"_getAll",value:function(){var e=[];e[0]=this.primaryCursor;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t];return e}},{key:"normalize",value:function(){if(0!==this.secondaryCursors.length){for(var e=this._getAll(),t=[],n=0,i=e.length;n<i;n++)t.push({index:n,selection:e[n].modelState.selection});t.sort((function(e,t){return e.selection.startLineNumber===t.selection.startLineNumber?e.selection.startColumn-t.selection.startColumn:e.selection.startLineNumber-t.selection.startLineNumber}));for(var o=0;o<t.length-1;o++){var a=t[o],s=t[o+1],u=a.selection,l=s.selection;if(this.context.cursorConfig.multiCursorMergeOverlapping){if(l.isEmpty()||u.isEmpty()?l.getStartPosition().isBeforeOrEqual(u.getEndPosition()):l.getStartPosition().isBefore(u.getEndPosition())){var c=a.index<s.index?o:o+1,d=a.index<s.index?o+1:o,h=t[d].index,f=t[c].index,p=t[d].selection,v=t[c].selection;if(!p.equalsSelection(v)){var g=p.plusRange(v),m=p.selectionStartLineNumber===p.startLineNumber&&p.selectionStartColumn===p.startColumn,_=v.selectionStartLineNumber===v.startLineNumber&&v.selectionStartColumn===v.startColumn,y=void 0;h===this.lastAddedCursorIndex?(y=m,this.lastAddedCursorIndex=f):y=_;var b=void 0;b=y?new L.Y(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn):new L.Y(g.endLineNumber,g.endColumn,g.startLineNumber,g.startColumn),t[c].selection=b;var w=pe.Vi.fromModelSelection(b);e[f].setState(this.context,w.modelState,w.viewState)}var C,k=(0,r.Z)(t);try{for(k.s();!(C=k.n()).done;){var S=C.value;S.index>h&&S.index--}}catch(x){k.e(x)}finally{k.f()}e.splice(h,1),t.splice(d,1),this._removeSecondaryCursor(h-1),o--}}}}}}]),e}(),Cn=n(39765),kn=n(22268),Sn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=0})),xn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=1})),Ln=function(){function e(t){(0,c.Z)(this,e),this.type=2,this._source=t}return(0,d.Z)(e,[{key:"hasChanged",value:function(e){return this._source.hasChanged(e)}}]),e}(),En=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.type=3,this.selections=t,this.modelSelections=n})),Nn=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.type=4,t?(this.affectsMinimap=t.affectsMinimap,this.affectsOverviewRuler=t.affectsOverviewRuler):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0)})),Dn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=5})),Mn=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.type=6,this.isFocused=t})),Tn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=7})),On=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=8})),In=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.type=9,this.fromLineNumber=t,this.toLineNumber=n})),An=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.type=10,this.fromLineNumber=t,this.toLineNumber=n})),Pn=(0,d.Z)((function e(t,n){(0,c.Z)(this,e),this.type=11,this.fromLineNumber=t,this.toLineNumber=n})),Rn=(0,d.Z)((function e(t,n,i,r,o,a){(0,c.Z)(this,e),this.type=12,this.source=t,this.range=n,this.selections=i,this.verticalType=r,this.revealHorizontal=o,this.scrollType=a})),Zn=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.type=13,this.scrollWidth=t.scrollWidth,this.scrollLeft=t.scrollLeft,this.scrollHeight=t.scrollHeight,this.scrollTop=t.scrollTop,this.scrollWidthChanged=t.scrollWidthChanged,this.scrollLeftChanged=t.scrollLeftChanged,this.scrollHeightChanged=t.scrollHeightChanged,this.scrollTopChanged=t.scrollTopChanged})),Fn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=14})),jn=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.type=15,this.ranges=t})),Hn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=16})),Bn=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=17})),zn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,c.Z)(this,n),(e=t.call(this))._onEvent=e._register(new b.Q5),e.onEvent=e._onEvent.event,e._eventHandlers=[],e._viewEventQueue=null,e._isConsumingViewEventQueue=!1,e._collector=null,e._collectorCnt=0,e._outgoingEvents=[],e}return(0,d.Z)(n,[{key:"emitOutgoingEvent",value:function(e){this._addOutgoingEvent(e),this._emitOugoingEvents()}},{key:"_addOutgoingEvent",value:function(e){for(var t=0,n=this._outgoingEvents.length;t<n;t++)if(this._outgoingEvents[t].kind===e.kind)return void(this._outgoingEvents[t]=this._outgoingEvents[t].merge(e));this._outgoingEvents.push(e)}},{key:"_emitOugoingEvents",value:function(){for(;this._outgoingEvents.length>0;){if(this._collector||this._isConsumingViewEventQueue)return;var e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}},{key:"addViewEventHandler",value:function(e){for(var t=0,n=this._eventHandlers.length;t<n;t++)this._eventHandlers[t]===e&&console.warn("Detected duplicate listener in ViewEventDispatcher",e);this._eventHandlers.push(e)}},{key:"removeViewEventHandler",value:function(e){for(var t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}}},{key:"beginEmitViewEvents",value:function(){return this._collectorCnt++,1===this._collectorCnt&&(this._collector=new Wn),this._collector}},{key:"endEmitViewEvents",value:function(){if(this._collectorCnt--,0===this._collectorCnt){var e=this._collector.outgoingEvents,t=this._collector.viewEvents;this._collector=null;var n,i=(0,r.Z)(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;this._addOutgoingEvent(o)}}catch(a){i.e(a)}finally{i.f()}t.length>0&&this._emitMany(t)}this._emitOugoingEvents()}},{key:"emitSingleViewEvent",value:function(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}},{key:"_emitMany",value:function(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}},{key:"_consumeViewEventQueue",value:function(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}},{key:"_doConsumeQueue",value:function(){for(;this._viewEventQueue;){var e=this._viewEventQueue;this._viewEventQueue=null;var t,n=this._eventHandlers.slice(0),i=(0,r.Z)(n);try{for(i.s();!(t=i.n()).done;){t.value.handleEvents(e)}}catch(o){i.e(o)}finally{i.f()}}}}]),n}(w.JT),Wn=function(){function e(){(0,c.Z)(this,e),this.viewEvents=[],this.outgoingEvents=[]}return(0,d.Z)(e,[{key:"emitViewEvent",value:function(e){this.viewEvents.push(e)}},{key:"emitOutgoingEvent",value:function(e){this.outgoingEvents.push(e)}}]),e}(),Vn=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.kind=0,this._oldContentWidth=t,this._oldContentHeight=n,this.contentWidth=i,this.contentHeight=r,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return!this.contentWidthChanged&&!this.contentHeightChanged}},{key:"merge",value:function(t){return 0!==t.kind?this:new e(this._oldContentWidth,this._oldContentHeight,t.contentWidth,t.contentHeight)}}]),e}(),Yn=function(){function e(t,n){(0,c.Z)(this,e),this.kind=1,this.oldHasFocus=t,this.hasFocus=n}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return this.oldHasFocus===this.hasFocus}},{key:"merge",value:function(t){return 1!==t.kind?this:new e(this.oldHasFocus,t.hasFocus)}}]),e}(),Un=function(){function e(t,n,i,r,o,a,s,u){(0,c.Z)(this,e),this.kind=2,this._oldScrollWidth=t,this._oldScrollLeft=n,this._oldScrollHeight=i,this._oldScrollTop=r,this.scrollWidth=o,this.scrollLeft=a,this.scrollHeight=s,this.scrollTop=u,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}},{key:"merge",value:function(t){return 2!==t.kind?this:new e(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,t.scrollWidth,t.scrollLeft,t.scrollHeight,t.scrollTop)}}]),e}(),Kn=function(){function e(){(0,c.Z)(this,e),this.kind=3}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return!1}},{key:"merge",value:function(e){return this}}]),e}(),qn=function(){function e(t,n,i,r,o,a,s){(0,c.Z)(this,e),this.kind=5,this.oldSelections=t,this.selections=n,this.oldModelVersionId=i,this.modelVersionId=r,this.source=o,this.reason=a,this.reachedMaxCursorCount=s}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return e._selectionsAreEqual(this.oldSelections,this.selections)&&this.oldModelVersionId===this.modelVersionId}},{key:"merge",value:function(t){return 5!==t.kind?this:new e(this.oldSelections,t.selections,this.oldModelVersionId,t.modelVersionId,t.source,t.reason,this.reachedMaxCursorCount||t.reachedMaxCursorCount)}}],[{key:"_selectionsAreEqual",value:function(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;var n=e.length;if(n!==t.length)return!1;for(var i=0;i<n;i++)if(!e[i].equalsSelection(t[i]))return!1;return!0}}]),e}(),Gn=function(){function e(){(0,c.Z)(this,e),this.kind=4}return(0,d.Z)(e,[{key:"isNoOp",value:function(){return!1}},{key:"merge",value:function(e){return this}}]),e}(),$n=function(){function e(t,n){(0,c.Z)(this,e),this.modelVersionId=t.getVersionId(),this.cursorState=n.getCursorStates()}return(0,d.Z)(e,[{key:"equals",value:function(e){if(!e)return!1;if(this.modelVersionId!==e.modelVersionId)return!1;if(this.cursorState.length!==e.cursorState.length)return!1;for(var t=0,n=this.cursorState.length;t<n;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0}}]),e}(),Qn=function(){function e(t,n,i){(0,c.Z)(this,e),this._model=t,this._autoClosedCharactersDecorations=n,this._autoClosedEnclosingDecorations=i}return(0,d.Z)(e,[{key:"dispose",value:function(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])}},{key:"getAutoClosedCharactersRanges",value:function(){for(var e=[],t=0;t<this._autoClosedCharactersDecorations.length;t++){var n=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);n&&e.push(n)}return e}},{key:"isValid",value:function(e){for(var t=[],n=0;n<this._autoClosedEnclosingDecorations.length;n++){var i=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[n]);if(i&&(t.push(i),i.startLineNumber!==i.endLineNumber))return!1}t.sort(fe.e.compareRangesUsingStarts),e.sort(fe.e.compareRangesUsingStarts);for(var r=0;r<e.length;r++){if(r>=t.length)return!1;if(!t[r].strictContainsRange(e[r]))return!1}return!0}}],[{key:"getAllAutoClosedCharacters",value:function(e){var t,n=[],i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o=t.value;n=n.concat(o.getAutoClosedCharactersRanges())}}catch(a){i.e(a)}finally{i.f()}return n}}]),e}(),Xn=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o){var a;return(0,c.Z)(this,n),(a=t.call(this))._model=e,a._knownModelVersionId=a._model.getVersionId(),a._viewModel=i,a._coordinatesConverter=r,a.context=new pe.zp(a._model,a._coordinatesConverter,o),a._cursors=new wn(a.context),a._hasFocus=!1,a._isHandling=!1,a._isDoingComposition=!1,a._selectionsWhenCompositionStarted=null,a._columnSelectData=null,a._autoClosedActions=[],a._prevEditOperationType=0,a}return(0,d.Z)(n,[{key:"dispose",value:function(){this._cursors.dispose(),this._autoClosedActions=(0,w.B9)(this._autoClosedActions),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"updateConfiguration",value:function(e){this.context=new pe.zp(this._model,this._coordinatesConverter,e),this._cursors.updateContext(this.context)}},{key:"onLineMappingChanged",value:function(e){this._knownModelVersionId===this._model.getVersionId()&&this.setStates(e,"viewModel",0,this.getCursorStates())}},{key:"setHasFocus",value:function(e){this._hasFocus=e}},{key:"_validateAutoClosedActions",value:function(){if(this._autoClosedActions.length>0)for(var e=this._cursors.getSelections(),t=0;t<this._autoClosedActions.length;t++){var n=this._autoClosedActions[t];n.isValid(e)||(n.dispose(),this._autoClosedActions.splice(t,1),t--)}}},{key:"getPrimaryCursorState",value:function(){return this._cursors.getPrimaryCursor()}},{key:"getLastAddedCursorIndex",value:function(){return this._cursors.getLastAddedCursorIndex()}},{key:"getCursorStates",value:function(){return this._cursors.getAll()}},{key:"setStates",value:function(e,t,i,r){var o=!1;null!==r&&r.length>n.MAX_CURSOR_COUNT&&(r=r.slice(0,n.MAX_CURSOR_COUNT),o=!0);var a=new $n(this._model,this);return this._cursors.setStates(r),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,a,o)}},{key:"setCursorColumnSelectData",value:function(e){this._columnSelectData=e}},{key:"revealPrimary",value:function(e,t,n,i){var r=this._cursors.getViewPositions();if(r.length>1)this._emitCursorRevealRange(e,t,null,this._cursors.getViewSelections(),0,n,i);else{var o=r[0],a=new fe.e(o.lineNumber,o.column,o.lineNumber,o.column);this._emitCursorRevealRange(e,t,a,null,0,n,i)}}},{key:"_revealPrimaryCursor",value:function(e,t,n,i,r){var o=this._cursors.getViewPositions();if(o.length>1)this._emitCursorRevealRange(e,t,null,this._cursors.getViewSelections(),n,i,r);else{var a=o[0],s=new fe.e(a.lineNumber,a.column,a.lineNumber,a.column);this._emitCursorRevealRange(e,t,s,null,n,i,r)}}},{key:"_emitCursorRevealRange",value:function(e,t,n,i,r,o,a){e.emitViewEvent(new Rn(t,n,i,r,o,a))}},{key:"saveState",value:function(){for(var e=[],t=this._cursors.getSelections(),n=0,i=t.length;n<i;n++){var r=t[n];e.push({inSelectionMode:!r.isEmpty(),selectionStart:{lineNumber:r.selectionStartLineNumber,column:r.selectionStartColumn},position:{lineNumber:r.positionLineNumber,column:r.positionColumn}})}return e}},{key:"restoreState",value:function(e,t){for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i],a=1,s=1;o.position&&o.position.lineNumber&&(a=o.position.lineNumber),o.position&&o.position.column&&(s=o.position.column);var u=a,l=s;o.selectionStart&&o.selectionStart.lineNumber&&(u=o.selectionStart.lineNumber),o.selectionStart&&o.selectionStart.column&&(l=o.selectionStart.column),n.push({selectionStartLineNumber:u,selectionStartColumn:l,positionLineNumber:a,positionColumn:s})}this.setStates(e,"restoreState",0,pe.Vi.fromModelSelections(n)),this.revealPrimary(e,"restoreState",!0,1)}},{key:"onModelContentChanged",value:function(e,t){if(this._knownModelVersionId=t.versionId,!this._isHandling){var n=t.containsEvent(1);if(this._prevEditOperationType=0,n)this._cursors.dispose(),this._cursors=new wn(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,"model",1,null,!1);else if(this._hasFocus&&t.resultingSelection&&t.resultingSelection.length>0){var i=pe.Vi.fromModelSelections(t.resultingSelection);this.setStates(e,"modelChange",t.isUndoing?5:t.isRedoing?6:2,i)&&this._revealPrimaryCursor(e,"modelChange",0,!0,0)}else{var r=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,pe.Vi.fromModelSelections(r))}}}},{key:"getSelection",value:function(){return this._cursors.getPrimaryCursor().modelState.selection}},{key:"getTopMostViewPosition",value:function(){return this._cursors.getTopMostViewPosition()}},{key:"getBottomMostViewPosition",value:function(){return this._cursors.getBottomMostViewPosition()}},{key:"getCursorColumnSelectData",value:function(){if(this._columnSelectData)return this._columnSelectData;var e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),n=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:pe.io.visibleColumnFromColumn2(this.context.cursorConfig,this._viewModel,t),toViewLineNumber:n.lineNumber,toViewVisualColumn:pe.io.visibleColumnFromColumn2(this.context.cursorConfig,this._viewModel,n)}}},{key:"getSelections",value:function(){return this._cursors.getSelections()}},{key:"setSelections",value:function(e,t,n,i){this.setStates(e,t,i,pe.Vi.fromModelSelections(n))}},{key:"getPrevEditOperationType",value:function(){return this._prevEditOperationType}},{key:"setPrevEditOperationType",value:function(e){this._prevEditOperationType=e}},{key:"_pushAutoClosedAction",value:function(e,t){for(var n=[],i=[],r=0,o=e.length;r<o;r++)n.push({range:e[r],options:{inlineClassName:"auto-closed-character",stickiness:1}}),i.push({range:t[r],options:{stickiness:1}});var a=this._model.deltaDecorations([],n),s=this._model.deltaDecorations([],i);this._autoClosedActions.push(new Qn(this._model,a,s))}},{key:"_executeEditOperation",value:function(e){if(e){e.shouldPushStackElementBefore&&this._model.pushStackElement();var t=Jn.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);for(var n=[],i=[],r=0;r<e.commands.length;r++){var o=e.commands[r];o instanceof kn.g&&o.enclosingRange&&o.closeCharacterRange&&(n.push(o.closeCharacterRange),i.push(o.enclosingRange))}n.length>0&&this._pushAutoClosedAction(n,i),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}}},{key:"_interpretCommandResult",value:function(e){e&&0!==e.length||(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}},{key:"_emitStateChangedIfNecessary",value:function(e,t,n,i,r){var o=new $n(this._model,this);if(o.equals(i))return!1;var a=this._cursors.getSelections(),s=this._cursors.getViewSelections();if(e.emitViewEvent(new En(s,a)),!i||i.cursorState.length!==o.cursorState.length||o.cursorState.some((function(e,t){return!e.modelState.equals(i.cursorState[t].modelState)}))){var u=i?i.cursorState.map((function(e){return e.modelState.selection})):null,l=i?i.modelVersionId:0;e.emitOutgoingEvent(new qn(u,a,l,o.modelVersionId,t||"keyboard",n,r))}return!0}},{key:"_findAutoClosingPairs",value:function(e){if(!e.length)return null;for(var t=[],n=0,i=e.length;n<i;n++){var r=e[n];if(!r.text||r.text.indexOf("\n")>=0)return null;var o=r.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!o)return null;var a=o[1],s=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!s||1!==s.length)return null;var u=s[0].open,l=r.text.length-o[2].length-1,c=r.text.lastIndexOf(u,l-1);if(-1===c)return null;t.push([c,l])}return t}},{key:"executeEdits",value:function(e,t,n,r){var o=this,a=null;"snippet"===t&&(a=this._findAutoClosingPairs(n)),a&&(n[0]._isTracked=!0);var s=[],u=[],l=this._model.pushEditOperations(this.getSelections(),n,(function(e){if(a)for(var t=0,n=a.length;t<n;t++){var l=(0,i.Z)(a[t],2),c=l[0],d=l[1],h=e[t],f=h.range.startLineNumber,p=h.range.startColumn-1+c,v=h.range.startColumn-1+d;s.push(new fe.e(f,v+1,f,v+2)),u.push(new fe.e(f,p+1,f,v+2))}var g=r(e);return g&&(o._isHandling=!0),g}));l&&(this._isHandling=!1,this.setSelections(e,t,l,0)),s.length>0&&this._pushAutoClosedAction(s,u)}},{key:"_executeEdit",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(!this.context.cursorConfig.readOnly){var r=new $n(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(o){(0,y.dL)(o)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,n,i,r,!1)&&this._revealPrimaryCursor(t,n,0,!0,0)}}},{key:"setIsDoingComposition",value:function(e){this._isDoingComposition=e}},{key:"getAutoClosedCharacters",value:function(){return Qn.getAllAutoClosedCharacters(this._autoClosedActions)}},{key:"startComposition",value:function(e){this._selectionsWhenCompositionStarted=this.getSelections().slice(0)}},{key:"endComposition",value:function(e,t){var n=this;this._executeEdit((function(){"keyboard"===t&&(n._executeEditOperation(kn.u.compositionEndWithInterceptors(n._prevEditOperationType,n.context.cursorConfig,n._model,n._selectionsWhenCompositionStarted,n.getSelections(),n.getAutoClosedCharacters())),n._selectionsWhenCompositionStarted=null)}),e,t)}},{key:"type",value:function(e,t,n){var i=this;this._executeEdit((function(){if("keyboard"===n)for(var e=t.length,r=0;r<e;){var o=Pe.vH(t,r),a=t.substr(r,o);i._executeEditOperation(kn.u.typeWithInterceptors(i._isDoingComposition,i._prevEditOperationType,i.context.cursorConfig,i._model,i.getSelections(),i.getAutoClosedCharacters(),a)),r+=o}else i._executeEditOperation(kn.u.typeWithoutInterceptors(i._prevEditOperationType,i.context.cursorConfig,i._model,i.getSelections(),t))}),e,n)}},{key:"compositionType",value:function(e,t,n,i,r,o){var a=this;if(0!==t.length||0!==n||0!==i)this._executeEdit((function(){a._executeEditOperation(kn.u.compositionType(a._prevEditOperationType,a.context.cursorConfig,a._model,a.getSelections(),t,n,i,r))}),e,o);else if(0!==r){var s=this.getSelections().map((function(e){var t=e.getPosition();return new L.Y(t.lineNumber,t.column+r,t.lineNumber,t.column+r)}));this.setSelections(e,o,s,0)}}},{key:"paste",value:function(e,t,n,i,r){var o=this;this._executeEdit((function(){o._executeEditOperation(kn.u.paste(o.context.cursorConfig,o._model,o.getSelections(),t,n,i||[]))}),e,r,4)}},{key:"cut",value:function(e,t){var n=this;this._executeEdit((function(){n._executeEditOperation(Cn.A.cut(n.context.cursorConfig,n._model,n.getSelections()))}),e,t)}},{key:"executeCommand",value:function(e,t,n){var i=this;this._executeEdit((function(){i._cursors.killSecondaryCursors(),i._executeEditOperation(new pe.Tp(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),e,n)}},{key:"executeCommands",value:function(e,t,n){var i=this;this._executeEdit((function(){i._executeEditOperation(new pe.Tp(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),e,n)}}]),n}(w.JT);Xn.MAX_CURSOR_COUNT=1e4;var Jn=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,null,[{key:"executeCommands",value:function(e,t,n){for(var i={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},r=this._innerExecuteCommands(i,n),o=0,a=i.trackedRanges.length;o<a;o++)i.model._setTrackedRange(i.trackedRanges[o],null,0);return r}},{key:"_innerExecuteCommands",value:function(e,t){if(this._arrayIsEmpty(t))return null;var n=this._getEditOperations(e,t);if(0===n.operations.length)return null;var i=n.operations,o=this._getLoserCursorMap(i);if(o.hasOwnProperty("0"))return console.warn("Ignoring commands"),null;for(var a=[],s=0,u=i.length;s<u;s++)o.hasOwnProperty(i[s].identifier.major.toString())||a.push(i[s]);n.hadTrackedEditOperation&&a.length>0&&(a[0]._isTracked=!0);var l=e.model.pushEditOperations(e.selectionsBefore,a,(function(n){for(var i=[],o=0;o<e.selectionsBefore.length;o++)i[o]=[];var a,s=(0,r.Z)(n);try{for(s.s();!(a=s.n()).done;){var u=a.value;u.identifier&&i[u.identifier.major].push(u)}}catch(f){s.e(f)}finally{s.f()}for(var l=function(e,t){return e.identifier.minor-t.identifier.minor},c=[],d=function(n){i[n].length>0?(i[n].sort(l),c[n]=t[n].computeCursorState(e.model,{getInverseEditOperations:function(){return i[n]},getTrackedSelection:function(t){var n=parseInt(t,10),i=e.model._getTrackedRange(e.trackedRanges[n]);return 0===e.trackedRangesDirection[n]?new L.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn):new L.Y(i.endLineNumber,i.endColumn,i.startLineNumber,i.startColumn)}})):c[n]=e.selectionsBefore[n]},h=0;h<e.selectionsBefore.length;h++)d(h);return c}));l||(l=e.selectionsBefore);var c=[];for(var d in o)o.hasOwnProperty(d)&&c.push(parseInt(d,10));c.sort((function(e,t){return t-e}));for(var h=0,f=c;h<f.length;h++){var p=f[h];l.splice(p,1)}return l}},{key:"_arrayIsEmpty",value:function(e){for(var t=0,n=e.length;t<n;t++)if(e[t])return!1;return!0}},{key:"_getEditOperations",value:function(e,t){for(var n=[],i=!1,r=0,o=t.length;r<o;r++){var a=t[r];if(a){var s=this._getEditOperationsFromCommand(e,r,a);n=n.concat(s.operations),i=i||s.hadTrackedEditOperation}}return{operations:n,hadTrackedEditOperation:i}}},{key:"_getEditOperationsFromCommand",value:function(e,t,n){var i=[],r=0,o=function(e,o){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];fe.e.isEmpty(e)&&""===o||i.push({identifier:{major:t,minor:r++},range:e,text:o,forceMoveMarkers:a,isAutoWhitespaceEdit:n.insertsAutoWhitespace})},a=!1,s={addEditOperation:o,addTrackedEditOperation:function(e,t,n){a=!0,o(e,t,n)},trackSelection:function(t,n){var i,r=L.Y.liftSelection(t);if(r.isEmpty())if("boolean"===typeof n)i=n?2:3;else{var o=e.model.getLineMaxColumn(r.startLineNumber);i=r.startColumn===o?2:3}else i=1;var a=e.trackedRanges.length,s=e.model._setTrackedRange(null,r,i);return e.trackedRanges[a]=s,e.trackedRangesDirection[a]=r.getDirection(),a.toString()}};try{n.getEditOperations(e.model,s)}catch(u){return(0,y.dL)(u),{operations:[],hadTrackedEditOperation:!1}}return{operations:i,hadTrackedEditOperation:a}}},{key:"_getLoserCursorMap",value:function(e){(e=e.slice(0)).sort((function(e,t){return-fe.e.compareRangesUsingEnds(e.range,t.range)}));for(var t={},n=1;n<e.length;n++){var i=e[n-1],r=e[n];if(fe.e.getStartPosition(i.range).isBefore(fe.e.getEndPosition(r.range))){var o=void 0;t[(o=i.identifier.major>r.identifier.major?i.identifier.major:r.identifier.major).toString()]=!0;for(var a=0;a<e.length;a++)e[a].identifier.major===o&&(e.splice(a,1),a<n&&n--,a--);n>0&&n--}}return t}}]),e}(),ei=n(30633),ti=n(30062),ni=n(21204),ii=n(54821),ri=n(58604),oi=function(){function e(){(0,c.Z)(this,e),this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}return(0,d.Z)(e,[{key:"insert",value:function(e){this._hasPending=!0,this._inserts.push(e)}},{key:"change",value:function(e){this._hasPending=!0,this._changes.push(e)}},{key:"remove",value:function(e){this._hasPending=!0,this._removes.push(e)}},{key:"mustCommit",value:function(){return this._hasPending}},{key:"commit",value:function(e){if(this._hasPending){var t=this._inserts,n=this._changes,i=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,n,i)}}}]),e}(),ai=(0,d.Z)((function e(t,n,i,r,o){(0,c.Z)(this,e),this.id=t,this.afterLineNumber=n,this.ordinal=i,this.height=r,this.minWidth=o,this.prefixSum=0})),si=function(){function e(t,n,i,r){(0,c.Z)(this,e),this._instanceId=Pe.PJ(++e.INSTANCE_COUNT),this._pendingChanges=new oi,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=t,this._lineHeight=n,this._paddingTop=i,this._paddingBottom=r}return(0,d.Z)(e,[{key:"setLineHeight",value:function(e){this._checkPendingChanges(),this._lineHeight=e}},{key:"setPadding",value:function(e,t){this._paddingTop=e,this._paddingBottom=t}},{key:"onFlushed",value:function(e){this._checkPendingChanges(),this._lineCount=e}},{key:"changeWhitespace",value:function(e){var t=this,n=!1;try{e({insertWhitespace:function(e,i,r,o){n=!0,e|=0,i|=0,r|=0,o|=0;var a=t._instanceId+ ++t._lastWhitespaceId;return t._pendingChanges.insert(new ai(a,e,i,r,o)),a},changeOneWhitespace:function(e,i,r){n=!0,i|=0,r|=0,t._pendingChanges.change({id:e,newAfterLineNumber:i,newHeight:r})},removeWhitespace:function(e){n=!0,t._pendingChanges.remove({id:e})}})}finally{this._pendingChanges.commit(this)}return n}},{key:"_commitPendingChanges",value:function(e,t,n){if((e.length>0||n.length>0)&&(this._minWidth=-1),e.length+t.length+n.length<=1){var i,o=(0,r.Z)(e);try{for(o.s();!(i=o.n()).done;){var a=i.value;this._insertWhitespace(a)}}catch(S){o.e(S)}finally{o.f()}var s,u=(0,r.Z)(t);try{for(u.s();!(s=u.n()).done;){var l=s.value;this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight)}}catch(S){u.e(S)}finally{u.f()}var c,d=(0,r.Z)(n);try{for(d.s();!(c=d.n()).done;){var h=c.value,f=this._findWhitespaceIndex(h.id);-1!==f&&this._removeWhitespace(f)}}catch(S){d.e(S)}finally{d.f()}}else{var p,v=new Set,g=(0,r.Z)(n);try{for(g.s();!(p=g.n()).done;){var m=p.value;v.add(m.id)}}catch(S){g.e(S)}finally{g.f()}var _,y=new Map,b=(0,r.Z)(t);try{for(b.s();!(_=b.n()).done;){var w=_.value;y.set(w.id,w)}}catch(S){b.e(S)}finally{b.f()}var C=function(e){var t,n=[],i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o=t.value;if(!v.has(o.id)){if(y.has(o.id)){var a=y.get(o.id);o.afterLineNumber=a.newAfterLineNumber,o.height=a.newHeight}n.push(o)}}}catch(S){i.e(S)}finally{i.f()}return n},k=C(this._arr).concat(C(e));k.sort((function(e,t){return e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber})),this._arr=k,this._prefixSumValidIndex=-1}}},{key:"_checkPendingChanges",value:function(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}},{key:"_insertWhitespace",value:function(t){var n=e.findInsertionIndex(this._arr,t.afterLineNumber,t.ordinal);this._arr.splice(n,0,t),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,n-1)}},{key:"_findWhitespaceIndex",value:function(e){for(var t=this._arr,n=0,i=t.length;n<i;n++)if(t[n].id===e)return n;return-1}},{key:"_changeOneWhitespace",value:function(e,t,n){var i=this._findWhitespaceIndex(e);if(-1!==i&&(this._arr[i].height!==n&&(this._arr[i].height=n,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,i-1)),this._arr[i].afterLineNumber!==t)){var r=this._arr[i];this._removeWhitespace(i),r.afterLineNumber=t,this._insertWhitespace(r)}}},{key:"_removeWhitespace",value:function(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}},{key:"onLinesDeleted",value:function(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount-=t-e+1;for(var n=0,i=this._arr.length;n<i;n++){var r=this._arr[n].afterLineNumber;e<=r&&r<=t?this._arr[n].afterLineNumber=e-1:r>t&&(this._arr[n].afterLineNumber-=t-e+1)}}},{key:"onLinesInserted",value:function(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount+=t-e+1;for(var n=0,i=this._arr.length;n<i;n++){e<=this._arr[n].afterLineNumber&&(this._arr[n].afterLineNumber+=t-e+1)}}},{key:"getWhitespacesTotalHeight",value:function(){return this._checkPendingChanges(),0===this._arr.length?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}},{key:"getWhitespacesAccumulatedHeight",value:function(e){this._checkPendingChanges(),e|=0;var t=Math.max(0,this._prefixSumValidIndex+1);0===t&&(this._arr[0].prefixSum=this._arr[0].height,t++);for(var n=t;n<=e;n++)this._arr[n].prefixSum=this._arr[n-1].prefixSum+this._arr[n].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum}},{key:"getLinesTotalHeight",value:function(){return this._checkPendingChanges(),this._lineHeight*this._lineCount+this.getWhitespacesTotalHeight()+this._paddingTop+this._paddingBottom}},{key:"getWhitespaceAccumulatedHeightBeforeLineNumber",value:function(e){this._checkPendingChanges(),e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e);return-1===t?0:this.getWhitespacesAccumulatedHeight(t)}},{key:"_findLastWhitespaceBeforeLineNumber",value:function(e){e|=0;for(var t=this._arr,n=0,i=t.length-1;n<=i;){var r=n+((i-n|0)/2|0)|0;if(t[r].afterLineNumber<e){if(r+1>=t.length||t[r+1].afterLineNumber>=e)return r;n=r+1|0}else i=r-1|0}return-1}},{key:"_findFirstWhitespaceAfterLineNumber",value:function(e){e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t<this._arr.length?t:-1}},{key:"getFirstWhitespaceIndexAfterLineNumber",value:function(e){return this._checkPendingChanges(),e|=0,this._findFirstWhitespaceAfterLineNumber(e)}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this._checkPendingChanges(),((e|=0)>1?this._lineHeight*(e-1):0)+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e)+this._paddingTop}},{key:"getWhitespaceMinWidth",value:function(){if(this._checkPendingChanges(),-1===this._minWidth){for(var e=0,t=0,n=this._arr.length;t<n;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth}},{key:"isAfterLines",value:function(e){return this._checkPendingChanges(),e>this.getLinesTotalHeight()}},{key:"isInTopPadding",value:function(e){return 0!==this._paddingTop&&(this._checkPendingChanges(),e<this._paddingTop)}},{key:"isInBottomPadding",value:function(e){return 0!==this._paddingBottom&&(this._checkPendingChanges(),e>=this.getLinesTotalHeight()-this._paddingBottom)}},{key:"getLineNumberAtOrAfterVerticalOffset",value:function(e){if(this._checkPendingChanges(),(e|=0)<0)return 1;for(var t=0|this._lineCount,n=this._lineHeight,i=1,r=t;i<r;){var o=(i+r)/2|0,a=0|this.getVerticalOffsetForLineNumber(o);if(e>=a+n)i=o+1;else{if(e>=a)return o;r=o}}return i>t?t:i}},{key:"getLinesViewportData",value:function(e,t){this._checkPendingChanges(),e|=0,t|=0;var n,i,r=this._lineHeight,o=0|this.getLineNumberAtOrAfterVerticalOffset(e),a=0|this.getVerticalOffsetForLineNumber(o),s=0|this._lineCount,u=0|this.getFirstWhitespaceIndexAfterLineNumber(o),l=0|this.getWhitespacesCount();-1===u?(u=l,i=s+1,n=0):(i=0|this.getAfterLineNumberForWhitespaceIndex(u),n=0|this.getHeightForWhitespaceIndex(u));var c=a,d=c,h=5e5,f=0;a>=h&&(f=Math.floor(a/h)*h,d-=f=Math.floor(f/r)*r);for(var p=[],v=e+(t-e)/2,g=-1,m=o;m<=s;m++){if(-1===g){(c<=v&&v<c+r||c>v)&&(g=m)}for(c+=r,p[m-o]=d,d+=r;i===m;)d+=n,c+=n,++u>=l?i=s+1:(i=0|this.getAfterLineNumberForWhitespaceIndex(u),n=0|this.getHeightForWhitespaceIndex(u));if(c>=t){s=m;break}}-1===g&&(g=s);var _=0|this.getVerticalOffsetForLineNumber(s),y=o,b=s;return y<b&&a<e&&y++,y<b&&_+r>t&&b--,{bigNumbersDelta:f,startLineNumber:o,endLineNumber:s,relativeVerticalOffset:p,centeredLineNumber:g,completelyVisibleStartLineNumber:y,completelyVisibleEndLineNumber:b}}},{key:"getVerticalOffsetForWhitespaceIndex",value:function(e){this._checkPendingChanges(),e|=0;var t=this.getAfterLineNumberForWhitespaceIndex(e);return(t>=1?this._lineHeight*t:0)+(e>0?this.getWhitespacesAccumulatedHeight(e-1):0)+this._paddingTop}},{key:"getWhitespaceIndexAtOrAfterVerticallOffset",value:function(e){this._checkPendingChanges(),e|=0;var t=0,n=this.getWhitespacesCount()-1;if(n<0)return-1;if(e>=this.getVerticalOffsetForWhitespaceIndex(n)+this.getHeightForWhitespaceIndex(n))return-1;for(;t<n;){var i=Math.floor((t+n)/2),r=this.getVerticalOffsetForWhitespaceIndex(i);if(e>=r+this.getHeightForWhitespaceIndex(i))t=i+1;else{if(e>=r)return i;n=i}}return t}},{key:"getWhitespaceAtVerticalOffset",value:function(e){this._checkPendingChanges(),e|=0;var t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0)return null;if(t>=this.getWhitespacesCount())return null;var n=this.getVerticalOffsetForWhitespaceIndex(t);if(n>e)return null;var i=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:n,height:i}}},{key:"getWhitespaceViewportData",value:function(e,t){this._checkPendingChanges(),e|=0,t|=0;var n=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),i=this.getWhitespacesCount()-1;if(n<0)return[];for(var r=[],o=n;o<=i;o++){var a=this.getVerticalOffsetForWhitespaceIndex(o),s=this.getHeightForWhitespaceIndex(o);if(a>=t)break;r.push({id:this.getIdForWhitespaceIndex(o),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(o),verticalOffset:a,height:s})}return r}},{key:"getWhitespaces",value:function(){return this._checkPendingChanges(),this._arr.slice(0)}},{key:"getWhitespacesCount",value:function(){return this._checkPendingChanges(),this._arr.length}},{key:"getIdForWhitespaceIndex",value:function(e){return this._checkPendingChanges(),e|=0,this._arr[e].id}},{key:"getAfterLineNumberForWhitespaceIndex",value:function(e){return this._checkPendingChanges(),e|=0,this._arr[e].afterLineNumber}},{key:"getHeightForWhitespaceIndex",value:function(e){return this._checkPendingChanges(),e|=0,this._arr[e].height}}],[{key:"findInsertionIndex",value:function(e,t,n){for(var i=0,r=e.length;i<r;){var o=i+r>>>1;t===e[o].afterLineNumber?n<e[o].ordinal?r=o:i=o+1:t<e[o].afterLineNumber?r=o:i=o+1}return i}}]),e}();si.INSTANCE_COUNT=0;var ui=function(){function e(t,n,i,r){(0,c.Z)(this,e),(t|=0)<0&&(t=0),(n|=0)<0&&(n=0),(i|=0)<0&&(i=0),(r|=0)<0&&(r=0),this.width=t,this.contentWidth=n,this.scrollWidth=Math.max(t,n),this.height=i,this.contentHeight=r,this.scrollHeight=Math.max(i,r)}return(0,d.Z)(e,[{key:"equals",value:function(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}]),e}(),li=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this))._onDidContentSizeChange=r._register(new b.Q5),r.onDidContentSizeChange=r._onDidContentSizeChange.event,r._dimensions=new ui(0,0,0,0),r._scrollable=r._register(new ri.Rm(e,i)),r.onDidScroll=r._scrollable.onScroll,r}return(0,d.Z)(n,[{key:"getScrollable",value:function(){return this._scrollable}},{key:"setSmoothScrollDuration",value:function(e){this._scrollable.setSmoothScrollDuration(e)}},{key:"validateScrollPosition",value:function(e){return this._scrollable.validateScrollPosition(e)}},{key:"getScrollDimensions",value:function(){return this._dimensions}},{key:"setScrollDimensions",value:function(e){if(!this._dimensions.equals(e)){var t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);var n=t.contentWidth!==e.contentWidth,i=t.contentHeight!==e.contentHeight;(n||i)&&this._onDidContentSizeChange.fire(new Vn(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}}},{key:"getFutureScrollPosition",value:function(){return this._scrollable.getFutureScrollPosition()}},{key:"getCurrentScrollPosition",value:function(){return this._scrollable.getCurrentScrollPosition()}},{key:"setScrollPositionNow",value:function(e){this._scrollable.setScrollPositionNow(e)}},{key:"setScrollPositionSmooth",value:function(e){this._scrollable.setScrollPositionSmooth(e)}}]),n}(w.JT),ci=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r){var o;(0,c.Z)(this,n),(o=t.call(this))._configuration=e;var a=o._configuration.options,s=a.get(127),u=a.get(71);return o._linesLayout=new si(i,a.get(55),u.top,u.bottom),o._scrollable=o._register(new li(0,r)),o._configureSmoothScrollDuration(),o._scrollable.setScrollDimensions(new ui(s.contentWidth,0,s.height,0)),o.onDidScroll=o._scrollable.onDidScroll,o.onDidContentSizeChange=o._scrollable.onDidContentSizeChange,o._updateHeight(),o}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"getScrollable",value:function(){return this._scrollable.getScrollable()}},{key:"onHeightMaybeChanged",value:function(){this._updateHeight()}},{key:"_configureSmoothScrollDuration",value:function(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(100)?125:0)}},{key:"onConfigurationChanged",value:function(e){var t=this._configuration.options;if(e.hasChanged(55)&&this._linesLayout.setLineHeight(t.get(55)),e.hasChanged(71)){var n=t.get(71);this._linesLayout.setPadding(n.top,n.bottom)}if(e.hasChanged(127)){var i=t.get(127),r=i.contentWidth,o=i.height,a=this._scrollable.getScrollDimensions(),s=a.contentWidth;this._scrollable.setScrollDimensions(new ui(r,a.contentWidth,o,this._getContentHeight(r,o,s)))}else this._updateHeight();e.hasChanged(100)&&this._configureSmoothScrollDuration()}},{key:"onFlushed",value:function(e){this._linesLayout.onFlushed(e)}},{key:"onLinesDeleted",value:function(e,t){this._linesLayout.onLinesDeleted(e,t)}},{key:"onLinesInserted",value:function(e,t){this._linesLayout.onLinesInserted(e,t)}},{key:"_getHorizontalScrollbarHeight",value:function(e,t){var n=this._configuration.options.get(89);return 2===n.horizontal||e>=t?0:n.horizontalScrollbarSize}},{key:"_getContentHeight",value:function(e,t,n){var i=this._configuration.options,r=this._linesLayout.getLinesTotalHeight();return i.get(91)?r+=Math.max(0,t-i.get(55)-i.get(71).bottom):r+=this._getHorizontalScrollbarHeight(e,n),r}},{key:"_updateHeight",value:function(){var e=this._scrollable.getScrollDimensions(),t=e.width,n=e.height,i=e.contentWidth;this._scrollable.setScrollDimensions(new ui(t,e.contentWidth,n,this._getContentHeight(t,n,i)))}},{key:"getCurrentViewport",value:function(){var e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new Tt.l_(t.scrollTop,t.scrollLeft,e.width,e.height)}},{key:"getFutureViewport",value:function(){var e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new Tt.l_(t.scrollTop,t.scrollLeft,e.width,e.height)}},{key:"_computeContentWidth",value:function(e){var t=this._configuration.options,n=t.get(128),i=t.get(40);if(n.isViewportWrapping){var r=t.get(127),o=t.get(61);return e>r.contentWidth+i.typicalHalfwidthCharacterWidth&&o.enabled&&"right"===o.side?e+r.verticalScrollbarWidth:e}var a=t.get(90)*i.typicalHalfwidthCharacterWidth,s=this._linesLayout.getWhitespaceMinWidth();return Math.max(e+a,s)}},{key:"setMaxLineWidth",value:function(e){var t=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new ui(t.width,this._computeContentWidth(e),t.height,t.contentHeight)),this._updateHeight()}},{key:"saveState",value:function(){var e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,n=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(n),scrollLeft:e.scrollLeft}}},{key:"changeWhitespace",value:function(e){var t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this._linesLayout.getVerticalOffsetForLineNumber(e)}},{key:"isAfterLines",value:function(e){return this._linesLayout.isAfterLines(e)}},{key:"isInTopPadding",value:function(e){return this._linesLayout.isInTopPadding(e)}},{key:"isInBottomPadding",value:function(e){return this._linesLayout.isInBottomPadding(e)}},{key:"getLineNumberAtVerticalOffset",value:function(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}},{key:"getWhitespaceAtVerticalOffset",value:function(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}},{key:"getLinesViewportData",value:function(){var e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}},{key:"getLinesViewportDataAtScrollTop",value:function(e){var t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}},{key:"getWhitespaceViewportData",value:function(){var e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}},{key:"getWhitespaces",value:function(){return this._linesLayout.getWhitespaces()}},{key:"getContentWidth",value:function(){return this._scrollable.getScrollDimensions().contentWidth}},{key:"getScrollWidth",value:function(){return this._scrollable.getScrollDimensions().scrollWidth}},{key:"getContentHeight",value:function(){return this._scrollable.getScrollDimensions().contentHeight}},{key:"getScrollHeight",value:function(){return this._scrollable.getScrollDimensions().scrollHeight}},{key:"getCurrentScrollLeft",value:function(){return this._scrollable.getCurrentScrollPosition().scrollLeft}},{key:"getCurrentScrollTop",value:function(){return this._scrollable.getCurrentScrollPosition().scrollTop}},{key:"validateScrollPosition",value:function(e){return this._scrollable.validateScrollPosition(e)}},{key:"setScrollPosition",value:function(e,t){1===t?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}},{key:"deltaScrollNow",value:function(e,t){var n=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:n.scrollLeft+e,scrollTop:n.scrollTop+t})}}]),n}(w.JT),di=n(28893),hi=n(21043),fi=function(){function e(t){(0,c.Z)(this,e),this._lines=t}return(0,d.Z)(e,[{key:"convertViewPositionToModelPosition",value:function(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}},{key:"convertViewRangeToModelRange",value:function(e){return this._lines.convertViewRangeToModelRange(e)}},{key:"validateViewPosition",value:function(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}},{key:"validateViewRange",value:function(e,t){return this._lines.validateViewRange(e,t)}},{key:"convertModelPositionToViewPosition",value:function(e){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column)}},{key:"convertModelRangeToViewRange",value:function(e){return this._lines.convertModelRangeToViewRange(e)}},{key:"modelPositionIsVisible",value:function(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}},{key:"getModelLineViewLineCount",value:function(e){return this._lines.getModelLineViewLineCount(e)}}]),e}(),pi=function(){function e(t){(0,c.Z)(this,e),this._counts=t,this._isValid=!1,this._validEndIndex=-1,this._modelToView=[],this._viewToModel=[]}return(0,d.Z)(e,[{key:"_invalidate",value:function(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}},{key:"_ensureValid",value:function(){if(!this._isValid){for(var e=this._validEndIndex+1,t=this._counts.length;e<t;e++){var n=this._counts[e],i=e>0?this._modelToView[e-1]:0;this._modelToView[e]=i+n;for(var r=0;r<n;r++)this._viewToModel[i+r]=e}this._modelToView.length=this._counts.length,this._viewToModel.length=this._modelToView[this._modelToView.length-1],this._isValid=!0,this._validEndIndex=this._counts.length-1}}},{key:"changeValue",value:function(e,t){this._counts[e]!==t&&(this._counts[e]=t,this._invalidate(e))}},{key:"removeValues",value:function(e,t){this._counts.splice(e,t),this._invalidate(e)}},{key:"insertValues",value:function(e,t){this._counts=ct.Zv(this._counts,e,t),this._invalidate(e)}},{key:"getTotalValue",value:function(){return this._ensureValid(),this._viewToModel.length}},{key:"getAccumulatedValue",value:function(e){return this._ensureValid(),this._modelToView[e]}},{key:"getIndexOf",value:function(e){this._ensureValid();var t=this._viewToModel[e],n=t>0?this._modelToView[t-1]:0;return new hi.T(t,e-n)}}]),e}(),vi=function(){function e(t,n,i,r,o,a,s,u){(0,c.Z)(this,e),this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=n,this._monospaceLineBreaksComputerFactory=i,this.fontInfo=r,this.tabSize=o,this.wrappingStrategy=a,this.wrappingColumn=s,this.wrappingIndent=u,this._constructLines(!0,null)}return(0,d.Z)(e,[{key:"dispose",value:function(){this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,[])}},{key:"createCoordinatesConverter",value:function(){return new fi(this)}},{key:"_constructLines",value:function(e,t){var n=this;this.lines=[],e&&(this.hiddenAreasIds=[]);for(var i=this.model.getLinesContent(),r=i.length,o=this.createLineBreaksComputer(),a=0;a<r;a++)o.addRequest(i[a],t?t[a]:null);for(var s=o.finalize(),u=[],l=this.hiddenAreasIds.map((function(e){return n.model.getDecorationRange(e)})).sort(fe.e.compareRangesUsingStarts),c=1,d=0,h=-1,f=h+1<l.length?d+1:r+2,p=0;p<r;p++){var v=p+1;v===f&&(c=l[++h].startLineNumber,d=l[h].endLineNumber,f=h+1<l.length?d+1:r+2);var g=v>=c&&v<=d,m=Ci(s[p],!g);u[p]=m.getViewLineCount(),this.lines[p]=m}this._validModelVersionId=this.model.getVersionId(),this.prefixSumComputer=new pi(u)}},{key:"getHiddenAreas",value:function(){var e=this;return this.hiddenAreasIds.map((function(t){return e.model.getDecorationRange(t)}))}},{key:"_reduceRanges",value:function(e){var t=this;if(0===e.length)return[];for(var n=e.map((function(e){return t.model.validateRange(e)})).sort(fe.e.compareRangesUsingStarts),i=[],r=n[0].startLineNumber,o=n[0].endLineNumber,a=1,s=n.length;a<s;a++){var u=n[a];u.startLineNumber>o+1?(i.push(new fe.e(r,1,o,1)),r=u.startLineNumber,o=u.endLineNumber):u.endLineNumber>o&&(o=u.endLineNumber)}return i.push(new fe.e(r,1,o,1)),i}},{key:"setHiddenAreas",value:function(e){var t=this,n=this._reduceRanges(e),i=this.hiddenAreasIds.map((function(e){return t.model.getDecorationRange(e)})).sort(fe.e.compareRangesUsingStarts);if(n.length===i.length){for(var o=!1,a=0;a<n.length;a++)if(!n[a].equalsRange(i[a])){o=!0;break}if(!o)return!1}var s,u=[],l=(0,r.Z)(n);try{for(l.s();!(s=l.n()).done;){var c=s.value;u.push({range:c,options:di.qx.EMPTY})}}catch(w){l.e(w)}finally{l.f()}this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,u);for(var d=n,h=1,f=0,p=-1,v=p+1<d.length?f+1:this.lines.length+2,g=!1,m=0;m<this.lines.length;m++){var _=m+1;_===v&&(h=d[++p].startLineNumber,f=d[p].endLineNumber,v=p+1<d.length?f+1:this.lines.length+2);var y=!1;if(_>=h&&_<=f?this.lines[m].isVisible()&&(this.lines[m]=this.lines[m].setVisible(!1),y=!0):(g=!0,this.lines[m].isVisible()||(this.lines[m]=this.lines[m].setVisible(!0),y=!0)),y){var b=this.lines[m].getViewLineCount();this.prefixSumComputer.changeValue(m,b)}}return g||this.setHiddenAreas([]),!0}},{key:"modelPositionIsVisible",value:function(e,t){return!(e<1||e>this.lines.length)&&this.lines[e-1].isVisible()}},{key:"getModelLineViewLineCount",value:function(e){return e<1||e>this.lines.length?1:this.lines[e-1].getViewLineCount()}},{key:"setTabSize",value:function(e){return this.tabSize!==e&&(this.tabSize=e,this._constructLines(!1,null),!0)}},{key:"setWrappingSettings",value:function(e,t,n,i){var r=this.fontInfo.equals(e),o=this.wrappingStrategy===t,a=this.wrappingColumn===n,s=this.wrappingIndent===i;if(r&&o&&a&&s)return!1;var u=r&&o&&!a&&s;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=n,this.wrappingIndent=i;var l=null;if(u){l=[];for(var c=0,d=this.lines.length;c<d;c++)l[c]=this.lines[c].getLineBreakData()}return this._constructLines(!1,l),!0}},{key:"createLineBreaksComputer",value:function(){return("advanced"===this.wrappingStrategy?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent)}},{key:"onModelFlushed",value:function(){this._constructLines(!0,null)}},{key:"onModelLinesDeleted",value:function(e,t,n){if(e<=this._validModelVersionId)return null;var i=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,r=this.prefixSumComputer.getAccumulatedValue(n-1);return this.lines.splice(t-1,n-t+1),this.prefixSumComputer.removeValues(t-1,n-t+1),new An(i,r)}},{key:"onModelLinesInserted",value:function(e,t,n,i){if(e<=this._validModelVersionId)return null;for(var r=t>2&&!this.lines[t-2].isVisible(),o=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,a=0,s=[],u=[],l=0,c=i.length;l<c;l++){var d=Ci(i[l],!r);s.push(d);var h=d.getViewLineCount();a+=h,u[l]=h}return this.lines=this.lines.slice(0,t-1).concat(s).concat(this.lines.slice(t-1)),this.prefixSumComputer.insertValues(t-1,u),new Pn(o,o+a-1)}},{key:"onModelLineChanged",value:function(e,t,n){if(e<=this._validModelVersionId)return[!1,null,null,null];var i=t-1,r=this.lines[i].getViewLineCount(),o=Ci(n,this.lines[i].isVisible());this.lines[i]=o;var a=this.lines[i].getViewLineCount(),s=!1,u=0,l=-1,c=0,d=-1,h=0,f=-1;return r>a?(f=(h=(l=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1)+1)+(r-a)-1,s=!0):r<a?(d=(c=(l=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+r-1)+1)+(a-r)-1,s=!0):l=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1,this.prefixSumComputer.changeValue(i,a),[s,u<=l?new In(u,l):null,c<=d?new Pn(c,d):null,h<=f?new An(h,f):null]}},{key:"acceptVersionId",value:function(e){this._validModelVersionId=e,1!==this.lines.length||this.lines[0].isVisible()||this.setHiddenAreas([])}},{key:"getViewLineCount",value:function(){return this.prefixSumComputer.getTotalValue()}},{key:"_toValidViewLineNumber",value:function(e){if(e<1)return 1;var t=this.getViewLineCount();return e>t?t:0|e}},{key:"getActiveIndentGuide",value:function(e,t,n){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),n=this._toValidViewLineNumber(n);var i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),r=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),o=this.convertViewPositionToModelPosition(n,this.getViewLineMinColumn(n)),a=this.model.getActiveIndentGuide(i.lineNumber,r.lineNumber,o.lineNumber),s=this.convertModelPositionToViewPosition(a.startLineNumber,1),u=this.convertModelPositionToViewPosition(a.endLineNumber,this.model.getLineMaxColumn(a.endLineNumber));return{startLineNumber:s.lineNumber,endLineNumber:u.lineNumber,indent:a.indent}}},{key:"getViewLinesIndentGuides",value:function(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),i=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t)),r=[],o=[],a=[],s=n.lineNumber-1,u=i.lineNumber-1,l=null,c=s;c<=u;c++){var d=this.lines[c];if(d.isVisible()){var h=d.getViewLineNumberOfModelPosition(0,c===s?n.column:1),f=d.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(c+1)),p=f-h+1,v=0;p>1&&1===d.getViewLineMinColumn(this.model,c+1,f)&&(v=0===h?1:2),o.push(p),a.push(v),null===l&&(l=new he.L(c+1,0))}else null!==l&&(r=r.concat(this.model.getLinesIndentGuides(l.lineNumber,c)),l=null)}null!==l&&(r=r.concat(this.model.getLinesIndentGuides(l.lineNumber,i.lineNumber)),l=null);for(var g=t-e+1,m=new Array(g),_=0,y=0,b=r.length;y<b;y++){var w=r[y],C=Math.min(g-_,o[y]),k=a[y],S=void 0;S=2===k?0:1===k?1:C;for(var x=0;x<C;x++)x===S&&(w=0),m[_++]=w}return m}},{key:"getViewLineContent",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineContent(this.model,n+1,i)}},{key:"getViewLineLength",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineLength(this.model,n+1,i)}},{key:"getViewLineMinColumn",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMinColumn(this.model,n+1,i)}},{key:"getViewLineMaxColumn",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMaxColumn(this.model,n+1,i)}},{key:"getViewLineData",value:function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineData(this.model,n+1,i)}},{key:"getViewLinesData",value:function(e,t,n){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var i=this.prefixSumComputer.getIndexOf(e-1),r=e,o=i.index,a=i.remainder,s=[],u=o,l=this.model.getLineCount();u<l;u++){var c=this.lines[u];if(c.isVisible()){var d=u===o?a:0,h=c.getViewLineCount()-d,f=!1;r+h>t&&(f=!0,h=t-r+1);var p=d+h;if(c.getViewLinesData(this.model,u+1,d,p,r-e,n,s),r+=h,f)break}}return s}},{key:"validateViewPosition",value:function(e,t,n){e=this._toValidViewLineNumber(e);var i=this.prefixSumComputer.getIndexOf(e-1),r=i.index,o=i.remainder,a=this.lines[r],s=a.getViewLineMinColumn(this.model,r+1,o),u=a.getViewLineMaxColumn(this.model,r+1,o);t<s&&(t=s),t>u&&(t=u);var l=a.getModelColumnOfViewPosition(o,t);return this.model.validatePosition(new he.L(r+1,l)).equals(n)?new he.L(e,t):this.convertModelPositionToViewPosition(n.lineNumber,n.column)}},{key:"validateViewRange",value:function(e,t){var n=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),i=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new fe.e(n.lineNumber,n.column,i.lineNumber,i.column)}},{key:"convertViewPositionToModelPosition",value:function(e,t){e=this._toValidViewLineNumber(e);var n=this.prefixSumComputer.getIndexOf(e-1),i=n.index,r=n.remainder,o=this.lines[i].getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new he.L(i+1,o))}},{key:"convertViewRangeToModelRange",value:function(e){var t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),n=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new fe.e(t.lineNumber,t.column,n.lineNumber,n.column)}},{key:"convertModelPositionToViewPosition",value:function(e,t){for(var n=this.model.validatePosition(new he.L(e,t)),i=n.lineNumber,r=n.column,o=i-1,a=!1;o>0&&!this.lines[o].isVisible();)o--,a=!0;if(0===o&&!this.lines[o].isVisible())return new he.L(1,1);var s=1+(0===o?0:this.prefixSumComputer.getAccumulatedValue(o-1));return a?this.lines[o].getViewPositionOfModelPosition(s,this.model.getLineMaxColumn(o+1)):this.lines[i-1].getViewPositionOfModelPosition(s,r)}},{key:"convertModelRangeToViewRange",value:function(e){var t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn),n=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn);return e.startLineNumber===e.endLineNumber&&t.lineNumber!==n.lineNumber&&n.column===this.getViewLineMinColumn(n.lineNumber)?new fe.e(t.lineNumber,t.column,n.lineNumber-1,this.getViewLineMaxColumn(n.lineNumber-1)):new fe.e(t.lineNumber,t.column,n.lineNumber,n.column)}},{key:"_getViewLineNumberForModelPosition",value:function(e,t){var n=e-1;if(this.lines[n].isVisible()){var i=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(i,t)}for(;n>0&&!this.lines[n].isVisible();)n--;if(0===n&&!this.lines[n].isVisible())return 1;var r=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(r,this.model.getLineMaxColumn(n+1))}},{key:"getAllOverviewRulerDecorations",value:function(e,t,n){var i,o=this.model.getOverviewRulerDecorations(e,t),a=new Li,s=(0,r.Z)(o);try{for(s.s();!(i=s.n()).done;){var u=i.value,l=u.options.overviewRuler,c=l?l.position:0;if(0!==c){var d=l.getColor(n),h=this._getViewLineNumberForModelPosition(u.range.startLineNumber,u.range.startColumn),f=this._getViewLineNumberForModelPosition(u.range.endLineNumber,u.range.endColumn);a.accept(d,h,f,c)}}}catch(p){s.e(p)}finally{s.f()}return a.result}},{key:"getDecorationsInRange",value:function(e,t,n){var i=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),o=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(o.lineNumber-i.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new fe.e(i.lineNumber,1,o.lineNumber,o.column),t,n);for(var a=[],s=i.lineNumber-1,u=o.lineNumber-1,l=null,c=s;c<=u;c++){if(this.lines[c].isVisible())null===l&&(l=new he.L(c+1,c===s?i.column:1));else if(null!==l){var d=this.model.getLineMaxColumn(c);a=a.concat(this.model.getDecorationsInRange(new fe.e(l.lineNumber,l.column,c,d),t,n)),l=null}}null!==l&&(a=a.concat(this.model.getDecorationsInRange(new fe.e(l.lineNumber,l.column,o.lineNumber,o.column),t,n)),l=null),a.sort((function(e,t){var n=fe.e.compareRangesUsingStarts(e.range,t.range);return 0===n?e.id<t.id?-1:e.id>t.id?1:0:n}));var h,f=[],p=0,v=null,g=(0,r.Z)(a);try{for(g.s();!(h=g.n()).done;){var m=h.value,_=m.id;v!==_&&(v=_,f[p++]=m)}}catch(y){g.e(y)}finally{g.f()}return f}}]),e}(),gi=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,[{key:"isVisible",value:function(){return!0}},{key:"setVisible",value:function(e){return e?this:mi.INSTANCE}},{key:"getLineBreakData",value:function(){return null}},{key:"getViewLineCount",value:function(){return 1}},{key:"getViewLineContent",value:function(e,t,n){return e.getLineContent(t)}},{key:"getViewLineLength",value:function(e,t,n){return e.getLineLength(t)}},{key:"getViewLineMinColumn",value:function(e,t,n){return e.getLineMinColumn(t)}},{key:"getViewLineMaxColumn",value:function(e,t,n){return e.getLineMaxColumn(t)}},{key:"getViewLineData",value:function(e,t,n){var i=e.getLineTokens(t),r=i.getLineContent();return new Tt.IP(r,!1,1,r.length+1,0,i.inflate())}},{key:"getViewLinesData",value:function(e,t,n,i,r,o,a){o[r]?a[r]=this.getViewLineData(e,t,0):a[r]=null}},{key:"getModelColumnOfViewPosition",value:function(e,t){return t}},{key:"getViewPositionOfModelPosition",value:function(e,t){return new he.L(e,t)}},{key:"getViewLineNumberOfModelPosition",value:function(e,t){return e}}]),e}();gi.INSTANCE=new gi;var mi=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,[{key:"isVisible",value:function(){return!1}},{key:"setVisible",value:function(e){return e?gi.INSTANCE:this}},{key:"getLineBreakData",value:function(){return null}},{key:"getViewLineCount",value:function(){return 0}},{key:"getViewLineContent",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLineLength",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLineMinColumn",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLineMaxColumn",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLineData",value:function(e,t,n){throw new Error("Not supported")}},{key:"getViewLinesData",value:function(e,t,n,i,r,o,a){throw new Error("Not supported")}},{key:"getModelColumnOfViewPosition",value:function(e,t){throw new Error("Not supported")}},{key:"getViewPositionOfModelPosition",value:function(e,t){throw new Error("Not supported")}},{key:"getViewLineNumberOfModelPosition",value:function(e,t){throw new Error("Not supported")}}]),e}();mi.INSTANCE=new mi;var _i=function(){function e(t,n){(0,c.Z)(this,e),this._lineBreakData=t,this._isVisible=n}return(0,d.Z)(e,[{key:"isVisible",value:function(){return this._isVisible}},{key:"setVisible",value:function(e){return this._isVisible=e,this}},{key:"getLineBreakData",value:function(){return this._lineBreakData}},{key:"getViewLineCount",value:function(){return this._isVisible?this._lineBreakData.breakOffsets.length:0}},{key:"getInputStartOffsetOfOutputLineIndex",value:function(e){return Tt.le.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,e,0)}},{key:"getInputEndOffsetOfOutputLineIndex",value:function(e,t,n){return n+1===this._lineBreakData.breakOffsets.length?e.getLineMaxColumn(t)-1:Tt.le.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,n+1,0)}},{key:"getViewLineContent",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),r=this.getInputEndOffsetOfOutputLineIndex(e,t,n),o=e.getValueInRange({startLineNumber:t,startColumn:i+1,endLineNumber:t,endColumn:r+1});return n>0&&(o=bi(this._lineBreakData.wrappedTextIndentLength)+o),o}},{key:"getViewLineLength",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),r=this.getInputEndOffsetOfOutputLineIndex(e,t,n)-i;return n>0&&(r=this._lineBreakData.wrappedTextIndentLength+r),r}},{key:"getViewLineMinColumn",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");return n>0?this._lineBreakData.wrappedTextIndentLength+1:1}},{key:"getViewLineMaxColumn",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");return this.getViewLineContent(e,t,n).length+1}},{key:"getViewLineData",value:function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),r=this.getInputEndOffsetOfOutputLineIndex(e,t,n),o=e.getValueInRange({startLineNumber:t,startColumn:i+1,endLineNumber:t,endColumn:r+1});n>0&&(o=bi(this._lineBreakData.wrappedTextIndentLength)+o);var a=n>0?this._lineBreakData.wrappedTextIndentLength+1:1,s=o.length+1,u=n+1<this.getViewLineCount(),l=0;n>0&&(l=this._lineBreakData.wrappedTextIndentLength);var c=e.getLineTokens(t),d=0===n?0:this._lineBreakData.breakOffsetsVisibleColumn[n-1];return new Tt.IP(o,u,a,s,d,c.sliceAndInflate(i,r,l))}},{key:"getViewLinesData",value:function(e,t,n,i,r,o,a){if(!this._isVisible)throw new Error("Not supported");for(var s=n;s<i;s++){var u=r+s-n;o[u]?a[u]=this.getViewLineData(e,t,s):a[u]=null}}},{key:"getModelColumnOfViewPosition",value:function(e,t){if(!this._isVisible)throw new Error("Not supported");var n=t-1;return e>0&&(n<this._lineBreakData.wrappedTextIndentLength?n=0:n-=this._lineBreakData.wrappedTextIndentLength),Tt.le.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,e,n)+1}},{key:"getViewPositionOfModelPosition",value:function(e,t){if(!this._isVisible)throw new Error("Not supported");var n=Tt.le.getOutputPositionOfInputOffset(this._lineBreakData.breakOffsets,t-1),i=n.outputLineIndex,r=n.outputOffset+1;return i>0&&(r+=this._lineBreakData.wrappedTextIndentLength),new he.L(e+i,r)}},{key:"getViewLineNumberOfModelPosition",value:function(e,t){if(!this._isVisible)throw new Error("Not supported");return e+Tt.le.getOutputPositionOfInputOffset(this._lineBreakData.breakOffsets,t-1).outputLineIndex}}]),e}(),yi=[""];function bi(e){if(e>=yi.length)for(var t=1;t<=e;t++)yi[t]=wi(t);return yi[e]}function wi(e){return new Array(e+1).join(" ")}function Ci(e,t){return null===e?t?gi.INSTANCE:mi.INSTANCE:new _i(e,t)}var ki,Si=function(){function e(t){(0,c.Z)(this,e),this._lines=t}return(0,d.Z)(e,[{key:"_validPosition",value:function(e){return this._lines.model.validatePosition(e)}},{key:"_validRange",value:function(e){return this._lines.model.validateRange(e)}},{key:"convertViewPositionToModelPosition",value:function(e){return this._validPosition(e)}},{key:"convertViewRangeToModelRange",value:function(e){return this._validRange(e)}},{key:"validateViewPosition",value:function(e,t){return this._validPosition(t)}},{key:"validateViewRange",value:function(e,t){return this._validRange(t)}},{key:"convertModelPositionToViewPosition",value:function(e){return this._validPosition(e)}},{key:"convertModelRangeToViewRange",value:function(e){return this._validRange(e)}},{key:"modelPositionIsVisible",value:function(e){var t=this._lines.model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)}},{key:"getModelLineViewLineCount",value:function(e){return 1}}]),e}(),xi=function(){function e(t){(0,c.Z)(this,e),this.model=t}return(0,d.Z)(e,[{key:"dispose",value:function(){}},{key:"createCoordinatesConverter",value:function(){return new Si(this)}},{key:"getHiddenAreas",value:function(){return[]}},{key:"setHiddenAreas",value:function(e){return!1}},{key:"setTabSize",value:function(e){return!1}},{key:"setWrappingSettings",value:function(e,t,n,i){return!1}},{key:"createLineBreaksComputer",value:function(){var e=[];return{addRequest:function(t,n){e.push(null)},finalize:function(){return e}}}},{key:"onModelFlushed",value:function(){}},{key:"onModelLinesDeleted",value:function(e,t,n){return new An(t,n)}},{key:"onModelLinesInserted",value:function(e,t,n,i){return new Pn(t,n)}},{key:"onModelLineChanged",value:function(e,t,n){return[!1,new In(t,t),null,null]}},{key:"acceptVersionId",value:function(e){}},{key:"getViewLineCount",value:function(){return this.model.getLineCount()}},{key:"getActiveIndentGuide",value:function(e,t,n){return{startLineNumber:e,endLineNumber:e,indent:0}}},{key:"getViewLinesIndentGuides",value:function(e,t){for(var n=t-e+1,i=new Array(n),r=0;r<n;r++)i[r]=0;return i}},{key:"getViewLineContent",value:function(e){return this.model.getLineContent(e)}},{key:"getViewLineLength",value:function(e){return this.model.getLineLength(e)}},{key:"getViewLineMinColumn",value:function(e){return this.model.getLineMinColumn(e)}},{key:"getViewLineMaxColumn",value:function(e){return this.model.getLineMaxColumn(e)}},{key:"getViewLineData",value:function(e){var t=this.model.getLineTokens(e),n=t.getLineContent();return new Tt.IP(n,!1,1,n.length+1,0,t.inflate())}},{key:"getViewLinesData",value:function(e,t,n){var i=this.model.getLineCount();e=Math.min(Math.max(1,e),i),t=Math.min(Math.max(1,t),i);for(var r=[],o=e;o<=t;o++){var a=o-e;n[a]||(r[a]=null),r[a]=this.getViewLineData(o)}return r}},{key:"getAllOverviewRulerDecorations",value:function(e,t,n){var i,o=this.model.getOverviewRulerDecorations(e,t),a=new Li,s=(0,r.Z)(o);try{for(s.s();!(i=s.n()).done;){var u=i.value,l=u.options.overviewRuler,c=l?l.position:0;if(0!==c){var d=l.getColor(n),h=u.range.startLineNumber,f=u.range.endLineNumber;a.accept(d,h,f,c)}}}catch(p){s.e(p)}finally{s.f()}return a.result}},{key:"getDecorationsInRange",value:function(e,t,n){return this.model.getDecorationsInRange(e,t,n)}}]),e}(),Li=function(){function e(){(0,c.Z)(this,e),this.result=Object.create(null)}return(0,d.Z)(e,[{key:"accept",value:function(e,t,n,i){var r=this.result[e];if(r){var o=r[r.length-3],a=r[r.length-1];if(o===i&&a+1>=t)return void(n>a&&(r[r.length-1]=n));r.push(i,t,n)}else this.result[e]=[i,t,n]}}]),e}(),Ei=function(){function e(t,n,i,r,o){(0,c.Z)(this,e),this.editorId=t,this.model=n,this.configuration=i,this._linesCollection=r,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}return(0,d.Z)(e,[{key:"_clearCachedModelDecorationsResolver",value:function(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}},{key:"dispose",value:function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}},{key:"reset",value:function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}},{key:"onModelDecorationsChanged",value:function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}},{key:"onLineMappingChanged",value:function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}},{key:"_getOrCreateViewModelDecoration",value:function(e){var t=e.id,n=this._decorationsCache[t];if(!n){var i,r=e.range,o=e.options;if(o.isWholeLine){var a=this._coordinatesConverter.convertModelPositionToViewPosition(new he.L(r.startLineNumber,1)),s=this._coordinatesConverter.convertModelPositionToViewPosition(new he.L(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber)));i=new fe.e(a.lineNumber,a.column,s.lineNumber,s.column)}else i=this._coordinatesConverter.convertModelRangeToViewRange(r);n=new Tt.$l(i,o),this._decorationsCache[t]=n}return n}},{key:"getDecorationsViewportData",value:function(e){var t=null!==this._cachedModelDecorationsResolver;return(t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange))||(this._cachedModelDecorationsResolver=this._getDecorationsViewportData(e),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}},{key:"_getDecorationsViewportData",value:function(e){for(var t=this._linesCollection.getDecorationsInRange(e,this.editorId,(0,ee.$J)(this.configuration.options)),n=e.startLineNumber,i=e.endLineNumber,r=[],o=0,a=[],s=n;s<=i;s++)a[s-n]=[];for(var u=0,l=t.length;u<l;u++){var c=t[u],d=c.options,h=this._getOrCreateViewModelDecoration(c),f=h.range;if(r[o++]=h,d.inlineClassName)for(var p=new Tt.$t(f,d.inlineClassName,d.inlineClassNameAffectsLetterSpacing?3:0),v=Math.max(n,f.startLineNumber),g=Math.min(i,f.endLineNumber),m=v;m<=g;m++)a[m-n].push(p);if(d.beforeContentClassName&&n<=f.startLineNumber&&f.startLineNumber<=i){var _=new Tt.$t(new fe.e(f.startLineNumber,f.startColumn,f.startLineNumber,f.startColumn),d.beforeContentClassName,1);a[f.startLineNumber-n].push(_)}if(d.afterContentClassName&&n<=f.endLineNumber&&f.endLineNumber<=i){var y=new Tt.$t(new fe.e(f.endLineNumber,f.endColumn,f.endLineNumber,f.endColumn),d.afterContentClassName,2);a[f.endLineNumber-n].push(y)}}return{decorations:r,inlineDecorations:a}}}]),e}(),Ni=!0,Di=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u){var l;if((0,c.Z)(this,n),(l=t.call(this))._editorId=e,l._configuration=i,l.model=r,l._eventDispatcher=new zn,l.onEvent=l._eventDispatcher.onEvent,l.cursorConfig=new pe.LM(l.model.getLanguageIdentifier(),l.model.getOptions(),l._configuration),l._tokenizeViewportSoon=l._register(new T.pY((function(){return l.tokenizeViewport()}),50)),l._updateConfigurationViewLineCount=l._register(new T.pY((function(){return l._updateConfigurationViewLineCountNow()}),0)),l._hasFocus=!1,l._viewportStartLine=-1,l._viewportStartLineTrackedRange=null,l._viewportStartLineDelta=0,Ni&&l.model.isTooLargeForTokenization())l._lines=new xi(l.model);else{var d=l._configuration.options,h=d.get(40),f=d.get(121),p=d.get(128),v=d.get(120);l._lines=new vi(l.model,a,s,h,l.model.getOptions().tabSize,f,p.wrappingColumn,v)}return l.coordinatesConverter=l._lines.createCoordinatesConverter(),l._cursor=l._register(new Xn(r,(0,o.Z)(l),l.coordinatesConverter,l.cursorConfig)),l.viewLayout=l._register(new ci(l._configuration,l.getLineCount(),u)),l._register(l.viewLayout.onDidScroll((function(e){e.scrollTopChanged&&l._tokenizeViewportSoon.schedule(),l._eventDispatcher.emitSingleViewEvent(new Zn(e)),l._eventDispatcher.emitOutgoingEvent(new Un(e.oldScrollWidth,e.oldScrollLeft,e.oldScrollHeight,e.oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop))}))),l._register(l.viewLayout.onDidContentSizeChange((function(e){l._eventDispatcher.emitOutgoingEvent(e)}))),l._decorations=new Ei(l._editorId,l.model,l._configuration,l._lines,l.coordinatesConverter),l._registerModelEvents(),l._register(l._configuration.onDidChangeFast((function(e){try{var t=l._eventDispatcher.beginEmitViewEvents();l._onConfigurationChanged(t,e)}finally{l._eventDispatcher.endEmitViewEvents()}}))),l._register(Mt.getInstance().onDidChange((function(){l._eventDispatcher.emitSingleViewEvent(new Hn)}))),l._updateConfigurationViewLineCountNow(),l}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this),this._decorations.dispose(),this._lines.dispose(),this.invalidateMinimapColorCache(),this._viewportStartLineTrackedRange=this.model._setTrackedRange(this._viewportStartLineTrackedRange,null,1),this._eventDispatcher.dispose()}},{key:"createLineBreaksComputer",value:function(){return this._lines.createLineBreaksComputer()}},{key:"addViewEventHandler",value:function(e){this._eventDispatcher.addViewEventHandler(e)}},{key:"removeViewEventHandler",value:function(e){this._eventDispatcher.removeViewEventHandler(e)}},{key:"_updateConfigurationViewLineCountNow",value:function(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}},{key:"tokenizeViewport",value:function(){var e=this.viewLayout.getLinesViewportData(),t=this.coordinatesConverter.convertViewPositionToModelPosition(new he.L(e.startLineNumber,1)),n=this.coordinatesConverter.convertViewPositionToModelPosition(new he.L(e.endLineNumber,1));this.model.tokenizeViewport(t.lineNumber,n.lineNumber)}},{key:"setHasFocus",value:function(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new Mn(e)),this._eventDispatcher.emitOutgoingEvent(new Yn(!e,e))}},{key:"onCompositionStart",value:function(){this._eventDispatcher.emitSingleViewEvent(new Sn)}},{key:"onCompositionEnd",value:function(){this._eventDispatcher.emitSingleViewEvent(new xn)}},{key:"onDidColorThemeChange",value:function(){this._eventDispatcher.emitSingleViewEvent(new Fn)}},{key:"_onConfigurationChanged",value:function(e,t){var n=null;if(-1!==this._viewportStartLine){var i=new he.L(this._viewportStartLine,this.getLineMinColumn(this._viewportStartLine));n=this.coordinatesConverter.convertViewPositionToModelPosition(i)}var r=!1,o=this._configuration.options,a=o.get(40),s=o.get(121),u=o.get(128),l=o.get(120);if(this._lines.setWrappingSettings(a,s,u.wrappingColumn,l)&&(e.emitViewEvent(new Dn),e.emitViewEvent(new On),e.emitViewEvent(new Nn(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),0!==this.viewLayout.getCurrentScrollTop()&&(r=!0),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(77)&&(this._decorations.reset(),e.emitViewEvent(new Nn(null))),e.emitViewEvent(new Ln(t)),this.viewLayout.onConfigurationChanged(t),r&&n){var c=this.coordinatesConverter.convertModelPositionToViewPosition(n),d=this.viewLayout.getVerticalOffsetForLineNumber(c.lineNumber);this.viewLayout.setScrollPosition({scrollTop:d+this._viewportStartLineDelta},1)}pe.LM.shouldRecreate(t)&&(this.cursorConfig=new pe.LM(this.model.getLanguageIdentifier(),this.model.getOptions(),this._configuration),this._cursor.updateConfiguration(this.cursorConfig))}},{key:"_registerModelEvents",value:function(){var e=this;this._register(this.model.onDidChangeRawContentFast((function(t){try{var n,o=e._eventDispatcher.beginEmitViewEvents(),a=!1,s=!1,u=t.changes,l=t.versionId,c=e._lines.createLineBreaksComputer(),d=(0,r.Z)(u);try{for(d.s();!(n=d.n()).done;){var h=n.value;switch(h.changeType){case 4:var f,p=(0,r.Z)(h.detail);try{for(p.s();!(f=p.n()).done;){var v=f.value;c.addRequest(v,null)}}catch(P){p.e(P)}finally{p.f()}break;case 2:c.addRequest(h.detail,null)}}}catch(P){d.e(P)}finally{d.f()}var g,m=c.finalize(),_=0,y=(0,r.Z)(u);try{for(y.s();!(g=y.n()).done;){var b=g.value;switch(b.changeType){case 1:e._lines.onModelFlushed(),o.emitViewEvent(new Dn),e._decorations.reset(),e.viewLayout.onFlushed(e.getLineCount()),a=!0;break;case 3:var w=e._lines.onModelLinesDeleted(l,b.fromLineNumber,b.toLineNumber);null!==w&&(o.emitViewEvent(w),e.viewLayout.onLinesDeleted(w.fromLineNumber,w.toLineNumber)),a=!0;break;case 4:var C=m.slice(_,_+b.detail.length);_+=b.detail.length;var k=e._lines.onModelLinesInserted(l,b.fromLineNumber,b.toLineNumber,C);null!==k&&(o.emitViewEvent(k),e.viewLayout.onLinesInserted(k.fromLineNumber,k.toLineNumber)),a=!0;break;case 2:var S=m[_];_++;var x=e._lines.onModelLineChanged(l,b.lineNumber,S),L=(0,i.Z)(x,4),E=L[0],N=L[1],D=L[2],M=L[3];s=E,N&&o.emitViewEvent(N),D&&(o.emitViewEvent(D),e.viewLayout.onLinesInserted(D.fromLineNumber,D.toLineNumber)),M&&(o.emitViewEvent(M),e.viewLayout.onLinesDeleted(M.fromLineNumber,M.toLineNumber))}}}catch(P){y.e(P)}finally{y.f()}e._lines.acceptVersionId(l),e.viewLayout.onHeightMaybeChanged(),!a&&s&&(o.emitViewEvent(new On),o.emitViewEvent(new Nn(null)),e._cursor.onLineMappingChanged(o),e._decorations.onLineMappingChanged())}finally{e._eventDispatcher.endEmitViewEvents()}if(e._viewportStartLine=-1,e._configuration.setMaxLineNumber(e.model.getLineCount()),e._updateConfigurationViewLineCountNow(),!e._hasFocus&&e.model.getAttachedEditorCount()>=2&&e._viewportStartLineTrackedRange){var T=e.model._getTrackedRange(e._viewportStartLineTrackedRange);if(T){var O=e.coordinatesConverter.convertModelPositionToViewPosition(T.getStartPosition()),I=e.viewLayout.getVerticalOffsetForLineNumber(O.lineNumber);e.viewLayout.setScrollPosition({scrollTop:I+e._viewportStartLineDelta},1)}}try{var A=e._eventDispatcher.beginEmitViewEvents();e._cursor.onModelContentChanged(A,t)}finally{e._eventDispatcher.endEmitViewEvents()}}))),this._register(this.model.onDidChangeTokens((function(t){for(var n=[],i=0,r=t.ranges.length;i<r;i++){var o=t.ranges[i],a=e.coordinatesConverter.convertModelPositionToViewPosition(new he.L(o.fromLineNumber,1)).lineNumber,s=e.coordinatesConverter.convertModelPositionToViewPosition(new he.L(o.toLineNumber,e.model.getLineMaxColumn(o.toLineNumber))).lineNumber;n[i]={fromLineNumber:a,toLineNumber:s}}e._eventDispatcher.emitSingleViewEvent(new jn(n)),t.tokenizationSupportChanged&&e._tokenizeViewportSoon.schedule()}))),this._register(this.model.onDidChangeLanguageConfiguration((function(t){e._eventDispatcher.emitSingleViewEvent(new Tn),e.cursorConfig=new pe.LM(e.model.getLanguageIdentifier(),e.model.getOptions(),e._configuration),e._cursor.updateConfiguration(e.cursorConfig)}))),this._register(this.model.onDidChangeLanguage((function(t){e.cursorConfig=new pe.LM(e.model.getLanguageIdentifier(),e.model.getOptions(),e._configuration),e._cursor.updateConfiguration(e.cursorConfig)}))),this._register(this.model.onDidChangeOptions((function(t){if(e._lines.setTabSize(e.model.getOptions().tabSize)){try{var n=e._eventDispatcher.beginEmitViewEvents();n.emitViewEvent(new Dn),n.emitViewEvent(new On),n.emitViewEvent(new Nn(null)),e._cursor.onLineMappingChanged(n),e._decorations.onLineMappingChanged(),e.viewLayout.onFlushed(e.getLineCount())}finally{e._eventDispatcher.endEmitViewEvents()}e._updateConfigurationViewLineCount.schedule()}e.cursorConfig=new pe.LM(e.model.getLanguageIdentifier(),e.model.getOptions(),e._configuration),e._cursor.updateConfiguration(e.cursorConfig)}))),this._register(this.model.onDidChangeDecorations((function(t){e._decorations.onModelDecorationsChanged(),e._eventDispatcher.emitSingleViewEvent(new Nn(t))})))}},{key:"setHiddenAreas",value:function(e){try{var t=this._eventDispatcher.beginEmitViewEvents();this._lines.setHiddenAreas(e)&&(t.emitViewEvent(new Dn),t.emitViewEvent(new On),t.emitViewEvent(new Nn(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}},{key:"getVisibleRangesPlusViewportAboveBelow",value:function(){var e=this._configuration.options.get(127),t=this._configuration.options.get(55),n=Math.max(20,Math.round(e.height/t)),i=this.viewLayout.getLinesViewportData(),r=Math.max(1,i.completelyVisibleStartLineNumber-n),o=Math.min(this.getLineCount(),i.completelyVisibleEndLineNumber+n);return this._toModelVisibleRanges(new fe.e(r,this.getLineMinColumn(r),o,this.getLineMaxColumn(o)))}},{key:"getVisibleRanges",value:function(){var e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}},{key:"_toModelVisibleRanges",value:function(e){var t=this.coordinatesConverter.convertViewRangeToModelRange(e),n=this._lines.getHiddenAreas();if(0===n.length)return[t];for(var i=[],r=0,o=t.startLineNumber,a=t.startColumn,s=t.endLineNumber,u=t.endColumn,l=0,c=n.length;l<c;l++){var d=n[l].startLineNumber,h=n[l].endLineNumber;h<o||(d>s||(o<d&&(i[r++]=new fe.e(o,a,d-1,this.model.getLineMaxColumn(d-1))),o=h+1,a=1))}return(o<s||o===s&&a<u)&&(i[r++]=new fe.e(o,a,s,u)),i}},{key:"getCompletelyVisibleViewRange",value:function(){var e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,n=e.completelyVisibleEndLineNumber;return new fe.e(t,this.getLineMinColumn(t),n,this.getLineMaxColumn(n))}},{key:"getCompletelyVisibleViewRangeAtScrollTop",value:function(e){var t=this.viewLayout.getLinesViewportDataAtScrollTop(e),n=t.completelyVisibleStartLineNumber,i=t.completelyVisibleEndLineNumber;return new fe.e(n,this.getLineMinColumn(n),i,this.getLineMaxColumn(i))}},{key:"saveState",value:function(){var e=this.viewLayout.saveState(),t=e.scrollTop,n=this.viewLayout.getLineNumberAtVerticalOffset(t),i=this.coordinatesConverter.convertViewPositionToModelPosition(new he.L(n,this.getLineMinColumn(n))),r=this.viewLayout.getVerticalOffsetForLineNumber(n)-t;return{scrollLeft:e.scrollLeft,firstPosition:i,firstPositionDeltaTop:r}}},{key:"reduceRestoreState",value:function(e){if("undefined"===typeof e.firstPosition)return this._reduceRestoreStateCompatibility(e);var t=this.model.validatePosition(e.firstPosition),n=this.coordinatesConverter.convertModelPositionToViewPosition(t),i=this.viewLayout.getVerticalOffsetForLineNumber(n.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:i}}},{key:"_reduceRestoreStateCompatibility",value:function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}},{key:"getTabSize",value:function(){return this.model.getOptions().tabSize}},{key:"getTextModelOptions",value:function(){return this.model.getOptions()}},{key:"getLineCount",value:function(){return this._lines.getViewLineCount()}},{key:"setViewport",value:function(e,t,n){this._viewportStartLine=e;var i=this.coordinatesConverter.convertViewPositionToModelPosition(new he.L(e,this.getLineMinColumn(e)));this._viewportStartLineTrackedRange=this.model._setTrackedRange(this._viewportStartLineTrackedRange,new fe.e(i.lineNumber,i.column,i.lineNumber,i.column),1);var r=this.viewLayout.getVerticalOffsetForLineNumber(e),o=this.viewLayout.getCurrentScrollTop();this._viewportStartLineDelta=o-r}},{key:"getActiveIndentGuide",value:function(e,t,n){return this._lines.getActiveIndentGuide(e,t,n)}},{key:"getLinesIndentGuides",value:function(e,t){return this._lines.getViewLinesIndentGuides(e,t)}},{key:"getLineContent",value:function(e){return this._lines.getViewLineContent(e)}},{key:"getLineLength",value:function(e){return this._lines.getViewLineLength(e)}},{key:"getLineMinColumn",value:function(e){return this._lines.getViewLineMinColumn(e)}},{key:"getLineMaxColumn",value:function(e){return this._lines.getViewLineMaxColumn(e)}},{key:"getLineFirstNonWhitespaceColumn",value:function(e){var t=Pe.LC(this.getLineContent(e));return-1===t?0:t+1}},{key:"getLineLastNonWhitespaceColumn",value:function(e){var t=Pe.ow(this.getLineContent(e));return-1===t?0:t+2}},{key:"getDecorationsInViewport",value:function(e){return this._decorations.getDecorationsViewportData(e).decorations}},{key:"getViewLineRenderingData",value:function(e,t){var n=this.model.mightContainRTL(),i=this.model.mightContainNonBasicASCII(),r=this.getTabSize(),o=this._lines.getViewLineData(t),a=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return new Tt.wA(o.minColumn,o.maxColumn,o.content,o.continuesWithWrappedLine,n,i,o.tokens,a,r,o.startVisibleColumn)}},{key:"getViewLineData",value:function(e){return this._lines.getViewLineData(e)}},{key:"getMinimapLinesRenderingData",value:function(e,t,n){var i=this._lines.getViewLinesData(e,t,n);return new Tt.ud(this.getTabSize(),i)}},{key:"getAllOverviewRulerDecorations",value:function(e){return this._lines.getAllOverviewRulerDecorations(this._editorId,(0,ee.$J)(this._configuration.options),e)}},{key:"invalidateOverviewRulerColorCache",value:function(){var e,t=this.model.getOverviewRulerDecorations(),n=(0,r.Z)(t);try{for(n.s();!(e=n.n()).done;){var i=e.value.options.overviewRuler;i&&i.invalidateCachedColor()}}catch(o){n.e(o)}finally{n.f()}}},{key:"invalidateMinimapColorCache",value:function(){var e,t=this.model.getAllDecorations(),n=(0,r.Z)(t);try{for(n.s();!(e=n.n()).done;){var i=e.value.options.minimap;i&&i.invalidateCachedColor()}}catch(o){n.e(o)}finally{n.f()}}},{key:"getValueInRange",value:function(e,t){var n=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(n,t)}},{key:"getModelLineMaxColumn",value:function(e){return this.model.getLineMaxColumn(e)}},{key:"validateModelPosition",value:function(e){return this.model.validatePosition(e)}},{key:"validateModelRange",value:function(e){return this.model.validateRange(e)}},{key:"deduceModelPositionRelativeToViewPosition",value:function(e,t,n){var i=this.coordinatesConverter.convertViewPositionToModelPosition(e);2===this.model.getEOL().length&&(t<0?t-=n:t+=n);var r=this.model.getOffsetAt(i)+t;return this.model.getPositionAt(r)}},{key:"getEOL",value:function(){return this.model.getEOL()}},{key:"getPlainTextToCopy",value:function(e,t,n){var i=n?"\r\n":this.model.getEOL();(e=e.slice(0)).sort(fe.e.compareRangesUsingStarts);var o,a=!1,s=!1,u=(0,r.Z)(e);try{for(u.s();!(o=u.n()).done;){o.value.isEmpty()?a=!0:s=!0}}catch(C){u.e(C)}finally{u.f()}if(!s){if(!t)return"";for(var l=e.map((function(e){return e.startLineNumber})),c="",d=0;d<l.length;d++)d>0&&l[d-1]===l[d]||(c+=this.model.getLineContent(l[d])+i);return c}if(a&&t){var h,f=[],p=0,v=(0,r.Z)(e);try{for(v.s();!(h=v.n()).done;){var g=h.value,m=g.startLineNumber;g.isEmpty()?m!==p&&f.push(this.model.getLineContent(m)):f.push(this.model.getValueInRange(g,n?2:0)),p=m}}catch(C){v.e(C)}finally{v.f()}return 1===f.length?f[0]:f}var _,y=[],b=(0,r.Z)(e);try{for(b.s();!(_=b.n()).done;){var w=_.value;w.isEmpty()||y.push(this.model.getValueInRange(w,n?2:0))}}catch(C){b.e(C)}finally{b.f()}return 1===y.length?y[0]:y}},{key:"getRichTextToCopy",value:function(e,t){var n=this.model.getLanguageIdentifier();if(1===n.id)return null;if(1!==e.length)return null;var i=e[0];if(i.isEmpty()){if(!t)return null;var r=i.startLineNumber;i=new fe.e(r,this.model.getLineMinColumn(r),r,this.model.getLineMaxColumn(r))}var o,a=this._configuration.options.get(40),s=this._getColorMap();if(/[:;\\\/<>]/.test(a.fontFamily)||a.fontFamily===ee.hL.fontFamily)o=ee.hL.fontFamily;else{if(o=(o=a.fontFamily).replace(/"/g,"'"),!/[,']/.test(o))/[+ ]/.test(o)&&(o="'".concat(o,"'"));o="".concat(o,", ").concat(ee.hL.fontFamily)}return{mode:n.language,html:'<div style="'+"color: ".concat(s[1],";")+"background-color: ".concat(s[2],";")+"font-family: ".concat(o,";")+"font-weight: ".concat(a.fontWeight,";")+"font-size: ".concat(a.fontSize,"px;")+"line-height: ".concat(a.lineHeight,"px;")+'white-space: pre;">'+this._getHTMLToCopy(i,s)+"</div>"}}},{key:"_getHTMLToCopy",value:function(e,t){for(var n=e.startLineNumber,i=e.startColumn,r=e.endLineNumber,o=e.endColumn,a=this.getTabSize(),s="",u=n;u<=r;u++){var l=this.model.getLineTokens(u),c=l.getLineContent(),d=u===n?i-1:0,h=u===r?o-1:c.length;s+=""===c?"<br>":(0,ii.F)(c,l.inflate(),t,d,h,a,N.ED)}return s}},{key:"_getColorMap",value:function(){var e=Dt.RW.getColorMap(),t=["#000000"];if(e)for(var n=1,i=e.length;n<i;n++)t[n]=Qt.Il.Format.CSS.formatHex(e[n]);return t}},{key:"pushStackElement",value:function(){this.model.pushStackElement()}},{key:"getPrimaryCursorState",value:function(){return this._cursor.getPrimaryCursorState()}},{key:"getLastAddedCursorIndex",value:function(){return this._cursor.getLastAddedCursorIndex()}},{key:"getCursorStates",value:function(){return this._cursor.getCursorStates()}},{key:"setCursorStates",value:function(e,t,n){var i=this;this._withViewEventsCollector((function(r){return i._cursor.setStates(r,e,t,n)}))}},{key:"getCursorColumnSelectData",value:function(){return this._cursor.getCursorColumnSelectData()}},{key:"getCursorAutoClosedCharacters",value:function(){return this._cursor.getAutoClosedCharacters()}},{key:"setCursorColumnSelectData",value:function(e){this._cursor.setCursorColumnSelectData(e)}},{key:"getPrevEditOperationType",value:function(){return this._cursor.getPrevEditOperationType()}},{key:"setPrevEditOperationType",value:function(e){this._cursor.setPrevEditOperationType(e)}},{key:"getSelection",value:function(){return this._cursor.getSelection()}},{key:"getSelections",value:function(){return this._cursor.getSelections()}},{key:"getPosition",value:function(){return this._cursor.getPrimaryCursorState().modelState.position}},{key:"setSelections",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._withViewEventsCollector((function(r){return n._cursor.setSelections(r,e,t,i)}))}},{key:"saveCursorState",value:function(){return this._cursor.saveState()}},{key:"restoreCursorState",value:function(e){var t=this;this._withViewEventsCollector((function(n){return t._cursor.restoreState(n,e)}))}},{key:"_executeCursorEdit",value:function(e){this._cursor.context.cursorConfig.readOnly?this._eventDispatcher.emitOutgoingEvent(new Gn):this._withViewEventsCollector(e)}},{key:"executeEdits",value:function(e,t,n){var i=this;this._executeCursorEdit((function(r){return i._cursor.executeEdits(r,e,t,n)}))}},{key:"startComposition",value:function(){var e=this;this._cursor.setIsDoingComposition(!0),this._executeCursorEdit((function(t){return e._cursor.startComposition(t)}))}},{key:"endComposition",value:function(e){var t=this;this._cursor.setIsDoingComposition(!1),this._executeCursorEdit((function(n){return t._cursor.endComposition(n,e)}))}},{key:"type",value:function(e,t){var n=this;this._executeCursorEdit((function(i){return n._cursor.type(i,e,t)}))}},{key:"compositionType",value:function(e,t,n,i,r){var o=this;this._executeCursorEdit((function(a){return o._cursor.compositionType(a,e,t,n,i,r)}))}},{key:"paste",value:function(e,t,n,i){var r=this;this._executeCursorEdit((function(o){return r._cursor.paste(o,e,t,n,i)}))}},{key:"cut",value:function(e){var t=this;this._executeCursorEdit((function(n){return t._cursor.cut(n,e)}))}},{key:"executeCommand",value:function(e,t){var n=this;this._executeCursorEdit((function(i){return n._cursor.executeCommand(i,e,t)}))}},{key:"executeCommands",value:function(e,t){var n=this;this._executeCursorEdit((function(i){return n._cursor.executeCommands(i,e,t)}))}},{key:"revealPrimaryCursor",value:function(e,t){var n=this;this._withViewEventsCollector((function(i){return n._cursor.revealPrimary(i,e,t,0)}))}},{key:"revealTopMostCursor",value:function(e){var t=this._cursor.getTopMostViewPosition(),n=new fe.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector((function(t){return t.emitViewEvent(new Rn(e,n,null,0,!0,0))}))}},{key:"revealBottomMostCursor",value:function(e){var t=this._cursor.getBottomMostViewPosition(),n=new fe.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector((function(t){return t.emitViewEvent(new Rn(e,n,null,0,!0,0))}))}},{key:"revealRange",value:function(e,t,n,i,r){this._withViewEventsCollector((function(o){return o.emitViewEvent(new Rn(e,n,null,i,t,r))}))}},{key:"getVerticalOffsetForLineNumber",value:function(e){return this.viewLayout.getVerticalOffsetForLineNumber(e)}},{key:"getScrollTop",value:function(){return this.viewLayout.getCurrentScrollTop()}},{key:"setScrollTop",value:function(e,t){this.viewLayout.setScrollPosition({scrollTop:e},t)}},{key:"setScrollPosition",value:function(e,t){this.viewLayout.setScrollPosition(e,t)}},{key:"deltaScrollNow",value:function(e,t){this.viewLayout.deltaScrollNow(e,t)}},{key:"changeWhitespace",value:function(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new Bn),this._eventDispatcher.emitOutgoingEvent(new Kn))}},{key:"setMaxLineWidth",value:function(e){this.viewLayout.setMaxLineWidth(e)}},{key:"_withViewEventsCollector",value:function(e){try{e(this._eventDispatcher.beginEmitViewEvents())}finally{this._eventDispatcher.endEmitViewEvents()}}}]),n}(w.JT),Mi=n(72611),Ti=n(18948),Oi=n(84596),Ii=n(41001),Ai=n(71574),Pi=n(40782),Ri=n(25941),Zi=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;(0,c.Z)(this,n),r=t.call(this,0);for(var o=0;o<e.length;o++)r.set(e.charCodeAt(o),1);for(var a=0;a<i.length;a++)r.set(i.charCodeAt(a),2);return r}return(0,d.Z)(n,[{key:"get",value:function(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}]),n}(n(84516).N),Fi=[],ji=[],Hi=function(){function e(t,n){(0,c.Z)(this,e),this.classifier=new Zi(t,n)}return(0,d.Z)(e,[{key:"createLineBreaksComputer",value:function(e,t,n,i){var r=this;t|=0,n=+n;var o=[],a=[];return{addRequest:function(e,t){o.push(e),a.push(t)},finalize:function(){for(var s=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,u=[],l=0,c=o.length;l<c;l++){var d=a[l];u[l]=d?Bi(r.classifier,d,o[l],t,n,s,i):zi(r.classifier,o[l],t,n,s,i)}return Fi.length=0,ji.length=0,u}}}}],[{key:"create",value:function(t){return new e(t.get(116),t.get(115))}}]),e}();function Bi(e,t,n,i,r,o,a){if(-1===r)return null;var s=n.length;if(s<=1)return null;var u=t.breakOffsets,l=t.breakOffsetsVisibleColumn,c=Ui(n,i,r,o,a),d=r-c,h=Fi,f=ji,p=0,v=0,g=0,m=r,_=u.length,y=0;if(y>=0)for(var b=Math.abs(l[y]-m);y+1<_;){var w=Math.abs(l[y+1]-m);if(w>=b)break;b=w,y++}for(;y<_;){var C=y<0?0:u[y],k=y<0?0:l[y];v>C&&(C=v,k=g);var S=0,x=0,L=0,E=0;if(k<=m){for(var N=k,D=0===C?0:n.charCodeAt(C-1),M=0===C?0:e.get(D),T=!0,O=C;O<s;O++){var I=O,A=n.charCodeAt(O),P=void 0,R=void 0;if(Pe.ZG(A)?(O++,P=0,R=2):(P=e.get(A),R=Wi(A,N,i,o)),I>v&&Yi(D,M,A,P)&&(S=I,x=N),(N+=R)>m){I>v?(L=I,E=N-R):(L=O+1,E=N),N-x>d&&(S=0),T=!1;break}D=A,M=P}if(T){p>0&&(h[p]=u[u.length-1],f[p]=l[u.length-1],p++);break}}if(0===S){for(var Z=k,F=n.charCodeAt(C),j=e.get(F),H=!1,B=C-1;B>=v;B--){var z=B+1,W=n.charCodeAt(B);if(9===W){H=!0;break}var V=void 0,Y=void 0;if(Pe.YK(W)?(B--,V=0,Y=2):(V=e.get(W),Y=Pe.K7(W)?o:1),Z<=m){if(0===L&&(L=z,E=Z),Z<=m-d)break;if(Yi(W,V,F,j)){S=z,x=Z;break}}Z-=Y,F=W,j=V}if(0!==S){var U=d-(E-x);if(U<=i){var K=n.charCodeAt(L);U-(Pe.ZG(K)?2:Wi(K,E,i,o))<0&&(S=0)}}if(H){y--;continue}}if(0===S&&(S=L,x=E),S<=v){var q=n.charCodeAt(v);Pe.ZG(q)?(S=v+2,x=g+2):(S=v+1,x=g+Wi(q,g,i,o))}for(v=S,h[p]=S,g=x,f[p]=x,p++,m=x+d;y<0||y<_&&l[y]<x;)y++;for(var G=Math.abs(l[y]-m);y+1<_;){var $=Math.abs(l[y+1]-m);if($>=G)break;G=$,y++}}return 0===p?null:(h.length=p,f.length=p,Fi=t.breakOffsets,ji=t.breakOffsetsVisibleColumn,t.breakOffsets=h,t.breakOffsetsVisibleColumn=f,t.wrappedTextIndentLength=c,t)}function zi(e,t,n,i,r,o){if(-1===i)return null;var a=t.length;if(a<=1)return null;var s=Ui(t,n,i,r,o),u=i-s,l=[],c=[],d=0,h=0,f=0,p=i,v=t.charCodeAt(0),g=e.get(v),m=Wi(v,0,n,r),_=1;Pe.ZG(v)&&(m+=1,v=t.charCodeAt(1),g=e.get(v),_++);for(var y=_;y<a;y++){var b=y,w=t.charCodeAt(y),C=void 0,k=void 0;Pe.ZG(w)?(y++,C=0,k=2):(C=e.get(w),k=Wi(w,m,n,r)),Yi(v,g,w,C)&&(h=b,f=m),(m+=k)>p&&((0===h||m-f>u)&&(h=b,f=m-k),l[d]=h,c[d]=f,d++,p=f+u,h=0),v=w,g=C}return 0===d?null:(l[d]=a,c[d]=m,new Tt.le(l,c,s))}function Wi(e,t,n,i){return 9===e?n-t%n:Pe.K7(e)||e<32?i:1}function Vi(e,t){return t-e%t}function Yi(e,t,n,i){return 32!==n&&(2===t||3===t&&2!==i||1===i||3===i&&1!==t)}function Ui(e,t,n,i,r){var o=0;if(0!==r){var a=Pe.LC(e);if(-1!==a){for(var s=0;s<a;s++){o+=9===e.charCodeAt(s)?Vi(o,t):1}for(var u=3===r?2:2===r?1:0,l=0;l<u;l++){o+=Vi(o,t)}o+i>n&&(o=0)}}return o}var Ki=null===(ki=window.trustedTypes)||void 0===ki?void 0:ki.createPolicy("domLineBreaksComputer",{createHTML:function(e){return e}}),qi=function(){function e(){(0,c.Z)(this,e)}return(0,d.Z)(e,[{key:"createLineBreaksComputer",value:function(e,t,n,i){t|=0,n=+n;var r=[];return{addRequest:function(e,t){r.push(e)},finalize:function(){return function(e,t,n,i,r){var o;if(-1===i){for(var a=[],s=0,u=e.length;s<u;s++)a[s]=null;return a}var l=Math.round(i*t.typicalHalfwidthCharacterWidth);2!==r&&3!==r||(r=1);var c=document.createElement("div");k.V.applyFontInfoSlow(c,t);for(var d=(0,Xe.l$)(1e4),h=[],f=[],p=[],v=[],g=[],m=0;m<e.length;m++){var _=e[m],y=0,b=0,w=l;if(0!==r)if(-1===(y=Pe.LC(_)))y=0;else{for(var C=0;C<y;C++){b+=9===_.charCodeAt(C)?n-b%n:1}var S=Math.ceil(t.spaceWidth*b);S+t.typicalFullwidthCharacterWidth>l?(y=0,b=0):w=l-S}var x=_.substr(y),L=Gi(x,b,n,w,d);h[m]=y,f[m]=b,p[m]=x,v[m]=L[0],g[m]=L[1]}var E=d.build(),N=null!==(o=null===Ki||void 0===Ki?void 0:Ki.createHTML(E))&&void 0!==o?o:E;c.innerHTML=N,c.style.position="absolute",c.style.top="10000",c.style.wordWrap="break-word",document.body.appendChild(c);for(var D=document.createRange(),M=Array.prototype.slice.call(c.children,0),T=[],O=0;O<e.length;O++){var I=$i(D,M[O],p[O],v[O]);if(null!==I){for(var A=h[O],P=f[O],R=g[O],Z=[],F=0,j=I.length;F<j;F++)Z[F]=R[I[F]];if(0!==A)for(var H=0,B=I.length;H<B;H++)I[H]+=A;T[O]=new Tt.le(I,Z,P)}else T[O]=null}return document.body.removeChild(c),T}(r,e,t,n,i)}}}}],[{key:"create",value:function(){return new e}}]),e}();function Gi(e,t,n,i,r){r.appendASCIIString('<div style="width:'),r.appendASCIIString(String(i)),r.appendASCIIString('px;">');var o=e.length,a=t,s=0,u=[],l=[],c=0<o?e.charCodeAt(0):0;r.appendASCIIString("<span>");for(var d=0;d<o;d++){0!==d&&d%16384===0&&r.appendASCIIString("</span><span>"),u[d]=s,l[d]=a;var h=c;c=d+1<o?e.charCodeAt(d+1):0;var f=1,p=1;switch(h){case 9:p=f=n-a%n;for(var v=1;v<=f;v++)v<f?r.write1(160):r.appendASCII(32);break;case 32:32===c?r.write1(160):r.appendASCII(32);break;case 60:r.appendASCIIString("&lt;");break;case 62:r.appendASCIIString("&gt;");break;case 38:r.appendASCIIString("&amp;");break;case 0:r.appendASCIIString("&#00;");break;case 65279:case 8232:case 8233:case 133:r.write1(65533);break;default:Pe.K7(h)&&p++,h<32?r.write1(9216+h):r.write1(h)}s+=f,a+=p}return r.appendASCIIString("</span>"),u[e.length]=s,l[e.length]=a,r.appendASCIIString("</div>"),[u,l]}function $i(e,t,n,i){if(n.length<=1)return null;var r=Array.prototype.slice.call(t.children,0),o=[];try{Qi(e,r,i,0,null,n.length-1,null,o)}catch(a){return console.log(a),null}return 0===o.length?null:(o.push(n.length),o)}function Qi(e,t,n,i,r,o,a,s){if(i!==o&&(r=r||Xi(e,t,n[i],n[i+1]),a=a||Xi(e,t,n[o],n[o+1]),!(Math.abs(r[0].top-a[0].top)<=.1)))if(i+1!==o){var u=i+(o-i)/2|0,l=Xi(e,t,n[u],n[u+1]);Qi(e,t,n,i,r,u,l,s),Qi(e,t,n,u,l,o,a,s)}else s.push(o)}function Xi(e,t,n,i){return e.setStart(t[n/16384|0].firstChild,n%16384),e.setEnd(t[i/16384|0].firstChild,i%16384),e.getClientRects()}var Ji=n(86441),er=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},tr=function(e,t){return function(n,i){t(n,i,e)}},nr=0,ir=function(){function e(t,n,i,r,o){(0,c.Z)(this,e),this.model=t,this.viewModel=n,this.view=i,this.hasRealView=r,this.listenersToRemove=o}return(0,d.Z)(e,[{key:"dispose",value:function(){(0,w.B9)(this.listenersToRemove),this.model.onBeforeDetached(),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}]),e}(),rr=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,a,s,u,l,d,h,p,v){var g;(0,c.Z)(this,n),(g=t.call(this))._onDidDispose=g._register(new b.Q5),g.onDidDispose=g._onDidDispose.event,g._onDidChangeModelContent=g._register(new b.Q5),g.onDidChangeModelContent=g._onDidChangeModelContent.event,g._onDidChangeModelLanguage=g._register(new b.Q5),g.onDidChangeModelLanguage=g._onDidChangeModelLanguage.event,g._onDidChangeModelLanguageConfiguration=g._register(new b.Q5),g.onDidChangeModelLanguageConfiguration=g._onDidChangeModelLanguageConfiguration.event,g._onDidChangeModelOptions=g._register(new b.Q5),g.onDidChangeModelOptions=g._onDidChangeModelOptions.event,g._onDidChangeModelDecorations=g._register(new b.Q5),g.onDidChangeModelDecorations=g._onDidChangeModelDecorations.event,g._onDidChangeConfiguration=g._register(new b.Q5),g.onDidChangeConfiguration=g._onDidChangeConfiguration.event,g._onDidChangeModel=g._register(new b.Q5),g.onDidChangeModel=g._onDidChangeModel.event,g._onDidChangeCursorPosition=g._register(new b.Q5),g.onDidChangeCursorPosition=g._onDidChangeCursorPosition.event,g._onDidChangeCursorSelection=g._register(new b.Q5),g.onDidChangeCursorSelection=g._onDidChangeCursorSelection.event,g._onDidAttemptReadOnlyEdit=g._register(new b.Q5),g.onDidAttemptReadOnlyEdit=g._onDidAttemptReadOnlyEdit.event,g._onDidLayoutChange=g._register(new b.Q5),g.onDidLayoutChange=g._onDidLayoutChange.event,g._editorTextFocus=g._register(new or),g.onDidFocusEditorText=g._editorTextFocus.onDidChangeToTrue,g.onDidBlurEditorText=g._editorTextFocus.onDidChangeToFalse,g._editorWidgetFocus=g._register(new or),g.onDidFocusEditorWidget=g._editorWidgetFocus.onDidChangeToTrue,g.onDidBlurEditorWidget=g._editorWidgetFocus.onDidChangeToFalse,g._onWillType=g._register(new b.Q5),g.onWillType=g._onWillType.event,g._onDidType=g._register(new b.Q5),g.onDidType=g._onDidType.event,g._onDidCompositionStart=g._register(new b.Q5),g.onDidCompositionStart=g._onDidCompositionStart.event,g._onDidCompositionEnd=g._register(new b.Q5),g.onDidCompositionEnd=g._onDidCompositionEnd.event,g._onDidPaste=g._register(new b.Q5),g.onDidPaste=g._onDidPaste.event,g._onMouseUp=g._register(new b.Q5),g.onMouseUp=g._onMouseUp.event,g._onMouseDown=g._register(new b.Q5),g.onMouseDown=g._onMouseDown.event,g._onMouseDrag=g._register(new b.Q5),g.onMouseDrag=g._onMouseDrag.event,g._onMouseDrop=g._register(new b.Q5),g.onMouseDrop=g._onMouseDrop.event,g._onMouseDropCanceled=g._register(new b.Q5),g.onMouseDropCanceled=g._onMouseDropCanceled.event,g._onContextMenu=g._register(new b.Q5),g.onContextMenu=g._onContextMenu.event,g._onMouseMove=g._register(new b.Q5),g.onMouseMove=g._onMouseMove.event,g._onMouseLeave=g._register(new b.Q5),g.onMouseLeave=g._onMouseLeave.event,g._onMouseWheel=g._register(new b.Q5),g.onMouseWheel=g._onMouseWheel.event,g._onKeyUp=g._register(new b.Q5),g.onKeyUp=g._onKeyUp.event,g._onKeyDown=g._register(new b.Q5),g.onKeyDown=g._onKeyDown.event,g._onDidContentSizeChange=g._register(new b.Q5),g.onDidContentSizeChange=g._onDidContentSizeChange.event,g._onDidScrollChange=g._register(new b.Q5),g.onDidScrollChange=g._onDidScrollChange.event,g._onDidChangeViewZones=g._register(new b.Q5),g.onDidChangeViewZones=g._onDidChangeViewZones.event;var m,_=Object.assign({},i);g._domElement=e,g._overflowWidgetsDomNode=_.overflowWidgetsDomNode,delete _.overflowWidgetsDomNode,g._id=++nr,g._decorationTypeKeysToIds={},g._decorationTypeSubtypes={},g.isSimpleWidget=a.isSimpleWidget||!1,g._telemetryData=a.telemetryData,g._configuration=g._register(g._createConfiguration(_,v)),g._register(g._configuration.onDidChange((function(e){g._onDidChangeConfiguration.fire(e);var t=g._configuration.options;if(e.hasChanged(127)){var n=t.get(127);g._onDidLayoutChange.fire(n)}}))),g._contextKeyService=g._register(d.createScoped(g._domElement)),g._notificationService=p,g._codeEditorService=u,g._commandService=l,g._themeService=h,g._register(new ar((0,o.Z)(g),g._contextKeyService)),g._register(new sr((0,o.Z)(g),g._contextKeyService)),g._instantiationService=s.createChild(new Ii.y([Ti.i6,g._contextKeyService])),g._modelData=null,g._contributions={},g._actions={},g._focusTracker=new ur(e),g._focusTracker.onChange((function(){g._editorWidgetFocus.setValue(g._focusTracker.hasFocus())})),g._contentWidgets={},g._overlayWidgets={},m=Array.isArray(a.contributions)?a.contributions:f.Uc.getEditorContributions();var w,C=(0,r.Z)(m);try{for(C.s();!(w=C.n()).done;){var k=w.value;try{var S=g._instantiationService.createInstance(k.ctor,(0,o.Z)(g));g._contributions[k.id]=S}catch(x){(0,y.dL)(x)}}}catch(x){C.e(x)}finally{C.f()}return f.Uc.getEditorActions().forEach((function(e){var t=new ei.p(e.id,e.label,e.alias,(0,Ri.f6)(e.precondition),(function(){return g._instantiationService.invokeFunction((function(t){return Promise.resolve(e.runEditorCommand(t,(0,o.Z)(g),null))}))}),g._contextKeyService);g._actions[t.id]=t})),g._codeEditorService.addCodeEditor((0,o.Z)(g)),g}return(0,d.Z)(n,[{key:"_createConfiguration",value:function(e,t){return new k.V(this.isSimpleWidget,e,this._domElement,t)}},{key:"getId",value:function(){return this.getEditorType()+":"+this._id}},{key:"getEditorType",value:function(){return ti.g.ICodeEditor}},{key:"dispose",value:function(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose();for(var e=Object.keys(this._contributions),t=0,i=e.length;t<i;t++){var r=e[t];this._contributions[r].dispose()}this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"invokeWithinContext",value:function(e){return this._instantiationService.invokeFunction(e)}},{key:"updateOptions",value:function(e){this._configuration.updateOptions(e)}},{key:"getOptions",value:function(){return this._configuration.options}},{key:"getOption",value:function(e){return this._configuration.options.get(e)}},{key:"getRawOptions",value:function(){return this._configuration.getRawOptions()}},{key:"getOverflowWidgetsDomNode",value:function(){return this._overflowWidgetsDomNode}},{key:"getConfiguredWordAtPosition",value:function(e){return this._modelData?Ji.w.getWordAtPosition(this._modelData.model,this._configuration.options.get(113),e):null}},{key:"getValue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!this._modelData)return"";var t=!(!e||!e.preserveBOM),n=0;return e&&e.lineEnding&&"\n"===e.lineEnding?n=1:e&&e.lineEnding&&"\r\n"===e.lineEnding&&(n=2),this._modelData.model.getValue(n,t)}},{key:"setValue",value:function(e){this._modelData&&this._modelData.model.setValue(e)}},{key:"getModel",value:function(){return this._modelData?this._modelData.model:null}},{key:"setModel",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if((null!==this._modelData||null!==e)&&(!this._modelData||this._modelData.model!==e)){var t=this.hasTextFocus(),n=this._detachModel();this._attachModel(e),t&&this.hasModel()&&this.focus();var i={oldModelUrl:n?n.uri:null,newModelUrl:e?e.uri:null};this._removeDecorationTypes(),this._onDidChangeModel.fire(i),this._postDetachModelCleanup(n)}}},{key:"_removeDecorationTypes",value:function(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(var e in this._decorationTypeSubtypes){var t=this._decorationTypeSubtypes[e];for(var n in t)this._removeDecorationType(e+"-"+n)}this._decorationTypeSubtypes={}}}},{key:"getVisibleRanges",value:function(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}},{key:"getVisibleRangesPlusViewportAboveBelow",value:function(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}},{key:"getWhitespaces",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}},{key:"getTopForLineNumber",value:function(e){return this._modelData?n._getVerticalOffsetForPosition(this._modelData,e,1):-1}},{key:"getTopForPosition",value:function(e,t){return this._modelData?n._getVerticalOffsetForPosition(this._modelData,e,t):-1}},{key:"setHiddenAreas",value:function(e){this._modelData&&this._modelData.viewModel.setHiddenAreas(e.map((function(e){return fe.e.lift(e)})))}},{key:"getVisibleColumnFromPosition",value:function(e){if(!this._modelData)return e.column;var t=this._modelData.model.validatePosition(e),n=this._modelData.model.getOptions().tabSize;return pe.io.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,n)+1}},{key:"getPosition",value:function(){return this._modelData?this._modelData.viewModel.getPosition():null}},{key:"setPosition",value:function(e){if(this._modelData){if(!he.L.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections("api",[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}},{key:"_sendRevealRange",value:function(e,t,n,i){if(this._modelData){if(!fe.e.isIRange(e))throw new Error("Invalid arguments");var r=this._modelData.model.validateRange(e),o=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(r);this._modelData.viewModel.revealRange("api",n,o,t,i)}}},{key:"revealLine",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,0,t)}},{key:"revealLineInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,1,t)}},{key:"revealLineInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,2,t)}},{key:"revealLineNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,5,t)}},{key:"_revealLine",value:function(e,t,n){if("number"!==typeof e)throw new Error("Invalid arguments");this._sendRevealRange(new fe.e(e,1,e,1),t,!1,n)}},{key:"revealPosition",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,0,!0,t)}},{key:"revealPositionInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,1,!0,t)}},{key:"revealPositionInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,2,!0,t)}},{key:"revealPositionNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,5,!0,t)}},{key:"_revealPosition",value:function(e,t,n,i){if(!he.L.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new fe.e(e.lineNumber,e.column,e.lineNumber,e.column),t,n,i)}},{key:"getSelection",value:function(){return this._modelData?this._modelData.viewModel.getSelection():null}},{key:"getSelections",value:function(){return this._modelData?this._modelData.viewModel.getSelections():null}},{key:"setSelection",value:function(e){var t=L.Y.isISelection(e),n=fe.e.isIRange(e);if(!t&&!n)throw new Error("Invalid arguments");if(t)this._setSelectionImpl(e);else if(n){var i={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(i)}}},{key:"_setSelectionImpl",value:function(e){if(this._modelData){var t=new L.Y(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections("api",[t])}}},{key:"revealLines",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,0,n)}},{key:"revealLinesInCenter",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,1,n)}},{key:"revealLinesInCenterIfOutsideViewport",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,2,n)}},{key:"revealLinesNearTop",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,5,n)}},{key:"_revealLines",value:function(e,t,n,i){if("number"!==typeof e||"number"!==typeof t)throw new Error("Invalid arguments");this._sendRevealRange(new fe.e(e,1,t,1),n,!1,i)}},{key:"revealRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];this._revealRange(e,n?1:0,i,t)}},{key:"revealRangeInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,1,!0,t)}},{key:"revealRangeInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,2,!0,t)}},{key:"revealRangeNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,5,!0,t)}},{key:"revealRangeNearTopIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,6,!0,t)}},{key:"revealRangeAtTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,3,!0,t)}},{key:"_revealRange",value:function(e,t,n,i){if(!fe.e.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(fe.e.lift(e),t,n,i)}},{key:"setSelections",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"api",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(this._modelData){if(!e||0===e.length)throw new Error("Invalid arguments");for(var i=0,r=e.length;i<r;i++)if(!L.Y.isISelection(e[i]))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,e,n)}}},{key:"getContentWidth",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}},{key:"getScrollWidth",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}},{key:"getScrollLeft",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}},{key:"getContentHeight",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}},{key:"getScrollHeight",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}},{key:"getScrollTop",value:function(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}},{key:"setScrollLeft",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(this._modelData){if("number"!==typeof e)throw new Error("Invalid arguments");this._modelData.viewModel.setScrollPosition({scrollLeft:e},t)}}},{key:"setScrollTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(this._modelData){if("number"!==typeof e)throw new Error("Invalid arguments");this._modelData.viewModel.setScrollPosition({scrollTop:e},t)}}},{key:"setScrollPosition",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this._modelData&&this._modelData.viewModel.setScrollPosition(e,t)}},{key:"saveViewState",value:function(){if(!this._modelData)return null;for(var e={},t=0,n=Object.keys(this._contributions);t<n.length;t++){var i=n[t],r=this._contributions[i];"function"===typeof r.saveViewState&&(e[i]=r.saveViewState())}return{cursorState:this._modelData.viewModel.saveCursorState(),viewState:this._modelData.viewModel.saveState(),contributionsState:e}}},{key:"restoreViewState",value:function(e){if(this._modelData&&this._modelData.hasRealView){var t=e;if(t&&t.cursorState&&t.viewState){var n=t.cursorState;Array.isArray(n)?this._modelData.viewModel.restoreCursorState(n):this._modelData.viewModel.restoreCursorState([n]);for(var i=t.contributionsState||{},r=Object.keys(this._contributions),o=0,a=r.length;o<a;o++){var s=r[o],u=this._contributions[s];"function"===typeof u.restoreViewState&&u.restoreViewState(i[s])}var l=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(l)}}}},{key:"getContribution",value:function(e){return this._contributions[e]||null}},{key:"getActions",value:function(){for(var e=[],t=Object.keys(this._actions),n=0,i=t.length;n<i;n++){var r=t[n];e.push(this._actions[r])}return e}},{key:"getSupportedActions",value:function(){var e=this.getActions();return e=e.filter((function(e){return e.isSupported()}))}},{key:"getAction",value:function(e){return this._actions[e]||null}},{key:"trigger",value:function(e,t,n){switch(n=n||{},t){case"compositionStart":return void this._startComposition();case"compositionEnd":return void this._endComposition(e);case"type":var i=n;return void this._type(e,i.text||"");case"replacePreviousChar":var r=n;return void this._compositionType(e,r.text||"",r.replaceCharCnt||0,0,0);case"compositionType":var o=n;return void this._compositionType(e,o.text||"",o.replacePrevCharCnt||0,o.replaceNextCharCnt||0,o.positionDelta||0);case"paste":var a=n;return void this._paste(e,a.text||"",a.pasteOnNewLine||!1,a.multicursorText||null,a.mode||null);case"cut":return void this._cut(e)}var s=this.getAction(t);s?Promise.resolve(s.run()).then(void 0,y.dL):this._modelData&&(this._triggerEditorCommand(e,t,n)||this._triggerCommand(t,n))}},{key:"_triggerCommand",value:function(e,t){this._commandService.executeCommand(e,t)}},{key:"_startComposition",value:function(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}},{key:"_endComposition",value:function(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}},{key:"_type",value:function(e,t){this._modelData&&0!==t.length&&("keyboard"===e&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),"keyboard"===e&&this._onDidType.fire(t))}},{key:"_compositionType",value:function(e,t,n,i,r){this._modelData&&this._modelData.viewModel.compositionType(t,n,i,r,e)}},{key:"_paste",value:function(e,t,n,i,r){if(this._modelData&&0!==t.length){var o=this._modelData.viewModel.getSelection().getStartPosition();this._modelData.viewModel.paste(t,n,i,e);var a=this._modelData.viewModel.getSelection().getStartPosition();"keyboard"===e&&this._onDidPaste.fire({range:new fe.e(o.lineNumber,o.column,a.lineNumber,a.column),mode:r})}}},{key:"_cut",value:function(e){this._modelData&&this._modelData.viewModel.cut(e)}},{key:"_triggerEditorCommand",value:function(e,t,n){var i=this,r=f.Uc.getEditorCommand(t);return!!r&&((n=n||{}).source=e,this._instantiationService.invokeFunction((function(e){Promise.resolve(r.runEditorCommand(e,i,n)).then(void 0,y.dL)})),!0)}},{key:"_getViewModel",value:function(){return this._modelData?this._modelData.viewModel:null}},{key:"pushUndoStop",value:function(){return!!this._modelData&&(!this._configuration.options.get(77)&&(this._modelData.model.pushStackElement(),!0))}},{key:"popUndoStop",value:function(){return!!this._modelData&&(!this._configuration.options.get(77)&&(this._modelData.model.popStackElement(),!0))}},{key:"executeEdits",value:function(e,t,n){return!!this._modelData&&(!this._configuration.options.get(77)&&(i=n?Array.isArray(n)?function(){return n}:n:function(){return null},this._modelData.viewModel.executeEdits(e,t,i),!0));var i}},{key:"executeCommand",value:function(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}},{key:"executeCommands",value:function(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}},{key:"changeDecorations",value:function(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}},{key:"getLineDecorations",value:function(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,(0,ee.$J)(this._configuration.options)):null}},{key:"deltaDecorations",value:function(e,t){return this._modelData?0===e.length&&0===t.length?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}},{key:"removeDecorations",value:function(e){var t=this._decorationTypeKeysToIds[e];t&&this.deltaDecorations(t,[]),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}},{key:"getLayoutInfo",value:function(){return this._configuration.options.get(127)}},{key:"createOverviewRuler",value:function(e){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(e):null}},{key:"getContainerDomNode",value:function(){return this._domElement}},{key:"getDomNode",value:function(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null}},{key:"delegateVerticalScrollbarMouseDown",value:function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateVerticalScrollbarMouseDown(e)}},{key:"layout",value:function(e){this._configuration.observeReferenceElement(e),this.render()}},{key:"focus",value:function(){this._modelData&&this._modelData.hasRealView&&this._modelData.view.focus()}},{key:"hasTextFocus",value:function(){return!(!this._modelData||!this._modelData.hasRealView)&&this._modelData.view.isFocused()}},{key:"hasWidgetFocus",value:function(){return this._focusTracker&&this._focusTracker.hasFocus()}},{key:"addContentWidget",value:function(e){var t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a content widget with the same id."),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}},{key:"layoutContentWidget",value:function(e){var t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){var n=this._contentWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(n)}}},{key:"removeContentWidget",value:function(e){var t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){var n=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(n)}}},{key:"addOverlayWidget",value:function(e){var t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}},{key:"layoutOverlayWidget",value:function(e){var t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){var n=this._overlayWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(n)}}},{key:"removeOverlayWidget",value:function(e){var t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){var n=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(n)}}},{key:"changeViewZones",value:function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.change(e)}},{key:"getTargetAtClientPoint",value:function(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(e,t):null}},{key:"getScrolledVisiblePosition",value:function(e){if(!this._modelData||!this._modelData.hasRealView)return null;var t=this._modelData.model.validatePosition(e),i=this._configuration.options,r=i.get(127);return{top:n._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+r.glyphMarginWidth+r.lineNumbersWidth+r.decorationsWidth-this.getScrollLeft(),height:i.get(55)}}},{key:"getOffsetForColumn",value:function(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(e,t):-1}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._modelData&&this._modelData.hasRealView&&this._modelData.view.render(!0,e)}},{key:"setAriaOptions",value:function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(e)}},{key:"applyFontInfo",value:function(e){k.V.applyFontInfoSlow(e,this._configuration.options.get(40))}},{key:"_attachModel",value:function(e){var t=this;if(e){var n=[];this._domElement.setAttribute("data-mode-id",e.getLanguageIdentifier().language),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setMaxLineNumber(e.getLineCount()),e.onBeforeAttached();var r=new Di(this._id,this._configuration,e,qi.create(),Hi.create(this._configuration.options),(function(e){return _.scheduleAtNextAnimationFrame(e)}));n.push(e.onDidChangeDecorations((function(e){return t._onDidChangeModelDecorations.fire(e)}))),n.push(e.onDidChangeLanguage((function(n){t._domElement.setAttribute("data-mode-id",e.getLanguageIdentifier().language),t._onDidChangeModelLanguage.fire(n)}))),n.push(e.onDidChangeLanguageConfiguration((function(e){return t._onDidChangeModelLanguageConfiguration.fire(e)}))),n.push(e.onDidChangeContent((function(e){return t._onDidChangeModelContent.fire(e)}))),n.push(e.onDidChangeOptions((function(e){return t._onDidChangeModelOptions.fire(e)}))),n.push(e.onWillDispose((function(){return t.setModel(null)}))),n.push(r.onEvent((function(e){switch(e.kind){case 0:t._onDidContentSizeChange.fire(e);break;case 1:t._editorTextFocus.setValue(e.hasFocus);break;case 2:t._onDidScrollChange.fire(e);break;case 3:t._onDidChangeViewZones.fire();break;case 4:t._onDidAttemptReadOnlyEdit.fire();break;case 5:e.reachedMaxCursorCount&&t._notificationService.warn(m.N("cursors.maximum","The number of cursors has been limited to {0}.",Xn.MAX_CURSOR_COUNT));for(var n=[],i=0,r=e.selections.length;i<r;i++)n[i]=e.selections[i].getPosition();var o={position:n[0],secondaryPositions:n.slice(1),reason:e.reason,source:e.source};t._onDidChangeCursorPosition.fire(o);var a={selection:e.selections[0],secondarySelections:e.selections.slice(1),modelVersionId:e.modelVersionId,oldSelections:e.oldSelections,oldModelVersionId:e.oldModelVersionId,source:e.source,reason:e.reason};t._onDidChangeCursorSelection.fire(a)}})));var o=this._createView(r),a=(0,i.Z)(o,2),s=a[0],u=a[1];if(u){this._domElement.appendChild(s.domNode.domNode);for(var l=Object.keys(this._contentWidgets),c=0,d=l.length;c<d;c++){var h=l[c];s.addContentWidget(this._contentWidgets[h])}for(var f=0,p=(l=Object.keys(this._overlayWidgets)).length;f<p;f++){var v=l[f];s.addOverlayWidget(this._overlayWidgets[v])}s.render(!1,!0),s.domNode.domNode.setAttribute("data-uri",e.uri.toString())}this._modelData=new ir(e,r,s,u,n)}else this._modelData=null}},{key:"_createView",value:function(e){var t,n=this;t=this.isSimpleWidget?{paste:function(e,t,i,r){n._paste("keyboard",e,t,i,r)},type:function(e){n._type("keyboard",e)},compositionType:function(e,t,i,r){n._compositionType("keyboard",e,t,i,r)},startComposition:function(){n._startComposition()},endComposition:function(){n._endComposition("keyboard")},cut:function(){n._cut("keyboard")}}:{paste:function(e,t,i,r){var o={text:e,pasteOnNewLine:t,multicursorText:i,mode:r};n._commandService.executeCommand("paste",o)},type:function(e){var t={text:e};n._commandService.executeCommand("type",t)},compositionType:function(e,t,i,r){if(i||r){var o={text:e,replacePrevCharCnt:t,replaceNextCharCnt:i,positionDelta:r};n._commandService.executeCommand("compositionType",o)}else{var a={text:e,replaceCharCnt:t};n._commandService.executeCommand("replacePreviousChar",a)}},startComposition:function(){n._commandService.executeCommand("compositionStart",{})},endComposition:function(){n._commandService.executeCommand("compositionEnd",{})},cut:function(){n._commandService.executeCommand("cut",{})}};var i=new $e(e.coordinatesConverter);return i.onKeyDown=function(e){return n._onKeyDown.fire(e)},i.onKeyUp=function(e){return n._onKeyUp.fire(e)},i.onContextMenu=function(e){return n._onContextMenu.fire(e)},i.onMouseMove=function(e){return n._onMouseMove.fire(e)},i.onMouseLeave=function(e){return n._onMouseLeave.fire(e)},i.onMouseDown=function(e){return n._onMouseDown.fire(e)},i.onMouseUp=function(e){return n._onMouseUp.fire(e)},i.onMouseDrag=function(e){return n._onMouseDrag.fire(e)},i.onMouseDrop=function(e){return n._onMouseDrop.fire(e)},i.onMouseDropCanceled=function(e){return n._onMouseDropCanceled.fire(e)},i.onMouseWheel=function(e){return n._onMouseWheel.fire(e)},[new yn(t,this._configuration,this._themeService,e,i,this._overflowWidgetsDomNode),!0]}},{key:"_postDetachModelCleanup",value:function(e){e&&e.removeAllDecorationsWithOwnerId(this._id)}},{key:"_detachModel",value:function(){if(!this._modelData)return null;var e=this._modelData.model,t=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),t&&this._domElement.contains(t)&&this._domElement.removeChild(t),e}},{key:"_removeDecorationType",value:function(e){this._codeEditorService.removeDecorationType(e)}},{key:"hasModel",value:function(){return null!==this._modelData}}],[{key:"_getVerticalOffsetForPosition",value:function(e,t,n){var i=e.model.validatePosition({lineNumber:t,column:n}),r=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(r.lineNumber)}}]),n}(w.JT);rr=er([tr(3,Oi.TG),tr(4,S.$),tr(5,Mi.H),tr(6,Ti.i6),tr(7,je.XE),tr(8,Ai.lT),tr(9,Pi.F)],rr);var or=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,c.Z)(this,n),(e=t.call(this))._onDidChangeToTrue=e._register(new b.Q5),e.onDidChangeToTrue=e._onDidChangeToTrue.event,e._onDidChangeToFalse=e._register(new b.Q5),e.onDidChangeToFalse=e._onDidChangeToFalse.event,e._value=0,e}return(0,d.Z)(n,[{key:"setValue",value:function(e){var t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())}}]),n}(w.JT),ar=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this))._editor=e,i.createKey("editorId",e.getId()),r._editorSimpleInput=ni.u.editorSimpleInput.bindTo(i),r._editorFocus=ni.u.focus.bindTo(i),r._textInputFocus=ni.u.textInputFocus.bindTo(i),r._editorTextFocus=ni.u.editorTextFocus.bindTo(i),r._editorTabMovesFocus=ni.u.tabMovesFocus.bindTo(i),r._editorReadonly=ni.u.readOnly.bindTo(i),r._inDiffEditor=ni.u.inDiffEditor.bindTo(i),r._editorColumnSelection=ni.u.columnSelection.bindTo(i),r._hasMultipleSelections=ni.u.hasMultipleSelections.bindTo(i),r._hasNonEmptySelection=ni.u.hasNonEmptySelection.bindTo(i),r._canUndo=ni.u.canUndo.bindTo(i),r._canRedo=ni.u.canRedo.bindTo(i),r._register(r._editor.onDidChangeConfiguration((function(){return r._updateFromConfig()}))),r._register(r._editor.onDidChangeCursorSelection((function(){return r._updateFromSelection()}))),r._register(r._editor.onDidFocusEditorWidget((function(){return r._updateFromFocus()}))),r._register(r._editor.onDidBlurEditorWidget((function(){return r._updateFromFocus()}))),r._register(r._editor.onDidFocusEditorText((function(){return r._updateFromFocus()}))),r._register(r._editor.onDidBlurEditorText((function(){return r._updateFromFocus()}))),r._register(r._editor.onDidChangeModel((function(){return r._updateFromModel()}))),r._register(r._editor.onDidChangeConfiguration((function(){return r._updateFromModel()}))),r._updateFromConfig(),r._updateFromSelection(),r._updateFromFocus(),r._updateFromModel(),r._editorSimpleInput.set(r._editor.isSimpleWidget),r}return(0,d.Z)(n,[{key:"_updateFromConfig",value:function(){var e=this._editor.getOptions();this._editorTabMovesFocus.set(e.get(126)),this._editorReadonly.set(e.get(77)),this._inDiffEditor.set(e.get(51)),this._editorColumnSelection.set(e.get(16))}},{key:"_updateFromSelection",value:function(){var e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some((function(e){return!e.isEmpty()})))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}},{key:"_updateFromFocus",value:function(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}},{key:"_updateFromModel",value:function(){var e=this._editor.getModel();this._canUndo.set(Boolean(e&&e.canUndo())),this._canRedo.set(Boolean(e&&e.canRedo()))}}]),n}(w.JT),sr=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;(0,c.Z)(this,n),(r=t.call(this))._editor=e,r._contextKeyService=i,r._langId=ni.u.languageId.bindTo(i),r._hasCompletionItemProvider=ni.u.hasCompletionItemProvider.bindTo(i),r._hasCodeActionsProvider=ni.u.hasCodeActionsProvider.bindTo(i),r._hasCodeLensProvider=ni.u.hasCodeLensProvider.bindTo(i),r._hasDefinitionProvider=ni.u.hasDefinitionProvider.bindTo(i),r._hasDeclarationProvider=ni.u.hasDeclarationProvider.bindTo(i),r._hasImplementationProvider=ni.u.hasImplementationProvider.bindTo(i),r._hasTypeDefinitionProvider=ni.u.hasTypeDefinitionProvider.bindTo(i),r._hasHoverProvider=ni.u.hasHoverProvider.bindTo(i),r._hasDocumentHighlightProvider=ni.u.hasDocumentHighlightProvider.bindTo(i),r._hasDocumentSymbolProvider=ni.u.hasDocumentSymbolProvider.bindTo(i),r._hasReferenceProvider=ni.u.hasReferenceProvider.bindTo(i),r._hasRenameProvider=ni.u.hasRenameProvider.bindTo(i),r._hasSignatureHelpProvider=ni.u.hasSignatureHelpProvider.bindTo(i),r._hasInlineHintsProvider=ni.u.hasInlineHintsProvider.bindTo(i),r._hasDocumentFormattingProvider=ni.u.hasDocumentFormattingProvider.bindTo(i),r._hasDocumentSelectionFormattingProvider=ni.u.hasDocumentSelectionFormattingProvider.bindTo(i),r._hasMultipleDocumentFormattingProvider=ni.u.hasMultipleDocumentFormattingProvider.bindTo(i),r._hasMultipleDocumentSelectionFormattingProvider=ni.u.hasMultipleDocumentSelectionFormattingProvider.bindTo(i),r._isInWalkThrough=ni.u.isInWalkThroughSnippet.bindTo(i);var o=function(){return r._update()};return r._register(e.onDidChangeModel(o)),r._register(e.onDidChangeModelLanguage(o)),r._register(Dt.KZ.onDidChange(o)),r._register(Dt.H9.onDidChange(o)),r._register(Dt.He.onDidChange(o)),r._register(Dt.Ct.onDidChange(o)),r._register(Dt.RN.onDidChange(o)),r._register(Dt.vI.onDidChange(o)),r._register(Dt.tA.onDidChange(o)),r._register(Dt.xp.onDidChange(o)),r._register(Dt.vH.onDidChange(o)),r._register(Dt.vJ.onDidChange(o)),r._register(Dt.FL.onDidChange(o)),r._register(Dt.G0.onDidChange(o)),r._register(Dt.Az.onDidChange(o)),r._register(Dt.vN.onDidChange(o)),r._register(Dt.nD.onDidChange(o)),r._register(Dt.wo.onDidChange(o)),o(),r}return(0,d.Z)(n,[{key:"dispose",value:function(){(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}},{key:"reset",value:function(){var e=this;this._contextKeyService.bufferChangeEvents((function(){e._langId.reset(),e._hasCompletionItemProvider.reset(),e._hasCodeActionsProvider.reset(),e._hasCodeLensProvider.reset(),e._hasDefinitionProvider.reset(),e._hasDeclarationProvider.reset(),e._hasImplementationProvider.reset(),e._hasTypeDefinitionProvider.reset(),e._hasHoverProvider.reset(),e._hasDocumentHighlightProvider.reset(),e._hasDocumentSymbolProvider.reset(),e._hasReferenceProvider.reset(),e._hasRenameProvider.reset(),e._hasDocumentFormattingProvider.reset(),e._hasDocumentSelectionFormattingProvider.reset(),e._hasSignatureHelpProvider.reset(),e._isInWalkThrough.reset()}))}},{key:"_update",value:function(){var e=this,t=this._editor.getModel();t?this._contextKeyService.bufferChangeEvents((function(){e._langId.set(t.getLanguageIdentifier().language),e._hasCompletionItemProvider.set(Dt.KZ.has(t)),e._hasCodeActionsProvider.set(Dt.H9.has(t)),e._hasCodeLensProvider.set(Dt.He.has(t)),e._hasDefinitionProvider.set(Dt.Ct.has(t)),e._hasDeclarationProvider.set(Dt.RN.has(t)),e._hasImplementationProvider.set(Dt.vI.has(t)),e._hasTypeDefinitionProvider.set(Dt.tA.has(t)),e._hasHoverProvider.set(Dt.xp.has(t)),e._hasDocumentHighlightProvider.set(Dt.vH.has(t)),e._hasDocumentSymbolProvider.set(Dt.vJ.has(t)),e._hasReferenceProvider.set(Dt.FL.has(t)),e._hasRenameProvider.set(Dt.G0.has(t)),e._hasSignatureHelpProvider.set(Dt.nD.has(t)),e._hasInlineHintsProvider.set(Dt.wo.has(t)),e._hasDocumentFormattingProvider.set(Dt.Az.has(t)||Dt.vN.has(t)),e._hasDocumentSelectionFormattingProvider.set(Dt.vN.has(t)),e._hasMultipleDocumentFormattingProvider.set(Dt.Az.all(t).length+Dt.vN.all(t).length>1),e._hasMultipleDocumentSelectionFormattingProvider.set(Dt.vN.all(t).length>1),e._isInWalkThrough.set(t.uri.scheme===C.lg.walkThroughSnippet)})):this.reset()}}]),n}(w.JT),ur=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._onChange=i._register(new b.Q5),i.onChange=i._onChange.event,i._hasFocus=!1,i._domFocusTracker=i._register(_.trackFocus(e)),i._register(i._domFocusTracker.onDidFocus((function(){i._hasFocus=!0,i._onChange.fire(void 0)}))),i._register(i._domFocusTracker.onDidBlur((function(){i._hasFocus=!1,i._onChange.fire(void 0)}))),i}return(0,d.Z)(n,[{key:"hasFocus",value:function(){return this._hasFocus}}]),n}(w.JT),lr=encodeURIComponent("<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='"),cr=encodeURIComponent("'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>");function dr(e){return lr+encodeURIComponent(e.toString())+cr}var hr=encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" height="3" width="12"><g fill="'),fr=encodeURIComponent('"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></svg>');(0,je.Ic)((function(e,t){var n=e.getColor(Ot.b6);n&&t.addRule(".monaco-editor .".concat("squiggly-error"," { border-bottom: 4px double ",n,"; }"));var i=e.getColor(Ot.lX);i&&t.addRule(".monaco-editor .".concat("squiggly-error",' { background: url("data:image/svg+xml,',dr(i),'") repeat-x bottom left; }'));var r=e.getColor(Ot.A2);r&&t.addRule(".monaco-editor .".concat("squiggly-error","::before { display: block; content: ''; width: 100%; height: 100%; background: ",r,"; }"));var o=e.getColor(Ot.pW);o&&t.addRule(".monaco-editor .".concat("squiggly-warning"," { border-bottom: 4px double ",o,"; }"));var a=e.getColor(Ot.uo);a&&t.addRule(".monaco-editor .".concat("squiggly-warning",' { background: url("data:image/svg+xml,',dr(a),'") repeat-x bottom left; }'));var s=e.getColor(Ot.gp);s&&t.addRule(".monaco-editor .".concat("squiggly-warning","::before { display: block; content: ''; width: 100%; height: 100%; background: ",s,"; }"));var u=e.getColor(Ot.T8);u&&t.addRule(".monaco-editor .".concat("squiggly-info"," { border-bottom: 4px double ",u,"; }"));var l=e.getColor(Ot.c6);l&&t.addRule(".monaco-editor .".concat("squiggly-info",' { background: url("data:image/svg+xml,',dr(l),'") repeat-x bottom left; }'));var c=e.getColor(Ot.fe);c&&t.addRule(".monaco-editor .".concat("squiggly-info","::before { display: block; content: ''; width: 100%; height: 100%; background: ",c,"; }"));var d=e.getColor(Ot.fE);d&&t.addRule(".monaco-editor .".concat("squiggly-hint"," { border-bottom: 2px dotted ",d,"; }"));var h=e.getColor(Ot.Du);h&&t.addRule(".monaco-editor .".concat("squiggly-hint",' { background: url("data:image/svg+xml,',function(e){return hr+encodeURIComponent(e.toString())+fr}(h),'") no-repeat bottom left; }'));var f=e.getColor(Fe.zu);f&&t.addRule(".monaco-editor.showUnused .".concat("squiggly-inline-unnecessary"," { opacity: ",f.rgba.a,"; }"));var p=e.getColor(Fe.kp);p&&t.addRule(".monaco-editor.showUnused .".concat("squiggly-unnecessary"," { border-bottom: 2px dashed ",p,"; }"));var v=e.getColor(Ot.NO)||"inherit";t.addRule(".monaco-editor.showDeprecated .".concat("squiggly-inline-deprecated"," { text-decoration: line-through; text-decoration-color: ",v,"}"))}))},20224:function(e,t,n){"use strict";n.d(t,{p:function(){return Ce}});var i,r=n(97326),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(37762),c=n(15671),d=n(43144),h=n(56345),f=n(84540),p=n(41149),v=n(2523),g=n(27997),m=n(11732),_=n(81626),y=n(47014),b=n(47908),w=n(8295),C=n(95079),k=n(87757),S=n.n(k),x=n(67404),L=n(61727),E=n(29077),N=n(33399),D=n(76556),M=n(34763),T=n(67297),O=n(80449),I=n(70632),A=n(4587),P=n(18948),R=n(92992),Z=n(70182),F=n(4354),j=n(62239),H=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},B=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.originalLineStart=t,this.originalLineEnd=n,this.modifiedLineStart=i,this.modifiedLineEnd=r}return(0,d.Z)(e,[{key:"getType",value:function(){return 0===this.originalLineStart?1:0===this.modifiedLineStart?2:0}}]),e}(),z=(0,d.Z)((function e(t){(0,c.Z)(this,e),this.entries=t})),W=(0,j.q5)("diff-review-insert",F.lA.add,h.N("diffReviewInsertIcon","Icon for 'Insert' in diff review.")),V=(0,j.q5)("diff-review-remove",F.lA.remove,h.N("diffReviewRemoveIcon","Icon for 'Remove' in diff review.")),Y=(0,j.q5)("diff-review-close",F.lA.close,h.N("diffReviewCloseIcon","Icon for 'Close' in diff review.")),U=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._width=0,i._diffEditor=e,i._isVisible=!1,i.shadow=(0,p.X)(document.createElement("div")),i.shadow.setClassName("diff-review-shadow"),i.actionBarContainer=(0,p.X)(document.createElement("div")),i.actionBarContainer.setClassName("diff-review-actions"),i._actionBar=i._register(new x.o(i.actionBarContainer.domNode)),i._actionBar.push(new E.aU("diffreview.close",h.N("label.close","Close"),"close-diff-review "+Z.kS.asClassName(Y),!0,(function(){return H((0,r.Z)(i),void 0,void 0,S().mark((function e(){return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.hide());case 1:case"end":return e.stop()}}),e,this)})))})),{label:!1,icon:!0}),i.domNode=(0,p.X)(document.createElement("div")),i.domNode.setClassName("diff-review monaco-editor-background"),i._content=(0,p.X)(document.createElement("div")),i._content.setClassName("diff-review-content"),i._content.setAttribute("role","code"),i.scrollbar=i._register(new L.s$(i._content.domNode,{})),i.domNode.domNode.appendChild(i.scrollbar.getDomNode()),i._register(e.onDidUpdateDiff((function(){i._isVisible&&(i._diffs=i._compute(),i._render())}))),i._register(e.getModifiedEditor().onDidChangeCursorPosition((function(){i._isVisible&&i._render()}))),i._register(f.addStandardDisposableListener(i.domNode.domNode,"click",(function(e){e.preventDefault();var t=f.findParentWithClass(e.target,"diff-review-row");t&&i._goToRow(t)}))),i._register(f.addStandardDisposableListener(i.domNode.domNode,"keydown",(function(e){(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),i._goToRow(i._getNextRow())),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),i._goToRow(i._getPrevRow())),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),i.hide()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),i.accept())}))),i._diffs=[],i._currentDiff=null,i}return(0,d.Z)(n,[{key:"prev",value:function(){var e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){for(var t=-1,n=0,i=this._diffs.length;n<i;n++)if(this._diffs[n]===this._currentDiff){t=n;break}e=this._diffs.length+t-1}else e=this._findDiffIndex(this._diffEditor.getPosition());if(0!==this._diffs.length){e%=this._diffs.length;var r=this._diffs[e].entries;this._diffEditor.setPosition(new T.L(r[0].modifiedLineStart,1)),this._diffEditor.setSelection({startColumn:1,startLineNumber:r[0].modifiedLineStart,endColumn:1073741824,endLineNumber:r[r.length-1].modifiedLineEnd}),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow())}}},{key:"next",value:function(){var e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){for(var t=-1,n=0,i=this._diffs.length;n<i;n++)if(this._diffs[n]===this._currentDiff){t=n;break}e=t+1}else e=this._findDiffIndex(this._diffEditor.getPosition());if(0!==this._diffs.length){e%=this._diffs.length;var r=this._diffs[e].entries;this._diffEditor.setPosition(new T.L(r[0].modifiedLineStart,1)),this._diffEditor.setSelection({startColumn:1,startLineNumber:r[0].modifiedLineStart,endColumn:1073741824,endLineNumber:r[r.length-1].modifiedLineEnd}),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow())}}},{key:"accept",value:function(){var e=-1,t=this._getCurrentFocusedRow();if(t){var n=parseInt(t.getAttribute("data-line"),10);isNaN(n)||(e=n)}this.hide(),-1!==e&&(this._diffEditor.setPosition(new T.L(e,1)),this._diffEditor.revealPosition(new T.L(e,1),1))}},{key:"hide",value:function(){this._isVisible=!1,this._diffEditor.updateOptions({readOnly:!1}),this._diffEditor.focus(),this._diffEditor.doLayout(),this._render()}},{key:"_getPrevRow",value:function(){var e=this._getCurrentFocusedRow();return e?e.previousElementSibling?e.previousElementSibling:e:this._getFirstRow()}},{key:"_getNextRow",value:function(){var e=this._getCurrentFocusedRow();return e?e.nextElementSibling?e.nextElementSibling:e:this._getFirstRow()}},{key:"_getFirstRow",value:function(){return this.domNode.domNode.querySelector(".diff-review-row")}},{key:"_getCurrentFocusedRow",value:function(){var e=document.activeElement;return e&&/diff-review-row/.test(e.className)?e:null}},{key:"_goToRow",value:function(e){var t=this._getCurrentFocusedRow();e.tabIndex=0,e.focus(),t&&t!==e&&(t.tabIndex=-1),this.scrollbar.scanDomNode()}},{key:"isVisible",value:function(){return this._isVisible}},{key:"layout",value:function(e,t,n){this._width=t,this.shadow.setTop(e-6),this.shadow.setWidth(t),this.shadow.setHeight(this._isVisible?6:0),this.domNode.setTop(e),this.domNode.setWidth(t),this.domNode.setHeight(n),this._content.setHeight(n),this._content.setWidth(t),this._isVisible?(this.actionBarContainer.setAttribute("aria-hidden","false"),this.actionBarContainer.setDisplay("block")):(this.actionBarContainer.setAttribute("aria-hidden","true"),this.actionBarContainer.setDisplay("none"))}},{key:"_compute",value:function(){var e=this._diffEditor.getLineChanges();if(!e||0===e.length)return[];var t=this._diffEditor.getOriginalEditor().getModel(),i=this._diffEditor.getModifiedEditor().getModel();return t&&i?n._mergeAdjacent(e,t.getLineCount(),i.getLineCount()):[]}},{key:"_findDiffIndex",value:function(e){for(var t=e.lineNumber,n=0,i=this._diffs.length;n<i;n++){var r=this._diffs[n].entries;if(t<=r[r.length-1].modifiedLineEnd)return n}return 0}},{key:"_render",value:function(){var e=this._diffEditor.getOriginalEditor().getOptions(),t=this._diffEditor.getModifiedEditor().getOptions(),i=this._diffEditor.getOriginalEditor().getModel(),r=this._diffEditor.getModifiedEditor().getModel(),o=i.getOptions(),a=r.getOptions();if(!this._isVisible||!i||!r)return f.clearNode(this._content.domNode),this._currentDiff=null,void this.scrollbar.scanDomNode();this._diffEditor.updateOptions({readOnly:!0});var s=this._findDiffIndex(this._diffEditor.getPosition());if(this._diffs[s]!==this._currentDiff){this._currentDiff=this._diffs[s];var u=this._diffs[s].entries,l=document.createElement("div");l.className="diff-review-table",l.setAttribute("role","list"),l.setAttribute("aria-label",'Difference review. Use "Stage | Unstage | Revert Selected Ranges" commands'),y.V.applyFontInfoSlow(l,t.get(40));for(var c=0,d=0,p=0,v=0,g=0,m=u.length;g<m;g++){var _=u[g],b=_.originalLineStart,w=_.originalLineEnd,C=_.modifiedLineStart,k=_.modifiedLineEnd;0!==b&&(0===c||b<c)&&(c=b),0!==w&&(0===d||w>d)&&(d=w),0!==C&&(0===p||C<p)&&(p=C),0!==k&&(0===v||k>v)&&(v=k)}var S=document.createElement("div");S.className="diff-review-row";var x=document.createElement("div");x.className="diff-review-cell diff-review-summary";var L=d-c+1,E=v-p+1;x.appendChild(document.createTextNode("".concat(s+1,"/").concat(this._diffs.length,": @@ -").concat(c,",").concat(L," +").concat(p,",").concat(E," @@"))),S.setAttribute("data-line",String(p));var N=function(e){return 0===e?h.N("no_lines_changed","no lines changed"):1===e?h.N("one_line_changed","1 line changed"):h.N("more_lines_changed","{0} lines changed",e)},D=N(L),M=N(E);S.setAttribute("aria-label",h.N({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.']},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",s+1,this._diffs.length,c,D,p,M)),S.appendChild(x),S.setAttribute("role","listitem"),l.appendChild(S);for(var T=t.get(55),O=p,I=0,A=u.length;I<A;I++){var P=u[I];n._renderSection(l,P,O,T,this._width,e,i,o,t,r,a),0!==P.modifiedLineStart&&(O=P.modifiedLineEnd)}f.clearNode(this._content.domNode),this._content.domNode.appendChild(l),this.scrollbar.scanDomNode()}}}],[{key:"_mergeAdjacent",value:function(e,t,n){if(!e||0===e.length)return[];for(var i=[],r=0,o=0,a=e.length;o<a;o++){var s=e[o],u=s.originalStartLineNumber,l=s.originalEndLineNumber,c=s.modifiedStartLineNumber,d=s.modifiedEndLineNumber,h=[],f=0,p=0===l?u:u-1,v=0===d?c:c-1,g=1,m=1;if(o>0){var _=e[o-1];g=0===_.originalEndLineNumber?_.originalStartLineNumber+1:_.originalEndLineNumber+1,m=0===_.modifiedEndLineNumber?_.modifiedStartLineNumber+1:_.modifiedEndLineNumber+1}var y=p-3+1,b=v-3+1;if(y<g){var w=g-y;y+=w,b+=w}if(b<m){var C=m-b;y+=C,b+=C}h[f++]=new B(y,p,b,v),0!==l&&(h[f++]=new B(u,l,0,0)),0!==d&&(h[f++]=new B(0,0,c,d));var k=0===l?u+1:l+1,S=0===d?c+1:d+1,x=t,L=n;if(o+1<a){var E=e[o+1];x=0===E.originalEndLineNumber?E.originalStartLineNumber:E.originalStartLineNumber-1,L=0===E.modifiedEndLineNumber?E.modifiedStartLineNumber:E.modifiedStartLineNumber-1}var N=k+3-1,D=S+3-1;if(N>x){var M=x-N;N+=M,D+=M}if(D>L){var T=L-D;N+=T,D+=T}h[f++]=new B(k,N,S,D),i[r++]=new z(h)}for(var O=i[0].entries,I=[],A=0,P=1,R=i.length;P<R;P++){var Z=i[P].entries,F=O[O.length-1],j=Z[0];0===F.getType()&&0===j.getType()&&j.originalLineStart<=F.originalLineEnd?(O[O.length-1]=new B(F.originalLineStart,j.originalLineEnd,F.modifiedLineStart,j.modifiedLineEnd),O=O.concat(Z.slice(1))):(I[A++]=new z(O),O=Z)}return I[A++]=new z(O),I}},{key:"_renderSection",value:function(e,t,i,r,o,a,s,u,l,c,d){var f=t.getType(),p="diff-review-row",v="",g=null;switch(f){case 1:p="diff-review-row line-insert",v=" char-insert",g=W;break;case 2:p="diff-review-row line-delete",v=" char-delete",g=V}for(var m=t.originalLineStart,_=t.originalLineEnd,y=t.modifiedLineStart,b=t.modifiedLineEnd,w=Math.max(b-y,_-m),C=a.get(127),k=C.glyphMarginWidth+C.lineNumbersWidth,S=l.get(127),x=10+S.glyphMarginWidth+S.lineNumbersWidth,L=0;L<=w;L++){var E=0===m?0:m+L,N=0===y?0:y+L,D=document.createElement("div");D.style.minWidth=o+"px",D.className=p,D.setAttribute("role","listitem"),0!==N&&(i=N),D.setAttribute("data-line",String(i));var M=document.createElement("div");M.className="diff-review-cell",M.style.height="".concat(r,"px"),D.appendChild(M);var T=document.createElement("span");T.style.width=k+"px",T.style.minWidth=k+"px",T.className="diff-review-line-number"+v,0!==E?T.appendChild(document.createTextNode(String(E))):T.innerText="\xa0",M.appendChild(T);var O=document.createElement("span");O.style.width=x+"px",O.style.minWidth=x+"px",O.style.paddingRight="10px",O.className="diff-review-line-number"+v,0!==N?O.appendChild(document.createTextNode(String(N))):O.innerText="\xa0",M.appendChild(O);var I=document.createElement("span");if(I.className="diff-review-spacer",g){var A=document.createElement("span");A.className=Z.kS.asClassName(g),A.innerText="\xa0\xa0",I.appendChild(A)}else I.innerText="\xa0\xa0";M.appendChild(I);var P=void 0;if(0!==N){var R=this._renderLine(c,l,d.tabSize,N);n._ttPolicy&&(R=n._ttPolicy.createHTML(R)),M.insertAdjacentHTML("beforeend",R),P=c.getLineContent(N)}else{var F=this._renderLine(s,a,u.tabSize,E);n._ttPolicy&&(F=n._ttPolicy.createHTML(F)),M.insertAdjacentHTML("beforeend",F),P=s.getLineContent(E)}0===P.length&&(P=h.N("blankLine","blank"));var j="";switch(f){case 0:j=E===N?h.N({key:"unchangedLine",comment:["The placeholders are contents of the line and should not be translated."]},"{0} unchanged line {1}",P,E):h.N("equalLine","{0} original line {1} modified line {2}",P,E,N);break;case 1:j=h.N("insertLine","+ {0} modified line {1}",P,N);break;case 2:j=h.N("deleteLine","- {0} original line {1}",P,E)}D.setAttribute("aria-label",j),e.appendChild(D)}}},{key:"_renderLine",value:function(e,t,n,i){var r=e.getLineContent(i),o=t.get(40),a=new Uint32Array(2);a[0]=r.length,a[1]=16793600;var s=new M.A(a,r),u=A.wA.isBasicASCII(r,e.mightContainNonBasicASCII()),l=A.wA.containsRTL(r,u,e.mightContainRTL());return(0,I.tF)(new I.IJ(o.isMonospace&&!t.get(27),o.canUseHalfwidthRightwardsArrow,r,!1,u,l,0,s,[],n,0,o.spaceWidth,o.middotWidth,o.wsmiddotWidth,t.get(102),t.get(85),t.get(79),t.get(41)!==D.n0.OFF,null)).html}}]),n}(_.JT);U._ttPolicy=null===(i=window.trustedTypes)||void 0===i?void 0:i.createPolicy("diffReview",{createHTML:function(e){return e}}),(0,Z.Ic)((function(e,t){var n=e.getColor(O.hw);n&&t.addRule(".monaco-diff-editor .diff-review-line-number { color: ".concat(n,"; }"));var i=e.getColor(R._w);i&&t.addRule(".monaco-diff-editor .diff-review-shadow { box-shadow: ".concat(i," 0 -6px 6px -6px inset; }"))}));var K=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(){return(0,c.Z)(this,n),t.call(this,{id:"editor.action.diffReview.next",label:h.N("editor.action.diffReview.next","Go to Next Difference"),alias:"Go to Next Difference",precondition:P.Ao.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:65,weight:100}})}return(0,d.Z)(n,[{key:"run",value:function(e,t){var n=G(e);n&&n.diffReviewNext()}}]),n}(N.R6),q=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(){return(0,c.Z)(this,n),t.call(this,{id:"editor.action.diffReview.prev",label:h.N("editor.action.diffReview.prev","Go to Previous Difference"),alias:"Go to Previous Difference",precondition:P.Ao.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:1089,weight:100}})}return(0,d.Z)(n,[{key:"run",value:function(e,t){var n=G(e);n&&n.diffReviewPrev()}}]),n}(N.R6);function G(e){var t=e.get(w.$),n=t.listDiffEditors(),i=t.getActiveCodeEditor();if(!i)return null;for(var r=0,o=n.length;r<o;r++){var a=n[r];if(a.getModifiedEditor().getId()===i.getId()||a.getOriginalEditor().getId()===i.getId())return a}return null}(0,N.Qr)(K),(0,N.Qr)(q);var $,Q=n(67033),X=n(85500),J=n(30062),ee=n(28893),te=n(333),ne=n(32110),ie=n(29805),re=n(84596),oe=n(41001),ae=n(71574),se=n(98989),ue=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},le=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,o,a,s,u){var l;(0,c.Z)(this,n),(l=t.call(this))._viewZoneId=e,l._marginDomNode=i,l.editor=o,l.diff=a,l._contextMenuService=s,l._clipboardService=u,l._visibility=!1,l._marginDomNode.style.zIndex="10",l._diffActions=document.createElement("div"),l._diffActions.className=F.lA.lightBulb.classNames+" lightbulb-glyph",l._diffActions.style.position="absolute";var d=o.getOption(55),p=o.getModel().getEOL();l._diffActions.style.right="0px",l._diffActions.style.visibility="hidden",l._diffActions.style.height="".concat(d,"px"),l._diffActions.style.lineHeight="".concat(d,"px"),l._marginDomNode.appendChild(l._diffActions);var v=[];v.push(new E.aU("diff.clipboard.copyDeletedContent",a.originalEndLineNumber>a.modifiedStartLineNumber?h.N("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):h.N("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"),void 0,!0,(function(){return ue((0,r.Z)(l),void 0,void 0,S().mark((function e(){var t,n;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=new Q.e(a.originalStartLineNumber,1,a.originalEndLineNumber+1,1),n=a.originalModel.getValueInRange(t),e.next=4,this._clipboardService.writeText(n);case 4:case"end":return e.stop()}}),e,this)})))})));var g=0,m=void 0;a.originalEndLineNumber>a.modifiedStartLineNumber&&(m=new E.aU("diff.clipboard.copyDeletedLineContent",h.N("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",a.originalStartLineNumber),void 0,!0,(function(){return ue((0,r.Z)(l),void 0,void 0,S().mark((function e(){var t;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=a.originalModel.getLineContent(a.originalStartLineNumber+g),e.next=3,this._clipboardService.writeText(t);case 3:case"end":return e.stop()}}),e,this)})))})),v.push(m)),o.getOption(77)||v.push(new E.aU("diff.inline.revertChange",h.N("diff.inline.revertChange.label","Revert this change"),void 0,!0,(function(){return ue((0,r.Z)(l),void 0,void 0,S().mark((function e(){var t,n,i,r;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=new Q.e(a.originalStartLineNumber,1,a.originalEndLineNumber,a.originalModel.getLineMaxColumn(a.originalEndLineNumber)),n=a.originalModel.getValueInRange(t),0===a.modifiedEndLineNumber?(i=o.getModel().getLineMaxColumn(a.modifiedStartLineNumber),o.executeEdits("diffEditor",[{range:new Q.e(a.modifiedStartLineNumber,i,a.modifiedStartLineNumber,i),text:p+n}])):(r=o.getModel().getLineMaxColumn(a.modifiedEndLineNumber),o.executeEdits("diffEditor",[{range:new Q.e(a.modifiedStartLineNumber,1,a.modifiedEndLineNumber,r),text:n}]));case 3:case"end":return e.stop()}}),e)})))})));var _=function(e,t){l._contextMenuService.showContextMenu({getAnchor:function(){return{x:e,y:t}},getActions:function(){return m&&(m.label=h.N("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",a.originalStartLineNumber+g)),v},autoSelectFirstItem:!0})};return l._register(f.addStandardDisposableListener(l._diffActions,"mousedown",(function(e){var t=f.getDomNodePagePosition(l._diffActions),n=t.top,i=t.height,r=Math.floor(d/3);e.preventDefault(),_(e.posx,n+i+r)}))),l._register(o.onMouseMove((function(e){8===e.target.type||5===e.target.type?e.target.detail.viewZoneId===l._viewZoneId?(l.visibility=!0,g=l._updateLightBulbPosition(l._marginDomNode,e.event.browserEvent.y,d)):l.visibility=!1:l.visibility=!1}))),l._register(o.onMouseDown((function(e){e.event.rightButton&&(8!==e.target.type&&5!==e.target.type||e.target.detail.viewZoneId===l._viewZoneId&&(e.event.preventDefault(),g=l._updateLightBulbPosition(l._marginDomNode,e.event.browserEvent.y,d),_(e.event.posx,e.event.posy+d)))}))),l}return(0,d.Z)(n,[{key:"visibility",get:function(){return this._visibility},set:function(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}},{key:"_updateLightBulbPosition",value:function(e,t,n){var i=t-f.getDomNodePagePosition(e).top,r=Math.floor(i/n),o=r*n;if(this._diffActions.style.top="".concat(o,"px"),this.diff.viewLineCounts)for(var a=0,s=0;s<this.diff.viewLineCounts.length;s++)if(r<(a+=this.diff.viewLineCounts[s]))return s;return r}}]),n}(_.JT),ce=n(38794),de=n(8729),he=n(18085),fe=n(75949),pe=n(79026),ve=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ge=function(e,t){return function(n,i){t(n,i,e)}},me=function(){function e(t,n){(0,c.Z)(this,e),this._contextMenuService=t,this._clipboardService=n,this._zones=[],this._inlineDiffMargins=[],this._zonesMap={},this._decorations=[]}return(0,d.Z)(e,[{key:"getForeignViewZones",value:function(e){var t=this;return e.filter((function(e){return!t._zonesMap[String(e.id)]}))}},{key:"clean",value:function(e){var t=this;this._zones.length>0&&e.changeViewZones((function(e){var n,i=(0,l.Z)(t._zones);try{for(i.s();!(n=i.n()).done;){var r=n.value;e.removeZone(r)}}catch(o){i.e(o)}finally{i.f()}})),this._zones=[],this._zonesMap={},this._decorations=e.deltaDecorations(this._decorations,[])}},{key:"apply",value:function(e,t,n,i){var r=this,o=i?b.ZF.capture(e):null;e.changeViewZones((function(t){var i,o=(0,l.Z)(r._zones);try{for(o.s();!(i=o.n()).done;){var a=i.value;t.removeZone(a)}}catch(p){o.e(p)}finally{o.f()}var s,u=(0,l.Z)(r._inlineDiffMargins);try{for(u.s();!(s=u.n()).done;){s.value.dispose()}}catch(p){u.e(p)}finally{u.f()}r._zones=[],r._zonesMap={},r._inlineDiffMargins=[];for(var c=0,d=n.zones.length;c<d;c++){var h=n.zones[c];h.suppressMouseDown=!0;var f=t.addZone(h);r._zones.push(f),r._zonesMap[String(f)]=!0,n.zones[c].diff&&h.marginDomNode&&(h.suppressMouseDown=!1,r._inlineDiffMargins.push(new le(f,h.marginDomNode,e,n.zones[c].diff,r._contextMenuService,r._clipboardService)))}})),o&&o.restore(e),this._decorations=e.deltaDecorations(this._decorations,n.decorations),t&&t.setZones(n.overviewZones)}}]),e}(),_e=0,ye=(0,j.q5)("diff-insert",F.lA.add,h.N("diffInsertIcon","Line decoration for inserts in the diff editor.")),be=(0,j.q5)("diff-remove",F.lA.remove,h.N("diffRemoveIcon","Line decoration for removals in the diff editor.")),we=null===($=window.trustedTypes)||void 0===$?void 0:$.createPolicy("diffEditorWidget",{createHTML:function(e){return e}}),Ce=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,o,a,s,u,d,h,v,_,y,b){var w;(0,c.Z)(this,n),(w=t.call(this))._editorProgressService=b,w._onDidDispose=w._register(new m.Q5),w.onDidDispose=w._onDidDispose.event,w._onDidUpdateDiff=w._register(new m.Q5),w.onDidUpdateDiff=w._onDidUpdateDiff.event,w._onDidContentSizeChange=w._register(new m.Q5),w._lastOriginalWarning=null,w._lastModifiedWarning=null,w._editorWorkerService=s,w._codeEditorService=h,w._contextKeyService=w._register(u.createScoped(e)),w._instantiationService=d.createChild(new oe.y([P.i6,w._contextKeyService])),w._contextKeyService.createKey("isInDiffEditor",!0),w._themeService=v,w._notificationService=_,w._id=++_e,w._state=0,w._updatingDiffProgress=null,w._domElement=e,i=i||{},w._renderSideBySide=!0,"undefined"!==typeof i.renderSideBySide&&(w._renderSideBySide=i.renderSideBySide),w._maxComputationTime=5e3,"undefined"!==typeof i.maxComputationTime&&(w._maxComputationTime=i.maxComputationTime),w._ignoreTrimWhitespace=!0,"undefined"!==typeof i.ignoreTrimWhitespace&&(w._ignoreTrimWhitespace=i.ignoreTrimWhitespace),w._renderIndicators=!0,"undefined"!==typeof i.renderIndicators&&(w._renderIndicators=i.renderIndicators),w._originalIsEditable=(0,D.O7)(i.originalEditable,!1),w._diffCodeLens=(0,D.O7)(i.diffCodeLens,!1),w._diffWordWrap=Oe(i.diffWordWrap,"inherit"),"undefined"!==typeof i.isInEmbeddedEditor?w._contextKeyService.createKey("isInEmbeddedDiffEditor",i.isInEmbeddedEditor):w._contextKeyService.createKey("isInEmbeddedDiffEditor",!1),w._renderOverviewRuler=!0,"undefined"!==typeof i.renderOverviewRuler&&(w._renderOverviewRuler=Boolean(i.renderOverviewRuler)),w._updateDecorationsRunner=w._register(new g.pY((function(){return w._updateDecorations()}),0)),w._containerDomElement=document.createElement("div"),w._containerDomElement.className=n._getClassName(w._themeService.getColorTheme(),w._renderSideBySide),w._containerDomElement.style.position="relative",w._containerDomElement.style.height="100%",w._domElement.appendChild(w._containerDomElement),w._overviewViewportDomElement=(0,p.X)(document.createElement("div")),w._overviewViewportDomElement.setClassName("diffViewport"),w._overviewViewportDomElement.setPosition("absolute"),w._overviewDomElement=document.createElement("div"),w._overviewDomElement.className="diffOverview",w._overviewDomElement.style.position="absolute",w._overviewDomElement.appendChild(w._overviewViewportDomElement.domNode),w._register(f.addStandardDisposableListener(w._overviewDomElement,"mousedown",(function(e){w._modifiedEditor.delegateVerticalScrollbarMouseDown(e)}))),w._renderOverviewRuler&&w._containerDomElement.appendChild(w._overviewDomElement),w._originalDomNode=document.createElement("div"),w._originalDomNode.className="editor original",w._originalDomNode.style.position="absolute",w._originalDomNode.style.height="100%",w._containerDomElement.appendChild(w._originalDomNode),w._modifiedDomNode=document.createElement("div"),w._modifiedDomNode.className="editor modified",w._modifiedDomNode.style.position="absolute",w._modifiedDomNode.style.height="100%",w._containerDomElement.appendChild(w._modifiedDomNode),w._beginUpdateDecorationsTimeout=-1,w._currentlyChangingViewZones=!1,w._diffComputationToken=0,w._originalEditorState=new me(y,a),w._modifiedEditorState=new me(y,a),w._isVisible=!0,w._isHandlingScrollEvent=!1,w._elementSizeObserver=w._register(new fe.I(w._containerDomElement,i.dimension,(function(){return w._onDidContainerSizeChanged()}))),i.automaticLayout&&w._elementSizeObserver.startObserving(),w._diffComputationResult=null,w._originalEditor=w._createLeftHandSideEditor(i,o.originalEditor||{}),w._modifiedEditor=w._createRightHandSideEditor(i,o.modifiedEditor||{}),w._originalOverviewRuler=null,w._modifiedOverviewRuler=null,w._reviewPane=new U((0,r.Z)(w)),w._containerDomElement.appendChild(w._reviewPane.domNode.domNode),w._containerDomElement.appendChild(w._reviewPane.shadow.domNode),w._containerDomElement.appendChild(w._reviewPane.actionBarContainer.domNode),w._enableSplitViewResizing=!0,"undefined"!==typeof i.enableSplitViewResizing&&(w._enableSplitViewResizing=i.enableSplitViewResizing),w._renderSideBySide?w._setStrategy(new Ne(w._createDataSource(),w._enableSplitViewResizing)):w._setStrategy(new Me(w._createDataSource(),w._enableSplitViewResizing)),w._register(v.onDidColorThemeChange((function(e){w._strategy&&w._strategy.applyColors(e)&&w._updateDecorationsRunner.schedule(),w._containerDomElement.className=n._getClassName(w._themeService.getColorTheme(),w._renderSideBySide)})));var C,k=N.Uc.getDiffEditorContributions(),S=(0,l.Z)(k);try{for(S.s();!(C=S.n()).done;){var x=C.value;try{w._register(d.createInstance(x.ctor,(0,r.Z)(w)))}catch(L){(0,de.dL)(L)}}}catch(L){S.e(L)}finally{S.f()}return w._codeEditorService.addDiffEditor((0,r.Z)(w)),w}return(0,d.Z)(n,[{key:"_setState",value:function(e){this._state!==e&&(this._state=e,this._updatingDiffProgress&&(this._updatingDiffProgress.done(),this._updatingDiffProgress=null),1===this._state&&(this._updatingDiffProgress=this._editorProgressService.show(!0,1e3)))}},{key:"diffReviewNext",value:function(){this._reviewPane.next()}},{key:"diffReviewPrev",value:function(){this._reviewPane.prev()}},{key:"_recreateOverviewRulers",value:function(){this._renderOverviewRuler&&(this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._originalEditor.hasModel()&&(this._originalOverviewRuler=this._originalEditor.createOverviewRuler("original diffOverviewRuler"),this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._modifiedEditor.hasModel()&&(this._modifiedOverviewRuler=this._modifiedEditor.createOverviewRuler("modified diffOverviewRuler"),this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())),this._layoutOverviewRulers())}},{key:"_createLeftHandSideEditor",value:function(e,t){var i=this,r=this._createInnerEditor(this._instantiationService,this._originalDomNode,this._adjustOptionsForLeftHandSide(e),t);this._register(r.onDidScrollChange((function(e){i._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(i._isHandlingScrollEvent=!0,i._modifiedEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),i._isHandlingScrollEvent=!1,i._layoutOverviewViewport())}))),this._register(r.onDidChangeViewZones((function(){i._onViewZonesChanged()}))),this._register(r.onDidChangeConfiguration((function(e){r.getModel()&&(e.hasChanged(40)&&i._updateDecorationsRunner.schedule(),e.hasChanged(128)&&(i._updateDecorationsRunner.cancel(),i._updateDecorations()))}))),this._register(r.onDidChangeModelContent((function(){i._isVisible&&i._beginUpdateDecorationsSoon()})));var o=this._contextKeyService.createKey("isInDiffLeftEditor",r.hasWidgetFocus());return this._register(r.onDidFocusEditorWidget((function(){return o.set(!0)}))),this._register(r.onDidBlurEditorWidget((function(){return o.set(!1)}))),this._register(r.onDidContentSizeChange((function(e){var t=i._originalEditor.getContentWidth()+i._modifiedEditor.getContentWidth()+n.ONE_OVERVIEW_WIDTH,r=Math.max(i._modifiedEditor.getContentHeight(),i._originalEditor.getContentHeight());i._onDidContentSizeChange.fire({contentHeight:r,contentWidth:t,contentHeightChanged:e.contentHeightChanged,contentWidthChanged:e.contentWidthChanged})}))),r}},{key:"_createRightHandSideEditor",value:function(e,t){var i=this,r=this._createInnerEditor(this._instantiationService,this._modifiedDomNode,this._adjustOptionsForRightHandSide(e),t);this._register(r.onDidScrollChange((function(e){i._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(i._isHandlingScrollEvent=!0,i._originalEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),i._isHandlingScrollEvent=!1,i._layoutOverviewViewport())}))),this._register(r.onDidChangeViewZones((function(){i._onViewZonesChanged()}))),this._register(r.onDidChangeConfiguration((function(e){r.getModel()&&(e.hasChanged(40)&&i._updateDecorationsRunner.schedule(),e.hasChanged(128)&&(i._updateDecorationsRunner.cancel(),i._updateDecorations()))}))),this._register(r.onDidChangeModelContent((function(){i._isVisible&&i._beginUpdateDecorationsSoon()}))),this._register(r.onDidChangeModelOptions((function(e){e.tabSize&&i._updateDecorationsRunner.schedule()})));var o=this._contextKeyService.createKey("isInDiffRightEditor",r.hasWidgetFocus());return this._register(r.onDidFocusEditorWidget((function(){return o.set(!0)}))),this._register(r.onDidBlurEditorWidget((function(){return o.set(!1)}))),this._register(r.onDidContentSizeChange((function(e){var t=i._originalEditor.getContentWidth()+i._modifiedEditor.getContentWidth()+n.ONE_OVERVIEW_WIDTH,r=Math.max(i._modifiedEditor.getContentHeight(),i._originalEditor.getContentHeight());i._onDidContentSizeChange.fire({contentHeight:r,contentWidth:t,contentHeightChanged:e.contentHeightChanged,contentWidthChanged:e.contentWidthChanged})}))),r}},{key:"_createInnerEditor",value:function(e,t,n,i){return e.createInstance(C.Gm,t,n,i)}},{key:"dispose",value:function(){this._codeEditorService.removeDiffEditor(this),-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._cleanViewZonesAndDecorations(),this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode),this._renderOverviewRuler&&this._containerDomElement.removeChild(this._overviewDomElement),this._containerDomElement.removeChild(this._originalDomNode),this._originalEditor.dispose(),this._containerDomElement.removeChild(this._modifiedDomNode),this._modifiedEditor.dispose(),this._strategy.dispose(),this._containerDomElement.removeChild(this._reviewPane.domNode.domNode),this._containerDomElement.removeChild(this._reviewPane.shadow.domNode),this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode),this._reviewPane.dispose(),this._domElement.removeChild(this._containerDomElement),this._onDidDispose.fire(),(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return this.getEditorType()+":"+this._id}},{key:"getEditorType",value:function(){return J.g.IDiffEditor}},{key:"getLineChanges",value:function(){return this._diffComputationResult?this._diffComputationResult.changes:null}},{key:"getOriginalEditor",value:function(){return this._originalEditor}},{key:"getModifiedEditor",value:function(){return this._modifiedEditor}},{key:"updateOptions",value:function(e){var t=!1;"undefined"!==typeof e.renderSideBySide&&this._renderSideBySide!==e.renderSideBySide&&(this._renderSideBySide=e.renderSideBySide,t=!0),"undefined"!==typeof e.maxComputationTime&&(this._maxComputationTime=e.maxComputationTime,this._isVisible&&this._beginUpdateDecorationsSoon());var i=!1;"undefined"!==typeof e.ignoreTrimWhitespace&&this._ignoreTrimWhitespace!==e.ignoreTrimWhitespace&&(this._ignoreTrimWhitespace=e.ignoreTrimWhitespace,i=!0),"undefined"!==typeof e.renderIndicators&&this._renderIndicators!==e.renderIndicators&&(this._renderIndicators=e.renderIndicators,i=!0),i&&this._beginUpdateDecorations(),this._originalIsEditable=(0,D.O7)(e.originalEditable,this._originalIsEditable),this._diffCodeLens=(0,D.O7)(e.diffCodeLens,this._diffCodeLens),this._diffWordWrap=Oe(e.diffWordWrap,this._diffWordWrap),this._modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(e)),this._originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(e)),"undefined"!==typeof e.enableSplitViewResizing&&(this._enableSplitViewResizing=e.enableSplitViewResizing),this._strategy.setEnableSplitViewResizing(this._enableSplitViewResizing),t&&(this._renderSideBySide?this._setStrategy(new Ne(this._createDataSource(),this._enableSplitViewResizing)):this._setStrategy(new Me(this._createDataSource(),this._enableSplitViewResizing)),this._containerDomElement.className=n._getClassName(this._themeService.getColorTheme(),this._renderSideBySide)),"undefined"!==typeof e.renderOverviewRuler&&this._renderOverviewRuler!==e.renderOverviewRuler&&(this._renderOverviewRuler=e.renderOverviewRuler,this._renderOverviewRuler?this._containerDomElement.appendChild(this._overviewDomElement):this._containerDomElement.removeChild(this._overviewDomElement))}},{key:"getModel",value:function(){return{original:this._originalEditor.getModel(),modified:this._modifiedEditor.getModel()}}},{key:"setModel",value:function(e){if(e&&(!e.original||!e.modified))throw new Error(e.original?"DiffEditorWidget.setModel: Modified model is null":"DiffEditorWidget.setModel: Original model is null");this._cleanViewZonesAndDecorations(),this._originalEditor.setModel(e?e.original:null),this._modifiedEditor.setModel(e?e.modified:null),this._updateDecorationsRunner.cancel(),e&&(this._originalEditor.setScrollTop(0),this._modifiedEditor.setScrollTop(0)),this._diffComputationResult=null,this._diffComputationToken++,this._setState(0),e&&(this._recreateOverviewRulers(),this._beginUpdateDecorations()),this._layoutOverviewViewport()}},{key:"getDomNode",value:function(){return this._domElement}},{key:"getVisibleColumnFromPosition",value:function(e){return this._modifiedEditor.getVisibleColumnFromPosition(e)}},{key:"getPosition",value:function(){return this._modifiedEditor.getPosition()}},{key:"setPosition",value:function(e){this._modifiedEditor.setPosition(e)}},{key:"revealLine",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealLine(e,t)}},{key:"revealLineInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealLineInCenter(e,t)}},{key:"revealLineInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealLineInCenterIfOutsideViewport(e,t)}},{key:"revealLineNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealLineNearTop(e,t)}},{key:"revealPosition",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealPosition(e,t)}},{key:"revealPositionInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealPositionInCenter(e,t)}},{key:"revealPositionInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealPositionInCenterIfOutsideViewport(e,t)}},{key:"revealPositionNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealPositionNearTop(e,t)}},{key:"getSelection",value:function(){return this._modifiedEditor.getSelection()}},{key:"getSelections",value:function(){return this._modifiedEditor.getSelections()}},{key:"setSelection",value:function(e){this._modifiedEditor.setSelection(e)}},{key:"setSelections",value:function(e){this._modifiedEditor.setSelections(e)}},{key:"revealLines",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._modifiedEditor.revealLines(e,t,n)}},{key:"revealLinesInCenter",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._modifiedEditor.revealLinesInCenter(e,t,n)}},{key:"revealLinesInCenterIfOutsideViewport",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._modifiedEditor.revealLinesInCenterIfOutsideViewport(e,t,n)}},{key:"revealLinesNearTop",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._modifiedEditor.revealLinesNearTop(e,t,n)}},{key:"revealRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];this._modifiedEditor.revealRange(e,t,n,i)}},{key:"revealRangeInCenter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeInCenter(e,t)}},{key:"revealRangeInCenterIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeInCenterIfOutsideViewport(e,t)}},{key:"revealRangeNearTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeNearTop(e,t)}},{key:"revealRangeNearTopIfOutsideViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeNearTopIfOutsideViewport(e,t)}},{key:"revealRangeAtTop",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._modifiedEditor.revealRangeAtTop(e,t)}},{key:"getSupportedActions",value:function(){return this._modifiedEditor.getSupportedActions()}},{key:"saveViewState",value:function(){return{original:this._originalEditor.saveViewState(),modified:this._modifiedEditor.saveViewState()}}},{key:"restoreViewState",value:function(e){if(e&&e.original&&e.modified){var t=e;this._originalEditor.restoreViewState(t.original),this._modifiedEditor.restoreViewState(t.modified)}}},{key:"layout",value:function(e){this._elementSizeObserver.observe(e)}},{key:"focus",value:function(){this._modifiedEditor.focus()}},{key:"hasTextFocus",value:function(){return this._originalEditor.hasTextFocus()||this._modifiedEditor.hasTextFocus()}},{key:"trigger",value:function(e,t,n){this._modifiedEditor.trigger(e,t,n)}},{key:"changeDecorations",value:function(e){return this._modifiedEditor.changeDecorations(e)}},{key:"_onDidContainerSizeChanged",value:function(){this._doLayout()}},{key:"_getReviewHeight",value:function(){return this._reviewPane.isVisible()?this._elementSizeObserver.getHeight():0}},{key:"_layoutOverviewRulers",value:function(){if(this._renderOverviewRuler&&this._originalOverviewRuler&&this._modifiedOverviewRuler){var e=this._elementSizeObserver.getHeight(),t=this._getReviewHeight(),i=n.ENTIRE_DIFF_OVERVIEW_WIDTH-2*n.ONE_OVERVIEW_WIDTH;this._modifiedEditor.getLayoutInfo()&&(this._originalOverviewRuler.setLayout({top:0,width:n.ONE_OVERVIEW_WIDTH,right:i+n.ONE_OVERVIEW_WIDTH,height:e-t}),this._modifiedOverviewRuler.setLayout({top:0,right:0,width:n.ONE_OVERVIEW_WIDTH,height:e-t}))}}},{key:"_onViewZonesChanged",value:function(){this._currentlyChangingViewZones||this._updateDecorationsRunner.schedule()}},{key:"_beginUpdateDecorationsSoon",value:function(){var e=this;-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._beginUpdateDecorationsTimeout=window.setTimeout((function(){return e._beginUpdateDecorations()}),n.UPDATE_DIFF_DECORATIONS_DELAY)}},{key:"_beginUpdateDecorations",value:function(){var e=this;this._beginUpdateDecorationsTimeout=-1;var t=this._originalEditor.getModel(),i=this._modifiedEditor.getModel();if(t&&i){this._diffComputationToken++;var r=this._diffComputationToken;this._setState(1),this._editorWorkerService.canComputeDiff(t.uri,i.uri)?this._editorWorkerService.computeDiff(t.uri,i.uri,this._ignoreTrimWhitespace,this._maxComputationTime).then((function(n){r===e._diffComputationToken&&t===e._originalEditor.getModel()&&i===e._modifiedEditor.getModel()&&(e._setState(2),e._diffComputationResult=n,e._updateDecorationsRunner.schedule(),e._onDidUpdateDiff.fire())}),(function(n){r===e._diffComputationToken&&t===e._originalEditor.getModel()&&i===e._modifiedEditor.getModel()&&(e._setState(2),e._diffComputationResult=null,e._updateDecorationsRunner.schedule())})):n._equals(t.uri,this._lastOriginalWarning)&&n._equals(i.uri,this._lastModifiedWarning)||(this._lastOriginalWarning=t.uri,this._lastModifiedWarning=i.uri,this._notificationService.warn(h.N("diff.tooLarge","Cannot compare files because one file is too large.")))}}},{key:"_cleanViewZonesAndDecorations",value:function(){this._originalEditorState.clean(this._originalEditor),this._modifiedEditorState.clean(this._modifiedEditor)}},{key:"_updateDecorations",value:function(){if(this._originalEditor.getModel()&&this._modifiedEditor.getModel()){var e=this._diffComputationResult?this._diffComputationResult.changes:[],t=this._originalEditorState.getForeignViewZones(this._originalEditor.getWhitespaces()),n=this._modifiedEditorState.getForeignViewZones(this._modifiedEditor.getWhitespaces()),i=this._strategy.getEditorsDiffDecorations(e,this._ignoreTrimWhitespace,this._renderIndicators,t,n);try{this._currentlyChangingViewZones=!0,this._originalEditorState.apply(this._originalEditor,this._originalOverviewRuler,i.original,!1),this._modifiedEditorState.apply(this._modifiedEditor,this._modifiedOverviewRuler,i.modified,!0)}finally{this._currentlyChangingViewZones=!1}}}},{key:"_adjustOptionsForSubEditor",value:function(e){var t=Object.assign({},e);return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar=Object.assign({},t.scrollbar||{}),t.scrollbar.vertical="visible",t.folding=!1,t.codeLens=this._diffCodeLens,t.fixedOverflowWidgets=!0,t.minimap=Object.assign({},t.minimap||{}),t.minimap.enabled=!1,t}},{key:"_adjustOptionsForLeftHandSide",value:function(e){var t=this._adjustOptionsForSubEditor(e);return this._renderSideBySide?t.wordWrapOverride1=this._diffWordWrap:t.wordWrapOverride1="off",e.originalAriaLabel&&(t.ariaLabel=e.originalAriaLabel),t.readOnly=!this._originalIsEditable,t.extraEditorClassName="original-in-monaco-diff-editor",Object.assign(Object.assign({},t),{dimension:{height:0,width:0}})}},{key:"_adjustOptionsForRightHandSide",value:function(e){var t=this._adjustOptionsForSubEditor(e);return e.modifiedAriaLabel&&(t.ariaLabel=e.modifiedAriaLabel),t.wordWrapOverride1=this._diffWordWrap,t.revealHorizontalRightPadding=D.BH.revealHorizontalRightPadding.defaultValue+n.ENTIRE_DIFF_OVERVIEW_WIDTH,t.scrollbar.verticalHasArrows=!1,t.extraEditorClassName="modified-in-monaco-diff-editor",Object.assign(Object.assign({},t),{dimension:{height:0,width:0}})}},{key:"doLayout",value:function(){this._elementSizeObserver.observe(),this._doLayout()}},{key:"_doLayout",value:function(){var e=this._elementSizeObserver.getWidth(),t=this._elementSizeObserver.getHeight(),i=this._getReviewHeight(),r=this._strategy.layout();this._originalDomNode.style.width=r+"px",this._originalDomNode.style.left="0px",this._modifiedDomNode.style.width=e-r+"px",this._modifiedDomNode.style.left=r+"px",this._overviewDomElement.style.top="0px",this._overviewDomElement.style.height=t-i+"px",this._overviewDomElement.style.width=n.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",this._overviewDomElement.style.left=e-n.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",this._overviewViewportDomElement.setWidth(n.ENTIRE_DIFF_OVERVIEW_WIDTH),this._overviewViewportDomElement.setHeight(30),this._originalEditor.layout({width:r,height:t-i}),this._modifiedEditor.layout({width:e-r-(this._renderOverviewRuler?n.ENTIRE_DIFF_OVERVIEW_WIDTH:0),height:t-i}),(this._originalOverviewRuler||this._modifiedOverviewRuler)&&this._layoutOverviewRulers(),this._reviewPane.layout(t-i,e,i),this._layoutOverviewViewport()}},{key:"_layoutOverviewViewport",value:function(){var e=this._computeOverviewViewport();e?(this._overviewViewportDomElement.setTop(e.top),this._overviewViewportDomElement.setHeight(e.height)):(this._overviewViewportDomElement.setTop(0),this._overviewViewportDomElement.setHeight(0))}},{key:"_computeOverviewViewport",value:function(){var e=this._modifiedEditor.getLayoutInfo();if(!e)return null;var t=this._modifiedEditor.getScrollTop(),n=this._modifiedEditor.getScrollHeight(),i=Math.max(0,e.height),r=Math.max(0,i-0),o=n>0?r/n:0;return{height:Math.max(0,Math.floor(e.height*o)),top:Math.floor(t*o)}}},{key:"_createDataSource",value:function(){var e=this;return{getWidth:function(){return e._elementSizeObserver.getWidth()},getHeight:function(){return e._elementSizeObserver.getHeight()-e._getReviewHeight()},getOptions:function(){return{renderOverviewRuler:e._renderOverviewRuler}},getContainerDomNode:function(){return e._containerDomElement},relayoutEditors:function(){e._doLayout()},getOriginalEditor:function(){return e._originalEditor},getModifiedEditor:function(){return e._modifiedEditor}}}},{key:"_setStrategy",value:function(e){this._strategy&&this._strategy.dispose(),this._strategy=e,e.applyColors(this._themeService.getColorTheme()),this._diffComputationResult&&this._updateDecorations(),this._doLayout()}},{key:"_getLineChangeAtOrBeforeLineNumber",value:function(e,t){var n=this._diffComputationResult?this._diffComputationResult.changes:[];if(0===n.length||e<t(n[0]))return null;for(var i=0,r=n.length-1;i<r;){var o=Math.floor((i+r)/2),a=t(n[o]),s=o+1<=r?t(n[o+1]):1073741824;e<a?r=o-1:e>=s?i=o+1:(i=o,r=o)}return n[i]}},{key:"_getEquivalentLineForOriginalLineNumber",value:function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,(function(e){return e.originalStartLineNumber}));if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),r=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,o=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,a=e-n;return a<=r?i+Math.min(a,o):i+o-r+a}},{key:"_getEquivalentLineForModifiedLineNumber",value:function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,(function(e){return e.modifiedStartLineNumber}));if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),r=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,o=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,a=e-i;return a<=o?n+Math.min(a,r):n+r-o+a}},{key:"getDiffLineInformationForOriginal",value:function(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForOriginalLineNumber(e)}:null}},{key:"getDiffLineInformationForModified",value:function(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForModifiedLineNumber(e)}:null}}],[{key:"_getClassName",value:function(e,t){var n="monaco-diff-editor monaco-editor-background ";return t&&(n+="side-by-side "),n+=(0,Z.m6)(e.type)}},{key:"_equals",value:function(e,t){return!e&&!t||!(!e||!t)&&e.toString()===t.toString()}}]),n}(_.JT);Ce.ONE_OVERVIEW_WIDTH=15,Ce.ENTIRE_DIFF_OVERVIEW_WIDTH=30,Ce.UPDATE_DIFF_DECORATIONS_DELAY=200,Ce=ve([ge(3,ce.p),ge(4,te.p),ge(5,P.i6),ge(6,re.TG),ge(7,w.$),ge(8,Z.XE),ge(9,ae.lT),ge(10,se.i),ge(11,he.e)],Ce);var ke=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this))._dataSource=e,i._insertColor=null,i._removeColor=null,i}return(0,d.Z)(n,[{key:"applyColors",value:function(e){var t=(e.getColor(R.yp)||R.Cz).transparent(2),n=(e.getColor(R.P4)||R.ke).transparent(2),i=!t.equals(this._insertColor)||!n.equals(this._removeColor);return this._insertColor=t,this._removeColor=n,i}},{key:"getEditorsDiffDecorations",value:function(e,t,n,i,r){r=r.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber})),i=i.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber}));var o=this._getViewZones(e,i,r,n),a=this._getOriginalEditorDecorations(e,t,n),s=this._getModifiedEditorDecorations(e,t,n);return{original:{decorations:a.decorations,overviewZones:a.overviewZones,zones:o.original},modified:{decorations:s.decorations,overviewZones:s.overviewZones,zones:o.modified}}}}]),n}(_.JT),Se=function(){function e(t){(0,c.Z)(this,e),this._source=t,this._index=-1,this.current=null,this.advance()}return(0,d.Z)(e,[{key:"advance",value:function(){this._index++,this._index<this._source.length?this.current=this._source[this._index]:this.current=null}}]),e}(),xe=function(){function e(t,n,i,r,o){(0,c.Z)(this,e),this._lineChanges=t,this._originalForeignVZ=n,this._modifiedForeignVZ=i,this._originalEditor=r,this._modifiedEditor=o}return(0,d.Z)(e,[{key:"getViewZones",value:function(){for(var t=this._originalEditor.getOption(55),n=this._modifiedEditor.getOption(55),i=-1!==this._originalEditor.getOption(128).wrappingColumn,r=-1!==this._modifiedEditor.getOption(128).wrappingColumn,o=i||r,a=this._originalEditor.getModel(),s=this._originalEditor._getViewModel().coordinatesConverter,u=this._modifiedEditor._getViewModel().coordinatesConverter,l=[],c=[],d=0,h=0,f=0,p=0,v=0,g=0,m=function(e,t){return e.afterLineNumber-t.afterLineNumber},_=function(e,t){if(null===t.domNode&&e.length>0){var n=e[e.length-1];if(n.afterLineNumber===t.afterLineNumber&&null===n.domNode)return void(n.heightInLines+=t.heightInLines)}e.push(t)},y=new Se(this._modifiedForeignVZ),b=new Se(this._originalForeignVZ),w=1,C=1,k=0,S=this._lineChanges.length;k<=S;k++){var x=k<S?this._lineChanges[k]:null;null!==x?(f=x.originalStartLineNumber+(x.originalEndLineNumber>0?-1:0),p=x.modifiedStartLineNumber+(x.modifiedEndLineNumber>0?-1:0),h=x.originalEndLineNumber>0?e._getViewLineCount(this._originalEditor,x.originalStartLineNumber,x.originalEndLineNumber):0,d=x.modifiedEndLineNumber>0?e._getViewLineCount(this._modifiedEditor,x.modifiedStartLineNumber,x.modifiedEndLineNumber):0,v=Math.max(x.originalStartLineNumber,x.originalEndLineNumber),g=Math.max(x.modifiedStartLineNumber,x.modifiedEndLineNumber)):(v=f+=1e7+h,g=p+=1e7+d);var L=[],E=[];if(o){var N=void 0;N=x?x.originalEndLineNumber>0?x.originalStartLineNumber-w:x.modifiedStartLineNumber-C:a.getLineCount()-w;for(var D=0;D<N;D++){var M=w+D,T=C+D,O=s.getModelLineViewLineCount(M),I=u.getModelLineViewLineCount(T);O<I?L.push({afterLineNumber:M,heightInLines:I-O,domNode:null,marginDomNode:null}):O>I&&E.push({afterLineNumber:T,heightInLines:O-I,domNode:null,marginDomNode:null})}x&&(w=(x.originalEndLineNumber>0?x.originalEndLineNumber:x.originalStartLineNumber)+1,C=(x.modifiedEndLineNumber>0?x.modifiedEndLineNumber:x.modifiedStartLineNumber)+1)}for(;y.current&&y.current.afterLineNumber<=g;){var A=void 0;A=y.current.afterLineNumber<=p?f-p+y.current.afterLineNumber:v;var P=null;x&&x.modifiedStartLineNumber<=y.current.afterLineNumber&&y.current.afterLineNumber<=x.modifiedEndLineNumber&&(P=this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()),L.push({afterLineNumber:A,heightInLines:y.current.height/n,domNode:null,marginDomNode:P}),y.advance()}for(;b.current&&b.current.afterLineNumber<=v;){var R=void 0;R=b.current.afterLineNumber<=f?p-f+b.current.afterLineNumber:g,E.push({afterLineNumber:R,heightInLines:b.current.height/t,domNode:null}),b.advance()}if(null!==x&&Ie(x)){var Z=this._produceOriginalFromDiff(x,h,d);Z&&L.push(Z)}if(null!==x&&Ae(x)){var F=this._produceModifiedFromDiff(x,h,d);F&&E.push(F)}var j=0,H=0;for(L=L.sort(m),E=E.sort(m);j<L.length&&H<E.length;){var B=L[j],z=E[H],W=B.afterLineNumber-f,V=z.afterLineNumber-p;W<V?(_(l,B),j++):V<W?(_(c,z),H++):B.shouldNotShrink?(_(l,B),j++):z.shouldNotShrink?(_(c,z),H++):B.heightInLines>=z.heightInLines?(B.heightInLines-=z.heightInLines,H++):(z.heightInLines-=B.heightInLines,j++)}for(;j<L.length;)_(l,L[j]),j++;for(;H<E.length;)_(c,E[H]),H++}return{original:e._ensureDomNodes(l),modified:e._ensureDomNodes(c)}}}],[{key:"_getViewLineCount",value:function(e,t,n){var i=e.getModel(),r=e._getViewModel();if(i&&r){var o=Re(i,r,t,n);return o.endLineNumber-o.startLineNumber+1}return n-t+1}},{key:"_ensureDomNodes",value:function(e){return e.map((function(e){return e.domNode||(e.domNode=Pe()),e}))}}]),e}();function Le(e,t,n,i,r){return{range:new Q.e(e,t,n,i),options:r}}var Ee={charDelete:ee.qx.register({className:"char-delete"}),charDeleteWholeLine:ee.qx.register({className:"char-delete",isWholeLine:!0}),charInsert:ee.qx.register({className:"char-insert"}),charInsertWholeLine:ee.qx.register({className:"char-insert",isWholeLine:!0}),lineInsert:ee.qx.register({className:"line-insert",marginClassName:"line-insert",isWholeLine:!0}),lineInsertWithSign:ee.qx.register({className:"line-insert",linesDecorationsClassName:"insert-sign "+Z.kS.asClassName(ye),marginClassName:"line-insert",isWholeLine:!0}),lineDelete:ee.qx.register({className:"line-delete",marginClassName:"line-delete",isWholeLine:!0}),lineDeleteWithSign:ee.qx.register({className:"line-delete",linesDecorationsClassName:"delete-sign "+Z.kS.asClassName(be),marginClassName:"line-delete",isWholeLine:!0}),lineDeleteMargin:ee.qx.register({marginClassName:"line-delete"})},Ne=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i){var o;return(0,c.Z)(this,n),(o=t.call(this,e))._disableSash=!1===i,o._sashRatio=null,o._sashPosition=null,o._startSashPosition=null,o._sash=o._register(new v.g(o._dataSource.getContainerDomNode(),(0,r.Z)(o),{orientation:0})),o._disableSash&&(o._sash.state=0),o._sash.onDidStart((function(){return o._onSashDragStart()})),o._sash.onDidChange((function(e){return o._onSashDrag(e)})),o._sash.onDidEnd((function(){return o._onSashDragEnd()})),o._sash.onDidReset((function(){return o._onSashReset()})),o}return(0,d.Z)(n,[{key:"setEnableSplitViewResizing",value:function(e){var t=!1===e;this._disableSash!==t&&(this._disableSash=t,this._sash.state=this._disableSash?0:3)}},{key:"layout",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._sashRatio,t=this._dataSource.getWidth()-(this._dataSource.getOptions().renderOverviewRuler?Ce.ENTIRE_DIFF_OVERVIEW_WIDTH:0),i=Math.floor((e||.5)*t),r=Math.floor(.5*t);return i=this._disableSash?r:i||r,t>2*n.MINIMUM_EDITOR_WIDTH?(i<n.MINIMUM_EDITOR_WIDTH&&(i=n.MINIMUM_EDITOR_WIDTH),i>t-n.MINIMUM_EDITOR_WIDTH&&(i=t-n.MINIMUM_EDITOR_WIDTH)):i=r,this._sashPosition!==i&&(this._sashPosition=i,this._sash.layout()),this._sashPosition}},{key:"_onSashDragStart",value:function(){this._startSashPosition=this._sashPosition}},{key:"_onSashDrag",value:function(e){var t=this._dataSource.getWidth()-(this._dataSource.getOptions().renderOverviewRuler?Ce.ENTIRE_DIFF_OVERVIEW_WIDTH:0),n=this.layout((this._startSashPosition+(e.currentX-e.startX))/t);this._sashRatio=n/t,this._dataSource.relayoutEditors()}},{key:"_onSashDragEnd",value:function(){this._sash.layout()}},{key:"_onSashReset",value:function(){this._sashRatio=.5,this._dataSource.relayoutEditors(),this._sash.layout()}},{key:"getVerticalSashTop",value:function(e){return 0}},{key:"getVerticalSashLeft",value:function(e){return this._sashPosition}},{key:"getVerticalSashHeight",value:function(e){return this._dataSource.getHeight()}},{key:"_getViewZones",value:function(e,t,n){var i=this._dataSource.getOriginalEditor(),r=this._dataSource.getModifiedEditor();return new De(e,t,n,i,r).getViewZones()}},{key:"_getOriginalEditorDecorations",value:function(e,t,n){var i,r=this._dataSource.getOriginalEditor(),o=String(this._removeColor),a={decorations:[],overviewZones:[]},s=r.getModel(),u=r._getViewModel(),c=(0,l.Z)(e);try{for(c.s();!(i=c.n()).done;){var d=i.value;if(Ae(d)){a.decorations.push({range:new Q.e(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824),options:n?Ee.lineDeleteWithSign:Ee.lineDelete}),Ie(d)&&d.charChanges||a.decorations.push(Le(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824,Ee.charDeleteWholeLine));var h=Re(s,u,d.originalStartLineNumber,d.originalEndLineNumber);if(a.overviewZones.push(new ne.EY(h.startLineNumber,h.endLineNumber,o)),d.charChanges){var f,p=(0,l.Z)(d.charChanges);try{for(p.s();!(f=p.n()).done;){var v=f.value;if(Ae(v))if(t)for(var g=v.originalStartLineNumber;g<=v.originalEndLineNumber;g++){var m=void 0,_=void 0;m=g===v.originalStartLineNumber?v.originalStartColumn:s.getLineFirstNonWhitespaceColumn(g),_=g===v.originalEndLineNumber?v.originalEndColumn:s.getLineLastNonWhitespaceColumn(g),a.decorations.push(Le(g,m,g,_,Ee.charDelete))}else a.decorations.push(Le(v.originalStartLineNumber,v.originalStartColumn,v.originalEndLineNumber,v.originalEndColumn,Ee.charDelete))}}catch(y){p.e(y)}finally{p.f()}}}}}catch(y){c.e(y)}finally{c.f()}return a}},{key:"_getModifiedEditorDecorations",value:function(e,t,n){var i,r=this._dataSource.getModifiedEditor(),o=String(this._insertColor),a={decorations:[],overviewZones:[]},s=r.getModel(),u=r._getViewModel(),c=(0,l.Z)(e);try{for(c.s();!(i=c.n()).done;){var d=i.value;if(Ie(d)){a.decorations.push({range:new Q.e(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?Ee.lineInsertWithSign:Ee.lineInsert}),Ae(d)&&d.charChanges||a.decorations.push(Le(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,Ee.charInsertWholeLine));var h=Re(s,u,d.modifiedStartLineNumber,d.modifiedEndLineNumber);if(a.overviewZones.push(new ne.EY(h.startLineNumber,h.endLineNumber,o)),d.charChanges){var f,p=(0,l.Z)(d.charChanges);try{for(p.s();!(f=p.n()).done;){var v=f.value;if(Ie(v))if(t)for(var g=v.modifiedStartLineNumber;g<=v.modifiedEndLineNumber;g++){var m=void 0,_=void 0;m=g===v.modifiedStartLineNumber?v.modifiedStartColumn:s.getLineFirstNonWhitespaceColumn(g),_=g===v.modifiedEndLineNumber?v.modifiedEndColumn:s.getLineLastNonWhitespaceColumn(g),a.decorations.push(Le(g,m,g,_,Ee.charInsert))}else a.decorations.push(Le(v.modifiedStartLineNumber,v.modifiedStartColumn,v.modifiedEndLineNumber,v.modifiedEndColumn,Ee.charInsert))}}catch(y){p.e(y)}finally{p.f()}}}}}catch(y){c.e(y)}finally{c.f()}return a}}]),n}(ke);Ne.MINIMUM_EDITOR_WIDTH=100;var De=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,o,a){return(0,c.Z)(this,n),t.call(this,e,i,r,o,a)}return(0,d.Z)(n,[{key:"_createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion",value:function(){return null}},{key:"_produceOriginalFromDiff",value:function(e,t,n){return n>t?{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n-t,domNode:null}:null}},{key:"_produceModifiedFromDiff",value:function(e,t,n){return t>n?{afterLineNumber:Math.max(e.modifiedStartLineNumber,e.modifiedEndLineNumber),heightInLines:t-n,domNode:null}:null}}]),n}(xe),Me=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e))._decorationsLeft=e.getOriginalEditor().getLayoutInfo().decorationsLeft,r._register(e.getOriginalEditor().onDidLayoutChange((function(t){r._decorationsLeft!==t.decorationsLeft&&(r._decorationsLeft=t.decorationsLeft,e.relayoutEditors())}))),r}return(0,d.Z)(n,[{key:"setEnableSplitViewResizing",value:function(e){}},{key:"_getViewZones",value:function(e,t,n,i){var r=this._dataSource.getOriginalEditor(),o=this._dataSource.getModifiedEditor();return new Te(e,t,n,r,o,i).getViewZones()}},{key:"_getOriginalEditorDecorations",value:function(e,t,n){var i,r=String(this._removeColor),o={decorations:[],overviewZones:[]},a=this._dataSource.getOriginalEditor(),s=a.getModel(),u=a._getViewModel(),c=(0,l.Z)(e);try{for(c.s();!(i=c.n()).done;){var d=i.value;if(Ae(d)){o.decorations.push({range:new Q.e(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824),options:Ee.lineDeleteMargin});var h=Re(s,u,d.originalStartLineNumber,d.originalEndLineNumber);o.overviewZones.push(new ne.EY(h.startLineNumber,h.endLineNumber,r))}}}catch(f){c.e(f)}finally{c.f()}return o}},{key:"_getModifiedEditorDecorations",value:function(e,t,n){var i,r=this._dataSource.getModifiedEditor(),o=String(this._insertColor),a={decorations:[],overviewZones:[]},s=r.getModel(),u=r._getViewModel(),c=(0,l.Z)(e);try{for(c.s();!(i=c.n()).done;){var d=i.value;if(Ie(d)){a.decorations.push({range:new Q.e(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?Ee.lineInsertWithSign:Ee.lineInsert});var h=Re(s,u,d.modifiedStartLineNumber,d.modifiedEndLineNumber);if(a.overviewZones.push(new ne.EY(h.startLineNumber,h.endLineNumber,o)),d.charChanges){var f,p=(0,l.Z)(d.charChanges);try{for(p.s();!(f=p.n()).done;){var v=f.value;if(Ie(v))if(t)for(var g=v.modifiedStartLineNumber;g<=v.modifiedEndLineNumber;g++){var m=void 0,_=void 0;m=g===v.modifiedStartLineNumber?v.modifiedStartColumn:s.getLineFirstNonWhitespaceColumn(g),_=g===v.modifiedEndLineNumber?v.modifiedEndColumn:s.getLineLastNonWhitespaceColumn(g),a.decorations.push(Le(g,m,g,_,Ee.charInsert))}else a.decorations.push(Le(v.modifiedStartLineNumber,v.modifiedStartColumn,v.modifiedEndLineNumber,v.modifiedEndColumn,Ee.charInsert))}}catch(y){p.e(y)}finally{p.f()}}else a.decorations.push(Le(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,Ee.charInsertWholeLine))}}}catch(y){c.e(y)}finally{c.f()}return a}},{key:"layout",value:function(){return Math.max(5,this._decorationsLeft)}}]),n}(ke),Te=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,o,a,s){var u;return(0,c.Z)(this,n),(u=t.call(this,e,i,r,o,a))._originalModel=o.getModel(),u._renderIndicators=s,u._pendingLineChange=[],u._pendingViewZones=[],u._lineBreaksComputer=u._modifiedEditor._getViewModel().createLineBreaksComputer(),u}return(0,d.Z)(n,[{key:"getViewZones",value:function(){var e=(0,o.Z)((0,a.Z)(n.prototype),"getViewZones",this).call(this);return this._finalize(e),e}},{key:"_createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion",value:function(){var e=document.createElement("div");return e.className="inline-added-margin-view-zone",e}},{key:"_produceOriginalFromDiff",value:function(e,t,n){var i=document.createElement("div");return i.className="inline-added-margin-view-zone",{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n,domNode:document.createElement("div"),marginDomNode:i}}},{key:"_produceModifiedFromDiff",value:function(e,t,n){var i=document.createElement("div");i.className="view-lines line-delete ".concat(pe.S);var r=document.createElement("div");r.className="inline-deleted-margin-view-zone";for(var o={shouldNotShrink:!0,afterLineNumber:0===e.modifiedEndLineNumber?e.modifiedStartLineNumber:e.modifiedStartLineNumber-1,heightInLines:t,minWidthInPx:0,domNode:i,marginDomNode:r,diff:{originalStartLineNumber:e.originalStartLineNumber,originalEndLineNumber:e.originalEndLineNumber,modifiedStartLineNumber:e.modifiedStartLineNumber,modifiedEndLineNumber:e.modifiedEndLineNumber,originalModel:this._originalModel,viewLineCounts:null}},a=e.originalStartLineNumber;a<=e.originalEndLineNumber;a++)this._lineBreaksComputer.addRequest(this._originalModel.getLineContent(a),null);return this._pendingLineChange.push(e),this._pendingViewZones.push(o),o}},{key:"_finalize",value:function(e){for(var t=this._modifiedEditor.getOptions(),n=this._modifiedEditor.getModel().getOptions().tabSize,i=t.get(40),r=t.get(27),o=i.typicalHalfwidthCharacterWidth,a=t.get(90),s=this._originalModel.mightContainNonBasicASCII(),u=this._originalModel.mightContainRTL(),c=t.get(55),d=t.get(127).decorationsWidth,h=t.get(102),f=t.get(85),p=t.get(79),v=t.get(41),g=this._lineBreaksComputer.finalize(),m=0,_=0;_<this._pendingLineChange.length;_++){var b=this._pendingLineChange[_],w=this._pendingViewZones[_],C=w.domNode;y.V.applyFontInfoSlow(C,i);var k=w.marginDomNode;y.V.applyFontInfoSlow(k,i);var S=[];if(b.charChanges){var x,L=(0,l.Z)(b.charChanges);try{for(L.s();!(x=L.n()).done;){var E=x.value;Ae(E)&&S.push(new A.$t(new Q.e(E.originalStartLineNumber,E.originalStartColumn,E.originalEndLineNumber,E.originalEndColumn),"char-delete",0))}}catch($){L.e($)}finally{L.f()}}for(var N=S.length>0,D=(0,X.l$)(1e4),M=0,T=0,O=null,I=b.originalStartLineNumber;I<=b.originalEndLineNumber;I++){var P=I-b.originalStartLineNumber,R=this._originalModel.getLineTokens(I),Z=R.getLineContent(),F=g[m++],j=ie.Kp.filter(S,I,1,Z.length+1);if(F){var H,B=0,z=(0,l.Z)(F.breakOffsets);try{for(z.s();!(H=z.n()).done;){var W=H.value,V=R.sliceAndInflate(B,W,0),Y=Z.substring(B,W);M=Math.max(M,this._renderOriginalLine(T++,Y,V,ie.Kp.extractWrapped(j,B,W),N,s,u,i,r,c,d,h,f,p,v,n,D,k)),B=W}}catch($){z.e($)}finally{z.f()}for(O||(O=[]);O.length<P;)O[O.length]=1;O[P]=F.breakOffsets.length,w.heightInLines+=F.breakOffsets.length-1;var U=document.createElement("div");U.className="line-delete",e.original.push({afterLineNumber:I,afterColumn:0,heightInLines:F.breakOffsets.length-1,domNode:Pe(),marginDomNode:U})}else M=Math.max(M,this._renderOriginalLine(T++,Z,R,j,N,s,u,i,r,c,d,h,f,p,v,n,D,k))}M+=a;var K=D.build(),q=we?we.createHTML(K):K;if(C.innerHTML=q,w.minWidthInPx=M*o,O)for(var G=b.originalEndLineNumber-b.originalStartLineNumber;O.length<=G;)O[O.length]=1;w.diff.viewLineCounts=O}e.original.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber}))}},{key:"_renderOriginalLine",value:function(e,t,n,i,r,o,a,s,u,l,c,d,h,f,p,v,g,m){g.appendASCIIString('<div class="view-line'),r||g.appendASCIIString(" char-delete"),g.appendASCIIString('" style="top:'),g.appendASCIIString(String(e*l)),g.appendASCIIString('px;width:1000000px;">');var _=A.wA.isBasicASCII(t,o),y=A.wA.containsRTL(t,_,a),b=(0,I.d1)(new I.IJ(s.isMonospace&&!u,s.canUseHalfwidthRightwardsArrow,t,!1,_,y,0,n,i,v,0,s.spaceWidth,s.middotWidth,s.wsmiddotWidth,d,h,f,p!==D.n0.OFF,null),g);if(g.appendASCIIString("</div>"),this._renderIndicators){var w=document.createElement("div");w.className="delete-sign ".concat(Z.kS.asClassName(be)),w.setAttribute("style","position:absolute;top:".concat(e*l,"px;width:").concat(c,"px;height:").concat(l,"px;right:0;")),m.appendChild(w)}var C=b.characterMapping.getAbsoluteOffsets();return C.length>0?C[C.length-1]:0}}]),n}(xe);function Oe(e,t){return(0,D.NY)(e,t,["off","on","inherit"])}function Ie(e){return e.modifiedEndLineNumber>0}function Ae(e){return e.originalEndLineNumber>0}function Pe(){var e=document.createElement("div");return e.className="diagonal-fill",e}function Re(e,t,n,i){var r=e.getLineCount();return n=Math.min(r,Math.max(1,n)),i=Math.min(r,Math.max(1,i)),t.coordinatesConverter.convertModelRangeToViewRange(new Q.e(n,e.getLineMinColumn(n),i,e.getLineMaxColumn(i)))}(0,Z.Ic)((function(e,t){var n=e.getColor(R.yp);n&&(t.addRule(".monaco-editor .line-insert, .monaco-editor .char-insert { background-color: ".concat(n,"; }")),t.addRule(".monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: ".concat(n,"; }")),t.addRule(".monaco-editor .inline-added-margin-view-zone { background-color: ".concat(n,"; }")));var i=e.getColor(R.P4);i&&(t.addRule(".monaco-editor .line-delete, .monaco-editor .char-delete { background-color: ".concat(i,"; }")),t.addRule(".monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: ".concat(i,"; }")),t.addRule(".monaco-editor .inline-deleted-margin-view-zone { background-color: ".concat(i,"; }")));var r=e.getColor(R.XL);r&&t.addRule(".monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(r,"; }"));var o=e.getColor(R.mH);o&&t.addRule(".monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(o,"; }"));var a=e.getColor(R._w);a&&t.addRule(".monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px ".concat(a,"; }"));var s=e.getColor(R.LL);s&&t.addRule(".monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid ".concat(s,"; }"));var u=e.getColor(R.et);u&&t.addRule("\n\t\t\t.monaco-diff-editor .diffViewport {\n\t\t\t\tbackground: ".concat(u,";\n\t\t\t}\n\t\t"));var l=e.getColor(R.AB);l&&t.addRule("\n\t\t\t.monaco-diff-editor .diffViewport:hover {\n\t\t\t\tbackground: ".concat(l,";\n\t\t\t}\n\t\t"));var c=e.getColor(R.yn);c&&t.addRule("\n\t\t\t.monaco-diff-editor .diffViewport:active {\n\t\t\t\tbackground: ".concat(c,";\n\t\t\t}\n\t\t"));var d=e.getColor(R.L_);t.addRule("\n\t.monaco-editor .diagonal-fill {\n\t\tbackground-image: linear-gradient(\n\t\t\t-45deg,\n\t\t\t".concat(d," 12.5%,\n\t\t\t#0000 12.5%, #0000 50%,\n\t\t\t").concat(d," 50%, ").concat(d," 62.5%,\n\t\t\t#0000 62.5%, #0000 100%\n\t\t);\n\t\tbackground-size: 8px 8px;\n\t}\n\t"))}))},59180:function(e,t,n){"use strict";n.d(t,{F:function(){return v}});var i=n(15671),r=n(43144),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(96147),c=n(11732),d=n(81626),h=n(10405),f=n(67033),p={followsCaret:!0,ignoreCharChanges:!0,alwaysRevealFirst:!0},v=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,i.Z)(this,n),(r=t.call(this))._onDidUpdate=r._register(new c.Q5),r._editor=e,r._options=h.jB(o,p,!1),r.disposed=!1,r.nextIdx=-1,r.ranges=[],r.ignoreSelectionChange=!1,r.revealFirst=Boolean(r._options.alwaysRevealFirst),r._register(r._editor.onDidDispose((function(){return r.dispose()}))),r._register(r._editor.onDidUpdateDiff((function(){return r._onDiffUpdated()}))),r._options.followsCaret&&r._register(r._editor.getModifiedEditor().onDidChangeCursorPosition((function(e){r.ignoreSelectionChange||(r.nextIdx=-1)}))),r._options.alwaysRevealFirst&&r._register(r._editor.getModifiedEditor().onDidChangeModel((function(e){r.revealFirst=!0}))),r._init(),r}return(0,r.Z)(n,[{key:"_init",value:function(){this._editor.getLineChanges()}},{key:"_onDiffUpdated",value:function(){this._init(),this._compute(this._editor.getLineChanges()),this.revealFirst&&null!==this._editor.getLineChanges()&&(this.revealFirst=!1,this.nextIdx=-1,this.next(1))}},{key:"_compute",value:function(e){var t=this;this.ranges=[],e&&e.forEach((function(e){!t._options.ignoreCharChanges&&e.charChanges?e.charChanges.forEach((function(e){t.ranges.push({rhs:!0,range:new f.e(e.modifiedStartLineNumber,e.modifiedStartColumn,e.modifiedEndLineNumber,e.modifiedEndColumn)})})):t.ranges.push({rhs:!0,range:new f.e(e.modifiedStartLineNumber,1,e.modifiedStartLineNumber,1)})})),this.ranges.sort((function(e,t){return e.range.getStartPosition().isBeforeOrEqual(t.range.getStartPosition())?-1:t.range.getStartPosition().isBeforeOrEqual(e.range.getStartPosition())?1:0})),this._onDidUpdate.fire(this)}},{key:"_initIdx",value:function(e){var t=!1,n=this._editor.getPosition();if(n){for(var i=0,r=this.ranges.length;i<r&&!t;i++){var o=this.ranges[i].range;n.isBeforeOrEqual(o.getStartPosition())&&(this.nextIdx=i+(e?0:-1),t=!0)}t||(this.nextIdx=e?0:this.ranges.length-1),this.nextIdx<0&&(this.nextIdx=this.ranges.length-1)}else this.nextIdx=0}},{key:"_move",value:function(e,t){if(l.ok(!this.disposed,"Illegal State - diff navigator has been disposed"),this.canNavigate()){-1===this.nextIdx?this._initIdx(e):e?(this.nextIdx+=1,this.nextIdx>=this.ranges.length&&(this.nextIdx=0)):(this.nextIdx-=1,this.nextIdx<0&&(this.nextIdx=this.ranges.length-1));var n=this.ranges[this.nextIdx];this.ignoreSelectionChange=!0;try{var i=n.range.getStartPosition();this._editor.setPosition(i),this._editor.revealPositionInCenter(i,t)}finally{this.ignoreSelectionChange=!1}}}},{key:"canNavigate",value:function(){return this.ranges&&this.ranges.length>0}},{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this._move(!0,e)}},{key:"previous",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this._move(!1,e)}},{key:"dispose",value:function(){(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this),this.ranges=[],this.disposed=!0}}]),n}(d.JT)},97033:function(e,t,n){"use strict";n.d(t,{OY:function(){return s},Sj:function(){return u},T4:function(){return a},Uo:function(){return l},hP:function(){return c}});var i=n(15671),r=n(43144),o=n(74964),a=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,i.Z)(this,e),this._range=t,this._text=n,this.insertsAutoWhitespace=r}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return new o.Y(n.endLineNumber,n.endColumn,n.endLineNumber,n.endColumn)}}]),e}(),s=function(){function e(t,n){(0,i.Z)(this,e),this._range=t,this._text=n}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return new o.Y(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn)}}]),e}(),u=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,i.Z)(this,e),this._range=t,this._text=n,this.insertsAutoWhitespace=r}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return new o.Y(n.startLineNumber,n.startColumn,n.startLineNumber,n.startColumn)}}]),e}(),l=function(){function e(t,n,r,o){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];(0,i.Z)(this,e),this._range=t,this._text=n,this._columnDeltaOffset=o,this._lineNumberDeltaOffset=r,this.insertsAutoWhitespace=a}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return new o.Y(n.endLineNumber+this._lineNumberDeltaOffset,n.endColumn+this._columnDeltaOffset,n.endLineNumber+this._lineNumberDeltaOffset,n.endColumn+this._columnDeltaOffset)}}]),e}(),c=function(){function e(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];(0,i.Z)(this,e),this._range=t,this._text=n,this._initialSelection=r,this._forceMoveMarkers=o,this._selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this._selectionId)}}]),e}()},83:function(e,t,n){"use strict";n.d(t,{U:function(){return h}});var i=n(15671),r=n(43144),o=n(51747),a=n(16274),s=n(67033),u=n(74964),l=n(65262),c=Object.create(null);function d(e,t){if(t<=0)return"";c[e]||(c[e]=["",e]);for(var n=c[e],i=n.length;i<=t;i++)n[i]=n[i-1]+e;return n[t]}var h=function(){function e(t,n){(0,i.Z)(this,e),this._opts=n,this._selection=t,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}return(0,r.Z)(e,[{key:"_addEditOperation",value:function(e,t,n){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,n):e.addEditOperation(t,n)}},{key:"getEditOperations",value:function(t,n){var i=this._selection.startLineNumber,r=this._selection.endLineNumber;1===this._selection.endColumn&&i!==r&&(r-=1);var u=this._opts,c=u.tabSize,h=u.indentSize,f=u.insertSpaces,p=i===r;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(t.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0);for(var v=0,g=0,m=i;m<=r;m++,v=g){g=0;var _=t.getLineContent(m),y=o.LC(_);if((!this._opts.isUnshift||0!==_.length&&0!==y)&&(p||this._opts.isUnshift||0!==_.length)){if(-1===y&&(y=_.length),m>1)if(a.io.visibleColumnFromColumn(_,y+1,c)%h!==0&&t.isCheapToTokenize(m-1)){var b=l.zu.getEnterAction(this._opts.autoIndent,t,new s.e(m-1,t.getLineMaxColumn(m-1),m-1,t.getLineMaxColumn(m-1)));if(b){if(g=v,b.appendText)for(var w=0,C=b.appendText.length;w<C&&g<h&&32===b.appendText.charCodeAt(w);w++)g++;b.removeText&&(g=Math.max(0,g-b.removeText));for(var k=0;k<g&&(0!==y&&32===_.charCodeAt(y-1));k++)y--}}if(!this._opts.isUnshift||0!==y){var S=void 0;S=this._opts.isUnshift?e.unshiftIndent(_,y+1,c,h,f):e.shiftIndent(_,y+1,c,h,f),this._addEditOperation(n,new s.e(m,1,m,y+1),S),m!==i||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=this._selection.startColumn<=y+1)}}}}else{!this._opts.isUnshift&&this._selection.isEmpty()&&0===t.getLineLength(i)&&(this._useLastEditRangeForCursorEndPosition=!0);for(var x=f?d(" ",h):"\t",L=i;L<=r;L++){var E=t.getLineContent(L),N=o.LC(E);if((!this._opts.isUnshift||0!==E.length&&0!==N)&&((p||this._opts.isUnshift||0!==E.length)&&(-1===N&&(N=E.length),!this._opts.isUnshift||0!==N)))if(this._opts.isUnshift){N=Math.min(N,h);for(var D=0;D<N;D++){if(9===E.charCodeAt(D)){N=D+1;break}}this._addEditOperation(n,new s.e(L,1,L,N+1),"")}else this._addEditOperation(n,new s.e(L,1,L,1),x),L!==i||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=1===this._selection.startColumn)}}this._selectionId=n.trackSelection(this._selection)}},{key:"computeCursorState",value:function(e,t){if(this._useLastEditRangeForCursorEndPosition){var n=t.getInverseEditOperations()[0];return new u.Y(n.range.endLineNumber,n.range.endColumn,n.range.endLineNumber,n.range.endColumn)}var i=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){var r=this._selection.startColumn;return i.startColumn<=r?i:0===i.getDirection()?new u.Y(i.startLineNumber,r,i.endLineNumber,i.endColumn):new u.Y(i.endLineNumber,i.endColumn,i.startLineNumber,r)}return i}}],[{key:"unshiftIndent",value:function(e,t,n,i,r){var o=a.io.visibleColumnFromColumn(e,t,n);if(r){var s=d(" ",i);return d(s,a.io.prevIndentTabStop(o,i)/i)}return d("\t",a.io.prevRenderTabStop(o,n)/n)}},{key:"shiftIndent",value:function(e,t,n,i,r){var o=a.io.visibleColumnFromColumn(e,t,n);if(r){var s=d(" ",i);return d(s,a.io.nextIndentTabStop(o,i)/i)}return d("\t",a.io.nextRenderTabStop(o,n)/n)}}]),e}()},32995:function(e,t,n){"use strict";n.d(t,{Pe:function(){return F},ei:function(){return Z},fv:function(){return x},nG:function(){return y}});var i=n(60136),r=n(29388),o=n(37762),a=n(15671),s=n(43144),u=n(56345),l=n(11732),c=n(81626),d=n(10405),h=n(49396),f=n(76556),p=n(51164),v=n(28702),g=n(72885),m=n(38774),_=n(15723),y=new(function(){function e(){(0,a.Z)(this,e),this._tabFocus=!1,this._onDidChangeTabFocus=new l.Q5,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}return(0,s.Z)(e,[{key:"getTabFocusMode",value:function(){return this._tabFocus}},{key:"setTabFocusMode",value:function(e){this._tabFocus!==e&&(this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus))}}]),e}()),b=Object.hasOwnProperty,w=function(){function e(){(0,a.Z)(this,e),this._values=[]}return(0,s.Z)(e,[{key:"_read",value:function(e){return this._values[e]}},{key:"get",value:function(e){return this._values[e]}},{key:"_write",value:function(e,t){this._values[e]=t}}]),e}(),C=function(){function e(){(0,a.Z)(this,e),this._values=[]}return(0,s.Z)(e,[{key:"_read",value:function(e){return this._values[e]}},{key:"_write",value:function(e,t){this._values[e]=t}}]),e}(),k=function(){function e(){(0,a.Z)(this,e)}return(0,s.Z)(e,null,[{key:"readOptions",value:function(e){var t,n=e,i=new C,r=(0,o.Z)(f.Bc);try{for(r.s();!(t=r.n()).done;){var a=t.value,s="_never_"===a.name?void 0:n[a.name];i._write(a.id,s)}}catch(u){r.e(u)}finally{r.f()}return i}},{key:"validateOptions",value:function(e){var t,n=new f.hu,i=(0,o.Z)(f.Bc);try{for(i.s();!(t=i.n()).done;){var r=t.value;n._write(r.id,r.validate(e._read(r.id)))}}catch(a){i.e(a)}finally{i.f()}return n}},{key:"computeOptions",value:function(e,t){var n,i=new w,r=(0,o.Z)(f.Bc);try{for(r.s();!(n=r.n()).done;){var a=n.value;i._write(a.id,a.compute(t,i,e._read(a.id)))}}catch(s){r.e(s)}finally{r.f()}return i}},{key:"_deepEquals",value:function(t,n){if("object"!==typeof t||"object"!==typeof n)return t===n;if(Array.isArray(t)||Array.isArray(n))return!(!Array.isArray(t)||!Array.isArray(n))&&h.fS(t,n);for(var i in t)if(!e._deepEquals(t[i],n[i]))return!1;return!0}},{key:"checkEquals",value:function(t,n){var i,r=[],a=!1,s=(0,o.Z)(f.Bc);try{for(s.s();!(i=s.n()).done;){var u=i.value,l=!e._deepEquals(t._read(u.id),n._read(u.id));r[u.id]=l,l&&(a=!0)}}catch(c){s.e(c)}finally{s.f()}return a?new f.Bb(r):null}}]),e}();function S(e){var t=d.I8(e);return function(e){var t=e.wordWrap;!0===t?e.wordWrap="on":!1===t&&(e.wordWrap="off");var n=e.lineNumbers;!0===n?e.lineNumbers="on":!1===n&&(e.lineNumbers="off"),!1===e.autoClosingBrackets&&(e.autoClosingBrackets="never",e.autoClosingQuotes="never",e.autoSurround="never"),"visible"===e.cursorBlinking&&(e.cursorBlinking="solid");var i=e.renderWhitespace;!0===i?e.renderWhitespace="boundary":!1===i&&(e.renderWhitespace="none");var r=e.renderLineHighlight;!0===r?e.renderLineHighlight="line":!1===r&&(e.renderLineHighlight="none");var o=e.acceptSuggestionOnEnter;!0===o?e.acceptSuggestionOnEnter="on":!1===o&&(e.acceptSuggestionOnEnter="off");var a=e.tabCompletion;!1===a?e.tabCompletion="off":!0===a&&(e.tabCompletion="onlySnippets");var s=e.suggest;if(s&&"object"===typeof s.filteredTypes&&s.filteredTypes){var u={method:"showMethods",function:"showFunctions",constructor:"showConstructors",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};(0,_.E)(u,(function(e){var t=s.filteredTypes[e.key];!1===t&&(s[e.value]=t)}))}var l=e.hover;!0===l?e.hover={enabled:!0}:!1===l&&(e.hover={enabled:!1});var c=e.parameterHints;!0===c?e.parameterHints={enabled:!0}:!1===c&&(e.parameterHints={enabled:!1});var d=e.autoIndent;!0===d?e.autoIndent="full":!1===d&&(e.autoIndent="advanced");var h=e.matchBrackets;!0===h?e.matchBrackets="always":!1===h&&(e.matchBrackets="never")}(t),t}var x=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i){var r;return(0,a.Z)(this,n),(r=t.call(this))._onDidChange=r._register(new l.Q5),r.onDidChange=r._onDidChange.event,r._onDidChangeFast=r._register(new l.Q5),r.onDidChangeFast=r._onDidChangeFast.event,r.isSimpleWidget=e,r._isDominatedByLongLines=!1,r._computeOptionsMemory=new f.LJ,r._viewLineCount=1,r._lineNumbersDigitCount=1,r._rawOptions=S(i),r._readOptions=k.readOptions(r._rawOptions),r._validatedOptions=k.validateOptions(r._readOptions),r._register(p.C.onDidChangeZoomLevel((function(e){return r._recomputeOptions()}))),r._register(y.onDidChangeTabFocus((function(e){return r._recomputeOptions()}))),r}return(0,s.Z)(n,[{key:"observeReferenceElement",value:function(e){}},{key:"updatePixelRatio",value:function(){}},{key:"_recomputeOptions",value:function(){var e=this.options,t=this._computeInternalOptions();if(e){var n=k.checkEquals(e,t);if(null===n)return;this.options=t,this._onDidChangeFast.fire(n),this._onDidChange.fire(n)}else this.options=t}},{key:"getRawOptions",value:function(){return this._rawOptions}},{key:"_computeInternalOptions",value:function(){var e=this._getEnvConfiguration(),t=v.E4.createFromValidatedSettings(this._validatedOptions,e.zoomLevel,e.pixelRatio,this.isSimpleWidget),n={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,fontInfo:this.readConfiguration(t),extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:y.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport};return k.computeOptions(this._validatedOptions,n)}},{key:"updateOptions",value:function(e){if("undefined"!==typeof e){var t=S(e);n._subsetEquals(this._rawOptions,t)||(this._rawOptions=d.jB(this._rawOptions,t||{}),this._readOptions=k.readOptions(this._rawOptions),this._validatedOptions=k.validateOptions(this._readOptions),this._recomputeOptions())}}},{key:"setIsDominatedByLongLines",value:function(e){this._isDominatedByLongLines=e,this._recomputeOptions()}},{key:"setMaxLineNumber",value:function(e){var t=n._digitCount(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}},{key:"setViewLineCount",value:function(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}}],[{key:"_subsetEquals",value:function(e,t){for(var n in t)if(b.call(t,n)){var i=t[n],r=e[n];if(r===i)continue;if(Array.isArray(r)&&Array.isArray(i)){if(!h.fS(r,i))return!1;continue}if(r&&"object"===typeof r&&i&&"object"===typeof i){if(!this._subsetEquals(r,i))return!1;continue}return!1}return!0}},{key:"_digitCount",value:function(e){for(var t=0;e;)e=Math.floor(e/10),t++;return t||1}}]),n}(c.JT),L=Object.freeze({id:"editor",order:5,type:"object",title:u.N("editorConfigurationTitle","Editor"),scope:5}),E=m.B.as(g.IP.Configuration),N=Object.assign(Object.assign({},L),{properties:{"editor.tabSize":{type:"number",default:f.DB.tabSize,minimum:1,markdownDescription:u.N("tabSize","The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.")},"editor.insertSpaces":{type:"boolean",default:f.DB.insertSpaces,markdownDescription:u.N("insertSpaces","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.")},"editor.detectIndentation":{type:"boolean",default:f.DB.detectIndentation,markdownDescription:u.N("detectIndentation","Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.")},"editor.trimAutoWhitespace":{type:"boolean",default:f.DB.trimAutoWhitespace,description:u.N("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:f.DB.largeFileOptimizations,description:u.N("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{type:"boolean",default:!0,description:u.N("wordBasedSuggestions","Controls whether completions should be computed based on words in the document.")},"editor.wordBasedSuggestionsMode":{enum:["currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[u.N("wordBasedSuggestionsMode.currentDocument","Only suggest words from the active document."),u.N("wordBasedSuggestionsMode.matchingDocuments","Suggest words from all open documents of the same language."),u.N("wordBasedSuggestionsMode.allDocuments","Suggest words from all open documents.")],description:u.N("wordBasedSuggestionsMode","Controls from which documents word based completions are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[u.N("semanticHighlighting.true","Semantic highlighting enabled for all color themes."),u.N("semanticHighlighting.false","Semantic highlighting disabled for all color themes."),u.N("semanticHighlighting.configuredByTheme","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:u.N("semanticHighlighting.enabled","Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:u.N("stablePeek","Keep peek editors open even when double clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:u.N("maxTokenizationLineLength","Lines above this length will not be tokenized for performance reasons")},"diffEditor.maxComputationTime":{type:"number",default:5e3,description:u.N("maxComputationTime","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.renderSideBySide":{type:"boolean",default:!0,description:u.N("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:!0,description:u.N("ignoreTrimWhitespace","When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:!0,description:u.N("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:!1,description:u.N("codeLens","Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:"inherit",markdownEnumDescriptions:[u.N("wordWrap.off","Lines will never wrap."),u.N("wordWrap.on","Lines will wrap at the viewport width."),u.N("wordWrap.inherit","Lines will wrap according to the `#editor.wordWrap#` setting.")]}}});var D,M,T=(0,o.Z)(f.Bc);try{for(T.s();!(D=T.n()).done;){var O=D.value,I=O.schema;if("undefined"!==typeof I)if("undefined"!==typeof(M=I).type||"undefined"!==typeof M.anyOf)N.properties["editor.".concat(O.name)]=I;else for(var A in I)b.call(I,A)&&(N.properties[A]=I[A])}}catch(j){T.e(j)}finally{T.f()}var P=null;function R(){return null===P&&(P=Object.create(null),Object.keys(N.properties).forEach((function(e){P[e]=!0}))),P}function Z(e){return R()["editor.".concat(e)]||!1}function F(e){return R()["diffEditor.".concat(e)]||!1}E.registerConfiguration(N)},76556:function(e,t,n){"use strict";n.d(t,{$J:function(){return q},BH:function(){return ae},Bb:function(){return h},Bc:function(){return re},DB:function(){return ie},LJ:function(){return p},NY:function(){return k},O7:function(){return _},d2:function(){return L},gk:function(){return F},hL:function(){return ne},hu:function(){return f},n0:function(){return O},y0:function(){return d}});var i=n(37762),r=n(60136),o=n(29388),a=n(15671),s=n(43144),u=n(56345),l=n(30487),c=n(43717),d=8,h=function(){function e(t){(0,a.Z)(this,e),this._values=t}return(0,s.Z)(e,[{key:"hasChanged",value:function(e){return this._values[e]}}]),e}(),f=function(){function e(){(0,a.Z)(this,e),this._values=[]}return(0,s.Z)(e,[{key:"_read",value:function(e){return this._values[e]}},{key:"get",value:function(e){return this._values[e]}},{key:"_write",value:function(e,t){this._values[e]=t}}]),e}(),p=(0,s.Z)((function e(){(0,a.Z)(this,e),this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0})),v=function(){function e(t,n,i,r){(0,a.Z)(this,e),this.id=t,this.name=n,this.defaultValue=i,this.schema=r}return(0,s.Z)(e,[{key:"compute",value:function(e,t,n){return n}}]),e}(),g=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;(0,a.Z)(this,e),this.schema=void 0,this.id=t,this.name="_never_",this.defaultValue=void 0,this.deps=n}return(0,s.Z)(e,[{key:"validate",value:function(e){return this.defaultValue}}]),e}(),m=function(){function e(t,n,i,r){(0,a.Z)(this,e),this.id=t,this.name=n,this.defaultValue=i,this.schema=r}return(0,s.Z)(e,[{key:"validate",value:function(e){return"undefined"===typeof e?this.defaultValue:e}},{key:"compute",value:function(e,t,n){return n}}]),e}();function _(e,t){return"undefined"===typeof e?t:"false"!==e&&Boolean(e)}var y=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof o&&(o.type="boolean",o.default=r),t.call(this,e,i,r,o)}return(0,s.Z)(n,[{key:"validate",value:function(e){return _(e,this.defaultValue)}}]),n}(m),b=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o,s){var u,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof l&&(l.type="integer",l.default=r,l.minimum=o,l.maximum=s),(u=t.call(this,e,i,r,l)).minimum=o,u.maximum=s,u}return(0,s.Z)(n,[{key:"validate",value:function(e){return n.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}],[{key:"clampedInt",value:function(e,t,n,i){if("undefined"===typeof e)return t;var r=parseInt(e,10);return isNaN(r)?t:(r=Math.max(n,r),0|(r=Math.min(i,r)))}}]),n}(m),w=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o,s){var u;return(0,a.Z)(this,n),"undefined"!==typeof s&&(s.type="number",s.default=r),(u=t.call(this,e,i,r,s)).validationFn=o,u}return(0,s.Z)(n,[{key:"validate",value:function(e){return this.validationFn(n.float(e,this.defaultValue))}}],[{key:"clamp",value:function(e,t,n){return e<t?t:e>n?n:e}},{key:"float",value:function(e,t){if("number"===typeof e)return e;if("undefined"===typeof e)return t;var n=parseFloat(e);return isNaN(n)?t:n}}]),n}(m),C=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof o&&(o.type="string",o.default=r),t.call(this,e,i,r,o)}return(0,s.Z)(n,[{key:"validate",value:function(e){return n.string(e,this.defaultValue)}}],[{key:"string",value:function(e,t){return"string"!==typeof e?t:e}}]),n}(m);function k(e,t,n){return"string"!==typeof e||-1===n.indexOf(e)?t:e}var S=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o){var s,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof u&&(u.type="string",u.enum=o,u.default=r),(s=t.call(this,e,i,r,u))._allowedValues=o,s}return(0,s.Z)(n,[{key:"validate",value:function(e){return k(e,this.defaultValue,this._allowedValues)}}]),n}(m),x=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o,s,u){var l,c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:void 0;return(0,a.Z)(this,n),"undefined"!==typeof c&&(c.type="string",c.enum=s,c.default=o),(l=t.call(this,e,i,r,c))._allowedValues=s,l._convert=u,l}return(0,s.Z)(n,[{key:"validate",value:function(e){return"string"!==typeof e||-1===this._allowedValues.indexOf(e)?this.defaultValue:this._convert(e)}}]),n}(v);var L,E=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[u.N("accessibilitySupport.auto","The editor will use platform APIs to detect when a Screen Reader is attached."),u.N("accessibilitySupport.on","The editor will be permanently optimized for usage with a Screen Reader. Word wrapping will be disabled."),u.N("accessibilitySupport.off","The editor will never be optimized for usage with a Screen Reader.")],default:"auto",description:u.N("accessibilitySupport","Controls whether the editor should run in a mode where it is optimized for screen readers. Setting to on will disable word wrapping.")})}return(0,s.Z)(n,[{key:"validate",value:function(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}},{key:"compute",value:function(e,t,n){return 0===n?e.accessibilitySupport:n}}]),n}(v),N=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={insertSpace:!0,ignoreEmptyLines:!0};return t.call(this,17,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:u.N("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:u.N("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{insertSpace:_(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:_(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}]),n}(v);!function(e){e[e.Line=1]="Line",e[e.Block=2]="Block",e[e.Underline=3]="Underline",e[e.LineThin=4]="LineThin",e[e.BlockOutline=5]="BlockOutline",e[e.UnderlineThin=6]="UnderlineThin"}(L||(L={}));var D=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,124,[62,31])}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){var i=["monaco-editor"];return t.get(31)&&i.push(t.get(31)),e.extraEditorClassName&&i.push(e.extraEditorClassName),"default"===t.get(62)?i.push("mouse-default"):"copy"===t.get(62)&&i.push("mouse-copy"),t.get(97)&&i.push("showUnused"),t.get(122)&&i.push("showDeprecated"),i.join(" ")}}]),n}(g),M=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,30,"emptySelectionClipboard",!0,{description:u.N("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return n&&e.emptySelectionClipboard}}]),n}(y),T=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={cursorMoveOnType:!0,seedSearchStringFromSelection:!0,autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};return t.call(this,33,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:u.N("find.cursorMoveOnType","Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"boolean",default:e.seedSearchStringFromSelection,description:u.N("find.seedSearchStringFromSelection","Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:e.autoFindInSelection,enumDescriptions:[u.N("editor.find.autoFindInSelection.never","Never turn on Find in selection automatically (default)."),u.N("editor.find.autoFindInSelection.always","Always turn on Find in selection automatically."),u.N("editor.find.autoFindInSelection.multiline","Turn on Find in selection automatically when multiple lines of content are selected.")],description:u.N("find.autoFindInSelection","Controls the condition for turning on find in selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:u.N("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:l.dz},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:u.N("find.addExtraSpaceOnTop","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:e.loop,description:u.N("find.loop","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{cursorMoveOnType:_(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:_(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection),autoFindInSelection:"boolean"===typeof e.autoFindInSelection?e.autoFindInSelection?"always":"never":k(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:_(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:_(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:_(t.loop,this.defaultValue.loop)}}}]),n}(v),O=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,41,"fontLigatures",n.OFF,{anyOf:[{type:"boolean",description:u.N("fontLigatures","Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:u.N("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:u.N("fontLigaturesGeneral","Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}return(0,s.Z)(n,[{key:"validate",value:function(e){return"undefined"===typeof e?this.defaultValue:"string"===typeof e?"false"===e?n.OFF:"true"===e?n.ON:e:Boolean(e)?n.ON:n.OFF}}]),n}(v);O.OFF='"liga" off, "calt" off',O.ON='"liga" on, "calt" on';var I=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,40)}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return e.fontInfo}}]),n}(g),A=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,42,"fontSize",ne.fontSize,{type:"number",minimum:6,maximum:100,default:ne.fontSize,description:u.N("fontSize","Controls the font size in pixels.")})}return(0,s.Z)(n,[{key:"validate",value:function(e){var t=w.float(e,this.defaultValue);return 0===t?ne.fontSize:w.clamp(t,6,100)}},{key:"compute",value:function(e,t,n){return e.fontInfo.fontSize}}]),n}(m),P=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,43,"fontWeight",ne.fontWeight,{anyOf:[{type:"number",minimum:n.MINIMUM_VALUE,maximum:n.MAXIMUM_VALUE,errorMessage:u.N("fontWeightErrorMessage",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:n.SUGGESTION_VALUES}],default:ne.fontWeight,description:u.N("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}return(0,s.Z)(n,[{key:"validate",value:function(e){return"normal"===e||"bold"===e?e:String(b.clampedInt(e,ne.fontWeight,n.MINIMUM_VALUE,n.MAXIMUM_VALUE))}}]),n}(v);P.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],P.MINIMUM_VALUE=1,P.MAXIMUM_VALUE=1e3;var R=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},i={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[u.N("editor.gotoLocation.multiple.peek","Show peek view of the results (default)"),u.N("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a peek view"),u.N("editor.gotoLocation.multiple.goto","Go to the primary result and enable peek-less navigation to others")]},r=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];return t.call(this,47,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:u.N("editor.gotoLocation.multiple.deprecated","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":Object.assign({description:u.N("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleTypeDefinitions":Object.assign({description:u.N("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleDeclarations":Object.assign({description:u.N("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleImplementations":Object.assign({description:u.N("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.")},i),"editor.gotoLocation.multipleReferences":Object.assign({description:u.N("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist.")},i),"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:r,description:u.N("alternativeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:e.alternativeTypeDefinitionCommand,enum:r,description:u.N("alternativeTypeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:e.alternativeDeclarationCommand,enum:r,description:u.N("alternativeDeclarationCommand","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:e.alternativeImplementationCommand,enum:r,description:u.N("alternativeImplementationCommand","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:e.alternativeReferenceCommand,enum:r,description:u.N("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){var t,n,i,r,o;if(!e||"object"!==typeof e)return this.defaultValue;var a=e;return{multiple:k(a.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:null!==(t=a.multipleDefinitions)&&void 0!==t?t:k(a.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:null!==(n=a.multipleTypeDefinitions)&&void 0!==n?n:k(a.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:null!==(i=a.multipleDeclarations)&&void 0!==i?i:k(a.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:null!==(r=a.multipleImplementations)&&void 0!==r?r:k(a.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:null!==(o=a.multipleReferences)&&void 0!==o?o:k(a.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:C.string(a.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:C.string(a.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:C.string(a.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:C.string(a.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:C.string(a.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}]),n}(v),Z=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0,delay:300,sticky:!0};return t.call(this,50,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:u.N("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,description:u.N("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:u.N("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),delay:b.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:_(t.sticky,this.defaultValue.sticky)}}}]),n}(v),F=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,127,[46,54,35,61,89,56,57,91,114,117,118,119,2])}return(0,s.Z)(n,[{key:"compute",value:function(e,t,i){return n.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio})}}],[{key:"computeContainedMinimapLineCount",value:function(e){var t=e.height/e.lineHeight,n=e.scrollBeyondLastLine?t-1:0,i=(e.viewLineCount+n)/(e.pixelRatio*e.height);return{typicalViewportLineCount:t,extraLinesBeyondLastLine:n,desiredRatio:i,minimapLineCount:Math.floor(e.viewLineCount/i)}}},{key:"_computeMinimapLayout",value:function(e,t){var i=e.outerWidth,r=e.outerHeight,o=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(o*r),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:r};var a=t.stableMinimapLayoutInput,s=a&&e.outerHeight===a.outerHeight&&e.lineHeight===a.lineHeight&&e.typicalHalfwidthCharacterWidth===a.typicalHalfwidthCharacterWidth&&e.pixelRatio===a.pixelRatio&&e.scrollBeyondLastLine===a.scrollBeyondLastLine&&e.minimap.enabled===a.minimap.enabled&&e.minimap.side===a.minimap.side&&e.minimap.size===a.minimap.size&&e.minimap.showSlider===a.minimap.showSlider&&e.minimap.renderCharacters===a.minimap.renderCharacters&&e.minimap.maxColumn===a.minimap.maxColumn&&e.minimap.scale===a.minimap.scale&&e.verticalScrollbarWidth===a.verticalScrollbarWidth&&e.isViewportWrapping===a.isViewportWrapping,u=e.lineHeight,l=e.typicalHalfwidthCharacterWidth,c=e.scrollBeyondLastLine,h=e.minimap.renderCharacters,f=o>=2?Math.round(2*e.minimap.scale):e.minimap.scale,p=e.minimap.maxColumn,v=e.minimap.size,g=e.minimap.side,m=e.verticalScrollbarWidth,_=e.viewLineCount,y=e.remainingWidth,b=e.isViewportWrapping,w=h?2:3,C=Math.floor(o*r),k=C/o,S=!1,x=!1,L=w*f,E=f/o,N=1;if("fill"===v||"fit"===v){var D=n.computeContainedMinimapLineCount({viewLineCount:_,scrollBeyondLastLine:c,height:r,lineHeight:u,pixelRatio:o}),M=D.typicalViewportLineCount,T=D.extraLinesBeyondLastLine,O=D.desiredRatio;if(_/D.minimapLineCount>1)S=!0,x=!0,L=1,E=(f=1)/o;else{var I=!1,A=f+1;if("fit"===v){var P=Math.ceil((_+T)*L);b&&s&&y<=t.stableFitRemainingWidth?(I=!0,A=t.stableFitMaxMinimapScale):(I=P>C,b&&I?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=y):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0))}if("fill"===v||I){S=!0;var R=f;L=Math.min(u*o,Math.max(1,Math.floor(1/O))),(f=Math.min(A,Math.max(1,Math.floor(L/w))))>R&&(N=Math.min(2,f/R)),E=f/o/N,C=Math.ceil(Math.max(M,_+T)*L),b&&I&&(t.stableFitMaxMinimapScale=f)}}}var Z=Math.floor(p*E),F=Math.min(Z,Math.max(0,Math.floor((y-m-2)*E/(l+E)))+d),j=Math.floor(o*F),H=j/o;return{renderMinimap:h?1:2,minimapLeft:"left"===g?0:i-F-m,minimapWidth:F,minimapHeightIsEditorHeight:S,minimapIsSampling:x,minimapScale:f,minimapLineHeight:L,minimapCanvasInnerWidth:j=Math.floor(j*N),minimapCanvasInnerHeight:C,minimapCanvasOuterWidth:H,minimapCanvasOuterHeight:k}}},{key:"computeLayout",value:function(e,t){var i,r=0|t.outerWidth,o=0|t.outerHeight,a=0|t.lineHeight,s=0|t.lineNumbersDigitCount,u=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,c=t.pixelRatio,d=t.viewLineCount,h=e.get(119),f="inherit"===h?e.get(118):h,v="inherit"===f?e.get(114):f,g=e.get(117),m=e.get(2),_=t.isDominatedByLongLines,y=e.get(46),w=0!==e.get(56).renderType,C=e.get(57),k=e.get(91),S=e.get(61),x=e.get(89),L=x.verticalScrollbarSize,E=x.verticalHasArrows,N=x.arrowSize,D=x.horizontalScrollbarSize,M=e.get(54),T=e.get(35);if("string"===typeof M&&/^\d+(\.\d+)?ch$/.test(M)){var O=parseFloat(M.substr(0,M.length-2));i=b.clampedInt(O*u,0,0,1e3)}else i=b.clampedInt(M,0,0,1e3);T&&(i+=16);var I=0;if(w){var A=Math.max(s,C);I=Math.round(A*l)}var P=0;y&&(P=a);var R=0,Z=R+P,F=Z+I,j=F+i,H=r-P-I-i,B=!1,z=!1,W=-1;2!==m&&("inherit"===f&&_?(B=!0,z=!0):"on"===v||"bounded"===v?z=!0:"wordWrapColumn"===v&&(W=g));var V=n._computeMinimapLayout({outerWidth:r,outerHeight:o,lineHeight:a,typicalHalfwidthCharacterWidth:u,pixelRatio:c,scrollBeyondLastLine:k,minimap:S,verticalScrollbarWidth:L,viewLineCount:d,remainingWidth:H,isViewportWrapping:z},t.memory||new p);0!==V.renderMinimap&&0===V.minimapLeft&&(R+=V.minimapWidth,Z+=V.minimapWidth,F+=V.minimapWidth,j+=V.minimapWidth);var Y=H-V.minimapWidth,U=Math.max(1,Math.floor((Y-L-2)/u)),K=E?N:0;return z&&(W=Math.max(1,U),"bounded"===v&&(W=Math.min(W,g))),{width:r,height:o,glyphMarginLeft:R,glyphMarginWidth:P,lineNumbersLeft:Z,lineNumbersWidth:I,decorationsLeft:F,decorationsWidth:i,contentLeft:j,contentWidth:Y,minimap:V,viewportColumn:U,isWordWrapMinified:B,isViewportWrapping:z,wrappingColumn:W,verticalScrollbarWidth:L,horizontalScrollbarHeight:D,overviewRuler:{top:K,width:L,height:o-2*K,right:0}}}}]),n}(g),j=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0};return t.call(this,53,"lightbulb",e,{"editor.lightbulb.enabled":{type:"boolean",default:e.enabled,description:u.N("codeActions","Enables the code action lightbulb in the editor.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){return e&&"object"===typeof e?{enabled:_(e.enabled,this.defaultValue.enabled)}:this.defaultValue}}]),n}(v),H=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0,fontSize:0,fontFamily:ne.fontFamily};return t.call(this,123,"inlineHints",e,{"editor.inlineHints.enabled":{type:"boolean",default:e.enabled,description:u.N("inlineHints.enable","Enables the inline hints in the editor.")},"editor.inlineHints.fontSize":{type:"number",default:e.fontSize,description:u.N("inlineHints.fontSize","Controls font size of inline hints in the editor. When set to `0`, the 90% of `#editor.fontSize#` is used.")},"editor.inlineHints.fontFamily":{type:"string",default:e.fontFamily,description:u.N("inlineHints.fontFamily","Controls font family of inline hints in the editor.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),fontSize:b.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:C.string(t.fontFamily,this.defaultValue.fontFamily)}}}]),n}(v),B=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,55,"lineHeight",ne.lineHeight,0,150,{description:u.N("lineHeight","Controls the line height. Use 0 to compute the line height from the font size.")})}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return e.fontInfo.lineHeight}}]),n}(b),z=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",renderCharacters:!0,maxColumn:120,scale:1};return t.call(this,61,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:u.N("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[u.N("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),u.N("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),u.N("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:u.N("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:u.N("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:u.N("minimap.showSlider","Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:u.N("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:u.N("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:u.N("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),size:k(t.size,this.defaultValue.size,["proportional","fill","fit"]),side:k(t.side,this.defaultValue.side,["right","left"]),showSlider:k(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:_(t.renderCharacters,this.defaultValue.renderCharacters),scale:b.clampedInt(t.scale,1,1,3),maxColumn:b.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}]),n}(v);var W=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,71,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:u.N("padding.top","Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:u.N("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{top:b.clampedInt(t.top,0,0,1e3),bottom:b.clampedInt(t.bottom,0,0,1e3)}}}]),n}(v),V=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={enabled:!0,cycle:!1};return t.call(this,72,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:u.N("parameterHints.enabled","Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:u.N("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),cycle:_(t.cycle,this.defaultValue.cycle)}}}]),n}(v),Y=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,125)}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return e.pixelRatio}}]),n}(g),U=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){var e;(0,a.Z)(this,n);var i={other:!0,comments:!1,strings:!1};return(e=t.call(this,75,"quickSuggestions",i,{anyOf:[{type:"boolean"},{type:"object",properties:{strings:{type:"boolean",default:i.strings,description:u.N("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{type:"boolean",default:i.comments,description:u.N("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{type:"boolean",default:i.other,description:u.N("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}}}],default:i,description:u.N("quickSuggestions","Controls whether suggestions should automatically show up while typing.")})).defaultValue=i,e}return(0,s.Z)(n,[{key:"validate",value:function(e){if("boolean"===typeof e)return e;if(e&&"object"===typeof e){var t=e,n={other:_(t.other,this.defaultValue.other),comments:_(t.comments,this.defaultValue.comments),strings:_(t.strings,this.defaultValue.strings)};return!!(n.other&&n.comments&&n.strings)||!!(n.other||n.comments||n.strings)&&n}return this.defaultValue}}]),n}(v),K=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,56,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[u.N("lineNumbers.off","Line numbers are not rendered."),u.N("lineNumbers.on","Line numbers are rendered as absolute number."),u.N("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),u.N("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:u.N("lineNumbers","Controls the display of line numbers.")})}return(0,s.Z)(n,[{key:"validate",value:function(e){var t=this.defaultValue.renderType,n=this.defaultValue.renderFn;return"undefined"!==typeof e&&("function"===typeof e?(t=4,n=e):t="interval"===e?3:"relative"===e?2:"on"===e?1:0),{renderType:t,renderFn:n}}}]),n}(v);function q(e){var t=e.get(84);return"editable"===t?e.get(77):"on"!==t}var G=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e=[],i={type:"number",description:u.N("rulers.size","Number of monospace characters at which this editor ruler will render.")};return t.call(this,88,"rulers",e,{type:"array",items:{anyOf:[i,{type:["object"],properties:{column:i,color:{type:"string",description:u.N("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:u.N("rulers","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(Array.isArray(e)){var t,n=[],r=(0,i.Z)(e);try{for(r.s();!(t=r.n()).done;){var o=t.value;if("number"===typeof o)n.push({column:b.clampedInt(o,0,0,1e4),color:null});else if(o&&"object"===typeof o){var a=o;n.push({column:b.clampedInt(a.column,0,0,1e4),color:a.color})}}}catch(s){r.e(s)}finally{r.f()}return n.sort((function(e,t){return e.column-t.column})),n}return this.defaultValue}}]),n}(v);function $(e,t){if("string"!==typeof e)return t;switch(e){case"hidden":return 2;case"visible":return 3;default:return 1}}var Q=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,89,"scrollbar",{vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e,n=b.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),i=b.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:b.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:$(t.vertical,this.defaultValue.vertical),horizontal:$(t.horizontal,this.defaultValue.horizontal),useShadows:_(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:_(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:_(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:_(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:_(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:n,horizontalSliderSize:b.clampedInt(t.horizontalSliderSize,n,0,1e3),verticalScrollbarSize:i,verticalSliderSize:b.clampedInt(t.verticalSliderSize,i,0,1e3),scrollByPage:_(t.scrollByPage,this.defaultValue.scrollByPage)}}}]),n}(v),X=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){(0,a.Z)(this,n);var e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!0,localityBonus:!1,shareSuggestSelections:!1,showIcons:!0,showStatusBar:!1,showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};return t.call(this,103,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[u.N("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),u.N("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:u.N("suggest.insertMode","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:e.filterGraceful,description:u.N("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:u.N("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:u.N("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:u.N("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:u.N("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:u.N("suggest.showStatusBar","Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:u.N("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:u.N("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:u.N("deprecated","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:u.N("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}return(0,s.Z)(n,[{key:"validate",value:function(e){if(!e||"object"!==typeof e)return this.defaultValue;var t=e;return{insertMode:k(t.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:_(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:_(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:_(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:_(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),showIcons:_(t.showIcons,this.defaultValue.showIcons),showStatusBar:_(t.showStatusBar,this.defaultValue.showStatusBar),showInlineDetails:_(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:_(t.showMethods,this.defaultValue.showMethods),showFunctions:_(t.showFunctions,this.defaultValue.showFunctions),showConstructors:_(t.showConstructors,this.defaultValue.showConstructors),showFields:_(t.showFields,this.defaultValue.showFields),showVariables:_(t.showVariables,this.defaultValue.showVariables),showClasses:_(t.showClasses,this.defaultValue.showClasses),showStructs:_(t.showStructs,this.defaultValue.showStructs),showInterfaces:_(t.showInterfaces,this.defaultValue.showInterfaces),showModules:_(t.showModules,this.defaultValue.showModules),showProperties:_(t.showProperties,this.defaultValue.showProperties),showEvents:_(t.showEvents,this.defaultValue.showEvents),showOperators:_(t.showOperators,this.defaultValue.showOperators),showUnits:_(t.showUnits,this.defaultValue.showUnits),showValues:_(t.showValues,this.defaultValue.showValues),showConstants:_(t.showConstants,this.defaultValue.showConstants),showEnums:_(t.showEnums,this.defaultValue.showEnums),showEnumMembers:_(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:_(t.showKeywords,this.defaultValue.showKeywords),showWords:_(t.showWords,this.defaultValue.showWords),showColors:_(t.showColors,this.defaultValue.showColors),showFiles:_(t.showFiles,this.defaultValue.showFiles),showReferences:_(t.showReferences,this.defaultValue.showReferences),showFolders:_(t.showFolders,this.defaultValue.showFolders),showTypeParameters:_(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:_(t.showSnippets,this.defaultValue.showSnippets),showUsers:_(t.showUsers,this.defaultValue.showUsers),showIssues:_(t.showIssues,this.defaultValue.showIssues)}}}]),n}(v),J=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,99,"smartSelect",{selectLeadingAndTrailingWhitespace:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:u.N("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"}})}return(0,s.Z)(n,[{key:"validate",value:function(e){return e&&"object"===typeof e?{selectLeadingAndTrailingWhitespace:_(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace)}:this.defaultValue}}]),n}(v),ee=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,126,[77])}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){return!!t.get(77)||e.tabFocusMode}}]),n}(g);var te=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,a.Z)(this,n),t.call(this,128,[127])}return(0,s.Z)(n,[{key:"compute",value:function(e,t,n){var i=t.get(127);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:i.isWordWrapMinified,isViewportWrapping:i.isViewportWrapping,wrappingColumn:i.wrappingColumn}}}]),n}(g),ne={fontFamily:l.dz?"Menlo, Monaco, 'Courier New', monospace":l.IJ?"'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:l.dz?12:14,lineHeight:0,letterSpacing:0},ie={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0},re=[];function oe(e){return re[e.id]=e,e}var ae={acceptSuggestionOnCommitCharacter:oe(new y(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:u.N("acceptSuggestionOnCommitCharacter","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:oe(new S(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",u.N("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:u.N("acceptSuggestionOnEnter","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:oe(new E),accessibilityPageSize:oe(new b(3,"accessibilityPageSize",10,1,1073741824,{description:u.N("accessibilityPageSize","Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.")})),ariaLabel:oe(new C(4,"ariaLabel",u.N("editorViewAccessibleLabel","Editor content"))),autoClosingBrackets:oe(new S(5,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",u.N("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),u.N("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:u.N("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingDelete:oe(new S(6,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",u.N("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:u.N("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:oe(new S(7,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",u.N("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:u.N("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:oe(new S(8,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",u.N("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),u.N("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:u.N("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:oe(new x(9,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],(function(e){switch(e){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}),{enumDescriptions:[u.N("editor.autoIndent.none","The editor will not insert indentation automatically."),u.N("editor.autoIndent.keep","The editor will keep the current line's indentation."),u.N("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),u.N("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),u.N("editor.autoIndent.full","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:u.N("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:oe(new y(10,"automaticLayout",!1)),autoSurround:oe(new S(11,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[u.N("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),u.N("editor.autoSurround.quotes","Surround with quotes but not brackets."),u.N("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:u.N("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),stickyTabStops:oe(new y(101,"stickyTabStops",!1,{description:u.N("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:oe(new y(12,"codeLens",!0,{description:u.N("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:oe(new C(13,"codeLensFontFamily","",{description:u.N("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:oe(new b(14,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,description:u.N("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to `0`, the 90% of `#editor.fontSize#` is used.")})),colorDecorators:oe(new y(15,"colorDecorators",!0,{description:u.N("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),columnSelection:oe(new y(16,"columnSelection",!1,{description:u.N("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:oe(new N),contextmenu:oe(new y(18,"contextmenu",!0)),copyWithSyntaxHighlighting:oe(new y(19,"copyWithSyntaxHighlighting",!0,{description:u.N("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:oe(new x(20,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],(function(e){switch(e){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}),{description:u.N("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:oe(new y(21,"cursorSmoothCaretAnimation",!1,{description:u.N("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:oe(new x(22,"cursorStyle",L.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],(function(e){switch(e){case"line":return L.Line;case"block":return L.Block;case"underline":return L.Underline;case"line-thin":return L.LineThin;case"block-outline":return L.BlockOutline;case"underline-thin":return L.UnderlineThin}}),{description:u.N("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:oe(new b(23,"cursorSurroundingLines",0,0,1073741824,{description:u.N("cursorSurroundingLines","Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:oe(new S(24,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[u.N("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),u.N("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],description:u.N("cursorSurroundingLinesStyle","Controls when `cursorSurroundingLines` should be enforced.")})),cursorWidth:oe(new b(25,"cursorWidth",0,0,1073741824,{markdownDescription:u.N("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:oe(new y(26,"disableLayerHinting",!1)),disableMonospaceOptimizations:oe(new y(27,"disableMonospaceOptimizations",!1)),domReadOnly:oe(new y(28,"domReadOnly",!1)),dragAndDrop:oe(new y(29,"dragAndDrop",!0,{description:u.N("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:oe(new M),extraEditorClassName:oe(new C(31,"extraEditorClassName","")),fastScrollSensitivity:oe(new w(32,"fastScrollSensitivity",5,(function(e){return e<=0?5:e}),{markdownDescription:u.N("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:oe(new T),fixedOverflowWidgets:oe(new y(34,"fixedOverflowWidgets",!1)),folding:oe(new y(35,"folding",!0,{description:u.N("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:oe(new S(36,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[u.N("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),u.N("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:u.N("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:oe(new y(37,"foldingHighlight",!0,{description:u.N("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),unfoldOnClickAfterEndOfLine:oe(new y(38,"unfoldOnClickAfterEndOfLine",!1,{description:u.N("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:oe(new C(39,"fontFamily",ne.fontFamily,{description:u.N("fontFamily","Controls the font family.")})),fontInfo:oe(new I),fontLigatures2:oe(new O),fontSize:oe(new A),fontWeight:oe(new P),formatOnPaste:oe(new y(44,"formatOnPaste",!1,{description:u.N("formatOnPaste","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:oe(new y(45,"formatOnType",!1,{description:u.N("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:oe(new y(46,"glyphMargin",!0,{description:u.N("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:oe(new R),hideCursorInOverviewRuler:oe(new y(48,"hideCursorInOverviewRuler",!1,{description:u.N("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),highlightActiveIndentGuide:oe(new y(49,"highlightActiveIndentGuide",!0,{description:u.N("highlightActiveIndentGuide","Controls whether the editor should highlight the active indent guide.")})),hover:oe(new Z),inDiffEditor:oe(new y(51,"inDiffEditor",!1)),letterSpacing:oe(new w(52,"letterSpacing",ne.letterSpacing,(function(e){return w.clamp(e,-5,20)}),{description:u.N("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:oe(new j),lineDecorationsWidth:oe(new m(54,"lineDecorationsWidth",10)),lineHeight:oe(new B),lineNumbers:oe(new K),lineNumbersMinChars:oe(new b(57,"lineNumbersMinChars",5,1,300)),linkedEditing:oe(new y(58,"linkedEditing",!1,{description:u.N("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols, e.g. HTML tags, are updated while editing.")})),links:oe(new y(59,"links",!0,{description:u.N("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:oe(new S(60,"matchBrackets","always",["always","near","never"],{description:u.N("matchBrackets","Highlight matching brackets.")})),minimap:oe(new z),mouseStyle:oe(new S(62,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:oe(new w(63,"mouseWheelScrollSensitivity",1,(function(e){return 0===e?1:e}),{markdownDescription:u.N("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:oe(new y(64,"mouseWheelZoom",!1,{markdownDescription:u.N("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:oe(new y(65,"multiCursorMergeOverlapping",!0,{description:u.N("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:oe(new x(66,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],(function(e){return"ctrlCmd"===e?l.dz?"metaKey":"ctrlKey":"altKey"}),{markdownEnumDescriptions:[u.N("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),u.N("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:u.N({key:"multiCursorModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:oe(new S(67,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[u.N("multiCursorPaste.spread","Each cursor pastes a single line of the text."),u.N("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:u.N("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),occurrencesHighlight:oe(new y(68,"occurrencesHighlight",!0,{description:u.N("occurrencesHighlight","Controls whether the editor should highlight semantic symbol occurrences.")})),overviewRulerBorder:oe(new y(69,"overviewRulerBorder",!0,{description:u.N("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:oe(new b(70,"overviewRulerLanes",3,0,3)),padding:oe(new W),parameterHints:oe(new V),peekWidgetDefaultFocus:oe(new S(73,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[u.N("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),u.N("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:u.N("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:oe(new y(74,"definitionLinkOpensInPeek",!1,{description:u.N("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:oe(new U),quickSuggestionsDelay:oe(new b(76,"quickSuggestionsDelay",10,0,1073741824,{description:u.N("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:oe(new y(77,"readOnly",!1)),renameOnType:oe(new y(78,"renameOnType",!1,{description:u.N("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:u.N("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:oe(new y(79,"renderControlCharacters",!1,{description:u.N("renderControlCharacters","Controls whether the editor should render control characters.")})),renderIndentGuides:oe(new y(80,"renderIndentGuides",!0,{description:u.N("renderIndentGuides","Controls whether the editor should render indent guides.")})),renderFinalNewline:oe(new y(81,"renderFinalNewline",!0,{description:u.N("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:oe(new S(82,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",u.N("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:u.N("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:oe(new y(83,"renderLineHighlightOnlyWhenFocus",!1,{description:u.N("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:oe(new S(84,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:oe(new S(85,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",u.N("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),u.N("renderWhitespace.selection","Render whitespace characters only on selected text."),u.N("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:u.N("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:oe(new b(86,"revealHorizontalRightPadding",30,0,1e3)),roundedSelection:oe(new y(87,"roundedSelection",!0,{description:u.N("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:oe(new G),scrollbar:oe(new Q),scrollBeyondLastColumn:oe(new b(90,"scrollBeyondLastColumn",5,0,1073741824,{description:u.N("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:oe(new y(91,"scrollBeyondLastLine",!0,{description:u.N("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:oe(new y(92,"scrollPredominantAxis",!0,{description:u.N("scrollPredominantAxis","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:oe(new y(93,"selectionClipboard",!0,{description:u.N("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:l.IJ})),selectionHighlight:oe(new y(94,"selectionHighlight",!0,{description:u.N("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:oe(new y(95,"selectOnLineNumbers",!0)),showFoldingControls:oe(new S(96,"showFoldingControls","mouseover",["always","mouseover"],{enumDescriptions:[u.N("showFoldingControls.always","Always show the folding controls."),u.N("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:u.N("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:oe(new y(97,"showUnused",!0,{description:u.N("showUnused","Controls fading out of unused code.")})),showDeprecated:oe(new y(122,"showDeprecated",!0,{description:u.N("showDeprecated","Controls strikethrough deprecated variables.")})),inlineHints:oe(new H),snippetSuggestions:oe(new S(98,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[u.N("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),u.N("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),u.N("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),u.N("snippetSuggestions.none","Do not show snippet suggestions.")],description:u.N("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:oe(new J),smoothScrolling:oe(new y(100,"smoothScrolling",!1,{description:u.N("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:oe(new b(102,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:oe(new X),suggestFontSize:oe(new b(104,"suggestFontSize",0,0,1e3,{markdownDescription:u.N("suggestFontSize","Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.")})),suggestLineHeight:oe(new b(105,"suggestLineHeight",0,0,1e3,{markdownDescription:u.N("suggestLineHeight","Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used. The minimum value is 8.")})),suggestOnTriggerCharacters:oe(new y(106,"suggestOnTriggerCharacters",!0,{description:u.N("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:oe(new S(107,"suggestSelection","recentlyUsed",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[u.N("suggestSelection.first","Always select the first suggestion."),u.N("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),u.N("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:u.N("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:oe(new S(108,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[u.N("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),u.N("tabCompletion.off","Disable tab completions."),u.N("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:u.N("tabCompletion","Enables tab completions.")})),tabIndex:oe(new b(109,"tabIndex",0,-1,1073741824)),unusualLineTerminators:oe(new S(110,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[u.N("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),u.N("unusualLineTerminators.off","Unusual line terminators are ignored."),u.N("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:u.N("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:oe(new y(111,"useShadowDOM",!0)),useTabStops:oe(new y(112,"useTabStops",!0,{description:u.N("useTabStops","Inserting and deleting whitespace follows tab stops.")})),wordSeparators:oe(new C(113,"wordSeparators",c.vu,{description:u.N("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:oe(new S(114,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[u.N("wordWrap.off","Lines will never wrap."),u.N("wordWrap.on","Lines will wrap at the viewport width."),u.N({key:"wordWrap.wordWrapColumn",comment:["- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at `#editor.wordWrapColumn#`."),u.N({key:"wordWrap.bounded",comment:["- viewport means the edge of the visible window size.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:u.N({key:"wordWrap",comment:["- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:oe(new C(115,"wordWrapBreakAfterCharacters"," \t})]?|/&.,;\xa2\xb0\u2032\u2033\u2030\u2103\u3001\u3002\uff61\uff64\uffe0\uff0c\uff0e\uff1a\uff1b\uff1f\uff01\uff05\u30fb\uff65\u309d\u309e\u30fd\u30fe\u30fc\u30a1\u30a3\u30a5\u30a7\u30a9\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u31f0\u31f1\u31f2\u31f3\u31f4\u31f5\u31f6\u31f7\u31f8\u31f9\u31fa\u31fb\u31fc\u31fd\u31fe\u31ff\u3005\u303b\uff67\uff68\uff69\uff6a\uff6b\uff6c\uff6d\uff6e\uff6f\uff70\u201d\u3009\u300b\u300d\u300f\u3011\u3015\uff09\uff3d\uff5d\uff63")),wordWrapBreakBeforeCharacters:oe(new C(116,"wordWrapBreakBeforeCharacters","([{\u2018\u201c\u3008\u300a\u300c\u300e\u3010\u3014\uff08\uff3b\uff5b\uff62\xa3\xa5\uff04\uffe1\uffe5+\uff0b")),wordWrapColumn:oe(new b(117,"wordWrapColumn",80,1,1073741824,{markdownDescription:u.N({key:"wordWrapColumn",comment:["- `editor.wordWrap` refers to a different setting and should not be localized.","- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized."]},"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:oe(new S(118,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:oe(new S(119,"wordWrapOverride2","inherit",["off","on","inherit"])),wrappingIndent:oe(new x(120,"wrappingIndent",1,"same",["none","same","indent","deepIndent"],(function(e){switch(e){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}}),{enumDescriptions:[u.N("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),u.N("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),u.N("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),u.N("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:u.N("wrappingIndent","Controls the indentation of wrapped lines.")})),wrappingStrategy:oe(new S(121,"wrappingStrategy","simple",["simple","advanced"],{enumDescriptions:[u.N("wrappingStrategy.simple","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),u.N("wrappingStrategy.advanced","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],description:u.N("wrappingStrategy","Controls the algorithm that computes wrapping points.")})),editorClassName:oe(new D),pixelRatio:oe(new Y),tabFocusMode:oe(new ee),layoutInfo:oe(new F),wrappingInfo:oe(new te)}},51164:function(e,t,n){"use strict";n.d(t,{C:function(){return a}});var i=n(15671),r=n(43144),o=n(11732),a=new(function(){function e(){(0,i.Z)(this,e),this._zoomLevel=0,this._onDidChangeZoomLevel=new o.Q5,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}return(0,r.Z)(e,[{key:"getZoomLevel",value:function(){return this._zoomLevel}},{key:"setZoomLevel",value:function(e){e=Math.min(Math.max(-5,e),20),this._zoomLevel!==e&&(this._zoomLevel=e,this._onDidChangeZoomLevel.fire(this._zoomLevel))}}]),e}())},28702:function(e,t,n){"use strict";n.d(t,{E4:function(){return c},pR:function(){return h}});var i=n(60136),r=n(29388),o=n(15671),a=n(43144),s=n(30487),u=n(51164),l=s.dz?1.5:1.35,c=function(){function e(t){(0,o.Z)(this,e),this.zoomLevel=t.zoomLevel,this.pixelRatio=t.pixelRatio,this.fontFamily=String(t.fontFamily),this.fontWeight=String(t.fontWeight),this.fontSize=t.fontSize,this.fontFeatureSettings=t.fontFeatureSettings,this.lineHeight=0|t.lineHeight,this.letterSpacing=t.letterSpacing}return(0,a.Z)(e,[{key:"getId",value:function(){return this.zoomLevel+"-"+this.pixelRatio+"-"+this.fontFamily+"-"+this.fontWeight+"-"+this.fontSize+"-"+this.fontFeatureSettings+"-"+this.lineHeight+"-"+this.letterSpacing}},{key:"getMassagedFontFamily",value:function(){return/[,"']/.test(this.fontFamily)?this.fontFamily:/[+ ]/.test(this.fontFamily)?'"'.concat(this.fontFamily,'"'):this.fontFamily}}],[{key:"createFromValidatedSettings",value:function(t,n,i,r){var o=t.get(39),a=t.get(43),s=t.get(42),u=t.get(41),l=t.get(55),c=t.get(52);return e._create(o,a,s,u,l,c,n,i,r)}},{key:"_create",value:function(t,n,i,r,o,a,s,c,d){0===o?o=Math.round(l*i):o<8&&(o=8);var h=1+(d?0:.1*u.C.getZoomLevel());return new e({zoomLevel:s,pixelRatio:c,fontFamily:t,fontWeight:n,fontSize:i*=h,fontFeatureSettings:r,lineHeight:o*=h,letterSpacing:a})}}]),e}(),d=1,h=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i){var r;return(0,o.Z)(this,n),(r=t.call(this,e)).version=d,r.isTrusted=i,r.isMonospace=e.isMonospace,r.typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,r.typicalFullwidthCharacterWidth=e.typicalFullwidthCharacterWidth,r.canUseHalfwidthRightwardsArrow=e.canUseHalfwidthRightwardsArrow,r.spaceWidth=e.spaceWidth,r.middotWidth=e.middotWidth,r.wsmiddotWidth=e.wsmiddotWidth,r.maxDigitWidth=e.maxDigitWidth,r}return(0,a.Z)(n,[{key:"equals",value:function(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.maxDigitWidth===e.maxDigitWidth}}]),n}(c)},86036:function(e,t,n){"use strict";n.d(t,{l:function(){return s}});var i=n(29439),r=n(15671),o=n(43144),a=n(16274),s=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"whitespaceVisibleColumn",value:function(e,t,n){for(var i=e.length,r=0,o=-1,s=-1,u=0;u<i;u++){if(u===t)return[o,s,r];switch(r%n===0&&(o=u,s=r),e.charCodeAt(u)){case 32:r+=1;break;case 9:r=a.io.nextRenderTabStop(r,n);break;default:return[-1,-1,-1]}}return t===i?[o,s,r]:[-1,-1,-1]}},{key:"atomicPosition",value:function(t,n,r,o){var s,u=t.length,l=e.whitespaceVisibleColumn(t,n,r),c=(0,i.Z)(l,3),d=c[0],h=c[1],f=c[2];if(-1===f)return-1;switch(o){case 0:s=!0;break;case 1:s=!1;break;case 2:if(f%r===0)return n;s=f%r<=r/2}if(s){if(-1===d)return-1;for(var p=h,v=d;v<u;++v){if(p===h+r)return d;switch(t.charCodeAt(v)){case 32:p+=1;break;case 9:p=a.io.nextRenderTabStop(p,r);break;default:return-1}}return p===h+r?d:-1}for(var g=a.io.nextRenderTabStop(f,r),m=f,_=n;_<u;_++){if(m===g)return _;switch(t.charCodeAt(_)){case 32:m+=1;break;case 9:m=a.io.nextRenderTabStop(m,r);break;default:return-1}}return m===g?u:-1}}]),e}()},16274:function(e,t,n){"use strict";n.d(t,{LM:function(){return g},LN:function(){return S},Tp:function(){return C},Vi:function(){return w},io:function(){return k},rS:function(){return m},zp:function(){return _}});var i=n(37762),r=n(15671),o=n(43144),a=n(8729),s=n(51747),u=n(67297),l=n(67033),c=n(74964),d=n(28893),h=n(65262),f=function(){return!0},p=function(){return!1},v=function(e){return" "===e||"\t"===e},g=function(){function e(t,n,o){(0,r.Z)(this,e),this._languageIdentifier=t;var a=o.options,s=a.get(127);this.readOnly=a.get(77),this.tabSize=n.tabSize,this.indentSize=n.indentSize,this.insertSpaces=n.insertSpaces,this.stickyTabStops=a.get(101),this.lineHeight=a.get(55),this.pageSize=Math.max(1,Math.floor(s.height/this.lineHeight)-2),this.useTabStops=a.get(112),this.wordSeparators=a.get(113),this.emptySelectionClipboard=a.get(30),this.copyWithSyntaxHighlighting=a.get(19),this.multiCursorMergeOverlapping=a.get(65),this.multiCursorPaste=a.get(67),this.autoClosingBrackets=a.get(5),this.autoClosingQuotes=a.get(8),this.autoClosingDelete=a.get(6),this.autoClosingOvertype=a.get(7),this.autoSurround=a.get(11),this.autoIndent=a.get(9),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:e._getShouldAutoClose(t,this.autoClosingQuotes),bracket:e._getShouldAutoClose(t,this.autoClosingBrackets)},this.autoClosingPairs=h.zu.getAutoClosingPairs(t.id);var u=e._getSurroundingPairs(t);if(u){var l,c=(0,i.Z)(u);try{for(c.s();!(l=c.n()).done;){var d=l.value;this.surroundingPairs[d.open]=d.close}}catch(f){c.e(f)}finally{c.f()}}}return(0,o.Z)(e,[{key:"electricChars",get:function(){if(!this._electricChars){this._electricChars={};var t=e._getElectricCharacters(this._languageIdentifier);if(t){var n,r=(0,i.Z)(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;this._electricChars[o]=!0}}catch(a){r.e(a)}finally{r.f()}}}return this._electricChars}},{key:"normalizeIndentation",value:function(e){return d.yO.normalizeIndentation(e,this.indentSize,this.insertSpaces)}}],[{key:"shouldRecreate",value:function(e){return e.hasChanged(127)||e.hasChanged(113)||e.hasChanged(30)||e.hasChanged(65)||e.hasChanged(67)||e.hasChanged(5)||e.hasChanged(8)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(112)||e.hasChanged(55)||e.hasChanged(77)}},{key:"_getElectricCharacters",value:function(e){try{return h.zu.getElectricCharacters(e.id)}catch(t){return(0,a.dL)(t),null}}},{key:"_getShouldAutoClose",value:function(t,n){switch(n){case"beforeWhitespace":return v;case"languageDefined":return e._getLanguageDefinedShouldAutoClose(t);case"always":return f;case"never":return p}}},{key:"_getLanguageDefinedShouldAutoClose",value:function(e){try{var t=h.zu.getAutoCloseBeforeSet(e.id);return function(e){return-1!==t.indexOf(e)}}catch(n){return(0,a.dL)(n),p}}},{key:"_getSurroundingPairs",value:function(e){try{return h.zu.getSurroundingPairs(e.id)}catch(t){return(0,a.dL)(t),null}}}]),e}(),m=function(){function e(t,n,i,o){(0,r.Z)(this,e),this.selectionStart=t,this.selectionStartLeftoverVisibleColumns=n,this.position=i,this.leftoverVisibleColumns=o,this.selection=e._computeSelection(this.selectionStart,this.position)}return(0,o.Z)(e,[{key:"equals",value:function(e){return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.position.equals(e.position)&&this.selectionStart.equalsRange(e.selectionStart)}},{key:"hasSelection",value:function(){return!this.selection.isEmpty()||!this.selectionStart.isEmpty()}},{key:"move",value:function(t,n,i,r){return t?new e(this.selectionStart,this.selectionStartLeftoverVisibleColumns,new u.L(n,i),r):new e(new l.e(n,i,n,i),r,new u.L(n,i),r)}}],[{key:"_computeSelection",value:function(e,t){var n,i,r,o;return e.isEmpty()?(n=e.startLineNumber,i=e.startColumn,r=t.lineNumber,o=t.column):t.isBeforeOrEqual(e.getStartPosition())?(n=e.endLineNumber,i=e.endColumn,r=t.lineNumber,o=t.column):(n=e.startLineNumber,i=e.startColumn,r=t.lineNumber,o=t.column),new c.Y(n,i,r,o)}}]),e}(),_=(0,o.Z)((function e(t,n,i){(0,r.Z)(this,e),this.model=t,this.coordinatesConverter=n,this.cursorConfig=i})),y=(0,o.Z)((function e(t){(0,r.Z)(this,e),this.modelState=t,this.viewState=null})),b=(0,o.Z)((function e(t){(0,r.Z)(this,e),this.modelState=null,this.viewState=t})),w=function(){function e(t,n){(0,r.Z)(this,e),this.modelState=t,this.viewState=n}return(0,o.Z)(e,[{key:"equals",value:function(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.modelState)}}],[{key:"fromModelState",value:function(e){return new y(e)}},{key:"fromViewState",value:function(e){return new b(e)}},{key:"fromModelSelection",value:function(t){var n=t.selectionStartLineNumber,i=t.selectionStartColumn,r=t.positionLineNumber,o=t.positionColumn,a=new m(new l.e(n,i,n,i),0,new u.L(r,o),0);return e.fromModelState(a)}},{key:"fromModelSelections",value:function(e){for(var t=[],n=0,i=e.length;n<i;n++)t[n]=this.fromModelSelection(e[n]);return t}}]),e}(),C=(0,o.Z)((function e(t,n,i){(0,r.Z)(this,e),this.type=t,this.commands=n,this.shouldPushStackElementBefore=i.shouldPushStackElementBefore,this.shouldPushStackElementAfter=i.shouldPushStackElementAfter})),k=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"visibleColumnFromColumn",value:function(t,n,i){for(var r=t.length,o=n-1<r?n-1:r,a=0,u=0;u<o;){var l=s.ZH(t,o,u);if(u+=l>=65536?2:1,9===l)a=e.nextRenderTabStop(a,i);else{for(var c=s.S6(l);u<o;){var d=s.ZH(t,o,u),h=s.S6(d);if(s.fi(c,h))break;u+=d>=65536?2:1,c=h}s.K7(l)||s.C8(l)?a+=2:a+=1}}return a}},{key:"visibleColumnFromColumn2",value:function(e,t,n){return this.visibleColumnFromColumn(t.getLineContent(n.lineNumber),n.column,e.tabSize)}},{key:"columnFromVisibleColumn",value:function(t,n,i){if(n<=0)return 1;for(var r=t.length,o=0,a=1,u=0;u<r;){var l=s.ZH(t,r,u);u+=l>=65536?2:1;var c=void 0;if(9===l)c=e.nextRenderTabStop(o,i);else{for(var d=s.S6(l);u<r;){var h=s.ZH(t,r,u),f=s.S6(h);if(s.fi(d,f))break;u+=h>=65536?2:1,d=f}c=s.K7(l)||s.C8(l)?o+2:o+1}var p=u+1;if(c>=n)return c-n<n-o?p:a;o=c,a=p}return r+1}},{key:"columnFromVisibleColumn2",value:function(e,t,n,i){var r=this.columnFromVisibleColumn(t.getLineContent(n),i,e.tabSize),o=t.getLineMinColumn(n);if(r<o)return o;var a=t.getLineMaxColumn(n);return r>a?a:r}},{key:"nextRenderTabStop",value:function(e,t){return e+t-e%t}},{key:"nextIndentTabStop",value:function(e,t){return e+t-e%t}},{key:"prevRenderTabStop",value:function(e,t){return Math.max(0,e-1-(e-1)%t)}},{key:"prevIndentTabStop",value:function(e,t){return Math.max(0,e-1-(e-1)%t)}}]),e}();function S(e){return"'"===e||'"'===e||"`"===e}},39765:function(e,t,n){"use strict";n.d(t,{A:function(){return d}});var i=n(37762),r=n(15671),o=n(43144),a=n(51747),s=n(97033),u=n(16274),l=n(15432),c=n(67033),d=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"deleteRight",value:function(e,t,n,i){for(var r=[],o=3!==e,a=0,u=i.length;a<u;a++){var d=i[a],h=d;if(h.isEmpty()){var f=d.getPosition(),p=l.o.right(t,n,f.lineNumber,f.column);h=new c.e(p.lineNumber,p.column,f.lineNumber,f.column)}h.isEmpty()?r[a]=null:(h.startLineNumber!==h.endLineNumber&&(o=!0),r[a]=new s.T4(h,""))}return[o,r]}},{key:"isAutoClosingPairDelete",value:function(e,t,n,r,o,a,s){if("never"===t&&"never"===n)return!1;if("never"===e)return!1;for(var l=0,c=a.length;l<c;l++){var d=a[l],h=d.getPosition();if(!d.isEmpty())return!1;var f=o.getLineContent(h.lineNumber);if(h.column<2||h.column>=f.length+1)return!1;var p=f.charAt(h.column-2),v=r.get(p);if(!v)return!1;if((0,u.LN)(p)){if("never"===n)return!1}else if("never"===t)return!1;var g,m=f.charAt(h.column-1),_=!1,y=(0,i.Z)(v);try{for(y.s();!(g=y.n()).done;){var b=g.value;b.open===p&&b.close===m&&(_=!0)}}catch(x){y.e(x)}finally{y.f()}if(!_)return!1;if("auto"===e){for(var w=!1,C=0,k=s.length;C<k;C++){var S=s[C];if(h.lineNumber===S.startLineNumber&&h.column===S.startColumn){w=!0;break}}if(!w)return!1}}return!0}},{key:"_runAutoClosingPairDelete",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r].getPosition(),u=new c.e(a.lineNumber,a.column-1,a.lineNumber,a.column+1);i[r]=new s.T4(u,"")}return[!0,i]}},{key:"deleteLeft",value:function(e,t,n,i,r){if(this.isAutoClosingPairDelete(t.autoClosingDelete,t.autoClosingBrackets,t.autoClosingQuotes,t.autoClosingPairs.autoClosingPairsOpenByEnd,n,i,r))return this._runAutoClosingPairDelete(t,n,i);for(var o=[],d=2!==e,h=0,f=i.length;h<f;h++){var p=i[h],v=p;if(v.isEmpty()){var g=p.getPosition();if(t.useTabStops&&g.column>1){var m=n.getLineContent(g.lineNumber),_=a.LC(m),y=-1===_?m.length+1:_+1;if(g.column<=y){var b=u.io.visibleColumnFromColumn2(t,n,g),w=u.io.prevIndentTabStop(b,t.indentSize),C=u.io.columnFromVisibleColumn2(t,n,g.lineNumber,w);v=new c.e(g.lineNumber,C,g.lineNumber,g.column)}else v=new c.e(g.lineNumber,g.column-1,g.lineNumber,g.column)}else{var k=l.o.left(t,n,g.lineNumber,g.column);v=new c.e(k.lineNumber,k.column,g.lineNumber,g.column)}}v.isEmpty()?o[h]=null:(v.startLineNumber!==v.endLineNumber&&(d=!0),o[h]=new s.T4(v,""))}return[d,o]}},{key:"cut",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r];if(a.isEmpty())if(e.emptySelectionClipboard){var l=a.getPosition(),d=void 0,h=void 0,f=void 0,p=void 0;l.lineNumber<t.getLineCount()?(d=l.lineNumber,h=1,f=l.lineNumber+1,p=1):l.lineNumber>1?(d=l.lineNumber-1,h=t.getLineMaxColumn(l.lineNumber-1),f=l.lineNumber,p=t.getLineMaxColumn(l.lineNumber)):(d=l.lineNumber,h=1,f=l.lineNumber,p=t.getLineMaxColumn(l.lineNumber));var v=new c.e(d,h,f,p);v.isEmpty()?i[r]=null:i[r]=new s.T4(v,"")}else i[r]=null;else i[r]=new s.T4(a,"")}return new u.Tp(0,i,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}]),e}()},55561:function(e,t,n){"use strict";n.d(t,{N:function(){return i},P:function(){return h}});var i,r=n(15671),o=n(43144),a=n(25941),s=n(16274),u=n(15432),l=n(86441),c=n(67297),d=n(67033),h=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"addCursorDown",value:function(e,t,n){for(var i=[],r=0,o=0,a=t.length;o<a;o++){var l=t[o];i[r++]=new s.Vi(l.modelState,l.viewState),i[r++]=n?s.Vi.fromModelState(u.o.translateDown(e.cursorConfig,e.model,l.modelState)):s.Vi.fromViewState(u.o.translateDown(e.cursorConfig,e,l.viewState))}return i}},{key:"addCursorUp",value:function(e,t,n){for(var i=[],r=0,o=0,a=t.length;o<a;o++){var l=t[o];i[r++]=new s.Vi(l.modelState,l.viewState),i[r++]=n?s.Vi.fromModelState(u.o.translateUp(e.cursorConfig,e.model,l.modelState)):s.Vi.fromViewState(u.o.translateUp(e.cursorConfig,e,l.viewState))}return i}},{key:"moveToBeginningOfLine",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r];i[r]=this._moveToLineStart(e,a,n)}return i}},{key:"_moveToLineStart",value:function(e,t,n){var i=t.viewState.position.column,r=i===t.modelState.position.column,o=t.viewState.position.lineNumber,a=e.getLineFirstNonWhitespaceColumn(o);return r||i===a?this._moveToLineStartByModel(e,t,n):this._moveToLineStartByView(e,t,n)}},{key:"_moveToLineStartByView",value:function(e,t,n){return s.Vi.fromViewState(u.o.moveToBeginningOfLine(e.cursorConfig,e,t.viewState,n))}},{key:"_moveToLineStartByModel",value:function(e,t,n){return s.Vi.fromModelState(u.o.moveToBeginningOfLine(e.cursorConfig,e.model,t.modelState,n))}},{key:"moveToEndOfLine",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var s=t[o];r[o]=this._moveToLineEnd(e,s,n,i)}return r}},{key:"_moveToLineEnd",value:function(e,t,n,i){var r=t.viewState.position,o=e.getLineMaxColumn(r.lineNumber),a=r.column===o,s=t.modelState.position,u=e.model.getLineMaxColumn(s.lineNumber),l=o-r.column===u-s.column;return a||l?this._moveToLineEndByModel(e,t,n,i):this._moveToLineEndByView(e,t,n,i)}},{key:"_moveToLineEndByView",value:function(e,t,n,i){return s.Vi.fromViewState(u.o.moveToEndOfLine(e.cursorConfig,e,t.viewState,n,i))}},{key:"_moveToLineEndByModel",value:function(e,t,n,i){return s.Vi.fromModelState(u.o.moveToEndOfLine(e.cursorConfig,e.model,t.modelState,n,i))}},{key:"expandLineSelection",value:function(e,t){for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i],a=o.modelState.selection.startLineNumber,u=e.model.getLineCount(),l=o.modelState.selection.endLineNumber,h=void 0;l===u?h=e.model.getLineMaxColumn(u):(l++,h=1),n[i]=s.Vi.fromModelState(new s.rS(new d.e(a,1,a,1),0,new c.L(l,h),0))}return n}},{key:"moveToBeginningOfBuffer",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r];i[r]=s.Vi.fromModelState(u.o.moveToBeginningOfBuffer(e.cursorConfig,e.model,a.modelState,n))}return i}},{key:"moveToEndOfBuffer",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r];i[r]=s.Vi.fromModelState(u.o.moveToEndOfBuffer(e.cursorConfig,e.model,a.modelState,n))}return i}},{key:"selectAll",value:function(e,t){var n=e.model.getLineCount(),i=e.model.getLineMaxColumn(n);return s.Vi.fromModelState(new s.rS(new d.e(1,1,1,1),0,new c.L(n,i),0))}},{key:"line",value:function(e,t,n,i,r){var o=e.model.validatePosition(i),a=r?e.coordinatesConverter.validateViewPosition(new c.L(r.lineNumber,r.column),o):e.coordinatesConverter.convertModelPositionToViewPosition(o);if(!n||!t.modelState.hasSelection()){var u=e.model.getLineCount(),l=o.lineNumber+1,h=1;return l>u&&(l=u,h=e.model.getLineMaxColumn(l)),s.Vi.fromModelState(new s.rS(new d.e(o.lineNumber,1,l,h),0,new c.L(l,h),0))}var f=t.modelState.selectionStart.getStartPosition().lineNumber;if(o.lineNumber<f)return s.Vi.fromViewState(t.viewState.move(t.modelState.hasSelection(),a.lineNumber,1,0));if(o.lineNumber>f){var p=e.getLineCount(),v=a.lineNumber+1,g=1;return v>p&&(v=p,g=e.getLineMaxColumn(v)),s.Vi.fromViewState(t.viewState.move(t.modelState.hasSelection(),v,g,0))}var m=t.modelState.selectionStart.getEndPosition();return s.Vi.fromModelState(t.modelState.move(t.modelState.hasSelection(),m.lineNumber,m.column,0))}},{key:"word",value:function(e,t,n,i){var r=e.model.validatePosition(i);return s.Vi.fromModelState(l.w.word(e.cursorConfig,e.model,t.modelState,n,r))}},{key:"cancelSelection",value:function(e,t){if(!t.modelState.hasSelection())return new s.Vi(t.modelState,t.viewState);var n=t.viewState.position.lineNumber,i=t.viewState.position.column;return s.Vi.fromViewState(new s.rS(new d.e(n,i,n,i),0,new c.L(n,i),0))}},{key:"moveTo",value:function(e,t,n,i,r){var o=e.model.validatePosition(i),a=r?e.coordinatesConverter.validateViewPosition(new c.L(r.lineNumber,r.column),o):e.coordinatesConverter.convertModelPositionToViewPosition(o);return s.Vi.fromViewState(t.viewState.move(n,a.lineNumber,a.column,0))}},{key:"simpleMove",value:function(e,t,n,i,r,o){switch(n){case 0:return 4===o?this._moveHalfLineLeft(e,t,i):this._moveLeft(e,t,i,r);case 1:return 4===o?this._moveHalfLineRight(e,t,i):this._moveRight(e,t,i,r);case 2:return 2===o?this._moveUpByViewLines(e,t,i,r):this._moveUpByModelLines(e,t,i,r);case 3:return 2===o?this._moveDownByViewLines(e,t,i,r):this._moveDownByModelLines(e,t,i,r);case 4:return 2===o?t.map((function(t){return s.Vi.fromViewState(u.o.moveToPrevBlankLine(e.cursorConfig,e,t.viewState,i))})):t.map((function(t){return s.Vi.fromModelState(u.o.moveToPrevBlankLine(e.cursorConfig,e.model,t.modelState,i))}));case 5:return 2===o?t.map((function(t){return s.Vi.fromViewState(u.o.moveToNextBlankLine(e.cursorConfig,e,t.viewState,i))})):t.map((function(t){return s.Vi.fromModelState(u.o.moveToNextBlankLine(e.cursorConfig,e.model,t.modelState,i))}));case 6:return this._moveToViewMinColumn(e,t,i);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,i);case 8:return this._moveToViewCenterColumn(e,t,i);case 9:return this._moveToViewMaxColumn(e,t,i);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,i);default:return null}}},{key:"viewportMove",value:function(e,t,n,i,r){var o=e.getCompletelyVisibleViewRange(),a=e.coordinatesConverter.convertViewRangeToModelRange(o);switch(n){case 11:var s=this._firstLineNumberInRange(e.model,a,r),u=e.model.getLineFirstNonWhitespaceColumn(s);return[this._moveToModelPosition(e,t[0],i,s,u)];case 13:var l=this._lastLineNumberInRange(e.model,a,r),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],i,l,c)];case 12:var d=Math.round((a.startLineNumber+a.endLineNumber)/2),h=e.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(e,t[0],i,d,h)];case 14:for(var f=[],p=0,v=t.length;p<v;p++){var g=t[p];f[p]=this.findPositionInViewportIfOutside(e,g,o,i)}return f;default:return null}}},{key:"findPositionInViewportIfOutside",value:function(e,t,n,i){var r=t.viewState.position.lineNumber;if(n.startLineNumber<=r&&r<=n.endLineNumber-1)return new s.Vi(t.modelState,t.viewState);r>n.endLineNumber-1&&(r=n.endLineNumber-1),r<n.startLineNumber&&(r=n.startLineNumber);var o=e.getLineFirstNonWhitespaceColumn(r);return this._moveToViewPosition(e,t,i,r,o)}},{key:"_firstLineNumberInRange",value:function(e,t,n){var i=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(i)&&i++,Math.min(t.endLineNumber,i+n-1)}},{key:"_lastLineNumberInRange",value:function(e,t,n){var i=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(i)&&i++,Math.max(i,t.endLineNumber-n+1)}},{key:"_moveLeft",value:function(e,t,n,i){for(var r=t.length>1,o=[],a=0,l=t.length;a<l;a++){var c=t[a],d=r||!c.viewState.hasSelection(),h=u.o.moveLeft(e.cursorConfig,e,c.viewState,n,i);if(d&&1===i&&c.viewState.position.column===e.getLineMinColumn(c.viewState.position.lineNumber)&&h.position.lineNumber!==c.viewState.position.lineNumber)e.coordinatesConverter.convertViewPositionToModelPosition(h.position).lineNumber===c.modelState.position.lineNumber&&(h=u.o.moveLeft(e.cursorConfig,e,h,n,1));o[a]=s.Vi.fromViewState(h)}return o}},{key:"_moveHalfLineLeft",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],l=a.viewState.position.lineNumber,c=Math.round(e.getLineContent(l).length/2);i[r]=s.Vi.fromViewState(u.o.moveLeft(e.cursorConfig,e,a.viewState,n,c))}return i}},{key:"_moveRight",value:function(e,t,n,i){for(var r=t.length>1,o=[],a=0,l=t.length;a<l;a++){var c=t[a],d=r||!c.viewState.hasSelection(),h=u.o.moveRight(e.cursorConfig,e,c.viewState,n,i);if(d&&1===i&&c.viewState.position.column===e.getLineMaxColumn(c.viewState.position.lineNumber)&&h.position.lineNumber!==c.viewState.position.lineNumber)e.coordinatesConverter.convertViewPositionToModelPosition(h.position).lineNumber===c.modelState.position.lineNumber&&(h=u.o.moveRight(e.cursorConfig,e,h,n,1));o[a]=s.Vi.fromViewState(h)}return o}},{key:"_moveHalfLineRight",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],l=a.viewState.position.lineNumber,c=Math.round(e.getLineContent(l).length/2);i[r]=s.Vi.fromViewState(u.o.moveRight(e.cursorConfig,e,a.viewState,n,c))}return i}},{key:"_moveDownByViewLines",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var l=t[o];r[o]=s.Vi.fromViewState(u.o.moveDown(e.cursorConfig,e,l.viewState,n,i))}return r}},{key:"_moveDownByModelLines",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var l=t[o];r[o]=s.Vi.fromModelState(u.o.moveDown(e.cursorConfig,e.model,l.modelState,n,i))}return r}},{key:"_moveUpByViewLines",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var l=t[o];r[o]=s.Vi.fromViewState(u.o.moveUp(e.cursorConfig,e,l.viewState,n,i))}return r}},{key:"_moveUpByModelLines",value:function(e,t,n,i){for(var r=[],o=0,a=t.length;o<a;o++){var l=t[o];r[o]=s.Vi.fromModelState(u.o.moveUp(e.cursorConfig,e.model,l.modelState,n,i))}return r}},{key:"_moveToViewPosition",value:function(e,t,n,i,r){return s.Vi.fromViewState(t.viewState.move(n,i,r,0))}},{key:"_moveToModelPosition",value:function(e,t,n,i,r){return s.Vi.fromModelState(t.modelState.move(n,i,r,0))}},{key:"_moveToViewMinColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=e.getLineMinColumn(s);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}},{key:"_moveToViewFirstNonWhitespaceColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=e.getLineFirstNonWhitespaceColumn(s);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}},{key:"_moveToViewCenterColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=Math.round((e.getLineMaxColumn(s)+e.getLineMinColumn(s))/2);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}},{key:"_moveToViewMaxColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=e.getLineMaxColumn(s);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}},{key:"_moveToViewLastNonWhitespaceColumn",value:function(e,t,n){for(var i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=a.viewState.position.lineNumber,u=e.getLineLastNonWhitespaceColumn(s);i[r]=this._moveToViewPosition(e,a,n,s,u)}return i}}]),e}();!function(e){e.description={description:"Move cursor to a logical position in the view",args:[{name:"Cursor move argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t",constraint:function(e){if(!a.Kn(e))return!1;var t=e;return!!a.HD(t.to)&&(!(!a.o8(t.select)&&!a.jn(t.select))&&(!(!a.o8(t.by)&&!a.HD(t.by))&&!(!a.o8(t.value)&&!a.hj(t.value))))},schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["left","right","up","down","prevBlankLine","nextBlankLine","wrappedLineStart","wrappedLineEnd","wrappedLineColumnCenter","wrappedLineFirstNonWhitespaceCharacter","wrappedLineLastNonWhitespaceCharacter","viewPortTop","viewPortCenter","viewPortBottom","viewPortIfOutside"]},by:{type:"string",enum:["line","wrappedLine","character","halfLine"]},value:{type:"number",default:1},select:{type:"boolean",default:!1}}}}]},e.RawDirection={Left:"left",Right:"right",Up:"up",Down:"down",PrevBlankLine:"prevBlankLine",NextBlankLine:"nextBlankLine",WrappedLineStart:"wrappedLineStart",WrappedLineFirstNonWhitespaceCharacter:"wrappedLineFirstNonWhitespaceCharacter",WrappedLineColumnCenter:"wrappedLineColumnCenter",WrappedLineEnd:"wrappedLineEnd",WrappedLineLastNonWhitespaceCharacter:"wrappedLineLastNonWhitespaceCharacter",ViewPortTop:"viewPortTop",ViewPortCenter:"viewPortCenter",ViewPortBottom:"viewPortBottom",ViewPortIfOutside:"viewPortIfOutside"},e.RawUnit={Line:"line",WrappedLine:"wrappedLine",Character:"character",HalfLine:"halfLine"},e.parse=function(t){if(!t.to)return null;var n;switch(t.to){case e.RawDirection.Left:n=0;break;case e.RawDirection.Right:n=1;break;case e.RawDirection.Up:n=2;break;case e.RawDirection.Down:n=3;break;case e.RawDirection.PrevBlankLine:n=4;break;case e.RawDirection.NextBlankLine:n=5;break;case e.RawDirection.WrappedLineStart:n=6;break;case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter:n=7;break;case e.RawDirection.WrappedLineColumnCenter:n=8;break;case e.RawDirection.WrappedLineEnd:n=9;break;case e.RawDirection.WrappedLineLastNonWhitespaceCharacter:n=10;break;case e.RawDirection.ViewPortTop:n=11;break;case e.RawDirection.ViewPortBottom:n=13;break;case e.RawDirection.ViewPortCenter:n=12;break;case e.RawDirection.ViewPortIfOutside:n=14;break;default:return null}var i=0;switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Character:i=3;break;case e.RawUnit.HalfLine:i=4}return{direction:n,unit:i,select:!!t.select,value:t.value||1}}}(i||(i={}))},15432:function(e,t,n){"use strict";n.d(t,{o:function(){return d}});var i=n(43144),r=n(15671),o=n(16274),a=n(67297),s=n(67033),u=n(51747),l=n(86036),c=(0,i.Z)((function e(t,n,i){(0,r.Z)(this,e),this.lineNumber=t,this.column=n,this.leftoverVisibleColumns=i})),d=function(){function e(){(0,r.Z)(this,e)}return(0,i.Z)(e,null,[{key:"leftPosition",value:function(e,t,n){return n>e.getLineMinColumn(t)?n-=u.HO(e.getLineContent(t),n-1):t>1&&(t-=1,n=e.getLineMaxColumn(t)),new a.L(t,n)}},{key:"leftPositionAtomicSoftTabs",value:function(e,t,n,i){var r=e.getLineMinColumn(t),o=e.getLineContent(t),s=l.l.atomicPosition(o,n-1,i,0);return-1===s||s+1<r?this.leftPosition(e,t,n):new a.L(t,s+1)}},{key:"left",value:function(t,n,i,r){var o=t.stickyTabStops?e.leftPositionAtomicSoftTabs(n,i,r,t.tabSize):e.leftPosition(n,i,r);return new c(o.lineNumber,o.column,0)}},{key:"moveLeft",value:function(t,n,i,r,o){var a,s;if(i.hasSelection()&&!r)a=i.selection.startLineNumber,s=i.selection.startColumn;else{var u=e.left(t,n,i.position.lineNumber,i.position.column-(o-1));a=u.lineNumber,s=u.column}return i.move(r,a,s,0)}},{key:"rightPosition",value:function(e,t,n){return n<e.getLineMaxColumn(t)?n+=u.vH(e.getLineContent(t),n-1):t<e.getLineCount()&&(t+=1,n=e.getLineMinColumn(t)),new a.L(t,n)}},{key:"rightPositionAtomicSoftTabs",value:function(e,t,n,i,r){var o=e.getLineContent(t),s=l.l.atomicPosition(o,n-1,i,1);return-1===s?this.rightPosition(e,t,n):new a.L(t,s+1)}},{key:"right",value:function(t,n,i,r){var o=t.stickyTabStops?e.rightPositionAtomicSoftTabs(n,i,r,t.tabSize,t.indentSize):e.rightPosition(n,i,r);return new c(o.lineNumber,o.column,0)}},{key:"moveRight",value:function(t,n,i,r,o){var a,s;if(i.hasSelection()&&!r)a=i.selection.endLineNumber,s=i.selection.endColumn;else{var u=e.right(t,n,i.position.lineNumber,i.position.column+(o-1));a=u.lineNumber,s=u.column}return i.move(r,a,s,0)}},{key:"down",value:function(e,t,n,i,r,a,s){var u=o.io.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize)+r,l=t.getLineCount(),d=n===l&&i===t.getLineMaxColumn(n);return(n+=a)>l?(n=l,i=s?t.getLineMaxColumn(n):Math.min(t.getLineMaxColumn(n),i)):i=o.io.columnFromVisibleColumn2(e,t,n,u),r=d?0:u-o.io.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize),new c(n,i,r)}},{key:"moveDown",value:function(t,n,i,r,o){var a,s;i.hasSelection()&&!r?(a=i.selection.endLineNumber,s=i.selection.endColumn):(a=i.position.lineNumber,s=i.position.column);var u=e.down(t,n,a,s,i.leftoverVisibleColumns,o,!0);return i.move(r,u.lineNumber,u.column,u.leftoverVisibleColumns)}},{key:"translateDown",value:function(t,n,i){var r=i.selection,u=e.down(t,n,r.selectionStartLineNumber,r.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),l=e.down(t,n,r.positionLineNumber,r.positionColumn,i.leftoverVisibleColumns,1,!1);return new o.rS(new s.e(u.lineNumber,u.column,u.lineNumber,u.column),u.leftoverVisibleColumns,new a.L(l.lineNumber,l.column),l.leftoverVisibleColumns)}},{key:"up",value:function(e,t,n,i,r,a,s){var u=o.io.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize)+r,l=1===n&&1===i;return(n-=a)<1?(n=1,i=s?t.getLineMinColumn(n):Math.min(t.getLineMaxColumn(n),i)):i=o.io.columnFromVisibleColumn2(e,t,n,u),r=l?0:u-o.io.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize),new c(n,i,r)}},{key:"moveUp",value:function(t,n,i,r,o){var a,s;i.hasSelection()&&!r?(a=i.selection.startLineNumber,s=i.selection.startColumn):(a=i.position.lineNumber,s=i.position.column);var u=e.up(t,n,a,s,i.leftoverVisibleColumns,o,!0);return i.move(r,u.lineNumber,u.column,u.leftoverVisibleColumns)}},{key:"translateUp",value:function(t,n,i){var r=i.selection,u=e.up(t,n,r.selectionStartLineNumber,r.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),l=e.up(t,n,r.positionLineNumber,r.positionColumn,i.leftoverVisibleColumns,1,!1);return new o.rS(new s.e(u.lineNumber,u.column,u.lineNumber,u.column),u.leftoverVisibleColumns,new a.L(l.lineNumber,l.column),l.leftoverVisibleColumns)}},{key:"_isBlankLine",value:function(e,t){return 0===e.getLineFirstNonWhitespaceColumn(t)}},{key:"moveToPrevBlankLine",value:function(e,t,n,i){for(var r=n.position.lineNumber;r>1&&this._isBlankLine(t,r);)r--;for(;r>1&&!this._isBlankLine(t,r);)r--;return n.move(i,r,t.getLineMinColumn(r),0)}},{key:"moveToNextBlankLine",value:function(e,t,n,i){for(var r=t.getLineCount(),o=n.position.lineNumber;o<r&&this._isBlankLine(t,o);)o++;for(;o<r&&!this._isBlankLine(t,o);)o++;return n.move(i,o,t.getLineMinColumn(o),0)}},{key:"moveToBeginningOfLine",value:function(e,t,n,i){var r,o=n.position.lineNumber,a=t.getLineMinColumn(o),s=t.getLineFirstNonWhitespaceColumn(o)||a;return r=n.position.column===s?a:s,n.move(i,o,r,0)}},{key:"moveToEndOfLine",value:function(e,t,n,i,r){var o=n.position.lineNumber,a=t.getLineMaxColumn(o);return n.move(i,o,a,r?1073741824-a:0)}},{key:"moveToBeginningOfBuffer",value:function(e,t,n,i){return n.move(i,1,1,0)}},{key:"moveToEndOfBuffer",value:function(e,t,n,i){var r=t.getLineCount(),o=t.getLineMaxColumn(r);return n.move(i,r,o,0)}}]),e}()},22268:function(e,t,n){"use strict";n.d(t,{u:function(){return w},g:function(){return C}});var i=n(11752),r=n(61120),o=n(60136),a=n(29388),s=n(37762),u=n(15671),l=n(43144),c=n(8729),d=n(51747),h=n(97033),f=n(83),p=n(67033),v=n(74964),g=function(){function e(t,n,i){(0,u.Z)(this,e),this._range=t,this._charBeforeSelection=n,this._charAfterSelection=i}return(0,l.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(new p.e(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new p.e(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations(),i=n[0].range,r=n[1].range;return new v.Y(i.endLineNumber,i.endColumn,r.endLineNumber,r.endColumn-this._charAfterSelection.length)}}]),e}(),m=n(16274),_=n(20937),y=n(7273),b=n(65262),w=function(){function e(){(0,u.Z)(this,e)}return(0,l.Z)(e,null,[{key:"indent",value:function(e,t,n){if(null===t||null===n)return[];for(var i=[],r=0,o=n.length;r<o;r++)i[r]=new f.U(n[r],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent});return i}},{key:"outdent",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++)i[r]=new f.U(n[r],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent});return i}},{key:"shiftIndent",value:function(e,t,n){return n=n||1,f.U.shiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)}},{key:"unshiftIndent",value:function(e,t,n){return n=n||1,f.U.unshiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)}},{key:"_distributedPaste",value:function(e,t,n,i){for(var r=[],o=0,a=n.length;o<a;o++)r[o]=new h.T4(n[o],i[o]);return new m.Tp(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}},{key:"_simplePaste",value:function(e,t,n,i,r){for(var o=[],a=0,s=n.length;a<s;a++){var u=n[a],l=u.getPosition();if(r&&!u.isEmpty()&&(r=!1),r&&i.indexOf("\n")!==i.length-1&&(r=!1),r){var c=new p.e(l.lineNumber,1,l.lineNumber,1);o[a]=new h.hP(c,i,u,!0)}else o[a]=new h.T4(u,i)}return new m.Tp(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}},{key:"_distributePasteToCursors",value:function(e,t,n,i,r){if(i)return null;if(1===t.length)return null;if(r&&r.length===t.length)return r;if("spread"===e.multiCursorPaste){10===n.charCodeAt(n.length-1)&&(n=n.substr(0,n.length-1)),13===n.charCodeAt(n.length-1)&&(n=n.substr(0,n.length-1));var o=d.uq(n);if(o.length===t.length)return o}return null}},{key:"paste",value:function(e,t,n,i,r,o){var a=this._distributePasteToCursors(e,n,i,r,o);return a?(n=n.sort(p.e.compareRangesUsingStarts),this._distributedPaste(e,t,n,a)):this._simplePaste(e,t,n,i,r)}},{key:"_goodIndentForLine",value:function(t,n,i){var r=null,o="",a=b.zu.getInheritIndentForLine(t.autoIndent,n,i,!1);if(a)r=a.action,o=a.indentation;else if(i>1){var s;for(s=i-1;s>=1;s--){var u=n.getLineContent(s);if(d.ow(u)>=0)break}if(s<1)return null;var l=n.getLineMaxColumn(s),c=b.zu.getEnterAction(t.autoIndent,n,new p.e(s,l,s,l));c&&(o=c.indentation+c.appendText)}return r&&(r===y.wU.Indent&&(o=e.shiftIndent(t,o)),r===y.wU.Outdent&&(o=e.unshiftIndent(t,o)),o=t.normalizeIndentation(o)),o||null}},{key:"_replaceJumpToNextIndent",value:function(e,t,n,i){var r="",o=n.getStartPosition();if(e.insertSpaces)for(var a=m.io.visibleColumnFromColumn2(e,t,o),s=e.indentSize,u=s-a%s,l=0;l<u;l++)r+=" ";else r="\t";return new h.T4(n,r,i)}},{key:"tab",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r];if(a.isEmpty()){var s=t.getLineContent(a.startLineNumber);if(/^\s*$/.test(s)&&t.isCheapToTokenize(a.startLineNumber)){var u=this._goodIndentForLine(e,t,a.startLineNumber);u=u||"\t";var l=e.normalizeIndentation(u);if(!s.startsWith(l)){i[r]=new h.T4(new p.e(a.startLineNumber,1,a.startLineNumber,s.length+1),l,!0);continue}}i[r]=this._replaceJumpToNextIndent(e,t,a,!0)}else{if(a.startLineNumber===a.endLineNumber){var c=t.getLineMaxColumn(a.startLineNumber);if(1!==a.startColumn||a.endColumn!==c){i[r]=this._replaceJumpToNextIndent(e,t,a,!1);continue}}i[r]=new f.U(a,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent})}}return i}},{key:"compositionType",value:function(e,t,n,i,r,o,a,s){var u=this,l=i.map((function(e){return u._compositionType(n,e,r,o,a,s)}));return new m.Tp(1,l,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})}},{key:"_compositionType",value:function(e,t,n,i,r,o){if(!t.isEmpty())return null;var a=t.getPosition(),s=Math.max(1,a.column-i),u=Math.min(e.getLineMaxColumn(a.lineNumber),a.column+r),l=new p.e(a.lineNumber,s,a.lineNumber,u);return e.getValueInRange(l)===n&&0===o?null:new h.Uo(l,n,0,o)}},{key:"_typeCommand",value:function(e,t,n){return n?new h.Sj(e,t,!0):new h.T4(e,t,!0)}},{key:"_enter",value:function(t,n,i,r){if(0===t.autoIndent)return e._typeCommand(r,"\n",i);if(!n.isCheapToTokenize(r.getStartPosition().lineNumber)||1===t.autoIndent){var o=n.getLineContent(r.startLineNumber),a=d.V8(o).substring(0,r.startColumn-1);return e._typeCommand(r,"\n"+t.normalizeIndentation(a),i)}var s=b.zu.getEnterAction(t.autoIndent,n,r);if(s){if(s.indentAction===y.wU.None)return e._typeCommand(r,"\n"+t.normalizeIndentation(s.indentation+s.appendText),i);if(s.indentAction===y.wU.Indent)return e._typeCommand(r,"\n"+t.normalizeIndentation(s.indentation+s.appendText),i);if(s.indentAction===y.wU.IndentOutdent){var u=t.normalizeIndentation(s.indentation),l=t.normalizeIndentation(s.indentation+s.appendText),c="\n"+l+"\n"+u;return i?new h.Sj(r,c,!0):new h.Uo(r,c,-1,l.length-u.length,!0)}if(s.indentAction===y.wU.Outdent){var f=e.unshiftIndent(t,s.indentation);return e._typeCommand(r,"\n"+t.normalizeIndentation(f+s.appendText),i)}}var p=n.getLineContent(r.startLineNumber),v=d.V8(p).substring(0,r.startColumn-1);if(t.autoIndent>=4){var g=b.zu.getIndentForEnter(t.autoIndent,n,r,{unshiftIndent:function(n){return e.unshiftIndent(t,n)},shiftIndent:function(n){return e.shiftIndent(t,n)},normalizeIndentation:function(e){return t.normalizeIndentation(e)}});if(g){var _=m.io.visibleColumnFromColumn2(t,n,r.getEndPosition()),w=r.endColumn,C=n.getLineContent(r.endLineNumber),k=d.LC(C);if(r=k>=0?r.setEndPosition(r.endLineNumber,Math.max(r.endColumn,k+1)):r.setEndPosition(r.endLineNumber,n.getLineMaxColumn(r.endLineNumber)),i)return new h.Sj(r,"\n"+t.normalizeIndentation(g.afterEnter),!0);var S=0;return w<=k+1&&(t.insertSpaces||(_=Math.ceil(_/t.indentSize)),S=Math.min(_+1-t.normalizeIndentation(g.afterEnter).length-1,0)),new h.Uo(r,"\n"+t.normalizeIndentation(g.afterEnter),0,S,!0)}}return e._typeCommand(r,"\n"+t.normalizeIndentation(v),i)}},{key:"_isAutoIndentType",value:function(e,t,n){if(e.autoIndent<4)return!1;for(var i=0,r=n.length;i<r;i++)if(!t.isCheapToTokenize(n[i].getEndPosition().lineNumber))return!1;return!0}},{key:"_runAutoIndentType",value:function(t,n,i,r){var o=b.zu.getIndentationAtPosition(n,i.startLineNumber,i.startColumn),a=b.zu.getIndentActionForType(t.autoIndent,n,i,r,{shiftIndent:function(n){return e.shiftIndent(t,n)},unshiftIndent:function(n){return e.unshiftIndent(t,n)}});if(null===a)return null;if(a!==t.normalizeIndentation(o)){var s=n.getLineFirstNonWhitespaceColumn(i.startLineNumber);return 0===s?e._typeCommand(new p.e(i.startLineNumber,1,i.endLineNumber,i.endColumn),t.normalizeIndentation(a)+r,!1):e._typeCommand(new p.e(i.startLineNumber,1,i.endLineNumber,i.endColumn),t.normalizeIndentation(a)+n.getLineContent(i.startLineNumber).substring(s-1,i.startColumn-1)+r,!1)}return null}},{key:"_isAutoClosingOvertype",value:function(e,t,n,i,r){if("never"===e.autoClosingOvertype)return!1;if(!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(r))return!1;for(var o=0,a=n.length;o<a;o++){var s=n[o];if(!s.isEmpty())return!1;var u=s.getPosition(),l=t.getLineContent(u.lineNumber);if(l.charAt(u.column-1)!==r)return!1;var c=(0,m.LN)(r);if(92===(u.column>2?l.charCodeAt(u.column-2):0)&&c)return!1;if("auto"===e.autoClosingOvertype){for(var d=!1,h=0,f=i.length;h<f;h++){var p=i[h];if(u.lineNumber===p.startLineNumber&&u.column===p.startColumn){d=!0;break}}if(!d)return!1}}return!0}},{key:"_runAutoClosingOvertype",value:function(e,t,n,i,r){for(var o=[],a=0,s=i.length;a<s;a++){var u=i[a].getPosition(),l=new p.e(u.lineNumber,u.column,u.lineNumber,u.column+1);o[a]=new h.T4(l,r)}return new m.Tp(1,o,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})}},{key:"_isBeforeClosingBrace",value:function(e,t){var n=t.charAt(0),i=e.autoClosingPairs.autoClosingPairsOpenByStart.get(n)||[],r=e.autoClosingPairs.autoClosingPairsCloseByStart.get(n)||[],o=i.some((function(e){return t.startsWith(e.open)})),a=r.some((function(e){return t.startsWith(e.close)}));return!o&&a}},{key:"_findAutoClosingPairOpen",value:function(e,t,n,i){var r=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(i);if(!r)return null;var o,a=null,u=(0,s.Z)(r);try{for(u.s();!(o=u.n()).done;){var l=o.value;if(null===a||l.open.length>a.open.length){var c,d=!0,h=(0,s.Z)(n);try{for(h.s();!(c=h.n()).done;){var f=c.value;if(t.getValueInRange(new p.e(f.lineNumber,f.column-l.open.length+1,f.lineNumber,f.column))+i!==l.open){d=!1;break}}}catch(v){h.e(v)}finally{h.f()}d&&(a=l)}}}catch(v){u.e(v)}finally{u.f()}return a}},{key:"_findSubAutoClosingPairClose",value:function(e,t){if(t.open.length<=1)return"";var n,i=t.close.charAt(t.close.length-1),r=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[],o=null,a=(0,s.Z)(r);try{for(a.s();!(n=a.n()).done;){var u=n.value;u.open!==t.open&&t.open.includes(u.open)&&t.close.endsWith(u.close)&&(!o||u.open.length>o.open.length)&&(o=u)}}catch(l){a.e(l)}finally{a.f()}return o?o.close:""}},{key:"_getAutoClosingPairClose",value:function(t,n,i,r,o){var a=(0,m.LN)(r),s=a?t.autoClosingQuotes:t.autoClosingBrackets;if("never"===s)return null;var u=this._findAutoClosingPairOpen(t,n,i.map((function(e){return e.getPosition()})),r);if(!u)return null;for(var l=this._findSubAutoClosingPairClose(t,u),d=!0,h=a?t.shouldAutoCloseBefore.quote:t.shouldAutoCloseBefore.bracket,f=0,p=i.length;f<p;f++){var v=i[f];if(!v.isEmpty())return null;var g=v.getPosition(),y=n.getLineContent(g.lineNumber),w=y.substring(g.column-1);if(w.startsWith(l)||(d=!1),y.length>g.column-1){var C=y.charAt(g.column-1);if(!e._isBeforeClosingBrace(t,w)&&!h(C))return null}if(!n.isCheapToTokenize(g.lineNumber))return null;if(1===u.open.length&&a&&"always"!==s){var k=(0,_.u)(t.wordSeparators);if(o&&g.column>1&&0===k.get(y.charCodeAt(g.column-2)))return null;if(!o&&g.column>2&&0===k.get(y.charCodeAt(g.column-3)))return null}n.forceTokenization(g.lineNumber);var S=n.getLineTokens(g.lineNumber),x=!1;try{x=b.zu.shouldAutoClosePair(u,S,o?g.column:g.column-1)}catch(L){(0,c.dL)(L)}if(!x)return null}return d?u.close.substring(0,u.close.length-l.length):u.close}},{key:"_runAutoClosingOpenCharType",value:function(e,t,n,i,r,o,a){for(var s=[],u=0,l=i.length;u<l;u++){var c=i[u];s[u]=new C(c,r,o,a)}return new m.Tp(1,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}},{key:"_shouldSurroundChar",value:function(e,t){return(0,m.LN)(t)?"quotes"===e.autoSurround||"languageDefined"===e.autoSurround:"brackets"===e.autoSurround||"languageDefined"===e.autoSurround}},{key:"_isSurroundSelectionType",value:function(t,n,i,r){if(!e._shouldSurroundChar(t,r)||!t.surroundingPairs.hasOwnProperty(r))return!1;for(var o=(0,m.LN)(r),a=0,s=i.length;a<s;a++){var u=i[a];if(u.isEmpty())return!1;for(var l=!0,c=u.startLineNumber;c<=u.endLineNumber;c++){var d=n.getLineContent(c),h=c===u.startLineNumber?u.startColumn-1:0,f=c===u.endLineNumber?u.endColumn-1:d.length,p=d.substring(h,f);if(/[^ \t]/.test(p)){l=!1;break}}if(l)return!1;if(o&&u.startLineNumber===u.endLineNumber&&u.startColumn+1===u.endColumn){var v=n.getValueInRange(u);if((0,m.LN)(v))return!1}}return!0}},{key:"_runSurroundSelectionType",value:function(e,t,n,i,r){for(var o=[],a=0,s=i.length;a<s;a++){var u=i[a],l=t.surroundingPairs[r];o[a]=new g(u,r,l)}return new m.Tp(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}},{key:"_isTypeInterceptorElectricChar",value:function(e,t,n){return!(1!==n.length||!t.isCheapToTokenize(n[0].getEndPosition().lineNumber))}},{key:"_typeInterceptorElectricChar",value:function(e,t,n,i,r){if(!t.electricChars.hasOwnProperty(r)||!i.isEmpty())return null;var o=i.getPosition();n.forceTokenization(o.lineNumber);var a,s=n.getLineTokens(o.lineNumber);try{a=b.zu.onElectricCharacter(r,s,o.column)}catch(S){return(0,c.dL)(S),null}if(!a)return null;if(a.matchOpenBracket){var u=(s.getLineContent()+r).lastIndexOf(a.matchOpenBracket)+1,l=n.findMatchingBracketUp(a.matchOpenBracket,{lineNumber:o.lineNumber,column:u});if(l){if(l.startLineNumber===o.lineNumber)return null;var f=n.getLineContent(l.startLineNumber),v=d.V8(f),g=t.normalizeIndentation(v),_=n.getLineContent(o.lineNumber),y=n.getLineFirstNonWhitespaceColumn(o.lineNumber)||o.column,w=g+_.substring(y-1,o.column-1)+r,C=new p.e(o.lineNumber,1,o.lineNumber,o.column),k=new h.T4(C,w);return new m.Tp(1,[k],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null}},{key:"compositionEndWithInterceptors",value:function(e,t,n,i,r,o){if(!i||v.Y.selectionsArrEqual(i,r))return null;var a,u=null,l=(0,s.Z)(r);try{for(l.s();!(a=l.n()).done;){var c=a.value;if(!c.isEmpty())return null;var d=c.getPosition(),f=n.getValueInRange(new p.e(d.lineNumber,d.column-1,d.lineNumber,d.column));if(null===u)u=f;else if(u!==f)return null}}catch(y){l.e(y)}finally{l.f()}if(!u)return null;if(this._isAutoClosingOvertype(t,n,r,o,u)){var g=r.map((function(e){return new h.T4(new p.e(e.positionLineNumber,e.positionColumn,e.positionLineNumber,e.positionColumn+1),"",!1)}));return new m.Tp(1,g,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}var _=this._getAutoClosingPairClose(t,n,r,u,!1);return null!==_?this._runAutoClosingOpenCharType(e,t,n,r,u,!1,_):null}},{key:"typeWithInterceptors",value:function(t,n,i,r,o,a,s){if(!t&&"\n"===s){for(var u=[],l=0,c=o.length;l<c;l++)u[l]=e._enter(i,r,!1,o[l]);return new m.Tp(1,u,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(!t&&this._isAutoIndentType(i,r,o)){for(var d=[],f=!1,p=0,v=o.length;p<v;p++)if(d[p]=this._runAutoIndentType(i,r,o[p],s),!d[p]){f=!0;break}if(!f)return new m.Tp(1,d,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(!t&&this._isAutoClosingOvertype(i,r,o,a,s))return this._runAutoClosingOvertype(n,i,r,o,s);if(!t){var g=this._getAutoClosingPairClose(i,r,o,s,!0);if(g)return this._runAutoClosingOpenCharType(n,i,r,o,s,!0,g)}if(this._isSurroundSelectionType(i,r,o,s))return this._runSurroundSelectionType(n,i,r,o,s);if(!t&&this._isTypeInterceptorElectricChar(i,r,o)){var _=this._typeInterceptorElectricChar(n,i,r,o[0],s);if(_)return _}for(var y=[],b=0,w=o.length;b<w;b++)y[b]=new h.T4(o[b],s);var C=1!==n;return" "===s&&(C=!0),new m.Tp(1,y,{shouldPushStackElementBefore:C,shouldPushStackElementAfter:!1})}},{key:"typeWithoutInterceptors",value:function(e,t,n,i,r){for(var o=[],a=0,s=i.length;a<s;a++)o[a]=new h.T4(i[a],r);return new m.Tp(1,o,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})}},{key:"lineInsertBefore",value:function(e,t,n){if(null===t||null===n)return[];for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r].positionLineNumber;if(1===a)i[r]=new h.Sj(new p.e(1,1,1,1),"\n");else{a--;var s=t.getLineMaxColumn(a);i[r]=this._enter(e,t,!1,new p.e(a,s,a,s))}}return i}},{key:"lineInsertAfter",value:function(e,t,n){if(null===t||null===n)return[];for(var i=[],r=0,o=n.length;r<o;r++){var a=n[r].positionLineNumber,s=t.getLineMaxColumn(a);i[r]=this._enter(e,t,!1,new p.e(a,s,a,s))}return i}},{key:"lineBreakInsert",value:function(e,t,n){for(var i=[],r=0,o=n.length;r<o;r++)i[r]=this._enter(e,t,!0,n[r]);return i}}]),e}(),C=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,i,r,o){var a;return(0,u.Z)(this,n),(a=t.call(this,e,(r?i:"")+o,0,-o.length))._openCharacter=i,a._closeCharacter=o,a.closeCharacterRange=null,a.enclosingRange=null,a}return(0,l.Z)(n,[{key:"computeCursorState",value:function(e,t){var o=t.getInverseEditOperations()[0].range;return this.closeCharacterRange=new p.e(o.startLineNumber,o.endColumn-this._closeCharacter.length,o.endLineNumber,o.endColumn),this.enclosingRange=new p.e(o.startLineNumber,o.endColumn-this._openCharacter.length-this._closeCharacter.length,o.endLineNumber,o.endColumn),(0,i.Z)((0,r.Z)(n.prototype),"computeCursorState",this).call(this,e,t)}}]),n}(h.Uo)},86441:function(e,t,n){"use strict";n.d(t,{L:function(){return p},w:function(){return f}});var i=n(60136),r=n(29388),o=n(15671),a=n(43144),s=n(51747),u=n(16274),l=n(39765),c=n(20937),d=n(67297),h=n(67033),f=function(){function e(){(0,o.Z)(this,e)}return(0,a.Z)(e,null,[{key:"_createWord",value:function(e,t,n,i,r){return{start:i,end:r,wordType:t,nextCharClass:n}}},{key:"_findPreviousWordOnLine",value:function(e,t,n){var i=t.getLineContent(n.lineNumber);return this._doFindPreviousWordOnLine(i,e,n)}},{key:"_doFindPreviousWordOnLine",value:function(e,t,n){for(var i=0,r=n.column-2;r>=0;r--){var o=e.charCodeAt(r),a=t.get(o);if(0===a){if(2===i)return this._createWord(e,i,a,r+1,this._findEndOfWord(e,t,i,r+1));i=1}else if(2===a){if(1===i)return this._createWord(e,i,a,r+1,this._findEndOfWord(e,t,i,r+1));i=2}else if(1===a&&0!==i)return this._createWord(e,i,a,r+1,this._findEndOfWord(e,t,i,r+1))}return 0!==i?this._createWord(e,i,1,0,this._findEndOfWord(e,t,i,0)):null}},{key:"_findEndOfWord",value:function(e,t,n,i){for(var r=e.length,o=i;o<r;o++){var a=e.charCodeAt(o),s=t.get(a);if(1===s)return o;if(1===n&&2===s)return o;if(2===n&&0===s)return o}return r}},{key:"_findNextWordOnLine",value:function(e,t,n){var i=t.getLineContent(n.lineNumber);return this._doFindNextWordOnLine(i,e,n)}},{key:"_doFindNextWordOnLine",value:function(e,t,n){for(var i=0,r=e.length,o=n.column-1;o<r;o++){var a=e.charCodeAt(o),s=t.get(a);if(0===s){if(2===i)return this._createWord(e,i,s,this._findStartOfWord(e,t,i,o-1),o);i=1}else if(2===s){if(1===i)return this._createWord(e,i,s,this._findStartOfWord(e,t,i,o-1),o);i=2}else if(1===s&&0!==i)return this._createWord(e,i,s,this._findStartOfWord(e,t,i,o-1),o)}return 0!==i?this._createWord(e,i,1,this._findStartOfWord(e,t,i,r-1),r):null}},{key:"_findStartOfWord",value:function(e,t,n,i){for(var r=i;r>=0;r--){var o=e.charCodeAt(r),a=t.get(o);if(1===a)return r+1;if(1===n&&2===a)return r+1;if(2===n&&0===a)return r+1}return 0}},{key:"moveWordLeft",value:function(t,n,i,r){var o=i.lineNumber,a=i.column;1===a&&o>1&&(o-=1,a=n.getLineMaxColumn(o));var s=e._findPreviousWordOnLine(t,n,new d.L(o,a));if(0===r)return new d.L(o,s?s.start+1:1);if(1===r)return s&&2===s.wordType&&s.end-s.start===1&&0===s.nextCharClass&&(s=e._findPreviousWordOnLine(t,n,new d.L(o,s.start+1))),new d.L(o,s?s.start+1:1);if(3===r){for(;s&&2===s.wordType;)s=e._findPreviousWordOnLine(t,n,new d.L(o,s.start+1));return new d.L(o,s?s.start+1:1)}return s&&a<=s.end+1&&(s=e._findPreviousWordOnLine(t,n,new d.L(o,s.start+1))),new d.L(o,s?s.end+1:1)}},{key:"_moveWordPartLeft",value:function(e,t){var n=t.lineNumber,i=e.getLineMaxColumn(n);if(1===t.column)return n>1?new d.L(n-1,e.getLineMaxColumn(n-1)):t;for(var r=e.getLineContent(n),o=t.column-1;o>1;o--){var a=r.charCodeAt(o-2),u=r.charCodeAt(o-1);if(95===a&&95!==u)return new d.L(n,o);if(s.mK(a)&&s.df(u))return new d.L(n,o);if(s.df(a)&&s.df(u)&&o+1<i){var l=r.charCodeAt(o);if(s.mK(l))return new d.L(n,o)}}return new d.L(n,1)}},{key:"moveWordRight",value:function(t,n,i,r){var o=i.lineNumber,a=i.column,s=!1;a===n.getLineMaxColumn(o)&&o<n.getLineCount()&&(s=!0,o+=1,a=1);var u=e._findNextWordOnLine(t,n,new d.L(o,a));if(2===r)u&&2===u.wordType&&u.end-u.start===1&&0===u.nextCharClass&&(u=e._findNextWordOnLine(t,n,new d.L(o,u.end+1))),a=u?u.end+1:n.getLineMaxColumn(o);else if(3===r){for(s&&(a=0);u&&(2===u.wordType||u.start+1<=a);)u=e._findNextWordOnLine(t,n,new d.L(o,u.end+1));a=u?u.start+1:n.getLineMaxColumn(o)}else u&&!s&&a>=u.start+1&&(u=e._findNextWordOnLine(t,n,new d.L(o,u.end+1))),a=u?u.start+1:n.getLineMaxColumn(o);return new d.L(o,a)}},{key:"_moveWordPartRight",value:function(e,t){var n=t.lineNumber,i=e.getLineMaxColumn(n);if(t.column===i)return n<e.getLineCount()?new d.L(n+1,1):t;for(var r=e.getLineContent(n),o=t.column+1;o<i;o++){var a=r.charCodeAt(o-2),u=r.charCodeAt(o-1);if(95!==a&&95===u)return new d.L(n,o);if(s.mK(a)&&s.df(u))return new d.L(n,o);if(s.df(a)&&s.df(u)&&o+1<i){var l=r.charCodeAt(o);if(s.mK(l))return new d.L(n,o)}}return new d.L(n,i)}},{key:"_deleteWordLeftWhitespace",value:function(e,t){var n=e.getLineContent(t.lineNumber),i=t.column-2,r=s.ow(n,i);return r+1<i?new h.e(t.lineNumber,r+2,t.lineNumber,t.column):null}},{key:"deleteWordLeft",value:function(t,n){var i=t.wordSeparators,r=t.model,o=t.selection,a=t.whitespaceHeuristics;if(!o.isEmpty())return o;if(l.A.isAutoClosingPairDelete(t.autoClosingDelete,t.autoClosingBrackets,t.autoClosingQuotes,t.autoClosingPairs.autoClosingPairsOpenByEnd,t.model,[t.selection],t.autoClosedCharacters)){var s=t.selection.getPosition();return new h.e(s.lineNumber,s.column-1,s.lineNumber,s.column+1)}var u=new d.L(o.positionLineNumber,o.positionColumn),c=u.lineNumber,f=u.column;if(1===c&&1===f)return null;if(a){var p=this._deleteWordLeftWhitespace(r,u);if(p)return p}var v=e._findPreviousWordOnLine(i,r,u);return 0===n?v?f=v.start+1:f>1?f=1:(c--,f=r.getLineMaxColumn(c)):(v&&f<=v.end+1&&(v=e._findPreviousWordOnLine(i,r,new d.L(c,v.start+1))),v?f=v.end+1:f>1?f=1:(c--,f=r.getLineMaxColumn(c))),new h.e(c,f,u.lineNumber,u.column)}},{key:"deleteInsideWord",value:function(e,t,n){if(!n.isEmpty())return n;var i=new d.L(n.positionLineNumber,n.positionColumn),r=this._deleteInsideWordWhitespace(t,i);return r||this._deleteInsideWordDetermineDeleteRange(e,t,i)}},{key:"_charAtIsWhitespace",value:function(e,t){var n=e.charCodeAt(t);return 32===n||9===n}},{key:"_deleteInsideWordWhitespace",value:function(e,t){var n=e.getLineContent(t.lineNumber),i=n.length;if(0===i)return null;var r=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(n,r))return null;var o=Math.min(t.column-1,i-1);if(!this._charAtIsWhitespace(n,o))return null;for(;r>0&&this._charAtIsWhitespace(n,r-1);)r--;for(;o+1<i&&this._charAtIsWhitespace(n,o+1);)o++;return new h.e(t.lineNumber,r+1,t.lineNumber,o+2)}},{key:"_deleteInsideWordDetermineDeleteRange",value:function(t,n,i){var r=this,o=n.getLineContent(i.lineNumber),a=o.length;if(0===a)return i.lineNumber>1?new h.e(i.lineNumber-1,n.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumber<n.getLineCount()?new h.e(i.lineNumber,1,i.lineNumber+1,1):new h.e(i.lineNumber,1,i.lineNumber,1);var s=function(e){return e.start+1<=i.column&&i.column<=e.end+1},u=function(e,t){return e=Math.min(e,i.column),t=Math.max(t,i.column),new h.e(i.lineNumber,e,i.lineNumber,t)},l=function(e){for(var t=e.start+1,n=e.end+1,i=!1;n-1<a&&r._charAtIsWhitespace(o,n-1);)i=!0,n++;if(!i)for(;t>1&&r._charAtIsWhitespace(o,t-2);)t--;return u(t,n)},c=e._findPreviousWordOnLine(t,n,i);if(c&&s(c))return l(c);var d=e._findNextWordOnLine(t,n,i);return d&&s(d)?l(d):c&&d?u(c.end+1,d.start+1):c?u(c.start+1,c.end+1):d?u(d.start+1,d.end+1):u(1,a+1)}},{key:"_deleteWordPartLeft",value:function(t,n){if(!n.isEmpty())return n;var i=n.getPosition(),r=e._moveWordPartLeft(t,i);return new h.e(i.lineNumber,i.column,r.lineNumber,r.column)}},{key:"_findFirstNonWhitespaceChar",value:function(e,t){for(var n=e.length,i=t;i<n;i++){var r=e.charAt(i);if(" "!==r&&"\t"!==r)return i}return n}},{key:"_deleteWordRightWhitespace",value:function(e,t){var n=e.getLineContent(t.lineNumber),i=t.column-1,r=this._findFirstNonWhitespaceChar(n,i);return i+1<r?new h.e(t.lineNumber,t.column,t.lineNumber,r+1):null}},{key:"deleteWordRight",value:function(t,n){var i=t.wordSeparators,r=t.model,o=t.selection,a=t.whitespaceHeuristics;if(!o.isEmpty())return o;var s=new d.L(o.positionLineNumber,o.positionColumn),u=s.lineNumber,l=s.column,c=r.getLineCount(),f=r.getLineMaxColumn(u);if(u===c&&l===f)return null;if(a){var p=this._deleteWordRightWhitespace(r,s);if(p)return p}var v=e._findNextWordOnLine(i,r,s);return 2===n?v?l=v.end+1:l<f||u===c?l=f:(u++,l=(v=e._findNextWordOnLine(i,r,new d.L(u,1)))?v.start+1:r.getLineMaxColumn(u)):(v&&l>=v.start+1&&(v=e._findNextWordOnLine(i,r,new d.L(u,v.end+1))),v?l=v.start+1:l<f||u===c?l=f:(u++,l=(v=e._findNextWordOnLine(i,r,new d.L(u,1)))?v.start+1:r.getLineMaxColumn(u))),new h.e(u,l,s.lineNumber,s.column)}},{key:"_deleteWordPartRight",value:function(t,n){if(!n.isEmpty())return n;var i=n.getPosition(),r=e._moveWordPartRight(t,i);return new h.e(i.lineNumber,i.column,r.lineNumber,r.column)}},{key:"_createWordAtPosition",value:function(e,t,n){var i=new h.e(t,n.start+1,t,n.end+1);return{word:e.getValueInRange(i),startColumn:i.startColumn,endColumn:i.endColumn}}},{key:"getWordAtPosition",value:function(t,n,i){var r=(0,c.u)(n),o=e._findPreviousWordOnLine(r,t,i);if(o&&1===o.wordType&&o.start<=i.column-1&&i.column-1<=o.end)return e._createWordAtPosition(t,i.lineNumber,o);var a=e._findNextWordOnLine(r,t,i);return a&&1===a.wordType&&a.start<=i.column-1&&i.column-1<=a.end?e._createWordAtPosition(t,i.lineNumber,a):null}},{key:"word",value:function(t,n,i,r,o){var a,s,l,f,p=(0,c.u)(t.wordSeparators),v=e._findPreviousWordOnLine(p,n,o),g=e._findNextWordOnLine(p,n,o);if(!r)return v&&1===v.wordType&&v.start<=o.column-1&&o.column-1<=v.end?(a=v.start+1,s=v.end+1):g&&1===g.wordType&&g.start<=o.column-1&&o.column-1<=g.end?(a=g.start+1,s=g.end+1):(a=v?v.end+1:1,s=g?g.start+1:n.getLineMaxColumn(o.lineNumber)),new u.rS(new h.e(o.lineNumber,a,o.lineNumber,s),0,new d.L(o.lineNumber,s),0);v&&1===v.wordType&&v.start<o.column-1&&o.column-1<v.end?(l=v.start+1,f=v.end+1):g&&1===g.wordType&&g.start<o.column-1&&o.column-1<g.end?(l=g.start+1,f=g.end+1):(l=o.column,f=o.column);var m,_=o.lineNumber;if(i.selectionStart.containsPosition(o))m=i.selectionStart.endColumn;else if(o.isBeforeOrEqual(i.selectionStart.getStartPosition())){m=l;var y=new d.L(_,m);i.selectionStart.containsPosition(y)&&(m=i.selectionStart.endColumn)}else{m=f;var b=new d.L(_,m);i.selectionStart.containsPosition(b)&&(m=i.selectionStart.startColumn)}return i.move(!0,_,m,0)}}]),e}(),p=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(){return(0,o.Z)(this,n),t.apply(this,arguments)}return(0,a.Z)(n,null,[{key:"deleteWordPartLeft",value:function(e){var t=v([f.deleteWordLeft(e,0),f.deleteWordLeft(e,2),f._deleteWordPartLeft(e.model,e.selection)]);return t.sort(h.e.compareRangesUsingEnds),t[2]}},{key:"deleteWordPartRight",value:function(e){var t=v([f.deleteWordRight(e,0),f.deleteWordRight(e,2),f._deleteWordPartRight(e.model,e.selection)]);return t.sort(h.e.compareRangesUsingStarts),t[0]}},{key:"moveWordPartLeft",value:function(e,t,n){var i=v([f.moveWordLeft(e,t,n,0),f.moveWordLeft(e,t,n,2),f._moveWordPartLeft(t,n)]);return i.sort(d.L.compare),i[2]}},{key:"moveWordPartRight",value:function(e,t,n){var i=v([f.moveWordRight(e,t,n,0),f.moveWordRight(e,t,n,2),f._moveWordPartRight(t,n)]);return i.sort(d.L.compare),i[0]}}]),n}(f);function v(e){return e.filter((function(e){return Boolean(e)}))}},20937:function(e,t,n){"use strict";n.d(t,{u:function(){return u}});var i=n(43144),r=n(15671),o=n(60136),a=n(29388),s=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;(0,r.Z)(this,n),i=t.call(this,0);for(var o=0,a=e.length;o<a;o++)i.set(e.charCodeAt(o),2);return i.set(32,1),i.set(9,1),i}return(0,i.Z)(n)}(n(84516).N);var u=function(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e(n)),t[n]}}((function(e){return new s(e)}))},84516:function(e,t,n){"use strict";n.d(t,{N:function(){return a},q:function(){return s}});var i=n(15671),r=n(43144),o=n(38820),a=function(){function e(t){(0,i.Z)(this,e);var n=(0,o.K)(t);this._defaultValue=n,this._asciiMap=e._createAsciiMap(n),this._map=new Map}return(0,r.Z)(e,[{key:"set",value:function(e,t){var n=(0,o.K)(t);e>=0&&e<256?this._asciiMap[e]=n:this._map.set(e,n)}},{key:"get",value:function(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}}],[{key:"_createAsciiMap",value:function(e){for(var t=new Uint8Array(256),n=0;n<256;n++)t[n]=e;return t}}]),e}(),s=function(){function e(){(0,i.Z)(this,e),this._actual=new a(0)}return(0,r.Z)(e,[{key:"add",value:function(e){this._actual.set(e,1)}},{key:"has",value:function(e){return 1===this._actual.get(e)}}]),e}()},85025:function(e,t,n){"use strict";n.d(t,{h:function(){return a}});var i=n(15671),r=n(43144),o=n(67033),a=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,null,[{key:"insert",value:function(e,t){return{range:new o.e(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}},{key:"delete",value:function(e){return{range:e,text:null}}},{key:"replace",value:function(e,t){return{range:e,text:t}}},{key:"replaceMove",value:function(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}]),e}()},34763:function(e,t,n){"use strict";n.d(t,{A:function(){return a}});var i=n(15671),r=n(43144),o=n(99404),a=function(){function e(t,n){(0,i.Z)(this,e),this._tokens=t,this._tokensCount=this._tokens.length>>>1,this._text=n}return(0,r.Z)(e,[{key:"equals",value:function(t){return t instanceof e&&this.slicedEquals(t,0,this._tokensCount)}},{key:"slicedEquals",value:function(e,t,n){if(this._text!==e._text)return!1;if(this._tokensCount!==e._tokensCount)return!1;for(var i=t<<1,r=i+(n<<1),o=i;o<r;o++)if(this._tokens[o]!==e._tokens[o])return!1;return!0}},{key:"getLineContent",value:function(){return this._text}},{key:"getCount",value:function(){return this._tokensCount}},{key:"getStartOffset",value:function(e){return e>0?this._tokens[e-1<<1]:0}},{key:"getMetadata",value:function(e){return this._tokens[1+(e<<1)]}},{key:"getLanguageId",value:function(e){var t=this._tokens[1+(e<<1)];return o.NX.getLanguageId(t)}},{key:"getStandardTokenType",value:function(e){var t=this._tokens[1+(e<<1)];return o.NX.getTokenType(t)}},{key:"getForeground",value:function(e){var t=this._tokens[1+(e<<1)];return o.NX.getForeground(t)}},{key:"getClassName",value:function(e){var t=this._tokens[1+(e<<1)];return o.NX.getClassNameFromMetadata(t)}},{key:"getInlineStyle",value:function(e,t){var n=this._tokens[1+(e<<1)];return o.NX.getInlineStyleFromMetadata(n,t)}},{key:"getEndOffset",value:function(e){return this._tokens[e<<1]}},{key:"findTokenIndexAtOffset",value:function(t){return e.findIndexInTokensArray(this._tokens,t)}},{key:"inflate",value:function(){return this}},{key:"sliceAndInflate",value:function(e,t,n){return new s(this,e,t,n)}}],[{key:"convertToEndOffset",value:function(e,t){for(var n=(e.length>>>1)-1,i=0;i<n;i++)e[i<<1]=e[i+1<<1];e[n<<1]=t}},{key:"findIndexInTokensArray",value:function(e,t){if(e.length<=2)return 0;for(var n=0,i=(e.length>>>1)-1;n<i;){var r=n+Math.floor((i-n)/2),o=e[r<<1];if(o===t)return r+1;o<t?n=r+1:o>t&&(i=r)}return n}}]),e}(),s=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._source=t,this._startOffset=n,this._endOffset=r,this._deltaOffset=o,this._firstTokenIndex=t.findTokenIndexAtOffset(n),this._tokensCount=0;for(var a=this._firstTokenIndex,s=t.getCount();a<s;a++){if(t.getStartOffset(a)>=r)break;this._tokensCount++}}return(0,r.Z)(e,[{key:"equals",value:function(t){return t instanceof e&&(this._startOffset===t._startOffset&&this._endOffset===t._endOffset&&this._deltaOffset===t._deltaOffset&&this._source.slicedEquals(t._source,this._firstTokenIndex,this._tokensCount))}},{key:"getCount",value:function(){return this._tokensCount}},{key:"getForeground",value:function(e){return this._source.getForeground(this._firstTokenIndex+e)}},{key:"getEndOffset",value:function(e){var t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}},{key:"getClassName",value:function(e){return this._source.getClassName(this._firstTokenIndex+e)}},{key:"getInlineStyle",value:function(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}},{key:"findTokenIndexAtOffset",value:function(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}]),e}()},67297:function(e,t,n){"use strict";n.d(t,{L:function(){return o}});var i=n(15671),r=n(43144),o=function(){function e(t,n){(0,i.Z)(this,e),this.lineNumber=t,this.column=n}return(0,r.Z)(e,[{key:"with",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lineNumber,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.column;return t===this.lineNumber&&n===this.column?this:new e(t,n)}},{key:"delta",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.with(this.lineNumber+e,this.column+t)}},{key:"equals",value:function(t){return e.equals(this,t)}},{key:"isBefore",value:function(t){return e.isBefore(this,t)}},{key:"isBeforeOrEqual",value:function(t){return e.isBeforeOrEqual(this,t)}},{key:"clone",value:function(){return new e(this.lineNumber,this.column)}},{key:"toString",value:function(){return"("+this.lineNumber+","+this.column+")"}}],[{key:"equals",value:function(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}},{key:"isBefore",value:function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<t.column}},{key:"isBeforeOrEqual",value:function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<=t.column}},{key:"compare",value:function(e,t){var n=0|e.lineNumber,i=0|t.lineNumber;return n===i?(0|e.column)-(0|t.column):n-i}},{key:"lift",value:function(t){return new e(t.lineNumber,t.column)}},{key:"isIPosition",value:function(e){return e&&"number"===typeof e.lineNumber&&"number"===typeof e.column}}]),e}()},67033:function(e,t,n){"use strict";n.d(t,{e:function(){return a}});var i=n(15671),r=n(43144),o=n(67297),a=function(){function e(t,n,r,o){(0,i.Z)(this,e),t>r||t===r&&n>o?(this.startLineNumber=r,this.startColumn=o,this.endLineNumber=t,this.endColumn=n):(this.startLineNumber=t,this.startColumn=n,this.endLineNumber=r,this.endColumn=o)}return(0,r.Z)(e,[{key:"isEmpty",value:function(){return e.isEmpty(this)}},{key:"containsPosition",value:function(t){return e.containsPosition(this,t)}},{key:"containsRange",value:function(t){return e.containsRange(this,t)}},{key:"strictContainsRange",value:function(t){return e.strictContainsRange(this,t)}},{key:"plusRange",value:function(t){return e.plusRange(this,t)}},{key:"intersectRanges",value:function(t){return e.intersectRanges(this,t)}},{key:"equalsRange",value:function(t){return e.equalsRange(this,t)}},{key:"getEndPosition",value:function(){return e.getEndPosition(this)}},{key:"getStartPosition",value:function(){return e.getStartPosition(this)}},{key:"toString",value:function(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}},{key:"setEndPosition",value:function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)}},{key:"setStartPosition",value:function(t,n){return new e(t,n,this.endLineNumber,this.endColumn)}},{key:"collapseToStart",value:function(){return e.collapseToStart(this)}}],[{key:"isEmpty",value:function(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}},{key:"containsPosition",value:function(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.column<e.startColumn)&&!(t.lineNumber===e.endLineNumber&&t.column>e.endColumn))}},{key:"containsRange",value:function(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)))}},{key:"strictContainsRange",value:function(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))}},{key:"plusRange",value:function(t,n){var i,r,o,a;return n.startLineNumber<t.startLineNumber?(i=n.startLineNumber,r=n.startColumn):n.startLineNumber===t.startLineNumber?(i=n.startLineNumber,r=Math.min(n.startColumn,t.startColumn)):(i=t.startLineNumber,r=t.startColumn),n.endLineNumber>t.endLineNumber?(o=n.endLineNumber,a=n.endColumn):n.endLineNumber===t.endLineNumber?(o=n.endLineNumber,a=Math.max(n.endColumn,t.endColumn)):(o=t.endLineNumber,a=t.endColumn),new e(i,r,o,a)}},{key:"intersectRanges",value:function(t,n){var i=t.startLineNumber,r=t.startColumn,o=t.endLineNumber,a=t.endColumn,s=n.startLineNumber,u=n.startColumn,l=n.endLineNumber,c=n.endColumn;return i<s?(i=s,r=u):i===s&&(r=Math.max(r,u)),o>l?(o=l,a=c):o===l&&(a=Math.min(a,c)),i>o||i===o&&r>a?null:new e(i,r,o,a)}},{key:"equalsRange",value:function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}},{key:"getEndPosition",value:function(e){return new o.L(e.endLineNumber,e.endColumn)}},{key:"getStartPosition",value:function(e){return new o.L(e.startLineNumber,e.startColumn)}},{key:"collapseToStart",value:function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)}},{key:"fromPositions",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;return new e(t.lineNumber,t.column,n.lineNumber,n.column)}},{key:"lift",value:function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null}},{key:"isIRange",value:function(e){return e&&"number"===typeof e.startLineNumber&&"number"===typeof e.startColumn&&"number"===typeof e.endLineNumber&&"number"===typeof e.endColumn}},{key:"areIntersectingOrTouching",value:function(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)}},{key:"areIntersecting",value:function(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)}},{key:"compareRangesUsingStarts",value:function(e,t){if(e&&t){var n=0|e.startLineNumber,i=0|t.startLineNumber;if(n===i){var r=0|e.startColumn,o=0|t.startColumn;if(r===o){var a=0|e.endLineNumber,s=0|t.endLineNumber;return a===s?(0|e.endColumn)-(0|t.endColumn):a-s}return r-o}return n-i}return(e?1:0)-(t?1:0)}},{key:"compareRangesUsingEnds",value:function(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber}},{key:"spansMultipleLines",value:function(e){return e.endLineNumber>e.startLineNumber}}]),e}()},74964:function(e,t,n){"use strict";n.d(t,{Y:function(){return u}});var i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=n(67297),u=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this,e,r,o,a)).selectionStartLineNumber=e,s.selectionStartColumn=r,s.positionLineNumber=o,s.positionColumn=a,s}return(0,r.Z)(n,[{key:"toString",value:function(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}},{key:"equalsSelection",value:function(e){return n.selectionsEqual(this,e)}},{key:"getDirection",value:function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}},{key:"setEndPosition",value:function(e,t){return 0===this.getDirection()?new n(this.startLineNumber,this.startColumn,e,t):new n(e,t,this.startLineNumber,this.startColumn)}},{key:"getPosition",value:function(){return new s.L(this.positionLineNumber,this.positionColumn)}},{key:"setStartPosition",value:function(e,t){return 0===this.getDirection()?new n(e,t,this.endLineNumber,this.endColumn):new n(this.endLineNumber,this.endColumn,e,t)}}],[{key:"selectionsEqual",value:function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}},{key:"fromPositions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return new n(e.lineNumber,e.column,t.lineNumber,t.column)}},{key:"liftSelection",value:function(e){return new n(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}},{key:"selectionsArrEqual",value:function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,i=e.length;n<i;n++)if(!this.selectionsEqual(e[n],t[n]))return!1;return!0}},{key:"isISelection",value:function(e){return e&&"number"===typeof e.selectionStartLineNumber&&"number"===typeof e.selectionStartColumn&&"number"===typeof e.positionLineNumber&&"number"===typeof e.positionColumn}},{key:"createWithDirection",value:function(e,t,i,r,o){return 0===o?new n(e,t,i,r):new n(i,r,e,t)}}]),n}(n(67033).e)},85500:function(e,t,n){"use strict";n.d(t,{kH:function(){return p},l$:function(){return f},lZ:function(){return v},oe:function(){return h}});var i,r,o,a=n(15671),s=n(43144),u=n(51747),l=n(30487),c=n(27877);function d(){return i||(i=new TextDecoder("UTF-16LE")),i}function h(){return o||(o=l.r()?d():(r||(r=new TextDecoder("UTF-16BE")),r)),o}var f,p,v="undefined"!==typeof TextDecoder;function g(e,t,n){for(var i=[],r=0,o=0;o<n;o++){var a=c.mP(e,t);t+=2,i[r++]=String.fromCharCode(a)}return i.join("")}v?(f=function(e){return new m(e)},p=function(e,t,n){var i=new Uint16Array(e.buffer,t,n);if(n>0&&(65279===i[0]||65534===i[0]))return g(e,t,n);return d().decode(i)}):(f=function(e){return new _},p=g);var m=function(){function e(t){(0,a.Z)(this,e),this._capacity=0|t,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}return(0,s.Z)(e,[{key:"reset",value:function(){this._completedStrings=null,this._bufferLength=0}},{key:"build",value:function(){return null!==this._completedStrings?(this._flushBuffer(),this._completedStrings.join("")):this._buildBuffer()}},{key:"_buildBuffer",value:function(){if(0===this._bufferLength)return"";var e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return h().decode(e)}},{key:"_flushBuffer",value:function(){var e=this._buildBuffer();this._bufferLength=0,null===this._completedStrings?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e}},{key:"write1",value:function(e){var t=this._capacity-this._bufferLength;t<=1&&(0===t||u.ZG(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}},{key:"appendASCII",value:function(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}},{key:"appendASCIIString",value:function(e){var t=e.length;if(this._bufferLength+t>=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=e);for(var n=0;n<t;n++)this._buffer[this._bufferLength++]=e.charCodeAt(n)}}]),e}(),_=function(){function e(){(0,a.Z)(this,e),this._pieces=[],this._piecesLen=0}return(0,s.Z)(e,[{key:"reset",value:function(){this._pieces=[],this._piecesLen=0}},{key:"build",value:function(){return this._pieces.join("")}},{key:"write1",value:function(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)}},{key:"appendASCII",value:function(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)}},{key:"appendASCIIString",value:function(e){this._pieces[this._piecesLen++]=e}}]),e}()},98154:function(e,t,n){"use strict";n.d(t,{Hi:function(){return s},WU:function(){return o},hG:function(){return a}});var i=n(15671),r=n(43144),o=function(){function e(t,n,r){(0,i.Z)(this,e),this.offset=0|t,this.type=n,this.language=r}return(0,r.Z)(e,[{key:"toString",value:function(){return"("+this.offset+", "+this.type+")"}}]),e}(),a=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.tokens=t,this.endState=n})),s=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.tokens=t,this.endState=n}))},30633:function(e,t,n){"use strict";n.d(t,{p:function(){return o}});var i=n(15671),r=n(43144),o=function(){function e(t,n,r,o,a,s){(0,i.Z)(this,e),this.id=t,this.label=n,this.alias=r,this._precondition=o,this._run=a,this._contextKeyService=s}return(0,r.Z)(e,[{key:"isSupported",value:function(){return this._contextKeyService.contextMatchesRules(this._precondition)}},{key:"run",value:function(){return this.isSupported()?this._run():Promise.resolve(void 0)}}]),e}()},30062:function(e,t,n){"use strict";function i(e){return e&&"string"===typeof e.id}n.d(t,{I:function(){return i},g:function(){return r}});var r={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"}},21204:function(e,t,n){"use strict";n.d(t,{u:function(){return i}});var i,r=n(56345),o=n(18948);!function(e){e.editorSimpleInput=new o.uy("editorSimpleInput",!1,!0),e.editorTextFocus=new o.uy("editorTextFocus",!1,r.N("editorTextFocus","Whether the editor text has focus (cursor is blinking)")),e.focus=new o.uy("editorFocus",!1,r.N("editorFocus","Whether the editor or an editor widget has focus (e.g. focus is in the find widget)")),e.textInputFocus=new o.uy("textInputFocus",!1,r.N("textInputFocus","Whether an editor or a rich text input has focus (cursor is blinking)")),e.readOnly=new o.uy("editorReadonly",!1,r.N("editorReadonly","Whether the editor is read only")),e.inDiffEditor=new o.uy("inDiffEditor",!1,r.N("inDiffEditor","Whether the context is a diff editor")),e.columnSelection=new o.uy("editorColumnSelection",!1,r.N("editorColumnSelection","Whether `editor.columnSelection` is enabled")),e.writable=e.readOnly.toNegated(),e.hasNonEmptySelection=new o.uy("editorHasSelection",!1,r.N("editorHasSelection","Whether the editor has text selected")),e.hasOnlyEmptySelection=e.hasNonEmptySelection.toNegated(),e.hasMultipleSelections=new o.uy("editorHasMultipleSelections",!1,r.N("editorHasMultipleSelections","Whether the editor has multiple selections")),e.hasSingleSelection=e.hasMultipleSelections.toNegated(),e.tabMovesFocus=new o.uy("editorTabMovesFocus",!1,r.N("editorTabMovesFocus","Whether `Tab` will move focus out of the editor")),e.tabDoesNotMoveFocus=e.tabMovesFocus.toNegated(),e.isInWalkThroughSnippet=new o.uy("isInEmbeddedEditor",!1,!0),e.canUndo=new o.uy("canUndo",!1,!0),e.canRedo=new o.uy("canRedo",!1,!0),e.hoverVisible=new o.uy("editorHoverVisible",!1,r.N("editorHoverVisible","Whether the editor hover is visible")),e.inCompositeEditor=new o.uy("inCompositeEditor",void 0,r.N("inCompositeEditor","Whether the editor is part of a larger editor (e.g. notebooks)")),e.notInCompositeEditor=e.inCompositeEditor.toNegated(),e.languageId=new o.uy("editorLangId","",r.N("editorLangId","The language identifier of the editor")),e.hasCompletionItemProvider=new o.uy("editorHasCompletionItemProvider",!1,r.N("editorHasCompletionItemProvider","Whether the editor has a completion item provider")),e.hasCodeActionsProvider=new o.uy("editorHasCodeActionsProvider",!1,r.N("editorHasCodeActionsProvider","Whether the editor has a code actions provider")),e.hasCodeLensProvider=new o.uy("editorHasCodeLensProvider",!1,r.N("editorHasCodeLensProvider","Whether the editor has a code lens provider")),e.hasDefinitionProvider=new o.uy("editorHasDefinitionProvider",!1,r.N("editorHasDefinitionProvider","Whether the editor has a definition provider")),e.hasDeclarationProvider=new o.uy("editorHasDeclarationProvider",!1,r.N("editorHasDeclarationProvider","Whether the editor has a declaration provider")),e.hasImplementationProvider=new o.uy("editorHasImplementationProvider",!1,r.N("editorHasImplementationProvider","Whether the editor has an implementation provider")),e.hasTypeDefinitionProvider=new o.uy("editorHasTypeDefinitionProvider",!1,r.N("editorHasTypeDefinitionProvider","Whether the editor has a type definition provider")),e.hasHoverProvider=new o.uy("editorHasHoverProvider",!1,r.N("editorHasHoverProvider","Whether the editor has a hover provider")),e.hasDocumentHighlightProvider=new o.uy("editorHasDocumentHighlightProvider",!1,r.N("editorHasDocumentHighlightProvider","Whether the editor has a document highlight provider")),e.hasDocumentSymbolProvider=new o.uy("editorHasDocumentSymbolProvider",!1,r.N("editorHasDocumentSymbolProvider","Whether the editor has a document symbol provider")),e.hasReferenceProvider=new o.uy("editorHasReferenceProvider",!1,r.N("editorHasReferenceProvider","Whether the editor has a reference provider")),e.hasRenameProvider=new o.uy("editorHasRenameProvider",!1,r.N("editorHasRenameProvider","Whether the editor has a rename provider")),e.hasSignatureHelpProvider=new o.uy("editorHasSignatureHelpProvider",!1,r.N("editorHasSignatureHelpProvider","Whether the editor has a signature help provider")),e.hasInlineHintsProvider=new o.uy("editorHasInlineHintsProvider",!1,r.N("editorHasInlineHintsProvider","Whether the editor has an inline hints provider")),e.hasDocumentFormattingProvider=new o.uy("editorHasDocumentFormattingProvider",!1,r.N("editorHasDocumentFormattingProvider","Whether the editor has a document formatting provider")),e.hasDocumentSelectionFormattingProvider=new o.uy("editorHasDocumentSelectionFormattingProvider",!1,r.N("editorHasDocumentSelectionFormattingProvider","Whether the editor has a document selection formatting provider")),e.hasMultipleDocumentFormattingProvider=new o.uy("editorHasMultipleDocumentFormattingProvider",!1,r.N("editorHasMultipleDocumentFormattingProvider","Whether the editor has multiple document formatting providers")),e.hasMultipleDocumentSelectionFormattingProvider=new o.uy("editorHasMultipleDocumentSelectionFormattingProvider",!1,r.N("editorHasMultipleDocumentSelectionFormattingProvider","Whether the editor has multiple document selection formatting providers"))}(i||(i={}))},46502:function(e,t,n){"use strict";n.d(t,{F5:function(){return r},Qi:function(){return l},dJ:function(){return s},je:function(){return c},sh:function(){return i},tk:function(){return u}});var i,r,o=n(15671),a=n(43144);!function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(i||(i={})),function(e){e[e.Inline=1]="Inline",e[e.Gutter=2]="Gutter"}(r||(r={}));var s=function(){function e(t){(0,o.Z)(this,e),this.tabSize=Math.max(1,0|t.tabSize),this.indentSize=0|t.tabSize,this.insertSpaces=Boolean(t.insertSpaces),this.defaultEOL=0|t.defaultEOL,this.trimAutoWhitespace=Boolean(t.trimAutoWhitespace)}return(0,a.Z)(e,[{key:"equals",value:function(e){return this.tabSize===e.tabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace}},{key:"createChangeEvent",value:function(e){return{tabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}}}]),e}(),u=(0,a.Z)((function e(t,n){(0,o.Z)(this,e),this.range=t,this.matches=n})),l=(0,a.Z)((function e(t,n,i,r,a,s){(0,o.Z)(this,e),this.identifier=t,this.range=n,this.text=i,this.forceMoveMarkers=r,this.isAutoWhitespaceEdit=a,this._isTracked=s})),c=(0,a.Z)((function e(t,n,i){(0,o.Z)(this,e),this.reverseEdits=t,this.changes=n,this.trimAutoWhitespaceLineNumbers=i}))},57179:function(e,t,n){"use strict";n.d(t,{NL:function(){return y},e9:function(){return _}});var i=n(37762),r=n(15671),o=n(43144),a=n(56345),s=n(8729),u=n(74964),l=n(67775),c=n(51006),d=n(27877),h=n(51334);function f(e){return e.toString()}var p=function(){function e(t,n,i,o,a,s,u){(0,r.Z)(this,e),this.beforeVersionId=t,this.afterVersionId=n,this.beforeEOL=i,this.afterEOL=o,this.beforeCursorState=a,this.afterCursorState=s,this.changes=u}return(0,o.Z)(e,[{key:"append",value:function(e,t,n,i,r){t.length>0&&(this.changes=(0,c.b)(this.changes,t)),this.afterEOL=n,this.afterVersionId=i,this.afterCursorState=r}},{key:"serialize",value:function(){var t,n=10+e._writeSelectionsSize(this.beforeCursorState)+e._writeSelectionsSize(this.afterCursorState)+4,r=(0,i.Z)(this.changes);try{for(r.s();!(t=r.n()).done;){n+=t.value.writeSize()}}catch(l){r.e(l)}finally{r.f()}var o=new Uint8Array(n),a=0;d.T4(o,this.beforeVersionId,a),a+=4,d.T4(o,this.afterVersionId,a),a+=4,d.Cg(o,this.beforeEOL,a),a+=1,d.Cg(o,this.afterEOL,a),a+=1,a=e._writeSelections(o,this.beforeCursorState,a),a=e._writeSelections(o,this.afterCursorState,a),d.T4(o,this.changes.length,a),a+=4;var s,u=(0,i.Z)(this.changes);try{for(u.s();!(s=u.n()).done;){a=s.value.write(o,a)}}catch(l){u.e(l)}finally{u.f()}return o.buffer}}],[{key:"create",value:function(t,n){var i=t.getAlternativeVersionId(),r=m(t);return new e(i,i,r,r,n,n,[])}},{key:"_writeSelectionsSize",value:function(e){return 4+16*(e?e.length:0)}},{key:"_writeSelections",value:function(e,t,n){if(d.T4(e,t?t.length:0,n),n+=4,t){var r,o=(0,i.Z)(t);try{for(o.s();!(r=o.n()).done;){var a=r.value;d.T4(e,a.selectionStartLineNumber,n),n+=4,d.T4(e,a.selectionStartColumn,n),n+=4,d.T4(e,a.positionLineNumber,n),n+=4,d.T4(e,a.positionColumn,n),n+=4}}catch(s){o.e(s)}finally{o.f()}}return n}},{key:"_readSelections",value:function(e,t,n){var i=d.Ag(e,t);t+=4;for(var r=0;r<i;r++){var o=d.Ag(e,t);t+=4;var a=d.Ag(e,t);t+=4;var s=d.Ag(e,t);t+=4;var l=d.Ag(e,t);t+=4,n.push(new u.Y(o,a,s,l))}return t}},{key:"deserialize",value:function(t){var n=new Uint8Array(t),i=0,r=d.Ag(n,i);i+=4;var o=d.Ag(n,i);i+=4;var a=d.Q$(n,i);i+=1;var s=d.Q$(n,i);i+=1;var u=[];i=e._readSelections(n,i,u);var l=[];i=e._readSelections(n,i,l);var h=d.Ag(n,i);i+=4;for(var f=[],p=0;p<h;p++)i=c.q.read(n,i,f);return new e(r,o,a,s,u,l,f)}}]),e}(),v=function(){function e(t,n){(0,r.Z)(this,e),this.model=t,this._data=p.create(t,n)}return(0,o.Z)(e,[{key:"type",get:function(){return 0}},{key:"resource",get:function(){return l.o.isUri(this.model)?this.model:this.model.uri}},{key:"label",get:function(){return a.N("edit","Typing")}},{key:"toString",value:function(){return(this._data instanceof p?this._data:p.deserialize(this._data)).changes.map((function(e){return e.toString()})).join(", ")}},{key:"matchesResource",value:function(e){return(l.o.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}},{key:"setModel",value:function(e){this.model=e}},{key:"canAppend",value:function(e){return this.model===e&&this._data instanceof p}},{key:"append",value:function(e,t,n,i,r){this._data instanceof p&&this._data.append(e,t,n,i,r)}},{key:"close",value:function(){this._data instanceof p&&(this._data=this._data.serialize())}},{key:"open",value:function(){this._data instanceof p||(this._data=p.deserialize(this._data))}},{key:"undo",value:function(){if(l.o.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof p&&(this._data=this._data.serialize());var e=p.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}},{key:"redo",value:function(){if(l.o.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof p&&(this._data=this._data.serialize());var e=p.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}},{key:"heapSize",value:function(){return this._data instanceof p&&(this._data=this._data.serialize()),this._data.byteLength+168}}]),e}(),g=function(){function e(t,n){(0,r.Z)(this,e),this.type=1,this.label=t,this._isOpen=!0,this._editStackElementsArr=n.slice(0),this._editStackElementsMap=new Map;var o,a=(0,i.Z)(this._editStackElementsArr);try{for(a.s();!(o=a.n()).done;){var s=o.value,u=f(s.resource);this._editStackElementsMap.set(u,s)}}catch(l){a.e(l)}finally{a.f()}this._delegate=null}return(0,o.Z)(e,[{key:"resources",get:function(){return this._editStackElementsArr.map((function(e){return e.resource}))}},{key:"prepareUndoRedo",value:function(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}},{key:"matchesResource",value:function(e){var t=f(e);return this._editStackElementsMap.has(t)}},{key:"setModel",value:function(e){var t=f(l.o.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}},{key:"canAppend",value:function(e){if(!this._isOpen)return!1;var t=f(e.uri);return!!this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).canAppend(e)}},{key:"append",value:function(e,t,n,i,r){var o=f(e.uri);this._editStackElementsMap.get(o).append(e,t,n,i,r)}},{key:"close",value:function(){this._isOpen=!1}},{key:"open",value:function(){}},{key:"undo",value:function(){this._isOpen=!1;var e,t=(0,i.Z)(this._editStackElementsArr);try{for(t.s();!(e=t.n()).done;){e.value.undo()}}catch(n){t.e(n)}finally{t.f()}}},{key:"redo",value:function(){var e,t=(0,i.Z)(this._editStackElementsArr);try{for(t.s();!(e=t.n()).done;){e.value.redo()}}catch(n){t.e(n)}finally{t.f()}}},{key:"heapSize",value:function(e){var t=f(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}},{key:"split",value:function(){return this._editStackElementsArr}},{key:"toString",value:function(){var e,t=[],n=(0,i.Z)(this._editStackElementsArr);try{for(n.s();!(e=n.n()).done;){var r=e.value;t.push("".concat((0,h.EZ)(r.resource),": ").concat(r))}}catch(o){n.e(o)}finally{n.f()}return"{".concat(t.join(", "),"}")}}]),e}();function m(e){return"\n"===e.getEOL()?0:1}function _(e){return!!e&&(e instanceof v||e instanceof g)}var y=function(){function e(t,n){(0,r.Z)(this,e),this._model=t,this._undoRedoService=n}return(0,o.Z)(e,[{key:"pushStackElement",value:function(){var e=this._undoRedoService.getLastElement(this._model.uri);_(e)&&e.close()}},{key:"popStackElement",value:function(){var e=this._undoRedoService.getLastElement(this._model.uri);_(e)&&e.open()}},{key:"clear",value:function(){this._undoRedoService.removeElements(this._model.uri)}},{key:"_getOrCreateEditStackElement",value:function(e){var t=this._undoRedoService.getLastElement(this._model.uri);if(_(t)&&t.canAppend(this._model))return t;var n=new v(this._model,e);return this._undoRedoService.pushElement(n),n}},{key:"pushEOL",value:function(e){var t=this._getOrCreateEditStackElement(null);this._model.setEOL(e),t.append(this._model,[],m(this._model),this._model.getAlternativeVersionId(),null)}},{key:"pushEditOperation",value:function(t,n,i){var r=this._getOrCreateEditStackElement(t),o=this._model.applyEdits(n,!0),a=e._computeCursorState(i,o),s=o.map((function(e,t){return{index:t,textChange:e.textChange}}));return s.sort((function(e,t){return e.textChange.oldPosition===t.textChange.oldPosition?e.index-t.index:e.textChange.oldPosition-t.textChange.oldPosition})),r.append(this._model,s.map((function(e){return e.textChange})),m(this._model),this._model.getAlternativeVersionId(),a),a}}],[{key:"_computeCursorState",value:function(e,t){try{return e?e(t):null}catch(n){return(0,s.dL)(n),null}}}]),e}()},51006:function(e,t,n){"use strict";n.d(t,{b:function(){return c},q:function(){return l}});var i=n(29439),r=n(15671),o=n(43144),a=n(27877),s=n(85500);function u(e){return e.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}var l=function(){function e(t,n,i,o){(0,r.Z)(this,e),this.oldPosition=t,this.oldText=n,this.newPosition=i,this.newText=o}return(0,o.Z)(e,[{key:"oldLength",get:function(){return this.oldText.length}},{key:"oldEnd",get:function(){return this.oldPosition+this.oldText.length}},{key:"newLength",get:function(){return this.newText.length}},{key:"newEnd",get:function(){return this.newPosition+this.newText.length}},{key:"toString",value:function(){return 0===this.oldText.length?"(insert@".concat(this.oldPosition,' "').concat(u(this.newText),'")'):0===this.newText.length?"(delete@".concat(this.oldPosition,' "').concat(u(this.oldText),'")'):"(replace@".concat(this.oldPosition,' "').concat(u(this.oldText),'" with "').concat(u(this.newText),'")')}},{key:"writeSize",value:function(){return 8+e._writeStringSize(this.oldText)+e._writeStringSize(this.newText)}},{key:"write",value:function(t,n){return a.T4(t,this.oldPosition,n),n+=4,a.T4(t,this.newPosition,n),n+=4,n=e._writeString(t,this.oldText,n),n=e._writeString(t,this.newText,n)}}],[{key:"_writeStringSize",value:function(e){return 4+2*e.length}},{key:"_writeString",value:function(e,t,n){var i=t.length;a.T4(e,i,n),n+=4;for(var r=0;r<i;r++)a.oq(e,t.charCodeAt(r),n),n+=2;return n}},{key:"_readString",value:function(e,t){var n=a.Ag(e,t);return t+=4,(0,s.kH)(e,t,n)}},{key:"read",value:function(t,n,i){var r=a.Ag(t,n);n+=4;var o=a.Ag(t,n);n+=4;var s=e._readString(t,n);n+=e._writeStringSize(s);var u=e._readString(t,n);return n+=e._writeStringSize(u),i.push(new e(r,s,o,u)),n}}]),e}();function c(e,t){return null===e||0===e.length?t:new d(e,t).compress()}var d=function(){function e(t,n){(0,r.Z)(this,e),this._prevEdits=t,this._currEdits=n,this._result=[],this._resultLen=0,this._prevLen=this._prevEdits.length,this._prevDeltaOffset=0,this._currLen=this._currEdits.length,this._currDeltaOffset=0}return(0,o.Z)(e,[{key:"compress",value:function(){for(var t=0,n=0,r=this._getPrev(t),o=this._getCurr(n);t<this._prevLen||n<this._currLen;)if(null!==r)if(null!==o)if(o.oldEnd<=r.newPosition)this._acceptCurr(o),o=this._getCurr(++n);else if(r.newEnd<=o.oldPosition)this._acceptPrev(r),r=this._getPrev(++t);else if(o.oldPosition<r.newPosition){var a=e._splitCurr(o,r.newPosition-o.oldPosition),s=(0,i.Z)(a,2),u=s[0],c=s[1];this._acceptCurr(u),o=c}else if(r.newPosition<o.oldPosition){var d=e._splitPrev(r,o.oldPosition-r.newPosition),h=(0,i.Z)(d,2),f=h[0],p=h[1];this._acceptPrev(f),r=p}else{var v=void 0,g=void 0;if(o.oldEnd===r.newEnd)v=r,g=o,r=this._getPrev(++t),o=this._getCurr(++n);else if(o.oldEnd<r.newEnd){var m=e._splitPrev(r,o.oldLength),_=(0,i.Z)(m,2);v=_[0],g=o,r=_[1],o=this._getCurr(++n)}else{var y=e._splitCurr(o,r.newLength),b=(0,i.Z)(y,2),w=b[0],C=b[1];v=r,g=w,r=this._getPrev(++t),o=C}this._result[this._resultLen++]=new l(v.oldPosition,v.oldText,g.newPosition,g.newText),this._prevDeltaOffset+=v.newLength-v.oldLength,this._currDeltaOffset+=g.newLength-g.oldLength}else this._acceptPrev(r),r=this._getPrev(++t);else this._acceptCurr(o),o=this._getCurr(++n);var k=e._merge(this._result);return e._removeNoOps(k)}},{key:"_acceptCurr",value:function(t){this._result[this._resultLen++]=e._rebaseCurr(this._prevDeltaOffset,t),this._currDeltaOffset+=t.newLength-t.oldLength}},{key:"_getCurr",value:function(e){return e<this._currLen?this._currEdits[e]:null}},{key:"_acceptPrev",value:function(t){this._result[this._resultLen++]=e._rebasePrev(this._currDeltaOffset,t),this._prevDeltaOffset+=t.newLength-t.oldLength}},{key:"_getPrev",value:function(e){return e<this._prevLen?this._prevEdits[e]:null}}],[{key:"_rebaseCurr",value:function(e,t){return new l(t.oldPosition-e,t.oldText,t.newPosition,t.newText)}},{key:"_rebasePrev",value:function(e,t){return new l(t.oldPosition,t.oldText,t.newPosition+e,t.newText)}},{key:"_splitPrev",value:function(e,t){var n=e.newText.substr(0,t),i=e.newText.substr(t);return[new l(e.oldPosition,e.oldText,e.newPosition,n),new l(e.oldEnd,"",e.newPosition+t,i)]}},{key:"_splitCurr",value:function(e,t){var n=e.oldText.substr(0,t),i=e.oldText.substr(t);return[new l(e.oldPosition,n,e.newPosition,e.newText),new l(e.oldPosition+t,i,e.newEnd,"")]}},{key:"_merge",value:function(e){if(0===e.length)return e;for(var t=[],n=0,i=e[0],r=1;r<e.length;r++){var o=e[r];i.oldEnd===o.oldPosition?i=new l(i.oldPosition,i.oldText+o.oldText,i.newPosition,i.newText+o.newText):(t[n++]=i,i=o)}return t[n++]=i,t}},{key:"_removeNoOps",value:function(e){if(0===e.length)return e;for(var t=[],n=0,i=0;i<e.length;i++){var r=e[i];r.oldText!==r.newText&&(t[n++]=r)}return t}}]),e}()},28893:function(e,t,n){"use strict";n.d(t,{qx:function(){return ot},yO:function(){return Je}});var i=n(29439),r=n(97326),o=n(11752),a=n(61120),s=n(60136),u=n(29388),l=n(15671),c=n(43144),d=n(8729),h=n(11732),f=n(81626),p=n(51747),v=n(67775),g=n(76556),m=n(67297),_=n(67033),y=n(74964),b=n(46502),w=n(57179),C=(0,c.Z)((function e(){(0,l.Z)(this,e),this.spacesDiff=0,this.looksLikeAlignment=!1}));function k(e,t,n,i,r){var o;for(r.spacesDiff=0,r.looksLikeAlignment=!1,o=0;o<t&&o<i;o++){if(e.charCodeAt(o)!==n.charCodeAt(o))break}for(var a=0,s=0,u=o;u<t;u++){32===e.charCodeAt(u)?a++:s++}for(var l=0,c=0,d=o;d<i;d++){32===n.charCodeAt(d)?l++:c++}if(!(a>0&&s>0)&&!(l>0&&c>0)){var h=Math.abs(s-c),f=Math.abs(a-l);if(0===h)return r.spacesDiff=f,void(f>0&&0<=l-1&&l-1<e.length&&l<n.length&&32!==n.charCodeAt(l)&&32===e.charCodeAt(l-1)&&44===e.charCodeAt(e.length-1)&&(r.looksLikeAlignment=!0));f%h!==0||(r.spacesDiff=f/h)}}function S(e,t,n){for(var i=Math.min(e.getLineCount(),1e4),r=0,o=0,a="",s=0,u=[0,0,0,0,0,0,0,0,0],l=new C,c=1;c<=i;c++){for(var d=e.getLineLength(c),h=e.getLineContent(c),f=d<=65536,p=!1,v=0,g=0,m=0,_=0,y=d;_<y;_++){var b=f?h.charCodeAt(_):e.getLineCharCode(c,_);if(9===b)m++;else{if(32!==b){p=!0,v=_;break}g++}}if(p&&(m>0?r++:g>1&&o++,k(a,s,h,v,l),!l.looksLikeAlignment||n&&t===l.spacesDiff)){var w=l.spacesDiff;w<=8&&u[w]++,a=h,s=v}}var S=n;r!==o&&(S=r<o);var x=t;if(S){var L=S?0:.1*i;[2,4,6,8,3,5,7].forEach((function(e){var t=u[e];t>L&&(L=t,x=e)})),4===x&&u[4]>0&&u[2]>0&&u[2]>=u[4]/2&&(x=2)}return{insertSpaces:S,tabSize:x}}function x(e){return(1&e.metadata)>>>0}function L(e,t){e.metadata=254&e.metadata|t<<0}function E(e){return(2&e.metadata)>>>1===1}function N(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function D(e){return(4&e.metadata)>>>2===1}function M(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function T(e){return(8&e.metadata)>>>3===1}function O(e,t){e.metadata=247&e.metadata|(t?1:0)<<3}function I(e,t){e.metadata=207&e.metadata|t<<4}function A(e,t){e.metadata=191&e.metadata|(t?1:0)<<6}var P=function(){function e(t,n,i){(0,l.Z)(this,e),this.metadata=0,this.parent=this,this.left=this,this.right=this,L(this,1),this.start=n,this.end=i,this.delta=0,this.maxEnd=i,this.id=t,this.ownerId=0,this.options=null,M(this,!1),I(this,1),O(this,!1),A(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=n,this.cachedAbsoluteEnd=i,this.range=null,N(this,!1)}return(0,c.Z)(e,[{key:"reset",value:function(e,t,n,i){this.start=t,this.end=n,this.maxEnd=n,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=i}},{key:"setOptions",value:function(e){this.options=e;var t=this.options.className;M(this,"squiggly-error"===t||"squiggly-warning"===t||"squiggly-info"===t),I(this,this.options.stickiness),O(this,!(!this.options.overviewRuler||!this.options.overviewRuler.color)),A(this,this.options.collapseOnReplaceEdit)}},{key:"setCachedOffsets",value:function(e,t,n){this.cachedVersionId!==n&&(this.range=null),this.cachedVersionId=n,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}},{key:"detach",value:function(){this.parent=null,this.left=null,this.right=null}}]),e}(),R=new P(null,0,0);R.parent=R,R.left=R,R.right=R,L(R,0);var Z=function(){function e(){(0,l.Z)(this,e),this.root=R,this.requestNormalizeDelta=!1}return(0,c.Z)(e,[{key:"intervalSearch",value:function(e,t,n,i,r){return this.root===R?[]:function(e,t,n,i,r,o){var a=e.root,s=0,u=0,l=0,c=[],d=0;for(;a!==R;)if(E(a))N(a.left,!1),N(a.right,!1),a===a.parent.right&&(s-=a.parent.delta),a=a.parent;else{if(!E(a.left)){if(s+a.maxEnd<t){N(a,!0);continue}if(a.left!==R){a=a.left;continue}}if((u=s+a.start)>n)N(a,!0);else{if((l=s+a.end)>=t){a.setCachedOffsets(u,l,o);var h=!0;i&&a.ownerId&&a.ownerId!==i&&(h=!1),r&&D(a)&&(h=!1),h&&(c[d++]=a)}N(a,!0),a.right===R||E(a.right)||(s+=a.delta,a=a.right)}}return N(e.root,!1),c}(this,e,t,n,i,r)}},{key:"search",value:function(e,t,n){return this.root===R?[]:function(e,t,n,i){var r=e.root,o=0,a=0,s=0,u=[],l=0;for(;r!==R;)if(E(r))N(r.left,!1),N(r.right,!1),r===r.parent.right&&(o-=r.parent.delta),r=r.parent;else if(r.left===R||E(r.left)){a=o+r.start,s=o+r.end,r.setCachedOffsets(a,s,i);var c=!0;t&&r.ownerId&&r.ownerId!==t&&(c=!1),n&&D(r)&&(c=!1),c&&(u[l++]=r),N(r,!0),r.right===R||E(r.right)||(o+=r.delta,r=r.right)}else r=r.left;return N(e.root,!1),u}(this,e,t,n)}},{key:"collectNodesFromOwner",value:function(e){return function(e,t){var n=e.root,i=[],r=0;for(;n!==R;)E(n)?(N(n.left,!1),N(n.right,!1),n=n.parent):n.left===R||E(n.left)?(n.ownerId===t&&(i[r++]=n),N(n,!0),n.right===R||E(n.right)||(n=n.right)):n=n.left;return N(e.root,!1),i}(this,e)}},{key:"collectNodesPostOrder",value:function(){return function(e){var t=e.root,n=[],i=0;for(;t!==R;)E(t)?(N(t.left,!1),N(t.right,!1),t=t.parent):t.left===R||E(t.left)?t.right===R||E(t.right)?(n[i++]=t,N(t,!0)):t=t.right:t=t.left;return N(e.root,!1),n}(this)}},{key:"insert",value:function(e){H(this,e),this._normalizeDeltaIfNecessary()}},{key:"delete",value:function(e){B(this,e),this._normalizeDeltaIfNecessary()}},{key:"resolveNode",value:function(e,t){for(var n=e,i=0;e!==this.root;)e===e.parent.right&&(i+=e.parent.delta),e=e.parent;var r=n.start+i,o=n.end+i;n.setCachedOffsets(r,o,t)}},{key:"acceptReplace",value:function(e,t,n,i){for(var r=function(e,t,n){var i=e.root,r=0,o=0,a=0,s=[],u=0;for(;i!==R;)if(E(i))N(i.left,!1),N(i.right,!1),i===i.parent.right&&(r-=i.parent.delta),i=i.parent;else{if(!E(i.left)){if(r+i.maxEnd<t){N(i,!0);continue}if(i.left!==R){i=i.left;continue}}(o=r+i.start)>n?N(i,!0):((a=r+i.end)>=t&&(i.setCachedOffsets(o,a,0),s[u++]=i),N(i,!0),i.right===R||E(i.right)||(r+=i.delta,i=i.right))}return N(e.root,!1),s}(this,e,e+t),o=0,a=r.length;o<a;o++){B(this,r[o])}this._normalizeDeltaIfNecessary(),function(e,t,n,i){var r=e.root,o=0,a=i-(n-t);for(;r!==R;)if(E(r))N(r.left,!1),N(r.right,!1),r===r.parent.right&&(o-=r.parent.delta),U(r),r=r.parent;else{if(!E(r.left)){if(o+r.maxEnd<t){N(r,!0);continue}if(r.left!==R){r=r.left;continue}}o+r.start>n?(r.start+=a,r.end+=a,r.delta+=a,(r.delta<-1073741824||r.delta>1073741824)&&(e.requestNormalizeDelta=!0),N(r,!0)):(N(r,!0),r.right===R||E(r.right)||(o+=r.delta,r=r.right))}N(e.root,!1)}(this,e,e+t,n),this._normalizeDeltaIfNecessary();for(var s=0,u=r.length;s<u;s++){var l=r[s];l.start=l.cachedAbsoluteStart,l.end=l.cachedAbsoluteEnd,j(l,e,e+t,n,i),l.maxEnd=l.end,H(this,l)}this._normalizeDeltaIfNecessary()}},{key:"_normalizeDeltaIfNecessary",value:function(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,function(e){var t=e.root,n=0;for(;t!==R;)t.left===R||E(t.left)?t.right===R||E(t.right)?(t.start=n+t.start,t.end=n+t.end,t.delta=0,U(t),N(t,!0),N(t.left,!1),N(t.right,!1),t===t.parent.right&&(n-=t.parent.delta),t=t.parent):(n+=t.delta,t=t.right):t=t.left;N(e.root,!1)}(this))}}]),e}();function F(e,t,n,i){return e<n||!(e>n)&&(1!==i&&(2===i||t))}function j(e,t,n,i,r){var o=function(e){return(48&e.metadata)>>>4}(e),a=0===o||2===o,s=1===o||2===o,u=n-t,l=i,c=Math.min(u,l),d=e.start,h=!1,f=e.end,p=!1;t<=d&&f<=n&&function(e){return(64&e.metadata)>>>6===1}(e)&&(e.start=t,h=!0,e.end=t,p=!0);var v=r?1:u>0?2:0;if(!h&&F(d,a,t,v)&&(h=!0),!p&&F(f,s,t,v)&&(p=!0),c>0&&!r){var g=u>l?2:0;!h&&F(d,a,t+c,g)&&(h=!0),!p&&F(f,s,t+c,g)&&(p=!0)}var m=r?1:0;!h&&F(d,a,n,m)&&(e.start=t+l,h=!0),!p&&F(f,s,n,m)&&(e.end=t+l,p=!0);var _=l-u;h||(e.start=Math.max(0,d+_)),p||(e.end=Math.max(0,f+_)),e.start>e.end&&(e.end=e.start)}function H(e,t){if(e.root===R)return t.parent=R,t.left=R,t.right=R,L(t,0),e.root=t,e.root;!function(e,t){var n=0,i=e.root,r=t.start,o=t.end;for(;;){if(q(r,o,i.start+n,i.end+n)<0){if(i.left===R){t.start-=n,t.end-=n,t.maxEnd-=n,i.left=t;break}i=i.left}else{if(i.right===R){t.start-=n+i.delta,t.end-=n+i.delta,t.maxEnd-=n+i.delta,i.right=t;break}n+=i.delta,i=i.right}}t.parent=i,t.left=R,t.right=R,L(t,1)}(e,t),K(t.parent);for(var n=t;n!==e.root&&1===x(n.parent);)if(n.parent===n.parent.parent.left){var i=n.parent.parent.right;1===x(i)?(L(n.parent,0),L(i,0),L(n.parent.parent,1),n=n.parent.parent):(n===n.parent.right&&W(e,n=n.parent),L(n.parent,0),L(n.parent.parent,1),V(e,n.parent.parent))}else{var r=n.parent.parent.left;1===x(r)?(L(n.parent,0),L(r,0),L(n.parent.parent,1),n=n.parent.parent):(n===n.parent.left&&V(e,n=n.parent),L(n.parent,0),L(n.parent.parent,1),W(e,n.parent.parent))}return L(e.root,0),t}function B(e,t){var n,i;if(t.left===R?(i=t,(n=t.right).delta+=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta):t.right===R?(n=t.left,i=t):((n=(i=function(e){for(;e.left!==R;)e=e.left;return e}(t.right)).right).start+=i.delta,n.end+=i.delta,n.delta+=i.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=t.delta,i.end+=t.delta,i.delta=t.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0)),i===e.root)return e.root=n,L(n,0),t.detach(),z(),U(n),void(e.root.parent=R);var r,o=1===x(i);if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?n.parent=i.parent:(i.parent===t?n.parent=i:n.parent=i.parent,i.left=t.left,i.right=t.right,i.parent=t.parent,L(i,x(t)),t===e.root?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left!==R&&(i.left.parent=i),i.right!==R&&(i.right.parent=i)),t.detach(),o)return K(n.parent),i!==t&&(K(i),K(i.parent)),void z();for(K(n),K(n.parent),i!==t&&(K(i),K(i.parent));n!==e.root&&0===x(n);)n===n.parent.left?(1===x(r=n.parent.right)&&(L(r,0),L(n.parent,1),W(e,n.parent),r=n.parent.right),0===x(r.left)&&0===x(r.right)?(L(r,1),n=n.parent):(0===x(r.right)&&(L(r.left,0),L(r,1),V(e,r),r=n.parent.right),L(r,x(n.parent)),L(n.parent,0),L(r.right,0),W(e,n.parent),n=e.root)):(1===x(r=n.parent.left)&&(L(r,0),L(n.parent,1),V(e,n.parent),r=n.parent.left),0===x(r.left)&&0===x(r.right)?(L(r,1),n=n.parent):(0===x(r.left)&&(L(r.right,0),L(r,1),W(e,r),r=n.parent.left),L(r,x(n.parent)),L(n.parent,0),L(r.left,0),V(e,n.parent),n=e.root));L(n,0),z()}function z(){R.parent=R,R.delta=0,R.start=0,R.end=0}function W(e,t){var n=t.right;n.delta+=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta,t.right=n.left,n.left!==R&&(n.left.parent=t),n.parent=t.parent,t.parent===R?e.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n,U(t),U(n)}function V(e,t){var n=t.left;t.delta-=n.delta,(t.delta<-1073741824||t.delta>1073741824)&&(e.requestNormalizeDelta=!0),t.start-=n.delta,t.end-=n.delta,t.left=n.right,n.right!==R&&(n.right.parent=t),n.parent=t.parent,t.parent===R?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n,U(t),U(n)}function Y(e){var t=e.end;if(e.left!==R){var n=e.left.maxEnd;n>t&&(t=n)}if(e.right!==R){var i=e.right.maxEnd+e.delta;i>t&&(t=i)}return t}function U(e){e.maxEnd=Y(e)}function K(e){for(;e!==R;){var t=Y(e);if(e.maxEnd===t)return;e.maxEnd=t,e=e.parent}}function q(e,t,n,i){return e===n?t-i:e-n}var G=n(37762),$=function(){function e(t,n){(0,l.Z)(this,e),this.piece=t,this.color=n,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}return(0,c.Z)(e,[{key:"next",value:function(){if(this.right!==Q)return X(this.right);for(var e=this;e.parent!==Q&&e.parent.left!==e;)e=e.parent;return e.parent===Q?Q:e.parent}},{key:"prev",value:function(){if(this.left!==Q)return J(this.left);for(var e=this;e.parent!==Q&&e.parent.right!==e;)e=e.parent;return e.parent===Q?Q:e.parent}},{key:"detach",value:function(){this.parent=null,this.left=null,this.right=null}}]),e}(),Q=new $(null,0);function X(e){for(;e.left!==Q;)e=e.left;return e}function J(e){for(;e.right!==Q;)e=e.right;return e}function ee(e){return e===Q?0:e.size_left+e.piece.length+ee(e.right)}function te(e){return e===Q?0:e.lf_left+e.piece.lineFeedCnt+te(e.right)}function ne(){Q.parent=Q}function ie(e,t){var n=t.right;n.size_left+=t.size_left+(t.piece?t.piece.length:0),n.lf_left+=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),t.right=n.left,n.left!==Q&&(n.left.parent=t),n.parent=t.parent,t.parent===Q?e.root=n:t.parent.left===t?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n}function re(e,t){var n=t.left;t.left=n.right,n.right!==Q&&(n.right.parent=t),n.parent=t.parent,t.size_left-=n.size_left+(n.piece?n.piece.length:0),t.lf_left-=n.lf_left+(n.piece?n.piece.lineFeedCnt:0),t.parent===Q?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n}function oe(e,t){var n,i;if(n=t.left===Q?(i=t).right:t.right===Q?(i=t).left:(i=X(t.right)).right,i===e.root)return e.root=n,n.color=0,t.detach(),ne(),void(e.root.parent=Q);var r=1===i.color;if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?(n.parent=i.parent,ue(e,n)):(i.parent===t?n.parent=i:n.parent=i.parent,ue(e,n),i.left=t.left,i.right=t.right,i.parent=t.parent,i.color=t.color,t===e.root?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left!==Q&&(i.left.parent=i),i.right!==Q&&(i.right.parent=i),i.size_left=t.size_left,i.lf_left=t.lf_left,ue(e,i)),t.detach(),n.parent.left===n){var o=ee(n),a=te(n);if(o!==n.parent.size_left||a!==n.parent.lf_left){var s=o-n.parent.size_left,u=a-n.parent.lf_left;n.parent.size_left=o,n.parent.lf_left=a,se(e,n.parent,s,u)}}if(ue(e,n.parent),r)ne();else{for(var l;n!==e.root&&0===n.color;)n===n.parent.left?(1===(l=n.parent.right).color&&(l.color=0,n.parent.color=1,ie(e,n.parent),l=n.parent.right),0===l.left.color&&0===l.right.color?(l.color=1,n=n.parent):(0===l.right.color&&(l.left.color=0,l.color=1,re(e,l),l=n.parent.right),l.color=n.parent.color,n.parent.color=0,l.right.color=0,ie(e,n.parent),n=e.root)):(1===(l=n.parent.left).color&&(l.color=0,n.parent.color=1,re(e,n.parent),l=n.parent.left),0===l.left.color&&0===l.right.color?(l.color=1,n=n.parent):(0===l.left.color&&(l.right.color=0,l.color=1,ie(e,l),l=n.parent.left),l.color=n.parent.color,n.parent.color=0,l.left.color=0,re(e,n.parent),n=e.root));n.color=0,ne()}}function ae(e,t){for(ue(e,t);t!==e.root&&1===t.parent.color;)if(t.parent===t.parent.parent.left){var n=t.parent.parent.right;1===n.color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&ie(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,re(e,t.parent.parent))}else{var i=t.parent.parent.left;1===i.color?(t.parent.color=0,i.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.left&&re(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,ie(e,t.parent.parent))}e.root.color=0}function se(e,t,n,i){for(;t!==e.root&&t!==Q;)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}function ue(e,t){var n=0,i=0;if(t!==e.root){if(0===n){for(;t!==e.root&&t===t.parent.right;)t=t.parent;if(t===e.root)return;n=ee((t=t.parent).left)-t.size_left,i=te(t.left)-t.lf_left,t.size_left+=n,t.lf_left+=i}for(;t!==e.root&&(0!==n||0!==i);)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}}Q.parent=Q,Q.left=Q,Q.right=Q,Q.color=0;var le=n(44322),ce=65535;function de(e){var t;return(t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length)).set(e,0),t}var he=(0,c.Z)((function e(t,n,i,r,o){(0,l.Z)(this,e),this.lineStarts=t,this.cr=n,this.lf=i,this.crlf=r,this.isBasicASCII=o}));function fe(e){for(var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=[0],i=1,r=0,o=e.length;r<o;r++){var a=e.charCodeAt(r);13===a?r+1<o&&10===e.charCodeAt(r+1)?(n[i++]=r+2,r++):n[i++]=r+1:10===a&&(n[i++]=r+1)}return t?de(n):n}var pe=(0,c.Z)((function e(t,n,i,r,o){(0,l.Z)(this,e),this.bufferIndex=t,this.start=n,this.end=i,this.lineFeedCnt=r,this.length=o})),ve=(0,c.Z)((function e(t,n){(0,l.Z)(this,e),this.buffer=t,this.lineStarts=n})),ge=function(){function e(t,n){var i=this;(0,l.Z)(this,e),this._pieces=[],this._tree=t,this._BOM=n,this._index=0,t.root!==Q&&t.iterate(t.root,(function(e){return e!==Q&&i._pieces.push(e.piece),!0}))}return(0,c.Z)(e,[{key:"read",value:function(){return 0===this._pieces.length?0===this._index?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:0===this._index?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}]),e}(),me=function(){function e(t){(0,l.Z)(this,e),this._limit=t,this._cache=[]}return(0,c.Z)(e,[{key:"get",value:function(e){for(var t=this._cache.length-1;t>=0;t--){var n=this._cache[t];if(n.nodeStartOffset<=e&&n.nodeStartOffset+n.node.piece.length>=e)return n}return null}},{key:"get2",value:function(e){for(var t=this._cache.length-1;t>=0;t--){var n=this._cache[t];if(n.nodeStartLineNumber&&n.nodeStartLineNumber<e&&n.nodeStartLineNumber+n.node.piece.lineFeedCnt>=e)return n}return null}},{key:"set",value:function(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}},{key:"validate",value:function(e){for(var t=!1,n=this._cache,i=0;i<n.length;i++){var r=n[i];(null===r.node.parent||r.nodeStartOffset>=e)&&(n[i]=null,t=!0)}if(t){var o,a=[],s=(0,G.Z)(n);try{for(s.s();!(o=s.n()).done;){var u=o.value;null!==u&&a.push(u)}}catch(l){s.e(l)}finally{s.f()}this._cache=a}}}]),e}(),_e=function(){function e(t,n,i){(0,l.Z)(this,e),this.create(t,n,i)}return(0,c.Z)(e,[{key:"create",value:function(e,t,n){this._buffers=[new ve("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=Q,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=n;for(var i=null,r=0,o=e.length;r<o;r++)if(e[r].buffer.length>0){e[r].lineStarts||(e[r].lineStarts=fe(e[r].buffer));var a=new pe(r+1,{line:0,column:0},{line:e[r].lineStarts.length-1,column:e[r].buffer.length-e[r].lineStarts[e[r].lineStarts.length-1]},e[r].lineStarts.length-1,e[r].buffer.length);this._buffers.push(e[r]),i=this.rbInsertRight(i,a)}this._searchCache=new me(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}},{key:"normalizeEOL",value:function(e){var t=this,n=ce,i=n-Math.floor(n/3),r=2*i,o="",a=0,s=[];if(this.iterate(this.root,(function(n){var u=t.getNodeContent(n),l=u.length;if(a<=i||a+l<r)return o+=u,a+=l,!0;var c=o.replace(/\r\n|\r|\n/g,e);return s.push(new ve(c,fe(c))),o=u,a=l,!0})),a>0){var u=o.replace(/\r\n|\r|\n/g,e);s.push(new ve(u,fe(u)))}this.create(s,e,!0)}},{key:"getEOL",value:function(){return this._EOL}},{key:"setEOL",value:function(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}},{key:"createSnapshot",value:function(e){return new ge(this,e)}},{key:"getOffsetAt",value:function(e,t){for(var n=0,i=this.root;i!==Q;)if(i.left!==Q&&i.lf_left+1>=e)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt+1>=e)return(n+=i.size_left)+(this.getAccumulatedValue(i,e-i.lf_left-2)+t-1);e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right}return n}},{key:"getPositionAt",value:function(e){e=Math.floor(e),e=Math.max(0,e);for(var t=this.root,n=0,i=e;t!==Q;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){var r=this.getIndexOf(t,e-t.size_left);if(n+=t.lf_left+r.index,0===r.index){var o=i-this.getOffsetAt(n+1,1);return new m.L(n+1,o+1)}return new m.L(n+1,r.remainder+1)}if(e-=t.size_left+t.piece.length,n+=t.lf_left+t.piece.lineFeedCnt,t.right===Q){var a=i-e-this.getOffsetAt(n+1,1);return new m.L(n+1,a+1)}t=t.right}return new m.L(1,1)}},{key:"getValueInRange",value:function(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";var n=this.nodeAt2(e.startLineNumber,e.startColumn),i=this.nodeAt2(e.endLineNumber,e.endColumn),r=this.getValueInRange2(n,i);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?r:r.replace(/\r\n|\r|\n/g,t):r}},{key:"getValueInRange2",value:function(e,t){if(e.node===t.node){var n=e.node,i=this._buffers[n.piece.bufferIndex].buffer,r=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i.substring(r+e.remainder,r+t.remainder)}var o=e.node,a=this._buffers[o.piece.bufferIndex].buffer,s=this.offsetInBuffer(o.piece.bufferIndex,o.piece.start),u=a.substring(s+e.remainder,s+o.piece.length);for(o=o.next();o!==Q;){var l=this._buffers[o.piece.bufferIndex].buffer,c=this.offsetInBuffer(o.piece.bufferIndex,o.piece.start);if(o===t.node){u+=l.substring(c,c+t.remainder);break}u+=l.substr(c,o.piece.length),o=o.next()}return u}},{key:"getLinesContent",value:function(){var e=this,t=[],n=0,i="",r=!1;return this.iterate(this.root,(function(o){if(o===Q)return!0;var a=o.piece,s=a.length;if(0===s)return!0;var u=e._buffers[a.bufferIndex].buffer,l=e._buffers[a.bufferIndex].lineStarts,c=a.start.line,d=a.end.line,h=l[c]+a.start.column;if(r&&(10===u.charCodeAt(h)&&(h++,s--),t[n++]=i,i="",r=!1,0===s))return!0;if(c===d)return e._EOLNormalized||13!==u.charCodeAt(h+s-1)?i+=u.substr(h,s):(r=!0,i+=u.substr(h,s-1)),!0;i+=e._EOLNormalized?u.substring(h,Math.max(h,l[c+1]-e._EOLLength)):u.substring(h,l[c+1]).replace(/(\r\n|\r|\n)$/,""),t[n++]=i;for(var f=c+1;f<d;f++)i=e._EOLNormalized?u.substring(l[f],l[f+1]-e._EOLLength):u.substring(l[f],l[f+1]).replace(/(\r\n|\r|\n)$/,""),t[n++]=i;return e._EOLNormalized||13!==u.charCodeAt(l[d]+a.end.column-1)?i=u.substr(l[d],a.end.column):(r=!0,0===a.end.column?n--:i=u.substr(l[d],a.end.column-1)),!0})),r&&(t[n++]=i,i=""),t[n++]=i,t}},{key:"getLength",value:function(){return this._length}},{key:"getLineCount",value:function(){return this._lineCnt}},{key:"getLineContent",value:function(e){return this._lastVisitedLine.lineNumber===e||(this._lastVisitedLine.lineNumber=e,e===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(e):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(e,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(e).replace(/(\r\n|\r|\n)$/,"")),this._lastVisitedLine.value}},{key:"_getCharCode",value:function(e){if(e.remainder===e.node.piece.length){var t=e.node.next();if(!t)return 0;var n=this._buffers[t.piece.bufferIndex],i=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start);return n.buffer.charCodeAt(i)}var r=this._buffers[e.node.piece.bufferIndex],o=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start)+e.remainder;return r.buffer.charCodeAt(o)}},{key:"getLineCharCode",value:function(e,t){var n=this.nodeAt2(e,t+1);return this._getCharCode(n)}},{key:"getLineLength",value:function(e){if(e===this.getLineCount()){var t=this.getOffsetAt(e,1);return this.getLength()-t}return this.getOffsetAt(e+1,1)-this.getOffsetAt(e,1)-this._EOLLength}},{key:"findMatchesInNode",value:function(e,t,n,i,r,o,a,s,u,l,c){var d,h,f,p=this._buffers[e.piece.bufferIndex],v=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),g=this.offsetInBuffer(e.piece.bufferIndex,r),m=this.offsetInBuffer(e.piece.bufferIndex,o),y={line:0,column:0};t._wordSeparators?(h=p.buffer.substring(g,m),f=function(e){return e+g},t.reset(0)):(h=p.buffer,f=function(e){return e},t.reset(g));do{if(d=t.next(h)){if(f(d.index)>=m)return l;this.positionInBuffer(e,f(d.index)-v,y);var b=this.getLineFeedCnt(e.piece.bufferIndex,r,y),w=y.line===r.line?y.column-r.column+i:y.column+1,C=w+d[0].length;if(c[l++]=(0,le.iE)(new _.e(n+b,w,n+b,C),d,s),f(d.index)+d[0].length>=m)return l;if(l>=u)return l}}while(d);return l}},{key:"findMatchesLineByLine",value:function(e,t,n,i){var r=[],o=0,a=new le.sz(t.wordSeparators,t.regex),s=this.nodeAt2(e.startLineNumber,e.startColumn);if(null===s)return[];var u=this.nodeAt2(e.endLineNumber,e.endColumn);if(null===u)return[];var l=this.positionInBuffer(s.node,s.remainder),c=this.positionInBuffer(u.node,u.remainder);if(s.node===u.node)return this.findMatchesInNode(s.node,a,e.startLineNumber,e.startColumn,l,c,t,n,i,o,r),r;for(var d=e.startLineNumber,h=s.node;h!==u.node;){var f=this.getLineFeedCnt(h.piece.bufferIndex,l,h.piece.end);if(f>=1){var p=this._buffers[h.piece.bufferIndex].lineStarts,v=this.offsetInBuffer(h.piece.bufferIndex,h.piece.start),g=p[l.line+f],m=d===e.startLineNumber?e.startColumn:1;if((o=this.findMatchesInNode(h,a,d,m,l,this.positionInBuffer(h,g-v),t,n,i,o,r))>=i)return r;d+=f}var _=d===e.startLineNumber?e.startColumn-1:0;if(d===e.endLineNumber){var y=this.getLineContent(d).substring(_,e.endColumn-1);return o=this._findMatchesInLine(t,a,y,e.endLineNumber,_,o,r,n,i),r}if((o=this._findMatchesInLine(t,a,this.getLineContent(d).substr(_),d,_,o,r,n,i))>=i)return r;d++,h=(s=this.nodeAt2(d,1)).node,l=this.positionInBuffer(s.node,s.remainder)}if(d===e.endLineNumber){var b=d===e.startLineNumber?e.startColumn-1:0,w=this.getLineContent(d).substring(b,e.endColumn-1);return o=this._findMatchesInLine(t,a,w,e.endLineNumber,b,o,r,n,i),r}var C=d===e.startLineNumber?e.startColumn:1;return o=this.findMatchesInNode(u.node,a,d,C,l,c,t,n,i,o,r),r}},{key:"_findMatchesInLine",value:function(e,t,n,i,r,o,a,s,u){var l,c=e.wordSeparators;if(!s&&e.simpleSearch){for(var d=e.simpleSearch,h=d.length,f=n.length,p=-h;-1!==(p=n.indexOf(d,p+h));)if((!c||(0,le.cM)(c,n,f,p,h))&&(a[o++]=new b.tk(new _.e(i,p+1+r,i,p+1+h+r),null),o>=u))return o;return o}t.reset(0);do{if((l=t.next(n))&&(a[o++]=(0,le.iE)(new _.e(i,l.index+1+r,i,l.index+1+l[0].length+r),l,s),o>=u))return o}while(l);return o}},{key:"insert",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==Q){var i=this.nodeAt(e),r=i.node,o=i.remainder,a=i.nodeStartOffset,s=r.piece,u=s.bufferIndex,l=this.positionInBuffer(r,o);if(0===r.piece.bufferIndex&&s.end.line===this._lastChangeBufferPos.line&&s.end.column===this._lastChangeBufferPos.column&&a+s.length===e&&t.length<ce)return this.appendToNode(r,t),void this.computeBufferMetadata();if(a===e)this.insertContentToNodeLeft(t,r),this._searchCache.validate(e);else if(a+r.piece.length>e){var c=[],d=new pe(s.bufferIndex,l,s.end,this.getLineFeedCnt(s.bufferIndex,l,s.end),this.offsetInBuffer(u,s.end)-this.offsetInBuffer(u,l));if(this.shouldCheckCRLF()&&this.endWithCR(t))if(10===this.nodeCharCodeAt(r,o)){var h={line:d.start.line+1,column:0};d=new pe(d.bufferIndex,h,d.end,this.getLineFeedCnt(d.bufferIndex,h,d.end),d.length-1),t+="\n"}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(13===this.nodeCharCodeAt(r,o-1)){var f=this.positionInBuffer(r,o-1);this.deleteNodeTail(r,f),t="\r"+t,0===r.piece.length&&c.push(r)}else this.deleteNodeTail(r,l);else this.deleteNodeTail(r,l);var p=this.createNewPieces(t);d.length>0&&this.rbInsertRight(r,d);for(var v=r,g=0;g<p.length;g++)v=this.rbInsertRight(v,p[g]);this.deleteNodes(c)}else this.insertContentToNodeRight(t,r)}else for(var m=this.createNewPieces(t),_=this.rbInsertLeft(null,m[0]),y=1;y<m.length;y++)_=this.rbInsertRight(_,m[y]);this.computeBufferMetadata()}},{key:"delete",value:function(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",!(t<=0||this.root===Q)){var n=this.nodeAt(e),i=this.nodeAt(e+t),r=n.node,o=i.node;if(r===o){var a=this.positionInBuffer(r,n.remainder),s=this.positionInBuffer(r,i.remainder);if(n.nodeStartOffset===e){if(t===r.piece.length){var u=r.next();return oe(this,r),this.validateCRLFWithPrevNode(u),void this.computeBufferMetadata()}return this.deleteNodeHead(r,s),this._searchCache.validate(e),this.validateCRLFWithPrevNode(r),void this.computeBufferMetadata()}return n.nodeStartOffset+r.piece.length===e+t?(this.deleteNodeTail(r,a),this.validateCRLFWithNextNode(r),void this.computeBufferMetadata()):(this.shrinkNode(r,a,s),void this.computeBufferMetadata())}var l=[],c=this.positionInBuffer(r,n.remainder);this.deleteNodeTail(r,c),this._searchCache.validate(e),0===r.piece.length&&l.push(r);var d=this.positionInBuffer(o,i.remainder);this.deleteNodeHead(o,d),0===o.piece.length&&l.push(o);for(var h=r.next();h!==Q&&h!==o;h=h.next())l.push(h);var f=0===r.piece.length?r.prev():r;this.deleteNodes(l),this.validateCRLFWithNextNode(f),this.computeBufferMetadata()}}},{key:"insertContentToNodeLeft",value:function(e,t){var n=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){var i=t.piece,r={line:i.start.line+1,column:0},o=new pe(i.bufferIndex,r,i.end,this.getLineFeedCnt(i.bufferIndex,r,i.end),i.length-1);t.piece=o,e+="\n",se(this,t,-1,-1),0===t.piece.length&&n.push(t)}for(var a=this.createNewPieces(e),s=this.rbInsertLeft(t,a[a.length-1]),u=a.length-2;u>=0;u--)s=this.rbInsertLeft(s,a[u]);this.validateCRLFWithPrevNode(s),this.deleteNodes(n)}},{key:"insertContentToNodeRight",value:function(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+="\n");for(var n=this.createNewPieces(e),i=this.rbInsertRight(t,n[0]),r=i,o=1;o<n.length;o++)r=this.rbInsertRight(r,n[o]);this.validateCRLFWithPrevNode(i)}},{key:"positionInBuffer",value:function(e,t,n){for(var i=e.piece,r=e.piece.bufferIndex,o=this._buffers[r].lineStarts,a=o[i.start.line]+i.start.column+t,s=i.start.line,u=i.end.line,l=0,c=0,d=0;s<=u&&(d=o[l=s+(u-s)/2|0],l!==u);)if(c=o[l+1],a<d)u=l-1;else{if(!(a>=c))break;s=l+1}return n?(n.line=l,n.column=a-d,null):{line:l,column:a-d}}},{key:"getLineFeedCnt",value:function(e,t,n){if(0===n.column)return n.line-t.line;var i=this._buffers[e].lineStarts;if(n.line===i.length-1)return n.line-t.line;var r=i[n.line+1],o=i[n.line]+n.column;if(r>o+1)return n.line-t.line;var a=o-1;return 13===this._buffers[e].buffer.charCodeAt(a)?n.line-t.line+1:n.line-t.line}},{key:"offsetInBuffer",value:function(e,t){return this._buffers[e].lineStarts[t.line]+t.column}},{key:"deleteNodes",value:function(e){for(var t=0;t<e.length;t++)oe(this,e[t])}},{key:"createNewPieces",value:function(e){if(e.length>ce){for(var t=[];e.length>ce;){var n=e.charCodeAt(ce-1),i=void 0;13===n||n>=55296&&n<=56319?(i=e.substring(0,ce-1),e=e.substring(ce-1)):(i=e.substring(0,ce),e=e.substring(ce));var r=fe(i);t.push(new pe(this._buffers.length,{line:0,column:0},{line:r.length-1,column:i.length-r[r.length-1]},r.length-1,i.length)),this._buffers.push(new ve(i,r))}var o=fe(e);return t.push(new pe(this._buffers.length,{line:0,column:0},{line:o.length-1,column:e.length-o[o.length-1]},o.length-1,e.length)),this._buffers.push(new ve(e,o)),t}var a=this._buffers[0].buffer.length,s=fe(e,!1),u=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===a&&0!==a&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},u=this._lastChangeBufferPos;for(var l=0;l<s.length;l++)s[l]+=a+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(s.slice(1)),this._buffers[0].buffer+="_"+e,a+=1}else{if(0!==a)for(var c=0;c<s.length;c++)s[c]+=a;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(s.slice(1)),this._buffers[0].buffer+=e}var d=this._buffers[0].buffer.length,h=this._buffers[0].lineStarts.length-1,f={line:h,column:d-this._buffers[0].lineStarts[h]},p=new pe(0,u,f,this.getLineFeedCnt(0,u,f),d-a);return this._lastChangeBufferPos=f,[p]}},{key:"getLineRawContent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.root,i="",r=this._searchCache.get2(e);if(r){n=r.node;var o=this.getAccumulatedValue(n,e-r.nodeStartLineNumber-1),a=this._buffers[n.piece.bufferIndex].buffer,s=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(r.nodeStartLineNumber+n.piece.lineFeedCnt!==e){var u=this.getAccumulatedValue(n,e-r.nodeStartLineNumber);return a.substring(s+o,s+u-t)}i=a.substring(s+o,s+n.piece.length)}else for(var l=0,c=e;n!==Q;)if(n.left!==Q&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){var d=this.getAccumulatedValue(n,e-n.lf_left-2),h=this.getAccumulatedValue(n,e-n.lf_left-1),f=this._buffers[n.piece.bufferIndex].buffer,p=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return l+=n.size_left,this._searchCache.set({node:n,nodeStartOffset:l,nodeStartLineNumber:c-(e-1-n.lf_left)}),f.substring(p+d,p+h-t)}if(n.lf_left+n.piece.lineFeedCnt===e-1){var v=this.getAccumulatedValue(n,e-n.lf_left-2),g=this._buffers[n.piece.bufferIndex].buffer,m=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i=g.substring(m+v,m+n.piece.length);break}e-=n.lf_left+n.piece.lineFeedCnt,l+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==Q;){var _=this._buffers[n.piece.bufferIndex].buffer;if(n.piece.lineFeedCnt>0){var y=this.getAccumulatedValue(n,0),b=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i+=_.substring(b,b+y-t)}var w=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i+=_.substr(w,n.piece.length),n=n.next()}return i}},{key:"computeBufferMetadata",value:function(){for(var e=this.root,t=1,n=0;e!==Q;)t+=e.lf_left+e.piece.lineFeedCnt,n+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=n,this._searchCache.validate(this._length)}},{key:"getIndexOf",value:function(e,t){var n=e.piece,i=this.positionInBuffer(e,t),r=i.line-n.start.line;if(this.offsetInBuffer(n.bufferIndex,n.end)-this.offsetInBuffer(n.bufferIndex,n.start)===t){var o=this.getLineFeedCnt(e.piece.bufferIndex,n.start,i);if(o!==r)return{index:o,remainder:0}}return{index:r,remainder:i.column}}},{key:"getAccumulatedValue",value:function(e,t){if(t<0)return 0;var n=e.piece,i=this._buffers[n.bufferIndex].lineStarts,r=n.start.line+t+1;return r>n.end.line?i[n.end.line]+n.end.column-i[n.start.line]-n.start.column:i[r]-i[n.start.line]-n.start.column}},{key:"deleteNodeTail",value:function(e,t){var n=e.piece,i=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.end),o=t,a=this.offsetInBuffer(n.bufferIndex,o),s=this.getLineFeedCnt(n.bufferIndex,n.start,o),u=s-i,l=a-r,c=n.length+l;e.piece=new pe(n.bufferIndex,n.start,o,s,c),se(this,e,l,u)}},{key:"deleteNodeHead",value:function(e,t){var n=e.piece,i=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.start),o=t,a=this.getLineFeedCnt(n.bufferIndex,o,n.end),s=a-i,u=r-this.offsetInBuffer(n.bufferIndex,o),l=n.length+u;e.piece=new pe(n.bufferIndex,o,n.end,a,l),se(this,e,u,s)}},{key:"shrinkNode",value:function(e,t,n){var i=e.piece,r=i.start,o=i.end,a=i.length,s=i.lineFeedCnt,u=t,l=this.getLineFeedCnt(i.bufferIndex,i.start,u),c=this.offsetInBuffer(i.bufferIndex,t)-this.offsetInBuffer(i.bufferIndex,r);e.piece=new pe(i.bufferIndex,i.start,u,l,c),se(this,e,c-a,l-s);var d=new pe(i.bufferIndex,n,o,this.getLineFeedCnt(i.bufferIndex,n,o),this.offsetInBuffer(i.bufferIndex,o)-this.offsetInBuffer(i.bufferIndex,n)),h=this.rbInsertRight(e,d);this.validateCRLFWithPrevNode(h)}},{key:"appendToNode",value:function(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+="\n");var n=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),i=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;for(var r=fe(t,!1),o=0;o<r.length;o++)r[o]+=i;if(n){var a=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:i-a}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(r.slice(1));var s=this._buffers[0].lineStarts.length-1,u={line:s,column:this._buffers[0].buffer.length-this._buffers[0].lineStarts[s]},l=e.piece.length+t.length,c=e.piece.lineFeedCnt,d=this.getLineFeedCnt(0,e.piece.start,u),h=d-c;e.piece=new pe(e.piece.bufferIndex,e.piece.start,u,d,l),this._lastChangeBufferPos=u,se(this,e,t.length,h)}},{key:"nodeAt",value:function(e){var t=this.root,n=this._searchCache.get(e);if(n)return{node:n.node,nodeStartOffset:n.nodeStartOffset,remainder:e-n.nodeStartOffset};for(var i=0;t!==Q;)if(t.size_left>e)t=t.left;else{if(t.size_left+t.piece.length>=e){i+=t.size_left;var r={node:t,remainder:e-t.size_left,nodeStartOffset:i};return this._searchCache.set(r),r}e-=t.size_left+t.piece.length,i+=t.size_left+t.piece.length,t=t.right}return null}},{key:"nodeAt2",value:function(e,t){for(var n=this.root,i=0;n!==Q;)if(n.left!==Q&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){var r=this.getAccumulatedValue(n,e-n.lf_left-2),o=this.getAccumulatedValue(n,e-n.lf_left-1);return i+=n.size_left,{node:n,remainder:Math.min(r+t-1,o),nodeStartOffset:i}}if(n.lf_left+n.piece.lineFeedCnt===e-1){var a=this.getAccumulatedValue(n,e-n.lf_left-2);if(a+t-1<=n.piece.length)return{node:n,remainder:a+t-1,nodeStartOffset:i};t-=n.piece.length-a;break}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==Q;){if(n.piece.lineFeedCnt>0){var s=this.getAccumulatedValue(n,0),u=this.offsetOfNode(n);return{node:n,remainder:Math.min(t-1,s),nodeStartOffset:u}}if(n.piece.length>=t-1)return{node:n,remainder:t-1,nodeStartOffset:this.offsetOfNode(n)};t-=n.piece.length,n=n.next()}return null}},{key:"nodeCharCodeAt",value:function(e,t){if(e.piece.lineFeedCnt<1)return-1;var n=this._buffers[e.piece.bufferIndex],i=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return n.buffer.charCodeAt(i)}},{key:"offsetOfNode",value:function(e){if(!e)return 0;for(var t=e.size_left;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}},{key:"shouldCheckCRLF",value:function(){return!(this._EOLNormalized&&"\n"===this._EOL)}},{key:"startWithLF",value:function(e){if("string"===typeof e)return 10===e.charCodeAt(0);if(e===Q||0===e.piece.lineFeedCnt)return!1;var t=e.piece,n=this._buffers[t.bufferIndex].lineStarts,i=t.start.line,r=n[i]+t.start.column;return i!==n.length-1&&(!(n[i+1]>r+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(r))}},{key:"endWithCR",value:function(e){return"string"===typeof e?13===e.charCodeAt(e.length-1):e!==Q&&0!==e.piece.lineFeedCnt&&13===this.nodeCharCodeAt(e,e.piece.length-1)}},{key:"validateCRLFWithPrevNode",value:function(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){var t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}},{key:"validateCRLFWithNextNode",value:function(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){var t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}},{key:"fixCRLF",value:function(e,t){var n,i=[],r=this._buffers[e.piece.bufferIndex].lineStarts;n=0===e.piece.end.column?{line:e.piece.end.line-1,column:r[e.piece.end.line]-r[e.piece.end.line-1]-1}:{line:e.piece.end.line,column:e.piece.end.column-1};var o=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new pe(e.piece.bufferIndex,e.piece.start,n,a,o),se(this,e,-1,-1),0===e.piece.length&&i.push(e);var s={line:t.piece.start.line+1,column:0},u=t.piece.length-1,l=this.getLineFeedCnt(t.piece.bufferIndex,s,t.piece.end);t.piece=new pe(t.piece.bufferIndex,s,t.piece.end,l,u),se(this,t,-1,-1),0===t.piece.length&&i.push(t);var c=this.createNewPieces("\r\n");this.rbInsertRight(e,c[0]);for(var d=0;d<i.length;d++)oe(this,i[d])}},{key:"adjustCarriageReturnFromNext",value:function(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){var n=t.next();if(this.startWithLF(n)){if(e+="\n",1===n.piece.length)oe(this,n);else{var i=n.piece,r={line:i.start.line+1,column:0},o=i.length-1,a=this.getLineFeedCnt(i.bufferIndex,r,i.end);n.piece=new pe(i.bufferIndex,r,i.end,a,o),se(this,n,-1,-1)}return!0}}return!1}},{key:"iterate",value:function(e,t){if(e===Q)return t(Q);var n=this.iterate(e.left,t);return n?t(e)&&this.iterate(e.right,t):n}},{key:"getNodeContent",value:function(e){if(e===Q)return"";var t=this._buffers[e.piece.bufferIndex],n=e.piece,i=this.offsetInBuffer(n.bufferIndex,n.start),r=this.offsetInBuffer(n.bufferIndex,n.end);return t.buffer.substring(i,r)}},{key:"getPieceContent",value:function(e){var t=this._buffers[e.bufferIndex],n=this.offsetInBuffer(e.bufferIndex,e.start),i=this.offsetInBuffer(e.bufferIndex,e.end);return t.buffer.substring(n,i)}},{key:"rbInsertRight",value:function(e,t){var n=new $(t,1);if(n.left=Q,n.right=Q,n.parent=Q,n.size_left=0,n.lf_left=0,this.root===Q)this.root=n,n.color=0;else if(e.right===Q)e.right=n,n.parent=e;else{var i=X(e.right);i.left=n,n.parent=i}return ae(this,n),n}},{key:"rbInsertLeft",value:function(e,t){var n=new $(t,1);if(n.left=Q,n.right=Q,n.parent=Q,n.size_left=0,n.lf_left=0,this.root===Q)this.root=n,n.color=0;else if(e.left===Q)e.left=n,n.parent=e;else{var i=J(e.left);i.right=n,n.parent=i}return ae(this,n),n}}]),e}(),ye=n(98623),be=n(51006),we=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,o,a,s,u){var c;return(0,l.Z)(this,n),(c=t.call(this))._onDidChangeContent=c._register(new h.Q5),c._BOM=i,c._mightContainNonBasicASCII=!s,c._mightContainRTL=o,c._mightContainUnusualLineTerminators=a,c._pieceTree=new _e(e,r,u),c}return(0,c.Z)(n,[{key:"mightContainRTL",value:function(){return this._mightContainRTL}},{key:"mightContainUnusualLineTerminators",value:function(){return this._mightContainUnusualLineTerminators}},{key:"resetMightContainUnusualLineTerminators",value:function(){this._mightContainUnusualLineTerminators=!1}},{key:"mightContainNonBasicASCII",value:function(){return this._mightContainNonBasicASCII}},{key:"getBOM",value:function(){return this._BOM}},{key:"getEOL",value:function(){return this._pieceTree.getEOL()}},{key:"createSnapshot",value:function(e){return this._pieceTree.createSnapshot(e?this._BOM:"")}},{key:"getOffsetAt",value:function(e,t){return this._pieceTree.getOffsetAt(e,t)}},{key:"getPositionAt",value:function(e){return this._pieceTree.getPositionAt(e)}},{key:"getRangeAt",value:function(e,t){var n=e+t,i=this.getPositionAt(e),r=this.getPositionAt(n);return new _.e(i.lineNumber,i.column,r.lineNumber,r.column)}},{key:"getValueInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e.isEmpty())return"";var n=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,n)}},{key:"getValueLengthInRange",value:function(e){if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;var t=this.getOffsetAt(e.startLineNumber,e.startColumn);return this.getOffsetAt(e.endLineNumber,e.endColumn)-t}},{key:"getCharacterCountInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this._mightContainNonBasicASCII){for(var n=0,i=e.startLineNumber,r=e.endLineNumber,o=i;o<=r;o++)for(var a=this.getLineContent(o),s=o===i?e.startColumn-1:0,u=o===r?e.endColumn-1:a.length,l=s;l<u;l++)p.ZG(a.charCodeAt(l))?(n+=1,l+=1):n+=1;return n+=this._getEndOfLine(t).length*(r-i)}return this.getValueLengthInRange(e,t)}},{key:"getLength",value:function(){return this._pieceTree.getLength()}},{key:"getLineCount",value:function(){return this._pieceTree.getLineCount()}},{key:"getLinesContent",value:function(){return this._pieceTree.getLinesContent()}},{key:"getLineContent",value:function(e){return this._pieceTree.getLineContent(e)}},{key:"getLineCharCode",value:function(e,t){return this._pieceTree.getLineCharCode(e,t)}},{key:"getLineLength",value:function(e){return this._pieceTree.getLineLength(e)}},{key:"getLineFirstNonWhitespaceColumn",value:function(e){var t=p.LC(this.getLineContent(e));return-1===t?0:t+1}},{key:"getLineLastNonWhitespaceColumn",value:function(e){var t=p.ow(this.getLineContent(e));return-1===t?0:t+2}},{key:"_getEndOfLine",value:function(e){switch(e){case 1:return"\n";case 2:return"\r\n";case 0:return this.getEOL();default:throw new Error("Unknown EOL preference")}}},{key:"setEOL",value:function(e){this._pieceTree.setEOL(e)}},{key:"applyEdits",value:function(e,t,r){for(var o=this._mightContainRTL,a=this._mightContainUnusualLineTerminators,s=this._mightContainNonBasicASCII,u=!0,l=[],c=0;c<e.length;c++){var d=e[c];u&&d._isTracked&&(u=!1);var h=d.range;if(d.text){var f=!0;s||(s=f=!p.$i(d.text)),!o&&f&&(o=p.Ut(d.text)),!a&&f&&(a=p.ab(d.text))}var v="",g=0,m=0,_=0;if(d.text){var y,w=(0,ye.QZ)(d.text),C=(0,i.Z)(w,4);g=C[0],m=C[1],_=C[2],y=C[3];var k=this.getEOL();v=0===y||y===("\r\n"===k?2:1)?d.text:d.text.replace(/\r\n|\r|\n/g,k)}l[c]={sortIndex:c,identifier:d.identifier||null,range:h,rangeOffset:this.getOffsetAt(h.startLineNumber,h.startColumn),rangeLength:this.getValueLengthInRange(h),text:v,eolCount:g,firstLineLength:m,lastLineLength:_,forceMoveMarkers:Boolean(d.forceMoveMarkers),isAutoWhitespaceEdit:d.isAutoWhitespaceEdit||!1}}l.sort(n._sortOpsAscending);for(var S=!1,x=0,L=l.length-1;x<L;x++){var E=l[x].range.getEndPosition(),N=l[x+1].range.getStartPosition();if(N.isBeforeOrEqual(E)){if(N.isBefore(E))throw new Error("Overlapping ranges are not allowed!");S=!0}}u&&(l=this._reduceOperations(l));var D=r||t?n._getInverseEditRanges(l):[],M=[];if(t)for(var T=0;T<l.length;T++){var O=l[T],I=D[T];if(O.isAutoWhitespaceEdit&&O.range.isEmpty())for(var A=I.startLineNumber;A<=I.endLineNumber;A++){var P="";A===I.startLineNumber&&(P=this.getLineContent(O.range.startLineNumber),-1!==p.LC(P))||M.push({lineNumber:A,oldContent:P})}}var R=null;if(r){var Z=0;R=[];for(var F=0;F<l.length;F++){var j=l[F],H=D[F],B=this.getValueInRange(j.range),z=j.rangeOffset+Z;Z+=j.text.length-B.length,R[F]={sortIndex:j.sortIndex,identifier:j.identifier,range:H,text:B,textChange:new be.q(j.rangeOffset,B,z,j.text)}}S||R.sort((function(e,t){return e.sortIndex-t.sortIndex}))}this._mightContainRTL=o,this._mightContainUnusualLineTerminators=a,this._mightContainNonBasicASCII=s;var W=this._doApplyEdits(l),V=null;if(t&&M.length>0){M.sort((function(e,t){return t.lineNumber-e.lineNumber})),V=[];for(var Y=0,U=M.length;Y<U;Y++){var K=M[Y].lineNumber;if(!(Y>0&&M[Y-1].lineNumber===K)){var q=M[Y].oldContent,G=this.getLineContent(K);0!==G.length&&G!==q&&-1===p.LC(G)&&V.push(K)}}}return this._onDidChangeContent.fire(),new b.je(R,W,V)}},{key:"_reduceOperations",value:function(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}},{key:"_toSingleEditOperation",value:function(e){for(var t=!1,n=e[0].range,r=e[e.length-1].range,o=new _.e(n.startLineNumber,n.startColumn,r.endLineNumber,r.endColumn),a=n.startLineNumber,s=n.startColumn,u=[],l=0,c=e.length;l<c;l++){var d=e[l],h=d.range;t=t||d.forceMoveMarkers,u.push(this.getValueInRange(new _.e(a,s,h.startLineNumber,h.startColumn))),d.text.length>0&&u.push(d.text),a=h.endLineNumber,s=h.endColumn}var f=u.join(""),p=(0,ye.QZ)(f),v=(0,i.Z)(p,3),g=v[0],m=v[1],y=v[2];return{sortIndex:0,identifier:e[0].identifier,range:o,rangeOffset:this.getOffsetAt(o.startLineNumber,o.startColumn),rangeLength:this.getValueLengthInRange(o,0),text:f,eolCount:g,firstLineLength:m,lastLineLength:y,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}},{key:"_doApplyEdits",value:function(e){e.sort(n._sortOpsDescending);for(var t=[],i=0;i<e.length;i++){var r=e[i],o=r.range.startLineNumber,a=r.range.startColumn,s=r.range.endLineNumber,u=r.range.endColumn;if(o!==s||a!==u||0!==r.text.length){r.text?(this._pieceTree.delete(r.rangeOffset,r.rangeLength),this._pieceTree.insert(r.rangeOffset,r.text,!0)):this._pieceTree.delete(r.rangeOffset,r.rangeLength);var l=new _.e(o,a,s,u);t.push({range:l,rangeLength:r.rangeLength,text:r.text,rangeOffset:r.rangeOffset,forceMoveMarkers:r.forceMoveMarkers})}}return t}},{key:"findMatchesLineByLine",value:function(e,t,n,i){return this._pieceTree.findMatchesLineByLine(e,t,n,i)}}],[{key:"_getInverseEditRanges",value:function(e){for(var t=[],n=0,i=0,r=null,o=0,a=e.length;o<a;o++){var s=e[o],u=void 0,l=void 0;r?r.range.endLineNumber===s.range.startLineNumber?(u=n,l=i+(s.range.startColumn-r.range.endColumn)):(u=n+(s.range.startLineNumber-r.range.endLineNumber),l=s.range.startColumn):(u=s.range.startLineNumber,l=s.range.startColumn);var c=void 0;if(s.text.length>0){var d=s.eolCount+1;c=1===d?new _.e(u,l,u,l+s.firstLineLength):new _.e(u,l,u+d-1,s.lastLineLength+1)}else c=new _.e(u,l,u,l);n=c.endLineNumber,i=c.endColumn,t.push(c),r=s}return t}},{key:"_sortOpsAscending",value:function(e,t){var n=_.e.compareRangesUsingEnds(e.range,t.range);return 0===n?e.sortIndex-t.sortIndex:n}},{key:"_sortOpsDescending",value:function(e,t){var n=_.e.compareRangesUsingEnds(e.range,t.range);return 0===n?t.sortIndex-e.sortIndex:-n}}]),n}(f.JT),Ce=function(){function e(t,n,i,r,o,a,s,u,c){(0,l.Z)(this,e),this._chunks=t,this._bom=n,this._cr=i,this._lf=r,this._crlf=o,this._containsRTL=a,this._containsUnusualLineTerminators=s,this._isBasicASCII=u,this._normalizeEOL=c}return(0,c.Z)(e,[{key:"_getEOL",value:function(e){var t=this._cr+this._lf+this._crlf,n=this._cr+this._crlf;return 0===t?1===e?"\n":"\r\n":n>t/2?"\r\n":"\n"}},{key:"create",value:function(e){var t=this._getEOL(e),n=this._chunks;if(this._normalizeEOL&&("\r\n"===t&&(this._cr>0||this._lf>0)||"\n"===t&&(this._cr>0||this._crlf>0)))for(var i=0,r=n.length;i<r;i++){var o=n[i].buffer.replace(/\r\n|\r|\n/g,t),a=fe(o);n[i]=new ve(o,a)}var s=new we(n,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:s,disposable:s}}}]),e}(),ke=function(){function e(){(0,l.Z)(this,e),this.chunks=[],this.BOM="",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}return(0,c.Z)(e,[{key:"acceptChunk",value:function(e){if(0!==e.length){0===this.chunks.length&&p.uS(e)&&(this.BOM=p.c1,e=e.substr(1));var t=e.charCodeAt(e.length-1);13===t||t>=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}}},{key:"_acceptChunk1",value:function(e,t){(t||0!==e.length)&&(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}},{key:"_acceptChunk2",value:function(e){var t=function(e,t){e.length=0,e[0]=0;for(var n=1,i=0,r=0,o=0,a=!0,s=0,u=t.length;s<u;s++){var l=t.charCodeAt(s);13===l?s+1<u&&10===t.charCodeAt(s+1)?(o++,e[n++]=s+2,s++):(i++,e[n++]=s+1):10===l?(r++,e[n++]=s+1):a&&9!==l&&(l<32||l>126)&&(a=!1)}var c=new he(de(e),i,r,o,a);return e.length=0,c}(this._tmpLineStarts,e);this.chunks.push(new ve(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),this.isBasicASCII||this.containsRTL||(this.containsRTL=p.Ut(e)),this.isBasicASCII||this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=p.ab(e))}},{key:"finish",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._finish(),new Ce(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}},{key:"_finish",value:function(){if(0===this.chunks.length&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;var e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);var t=fe(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}}}]),e}(),Se=(0,c.Z)((function e(){(0,l.Z)(this,e),this.changeType=1})),xe=(0,c.Z)((function e(t,n){(0,l.Z)(this,e),this.changeType=2,this.lineNumber=t,this.detail=n})),Le=(0,c.Z)((function e(t,n){(0,l.Z)(this,e),this.changeType=3,this.fromLineNumber=t,this.toLineNumber=n})),Ee=(0,c.Z)((function e(t,n,i){(0,l.Z)(this,e),this.changeType=4,this.fromLineNumber=t,this.toLineNumber=n,this.detail=i})),Ne=(0,c.Z)((function e(){(0,l.Z)(this,e),this.changeType=5})),De=function(){function e(t,n,i,r){(0,l.Z)(this,e),this.changes=t,this.versionId=n,this.isUndoing=i,this.isRedoing=r,this.resultingSelection=null}return(0,c.Z)(e,[{key:"containsEvent",value:function(e){for(var t=0,n=this.changes.length;t<n;t++){if(this.changes[t].changeType===e)return!0}return!1}}],[{key:"merge",value:function(t,n){return new e([].concat(t.changes).concat(n.changes),n.versionId,t.isUndoing||n.isUndoing,t.isRedoing||n.isRedoing)}}]),e}(),Me=function(){function e(t,n){(0,l.Z)(this,e),this.rawContentChangedEvent=t,this.contentChangedEvent=n}return(0,c.Z)(e,[{key:"merge",value:function(t){var n=De.merge(this.rawContentChangedEvent,t.rawContentChangedEvent),i=e._mergeChangeEvents(this.contentChangedEvent,t.contentChangedEvent);return new e(n,i)}}],[{key:"_mergeChangeEvents",value:function(e,t){return{changes:[].concat(e.changes).concat(t.changes),eol:t.eol,versionId:t.versionId,isUndoing:e.isUndoing||t.isUndoing,isRedoing:e.isRedoing||t.isRedoing,isFlush:e.isFlush||t.isFlush}}}]),e}(),Te=n(49396),Oe=n(34763),Ie=n(99404),Ae=n(59401),Pe=n(96257),Re=n(30487),Ze=function(){function e(){(0,l.Z)(this,e),this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0}return(0,c.Z)(e,[{key:"_reset",value:function(e){this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0,e&&this._setBeginState(0,e)}},{key:"flush",value:function(e){this._reset(e)}},{key:"invalidLineStartIndex",get:function(){return this._invalidLineStartIndex}},{key:"_invalidateLine",value:function(e){e<this._len&&(this._valid[e]=!1),e<this._invalidLineStartIndex&&(this._invalidLineStartIndex=e)}},{key:"_isValid",value:function(e){return e<this._len&&this._valid[e]}},{key:"getBeginState",value:function(e){return e<this._len?this._beginState[e]:null}},{key:"_ensureLine",value:function(e){for(;e>=this._len;)this._beginState[this._len]=null,this._valid[this._len]=!1,this._len++}},{key:"_deleteLines",value:function(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._beginState.splice(e,t),this._valid.splice(e,t),this._len-=t)}},{key:"_insertLines",value:function(e,t){if(0!==t){for(var n=[],i=[],r=0;r<t;r++)n[r]=null,i[r]=!1;this._beginState=Te.Zv(this._beginState,e,n),this._valid=Te.Zv(this._valid,e,i),this._len+=t}}},{key:"_setValid",value:function(e,t){this._ensureLine(e),this._valid[e]=t}},{key:"_setBeginState",value:function(e,t){this._ensureLine(e),this._beginState[e]=t}},{key:"setEndState",value:function(e,t,n){if(this._setValid(t,!0),this._invalidLineStartIndex=t+1,t!==e-1){var i=this.getBeginState(t+1);if(null===i||!n.equals(i))return this._setBeginState(t+1,n),void this._invalidateLine(t+1);for(var r=t+1;r<e&&this._isValid(r);)r++;this._invalidLineStartIndex=r}}},{key:"setFakeTokens",value:function(e){this._setValid(e,!1)}},{key:"applyEdits",value:function(e,t){for(var n=e.endLineNumber-e.startLineNumber,i=t,r=Math.min(n,i);r>=0;r--)this._invalidateLine(e.startLineNumber+r-1);this._acceptDeleteRange(e),this._acceptInsertText(new m.L(e.startLineNumber,e.startColumn),t)}},{key:"_acceptDeleteRange",value:function(e){e.startLineNumber-1>=this._len||this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)}},{key:"_acceptInsertText",value:function(e,t){e.lineNumber-1>=this._len||this._insertLines(e.lineNumber,t)}}]),e}(),Fe=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var r;return(0,l.Z)(this,n),(r=t.call(this))._isDisposed=!1,r._textModel=e,r._tokenizationStateStore=new Ze,r._tokenizationSupport=null,r._register(Ie.RW.onDidChange((function(e){var t=r._textModel.getLanguageIdentifier();-1!==e.changedLanguages.indexOf(t.language)&&(r._resetTokenizationState(),r._textModel.clearTokens())}))),r._register(r._textModel.onDidChangeRawContentFast((function(e){e.containsEvent(1)&&r._resetTokenizationState()}))),r._register(r._textModel.onDidChangeContentFast((function(e){for(var t=0,n=e.changes.length;t<n;t++){var o=e.changes[t],a=(0,ye.QZ)(o.text),s=(0,i.Z)(a,1)[0];r._tokenizationStateStore.applyEdits(o.range,s)}r._beginBackgroundTokenization()}))),r._register(r._textModel.onDidChangeAttached((function(){r._beginBackgroundTokenization()}))),r._register(r._textModel.onDidChangeLanguage((function(){r._resetTokenizationState(),r._textModel.clearTokens()}))),r._resetTokenizationState(),r}return(0,c.Z)(n,[{key:"dispose",value:function(){this._isDisposed=!0,(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this)}},{key:"_resetTokenizationState",value:function(){var e=function(e){var t=e.getLanguageIdentifier(),n=e.isTooLargeForTokenization()?null:Ie.RW.get(t.language),i=null;if(n)try{i=n.getInitialState()}catch(r){(0,d.dL)(r),n=null}return[n,i]}(this._textModel),t=(0,i.Z)(e,2),n=t[0],r=t[1];this._tokenizationSupport=n,this._tokenizationStateStore.flush(r),this._beginBackgroundTokenization()}},{key:"_beginBackgroundTokenization",value:function(){var e=this;this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&Re.xS((function(){e._isDisposed||e._revalidateTokensNow()}))}},{key:"_revalidateTokensNow",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._textModel.getLineCount(),t=new ye.DA,n=Pe.G.create(!1);this._hasLinesToTokenize()&&!(n.elapsed()>1);){if(this._tokenizeOneInvalidLine(t)>=e)break}this._beginBackgroundTokenization(),this._textModel.setTokens(t.tokens)}},{key:"tokenizeViewport",value:function(e,t){var n=new ye.DA;this._tokenizeViewport(n,e,t),this._textModel.setTokens(n.tokens)}},{key:"reset",value:function(){this._resetTokenizationState(),this._textModel.clearTokens()}},{key:"forceTokenization",value:function(e){var t=new ye.DA;this._updateTokensUntilLine(t,e),this._textModel.setTokens(t.tokens)}},{key:"isCheapToTokenize",value:function(e){if(!this._tokenizationSupport)return!0;var t=this._tokenizationStateStore.invalidLineStartIndex+1;return!(e>t)&&(e<t||this._textModel.getLineLength(e)<2048)}},{key:"_hasLinesToTokenize",value:function(){return!!this._tokenizationSupport&&this._tokenizationStateStore.invalidLineStartIndex<this._textModel.getLineCount()}},{key:"_tokenizeOneInvalidLine",value:function(e){if(!this._hasLinesToTokenize())return this._textModel.getLineCount()+1;var t=this._tokenizationStateStore.invalidLineStartIndex+1;return this._updateTokensUntilLine(e,t),t}},{key:"_updateTokensUntilLine",value:function(e,t){if(this._tokenizationSupport)for(var n=this._textModel.getLanguageIdentifier(),i=this._textModel.getLineCount(),r=t-1,o=this._tokenizationStateStore.invalidLineStartIndex;o<=r;o++){var a=this._textModel.getLineContent(o+1),s=this._tokenizationStateStore.getBeginState(o),u=je(n,this._tokenizationSupport,a,!0,s);e.add(o+1,u.tokens),this._tokenizationStateStore.setEndState(i,o,u.endState),o=this._tokenizationStateStore.invalidLineStartIndex-1}}},{key:"_tokenizeViewport",value:function(e,t,n){if(this._tokenizationSupport&&!(n<=this._tokenizationStateStore.invalidLineStartIndex))if(t<=this._tokenizationStateStore.invalidLineStartIndex)this._updateTokensUntilLine(e,n);else{for(var i=this._textModel.getLineFirstNonWhitespaceColumn(t),r=[],o=null,a=t-1;i>0&&a>=1;a--){var s=this._textModel.getLineFirstNonWhitespaceColumn(a);if(0!==s&&s<i){if(o=this._tokenizationStateStore.getBeginState(a-1))break;r.push(this._textModel.getLineContent(a)),i=s}}o||(o=this._tokenizationSupport.getInitialState());for(var u=this._textModel.getLanguageIdentifier(),l=o,c=r.length-1;c>=0;c--){l=je(u,this._tokenizationSupport,r[c],!1,l).endState}for(var d=t;d<=n;d++){var h=this._textModel.getLineContent(d),f=je(u,this._tokenizationSupport,h,!0,l);e.add(d,f.tokens),this._tokenizationStateStore.setFakeTokens(d-1),l=f.endState}}}}]),n}(f.JT);function je(e,t,n,i,r){var o=null;if(t)try{o=t.tokenize2(n,i,r.clone(),0)}catch(a){(0,d.dL)(a)}return o||(o=(0,Ae.mh)(e.id,n,r,0)),Oe.A.convertToEndOffset(o.tokens,n.length),o}var He=n(43717),Be=n(65262),ze=n(57429),We=n(8102),Ve=n(89938);function Ye(e){var t=new ke;return t.acceptChunk(e),t.finish()}function Ue(e,t){return("string"===typeof e?Ye(e):e).create(t)}var Ke=0,qe=999,Ge=function(){function e(t){(0,l.Z)(this,e),this._source=t,this._eos=!1}return(0,c.Z)(e,[{key:"read",value:function(){if(this._eos)return null;for(var e=[],t=0,n=0;;){var i=this._source.read();if(null===i)return this._eos=!0,0===t?null:e.join("");if(i.length>0&&(e[t++]=i,n+=i.length),n>=65536)return e.join("")}}}]),e}(),$e=function(){throw new Error("Invalid change accessor")},Qe=(0,c.Z)((function e(){(0,l.Z)(this,e),this._searchCanceledBrand=void 0}));function Xe(e){return e instanceof Qe?null:e}Qe.INSTANCE=new Qe;var Je=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,o){var a,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,u=arguments.length>4?arguments[4]:void 0;(0,l.Z)(this,n),(a=t.call(this))._onWillDispose=a._register(new h.Q5),a.onWillDispose=a._onWillDispose.event,a._onDidChangeDecorations=a._register(new ut),a.onDidChangeDecorations=a._onDidChangeDecorations.event,a._onDidChangeLanguage=a._register(new h.Q5),a.onDidChangeLanguage=a._onDidChangeLanguage.event,a._onDidChangeLanguageConfiguration=a._register(new h.Q5),a.onDidChangeLanguageConfiguration=a._onDidChangeLanguageConfiguration.event,a._onDidChangeTokens=a._register(new h.Q5),a.onDidChangeTokens=a._onDidChangeTokens.event,a._onDidChangeOptions=a._register(new h.Q5),a.onDidChangeOptions=a._onDidChangeOptions.event,a._onDidChangeAttached=a._register(new h.Q5),a.onDidChangeAttached=a._onDidChangeAttached.event,a._eventEmitter=a._register(new lt),Ke++,a.id="$model"+Ke,a.isForSimpleWidget=i.isForSimpleWidget,a._associatedResource="undefined"===typeof s||null===s?v.o.parse("inmemory://model/"+Ke):s,a._undoRedoService=u,a._attachedEditorCount=0;var c=Ue(e,i.defaultEOL),d=c.textBuffer,f=c.disposable;a._buffer=d,a._bufferDisposable=f,a._options=n.resolveOptions(a._buffer,i);var g=a._buffer.getLineCount(),m=a._buffer.getValueLengthInRange(new _.e(1,1,g,a._buffer.getLineLength(g)+1),0);return i.largeFileOptimizations?a._isTooLargeForTokenization=m>n.LARGE_FILE_SIZE_THRESHOLD||g>n.LARGE_FILE_LINE_COUNT_THRESHOLD:a._isTooLargeForTokenization=!1,a._isTooLargeForSyncing=m>n.MODEL_SYNC_LIMIT,a._versionId=1,a._alternativeVersionId=1,a._initialUndoRedoSnapshot=null,a._isDisposed=!1,a._isDisposing=!1,a._languageIdentifier=o||Ae.pA,a._languageRegistryListener=Be.zu.onDidChange((function(e){e.languageIdentifier.id===a._languageIdentifier.id&&a._onDidChangeLanguageConfiguration.fire({})})),a._instanceId=p.PJ(Ke),a._lastDecorationId=0,a._decorations=Object.create(null),a._decorationsTree=new et,a._commandManager=new w.NL((0,r.Z)(a),u),a._isUndoing=!1,a._isRedoing=!1,a._trimAutoWhitespaceLines=null,a._tokens=new ye.Rl,a._tokens2=new ye.cx,a._tokenization=new Fe((0,r.Z)(a)),a}return(0,c.Z)(n,[{key:"onDidChangeRawContentFast",value:function(e){return this._eventEmitter.fastEvent((function(t){return e(t.rawContentChangedEvent)}))}},{key:"onDidChangeContentFast",value:function(e){return this._eventEmitter.fastEvent((function(t){return e(t.contentChangedEvent)}))}},{key:"onDidChangeContent",value:function(e){return this._eventEmitter.slowEvent((function(t){return e(t.contentChangedEvent)}))}},{key:"dispose",value:function(){this._isDisposing=!0,this._onWillDispose.fire(),this._languageRegistryListener.dispose(),this._tokenization.dispose(),this._isDisposed=!0,(0,o.Z)((0,a.Z)(n.prototype),"dispose",this).call(this),this._bufferDisposable.dispose(),this._isDisposing=!1;var e=new we([],"","\n",!1,!1,!0,!0);e.dispose(),this._buffer=e}},{key:"_assertNotDisposed",value:function(){if(this._isDisposed)throw new Error("Model is disposed!")}},{key:"_emitContentChangedEvent",value:function(e,t){this._isDisposing||this._eventEmitter.fire(new Me(e,t))}},{key:"setValue",value:function(e){if(this._assertNotDisposed(),null!==e){var t=Ue(e,this._options.defaultEOL),n=t.textBuffer,i=t.disposable;this._setValueFromTextBuffer(n,i)}}},{key:"_createContentChanged2",value:function(e,t,n,i,r,o,a){return{changes:[{range:e,rangeOffset:t,rangeLength:n,text:i}],eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:r,isRedoing:o,isFlush:a}}},{key:"_setValueFromTextBuffer",value:function(e,t){this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueLengthInRange(n),r=this.getLineCount(),o=this.getLineMaxColumn(r);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._tokens.flush(),this._tokens2.flush(),this._decorations=Object.create(null),this._decorationsTree=new et,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new De([new Se],this._versionId,!1,!1),this._createContentChanged2(new _.e(1,1,r,o),0,i,this.getValue(),!1,!1,!0))}},{key:"setEOL",value:function(e){this._assertNotDisposed();var t=1===e?"\r\n":"\n";if(this._buffer.getEOL()!==t){var n=this.getFullModelRange(),i=this.getValueLengthInRange(n),r=this.getLineCount(),o=this.getLineMaxColumn(r);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new De([new Ne],this._versionId,!1,!1),this._createContentChanged2(new _.e(1,1,r,o),0,i,this.getValue(),!1,!1,!1))}}},{key:"_onBeforeEOLChange",value:function(){var e=this.getVersionId(),t=this._decorationsTree.search(0,!1,!1,e);this._ensureNodesHaveRanges(t)}},{key:"_onAfterEOLChange",value:function(){for(var e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder(),n=0,i=t.length;n<i;n++){var r=t[n],o=r.cachedAbsoluteStart-r.start,a=this._buffer.getOffsetAt(r.range.startLineNumber,r.range.startColumn),s=this._buffer.getOffsetAt(r.range.endLineNumber,r.range.endColumn);r.cachedAbsoluteStart=a,r.cachedAbsoluteEnd=s,r.cachedVersionId=e,r.start=a-o,r.end=s-o,U(r)}}},{key:"onBeforeAttached",value:function(){this._attachedEditorCount++,1===this._attachedEditorCount&&this._onDidChangeAttached.fire(void 0)}},{key:"onBeforeDetached",value:function(){this._attachedEditorCount--,0===this._attachedEditorCount&&this._onDidChangeAttached.fire(void 0)}},{key:"isAttachedToEditor",value:function(){return this._attachedEditorCount>0}},{key:"getAttachedEditorCount",value:function(){return this._attachedEditorCount}},{key:"isTooLargeForSyncing",value:function(){return this._isTooLargeForSyncing}},{key:"isTooLargeForTokenization",value:function(){return this._isTooLargeForTokenization}},{key:"isDisposed",value:function(){return this._isDisposed}},{key:"isDominatedByLongLines",value:function(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;for(var e=0,t=0,n=this._buffer.getLineCount(),i=1;i<=n;i++){var r=this._buffer.getLineLength(i);r>=1e4?t+=r:e+=r}return t>e}},{key:"uri",get:function(){return this._associatedResource}},{key:"getOptions",value:function(){return this._assertNotDisposed(),this._options}},{key:"getFormattingOptions",value:function(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}},{key:"updateOptions",value:function(e){this._assertNotDisposed();var t="undefined"!==typeof e.tabSize?e.tabSize:this._options.tabSize,n="undefined"!==typeof e.indentSize?e.indentSize:this._options.indentSize,i="undefined"!==typeof e.insertSpaces?e.insertSpaces:this._options.insertSpaces,r="undefined"!==typeof e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,o=new b.dJ({tabSize:t,indentSize:n,insertSpaces:i,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:r});if(!this._options.equals(o)){var a=this._options.createChangeEvent(o);this._options=o,this._onDidChangeOptions.fire(a)}}},{key:"detectIndentation",value:function(e,t){this._assertNotDisposed();var n=S(this._buffer,t,e);this.updateOptions({insertSpaces:n.insertSpaces,tabSize:n.tabSize,indentSize:n.tabSize})}},{key:"normalizeIndentation",value:function(e){return this._assertNotDisposed(),n.normalizeIndentation(e,this._options.indentSize,this._options.insertSpaces)}},{key:"getVersionId",value:function(){return this._assertNotDisposed(),this._versionId}},{key:"mightContainRTL",value:function(){return this._buffer.mightContainRTL()}},{key:"mightContainUnusualLineTerminators",value:function(){return this._buffer.mightContainUnusualLineTerminators()}},{key:"removeUnusualLineTerminators",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.findMatches(p.Qe.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map((function(e){return{range:e.range,text:null}})),(function(){return null}))}},{key:"mightContainNonBasicASCII",value:function(){return this._buffer.mightContainNonBasicASCII()}},{key:"getAlternativeVersionId",value:function(){return this._assertNotDisposed(),this._alternativeVersionId}},{key:"getInitialUndoRedoSnapshot",value:function(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}},{key:"getOffsetAt",value:function(e){this._assertNotDisposed();var t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}},{key:"getPositionAt",value:function(e){this._assertNotDisposed();var t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}},{key:"_increaseVersionId",value:function(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}},{key:"_overwriteVersionId",value:function(e){this._versionId=e}},{key:"_overwriteAlternativeVersionId",value:function(e){this._alternativeVersionId=e}},{key:"_overwriteInitialUndoRedoSnapshot",value:function(e){this._initialUndoRedoSnapshot=e}},{key:"getValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueInRange(n,e);return t?this._buffer.getBOM()+i:i}},{key:"createSnapshot",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Ge(this._buffer.createSnapshot(e))}},{key:"getValueLength",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueLengthInRange(n,e);return t?this._buffer.getBOM().length+i:i}},{key:"getValueInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}},{key:"getValueLengthInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}},{key:"getCharacterCountInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}},{key:"getLineCount",value:function(){return this._assertNotDisposed(),this._buffer.getLineCount()}},{key:"getLineContent",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineContent(e)}},{key:"getLineLength",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)}},{key:"getLinesContent",value:function(){return this._assertNotDisposed(),this._buffer.getLinesContent()}},{key:"getEOL",value:function(){return this._assertNotDisposed(),this._buffer.getEOL()}},{key:"getEndOfLineSequence",value:function(){return this._assertNotDisposed(),"\n"===this._buffer.getEOL()?0:1}},{key:"getLineMinColumn",value:function(e){return this._assertNotDisposed(),1}},{key:"getLineMaxColumn",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}},{key:"getLineFirstNonWhitespaceColumn",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}},{key:"getLineLastNonWhitespaceColumn",value:function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}},{key:"_validateRangeRelaxedNoAllocations",value:function(e){var t=this._buffer.getLineCount(),n=e.startLineNumber,i=e.startColumn,r=Math.floor("number"!==typeof n||isNaN(n)?1:n),o=Math.floor("number"!==typeof i||isNaN(i)?1:i);if(r<1)r=1,o=1;else if(r>t)r=t,o=this.getLineMaxColumn(r);else if(o<=1)o=1;else{var a=this.getLineMaxColumn(r);o>=a&&(o=a)}var s=e.endLineNumber,u=e.endColumn,l=Math.floor("number"!==typeof s||isNaN(s)?1:s),c=Math.floor("number"!==typeof u||isNaN(u)?1:u);if(l<1)l=1,c=1;else if(l>t)l=t,c=this.getLineMaxColumn(l);else if(c<=1)c=1;else{var d=this.getLineMaxColumn(l);c>=d&&(c=d)}return n===r&&i===o&&s===l&&u===c&&e instanceof _.e&&!(e instanceof y.Y)?e:new _.e(r,o,l,c)}},{key:"_isValidPosition",value:function(e,t,n){if("number"!==typeof e||"number"!==typeof t)return!1;if(isNaN(e)||isNaN(t))return!1;if(e<1||t<1)return!1;if((0|e)!==e||(0|t)!==t)return!1;if(e>this._buffer.getLineCount())return!1;if(1===t)return!0;if(t>this.getLineMaxColumn(e))return!1;if(1===n){var i=this._buffer.getLineCharCode(e,t-2);if(p.ZG(i))return!1}return!0}},{key:"_validatePosition",value:function(e,t,n){var i=Math.floor("number"!==typeof e||isNaN(e)?1:e),r=Math.floor("number"!==typeof t||isNaN(t)?1:t),o=this._buffer.getLineCount();if(i<1)return new m.L(1,1);if(i>o)return new m.L(o,this.getLineMaxColumn(o));if(r<=1)return new m.L(i,1);var a=this.getLineMaxColumn(i);if(r>=a)return new m.L(i,a);if(1===n){var s=this._buffer.getLineCharCode(i,r-2);if(p.ZG(s))return new m.L(i,r-1)}return new m.L(i,r)}},{key:"validatePosition",value:function(e){return this._assertNotDisposed(),e instanceof m.L&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}},{key:"_isValidRange",value:function(e,t){var n=e.startLineNumber,i=e.startColumn,r=e.endLineNumber,o=e.endColumn;if(!this._isValidPosition(n,i,0))return!1;if(!this._isValidPosition(r,o,0))return!1;if(1===t){var a=i>1?this._buffer.getLineCharCode(n,i-2):0,s=o>1&&o<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,o-2):0,u=p.ZG(a),l=p.ZG(s);return!u&&!l}return!0}},{key:"validateRange",value:function(e){if(this._assertNotDisposed(),e instanceof _.e&&!(e instanceof y.Y)&&this._isValidRange(e,1))return e;var t=this._validatePosition(e.startLineNumber,e.startColumn,0),n=this._validatePosition(e.endLineNumber,e.endColumn,0),i=t.lineNumber,r=t.column,o=n.lineNumber,a=n.column,s=r>1?this._buffer.getLineCharCode(i,r-2):0,u=a>1&&a<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,a-2):0,l=p.ZG(s),c=p.ZG(u);return l||c?i===o&&r===a?new _.e(i,r-1,o,a-1):l&&c?new _.e(i,r-1,o,a+1):l?new _.e(i,r-1,o,a):new _.e(i,r,o,a+1):new _.e(i,r,o,a)}},{key:"modifyPosition",value:function(e,t){this._assertNotDisposed();var n=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,n)))}},{key:"getFullModelRange",value:function(){this._assertNotDisposed();var e=this.getLineCount();return new _.e(1,1,e,this.getLineMaxColumn(e))}},{key:"findMatchesLineByLine",value:function(e,t,n,i){return this._buffer.findMatchesLineByLine(e,t,n,i)}},{key:"findMatches",value:function(e,t,n,i,r,o){var a=this,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:qe;this._assertNotDisposed();var u=null;null!==t&&(Array.isArray(t)||(t=[t]),t.every((function(e){return _.e.isIRange(e)}))&&(u=t.map((function(e){return a.validateRange(e)})))),null===u&&(u=[this.getFullModelRange()]),u=u.sort((function(e,t){return e.startLineNumber-t.startLineNumber||e.startColumn-t.startColumn}));var l,c=[];if(c.push(u.reduce((function(e,t){return _.e.areIntersecting(e,t)?e.plusRange(t):(c.push(e),t)}))),!n&&e.indexOf("\n")<0){var d=new le.bc(e,n,i,r).parseSearchRequest();if(!d)return[];l=function(e){return a.findMatchesLineByLine(e,d,o,s)}}else l=function(t){return le.pM.findMatches(a,new le.bc(e,n,i,r),t,o,s)};return c.map(l).reduce((function(e,t){return e.concat(t)}),[])}},{key:"findNextMatch",value:function(e,t,n,i,r,o){this._assertNotDisposed();var a=this.validatePosition(t);if(!n&&e.indexOf("\n")<0){var s=new le.bc(e,n,i,r).parseSearchRequest();if(!s)return null;var u=this.getLineCount(),l=new _.e(a.lineNumber,a.column,u,this.getLineMaxColumn(u)),c=this.findMatchesLineByLine(l,s,o,1);return le.pM.findNextMatch(this,new le.bc(e,n,i,r),a,o),c.length>0?c[0]:(l=new _.e(1,1,a.lineNumber,this.getLineMaxColumn(a.lineNumber)),(c=this.findMatchesLineByLine(l,s,o,1)).length>0?c[0]:null)}return le.pM.findNextMatch(this,new le.bc(e,n,i,r),a,o)}},{key:"findPreviousMatch",value:function(e,t,n,i,r,o){this._assertNotDisposed();var a=this.validatePosition(t);return le.pM.findPreviousMatch(this,new le.bc(e,n,i,r),a,o)}},{key:"pushStackElement",value:function(){this._commandManager.pushStackElement()}},{key:"popStackElement",value:function(){this._commandManager.popStackElement()}},{key:"pushEOL",value:function(e){if(("\n"===this.getEOL()?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_validateEditOperation",value:function(e){return e instanceof b.Qi?e:new b.Qi(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}},{key:"_validateEditOperations",value:function(e){for(var t=[],n=0,i=e.length;n<i;n++)t[n]=this._validateEditOperation(e[n]);return t}},{key:"pushEditOperations",value:function(e,t,n){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),n)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_pushEditOperations",value:function(e,t,n){var i=this;if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){var r=t.map((function(e){return{range:i.validateRange(e.range),text:e.text}})),o=!0;if(e)for(var a=0,s=e.length;a<s;a++){for(var u=e[a],l=!1,c=0,d=r.length;c<d;c++){var h=r[c].range,f=h.startLineNumber>u.endLineNumber,p=u.startLineNumber>h.endLineNumber;if(!f&&!p){l=!0;break}}if(!l){o=!1;break}}if(o)for(var v=0,g=this._trimAutoWhitespaceLines.length;v<g;v++){for(var m=this._trimAutoWhitespaceLines[v],y=this.getLineMaxColumn(m),w=!0,C=0,k=r.length;C<k;C++){var S=r[C].range,x=r[C].text;if(!(m<S.startLineNumber||m>S.endLineNumber)&&(!(m===S.startLineNumber&&S.startColumn===y&&S.isEmpty()&&x&&x.length>0&&"\n"===x.charAt(0))&&!(m===S.startLineNumber&&1===S.startColumn&&S.isEmpty()&&x&&x.length>0&&"\n"===x.charAt(x.length-1)))){w=!1;break}}if(w){var L=new _.e(m,1,m,y);t.push(new b.Qi(null,L,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,n)}},{key:"_applyUndo",value:function(e,t,n,i){var r=this,o=e.map((function(e){var t=r.getPositionAt(e.newPosition),n=r.getPositionAt(e.newEnd);return{range:new _.e(t.lineNumber,t.column,n.lineNumber,n.column),text:e.oldText}}));this._applyUndoRedoEdits(o,t,!0,!1,n,i)}},{key:"_applyRedo",value:function(e,t,n,i){var r=this,o=e.map((function(e){var t=r.getPositionAt(e.oldPosition),n=r.getPositionAt(e.oldEnd);return{range:new _.e(t.lineNumber,t.column,n.lineNumber,n.column),text:e.newText}}));this._applyUndoRedoEdits(o,t,!1,!0,n,i)}},{key:"_applyUndoRedoEdits",value:function(e,t,n,i,r,o){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=n,this._isRedoing=i,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(r)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(o),this._onDidChangeDecorations.endDeferredEmit()}}},{key:"applyEdits",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();var n=this._validateEditOperations(e);return this._doApplyEdits(n,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_doApplyEdits",value:function(e,t){var n=this._buffer.getLineCount(),r=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),o=this._buffer.getLineCount(),a=r.changes;if(this._trimAutoWhitespaceLines=r.trimAutoWhitespaceLineNumbers,0!==a.length){for(var s=[],u=n,l=0,c=a.length;l<c;l++){var d=a[l],h=(0,ye.QZ)(d.text),f=(0,i.Z)(h,3),p=f[0],v=f[1],g=f[2];this._tokens.acceptEdit(d.range,p,v),this._tokens2.acceptEdit(d.range,p,v,g,d.text.length>0?d.text.charCodeAt(0):0),this._onDidChangeDecorations.fire(),this._decorationsTree.acceptReplace(d.rangeOffset,d.rangeLength,d.text.length,d.forceMoveMarkers);for(var m=d.range.startLineNumber,_=d.range.endLineNumber,y=_-m,b=p,w=Math.min(y,b),C=b-y,k=w;k>=0;k--){var S=m+k,x=o-u-C+S;s.push(new xe(S,this.getLineContent(x)))}if(w<y){var L=m+w;s.push(new Le(L+1,_))}if(w<b){for(var E=m+w,N=b-w,D=o-u-N+E+1,M=[],T=0;T<N;T++){var O=D+T;M[O-D]=this.getLineContent(O)}s.push(new Ee(E+1,m+b,M))}u+=C}this._increaseVersionId(),this._emitContentChangedEvent(new De(s,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:a,eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return null===r.reverseEdits?void 0:r.reverseEdits}},{key:"undo",value:function(){return this._undoRedoService.undo(this.uri)}},{key:"canUndo",value:function(){return this._undoRedoService.canUndo(this.uri)}},{key:"redo",value:function(){return this._undoRedoService.redo(this.uri)}},{key:"canRedo",value:function(){return this._undoRedoService.canRedo(this.uri)}},{key:"changeDecorations",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_changeDecorations",value:function(e,t){var n=this,i={addDecoration:function(t,i){return n._deltaDecorationsImpl(e,[],[{range:t,options:i}])[0]},changeDecoration:function(e,t){n._changeDecorationImpl(e,t)},changeDecorationOptions:function(e,t){n._changeDecorationOptionsImpl(e,st(t))},removeDecoration:function(t){n._deltaDecorationsImpl(e,[t],[])},deltaDecorations:function(t,i){return 0===t.length&&0===i.length?[]:n._deltaDecorationsImpl(e,t,i)}},r=null;try{r=t(i)}catch(o){(0,d.dL)(o)}return i.addDecoration=$e,i.changeDecoration=$e,i.changeDecorationOptions=$e,i.removeDecoration=$e,i.deltaDecorations=$e,r}},{key:"deltaDecorations",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(this._assertNotDisposed(),e||(e=[]),0===e.length&&0===t.length)return[];try{return this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(n,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit()}}},{key:"_getTrackedRange",value:function(e){return this.getDecorationRange(e)}},{key:"_setTrackedRange",value:function(e,t,n){var i=e?this._decorations[e]:null;if(!i)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:at[n]}])[0]:null;if(!t)return this._decorationsTree.delete(i),delete this._decorations[i.id],null;var r=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(r.startLineNumber,r.startColumn),a=this._buffer.getOffsetAt(r.endLineNumber,r.endColumn);return this._decorationsTree.delete(i),i.reset(this.getVersionId(),o,a,r),i.setOptions(at[n]),this._decorationsTree.insert(i),i.id}},{key:"removeAllDecorationsWithOwnerId",value:function(e){if(!this._isDisposed)for(var t=this._decorationsTree.collectNodesFromOwner(e),n=0,i=t.length;n<i;n++){var r=t[n];this._decorationsTree.delete(r),delete this._decorations[r.id]}}},{key:"getDecorationOptions",value:function(e){var t=this._decorations[e];return t?t.options:null}},{key:"getDecorationRange",value:function(e){var t=this._decorations[e];if(!t)return null;var n=this.getVersionId();return t.cachedVersionId!==n&&this._decorationsTree.resolveNode(t,n),null===t.range&&(t.range=this._getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}},{key:"getLineDecorations",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,n)}},{key:"getLinesDecorations",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=this.getLineCount(),o=Math.min(r,Math.max(1,e)),a=Math.min(r,Math.max(1,t)),s=this.getLineMaxColumn(a);return this._getDecorationsInRange(new _.e(o,1,a,s),n,i)}},{key:"getDecorationsInRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=this.validateRange(e);return this._getDecorationsInRange(i,t,n)}},{key:"getOverviewRulerDecorations",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getVersionId(),i=this._decorationsTree.search(e,t,!0,n);return this._ensureNodesHaveRanges(i)}},{key:"getAllDecorations",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getVersionId(),i=this._decorationsTree.search(e,t,!1,n);return this._ensureNodesHaveRanges(i)}},{key:"_getDecorationsInRange",value:function(e,t,n){var i=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),r=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn),o=this.getVersionId(),a=this._decorationsTree.intervalSearch(i,r,t,n,o);return this._ensureNodesHaveRanges(a)}},{key:"_ensureNodesHaveRanges",value:function(e){for(var t=0,n=e.length;t<n;t++){var i=e[t];null===i.range&&(i.range=this._getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd))}return e}},{key:"_getRangeAt",value:function(e,t){return this._buffer.getRangeAt(e,t-e)}},{key:"_changeDecorationImpl",value:function(e,t){var n=this._decorations[e];if(n){var i=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(i.startLineNumber,i.startColumn),o=this._buffer.getOffsetAt(i.endLineNumber,i.endColumn);this._decorationsTree.delete(n),n.reset(this.getVersionId(),r,o,i),this._decorationsTree.insert(n),this._onDidChangeDecorations.checkAffectedAndFire(n.options)}}},{key:"_changeDecorationOptionsImpl",value:function(e,t){var n=this._decorations[e];if(n){var i=!(!n.options.overviewRuler||!n.options.overviewRuler.color),r=!(!t.overviewRuler||!t.overviewRuler.color);this._onDidChangeDecorations.checkAffectedAndFire(n.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i!==r?(this._decorationsTree.delete(n),n.setOptions(t),this._decorationsTree.insert(n)):n.setOptions(t)}}},{key:"_deltaDecorationsImpl",value:function(e,t,n){for(var i=this.getVersionId(),r=t.length,o=0,a=n.length,s=0,u=new Array(a);o<r||s<a;){var l=null;if(o<r){do{l=this._decorations[t[o++]]}while(!l&&o<r);l&&(this._decorationsTree.delete(l),this._onDidChangeDecorations.checkAffectedAndFire(l.options))}if(s<a){if(!l){var c=++this._lastDecorationId,d="".concat(this._instanceId,";").concat(c);l=new P(d,0,0),this._decorations[d]=l}var h=n[s],f=this._validateRangeRelaxedNoAllocations(h.range),p=st(h.options),v=this._buffer.getOffsetAt(f.startLineNumber,f.startColumn),g=this._buffer.getOffsetAt(f.endLineNumber,f.endColumn);l.ownerId=e,l.reset(i,v,g,f),l.setOptions(p),this._onDidChangeDecorations.checkAffectedAndFire(p),this._decorationsTree.insert(l),u[s]=l.id,s++}else l&&delete this._decorations[l.id]}return u}},{key:"setTokens",value:function(e){if(0!==e.length){for(var t=[],n=0,i=e.length;n<i;n++){for(var r=e[n],o=0,a=0,s=!1,u=0,l=r.tokens.length;u<l;u++){var c=r.startLineNumber+u;if(s)this._tokens.setTokens(this._languageIdentifier.id,c-1,this._buffer.getLineLength(c),r.tokens[u],!1),a=c;else this._tokens.setTokens(this._languageIdentifier.id,c-1,this._buffer.getLineLength(c),r.tokens[u],!0)&&(s=!0,o=c,a=c)}s&&t.push({fromLineNumber:o,toLineNumber:a})}t.length>0&&this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!1,ranges:t})}}},{key:"setSemanticTokens",value:function(e,t){this._tokens2.set(e,t),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:null!==e,ranges:[{fromLineNumber:1,toLineNumber:this.getLineCount()}]})}},{key:"hasCompleteSemanticTokens",value:function(){return this._tokens2.isComplete()}},{key:"hasSomeSemanticTokens",value:function(){return!this._tokens2.isEmpty()}},{key:"setPartialSemanticTokens",value:function(e,t){if(!this.hasCompleteSemanticTokens()){var n=this._tokens2.setPartial(e,t);this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!0,ranges:[{fromLineNumber:n.startLineNumber,toLineNumber:n.endLineNumber}]})}}},{key:"tokenizeViewport",value:function(e,t){e=Math.max(1,e),t=Math.min(this._buffer.getLineCount(),t),this._tokenization.tokenizeViewport(e,t)}},{key:"clearTokens",value:function(){this._tokens.flush(),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!0,semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._buffer.getLineCount()}]})}},{key:"_emitModelTokensChangedEvent",value:function(e){this._isDisposing||this._onDidChangeTokens.fire(e)}},{key:"resetTokenization",value:function(){this._tokenization.reset()}},{key:"forceTokenization",value:function(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");this._tokenization.forceTokenization(e)}},{key:"isCheapToTokenize",value:function(e){return this._tokenization.isCheapToTokenize(e)}},{key:"tokenizeIfCheap",value:function(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}},{key:"getLineTokens",value:function(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._getLineTokens(e)}},{key:"_getLineTokens",value:function(e){var t=this.getLineContent(e),n=this._tokens.getTokens(this._languageIdentifier.id,e-1,t);return this._tokens2.addSemanticTokens(e,n)}},{key:"getLanguageIdentifier",value:function(){return this._languageIdentifier}},{key:"getModeId",value:function(){return this._languageIdentifier.language}},{key:"setMode",value:function(e){if(this._languageIdentifier.id!==e.id){var t={oldLanguage:this._languageIdentifier.language,newLanguage:e.language};this._languageIdentifier=e,this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})}}},{key:"getLanguageIdAtPosition",value:function(e,t){var n=this.validatePosition(new m.L(e,t)),i=this.getLineTokens(n.lineNumber);return i.getLanguageId(i.findTokenIndexAtOffset(n.column-1))}},{key:"getWordAtPosition",value:function(e){this._assertNotDisposed();var t=this.validatePosition(e),r=this.getLineContent(t.lineNumber),o=this._getLineTokens(t.lineNumber),a=o.findTokenIndexAtOffset(t.column-1),s=n._findLanguageBoundaries(o,a),u=(0,i.Z)(s,2),l=u[0],c=u[1],d=(0,He.t2)(t.column,Be.zu.getWordDefinition(o.getLanguageId(a)),r.substring(l,c),l);if(d&&d.startColumn<=e.column&&e.column<=d.endColumn)return d;if(a>0&&l===t.column-1){var h=n._findLanguageBoundaries(o,a-1),f=(0,i.Z)(h,2),p=f[0],v=f[1],g=(0,He.t2)(t.column,Be.zu.getWordDefinition(o.getLanguageId(a-1)),r.substring(p,v),p);if(g&&g.startColumn<=e.column&&e.column<=g.endColumn)return g}return null}},{key:"getWordUntilPosition",value:function(e){var t=this.getWordAtPosition(e);return t?{word:t.word.substr(0,e.column-t.startColumn),startColumn:t.startColumn,endColumn:e.column}:{word:"",startColumn:e.column,endColumn:e.column}}},{key:"findMatchingBracketUp",value:function(e,t){var n=e.toLowerCase(),i=this.validatePosition(t),r=this._getLineTokens(i.lineNumber),o=r.getLanguageId(r.findTokenIndexAtOffset(i.column-1)),a=Be.zu.getBracketsSupport(o);if(!a)return null;var s=a.textIsBracket[n];return s?Xe(this._findMatchingBracketUp(s,i,null)):null}},{key:"matchBracket",value:function(e){return this._matchBracket(this.validatePosition(e))}},{key:"_establishBracketSearchOffsets",value:function(e,t,n,i){for(var r=t.getCount(),o=t.getLanguageId(i),a=Math.max(0,e.column-1-n.maxBracketLength),s=i-1;s>=0;s--){var u=t.getEndOffset(s);if(u<=a)break;if((0,ze.Bu)(t.getStandardTokenType(s))||t.getLanguageId(s)!==o){a=u;break}}for(var l=Math.min(t.getLineContent().length,e.column-1+n.maxBracketLength),c=i+1;c<r;c++){var d=t.getStartOffset(c);if(d>=l)break;if((0,ze.Bu)(t.getStandardTokenType(c))||t.getLanguageId(c)!==o){l=d;break}}return{searchStartOffset:a,searchEndOffset:l}}},{key:"_matchBracket",value:function(e){var t=e.lineNumber,n=this._getLineTokens(t),i=this._buffer.getLineContent(t),r=n.findTokenIndexAtOffset(e.column-1);if(r<0)return null;var o=Be.zu.getBracketsSupport(n.getLanguageId(r));if(o&&!(0,ze.Bu)(n.getStandardTokenType(r))){for(var a=this._establishBracketSearchOffsets(e,n,o,r),s=a.searchStartOffset,u=a.searchEndOffset,l=null;;){var c=We.Vr.findNextBracketInRange(o.forwardRegex,t,i,s,u);if(!c)break;if(c.startColumn<=e.column&&e.column<=c.endColumn){var d=i.substring(c.startColumn-1,c.endColumn-1).toLowerCase(),h=this._matchFoundBracket(c,o.textIsBracket[d],o.textIsOpenBracket[d],null);if(h){if(h instanceof Qe)return null;l=h}}s=c.endColumn-1}if(l)return l}if(r>0&&n.getStartOffset(r)===e.column-1){var f=r-1,p=Be.zu.getBracketsSupport(n.getLanguageId(f));if(p&&!(0,ze.Bu)(n.getStandardTokenType(f))){var v=this._establishBracketSearchOffsets(e,n,p,f),g=v.searchStartOffset,m=v.searchEndOffset,_=We.Vr.findPrevBracketInRange(p.reversedRegex,t,i,g,m);if(_&&_.startColumn<=e.column&&e.column<=_.endColumn){var y=i.substring(_.startColumn-1,_.endColumn-1).toLowerCase(),b=this._matchFoundBracket(_,p.textIsBracket[y],p.textIsOpenBracket[y],null);if(b)return b instanceof Qe?null:b}}}return null}},{key:"_matchFoundBracket",value:function(e,t,n,i){if(!t)return null;var r=n?this._findMatchingBracketDown(t,e.getEndPosition(),i):this._findMatchingBracketUp(t,e.getStartPosition(),i);return r?r instanceof Qe?r:[e,r]:null}},{key:"_findMatchingBracketUp",value:function(e,t,n){for(var i=e.languageIdentifier.id,r=e.reversedRegex,o=-1,a=0,s=function(t,i,s,u){for(;;){if(n&&++a%100===0&&!n())return Qe.INSTANCE;var l=We.Vr.findPrevBracketInRange(r,t,i,s,u);if(!l)break;var c=i.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(e.isOpen(c)?o++:e.isClose(c)&&o--,0===o)return l;u=l.startColumn-1}return null},u=t.lineNumber;u>=1;u--){var l=this._getLineTokens(u),c=l.getCount(),d=this._buffer.getLineContent(u),h=c-1,f=d.length,p=d.length;u===t.lineNumber&&(h=l.findTokenIndexAtOffset(t.column-1),f=t.column-1,p=t.column-1);for(var v=!0;h>=0;h--){var g=l.getLanguageId(h)===i&&!(0,ze.Bu)(l.getStandardTokenType(h));if(g)v?f=l.getStartOffset(h):(f=l.getStartOffset(h),p=l.getEndOffset(h));else if(v&&f!==p){var m=s(u,d,f,p);if(m)return m}v=g}if(v&&f!==p){var _=s(u,d,f,p);if(_)return _}}return null}},{key:"_findMatchingBracketDown",value:function(e,t,n){for(var i=e.languageIdentifier.id,r=e.forwardRegex,o=1,a=0,s=function(t,i,s,u){for(;;){if(n&&++a%100===0&&!n())return Qe.INSTANCE;var l=We.Vr.findNextBracketInRange(r,t,i,s,u);if(!l)break;var c=i.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(e.isOpen(c)?o++:e.isClose(c)&&o--,0===o)return l;s=l.endColumn-1}return null},u=this.getLineCount(),l=t.lineNumber;l<=u;l++){var c=this._getLineTokens(l),d=c.getCount(),h=this._buffer.getLineContent(l),f=0,p=0,v=0;l===t.lineNumber&&(f=c.findTokenIndexAtOffset(t.column-1),p=t.column-1,v=t.column-1);for(var g=!0;f<d;f++){var m=c.getLanguageId(f)===i&&!(0,ze.Bu)(c.getStandardTokenType(f));if(m)g||(p=c.getStartOffset(f)),v=c.getEndOffset(f);else if(g&&p!==v){var _=s(l,h,p,v);if(_)return _}g=m}if(g&&p!==v){var y=s(l,h,p,v);if(y)return y}}return null}},{key:"findPrevBracket",value:function(e){for(var t=this.validatePosition(e),n=-1,i=null,r=t.lineNumber;r>=1;r--){var o=this._getLineTokens(r),a=o.getCount(),s=this._buffer.getLineContent(r),u=a-1,l=s.length,c=s.length;if(r===t.lineNumber){u=o.findTokenIndexAtOffset(t.column-1),l=t.column-1,c=t.column-1;var d=o.getLanguageId(u);n!==d&&(n=d,i=Be.zu.getBracketsSupport(n))}for(var h=!0;u>=0;u--){var f=o.getLanguageId(u);if(n!==f){if(i&&h&&l!==c){var p=We.Vr.findPrevBracketInRange(i.reversedRegex,r,s,l,c);if(p)return this._toFoundBracket(i,p);h=!1}n=f,i=Be.zu.getBracketsSupport(n)}var v=!!i&&!(0,ze.Bu)(o.getStandardTokenType(u));if(v)h?l=o.getStartOffset(u):(l=o.getStartOffset(u),c=o.getEndOffset(u));else if(i&&h&&l!==c){var g=We.Vr.findPrevBracketInRange(i.reversedRegex,r,s,l,c);if(g)return this._toFoundBracket(i,g)}h=v}if(i&&h&&l!==c){var m=We.Vr.findPrevBracketInRange(i.reversedRegex,r,s,l,c);if(m)return this._toFoundBracket(i,m)}}return null}},{key:"findNextBracket",value:function(e){for(var t=this.validatePosition(e),n=this.getLineCount(),i=-1,r=null,o=t.lineNumber;o<=n;o++){var a=this._getLineTokens(o),s=a.getCount(),u=this._buffer.getLineContent(o),l=0,c=0,d=0;if(o===t.lineNumber){l=a.findTokenIndexAtOffset(t.column-1),c=t.column-1,d=t.column-1;var h=a.getLanguageId(l);i!==h&&(i=h,r=Be.zu.getBracketsSupport(i))}for(var f=!0;l<s;l++){var p=a.getLanguageId(l);if(i!==p){if(r&&f&&c!==d){var v=We.Vr.findNextBracketInRange(r.forwardRegex,o,u,c,d);if(v)return this._toFoundBracket(r,v);f=!1}i=p,r=Be.zu.getBracketsSupport(i)}var g=!!r&&!(0,ze.Bu)(a.getStandardTokenType(l));if(g)f||(c=a.getStartOffset(l)),d=a.getEndOffset(l);else if(r&&f&&c!==d){var m=We.Vr.findNextBracketInRange(r.forwardRegex,o,u,c,d);if(m)return this._toFoundBracket(r,m)}f=g}if(r&&f&&c!==d){var _=We.Vr.findNextBracketInRange(r.forwardRegex,o,u,c,d);if(_)return this._toFoundBracket(r,_)}}return null}},{key:"findEnclosingBrackets",value:function(e,t){var n,i=this;if("undefined"===typeof t)n=null;else{var r=Date.now();n=function(){return Date.now()-r<=t}}for(var o=this.validatePosition(e),a=this.getLineCount(),s=new Map,u=[],l=function(e,t){if(!s.has(e)){for(var n=[],i=0,r=t?t.brackets.length:0;i<r;i++)n[i]=0;s.set(e,n)}u=s.get(e)},c=0,d=function(e,t,r,o,a){for(;;){if(n&&++c%100===0&&!n())return Qe.INSTANCE;var s=We.Vr.findNextBracketInRange(e.forwardRegex,t,r,o,a);if(!s)break;var l=r.substring(s.startColumn-1,s.endColumn-1).toLowerCase(),d=e.textIsBracket[l];if(d&&(d.isOpen(l)?u[d.index]++:d.isClose(l)&&u[d.index]--,-1===u[d.index]))return i._matchFoundBracket(s,d,!1,n);o=s.endColumn-1}return null},h=-1,f=null,p=o.lineNumber;p<=a;p++){var v=this._getLineTokens(p),g=v.getCount(),m=this._buffer.getLineContent(p),_=0,y=0,b=0;if(p===o.lineNumber){_=v.findTokenIndexAtOffset(o.column-1),y=o.column-1,b=o.column-1;var w=v.getLanguageId(_);h!==w&&l(h=w,f=Be.zu.getBracketsSupport(h))}for(var C=!0;_<g;_++){var k=v.getLanguageId(_);if(h!==k){if(f&&C&&y!==b){var S=d(f,p,m,y,b);if(S)return Xe(S);C=!1}l(h=k,f=Be.zu.getBracketsSupport(h))}var x=!!f&&!(0,ze.Bu)(v.getStandardTokenType(_));if(x)C||(y=v.getStartOffset(_)),b=v.getEndOffset(_);else if(f&&C&&y!==b){var L=d(f,p,m,y,b);if(L)return Xe(L)}C=x}if(f&&C&&y!==b){var E=d(f,p,m,y,b);if(E)return Xe(E)}}return null}},{key:"_toFoundBracket",value:function(e,t){if(!t)return null;var n=this.getValueInRange(t);n=n.toLowerCase();var i=e.textIsBracket[n];return i?{range:t,open:i.open,close:i.close,isOpen:e.textIsOpenBracket[n]}:null}},{key:"_computeIndentLevel",value:function(e){return n.computeIndentLevel(this._buffer.getLineContent(e+1),this._options.tabSize)}},{key:"getActiveIndentGuide",value:function(e,t,n){var i=this;this._assertNotDisposed();var r=this.getLineCount();if(e<1||e>r)throw new Error("Illegal value for lineNumber");for(var o=Be.zu.getFoldingRules(this._languageIdentifier.id),a=Boolean(o&&o.offSide),s=-2,u=-1,l=-2,c=-1,d=function(e){if(-1!==s&&(-2===s||s>e-1)){s=-1,u=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){s=t,u=n;break}}}if(-2===l){l=-1,c=-1;for(var o=e;o<r;o++){var a=i._computeIndentLevel(o);if(a>=0){l=o,c=a;break}}}},h=-2,f=-1,p=-2,v=-1,g=function(e){if(-2===h){h=-1,f=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){h=t,f=n;break}}}if(-1!==p&&(-2===p||p<e-1)){p=-1,v=-1;for(var o=e;o<r;o++){var a=i._computeIndentLevel(o);if(a>=0){p=o,v=a;break}}}},m=0,_=!0,y=0,b=!0,w=0,C=0,k=0;_||b;k++){var S=e-k,x=e+k;k>1&&(S<1||S<t)&&(_=!1),k>1&&(x>r||x>n)&&(b=!1),k>5e4&&(_=!1,b=!1);var L=-1;if(_){var E=this._computeIndentLevel(S-1);E>=0?(l=S-1,c=E,L=Math.ceil(E/this._options.indentSize)):(d(S),L=this._getIndentLevelForWhitespaceLine(a,u,c))}var N=-1;if(b){var D=this._computeIndentLevel(x-1);D>=0?(h=x-1,f=D,N=Math.ceil(D/this._options.indentSize)):(g(x),N=this._getIndentLevelForWhitespaceLine(a,f,v))}if(0!==k){if(1===k){if(x<=r&&N>=0&&C+1===N){_=!1,m=x,y=x,w=N;continue}if(S>=1&&L>=0&&L-1===C){b=!1,m=S,y=S,w=L;continue}if(m=e,y=e,0===(w=C))return{startLineNumber:m,endLineNumber:y,indent:w}}_&&(L>=w?m=S:_=!1),b&&(N>=w?y=x:b=!1)}else C=L}return{startLineNumber:m,endLineNumber:y,indent:w}}},{key:"getLinesIndentGuides",value:function(e,t){this._assertNotDisposed();var n=this.getLineCount();if(e<1||e>n)throw new Error("Illegal value for startLineNumber");if(t<1||t>n)throw new Error("Illegal value for endLineNumber");for(var i=Be.zu.getFoldingRules(this._languageIdentifier.id),r=Boolean(i&&i.offSide),o=new Array(t-e+1),a=-2,s=-1,u=-2,l=-1,c=e;c<=t;c++){var d=c-e,h=this._computeIndentLevel(c-1);if(h>=0)a=c-1,s=h,o[d]=Math.ceil(h/this._options.indentSize);else{if(-2===a){a=-1,s=-1;for(var f=c-2;f>=0;f--){var p=this._computeIndentLevel(f);if(p>=0){a=f,s=p;break}}}if(-1!==u&&(-2===u||u<c-1)){u=-1,l=-1;for(var v=c;v<n;v++){var g=this._computeIndentLevel(v);if(g>=0){u=v,l=g;break}}}o[d]=this._getIndentLevelForWhitespaceLine(r,s,l)}}return o}},{key:"_getIndentLevelForWhitespaceLine",value:function(e,t,n){return-1===t||-1===n?0:t<n?1+Math.floor(t/this._options.indentSize):t===n||e?Math.ceil(n/this._options.indentSize):1+Math.floor(n/this._options.indentSize)}}],[{key:"resolveOptions",value:function(e,t){if(t.detectIndentation){var n=S(e,t.tabSize,t.insertSpaces);return new b.dJ({tabSize:n.tabSize,indentSize:n.tabSize,insertSpaces:n.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}return new b.dJ({tabSize:t.tabSize,indentSize:t.indentSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}},{key:"_normalizeIndentationFromWhitespace",value:function(e,t,n){for(var i=0,r=0;r<e.length;r++)"\t"===e.charAt(r)?i+=t:i++;var o="";if(!n){var a=Math.floor(i/t);i%=t;for(var s=0;s<a;s++)o+="\t"}for(var u=0;u<i;u++)o+=" ";return o}},{key:"normalizeIndentation",value:function(e,t,i){var r=p.LC(e);return-1===r&&(r=e.length),n._normalizeIndentationFromWhitespace(e.substring(0,r),t,i)+e.substring(r)}},{key:"_findLanguageBoundaries",value:function(e,t){for(var n=e.getLanguageId(t),i=0,r=t;r>=0&&e.getLanguageId(r)===n;r--)i=e.getStartOffset(r);for(var o=e.getLineContent().length,a=t,s=e.getCount();a<s&&e.getLanguageId(a)===n;a++)o=e.getEndOffset(a);return[i,o]}},{key:"computeIndentLevel",value:function(e,t){for(var n=0,i=0,r=e.length;i<r;){var o=e.charCodeAt(i);if(32===o)n++;else{if(9!==o)break;n=n-n%t+t}i++}return i===r?-1:n}}]),n}(f.JT);Je.MODEL_SYNC_LIMIT=52428800,Je.LARGE_FILE_SIZE_THRESHOLD=20971520,Je.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5,Je.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:g.DB.tabSize,indentSize:g.DB.indentSize,insertSpaces:g.DB.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:g.DB.trimAutoWhitespace,largeFileOptimizations:g.DB.largeFileOptimizations};var et=function(){function e(){(0,l.Z)(this,e),this._decorationsTree0=new Z,this._decorationsTree1=new Z}return(0,c.Z)(e,[{key:"intervalSearch",value:function(e,t,n,i,r){var o=this._decorationsTree0.intervalSearch(e,t,n,i,r),a=this._decorationsTree1.intervalSearch(e,t,n,i,r);return o.concat(a)}},{key:"search",value:function(e,t,n,i){if(n)return this._decorationsTree1.search(e,t,i);var r=this._decorationsTree0.search(e,t,i),o=this._decorationsTree1.search(e,t,i);return r.concat(o)}},{key:"collectNodesFromOwner",value:function(e){var t=this._decorationsTree0.collectNodesFromOwner(e),n=this._decorationsTree1.collectNodesFromOwner(e);return t.concat(n)}},{key:"collectNodesPostOrder",value:function(){var e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder();return e.concat(t)}},{key:"insert",value:function(e){T(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}},{key:"delete",value:function(e){T(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}},{key:"resolveNode",value:function(e,t){T(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}},{key:"acceptReplace",value:function(e,t,n,i){this._decorationsTree0.acceptReplace(e,t,n,i),this._decorationsTree1.acceptReplace(e,t,n,i)}}]),e}();function tt(e){return e.replace(/[^a-z0-9\-_]/gi," ")}var nt=(0,c.Z)((function e(t){(0,l.Z)(this,e),this.color=t.color||"",this.darkColor=t.darkColor||""})),it=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,l.Z)(this,n),(i=t.call(this,e))._resolvedColor=null,i.position="number"===typeof e.position?e.position:b.sh.Center,i}return(0,c.Z)(n,[{key:"getColor",value:function(e){return this._resolvedColor||("light"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}},{key:"invalidateCachedColor",value:function(){this._resolvedColor=null}},{key:"_resolveColor",value:function(e,t){if("string"===typeof e)return e;var n=e?t.getColor(e.id):null;return n?n.toString():""}}]),n}(nt),rt=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e){var i;return(0,l.Z)(this,n),(i=t.call(this,e)).position=e.position,i}return(0,c.Z)(n,[{key:"getColor",value:function(e){return this._resolvedColor||("light"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}},{key:"invalidateCachedColor",value:function(){this._resolvedColor=void 0}},{key:"_resolveColor",value:function(e,t){return"string"===typeof e?Ve.Il.fromHex(e):t.getColor(e.id)}}]),n}(nt),ot=function(){function e(t){(0,l.Z)(this,e),this.stickiness=t.stickiness||0,this.zIndex=t.zIndex||0,this.className=t.className?tt(t.className):null,this.hoverMessage=t.hoverMessage||null,this.glyphMarginHoverMessage=t.glyphMarginHoverMessage||null,this.isWholeLine=t.isWholeLine||!1,this.showIfCollapsed=t.showIfCollapsed||!1,this.collapseOnReplaceEdit=t.collapseOnReplaceEdit||!1,this.overviewRuler=t.overviewRuler?new it(t.overviewRuler):null,this.minimap=t.minimap?new rt(t.minimap):null,this.glyphMarginClassName=t.glyphMarginClassName?tt(t.glyphMarginClassName):null,this.linesDecorationsClassName=t.linesDecorationsClassName?tt(t.linesDecorationsClassName):null,this.firstLineDecorationClassName=t.firstLineDecorationClassName?tt(t.firstLineDecorationClassName):null,this.marginClassName=t.marginClassName?tt(t.marginClassName):null,this.inlineClassName=t.inlineClassName?tt(t.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=t.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=t.beforeContentClassName?tt(t.beforeContentClassName):null,this.afterContentClassName=t.afterContentClassName?tt(t.afterContentClassName):null}return(0,c.Z)(e,null,[{key:"register",value:function(t){return new e(t)}},{key:"createDynamic",value:function(t){return new e(t)}}]),e}();ot.EMPTY=ot.register({});var at=[ot.register({stickiness:0}),ot.register({stickiness:1}),ot.register({stickiness:2}),ot.register({stickiness:3})];function st(e){return e instanceof ot?e:ot.createDynamic(e)}var ut=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(){var e;return(0,l.Z)(this,n),(e=t.call(this))._actual=e._register(new h.Q5),e.event=e._actual.event,e._deferredCnt=0,e._shouldFire=!1,e._affectsMinimap=!1,e._affectsOverviewRuler=!1,e}return(0,c.Z)(n,[{key:"beginDeferredEmit",value:function(){this._deferredCnt++}},{key:"endDeferredEmit",value:function(){if(this._deferredCnt--,0===this._deferredCnt&&this._shouldFire){var e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler};this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._actual.fire(e)}}},{key:"checkAffectedAndFire",value:function(e){this._affectsMinimap||(this._affectsMinimap=!(!e.minimap||!e.minimap.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!(!e.overviewRuler||!e.overviewRuler.color)),this._shouldFire=!0}},{key:"fire",value:function(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._shouldFire=!0}}]),n}(f.JT),lt=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(){var e;return(0,l.Z)(this,n),(e=t.call(this))._fastEmitter=e._register(new h.Q5),e.fastEvent=e._fastEmitter.event,e._slowEmitter=e._register(new h.Q5),e.slowEvent=e._slowEmitter.event,e._deferredCnt=0,e._deferredEvent=null,e}return(0,c.Z)(n,[{key:"beginDeferredEmit",value:function(){this._deferredCnt++}},{key:"endDeferredEmit",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(this._deferredCnt--,0===this._deferredCnt&&null!==this._deferredEvent){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;var t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}},{key:"fire",value:function(e){this._deferredCnt>0?this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e:(this._fastEmitter.fire(e),this._slowEmitter.fire(e))}}]),n}(f.JT)},44322:function(e,t,n){"use strict";n.d(t,{bc:function(){return c},cM:function(){return v},iE:function(){return h},pM:function(){return p},sz:function(){return g}});var i=n(15671),r=n(43144),o=n(51747),a=n(20937),s=n(67297),u=n(67033),l=n(46502),c=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.searchString=t,this.isRegex=n,this.matchCase=r,this.wordSeparators=o}return(0,r.Z)(e,[{key:"parseSearchRequest",value:function(){if(""===this.searchString)return null;var e;e=this.isRegex?function(e){if(!e||0===e.length)return!1;for(var t=0,n=e.length;t<n;t++){if(92===e.charCodeAt(t)){if(++t>=n)break;var i=e.charCodeAt(t);if(110===i||114===i||87===i||119===i)return!0}}return!1}(this.searchString):this.searchString.indexOf("\n")>=0;var t=null;try{t=o.GF(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(i){return null}if(!t)return null;var n=!this.isRegex&&!e;return n&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(n=this.matchCase),new d(t,this.wordSeparators?(0,a.u)(this.wordSeparators):null,n?this.searchString:null)}}]),e}();var d=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.regex=t,this.wordSeparators=n,this.simpleSearch=r}));function h(e,t,n){if(!n)return new l.tk(e,null);for(var i=[],r=0,o=t.length;r<o;r++)i[r]=t[r];return new l.tk(e,i)}var f=function(){function e(t){(0,i.Z)(this,e);for(var n=[],r=0,o=0,a=t.length;o<a;o++)10===t.charCodeAt(o)&&(n[r++]=o);this._lineFeedsOffsets=n}return(0,r.Z)(e,[{key:"findLineFeedCountBeforeOffset",value:function(e){var t=this._lineFeedsOffsets,n=0,i=t.length-1;if(-1===i)return 0;if(e<=t[0])return 0;for(;n<i;){var r=n+((i-n)/2>>0);t[r]>=e?i=r-1:t[r+1]>=e?(n=r,i=r):n=r+1}return n+1}}]),e}(),p=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,null,[{key:"findMatches",value:function(e,t,n,i,r){var o=t.parseSearchRequest();return o?o.regex.multiline?this._doFindMatchesMultiline(e,n,new g(o.wordSeparators,o.regex),i,r):this._doFindMatchesLineByLine(e,n,o,i,r):[]}},{key:"_getMultilineMatchRange",value:function(e,t,n,i,r,o){var a,s,l=0;if(a=i?t+r+(l=i.findLineFeedCountBeforeOffset(r)):t+r,i){var c=i.findLineFeedCountBeforeOffset(r+o.length)-l;s=a+o.length+c}else s=a+o.length;var d=e.getPositionAt(a),h=e.getPositionAt(s);return new u.e(d.lineNumber,d.column,h.lineNumber,h.column)}},{key:"_doFindMatchesMultiline",value:function(e,t,n,i,r){var o,a=e.getOffsetAt(t.getStartPosition()),s=e.getValueInRange(t,1),u="\r\n"===e.getEOL()?new f(s):null,l=[],c=0;for(n.reset(0);o=n.next(s);)if(l[c++]=h(this._getMultilineMatchRange(e,a,s,u,o.index,o[0]),o,i),c>=r)return l;return l}},{key:"_doFindMatchesLineByLine",value:function(e,t,n,i,r){var o=[],a=0;if(t.startLineNumber===t.endLineNumber){var s=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return a=this._findMatchesInLine(n,s,t.startLineNumber,t.startColumn-1,a,o,i,r),o}var u=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);a=this._findMatchesInLine(n,u,t.startLineNumber,t.startColumn-1,a,o,i,r);for(var l=t.startLineNumber+1;l<t.endLineNumber&&a<r;l++)a=this._findMatchesInLine(n,e.getLineContent(l),l,0,a,o,i,r);if(a<r){var c=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);a=this._findMatchesInLine(n,c,t.endLineNumber,0,a,o,i,r)}return o}},{key:"_findMatchesInLine",value:function(e,t,n,i,r,o,a,s){var c=e.wordSeparators;if(!a&&e.simpleSearch){for(var d=e.simpleSearch,f=d.length,p=t.length,m=-f;-1!==(m=t.indexOf(d,m+f));)if((!c||v(c,t,p,m,f))&&(o[r++]=new l.tk(new u.e(n,m+1+i,n,m+1+f+i),null),r>=s))return r;return r}var _,y=new g(e.wordSeparators,e.regex);y.reset(0);do{if((_=y.next(t))&&(o[r++]=h(new u.e(n,_.index+1+i,n,_.index+1+_[0].length+i),_,a),r>=s))return r}while(_);return r}},{key:"findNextMatch",value:function(e,t,n,i){var r=t.parseSearchRequest();if(!r)return null;var o=new g(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindNextMatchMultiline(e,n,o,i):this._doFindNextMatchLineByLine(e,n,o,i)}},{key:"_doFindNextMatchMultiline",value:function(e,t,n,i){var r=new s.L(t.lineNumber,1),o=e.getOffsetAt(r),a=e.getLineCount(),l=e.getValueInRange(new u.e(r.lineNumber,r.column,a,e.getLineMaxColumn(a)),1),c="\r\n"===e.getEOL()?new f(l):null;n.reset(t.column-1);var d=n.next(l);return d?h(this._getMultilineMatchRange(e,o,l,c,d.index,d[0]),d,i):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new s.L(1,1),n,i):null}},{key:"_doFindNextMatchLineByLine",value:function(e,t,n,i){var r=e.getLineCount(),o=t.lineNumber,a=e.getLineContent(o),s=this._findFirstMatchInLine(n,a,o,t.column,i);if(s)return s;for(var u=1;u<=r;u++){var l=(o+u-1)%r,c=e.getLineContent(l+1),d=this._findFirstMatchInLine(n,c,l+1,1,i);if(d)return d}return null}},{key:"_findFirstMatchInLine",value:function(e,t,n,i,r){e.reset(i-1);var o=e.next(t);return o?h(new u.e(n,o.index+1,n,o.index+1+o[0].length),o,r):null}},{key:"findPreviousMatch",value:function(e,t,n,i){var r=t.parseSearchRequest();if(!r)return null;var o=new g(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindPreviousMatchMultiline(e,n,o,i):this._doFindPreviousMatchLineByLine(e,n,o,i)}},{key:"_doFindPreviousMatchMultiline",value:function(e,t,n,i){var r=this._doFindMatchesMultiline(e,new u.e(1,1,t.lineNumber,t.column),n,i,9990);if(r.length>0)return r[r.length-1];var o=e.getLineCount();return t.lineNumber!==o||t.column!==e.getLineMaxColumn(o)?this._doFindPreviousMatchMultiline(e,new s.L(o,e.getLineMaxColumn(o)),n,i):null}},{key:"_doFindPreviousMatchLineByLine",value:function(e,t,n,i){var r=e.getLineCount(),o=t.lineNumber,a=e.getLineContent(o).substring(0,t.column-1),s=this._findLastMatchInLine(n,a,o,i);if(s)return s;for(var u=1;u<=r;u++){var l=(r+o-u-1)%r,c=e.getLineContent(l+1),d=this._findLastMatchInLine(n,c,l+1,i);if(d)return d}return null}},{key:"_findLastMatchInLine",value:function(e,t,n,i){var r,o=null;for(e.reset(0);r=e.next(t);)o=h(new u.e(n,r.index+1,n,r.index+1+r[0].length),r,i);return o}}]),e}();function v(e,t,n,i,r){return function(e,t,n,i,r){if(0===i)return!0;var o=t.charCodeAt(i-1);if(0!==e.get(o))return!0;if(13===o||10===o)return!0;if(r>0){var a=t.charCodeAt(i);if(0!==e.get(a))return!0}return!1}(e,t,0,i,r)&&function(e,t,n,i,r){if(i+r===n)return!0;var o=t.charCodeAt(i+r);if(0!==e.get(o))return!0;if(13===o||10===o)return!0;if(r>0){var a=t.charCodeAt(i+r-1);if(0!==e.get(a))return!0}return!1}(e,t,n,i,r)}var g=function(){function e(t,n){(0,i.Z)(this,e),this._wordSeparators=t,this._searchRegex=n,this._prevMatchStartIndex=-1,this._prevMatchLength=0}return(0,r.Z)(e,[{key:"reset",value:function(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}},{key:"next",value:function(e){var t,n=e.length;do{if(this._prevMatchStartIndex+this._prevMatchLength===n)return null;if(!(t=this._searchRegex.exec(e)))return null;var i=t.index,r=t[0].length;if(i===this._prevMatchStartIndex&&r===this._prevMatchLength){if(0===r){o.ZH(e,n,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=i,this._prevMatchLength=r,!this._wordSeparators||v(this._wordSeparators,e,n,i,r))return t}while(t);return null}}]),e}()},98623:function(e,t,n){"use strict";n.d(t,{DA:function(){return v},OU:function(){return g},QZ:function(){return h},Rl:function(){return C},Wz:function(){return _},cx:function(){return w}});var i=n(37762),r=n(29439),o=n(15671),a=n(43144),s=n(49396),u=n(34763),l=n(67297),c=n(67033),d=n(99404);function h(e){for(var t=0,n=0,i=0,r=0,o=0,a=e.length;o<a;o++){var s=e.charCodeAt(o);13===s?(0===t&&(n=o),t++,o+1<a&&10===e.charCodeAt(o+1)?(r|=2,o++):r|=3,i=o+1):10===s&&(r|=1,0===t&&(n=o),t++,i=o+1)}return 0===t&&(n=e.length),[t,n,e.length-i,r]}function f(e){return(16384|e<<0|2<<23)>>>0}var p=new Uint32Array(0).buffer,v=function(){function e(){(0,o.Z)(this,e),this.tokens=[]}return(0,a.Z)(e,[{key:"add",value:function(e,t){if(this.tokens.length>0){var n=this.tokens[this.tokens.length-1];if(n.startLineNumber+n.tokens.length-1+1===e)return void n.tokens.push(t)}this.tokens.push(new y(e,[t]))}}]),e}(),g=function(){function e(t){(0,o.Z)(this,e),this._tokens=t,this._tokenCount=t.length/4}return(0,a.Z)(e,[{key:"toString",value:function(e){for(var t=[],n=0;n<this._tokenCount;n++)t.push("(".concat(this._getDeltaLine(n)+e,",").concat(this._getStartCharacter(n),"-").concat(this._getEndCharacter(n),")"));return"[".concat(t.join(","),"]")}},{key:"getMaxDeltaLine",value:function(){var e=this._getTokenCount();return 0===e?-1:this._getDeltaLine(e-1)}},{key:"getRange",value:function(){var e=this._getTokenCount();if(0===e)return null;var t=this._getStartCharacter(0),n=this._getDeltaLine(e-1),i=this._getEndCharacter(e-1);return new c.e(0,t+1,n,i+1)}},{key:"_getTokenCount",value:function(){return this._tokenCount}},{key:"_getDeltaLine",value:function(e){return this._tokens[4*e]}},{key:"_getStartCharacter",value:function(e){return this._tokens[4*e+1]}},{key:"_getEndCharacter",value:function(e){return this._tokens[4*e+2]}},{key:"isEmpty",value:function(){return 0===this._getTokenCount()}},{key:"getLineTokens",value:function(e){for(var t=0,n=this._getTokenCount()-1;t<n;){var i=t+Math.floor((n-t)/2),r=this._getDeltaLine(i);if(r<e)t=i+1;else{if(!(r>e)){for(var o=i;o>t&&this._getDeltaLine(o-1)===e;)o--;for(var a=i;a<n&&this._getDeltaLine(a+1)===e;)a++;return new m(this._tokens.subarray(4*o,4*a+4))}n=i-1}}return this._getDeltaLine(t)===e?new m(this._tokens.subarray(4*t,4*t+4)):null}},{key:"clear",value:function(){this._tokenCount=0}},{key:"removeTokens",value:function(e,t,n,i){for(var r=this._tokens,o=this._tokenCount,a=0,s=!1,u=0,l=0;l<o;l++){var c=4*l,d=r[c],h=r[c+1],f=r[c+2],p=r[c+3];if((d>e||d===e&&f>=t)&&(d<n||d===n&&h<=i))s=!0;else{if(0===a&&(u=d),s){var v=4*a;r[v]=d-u,r[v+1]=h,r[v+2]=f,r[v+3]=p}a++}}return this._tokenCount=a,u}},{key:"split",value:function(t,n,i,r){for(var o=this._tokens,a=this._tokenCount,s=[],u=[],l=s,c=0,d=0,h=0;h<a;h++){var f=4*h,p=o[f],v=o[f+1],g=o[f+2],m=o[f+3];if(p>t||p===t&&g>=n){if(p<i||p===i&&v<=r)continue;l!==u&&(l=u,c=0,d=p)}l[c++]=p-d,l[c++]=v,l[c++]=g,l[c++]=m}return[new e(new Uint32Array(s)),new e(new Uint32Array(u)),d]}},{key:"acceptDeleteRange",value:function(e,t,n,i,r){for(var o=this._tokens,a=this._tokenCount,s=i-t,u=0,l=!1,c=0;c<a;c++){var d=4*c,h=o[d],f=o[d+1],p=o[d+2],v=o[d+3];if(h<t||h===t&&p<=n)u++;else{if(h===t&&f<n)h===i&&p>r?p-=r-n:p=n;else if(h===t&&f===n){if(!(h===i&&p>r)){l=!0;continue}p-=r-n}else if(h<i||h===i&&f<r){if(!(h===i&&p>r)){l=!0;continue}p=h===t?(f=n)+(p-r):(f=0)+(p-r)}else if(h>i){if(0===s&&!l){u=a;break}h-=s}else{if(!(h===i&&f>=r))throw new Error("Not possible!");e&&0===h&&(f+=e,p+=e),h-=s,f-=r-n,p-=r-n}var g=4*u;o[g]=h,o[g+1]=f,o[g+2]=p,o[g+3]=v,u++}}this._tokenCount=u}},{key:"acceptInsertText",value:function(e,t,n,i,r,o){for(var a=0===n&&1===i&&(o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122),s=this._tokens,u=this._tokenCount,l=0;l<u;l++){var c=4*l,d=s[c],h=s[c+1],f=s[c+2];if(!(d<e||d===e&&f<t)){if(d===e&&f===t){if(!a)continue;f+=1}else if(d===e&&h<t&&t<f)0===n?f+=i:f=t;else{if(d===e&&h===t&&a)continue;if(d===e)if(d+=n,0===n)h+=i,f+=i;else{var p=f-h;f=(h=r+(h-t))+p}else d+=n}s[c]=d,s[c+1]=h,s[c+2]=f}}}}]),e}(),m=function(){function e(t){(0,o.Z)(this,e),this._tokens=t}return(0,a.Z)(e,[{key:"getCount",value:function(){return this._tokens.length/4}},{key:"getStartCharacter",value:function(e){return this._tokens[4*e+1]}},{key:"getEndCharacter",value:function(e){return this._tokens[4*e+2]}},{key:"getMetadata",value:function(e){return this._tokens[4*e+3]}}]),e}(),_=function(){function e(t,n){(0,o.Z)(this,e),this.startLineNumber=t,this.tokens=n,this.endLineNumber=this.startLineNumber+this.tokens.getMaxDeltaLine()}return(0,a.Z)(e,[{key:"toString",value:function(){return this.tokens.toString(this.startLineNumber)}},{key:"_updateEndLineNumber",value:function(){this.endLineNumber=this.startLineNumber+this.tokens.getMaxDeltaLine()}},{key:"isEmpty",value:function(){return this.tokens.isEmpty()}},{key:"getLineTokens",value:function(e){return this.startLineNumber<=e&&e<=this.endLineNumber?this.tokens.getLineTokens(e-this.startLineNumber):null}},{key:"getRange",value:function(){var e=this.tokens.getRange();return e?new c.e(this.startLineNumber+e.startLineNumber,e.startColumn,this.startLineNumber+e.endLineNumber,e.endColumn):e}},{key:"removeTokens",value:function(e){var t=e.startLineNumber-this.startLineNumber,n=e.endLineNumber-this.startLineNumber;this.startLineNumber+=this.tokens.removeTokens(t,e.startColumn-1,n,e.endColumn-1),this._updateEndLineNumber()}},{key:"split",value:function(t){var n=t.startLineNumber-this.startLineNumber,i=t.endLineNumber-this.startLineNumber,o=this.tokens.split(n,t.startColumn-1,i,t.endColumn-1),a=(0,r.Z)(o,3),s=a[0],u=a[1],l=a[2];return[new e(this.startLineNumber,s),new e(this.startLineNumber+l,u)]}},{key:"applyEdit",value:function(e,t){var n=h(t),i=(0,r.Z)(n,3),o=i[0],a=i[1],s=i[2];this.acceptEdit(e,o,a,s,t.length>0?t.charCodeAt(0):0)}},{key:"acceptEdit",value:function(e,t,n,i,r){this._acceptDeleteRange(e),this._acceptInsertText(new l.L(e.startLineNumber,e.startColumn),t,n,i,r),this._updateEndLineNumber()}},{key:"_acceptDeleteRange",value:function(e){if(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn){var t=e.startLineNumber-this.startLineNumber,n=e.endLineNumber-this.startLineNumber;if(n<0){var i=n-t;this.startLineNumber-=i}else{var r=this.tokens.getMaxDeltaLine();if(!(t>=r+1)){if(t<0&&n>=r+1)return this.startLineNumber=0,void this.tokens.clear();if(t<0){var o=-t;this.startLineNumber-=o,this.tokens.acceptDeleteRange(e.startColumn-1,0,0,n,e.endColumn-1)}else this.tokens.acceptDeleteRange(0,t,e.startColumn-1,n,e.endColumn-1)}}}}},{key:"_acceptInsertText",value:function(e,t,n,i,r){if(0!==t||0!==n){var o=e.lineNumber-this.startLineNumber;if(o<0)this.startLineNumber+=t;else o>=this.tokens.getMaxDeltaLine()+1||this.tokens.acceptInsertText(o,e.column-1,t,n,i,r)}}}]),e}(),y=(0,a.Z)((function e(t,n){(0,o.Z)(this,e),this.startLineNumber=t,this.tokens=n}));function b(e){return e instanceof Uint32Array?e:new Uint32Array(e)}var w=function(){function e(){(0,o.Z)(this,e),this._pieces=[],this._isComplete=!1}return(0,a.Z)(e,[{key:"flush",value:function(){this._pieces=[],this._isComplete=!1}},{key:"isEmpty",value:function(){return 0===this._pieces.length}},{key:"set",value:function(e,t){this._pieces=e||[],this._isComplete=t}},{key:"setPartial",value:function(e,t){var n=e;if(t.length>0){var i=t[0].getRange(),o=t[t.length-1].getRange();if(!i||!o)return e;n=e.plusRange(i).plusRange(o)}for(var a=null,u=0,l=this._pieces.length;u<l;u++){var c=this._pieces[u];if(!(c.endLineNumber<n.startLineNumber)){if(c.startLineNumber>n.endLineNumber){a=a||{index:u};break}if(c.removeTokens(n),c.isEmpty())this._pieces.splice(u,1),u--,l--;else if(!(c.endLineNumber<n.startLineNumber))if(c.startLineNumber>n.endLineNumber)a=a||{index:u};else{var d=c.split(n),h=(0,r.Z)(d,2),f=h[0],p=h[1];f.isEmpty()?a=a||{index:u}:p.isEmpty()||(this._pieces.splice(u,1,f,p),u++,l++,a=a||{index:u})}}}return a=a||{index:this._pieces.length},t.length>0&&(this._pieces=s.Zv(this._pieces,a.index,t)),n}},{key:"isComplete",value:function(){return this._isComplete}},{key:"addSemanticTokens",value:function(t,n){var i=this._pieces;if(0===i.length)return n;var r=i[e._findFirstPieceWithLine(i,t)].getLineTokens(t);if(!r)return n;for(var o=n.getCount(),a=r.getCount(),s=0,l=[],c=0,d=0,h=function(e,t){e!==d&&(d=e,l[c++]=e,l[c++]=t)},f=0;f<a;f++){for(var p=r.getStartCharacter(f),v=r.getEndCharacter(f),g=r.getMetadata(f),m=((1&g?2048:0)|(2&g?4096:0)|(4&g?8192:0)|(8&g?8372224:0)|(16&g?4286578688:0))>>>0,_=~m>>>0;s<o&&n.getEndOffset(s)<=p;)h(n.getEndOffset(s),n.getMetadata(s)),s++;for(s<o&&n.getStartOffset(s)<p&&h(p,n.getMetadata(s));s<o&&n.getEndOffset(s)<v;)h(n.getEndOffset(s),n.getMetadata(s)&_|g&m),s++;if(s<o)h(v,n.getMetadata(s)&_|g&m),n.getEndOffset(s)===v&&s++;else{var y=Math.min(Math.max(0,s-1),o-1);h(v,n.getMetadata(y)&_|g&m)}}for(;s<o;)h(n.getEndOffset(s),n.getMetadata(s)),s++;return new u.A(new Uint32Array(l),n.getLineContent())}},{key:"acceptEdit",value:function(e,t,n,r,o){var a,s=(0,i.Z)(this._pieces);try{for(s.s();!(a=s.n()).done;){a.value.acceptEdit(e,t,n,r,o)}}catch(u){s.e(u)}finally{s.f()}}}],[{key:"_findFirstPieceWithLine",value:function(e,t){for(var n=0,i=e.length-1;n<i;){var r=n+Math.floor((i-n)/2);if(e[r].endLineNumber<t)n=r+1;else{if(!(e[r].startLineNumber>t)){for(;r>n&&e[r-1].startLineNumber<=t&&t<=e[r-1].endLineNumber;)r--;return r}i=r-1}}return n}}]),e}(),C=function(){function e(){(0,o.Z)(this,e),this._lineTokens=[],this._len=0}return(0,a.Z)(e,[{key:"flush",value:function(){this._lineTokens=[],this._len=0}},{key:"getTokens",value:function(e,t,n){var i=null;if(t<this._len&&(i=this._lineTokens[t]),null!==i&&i!==p)return new u.A(b(i),n);var r=new Uint32Array(2);return r[0]=n.length,r[1]=f(e),new u.A(r,n)}},{key:"_ensureLine",value:function(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}},{key:"_deleteLines",value:function(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}},{key:"_insertLines",value:function(e,t){if(0!==t){for(var n=[],i=0;i<t;i++)n[i]=null;this._lineTokens=s.Zv(this._lineTokens,e,n),this._len+=t}}},{key:"setTokens",value:function(t,n,i,r,o){var a=e._massageTokens(t,i,r);this._ensureLine(n);var s=this._lineTokens[n];return this._lineTokens[n]=a,!!o&&!e._equals(s,a)}},{key:"acceptEdit",value:function(e,t,n){this._acceptDeleteRange(e),this._acceptInsertText(new l.L(e.startLineNumber,e.startColumn),t,n)}},{key:"_acceptDeleteRange",value:function(t){var n=t.startLineNumber-1;if(!(n>=this._len))if(t.startLineNumber!==t.endLineNumber){this._lineTokens[n]=e._deleteEnding(this._lineTokens[n],t.startColumn-1);var i=t.endLineNumber-1,r=null;i<this._len&&(r=e._deleteBeginning(this._lineTokens[i],t.endColumn-1)),this._lineTokens[n]=e._append(this._lineTokens[n],r),this._deleteLines(t.startLineNumber,t.endLineNumber-t.startLineNumber)}else{if(t.startColumn===t.endColumn)return;this._lineTokens[n]=e._delete(this._lineTokens[n],t.startColumn-1,t.endColumn-1)}}},{key:"_acceptInsertText",value:function(t,n,i){if(0!==n||0!==i){var r=t.lineNumber-1;r>=this._len||(0!==n?(this._lineTokens[r]=e._deleteEnding(this._lineTokens[r],t.column-1),this._lineTokens[r]=e._insert(this._lineTokens[r],t.column-1,i),this._insertLines(t.lineNumber,n)):this._lineTokens[r]=e._insert(this._lineTokens[r],t.column-1,i))}}}],[{key:"_massageTokens",value:function(e,t,n){var i=n?b(n):null;if(0===t){var r=!1;if(i&&i.length>1&&(r=d.NX.getLanguageId(i[1])!==e),!r)return p}if(!i||0===i.length){var o=new Uint32Array(2);return o[0]=t,o[1]=f(e),o.buffer}return i[i.length-2]=t,0===i.byteOffset&&i.byteLength===i.buffer.byteLength?i.buffer:i}},{key:"_equals",value:function(e,t){if(!e||!t)return!e&&!t;var n=b(e),i=b(t);if(n.length!==i.length)return!1;for(var r=0,o=n.length;r<o;r++)if(n[r]!==i[r])return!1;return!0}},{key:"_deleteBeginning",value:function(t,n){return null===t||t===p?t:e._delete(t,0,n)}},{key:"_deleteEnding",value:function(t,n){if(null===t||t===p)return t;var i=b(t),r=i[i.length-2];return e._delete(t,n,r)}},{key:"_delete",value:function(e,t,n){if(null===e||e===p||t===n)return e;var i=b(e),r=i.length>>>1;if(0===t&&i[i.length-2]===n)return p;var o,a,s=u.A.findIndexInTokensArray(i,t),l=s>0?i[s-1<<1]:0;if(n<i[s<<1]){for(var c=n-t,d=s;d<r;d++)i[d<<1]-=c;return e}l!==t?(i[s<<1]=t,o=s+1<<1,a=t):(o=s<<1,a=l);for(var h=n-t,f=s+1;f<r;f++){var v=i[f<<1]-h;v>a&&(i[o++]=v,i[o++]=i[1+(f<<1)],a=v)}if(o===i.length)return e;var g=new Uint32Array(o);return g.set(i.subarray(0,o),0),g.buffer}},{key:"_append",value:function(e,t){if(t===p)return e;if(e===p)return t;if(null===e)return e;if(null===t)return null;var n=b(e),i=b(t),r=i.length>>>1,o=new Uint32Array(n.length+i.length);o.set(n,0);for(var a=n.length,s=n[n.length-2],u=0;u<r;u++)o[a++]=i[u<<1]+s,o[a++]=i[1+(u<<1)];return o.buffer}},{key:"_insert",value:function(e,t,n){if(null===e||e===p)return e;var i=b(e),r=i.length>>>1,o=u.A.findIndexInTokensArray(i,t);o>0&&(i[o-1<<1]===t&&o--);for(var a=o;a<r;a++)i[a<<1]+=n;return e}}]),e}()},43717:function(e,t,n){"use strict";n.d(t,{Af:function(){return o},eq:function(){return a},t2:function(){return u},vu:function(){return r}});var i=n(37762),r="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";var o=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n="(-?\\d*\\.\\d\\w*)|([^",o=(0,i.Z)(r);try{for(o.s();!(e=o.n()).done;){var a=e.value;t.indexOf(a)>=0||(n+="\\"+a)}}catch(s){o.e(s)}finally{o.f()}return n+="\\s]+)",new RegExp(n,"g")}();function a(e){var t=o;if(e&&e instanceof RegExp)if(e.global)t=e;else{var n="g";e.ignoreCase&&(n+="i"),e.multiline&&(n+="m"),e.unicode&&(n+="u"),t=new RegExp(e.source,n)}return t.lastIndex=0,t}var s={maxLen:1e3,windowSize:15,timeBudget:150};function u(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:s;if(n.length>r.maxLen){var o=e-r.maxLen/2;return o<0?o=0:i+=o,u(e,t,n=n.substring(o,e+r.maxLen/2),i,r)}for(var a=Date.now(),c=e-1-i,d=-1,h=null,f=1;!(Date.now()-a>=r.timeBudget);f++){var p=c-r.windowSize*f;t.lastIndex=Math.max(0,p);var v=l(t,n,c,d);if(!v&&h)break;if(h=v,p<=0)break;d=p}if(h){var g={word:h[0],startColumn:i+1+h.index,endColumn:i+1+h.index+h[0].length};return t.lastIndex=0,g}return null}function l(e,t,n,i){for(var r;r=e.exec(t);){var o=r.index||0;if(o<=n&&e.lastIndex>=n)return r;if(i>0&&o>i)return null}return null}},99404:function(e,t,n){"use strict";n.d(t,{H9:function(){return R},He:function(){return A},OH:function(){return B},KZ:function(){return S},RN:function(){return T},Ct:function(){return M},Az:function(){return Z},MY:function(){return r},vH:function(){return N},vN:function(){return F},K7:function(){return Y},wT:function(){return V},vJ:function(){return E},AD:function(){return w},aC:function(){return W},xp:function(){return L},vI:function(){return O},wo:function(){return P},rl:function(){return v},pM:function(){return H},id:function(){return D},ln:function(){return j},FL:function(){return C},G0:function(){return k},AC:function(){return z},nD:function(){return x},WW:function(){return i},uZ:function(){return o},NX:function(){return g},RW:function(){return U},tA:function(){return I},jr:function(){return _},Sy:function(){return m},vx:function(){return y}});var i,r,o,a=n(43144),s=n(15671),u=n(67775),l=n(67033),c=n(66748),d=n(11732),h=n(81626),f=function(){function e(){(0,s.Z)(this,e),this._map=new Map,this._promises=new Map,this._onDidChange=new d.Q5,this.onDidChange=this._onDidChange.event,this._colorMap=null}return(0,a.Z)(e,[{key:"fire",value:function(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})}},{key:"register",value:function(e,t){var n=this;return this._map.set(e,t),this.fire([e]),(0,h.OF)((function(){n._map.get(e)===t&&(n._map.delete(e),n.fire([e]))}))}},{key:"registerPromise",value:function(e,t){var n=this,i=null,r=!1;return this._promises.set(e,t.then((function(t){n._promises.delete(e),!r&&t&&(i=n.register(e,t))}))),(0,h.OF)((function(){r=!0,i&&i.dispose()}))}},{key:"getPromise",value:function(e){var t=this,n=this.get(e);if(n)return Promise.resolve(n);var i=this._promises.get(e);return i?i.then((function(n){return t.get(e)})):null}},{key:"get",value:function(e){return this._map.get(e)||null}},{key:"setColorMap",value:function(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._map.keys()),changedColorMap:!0})}},{key:"getColorMap",value:function(){return this._colorMap}},{key:"getDefaultBackground",value:function(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}]),e}(),p=n(4354),v=(0,a.Z)((function e(t,n){(0,s.Z)(this,e),this.language=t,this.id=n})),g=function(){function e(){(0,s.Z)(this,e)}return(0,a.Z)(e,null,[{key:"getLanguageId",value:function(e){return(255&e)>>>0}},{key:"getTokenType",value:function(e){return(1792&e)>>>8}},{key:"getFontStyle",value:function(e){return(14336&e)>>>11}},{key:"getForeground",value:function(e){return(8372224&e)>>>14}},{key:"getBackground",value:function(e){return(4286578688&e)>>>23}},{key:"getClassNameFromMetadata",value:function(e){var t="mtk"+this.getForeground(e),n=this.getFontStyle(e);return 1&n&&(t+=" mtki"),2&n&&(t+=" mtkb"),4&n&&(t+=" mtku"),t}},{key:"getInlineStyleFromMetadata",value:function(e,t){var n=this.getForeground(e),i=this.getFontStyle(e),r="color: ".concat(t[n],";");return 1&i&&(r+="font-style: italic;"),2&i&&(r+="font-weight: bold;"),4&i&&(r+="text-decoration: underline;"),r}}]),e}(),m=function(){var e=Object.create(null);return e[0]="symbol-method",e[1]="symbol-function",e[2]="symbol-constructor",e[3]="symbol-field",e[4]="symbol-variable",e[5]="symbol-class",e[6]="symbol-struct",e[7]="symbol-interface",e[8]="symbol-module",e[9]="symbol-property",e[10]="symbol-event",e[11]="symbol-operator",e[12]="symbol-unit",e[13]="symbol-value",e[14]="symbol-constant",e[15]="symbol-enum",e[16]="symbol-enum-member",e[17]="symbol-keyword",e[27]="symbol-snippet",e[18]="symbol-text",e[19]="symbol-color",e[20]="symbol-file",e[21]="symbol-reference",e[22]="symbol-customcolor",e[23]="symbol-folder",e[24]="symbol-type-parameter",e[25]="account",e[26]="issues",function(t){var n=e[t],i=n&&p.fK.get(n);return i||(console.info("No codicon found for CompletionItemKind "+t),i=p.lA.symbolProperty),i.classNames}}(),_=function(){var e=Object.create(null);return e.method=0,e.function=1,e.constructor=2,e.field=3,e.variable=4,e.class=5,e.struct=6,e.interface=7,e.module=8,e.property=9,e.event=10,e.operator=11,e.unit=12,e.value=13,e.constant=14,e.enum=15,e["enum-member"]=16,e.enumMember=16,e.keyword=17,e.snippet=27,e.text=18,e.color=19,e.file=20,e.reference=21,e.customcolor=22,e.folder=23,e["type-parameter"]=24,e.typeParameter=24,e.account=25,e.issue=26,function(t,n){var i=e[t];return"undefined"!==typeof i||n||(i=9),i}}();function y(e){return e&&u.o.isUri(e.uri)&&l.e.isIRange(e.range)&&(l.e.isIRange(e.originSelectionRange)||l.e.isIRange(e.targetSelectionRange))}!function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(i||(i={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(r||(r={})),function(e){var t=new Map;t.set("file",0),t.set("module",1),t.set("namespace",2),t.set("package",3),t.set("class",4),t.set("method",5),t.set("property",6),t.set("field",7),t.set("constructor",8),t.set("enum",9),t.set("interface",10),t.set("function",11),t.set("variable",12),t.set("constant",13),t.set("string",14),t.set("number",15),t.set("boolean",16),t.set("array",17),t.set("object",18),t.set("key",19),t.set("null",20),t.set("enum-member",21),t.set("struct",22),t.set("event",23),t.set("operator",24),t.set("type-parameter",25);var n=new Map;n.set(0,"file"),n.set(1,"module"),n.set(2,"namespace"),n.set(3,"package"),n.set(4,"class"),n.set(5,"method"),n.set(6,"property"),n.set(7,"field"),n.set(8,"constructor"),n.set(9,"enum"),n.set(10,"interface"),n.set(11,"function"),n.set(12,"variable"),n.set(13,"constant"),n.set(14,"string"),n.set(15,"number"),n.set(16,"boolean"),n.set(17,"array"),n.set(18,"object"),n.set(19,"key"),n.set(20,"null"),n.set(21,"enum-member"),n.set(22,"struct"),n.set(23,"event"),n.set(24,"operator"),n.set(25,"type-parameter"),e.fromString=function(e){return t.get(e)},e.toString=function(e){return n.get(e)},e.toCssClassName=function(e,t){var i=n.get(e),r=i&&p.fK.get("symbol-"+i);return r||(console.info("No codicon found for SymbolKind "+e),r=p.lA.symbolProperty),"".concat(t?"inline":"block"," ").concat(r.classNames)}}(o||(o={}));var b,w=(0,a.Z)((function e(t){(0,s.Z)(this,e),this.value=t}));w.Comment=new w("comment"),w.Imports=new w("imports"),w.Region=new w("region"),function(e){e[e.Other=0]="Other",e[e.Type=1]="Type",e[e.Parameter=2]="Parameter"}(b||(b={}));var C=new c.c,k=new c.c,S=new c.c,x=new c.c,L=new c.c,E=new c.c,N=new c.c,D=new c.c,M=new c.c,T=new c.c,O=new c.c,I=new c.c,A=new c.c,P=new c.c,R=new c.c,Z=new c.c,F=new c.c,j=new c.c,H=new c.c,B=new c.c,z=new c.c,W=new c.c,V=new c.c,Y=new c.c,U=new f},7273:function(e,t,n){"use strict";n.d(t,{V6:function(){return s},c$:function(){return u},wU:function(){return i}});var i,r=n(37762),o=n(15671),a=n(43144);!function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(i||(i={}));var s=function(){function e(t){if((0,o.Z)(this,e),this.open=t.open,this.close=t.close,this._standardTokenMask=0,Array.isArray(t.notIn))for(var n=0,i=t.notIn.length;n<i;n++){switch(t.notIn[n]){case"string":this._standardTokenMask|=2;break;case"comment":this._standardTokenMask|=1;break;case"regex":this._standardTokenMask|=4}}}return(0,a.Z)(e,[{key:"isOK",value:function(e){return 0===(this._standardTokenMask&e)}}]),e}(),u=(0,a.Z)((function e(t){(0,o.Z)(this,e),this.autoClosingPairsOpenByStart=new Map,this.autoClosingPairsOpenByEnd=new Map,this.autoClosingPairsCloseByStart=new Map,this.autoClosingPairsCloseByEnd=new Map,this.autoClosingPairsCloseSingleChar=new Map;var n,i=(0,r.Z)(t);try{for(i.s();!(n=i.n()).done;){var a=n.value;l(this.autoClosingPairsOpenByStart,a.open.charAt(0),a),l(this.autoClosingPairsOpenByEnd,a.open.charAt(a.open.length-1),a),l(this.autoClosingPairsCloseByStart,a.close.charAt(0),a),l(this.autoClosingPairsCloseByEnd,a.close.charAt(a.close.length-1),a),1===a.close.length&&1===a.open.length&&l(this.autoClosingPairsCloseSingleChar,a.close,a)}}catch(s){i.e(s)}finally{i.f()}}));function l(e,t,n){e.has(t)?e.get(t).push(n):e.set(t,[n])}},65262:function(e,t,n){"use strict";n.d(t,{zu:function(){return x}});var i=n(37762),r=n(29439),o=n(15671),a=n(43144),s=n(11732),u=n(81626),l=n(51747),c=n(43717),d=n(7273),h=n(57429),f=function(){function e(t){if((0,o.Z)(this,e),t.autoClosingPairs?this._autoClosingPairs=t.autoClosingPairs.map((function(e){return new d.V6(e)})):t.brackets?this._autoClosingPairs=t.brackets.map((function(e){return new d.V6({open:e[0],close:e[1]})})):this._autoClosingPairs=[],t.__electricCharacterSupport&&t.__electricCharacterSupport.docComment){var n=t.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new d.V6({open:n.open,close:n.close||""}))}this._autoCloseBefore="string"===typeof t.autoCloseBefore?t.autoCloseBefore:e.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED,this._surroundingPairs=t.surroundingPairs||this._autoClosingPairs}return(0,a.Z)(e,[{key:"getAutoClosingPairs",value:function(){return this._autoClosingPairs}},{key:"getAutoCloseBeforeSet",value:function(){return this._autoCloseBefore}},{key:"getSurroundingPairs",value:function(){return this._surroundingPairs}}],[{key:"shouldAutoClosePair",value:function(e,t,n){if(0===t.getTokenCount())return!0;var i=t.findTokenIndexAtOffset(n-2),r=t.getStandardTokenType(i);return e.isOK(r)}}]),e}();f.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED=";:.,=}])> \n\t";var p=n(8102),v=function(){function e(t){(0,o.Z)(this,e),this._richEditBrackets=t}return(0,a.Z)(e,[{key:"getElectricCharacters",value:function(){var e=[];if(this._richEditBrackets){var t,n=(0,i.Z)(this._richEditBrackets.brackets);try{for(n.s();!(t=n.n()).done;){var r,o=t.value,a=(0,i.Z)(o.close);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=s.charAt(s.length-1);e.push(u)}}catch(l){a.e(l)}finally{a.f()}}}catch(l){n.e(l)}finally{n.f()}}return e=e.filter((function(e,t,n){return n.indexOf(e)===t}))}},{key:"onElectricCharacter",value:function(e,t,n){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;var i=t.findTokenIndexAtOffset(n-1);if((0,h.Bu)(t.getStandardTokenType(i)))return null;var r=this._richEditBrackets.reversedRegex,o=t.getLineContent().substring(0,n-1)+e,a=p.Vr.findPrevBracketInRange(r,1,o,0,o.length);if(!a)return null;var s=o.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[s])return null;var u=t.getActualLineContentBefore(a.startColumn-1);return/^\s*$/.test(u)?{matchOpenBracket:s}:null}}]),e}();function g(e){return e.global&&(e.lastIndex=0),!0}var m=function(){function e(t){(0,o.Z)(this,e),this._indentationRules=t}return(0,a.Z)(e,[{key:"shouldIncrease",value:function(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&g(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}},{key:"shouldDecrease",value:function(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&g(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}},{key:"shouldIndentNextLine",value:function(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&g(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}},{key:"shouldIgnore",value:function(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&g(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}},{key:"getIndentMetadata",value:function(e){var t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}]),e}(),_=n(8729),y=function(){function e(t){var n=this;(0,o.Z)(this,e),(t=t||{}).brackets=t.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],t.brackets.forEach((function(t){var i=e._createOpenBracketRegExp(t[0]),r=e._createCloseBracketRegExp(t[1]);i&&r&&n._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:r})})),this._regExpRules=t.onEnterRules||[]}return(0,a.Z)(e,[{key:"onEnter",value:function(e,t,n,i){if(e>=3)for(var r=0,o=this._regExpRules.length;r<o;r++){var a=this._regExpRules[r];if([{reg:a.beforeText,text:n},{reg:a.afterText,text:i},{reg:a.previousLineText,text:t}].every((function(e){return!e.reg||e.reg.test(e.text)})))return a.action}if(e>=2&&n.length>0&&i.length>0)for(var s=0,u=this._brackets.length;s<u;s++){var l=this._brackets[s];if(l.openRegExp.test(n)&&l.closeRegExp.test(i))return{indentAction:d.wU.IndentOutdent}}if(e>=2&&n.length>0)for(var c=0,h=this._brackets.length;c<h;c++){if(this._brackets[c].openRegExp.test(n))return{indentAction:d.wU.Indent}}return null}}],[{key:"_createOpenBracketRegExp",value:function(t){var n=l.ec(t);return/\B/.test(n.charAt(0))||(n="\\b"+n),n+="\\s*$",e._safeRegExp(n)}},{key:"_createCloseBracketRegExp",value:function(t){var n=l.ec(t);return/\B/.test(n.charAt(n.length-1))||(n+="\\b"),n="^\\s*"+n,e._safeRegExp(n)}},{key:"_safeRegExp",value:function(e){try{return new RegExp(e)}catch(t){return(0,_.dL)(t),null}}}]),e}(),b=function(){function e(t,n){(0,o.Z)(this,e),this._languageIdentifier=t,this._brackets=null,this._electricCharacter=null,this._conf=n,this._onEnterSupport=this._conf.brackets||this._conf.indentationRules||this._conf.onEnterRules?new y(this._conf):null,this.comments=e._handleComments(this._conf),this.characterPair=new f(this._conf),this.wordDefinition=this._conf.wordPattern||c.Af,this.indentationRules=this._conf.indentationRules,this._conf.indentationRules?this.indentRulesSupport=new m(this._conf.indentationRules):this.indentRulesSupport=null,this.foldingRules=this._conf.folding||{}}return(0,a.Z)(e,[{key:"brackets",get:function(){return!this._brackets&&this._conf.brackets&&(this._brackets=new p.EA(this._languageIdentifier,this._conf.brackets)),this._brackets}},{key:"electricCharacter",get:function(){return this._electricCharacter||(this._electricCharacter=new v(this.brackets)),this._electricCharacter}},{key:"onEnter",value:function(e,t,n,i){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,n,i):null}}],[{key:"_handleComments",value:function(e){var t=e.comments;if(!t)return null;var n={};if(t.lineComment&&(n.lineCommentToken=t.lineComment),t.blockComment){var i=(0,r.Z)(t.blockComment,2),o=i[0],a=i[1];n.blockCommentStartToken=o,n.blockCommentEndToken=a}return n}}]),e}(),w=(0,a.Z)((function e(t){(0,o.Z)(this,e),this.languageIdentifier=t})),C=function(){function e(t,n,i){(0,o.Z)(this,e),this.configuration=t,this.priority=n,this.order=i}return(0,a.Z)(e,null,[{key:"cmp",value:function(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}]),e}(),k=function(){function e(t){(0,o.Z)(this,e),this.languageIdentifier=t,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}return(0,a.Z)(e,[{key:"register",value:function(e,t){var n=this,i=new C(e,t,++this._order);return this._entries.push(i),this._resolved=null,(0,u.OF)((function(){for(var e=0;e<n._entries.length;e++)if(n._entries[e]===i){n._entries.splice(e,1),n._resolved=null;break}}))}},{key:"getRichEditSupport",value:function(){if(!this._resolved){var e=this._resolve();e&&(this._resolved=new b(this.languageIdentifier,e))}return this._resolved}},{key:"_resolve",value:function(){if(0===this._entries.length)return null;this._entries.sort(C.cmp);var e,t={},n=(0,i.Z)(this._entries);try{for(n.s();!(e=n.n()).done;){var r=e.value.configuration;t.comments=r.comments||t.comments,t.brackets=r.brackets||t.brackets,t.wordPattern=r.wordPattern||t.wordPattern,t.indentationRules=r.indentationRules||t.indentationRules,t.onEnterRules=r.onEnterRules||t.onEnterRules,t.autoClosingPairs=r.autoClosingPairs||t.autoClosingPairs,t.surroundingPairs=r.surroundingPairs||t.surroundingPairs,t.autoCloseBefore=r.autoCloseBefore||t.autoCloseBefore,t.folding=r.folding||t.folding,t.__electricCharacterSupport=r.__electricCharacterSupport||t.__electricCharacterSupport}}catch(o){n.e(o)}finally{n.f()}return t}}]),e}(),S=function(){function e(){(0,o.Z)(this,e),this._entries2=new Map,this._onDidChange=new s.Q5,this.onDidChange=this._onDidChange.event}return(0,a.Z)(e,[{key:"register",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=this._entries2.get(e.id);r||(r=new k(e),this._entries2.set(e.id,r));var o=r.register(t,i);return this._onDidChange.fire(new w(e)),(0,u.OF)((function(){o.dispose(),n._onDidChange.fire(new w(e))}))}},{key:"_getRichEditSupport",value:function(e){var t=this._entries2.get(e);return t?t.getRichEditSupport():null}},{key:"getIndentationRules",value:function(e){var t=this._getRichEditSupport(e);return t&&t.indentationRules||null}},{key:"_getElectricCharacterSupport",value:function(e){var t=this._getRichEditSupport(e);return t&&t.electricCharacter||null}},{key:"getElectricCharacters",value:function(e){var t=this._getElectricCharacterSupport(e);return t?t.getElectricCharacters():[]}},{key:"onElectricCharacter",value:function(e,t,n){var i=(0,h.wH)(t,n-1),r=this._getElectricCharacterSupport(i.languageId);return r?r.onElectricCharacter(e,i,n-i.firstCharOffset):null}},{key:"getComments",value:function(e){var t=this._getRichEditSupport(e);return t&&t.comments||null}},{key:"_getCharacterPairSupport",value:function(e){var t=this._getRichEditSupport(e);return t&&t.characterPair||null}},{key:"getAutoClosingPairs",value:function(e){var t=this._getCharacterPairSupport(e);return new d.c$(t?t.getAutoClosingPairs():[])}},{key:"getAutoCloseBeforeSet",value:function(e){var t=this._getCharacterPairSupport(e);return t?t.getAutoCloseBeforeSet():f.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED}},{key:"getSurroundingPairs",value:function(e){var t=this._getCharacterPairSupport(e);return t?t.getSurroundingPairs():[]}},{key:"shouldAutoClosePair",value:function(e,t,n){var i=(0,h.wH)(t,n-1);return f.shouldAutoClosePair(e,i,n-i.firstCharOffset)}},{key:"getWordDefinition",value:function(e){var t=this._getRichEditSupport(e);return t?(0,c.eq)(t.wordDefinition||null):(0,c.eq)(null)}},{key:"getFoldingRules",value:function(e){var t=this._getRichEditSupport(e);return t?t.foldingRules:{}}},{key:"getIndentRulesSupport",value:function(e){var t=this._getRichEditSupport(e);return t&&t.indentRulesSupport||null}},{key:"getPrecedingValidLine",value:function(e,t,n){var i=e.getLanguageIdAtPosition(t,0);if(t>1){var r,o=-1;for(r=t-1;r>=1;r--){if(e.getLanguageIdAtPosition(r,0)!==i)return o;var a=e.getLineContent(r);if(!n.shouldIgnore(a)&&!/^\s+$/.test(a)&&""!==a)return r;o=r}}return-1}},{key:"getInheritIndentForLine",value:function(e,t,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(e<4)return null;var r=this.getIndentRulesSupport(t.getLanguageIdentifier().id);if(!r)return null;if(n<=1)return{indentation:"",action:null};var o=this.getPrecedingValidLine(t,n,r);if(o<0)return null;if(o<1)return{indentation:"",action:null};var a=t.getLineContent(o);if(r.shouldIncrease(a)||r.shouldIndentNextLine(a))return{indentation:l.V8(a),action:d.wU.Indent,line:o};if(r.shouldDecrease(a))return{indentation:l.V8(a),action:null,line:o};if(1===o)return{indentation:l.V8(t.getLineContent(o)),action:null,line:o};var s=o-1,u=r.getIndentMetadata(t.getLineContent(s));if(!(3&u)&&4&u){for(var c=0,h=s-1;h>0;h--)if(!r.shouldIndentNextLine(t.getLineContent(h))){c=h;break}return{indentation:l.V8(t.getLineContent(c+1)),action:null,line:c+1}}if(i)return{indentation:l.V8(t.getLineContent(o)),action:null,line:o};for(var f=o;f>0;f--){var p=t.getLineContent(f);if(r.shouldIncrease(p))return{indentation:l.V8(p),action:d.wU.Indent,line:f};if(r.shouldIndentNextLine(p)){for(var v=0,g=f-1;g>0;g--)if(!r.shouldIndentNextLine(t.getLineContent(f))){v=g;break}return{indentation:l.V8(t.getLineContent(v+1)),action:null,line:v+1}}if(r.shouldDecrease(p))return{indentation:l.V8(p),action:null,line:f}}return{indentation:l.V8(t.getLineContent(1)),action:null,line:1}}},{key:"getGoodIndentForLine",value:function(e,t,n,i,r){if(e<4)return null;var o=this._getRichEditSupport(n);if(!o)return null;var a=this.getIndentRulesSupport(n);if(!a)return null;var s=this.getInheritIndentForLine(e,t,i),u=t.getLineContent(i);if(s){var c=s.line;if(void 0!==c){var h=o.onEnter(e,"",t.getLineContent(c),"");if(h){var f=l.V8(t.getLineContent(c));return h.removeText&&(f=f.substring(0,f.length-h.removeText)),h.indentAction===d.wU.Indent||h.indentAction===d.wU.IndentOutdent?f=r.shiftIndent(f):h.indentAction===d.wU.Outdent&&(f=r.unshiftIndent(f)),a.shouldDecrease(u)&&(f=r.unshiftIndent(f)),h.appendText&&(f+=h.appendText),l.V8(f)}}return a.shouldDecrease(u)?s.action===d.wU.Indent?s.indentation:r.unshiftIndent(s.indentation):s.action===d.wU.Indent?r.shiftIndent(s.indentation):s.indentation}return null}},{key:"getIndentForEnter",value:function(e,t,n,i){if(e<4)return null;t.forceTokenization(n.startLineNumber);var r,o,a=t.getLineTokens(n.startLineNumber),s=(0,h.wH)(a,n.startColumn-1),u=s.getLineContent(),c=!1;(s.firstCharOffset>0&&a.getLanguageId(0)!==s.languageId?(c=!0,r=u.substr(0,n.startColumn-1-s.firstCharOffset)):r=a.getLineContent().substring(0,n.startColumn-1),n.isEmpty())?o=u.substr(n.startColumn-1-s.firstCharOffset):o=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-s.firstCharOffset);var f=this.getIndentRulesSupport(s.languageId);if(!f)return null;var p=r,v=l.V8(r),g={getLineTokens:function(e){return t.getLineTokens(e)},getLanguageIdentifier:function(){return t.getLanguageIdentifier()},getLanguageIdAtPosition:function(e,n){return t.getLanguageIdAtPosition(e,n)},getLineContent:function(e){return e===n.startLineNumber?p:t.getLineContent(e)}},m=l.V8(a.getLineContent()),_=this.getInheritIndentForLine(e,g,n.startLineNumber+1);if(!_){var y=c?m:v;return{beforeEnter:y,afterEnter:y}}var b=c?m:_.indentation;return _.action===d.wU.Indent&&(b=i.shiftIndent(b)),f.shouldDecrease(o)&&(b=i.unshiftIndent(b)),{beforeEnter:c?m:v,afterEnter:b}}},{key:"getIndentActionForType",value:function(e,t,n,i,r){if(e<4)return null;var o=this.getScopedLineTokens(t,n.startLineNumber,n.startColumn);if(o.firstCharOffset)return null;var a=this.getIndentRulesSupport(o.languageId);if(!a)return null;var s,u=o.getLineContent(),l=u.substr(0,n.startColumn-1-o.firstCharOffset);n.isEmpty()?s=u.substr(n.startColumn-1-o.firstCharOffset):s=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-o.firstCharOffset);if(!a.shouldDecrease(l+s)&&a.shouldDecrease(l+i+s)){var c=this.getInheritIndentForLine(e,t,n.startLineNumber,!1);if(!c)return null;var h=c.indentation;return c.action!==d.wU.Indent&&(h=r.unshiftIndent(h)),h}return null}},{key:"getIndentMetadata",value:function(e,t){var n=this.getIndentRulesSupport(e.getLanguageIdentifier().id);return n?t<1||t>e.getLineCount()?null:n.getIndentMetadata(e.getLineContent(t)):null}},{key:"getEnterAction",value:function(e,t,n){var i=this.getScopedLineTokens(t,n.startLineNumber,n.startColumn),r=this._getRichEditSupport(i.languageId);if(!r)return null;var o,a=i.getLineContent(),s=a.substr(0,n.startColumn-1-i.firstCharOffset);n.isEmpty()?o=a.substr(n.startColumn-1-i.firstCharOffset):o=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-i.firstCharOffset);var u="";if(n.startLineNumber>1&&0===i.firstCharOffset){var l=this.getScopedLineTokens(t,n.startLineNumber-1);l.languageId===i.languageId&&(u=l.getLineContent())}var c=r.onEnter(e,u,s,o);if(!c)return null;var h=c.indentAction,f=c.appendText,p=c.removeText||0;f?h===d.wU.Indent&&(f="\t"+f):f=h===d.wU.Indent||h===d.wU.IndentOutdent?"\t":"";var v=this.getIndentationAtPosition(t,n.startLineNumber,n.startColumn);return p&&(v=v.substring(0,v.length-p)),{indentAction:h,appendText:f,removeText:p,indentation:v}}},{key:"getIndentationAtPosition",value:function(e,t,n){var i=e.getLineContent(t),r=l.V8(i);return r.length>n-1&&(r=r.substring(0,n-1)),r}},{key:"getScopedLineTokens",value:function(e,t,n){e.forceTokenization(t);var i=e.getLineTokens(t),r="undefined"===typeof n?e.getLineMaxColumn(t)-1:n-1;return(0,h.wH)(i,r)}},{key:"getBracketsSupport",value:function(e){var t=this._getRichEditSupport(e);return t&&t.brackets||null}}]),e}(),x=new S},66748:function(e,t,n){"use strict";n.d(t,{c:function(){return g},Y:function(){return m}});var i=n(37762),r=n(15671),o=n(43144),a=n(11732),s=n(25567),u=n(81626),l=n(15022),c=n(5265),d=n(79612),h=n(36912);function f(e,t,n,r){if(Array.isArray(e)){var o,a=0,s=(0,i.Z)(e);try{for(s.s();!(o=s.n()).done;){var u=f(o.value,t,n,r);if(10===u)return u;u>a&&(a=u)}}catch(_){s.e(_)}finally{s.f()}return a}if("string"===typeof e)return r?"*"===e?5:e===n?10:0:0;if(e){var l=e.language,c=e.pattern,p=e.scheme,v=e.hasAccessToAllModels;if(!r&&!v)return 0;var g=0;if(p)if(p===t.scheme)g=10;else{if("*"!==p)return 0;g=5}if(l)if(l===n)g=10;else{if("*"!==l)return 0;g=Math.max(g,5)}if(c){var m;if((m="string"===typeof c?c:Object.assign(Object.assign({},c),{base:(0,h.Fv)(c.base)}))!==t.fsPath&&!(0,d.EQ)(m,t.fsPath))return 0;g=10}return g}return 0}var p=n(49076);function v(e){return"string"!==typeof e&&(Array.isArray(e)?e.every(v):!!e.exclusive)}var g=function(){function e(){(0,r.Z)(this,e),this._clock=0,this._entries=[],this._onDidChange=new a.Q5}return(0,o.Z)(e,[{key:"onDidChange",get:function(){return this._onDidChange.event}},{key:"register",value:function(e,t){var n=this,i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),(0,u.OF)((function(){if(i){var e=n._entries.indexOf(i);e>=0&&(n._entries.splice(e,1),n._lastCandidate=void 0,n._onDidChange.fire(n._entries.length),i=void 0)}}))}},{key:"has",value:function(e){return this.all(e).length>0}},{key:"all",value:function(e){if(!e)return[];this._updateScores(e);var t,n=[],r=(0,i.Z)(this._entries);try{for(r.s();!(t=r.n()).done;){var o=t.value;o._score>0&&n.push(o.provider)}}catch(a){r.e(a)}finally{r.f()}return n}},{key:"ordered",value:function(e){var t=[];return this._orderedForEach(e,(function(e){return t.push(e.provider)})),t}},{key:"orderedGroups",value:function(e){var t,n,i=[];return this._orderedForEach(e,(function(e){t&&n===e._score?t.push(e.provider):(n=e._score,t=[e.provider],i.push(t))})),i}},{key:"_orderedForEach",value:function(e,t){if(e){this._updateScores(e);var n,r=(0,i.Z)(this._entries);try{for(r.s();!(n=r.n()).done;){var o=n.value;o._score>0&&t(o)}}catch(a){r.e(a)}finally{r.f()}}}},{key:"_updateScores",value:function(t){var n={uri:t.uri.toString(),language:t.getLanguageIdentifier().language};if(!this._lastCandidate||this._lastCandidate.language!==n.language||this._lastCandidate.uri!==n.uri){this._lastCandidate=n;var r,o=(0,i.Z)(this._entries);try{for(o.s();!(r=o.n()).done;){var a=r.value;if(a._score=f(a.selector,t.uri,t.getLanguageIdentifier().language,(0,p.p)(t)),v(a.selector)&&a._score>0){var s,u=(0,i.Z)(this._entries);try{for(u.s();!(s=u.n()).done;){s.value._score=0}}catch(l){u.e(l)}finally{u.f()}a._score=1e3;break}}}catch(l){o.e(l)}finally{o.f()}this._entries.sort(e._compareByScoreAndTime)}}}],[{key:"_compareByScoreAndTime",value:function(e,t){return e._score<t._score?1:e._score>t._score?-1:e._time<t._time?1:e._time>t._time?-1:0}}]),e}(),m=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.MAX_SAFE_INTEGER;(0,r.Z)(this,e),this._registry=t,this.min=n,this.max=i,this._cache=new l.z6(50,.7)}return(0,o.Z)(e,[{key:"_key",value:function(e){return e.id+(0,s.vp)(this._registry.all(e))}},{key:"_clamp",value:function(e){return void 0===e?this.min:Math.min(this.max,Math.max(this.min,Math.floor(1.3*e)))}},{key:"get",value:function(e){var t=this._key(e),n=this._cache.get(t);return this._clamp(null===n||void 0===n?void 0:n.value)}},{key:"update",value:function(e,t){var n=this._key(e),i=this._cache.get(n);return i||(i=new c.n,this._cache.set(n,i)),i.update(t),this.get(e)}}]),e}()},54970:function(e,t,n){"use strict";n.d(t,{Tb:function(){return h},XT:function(){return d},dQ:function(){return c}});var i=n(15671),r=n(43144),o=n(56345),a=n(11732),s=n(99404),u=n(65262),l=n(38774),c=new(function(){function e(){(0,i.Z)(this,e),this._onDidChangeLanguages=new a.Q5,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[],this._dynamicLanguages=[]}return(0,r.Z)(e,[{key:"registerLanguage",value:function(e){var t=this;return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:function(){for(var n=0,i=t._languages.length;n<i;n++)if(t._languages[n]===e)return void t._languages.splice(n,1)}}}},{key:"getLanguages",value:function(){return[].concat(this._languages).concat(this._dynamicLanguages)}}]),e}());l.B.add("editor.modesRegistry",c);var d="plaintext",h=new s.rl(d,1);c.registerLanguage({id:d,extensions:[".txt"],aliases:[o.N("plainText.alias","Plain Text"),"text"],mimetypes:["text/plain"]}),u.zu.register(h,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],folding:{offSide:!0}},0)},59401:function(e,t,n){"use strict";n.d(t,{Ri:function(){return c},TG:function(){return u},mh:function(){return d},nO:function(){return s},pA:function(){return l}});var i=n(15671),r=n(43144),o=n(98154),a=n(99404),s=new(function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"clone",value:function(){return this}},{key:"equals",value:function(e){return this===e}}]),e}()),u="vs.editor.nullMode",l=new a.rl(u,0);function c(e,t,n,i){return new o.hG([new o.WU(i,"",e)],n)}function d(e,t,n,i){var r=new Uint32Array(2);return r[0]=i,r[1]=(16384|e<<0|2<<23)>>>0,new o.Hi(r,null===n?s:n)}},57429:function(e,t,n){"use strict";n.d(t,{Bu:function(){return s},wH:function(){return o}});var i=n(15671),r=n(43144);function o(e,t){for(var n=e.getCount(),i=e.findTokenIndexAtOffset(t),r=e.getLanguageId(i),o=i;o+1<n&&e.getLanguageId(o+1)===r;)o++;for(var s=i;s>0&&e.getLanguageId(s-1)===r;)s--;return new a(e,r,s,o+1,e.getStartOffset(s),e.getEndOffset(o))}var a=function(){function e(t,n,r,o,a,s){(0,i.Z)(this,e),this._actual=t,this.languageId=n,this._firstTokenIndex=r,this._lastTokenIndex=o,this.firstCharOffset=a,this._lastCharOffset=s}return(0,r.Z)(e,[{key:"getLineContent",value:function(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}},{key:"getActualLineContentBefore",value:function(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}},{key:"getTokenCount",value:function(){return this._lastTokenIndex-this._firstTokenIndex}},{key:"findTokenIndexAtOffset",value:function(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}},{key:"getStandardTokenType",value:function(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}}]),e}();function s(e){return 0!==(7&e)}},8102:function(e,t,n){"use strict";n.d(t,{EA:function(){return d},Vr:function(){return _}});var i=n(29439),r=n(37762),o=n(15671),a=n(43144),s=n(51747),u=n(85500),l=n(67033),c=function(){function e(t,n,i,r,a,s){(0,o.Z)(this,e),this.languageIdentifier=t,this.index=n,this.open=i,this.close=r,this.forwardRegex=a,this.reversedRegex=s,this._openSet=e._toSet(this.open),this._closeSet=e._toSet(this.close)}return(0,a.Z)(e,[{key:"isOpen",value:function(e){return this._openSet.has(e)}},{key:"isClose",value:function(e){return this._closeSet.has(e)}}],[{key:"_toSet",value:function(e){var t,n=new Set,i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o=t.value;n.add(o)}}catch(a){i.e(a)}finally{i.f()}return n}}]),e}();var d=(0,a.Z)((function e(t,n){(0,o.Z)(this,e);var a=function(e){var t=e.length;e=e.map((function(e){return[e[0].toLowerCase(),e[1].toLowerCase()]}));for(var n=[],r=0;r<t;r++)n[r]=r;for(var o=function(e,t){var n=(0,i.Z)(e,2),r=n[0],o=n[1],a=(0,i.Z)(t,2),s=a[0],u=a[1];return r===s||r===u||o===s||o===u},a=function(e,i){for(var r=Math.min(e,i),o=Math.max(e,i),a=0;a<t;a++)n[a]===o&&(n[a]=r)},s=0;s<t;s++)for(var u=e[s],l=s+1;l<t;l++)o(u,e[l])&&a(n[s],n[l]);for(var c=[],d=0;d<t;d++){for(var h=[],f=[],p=0;p<t;p++)if(n[p]===d){var v=(0,i.Z)(e[p],2),g=v[0],m=v[1];h.push(g),f.push(m)}h.length>0&&c.push({open:h,close:f})}return c}(n);this.brackets=a.map((function(e,n){return new c(t,n,e.open,e.close,function(e,t,n,i){var r=[];r=r.concat(e),r=r.concat(t);for(var o=0,a=r.length;o<a;o++)h(r[o],n,i,r);return(r=p(r)).sort(f),r.reverse(),g(r)}(e.open,e.close,a,n),function(e,t,n,i){var r=[];r=r.concat(e),r=r.concat(t);for(var o=0,a=r.length;o<a;o++)h(r[o],n,i,r);return(r=p(r)).sort(f),r.reverse(),g(r.map(m))}(e.open,e.close,a,n))})),this.forwardRegex=function(e){var t,n=[],i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o,a=t.value,s=(0,r.Z)(a.open);try{for(s.s();!(o=s.n()).done;){var u=o.value;n.push(u)}}catch(h){s.e(h)}finally{s.f()}var l,c=(0,r.Z)(a.close);try{for(c.s();!(l=c.n()).done;){var d=l.value;n.push(d)}}catch(h){c.e(h)}finally{c.f()}}}catch(h){i.e(h)}finally{i.f()}return g(n=p(n))}(this.brackets),this.reversedRegex=function(e){var t,n=[],i=(0,r.Z)(e);try{for(i.s();!(t=i.n()).done;){var o,a=t.value,s=(0,r.Z)(a.open);try{for(s.s();!(o=s.n()).done;){var u=o.value;n.push(u)}}catch(h){s.e(h)}finally{s.f()}var l,c=(0,r.Z)(a.close);try{for(c.s();!(l=c.n()).done;){var d=l.value;n.push(d)}}catch(h){c.e(h)}finally{c.f()}}}catch(h){i.e(h)}finally{i.f()}return g((n=p(n)).map(m))}(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;var s,u=(0,r.Z)(this.brackets);try{for(u.s();!(s=u.n()).done;){var l,d=s.value,v=(0,r.Z)(d.open);try{for(v.s();!(l=v.n()).done;){var _=l.value;this.textIsBracket[_]=d,this.textIsOpenBracket[_]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,_.length)}}catch(C){v.e(C)}finally{v.f()}var y,b=(0,r.Z)(d.close);try{for(b.s();!(y=b.n()).done;){var w=y.value;this.textIsBracket[w]=d,this.textIsOpenBracket[w]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,w.length)}}catch(C){b.e(C)}finally{b.f()}}}catch(C){u.e(C)}finally{u.f()}}));function h(e,t,n,i){for(var o=0,a=t.length;o<a;o++)if(o!==n){var s,u=t[o],l=(0,r.Z)(u.open);try{for(l.s();!(s=l.n()).done;){var c=s.value;c.indexOf(e)>=0&&i.push(c)}}catch(p){l.e(p)}finally{l.f()}var d,h=(0,r.Z)(u.close);try{for(h.s();!(d=h.n()).done;){var f=d.value;f.indexOf(e)>=0&&i.push(f)}}catch(p){h.e(p)}finally{h.f()}}}function f(e,t){return e.length-t.length}function p(e){if(e.length<=1)return e;var t,n=[],i=new Set,o=(0,r.Z)(e);try{for(o.s();!(t=o.n()).done;){var a=t.value;i.has(a)||(n.push(a),i.add(a))}}catch(s){o.e(s)}finally{o.f()}return n}function v(e){var t=/^[\w ]+$/.test(e);return e=s.ec(e),t?"\\b".concat(e,"\\b"):e}function g(e){var t="(".concat(e.map(v).join(")|("),")");return s.GF(t,!0)}var m=function(){var e=null,t=null;return function(n){return e!==n&&(t=function(e){if(u.lZ){for(var t=new Uint16Array(e.length),n=0,i=e.length-1;i>=0;i--)t[n++]=e.charCodeAt(i);return u.oe().decode(t)}for(var r=[],o=0,a=e.length-1;a>=0;a--)r[o++]=e.charAt(a);return r.join("")}(e=n)),t}}(),_=function(){function e(){(0,o.Z)(this,e)}return(0,a.Z)(e,null,[{key:"_findPrevBracketInText",value:function(e,t,n,i){var r=n.match(e);if(!r)return null;var o=n.length-(r.index||0),a=r[0].length,s=i+o;return new l.e(t,s-a+1,t,s+1)}},{key:"findPrevBracketInRange",value:function(e,t,n,i,r){var o=m(n).substring(n.length-r,n.length-i);return this._findPrevBracketInText(e,t,o,i)}},{key:"findNextBracketInText",value:function(e,t,n,i){var r=n.match(e);if(!r)return null;var o=r.index||0,a=r[0].length;if(0===a)return null;var s=i+o;return new l.e(t,s+1,t,s+1+a)}},{key:"findNextBracketInRange",value:function(e,t,n,i,r){var o=n.substring(i,r);return this.findNextBracketInText(e,t,o,i)}}]),e}()},54821:function(e,t,n){"use strict";n.d(t,{C:function(){return s},F:function(){return u}});var i=n(51747),r=n(34763),o=n(59401),a={getInitialState:function(){return o.nO},tokenize2:function(e,t,n,i){return(0,o.mh)(0,e,n,i)}};function s(e){return function(e,t){for(var n='<div class="monaco-tokenized-source">',o=i.uq(e),a=t.getInitialState(),s=0,u=o.length;s<u;s++){var l=o[s];s>0&&(n+="<br/>");var c=t.tokenize2(l,!0,a,0);r.A.convertToEndOffset(c.tokens,l.length);for(var d=new r.A(c.tokens,l).inflate(),h=0,f=0,p=d.getCount();f<p;f++){var v=d.getClassName(f),g=d.getEndOffset(f);n+='<span class="'.concat(v,'">').concat(i.YU(l.substring(h,g)),"</span>"),h=g}a=c.endState}return n+="</div>"}(e,(arguments.length>1&&void 0!==arguments[1]?arguments[1]:a)||a)}function u(e,t,n,i,r,o,a){for(var s="<div>",u=i,l=0,c=0,d=t.getCount();c<d;c++){var h=t.getEndOffset(c);if(!(h<=i)){for(var f="";u<h&&u<r;u++){var p=e.charCodeAt(u);switch(p){case 9:var v=o-(u+l)%o;for(l+=v-1;v>0;)f+=a?"&#160;":" ",v--;break;case 60:f+="&lt;";break;case 62:f+="&gt;";break;case 38:f+="&amp;";break;case 0:f+="&#00;";break;case 65279:case 8232:case 8233:case 133:f+="\ufffd";break;case 13:f+="&#8203";break;case 32:f+=a?"&#160;":" ";break;default:f+=String.fromCharCode(p)}}if(s+='<span style="'.concat(t.getInlineStyle(c,n),'">').concat(f,"</span>"),h>r||u>=r)break}}return s+="</div>"}},333:function(e,t,n){"use strict";n.d(t,{p:function(){return i}});var i=(0,n(84596).yh)("editorWorkerService")},7845:function(e,t,n){"use strict";n.d(t,{St:function(){return C},ML:function(){return b},Vl:function(){return _},Vj:function(){return y}});var i=n(87757),r=n.n(i),o=n(66526),a=n(8729),s=n(67775),u=n(99404),l=n(49076),c=n(72611),d=n(25941),h=n(37762),f=n(27877),p=n(30487);function v(e){var t=new Uint32Array(function(e){var t=0;if(t+=2,"full"===e.type)t+=1+e.data.length;else{t+=1,t+=3*e.deltas.length;var n,i=(0,h.Z)(e.deltas);try{for(i.s();!(n=i.n()).done;){var r=n.value;r.data&&(t+=r.data.length)}}catch(o){i.e(o)}finally{i.f()}}return t}(e)),n=0;if(t[n++]=e.id,"full"===e.type)t[n++]=1,t[n++]=e.data.length,t.set(e.data,n),n+=e.data.length;else{t[n++]=2,t[n++]=e.deltas.length;var i,r=(0,h.Z)(e.deltas);try{for(r.s();!(i=r.n()).done;){var o=i.value;t[n++]=o.start,t[n++]=o.deleteCount,o.data?(t[n++]=o.data.length,t.set(o.data,n),n+=o.data.length):t[n++]=0}}catch(a){r.e(a)}finally{r.f()}}return function(e){var t=new Uint8Array(e.buffer,e.byteOffset,4*e.length);return p.r()||function(e){for(var t=0,n=e.length;t<n;t+=4){var i=e[t+0],r=e[t+1],o=e[t+2],a=e[t+3];e[t+0]=a,e[t+1]=o,e[t+2]=r,e[t+3]=i}}(t),f.KN.wrap(t)}(t)}var g=n(67033),m=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function _(e){return e&&!!e.data}function y(e){return e&&Array.isArray(e.edits)}function b(e,t,n){var i=w(e);return i?{provider:i,request:Promise.resolve(i.provideDocumentSemanticTokens(e,t,n))}:null}function w(e){var t=u.wT.ordered(e);return t.length>0?t[0]:null}function C(e){var t=u.K7.ordered(e);return t.length>0?t[0]:null}c.P.registerCommand("_provideDocumentSemanticTokensLegend",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return m(void 0,void 0,void 0,r().mark((function t(){var i,o,a;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],(0,d.p_)(i instanceof s.o),o=e.get(l.q).getModel(i)){t.next=5;break}return t.abrupt("return",void 0);case 5:if(a=w(o)){t.next=8;break}return t.abrupt("return",e.get(c.H).executeCommand("_provideDocumentRangeSemanticTokensLegend",i));case 8:return t.abrupt("return",a.getLegend());case 9:case"end":return t.stop()}}),t)})))})),c.P.registerCommand("_provideDocumentSemanticTokens",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return m(void 0,void 0,void 0,r().mark((function t(){var i,u,h,f,p,g,m;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],(0,d.p_)(i instanceof s.o),u=e.get(l.q).getModel(i)){t.next=5;break}return t.abrupt("return",void 0);case 5:if(h=b(u,null,o.T.None)){t.next=8;break}return t.abrupt("return",e.get(c.H).executeCommand("_provideDocumentRangeSemanticTokens",i,u.getFullModelRange()));case 8:return f=h.provider,p=h.request,t.prev=9,t.next=12,p;case 12:g=t.sent,t.next=19;break;case 15:return t.prev=15,t.t0=t.catch(9),(0,a.Cp)(t.t0),t.abrupt("return",void 0);case 19:if(g&&_(g)){t.next=21;break}return t.abrupt("return",void 0);case 21:return m=v({id:0,type:"full",data:g.data}),g.resultId&&f.releaseDocumentSemanticTokens(g.resultId),t.abrupt("return",m);case 24:case"end":return t.stop()}}),t,null,[[9,15]])})))})),c.P.registerCommand("_provideDocumentRangeSemanticTokensLegend",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return m(void 0,void 0,void 0,r().mark((function t(){var i,o,a;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],(0,d.p_)(i instanceof s.o),o=e.get(l.q).getModel(i)){t.next=5;break}return t.abrupt("return",void 0);case 5:if(a=C(o)){t.next=8;break}return t.abrupt("return",void 0);case 8:return t.abrupt("return",a.getLegend());case 9:case"end":return t.stop()}}),t)})))})),c.P.registerCommand("_provideDocumentRangeSemanticTokens",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return m(void 0,void 0,void 0,r().mark((function t(){var i,u,c,h,f;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],u=n[1],(0,d.p_)(i instanceof s.o),(0,d.p_)(g.e.isIRange(u)),c=e.get(l.q).getModel(i)){t.next=6;break}return t.abrupt("return",void 0);case 6:if(h=C(c)){t.next=9;break}return t.abrupt("return",void 0);case 9:return t.prev=9,t.next=12,h.provideDocumentRangeSemanticTokens(c,g.e.lift(u),o.T.None);case 12:f=t.sent,t.next=19;break;case 15:return t.prev=15,t.t0=t.catch(9),(0,a.Cp)(t.t0),t.abrupt("return",void 0);case 19:if(f&&_(f)){t.next=21;break}return t.abrupt("return",void 0);case 21:return t.abrupt("return",v({id:0,type:"full",data:f.data}));case 22:case"end":return t.stop()}}),t,null,[[9,15]])})))}))},50816:function(e,t,n){"use strict";n.d(t,{i:function(){return i}});var i=(0,n(84596).yh)("markerDecorationsService")},49829:function(e,t,n){"use strict";n.d(t,{h:function(){return i}});var i=(0,n(84596).yh)("modeService")},49076:function(e,t,n){"use strict";n.d(t,{p:function(){return r},q:function(){return i}});var i=(0,n(84596).yh)("modelService");function r(e){return!e.isTooLargeForSyncing()&&!e.isForSimpleWidget}},77993:function(e,t,n){"use strict";n.d(t,{BR:function(){return F},e3:function(){return j},tw:function(){return H}});var i=n(11752),r=n(61120),o=n(37762),a=n(97326),s=n(60136),u=n(29388),l=n(15671),c=n(43144),d=n(11732),h=n(81626),f=n(30487),p=n(8729),v=n(76556),g=n(28893),m=n(99404),_=n(54970),y=n(45862),b=n(98921),w=n(27997),C=n(66526),k=n(70182),S=n(19974),x=n(45822),L=n(25567),E=n(57179),N=n(55585),D=n(93445),M=n(7845),T=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},O=function(e,t){return function(n,i){t(n,i,e)}};function I(e){return e.toString()}function A(e){for(var t,n=new L.yP,i=e.createSnapshot();t=i.read();)n.update(t);return n.digest()}var P=function(){function e(t,n,i){(0,l.Z)(this,e),this._modelEventListeners=new h.SL,this.model=t,this._languageSelection=null,this._languageSelectionListener=null,this._modelEventListeners.add(t.onWillDispose((function(){return n(t)}))),this._modelEventListeners.add(t.onDidChangeLanguage((function(e){return i(t,e)})))}return(0,c.Z)(e,[{key:"_disposeLanguageSelection",value:function(){this._languageSelectionListener&&(this._languageSelectionListener.dispose(),this._languageSelectionListener=null)}},{key:"dispose",value:function(){this._modelEventListeners.dispose(),this._disposeLanguageSelection()}},{key:"setLanguage",value:function(e){var t=this;this._disposeLanguageSelection(),this._languageSelection=e,this._languageSelectionListener=this._languageSelection.onDidChange((function(){return t.model.setMode(e.languageIdentifier)})),this.model.setMode(e.languageIdentifier)}}]),e}(),R=f.IJ||f.dz?1:2,Z=(0,c.Z)((function e(t,n,i,r,o,a,s,u){(0,l.Z)(this,e),this.uri=t,this.initialUndoRedoSnapshot=n,this.time=i,this.sharesUndoRedoStack=r,this.heapSize=o,this.sha1=a,this.versionId=s,this.alternativeVersionId=u}));var F=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,o,s){var u;return(0,l.Z)(this,n),(u=t.call(this))._configurationService=e,u._resourcePropertiesService=i,u._themeService=r,u._logService=o,u._undoRedoService=s,u._onModelAdded=u._register(new d.Q5),u.onModelAdded=u._onModelAdded.event,u._onModelRemoved=u._register(new d.Q5),u.onModelRemoved=u._onModelRemoved.event,u._onModelModeChanged=u._register(new d.Q5),u.onModelModeChanged=u._onModelModeChanged.event,u._modelCreationOptionsByLanguageAndResource=Object.create(null),u._models={},u._disposedModels=new Map,u._disposedModelsHeapSize=0,u._semanticStyling=u._register(new z(u._themeService,u._logService)),u._register(u._configurationService.onDidChangeConfiguration((function(){return u._updateModelOptions()}))),u._updateModelOptions(),u._register(new B((0,a.Z)(u),u._themeService,u._configurationService,u._semanticStyling)),u}return(0,c.Z)(n,[{key:"_getEOL",value:function(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);var n=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return n&&"auto"!==n?n:3===f.OS||2===f.OS?"\n":"\r\n"}},{key:"_shouldRestoreUndoStack",value:function(){var e=this._configurationService.getValue("files.restoreUndoStack");return"boolean"!==typeof e||e}},{key:"getCreationOptions",value:function(e,t,i){var r=this._modelCreationOptionsByLanguageAndResource[e+t];if(!r){var o=this._configurationService.getValue("editor",{overrideIdentifier:e,resource:t}),a=this._getEOL(t,e);r=n._readModelOptions({editor:o,eol:a},i),this._modelCreationOptionsByLanguageAndResource[e+t]=r}return r}},{key:"_updateModelOptions",value:function(){var e=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);for(var t=Object.keys(this._models),i=0,r=t.length;i<r;i++){var o=t[i],a=this._models[o],s=a.model.getLanguageIdentifier().language,u=a.model.uri,l=e[s+u],c=this.getCreationOptions(s,u,a.model.isForSimpleWidget);n._setModelOptionsForModel(a.model,c,l)}}},{key:"_insertDisposedModel",value:function(e){this._disposedModels.set(I(e.uri),e),this._disposedModelsHeapSize+=e.heapSize}},{key:"_removeDisposedModel",value:function(e){var t=this._disposedModels.get(I(e));return t&&(this._disposedModelsHeapSize-=t.heapSize),this._disposedModels.delete(I(e)),t}},{key:"_ensureDisposedModelsHeapSize",value:function(e){if(this._disposedModelsHeapSize>e){var t=[];for(this._disposedModels.forEach((function(e){e.sharesUndoRedoStack||t.push(e)})),t.sort((function(e,t){return e.time-t.time}));t.length>0&&this._disposedModelsHeapSize>e;){var n=t.shift();this._removeDisposedModel(n.uri),null!==n.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(n.initialUndoRedoSnapshot)}}}},{key:"_createModelData",value:function(e,t,n,i){var r=this,a=this.getCreationOptions(t.language,n,i),s=new g.yO(e,a,t,n,this._undoRedoService);if(n&&this._disposedModels.has(I(n))){var u=this._removeDisposedModel(n),l=this._undoRedoService.getElements(n),c=A(s)===u.sha1;if(c||u.sharesUndoRedoStack){var d,h=(0,o.Z)(l.past);try{for(h.s();!(d=h.n()).done;){var f=d.value;(0,E.e9)(f)&&f.matchesResource(n)&&f.setModel(s)}}catch(b){h.e(b)}finally{h.f()}var p,v=(0,o.Z)(l.future);try{for(v.s();!(p=v.n()).done;){var m=p.value;(0,E.e9)(m)&&m.matchesResource(n)&&m.setModel(s)}}catch(b){v.e(b)}finally{v.f()}this._undoRedoService.setElementsValidFlag(n,!0,(function(e){return(0,E.e9)(e)&&e.matchesResource(n)})),c&&(s._overwriteVersionId(u.versionId),s._overwriteAlternativeVersionId(u.alternativeVersionId),s._overwriteInitialUndoRedoSnapshot(u.initialUndoRedoSnapshot))}else null!==u.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(u.initialUndoRedoSnapshot)}var _=I(s.uri);if(this._models[_])throw new Error("ModelService: Cannot add model because it already exists!");var y=new P(s,(function(e){return r._onWillDispose(e)}),(function(e,t){return r._onDidChangeLanguage(e,t)}));return this._models[_]=y,y}},{key:"createModel",value:function(e,t,n){var i,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return t?(i=this._createModelData(e,t.languageIdentifier,n,r),this.setMode(i.model,t)):i=this._createModelData(e,_.Tb,n,r),this._onModelAdded.fire(i.model),i.model}},{key:"setMode",value:function(e,t){if(t){var n=this._models[I(e.uri)];n&&n.setLanguage(t)}}},{key:"getModels",value:function(){for(var e=[],t=Object.keys(this._models),n=0,i=t.length;n<i;n++){var r=t[n];e.push(this._models[r].model)}return e}},{key:"getModel",value:function(e){var t=I(e),n=this._models[t];return n?n.model:null}},{key:"getSemanticTokensProviderStyling",value:function(e){return this._semanticStyling.get(e)}},{key:"_onWillDispose",value:function(e){var t,i=I(e.uri),r=this._models[i],a=this._undoRedoService.getUriComparisonKey(e.uri)!==e.uri.toString(),s=!1,u=0;if(a||this._shouldRestoreUndoStack()&&((t=e.uri).scheme===N.lg.file||t.scheme===N.lg.vscodeRemote||t.scheme===N.lg.userData||"fake-fs"===t.scheme)){var l=this._undoRedoService.getElements(e.uri);if(l.past.length>0||l.future.length>0){var c,d=(0,o.Z)(l.past);try{for(d.s();!(c=d.n()).done;){var h=c.value;(0,E.e9)(h)&&h.matchesResource(e.uri)&&(s=!0,u+=h.heapSize(e.uri),h.setModel(e.uri))}}catch(y){d.e(y)}finally{d.f()}var f,p=(0,o.Z)(l.future);try{for(p.s();!(f=p.n()).done;){var v=f.value;(0,E.e9)(v)&&v.matchesResource(e.uri)&&(s=!0,u+=v.heapSize(e.uri),v.setModel(e.uri))}}catch(y){p.e(y)}finally{p.f()}}}var g=n.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK;if(s)if(!a&&u>g){var m=r.model.getInitialUndoRedoSnapshot();null!==m&&this._undoRedoService.restoreSnapshot(m)}else this._ensureDisposedModelsHeapSize(g-u),this._undoRedoService.setElementsValidFlag(e.uri,!1,(function(t){return(0,E.e9)(t)&&t.matchesResource(e.uri)})),this._insertDisposedModel(new Z(e.uri,r.model.getInitialUndoRedoSnapshot(),Date.now(),a,u,A(e),e.getVersionId(),e.getAlternativeVersionId()));else if(!a){var _=r.model.getInitialUndoRedoSnapshot();null!==_&&this._undoRedoService.restoreSnapshot(_)}delete this._models[i],r.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageIdentifier().language+e.uri],this._onModelRemoved.fire(e)}},{key:"_onDidChangeLanguage",value:function(e,t){var i=t.oldLanguage,r=e.getLanguageIdentifier().language,o=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),a=this.getCreationOptions(r,e.uri,e.isForSimpleWidget);n._setModelOptionsForModel(e,a,o),this._onModelModeChanged.fire({model:e,oldModeId:i})}}],[{key:"_readModelOptions",value:function(e,t){var n=v.DB.tabSize;if(e.editor&&"undefined"!==typeof e.editor.tabSize){var i=parseInt(e.editor.tabSize,10);isNaN(i)||(n=i),n<1&&(n=1)}var r=n;if(e.editor&&"undefined"!==typeof e.editor.indentSize&&"tabSize"!==e.editor.indentSize){var o=parseInt(e.editor.indentSize,10);isNaN(o)||(r=o),r<1&&(r=1)}var a=v.DB.insertSpaces;e.editor&&"undefined"!==typeof e.editor.insertSpaces&&(a="false"!==e.editor.insertSpaces&&Boolean(e.editor.insertSpaces));var s=R,u=e.eol;"\r\n"===u?s=2:"\n"===u&&(s=1);var l=v.DB.trimAutoWhitespace;e.editor&&"undefined"!==typeof e.editor.trimAutoWhitespace&&(l="false"!==e.editor.trimAutoWhitespace&&Boolean(e.editor.trimAutoWhitespace));var c=v.DB.detectIndentation;e.editor&&"undefined"!==typeof e.editor.detectIndentation&&(c="false"!==e.editor.detectIndentation&&Boolean(e.editor.detectIndentation));var d=v.DB.largeFileOptimizations;return e.editor&&"undefined"!==typeof e.editor.largeFileOptimizations&&(d="false"!==e.editor.largeFileOptimizations&&Boolean(e.editor.largeFileOptimizations)),{isForSimpleWidget:t,tabSize:n,indentSize:r,insertSpaces:a,detectIndentation:c,defaultEOL:s,trimAutoWhitespace:l,largeFileOptimizations:d}}},{key:"_setModelOptionsForModel",value:function(e,t,n){n&&n.defaultEOL!==t.defaultEOL&&1===e.getLineCount()&&e.setEOL(1===t.defaultEOL?0:1),n&&n.detectIndentation===t.detectIndentation&&n.insertSpaces===t.insertSpaces&&n.tabSize===t.tabSize&&n.indentSize===t.indentSize&&n.trimAutoWhitespace===t.trimAutoWhitespace||(t.detectIndentation?(e.detectIndentation(t.insertSpaces,t.tabSize),e.updateOptions({trimAutoWhitespace:t.trimAutoWhitespace})):e.updateOptions({insertSpaces:t.insertSpaces,tabSize:t.tabSize,indentSize:t.indentSize,trimAutoWhitespace:t.trimAutoWhitespace}))}}]),n}(h.JT);F.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20971520,F=T([O(0,b.Ui),O(1,y.y),O(2,k.XE),O(3,S.VZ),O(4,x.tJ)],F);var j="editor.semanticHighlighting";function H(e,t,n){var i,r=null===(i=n.getValue(j,{overrideIdentifier:e.getLanguageIdentifier().language,resource:e.uri}))||void 0===i?void 0:i.enabled;return"boolean"===typeof r?r:t.getColorTheme().semanticHighlighting}var B=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r,a){var s;(0,l.Z)(this,n),(s=t.call(this))._watchers=Object.create(null),s._semanticStyling=a;var u=function(e){s._watchers[e.uri.toString()]=new V(e,i,s._semanticStyling)},c=function(e,t){t.dispose(),delete s._watchers[e.uri.toString()]},d=function(){var t,n=(0,o.Z)(e.getModels());try{for(n.s();!(t=n.n()).done;){var a=t.value,l=s._watchers[a.uri.toString()];H(a,i,r)?l||u(a):l&&c(a,l)}}catch(d){n.e(d)}finally{n.f()}};return s._register(e.onModelAdded((function(e){H(e,i,r)&&u(e)}))),s._register(e.onModelRemoved((function(e){var t=s._watchers[e.uri.toString()];t&&c(e,t)}))),s._register(r.onDidChangeConfiguration((function(e){e.affectsConfiguration(j)&&d()}))),s._register(i.onDidColorThemeChange(d)),s}return(0,c.Z)(n)}(h.JT),z=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i){var r;return(0,l.Z)(this,n),(r=t.call(this))._themeService=e,r._logService=i,r._caches=new WeakMap,r._register(r._themeService.onDidColorThemeChange((function(){r._caches=new WeakMap}))),r}return(0,c.Z)(n,[{key:"get",value:function(e){return this._caches.has(e)||this._caches.set(e,new D.$(e.getLegend(),this._themeService,this._logService)),this._caches.get(e)}}]),n}(h.JT),W=function(){function e(t,n,i){(0,l.Z)(this,e),this._provider=t,this.resultId=n,this.data=i}return(0,c.Z)(e,[{key:"dispose",value:function(){this._provider.releaseDocumentSemanticTokens(this.resultId)}}]),e}(),V=function(e){(0,s.Z)(n,e);var t=(0,u.Z)(n);function n(e,i,r){var a;(0,l.Z)(this,n),(a=t.call(this))._isDisposed=!1,a._model=e,a._semanticStyling=r,a._fetchDocumentSemanticTokens=a._register(new w.pY((function(){return a._fetchDocumentSemanticTokensNow()}),n.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY)),a._currentDocumentResponse=null,a._currentDocumentRequestCancellationTokenSource=null,a._documentProvidersChangeListeners=[],a._register(a._model.onDidChangeContent((function(){a._fetchDocumentSemanticTokens.isScheduled()||a._fetchDocumentSemanticTokens.schedule()}))),a._register(a._model.onDidChangeLanguage((function(){a._currentDocumentResponse&&(a._currentDocumentResponse.dispose(),a._currentDocumentResponse=null),a._currentDocumentRequestCancellationTokenSource&&(a._currentDocumentRequestCancellationTokenSource.cancel(),a._currentDocumentRequestCancellationTokenSource=null),a._setDocumentSemanticTokens(null,null,null,[]),a._fetchDocumentSemanticTokens.schedule(0)})));var s=function(){(0,h.B9)(a._documentProvidersChangeListeners),a._documentProvidersChangeListeners=[];var t,n=(0,o.Z)(m.wT.all(e));try{for(n.s();!(t=n.n()).done;){var i=t.value;"function"===typeof i.onDidChange&&a._documentProvidersChangeListeners.push(i.onDidChange((function(){return a._fetchDocumentSemanticTokens.schedule(0)})))}}catch(r){n.e(r)}finally{n.f()}};return s(),a._register(m.wT.onDidChange((function(){s(),a._fetchDocumentSemanticTokens.schedule()}))),a._register(i.onDidColorThemeChange((function(e){a._setDocumentSemanticTokens(null,null,null,[]),a._fetchDocumentSemanticTokens.schedule()}))),a._fetchDocumentSemanticTokens.schedule(0),a}return(0,c.Z)(n,[{key:"dispose",value:function(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,(0,i.Z)((0,r.Z)(n.prototype),"dispose",this).call(this)}},{key:"_fetchDocumentSemanticTokensNow",value:function(){var e=this;if(!this._currentDocumentRequestCancellationTokenSource){var t=new C.A,n=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,i=(0,M.ML)(this._model,n,t.token);if(i){var r=i.provider,o=i.request;this._currentDocumentRequestCancellationTokenSource=t;var a=[],s=this._model.onDidChangeContent((function(e){a.push(e)})),u=this._semanticStyling.get(r);o.then((function(t){e._currentDocumentRequestCancellationTokenSource=null,s.dispose(),e._setDocumentSemanticTokens(r,t||null,u,a)}),(function(t){t&&(p.VV(t)||"string"===typeof t.message&&-1!==t.message.indexOf("busy"))||p.dL(t),e._currentDocumentRequestCancellationTokenSource=null,s.dispose(),a.length>0&&(e._fetchDocumentSemanticTokens.isScheduled()||e._fetchDocumentSemanticTokens.schedule())}))}else this._currentDocumentResponse&&this._model.setSemanticTokens(null,!1)}}},{key:"_setDocumentSemanticTokens",value:function(e,t,i,r){var a=this,s=this._currentDocumentResponse,u=function(){r.length>0&&!a._fetchDocumentSemanticTokens.isScheduled()&&a._fetchDocumentSemanticTokens.schedule()};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed)e&&t&&e.releaseDocumentSemanticTokens(t.resultId);else if(e&&i){if(!t)return this._model.setSemanticTokens(null,!0),void u();if((0,M.Vj)(t)){if(!s)return void this._model.setSemanticTokens(null,!0);if(0===t.edits.length)t={resultId:t.resultId,data:s.data};else{var l,c=0,d=(0,o.Z)(t.edits);try{for(d.s();!(l=d.n()).done;){var h=l.value;c+=(h.data?h.data.length:0)-h.deleteCount}}catch(O){d.e(O)}finally{d.f()}for(var f=s.data,p=new Uint32Array(f.length+c),v=f.length,g=p.length,m=t.edits.length-1;m>=0;m--){var _=t.edits[m],y=v-(_.start+_.deleteCount);y>0&&(n._copy(f,v-y,p,g-y,y),g-=y),_.data&&(n._copy(_.data,0,p,g-_.data.length,_.data.length),g-=_.data.length),v=_.start}v>0&&n._copy(f,0,p,0,v),t={resultId:t.resultId,data:p}}}if((0,M.Vl)(t)){this._currentDocumentResponse=new W(e,t.resultId,t.data);var b=(0,D.h)(t,i,this._model.getLanguageIdentifier());if(r.length>0){var w,C=(0,o.Z)(r);try{for(C.s();!(w=C.n()).done;){var k,S=w.value,x=(0,o.Z)(b);try{for(x.s();!(k=x.n()).done;){var L,E=k.value,N=(0,o.Z)(S.changes);try{for(N.s();!(L=N.n()).done;){var T=L.value;E.applyEdit(T.range,T.text)}}catch(O){N.e(O)}finally{N.f()}}}catch(O){x.e(O)}finally{x.f()}}}catch(O){C.e(O)}finally{C.f()}}this._model.setSemanticTokens(b,!0)}else this._model.setSemanticTokens(null,!0);u()}else this._model.setSemanticTokens(null,!1)}}],[{key:"_copy",value:function(e,t,n,i,r){for(var o=0;o<r;o++)n[i+o]=e[t+o]}}]),n}(h.JT);V.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY=300},44148:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var i=(0,n(84596).yh)("textModelService")},93445:function(e,t,n){"use strict";n.d(t,{$:function(){return l},h:function(){return c}});var i=n(37762),r=n(15671),o=n(43144),a=n(99404),s=n(19974),u=n(98623),l=function(){function e(t,n,i){(0,r.Z)(this,e),this._legend=t,this._themeService=n,this._logService=i,this._hashTable=new h,this._hasWarnedOverlappingTokens=!1}return(0,o.Z)(e,[{key:"getMetadata",value:function(e,t,n){var i,r=this._hashTable.get(e,t,n.id);if(r)i=r.metadata,this._logService.getLevel()===s.in.Trace&&this._logService.trace("SemanticTokensProviderStyling [CACHED] ".concat(e," / ").concat(t,": foreground ").concat(a.NX.getForeground(i),", fontStyle ").concat(a.NX.getFontStyle(i).toString(2)));else{var o=this._legend.tokenTypes[e],u=[];if(o){for(var l=t,c=0;l>0&&c<this._legend.tokenModifiers.length;c++)1&l&&u.push(this._legend.tokenModifiers[c]),l>>=1;l>0&&this._logService.getLevel()===s.in.Trace&&(this._logService.trace("SemanticTokensProviderStyling: unknown token modifier index: ".concat(t.toString(2)," for legend: ").concat(JSON.stringify(this._legend.tokenModifiers))),u.push("not-in-legend"));var d=this._themeService.getColorTheme().getTokenStyleMetadata(o,u,n.language);if("undefined"===typeof d)i=2147483647;else{if(i=0,"undefined"!==typeof d.italic)i|=1|(d.italic?1:0)<<11;if("undefined"!==typeof d.bold)i|=2|(d.bold?2:0)<<11;if("undefined"!==typeof d.underline)i|=4|(d.underline?4:0)<<11;if(d.foreground)i|=8|d.foreground<<14;0===i&&(i=2147483647)}}else this._logService.getLevel()===s.in.Trace&&this._logService.trace("SemanticTokensProviderStyling: unknown token type index: ".concat(e," for legend: ").concat(JSON.stringify(this._legend.tokenTypes))),i=2147483647,o="not-in-legend";this._hashTable.add(e,t,n.id,i),this._logService.getLevel()===s.in.Trace&&this._logService.trace("SemanticTokensProviderStyling ".concat(e," (").concat(o,") / ").concat(t," (").concat(u.join(" "),"): foreground ").concat(a.NX.getForeground(i),", fontStyle ").concat(a.NX.getFontStyle(i).toString(2)))}return i}},{key:"warnOverlappingSemanticTokens",value:function(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,console.warn("Overlapping semantic tokens detected at lineNumber ".concat(e,", column ").concat(t)))}}]),e}();function c(e,t,n){for(var i=e.data,r=e.data.length/5|0,o=Math.max(Math.ceil(r/1024),400),a=[],s=0,l=1,c=0;s<r;){var d=s,h=Math.min(d+o,r);if(h<r){for(var f=h;f-1>d&&0===i[5*f];)f--;if(f-1===d){for(var p=h;p+1<r&&0===i[5*p];)p++;h=p}else h=f}for(var v=new Uint32Array(4*(h-d)),g=0,m=0,_=0,y=0,b=0;s<h;){var w=5*s,C=i[w],k=i[w+1],S=l+C,x=0===C?c+k:k,L=i[w+2],E=i[w+3],N=i[w+4],D=t.getMetadata(E,N,n);2147483647!==D&&(0===m&&(m=S),_===S&&b>x&&(t.warnOverlappingSemanticTokens(S,x+1),y<x?v[g-4+2]=x:g-=4),v[g]=S-m,v[g+1]=x,v[g+2]=x+L,v[g+3]=D,g+=4,_=S,y=x,b=x+L),l=S,c=x,s++}g!==v.length&&(v=v.subarray(0,g));var M=new u.Wz(m,new u.OU(v));a.push(M)}return a}var d=(0,o.Z)((function e(t,n,i,o){(0,r.Z)(this,e),this.tokenTypeIndex=t,this.tokenModifierSet=n,this.languageId=i,this.metadata=o,this.next=null})),h=function(){function e(){(0,r.Z)(this,e),this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=e._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<e._SIZES.length?2/3*this._currentLength:0),this._elements=[],e._nullOutEntries(this._elements,this._currentLength)}return(0,o.Z)(e,[{key:"_hash2",value:function(e,t){return(e<<5)-e+t|0}},{key:"_hashFunc",value:function(e,t,n){return this._hash2(this._hash2(e,t),n)%this._currentLength}},{key:"get",value:function(e,t,n){for(var i=this._hashFunc(e,t,n),r=this._elements[i];r;){if(r.tokenTypeIndex===e&&r.tokenModifierSet===t&&r.languageId===n)return r;r=r.next}return null}},{key:"add",value:function(t,n,r,o){if(this._elementsCount++,0!==this._growCount&&this._elementsCount>=this._growCount){var a=this._elements;this._currentLengthIndex++,this._currentLength=e._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<e._SIZES.length?2/3*this._currentLength:0),this._elements=[],e._nullOutEntries(this._elements,this._currentLength);var s,u=(0,i.Z)(a);try{for(u.s();!(s=u.n()).done;)for(var l=s.value;l;){var c=l.next;l.next=null,this._add(l),l=c}}catch(h){u.e(h)}finally{u.f()}}this._add(new d(t,n,r,o))}},{key:"_add",value:function(e){var t=this._hashFunc(e.tokenTypeIndex,e.tokenModifierSet,e.languageId);e.next=this._elements[t],this._elements[t]=e}}],[{key:"_nullOutEntries",value:function(e,t){for(var n=0;n<t;n++)e[n]=null}}]),e}();h._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143]},45862:function(e,t,n){"use strict";n.d(t,{V:function(){return r},y:function(){return o}});var i=n(84596),r=(0,i.yh)("textResourceConfigurationService"),o=(0,i.yh)("textResourcePropertiesService")},25741:function(e,t,n){"use strict";n.d(t,{B8:function(){return l},Oe:function(){return i},UL:function(){return d},UX:function(){return s},aq:function(){return u},ld:function(){return a},qq:function(){return o},ug:function(){return r},xi:function(){return c}});var i,r,o,a,s,u,l,c,d,h=n(56345);!function(e){e.noSelection=h.N("noSelection","No selection"),e.singleSelectionRange=h.N("singleSelectionRange","Line {0}, Column {1} ({2} selected)"),e.singleSelection=h.N("singleSelection","Line {0}, Column {1}"),e.multiSelectionRange=h.N("multiSelectionRange","{0} selections ({1} characters selected)"),e.multiSelection=h.N("multiSelection","{0} selections"),e.emergencyConfOn=h.N("emergencyConfOn","Now changing the setting `accessibilitySupport` to 'on'."),e.openingDocs=h.N("openingDocs","Now opening the Editor Accessibility documentation page."),e.readonlyDiffEditor=h.N("readonlyDiffEditor"," in a read-only pane of a diff editor."),e.editableDiffEditor=h.N("editableDiffEditor"," in a pane of a diff editor."),e.readonlyEditor=h.N("readonlyEditor"," in a read-only code editor"),e.editableEditor=h.N("editableEditor"," in a code editor"),e.changeConfigToOnMac=h.N("changeConfigToOnMac","To configure the editor to be optimized for usage with a Screen Reader press Command+E now."),e.changeConfigToOnWinLinux=h.N("changeConfigToOnWinLinux","To configure the editor to be optimized for usage with a Screen Reader press Control+E now."),e.auto_on=h.N("auto_on","The editor is configured to be optimized for usage with a Screen Reader."),e.auto_off=h.N("auto_off","The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time."),e.tabFocusModeOnMsg=h.N("tabFocusModeOnMsg","Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}."),e.tabFocusModeOnMsgNoKb=h.N("tabFocusModeOnMsgNoKb","Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding."),e.tabFocusModeOffMsg=h.N("tabFocusModeOffMsg","Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}."),e.tabFocusModeOffMsgNoKb=h.N("tabFocusModeOffMsgNoKb","Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding."),e.openDocMac=h.N("openDocMac","Press Command+H now to open a browser window with more information related to editor accessibility."),e.openDocWinLinux=h.N("openDocWinLinux","Press Control+H now to open a browser window with more information related to editor accessibility."),e.outroMsg=h.N("outroMsg","You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape."),e.showAccessibilityHelpAction=h.N("showAccessibilityHelpAction","Show Accessibility Help")}(i||(i={})),function(e){e.inspectTokensAction=h.N("inspectTokens","Developer: Inspect Tokens")}(r||(r={})),function(e){e.gotoLineActionLabel=h.N("gotoLineActionLabel","Go to Line/Column...")}(o||(o={})),function(e){e.helpQuickAccessActionLabel=h.N("helpQuickAccess","Show all Quick Access Providers")}(a||(a={})),function(e){e.quickCommandActionLabel=h.N("quickCommandActionLabel","Command Palette"),e.quickCommandHelp=h.N("quickCommandActionHelp","Show And Run Commands")}(s||(s={})),function(e){e.quickOutlineActionLabel=h.N("quickOutlineActionLabel","Go to Symbol..."),e.quickOutlineByCategoryActionLabel=h.N("quickOutlineByCategoryActionLabel","Go to Symbol by Category...")}(u||(u={})),function(e){e.editorViewAccessibleLabel=h.N("editorViewAccessibleLabel","Editor content"),e.accessibilityHelpMessage=h.N("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")}(l||(l={})),function(e){e.toggleHighContrast=h.N("toggleHighContrast","Toggle High Contrast Theme")}(c||(c={})),function(e){e.bulkEditServiceSummary=h.N("bulkEditServiceSummary","Made {0} edits in {1} files")}(d||(d={}))},80449:function(e,t,n){"use strict";n.d(t,{DD:function(){return b},Dl:function(){return S},Kh:function(){return s},Mm:function(){return u},Re:function(){return I},TC:function(){return k},Ym:function(){return m},Yp:function(){return C},eS:function(){return A},e_:function(){return L},fY:function(){return p},hw:function(){return _},kp:function(){return N},lK:function(){return O},m9:function(){return T},n0:function(){return f},tR:function(){return g},zk:function(){return w},zu:function(){return D},zw:function(){return x}});var i=n(56345),r=n(89938),o=n(92992),a=n(70182),s=(0,o.P6)("editor.lineHighlightBackground",{dark:null,light:null,hc:null},i.N("lineHighlight","Background color for the highlight of line at the cursor position.")),u=(0,o.P6)("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hc:"#f38518"},i.N("lineHighlightBorderBox","Background color for the border around the line at the cursor position.")),l=(0,o.P6)("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hc:null},i.N("rangeHighlight","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0),c=(0,o.P6)("editor.rangeHighlightBorder",{dark:null,light:null,hc:o.xL},i.N("rangeHighlightBorder","Background color of the border around highlighted ranges."),!0),d=(0,o.P6)("editor.symbolHighlightBackground",{dark:o.MU,light:o.MU,hc:null},i.N("symbolHighlight","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0),h=(0,o.P6)("editor.symbolHighlightBorder",{dark:null,light:null,hc:o.xL},i.N("symbolHighlightBorder","Background color of the border around highlighted symbols."),!0),f=(0,o.P6)("editorCursor.foreground",{dark:"#AEAFAD",light:r.Il.black,hc:r.Il.white},i.N("caret","Color of the editor cursor.")),p=(0,o.P6)("editorCursor.background",null,i.N("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),v=(0,o.P6)("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hc:"#e3e4e229"},i.N("editorWhitespaces","Color of whitespace characters in the editor.")),g=(0,o.P6)("editorIndentGuide.background",{dark:v,light:v,hc:v},i.N("editorIndentGuides","Color of the editor indentation guides.")),m=(0,o.P6)("editorIndentGuide.activeBackground",{dark:v,light:v,hc:v},i.N("editorActiveIndentGuide","Color of the active editor indentation guides.")),_=(0,o.P6)("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hc:r.Il.white},i.N("editorLineNumbers","Color of editor line numbers.")),y=(0,o.P6)("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hc:o.xL},i.N("editorActiveLineNumber","Color of editor active line number"),!1,i.N("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead.")),b=(0,o.P6)("editorLineNumber.activeForeground",{dark:y,light:y,hc:y},i.N("editorActiveLineNumber","Color of editor active line number")),w=(0,o.P6)("editorRuler.foreground",{dark:"#5A5A5A",light:r.Il.lightgrey,hc:r.Il.white},i.N("editorRuler","Color of the editor rulers.")),C=(0,o.P6)("editorCodeLens.foreground",{dark:"#999999",light:"#999999",hc:"#999999"},i.N("editorCodeLensForeground","Foreground color of editor CodeLens")),k=(0,o.P6)("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hc:"#0064001a"},i.N("editorBracketMatchBackground","Background color behind matching brackets")),S=(0,o.P6)("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hc:o.lR},i.N("editorBracketMatchBorder","Color for matching brackets boxes")),x=(0,o.P6)("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hc:"#7f7f7f4d"},i.N("editorOverviewRulerBorder","Color of the overview ruler border.")),L=(0,o.P6)("editorOverviewRuler.background",null,i.N("editorOverviewRulerBackground","Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor.")),E=(0,o.P6)("editorGutter.background",{dark:o.cv,light:o.cv,hc:o.cv},i.N("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),N=(0,o.P6)("editorUnnecessaryCode.border",{dark:null,light:null,hc:r.Il.fromHex("#fff").transparent(.8)},i.N("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor.")),D=(0,o.P6)("editorUnnecessaryCode.opacity",{dark:r.Il.fromHex("#000a"),light:r.Il.fromHex("#0007"),hc:null},i.N("unnecessaryCodeOpacity","Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.")),M=new r.Il(new r.VS(0,122,204,.6)),T=(0,o.P6)("editorOverviewRuler.rangeHighlightForeground",{dark:M,light:M,hc:M},i.N("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),O=(0,o.P6)("editorOverviewRuler.errorForeground",{dark:new r.Il(new r.VS(255,18,18,.7)),light:new r.Il(new r.VS(255,18,18,.7)),hc:new r.Il(new r.VS(255,50,50,1))},i.N("overviewRuleError","Overview ruler marker color for errors.")),I=(0,o.P6)("editorOverviewRuler.warningForeground",{dark:o.uo,light:o.uo,hc:o.pW},i.N("overviewRuleWarning","Overview ruler marker color for warnings.")),A=(0,o.P6)("editorOverviewRuler.infoForeground",{dark:o.c6,light:o.c6,hc:o.T8},i.N("overviewRuleInfo","Overview ruler marker color for infos."));(0,a.Ic)((function(e,t){var n=e.getColor(o.cv);n&&t.addRule(".monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: ".concat(n,"; }"));var i=e.getColor(o.NO);i&&t.addRule(".monaco-editor, .monaco-editor .inputarea.ime-input { color: ".concat(i,"; }"));var r=e.getColor(E);r&&t.addRule(".monaco-editor .margin { background-color: ".concat(r,"; }"));var a=e.getColor(l);a&&t.addRule(".monaco-editor .rangeHighlight { background-color: ".concat(a,"; }"));var s=e.getColor(c);s&&t.addRule(".monaco-editor .rangeHighlight { border: 1px ".concat("hc"===e.type?"dotted":"solid"," ").concat(s,"; }"));var u=e.getColor(d);u&&t.addRule(".monaco-editor .symbolHighlight { background-color: ".concat(u,"; }"));var f=e.getColor(h);f&&t.addRule(".monaco-editor .symbolHighlight { border: 1px ".concat("hc"===e.type?"dotted":"solid"," ").concat(f,"; }"));var p=e.getColor(v);p&&(t.addRule(".monaco-editor .mtkw { color: ".concat(p," !important; }")),t.addRule(".monaco-editor .mtkz { color: ".concat(p," !important; }")))}))},32110:function(e,t,n){"use strict";n.d(t,{EY:function(){return a},Tj:function(){return s}});var i=n(15671),r=n(43144),o=function(){function e(t,n,r){(0,i.Z)(this,e),this.from=0|t,this.to=0|n,this.colorId=0|r}return(0,r.Z)(e,null,[{key:"compare",value:function(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}]),e}(),a=function(){function e(t,n,r){(0,i.Z)(this,e),this.startLineNumber=t,this.endLineNumber=n,this.color=r,this._colorZone=null}return(0,r.Z)(e,[{key:"setColorZone",value:function(e){this._colorZone=e}},{key:"getColorZones",value:function(){return this._colorZone}}],[{key:"compare",value:function(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.color<t.color?-1:1}}]),e}(),s=function(){function e(t){(0,i.Z)(this,e),this._getVerticalOffsetForLine=t,this._zones=[],this._colorZonesInvalid=!1,this._lineHeight=0,this._domWidth=0,this._domHeight=0,this._outerHeight=0,this._pixelRatio=1,this._lastAssignedId=0,this._color2Id=Object.create(null),this._id2Color=[]}return(0,r.Z)(e,[{key:"getId2Color",value:function(){return this._id2Color}},{key:"setZones",value:function(e){this._zones=e,this._zones.sort(a.compare)}},{key:"setLineHeight",value:function(e){return this._lineHeight!==e&&(this._lineHeight=e,this._colorZonesInvalid=!0,!0)}},{key:"setPixelRatio",value:function(e){this._pixelRatio=e,this._colorZonesInvalid=!0}},{key:"getDOMWidth",value:function(){return this._domWidth}},{key:"getCanvasWidth",value:function(){return this._domWidth*this._pixelRatio}},{key:"setDOMWidth",value:function(e){return this._domWidth!==e&&(this._domWidth=e,this._colorZonesInvalid=!0,!0)}},{key:"getDOMHeight",value:function(){return this._domHeight}},{key:"getCanvasHeight",value:function(){return this._domHeight*this._pixelRatio}},{key:"setDOMHeight",value:function(e){return this._domHeight!==e&&(this._domHeight=e,this._colorZonesInvalid=!0,!0)}},{key:"getOuterHeight",value:function(){return this._outerHeight}},{key:"setOuterHeight",value:function(e){return this._outerHeight!==e&&(this._outerHeight=e,this._colorZonesInvalid=!0,!0)}},{key:"resolveColorZones",value:function(){for(var e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),n=Math.floor(this.getCanvasHeight()),i=n/Math.floor(this._outerHeight),r=Math.floor(4*this._pixelRatio/2),a=[],s=0,u=this._zones.length;s<u;s++){var l=this._zones[s];if(!e){var c=l.getColorZones();if(c){a.push(c);continue}}var d=Math.floor(i*this._getVerticalOffsetForLine(l.startLineNumber)),h=Math.floor(i*(this._getVerticalOffsetForLine(l.endLineNumber)+t)),f=Math.floor((d+h)/2),p=h-f;p<r&&(p=r),f-p<0&&(f=p),f+p>n&&(f=n-p);var v=l.color,g=this._color2Id[v];g||(g=++this._lastAssignedId,this._color2Id[v]=g,this._id2Color[g]=v);var m=new o(f-p,f+p,g);l.setColorZone(m),a.push(m)}return this._colorZonesInvalid=!1,a.sort(o.compare),a}}]),e}()},29805:function(e,t,n){"use strict";n.d(t,{Kp:function(){return s},k:function(){return c}});var i=n(37762),r=n(15671),o=n(43144),a=n(51747),s=function(){function e(t,n,i,o){(0,r.Z)(this,e),this.startColumn=t,this.endColumn=n,this.className=i,this.type=o}return(0,o.Z)(e,null,[{key:"_equals",value:function(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}},{key:"equalsArr",value:function(t,n){var i=t.length;if(i!==n.length)return!1;for(var r=0;r<i;r++)if(!e._equals(t[r],n[r]))return!1;return!0}},{key:"extractWrapped",value:function(t,n,r){if(0===t.length)return t;var o,a=n+1,s=r+1,u=r-n,l=[],c=0,d=(0,i.Z)(t);try{for(d.s();!(o=d.n()).done;){var h=o.value;h.endColumn<=a||h.startColumn>=s||(l[c++]=new e(Math.max(1,h.startColumn-a+1),Math.min(u+1,h.endColumn-a+1),h.className,h.type))}}catch(f){d.e(f)}finally{d.f()}return l}},{key:"filter",value:function(t,n,i,r){if(0===t.length)return[];for(var o=[],a=0,s=0,u=t.length;s<u;s++){var l=t[s],c=l.range;if(!(c.endLineNumber<n||c.startLineNumber>n)&&(!c.isEmpty()||0!==l.type&&3!==l.type)){var d=c.startLineNumber===n?c.startColumn:i,h=c.endLineNumber===n?c.endColumn:r;o[a++]=new e(d,h,l.inlineClassName,l.type)}}return o}},{key:"_typeCompare",value:function(e,t){var n=[2,0,1,3];return n[e]-n[t]}},{key:"compare",value:function(t,n){if(t.startColumn===n.startColumn){if(t.endColumn===n.endColumn){var i=e._typeCompare(t.type,n.type);return 0===i?t.className<n.className?-1:t.className>n.className?1:0:i}return t.endColumn-n.endColumn}return t.startColumn-n.startColumn}}]),e}(),u=(0,o.Z)((function e(t,n,i,o){(0,r.Z)(this,e),this.startOffset=t,this.endOffset=n,this.className=i,this.metadata=o})),l=function(){function e(){(0,r.Z)(this,e),this.stopOffsets=[],this.classNames=[],this.metadata=[],this.count=0}return(0,o.Z)(e,[{key:"consumeLowerThan",value:function(t,n,i){for(;this.count>0&&this.stopOffsets[0]<t;){for(var r=0;r+1<this.count&&this.stopOffsets[r]===this.stopOffsets[r+1];)r++;i.push(new u(n,this.stopOffsets[r],this.classNames.join(" "),e._metadata(this.metadata))),n=this.stopOffsets[r]+1,this.stopOffsets.splice(0,r+1),this.classNames.splice(0,r+1),this.metadata.splice(0,r+1),this.count-=r+1}return this.count>0&&n<t&&(i.push(new u(n,t-1,this.classNames.join(" "),e._metadata(this.metadata))),n=t),n}},{key:"insert",value:function(e,t,n){if(0===this.count||this.stopOffsets[this.count-1]<=e)this.stopOffsets.push(e),this.classNames.push(t),this.metadata.push(n);else for(var i=0;i<this.count;i++)if(this.stopOffsets[i]>=e){this.stopOffsets.splice(i,0,e),this.classNames.splice(i,0,t),this.metadata.splice(i,0,n);break}this.count++}}],[{key:"_metadata",value:function(e){for(var t=0,n=0,i=e.length;n<i;n++)t|=e[n];return t}}]),e}(),c=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"normalize",value:function(e,t){if(0===t.length)return[];for(var n=[],i=new l,r=0,o=0,s=t.length;o<s;o++){var u=t[o],c=u.startColumn,d=u.endColumn,h=u.className,f=1===u.type?2:2===u.type?4:0;if(c>1){var p=e.charCodeAt(c-2);a.ZG(p)&&c--}if(d>1){var v=e.charCodeAt(d-2);a.ZG(v)&&d--}var g=c-1,m=d-2;r=i.consumeLowerThan(g,r,n),0===i.count&&(r=g),i.insert(m,h,f)}return i.consumeLowerThan(1073741824,r,n),n}}]),e}()},70632:function(e,t,n){"use strict";n.d(t,{IJ:function(){return d},d1:function(){return p},fH:function(){return h},tF:function(){return g},zG:function(){return c}});var i=n(37762),r=n(15671),o=n(43144),a=n(51747),s=n(85500),u=n(29805),l=function(){function e(t,n,i){(0,r.Z)(this,e),this.endIndex=t,this.type=n,this.metadata=i}return(0,o.Z)(e,[{key:"isWhitespace",value:function(){return!!(1&this.metadata)}}]),e}(),c=function(){function e(t,n){(0,r.Z)(this,e),this.startOffset=t,this.endOffset=n}return(0,o.Z)(e,[{key:"equals",value:function(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}}]),e}(),d=function(){function e(t,n,i,o,a,s,l,c,d,h,f,p,v,g,m,_,y,b,w){(0,r.Z)(this,e),this.useMonospaceOptimizations=t,this.canUseHalfwidthRightwardsArrow=n,this.lineContent=i,this.continuesWithWrappedLine=o,this.isBasicASCII=a,this.containsRTL=s,this.fauxIndentLength=l,this.lineTokens=c,this.lineDecorations=d.sort(u.Kp.compare),this.tabSize=h,this.startVisibleColumn=f,this.spaceWidth=p,this.stopRenderingLineAfter=m,this.renderWhitespace="all"===_?4:"boundary"===_?1:"selection"===_?2:"trailing"===_?3:0,this.renderControlCharacters=y,this.fontLigatures=b,this.selectionsOnLine=w&&w.sort((function(e,t){return e.startOffset<t.startOffset?-1:1})),Math.abs(g-p)<Math.abs(v-p)?(this.renderSpaceWidth=g,this.renderSpaceCharCode=11825):(this.renderSpaceWidth=v,this.renderSpaceCharCode=183)}return(0,o.Z)(e,[{key:"sameSelection",value:function(e){if(null===this.selectionsOnLine)return null===e;if(null===e)return!1;if(e.length!==this.selectionsOnLine.length)return!1;for(var t=0;t<this.selectionsOnLine.length;t++)if(!this.selectionsOnLine[t].equals(e[t]))return!1;return!0}},{key:"equals",value:function(e){return this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineContent===e.lineContent&&this.continuesWithWrappedLine===e.continuesWithWrappedLine&&this.isBasicASCII===e.isBasicASCII&&this.containsRTL===e.containsRTL&&this.fauxIndentLength===e.fauxIndentLength&&this.tabSize===e.tabSize&&this.startVisibleColumn===e.startVisibleColumn&&this.spaceWidth===e.spaceWidth&&this.renderSpaceWidth===e.renderSpaceWidth&&this.renderSpaceCharCode===e.renderSpaceCharCode&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.fontLigatures===e.fontLigatures&&u.Kp.equalsArr(this.lineDecorations,e.lineDecorations)&&this.lineTokens.equals(e.lineTokens)&&this.sameSelection(e.selectionsOnLine)}}]),e}(),h=function(){function e(t,n){(0,r.Z)(this,e),this.length=t,this._data=new Uint32Array(this.length),this._absoluteOffsets=new Uint32Array(this.length)}return(0,o.Z)(e,[{key:"setPartData",value:function(e,t,n,i){var r=(t<<16|n<<0)>>>0;this._data[e]=r,this._absoluteOffsets[e]=i+n}},{key:"getAbsoluteOffsets",value:function(){return this._absoluteOffsets}},{key:"charOffsetToPartData",value:function(e){return 0===this.length?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}},{key:"partDataToCharOffset",value:function(t,n,i){if(0===this.length)return 0;for(var r=(t<<16|i<<0)>>>0,o=0,a=this.length-1;o+1<a;){var s=o+a>>>1,u=this._data[s];if(u===r)return s;u>r?a=s:o=s}if(o===a)return o;var l=this._data[o],c=this._data[a];if(l===r)return o;if(c===r)return a;var d=e.getPartIndex(l);return i-e.getCharIndex(l)<=(d!==e.getPartIndex(c)?n:e.getCharIndex(c))-i?o:a}}],[{key:"getPartIndex",value:function(e){return(4294901760&e)>>>16}},{key:"getCharIndex",value:function(e){return(65535&e)>>>0}}]),e}(),f=(0,o.Z)((function e(t,n,i){(0,r.Z)(this,e),this.characterMapping=t,this.containsRTL=n,this.containsForeignElements=i}));function p(e,t){if(0===e.lineContent.length){if(e.lineDecorations.length>0){t.appendASCIIString("<span>");var n,r=0,o=0,s=0,c=(0,i.Z)(e.lineDecorations);try{for(c.s();!(n=c.n()).done;){var d=n.value;1!==d.type&&2!==d.type||(t.appendASCIIString('<span class="'),t.appendASCIIString(d.className),t.appendASCIIString('"></span>'),1===d.type&&(s|=1,r++),2===d.type&&(s|=2,o++))}}catch(v){c.e(v)}finally{c.f()}t.appendASCIIString("</span>");var p=new h(1,r+o);return p.setPartData(0,r,0,0),new f(p,!1,s)}return t.appendASCIIString("<span><span></span></span>"),new f(new h(0,0),!1,0)}return function(e,t){var n=e.fontIsMonospace,i=e.canUseHalfwidthRightwardsArrow,r=e.containsForeignElements,o=e.lineContent,s=e.len,u=e.isOverflowing,l=e.parts,c=e.fauxIndentLength,d=e.tabSize,p=e.startVisibleColumn,v=e.containsRTL,g=e.spaceWidth,m=e.renderSpaceCharCode,_=e.renderWhitespace,y=e.renderControlCharacters,b=new h(s+1,l.length),w=0,C=p,k=0,S=0,x=0,L=0;v?t.appendASCIIString('<span dir="ltr">'):t.appendASCIIString("<span>");for(var E=0,N=l.length;E<N;E++){L+=x;var D=l[E],M=D.endIndex,T=D.type,O=0!==_&&D.isWhitespace(),I=O&&!n&&("mtkw"===T||!r),A=w===M&&4===D.metadata;if(k=0,t.appendASCIIString('<span class="'),t.appendASCIIString(I?"mtkz":T),t.appendASCII(34),O){for(var P=0,R=w,Z=C;R<M;R++){var F=0|(9===o.charCodeAt(R)?d-Z%d:1);P+=F,R>=c&&(Z+=F)}for(I&&(t.appendASCIIString(' style="width:'),t.appendASCIIString(String(g*P)),t.appendASCIIString('px"')),t.appendASCII(62);w<M;w++){b.setPartData(w,E-S,k,L),S=0;var j=void 0;if(9===o.charCodeAt(w)){j=d-C%d|0,!i||j>1?t.write1(8594):t.write1(65515);for(var H=2;H<=j;H++)t.write1(160)}else j=1,t.write1(m);k+=j,w>=c&&(C+=j)}x=P}else{var B=0;for(t.appendASCII(62);w<M;w++){b.setPartData(w,E-S,k,L),S=0;var z=o.charCodeAt(w),W=1,V=1;switch(z){case 9:V=W=d-C%d;for(var Y=1;Y<=W;Y++)t.write1(160);break;case 32:t.write1(160);break;case 60:t.appendASCIIString("&lt;");break;case 62:t.appendASCIIString("&gt;");break;case 38:t.appendASCIIString("&amp;");break;case 0:y?t.write1(9216):t.appendASCIIString("&#00;");break;case 65279:case 8232:case 8233:case 133:t.write1(65533);break;default:a.K7(z)&&V++,y&&z<32?t.write1(9216+z):y&&127===z?t.write1(9249):t.write1(z)}k+=W,B+=W,w>=c&&(C+=V)}x=B}A?S++:S=0,t.appendASCIIString("</span>")}b.setPartData(s,l.length-1,k,L),u&&t.appendASCIIString("<span>&hellip;</span>");return t.appendASCIIString("</span>"),new f(b,v,r)}(function(e){var t,n,i=e.lineContent;-1!==e.stopRenderingLineAfter&&e.stopRenderingLineAfter<i.length?(t=!0,n=e.stopRenderingLineAfter):(t=!1,n=i.length);var r=function(e,t,n){var i=[],r=0;t>0&&(i[r++]=new l(t,"",0));for(var o=0,a=e.getCount();o<a;o++){var s=e.getEndOffset(o);if(!(s<=t)){var u=e.getClassName(o);if(s>=n){i[r++]=new l(n,u,0);break}i[r++]=new l(s,u,0)}}return i}(e.lineTokens,e.fauxIndentLength,n);(4===e.renderWhitespace||1===e.renderWhitespace||2===e.renderWhitespace&&e.selectionsOnLine||3===e.renderWhitespace)&&(r=function(e,t,n,i){var r,o=e.continuesWithWrappedLine,s=e.fauxIndentLength,u=e.tabSize,c=e.startVisibleColumn,d=e.useMonospaceOptimizations,h=e.selectionsOnLine,f=1===e.renderWhitespace,p=3===e.renderWhitespace,v=e.renderSpaceWidth!==e.spaceWidth,g=[],m=0,_=0,y=i[_].type,b=i[_].endIndex,w=i.length,C=!1,k=a.LC(t);-1===k?(C=!0,k=n,r=n):r=a.ow(t);for(var S=!1,x=0,L=h&&h[x],E=c%u,N=s;N<n;N++){var D=t.charCodeAt(N);L&&N>=L.endOffset&&(x++,L=h&&h[x]);var M=void 0;if(N<k||N>r)M=!0;else if(9===D)M=!0;else if(32===D)if(f)if(S)M=!0;else{var T=N+1<n?t.charCodeAt(N+1):0;M=32===T||9===T}else M=!0;else M=!1;if(M&&h&&(M=!!L&&L.startOffset<=N&&L.endOffset>N),M&&p&&(M=C||N>r),S){if(!M||!d&&E>=u){if(v)for(var O=(m>0?g[m-1].endIndex:s)+1;O<=N;O++)g[m++]=new l(O,"mtkw",1);else g[m++]=new l(N,"mtkw",1);E%=u}}else(N===b||M&&N>s)&&(g[m++]=new l(N,y,0),E%=u);for(9===D?E=u:a.K7(D)?E+=2:E++,S=M;N===b;)++_<w&&(y=i[_].type,b=i[_].endIndex)}var I=!1;if(S)if(o&&f){var A=n>0?t.charCodeAt(n-1):0,P=n>1?t.charCodeAt(n-2):0;32===A&&32!==P&&9!==P||(I=!0)}else I=!0;if(I)if(v)for(var R=(m>0?g[m-1].endIndex:s)+1;R<=n;R++)g[m++]=new l(R,"mtkw",1);else g[m++]=new l(n,"mtkw",1);else g[m++]=new l(n,y,0);return g}(e,i,n,r));var o=0;if(e.lineDecorations.length>0){for(var s=0,c=e.lineDecorations.length;s<c;s++){var d=e.lineDecorations[s];3===d.type||1===d.type?o|=1:2===d.type&&(o|=2)}r=function(e,t,n,i){i.sort(u.Kp.compare);for(var r=u.k.normalize(e,i),o=r.length,a=0,s=[],c=0,d=0,h=0,f=n.length;h<f;h++){for(var p=n[h],v=p.endIndex,g=p.type,m=p.metadata;a<o&&r[a].startOffset<v;){var _=r[a];if(_.startOffset>d&&(d=_.startOffset,s[c++]=new l(d,g,m)),!(_.endOffset+1<=v)){d=v,s[c++]=new l(d,g+" "+_.className,m|_.metadata);break}d=_.endOffset+1,s[c++]=new l(d,g+" "+_.className,m|_.metadata),a++}v>d&&(d=v,s[c++]=new l(d,g,m))}var y=n[n.length-1].endIndex;if(a<o&&r[a].startOffset===y){for(var b=[],w=0;a<o&&r[a].startOffset===y;)b.push(r[a].className),w|=r[a].metadata,a++;s[c++]=new l(d,b.join(" "),w)}return s}(i,0,r,e.lineDecorations)}e.containsRTL||(r=function(e,t,n){var i=0,r=[],o=0;if(n)for(var a=0,s=t.length;a<s;a++){var u=t[a],c=u.endIndex;if(i+50<c){for(var d=u.type,h=u.metadata,f=-1,p=i,v=i;v<c;v++)32===e.charCodeAt(v)&&(f=v),-1!==f&&v-p>=50&&(r[o++]=new l(f+1,d,h),p=f+1,f=-1);p!==c&&(r[o++]=new l(c,d,h))}else r[o++]=u;i=c}else for(var g=0,m=t.length;g<m;g++){var _=t[g],y=_.endIndex,b=y-i;if(b>50){for(var w=_.type,C=_.metadata,k=Math.ceil(b/50),S=1;S<k;S++){var x=i+50*S;r[o++]=new l(x,w,C)}r[o++]=new l(y,w,C)}else r[o++]=_;i=y}return r}(i,r,!e.isBasicASCII||e.fontLigatures));return new m(e.useMonospaceOptimizations,e.canUseHalfwidthRightwardsArrow,i,n,t,r,o,e.fauxIndentLength,e.tabSize,e.startVisibleColumn,e.containsRTL,e.spaceWidth,e.renderSpaceCharCode,e.renderWhitespace,e.renderControlCharacters)}(e),t)}var v=(0,o.Z)((function e(t,n,i,o){(0,r.Z)(this,e),this.characterMapping=t,this.html=n,this.containsRTL=i,this.containsForeignElements=o}));function g(e){var t=(0,s.l$)(1e4),n=p(e,t);return new v(n.characterMapping,t.build(),n.containsRTL,n.containsForeignElements)}var m=(0,o.Z)((function e(t,n,i,o,a,s,u,l,c,d,h,f,p,v,g){(0,r.Z)(this,e),this.fontIsMonospace=t,this.canUseHalfwidthRightwardsArrow=n,this.lineContent=i,this.len=o,this.isOverflowing=a,this.parts=s,this.containsForeignElements=u,this.fauxIndentLength=l,this.tabSize=c,this.startVisibleColumn=d,this.containsRTL=h,this.spaceWidth=f,this.renderSpaceCharCode=p,this.renderWhitespace=v,this.renderControlCharacters=g}))},21043:function(e,t,n){"use strict";n.d(t,{T:function(){return a},o:function(){return s}});var i=n(43144),r=n(15671),o=n(38820),a=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.index=t,this.remainder=n})),s=function(){function e(t){(0,r.Z)(this,e),this.values=t,this.prefixSum=new Uint32Array(t.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}return(0,i.Z)(e,[{key:"insertValues",value:function(e,t){e=(0,o.A)(e);var n=this.values,i=this.prefixSum,r=t.length;return 0!==r&&(this.values=new Uint32Array(n.length+r),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e),e+r),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}},{key:"changeValue",value:function(e,t){return e=(0,o.A)(e),t=(0,o.A)(t),this.values[e]!==t&&(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)}},{key:"removeValues",value:function(e,t){e=(0,o.A)(e),t=(0,o.A)(t);var n=this.values,i=this.prefixSum;if(e>=n.length)return!1;var r=n.length-e;return t>=r&&(t=r),0!==t&&(this.values=new Uint32Array(n.length-t),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}},{key:"getTotalValue",value:function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)}},{key:"getAccumulatedValue",value:function(e){return e<0?0:(e=(0,o.A)(e),this._getAccumulatedValue(e))}},{key:"_getAccumulatedValue",value:function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}},{key:"getIndexOf",value:function(e){e=Math.floor(e),this.getTotalValue();for(var t=0,n=this.values.length-1,i=0,r=0,o=0;t<=n;)if(i=t+(n-t)/2|0,e<(o=(r=this.prefixSum[i])-this.values[i]))n=i-1;else{if(!(e>=r))break;t=i+1}return new a(i,e-o)}}]),e}()},4587:function(e,t,n){"use strict";n.d(t,{$l:function(){return f},$t:function(){return h},IP:function(){return c},l_:function(){return a},le:function(){return u},ud:function(){return l},wA:function(){return d}});var i=n(43144),r=n(15671),o=n(51747),a=(0,i.Z)((function e(t,n,i,o){(0,r.Z)(this,e),this.top=0|t,this.left=0|n,this.width=0|i,this.height=0|o})),s=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.outputLineIndex=t,this.outputOffset=n})),u=function(){function e(t,n,i){(0,r.Z)(this,e),this.breakOffsets=t,this.breakOffsetsVisibleColumn=n,this.wrappedTextIndentLength=i}return(0,i.Z)(e,null,[{key:"getInputOffsetOfOutputPosition",value:function(e,t,n){return 0===t?n:e[t-1]+n}},{key:"getOutputPositionOfInputOffset",value:function(e,t){for(var n=0,i=e.length-1,r=0,o=0;n<=i;){var a=e[r=n+(i-n)/2|0];if(t<(o=r>0?e[r-1]:0))i=r-1;else{if(!(t>=a))break;n=r+1}}return new s(r,t-o)}}]),e}(),l=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.tabSize=t,this.data=n})),c=(0,i.Z)((function e(t,n,i,o,a,s){(0,r.Z)(this,e),this.content=t,this.continuesWithWrappedLine=n,this.minColumn=i,this.maxColumn=o,this.startVisibleColumn=a,this.tokens=s})),d=function(){function e(t,n,i,o,a,s,u,l,c,d){(0,r.Z)(this,e),this.minColumn=t,this.maxColumn=n,this.content=i,this.continuesWithWrappedLine=o,this.isBasicASCII=e.isBasicASCII(i,s),this.containsRTL=e.containsRTL(i,this.isBasicASCII,a),this.tokens=u,this.inlineDecorations=l,this.tabSize=c,this.startVisibleColumn=d}return(0,i.Z)(e,null,[{key:"isBasicASCII",value:function(e,t){return!t||o.$i(e)}},{key:"containsRTL",value:function(e,t,n){return!(t||!n)&&o.Ut(e)}}]),e}(),h=(0,i.Z)((function e(t,n,i){(0,r.Z)(this,e),this.range=t,this.inlineClassName=n,this.type=i})),f=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.range=t,this.options=n}))},61335:function(e,t,n){"use strict";n.d(t,{xC:function(){return A},Zg:function(){return O},x$:function(){return P},Qq:function(){return Z},Qs:function(){return j}});var i=n(29439),r=n(93433),o=n(15671),a=n(43144),s=n(37762),u=n(87757),l=n.n(u),c=n(52180),d=n(49396),h=n(66526),f=n(8729),p=n(67775),v=n(47908),g=n(76191),m=n(67297),_=n(67033),y=n(74964),b=n(99404),w=n(333),C=n(49076),k=n(71481),S=n(56345),x=function(){function e(t){(0,o.Z)(this,e),this.value=t,this._lower=t.toLowerCase()}return(0,a.Z)(e,null,[{key:"toKey",value:function(e){return"string"===typeof e?e.toLowerCase():e._lower}}]),e}(),L=n(84596),E=n(28214),N=n(72611),D=n(25941),M=n(98900),T=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function O(e){if((e=e.filter((function(e){return e.range}))).length){for(var t=e[0].range,n=1;n<e.length;n++)t=_.e.plusRange(t,e[n].range);var i=t,r=i.startLineNumber,o=i.endLineNumber;r===o?1===e.length?(0,c.Z9)(S.N("hint11","Made 1 formatting edit on line {0}",r)):(0,c.Z9)(S.N("hintn1","Made {0} formatting edits on line {1}",e.length,r)):1===e.length?(0,c.Z9)(S.N("hint1n","Made 1 formatting edit between lines {0} and {1}",r,o)):(0,c.Z9)(S.N("hintnn","Made {0} formatting edits between lines {1} and {2}",e.length,r,o))}}function I(e){var t,n=[],i=new Set,r=b.Az.ordered(e),o=(0,s.Z)(r);try{for(o.s();!(t=o.n()).done;){var a=t.value;n.push(a),a.extensionId&&i.add(x.toKey(a.extensionId))}}catch(h){o.e(h)}finally{o.f()}var u,l=b.vN.ordered(e),c=(0,s.Z)(l);try{var d=function(){var e=u.value;if(e.extensionId){if(i.has(x.toKey(e.extensionId)))return"continue";i.add(x.toKey(e.extensionId))}n.push({displayName:e.displayName,extensionId:e.extensionId,provideDocumentFormattingEdits:function(t,n,i){return e.provideDocumentRangeFormattingEdits(t,t.getFullModelRange(),n,i)}})};for(c.s();!(u=c.n()).done;)d()}catch(h){c.e(h)}finally{c.f()}return n}var A=function(){function e(){(0,o.Z)(this,e)}return(0,a.Z)(e,null,[{key:"setFormatterSelector",value:function(t){return{dispose:e._selectors.unshift(t)}}},{key:"select",value:function(t,n,i){return T(this,void 0,void 0,l().mark((function r(){var o;return l().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(0!==t.length){r.next=2;break}return r.abrupt("return",void 0);case 2:if(!(o=M.$.first(e._selectors))){r.next=7;break}return r.next=6,o(t,n,i);case 6:return r.abrupt("return",r.sent);case 7:return r.abrupt("return",void 0);case 8:case"end":return r.stop()}}),r)})))}}]),e}();function P(e,t,n,i,r,o){return T(this,void 0,void 0,l().mark((function a(){var s,u,c,d;return l().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return s=e.get(L.TG),u=(0,g.CL)(t)?t.getModel():t,c=b.vN.ordered(u),a.next=5,A.select(c,u,i);case 5:if(!(d=a.sent)){a.next=10;break}return r.report(d),a.next=10,s.invokeFunction(R,d,t,n,o);case 10:case"end":return a.stop()}}),a)})))}function R(e,t,n,i,o){return T(this,void 0,void 0,l().mark((function a(){var u,c,h,f,p,m,b,C,S,x,L,E,N,D,M,T;return l().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:u=e.get(w.p),(0,g.CL)(n)?(c=n.getModel(),h=new v.Dl(n,5,void 0,o)):(c=n,h=new v.YQ(n,o)),f=[],p=0,m=(0,s.Z)((0,d._2)(i).sort(_.e.compareRangesUsingStarts));try{for(m.s();!(b=m.n()).done;)C=b.value,p>0&&_.e.areIntersectingOrTouching(f[p-1],C)?f[p-1]=_.e.fromPositions(f[p-1].getStartPosition(),C.getEndPosition()):p=f.push(C)}catch(l){m.e(l)}finally{m.f()}S=[],x=0,L=f;case 8:if(!(x<L.length)){a.next=26;break}return E=L[x],a.prev=10,a.next=13,t.provideDocumentRangeFormattingEdits(c,E,c.getFormattingOptions(),h.token);case 13:return N=a.sent,a.next=16,u.computeMoreMinimalEdits(c.uri,N);case 16:if((D=a.sent)&&S.push.apply(S,(0,r.Z)(D)),!h.token.isCancellationRequested){a.next=20;break}return a.abrupt("return",!0);case 20:return a.prev=20,h.dispose(),a.finish(20);case 23:x++,a.next=8;break;case 26:if(0!==S.length){a.next=28;break}return a.abrupt("return",!1);case 28:return(0,g.CL)(n)?(k.V.execute(n,S,!0),O(S),n.revealPositionInCenterIfOutsideViewport(n.getPosition(),1)):(M=S[0].range,T=new y.Y(M.startLineNumber,M.startColumn,M.endLineNumber,M.endColumn),c.pushEditOperations([T],S.map((function(e){return{text:e.text,range:_.e.lift(e.range),forceMoveMarkers:!0}})),(function(e){var t,n=(0,s.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value.range;if(_.e.areIntersectingOrTouching(i,T))return[new y.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)]}}catch(l){n.e(l)}finally{n.f()}return null}))),a.abrupt("return",!0);case 30:case"end":return a.stop()}}),a,null,[[10,,20,23]])})))}function Z(e,t,n,i,r){return T(this,void 0,void 0,l().mark((function o(){var a,s,u,c;return l().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return a=e.get(L.TG),s=(0,g.CL)(t)?t.getModel():t,u=I(s),o.next=5,A.select(u,s,n);case 5:if(!(c=o.sent)){o.next=10;break}return i.report(c),o.next=10,a.invokeFunction(F,c,t,n,r);case 10:case"end":return o.stop()}}),o)})))}function F(e,t,n,r,o){return T(this,void 0,void 0,l().mark((function a(){var u,c,d,h,f,p,m,b,C;return l().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return u=e.get(w.p),(0,g.CL)(n)?(c=n.getModel(),d=new v.Dl(n,5,void 0,o)):(c=n,d=new v.YQ(n,o)),a.prev=2,a.next=5,t.provideDocumentFormattingEdits(c,c.getFormattingOptions(),d.token);case 5:return f=a.sent,a.next=8,u.computeMoreMinimalEdits(c.uri,f);case 8:if(h=a.sent,!d.token.isCancellationRequested){a.next=11;break}return a.abrupt("return",!0);case 11:return a.prev=11,d.dispose(),a.finish(11);case 14:if(h&&0!==h.length){a.next=16;break}return a.abrupt("return",!1);case 16:return(0,g.CL)(n)?(k.V.execute(n,h,2!==r),2!==r&&(O(h),n.revealPositionInCenterIfOutsideViewport(n.getPosition(),1))):(p=h,m=(0,i.Z)(p,1),b=m[0].range,C=new y.Y(b.startLineNumber,b.startColumn,b.endLineNumber,b.endColumn),c.pushEditOperations([C],h.map((function(e){return{text:e.text,range:_.e.lift(e.range),forceMoveMarkers:!0}})),(function(e){var t,n=(0,s.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value.range;if(_.e.areIntersectingOrTouching(i,C))return[new y.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)]}}catch(r){n.e(r)}finally{n.f()}return null}))),a.abrupt("return",!0);case 18:case"end":return a.stop()}}),a,null,[[2,,11,14]])})))}function j(e,t,n,i,r){var o=b.ln.ordered(t);return 0===o.length||o[0].autoFormatTriggerCharacters.indexOf(i)<0?Promise.resolve(void 0):Promise.resolve(o[0].provideOnTypeFormattingEdits(t,n,i,r,h.T.None)).catch(f.Cp).then((function(n){return e.computeMoreMinimalEdits(t.uri,n)}))}A._selectors=new E.S,N.P.registerCommand("_executeFormatRangeProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1],a=n[2];(0,D.p_)(p.o.isUri(r)),(0,D.p_)(_.e.isIRange(o));var u=e.get(C.q).getModel(r);if(!u)throw(0,f.b1)("resource");return function(e,t,n,i,r){return T(this,void 0,void 0,l().mark((function o(){var a,u,c,h,p;return l().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:a=b.vN.ordered(t),u=(0,s.Z)(a),o.prev=2,u.s();case 4:if((c=u.n()).done){o.next=15;break}return h=c.value,o.next=8,Promise.resolve(h.provideDocumentRangeFormattingEdits(t,n,i,r)).catch(f.Cp);case 8:if(p=o.sent,!(0,d.Of)(p)){o.next=13;break}return o.next=12,e.computeMoreMinimalEdits(t.uri,p);case 12:return o.abrupt("return",o.sent);case 13:o.next=4;break;case 15:o.next=20;break;case 17:o.prev=17,o.t0=o.catch(2),u.e(o.t0);case 20:return o.prev=20,u.f(),o.finish(20);case 23:return o.abrupt("return",void 0);case 24:case"end":return o.stop()}}),o,null,[[2,17,20,23]])})))}(e.get(w.p),u,_.e.lift(o),a,h.T.None)})),N.P.registerCommand("_executeFormatDocumentProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1];(0,D.p_)(p.o.isUri(r));var a=e.get(C.q).getModel(r);if(!a)throw(0,f.b1)("resource");return function(e,t,n,i){return T(this,void 0,void 0,l().mark((function r(){var o,a,u,c,h;return l().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=I(t),a=(0,s.Z)(o),r.prev=2,a.s();case 4:if((u=a.n()).done){r.next=15;break}return c=u.value,r.next=8,Promise.resolve(c.provideDocumentFormattingEdits(t,n,i)).catch(f.Cp);case 8:if(h=r.sent,!(0,d.Of)(h)){r.next=13;break}return r.next=12,e.computeMoreMinimalEdits(t.uri,h);case 12:return r.abrupt("return",r.sent);case 13:r.next=4;break;case 15:r.next=20;break;case 17:r.prev=17,r.t0=r.catch(2),a.e(r.t0);case 20:return r.prev=20,a.f(),r.finish(20);case 23:return r.abrupt("return",void 0);case 24:case"end":return r.stop()}}),r,null,[[2,17,20,23]])})))}(e.get(w.p),a,o,h.T.None)})),N.P.registerCommand("_executeFormatOnTypeProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1],a=n[2],s=n[3];(0,D.p_)(p.o.isUri(r)),(0,D.p_)(m.L.isIPosition(o)),(0,D.p_)("string"===typeof a);var u=e.get(C.q).getModel(r);if(!u)throw(0,f.b1)("resource");return j(e.get(w.p),u,m.L.lift(o),a,s)}))},71481:function(e,t,n){"use strict";n.d(t,{V:function(){return u}});var i=n(37762),r=n(15671),o=n(43144),a=n(85025),s=n(67033),u=function(){function e(){(0,r.Z)(this,e)}return(0,o.Z)(e,null,[{key:"_handleEolEdits",value:function(e,t){var n,r=void 0,o=[],a=(0,i.Z)(t);try{for(a.s();!(n=a.n()).done;){var s=n.value;"number"===typeof s.eol&&(r=s.eol),s.range&&"string"===typeof s.text&&o.push(s)}}catch(u){a.e(u)}finally{a.f()}return"number"===typeof r&&e.hasModel()&&e.getModel().pushEOL(r),o}},{key:"_isFullModelReplaceEdit",value:function(e,t){if(!e.hasModel())return!1;var n=e.getModel(),i=n.validateRange(t.range);return n.getFullModelRange().equalsRange(i)}},{key:"execute",value:function(t,n,i){i&&t.pushUndoStop();var r=e._handleEolEdits(t,n);1===r.length&&e._isFullModelReplaceEdit(t,r[0])?t.executeEdits("formatEditsCommand",r.map((function(e){return a.h.replace(s.e.lift(e.range),e.text)}))):t.executeEdits("formatEditsCommand",r.map((function(e){return a.h.replaceMove(s.e.lift(e.range),e.text)}))),i&&t.pushUndoStop()}}]),e}()},14717:function(e,t,n){"use strict";n.r(t),n.d(t,{CancellationTokenSource:function(){return Uu},Emitter:function(){return Ku},KeyCode:function(){return qu},KeyMod:function(){return Gu},MarkerSeverity:function(){return el},MarkerTag:function(){return tl},Position:function(){return $u},Range:function(){return Qu},Selection:function(){return Xu},SelectionDirection:function(){return Ju},Token:function(){return il},Uri:function(){return nl},editor:function(){return rl},languages:function(){return ol}});var i,r,o,a,s,u,l,c,d,h,f,p,v,g,m,_,y,b,w,C,k,S,x,L,E,N,D,M,T,O,I,A,P,R,Z=n(76556),F=n(15671),j=n(43144),H=n(66526),B=n(11732),z=n(38792),W=n(67775),V=n(67297),Y=n(67033),U=n(74964),K=n(98154);!function(e){e[e.Unknown=0]="Unknown",e[e.Disabled=1]="Disabled",e[e.Enabled=2]="Enabled"}(i||(i={})),function(e){e[e.KeepWhitespace=1]="KeepWhitespace",e[e.InsertAsSnippet=4]="InsertAsSnippet"}(r||(r={})),function(e){e[e.Method=0]="Method",e[e.Function=1]="Function",e[e.Constructor=2]="Constructor",e[e.Field=3]="Field",e[e.Variable=4]="Variable",e[e.Class=5]="Class",e[e.Struct=6]="Struct",e[e.Interface=7]="Interface",e[e.Module=8]="Module",e[e.Property=9]="Property",e[e.Event=10]="Event",e[e.Operator=11]="Operator",e[e.Unit=12]="Unit",e[e.Value=13]="Value",e[e.Constant=14]="Constant",e[e.Enum=15]="Enum",e[e.EnumMember=16]="EnumMember",e[e.Keyword=17]="Keyword",e[e.Text=18]="Text",e[e.Color=19]="Color",e[e.File=20]="File",e[e.Reference=21]="Reference",e[e.Customcolor=22]="Customcolor",e[e.Folder=23]="Folder",e[e.TypeParameter=24]="TypeParameter",e[e.User=25]="User",e[e.Issue=26]="Issue",e[e.Snippet=27]="Snippet"}(o||(o={})),function(e){e[e.Deprecated=1]="Deprecated"}(a||(a={})),function(e){e[e.Invoke=0]="Invoke",e[e.TriggerCharacter=1]="TriggerCharacter",e[e.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"}(s||(s={})),function(e){e[e.EXACT=0]="EXACT",e[e.ABOVE=1]="ABOVE",e[e.BELOW=2]="BELOW"}(u||(u={})),function(e){e[e.NotSet=0]="NotSet",e[e.ContentFlush=1]="ContentFlush",e[e.RecoverFromMarkers=2]="RecoverFromMarkers",e[e.Explicit=3]="Explicit",e[e.Paste=4]="Paste",e[e.Undo=5]="Undo",e[e.Redo=6]="Redo"}(l||(l={})),function(e){e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(c||(c={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(d||(d={})),function(e){e[e.None=0]="None",e[e.Keep=1]="Keep",e[e.Brackets=2]="Brackets",e[e.Advanced=3]="Advanced",e[e.Full=4]="Full"}(h||(h={})),function(e){e[e.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",e[e.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",e[e.accessibilitySupport=2]="accessibilitySupport",e[e.accessibilityPageSize=3]="accessibilityPageSize",e[e.ariaLabel=4]="ariaLabel",e[e.autoClosingBrackets=5]="autoClosingBrackets",e[e.autoClosingDelete=6]="autoClosingDelete",e[e.autoClosingOvertype=7]="autoClosingOvertype",e[e.autoClosingQuotes=8]="autoClosingQuotes",e[e.autoIndent=9]="autoIndent",e[e.automaticLayout=10]="automaticLayout",e[e.autoSurround=11]="autoSurround",e[e.codeLens=12]="codeLens",e[e.codeLensFontFamily=13]="codeLensFontFamily",e[e.codeLensFontSize=14]="codeLensFontSize",e[e.colorDecorators=15]="colorDecorators",e[e.columnSelection=16]="columnSelection",e[e.comments=17]="comments",e[e.contextmenu=18]="contextmenu",e[e.copyWithSyntaxHighlighting=19]="copyWithSyntaxHighlighting",e[e.cursorBlinking=20]="cursorBlinking",e[e.cursorSmoothCaretAnimation=21]="cursorSmoothCaretAnimation",e[e.cursorStyle=22]="cursorStyle",e[e.cursorSurroundingLines=23]="cursorSurroundingLines",e[e.cursorSurroundingLinesStyle=24]="cursorSurroundingLinesStyle",e[e.cursorWidth=25]="cursorWidth",e[e.disableLayerHinting=26]="disableLayerHinting",e[e.disableMonospaceOptimizations=27]="disableMonospaceOptimizations",e[e.domReadOnly=28]="domReadOnly",e[e.dragAndDrop=29]="dragAndDrop",e[e.emptySelectionClipboard=30]="emptySelectionClipboard",e[e.extraEditorClassName=31]="extraEditorClassName",e[e.fastScrollSensitivity=32]="fastScrollSensitivity",e[e.find=33]="find",e[e.fixedOverflowWidgets=34]="fixedOverflowWidgets",e[e.folding=35]="folding",e[e.foldingStrategy=36]="foldingStrategy",e[e.foldingHighlight=37]="foldingHighlight",e[e.unfoldOnClickAfterEndOfLine=38]="unfoldOnClickAfterEndOfLine",e[e.fontFamily=39]="fontFamily",e[e.fontInfo=40]="fontInfo",e[e.fontLigatures=41]="fontLigatures",e[e.fontSize=42]="fontSize",e[e.fontWeight=43]="fontWeight",e[e.formatOnPaste=44]="formatOnPaste",e[e.formatOnType=45]="formatOnType",e[e.glyphMargin=46]="glyphMargin",e[e.gotoLocation=47]="gotoLocation",e[e.hideCursorInOverviewRuler=48]="hideCursorInOverviewRuler",e[e.highlightActiveIndentGuide=49]="highlightActiveIndentGuide",e[e.hover=50]="hover",e[e.inDiffEditor=51]="inDiffEditor",e[e.letterSpacing=52]="letterSpacing",e[e.lightbulb=53]="lightbulb",e[e.lineDecorationsWidth=54]="lineDecorationsWidth",e[e.lineHeight=55]="lineHeight",e[e.lineNumbers=56]="lineNumbers",e[e.lineNumbersMinChars=57]="lineNumbersMinChars",e[e.linkedEditing=58]="linkedEditing",e[e.links=59]="links",e[e.matchBrackets=60]="matchBrackets",e[e.minimap=61]="minimap",e[e.mouseStyle=62]="mouseStyle",e[e.mouseWheelScrollSensitivity=63]="mouseWheelScrollSensitivity",e[e.mouseWheelZoom=64]="mouseWheelZoom",e[e.multiCursorMergeOverlapping=65]="multiCursorMergeOverlapping",e[e.multiCursorModifier=66]="multiCursorModifier",e[e.multiCursorPaste=67]="multiCursorPaste",e[e.occurrencesHighlight=68]="occurrencesHighlight",e[e.overviewRulerBorder=69]="overviewRulerBorder",e[e.overviewRulerLanes=70]="overviewRulerLanes",e[e.padding=71]="padding",e[e.parameterHints=72]="parameterHints",e[e.peekWidgetDefaultFocus=73]="peekWidgetDefaultFocus",e[e.definitionLinkOpensInPeek=74]="definitionLinkOpensInPeek",e[e.quickSuggestions=75]="quickSuggestions",e[e.quickSuggestionsDelay=76]="quickSuggestionsDelay",e[e.readOnly=77]="readOnly",e[e.renameOnType=78]="renameOnType",e[e.renderControlCharacters=79]="renderControlCharacters",e[e.renderIndentGuides=80]="renderIndentGuides",e[e.renderFinalNewline=81]="renderFinalNewline",e[e.renderLineHighlight=82]="renderLineHighlight",e[e.renderLineHighlightOnlyWhenFocus=83]="renderLineHighlightOnlyWhenFocus",e[e.renderValidationDecorations=84]="renderValidationDecorations",e[e.renderWhitespace=85]="renderWhitespace",e[e.revealHorizontalRightPadding=86]="revealHorizontalRightPadding",e[e.roundedSelection=87]="roundedSelection",e[e.rulers=88]="rulers",e[e.scrollbar=89]="scrollbar",e[e.scrollBeyondLastColumn=90]="scrollBeyondLastColumn",e[e.scrollBeyondLastLine=91]="scrollBeyondLastLine",e[e.scrollPredominantAxis=92]="scrollPredominantAxis",e[e.selectionClipboard=93]="selectionClipboard",e[e.selectionHighlight=94]="selectionHighlight",e[e.selectOnLineNumbers=95]="selectOnLineNumbers",e[e.showFoldingControls=96]="showFoldingControls",e[e.showUnused=97]="showUnused",e[e.snippetSuggestions=98]="snippetSuggestions",e[e.smartSelect=99]="smartSelect",e[e.smoothScrolling=100]="smoothScrolling",e[e.stickyTabStops=101]="stickyTabStops",e[e.stopRenderingLineAfter=102]="stopRenderingLineAfter",e[e.suggest=103]="suggest",e[e.suggestFontSize=104]="suggestFontSize",e[e.suggestLineHeight=105]="suggestLineHeight",e[e.suggestOnTriggerCharacters=106]="suggestOnTriggerCharacters",e[e.suggestSelection=107]="suggestSelection",e[e.tabCompletion=108]="tabCompletion",e[e.tabIndex=109]="tabIndex",e[e.unusualLineTerminators=110]="unusualLineTerminators",e[e.useShadowDOM=111]="useShadowDOM",e[e.useTabStops=112]="useTabStops",e[e.wordSeparators=113]="wordSeparators",e[e.wordWrap=114]="wordWrap",e[e.wordWrapBreakAfterCharacters=115]="wordWrapBreakAfterCharacters",e[e.wordWrapBreakBeforeCharacters=116]="wordWrapBreakBeforeCharacters",e[e.wordWrapColumn=117]="wordWrapColumn",e[e.wordWrapOverride1=118]="wordWrapOverride1",e[e.wordWrapOverride2=119]="wordWrapOverride2",e[e.wrappingIndent=120]="wrappingIndent",e[e.wrappingStrategy=121]="wrappingStrategy",e[e.showDeprecated=122]="showDeprecated",e[e.inlineHints=123]="inlineHints",e[e.editorClassName=124]="editorClassName",e[e.pixelRatio=125]="pixelRatio",e[e.tabFocusMode=126]="tabFocusMode",e[e.layoutInfo=127]="layoutInfo",e[e.wrappingInfo=128]="wrappingInfo"}(f||(f={})),function(e){e[e.TextDefined=0]="TextDefined",e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(p||(p={})),function(e){e[e.LF=0]="LF",e[e.CRLF=1]="CRLF"}(v||(v={})),function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(g||(g={})),function(e){e[e.Other=0]="Other",e[e.Type=1]="Type",e[e.Parameter=2]="Parameter"}(m||(m={})),function(e){e[e.DependsOnKbLayout=-1]="DependsOnKbLayout",e[e.Unknown=0]="Unknown",e[e.Backspace=1]="Backspace",e[e.Tab=2]="Tab",e[e.Enter=3]="Enter",e[e.Shift=4]="Shift",e[e.Ctrl=5]="Ctrl",e[e.Alt=6]="Alt",e[e.PauseBreak=7]="PauseBreak",e[e.CapsLock=8]="CapsLock",e[e.Escape=9]="Escape",e[e.Space=10]="Space",e[e.PageUp=11]="PageUp",e[e.PageDown=12]="PageDown",e[e.End=13]="End",e[e.Home=14]="Home",e[e.LeftArrow=15]="LeftArrow",e[e.UpArrow=16]="UpArrow",e[e.RightArrow=17]="RightArrow",e[e.DownArrow=18]="DownArrow",e[e.Insert=19]="Insert",e[e.Delete=20]="Delete",e[e.KEY_0=21]="KEY_0",e[e.KEY_1=22]="KEY_1",e[e.KEY_2=23]="KEY_2",e[e.KEY_3=24]="KEY_3",e[e.KEY_4=25]="KEY_4",e[e.KEY_5=26]="KEY_5",e[e.KEY_6=27]="KEY_6",e[e.KEY_7=28]="KEY_7",e[e.KEY_8=29]="KEY_8",e[e.KEY_9=30]="KEY_9",e[e.KEY_A=31]="KEY_A",e[e.KEY_B=32]="KEY_B",e[e.KEY_C=33]="KEY_C",e[e.KEY_D=34]="KEY_D",e[e.KEY_E=35]="KEY_E",e[e.KEY_F=36]="KEY_F",e[e.KEY_G=37]="KEY_G",e[e.KEY_H=38]="KEY_H",e[e.KEY_I=39]="KEY_I",e[e.KEY_J=40]="KEY_J",e[e.KEY_K=41]="KEY_K",e[e.KEY_L=42]="KEY_L",e[e.KEY_M=43]="KEY_M",e[e.KEY_N=44]="KEY_N",e[e.KEY_O=45]="KEY_O",e[e.KEY_P=46]="KEY_P",e[e.KEY_Q=47]="KEY_Q",e[e.KEY_R=48]="KEY_R",e[e.KEY_S=49]="KEY_S",e[e.KEY_T=50]="KEY_T",e[e.KEY_U=51]="KEY_U",e[e.KEY_V=52]="KEY_V",e[e.KEY_W=53]="KEY_W",e[e.KEY_X=54]="KEY_X",e[e.KEY_Y=55]="KEY_Y",e[e.KEY_Z=56]="KEY_Z",e[e.Meta=57]="Meta",e[e.ContextMenu=58]="ContextMenu",e[e.F1=59]="F1",e[e.F2=60]="F2",e[e.F3=61]="F3",e[e.F4=62]="F4",e[e.F5=63]="F5",e[e.F6=64]="F6",e[e.F7=65]="F7",e[e.F8=66]="F8",e[e.F9=67]="F9",e[e.F10=68]="F10",e[e.F11=69]="F11",e[e.F12=70]="F12",e[e.F13=71]="F13",e[e.F14=72]="F14",e[e.F15=73]="F15",e[e.F16=74]="F16",e[e.F17=75]="F17",e[e.F18=76]="F18",e[e.F19=77]="F19",e[e.NumLock=78]="NumLock",e[e.ScrollLock=79]="ScrollLock",e[e.US_SEMICOLON=80]="US_SEMICOLON",e[e.US_EQUAL=81]="US_EQUAL",e[e.US_COMMA=82]="US_COMMA",e[e.US_MINUS=83]="US_MINUS",e[e.US_DOT=84]="US_DOT",e[e.US_SLASH=85]="US_SLASH",e[e.US_BACKTICK=86]="US_BACKTICK",e[e.US_OPEN_SQUARE_BRACKET=87]="US_OPEN_SQUARE_BRACKET",e[e.US_BACKSLASH=88]="US_BACKSLASH",e[e.US_CLOSE_SQUARE_BRACKET=89]="US_CLOSE_SQUARE_BRACKET",e[e.US_QUOTE=90]="US_QUOTE",e[e.OEM_8=91]="OEM_8",e[e.OEM_102=92]="OEM_102",e[e.NUMPAD_0=93]="NUMPAD_0",e[e.NUMPAD_1=94]="NUMPAD_1",e[e.NUMPAD_2=95]="NUMPAD_2",e[e.NUMPAD_3=96]="NUMPAD_3",e[e.NUMPAD_4=97]="NUMPAD_4",e[e.NUMPAD_5=98]="NUMPAD_5",e[e.NUMPAD_6=99]="NUMPAD_6",e[e.NUMPAD_7=100]="NUMPAD_7",e[e.NUMPAD_8=101]="NUMPAD_8",e[e.NUMPAD_9=102]="NUMPAD_9",e[e.NUMPAD_MULTIPLY=103]="NUMPAD_MULTIPLY",e[e.NUMPAD_ADD=104]="NUMPAD_ADD",e[e.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT=106]="NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL=107]="NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE=108]="NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",e[e.ABNT_C1=110]="ABNT_C1",e[e.ABNT_C2=111]="ABNT_C2",e[e.MAX_VALUE=112]="MAX_VALUE"}(_||(_={})),function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(y||(y={})),function(e){e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated"}(b||(b={})),function(e){e[e.Inline=1]="Inline",e[e.Gutter=2]="Gutter"}(w||(w={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TEXTAREA=1]="TEXTAREA",e[e.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",e[e.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",e[e.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",e[e.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",e[e.CONTENT_TEXT=6]="CONTENT_TEXT",e[e.CONTENT_EMPTY=7]="CONTENT_EMPTY",e[e.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",e[e.CONTENT_WIDGET=9]="CONTENT_WIDGET",e[e.OVERVIEW_RULER=10]="OVERVIEW_RULER",e[e.SCROLLBAR=11]="SCROLLBAR",e[e.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",e[e.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"}(C||(C={})),function(e){e[e.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",e[e.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",e[e.TOP_CENTER=2]="TOP_CENTER"}(k||(k={})),function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(S||(S={})),function(e){e[e.Off=0]="Off",e[e.On=1]="On",e[e.Relative=2]="Relative",e[e.Interval=3]="Interval",e[e.Custom=4]="Custom"}(x||(x={})),function(e){e[e.None=0]="None",e[e.Text=1]="Text",e[e.Blocks=2]="Blocks"}(L||(L={})),function(e){e[e.Smooth=0]="Smooth",e[e.Immediate=1]="Immediate"}(E||(E={})),function(e){e[e.Auto=1]="Auto",e[e.Hidden=2]="Hidden",e[e.Visible=3]="Visible"}(N||(N={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(D||(D={})),function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(M||(M={})),function(e){e[e.File=0]="File",e[e.Module=1]="Module",e[e.Namespace=2]="Namespace",e[e.Package=3]="Package",e[e.Class=4]="Class",e[e.Method=5]="Method",e[e.Property=6]="Property",e[e.Field=7]="Field",e[e.Constructor=8]="Constructor",e[e.Enum=9]="Enum",e[e.Interface=10]="Interface",e[e.Function=11]="Function",e[e.Variable=12]="Variable",e[e.Constant=13]="Constant",e[e.String=14]="String",e[e.Number=15]="Number",e[e.Boolean=16]="Boolean",e[e.Array=17]="Array",e[e.Object=18]="Object",e[e.Key=19]="Key",e[e.Null=20]="Null",e[e.EnumMember=21]="EnumMember",e[e.Struct=22]="Struct",e[e.Event=23]="Event",e[e.Operator=24]="Operator",e[e.TypeParameter=25]="TypeParameter"}(T||(T={})),function(e){e[e.Deprecated=1]="Deprecated"}(O||(O={})),function(e){e[e.Hidden=0]="Hidden",e[e.Blink=1]="Blink",e[e.Smooth=2]="Smooth",e[e.Phase=3]="Phase",e[e.Expand=4]="Expand",e[e.Solid=5]="Solid"}(I||(I={})),function(e){e[e.Line=1]="Line",e[e.Block=2]="Block",e[e.Underline=3]="Underline",e[e.LineThin=4]="LineThin",e[e.BlockOutline=5]="BlockOutline",e[e.UnderlineThin=6]="UnderlineThin"}(A||(A={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",e[e.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",e[e.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",e[e.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"}(P||(P={})),function(e){e[e.None=0]="None",e[e.Same=1]="Same",e[e.Indent=2]="Indent",e[e.DeepIndent=3]="DeepIndent"}(R||(R={}));var q=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,null,[{key:"chord",value:function(e,t){return(0,z.gx)(e,t)}}]),e}();function G(){return{editor:void 0,languages:void 0,CancellationTokenSource:H.A,Emitter:B.Q5,KeyCode:_,KeyMod:q,Position:V.L,Range:Y.e,Selection:U.Y,SelectionDirection:D,MarkerSeverity:y,MarkerTag:b,Uri:W.o,Token:K.WU}}q.CtrlCmd=2048,q.Shift=1024,q.Alt=512,q.WinCtrl=256;var $,Q=n(8295),X=n(37762),J=n(93433),ee=n(87757),te=n.n(ee),ne=n(84540),ie=n(28214),re=n(15022),oe=n(83312),ae=n(55585),se=n(51334),ue=n(72611);!function(e){e[e.API=0]="API",e[e.USER=1]="USER"}($||($={}));var le=n(9696),ce=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},de=function(e,t){return function(n,i){t(n,i,e)}},he=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},fe=function(){function e(t){(0,F.Z)(this,e),this._commandService=t}return(0,j.Z)(e,[{key:"open",value:function(e,t){return he(this,void 0,void 0,te().mark((function n(){var i,r;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if((0,le.xn)(e,ae.lg.command)){n.next=2;break}return n.abrupt("return",!1);case 2:if(null===t||void 0===t?void 0:t.allowCommands){n.next=4;break}return n.abrupt("return",!0);case 4:"string"===typeof e&&(e=W.o.parse(e)),r=[];try{r=(0,oe.Q)(decodeURIComponent(e.query))}catch(Ze){try{r=(0,oe.Q)(e.query)}catch(o){}}return Array.isArray(r)||(r=[r]),n.next=10,(i=this._commandService).executeCommand.apply(i,[e.path].concat((0,J.Z)(r)));case 10:return n.abrupt("return",!0);case 11:case"end":return n.stop()}}),n,this)})))}}]),e}();fe=ce([de(0,ue.H)],fe);var pe=function(){function e(t){(0,F.Z)(this,e),this._editorService=t}return(0,j.Z)(e,[{key:"open",value:function(e,t){return he(this,void 0,void 0,te().mark((function n(){var i,r;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return"string"===typeof e&&(e=W.o.parse(e)),i=void 0,(r=/^L?(\d+)(?:,(\d+))?/.exec(e.fragment))&&(i={startLineNumber:parseInt(r[1]),startColumn:r[2]?parseInt(r[2]):1},e=e.with({fragment:""})),e.scheme===ae.lg.file&&(e=(0,se.AH)(e)),n.next=7,this._editorService.openCodeEditor({resource:e,options:Object.assign({selection:i,context:(null===t||void 0===t?void 0:t.fromUserGesture)?$.USER:$.API},null===t||void 0===t?void 0:t.editorOptions)},this._editorService.getFocusedCodeEditor(),null===t||void 0===t?void 0:t.openToSide);case 7:return n.abrupt("return",!0);case 8:case"end":return n.stop()}}),n,this)})))}}]),e}();pe=ce([de(0,Q.$)],pe);var ve=function(){function e(t,n){var i=this;(0,F.Z)(this,e),this._openers=new ie.S,this._validators=new ie.S,this._resolvers=new ie.S,this._resolvedUriTargets=new re.Y9((function(e){return e.with({path:null,fragment:null,query:null}).toString()})),this._externalOpeners=new ie.S,this._defaultExternalOpener={openExternal:function(e){return he(i,void 0,void 0,te().mark((function t(){return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(0,le.xn)(e,ae.lg.http)||(0,le.xn)(e,ae.lg.https)?ne.windowOpenNoOpener(e):window.location.href=e,t.abrupt("return",!0);case 2:case"end":return t.stop()}}),t)})))}},this._openers.push({open:function(e,t){return he(i,void 0,void 0,te().mark((function n(){return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!((null===t||void 0===t?void 0:t.openExternal)||(0,le.xn)(e,ae.lg.mailto)||(0,le.xn)(e,ae.lg.http)||(0,le.xn)(e,ae.lg.https))){n.next=4;break}return n.next=3,this._doOpenExternal(e,t);case 3:return n.abrupt("return",!0);case 4:return n.abrupt("return",!1);case 5:case"end":return n.stop()}}),n,this)})))}}),this._openers.push(new fe(n)),this._openers.push(new pe(t))}return(0,j.Z)(e,[{key:"registerOpener",value:function(e){return{dispose:this._openers.unshift(e)}}},{key:"registerValidator",value:function(e){return{dispose:this._validators.push(e)}}},{key:"registerExternalUriResolver",value:function(e){return{dispose:this._resolvers.push(e)}}},{key:"setDefaultExternalOpener",value:function(e){this._defaultExternalOpener=e}},{key:"registerExternalOpener",value:function(e){return{dispose:this._externalOpeners.push(e)}}},{key:"open",value:function(e,t){var n;return he(this,void 0,void 0,te().mark((function i(){var r,o,a,s,u,l,c,d;return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r="string"===typeof e?W.o.parse(e):e,o=null!==(n=this._resolvedUriTargets.get(r))&&void 0!==n?n:e,a=(0,X.Z)(this._validators),i.prev=3,a.s();case 5:if((s=a.n()).done){i.next=13;break}return u=s.value,i.next=9,u.shouldOpen(o);case 9:if(i.sent){i.next=11;break}return i.abrupt("return",!1);case 11:i.next=5;break;case 13:i.next=18;break;case 15:i.prev=15,i.t0=i.catch(3),a.e(i.t0);case 18:return i.prev=18,a.f(),i.finish(18);case 21:l=(0,X.Z)(this._openers),i.prev=22,l.s();case 24:if((c=l.n()).done){i.next=33;break}return d=c.value,i.next=28,d.open(e,t);case 28:if(!i.sent){i.next=31;break}return i.abrupt("return",!0);case 31:i.next=24;break;case 33:i.next=38;break;case 35:i.prev=35,i.t1=i.catch(22),l.e(i.t1);case 38:return i.prev=38,l.f(),i.finish(38);case 41:return i.abrupt("return",!1);case 42:case"end":return i.stop()}}),i,this,[[3,15,18,21],[22,35,38,41]])})))}},{key:"resolveExternalUri",value:function(e,t){return he(this,void 0,void 0,te().mark((function n(){var i,r,o,a;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:i=(0,X.Z)(this._resolvers),n.prev=1,i.s();case 3:if((r=i.n()).done){n.next=13;break}return o=r.value,n.next=7,o.resolveExternalUri(e,t);case 7:if(!(a=n.sent)){n.next=11;break}return this._resolvedUriTargets.has(a.resolved)||this._resolvedUriTargets.set(a.resolved,e),n.abrupt("return",a);case 11:n.next=3;break;case 13:n.next=18;break;case 15:n.prev=15,n.t0=n.catch(1),i.e(n.t0);case 18:return n.prev=18,i.f(),n.finish(18);case 21:return n.abrupt("return",{resolved:e,dispose:function(){}});case 22:case"end":return n.stop()}}),n,this,[[1,15,18,21]])})))}},{key:"_doOpenExternal",value:function(e,t){return he(this,void 0,void 0,te().mark((function n(){var i,r,o,a,s,u,l,c;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i="string"===typeof e?W.o.parse(e):e,n.next=3,this.resolveExternalUri(i,t);case 3:if(r=n.sent,o=r.resolved,a="string"===typeof e&&i.toString()===o.toString()?e:encodeURI(o.toString(!0)),!(null===t||void 0===t?void 0:t.allowContributedOpeners)){n.next=28;break}s="string"===typeof(null===t||void 0===t?void 0:t.allowContributedOpeners)?null===t||void 0===t?void 0:t.allowContributedOpeners:void 0,u=(0,X.Z)(this._externalOpeners),n.prev=9,u.s();case 11:if((l=u.n()).done){n.next=20;break}return c=l.value,n.next=15,c.openExternal(a,{sourceUri:i,preferredOpenerId:s},H.T.None);case 15:if(!n.sent){n.next=18;break}return n.abrupt("return",!0);case 18:n.next=11;break;case 20:n.next=25;break;case 22:n.prev=22,n.t0=n.catch(9),u.e(n.t0);case 25:return n.prev=25,u.f(),n.finish(25);case 28:return n.abrupt("return",this._defaultExternalOpener.openExternal(a,{sourceUri:i},H.T.None));case 29:case"end":return n.stop()}}),n,this,[[9,22,25,28]])})))}},{key:"dispose",value:function(){this._validators.clear()}}]),e}();ve=ce([de(0,Q.$),de(1,ue.H)],ve);var ge=n(59180),me=n(28702),_e=n(30062),ye=n(46502),be=n(99404),we=n(59401),Ce=n(333),ke=n(49829),Se=n(44148),xe=n(60136),Le=n(29388),Ee=n(11752),Ne=n(61120),De=n(27997),Me=n(81626),Te=n(8729),Oe=n(30487),Ie=n(25941),Ae="$initialize",Pe=!1;function Re(e){Oe.$L&&(Pe||(Pe=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(e.message))}var Ze,Fe=function(){function e(t){(0,F.Z)(this,e),this._workerId=-1,this._handler=t,this._lastSentReq=0,this._pendingReplies=Object.create(null)}return(0,j.Z)(e,[{key:"setWorkerId",value:function(e){this._workerId=e}},{key:"sendMessage",value:function(e,t){var n=this,i=String(++this._lastSentReq);return new Promise((function(r,o){n._pendingReplies[i]={resolve:r,reject:o},n._send({vsWorker:n._workerId,req:i,method:e,args:t})}))}},{key:"handleMessage",value:function(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))}},{key:"_handleMessage",value:function(e){var t=this;if(e.seq){var n=e;if(!this._pendingReplies[n.seq])return void console.warn("Got reply to unknown seq");var i=this._pendingReplies[n.seq];if(delete this._pendingReplies[n.seq],n.err){var r=n.err;return n.err.$isError&&((r=new Error).name=n.err.name,r.message=n.err.message,r.stack=n.err.stack),void i.reject(r)}i.resolve(n.res)}else{var o=e,a=o.req;this._handler.handleMessage(o.method,o.args).then((function(e){t._send({vsWorker:t._workerId,seq:a,res:e,err:void 0})}),(function(e){e.detail instanceof Error&&(e.detail=(0,Te.ri)(e.detail)),t._send({vsWorker:t._workerId,seq:a,res:void 0,err:(0,Te.ri)(e)})}))}}},{key:"_send",value:function(e){var t=[];if(e.req)for(var n=e,i=0;i<n.args.length;i++)n.args[i]instanceof ArrayBuffer&&t.push(n.args[i]);else{var r=e;r.res instanceof ArrayBuffer&&t.push(r.res)}this._handler.sendMessage(e,t)}}]),e}(),je=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;(0,F.Z)(this,n),o=t.call(this);var a=null;o._worker=o._register(e.create("vs/base/common/worker/simpleWorker",(function(e){o._protocol.handleMessage(e)}),(function(e){a&&a(e)}))),o._protocol=new Fe({sendMessage:function(e,t){o._worker.postMessage(e,t)},handleMessage:function(e,t){if("function"!==typeof r[e])return Promise.reject(new Error("Missing method "+e+" on main thread host."));try{return Promise.resolve(r[e].apply(r,t))}catch(n){return Promise.reject(n)}}}),o._protocol.setWorkerId(o._worker.getId());var s=null;"undefined"!==typeof self.require&&"function"===typeof self.require.getConfig?s=self.require.getConfig():"undefined"!==typeof self.requirejs&&(s=self.requirejs.s.contexts._.config);var u=Ie.$E(r);o._onModuleLoaded=o._protocol.sendMessage(Ae,[o._worker.getId(),JSON.parse(JSON.stringify(s)),i,u]);var l=function(e,t){return o._request(e,t)};return o._lazyProxy=new Promise((function(e,t){a=t,o._onModuleLoaded.then((function(t){e(Ie.IU(t,l))}),(function(e){t(e),o._onError("Worker failed to load "+i,e)}))})),o}return(0,j.Z)(n,[{key:"getProxyObject",value:function(){return this._lazyProxy}},{key:"_request",value:function(e,t){var n=this;return new Promise((function(i,r){n._onModuleLoaded.then((function(){n._protocol.sendMessage(e,t).then(i,r)}),r)}))}},{key:"_onError",value:function(e,t){console.error(e),console.info(t)}}]),n}(Me.JT);var He=null===(Ze=window.trustedTypes)||void 0===Ze?void 0:Ze.createPolicy("defaultWorkerFactory",{createScriptURL:function(e){return e}});var Be=function(){function e(t,n,i,r,o){(0,F.Z)(this,e),this.id=n;var a=function(e,t){if(Oe.li.MonacoEnvironment){if("function"===typeof Oe.li.MonacoEnvironment.getWorker)return Oe.li.MonacoEnvironment.getWorker(e,t);if("function"===typeof Oe.li.MonacoEnvironment.getWorkerUrl){var n=Oe.li.MonacoEnvironment.getWorkerUrl(e,t);return new Worker(He?He.createScriptURL(n):n,{name:t})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}("workerMain.js",i);"function"===typeof a.then?this.worker=a:this.worker=Promise.resolve(a),this.postMessage(t,[]),this.worker.then((function(e){e.onmessage=function(e){r(e.data)},e.onmessageerror=o,"function"===typeof e.addEventListener&&e.addEventListener("error",o)}))}return(0,j.Z)(e,[{key:"getId",value:function(){return this.id}},{key:"postMessage",value:function(e,t){this.worker&&this.worker.then((function(n){return n.postMessage(e,t)}))}},{key:"dispose",value:function(){this.worker&&this.worker.then((function(e){return e.terminate()})),this.worker=null}}]),e}(),ze=function(){function e(t){(0,F.Z)(this,e),this._label=t,this._webWorkerFailedBeforeError=!1}return(0,j.Z)(e,[{key:"create",value:function(t,n,i){var r=this,o=++e.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new Be(t,o,this._label||"anonymous"+o,n,(function(e){Re(e),r._webWorkerFailedBeforeError=e,i(e)}))}}]),e}();ze.LAST_WORKER_ID=0;var We=n(65262),Ve=n(4942),Ye=n(95676),Ue=n(51747),Ke=3;function qe(e,t,n,i){return new Ye.Hs(e,t,n).ComputeDiff(i)}var Ge=function(){function e(t){(0,F.Z)(this,e);for(var n=[],i=[],r=0,o=t.length;r<o;r++)n[r]=et(t[r],1),i[r]=tt(t[r],1);this.lines=t,this._startColumns=n,this._endColumns=i}return(0,j.Z)(e,[{key:"getElements",value:function(){for(var e=[],t=0,n=this.lines.length;t<n;t++)e[t]=this.lines[t].substring(this._startColumns[t]-1,this._endColumns[t]-1);return e}},{key:"getStartLineNumber",value:function(e){return e+1}},{key:"getEndLineNumber",value:function(e){return e+1}},{key:"createCharSequence",value:function(e,t,n){for(var i=[],r=[],o=[],a=0,s=t;s<=n;s++)for(var u=this.lines[s],l=e?this._startColumns[s]:1,c=e?this._endColumns[s]:u.length+1,d=l;d<c;d++)i[a]=u.charCodeAt(d-1),r[a]=s+1,o[a]=d,a++;return new $e(i,r,o)}}]),e}(),$e=function(){function e(t,n,i){(0,F.Z)(this,e),this._charCodes=t,this._lineNumbers=n,this._columns=i}return(0,j.Z)(e,[{key:"getElements",value:function(){return this._charCodes}},{key:"getStartLineNumber",value:function(e){return this._lineNumbers[e]}},{key:"getStartColumn",value:function(e){return this._columns[e]}},{key:"getEndLineNumber",value:function(e){return this._lineNumbers[e]}},{key:"getEndColumn",value:function(e){return this._columns[e]+1}}]),e}(),Qe=function(){function e(t,n,i,r,o,a,s,u){(0,F.Z)(this,e),this.originalStartLineNumber=t,this.originalStartColumn=n,this.originalEndLineNumber=i,this.originalEndColumn=r,this.modifiedStartLineNumber=o,this.modifiedStartColumn=a,this.modifiedEndLineNumber=s,this.modifiedEndColumn=u}return(0,j.Z)(e,null,[{key:"createFromDiffChange",value:function(t,n,i){var r,o,a,s,u,l,c,d;return 0===t.originalLength?(r=0,o=0,a=0,s=0):(r=n.getStartLineNumber(t.originalStart),o=n.getStartColumn(t.originalStart),a=n.getEndLineNumber(t.originalStart+t.originalLength-1),s=n.getEndColumn(t.originalStart+t.originalLength-1)),0===t.modifiedLength?(u=0,l=0,c=0,d=0):(u=i.getStartLineNumber(t.modifiedStart),l=i.getStartColumn(t.modifiedStart),c=i.getEndLineNumber(t.modifiedStart+t.modifiedLength-1),d=i.getEndColumn(t.modifiedStart+t.modifiedLength-1)),new e(r,o,a,s,u,l,c,d)}}]),e}();var Xe=function(){function e(t,n,i,r,o){(0,F.Z)(this,e),this.originalStartLineNumber=t,this.originalEndLineNumber=n,this.modifiedStartLineNumber=i,this.modifiedEndLineNumber=r,this.charChanges=o}return(0,j.Z)(e,null,[{key:"createFromDiffResult",value:function(t,n,i,r,o,a,s){var u,l,c,d,h=void 0;if(0===n.originalLength?(u=i.getStartLineNumber(n.originalStart)-1,l=0):(u=i.getStartLineNumber(n.originalStart),l=i.getEndLineNumber(n.originalStart+n.originalLength-1)),0===n.modifiedLength?(c=r.getStartLineNumber(n.modifiedStart)-1,d=0):(c=r.getStartLineNumber(n.modifiedStart),d=r.getEndLineNumber(n.modifiedStart+n.modifiedLength-1)),a&&n.originalLength>0&&n.originalLength<20&&n.modifiedLength>0&&n.modifiedLength<20&&o()){var f=i.createCharSequence(t,n.originalStart,n.originalStart+n.originalLength-1),p=r.createCharSequence(t,n.modifiedStart,n.modifiedStart+n.modifiedLength-1),v=qe(f,p,o,!0).changes;s&&(v=function(e){if(e.length<=1)return e;for(var t=[e[0]],n=t[0],i=1,r=e.length;i<r;i++){var o=e[i],a=o.originalStart-(n.originalStart+n.originalLength),s=o.modifiedStart-(n.modifiedStart+n.modifiedLength);Math.min(a,s)<Ke?(n.originalLength=o.originalStart+o.originalLength-n.originalStart,n.modifiedLength=o.modifiedStart+o.modifiedLength-n.modifiedStart):(t.push(o),n=o)}return t}(v)),h=[];for(var g=0,m=v.length;g<m;g++)h.push(Qe.createFromDiffChange(v[g],f,p))}return new e(u,l,c,d,h)}}]),e}(),Je=function(){function e(t,n,i){(0,F.Z)(this,e),this.shouldComputeCharChanges=i.shouldComputeCharChanges,this.shouldPostProcessCharChanges=i.shouldPostProcessCharChanges,this.shouldIgnoreTrimWhitespace=i.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=i.shouldMakePrettyDiff,this.originalLines=t,this.modifiedLines=n,this.original=new Ge(t),this.modified=new Ge(n),this.continueLineDiff=nt(i.maxComputationTime),this.continueCharDiff=nt(0===i.maxComputationTime?0:Math.min(i.maxComputationTime,5e3))}return(0,j.Z)(e,[{key:"computeDiff",value:function(){if(1===this.original.lines.length&&0===this.original.lines[0].length)return 1===this.modified.lines.length&&0===this.modified.lines[0].length?{quitEarly:!1,changes:[]}:{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};if(1===this.modified.lines.length&&0===this.modified.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};var e=qe(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,n=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){for(var i=[],r=0,o=t.length;r<o;r++)i.push(Xe.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[r],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:n,changes:i}}for(var a=[],s=0,u=0,l=-1,c=t.length;l<c;l++){for(var d=l+1<c?t[l+1]:null,h=d?d.originalStart:this.originalLines.length,f=d?d.modifiedStart:this.modifiedLines.length;s<h&&u<f;){var p=this.originalLines[s],v=this.modifiedLines[u];if(p!==v){for(var g=et(p,1),m=et(v,1);g>1&&m>1;){if(p.charCodeAt(g-2)!==v.charCodeAt(m-2))break;g--,m--}(g>1||m>1)&&this._pushTrimWhitespaceCharChange(a,s+1,1,g,u+1,1,m);for(var _=tt(p,1),y=tt(v,1),b=p.length+1,w=v.length+1;_<b&&y<w;){if(p.charCodeAt(_-1)!==p.charCodeAt(y-1))break;_++,y++}(_<b||y<w)&&this._pushTrimWhitespaceCharChange(a,s+1,_,b,u+1,y,w)}s++,u++}d&&(a.push(Xe.createFromDiffResult(this.shouldIgnoreTrimWhitespace,d,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),s+=d.originalLength,u+=d.modifiedLength)}return{quitEarly:n,changes:a}}},{key:"_pushTrimWhitespaceCharChange",value:function(e,t,n,i,r,o,a){if(!this._mergeTrimWhitespaceCharChange(e,t,n,i,r,o,a)){var s=void 0;this.shouldComputeCharChanges&&(s=[new Qe(t,n,t,i,r,o,r,a)]),e.push(new Xe(t,t,r,r,s))}}},{key:"_mergeTrimWhitespaceCharChange",value:function(e,t,n,i,r,o,a){var s=e.length;if(0===s)return!1;var u=e[s-1];return 0!==u.originalEndLineNumber&&0!==u.modifiedEndLineNumber&&(u.originalEndLineNumber+1===t&&u.modifiedEndLineNumber+1===r&&(u.originalEndLineNumber=t,u.modifiedEndLineNumber=r,this.shouldComputeCharChanges&&u.charChanges&&u.charChanges.push(new Qe(t,n,t,i,r,o,r,a)),!0))}}]),e}();function et(e,t){var n=Ue.LC(e);return-1===n?t:n+1}function tt(e,t){var n=Ue.ow(e);return-1===n?t:n+2}function nt(e){if(0===e)return function(){return!0};var t=Date.now();return function(){return Date.now()-t<e}}var it=n(21043),rt=function(){function e(t,n,i,r){(0,F.Z)(this,e),this._uri=t,this._lines=n,this._eol=i,this._versionId=r,this._lineStarts=null,this._cachedTextValue=null}return(0,j.Z)(e,[{key:"dispose",value:function(){this._lines.length=0}},{key:"version",get:function(){return this._versionId}},{key:"getText",value:function(){return null===this._cachedTextValue&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}},{key:"onEvents",value:function(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);var t,n=e.changes,i=(0,X.Z)(n);try{for(i.s();!(t=i.n()).done;){var r=t.value;this._acceptDeleteRange(r.range),this._acceptInsertText(new V.L(r.range.startLineNumber,r.range.startColumn),r.text)}}catch(o){i.e(o)}finally{i.f()}this._versionId=e.versionId,this._cachedTextValue=null}},{key:"_ensureLineStarts",value:function(){if(!this._lineStarts){for(var e=this._eol.length,t=this._lines.length,n=new Uint32Array(t),i=0;i<t;i++)n[i]=this._lines[i].length+e;this._lineStarts=new it.o(n)}}},{key:"_setLineText",value:function(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.changeValue(e,this._lines[e].length+this._eol.length)}},{key:"_acceptDeleteRange",value:function(e){if(e.startLineNumber!==e.endLineNumber)this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber);else{if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1))}}},{key:"_acceptInsertText",value:function(e,t){if(0!==t.length){var n=(0,Ue.uq)(t);if(1!==n.length){n[n.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]);for(var i=new Uint32Array(n.length-1),r=1;r<n.length;r++)this._lines.splice(e.lineNumber+r-1,0,n[r]),i[r-1]=n[r].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,i)}else this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]+this._lines[e.lineNumber-1].substring(e.column-1))}}}]),e}(),ot=n(43717),at=n(29439),st=n(84516),ut=function(){function e(t,n,i){(0,F.Z)(this,e);for(var r=new Uint8Array(t*n),o=0,a=t*n;o<a;o++)r[o]=i;this._data=r,this.rows=t,this.cols=n}return(0,j.Z)(e,[{key:"get",value:function(e,t){return this._data[e*this.cols+t]}},{key:"set",value:function(e,t,n){this._data[e*this.cols+t]=n}}]),e}(),lt=function(){function e(t){(0,F.Z)(this,e);for(var n=0,i=0,r=0,o=t.length;r<o;r++){var a=(0,at.Z)(t[r],3),s=a[0],u=a[1],l=a[2];u>n&&(n=u),s>i&&(i=s),l>i&&(i=l)}n++,i++;for(var c=new ut(i,n,0),d=0,h=t.length;d<h;d++){var f=(0,at.Z)(t[d],3),p=f[0],v=f[1],g=f[2];c.set(p,v,g)}this._states=c,this._maxCharCode=n}return(0,j.Z)(e,[{key:"nextState",value:function(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)}}]),e}(),ct=null;var dt=null;var ht=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,null,[{key:"_createLink",value:function(e,t,n,i,r){var o=r-1;do{var a=t.charCodeAt(o);if(2!==e.get(a))break;o--}while(o>i);if(i>0){var s=t.charCodeAt(i-1),u=t.charCodeAt(o);(40===s&&41===u||91===s&&93===u||123===s&&125===u)&&o--}return{range:{startLineNumber:n,startColumn:i+1,endLineNumber:n,endColumn:o+2},url:t.substring(i,o+1)}}},{key:"computeLinks",value:function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(null===ct&&(ct=new lt([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),ct),i=function(){if(null===dt){dt=new st.N(0);for(var e=" \t<>'\"\u3001\u3002\uff61\uff64\uff0c\uff0e\uff1a\uff1b\u2018\u201c\u3008\u300a\u300c\u300e\u3010\u3014\uff08\uff3b\uff5b\uff62\uff63\uff5d\uff3d\uff09\u3015\u3011\u300f\u300d\u300b\u3009\u201d\u2019\uff40\uff5e\u2026",t=0;t<e.length;t++)dt.set(e.charCodeAt(t),1);for(var n=0;n<".,;".length;n++)dt.set(".,;".charCodeAt(n),2)}return dt}(),r=[],o=1,a=t.getLineCount();o<=a;o++){for(var s=t.getLineContent(o),u=s.length,l=0,c=0,d=0,h=1,f=!1,p=!1,v=!1,g=!1;l<u;){var m=!1,_=s.charCodeAt(l);if(13===h){var y=void 0;switch(_){case 40:f=!0,y=0;break;case 41:y=f?0:1;break;case 91:v=!0,p=!0,y=0;break;case 93:v=!1,y=p?0:1;break;case 123:g=!0,y=0;break;case 125:y=g?0:1;break;case 39:y=34===d||96===d?0:1;break;case 34:y=39===d||96===d?0:1;break;case 96:y=39===d||34===d?0:1;break;case 42:y=42===d?1:0;break;case 124:y=124===d?1:0;break;case 32:y=v?0:1;break;default:y=i.get(_)}1===y&&(r.push(e._createLink(i,s,o,c,l)),m=!0)}else if(12===h){var b=void 0;91===_?(p=!0,b=0):b=i.get(_),1===b?m=!0:h=13}else 0===(h=n.nextState(h,_))&&(m=!0);m&&(h=1,f=!1,p=!1,g=!1,c=l+1,d=_),l++}13===h&&r.push(e._createLink(i,s,o,c,u))}return r}}]),e}();function ft(e){return e&&"function"===typeof e.getLineCount&&"function"===typeof e.getLineContent?ht.computeLinks(e):[]}var pt=function(){function e(){(0,F.Z)(this,e),this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}return(0,j.Z)(e,[{key:"navigateValueSet",value:function(e,t,n,i,r){if(e&&t){var o=this.doNavigateValueSet(t,r);if(o)return{range:e,value:o}}if(n&&i){var a=this.doNavigateValueSet(i,r);if(a)return{range:n,value:a}}return null}},{key:"doNavigateValueSet",value:function(e,t){var n=this.numberReplace(e,t);return null!==n?n:this.textReplace(e,t)}},{key:"numberReplace",value:function(e,t){var n=Math.pow(10,e.length-(e.lastIndexOf(".")+1)),i=Number(e),r=parseFloat(e);return isNaN(i)||isNaN(r)||i!==r?null:0!==i||t?(i=Math.floor(i*n),i+=t?n:-n,String(i/n)):null}},{key:"textReplace",value:function(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)}},{key:"valueSetsReplace",value:function(e,t,n){for(var i=null,r=0,o=e.length;null===i&&r<o;r++)i=this.valueSetReplace(e[r],t,n);return i}},{key:"valueSetReplace",value:function(e,t,n){var i=e.indexOf(t);return i>=0?((i+=n?1:-1)<0?i=e.length-1:i%=e.length,e[i]):null}}]),e}();pt.INSTANCE=new pt;var vt=n(96257),gt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},mt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){return(0,F.Z)(this,n),t.apply(this,arguments)}return(0,j.Z)(n,[{key:"uri",get:function(){return this._uri}},{key:"eol",get:function(){return this._eol}},{key:"getValue",value:function(){return this.getText()}},{key:"getLinesContent",value:function(){return this._lines.slice(0)}},{key:"getLineCount",value:function(){return this._lines.length}},{key:"getLineContent",value:function(e){return this._lines[e-1]}},{key:"getWordAtPosition",value:function(e,t){var n=(0,ot.t2)(e.column,(0,ot.eq)(t),this._lines[e.lineNumber-1],0);return n?new Y.e(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn):null}},{key:"words",value:function(e){var t=this._lines,n=this._wordenize.bind(this),i=0,r="",o=0,a=[];return(0,Ve.Z)({},Symbol.iterator,te().mark((function s(){var u;return te().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:if(!(o<a.length)){s.next=8;break}return u=r.substring(a[o].start,a[o].end),o+=1,s.next=6,u;case 6:s.next=16;break;case 8:if(!(i<t.length)){s.next=15;break}r=t[i],a=n(r,e),o=0,i+=1,s.next=16;break;case 15:return s.abrupt("break",18);case 16:s.next=0;break;case 18:case"end":return s.stop()}}),s)})))}},{key:"getLineWords",value:function(e,t){var n,i=this._lines[e-1],r=this._wordenize(i,t),o=[],a=(0,X.Z)(r);try{for(a.s();!(n=a.n()).done;){var s=n.value;o.push({word:i.substring(s.start,s.end),startColumn:s.start+1,endColumn:s.end+1})}}catch(u){a.e(u)}finally{a.f()}return o}},{key:"_wordenize",value:function(e,t){var n,i=[];for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)i.push({start:n.index,end:n.index+n[0].length});return i}},{key:"getValueInRange",value:function(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);var t=this._eol,n=e.startLineNumber-1,i=e.endLineNumber-1,r=[];r.push(this._lines[n].substring(e.startColumn-1));for(var o=n+1;o<i;o++)r.push(this._lines[o]);return r.push(this._lines[i].substring(0,e.endColumn-1)),r.join(t)}},{key:"offsetAt",value:function(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getAccumulatedValue(e.lineNumber-2)+(e.column-1)}},{key:"positionAt",value:function(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();var t=this._lineStarts.getIndexOf(e),n=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,n)}}},{key:"_validateRange",value:function(e){var t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn}),n=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||n.lineNumber!==e.endLineNumber||n.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:n.lineNumber,endColumn:n.column}:e}},{key:"_validatePosition",value:function(e){if(!V.L.isIPosition(e))throw new Error("bad position");var t=e.lineNumber,n=e.column,i=!1;if(t<1)t=1,n=1,i=!0;else if(t>this._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,i=!0;else{var r=this._lines[t-1].length+1;n<1?(n=1,i=!0):n>r&&(n=r,i=!0)}return i?{lineNumber:t,column:n}:e}}]),n}(rt),_t=function(){function e(t,n){(0,F.Z)(this,e),this._host=t,this._models=Object.create(null),this._foreignModuleFactory=n,this._foreignModule=null}return(0,j.Z)(e,[{key:"dispose",value:function(){this._models=Object.create(null)}},{key:"_getModel",value:function(e){return this._models[e]}},{key:"_getModels",value:function(){var e=this,t=[];return Object.keys(this._models).forEach((function(n){return t.push(e._models[n])})),t}},{key:"acceptNewModel",value:function(e){this._models[e.url]=new mt(W.o.parse(e.url),e.lines,e.EOL,e.versionId)}},{key:"acceptModelChanged",value:function(e,t){this._models[e]&&this._models[e].onEvents(t)}},{key:"acceptRemovedModel",value:function(e){this._models[e]&&delete this._models[e]}},{key:"computeDiff",value:function(e,t,n,i){return gt(this,void 0,void 0,te().mark((function r(){var o,a,s,u,l,c,d;return te().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=this._getModel(e),a=this._getModel(t),o&&a){r.next=4;break}return r.abrupt("return",null);case 4:return s=o.getLinesContent(),u=a.getLinesContent(),l=new Je(s,u,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0,maxComputationTime:i}),c=l.computeDiff(),d=!(c.changes.length>0)&&this._modelsAreIdentical(o,a),r.abrupt("return",{quitEarly:c.quitEarly,identical:d,changes:c.changes});case 10:case"end":return r.stop()}}),r,this)})))}},{key:"_modelsAreIdentical",value:function(e,t){var n=e.getLineCount();if(n!==t.getLineCount())return!1;for(var i=1;i<=n;i++){if(e.getLineContent(i)!==t.getLineContent(i))return!1}return!0}},{key:"computeMoreMinimalEdits",value:function(t,n){return gt(this,void 0,void 0,te().mark((function i(){var r,o,a,s,u,l,c,d,h,f,p,v,g,m,_,y,b,w;return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(r=this._getModel(t)){i.next=3;break}return i.abrupt("return",n);case 3:o=[],a=void 0,n=n.slice(0).sort((function(e,t){return e.range&&t.range?Y.e.compareRangesUsingStarts(e.range,t.range):(e.range?0:1)-(t.range?0:1)})),s=(0,X.Z)(n),i.prev=7,s.s();case 9:if((u=s.n()).done){i.next=27;break}if(l=u.value,c=l.range,d=l.text,"number"===typeof(h=l.eol)&&(a=h),!Y.e.isEmpty(c)||d){i.next=14;break}return i.abrupt("continue",25);case 14:if(f=r.getValueInRange(c),d=d.replace(/\r\n|\n|\r/g,r.eol),f!==d){i.next=18;break}return i.abrupt("continue",25);case 18:if(!(Math.max(d.length,f.length)>e._diffLimit)){i.next=21;break}return o.push({range:c,text:d}),i.abrupt("continue",25);case 21:p=(0,Ye.a$)(f,d,!1),v=r.offsetAt(Y.e.lift(c).getStartPosition()),g=(0,X.Z)(p);try{for(g.s();!(m=g.n()).done;)_=m.value,y=r.positionAt(v+_.originalStart),b=r.positionAt(v+_.originalStart+_.originalLength),w={text:d.substr(_.modifiedStart,_.modifiedLength),range:{startLineNumber:y.lineNumber,startColumn:y.column,endLineNumber:b.lineNumber,endColumn:b.column}},r.getValueInRange(w.range)!==w.text&&o.push(w)}catch(C){g.e(C)}finally{g.f()}case 25:i.next=9;break;case 27:i.next=32;break;case 29:i.prev=29,i.t0=i.catch(7),s.e(i.t0);case 32:return i.prev=32,s.f(),i.finish(32);case 35:return"number"===typeof a&&o.push({eol:a,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),i.abrupt("return",o);case 37:case"end":return i.stop()}}),i,this,[[7,29,32,35]])})))}},{key:"computeLinks",value:function(e){return gt(this,void 0,void 0,te().mark((function t(){var n;return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=this._getModel(e)){t.next=3;break}return t.abrupt("return",null);case 3:return t.abrupt("return",ft(n));case 4:case"end":return t.stop()}}),t,this)})))}},{key:"textualSuggest",value:function(t,n,i,r){return gt(this,void 0,void 0,te().mark((function o(){var a,s,u,l,c,d,h,f,p,v;return te().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:a=new vt.G(!0),s=new RegExp(i,r),u=new Set,l=(0,X.Z)(t),o.prev=4,l.s();case 6:if((c=l.n()).done){o.next=33;break}if(d=c.value,h=this._getModel(d)){o.next=11;break}return o.abrupt("continue",31);case 11:f=(0,X.Z)(h.words(s)),o.prev=12,f.s();case 14:if((p=f.n()).done){o.next=23;break}if((v=p.value)!==n&&isNaN(Number(v))){o.next=18;break}return o.abrupt("continue",21);case 18:if(u.add(v),!(u.size>e._suggestionsLimit)){o.next=21;break}return o.abrupt("break",33);case 21:o.next=14;break;case 23:o.next=28;break;case 25:o.prev=25,o.t0=o.catch(12),f.e(o.t0);case 28:return o.prev=28,f.f(),o.finish(28);case 31:o.next=6;break;case 33:o.next=38;break;case 35:o.prev=35,o.t1=o.catch(4),l.e(o.t1);case 38:return o.prev=38,l.f(),o.finish(38);case 41:return o.abrupt("return",{words:Array.from(u),duration:a.elapsed()});case 42:case"end":return o.stop()}}),o,this,[[4,35,38,41],[12,25,28,31]])})))}},{key:"computeWordRanges",value:function(e,t,n,i){return gt(this,void 0,void 0,te().mark((function r(){var o,a,s,u,l,c,d,h,f;return te().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=this._getModel(e)){r.next=3;break}return r.abrupt("return",Object.create(null));case 3:a=new RegExp(n,i),s=Object.create(null),u=t.startLineNumber;case 6:if(!(u<t.endLineNumber)){r.next=31;break}l=o.getLineWords(u,a),c=(0,X.Z)(l),r.prev=9,c.s();case 11:if((d=c.n()).done){r.next=20;break}if(h=d.value,isNaN(Number(h.word))){r.next=15;break}return r.abrupt("continue",18);case 15:(f=s[h.word])||(f=[],s[h.word]=f),f.push({startLineNumber:u,startColumn:h.startColumn,endLineNumber:u,endColumn:h.endColumn});case 18:r.next=11;break;case 20:r.next=25;break;case 22:r.prev=22,r.t0=r.catch(9),c.e(r.t0);case 25:return r.prev=25,c.f(),r.finish(25);case 28:u++,r.next=6;break;case 31:return r.abrupt("return",s);case 32:case"end":return r.stop()}}),r,this,[[9,22,25,28]])})))}},{key:"navigateValueSet",value:function(e,t,n,i,r){return gt(this,void 0,void 0,te().mark((function o(){var a,s,u,l,c,d;return te().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(a=this._getModel(e)){o.next=3;break}return o.abrupt("return",null);case 3:if(s=new RegExp(i,r),t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1}),u=a.getValueInRange(t),l=a.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},s)){o.next=9;break}return o.abrupt("return",null);case 9:return c=a.getValueInRange(l),d=pt.INSTANCE.navigateValueSet(t,u,l,c,n),o.abrupt("return",d);case 12:case"end":return o.stop()}}),o,this)})))}},{key:"loadForeignModule",value:function(e,t,n){var i=this,r={host:Ie.IU(n,(function(e,t){return i._host.fhr(e,t)})),getMirrorModels:function(){return i._getModels()}};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(r,t),Promise.resolve(Ie.$E(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}},{key:"fmr",value:function(e,t){if(!this._foreignModule||"function"!==typeof this._foreignModule[e])return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(n){return Promise.reject(n)}}}]),e}();_t._diffLimit=1e5,_t._suggestionsLimit=1e4,"function"===typeof importScripts&&(Oe.li.monaco=G());var yt=n(49076),bt=n(45862),wt=n(49396),Ct=n(19974),kt=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},St=function(e,t){return function(n,i){t(n,i,e)}},xt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Lt=6e4,Et=3e5;function Nt(e,t){var n=e.getModel(t);return!!n&&!n.isTooLargeForSyncing()}var Dt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;return(0,F.Z)(this,n),(o=t.call(this))._modelService=e,o._workerManager=o._register(new Tt(o._modelService)),o._logService=r,o._register(be.pM.register("*",{provideLinks:function(e,t){return Nt(o._modelService,e.uri)?o._workerManager.withWorker().then((function(t){return t.computeLinks(e.uri)})).then((function(e){return e&&{links:e}})):Promise.resolve({links:[]})}})),o._register(be.KZ.register("*",new Mt(o._workerManager,i,o._modelService))),o}return(0,j.Z)(n,[{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"canComputeDiff",value:function(e,t){return Nt(this._modelService,e)&&Nt(this._modelService,t)}},{key:"computeDiff",value:function(e,t,n,i){return this._workerManager.withWorker().then((function(r){return r.computeDiff(e,t,n,i)}))}},{key:"computeMoreMinimalEdits",value:function(e,t){var n=this;if((0,wt.Of)(t)){if(!Nt(this._modelService,e))return Promise.resolve(t);var i=vt.G.create(!0),r=this._workerManager.withWorker().then((function(n){return n.computeMoreMinimalEdits(e,t)}));return r.finally((function(){return n._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),i.elapsed())})),Promise.race([r,(0,De.Vs)(1e3).then((function(){return t}))])}return Promise.resolve(void 0)}},{key:"canNavigateValueSet",value:function(e){return Nt(this._modelService,e)}},{key:"navigateValueSet",value:function(e,t,n){return this._workerManager.withWorker().then((function(i){return i.navigateValueSet(e,t,n)}))}},{key:"canComputeWordRanges",value:function(e){return Nt(this._modelService,e)}},{key:"computeWordRanges",value:function(e,t){return this._workerManager.withWorker().then((function(n){return n.computeWordRanges(e,t)}))}}]),n}(Me.JT);Dt=kt([St(0,yt.q),St(1,bt.V),St(2,Ct.VZ)],Dt);var Mt=function(){function e(t,n,i){(0,F.Z)(this,e),this._debugDisplayName="wordbasedCompletions",this._workerManager=t,this._configurationService=n,this._modelService=i}return(0,j.Z)(e,[{key:"provideCompletionItems",value:function(e,t){return xt(this,void 0,void 0,te().mark((function n(){var i,r,o,a,s,u,l,c,d,h,f;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if((i=this._configurationService.getValue(e.uri,t,"editor")).wordBasedSuggestions){n.next=3;break}return n.abrupt("return",void 0);case 3:if(r=[],"currentDocument"!==i.wordBasedSuggestionsMode){n.next=8;break}Nt(this._modelService,e.uri)&&r.push(e.uri),n.next=26;break;case 8:o=(0,X.Z)(this._modelService.getModels()),n.prev=9,o.s();case 11:if((a=o.n()).done){n.next=18;break}if(s=a.value,Nt(this._modelService,s.uri)){n.next=15;break}return n.abrupt("continue",16);case 15:s===e?r.unshift(s.uri):"allDocuments"!==i.wordBasedSuggestionsMode&&s.getLanguageIdentifier().id!==e.getLanguageIdentifier().id||r.push(s.uri);case 16:n.next=11;break;case 18:n.next=23;break;case 20:n.prev=20,n.t0=n.catch(9),o.e(n.t0);case 23:return n.prev=23,o.f(),n.finish(23);case 26:if(0!==r.length){n.next=28;break}return n.abrupt("return",void 0);case 28:return u=We.zu.getWordDefinition(e.getLanguageIdentifier().id),l=e.getWordAtPosition(t),c=l?new Y.e(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn):Y.e.fromPositions(t),d=c.setEndPosition(t.lineNumber,t.column),n.next=34,this._workerManager.withWorker();case 34:return h=n.sent,n.next=37,h.textualSuggest(r,null===l||void 0===l?void 0:l.word,u);case 37:if(f=n.sent){n.next=40;break}return n.abrupt("return",void 0);case 40:return n.abrupt("return",{duration:f.duration,suggestions:f.words.map((function(e){return{kind:18,label:e,insertText:e,range:{insert:d,replace:c}}}))});case 41:case"end":return n.stop()}}),n,this,[[9,20,23,26]])})))}}]),e}(),Tt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this))._modelService=e,i._editorWorkerClient=null,i._lastWorkerUsedTime=(new Date).getTime(),i._register(new De.zh).cancelAndSet((function(){return i._checkStopIdleWorker()}),Math.round(Et/2)),i._register(i._modelService.onModelRemoved((function(e){return i._checkStopEmptyWorker()}))),i}return(0,j.Z)(n,[{key:"dispose",value:function(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"_checkStopEmptyWorker",value:function(){this._editorWorkerClient&&(0===this._modelService.getModels().length&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null))}},{key:"_checkStopIdleWorker",value:function(){this._editorWorkerClient&&((new Date).getTime()-this._lastWorkerUsedTime>Et&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null))}},{key:"withWorker",value:function(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new Pt(this._modelService,!1,"editorWorkerService")),Promise.resolve(this._editorWorkerClient)}}]),n}(Me.JT),Ot=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;if((0,F.Z)(this,n),(o=t.call(this))._syncedModels=Object.create(null),o._syncedModelsLastUsedTime=Object.create(null),o._proxy=e,o._modelService=i,!r){var a=new De.zh;a.cancelAndSet((function(){return o._checkStopModelSync()}),Math.round(Lt/2)),o._register(a)}return o}return(0,j.Z)(n,[{key:"dispose",value:function(){for(var e in this._syncedModels)(0,Me.B9)(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"ensureSyncedResources",value:function(e){var t,n=(0,X.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=i.toString();this._syncedModels[r]||this._beginModelSync(i),this._syncedModels[r]&&(this._syncedModelsLastUsedTime[r]=(new Date).getTime())}}catch(o){n.e(o)}finally{n.f()}}},{key:"_checkStopModelSync",value:function(){var e=(new Date).getTime(),t=[];for(var n in this._syncedModelsLastUsedTime){e-this._syncedModelsLastUsedTime[n]>Lt&&t.push(n)}for(var i=0,r=t;i<r.length;i++){var o=r[i];this._stopModelSync(o)}}},{key:"_beginModelSync",value:function(e){var t=this,n=this._modelService.getModel(e);if(n&&!n.isTooLargeForSyncing()){var i=e.toString();this._proxy.acceptNewModel({url:n.uri.toString(),lines:n.getLinesContent(),EOL:n.getEOL(),versionId:n.getVersionId()});var r=new Me.SL;r.add(n.onDidChangeContent((function(e){t._proxy.acceptModelChanged(i.toString(),e)}))),r.add(n.onWillDispose((function(){t._stopModelSync(i)}))),r.add((0,Me.OF)((function(){t._proxy.acceptRemovedModel(i)}))),this._syncedModels[i]=r}}},{key:"_stopModelSync",value:function(e){var t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],(0,Me.B9)(t)}}]),n}(Me.JT),It=function(){function e(t){(0,F.Z)(this,e),this._instance=t,this._proxyObj=Promise.resolve(this._instance)}return(0,j.Z)(e,[{key:"dispose",value:function(){this._instance.dispose()}},{key:"getProxyObject",value:function(){return this._proxyObj}}]),e}(),At=function(){function e(t){(0,F.Z)(this,e),this._workerClient=t}return(0,j.Z)(e,[{key:"fhr",value:function(e,t){return this._workerClient.fhr(e,t)}}]),e}(),Pt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;return(0,F.Z)(this,n),(o=t.call(this))._disposed=!1,o._modelService=e,o._keepIdleModels=i,o._workerFactory=new ze(r),o._worker=null,o._modelManager=null,o}return(0,j.Z)(n,[{key:"fhr",value:function(e,t){throw new Error("Not implemented!")}},{key:"_getOrCreateWorker",value:function(){if(!this._worker)try{this._worker=this._register(new je(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new At(this)))}catch(e){Re(e),this._worker=new It(new _t(new At(this),null))}return this._worker}},{key:"_getProxy",value:function(){var e=this;return this._getOrCreateWorker().getProxyObject().then(void 0,(function(t){return Re(t),e._worker=new It(new _t(new At(e),null)),e._getOrCreateWorker().getProxyObject()}))}},{key:"_getOrCreateModelManager",value:function(e){return this._modelManager||(this._modelManager=this._register(new Ot(e,this._modelService,this._keepIdleModels))),this._modelManager}},{key:"_withSyncedResources",value:function(e){var t=this;return this._disposed?Promise.reject((0,Te.F0)()):this._getProxy().then((function(n){return t._getOrCreateModelManager(n).ensureSyncedResources(e),n}))}},{key:"computeDiff",value:function(e,t,n,i){return this._withSyncedResources([e,t]).then((function(r){return r.computeDiff(e.toString(),t.toString(),n,i)}))}},{key:"computeMoreMinimalEdits",value:function(e,t){return this._withSyncedResources([e]).then((function(n){return n.computeMoreMinimalEdits(e.toString(),t)}))}},{key:"computeLinks",value:function(e){return this._withSyncedResources([e]).then((function(t){return t.computeLinks(e.toString())}))}},{key:"textualSuggest",value:function(e,t,n){return xt(this,void 0,void 0,te().mark((function i(){var r,o,a;return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,this._withSyncedResources(e);case 2:return r=i.sent,o=n.source,a=(0,Ue.mr)(n),i.abrupt("return",r.textualSuggest(e.map((function(e){return e.toString()})),t,o,a));case 6:case"end":return i.stop()}}),i,this)})))}},{key:"computeWordRanges",value:function(e,t){var n=this;return this._withSyncedResources([e]).then((function(i){var r=n._modelService.getModel(e);if(!r)return Promise.resolve(null);var o=We.zu.getWordDefinition(r.getLanguageIdentifier().id),a=o.source,s=(0,Ue.mr)(o);return i.computeWordRanges(e.toString(),t,a,s)}))}},{key:"navigateValueSet",value:function(e,t,n){var i=this;return this._withSyncedResources([e]).then((function(r){var o=i._modelService.getModel(e);if(!o)return null;var a=We.zu.getWordDefinition(o.getLanguageIdentifier().id),s=a.source,u=(0,Ue.mr)(a);return r.navigateValueSet(e.toString(),t,n,s,u)}))}},{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this),this._disposed=!0}}]),n}(Me.JT);var Rt=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this,e,i.keepIdleModels||!1,i.label))._foreignModuleId=i.moduleId,r._foreignModuleCreateData=i.createData||null,r._foreignModuleHost=i.host||null,r._foreignProxy=null,r}return(0,j.Z)(n,[{key:"fhr",value:function(e,t){if(!this._foreignModuleHost||"function"!==typeof this._foreignModuleHost[e])return Promise.reject(new Error("Missing method "+e+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(n){return Promise.reject(n)}}},{key:"_getForeignProxy",value:function(){var e=this;return this._foreignProxy||(this._foreignProxy=this._getProxy().then((function(t){var n=e._foreignModuleHost?Ie.$E(e._foreignModuleHost):[];return t.loadForeignModule(e._foreignModuleId,e._foreignModuleCreateData,n).then((function(n){e._foreignModuleCreateData=null;var i,r=function(e,n){return t.fmr(e,n)},o=function(e,t){return function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},a={},s=(0,X.Z)(n);try{for(s.s();!(i=s.n()).done;){var u=i.value;a[u]=o(u,r)}}catch(l){s.e(l)}finally{s.f()}return a}))}))),this._foreignProxy}},{key:"getProxy",value:function(){return this._getForeignProxy()}},{key:"withSyncedResources",value:function(e){var t=this;return this._withSyncedResources(e).then((function(e){return t.getProxy()}))}}]),n}(Pt),Zt=n(34763),Ft=n(70632),jt=n(4587);function Ht(e){return!function(e){return Array.isArray(e)}(e)}function Bt(e){return"string"===typeof e}function zt(e){return!Bt(e)}function Wt(e){return!e}function Vt(e,t){return e.ignoreCase&&t?t.toLowerCase():t}function Yt(e){return e.replace(/[&<>'"_]/g,"-")}function Ut(e,t){return new Error("".concat(e.languageId,": ").concat(t))}function Kt(e,t,n,i,r){var o=null;return t.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,(function(t,a,s,u,l,c,d,h,f){return Wt(s)?Wt(u)?!Wt(l)&&l<i.length?Vt(e,i[l]):!Wt(d)&&e&&"string"===typeof e[d]?e[d]:(null===o&&(o=r.split(".")).unshift(r),!Wt(c)&&c<o.length?Vt(e,o[c]):""):Vt(e,n):"$"}))}function qt(e,t){for(var n=t;n&&n.length>0;){var i=e.tokenizer[n];if(i)return i;var r=n.lastIndexOf(".");n=r<0?null:n.substr(0,r)}return null}var Gt=function(){function e(t){(0,F.Z)(this,e),this._maxCacheDepth=t,this._entries=Object.create(null)}return(0,j.Z)(e,[{key:"create",value:function(e,t){if(null!==e&&e.depth>=this._maxCacheDepth)return new $t(e,t);var n=$t.getStackElementId(e);n.length>0&&(n+="|"),n+=t;var i=this._entries[n];return i||(i=new $t(e,t),this._entries[n]=i,i)}}],[{key:"create",value:function(e,t){return this._INSTANCE.create(e,t)}}]),e}();Gt._INSTANCE=new Gt(5);var $t=function(){function e(t,n){(0,F.Z)(this,e),this.parent=t,this.state=n,this.depth=(this.parent?this.parent.depth:0)+1}return(0,j.Z)(e,[{key:"equals",value:function(t){return e._equals(this,t)}},{key:"push",value:function(e){return Gt.create(this,e)}},{key:"pop",value:function(){return this.parent}},{key:"popall",value:function(){for(var e=this;e.parent;)e=e.parent;return e}},{key:"switchTo",value:function(e){return Gt.create(this.parent,e)}}],[{key:"getStackElementId",value:function(e){for(var t="";null!==e;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}},{key:"_equals",value:function(e,t){for(;null!==e&&null!==t;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return null===e&&null===t}}]),e}(),Qt=function(){function e(t,n){(0,F.Z)(this,e),this.modeId=t,this.state=n}return(0,j.Z)(e,[{key:"equals",value:function(e){return this.modeId===e.modeId&&this.state.equals(e.state)}},{key:"clone",value:function(){return this.state.clone()===this.state?this:new e(this.modeId,this.state)}}]),e}(),Xt=function(){function e(t){(0,F.Z)(this,e),this._maxCacheDepth=t,this._entries=Object.create(null)}return(0,j.Z)(e,[{key:"create",value:function(e,t){if(null!==t)return new en(e,t);if(null!==e&&e.depth>=this._maxCacheDepth)return new en(e,t);var n=$t.getStackElementId(e),i=this._entries[n];return i||(i=new en(e,null),this._entries[n]=i,i)}}],[{key:"create",value:function(e,t){return this._INSTANCE.create(e,t)}}]),e}();Xt._INSTANCE=new Xt(5);var Jt,en=function(){function e(t,n){(0,F.Z)(this,e),this.stack=t,this.embeddedModeData=n}return(0,j.Z)(e,[{key:"clone",value:function(){return(this.embeddedModeData?this.embeddedModeData.clone():null)===this.embeddedModeData?this:Xt.create(this.stack,this.embeddedModeData)}},{key:"equals",value:function(t){return t instanceof e&&(!!this.stack.equals(t.stack)&&(null===this.embeddedModeData&&null===t.embeddedModeData||null!==this.embeddedModeData&&null!==t.embeddedModeData&&this.embeddedModeData.equals(t.embeddedModeData)))}}]),e}(),tn=function(){function e(){(0,F.Z)(this,e),this._tokens=[],this._language=null,this._lastTokenType=null,this._lastTokenLanguage=null}return(0,j.Z)(e,[{key:"enterMode",value:function(e,t){this._language=t}},{key:"emit",value:function(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._language||(this._lastTokenType=t,this._lastTokenLanguage=this._language,this._tokens.push(new K.WU(e,t,this._language)))}},{key:"nestedModeTokenize",value:function(e,t,n,i){var r=n.modeId,o=n.state,a=be.RW.get(r);if(!a)return this.enterMode(i,r),this.emit(i,""),o;var s=a.tokenize(e,t,o,i);return this._tokens=this._tokens.concat(s.tokens),this._lastTokenType=null,this._lastTokenLanguage=null,this._language=null,s.endState}},{key:"finalize",value:function(e){return new K.hG(this._tokens,e)}}]),e}(),nn=function(){function e(t,n){(0,F.Z)(this,e),this._modeService=t,this._theme=n,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}return(0,j.Z)(e,[{key:"enterMode",value:function(e,t){this._currentLanguageId=this._modeService.getLanguageIdentifier(t).id}},{key:"emit",value:function(e,t){var n=this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==n&&(this._lastTokenMetadata=n,this._tokens.push(e),this._tokens.push(n))}},{key:"nestedModeTokenize",value:function(t,n,i,r){var o=i.modeId,a=i.state,s=be.RW.get(o);if(!s)return this.enterMode(r,o),this.emit(r,""),a;var u=s.tokenize2(t,n,a,r);return this._prependTokens=e._merge(this._prependTokens,this._tokens,u.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,u.endState}},{key:"finalize",value:function(t){return new K.Hi(e._merge(this._prependTokens,this._tokens,null),t)}}],[{key:"_merge",value:function(e,t,n){var i=null!==e?e.length:0,r=t.length,o=null!==n?n.length:0;if(0===i&&0===r&&0===o)return new Uint32Array(0);if(0===i&&0===r)return n;if(0===r&&0===o)return e;var a=new Uint32Array(i+r+o);null!==e&&a.set(e);for(var s=0;s<r;s++)a[i+s]=t[s];return null!==n&&a.set(n,i+r),a}}]),e}(),rn=function(){function e(t,n,i,r){var o=this;(0,F.Z)(this,e),this._modeService=t,this._standaloneThemeService=n,this._modeId=i,this._lexer=r,this._embeddedModes=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);var a=!1;this._tokenizationRegistryListener=be.RW.onDidChange((function(e){if(!a){for(var t=!1,n=0,i=e.changedLanguages.length;n<i;n++){var r=e.changedLanguages[n];if(o._embeddedModes[r]){t=!0;break}}t&&(a=!0,be.RW.fire([o._modeId]),a=!1)}}))}return(0,j.Z)(e,[{key:"dispose",value:function(){this._tokenizationRegistryListener.dispose()}},{key:"getLoadStatus",value:function(){var t=[];for(var n in this._embeddedModes){var i=be.RW.get(n);if(i){if(i instanceof e){var r=i.getLoadStatus();!1===r.loaded&&t.push(r.promise)}}else{var o=be.RW.getPromise(n);o&&t.push(o)}}return 0===t.length?{loaded:!0}:{loaded:!1,promise:Promise.all(t).then((function(e){}))}}},{key:"getInitialState",value:function(){var e=Gt.create(null,this._lexer.start);return Xt.create(e,null)}},{key:"tokenize",value:function(e,t,n,i){var r=new tn,o=this._tokenize(e,t,n,i,r);return r.finalize(o)}},{key:"tokenize2",value:function(e,t,n,i){var r=new nn(this._modeService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,n,i,r);return r.finalize(o)}},{key:"_tokenize",value:function(e,t,n,i,r){return n.embeddedModeData?this._nestedTokenize(e,t,n,i,r):this._myTokenize(e,t,n,i,r)}},{key:"_findLeavingNestedModeOffset",value:function(e,t){var n=this._lexer.tokenizer[t.stack.state];if(!n&&!(n=qt(this._lexer,t.stack.state)))throw Ut(this._lexer,"tokenizer state is not defined: "+t.stack.state);var i,r=-1,o=!1,a=(0,X.Z)(n);try{for(a.s();!(i=a.n()).done;){var s=i.value;if(zt(s.action)&&"@pop"===s.action.nextEmbedded){o=!0;var u=s.regex,l=s.regex.source;if("^(?:"===l.substr(0,4)&&")"===l.substr(l.length-1,1)){var c=(u.ignoreCase?"i":"")+(u.unicode?"u":"");u=new RegExp(l.substr(4,l.length-5),c)}var d=e.search(u);-1===d||0!==d&&s.matchOnlyAtLineStart||(-1===r||d<r)&&(r=d)}}}catch(h){a.e(h)}finally{a.f()}if(!o)throw Ut(this._lexer,'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: '+t.stack.state);return r}},{key:"_nestedTokenize",value:function(e,t,n,i,r){var o=this._findLeavingNestedModeOffset(e,n);if(-1===o){var a=r.nestedModeTokenize(e,t,n.embeddedModeData,i);return Xt.create(n.stack,new Qt(n.embeddedModeData.modeId,a))}var s=e.substring(0,o);s.length>0&&r.nestedModeTokenize(s,!1,n.embeddedModeData,i);var u=e.substring(o);return this._myTokenize(u,t,n,i+o,r)}},{key:"_safeRuleName",value:function(e){return e?e.name:"(unknown)"}},{key:"_myTokenize",value:function(e,t,n,i,r){var o=this;r.enterMode(i,this._modeId);for(var a,s,u=e.length,l=t&&this._lexer.includeLF?e+"\n":e,c=l.length,d=n.embeddedModeData,h=n.stack,f=0,p=null,v=!0;v||f<c;){var g=f,m=h.depth,_=p?p.groups.length:0,y=h.state,b=null,w=null,C=null,k=null,S=null;if(p){b=p.matches;var x=p.groups.shift();w=x.matched,C=x.action,k=p.rule,0===p.groups.length&&(p=null)}else{if(!v&&f>=c)break;v=!1;var L=this._lexer.tokenizer[y];if(!L&&!(L=qt(this._lexer,y)))throw Ut(this._lexer,"tokenizer state is not defined: "+y);var E,N=l.substr(f),D=(0,X.Z)(L);try{for(D.s();!(E=D.n()).done;){var M=E.value;if((0===f||!M.matchOnlyAtLineStart)&&(b=N.match(M.regex))){w=b[0],C=M.action;break}}}catch(B){D.e(B)}finally{D.f()}}if(b||(b=[""],w=""),C||(f<c&&(w=(b=[l.charAt(f)])[0]),C=this._lexer.defaultToken),null===w)break;for(f+=w.length;Ht(C)&&zt(C)&&C.test;)C=C.test(w,b,y,f===c);var T=null;if("string"===typeof C||Array.isArray(C))T=C;else if(C.group)T=C.group;else if(null!==C.token&&void 0!==C.token){if(T=C.tokenSubst?Kt(this._lexer,C.token,w,b,y):C.token,C.nextEmbedded)if("@pop"===C.nextEmbedded){if(!d)throw Ut(this._lexer,"cannot pop embedded mode if not inside one");d=null}else{if(d)throw Ut(this._lexer,"cannot enter embedded mode from within an embedded mode");S=Kt(this._lexer,C.nextEmbedded,w,b,y)}if(C.goBack&&(f=Math.max(0,f-C.goBack)),C.switchTo&&"string"===typeof C.switchTo){var O=Kt(this._lexer,C.switchTo,w,b,y);if("@"===O[0]&&(O=O.substr(1)),!qt(this._lexer,O))throw Ut(this._lexer,"trying to switch to a state '"+O+"' that is undefined in rule: "+this._safeRuleName(k));h=h.switchTo(O)}else{if(C.transform&&"function"===typeof C.transform)throw Ut(this._lexer,"action.transform not supported");if(C.next)if("@push"===C.next){if(h.depth>=this._lexer.maxStack)throw Ut(this._lexer,"maximum tokenizer stack size reached: ["+h.state+","+h.parent.state+",...]");h=h.push(y)}else if("@pop"===C.next){if(h.depth<=1)throw Ut(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(k));h=h.pop()}else if("@popall"===C.next)h=h.popall();else{var I=Kt(this._lexer,C.next,w,b,y);if("@"===I[0]&&(I=I.substr(1)),!qt(this._lexer,I))throw Ut(this._lexer,"trying to set a next state '"+I+"' that is undefined in rule: "+this._safeRuleName(k));h=h.push(I)}}C.log&&"string"===typeof C.log&&(a=this._lexer,s=this._lexer.languageId+": "+Kt(this._lexer,C.log,w,b,y),console.log("".concat(a.languageId,": ").concat(s)))}if(null===T)throw Ut(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(k));var A=function(n){var a=o._modeService.getModeIdForLanguageName(n);a&&(n=a);var s=o._getNestedEmbeddedModeData(n);if(f<c){var u=e.substr(f);return o._nestedTokenize(u,t,Xt.create(h,s),i+f,r)}return Xt.create(h,s)};if(Array.isArray(T)){if(p&&p.groups.length>0)throw Ut(this._lexer,"groups cannot be nested: "+this._safeRuleName(k));if(b.length!==T.length+1)throw Ut(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(k));for(var P=0,R=1;R<b.length;R++)P+=b[R].length;if(P!==w.length)throw Ut(this._lexer,"with groups, all characters should be matched in consecutive groups in rule: "+this._safeRuleName(k));p={rule:k,matches:b,groups:[]};for(var Z=0;Z<T.length;Z++)p.groups[Z]={action:T[Z],matched:b[Z+1]};f-=w.length}else{if("@rematch"===T&&(f-=w.length,w="",b=null,T="",null!==S))return A(S);if(0===w.length){if(0===c||m!==h.depth||y!==h.state||(p?p.groups.length:0)!==_)continue;throw Ut(this._lexer,"no progress in tokenizer in rule: "+this._safeRuleName(k))}var F=null;if(Bt(T)&&0===T.indexOf("@brackets")){var j=T.substr("@brackets".length),H=on(this._lexer,w);if(!H)throw Ut(this._lexer,"@brackets token returned but no bracket defined as: "+w);F=Yt(H.token+j)}else{F=Yt(""===T?"":T+this._lexer.tokenPostfix)}if(g<u&&r.emit(g+i,F),null!==S)return A(S)}}return Xt.create(h,d)}},{key:"_getNestedEmbeddedModeData",value:function(e){var t=this._locateMode(e);if(t){var n=be.RW.get(t);if(n)return new Qt(t,n.getInitialState())}return new Qt(t||we.TG,we.nO)}},{key:"_locateMode",value:function(e){if(!e||!this._modeService.isRegisteredMode(e))return null;if(e===this._modeId)return e;var t=this._modeService.getModeId(e);return t&&(this._modeService.triggerMode(t),this._embeddedModes[t]=!0),t}}]),e}();function on(e,t){if(!t)return null;t=Vt(e,t);var n,i=e.brackets,r=(0,X.Z)(i);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(o.open===t)return{token:o.token,bracketType:1};if(o.close===t)return{token:o.token,bracketType:-1}}}catch(a){r.e(a)}finally{r.f()}return null}var an=null===(Jt=window.trustedTypes)||void 0===Jt?void 0:Jt.createPolicy("standaloneColorizer",{createHTML:function(e){return e}}),sn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,null,[{key:"colorizeElement",value:function(e,t,n,i){var r=(i=i||{}).theme||"vs",o=i.mimeType||n.getAttribute("lang")||n.getAttribute("data-lang");if(!o)return console.error("Mode not detected"),Promise.resolve();e.setTheme(r);var a=n.firstChild?n.firstChild.nodeValue:"";n.className+=" "+r;return this.colorize(t,a||"",o,i).then((function(e){var t,i=null!==(t=null===an||void 0===an?void 0:an.createHTML(e))&&void 0!==t?t:e;n.innerHTML=i}),(function(e){return console.error(e)}))}},{key:"colorize",value:function(e,t,n,i){var r=4;i&&"number"===typeof i.tabSize&&(r=i.tabSize),Ue.uS(t)&&(t=t.substr(1));var o=Ue.uq(t),a=e.getModeId(n);if(!a)return Promise.resolve(ln(o,r));e.triggerMode(a);var s=be.RW.get(a);if(s)return un(o,r,s);var u=be.RW.getPromise(a);return new Promise(u?function(e,t){u.then((function(n){un(o,r,n).then(e,t)}),t)}:function(e,t){var n=null,i=null,s=function(){n&&(n.dispose(),n=null),i&&(i.dispose(),i=null);var s=be.RW.get(a);s?un(o,r,s).then(e,t):e(ln(o,r))};(i=new De._F).cancelAndSet(s,500),n=be.RW.onDidChange((function(e){e.changedLanguages.indexOf(a)>=0&&s()}))})}},{key:"colorizeLine",value:function(e,t,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:4,o=jt.wA.isBasicASCII(e,t),a=jt.wA.containsRTL(e,o,n);return(0,Ft.tF)(new Ft.IJ(!1,!0,e,!1,o,a,0,i,[],r,0,0,0,0,-1,"none",!1,!1,null)).html}},{key:"colorizeModelLine",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4,i=e.getLineContent(t);e.forceTokenization(t);var r=e.getLineTokens(t).inflate();return this.colorizeLine(i,e.mightContainNonBasicASCII(),e.mightContainRTL(),r,n)}}]),e}();function un(e,t,n){return new Promise((function(i,r){!function o(){var a=function(e,t,n){for(var i=[],r=n.getInitialState(),o=0,a=e.length;o<a;o++){var s=e[o],u=n.tokenize2(s,!0,r,0);Zt.A.convertToEndOffset(u.tokens,s.length);var l=new Zt.A(u.tokens,s),c=jt.wA.isBasicASCII(s,!0),d=jt.wA.containsRTL(s,c,!0),h=(0,Ft.tF)(new Ft.IJ(!1,!0,s,!1,c,d,0,l.inflate(),[],t,0,0,0,0,-1,"none",!1,!1,null));(i=i.concat(h.html)).push("<br/>"),r=u.endState}return i.join("")}(e,t,n);if(n instanceof rn){var s=n.getLoadStatus();if(!1===s.loaded)return void s.promise.then(o,r)}i(a)}()}))}function ln(e,t){var n=[],i=new Uint32Array(2);i[0]=0,i[1]=16793600;for(var r=0,o=e.length;r<o;r++){var a=e[r];i[0]=a.length;var s=new Zt.A(i,a),u=jt.wA.isBasicASCII(a,!0),l=jt.wA.containsRTL(a,u,!0),c=(0,Ft.tF)(new Ft.IJ(!1,!0,a,!1,u,l,0,s,[],t,0,0,0,0,-1,"none",!1,!1,null));(n=n.concat(c.html)).push("<br/>")}return n.join("")}var cn=n(31737),dn=n(55046),hn=n(76191),fn=n(49803),pn=n(32995),vn=n(85025),gn=n(98921),mn=n(10405),_n=n(72885),yn=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];(0,F.Z)(this,e),this._contents=t,this._keys=n,this._overrides=i,this.isFrozen=!1}return(0,j.Z)(e,[{key:"contents",get:function(){return this.checkAndFreeze(this._contents)}},{key:"overrides",get:function(){return this.checkAndFreeze(this._overrides)}},{key:"keys",get:function(){return this.checkAndFreeze(this._keys)}},{key:"isEmpty",value:function(){return 0===this._keys.length&&0===Object.keys(this._contents).length&&0===this._overrides.length}},{key:"getValue",value:function(e){return e?(0,gn.Mt)(this.contents,e):this.contents}},{key:"override",value:function(t){var n=this.getContentsForOverrideIdentifer(t);if(!n||"object"!==typeof n||!Object.keys(n).length)return this;var i,r={},o=(0,X.Z)(wt.EB([].concat((0,J.Z)(Object.keys(this.contents)),(0,J.Z)(Object.keys(n)))));try{for(o.s();!(i=o.n()).done;){var a=i.value,s=this.contents[a],u=n[a];u&&("object"===typeof s&&"object"===typeof u?(s=mn.I8(s),this.mergeContents(s,u)):s=u),r[a]=s}}catch(l){o.e(l)}finally{o.f()}return new e(r,this.keys,this.overrides)}},{key:"merge",value:function(){for(var t=this,n=mn.I8(this.contents),i=mn.I8(this.overrides),r=(0,J.Z)(this.keys),o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];for(var u=0,l=a;u<l.length;u++){var c=l[u];this.mergeContents(n,c.contents);var d,h=(0,X.Z)(c.overrides);try{var f=function(){var e=d.value,n=i.filter((function(t){return wt.fS(t.identifiers,e.identifiers)})),r=(0,at.Z)(n,1)[0];r?t.mergeContents(r.contents,e.contents):i.push(mn.I8(e))};for(h.s();!(d=h.n()).done;)f()}catch(m){h.e(m)}finally{h.f()}var p,v=(0,X.Z)(c.keys);try{for(v.s();!(p=v.n()).done;){var g=p.value;-1===r.indexOf(g)&&r.push(g)}}catch(m){v.e(m)}finally{v.f()}}return new e(n,r,i)}},{key:"freeze",value:function(){return this.isFrozen=!0,this}},{key:"mergeContents",value:function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];r in e&&Ie.Kn(e[r])&&Ie.Kn(t[r])?this.mergeContents(e[r],t[r]):e[r]=mn.I8(t[r])}}},{key:"checkAndFreeze",value:function(e){return this.isFrozen&&!Object.isFrozen(e)?mn._A(e):e}},{key:"getContentsForOverrideIdentifer",value:function(e){var t,n=(0,X.Z)(this.overrides);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(-1!==i.identifiers.indexOf(e))return i.contents}}catch(r){n.e(r)}finally{n.f()}return null}},{key:"toJSON",value:function(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}},{key:"setValue",value:function(e,t){this.addKey(e),(0,gn.KV)(this.contents,e,t,(function(e){throw new Error(e)}))}},{key:"removeValue",value:function(e){this.removeKey(e)&&(0,gn.xL)(this.contents,e)}},{key:"addKey",value:function(e){for(var t=this.keys.length,n=0;n<t;n++)0===e.indexOf(this.keys[n])&&(t=n);this.keys.splice(t,1,e)}},{key:"removeKey",value:function(e){var t=this.keys.indexOf(e);return-1!==t&&(this.keys.splice(t,1),!0)}}]),e}(),bn=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){(0,F.Z)(this,n);for(var e=(0,gn.O4)(),i=(0,gn.MR)(),r=[],o=0,a=Object.keys(e);o<a.length;o++){var s=a[o];_n.G1.test(s)&&r.push({identifiers:[(0,_n.Uh)(s).trim()],keys:Object.keys(e[s]),contents:(0,gn.Od)(e[s],(function(e){return console.error("Conflict in default settings file: ".concat(e))}))})}return t.call(this,e,i,r)}return(0,j.Z)(n)}(yn),wn=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new yn,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new yn,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new re.Y9,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:new yn,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:new re.Y9,u=!(arguments.length>7&&void 0!==arguments[7])||arguments[7];(0,F.Z)(this,e),this._defaultConfiguration=t,this._localUserConfiguration=n,this._remoteUserConfiguration=i,this._workspaceConfiguration=r,this._folderConfigurations=o,this._memoryConfiguration=a,this._memoryConfigurationByResource=s,this._freeze=u,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new re.Y9,this._userConfiguration=null}return(0,j.Z)(e,[{key:"getValue",value:function(e,t,n){return this.getConsolidateConfigurationModel(t,n).getValue(e)}},{key:"updateValue",value:function(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i.resource?(n=this._memoryConfigurationByResource.get(i.resource))||(n=new yn,this._memoryConfigurationByResource.set(i.resource,n)):n=this._memoryConfiguration,void 0===t?n.removeValue(e):n.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}},{key:"userConfiguration",get:function(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration),this._freeze&&this._userConfiguration.freeze()),this._userConfiguration}},{key:"getConsolidateConfigurationModel",value:function(e,t){var n=this.getConsolidatedConfigurationModelForResource(e,t);return e.overrideIdentifier?n.override(e.overrideIdentifier):n}},{key:"getConsolidatedConfigurationModelForResource",value:function(e,t){var n=e.resource,i=this.getWorkspaceConsolidatedConfiguration();if(t&&n){var r=t.getFolder(n);r&&(i=this.getFolderConsolidatedConfiguration(r.uri)||i);var o=this._memoryConfigurationByResource.get(n);o&&(i=i.merge(o))}return i}},{key:"getWorkspaceConsolidatedConfiguration",value:function(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration),this._freeze&&(this._workspaceConfiguration=this._workspaceConfiguration.freeze())),this._workspaceConsolidatedConfiguration}},{key:"getFolderConsolidatedConfiguration",value:function(e){var t=this._foldersConsolidatedConfigurations.get(e);if(!t){var n=this.getWorkspaceConsolidatedConfiguration(),i=this._folderConfigurations.get(e);i?(t=n.merge(i),this._freeze&&(t=t.freeze()),this._foldersConsolidatedConfigurations.set(e,t)):t=n}return t}},{key:"toData",value:function(){var e=this;return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:(0,J.Z)(this._folderConfigurations.keys()).reduce((function(t,n){var i=e._folderConfigurations.get(n),r=i.contents,o=i.overrides,a=i.keys;return t.push([n,{contents:r,overrides:o,keys:a}]),t}),[])}}}],[{key:"parse",value:function(t){var n=this,i=this.parseConfigurationModel(t.defaults),r=this.parseConfigurationModel(t.user),o=this.parseConfigurationModel(t.workspace),a=t.folders.reduce((function(e,t){return e.set(W.o.revive(t[0]),n.parseConfigurationModel(t[1])),e}),new re.Y9);return new e(i,r,new yn,o,a,new yn,new re.Y9,!1)}},{key:"parseConfigurationModel",value:function(e){return new yn(e.contents,e.keys,e.overrides).freeze()}}]),e}(),Cn=function(){function e(t,n,i,r){(0,F.Z)(this,e),this.change=t,this.previous=n,this.currentConfiguraiton=i,this.currentWorkspace=r,this._previousConfiguration=void 0;var o=new Set;t.keys.forEach((function(e){return o.add(e)})),t.overrides.forEach((function(e){return(0,at.Z)(e,2)[1].forEach((function(e){return o.add(e)}))})),this.affectedKeys=(0,J.Z)(o.values());var a=new yn;this.affectedKeys.forEach((function(e){return a.setValue(e,{})})),this.affectedKeysTree=a.contents}return(0,j.Z)(e,[{key:"previousConfiguration",get:function(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=wn.parse(this.previous.data)),this._previousConfiguration}},{key:"affectsConfiguration",value:function(e,t){var n;if(this.doesAffectedKeysTreeContains(this.affectedKeysTree,e)){if(t){var i=this.previousConfiguration?this.previousConfiguration.getValue(e,t,null===(n=this.previous)||void 0===n?void 0:n.workspace):void 0,r=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!mn.fS(i,r)}return!0}return!1}},{key:"doesAffectedKeysTreeContains",value:function(e,t){for(var n,i=(0,gn.Od)((0,Ve.Z)({},t,!0),(function(){}));"object"===typeof i&&(n=Object.keys(i)[0]);){if(!(e=e[n]))return!1;i=i[n]}return!0}}]),e}(),kn=n(56345),Sn=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a){var s;return(0,F.Z)(this,n),(s=t.call(this))._contextKeyService=e,s._commandService=i,s._telemetryService=r,s._notificationService=o,s._logService=a,s._onDidUpdateKeybindings=s._register(new B.Q5),s._currentChord=null,s._currentChordChecker=new De.zh,s._currentChordStatusMessage=null,s._currentSingleModifier=null,s._currentSingleModifierClearTimeout=new De._F,s._logging=!1,s}return(0,j.Z)(n,[{key:"onDidUpdateKeybindings",get:function(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:B.ju.None}},{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"_log",value:function(e){this._logging&&this._logService.info("[KeybindingService]: ".concat(e))}},{key:"getKeybindings",value:function(){return this._getResolver().getKeybindings()}},{key:"lookupKeybinding",value:function(e){var t=this._getResolver().lookupPrimaryKeybinding(e);if(t)return t.resolvedKeybinding}},{key:"dispatchEvent",value:function(e,t){return this._dispatch(e,t)}},{key:"softDispatch",value:function(e,t){var n=this.resolveKeyboardEvent(e);if(n.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),null;var i=n.getDispatchParts(),r=(0,at.Z)(i,1)[0];if(null===r)return null;var o=this._contextKeyService.getContext(t),a=this._currentChord?this._currentChord.keypress:null;return this._getResolver().resolve(o,a,r)}},{key:"_enterChordMode",value:function(e,t){var n=this;this._currentChord={keypress:e,label:t},this._currentChordStatusMessage=this._notificationService.status(kn.N("first.chord","({0}) was pressed. Waiting for second key of chord...",t));var i=Date.now();this._currentChordChecker.cancelAndSet((function(){n._documentHasFocus()?Date.now()-i>5e3&&n._leaveChordMode():n._leaveChordMode()}),500)}},{key:"_leaveChordMode",value:function(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChord=null}},{key:"_dispatch",value:function(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}},{key:"_singleModifierDispatch",value:function(e,t){var n=this,i=this.resolveKeyboardEvent(e),r=i.getSingleModifierDispatchParts(),o=(0,at.Z)(r,1)[0];return null!==o&&null===this._currentSingleModifier?(this._log("+ Storing single modifier for possible chord ".concat(o,".")),this._currentSingleModifier=o,this._currentSingleModifierClearTimeout.cancelAndSet((function(){n._log("+ Clearing single modifier due to 300ms elapsed."),n._currentSingleModifier=null}),300),!1):null!==o&&o===this._currentSingleModifier?(this._log("/ Dispatching single modifier chord ".concat(o," ").concat(o)),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1)}},{key:"_doDispatch",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=!1;if(e.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),!1;var o=null,a=null;if(i){var s=e.getSingleModifierDispatchParts(),u=(0,at.Z)(s,1)[0];o=u,a=u}else{var l=e.getDispatchParts();o=(0,at.Z)(l,1)[0],a=this._currentChord?this._currentChord.keypress:null}if(null===o)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),r;var c=this._contextKeyService.getContext(t),d=e.getLabel(),h=this._getResolver().resolve(c,a,o);return this._logService.trace("KeybindingService#dispatch",d,null===h||void 0===h?void 0:h.commandId),h&&h.enterChord?(r=!0,this._enterChordMode(o,d),r):(this._currentChord&&(h&&h.commandId||(this._notificationService.status(kn.N("missing.chord","The key combination ({0}, {1}) is not a command.",this._currentChord.label,d),{hideAfter:1e4}),r=!0)),this._leaveChordMode(),h&&h.commandId&&(h.bubble||(r=!0),"undefined"===typeof h.commandArgs?this._commandService.executeCommand(h.commandId).then(void 0,(function(e){return n._notificationService.warn(e)})):this._commandService.executeCommand(h.commandId,h.commandArgs).then(void 0,(function(e){return n._notificationService.warn(e)})),this._telemetryService.publicLog2("workbenchActionExecuted",{id:h.commandId,from:"keybinding"})),r)}},{key:"mightProducePrintableCharacter",value:function(e){return!e.ctrlKey&&!e.metaKey&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30)}}]),n}(Me.JT),xn=function(){function e(t,n,i){(0,F.Z)(this,e),this._log=i,this._defaultKeybindings=t,this._defaultBoundCommands=new Map;for(var r=0,o=t.length;r<o;r++){var a=t[r].command;a&&this._defaultBoundCommands.set(a,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=e.combine(t,n);for(var s=0,u=this._keybindings.length;s<u;s++){var l=this._keybindings[s];0!==l.keypressParts.length&&(l.when&&0===l.when.type||this._addKeyPress(l.keypressParts[0],l))}}return(0,j.Z)(e,[{key:"_addKeyPress",value:function(t,n){var i=this._map.get(t);if("undefined"===typeof i)return this._map.set(t,[n]),void this._addToLookupMap(n);for(var r=i.length-1;r>=0;r--){var o=i[r];if(o.command!==n.command){var a=o.keypressParts.length>1,s=n.keypressParts.length>1;a&&s&&o.keypressParts[1]!==n.keypressParts[1]||e.whenIsEntirelyIncluded(o.when,n.when)&&this._removeFromLookupMap(o)}}i.push(n),this._addToLookupMap(n)}},{key:"_addToLookupMap",value:function(e){if(e.command){var t=this._lookupMap.get(e.command);"undefined"===typeof t?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}}},{key:"_removeFromLookupMap",value:function(e){if(e.command){var t=this._lookupMap.get(e.command);if("undefined"!==typeof t)for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return void t.splice(n,1)}}},{key:"getKeybindings",value:function(){return this._keybindings}},{key:"lookupPrimaryKeybinding",value:function(e){var t=this._lookupMap.get(e);return"undefined"===typeof t||0===t.length?null:t[t.length-1]}},{key:"resolve",value:function(e,t,n){this._log("| Resolving ".concat(n).concat(t?" chorded from ".concat(t):""));var i=null;if(null!==t){var r=this._map.get(t);if("undefined"===typeof r)return this._log("\\ No keybinding entries."),null;i=[];for(var o=0,a=r.length;o<a;o++){var s=r[o];s.keypressParts[1]===n&&i.push(s)}}else{var u=this._map.get(n);if("undefined"===typeof u)return this._log("\\ No keybinding entries."),null;i=u}var l=this._findCommand(e,i);return l?null===t&&l.keypressParts.length>1&&null!==l.keypressParts[1]?(this._log("\\ From ".concat(i.length," keybinding entries, matched chord, when: ").concat(Ln(l.when),", source: ").concat(En(l),".")),{enterChord:!0,leaveChord:!1,commandId:null,commandArgs:null,bubble:!1}):(this._log("\\ From ".concat(i.length," keybinding entries, matched ").concat(l.command,", when: ").concat(Ln(l.when),", source: ").concat(En(l),".")),{enterChord:!1,leaveChord:l.keypressParts.length>1,commandId:l.command,commandArgs:l.commandArgs,bubble:l.bubble}):(this._log("\\ From ".concat(i.length," keybinding entries, no when clauses matched the context.")),null)}},{key:"_findCommand",value:function(t,n){for(var i=n.length-1;i>=0;i--){var r=n[i];if(e.contextMatchesRules(t,r.when))return r}return null}}],[{key:"_isTargetedForRemoval",value:function(e,t,n,i,r){if(e.command!==i)return!1;if(t&&e.keypressParts[0]!==t)return!1;if(n&&e.keypressParts[1]!==n)return!1;if(r){if(!e.when)return!1;if(!r.equals(e.when))return!1}return!0}},{key:"combine",value:function(e,t){e=e.slice(0);var n,i=[],r=(0,X.Z)(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(o.command&&0!==o.command.length&&"-"===o.command.charAt(0))for(var a=o.command.substr(1),s=o.keypressParts[0],u=o.keypressParts[1],l=o.when,c=e.length-1;c>=0;c--)this._isTargetedForRemoval(e[c],s,u,a,l)&&e.splice(c,1);else i.push(o)}}catch(d){r.e(d)}finally{r.f()}return e.concat(i)}},{key:"whenIsEntirelyIncluded",value:function(e,t){return!t||!!e&&this._implies(e,t)}},{key:"_implies",value:function(e,t){for(var n=function(e){return 9===e.type?e.expr:[e]},i=n(e.negate()).concat(n(t)),r=0;r<i.length;r++)for(var o=i[r].negate(),a=r+1;a<i.length;a++){var s=i[a];if(o.equals(s))return!0}return!1}},{key:"contextMatchesRules",value:function(e,t){return!t||t.evaluate(e)}}]),e}();function Ln(e){return e?"".concat(e.serialize()):"no when condition"}function En(e){return e.extensionId?e.isBuiltinExtension?"built-in extension ".concat(e.extensionId):"user extension ".concat(e.extensionId):e.isDefault?"built-in":"user"}var Nn=n(51519),Dn=(0,j.Z)((function e(t,n,i,r,o,a,s){(0,F.Z)(this,e),this.resolvedKeybinding=t,this.keypressParts=t?Mn(t.getDispatchParts()):[],t&&0===this.keypressParts.length&&(this.keypressParts=Mn(t.getSingleModifierDispatchParts())),this.bubble=!!n&&94===n.charCodeAt(0),this.command=this.bubble?n.substr(1):n,this.commandArgs=i,this.when=r,this.isDefault=o,this.extensionId=a,this.isBuiltinExtension=s}));function Mn(e){for(var t=[],n=0,i=e.length;n<i;n++){var r=e[n];if(!r)return t;t.push(r)}return t}var Tn=n(85733),On=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;if((0,F.Z)(this,n),r=t.call(this),0===i.length)throw(0,Te.b1)("parts");return r._os=e,r._parts=i,r}return(0,j.Z)(n,[{key:"getLabel",value:function(){var e=this;return Tn.xo.toLabel(this._os,this._parts,(function(t){return e._getLabel(t)}))}},{key:"getAriaLabel",value:function(){var e=this;return Tn.X4.toLabel(this._os,this._parts,(function(t){return e._getAriaLabel(t)}))}},{key:"isChord",value:function(){return this._parts.length>1}},{key:"getParts",value:function(){var e=this;return this._parts.map((function(t){return e._getPart(t)}))}},{key:"_getPart",value:function(e){return new z.BQ(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}},{key:"getDispatchParts",value:function(){var e=this;return this._parts.map((function(t){return e._getDispatchPart(t)}))}},{key:"getSingleModifierDispatchParts",value:function(){var e=this;return this._parts.map((function(t){return e._getSingleModifierDispatchPart(t)}))}}]),n}(z.f1),In=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){return(0,F.Z)(this,n),t.call(this,i,e.parts)}return(0,j.Z)(n,[{key:"_keyCodeToUILabel",value:function(e){if(2===this._os)switch(e){case 15:return"\u2190";case 16:return"\u2191";case 17:return"\u2192";case 18:return"\u2193"}return z.kL.toString(e)}},{key:"_getLabel",value:function(e){return e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode)}},{key:"_getAriaLabel",value:function(e){return e.isDuplicateModifierCase()?"":z.kL.toString(e.keyCode)}},{key:"_getDispatchPart",value:function(e){return n.getDispatchStr(e)}},{key:"_getSingleModifierDispatchPart",value:function(e){return 5!==e.keyCode||e.shiftKey||e.altKey||e.metaKey?4!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey?6!==e.keyCode||e.ctrlKey||e.shiftKey||e.metaKey?57!==e.keyCode||e.ctrlKey||e.shiftKey||e.altKey?null:"meta":"alt":"shift":"ctrl"}}],[{key:"getDispatchStr",value:function(e){if(e.isModifierKey())return null;var t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+=z.kL.toString(e.keyCode)}}]),n}(On),An=n(71574),Pn=n(37753),Rn=n(25741),Zn=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Fn=function(e,t){return function(n,i){t(n,i,e)}},jn=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Hn=function(){function e(t){(0,F.Z)(this,e),this.disposed=!1,this.model=t,this._onWillDispose=new B.Q5}return(0,j.Z)(e,[{key:"textEditorModel",get:function(){return this.model}},{key:"dispose",value:function(){this.disposed=!0,this._onWillDispose.fire()}}]),e}();var Bn=function(){function e(t){(0,F.Z)(this,e),this.modelService=t}return(0,j.Z)(e,[{key:"setEditor",value:function(e){this.editor=e}},{key:"createModelReference",value:function(e){var t,n,i,r=this,o=null;return this.editor&&(t=this.editor,n=function(t){return r.findModel(t,e)},i=function(t){return r.findModel(t.getOriginalEditor(),e)||r.findModel(t.getModifiedEditor(),e)},o=(0,hn.CL)(t)?n(t):i(t)),o?Promise.resolve(new Me.Jz(new Hn(o))):Promise.reject(new Error("Model not found"))}},{key:"findModel",value:function(e,t){var n=this.modelService.getModel(t);return n&&n.uri.toString()!==t.toString()?null:n}}]),e}();Bn=Zn([Fn(0,yt.q)],Bn);var zn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"show",value:function(){return e.NULL_PROGRESS_RUNNER}},{key:"showWhile",value:function(e,t){return jn(this,void 0,void 0,te().mark((function t(){return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e;case 2:case"end":return t.stop()}}),t)})))}}]),e}();zn.NULL_PROGRESS_RUNNER={done:function(){},total:function(){},worked:function(){}};var Wn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"confirm",value:function(e){return this.doConfirm(e).then((function(e){return{confirmed:e,checkboxChecked:!1}}))}},{key:"doConfirm",value:function(e){var t=e.message;return e.detail&&(t=t+"\n\n"+e.detail),Promise.resolve(window.confirm(t))}},{key:"show",value:function(e,t,n,i){return Promise.resolve({choice:0})}}]),e}(),Vn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"info",value:function(e){return this.notify({severity:dn.Z.Info,message:e})}},{key:"warn",value:function(e){return this.notify({severity:dn.Z.Warning,message:e})}},{key:"error",value:function(e){return this.notify({severity:dn.Z.Error,message:e})}},{key:"notify",value:function(t){switch(t.severity){case dn.Z.Error:console.error(t.message);break;case dn.Z.Warning:console.warn(t.message);break;default:console.log(t.message)}return e.NO_OP}},{key:"status",value:function(e,t){return Me.JT.None}}]),e}();Vn.NO_OP=new An.EO;var Yn=function(){function e(t){(0,F.Z)(this,e),this._onWillExecuteCommand=new B.Q5,this._onDidExecuteCommand=new B.Q5,this._instantiationService=t}return(0,j.Z)(e,[{key:"executeCommand",value:function(e){var t=ue.P.getCommand(e);if(!t)return Promise.reject(new Error("command '".concat(e,"' not found")));try{for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];this._onWillExecuteCommand.fire({commandId:e,args:i});var o=this._instantiationService.invokeFunction.apply(this._instantiationService,[t.handler].concat(i));return this._onDidExecuteCommand.fire({commandId:e,args:i}),Promise.resolve(o)}catch(a){return Promise.reject(a)}}}]),e}(),Un=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s){var u;return(0,F.Z)(this,n),(u=t.call(this,e,i,r,o,a))._cachedResolver=null,u._dynamicKeybindings=[],u._register(ne.addDisposableListener(s,ne.EventType.KEY_DOWN,(function(e){var t=new cn.y(e);u._dispatch(t,t.target)&&(t.preventDefault(),t.stopPropagation())}))),u._register(ne.addDisposableListener(window,ne.EventType.KEY_UP,(function(e){var t=new cn.y(e);u._singleModifierDispatch(t,t.target)&&t.preventDefault()}))),u}return(0,j.Z)(n,[{key:"addDynamicKeybinding",value:function(e,t,n,i){var r=this,o=(0,z.gm)(t,Oe.OS),a=new Me.SL;return o&&(this._dynamicKeybindings.push({keybinding:o,command:e,when:i,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}),a.add((0,Me.OF)((function(){for(var t=0;t<r._dynamicKeybindings.length;t++){if(r._dynamicKeybindings[t].command===e)return r._dynamicKeybindings.splice(t,1),void r.updateResolver({source:1})}})))),a.add(ue.P.registerCommand(e,n)),this.updateResolver({source:1}),a}},{key:"updateResolver",value:function(e){this._cachedResolver=null,this._onDidUpdateKeybindings.fire(e)}},{key:"_getResolver",value:function(){var e=this;if(!this._cachedResolver){var t=this._toNormalizedKeybindingItems(Nn.W.getDefaultKeybindings(),!0),n=this._toNormalizedKeybindingItems(this._dynamicKeybindings,!1);this._cachedResolver=new xn(t,n,(function(t){return e._log(t)}))}return this._cachedResolver}},{key:"_documentHasFocus",value:function(){return document.hasFocus()}},{key:"_toNormalizedKeybindingItems",value:function(e,t){var n,i=[],r=0,o=(0,X.Z)(e);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=a.when||void 0,u=a.keybinding;if(u){var l,c=this.resolveKeybinding(u),d=(0,X.Z)(c);try{for(d.s();!(l=d.n()).done;){var h=l.value;i[r++]=new Dn(h,a.command,a.commandArgs,s,t,null,!1)}}catch(f){d.e(f)}finally{d.f()}}else i[r++]=new Dn(void 0,a.command,a.commandArgs,s,t,null,!1)}}catch(f){o.e(f)}finally{o.f()}return i}},{key:"resolveKeybinding",value:function(e){return[new In(e,Oe.OS)]}},{key:"resolveKeyboardEvent",value:function(e){var t=new z.QC(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode).toChord();return new In(t,Oe.OS)}}]),n}(Sn);function Kn(e){return e&&"object"===typeof e&&(!e.overrideIdentifier||"string"===typeof e.overrideIdentifier)&&(!e.resource||e.resource instanceof W.o)}var qn=function(){function e(){(0,F.Z)(this,e),this._onDidChangeConfiguration=new B.Q5,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._configuration=new wn(new bn,new yn)}return(0,j.Z)(e,[{key:"getValue",value:function(e,t){var n="string"===typeof e?e:void 0,i=Kn(e)?e:Kn(t)?t:{};return this._configuration.getValue(n,i,void 0)}},{key:"updateValues",value:function(e){var t,n={data:this._configuration.toData()},i=[],r=(0,X.Z)(e);try{for(r.s();!(t=r.n()).done;){var o=t.value,a=(0,at.Z)(o,2),s=a[0],u=a[1];this.getValue(s)!==u&&(this._configuration.updateValue(s,u),i.push(s))}}catch(c){r.e(c)}finally{r.f()}if(i.length>0){var l=new Cn({keys:i,overrides:[]},n,this._configuration);l.source=7,l.sourceConfig=null,this._onDidChangeConfiguration.fire(l)}return Promise.resolve()}}]),e}(),Gn=function(){function e(t){var n=this;(0,F.Z)(this,e),this.configurationService=t,this._onDidChangeConfiguration=new B.Q5,this.configurationService.onDidChangeConfiguration((function(e){n._onDidChangeConfiguration.fire({affectedKeys:e.affectedKeys,affectsConfiguration:function(t,n){return e.affectsConfiguration(n)}})}))}return(0,j.Z)(e,[{key:"getValue",value:function(e,t,n){var i=(V.L.isIPosition(t)?t:null)?"string"===typeof n?n:void 0:"string"===typeof t?t:void 0;return"undefined"===typeof i?this.configurationService.getValue():this.configurationService.getValue(i)}}]),e}(),$n=function(){function e(t){(0,F.Z)(this,e),this.configurationService=t}return(0,j.Z)(e,[{key:"getEOL",value:function(e,t){var n=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return n&&"auto"!==n?n:Oe.IJ||Oe.dz?"\n":"\r\n"}}]),e}();$n=Zn([Fn(0,gn.Ui)],$n);var Qn=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"publicLog",value:function(e,t){return Promise.resolve(void 0)}},{key:"publicLog2",value:function(e,t){return this.publicLog(e,t)}}]),e}(),Xn=function(){function e(){(0,F.Z)(this,e);var t=W.o.from({scheme:e.SCHEME,authority:"model",path:"/"});this.workspace={id:"4064f6ec-cb38-4ad0-af64-ee6467e63c82",folders:[new Pn.md({uri:t,name:"",index:0})]}}return(0,j.Z)(e,[{key:"getWorkspace",value:function(){return this.workspace}}]),e}();function Jn(e,t,n){if(t&&e instanceof qn){var i=[];Object.keys(t).forEach((function(e){(0,pn.ei)(e)&&i.push(["editor.".concat(e),t[e]]),n&&(0,pn.Pe)(e)&&i.push(["diffEditor.".concat(e),t[e]])})),i.length>0&&e.updateValues(i)}}Xn.SCHEME="inmemory";var ei=function(){function e(t){(0,F.Z)(this,e),this._modelService=t}return(0,j.Z)(e,[{key:"hasPreviewHandler",value:function(){return!1}},{key:"apply",value:function(e,t){return jn(this,void 0,void 0,te().mark((function t(){var n,i,r,o,a,s,u,l,c,d,h,f,p;return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=new Map,i=(0,X.Z)(e),t.prev=2,i.s();case 4:if((r=i.n()).done){t.next=18;break}if((o=r.value)instanceof fn.Gl){t.next=8;break}throw new Error("bad edit - only text edits are supported");case 8:if(a=this._modelService.getModel(o.resource)){t.next=11;break}throw new Error("bad edit - model not found");case 11:if("number"!==typeof o.versionId||a.getVersionId()===o.versionId){t.next=13;break}throw new Error("bad state - model changed in the meantime");case 13:(s=n.get(a))||(s=[],n.set(a,s)),s.push(vn.h.replaceMove(Y.e.lift(o.textEdit.range),o.textEdit.text));case 16:t.next=4;break;case 18:t.next=23;break;case 20:t.prev=20,t.t0=t.catch(2),i.e(t.t0);case 23:return t.prev=23,i.f(),t.finish(23);case 26:u=0,l=0,c=(0,X.Z)(n);try{for(c.s();!(d=c.n()).done;)h=(0,at.Z)(d.value,2),f=h[0],p=h[1],f.pushStackElement(),f.pushEditOperations([],p,(function(){return[]})),f.pushStackElement(),l+=1,u+=p.length}catch(v){c.e(v)}finally{c.f()}return t.abrupt("return",{ariaSummary:Ue.WU(Rn.UL.bulkEditServiceSummary,u,l)});case 31:case"end":return t.stop()}}),t,this,[[2,20,23,26]])})))}}]),e}(),ti=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"getUriLabel",value:function(e,t){return"file"===e.scheme?e.fsPath:e.path}}]),e}(),ni=function(){function e(t,n){(0,F.Z)(this,e),this._codeEditorService=t,this._container=n,this.onDidLayout=B.ju.None}return(0,j.Z)(e,[{key:"dimension",get:function(){return this._dimension||(this._dimension=ne.getClientArea(window.document.body)),this._dimension}},{key:"container",get:function(){return this._container}},{key:"focus",value:function(){var e;null===(e=this._codeEditorService.getFocusedCodeEditor())||void 0===e||e.focus()}}]),e}(),ii=n(52180),ri=n(95079),oi=n(20224),ai=n(30633),si=n(51342),ui=n(31585),li=n(18948),ci=n(98989),di=n(84596),hi=n(97963),fi=n(70182),pi=n(40782),vi=n(38794),gi=n(18085),mi=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e;return(0,F.Z)(this,n),(e=t.call(this))._onCodeEditorAdd=e._register(new B.Q5),e.onCodeEditorAdd=e._onCodeEditorAdd.event,e._onCodeEditorRemove=e._register(new B.Q5),e.onCodeEditorRemove=e._onCodeEditorRemove.event,e._onDiffEditorAdd=e._register(new B.Q5),e._onDiffEditorRemove=e._register(new B.Q5),e._onDecorationTypeRegistered=e._register(new B.Q5),e._modelProperties=new Map,e._codeEditors=Object.create(null),e._diffEditors=Object.create(null),e}return(0,j.Z)(n,[{key:"addCodeEditor",value:function(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}},{key:"removeCodeEditor",value:function(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}},{key:"listCodeEditors",value:function(){var e=this;return Object.keys(this._codeEditors).map((function(t){return e._codeEditors[t]}))}},{key:"addDiffEditor",value:function(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}},{key:"removeDiffEditor",value:function(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)}},{key:"listDiffEditors",value:function(){var e=this;return Object.keys(this._diffEditors).map((function(t){return e._diffEditors[t]}))}},{key:"getFocusedCodeEditor",value:function(){var e,t=null,n=this.listCodeEditors(),i=(0,X.Z)(n);try{for(i.s();!(e=i.n()).done;){var r=e.value;if(r.hasTextFocus())return r;r.hasWidgetFocus()&&(t=r)}}catch(o){i.e(o)}finally{i.f()}return t}},{key:"setModelProperty",value:function(e,t,n){var i,r=e.toString();this._modelProperties.has(r)?i=this._modelProperties.get(r):(i=new Map,this._modelProperties.set(r,i)),i.set(t,n)}},{key:"getModelProperty",value:function(e,t){var n=e.toString();if(this._modelProperties.has(n))return this._modelProperties.get(n).get(t)}}]),n}(Me.JT),_i=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},yi=function(e,t){return function(n,i){t(n,i,e)}},bi=function(){function e(t,n,i){(0,F.Z)(this,e),this._parent=t,this._editorId=n,this._styleSheet=i,this._refCount=0}return(0,j.Z)(e,[{key:"ref",value:function(){this._refCount++}},{key:"unref",value:function(){var e;this._refCount--,0===this._refCount&&(null===(e=this._styleSheet.parentNode)||void 0===e||e.removeChild(this._styleSheet),this._parent._removeEditorStyleSheets(this._editorId))}},{key:"insertRule",value:function(e,t){this._styleSheet.sheet.insertRule(e,t)}},{key:"removeRulesContainingSelector",value:function(e){ne.removeCSSRulesContainingSelector(e,this._styleSheet)}}]),e}(),wi=function(){function e(t){(0,F.Z)(this,e),this._styleSheet=t}return(0,j.Z)(e,[{key:"ref",value:function(){}},{key:"unref",value:function(){}},{key:"insertRule",value:function(e,t){this._styleSheet.sheet.insertRule(e,t)}},{key:"removeRulesContainingSelector",value:function(e){ne.removeCSSRulesContainingSelector(e,this._styleSheet)}}]),e}(),Ci=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this))._decorationOptionProviders=new Map,r._editorStyleSheets=new Map,r._globalStyleSheet=e||null,r._themeService=i,r}return(0,j.Z)(n,[{key:"_getOrCreateGlobalStyleSheet",value:function(){return this._globalStyleSheet||(this._globalStyleSheet=new wi(ne.createStyleSheet())),this._globalStyleSheet}},{key:"_getOrCreateStyleSheet",value:function(e){if(!e)return this._getOrCreateGlobalStyleSheet();var t=e.getContainerDomNode();if(!ne.isInShadowDOM(t))return this._getOrCreateGlobalStyleSheet();var n=e.getId();if(!this._editorStyleSheets.has(n)){var i=new bi(this,n,ne.createStyleSheet(t));this._editorStyleSheets.set(n,i)}return this._editorStyleSheets.get(n)}},{key:"_removeEditorStyleSheets",value:function(e){this._editorStyleSheets.delete(e)}},{key:"registerDecorationType",value:function(e,t,n,i){var r=this._decorationOptionProviders.get(e);if(!r){var o=this._getOrCreateStyleSheet(i),a={styleSheet:o,key:e,parentTypeKey:n,options:t||Object.create(null)};r=n?new ki(this._themeService,o,a):new Si(this._themeService,o,a),this._decorationOptionProviders.set(e,r),this._onDecorationTypeRegistered.fire(e)}r.refCount++}},{key:"removeDecorationType",value:function(e){var t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach((function(t){return t.removeDecorations(e)}))))}},{key:"resolveDecorationOptions",value:function(e,t){var n=this._decorationOptionProviders.get(e);if(!n)throw new Error("Unknown decoration type key: "+e);return n.getOptions(this,t)}}]),n}(mi);Ci=_i([yi(1,fi.XE)],Ci);var ki=function(){function e(t,n,i){(0,F.Z)(this,e),this._styleSheet=n,this._styleSheet.ref(),this._parentTypeKey=i.parentTypeKey,this.refCount=0,this._beforeContentRules=new Li(3,i,t),this._afterContentRules=new Li(4,i,t)}return(0,j.Z)(e,[{key:"getOptions",value:function(e,t){var n=e.resolveDecorationOptions(this._parentTypeKey,!0);return this._beforeContentRules&&(n.beforeContentClassName=this._beforeContentRules.className),this._afterContentRules&&(n.afterContentClassName=this._afterContentRules.className),n}},{key:"dispose",value:function(){this._beforeContentRules&&(this._beforeContentRules.dispose(),this._beforeContentRules=null),this._afterContentRules&&(this._afterContentRules.dispose(),this._afterContentRules=null),this._styleSheet.unref()}}]),e}(),Si=function(){function e(t,n,i){var r=this;(0,F.Z)(this,e),this._disposables=new Me.SL,this._styleSheet=n,this._styleSheet.ref(),this.refCount=0;var o=function(e){var n=new Li(e,i,t);if(r._disposables.add(n),n.hasContent)return n.className};this.className=o(0);var a=function(e){var n=new Li(e,i,t);return r._disposables.add(n),n.hasContent?{className:n.className,hasLetterSpacing:n.hasLetterSpacing}:null}(1);a&&(this.inlineClassName=a.className,this.inlineClassNameAffectsLetterSpacing=a.hasLetterSpacing),this.beforeContentClassName=o(3),this.afterContentClassName=o(4),this.glyphMarginClassName=o(2);var s=i.options;this.isWholeLine=Boolean(s.isWholeLine),this.stickiness=s.rangeBehavior;var u=s.light&&s.light.overviewRulerColor||s.overviewRulerColor,l=s.dark&&s.dark.overviewRulerColor||s.overviewRulerColor;"undefined"===typeof u&&"undefined"===typeof l||(this.overviewRuler={color:u||l,darkColor:l||u,position:s.overviewRulerLane||ye.sh.Center})}return(0,j.Z)(e,[{key:"getOptions",value:function(e,t){return t?{inlineClassName:this.inlineClassName,beforeContentClassName:this.beforeContentClassName,afterContentClassName:this.afterContentClassName,className:this.className,glyphMarginClassName:this.glyphMarginClassName,isWholeLine:this.isWholeLine,overviewRuler:this.overviewRuler,stickiness:this.stickiness}:this}},{key:"dispose",value:function(){this._disposables.dispose(),this._styleSheet.unref()}}]),e}(),xi={color:"color:{0} !important;",opacity:"opacity:{0};",backgroundColor:"background-color:{0};",outline:"outline:{0};",outlineColor:"outline-color:{0};",outlineStyle:"outline-style:{0};",outlineWidth:"outline-width:{0};",border:"border:{0};",borderColor:"border-color:{0};",borderRadius:"border-radius:{0};",borderSpacing:"border-spacing:{0};",borderStyle:"border-style:{0};",borderWidth:"border-width:{0};",fontStyle:"font-style:{0};",fontWeight:"font-weight:{0};",fontSize:"font-size:{0};",fontFamily:"font-family:{0};",textDecoration:"text-decoration:{0};",cursor:"cursor:{0};",letterSpacing:"letter-spacing:{0};",gutterIconPath:"background:{0} center center no-repeat;",gutterIconSize:"background-size:{0};",contentText:"content:'{0}';",contentIconPath:"content:{0};",margin:"margin:{0};",padding:"padding:{0};",width:"width:{0};",height:"height:{0};"},Li=function(){function e(t,n,i){var r=this;(0,F.Z)(this,e),this._theme=i.getColorTheme(),this._ruleType=t,this._providerArgs=n,this._usesThemeColors=!1,this._hasContent=!1,this._hasLetterSpacing=!1;var o=Ei.getClassName(this._providerArgs.key,t);this._providerArgs.parentTypeKey&&(o=o+" "+Ei.getClassName(this._providerArgs.parentTypeKey,t)),this._className=o,this._unThemedSelector=Ei.getSelector(this._providerArgs.key,this._providerArgs.parentTypeKey,t),this._buildCSS(),this._usesThemeColors?this._themeListener=i.onDidColorThemeChange((function(e){r._theme=i.getColorTheme(),r._removeCSS(),r._buildCSS()})):this._themeListener=null}return(0,j.Z)(e,[{key:"dispose",value:function(){this._hasContent&&(this._removeCSS(),this._hasContent=!1),this._themeListener&&(this._themeListener.dispose(),this._themeListener=null)}},{key:"hasContent",get:function(){return this._hasContent}},{key:"hasLetterSpacing",get:function(){return this._hasLetterSpacing}},{key:"className",get:function(){return this._className}},{key:"_buildCSS",value:function(){var e,t,n,i=this._providerArgs.options;switch(this._ruleType){case 0:e=this.getCSSTextForModelDecorationClassName(i),t=this.getCSSTextForModelDecorationClassName(i.light),n=this.getCSSTextForModelDecorationClassName(i.dark);break;case 1:e=this.getCSSTextForModelDecorationInlineClassName(i),t=this.getCSSTextForModelDecorationInlineClassName(i.light),n=this.getCSSTextForModelDecorationInlineClassName(i.dark);break;case 2:e=this.getCSSTextForModelDecorationGlyphMarginClassName(i),t=this.getCSSTextForModelDecorationGlyphMarginClassName(i.light),n=this.getCSSTextForModelDecorationGlyphMarginClassName(i.dark);break;case 3:e=this.getCSSTextForModelDecorationContentClassName(i.before),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.before),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.before);break;case 4:e=this.getCSSTextForModelDecorationContentClassName(i.after),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.after),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.after);break;default:throw new Error("Unknown rule type: "+this._ruleType)}var r=this._providerArgs.styleSheet,o=!1;e.length>0&&(r.insertRule("".concat(this._unThemedSelector," {").concat(e,"}"),0),o=!0),t.length>0&&(r.insertRule(".vs".concat(this._unThemedSelector," {").concat(t,"}"),0),o=!0),n.length>0&&(r.insertRule(".vs-dark".concat(this._unThemedSelector,", .hc-black").concat(this._unThemedSelector," {").concat(n,"}"),0),o=!0),this._hasContent=o}},{key:"_removeCSS",value:function(){this._providerArgs.styleSheet.removeRulesContainingSelector(this._unThemedSelector)}},{key:"getCSSTextForModelDecorationClassName",value:function(e){if(!e)return"";var t=[];return this.collectCSSText(e,["backgroundColor"],t),this.collectCSSText(e,["outline","outlineColor","outlineStyle","outlineWidth"],t),this.collectBorderSettingsCSSText(e,t),t.join("")}},{key:"getCSSTextForModelDecorationInlineClassName",value:function(e){if(!e)return"";var t=[];return this.collectCSSText(e,["fontStyle","fontWeight","textDecoration","cursor","color","opacity","letterSpacing"],t),e.letterSpacing&&(this._hasLetterSpacing=!0),t.join("")}},{key:"getCSSTextForModelDecorationContentClassName",value:function(e){if(!e)return"";var t=[];if("undefined"!==typeof e){if(this.collectBorderSettingsCSSText(e,t),"undefined"!==typeof e.contentIconPath&&t.push(Ue.WU(xi.contentIconPath,ne.asCSSUrl(W.o.revive(e.contentIconPath)))),"string"===typeof e.contentText){var n=e.contentText.match(/^.*$/m)[0].replace(/['\\]/g,"\\$&");t.push(Ue.WU(xi.contentText,n))}this.collectCSSText(e,["fontStyle","fontWeight","fontSize","fontFamily","textDecoration","color","opacity","backgroundColor","margin","padding"],t),this.collectCSSText(e,["width","height"],t)&&t.push("display:inline-block;")}return t.join("")}},{key:"getCSSTextForModelDecorationGlyphMarginClassName",value:function(e){if(!e)return"";var t=[];return"undefined"!==typeof e.gutterIconPath&&(t.push(Ue.WU(xi.gutterIconPath,ne.asCSSUrl(W.o.revive(e.gutterIconPath)))),"undefined"!==typeof e.gutterIconSize&&t.push(Ue.WU(xi.gutterIconSize,e.gutterIconSize))),t.join("")}},{key:"collectBorderSettingsCSSText",value:function(e,t){return!!this.collectCSSText(e,["border","borderColor","borderRadius","borderSpacing","borderStyle","borderWidth"],t)&&(t.push(Ue.WU("box-sizing: border-box;")),!0)}},{key:"collectCSSText",value:function(e,t,n){var i,r=n.length,o=(0,X.Z)(t);try{for(o.s();!(i=o.n()).done;){var a=i.value,s=this.resolveValue(e[a]);"string"===typeof s&&n.push(Ue.WU(xi[a],s))}}catch(u){o.e(u)}finally{o.f()}return n.length!==r}},{key:"resolveValue",value:function(e){if((0,_e.I)(e)){this._usesThemeColors=!0;var t=this._theme.getColor(e.id);return t?t.toString():"transparent"}return e}}]),e}(),Ei=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,null,[{key:"getClassName",value:function(e,t){return"ced-"+e+"-"+t}},{key:"getSelector",value:function(e,t,n){var i=".monaco-editor ."+this.getClassName(e,n);return t&&(i=i+"."+this.getClassName(t,n)),3===n?i+="::before":4===n&&(i+="::after"),i}}]),e}(),Ni=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Di=function(e,t){return function(n,i){t(n,i,e)}},Mi=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;return(0,F.Z)(this,n),(o=t.call(this,e,r)).onCodeEditorAdd((function(){return o._checkContextKey()})),o.onCodeEditorRemove((function(){return o._checkContextKey()})),o._editorIsOpen=i.createKey("editorIsOpen",!1),o._activeCodeEditor=null,o}return(0,j.Z)(n,[{key:"_checkContextKey",value:function(){var e,t=!1,n=(0,X.Z)(this.listCodeEditors());try{for(n.s();!(e=n.n()).done;){if(!e.value.isSimpleWidget){t=!0;break}}}catch(i){n.e(i)}finally{n.f()}this._editorIsOpen.set(t)}},{key:"setActiveCodeEditor",value:function(e){this._activeCodeEditor=e}},{key:"getActiveCodeEditor",value:function(){return this._activeCodeEditor}},{key:"openCodeEditor",value:function(e,t,n){return t?Promise.resolve(this.doOpenEditor(t,e)):Promise.resolve(null)}},{key:"doOpenEditor",value:function(e,t){if(!this.findModel(e,t.resource)){if(t.resource){var n=t.resource.scheme;if(n===ae.lg.http||n===ae.lg.https)return(0,ne.windowOpenNoOpener)(t.resource.toString()),e}return null}var i=t.options?t.options.selection:null;if(i)if("number"===typeof i.endLineNumber&&"number"===typeof i.endColumn)e.setSelection(i),e.revealRangeInCenter(i,1);else{var r={lineNumber:i.startLineNumber,column:i.startColumn};e.setPosition(r),e.revealPositionInCenter(r,1)}return e}},{key:"findModel",value:function(e,t){var n=e.getModel();return n&&n.uri.toString()!==t.toString()?null:n}}]),n}(Ci);Mi=Ni([Di(1,li.i6),Di(2,fi.XE)],Mi);var Ti=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Oi=function(e,t){return function(n,i){t(n,i,e)}},Ii=0,Ai=!1;var Pi=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s,u,l,c,d){var h;(0,F.Z)(this,n);var f=Object.assign({},i);return f.ariaLabel=f.ariaLabel||Rn.B8.editorViewAccessibleLabel,f.ariaLabel=f.ariaLabel+";"+Rn.B8.accessibilityHelpMessage,(h=t.call(this,e,f,{},r,o,a,s,l,c,d))._standaloneKeybindingService=u instanceof Un?u:null,Ai||(Ai=!0,ii.wW(document.body)),h}return(0,j.Z)(n,[{key:"addCommand",value:function(e,t,n){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;var i="DYNAMIC_"+ ++Ii,r=li.Ao.deserialize(n);return this._standaloneKeybindingService.addDynamicKeybinding(i,e,t,r),i}},{key:"createContextKey",value:function(e,t){return this._contextKeyService.createKey(e,t)}},{key:"addAction",value:function(e){var t=this;if("string"!==typeof e.id||"string"!==typeof e.label||"function"!==typeof e.run)throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),Me.JT.None;var n=e.id,i=e.label,r=li.Ao.and(li.Ao.equals("editorId",this.getId()),li.Ao.deserialize(e.precondition)),o=e.keybindings,a=li.Ao.and(r,li.Ao.deserialize(e.keybindingContext)),s=e.contextMenuGroupId||null,u=e.contextMenuOrder||0,l=function(n){for(var i=arguments.length,r=new Array(i>1?i-1:0),o=1;o<i;o++)r[o-1]=arguments[o];return Promise.resolve(e.run.apply(e,[t].concat(r)))},c=new Me.SL,d=this.getId()+":"+n;if(c.add(ue.P.registerCommand(d,l)),s){var h={command:{id:d,title:i},when:r,group:s,order:u};c.add(ui.BH.appendMenuItem(ui.eH.EditorContext,h))}if(Array.isArray(o)){var f,p=(0,X.Z)(o);try{for(p.s();!(f=p.n()).done;){var v=f.value;c.add(this._standaloneKeybindingService.addDynamicKeybinding(d,v,l,a))}}catch(m){p.e(m)}finally{p.f()}}var g=new ai.p(d,i,i,r,l,this._contextKeyService);return this._actions[n]=g,c.add((0,Me.OF)((function(){delete t._actions[n]}))),c}},{key:"_triggerCommand",value:function(e,t){if(this._codeEditorService instanceof Mi)try{this._codeEditorService.setActiveCodeEditor(this),(0,Ee.Z)((0,Ne.Z)(n.prototype),"_triggerCommand",this).call(this,e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else(0,Ee.Z)((0,Ne.Z)(n.prototype),"_triggerCommand",this).call(this,e,t)}}]),n}(ri.Gm),Ri=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s,u,l,c,d,h,f,p,v,g){var m;(0,F.Z)(this,n);var _=Object.assign({},i);Jn(f,_,!1);var y=d.registerEditorContainer(e);"string"===typeof _.theme&&d.setTheme(_.theme),"undefined"!==typeof _.autoDetectHighContrast&&d.setAutoDetectHighContrast(Boolean(_.autoDetectHighContrast));var b,w=_.model;if(delete _.model,(m=t.call(this,e,_,o,a,s,u,l,d,h,p))._contextViewService=c,m._configurationService=f,m._standaloneThemeService=d,m._register(r),m._register(y),"undefined"===typeof w?(b=Fi(v,g,_.value||"",_.language||"text/plain",void 0),m._ownsModel=!0):(b=w,m._ownsModel=!1),m._attachModel(b),b){var C={oldModelUrl:null,newModelUrl:b.uri};m._onDidChangeModel.fire(C)}return m}return(0,j.Z)(n,[{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"updateOptions",value:function(e){Jn(this._configurationService,e,!1),"string"===typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),"undefined"!==typeof e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),(0,Ee.Z)((0,Ne.Z)(n.prototype),"updateOptions",this).call(this,e)}},{key:"_attachModel",value:function(e){(0,Ee.Z)((0,Ne.Z)(n.prototype),"_attachModel",this).call(this,e),this._modelData&&this._contextViewService.setContainer(this._modelData.view.domNode.domNode)}},{key:"_postDetachModelCleanup",value:function(e){(0,Ee.Z)((0,Ne.Z)(n.prototype),"_postDetachModelCleanup",this).call(this,e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}}]),n}(Pi=Ti([Oi(2,di.TG),Oi(3,Q.$),Oi(4,ue.H),Oi(5,li.i6),Oi(6,hi.d),Oi(7,fi.XE),Oi(8,An.lT),Oi(9,pi.F)],Pi));Ri=Ti([Oi(3,di.TG),Oi(4,Q.$),Oi(5,ue.H),Oi(6,li.i6),Oi(7,hi.d),Oi(8,ci.u),Oi(9,si.Z),Oi(10,An.lT),Oi(11,gn.Ui),Oi(12,pi.F),Oi(13,yt.q),Oi(14,ke.h)],Ri);var Zi=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s,u,l,c,d,h,f,p,v,g){var m;(0,F.Z)(this,n);var _=Object.assign({},i);Jn(f,_,!0);var y=d.registerEditorContainer(e);return"string"===typeof _.theme&&d.setTheme(_.theme),"undefined"!==typeof _.autoDetectHighContrast&&d.setAutoDetectHighContrast(Boolean(_.autoDetectHighContrast)),(m=t.call(this,e,_,{},g,l,a,o,c,d,h,p,v))._contextViewService=u,m._configurationService=f,m._standaloneThemeService=d,m._register(r),m._register(y),m._contextViewService.setContainer(m._containerDomElement),m}return(0,j.Z)(n,[{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}},{key:"updateOptions",value:function(e){Jn(this._configurationService,e,!0),"string"===typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),"undefined"!==typeof e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),(0,Ee.Z)((0,Ne.Z)(n.prototype),"updateOptions",this).call(this,e)}},{key:"_createInnerEditor",value:function(e,t,n){return e.createInstance(Pi,t,n)}},{key:"getOriginalEditor",value:function(){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"getOriginalEditor",this).call(this)}},{key:"getModifiedEditor",value:function(){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"getModifiedEditor",this).call(this)}},{key:"addCommand",value:function(e,t,n){return this.getModifiedEditor().addCommand(e,t,n)}},{key:"createContextKey",value:function(e,t){return this.getModifiedEditor().createContextKey(e,t)}},{key:"addAction",value:function(e){return this.getModifiedEditor().addAction(e)}}]),n}(oi.p);function Fi(e,t,n,i,r){if(n=n||"",!i){var o=n.indexOf("\n"),a=n;return-1!==o&&(a=n.substring(0,o)),ji(e,n,t.createByFilepathOrFirstLine(r||null,a),r)}return ji(e,n,t.create(i),r)}function ji(e,t,n,i){return e.createModel(t,n,i)}Zi=Ti([Oi(3,di.TG),Oi(4,li.i6),Oi(5,hi.d),Oi(6,ci.u),Oi(7,Ce.p),Oi(8,Q.$),Oi(9,si.Z),Oi(10,An.lT),Oi(11,gn.Ui),Oi(12,ci.i),Oi(13,gi.e),Oi(14,vi.p)],Zi);var Hi=function(){function e(t){(0,F.Z)(this,e),this._languageIdentifier=t}return(0,j.Z)(e,[{key:"getId",value:function(){return this._languageIdentifier.language}}]),e}(),Bi=n(36912),zi=n(79612),Wi="text/plain",Vi="application/unknown",Yi=[],Ui=[],Ki=[];function qi(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(e){return{id:e.id,mime:e.mime,filename:e.filename,extension:e.extension,filepattern:e.filepattern,firstline:e.firstline,userConfigured:e.userConfigured,filenameLowercase:e.filename?e.filename.toLowerCase():void 0,extensionLowercase:e.extension?e.extension.toLowerCase():void 0,filepatternLowercase:e.filepattern?e.filepattern.toLowerCase():void 0,filepatternOnPath:!!e.filepattern&&e.filepattern.indexOf(Bi.KR.sep)>=0}}(e);Yi.push(n),n.userConfigured?Ki.push(n):Ui.push(n),t&&!n.userConfigured&&Yi.forEach((function(e){e.mime===n.mime||e.userConfigured||(n.extension&&e.extension===n.extension&&console.warn("Overwriting extension <<".concat(n.extension,">> to now point to mime <<").concat(n.mime,">>")),n.filename&&e.filename===n.filename&&console.warn("Overwriting filename <<".concat(n.filename,">> to now point to mime <<").concat(n.mime,">>")),n.filepattern&&e.filepattern===n.filepattern&&console.warn("Overwriting filepattern <<".concat(n.filepattern,">> to now point to mime <<").concat(n.mime,">>")),n.firstline&&e.firstline===n.firstline&&console.warn("Overwriting firstline <<".concat(n.firstline,">> to now point to mime <<").concat(n.mime,">>")))}))}function Gi(e,t){var n;if(e)switch(e.scheme){case ae.lg.file:n=e.fsPath;break;case ae.lg.data:n=se.Vb.parseMetaData(e).get(se.Vb.META_DATA_LABEL);break;default:n=e.path}if(!n)return[Vi];n=n.toLowerCase();var i=(0,Bi.EZ)(n),r=$i(n,i,Ki);if(r)return[r,Wi];var o=$i(n,i,Ui);if(o)return[o,Wi];if(t){var a=function(e){(0,Ue.uS)(e)&&(e=e.substr(1));if(e.length>0)for(var t=Yi.length-1;t>=0;t--){var n=Yi[t];if(n.firstline){var i=e.match(n.firstline);if(i&&i.length>0)return n.mime}}return null}(t);if(a)return[a,Wi]}return[Vi]}function $i(e,t,n){for(var i=null,r=null,o=null,a=n.length-1;a>=0;a--){var s=n[a];if(t===s.filenameLowercase){i=s;break}if(s.filepattern&&(!r||s.filepattern.length>r.filepattern.length)){var u=s.filepatternOnPath?e:t;(0,zi.EQ)(s.filepatternLowercase,u)&&(r=s)}s.extension&&(!o||s.extension.length>o.extension.length)&&t.endsWith(s.extensionLowercase)&&(o=s)}return i?i.mime:r?r.mime:o?o.mime:null}var Qi=n(54970),Xi=n(38774),Ji=Object.prototype.hasOwnProperty,er=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e,i=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return(0,F.Z)(this,n),(e=t.call(this))._onDidChange=e._register(new B.Q5),e.onDidChange=e._onDidChange.event,e._warnOnOverwrite=r,e._nextLanguageId2=1,e._languageIdToLanguage=[],e._languageToLanguageId=Object.create(null),e._languages={},e._mimeTypesMap={},e._nameMap={},e._lowercaseNameMap={},i&&(e._initializeFromRegistry(),e._register(Qi.dQ.onDidChangeLanguages((function(t){return e._initializeFromRegistry()})))),e}return(0,j.Z)(n,[{key:"_initializeFromRegistry",value:function(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={};var e=Qi.dQ.getLanguages();this._registerLanguages(e)}},{key:"_registerLanguages",value:function(e){var t,n=this,i=(0,X.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;this._registerLanguage(r)}}catch(o){i.e(o)}finally{i.f()}this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach((function(e){var t=n._languages[e];t.name&&(n._nameMap[t.name]=t.identifier),t.aliases.forEach((function(e){n._lowercaseNameMap[e.toLowerCase()]=t.identifier})),t.mimetypes.forEach((function(e){n._mimeTypesMap[e]=t.identifier}))})),Xi.B.as(_n.IP.Configuration).registerOverrideIdentifiers(Qi.dQ.getLanguages().map((function(e){return e.id}))),this._onDidChange.fire()}},{key:"_getLanguageId",value:function(e){if(this._languageToLanguageId[e])return this._languageToLanguageId[e];var t=this._nextLanguageId2++;return this._languageIdToLanguage[t]=e,this._languageToLanguageId[e]=t,t}},{key:"_registerLanguage",value:function(e){var t,n=e.id;if(Ji.call(this._languages,n))t=this._languages[n];else{var i=this._getLanguageId(n);t={identifier:new be.rl(n,i),name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[]},this._languages[n]=t}this._mergeLanguage(t,e)}},{key:"_mergeLanguage",value:function(e,t){var n,i=t.id,r=null;Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&((n=e.mimetypes).push.apply(n,(0,J.Z)(t.mimetypes)),r=t.mimetypes[0]);if(r||(r="text/x-".concat(i),e.mimetypes.push(r)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);var o,a=(0,X.Z)(t.extensions);try{for(a.s();!(o=a.n()).done;){qi({id:i,mime:r,extension:o.value},this._warnOnOverwrite)}}catch(b){a.e(b)}finally{a.f()}}if(Array.isArray(t.filenames)){var s,u=(0,X.Z)(t.filenames);try{for(u.s();!(s=u.n()).done;){var l=s.value;qi({id:i,mime:r,filename:l},this._warnOnOverwrite),e.filenames.push(l)}}catch(b){u.e(b)}finally{u.f()}}if(Array.isArray(t.filenamePatterns)){var c,d=(0,X.Z)(t.filenamePatterns);try{for(d.s();!(c=d.n()).done;){qi({id:i,mime:r,filepattern:c.value},this._warnOnOverwrite)}}catch(b){d.e(b)}finally{d.f()}}if("string"===typeof t.firstLine&&t.firstLine.length>0){var h=t.firstLine;"^"!==h.charAt(0)&&(h="^"+h);try{var f=new RegExp(h);Ue.IO(f)||qi({id:i,mime:r,firstline:f},this._warnOnOverwrite)}catch(b){(0,Te.dL)(b)}}e.aliases.push(i);var p=null;if("undefined"!==typeof t.aliases&&Array.isArray(t.aliases)&&(p=0===t.aliases.length?[null]:t.aliases),null!==p){var v,g=(0,X.Z)(p);try{for(g.s();!(v=g.n()).done;){var m=v.value;m&&0!==m.length&&e.aliases.push(m)}}catch(b){g.e(b)}finally{g.f()}}var _=null!==p&&p.length>0;if(_&&null===p[0]);else{var y=(_?p[0]:null)||i;!_&&e.name||(e.name=y)}t.configuration&&e.configurationFiles.push(t.configuration)}},{key:"isRegisteredMode",value:function(e){return!!Ji.call(this._mimeTypesMap,e)||Ji.call(this._languages,e)}},{key:"getModeIdForLanguageNameLowercase",value:function(e){return Ji.call(this._lowercaseNameMap,e)?this._lowercaseNameMap[e].language:null}},{key:"extractModeIds",value:function(e){var t=this;return e?e.split(",").map((function(e){return e.trim()})).map((function(e){return Ji.call(t._mimeTypesMap,e)?t._mimeTypesMap[e].language:e})).filter((function(e){return Ji.call(t._languages,e)})):[]}},{key:"getLanguageIdentifier",value:function(e){if(e===we.TG||0===e)return we.pA;var t;if("string"===typeof e)t=e;else if(!(t=this._languageIdToLanguage[e]))return null;return Ji.call(this._languages,t)?this._languages[t].identifier:null}},{key:"getModeIdsFromFilepathOrFirstLine",value:function(e,t){if(!e&&!t)return[];var n=Gi(e,t);return this.extractModeIds(n.join(","))}}]),n}(Me.JT),tr=function(){function e(t,n){var i,r=this;(0,F.Z)(this,e),this._selector=n,this.languageIdentifier=this._selector(),this._onDidChange=new B.Q5({onFirstListenerAdd:function(){i=t((function(){return r._evaluate()}))},onLastListenerRemove:function(){i.dispose()}}),this.onDidChange=this._onDidChange.event}return(0,j.Z)(e,[{key:"_evaluate",value:function(){var e=this._selector();e.id!==this.languageIdentifier.id&&(this.languageIdentifier=e,this._onDidChange.fire(this.languageIdentifier))}}]),e}(),nr=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(0,F.Z)(this,n),(e=t.call(this))._onDidCreateMode=e._register(new B.Q5),e.onDidCreateMode=e._onDidCreateMode.event,e._onLanguagesMaybeChanged=e._register(new B.Q5({leakWarningThreshold:200})),e.onLanguagesMaybeChanged=e._onLanguagesMaybeChanged.event,e._instantiatedModes={},e._registry=e._register(new er(!0,i)),e._register(e._registry.onDidChange((function(){return e._onLanguagesMaybeChanged.fire()}))),e}return(0,j.Z)(n,[{key:"isRegisteredMode",value:function(e){return this._registry.isRegisteredMode(e)}},{key:"getModeIdForLanguageName",value:function(e){return this._registry.getModeIdForLanguageNameLowercase(e)}},{key:"getModeIdByFilepathOrFirstLine",value:function(e,t){var n=this._registry.getModeIdsFromFilepathOrFirstLine(e,t);return(0,wt.Xh)(n,null)}},{key:"getModeId",value:function(e){var t=this._registry.extractModeIds(e);return(0,wt.Xh)(t,null)}},{key:"getLanguageIdentifier",value:function(e){return this._registry.getLanguageIdentifier(e)}},{key:"create",value:function(e){var t=this;return new tr(this.onLanguagesMaybeChanged,(function(){var n=t.getModeId(e);return t._createModeAndGetLanguageIdentifier(n)}))}},{key:"createByFilepathOrFirstLine",value:function(e,t){var n=this;return new tr(this.onLanguagesMaybeChanged,(function(){var i=n.getModeIdByFilepathOrFirstLine(e,t);return n._createModeAndGetLanguageIdentifier(i)}))}},{key:"_createModeAndGetLanguageIdentifier",value:function(e){var t=this.getLanguageIdentifier(e||"plaintext")||we.pA;return this._getOrCreateMode(t.language),t}},{key:"triggerMode",value:function(e){var t=this.getModeId(e);this._getOrCreateMode(t||"plaintext")}},{key:"_getOrCreateMode",value:function(e){if(!this._instantiatedModes.hasOwnProperty(e)){var t=this.getLanguageIdentifier(e)||we.pA;this._instantiatedModes[e]=new Hi(t),this._onDidCreateMode.fire(this._instantiatedModes[e])}return this._instantiatedModes[e]}}]),n}(Me.JT),ir=n(77993),rr=n(89938),or=(0,j.Z)((function e(t,n,i,r,o){(0,F.Z)(this,e),this.token=t,this.index=n,this.fontStyle=i,this.foreground=r,this.background=o}));function ar(e,t){e.sort((function(e,t){var n=function(e,t){if(e<t)return-1;if(e>t)return 1;return 0}(e.token,t.token);return 0!==n?n:e.index-t.index}));for(var n=0,i="000000",r="ffffff";e.length>=1&&""===e[0].token;){var o=e.shift();-1!==o.fontStyle&&(n=o.fontStyle),null!==o.foreground&&(i=o.foreground),null!==o.background&&(r=o.background)}var a,s=new ur,u=(0,X.Z)(t);try{for(u.s();!(a=u.n()).done;){var l=a.value;s.getId(l)}}catch(m){u.e(m)}finally{u.f()}for(var c=s.getId(i),d=s.getId(r),h=new dr(n,c,d),f=new hr(h),p=0,v=e.length;p<v;p++){var g=e[p];f.insert(g.token,g.fontStyle,s.getId(g.foreground),s.getId(g.background))}return new lr(s,f)}var sr=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/,ur=function(){function e(){(0,F.Z)(this,e),this._lastColorId=0,this._id2color=[],this._color2id=new Map}return(0,j.Z)(e,[{key:"getId",value:function(e){if(null===e)return 0;var t=e.match(sr);if(!t)throw new Error("Illegal value for token color: "+e);e=t[1].toUpperCase();var n=this._color2id.get(e);return n||(n=++this._lastColorId,this._color2id.set(e,n),this._id2color[n]=rr.Il.fromHex("#"+e),n)}},{key:"getColorMap",value:function(){return this._id2color.slice(0)}}]),e}(),lr=function(){function e(t,n){(0,F.Z)(this,e),this._colorMap=t,this._root=n,this._cache=new Map}return(0,j.Z)(e,[{key:"getColorMap",value:function(){return this._colorMap.getColorMap()}},{key:"_match",value:function(e){return this._root.match(e)}},{key:"match",value:function(e,t){var n=this._cache.get(t);if("undefined"===typeof n){var i=this._match(t),r=function(e){var t=e.match(cr);if(!t)return 0;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":case"regexp":return 4}throw new Error("Unexpected match for standard token type!")}(t);n=(i.metadata|r<<8)>>>0,this._cache.set(t,n)}return(n|e<<0)>>>0}}],[{key:"createFromRawTokenTheme",value:function(e,t){return this.createFromParsedTokenTheme(function(e){if(!e||!Array.isArray(e))return[];for(var t=[],n=0,i=0,r=e.length;i<r;i++){var o=e[i],a=-1;if("string"===typeof o.fontStyle){a=0;for(var s=o.fontStyle.split(" "),u=0,l=s.length;u<l;u++)switch(s[u]){case"italic":a|=1;break;case"bold":a|=2;break;case"underline":a|=4}}var c=null;"string"===typeof o.foreground&&(c=o.foreground);var d=null;"string"===typeof o.background&&(d=o.background),t[n++]=new or(o.token||"",i,a,c,d)}return t}(e),t)}},{key:"createFromParsedTokenTheme",value:function(e,t){return ar(e,t)}}]),e}(),cr=/\b(comment|string|regex|regexp)\b/;var dr=function(){function e(t,n,i){(0,F.Z)(this,e),this._fontStyle=t,this._foreground=n,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}return(0,j.Z)(e,[{key:"clone",value:function(){return new e(this._fontStyle,this._foreground,this._background)}},{key:"acceptOverwrite",value:function(e,t,n){-1!==e&&(this._fontStyle=e),0!==t&&(this._foreground=t),0!==n&&(this._background=n),this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}}]),e}(),hr=function(){function e(t){(0,F.Z)(this,e),this._mainRule=t,this._children=new Map}return(0,j.Z)(e,[{key:"match",value:function(e){if(""===e)return this._mainRule;var t,n,i=e.indexOf(".");-1===i?(t=e,n=""):(t=e.substring(0,i),n=e.substring(i+1));var r=this._children.get(t);return"undefined"!==typeof r?r.match(n):this._mainRule}},{key:"insert",value:function(t,n,i,r){if(""!==t){var o,a,s=t.indexOf(".");-1===s?(o=t,a=""):(o=t.substring(0,s),a=t.substring(s+1));var u=this._children.get(o);"undefined"===typeof u&&(u=new e(this._mainRule.clone()),this._children.set(o,u)),u.insert(a,n,i,r)}else this._mainRule.acceptOverwrite(n,i,r)}}]),e}();var fr,pr,vr,gr=n(80449),mr=n(92992),_r={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:(fr={},(0,Ve.Z)(fr,mr.cv,"#FFFFFE"),(0,Ve.Z)(fr,mr.NO,"#000000"),(0,Ve.Z)(fr,mr.ES,"#E5EBF1"),(0,Ve.Z)(fr,gr.tR,"#D3D3D3"),(0,Ve.Z)(fr,gr.Ym,"#939393"),(0,Ve.Z)(fr,mr.Rz,"#ADD6FF4D"),fr)},yr={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(pr={},(0,Ve.Z)(pr,mr.cv,"#1E1E1E"),(0,Ve.Z)(pr,mr.NO,"#D4D4D4"),(0,Ve.Z)(pr,mr.ES,"#3A3D41"),(0,Ve.Z)(pr,gr.tR,"#404040"),(0,Ve.Z)(pr,gr.Ym,"#707070"),(0,Ve.Z)(pr,mr.Rz,"#ADD6FF26"),pr)},br={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(vr={},(0,Ve.Z)(vr,mr.cv,"#000000"),(0,Ve.Z)(vr,mr.NO,"#FFFFFF"),(0,Ve.Z)(vr,gr.tR,"#FFFFFF"),(0,Ve.Z)(vr,gr.Ym,"#FFFFFF"),vr)},wr=n(7644),Cr=n(62239);var kr="vs",Sr="vs-dark",xr="hc-black",Lr=Xi.B.as(mr.IP.ColorContribution),Er=Xi.B.as(fi.IP.ThemingContribution),Nr=function(){function e(t,n){(0,F.Z)(this,e),this.semanticHighlighting=!1,this.themeData=n;var i=n.base;t.length>0?(Dr(t)?this.id=t:this.id=i+" "+t,this.themeName=t):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}return(0,j.Z)(e,[{key:"base",get:function(){return this.themeData.base}},{key:"notifyBaseUpdated",value:function(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}},{key:"getColors",value:function(){if(!this.colors){var e=new Map;for(var t in this.themeData.colors)e.set(t,rr.Il.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){var n=Mr(this.themeData.base);for(var i in n.colors)e.has(i)||e.set(i,rr.Il.fromHex(n.colors[i]))}this.colors=e}return this.colors}},{key:"getColor",value:function(e,t){var n=this.getColors().get(e);return n||(!1!==t?this.getDefault(e):void 0)}},{key:"getDefault",value:function(e){var t=this.defaultColors[e];return t||(t=Lr.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}},{key:"defines",value:function(e){return Object.prototype.hasOwnProperty.call(this.getColors(),e)}},{key:"type",get:function(){switch(this.base){case kr:return wr.e.LIGHT;case xr:return wr.e.HIGH_CONTRAST;default:return wr.e.DARK}}},{key:"tokenTheme",get:function(){if(!this._tokenTheme){var e=[],t=[];if(this.themeData.inherit){var n=Mr(this.themeData.base);e=n.rules,n.encodedTokensColors&&(t=n.encodedTokensColors)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=lr.createFromRawTokenTheme(e,t)}return this._tokenTheme}},{key:"getTokenStyleMetadata",value:function(e,t,n){var i=this.tokenTheme._match([e].concat(t).join(".")).metadata,r=be.NX.getForeground(i),o=be.NX.getFontStyle(i);return{foreground:r,italic:Boolean(1&o),bold:Boolean(2&o),underline:Boolean(4&o)}}}]),e}();function Dr(e){return e===kr||e===Sr||e===xr}function Mr(e){switch(e){case kr:return _r;case Sr:return yr;case xr:return br}}function Tr(e){var t=Mr(e);return new Nr(e,t)}var Or=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e;(0,F.Z)(this,n),(e=t.call(this))._onColorThemeChange=e._register(new B.Q5),e.onDidColorThemeChange=e._onColorThemeChange.event,e._environment=Object.create(null),e._autoDetectHighContrast=!0,e._knownThemes=new Map,e._knownThemes.set(kr,Tr(kr)),e._knownThemes.set(Sr,Tr(Sr)),e._knownThemes.set(xr,Tr(xr));var i=function(){var e=new B.Q5,t=(0,Cr.Ks)();return t.onDidChange((function(){return e.fire()})),{onDidChange:e.event,getCSS:function(){var e,n={},i=function(e){for(var i=e.defaults;fi.kS.isThemeIcon(i);){var r=t.getIcon(i.id);if(!r)return;i=r.defaults}var o=i.fontId;if(o){var a=t.getIconFont(o);if(a)return n[o]=a,".codicon-".concat(e.id,":before { content: '").concat(i.fontCharacter,"'; font-family: ").concat((0,ne.asCSSPropertyValue)(o),"; }")}return".codicon-".concat(e.id,":before { content: '").concat(i.fontCharacter,"'; }")},r=[],o=(0,X.Z)(t.getIcons());try{for(o.s();!(e=o.n()).done;){var a=i(e.value);a&&r.push(a)}}catch(l){o.e(l)}finally{o.f()}for(var s in n){var u=n[s].definition.src.map((function(e){return"".concat((0,ne.asCSSUrl)(e.location)," format('").concat(e.format,"')")})).join(", ");r.push("@font-face { src: ".concat(u,"; font-family: ").concat((0,ne.asCSSPropertyValue)(s),"; }"))}return r.join("\n")}}}();return e._codiconCSS=i.getCSS(),e._themeCSS="",e._allCSS="".concat(e._codiconCSS,"\n").concat(e._themeCSS),e._globalStyleElement=null,e._styleElements=[],e._colorMapOverride=null,e.setTheme(kr),i.onDidChange((function(){e._codiconCSS=i.getCSS(),e._updateCSS()})),ne.addMatchMediaChangeListener("(forced-colors: active)",(function(){e._updateActualTheme()})),e}return(0,j.Z)(n,[{key:"registerEditorContainer",value:function(e){return ne.isInShadowDOM(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}},{key:"_registerRegularEditorContainer",value:function(){return this._globalStyleElement||(this._globalStyleElement=ne.createStyleSheet(),this._globalStyleElement.className="monaco-colors",this._globalStyleElement.textContent=this._allCSS,this._styleElements.push(this._globalStyleElement)),Me.JT.None}},{key:"_registerShadowDomContainer",value:function(e){var t=this,n=ne.createStyleSheet(e);return n.className="monaco-colors",n.textContent=this._allCSS,this._styleElements.push(n),{dispose:function(){for(var e=0;e<t._styleElements.length;e++)if(t._styleElements[e]===n)return void t._styleElements.splice(e,1)}}}},{key:"defineTheme",value:function(e,t){if(!/^[a-z0-9\-]+$/i.test(e))throw new Error("Illegal theme name!");if(!Dr(t.base)&&!Dr(e))throw new Error("Illegal theme base!");this._knownThemes.set(e,new Nr(e,t)),Dr(e)&&this._knownThemes.forEach((function(t){t.base===e&&t.notifyBaseUpdated()})),this._theme.themeName===e&&this.setTheme(e)}},{key:"getColorTheme",value:function(){return this._theme}},{key:"setColorMapOverride",value:function(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}},{key:"setTheme",value:function(e){var t;t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(kr),this._desiredTheme=t,this._updateActualTheme()}},{key:"_updateActualTheme",value:function(){var e=this._autoDetectHighContrast&&window.matchMedia("(forced-colors: active)").matches?this._knownThemes.get(xr):this._desiredTheme;this._theme!==e&&(this._theme=e,this._updateThemeOrColorMap())}},{key:"setAutoDetectHighContrast",value:function(e){this._autoDetectHighContrast=e,this._updateActualTheme()}},{key:"_updateThemeOrColorMap",value:function(){var e=this,t=[],n={},i={addRule:function(e){n[e]||(t.push(e),n[e]=!0)}};Er.getThemingParticipants().forEach((function(t){return t(e._theme,i,e._environment)}));var r=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(function(e){for(var t=[],n=1,i=e.length;n<i;n++){var r=e[n];t[n]=".mtk".concat(n," { color: ").concat(r,"; }")}return t.push(".mtki { font-style: italic; }"),t.push(".mtkb { font-weight: bold; }"),t.push(".mtku { text-decoration: underline; text-underline-position: under; }"),t.join("\n")}(r)),this._themeCSS=t.join("\n"),this._updateCSS(),be.RW.setColorMap(r),this._onColorThemeChange.fire(this._theme)}},{key:"_updateCSS",value:function(){var e=this;this._allCSS="".concat(this._codiconCSS,"\n").concat(this._themeCSS),this._styleElements.forEach((function(t){return t.textContent=e._allCSS}))}},{key:"getFileIconTheme",value:function(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}}]),n}(Me.JT),Ir=n(98900),Ar=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Pr=function(e,t){return function(n,i){t(n,i,e)}},Rr="data-keybinding-context",Zr=function(){function e(t,n){(0,F.Z)(this,e),this._id=t,this._parent=n,this._value=Object.create(null),this._value._contextId=t}return(0,j.Z)(e,[{key:"setValue",value:function(e,t){return this._value[e]!==t&&(this._value[e]=t,!0)}},{key:"removeValue",value:function(e){return e in this._value&&(delete this._value[e],!0)}},{key:"getValue",value:function(e){var t=this._value[e];return"undefined"===typeof t&&this._parent?this._parent.getValue(e):t}}]),e}(),Fr=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){return(0,F.Z)(this,n),t.call(this,-1,null)}return(0,j.Z)(n,[{key:"setValue",value:function(e,t){return!1}},{key:"removeValue",value:function(e){return!1}},{key:"getValue",value:function(e){}}]),n}(Zr);Fr.INSTANCE=new Fr;var jr=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r){var o;return(0,F.Z)(this,n),(o=t.call(this,e,null))._configurationService=i,o._values=re.Id.forConfigKeys(),o._listener=o._configurationService.onDidChangeConfiguration((function(e){if(6===e.source){var t=Array.from(Ir.$.map(o._values,(function(e){return(0,at.Z)(e,1)[0]})));o._values.clear(),r.fire(new zr(t))}else{var n,i=[],a=(0,X.Z)(e.affectedKeys);try{for(a.s();!(n=a.n()).done;){var s=n.value,u="config.".concat(s),l=o._values.findSuperstr(u);void 0!==l&&(i.push.apply(i,(0,J.Z)(Ir.$.map(l,(function(e){return(0,at.Z)(e,1)[0]})))),o._values.deleteSuperstr(u)),o._values.has(u)&&(i.push(u),o._values.delete(u))}}catch(c){a.e(c)}finally{a.f()}r.fire(new zr(i))}})),o}return(0,j.Z)(n,[{key:"dispose",value:function(){this._listener.dispose()}},{key:"getValue",value:function(e){if(0!==e.indexOf(n._keyPrefix))return(0,Ee.Z)((0,Ne.Z)(n.prototype),"getValue",this).call(this,e);if(this._values.has(e))return this._values.get(e);var t=e.substr(n._keyPrefix.length),i=this._configurationService.getValue(t),r=void 0;switch(typeof i){case"number":case"boolean":case"string":r=i;break;default:r=Array.isArray(i)?JSON.stringify(i):i}return this._values.set(e,r),r}},{key:"setValue",value:function(e,t){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"setValue",this).call(this,e,t)}},{key:"removeValue",value:function(e){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"removeValue",this).call(this,e)}}]),n}(Zr);jr._keyPrefix="config.";var Hr=function(){function e(t,n,i){(0,F.Z)(this,e),this._service=t,this._key=n,this._defaultValue=i,this.reset()}return(0,j.Z)(e,[{key:"set",value:function(e){this._service.setContext(this._key,e)}},{key:"reset",value:function(){"undefined"===typeof this._defaultValue?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}},{key:"get",value:function(){return this._service.getContextKeyValue(this._key)}}]),e}(),Br=function(){function e(t){(0,F.Z)(this,e),this.key=t}return(0,j.Z)(e,[{key:"affectsSome",value:function(e){return e.has(this.key)}}]),e}(),zr=function(){function e(t){(0,F.Z)(this,e),this.keys=t}return(0,j.Z)(e,[{key:"affectsSome",value:function(e){var t,n=(0,X.Z)(this.keys);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(e.has(i))return!0}}catch(r){n.e(r)}finally{n.f()}return!1}}]),e}(),Wr=function(){function e(t){(0,F.Z)(this,e),this.events=t}return(0,j.Z)(e,[{key:"affectsSome",value:function(e){var t,n=(0,X.Z)(this.events);try{for(n.s();!(t=n.n()).done;){if(t.value.affectsSome(e))return!0}}catch(i){n.e(i)}finally{n.f()}return!1}}]),e}(),Vr=function(){function e(t){(0,F.Z)(this,e),this._onDidChangeContext=new B.K3({merge:function(e){return new Wr(e)}}),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=t}return(0,j.Z)(e,[{key:"createKey",value:function(e,t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new Hr(this,e,t)}},{key:"bufferChangeEvents",value:function(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}},{key:"createScoped",value:function(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new Ur(this,e)}},{key:"contextMatchesRules",value:function(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");var t=this.getContextValuesContainer(this._myContextId);return xn.contextMatchesRules(t,e)}},{key:"getContextKeyValue",value:function(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}},{key:"setContext",value:function(e,t){if(!this._isDisposed){var n=this.getContextValuesContainer(this._myContextId);n&&n.setValue(e,t)&&this._onDidChangeContext.fire(new Br(e))}}},{key:"removeContext",value:function(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new Br(e))}},{key:"getContext",value:function(e){return this._isDisposed?Fr.INSTANCE:this.getContextValuesContainer(function(e){for(;e;){if(e.hasAttribute(Rr)){var t=e.getAttribute(Rr);return t?parseInt(t,10):NaN}e=e.parentElement}return 0}(e))}}]),e}(),Yr=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;(0,F.Z)(this,n),(i=t.call(this,0))._contexts=new Map,i._toDispose=new Me.SL,i._lastContextId=0;var r=new jr(i._myContextId,e,i._onDidChangeContext);return i._contexts.set(i._myContextId,r),i._toDispose.add(r),i}return(0,j.Z)(n,[{key:"dispose",value:function(){this._onDidChangeContext.dispose(),this._isDisposed=!0,this._toDispose.dispose()}},{key:"getContextValuesContainer",value:function(e){return this._isDisposed?Fr.INSTANCE:this._contexts.get(e)||Fr.INSTANCE}},{key:"createChildContext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._myContextId;if(this._isDisposed)throw new Error("ContextKeyService has been disposed");var t=++this._lastContextId;return this._contexts.set(t,new Zr(t,this.getContextValuesContainer(e))),t}},{key:"disposeContext",value:function(e){this._isDisposed||this._contexts.delete(e)}}]),n}(Vr);Yr=Ar([Pr(0,gn.Ui)],Yr);var Ur=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;if((0,F.Z)(this,n),(r=t.call(this,e.createChildContext()))._parentChangeListener=new Me.XK,r._parent=e,r._updateParentChangeListener(),r._domNode=i,r._domNode.hasAttribute(Rr)){var o="";r._domNode.classList&&(o=Array.from(r._domNode.classList.values()).join(", ")),console.error("Element already has context attribute".concat(o?": "+o:""))}return r._domNode.setAttribute(Rr,String(r._myContextId)),r}return(0,j.Z)(n,[{key:"_updateParentChangeListener",value:function(){this._parentChangeListener.value=this._parent.onDidChangeContext(this._onDidChangeContext.fire,this._onDidChangeContext)}},{key:"dispose",value:function(){this._isDisposed||(this._onDidChangeContext.dispose(),this._parent.disposeContext(this._myContextId),this._parentChangeListener.dispose(),this._domNode.removeAttribute(Rr),this._isDisposed=!0)}},{key:"getContextValuesContainer",value:function(e){return this._isDisposed?Fr.INSTANCE:this._parent.getContextValuesContainer(e)}},{key:"createChildContext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._myContextId;if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(e)}},{key:"disposeContext",value:function(e){this._isDisposed||this._parent.disposeContext(e)}}]),n}(Vr);ue.P.registerCommand(li.Eq,(function(e,t,n){e.get(li.i6).createKey(String(t),n)})),ue.P.registerCommand({id:"getContextKeyInfo",handler:function(){return(0,J.Z)(li.uy.all()).sort((function(e,t){return e.key.localeCompare(t.key)}))},description:{description:(0,kn.N)("getContextKeyInfo","A command that returns information about context keys"),args:[]}}),ue.P.registerCommand("_generateContextKeyInfo",(function(){var e,t=[],n=new Set,i=(0,X.Z)(li.uy.all());try{for(i.s();!(e=i.n()).done;){var r=e.value;n.has(r.key)||(n.add(r.key),t.push(r))}}catch(o){i.e(o)}finally{i.f()}t.sort((function(e,t){return e.key.localeCompare(t.key)})),console.log(JSON.stringify(t,void 0,2))}));var Kr,qr=n(29077),Gr=n(97326),$r=n(67404),Qr=n(61727),Xr=n(81629),Jr=n(32721);function eo(e,t,n){var i=n.mode===Kr.ALIGN?n.offset:n.offset+n.size,r=n.mode===Kr.ALIGN?n.offset+n.size:n.offset;return 0===n.position?t<=e-i?i:t<=r?r-t:Math.max(e-t,0):t<=r?r-t:t<=e-i?i:0}!function(e){e[e.AVOID=0]="AVOID",e[e.ALIGN=1]="ALIGN"}(Kr||(Kr={}));var to=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this)).container=null,r.delegate=null,r.toDisposeOnClean=Me.JT.None,r.toDisposeOnSetContainer=Me.JT.None,r.shadowRoot=null,r.shadowRootHostElement=null,r.view=ne.$(".context-view"),r.useFixedPosition=!1,r.useShadowDOM=!1,ne.hide(r.view),r.setContainer(e,i),r._register((0,Me.OF)((function(){return r.setContainer(null,1)}))),r}return(0,j.Z)(n,[{key:"setContainer",value:function(e,t){var i,r=this;if(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,null===(i=this.shadowRootHostElement)||void 0===i||i.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),e){if(this.container=e,this.useFixedPosition=1!==t,this.useShadowDOM=3===t,this.useShadowDOM){this.shadowRootHostElement=ne.$(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});var o=document.createElement("style");o.textContent=io,this.shadowRoot.appendChild(o),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(ne.$("slot"))}else this.container.appendChild(this.view);var a=new Me.SL;n.BUBBLE_UP_EVENTS.forEach((function(e){a.add(ne.addStandardDisposableListener(r.container,e,(function(e){r.onDOMEvent(e,!1)})))})),n.BUBBLE_DOWN_EVENTS.forEach((function(e){a.add(ne.addStandardDisposableListener(r.container,e,(function(e){r.onDOMEvent(e,!0)}),!0))})),this.toDisposeOnSetContainer=a}}},{key:"show",value:function(e){this.isVisible()&&this.hide(),ne.clearNode(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="2500",this.view.style.position=this.useFixedPosition?"fixed":"absolute",ne.show(this.view),this.toDisposeOnClean=e.render(this.view)||Me.JT.None,this.delegate=e,this.doLayout(),this.delegate.focus&&this.delegate.focus()}},{key:"getViewElement",value:function(){return this.view}},{key:"layout",value:function(){this.isVisible()&&(!1!==this.delegate.canRelayout||Oe.gn&&Jr.D.pointerEvents?(this.delegate.layout&&this.delegate.layout(),this.doLayout()):this.hide())}},{key:"doLayout",value:function(){if(this.isVisible()){var e,t=this.delegate.getAnchor();if(ne.isHTMLElement(t)){var n=ne.getDomNodePagePosition(t);e={top:n.top,left:n.left,width:n.width,height:n.height}}else e={top:t.y,left:t.x,width:t.width||1,height:t.height||2};var i,r,o=ne.getTotalWidth(this.view),a=ne.getTotalHeight(this.view),s=this.delegate.anchorPosition||0,u=this.delegate.anchorAlignment||0;if(0===(this.delegate.anchorAxisAlignment||0)){var l={offset:e.top-window.pageYOffset,size:e.height,position:0===s?0:1},c={offset:e.left,size:e.width,position:0===u?0:1,mode:Kr.ALIGN};i=eo(window.innerHeight,a,l)+window.pageYOffset,Xr.e.intersects({start:i,end:i+a},{start:l.offset,end:l.offset+l.size})&&(c.mode=Kr.AVOID),r=eo(window.innerWidth,o,c)}else{var d={offset:e.left,size:e.width,position:0===u?0:1},h={offset:e.top,size:e.height,position:0===s?0:1,mode:Kr.ALIGN};r=eo(window.innerWidth,o,d),Xr.e.intersects({start:r,end:r+o},{start:d.offset,end:d.offset+d.size})&&(h.mode=Kr.AVOID),i=eo(window.innerHeight,a,h)+window.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(0===s?"bottom":"top"),this.view.classList.add(0===u?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);var f=ne.getDomNodePagePosition(this.container);this.view.style.top="".concat(i-(this.useFixedPosition?ne.getDomNodePagePosition(this.view).top:f.top),"px"),this.view.style.left="".concat(r-(this.useFixedPosition?ne.getDomNodePagePosition(this.view).left:f.left),"px"),this.view.style.width="initial"}}},{key:"hide",value:function(e){var t=this.delegate;this.delegate=null,(null===t||void 0===t?void 0:t.onHide)&&t.onHide(e),this.toDisposeOnClean.dispose(),ne.hide(this.view)}},{key:"isVisible",value:function(){return!!this.delegate}},{key:"onDOMEvent",value:function(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):t&&!ne.isAncestor(e.target,this.container)&&this.hide())}},{key:"dispose",value:function(){this.hide(),(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}}]),n}(Me.JT);to.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],to.BUBBLE_DOWN_EVENTS=["click"];var no,io='\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t@font-face {\n\t\tfont-family: "codicon";\n\t\tsrc: url("./codicon.ttf?5d4d76ab2ce5108968ad644d591a16a6") format("truetype");\n\t}\n\n\t.codicon[class*=\'codicon-\'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; }\n\n\t:host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }\n',ro=n(4354),oo=n(84039),ao=n(22410),so=n(84539),uo=n(55076),lo=n(10939),co=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,ho=/(&amp;)?(&amp;)([^\s&])/g,fo=(0,ro.CM)("menu-selection",ro.lA.check),po=(0,ro.CM)("menu-submenu",ro.lA.chevronRight);!function(e){e[e.Right=0]="Right",e[e.Left=1]="Left"}(no||(no={}));var vo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,F.Z)(this,n),e.classList.add("monaco-menu-container"),e.setAttribute("role","presentation");var a=document.createElement("div");a.classList.add("monaco-menu"),a.setAttribute("role","presentation"),(r=t.call(this,a,{orientation:1,actionViewItemProvider:function(e){return r.doGetActionViewItem(e,o,s)},context:o.context,actionRunner:o.actionRunner,ariaLabel:o.ariaLabel,focusOnlyEnabledItems:!0,triggerKeys:{keys:[3].concat((0,J.Z)(Oe.dz||Oe.IJ?[10]:[])),keyDown:!0}})).menuElement=a,r.actionsList.setAttribute("role","menu"),r.actionsList.tabIndex=0,r.menuDisposables=r._register(new Me.SL),r.initializeStyleSheet(e),(0,ne.addDisposableListener)(a,ne.EventType.KEY_DOWN,(function(e){new cn.y(e).equals(2)&&e.preventDefault()})),o.enableMnemonics&&r.menuDisposables.add((0,ne.addDisposableListener)(a,ne.EventType.KEY_DOWN,(function(e){var t=e.key.toLocaleLowerCase();if(r.mnemonics.has(t)){ne.EventHelper.stop(e,!0);var n=r.mnemonics.get(t);if(1===n.length&&(n[0]instanceof mo&&n[0].container&&r.focusItemByElement(n[0].container),n[0].onClick(e)),n.length>1){var i=n.shift();i&&i.container&&(r.focusItemByElement(i.container),n.push(i)),r.mnemonics.set(t,n)}}}))),Oe.IJ&&r._register((0,ne.addDisposableListener)(a,ne.EventType.KEY_DOWN,(function(e){var t=new cn.y(e);t.equals(14)||t.equals(11)?(r.focusedItem=r.viewItems.length-1,r.focusNext(),ne.EventHelper.stop(e,!0)):(t.equals(13)||t.equals(12))&&(r.focusedItem=0,r.focusPrevious(),ne.EventHelper.stop(e,!0))}))),r._register((0,ne.addDisposableListener)(r.domNode,ne.EventType.MOUSE_OUT,(function(e){var t=e.relatedTarget;(0,ne.isAncestor)(t,r.domNode)||(r.focusedItem=void 0,r.updateFocus(),e.stopPropagation())}))),r._register((0,ne.addDisposableListener)(r.actionsList,ne.EventType.MOUSE_OVER,(function(e){var t=e.target;if(t&&(0,ne.isAncestor)(t,r.actionsList)&&t!==r.actionsList){for(;t.parentElement!==r.actionsList&&null!==t.parentElement;)t=t.parentElement;if(t.classList.contains("action-item")){var n=r.focusedItem;r.setFocusedItem(t),n!==r.focusedItem&&r.updateFocus()}}})));var s={parent:(0,Gr.Z)(r)};r.mnemonics=new Map,r.scrollableElement=r._register(new Qr.s$(a,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));var u=r.scrollableElement.getDomNode();return u.style.position="",r._register((0,ne.addDisposableListener)(u,ne.EventType.MOUSE_UP,(function(e){e.preventDefault()}))),a.style.maxHeight="".concat(Math.max(10,window.innerHeight-e.getBoundingClientRect().top-35),"px"),i=i.filter((function(e){var t;return!(null===(t=o.submenuIds)||void 0===t?void 0:t.has(e.id))||(console.warn("Found submenu cycle: ".concat(e.id)),!1)})),r.push(i,{icon:!0,label:!0,isMenu:!0}),e.appendChild(r.scrollableElement.getDomNode()),r.scrollableElement.scanDomNode(),r.viewItems.filter((function(e){return!(e instanceof _o)})).forEach((function(e,t,n){e.updatePositionInSet(t+1,n.length)})),r}return(0,j.Z)(n,[{key:"initializeStyleSheet",value:function(e){(0,ne.isInShadowDOM)(e)?(this.styleSheet=(0,ne.createStyleSheet)(e),this.styleSheet.textContent=yo):(n.globalStyleSheet||(n.globalStyleSheet=(0,ne.createStyleSheet)(),n.globalStyleSheet.textContent=yo),this.styleSheet=n.globalStyleSheet)}},{key:"style",value:function(e){var t=this.getContainer(),n=e.foregroundColor?"".concat(e.foregroundColor):"",i=e.backgroundColor?"".concat(e.backgroundColor):"",r=e.borderColor?"1px solid ".concat(e.borderColor):"",o=e.shadowColor?"0 2px 4px ".concat(e.shadowColor):"";t.style.border=r,this.domNode.style.color=n,this.domNode.style.backgroundColor=i,t.style.boxShadow=o,this.viewItems&&this.viewItems.forEach((function(t){(t instanceof go||t instanceof _o)&&t.style(e)}))}},{key:"getContainer",value:function(){return this.scrollableElement.getDomNode()}},{key:"onScroll",get:function(){return this.scrollableElement.onScroll}},{key:"focusItemByElement",value:function(e){var t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}},{key:"setFocusedItem",value:function(e){for(var t=0;t<this.actionsList.children.length;t++){if(e===this.actionsList.children[t]){this.focusedItem=t;break}}}},{key:"updateFocus",value:function(e){(0,Ee.Z)((0,Ne.Z)(n.prototype),"updateFocus",this).call(this,e,!0),"undefined"!==typeof this.focusedItem&&this.scrollableElement.setScrollPosition({scrollTop:Math.round(this.menuElement.scrollTop)})}},{key:"doGetActionViewItem",value:function(e,t,n){if(e instanceof qr.Z0)return new _o(t.context,e,{icon:!0});if(e instanceof qr.wY){var i=new mo(e,e.actions,n,Object.assign(Object.assign({},t),{submenuIds:new Set([].concat((0,J.Z)(t.submenuIds||[]),[e.id]))}));if(t.enableMnemonics){var r=i.getMnemonic();if(r&&i.isEnabled()){var o=[];this.mnemonics.has(r)&&(o=this.mnemonics.get(r)),o.push(i),this.mnemonics.set(r,o)}}return i}var a={enableMnemonics:t.enableMnemonics,useEventAsContext:t.useEventAsContext};if(t.getKeyBinding){var s=t.getKeyBinding(e);if(s){var u=s.getLabel();u&&(a.keybinding=u)}}var l=new go(t.context,e,a);if(t.enableMnemonics){var c=l.getMnemonic();if(c&&l.isEnabled()){var d=[];this.mnemonics.has(c)&&(d=this.mnemonics.get(c)),d.push(l),this.mnemonics.set(c,d)}}return l}}]),n}($r.o),go=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,F.Z)(this,n),o.isMenu=!0,(r=t.call(this,i,i,o)).options=o,r.options.icon=void 0!==o.icon&&o.icon,r.options.label=void 0===o.label||o.label,r.cssClass="",r.options.label&&o.enableMnemonics){var a=r.getAction().label;if(a){var s=co.exec(a);s&&(r.mnemonic=(s[1]?s[1]:s[3]).toLocaleLowerCase())}}return r.runOnceToEnableMouseUp=new De.pY((function(){r.element&&(r._register((0,ne.addDisposableListener)(r.element,ne.EventType.MOUSE_UP,(function(e){if(ne.EventHelper.stop(e,!0),so.vU){if(new uo.n(e).rightButton)return;r.onClick(e)}else setTimeout((function(){r.onClick(e)}),0)}))),r._register((0,ne.addDisposableListener)(r.element,ne.EventType.CONTEXT_MENU,(function(e){ne.EventHelper.stop(e,!0)}))))}),100),r._register(r.runOnceToEnableMouseUp),r}return(0,j.Z)(n,[{key:"render",value:function(e){(0,Ee.Z)((0,Ne.Z)(n.prototype),"render",this).call(this,e),this.element&&(this.container=e,this.item=(0,ne.append)(this.element,(0,ne.$)("a.action-menu-item")),this._action.id===qr.Z0.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts","".concat(this.mnemonic))),this.check=(0,ne.append)(this.item,(0,ne.$)("span.menu-item-check"+fo.cssSelector)),this.check.setAttribute("role","none"),this.label=(0,ne.append)(this.item,(0,ne.$)("span.action-label")),this.options.label&&this.options.keybinding&&((0,ne.append)(this.item,(0,ne.$)("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked())}},{key:"blur",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"blur",this).call(this),this.applyStyle()}},{key:"focus",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"focus",this).call(this),this.item&&this.item.focus(),this.applyStyle()}},{key:"updatePositionInSet",value:function(e,t){this.item&&(this.item.setAttribute("aria-posinset","".concat(e)),this.item.setAttribute("aria-setsize","".concat(t)))}},{key:"updateLabel",value:function(){if(this.label&&this.options.label){(0,ne.clearNode)(this.label);var e=(0,lo.x$)(this.getAction().label);if(e){var t=function(e){var t=co,n=t.exec(e);if(!n)return e;var i=!n[1];return e.replace(t,i?"$2$3":"").trim()}(e);this.options.enableMnemonics||(e=t),this.label.setAttribute("aria-label",t.replace(/&&/g,"&"));var n=co.exec(e);if(n){e=Ue.YU(e),ho.lastIndex=0;for(var i=ho.exec(e);i&&i[1];)i=ho.exec(e);var r=function(e){return e.replace(/&amp;&amp;/g,"&amp;")};i?this.label.append(Ue.j3(r(e.substr(0,i.index))," "),(0,ne.$)("u",{"aria-hidden":"true"},i[3]),Ue.oL(r(e.substr(i.index+i[0].length))," ")):this.label.innerText=r(e).trim(),this.item&&this.item.setAttribute("aria-keyshortcuts",(n[1]?n[1]:n[3]).toLocaleLowerCase())}else this.label.innerText=e.replace(/&&/g,"&").trim()}}}},{key:"updateTooltip",value:function(){var e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=kn.N({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),e&&this.item&&(this.item.title=e)}},{key:"updateClass",value:function(){var e;this.cssClass&&this.item&&(e=this.item.classList).remove.apply(e,(0,J.Z)(this.cssClass.split(" ")));if(this.options.icon&&this.label){var t;if(this.cssClass=this.getAction().class||"",this.label.classList.add("icon"),this.cssClass)(t=this.label.classList).add.apply(t,(0,J.Z)(this.cssClass.split(" ")));this.updateEnabled()}else this.label&&this.label.classList.remove("icon")}},{key:"updateEnabled",value:function(){this.getAction().enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}},{key:"updateChecked",value:function(){this.item&&(this.getAction().checked?(this.item.classList.add("checked"),this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked","true")):(this.item.classList.remove("checked"),this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked","false")))}},{key:"getMnemonic",value:function(){return this.mnemonic}},{key:"applyStyle",value:function(){if(this.menuStyle){var e=this.element&&this.element.classList.contains("focused"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,n=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,i=e&&this.menuStyle.selectionBorderColor?"thin solid ".concat(this.menuStyle.selectionBorderColor):"";this.item&&(this.item.style.color=t?t.toString():"",this.item.style.backgroundColor=n?n.toString():""),this.check&&(this.check.style.color=t?t.toString():""),this.container&&(this.container.style.border=i)}}},{key:"style",value:function(e){this.menuStyle=e,this.applyStyle()}}]),n}(oo.Y),mo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o){var a;return(0,F.Z)(this,n),(a=t.call(this,e,e,o)).submenuActions=i,a.parentData=r,a.submenuOptions=o,a.mysubmenu=null,a.submenuDisposables=a._register(new Me.SL),a.mouseOver=!1,a.expandDirection=o&&void 0!==o.expandDirection?o.expandDirection:no.Right,a.showScheduler=new De.pY((function(){a.mouseOver&&(a.cleanupExistingSubmenu(!1),a.createSubmenu(!1))}),250),a.hideScheduler=new De.pY((function(){a.element&&!(0,ne.isAncestor)((0,ne.getActiveElement)(),a.element)&&a.parentData.submenu===a.mysubmenu&&(a.parentData.parent.focus(!1),a.cleanupExistingSubmenu(!0))}),750),a}return(0,j.Z)(n,[{key:"render",value:function(e){var t=this;(0,Ee.Z)((0,Ne.Z)(n.prototype),"render",this).call(this,e),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=(0,ne.append)(this.item,(0,ne.$)("span.submenu-indicator"+po.cssSelector)),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.KEY_UP,(function(e){var n=new cn.y(e);(n.equals(17)||n.equals(3))&&(ne.EventHelper.stop(e,!0),t.createSubmenu(!0))}))),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.KEY_DOWN,(function(e){var n=new cn.y(e);(0,ne.getActiveElement)()===t.item&&(n.equals(17)||n.equals(3))&&ne.EventHelper.stop(e,!0)}))),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.MOUSE_OVER,(function(e){t.mouseOver||(t.mouseOver=!0,t.showScheduler.schedule())}))),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.MOUSE_LEAVE,(function(e){t.mouseOver=!1}))),this._register((0,ne.addDisposableListener)(this.element,ne.EventType.FOCUS_OUT,(function(e){t.element&&!(0,ne.isAncestor)((0,ne.getActiveElement)(),t.element)&&t.hideScheduler.schedule()}))),this._register(this.parentData.parent.onScroll((function(){t.parentData.parent.focus(!1),t.cleanupExistingSubmenu(!1)}))))}},{key:"updateEnabled",value:function(){}},{key:"onClick",value:function(e){ne.EventHelper.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}},{key:"cleanupExistingSubmenu",value:function(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch(Ze){}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}},{key:"calculateSubmenuMenuLayout",value:function(e,t,n,i){var r={top:0,left:0};return r.left=eo(e.width,t.width,{position:i===no.Right?0:1,offset:n.left,size:n.width}),r.left>=n.left&&r.left<n.left+n.width&&(n.left+10+t.width<=e.width&&(r.left=n.left+10),n.top+=10,n.height=0),r.top=eo(e.height,t.height,{position:0,offset:n.top,size:0}),r.top+t.height===n.top&&r.top+n.height+t.height<=e.height&&(r.top+=n.height),r}},{key:"createSubmenu",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(this.element)if(this.parentData.submenu)this.parentData.submenu.focus(!1);else{this.updateAriaExpanded("true"),this.submenuContainer=(0,ne.append)(this.element,(0,ne.$)("div.monaco-submenu")),this.submenuContainer.classList.add("menubar-menu-items-holder","context-view");var n=getComputedStyle(this.parentData.parent.domNode),i=parseFloat(n.paddingTop||"0")||0;this.submenuContainer.style.zIndex="1",this.submenuContainer.style.position="fixed",this.submenuContainer.style.top="0",this.submenuContainer.style.left="0",this.parentData.submenu=new vo(this.submenuContainer,this.submenuActions.length?this.submenuActions:[new qr.eZ],this.submenuOptions),this.menuStyle&&this.parentData.submenu.style(this.menuStyle);var r=this.element.getBoundingClientRect(),o={top:r.top-i,left:r.left,height:r.height+2*i,width:r.width},a=this.submenuContainer.getBoundingClientRect(),s=this.calculateSubmenuMenuLayout(new ne.Dimension(window.innerWidth,window.innerHeight),ne.Dimension.lift(a),o,this.expandDirection),u=s.top,l=s.left;this.submenuContainer.style.left="".concat(l,"px"),this.submenuContainer.style.top="".concat(u,"px"),this.submenuDisposables.add((0,ne.addDisposableListener)(this.submenuContainer,ne.EventType.KEY_UP,(function(t){new cn.y(t).equals(15)&&(ne.EventHelper.stop(t,!0),e.parentData.parent.focus(),e.cleanupExistingSubmenu(!0))}))),this.submenuDisposables.add((0,ne.addDisposableListener)(this.submenuContainer,ne.EventType.KEY_DOWN,(function(e){new cn.y(e).equals(15)&&ne.EventHelper.stop(e,!0)}))),this.submenuDisposables.add(this.parentData.submenu.onDidCancel((function(){e.parentData.parent.focus(),e.cleanupExistingSubmenu(!0)}))),this.parentData.submenu.focus(t),this.mysubmenu=this.parentData.submenu}}},{key:"updateAriaExpanded",value:function(e){var t;this.item&&(null===(t=this.item)||void 0===t||t.setAttribute("aria-expanded",e))}},{key:"applyStyle",value:function(){if((0,Ee.Z)((0,Ne.Z)(n.prototype),"applyStyle",this).call(this),this.menuStyle){var e=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=e?"".concat(e):""),this.parentData.submenu&&this.parentData.submenu.style(this.menuStyle)}}},{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}]),n}(go),_o=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){return(0,F.Z)(this,n),t.apply(this,arguments)}return(0,j.Z)(n,[{key:"style",value:function(e){this.label&&(this.label.style.borderBottomColor=e.separatorColor?"".concat(e.separatorColor):"")}}]),n}(oo.g);var yo="\n.monaco-menu {\n\tfont-size: 13px;\n\n}\n\n".concat((0,ao.a)(fo),"\n").concat((0,ao.a)(po),"\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar.animated .action-item.active {\n\ttransform: scale(1.272019649, 1.272019649); /* 1.272019649 = \u221a\u03c6 */\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\topacity: 0.4;\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid #bbb;\n\tpadding-top: 1px;\n\tmargin-left: .8em;\n\tmargin-right: .8em;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tpadding: 0.5em 0 0 0;\n\tmargin-bottom: 0.5em;\n\twidth: 100%;\n\theight: 0px !important;\n\tmargin-left: .8em !important;\n\tmargin-right: .8em !important;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n\t-webkit-app-region: no-drag;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tborder: thin solid transparent; /* prevents jumping behaviour on hover or focus */\n}\n\n\n/* High Contrast Theming */\n:host-context(.hc-black) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: .5em 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 1.8em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tpadding: 0.2em 0 0 0;\n\tmargin-bottom: 0.2em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}\n\n/* Arrows */\n.monaco-scrollable-element > .scrollbar > .scra {\n\tcursor: pointer;\n\tfont-size: 11px !important;\n}\n\n.monaco-scrollable-element > .visible {\n\topacity: 1;\n\n\t/* Background rule added for IE9 - to allow clicks on dom node */\n\tbackground:rgba(0,0,0,0);\n\n\ttransition: opacity 100ms linear;\n}\n.monaco-scrollable-element > .invisible {\n\topacity: 0;\n\tpointer-events: none;\n}\n.monaco-scrollable-element > .invisible.fade {\n\ttransition: opacity 800ms linear;\n}\n\n/* Scrollable Content Inset Shadow */\n.monaco-scrollable-element > .shadow {\n\tposition: absolute;\n\tdisplay: none;\n}\n.monaco-scrollable-element > .shadow.top {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 3px;\n\theight: 3px;\n\twidth: 100%;\n\tbox-shadow: #DDD 0 6px 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.left {\n\tdisplay: block;\n\ttop: 3px;\n\tleft: 0;\n\theight: 100%;\n\twidth: 3px;\n\tbox-shadow: #DDD 6px 0 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.top-left-corner {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 0;\n\theight: 3px;\n\twidth: 3px;\n}\n.monaco-scrollable-element > .shadow.top.left {\n\tbox-shadow: #DDD 6px 6px 6px -6px inset;\n}\n\n/* ---------- Default Style ---------- */\n\n:host-context(.vs) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(100, 100, 100, .4);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(121, 121, 121, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(111, 195, 223, .6);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(100, 100, 100, .7);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(111, 195, 223, .8);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(0, 0, 0, .6);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(191, 191, 191, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(111, 195, 223, 1);\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: #000 6px 0 6px -6px inset;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: #000 6px 6px 6px -6px inset;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: none;\n}\n"),bo=n(35215),wo=n(61680),Co=function(){function e(t,n,i,r,o){(0,F.Z)(this,e),this.contextViewService=t,this.telemetryService=n,this.notificationService=i,this.keybindingService=r,this.themeService=o,this.focusToReturn=null,this.block=null,this.options={blockMouse:!0}}return(0,j.Z)(e,[{key:"configure",value:function(e){this.options=e}},{key:"showContextMenu",value:function(e){var t=this,n=e.getActions();if(n.length){var i;this.focusToReturn=document.activeElement;var r=(0,ne.isHTMLElement)(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:function(){return e.getAnchor()},canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:function(r){var o=e.getMenuClassName?e.getMenuClassName():"";o&&(r.className+=" "+o),t.options.blockMouse&&(t.block=r.appendChild((0,ne.$)(".context-view-block")),t.block.style.position="fixed",t.block.style.cursor="initial",t.block.style.left="0",t.block.style.top="0",t.block.style.width="100%",t.block.style.height="100%",t.block.style.zIndex="-1",(0,wo.jt)(t.block,ne.EventType.MOUSE_DOWN)((function(e){return e.stopPropagation()})));var a=new Me.SL,s=e.actionRunner||new qr.Wi;return s.onBeforeRun(t.onActionRun,t,a),s.onDidRun(t.onDidActionRun,t,a),i=new vo(r,n,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:s,getKeyBinding:e.getKeyBinding?e.getKeyBinding:function(e){return t.keybindingService.lookupKeybinding(e.id)}}),a.add((0,bo.tj)(i,t.themeService)),i.onDidCancel((function(){return t.contextViewService.hideContextView(!0)}),null,a),i.onDidBlur((function(){return t.contextViewService.hideContextView(!0)}),null,a),(0,wo.jt)(window,ne.EventType.BLUR)((function(){t.contextViewService.hideContextView(!0)}),null,a),(0,wo.jt)(window,ne.EventType.MOUSE_DOWN)((function(e){if(!e.defaultPrevented){var n=new uo.n(e),i=n.target;if(!n.rightButton){for(;i;){if(i===r)return;i=i.parentElement}t.contextViewService.hideContextView(!0)}}}),null,a),(0,Me.F8)(a,i)},focus:function(){i&&i.focus(!!e.autoSelectFirstItem)},onHide:function(n){e.onHide&&e.onHide(!!n),t.block&&(t.block.remove(),t.block=null),t.focusToReturn&&t.focusToReturn.focus()}},r,!!r)}}},{key:"onActionRun",value:function(e){this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1),this.focusToReturn&&this.focusToReturn.focus()}},{key:"onDidActionRun",value:function(e){e.error&&!(0,Te.VV)(e.error)&&this.notificationService.error(e.error)}}]),e}(),ko=n(45014),So=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},xo=function(e,t){return function(n,i){t(n,i,e)}},Lo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a){var s;return(0,F.Z)(this,n),(s=t.call(this)).contextMenuHandler=new Co(r,e,i,o,a),s}return(0,j.Z)(n,[{key:"configure",value:function(e){this.contextMenuHandler.configure(e)}},{key:"showContextMenu",value:function(e){this.contextMenuHandler.showContextMenu(e),ne.ModifierKeyEmitter.getInstance().resetKeyStatus()}}]),n}(Me.JT);Lo=So([xo(0,ko.b),xo(1,An.lT),xo(2,ci.u),xo(3,hi.d),xo(4,fi.XE)],Lo);var Eo=(0,di.yh)("layoutService"),No=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Do=function(e,t){return function(n,i){t(n,i,e)}},Mo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).layoutService=e,i.currentViewDisposable=Me.JT.None,i.container=e.container,i.contextView=i._register(new to(i.container,1)),i.layout(),i._register(e.onDidLayout((function(){return i.layout()}))),i}return(0,j.Z)(n,[{key:"setContainer",value:function(e,t){this.contextView.setContainer(e,t||1)}},{key:"showContextView",value:function(e,t,n){var i=this;t?t!==this.container&&(this.container=t,this.setContainer(t,n?3:2)):this.container!==this.layoutService.container&&(this.container=this.layoutService.container,this.setContainer(this.container,1)),this.contextView.show(e);var r=(0,Me.OF)((function(){i.currentViewDisposable===r&&i.hideContextView()}));return this.currentViewDisposable=r,r}},{key:"getContextViewElement",value:function(){return this.contextView.getViewElement()}},{key:"layout",value:function(){this.contextView.layout()}},{key:"hideContextView",value:function(e){this.contextView.hide(e)}}]),n}(Me.JT);Mo=No([Do(0,Eo)],Mo);var To=n(34782),Oo=n(5647),Io=n(28664),Ao=(0,j.Z)((function e(t){(0,F.Z)(this,e),this.incoming=new Map,this.outgoing=new Map,this.data=t})),Po=function(){function e(t){(0,F.Z)(this,e),this._hashFn=t,this._nodes=new Map}return(0,j.Z)(e,[{key:"roots",value:function(){var e,t=[],n=(0,X.Z)(this._nodes.values());try{for(n.s();!(e=n.n()).done;){var i=e.value;0===i.outgoing.size&&t.push(i)}}catch(r){n.e(r)}finally{n.f()}return t}},{key:"insertEdge",value:function(e,t){var n=this.lookupOrInsertNode(e),i=this.lookupOrInsertNode(t);n.outgoing.set(this._hashFn(t),i),i.incoming.set(this._hashFn(e),n)}},{key:"removeNode",value:function(e){var t=this._hashFn(e);this._nodes.delete(t);var n,i=(0,X.Z)(this._nodes.values());try{for(i.s();!(n=i.n()).done;){var r=n.value;r.outgoing.delete(t),r.incoming.delete(t)}}catch(o){i.e(o)}finally{i.f()}}},{key:"lookupOrInsertNode",value:function(e){var t=this._hashFn(e),n=this._nodes.get(t);return n||(n=new Ao(e),this._nodes.set(t,n)),n}},{key:"isEmpty",value:function(){return 0===this._nodes.size}},{key:"toString",value:function(){var e,t=[],n=(0,X.Z)(this._nodes);try{for(n.s();!(e=n.n()).done;){var i=(0,at.Z)(e.value,2),r=i[0],o=i[1];t.push("".concat(r,", (incoming)[").concat((0,J.Z)(o.incoming.keys()).join(", "),"], (outgoing)[").concat((0,J.Z)(o.outgoing.keys()).join(","),"]"))}}catch(a){n.e(a)}finally{n.f()}return t.join("\n")}},{key:"findCycleSlow",value:function(){var e,t=(0,X.Z)(this._nodes);try{for(t.s();!(e=t.n()).done;){var n=(0,at.Z)(e.value,2),i=n[0],r=n[1],o=new Set([i]),a=this._findCycle(r,o);if(a)return a}}catch(s){t.e(s)}finally{t.f()}}},{key:"_findCycle",value:function(e,t){var n,i=(0,X.Z)(e.outgoing);try{for(i.s();!(n=i.n()).done;){var r=(0,at.Z)(n.value,2),o=r[0],a=r[1];if(t.has(o))return[].concat((0,J.Z)(t),[o]).join(" -> ");t.add(o);var s=this._findCycle(a,t);if(s)return s;t.delete(o)}}catch(u){i.e(u)}finally{i.f()}}}]),e}(),Ro=n(52144),Zo=n(41001),Fo=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i,r;return(0,F.Z)(this,n),(i=t.call(this,"cyclic dependency between services")).message=null!==(r=e.findCycleSlow())&&void 0!==r?r:"UNABLE to detect cycle, dumping graph: \n".concat(e.toString()),i}return(0,j.Z)(n)}((0,Io.Z)(Error)),jo=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Zo.y,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2?arguments[2]:void 0;(0,F.Z)(this,e),this._activeInstantiations=new Set,this._services=t,this._strict=n,this._parent=i,this._services.set(di.TG,this)}return(0,j.Z)(e,[{key:"createChild",value:function(t){return new e(t,this._strict,this)}},{key:"invokeFunction",value:function(e){var t=this,n=Ho.traceInvocation(e),i=!1;try{for(var r={get:function(e,r){if(i)throw(0,Te.L6)("service accessor is only valid during the invocation of its target method");var o=t._getOrCreateServiceInstance(e,n);if(!o&&r!==di.jt)throw new Error("[invokeFunction] unknown service '".concat(e,"'"));return o}},o=arguments.length,a=new Array(o>1?o-1:0),s=1;s<o;s++)a[s-1]=arguments[s];return e.apply(void 0,[r].concat(a))}finally{i=!0,n.stop()}}},{key:"createInstance",value:function(e){for(var t,n,i=arguments.length,r=new Array(i>1?i-1:0),o=1;o<i;o++)r[o-1]=arguments[o];return e instanceof Ro.M?(t=Ho.traceCreation(e.ctor),n=this._createInstance(e.ctor,e.staticArguments.concat(r),t)):(t=Ho.traceCreation(e),n=this._createInstance(e,r,t)),t.stop(),n}},{key:"_createInstance",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,r=di.I8.getServiceDependencies(e).sort((function(e,t){return e.index-t.index})),o=[],a=(0,X.Z)(r);try{for(a.s();!(t=a.n()).done;){var s=t.value,u=this._getOrCreateServiceInstance(s.id,i);if(!u&&this._strict&&!s.optional)throw new Error("[createInstance] ".concat(e.name," depends on UNKNOWN service ").concat(s.id,"."));o.push(u)}}catch(d){a.e(d)}finally{a.f()}var l=r.length>0?r[0].index:n.length;if(n.length!==l){console.warn("[createInstance] First service dependency of ".concat(e.name," at position ").concat(l+1," conflicts with ").concat(n.length," static arguments"));var c=l-n.length;n=c>0?n.concat(new Array(c)):n.slice(0,l)}return(0,Oo.Z)(e,[].concat((0,J.Z)(n),o))}},{key:"_setServiceInstance",value:function(e,t){if(this._services.get(e)instanceof Ro.M)this._services.set(e,t);else{if(!this._parent)throw new Error("illegalState - setting UNKNOWN service instance");this._parent._setServiceInstance(e,t)}}},{key:"_getServiceInstanceOrDescriptor",value:function(e){var t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}},{key:"_getOrCreateServiceInstance",value:function(e,t){var n=this._getServiceInstanceOrDescriptor(e);return n instanceof Ro.M?this._safeCreateAndCacheServiceInstance(e,n,t.branch(e,!0)):(t.branch(e,!1),n)}},{key:"_safeCreateAndCacheServiceInstance",value:function(e,t,n){if(this._activeInstantiations.has(e))throw new Error("illegal state - RECURSIVELY instantiating service '".concat(e,"'"));this._activeInstantiations.add(e);try{return this._createAndCacheServiceInstance(e,t,n)}finally{this._activeInstantiations.delete(e)}}},{key:"_createAndCacheServiceInstance",value:function(e,t,n){for(var i=new Po((function(e){return e.id.toString()})),r=0,o=[{id:e,desc:t,_trace:n}];o.length;){var a=o.pop();if(i.lookupOrInsertNode(a),r++>1e3)throw new Fo(i);var s,u=(0,X.Z)(di.I8.getServiceDependencies(a.desc.ctor));try{for(u.s();!(s=u.n()).done;){var l=s.value,c=this._getServiceInstanceOrDescriptor(l.id);if(c||l.optional||console.warn("[createInstance] ".concat(e," depends on ").concat(l.id," which is NOT registered.")),c instanceof Ro.M){var d={id:l.id,desc:c,_trace:a._trace.branch(l.id,!0)};i.insertEdge(a,d),o.push(d)}}}catch(m){u.e(m)}finally{u.f()}}for(;;){var h=i.roots();if(0===h.length){if(!i.isEmpty())throw new Fo(i);break}var f,p=(0,X.Z)(h);try{for(p.s();!(f=p.n()).done;){var v=f.value.data;if(this._getServiceInstanceOrDescriptor(v.id)instanceof Ro.M){var g=this._createServiceInstanceWithOwner(v.id,v.desc.ctor,v.desc.staticArguments,v.desc.supportsDelayedInstantiation,v._trace);this._setServiceInstance(v.id,g)}i.removeNode(v)}}catch(m){p.e(m)}finally{p.f()}}return this._getServiceInstanceOrDescriptor(e)}},{key:"_createServiceInstanceWithOwner",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;if(this._services.get(e)instanceof Ro.M)return this._createServiceInstance(t,n,i,r);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,n,i,r);throw new Error("illegalState - creating UNKNOWN service instance ".concat(t.name))}},{key:"_createServiceInstance",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>3?arguments[3]:void 0;if(arguments.length>2?arguments[2]:void 0){var r=new De.Ue((function(){return t._createInstance(e,n,i)}));return new Proxy(Object.create(null),{get:function(e,t){if(t in e)return e[t];var n=r.value,i=n[t];return"function"!==typeof i||(i=i.bind(n),e[t]=i),i},set:function(e,t,n){return r.value[t]=n,!0}})}return this._createInstance(e,n,i)}}]),e}(),Ho=function(){function e(t,n){(0,F.Z)(this,e),this.type=t,this.name=n,this._start=Date.now(),this._dep=[]}return(0,j.Z)(e,[{key:"branch",value:function(t,n){var i=new e(2,t.toString());return this._dep.push([t,n,i]),i}},{key:"stop",value:function(){var t=Date.now()-this._start;e._totals+=t;var n=!1;var i=["".concat(0===this.type?"CREATE":"CALL"," ").concat(this.name),"".concat(function e(t,i){var r,o=[],a=new Array(t+1).join("\t"),s=(0,X.Z)(i._dep);try{for(s.s();!(r=s.n()).done;){var u=(0,at.Z)(r.value,3),l=u[0],c=u[1],d=u[2];if(c&&d){n=!0,o.push("".concat(a,"CREATES -> ").concat(l));var h=e(t+1,d);h&&o.push(h)}else o.push("".concat(a,"uses -> ").concat(l))}}catch(f){s.e(f)}finally{s.f()}return o.join("\n")}(1,this)),"DONE, took ".concat(t.toFixed(2),"ms (grand total ").concat(e._totals.toFixed(2),"ms)")];(t>2||n)&&console.log(i.join("\n"))}}],[{key:"traceInvocation",value:function(t){return e._None}},{key:"traceCreation",value:function(t){return e._None}}]),e}();Ho._None=new(function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){return(0,F.Z)(this,n),t.call(this,-1,null)}return(0,j.Z)(n,[{key:"stop",value:function(){}},{key:"branch",value:function(){return this}}]),n}(Ho)),Ho._totals=0;var Bo=n(5399),zo=n(2285),Wo=n(95123),Vo=function(){function e(){(0,F.Z)(this,e),this._byResource=new re.Y9,this._byOwner=new Map}return(0,j.Z)(e,[{key:"set",value:function(e,t,n){var i=this._byResource.get(e);i||(i=new Map,this._byResource.set(e,i)),i.set(t,n);var r=this._byOwner.get(t);r||(r=new re.Y9,this._byOwner.set(t,r)),r.set(e,n)}},{key:"get",value:function(e,t){var n=this._byResource.get(e);return null===n||void 0===n?void 0:n.get(t)}},{key:"delete",value:function(e,t){var n=!1,i=!1,r=this._byResource.get(e);r&&(n=r.delete(t));var o=this._byOwner.get(t);if(o&&(i=o.delete(e)),n!==i)throw new Error("illegal state");return n&&i}},{key:"values",value:function(e){var t,n,i,r;return"string"===typeof e?null!==(n=null===(t=this._byOwner.get(e))||void 0===t?void 0:t.values())&&void 0!==n?n:Ir.$.empty():W.o.isUri(e)?null!==(r=null===(i=this._byResource.get(e))||void 0===i?void 0:i.values())&&void 0!==r?r:Ir.$.empty():Ir.$.map(Ir.$.concat.apply(Ir.$,(0,J.Z)(this._byOwner.values())),(function(e){return e[1]}))}}]),e}(),Yo=function(){function e(t){(0,F.Z)(this,e),this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new re.Y9,this._service=t,this._subscription=t.onMarkerChanged(this._update,this)}return(0,j.Z)(e,[{key:"dispose",value:function(){this._subscription.dispose()}},{key:"_update",value:function(e){var t,n=(0,X.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=this._data.get(i);r&&this._substract(r);var o=this._resourceStats(i);this._add(o),this._data.set(i,o)}}catch(a){n.e(a)}finally{n.f()}}},{key:"_resourceStats",value:function(e){var t={errors:0,warnings:0,infos:0,unknowns:0};if(e.scheme===ae.lg.inMemory||e.scheme===ae.lg.walkThrough||e.scheme===ae.lg.walkThroughSnippet)return t;var n,i=(0,X.Z)(this._service.read({resource:e}));try{for(i.s();!(n=i.n()).done;){var r=n.value.severity;r===Wo.ZL.Error?t.errors+=1:r===Wo.ZL.Warning?t.warnings+=1:r===Wo.ZL.Info?t.infos+=1:t.unknowns+=1}}catch(o){i.e(o)}finally{i.f()}return t}},{key:"_substract",value:function(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}},{key:"_add",value:function(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}]),e}(),Uo=function(){function e(){(0,F.Z)(this,e),this._onMarkerChanged=new B.Q5,this.onMarkerChanged=B.ju.debounce(this._onMarkerChanged.event,e._debouncer,0),this._data=new Vo,this._stats=new Yo(this)}return(0,j.Z)(e,[{key:"dispose",value:function(){this._stats.dispose(),this._onMarkerChanged.dispose()}},{key:"remove",value:function(e,t){var n,i=(0,X.Z)(t||[]);try{for(i.s();!(n=i.n()).done;){var r=n.value;this.changeOne(e,r,[])}}catch(o){i.e(o)}finally{i.f()}}},{key:"changeOne",value:function(t,n,i){if((0,wt.XY)(i)){this._data.delete(n,t)&&this._onMarkerChanged.fire([n])}else{var r,o=[],a=(0,X.Z)(i);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=e._toMarker(t,n,s);u&&o.push(u)}}catch(l){a.e(l)}finally{a.f()}this._data.set(n,t,o),this._onMarkerChanged.fire([n])}}},{key:"read",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Object.create(null),n=t.owner,i=t.resource,r=t.severities,o=t.take;if((!o||o<0)&&(o=-1),n&&i){var a=this._data.get(i,n);if(a){var s,u=[],l=(0,X.Z)(a);try{for(l.s();!(s=l.n()).done;){var c=s.value;if(e._accept(c,r)){var d=u.push(c);if(o>0&&d===o)break}}}catch(D){l.e(D)}finally{l.f()}return u}return[]}if(n||i){var h,f=this._data.values(null!==i&&void 0!==i?i:n),p=[],v=(0,X.Z)(f);try{for(v.s();!(h=v.n()).done;){var g,m=h.value,_=(0,X.Z)(m);try{for(_.s();!(g=_.n()).done;){var y=g.value;if(e._accept(y,r)){var b=p.push(y);if(o>0&&b===o)return p}}}catch(D){_.e(D)}finally{_.f()}}}catch(D){v.e(D)}finally{v.f()}return p}var w,C=[],k=(0,X.Z)(this._data.values());try{for(k.s();!(w=k.n()).done;){var S,x=w.value,L=(0,X.Z)(x);try{for(L.s();!(S=L.n()).done;){var E=S.value;if(e._accept(E,r)){var N=C.push(E);if(o>0&&N===o)return C}}}catch(D){L.e(D)}finally{L.f()}}}catch(D){k.e(D)}finally{k.f()}return C}}],[{key:"_toMarker",value:function(e,t,n){var i=n.code,r=n.severity,o=n.message,a=n.source,s=n.startLineNumber,u=n.startColumn,l=n.endLineNumber,c=n.endColumn,d=n.relatedInformation,h=n.tags;if(o)return{resource:t,owner:e,code:i,severity:r,message:o,source:a,startLineNumber:s=s>0?s:1,startColumn:u=u>0?u:1,endLineNumber:l=l>=s?l:s,endColumn:c=c>0?c:u,relatedInformation:d,tags:h}}},{key:"_accept",value:function(e,t){return void 0===t||(t&e.severity)===e.severity}},{key:"_debouncer",value:function(t,n){t||(e._dedupeMap=new re.Y9,t=[]);var i,r=(0,X.Z)(n);try{for(r.s();!(i=r.n()).done;){var o=i.value;e._dedupeMap.has(o)||(e._dedupeMap.set(o,!0),t.push(o))}}catch(a){r.e(a)}finally{r.f()}return t}}]),e}(),Ko=n(59319),qo=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Go=function(e,t){return function(n,i){t(n,i,e)}},$o=function(){function e(t){(0,F.Z)(this,e),this._commandService=t}return(0,j.Z)(e,[{key:"createMenu",value:function(e,t){return new Qo(e,arguments.length>2&&void 0!==arguments[2]&&arguments[2],this._commandService,t,this)}}]),e}();$o=qo([Go(0,ue.H)],$o);var Qo=function(){function e(t,n,i,r,o){var a=this;(0,F.Z)(this,e),this._id=t,this._fireEventsForSubmenuChanges=n,this._commandService=i,this._contextKeyService=r,this._menuService=o,this._dispoables=new Me.SL,this._onDidChange=new B.Q5,this.onDidChange=this._onDidChange.event,this._menuGroups=[],this._contextKeys=new Set,this._build();var s=new De.pY((function(){return a._build()}),50);this._dispoables.add(s),this._dispoables.add(ui.BH.onDidChangeMenu((function(e){e.has(t)&&s.schedule()})));var u=new De.pY((function(){return a._onDidChange.fire(a)}),50);this._dispoables.add(u),this._dispoables.add(r.onDidChangeContext((function(e){e.affectsSome(a._contextKeys)&&u.schedule()})))}return(0,j.Z)(e,[{key:"dispose",value:function(){this._dispoables.dispose(),this._onDidChange.dispose()}},{key:"_build",value:function(){this._menuGroups.length=0,this._contextKeys.clear();var t,n=ui.BH.getMenuItems(this._id);n.sort(e._compareMenuItems);var i,r=(0,X.Z)(n);try{for(r.s();!(i=r.n()).done;){var o=i.value,a=o.group||"";t&&t[0]===a||(t=[a,[]],this._menuGroups.push(t)),t[1].push(o),this._collectContextKeys(o)}}catch(s){r.e(s)}finally{r.f()}this._onDidChange.fire(this)}},{key:"_collectContextKeys",value:function(t){if(e._fillInKbExprKeys(t.when,this._contextKeys),(0,ui.vr)(t)){if(t.command.precondition&&e._fillInKbExprKeys(t.command.precondition,this._contextKeys),t.command.toggled){var n=t.command.toggled.condition||t.command.toggled;e._fillInKbExprKeys(n,this._contextKeys)}}else this._fireEventsForSubmenuChanges&&ui.BH.getMenuItems(t.submenu).forEach(this._collectContextKeys,this)}},{key:"getActions",value:function(e){var t,n=[],i=(0,X.Z)(this._menuGroups);try{for(i.s();!(t=i.n()).done;){var r,o=t.value,a=(0,at.Z)(o,2),s=a[0],u=a[1],l=[],c=(0,X.Z)(u);try{for(c.s();!(r=c.n()).done;){var d=r.value;if(this._contextKeyService.contextMatchesRules(d.when)){var h=(0,ui.vr)(d)?new ui.U8(d.command,d.alt,e,this._contextKeyService,this._commandService):new ui.NZ(d,this._menuService,this._contextKeyService,e);l.push(h)}}}catch(f){c.e(f)}finally{c.f()}l.length>0&&n.push([s,l])}}catch(f){i.e(f)}finally{i.f()}return n}}],[{key:"_fillInKbExprKeys",value:function(e,t){if(e){var n,i=(0,X.Z)(e.keys());try{for(i.s();!(n=i.n()).done;){var r=n.value;t.add(r)}}catch(o){i.e(o)}finally{i.f()}}}},{key:"_compareMenuItems",value:function(t,n){var i=t.group,r=n.group;if(i!==r){if(!i)return 1;if(!r)return-1;if("navigation"===i)return-1;if("navigation"===r)return 1;var o=i.localeCompare(r);if(0!==o)return o}var a=t.order||0,s=n.order||0;return a<s?-1:a>s?1:e._compareTitles((0,ui.vr)(t)?t.command.title:t.title,(0,ui.vr)(n)?n.command.title:n.title)}},{key:"_compareTitles",value:function(e,t){var n="string"===typeof e?e:e.original,i="string"===typeof t?t:t.original;return n.localeCompare(i)}}]),e}();Qo=qo([Go(2,ue.H),Go(3,li.i6),Go(4,ui.co)],Qo);var Xo=n(50816),Jo=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ea=function(e,t){return function(n,i){t(n,i,e)}};function ta(e){return e.toString()}var na=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).model=e,i._markersData=new Map,i._register((0,Me.OF)((function(){i.model.deltaDecorations((0,J.Z)(i._markersData.keys()),[]),i._markersData.clear()}))),i}return(0,j.Z)(n,[{key:"update",value:function(e,t){var n=(0,J.Z)(this._markersData.keys());this._markersData.clear();for(var i=this.model.deltaDecorations(n,t),r=0;r<i.length;r++)this._markersData.set(i[r],e[r]);return 0!==n.length||0!==i.length}},{key:"getMarker",value:function(e){return this._markersData.get(e.id)}}]),n}(Me.JT),ia=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this))._markerService=i,r._onDidChangeMarker=r._register(new B.Q5),r._markerDecorations=new Map,e.getModels().forEach((function(e){return r._onModelAdded(e)})),r._register(e.onModelAdded(r._onModelAdded,(0,Gr.Z)(r))),r._register(e.onModelRemoved(r._onModelRemoved,(0,Gr.Z)(r))),r._register(r._markerService.onMarkerChanged(r._handleMarkerChange,(0,Gr.Z)(r))),r}return(0,j.Z)(n,[{key:"dispose",value:function(){(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this),this._markerDecorations.forEach((function(e){return e.dispose()})),this._markerDecorations.clear()}},{key:"getMarker",value:function(e,t){var n=this._markerDecorations.get(ta(e));return n&&n.getMarker(t)||null}},{key:"_handleMarkerChange",value:function(e){var t=this;e.forEach((function(e){var n=t._markerDecorations.get(ta(e));n&&t._updateDecorations(n)}))}},{key:"_onModelAdded",value:function(e){var t=new na(e);this._markerDecorations.set(ta(e.uri),t),this._updateDecorations(t)}},{key:"_onModelRemoved",value:function(e){var t=this,n=this._markerDecorations.get(ta(e.uri));n&&(n.dispose(),this._markerDecorations.delete(ta(e.uri))),e.uri.scheme!==ae.lg.inMemory&&e.uri.scheme!==ae.lg.internal&&e.uri.scheme!==ae.lg.vscode||this._markerService&&this._markerService.read({resource:e.uri}).map((function(e){return e.owner})).forEach((function(n){return t._markerService.remove(n,[e.uri])}))}},{key:"_updateDecorations",value:function(e){var t=this,n=this._markerService.read({resource:e.model.uri,take:500}),i=n.map((function(n){return{range:t._createDecorationRange(e.model,n),options:t._createDecorationOption(n)}}));e.update(n,i)&&this._onDidChangeMarker.fire(e.model)}},{key:"_createDecorationRange",value:function(e,t){var n=Y.e.lift(t);if(t.severity!==Wo.ZL.Hint||this._hasMarkerTag(t,1)||this._hasMarkerTag(t,2)||(n=n.setEndPosition(n.startLineNumber,n.startColumn+2)),(n=e.validateRange(n)).isEmpty()){var i=e.getWordAtPosition(n.getStartPosition());if(i)n=new Y.e(n.startLineNumber,i.startColumn,n.endLineNumber,i.endColumn);else{var r=e.getLineLastNonWhitespaceColumn(n.startLineNumber)||e.getLineMaxColumn(n.startLineNumber);1===r||(n=n.endColumn>=r?new Y.e(n.startLineNumber,r-1,n.endLineNumber,r):new Y.e(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn+1))}}else if(t.endColumn===Number.MAX_VALUE&&1===t.startColumn&&n.startLineNumber===n.endLineNumber){var o=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);o<n.endColumn&&(n=new Y.e(n.startLineNumber,o,n.endLineNumber,n.endColumn),t.startColumn=o)}return n}},{key:"_createDecorationOption",value:function(e){var t,n,i,r=void 0,o=void 0;switch(e.severity){case Wo.ZL.Hint:t=this._hasMarkerTag(e,2)?void 0:this._hasMarkerTag(e,1)?"squiggly-unnecessary":"squiggly-hint",n=0;break;case Wo.ZL.Warning:t="squiggly-warning",r=(0,fi.EN)(gr.Re),n=20,i={color:(0,fi.EN)(mr.Iv),position:ye.F5.Inline};break;case Wo.ZL.Info:t="squiggly-info",r=(0,fi.EN)(gr.eS),n=10;break;case Wo.ZL.Error:default:t="squiggly-error",r=(0,fi.EN)(gr.lK),n=30,i={color:(0,fi.EN)(mr.Gj),position:ye.F5.Inline}}return e.tags&&(-1!==e.tags.indexOf(1)&&(o="squiggly-inline-unnecessary"),-1!==e.tags.indexOf(2)&&(o="squiggly-inline-deprecated")),{stickiness:1,className:t,showIfCollapsed:!0,overviewRuler:{color:r,position:ye.sh.Right},minimap:i,zIndex:n,inlineClassName:o}}},{key:"_hasMarkerTag",value:function(e,t){return!!e.tags&&e.tags.indexOf(t)>=0}}]),n}(Me.JT);ia=Jo([ea(0,yt.q),ea(1,Wo.lT)],ia);var ra=n(77863),oa=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},aa=function(e,t){return function(n,i){t(n,i,e)}},sa=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;(0,F.Z)(this,n),(r=t.call(this))._contextKeyService=e,r._configurationService=i,r._accessibilitySupport=0,r._onDidChangeScreenReaderOptimized=new B.Q5,r._accessibilityModeEnabledContext=pi.U.bindTo(r._contextKeyService);var o=function(){return r._accessibilityModeEnabledContext.set(r.isScreenReaderOptimized())};return r._register(r._configurationService.onDidChangeConfiguration((function(e){e.affectsConfiguration("editor.accessibilitySupport")&&(o(),r._onDidChangeScreenReaderOptimized.fire())}))),o(),r.onDidChangeScreenReaderOptimized((function(){return o()})),r}return(0,j.Z)(n,[{key:"onDidChangeScreenReaderOptimized",get:function(){return this._onDidChangeScreenReaderOptimized.event}},{key:"isScreenReaderOptimized",value:function(){var e=this._configurationService.getValue("editor.accessibilitySupport");return"on"===e||"auto"===e&&2===this._accessibilitySupport}},{key:"getAccessibilitySupport",value:function(){return this._accessibilitySupport}}]),n}(Me.JT);sa=oa([aa(0,li.i6),aa(1,gn.Ui)],sa);var ua=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},la=function(){function e(){(0,F.Z)(this,e),this.mapTextToType=new Map,this.findText=""}return(0,j.Z)(e,[{key:"writeText",value:function(e,t){return ua(this,void 0,void 0,te().mark((function n(){var i,r;return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!t){n.next=3;break}return this.mapTextToType.set(t,e),n.abrupt("return");case 3:return n.prev=3,n.next=6,navigator.clipboard.writeText(e);case 6:return n.abrupt("return",n.sent);case 9:n.prev=9,n.t0=n.catch(3),console.error(n.t0);case 12:return i=document.activeElement,(r=document.body.appendChild((0,ne.$)("textarea",{"aria-hidden":!0}))).style.height="1px",r.style.width="1px",r.style.position="absolute",r.value=e,r.focus(),r.select(),document.execCommand("copy"),i instanceof HTMLElement&&i.focus(),document.body.removeChild(r),n.abrupt("return");case 24:case"end":return n.stop()}}),n,this,[[3,9]])})))}},{key:"readText",value:function(e){return ua(this,void 0,void 0,te().mark((function t(){return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e){t.next=2;break}return t.abrupt("return",this.mapTextToType.get(e)||"");case 2:return t.prev=2,t.next=5,navigator.clipboard.readText();case 5:return t.abrupt("return",t.sent);case 8:return t.prev=8,t.t0=t.catch(2),console.error(t.t0),t.abrupt("return","");case 12:case"end":return t.stop()}}),t,this,[[2,8]])})))}},{key:"readFindText",value:function(){return ua(this,void 0,void 0,te().mark((function e(){return te().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.findText);case 1:case"end":return e.stop()}}),e,this)})))}},{key:"writeFindText",value:function(e){return ua(this,void 0,void 0,te().mark((function t(){return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this.findText=e;case 1:case"end":return t.stop()}}),t,this)})))}}]),e}(),ca=n(45822),da=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ha=function(e,t){return function(n,i){t(n,i,e)}},fa=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},pa=!1;function va(e){return e.scheme===ae.lg.file?e.fsPath:e.path}var ga=0,ma=function(){function e(t,n,i,r,o,a,s){(0,F.Z)(this,e),this.id=++ga,this.type=0,this.actual=t,this.label=t.label,this.confirmBeforeUndo=t.confirmBeforeUndo||!1,this.resourceLabel=n,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=r,this.groupOrder=o,this.sourceId=a,this.sourceOrder=s,this.isValid=!0}return(0,j.Z)(e,[{key:"setValid",value:function(e){this.isValid=e}},{key:"toString",value:function(){return"[id:".concat(this.id,"] [group:").concat(this.groupId,"] [").concat(this.isValid?" VALID":"INVALID","] ").concat(this.actual.constructor.name," - ").concat(this.actual)}}]),e}(),_a=(0,j.Z)((function e(t,n){(0,F.Z)(this,e),this.resourceLabel=t,this.reason=n})),ya=function(){function e(){(0,F.Z)(this,e),this.elements=new Map}return(0,j.Z)(e,[{key:"createMessage",value:function(){var e,t=[],n=[],i=(0,X.Z)(this.elements);try{for(i.s();!(e=i.n()).done;){var r=(0,at.Z)(e.value,2)[1];(0===r.reason?t:n).push(r.resourceLabel)}}catch(a){i.e(a)}finally{i.f()}var o=[];return t.length>0&&o.push(kn.N({key:"externalRemoval",comment:["{0} is a list of filenames"]},"The following files have been closed and modified on disk: {0}.",t.join(", "))),n.length>0&&o.push(kn.N({key:"noParallelUniverses",comment:["{0} is a list of filenames"]},"The following files have been modified in an incompatible way: {0}.",n.join(", "))),o.join("\n")}},{key:"size",get:function(){return this.elements.size}},{key:"has",value:function(e){return this.elements.has(e)}},{key:"set",value:function(e,t){this.elements.set(e,t)}},{key:"delete",value:function(e){return this.elements.delete(e)}}]),e}(),ba=function(){function e(t,n,i,r,o,a,s){(0,F.Z)(this,e),this.id=++ga,this.type=1,this.actual=t,this.label=t.label,this.confirmBeforeUndo=t.confirmBeforeUndo||!1,this.resourceLabels=n,this.strResources=i,this.groupId=r,this.groupOrder=o,this.sourceId=a,this.sourceOrder=s,this.removedResources=null,this.invalidatedResources=null}return(0,j.Z)(e,[{key:"canSplit",value:function(){return"function"===typeof this.actual.split}},{key:"removeResource",value:function(e,t,n){this.removedResources||(this.removedResources=new ya),this.removedResources.has(t)||this.removedResources.set(t,new _a(e,n))}},{key:"setValid",value:function(e,t,n){n?this.invalidatedResources&&(this.invalidatedResources.delete(t),0===this.invalidatedResources.size&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new ya),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new _a(e,0)))}},{key:"toString",value:function(){return"[id:".concat(this.id,"] [group:").concat(this.groupId,"] [").concat(this.invalidatedResources?"INVALID":" VALID","] ").concat(this.actual.constructor.name," - ").concat(this.actual)}}]),e}(),wa=function(){function e(t,n){(0,F.Z)(this,e),this.resourceLabel=t,this.strResource=n,this._past=[],this._future=[],this.locked=!1,this.versionId=1}return(0,j.Z)(e,[{key:"dispose",value:function(){var e,t=(0,X.Z)(this._past);try{for(t.s();!(e=t.n()).done;){var n=e.value;1===n.type&&n.removeResource(this.resourceLabel,this.strResource,0)}}catch(a){t.e(a)}finally{t.f()}var i,r=(0,X.Z)(this._future);try{for(r.s();!(i=r.n()).done;){var o=i.value;1===o.type&&o.removeResource(this.resourceLabel,this.strResource,0)}}catch(a){r.e(a)}finally{r.f()}this.versionId++}},{key:"toString",value:function(){var e=[];e.push("* ".concat(this.strResource,":"));for(var t=0;t<this._past.length;t++)e.push(" * [UNDO] ".concat(this._past[t]));for(var n=this._future.length-1;n>=0;n--)e.push(" * [REDO] ".concat(this._future[n]));return e.join("\n")}},{key:"flushAllElements",value:function(){this._past=[],this._future=[],this.versionId++}},{key:"_setElementValidFlag",value:function(e,t){1===e.type?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}},{key:"setElementsValidFlag",value:function(e,t){var n,i=(0,X.Z)(this._past);try{for(i.s();!(n=i.n()).done;){var r=n.value;t(r.actual)&&this._setElementValidFlag(r,e)}}catch(u){i.e(u)}finally{i.f()}var o,a=(0,X.Z)(this._future);try{for(a.s();!(o=a.n()).done;){var s=o.value;t(s.actual)&&this._setElementValidFlag(s,e)}}catch(u){a.e(u)}finally{a.f()}}},{key:"pushElement",value:function(e){var t,n=(0,X.Z)(this._future);try{for(n.s();!(t=n.n()).done;){var i=t.value;1===i.type&&i.removeResource(this.resourceLabel,this.strResource,1)}}catch(r){n.e(r)}finally{n.f()}this._future=[],this._past.push(e),this.versionId++}},{key:"createSnapshot",value:function(e){for(var t=[],n=0,i=this._past.length;n<i;n++)t.push(this._past[n].id);for(var r=this._future.length-1;r>=0;r--)t.push(this._future[r].id);return new ca.YO(e,t)}},{key:"restoreSnapshot",value:function(e){for(var t=e.elements.length,n=!0,i=0,r=-1,o=0,a=this._past.length;o<a;o++,i++){var s=this._past[o];n&&(i>=t||s.id!==e.elements[i])&&(n=!1,r=0),n||1!==s.type||s.removeResource(this.resourceLabel,this.strResource,0)}for(var u=-1,l=this._future.length-1;l>=0;l--,i++){var c=this._future[l];n&&(i>=t||c.id!==e.elements[i])&&(n=!1,u=l),n||1!==c.type||c.removeResource(this.resourceLabel,this.strResource,0)}-1!==r&&(this._past=this._past.slice(0,r)),-1!==u&&(this._future=this._future.slice(u+1)),this.versionId++}},{key:"getElements",value:function(){var e,t=[],n=[],i=(0,X.Z)(this._past);try{for(i.s();!(e=i.n()).done;){var r=e.value;t.push(r.actual)}}catch(u){i.e(u)}finally{i.f()}var o,a=(0,X.Z)(this._future);try{for(a.s();!(o=a.n()).done;){var s=o.value;n.push(s.actual)}}catch(u){a.e(u)}finally{a.f()}return{past:t,future:n}}},{key:"getClosestPastElement",value:function(){return 0===this._past.length?null:this._past[this._past.length-1]}},{key:"getSecondClosestPastElement",value:function(){return this._past.length<2?null:this._past[this._past.length-2]}},{key:"getClosestFutureElement",value:function(){return 0===this._future.length?null:this._future[this._future.length-1]}},{key:"hasPastElements",value:function(){return this._past.length>0}},{key:"hasFutureElements",value:function(){return this._future.length>0}},{key:"splitPastWorkspaceElement",value:function(e,t){for(var n=this._past.length-1;n>=0;n--)if(this._past[n]===e){t.has(this.strResource)?this._past[n]=t.get(this.strResource):this._past.splice(n,1);break}this.versionId++}},{key:"splitFutureWorkspaceElement",value:function(e,t){for(var n=this._future.length-1;n>=0;n--)if(this._future[n]===e){t.has(this.strResource)?this._future[n]=t.get(this.strResource):this._future.splice(n,1);break}this.versionId++}},{key:"moveBackward",value:function(e){this._past.pop(),this._future.push(e),this.versionId++}},{key:"moveForward",value:function(e){this._future.pop(),this._past.push(e),this.versionId++}}]),e}(),Ca=function(){function e(t){(0,F.Z)(this,e),this.editStacks=t,this._versionIds=[];for(var n=0,i=this.editStacks.length;n<i;n++)this._versionIds[n]=this.editStacks[n].versionId}return(0,j.Z)(e,[{key:"isValid",value:function(){for(var e=0,t=this.editStacks.length;e<t;e++)if(this._versionIds[e]!==this.editStacks[e].versionId)return!1;return!0}}]),e}(),ka=new wa("","");ka.locked=!0;var Sa=function(){function e(t,n){(0,F.Z)(this,e),this._dialogService=t,this._notificationService=n,this._editStacks=new Map,this._uriComparisonKeyComputers=[]}return(0,j.Z)(e,[{key:"getUriComparisonKey",value:function(e){var t,n=(0,X.Z)(this._uriComparisonKeyComputers);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(i[0]===e.scheme)return i[1].getComparisonKey(e)}}catch(r){n.e(r)}finally{n.f()}return e.toString()}},{key:"_print",value:function(e){console.log("------------------------------------"),console.log("AFTER ".concat(e,": "));var t,n=[],i=(0,X.Z)(this._editStacks);try{for(i.s();!(t=i.n()).done;){var r=t.value;n.push(r[1].toString())}}catch(o){i.e(o)}finally{i.f()}console.log(n.join("\n"))}},{key:"pushElement",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ca.Xt.None,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ca.gJ.None;if(0===e.type){var i=va(e.resource),r=this.getUriComparisonKey(e.resource);this._pushElement(new ma(e,i,r,t.id,t.nextOrder(),n.id,n.nextOrder()))}else{var o,a=new Set,s=[],u=[],l=(0,X.Z)(e.resources);try{for(l.s();!(o=l.n()).done;){var c=o.value,d=va(c),h=this.getUriComparisonKey(c);a.has(h)||(a.add(h),s.push(d),u.push(h))}}catch(f){l.e(f)}finally{l.f()}1===s.length?this._pushElement(new ma(e,s[0],u[0],t.id,t.nextOrder(),n.id,n.nextOrder())):this._pushElement(new ba(e,s,u,t.id,t.nextOrder(),n.id,n.nextOrder()))}pa&&this._print("pushElement")}},{key:"_pushElement",value:function(e){for(var t=0,n=e.strResources.length;t<n;t++){var i=e.resourceLabels[t],r=e.strResources[t],o=void 0;this._editStacks.has(r)?o=this._editStacks.get(r):(o=new wa(i,r),this._editStacks.set(r,o)),o.pushElement(e)}}},{key:"getLastElement",value:function(e){var t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){var n=this._editStacks.get(t);if(n.hasFutureElements())return null;var i=n.getClosestPastElement();return i?i.actual:null}return null}},{key:"_splitPastWorkspaceElement",value:function(e,t){var n,i=e.actual.split(),r=new Map,o=(0,X.Z)(i);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=va(a.resource),u=this.getUriComparisonKey(a.resource),l=new ma(a,s,u,0,0,0,0);r.set(l.strResource,l)}}catch(f){o.e(f)}finally{o.f()}var c,d=(0,X.Z)(e.strResources);try{for(d.s();!(c=d.n()).done;){var h=c.value;if(!t||!t.has(h))this._editStacks.get(h).splitPastWorkspaceElement(e,r)}}catch(f){d.e(f)}finally{d.f()}}},{key:"_splitFutureWorkspaceElement",value:function(e,t){var n,i=e.actual.split(),r=new Map,o=(0,X.Z)(i);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=va(a.resource),u=this.getUriComparisonKey(a.resource),l=new ma(a,s,u,0,0,0,0);r.set(l.strResource,l)}}catch(f){o.e(f)}finally{o.f()}var c,d=(0,X.Z)(e.strResources);try{for(d.s();!(c=d.n()).done;){var h=c.value;if(!t||!t.has(h))this._editStacks.get(h).splitFutureWorkspaceElement(e,r)}}catch(f){d.e(f)}finally{d.f()}}},{key:"removeElements",value:function(e){var t="string"===typeof e?e:this.getUriComparisonKey(e);this._editStacks.has(t)&&(this._editStacks.get(t).dispose(),this._editStacks.delete(t));pa&&this._print("removeElements")}},{key:"setElementsValidFlag",value:function(e,t,n){var i=this.getUriComparisonKey(e);this._editStacks.has(i)&&this._editStacks.get(i).setElementsValidFlag(t,n);pa&&this._print("setElementsValidFlag")}},{key:"createSnapshot",value:function(e){var t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).createSnapshot(e):new ca.YO(e,[])}},{key:"restoreSnapshot",value:function(e){var t=this.getUriComparisonKey(e.resource);if(this._editStacks.has(t)){var n=this._editStacks.get(t);n.restoreSnapshot(e),n.hasPastElements()||n.hasFutureElements()||(n.dispose(),this._editStacks.delete(t))}pa&&this._print("restoreSnapshot")}},{key:"getElements",value:function(e){var t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).getElements():{past:[],future:[]}}},{key:"_findClosestUndoElementWithSource",value:function(e){if(!e)return[null,null];var t,n=null,i=null,r=(0,X.Z)(this._editStacks);try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1].getClosestPastElement();s&&(s.sourceId===e&&(!n||s.sourceOrder>n.sourceOrder)&&(n=s,i=a))}}catch(u){r.e(u)}finally{r.f()}return[n,i]}},{key:"canUndo",value:function(e){if(e instanceof ca.gJ){var t=this._findClosestUndoElementWithSource(e.id);return!!(0,at.Z)(t,2)[1]}var n=this.getUriComparisonKey(e);return!!this._editStacks.has(n)&&this._editStacks.get(n).hasPastElements()}},{key:"_onError",value:function(e,t){(0,Te.dL)(e);var n,i=(0,X.Z)(t.strResources);try{for(i.s();!(n=i.n()).done;){var r=n.value;this.removeElements(r)}}catch(e){i.e(e)}finally{i.f()}this._notificationService.error(e)}},{key:"_acquireLocks",value:function(e){var t,n=(0,X.Z)(e.editStacks);try{for(n.s();!(t=n.n()).done;){if(t.value.locked)throw new Error("Cannot acquire edit stack lock")}}catch(o){n.e(o)}finally{n.f()}var i,r=(0,X.Z)(e.editStacks);try{for(r.s();!(i=r.n()).done;){i.value.locked=!0}}catch(o){r.e(o)}finally{r.f()}return function(){var t,n=(0,X.Z)(e.editStacks);try{for(n.s();!(t=n.n()).done;){t.value.locked=!1}}catch(o){n.e(o)}finally{n.f()}}}},{key:"_safeInvokeWithLocks",value:function(e,t,n,i,r){var o,a=this,s=this._acquireLocks(n);try{o=t()}catch(u){return s(),i.dispose(),this._onError(u,e)}return o?o.then((function(){return s(),i.dispose(),r()}),(function(t){return s(),i.dispose(),a._onError(t,e)})):(s(),i.dispose(),r())}},{key:"_invokeWorkspacePrepare",value:function(e){return fa(this,void 0,void 0,te().mark((function t(){var n;return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("undefined"!==typeof e.actual.prepareUndoRedo){t.next=2;break}return t.abrupt("return",Me.JT.None);case 2:if("undefined"!==typeof(n=e.actual.prepareUndoRedo())){t.next=5;break}return t.abrupt("return",Me.JT.None);case 5:return t.abrupt("return",n);case 6:case"end":return t.stop()}}),t)})))}},{key:"_invokeResourcePrepare",value:function(e,t){if(1!==e.actual.type||"undefined"===typeof e.actual.prepareUndoRedo)return t(Me.JT.None);var n=e.actual.prepareUndoRedo();return n?(0,Me.Wf)(n)?t(n):n.then((function(e){return t(e)})):t(Me.JT.None)}},{key:"_getAffectedEditStacks",value:function(e){var t,n=[],i=(0,X.Z)(e.strResources);try{for(i.s();!(t=i.n()).done;){var r=t.value;n.push(this._editStacks.get(r)||ka)}}catch(o){i.e(o)}finally{i.f()}return new Ca(n)}},{key:"_tryToSplitAndUndo",value:function(e,t,n,i){if(t.canSplit())return this._splitPastWorkspaceElement(t,n),this._notificationService.warn(i),new xa(this._undo(e,0,!0));var r,o=(0,X.Z)(t.strResources);try{for(o.s();!(r=o.n()).done;){var a=r.value;this.removeElements(a)}}catch(s){o.e(s)}finally{o.f()}return this._notificationService.warn(i),new xa}},{key:"_checkWorkspaceUndo",value:function(e,t,n,i){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,kn.N({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(i&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,kn.N({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));var r,o=[],a=(0,X.Z)(n.editStacks);try{for(a.s();!(r=a.n()).done;){var s=r.value;s.getClosestPastElement()!==t&&o.push(s.resourceLabel)}}catch(h){a.e(h)}finally{a.f()}if(o.length>0)return this._tryToSplitAndUndo(e,t,null,kn.N({key:"cannotWorkspaceUndoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));var u,l=[],c=(0,X.Z)(n.editStacks);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.locked&&l.push(d.resourceLabel)}}catch(h){c.e(h)}finally{c.f()}return l.length>0?this._tryToSplitAndUndo(e,t,null,kn.N({key:"cannotWorkspaceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,l.join(", "))):n.isValid()?null:this._tryToSplitAndUndo(e,t,null,kn.N({key:"cannotWorkspaceUndoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}},{key:"_workspaceUndo",value:function(e,t,n){var i=this._getAffectedEditStacks(t),r=this._checkWorkspaceUndo(e,t,i,!1);return r?r.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,i,n)}},{key:"_isPartOfUndoGroup",value:function(e){if(!e.groupId)return!1;var t,n=(0,X.Z)(this._editStacks);try{for(n.s();!(t=n.n()).done;){var i=(0,at.Z)(t.value,2)[1],r=i.getClosestPastElement();if(r){if(r===e){var o=i.getSecondClosestPastElement();if(o&&o.groupId===e.groupId)return!0}if(r.groupId===e.groupId)return!0}}}catch(a){n.e(a)}finally{n.f()}return!1}},{key:"_confirmAndExecuteWorkspaceUndo",value:function(e,t,n,i){return fa(this,void 0,void 0,te().mark((function r(){var o,a,s,u,l,c,d=this;return te().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!t.canSplit()||this._isPartOfUndoGroup(t)){r.next=13;break}return r.next=3,this._dialogService.show(dn.Z.Info,kn.N("confirmWorkspace","Would you like to undo '{0}' across all files?",t.label),[kn.N({key:"ok",comment:["{0} denotes a number that is > 1"]},"Undo in {0} Files",n.editStacks.length),kn.N("nok","Undo this File"),kn.N("cancel","Cancel")],{cancelId:2});case 3:if(2!==(o=r.sent).choice){r.next=6;break}return r.abrupt("return");case 6:if(1!==o.choice){r.next=9;break}return this._splitPastWorkspaceElement(t,null),r.abrupt("return",this._undo(e,0,!0));case 9:if(!(a=this._checkWorkspaceUndo(e,t,n,!1))){r.next=12;break}return r.abrupt("return",a.returnValue);case 12:i=!0;case 13:return r.prev=13,r.next=16,this._invokeWorkspacePrepare(t);case 16:s=r.sent,r.next=22;break;case 19:return r.prev=19,r.t0=r.catch(13),r.abrupt("return",this._onError(r.t0,t));case 22:if(!(u=this._checkWorkspaceUndo(e,t,n,!0))){r.next=26;break}return s.dispose(),r.abrupt("return",u.returnValue);case 26:l=(0,X.Z)(n.editStacks);try{for(l.s();!(c=l.n()).done;)c.value.moveBackward(t)}catch(h){l.e(h)}finally{l.f()}return r.abrupt("return",this._safeInvokeWithLocks(t,(function(){return t.actual.undo()}),n,s,(function(){return d._continueUndoInGroup(t.groupId,i)})));case 29:case"end":return r.stop()}}),r,this,[[13,19]])})))}},{key:"_resourceUndo",value:function(e,t,n){var i=this;if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,(function(r){return e.moveBackward(t),i._safeInvokeWithLocks(t,(function(){return t.actual.undo()}),new Ca([e]),r,(function(){return i._continueUndoInGroup(t.groupId,n)}))}));var r=kn.N({key:"cannotResourceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not undo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(r)}else e.flushAllElements()}},{key:"_findClosestUndoElementInGroup",value:function(e){if(!e)return[null,null];var t,n=null,i=null,r=(0,X.Z)(this._editStacks);try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1].getClosestPastElement();s&&(s.groupId===e&&(!n||s.groupOrder>n.groupOrder)&&(n=s,i=a))}}catch(u){r.e(u)}finally{r.f()}return[n,i]}},{key:"_continueUndoInGroup",value:function(e,t){if(e){var n=this._findClosestUndoElementInGroup(e),i=(0,at.Z)(n,2)[1];return i?this._undo(i,0,t):void 0}}},{key:"undo",value:function(e){if(e instanceof ca.gJ){var t=this._findClosestUndoElementWithSource(e.id),n=(0,at.Z)(t,2)[1];return n?this._undo(n,e.id,!1):void 0}return"string"===typeof e?this._undo(e,0,!1):this._undo(this.getUriComparisonKey(e),0,!1)}},{key:"_undo",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0;if(this._editStacks.has(e)){var i=this._editStacks.get(e),r=i.getClosestPastElement();if(r){if(r.groupId){var o=this._findClosestUndoElementInGroup(r.groupId),a=(0,at.Z)(o,2),s=a[0],u=a[1];if(r!==s&&u)return this._undo(u,t,n)}if((r.sourceId!==t||r.confirmBeforeUndo)&&!n)return this._confirmAndContinueUndo(e,t,r);try{return 1===r.type?this._workspaceUndo(e,r,n):this._resourceUndo(i,r,n)}finally{pa&&this._print("undo")}}}}},{key:"_confirmAndContinueUndo",value:function(e,t,n){return fa(this,void 0,void 0,te().mark((function i(){return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,this._dialogService.show(dn.Z.Info,kn.N("confirmDifferentSource","Would you like to undo '{0}'?",n.label),[kn.N("confirmDifferentSource.ok","Undo"),kn.N("cancel","Cancel")],{cancelId:1});case 2:if(1!==i.sent.choice){i.next=5;break}return i.abrupt("return");case 5:return i.abrupt("return",this._undo(e,t,!0));case 6:case"end":return i.stop()}}),i,this)})))}},{key:"_findClosestRedoElementWithSource",value:function(e){if(!e)return[null,null];var t,n=null,i=null,r=(0,X.Z)(this._editStacks);try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1].getClosestFutureElement();s&&(s.sourceId===e&&(!n||s.sourceOrder<n.sourceOrder)&&(n=s,i=a))}}catch(u){r.e(u)}finally{r.f()}return[n,i]}},{key:"canRedo",value:function(e){if(e instanceof ca.gJ){var t=this._findClosestRedoElementWithSource(e.id);return!!(0,at.Z)(t,2)[1]}var n=this.getUriComparisonKey(e);return!!this._editStacks.has(n)&&this._editStacks.get(n).hasFutureElements()}},{key:"_tryToSplitAndRedo",value:function(e,t,n,i){if(t.canSplit())return this._splitFutureWorkspaceElement(t,n),this._notificationService.warn(i),new xa(this._redo(e));var r,o=(0,X.Z)(t.strResources);try{for(o.s();!(r=o.n()).done;){var a=r.value;this.removeElements(a)}}catch(s){o.e(s)}finally{o.f()}return this._notificationService.warn(i),new xa}},{key:"_checkWorkspaceRedo",value:function(e,t,n,i){if(t.removedResources)return this._tryToSplitAndRedo(e,t,t.removedResources,kn.N({key:"cannotWorkspaceRedo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not redo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(i&&t.invalidatedResources)return this._tryToSplitAndRedo(e,t,t.invalidatedResources,kn.N({key:"cannotWorkspaceRedo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not redo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));var r,o=[],a=(0,X.Z)(n.editStacks);try{for(a.s();!(r=a.n()).done;){var s=r.value;s.getClosestFutureElement()!==t&&o.push(s.resourceLabel)}}catch(h){a.e(h)}finally{a.f()}if(o.length>0)return this._tryToSplitAndRedo(e,t,null,kn.N({key:"cannotWorkspaceRedoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));var u,l=[],c=(0,X.Z)(n.editStacks);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.locked&&l.push(d.resourceLabel)}}catch(h){c.e(h)}finally{c.f()}return l.length>0?this._tryToSplitAndRedo(e,t,null,kn.N({key:"cannotWorkspaceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,l.join(", "))):n.isValid()?null:this._tryToSplitAndRedo(e,t,null,kn.N({key:"cannotWorkspaceRedoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}},{key:"_workspaceRedo",value:function(e,t){var n=this._getAffectedEditStacks(t),i=this._checkWorkspaceRedo(e,t,n,!1);return i?i.returnValue:this._executeWorkspaceRedo(e,t,n)}},{key:"_executeWorkspaceRedo",value:function(e,t,n){return fa(this,void 0,void 0,te().mark((function i(){var r,o,a,s,u=this;return te().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.prev=0,i.next=3,this._invokeWorkspacePrepare(t);case 3:r=i.sent,i.next=9;break;case 6:return i.prev=6,i.t0=i.catch(0),i.abrupt("return",this._onError(i.t0,t));case 9:if(!(o=this._checkWorkspaceRedo(e,t,n,!0))){i.next=13;break}return r.dispose(),i.abrupt("return",o.returnValue);case 13:a=(0,X.Z)(n.editStacks);try{for(a.s();!(s=a.n()).done;)s.value.moveForward(t)}catch(l){a.e(l)}finally{a.f()}return i.abrupt("return",this._safeInvokeWithLocks(t,(function(){return t.actual.redo()}),n,r,(function(){return u._continueRedoInGroup(t.groupId)})));case 16:case"end":return i.stop()}}),i,this,[[0,6]])})))}},{key:"_resourceRedo",value:function(e,t){var n=this;if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,(function(i){return e.moveForward(t),n._safeInvokeWithLocks(t,(function(){return t.actual.redo()}),new Ca([e]),i,(function(){return n._continueRedoInGroup(t.groupId)}))}));var i=kn.N({key:"cannotResourceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not redo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(i)}else e.flushAllElements()}},{key:"_findClosestRedoElementInGroup",value:function(e){if(!e)return[null,null];var t,n=null,i=null,r=(0,X.Z)(this._editStacks);try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1].getClosestFutureElement();s&&(s.groupId===e&&(!n||s.groupOrder<n.groupOrder)&&(n=s,i=a))}}catch(u){r.e(u)}finally{r.f()}return[n,i]}},{key:"_continueRedoInGroup",value:function(e){if(e){var t=this._findClosestRedoElementInGroup(e),n=(0,at.Z)(t,2)[1];return n?this._redo(n):void 0}}},{key:"redo",value:function(e){if(e instanceof ca.gJ){var t=this._findClosestRedoElementWithSource(e.id),n=(0,at.Z)(t,2)[1];return n?this._redo(n):void 0}return"string"===typeof e?this._redo(e):this._redo(this.getUriComparisonKey(e))}},{key:"_redo",value:function(e){if(this._editStacks.has(e)){var t=this._editStacks.get(e),n=t.getClosestFutureElement();if(n){if(n.groupId){var i=this._findClosestRedoElementInGroup(n.groupId),r=(0,at.Z)(i,2),o=r[0],a=r[1];if(n!==o&&a)return this._redo(a)}try{return 1===n.type?this._workspaceRedo(e,n):this._resourceRedo(t,n)}finally{pa&&this._print("redo")}}}}}]),e}();Sa=da([ha(0,To.S),ha(1,An.lT)],Sa);var xa=(0,j.Z)((function e(t){(0,F.Z)(this,e),this.returnValue=t}));(0,ra.z)(ca.tJ,Sa);var La=n(33399),Ea=n(42659),Na=new De.Ue((function(){var e=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:e,collatorIsNumeric:e.resolvedOptions().numeric}}));function Da(e,t,n){var i=e.toLowerCase(),r=t.toLowerCase(),o=function(e,t,n){var i=e.toLowerCase(),r=t.toLowerCase(),o=i.startsWith(n),a=r.startsWith(n);if(o!==a)return o?-1:1;if(o&&a){if(i.length<r.length)return-1;if(i.length>r.length)return 1}return 0}(e,t,n);if(o)return o;var a=i.endsWith(n);if(a!==r.endsWith(n))return a?-1:1;var s=function(e,t){var n=e||"",i=t||"",r=Na.value.collator.compare(n,i);return Na.value.collatorIsNumeric&&0===r&&n!==i?n<i?-1:1:r}(i,r);return 0!==s?s:i.localeCompare(r)}var Ma=n(5677),Ta=n(61743),Oa=n(94995),Ia=n(12394),Aa={},Pa=new Ia.R("quick-input-button-icon-");function Ra(e){if(e){var t,n=e.dark.toString();return Aa[n]?t=Aa[n]:(t=Pa.nextId(),ne.createCSSRule(".".concat(t),"background-image: ".concat(ne.asCSSUrl(e.light||e.dark))),ne.createCSSRule(".vs-dark .".concat(t,", .hc-black .").concat(t),"background-image: ".concat(ne.asCSSUrl(e.dark))),Aa[n]=t),t}}var Za=ne.$,Fa=function(){function e(t,n,i){(0,F.Z)(this,e),this.os=n,this.keyElements=new Set,this.options=i||Object.create(null),this.labelBackground=this.options.keybindingLabelBackground,this.labelForeground=this.options.keybindingLabelForeground,this.labelBorder=this.options.keybindingLabelBorder,this.labelBottomBorder=this.options.keybindingLabelBottomBorder,this.labelShadow=this.options.keybindingLabelShadow,this.domNode=ne.append(t,Za(".monaco-keybinding")),this.didEverRender=!1,t.appendChild(this.domNode)}return(0,j.Z)(e,[{key:"element",get:function(){return this.domNode}},{key:"set",value:function(t,n){this.didEverRender&&this.keybinding===t&&e.areSame(this.matches,n)||(this.keybinding=t,this.matches=n,this.render())}},{key:"render",value:function(){if(this.clear(),this.keybinding){var e=this.keybinding.getParts(),t=(0,at.Z)(e,2),n=t[0],i=t[1];n&&this.renderPart(this.domNode,n,this.matches?this.matches.firstPart:null),i&&(ne.append(this.domNode,Za("span.monaco-keybinding-key-chord-separator",void 0," ")),this.renderPart(this.domNode,i,this.matches?this.matches.chordPart:null)),this.domNode.title=this.keybinding.getAriaLabel()||""}else this.options&&this.options.renderUnboundKeybindings&&this.renderUnbound(this.domNode);this.applyStyles(),this.didEverRender=!0}},{key:"clear",value:function(){ne.clearNode(this.domNode),this.keyElements.clear()}},{key:"renderPart",value:function(e,t,n){var i=Tn.xo.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,i.ctrlKey,Boolean(null===n||void 0===n?void 0:n.ctrlKey),i.separator),t.shiftKey&&this.renderKey(e,i.shiftKey,Boolean(null===n||void 0===n?void 0:n.shiftKey),i.separator),t.altKey&&this.renderKey(e,i.altKey,Boolean(null===n||void 0===n?void 0:n.altKey),i.separator),t.metaKey&&this.renderKey(e,i.metaKey,Boolean(null===n||void 0===n?void 0:n.metaKey),i.separator);var r=t.keyLabel;r&&this.renderKey(e,r,Boolean(null===n||void 0===n?void 0:n.keyCode),"")}},{key:"renderKey",value:function(e,t,n,i){ne.append(e,this.createKeyElement(t,n?".highlight":"")),i&&ne.append(e,Za("span.monaco-keybinding-key-separator",void 0,i))}},{key:"renderUnbound",value:function(e){ne.append(e,this.createKeyElement((0,kn.N)("unbound","Unbound")))}},{key:"createKeyElement",value:function(e){var t=Za("span.monaco-keybinding-key"+(arguments.length>1&&void 0!==arguments[1]?arguments[1]:""),void 0,e);return this.keyElements.add(t),t}},{key:"style",value:function(e){this.labelBackground=e.keybindingLabelBackground,this.labelForeground=e.keybindingLabelForeground,this.labelBorder=e.keybindingLabelBorder,this.labelBottomBorder=e.keybindingLabelBottomBorder,this.labelShadow=e.keybindingLabelShadow,this.applyStyles()}},{key:"applyStyles",value:function(){var e;if(this.element){var t,n=(0,X.Z)(this.keyElements);try{for(n.s();!(t=n.n()).done;){var i=t.value;this.labelBackground&&(i.style.backgroundColor=null===(e=this.labelBackground)||void 0===e?void 0:e.toString()),this.labelBorder&&(i.style.borderColor=this.labelBorder.toString()),this.labelBottomBorder&&(i.style.borderBottomColor=this.labelBottomBorder.toString()),this.labelShadow&&(i.style.boxShadow="inset 0 -1px 0 ".concat(this.labelShadow))}}catch(r){n.e(r)}finally{n.f()}this.labelForeground&&(this.element.style.color=this.labelForeground.toString())}}}],[{key:"areSame",value:function(e,t){return e===t||!e&&!t||!!e&&!!t&&(0,mn.fS)(e.firstPart,t.firstPart)&&(0,mn.fS)(e.chordPart,t.chordPart)}}]),e}(),ja=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Ha=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Ba=ne.$,za=function(){function e(t){(0,F.Z)(this,e),this.hidden=!1,this._onChecked=new B.Q5,this.onChecked=this._onChecked.event,Object.assign(this,t)}return(0,j.Z)(e,[{key:"checked",get:function(){return!!this._checked},set:function(e){e!==this._checked&&(this._checked=e,this._onChecked.fire(e))}},{key:"dispose",value:function(){this._onChecked.dispose()}}]),e}(),Wa=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"templateId",get:function(){return e.ID}},{key:"renderTemplate",value:function(e){var t=Object.create(null);t.toDisposeElement=[],t.toDisposeTemplate=[],t.entry=ne.append(e,Ba(".quick-input-list-entry"));var n=ne.append(t.entry,Ba("label.quick-input-list-label"));t.toDisposeTemplate.push(ne.addStandardDisposableListener(n,ne.EventType.CLICK,(function(e){t.checkbox.offsetParent||e.preventDefault()}))),t.checkbox=ne.append(n,Ba("input.quick-input-list-checkbox")),t.checkbox.type="checkbox",t.toDisposeTemplate.push(ne.addStandardDisposableListener(t.checkbox,ne.EventType.CHANGE,(function(e){t.element.checked=t.checkbox.checked})));var i=ne.append(n,Ba(".quick-input-list-rows")),r=ne.append(i,Ba(".quick-input-list-row")),o=ne.append(i,Ba(".quick-input-list-row"));t.label=new Ma.g(r,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0});var a=ne.append(r,Ba(".quick-input-list-entry-keybinding"));t.keybinding=new Fa(a,Oe.OS);var s=ne.append(o,Ba(".quick-input-list-label-meta"));return t.detail=new Ta.q(s,!0),t.separator=ne.append(t.entry,Ba(".quick-input-list-separator")),t.actionBar=new $r.o(t.entry),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.push(t.actionBar),t}},{key:"renderElement",value:function(e,t,n){var i=this;n.toDisposeElement=(0,Me.B9)(n.toDisposeElement),n.element=e,n.checkbox.checked=e.checked,n.toDisposeElement.push(e.onChecked((function(e){return n.checkbox.checked=e})));var r=e.labelHighlights,o=e.descriptionHighlights,a=e.detailHighlights,s=Object.create(null);s.matches=r||[],s.descriptionTitle=e.saneDescription,s.descriptionMatches=o||[],s.extraClasses=e.item.iconClasses,s.italic=e.item.italic,s.strikethrough=e.item.strikethrough,n.label.setLabel(e.saneLabel,e.saneDescription,s),n.keybinding.set(e.item.keybinding),n.detail.set(e.saneDetail,a),e.separator&&e.separator.label?(n.separator.textContent=e.separator.label,n.separator.style.display=""):n.separator.style.display="none",n.entry.classList.toggle("quick-input-list-separator-border",!!e.separator),n.actionBar.clear();var u=e.item.buttons;u&&u.length?(n.actionBar.push(u.map((function(t,n){var r=t.iconClass||(t.iconPath?Ra(t.iconPath):void 0);t.alwaysVisible&&(r=r?"".concat(r," always-visible"):"always-visible");var o=new qr.aU("id-".concat(n),"",r,!0,(function(){return Ha(i,void 0,void 0,te().mark((function n(){return te().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:e.fireButtonTriggered({button:t,item:e.item});case 1:case"end":return n.stop()}}),n)})))}));return o.tooltip=t.tooltip||"",o})),{icon:!0,label:!1}),n.entry.classList.add("has-actions")):n.entry.classList.remove("has-actions")}},{key:"disposeElement",value:function(e,t,n){n.toDisposeElement=(0,Me.B9)(n.toDisposeElement)}},{key:"disposeTemplate",value:function(e){e.toDisposeElement=(0,Me.B9)(e.toDisposeElement),e.toDisposeTemplate=(0,Me.B9)(e.toDisposeTemplate)}}]),e}();Wa.ID="listelement";var Va,Ya=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"getHeight",value:function(e){return e.saneDetail?44:22}},{key:"getTemplateId",value:function(e){return Wa.ID}}]),e}();!function(e){e[e.First=1]="First",e[e.Second=2]="Second",e[e.Last=3]="Last",e[e.Next=4]="Next",e[e.Previous=5]="Previous",e[e.NextPage=6]="NextPage",e[e.PreviousPage=7]="PreviousPage"}(Va||(Va={}));var Ua=function(){function e(t,n,i){var r=this;(0,F.Z)(this,e),this.parent=t,this.inputElements=[],this.elements=[],this.elementsToIndexes=new Map,this.matchOnDescription=!1,this.matchOnDetail=!1,this.matchOnLabel=!0,this.matchOnMeta=!0,this.sortByLabel=!0,this._onChangedAllVisibleChecked=new B.Q5,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new B.Q5,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new B.Q5,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new B.Q5,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new B.Q5,this.onButtonTriggered=this._onButtonTriggered.event,this._onKeyDown=new B.Q5,this.onKeyDown=this._onKeyDown.event,this._onLeave=new B.Q5,this.onLeave=this._onLeave.event,this._fireCheckedEvents=!0,this.elementDisposables=[],this.disposables=[],this.id=n,this.container=ne.append(this.parent,Ba(".quick-input-list"));var o=new Ya,a=new Ka;this.list=i.createList("QuickInput",this.container,o,[new Wa],{identityProvider:{getId:function(e){return e.saneLabel}},setRowLineHeight:!1,multipleSelectionSupport:!1,horizontalScrolling:!1,accessibilityProvider:a}),this.list.getHTMLElement().id=n,this.disposables.push(this.list),this.disposables.push(this.list.onKeyDown((function(e){var t=new cn.y(e);switch(t.keyCode){case 10:r.toggleCheckbox();break;case 31:(Oe.dz?e.metaKey:e.ctrlKey)&&r.list.setFocus((0,wt.w6)(r.list.length));break;case 16:var n=r.list.getFocus();1===n.length&&0===n[0]&&r._onLeave.fire();break;case 18:var i=r.list.getFocus();1===i.length&&i[0]===r.list.length-1&&r._onLeave.fire()}r._onKeyDown.fire(t)}))),this.disposables.push(this.list.onMouseDown((function(e){2!==e.browserEvent.button&&e.browserEvent.preventDefault()}))),this.disposables.push(ne.addDisposableListener(this.container,ne.EventType.CLICK,(function(e){(e.x||e.y)&&r._onLeave.fire()}))),this.disposables.push(this.list.onMouseMiddleClick((function(e){r._onLeave.fire()}))),this.disposables.push(this.list.onContextMenu((function(e){"number"===typeof e.index&&(e.browserEvent.preventDefault(),r.list.setSelection([e.index]))}))),this.disposables.push(this._onChangedAllVisibleChecked,this._onChangedCheckedCount,this._onChangedVisibleCount,this._onChangedCheckedElements,this._onButtonTriggered,this._onLeave,this._onKeyDown)}return(0,j.Z)(e,[{key:"onDidChangeFocus",get:function(){return B.ju.map(this.list.onDidChangeFocus,(function(e){return e.elements.map((function(e){return e.item}))}))}},{key:"onDidChangeSelection",get:function(){return B.ju.map(this.list.onDidChangeSelection,(function(e){return{items:e.elements.map((function(e){return e.item})),event:e.browserEvent}}))}},{key:"getAllVisibleChecked",value:function(){return this.allVisibleChecked(this.elements,!1)}},{key:"allVisibleChecked",value:function(e){for(var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=0,i=e.length;n<i;n++){var r=e[n];if(!r.hidden){if(!r.checked)return!1;t=!0}}return t}},{key:"getCheckedCount",value:function(){for(var e=0,t=this.elements,n=0,i=t.length;n<i;n++)t[n].checked&&e++;return e}},{key:"getVisibleCount",value:function(){for(var e=0,t=this.elements,n=0,i=t.length;n<i;n++)t[n].hidden||e++;return e}},{key:"setAllVisibleChecked",value:function(e){try{this._fireCheckedEvents=!1,this.elements.forEach((function(t){t.hidden||(t.checked=e)}))}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}},{key:"setElements",value:function(e){var t,n,i=this;this.elementDisposables=(0,Me.B9)(this.elementDisposables);var r=function(e){return i.fireButtonTriggered(e)};this.inputElements=e,this.elements=e.reduce((function(t,n,i){var o,a,s;if("separator"!==n.type){var u=i&&e[i-1],l=n.label&&n.label.replace(/\r?\n/g," "),c=n.meta&&n.meta.replace(/\r?\n/g," "),d=n.description&&n.description.replace(/\r?\n/g," "),h=n.detail&&n.detail.replace(/\r?\n/g," "),f=n.ariaLabel||[l,d,h].map((function(e){return(0,ro.JL)(e)})).filter((function(e){return!!e})).join(", ");t.push(new za({index:i,item:n,saneLabel:l,saneMeta:c,saneAriaLabel:f,saneDescription:d,saneDetail:h,labelHighlights:null===(o=n.highlights)||void 0===o?void 0:o.label,descriptionHighlights:null===(a=n.highlights)||void 0===a?void 0:a.description,detailHighlights:null===(s=n.highlights)||void 0===s?void 0:s.detail,checked:!1,separator:u&&"separator"===u.type?u:void 0,fireButtonTriggered:r}))}return t}),[]),(t=this.elementDisposables).push.apply(t,(0,J.Z)(this.elements)),(n=this.elementDisposables).push.apply(n,(0,J.Z)(this.elements.map((function(e){return e.onChecked((function(){return i.fireCheckedEvents()}))})))),this.elementsToIndexes=this.elements.reduce((function(e,t,n){return e.set(t.item,n),e}),new Map),this.list.splice(0,this.list.length),this.list.splice(0,this.list.length,this.elements),this._onChangedVisibleCount.fire(this.elements.length)}},{key:"getFocusedElements",value:function(){return this.list.getFocusedElements().map((function(e){return e.item}))}},{key:"setFocusedElements",value:function(e){var t=this;if(this.list.setFocus(e.filter((function(e){return t.elementsToIndexes.has(e)})).map((function(e){return t.elementsToIndexes.get(e)}))),e.length>0){var n=this.list.getFocus()[0];"number"===typeof n&&this.list.reveal(n)}}},{key:"getActiveDescendant",value:function(){return this.list.getHTMLElement().getAttribute("aria-activedescendant")}},{key:"setSelectedElements",value:function(e){var t=this;this.list.setSelection(e.filter((function(e){return t.elementsToIndexes.has(e)})).map((function(e){return t.elementsToIndexes.get(e)})))}},{key:"getCheckedElements",value:function(){return this.elements.filter((function(e){return e.checked})).map((function(e){return e.item}))}},{key:"setCheckedElements",value:function(e){try{this._fireCheckedEvents=!1;var t,n=new Set,i=(0,X.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;n.add(r)}}catch(u){i.e(u)}finally{i.f()}var o,a=(0,X.Z)(this.elements);try{for(a.s();!(o=a.n()).done;){var s=o.value;s.checked=n.has(s.item)}}catch(u){a.e(u)}finally{a.f()}}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}},{key:"enabled",set:function(e){this.list.getHTMLElement().style.pointerEvents=e?"":"none"}},{key:"focus",value:function(e){if(this.list.length){switch(e===Va.Next&&this.list.getFocus()[0]===this.list.length-1&&(e=Va.First),e===Va.Previous&&0===this.list.getFocus()[0]&&(e=Va.Last),e===Va.Second&&this.list.length<2&&(e=Va.First),e){case Va.First:this.list.focusFirst();break;case Va.Second:this.list.focusNth(1);break;case Va.Last:this.list.focusLast();break;case Va.Next:this.list.focusNext();break;case Va.Previous:this.list.focusPrevious();break;case Va.NextPage:this.list.focusNextPage();break;case Va.PreviousPage:this.list.focusPreviousPage()}var t=this.list.getFocus()[0];"number"===typeof t&&this.list.reveal(t)}}},{key:"clearFocus",value:function(){this.list.setFocus([])}},{key:"domFocus",value:function(){this.list.domFocus()}},{key:"layout",value:function(e){this.list.getHTMLElement().style.maxHeight=e?"calc(".concat(44*Math.floor(e/44),"px)"):"",this.list.layout()}},{key:"filter",value:function(e){var t,n=this;if(!(this.sortByLabel||this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))return this.list.layout(),!1;(e=e.trim())&&(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail)?this.elements.forEach((function(i){var r=n.matchOnLabel?(0,Ie.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneLabel))):void 0,o=n.matchOnDescription?(0,Ie.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneDescription||""))):void 0,a=n.matchOnDetail?(0,Ie.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneDetail||""))):void 0,s=n.matchOnMeta?(0,Ie.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneMeta||""))):void 0;if(r||o||a||s?(i.labelHighlights=r,i.descriptionHighlights=o,i.detailHighlights=a,i.hidden=!1):(i.labelHighlights=void 0,i.descriptionHighlights=void 0,i.detailHighlights=void 0,i.hidden=!i.item.alwaysShow),i.separator=void 0,!n.sortByLabel){var u=i.index&&n.inputElements[i.index-1];(t=u&&"separator"===u.type?u:t)&&!i.hidden&&(i.separator=t,t=void 0)}})):this.elements.forEach((function(e){e.labelHighlights=void 0,e.descriptionHighlights=void 0,e.detailHighlights=void 0,e.hidden=!1;var t=e.index&&n.inputElements[e.index-1];e.separator=t&&"separator"===t.type?t:void 0}));var i=this.elements.filter((function(e){return!e.hidden}));if(this.sortByLabel&&e){var r=e.toLowerCase();i.sort((function(e,t){return function(e,t,n){var i=e.labelHighlights||[],r=t.labelHighlights||[];if(i.length&&!r.length)return-1;if(!i.length&&r.length)return 1;if(0===i.length&&0===r.length)return 0;return Da(e.saneLabel,t.saneLabel,n)}(e,t,r)}))}return this.elementsToIndexes=i.reduce((function(e,t,n){return e.set(t.item,n),e}),new Map),this.list.splice(0,this.list.length,i),this.list.setFocus([]),this.list.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(i.length),!0}},{key:"toggleCheckbox",value:function(){try{this._fireCheckedEvents=!1;var e,t=this.list.getFocusedElements(),n=this.allVisibleChecked(t),i=(0,X.Z)(t);try{for(i.s();!(e=i.n()).done;){e.value.checked=!n}}catch(r){i.e(r)}finally{i.f()}}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}},{key:"display",value:function(e){this.container.style.display=e?"":"none"}},{key:"isDisplayed",value:function(){return"none"!==this.container.style.display}},{key:"dispose",value:function(){this.elementDisposables=(0,Me.B9)(this.elementDisposables),this.disposables=(0,Me.B9)(this.disposables)}},{key:"fireCheckedEvents",value:function(){this._fireCheckedEvents&&(this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedCheckedCount.fire(this.getCheckedCount()),this._onChangedCheckedElements.fire(this.getCheckedElements()))}},{key:"fireButtonTriggered",value:function(e){this._onButtonTriggered.fire(e)}},{key:"style",value:function(e){this.list.style(e)}}]),e}();ja([Oa.H],Ua.prototype,"onDidChangeFocus",null),ja([Oa.H],Ua.prototype,"onDidChangeSelection",null);var Ka=function(){function e(){(0,F.Z)(this,e)}return(0,j.Z)(e,[{key:"getWidgetAriaLabel",value:function(){return(0,kn.N)("quickInput","Quick Input")}},{key:"getAriaLabel",value:function(e){return e.saneAriaLabel}},{key:"getWidgetRole",value:function(){return"listbox"}},{key:"getRole",value:function(){return"option"}}]),e}(),qa=n(68027),Ga=ne.$,$a=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).parent=e,i.onKeyDown=function(e){return ne.addDisposableListener(i.inputBox.inputElement,ne.EventType.KEY_DOWN,(function(t){e(new cn.y(t))}))},i.onMouseDown=function(e){return ne.addDisposableListener(i.inputBox.inputElement,ne.EventType.MOUSE_DOWN,(function(t){e(new uo.n(t))}))},i.onDidChange=function(e){return i.inputBox.onDidChange(e)},i.container=ne.append(i.parent,Ga(".quick-input-box")),i.inputBox=i._register(new qa.W(i.container,void 0)),i}return(0,j.Z)(n,[{key:"value",get:function(){return this.inputBox.value},set:function(e){this.inputBox.value=e}},{key:"select",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.inputBox.select(e)}},{key:"isSelectionAtEnd",value:function(){return this.inputBox.isSelectionAtEnd()}},{key:"placeholder",get:function(){return this.inputBox.inputElement.getAttribute("placeholder")||""},set:function(e){this.inputBox.setPlaceHolder(e)}},{key:"ariaLabel",get:function(){return this.inputBox.getAriaLabel()},set:function(e){this.inputBox.setAriaLabel(e)}},{key:"password",get:function(){return"password"===this.inputBox.inputElement.type},set:function(e){this.inputBox.inputElement.type=e?"password":"text"}},{key:"setAttribute",value:function(e,t){this.inputBox.inputElement.setAttribute(e,t)}},{key:"removeAttribute",value:function(e){this.inputBox.inputElement.removeAttribute(e)}},{key:"showDecoration",value:function(e){e===dn.Z.Ignore?this.inputBox.hideMessage():this.inputBox.showMessage({type:e===dn.Z.Info?1:e===dn.Z.Warning?2:3,content:""})}},{key:"stylesForType",value:function(e){return this.inputBox.stylesForType(e===dn.Z.Info?1:e===dn.Z.Warning?2:3)}},{key:"setFocus",value:function(){this.inputBox.focus()}},{key:"layout",value:function(){this.inputBox.layout()}},{key:"style",value:function(e){this.inputBox.style(e)}}]),n}(Me.JT),Qa=n(57502),Xa="done",Ja="active",es="infinite",ts="discrete",ns={progressBarBackground:rr.Il.fromHex("#0E70C0")},is=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this)).options=i||Object.create(null),(0,mn.jB)(r.options,ns,!1),r.workedVal=0,r.progressBarBackground=r.options.progressBarBackground,r._register(r.showDelayedScheduler=new De.pY((function(){return(0,ne.show)(r.element)}),0)),r.create(e),r}return(0,j.Z)(n,[{key:"create",value:function(e){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),e.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.element.appendChild(this.bit),this.applyStyles()}},{key:"off",value:function(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(Ja,es,ts),this.workedVal=0,this.totalWork=void 0}},{key:"stop",value:function(){return this.doDone(!1)}},{key:"doDone",value:function(e){var t=this;return this.element.classList.add(Xa),this.element.classList.contains(es)?(this.bit.style.opacity="0",e?setTimeout((function(){return t.off()}),200):this.off()):(this.bit.style.width="inherit",e?setTimeout((function(){return t.off()}),200):this.off()),this}},{key:"infinite",value:function(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(ts,Xa),this.element.classList.add(Ja,es),this}},{key:"getContainer",value:function(){return this.element}},{key:"style",value:function(e){this.progressBarBackground=e.progressBarBackground,this.applyStyles()}},{key:"applyStyles",value:function(){if(this.bit){var e=this.progressBarBackground?this.progressBarBackground.toString():"";this.bit.style.backgroundColor=e}}}]),n}(Me.JT),rs=n(25044),os=n(66404),as={buttonBackground:rr.Il.fromHex("#0E639C"),buttonHoverBackground:rr.Il.fromHex("#006BB3"),buttonForeground:rr.Il.white},ss=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this))._onDidClick=r._register(new B.Q5),r.options=i||Object.create(null),(0,mn.jB)(r.options,as,!1),r.buttonForeground=r.options.buttonForeground,r.buttonBackground=r.options.buttonBackground,r.buttonHoverBackground=r.options.buttonHoverBackground,r.buttonSecondaryForeground=r.options.buttonSecondaryForeground,r.buttonSecondaryBackground=r.options.buttonSecondaryBackground,r.buttonSecondaryHoverBackground=r.options.buttonSecondaryHoverBackground,r.buttonBorder=r.options.buttonBorder,r._element=document.createElement("a"),r._element.classList.add("monaco-button"),r._element.tabIndex=0,r._element.setAttribute("role","button"),e.appendChild(r._element),r._register(rs.o.addTarget(r._element)),[ne.EventType.CLICK,rs.t.Tap].forEach((function(e){r._register((0,ne.addDisposableListener)(r._element,e,(function(e){r.enabled?r._onDidClick.fire(e):ne.EventHelper.stop(e)})))})),r._register((0,ne.addDisposableListener)(r._element,ne.EventType.KEY_DOWN,(function(e){var t=new cn.y(e),n=!1;r.enabled&&(t.equals(3)||t.equals(10))?(r._onDidClick.fire(e),n=!0):t.equals(9)&&(r._element.blur(),n=!0),n&&ne.EventHelper.stop(t,!0)}))),r._register((0,ne.addDisposableListener)(r._element,ne.EventType.MOUSE_OVER,(function(e){r._element.classList.contains("disabled")||r.setHoverBackground()}))),r._register((0,ne.addDisposableListener)(r._element,ne.EventType.MOUSE_OUT,(function(e){r.applyStyles()}))),r.focusTracker=r._register((0,ne.trackFocus)(r._element)),r._register(r.focusTracker.onDidFocus((function(){return r.setHoverBackground()}))),r._register(r.focusTracker.onDidBlur((function(){return r.applyStyles()}))),r.applyStyles(),r}return(0,j.Z)(n,[{key:"onDidClick",get:function(){return this._onDidClick.event}},{key:"setHoverBackground",value:function(){var e;(e=this.options.secondary?this.buttonSecondaryHoverBackground?this.buttonSecondaryHoverBackground.toString():null:this.buttonHoverBackground?this.buttonHoverBackground.toString():null)&&(this._element.style.backgroundColor=e)}},{key:"style",value:function(e){this.buttonForeground=e.buttonForeground,this.buttonBackground=e.buttonBackground,this.buttonHoverBackground=e.buttonHoverBackground,this.buttonSecondaryForeground=e.buttonSecondaryForeground,this.buttonSecondaryBackground=e.buttonSecondaryBackground,this.buttonSecondaryHoverBackground=e.buttonSecondaryHoverBackground,this.buttonBorder=e.buttonBorder,this.applyStyles()}},{key:"applyStyles",value:function(){if(this._element){var e,t;this.options.secondary?(t=this.buttonSecondaryForeground?this.buttonSecondaryForeground.toString():"",e=this.buttonSecondaryBackground?this.buttonSecondaryBackground.toString():""):(t=this.buttonForeground?this.buttonForeground.toString():"",e=this.buttonBackground?this.buttonBackground.toString():"");var n=this.buttonBorder?this.buttonBorder.toString():"";this._element.style.color=t,this._element.style.backgroundColor=e,this._element.style.borderWidth=n?"1px":"",this._element.style.borderStyle=n?"solid":"",this._element.style.borderColor=n}}},{key:"element",get:function(){return this._element}},{key:"label",set:function(e){this._element.classList.add("monaco-text-button"),this.options.supportIcons?ne.reset.apply(void 0,[this._element].concat((0,J.Z)((0,os.T)(e)))):this._element.textContent=e,"string"===typeof this.options.title?this._element.title=this.options.title:this.options.title&&(this._element.title=e)}},{key:"enabled",get:function(){return!this._element.classList.contains("disabled")},set:function(e){e?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}}]),n}(Me.JT),us=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},ls=ne.$,cs={iconClass:(0,ro.CM)("quick-input-back",ro.lA.arrowLeft).classNames,tooltip:(0,kn.N)("quickInput.back","Back"),handle:-1},ds=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).ui=e,i.visible=!1,i._enabled=!0,i._busy=!1,i._ignoreFocusOut=!1,i._buttons=[],i.noValidationMessage=n.noPromptMessage,i._severity=dn.Z.Ignore,i.buttonsUpdated=!1,i.onDidTriggerButtonEmitter=i._register(new B.Q5),i.onDidHideEmitter=i._register(new B.Q5),i.onDisposeEmitter=i._register(new B.Q5),i.visibleDisposables=i._register(new Me.SL),i.onDidHide=i.onDidHideEmitter.event,i}return(0,j.Z)(n,[{key:"title",get:function(){return this._title},set:function(e){this._title=e,this.update()}},{key:"description",get:function(){return this._description},set:function(e){this._description=e,this.update()}},{key:"step",get:function(){return this._steps},set:function(e){this._steps=e,this.update()}},{key:"totalSteps",get:function(){return this._totalSteps},set:function(e){this._totalSteps=e,this.update()}},{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled=e,this.update()}},{key:"contextKey",get:function(){return this._contextKey},set:function(e){this._contextKey=e,this.update()}},{key:"busy",get:function(){return this._busy},set:function(e){this._busy=e,this.update()}},{key:"ignoreFocusOut",get:function(){return this._ignoreFocusOut},set:function(e){this._ignoreFocusOut=e,this.update()}},{key:"buttons",get:function(){return this._buttons},set:function(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}},{key:"validationMessage",get:function(){return this._validationMessage},set:function(e){this._validationMessage=e,this.update()}},{key:"severity",get:function(){return this._severity},set:function(e){this._severity=e,this.update()}},{key:"show",value:function(){var e=this;this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton((function(t){-1!==e.buttons.indexOf(t)&&e.onDidTriggerButtonEmitter.fire(t)}))),this.ui.show(this),this.visible=!0,this.update())}},{key:"hide",value:function(){this.visible&&this.ui.hide()}},{key:"didHide",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ea.Jq.Other;this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}},{key:"update",value:function(){var e=this;if(this.visible){var t=this.getTitle();t&&this.ui.title.textContent!==t?this.ui.title.textContent=t:t||"&nbsp;"===this.ui.title.innerHTML||(this.ui.title.innerText="\xa0;");var n=this.getDescription();if(this.ui.description1.textContent!==n&&(this.ui.description1.textContent=n),this.ui.description2.textContent!==n&&(this.ui.description2.textContent=n),this.busy&&!this.busyDelay&&(this.busyDelay=new De._F,this.busyDelay.setIfNotSet((function(){e.visible&&e.ui.progressBar.infinite()}),800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();var i=this.buttons.filter((function(e){return e===cs}));this.ui.leftActionBar.push(i.map((function(t,n){var i=new qr.aU("id-".concat(n),"",t.iconClass||Ra(t.iconPath),!0,(function(){return us(e,void 0,void 0,te().mark((function e(){return te().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.onDidTriggerButtonEmitter.fire(t);case 1:case"end":return e.stop()}}),e,this)})))}));return i.tooltip=t.tooltip||"",i})),{icon:!0,label:!1}),this.ui.rightActionBar.clear();var r=this.buttons.filter((function(e){return e!==cs}));this.ui.rightActionBar.push(r.map((function(t,n){var i=new qr.aU("id-".concat(n),"",t.iconClass||Ra(t.iconPath),!0,(function(){return us(e,void 0,void 0,te().mark((function e(){return te().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.onDidTriggerButtonEmitter.fire(t);case 1:case"end":return e.stop()}}),e,this)})))}));return i.tooltip=t.tooltip||"",i})),{icon:!0,label:!1})}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);var o=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==o&&(this._lastValidationMessage=o,ne.reset.apply(ne,[this.ui.message].concat((0,J.Z)((0,os.T)((0,Ue.YU)(o)))))),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}}},{key:"getTitle",value:function(){return this.title&&this.step?"".concat(this.title," (").concat(this.getSteps(),")"):this.title?this.title:this.step?this.getSteps():""}},{key:"getDescription",value:function(){return this.description||""}},{key:"getSteps",value:function(){return this.step&&this.totalSteps?(0,kn.N)("quickInput.steps","{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}},{key:"showMessageDecoration",value:function(e){if(this.ui.inputBox.showDecoration(e),e!==dn.Z.Ignore){var t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?"".concat(t.foreground):"",this.ui.message.style.backgroundColor=t.background?"".concat(t.background):"",this.ui.message.style.border=t.border?"1px solid ".concat(t.border):"",this.ui.message.style.paddingBottom="4px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.paddingBottom=""}},{key:"dispose",value:function(){this.hide(),this.onDisposeEmitter.fire(),(0,Ee.Z)((0,Ne.Z)(n.prototype),"dispose",this).call(this)}}]),n}(Me.JT);ds.noPromptMessage=(0,kn.N)("inputModeEntry","Press 'Enter' to confirm your input or 'Escape' to cancel");var hs=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(){var e;return(0,F.Z)(this,n),(e=t.apply(this,arguments))._value="",e.onDidChangeValueEmitter=e._register(new B.Q5),e.onDidAcceptEmitter=e._register(new B.Q5),e.onDidCustomEmitter=e._register(new B.Q5),e._items=[],e.itemsUpdated=!1,e._canSelectMany=!1,e._canAcceptInBackground=!1,e._matchOnDescription=!1,e._matchOnDetail=!1,e._matchOnLabel=!0,e._sortByLabel=!0,e._autoFocusOnList=!0,e._itemActivation=e.ui.isScreenReaderOptimized()?Ea.jG.NONE:Ea.jG.FIRST,e._activeItems=[],e.activeItemsUpdated=!1,e.activeItemsToConfirm=[],e.onDidChangeActiveEmitter=e._register(new B.Q5),e._selectedItems=[],e.selectedItemsUpdated=!1,e.selectedItemsToConfirm=[],e.onDidChangeSelectionEmitter=e._register(new B.Q5),e.onDidTriggerItemButtonEmitter=e._register(new B.Q5),e.valueSelectionUpdated=!0,e._ok="default",e._customButton=!1,e.filterValue=function(e){return e},e.onDidChangeValue=e.onDidChangeValueEmitter.event,e.onDidAccept=e.onDidAcceptEmitter.event,e.onDidChangeActive=e.onDidChangeActiveEmitter.event,e.onDidChangeSelection=e.onDidChangeSelectionEmitter.event,e.onDidTriggerItemButton=e.onDidTriggerItemButtonEmitter.event,e}return(0,j.Z)(n,[{key:"quickNavigate",get:function(){return this._quickNavigate},set:function(e){this._quickNavigate=e,this.update()}},{key:"value",get:function(){return this._value},set:function(e){this._value=e||"",this.update()}},{key:"ariaLabel",get:function(){return this._ariaLabel},set:function(e){this._ariaLabel=e,this.update()}},{key:"placeholder",get:function(){return this._placeholder},set:function(e){this._placeholder=e,this.update()}},{key:"items",get:function(){return this._items},set:function(e){this._items=e,this.itemsUpdated=!0,this.update()}},{key:"canSelectMany",get:function(){return this._canSelectMany},set:function(e){this._canSelectMany=e,this.update()}},{key:"canAcceptInBackground",get:function(){return this._canAcceptInBackground},set:function(e){this._canAcceptInBackground=e}},{key:"matchOnDescription",get:function(){return this._matchOnDescription},set:function(e){this._matchOnDescription=e,this.update()}},{key:"matchOnDetail",get:function(){return this._matchOnDetail},set:function(e){this._matchOnDetail=e,this.update()}},{key:"matchOnLabel",get:function(){return this._matchOnLabel},set:function(e){this._matchOnLabel=e,this.update()}},{key:"sortByLabel",get:function(){return this._sortByLabel},set:function(e){this._sortByLabel=e,this.update()}},{key:"autoFocusOnList",get:function(){return this._autoFocusOnList},set:function(e){this._autoFocusOnList=e,this.update()}},{key:"itemActivation",get:function(){return this._itemActivation},set:function(e){this._itemActivation=e}},{key:"activeItems",get:function(){return this._activeItems},set:function(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}},{key:"selectedItems",get:function(){return this._selectedItems},set:function(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}},{key:"keyMods",get:function(){return this._quickNavigate?Ea.X5:this.ui.keyMods}},{key:"valueSelection",set:function(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}},{key:"customButton",get:function(){return this._customButton},set:function(e){this._customButton=e,this.update()}},{key:"customLabel",get:function(){return this._customButtonLabel},set:function(e){this._customButtonLabel=e,this.update()}},{key:"customHover",get:function(){return this._customButtonHover},set:function(e){this._customButtonHover=e,this.update()}},{key:"ok",get:function(){return this._ok},set:function(e){this._ok=e,this.update()}},{key:"hideInput",get:function(){return!!this._hideInput},set:function(e){this._hideInput=e,this.update()}},{key:"trySelectFirst",value:function(){this.autoFocusOnList&&(this.canSelectMany||this.ui.list.focus(Va.First))}},{key:"show",value:function(){var e=this;this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange((function(t){t!==e.value&&(e._value=t,e.ui.list.filter(e.filterValue(e.ui.inputBox.value))&&e.trySelectFirst(),e.onDidChangeValueEmitter.fire(t))}))),this.visibleDisposables.add(this.ui.inputBox.onMouseDown((function(t){e.autoFocusOnList||e.ui.list.clearFocus()}))),this.visibleDisposables.add((this._hideInput?this.ui.list:this.ui.inputBox).onKeyDown((function(t){switch(t.keyCode){case 18:e.ui.list.focus(Va.Next),e.canSelectMany&&e.ui.list.domFocus(),ne.EventHelper.stop(t,!0);break;case 16:e.ui.list.getFocusedElements().length?e.ui.list.focus(Va.Previous):e.ui.list.focus(Va.Last),e.canSelectMany&&e.ui.list.domFocus(),ne.EventHelper.stop(t,!0);break;case 12:e.ui.list.focus(Va.NextPage),e.canSelectMany&&e.ui.list.domFocus(),ne.EventHelper.stop(t,!0);break;case 11:e.ui.list.focus(Va.PreviousPage),e.canSelectMany&&e.ui.list.domFocus(),ne.EventHelper.stop(t,!0);break;case 17:if(!e._canAcceptInBackground)return;if(!e.ui.inputBox.isSelectionAtEnd())return;e.activeItems[0]&&(e._selectedItems=[e.activeItems[0]],e.onDidChangeSelectionEmitter.fire(e.selectedItems),e.onDidAcceptEmitter.fire({inBackground:!0}));break;case 14:!t.ctrlKey&&!t.metaKey||t.shiftKey||t.altKey||(e.ui.list.focus(Va.First),ne.EventHelper.stop(t,!0));break;case 13:!t.ctrlKey&&!t.metaKey||t.shiftKey||t.altKey||(e.ui.list.focus(Va.Last),ne.EventHelper.stop(t,!0))}}))),this.visibleDisposables.add(this.ui.onDidAccept((function(){!e.canSelectMany&&e.activeItems[0]&&(e._selectedItems=[e.activeItems[0]],e.onDidChangeSelectionEmitter.fire(e.selectedItems)),e.onDidAcceptEmitter.fire({inBackground:!1})}))),this.visibleDisposables.add(this.ui.onDidCustom((function(){e.onDidCustomEmitter.fire()}))),this.visibleDisposables.add(this.ui.list.onDidChangeFocus((function(t){e.activeItemsUpdated||e.activeItemsToConfirm!==e._activeItems&&(0,wt.fS)(t,e._activeItems,(function(e,t){return e===t}))||(e._activeItems=t,e.onDidChangeActiveEmitter.fire(t))}))),this.visibleDisposables.add(this.ui.list.onDidChangeSelection((function(t){var n=t.items,i=t.event;e.canSelectMany?n.length&&e.ui.list.setSelectedElements([]):e.selectedItemsToConfirm!==e._selectedItems&&(0,wt.fS)(n,e._selectedItems,(function(e,t){return e===t}))||(e._selectedItems=n,e.onDidChangeSelectionEmitter.fire(n),n.length&&e.onDidAcceptEmitter.fire({inBackground:i instanceof MouseEvent&&1===i.button}))}))),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements((function(t){e.canSelectMany&&(e.selectedItemsToConfirm!==e._selectedItems&&(0,wt.fS)(t,e._selectedItems,(function(e,t){return e===t}))||(e._selectedItems=t,e.onDidChangeSelectionEmitter.fire(t)))}))),this.visibleDisposables.add(this.ui.list.onButtonTriggered((function(t){return e.onDidTriggerItemButtonEmitter.fire(t)}))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),(0,Ee.Z)((0,Ne.Z)(n.prototype),"show",this).call(this)}},{key:"registerQuickNavigation",value:function(){var e=this;return ne.addDisposableListener(this.ui.container,ne.EventType.KEY_UP,(function(t){if(!e.canSelectMany&&e._quickNavigate){var n=new cn.y(t),i=n.keyCode;e._quickNavigate.keybindings.some((function(e){var t=e.getParts(),r=(0,at.Z)(t,2),o=r[0];return!r[1]&&(o.shiftKey&&4===i?!(n.ctrlKey||n.altKey||n.metaKey):!(!o.altKey||6!==i)||(!(!o.ctrlKey||5!==i)||!(!o.metaKey||57!==i)))}))&&(e.activeItems[0]&&(e._selectedItems=[e.activeItems[0]],e.onDidChangeSelectionEmitter.fire(e.selectedItems),e.onDidAcceptEmitter.fire({inBackground:!1})),e._quickNavigate=void 0)}}))}},{key:"update",value:function(){if(this.visible){var e=!!this._hideInput&&this._items.length>0;this.ui.container.classList.toggle("hidden-input",e&&!this.description);var t={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!e,progressBar:!e,visibleCount:!0,count:this.canSelectMany,ok:"default"===this.ok?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(t),(0,Ee.Z)((0,Ne.Z)(n.prototype),"update",this).call(this),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");var i=this.ariaLabel||this.placeholder||n.DEFAULT_ARIA_LABEL;if(this.ui.inputBox.ariaLabel!==i&&(this.ui.inputBox.ariaLabel=i),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated)switch(this.itemsUpdated=!1,this.ui.list.setElements(this.items),this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case Ea.jG.NONE:this._itemActivation=Ea.jG.FIRST;break;case Ea.jG.SECOND:this.ui.list.focus(Va.Second),this._itemActivation=Ea.jG.FIRST;break;case Ea.jG.LAST:this.ui.list.focus(Va.Last),this._itemActivation=Ea.jG.FIRST;break;default:this.trySelectFirst()}this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",this.ui.setComboboxAccessibility(!0),t.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(Va.First))}}}]),n}(ds);hs.DEFAULT_ARIA_LABEL=(0,kn.N)("quickInputBox.ariaLabel","Type to narrow down results.");var fs=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e){var i;return(0,F.Z)(this,n),(i=t.call(this)).options=e,i.comboboxAccessibility=!1,i.enabled=!0,i.onDidAcceptEmitter=i._register(new B.Q5),i.onDidCustomEmitter=i._register(new B.Q5),i.onDidTriggerButtonEmitter=i._register(new B.Q5),i.keyMods={ctrlCmd:!1,alt:!1},i.controller=null,i.onShowEmitter=i._register(new B.Q5),i.onShow=i.onShowEmitter.event,i.onHideEmitter=i._register(new B.Q5),i.onHide=i.onHideEmitter.event,i.idPrefix=e.idPrefix,i.parentElement=e.container,i.styles=e.styles,i.registerKeyModsListeners(),i}return(0,j.Z)(n,[{key:"registerKeyModsListeners",value:function(){var e=this,t=function(t){e.keyMods.ctrlCmd=t.ctrlKey||t.metaKey,e.keyMods.alt=t.altKey};this._register(ne.addDisposableListener(window,ne.EventType.KEY_DOWN,t,!0)),this._register(ne.addDisposableListener(window,ne.EventType.KEY_UP,t,!0)),this._register(ne.addDisposableListener(window,ne.EventType.MOUSE_DOWN,t,!0))}},{key:"getUI",value:function(){var e=this;if(this.ui)return this.ui;var t=ne.append(this.parentElement,ls(".quick-input-widget.show-file-icons"));t.tabIndex=-1,t.style.display="none";var n=ne.createStyleSheet(t),i=ne.append(t,ls(".quick-input-titlebar")),r=this._register(new $r.o(i));r.domNode.classList.add("quick-input-left-action-bar");var o=ne.append(i,ls(".quick-input-title")),a=this._register(new $r.o(i));a.domNode.classList.add("quick-input-right-action-bar");var s=ne.append(t,ls(".quick-input-description")),u=ne.append(t,ls(".quick-input-header")),l=ne.append(u,ls("input.quick-input-check-all"));l.type="checkbox",this._register(ne.addStandardDisposableListener(l,ne.EventType.CHANGE,(function(e){var t=l.checked;k.setAllVisibleChecked(t)}))),this._register(ne.addDisposableListener(l,ne.EventType.CLICK,(function(e){(e.x||e.y)&&f.setFocus()})));var c=ne.append(u,ls(".quick-input-description")),d=ne.append(u,ls(".quick-input-and-message")),h=ne.append(d,ls(".quick-input-filter")),f=this._register(new $a(h));f.setAttribute("aria-describedby","".concat(this.idPrefix,"message"));var p=ne.append(h,ls(".quick-input-visible-count"));p.setAttribute("aria-live","polite"),p.setAttribute("aria-atomic","true");var v=new Qa.Z(p,{countFormat:(0,kn.N)({key:"quickInput.visibleCount",comment:["This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers."]},"{0} Results")}),g=ne.append(h,ls(".quick-input-count"));g.setAttribute("aria-live","polite");var m=new Qa.Z(g,{countFormat:(0,kn.N)({key:"quickInput.countSelected",comment:["This tells the user how many items are selected in a list of items to select from. The items can be anything."]},"{0} Selected")}),_=ne.append(u,ls(".quick-input-action")),y=new ss(_);y.label=(0,kn.N)("ok","OK"),this._register(y.onDidClick((function(t){e.onDidAcceptEmitter.fire()})));var b=ne.append(u,ls(".quick-input-action")),w=new ss(b);w.label=(0,kn.N)("custom","Custom"),this._register(w.onDidClick((function(t){e.onDidCustomEmitter.fire()})));var C=ne.append(d,ls("#".concat(this.idPrefix,"message.quick-input-message"))),k=this._register(new Ua(t,this.idPrefix+"list",this.options));this._register(k.onChangedAllVisibleChecked((function(e){l.checked=e}))),this._register(k.onChangedVisibleCount((function(e){v.setCount(e)}))),this._register(k.onChangedCheckedCount((function(e){m.setCount(e)}))),this._register(k.onLeave((function(){setTimeout((function(){f.setFocus(),e.controller instanceof hs&&e.controller.canSelectMany&&k.clearFocus()}),0)}))),this._register(k.onDidChangeFocus((function(){e.comboboxAccessibility&&e.getUI().inputBox.setAttribute("aria-activedescendant",e.getUI().list.getActiveDescendant()||"")})));var S=new is(t);S.getContainer().classList.add("quick-input-progress");var x=ne.trackFocus(t);return this._register(x),this._register(ne.addDisposableListener(t,ne.EventType.FOCUS,(function(t){e.previousFocusElement=t.relatedTarget instanceof HTMLElement?t.relatedTarget:void 0}),!0)),this._register(x.onDidBlur((function(){e.getUI().ignoreFocusOut||e.options.ignoreFocusOut()||e.hide(Ea.Jq.Blur),e.previousFocusElement=void 0}))),this._register(ne.addDisposableListener(t,ne.EventType.FOCUS,(function(e){f.setFocus()}))),this._register(ne.addDisposableListener(t,ne.EventType.KEY_DOWN,(function(n){var i=new cn.y(n);switch(i.keyCode){case 3:ne.EventHelper.stop(n,!0),e.onDidAcceptEmitter.fire();break;case 9:ne.EventHelper.stop(n,!0),e.hide(Ea.Jq.Gesture);break;case 2:if(!i.altKey&&!i.ctrlKey&&!i.metaKey){var r=[".action-label.codicon"];t.classList.contains("show-checkboxes")?r.push("input"):r.push("input[type=text]"),e.getUI().list.isDisplayed()&&r.push(".monaco-list");var o=t.querySelectorAll(r.join(", "));i.shiftKey&&i.target===o[0]?(ne.EventHelper.stop(n,!0),o[o.length-1].focus()):i.shiftKey||i.target!==o[o.length-1]||(ne.EventHelper.stop(n,!0),o[0].focus())}}}))),this.ui={container:t,styleSheet:n,leftActionBar:r,titleBar:i,title:o,description1:s,description2:c,rightActionBar:a,checkAll:l,filterContainer:h,inputBox:f,visibleCountContainer:p,visibleCount:v,countContainer:g,count:m,okContainer:_,ok:y,message:C,customButtonContainer:b,customButton:w,list:k,progressBar:S,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,isScreenReaderOptimized:function(){return e.options.isScreenReaderOptimized()},show:function(t){return e.show(t)},hide:function(){return e.hide()},setVisibilities:function(t){return e.setVisibilities(t)},setComboboxAccessibility:function(t){return e.setComboboxAccessibility(t)},setEnabled:function(t){return e.setEnabled(t)},setContextKey:function(t){return e.options.setContextKey(t)}},this.updateStyles(),this.ui}},{key:"pick",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:H.T.None;return new Promise((function(r,o){var a=function(e){a=r,n.onKeyMods&&n.onKeyMods(u.keyMods),r(e)};if(i.isCancellationRequested)a(void 0);else{var s,u=t.createQuickPick(),l=[u,u.onDidAccept((function(){if(u.canSelectMany)a(u.selectedItems.slice()),u.hide();else{var e=u.activeItems[0];e&&(a(e),u.hide())}})),u.onDidChangeActive((function(e){var t=e[0];t&&n.onDidFocus&&n.onDidFocus(t)})),u.onDidChangeSelection((function(e){if(!u.canSelectMany){var t=e[0];t&&(a(t),u.hide())}})),u.onDidTriggerItemButton((function(e){return n.onDidTriggerItemButton&&n.onDidTriggerItemButton(Object.assign(Object.assign({},e),{removeItem:function(){var t=u.items.indexOf(e.item);if(-1!==t){var n=u.items.slice(),i=n.splice(t,1),r=u.activeItems.filter((function(e){return e!==i[0]}));u.items=n,r&&(u.activeItems=r)}}}))})),u.onDidChangeValue((function(e){!s||e||1===u.activeItems.length&&u.activeItems[0]===s||(u.activeItems=[s])})),i.onCancellationRequested((function(){u.hide()})),u.onDidHide((function(){(0,Me.B9)(l),a(void 0)}))];u.title=n.title,u.canSelectMany=!!n.canPickMany,u.placeholder=n.placeHolder,u.ignoreFocusOut=!!n.ignoreFocusLost,u.matchOnDescription=!!n.matchOnDescription,u.matchOnDetail=!!n.matchOnDetail,u.matchOnLabel=void 0===n.matchOnLabel||n.matchOnLabel,u.autoFocusOnList=void 0===n.autoFocusOnList||n.autoFocusOnList,u.quickNavigate=n.quickNavigate,u.contextKey=n.contextKey,u.busy=!0,Promise.all([e,n.activeItem]).then((function(e){var t=(0,at.Z)(e,2),n=t[0],i=t[1];s=i,u.busy=!1,u.items=n,u.canSelectMany&&(u.selectedItems=n.filter((function(e){return"separator"!==e.type&&e.picked}))),s&&(u.activeItems=[s])})),u.show(),Promise.resolve(e).then(void 0,(function(e){o(e),u.hide()}))}}))}},{key:"createQuickPick",value:function(){var e=this.getUI();return new hs(e)}},{key:"show",value:function(e){var t=this.getUI();this.onShowEmitter.fire();var n=this.controller;this.controller=e,n&&n.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(dn.Z.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),ne.reset(t.message),t.progressBar.stop(),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.ignoreFocusOut=!1,this.setComboboxAccessibility(!1),t.inputBox.ariaLabel="";var i=this.options.backKeybindingLabel();cs.tooltip=i?(0,kn.N)("quickInput.backWithKeybinding","Back ({0})",i):(0,kn.N)("quickInput.back","Back"),t.container.style.display="",this.updateLayout(),t.inputBox.setFocus()}},{key:"setVisibilities",value:function(e){var t=this.getUI();t.title.style.display=e.title?"":"none",t.description1.style.display=e.description&&(e.inputBox||e.checkAll)?"":"none",t.description2.style.display=!e.description||e.inputBox||e.checkAll?"none":"",t.checkAll.style.display=e.checkAll?"":"none",t.filterContainer.style.display=e.inputBox?"":"none",t.visibleCountContainer.style.display=e.visibleCount?"":"none",t.countContainer.style.display=e.count?"":"none",t.okContainer.style.display=e.ok?"":"none",t.customButtonContainer.style.display=e.customButton?"":"none",t.message.style.display=e.message?"":"none",t.progressBar.getContainer().style.display=e.progressBar?"":"none",t.list.display(!!e.list),t.container.classList[e.checkBox?"add":"remove"]("show-checkboxes"),this.updateLayout()}},{key:"setComboboxAccessibility",value:function(e){if(e!==this.comboboxAccessibility){var t=this.getUI();this.comboboxAccessibility=e,this.comboboxAccessibility?(t.inputBox.setAttribute("role","combobox"),t.inputBox.setAttribute("aria-haspopup","true"),t.inputBox.setAttribute("aria-autocomplete","list"),t.inputBox.setAttribute("aria-activedescendant",t.list.getActiveDescendant()||"")):(t.inputBox.removeAttribute("role"),t.inputBox.removeAttribute("aria-haspopup"),t.inputBox.removeAttribute("aria-autocomplete"),t.inputBox.removeAttribute("aria-activedescendant"))}}},{key:"setEnabled",value:function(e){if(e!==this.enabled){this.enabled=e;var t,n=(0,X.Z)(this.getUI().leftActionBar.viewItems);try{for(n.s();!(t=n.n()).done;){t.value.getAction().enabled=e}}catch(o){n.e(o)}finally{n.f()}var i,r=(0,X.Z)(this.getUI().rightActionBar.viewItems);try{for(r.s();!(i=r.n()).done;){i.value.getAction().enabled=e}}catch(o){r.e(o)}finally{r.f()}this.getUI().checkAll.disabled=!e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}},{key:"hide",value:function(e){var t,n=this.controller;if(n){var i=!(null===(t=this.ui)||void 0===t?void 0:t.container.contains(document.activeElement));this.controller=null,this.onHideEmitter.fire(),this.getUI().container.style.display="none",i||(this.previousFocusElement&&this.previousFocusElement.offsetParent?(this.previousFocusElement.focus(),this.previousFocusElement=void 0):this.options.returnFocus()),n.didHide(e)}}},{key:"layout",value:function(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}},{key:"updateLayout",value:function(){if(this.ui){this.ui.container.style.top="".concat(this.titleBarOffset,"px");var e=this.ui.container.style,t=Math.min(.62*this.dimension.width,n.MAX_WIDTH);e.width=t+"px",e.marginLeft="-"+t/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&.4*this.dimension.height)}}},{key:"applyStyles",value:function(e){this.styles=e,this.updateStyles()}},{key:"updateStyles",value:function(){if(this.ui){var e=this.styles.widget,t=e.quickInputTitleBackground,n=e.quickInputBackground,i=e.quickInputForeground,r=e.contrastBorder,o=e.widgetShadow;this.ui.titleBar.style.backgroundColor=t?t.toString():"",this.ui.container.style.backgroundColor=n?n.toString():"",this.ui.container.style.color=i?i.toString():"",this.ui.container.style.border=r?"1px solid ".concat(r):"",this.ui.container.style.boxShadow=o?"0 0 8px 2px ".concat(o):"",this.ui.inputBox.style(this.styles.inputBox),this.ui.count.style(this.styles.countBadge),this.ui.ok.style(this.styles.button),this.ui.customButton.style(this.styles.button),this.ui.progressBar.style(this.styles.progressBar),this.ui.list.style(this.styles.list);var a=[];this.styles.list.pickerGroupBorder&&a.push(".quick-input-list .quick-input-list-entry { border-top-color: ".concat(this.styles.list.pickerGroupBorder,"; }")),this.styles.list.pickerGroupForeground&&a.push(".quick-input-list .quick-input-list-separator { color: ".concat(this.styles.list.pickerGroupForeground,"; }")),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(a.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&a.push("background-color: ".concat(this.styles.keybindingLabel.keybindingLabelBackground,";")),this.styles.keybindingLabel.keybindingLabelBorder&&a.push("border-color: ".concat(this.styles.keybindingLabel.keybindingLabelBorder,";")),this.styles.keybindingLabel.keybindingLabelBottomBorder&&a.push("border-bottom-color: ".concat(this.styles.keybindingLabel.keybindingLabelBottomBorder,";")),this.styles.keybindingLabel.keybindingLabelShadow&&a.push("box-shadow: inset 0 -1px 0 ".concat(this.styles.keybindingLabel.keybindingLabelShadow,";")),this.styles.keybindingLabel.keybindingLabelForeground&&a.push("color: ".concat(this.styles.keybindingLabel.keybindingLabelForeground,";")),a.push("}"));var s=a.join("\n");s!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=s)}}}]),n}(Me.JT);fs.MAX_WIDTH=600;var ps=n(62137),vs=n(73921),gs=n(60106),ms=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},_s=function(e,t){return function(n,i){t(n,i,e)}},ys=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;return(0,F.Z)(this,n),(r=t.call(this)).quickInputService=e,r.instantiationService=i,r.registry=Xi.B.as(vs.IP.Quickaccess),r.mapProviderToDescriptor=new Map,r.lastAcceptedPickerValues=new Map,r.visibleQuickAccess=void 0,r}return(0,j.Z)(n,[{key:"show",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1?arguments[1]:void 0,i=this.getOrInstantiateProvider(t),r=(0,at.Z)(i,2),o=r[0],a=r[1],s=this.visibleQuickAccess,u=null===s||void 0===s?void 0:s.descriptor;if(s&&a&&u===a)return t===a.prefix||(null===n||void 0===n?void 0:n.preserveValue)||(s.picker.value=t),void this.adjustValueSelection(s.picker,a,n);if(a&&!(null===n||void 0===n?void 0:n.preserveValue)){var l=void 0;if(s&&u&&u!==a){var c=s.value.substr(u.prefix.length);c&&(l="".concat(a.prefix).concat(c))}if(!l){var d=null===o||void 0===o?void 0:o.defaultFilterValue;d===vs.Ry.LAST?l=this.lastAcceptedPickerValues.get(a):"string"===typeof d&&(l="".concat(a.prefix).concat(d))}"string"===typeof l&&(t=l)}var h=new Me.SL,f=h.add(this.quickInputService.createQuickPick());f.value=t,this.adjustValueSelection(f,a,n),f.placeholder=null===a||void 0===a?void 0:a.placeholder,f.quickNavigate=null===n||void 0===n?void 0:n.quickNavigateConfiguration,f.hideInput=!!f.quickNavigate&&!s,("number"===typeof(null===n||void 0===n?void 0:n.itemActivation)||(null===n||void 0===n?void 0:n.quickNavigateConfiguration))&&(f.itemActivation=null!==(e=null===n||void 0===n?void 0:n.itemActivation)&&void 0!==e?e:ps.jG.SECOND),f.contextKey=null===a||void 0===a?void 0:a.contextKey,f.filterValue=function(e){return e.substring(a?a.prefix.length:0)},(null===a||void 0===a?void 0:a.placeholder)&&(f.ariaLabel=null===a||void 0===a?void 0:a.placeholder),h.add(this.registerPickerListeners(f,o,a,t));var p=h.add(new H.A);o&&h.add(o.provide(f,p.token)),(0,gs.I)(f.onDidHide)((function(){0===f.selectedItems.length&&p.cancel(),h.dispose()})),f.show()}},{key:"adjustValueSelection",value:function(e,t,n){var i,r;r=(null===n||void 0===n?void 0:n.preserveValue)?[e.value.length,e.value.length]:[null!==(i=null===t||void 0===t?void 0:t.prefix.length)&&void 0!==i?i:0,e.value.length],e.valueSelection=r}},{key:"registerPickerListeners",value:function(e,t,n,i){var r=this,o=new Me.SL,a=this.visibleQuickAccess={picker:e,descriptor:n,value:i};return o.add((0,Me.OF)((function(){a===r.visibleQuickAccess&&(r.visibleQuickAccess=void 0)}))),o.add(e.onDidChangeValue((function(e){var n=r.getOrInstantiateProvider(e);(0,at.Z)(n,1)[0]!==t?r.show(e,{preserveValue:!0}):a.value=e}))),n&&o.add(e.onDidAccept((function(){r.lastAcceptedPickerValues.set(n,e.value)}))),o}},{key:"getOrInstantiateProvider",value:function(e){var t=this.registry.getQuickAccessProvider(e);if(!t)return[void 0,void 0];var n=this.mapProviderToDescriptor.get(t);return n||(n=this.instantiationService.createInstance(t.ctor),this.mapProviderToDescriptor.set(t,n)),[n,t]}}]),n}(Me.JT);ys=ms([_s(0,ps.eJ),_s(1,di.TG)],ys);var bs=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ws=function(e,t){return function(n,i){t(n,i,e)}},Cs=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a){var s;return(0,F.Z)(this,n),(s=t.call(this,r)).instantiationService=e,s.contextKeyService=i,s.accessibilityService=o,s.layoutService=a,s.contexts=new Map,s}return(0,j.Z)(n,[{key:"controller",get:function(){return this._controller||(this._controller=this._register(this.createController())),this._controller}},{key:"quickAccess",get:function(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(ys))),this._quickAccess}},{key:"createController",value:function(){var e,t,n=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.layoutService,r=arguments.length>1?arguments[1]:void 0,o={idPrefix:"quickInput_",container:i.container,ignoreFocusOut:function(){return!1},isScreenReaderOptimized:function(){return n.accessibilityService.isScreenReaderOptimized()},backKeybindingLabel:function(){},setContextKey:function(e){return n.setContextKey(e)},returnFocus:function(){return i.focus()},createList:function(e,t,i,r,o){return n.instantiationService.createInstance(zo.ev,e,t,i,r,o)},styles:this.computeStyles()},a=this._register(new fs(Object.assign(Object.assign({},o),r)));return a.layout(i.dimension,null!==(t=null===(e=i.offset)||void 0===e?void 0:e.top)&&void 0!==t?t:0),this._register(i.onDidLayout((function(e){var t,n;return a.layout(e,null!==(n=null===(t=i.offset)||void 0===t?void 0:t.top)&&void 0!==n?n:0)}))),this._register(a.onShow((function(){return n.resetContextKeys()}))),this._register(a.onHide((function(){return n.resetContextKeys()}))),a}},{key:"setContextKey",value:function(e){var t;e&&((t=this.contexts.get(e))||(t=new li.uy(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),t&&t.get()||(this.resetContextKeys(),t&&t.set(!0))}},{key:"resetContextKeys",value:function(){this.contexts.forEach((function(e){e.get()&&e.reset()}))}},{key:"pick",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:H.T.None;return this.controller.pick(e,t,n)}},{key:"createQuickPick",value:function(){return this.controller.createQuickPick()}},{key:"updateStyles",value:function(){this.controller.applyStyles(this.computeStyles())}},{key:"computeStyles",value:function(){return{widget:Object.assign({},(0,bo.o)(this.theme,{quickInputBackground:mr.zK,quickInputForeground:mr.tZ,quickInputTitleBackground:mr.lo,contrastBorder:mr.lR,widgetShadow:mr.rh})),inputBox:(0,bo.o)(this.theme,{inputForeground:mr.zJ,inputBackground:mr.sE,inputBorder:mr.dt,inputValidationInfoBackground:mr._l,inputValidationInfoForeground:mr.YI,inputValidationInfoBorder:mr.EP,inputValidationWarningBackground:mr.RV,inputValidationWarningForeground:mr.SU,inputValidationWarningBorder:mr.C3,inputValidationErrorBackground:mr.p,inputValidationErrorForeground:mr._t,inputValidationErrorBorder:mr.OZ}),countBadge:(0,bo.o)(this.theme,{badgeBackground:mr.g8,badgeForeground:mr.qe,badgeBorder:mr.lR}),button:(0,bo.o)(this.theme,{buttonForeground:mr.j5,buttonBackground:mr.b7,buttonHoverBackground:mr.GO,buttonBorder:mr.lR}),progressBar:(0,bo.o)(this.theme,{progressBarBackground:mr.zR}),keybindingLabel:(0,bo.o)(this.theme,{keybindingLabelBackground:mr.oQ,keybindingLabelForeground:mr.lW,keybindingLabelBorder:mr.AW,keybindingLabelBottomBorder:mr.K1,keybindingLabelShadow:mr.rh}),list:(0,bo.o)(this.theme,{listBackground:mr.zK,listInactiveFocusForeground:mr._2,listInactiveFocusBackground:mr.Vq,listFocusOutline:mr.xL,listInactiveFocusOutline:mr.xL,pickerGroupBorder:mr.op,pickerGroupForeground:mr.kJ})}}}]),n}(fi.bB),ks=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Ss=function(e,t){return function(n,i){t(n,i,e)}},xs=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i,r,o,a,s){var u;(0,F.Z)(this,n),(u=t.call(this,i,r,o,a,s)).host=void 0;var l=Es.get(e);return u.host={_serviceBrand:void 0,get container(){return l.widget.getDomNode()},get dimension(){return e.getLayoutInfo()},get onDidLayout(){return e.onDidLayoutChange},focus:function(){return e.focus()}},u}return(0,j.Z)(n,[{key:"createController",value:function(){return(0,Ee.Z)((0,Ne.Z)(n.prototype),"createController",this).call(this,this.host)}}]),n}(Cs=bs([ws(0,di.TG),ws(1,li.i6),ws(2,fi.XE),ws(3,pi.F),ws(4,Eo)],Cs));xs=ks([Ss(1,di.TG),Ss(2,li.i6),Ss(3,fi.XE),Ss(4,pi.F),Ss(5,Eo)],xs);var Ls=function(){function e(t,n){(0,F.Z)(this,e),this.instantiationService=t,this.codeEditorService=n,this.mapEditorToService=new Map}return(0,j.Z)(e,[{key:"activeService",get:function(){var e=this,t=this.codeEditorService.getFocusedCodeEditor();if(!t)throw new Error("Quick input service needs a focused editor to work.");var n=this.mapEditorToService.get(t);if(!n){var i=n=this.instantiationService.createInstance(xs,t);this.mapEditorToService.set(t,n),(0,gs.I)(t.onDidDispose)((function(){i.dispose(),e.mapEditorToService.delete(t)}))}return n}},{key:"quickAccess",get:function(){return this.activeService.quickAccess}},{key:"pick",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:H.T.None;return this.activeService.pick(e,t,n)}},{key:"createQuickPick",value:function(){return this.activeService.createQuickPick()}}]),e}();Ls=ks([Ss(0,di.TG),Ss(1,Q.$)],Ls);var Es=function(){function e(t){(0,F.Z)(this,e),this.editor=t,this.widget=new Ds(this.editor)}return(0,j.Z)(e,[{key:"dispose",value:function(){this.widget.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();Es.ID="editor.controller.quickInput";var Ns,Ds=function(){function e(t){(0,F.Z)(this,e),this.codeEditor=t,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}return(0,j.Z)(e,[{key:"getId",value:function(){return e.ID}},{key:"getDomNode",value:function(){return this.domNode}},{key:"getPosition",value:function(){return{preference:2}}},{key:"dispose",value:function(){this.codeEditor.removeOverlayWidget(this)}}]),e}();Ds.ID="editor.contrib.quickInputWidget",(0,La._K)(Es.ID,Es),function(e){var t=new Zo.y,n=function(){function e(t,n){(0,F.Z)(this,e),this._serviceId=t,this._factory=n,this._value=null}return(0,j.Z)(e,[{key:"id",get:function(){return this._serviceId}},{key:"get",value:function(e){if(!this._value){if(e&&(this._value=e[this._serviceId.toString()]),this._value||(this._value=this._factory(e)),!this._value)throw new Error("Service "+this._serviceId+" is missing!");t.set(this._serviceId,this._value)}return this._value}}]),e}();e.LazyStaticService=n;var i=[];function r(e,t){var r=new n(e,t);return i.push(r),r}e.init=function(e){var t,n=new Zo.y,r=(0,X.Z)((0,ra.d)());try{for(r.s();!(t=r.n()).done;){var o=(0,at.Z)(t.value,2),a=o[0],s=o[1];n.set(a,s)}}catch(c){r.e(c)}finally{r.f()}for(var u in e)e.hasOwnProperty(u)&&n.set((0,di.yh)(u),e[u]);i.forEach((function(t){return n.set(t.id,t.get(e))}));var l=new jo(n,!0);return n.set(di.TG,l),[n,l]},e.instantiationService=r(di.TG,(function(){return new jo(t,!0)}));var o=new qn;e.configurationService=r(gn.Ui,(function(){return o})),e.resourceConfigurationService=r(bt.V,(function(){return new Gn(o)})),e.resourcePropertiesService=r(bt.y,(function(){return new $n(o)})),e.contextService=r(Pn.ec,(function(){return new Xn})),e.labelService=r(Bo.e,(function(){return new ti})),e.telemetryService=r(ko.b,(function(){return new Qn})),e.dialogService=r(To.S,(function(){return new Wn})),e.notificationService=r(An.lT,(function(){return new Vn})),e.markerService=r(Wo.lT,(function(){return new Uo})),e.modeService=r(ke.h,(function(e){return new nr})),e.standaloneThemeService=r(si.Z,(function(){return new Or})),e.logService=r(Ct.VZ,(function(){return new Ct.$V(new Ct.kw)})),e.undoRedoService=r(ca.tJ,(function(t){return new Sa(e.dialogService.get(t),e.notificationService.get(t))})),e.modelService=r(yt.q,(function(t){return new ir.BR(e.configurationService.get(t),e.resourcePropertiesService.get(t),e.standaloneThemeService.get(t),e.logService.get(t),e.undoRedoService.get(t))})),e.markerDecorationsService=r(Xo.i,(function(t){return new ia(e.modelService.get(t),e.markerService.get(t))})),e.contextKeyService=r(li.i6,(function(t){return new Yr(e.configurationService.get(t))})),e.codeEditorService=r(Q.$,(function(t){return new Mi(null,e.contextKeyService.get(t),e.standaloneThemeService.get(t))})),e.editorProgressService=r(gi.e,(function(){return new zn})),e.storageService=r(Ko.Uy,(function(){return new Ko.vm})),e.editorWorkerService=r(Ce.p,(function(t){return new Dt(e.modelService.get(t),e.resourceConfigurationService.get(t),e.logService.get(t))}))}(Ns||(Ns={}));var Ms=function(e){(0,xe.Z)(n,e);var t=(0,Le.Z)(n);function n(e,i){var r;(0,F.Z)(this,n),r=t.call(this);var o=Ns.init(i),a=(0,at.Z)(o,2),s=a[0],u=a[1];r._serviceCollection=s,r._instantiationService=u;var l=r.get(gn.Ui),c=r.get(An.lT),d=r.get(ko.b),h=r.get(fi.XE),f=r.get(Ct.VZ),p=r.get(li.i6),v=function(e,t){var n=null;return i&&(n=i[e.toString()]),n||(n=t()),r._serviceCollection.set(e,n),n};v(pi.F,(function(){return new sa(p,l)})),v(zo.Lw,(function(){return new zo.XN(h)}));var g=v(ue.H,(function(){return new Yn(r._instantiationService)})),m=v(hi.d,(function(){return r._register(new Un(p,g,d,c,f,e))})),_=v(Eo,(function(){return new ni(Ns.codeEditorService.get(Q.$),e)}));v(ps.eJ,(function(){return new Ls(u,Ns.codeEditorService.get(Q.$))}));var y=v(ci.u,(function(){return r._register(new Mo(_))}));return v(vi.p,(function(){return new la})),v(ci.i,(function(){var e=new Lo(d,c,y,m,h);return e.configure({blockMouse:!1}),r._register(e)})),v(ui.co,(function(){return new $o(g)})),v(fn.vu,(function(){return new ei(Ns.modelService.get(yt.q))})),r}return(0,j.Z)(n,[{key:"get",value:function(e){var t=this._serviceCollection.get(e);if(!t)throw new Error("Missing service "+e);return t}},{key:"set",value:function(e,t){this._serviceCollection.set(e,t)}},{key:"has",value:function(e){return this._serviceCollection.has(e)}}]),n}(Me.JT),Ts=n(47014);function Os(e,t,n){var i=new Ms(e,t),r=null;i.has(Se.S)||(r=new Bn(Ns.modelService.get()),i.set(Se.S,r)),i.has(le.v4)||i.set(le.v4,new ve(i.get(Q.$),i.get(ue.H)));var o=n(i);return r&&r.setEditor(o),o}function Is(e,t,n){return Os(e,n||{},(function(n){return new Ri(e,t,n,n.get(di.TG),n.get(Q.$),n.get(ue.H),n.get(li.i6),n.get(hi.d),n.get(ci.u),n.get(si.Z),n.get(An.lT),n.get(gn.Ui),n.get(pi.F),n.get(yt.q),n.get(ke.h))}))}function As(e){return Ns.codeEditorService.get().onCodeEditorAdd((function(t){e(t)}))}function Ps(e,t,n){return Os(e,n||{},(function(n){return new Zi(e,t,n,n.get(di.TG),n.get(li.i6),n.get(hi.d),n.get(ci.u),n.get(Ce.p),n.get(Q.$),n.get(si.Z),n.get(An.lT),n.get(gn.Ui),n.get(ci.i),n.get(gi.e),n.get(vi.p))}))}function Rs(e,t){return new ge.F(e,t)}function Zs(e,t,n){return Fi(Ns.modelService.get(),Ns.modeService.get(),e,t,n)}function Fs(e,t){Ns.modelService.get().setMode(e,Ns.modeService.get().create(t))}function js(e,t,n){e&&Ns.markerService.get().changeOne(t,e.uri,n)}function Hs(e){return Ns.markerService.get().read(e)}function Bs(e){return Ns.markerService.get().onMarkerChanged(e)}function zs(e){return Ns.modelService.get().getModel(e)}function Ws(){return Ns.modelService.get().getModels()}function Vs(e){return Ns.modelService.get().onModelAdded(e)}function Ys(e){return Ns.modelService.get().onModelRemoved(e)}function Us(e){return Ns.modelService.get().onModelModeChanged((function(t){e({model:t.model,oldLanguage:t.oldModeId})}))}function Ks(e){return function(e,t){return new Rt(e,t)}(Ns.modelService.get(),e)}function qs(e,t){var n=Ns.standaloneThemeService.get();return n.registerEditorContainer(e),sn.colorizeElement(n,Ns.modeService.get(),e,t)}function Gs(e,t,n){return Ns.standaloneThemeService.get().registerEditorContainer(document.body),sn.colorize(Ns.modeService.get(),e,t,n)}function $s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4;return Ns.standaloneThemeService.get().registerEditorContainer(document.body),sn.colorizeModelLine(e,t,n)}function Qs(e,t){Ns.modeService.get().triggerMode(t);for(var n=function(e){var t=be.RW.get(e);return t||{getInitialState:function(){return we.nO},tokenize:function(t,n,i,r){return(0,we.Ri)(e,t,i,r)}}}(t),i=(0,Ue.uq)(e),r=[],o=n.getInitialState(),a=0,s=i.length;a<s;a++){var u=i[a],l=n.tokenize(u,!0,o,0);r[a]=l.tokens,o=l.endState}return r}function Xs(e,t){Ns.standaloneThemeService.get().defineTheme(e,t)}function Js(e){Ns.standaloneThemeService.get().setTheme(e)}function eu(){(0,Ts.P)()}function tu(e,t){return ue.P.registerCommand({id:e,handler:t})}function nu(e,t){return"boolean"===typeof e?e:t}function iu(e,t){return"string"===typeof e?e:t}function ru(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&(e=e.map((function(e){return e.toLowerCase()})));var n=function(e){var t,n={},i=(0,X.Z)(e);try{for(i.s();!(t=i.n()).done;)n[t.value]=!0}catch(r){i.e(r)}finally{i.f()}return n}(e);return t?function(e){return void 0!==n[e.toLowerCase()]&&n.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==n[e]&&n.hasOwnProperty(e)}}function ou(e,t){t=t.replace(/@@/g,"\x01");var n,i=0;do{n=!1,t=t.replace(/@(\w+)/g,(function(i,r){n=!0;var o="";if("string"===typeof e[r])o=e[r];else{if(!(e[r]&&e[r]instanceof RegExp))throw void 0===e[r]?Ut(e,"language definition does not contain attribute '"+r+"', used at: "+t):Ut(e,"attribute reference '"+r+"' must be a string, used at: "+t);o=e[r].source}return Wt(o)?"":"(?:"+o+")"})),i++}while(n&&i<5);t=t.replace(/\x01/g,"@");var r=(e.ignoreCase?"i":"")+(e.unicode?"u":"");return new RegExp(t,r)}function au(e,t,n,i){var r=-1,o=n,a=n.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);a&&(a[3]&&(r=parseInt(a[3]),a[2]&&(r+=100)),o=a[4]);var s,u="~",l=o;if(o&&0!==o.length?/^\w*$/.test(l)?u="==":(a=o.match(/^(@|!@|~|!~|==|!=)(.*)$/))&&(u=a[1],l=a[2]):(u="!=",l=""),"~"!==u&&"!~"!==u||!/^(\w|\|)*$/.test(l))if("@"===u||"!@"===u){var c=e[l];if(!c)throw Ut(e,"the @ match target '"+l+"' is not defined, in rule: "+t);if(!function(e,t){if(!t)return!1;if(!Array.isArray(t))return!1;var n,i=(0,X.Z)(t);try{for(i.s();!(n=i.n()).done;)if(!e(n.value))return!1}catch(r){i.e(r)}finally{i.f()}return!0}((function(e){return"string"===typeof e}),c))throw Ut(e,"the @ match target '"+l+"' must be an array of strings, in rule: "+t);var d=ru(c,e.ignoreCase);s=function(e){return"@"===u?d(e):!d(e)}}else if("~"===u||"!~"===u)if(l.indexOf("$")<0){var h=ou(e,"^"+l+"$");s=function(e){return"~"===u?h.test(e):!h.test(e)}}else s=function(t,n,i,r){return ou(e,"^"+Kt(e,l,n,i,r)+"$").test(t)};else if(l.indexOf("$")<0){var f=Vt(e,l);s=function(e){return"=="===u?e===f:e!==f}}else{var p=Vt(e,l);s=function(t,n,i,r,o){var a=Kt(e,p,n,i,r);return"=="===u?t===a:t!==a}}else{var v=ru(l.split("|"),e.ignoreCase);s=function(e){return"~"===u?v(e):!v(e)}}return-1===r?{name:n,value:i,test:function(e,t,n,i){return s(e,e,t,n,i)}}:{name:n,value:i,test:function(e,t,n,i){var o=function(e,t,n,i){if(i<0)return e;if(i<t.length)return t[i];if(i>=100){i-=100;var r=n.split(".");if(r.unshift(n),i<r.length)return r[i]}return null}(e,t,n,r);return s(o||"",e,t,n,i)}}}function su(e,t,n){if(n){if("string"===typeof n)return n;if(n.token||""===n.token){if("string"!==typeof n.token)throw Ut(e,"a 'token' attribute must be of type string, in rule: "+t);var i={token:n.token};if(n.token.indexOf("$")>=0&&(i.tokenSubst=!0),"string"===typeof n.bracket)if("@open"===n.bracket)i.bracket=1;else{if("@close"!==n.bracket)throw Ut(e,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+t);i.bracket=-1}if(n.next){if("string"!==typeof n.next)throw Ut(e,"the next state must be a string value in rule: "+t);var r=n.next;if(!/^(@pop|@push|@popall)$/.test(r)&&("@"===r[0]&&(r=r.substr(1)),r.indexOf("$")<0&&!function(e,t){for(var n=t;n&&n.length>0;){if(e.stateNames[n])return!0;var i=n.lastIndexOf(".");n=i<0?null:n.substr(0,i)}return!1}(e,Kt(e,r,"",[],""))))throw Ut(e,"the next state '"+n.next+"' is not defined in rule: "+t);i.next=r}return"number"===typeof n.goBack&&(i.goBack=n.goBack),"string"===typeof n.switchTo&&(i.switchTo=n.switchTo),"string"===typeof n.log&&(i.log=n.log),"string"===typeof n.nextEmbedded&&(i.nextEmbedded=n.nextEmbedded,e.usesEmbedded=!0),i}if(Array.isArray(n)){for(var o=[],a=0,s=n.length;a<s;a++)o[a]=su(e,t,n[a]);return{group:o}}if(n.cases){var u=[];for(var l in n.cases)if(n.cases.hasOwnProperty(l)){var c=su(e,t,n.cases[l]);"@default"===l||"@"===l||""===l?u.push({test:void 0,value:c,name:l}):"@eos"===l?u.push({test:function(e,t,n,i){return i},value:c,name:l}):u.push(au(e,t,l,c))}var d=e.defaultToken;return{test:function(e,t,n,i){for(var r=0,o=u;r<o.length;r++){var a=o[r];if(!a.test||a.test(e,t,n,i))return a.value}return d}}}throw Ut(e,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+t)}return{token:""}}var uu=function(){function e(t){(0,F.Z)(this,e),this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=t}return(0,j.Z)(e,[{key:"setRegex",value:function(e,t){var n;if("string"===typeof t)n=t;else{if(!(t instanceof RegExp))throw Ut(e,"rules must start with a match string or regular expression: "+this.name);n=t.source}this.matchOnlyAtLineStart=n.length>0&&"^"===n[0],this.name=this.name+": "+n,this.regex=ou(e,"^(?:"+(this.matchOnlyAtLineStart?n.substr(1):n)+")")}},{key:"setAction",value:function(e,t){this.action=su(e,this.name,t)}}]),e}();function lu(e){Qi.dQ.registerLanguage(e)}function cu(){var e=[];return e=e.concat(Qi.dQ.getLanguages())}function du(e){var t=Ns.modeService.get().getLanguageIdentifier(e);return t?t.id:0}function hu(e,t){var n=Ns.modeService.get().onDidCreateMode((function(i){i.getId()===e&&(n.dispose(),t())}));return n}function fu(e,t){var n=Ns.modeService.get().getLanguageIdentifier(e);if(!n)throw new Error("Cannot set configuration for unknown language ".concat(e));return We.zu.register(n,t,100)}var pu=function(){function e(t,n){(0,F.Z)(this,e),this._languageIdentifier=t,this._actual=n}return(0,j.Z)(e,[{key:"getInitialState",value:function(){return this._actual.getInitialState()}},{key:"tokenize",value:function(e,t,n,i){if("function"===typeof this._actual.tokenize)return vu.adaptTokenize(this._languageIdentifier.language,this._actual,e,n,i);throw new Error("Not supported!")}},{key:"tokenize2",value:function(e,t,n){var i=this._actual.tokenizeEncoded(e,n);return new K.Hi(i.tokens,i.endState)}}]),e}(),vu=function(){function e(t,n,i){(0,F.Z)(this,e),this._standaloneThemeService=t,this._languageIdentifier=n,this._actual=i}return(0,j.Z)(e,[{key:"getInitialState",value:function(){return this._actual.getInitialState()}},{key:"tokenize",value:function(t,n,i,r){return e.adaptTokenize(this._languageIdentifier.language,this._actual,t,i,r)}},{key:"_toBinaryTokens",value:function(e,t){for(var n=this._languageIdentifier.id,i=this._standaloneThemeService.getColorTheme().tokenTheme,r=[],o=0,a=0,s=0,u=e.length;s<u;s++){var l=e[s],c=i.match(n,l.scopes);if(!(o>0&&r[o-1]===c)){var d=l.startIndex;0===s?d=0:d<a&&(d=a),r[o++]=d+t,r[o++]=c,a=d}}for(var h=new Uint32Array(o),f=0;f<o;f++)h[f]=r[f];return h}},{key:"tokenize2",value:function(e,t,n,i){var r,o=this._actual.tokenize(e,n),a=this._toBinaryTokens(o.tokens,i);return r=o.endState.equals(n)?n:o.endState,new K.Hi(a,r)}}],[{key:"_toClassicTokens",value:function(e,t,n){for(var i=[],r=0,o=0,a=e.length;o<a;o++){var s=e[o],u=s.startIndex;0===o?u=0:u<r&&(u=r),i[o]=new K.WU(u+n,s.scopes,t),r=u}return i}},{key:"adaptTokenize",value:function(t,n,i,r,o){var a,s=n.tokenize(i,r),u=e._toClassicTokens(s.tokens,t,o);return a=s.endState.equals(r)?r:s.endState,new K.hG(u,a)}}]),e}();function gu(e){return e&&"function"===typeof e.then}function mu(e){if(e){for(var t=[null],n=1,i=e.length;n<i;n++)t[n]=rr.Il.fromHex(e[n]);Ns.standaloneThemeService.get().setColorMapOverride(t)}else Ns.standaloneThemeService.get().setColorMapOverride(null)}function _u(e,t){var n=Ns.modeService.get().getLanguageIdentifier(e);if(!n)throw new Error("Cannot set tokens provider for unknown language ".concat(e));var i=function(e){return function(e){return"tokenizeEncoded"in e}(e)?new pu(n,e):new vu(Ns.standaloneThemeService.get(),n,e)};return gu(t)?be.RW.registerPromise(e,t.then((function(e){return i(e)}))):be.RW.register(e,i(t))}function yu(e,t){var n=function(t){return function(e,t,n,i){return new rn(e,t,n,i)}(Ns.modeService.get(),Ns.standaloneThemeService.get(),e,function(e,t){if(!t||"object"!==typeof t)throw new Error("Monarch: expecting a language definition object");var n={};n.languageId=e,n.includeLF=nu(t.includeLF,!1),n.noThrow=!1,n.maxStack=100,n.start="string"===typeof t.start?t.start:null,n.ignoreCase=nu(t.ignoreCase,!1),n.unicode=nu(t.unicode,!1),n.tokenPostfix=iu(t.tokenPostfix,"."+n.languageId),n.defaultToken=iu(t.defaultToken,"source"),n.usesEmbedded=!1;var i=t;function r(e,o,a){var s,u=(0,X.Z)(a);try{for(u.s();!(s=u.n()).done;){var l=s.value,c=l.include;if(c){if("string"!==typeof c)throw Ut(n,"an 'include' attribute must be a string at: "+e);if("@"===c[0]&&(c=c.substr(1)),!t.tokenizer[c])throw Ut(n,"include target '"+c+"' is not defined at: "+e);r(e+"."+c,o,t.tokenizer[c])}else{var d=new uu(e);if(Array.isArray(l)&&l.length>=1&&l.length<=3)if(d.setRegex(i,l[0]),l.length>=3)if("string"===typeof l[1])d.setAction(i,{token:l[1],next:l[2]});else{if("object"!==typeof l[1])throw Ut(n,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+e);var h=l[1];h.next=l[2],d.setAction(i,h)}else d.setAction(i,l[1]);else{if(!l.regex)throw Ut(n,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+e);l.name&&"string"===typeof l.name&&(d.name=l.name),l.matchOnlyAtStart&&(d.matchOnlyAtLineStart=nu(l.matchOnlyAtLineStart,!1)),d.setRegex(i,l.regex),d.setAction(i,l.action)}o.push(d)}}}catch(f){u.e(f)}finally{u.f()}}if(i.languageId=e,i.includeLF=n.includeLF,i.ignoreCase=n.ignoreCase,i.unicode=n.unicode,i.noThrow=n.noThrow,i.usesEmbedded=n.usesEmbedded,i.stateNames=t.tokenizer,i.defaultToken=n.defaultToken,!t.tokenizer||"object"!==typeof t.tokenizer)throw Ut(n,"a language definition must define the 'tokenizer' attribute as an object");for(var o in n.tokenizer=[],t.tokenizer)if(t.tokenizer.hasOwnProperty(o)){n.start||(n.start=o);var a=t.tokenizer[o];n.tokenizer[o]=new Array,r("tokenizer."+o,n.tokenizer[o],a)}if(n.usesEmbedded=i.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw Ut(n,"the 'brackets' attribute must be defined as an array")}else t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];var s,u=[],l=(0,X.Z)(t.brackets);try{for(l.s();!(s=l.n()).done;){var c=s.value;if(c&&Array.isArray(c)&&3===c.length&&(c={token:c[2],open:c[0],close:c[1]}),c.open===c.close)throw Ut(n,"open and close brackets in a 'brackets' attribute must be different: "+c.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if("string"!==typeof c.open||"string"!==typeof c.token||"string"!==typeof c.close)throw Ut(n,"every element in the 'brackets' array must be a '{open,close,token}' object or array");u.push({token:c.token+n.tokenPostfix,open:Vt(n,c.open),close:Vt(n,c.close)})}}catch(d){l.e(d)}finally{l.f()}return n.brackets=u,n.noThrow=!0,n}(e,t))};return gu(t)?be.RW.registerPromise(e,t.then((function(e){return n(e)}))):be.RW.register(e,n(t))}function bu(e,t){return be.FL.register(e,t)}function wu(e,t){return be.G0.register(e,t)}function Cu(e,t){return be.nD.register(e,t)}function ku(e,t){return be.xp.register(e,{provideHover:function(e,n,i){var r=e.getWordAtPosition(n);return Promise.resolve(t.provideHover(e,n,i)).then((function(e){if(e)return!e.range&&r&&(e.range=new Y.e(n.lineNumber,r.startColumn,n.lineNumber,r.endColumn)),e.range||(e.range=new Y.e(n.lineNumber,n.column,n.lineNumber,n.column)),e}))}})}function Su(e,t){return be.vJ.register(e,t)}function xu(e,t){return be.vH.register(e,t)}function Lu(e,t){return be.id.register(e,t)}function Eu(e,t){return be.Ct.register(e,t)}function Nu(e,t){return be.vI.register(e,t)}function Du(e,t){return be.tA.register(e,t)}function Mu(e,t){return be.He.register(e,t)}function Tu(e,t){return be.H9.register(e,{provideCodeActions:function(e,n,i,r){var o=Ns.markerService.get().read({resource:e.uri}).filter((function(e){return Y.e.areIntersectingOrTouching(e,n)}));return t.provideCodeActions(e,n,{markers:o,only:i.only},r)}})}function Ou(e,t){return be.Az.register(e,t)}function Iu(e,t){return be.vN.register(e,t)}function Au(e,t){return be.ln.register(e,t)}function Pu(e,t){return be.pM.register(e,t)}function Ru(e,t){return be.KZ.register(e,t)}function Zu(e,t){return be.OH.register(e,t)}function Fu(e,t){return be.aC.register(e,t)}function ju(e,t){return be.RN.register(e,t)}function Hu(e,t){return be.AC.register(e,t)}function Bu(e,t){return be.wT.register(e,t)}function zu(e,t){return be.K7.register(e,t)}var Wu,Vu=n(61335);Z.BH.wrappingIndent.defaultValue=0,Z.BH.glyphMargin.defaultValue=!1,Z.BH.autoIndent.defaultValue=3,Z.BH.overviewRulerLanes.defaultValue=2,Vu.xC.setFormatterSelector((function(e,t,n){return Promise.resolve(e[0])}));var Yu=G();Yu.editor={create:Is,onDidCreateEditor:As,createDiffEditor:Ps,createDiffNavigator:Rs,createModel:Zs,setModelLanguage:Fs,setModelMarkers:js,getModelMarkers:Hs,onDidChangeMarkers:Bs,getModels:Ws,getModel:zs,onDidCreateModel:Vs,onWillDisposeModel:Ys,onDidChangeModelLanguage:Us,createWebWorker:Ks,colorizeElement:qs,colorize:Gs,colorizeModelLine:$s,tokenize:Qs,defineTheme:Xs,setTheme:Js,remeasureFonts:eu,registerCommand:tu,AccessibilitySupport:i,ContentWidgetPositionPreference:u,CursorChangeReason:l,DefaultEndOfLine:c,EditorAutoIndentStrategy:h,EditorOption:f,EndOfLinePreference:p,EndOfLineSequence:v,MinimapPosition:w,MouseTargetType:C,OverlayWidgetPositionPreference:k,OverviewRulerLane:S,RenderLineNumbersType:x,RenderMinimap:L,ScrollbarVisibility:N,ScrollType:E,TextEditorCursorBlinkingStyle:I,TextEditorCursorStyle:A,TrackedRangeStickiness:P,WrappingIndent:R,ConfigurationChangedEvent:Z.Bb,BareFontInfo:me.E4,FontInfo:me.pR,TextModelResolvedOptions:ye.dJ,FindMatch:ye.tk,EditorType:_e.g,EditorOptions:Z.BH},Yu.languages={register:lu,getLanguages:cu,onLanguage:hu,getEncodedLanguageId:du,setLanguageConfiguration:fu,setColorMap:mu,setTokensProvider:_u,setMonarchTokensProvider:yu,registerReferenceProvider:bu,registerRenameProvider:wu,registerCompletionItemProvider:Ru,registerSignatureHelpProvider:Cu,registerHoverProvider:ku,registerDocumentSymbolProvider:Su,registerDocumentHighlightProvider:xu,registerLinkedEditingRangeProvider:Lu,registerDefinitionProvider:Eu,registerImplementationProvider:Nu,registerTypeDefinitionProvider:Du,registerCodeLensProvider:Mu,registerCodeActionProvider:Tu,registerDocumentFormattingEditProvider:Ou,registerDocumentRangeFormattingEditProvider:Iu,registerOnTypeFormattingEditProvider:Au,registerLinkProvider:Pu,registerColorProvider:Zu,registerFoldingRangeProvider:Fu,registerDeclarationProvider:ju,registerSelectionRangeProvider:Hu,registerDocumentSemanticTokensProvider:Bu,registerDocumentRangeSemanticTokensProvider:zu,DocumentHighlightKind:d,CompletionItemKind:o,CompletionItemTag:a,CompletionItemInsertTextRule:r,SymbolKind:T,SymbolTag:O,IndentAction:g,CompletionTriggerKind:s,SignatureHelpTriggerKind:M,InlineHintKind:m,FoldingRangeKind:be.AD};var Uu=Yu.CancellationTokenSource,Ku=Yu.Emitter,qu=Yu.KeyCode,Gu=Yu.KeyMod,$u=Yu.Position,Qu=Yu.Range,Xu=Yu.Selection,Ju=Yu.SelectionDirection,el=Yu.MarkerSeverity,tl=Yu.MarkerTag,nl=Yu.Uri,il=Yu.Token,rl=Yu.editor,ol=Yu.languages;((null===(Wu=Oe.li.MonacoEnvironment)||void 0===Wu?void 0:Wu.globalAPI)||"function"===typeof define&&n.amdO)&&(self.monaco=Yu),"undefined"!==typeof self.require&&"function"===typeof self.require.config&&self.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]})},51342:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var i=(0,n(84596).yh)("themeService")},24116:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages},Q5:function(){return i.Emitter},Sf:function(){return i.Uri},ZL:function(){return i.MarkerSeverity},e6:function(){return i.Range},j6:function(){return i.editor}});var i=n(14717)},38429:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages},Q5:function(){return i.Emitter},Sf:function(){return i.Uri},ZL:function(){return i.MarkerSeverity},e6:function(){return i.Range},j6:function(){return i.editor}});var i=n(14717)},3570:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages},Q5:function(){return i.Emitter},ZL:function(){return i.MarkerSeverity},e6:function(){return i.Range},j6:function(){return i.editor}});var i=n(14717)},81864:function(e,t,n){"use strict";n.d(t,{Mj:function(){return i.languages},Q5:function(){return i.Emitter},Sf:function(){return i.Uri},ZL:function(){return i.MarkerSeverity},e6:function(){return i.Range},eB:function(){return i.MarkerTag},j6:function(){return i.editor}});var i=n(14717)},56345:function(e,t,n){"use strict";function i(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return function(e,t){return 0===t.length?e:e.replace(/\{(\d+)\}/g,(function(e,n){var i=n[0];return"undefined"!==typeof t[i]?t[i]:e}))}(t,i)}n.d(t,{N:function(){return i}})},40782:function(e,t,n){"use strict";n.d(t,{F:function(){return o},U:function(){return a}});var i=n(84596),r=n(18948),o=(0,i.yh)("accessibilityService"),a=new r.uy("accessibilityModeEnabled",!1)},31585:function(e,t,n){"use strict";n.d(t,{BH:function(){return x},NZ:function(){return L},U8:function(){return E},co:function(){return S},eH:function(){return k},vr:function(){return C}});var i=n(29439),r=n(60136),o=n(29388),a=n(93433),s=n(37762),u=n(43144),l=n(15671),c=n(29077),d=n(84596),h=n(18948),f=n(72611),p=n(81626),v=n(11732),g=n(70182),m=n(98900),_=n(28214),y=n(4354),b=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},w=function(e,t){return function(n,i){t(n,i,e)}};function C(e){return void 0!==e.command}var k=(0,u.Z)((function e(t){(0,l.Z)(this,e),this.id=e._idPool++,this._debugName=t}));k._idPool=0,k.CommandPalette=new k("CommandPalette"),k.EditorContext=new k("EditorContext"),k.EditorContextCopy=new k("EditorContextCopy"),k.EditorContextPeek=new k("EditorContextPeek"),k.MenubarEditMenu=new k("MenubarEditMenu"),k.MenubarCopy=new k("MenubarCopy"),k.MenubarGoMenu=new k("MenubarGoMenu"),k.MenubarSelectionMenu=new k("MenubarSelectionMenu");var S=(0,d.yh)("menuService"),x=new(function(){function e(){(0,l.Z)(this,e),this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new v.Q5,this.onDidChangeMenu=this._onDidChangeMenu.event,this._commandPaletteChangeEvent={has:function(e){return e===k.CommandPalette}}}return(0,u.Z)(e,[{key:"addCommand",value:function(e){return this.addCommands(m.$.single(e))}},{key:"addCommands",value:function(e){var t,n=this,i=(0,s.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;this._commands.set(r.id,r)}}catch(o){i.e(o)}finally{i.f()}return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent),(0,p.OF)((function(){var t,i=!1,r=(0,s.Z)(e);try{for(r.s();!(t=r.n()).done;){var a=t.value;i=n._commands.delete(a.id)||i}}catch(o){r.e(o)}finally{r.f()}i&&n._onDidChangeMenu.fire(n._commandPaletteChangeEvent)}))}},{key:"getCommand",value:function(e){return this._commands.get(e)}},{key:"getCommands",value:function(){var e=new Map;return this._commands.forEach((function(t,n){return e.set(n,t)})),e}},{key:"appendMenuItem",value:function(e,t){return this.appendMenuItems(m.$.single({id:e,item:t}))}},{key:"appendMenuItems",value:function(e){var t,n=this,i=new Set,r=new _.S,o=(0,s.Z)(e);try{for(o.s();!(t=o.n()).done;){var a=t.value,u=a.id,l=a.item,c=this._menuItems.get(u);c||(c=new _.S,this._menuItems.set(u,c)),r.push(c.push(l)),i.add(u)}}catch(d){o.e(d)}finally{o.f()}return this._onDidChangeMenu.fire(i),(0,p.OF)((function(){if(r.size>0){var e,t=(0,s.Z)(r);try{for(t.s();!(e=t.n()).done;){(0,e.value)()}}catch(d){t.e(d)}finally{t.f()}n._onDidChangeMenu.fire(i),r.clear()}}))}},{key:"getMenuItems",value:function(e){var t;return t=this._menuItems.has(e)?(0,a.Z)(this._menuItems.get(e)):[],e===k.CommandPalette&&this._appendImplicitItems(t),t}},{key:"_appendImplicitItems",value:function(e){var t,n=new Set,i=(0,s.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;C(r)&&(n.add(r.command.id),r.alt&&n.add(r.alt.id))}}catch(o){i.e(o)}finally{i.f()}this._commands.forEach((function(t,i){n.has(i)||e.push({command:t})}))}}]),e}()),L=function(e){(0,r.Z)(n,e);var t=(0,o.Z)(n);function n(e,i,r,o){var a;return(0,l.Z)(this,n),(a=t.call(this,"submenuitem.".concat(e.submenu.id),"string"===typeof e.title?e.title:e.title.value,[],"submenu")).item=e,a._menuService=i,a._contextKeyService=r,a._options=o,a}return(0,u.Z)(n,[{key:"actions",get:function(){var e=[],t=this._menuService.createMenu(this.item.submenu,this._contextKeyService),n=t.getActions(this._options);t.dispose();var r,o=(0,s.Z)(n);try{for(o.s();!(r=o.n()).done;){var u=(0,i.Z)(r.value,2)[1];u.length>0&&(e.push.apply(e,(0,a.Z)(u)),e.push(new c.Z0))}}catch(l){o.e(l)}finally{o.f()}return e.length&&e.pop(),e}}]),n}(c.wY),E=function(){function e(t,n,i,r,o){var a;if((0,l.Z)(this,e),this._commandService=o,this.id=t.id,this.label="string"===typeof t.title?t.title:t.title.value,this.tooltip=null!==(a=t.tooltip)&&void 0!==a?a:"",this.enabled=!t.precondition||r.contextMatchesRules(t.precondition),this.checked=!1,t.toggled){var s=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=r.contextMatchesRules(s.condition),this.checked&&s.tooltip&&(this.tooltip="string"===typeof s.tooltip?s.tooltip:s.tooltip.value),s.title&&(this.label="string"===typeof s.title?s.title:s.title.value)}this.item=t,this.alt=n?new e(n,void 0,i,r,o):void 0,this._options=i,g.kS.isThemeIcon(t.icon)&&(this.class=y.dT.asClassName(t.icon))}return(0,u.Z)(e,[{key:"dispose",value:function(){}},{key:"run",value:function(){var e,t,n,i=[];if((null===(t=this._options)||void 0===t?void 0:t.arg)&&(i=[].concat((0,a.Z)(i),[this._options.arg])),null===(n=this._options)||void 0===n?void 0:n.shouldForwardArgs){for(var r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];i=[].concat((0,a.Z)(i),o)}return(e=this._commandService).executeCommand.apply(e,[this.id].concat((0,a.Z)(i)))}}]),e}();E=b([w(3,h.i6),w(4,f.H)],E)},38794:function(e,t,n){"use strict";n.d(t,{p:function(){return i}});var i=(0,n(84596).yh)("clipboardService")},72611:function(e,t,n){"use strict";n.d(t,{H:function(){return h},P:function(){return f}});var i=n(37762),r=n(15671),o=n(43144),a=n(81626),s=n(25941),u=n(84596),l=n(11732),c=n(28214),d=n(98900),h=(0,u.yh)("commandService"),f=new(function(){function e(){(0,r.Z)(this,e),this._commands=new Map,this._onDidRegisterCommand=new l.Q5,this.onDidRegisterCommand=this._onDidRegisterCommand.event}return(0,o.Z)(e,[{key:"registerCommand",value:function(e,t){var n=this;if(!e)throw new Error("invalid command");if("string"===typeof e){if(!t)throw new Error("invalid command");return this.registerCommand({id:e,handler:t})}if(e.description){var r,o=[],u=(0,i.Z)(e.description.args);try{for(u.s();!(r=u.n()).done;){var l=r.value;o.push(l.constraint)}}catch(g){u.e(g)}finally{u.f()}var d=e.handler;e.handler=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return(0,s.D8)(n,o),d.apply(void 0,[e].concat(n))}}var h=e.id,f=this._commands.get(h);f||(f=new c.S,this._commands.set(h,f));var p=f.unshift(e),v=(0,a.OF)((function(){p();var e=n._commands.get(h);(null===e||void 0===e?void 0:e.isEmpty())&&n._commands.delete(h)}));return this._onDidRegisterCommand.fire(h),v}},{key:"registerCommandAlias",value:function(e,t){return f.registerCommand(e,(function(e){for(var n,i=arguments.length,r=new Array(i>1?i-1:0),o=1;o<i;o++)r[o-1]=arguments[o];return(n=e.get(h)).executeCommand.apply(n,[t].concat(r))}))}},{key:"getCommand",value:function(e){var t=this._commands.get(e);if(t&&!t.isEmpty())return d.$.first(t)}},{key:"getCommands",value:function(){var e,t=new Map,n=(0,i.Z)(this._commands.keys());try{for(n.s();!(e=n.n()).done;){var r=e.value,o=this.getCommand(r);o&&t.set(r,o)}}catch(a){n.e(a)}finally{n.f()}return t}}]),e}());f.registerCommand("noop",(function(){}))},98921:function(e,t,n){"use strict";n.d(t,{KV:function(){return l},MR:function(){return f},Mt:function(){return h},O4:function(){return p},Od:function(){return u},Ui:function(){return s},xL:function(){return c}});var i=n(37762),r=n(38774),o=n(84596),a=n(72885),s=(0,o.yh)("configurationService");function u(e,t){var n=Object.create(null);for(var i in e)l(n,i,e[i],t);return n}function l(e,t,n,i){for(var r=t.split("."),o=r.pop(),a=e,s=0;s<r.length;s++){var u=r[s],l=a[u];switch(typeof l){case"undefined":l=a[u]=Object.create(null);break;case"object":break;default:return void i("Ignoring ".concat(t," as ").concat(r.slice(0,s+1).join(".")," is ").concat(JSON.stringify(l)))}a=l}if("object"===typeof a&&null!==a)try{a[o]=n}catch(c){i("Ignoring ".concat(t," as ").concat(r.join(".")," is ").concat(JSON.stringify(a)))}else i("Ignoring ".concat(t," as ").concat(r.join(".")," is ").concat(JSON.stringify(a)))}function c(e,t){d(e,t.split("."))}function d(e,t){var n=t.shift();if(0!==t.length){if(-1!==Object.keys(e).indexOf(n)){var i=e[n];"object"!==typeof i||Array.isArray(i)||(d(i,t),0===Object.keys(i).length&&delete e[n])}}else delete e[n]}function h(e,t,n){var r=function(e,t){var n,r=e,o=(0,i.Z)(t);try{for(o.s();!(n=o.n()).done;){var a=n.value;if("object"!==typeof r||null===r)return;r=r[a]}}catch(s){o.e(s)}finally{o.f()}return r}(e,t.split("."));return"undefined"===typeof r?n:r}function f(){var e=r.B.as(a.IP.Configuration).getConfigurationProperties();return Object.keys(e)}function p(){var e=Object.create(null),t=r.B.as(a.IP.Configuration).getConfigurationProperties();for(var n in t){l(e,n,t[n].default,(function(e){return console.error("Conflict in default settings: ".concat(e))}))}return e}},72885:function(e,t,n){"use strict";n.d(t,{G1:function(){return C},IP:function(){return h},Uh:function(){return k}});var i=n(37762),r=n(93433),o=n(15671),a=n(43144),s=n(56345),u=n(11732),l=n(38774),c=n(25941),d=n(27930),h={Configuration:"base.contributions.configuration"},f={properties:{},patternProperties:{}},p={properties:{},patternProperties:{}},v={properties:{},patternProperties:{}},g={properties:{},patternProperties:{}},m={properties:{},patternProperties:{}},_={properties:{},patternProperties:{}},y="vscode://schemas/settings/resourceLanguage",b=l.B.as(d.I.JSONContribution),w=function(){function e(){(0,o.Z)(this,e),this.overrideIdentifiers=new Set,this._onDidSchemaChange=new u.Q5,this._onDidUpdateConfiguration=new u.Q5,this.defaultValues={},this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:s.N("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:"Unknown editor configuration setting",allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.excludedConfigurationProperties={},b.registerSchema(y,this.resourceLanguageSettingsSchema)}return(0,a.Z)(e,[{key:"registerConfiguration",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.registerConfigurations([e],t)}},{key:"registerConfigurations",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=[];e.forEach((function(e){i.push.apply(i,(0,r.Z)(t.validateAndRegisterProperties(e,n,e.extensionInfo))),t.configurationContributors.push(e),t.registerJSONConfiguration(e)})),b.registerSchema(y,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire(i)}},{key:"registerOverrideIdentifiers",value:function(e){var t,n=(0,i.Z)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.overrideIdentifiers.add(r)}}catch(o){n.e(o)}finally{n.f()}this.updateOverridePropertyPatternKey()}},{key:"validateAndRegisterProperties",value:function(e){var t,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2?arguments[2]:void 0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:3;a=c.Jp(e.scope)?a:e.scope;var s=[],u=e.properties;if(u)for(var l in u)if(n&&x(l))delete u[l];else{var d=u[l];this.updatePropertyDefaultValue(l,d),C.test(l)?d.scope=void 0:(d.scope=c.Jp(d.scope)?a:d.scope,d.restricted=c.Jp(d.restricted)?!!(null===(t=null===o||void 0===o?void 0:o.restrictedConfigurations)||void 0===t?void 0:t.includes(l)):d.restricted),!u[l].hasOwnProperty("included")||u[l].included?(this.configurationProperties[l]=u[l],!u[l].deprecationMessage&&u[l].markdownDeprecationMessage&&(u[l].deprecationMessage=u[l].markdownDeprecationMessage),s.push(l)):(this.excludedConfigurationProperties[l]=u[l],delete u[l])}var h=e.allOf;if(h){var f,p=(0,i.Z)(h);try{for(p.s();!(f=p.n()).done;){var v=f.value;s.push.apply(s,(0,r.Z)(this.validateAndRegisterProperties(v,n,o,a)))}}catch(g){p.e(g)}finally{p.f()}}return s}},{key:"getConfigurationProperties",value:function(){return this.configurationProperties}},{key:"registerJSONConfiguration",value:function(e){var t=this;!function e(n){var i=n.properties;if(i)for(var r in i)t.updateSchema(r,i[r]);var o=n.allOf;o&&o.forEach(e)}(e)}},{key:"updateSchema",value:function(e,t){switch(f.properties[e]=t,t.scope){case 1:p.properties[e]=t;break;case 2:v.properties[e]=t;break;case 6:g.properties[e]=t;break;case 3:m.properties[e]=t;break;case 4:_.properties[e]=t;break;case 5:_.properties[e]=t,this.resourceLanguageSettingsSchema.properties[e]=t}}},{key:"updateOverridePropertyPatternKey",value:function(){var e,t=(0,i.Z)(this.overrideIdentifiers.values());try{for(t.s();!(e=t.n()).done;){var n=e.value,r="[".concat(n,"]"),o={type:"object",description:s.N("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:s.N("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:y};this.updatePropertyDefaultValue(r,o),f.properties[r]=o,p.properties[r]=o,v.properties[r]=o,g.properties[r]=o,m.properties[r]=o,_.properties[r]=o}}catch(a){t.e(a)}finally{t.f()}this._onDidSchemaChange.fire()}},{key:"updatePropertyDefaultValue",value:function(e,t){var n=this.defaultValues[e];c.o8(n)&&(n=t.default),c.o8(n)&&(n=function(e){switch(Array.isArray(e)?e[0]:e){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}(t.type)),t.default=n}}]),e}(),C=new RegExp("\\[.*\\]$");function k(e){return e.substring(1,e.length-1)}var S=new w;function x(e){return e.trim()?C.test(e)?s.N("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",e):void 0!==S.getConfigurationProperties()[e]?s.N("config.property.duplicate","Cannot register '{0}'. This property is already registered.",e):null:s.N("config.property.empty","Cannot register an empty property")}l.B.add(h.Configuration,S)},18948:function(e,t,n){"use strict";n.d(t,{Ao:function(){return v},Eq:function(){return P},i6:function(){return A},uy:function(){return I}});var i=n(60136),r=n(29388),o=n(93433),a=n(37762),s=n(15671),u=n(43144),l=n(51747),c=n(84596),d=n(30487),h=d.WE||"",f=new Map;f.set("false",!1),f.set("true",!0),f.set("isMac",d.dz),f.set("isLinux",d.IJ),f.set("isWindows",d.ED),f.set("isWeb",d.$L),f.set("isMacNative",d.dz&&!d.$L),f.set("isEdge",h.indexOf("Edg/")>=0),f.set("isFirefox",h.indexOf("Firefox")>=0),f.set("isChrome",h.indexOf("Chrome")>=0),f.set("isSafari",h.indexOf("Safari")>=0),f.set("isIPad",h.indexOf("iPad")>=0);var p=Object.prototype.hasOwnProperty,v=function(){function e(){(0,s.Z)(this,e)}return(0,u.Z)(e,null,[{key:"has",value:function(e){return y.create(e)}},{key:"equals",value:function(e,t){return b.create(e,t)}},{key:"regex",value:function(e,t){return D.create(e,t)}},{key:"not",value:function(e){return S.create(e)}},{key:"and",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return T.create(t)}},{key:"or",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return O.create(t)}},{key:"deserialize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e)return this._deserializeOrExpression(e,t)}},{key:"_deserializeOrExpression",value:function(e,t){var n=this,i=e.split("||");return O.create(i.map((function(e){return n._deserializeAndExpression(e,t)})))}},{key:"_deserializeAndExpression",value:function(e,t){var n=this,i=e.split("&&");return T.create(i.map((function(e){return n._deserializeOne(e,t)})))}},{key:"_deserializeOne",value:function(e,t){if((e=e.trim()).indexOf("!=")>=0){var n=e.split("!=");return k.create(n[0].trim(),this._deserializeValue(n[1],t))}if(e.indexOf("==")>=0){var i=e.split("==");return b.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("=~")>=0){var r=e.split("=~");return D.create(r[0].trim(),this._deserializeRegexValue(r[1],t))}if(e.indexOf(" in ")>=0){var o=e.split(" in ");return w.create(o[0].trim(),o[1].trim())}if(/^[^<=>]+>=[^<=>]+$/.test(e)){var a=e.split(">=");return L.create(a[0].trim(),a[1].trim())}if(/^[^<=>]+>[^<=>]+$/.test(e)){var s=e.split(">");return x.create(s[0].trim(),s[1].trim())}if(/^[^<=>]+<=[^<=>]+$/.test(e)){var u=e.split("<=");return N.create(u[0].trim(),u[1].trim())}if(/^[^<=>]+<[^<=>]+$/.test(e)){var l=e.split("<");return E.create(l[0].trim(),l[1].trim())}return/^\!\s*/.test(e)?S.create(e.substr(1).trim()):y.create(e)}},{key:"_deserializeValue",value:function(e,t){if("true"===(e=e.trim()))return!0;if("false"===e)return!1;var n=/^'([^']*)'$/.exec(e);return n?n[1].trim():e}},{key:"_deserializeRegexValue",value:function(e,t){if((0,l.m5)(e)){if(t)throw new Error("missing regexp-value for =~-expression");return console.warn("missing regexp-value for =~-expression"),null}var n=e.indexOf("/"),i=e.lastIndexOf("/");if(n===i||n<0){if(t)throw new Error("bad regexp-value '".concat(e,"', missing /-enclosure"));return console.warn("bad regexp-value '".concat(e,"', missing /-enclosure")),null}var r=e.slice(n+1,i),o="i"===e[i+1]?"i":"";try{return new RegExp(r,o)}catch(a){if(t)throw new Error("bad regexp-value '".concat(e,"', parse error: ").concat(a));return console.warn("bad regexp-value '".concat(e,"', parse error: ").concat(a)),null}}}]),e}();function g(e,t){return e.cmp(t)}var m=function(){function e(){(0,s.Z)(this,e),this.type=0}return(0,u.Z)(e,[{key:"cmp",value:function(e){return this.type-e.type}},{key:"equals",value:function(e){return e.type===this.type}},{key:"evaluate",value:function(e){return!1}},{key:"serialize",value:function(){return"false"}},{key:"keys",value:function(){return[]}},{key:"negate",value:function(){return _.INSTANCE}}]),e}();m.INSTANCE=new m;var _=function(){function e(){(0,s.Z)(this,e),this.type=1}return(0,u.Z)(e,[{key:"cmp",value:function(e){return this.type-e.type}},{key:"equals",value:function(e){return e.type===this.type}},{key:"evaluate",value:function(e){return!0}},{key:"serialize",value:function(){return"true"}},{key:"keys",value:function(){return[]}},{key:"negate",value:function(){return m.INSTANCE}}]),e}();_.INSTANCE=new _;var y=function(){function e(t){(0,s.Z)(this,e),this.key=t,this.type=2}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:R(this.key,e.key)}},{key:"equals",value:function(e){return e.type===this.type&&this.key===e.key}},{key:"evaluate",value:function(e){return!!e.getValue(this.key)}},{key:"serialize",value:function(){return this.key}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return S.create(this.key)}}],[{key:"create",value:function(t){var n=f.get(t);return"boolean"===typeof n?n?_.INSTANCE:m.INSTANCE:new e(t)}}]),e}(),b=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=4}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return e.getValue(this.key)==this.value}},{key:"serialize",value:function(){return"".concat(this.key," == '").concat(this.value,"'")}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return k.create(this.key,this.value)}}],[{key:"create",value:function(t,n){if("boolean"===typeof n)return n?y.create(t):S.create(t);var i=f.get(t);return"boolean"===typeof i?n===(i?"true":"false")?_.INSTANCE:m.INSTANCE:new e(t,n)}}]),e}(),w=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.valueKey=n,this.type=10}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.valueKey,e.key,e.valueKey)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.valueKey===e.valueKey)}},{key:"evaluate",value:function(e){var t=e.getValue(this.valueKey),n=e.getValue(this.key);return Array.isArray(t)?t.indexOf(n)>=0:"string"===typeof n&&"object"===typeof t&&null!==t&&p.call(t,n)}},{key:"serialize",value:function(){return"".concat(this.key," in '").concat(this.valueKey,"'")}},{key:"keys",value:function(){return[this.key,this.valueKey]}},{key:"negate",value:function(){return C.create(this)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),C=function(){function e(t){(0,s.Z)(this,e),this._actual=t,this.type=11}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}},{key:"equals",value:function(e){return e.type===this.type&&this._actual.equals(e._actual)}},{key:"evaluate",value:function(e){return!this._actual.evaluate(e)}},{key:"serialize",value:function(){throw new Error("Method not implemented.")}},{key:"keys",value:function(){return this._actual.keys()}},{key:"negate",value:function(){return this._actual}}],[{key:"create",value:function(t){return new e(t)}}]),e}(),k=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=5}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return e.getValue(this.key)!=this.value}},{key:"serialize",value:function(){return"".concat(this.key," != '").concat(this.value,"'")}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return b.create(this.key,this.value)}}],[{key:"create",value:function(t,n){if("boolean"===typeof n)return n?S.create(t):y.create(t);var i=f.get(t);return"boolean"===typeof i?n===(i?"true":"false")?m.INSTANCE:_.INSTANCE:new e(t,n)}}]),e}(),S=function(){function e(t){(0,s.Z)(this,e),this.key=t,this.type=3}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:R(this.key,e.key)}},{key:"equals",value:function(e){return e.type===this.type&&this.key===e.key}},{key:"evaluate",value:function(e){return!e.getValue(this.key)}},{key:"serialize",value:function(){return"!".concat(this.key)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return y.create(this.key)}}],[{key:"create",value:function(t){var n=f.get(t);return"boolean"===typeof n?n?m.INSTANCE:_.INSTANCE:new e(t)}}]),e}(),x=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=12}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return parseFloat(e.getValue(this.key))>parseFloat(this.value)}},{key:"serialize",value:function(){return"".concat(this.key," > ").concat(this.value)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return N.create(this.key,this.value)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),L=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=13}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return parseFloat(e.getValue(this.key))>=parseFloat(this.value)}},{key:"serialize",value:function(){return"".concat(this.key," >= ").concat(this.value)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return E.create(this.key,this.value)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),E=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=14}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return parseFloat(e.getValue(this.key))<parseFloat(this.value)}},{key:"serialize",value:function(){return"".concat(this.key," < ").concat(this.value)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return L.create(this.key,this.value)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),N=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.value=n,this.type=15}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:Z(this.key,this.value,e.key,e.value)}},{key:"equals",value:function(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}},{key:"evaluate",value:function(e){return parseFloat(e.getValue(this.key))<=parseFloat(this.value)}},{key:"serialize",value:function(){return"".concat(this.key," <= ").concat(this.value)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return x.create(this.key,this.value)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),D=function(){function e(t,n){(0,s.Z)(this,e),this.key=t,this.regexp=n,this.type=7}return(0,u.Z)(e,[{key:"cmp",value:function(e){if(e.type!==this.type)return this.type-e.type;if(this.key<e.key)return-1;if(this.key>e.key)return 1;var t=this.regexp?this.regexp.source:"",n=e.regexp?e.regexp.source:"";return t<n?-1:t>n?1:0}},{key:"equals",value:function(e){if(e.type===this.type){var t=this.regexp?this.regexp.source:"",n=e.regexp?e.regexp.source:"";return this.key===e.key&&t===n}return!1}},{key:"evaluate",value:function(e){var t=e.getValue(this.key);return!!this.regexp&&this.regexp.test(t)}},{key:"serialize",value:function(){var e=this.regexp?"/".concat(this.regexp.source,"/").concat(this.regexp.ignoreCase?"i":""):"/invalid/";return"".concat(this.key," =~ ").concat(e)}},{key:"keys",value:function(){return[this.key]}},{key:"negate",value:function(){return M.create(this)}}],[{key:"create",value:function(t,n){return new e(t,n)}}]),e}(),M=function(){function e(t){(0,s.Z)(this,e),this._actual=t,this.type=8}return(0,u.Z)(e,[{key:"cmp",value:function(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}},{key:"equals",value:function(e){return e.type===this.type&&this._actual.equals(e._actual)}},{key:"evaluate",value:function(e){return!this._actual.evaluate(e)}},{key:"serialize",value:function(){throw new Error("Method not implemented.")}},{key:"keys",value:function(){return this._actual.keys()}},{key:"negate",value:function(){return this._actual}}],[{key:"create",value:function(t){return new e(t)}}]),e}(),T=function(){function e(t){(0,s.Z)(this,e),this.expr=t,this.type=6}return(0,u.Z)(e,[{key:"cmp",value:function(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(var t=0,n=this.expr.length;t<n;t++){var i=g(this.expr[t],e.expr[t]);if(0!==i)return i}return 0}},{key:"equals",value:function(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(var t=0,n=this.expr.length;t<n;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}},{key:"evaluate",value:function(e){for(var t=0,n=this.expr.length;t<n;t++)if(!this.expr[t].evaluate(e))return!1;return!0}},{key:"serialize",value:function(){return this.expr.map((function(e){return e.serialize()})).join(" && ")}},{key:"keys",value:function(){var e,t=[],n=(0,a.Z)(this.expr);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push.apply(t,(0,o.Z)(i.keys()))}}catch(r){n.e(r)}finally{n.f()}return t}},{key:"negate",value:function(){var e,t=[],n=(0,a.Z)(this.expr);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push(i.negate())}}catch(r){n.e(r)}finally{n.f()}return O.create(t)}}],[{key:"create",value:function(t){return e._normalizeArr(t)}},{key:"_normalizeArr",value:function(t){var n,i=[],r=!1,s=(0,a.Z)(t);try{for(s.s();!(n=s.n()).done;){var u=n.value;if(u)if(1!==u.type){if(0===u.type)return m.INSTANCE;6!==u.type?i.push(u):i.push.apply(i,(0,o.Z)(u.expr))}else r=!0}}catch(c){s.e(c)}finally{s.f()}if(0===i.length&&r)return _.INSTANCE;if(0!==i.length){if(1===i.length)return i[0];i.sort(g);for(var l=function(){var t=i[i.length-1];if(9!==t.type)return"break";i.pop();var n=i.pop(),r=O.create(t.expr.map((function(t){return e.create([t,n])})));r&&(i.push(r),i.sort(g))};i.length>1;){if("break"===l())break}return 1===i.length?i[0]:new e(i)}}}]),e}(),O=function(){function e(t){(0,s.Z)(this,e),this.expr=t,this.type=9}return(0,u.Z)(e,[{key:"cmp",value:function(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(var t=0,n=this.expr.length;t<n;t++){var i=g(this.expr[t],e.expr[t]);if(0!==i)return i}return 0}},{key:"equals",value:function(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(var t=0,n=this.expr.length;t<n;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}},{key:"evaluate",value:function(e){for(var t=0,n=this.expr.length;t<n;t++)if(this.expr[t].evaluate(e))return!0;return!1}},{key:"serialize",value:function(){return this.expr.map((function(e){return e.serialize()})).join(" || ")}},{key:"keys",value:function(){var e,t=[],n=(0,a.Z)(this.expr);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push.apply(t,(0,o.Z)(i.keys()))}}catch(r){n.e(r)}finally{n.f()}return t}},{key:"negate",value:function(){var e,t=[],n=(0,a.Z)(this.expr);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push(i.negate())}}catch(g){n.e(g)}finally{n.f()}for(var r=function(e){return 9===e.type?e.expr:[e]};t.length>1;){var o,s=t.shift(),u=t.shift(),l=[],c=(0,a.Z)(r(s));try{for(c.s();!(o=c.n()).done;){var d,h=o.value,f=(0,a.Z)(r(u));try{for(f.s();!(d=f.n()).done;){var p=d.value;l.push(v.and(h,p))}}catch(g){f.e(g)}finally{f.f()}}}catch(g){c.e(g)}finally{c.f()}t.unshift(v.or.apply(v,l))}return t[0]}}],[{key:"create",value:function(t){var n=e._normalizeArr(t);if(0!==n.length)return 1===n.length?n[0]:new e(n)}},{key:"_normalizeArr",value:function(e){var t=[],n=!1;if(e){for(var i=0,r=e.length;i<r;i++){var o=e[i];if(o)if(0!==o.type){if(1===o.type)return[_.INSTANCE];9!==o.type?t.push(o):t=t.concat(o.expr)}else n=!0}if(0===t.length&&n)return[m.INSTANCE];t.sort(g)}return t}}]),e}(),I=function(e){(0,i.Z)(n,e);var t=(0,r.Z)(n);function n(e,i,r){var o;return(0,s.Z)(this,n),(o=t.call(this,e))._defaultValue=i,"object"===typeof r?n._info.push(Object.assign(Object.assign({},r),{key:e})):!0!==r&&n._info.push({key:e,description:r,type:null!==i&&void 0!==i?typeof i:void 0}),o}return(0,u.Z)(n,[{key:"bindTo",value:function(e){return e.createKey(this.key,this._defaultValue)}},{key:"getValue",value:function(e){return e.getContextKeyValue(this.key)}},{key:"toNegated",value:function(){return v.not(this.key)}},{key:"isEqualTo",value:function(e){return v.equals(this.key,e)}}],[{key:"all",value:function(){return n._info.values()}}]),n}(y);I._info=[];var A=(0,c.yh)("contextKeyService"),P="setContext";function R(e,t){return e<t?-1:e>t?1:0}function Z(e,t,n,i){return e<n?-1:e>n?1:t<i?-1:t>i?1:0}},49357:function(e,t,n){"use strict";n.d(t,{c:function(){return a},d:function(){return s}});var i=n(56345),r=n(18948),o=n(30487),a=new r.uy("isWindows",o.ED,(0,i.N)("isWindows","Whether the operating system is Windows")),s="inputFocus"},98989:function(e,t,n){"use strict";n.d(t,{i:function(){return o},u:function(){return r}});var i=n(84596),r=(0,i.yh)("contextViewService"),o=(0,i.yh)("contextMenuService")},34782:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var i=(0,n(84596).yh)("dialogService")},52144:function(e,t,n){"use strict";n.d(t,{M:function(){return o}});var i=n(43144),r=n(15671),o=(0,i.Z)((function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,r.Z)(this,e),this.ctor=t,this.staticArguments=n,this.supportsDelayedInstantiation=i}))},77863:function(e,t,n){"use strict";n.d(t,{d:function(){return a},z:function(){return o}});var i=n(52144),r=[];function o(e,t,n){t instanceof i.M||(t=new i.M(t,[],n)),r.push([e,t])}function a(){return r}},84596:function(e,t,n){"use strict";var i;n.d(t,{I8:function(){return i},TG:function(){return r},jt:function(){return s},yh:function(){return a}}),function(e){e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies",e.getServiceDependencies=function(t){return t[e.DI_DEPENDENCIES]||[]}}(i||(i={}));var r=a("instantiationService");function o(e,t,n,r){t[i.DI_TARGET]===t?t[i.DI_DEPENDENCIES].push({id:e,index:n,optional:r}):(t[i.DI_DEPENDENCIES]=[{id:e,index:n,optional:r}],t[i.DI_TARGET]=t)}function a(e){if(i.serviceIds.has(e))return i.serviceIds.get(e);var t=function e(t,n,i){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");o(e,t,i,!1)};return t.toString=function(){return e},i.serviceIds.set(e,t),t}function s(e){return function(t,n,i){if(3!==arguments.length)throw new Error("@optional-decorator can only be used to decorate a parameter");o(e,t,i,!0)}}},41001:function(e,t,n){"use strict";n.d(t,{y:function(){return a}});var i=n(29439),r=n(15671),o=n(43144),a=function(){function e(){(0,r.Z)(this,e),this._entries=new Map;for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];for(var a=0,s=n;a<s.length;a++){var u=(0,i.Z)(s[a],2),l=u[0],c=u[1];this.set(l,c)}}return(0,o.Z)(e,[{key:"set",value:function(e,t){var n=this._entries.get(e);return this._entries.set(e,t),n}},{key:"has",value:function(e){return this._entries.has(e)}},{key:"get",value:function(e){return this._entries.get(e)}}]),e}()},27930:function(e,t,n){"use strict";n.d(t,{I:function(){return s}});var i=n(15671),r=n(43144),o=n(38774),a=n(11732),s={JSONContribution:"base.contributions.json"};var u=new(function(){function e(){(0,i.Z)(this,e),this._onDidChangeSchema=new a.Q5,this.schemasById={}}return(0,r.Z)(e,[{key:"registerSchema",value:function(e,t){var n;this.schemasById[(n=e,n.length>0&&"#"===n.charAt(n.length-1)?n.substring(0,n.length-1):n)]=t,this._onDidChangeSchema.fire(e)}},{key:"notifySchemaChanged",value:function(e){this._onDidChangeSchema.fire(e)}}]),e}());o.B.add(s.JSONContribution,u)},97963:function(e,t,n){"use strict";n.d(t,{d:function(){return i}});var i=(0,n(84596).yh)("keybindingService")},51519:function(e,t,n){"use strict";n.d(t,{W:function(){return l}});var i=n(15671),r=n(43144),o=n(38792),a=n(30487),s=n(72611),u=n(38774),l=new(function(){function e(){(0,i.Z)(this,e),this._coreKeybindings=[],this._extensionKeybindings=[],this._cachedMergedKeybindings=null}return(0,r.Z)(e,[{key:"registerKeybindingRule",value:function(t){var n=e.bindToCurrentPlatform(t);if(n&&n.primary){var i=(0,o.gm)(n.primary,a.OS);i&&this._registerDefaultKeybinding(i,t.id,t.args,t.weight,0,t.when)}if(n&&Array.isArray(n.secondary))for(var r=0,s=n.secondary.length;r<s;r++){var u=n.secondary[r],l=(0,o.gm)(u,a.OS);l&&this._registerDefaultKeybinding(l,t.id,t.args,t.weight,-r-1,t.when)}}},{key:"registerCommandAndKeybindingRule",value:function(e){this.registerKeybindingRule(e),s.P.registerCommand(e)}},{key:"_assertNoCtrlAlt",value:function(t,n){t.ctrlKey&&t.altKey&&!t.metaKey&&e._mightProduceChar(t.keyCode)&&console.warn("Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ",t," for ",n)}},{key:"_registerDefaultKeybinding",value:function(e,t,n,i,r,o){1===a.OS&&this._assertNoCtrlAlt(e.parts[0],t),this._coreKeybindings.push({keybinding:e,command:t,commandArgs:n,when:o,weight1:i,weight2:r,extensionId:null,isBuiltinExtension:!1}),this._cachedMergedKeybindings=null}},{key:"getDefaultKeybindings",value:function(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=[].concat(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(c)),this._cachedMergedKeybindings.slice(0)}}],[{key:"bindToCurrentPlatform",value:function(e){if(1===a.OS){if(e&&e.win)return e.win}else if(2===a.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}},{key:"_mightProduceChar",value:function(e){return e>=21&&e<=30||(e>=31&&e<=56||(80===e||81===e||82===e||83===e||84===e||85===e||86===e||110===e||111===e||87===e||88===e||89===e||90===e||91===e||92===e))}}]),e}());function c(e,t){return e.weight1!==t.weight1?e.weight1-t.weight1:e.command<t.command?-1:e.command>t.command?1:e.weight2-t.weight2}u.B.add("platform.keybindingsRegistry",l)},5399:function(e,t,n){"use strict";n.d(t,{e:function(){return i}});var i=(0,n(84596).yh)("labelService")},2285:function(e,t,n){"use strict";n.d(t,{Lw:function(){return dt},XN:function(){return ht},ls:function(){return qt},ev:function(){return Zt},CQ:function(){return vt}});var i=n(4942),r=n(29439),o=n(97326),a=n(11752),s=n(61120),u=n(60136),l=n(29388),c=n(15671),d=n(43144),h=n(84540),f=(n(43185),n(81626)),p=n(49396),v=n(92814),g=n(11732),m=n(66526),_=function(){function e(t,n){(0,c.Z)(this,e),this.renderer=t,this.modelProvider=n}return(0,d.Z)(e,[{key:"templateId",get:function(){return this.renderer.templateId}},{key:"renderTemplate",value:function(e){return{data:this.renderer.renderTemplate(e),disposable:f.JT.None}}},{key:"renderElement",value:function(e,t,n,i){var r=this;if(n.disposable&&n.disposable.dispose(),n.data){var o=this.modelProvider();if(o.isResolved(e))return this.renderer.renderElement(o.get(e),e,n.data,i);var a=new m.A,s=o.resolve(e,a.token);n.disposable={dispose:function(){return a.cancel()}},this.renderer.renderPlaceholder(e,n.data),s.then((function(t){return r.renderer.renderElement(t,e,n.data,i)}))}}},{key:"disposeTemplate",value:function(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}]),e}(),y=function(){function e(t,n){(0,c.Z)(this,e),this.modelProvider=t,this.accessibilityProvider=n}return(0,d.Z)(e,[{key:"getWidgetAriaLabel",value:function(){return this.accessibilityProvider.getWidgetAriaLabel()}},{key:"getAriaLabel",value:function(e){var t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}]),e}();var b,w=function(){function e(t,n,i,r){var o=this,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};(0,c.Z)(this,e);var s=function(){return o.model},u=r.map((function(e){return new _(e,s)}));this.list=new v.aV(t,n,i,u,function(e,t){return Object.assign(Object.assign({},t),{accessibilityProvider:t.accessibilityProvider&&new y(e,t.accessibilityProvider)})}(s,a))}return(0,d.Z)(e,[{key:"updateOptions",value:function(e){this.list.updateOptions(e)}},{key:"getHTMLElement",value:function(){return this.list.getHTMLElement()}},{key:"onDidFocus",get:function(){return this.list.onDidFocus}},{key:"onDidDispose",get:function(){return this.list.onDidDispose}},{key:"onMouseDblClick",get:function(){var e=this;return g.ju.map(this.list.onMouseDblClick,(function(t){var n=t.element,i=t.index,r=t.browserEvent;return{element:void 0===n?void 0:e._model.get(n),index:i,browserEvent:r}}))}},{key:"onPointer",get:function(){var e=this;return g.ju.map(this.list.onPointer,(function(t){var n=t.element,i=t.index,r=t.browserEvent;return{element:void 0===n?void 0:e._model.get(n),index:i,browserEvent:r}}))}},{key:"onDidChangeSelection",get:function(){var e=this;return g.ju.map(this.list.onDidChangeSelection,(function(t){var n=t.elements,i=t.indexes,r=t.browserEvent;return{elements:n.map((function(t){return e._model.get(t)})),indexes:i,browserEvent:r}}))}},{key:"model",get:function(){return this._model},set:function(e){this._model=e,this.list.splice(0,this.list.length,(0,p.w6)(e.length))}},{key:"getFocus",value:function(){return this.list.getFocus()}},{key:"getSelection",value:function(){return this.list.getSelection()}},{key:"getSelectedElements",value:function(){var e=this;return this.getSelection().map((function(t){return e.model.get(t)}))}},{key:"style",value:function(e){this.list.style(e)}},{key:"dispose",value:function(){this.list.dispose()}}]),e}(),C=n(56345),k=n(98921),S=n(72885),x=n(18948),L=n(84596),E=n(97963),N=n(38774),D=n(35215),M=n(70182),T=n(49357),O=n(98900),I=n(37762),A=n(93433),P=n(31737),R=n(28664);!function(e){e[e.Unknown=0]="Unknown",e[e.Twistie=1]="Twistie",e[e.Element=2]="Element"}(b||(b={}));var Z=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){return(0,c.Z)(this,n),t.call(this,"TreeError [".concat(e,"] ").concat(i))}return(0,d.Z)(n)}((0,R.Z)(Error)),F=function(){function e(t){(0,c.Z)(this,e),this.fn=t,this._map=new WeakMap}return(0,d.Z)(e,[{key:"map",value:function(e){var t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}]),e}(),j=n(53042),H=n(6709),B=n(61680),z=n(50482),W=n(84506),V=n(95676);function Y(e){return"object"===typeof e&&"visibility"in e&&"data"in e}function U(e){switch(e){case!0:return 1;case!1:return 0;default:return e}}function K(e){return"boolean"===typeof e.collapsible}var q=function(){function e(t,n,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};(0,c.Z)(this,e),this.user=t,this.list=n,this.rootRef=[],this.eventBufferer=new g.E7,this._onDidChangeCollapseState=new g.Q5,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new g.Q5,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new g.Q5,this.onDidSplice=this._onDidSplice.event,this.collapseByDefault="undefined"!==typeof r.collapseByDefault&&r.collapseByDefault,this.filter=r.filter,this.autoExpandSingleChildren="undefined"!==typeof r.autoExpandSingleChildren&&r.autoExpandSingleChildren,this.root={parent:void 0,element:i,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}return(0,d.Z)(e,[{key:"splice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:O.$.empty(),i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(0===e.length)throw new Z(this.user,"Invalid tree location");i.diffIdentityProvider?this.spliceSmart(i.diffIdentityProvider,e,t,n,i):this.spliceSimple(e,t,n,i)}},{key:"spliceSmart",value:function(e,t,n,i,r,o){var a,s=this;void 0===i&&(i=O.$.empty()),void 0===o&&(o=null!==(a=r.diffDepth)&&void 0!==a?a:0);var u=this.getParentNodeWithListIndex(t).parentNode,l=(0,A.Z)(i),c=t[t.length-1],d=new V.Hs({getElements:function(){return u.children.map((function(t){return e.getId(t.element).toString()}))}},{getElements:function(){return[].concat((0,A.Z)(u.children.slice(0,c)),(0,A.Z)(l),(0,A.Z)(u.children.slice(c+n))).map((function(t){return e.getId(t.element).toString()}))}}).ComputeDiff(!1);if(d.quitEarly)return this.spliceSimple(t,n,l,r);var h,f=t.slice(0,-1),p=function(t,n,i){if(o>0)for(var a=0;a<i;a++)t--,n--,s.spliceSmart(e,[].concat((0,A.Z)(f),[t,0]),Number.MAX_SAFE_INTEGER,l[n].children,r,o-1)},v=Math.min(u.children.length,c+n),g=l.length,m=(0,I.Z)(d.changes.sort((function(e,t){return t.originalStart-e.originalStart})));try{for(m.s();!(h=m.n()).done;){var _=h.value;p(v,g,v-(_.originalStart+_.originalLength)),v=_.originalStart,g=_.modifiedStart-c,this.spliceSimple([].concat((0,A.Z)(f),[v]),_.originalLength,O.$.slice(l,g,g+_.modifiedLength),r)}}catch(y){m.e(y)}finally{m.f()}p(v,g,v)}},{key:"spliceSimple",value:function(e,t){for(var n,i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:O.$.empty(),o=arguments.length>3?arguments[3]:void 0,a=o.onDidCreateNode,s=o.onDidDeleteNode,u=this.getParentNodeWithListIndex(e),l=u.parentNode,c=u.listIndex,d=u.revealed,h=u.visible,f=[],p=O.$.map(r,(function(e){return i.createTreeNode(e,l,l.visible?1:0,d,f,a)})),v=e[e.length-1],g=l.children.length>0,m=0,_=v;_>=0&&_<l.children.length;_--){var y=l.children[_];if(y.visible){m=y.visibleChildIndex;break}}var b,w=[],C=0,k=0,S=(0,I.Z)(p);try{for(S.s();!(b=S.n()).done;){var x=b.value;w.push(x),k+=x.renderNodeCount,x.visible&&(x.visibleChildIndex=m+C++)}}catch(Z){S.e(Z)}finally{S.f()}var L,E=(n=l.children).splice.apply(n,[v,t].concat(w)),N=0,D=(0,I.Z)(E);try{for(D.s();!(L=D.n()).done;){L.value.visible&&N++}}catch(Z){D.e(Z)}finally{D.f()}if(0!==N)for(var M=v+w.length;M<l.children.length;M++){var T=l.children[M];T.visible&&(T.visibleChildIndex-=N)}if(l.visibleChildrenCount+=C-N,d&&h){var A=E.reduce((function(e,t){return e+(t.visible?t.renderNodeCount:0)}),0);this._updateAncestorsRenderNodeCount(l,k-A),this.list.splice(c,A,f)}if(E.length>0&&s){E.forEach((function e(t){s(t),t.children.forEach(e)}))}var P=l.children.length>0;g!==P&&this.setCollapsible(e.slice(0,-1),P),this._onDidSplice.fire({insertedNodes:w,deletedNodes:E});for(var R=l;R;){if(2===R.visibility){this.refilter();break}R=R.parent}}},{key:"rerender",value:function(e){if(0===e.length)throw new Z(this.user,"Invalid tree location");var t=this.getTreeNodeWithListIndex(e),n=t.node,i=t.listIndex,r=t.revealed;n.visible&&r&&this.list.splice(i,1,[n])}},{key:"has",value:function(e){return this.hasTreeNode(e)}},{key:"getListIndex",value:function(e){var t=this.getTreeNodeWithListIndex(e),n=t.listIndex,i=t.visible,r=t.revealed;return i&&r?n:-1}},{key:"getListRenderCount",value:function(e){return this.getTreeNode(e).renderNodeCount}},{key:"isCollapsible",value:function(e){return this.getTreeNode(e).collapsible}},{key:"setCollapsible",value:function(e,t){var n=this,i=this.getTreeNode(e);"undefined"===typeof t&&(t=!i.collapsible);var r={collapsible:t};return this.eventBufferer.bufferEvents((function(){return n._setCollapseState(e,r)}))}},{key:"isCollapsed",value:function(e){return this.getTreeNode(e).collapsed}},{key:"setCollapsed",value:function(e,t,n){var i=this,r=this.getTreeNode(e);"undefined"===typeof t&&(t=!r.collapsed);var o={collapsed:t,recursive:n||!1};return this.eventBufferer.bufferEvents((function(){return i._setCollapseState(e,o)}))}},{key:"_setCollapseState",value:function(e,t){var n=this.getTreeNodeWithListIndex(e),i=n.node,r=n.listIndex,o=n.revealed,a=this._setListNodeCollapseState(i,r,o,t);if(i!==this.root&&this.autoExpandSingleChildren&&a&&!K(t)&&i.collapsible&&!i.collapsed&&!t.recursive){for(var s=-1,u=0;u<i.children.length;u++){if(i.children[u].visible){if(s>-1){s=-1;break}s=u}}s>-1&&this._setCollapseState([].concat((0,A.Z)(e),[s]),t)}return a}},{key:"_setListNodeCollapseState",value:function(e,t,n,i){var r=this._setNodeCollapseState(e,i,!1);if(!n||!e.visible||!r)return r;var o=e.renderNodeCount,a=this.updateNodeAfterCollapseChange(e),s=o-(-1===t?0:1);return this.list.splice(t+1,s,a.slice(1)),r}},{key:"_setNodeCollapseState",value:function(e,t,n){var i;if(e===this.root?i=!1:(K(t)?(i=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(i=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):i=!1,i&&this._onDidChangeCollapseState.fire({node:e,deep:n})),!K(t)&&t.recursive){var r,o=(0,I.Z)(e.children);try{for(o.s();!(r=o.n()).done;){var a=r.value;i=this._setNodeCollapseState(a,t,!0)||i}}catch(s){o.e(s)}finally{o.f()}}return i}},{key:"expandTo",value:function(e){var t=this;this.eventBufferer.bufferEvents((function(){for(var n=t.getTreeNode(e);n.parent;)n=n.parent,e=e.slice(0,e.length-1),n.collapsed&&t._setCollapseState(e,{collapsed:!1,recursive:!1})}))}},{key:"refilter",value:function(){var e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t)}},{key:"createTreeNode",value:function(e,t,n,i,r,o){var a=this,s={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:"boolean"===typeof e.collapsible?e.collapsible:"undefined"!==typeof e.collapsed,collapsed:"undefined"===typeof e.collapsed?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},u=this._filterNode(s,n);s.visibility=u,i&&r.push(s);var l,c=e.children||O.$.empty(),d=i&&0!==u&&!s.collapsed,h=O.$.map(c,(function(e){return a.createTreeNode(e,s,u,d,r,o)})),f=0,p=1,v=(0,I.Z)(h);try{for(v.s();!(l=v.n()).done;){var g=l.value;s.children.push(g),p+=g.renderNodeCount,g.visible&&(g.visibleChildIndex=f++)}}catch(m){v.e(m)}finally{v.f()}return s.collapsible=s.collapsible||s.children.length>0,s.visibleChildrenCount=f,s.visible=2===u?f>0:1===u,s.visible?s.collapsed||(s.renderNodeCount=p):(s.renderNodeCount=0,i&&r.pop()),o&&o(s),s}},{key:"updateNodeAfterCollapseChange",value:function(e){var t=e.renderNodeCount,n=[];return this._updateNodeAfterCollapseChange(e,n),this._updateAncestorsRenderNodeCount(e.parent,n.length-t),n}},{key:"_updateNodeAfterCollapseChange",value:function(e,t){if(!1===e.visible)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed){var n,i=(0,I.Z)(e.children);try{for(i.s();!(n=i.n()).done;){var r=n.value;e.renderNodeCount+=this._updateNodeAfterCollapseChange(r,t)}}catch(o){i.e(o)}finally{i.f()}}return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}},{key:"updateNodeAfterFilterChange",value:function(e){var t=e.renderNodeCount,n=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,n),this._updateAncestorsRenderNodeCount(e.parent,n.length-t),n}},{key:"_updateNodeAfterFilterChange",value:function(e,t,n){var i,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(e!==this.root){if(0===(i=this._filterNode(e,t)))return e.visible=!1,e.renderNodeCount=0,!1;r&&n.push(e)}var o=n.length;e.renderNodeCount=e===this.root?0:1;var a=!1;if(e.collapsed&&0===i)e.visibleChildrenCount=0;else{var s,u=0,l=(0,I.Z)(e.children);try{for(l.s();!(s=l.n()).done;){var c=s.value;a=this._updateNodeAfterFilterChange(c,i,n,r&&!e.collapsed)||a,c.visible&&(c.visibleChildIndex=u++)}}catch(d){l.e(d)}finally{l.f()}e.visibleChildrenCount=u}return e!==this.root&&(e.visible=2===i?a:1===i),e.visible?e.collapsed||(e.renderNodeCount+=n.length-o):(e.renderNodeCount=0,r&&n.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}},{key:"_updateAncestorsRenderNodeCount",value:function(e,t){if(0!==t)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}},{key:"_filterNode",value:function(e,t){var n=this.filter?this.filter.filter(e.element,t):1;return"boolean"===typeof n?(e.filterData=void 0,n?1:0):Y(n)?(e.filterData=n.data,U(n.visibility)):(e.filterData=void 0,U(n))}},{key:"hasTreeNode",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.root;if(!e||0===e.length)return!0;var n=(0,W.Z)(e),i=n[0],r=n.slice(1);return!(i<0||i>t.children.length)&&this.hasTreeNode(r,t.children[i])}},{key:"getTreeNode",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.root;if(!e||0===e.length)return t;var n=(0,W.Z)(e),i=n[0],r=n.slice(1);if(i<0||i>t.children.length)throw new Z(this.user,"Invalid tree location");return this.getTreeNode(r,t.children[i])}},{key:"getTreeNodeWithListIndex",value:function(e){if(0===e.length)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};var t=this.getParentNodeWithListIndex(e),n=t.parentNode,i=t.listIndex,r=t.revealed,o=t.visible,a=e[e.length-1];if(a<0||a>n.children.length)throw new Z(this.user,"Invalid tree location");var s=n.children[a];return{node:s,listIndex:i,revealed:r,visible:o&&s.visible}}},{key:"getParentNodeWithListIndex",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.root,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=(0,W.Z)(e),a=o[0],s=o.slice(1);if(a<0||a>t.children.length)throw new Z(this.user,"Invalid tree location");for(var u=0;u<a;u++)n+=t.children[u].renderNodeCount;return i=i&&!t.collapsed,r=r&&t.visible,0===s.length?{parentNode:t,listIndex:n,revealed:i,visible:r}:this.getParentNodeWithListIndex(s,t.children[a],n+1,i,r)}},{key:"getNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.getTreeNode(e)}},{key:"getNodeLocation",value:function(e){for(var t=[],n=e;n.parent;)t.push(n.parent.children.indexOf(n)),n=n.parent;return t.reverse()}},{key:"getParentNodeLocation",value:function(e){return 0===e.length?void 0:1===e.length?[]:(0,p.JH)(e)[0]}}]),e}(),G=n(27997),$=n(30487),Q=n(5265),X=n(15723),J=n(4354),ee=(0,J.CM)("tree-item-expanded",J.lA.chevronDown),te=(0,J.CM)("tree-filter-on-type-on",J.lA.listFilter),ne=(0,J.CM)("tree-filter-on-type-off",J.lA.listSelection),ie=(0,J.CM)("tree-filter-clear",J.lA.close),re=(0,J.CM)("tree-item-loading",J.lA.loading),oe=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e.elements.map((function(e){return e.element})))).data=e,i}return(0,d.Z)(n)}(H.kX);function ae(e){return e instanceof H.kX?new oe(e):e}var se=function(){function e(t,n){(0,c.Z)(this,e),this.modelProvider=t,this.dnd=n,this.autoExpandDisposable=f.JT.None}return(0,d.Z)(e,[{key:"getDragURI",value:function(e){return this.dnd.getDragURI(e.element)}},{key:"getDragLabel",value:function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((function(e){return e.element})),t)}},{key:"onDragStart",value:function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(ae(e),t)}},{key:"onDragOver",value:function(e,t,n,i){var r=this,o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=this.dnd.onDragOver(ae(e),t&&t.element,n,i),s=this.autoExpandNode!==t;if(s&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),"undefined"===typeof t)return a;if(s&&"boolean"!==typeof a&&a.autoExpand&&(this.autoExpandDisposable=(0,G.Vg)((function(){var e=r.modelProvider(),n=e.getNodeLocation(t);e.isCollapsed(n)&&e.setCollapsed(n,!1),r.autoExpandNode=void 0}),500)),"boolean"===typeof a||!a.accept||"undefined"===typeof a.bubble||a.feedback)return o?a:{accept:"boolean"===typeof a?a:a.accept,effect:"boolean"===typeof a?void 0:a.effect,feedback:[n]};if(1===a.bubble){var u=this.modelProvider(),l=u.getNodeLocation(t),c=u.getParentNodeLocation(l),d=u.getNode(c),h=c&&u.getListIndex(c);return this.onDragOver(e,d,h,i,!1)}var f=this.modelProvider(),v=f.getNodeLocation(t),g=f.getListIndex(v),m=f.getListRenderCount(v);return Object.assign(Object.assign({},a),{feedback:(0,p.w6)(g,g+m)})}},{key:"drop",value:function(e,t,n,i){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(ae(e),t&&t.element,n,i)}},{key:"onDragEnd",value:function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}}]),e}();var ue,le=function(){function e(t){(0,c.Z)(this,e),this.delegate=t}return(0,d.Z)(e,[{key:"getHeight",value:function(e){return this.delegate.getHeight(e.element)}},{key:"getTemplateId",value:function(e){return this.delegate.getTemplateId(e.element)}},{key:"hasDynamicHeight",value:function(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}},{key:"setDynamicHeight",value:function(e,t){this.delegate.setDynamicHeight&&this.delegate.setDynamicHeight(e.element,t)}}]),e}();!function(e){e.None="none",e.OnHover="onHover",e.Always="always"}(ue||(ue={}));var ce=function(){function e(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];(0,c.Z)(this,e),this._elements=i,this.onDidChange=g.ju.forEach(t,(function(e){return n._elements=e}))}return(0,d.Z)(e,[{key:"elements",get:function(){return this._elements}}]),e}(),de=function(){function e(t,n,i,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};(0,c.Z)(this,e),this.renderer=t,this.modelProvider=n,this.activeNodes=r,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=e.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.renderedIndentGuides=new X.r,this.activeIndentNodes=new Set,this.indentGuidesDisposable=f.JT.None,this.disposables=new f.SL,this.templateId=t.templateId,this.updateOptions(o),g.ju.map(i,(function(e){return e.node}))(this.onDidChangeNodeTwistieState,this,this.disposables),t.onDidChangeTwistieState&&t.onDidChangeTwistieState(this.onDidChangeTwistieState,this,this.disposables)}return(0,d.Z)(e,[{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("undefined"!==typeof e.indent&&(this.indent=(0,Q.u)(e.indent,0,40)),"undefined"!==typeof e.renderIndentGuides){var t=e.renderIndentGuides!==ue.None;if(t!==this.shouldRenderIndentGuides&&(this.shouldRenderIndentGuides=t,this.indentGuidesDisposable.dispose(),t)){var n=new f.SL;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,n),this.indentGuidesDisposable=n,this._onDidChangeActiveNodes(this.activeNodes.elements)}}"undefined"!==typeof e.hideTwistiesOfChildlessElements&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}},{key:"renderTemplate",value:function(e){var t=(0,h.append)(e,(0,h.$)(".monaco-tl-row")),n=(0,h.append)(t,(0,h.$)(".monaco-tl-indent")),i=(0,h.append)(t,(0,h.$)(".monaco-tl-twistie")),r=(0,h.append)(t,(0,h.$)(".monaco-tl-contents")),o=this.renderer.renderTemplate(r);return{container:e,indent:n,twistie:i,indentGuidesDisposable:f.JT.None,templateData:o}}},{key:"renderElement",value:function(t,n,i,r){"number"===typeof r&&(this.renderedNodes.set(t,{templateData:i,height:r}),this.renderedElements.set(t.element,t));var o=e.DefaultIndent+(t.depth-1)*this.indent;i.twistie.style.paddingLeft="".concat(o,"px"),i.indent.style.width="".concat(o+this.indent-16,"px"),this.renderTwistie(t,i),"number"===typeof r&&this.renderIndentGuides(t,i),this.renderer.renderElement(t,n,i.templateData,r)}},{key:"disposeElement",value:function(e,t,n,i){n.indentGuidesDisposable.dispose(),this.renderer.disposeElement&&this.renderer.disposeElement(e,t,n.templateData,i),"number"===typeof i&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}},{key:"disposeTemplate",value:function(e){this.renderer.disposeTemplate(e.templateData)}},{key:"onDidChangeTwistieState",value:function(e){var t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}},{key:"onDidChangeNodeTwistieState",value:function(e){var t=this.renderedNodes.get(e);t&&(this.renderTwistie(e,t.templateData),this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderIndentGuides(e,t.templateData))}},{key:"renderTwistie",value:function(e,t){var n;(n=t.twistie.classList).remove.apply(n,(0,A.Z)(ee.classNamesArray));var i=!1;if(this.renderer.renderTwistie&&(i=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)){var r;if(!i)(r=t.twistie.classList).add.apply(r,(0,A.Z)(ee.classNamesArray));t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)}else t.twistie.classList.remove("collapsible","collapsed");e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded")}},{key:"renderIndentGuides",value:function(e,t){var n=this;if((0,h.clearNode)(t.indent),t.indentGuidesDisposable.dispose(),this.shouldRenderIndentGuides){for(var i=new f.SL,r=this.modelProvider(),o=e,a=function(){var e=r.getNodeLocation(o),a=r.getParentNodeLocation(e);if(!a)return"break";var s=r.getNode(a),u=(0,h.$)(".indent-guide",{style:"width: ".concat(n.indent,"px")});n.activeIndentNodes.has(s)&&u.classList.add("active"),0===t.indent.childElementCount?t.indent.appendChild(u):t.indent.insertBefore(u,t.indent.firstElementChild),n.renderedIndentGuides.add(s,u),i.add((0,f.OF)((function(){return n.renderedIndentGuides.delete(s,u)}))),o=s};;){if("break"===a())break}t.indentGuidesDisposable=i}}},{key:"_onDidChangeActiveNodes",value:function(e){var t=this;if(this.shouldRenderIndentGuides){var n=new Set,i=this.modelProvider();e.forEach((function(e){var t=i.getNodeLocation(e);try{var r=i.getParentNodeLocation(t);e.collapsible&&e.children.length>0&&!e.collapsed?n.add(e):r&&n.add(i.getNode(r))}catch(o){}})),this.activeIndentNodes.forEach((function(e){n.has(e)||t.renderedIndentGuides.forEach(e,(function(e){return e.classList.remove("active")}))})),n.forEach((function(e){t.activeIndentNodes.has(e)||t.renderedIndentGuides.forEach(e,(function(e){return e.classList.add("active")}))})),this.activeIndentNodes=n}}},{key:"dispose",value:function(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),(0,f.B9)(this.disposables)}}]),e}();de.DefaultIndent=8;var he=function(){function e(t,n,i){(0,c.Z)(this,e),this.tree=t,this.keyboardNavigationLabelProvider=n,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new f.SL,t.onWillRefilter(this.reset,this,this.disposables)}return(0,d.Z)(e,[{key:"totalCount",get:function(){return this._totalCount}},{key:"matchCount",get:function(){return this._matchCount}},{key:"pattern",set:function(e){this._pattern=e,this._lowercasePattern=e.toLowerCase()}},{key:"filter",value:function(e,t){if(this._filter){var n=this._filter.filter(e,t);if(this.tree.options.simpleKeyboardNavigation)return n;if(0===("boolean"===typeof n?n?1:0:Y(n)?U(n.visibility):n))return!1}if(this._totalCount++,this.tree.options.simpleKeyboardNavigation||!this._pattern)return this._matchCount++,{data:z.CL.Default,visibility:!0};var i,r=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=Array.isArray(r)?r:[r],a=(0,I.Z)(o);try{for(a.s();!(i=a.n()).done;){var s=i.value,u=s&&s.toString();if("undefined"===typeof u)return{data:z.CL.Default,visibility:!0};var l=(0,z.EW)(this._pattern,this._lowercasePattern,0,u,u.toLowerCase(),0,!0);if(l)return this._matchCount++,1===o.length?{data:l,visibility:!0}:{data:{label:u,score:l},visibility:!0}}}catch(c){a.e(c)}finally{a.f()}return this.tree.options.filterOnType?2:{data:z.CL.Default,visibility:!0}}},{key:"reset",value:function(){this._totalCount=0,this._matchCount=0}},{key:"dispose",value:function(){(0,f.B9)(this.disposables)}}]),e}(),fe=function(){function e(t,n,i,r,o){(0,c.Z)(this,e),this.tree=t,this.view=i,this.filter=r,this.keyboardNavigationDelegate=o,this._enabled=!1,this._pattern="",this._empty=!1,this._onDidChangeEmptyState=new g.Q5,this.positionClassName="ne",this.automaticKeyboardNavigation=!0,this.triggered=!1,this._onDidChangePattern=new g.Q5,this.enabledDisposables=new f.SL,this.disposables=new f.SL,this.domNode=(0,h.$)(".monaco-list-type-filter.".concat(this.positionClassName)),this.domNode.draggable=!0,(0,B.jt)(this.domNode,"dragstart")(this.onDragStart,this,this.disposables),this.messageDomNode=(0,h.append)(i.getHTMLElement(),(0,h.$)(".monaco-list-type-filter-message")),this.labelDomNode=(0,h.append)(this.domNode,(0,h.$)("span.label"));var a=(0,h.append)(this.domNode,(0,h.$)(".controls"));this._filterOnType=!!t.options.filterOnType,this.filterOnTypeDomNode=(0,h.append)(a,(0,h.$)("input.filter")),this.filterOnTypeDomNode.type="checkbox",this.filterOnTypeDomNode.checked=this._filterOnType,this.filterOnTypeDomNode.tabIndex=-1,this.updateFilterOnTypeTitleAndIcon(),(0,B.jt)(this.filterOnTypeDomNode,"input")(this.onDidChangeFilterOnType,this,this.disposables),this.clearDomNode=(0,h.append)(a,(0,h.$)("button.clear"+ie.cssSelector)),this.clearDomNode.tabIndex=-1,this.clearDomNode.title=(0,C.N)("clear","Clear"),this.keyboardNavigationEventFilter=t.options.keyboardNavigationEventFilter,n.onDidSplice(this.onDidSpliceModel,this,this.disposables),this.updateOptions(t.options)}return(0,d.Z)(e,[{key:"enabled",get:function(){return this._enabled}},{key:"pattern",get:function(){return this._pattern}},{key:"filterOnType",get:function(){return this._filterOnType}},{key:"updateOptions",value:function(e){e.simpleKeyboardNavigation?this.disable():this.enable(),"undefined"!==typeof e.filterOnType&&(this._filterOnType=!!e.filterOnType,this.filterOnTypeDomNode.checked=this._filterOnType,this.updateFilterOnTypeTitleAndIcon()),"undefined"!==typeof e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation),this.tree.refilter(),this.render(),this.automaticKeyboardNavigation||this.onEventOrInput("")}},{key:"enable",value:function(){var e=this;if(!this._enabled){var t=g.ju.chain((0,B.jt)(this.view.getHTMLElement(),"keydown")).filter((function(t){return!(0,v.cK)(t.target)||t.target===e.filterOnTypeDomNode})).filter((function(e){return"Dead"!==e.key&&!/^Media/.test(e.key)})).map((function(e){return new P.y(e)})).filter(this.keyboardNavigationEventFilter||function(){return!0}).filter((function(){return e.automaticKeyboardNavigation||e.triggered})).filter((function(t){return e.keyboardNavigationDelegate.mightProducePrintableCharacter(t)&&!(18===t.keyCode||16===t.keyCode||15===t.keyCode||17===t.keyCode)||(e.pattern.length>0||e.triggered)&&(9===t.keyCode||1===t.keyCode)&&!t.altKey&&!t.ctrlKey&&!t.metaKey||1===t.keyCode&&($.dz?t.altKey&&!t.metaKey:t.ctrlKey)&&!t.shiftKey})).forEach((function(e){e.stopPropagation(),e.preventDefault()})).event,n=(0,B.jt)(this.clearDomNode,"click");g.ju.chain(g.ju.any(t,n)).event(this.onEventOrInput,this,this.enabledDisposables),this.filter.pattern="",this.tree.refilter(),this.render(),this._enabled=!0,this.triggered=!1}}},{key:"disable",value:function(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.clear(),this.tree.refilter(),this.render(),this._enabled=!1,this.triggered=!1)}},{key:"onEventOrInput",value:function(e){"string"===typeof e?this.onInput(e):e instanceof MouseEvent||9===e.keyCode||1===e.keyCode&&($.dz?e.altKey:e.ctrlKey)?this.onInput(""):1===e.keyCode?this.onInput(0===this.pattern.length?"":this.pattern.substr(0,this.pattern.length-1)):this.onInput(this.pattern+e.browserEvent.key)}},{key:"onInput",value:function(e){var t=this.view.getHTMLElement();e&&!this.domNode.parentElement?t.append(this.domNode):!e&&this.domNode.parentElement&&(this.domNode.remove(),this.tree.domFocus()),this._pattern=e,this._onDidChangePattern.fire(e),this.filter.pattern=e,this.tree.refilter(),e&&this.tree.focusNext(0,!0,void 0,(function(e){return!z.CL.isDefault(e.filterData)}));var n=this.tree.getFocus();if(n.length>0){var i=n[0];null===this.tree.getRelativeTop(i)&&this.tree.reveal(i,.5)}this.render(),e||(this.triggered=!1)}},{key:"onDragStart",value:function(){var e=this,t=this.view.getHTMLElement(),n=(0,h.getDomNodePagePosition)(t).left,i=t.clientWidth,r=i/2,o=this.domNode.clientWidth,a=new f.SL,s=this.positionClassName,u=function(){switch(s){case"nw":e.domNode.style.top="4px",e.domNode.style.left="4px";break;case"ne":e.domNode.style.top="4px",e.domNode.style.left="".concat(i-o-6,"px")}};u(),this.domNode.classList.remove(s),this.domNode.classList.add("dragging"),a.add((0,f.OF)((function(){return e.domNode.classList.remove("dragging")}))),(0,B.jt)(document,"dragover")((function(e){e.preventDefault();var t=e.clientX-n;e.dataTransfer&&(e.dataTransfer.dropEffect="none"),s=t<r?"nw":"ne",u()}),null,a),(0,B.jt)(this.domNode,"dragend")((function(){e.positionClassName=s,e.domNode.className="monaco-list-type-filter ".concat(e.positionClassName),e.domNode.style.top="",e.domNode.style.left="",(0,f.B9)(a)}),null,a),j.P$.CurrentDragAndDropData=new j.TN("vscode-ui"),a.add((0,f.OF)((function(){return j.P$.CurrentDragAndDropData=void 0})))}},{key:"onDidSpliceModel",value:function(){this._enabled&&0!==this.pattern.length&&(this.tree.refilter(),this.render())}},{key:"onDidChangeFilterOnType",value:function(){this.tree.updateOptions({filterOnType:this.filterOnTypeDomNode.checked}),this.tree.refilter(),this.tree.domFocus(),this.render(),this.updateFilterOnTypeTitleAndIcon()}},{key:"updateFilterOnTypeTitleAndIcon",value:function(){var e,t,n,i;this.filterOnType?((e=this.filterOnTypeDomNode.classList).remove.apply(e,(0,A.Z)(ne.classNamesArray)),(t=this.filterOnTypeDomNode.classList).add.apply(t,(0,A.Z)(te.classNamesArray)),this.filterOnTypeDomNode.title=(0,C.N)("disable filter on type","Disable Filter on Type")):((n=this.filterOnTypeDomNode.classList).remove.apply(n,(0,A.Z)(te.classNamesArray)),(i=this.filterOnTypeDomNode.classList).add.apply(i,(0,A.Z)(ne.classNamesArray)),this.filterOnTypeDomNode.title=(0,C.N)("enable filter on type","Enable Filter on Type"))}},{key:"render",value:function(){var e=this.filter.totalCount>0&&0===this.filter.matchCount;this.pattern&&this.tree.options.filterOnType&&e?(this.messageDomNode.textContent=(0,C.N)("empty","No elements found"),this._empty=!0):(this.messageDomNode.innerText="",this._empty=!1),this.domNode.classList.toggle("no-matches",e),this.domNode.title=(0,C.N)("found","Matched {0} out of {1} elements",this.filter.matchCount,this.filter.totalCount),this.labelDomNode.textContent=this.pattern.length>16?"\u2026"+this.pattern.substr(this.pattern.length-16):this.pattern,this._onDidChangeEmptyState.fire(this._empty)}},{key:"shouldAllowFocus",value:function(e){return!(this.enabled&&this.pattern&&!this.filterOnType)||(this.filter.totalCount>0&&this.filter.matchCount<=1||!z.CL.isDefault(e.filterData))}},{key:"dispose",value:function(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.dispose(),this._enabled=!1,this.triggered=!1),this._onDidChangePattern.dispose(),(0,f.B9)(this.disposables)}}]),e}();function pe(e){var t=b.Unknown;return(0,h.hasParentWithClass)(e.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?t=b.Twistie:(0,h.hasParentWithClass)(e.browserEvent.target,"monaco-tl-contents","monaco-tl-row")&&(t=b.Element),{browserEvent:e.browserEvent,element:e.element?e.element.element:null,target:t}}function ve(e,t){t(e),e.children.forEach((function(e){return ve(e,t)}))}var ge=function(){function e(t){(0,c.Z)(this,e),this.identityProvider=t,this.nodes=[],this._onDidChange=new g.Q5,this.onDidChange=this._onDidChange.event}return(0,d.Z)(e,[{key:"nodeSet",get:function(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}},{key:"set",value:function(e,t){var n;!(null===(n=t)||void 0===n?void 0:n.__forceEvent)&&(0,p.fS)(this.nodes,e)||this._set(e,!1,t)}},{key:"_set",value:function(e,t,n){if(this.nodes=(0,A.Z)(e),this.elements=void 0,this._nodeSet=void 0,!t){var i=this;this._onDidChange.fire({get elements(){return i.get()},browserEvent:n})}}},{key:"get",value:function(){return this.elements||(this.elements=this.nodes.map((function(e){return e.element}))),(0,A.Z)(this.elements)}},{key:"getNodes",value:function(){return this.nodes}},{key:"has",value:function(e){return this.nodeSet.has(e)}},{key:"onDidModelSplice",value:function(e){var t=this,n=e.insertedNodes,i=e.deletedNodes;if(!this.identityProvider){var r=this.createNodeSet(),o=function(e){return r.delete(e)};return i.forEach((function(e){return ve(e,o)})),void this.set((0,A.Z)(r.values()))}var a=new Set,s=function(e){return a.add(t.identityProvider.getId(e.element).toString())};i.forEach((function(e){return ve(e,s)}));var u=new Map,l=function(e){return u.set(t.identityProvider.getId(e.element).toString(),e)};n.forEach((function(e){return ve(e,l)}));var c,d=[],h=(0,I.Z)(this.nodes);try{for(h.s();!(c=h.n()).done;){var f=c.value,p=this.identityProvider.getId(f.element).toString();if(a.has(p)){var v=u.get(p);v&&d.push(v)}else d.push(f)}}catch(g){h.e(g)}finally{h.f()}this._set(d,!0)}},{key:"createNodeSet",value:function(){var e,t=new Set,n=(0,I.Z)(this.nodes);try{for(n.s();!(e=n.n()).done;){var i=e.value;t.add(i)}}catch(r){n.e(r)}finally{n.f()}return t}}]),e}(),me=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e)).tree=i,r}return(0,d.Z)(n,[{key:"onViewPointer",value:function(e){if(!(0,v.cK)(e.browserEvent.target)&&!(0,v.hD)(e.browserEvent.target)){var t=e.element;if(!t)return(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e);var i=e.browserEvent.target,r=i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&e.browserEvent.offsetX<16,o=!1;if((o="function"===typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(t.element):!!this.tree.expandOnlyOnTwistieClick)&&!r&&2!==e.browserEvent.detail)return(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e);if(!this.tree.expandOnDoubleClick&&2===e.browserEvent.detail)return(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e);if(t.collapsible){var u=this.tree.model,l=u.getNodeLocation(t),c=e.browserEvent.altKey;if(this.tree.setFocus([l]),u.setCollapsed(l,void 0,c),o&&r)return}(0,a.Z)((0,s.Z)(n.prototype),"onViewPointer",this).call(this,e)}}},{key:"onDoubleClick",value:function(e){!e.browserEvent.target.classList.contains("monaco-tl-twistie")&&this.tree.expandOnDoubleClick&&(0,a.Z)((0,s.Z)(n.prototype),"onDoubleClick",this).call(this,e)}}]),n}(v.sx),_e=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o,a,s,u,l){var d;return(0,c.Z)(this,n),(d=t.call(this,e,i,r,o,l)).focusTrait=a,d.selectionTrait=s,d.anchorTrait=u,d}return(0,d.Z)(n,[{key:"createMouseController",value:function(e){return new me(this,e.tree)}},{key:"splice",value:function(e,t){var i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if((0,a.Z)((0,s.Z)(n.prototype),"splice",this).call(this,e,t,r),0!==r.length){var o,u=[],l=[];r.forEach((function(t,n){i.focusTrait.has(t)&&u.push(e+n),i.selectionTrait.has(t)&&l.push(e+n),i.anchorTrait.has(t)&&(o=e+n)})),u.length>0&&(0,a.Z)((0,s.Z)(n.prototype),"setFocus",this).call(this,(0,p.cU)([].concat((0,A.Z)((0,a.Z)((0,s.Z)(n.prototype),"getFocus",this).call(this)),u))),l.length>0&&(0,a.Z)((0,s.Z)(n.prototype),"setSelection",this).call(this,(0,p.cU)([].concat((0,A.Z)((0,a.Z)((0,s.Z)(n.prototype),"getSelection",this).call(this)),l))),"number"===typeof o&&(0,a.Z)((0,s.Z)(n.prototype),"setAnchor",this).call(this,o)}}},{key:"setFocus",value:function(e,t){var i=this,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,a.Z)((0,s.Z)(n.prototype),"setFocus",this).call(this,e,t),r||this.focusTrait.set(e.map((function(e){return i.element(e)})),t)}},{key:"setSelection",value:function(e,t){var i=this,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,a.Z)((0,s.Z)(n.prototype),"setSelection",this).call(this,e,t),r||this.selectionTrait.set(e.map((function(e){return i.element(e)})),t)}},{key:"setAnchor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,a.Z)((0,s.Z)(n.prototype),"setAnchor",this).call(this,e),t||("undefined"===typeof e?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}]),n}(v.aV),ye=function(){function e(t,n,i,r){var o=this,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};(0,c.Z)(this,e),this._options=a,this.eventBufferer=new g.E7,this.disposables=new f.SL,this._onWillRefilter=new g.Q5,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new g.Q5;var s=new le(i),u=new g.ZD,l=new g.ZD,d=new ce(l.event);this.renderers=r.map((function(e){return new de(e,(function(){return o.model}),u.event,d,a)}));var p,m,_,y,b=(0,I.Z)(this.renderers);try{for(b.s();!(p=b.n()).done;){var w=p.value;this.disposables.add(w)}}catch(x){b.e(x)}finally{b.f()}a.keyboardNavigationLabelProvider&&(m=new he(this,a.keyboardNavigationLabelProvider,a.filter),a=Object.assign(Object.assign({},a),{filter:m}),this.disposables.add(m)),this.focus=new ge(a.identityProvider),this.selection=new ge(a.identityProvider),this.anchor=new ge(a.identityProvider),this.view=new _e(t,n,s,this.renderers,this.focus,this.selection,this.anchor,Object.assign(Object.assign({},(_=function(){return o.model},(y=a)&&Object.assign(Object.assign({},y),{identityProvider:y.identityProvider&&{getId:function(e){return y.identityProvider.getId(e.element)}},dnd:y.dnd&&new se(_,y.dnd),multipleSelectionController:y.multipleSelectionController&&{isSelectionSingleChangeEvent:function(e){return y.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))},isSelectionRangeChangeEvent:function(e){return y.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))}},accessibilityProvider:y.accessibilityProvider&&Object.assign(Object.assign({},y.accessibilityProvider),{getSetSize:function(e){var t=_(),n=t.getNodeLocation(e),i=t.getParentNodeLocation(n);return t.getNode(i).visibleChildrenCount},getPosInSet:function(e){return e.visibleChildIndex+1},isChecked:y.accessibilityProvider&&y.accessibilityProvider.isChecked?function(e){return y.accessibilityProvider.isChecked(e.element)}:void 0,getRole:y.accessibilityProvider&&y.accessibilityProvider.getRole?function(e){return y.accessibilityProvider.getRole(e.element)}:function(){return"treeitem"},getAriaLabel:function(e){return y.accessibilityProvider.getAriaLabel(e.element)},getWidgetAriaLabel:function(){return y.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:y.accessibilityProvider&&y.accessibilityProvider.getWidgetRole?function(){return y.accessibilityProvider.getWidgetRole()}:function(){return"tree"},getAriaLevel:y.accessibilityProvider&&y.accessibilityProvider.getAriaLevel?function(e){return y.accessibilityProvider.getAriaLevel(e.element)}:function(e){return e.depth},getActiveDescendantId:y.accessibilityProvider.getActiveDescendantId&&function(e){return y.accessibilityProvider.getActiveDescendantId(e.element)}}),keyboardNavigationLabelProvider:y.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},y.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:function(e){return y.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}}),enableKeyboardNavigation:y.simpleKeyboardNavigation}))),{tree:this})),this.model=this.createModel(t,this.view,a),u.input=this.model.onDidChangeCollapseState;var C=g.ju.forEach(this.model.onDidSplice,(function(e){o.eventBufferer.bufferEvents((function(){o.focus.onDidModelSplice(e),o.selection.onDidModelSplice(e)}))}));if(C((function(){return null}),null,this.disposables),l.input=g.ju.chain(g.ju.any(C,this.focus.onDidChange,this.selection.onDidChange)).debounce((function(){return null}),0).map((function(){var e,t=new Set,n=(0,I.Z)(o.focus.getNodes());try{for(n.s();!(e=n.n()).done;){var i=e.value;t.add(i)}}catch(x){n.e(x)}finally{n.f()}var r,a=(0,I.Z)(o.selection.getNodes());try{for(a.s();!(r=a.n()).done;){var s=r.value;t.add(s)}}catch(x){a.e(x)}finally{a.f()}return(0,A.Z)(t.values())})).event,!1!==a.keyboardSupport){var k=g.ju.chain(this.view.onKeyDown).filter((function(e){return!(0,v.cK)(e.target)})).map((function(e){return new P.y(e)}));k.filter((function(e){return 15===e.keyCode})).on(this.onLeftArrow,this,this.disposables),k.filter((function(e){return 17===e.keyCode})).on(this.onRightArrow,this,this.disposables),k.filter((function(e){return 10===e.keyCode})).on(this.onSpace,this,this.disposables)}if(a.keyboardNavigationLabelProvider){var S=a.keyboardNavigationDelegate||v.WK;this.typeFilterController=new fe(this,this.model,this.view,m,S),this.focusNavigationFilter=function(e){return o.typeFilterController.shouldAllowFocus(e)},this.disposables.add(this.typeFilterController)}this.styleElement=(0,h.createStyleSheet)(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===ue.Always)}return(0,d.Z)(e,[{key:"onDidChangeFocus",get:function(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}},{key:"onDidChangeSelection",get:function(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}},{key:"onMouseDblClick",get:function(){return g.ju.map(this.view.onMouseDblClick,pe)}},{key:"onPointer",get:function(){return g.ju.map(this.view.onPointer,pe)}},{key:"onDidFocus",get:function(){return this.view.onDidFocus}},{key:"onDidChangeCollapseState",get:function(){return this.model.onDidChangeCollapseState}},{key:"expandOnDoubleClick",get:function(){return"undefined"===typeof this._options.expandOnDoubleClick||this._options.expandOnDoubleClick}},{key:"expandOnlyOnTwistieClick",get:function(){return"undefined"===typeof this._options.expandOnlyOnTwistieClick||this._options.expandOnlyOnTwistieClick}},{key:"onDidDispose",get:function(){return this.view.onDidDispose}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._options=Object.assign(Object.assign({},this._options),e);var t,n=(0,I.Z)(this.renderers);try{for(n.s();!(t=n.n()).done;){t.value.updateOptions(e)}}catch(i){n.e(i)}finally{n.f()}this.view.updateOptions({enableKeyboardNavigation:this._options.simpleKeyboardNavigation,automaticKeyboardNavigation:this._options.automaticKeyboardNavigation,smoothScrolling:this._options.smoothScrolling,horizontalScrolling:this._options.horizontalScrolling}),this.typeFilterController&&this.typeFilterController.updateOptions(this._options),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===ue.Always)}},{key:"options",get:function(){return this._options}},{key:"getHTMLElement",value:function(){return this.view.getHTMLElement()}},{key:"scrollTop",get:function(){return this.view.scrollTop},set:function(e){this.view.scrollTop=e}},{key:"domFocus",value:function(){this.view.domFocus()}},{key:"layout",value:function(e,t){this.view.layout(e,t)}},{key:"style",value:function(e){var t=".".concat(this.view.domId),n=[];e.treeIndentGuidesStroke&&(n.push(".monaco-list".concat(t,":hover .monaco-tl-indent > .indent-guide, .monaco-list").concat(t,".always .monaco-tl-indent > .indent-guide { border-color: ").concat(e.treeIndentGuidesStroke.transparent(.4),"; }")),n.push(".monaco-list".concat(t," .monaco-tl-indent > .indent-guide.active { border-color: ").concat(e.treeIndentGuidesStroke,"; }"))),this.styleElement.textContent=n.join("\n"),this.view.style(e)}},{key:"collapse",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.model.setCollapsed(e,!0,t)}},{key:"expand",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.model.setCollapsed(e,!1,t)}},{key:"isCollapsible",value:function(e){return this.model.isCollapsible(e)}},{key:"setCollapsible",value:function(e,t){return this.model.setCollapsible(e,t)}},{key:"isCollapsed",value:function(e){return this.model.isCollapsed(e)}},{key:"refilter",value:function(){this._onWillRefilter.fire(void 0),this.model.refilter()}},{key:"setSelection",value:function(e,t){var n=this,i=e.map((function(e){return n.model.getNode(e)}));this.selection.set(i,t);var r=e.map((function(e){return n.model.getListIndex(e)})).filter((function(e){return e>-1}));this.view.setSelection(r,t,!0)}},{key:"getSelection",value:function(){return this.selection.get()}},{key:"setFocus",value:function(e,t){var n=this,i=e.map((function(e){return n.model.getNode(e)}));this.focus.set(i,t);var r=e.map((function(e){return n.model.getListIndex(e)})).filter((function(e){return e>-1}));this.view.setFocus(r,t,!0)}},{key:"focusNext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.focusNavigationFilter;this.view.focusNext(e,t,n,i)}},{key:"getFocus",value:function(){return this.focus.get()}},{key:"reveal",value:function(e,t){this.model.expandTo(e);var n=this.model.getListIndex(e);-1!==n&&this.view.reveal(n,t)}},{key:"getRelativeTop",value:function(e){var t=this.model.getListIndex(e);return-1===t?null:this.view.getRelativeTop(t)}},{key:"onLeftArrow",value:function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n);if(!this.model.setCollapsed(i,!0)){var r=this.model.getParentNodeLocation(i);if(!r)return;var o=this.model.getListIndex(r);this.view.reveal(o),this.view.setFocus([o])}}}},{key:"onRightArrow",value:function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n);if(!this.model.setCollapsed(i,!1)){if(!n.children.some((function(e){return e.visible})))return;var o=this.view.getFocus(),a=(0,r.Z)(o,1)[0]+1;this.view.reveal(a),this.view.setFocus([a])}}}},{key:"onSpace",value:function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n),r=e.browserEvent.altKey;this.model.setCollapsed(i,void 0,r)}}},{key:"dispose",value:function(){(0,f.B9)(this.disposables),this.view.dispose()}}]),e}(),be=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,c.Z)(this,e),this.user=t,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new q(t,n,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare:function(e,t){return i.sorter.compare(e.element,t.element)}}),this.identityProvider=i.identityProvider}return(0,d.Z)(e,[{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.getElementLocation(e);this._setChildren(i,this.preserveCollapseState(t),n)}},{key:"_setChildren",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),i=arguments.length>2?arguments[2]:void 0,r=new Set,o=new Set;this.model.splice([].concat((0,A.Z)(e),[0]),Number.MAX_VALUE,n,Object.assign(Object.assign({},i),{onDidCreateNode:function(e){var n;if(null!==e.element){var a=e;if(r.add(a.element),t.nodes.set(a.element,a),t.identityProvider){var s=t.identityProvider.getId(a.element).toString();o.add(s),t.nodesByIdentity.set(s,a)}null===(n=i.onDidCreateNode)||void 0===n||n.call(i,a)}},onDidDeleteNode:function(e){var n;if(null!==e.element){var a=e;if(r.has(a.element)||t.nodes.delete(a.element),t.identityProvider){var s=t.identityProvider.getId(a.element).toString();o.has(s)||t.nodesByIdentity.delete(s)}null===(n=i.onDidDeleteNode)||void 0===n||n.call(i,a)}}}))}},{key:"preserveCollapseState",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O.$.empty();return this.sorter&&(t=(0,A.Z)(t).sort(this.sorter.compare.bind(this.sorter))),O.$.map(t,(function(t){var n=e.nodes.get(t.element);if(!n&&e.identityProvider){var i=e.identityProvider.getId(t.element).toString();n=e.nodesByIdentity.get(i)}if(!n)return Object.assign(Object.assign({},t),{children:e.preserveCollapseState(t.children)});var r="boolean"===typeof t.collapsible?t.collapsible:n.collapsible,o="undefined"!==typeof t.collapsed?t.collapsed:n.collapsed;return Object.assign(Object.assign({},t),{collapsible:r,collapsed:o,children:e.preserveCollapseState(t.children)})}))}},{key:"rerender",value:function(e){var t=this.getElementLocation(e);this.model.rerender(t)}},{key:"has",value:function(e){return this.nodes.has(e)}},{key:"getListIndex",value:function(e){var t=this.getElementLocation(e);return this.model.getListIndex(t)}},{key:"getListRenderCount",value:function(e){var t=this.getElementLocation(e);return this.model.getListRenderCount(t)}},{key:"isCollapsible",value:function(e){var t=this.getElementLocation(e);return this.model.isCollapsible(t)}},{key:"setCollapsible",value:function(e,t){var n=this.getElementLocation(e);return this.model.setCollapsible(n,t)}},{key:"isCollapsed",value:function(e){var t=this.getElementLocation(e);return this.model.isCollapsed(t)}},{key:"setCollapsed",value:function(e,t,n){var i=this.getElementLocation(e);return this.model.setCollapsed(i,t,n)}},{key:"expandTo",value:function(e){var t=this.getElementLocation(e);this.model.expandTo(t)}},{key:"refilter",value:function(){this.model.refilter()}},{key:"getNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(null===e)return this.model.getNode(this.model.rootRef);var t=this.nodes.get(e);if(!t)throw new Z(this.user,"Tree element not found: ".concat(e));return t}},{key:"getNodeLocation",value:function(e){return e.element}},{key:"getParentNodeLocation",value:function(e){if(null===e)throw new Z(this.user,"Invalid getParentNodeLocation call");var t=this.nodes.get(e);if(!t)throw new Z(this.user,"Tree element not found: ".concat(e));var n=this.model.getNodeLocation(t),i=this.model.getParentNodeLocation(n);return this.model.getNode(i).element}},{key:"getElementLocation",value:function(e){if(null===e)return[];var t=this.nodes.get(e);if(!t)throw new Z(this.user,"Tree element not found: ".concat(e));return this.model.getNodeLocation(t)}}]),e}();function we(e){return{element:{elements:[e.element],incompressible:e.incompressible||!1},children:O.$.map(O.$.from(e.children),we),collapsible:e.collapsible,collapsed:e.collapsed}}function Ce(e){for(var t,n,i=[e.element],o=e.incompressible||!1;;){var a=O.$.consume(O.$.from(e.children),2),s=(0,r.Z)(a,2);if(n=s[0],t=s[1],1!==n.length)break;if(n[0].incompressible)break;e=n[0],i.push(e.element)}return{element:{elements:i,incompressible:o},children:O.$.map(O.$.concat(n,t),Ce),collapsible:e.collapsible,collapsed:e.collapsed}}function ke(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t=n<e.element.elements.length-1?[ke(e,n+1)]:O.$.map(O.$.from(e.children),(function(e){return ke(e,0)})),0===n&&e.element.incompressible?{element:e.element.elements[n],children:t,incompressible:!0,collapsible:e.collapsible,collapsed:e.collapsed}:{element:e.element.elements[n],children:t,collapsible:e.collapsible,collapsed:e.collapsed}}function Se(e){return ke(e,0)}function xe(e,t,n){return e.element===t?Object.assign(Object.assign({},e),{children:n}):Object.assign(Object.assign({},e),{children:O.$.map(O.$.from(e.children),(function(e){return xe(e,t,n)}))})}var Le=function(e){return{getId:function(t){return t.elements.map((function(t){return e.getId(t).toString()})).join("\0")}}},Ee=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,c.Z)(this,e),this.user=t,this.rootRef=null,this.nodes=new Map,this.model=new be(t,n,i),this.enabled="undefined"===typeof i.compressionEnabled||i.compressionEnabled,this.identityProvider=i.identityProvider}return(0,d.Z)(e,[{key:"onDidSplice",get:function(){return this.model.onDidSplice}},{key:"onDidChangeCollapseState",get:function(){return this.model.onDidChangeCollapseState}},{key:"onDidChangeRenderNodeCount",get:function(){return this.model.onDidChangeRenderNodeCount}},{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2?arguments[2]:void 0,i=n.diffIdentityProvider&&Le(n.diffIdentityProvider);if(null!==e){var r=this.nodes.get(e);if(!r)throw new Error("Unknown compressed tree node");var o=this.model.getNode(r),a=this.model.getParentNodeLocation(r),s=this.model.getNode(a),u=xe(Se(o),e,t),l=(this.enabled?Ce:we)(u),c=s.children.map((function(e){return e===o?l:e}));this._setChildren(s.element,c,{diffIdentityProvider:i,diffDepth:o.depth-s.depth})}else{var d=O.$.map(t,this.enabled?Ce:we);this._setChildren(null,d,{diffIdentityProvider:i,diffDepth:1/0})}}},{key:"setCompressionEnabled",value:function(e){if(e!==this.enabled){this.enabled=e;var t=this.model.getNode().children,n=O.$.map(t,Se),i=O.$.map(n,e?Ce:we);this._setChildren(null,i,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}}},{key:"_setChildren",value:function(e,t,n){var i=this,r=new Set;this.model.setChildren(e,t,Object.assign(Object.assign({},n),{onDidCreateNode:function(e){var t,n=(0,I.Z)(e.element.elements);try{for(n.s();!(t=n.n()).done;){var o=t.value;r.add(o),i.nodes.set(o,e.element)}}catch(a){n.e(a)}finally{n.f()}},onDidDeleteNode:function(e){var t,n=(0,I.Z)(e.element.elements);try{for(n.s();!(t=n.n()).done;){var o=t.value;r.has(o)||i.nodes.delete(o)}}catch(a){n.e(a)}finally{n.f()}}}))}},{key:"has",value:function(e){return this.nodes.has(e)}},{key:"getListIndex",value:function(e){var t=this.getCompressedNode(e);return this.model.getListIndex(t)}},{key:"getListRenderCount",value:function(e){var t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}},{key:"getNode",value:function(e){if("undefined"===typeof e)return this.model.getNode();var t=this.getCompressedNode(e);return this.model.getNode(t)}},{key:"getNodeLocation",value:function(e){var t=this.model.getNodeLocation(e);return null===t?null:t.elements[t.elements.length-1]}},{key:"getParentNodeLocation",value:function(e){var t=this.getCompressedNode(e),n=this.model.getParentNodeLocation(t);return null===n?null:n.elements[n.elements.length-1]}},{key:"isCollapsible",value:function(e){var t=this.getCompressedNode(e);return this.model.isCollapsible(t)}},{key:"setCollapsible",value:function(e,t){var n=this.getCompressedNode(e);return this.model.setCollapsible(n,t)}},{key:"isCollapsed",value:function(e){var t=this.getCompressedNode(e);return this.model.isCollapsed(t)}},{key:"setCollapsed",value:function(e,t,n){var i=this.getCompressedNode(e);return this.model.setCollapsed(i,t,n)}},{key:"expandTo",value:function(e){var t=this.getCompressedNode(e);this.model.expandTo(t)}},{key:"rerender",value:function(e){var t=this.getCompressedNode(e);this.model.rerender(t)}},{key:"refilter",value:function(){this.model.refilter()}},{key:"getCompressedNode",value:function(e){if(null===e)return null;var t=this.nodes.get(e);if(!t)throw new Z(this.user,"Tree element not found: ".concat(e));return t}}]),e}(),Ne=function(e){return e[e.length-1]},De=function(){function e(t,n){(0,c.Z)(this,e),this.unwrapper=t,this.node=n}return(0,d.Z)(e,[{key:"element",get:function(){return null===this.node.element?null:this.unwrapper(this.node.element)}},{key:"children",get:function(){var t=this;return this.node.children.map((function(n){return new e(t.unwrapper,n)}))}},{key:"depth",get:function(){return this.node.depth}},{key:"visibleChildrenCount",get:function(){return this.node.visibleChildrenCount}},{key:"visibleChildIndex",get:function(){return this.node.visibleChildIndex}},{key:"collapsible",get:function(){return this.node.collapsible}},{key:"collapsed",get:function(){return this.node.collapsed}},{key:"visible",get:function(){return this.node.visible}},{key:"filterData",get:function(){return this.node.filterData}}]),e}();var Me=function(){function e(t,n){var i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,c.Z)(this,e),this.rootRef=null,this.elementMapper=r.elementMapper||Ne;var o=function(e){return i.elementMapper(e.elements)};this.nodeMapper=new F((function(e){return new De(o,e)})),this.model=new Ee(t,function(e,t){return{splice:function(n,i,r){t.splice(n,i,r.map((function(t){return e.map(t)})))},updateElementHeight:function(e,n){t.updateElementHeight(e,n)}}}(this.nodeMapper,n),function(e,t){return Object.assign(Object.assign({},t),{identityProvider:t.identityProvider&&{getId:function(n){return t.identityProvider.getId(e(n))}},sorter:t.sorter&&{compare:function(e,n){return t.sorter.compare(e.elements[0],n.elements[0])}},filter:t.filter&&{filter:function(n,i){return t.filter.filter(e(n),i)}}})}(o,r))}return(0,d.Z)(e,[{key:"onDidSplice",get:function(){var e=this;return g.ju.map(this.model.onDidSplice,(function(t){var n=t.insertedNodes,i=t.deletedNodes;return{insertedNodes:n.map((function(t){return e.nodeMapper.map(t)})),deletedNodes:i.map((function(t){return e.nodeMapper.map(t)}))}}))}},{key:"onDidChangeCollapseState",get:function(){var e=this;return g.ju.map(this.model.onDidChangeCollapseState,(function(t){var n=t.node,i=t.deep;return{node:e.nodeMapper.map(n),deep:i}}))}},{key:"onDidChangeRenderNodeCount",get:function(){var e=this;return g.ju.map(this.model.onDidChangeRenderNodeCount,(function(t){return e.nodeMapper.map(t)}))}},{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.model.setChildren(e,t,n)}},{key:"setCompressionEnabled",value:function(e){this.model.setCompressionEnabled(e)}},{key:"has",value:function(e){return this.model.has(e)}},{key:"getListIndex",value:function(e){return this.model.getListIndex(e)}},{key:"getListRenderCount",value:function(e){return this.model.getListRenderCount(e)}},{key:"getNode",value:function(e){return this.nodeMapper.map(this.model.getNode(e))}},{key:"getNodeLocation",value:function(e){return e.element}},{key:"getParentNodeLocation",value:function(e){return this.model.getParentNodeLocation(e)}},{key:"isCollapsible",value:function(e){return this.model.isCollapsible(e)}},{key:"setCollapsible",value:function(e,t){return this.model.setCollapsible(e,t)}},{key:"isCollapsed",value:function(e){return this.model.isCollapsed(e)}},{key:"setCollapsed",value:function(e,t,n){return this.model.setCollapsed(e,t,n)}},{key:"expandTo",value:function(e){return this.model.expandTo(e)}},{key:"rerender",value:function(e){return this.model.rerender(e)}},{key:"refilter",value:function(){return this.model.refilter()}},{key:"getCompressedTreeNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.model.getNode(e)}}]),e}(),Te=n(94995),Oe=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Ie=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return(0,c.Z)(this,n),t.call(this,e,i,r,o,a)}return(0,d.Z)(n,[{key:"onDidChangeCollapseState",get:function(){return this.model.onDidChangeCollapseState}},{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2?arguments[2]:void 0;this.model.setChildren(e,t,n)}},{key:"rerender",value:function(e){void 0!==e?this.model.rerender(e):this.view.rerender()}},{key:"hasElement",value:function(e){return this.model.has(e)}},{key:"createModel",value:function(e,t,n){return new be(e,t,n)}}]),n}(ye),Ae=function(){function e(t,n){(0,c.Z)(this,e),this._compressedTreeNodeProvider=t,this.renderer=n,this.templateId=n.templateId,n.onDidChangeTwistieState&&(this.onDidChangeTwistieState=n.onDidChangeTwistieState)}return(0,d.Z)(e,[{key:"compressedTreeNodeProvider",get:function(){return this._compressedTreeNodeProvider()}},{key:"renderTemplate",value:function(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}},{key:"renderElement",value:function(e,t,n,i){var r=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);1===r.element.elements.length?(n.compressedTreeNode=void 0,this.renderer.renderElement(e,t,n.data,i)):(n.compressedTreeNode=r,this.renderer.renderCompressedElements(r,t,n.data,i))}},{key:"disposeElement",value:function(e,t,n,i){n.compressedTreeNode?this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(n.compressedTreeNode,t,n.data,i):this.renderer.disposeElement&&this.renderer.disposeElement(e,t,n.data,i)}},{key:"disposeTemplate",value:function(e){this.renderer.disposeTemplate(e.data)}},{key:"renderTwistie",value:function(e,t){return!!this.renderer.renderTwistie&&this.renderer.renderTwistie(e,t)}}]),e}();Oe([Te.H],Ae.prototype,"compressedTreeNodeProvider",null);var Pe=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a){var s,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};(0,c.Z)(this,n);var l=function(){return(0,o.Z)(s)},d=a.map((function(e){return new Ae(l,e)}));return s=t.call(this,e,i,r,d,function(e,t){return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel:function(n){var i;try{i=e().getCompressedTreeNode(n)}catch(r){return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(n)}return 1===i.element.elements.length?t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(n):t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(i.element.elements)}}})}(l,u))}return(0,d.Z)(n,[{key:"setChildren",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.$.empty(),n=arguments.length>2?arguments[2]:void 0;this.model.setChildren(e,t,n)}},{key:"createModel",value:function(e,t,n){return new Me(e,t,n)}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),"undefined"!==typeof e.compressionEnabled&&this.model.setCompressionEnabled(e.compressionEnabled)}},{key:"getCompressedTreeNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.model.getCompressedTreeNode(e)}}]),n}(Ie),Re=n(87757),Ze=n.n(Re),Fe=n(8729),je=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function He(e){return Object.assign(Object.assign({},e),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})}function Be(e,t){return!!t.parent&&(t.parent===e||Be(e,t.parent))}function ze(e,t){return e===t||Be(e,t)||Be(t,e)}var We=function(){function e(t){(0,c.Z)(this,e),this.node=t}return(0,d.Z)(e,[{key:"element",get:function(){return this.node.element.element}},{key:"children",get:function(){return this.node.children.map((function(t){return new e(t)}))}},{key:"depth",get:function(){return this.node.depth}},{key:"visibleChildrenCount",get:function(){return this.node.visibleChildrenCount}},{key:"visibleChildIndex",get:function(){return this.node.visibleChildIndex}},{key:"collapsible",get:function(){return this.node.collapsible}},{key:"collapsed",get:function(){return this.node.collapsed}},{key:"visible",get:function(){return this.node.visible}},{key:"filterData",get:function(){return this.node.filterData}}]),e}(),Ve=function(){function e(t,n,i){(0,c.Z)(this,e),this.renderer=t,this.nodeMapper=n,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=t.templateId}return(0,d.Z)(e,[{key:"renderTemplate",value:function(e){return{templateData:this.renderer.renderTemplate(e)}}},{key:"renderElement",value:function(e,t,n,i){this.renderer.renderElement(this.nodeMapper.map(e),t,n.templateData,i)}},{key:"renderTwistie",value:function(e,t){var n,i;return e.slow?((n=t.classList).add.apply(n,(0,A.Z)(re.classNamesArray)),!0):((i=t.classList).remove.apply(i,(0,A.Z)(re.classNamesArray)),!1)}},{key:"disposeElement",value:function(e,t,n,i){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,n.templateData,i)}},{key:"disposeTemplate",value:function(e){this.renderer.disposeTemplate(e.templateData)}},{key:"dispose",value:function(){this.renderedNodes.clear()}}]),e}();function Ye(e){return{browserEvent:e.browserEvent,elements:e.elements.map((function(e){return e.element}))}}function Ue(e){return{browserEvent:e.browserEvent,element:e.element&&e.element.element,target:e.target}}var Ke=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this,e.elements.map((function(e){return e.element})))).data=e,i}return(0,d.Z)(n)}(H.kX);function qe(e){return e instanceof H.kX?new Ke(e):e}var Ge=function(){function e(t){(0,c.Z)(this,e),this.dnd=t}return(0,d.Z)(e,[{key:"getDragURI",value:function(e){return this.dnd.getDragURI(e.element)}},{key:"getDragLabel",value:function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((function(e){return e.element})),t)}},{key:"onDragStart",value:function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(qe(e),t)}},{key:"onDragOver",value:function(e,t,n,i){return this.dnd.onDragOver(qe(e),t&&t.element,n,i)}},{key:"drop",value:function(e,t,n,i){this.dnd.drop(qe(e),t&&t.element,n,i)}},{key:"onDragEnd",value:function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)}}]),e}();function $e(e){return e&&Object.assign(Object.assign({},e),{collapseByDefault:!0,identityProvider:e.identityProvider&&{getId:function(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new Ge(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent:function(t){return e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))},isSelectionRangeChangeEvent:function(t){return e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))}},accessibilityProvider:e.accessibilityProvider&&Object.assign(Object.assign({},e.accessibilityProvider),{getPosInSet:void 0,getSetSize:void 0,getRole:e.accessibilityProvider.getRole?function(t){return e.accessibilityProvider.getRole(t.element)}:function(){return"treeitem"},isChecked:e.accessibilityProvider.isChecked?function(t){var n;return!!(null===(n=e.accessibilityProvider)||void 0===n?void 0:n.isChecked(t.element))}:void 0,getAriaLabel:function(t){return e.accessibilityProvider.getAriaLabel(t.element)},getWidgetAriaLabel:function(){return e.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:e.accessibilityProvider.getWidgetRole?function(){return e.accessibilityProvider.getWidgetRole()}:function(){return"tree"},getAriaLevel:e.accessibilityProvider.getAriaLevel&&function(t){return e.accessibilityProvider.getAriaLevel(t.element)},getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&function(t){return e.accessibilityProvider.getActiveDescendantId(t.element)}}),filter:e.filter&&{filter:function(t,n){return e.filter.filter(t.element,n)}},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:function(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}),sorter:void 0,expandOnlyOnTwistieClick:"undefined"===typeof e.expandOnlyOnTwistieClick?void 0:"function"!==typeof e.expandOnlyOnTwistieClick?e.expandOnlyOnTwistieClick:function(t){return e.expandOnlyOnTwistieClick(t.element)},additionalScrollHeight:e.additionalScrollHeight})}function Qe(e,t){t(e),e.children.forEach((function(e){return Qe(e,t)}))}var Xe=function(){function e(t,n,i,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};(0,c.Z)(this,e),this.user=t,this.dataSource=o,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new g.Q5,this._onDidChangeNodeSlowState=new g.Q5,this.nodeMapper=new F((function(e){return new We(e)})),this.disposables=new f.SL,this.identityProvider=a.identityProvider,this.autoExpandSingleChildren="undefined"!==typeof a.autoExpandSingleChildren&&a.autoExpandSingleChildren,this.sorter=a.sorter,this.collapseByDefault=a.collapseByDefault,this.tree=this.createTree(t,n,i,r,a),this.root=He({element:void 0,parent:null,hasChildren:!0}),this.identityProvider&&(this.root=Object.assign(Object.assign({},this.root),{id:null})),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}return(0,d.Z)(e,[{key:"onDidChangeFocus",get:function(){return g.ju.map(this.tree.onDidChangeFocus,Ye)}},{key:"onDidChangeSelection",get:function(){return g.ju.map(this.tree.onDidChangeSelection,Ye)}},{key:"onMouseDblClick",get:function(){return g.ju.map(this.tree.onMouseDblClick,Ue)}},{key:"onPointer",get:function(){return g.ju.map(this.tree.onPointer,Ue)}},{key:"onDidFocus",get:function(){return this.tree.onDidFocus}},{key:"onDidDispose",get:function(){return this.tree.onDidDispose}},{key:"createTree",value:function(e,t,n,i,r){var o=this,a=new le(n),s=i.map((function(e){return new Ve(e,o.nodeMapper,o._onDidChangeNodeSlowState.event)})),u=$e(r)||{};return new Ie(e,t,a,s,u)}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.tree.updateOptions(e)}},{key:"getHTMLElement",value:function(){return this.tree.getHTMLElement()}},{key:"scrollTop",get:function(){return this.tree.scrollTop},set:function(e){this.tree.scrollTop=e}},{key:"domFocus",value:function(){this.tree.domFocus()}},{key:"layout",value:function(e,t){this.tree.layout(e,t)}},{key:"style",value:function(e){this.tree.style(e)}},{key:"getInput",value:function(){return this.root.element}},{key:"setInput",value:function(e,t){return je(this,void 0,void 0,Ze().mark((function n(){var i;return Ze().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return this.refreshPromises.forEach((function(e){return e.cancel()})),this.refreshPromises.clear(),this.root.element=e,i=t&&{viewState:t,focus:[],selection:[]},n.next=6,this._updateChildren(e,!0,!1,i);case 6:i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&"number"===typeof t.scrollTop&&(this.scrollTop=t.scrollTop);case 8:case"end":return n.stop()}}),n,this)})))}},{key:"_updateChildren",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.root.element,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;return je(this,void 0,void 0,Ze().mark((function o(){var a;return Ze().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if("undefined"!==typeof this.root.element){o.next=2;break}throw new Z(this.user,"Tree input not set");case 2:if(!this.root.refreshPromise){o.next=7;break}return o.next=5,this.root.refreshPromise;case 5:return o.next=7,g.ju.toPromise(this._onDidRender.event);case 7:return a=this.getDataNode(e),o.next=10,this.refreshAndRenderNode(a,t,i,r);case 10:if(n)try{this.tree.rerender(a)}catch(s){}case 11:case"end":return o.stop()}}),o,this)})))}},{key:"rerender",value:function(e){if(void 0!==e&&e!==this.root.element){var t=this.getDataNode(e);this.tree.rerender(t)}else this.tree.rerender()}},{key:"collapse",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getDataNode(e);return this.tree.collapse(n===this.root?null:n,t)}},{key:"expand",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return je(this,void 0,void 0,Ze().mark((function n(){var i,r;return Ze().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if("undefined"!==typeof this.root.element){n.next=2;break}throw new Z(this.user,"Tree input not set");case 2:if(!this.root.refreshPromise){n.next=7;break}return n.next=5,this.root.refreshPromise;case 5:return n.next=7,g.ju.toPromise(this._onDidRender.event);case 7:if(i=this.getDataNode(e),!this.tree.hasElement(i)||this.tree.isCollapsible(i)){n.next=10;break}return n.abrupt("return",!1);case 10:if(!i.refreshPromise){n.next=15;break}return n.next=13,this.root.refreshPromise;case 13:return n.next=15,g.ju.toPromise(this._onDidRender.event);case 15:if(i===this.root||i.refreshPromise||this.tree.isCollapsed(i)){n.next=17;break}return n.abrupt("return",!1);case 17:if(r=this.tree.expand(i===this.root?null:i,t),!i.refreshPromise){n.next=23;break}return n.next=21,this.root.refreshPromise;case 21:return n.next=23,g.ju.toPromise(this._onDidRender.event);case 23:return n.abrupt("return",r);case 24:case"end":return n.stop()}}),n,this)})))}},{key:"setSelection",value:function(e,t){var n=this,i=e.map((function(e){return n.getDataNode(e)}));this.tree.setSelection(i,t)}},{key:"getSelection",value:function(){return this.tree.getSelection().map((function(e){return e.element}))}},{key:"setFocus",value:function(e,t){var n=this,i=e.map((function(e){return n.getDataNode(e)}));this.tree.setFocus(i,t)}},{key:"getFocus",value:function(){return this.tree.getFocus().map((function(e){return e.element}))}},{key:"reveal",value:function(e,t){this.tree.reveal(this.getDataNode(e),t)}},{key:"getDataNode",value:function(e){var t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new Z(this.user,"Data tree node not found: ".concat(e));return t}},{key:"refreshAndRenderNode",value:function(e,t,n,i){return je(this,void 0,void 0,Ze().mark((function r(){return Ze().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.refreshNode(e,t,n);case 2:this.render(e,n,i);case 3:case"end":return r.stop()}}),r,this)})))}},{key:"refreshNode",value:function(e,t,n){return je(this,void 0,void 0,Ze().mark((function i(){var r,o=this;return Ze().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(this.subTreeRefreshPromises.forEach((function(i,a){!r&&ze(a,e)&&(r=i.then((function(){return o.refreshNode(e,t,n)})))})),!r){i.next=3;break}return i.abrupt("return",r);case 3:return i.abrupt("return",this.doRefreshSubTree(e,t,n));case 4:case"end":return i.stop()}}),i,this)})))}},{key:"doRefreshSubTree",value:function(e,t,n){return je(this,void 0,void 0,Ze().mark((function i(){var r,o,a=this;return Ze().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return e.refreshPromise=new Promise((function(e){return r=e})),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally((function(){e.refreshPromise=void 0,a.subTreeRefreshPromises.delete(e)})),i.prev=3,i.next=6,this.doRefreshNode(e,t,n);case 6:return o=i.sent,e.stale=!1,i.next=10,G.jT.settled(o.map((function(e){return a.doRefreshSubTree(e,t,n)})));case 10:return i.prev=10,r(),i.finish(10);case 13:case"end":return i.stop()}}),i,this,[[3,,10,13]])})))}},{key:"doRefreshNode",value:function(e,t,n){return je(this,void 0,void 0,Ze().mark((function i(){var r,o,a,s=this;return Ze().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return e.hasChildren=!!this.dataSource.hasChildren(e.element),e.hasChildren?((o=(0,G.Vs)(800)).then((function(){e.slow=!0,s._onDidChangeNodeSlowState.fire(e)}),(function(e){return null})),r=this.doGetChildren(e).finally((function(){return o.cancel()}))):r=Promise.resolve(O.$.empty()),i.prev=2,i.next=5,r;case 5:return a=i.sent,i.abrupt("return",this.setChildren(e,a,t,n));case 9:if(i.prev=9,i.t0=i.catch(2),e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),!(0,Fe.VV)(i.t0)){i.next=14;break}return i.abrupt("return",[]);case 14:throw i.t0;case 15:return i.prev=15,e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e)),i.finish(15);case 18:case"end":return i.stop()}}),i,this,[[2,9,15,18]])})))}},{key:"doGetChildren",value:function(e){var t=this,n=this.refreshPromises.get(e);return n||(n=(0,G.PG)((function(){return je(t,void 0,void 0,Ze().mark((function t(){var n;return Ze().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.dataSource.getChildren(e.element);case 2:return n=t.sent,t.abrupt("return",this.processChildren(n));case 4:case"end":return t.stop()}}),t,this)})))})),this.refreshPromises.set(e,n),n.finally((function(){t.refreshPromises.delete(e)})))}},{key:"_onDidChangeCollapseState",value:function(e){var t=e.node,n=e.deep;null!==t.element&&!t.collapsed&&t.element.stale&&(n?this.collapse(t.element.element):this.refreshAndRenderNode(t.element,!1).catch(Fe.dL))}},{key:"setChildren",value:function(e,t,n,i){var r,o=this,a=(0,A.Z)(t);if(0===e.children.length&&0===a.length)return[];var s,u=new Map,l=new Map,c=(0,I.Z)(e.children);try{for(c.s();!(s=c.n()).done;){var d=s.value;if(u.set(d.element,d),this.identityProvider){var h=this.tree.isCollapsed(d);l.set(d.id,{node:d,collapsed:h})}}}catch(b){c.e(b)}finally{c.f()}var f,p=[],v=a.map((function(t){var r=!!o.dataSource.hasChildren(t);if(!o.identityProvider){var a=He({element:t,parent:e,hasChildren:r});return r&&o.collapseByDefault&&!o.collapseByDefault(t)&&(a.collapsedByDefault=!1,p.push(a)),a}var s=o.identityProvider.getId(t).toString(),c=l.get(s);if(c){var d=c.node;return u.delete(d.element),o.nodes.delete(d.element),o.nodes.set(t,d),d.element=t,d.hasChildren=r,n?c.collapsed?(d.children.forEach((function(e){return Qe(e,(function(e){return o.nodes.delete(e.element)}))})),d.children.splice(0,d.children.length),d.stale=!0):p.push(d):r&&o.collapseByDefault&&!o.collapseByDefault(t)&&(d.collapsedByDefault=!1,p.push(d)),d}var h=He({element:t,parent:e,id:s,hasChildren:r});return i&&i.viewState.focus&&i.viewState.focus.indexOf(s)>-1&&i.focus.push(h),i&&i.viewState.selection&&i.viewState.selection.indexOf(s)>-1&&i.selection.push(h),i&&i.viewState.expanded&&i.viewState.expanded.indexOf(s)>-1?p.push(h):r&&o.collapseByDefault&&!o.collapseByDefault(t)&&(h.collapsedByDefault=!1,p.push(h)),h})),g=(0,I.Z)(u.values());try{for(g.s();!(f=g.n()).done;){Qe(f.value,(function(e){return o.nodes.delete(e.element)}))}}catch(b){g.e(b)}finally{g.f()}var m,_=(0,I.Z)(v);try{for(_.s();!(m=_.n()).done;){var y=m.value;this.nodes.set(y.element,y)}}catch(b){_.e(b)}finally{_.f()}return(r=e.children).splice.apply(r,[0,e.children.length].concat((0,A.Z)(v))),e!==this.root&&this.autoExpandSingleChildren&&1===v.length&&0===p.length&&(v[0].collapsedByDefault=!1,p.push(v[0])),p}},{key:"render",value:function(e,t,n){var i=this,r=e.children.map((function(e){return i.asTreeElement(e,t)})),o=n&&Object.assign(Object.assign({},n),{diffIdentityProvider:n.diffIdentityProvider&&{getId:function(e){return n.diffIdentityProvider.getId(e.element)}}});this.tree.setChildren(e===this.root?null:e,r,o),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}},{key:"asTreeElement",value:function(e,t){var n,i=this;return e.stale?{element:e,collapsible:e.hasChildren,collapsed:!0}:(n=!(t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1)&&e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?O.$.map(e.children,(function(e){return i.asTreeElement(e,t)})):[],collapsible:e.hasChildren,collapsed:n})}},{key:"processChildren",value:function(e){return this.sorter&&(e=(0,A.Z)(e).sort(this.sorter.compare.bind(this.sorter))),e}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}(),Je=function(){function e(t){(0,c.Z)(this,e),this.node=t}return(0,d.Z)(e,[{key:"element",get:function(){return{elements:this.node.element.elements.map((function(e){return e.element})),incompressible:this.node.element.incompressible}}},{key:"children",get:function(){return this.node.children.map((function(t){return new e(t)}))}},{key:"depth",get:function(){return this.node.depth}},{key:"visibleChildrenCount",get:function(){return this.node.visibleChildrenCount}},{key:"visibleChildIndex",get:function(){return this.node.visibleChildIndex}},{key:"collapsible",get:function(){return this.node.collapsible}},{key:"collapsed",get:function(){return this.node.collapsed}},{key:"visible",get:function(){return this.node.visible}},{key:"filterData",get:function(){return this.node.filterData}}]),e}(),et=function(){function e(t,n,i,r){(0,c.Z)(this,e),this.renderer=t,this.nodeMapper=n,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=r,this.renderedNodes=new Map,this.disposables=[],this.templateId=t.templateId}return(0,d.Z)(e,[{key:"renderTemplate",value:function(e){return{templateData:this.renderer.renderTemplate(e)}}},{key:"renderElement",value:function(e,t,n,i){this.renderer.renderElement(this.nodeMapper.map(e),t,n.templateData,i)}},{key:"renderCompressedElements",value:function(e,t,n,i){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,n.templateData,i)}},{key:"renderTwistie",value:function(e,t){var n,i;return e.slow?((n=t.classList).add.apply(n,(0,A.Z)(re.classNamesArray)),!0):((i=t.classList).remove.apply(i,(0,A.Z)(re.classNamesArray)),!1)}},{key:"disposeElement",value:function(e,t,n,i){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,n.templateData,i)}},{key:"disposeCompressedElements",value:function(e,t,n,i){this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(e),t,n.templateData,i)}},{key:"disposeTemplate",value:function(e){this.renderer.disposeTemplate(e.templateData)}},{key:"dispose",value:function(){this.renderedNodes.clear(),this.disposables=(0,f.B9)(this.disposables)}}]),e}();var tt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o,a,s){var u,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};return(0,c.Z)(this,n),(u=t.call(this,e,i,r,a,s,l)).compressionDelegate=o,u.compressibleNodeMapper=new F((function(e){return new Je(e)})),u.filter=l.filter,u}return(0,d.Z)(n,[{key:"createTree",value:function(e,t,n,i,r){var o=this,a=new le(n),s=i.map((function(e){return new et(e,o.nodeMapper,(function(){return o.compressibleNodeMapper}),o._onDidChangeNodeSlowState.event)})),u=function(e){var t=e&&$e(e);return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},t.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel:function(t){return e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map((function(e){return e.element})))}})})}(r)||{};return new Pe(e,t,a,s,u)}},{key:"asTreeElement",value:function(e,t){return Object.assign({incompressible:this.compressionDelegate.isIncompressible(e.element)},(0,a.Z)((0,s.Z)(n.prototype),"asTreeElement",this).call(this,e,t))}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.tree.updateOptions(e)}},{key:"render",value:function(e,t){var i=this;if(!this.identityProvider)return(0,a.Z)((0,s.Z)(n.prototype),"render",this).call(this,e,t);var r=function(e){return i.identityProvider.getId(e).toString()},o=function(e){var t,n=new Set,o=(0,I.Z)(e);try{for(o.s();!(t=o.n()).done;){var a=t.value,s=i.tree.getCompressedTreeNode(a===i.root?null:a);if(s.element){var u,l=(0,I.Z)(s.element.elements);try{for(l.s();!(u=l.n()).done;){var c=u.value;n.add(r(c.element))}}catch(d){l.e(d)}finally{l.f()}}}}catch(d){o.e(d)}finally{o.f()}return n},u=o(this.tree.getSelection()),l=o(this.tree.getFocus());(0,a.Z)((0,s.Z)(n.prototype),"render",this).call(this,e,t);var c=this.getSelection(),d=!1,h=this.getFocus(),f=!1;!function e(t){var n=t.element;if(n)for(var i=0;i<n.elements.length;i++){var o=r(n.elements[i].element),a=n.elements[n.elements.length-1].element;u.has(o)&&-1===c.indexOf(a)&&(c.push(a),d=!0),l.has(o)&&-1===h.indexOf(a)&&(h.push(a),f=!0)}t.children.forEach(e)}(this.tree.getCompressedTreeNode(e===this.root?null:e)),d&&this.setSelection(c),f&&this.setFocus(h)}},{key:"processChildren",value:function(e){var t=this;return this.filter&&(e=O.$.filter(e,(function(e){var n,i=t.filter.filter(e,1),r="boolean"===typeof(n=i)?n?1:0:Y(n)?U(n.visibility):U(n);if(2===r)throw new Error("Recursive tree visibility not supported in async data compressed trees");return 1===r}))),(0,a.Z)((0,s.Z)(n.prototype),"processChildren",this).call(this,e)}}]),n}(Xe);var nt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,o,a){var s,u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return(0,c.Z)(this,n),(s=t.call(this,e,i,r,o,u)).user=e,s.dataSource=a,s.identityProvider=u.identityProvider,s}return(0,d.Z)(n,[{key:"createModel",value:function(e,t,n){return new be(e,t,n)}}]),n}(ye),it=n(40782),rt=n(44393),ot=function(){function e(t,n,i){(0,c.Z)(this,e),this.columns=t,this.getColumnSize=i,this.templateId=e.TemplateId,this.renderedTemplates=new Set;var r=new Map(n.map((function(e){return[e.templateId,e]})));this.renderers=[];var o,a=(0,I.Z)(t);try{for(a.s();!(o=a.n()).done;){var s=o.value,u=r.get(s.templateId);if(!u)throw new Error("Table cell renderer for template id ".concat(s.templateId," not found."));this.renderers.push(u)}}catch(l){a.e(l)}finally{a.f()}}return(0,d.Z)(e,[{key:"renderTemplate",value:function(e){for(var t=(0,h.append)(e,(0,h.$)(".monaco-table-tr")),n=[],i=[],r=0;r<this.columns.length;r++){var o=this.renderers[r],a=(0,h.append)(t,(0,h.$)(".monaco-table-td",{"data-col-index":r}));a.style.width="".concat(this.getColumnSize(r),"px"),n.push(a),i.push(o.renderTemplate(a))}var s={container:e,cellContainers:n,cellTemplateData:i};return this.renderedTemplates.add(s),s}},{key:"renderElement",value:function(e,t,n,i){for(var r=0;r<this.columns.length;r++){var o=this.columns[r].project(e);this.renderers[r].renderElement(o,t,n.cellTemplateData[r],i)}}},{key:"disposeElement",value:function(e,t,n,i){for(var r=0;r<this.columns.length;r++){var o=this.renderers[r];if(o.disposeElement){var a=this.columns[r].project(e);o.disposeElement(a,t,n.cellTemplateData[r],i)}}}},{key:"disposeTemplate",value:function(e){for(var t=0;t<this.columns.length;t++){this.renderers[t].disposeTemplate(e.cellTemplateData[t])}(0,h.clearNode)(e.container),this.renderedTemplates.delete(e)}},{key:"layoutColumn",value:function(e,t){var n,i=(0,I.Z)(this.renderedTemplates);try{for(i.s();!(n=i.n()).done;){n.value.cellContainers[e].style.width="".concat(t,"px")}}catch(r){i.e(r)}finally{i.f()}}}]),e}();ot.TemplateId="row";var at,st=function(){function e(t,n){(0,c.Z)(this,e),this.column=t,this.index=n,this._onDidLayout=new g.Q5,this.onDidLayout=this._onDidLayout.event,this.element=(0,h.$)(".monaco-table-th",{"data-col-index":n,title:t.tooltip},t.label)}return(0,d.Z)(e,[{key:"minimumSize",get:function(){var e;return null!==(e=this.column.minimumWidth)&&void 0!==e?e:120}},{key:"maximumSize",get:function(){var e;return null!==(e=this.column.maximumWidth)&&void 0!==e?e:Number.POSITIVE_INFINITY}},{key:"onDidChange",get:function(){var e;return null!==(e=this.column.onDidChangeWidthConstraints)&&void 0!==e?e:g.ju.None}},{key:"layout",value:function(e){this._onDidLayout.fire([this.index,e])}}]),e}(),ut=function(){function e(t,n,i,o,a,s){var u=this;(0,c.Z)(this,e),this.virtualDelegate=i,this.domId="table_id_".concat(++e.InstanceCount),this.cachedHeight=0,this.domNode=(0,h.append)(n,(0,h.$)(".monaco-table.".concat(this.domId)));var l=o.map((function(e,t){return new st(e,t)})),d={size:l.reduce((function(e,t){return e+t.column.weight}),0),views:l.map((function(e){return{size:e.column.weight,view:e}}))};this.splitview=new rt.z(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:function(){return u.cachedHeight},descriptor:d}),this.splitview.el.style.height="".concat(i.headerRowHeight,"px"),this.splitview.el.style.lineHeight="".concat(i.headerRowHeight,"px");var f,p=new ot(o,a,(function(e){return u.splitview.getViewSize(e)}));this.list=new v.aV(t,this.domNode,(f=i,{getHeight:function(e){return f.getHeight(e)},getTemplateId:function(){return ot.TemplateId}}),[p],s),this.columnLayoutDisposable=g.ju.any.apply(g.ju,(0,A.Z)(l.map((function(e){return e.onDidLayout}))))((function(e){var t=(0,r.Z)(e,2),n=t[0],i=t[1];return p.layoutColumn(n,i)})),this.styleElement=(0,h.createStyleSheet)(this.domNode),this.style({})}return(0,d.Z)(e,[{key:"onDidChangeFocus",get:function(){return this.list.onDidChangeFocus}},{key:"onDidChangeSelection",get:function(){return this.list.onDidChangeSelection}},{key:"onMouseDblClick",get:function(){return this.list.onMouseDblClick}},{key:"onPointer",get:function(){return this.list.onPointer}},{key:"onDidFocus",get:function(){return this.list.onDidFocus}},{key:"onDidDispose",get:function(){return this.list.onDidDispose}},{key:"updateOptions",value:function(e){this.list.updateOptions(e)}},{key:"splice",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];this.list.splice(e,t,n)}},{key:"getHTMLElement",value:function(){return this.domNode}},{key:"style",value:function(e){var t=[];t.push(".monaco-table.".concat(this.domId," > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ").concat(this.virtualDelegate.headerRowHeight+1,"px;\n\t\t\theight: calc(100% - ").concat(this.virtualDelegate.headerRowHeight,"px);\n\t\t}")),this.styleElement.textContent=t.join("\n"),this.list.style(e)}},{key:"getSelectedElements",value:function(){return this.list.getSelectedElements()}},{key:"getSelection",value:function(){return this.list.getSelection()}},{key:"getFocus",value:function(){return this.list.getFocus()}},{key:"dispose",value:function(){this.splitview.dispose(),this.list.dispose(),this.columnLayoutDisposable.dispose()}}]),e}();ut.InstanceCount=0;var lt=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},ct=function(e,t){return function(n,i){t(n,i,e)}},dt=(0,L.yh)("listService"),ht=function(){function e(t){(0,c.Z)(this,e),this._themeService=t,this.disposables=new f.SL,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}return(0,d.Z)(e,[{key:"lastFocusedList",get:function(){return this._lastFocusedWidget}},{key:"register",value:function(e,t){var n=this;if(!this._hasCreatedStyleController){this._hasCreatedStyleController=!0;var i=new v.wD((0,h.createStyleSheet)(),"");this.disposables.add((0,D.Jl)(i,this._themeService))}if(this.lists.some((function(t){return t.widget===e})))throw new Error("Cannot register the same widget multiple times");var r={widget:e,extraContextKeys:t};return this.lists.push(r),e.getHTMLElement()===document.activeElement&&(this._lastFocusedWidget=e),(0,f.F8)(e.onDidFocus((function(){return n._lastFocusedWidget=e})),(0,f.OF)((function(){return n.lists.splice(n.lists.indexOf(r),1)})),e.onDidDispose((function(){n.lists=n.lists.filter((function(e){return e!==r})),n._lastFocusedWidget===e&&(n._lastFocusedWidget=void 0)})))}},{key:"dispose",value:function(){this.disposables.dispose()}}]),e}();ht=lt([ct(0,M.XE)],ht);var ft=new x.uy("listFocus",!0),pt=new x.uy("listSupportsMultiselect",!0),vt=x.Ao.and(ft,x.Ao.not(T.d)),gt=new x.uy("listHasSelectionOrFocus",!1),mt=new x.uy("listDoubleSelection",!1),_t=new x.uy("listMultiSelection",!1),yt=new x.uy("listSelectionNavigation",!1),bt=new x.uy("listSupportsKeyboardNavigation",!0),wt="listAutomaticKeyboardNavigation",Ct=new x.uy(wt,!0),kt=!1;function St(e,t){var n=e.createScoped(t.getHTMLElement());return ft.bindTo(n),n}var xt="workbench.list.multiSelectModifier",Lt="workbench.list.openMode",Et="workbench.list.horizontalScrolling",Nt="workbench.list.keyboardNavigation",Dt="workbench.list.automaticKeyboardNavigation",Mt="workbench.tree.indent",Tt="workbench.tree.renderIndentGuides",Ot="workbench.list.smoothScrolling",It="workbench.tree.expandMode";function At(e){return"alt"===e.getValue(xt)}var Pt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var i;return(0,c.Z)(this,n),(i=t.call(this)).configurationService=e,i.useAltAsMultipleSelectionModifier=At(e),i.registerListeners(),i}return(0,d.Z)(n,[{key:"registerListeners",value:function(){var e=this;this._register(this.configurationService.onDidChangeConfiguration((function(t){t.affectsConfiguration(xt)&&(e.useAltAsMultipleSelectionModifier=At(e.configurationService))})))}},{key:"isSelectionSingleChangeEvent",value:function(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:(0,v.Zo)(e)}},{key:"isSelectionRangeChangeEvent",value:function(e){return(0,v.wn)(e)}}]),n}(f.JT);function Rt(e,t,n){var i=new f.SL,r=Object.assign({},e);if(!1!==e.multipleSelectionSupport&&!e.multipleSelectionController){var o=new Pt(t);r.multipleSelectionController=o,i.add(o)}return r.keyboardNavigationDelegate={mightProducePrintableCharacter:function(e){return n.mightProducePrintableCharacter(e)}},r.smoothScrolling=t.getValue(Ot),[r,i]}var Zt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,a,s,u,l,d,h,f,p){var v;(0,c.Z)(this,n);var g="undefined"!==typeof u.horizontalScrolling?u.horizontalScrolling:f.getValue(Et),m=Rt(u,f,p),_=(0,r.Z)(m,2),y=_[0],b=_[1];return(v=t.call(this,e,i,a,s,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,D.o)(h.getColorTheme(),D.O2)),y),{horizontalScrolling:g}))).disposables.add(b),v.contextKeyService=St(l,(0,o.Z)(v)),v.themeService=h,pt.bindTo(v.contextKeyService).set(!(!1===u.multipleSelectionSupport)),yt.bindTo(v.contextKeyService).set(Boolean(u.selectionNavigation)),v.listHasSelectionOrFocus=gt.bindTo(v.contextKeyService),v.listDoubleSelection=mt.bindTo(v.contextKeyService),v.listMultiSelection=_t.bindTo(v.contextKeyService),v.horizontalScrolling=u.horizontalScrolling,v._useAltAsMultipleSelectionModifier=At(f),v.disposables.add(v.contextKeyService),v.disposables.add(d.register((0,o.Z)(v))),u.overrideStyles&&v.updateStyles(u.overrideStyles),v.disposables.add(v.onDidChangeSelection((function(){var e=v.getSelection(),t=v.getFocus();v.contextKeyService.bufferChangeEvents((function(){v.listHasSelectionOrFocus.set(e.length>0||t.length>0),v.listMultiSelection.set(e.length>1),v.listDoubleSelection.set(2===e.length)}))}))),v.disposables.add(v.onDidChangeFocus((function(){var e=v.getSelection(),t=v.getFocus();v.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),v.disposables.add(f.onDidChangeConfiguration((function(e){e.affectsConfiguration(xt)&&(v._useAltAsMultipleSelectionModifier=At(f));var t={};if(e.affectsConfiguration(Et)&&void 0===v.horizontalScrolling){var n=f.getValue(Et);t=Object.assign(Object.assign({},t),{horizontalScrolling:n})}if(e.affectsConfiguration(Ot)){var i=f.getValue(Ot);t=Object.assign(Object.assign({},t),{smoothScrolling:i})}Object.keys(t).length>0&&v.updateOptions(t)}))),v.navigator=new Bt((0,o.Z)(v),Object.assign({configurationService:f},u)),v.disposables.add(v.navigator),v}return(0,d.Z)(n,[{key:"updateOptions",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.updateStyles(e.overrideStyles)}},{key:"updateStyles",value:function(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,D.Jl)(this,this.themeService,e)}},{key:"dispose",value:function(){var e;null===(e=this._styler)||void 0===e||e.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(v.aV);Zt=lt([ct(5,x.i6),ct(6,dt),ct(7,M.XE),ct(8,k.Ui),ct(9,E.d)],Zt);var Ft=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,a,s,u,l,d,h,p,v){var g;(0,c.Z)(this,n);var m="undefined"!==typeof u.horizontalScrolling?u.horizontalScrolling:p.getValue(Et),_=Rt(u,p,v),y=(0,r.Z)(_,2),b=y[0],w=y[1];return(g=t.call(this,e,i,a,s,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,D.o)(h.getColorTheme(),D.O2)),b),{horizontalScrolling:m}))).disposables=new f.SL,g.disposables.add(w),g.contextKeyService=St(l,(0,o.Z)(g)),g.themeService=h,g.horizontalScrolling=u.horizontalScrolling,pt.bindTo(g.contextKeyService).set(!(!1===u.multipleSelectionSupport)),yt.bindTo(g.contextKeyService).set(Boolean(u.selectionNavigation)),g._useAltAsMultipleSelectionModifier=At(p),g.disposables.add(g.contextKeyService),g.disposables.add(d.register((0,o.Z)(g))),u.overrideStyles&&g.updateStyles(u.overrideStyles),u.overrideStyles&&g.disposables.add((0,D.Jl)((0,o.Z)(g),h,u.overrideStyles)),g.disposables.add(p.onDidChangeConfiguration((function(e){e.affectsConfiguration(xt)&&(g._useAltAsMultipleSelectionModifier=At(p));var t={};if(e.affectsConfiguration(Et)&&void 0===g.horizontalScrolling){var n=p.getValue(Et);t=Object.assign(Object.assign({},t),{horizontalScrolling:n})}if(e.affectsConfiguration(Ot)){var i=p.getValue(Ot);t=Object.assign(Object.assign({},t),{smoothScrolling:i})}Object.keys(t).length>0&&g.updateOptions(t)}))),g.navigator=new Bt((0,o.Z)(g),Object.assign({configurationService:p},u)),g.disposables.add(g.navigator),g}return(0,d.Z)(n,[{key:"updateOptions",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.updateStyles(e.overrideStyles)}},{key:"updateStyles",value:function(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,D.Jl)(this,this.themeService,e)}},{key:"dispose",value:function(){var e;null===(e=this._styler)||void 0===e||e.dispose(),this.disposables.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(w);Ft=lt([ct(5,x.i6),ct(6,dt),ct(7,M.XE),ct(8,k.Ui),ct(9,E.d)],Ft);var jt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,a,s,u,l,d,h,p,v,g){var m;(0,c.Z)(this,n);var _="undefined"!==typeof l.horizontalScrolling?l.horizontalScrolling:v.getValue(Et),y=Rt(l,v,g),b=(0,r.Z)(y,2),w=b[0],C=b[1];return(m=t.call(this,e,i,a,s,u,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,D.o)(p.getColorTheme(),D.O2)),w),{horizontalScrolling:_}))).disposables=new f.SL,m.disposables.add(C),m.contextKeyService=St(d,(0,o.Z)(m)),m.themeService=p,pt.bindTo(m.contextKeyService).set(!(!1===l.multipleSelectionSupport)),yt.bindTo(m.contextKeyService).set(Boolean(l.selectionNavigation)),m.listHasSelectionOrFocus=gt.bindTo(m.contextKeyService),m.listDoubleSelection=mt.bindTo(m.contextKeyService),m.listMultiSelection=_t.bindTo(m.contextKeyService),m.horizontalScrolling=l.horizontalScrolling,m._useAltAsMultipleSelectionModifier=At(v),m.disposables.add(m.contextKeyService),m.disposables.add(h.register((0,o.Z)(m))),l.overrideStyles&&m.updateStyles(l.overrideStyles),m.disposables.add(m.onDidChangeSelection((function(){var e=m.getSelection(),t=m.getFocus();m.contextKeyService.bufferChangeEvents((function(){m.listHasSelectionOrFocus.set(e.length>0||t.length>0),m.listMultiSelection.set(e.length>1),m.listDoubleSelection.set(2===e.length)}))}))),m.disposables.add(m.onDidChangeFocus((function(){var e=m.getSelection(),t=m.getFocus();m.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),m.disposables.add(v.onDidChangeConfiguration((function(e){e.affectsConfiguration(xt)&&(m._useAltAsMultipleSelectionModifier=At(v));var t={};if(e.affectsConfiguration(Et)&&void 0===m.horizontalScrolling){var n=v.getValue(Et);t=Object.assign(Object.assign({},t),{horizontalScrolling:n})}if(e.affectsConfiguration(Ot)){var i=v.getValue(Ot);t=Object.assign(Object.assign({},t),{smoothScrolling:i})}Object.keys(t).length>0&&m.updateOptions(t)}))),m.navigator=new zt((0,o.Z)(m),Object.assign({configurationService:v},l)),m.disposables.add(m.navigator),m}return(0,d.Z)(n,[{key:"updateOptions",value:function(e){(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.updateStyles(e.overrideStyles)}},{key:"updateStyles",value:function(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,D.Jl)(this,this.themeService,e)}},{key:"dispose",value:function(){var e;null===(e=this._styler)||void 0===e||e.dispose(),this.disposables.dispose(),(0,a.Z)((0,s.Z)(n.prototype),"dispose",this).call(this)}}]),n}(ut);jt=lt([ct(6,x.i6),ct(7,dt),ct(8,M.XE),ct(9,k.Ui),ct(10,E.d)],jt);var Ht=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r,o;return(0,c.Z)(this,n),(r=t.call(this)).widget=e,r._onDidOpen=r._register(new g.Q5),r.onDidOpen=r._onDidOpen.event,r._register(g.ju.filter(r.widget.onDidChangeSelection,(function(e){return e.browserEvent instanceof KeyboardEvent}))((function(e){return r.onSelectionFromKeyboard(e)}))),r._register(r.widget.onPointer((function(e){return r.onPointer(e.element,e.browserEvent)}))),r._register(r.widget.onMouseDblClick((function(e){return r.onMouseDblClick(e.element,e.browserEvent)}))),"boolean"!==typeof(null===i||void 0===i?void 0:i.openOnSingleClick)&&(null===i||void 0===i?void 0:i.configurationService)?(r.openOnSingleClick="doubleClick"!==(null===i||void 0===i?void 0:i.configurationService.getValue(Lt)),r._register(null===i||void 0===i?void 0:i.configurationService.onDidChangeConfiguration((function(){r.openOnSingleClick="doubleClick"!==(null===i||void 0===i?void 0:i.configurationService.getValue(Lt))})))):r.openOnSingleClick=null===(o=null===i||void 0===i?void 0:i.openOnSingleClick)||void 0===o||o,r}return(0,d.Z)(n,[{key:"onSelectionFromKeyboard",value:function(e){if(1===e.elements.length){var t=e.browserEvent,n="boolean"!==typeof t.preserveFocus||t.preserveFocus,i="boolean"===typeof t.pinned?t.pinned:!n;this._open(this.getSelectedElement(),n,i,!1,e.browserEvent)}}},{key:"onPointer",value:function(e,t){if(this.openOnSingleClick&&!(2===t.detail)){var n=1===t.button,i=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!0,n,i,t)}}},{key:"onMouseDblClick",value:function(e,t){if(t){var n=t.target;if(!(n.classList.contains("monaco-tl-twistie")||n.classList.contains("monaco-icon-label")&&n.classList.contains("folder-icon")&&t.offsetX<16)){var i=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!1,!0,i,t)}}}},{key:"_open",value:function(e,t,n,i,r){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:n,revealIfVisible:!0},sideBySide:i,element:e,browserEvent:r})}}]),n}(f.JT),Bt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){var r;return(0,c.Z)(this,n),(r=t.call(this,e,i)).widget=e,r}return(0,d.Z)(n,[{key:"getSelectedElement",value:function(){return this.widget.getSelectedElements()[0]}}]),n}(Ht),zt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){return(0,c.Z)(this,n),t.call(this,e,i)}return(0,d.Z)(n,[{key:"getSelectedElement",value:function(){return this.widget.getSelectedElements()[0]}}]),n}(Ht),Wt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i){return(0,c.Z)(this,n),t.call(this,e,i)}return(0,d.Z)(n,[{key:"getSelectedElement",value:function(){var e;return null!==(e=this.widget.getSelection()[0])&&void 0!==e?e:void 0}}]),n}(Ht);function Vt(e,t){var n=!1;return function(i){if(n)return n=!1,!1;var r=t.softDispatch(i,e);return r&&r.enterChord?(n=!0,!1):(n=!1,!0)}}var Yt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p){var v;(0,c.Z)(this,n);var g=$t(i,s,u,h,f,p),m=g.options,_=g.getAutomaticKeyboardNavigation,y=g.disposable;return(v=t.call(this,e,i,r,a,m)).disposables.add(y),v.internals=new Qt((0,o.Z)(v),s,_,s.overrideStyles,u,l,d,h,p),v.disposables.add(v.internals),v}return(0,d.Z)(n)}(Ie);Yt=lt([ct(5,x.i6),ct(6,dt),ct(7,M.XE),ct(8,k.Ui),ct(9,E.d),ct(10,it.F)],Yt);var Ut=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p){var v;(0,c.Z)(this,n);var g=$t(i,s,u,h,f,p),m=g.options,_=g.getAutomaticKeyboardNavigation,y=g.disposable;return(v=t.call(this,e,i,r,a,m)).disposables.add(y),v.internals=new Qt((0,o.Z)(v),s,_,s.overrideStyles,u,l,d,h,p),v.disposables.add(v.internals),v}return(0,d.Z)(n,[{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles)}}]),n}(Pe);Ut=lt([ct(5,x.i6),ct(6,dt),ct(7,M.XE),ct(8,k.Ui),ct(9,E.d),ct(10,it.F)],Ut);var Kt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p,v){var g;(0,c.Z)(this,n);var m=$t(i,u,l,f,p,v),_=m.options,y=m.getAutomaticKeyboardNavigation,b=m.disposable;return(g=t.call(this,e,i,r,a,s,_)).disposables.add(b),g.internals=new Qt((0,o.Z)(g),u,y,u.overrideStyles,l,d,h,f,v),g.disposables.add(g.internals),g}return(0,d.Z)(n,[{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles)}}]),n}(nt);Kt=lt([ct(6,x.i6),ct(7,dt),ct(8,M.XE),ct(9,k.Ui),ct(10,E.d),ct(11,it.F)],Kt);var qt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p,v){var g;(0,c.Z)(this,n);var m=$t(i,u,l,f,p,v),_=m.options,y=m.getAutomaticKeyboardNavigation,b=m.disposable;return(g=t.call(this,e,i,r,a,s,_)).disposables.add(b),g.internals=new Qt((0,o.Z)(g),u,y,u.overrideStyles,l,d,h,f,v),g.disposables.add(g.internals),g}return(0,d.Z)(n,[{key:"onDidOpen",get:function(){return this.internals.onDidOpen}},{key:"updateOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,a.Z)((0,s.Z)(n.prototype),"updateOptions",this).call(this,e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles)}}]),n}(Xe);qt=lt([ct(6,x.i6),ct(7,dt),ct(8,M.XE),ct(9,k.Ui),ct(10,E.d),ct(11,it.F)],qt);var Gt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e,i,r,a,s,u,l,d,h,f,p,v,g){var m;(0,c.Z)(this,n);var _=$t(i,l,d,p,v,g),y=_.options,b=_.getAutomaticKeyboardNavigation,w=_.disposable;return(m=t.call(this,e,i,r,a,s,u,y)).disposables.add(w),m.internals=new Qt((0,o.Z)(m),l,b,l.overrideStyles,d,h,f,p,g),m.disposables.add(m.internals),m}return(0,d.Z)(n)}(tt);function $t(e,t,n,i,o,a){var s;bt.bindTo(n),kt||(Ct.bindTo(n),kt=!0);var u=function(){var e=n.getContextKeyValue(wt);return e&&(e=i.getValue(Dt)),e},l=a.isScreenReaderOptimized(),c=t.simpleKeyboardNavigation||l?"simple":i.getValue(Nt),d=void 0!==t.horizontalScrolling?t.horizontalScrolling:i.getValue(Et),h=Rt(t,i,o),f=(0,r.Z)(h,2),p=f[0],v=f[1],g=t.additionalScrollHeight;return{getAutomaticKeyboardNavigation:u,disposable:v,options:Object.assign(Object.assign({keyboardSupport:!1},p),{indent:i.getValue(Mt),renderIndentGuides:i.getValue(Tt),smoothScrolling:i.getValue(Ot),automaticKeyboardNavigation:u(),simpleKeyboardNavigation:"simple"===c,filterOnType:"filter"===c,horizontalScrolling:d,keyboardNavigationEventFilter:Vt(e,o),additionalScrollHeight:g,hideTwistiesOfChildlessElements:t.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:null!==(s=t.expandOnlyOnTwistieClick)&&void 0!==s?s:"doubleClick"===i.getValue(It)})}}Gt=lt([ct(7,x.i6),ct(8,dt),ct(9,M.XE),ct(10,k.Ui),ct(11,E.d),ct(12,it.F)],Gt);var Qt=function(){function e(t,n,i,r,o,a,s,u,l){var d=this;(0,c.Z)(this,e),this.tree=t,this.themeService=s,this.disposables=[],this.contextKeyService=St(o,t),pt.bindTo(this.contextKeyService).set(!(!1===n.multipleSelectionSupport)),yt.bindTo(this.contextKeyService).set(Boolean(n.selectionNavigation)),this.hasSelectionOrFocus=gt.bindTo(this.contextKeyService),this.hasDoubleSelection=mt.bindTo(this.contextKeyService),this.hasMultiSelection=_t.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=At(u);var h=new Set;h.add(wt);var f=function(){var e=l.isScreenReaderOptimized()?"simple":u.getValue(Nt);t.updateOptions({simpleKeyboardNavigation:"simple"===e,filterOnType:"filter"===e})};this.updateStyleOverrides(r),this.disposables.push(this.contextKeyService,a.register(t),t.onDidChangeSelection((function(){var e=t.getSelection(),n=t.getFocus();d.contextKeyService.bufferChangeEvents((function(){d.hasSelectionOrFocus.set(e.length>0||n.length>0),d.hasMultiSelection.set(e.length>1),d.hasDoubleSelection.set(2===e.length)}))})),t.onDidChangeFocus((function(){var e=t.getSelection(),n=t.getFocus();d.hasSelectionOrFocus.set(e.length>0||n.length>0)})),u.onDidChangeConfiguration((function(e){var r={};if(e.affectsConfiguration(xt)&&(d._useAltAsMultipleSelectionModifier=At(u)),e.affectsConfiguration(Mt)){var o=u.getValue(Mt);r=Object.assign(Object.assign({},r),{indent:o})}if(e.affectsConfiguration(Tt)){var a=u.getValue(Tt);r=Object.assign(Object.assign({},r),{renderIndentGuides:a})}if(e.affectsConfiguration(Ot)){var s=u.getValue(Ot);r=Object.assign(Object.assign({},r),{smoothScrolling:s})}if(e.affectsConfiguration(Nt)&&f(),e.affectsConfiguration(Dt)&&(r=Object.assign(Object.assign({},r),{automaticKeyboardNavigation:i()})),e.affectsConfiguration(Et)&&void 0===n.horizontalScrolling){var l=u.getValue(Et);r=Object.assign(Object.assign({},r),{horizontalScrolling:l})}e.affectsConfiguration(It)&&void 0===n.expandOnlyOnTwistieClick&&(r=Object.assign(Object.assign({},r),{expandOnlyOnTwistieClick:"doubleClick"===u.getValue(It)})),Object.keys(r).length>0&&t.updateOptions(r)})),this.contextKeyService.onDidChangeContext((function(e){e.affectsSome(h)&&t.updateOptions({automaticKeyboardNavigation:i()})})),l.onDidChangeScreenReaderOptimized((function(){return f()}))),this.navigator=new Wt(t,Object.assign({configurationService:u},n)),this.disposables.push(this.navigator)}return(0,d.Z)(e,[{key:"onDidOpen",get:function(){return this.navigator.onDidOpen}},{key:"updateStyleOverrides",value:function(e){(0,f.B9)(this.styler),this.styler=e?(0,D.Jl)(this.tree,this.themeService,e):f.JT.None}},{key:"dispose",value:function(){this.disposables=(0,f.B9)(this.disposables),(0,f.B9)(this.styler),this.styler=void 0}}]),e}();Qt=lt([ct(4,x.i6),ct(5,dt),ct(6,M.XE),ct(7,k.Ui),ct(8,it.F)],Qt),N.B.as(S.IP.Configuration).registerConfiguration({id:"workbench",order:7,title:(0,C.N)("workbenchConfigurationTitle","Workbench"),type:"object",properties:(at={},(0,i.Z)(at,xt,{type:"string",enum:["ctrlCmd","alt"],enumDescriptions:[(0,C.N)("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),(0,C.N)("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:(0,C.N)({key:"multiSelectModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")}),(0,i.Z)(at,Lt,{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,C.N)({key:"openModeModifier",comment:["`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized."]},"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")}),(0,i.Z)(at,Et,{type:"boolean",default:!1,description:(0,C.N)("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")}),(0,i.Z)(at,Mt,{type:"number",default:8,minimum:0,maximum:40,description:(0,C.N)("tree indent setting","Controls tree indentation in pixels.")}),(0,i.Z)(at,Tt,{type:"string",enum:["none","onHover","always"],default:"onHover",description:(0,C.N)("render tree indent guides","Controls whether the tree should render indent guides.")}),(0,i.Z)(at,Ot,{type:"boolean",default:!1,description:(0,C.N)("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")}),(0,i.Z)(at,Nt,{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[(0,C.N)("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),(0,C.N)("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),(0,C.N)("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:(0,C.N)("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.")}),(0,i.Z)(at,Dt,{type:"boolean",default:!0,markdownDescription:(0,C.N)("automatic keyboard navigation setting","Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.")}),(0,i.Z)(at,It,{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,C.N)("expand mode","Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")}),at)})},19974:function(e,t,n){"use strict";n.d(t,{$V:function(){return v},VZ:function(){return d},in:function(){return i},kw:function(){return p}});var i,r=n(15671),o=n(43144),a=n(60136),s=n(29388),u=n(84596),l=n(81626),c=n(11732),d=(0,u.yh)("logService");!function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Info=2]="Info",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.Off=6]="Off"}(i||(i={}));var h=i.Info,f=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.apply(this,arguments)).level=h,e._onDidChangeLogLevel=e._register(new c.Q5),e}return(0,o.Z)(n,[{key:"setLevel",value:function(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}},{key:"getLevel",value:function(){return this.level}}]),n}(l.JT),p=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h;return(0,r.Z)(this,n),(e=t.call(this)).setLevel(i),e}return(0,o.Z)(n,[{key:"trace",value:function(e){if(this.getLevel()<=i.Trace){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["%cTRACE","color: #888",e].concat(r))}}},{key:"debug",value:function(e){if(this.getLevel()<=i.Debug){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["%cDEBUG","background: #eee; color: #888",e].concat(r))}}},{key:"info",value:function(e){if(this.getLevel()<=i.Info){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["%c INFO","color: #33f",e].concat(r))}}},{key:"error",value:function(e){if(this.getLevel()<=i.Error){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["%c ERR","color: #f33",e].concat(r))}}},{key:"dispose",value:function(){}}]),n}(f),v=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var i;return(0,r.Z)(this,n),(i=t.call(this)).logger=e,i._register(e),i}return(0,o.Z)(n,[{key:"getLevel",value:function(){return this.logger.getLevel()}},{key:"trace",value:function(e){for(var t,n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];(t=this.logger).trace.apply(t,[e].concat(i))}},{key:"debug",value:function(e){for(var t,n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];(t=this.logger).debug.apply(t,[e].concat(i))}},{key:"info",value:function(e){for(var t,n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];(t=this.logger).info.apply(t,[e].concat(i))}},{key:"error",value:function(e){for(var t,n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];(t=this.logger).error.apply(t,[e].concat(i))}}]),n}(l.JT)},95123:function(e,t,n){"use strict";n.d(t,{H0:function(){return r},ZL:function(){return i},lT:function(){return u}});var i,r,o=n(84596),a=n(56345),s=n(55046);!function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(i||(i={})),function(e){e.compare=function(e,t){return t-e};var t=Object.create(null);t[e.Error]=(0,a.N)("sev.error","Error"),t[e.Warning]=(0,a.N)("sev.warning","Warning"),t[e.Info]=(0,a.N)("sev.info","Info"),e.toString=function(e){return t[e]||""},e.fromSeverity=function(t){switch(t){case s.Z.Error:return e.Error;case s.Z.Warning:return e.Warning;case s.Z.Info:return e.Info;case s.Z.Ignore:return e.Hint}},e.toSeverity=function(t){switch(t){case e.Error:return s.Z.Error;case e.Warning:return s.Z.Warning;case e.Info:return s.Z.Info;case e.Hint:return s.Z.Ignore}}}(i||(i={})),function(e){var t="";function n(e,n){var r=[t];return e.source?r.push(e.source.replace("\xa6","\\\xa6")):r.push(t),e.code?"string"===typeof e.code?r.push(e.code.replace("\xa6","\\\xa6")):r.push(e.code.value.replace("\xa6","\\\xa6")):r.push(t),void 0!==e.severity&&null!==e.severity?r.push(i.toString(e.severity)):r.push(t),e.message&&n?r.push(e.message.replace("\xa6","\\\xa6")):r.push(t),void 0!==e.startLineNumber&&null!==e.startLineNumber?r.push(e.startLineNumber.toString()):r.push(t),void 0!==e.startColumn&&null!==e.startColumn?r.push(e.startColumn.toString()):r.push(t),void 0!==e.endLineNumber&&null!==e.endLineNumber?r.push(e.endLineNumber.toString()):r.push(t),void 0!==e.endColumn&&null!==e.endColumn?r.push(e.endColumn.toString()):r.push(t),r.push(t),r.join("\xa6")}e.makeKey=function(e){return n(e,!0)},e.makeKeyOptionalMessage=n}(r||(r={}));var u=(0,o.yh)("markerService")},71574:function(e,t,n){"use strict";n.d(t,{EO:function(){return a},lT:function(){return o}});var i=n(43144),r=n(15671),o=(n(55046),(0,n(84596).yh)("notificationService")),a=(0,i.Z)((function e(){(0,r.Z)(this,e)}))},9696:function(e,t,n){"use strict";n.d(t,{SW:function(){return d},v4:function(){return c},xn:function(){return h}});var i=n(87757),r=n.n(i),o=n(81626),a=n(51747),s=n(67775),u=n(84596),l=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},c=(0,u.yh)("openerService"),d=Object.freeze({_serviceBrand:void 0,registerOpener:function(){return o.JT.None},registerValidator:function(){return o.JT.None},registerExternalUriResolver:function(){return o.JT.None},setDefaultExternalOpener:function(){},registerExternalOpener:function(){return o.JT.None},open:function(){return l(this,void 0,void 0,r().mark((function e(){return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",!1);case 1:case"end":return e.stop()}}),e)})))},resolveExternalUri:function(e){return l(this,void 0,void 0,r().mark((function t(){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",{resolved:e,dispose:function(){}});case 1:case"end":return t.stop()}}),t)})))}});function h(e,t){return s.o.isUri(e)?(0,a.qq)(e.scheme,t):(0,a.ok)(e,t+":")}},18085:function(e,t,n){"use strict";n.d(t,{E:function(){return a},e:function(){return s}});var i=n(15671),r=n(43144),o=n(84596),a=function(){function e(t){(0,i.Z)(this,e),this.callback=t}return(0,r.Z)(e,[{key:"report",value:function(e){this._value=e,this.callback(this._value)}}]),e}();a.None=Object.freeze({report:function(){}});var s=(0,o.yh)("editorProgressService")},73921:function(e,t,n){"use strict";n.d(t,{IP:function(){return c},Ry:function(){return i}});var i,r=n(93433),o=n(15671),a=n(43144),s=n(38774),u=n(49396),l=n(81626);!function(e){e[e.PRESERVE=0]="PRESERVE",e[e.LAST=1]="LAST"}(i||(i={}));var c={Quickaccess:"workbench.contributions.quickaccess"},d=function(){function e(){(0,o.Z)(this,e),this.providers=[],this.defaultProvider=void 0}return(0,a.Z)(e,[{key:"registerQuickAccessProvider",value:function(e){var t=this;return 0===e.prefix.length?this.defaultProvider=e:this.providers.push(e),this.providers.sort((function(e,t){return t.prefix.length-e.prefix.length})),(0,l.OF)((function(){t.providers.splice(t.providers.indexOf(e),1),t.defaultProvider===e&&(t.defaultProvider=void 0)}))}},{key:"getQuickAccessProviders",value:function(){return(0,u.kX)([this.defaultProvider].concat((0,r.Z)(this.providers)))}},{key:"getQuickAccessProvider",value:function(e){return e&&this.providers.find((function(t){return e.startsWith(t.prefix)}))||void 0||this.defaultProvider}}]),e}();s.B.add(c.Quickaccess,new d)},62137:function(e,t,n){"use strict";n.d(t,{eJ:function(){return o},jG:function(){return r.jG}});var i=n(84596),r=n(42659),o=(0,i.yh)("quickInputService")},38774:function(e,t,n){"use strict";n.d(t,{B:function(){return s}});var i=n(15671),r=n(43144),o=n(25941),a=n(96147),s=new(function(){function e(){(0,i.Z)(this,e),this.data=new Map}return(0,r.Z)(e,[{key:"add",value:function(e,t){a.ok(o.HD(e)),a.ok(o.Kn(t)),a.ok(!this.data.has(e),"There is already an extension with this id"),this.data.set(e,t)}},{key:"as",value:function(e){return this.data.get(e)||null}}]),e}())},59319:function(e,t,n){"use strict";n.d(t,{Uy:function(){return C},vm:function(){return S},fk:function(){return y}});var i,r=n(15671),o=n(43144),a=n(60136),s=n(29388),u=n(84596),l=n(11732),c=n(81626),d=n(25941),h=n(11752),f=n(61120),p=n(87757),v=n.n(p),g=n(27997),m=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};!function(e){e[e.None=0]="None",e[e.Initialized=1]="Initialized",e[e.Closed=2]="Closed"}(i||(i={}));var _=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var o,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object.create(null);return(0,r.Z)(this,n),(o=t.call(this)).database=e,o.options=a,o._onDidChangeStorage=o._register(new l.Q5),o.onDidChangeStorage=o._onDidChangeStorage.event,o.state=i.None,o.cache=new Map,o.flushDelayer=new g.rH(n.DEFAULT_FLUSH_DELAY),o.pendingDeletes=new Set,o.pendingInserts=new Map,o.whenFlushedCallbacks=[],o.registerListeners(),o}return(0,o.Z)(n,[{key:"registerListeners",value:function(){var e=this;this._register(this.database.onDidChangeItemsExternal((function(t){return e.onDidChangeItemsExternal(t)})))}},{key:"onDidChangeItemsExternal",value:function(e){var t,n,i=this;null===(t=e.changed)||void 0===t||t.forEach((function(e,t){return i.accept(t,e)})),null===(n=e.deleted)||void 0===n||n.forEach((function(e){return i.accept(e,void 0)}))}},{key:"accept",value:function(e,t){if(this.state!==i.Closed){var n=!1;if((0,d.Jp)(t))n=this.cache.delete(e);else this.cache.get(e)!==t&&(this.cache.set(e,t),n=!0);n&&this._onDidChangeStorage.fire(e)}}},{key:"get",value:function(e,t){var n=this.cache.get(e);return(0,d.Jp)(n)?t:n}},{key:"getBoolean",value:function(e,t){var n=this.get(e);return(0,d.Jp)(n)?t:"true"===n}},{key:"getNumber",value:function(e,t){var n=this.get(e);return(0,d.Jp)(n)?t:parseInt(n,10)}},{key:"set",value:function(e,t){return m(this,void 0,void 0,v().mark((function n(){var r,o=this;return v().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(this.state!==i.Closed){n.next=2;break}return n.abrupt("return");case 2:if(!(0,d.Jp)(t)){n.next=4;break}return n.abrupt("return",this.delete(e));case 4:if(r=String(t),this.cache.get(e)!==r){n.next=8;break}return n.abrupt("return");case 8:return this.cache.set(e,r),this.pendingInserts.set(e,r),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire(e),n.abrupt("return",this.flushDelayer.trigger((function(){return o.flushPending()})));case 13:case"end":return n.stop()}}),n,this)})))}},{key:"delete",value:function(e){return m(this,void 0,void 0,v().mark((function t(){var n=this;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.state!==i.Closed){t.next=2;break}return t.abrupt("return");case 2:if(this.cache.delete(e)){t.next=5;break}return t.abrupt("return");case 5:return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire(e),t.abrupt("return",this.flushDelayer.trigger((function(){return n.flushPending()})));case 9:case"end":return t.stop()}}),t,this)})))}},{key:"hasPending",get:function(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}},{key:"flushPending",value:function(){return m(this,void 0,void 0,v().mark((function e(){var t,n=this;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.hasPending){e.next=2;break}return e.abrupt("return");case 2:return t={insert:this.pendingInserts,delete:this.pendingDeletes},this.pendingDeletes=new Set,this.pendingInserts=new Map,e.abrupt("return",this.database.updateItems(t).finally((function(){var e;if(!n.hasPending)for(;n.whenFlushedCallbacks.length;)null===(e=n.whenFlushedCallbacks.pop())||void 0===e||e()})));case 6:case"end":return e.stop()}}),e,this)})))}},{key:"dispose",value:function(){this.flushDelayer.cancel(),this.flushDelayer.dispose(),(0,h.Z)((0,f.Z)(n.prototype),"dispose",this).call(this)}}]),n}(c.JT);_.DEFAULT_FLUSH_DELAY=100;var y,b=function(){function e(){(0,r.Z)(this,e),this.onDidChangeItemsExternal=l.ju.None,this.items=new Map}return(0,o.Z)(e,[{key:"updateItems",value:function(e){return m(this,void 0,void 0,v().mark((function t(){var n=this;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.insert&&e.insert.forEach((function(e,t){return n.items.set(t,e)})),e.delete&&e.delete.forEach((function(e){return n.items.delete(e)}));case 2:case"end":return t.stop()}}),t)})))}}]),e}(),w="__$__targetStorageMarker",C=(0,u.yh)("storageService");!function(e){e[e.NONE=0]="NONE",e[e.SHUTDOWN=1]="SHUTDOWN"}(y||(y={}));var k=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{flushInterval:n.DEFAULT_FLUSH_INTERVAL};return(0,r.Z)(this,n),(e=t.call(this)).options=i,e._onDidChangeValue=e._register(new l.K3),e._onDidChangeTarget=e._register(new l.K3),e._onWillSaveState=e._register(new l.Q5),e.onWillSaveState=e._onWillSaveState.event,e._workspaceKeyTargets=void 0,e._globalKeyTargets=void 0,e}return(0,o.Z)(n,[{key:"emitDidChangeValue",value:function(e,t){t===w?(0===e?this._globalKeyTargets=void 0:1===e&&(this._workspaceKeyTargets=void 0),this._onDidChangeTarget.fire({scope:e})):this._onDidChangeValue.fire({scope:e,key:t,target:this.getKeyTargets(e)[t]})}},{key:"get",value:function(e,t,n){var i;return null===(i=this.getStorage(t))||void 0===i?void 0:i.get(e,n)}},{key:"getBoolean",value:function(e,t,n){var i;return null===(i=this.getStorage(t))||void 0===i?void 0:i.getBoolean(e,n)}},{key:"getNumber",value:function(e,t,n){var i;return null===(i=this.getStorage(t))||void 0===i?void 0:i.getNumber(e,n)}},{key:"store",value:function(e,t,n,i){var r=this;(0,d.Jp)(t)?this.remove(e,n):this.withPausedEmitters((function(){var o;r.updateKeyTarget(e,n,i),null===(o=r.getStorage(n))||void 0===o||o.set(e,t)}))}},{key:"remove",value:function(e,t){var n=this;this.withPausedEmitters((function(){var i;n.updateKeyTarget(e,t,void 0),null===(i=n.getStorage(t))||void 0===i||i.delete(e)}))}},{key:"withPausedEmitters",value:function(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}},{key:"updateKeyTarget",value:function(e,t,n){var i,r,o=this.getKeyTargets(t);"number"===typeof n?o[e]!==n&&(o[e]=n,null===(i=this.getStorage(t))||void 0===i||i.set(w,JSON.stringify(o))):"number"===typeof o[e]&&(delete o[e],null===(r=this.getStorage(t))||void 0===r||r.set(w,JSON.stringify(o)))}},{key:"workspaceKeyTargets",get:function(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}},{key:"globalKeyTargets",get:function(){return this._globalKeyTargets||(this._globalKeyTargets=this.loadKeyTargets(0)),this._globalKeyTargets}},{key:"getKeyTargets",value:function(e){return 0===e?this.globalKeyTargets:this.workspaceKeyTargets}},{key:"loadKeyTargets",value:function(e){var t=this.get(w,e);if(t)try{return JSON.parse(t)}catch(n){}return Object.create(null)}}]),n}(c.JT);k.DEFAULT_FLUSH_INTERVAL=6e4;var S=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.call(this)).globalStorage=new _(new b),e.workspaceStorage=new _(new b),e._register(e.workspaceStorage.onDidChangeStorage((function(t){return e.emitDidChangeValue(1,t)}))),e._register(e.globalStorage.onDidChangeStorage((function(t){return e.emitDidChangeValue(0,t)}))),e}return(0,o.Z)(n,[{key:"getStorage",value:function(e){return 0===e?this.globalStorage:this.workspaceStorage}}]),n}(k)},45014:function(e,t,n){"use strict";n.d(t,{b:function(){return i}});var i=(0,n(84596).yh)("telemetryService")},92992:function(e,t,n){"use strict";n.d(t,{$D:function(){return Ct},$d:function(){return ut},A2:function(){return Q},AB:function(){return q},AS:function(){return lt},AW:function(){return we},BO:function(){return Ht},C3:function(){return P},CA:function(){return Rt},CN:function(){return Ze},Cd:function(){return _t},Cz:function(){return Ve},D0:function(){return ce},D1:function(){return he},DE:function(){return yt},Du:function(){return ae},E3:function(){return kt},EP:function(){return O},ES:function(){return xe},Ei:function(){return Oe},F3:function(){return at},Fm:function(){return Dt},Fu:function(){return ze},GO:function(){return W},Gj:function(){return It},Gw:function(){return ct},Hf:function(){return de},Hz:function(){return bt},I1:function(){return Et},IB:function(){return Be},IP:function(){return d},Id:function(){return g},Iv:function(){return At},Jp:function(){return jt},K1:function(){return Ce},KT:function(){return Tt},LL:function(){return $e},L_:function(){return Qe},Lo:function(){return Fe},M6:function(){return nt},MU:function(){return De},NO:function(){return le},Ng:function(){return fe},OL:function(){return Bt},OZ:function(){return F},Oo:function(){return et},P4:function(){return Ke},P6:function(){return p},PR:function(){return E},Pk:function(){return Lt},Pv:function(){return D},R8:function(){return _},RV:function(){return I},Rz:function(){return Le},S:function(){return ft},SP:function(){return Mt},SU:function(){return A},Sb:function(){return Re},Sn:function(){return Kt},Sw:function(){return C},T8:function(){return oe},U6:function(){return Nt},Un:function(){return pt},Vq:function(){return mt},XE:function(){return N},XL:function(){return qe},XZ:function(){return m},Xy:function(){return Zt},YI:function(){return T},ZG:function(){return St},Zn:function(){return Vt},_2:function(){return Je},_Y:function(){return je},_b:function(){return Xe},_l:function(){return M},_t:function(){return Z},_w:function(){return U},b6:function(){return J},b7:function(){return z},br:function(){return Ft},c6:function(){return re},cv:function(){return ue},dC:function(){return tt},dR:function(){return v},dt:function(){return L},et:function(){return K},fE:function(){return se},fe:function(){return ie},g8:function(){return V},g_:function(){return Ee},gk:function(){return Ie},gp:function(){return ee},hE:function(){return ke},j5:function(){return B},jU:function(){return Me},jb:function(){return wt},kJ:function(){return me},kV:function(){return Pt},ke:function(){return Ye},kw:function(){return Yt},lR:function(){return y},lW:function(){return be},lX:function(){return X},lo:function(){return ge},mH:function(){return Ge},mV:function(){return st},ny:function(){return Ne},oQ:function(){return ye},oS:function(){return ht},op:function(){return _e},ov:function(){return Ot},p:function(){return R},pW:function(){return ne},pn:function(){return Te},pt:function(){return Ae},qe:function(){return Y},rg:function(){return it},rh:function(){return k},s$:function(){return ot},sE:function(){return S},sK:function(){return We},tZ:function(){return ve},u2:function(){return xt},uo:function(){return te},ur:function(){return w},ux:function(){return vt},vG:function(){return dt},w:function(){return He},xL:function(){return b},yJ:function(){return Pe},yb:function(){return Se},yn:function(){return G},yp:function(){return Ue},yt:function(){return rt},zJ:function(){return x},zK:function(){return pe},zR:function(){return $}});var i=n(15671),r=n(43144),o=n(38774),a=n(89938),s=n(11732),u=n(56345),l=n(27930),c=n(27997),d={ColorContribution:"base.contributions.colors"},h=function(){function e(){(0,i.Z)(this,e),this._onDidChangeSchema=new s.Q5,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}return(0,r.Z)(e,[{key:"registerColor",value:function(e,t,n){var i=arguments.length>4?arguments[4]:void 0,r={id:e,description:n,defaults:t,needsTransparency:arguments.length>3&&void 0!==arguments[3]&&arguments[3],deprecationMessage:i};this.colorsById[e]=r;var o={type:"string",description:n,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return i&&(o.deprecationMessage=i),this.colorSchema.properties[e]=o,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(n),this._onDidChangeSchema.fire(),e}},{key:"resolveDefaultColor",value:function(e,t){var n=this.colorsById[e];if(n&&n.defaults)return Kt(n.defaults[t.type],t)}},{key:"getColorSchema",value:function(){return this.colorSchema}},{key:"toString",value:function(){var e=this;return Object.keys(this.colorsById).sort((function(e,t){var n=-1===e.indexOf(".")?0:1,i=-1===t.indexOf(".")?0:1;return n!==i?n-i:e.localeCompare(t)})).map((function(t){return"- `".concat(t,"`: ").concat(e.colorsById[t].description)})).join("\n")}}]),e}(),f=new h;function p(e,t,n,i,r){return f.registerColor(e,t,n,i,r)}o.B.add(d.ColorContribution,f);var v=p("foreground",{dark:"#CCCCCC",light:"#616161",hc:"#FFFFFF"},u.N("foreground","Overall foreground color. This color is only used if not overridden by a component.")),g=p("errorForeground",{dark:"#F48771",light:"#A1260D",hc:"#F48771"},u.N("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component.")),m=p("icon.foreground",{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},u.N("iconForeground","The default color for icons in the workbench.")),_=p("focusBorder",{dark:"#007FD4",light:"#0090F1",hc:"#F38518"},u.N("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),y=p("contrastBorder",{light:null,dark:null,hc:"#6FC3DF"},u.N("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),b=p("contrastActiveBorder",{light:null,dark:null,hc:_},u.N("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast.")),w=p("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hc:"#3794FF"},u.N("textLinkForeground","Foreground color for links in text.")),C=p("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hc:a.Il.black},u.N("textCodeBlockBackground","Background color for code blocks in text.")),k=p("widget.shadow",{dark:Vt(a.Il.black,.36),light:Vt(a.Il.black,.16),hc:null},u.N("widgetShadow","Shadow color of widgets such as find/replace inside the editor.")),S=p("input.background",{dark:"#3C3C3C",light:a.Il.white,hc:a.Il.black},u.N("inputBoxBackground","Input box background.")),x=p("input.foreground",{dark:v,light:v,hc:v},u.N("inputBoxForeground","Input box foreground.")),L=p("input.border",{dark:null,light:null,hc:y},u.N("inputBoxBorder","Input box border.")),E=p("inputOption.activeBorder",{dark:"#007ACC00",light:"#007ACC00",hc:y},u.N("inputBoxActiveOptionBorder","Border color of activated options in input fields.")),N=p("inputOption.activeBackground",{dark:Vt(_,.4),light:Vt(_,.2),hc:a.Il.transparent},u.N("inputOption.activeBackground","Background color of activated options in input fields.")),D=p("inputOption.activeForeground",{dark:a.Il.white,light:a.Il.black,hc:null},u.N("inputOption.activeForeground","Foreground color of activated options in input fields.")),M=p("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hc:a.Il.black},u.N("inputValidationInfoBackground","Input validation background color for information severity.")),T=p("inputValidation.infoForeground",{dark:null,light:null,hc:null},u.N("inputValidationInfoForeground","Input validation foreground color for information severity.")),O=p("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hc:y},u.N("inputValidationInfoBorder","Input validation border color for information severity.")),I=p("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hc:a.Il.black},u.N("inputValidationWarningBackground","Input validation background color for warning severity.")),A=p("inputValidation.warningForeground",{dark:null,light:null,hc:null},u.N("inputValidationWarningForeground","Input validation foreground color for warning severity.")),P=p("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hc:y},u.N("inputValidationWarningBorder","Input validation border color for warning severity.")),R=p("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hc:a.Il.black},u.N("inputValidationErrorBackground","Input validation background color for error severity.")),Z=p("inputValidation.errorForeground",{dark:null,light:null,hc:null},u.N("inputValidationErrorForeground","Input validation foreground color for error severity.")),F=p("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hc:y},u.N("inputValidationErrorBorder","Input validation border color for error severity.")),j=p("dropdown.background",{dark:"#3C3C3C",light:a.Il.white,hc:a.Il.black},u.N("dropdownBackground","Dropdown background.")),H=p("dropdown.foreground",{dark:"#F0F0F0",light:null,hc:a.Il.white},u.N("dropdownForeground","Dropdown foreground.")),B=p("button.foreground",{dark:a.Il.white,light:a.Il.white,hc:a.Il.white},u.N("buttonForeground","Button foreground color.")),z=p("button.background",{dark:"#0E639C",light:"#007ACC",hc:null},u.N("buttonBackground","Button background color.")),W=p("button.hoverBackground",{dark:Wt(z,.2),light:zt(z,.2),hc:null},u.N("buttonHoverBackground","Button background color when hovering.")),V=p("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hc:a.Il.black},u.N("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count.")),Y=p("badge.foreground",{dark:a.Il.white,light:"#333",hc:a.Il.white},u.N("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),U=p("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hc:null},u.N("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),K=p("scrollbarSlider.background",{dark:a.Il.fromHex("#797979").transparent(.4),light:a.Il.fromHex("#646464").transparent(.4),hc:Vt(y,.6)},u.N("scrollbarSliderBackground","Scrollbar slider background color.")),q=p("scrollbarSlider.hoverBackground",{dark:a.Il.fromHex("#646464").transparent(.7),light:a.Il.fromHex("#646464").transparent(.7),hc:Vt(y,.8)},u.N("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),G=p("scrollbarSlider.activeBackground",{dark:a.Il.fromHex("#BFBFBF").transparent(.4),light:a.Il.fromHex("#000000").transparent(.6),hc:y},u.N("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),$=p("progressBar.background",{dark:a.Il.fromHex("#0E70C0"),light:a.Il.fromHex("#0E70C0"),hc:y},u.N("progressBarBackground","Background color of the progress bar that can show for long running operations.")),Q=p("editorError.background",{dark:null,light:null,hc:null},u.N("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),X=p("editorError.foreground",{dark:"#F48771",light:"#E51400",hc:null},u.N("editorError.foreground","Foreground color of error squigglies in the editor.")),J=p("editorError.border",{dark:null,light:null,hc:a.Il.fromHex("#E47777").transparent(.8)},u.N("errorBorder","Border color of error boxes in the editor.")),ee=p("editorWarning.background",{dark:null,light:null,hc:null},u.N("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),te=p("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hc:null},u.N("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),ne=p("editorWarning.border",{dark:null,light:null,hc:a.Il.fromHex("#FFCC00").transparent(.8)},u.N("warningBorder","Border color of warning boxes in the editor.")),ie=p("editorInfo.background",{dark:null,light:null,hc:null},u.N("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),re=p("editorInfo.foreground",{dark:"#75BEFF",light:"#75BEFF",hc:null},u.N("editorInfo.foreground","Foreground color of info squigglies in the editor.")),oe=p("editorInfo.border",{dark:null,light:null,hc:a.Il.fromHex("#75BEFF").transparent(.8)},u.N("infoBorder","Border color of info boxes in the editor.")),ae=p("editorHint.foreground",{dark:a.Il.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hc:null},u.N("editorHint.foreground","Foreground color of hint squigglies in the editor.")),se=p("editorHint.border",{dark:null,light:null,hc:a.Il.fromHex("#eeeeee").transparent(.8)},u.N("hintBorder","Border color of hint boxes in the editor.")),ue=p("editor.background",{light:"#fffffe",dark:"#1E1E1E",hc:a.Il.black},u.N("editorBackground","Editor background color.")),le=p("editor.foreground",{light:"#333333",dark:"#BBBBBB",hc:a.Il.white},u.N("editorForeground","Editor default foreground color.")),ce=p("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hc:"#0C141F"},u.N("editorWidgetBackground","Background color of editor widgets, such as find/replace.")),de=p("editorWidget.foreground",{dark:v,light:v,hc:v},u.N("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),he=p("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hc:y},u.N("editorWidgetBorder","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.")),fe=p("editorWidget.resizeBorder",{light:null,dark:null,hc:null},u.N("editorWidgetResizeBorder","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.")),pe=p("quickInput.background",{dark:ce,light:ce,hc:ce},u.N("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),ve=p("quickInput.foreground",{dark:de,light:de,hc:de},u.N("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),ge=p("quickInputTitle.background",{dark:new a.Il(new a.VS(255,255,255,.105)),light:new a.Il(new a.VS(0,0,0,.06)),hc:"#000000"},u.N("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),me=p("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hc:a.Il.white},u.N("pickerGroupForeground","Quick picker color for grouping labels.")),_e=p("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hc:a.Il.white},u.N("pickerGroupBorder","Quick picker color for grouping borders.")),ye=p("keybindingLabel.background",{dark:new a.Il(new a.VS(128,128,128,.17)),light:new a.Il(new a.VS(221,221,221,.4)),hc:a.Il.transparent},u.N("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),be=p("keybindingLabel.foreground",{dark:a.Il.fromHex("#CCCCCC"),light:a.Il.fromHex("#555555"),hc:a.Il.white},u.N("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),we=p("keybindingLabel.border",{dark:new a.Il(new a.VS(51,51,51,.6)),light:new a.Il(new a.VS(204,204,204,.4)),hc:new a.Il(new a.VS(111,195,223))},u.N("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),Ce=p("keybindingLabel.bottomBorder",{dark:new a.Il(new a.VS(68,68,68,.6)),light:new a.Il(new a.VS(187,187,187,.4)),hc:new a.Il(new a.VS(111,195,223))},u.N("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),ke=p("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},u.N("editorSelectionBackground","Color of the editor selection.")),Se=p("editor.selectionForeground",{light:null,dark:null,hc:"#000000"},u.N("editorSelectionForeground","Color of the selected text for high contrast.")),xe=p("editor.inactiveSelectionBackground",{light:Vt(ke,.5),dark:Vt(ke,.5),hc:Vt(ke,.5)},u.N("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),Le=p("editor.selectionHighlightBackground",{light:Ut(ke,ue,.3,.6),dark:Ut(ke,ue,.3,.6),hc:null},u.N("editorSelectionHighlight","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0),Ee=p("editor.selectionHighlightBorder",{light:null,dark:null,hc:b},u.N("editorSelectionHighlightBorder","Border color for regions with the same content as the selection.")),Ne=p("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hc:null},u.N("editorFindMatch","Color of the current search match.")),De=p("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hc:null},u.N("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),Me=p("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hc:null},u.N("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),Te=p("editor.findMatchBorder",{light:null,dark:null,hc:b},u.N("editorFindMatchBorder","Border color of the current search match.")),Oe=p("editor.findMatchHighlightBorder",{light:null,dark:null,hc:b},u.N("findMatchHighlightBorder","Border color of the other search matches.")),Ie=p("editor.findRangeHighlightBorder",{dark:null,light:null,hc:Vt(b,.4)},u.N("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),Ae=p("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hc:"#ADD6FF26"},u.N("hoverHighlight","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0),Pe=p("editorHoverWidget.background",{light:ce,dark:ce,hc:ce},u.N("hoverBackground","Background color of the editor hover.")),Re=p("editorHoverWidget.foreground",{light:de,dark:de,hc:de},u.N("hoverForeground","Foreground color of the editor hover.")),Ze=p("editorHoverWidget.border",{light:he,dark:he,hc:he},u.N("hoverBorder","Border color of the editor hover.")),Fe=p("editorHoverWidget.statusBarBackground",{dark:Wt(Pe,.2),light:zt(Pe,.05),hc:ce},u.N("statusBarBackground","Background color of the editor hover status bar.")),je=p("editorLink.activeForeground",{dark:"#4E94CE",light:a.Il.blue,hc:a.Il.cyan},u.N("activeLinkForeground","Color of active links.")),He=p("editorInlineHint.foreground",{dark:ce,light:de,hc:ce},u.N("editorInlineHintForeground","Foreground color of inline hints")),Be=p("editorInlineHint.background",{dark:de,light:ce,hc:de},u.N("editorInlineHintBackground","Background color of inline hints")),ze=p("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hc:"#FFCC00"},u.N("editorLightBulbForeground","The color used for the lightbulb actions icon.")),We=p("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},u.N("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon.")),Ve=new a.Il(new a.VS(155,185,85,.2)),Ye=new a.Il(new a.VS(255,0,0,.2)),Ue=p("diffEditor.insertedTextBackground",{dark:Ve,light:Ve,hc:null},u.N("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),Ke=p("diffEditor.removedTextBackground",{dark:Ye,light:Ye,hc:null},u.N("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),qe=p("diffEditor.insertedTextBorder",{dark:null,light:null,hc:"#33ff2eff"},u.N("diffEditorInsertedOutline","Outline color for the text that got inserted.")),Ge=p("diffEditor.removedTextBorder",{dark:null,light:null,hc:"#FF008F"},u.N("diffEditorRemovedOutline","Outline color for text that got removed.")),$e=p("diffEditor.border",{dark:null,light:null,hc:y},u.N("diffEditorBorder","Border color between the two text editors.")),Qe=p("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hc:null},u.N("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),Xe=p("list.focusBackground",{dark:null,light:null,hc:null},u.N("listFocusBackground","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Je=p("list.focusForeground",{dark:null,light:null,hc:null},u.N("listFocusForeground","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),et=p("list.focusOutline",{dark:_,light:_,hc:b},u.N("listFocusOutline","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),tt=p("list.activeSelectionBackground",{dark:"#094771",light:"#0060C0",hc:null},u.N("listActiveSelectionBackground","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),nt=p("list.activeSelectionForeground",{dark:a.Il.white,light:a.Il.white,hc:null},u.N("listActiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),it=p("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hc:null},u.N("listInactiveSelectionBackground","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),rt=p("list.inactiveSelectionForeground",{dark:null,light:null,hc:null},u.N("listInactiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),ot=p("list.inactiveFocusBackground",{dark:null,light:null,hc:null},u.N("listInactiveFocusBackground","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),at=p("list.inactiveFocusOutline",{dark:null,light:null,hc:null},u.N("listInactiveFocusOutline","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),st=p("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hc:null},u.N("listHoverBackground","List/Tree background when hovering over items using the mouse.")),ut=p("list.hoverForeground",{dark:null,light:null,hc:null},u.N("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),lt=p("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hc:null},u.N("listDropBackground","List/Tree drag and drop background when moving items around using the mouse.")),ct=p("list.highlightForeground",{dark:"#0097fb",light:"#0066BF",hc:_},u.N("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree.")),dt=p("listFilterWidget.background",{light:"#efc1ad",dark:"#653723",hc:a.Il.black},u.N("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),ht=p("listFilterWidget.outline",{dark:a.Il.transparent,light:a.Il.transparent,hc:"#f38518"},u.N("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),ft=p("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hc:y},u.N("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches.")),pt=p("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hc:"#a9a9a9"},u.N("treeIndentGuidesStroke","Tree stroke color for the indentation guides.")),vt=p("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hc:null},u.N("treeIndentGuidesStroke","Tree stroke color for the indentation guides.")),gt=p("quickInput.list.focusBackground",{dark:null,light:null,hc:null},"",void 0,u.N("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead")),mt=p("quickInputList.focusBackground",{dark:Yt(gt,Xe,"#062F4A"),light:Yt(gt,Xe,"#D6EBFF"),hc:null},u.N("quickInput.listFocusBackground","Quick picker background color for the focused item.")),_t=p("menu.border",{dark:null,light:null,hc:y},u.N("menuBorder","Border color of menus.")),yt=p("menu.foreground",{dark:H,light:v,hc:H},u.N("menuForeground","Foreground color of menu items.")),bt=p("menu.background",{dark:j,light:j,hc:j},u.N("menuBackground","Background color of menu items.")),wt=p("menu.selectionForeground",{dark:nt,light:nt,hc:nt},u.N("menuSelectionForeground","Foreground color of the selected menu item in menus.")),Ct=p("menu.selectionBackground",{dark:tt,light:tt,hc:tt},u.N("menuSelectionBackground","Background color of the selected menu item in menus.")),kt=p("menu.selectionBorder",{dark:null,light:null,hc:b},u.N("menuSelectionBorder","Border color of the selected menu item in menus.")),St=p("menu.separatorBackground",{dark:"#BBBBBB",light:"#888888",hc:y},u.N("menuSeparatorBackground","Color of a separator menu item in menus.")),xt=p("editor.snippetTabstopHighlightBackground",{dark:new a.Il(new a.VS(124,124,124,.3)),light:new a.Il(new a.VS(10,50,100,.2)),hc:new a.Il(new a.VS(124,124,124,.3))},u.N("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop.")),Lt=p("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hc:null},u.N("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop.")),Et=p("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hc:null},u.N("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet.")),Nt=p("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new a.Il(new a.VS(10,50,100,.5)),hc:"#525252"},u.N("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet.")),Dt=p("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hc:"#AB5A00"},u.N("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0),Mt=p("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hc:"#A0A0A0CC"},u.N("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Tt=p("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hc:"#AB5A00"},u.N("minimapFindMatchHighlight","Minimap marker color for find matches."),!0),Ot=p("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hc:"#ffffff"},u.N("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),It=p("minimap.errorHighlight",{dark:new a.Il(new a.VS(255,18,18,.7)),light:new a.Il(new a.VS(255,18,18,.7)),hc:new a.Il(new a.VS(255,50,50,1))},u.N("minimapError","Minimap marker color for errors.")),At=p("minimap.warningHighlight",{dark:te,light:te,hc:ne},u.N("overviewRuleWarning","Minimap marker color for warnings.")),Pt=p("minimap.background",{dark:null,light:null,hc:null},u.N("minimapBackground","Minimap background color.")),Rt=p("minimapSlider.background",{light:Vt(K,.5),dark:Vt(K,.5),hc:Vt(K,.5)},u.N("minimapSliderBackground","Minimap slider background color.")),Zt=p("minimapSlider.hoverBackground",{light:Vt(q,.5),dark:Vt(q,.5),hc:Vt(q,.5)},u.N("minimapSliderHoverBackground","Minimap slider background color when hovering.")),Ft=p("minimapSlider.activeBackground",{light:Vt(G,.5),dark:Vt(G,.5),hc:Vt(G,.5)},u.N("minimapSliderActiveBackground","Minimap slider background color when clicked on.")),jt=p("problemsErrorIcon.foreground",{dark:X,light:X,hc:X},u.N("problemsErrorIconForeground","The color used for the problems error icon.")),Ht=p("problemsWarningIcon.foreground",{dark:te,light:te,hc:te},u.N("problemsWarningIconForeground","The color used for the problems warning icon.")),Bt=p("problemsInfoIcon.foreground",{dark:re,light:re,hc:re},u.N("problemsInfoIconForeground","The color used for the problems info icon."));function zt(e,t){return function(n){var i=Kt(e,n);if(i)return i.darken(t)}}function Wt(e,t){return function(n){var i=Kt(e,n);if(i)return i.lighten(t)}}function Vt(e,t){return function(n){var i=Kt(e,n);if(i)return i.transparent(t)}}function Yt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){for(var n=0,i=t;n<i.length;n++){var r=Kt(i[n],e);if(r)return r}}}function Ut(e,t,n,i){return function(r){var o=Kt(e,r);if(o){var s=Kt(t,r);return s?o.isDarkerThan(s)?a.Il.getLighterColor(o,s,n).transparent(i):a.Il.getDarkerColor(o,s,n).transparent(i):o.transparent(n*i)}}}function Kt(e,t){if(null!==e)return"string"===typeof e?"#"===e[0]?a.Il.fromHex(e):t.getColor(e):e instanceof a.Il?e:"function"===typeof e?e(t):void 0}var qt="vscode://schemas/workbench-colors",Gt=o.B.as(l.I.JSONContribution);Gt.registerSchema(qt,f.getColorSchema());var $t=new c.pY((function(){return Gt.notifySchemaChanged(qt)}),200);f.onDidChangeSchema((function(){$t.isScheduled()||$t.schedule()}))},62239:function(e,t,n){"use strict";n.d(t,{Ks:function(){return v},q5:function(){return p},s_:function(){return y}});var i=n(37762),r=n(15671),o=n(43144),a=n(38774),s=n(70182),u=n(11732),l=n(56345),c=n(27930),d=n(27997),h=n(4354),f=new(function(){function e(){(0,r.Z)(this,e),this._onDidChange=new u.Q5,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:(0,l.N)("iconDefintion.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:(0,l.N)("iconDefintion.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:"^".concat(h.dT.iconNameExpression,"$"),enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}return(0,o.Z)(e,[{key:"registerIcon",value:function(e,t,n,i){var r=this.iconsById[e];if(r){if(n&&!r.description){r.description=n,this.iconSchema.properties[e].markdownDescription="".concat(n," $(").concat(e,")");var o=this.iconReferenceSchema.enum.indexOf(e);-1!==o&&(this.iconReferenceSchema.enumDescriptions[o]=n),this._onDidChange.fire()}return r}var a={id:e,description:n,defaults:t,deprecationMessage:i};this.iconsById[e]=a;var s={$ref:"#/definitions/icons"};return i&&(s.deprecationMessage=i),n&&(s.markdownDescription="".concat(n,": $(").concat(e,")")),this.iconSchema.properties[e]=s,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(n||""),this._onDidChange.fire(),{id:e}}},{key:"getIcons",value:function(){var e=this;return Object.keys(this.iconsById).map((function(t){return e.iconsById[t]}))}},{key:"getIcon",value:function(e){return this.iconsById[e]}},{key:"getIconSchema",value:function(){return this.iconSchema}},{key:"getIconFont",value:function(e){return this.iconFontsById[e]}},{key:"toString",value:function(){var e=this,t=function(e,t){return e.id.localeCompare(t.id)},n=function(t){for(;s.kS.isThemeIcon(t.defaults);)t=e.iconsById[t.defaults.id];return"codicon codicon-".concat(t?t.id:"")},r=[];r.push("| preview | identifier | default codicon ID | description"),r.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");var o,a=Object.keys(this.iconsById).map((function(t){return e.iconsById[t]})),u=(0,i.Z)(a.filter((function(e){return!!e.description})).sort(t));try{for(u.s();!(o=u.n()).done;){var l=o.value;r.push('|<i class="'.concat(n(l),'"></i>|').concat(l.id,"|").concat(s.kS.isThemeIcon(l.defaults)?l.defaults.id:l.id,"|").concat(l.description||"","|"))}}catch(f){u.e(f)}finally{u.f()}r.push("| preview | identifier "),r.push("| ----------- | --------------------------------- |");var c,d=(0,i.Z)(a.filter((function(e){return!s.kS.isThemeIcon(e.defaults)})).sort(t));try{for(d.s();!(c=d.n()).done;){var h=c.value;r.push('|<i class="'.concat(n(h),'"></i>|').concat(h.id,"|"))}}catch(f){d.e(f)}finally{d.f()}return r.join("\n")}}]),e}());function p(e,t,n,i){return f.registerIcon(e,t,n,i)}function v(){return f}a.B.add("base.contributions.icons",f),function(){var e,t=(0,i.Z)(h.fK.all);try{for(t.s();!(e=t.n()).done;){var n=e.value;f.registerIcon(n.id,n.definition,n.description)}}catch(r){t.e(r)}finally{t.f()}h.fK.onDidRegister((function(e){return f.registerIcon(e.id,e.definition,e.description)}))}();var g="vscode://schemas/icons",m=a.B.as(c.I.JSONContribution);m.registerSchema(g,f.getIconSchema());var _=new d.pY((function(){return m.notifySchemaChanged(g)}),200);f.onDidChange((function(){_.isScheduled()||_.schedule()}));var y=p("widget-close",h.lA.close,(0,l.N)("widgetClose","Icon for the close action in widgets."))},35215:function(e,t,n){"use strict";n.d(t,{Jl:function(){return s},O2:function(){return u},WZ:function(){return a},o:function(){return r},tj:function(){return c}});var i=n(92992);function r(e,t){var n=Object.create(null);for(var r in t){var o=t[r];o&&(n[r]=(0,i.Sn)(o,e))}return n}function o(e,t,n){function i(i){var o=r(e.getColorTheme(),t);"function"===typeof n?n(o):n.style(o)}return i(e.getColorTheme()),e.onDidColorThemeChange(i)}function a(e,t,n){return o(t,{badgeBackground:(null===n||void 0===n?void 0:n.badgeBackground)||i.g8,badgeForeground:(null===n||void 0===n?void 0:n.badgeForeground)||i.qe,badgeBorder:i.lR},e)}function s(e,t,n){return o(t,Object.assign(Object.assign({},u),n||{}),e)}var u={listFocusBackground:i._b,listFocusForeground:i._2,listFocusOutline:i.Oo,listActiveSelectionBackground:i.dC,listActiveSelectionForeground:i.M6,listFocusAndSelectionBackground:i.dC,listFocusAndSelectionForeground:i.M6,listInactiveSelectionBackground:i.rg,listInactiveSelectionForeground:i.yt,listInactiveFocusBackground:i.s$,listInactiveFocusOutline:i.F3,listHoverBackground:i.mV,listHoverForeground:i.$d,listDropBackground:i.AS,listSelectionOutline:i.xL,listHoverOutline:i.xL,listFilterWidgetBackground:i.vG,listFilterWidgetOutline:i.oS,listFilterWidgetNoMatchesOutline:i.S,listMatchesShadow:i.rh,treeIndentGuidesStroke:i.Un,tableColumnsBorder:i.ux},l={shadowColor:i.rh,borderColor:i.Cd,foregroundColor:i.DE,backgroundColor:i.Hz,selectionForegroundColor:i.jb,selectionBackgroundColor:i.$D,selectionBorderColor:i.E3,separatorColor:i.ZG};function c(e,t,n){return o(t,Object.assign(Object.assign({},l),n),e)}},7644:function(e,t,n){"use strict";var i;n.d(t,{e:function(){return i}}),function(e){e.DARK="dark",e.LIGHT="light",e.HIGH_CONTRAST="hc"}(i||(i={}))},70182:function(e,t,n){"use strict";n.d(t,{EN:function(){return m},IP:function(){return y},Ic:function(){return w},XE:function(){return g},bB:function(){return C},kS:function(){return r},m6:function(){return _}});var i,r,o=n(60136),a=n(29388),s=n(15671),u=n(43144),l=n(29439),c=n(84596),d=n(81626),h=n(38774),f=n(11732),p=n(7644),v=n(4354),g=(0,c.yh)("themeService");function m(e){return{id:e}}function _(e){switch(e){case p.e.DARK:return"vs-dark";case p.e.HIGH_CONTRAST:return"hc-black";default:return"vs"}}!function(e){e.isThemeColor=function(e){return e&&"object"===typeof e&&"string"===typeof e.id}}(i||(i={})),function(e){e.isThemeIcon=function(e){return e&&"object"===typeof e&&"string"===typeof e.id&&("undefined"===typeof e.color||i.isThemeColor(e.color))};var t=new RegExp("^\\$\\((".concat(v.dT.iconNameExpression,"(?:").concat(v.dT.iconModifierExpression,")?)\\)$"));e.fromString=function(e){var n=t.exec(e);if(n)return{id:(0,l.Z)(n,2)[1]}},e.modify=function(e,t){var n=e.id,i=n.lastIndexOf("~");return-1!==i&&(n=n.substring(0,i)),t&&(n="".concat(n,"~").concat(t)),{id:n}},e.isEqual=function(e,t){var n,i;return e.id===t.id&&(null===(n=e.color)||void 0===n?void 0:n.id)===(null===(i=t.color)||void 0===i?void 0:i.id)},e.asClassNameArray=v.dT.asClassNameArray,e.asClassName=v.dT.asClassName,e.asCSSSelector=v.dT.asCSSSelector}(r||(r={}));var y={ThemingContribution:"base.contributions.theming"},b=new(function(){function e(){(0,s.Z)(this,e),this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new f.Q5}return(0,u.Z)(e,[{key:"onColorThemeChange",value:function(e){var t=this;return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),(0,d.OF)((function(){var n=t.themingParticipants.indexOf(e);t.themingParticipants.splice(n,1)}))}},{key:"getThemingParticipants",value:function(){return this.themingParticipants}}]),e}());function w(e){return b.onColorThemeChange(e)}h.B.add(y.ThemingContribution,b);var C=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this)).themeService=e,i.theme=e.getColorTheme(),i._register(i.themeService.onDidColorThemeChange((function(e){return i.onThemeChange(e)}))),i}return(0,u.Z)(n,[{key:"onThemeChange",value:function(e){this.theme=e,this.updateStyles()}},{key:"updateStyles",value:function(){}}]),n}(d.JT)},45822:function(e,t,n){"use strict";n.d(t,{Xt:function(){return s},YO:function(){return a},gJ:function(){return u},tJ:function(){return o}});var i=n(43144),r=n(15671),o=(0,n(84596).yh)("undoRedoService"),a=(0,i.Z)((function e(t,n){(0,r.Z)(this,e),this.resource=t,this.elements=n})),s=function(){function e(){(0,r.Z)(this,e),this.id=e._ID++,this.order=1}return(0,i.Z)(e,[{key:"nextOrder",value:function(){return 0===this.id?0:this.order++}}]),e}();s._ID=0,s.None=new s;var u=function(){function e(){(0,r.Z)(this,e),this.id=e._ID++,this.order=1}return(0,i.Z)(e,[{key:"nextOrder",value:function(){return 0===this.id?0:this.order++}}]),e}();u._ID=0,u.None=new u},37753:function(e,t,n){"use strict";n.d(t,{ec:function(){return a},md:function(){return s}});var i=n(15671),r=n(43144),o=n(84596),a=(n(15022),(0,o.yh)("contextService")),s=function(){function e(t,n){(0,i.Z)(this,e),this.raw=n,this.uri=t.uri,this.index=t.index,this.name=t.name}return(0,r.Z)(e,[{key:"toJSON",value:function(){return{uri:this.uri,name:this.name,index:this.index}}}]),e}()},10135:function(e,t,n){var i,r,o;r=[n(25017)],void 0===(o="function"===typeof(i=function(e){e.register("locale","bg",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"\u0445\u0438\u043b",million:"\u043c\u043b\u043d",billion:"\u043c\u043b\u0440\u0434",trillion:"\u0442\u0440\u043b\u043d"},ordinal:function(e){return""},currency:{symbol:"\u043b\u0432"}}),e.register("locale","chs",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"\u5343",million:"\u767e\u4e07",billion:"\u5341\u4ebf",trillion:"\u5146"},ordinal:function(e){return"."},currency:{symbol:"\xa5"}}),e.register("locale","cs",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"tis.",million:"mil.",billion:"b",trillion:"t"},ordinal:function(){return"."},currency:{symbol:"K\u010d"}}),e.register("locale","da-dk",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mio",billion:"mia",trillion:"b"},ordinal:function(e){return"."},currency:{symbol:"DKK"}}),e.register("locale","de-ch",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return"."},currency:{symbol:"CHF"}}),e.register("locale","de",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","en-au",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),e.register("locale","en-gb",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"\xa3"}}),e.register("locale","en-za",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"R"}}),e.register("locale","es-es",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mm",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"\u20ac"}}),e.register("locale","es",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mm",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"$"}}),e.register("locale","et",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:" tuh",million:" mln",billion:" mld",trillion:" trl"},ordinal:function(e){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","fi",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"M",billion:"G",trillion:"T"},ordinal:function(e){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","fr-ca",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"M",billion:"G",trillion:"T"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"$"}}),e.register("locale","fr-ch",{delimiters:{thousands:"'",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"CHF"}}),e.register("locale","fr",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"\u20ac"}}),e.register("locale","hu",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"E",million:"M",billion:"Mrd",trillion:"T"},ordinal:function(e){return"."},currency:{symbol:" Ft"}}),e.register("locale","it",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"mila",million:"mil",billion:"b",trillion:"t"},ordinal:function(e){return"\xba"},currency:{symbol:"\u20ac"}}),e.register("locale","ja",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"\u5343",million:"\u767e\u4e07",billion:"\u5341\u5104",trillion:"\u5146"},ordinal:function(e){return"."},currency:{symbol:"\xa5"}}),e.register("locale","lv",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:" t\u016bkst.",million:" milj.",billion:" mljrd.",trillion:" trilj."},ordinal:function(e){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","nl-be",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:" mln",billion:" mld",trillion:" bln"},ordinal:function(e){var t=e%100;return 0!==e&&t<=1||8===t||t>=20?"ste":"de"},currency:{symbol:"\u20ac "}}),e.register("locale","nl-nl",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mln",billion:"mrd",trillion:"bln"},ordinal:function(e){var t=e%100;return 0!==e&&t<=1||8===t||t>=20?"ste":"de"},currency:{symbol:"\u20ac "}}),e.register("locale","no",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return"."},currency:{symbol:"kr"}}),e.register("locale","pl",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"tys.",million:"mln",billion:"mld",trillion:"bln"},ordinal:function(e){return"."},currency:{symbol:"PLN"}}),e.register("locale","pt-br",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"mil",million:"milh\xf5es",billion:"b",trillion:"t"},ordinal:function(e){return"\xba"},currency:{symbol:"R$"}}),e.register("locale","pt-pt",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return"\xba"},currency:{symbol:"\u20ac"}}),e.register("locale","ru-ua",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"\u0442\u044b\u0441.",million:"\u043c\u043b\u043d",billion:"b",trillion:"t"},ordinal:function(){return"."},currency:{symbol:"\u20b4"}}),e.register("locale","ru",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"\u0442\u044b\u0441.",million:"\u043c\u043b\u043d.",billion:"\u043c\u043b\u0440\u0434.",trillion:"\u0442\u0440\u043b\u043d."},ordinal:function(){return"."},currency:{symbol:"\u0440\u0443\u0431."}}),e.register("locale","sk",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"tis.",million:"mil.",billion:"b",trillion:"t"},ordinal:function(){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","sl",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mio",billion:"mrd",trillion:"trilijon"},ordinal:function(){return"."},currency:{symbol:"\u20ac"}}),e.register("locale","th",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"\u0e1e\u0e31\u0e19",million:"\u0e25\u0e49\u0e32\u0e19",billion:"\u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19",trillion:"\u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},ordinal:function(e){return"."},currency:{symbol:"\u0e3f"}}),function(){var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};e.register("locale","tr",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"bin",million:"milyon",billion:"milyar",trillion:"trilyon"},ordinal:function(e){if(0===e)return"'\u0131nc\u0131";var n=e%10,i=e%100-n,r=e>=100?100:null;return t[n]||t[i]||t[r]},currency:{symbol:"\u20ba"}})}(),e.register("locale","uk-ua",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"\u0442\u0438\u0441.",million:"\u043c\u043b\u043d",billion:"\u043c\u043b\u0440\u0434",trillion:"\u0431\u043b\u043d"},ordinal:function(){return""},currency:{symbol:"\u20b4"}}),e.register("locale","vi",{delimiters:{thousands:".",decimal:","},abbreviations:{thousand:" ngh\xecn",million:" tri\u1ec7u",billion:" t\u1ef7",trillion:" ngh\xecn t\u1ef7"},ordinal:function(){return"."},currency:{symbol:"\u20ab"}})})?i.apply(t,r):i)||(e.exports=o)},25017:function(e,t,n){var i,r;i=function(){var e,t,n="2.0.6",i={},r={},o={currentLocale:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0",scalePercentBy100:!0},a={currentLocale:o.currentLocale,zeroFormat:o.zeroFormat,nullFormat:o.nullFormat,defaultFormat:o.defaultFormat,scalePercentBy100:o.scalePercentBy100};function s(e,t){this._input=e,this._value=t}return(e=function(n){var r,o,u,l;if(e.isNumeral(n))r=n.value();else if(0===n||"undefined"===typeof n)r=0;else if(null===n||t.isNaN(n))r=null;else if("string"===typeof n)if(a.zeroFormat&&n===a.zeroFormat)r=0;else if(a.nullFormat&&n===a.nullFormat||!n.replace(/[^0-9]+/g,"").length)r=null;else{for(o in i)if((l="function"===typeof i[o].regexps.unformat?i[o].regexps.unformat():i[o].regexps.unformat)&&n.match(l)){u=i[o].unformat;break}r=(u=u||e._.stringToNumber)(n)}else r=Number(n)||null;return new s(n,r)}).version=n,e.isNumeral=function(e){return e instanceof s},e._=t={numberToFormat:function(t,n,i){var o,a,s,u,l,c,d,h=r[e.options.currentLocale],f=!1,p=!1,v=0,g="",m=1e12,_=1e9,y=1e6,b=1e3,w="",C=!1;if(t=t||0,a=Math.abs(t),e._.includes(n,"(")?(f=!0,n=n.replace(/[\(|\)]/g,"")):(e._.includes(n,"+")||e._.includes(n,"-"))&&(l=e._.includes(n,"+")?n.indexOf("+"):t<0?n.indexOf("-"):-1,n=n.replace(/[\+|\-]/g,"")),e._.includes(n,"a")&&(o=!!(o=n.match(/a(k|m|b|t)?/))&&o[1],e._.includes(n," a")&&(g=" "),n=n.replace(new RegExp(g+"a[kmbt]?"),""),a>=m&&!o||"t"===o?(g+=h.abbreviations.trillion,t/=m):a<m&&a>=_&&!o||"b"===o?(g+=h.abbreviations.billion,t/=_):a<_&&a>=y&&!o||"m"===o?(g+=h.abbreviations.million,t/=y):(a<y&&a>=b&&!o||"k"===o)&&(g+=h.abbreviations.thousand,t/=b)),e._.includes(n,"[.]")&&(p=!0,n=n.replace("[.]",".")),s=t.toString().split(".")[0],u=n.split(".")[1],c=n.indexOf(","),v=(n.split(".")[0].split(",")[0].match(/0/g)||[]).length,u?(e._.includes(u,"[")?(u=(u=u.replace("]","")).split("["),w=e._.toFixed(t,u[0].length+u[1].length,i,u[1].length)):w=e._.toFixed(t,u.length,i),s=w.split(".")[0],w=e._.includes(w,".")?h.delimiters.decimal+w.split(".")[1]:"",p&&0===Number(w.slice(1))&&(w="")):s=e._.toFixed(t,0,i),g&&!o&&Number(s)>=1e3&&g!==h.abbreviations.trillion)switch(s=String(Number(s)/1e3),g){case h.abbreviations.thousand:g=h.abbreviations.million;break;case h.abbreviations.million:g=h.abbreviations.billion;break;case h.abbreviations.billion:g=h.abbreviations.trillion}if(e._.includes(s,"-")&&(s=s.slice(1),C=!0),s.length<v)for(var k=v-s.length;k>0;k--)s="0"+s;return c>-1&&(s=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+h.delimiters.thousands)),0===n.indexOf(".")&&(s=""),d=s+w+(g||""),f?d=(f&&C?"(":"")+d+(f&&C?")":""):l>=0?d=0===l?(C?"-":"+")+d:d+(C?"-":"+"):C&&(d="-"+d),d},stringToNumber:function(e){var t,n,i,o=r[a.currentLocale],s=e,u={thousand:3,million:6,billion:9,trillion:12};if(a.zeroFormat&&e===a.zeroFormat)n=0;else if(a.nullFormat&&e===a.nullFormat||!e.replace(/[^0-9]+/g,"").length)n=null;else{for(t in n=1,"."!==o.delimiters.decimal&&(e=e.replace(/\./g,"").replace(o.delimiters.decimal,".")),u)if(i=new RegExp("[^a-zA-Z]"+o.abbreviations[t]+"(?:\\)|(\\"+o.currency.symbol+")?(?:\\))?)?$"),s.match(i)){n*=Math.pow(10,u[t]);break}n*=(e.split("-").length+Math.min(e.split("(").length-1,e.split(")").length-1))%2?1:-1,e=e.replace(/[^0-9\.]+/g,""),n*=Number(e)}return n},isNaN:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){return"number"===typeof e&&isNaN(e)})),includes:function(e,t){return-1!==e.indexOf(t)},insert:function(e,t,n){return e.slice(0,n)+t+e.slice(n)},reduce:function(e,t){if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!==typeof t)throw new TypeError(t+" is not a function");var n,i=Object(e),r=i.length>>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o<r&&!(o in i);)o++;if(o>=r)throw new TypeError("Reduce of empty array with no initial value");n=i[o++]}for(;o<r;o++)o in i&&(n=t(n,i[o],o,i));return n},multiplier:function(e){var t=e.toString().split(".");return t.length<2?1:Math.pow(10,t[1].length)},correctionFactor:function(){return Array.prototype.slice.call(arguments).reduce((function(e,n){var i=t.multiplier(n);return e>i?e:i}),1)},toFixed:function(e,t,n,i){var r,o,a,s,u=e.toString().split("."),l=t-(i||0);return r=2===u.length?Math.min(Math.max(u[1].length,l),t):l,a=Math.pow(10,r),s=(n(e+"e+"+r)/a).toFixed(r),i>t-r&&(o=new RegExp("\\.?0{1,"+(i-(t-r))+"}$"),s=s.replace(o,"")),s}},e.options=a,e.formats=i,e.locales=r,e.locale=function(e){return e&&(a.currentLocale=e.toLowerCase()),a.currentLocale},e.localeData=function(e){if(!e)return r[a.currentLocale];if(e=e.toLowerCase(),!r[e])throw new Error("Unknown locale : "+e);return r[e]},e.reset=function(){for(var e in o)a[e]=o[e]},e.zeroFormat=function(e){a.zeroFormat="string"===typeof e?e:null},e.nullFormat=function(e){a.nullFormat="string"===typeof e?e:null},e.defaultFormat=function(e){a.defaultFormat="string"===typeof e?e:"0.0"},e.register=function(e,t,n){if(t=t.toLowerCase(),this[e+"s"][t])throw new TypeError(t+" "+e+" already registered.");return this[e+"s"][t]=n,n},e.validate=function(t,n){var i,r,o,a,s,u,l,c;if("string"!==typeof t&&(t+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",t)),(t=t.trim()).match(/^\d+$/))return!0;if(""===t)return!1;try{l=e.localeData(n)}catch(d){l=e.localeData(e.locale())}return o=l.currency.symbol,s=l.abbreviations,i=l.delimiters.decimal,r="."===l.delimiters.thousands?"\\.":l.delimiters.thousands,(null===(c=t.match(/^[^\d]+/))||(t=t.substr(1),c[0]===o))&&(null===(c=t.match(/[^\d]+$/))||(t=t.slice(0,-1),c[0]===s.thousand||c[0]===s.million||c[0]===s.billion||c[0]===s.trillion))&&(u=new RegExp(r+"{2}"),!t.match(/[^\d.,]/g)&&!((a=t.split(i)).length>2)&&(a.length<2?!!a[0].match(/^\d+.*\d$/)&&!a[0].match(u):1===a[0].length?!!a[0].match(/^\d+$/)&&!a[0].match(u)&&!!a[1].match(/^\d+$/):!!a[0].match(/^\d+.*\d$/)&&!a[0].match(u)&&!!a[1].match(/^\d+$/)))},e.fn=s.prototype={clone:function(){return e(this)},format:function(t,n){var r,o,s,u=this._value,l=t||a.defaultFormat;if(n=n||Math.round,0===u&&null!==a.zeroFormat)o=a.zeroFormat;else if(null===u&&null!==a.nullFormat)o=a.nullFormat;else{for(r in i)if(l.match(i[r].regexps.format)){s=i[r].format;break}o=(s=s||e._.numberToFormat)(u,l,n)}return o},value:function(){return this._value},input:function(){return this._input},set:function(e){return this._value=Number(e),this},add:function(e){var n=t.correctionFactor.call(null,this._value,e);function i(e,t,i,r){return e+Math.round(n*t)}return this._value=t.reduce([this._value,e],i,0)/n,this},subtract:function(e){var n=t.correctionFactor.call(null,this._value,e);function i(e,t,i,r){return e-Math.round(n*t)}return this._value=t.reduce([e],i,Math.round(this._value*n))/n,this},multiply:function(e){function n(e,n,i,r){var o=t.correctionFactor(e,n);return Math.round(e*o)*Math.round(n*o)/Math.round(o*o)}return this._value=t.reduce([this._value,e],n,1),this},divide:function(e){function n(e,n,i,r){var o=t.correctionFactor(e,n);return Math.round(e*o)/Math.round(n*o)}return this._value=t.reduce([this._value,e],n),this},difference:function(t){return Math.abs(e(this._value).subtract(t).value())}},e.register("locale","en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),e.register("format","bps",{regexps:{format:/(BPS)/,unformat:/(BPS)/},format:function(t,n,i){var r,o=e._.includes(n," BPS")?" ":"";return t*=1e4,n=n.replace(/\s?BPS/,""),r=e._.numberToFormat(t,n,i),e._.includes(r,")")?((r=r.split("")).splice(-1,0,o+"BPS"),r=r.join("")):r=r+o+"BPS",r},unformat:function(t){return+(1e-4*e._.stringToNumber(t)).toFixed(15)}}),function(){var t={base:1e3,suffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]},n={base:1024,suffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},i=t.suffixes.concat(n.suffixes.filter((function(e){return t.suffixes.indexOf(e)<0}))).join("|");i="("+i.replace("B","B(?!PS)")+")",e.register("format","bytes",{regexps:{format:/([0\s]i?b)/,unformat:new RegExp(i)},format:function(i,r,o){var a,s,u,l=e._.includes(r,"ib")?n:t,c=e._.includes(r," b")||e._.includes(r," ib")?" ":"";for(r=r.replace(/\s?i?b/,""),a=0;a<=l.suffixes.length;a++)if(s=Math.pow(l.base,a),u=Math.pow(l.base,a+1),null===i||0===i||i>=s&&i<u){c+=l.suffixes[a],s>0&&(i/=s);break}return e._.numberToFormat(i,r,o)+c},unformat:function(i){var r,o,a=e._.stringToNumber(i);if(a){for(r=t.suffixes.length-1;r>=0;r--){if(e._.includes(i,t.suffixes[r])){o=Math.pow(t.base,r);break}if(e._.includes(i,n.suffixes[r])){o=Math.pow(n.base,r);break}}a*=o||1}return a}})}(),e.register("format","currency",{regexps:{format:/(\$)/},format:function(t,n,i){var r,o,a=e.locales[e.options.currentLocale],s={before:n.match(/^([\+|\-|\(|\s|\$]*)/)[0],after:n.match(/([\+|\-|\)|\s|\$]*)$/)[0]};for(n=n.replace(/\s?\$\s?/,""),r=e._.numberToFormat(t,n,i),t>=0?(s.before=s.before.replace(/[\-\(]/,""),s.after=s.after.replace(/[\-\)]/,"")):t<0&&!e._.includes(s.before,"-")&&!e._.includes(s.before,"(")&&(s.before="-"+s.before),o=0;o<s.before.length;o++)switch(s.before[o]){case"$":r=e._.insert(r,a.currency.symbol,o);break;case" ":r=e._.insert(r," ",o+a.currency.symbol.length-1)}for(o=s.after.length-1;o>=0;o--)switch(s.after[o]){case"$":r=o===s.after.length-1?r+a.currency.symbol:e._.insert(r,a.currency.symbol,-(s.after.length-(1+o)));break;case" ":r=o===s.after.length-1?r+" ":e._.insert(r," ",-(s.after.length-(1+o)+a.currency.symbol.length-1))}return r}}),e.register("format","exponential",{regexps:{format:/(e\+|e-)/,unformat:/(e\+|e-)/},format:function(t,n,i){var r=("number"!==typeof t||e._.isNaN(t)?"0e+0":t.toExponential()).split("e");return n=n.replace(/e[\+|\-]{1}0/,""),e._.numberToFormat(Number(r[0]),n,i)+"e"+r[1]},unformat:function(t){var n=e._.includes(t,"e+")?t.split("e+"):t.split("e-"),i=Number(n[0]),r=Number(n[1]);function o(t,n,i,r){var o=e._.correctionFactor(t,n);return t*o*(n*o)/(o*o)}return r=e._.includes(t,"e-")?r*=-1:r,e._.reduce([i,Math.pow(10,r)],o,1)}}),e.register("format","ordinal",{regexps:{format:/(o)/},format:function(t,n,i){var r=e.locales[e.options.currentLocale],o=e._.includes(n," o")?" ":"";return n=n.replace(/\s?o/,""),o+=r.ordinal(t),e._.numberToFormat(t,n,i)+o}}),e.register("format","percentage",{regexps:{format:/(%)/,unformat:/(%)/},format:function(t,n,i){var r,o=e._.includes(n," %")?" ":"";return e.options.scalePercentBy100&&(t*=100),n=n.replace(/\s?\%/,""),r=e._.numberToFormat(t,n,i),e._.includes(r,")")?((r=r.split("")).splice(-1,0,o+"%"),r=r.join("")):r=r+o+"%",r},unformat:function(t){var n=e._.stringToNumber(t);return e.options.scalePercentBy100?.01*n:n}}),e.register("format","time",{regexps:{format:/(:)/,unformat:/(:)/},format:function(e,t,n){var i=Math.floor(e/60/60),r=Math.floor((e-60*i*60)/60),o=Math.round(e-60*i*60-60*r);return i+":"+(r<10?"0"+r:r)+":"+(o<10?"0"+o:o)},unformat:function(e){var t=e.split(":"),n=0;return 3===t.length?(n+=60*Number(t[0])*60,n+=60*Number(t[1]),n+=Number(t[2])):2===t.length&&(n+=60*Number(t[0]),n+=Number(t[1])),Number(n)}}),e},void 0===(r="function"===typeof i?i.call(t,n,t,e):i)||(e.exports=r)},58105:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach((function(e){i[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(r){return!1}}()?Object.assign:function(e,r){for(var o,a,s=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u<arguments.length;u++){for(var l in o=Object(arguments[u]))n.call(o,l)&&(s[l]=o[l]);if(t){a=t(o);for(var c=0;c<a.length;c++)i.call(o,a[c])&&(s[a[c]]=o[a[c]])}}return s}},27481:function(e,t,n){var i="function"===typeof Map&&Map.prototype,r=Object.getOwnPropertyDescriptor&&i?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,o=i&&r&&"function"===typeof r.get?r.get:null,a=i&&Map.prototype.forEach,s="function"===typeof Set&&Set.prototype,u=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,l=s&&u&&"function"===typeof u.get?u.get:null,c=s&&Set.prototype.forEach,d="function"===typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,h="function"===typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,f="function"===typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,p=Boolean.prototype.valueOf,v=Object.prototype.toString,g=Function.prototype.toString,m=String.prototype.match,_=String.prototype.slice,y=String.prototype.replace,b=String.prototype.toUpperCase,w=String.prototype.toLowerCase,C=RegExp.prototype.test,k=Array.prototype.concat,S=Array.prototype.join,x=Array.prototype.slice,L=Math.floor,E="function"===typeof BigInt?BigInt.prototype.valueOf:null,N=Object.getOwnPropertySymbols,D="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?Symbol.prototype.toString:null,M="function"===typeof Symbol&&"object"===typeof Symbol.iterator,T="function"===typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===M||"symbol")?Symbol.toStringTag:null,O=Object.prototype.propertyIsEnumerable,I=("function"===typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function A(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||C.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"===typeof e){var i=e<0?-L(-e):L(e);if(i!==e){var r=String(i),o=_.call(t,r.length+1);return y.call(r,n,"$&_")+"."+y.call(y.call(o,/([0-9]{3})/g,"$&_"),/_$/,"")}}return y.call(t,n,"$&_")}var P=n(24654).custom,R=P&&H(P)?P:null;function Z(e,t,n){var i="double"===(n.quoteStyle||t)?'"':"'";return i+e+i}function F(e){return y.call(String(e),/"/g,"&quot;")}function j(e){return"[object Array]"===W(e)&&(!T||!("object"===typeof e&&T in e))}function H(e){if(M)return e&&"object"===typeof e&&e instanceof Symbol;if("symbol"===typeof e)return!0;if(!e||"object"!==typeof e||!D)return!1;try{return D.call(e),!0}catch(t){}return!1}e.exports=function e(t,n,i,r){var s=n||{};if(z(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(z(s,"maxStringLength")&&("number"===typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var u=!z(s,"customInspect")||s.customInspect;if("boolean"!==typeof u&&"symbol"!==u)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(z(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(z(s,"numericSeparator")&&"boolean"!==typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var v=s.numericSeparator;if("undefined"===typeof t)return"undefined";if(null===t)return"null";if("boolean"===typeof t)return t?"true":"false";if("string"===typeof t)return Y(t,s);if("number"===typeof t){if(0===t)return 1/0/t>0?"0":"-0";var b=String(t);return v?A(t,b):b}if("bigint"===typeof t){var C=String(t)+"n";return v?A(t,C):C}var L="undefined"===typeof s.depth?5:s.depth;if("undefined"===typeof i&&(i=0),i>=L&&L>0&&"object"===typeof t)return j(t)?"[Array]":"[Object]";var N=function(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"===typeof e.indent&&e.indent>0))return null;n=S.call(Array(e.indent+1)," ")}return{base:n,prev:S.call(Array(t+1),n)}}(s,i);if("undefined"===typeof r)r=[];else if(V(r,t)>=0)return"[Circular]";function P(t,n,o){if(n&&(r=x.call(r)).push(n),o){var a={depth:s.depth};return z(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,i+1,r)}return e(t,s,i+1,r)}if("function"===typeof t){var B=function(e){if(e.name)return e.name;var t=m.call(g.call(e),/^function\s*([\w$]+)/);if(t)return t[1];return null}(t),U=Q(t,P);return"[Function"+(B?": "+B:" (anonymous)")+"]"+(U.length>0?" { "+S.call(U,", ")+" }":"")}if(H(t)){var X=M?y.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):D.call(t);return"object"!==typeof t||M?X:K(X)}if(function(e){if(!e||"object"!==typeof e)return!1;if("undefined"!==typeof HTMLElement&&e instanceof HTMLElement)return!0;return"string"===typeof e.nodeName&&"function"===typeof e.getAttribute}(t)){for(var J="<"+w.call(String(t.nodeName)),ee=t.attributes||[],te=0;te<ee.length;te++)J+=" "+ee[te].name+"="+Z(F(ee[te].value),"double",s);return J+=">",t.childNodes&&t.childNodes.length&&(J+="..."),J+="</"+w.call(String(t.nodeName))+">"}if(j(t)){if(0===t.length)return"[]";var ne=Q(t,P);return N&&!function(e){for(var t=0;t<e.length;t++)if(V(e[t],"\n")>=0)return!1;return!0}(ne)?"["+$(ne,N)+"]":"[ "+S.call(ne,", ")+" ]"}if(function(e){return"[object Error]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t)){var ie=Q(t,P);return"cause"in t&&!O.call(t,"cause")?"{ ["+String(t)+"] "+S.call(k.call("[cause]: "+P(t.cause),ie),", ")+" }":0===ie.length?"["+String(t)+"]":"{ ["+String(t)+"] "+S.call(ie,", ")+" }"}if("object"===typeof t&&u){if(R&&"function"===typeof t[R])return t[R]();if("symbol"!==u&&"function"===typeof t.inspect)return t.inspect()}if(function(e){if(!o||!e||"object"!==typeof e)return!1;try{o.call(e);try{l.call(e)}catch(J){return!0}return e instanceof Map}catch(t){}return!1}(t)){var re=[];return a.call(t,(function(e,n){re.push(P(n,t,!0)+" => "+P(e,t))})),G("Map",o.call(t),re,N)}if(function(e){if(!l||!e||"object"!==typeof e)return!1;try{l.call(e);try{o.call(e)}catch(t){return!0}return e instanceof Set}catch(n){}return!1}(t)){var oe=[];return c.call(t,(function(e){oe.push(P(e,t))})),G("Set",l.call(t),oe,N)}if(function(e){if(!d||!e||"object"!==typeof e)return!1;try{d.call(e,d);try{h.call(e,h)}catch(J){return!0}return e instanceof WeakMap}catch(t){}return!1}(t))return q("WeakMap");if(function(e){if(!h||!e||"object"!==typeof e)return!1;try{h.call(e,h);try{d.call(e,d)}catch(J){return!0}return e instanceof WeakSet}catch(t){}return!1}(t))return q("WeakSet");if(function(e){if(!f||!e||"object"!==typeof e)return!1;try{return f.call(e),!0}catch(t){}return!1}(t))return q("WeakRef");if(function(e){return"[object Number]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t))return K(P(Number(t)));if(function(e){if(!e||"object"!==typeof e||!E)return!1;try{return E.call(e),!0}catch(t){}return!1}(t))return K(P(E.call(t)));if(function(e){return"[object Boolean]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t))return K(p.call(t));if(function(e){return"[object String]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t))return K(P(String(t)));if(!function(e){return"[object Date]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t)&&!function(e){return"[object RegExp]"===W(e)&&(!T||!("object"===typeof e&&T in e))}(t)){var ae=Q(t,P),se=I?I(t)===Object.prototype:t instanceof Object||t.constructor===Object,ue=t instanceof Object?"":"null prototype",le=!se&&T&&Object(t)===t&&T in t?_.call(W(t),8,-1):ue?"Object":"",ce=(se||"function"!==typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(le||ue?"["+S.call(k.call([],le||[],ue||[]),": ")+"] ":"");return 0===ae.length?ce+"{}":N?ce+"{"+$(ae,N)+"}":ce+"{ "+S.call(ae,", ")+" }"}return String(t)};var B=Object.prototype.hasOwnProperty||function(e){return e in this};function z(e,t){return B.call(e,t)}function W(e){return v.call(e)}function V(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n;return-1}function Y(e,t){if(e.length>t.maxStringLength){var n=e.length-t.maxStringLength,i="... "+n+" more character"+(n>1?"s":"");return Y(_.call(e,0,t.maxStringLength),t)+i}return Z(y.call(y.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,U),"single",t)}function U(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+b.call(t.toString(16))}function K(e){return"Object("+e+")"}function q(e){return e+" { ? }"}function G(e,t,n,i){return e+" ("+t+") {"+(i?$(n,i):S.call(n,", "))+"}"}function $(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+S.call(e,","+n)+"\n"+t.prev}function Q(e,t){var n=j(e),i=[];if(n){i.length=e.length;for(var r=0;r<e.length;r++)i[r]=z(e,r)?t(e[r],e):""}var o,a="function"===typeof N?N(e):[];if(M){o={};for(var s=0;s<a.length;s++)o["$"+a[s]]=a[s]}for(var u in e)z(e,u)&&(n&&String(Number(u))===u&&u<e.length||M&&o["$"+u]instanceof Symbol||(C.call(/[^\w$]/,u)?i.push(t(u,e)+": "+t(e[u],e)):i.push(u+": "+t(e[u],e))));if("function"===typeof N)for(var l=0;l<a.length;l++)O.call(e,a[l])&&i.push("["+t(a[l])+"]: "+t(e[a[l]],e));return i}},2137:function(e){e.exports=l,e.exports.parse=i,e.exports.compile=function(e,t){return r(i(e,t))},e.exports.tokensToFunction=r,e.exports.tokensToRegExp=u;var t="/",n=new RegExp(["(\\\\.)","(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?"].join("|"),"g");function i(e,i){for(var r,s=[],u=0,l=0,c="",d=i&&i.delimiter||t,h=i&&i.whitelist||void 0,f=!1;null!==(r=n.exec(e));){var p=r[0],v=r[1],g=r.index;if(c+=e.slice(l,g),l=g+p.length,v)c+=v[1],f=!0;else{var m="",_=r[2],y=r[3],b=r[4],w=r[5];if(!f&&c.length){var C=c.length-1,k=c[C];(!h||h.indexOf(k)>-1)&&(m=k,c=c.slice(0,C))}c&&(s.push(c),c="",f=!1);var S="+"===w||"*"===w,x="?"===w||"*"===w,L=y||b,E=m||d;s.push({name:_||u++,prefix:m,delimiter:E,optional:x,repeat:S,pattern:L?a(L):"[^"+o(E===d?E:E+d)+"]+?"})}}return(c||l<e.length)&&s.push(c+e.substr(l)),s}function r(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"===typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,i){for(var r="",o=i&&i.encode||encodeURIComponent,a=0;a<e.length;a++){var s=e[a];if("string"!==typeof s){var u,l=n?n[s.name]:void 0;if(Array.isArray(l)){if(!s.repeat)throw new TypeError('Expected "'+s.name+'" to not repeat, but got array');if(0===l.length){if(s.optional)continue;throw new TypeError('Expected "'+s.name+'" to not be empty')}for(var c=0;c<l.length;c++){if(u=o(l[c],s),!t[a].test(u))throw new TypeError('Expected all "'+s.name+'" to match "'+s.pattern+'"');r+=(0===c?s.prefix:s.delimiter)+u}}else if("string"!==typeof l&&"number"!==typeof l&&"boolean"!==typeof l){if(!s.optional)throw new TypeError('Expected "'+s.name+'" to be '+(s.repeat?"an array":"a string"))}else{if(u=o(String(l),s),!t[a].test(u))throw new TypeError('Expected "'+s.name+'" to match "'+s.pattern+'", but got "'+u+'"');r+=s.prefix+u}}else r+=s}return r}}function o(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function a(e){return e.replace(/([=!:$/()])/g,"\\$1")}function s(e){return e&&e.sensitive?"":"i"}function u(e,n,i){for(var r=(i=i||{}).strict,a=!1!==i.start,u=!1!==i.end,l=i.delimiter||t,c=[].concat(i.endsWith||[]).map(o).concat("$").join("|"),d=a?"^":"",h=0;h<e.length;h++){var f=e[h];if("string"===typeof f)d+=o(f);else{var p=f.repeat?"(?:"+f.pattern+")(?:"+o(f.delimiter)+"(?:"+f.pattern+"))*":f.pattern;n&&n.push(f),f.optional?f.prefix?d+="(?:"+o(f.prefix)+"("+p+"))?":d+="("+p+")?":d+=o(f.prefix)+"("+p+")"}}if(u)r||(d+="(?:"+o(l)+")?"),d+="$"===c?"$":"(?="+c+")";else{var v=e[e.length-1],g="string"===typeof v?v[v.length-1]===l:void 0===v;r||(d+="(?:"+o(l)+"(?="+c+"))?"),g||(d+="(?="+o(l)+"|"+c+")")}return new RegExp(d,s(i))}function l(e,t,n){return e instanceof RegExp?function(e,t){if(!t)return e;var n=e.source.match(/\((?!\?)/g);if(n)for(var i=0;i<n.length;i++)t.push({name:i,prefix:null,delimiter:null,optional:!1,repeat:!1,pattern:null});return e}(e,t):Array.isArray(e)?function(e,t,n){for(var i=[],r=0;r<e.length;r++)i.push(l(e[r],t,n).source);return new RegExp("(?:"+i.join("|")+")",s(n))}(e,t,n):function(e,t,n){return u(i(e,n),t,n)}(e,t,n)}},75583:function(e,t,n){"use strict";var i=n(89489);function r(){}function o(){}o.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,o,a){if(a!==i){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:r};return n.PropTypes=n,n}},91386:function(e,t,n){e.exports=n(75583)()},89489:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},9139:function(e){"use strict";var t=String.prototype.replace,n=/%20/g,i="RFC1738",r="RFC3986";e.exports={default:r,formatters:{RFC1738:function(e){return t.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:i,RFC3986:r}},22637:function(e,t,n){"use strict";var i=n(23461),r=n(74282),o=n(9139);e.exports={formats:o,parse:r,stringify:i}},74282:function(e,t,n){"use strict";var i=n(93886),r=Object.prototype.hasOwnProperty,o=Array.isArray,a={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:i.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},u=function(e,t){return e&&"string"===typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},l=function(e,t,n,i){if(e){var o=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,s=n.depth>0&&/(\[[^[\]]*])/.exec(o),l=s?o.slice(0,s.index):o,c=[];if(l){if(!n.plainObjects&&r.call(Object.prototype,l)&&!n.allowPrototypes)return;c.push(l)}for(var d=0;n.depth>0&&null!==(s=a.exec(o))&&d<n.depth;){if(d+=1,!n.plainObjects&&r.call(Object.prototype,s[1].slice(1,-1))&&!n.allowPrototypes)return;c.push(s[1])}return s&&c.push("["+o.slice(s.index)+"]"),function(e,t,n,i){for(var r=i?t:u(t,n),o=e.length-1;o>=0;--o){var a,s=e[o];if("[]"===s&&n.parseArrays)a=[].concat(r);else{a=n.plainObjects?Object.create(null):{};var l="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,c=parseInt(l,10);n.parseArrays||""!==l?!isNaN(c)&&s!==l&&String(c)===l&&c>=0&&n.parseArrays&&c<=n.arrayLimit?(a=[])[c]=r:"__proto__"!==l&&(a[l]=r):a={0:r}}r=a}return r}(c,t,n,i)}};e.exports=function(e,t){var n=function(e){if(!e)return a;if(null!==e.decoder&&void 0!==e.decoder&&"function"!==typeof e.decoder)throw new TypeError("Decoder has to be a function.");if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t="undefined"===typeof e.charset?a.charset:e.charset;return{allowDots:"undefined"===typeof e.allowDots?a.allowDots:!!e.allowDots,allowPrototypes:"boolean"===typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"===typeof e.allowSparse?e.allowSparse:a.allowSparse,arrayLimit:"number"===typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"===typeof e.comma?e.comma:a.comma,decoder:"function"===typeof e.decoder?e.decoder:a.decoder,delimiter:"string"===typeof e.delimiter||i.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"===typeof e.depth||!1===e.depth?+e.depth:a.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"===typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"===typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"===typeof e.plainObjects?e.plainObjects:a.plainObjects,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(""===e||null===e||"undefined"===typeof e)return n.plainObjects?Object.create(null):{};for(var c="string"===typeof e?function(e,t){var n,l={},c=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,d=t.parameterLimit===1/0?void 0:t.parameterLimit,h=c.split(t.delimiter,d),f=-1,p=t.charset;if(t.charsetSentinel)for(n=0;n<h.length;++n)0===h[n].indexOf("utf8=")&&("utf8=%E2%9C%93"===h[n]?p="utf-8":"utf8=%26%2310003%3B"===h[n]&&(p="iso-8859-1"),f=n,n=h.length);for(n=0;n<h.length;++n)if(n!==f){var v,g,m=h[n],_=m.indexOf("]="),y=-1===_?m.indexOf("="):_+1;-1===y?(v=t.decoder(m,a.decoder,p,"key"),g=t.strictNullHandling?null:""):(v=t.decoder(m.slice(0,y),a.decoder,p,"key"),g=i.maybeMap(u(m.slice(y+1),t),(function(e){return t.decoder(e,a.decoder,p,"value")}))),g&&t.interpretNumericEntities&&"iso-8859-1"===p&&(g=s(g)),m.indexOf("[]=")>-1&&(g=o(g)?[g]:g),r.call(l,v)?l[v]=i.combine(l[v],g):l[v]=g}return l}(e,n):e,d=n.plainObjects?Object.create(null):{},h=Object.keys(c),f=0;f<h.length;++f){var p=h[f],v=l(p,c[p],n,"string"===typeof e);d=i.merge(d,v,n)}return!0===n.allowSparse?d:i.compact(d)}},23461:function(e,t,n){"use strict";var i=n(13959),r=n(93886),o=n(9139),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},u=Array.isArray,l=String.prototype.split,c=Array.prototype.push,d=function(e,t){c.apply(e,u(t)?t:[t])},h=Date.prototype.toISOString,f=o.default,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,format:f,formatter:o.formatters[f],indices:!1,serializeDate:function(e){return h.call(e)},skipNulls:!1,strictNullHandling:!1},v={},g=function e(t,n,o,a,s,c,h,f,g,m,_,y,b,w,C,k){for(var S,x=t,L=k,E=0,N=!1;void 0!==(L=L.get(v))&&!N;){var D=L.get(t);if(E+=1,"undefined"!==typeof D){if(D===E)throw new RangeError("Cyclic object value");N=!0}"undefined"===typeof L.get(v)&&(E=0)}if("function"===typeof f?x=f(n,x):x instanceof Date?x=_(x):"comma"===o&&u(x)&&(x=r.maybeMap(x,(function(e){return e instanceof Date?_(e):e}))),null===x){if(s)return h&&!w?h(n,p.encoder,C,"key",y):n;x=""}if("string"===typeof(S=x)||"number"===typeof S||"boolean"===typeof S||"symbol"===typeof S||"bigint"===typeof S||r.isBuffer(x)){if(h){var M=w?n:h(n,p.encoder,C,"key",y);if("comma"===o&&w){for(var T=l.call(String(x),","),O="",I=0;I<T.length;++I)O+=(0===I?"":",")+b(h(T[I],p.encoder,C,"value",y));return[b(M)+(a&&u(x)&&1===T.length?"[]":"")+"="+O]}return[b(M)+"="+b(h(x,p.encoder,C,"value",y))]}return[b(n)+"="+b(String(x))]}var A,P=[];if("undefined"===typeof x)return P;if("comma"===o&&u(x))A=[{value:x.length>0?x.join(",")||null:void 0}];else if(u(f))A=f;else{var R=Object.keys(x);A=g?R.sort(g):R}for(var Z=a&&u(x)&&1===x.length?n+"[]":n,F=0;F<A.length;++F){var j=A[F],H="object"===typeof j&&"undefined"!==typeof j.value?j.value:x[j];if(!c||null!==H){var B=u(x)?"function"===typeof o?o(Z,j):Z:Z+(m?"."+j:"["+j+"]");k.set(t,E);var z=i();z.set(v,k),d(P,e(H,B,o,a,s,c,h,f,g,m,_,y,b,w,C,z))}}return P};e.exports=function(e,t){var n,r=e,l=function(e){if(!e)return p;if(null!==e.encoder&&"undefined"!==typeof e.encoder&&"function"!==typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var n=o.default;if("undefined"!==typeof e.format){if(!a.call(o.formatters,e.format))throw new TypeError("Unknown format option provided.");n=e.format}var i=o.formatters[n],r=p.filter;return("function"===typeof e.filter||u(e.filter))&&(r=e.filter),{addQueryPrefix:"boolean"===typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:"undefined"===typeof e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:"undefined"===typeof e.delimiter?p.delimiter:e.delimiter,encode:"boolean"===typeof e.encode?e.encode:p.encode,encoder:"function"===typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"===typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:r,format:n,formatter:i,serializeDate:"function"===typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"===typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"===typeof e.sort?e.sort:null,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"===typeof l.filter?r=(0,l.filter)("",r):u(l.filter)&&(n=l.filter);var c,h=[];if("object"!==typeof r||null===r)return"";c=t&&t.arrayFormat in s?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var f=s[c];if(t&&"commaRoundTrip"in t&&"boolean"!==typeof t.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var v="comma"===f&&t&&t.commaRoundTrip;n||(n=Object.keys(r)),l.sort&&n.sort(l.sort);for(var m=i(),_=0;_<n.length;++_){var y=n[_];l.skipNulls&&null===r[y]||d(h,g(r[y],y,f,v,l.strictNullHandling,l.skipNulls,l.encode?l.encoder:null,l.filter,l.sort,l.allowDots,l.serializeDate,l.format,l.formatter,l.encodeValuesOnly,l.charset,m))}var b=h.join(l.delimiter),w=!0===l.addQueryPrefix?"?":"";return l.charsetSentinel&&("iso-8859-1"===l.charset?w+="utf8=%26%2310003%3B&":w+="utf8=%E2%9C%93&"),b.length>0?w+b:""}},93886:function(e,t,n){"use strict";var i=n(9139),r=Object.prototype.hasOwnProperty,o=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},i=0;i<e.length;++i)"undefined"!==typeof e[i]&&(n[i]=e[i]);return n};e.exports={arrayToObject:s,assign:function(e,t){return Object.keys(t).reduce((function(e,n){return e[n]=t[n],e}),e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],n=[],i=0;i<t.length;++i)for(var r=t[i],a=r.obj[r.prop],s=Object.keys(a),u=0;u<s.length;++u){var l=s[u],c=a[l];"object"===typeof c&&null!==c&&-1===n.indexOf(c)&&(t.push({obj:a,prop:l}),n.push(c))}return function(e){for(;e.length>1;){var t=e.pop(),n=t.obj[t.prop];if(o(n)){for(var i=[],r=0;r<n.length;++r)"undefined"!==typeof n[r]&&i.push(n[r]);t.obj[t.prop]=i}}}(t),e},decode:function(e,t,n){var i=e.replace(/\+/g," ");if("iso-8859-1"===n)return i.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(i)}catch(r){return i}},encode:function(e,t,n,r,o){if(0===e.length)return e;var s=e;if("symbol"===typeof e?s=Symbol.prototype.toString.call(e):"string"!==typeof e&&(s=String(e)),"iso-8859-1"===n)return escape(s).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var u="",l=0;l<s.length;++l){var c=s.charCodeAt(l);45===c||46===c||95===c||126===c||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||o===i.RFC1738&&(40===c||41===c)?u+=s.charAt(l):c<128?u+=a[c]:c<2048?u+=a[192|c>>6]+a[128|63&c]:c<55296||c>=57344?u+=a[224|c>>12]+a[128|c>>6&63]+a[128|63&c]:(l+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(l)),u+=a[240|c>>18]+a[128|c>>12&63]+a[128|c>>6&63]+a[128|63&c])}return u},isBuffer:function(e){return!(!e||"object"!==typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(o(e)){for(var n=[],i=0;i<e.length;i+=1)n.push(t(e[i]));return n}return t(e)},merge:function e(t,n,i){if(!n)return t;if("object"!==typeof n){if(o(t))t.push(n);else{if(!t||"object"!==typeof t)return[t,n];(i&&(i.plainObjects||i.allowPrototypes)||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if(!t||"object"!==typeof t)return[t].concat(n);var a=t;return o(t)&&!o(n)&&(a=s(t,i)),o(t)&&o(n)?(n.forEach((function(n,o){if(r.call(t,o)){var a=t[o];a&&"object"===typeof a&&n&&"object"===typeof n?t[o]=e(a,n,i):t.push(n)}else t[o]=n})),t):Object.keys(n).reduce((function(t,o){var a=n[o];return r.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t}),a)}}},16610:function(e){"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,i,r){n=n||"&",i=i||"=";var o={};if("string"!==typeof e||0===e.length)return o;var a=/\+/g;e=e.split(n);var s=1e3;r&&"number"===typeof r.maxKeys&&(s=r.maxKeys);var u=e.length;s>0&&u>s&&(u=s);for(var l=0;l<u;++l){var c,d,h,f,p=e[l].replace(a,"%20"),v=p.indexOf(i);v>=0?(c=p.substr(0,v),d=p.substr(v+1)):(c=p,d=""),h=decodeURIComponent(c),f=decodeURIComponent(d),t(o,h)?Array.isArray(o[h])?o[h].push(f):o[h]=[o[h],f]:o[h]=f}return o}},83186:function(e){"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,i,r){return n=n||"&",i=i||"=",null===e&&(e=void 0),"object"===typeof e?Object.keys(e).map((function(r){var o=encodeURIComponent(t(r))+i;return Array.isArray(e[r])?e[r].map((function(e){return o+encodeURIComponent(t(e))})).join(n):o+encodeURIComponent(t(e[r]))})).join(n):r?encodeURIComponent(t(r))+i+encodeURIComponent(t(e)):""}},76127:function(e,t,n){"use strict";t.decode=t.parse=n(16610),t.encode=t.stringify=n(83186)},482:function(e,t,n){"use strict";function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=s(n(4519)),o=s(n(80358)),a=["text","onCopy","options","children"];function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,i,r=function(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function d(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function f(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v(e);if(t){var o=v(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"===i(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}(this,n)}}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e){return v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},v(e)}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(u,e);var t,n,i,s=f(u);function u(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return g(p(e=s.call.apply(s,[this].concat(n))),"onClick",(function(t){var n=e.props,i=n.text,a=n.onCopy,s=n.children,u=n.options,l=r.default.Children.only(s),c=(0,o.default)(i,u);a&&a(i,c),l&&l.props&&"function"===typeof l.props.onClick&&l.props.onClick(t)})),e}return t=u,(n=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=c(e,a),i=r.default.Children.only(t);return r.default.cloneElement(i,l(l({},n),{},{onClick:this.onClick}))}}])&&d(t.prototype,n),i&&d(t,i),Object.defineProperty(t,"prototype",{writable:!1}),u}(r.default.PureComponent);t.CopyToClipboard=m,g(m,"defaultProps",{onCopy:void 0,options:void 0})},17972:function(e,t,n){"use strict";var i=n(482).CopyToClipboard;i.CopyToClipboard=i,e.exports=i},81571:function(e,t,n){"use strict";var i=n(4519),r=n(58105),o=n(8514);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!i)throw Error(a(227));var s=new Set,u={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(u[e]=t,e=0;e<t.length;e++)s.add(t[e])}var d=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),h=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,p={},v={};function g(e,t,n,i,r,o,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var m={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){m[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];m[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){m[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){m[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){m[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){m[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){m[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){m[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){m[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var _=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function b(e,t,n,i){var r=m.hasOwnProperty(t)?m[t]:null;(null!==r?0===r.type:!i&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,i){if(null===t||"undefined"===typeof t||function(e,t,n,i){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!i&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,i))return!0;if(i)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,r,i)&&(n=null),i||null===r?function(e){return!!f.call(v,e)||!f.call(p,e)&&(h.test(e)?v[e]=!0:(p[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):r.mustUseProperty?e[r.propertyName]=null===n?3!==r.type&&"":n:(t=r.attributeName,i=r.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(r=r.type)||4===r&&!0===n?"":""+n,i?e.setAttributeNS(i,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(_,y);m[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(_,y);m[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(_,y);m[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){m[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),m.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){m[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,C=60103,k=60106,S=60107,x=60108,L=60114,E=60109,N=60110,D=60112,M=60113,T=60120,O=60115,I=60116,A=60121,P=60128,R=60129,Z=60130,F=60131;if("function"===typeof Symbol&&Symbol.for){var j=Symbol.for;C=j("react.element"),k=j("react.portal"),S=j("react.fragment"),x=j("react.strict_mode"),L=j("react.profiler"),E=j("react.provider"),N=j("react.context"),D=j("react.forward_ref"),M=j("react.suspense"),T=j("react.suspense_list"),O=j("react.memo"),I=j("react.lazy"),A=j("react.block"),j("react.scope"),P=j("react.opaque.id"),R=j("react.debug_trace_mode"),Z=j("react.offscreen"),F=j("react.legacy_hidden")}var H,B="function"===typeof Symbol&&Symbol.iterator;function z(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=B&&e[B]||e["@@iterator"])?e:null}function W(e){if(void 0===H)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);H=t&&t[1]||""}return"\n"+H+e}var V=!1;function Y(e,t){if(!e||V)return"";V=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var i=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){i=u}e.call(t.prototype)}else{try{throw Error()}catch(u){i=u}e()}}catch(u){if(u&&i&&"string"===typeof u.stack){for(var r=u.stack.split("\n"),o=i.stack.split("\n"),a=r.length-1,s=o.length-1;1<=a&&0<=s&&r[a]!==o[s];)s--;for(;1<=a&&0<=s;a--,s--)if(r[a]!==o[s]){if(1!==a||1!==s)do{if(a--,0>--s||r[a]!==o[s])return"\n"+r[a].replace(" at new "," at ")}while(1<=a&&0<=s);break}}}finally{V=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?W(e):""}function U(e){switch(e.tag){case 5:return W(e.type);case 16:return W("Lazy");case 13:return W("Suspense");case 19:return W("SuspenseList");case 0:case 2:case 15:return e=Y(e.type,!1);case 11:return e=Y(e.type.render,!1);case 22:return e=Y(e.type._render,!1);case 1:return e=Y(e.type,!0);default:return""}}function K(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case S:return"Fragment";case k:return"Portal";case L:return"Profiler";case x:return"StrictMode";case M:return"Suspense";case T:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case N:return(e.displayName||"Context")+".Consumer";case E:return(e._context.displayName||"Context")+".Provider";case D:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case O:return K(e.type);case A:return K(e._render);case I:t=e._payload,e=e._init;try{return K(e(t))}catch(n){}}return null}function q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function G(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function $(e){e._valueTracker||(e._valueTracker=function(e){var t=G(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var r=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(e){i=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return i},setValue:function(e){i=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=G(e)?e.checked?"true":"false":e.value),(e=i)!==n&&(t.setValue(e),!0)}function X(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return r({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,i=null!=t.checked?t.checked:t.defaultChecked;n=q(null!=t.value?t.value:n),e._wrapperState={initialChecked:i,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&b(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=q(t.value),i=t.type;if(null!=n)"number"===i?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===i||"reset"===i)return void e.removeAttribute("value");t.hasOwnProperty("value")?re(e,t.type,n):t.hasOwnProperty("defaultValue")&&re(e,t.type,q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function ie(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var i=t.type;if(!("submit"!==i&&"reset"!==i||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function re(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=r({children:void 0},t),(t=function(e){var t="";return i.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ae(e,t,n,i){if(e=e.options,t){t={};for(var r=0;r<n.length;r++)t["$"+n[r]]=!0;for(n=0;n<e.length;n++)r=t.hasOwnProperty("$"+e[n].value),e[n].selected!==r&&(e[n].selected=r),r&&i&&(e[n].defaultSelected=!0)}else{for(n=""+q(n),t=null,r=0;r<e.length;r++){if(e[r].value===n)return e[r].selected=!0,void(i&&(e[r].defaultSelected=!0));null!==t||e[r].disabled||(t=e[r])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return r({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ue(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:q(n)}}function le(e,t){var n=q(t.value),i=q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=i&&(e.defaultValue=""+i)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function he(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?he(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var pe,ve,ge=(ve=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((pe=pe||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=pe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,i){MSApp.execUnsafeLocalFunction((function(){return ve(e,t)}))}:ve);function me(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var _e={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function be(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||_e.hasOwnProperty(e)&&_e[e]?(""+t).trim():t+"px"}function we(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var i=0===n.indexOf("--"),r=be(n,t[n],i);"float"===n&&(n="cssFloat"),i?e.setProperty(n,r):e[n]=r}}Object.keys(_e).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_e[t]=_e[e]}))}));var Ce=r({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ke(e,t){if(t){if(Ce[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(a(62))}}function Se(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Le=null,Ee=null,Ne=null;function De(e){if(e=nr(e)){if("function"!==typeof Le)throw Error(a(280));var t=e.stateNode;t&&(t=rr(t),Le(e.stateNode,e.type,t))}}function Me(e){Ee?Ne?Ne.push(e):Ne=[e]:Ee=e}function Te(){if(Ee){var e=Ee,t=Ne;if(Ne=Ee=null,De(e),t)for(e=0;e<t.length;e++)De(t[e])}}function Oe(e,t){return e(t)}function Ie(e,t,n,i,r){return e(t,n,i,r)}function Ae(){}var Pe=Oe,Re=!1,Ze=!1;function Fe(){null===Ee&&null===Ne||(Ae(),Te())}function je(e,t){var n=e.stateNode;if(null===n)return null;var i=rr(n);if(null===i)return null;n=i[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(i=!i.disabled)||(i=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!i;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(a(231,t,typeof n));return n}var He=!1;if(d)try{var Be={};Object.defineProperty(Be,"passive",{get:function(){He=!0}}),window.addEventListener("test",Be,Be),window.removeEventListener("test",Be,Be)}catch(ve){He=!1}function ze(e,t,n,i,r,o,a,s,u){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(c){this.onError(c)}}var We=!1,Ve=null,Ye=!1,Ue=null,Ke={onError:function(e){We=!0,Ve=e}};function qe(e,t,n,i,r,o,a,s,u){We=!1,Ve=null,ze.apply(Ke,arguments)}function Ge(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function $e(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Qe(e){if(Ge(e)!==e)throw Error(a(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ge(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,i=t;;){var r=n.return;if(null===r)break;var o=r.alternate;if(null===o){if(null!==(i=r.return)){n=i;continue}break}if(r.child===o.child){for(o=r.child;o;){if(o===n)return Qe(r),e;if(o===i)return Qe(r),t;o=o.sibling}throw Error(a(188))}if(n.return!==i.return)n=r,i=o;else{for(var s=!1,u=r.child;u;){if(u===n){s=!0,n=r,i=o;break}if(u===i){s=!0,i=r,n=o;break}u=u.sibling}if(!s){for(u=o.child;u;){if(u===n){s=!0,n=o,i=r;break}if(u===i){s=!0,i=o,n=r;break}u=u.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==i)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,it,rt=!1,ot=[],at=null,st=null,ut=null,lt=new Map,ct=new Map,dt=[],ht="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,i,r){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:r,targetContainers:[i]}}function pt(e,t){switch(e){case"focusin":case"focusout":at=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":ut=null;break;case"pointerover":case"pointerout":lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function vt(e,t,n,i,r,o){return null===e||e.nativeEvent!==o?(e=ft(t,n,i,r,o),null!==t&&(null!==(t=nr(t))&&tt(t)),e):(e.eventSystemFlags|=i,t=e.targetContainers,null!==r&&-1===t.indexOf(r)&&t.push(r),e)}function gt(e){var t=tr(e.target);if(null!==t){var n=Ge(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=$e(n)))return e.blockedOn=t,void it(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=nr(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function _t(e,t,n){mt(e)&&n.delete(t)}function yt(){for(rt=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=nr(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==at&&mt(at)&&(at=null),null!==st&&mt(st)&&(st=null),null!==ut&&mt(ut)&&(ut=null),lt.forEach(_t),ct.forEach(_t)}function bt(e,t){e.blockedOn===t&&(e.blockedOn=null,rt||(rt=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function wt(e){function t(t){return bt(t,e)}if(0<ot.length){bt(ot[0],e);for(var n=1;n<ot.length;n++){var i=ot[n];i.blockedOn===e&&(i.blockedOn=null)}}for(null!==at&&bt(at,e),null!==st&&bt(st,e),null!==ut&&bt(ut,e),lt.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(i=dt[n]).blockedOn===e&&(i.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function Ct(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kt={animationend:Ct("Animation","AnimationEnd"),animationiteration:Ct("Animation","AnimationIteration"),animationstart:Ct("Animation","AnimationStart"),transitionend:Ct("Transition","TransitionEnd")},St={},xt={};function Lt(e){if(St[e])return St[e];if(!kt[e])return e;var t,n=kt[e];for(t in n)if(n.hasOwnProperty(t)&&t in xt)return St[e]=n[t];return e}d&&(xt=document.createElement("div").style,"AnimationEvent"in window||(delete kt.animationend.animation,delete kt.animationiteration.animation,delete kt.animationstart.animation),"TransitionEvent"in window||delete kt.transitionend.transition);var Et=Lt("animationend"),Nt=Lt("animationiteration"),Dt=Lt("animationstart"),Mt=Lt("transitionend"),Tt=new Map,Ot=new Map,It=["abort","abort",Et,"animationEnd",Nt,"animationIteration",Dt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Mt,"transitionEnd","waiting","waiting"];function At(e,t){for(var n=0;n<e.length;n+=2){var i=e[n],r=e[n+1];r="on"+(r[0].toUpperCase()+r.slice(1)),Ot.set(i,t),Tt.set(i,r),l(r,[i])}}(0,o.unstable_now)();var Pt=8;function Rt(e){if(0!==(1&e))return Pt=15,1;if(0!==(2&e))return Pt=14,2;if(0!==(4&e))return Pt=13,4;var t=24&e;return 0!==t?(Pt=12,t):0!==(32&e)?(Pt=11,32):0!==(t=192&e)?(Pt=10,t):0!==(256&e)?(Pt=9,256):0!==(t=3584&e)?(Pt=8,t):0!==(4096&e)?(Pt=7,4096):0!==(t=4186112&e)?(Pt=6,t):0!==(t=62914560&e)?(Pt=5,t):67108864&e?(Pt=4,67108864):0!==(134217728&e)?(Pt=3,134217728):0!==(t=805306368&e)?(Pt=2,t):0!==(1073741824&e)?(Pt=1,1073741824):(Pt=8,e)}function Zt(e,t){var n=e.pendingLanes;if(0===n)return Pt=0;var i=0,r=0,o=e.expiredLanes,a=e.suspendedLanes,s=e.pingedLanes;if(0!==o)i=o,r=Pt=15;else if(0!==(o=134217727&n)){var u=o&~a;0!==u?(i=Rt(u),r=Pt):0!==(s&=o)&&(i=Rt(s),r=Pt)}else 0!==(o=n&~a)?(i=Rt(o),r=Pt):0!==s&&(i=Rt(s),r=Pt);if(0===i)return 0;if(i=n&((0>(i=31-Wt(i))?0:1<<i)<<1)-1,0!==t&&t!==i&&0===(t&a)){if(Rt(t),r<=Pt)return t;Pt=r}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=i;0<t;)r=1<<(n=31-Wt(t)),i|=e[n],t&=~r;return i}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Ht(24&~t))?jt(10,t):e;case 10:return 0===(e=Ht(192&~t))?jt(8,t):e;case 8:return 0===(e=Ht(3584&~t))&&(0===(e=Ht(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Ht(805306368&~t))&&(t=268435456),t}throw Error(a(358,e))}function Ht(e){return e&-e}function Bt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function zt(e,t,n){e.pendingLanes|=t;var i=t-1;e.suspendedLanes&=i,e.pingedLanes&=i,(e=e.eventTimes)[t=31-Wt(t)]=n}var Wt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Vt(e)/Yt|0)|0},Vt=Math.log,Yt=Math.LN2;var Ut=o.unstable_UserBlockingPriority,Kt=o.unstable_runWithPriority,qt=!0;function Gt(e,t,n,i){Re||Ae();var r=Qt,o=Re;Re=!0;try{Ie(r,e,t,n,i)}finally{(Re=o)||Fe()}}function $t(e,t,n,i){Kt(Ut,Qt.bind(null,e,t,n,i))}function Qt(e,t,n,i){var r;if(qt)if((r=0===(4&t))&&0<ot.length&&-1<ht.indexOf(e))e=ft(null,e,t,n,i),ot.push(e);else{var o=Xt(e,t,n,i);if(null===o)r&&pt(e,i);else{if(r){if(-1<ht.indexOf(e))return e=ft(o,e,t,n,i),void ot.push(e);if(function(e,t,n,i,r){switch(t){case"focusin":return at=vt(at,e,t,n,i,r),!0;case"dragenter":return st=vt(st,e,t,n,i,r),!0;case"mouseover":return ut=vt(ut,e,t,n,i,r),!0;case"pointerover":var o=r.pointerId;return lt.set(o,vt(lt.get(o)||null,e,t,n,i,r)),!0;case"gotpointercapture":return o=r.pointerId,ct.set(o,vt(ct.get(o)||null,e,t,n,i,r)),!0}return!1}(o,e,t,n,i))return;pt(e,i)}Ai(e,t,i,null,n)}}}function Xt(e,t,n,i){var r=xe(i);if(null!==(r=tr(r))){var o=Ge(r);if(null===o)r=null;else{var a=o.tag;if(13===a){if(null!==(r=$e(o)))return r;r=null}else if(3===a){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;r=null}else o!==r&&(r=null)}}return Ai(e,t,i,r,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,i=n.length,r="value"in Jt?Jt.value:Jt.textContent,o=r.length;for(e=0;e<i&&n[e]===r[e];e++);var a=i-e;for(t=1;t<=a&&n[i-t]===r[o-t];t++);return tn=r.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function sn(e){function t(t,n,i,r,o){for(var a in this._reactName=t,this._targetInst=i,this.type=n,this.nativeEvent=r,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(a)&&(t=e[a],this[a]=t?t(r):r[a]);return this.isDefaultPrevented=(null!=r.defaultPrevented?r.defaultPrevented:!1===r.returnValue)?on:an,this.isPropagationStopped=an,this}return r(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var un,ln,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},hn=sn(dn),fn=r({},dn,{view:0,detail:0}),pn=sn(fn),vn=r({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:En,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(un=e.screenX-cn.screenX,ln=e.screenY-cn.screenY):ln=un=0,cn=e),un)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),gn=sn(vn),mn=sn(r({},vn,{dataTransfer:0})),_n=sn(r({},fn,{relatedTarget:0})),yn=sn(r({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),bn=r({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),wn=sn(bn),Cn=sn(r({},dn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Sn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Ln(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=xn[e])&&!!t[e]}function En(){return Ln}var Nn=r({},fn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Sn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:En,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Dn=sn(Nn),Mn=sn(r({},vn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Tn=sn(r({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),On=sn(r({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=r({},vn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),An=sn(In),Pn=[9,13,27,32],Rn=d&&"CompositionEvent"in window,Zn=null;d&&"documentMode"in document&&(Zn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Zn,jn=d&&(!Rn||Zn&&8<Zn&&11>=Zn),Hn=String.fromCharCode(32),Bn=!1;function zn(e,t){switch(e){case"keyup":return-1!==Pn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1;var Yn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Un(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Yn[e.type]:"textarea"===t}function Kn(e,t,n,i){Me(i),0<(t=Ri(t,"onChange")).length&&(n=new hn("onChange","change",null,n,i),e.push({event:n,listeners:t}))}var qn=null,Gn=null;function $n(e){Ni(e,0)}function Qn(e){if(Q(ir(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var ei;if(d){var ti="oninput"in document;if(!ti){var ni=document.createElement("div");ni.setAttribute("oninput","return;"),ti="function"===typeof ni.oninput}ei=ti}else ei=!1;Jn=ei&&(!document.documentMode||9<document.documentMode)}function ii(){qn&&(qn.detachEvent("onpropertychange",ri),Gn=qn=null)}function ri(e){if("value"===e.propertyName&&Qn(Gn)){var t=[];if(Kn(t,Gn,e,xe(e)),e=$n,Re)e(t);else{Re=!0;try{Oe(e,t)}finally{Re=!1,Fe()}}}}function oi(e,t,n){"focusin"===e?(ii(),Gn=n,(qn=t).attachEvent("onpropertychange",ri)):"focusout"===e&&ii()}function ai(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Qn(Gn)}function si(e,t){if("click"===e)return Qn(t)}function ui(e,t){if("input"===e||"change"===e)return Qn(t)}var li="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},ci=Object.prototype.hasOwnProperty;function di(e,t){if(li(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(i=0;i<n.length;i++)if(!ci.call(t,n[i])||!li(e[n[i]],t[n[i]]))return!1;return!0}function hi(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fi(e,t){var n,i=hi(e);for(e=0;i;){if(3===i.nodeType){if(n=e+i.textContent.length,e<=t&&n>=t)return{node:i,offset:t-e};e=n}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=hi(i)}}function pi(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?pi(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function vi(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(i){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var mi=d&&"documentMode"in document&&11>=document.documentMode,_i=null,yi=null,bi=null,wi=!1;function Ci(e,t,n){var i=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;wi||null==_i||_i!==X(i)||("selectionStart"in(i=_i)&&gi(i)?i={start:i.selectionStart,end:i.selectionEnd}:i={anchorNode:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset},bi&&di(bi,i)||(bi=i,0<(i=Ri(yi,"onSelect")).length&&(t=new hn("onSelect","select",null,t,n),e.push({event:t,listeners:i}),t.target=_i)))}At("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),At("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),At(It,2);for(var ki="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Si=0;Si<ki.length;Si++)Ot.set(ki[Si],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var xi="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Li=new Set("cancel close invalid load scroll toggle".split(" ").concat(xi));function Ei(e,t,n){var i=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,i,r,o,s,u,l){if(qe.apply(this,arguments),We){if(!We)throw Error(a(198));var c=Ve;We=!1,Ve=null,Ye||(Ye=!0,Ue=c)}}(i,t,void 0,e),e.currentTarget=null}function Ni(e,t){t=0!==(4&t);for(var n=0;n<e.length;n++){var i=e[n],r=i.event;i=i.listeners;e:{var o=void 0;if(t)for(var a=i.length-1;0<=a;a--){var s=i[a],u=s.instance,l=s.currentTarget;if(s=s.listener,u!==o&&r.isPropagationStopped())break e;Ei(r,s,l),o=u}else for(a=0;a<i.length;a++){if(u=(s=i[a]).instance,l=s.currentTarget,s=s.listener,u!==o&&r.isPropagationStopped())break e;Ei(r,s,l),o=u}}}if(Ye)throw e=Ue,Ye=!1,Ue=null,e}function Di(e,t){var n=or(t),i=e+"__bubble";n.has(i)||(Ii(t,e,2,!1),n.add(i))}var Mi="_reactListening"+Math.random().toString(36).slice(2);function Ti(e){e[Mi]||(e[Mi]=!0,s.forEach((function(t){Li.has(t)||Oi(t,!1,e,null),Oi(t,!0,e,null)})))}function Oi(e,t,n,i){var r=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==i&&!t&&Li.has(e)){if("scroll"!==e)return;r|=2,o=i}var a=or(o),s=e+"__"+(t?"capture":"bubble");a.has(s)||(t&&(r|=4),Ii(o,e,r,t),a.add(s))}function Ii(e,t,n,i){var r=Ot.get(t);switch(void 0===r?2:r){case 0:r=Gt;break;case 1:r=$t;break;default:r=Qt}n=r.bind(null,t,n,e),r=void 0,!He||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(r=!0),i?void 0!==r?e.addEventListener(t,n,{capture:!0,passive:r}):e.addEventListener(t,n,!0):void 0!==r?e.addEventListener(t,n,{passive:r}):e.addEventListener(t,n,!1)}function Ai(e,t,n,i,r){var o=i;if(0===(1&t)&&0===(2&t)&&null!==i)e:for(;;){if(null===i)return;var a=i.tag;if(3===a||4===a){var s=i.stateNode.containerInfo;if(s===r||8===s.nodeType&&s.parentNode===r)break;if(4===a)for(a=i.return;null!==a;){var u=a.tag;if((3===u||4===u)&&((u=a.stateNode.containerInfo)===r||8===u.nodeType&&u.parentNode===r))return;a=a.return}for(;null!==s;){if(null===(a=tr(s)))return;if(5===(u=a.tag)||6===u){i=o=a;continue e}s=s.parentNode}}i=i.return}!function(e,t,n){if(Ze)return e(t,n);Ze=!0;try{return Pe(e,t,n)}finally{Ze=!1,Fe()}}((function(){var i=o,r=xe(n),a=[];e:{var s=Tt.get(e);if(void 0!==s){var u=hn,l=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":u=Dn;break;case"focusin":l="focus",u=_n;break;case"focusout":l="blur",u=_n;break;case"beforeblur":case"afterblur":u=_n;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":u=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":u=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":u=Tn;break;case Et:case Nt:case Dt:u=yn;break;case Mt:u=On;break;case"scroll":u=pn;break;case"wheel":u=An;break;case"copy":case"cut":case"paste":u=wn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":u=Mn}var c=0!==(4&t),d=!c&&"scroll"===e,h=c?null!==s?s+"Capture":null:s;c=[];for(var f,p=i;null!==p;){var v=(f=p).stateNode;if(5===f.tag&&null!==v&&(f=v,null!==h&&(null!=(v=je(p,h))&&c.push(Pi(p,v,f)))),d)break;p=p.return}0<c.length&&(s=new u(s,l,null,n,r),a.push({event:s,listeners:c}))}}if(0===(7&t)){if(u="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!==(16&t)||!(l=n.relatedTarget||n.fromElement)||!tr(l)&&!l[Ji])&&(u||s)&&(s=r.window===r?r:(s=r.ownerDocument)?s.defaultView||s.parentWindow:window,u?(u=i,null!==(l=(l=n.relatedTarget||n.toElement)?tr(l):null)&&(l!==(d=Ge(l))||5!==l.tag&&6!==l.tag)&&(l=null)):(u=null,l=i),u!==l)){if(c=gn,v="onMouseLeave",h="onMouseEnter",p="mouse","pointerout"!==e&&"pointerover"!==e||(c=Mn,v="onPointerLeave",h="onPointerEnter",p="pointer"),d=null==u?s:ir(u),f=null==l?s:ir(l),(s=new c(v,p+"leave",u,n,r)).target=d,s.relatedTarget=f,v=null,tr(r)===i&&((c=new c(h,p+"enter",l,n,r)).target=f,c.relatedTarget=d,v=c),d=v,u&&l)e:{for(h=l,p=0,f=c=u;f;f=Zi(f))p++;for(f=0,v=h;v;v=Zi(v))f++;for(;0<p-f;)c=Zi(c),p--;for(;0<f-p;)h=Zi(h),f--;for(;p--;){if(c===h||null!==h&&c===h.alternate)break e;c=Zi(c),h=Zi(h)}c=null}else c=null;null!==u&&Fi(a,s,u,c,!1),null!==l&&null!==d&&Fi(a,d,l,c,!0)}if("select"===(u=(s=i?ir(i):window).nodeName&&s.nodeName.toLowerCase())||"input"===u&&"file"===s.type)var g=Xn;else if(Un(s))if(Jn)g=ui;else{g=ai;var m=oi}else(u=s.nodeName)&&"input"===u.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=si);switch(g&&(g=g(e,i))?Kn(a,g,n,r):(m&&m(e,s,i),"focusout"===e&&(m=s._wrapperState)&&m.controlled&&"number"===s.type&&re(s,"number",s.value)),m=i?ir(i):window,e){case"focusin":(Un(m)||"true"===m.contentEditable)&&(_i=m,yi=i,bi=null);break;case"focusout":bi=yi=_i=null;break;case"mousedown":wi=!0;break;case"contextmenu":case"mouseup":case"dragend":wi=!1,Ci(a,n,r);break;case"selectionchange":if(mi)break;case"keydown":case"keyup":Ci(a,n,r)}var _;if(Rn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?zn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(_=nn()):(en="value"in(Jt=r)?Jt.value:Jt.textContent,Vn=!0)),0<(m=Ri(i,y)).length&&(y=new Cn(y,e,null,n,r),a.push({event:y,listeners:m}),_?y.data=_:null!==(_=Wn(n))&&(y.data=_))),(_=Fn?function(e,t){switch(e){case"compositionend":return Wn(t);case"keypress":return 32!==t.which?null:(Bn=!0,Hn);case"textInput":return(e=t.data)===Hn&&Bn?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!Rn&&zn(e,t)?(e=nn(),tn=en=Jt=null,Vn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(i=Ri(i,"onBeforeInput")).length&&(r=new Cn("onBeforeInput","beforeinput",null,n,r),a.push({event:r,listeners:i}),r.data=_))}Ni(a,t)}))}function Pi(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ri(e,t){for(var n=t+"Capture",i=[];null!==e;){var r=e,o=r.stateNode;5===r.tag&&null!==o&&(r=o,null!=(o=je(e,n))&&i.unshift(Pi(e,o,r)),null!=(o=je(e,t))&&i.push(Pi(e,o,r))),e=e.return}return i}function Zi(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fi(e,t,n,i,r){for(var o=t._reactName,a=[];null!==n&&n!==i;){var s=n,u=s.alternate,l=s.stateNode;if(null!==u&&u===i)break;5===s.tag&&null!==l&&(s=l,r?null!=(u=je(n,o))&&a.unshift(Pi(n,u,s)):r||null!=(u=je(n,o))&&a.push(Pi(n,u,s))),n=n.return}0!==a.length&&e.push({event:t,listeners:a})}function ji(){}var Hi=null,Bi=null;function zi(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Wi(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Vi="function"===typeof setTimeout?setTimeout:void 0,Yi="function"===typeof clearTimeout?clearTimeout:void 0;function Ui(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Ki(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function qi(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Gi=0;var $i=Math.random().toString(36).slice(2),Qi="__reactFiber$"+$i,Xi="__reactProps$"+$i,Ji="__reactContainer$"+$i,er="__reactEvents$"+$i;function tr(e){var t=e[Qi];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Ji]||n[Qi]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=qi(e);null!==e;){if(n=e[Qi])return n;e=qi(e)}return t}n=(e=n).parentNode}return null}function nr(e){return!(e=e[Qi]||e[Ji])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ir(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function rr(e){return e[Xi]||null}function or(e){var t=e[er];return void 0===t&&(t=e[er]=new Set),t}var ar=[],sr=-1;function ur(e){return{current:e}}function lr(e){0>sr||(e.current=ar[sr],ar[sr]=null,sr--)}function cr(e,t){sr++,ar[sr]=e.current,e.current=t}var dr={},hr=ur(dr),fr=ur(!1),pr=dr;function vr(e,t){var n=e.type.contextTypes;if(!n)return dr;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var r,o={};for(r in n)o[r]=t[r];return i&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function gr(e){return null!==(e=e.childContextTypes)&&void 0!==e}function mr(){lr(fr),lr(hr)}function _r(e,t,n){if(hr.current!==dr)throw Error(a(168));cr(hr,t),cr(fr,n)}function yr(e,t,n){var i=e.stateNode;if(e=t.childContextTypes,"function"!==typeof i.getChildContext)return n;for(var o in i=i.getChildContext())if(!(o in e))throw Error(a(108,K(t)||"Unknown",o));return r({},n,i)}function br(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||dr,pr=hr.current,cr(hr,e),cr(fr,fr.current),!0}function wr(e,t,n){var i=e.stateNode;if(!i)throw Error(a(169));n?(e=yr(e,t,pr),i.__reactInternalMemoizedMergedChildContext=e,lr(fr),lr(hr),cr(hr,e)):lr(fr),cr(fr,n)}var Cr=null,kr=null,Sr=o.unstable_runWithPriority,xr=o.unstable_scheduleCallback,Lr=o.unstable_cancelCallback,Er=o.unstable_shouldYield,Nr=o.unstable_requestPaint,Dr=o.unstable_now,Mr=o.unstable_getCurrentPriorityLevel,Tr=o.unstable_ImmediatePriority,Or=o.unstable_UserBlockingPriority,Ir=o.unstable_NormalPriority,Ar=o.unstable_LowPriority,Pr=o.unstable_IdlePriority,Rr={},Zr=void 0!==Nr?Nr:function(){},Fr=null,jr=null,Hr=!1,Br=Dr(),zr=1e4>Br?Dr:function(){return Dr()-Br};function Wr(){switch(Mr()){case Tr:return 99;case Or:return 98;case Ir:return 97;case Ar:return 96;case Pr:return 95;default:throw Error(a(332))}}function Vr(e){switch(e){case 99:return Tr;case 98:return Or;case 97:return Ir;case 96:return Ar;case 95:return Pr;default:throw Error(a(332))}}function Yr(e,t){return e=Vr(e),Sr(e,t)}function Ur(e,t,n){return e=Vr(e),xr(e,t,n)}function Kr(){if(null!==jr){var e=jr;jr=null,Lr(e)}qr()}function qr(){if(!Hr&&null!==Fr){Hr=!0;var e=0;try{var t=Fr;Yr(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fr=null}catch(n){throw null!==Fr&&(Fr=Fr.slice(e+1)),xr(Tr,Kr),n}finally{Hr=!1}}}var Gr=w.ReactCurrentBatchConfig;function $r(e,t){if(e&&e.defaultProps){for(var n in t=r({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Qr=ur(null),Xr=null,Jr=null,eo=null;function to(){eo=Jr=Xr=null}function no(e){var t=Qr.current;lr(Qr),e.type._context._currentValue=t}function io(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ro(e,t){Xr=e,eo=Jr=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(Ra=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"===typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Jr){if(null===Xr)throw Error(a(308));Jr=t,Xr.dependencies={lanes:0,firstContext:t,responders:null}}else Jr=Jr.next=t;return e._currentValue}var ao=!1;function so(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function uo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function lo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function ho(e,t){var n=e.updateQueue,i=e.alternate;if(null!==i&&n===(i=i.updateQueue)){var r=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?r=o=a:o=o.next=a,n=n.next}while(null!==n);null===o?r=o=t:o=o.next=t}else r=o=t;return n={baseState:i.baseState,firstBaseUpdate:r,lastBaseUpdate:o,shared:i.shared,effects:i.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fo(e,t,n,i){var o=e.updateQueue;ao=!1;var a=o.firstBaseUpdate,s=o.lastBaseUpdate,u=o.shared.pending;if(null!==u){o.shared.pending=null;var l=u,c=l.next;l.next=null,null===s?a=c:s.next=c,s=l;var d=e.alternate;if(null!==d){var h=(d=d.updateQueue).lastBaseUpdate;h!==s&&(null===h?d.firstBaseUpdate=c:h.next=c,d.lastBaseUpdate=l)}}if(null!==a){for(h=o.baseState,s=0,d=c=l=null;;){u=a.lane;var f=a.eventTime;if((i&u)===u){null!==d&&(d=d.next={eventTime:f,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var p=e,v=a;switch(u=t,f=n,v.tag){case 1:if("function"===typeof(p=v.payload)){h=p.call(f,h,u);break e}h=p;break e;case 3:p.flags=-4097&p.flags|64;case 0:if(null===(u="function"===typeof(p=v.payload)?p.call(f,h,u):p)||void 0===u)break e;h=r({},h,u);break e;case 2:ao=!0}}null!==a.callback&&(e.flags|=32,null===(u=o.effects)?o.effects=[a]:u.push(a))}else f={eventTime:f,lane:u,tag:a.tag,payload:a.payload,callback:a.callback,next:null},null===d?(c=d=f,l=h):d=d.next=f,s|=u;if(null===(a=a.next)){if(null===(u=o.shared.pending))break;a=u.next,u.next=null,o.lastBaseUpdate=u,o.shared.pending=null}}null===d&&(l=h),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Bs|=s,e.lanes=s,e.memoizedState=h}}function po(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var i=e[t],r=i.callback;if(null!==r){if(i.callback=null,i=n,"function"!==typeof r)throw Error(a(191,r));r.call(i)}}}var vo=(new i.Component).refs;function go(e,t,n,i){n=null===(n=n(i,t=e.memoizedState))||void 0===n?t:r({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var mo={isMounted:function(e){return!!(e=e._reactInternals)&&Ge(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var i=hu(),r=fu(e),o=lo(i,r);o.payload=t,void 0!==n&&null!==n&&(o.callback=n),co(e,o),pu(e,r,i)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var i=hu(),r=fu(e),o=lo(i,r);o.tag=1,o.payload=t,void 0!==n&&null!==n&&(o.callback=n),co(e,o),pu(e,r,i)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=hu(),i=fu(e),r=lo(n,i);r.tag=2,void 0!==t&&null!==t&&(r.callback=t),co(e,r),pu(e,i,n)}};function _o(e,t,n,i,r,o,a){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(i,o,a):!t.prototype||!t.prototype.isPureReactComponent||(!di(n,i)||!di(r,o))}function yo(e,t,n){var i=!1,r=dr,o=t.contextType;return"object"===typeof o&&null!==o?o=oo(o):(r=gr(t)?pr:hr.current,o=(i=null!==(i=t.contextTypes)&&void 0!==i)?vr(e,r):dr),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=mo,e.stateNode=t,t._reactInternals=e,i&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=r,e.__reactInternalMemoizedMaskedChildContext=o),t}function bo(e,t,n,i){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,i),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,i),t.state!==e&&mo.enqueueReplaceState(t,t.state,null)}function wo(e,t,n,i){var r=e.stateNode;r.props=n,r.state=e.memoizedState,r.refs=vo,so(e);var o=t.contextType;"object"===typeof o&&null!==o?r.context=oo(o):(o=gr(t)?pr:hr.current,r.context=vr(e,o)),fo(e,n,r,i),r.state=e.memoizedState,"function"===typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),r.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof r.getSnapshotBeforeUpdate||"function"!==typeof r.UNSAFE_componentWillMount&&"function"!==typeof r.componentWillMount||(t=r.state,"function"===typeof r.componentWillMount&&r.componentWillMount(),"function"===typeof r.UNSAFE_componentWillMount&&r.UNSAFE_componentWillMount(),t!==r.state&&mo.enqueueReplaceState(r,r.state,null),fo(e,n,r,i),r.state=e.memoizedState),"function"===typeof r.componentDidMount&&(e.flags|=4)}var Co=Array.isArray;function ko(e,t,n){if(null!==(e=n.ref)&&"function"!==typeof e&&"object"!==typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var i=n.stateNode}if(!i)throw Error(a(147,e));var r=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===r?t.ref:(t=function(e){var t=i.refs;t===vo&&(t=i.refs={}),null===e?delete t[r]:t[r]=e},t._stringRef=r,t)}if("string"!==typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function So(e,t){if("textarea"!==e.type)throw Error(a(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function xo(e){function t(t,n){if(e){var i=t.lastEffect;null!==i?(i.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,i){if(!e)return null;for(;null!==i;)t(n,i),i=i.sibling;return null}function i(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function r(e,t){return(e=Uu(e,t)).index=0,e.sibling=null,e}function o(t,n,i){return t.index=i,e?null!==(i=t.alternate)?(i=i.index)<n?(t.flags=2,n):i:(t.flags=2,n):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function u(e,t,n,i){return null===t||6!==t.tag?((t=$u(n,e.mode,i)).return=e,t):((t=r(t,n)).return=e,t)}function l(e,t,n,i){return null!==t&&t.elementType===n.type?((i=r(t,n.props)).ref=ko(e,t,n),i.return=e,i):((i=Ku(n.type,n.key,n.props,null,e.mode,i)).ref=ko(e,t,n),i.return=e,i)}function c(e,t,n,i){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Qu(n,e.mode,i)).return=e,t):((t=r(t,n.children||[])).return=e,t)}function d(e,t,n,i,o){return null===t||7!==t.tag?((t=qu(n,e.mode,i,o)).return=e,t):((t=r(t,n)).return=e,t)}function h(e,t,n){if("string"===typeof t||"number"===typeof t)return(t=$u(""+t,e.mode,n)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case C:return(n=Ku(t.type,t.key,t.props,null,e.mode,n)).ref=ko(e,null,t),n.return=e,n;case k:return(t=Qu(t,e.mode,n)).return=e,t}if(Co(t)||z(t))return(t=qu(t,e.mode,n,null)).return=e,t;So(e,t)}return null}function f(e,t,n,i){var r=null!==t?t.key:null;if("string"===typeof n||"number"===typeof n)return null!==r?null:u(e,t,""+n,i);if("object"===typeof n&&null!==n){switch(n.$$typeof){case C:return n.key===r?n.type===S?d(e,t,n.props.children,i,r):l(e,t,n,i):null;case k:return n.key===r?c(e,t,n,i):null}if(Co(n)||z(n))return null!==r?null:d(e,t,n,i,null);So(e,n)}return null}function p(e,t,n,i,r){if("string"===typeof i||"number"===typeof i)return u(t,e=e.get(n)||null,""+i,r);if("object"===typeof i&&null!==i){switch(i.$$typeof){case C:return e=e.get(null===i.key?n:i.key)||null,i.type===S?d(t,e,i.props.children,r,i.key):l(t,e,i,r);case k:return c(t,e=e.get(null===i.key?n:i.key)||null,i,r)}if(Co(i)||z(i))return d(t,e=e.get(n)||null,i,r,null);So(t,i)}return null}function v(r,a,s,u){for(var l=null,c=null,d=a,v=a=0,g=null;null!==d&&v<s.length;v++){d.index>v?(g=d,d=null):g=d.sibling;var m=f(r,d,s[v],u);if(null===m){null===d&&(d=g);break}e&&d&&null===m.alternate&&t(r,d),a=o(m,a,v),null===c?l=m:c.sibling=m,c=m,d=g}if(v===s.length)return n(r,d),l;if(null===d){for(;v<s.length;v++)null!==(d=h(r,s[v],u))&&(a=o(d,a,v),null===c?l=d:c.sibling=d,c=d);return l}for(d=i(r,d);v<s.length;v++)null!==(g=p(d,r,v,s[v],u))&&(e&&null!==g.alternate&&d.delete(null===g.key?v:g.key),a=o(g,a,v),null===c?l=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(r,e)})),l}function g(r,s,u,l){var c=z(u);if("function"!==typeof c)throw Error(a(150));if(null==(u=c.call(u)))throw Error(a(151));for(var d=c=null,v=s,g=s=0,m=null,_=u.next();null!==v&&!_.done;g++,_=u.next()){v.index>g?(m=v,v=null):m=v.sibling;var y=f(r,v,_.value,l);if(null===y){null===v&&(v=m);break}e&&v&&null===y.alternate&&t(r,v),s=o(y,s,g),null===d?c=y:d.sibling=y,d=y,v=m}if(_.done)return n(r,v),c;if(null===v){for(;!_.done;g++,_=u.next())null!==(_=h(r,_.value,l))&&(s=o(_,s,g),null===d?c=_:d.sibling=_,d=_);return c}for(v=i(r,v);!_.done;g++,_=u.next())null!==(_=p(v,r,g,_.value,l))&&(e&&null!==_.alternate&&v.delete(null===_.key?g:_.key),s=o(_,s,g),null===d?c=_:d.sibling=_,d=_);return e&&v.forEach((function(e){return t(r,e)})),c}return function(e,i,o,u){var l="object"===typeof o&&null!==o&&o.type===S&&null===o.key;l&&(o=o.props.children);var c="object"===typeof o&&null!==o;if(c)switch(o.$$typeof){case C:e:{for(c=o.key,l=i;null!==l;){if(l.key===c){if(7===l.tag){if(o.type===S){n(e,l.sibling),(i=r(l,o.props.children)).return=e,e=i;break e}}else if(l.elementType===o.type){n(e,l.sibling),(i=r(l,o.props)).ref=ko(e,l,o),i.return=e,e=i;break e}n(e,l);break}t(e,l),l=l.sibling}o.type===S?((i=qu(o.props.children,e.mode,u,o.key)).return=e,e=i):((u=Ku(o.type,o.key,o.props,null,e.mode,u)).ref=ko(e,i,o),u.return=e,e=u)}return s(e);case k:e:{for(l=o.key;null!==i;){if(i.key===l){if(4===i.tag&&i.stateNode.containerInfo===o.containerInfo&&i.stateNode.implementation===o.implementation){n(e,i.sibling),(i=r(i,o.children||[])).return=e,e=i;break e}n(e,i);break}t(e,i),i=i.sibling}(i=Qu(o,e.mode,u)).return=e,e=i}return s(e)}if("string"===typeof o||"number"===typeof o)return o=""+o,null!==i&&6===i.tag?(n(e,i.sibling),(i=r(i,o)).return=e,e=i):(n(e,i),(i=$u(o,e.mode,u)).return=e,e=i),s(e);if(Co(o))return v(e,i,o,u);if(z(o))return g(e,i,o,u);if(c&&So(e,o),"undefined"===typeof o&&!l)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(a(152,K(e.type)||"Component"))}return n(e,i)}}var Lo=xo(!0),Eo=xo(!1),No={},Do=ur(No),Mo=ur(No),To=ur(No);function Oo(e){if(e===No)throw Error(a(174));return e}function Io(e,t){switch(cr(To,t),cr(Mo,e),cr(Do,No),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}lr(Do),cr(Do,t)}function Ao(){lr(Do),lr(Mo),lr(To)}function Po(e){Oo(To.current);var t=Oo(Do.current),n=fe(t,e.type);t!==n&&(cr(Mo,e),cr(Do,n))}function Ro(e){Mo.current===e&&(lr(Do),lr(Mo))}var Zo=ur(0);function Fo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,Ho=null,Bo=!1;function zo(e,t){var n=Vu(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Wo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Vo(e){if(Bo){var t=Ho;if(t){var n=t;if(!Wo(e,t)){if(!(t=Ki(n.nextSibling))||!Wo(e,t))return e.flags=-1025&e.flags|2,Bo=!1,void(jo=e);zo(jo,n)}jo=e,Ho=Ki(t.firstChild)}else e.flags=-1025&e.flags|2,Bo=!1,jo=e}}function Yo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Uo(e){if(e!==jo)return!1;if(!Bo)return Yo(e),Bo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Wi(t,e.memoizedProps))for(t=Ho;t;)zo(e,t),t=Ki(t.nextSibling);if(Yo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Ho=Ki(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Ho=null}}else Ho=jo?Ki(e.stateNode.nextSibling):null;return!0}function Ko(){Ho=jo=null,Bo=!1}var qo=[];function Go(){for(var e=0;e<qo.length;e++)qo[e]._workInProgressVersionPrimary=null;qo.length=0}var $o=w.ReactCurrentDispatcher,Qo=w.ReactCurrentBatchConfig,Xo=0,Jo=null,ea=null,ta=null,na=!1,ia=!1;function ra(){throw Error(a(321))}function oa(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!li(e[n],t[n]))return!1;return!0}function aa(e,t,n,i,r,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,$o.current=null===e||null===e.memoizedState?Oa:Ia,e=n(i,r),ia){o=0;do{if(ia=!1,!(25>o))throw Error(a(301));o+=1,ta=ea=null,t.updateQueue=null,$o.current=Aa,e=n(i,r)}while(ia)}if($o.current=Ta,t=null!==ea&&null!==ea.next,Xo=0,ta=ea=Jo=null,na=!1,t)throw Error(a(300));return e}function sa(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ta?Jo.memoizedState=ta=e:ta=ta.next=e,ta}function ua(){if(null===ea){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ea.next;var t=null===ta?Jo.memoizedState:ta.next;if(null!==t)ta=t,ea=e;else{if(null===e)throw Error(a(310));e={memoizedState:(ea=e).memoizedState,baseState:ea.baseState,baseQueue:ea.baseQueue,queue:ea.queue,next:null},null===ta?Jo.memoizedState=ta=e:ta=ta.next=e}return ta}function la(e,t){return"function"===typeof t?t(e):t}function ca(e){var t=ua(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var i=ea,r=i.baseQueue,o=n.pending;if(null!==o){if(null!==r){var s=r.next;r.next=o.next,o.next=s}i.baseQueue=r=o,n.pending=null}if(null!==r){r=r.next,i=i.baseState;var u=s=o=null,l=r;do{var c=l.lane;if((Xo&c)===c)null!==u&&(u=u.next={lane:0,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null}),i=l.eagerReducer===e?l.eagerState:e(i,l.action);else{var d={lane:c,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null};null===u?(s=u=d,o=i):u=u.next=d,Jo.lanes|=c,Bs|=c}l=l.next}while(null!==l&&l!==r);null===u?o=i:u.next=s,li(i,t.memoizedState)||(Ra=!0),t.memoizedState=i,t.baseState=o,t.baseQueue=u,n.lastRenderedState=i}return[t.memoizedState,n.dispatch]}function da(e){var t=ua(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var i=n.dispatch,r=n.pending,o=t.memoizedState;if(null!==r){n.pending=null;var s=r=r.next;do{o=e(o,s.action),s=s.next}while(s!==r);li(o,t.memoizedState)||(Ra=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,i]}function ha(e,t,n){var i=t._getVersion;i=i(t._source);var r=t._workInProgressVersionPrimary;if(null!==r?e=r===i:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=i,qo.push(t))),e)return n(t._source);throw qo.push(t),Error(a(350))}function fa(e,t,n,i){var r=Is;if(null===r)throw Error(a(349));var o=t._getVersion,s=o(t._source),u=$o.current,l=u.useState((function(){return ha(r,t,n)})),c=l[1],d=l[0];l=ta;var h=e.memoizedState,f=h.refs,p=f.getSnapshot,v=h.source;h=h.subscribe;var g=Jo;return e.memoizedState={refs:f,source:t,subscribe:i},u.useEffect((function(){f.getSnapshot=n,f.setSnapshot=c;var e=o(t._source);if(!li(s,e)){e=n(t._source),li(d,e)||(c(e),e=fu(g),r.mutableReadLanes|=e&r.pendingLanes),e=r.mutableReadLanes,r.entangledLanes|=e;for(var i=r.entanglements,a=e;0<a;){var u=31-Wt(a),l=1<<u;i[u]|=e,a&=~l}}}),[n,t,i]),u.useEffect((function(){return i(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var i=fu(g);r.mutableReadLanes|=i&r.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,i]),li(p,n)&&li(v,t)&&li(h,i)||((e={pending:null,dispatch:null,lastRenderedReducer:la,lastRenderedState:d}).dispatch=c=Ma.bind(null,Jo,e),l.queue=e,l.baseQueue=null,d=ha(r,t,n),l.memoizedState=l.baseState=d),d}function pa(e,t,n){return fa(ua(),e,t,n)}function va(e){var t=sa();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:la,lastRenderedState:e}).dispatch=Ma.bind(null,Jo,e),[t.memoizedState,e]}function ga(e,t,n,i){return e={tag:e,create:t,destroy:n,deps:i,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(i=n.next,n.next=e,e.next=i,t.lastEffect=e),e}function ma(e){return e={current:e},sa().memoizedState=e}function _a(){return ua().memoizedState}function ya(e,t,n,i){var r=sa();Jo.flags|=e,r.memoizedState=ga(1|t,n,void 0,void 0===i?null:i)}function ba(e,t,n,i){var r=ua();i=void 0===i?null:i;var o=void 0;if(null!==ea){var a=ea.memoizedState;if(o=a.destroy,null!==i&&oa(i,a.deps))return void ga(t,n,o,i)}Jo.flags|=e,r.memoizedState=ga(1|t,n,o,i)}function wa(e,t){return ya(516,4,e,t)}function Ca(e,t){return ba(516,4,e,t)}function ka(e,t){return ba(4,2,e,t)}function Sa(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function xa(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,ba(4,2,Sa.bind(null,t,e),n)}function La(){}function Ea(e,t){var n=ua();t=void 0===t?null:t;var i=n.memoizedState;return null!==i&&null!==t&&oa(t,i[1])?i[0]:(n.memoizedState=[e,t],e)}function Na(e,t){var n=ua();t=void 0===t?null:t;var i=n.memoizedState;return null!==i&&null!==t&&oa(t,i[1])?i[0]:(e=e(),n.memoizedState=[e,t],e)}function Da(e,t){var n=Wr();Yr(98>n?98:n,(function(){e(!0)})),Yr(97<n?97:n,(function(){var n=Qo.transition;Qo.transition=1;try{e(!1),t()}finally{Qo.transition=n}}))}function Ma(e,t,n){var i=hu(),r=fu(e),o={lane:r,action:n,eagerReducer:null,eagerState:null,next:null},a=t.pending;if(null===a?o.next=o:(o.next=a.next,a.next=o),t.pending=o,a=e.alternate,e===Jo||null!==a&&a===Jo)ia=na=!0;else{if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var s=t.lastRenderedState,u=a(s,n);if(o.eagerReducer=a,o.eagerState=u,li(u,s))return}catch(l){}pu(e,r,i)}}var Ta={readContext:oo,useCallback:ra,useContext:ra,useEffect:ra,useImperativeHandle:ra,useLayoutEffect:ra,useMemo:ra,useReducer:ra,useRef:ra,useState:ra,useDebugValue:ra,useDeferredValue:ra,useTransition:ra,useMutableSource:ra,useOpaqueIdentifier:ra,unstable_isNewReconciler:!1},Oa={readContext:oo,useCallback:function(e,t){return sa().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:wa,useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,ya(4,2,Sa.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ya(4,2,e,t)},useMemo:function(e,t){var n=sa();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var i=sa();return t=void 0!==n?n(t):t,i.memoizedState=i.baseState=t,e=(e=i.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ma.bind(null,Jo,e),[i.memoizedState,e]},useRef:ma,useState:va,useDebugValue:La,useDeferredValue:function(e){var t=va(e),n=t[0],i=t[1];return wa((function(){var t=Qo.transition;Qo.transition=1;try{i(e)}finally{Qo.transition=t}}),[e]),n},useTransition:function(){var e=va(!1),t=e[0];return ma(e=Da.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var i=sa();return i.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fa(i,e,t,n)},useOpaqueIdentifier:function(){if(Bo){var e=!1,t=function(e){return{$$typeof:P,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Gi++).toString(36))),Error(a(355))})),n=va(t)[1];return 0===(2&Jo.mode)&&(Jo.flags|=516,ga(5,(function(){n("r:"+(Gi++).toString(36))}),void 0,null)),t}return va(t="r:"+(Gi++).toString(36)),t},unstable_isNewReconciler:!1},Ia={readContext:oo,useCallback:Ea,useContext:oo,useEffect:Ca,useImperativeHandle:xa,useLayoutEffect:ka,useMemo:Na,useReducer:ca,useRef:_a,useState:function(){return ca(la)},useDebugValue:La,useDeferredValue:function(e){var t=ca(la),n=t[0],i=t[1];return Ca((function(){var t=Qo.transition;Qo.transition=1;try{i(e)}finally{Qo.transition=t}}),[e]),n},useTransition:function(){var e=ca(la)[0];return[_a().current,e]},useMutableSource:pa,useOpaqueIdentifier:function(){return ca(la)[0]},unstable_isNewReconciler:!1},Aa={readContext:oo,useCallback:Ea,useContext:oo,useEffect:Ca,useImperativeHandle:xa,useLayoutEffect:ka,useMemo:Na,useReducer:da,useRef:_a,useState:function(){return da(la)},useDebugValue:La,useDeferredValue:function(e){var t=da(la),n=t[0],i=t[1];return Ca((function(){var t=Qo.transition;Qo.transition=1;try{i(e)}finally{Qo.transition=t}}),[e]),n},useTransition:function(){var e=da(la)[0];return[_a().current,e]},useMutableSource:pa,useOpaqueIdentifier:function(){return da(la)[0]},unstable_isNewReconciler:!1},Pa=w.ReactCurrentOwner,Ra=!1;function Za(e,t,n,i){t.child=null===e?Eo(t,null,n,i):Lo(t,e.child,n,i)}function Fa(e,t,n,i,r){n=n.render;var o=t.ref;return ro(t,r),i=aa(e,t,n,i,o,r),null===e||Ra?(t.flags|=1,Za(e,t,i,r),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~r,os(e,t,r))}function ja(e,t,n,i,r,o){if(null===e){var a=n.type;return"function"!==typeof a||Yu(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ku(n.type,null,i,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Ha(e,t,a,i,r,o))}return a=e.child,0===(r&o)&&(r=a.memoizedProps,(n=null!==(n=n.compare)?n:di)(r,i)&&e.ref===t.ref)?os(e,t,o):(t.flags|=1,(e=Uu(a,i)).ref=t.ref,e.return=t,t.child=e)}function Ha(e,t,n,i,r,o){if(null!==e&&di(e.memoizedProps,i)&&e.ref===t.ref){if(Ra=!1,0===(o&r))return t.lanes=e.lanes,os(e,t,o);0!==(16384&e.flags)&&(Ra=!0)}return Wa(e,t,n,i,o)}function Ba(e,t,n){var i=t.pendingProps,r=i.children,o=null!==e?e.memoizedState:null;if("hidden"===i.mode||"unstable-defer-without-hiding"===i.mode)if(0===(4&t.mode))t.memoizedState={baseLanes:0},Cu(t,n);else{if(0===(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Cu(t,e),null;t.memoizedState={baseLanes:0},Cu(t,null!==o?o.baseLanes:n)}else null!==o?(i=o.baseLanes|n,t.memoizedState=null):i=n,Cu(t,i);return Za(e,t,r,n),t.child}function za(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Wa(e,t,n,i,r){var o=gr(n)?pr:hr.current;return o=vr(t,o),ro(t,r),n=aa(e,t,n,i,o,r),null===e||Ra?(t.flags|=1,Za(e,t,n,r),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~r,os(e,t,r))}function Va(e,t,n,i,r){if(gr(n)){var o=!0;br(t)}else o=!1;if(ro(t,r),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,i),wo(t,n,i,r),i=!0;else if(null===e){var a=t.stateNode,s=t.memoizedProps;a.props=s;var u=a.context,l=n.contextType;"object"===typeof l&&null!==l?l=oo(l):l=vr(t,l=gr(n)?pr:hr.current);var c=n.getDerivedStateFromProps,d="function"===typeof c||"function"===typeof a.getSnapshotBeforeUpdate;d||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(s!==i||u!==l)&&bo(t,a,i,l),ao=!1;var h=t.memoizedState;a.state=h,fo(t,i,a,r),u=t.memoizedState,s!==i||h!==u||fr.current||ao?("function"===typeof c&&(go(t,n,c,i),u=t.memoizedState),(s=ao||_o(t,n,s,i,h,u,l))?(d||"function"!==typeof a.UNSAFE_componentWillMount&&"function"!==typeof a.componentWillMount||("function"===typeof a.componentWillMount&&a.componentWillMount(),"function"===typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"===typeof a.componentDidMount&&(t.flags|=4)):("function"===typeof a.componentDidMount&&(t.flags|=4),t.memoizedProps=i,t.memoizedState=u),a.props=i,a.state=u,a.context=l,i=s):("function"===typeof a.componentDidMount&&(t.flags|=4),i=!1)}else{a=t.stateNode,uo(e,t),s=t.memoizedProps,l=t.type===t.elementType?s:$r(t.type,s),a.props=l,d=t.pendingProps,h=a.context,"object"===typeof(u=n.contextType)&&null!==u?u=oo(u):u=vr(t,u=gr(n)?pr:hr.current);var f=n.getDerivedStateFromProps;(c="function"===typeof f||"function"===typeof a.getSnapshotBeforeUpdate)||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(s!==d||h!==u)&&bo(t,a,i,u),ao=!1,h=t.memoizedState,a.state=h,fo(t,i,a,r);var p=t.memoizedState;s!==d||h!==p||fr.current||ao?("function"===typeof f&&(go(t,n,f,i),p=t.memoizedState),(l=ao||_o(t,n,l,i,h,p,u))?(c||"function"!==typeof a.UNSAFE_componentWillUpdate&&"function"!==typeof a.componentWillUpdate||("function"===typeof a.componentWillUpdate&&a.componentWillUpdate(i,p,u),"function"===typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(i,p,u)),"function"===typeof a.componentDidUpdate&&(t.flags|=4),"function"===typeof a.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!==typeof a.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!==typeof a.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=256),t.memoizedProps=i,t.memoizedState=p),a.props=i,a.state=p,a.context=u,i=l):("function"!==typeof a.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!==typeof a.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=256),i=!1)}return Ya(e,t,n,i,o,r)}function Ya(e,t,n,i,r,o){za(e,t);var a=0!==(64&t.flags);if(!i&&!a)return r&&wr(t,n,!1),os(e,t,o);i=t.stateNode,Pa.current=t;var s=a&&"function"!==typeof n.getDerivedStateFromError?null:i.render();return t.flags|=1,null!==e&&a?(t.child=Lo(t,e.child,null,o),t.child=Lo(t,null,s,o)):Za(e,t,s,o),t.memoizedState=i.state,r&&wr(t,n,!0),t.child}function Ua(e){var t=e.stateNode;t.pendingContext?_r(0,t.pendingContext,t.pendingContext!==t.context):t.context&&_r(0,t.context,!1),Io(e,t.containerInfo)}var Ka,qa,Ga,$a,Qa={dehydrated:null,retryLane:0};function Xa(e,t,n){var i,r=t.pendingProps,o=Zo.current,a=!1;return(i=0!==(64&t.flags))||(i=(null===e||null!==e.memoizedState)&&0!==(2&o)),i?(a=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===r.fallback||!0===r.unstable_avoidThisFallback||(o|=1),cr(Zo,1&o),null===e?(void 0!==r.fallback&&Vo(t),e=r.children,o=r.fallback,a?(e=Ja(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qa,e):"number"===typeof r.unstable_expectedLoadTime?(e=Ja(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qa,t.lanes=33554432,e):((n=Gu({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,a?(r=ts(e,t,r.children,r.fallback,n),a=t.child,o=e.child.memoizedState,a.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},a.childLanes=e.childLanes&~n,t.memoizedState=Qa,r):(n=es(e,t,r.children,n),t.memoizedState=null,n))}function Ja(e,t,n,i){var r=e.mode,o=e.child;return t={mode:"hidden",children:t},0===(2&r)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Gu(t,r,0,null),n=qu(n,r,i,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function es(e,t,n,i){var r=e.child;return e=r.sibling,n=Uu(r,{mode:"visible",children:n}),0===(2&t.mode)&&(n.lanes=i),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function ts(e,t,n,i,r){var o=t.mode,a=e.child;e=a.sibling;var s={mode:"hidden",children:n};return 0===(2&o)&&t.child!==a?((n=t.child).childLanes=0,n.pendingProps=s,null!==(a=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=a,a.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Uu(a,s),null!==e?i=Uu(e,i):(i=qu(i,o,r,null)).flags|=2,i.return=t,n.return=t,n.sibling=i,t.child=n,i}function ns(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),io(e.return,t)}function is(e,t,n,i,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:i,tail:n,tailMode:r,lastEffect:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=i,a.tail=n,a.tailMode=r,a.lastEffect=o)}function rs(e,t,n){var i=t.pendingProps,r=i.revealOrder,o=i.tail;if(Za(e,t,i.children,n),0!==(2&(i=Zo.current)))i=1&i|2,t.flags|=64;else{if(null!==e&&0!==(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ns(e,n);else if(19===e.tag)ns(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}i&=1}if(cr(Zo,i),0===(2&t.mode))t.memoizedState=null;else switch(r){case"forwards":for(n=t.child,r=null;null!==n;)null!==(e=n.alternate)&&null===Fo(e)&&(r=n),n=n.sibling;null===(n=r)?(r=t.child,t.child=null):(r=n.sibling,n.sibling=null),is(t,!1,r,n,o,t.lastEffect);break;case"backwards":for(n=null,r=t.child,t.child=null;null!==r;){if(null!==(e=r.alternate)&&null===Fo(e)){t.child=r;break}e=r.sibling,r.sibling=n,n=r,r=e}is(t,!0,n,null,o,t.lastEffect);break;case"together":is(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function os(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Bs|=t.lanes,0!==(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Uu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Uu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function as(e,t){if(!Bo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var i=null;null!==n;)null!==n.alternate&&(i=n),n=n.sibling;null===i?t||null===e.tail?e.tail=null:e.tail.sibling=null:i.sibling=null}}function ss(e,t,n){var i=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return gr(t.type)&&mr(),null;case 3:return Ao(),lr(fr),lr(hr),Go(),(i=t.stateNode).pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),null!==e&&null!==e.child||(Uo(t)?t.flags|=4:i.hydrate||(t.flags|=256)),qa(t),null;case 5:Ro(t);var o=Oo(To.current);if(n=t.type,null!==e&&null!=t.stateNode)Ga(e,t,n,i,o),e.ref!==t.ref&&(t.flags|=128);else{if(!i){if(null===t.stateNode)throw Error(a(166));return null}if(e=Oo(Do.current),Uo(t)){i=t.stateNode,n=t.type;var s=t.memoizedProps;switch(i[Qi]=t,i[Xi]=s,n){case"dialog":Di("cancel",i),Di("close",i);break;case"iframe":case"object":case"embed":Di("load",i);break;case"video":case"audio":for(e=0;e<xi.length;e++)Di(xi[e],i);break;case"source":Di("error",i);break;case"img":case"image":case"link":Di("error",i),Di("load",i);break;case"details":Di("toggle",i);break;case"input":ee(i,s),Di("invalid",i);break;case"select":i._wrapperState={wasMultiple:!!s.multiple},Di("invalid",i);break;case"textarea":ue(i,s),Di("invalid",i)}for(var l in ke(n,s),e=null,s)s.hasOwnProperty(l)&&(o=s[l],"children"===l?"string"===typeof o?i.textContent!==o&&(e=["children",o]):"number"===typeof o&&i.textContent!==""+o&&(e=["children",""+o]):u.hasOwnProperty(l)&&null!=o&&"onScroll"===l&&Di("scroll",i));switch(n){case"input":$(i),ie(i,s,!0);break;case"textarea":$(i),ce(i);break;case"select":case"option":break;default:"function"===typeof s.onClick&&(i.onclick=ji)}i=e,t.updateQueue=i,null!==i&&(t.flags|=4)}else{switch(l=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=he(n)),e===de.html?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof i.is?e=l.createElement(n,{is:i.is}):(e=l.createElement(n),"select"===n&&(l=e,i.multiple?l.multiple=!0:i.size&&(l.size=i.size))):e=l.createElementNS(e,n),e[Qi]=t,e[Xi]=i,Ka(e,t,!1,!1),t.stateNode=e,l=Se(n,i),n){case"dialog":Di("cancel",e),Di("close",e),o=i;break;case"iframe":case"object":case"embed":Di("load",e),o=i;break;case"video":case"audio":for(o=0;o<xi.length;o++)Di(xi[o],e);o=i;break;case"source":Di("error",e),o=i;break;case"img":case"image":case"link":Di("error",e),Di("load",e),o=i;break;case"details":Di("toggle",e),o=i;break;case"input":ee(e,i),o=J(e,i),Di("invalid",e);break;case"option":o=oe(e,i);break;case"select":e._wrapperState={wasMultiple:!!i.multiple},o=r({},i,{value:void 0}),Di("invalid",e);break;case"textarea":ue(e,i),o=se(e,i),Di("invalid",e);break;default:o=i}ke(n,o);var c=o;for(s in c)if(c.hasOwnProperty(s)){var d=c[s];"style"===s?we(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===s?"string"===typeof d?("textarea"!==n||""!==d)&&me(e,d):"number"===typeof d&&me(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(u.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Di("scroll",e):null!=d&&b(e,s,d,l))}switch(n){case"input":$(e),ie(e,i,!1);break;case"textarea":$(e),ce(e);break;case"option":null!=i.value&&e.setAttribute("value",""+q(i.value));break;case"select":e.multiple=!!i.multiple,null!=(s=i.value)?ae(e,!!i.multiple,s,!1):null!=i.defaultValue&&ae(e,!!i.multiple,i.defaultValue,!0);break;default:"function"===typeof o.onClick&&(e.onclick=ji)}zi(n,i)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)$a(e,t,e.memoizedProps,i);else{if("string"!==typeof i&&null===t.stateNode)throw Error(a(166));n=Oo(To.current),Oo(Do.current),Uo(t)?(i=t.stateNode,n=t.memoizedProps,i[Qi]=t,i.nodeValue!==n&&(t.flags|=4)):((i=(9===n.nodeType?n:n.ownerDocument).createTextNode(i))[Qi]=t,t.stateNode=i)}return null;case 13:return lr(Zo),i=t.memoizedState,0!==(64&t.flags)?(t.lanes=n,t):(i=null!==i,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Uo(t):n=null!==e.memoizedState,i&&!n&&0!==(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!==(1&Zo.current)?0===Fs&&(Fs=3):(0!==Fs&&3!==Fs||(Fs=4),null===Is||0===(134217727&Bs)&&0===(134217727&zs)||_u(Is,Ps))),(i||n)&&(t.flags|=4),null);case 4:return Ao(),qa(t),null===e&&Ti(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(lr(Zo),null===(i=t.memoizedState))return null;if(s=0!==(64&t.flags),null===(l=i.rendering))if(s)as(i,!1);else{if(0!==Fs||null!==e&&0!==(64&e.flags))for(e=t.child;null!==e;){if(null!==(l=Fo(e))){for(t.flags|=64,as(i,!1),null!==(s=l.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===i.lastEffect&&(t.firstEffect=null),t.lastEffect=i.lastEffect,i=n,n=t.child;null!==n;)e=i,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(l=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=l.childLanes,s.lanes=l.lanes,s.child=l.child,s.memoizedProps=l.memoizedProps,s.memoizedState=l.memoizedState,s.updateQueue=l.updateQueue,s.type=l.type,e=l.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return cr(Zo,1&Zo.current|2),t.child}e=e.sibling}null!==i.tail&&zr()>Us&&(t.flags|=64,s=!0,as(i,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=Fo(l))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),as(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!Bo)return null!==(t=t.lastEffect=i.lastEffect)&&(t.nextEffect=null),null}else 2*zr()-i.renderingStartTime>Us&&1073741824!==n&&(t.flags|=64,s=!0,as(i,!1),t.lanes=33554432);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(n=i.tail,i.rendering=n,i.tail=n.sibling,i.lastEffect=t.lastEffect,i.renderingStartTime=zr(),n.sibling=null,t=Zo.current,cr(Zo,s?1&t|2:1&t),n):null;case 23:case 24:return ku(),null!==e&&null!==e.memoizedState!==(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==i.mode&&(t.flags|=4),null}throw Error(a(156,t.tag))}function us(e){switch(e.tag){case 1:gr(e.type)&&mr();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Ao(),lr(fr),lr(hr),Go(),0!==(64&(t=e.flags)))throw Error(a(285));return e.flags=-4097&t|64,e;case 5:return Ro(e),null;case 13:return lr(Zo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return lr(Zo),null;case 4:return Ao(),null;case 10:return no(e),null;case 23:case 24:return ku(),null;default:return null}}function ls(e,t){try{var n="",i=t;do{n+=U(i),i=i.return}while(i);var r=n}catch(o){r="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:r}}function cs(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Ka=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},qa=function(){},Ga=function(e,t,n,i){var o=e.memoizedProps;if(o!==i){e=t.stateNode,Oo(Do.current);var a,s=null;switch(n){case"input":o=J(e,o),i=J(e,i),s=[];break;case"option":o=oe(e,o),i=oe(e,i),s=[];break;case"select":o=r({},o,{value:void 0}),i=r({},i,{value:void 0}),s=[];break;case"textarea":o=se(e,o),i=se(e,i),s=[];break;default:"function"!==typeof o.onClick&&"function"===typeof i.onClick&&(e.onclick=ji)}for(d in ke(n,i),n=null,o)if(!i.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var l=o[d];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(u.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in i){var c=i[d];if(l=null!=o?o[d]:void 0,i.hasOwnProperty(d)&&c!==l&&(null!=c||null!=l))if("style"===d)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(s||(s=[]),s.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(s=s||[]).push(d,c)):"children"===d?"string"!==typeof c&&"number"!==typeof c||(s=s||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(u.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Di("scroll",e),s||l===c||(s=[])):"object"===typeof c&&null!==c&&c.$$typeof===P?c.toString():(s=s||[]).push(d,c))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},$a=function(e,t,n,i){n!==i&&(t.flags|=4)};var ds="function"===typeof WeakMap?WeakMap:Map;function hs(e,t,n){(n=lo(-1,n)).tag=3,n.payload={element:null};var i=t.value;return n.callback=function(){$s||($s=!0,Qs=i),cs(0,t)},n}function fs(e,t,n){(n=lo(-1,n)).tag=3;var i=e.type.getDerivedStateFromError;if("function"===typeof i){var r=t.value;n.payload=function(){return cs(0,t),i(r)}}var o=e.stateNode;return null!==o&&"function"===typeof o.componentDidCatch&&(n.callback=function(){"function"!==typeof i&&(null===Xs?Xs=new Set([this]):Xs.add(this),cs(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ps="function"===typeof WeakSet?WeakSet:Set;function vs(e){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(n){Hu(e,n)}else t.current=null}function gs(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,i=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:$r(t.type,n),i),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Ui(t.stateNode.containerInfo))}throw Error(a(163))}function ms(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3===(3&e.tag)){var i=e.create;e.destroy=i()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var r=e;i=r.next,0!==(4&(r=r.tag))&&0!==(1&r)&&(Zu(n,e),Ru(n,e)),e=i}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(i=n.elementType===n.type?t.memoizedProps:$r(n.type,t.memoizedProps),e.componentDidUpdate(i,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&po(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}po(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&zi(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&wt(n)))))}throw Error(a(163))}function _s(e,t){for(var n=e;;){if(5===n.tag){var i=n.stateNode;if(t)"function"===typeof(i=i.style).setProperty?i.setProperty("display","none","important"):i.display="none";else{i=n.stateNode;var r=n.memoizedProps.style;r=void 0!==r&&null!==r&&r.hasOwnProperty("display")?r.display:null,i.style.display=be("display",r)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function ys(e,t){if(kr&&"function"===typeof kr.onCommitFiberUnmount)try{kr.onCommitFiberUnmount(Cr,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var i=n,r=i.destroy;if(i=i.tag,void 0!==r)if(0!==(4&i))Zu(t,n);else{i=t;try{r()}catch(o){Hu(i,o)}}n=n.next}while(n!==e)}break;case 1:if(vs(t),"function"===typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){Hu(t,o)}break;case 5:vs(t);break;case 4:xs(e,t)}}function bs(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ws(e){return 5===e.tag||3===e.tag||4===e.tag}function Cs(e){e:{for(var t=e.return;null!==t;){if(ws(t))break e;t=t.return}throw Error(a(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var i=!1;break;case 3:case 4:t=t.containerInfo,i=!0;break;default:throw Error(a(161))}16&n.flags&&(me(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||ws(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}i?ks(e,n,t):Ss(e,n,t)}function ks(e,t,n){var i=e.tag,r=5===i||6===i;if(r)e=r?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=ji));else if(4!==i&&null!==(e=e.child))for(ks(e,t,n),e=e.sibling;null!==e;)ks(e,t,n),e=e.sibling}function Ss(e,t,n){var i=e.tag,r=5===i||6===i;if(r)e=r?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==i&&null!==(e=e.child))for(Ss(e,t,n),e=e.sibling;null!==e;)Ss(e,t,n),e=e.sibling}function xs(e,t){for(var n,i,r=t,o=!1;;){if(!o){o=r.return;e:for(;;){if(null===o)throw Error(a(160));switch(n=o.stateNode,o.tag){case 5:i=!1;break e;case 3:case 4:n=n.containerInfo,i=!0;break e}o=o.return}o=!0}if(5===r.tag||6===r.tag){e:for(var s=e,u=r,l=u;;)if(ys(s,l),null!==l.child&&4!==l.tag)l.child.return=l,l=l.child;else{if(l===u)break e;for(;null===l.sibling;){if(null===l.return||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}i?(s=n,u=r.stateNode,8===s.nodeType?s.parentNode.removeChild(u):s.removeChild(u)):n.removeChild(r.stateNode)}else if(4===r.tag){if(null!==r.child){n=r.stateNode.containerInfo,i=!0,r.child.return=r,r=r.child;continue}}else if(ys(e,r),null!==r.child){r.child.return=r,r=r.child;continue}if(r===t)break;for(;null===r.sibling;){if(null===r.return||r.return===t)return;4===(r=r.return).tag&&(o=!1)}r.sibling.return=r.return,r=r.sibling}}function Ls(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var i=n=n.next;do{3===(3&i.tag)&&(e=i.destroy,i.destroy=void 0,void 0!==e&&e()),i=i.next}while(i!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){i=t.memoizedProps;var r=null!==e?e.memoizedProps:i;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xi]=i,"input"===e&&"radio"===i.type&&null!=i.name&&te(n,i),Se(e,r),t=Se(e,i),r=0;r<o.length;r+=2){var s=o[r],u=o[r+1];"style"===s?we(n,u):"dangerouslySetInnerHTML"===s?ge(n,u):"children"===s?me(n,u):b(n,s,u,t)}switch(e){case"input":ne(n,i);break;case"textarea":le(n,i);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!i.multiple,null!=(o=i.value)?ae(n,!!i.multiple,o,!1):e!==!!i.multiple&&(null!=i.defaultValue?ae(n,!!i.multiple,i.defaultValue,!0):ae(n,!!i.multiple,i.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(a(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,wt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Ys=zr(),_s(t.child,!0)),void Es(t);case 19:return void Es(t);case 23:case 24:return void _s(t,null!==t.memoizedState)}throw Error(a(163))}function Es(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ps),t.forEach((function(t){var i=zu.bind(null,e,t);n.has(t)||(n.add(t),t.then(i,i))}))}}function Ns(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ds=Math.ceil,Ms=w.ReactCurrentDispatcher,Ts=w.ReactCurrentOwner,Os=0,Is=null,As=null,Ps=0,Rs=0,Zs=ur(0),Fs=0,js=null,Hs=0,Bs=0,zs=0,Ws=0,Vs=null,Ys=0,Us=1/0;function Ks(){Us=zr()+500}var qs,Gs=null,$s=!1,Qs=null,Xs=null,Js=!1,eu=null,tu=90,nu=[],iu=[],ru=null,ou=0,au=null,su=-1,uu=0,lu=0,cu=null,du=!1;function hu(){return 0!==(48&Os)?zr():-1!==su?su:su=zr()}function fu(e){if(0===(2&(e=e.mode)))return 1;if(0===(4&e))return 99===Wr()?1:2;if(0===uu&&(uu=Hs),0!==Gr.transition){0!==lu&&(lu=null!==Vs?Vs.pendingLanes:0),e=uu;var t=4186112&~lu;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Wr(),0!==(4&Os)&&98===e?e=jt(12,uu):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),uu),e}function pu(e,t,n){if(50<ou)throw ou=0,au=null,Error(a(185));if(null===(e=vu(e,t)))return null;zt(e,t,n),e===Is&&(zs|=t,4===Fs&&_u(e,Ps));var i=Wr();1===t?0!==(8&Os)&&0===(48&Os)?yu(e):(gu(e,n),0===Os&&(Ks(),Kr())):(0===(4&Os)||98!==i&&99!==i||(null===ru?ru=new Set([e]):ru.add(e)),gu(e,n)),Vs=e}function vu(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gu(e,t){for(var n=e.callbackNode,i=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,s=e.pendingLanes;0<s;){var u=31-Wt(s),l=1<<u,c=o[u];if(-1===c){if(0===(l&i)||0!==(l&r)){c=t,Rt(l);var d=Pt;o[u]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=l);s&=~l}if(i=Zt(e,e===Is?Ps:0),t=Pt,0===i)null!==n&&(n!==Rr&&Lr(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Rr&&Lr(n)}15===t?(n=yu.bind(null,e),null===Fr?(Fr=[n],jr=xr(Tr,qr)):Fr.push(n),n=Rr):14===t?n=Ur(99,yu.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(a(358,e))}}(t),n=Ur(n,mu.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function mu(e){if(su=-1,lu=uu=0,0!==(48&Os))throw Error(a(327));var t=e.callbackNode;if(Pu()&&e.callbackNode!==t)return null;var n=Zt(e,e===Is?Ps:0);if(0===n)return null;var i=n,r=Os;Os|=16;var o=Lu();for(Is===e&&Ps===i||(Ks(),Su(e,i));;)try{Du();break}catch(u){xu(e,u)}if(to(),Ms.current=o,Os=r,null!==As?i=0:(Is=null,Ps=0,i=Fs),0!==(Hs&zs))Su(e,0);else if(0!==i){if(2===i&&(Os|=64,e.hydrate&&(e.hydrate=!1,Ui(e.containerInfo)),0!==(n=Ft(e))&&(i=Eu(e,n))),1===i)throw t=js,Su(e,0),_u(e,n),gu(e,zr()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,i){case 0:case 1:throw Error(a(345));case 2:case 5:Ou(e);break;case 3:if(_u(e,n),(62914560&n)===n&&10<(i=Ys+500-zr())){if(0!==Zt(e,0))break;if(((r=e.suspendedLanes)&n)!==n){hu(),e.pingedLanes|=e.suspendedLanes&r;break}e.timeoutHandle=Vi(Ou.bind(null,e),i);break}Ou(e);break;case 4:if(_u(e,n),(4186112&n)===n)break;for(i=e.eventTimes,r=-1;0<n;){var s=31-Wt(n);o=1<<s,(s=i[s])>r&&(r=s),n&=~o}if(n=r,10<(n=(120>(n=zr()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ds(n/1960))-n)){e.timeoutHandle=Vi(Ou.bind(null,e),n);break}Ou(e);break;default:throw Error(a(329))}}return gu(e,zr()),e.callbackNode===t?mu.bind(null,e):null}function _u(e,t){for(t&=~Ws,t&=~zs,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Wt(t),i=1<<n;e[n]=-1,t&=~i}}function yu(e){if(0!==(48&Os))throw Error(a(327));if(Pu(),e===Is&&0!==(e.expiredLanes&Ps)){var t=Ps,n=Eu(e,t);0!==(Hs&zs)&&(n=Eu(e,t=Zt(e,t)))}else n=Eu(e,t=Zt(e,0));if(0!==e.tag&&2===n&&(Os|=64,e.hydrate&&(e.hydrate=!1,Ui(e.containerInfo)),0!==(t=Ft(e))&&(n=Eu(e,t))),1===n)throw n=js,Su(e,0),_u(e,t),gu(e,zr()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ou(e),gu(e,zr()),null}function bu(e,t){var n=Os;Os|=1;try{return e(t)}finally{0===(Os=n)&&(Ks(),Kr())}}function wu(e,t){var n=Os;Os&=-2,Os|=8;try{return e(t)}finally{0===(Os=n)&&(Ks(),Kr())}}function Cu(e,t){cr(Zs,Rs),Rs|=t,Hs|=t}function ku(){Rs=Zs.current,lr(Zs)}function Su(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Yi(n)),null!==As)for(n=As.return;null!==n;){var i=n;switch(i.tag){case 1:null!==(i=i.type.childContextTypes)&&void 0!==i&&mr();break;case 3:Ao(),lr(fr),lr(hr),Go();break;case 5:Ro(i);break;case 4:Ao();break;case 13:case 19:lr(Zo);break;case 10:no(i);break;case 23:case 24:ku()}n=n.return}Is=e,As=Uu(e.current,null),Ps=Rs=Hs=t,Fs=0,js=null,Ws=zs=Bs=0}function xu(e,t){for(;;){var n=As;try{if(to(),$o.current=Ta,na){for(var i=Jo.memoizedState;null!==i;){var r=i.queue;null!==r&&(r.pending=null),i=i.next}na=!1}if(Xo=0,ta=ea=Jo=null,ia=!1,Ts.current=null,null===n||null===n.return){Fs=1,js=t,As=null;break}e:{var o=e,a=n.return,s=n,u=t;if(t=Ps,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==u&&"object"===typeof u&&"function"===typeof u.then){var l=u;if(0===(2&s.mode)){var c=s.alternate;c?(s.updateQueue=c.updateQueue,s.memoizedState=c.memoizedState,s.lanes=c.lanes):(s.updateQueue=null,s.memoizedState=null)}var d=0!==(1&Zo.current),h=a;do{var f;if(f=13===h.tag){var p=h.memoizedState;if(null!==p)f=null!==p.dehydrated;else{var v=h.memoizedProps;f=void 0!==v.fallback&&(!0!==v.unstable_avoidThisFallback||!d)}}if(f){var g=h.updateQueue;if(null===g){var m=new Set;m.add(l),h.updateQueue=m}else g.add(l);if(0===(2&h.mode)){if(h.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var _=lo(-1,1);_.tag=2,co(s,_)}s.lanes|=1;break e}u=void 0,s=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new ds,u=new Set,y.set(l,u)):void 0===(u=y.get(l))&&(u=new Set,y.set(l,u)),!u.has(s)){u.add(s);var b=Bu.bind(null,o,l,s);l.then(b,b)}h.flags|=4096,h.lanes=t;break e}h=h.return}while(null!==h);u=Error((K(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fs&&(Fs=2),u=ls(u,s),h=a;do{switch(h.tag){case 3:o=u,h.flags|=4096,t&=-t,h.lanes|=t,ho(h,hs(0,o,t));break e;case 1:o=u;var w=h.type,C=h.stateNode;if(0===(64&h.flags)&&("function"===typeof w.getDerivedStateFromError||null!==C&&"function"===typeof C.componentDidCatch&&(null===Xs||!Xs.has(C)))){h.flags|=4096,t&=-t,h.lanes|=t,ho(h,fs(h,o,t));break e}}h=h.return}while(null!==h)}Tu(n)}catch(k){t=k,As===n&&null!==n&&(As=n=n.return);continue}break}}function Lu(){var e=Ms.current;return Ms.current=Ta,null===e?Ta:e}function Eu(e,t){var n=Os;Os|=16;var i=Lu();for(Is===e&&Ps===t||Su(e,t);;)try{Nu();break}catch(r){xu(e,r)}if(to(),Os=n,Ms.current=i,null!==As)throw Error(a(261));return Is=null,Ps=0,Fs}function Nu(){for(;null!==As;)Mu(As)}function Du(){for(;null!==As&&!Er();)Mu(As)}function Mu(e){var t=qs(e.alternate,e,Rs);e.memoizedProps=e.pendingProps,null===t?Tu(e):As=t,Ts.current=null}function Tu(e){var t=e;do{var n=t.alternate;if(e=t.return,0===(2048&t.flags)){if(null!==(n=ss(n,t,Rs)))return void(As=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!==(1073741824&Rs)||0===(4&n.mode)){for(var i=0,r=n.child;null!==r;)i|=r.lanes|r.childLanes,r=r.sibling;n.childLanes=i}null!==e&&0===(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=us(t)))return n.flags&=2047,void(As=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(As=t);As=t=e}while(null!==t);0===Fs&&(Fs=5)}function Ou(e){var t=Wr();return Yr(99,Iu.bind(null,e,t)),null}function Iu(e,t){do{Pu()}while(null!==eu);if(0!==(48&Os))throw Error(a(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null;var i=n.lanes|n.childLanes,r=i,o=e.pendingLanes&~r;e.pendingLanes=r,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=r,e.mutableReadLanes&=r,e.entangledLanes&=r,r=e.entanglements;for(var s=e.eventTimes,u=e.expirationTimes;0<o;){var l=31-Wt(o),c=1<<l;r[l]=0,s[l]=-1,u[l]=-1,o&=~c}if(null!==ru&&0===(24&i)&&ru.has(e)&&ru.delete(e),e===Is&&(As=Is=null,Ps=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,i=n.firstEffect):i=n:i=n.firstEffect,null!==i){if(r=Os,Os|=32,Ts.current=null,Hi=qt,gi(s=vi())){if("selectionStart"in s)u={start:s.selectionStart,end:s.selectionEnd};else e:if(u=(u=s.ownerDocument)&&u.defaultView||window,(c=u.getSelection&&u.getSelection())&&0!==c.rangeCount){u=c.anchorNode,o=c.anchorOffset,l=c.focusNode,c=c.focusOffset;try{u.nodeType,l.nodeType}catch(L){u=null;break e}var d=0,h=-1,f=-1,p=0,v=0,g=s,m=null;t:for(;;){for(var _;g!==u||0!==o&&3!==g.nodeType||(h=d+o),g!==l||0!==c&&3!==g.nodeType||(f=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(_=g.firstChild);)m=g,g=_;for(;;){if(g===s)break t;if(m===u&&++p===o&&(h=d),m===l&&++v===c&&(f=d),null!==(_=g.nextSibling))break;m=(g=m).parentNode}g=_}u=-1===h||-1===f?null:{start:h,end:f}}else u=null;u=u||{start:0,end:0}}else u=null;Bi={focusedElem:s,selectionRange:u},qt=!1,cu=null,du=!1,Gs=i;do{try{Au()}catch(L){if(null===Gs)throw Error(a(330));Hu(Gs,L),Gs=Gs.nextEffect}}while(null!==Gs);cu=null,Gs=i;do{try{for(s=e;null!==Gs;){var y=Gs.flags;if(16&y&&me(Gs.stateNode,""),128&y){var b=Gs.alternate;if(null!==b){var w=b.ref;null!==w&&("function"===typeof w?w(null):w.current=null)}}switch(1038&y){case 2:Cs(Gs),Gs.flags&=-3;break;case 6:Cs(Gs),Gs.flags&=-3,Ls(Gs.alternate,Gs);break;case 1024:Gs.flags&=-1025;break;case 1028:Gs.flags&=-1025,Ls(Gs.alternate,Gs);break;case 4:Ls(Gs.alternate,Gs);break;case 8:xs(s,u=Gs);var C=u.alternate;bs(u),null!==C&&bs(C)}Gs=Gs.nextEffect}}catch(L){if(null===Gs)throw Error(a(330));Hu(Gs,L),Gs=Gs.nextEffect}}while(null!==Gs);if(w=Bi,b=vi(),y=w.focusedElem,s=w.selectionRange,b!==y&&y&&y.ownerDocument&&pi(y.ownerDocument.documentElement,y)){null!==s&&gi(y)&&(b=s.start,void 0===(w=s.end)&&(w=b),"selectionStart"in y?(y.selectionStart=b,y.selectionEnd=Math.min(w,y.value.length)):(w=(b=y.ownerDocument||document)&&b.defaultView||window).getSelection&&(w=w.getSelection(),u=y.textContent.length,C=Math.min(s.start,u),s=void 0===s.end?C:Math.min(s.end,u),!w.extend&&C>s&&(u=s,s=C,C=u),u=fi(y,C),o=fi(y,s),u&&o&&(1!==w.rangeCount||w.anchorNode!==u.node||w.anchorOffset!==u.offset||w.focusNode!==o.node||w.focusOffset!==o.offset)&&((b=b.createRange()).setStart(u.node,u.offset),w.removeAllRanges(),C>s?(w.addRange(b),w.extend(o.node,o.offset)):(b.setEnd(o.node,o.offset),w.addRange(b))))),b=[];for(w=y;w=w.parentNode;)1===w.nodeType&&b.push({element:w,left:w.scrollLeft,top:w.scrollTop});for("function"===typeof y.focus&&y.focus(),y=0;y<b.length;y++)(w=b[y]).element.scrollLeft=w.left,w.element.scrollTop=w.top}qt=!!Hi,Bi=Hi=null,e.current=n,Gs=i;do{try{for(y=e;null!==Gs;){var k=Gs.flags;if(36&k&&ms(y,Gs.alternate,Gs),128&k){b=void 0;var S=Gs.ref;if(null!==S){var x=Gs.stateNode;Gs.tag,b=x,"function"===typeof S?S(b):S.current=b}}Gs=Gs.nextEffect}}catch(L){if(null===Gs)throw Error(a(330));Hu(Gs,L),Gs=Gs.nextEffect}}while(null!==Gs);Gs=null,Zr(),Os=r}else e.current=n;if(Js)Js=!1,eu=e,tu=t;else for(Gs=i;null!==Gs;)t=Gs.nextEffect,Gs.nextEffect=null,8&Gs.flags&&((k=Gs).sibling=null,k.stateNode=null),Gs=t;if(0===(i=e.pendingLanes)&&(Xs=null),1===i?e===au?ou++:(ou=0,au=e):ou=0,n=n.stateNode,kr&&"function"===typeof kr.onCommitFiberRoot)try{kr.onCommitFiberRoot(Cr,n,void 0,64===(64&n.current.flags))}catch(L){}if(gu(e,zr()),$s)throw $s=!1,e=Qs,Qs=null,e;return 0!==(8&Os)||Kr(),null}function Au(){for(;null!==Gs;){var e=Gs.alternate;du||null===cu||(0!==(8&Gs.flags)?Je(Gs,cu)&&(du=!0):13===Gs.tag&&Ns(e,Gs)&&Je(Gs,cu)&&(du=!0));var t=Gs.flags;0!==(256&t)&&gs(e,Gs),0===(512&t)||Js||(Js=!0,Ur(97,(function(){return Pu(),null}))),Gs=Gs.nextEffect}}function Pu(){if(90!==tu){var e=97<tu?97:tu;return tu=90,Yr(e,Fu)}return!1}function Ru(e,t){nu.push(t,e),Js||(Js=!0,Ur(97,(function(){return Pu(),null})))}function Zu(e,t){iu.push(t,e),Js||(Js=!0,Ur(97,(function(){return Pu(),null})))}function Fu(){if(null===eu)return!1;var e=eu;if(eu=null,0!==(48&Os))throw Error(a(331));var t=Os;Os|=32;var n=iu;iu=[];for(var i=0;i<n.length;i+=2){var r=n[i],o=n[i+1],s=r.destroy;if(r.destroy=void 0,"function"===typeof s)try{s()}catch(l){if(null===o)throw Error(a(330));Hu(o,l)}}for(n=nu,nu=[],i=0;i<n.length;i+=2){r=n[i],o=n[i+1];try{var u=r.create;r.destroy=u()}catch(l){if(null===o)throw Error(a(330));Hu(o,l)}}for(u=e.current.firstEffect;null!==u;)e=u.nextEffect,u.nextEffect=null,8&u.flags&&(u.sibling=null,u.stateNode=null),u=e;return Os=t,Kr(),!0}function ju(e,t,n){co(e,t=hs(0,t=ls(n,t),1)),t=hu(),null!==(e=vu(e,1))&&(zt(e,1,t),gu(e,t))}function Hu(e,t){if(3===e.tag)ju(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){ju(n,e,t);break}if(1===n.tag){var i=n.stateNode;if("function"===typeof n.type.getDerivedStateFromError||"function"===typeof i.componentDidCatch&&(null===Xs||!Xs.has(i))){var r=fs(n,e=ls(t,e),1);if(co(n,r),r=hu(),null!==(n=vu(n,1)))zt(n,1,r),gu(n,r);else if("function"===typeof i.componentDidCatch&&(null===Xs||!Xs.has(i)))try{i.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Bu(e,t,n){var i=e.pingCache;null!==i&&i.delete(t),t=hu(),e.pingedLanes|=e.suspendedLanes&n,Is===e&&(Ps&n)===n&&(4===Fs||3===Fs&&(62914560&Ps)===Ps&&500>zr()-Ys?Su(e,0):Ws|=n),gu(e,t)}function zu(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0===(2&(t=e.mode))?t=1:0===(4&t)?t=99===Wr()?1:2:(0===uu&&(uu=Hs),0===(t=Ht(62914560&~uu))&&(t=4194304))),n=hu(),null!==(e=vu(e,t))&&(zt(e,t,n),gu(e,n))}function Wu(e,t,n,i){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Vu(e,t,n,i){return new Wu(e,t,n,i)}function Yu(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Uu(e,t){var n=e.alternate;return null===n?((n=Vu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ku(e,t,n,i,r,o){var s=2;if(i=e,"function"===typeof e)Yu(e)&&(s=1);else if("string"===typeof e)s=5;else e:switch(e){case S:return qu(n.children,r,o,t);case R:s=8,r|=16;break;case x:s=8,r|=1;break;case L:return(e=Vu(12,n,t,8|r)).elementType=L,e.type=L,e.lanes=o,e;case M:return(e=Vu(13,n,t,r)).type=M,e.elementType=M,e.lanes=o,e;case T:return(e=Vu(19,n,t,r)).elementType=T,e.lanes=o,e;case Z:return Gu(n,r,o,t);case F:return(e=Vu(24,n,t,r)).elementType=F,e.lanes=o,e;default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case E:s=10;break e;case N:s=9;break e;case D:s=11;break e;case O:s=14;break e;case I:s=16,i=null;break e;case A:s=22;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Vu(s,n,t,r)).elementType=e,t.type=i,t.lanes=o,t}function qu(e,t,n,i){return(e=Vu(7,e,i,t)).lanes=n,e}function Gu(e,t,n,i){return(e=Vu(23,e,i,t)).elementType=Z,e.lanes=n,e}function $u(e,t,n){return(e=Vu(6,e,null,t)).lanes=n,e}function Qu(e,t,n){return(t=Vu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xu(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Bt(0),this.expirationTimes=Bt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Bt(0),this.mutableSourceEagerHydrationData=null}function Ju(e,t,n,i){var r=t.current,o=hu(),s=fu(r);e:if(n){t:{if(Ge(n=n._reactInternals)!==n||1!==n.tag)throw Error(a(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(gr(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(a(171))}if(1===n.tag){var l=n.type;if(gr(l)){n=yr(n,l,u);break e}}n=u}else n=dr;return null===t.context?t.context=n:t.pendingContext=n,(t=lo(o,s)).payload={element:e},null!==(i=void 0===i?null:i)&&(t.callback=i),co(r,t),pu(r,s,o),s}function el(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tl(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nl(e,t){tl(e,t),(e=e.alternate)&&tl(e,t)}function il(e,t,n){var i=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xu(e,t,null!=n&&!0===n.hydrate),t=Vu(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,so(t),e[Ji]=n.current,Ti(8===e.nodeType?e.parentNode:e),i)for(e=0;e<i.length;e++){var r=(t=i[e])._getVersion;r=r(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,r]:n.mutableSourceEagerHydrationData.push(t,r)}this._internalRoot=n}function rl(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ol(e,t,n,i,r){var o=n._reactRootContainer;if(o){var a=o._internalRoot;if("function"===typeof r){var s=r;r=function(){var e=el(a);s.call(e)}}Ju(t,a,e,r)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new il(e,0,t?{hydrate:!0}:void 0)}(n,i),a=o._internalRoot,"function"===typeof r){var u=r;r=function(){var e=el(a);u.call(e)}}wu((function(){Ju(t,a,e,r)}))}return el(a)}function al(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rl(t))throw Error(a(200));return function(e,t,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==i?null:""+i,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}qs=function(e,t,n){var i=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||fr.current)Ra=!0;else{if(0===(n&i)){switch(Ra=!1,t.tag){case 3:Ua(t),Ko();break;case 5:Po(t);break;case 1:gr(t.type)&&br(t);break;case 4:Io(t,t.stateNode.containerInfo);break;case 10:i=t.memoizedProps.value;var r=t.type._context;cr(Qr,r._currentValue),r._currentValue=i;break;case 13:if(null!==t.memoizedState)return 0!==(n&t.child.childLanes)?Xa(e,t,n):(cr(Zo,1&Zo.current),null!==(t=os(e,t,n))?t.sibling:null);cr(Zo,1&Zo.current);break;case 19:if(i=0!==(n&t.childLanes),0!==(64&e.flags)){if(i)return rs(e,t,n);t.flags|=64}if(null!==(r=t.memoizedState)&&(r.rendering=null,r.tail=null,r.lastEffect=null),cr(Zo,Zo.current),i)break;return null;case 23:case 24:return t.lanes=0,Ba(e,t,n)}return os(e,t,n)}Ra=0!==(16384&e.flags)}else Ra=!1;switch(t.lanes=0,t.tag){case 2:if(i=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,r=vr(t,hr.current),ro(t,n),r=aa(null,t,i,e,r,n),t.flags|=1,"object"===typeof r&&null!==r&&"function"===typeof r.render&&void 0===r.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,gr(i)){var o=!0;br(t)}else o=!1;t.memoizedState=null!==r.state&&void 0!==r.state?r.state:null,so(t);var s=i.getDerivedStateFromProps;"function"===typeof s&&go(t,i,s,e),r.updater=mo,t.stateNode=r,r._reactInternals=t,wo(t,i,e,n),t=Ya(null,t,i,!0,o,n)}else t.tag=0,Za(null,t,r,n),t=t.child;return t;case 16:r=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"===typeof e)return Yu(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===D)return 11;if(e===O)return 14}return 2}(r),e=$r(r,e),o){case 0:t=Wa(null,t,r,e,n);break e;case 1:t=Va(null,t,r,e,n);break e;case 11:t=Fa(null,t,r,e,n);break e;case 14:t=ja(null,t,r,$r(r.type,e),i,n);break e}throw Error(a(306,r,""))}return t;case 0:return i=t.type,r=t.pendingProps,Wa(e,t,i,r=t.elementType===i?r:$r(i,r),n);case 1:return i=t.type,r=t.pendingProps,Va(e,t,i,r=t.elementType===i?r:$r(i,r),n);case 3:if(Ua(t),i=t.updateQueue,null===e||null===i)throw Error(a(282));if(i=t.pendingProps,r=null!==(r=t.memoizedState)?r.element:null,uo(e,t),fo(t,i,null,n),(i=t.memoizedState.element)===r)Ko(),t=os(e,t,n);else{if((o=(r=t.stateNode).hydrate)&&(Ho=Ki(t.stateNode.containerInfo.firstChild),jo=t,o=Bo=!0),o){if(null!=(e=r.mutableSourceEagerHydrationData))for(r=0;r<e.length;r+=2)(o=e[r])._workInProgressVersionPrimary=e[r+1],qo.push(o);for(n=Eo(t,null,i,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Za(e,t,i,n),Ko();t=t.child}return t;case 5:return Po(t),null===e&&Vo(t),i=t.type,r=t.pendingProps,o=null!==e?e.memoizedProps:null,s=r.children,Wi(i,r)?s=null:null!==o&&Wi(i,o)&&(t.flags|=16),za(e,t),Za(e,t,s,n),t.child;case 6:return null===e&&Vo(t),null;case 13:return Xa(e,t,n);case 4:return Io(t,t.stateNode.containerInfo),i=t.pendingProps,null===e?t.child=Lo(t,null,i,n):Za(e,t,i,n),t.child;case 11:return i=t.type,r=t.pendingProps,Fa(e,t,i,r=t.elementType===i?r:$r(i,r),n);case 7:return Za(e,t,t.pendingProps,n),t.child;case 8:case 12:return Za(e,t,t.pendingProps.children,n),t.child;case 10:e:{i=t.type._context,r=t.pendingProps,s=t.memoizedProps,o=r.value;var u=t.type._context;if(cr(Qr,u._currentValue),u._currentValue=o,null!==s)if(u=s.value,0===(o=li(u,o)?0:0|("function"===typeof i._calculateChangedBits?i._calculateChangedBits(u,o):1073741823))){if(s.children===r.children&&!fr.current){t=os(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var l=u.dependencies;if(null!==l){s=u.child;for(var c=l.firstContext;null!==c;){if(c.context===i&&0!==(c.observedBits&o)){1===u.tag&&((c=lo(-1,n&-n)).tag=2,co(u,c)),u.lanes|=n,null!==(c=u.alternate)&&(c.lanes|=n),io(u.return,n),l.lanes|=n;break}c=c.next}}else s=10===u.tag&&u.type===t.type?null:u.child;if(null!==s)s.return=u;else for(s=u;null!==s;){if(s===t){s=null;break}if(null!==(u=s.sibling)){u.return=s.return,s=u;break}s=s.return}u=s}Za(e,t,r.children,n),t=t.child}return t;case 9:return r=t.type,i=(o=t.pendingProps).children,ro(t,n),i=i(r=oo(r,o.unstable_observedBits)),t.flags|=1,Za(e,t,i,n),t.child;case 14:return o=$r(r=t.type,t.pendingProps),ja(e,t,r,o=$r(r.type,o),i,n);case 15:return Ha(e,t,t.type,t.pendingProps,i,n);case 17:return i=t.type,r=t.pendingProps,r=t.elementType===i?r:$r(i,r),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,gr(i)?(e=!0,br(t)):e=!1,ro(t,n),yo(t,i,r),wo(t,i,r,n),Ya(null,t,i,!0,e,n);case 19:return rs(e,t,n);case 23:case 24:return Ba(e,t,n)}throw Error(a(156,t.tag))},il.prototype.render=function(e){Ju(e,this._internalRoot,null,null)},il.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Ju(null,e,null,(function(){t[Ji]=null}))},et=function(e){13===e.tag&&(pu(e,4,hu()),nl(e,4))},tt=function(e){13===e.tag&&(pu(e,67108864,hu()),nl(e,67108864))},nt=function(e){if(13===e.tag){var t=hu(),n=fu(e);pu(e,n,t),nl(e,n)}},it=function(e,t){return t()},Le=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var i=n[t];if(i!==e&&i.form===e.form){var r=rr(i);if(!r)throw Error(a(90));Q(i),ne(i,r)}}}break;case"textarea":le(e,n);break;case"select":null!=(t=n.value)&&ae(e,!!n.multiple,t,!1)}},Oe=bu,Ie=function(e,t,n,i,r){var o=Os;Os|=4;try{return Yr(98,e.bind(null,t,n,i,r))}finally{0===(Os=o)&&(Ks(),Kr())}},Ae=function(){0===(49&Os)&&(function(){if(null!==ru){var e=ru;ru=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gu(e,zr())}))}Kr()}(),Pu())},Pe=function(e,t){var n=Os;Os|=2;try{return e(t)}finally{0===(Os=n)&&(Ks(),Kr())}};var sl={Events:[nr,ir,rr,Me,Te,Pu,{current:!1}]},ul={findFiberByHostInstance:tr,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},ll={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cl.isDisabled&&cl.supportsFiber)try{Cr=cl.inject(ll),kr=cl}catch(ve){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl,t.createPortal=al,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"===typeof e.render)throw Error(a(188));throw Error(a(268,Object.keys(e)))}return e=null===(e=Xe(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Os;if(0!==(48&n))return e(t);Os|=1;try{if(e)return Yr(99,e.bind(null,t))}finally{Os=n,Kr()}},t.hydrate=function(e,t,n){if(!rl(t))throw Error(a(200));return ol(null,e,t,!0,n)},t.render=function(e,t,n){if(!rl(t))throw Error(a(200));return ol(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!rl(e))throw Error(a(40));return!!e._reactRootContainer&&(wu((function(){ol(null,null,e,!1,(function(){e._reactRootContainer=null,e[Ji]=null}))})),!0)},t.unstable_batchedUpdates=bu,t.unstable_createPortal=function(e,t){return al(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,i){if(!rl(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return ol(e,t,n,!1,i)},t.version="17.0.2"},84453:function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(81571)},88807:function(e){var t="undefined"!==typeof Element,n="function"===typeof Map,i="function"===typeof Set,r="function"===typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,a){if(e===a)return!0;if(e&&a&&"object"==typeof e&&"object"==typeof a){if(e.constructor!==a.constructor)return!1;var s,u,l,c;if(Array.isArray(e)){if((s=e.length)!=a.length)return!1;for(u=s;0!==u--;)if(!o(e[u],a[u]))return!1;return!0}if(n&&e instanceof Map&&a instanceof Map){if(e.size!==a.size)return!1;for(c=e.entries();!(u=c.next()).done;)if(!a.has(u.value[0]))return!1;for(c=e.entries();!(u=c.next()).done;)if(!o(u.value[1],a.get(u.value[0])))return!1;return!0}if(i&&e instanceof Set&&a instanceof Set){if(e.size!==a.size)return!1;for(c=e.entries();!(u=c.next()).done;)if(!a.has(u.value[0]))return!1;return!0}if(r&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(a)){if((s=e.length)!=a.length)return!1;for(u=s;0!==u--;)if(e[u]!==a[u])return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"===typeof e.valueOf&&"function"===typeof a.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString&&"function"===typeof e.toString&&"function"===typeof a.toString)return e.toString()===a.toString();if((s=(l=Object.keys(e)).length)!==Object.keys(a).length)return!1;for(u=s;0!==u--;)if(!Object.prototype.hasOwnProperty.call(a,l[u]))return!1;if(t&&e instanceof Element)return!1;for(u=s;0!==u--;)if(("_owner"!==l[u]&&"__v"!==l[u]&&"__o"!==l[u]||!e.$$typeof)&&!o(e[l[u]],a[l[u]]))return!1;return!0}return e!==e&&a!==a}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},16186:function(e,t){"use strict";var n=60103,i=60106,r=60107,o=60108,a=60114,s=60109,u=60110,l=60112,c=60113,d=60120,h=60115,f=60116,p=60121,v=60122,g=60117,m=60129,_=60131;if("function"===typeof Symbol&&Symbol.for){var y=Symbol.for;n=y("react.element"),i=y("react.portal"),r=y("react.fragment"),o=y("react.strict_mode"),a=y("react.profiler"),s=y("react.provider"),u=y("react.context"),l=y("react.forward_ref"),c=y("react.suspense"),d=y("react.suspense_list"),h=y("react.memo"),f=y("react.lazy"),p=y("react.block"),v=y("react.server.block"),g=y("react.fundamental"),m=y("react.debug_trace_mode"),_=y("react.legacy_hidden")}function b(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case r:case a:case o:case c:case d:return e;default:switch(e=e&&e.$$typeof){case u:case l:case f:case h:case s:return e;default:return t}}case i:return t}}}t.isContextConsumer=function(e){return b(e)===u}},78003:function(e,t,n){"use strict";e.exports=n(16186)},18878:function(e,t,n){var i=n(4519),r=n(94278),o=n(91386),a=n(34712),s=i.createElement,u=n(96471),l=n(40458),c=n(2889),d=n(99221),h=n(14661),f=n(72658);e.exports=r({propTypes:{data:o.any.isRequired,search:o.oneOfType([o.func,o.bool]),searchOptions:o.shape({debounceTime:o.number}),onClick:o.func,validateQuery:o.func,isExpanded:o.func,filterOptions:o.shape({cacheResults:o.bool,ignoreCase:o.bool}),query:o.string,verboseShowOriginal:o.bool},getDefaultProps:function(){return{data:null,search:l,searchOptions:{debounceTime:0},className:"",id:"json-"+Date.now(),onClick:f,filterOptions:{cacheResults:!0,ignoreCase:!1},validateQuery:function(e){return e.length>=2},isExpanded:function(e,t){return!1},verboseShowOriginal:!1}},getInitialState:function(){return{query:this.props.query||""}},render:function(){var e=this.props,t=this.state,n=""!==t.query&&e.validateQuery(t.query),i=n?t.filterer(t.query):e.data,r=n&&d(i);return s("div",{className:"json-inspector "+e.className},this.renderToolbar(),r?s("div",{className:"json-inspector__not-found"},"Nothing found"):s(u,{data:i,onClick:e.onClick,id:e.id,getOriginal:this.getOriginal,query:n?new RegExp(t.query,e.filterOptions.ignoreCase?"i":""):null,label:"root",root:!0,isExpanded:e.isExpanded,interactiveLabel:e.interactiveLabel,verboseShowOriginal:e.verboseShowOriginal}))},renderToolbar:function(){var e=this.props.search;if(e)return s("div",{className:"json-inspector__toolbar"},s(e,{onChange:a(this.search,this.props.searchOptions.debounceTime),data:this.props.data,query:this.state.query}))},search:function(e){this.setState({query:e})},componentWillMount:function(){this.createFilterer(this.props.data,this.props.filterOptions)},componentWillReceiveProps:function(e){this.createFilterer(e.data,e.filterOptions),"string"===typeof e.query&&e.query!==this.state.query&&this.setState({query:e.query})},shouldComponentUpdate:function(e,t){return e.query!==this.props.query||t.query!==this.state.query||e.data!==this.props.data||e.onClick!==this.props.onClick},createFilterer:function(e,t){this.setState({filterer:c(e,t)})},getOriginal:function(e){return h(this.props.data,e)}})},2889:function(e,t,n){var i=n(4778),r=Object.keys,o=n(36892),a=n(99221);function s(e,t,n){return r(e).reduce((function(r,l){var c,d=e[l];return o(d)?(u(t,l,n)||u(t,d,n))&&(r[l]=d):u(t,l,n)?r[l]=d:(c=s(d,t,n),a(c)||i(r,function(e,t){var n={};return n[e]=t,n}(l,c))),r}),{})}function u(e,t,n){if(t){var i=String(t),r=e;return n.ignoreCase&&(i=i.toLowerCase(),r=r.toLowerCase()),-1!==i.indexOf(r)}}e.exports=function(e,t){t||(t={cacheResults:!0});var n={};return function(i){if(!t.cacheResults)return s(e,i,t);var r;if(!n[i])for(var o=i.length-1;o>0;o-=1)if(r=i.substr(0,o),n[r]){n[i]=s(n[r],i,t);break}return n[i]||(n[i]=s(e,i,t)),n[i]}}},53196:function(e,t,n){var i=n(4519),r=n(94278),o=i.createElement;e.exports=r({getDefaultProps:function(){return{string:"",highlight:""}},shouldComponentUpdate:function(e){return e.highlight!==this.props.highlight},render:function(){var e=this.props,t=e.string.search(e.highlight);if(!e.highlight||-1===t)return o("span",null,e.string);var n=e.highlight.source.length,i=e.string.substr(t,n);return o("span",null,e.string.split(e.highlight).map((function(e,t){return o("span",{key:t},t>0?o("span",{className:"json-inspector__hl"},i):null,e)})))}})},99221:function(e){e.exports=function(e){return 0===Object.keys(e).length}},36892:function(e,t,n){var i=n(87905);e.exports=function(e){var t=i(e);return"Object"!==t&&"Array"!==t}},96471:function(e,t,n){var i=n(4519),r=n(94278),o=n(43911),a=n(38563),s=n(87905),u=n(36892),l=n(53196),c=i.createElement,d=r({getInitialState:function(){return{expanded:this._isInitiallyExpanded(this.props)}},getDefaultProps:function(){return{root:!1,prefix:""}},render:function(){var e="id_"+a(),t=this.props,n={path:this.keypath(),key:t.label.toString(),value:t.data},i=this._onClick.bind(this,n);return c("div",{className:this.getClassName(),id:"leaf-"+this._rootPath()},c("input",{className:"json-inspector__radio",type:"radio",name:t.id,id:e,tabIndex:-1}),c("label",{className:"json-inspector__line",htmlFor:e,onClick:i},c("div",{className:"json-inspector__flatpath"},n.path),c("span",{className:"json-inspector__key"},this.format(n.key),":",this.renderInteractiveLabel(n.key,!0)),this.renderTitle(),this.renderShowOriginalButton()),this.renderChildren())},renderTitle:function(){var e=this.data(),t=s(e);switch(t){case"Array":return c("span",{className:"json-inspector__value json-inspector__value_helper"},"[] "+h(e.length));case"Object":return c("span",{className:"json-inspector__value json-inspector__value_helper"},"{} "+h(Object.keys(e).length));default:return c("span",{className:"json-inspector__value json-inspector__value_"+t.toLowerCase()},this.format(String(e)),this.renderInteractiveLabel(e,!1))}},renderChildren:function(){var e=this.props,t=this._rootPath(),n=this.data();return this.state.expanded&&!u(n)?Object.keys(n).map((function(i){var r=n[i],o=!this.state.original||!!e.verboseShowOriginal&&e.query;return c(d,{data:r,label:i,prefix:t,onClick:e.onClick,id:e.id,query:e.query,getOriginal:o?e.getOriginal:null,key:f(i,r),isExpanded:e.isExpanded,interactiveLabel:e.interactiveLabel,verboseShowOriginal:e.verboseShowOriginal})}),this):null},renderShowOriginalButton:function(){var e=this.props;return u(e.data)||this.state.original||!e.getOriginal||!e.query||p(this.keypath(),e.query)?null:c("span",{className:"json-inspector__show-original",onClick:this._onShowOriginalClick})},renderInteractiveLabel:function(e,t){return"function"===typeof this.props.interactiveLabel?c(this.props.interactiveLabel,{value:String(e),originalValue:e,isKey:t,keypath:this.keypath()}):null},componentWillReceiveProps:function(e){e.query&&this.setState({expanded:!p(e.label,e.query)}),this.props.query&&!e.query&&this.setState({expanded:this._isInitiallyExpanded(e)})},_rootPath:function(){return this.props.prefix+"."+this.props.label},keypath:function(){return this._rootPath().substr(".root.".length)},data:function(){return this.state.original||this.props.data},format:function(e){return c(l,{string:e,highlight:this.props.query})},getClassName:function(){var e="json-inspector__leaf";return this.props.root&&(e+=" json-inspector__leaf_root"),this.state.expanded&&(e+=" json-inspector__leaf_expanded"),u(this.props.data)||(e+=" json-inspector__leaf_composite"),e},toggle:function(){this.setState({expanded:!this.state.expanded})},_onClick:function(e,t){this.toggle(),this.props.onClick(e),t.stopPropagation()},_onShowOriginalClick:function(e){this.setState({original:this.props.getOriginal(this.keypath())}),e.stopPropagation()},_isInitiallyExpanded:function(e){var t=this.keypath();return!!e.root||(e.query?!p(t,e.query)&&"function"===typeof e.getOriginal:e.isExpanded(t,e.data))}});function h(e){return e+(1===e?" item":" items")}function f(e,t){return u(t)?e+":"+o(String(t)):e+"["+s(t)+"]"}function p(e,t){return-1!==e.indexOf(t)}e.exports=d},14661:function(e,t,n){var i=n(87905),r=".";function o(e){return parseInt(e,10)}e.exports=function e(t,n){var a=n.split(r),s=a.shift();if(!s)return t;var u=i(t);return"Array"===u&&t[o(s)]?e(t[o(s)],a.join(r)):"Object"===u&&t[s]?e(t[s],a.join(r)):void 0}},72658:function(e){e.exports=function(){}},40458:function(e,t,n){var i=n(4519),r=n(94278),o=i.createElement,a=n(72658);e.exports=r({getDefaultProps:function(){return{onChange:a}},render:function(){return o("input",{className:"json-inspector__search",type:"search",placeholder:"Search",onChange:this.onChange})},onChange:function(e){this.props.onChange(e.target.value)}})},87905:function(e){e.exports=function(e){return Object.prototype.toString.call(e).slice(8,-1)}},38563:function(e){var t=Math.ceil(10*Math.random());e.exports=function(){return++t}},4778:function(e){"use strict";e.exports=Object.assign||function(e,t){for(var n,i,r=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),o=1;o<arguments.length;o++){n=arguments[o],i=Object.keys(Object(n));for(var a=0;a<i.length;a++)r[i[a]]=n[i[a]]}return r}},74140:function(e,t,n){var i,r,o;r=[e,n(91386),n(4519)],i=function(e,t,n){"use strict";var i=a(e),r=a(t),o=a(n);function a(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var u,l,c=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();function d(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function h(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var f={x:"clientWidth",y:"clientHeight"},p={x:"clientTop",y:"clientLeft"},v={x:"innerWidth",y:"innerHeight"},g={x:"offsetWidth",y:"offsetHeight"},m={x:"offsetLeft",y:"offsetTop"},_={x:"overflowX",y:"overflowY"},y={x:"scrollWidth",y:"scrollHeight"},b={x:"scrollLeft",y:"scrollTop"},w={x:"width",y:"height"},C=function(){},k=!!function(){if("undefined"===typeof window)return!1;var e=!1;try{document.createElement("div").addEventListener("test",C,{get passive(){return e=!0,!1}})}catch(t){}return e}()&&{passive:!0},S="ReactList failed to reach a stable state.",x=50,L=function(e,t){for(var n in t)if(e[n]!==t[n])return!1;return!0},E=function(e){for(var t=e.props.axis,n=e.getEl(),i=_[t];n=n.parentElement;)switch(window.getComputedStyle(n)[i]){case"auto":case"scroll":case"overlay":return n}return window},N=function(e){var t=e.props.axis,n=e.scrollParent;return n===window?window[v[t]]:n[f[t]]};i.default.exports=(l=u=function(e){function t(e){s(this,t);var n=d(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),i=e.initialIndex,r=1,o=n.constrain(i,0,r,e),a=o.from,u=o.size;return n.state={from:a,size:u,itemsPerRow:r},n.cache={},n.cachedScrollPosition=null,n.prevPrevState={},n.unstable=!1,n.updateCounter=0,n}return h(t,e),c(t,[{key:"componentWillReceiveProps",value:function(e){this.props.axis!==e.axis&&this.clearSizeCache();var t=this.state,n=t.from,i=t.size,r=t.itemsPerRow;this.maybeSetState(this.constrain(n,i,r,e),C)}},{key:"componentDidMount",value:function(){this.updateFrameAndClearCache=this.updateFrameAndClearCache.bind(this),window.addEventListener("resize",this.updateFrameAndClearCache),this.updateFrame(this.scrollTo.bind(this,this.props.initialIndex))}},{key:"componentDidUpdate",value:function(){var e=this;if(!this.unstable){if(++this.updateCounter>x)return this.unstable=!0,console.error(S);this.updateCounterTimeoutId||(this.updateCounterTimeoutId=setTimeout((function(){e.updateCounter=0,delete e.updateCounterTimeoutId}),0)),this.updateFrame()}}},{key:"maybeSetState",value:function(e,t){if(L(this.state,e))return t();this.setState(e,t)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.updateFrameAndClearCache),this.scrollParent.removeEventListener("scroll",this.updateFrameAndClearCache,k),this.scrollParent.removeEventListener("mousewheel",C,k)}},{key:"getOffset",value:function(e){var t=this.props.axis,n=e[p[t]]||0,i=m[t];do{n+=e[i]||0}while(e=e.offsetParent);return n}},{key:"getEl",value:function(){return this.el||this.items}},{key:"getScrollPosition",value:function(){if("number"===typeof this.cachedScrollPosition)return this.cachedScrollPosition;var e=this.scrollParent,t=this.props.axis,n=b[t],i=e===window?document.body[n]||document.documentElement[n]:e[n],r=this.getScrollSize()-this.props.scrollParentViewportSizeGetter(this),o=Math.max(0,Math.min(i,r)),a=this.getEl();return this.cachedScrollPosition=this.getOffset(e)+o-this.getOffset(a),this.cachedScrollPosition}},{key:"setScroll",value:function(e){var t=this.scrollParent,n=this.props.axis;if(e+=this.getOffset(this.getEl()),t===window)return window.scrollTo(0,e);e-=this.getOffset(this.scrollParent),t[b[n]]=e}},{key:"getScrollSize",value:function(){var e=this.scrollParent,t=document,n=t.body,i=t.documentElement,r=y[this.props.axis];return e===window?Math.max(n[r],i[r]):e[r]}},{key:"hasDeterminateSize",value:function(){var e=this.props,t=e.itemSizeGetter;return"uniform"===e.type||t}},{key:"getStartAndEnd",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.threshold,t=this.getScrollPosition(),n=Math.max(0,t-e),i=t+this.props.scrollParentViewportSizeGetter(this)+e;return this.hasDeterminateSize()&&(i=Math.min(i,this.getSpaceBefore(this.props.length))),{start:n,end:i}}},{key:"getItemSizeAndItemsPerRow",value:function(){var e=this.props,t=e.axis,n=e.useStaticSize,i=this.state,r=i.itemSize,o=i.itemsPerRow;if(n&&r&&o)return{itemSize:r,itemsPerRow:o};var a=this.items.children;if(!a.length)return{};var s=a[0],u=s[g[t]],l=Math.abs(u-r);if((isNaN(l)||l>=1)&&(r=u),!r)return{};for(var c=m[t],d=s[c],h=a[o=1];h&&h[c]===d;h=a[o])++o;return{itemSize:r,itemsPerRow:o}}},{key:"clearSizeCache",value:function(){this.cachedScrollPosition=null}},{key:"updateFrameAndClearCache",value:function(e){return this.clearSizeCache(),this.updateFrame(e)}},{key:"updateFrame",value:function(e){switch(this.updateScrollParent(),"function"!=typeof e&&(e=C),this.props.type){case"simple":return this.updateSimpleFrame(e);case"variable":return this.updateVariableFrame(e);case"uniform":return this.updateUniformFrame(e)}}},{key:"updateScrollParent",value:function(){var e=this.scrollParent;this.scrollParent=this.props.scrollParentGetter(this),e!==this.scrollParent&&(e&&(e.removeEventListener("scroll",this.updateFrameAndClearCache),e.removeEventListener("mousewheel",C)),this.clearSizeCache(),this.scrollParent.addEventListener("scroll",this.updateFrameAndClearCache,k),this.scrollParent.addEventListener("mousewheel",C,k))}},{key:"updateSimpleFrame",value:function(e){var t=this.getStartAndEnd().end,n=this.items.children,i=0;if(n.length){var r=this.props.axis,o=n[0],a=n[n.length-1];i=this.getOffset(a)+a[g[r]]-this.getOffset(o)}if(i>t)return e();var s=this.props,u=s.pageSize,l=s.length,c=Math.min(this.state.size+u,l);this.maybeSetState({size:c},e)}},{key:"updateVariableFrame",value:function(e){this.props.itemSizeGetter||this.cacheSizes();for(var t=this.getStartAndEnd(),n=t.start,i=t.end,r=this.props,o=r.length,a=r.pageSize,s=0,u=0,l=0,c=o-1;u<c;){var d=this.getSizeOfItem(u);if(null==d||s+d>n)break;s+=d,++u}for(var h=o-u;l<h&&s<i;){var f=this.getSizeOfItem(u+l);if(null==f){l=Math.min(l+a,h);break}s+=f,++l}this.maybeSetState({from:u,size:l},e)}},{key:"updateUniformFrame",value:function(e){var t=this.getItemSizeAndItemsPerRow(),n=t.itemSize,i=t.itemsPerRow;if(!n||!i)return e();var r=this.getStartAndEnd(),o=r.start,a=r.end,s=this.constrain(Math.floor(o/n)*i,(Math.ceil((a-o)/n)+1)*i,i,this.props),u=s.from,l=s.size;return this.maybeSetState({itemsPerRow:i,from:u,itemSize:n,size:l},e)}},{key:"getSpaceBefore",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null!=t[e])return t[e];var n=this.state,i=n.itemSize,r=n.itemsPerRow;if(i)return t[e]=Math.floor(e/r)*i;for(var o=e;o>0&&null==t[--o];);for(var a=t[o]||0,s=o;s<e;++s){t[s]=a;var u=this.getSizeOfItem(s);if(null==u)break;a+=u}return t[e]=a}},{key:"cacheSizes",value:function(){for(var e=this.cache,t=this.state.from,n=this.items.children,i=g[this.props.axis],r=0,o=n.length;r<o;++r)e[t+r]=n[r][i]}},{key:"getSizeOfItem",value:function(e){var t=this.cache,n=this.items,i=this.props,r=i.axis,o=i.itemSizeGetter,a=i.itemSizeEstimator,s=i.type,u=this.state,l=u.from,c=u.itemSize,d=u.size;if(c)return c;if(o)return o(e);if(e in t)return t[e];if("simple"===s&&e>=l&&e<l+d&&n){var h=n.children[e-l];if(h)return h[g[r]]}return a?a(e,t):void 0}},{key:"constrain",value:function(e,t,n,i){var r=i.length,o=i.minSize,a=i.type,s=(t=Math.max(t,o))%n;return s&&(t+=n-s),t>r&&(t=r),(s=(e="simple"!==a&&e?Math.max(Math.min(e,r-t),0):0)%n)&&(e-=s,t+=s),{from:e,size:t}}},{key:"scrollTo",value:function(e){null!=e&&this.setScroll(this.getSpaceBefore(e))}},{key:"scrollAround",value:function(e){var t=this.getScrollPosition(),n=this.getSpaceBefore(e),i=n-this.props.scrollParentViewportSizeGetter(this)+this.getSizeOfItem(e),r=Math.min(i,n),o=Math.max(i,n);return t<=r?this.setScroll(r):t>o?this.setScroll(o):void 0}},{key:"getVisibleRange",value:function(){for(var e=this.state,t=e.from,n=e.size,i=this.getStartAndEnd(0),r=i.start,o=i.end,a={},s=void 0,u=void 0,l=t;l<t+n;++l){var c=this.getSpaceBefore(l,a),d=c+this.getSizeOfItem(l);null==s&&d>r&&(s=l),null!=s&&c<o&&(u=l)}return[s,u]}},{key:"renderItems",value:function(){for(var e=this,t=this.props,n=t.itemRenderer,i=t.itemsRenderer,r=this.state,o=r.from,a=r.size,s=[],u=0;u<a;++u)s.push(n(o+u,u));return i(s,(function(t){return e.items=t}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.axis,i=t.length,r=t.type,a=t.useTranslate3d,s=this.state,u=s.from,l=s.itemsPerRow,c=this.renderItems();if("simple"===r)return c;var d={position:"relative"},h={},f=Math.ceil(i/l)*l,p=this.getSpaceBefore(f,h);p&&(d[w[n]]=p,"x"===n&&(d.overflowX="hidden"));var v=this.getSpaceBefore(u,h),g="x"===n?v:0,m="y"===n?v:0,_=a?"translate3d("+g+"px, "+m+"px, 0)":"translate("+g+"px, "+m+"px)",y={msTransform:_,WebkitTransform:_,transform:_};return o.default.createElement("div",{style:d,ref:function(t){return e.el=t}},o.default.createElement("div",{style:y},c))}}]),t}(n.Component),u.displayName="ReactList",u.propTypes={axis:r.default.oneOf(["x","y"]),initialIndex:r.default.number,itemRenderer:r.default.func,itemSizeEstimator:r.default.func,itemSizeGetter:r.default.func,itemsRenderer:r.default.func,length:r.default.number,minSize:r.default.number,pageSize:r.default.number,scrollParentGetter:r.default.func,scrollParentViewportSizeGetter:r.default.func,threshold:r.default.number,type:r.default.oneOf(["simple","variable","uniform"]),useStaticSize:r.default.bool,useTranslate3d:r.default.bool},u.defaultProps={axis:"y",itemRenderer:function(e,t){return o.default.createElement("div",{key:t},e)},itemsRenderer:function(e,t){return o.default.createElement("div",{ref:t},e)},length:0,minSize:1,pageSize:10,scrollParentGetter:E,scrollParentViewportSizeGetter:N,threshold:100,type:"simple",useStaticSize:!1,useTranslate3d:!1},l)},void 0===(o="function"===typeof i?i.apply(t,r):i)||(e.exports=o)},855:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var i=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};i.get||i.set?Object.defineProperty(t,n,i):t[n]=e[n]}return t.default=e,t}(n(14717)),r=s(n(91386)),o=s(n(4519)),a=n(91953);function s(e){return e&&e.__esModule?e:{default:e}}function u(e){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=function(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?h(e):t}(this,d(t).call(this,e)),p(h(n),"assignRef",(function(e){n.containerElement=e})),n.containerElement=void 0,n}var n,r,s;return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(t,e),n=t,r=[{key:"componentDidMount",value:function(){this.initMonaco()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.language,r=t.theme,o=t.height,a=t.options,s=t.width,u=this.editor.getModel(),l=u.original,c=u.modified;this.props.original!==l.getValue()&&l.setValue(this.props.original),null!=this.props.value&&this.props.value!==c.getValue()&&(this.__prevent_trigger_change_event=!0,this.editor.pushUndoStop(),c.pushEditOperations([],[{range:c.getFullModelRange(),text:this.props.value}]),this.editor.pushUndoStop(),this.__prevent_trigger_change_event=!1),e.language!==n&&(i.editor.setModelLanguage(l,n),i.editor.setModelLanguage(c,n)),e.theme!==r&&i.editor.setTheme(r),!this.editor||s===e.width&&o===e.height||this.editor.layout(),e.options!==a&&this.editor.updateOptions(a)}},{key:"componentWillUnmount",value:function(){this.destroyMonaco()}},{key:"editorWillMount",value:function(){var e=this.props.editorWillMount;return e(i)||{}}},{key:"editorDidMount",value:function(e){var t=this;this.props.editorDidMount(e,i);var n=e.getModel().modified;this._subscription=n.onDidChangeContent((function(){t.__prevent_trigger_change_event||t.props.onChange(n.getValue())}))}},{key:"initModels",value:function(e,t){var n=this.props.language,r=i.editor.createModel(t,n),o=i.editor.createModel(e,n);this.editor.setModel({original:r,modified:o})}},{key:"initMonaco",value:function(){var e=null!=this.props.value?this.props.value:this.props.defaultValue,t=this.props,n=t.original,r=t.theme,o=t.options,a=t.overrideServices;this.containerElement&&(this.editorWillMount(),this.editor=i.editor.createDiffEditor(this.containerElement,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(n,!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},o,{},r?{theme:r}:{}),a),this.initModels(e,n),this.editorDidMount(this.editor))}},{key:"destroyMonaco",value:function(){if(this.editor){var e=this.editor.getModel(),t=e.original,n=e.modified;t.dispose(),n.dispose(),this.editor.dispose()}this._subscription&&this._subscription.dispose()}},{key:"render",value:function(){var e=this.props,t=e.width,n=e.height,i={width:(0,a.processSize)(t),height:(0,a.processSize)(n)};return o.default.createElement("div",{ref:this.assignRef,style:i,className:"react-monaco-editor-container"})}}],r&&c(n.prototype,r),s&&c(n,s),t}(o.default.Component);v.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),height:r.default.oneOfType([r.default.string,r.default.number]),original:r.default.string,value:r.default.string,defaultValue:r.default.string,language:r.default.string,theme:r.default.string,options:r.default.object,overrideServices:r.default.object,editorDidMount:r.default.func,editorWillMount:r.default.func,onChange:r.default.func},v.defaultProps={width:"100%",height:"100%",original:null,value:null,defaultValue:"",language:"javascript",theme:null,options:{},overrideServices:{},editorDidMount:a.noop,editorWillMount:a.noop,onChange:a.noop};var g=v;t.default=g},81677:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var i=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};i.get||i.set?Object.defineProperty(t,n,i):t[n]=e[n]}return t.default=e,t}(n(14717)),r=s(n(91386)),o=s(n(4519)),a=n(91953);function s(e){return e&&e.__esModule?e:{default:e}}function u(e){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=function(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?h(e):t}(this,d(t).call(this,e)),p(h(n),"assignRef",(function(e){n.containerElement=e})),n.containerElement=void 0,n}var n,r,s;return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(t,e),n=t,r=[{key:"componentDidMount",value:function(){this.initMonaco()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.value,r=t.language,o=t.theme,a=t.height,s=t.options,u=t.width,l=this.editor,c=l.getModel();null!=this.props.value&&this.props.value!==c.getValue()&&(this.__prevent_trigger_change_event=!0,this.editor.pushUndoStop(),c.pushEditOperations([],[{range:c.getFullModelRange(),text:n}]),this.editor.pushUndoStop(),this.__prevent_trigger_change_event=!1),e.language!==r&&i.editor.setModelLanguage(c,r),e.theme!==o&&i.editor.setTheme(o),!l||u===e.width&&a===e.height||l.layout(),e.options!==s&&l.updateOptions(s)}},{key:"componentWillUnmount",value:function(){this.destroyMonaco()}},{key:"destroyMonaco",value:function(){this.editor&&(this.editor.getModel().dispose(),this.editor.dispose()),this._subscription&&this._subscription.dispose()}},{key:"initMonaco",value:function(){var e=null!=this.props.value?this.props.value:this.props.defaultValue,t=this.props,n=t.language,r=t.theme,o=t.options,a=t.overrideServices;this.containerElement&&(Object.assign(o,this.editorWillMount()),this.editor=i.editor.create(this.containerElement,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(n,!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({value:e,language:n},o,{},r?{theme:r}:{}),a),this.editorDidMount(this.editor))}},{key:"editorWillMount",value:function(){var e=this.props.editorWillMount;return e(i)||{}}},{key:"editorDidMount",value:function(e){var t=this;this.props.editorDidMount(e,i),this._subscription=e.onDidChangeModelContent((function(){t.__prevent_trigger_change_event||t.props.onChange(e.getValue())}))}},{key:"render",value:function(){var e=this.props,t=e.width,n=e.height,i={width:(0,a.processSize)(t),height:(0,a.processSize)(n)};return o.default.createElement("div",{ref:this.assignRef,style:i,className:"react-monaco-editor-container"})}}],r&&c(n.prototype,r),s&&c(n,s),t}(o.default.Component);v.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),height:r.default.oneOfType([r.default.string,r.default.number]),value:r.default.string,defaultValue:r.default.string,language:r.default.string,theme:r.default.string,options:r.default.object,overrideServices:r.default.object,editorDidMount:r.default.func,editorWillMount:r.default.func,onChange:r.default.func},v.defaultProps={width:"100%",height:"100%",value:null,defaultValue:"",language:"javascript",theme:null,options:{},overrideServices:{},editorDidMount:a.noop,editorWillMount:a.noop,onChange:a.noop};var g=v;t.default=g},77810:function(e,t,n){"use strict";Object.defineProperty(t,"ZP",{enumerable:!0,get:function(){return i.default}});var i=o(n(81677)),r=o(n(855));function o(e){return e&&e.__esModule?e:{default:e}}},91953:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.processSize=function(e){return/^\d+$/.test(e)?"".concat(e,"px"):e},t.noop=function(){}},14126:function(e,t,n){"use strict";n.r(t),n.d(t,{Manager:function(){return a},Popper:function(){return h},Reference:function(){return v},usePopper:function(){return u.D}});var i=n(4519),r=i.createContext(),o=i.createContext();function a(e){var t=e.children,n=i.useState(null),a=n[0],s=n[1],u=i.useRef(!1);i.useEffect((function(){return function(){u.current=!0}}),[]);var l=i.useCallback((function(e){u.current||s(e)}),[]);return i.createElement(r.Provider,{value:a},i.createElement(o.Provider,{value:l},t))}var s=n(11215),u=n(23428),l=function(){},c=function(){return Promise.resolve(null)},d=[];function h(e){var t=e.placement,n=void 0===t?"bottom":t,o=e.strategy,a=void 0===o?"absolute":o,h=e.modifiers,f=void 0===h?d:h,p=e.referenceElement,v=e.onFirstUpdate,g=e.innerRef,m=e.children,_=i.useContext(r),y=i.useState(null),b=y[0],w=y[1],C=i.useState(null),k=C[0],S=C[1];i.useEffect((function(){(0,s.k$)(g,b)}),[g,b]);var x=i.useMemo((function(){return{placement:n,strategy:a,onFirstUpdate:v,modifiers:[].concat(f,[{name:"arrow",enabled:null!=k,options:{element:k}}])}}),[n,a,v,f,k]),L=(0,u.D)(p||_,b,x),E=L.state,N=L.styles,D=L.forceUpdate,M=L.update,T=i.useMemo((function(){return{ref:w,style:N.popper,placement:E?E.placement:n,hasPopperEscaped:E&&E.modifiersData.hide?E.modifiersData.hide.hasPopperEscaped:null,isReferenceHidden:E&&E.modifiersData.hide?E.modifiersData.hide.isReferenceHidden:null,arrowProps:{style:N.arrow,ref:S},forceUpdate:D||l,update:M||c}}),[w,S,n,E,N,M,D]);return(0,s.$p)(m)(T)}var f=n(476),p=n.n(f);function v(e){var t=e.children,n=e.innerRef,r=i.useContext(o),a=i.useCallback((function(e){(0,s.k$)(n,e),(0,s.DL)(r,e)}),[n,r]);return i.useEffect((function(){return function(){return(0,s.k$)(n,null)}}),[]),i.useEffect((function(){p()(Boolean(r),"`Reference` should not be used outside of a `Manager` component.")}),[r]),(0,s.$p)(t)({ref:a})}},23428:function(e,t,n){"use strict";n.d(t,{D:function(){return xe}});var i=n(4519),r=n(84453);function o(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function a(e){return e instanceof o(e).Element||e instanceof Element}function s(e){return e instanceof o(e).HTMLElement||e instanceof HTMLElement}function u(e){return"undefined"!==typeof ShadowRoot&&(e instanceof o(e).ShadowRoot||e instanceof ShadowRoot)}var l=Math.max,c=Math.min,d=Math.round;function h(){var e=navigator.userAgentData;return null!=e&&e.brands?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function f(){return!/^((?!chrome|android).)*safari/i.test(h())}function p(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),r=1,u=1;t&&s(e)&&(r=e.offsetWidth>0&&d(i.width)/e.offsetWidth||1,u=e.offsetHeight>0&&d(i.height)/e.offsetHeight||1);var l=(a(e)?o(e):window).visualViewport,c=!f()&&n,h=(i.left+(c&&l?l.offsetLeft:0))/r,p=(i.top+(c&&l?l.offsetTop:0))/u,v=i.width/r,g=i.height/u;return{width:v,height:g,top:p,right:h+v,bottom:p+g,left:h,x:h,y:p}}function v(e){var t=o(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function g(e){return e?(e.nodeName||"").toLowerCase():null}function m(e){return((a(e)?e.ownerDocument:e.document)||window.document).documentElement}function _(e){return p(m(e)).left+v(e).scrollLeft}function y(e){return o(e).getComputedStyle(e)}function b(e){var t=y(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+i)}function w(e,t,n){void 0===n&&(n=!1);var i=s(t),r=s(t)&&function(e){var t=e.getBoundingClientRect(),n=d(t.width)/e.offsetWidth||1,i=d(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=m(t),u=p(e,r,n),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(i||!i&&!n)&&(("body"!==g(t)||b(a))&&(l=function(e){return e!==o(e)&&s(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:v(e);var t}(t)),s(t)?((c=p(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=_(a))),{x:u.left+l.scrollLeft-c.x,y:u.top+l.scrollTop-c.y,width:u.width,height:u.height}}function C(e){var t=p(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function k(e){return"html"===g(e)?e:e.assignedSlot||e.parentNode||(u(e)?e.host:null)||m(e)}function S(e){return["html","body","#document"].indexOf(g(e))>=0?e.ownerDocument.body:s(e)&&b(e)?e:S(k(e))}function x(e,t){var n;void 0===t&&(t=[]);var i=S(e),r=i===(null==(n=e.ownerDocument)?void 0:n.body),a=o(i),s=r?[a].concat(a.visualViewport||[],b(i)?i:[]):i,u=t.concat(s);return r?u:u.concat(x(k(s)))}function L(e){return["table","td","th"].indexOf(g(e))>=0}function E(e){return s(e)&&"fixed"!==y(e).position?e.offsetParent:null}function N(e){for(var t=o(e),n=E(e);n&&L(n)&&"static"===y(n).position;)n=E(n);return n&&("html"===g(n)||"body"===g(n)&&"static"===y(n).position)?t:n||function(e){var t=/firefox/i.test(h());if(/Trident/i.test(h())&&s(e)&&"fixed"===y(e).position)return null;var n=k(e);for(u(n)&&(n=n.host);s(n)&&["html","body"].indexOf(g(n))<0;){var i=y(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}var D="top",M="bottom",T="right",O="left",I="auto",A=[D,M,T,O],P="start",R="end",Z="clippingParents",F="viewport",j="popper",H="reference",B=A.reduce((function(e,t){return e.concat([t+"-"+P,t+"-"+R])}),[]),z=[].concat(A,[I]).reduce((function(e,t){return e.concat([t,t+"-"+P,t+"-"+R])}),[]),W=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function V(e){var t=new Map,n=new Set,i=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&r(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),i}function Y(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}var U={placement:"bottom",modifiers:[],strategy:"absolute"};function K(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"===typeof e.getBoundingClientRect)}))}function q(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,i=void 0===n?[]:n,r=t.defaultOptions,o=void 0===r?U:r;return function(e,t,n){void 0===n&&(n=o);var r={placement:"bottom",orderedModifiers:[],options:Object.assign({},U,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},s=[],u=!1,l={state:r,setOptions:function(n){var u="function"===typeof n?n(r.options):n;c(),r.options=Object.assign({},o,r.options,u),r.scrollParents={reference:a(e)?x(e):e.contextElement?x(e.contextElement):[],popper:x(t)};var d=function(e){var t=V(e);return W.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}(function(e){var t=e.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}([].concat(i,r.options.modifiers)));return r.orderedModifiers=d.filter((function(e){return e.enabled})),r.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,i=void 0===n?{}:n,o=e.effect;if("function"===typeof o){var a=o({state:r,name:t,instance:l,options:i}),u=function(){};s.push(a||u)}})),l.update()},forceUpdate:function(){if(!u){var e=r.elements,t=e.reference,n=e.popper;if(K(t,n)){r.rects={reference:w(t,N(n),"fixed"===r.options.strategy),popper:C(n)},r.reset=!1,r.placement=r.options.placement,r.orderedModifiers.forEach((function(e){return r.modifiersData[e.name]=Object.assign({},e.data)}));for(var i=0;i<r.orderedModifiers.length;i++)if(!0!==r.reset){var o=r.orderedModifiers[i],a=o.fn,s=o.options,c=void 0===s?{}:s,d=o.name;"function"===typeof a&&(r=a({state:r,options:c,name:d,instance:l})||r)}else r.reset=!1,i=-1}}},update:Y((function(){return new Promise((function(e){l.forceUpdate(),e(r)}))})),destroy:function(){c(),u=!0}};if(!K(e,t))return l;function c(){s.forEach((function(e){return e()})),s=[]}return l.setOptions(n).then((function(e){!u&&n.onFirstUpdate&&n.onFirstUpdate(e)})),l}}var G={passive:!0};function $(e){return e.split("-")[0]}function Q(e){return e.split("-")[1]}function X(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function J(e){var t,n=e.reference,i=e.element,r=e.placement,o=r?$(r):null,a=r?Q(r):null,s=n.x+n.width/2-i.width/2,u=n.y+n.height/2-i.height/2;switch(o){case D:t={x:s,y:n.y-i.height};break;case M:t={x:s,y:n.y+n.height};break;case T:t={x:n.x+n.width,y:u};break;case O:t={x:n.x-i.width,y:u};break;default:t={x:n.x,y:n.y}}var l=o?X(o):null;if(null!=l){var c="y"===l?"height":"width";switch(a){case P:t[l]=t[l]-(n[c]/2-i[c]/2);break;case R:t[l]=t[l]+(n[c]/2-i[c]/2)}}return t}var ee={top:"auto",right:"auto",bottom:"auto",left:"auto"};function te(e){var t,n=e.popper,i=e.popperRect,r=e.placement,a=e.variation,s=e.offsets,u=e.position,l=e.gpuAcceleration,c=e.adaptive,h=e.roundOffsets,f=e.isFixed,p=s.x,v=void 0===p?0:p,g=s.y,_=void 0===g?0:g,b="function"===typeof h?h({x:v,y:_}):{x:v,y:_};v=b.x,_=b.y;var w=s.hasOwnProperty("x"),C=s.hasOwnProperty("y"),k=O,S=D,x=window;if(c){var L=N(n),E="clientHeight",I="clientWidth";if(L===o(n)&&"static"!==y(L=m(n)).position&&"absolute"===u&&(E="scrollHeight",I="scrollWidth"),r===D||(r===O||r===T)&&a===R)S=M,_-=(f&&L===x&&x.visualViewport?x.visualViewport.height:L[E])-i.height,_*=l?1:-1;if(r===O||(r===D||r===M)&&a===R)k=T,v-=(f&&L===x&&x.visualViewport?x.visualViewport.width:L[I])-i.width,v*=l?1:-1}var A,P=Object.assign({position:u},c&&ee),Z=!0===h?function(e){var t=e.x,n=e.y,i=window.devicePixelRatio||1;return{x:d(t*i)/i||0,y:d(n*i)/i||0}}({x:v,y:_}):{x:v,y:_};return v=Z.x,_=Z.y,l?Object.assign({},P,((A={})[S]=C?"0":"",A[k]=w?"0":"",A.transform=(x.devicePixelRatio||1)<=1?"translate("+v+"px, "+_+"px)":"translate3d("+v+"px, "+_+"px, 0)",A)):Object.assign({},P,((t={})[S]=C?_+"px":"",t[k]=w?v+"px":"",t.transform="",t))}var ne={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,i=e.name,r=n.offset,o=void 0===r?[0,0]:r,a=z.reduce((function(e,n){return e[n]=function(e,t,n){var i=$(e),r=[O,D].indexOf(i)>=0?-1:1,o="function"===typeof n?n(Object.assign({},t,{placement:e})):n,a=o[0],s=o[1];return a=a||0,s=(s||0)*r,[O,T].indexOf(i)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,o),e}),{}),s=a[t.placement],u=s.x,l=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=l),t.modifiersData[i]=a}},ie={left:"right",right:"left",bottom:"top",top:"bottom"};function re(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var oe={start:"end",end:"start"};function ae(e){return e.replace(/start|end/g,(function(e){return oe[e]}))}function se(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&u(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function ue(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function le(e,t,n){return t===F?ue(function(e,t){var n=o(e),i=m(e),r=n.visualViewport,a=i.clientWidth,s=i.clientHeight,u=0,l=0;if(r){a=r.width,s=r.height;var c=f();(c||!c&&"fixed"===t)&&(u=r.offsetLeft,l=r.offsetTop)}return{width:a,height:s,x:u+_(e),y:l}}(e,n)):a(t)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):ue(function(e){var t,n=m(e),i=v(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=l(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=l(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-i.scrollLeft+_(e),u=-i.scrollTop;return"rtl"===y(r||n).direction&&(s+=l(n.clientWidth,r?r.clientWidth:0)-o),{width:o,height:a,x:s,y:u}}(m(e)))}function ce(e,t,n,i){var r="clippingParents"===t?function(e){var t=x(k(e)),n=["absolute","fixed"].indexOf(y(e).position)>=0&&s(e)?N(e):e;return a(n)?t.filter((function(e){return a(e)&&se(e,n)&&"body"!==g(e)})):[]}(e):[].concat(t),o=[].concat(r,[n]),u=o[0],d=o.reduce((function(t,n){var r=le(e,n,i);return t.top=l(r.top,t.top),t.right=c(r.right,t.right),t.bottom=c(r.bottom,t.bottom),t.left=l(r.left,t.left),t}),le(e,u,i));return d.width=d.right-d.left,d.height=d.bottom-d.top,d.x=d.left,d.y=d.top,d}function de(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function he(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function fe(e,t){void 0===t&&(t={});var n=t,i=n.placement,r=void 0===i?e.placement:i,o=n.strategy,s=void 0===o?e.strategy:o,u=n.boundary,l=void 0===u?Z:u,c=n.rootBoundary,d=void 0===c?F:c,h=n.elementContext,f=void 0===h?j:h,v=n.altBoundary,g=void 0!==v&&v,_=n.padding,y=void 0===_?0:_,b=de("number"!==typeof y?y:he(y,A)),w=f===j?H:j,C=e.rects.popper,k=e.elements[g?w:f],S=ce(a(k)?k:k.contextElement||m(e.elements.popper),l,d,s),x=p(e.elements.reference),L=J({reference:x,element:C,strategy:"absolute",placement:r}),E=ue(Object.assign({},C,L)),N=f===j?E:x,O={top:S.top-N.top+b.top,bottom:N.bottom-S.bottom+b.bottom,left:S.left-N.left+b.left,right:N.right-S.right+b.right},I=e.modifiersData.offset;if(f===j&&I){var P=I[r];Object.keys(O).forEach((function(e){var t=[T,M].indexOf(e)>=0?1:-1,n=[D,M].indexOf(e)>=0?"y":"x";O[e]+=P[n]*t}))}return O}function pe(e,t,n){return l(e,c(t,n))}var ve={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,i=e.name,r=n.mainAxis,o=void 0===r||r,a=n.altAxis,s=void 0!==a&&a,u=n.boundary,d=n.rootBoundary,h=n.altBoundary,f=n.padding,p=n.tether,v=void 0===p||p,g=n.tetherOffset,m=void 0===g?0:g,_=fe(t,{boundary:u,rootBoundary:d,padding:f,altBoundary:h}),y=$(t.placement),b=Q(t.placement),w=!b,k=X(y),S="x"===k?"y":"x",x=t.modifiersData.popperOffsets,L=t.rects.reference,E=t.rects.popper,I="function"===typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,A="number"===typeof I?{mainAxis:I,altAxis:I}:Object.assign({mainAxis:0,altAxis:0},I),R=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,Z={x:0,y:0};if(x){if(o){var F,j="y"===k?D:O,H="y"===k?M:T,B="y"===k?"height":"width",z=x[k],W=z+_[j],V=z-_[H],Y=v?-E[B]/2:0,U=b===P?L[B]:E[B],K=b===P?-E[B]:-L[B],q=t.elements.arrow,G=v&&q?C(q):{width:0,height:0},J=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},ee=J[j],te=J[H],ne=pe(0,L[B],G[B]),ie=w?L[B]/2-Y-ne-ee-A.mainAxis:U-ne-ee-A.mainAxis,re=w?-L[B]/2+Y+ne+te+A.mainAxis:K+ne+te+A.mainAxis,oe=t.elements.arrow&&N(t.elements.arrow),ae=oe?"y"===k?oe.clientTop||0:oe.clientLeft||0:0,se=null!=(F=null==R?void 0:R[k])?F:0,ue=z+re-se,le=pe(v?c(W,z+ie-se-ae):W,z,v?l(V,ue):V);x[k]=le,Z[k]=le-z}if(s){var ce,de="x"===k?D:O,he="x"===k?M:T,ve=x[S],ge="y"===S?"height":"width",me=ve+_[de],_e=ve-_[he],ye=-1!==[D,O].indexOf(y),be=null!=(ce=null==R?void 0:R[S])?ce:0,we=ye?me:ve-L[ge]-E[ge]-be+A.altAxis,Ce=ye?ve+L[ge]+E[ge]-be-A.altAxis:_e,ke=v&&ye?function(e,t,n){var i=pe(e,t,n);return i>n?n:i}(we,ve,Ce):pe(v?we:me,ve,v?Ce:_e);x[S]=ke,Z[S]=ke-ve}t.modifiersData[i]=Z}},requiresIfExists:["offset"]},ge=function(e,t){return de("number"!==typeof(e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:he(e,A))};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,i=e.name,r=e.options,o=n.elements.arrow,a=n.modifiersData.popperOffsets,s=$(n.placement),u=X(s),l=[O,T].indexOf(s)>=0?"height":"width";if(o&&a){var c=ge(r.padding,n),d=C(o),h="y"===u?D:O,f="y"===u?M:T,p=n.rects.reference[l]+n.rects.reference[u]-a[u]-n.rects.popper[l],v=a[u]-n.rects.reference[u],g=N(o),m=g?"y"===u?g.clientHeight||0:g.clientWidth||0:0,_=p/2-v/2,y=c[h],b=m-d[l]-c[f],w=m/2-d[l]/2+_,k=pe(y,w,b),S=u;n.modifiersData[i]=((t={})[S]=k,t.centerOffset=k-w,t)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!==typeof i||(i=t.elements.popper.querySelector(i)))&&se(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function _e(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,T,M,O].some((function(t){return e[t]>=0}))}var be=q({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,r=i.scroll,a=void 0===r||r,s=i.resize,u=void 0===s||s,l=o(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&c.forEach((function(e){e.addEventListener("scroll",n.update,G)})),u&&l.addEventListener("resize",n.update,G),function(){a&&c.forEach((function(e){e.removeEventListener("scroll",n.update,G)})),u&&l.removeEventListener("resize",n.update,G)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=J({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,r=void 0===i||i,o=n.adaptive,a=void 0===o||o,s=n.roundOffsets,u=void 0===s||s,l={placement:$(t.placement),variation:Q(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,te(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:u})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,te(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},r=t.elements[e];s(r)&&g(r)&&(Object.assign(r.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});s(i)&&g(i)&&(Object.assign(i.style,o),Object.keys(r).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]},ne,{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var r=n.mainAxis,o=void 0===r||r,a=n.altAxis,s=void 0===a||a,u=n.fallbackPlacements,l=n.padding,c=n.boundary,d=n.rootBoundary,h=n.altBoundary,f=n.flipVariations,p=void 0===f||f,v=n.allowedAutoPlacements,g=t.options.placement,m=$(g),_=u||(m===g||!p?[re(g)]:function(e){if($(e)===I)return[];var t=re(e);return[ae(e),t,ae(t)]}(g)),y=[g].concat(_).reduce((function(e,n){return e.concat($(n)===I?function(e,t){void 0===t&&(t={});var n=t,i=n.placement,r=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,u=n.allowedAutoPlacements,l=void 0===u?z:u,c=Q(i),d=c?s?B:B.filter((function(e){return Q(e)===c})):A,h=d.filter((function(e){return l.indexOf(e)>=0}));0===h.length&&(h=d);var f=h.reduce((function(t,n){return t[n]=fe(e,{placement:n,boundary:r,rootBoundary:o,padding:a})[$(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:n,boundary:c,rootBoundary:d,padding:l,flipVariations:p,allowedAutoPlacements:v}):n)}),[]),b=t.rects.reference,w=t.rects.popper,C=new Map,k=!0,S=y[0],x=0;x<y.length;x++){var L=y[x],E=$(L),N=Q(L)===P,R=[D,M].indexOf(E)>=0,Z=R?"width":"height",F=fe(t,{placement:L,boundary:c,rootBoundary:d,altBoundary:h,padding:l}),j=R?N?T:O:N?M:D;b[Z]>w[Z]&&(j=re(j));var H=re(j),W=[];if(o&&W.push(F[E]<=0),s&&W.push(F[j]<=0,F[H]<=0),W.every((function(e){return e}))){S=L,k=!1;break}C.set(L,W)}if(k)for(var V=function(e){var t=y.find((function(t){var n=C.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return S=t,"break"},Y=p?3:1;Y>0;Y--){if("break"===V(Y))break}t.placement!==S&&(t.modifiersData[i]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},ve,me,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,a=fe(t,{elementContext:"reference"}),s=fe(t,{altBoundary:!0}),u=_e(a,i),l=_e(s,r,o),c=ye(u),d=ye(l);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}}]}),we=n(88807),Ce=n.n(we),ke=n(11215),Se=[],xe=function(e,t,n){void 0===n&&(n={});var o=i.useRef(null),a={onFirstUpdate:n.onFirstUpdate,placement:n.placement||"bottom",strategy:n.strategy||"absolute",modifiers:n.modifiers||Se},s=i.useState({styles:{popper:{position:a.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),u=s[0],l=s[1],c=i.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(e){var t=e.state,n=Object.keys(t.elements);r.flushSync((function(){l({styles:(0,ke.sq)(n.map((function(e){return[e,t.styles[e]||{}]}))),attributes:(0,ke.sq)(n.map((function(e){return[e,t.attributes[e]]})))})}))},requires:["computeStyles"]}}),[]),d=i.useMemo((function(){var e={onFirstUpdate:a.onFirstUpdate,placement:a.placement,strategy:a.strategy,modifiers:[].concat(a.modifiers,[c,{name:"applyStyles",enabled:!1}])};return Ce()(o.current,e)?o.current||e:(o.current=e,e)}),[a.onFirstUpdate,a.placement,a.strategy,a.modifiers,c]),h=i.useRef();return(0,ke.LI)((function(){h.current&&h.current.setOptions(d)}),[d]),(0,ke.LI)((function(){if(null!=e&&null!=t){var i=(n.createPopper||be)(e,t,d);return h.current=i,function(){i.destroy(),h.current=null}}}),[e,t,n.createPopper]),{state:h.current?h.current.state:null,styles:u.styles,attributes:u.attributes,update:h.current?h.current.update:null,forceUpdate:h.current?h.current.forceUpdate:null}}},11215:function(e,t,n){"use strict";n.d(t,{$p:function(){return r},DL:function(){return o},LI:function(){return u},k$:function(){return a},sq:function(){return s}});var i=n(4519),r=function(e){return Array.isArray(e)?e[0]:e},o=function(e){if("function"===typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return e.apply(void 0,n)}},a=function(e,t){if("function"===typeof e)return o(e,t);null!=e&&(e.current=t)},s=function(e){return e.reduce((function(e,t){var n=t[0],i=t[1];return e[n]=i,e}),{})},u="undefined"!==typeof window&&window.document&&window.document.createElement?i.useLayoutEffect:i.useEffect},39801:function(e,t,n){var i=n(60060);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=h;var r=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,i=[],o=0,a=0,s="",c=t&&t.delimiter||"/";null!=(n=r.exec(e));){var d=n[0],h=n[1],f=n.index;if(s+=e.slice(a,f),a=f+d.length,h)s+=h[1];else{var p=e[a],v=n[2],g=n[3],m=n[4],_=n[5],y=n[6],b=n[7];s&&(i.push(s),s="");var w=null!=v&&null!=p&&p!==v,C="+"===y||"*"===y,k="?"===y||"*"===y,S=n[2]||c,x=m||_;i.push({name:g||o++,prefix:v||"",delimiter:S,optional:k,repeat:C,partial:w,asterisk:!!b,pattern:x?l(x):b?".*":"[^"+u(S)+"]+?"})}}return a<e.length&&(s+=e.substr(a)),s&&i.push(s),i}function a(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),r=0;r<e.length;r++)"object"===typeof e[r]&&(n[r]=new RegExp("^(?:"+e[r].pattern+")$",d(t)));return function(t,r){for(var o="",s=t||{},u=(r||{}).pretty?a:encodeURIComponent,l=0;l<e.length;l++){var c=e[l];if("string"!==typeof c){var d,h=s[c.name];if(null==h){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(i(h)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(h)+"`");if(0===h.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<h.length;f++){if(d=u(h[f]),!n[l].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(h).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):u(h),!n[l].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function u(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function l(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function h(e,t,n){i(t)||(n=t||n,t=[]);for(var r=(n=n||{}).strict,o=!1!==n.end,a="",s=0;s<e.length;s++){var l=e[s];if("string"===typeof l)a+=u(l);else{var h=u(l.prefix),f="(?:"+l.pattern+")";t.push(l),l.repeat&&(f+="(?:"+h+f+")*"),a+=f=l.optional?l.partial?h+"("+f+")?":"(?:"+h+"("+f+"))?":h+"("+f+")"}}var p=u(n.delimiter||"/"),v=a.slice(-p.length)===p;return r||(a=(v?a.slice(0,-p.length):a)+"(?:"+p+"(?=$))?"),a+=o?"$":r&&v?"":"(?="+p+"|$)",c(new RegExp("^"+a,d(n)),t)}function f(e,t,n){return i(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var i=0;i<n.length;i++)t.push({name:i,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):i(e)?function(e,t,n){for(var i=[],r=0;r<e.length;r++)i.push(f(e[r],t,n).source);return c(new RegExp("(?:"+i.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return h(o(e,n),t,n)}(e,t,n)}},31111:function(e,t){"use strict";var n="function"===typeof Symbol&&Symbol.for,i=n?Symbol.for("react.element"):60103,r=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,h=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,p=n?Symbol.for("react.suspense_list"):60120,v=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.block"):60121,_=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,b=n?Symbol.for("react.scope"):60119;function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case i:switch(e=e.type){case c:case d:case o:case s:case a:case f:return e;default:switch(e=e&&e.$$typeof){case l:case h:case g:case v:case u:return e;default:return t}}case r:return t}}}function C(e){return w(e)===d}},29685:function(e,t,n){"use strict";n(31111)},71461:function(e,t,n){"use strict";n.r(t),n.d(t,{SortableContainer:function(){return J},SortableElement:function(){return ne},SortableHandle:function(){return Y},arrayMove:function(){return C},sortableContainer:function(){return J},sortableElement:function(){return ne},sortableHandle:function(){return Y}});var i=n(87462),r=n(29439),o=n(4942);function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},i=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&i.push.apply(i,Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach((function(t){(0,o.Z)(e,t,n[t])}))}return e}var s=n(15671),u=n(43144),l=n(6215),c=n(61120),d=n(60136),h=n(97326),f=n(4519),p=n(84453),v=n(15731),g=n.n(v),m=n(93433),_=n(91386),y=n.n(_),b=function(){function e(){(0,s.Z)(this,e),(0,o.Z)(this,"refs",{})}return(0,u.Z)(e,[{key:"add",value:function(e,t){this.refs[e]||(this.refs[e]=[]),this.refs[e].push(t)}},{key:"remove",value:function(e,t){var n=this.getIndex(e,t);-1!==n&&this.refs[e].splice(n,1)}},{key:"isActive",value:function(){return this.active}},{key:"getActive",value:function(){var e=this;return this.refs[this.active.collection].find((function(t){return t.node.sortableInfo.index==e.active.index}))}},{key:"getIndex",value:function(e,t){return this.refs[e].indexOf(t)}},{key:"getOrderedRefs",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.active.collection;return this.refs[e].sort(w)}}]),e}();function w(e,t){return e.node.sortableInfo.index-t.node.sortableInfo.index}function C(e,t,n){return(e=e.slice()).splice(n<0?e.length+n:n,0,e.splice(t,1)[0]),e}function k(e,t){return Object.keys(e).reduce((function(n,i){return-1===t.indexOf(i)&&(n[i]=e[i]),n}),{})}var S={end:["touchend","touchcancel","mouseup"],move:["touchmove","mousemove"],start:["touchstart","mousedown"]},x=function(){if("undefined"===typeof window||"undefined"===typeof document)return"";var e=window.getComputedStyle(document.documentElement,"")||["-moz-hidden-iframe"],t=(Array.prototype.slice.call(e).join("").match(/-(moz|webkit|ms)-/)||""===e.OLink&&["","o"])[1];return"ms"===t?"ms":t&&t.length?t[0].toUpperCase()+t.substr(1):""}();function L(e,t){Object.keys(t).forEach((function(n){e.style[n]=t[n]}))}function E(e,t){e.style["".concat(x,"Transform")]=null==t?"":"translate3d(".concat(t.x,"px,").concat(t.y,"px,0)")}function N(e,t){e.style["".concat(x,"TransitionDuration")]=null==t?"":"".concat(t,"ms")}function D(e,t){for(;e;){if(t(e))return e;e=e.parentNode}return null}function M(e,t,n){return Math.max(e,Math.min(n,t))}function T(e){return"px"===e.substr(-2)?parseFloat(e):0}function O(e,t){var n=t.displayName||t.name;return n?"".concat(e,"(").concat(n,")"):e}function I(e,t){var n=e.getBoundingClientRect();return{top:n.top+t.top,left:n.left+t.left}}function A(e){return e.touches&&e.touches.length?{x:e.touches[0].pageX,y:e.touches[0].pageY}:e.changedTouches&&e.changedTouches.length?{x:e.changedTouches[0].pageX,y:e.changedTouches[0].pageY}:{x:e.pageX,y:e.pageY}}function P(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{left:0,top:0};if(e){var i={left:n.left+e.offsetLeft,top:n.top+e.offsetTop};return e.parentNode===t?i:P(e.parentNode,t,i)}}function R(e){var t=e.lockOffset,n=e.width,i=e.height,r=t,o=t,a="px";if("string"===typeof t){var s=/^[+-]?\d*(?:\.\d*)?(px|%)$/.exec(t);g()(null!==s,'lockOffset value should be a number or a string of a number followed by "px" or "%". Given %s',t),r=parseFloat(t),o=parseFloat(t),a=s[1]}return g()(isFinite(r)&&isFinite(o),"lockOffset value should be a finite. Given %s",t),"%"===a&&(r=r*n/100,o=o*i/100),{x:r,y:o}}function Z(e){return e instanceof HTMLElement?function(e){var t=window.getComputedStyle(e),n=/(auto|scroll)/;return["overflow","overflowX","overflowY"].find((function(e){return n.test(t[e])}))}(e)?e:Z(e.parentNode):null}var F=27,j=32,H=37,B=38,z=39,W=40,V={Anchor:"A",Button:"BUTTON",Canvas:"CANVAS",Input:"INPUT",Option:"OPTION",Textarea:"TEXTAREA",Select:"SELECT"};function Y(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{withRef:!1};return n=t=function(t){function n(){var e,t;(0,s.Z)(this,n);for(var i=arguments.length,r=new Array(i),a=0;a<i;a++)r[a]=arguments[a];return t=(0,l.Z)(this,(e=(0,c.Z)(n)).call.apply(e,[this].concat(r))),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"wrappedInstance",(0,f.createRef)()),t}return(0,d.Z)(n,t),(0,u.Z)(n,[{key:"componentDidMount",value:function(){(0,p.findDOMNode)(this).sortableHandle=!0}},{key:"getWrappedInstance",value:function(){return g()(r.withRef,"To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call"),this.wrappedInstance.current}},{key:"render",value:function(){var t=r.withRef?this.wrappedInstance:null;return(0,f.createElement)(e,(0,i.Z)({ref:t},this.props))}}]),n}(f.Component),(0,o.Z)(t,"displayName",O("sortableHandle",e)),n}function U(e){return null!=e.sortableHandle}var K=function(){function e(t,n){(0,s.Z)(this,e),this.container=t,this.onScrollCallback=n}return(0,u.Z)(e,[{key:"clear",value:function(){null!=this.interval&&(clearInterval(this.interval),this.interval=null)}},{key:"update",value:function(e){var t=this,n=e.translate,i=e.minTranslate,r=e.maxTranslate,o=e.width,a=e.height,s={x:0,y:0},u={x:1,y:1},l=10,c=10,d=this.container,h=d.scrollTop,f=d.scrollLeft,p=d.scrollHeight,v=d.scrollWidth,g=0===h,m=p-h-d.clientHeight===0,_=0===f,y=v-f-d.clientWidth===0;n.y>=r.y-a/2&&!m?(s.y=1,u.y=c*Math.abs((r.y-a/2-n.y)/a)):n.x>=r.x-o/2&&!y?(s.x=1,u.x=l*Math.abs((r.x-o/2-n.x)/o)):n.y<=i.y+a/2&&!g?(s.y=-1,u.y=c*Math.abs((n.y-a/2-i.y)/a)):n.x<=i.x+o/2&&!_&&(s.x=-1,u.x=l*Math.abs((n.x-o/2-i.x)/o)),this.interval&&(this.clear(),this.isAutoScrolling=!1),0===s.x&&0===s.y||(this.interval=setInterval((function(){t.isAutoScrolling=!0;var e={left:u.x*s.x,top:u.y*s.y};t.container.scrollTop+=e.top,t.container.scrollLeft+=e.left,t.onScrollCallback(e)}),5))}}]),e}();var q={axis:y().oneOf(["x","y","xy"]),contentWindow:y().any,disableAutoscroll:y().bool,distance:y().number,getContainer:y().func,getHelperDimensions:y().func,helperClass:y().string,helperContainer:y().oneOfType([y().func,"undefined"===typeof HTMLElement?y().any:y().instanceOf(HTMLElement)]),hideSortableGhost:y().bool,keyboardSortingTransitionDuration:y().number,lockAxis:y().string,lockOffset:y().oneOfType([y().number,y().string,y().arrayOf(y().oneOfType([y().number,y().string]))]),lockToContainerEdges:y().bool,onSortEnd:y().func,onSortMove:y().func,onSortOver:y().func,onSortStart:y().func,pressDelay:y().number,pressThreshold:y().number,keyCodes:y().shape({lift:y().arrayOf(y().number),drop:y().arrayOf(y().number),cancel:y().arrayOf(y().number),up:y().arrayOf(y().number),down:y().arrayOf(y().number)}),shouldCancelStart:y().func,transitionDuration:y().number,updateBeforeSortStart:y().func,useDragHandle:y().bool,useWindowAsScrollContainer:y().bool},G={lift:[j],drop:[j],cancel:[F],up:[B,H],down:[W,z]},$={axis:"y",disableAutoscroll:!1,distance:0,getHelperDimensions:function(e){var t=e.node;return{height:t.offsetHeight,width:t.offsetWidth}},hideSortableGhost:!0,lockOffset:"50%",lockToContainerEdges:!1,pressDelay:0,pressThreshold:5,keyCodes:G,shouldCancelStart:function(e){return-1!==[V.Input,V.Textarea,V.Select,V.Option,V.Button].indexOf(e.target.tagName)||!!D(e.target,(function(e){return"true"===e.contentEditable}))},transitionDuration:300,useWindowAsScrollContainer:!1},Q=Object.keys(q);var X=(0,f.createContext)({manager:{}});function J(e){var t,n,v=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{withRef:!1};return n=t=function(t){function n(e){var t;(0,s.Z)(this,n),t=(0,l.Z)(this,(0,c.Z)(n).call(this,e)),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"state",{}),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"handleStart",(function(e){var n=t.props,i=n.distance,r=n.shouldCancelStart;if(2!==e.button&&!r(e)){t.touched=!0,t.position=A(e);var o=D(e.target,(function(e){return null!=e.sortableInfo}));if(o&&o.sortableInfo&&t.nodeIsChild(o)&&!t.state.sorting){var a=t.props.useDragHandle,s=o.sortableInfo,u=s.index,l=s.collection;if(s.disabled)return;if(a&&!D(e.target,U))return;t.manager.active={collection:l,index:u},function(e){return e.touches&&e.touches.length||e.changedTouches&&e.changedTouches.length}(e)||e.target.tagName!==V.Anchor||e.preventDefault(),i||(0===t.props.pressDelay?t.handlePress(e):t.pressTimer=setTimeout((function(){return t.handlePress(e)}),t.props.pressDelay))}}})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"nodeIsChild",(function(e){return e.sortableInfo.manager===t.manager})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"handleMove",(function(e){var n=t.props,i=n.distance,r=n.pressThreshold;if(!t.state.sorting&&t.touched&&!t._awaitingUpdateBeforeSortStart){var o=A(e),a={x:t.position.x-o.x,y:t.position.y-o.y},s=Math.abs(a.x)+Math.abs(a.y);t.delta=a,i||r&&!(s>=r)?i&&s>=i&&t.manager.isActive()&&t.handlePress(e):(clearTimeout(t.cancelTimer),t.cancelTimer=setTimeout(t.cancel,0))}})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"handleEnd",(function(){t.touched=!1,t.cancel()})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"cancel",(function(){var e=t.props.distance;t.state.sorting||(e||clearTimeout(t.pressTimer),t.manager.active=null)})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"handlePress",(function(e){try{var n=t.manager.getActive(),i=function(){if(n){var i=function(){var n=f.sortableInfo.index,i=function(e){var t=window.getComputedStyle(e);return{bottom:T(t.marginBottom),left:T(t.marginLeft),right:T(t.marginRight),top:T(t.marginTop)}}(f),r=function(e){var t=window.getComputedStyle(e);return"grid"===t.display?{x:T(t.gridColumnGap),y:T(t.gridRowGap)}:{x:0,y:0}}(t.container),c=t.scrollContainer.getBoundingClientRect(),g=s({index:n,node:f,collection:p});if(t.node=f,t.margin=i,t.gridGap=r,t.width=g.width,t.height=g.height,t.marginOffset={x:t.margin.left+t.margin.right+t.gridGap.x,y:Math.max(t.margin.top,t.margin.bottom,t.gridGap.y)},t.boundingClientRect=f.getBoundingClientRect(),t.containerBoundingRect=c,t.index=n,t.newIndex=n,t.axis={x:o.indexOf("x")>=0,y:o.indexOf("y")>=0},t.offsetEdge=P(f,t.container),t.initialOffset=A(v?a({},e,{pageX:t.boundingClientRect.left,pageY:t.boundingClientRect.top}):e),t.initialScroll={left:t.scrollContainer.scrollLeft,top:t.scrollContainer.scrollTop},t.initialWindowScroll={left:window.pageXOffset,top:window.pageYOffset},t.helper=t.helperContainer.appendChild(function(e){var t="input, textarea, select, canvas, [contenteditable]",n=e.querySelectorAll(t),i=e.cloneNode(!0);return(0,m.Z)(i.querySelectorAll(t)).forEach((function(e,t){"file"!==e.type&&(e.value=n[t].value),"radio"===e.type&&e.name&&(e.name="__sortableClone__".concat(e.name)),e.tagName===V.Canvas&&n[t].width>0&&n[t].height>0&&e.getContext("2d").drawImage(n[t],0,0)})),i}(f)),L(t.helper,{boxSizing:"border-box",height:"".concat(t.height,"px"),left:"".concat(t.boundingClientRect.left-i.left,"px"),pointerEvents:"none",position:"fixed",top:"".concat(t.boundingClientRect.top-i.top,"px"),width:"".concat(t.width,"px")}),v&&t.helper.focus(),l&&(t.sortableGhost=f,L(f,{opacity:0,visibility:"hidden"})),t.minTranslate={},t.maxTranslate={},v){var _=h?{top:0,left:0,width:t.contentWindow.innerWidth,height:t.contentWindow.innerHeight}:t.containerBoundingRect,y=_.top,b=_.left,w=_.width,C=y+_.height,k=b+w;t.axis.x&&(t.minTranslate.x=b-t.boundingClientRect.left,t.maxTranslate.x=k-(t.boundingClientRect.left+t.width)),t.axis.y&&(t.minTranslate.y=y-t.boundingClientRect.top,t.maxTranslate.y=C-(t.boundingClientRect.top+t.height))}else t.axis.x&&(t.minTranslate.x=(h?0:c.left)-t.boundingClientRect.left-t.width/2,t.maxTranslate.x=(h?t.contentWindow.innerWidth:c.left+c.width)-t.boundingClientRect.left-t.width/2),t.axis.y&&(t.minTranslate.y=(h?0:c.top)-t.boundingClientRect.top-t.height/2,t.maxTranslate.y=(h?t.contentWindow.innerHeight:c.top+c.height)-t.boundingClientRect.top-t.height/2);u&&u.split(" ").forEach((function(e){return t.helper.classList.add(e)})),t.listenerNode=e.touches?e.target:t.contentWindow,v?(t.listenerNode.addEventListener("wheel",t.handleKeyEnd,!0),t.listenerNode.addEventListener("mousedown",t.handleKeyEnd,!0),t.listenerNode.addEventListener("keydown",t.handleKeyDown)):(S.move.forEach((function(e){return t.listenerNode.addEventListener(e,t.handleSortMove,!1)})),S.end.forEach((function(e){return t.listenerNode.addEventListener(e,t.handleSortEnd,!1)}))),t.setState({sorting:!0,sortingIndex:n}),d&&d({node:f,index:n,collection:p,isKeySorting:v,nodes:t.manager.getOrderedRefs(),helper:t.helper},e),v&&t.keyMove(0)},r=t.props,o=r.axis,s=r.getHelperDimensions,u=r.helperClass,l=r.hideSortableGhost,c=r.updateBeforeSortStart,d=r.onSortStart,h=r.useWindowAsScrollContainer,f=n.node,p=n.collection,v=t.manager.isKeySorting,g=function(){if("function"===typeof c){t._awaitingUpdateBeforeSortStart=!0;var n=function(e,t){try{var n=e()}catch(i){return t(!0,i)}return n&&n.then?n.then(t.bind(null,!1),t.bind(null,!0)):t(!1,value)}((function(){var t=f.sortableInfo.index;return Promise.resolve(c({collection:p,index:t,node:f,isKeySorting:v},e)).then((function(){}))}),(function(e,n){if(t._awaitingUpdateBeforeSortStart=!1,e)throw n;return n}));if(n&&n.then)return n.then((function(){}))}}();return g&&g.then?g.then(i):i()}}();return Promise.resolve(i&&i.then?i.then((function(){})):void 0)}catch(r){return Promise.reject(r)}})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"handleSortMove",(function(e){var n=t.props.onSortMove;"function"===typeof e.preventDefault&&e.cancelable&&e.preventDefault(),t.updateHelperPosition(e),t.animateNodes(),t.autoscroll(),n&&n(e)})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"handleSortEnd",(function(e){var n=t.props,i=n.hideSortableGhost,r=n.onSortEnd,o=t.manager,a=o.active.collection,s=o.isKeySorting,u=t.manager.getOrderedRefs();t.listenerNode&&(s?(t.listenerNode.removeEventListener("wheel",t.handleKeyEnd,!0),t.listenerNode.removeEventListener("mousedown",t.handleKeyEnd,!0),t.listenerNode.removeEventListener("keydown",t.handleKeyDown)):(S.move.forEach((function(e){return t.listenerNode.removeEventListener(e,t.handleSortMove)})),S.end.forEach((function(e){return t.listenerNode.removeEventListener(e,t.handleSortEnd)})))),t.helper.parentNode.removeChild(t.helper),i&&t.sortableGhost&&L(t.sortableGhost,{opacity:"",visibility:""});for(var l=0,c=u.length;l<c;l++){var d=u[l],h=d.node;d.edgeOffset=null,d.boundingClientRect=null,E(h,null),N(h,null),d.translate=null}t.autoScroller.clear(),t.manager.active=null,t.manager.isKeySorting=!1,t.setState({sorting:!1,sortingIndex:null}),"function"===typeof r&&r({collection:a,newIndex:t.newIndex,oldIndex:t.index,isKeySorting:s,nodes:u},e),t.touched=!1})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"autoscroll",(function(){var e=t.props.disableAutoscroll,n=t.manager.isKeySorting;if(e)t.autoScroller.clear();else{if(n){var i=a({},t.translate),r=0,o=0;return t.axis.x&&(i.x=Math.min(t.maxTranslate.x,Math.max(t.minTranslate.x,t.translate.x)),r=t.translate.x-i.x),t.axis.y&&(i.y=Math.min(t.maxTranslate.y,Math.max(t.minTranslate.y,t.translate.y)),o=t.translate.y-i.y),t.translate=i,E(t.helper,t.translate),t.scrollContainer.scrollLeft+=r,void(t.scrollContainer.scrollTop+=o)}t.autoScroller.update({height:t.height,maxTranslate:t.maxTranslate,minTranslate:t.minTranslate,translate:t.translate,width:t.width})}})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"onAutoScroll",(function(e){t.translate.x+=e.left,t.translate.y+=e.top,t.animateNodes()})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"handleKeyDown",(function(e){var n=e.keyCode,i=t.props,r=i.shouldCancelStart,o=i.keyCodes,s=a({},G,void 0===o?{}:o);t.manager.active&&!t.manager.isKeySorting||!(t.manager.active||s.lift.includes(n)&&!r(e)&&t.isValidSortingTarget(e))||(e.stopPropagation(),e.preventDefault(),s.lift.includes(n)&&!t.manager.active?t.keyLift(e):s.drop.includes(n)&&t.manager.active?t.keyDrop(e):s.cancel.includes(n)?(t.newIndex=t.manager.active.index,t.keyDrop(e)):s.up.includes(n)?t.keyMove(-1):s.down.includes(n)&&t.keyMove(1))})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"keyLift",(function(e){var n=e.target,i=D(n,(function(e){return null!=e.sortableInfo})).sortableInfo,r=i.index,o=i.collection;t.initialFocusedNode=n,t.manager.isKeySorting=!0,t.manager.active={index:r,collection:o},t.handlePress(e)})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"keyMove",(function(e){var n=t.manager.getOrderedRefs(),i=n[n.length-1].node.sortableInfo.index,r=t.newIndex+e,o=t.newIndex;if(!(r<0||r>i)){t.prevIndex=o,t.newIndex=r;var a=function(e,t,n){return e<n&&e>t?e-1:e>n&&e<t?e+1:e}(t.newIndex,t.prevIndex,t.index),s=n.find((function(e){return e.node.sortableInfo.index===a})),u=s.node,l=t.containerScrollDelta,c=s.boundingClientRect||I(u,l),d=s.translate||{x:0,y:0},h=c.top+d.y-l.top,f=c.left+d.x-l.left,p=o<r,v=p&&t.axis.x?u.offsetWidth-t.width:0,g=p&&t.axis.y?u.offsetHeight-t.height:0;t.handleSortMove({pageX:f+v,pageY:h+g,ignoreTransition:0===e})}})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"keyDrop",(function(e){t.handleSortEnd(e),t.initialFocusedNode&&t.initialFocusedNode.focus()})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"handleKeyEnd",(function(e){t.manager.active&&t.keyDrop(e)})),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"isValidSortingTarget",(function(e){var n=t.props.useDragHandle,i=e.target,r=D(i,(function(e){return null!=e.sortableInfo}));return r&&r.sortableInfo&&!r.sortableInfo.disabled&&(n?U(i):i.sortableInfo)}));var i=new b;return function(e){g()(!(e.distance&&e.pressDelay),"Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.")}(e),t.manager=i,t.wrappedInstance=(0,f.createRef)(),t.sortableContextValue={manager:i},t.events={end:t.handleEnd,move:t.handleMove,start:t.handleStart},t}return(0,d.Z)(n,t),(0,u.Z)(n,[{key:"componentDidMount",value:function(){var e=this,t=this.props.useWindowAsScrollContainer,n=this.getContainer();Promise.resolve(n).then((function(n){e.container=n,e.document=e.container.ownerDocument||document;var i=e.props.contentWindow||e.document.defaultView||window;e.contentWindow="function"===typeof i?i():i,e.scrollContainer=t?e.document.scrollingElement||e.document.documentElement:Z(e.container)||e.container,e.autoScroller=new K(e.scrollContainer,e.onAutoScroll),Object.keys(e.events).forEach((function(t){return S[t].forEach((function(n){return e.container.addEventListener(n,e.events[t],!1)}))})),e.container.addEventListener("keydown",e.handleKeyDown)}))}},{key:"componentWillUnmount",value:function(){var e=this;this.helper&&this.helper.parentNode&&this.helper.parentNode.removeChild(this.helper),this.container&&(Object.keys(this.events).forEach((function(t){return S[t].forEach((function(n){return e.container.removeEventListener(n,e.events[t])}))})),this.container.removeEventListener("keydown",this.handleKeyDown))}},{key:"updateHelperPosition",value:function(e){var t=this.props,n=t.lockAxis,i=t.lockOffset,o=t.lockToContainerEdges,a=t.transitionDuration,s=t.keyboardSortingTransitionDuration,u=void 0===s?a:s,l=this.manager.isKeySorting,c=e.ignoreTransition,d=A(e),h={x:d.x-this.initialOffset.x,y:d.y-this.initialOffset.y};if(h.y-=window.pageYOffset-this.initialWindowScroll.top,h.x-=window.pageXOffset-this.initialWindowScroll.left,this.translate=h,o){var f=function(e){var t=e.height,n=e.width,i=e.lockOffset,o=Array.isArray(i)?i:[i,i];g()(2===o.length,"lockOffset prop of SortableContainer should be a single value or an array of exactly two values. Given %s",i);var a=(0,r.Z)(o,2),s=a[0],u=a[1];return[R({height:t,lockOffset:s,width:n}),R({height:t,lockOffset:u,width:n})]}({height:this.height,lockOffset:i,width:this.width}),p=(0,r.Z)(f,2),v=p[0],m=p[1],_={x:this.width/2-v.x,y:this.height/2-v.y},y={x:this.width/2-m.x,y:this.height/2-m.y};h.x=M(this.minTranslate.x+_.x,this.maxTranslate.x-y.x,h.x),h.y=M(this.minTranslate.y+_.y,this.maxTranslate.y-y.y,h.y)}"x"===n?h.y=0:"y"===n&&(h.x=0),l&&u&&!c&&N(this.helper,u),E(this.helper,h)}},{key:"animateNodes",value:function(){var e=this.props,t=e.transitionDuration,n=e.hideSortableGhost,i=e.onSortOver,r=this.containerScrollDelta,o=this.windowScrollDelta,a=this.manager.getOrderedRefs(),s=this.offsetEdge.left+this.translate.x+r.left,u=this.offsetEdge.top+this.translate.y+r.top,l=this.manager.isKeySorting,c=this.newIndex;this.newIndex=null;for(var d=0,h=a.length;d<h;d++){var f=a[d].node,p=f.sortableInfo.index,v=f.offsetWidth,g=f.offsetHeight,m={height:this.height>g?g/2:this.height/2,width:this.width>v?v/2:this.width/2},_=l&&p>this.index&&p<=c,y=l&&p<this.index&&p>=c,b={x:0,y:0},w=a[d].edgeOffset;w||(w=P(f,this.container),a[d].edgeOffset=w,l&&(a[d].boundingClientRect=I(f,r)));var C=d<a.length-1&&a[d+1],k=d>0&&a[d-1];C&&!C.edgeOffset&&(C.edgeOffset=P(C.node,this.container),l&&(C.boundingClientRect=I(C.node,r))),p!==this.index?(t&&N(f,t),this.axis.x?this.axis.y?y||p<this.index&&(s+o.left-m.width<=w.left&&u+o.top<=w.top+m.height||u+o.top+m.height<=w.top)?(b.x=this.width+this.marginOffset.x,w.left+b.x>this.containerBoundingRect.width-m.width&&C&&(b.x=C.edgeOffset.left-w.left,b.y=C.edgeOffset.top-w.top),null===this.newIndex&&(this.newIndex=p)):(_||p>this.index&&(s+o.left+m.width>=w.left&&u+o.top+m.height>=w.top||u+o.top+m.height>=w.top+g))&&(b.x=-(this.width+this.marginOffset.x),w.left+b.x<this.containerBoundingRect.left+m.width&&k&&(b.x=k.edgeOffset.left-w.left,b.y=k.edgeOffset.top-w.top),this.newIndex=p):_||p>this.index&&s+o.left+m.width>=w.left?(b.x=-(this.width+this.marginOffset.x),this.newIndex=p):(y||p<this.index&&s+o.left<=w.left+m.width)&&(b.x=this.width+this.marginOffset.x,null==this.newIndex&&(this.newIndex=p)):this.axis.y&&(_||p>this.index&&u+o.top+m.height>=w.top?(b.y=-(this.height+this.marginOffset.y),this.newIndex=p):(y||p<this.index&&u+o.top<=w.top+m.height)&&(b.y=this.height+this.marginOffset.y,null==this.newIndex&&(this.newIndex=p))),E(f,b),a[d].translate=b):n&&(this.sortableGhost=f,L(f,{opacity:0,visibility:"hidden"}))}null==this.newIndex&&(this.newIndex=this.index),l&&(this.newIndex=c);var S=l?this.prevIndex:c;i&&this.newIndex!==S&&i({collection:this.manager.active.collection,index:this.index,newIndex:this.newIndex,oldIndex:S,isKeySorting:l,nodes:a,helper:this.helper})}},{key:"getWrappedInstance",value:function(){return g()(v.withRef,"To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call"),this.wrappedInstance.current}},{key:"getContainer",value:function(){var e=this.props.getContainer;return"function"!==typeof e?(0,p.findDOMNode)(this):e(v.withRef?this.getWrappedInstance():void 0)}},{key:"render",value:function(){var t=v.withRef?this.wrappedInstance:null;return(0,f.createElement)(X.Provider,{value:this.sortableContextValue},(0,f.createElement)(e,(0,i.Z)({ref:t},k(this.props,Q))))}},{key:"helperContainer",get:function(){var e=this.props.helperContainer;return"function"===typeof e?e():this.props.helperContainer||this.document.body}},{key:"containerScrollDelta",get:function(){return this.props.useWindowAsScrollContainer?{left:0,top:0}:{left:this.scrollContainer.scrollLeft-this.initialScroll.left,top:this.scrollContainer.scrollTop-this.initialScroll.top}}},{key:"windowScrollDelta",get:function(){return{left:this.contentWindow.pageXOffset-this.initialWindowScroll.left,top:this.contentWindow.pageYOffset-this.initialWindowScroll.top}}}]),n}(f.Component),(0,o.Z)(t,"displayName",O("sortableList",e)),(0,o.Z)(t,"defaultProps",$),(0,o.Z)(t,"propTypes",q),n}var ee={index:y().number.isRequired,collection:y().oneOfType([y().number,y().string]),disabled:y().bool},te=Object.keys(ee);function ne(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{withRef:!1};return n=t=function(t){function n(){var e,t;(0,s.Z)(this,n);for(var i=arguments.length,r=new Array(i),a=0;a<i;a++)r[a]=arguments[a];return t=(0,l.Z)(this,(e=(0,c.Z)(n)).call.apply(e,[this].concat(r))),(0,o.Z)((0,h.Z)((0,h.Z)(t)),"wrappedInstance",(0,f.createRef)()),t}return(0,d.Z)(n,t),(0,u.Z)(n,[{key:"componentDidMount",value:function(){this.register()}},{key:"componentDidUpdate",value:function(e){this.node&&(e.index!==this.props.index&&(this.node.sortableInfo.index=this.props.index),e.disabled!==this.props.disabled&&(this.node.sortableInfo.disabled=this.props.disabled)),e.collection!==this.props.collection&&(this.unregister(e.collection),this.register())}},{key:"componentWillUnmount",value:function(){this.unregister()}},{key:"register",value:function(){var e=this.props,t=e.collection,n=e.disabled,i=e.index,r=(0,p.findDOMNode)(this);r.sortableInfo={collection:t,disabled:n,index:i,manager:this.context.manager},this.node=r,this.ref={node:r},this.context.manager.add(t,this.ref)}},{key:"unregister",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.collection;this.context.manager.remove(e,this.ref)}},{key:"getWrappedInstance",value:function(){return g()(r.withRef,"To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call"),this.wrappedInstance.current}},{key:"render",value:function(){var t=r.withRef?this.wrappedInstance:null;return(0,f.createElement)(e,(0,i.Z)({ref:t},k(this.props,te)))}}]),n}(f.Component),(0,o.Z)(t,"displayName",O("sortableElement",e)),(0,o.Z)(t,"contextType",X),(0,o.Z)(t,"propTypes",ee),(0,o.Z)(t,"defaultProps",{collection:0}),n}},82824:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},r=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=function(e,t,n){for(var i=!0;i;){var r=e,o=t,a=n;i=!1,null===r&&(r=Function.prototype);var s=Object.getOwnPropertyDescriptor(r,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;if(void 0===u)return;return u.call(a)}var l=Object.getPrototypeOf(r);if(null===l)return;e=l,t=o,n=a,i=!0,s=l=void 0}};function a(e){return e&&e.__esModule?e:{default:e}}var s=a(n(4519)),u=(a(n(91386)),function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),o(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,e),this.state={collapsed:e.defaultCollapsed},this.handleClick=this.handleClick.bind(this)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"handleClick",value:function(){var e;(this.setState({collapsed:!this.state.collapsed}),this.props.onClick)&&(e=this.props).onClick.apply(e,arguments)}},{key:"render",value:function(){var e=this.props,t=e.collapsed,n=void 0===t?this.state.collapsed:t,r=e.className,o=void 0===r?"":r,a=e.itemClassName,u=void 0===a?"":a,l=e.treeViewClassName,c=void 0===l?"":l,d=e.childrenClassName,h=void 0===d?"":d,f=e.nodeLabel,p=e.children,v=(e.defaultCollapsed,function(e,t){var n={};for(var i in e)t.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);return n}(e,["collapsed","className","itemClassName","treeViewClassName","childrenClassName","nodeLabel","children","defaultCollapsed"])),g="tree-view_arrow",m="tree-view_children";n&&(g+=" tree-view_arrow-collapsed",m+=" tree-view_children-collapsed");var _=s.default.createElement("div",i({},v,{className:o+" "+g,onClick:this.handleClick}));return s.default.createElement("div",{className:"tree-view "+c},s.default.createElement("div",{className:"tree-view_item "+u},_,f),s.default.createElement("div",{className:m+" "+h},n?null:p))}}]),t}(s.default.PureComponent));t.default=u,e.exports=t.default},55255:function(e,t,n){"use strict";n.r(t);var i=n(4519),r=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},s=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t},u=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(u){r=!0,o=u}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},l=void 0;l="undefined"!==typeof window?window:"undefined"!==typeof self?self:n.g;var c=null,d=null,h=l.clearTimeout,f=l.setTimeout,p=l.cancelAnimationFrame||l.mozCancelAnimationFrame||l.webkitCancelAnimationFrame,v=l.requestAnimationFrame||l.mozRequestAnimationFrame||l.webkitRequestAnimationFrame;function g(e){var t=void 0,n=void 0,i=void 0,r=void 0,o=void 0,a=void 0,s=void 0,u="undefined"!==typeof document&&document.attachEvent;if(!u){a=function(e){var t=e.__resizeTriggers__,n=t.firstElementChild,i=t.lastElementChild,r=n.firstElementChild;i.scrollLeft=i.scrollWidth,i.scrollTop=i.scrollHeight,r.style.width=n.offsetWidth+1+"px",r.style.height=n.offsetHeight+1+"px",n.scrollLeft=n.scrollWidth,n.scrollTop=n.scrollHeight},o=function(e){return e.offsetWidth!==e.__resizeLast__.width||e.offsetHeight!==e.__resizeLast__.height},s=function(e){if(!(e.target.className&&"function"===typeof e.target.className.indexOf&&e.target.className.indexOf("contract-trigger")<0&&e.target.className.indexOf("expand-trigger")<0)){var t=this;a(this),this.__resizeRAF__&&c(this.__resizeRAF__),this.__resizeRAF__=d((function(){o(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach((function(n){n.call(t,e)})))}))}};var h=!1,f="";i="animationstart";var p="Webkit Moz O ms".split(" "),v="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),g=document.createElement("fakeelement");if(void 0!==g.style.animationName&&(h=!0),!1===h)for(var m=0;m<p.length;m++)if(void 0!==g.style[p[m]+"AnimationName"]){f="-"+p[m].toLowerCase()+"-",i=v[m],h=!0;break}t="@"+f+"keyframes "+(n="resizeanim")+" { from { opacity: 0; } to { opacity: 0; } } ",r=f+"animation: 1ms "+n+"; "}return{addResizeListener:function(o,c){if(u)o.attachEvent("onresize",c);else{if(!o.__resizeTriggers__){var d=o.ownerDocument,h=l.getComputedStyle(o);h&&"static"===h.position&&(o.style.position="relative"),function(n){if(!n.getElementById("detectElementResize")){var i=(t||"")+".resize-triggers { "+(r||"")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',o=n.head||n.getElementsByTagName("head")[0],a=n.createElement("style");a.id="detectElementResize",a.type="text/css",null!=e&&a.setAttribute("nonce",e),a.styleSheet?a.styleSheet.cssText=i:a.appendChild(n.createTextNode(i)),o.appendChild(a)}}(d),o.__resizeLast__={},o.__resizeListeners__=[],(o.__resizeTriggers__=d.createElement("div")).className="resize-triggers";var f=d.createElement("div");f.className="expand-trigger",f.appendChild(d.createElement("div"));var p=d.createElement("div");p.className="contract-trigger",o.__resizeTriggers__.appendChild(f),o.__resizeTriggers__.appendChild(p),o.appendChild(o.__resizeTriggers__),a(o),o.addEventListener("scroll",s,!0),i&&(o.__resizeTriggers__.__animationListener__=function(e){e.animationName===n&&a(o)},o.__resizeTriggers__.addEventListener(i,o.__resizeTriggers__.__animationListener__))}o.__resizeListeners__.push(c)}},removeResizeListener:function(e,t){if(u)e.detachEvent("onresize",t);else if(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),!e.__resizeListeners__.length){e.removeEventListener("scroll",s,!0),e.__resizeTriggers__.__animationListener__&&(e.__resizeTriggers__.removeEventListener(i,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(n){}}}}}null==p||null==v?(c=h,d=function(e){return f(e,20)}):(c=function(e){var t=u(e,2),n=t[0],i=t[1];p(n),h(i)},d=function(e){var t=v((function(){h(n),e()})),n=f((function(){p(t),e()}),20);return[t,n]});var m=function(e){function t(){var e,n,i;r(this,t);for(var o=arguments.length,a=Array(o),u=0;u<o;u++)a[u]=arguments[u];return n=i=s(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(a))),i.state={height:i.props.defaultHeight||0,width:i.props.defaultWidth||0},i._onResize=function(){var e=i.props,t=e.disableHeight,n=e.disableWidth,r=e.onResize;if(i._parentNode){var o=i._parentNode.offsetHeight||0,a=i._parentNode.offsetWidth||0,s=window.getComputedStyle(i._parentNode)||{},u=parseInt(s.paddingLeft,10)||0,l=parseInt(s.paddingRight,10)||0,c=parseInt(s.paddingTop,10)||0,d=parseInt(s.paddingBottom,10)||0,h=o-c-d,f=a-u-l;(!t&&i.state.height!==h||!n&&i.state.width!==f)&&(i.setState({height:o-c-d,width:a-u-l}),r({height:o,width:a}))}},i._setRef=function(e){i._autoSizer=e},s(i,n)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"componentDidMount",value:function(){var e=this.props.nonce;this._autoSizer&&this._autoSizer.parentNode&&this._autoSizer.parentNode.ownerDocument&&this._autoSizer.parentNode.ownerDocument.defaultView&&this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement&&(this._parentNode=this._autoSizer.parentNode,this._detectElementResize=g(e),this._detectElementResize.addResizeListener(this._parentNode,this._onResize),this._onResize())}},{key:"componentWillUnmount",value:function(){this._detectElementResize&&this._parentNode&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize)}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.className,r=e.disableHeight,o=e.disableWidth,s=e.style,u=this.state,l=u.height,c=u.width,d={overflow:"visible"},h={},f=!1;return r||(0===l&&(f=!0),d.height=0,h.height=l),o||(0===c&&(f=!0),d.width=0,h.width=c),(0,i.createElement)("div",{className:n,ref:this._setRef,style:a({},d,s)},!f&&t(h))}}]),t}(i.PureComponent);m.defaultProps={onResize:function(){},disableHeight:!1,disableWidth:!1,style:{}},t.default=m},80276:function(e,t,n){"use strict";n.r(t),n.d(t,{FixedSizeGrid:function(){return j},FixedSizeList:function(){return H},VariableSizeGrid:function(){return D},VariableSizeList:function(){return F},areEqual:function(){return V},shouldComponentUpdate:function(){return Y}});var i=n(87462),r=n(97326),o=n(94578),a=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function s(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(i=e[n],r=t[n],!(i===r||a(i)&&a(r)))return!1;var i,r;return!0}var u=function(e,t){var n;void 0===t&&(t=s);var i,r=[],o=!1;return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];return o&&n===this&&t(a,r)||(i=e.apply(this,a),o=!0,n=this,r=a),i}},l=n(4519),c=n(63366),d="object"===typeof performance&&"function"===typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function h(e){cancelAnimationFrame(e.id)}function f(e,t){var n=d();var i={id:requestAnimationFrame((function r(){d()-n>=t?e.call(null):i.id=requestAnimationFrame(r)}))};return i}var p=-1;function v(e){if(void 0===e&&(e=!1),-1===p||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",document.body.appendChild(t),p=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return p}var g=null;function m(e){if(void 0===e&&(e=!1),null===g||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var i=document.createElement("div"),r=i.style;return r.width="100px",r.height="100px",t.appendChild(i),document.body.appendChild(t),t.scrollLeft>0?g="positive-descending":(t.scrollLeft=1,g=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),g}return g}var _=150,y=function(e){var t=e.columnIndex;e.data;return e.rowIndex+":"+t};function b(e){var t,n=e.getColumnOffset,a=e.getColumnStartIndexForOffset,s=e.getColumnStopIndexForStartIndex,c=e.getColumnWidth,d=e.getEstimatedTotalHeight,p=e.getEstimatedTotalWidth,g=e.getOffsetForColumnAndAlignment,b=e.getOffsetForRowAndAlignment,C=e.getRowHeight,k=e.getRowOffset,S=e.getRowStartIndexForOffset,x=e.getRowStopIndexForStartIndex,L=e.initInstanceProps,E=e.shouldResetStyleCacheOnItemSizeChange,N=e.validateProps;return(t=function(e){function t(t){var i;return(i=e.call(this,t)||this)._instanceProps=L(i.props,(0,r.Z)(i)),i._resetIsScrollingTimeoutId=null,i._outerRef=void 0,i.state={instance:(0,r.Z)(i),isScrolling:!1,horizontalScrollDirection:"forward",scrollLeft:"number"===typeof i.props.initialScrollLeft?i.props.initialScrollLeft:0,scrollTop:"number"===typeof i.props.initialScrollTop?i.props.initialScrollTop:0,scrollUpdateWasRequested:!1,verticalScrollDirection:"forward"},i._callOnItemsRendered=void 0,i._callOnItemsRendered=u((function(e,t,n,r,o,a,s,u){return i.props.onItemsRendered({overscanColumnStartIndex:e,overscanColumnStopIndex:t,overscanRowStartIndex:n,overscanRowStopIndex:r,visibleColumnStartIndex:o,visibleColumnStopIndex:a,visibleRowStartIndex:s,visibleRowStopIndex:u})})),i._callOnScroll=void 0,i._callOnScroll=u((function(e,t,n,r,o){return i.props.onScroll({horizontalScrollDirection:n,scrollLeft:e,scrollTop:t,verticalScrollDirection:r,scrollUpdateWasRequested:o})})),i._getItemStyle=void 0,i._getItemStyle=function(e,t){var r,o=i.props,a=o.columnWidth,s=o.direction,u=o.rowHeight,l=i._getItemStyleCache(E&&a,E&&s,E&&u),d=e+":"+t;if(l.hasOwnProperty(d))r=l[d];else{var h=n(i.props,t,i._instanceProps),f="rtl"===s;l[d]=r={position:"absolute",left:f?void 0:h,right:f?h:void 0,top:k(i.props,e,i._instanceProps),height:C(i.props,e,i._instanceProps),width:c(i.props,t,i._instanceProps)}}return r},i._getItemStyleCache=void 0,i._getItemStyleCache=u((function(e,t,n){return{}})),i._onScroll=function(e){var t=e.currentTarget,n=t.clientHeight,r=t.clientWidth,o=t.scrollLeft,a=t.scrollTop,s=t.scrollHeight,u=t.scrollWidth;i.setState((function(e){if(e.scrollLeft===o&&e.scrollTop===a)return null;var t=i.props.direction,l=o;if("rtl"===t)switch(m()){case"negative":l=-o;break;case"positive-descending":l=u-r-o}l=Math.max(0,Math.min(l,u-r));var c=Math.max(0,Math.min(a,s-n));return{isScrolling:!0,horizontalScrollDirection:e.scrollLeft<o?"forward":"backward",scrollLeft:l,scrollTop:c,verticalScrollDirection:e.scrollTop<a?"forward":"backward",scrollUpdateWasRequested:!1}}),i._resetIsScrollingDebounced)},i._outerRefSetter=function(e){var t=i.props.outerRef;i._outerRef=e,"function"===typeof t?t(e):null!=t&&"object"===typeof t&&t.hasOwnProperty("current")&&(t.current=e)},i._resetIsScrollingDebounced=function(){null!==i._resetIsScrollingTimeoutId&&h(i._resetIsScrollingTimeoutId),i._resetIsScrollingTimeoutId=f(i._resetIsScrolling,_)},i._resetIsScrolling=function(){i._resetIsScrollingTimeoutId=null,i.setState({isScrolling:!1},(function(){i._getItemStyleCache(-1)}))},i}(0,o.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return w(e,t),N(e),null};var D=t.prototype;return D.scrollTo=function(e){var t=e.scrollLeft,n=e.scrollTop;void 0!==t&&(t=Math.max(0,t)),void 0!==n&&(n=Math.max(0,n)),this.setState((function(e){return void 0===t&&(t=e.scrollLeft),void 0===n&&(n=e.scrollTop),e.scrollLeft===t&&e.scrollTop===n?null:{horizontalScrollDirection:e.scrollLeft<t?"forward":"backward",scrollLeft:t,scrollTop:n,scrollUpdateWasRequested:!0,verticalScrollDirection:e.scrollTop<n?"forward":"backward"}}),this._resetIsScrollingDebounced)},D.scrollToItem=function(e){var t=e.align,n=void 0===t?"auto":t,i=e.columnIndex,r=e.rowIndex,o=this.props,a=o.columnCount,s=o.height,u=o.rowCount,l=o.width,c=this.state,h=c.scrollLeft,f=c.scrollTop,m=v();void 0!==i&&(i=Math.max(0,Math.min(i,a-1))),void 0!==r&&(r=Math.max(0,Math.min(r,u-1)));var _=d(this.props,this._instanceProps),y=p(this.props,this._instanceProps)>l?m:0,w=_>s?m:0;this.scrollTo({scrollLeft:void 0!==i?g(this.props,i,n,h,this._instanceProps,w):h,scrollTop:void 0!==r?b(this.props,r,n,f,this._instanceProps,y):f})},D.componentDidMount=function(){var e=this.props,t=e.initialScrollLeft,n=e.initialScrollTop;if(null!=this._outerRef){var i=this._outerRef;"number"===typeof t&&(i.scrollLeft=t),"number"===typeof n&&(i.scrollTop=n)}this._callPropsCallbacks()},D.componentDidUpdate=function(){var e=this.props.direction,t=this.state,n=t.scrollLeft,i=t.scrollTop;if(t.scrollUpdateWasRequested&&null!=this._outerRef){var r=this._outerRef;if("rtl"===e)switch(m()){case"negative":r.scrollLeft=-n;break;case"positive-ascending":r.scrollLeft=n;break;default:var o=r.clientWidth,a=r.scrollWidth;r.scrollLeft=a-o-n}else r.scrollLeft=Math.max(0,n);r.scrollTop=Math.max(0,i)}this._callPropsCallbacks()},D.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&h(this._resetIsScrollingTimeoutId)},D.render=function(){var e=this.props,t=e.children,n=e.className,r=e.columnCount,o=e.direction,a=e.height,s=e.innerRef,u=e.innerElementType,c=e.innerTagName,h=e.itemData,f=e.itemKey,v=void 0===f?y:f,g=e.outerElementType,m=e.outerTagName,_=e.rowCount,b=e.style,w=e.useIsScrolling,C=e.width,k=this.state.isScrolling,S=this._getHorizontalRangeToRender(),x=S[0],L=S[1],E=this._getVerticalRangeToRender(),N=E[0],D=E[1],M=[];if(r>0&&_)for(var T=N;T<=D;T++)for(var O=x;O<=L;O++)M.push((0,l.createElement)(t,{columnIndex:O,data:h,isScrolling:w?k:void 0,key:v({columnIndex:O,data:h,rowIndex:T}),rowIndex:T,style:this._getItemStyle(T,O)}));var I=d(this.props,this._instanceProps),A=p(this.props,this._instanceProps);return(0,l.createElement)(g||m||"div",{className:n,onScroll:this._onScroll,ref:this._outerRefSetter,style:(0,i.Z)({position:"relative",height:a,width:C,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},b)},(0,l.createElement)(u||c||"div",{children:M,ref:s,style:{height:I,pointerEvents:k?"none":void 0,width:A}}))},D._callPropsCallbacks=function(){var e=this.props,t=e.columnCount,n=e.onItemsRendered,i=e.onScroll,r=e.rowCount;if("function"===typeof n&&t>0&&r>0){var o=this._getHorizontalRangeToRender(),a=o[0],s=o[1],u=o[2],l=o[3],c=this._getVerticalRangeToRender(),d=c[0],h=c[1],f=c[2],p=c[3];this._callOnItemsRendered(a,s,d,h,u,l,f,p)}if("function"===typeof i){var v=this.state,g=v.horizontalScrollDirection,m=v.scrollLeft,_=v.scrollTop,y=v.scrollUpdateWasRequested,b=v.verticalScrollDirection;this._callOnScroll(m,_,g,b,y)}},D._getHorizontalRangeToRender=function(){var e=this.props,t=e.columnCount,n=e.overscanColumnCount,i=e.overscanColumnsCount,r=e.overscanCount,o=e.rowCount,u=this.state,l=u.horizontalScrollDirection,c=u.isScrolling,d=u.scrollLeft,h=n||i||r||1;if(0===t||0===o)return[0,0,0,0];var f=a(this.props,d,this._instanceProps),p=s(this.props,f,d,this._instanceProps),v=c&&"backward"!==l?1:Math.max(1,h),g=c&&"forward"!==l?1:Math.max(1,h);return[Math.max(0,f-v),Math.max(0,Math.min(t-1,p+g)),f,p]},D._getVerticalRangeToRender=function(){var e=this.props,t=e.columnCount,n=e.overscanCount,i=e.overscanRowCount,r=e.overscanRowsCount,o=e.rowCount,a=this.state,s=a.isScrolling,u=a.verticalScrollDirection,l=a.scrollTop,c=i||r||n||1;if(0===t||0===o)return[0,0,0,0];var d=S(this.props,l,this._instanceProps),h=x(this.props,d,l,this._instanceProps),f=s&&"backward"!==u?1:Math.max(1,c),p=s&&"forward"!==u?1:Math.max(1,c);return[Math.max(0,d-f),Math.max(0,Math.min(o-1,h+p)),d,h]},t}(l.PureComponent)).defaultProps={direction:"ltr",itemData:void 0,useIsScrolling:!1},t}var w=function(e,t){e.children,e.direction,e.height,e.innerTagName,e.outerTagName,e.overscanColumnsCount,e.overscanCount,e.overscanRowsCount,e.width,t.instance},C=function(e,t){var n=e.rowCount,i=t.rowMetadataMap,r=t.estimatedRowHeight,o=t.lastMeasuredRowIndex,a=0;if(o>=n&&(o=n-1),o>=0){var s=i[o];a=s.offset+s.size}return a+(n-o-1)*r},k=function(e,t){var n=e.columnCount,i=t.columnMetadataMap,r=t.estimatedColumnWidth,o=t.lastMeasuredColumnIndex,a=0;if(o>=n&&(o=n-1),o>=0){var s=i[o];a=s.offset+s.size}return a+(n-o-1)*r},S=function(e,t,n,i){var r,o,a;if("column"===e?(r=i.columnMetadataMap,o=t.columnWidth,a=i.lastMeasuredColumnIndex):(r=i.rowMetadataMap,o=t.rowHeight,a=i.lastMeasuredRowIndex),n>a){var s=0;if(a>=0){var u=r[a];s=u.offset+u.size}for(var l=a+1;l<=n;l++){var c=o(l);r[l]={offset:s,size:c},s+=c}"column"===e?i.lastMeasuredColumnIndex=n:i.lastMeasuredRowIndex=n}return r[n]},x=function(e,t,n,i){var r,o;return"column"===e?(r=n.columnMetadataMap,o=n.lastMeasuredColumnIndex):(r=n.rowMetadataMap,o=n.lastMeasuredRowIndex),(o>0?r[o].offset:0)>=i?L(e,t,n,o,0,i):E(e,t,n,Math.max(0,o),i)},L=function(e,t,n,i,r,o){for(;r<=i;){var a=r+Math.floor((i-r)/2),s=S(e,t,a,n).offset;if(s===o)return a;s<o?r=a+1:s>o&&(i=a-1)}return r>0?r-1:0},E=function(e,t,n,i,r){for(var o="column"===e?t.columnCount:t.rowCount,a=1;i<o&&S(e,t,i,n).offset<r;)i+=a,a*=2;return L(e,t,n,Math.min(i,o-1),Math.floor(i/2),r)},N=function(e,t,n,i,r,o,a){var s="column"===e?t.width:t.height,u=S(e,t,n,o),l="column"===e?k(t,o):C(t,o),c=Math.max(0,Math.min(l-s,u.offset)),d=Math.max(0,u.offset-s+a+u.size);switch("smart"===i&&(i=r>=d-s&&r<=c+s?"auto":"center"),i){case"start":return c;case"end":return d;case"center":return Math.round(d+(c-d)/2);default:return r>=d&&r<=c?r:d>c||r<d?d:c}},D=b({getColumnOffset:function(e,t,n){return S("column",e,t,n).offset},getColumnStartIndexForOffset:function(e,t,n){return x("column",e,n,t)},getColumnStopIndexForStartIndex:function(e,t,n,i){for(var r=e.columnCount,o=e.width,a=S("column",e,t,i),s=n+o,u=a.offset+a.size,l=t;l<r-1&&u<s;)l++,u+=S("column",e,l,i).size;return l},getColumnWidth:function(e,t,n){return n.columnMetadataMap[t].size},getEstimatedTotalHeight:C,getEstimatedTotalWidth:k,getOffsetForColumnAndAlignment:function(e,t,n,i,r,o){return N("column",e,t,n,i,r,o)},getOffsetForRowAndAlignment:function(e,t,n,i,r,o){return N("row",e,t,n,i,r,o)},getRowOffset:function(e,t,n){return S("row",e,t,n).offset},getRowHeight:function(e,t,n){return n.rowMetadataMap[t].size},getRowStartIndexForOffset:function(e,t,n){return x("row",e,n,t)},getRowStopIndexForStartIndex:function(e,t,n,i){for(var r=e.rowCount,o=e.height,a=S("row",e,t,i),s=n+o,u=a.offset+a.size,l=t;l<r-1&&u<s;)l++,u+=S("row",e,l,i).size;return l},initInstanceProps:function(e,t){var n=e,i={columnMetadataMap:{},estimatedColumnWidth:n.estimatedColumnWidth||50,estimatedRowHeight:n.estimatedRowHeight||50,lastMeasuredColumnIndex:-1,lastMeasuredRowIndex:-1,rowMetadataMap:{}};return t.resetAfterColumnIndex=function(e,n){void 0===n&&(n=!0),t.resetAfterIndices({columnIndex:e,shouldForceUpdate:n})},t.resetAfterRowIndex=function(e,n){void 0===n&&(n=!0),t.resetAfterIndices({rowIndex:e,shouldForceUpdate:n})},t.resetAfterIndices=function(e){var n=e.columnIndex,r=e.rowIndex,o=e.shouldForceUpdate,a=void 0===o||o;"number"===typeof n&&(i.lastMeasuredColumnIndex=Math.min(i.lastMeasuredColumnIndex,n-1)),"number"===typeof r&&(i.lastMeasuredRowIndex=Math.min(i.lastMeasuredRowIndex,r-1)),t._getItemStyleCache(-1),a&&t.forceUpdate()},i},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){e.columnWidth,e.rowHeight}}),M=150,T=function(e,t){return e};function O(e){var t,n=e.getItemOffset,a=e.getEstimatedTotalSize,s=e.getItemSize,c=e.getOffsetForIndexAndAlignment,d=e.getStartIndexForOffset,p=e.getStopIndexForStartIndex,g=e.initInstanceProps,_=e.shouldResetStyleCacheOnItemSizeChange,y=e.validateProps;return t=function(e){function t(t){var i;return(i=e.call(this,t)||this)._instanceProps=g(i.props,(0,r.Z)(i)),i._outerRef=void 0,i._resetIsScrollingTimeoutId=null,i.state={instance:(0,r.Z)(i),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"===typeof i.props.initialScrollOffset?i.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},i._callOnItemsRendered=void 0,i._callOnItemsRendered=u((function(e,t,n,r){return i.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:n,visibleStopIndex:r})})),i._callOnScroll=void 0,i._callOnScroll=u((function(e,t,n){return i.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:n})})),i._getItemStyle=void 0,i._getItemStyle=function(e){var t,r=i.props,o=r.direction,a=r.itemSize,u=r.layout,l=i._getItemStyleCache(_&&a,_&&u,_&&o);if(l.hasOwnProperty(e))t=l[e];else{var c=n(i.props,e,i._instanceProps),d=s(i.props,e,i._instanceProps),h="horizontal"===o||"horizontal"===u,f="rtl"===o,p=h?c:0;l[e]=t={position:"absolute",left:f?void 0:p,right:f?p:void 0,top:h?0:c,height:h?"100%":d,width:h?d:"100%"}}return t},i._getItemStyleCache=void 0,i._getItemStyleCache=u((function(e,t,n){return{}})),i._onScrollHorizontal=function(e){var t=e.currentTarget,n=t.clientWidth,r=t.scrollLeft,o=t.scrollWidth;i.setState((function(e){if(e.scrollOffset===r)return null;var t=i.props.direction,a=r;if("rtl"===t)switch(m()){case"negative":a=-r;break;case"positive-descending":a=o-n-r}return a=Math.max(0,Math.min(a,o-n)),{isScrolling:!0,scrollDirection:e.scrollOffset<r?"forward":"backward",scrollOffset:a,scrollUpdateWasRequested:!1}}),i._resetIsScrollingDebounced)},i._onScrollVertical=function(e){var t=e.currentTarget,n=t.clientHeight,r=t.scrollHeight,o=t.scrollTop;i.setState((function(e){if(e.scrollOffset===o)return null;var t=Math.max(0,Math.min(o,r-n));return{isScrolling:!0,scrollDirection:e.scrollOffset<t?"forward":"backward",scrollOffset:t,scrollUpdateWasRequested:!1}}),i._resetIsScrollingDebounced)},i._outerRefSetter=function(e){var t=i.props.outerRef;i._outerRef=e,"function"===typeof t?t(e):null!=t&&"object"===typeof t&&t.hasOwnProperty("current")&&(t.current=e)},i._resetIsScrollingDebounced=function(){null!==i._resetIsScrollingTimeoutId&&h(i._resetIsScrollingTimeoutId),i._resetIsScrollingTimeoutId=f(i._resetIsScrolling,M)},i._resetIsScrolling=function(){i._resetIsScrollingTimeoutId=null,i.setState({isScrolling:!1},(function(){i._getItemStyleCache(-1,null)}))},i}(0,o.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return I(e,t),y(e),null};var b=t.prototype;return b.scrollTo=function(e){e=Math.max(0,e),this.setState((function(t){return t.scrollOffset===e?null:{scrollDirection:t.scrollOffset<e?"forward":"backward",scrollOffset:e,scrollUpdateWasRequested:!0}}),this._resetIsScrollingDebounced)},b.scrollToItem=function(e,t){void 0===t&&(t="auto");var n=this.props,i=n.itemCount,r=n.layout,o=this.state.scrollOffset;e=Math.max(0,Math.min(e,i-1));var a=0;if(this._outerRef){var s=this._outerRef;a="vertical"===r?s.scrollWidth>s.clientWidth?v():0:s.scrollHeight>s.clientHeight?v():0}this.scrollTo(c(this.props,e,t,o,this._instanceProps,a))},b.componentDidMount=function(){var e=this.props,t=e.direction,n=e.initialScrollOffset,i=e.layout;if("number"===typeof n&&null!=this._outerRef){var r=this._outerRef;"horizontal"===t||"horizontal"===i?r.scrollLeft=n:r.scrollTop=n}this._callPropsCallbacks()},b.componentDidUpdate=function(){var e=this.props,t=e.direction,n=e.layout,i=this.state,r=i.scrollOffset;if(i.scrollUpdateWasRequested&&null!=this._outerRef){var o=this._outerRef;if("horizontal"===t||"horizontal"===n)if("rtl"===t)switch(m()){case"negative":o.scrollLeft=-r;break;case"positive-ascending":o.scrollLeft=r;break;default:var a=o.clientWidth,s=o.scrollWidth;o.scrollLeft=s-a-r}else o.scrollLeft=r;else o.scrollTop=r}this._callPropsCallbacks()},b.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&h(this._resetIsScrollingTimeoutId)},b.render=function(){var e=this.props,t=e.children,n=e.className,r=e.direction,o=e.height,s=e.innerRef,u=e.innerElementType,c=e.innerTagName,d=e.itemCount,h=e.itemData,f=e.itemKey,p=void 0===f?T:f,v=e.layout,g=e.outerElementType,m=e.outerTagName,_=e.style,y=e.useIsScrolling,b=e.width,w=this.state.isScrolling,C="horizontal"===r||"horizontal"===v,k=C?this._onScrollHorizontal:this._onScrollVertical,S=this._getRangeToRender(),x=S[0],L=S[1],E=[];if(d>0)for(var N=x;N<=L;N++)E.push((0,l.createElement)(t,{data:h,key:p(N,h),index:N,isScrolling:y?w:void 0,style:this._getItemStyle(N)}));var D=a(this.props,this._instanceProps);return(0,l.createElement)(g||m||"div",{className:n,onScroll:k,ref:this._outerRefSetter,style:(0,i.Z)({position:"relative",height:o,width:b,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:r},_)},(0,l.createElement)(u||c||"div",{children:E,ref:s,style:{height:C?"100%":D,pointerEvents:w?"none":void 0,width:C?D:"100%"}}))},b._callPropsCallbacks=function(){if("function"===typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],n=e[1],i=e[2],r=e[3];this._callOnItemsRendered(t,n,i,r)}if("function"===typeof this.props.onScroll){var o=this.state,a=o.scrollDirection,s=o.scrollOffset,u=o.scrollUpdateWasRequested;this._callOnScroll(a,s,u)}},b._getRangeToRender=function(){var e=this.props,t=e.itemCount,n=e.overscanCount,i=this.state,r=i.isScrolling,o=i.scrollDirection,a=i.scrollOffset;if(0===t)return[0,0,0,0];var s=d(this.props,a,this._instanceProps),u=p(this.props,s,a,this._instanceProps),l=r&&"backward"!==o?1:Math.max(1,n),c=r&&"forward"!==o?1:Math.max(1,n);return[Math.max(0,s-l),Math.max(0,Math.min(t-1,u+c)),s,u]},t}(l.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}var I=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},A=function(e,t,n){var i=e.itemSize,r=n.itemMetadataMap,o=n.lastMeasuredIndex;if(t>o){var a=0;if(o>=0){var s=r[o];a=s.offset+s.size}for(var u=o+1;u<=t;u++){var l=i(u);r[u]={offset:a,size:l},a+=l}n.lastMeasuredIndex=t}return r[t]},P=function(e,t,n,i,r){for(;i<=n;){var o=i+Math.floor((n-i)/2),a=A(e,o,t).offset;if(a===r)return o;a<r?i=o+1:a>r&&(n=o-1)}return i>0?i-1:0},R=function(e,t,n,i){for(var r=e.itemCount,o=1;n<r&&A(e,n,t).offset<i;)n+=o,o*=2;return P(e,t,Math.min(n,r-1),Math.floor(n/2),i)},Z=function(e,t){var n=e.itemCount,i=t.itemMetadataMap,r=t.estimatedItemSize,o=t.lastMeasuredIndex,a=0;if(o>=n&&(o=n-1),o>=0){var s=i[o];a=s.offset+s.size}return a+(n-o-1)*r},F=O({getItemOffset:function(e,t,n){return A(e,t,n).offset},getItemSize:function(e,t,n){return n.itemMetadataMap[t].size},getEstimatedTotalSize:Z,getOffsetForIndexAndAlignment:function(e,t,n,i,r,o){var a=e.direction,s=e.height,u=e.layout,l=e.width,c="horizontal"===a||"horizontal"===u?l:s,d=A(e,t,r),h=Z(e,r),f=Math.max(0,Math.min(h-c,d.offset)),p=Math.max(0,d.offset-c+d.size+o);switch("smart"===n&&(n=i>=p-c&&i<=f+c?"auto":"center"),n){case"start":return f;case"end":return p;case"center":return Math.round(p+(f-p)/2);default:return i>=p&&i<=f?i:i<p?p:f}},getStartIndexForOffset:function(e,t,n){return function(e,t,n){var i=t.itemMetadataMap,r=t.lastMeasuredIndex;return(r>0?i[r].offset:0)>=n?P(e,t,r,0,n):R(e,t,Math.max(0,r),n)}(e,n,t)},getStopIndexForStartIndex:function(e,t,n,i){for(var r=e.direction,o=e.height,a=e.itemCount,s=e.layout,u=e.width,l="horizontal"===r||"horizontal"===s?u:o,c=A(e,t,i),d=n+l,h=c.offset+c.size,f=t;f<a-1&&h<d;)f++,h+=A(e,f,i).size;return f},initInstanceProps:function(e,t){var n={itemMetadataMap:{},estimatedItemSize:e.estimatedItemSize||50,lastMeasuredIndex:-1};return t.resetAfterIndex=function(e,i){void 0===i&&(i=!0),n.lastMeasuredIndex=Math.min(n.lastMeasuredIndex,e-1),t._getItemStyleCache(-1),i&&t.forceUpdate()},n},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){e.itemSize}}),j=b({getColumnOffset:function(e,t){return t*e.columnWidth},getColumnWidth:function(e,t){return e.columnWidth},getRowOffset:function(e,t){return t*e.rowHeight},getRowHeight:function(e,t){return e.rowHeight},getEstimatedTotalHeight:function(e){var t=e.rowCount;return e.rowHeight*t},getEstimatedTotalWidth:function(e){var t=e.columnCount;return e.columnWidth*t},getOffsetForColumnAndAlignment:function(e,t,n,i,r,o){var a=e.columnCount,s=e.columnWidth,u=e.width,l=Math.max(0,a*s-u),c=Math.min(l,t*s),d=Math.max(0,t*s-u+o+s);switch("smart"===n&&(n=i>=d-u&&i<=c+u?"auto":"center"),n){case"start":return c;case"end":return d;case"center":var h=Math.round(d+(c-d)/2);return h<Math.ceil(u/2)?0:h>l+Math.floor(u/2)?l:h;default:return i>=d&&i<=c?i:d>c||i<d?d:c}},getOffsetForRowAndAlignment:function(e,t,n,i,r,o){var a=e.rowHeight,s=e.height,u=e.rowCount,l=Math.max(0,u*a-s),c=Math.min(l,t*a),d=Math.max(0,t*a-s+o+a);switch("smart"===n&&(n=i>=d-s&&i<=c+s?"auto":"center"),n){case"start":return c;case"end":return d;case"center":var h=Math.round(d+(c-d)/2);return h<Math.ceil(s/2)?0:h>l+Math.floor(s/2)?l:h;default:return i>=d&&i<=c?i:d>c||i<d?d:c}},getColumnStartIndexForOffset:function(e,t){var n=e.columnWidth,i=e.columnCount;return Math.max(0,Math.min(i-1,Math.floor(t/n)))},getColumnStopIndexForStartIndex:function(e,t,n){var i=e.columnWidth,r=e.columnCount,o=e.width,a=t*i,s=Math.ceil((o+n-a)/i);return Math.max(0,Math.min(r-1,t+s-1))},getRowStartIndexForOffset:function(e,t){var n=e.rowHeight,i=e.rowCount;return Math.max(0,Math.min(i-1,Math.floor(t/n)))},getRowStopIndexForStartIndex:function(e,t,n){var i=e.rowHeight,r=e.rowCount,o=e.height,a=t*i,s=Math.ceil((o+n-a)/i);return Math.max(0,Math.min(r-1,t+s-1))},initInstanceProps:function(e){},shouldResetStyleCacheOnItemSizeChange:!0,validateProps:function(e){e.columnWidth,e.rowHeight}}),H=O({getItemOffset:function(e,t){return t*e.itemSize},getItemSize:function(e,t){return e.itemSize},getEstimatedTotalSize:function(e){var t=e.itemCount;return e.itemSize*t},getOffsetForIndexAndAlignment:function(e,t,n,i,r,o){var a=e.direction,s=e.height,u=e.itemCount,l=e.itemSize,c=e.layout,d=e.width,h="horizontal"===a||"horizontal"===c?d:s,f=Math.max(0,u*l-h),p=Math.min(f,t*l),v=Math.max(0,t*l-h+l+o);switch("smart"===n&&(n=i>=v-h&&i<=p+h?"auto":"center"),n){case"start":return p;case"end":return v;case"center":var g=Math.round(v+(p-v)/2);return g<Math.ceil(h/2)?0:g>f+Math.floor(h/2)?f:g;default:return i>=v&&i<=p?i:i<v?v:p}},getStartIndexForOffset:function(e,t){var n=e.itemCount,i=e.itemSize;return Math.max(0,Math.min(n-1,Math.floor(t/i)))},getStopIndexForStartIndex:function(e,t,n){var i=e.direction,r=e.height,o=e.itemCount,a=e.itemSize,s=e.layout,u=e.width,l=t*a,c="horizontal"===i||"horizontal"===s?u:r,d=Math.ceil((c+n-l)/a);return Math.max(0,Math.min(o-1,t+d-1))},initInstanceProps:function(e){},shouldResetStyleCacheOnItemSizeChange:!0,validateProps:function(e){e.itemSize}});function B(e,t){for(var n in e)if(!(n in t))return!0;for(var i in t)if(e[i]!==t[i])return!0;return!1}var z=["style"],W=["style"];function V(e,t){var n=e.style,i=(0,c.Z)(e,z),r=t.style,o=(0,c.Z)(t,W);return!B(n,r)&&!B(i,o)}function Y(e,t){return!V(this.props,e)||B(this.state,t)}},3238:function(e,t,n){"use strict";n(58105);var i=n(4519),r=60103;if(t.Fragment=60107,"function"===typeof Symbol&&Symbol.for){var o=Symbol.for;r=o("react.element"),t.Fragment=o("react.fragment")}var a=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,u={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,n){var i,o={},l=null,c=null;for(i in void 0!==n&&(l=""+n),void 0!==t.key&&(l=""+t.key),void 0!==t.ref&&(c=t.ref),t)s.call(t,i)&&!u.hasOwnProperty(i)&&(o[i]=t[i]);if(e&&e.defaultProps)for(i in t=e.defaultProps)void 0===o[i]&&(o[i]=t[i]);return{$$typeof:r,type:e,key:l,ref:c,props:o,_owner:a.current}}t.jsx=l,t.jsxs=l},43149:function(e,t,n){"use strict";var i=n(58105),r=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var a=60109,s=60110,u=60112;t.Suspense=60113;var l=60115,c=60116;if("function"===typeof Symbol&&Symbol.for){var d=Symbol.for;r=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),a=d("react.provider"),s=d("react.context"),u=d("react.forward_ref"),t.Suspense=d("react.suspense"),l=d("react.memo"),c=d("react.lazy")}var h="function"===typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v={};function g(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||p}function m(){}function _(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||p}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=g.prototype;var y=_.prototype=new m;y.constructor=_,i(y,g.prototype),y.isPureReactComponent=!0;var b={current:null},w=Object.prototype.hasOwnProperty,C={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,n){var i,o={},a=null,s=null;if(null!=t)for(i in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)w.call(t,i)&&!C.hasOwnProperty(i)&&(o[i]=t[i]);var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){for(var l=Array(u),c=0;c<u;c++)l[c]=arguments[c+2];o.children=l}if(e&&e.defaultProps)for(i in u=e.defaultProps)void 0===o[i]&&(o[i]=u[i]);return{$$typeof:r,type:e,key:a,ref:s,props:o,_owner:b.current}}function S(e){return"object"===typeof e&&null!==e&&e.$$typeof===r}var x=/\/+/g;function L(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function E(e,t,n,i,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var u=!1;if(null===e)u=!0;else switch(s){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case r:case o:u=!0}}if(u)return a=a(u=e),e=""===i?"."+L(u,0):i,Array.isArray(a)?(n="",null!=e&&(n=e.replace(x,"$&/")+"/"),E(a,t,n,"",(function(e){return e}))):null!=a&&(S(a)&&(a=function(e,t){return{$$typeof:r,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,n+(!a.key||u&&u.key===a.key?"":(""+a.key).replace(x,"$&/")+"/")+e)),t.push(a)),1;if(u=0,i=""===i?".":i+":",Array.isArray(e))for(var l=0;l<e.length;l++){var c=i+L(s=e[l],l);u+=E(s,t,n,c,a)}else if(c=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=h&&e[h]||e["@@iterator"])?e:null}(e),"function"===typeof c)for(e=c.call(e),l=0;!(s=e.next()).done;)u+=E(s=s.value,t,n,c=i+L(s,l++),a);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return u}function N(e,t,n){if(null==e)return e;var i=[],r=0;return E(e,i,"","",(function(e){return t.call(n,e,r++)})),i}function D(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var M={current:null};function T(){var e=M.current;if(null===e)throw Error(f(321));return e}var O={ReactCurrentDispatcher:M,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:b,IsSomeRendererActing:{current:!1},assign:i};t.Children={map:N,forEach:function(e,t,n){N(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return N(e,(function(){t++})),t},toArray:function(e){return N(e,(function(e){return e}))||[]},only:function(e){if(!S(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=_,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,n){if(null===e||void 0===e)throw Error(f(267,e));var o=i({},e.props),a=e.key,s=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,u=b.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)w.call(t,c)&&!C.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];o.children=l}return{$$typeof:r,type:e.type,key:a,ref:s,props:o,_owner:u}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},t.createElement=k,t.createFactory=function(e){var t=k.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=S,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:D}},t.memo=function(e,t){return{$$typeof:l,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return T().useCallback(e,t)},t.useContext=function(e,t){return T().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return T().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return T().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return T().useLayoutEffect(e,t)},t.useMemo=function(e,t){return T().useMemo(e,t)},t.useReducer=function(e,t,n){return T().useReducer(e,t,n)},t.useRef=function(e){return T().useRef(e)},t.useState=function(e){return T().useState(e)},t.version="17.0.2"},4519:function(e,t,n){"use strict";e.exports=n(43149)},2556:function(e,t,n){"use strict";e.exports=n(3238)},34737:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.LOCATION_POP="REDUX-LOCATION-POP-ACTION",t.LOCATION_PUSH="REDUX-LOCATION-PUSH-ACTION",t.OBJECT_KEY_DELIMITER="-"},61530:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createReduxLocationActions=function(e,t,n,s){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.stateToParams;e[r.RLSCONFIG]&&e[r.RLSCONFIG][r.OVERWRITE_ACCESSORS]&&Object.keys(e[r.RLSCONFIG][r.OVERWRITE_ACCESSORS]).forEach((function(t){(0,r.overrideAccessors)(t,e[r.RLSCONFIG][r.OVERWRITE_ACCESSORS][t])}));var l={};return{locationMiddleware:function(t){return function(i){return function(o){var a=t.getState(),s=i(o),c=t.getState(),d=n.location,h=d.pathname!==l.pathname;if(c!==a||h){l=d;var f=u(e,c,d),p=f.shouldPush,v=f.location;(0,r.isEqual)(v,d)||(p&&!h?n.push(v):n.replace(v))}return s}}},reducersWithLocation:function(n,r){var a=function(n,r){var a=r.type,s=r.payload;return s&&i.LOCATION_POP===a?(s.query=(0,o.parseQuery)(e,s),s?t(n,s):n):n}(s(n,r),r);return a!==n?a:n}}};var i=n(34737),r=n(8606),o=n(85292),a=n(77847)},8606:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.paramDecoder=t.OVERWRITE_ACCESSORS=t.RLSCONFIG=void 0,t.setParamEncoder=function(e){l=e},t.setParamDecoder=function(e){t.paramDecoder=c=e},t.overrideAccessors=function(e,t){u[e]=t},t.get=function(){return u.get.apply(u,arguments)},t.set=function(){return u.set.apply(u,arguments)},t.isEqual=function(){return u.isEqual.apply(u,arguments)},t.getMatchingDeclaredPath=d,t.createObjectFromConfig=function(e,t){if(!e)return;var n=d(e,t);return e.global?Object.assign({},e.global,e[n]||{}):e[n]},t.getPath=function(){var e=window.location.href,t=e.indexOf("#")+1;if(t&&0===e.substring(t).indexOf("/"))return e.substring(t);return window.location.pathname+window.location.search+window.location.hash},t.createParamsString=function(e){var t=Object.keys(e).reduce((function(t,n){var i=n.toString(),r=e[n].toString();return function(e){return"undefined"===typeof e||null===e}(r)||Array.isArray(r)&&!r.length?t:[].concat(s(t),[l(i)+"="+l(r)])}),[]);return t.length?"?"+t.join("&"):""},t.parseParams=function(e,t){return e&&e.split("&").reduce((function(e,n){"?"===n[0]&&(n=n.substr(1));var i=t?t(n):n.split("=");return e[c(i[0])]=c(i[1])||"",e}),{})||{}};var i=a(n(93128)),r=a(n(34495)),o=a(n(59537));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}t.RLSCONFIG="RLSCONFIG",t.OVERWRITE_ACCESSORS="overwrite-accessors";var u={get:i.default,set:o.default,isEqual:r.default},l=encodeURIComponent,c=t.paramDecoder=decodeURIComponent;function d(e,t){var n=t.pathname.split("/");return Object.keys(e).filter((function(e){var t=[].concat(s(n)),i=e.split("/"),r=[].concat(s(i)),o=0;return i.forEach((function(e,n){"*"===e&&(t.splice(n-o,1),r.splice(n-o,1),o++)})),t.join("/")===r.join("/")}))[0]}},22458:function(e,t,n){"use strict";var i=n(61530);Object.defineProperty(t,"zl",{enumerable:!0,get:function(){return i.createReduxLocationActions}});var r=n(76664);Object.defineProperty(t,"C1",{enumerable:!0,get:function(){return r.listenForHistoryChange}});var o=n(8606)},76664:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.listenForHistoryChange=function(e,t){var n=function(e){return{type:i.LOCATION_POP,payload:e}};t.listen((function(){t&&t.action&&"POP"===t.action&&e.dispatch(n(t.location))})),t.listen((function(){t&&t.action&&"PUSH"===t.action&&e.dispatch(function(e){return{type:i.LOCATION_PUSH,payload:e}}(t.location))})),e.dispatch(n(t.location))};var i=n(34737)},85292:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseQuery=function(e,t){var n=(0,i.createObjectFromConfig)(e,t),o=e[i.RLSCONFIG]&&e[i.RLSCONFIG].queryParser,a=(0,i.parseParams)(t.search,o);if(!n)return t.search;return Object.keys(n).reduce((function(e,t){var o=n[t],s=o.stateKey,u=o.options,l=void 0===u?{}:u,c=o.initialState,d=o.type,h=a[t],f=void 0;return"undefined"===typeof h||null===h?((0,i.set)(e,s,c),e):(f=l.parse?l.parse(h):d?r.typeHandles[d].parse(h,l):h,(0,i.set)(e,s,f),e)}),{})};var i=n(8606),r=n(4141)},77847:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e};t.stateToParams=function(e,t,n){var s=(0,o.createObjectFromConfig)(e,n),u=e[o.RLSCONFIG]&&e[o.RLSCONFIG].queryParser,l=(0,o.parseParams)(n.search,u);if(!s)return{location:r({},n)};var c=!1,d=Object.keys(s).reduce((function(e,n){var r=s[n],u=r.stateKey,d=r.options,h=void 0===d?{}:d,f=r.initialState,p=r.type,v=(0,o.get)(t,u),g=void 0;if("date"===p?g=v.toISOString().substring(0,10)===(f&&f.toISOString().substring(0,10)):(v&&"object"===("undefined"===typeof v?"undefined":i(v))&&!Object.keys(v).length&&(v=void 0),g="object"===("undefined"===typeof v?"undefined":i(v))?(0,o.isEqual)(f,v):v===f),(!v&&!h.serialize||g)&&!h.setAsEmptyItem)return e;if(h.serialize){var m=h.serialize(v);if("undefined"===typeof m)return e;v=m}else p&&(v=a.typeHandles[p].serialize(v,h));return e[n]=v,v!==l[n]&&h.shouldPush&&(c=!0),e}),{});return{location:r({},n,{search:(0,o.createParamsString)(d)}),shouldPush:c}};var o=n(8606),a=n(4141)},4141:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.typeHandles=void 0;var i=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(u){r=!0,o=u}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n(34737),o=n(8606);function a(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}t.typeHandles={number:{serialize:function(e,t){return e.toString()},parse:function(e,t){return parseFloat(e)}},date:{serialize:function(e,t){return e.toISOString().substring(0,10)},parse:function(e,t){return new Date(e)}},array:{serialize:function(e,t){return(t.keepOrder?[].concat(a(e)):[].concat(a(e)).sort()).join(t.delimiter||r.OBJECT_KEY_DELIMITER)},parse:function(e,t){return(0,o.paramDecoder)(e).split(t.delimiter||r.OBJECT_KEY_DELIMITER)}},bool:{serialize:function(e,t){return e.toString()},parse:function(e,t){return"true"===e}},object:{serialize:function(e,t){return t.isFlags?Object.keys(e).filter((function(t,n){return e[t]})).join(r.OBJECT_KEY_DELIMITER):Object.keys(e).sort().map((function(t,n){return""+t+r.OBJECT_KEY_DELIMITER+e[t]}))},parse:function(e,t){return t.isFlags?e.split(t.delimiter||r.OBJECT_KEY_DELIMITER).reduce((function(e,t){return""===t||(e[t]=!0),e}),{}):(0,o.paramDecoder)(e).split(",").reduce((function(e,t){var n=t.split(r.OBJECT_KEY_DELIMITER),o=i(n,2),a=o[0],s=o[1];return e[a]=s,e}),{})}}}},9780:function(e){var t=function(e){"use strict";var t,n=Object.prototype,i=n.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(T){u=function(e,t,n){return e[t]=n}}function l(e,t,n,i){var r=t&&t.prototype instanceof g?t:g,o=Object.create(r.prototype),a=new N(i||[]);return o._invoke=function(e,t,n){var i=d;return function(r,o){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw o;return M()}for(n.method=r,n.arg=o;;){var a=n.delegate;if(a){var s=x(a,n);if(s){if(s===v)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===d)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var u=c(e,t,n);if("normal"===u.type){if(i=n.done?p:h,u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(i=p,n.method="throw",n.arg=u.arg)}}}(e,n,a),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(T){return{type:"throw",arg:T}}}e.wrap=l;var d="suspendedStart",h="suspendedYield",f="executing",p="completed",v={};function g(){}function m(){}function _(){}var y={};u(y,o,(function(){return this}));var b=Object.getPrototypeOf,w=b&&b(b(D([])));w&&w!==n&&i.call(w,o)&&(y=w);var C=_.prototype=g.prototype=Object.create(y);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(r,o,a,s){var u=c(e[r],e,o);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"===typeof d&&i.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(d).then((function(e){l.value=e,a(l)}),(function(e){return n("throw",e,a,s)}))}s(u.arg)}var r;this._invoke=function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}}function x(e,n){var i=e.iterator[n.method];if(i===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,x(e,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var r=c(i,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,v;var o=r.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,v):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function N(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function D(e){if(e){var n=e[o];if(n)return n.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function n(){for(;++r<e.length;)if(i.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:M}}function M(){return{value:t,done:!0}}return m.prototype=_,u(C,"constructor",_),u(_,"constructor",m),m.displayName=u(_,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,_):(e.__proto__=_,u(e,s,"GeneratorFunction")),e.prototype=Object.create(C),e},e.awrap=function(e){return{__await:e}},k(S.prototype),u(S.prototype,a,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,i,r,o){void 0===o&&(o=Promise);var a=new S(l(t,n,i,r),o);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(C),u(C,s,"Generator"),u(C,o,(function(){return this})),u(C,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var i=t.pop();if(i in e)return n.value=i,n.done=!1,n}return n.done=!0,n}},e.values=D,N.prototype={constructor:N,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(E),!e)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(i,r){return s.type="throw",s.arg=e,n.next=i,r&&(n.method="next",n.arg=t),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=i.call(a,"catchLoc"),l=i.call(a,"finallyLoc");if(u&&l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var r=i.arg;E(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,i){return this.delegate={iterator:D(e),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=t),v}},e}(e.exports);try{regeneratorRuntime=t}catch(n){"object"===typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},81451:function(e,t,n){"use strict";n.r(t);var i=function(){if("undefined"!==typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,i){return e[0]===t&&(n=i,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),i=this.__entries__[n];return i&&i[1]},t.prototype.set=function(t,n){var i=e(this.__entries__,t);~i?this.__entries__[i][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,i=e(n,t);~i&&n.splice(i,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,i=this.__entries__;n<i.length;n++){var r=i[n];e.call(t,r[1],r[0])}},t}()}(),r="undefined"!==typeof window&&"undefined"!==typeof document&&window.document===document,o="undefined"!==typeof n.g&&n.g.Math===Math?n.g:"undefined"!==typeof self&&self.Math===Math?self:"undefined"!==typeof window&&window.Math===Math?window:Function("return this")(),a="function"===typeof requestAnimationFrame?requestAnimationFrame.bind(o):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)},s=2;var u=20,l=["top","right","bottom","left","width","height","size","weight"],c="undefined"!==typeof MutationObserver,d=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,i=!1,r=0;function o(){n&&(n=!1,e()),i&&l()}function u(){a(o)}function l(){var e=Date.now();if(n){if(e-r<s)return;i=!0}else n=!0,i=!1,setTimeout(u,t);r=e}return l}(this.refresh.bind(this),u)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),c?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;l.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),h=function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},f=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||o},p=b(0,0,0,0);function v(e){return parseFloat(e)||0}function g(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+v(e["border-"+n+"-width"])}),0)}function m(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return p;var i=f(e).getComputedStyle(e),r=function(e){for(var t={},n=0,i=["top","right","bottom","left"];n<i.length;n++){var r=i[n],o=e["padding-"+r];t[r]=v(o)}return t}(i),o=r.left+r.right,a=r.top+r.bottom,s=v(i.width),u=v(i.height);if("border-box"===i.boxSizing&&(Math.round(s+o)!==t&&(s-=g(i,"left","right")+o),Math.round(u+a)!==n&&(u-=g(i,"top","bottom")+a)),!function(e){return e===f(e).document.documentElement}(e)){var l=Math.round(s+o)-t,c=Math.round(u+a)-n;1!==Math.abs(l)&&(s-=l),1!==Math.abs(c)&&(u-=c)}return b(r.left,r.top,s,u)}var _="undefined"!==typeof SVGGraphicsElement?function(e){return e instanceof f(e).SVGGraphicsElement}:function(e){return e instanceof f(e).SVGElement&&"function"===typeof e.getBBox};function y(e){return r?_(e)?function(e){var t=e.getBBox();return b(0,0,t.width,t.height)}(e):m(e):p}function b(e,t,n,i){return{x:e,y:t,width:n,height:i}}var w=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=b(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=y(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),C=function(e,t){var n=function(e){var t=e.x,n=e.y,i=e.width,r=e.height,o="undefined"!==typeof DOMRectReadOnly?DOMRectReadOnly:Object,a=Object.create(o.prototype);return h(a,{x:t,y:n,width:i,height:r,top:n,right:t+i,bottom:r+n,left:t}),a}(t);h(this,{target:e,contentRect:n})},k=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new i,"function"!==typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof f(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new w(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof f(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new C(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),S="undefined"!==typeof WeakMap?new WeakMap:new i,x=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=d.getInstance(),i=new k(t,n,this);S.set(this,i)};["observe","unobserve","disconnect"].forEach((function(e){x.prototype[e]=function(){var t;return(t=S.get(this))[e].apply(t,arguments)}}));var L="undefined"!==typeof o.ResizeObserver?o.ResizeObserver:x;t.default=L},77154:function(e,t){"use strict";var n,i,r,o;if("object"===typeof performance&&"function"===typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}if("undefined"===typeof window||"function"!==typeof MessageChannel){var l=null,c=null,d=function e(){if(null!==l)try{var n=t.unstable_now();l(!0,n),l=null}catch(i){throw setTimeout(e,0),i}};n=function(e){null!==l?setTimeout(n,0,e):(l=e,setTimeout(d,0))},i=function(e,t){c=setTimeout(e,t)},r=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var h=window.setTimeout,f=window.clearTimeout;if("undefined"!==typeof console){var p=window.cancelAnimationFrame;"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!==typeof p&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var v=!1,g=null,m=-1,_=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_=0<e?Math.floor(1e3/e):5};var b=new MessageChannel,w=b.port2;b.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+_;try{g(!0,e)?w.postMessage(null):(v=!1,g=null)}catch(n){throw w.postMessage(null),n}}else v=!1},n=function(e){g=e,v||(v=!0,w.postMessage(null))},i=function(e,n){m=h((function(){e(t.unstable_now())}),n)},r=function(){f(m),m=-1}}function C(e,t){var n=e.length;e.push(t);e:for(;;){var i=n-1>>>1,r=e[i];if(!(void 0!==r&&0<x(r,t)))break e;e[i]=t,e[n]=r,n=i}}function k(e){return void 0===(e=e[0])?null:e}function S(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var i=0,r=e.length;i<r;){var o=2*(i+1)-1,a=e[o],s=o+1,u=e[s];if(void 0!==a&&0>x(a,n))void 0!==u&&0>x(u,a)?(e[i]=u,e[s]=n,i=s):(e[i]=a,e[o]=n,i=o);else{if(!(void 0!==u&&0>x(u,n)))break e;e[i]=u,e[s]=n,i=s}}}return t}return null}function x(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var L=[],E=[],N=1,D=null,M=3,T=!1,O=!1,I=!1;function A(e){for(var t=k(E);null!==t;){if(null===t.callback)S(E);else{if(!(t.startTime<=e))break;S(E),t.sortIndex=t.expirationTime,C(L,t)}t=k(E)}}function P(e){if(I=!1,A(e),!O)if(null!==k(L))O=!0,n(R);else{var t=k(E);null!==t&&i(P,t.startTime-e)}}function R(e,n){O=!1,I&&(I=!1,r()),T=!0;var o=M;try{for(A(n),D=k(L);null!==D&&(!(D.expirationTime>n)||e&&!t.unstable_shouldYield());){var a=D.callback;if("function"===typeof a){D.callback=null,M=D.priorityLevel;var s=a(D.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?D.callback=s:D===k(L)&&S(L),A(n)}else S(L);D=k(L)}if(null!==D)var u=!0;else{var l=k(E);null!==l&&i(P,l.startTime-n),u=!1}return u}finally{D=null,M=o,T=!1}}var Z=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){O||T||(O=!0,n(R))},t.unstable_getCurrentPriorityLevel=function(){return M},t.unstable_getFirstCallbackNode=function(){return k(L)},t.unstable_next=function(e){switch(M){case 1:case 2:case 3:var t=3;break;default:t=M}var n=M;M=t;try{return e()}finally{M=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=Z,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=M;M=e;try{return t()}finally{M=n}},t.unstable_scheduleCallback=function(e,o,a){var s=t.unstable_now();switch("object"===typeof a&&null!==a?a="number"===typeof(a=a.delay)&&0<a?s+a:s:a=s,e){case 1:var u=-1;break;case 2:u=250;break;case 5:u=1073741823;break;case 4:u=1e4;break;default:u=5e3}return e={id:N++,callback:o,priorityLevel:e,startTime:a,expirationTime:u=a+u,sortIndex:-1},a>s?(e.sortIndex=a,C(E,e),null===k(L)&&e===k(E)&&(I?r():I=!0,i(P,a-s))):(e.sortIndex=u,C(L,e),O||T||(O=!0,n(R))),e},t.unstable_wrapCallback=function(e){var t=M;return function(){var n=M;M=t;try{return e.apply(this,arguments)}finally{M=n}}}},8514:function(e,t,n){"use strict";e.exports=n(77154)},13959:function(e,t,n){"use strict";var i=n(11333),r=n(15017),o=n(27481),a=i("%TypeError%"),s=i("%WeakMap%",!0),u=i("%Map%",!0),l=r("WeakMap.prototype.get",!0),c=r("WeakMap.prototype.set",!0),d=r("WeakMap.prototype.has",!0),h=r("Map.prototype.get",!0),f=r("Map.prototype.set",!0),p=r("Map.prototype.has",!0),v=function(e,t){for(var n,i=e;null!==(n=i.next);i=n)if(n.key===t)return i.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,i={assert:function(e){if(!i.has(e))throw new a("Side channel does not contain "+o(e))},get:function(i){if(s&&i&&("object"===typeof i||"function"===typeof i)){if(e)return l(e,i)}else if(u){if(t)return h(t,i)}else if(n)return function(e,t){var n=v(e,t);return n&&n.value}(n,i)},has:function(i){if(s&&i&&("object"===typeof i||"function"===typeof i)){if(e)return d(e,i)}else if(u){if(t)return p(t,i)}else if(n)return function(e,t){return!!v(e,t)}(n,i);return!1},set:function(i,r){s&&i&&("object"===typeof i||"function"===typeof i)?(e||(e=new s),c(e,i,r)):u?(t||(t=new u),f(t,i,r)):(n||(n={key:{},next:null}),function(e,t,n){var i=v(e,t);i?i.value=n:e.next={key:t,next:e.next,value:n}}(n,i,r))}};return i}},83077:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}}),e=n.hmd(e);var i=function(e){var t,n=e.Symbol;return"function"===typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}("undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:e)},22020:function(e,t,n){"use strict";n.r(t),n.d(t,{focusable:function(){return C},isFocusable:function(){return x},isTabbable:function(){return k},tabbable:function(){return w}});var i=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],r=i.join(","),o="undefined"===typeof Element,a=o?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,s=!o&&Element.prototype.getRootNode?function(e){var t;return null===e||void 0===e||null===(t=e.getRootNode)||void 0===t?void 0:t.call(e)}:function(e){return null===e||void 0===e?void 0:e.ownerDocument},u=function e(t,n){var i;void 0===n&&(n=!0);var r=null===t||void 0===t||null===(i=t.getAttribute)||void 0===i?void 0:i.call(t,"inert");return""===r||"true"===r||n&&t&&e(t.parentNode)},l=function(e,t,n){if(u(e))return[];var i=Array.prototype.slice.apply(e.querySelectorAll(r));return t&&a.call(e,r)&&i.unshift(e),i=i.filter(n)},c=function e(t,n,i){for(var o=[],s=Array.from(t);s.length;){var l=s.shift();if(!u(l,!1))if("SLOT"===l.tagName){var c=l.assignedElements(),d=e(c.length?c:l.children,!0,i);i.flatten?o.push.apply(o,d):o.push({scopeParent:l,candidates:d})}else{a.call(l,r)&&i.filter(l)&&(n||!t.includes(l))&&o.push(l);var h=l.shadowRoot||"function"===typeof i.getShadowRoot&&i.getShadowRoot(l),f=!u(h,!1)&&(!i.shadowRootFilter||i.shadowRootFilter(l));if(h&&f){var p=e(!0===h?l.children:h.children,!0,i);i.flatten?o.push.apply(o,p):o.push({scopeParent:l,candidates:p})}else s.unshift.apply(s,l.children)}}return o},d=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||function(e){var t,n=null===e||void 0===e||null===(t=e.getAttribute)||void 0===t?void 0:t.call(e,"contenteditable");return""===n||"true"===n}(e))&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},h=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},f=function(e){return"INPUT"===e.tagName},p=function(e){return function(e){return f(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||s(e),i=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!==typeof window&&"undefined"!==typeof window.CSS&&"function"===typeof window.CSS.escape)t=i(window.CSS.escape(e.name));else try{t=i(e.name)}catch(o){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",o.message),!1}var r=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]}(t,e.form);return!r||r===e}(e)},v=function(e){var t=e.getBoundingClientRect(),n=t.width,i=t.height;return 0===n&&0===i},g=function(e,t){var n=t.displayCheck,i=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var r=a.call(e,"details>summary:first-of-type")?e.parentElement:e;if(a.call(r,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return v(e)}else{if("function"===typeof i){for(var o=e;e;){var u=e.parentElement,l=s(e);if(u&&!u.shadowRoot&&!0===i(u))return v(e);e=e.assignedSlot?e.assignedSlot:u||l===e.ownerDocument?u:l.host}e=o}if(function(e){var t,n,i,r,o=e&&s(e),a=null===(t=o)||void 0===t?void 0:t.host,u=!1;if(o&&o!==e)for(u=!!(null!==(n=a)&&void 0!==n&&null!==(i=n.ownerDocument)&&void 0!==i&&i.contains(a)||null!==e&&void 0!==e&&null!==(r=e.ownerDocument)&&void 0!==r&&r.contains(e));!u&&a;){var l,c,d;u=!(null===(c=a=null===(l=o=s(a))||void 0===l?void 0:l.host)||void 0===c||null===(d=c.ownerDocument)||void 0===d||!d.contains(a))}return u}(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1},m=function(e,t){return!(t.disabled||u(t)||function(e){return f(e)&&"hidden"===e.type}(t)||g(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var i=t.children.item(n);if("LEGEND"===i.tagName)return!!a.call(t,"fieldset[disabled] *")||!i.contains(e)}return!0}t=t.parentElement}return!1}(t))},_=function(e,t){return!(p(t)||d(t)<0||!m(e,t))},y=function(e){var t=parseInt(e.getAttribute("tabindex"),10);return!!(isNaN(t)||t>=0)},b=function e(t){var n=[],i=[];return t.forEach((function(t,r){var o=!!t.scopeParent,a=o?t.scopeParent:t,s=d(a,o),u=o?e(t.candidates):a;0===s?o?n.push.apply(n,u):n.push(a):i.push({documentOrder:r,tabIndex:s,item:t,isScope:o,content:u})})),i.sort(h).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)},w=function(e,t){var n;return n=(t=t||{}).getShadowRoot?c([e],t.includeContainer,{filter:_.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:y}):l(e,t.includeContainer,_.bind(null,t)),b(n)},C=function(e,t){return(t=t||{}).getShadowRoot?c([e],t.includeContainer,{filter:m.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):l(e,t.includeContainer,m.bind(null,t))},k=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==a.call(e,r)&&_(t,e)},S=i.concat("iframe").join(","),x=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==a.call(e,S)&&m(t,e)}},22710:function(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],i=0;i<e.rangeCount;i++)n.push(e.getRangeAt(i));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},55509:function(e,t,n){var i;e=n.nmd(e),function(r){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof n.g&&n.g;o.global!==o&&o.window!==o&&o.self;var a,s=2147483647,u=36,l=1,c=26,d=38,h=700,f=72,p=128,v="-",g=/^xn--/,m=/[^\x20-\x7E]/,_=/[\x2E\u3002\uFF0E\uFF61]/g,y={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},b=u-l,w=Math.floor,C=String.fromCharCode;function k(e){throw RangeError(y[e])}function S(e,t){for(var n=e.length,i=[];n--;)i[n]=t(e[n]);return i}function x(e,t){var n=e.split("@"),i="";return n.length>1&&(i=n[0]+"@",e=n[1]),i+S((e=e.replace(_,".")).split("."),t).join(".")}function L(e){for(var t,n,i=[],r=0,o=e.length;r<o;)(t=e.charCodeAt(r++))>=55296&&t<=56319&&r<o?56320==(64512&(n=e.charCodeAt(r++)))?i.push(((1023&t)<<10)+(1023&n)+65536):(i.push(t),r--):i.push(t);return i}function E(e){return S(e,(function(e){var t="";return e>65535&&(t+=C((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=C(e)})).join("")}function N(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function D(e,t,n){var i=0;for(e=n?w(e/h):e>>1,e+=w(e/t);e>b*c>>1;i+=u)e=w(e/b);return w(i+(b+1)*e/(e+d))}function M(e){var t,n,i,r,o,a,d,h,g,m,_,y=[],b=e.length,C=0,S=p,x=f;for((n=e.lastIndexOf(v))<0&&(n=0),i=0;i<n;++i)e.charCodeAt(i)>=128&&k("not-basic"),y.push(e.charCodeAt(i));for(r=n>0?n+1:0;r<b;){for(o=C,a=1,d=u;r>=b&&k("invalid-input"),((h=(_=e.charCodeAt(r++))-48<10?_-22:_-65<26?_-65:_-97<26?_-97:u)>=u||h>w((s-C)/a))&&k("overflow"),C+=h*a,!(h<(g=d<=x?l:d>=x+c?c:d-x));d+=u)a>w(s/(m=u-g))&&k("overflow"),a*=m;x=D(C-o,t=y.length+1,0==o),w(C/t)>s-S&&k("overflow"),S+=w(C/t),C%=t,y.splice(C++,0,S)}return E(y)}function T(e){var t,n,i,r,o,a,d,h,g,m,_,y,b,S,x,E=[];for(y=(e=L(e)).length,t=p,n=0,o=f,a=0;a<y;++a)(_=e[a])<128&&E.push(C(_));for(i=r=E.length,r&&E.push(v);i<y;){for(d=s,a=0;a<y;++a)(_=e[a])>=t&&_<d&&(d=_);for(d-t>w((s-n)/(b=i+1))&&k("overflow"),n+=(d-t)*b,t=d,a=0;a<y;++a)if((_=e[a])<t&&++n>s&&k("overflow"),_==t){for(h=n,g=u;!(h<(m=g<=o?l:g>=o+c?c:g-o));g+=u)x=h-m,S=u-m,E.push(C(N(m+x%S,0))),h=w(x/S);E.push(C(N(h,0))),o=D(n,b,i==r),n=0,++i}++n,++t}return E.join("")}a={version:"1.3.2",ucs2:{decode:L,encode:E},decode:M,encode:T,toASCII:function(e){return x(e,(function(e){return m.test(e)?"xn--"+T(e):e}))},toUnicode:function(e){return x(e,(function(e){return g.test(e)?M(e.slice(4).toLowerCase()):e}))}},void 0===(i=function(){return a}.call(t,n,t,e))||(e.exports=i)}()},33119:function(e,t,n){"use strict";var i=n(55509),r=n(60723);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){r.isString(e)&&(e=y(e));return e instanceof o?e.format():o.prototype.format.call(e)},t.Url=o;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),d=["%","/","?",";","#"].concat(c),h=["/","?","#"],f=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},_=n(76127);function y(e,t,n){if(e&&r.isObject(e)&&e instanceof o)return e;var i=new o;return i.parse(e,t,n),i}o.prototype.parse=function(e,t,n){if(!r.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o<e.indexOf("#")?"?":"#",l=e.split(s);l[0]=l[0].replace(/\\/g,"/");var y=e=l.join(s);if(y=y.trim(),!n&&1===e.split("#").length){var b=u.exec(y);if(b)return this.path=y,this.href=y,this.pathname=b[1],b[2]?(this.search=b[2],this.query=t?_.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=a.exec(y);if(w){var C=(w=w[0]).toLowerCase();this.protocol=C,y=y.substr(w.length)}if(n||w||y.match(/^\/\/[^@\/]+@[^@\/]+/)){var k="//"===y.substr(0,2);!k||w&&g[w]||(y=y.substr(2),this.slashes=!0)}if(!g[w]&&(k||w&&!m[w])){for(var S,x,L=-1,E=0;E<h.length;E++){-1!==(N=y.indexOf(h[E]))&&(-1===L||N<L)&&(L=N)}-1!==(x=-1===L?y.lastIndexOf("@"):y.lastIndexOf("@",L))&&(S=y.slice(0,x),y=y.slice(x+1),this.auth=decodeURIComponent(S)),L=-1;for(E=0;E<d.length;E++){var N;-1!==(N=y.indexOf(d[E]))&&(-1===L||N<L)&&(L=N)}-1===L&&(L=y.length),this.host=y.slice(0,L),y=y.slice(L),this.parseHost(),this.hostname=this.hostname||"";var D="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!D)for(var M=this.hostname.split(/\./),T=(E=0,M.length);E<T;E++){var O=M[E];if(O&&!O.match(f)){for(var I="",A=0,P=O.length;A<P;A++)O.charCodeAt(A)>127?I+="x":I+=O[A];if(!I.match(f)){var R=M.slice(0,E),Z=M.slice(E+1),F=O.match(p);F&&(R.push(F[1]),Z.unshift(F[2])),Z.length&&(y="/"+Z.join(".")+y),this.hostname=R.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),D||(this.hostname=i.toASCII(this.hostname));var j=this.port?":"+this.port:"",H=this.hostname||"";this.host=H+j,this.href+=this.host,D&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!v[C])for(E=0,T=c.length;E<T;E++){var B=c[E];if(-1!==y.indexOf(B)){var z=encodeURIComponent(B);z===B&&(z=escape(B)),y=y.split(B).join(z)}}var W=y.indexOf("#");-1!==W&&(this.hash=y.substr(W),y=y.slice(0,W));var V=y.indexOf("?");if(-1!==V?(this.search=y.substr(V),this.query=y.substr(V+1),t&&(this.query=_.parse(this.query)),y=y.slice(0,V)):t&&(this.search="",this.query={}),y&&(this.pathname=y),m[C]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){j=this.pathname||"";var Y=this.search||"";this.path=j+Y}return this.href=this.format(),this},o.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",i=this.hash||"",o=!1,a="";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&r.isObject(this.query)&&Object.keys(this.query).length&&(a=_.stringify(this.query));var s=this.search||a&&"?"+a||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||m[t])&&!1!==o?(o="//"+(o||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):o||(o=""),i&&"#"!==i.charAt(0)&&(i="#"+i),s&&"?"!==s.charAt(0)&&(s="?"+s),t+o+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+i},o.prototype.resolve=function(e){return this.resolveObject(y(e,!1,!0)).format()},o.prototype.resolveObject=function(e){if(r.isString(e)){var t=new o;t.parse(e,!1,!0),e=t}for(var n=new o,i=Object.keys(this),a=0;a<i.length;a++){var s=i[a];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var u=Object.keys(e),l=0;l<u.length;l++){var c=u[l];"protocol"!==c&&(n[c]=e[c])}return m[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!m[e.protocol]){for(var d=Object.keys(e),h=0;h<d.length;h++){var f=d[h];n[f]=e[f]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||g[e.protocol])n.pathname=e.pathname;else{for(var p=(e.pathname||"").split("/");p.length&&!(e.host=p.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==p[0]&&p.unshift(""),p.length<2&&p.unshift(""),n.pathname=p.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var v=n.pathname||"",_=n.search||"";n.path=v+_}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var y=n.pathname&&"/"===n.pathname.charAt(0),b=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=b||y||n.host&&e.pathname,C=w,k=n.pathname&&n.pathname.split("/")||[],S=(p=e.pathname&&e.pathname.split("/")||[],n.protocol&&!m[n.protocol]);if(S&&(n.hostname="",n.port=null,n.host&&(""===k[0]?k[0]=n.host:k.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===p[0]?p[0]=e.host:p.unshift(e.host)),e.host=null),w=w&&(""===p[0]||""===k[0])),b)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,k=p;else if(p.length)k||(k=[]),k.pop(),k=k.concat(p),n.search=e.search,n.query=e.query;else if(!r.isNullOrUndefined(e.search)){if(S)n.hostname=n.host=k.shift(),(D=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=D.shift(),n.host=n.hostname=D.shift());return n.search=e.search,n.query=e.query,r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!k.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var x=k.slice(-1)[0],L=(n.host||e.host||k.length>1)&&("."===x||".."===x)||""===x,E=0,N=k.length;N>=0;N--)"."===(x=k[N])?k.splice(N,1):".."===x?(k.splice(N,1),E++):E&&(k.splice(N,1),E--);if(!w&&!C)for(;E--;E)k.unshift("..");!w||""===k[0]||k[0]&&"/"===k[0].charAt(0)||k.unshift(""),L&&"/"!==k.join("/").substr(-1)&&k.push("");var D,M=""===k[0]||k[0]&&"/"===k[0].charAt(0);S&&(n.hostname=n.host=M?"":k.length?k.shift():"",(D=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=D.shift(),n.host=n.hostname=D.shift()));return(w=w||n.host&&k.length)&&!M&&k.unshift(""),k.length?n.pathname=k.join("/"):(n.pathname=null,n.path=null),r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},60723:function(e){"use strict";e.exports={isString:function(e){return"string"===typeof e},isObject:function(e){return"object"===typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},476:function(e){"use strict";var t=function(){};e.exports=t},67908:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EmptyView=function(e){var t=e.level;return i.default.createElement(a.TreeView,{name:i.default.createElement("span",{className:u()},(0,o.default)("label_empty")),level:t})};var i=s(n(4519)),r=s(n(89804)),o=s(n(49465)),a=n(72322);function s(e){return e&&e.__esModule?e:{default:e}}n(89052);var u=(0,r.default)("ydb-navigation-tree-view-empty")},69186:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ErrorView=function(e){var t=e.level;return i.default.createElement(a.TreeView,{name:i.default.createElement("span",{className:u()},(0,o.default)("label_error")),level:t})};var i=s(n(4519)),r=s(n(89804)),o=s(n(49465)),a=n(72322);function s(e){return e&&e.__esModule?e:{default:e}}n(84480);var u=(0,r.default)("ydb-navigation-tree-view-error")},73021:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoaderView=function(e){var t=e.level;return i.default.createElement(a.TreeView,{name:i.default.createElement("div",{className:u()},i.default.createElement(o.Spin,{size:"xs"})),level:t})};var i=s(n(4519)),r=s(n(89804)),o=n(52154),a=n(72322);function s(e){return e&&e.__esModule?e:{default:e}}n(62307);var u=(0,r.default)("ydb-navigation-tree-view-loader")},76546:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NavigationTree=function(e){var t=e.rootState,n=e.fetchPath,u=e.getActions,l=e.activePath,c=e.onActivePathUpdate,d=e.cache,p=void 0===d||d,v=e.virtualize,g=void 0!==v&&v,m=(C=i.default.useReducer(o.reducer,function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},t.path,(0,o.getNodeState)(t))),k=2,function(e){if(Array.isArray(e))return e}(C)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,r,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(i=n.next()).done)&&(o.push(i.value),!t||o.length!==t);a=!0);}catch(u){s=!0,r=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw r}}return o}}(C,k)||function(e,t){if(e){if("string"===typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}(C,k)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),_=m[0],y=m[1],b=i.default.useMemo((function(){return(0,o.selectTreeAsList)(_,t.path)}),[_]),w=function(e){return i.default.createElement(s.NavigationTreeNode,{key:e.path,state:_,path:e.path,activePath:l,fetchPath:n,dispatch:y,onActivate:c,getActions:u,cache:p,level:e.level})};var C,k;return g?i.default.createElement(r.default,{type:"uniform",length:b.length,useStaticSize:!0,itemRenderer:function(e){var t=b[e];return(0,a.isServiceNode)(t)?f(t):w(t)}}):i.default.createElement(i.default.Fragment,null,b.map((function(e){return(0,a.isServiceNode)(e)?f(e):w(e)})))};var i=d(n(4519)),r=d(n(1720)),o=n(11980),a=n(39398),s=n(65533),u=n(73021),l=n(69186),c=n(67908);function d(e){return e&&e.__esModule?e:{default:e}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}var f=function(e){var t="".concat(e.path,"|").concat(e.status);return"loading"===e.status?i.default.createElement(u.LoaderView,{key:t,level:e.level}):"error"===e.status?i.default.createElement(l.ErrorView,{key:t,level:e.level}):i.default.createElement(c.EmptyView,{key:t,level:e.level})}},65533:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NavigationTreeNode=function(e){var t=e.path,n=e.fetchPath,i=e.activePath,a=e.state,s=e.level,u=e.dispatch,l=e.children,c=e.onActivate,d=e.getActions,h=e.cache,v=a[t];r.default.useEffect((function(){v.collapsed?h||u({type:o.NavigationTreeActionType.ResetNode,payload:{path:t}}):v.loaded||v.loading||(u({type:o.NavigationTreeActionType.StartLoading,payload:{path:t}}),n(t).then((function(e){u({type:o.NavigationTreeActionType.FinishLoading,payload:{path:t,activePath:i,data:e}})})).catch((function(e){u({type:o.NavigationTreeActionType.FinishLoading,payload:{path:t,error:e}})})))}),[v.collapsed]);var g=r.default.useCallback((function(){c&&c(t)}),[t,c]),m=r.default.useCallback((function(){u({type:o.NavigationTreeActionType.ToggleCollapsed,payload:{path:t}})}),[]),_=r.default.useMemo((function(){return null===d||void 0===d?void 0:d(v.path,v.type)}),[d,v]);return r.default.createElement(f.TreeView,{name:v.name,icon:p(v.type,v.collapsed),collapsed:v.collapsed,active:v.path===i,actions:_,hasArrow:v.expandable,onClick:g,onArrowClick:m,level:s},l)};var i,r=(i=n(4519))&&i.__esModule?i:{default:i},o=n(11980),a=n(21280),s=n(1699),u=n(57957),l=n(72947),c=n(29173),d=n(3897),h=n(98898),f=n(72322);function p(e,t){switch(e){case"database":return r.default.createElement(a.DatabaseIcon,{height:14});case"directory":return t?r.default.createElement(s.FolderIcon,{height:16}):r.default.createElement(u.FolderOpenIcon,{height:16});case"index":return r.default.createElement(d.IndexIcon,{height:16});case"table":case"index_table":return r.default.createElement(l.TableIcon,{height:16});case"column_table":return r.default.createElement(h.ColumnTableIcon,{height:16});case"topic":return r.default.createElement(c.TopicIcon,{height:16});default:return null}}},49465:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(68969),r=n(88475),o=s(n(44095)),a=s(n(11516));function s(e){return e&&e.__esModule?e:{default:e}}var u="ydb-navigation-tree";i.i18n.registerKeyset(r.Lang.En,u,o.default),i.i18n.registerKeyset(r.Lang.Ru,u,a.default);var l=i.i18n.keyset(u);t.default=l},35402:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(76546);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}));var r=n(85718);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},11980:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NavigationTreeActionType=void 0,t.getDefaultNodeState=l,t.getNodeState=c,t.reducer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.ToggleCollapsed:return s(s({},e),{},u({},t.payload.path,s(s({},e[t.payload.path]),{},{collapsed:!e[t.payload.path].collapsed})));case i.StartLoading:return s(s({},e),{},u({},t.payload.path,s(s({},e[t.payload.path]),{},{loading:!0,loaded:!1,error:!1,children:[]})));case i.FinishLoading:var n=s(s({},e),{},u({},t.payload.path,s(s({},e[t.payload.path]),{},{loading:!1,loaded:Boolean(t.payload.data),error:Boolean(t.payload.error)})));if(t.payload.data){n[t.payload.path].children=t.payload.data.map((function(e){return e.name}));var r,a=function(e,t){var n="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"===typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}(t.payload.data);try{for(a.s();!(r=a.n()).done;){var l,d,h=r.value,f="".concat(t.payload.path,"/").concat(h.name),p=t.payload.activePath,v=void 0===p?"":p,g=null!==(l=null===(d=e[f])||void 0===d?void 0:d.collapsed)&&void 0!==l?l:!v.startsWith("".concat(f,"/"));n[f]=c(s(s({},h),{},{collapsed:g,path:f}))}}catch(m){a.e(m)}finally{a.f()}}return n;case i.ResetNode:return s(s({},e),{},u({},t.payload.path,s(s({},e[t.payload.path]),{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]})));default:return e}},t.selectTreeAsList=function(e,t){var n=[];return(0,r.traverseDFS)(e,t,(function(e,t){n.push(s(s({},e),{},{level:t}));var i=(0,r.getServiceNode)(e,t);i&&n.push(i)})),n};var i,r=n(39398);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(){return{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]}}function c(e){return s(s({},{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]}),{},{expandable:"database"===e.type||"directory"===e.type},e)}t.NavigationTreeActionType=i,function(e){e.ToggleCollapsed="toggle-collapsed",e.StartLoading="start-loading",e.FinishLoading="finish-loading",e.ResetNode="reset-node"}(i||(t.NavigationTreeActionType=i={}))},85718:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},39398:function(e,t){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}Object.defineProperty(t,"__esModule",{value:!0}),t.getServiceNode=function(e,t){if(e.collapsed)return;if(e.loading)return{path:e.path,status:"loading",level:t+1};if(e.error)return{path:e.path,status:"error",level:t+1};if(e.loaded&&0===e.children.length)return{path:e.path,status:"empty",level:t+1};return},t.isServiceNode=function(e){return"status"in e},t.traverseDFS=function e(t,i,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=t[i];if(!a)return;if(r(a,o,i,t),a.collapsed)return;var s,u=function(e,t){var i="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(!e)return;if("string"===typeof e)return n(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return n(e,t)}(e))||t&&e&&"number"===typeof e.length){i&&(e=i);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==i.return||i.return()}finally{if(u)throw a}}}}(a.children);try{for(u.s();!(s=u.n()).done;){var l=s.value;e(t,"".concat(i,"/").concat(l),r,o+1)}}catch(c){u.e(c)}finally{u.f()}}},72322:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TreeView=function(e){var t=e.children,n=e.name,r=e.title,s=e.icon,d=e.collapsed,h=void 0===d||d,f=e.active,p=void 0!==f&&f,v=e.onClick,g=e.onArrowClick,m=e.hasArrow,_=void 0!==m&&m,y=e.actions,b=e.level,w=i.default.useRef(null),C=i.default.createElement("div",{className:c("content")},s&&i.default.createElement("div",{className:c("icon")},s),i.default.createElement("div",{className:c("text"),title:r},n),y&&y.length>0&&i.default.createElement("div",{className:c("actions")},i.default.createElement(a.DropdownMenu,{defaultSwitcherProps:{view:"flat-secondary",size:"s",pin:"brick-brick"},items:y})));return i.default.useEffect((function(){var e=w.current,t=e&&e.querySelector(".".concat(c("item")));if(v&&t){var n=".tree-view_arrow, .".concat(c("actions"));return t.addEventListener("click",i),function(){t.removeEventListener("click",i)}}function i(e){e.composedPath().filter((function(e){return e.nodeType===Node.ELEMENT_NODE})).some((function(e){return e.matches(n)}))||v()}}),[v]),i.default.createElement("div",{ref:w,className:c({"no-arrow":!_}),style:u({},l,b)},i.default.createElement(o.default,{collapsed:h,itemClassName:c("item",{active:p}),nodeLabel:C,onClick:g},t))};var i=s(n(4519)),r=s(n(89804)),o=s(n(82824)),a=n(52154);function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n(70332);var l="--ydb-tree-view-level",c=(0,r.default)("ydb-tree-view")},99410:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(72322);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}))},68969:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.i18n=void 0;var i=n(24755),r=n(75241),o=new i.I18N;t.i18n=o,o.setLang((0,r.getConfig)().lang||r.Lang.En),(0,r.subscribeConfigure)((function(e){e.lang&&o.setLang(e.lang)}))},98898:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ColumnTableIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.01033 3.79551C2.11275 2.787 2.96447 2 4 2H5.5H7H9H10.5H12C13.1046 2 14 2.89543 14 4V5.5V12C14 13.1046 13.1046 14 12 14H10.5H9H7H5.5H4C2.89543 14 2 13.1046 2 12V5.5V4C2 3.93096 2.0035 3.86275 2.01033 3.79551ZM10.5 12.5H11.5C12.0523 12.5 12.5 12.0523 12.5 11.5V5.5H10.5L10.5 12.5ZM9 5.5L9 12.5H7L7 5.5H9ZM3.5 5.5H5.5L5.5 12.5H4.5C3.94772 12.5 3.5 12.0523 3.5 11.5V5.5Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},21280:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DatabaseIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",fill:"currentColor"},e),r.default.createElement("path",{d:"M448 80V128C448 172.2 347.7 208 224 208C100.3 208 0 172.2 0 128V80C0 35.82 100.3 0 224 0C347.7 0 448 35.82 448 80zM393.2 214.7C413.1 207.3 433.1 197.8 448 186.1V288C448 332.2 347.7 368 224 368C100.3 368 0 332.2 0 288V186.1C14.93 197.8 34.02 207.3 54.85 214.7C99.66 230.7 159.5 240 224 240C288.5 240 348.3 230.7 393.2 214.7V214.7zM54.85 374.7C99.66 390.7 159.5 400 224 400C288.5 400 348.3 390.7 393.2 374.7C413.1 367.3 433.1 357.8 448 346.1V432C448 476.2 347.7 512 224 512C100.3 512 0 476.2 0 432V346.1C14.93 357.8 34.02 367.3 54.85 374.7z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},1699:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FolderIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{d:"M13.2812 4.875H8.40625L6.78125 3.25H2.71875C2.0332 3.25 1.5 3.80859 1.5 4.46875V11.7812C1.5 12.4668 2.0332 13 2.71875 13H13.2812C13.9414 13 14.5 12.4668 14.5 11.7812V6.09375C14.5 5.43359 13.9414 4.875 13.2812 4.875Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},57957:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FolderOpenIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{d:"M15.2109 9.06445C15.4648 8.6582 15.1602 8.125 14.6777 8.125H4.54688C4.01367 8.125 3.37891 8.50586 3.125 8.9375L1.29688 12.0859C1.04297 12.4922 1.34766 13 1.83008 13H11.9609C12.4941 13 13.1289 12.6445 13.3828 12.2129L15.2109 9.06445ZM4.54688 7.3125H12.875V6.09375C12.875 5.43359 12.3164 4.875 11.6562 4.875H7.59375L5.96875 3.25H1.90625C1.2207 3.25 0.6875 3.80859 0.6875 4.46875V11.5527L2.43945 8.53125C2.87109 7.79492 3.6582 7.3125 4.54688 7.3125Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},3897:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IndexIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.24935 2.94323L8.5 9.5H12.1L11.1446 14.2772C11.0322 14.839 11.7994 15.1177 12.0738 14.6147L15.9111 7.57956C16.1765 7.09311 15.8244 6.5 15.2703 6.5H12.9L13.5325 3.33728C13.6192 2.90413 13.2879 2.5 12.8461 2.5H9.74611C9.49194 2.5 9.27821 2.69069 9.24935 2.94323ZM7.40003 10.5L8.25717 3H1.625C0.710938 3 0 3.73633 0 4.625V12.75C0 13.6641 0.710938 14.375 1.625 14.375H10.1517C10.1538 14.2803 10.1646 14.1822 10.1848 14.0811L10.901 10.5H7.40003ZM5.6875 8.6875V6.25H1.625V8.6875H5.6875ZM1.625 10.3125V12.75H5.6875V10.3125H1.625Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},72947:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TableIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.01033 3.79551C2.11275 2.787 2.96447 2 4 2H7.3H8.8H12C13.1046 2 14 2.89543 14 4V5.5V8.2002V9.7002V12C14 13.1046 13.1046 14 12 14H8.8H7.3H4C2.89543 14 2 13.1046 2 12V9.7002V8.2002V5.5V4C2 3.93096 2.0035 3.86275 2.01033 3.79551ZM8.8 12.5H11.5C12.0523 12.5 12.5 12.0523 12.5 11.5V9.7002H8.8V12.5ZM7.3 9.7002V12.5H4.5C3.94772 12.5 3.5 12.0523 3.5 11.5V9.7002H7.3ZM8.8 8.2002H12.5V5.5H8.8L8.8 8.2002ZM7.3 5.5L7.3 8.2002H3.5V5.5H7.3Z"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},29173:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TopicIcon=function(e){return r.default.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e),r.default.createElement("rect",{x:"2",y:"2.20001",width:"9",height:"2.5",rx:"0.5"}),r.default.createElement("rect",{x:"5",y:"6.70001",width:"9",height:"2.5",rx:"0.5"}),r.default.createElement("rect",{x:"2",y:"11.2",width:"9",height:"2.5",rx:"0.5"}))};var i,r=(i=n(4519))&&i.__esModule?i:{default:i};function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},o.apply(this,arguments)}},65047:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(35402);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}));var r=n(99410);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var o=n(88475);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},75241:function(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.subscribeConfigure=t.getConfig=t.configure=t.Lang=void 0,t.Lang=n,function(e){e.Ru="ru",e.En="en"}(n||(t.Lang=n={}));var i=[],r={};t.configure=function(e){Object.assign(r,e),i.forEach((function(e){e(r)}))};t.subscribeConfigure=function(e){return i.push(e),function(){i=i.filter((function(t){return t!==e}))}};t.getConfig=function(){return r}},88475:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Lang",{enumerable:!0,get:function(){return i.Lang}}),Object.defineProperty(t,"configure",{enumerable:!0,get:function(){return i.configure}});var i=n(75241)},89804:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(44763),r=(0,i.setup)();function o(e){return"string"===typeof e}function a(e){var t=r(e);function n(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var i,r,a=e.shift(),s=e[0],u=e[1];return("string"!==typeof a||(o(r=s)||Array.isArray(r)&&r.every(o)))&&(u=s,s=null),i=t(a,s),u&&(i=i.mix(u)),i.toString()}return n.builder=function(){return t},n}a.setup=function(e){r=(0,i.setup)(e)},a.reset=function(){r=(0,i.setup)()},t.default=a},1720:function(e,t,n){var i,r,o;"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self&&self,r=[n(91386),n(4519)],i=function(t,n){"use strict";var i,r;function o(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function a(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!==typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var a=i?Object.getOwnPropertyDescriptor(e,r):null;a&&(a.get||a.set)?Object.defineProperty(n,r,a):n[r]=e[r]}return n.default=e,t&&t.set(e,n),n}function s(e){return e&&e.__esModule?e:{default:e}}function u(e){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function d(e,t,n){return t&&c(e.prototype,t),n&&c(e,n),e}function h(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e){var t=m();return function(){var n,i=_(e);if(t){var r=_(this).constructor;n=Reflect.construct(i,arguments,r)}else n=i.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?g(e):t}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _(e){return _=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_(e)}function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){w(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t=s(t),n=a(n);var C={x:"clientWidth",y:"clientHeight"},k={x:"clientTop",y:"clientLeft"},S={x:"innerWidth",y:"innerHeight"},x={x:"offsetWidth",y:"offsetHeight"},L={x:"offsetLeft",y:"offsetTop"},E={x:"overflowX",y:"overflowY"},N={x:"scrollWidth",y:"scrollHeight"},D={x:"scrollLeft",y:"scrollTop"},M={x:"width",y:"height"},T=function(){},O=!!function(){if("undefined"===typeof window)return!1;var e=!1;try{document.createElement("div").addEventListener("test",T,{get passive(){return e=!0,!1}})}catch(t){}return e}()&&{passive:!0},I="ReactList failed to reach a stable state.",A=40,P=function(e,t){for(var n in t)if(e[n]!==t[n])return!1;return!0},R=function(e){for(var t=e.props.axis,n=e.getEl(),i=E[t];n=n.parentElement;)switch(window.getComputedStyle(n)[i]){case"auto":case"scroll":case"overlay":return n}return window},Z=function(e){var t=e.props.axis,n=e.scrollParent;return n===window?window[S[t]]:n[C[t]]},F=function(e,t){var n=e.length,i=e.minSize,r=e.type,o=t.from,a=t.size,s=t.itemsPerRow,u=(a=Math.max(a,i))%s;return u&&(a+=s-u),a>n&&(a=n),(u=(o="simple"!==r&&o?Math.max(Math.min(o,n-a),0):0)%s)&&(o-=u,a+=u),o===t.from&&a==t.size?t:b(b({},t),{},{from:o,size:a})};e.exports=(r=i=function(e){h(i,e);var t=p(i);function i(e){var n;return l(this,i),(n=t.call(this,e)).state=F(e,{itemsPerRow:1,from:e.initialIndex,size:0}),n.cache={},n.cachedScrollPosition=null,n.prevPrevState={},n.unstable=!1,n.updateCounter=0,n}return d(i,null,[{key:"getDerivedStateFromProps",value:function(e,t){var n=F(e,t);return n===t?null:n}}]),d(i,[{key:"componentDidMount",value:function(){this.updateFrameAndClearCache=this.updateFrameAndClearCache.bind(this),window.addEventListener("resize",this.updateFrameAndClearCache),this.updateFrame(this.scrollTo.bind(this,this.props.initialIndex))}},{key:"componentDidUpdate",value:function(e){var t=this;if(this.props.axis!==e.axis&&this.clearSizeCache(),!this.unstable){if(++this.updateCounter>A)return this.unstable=!0,console.error(I);this.updateCounterTimeoutId||(this.updateCounterTimeoutId=setTimeout((function(){t.updateCounter=0,delete t.updateCounterTimeoutId}),0)),this.updateFrame()}}},{key:"maybeSetState",value:function(e,t){if(P(this.state,e))return t();this.setState(e,t)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.updateFrameAndClearCache),this.scrollParent.removeEventListener("scroll",this.updateFrameAndClearCache,O),this.scrollParent.removeEventListener("mousewheel",T,O)}},{key:"getOffset",value:function(e){var t=this.props.axis,n=e[k[t]]||0,i=L[t];do{n+=e[i]||0}while(e=e.offsetParent);return n}},{key:"getEl",value:function(){return this.el||this.items}},{key:"getScrollPosition",value:function(){if("number"===typeof this.cachedScrollPosition)return this.cachedScrollPosition;var e=this.scrollParent,t=this.props.axis,n=D[t],i=e===window?document.body[n]||document.documentElement[n]:e[n],r=this.getScrollSize()-this.props.scrollParentViewportSizeGetter(this),o=Math.max(0,Math.min(i,r)),a=this.getEl();return this.cachedScrollPosition=this.getOffset(e)+o-this.getOffset(a),this.cachedScrollPosition}},{key:"setScroll",value:function(e){var t=this.scrollParent,n=this.props.axis;if(e+=this.getOffset(this.getEl()),t===window)return window.scrollTo(0,e);e-=this.getOffset(this.scrollParent),t[D[n]]=e}},{key:"getScrollSize",value:function(){var e=this.scrollParent,t=document,n=t.body,i=t.documentElement,r=N[this.props.axis];return e===window?Math.max(n[r],i[r]):e[r]}},{key:"hasDeterminateSize",value:function(){var e=this.props,t=e.itemSizeGetter;return"uniform"===e.type||t}},{key:"getStartAndEnd",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.threshold,t=this.getScrollPosition(),n=Math.max(0,t-e),i=t+this.props.scrollParentViewportSizeGetter(this)+e;return this.hasDeterminateSize()&&(i=Math.min(i,this.getSpaceBefore(this.props.length))),{start:n,end:i}}},{key:"getItemSizeAndItemsPerRow",value:function(){var e=this.props,t=e.axis,n=e.useStaticSize,i=this.state,r=i.itemSize,o=i.itemsPerRow;if(n&&r&&o)return{itemSize:r,itemsPerRow:o};var a=this.items.children;if(!a.length)return{};var s=a[0],u=s[x[t]],l=Math.abs(u-r);if((isNaN(l)||l>=1)&&(r=u),!r)return{};for(var c=L[t],d=s[c],h=a[o=1];h&&h[c]===d;h=a[o])++o;return{itemSize:r,itemsPerRow:o}}},{key:"clearSizeCache",value:function(){this.cachedScrollPosition=null}},{key:"updateFrameAndClearCache",value:function(e){return this.clearSizeCache(),this.updateFrame(e)}},{key:"updateFrame",value:function(e){switch(this.updateScrollParent(),"function"!=typeof e&&(e=T),this.props.type){case"simple":return this.updateSimpleFrame(e);case"variable":return this.updateVariableFrame(e);case"uniform":return this.updateUniformFrame(e)}}},{key:"updateScrollParent",value:function(){var e=this.scrollParent;this.scrollParent=this.props.scrollParentGetter(this),e!==this.scrollParent&&(e&&(e.removeEventListener("scroll",this.updateFrameAndClearCache),e.removeEventListener("mousewheel",T)),this.clearSizeCache(),this.scrollParent.addEventListener("scroll",this.updateFrameAndClearCache,O),this.scrollParent.addEventListener("mousewheel",T,O))}},{key:"updateSimpleFrame",value:function(e){var t=this.getStartAndEnd().end,n=this.items.children,i=0;if(n.length){var r=this.props.axis,o=n[0],a=n[n.length-1];i=this.getOffset(a)+a[x[r]]-this.getOffset(o)}if(i>t)return e();var s=this.props,u=s.pageSize,l=s.length,c=Math.min(this.state.size+u,l);this.maybeSetState({size:c},e)}},{key:"updateVariableFrame",value:function(e){this.props.itemSizeGetter||this.cacheSizes();for(var t=this.getStartAndEnd(),n=t.start,i=t.end,r=this.props,o=r.length,a=r.pageSize,s=0,u=0,l=0,c=o-1;u<c;){var d=this.getSizeOfItem(u);if(null==d||s+d>n)break;s+=d,++u}for(var h=o-u;l<h&&s<i;){var f=this.getSizeOfItem(u+l);if(null==f){l=Math.min(l+a,h);break}s+=f,++l}this.maybeSetState(F(this.props,{from:u,itemsPerRow:1,size:l}),e)}},{key:"updateUniformFrame",value:function(e){var t=this.getItemSizeAndItemsPerRow(),n=t.itemSize,i=t.itemsPerRow;if(!n||!i)return e();var r=this.getStartAndEnd(),o=r.start,a=r.end,s=F(this.props,{from:Math.floor(o/n)*i,size:(Math.ceil((a-o)/n)+1)*i,itemsPerRow:i}),u=s.from,l=s.size;return this.maybeSetState({itemsPerRow:i,from:u,itemSize:n,size:l},e)}},{key:"getSpaceBefore",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null!=t[e])return t[e];var n=this.state,i=n.itemSize,r=n.itemsPerRow;if(i)return t[e]=Math.floor(e/r)*i;for(var o=e;o>0&&null==t[--o];);for(var a=t[o]||0,s=o;s<e;++s){t[s]=a;var u=this.getSizeOfItem(s);if(null==u)break;a+=u}return t[e]=a}},{key:"cacheSizes",value:function(){for(var e=this.cache,t=this.state.from,n=this.items.children,i=x[this.props.axis],r=0,o=n.length;r<o;++r)e[t+r]=n[r][i]}},{key:"getSizeOfItem",value:function(e){var t=this.cache,n=this.items,i=this.props,r=i.axis,o=i.itemSizeGetter,a=i.itemSizeEstimator,s=i.type,u=this.state,l=u.from,c=u.itemSize,d=u.size;if(c)return c;if(o)return o(e);if(e in t)return t[e];if("simple"===s&&e>=l&&e<l+d&&n){var h=n.children[e-l];if(h)return h[x[r]]}return a?a(e,t):void 0}},{key:"scrollTo",value:function(e){null!=e&&this.setScroll(this.getSpaceBefore(e))}},{key:"scrollAround",value:function(e){var t=this.getScrollPosition(),n=this.getSpaceBefore(e),i=n-this.props.scrollParentViewportSizeGetter(this)+this.getSizeOfItem(e),r=Math.min(i,n),o=Math.max(i,n);return t<=r?this.setScroll(r):t>o?this.setScroll(o):void 0}},{key:"getVisibleRange",value:function(){for(var e,t,n=this.state,i=n.from,r=n.size,o=this.getStartAndEnd(0),a=o.start,s=o.end,u={},l=i;l<i+r;++l){var c=this.getSpaceBefore(l,u),d=c+this.getSizeOfItem(l);null==e&&d>a&&(e=l),null!=e&&c<s&&(t=l)}return[e,t]}},{key:"renderItems",value:function(){for(var e=this,t=this.props,n=t.itemRenderer,i=t.itemsRenderer,r=this.state,o=r.from,a=r.size,s=[],u=0;u<a;++u)s.push(n(o+u,u));return i(s,(function(t){return e.items=t}))}},{key:"render",value:function(){var e=this,t=this.props,i=t.axis,r=t.length,o=t.type,a=t.useTranslate3d,s=this.state,u=s.from,l=s.itemsPerRow,c=this.renderItems();if("simple"===o)return c;var d={position:"relative"},h={},f=Math.ceil(r/l)*l,p=this.getSpaceBefore(f,h);p&&(d[M[i]]=p,"x"===i&&(d.overflowX="hidden"));var v=this.getSpaceBefore(u,h),g="x"===i?v:0,m="y"===i?v:0,_=a?"translate3d(".concat(g,"px, ").concat(m,"px, 0)"):"translate(".concat(g,"px, ").concat(m,"px)"),y={msTransform:_,WebkitTransform:_,transform:_};return n.default.createElement("div",{style:d,ref:function(t){return e.el=t}},n.default.createElement("div",{style:y},c))}}]),i}(n.Component),w(i,"displayName","ReactList"),w(i,"propTypes",{axis:t.default.oneOf(["x","y"]),initialIndex:t.default.number,itemRenderer:t.default.func,itemSizeEstimator:t.default.func,itemSizeGetter:t.default.func,itemsRenderer:t.default.func,length:t.default.number,minSize:t.default.number,pageSize:t.default.number,scrollParentGetter:t.default.func,scrollParentViewportSizeGetter:t.default.func,threshold:t.default.number,type:t.default.oneOf(["simple","variable","uniform"]),useStaticSize:t.default.bool,useTranslate3d:t.default.bool}),w(i,"defaultProps",{axis:"y",itemRenderer:function(e,t){return n.default.createElement("div",{key:t},e)},itemsRenderer:function(e,t){return n.default.createElement("div",{ref:t},e)},length:0,minSize:1,pageSize:10,scrollParentGetter:R,scrollParentViewportSizeGetter:Z,threshold:100,type:"simple",useStaticSize:!1,useTranslate3d:!1}),r)},void 0===(o="function"===typeof i?i.apply(t,r):i)||(e.exports=o)},36817:function(e,t,n){var i={"./af.js":20707,"./am.js":28106,"./ar-dz.js":28440,"./ar-iq.js":32087,"./ar-kw.js":69545,"./ar-ly.js":28263,"./ar-ma.js":93205,"./ar-sa.js":10681,"./ar-tn.js":58187,"./ar.js":32871,"./az.js":40885,"./be.js":56654,"./bg.js":77737,"./bi.js":69666,"./bm.js":27308,"./bn-bd.js":13561,"./bn.js":95051,"./bo.js":87409,"./br.js":81149,"./bs.js":52362,"./ca.js":30242,"./cs.js":61822,"./cv.js":52289,"./cy.js":65452,"./da.js":27498,"./de-at.js":13578,"./de-ch.js":18534,"./de.js":83467,"./dv.js":69174,"./el.js":90049,"./en-au.js":52875,"./en-ca.js":42854,"./en-gb.js":73200,"./en-ie.js":69027,"./en-il.js":86886,"./en-in.js":52882,"./en-nz.js":85822,"./en-sg.js":47175,"./en-tt.js":45611,"./en.js":22898,"./eo.js":28486,"./es-do.js":48402,"./es-mx.js":70610,"./es-pr.js":38309,"./es-us.js":9842,"./es.js":59110,"./et.js":65104,"./eu.js":95386,"./fa.js":26736,"./fi.js":22614,"./fo.js":99022,"./fr-ca.js":28983,"./fr-ch.js":49347,"./fr.js":43344,"./fy.js":49007,"./ga.js":54199,"./gd.js":97279,"./gl.js":58326,"./gom-latn.js":35618,"./gu.js":72741,"./he.js":26006,"./hi.js":95160,"./hr.js":15417,"./ht.js":15123,"./hu.js":4802,"./hy-am.js":82474,"./id.js":59745,"./is.js":48139,"./it-ch.js":32436,"./it.js":46869,"./ja.js":7942,"./jv.js":24512,"./ka.js":11499,"./kk.js":17700,"./km.js":42661,"./kn.js":4439,"./ko.js":24989,"./ku.js":31316,"./ky.js":88412,"./lb.js":69139,"./lo.js":69052,"./lt.js":41244,"./lv.js":99648,"./me.js":81888,"./mi.js":87700,"./mk.js":14880,"./ml.js":71405,"./mn.js":1792,"./mr.js":62936,"./ms-my.js":4967,"./ms.js":23603,"./mt.js":76408,"./my.js":72460,"./nb.js":27680,"./ne.js":23964,"./nl-be.js":76803,"./nl.js":90792,"./nn.js":23693,"./oc-lnc.js":76136,"./pa-in.js":8565,"./pl.js":86348,"./pt-br.js":86064,"./pt.js":68239,"./rn.js":70233,"./ro.js":9656,"./ru.js":98848,"./rw.js":36411,"./sd.js":14166,"./se.js":71400,"./si.js":11545,"./sk.js":71778,"./sl.js":39552,"./sq.js":61622,"./sr-cyrl.js":64306,"./sr.js":23139,"./ss.js":40359,"./sv-fi.js":80357,"./sv.js":73306,"./sw.js":73237,"./ta.js":77067,"./te.js":15083,"./tet.js":6927,"./tg.js":24567,"./th.js":34419,"./tk.js":54216,"./tl-ph.js":91107,"./tlh.js":25875,"./tr.js":72145,"./tzl.js":92611,"./tzm-latn.js":17715,"./tzm.js":85408,"./ug-cn.js":62948,"./uk.js":42024,"./ur.js":53008,"./uz-latn.js":21413,"./uz.js":63609,"./vi.js":2606,"./x-pseudo.js":14953,"./yo.js":57091,"./zh-cn.js":6432,"./zh-hk.js":35732,"./zh-tw.js":30795,"./zh.js":73972};function r(e){var t=o(e);return n(t)}function o(e){if(!n.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}r.keys=function(){return Object.keys(i)},r.resolve=o,e.exports=r,r.id=36817},26116:function(){},43185:function(){},89052:function(e,t,n){"use strict";n.r(t),t.default={}},84480:function(e,t,n){"use strict";n.r(t),t.default={}},62307:function(e,t,n){"use strict";n.r(t),t.default={}},70332:function(e,t,n){"use strict";n.r(t),t.default={}},24960:function(){},26759:function(){},56272:function(){},24654:function(){},30907:function(e,t,n){"use strict";function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}n.d(t,{Z:function(){return i}})},83878:function(e,t,n){"use strict";function i(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return i}})},97326:function(e,t,n){"use strict";function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return i}})},15671:function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return i}})},5647:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var i=n(89611),r=n(78814);function o(e,t,n){return o=(0,r.Z)()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&(0,i.Z)(o,n.prototype),o},o.apply(null,arguments)}},43144:function(e,t,n){"use strict";function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function r(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}n.d(t,{Z:function(){return r}})},37762:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(40181);function r(e,t){var n="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=(0,i.Z)(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}},29388:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var i=n(61120),r=n(78814),o=n(6215);function a(e){var t=(0,r.Z)();return function(){var n,r=(0,i.Z)(e);if(t){var a=(0,i.Z)(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return(0,o.Z)(this,n)}}},4942:function(e,t,n){"use strict";function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return i}})},87462:function(e,t,n){"use strict";function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},i.apply(this,arguments)}n.d(t,{Z:function(){return i}})},11752:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(61120);function r(){return r="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=(0,i.Z)(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},r.apply(this,arguments)}},61120:function(e,t,n){"use strict";function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}n.d(t,{Z:function(){return i}})},60136:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(89611);function r(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,i.Z)(e,t)}},94578:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(89611);function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,i.Z)(e,t)}},78814:function(e,t,n){"use strict";function i(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return i}})},59199:function(e,t,n){"use strict";function i(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return i}})},25267:function(e,t,n){"use strict";function i(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return i}})},63366:function(e,t,n){"use strict";function i(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}n.d(t,{Z:function(){return i}})},6215:function(e,t,n){"use strict";function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}n.d(t,{Z:function(){return o}});var r=n(97326);function o(e,t){if(t&&("object"===i(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,r.Z)(e)}},89611:function(e,t,n){"use strict";function i(e,t){return i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},i(e,t)}n.d(t,{Z:function(){return i}})},29439:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var i=n(83878);var r=n(40181),o=n(25267);function a(e,t){return(0,i.Z)(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,r,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(i=n.next()).done)&&(o.push(i.value),!t||o.length!==t);a=!0);}catch(u){s=!0,r=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw r}}return o}}(e,t)||(0,r.Z)(e,t)||(0,o.Z)()}},84506:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var i=n(83878),r=n(59199),o=n(40181),a=n(25267);function s(e){return(0,i.Z)(e)||(0,r.Z)(e)||(0,o.Z)(e)||(0,a.Z)()}},93433:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var i=n(30907);var r=n(59199),o=n(40181);function a(e){return function(e){if(Array.isArray(e))return(0,i.Z)(e)}(e)||(0,r.Z)(e)||(0,o.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},40181:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(30907);function r(e,t){if(e){if("string"===typeof e)return(0,i.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,i.Z)(e,t):void 0}}},28664:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var i=n(61120),r=n(89611);var o=n(5647);function a(e){var t="function"===typeof Map?new Map:void 0;return a=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,a)}function a(){return(0,o.Z)(e,arguments,(0,i.Z)(this).constructor)}return a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),(0,r.Z)(a,e)},a(e)}},60484:function(e){"use strict";e.exports=JSON.parse('{"label_more":"Show more"}')},80148:function(e){"use strict";e.exports=JSON.parse('{"label_more":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435"}')},58731:function(e){"use strict";e.exports=JSON.parse('{"label_copy-link":"Copy link","label_copy-link-copied":"Link copied","label_share":"Share to {{name}}"}')},57108:function(e){"use strict";e.exports=JSON.parse('{"label_copy-link":"\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443","label_copy-link-copied":"\u0421\u0441\u044b\u043b\u043a\u0430 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0430","label_share":"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432 {{name}}"}')},69165:function(e){"use strict";e.exports=JSON.parse('{"label_back":"Back","label_next":"Next","label_close":"Close","label_more":"More","label_counter":"{{current}} of {{total}}"}')},24734:function(e){"use strict";e.exports=JSON.parse('{"label_back":"\u041d\u0430\u0437\u0430\u0434","label_next":"\u0414\u0430\u043b\u044c\u0448\u0435","label_close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","label_more":"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435","label_counter":"{{current}} \u0438\u0437 {{total}}"}')},96060:function(e){"use strict";e.exports=JSON.parse('{"button_switcher":"Columns","button_apply":"Apply"}')},36799:function(e){"use strict";e.exports=JSON.parse('{"button_switcher":"\u041a\u043e\u043b\u043e\u043d\u043a\u0438","button_apply":"\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c"}')},32966:function(e){"use strict";e.exports=JSON.parse('{"label_empty":"No data"}')},50196:function(e){"use strict";e.exports=JSON.parse('{"label_empty":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445"}')},82625:function(e){"use strict";e.exports=JSON.parse('{"label_clear-button":"Clear input value"}')},74969:function(e){"use strict";e.exports=JSON.parse('{"label_clear-button":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435"}')},2736:function(e){"use strict";e.exports=JSON.parse('{"label_close-button":"Close"}')},38842:function(e){"use strict";e.exports=JSON.parse('{"label_close-button":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"}')},44095:function(e){"use strict";e.exports=JSON.parse('{"label_error":"Error","label_empty":"No data"}')},11516:function(e){"use strict";e.exports=JSON.parse('{"label_error":"\u041e\u0448\u0438\u0431\u043a\u0430","label_empty":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445"}')}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=e,n.amdO={},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,i){return n.f[i](e,t),t}),[]))},n.u=function(e){return"static/js/"+e+"."+{245:"6db2db52",248:"736ab237",254:"a91c0bf4",371:"93a1186d",569:"abbf95fd",698:"746436d5",758:"2eb69c4e",805:"d67f39bf",842:"bd21ee9f",939:"4c5d6b68",983:"18afe3d6",1058:"3df06184",1115:"1e053b1d",1234:"165715d4",1474:"80932b06",1522:"5645047d",1602:"86ed3169",1898:"a0e4bd43",2056:"b607e590",2081:"bd41025d",2119:"9f7a5c06",2174:"264d1736",2205:"e7f0b9ab",2291:"d410fd68",2406:"180cb966",2507:"2d9c4b5c",2799:"64ec0194",2862:"29a56bf7",2991:"0db887ba",3001:"b1a75b50",3191:"c6dbae35",3254:"78ce4d35",3258:"248867bd",3451:"774580b7",3771:"0e0bb0f3",3883:"62a3dee4",4529:"eb0068c3",4546:"6820709e",4663:"cc239299",4712:"4e557974",4731:"6929d6df",4952:"58b99bba",5012:"3afcd232",5210:"0bde5996",5215:"82cc072c",5444:"f86e47ff",5517:"a1034916",5646:"ced0e1ae",5695:"d81b70ca",5748:"fa2a8e02",5784:"26f46213",5885:"c5ee8345",6060:"eb821066",6135:"e49ec940",6266:"db91261c",6550:"b5e85913",6559:"41bbd3a3",6708:"5cf2a45c",6892:"3db15360",7168:"ed7798a9",7478:"0bf003df",7548:"8ef3bbc0",7661:"dd104c3c",7664:"9f9f696d",7768:"2adb4751",7953:"eb2256ce",8005:"9c209154",8206:"9a658249",8322:"c2b160c6",8335:"9ed734ba",8520:"616efa9f",8558:"47b3557b",8590:"b8446f1d",8794:"5ad5fb7d",9005:"053ddf1a",9011:"f3cf1dfe",9163:"de992e19",9292:"3ccb6509",9803:"e1567af5"}[e]+".chunk.js"},n.miniCssF=function(e){},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={},t="ydb-embedded-ui:";n.l=function(i,r,o,a){if(e[i])e[i].push(r);else{var s,u;if(void 0!==o)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var d=l[c];if(d.getAttribute("src")==i||d.getAttribute("data-webpack")==t+o){s=d;break}}s||(u=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,n.nc&&s.setAttribute("nonce",n.nc),s.setAttribute("data-webpack",t+o),s.src=i),e[i]=[r];var h=function(t,n){s.onerror=s.onload=null,clearTimeout(f);var r=e[i];if(delete e[i],s.parentNode&&s.parentNode.removeChild(s),r&&r.forEach((function(e){return e(n)})),t)return t(n)},f=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),u&&document.head.appendChild(s)}}}(),n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},n.p="./",function(){var e={179:0};n.f.j=function(t,i){var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)i.push(r[2]);else{var o=new Promise((function(n,i){r=e[t]=[n,i]}));i.push(r[2]=o);var a=n.p+n.u(t),s=new Error;n.l(a,(function(i){if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=i&&("load"===i.type?"missing":i.type),a=i&&i.target&&i.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,r[1](s)}}),"chunk-"+t,t)}};var t=function(t,i){var r,o,a=i[0],s=i[1],u=i[2],l=0;if(a.some((function(t){return 0!==e[t]}))){for(r in s)n.o(s,r)&&(n.m[r]=s[r]);if(u)u(n)}for(t&&t(i);l<a.length;l++)o=a[l],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0},i=self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))}(),function(){"use strict";var e=n(4519),t=n(84453),i=n(15671),r=n(43144),o=n(60136),a=n(29388),s=e.createContext(null);var u=function(e){e()},l=function(){return u};var c={notify:function(){},get:function(){return[]}};function d(e,t){var n,i=c;function r(){a.onStateChange&&a.onStateChange()}function o(){n||(n=t?t.addNestedSub(r):e.subscribe(r),i=function(){var e=l(),t=null,n=null;return{clear:function(){t=null,n=null},notify:function(){e((function(){for(var e=t;e;)e.callback(),e=e.next}))},get:function(){for(var e=[],n=t;n;)e.push(n),n=n.next;return e},subscribe:function(e){var i=!0,r=n={callback:e,next:null,prev:n};return r.prev?r.prev.next=r:t=r,function(){i&&null!==t&&(i=!1,r.next?r.next.prev=r.prev:n=r.prev,r.prev?r.prev.next=r.next:t=r.next)}}}}())}var a={addNestedSub:function(e){return o(),i.subscribe(e)},notifyNestedSubs:function(){i.notify()},handleChangeWrapper:r,isSubscribed:function(){return Boolean(n)},trySubscribe:o,tryUnsubscribe:function(){n&&(n(),n=void 0,i.clear(),i=c)},getListeners:function(){return i}};return a}var h="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?e.useLayoutEffect:e.useEffect;var f=function(t){var n=t.store,i=t.context,r=t.children,o=(0,e.useMemo)((function(){var e=d(n);return e.onStateChange=e.notifyNestedSubs,{store:n,subscription:e}}),[n]),a=(0,e.useMemo)((function(){return n.getState()}),[n]);h((function(){var e=o.subscription;return e.trySubscribe(),a!==n.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}}),[o,a]);var u=i||s;return e.createElement(u.Provider,{value:o},r)},p=n(87462),v=n(63366),g=n(63993),m=n.n(g),_=n(78003),y=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],b=["reactReduxForwardedRef"],w=[],C=[null,null];function k(e,t){var n=e[1];return[t.payload,n+1]}function S(e,t,n){h((function(){return e.apply(void 0,t)}),n)}function x(e,t,n,i,r,o,a){e.current=i,t.current=r,n.current=!1,o.current&&(o.current=null,a())}function L(e,t,n,i,r,o,a,s,u,l){if(e){var c=!1,d=null,h=function(){if(!c){var e,n,h=t.getState();try{e=i(h,r.current)}catch(f){n=f,d=f}n||(d=null),e===o.current?a.current||u():(o.current=e,s.current=e,a.current=!0,l({type:"STORE_UPDATED",payload:{error:n}}))}};n.onStateChange=h,n.trySubscribe(),h();return function(){if(c=!0,n.tryUnsubscribe(),n.onStateChange=null,d)throw d}}}var E=function(){return[null,0]};function N(t,n){void 0===n&&(n={});var i=n,r=i.getDisplayName,o=void 0===r?function(e){return"ConnectAdvanced("+e+")"}:r,a=i.methodName,u=void 0===a?"connectAdvanced":a,l=i.renderCountProp,c=void 0===l?void 0:l,h=i.shouldHandleStateChanges,f=void 0===h||h,g=i.storeKey,N=void 0===g?"store":g,D=(i.withRef,i.forwardRef),M=void 0!==D&&D,T=i.context,O=void 0===T?s:T,I=(0,v.Z)(i,y),A=O;return function(n){var i=n.displayName||n.name||"Component",r=o(i),a=(0,p.Z)({},I,{getDisplayName:o,methodName:u,renderCountProp:c,shouldHandleStateChanges:f,storeKey:N,displayName:r,wrappedComponentName:i,WrappedComponent:n}),s=I.pure;var l=s?e.useMemo:function(e){return e()};function h(i){var r=(0,e.useMemo)((function(){var e=i.reactReduxForwardedRef,t=(0,v.Z)(i,b);return[i.context,e,t]}),[i]),o=r[0],s=r[1],u=r[2],c=(0,e.useMemo)((function(){return o&&o.Consumer&&(0,_.isContextConsumer)(e.createElement(o.Consumer,null))?o:A}),[o,A]),h=(0,e.useContext)(c),g=Boolean(i.store)&&Boolean(i.store.getState)&&Boolean(i.store.dispatch);Boolean(h)&&Boolean(h.store);var m=g?i.store:h.store,y=(0,e.useMemo)((function(){return function(e){return t(e.dispatch,a)}(m)}),[m]),N=(0,e.useMemo)((function(){if(!f)return C;var e=d(m,g?null:h.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[m,g,h]),D=N[0],M=N[1],T=(0,e.useMemo)((function(){return g?h:(0,p.Z)({},h,{subscription:D})}),[g,h,D]),O=(0,e.useReducer)(k,w,E),I=O[0][0],P=O[1];if(I&&I.error)throw I.error;var R=(0,e.useRef)(),Z=(0,e.useRef)(u),F=(0,e.useRef)(),j=(0,e.useRef)(!1),H=l((function(){return F.current&&u===Z.current?F.current:y(m.getState(),u)}),[m,I,u]);S(x,[Z,R,j,u,H,F,M]),S(L,[f,m,D,y,Z,R,j,F,M,P],[m,D,y]);var B=(0,e.useMemo)((function(){return e.createElement(n,(0,p.Z)({},H,{ref:s}))}),[s,n,H]);return(0,e.useMemo)((function(){return f?e.createElement(c.Provider,{value:T},B):B}),[c,B,T])}var g=s?e.memo(h):h;if(g.WrappedComponent=n,g.displayName=h.displayName=r,M){var y=e.forwardRef((function(t,n){return e.createElement(g,(0,p.Z)({},t,{reactReduxForwardedRef:n}))}));return y.displayName=r,y.WrappedComponent=n,m()(y,n)}return m()(g,n)}}function D(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function M(e,t){if(D(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!D(e[n[r]],t[n[r]]))return!1;return!0}function T(e){return function(t,n){var i=e(t,n);function r(){return i}return r.dependsOnOwnProps=!1,r}}function O(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function I(e,t){return function(t,n){n.displayName;var i=function(e,t){return i.dependsOnOwnProps?i.mapToProps(e,t):i.mapToProps(e)};return i.dependsOnOwnProps=!0,i.mapToProps=function(t,n){i.mapToProps=e,i.dependsOnOwnProps=O(e);var r=i(t,n);return"function"===typeof r&&(i.mapToProps=r,i.dependsOnOwnProps=O(r),r=i(t,n)),r},i}}var A=[function(e){return"function"===typeof e?I(e):void 0},function(e){return e?void 0:T((function(e){return{dispatch:e}}))},function(e){return e&&"object"===typeof e?T((function(t){return function(e,t){var n={},i=function(i){var r=e[i];"function"===typeof r&&(n[i]=function(){return t(r.apply(void 0,arguments))})};for(var r in e)i(r);return n}(e,t)})):void 0}];var P=[function(e){return"function"===typeof e?I(e):void 0},function(e){return e?void 0:T((function(){return{}}))}];function R(e,t,n){return(0,p.Z)({},n,e,t)}var Z=[function(e){return"function"===typeof e?function(e){return function(t,n){n.displayName;var i,r=n.pure,o=n.areMergedPropsEqual,a=!1;return function(t,n,s){var u=e(t,n,s);return a?r&&o(u,i)||(i=u):(a=!0,i=u),i}}}(e):void 0},function(e){return e?void 0:function(){return R}}],F=["initMapStateToProps","initMapDispatchToProps","initMergeProps"];function j(e,t,n,i){return function(r,o){return n(e(r,o),t(i,o),o)}}function H(e,t,n,i,r){var o,a,s,u,l,c=r.areStatesEqual,d=r.areOwnPropsEqual,h=r.areStatePropsEqual,f=!1;function p(r,f){var p=!d(f,a),v=!c(r,o);return o=r,a=f,p&&v?(s=e(o,a),t.dependsOnOwnProps&&(u=t(i,a)),l=n(s,u,a)):p?(e.dependsOnOwnProps&&(s=e(o,a)),t.dependsOnOwnProps&&(u=t(i,a)),l=n(s,u,a)):v?function(){var t=e(o,a),i=!h(t,s);return s=t,i&&(l=n(s,u,a)),l}():l}return function(r,c){return f?p(r,c):(s=e(o=r,a=c),u=t(i,a),l=n(s,u,a),f=!0,l)}}function B(e,t){var n=t.initMapStateToProps,i=t.initMapDispatchToProps,r=t.initMergeProps,o=(0,v.Z)(t,F),a=n(e,o),s=i(e,o),u=r(e,o);return(o.pure?H:j)(a,s,u,e,o)}var z=["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"];function W(e,t,n){for(var i=t.length-1;i>=0;i--){var r=t[i](e);if(r)return r}return function(t,i){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+i.wrappedComponentName+".")}}function V(e,t){return e===t}function Y(e){var t=void 0===e?{}:e,n=t.connectHOC,i=void 0===n?N:n,r=t.mapStateToPropsFactories,o=void 0===r?P:r,a=t.mapDispatchToPropsFactories,s=void 0===a?A:a,u=t.mergePropsFactories,l=void 0===u?Z:u,c=t.selectorFactory,d=void 0===c?B:c;return function(e,t,n,r){void 0===r&&(r={});var a=r,u=a.pure,c=void 0===u||u,h=a.areStatesEqual,f=void 0===h?V:h,g=a.areOwnPropsEqual,m=void 0===g?M:g,_=a.areStatePropsEqual,y=void 0===_?M:_,b=a.areMergedPropsEqual,w=void 0===b?M:b,C=(0,v.Z)(a,z),k=W(e,o,"mapStateToProps"),S=W(t,s,"mapDispatchToProps"),x=W(n,l,"mergeProps");return i(d,(0,p.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:k,initMapDispatchToProps:S,initMergeProps:x,pure:c,areStatesEqual:f,areOwnPropsEqual:m,areStatePropsEqual:y,areMergedPropsEqual:w},C))}}var U=Y();function K(){return(0,e.useContext)(s)}function q(t){void 0===t&&(t=s);var n=t===s?K:function(){return(0,e.useContext)(t)};return function(){return n().store}}var G=q();function $(e){void 0===e&&(e=s);var t=e===s?G:q(e);return function(){return t().dispatch}}var Q=$(),X=function(e,t){return e===t};function J(t){void 0===t&&(t=s);var n=t===s?K:function(){return(0,e.useContext)(t)};return function(t,i){void 0===i&&(i=X);var r=n(),o=function(t,n,i,r){var o,a=(0,e.useReducer)((function(e){return e+1}),0)[1],s=(0,e.useMemo)((function(){return d(i,r)}),[i,r]),u=(0,e.useRef)(),l=(0,e.useRef)(),c=(0,e.useRef)(),f=(0,e.useRef)(),p=i.getState();try{if(t!==l.current||p!==c.current||u.current){var v=t(p);o=void 0!==f.current&&n(v,f.current)?f.current:v}else o=f.current}catch(g){throw u.current&&(g.message+="\nThe error may be correlated with this previous error:\n"+u.current.stack+"\n\n"),g}return h((function(){l.current=t,c.current=p,f.current=o,u.current=void 0})),h((function(){function e(){try{var e=i.getState();if(e===c.current)return;var t=l.current(e);if(n(t,f.current))return;f.current=t,c.current=e}catch(g){u.current=g}a()}return s.onStateChange=e,s.trySubscribe(),e(),function(){return s.tryUnsubscribe()}}),[i,s]),o}(t,i,r.store,r.subscription);return(0,e.useDebugValue)(o),o}}var ee,te=J();ee=t.unstable_batchedUpdates,u=ee;var ne=n(94578);function ie(e){return"/"===e.charAt(0)}function re(e,t){for(var n=t,i=n+1,r=e.length;i<r;n+=1,i+=1)e[n]=e[i];e.pop()}var oe=function(e,t){void 0===t&&(t="");var n,i=e&&e.split("/")||[],r=t&&t.split("/")||[],o=e&&ie(e),a=t&&ie(t),s=o||a;if(e&&ie(e)?r=i:i.length&&(r.pop(),r=r.concat(i)),!r.length)return"/";if(r.length){var u=r[r.length-1];n="."===u||".."===u||""===u}else n=!1;for(var l=0,c=r.length;c>=0;c--){var d=r[c];"."===d?re(r,c):".."===d?(re(r,c),l++):l&&(re(r,c),l--)}if(!s)for(;l--;l)r.unshift("..");!s||""===r[0]||r[0]&&ie(r[0])||r.unshift("");var h=r.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function ae(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var se=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,i){return e(t,n[i])}));if("object"===typeof t||"object"===typeof n){var i=ae(t),r=ae(n);return i!==t||r!==n?e(i,r):Object.keys(Object.assign({},t,n)).every((function(i){return e(t[i],n[i])}))}return!1},ue=!0,le="Invariant failed";function ce(e,t){if(!e){if(ue)throw new Error(le);var n="function"===typeof t?t():t;throw new Error(n?le+": "+n:le)}}function de(e){return"/"===e.charAt(0)?e:"/"+e}function he(e){return"/"===e.charAt(0)?e.substr(1):e}function fe(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function pe(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function ve(e){var t=e.pathname,n=e.search,i=e.hash,r=t||"/";return n&&"?"!==n&&(r+="?"===n.charAt(0)?n:"?"+n),i&&"#"!==i&&(r+="#"===i.charAt(0)?i:"#"+i),r}function ge(e,t,n,i){var r;"string"===typeof e?(r=function(e){var t=e||"/",n="",i="",r=t.indexOf("#");-1!==r&&(i=t.substr(r),t=t.substr(0,r));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===i?"":i}}(e),r.state=t):(void 0===(r=(0,p.Z)({},e)).pathname&&(r.pathname=""),r.search?"?"!==r.search.charAt(0)&&(r.search="?"+r.search):r.search="",r.hash?"#"!==r.hash.charAt(0)&&(r.hash="#"+r.hash):r.hash="",void 0!==t&&void 0===r.state&&(r.state=t));try{r.pathname=decodeURI(r.pathname)}catch(o){throw o instanceof URIError?new URIError('Pathname "'+r.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):o}return n&&(r.key=n),i?r.pathname?"/"!==r.pathname.charAt(0)&&(r.pathname=oe(r.pathname,i.pathname)):r.pathname=i.pathname:r.pathname||(r.pathname="/"),r}function me(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,i,r){if(null!=e){var o="function"===typeof e?e(t,n):e;"string"===typeof o?"function"===typeof i?i(o,r):r(!0):r(!1!==o)}else r(!0)},appendListener:function(e){var n=!0;function i(){n&&e.apply(void 0,arguments)}return t.push(i),function(){n=!1,t=t.filter((function(e){return e!==i}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];t.forEach((function(e){return e.apply(void 0,n)}))}}}var _e=!("undefined"===typeof window||!window.document||!window.document.createElement);function ye(e,t){t(window.confirm(e))}var be="popstate",we="hashchange";function Ce(){try{return window.history.state||{}}catch(e){return{}}}function ke(e){void 0===e&&(e={}),_e||ce(!1);var t=window.history,n=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history}(),i=!(-1===window.navigator.userAgent.indexOf("Trident")),r=e,o=r.forceRefresh,a=void 0!==o&&o,s=r.getUserConfirmation,u=void 0===s?ye:s,l=r.keyLength,c=void 0===l?6:l,d=e.basename?pe(de(e.basename)):"";function h(e){var t=e||{},n=t.key,i=t.state,r=window.location,o=r.pathname+r.search+r.hash;return d&&(o=fe(o,d)),ge(o,i,n)}function f(){return Math.random().toString(36).substr(2,c)}var v=me();function g(e){(0,p.Z)(N,e),N.length=t.length,v.notifyListeners(N.location,N.action)}function m(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||b(h(e.state))}function _(){b(h(Ce()))}var y=!1;function b(e){if(y)y=!1,g();else{v.confirmTransitionTo(e,"POP",u,(function(t){t?g({action:"POP",location:e}):function(e){var t=N.location,n=C.indexOf(t.key);-1===n&&(n=0);var i=C.indexOf(e.key);-1===i&&(i=0);var r=n-i;r&&(y=!0,S(r))}(e)}))}}var w=h(Ce()),C=[w.key];function k(e){return d+ve(e)}function S(e){t.go(e)}var x=0;function L(e){1===(x+=e)&&1===e?(window.addEventListener(be,m),i&&window.addEventListener(we,_)):0===x&&(window.removeEventListener(be,m),i&&window.removeEventListener(we,_))}var E=!1;var N={length:t.length,action:"POP",location:w,createHref:k,push:function(e,i){var r="PUSH",o=ge(e,i,f(),N.location);v.confirmTransitionTo(o,r,u,(function(e){if(e){var i=k(o),s=o.key,u=o.state;if(n)if(t.pushState({key:s,state:u},null,i),a)window.location.href=i;else{var l=C.indexOf(N.location.key),c=C.slice(0,l+1);c.push(o.key),C=c,g({action:r,location:o})}else window.location.href=i}}))},replace:function(e,i){var r="REPLACE",o=ge(e,i,f(),N.location);v.confirmTransitionTo(o,r,u,(function(e){if(e){var i=k(o),s=o.key,u=o.state;if(n)if(t.replaceState({key:s,state:u},null,i),a)window.location.replace(i);else{var l=C.indexOf(N.location.key);-1!==l&&(C[l]=o.key),g({action:r,location:o})}else window.location.replace(i)}}))},go:S,goBack:function(){S(-1)},goForward:function(){S(1)},block:function(e){void 0===e&&(e=!1);var t=v.setPrompt(e);return E||(L(1),E=!0),function(){return E&&(E=!1,L(-1)),t()}},listen:function(e){var t=v.appendListener(e);return L(1),function(){L(-1),t()}}};return N}var Se="hashchange",xe={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+he(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:he,decodePath:de},slash:{encodePath:de,decodePath:de}};function Le(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function Ee(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function Ne(e){window.location.replace(Le(window.location.href)+"#"+e)}function De(e){void 0===e&&{},_e||ce(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),i=n.getUserConfirmation,r=void 0===i?ye:i,o=n.hashType,a=void 0===o?"slash":o,s=e.basename?pe(de(e.basename)):"",u=xe[a],l=u.encodePath,c=u.decodePath;function d(){var e=c(Ee());return s&&fe(e,s),ge(e)}var h=me();function f(e){(0,p.Z)(L,e),L.length=t.length,h.notifyListeners(L.location,L.action)}var v=!1,g=null;function m(){var e=Ee(),t=l(e);if(e!==t)Ne(t);else{var n=d(),i=L.location;if(!v&&function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash}(i,n))return;if(g===ve(n))return;null,function(e){if(v)!1,f();else{var t="POP";h.confirmTransitionTo(e,t,r,(function(n){n?f({action:t,location:e}):function(e){var t=L.location,n=w.lastIndexOf(ve(t));-1===n&&0;var i=w.lastIndexOf(ve(e));-1===i&&0;var r=n-i;r&&(!0,C(r))}(e)}))}}(n)}}var _=Ee(),y=l(_);_!==y&&Ne(y);var b=d(),w=[ve(b)];function C(e){t.go(e)}var k=0;function S(e){1===(k+=e)&&1===e?window.addEventListener(Se,m):0===k&&window.removeEventListener(Se,m)}var x=!1;var L={length:t.length,action:"POP",location:b,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&Le(window.location.href),n+"#"+l(s+ve(e))},push:function(e,t){var n="PUSH",i=ge(e,void 0,void 0,L.location);h.confirmTransitionTo(i,n,r,(function(e){if(e){var t=ve(i),r=l(s+t);if(Ee()!==r){t,function(e){window.location.hash=e}(r);var o=w.lastIndexOf(ve(L.location)),a=w.slice(0,o+1);a.push(t),a,f({action:n,location:i})}else f()}}))},replace:function(e,t){var n="REPLACE",i=ge(e,void 0,void 0,L.location);h.confirmTransitionTo(i,n,r,(function(e){if(e){var t=ve(i),r=l(s+t);Ee()!==r&&(t,Ne(r));var o=w.indexOf(ve(L.location));-1!==o&&(w[o]=t),f({action:n,location:i})}}))},go:C,goBack:function(){C(-1)},goForward:function(){C(1)},block:function(e){void 0===e&&!1;var t=h.setPrompt(e);return x||(S(1),!0),function(){return x&&(!1,S(-1)),t()}},listen:function(e){var t=h.appendListener(e);return S(1),function(){S(-1),t()}}};return L}function Me(e,t,n){return Math.min(Math.max(e,t),n)}var Te=n(91386),Oe=n.n(Te),Ie=1073741823,Ae="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:{};var Pe=e.createContext||function(t,n){var i,r,o="__create-react-context-"+function(){var e="__global_unique_id__";return Ae[e]=(Ae[e]||0)+1}()+"__",a=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).emitter=function(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,i){e=n,t.forEach((function(t){return t(e,i)}))}}}(t.props.value),t}(0,ne.Z)(t,e);var i=t.prototype;return i.getChildContext=function(){var e;return(e={})[o]=this.emitter,e},i.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var t,i=this.props.value,r=e.value;((o=i)===(a=r)?0!==o||1/o===1/a:o!==o&&a!==a)?t=0:(t="function"===typeof n?n(i,r):Ie,0!==(t|=0)&&this.emitter.set(e.value,t))}var o,a},i.render=function(){return this.props.children},t}(e.Component);a.childContextTypes=((i={})[o]=Oe().object.isRequired,i);var s=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).state={value:t.getValue()},t.onUpdate=function(e,n){0!==((0|t.observedBits)&n)&&t.setState({value:t.getValue()})},t}(0,ne.Z)(n,e);var i=n.prototype;return i.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=void 0===t||null===t?Ie:t},i.componentDidMount=function(){this.context[o]&&this.context[o].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=void 0===e||null===e?Ie:e},i.componentWillUnmount=function(){this.context[o]&&this.context[o].off(this.onUpdate)},i.getValue=function(){return this.context[o]?this.context[o].get():t},i.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(e.Component);return s.contextTypes=((r={})[o]=Oe().object,r),{Provider:a,Consumer:s}},Re=Pe,Ze=n(39801),Fe=n.n(Ze),je=(n(29685),function(e){var t=Re();return t.displayName=e,t}),He=je("Router-History"),Be=je("Router"),ze=function(t){function n(e){var n;return(n=t.call(this,e)||this).state={location:e.history.location},n._isMounted=!1,n._pendingLocation=null,e.staticContext||(n.unlisten=e.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}(0,ne.Z)(n,t),n.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var i=n.prototype;return i.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},i.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},i.render=function(){return e.createElement(Be.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},e.createElement(He.Provider,{children:this.props.children||null,value:this.props.history}))},n}(e.Component);e.Component;var We=function(e){function t(){return e.apply(this,arguments)||this}(0,ne.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(e.Component);var Ve={},Ye=1e4,Ue=0;function Ke(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(Ve[e])return Ve[e];var t=Fe().compile(e);return Ue<Ye&&(Ve[e]=t,Ue++),t}(e)(t,{pretty:!0})}function qe(t){var n=t.computedMatch,i=t.to,r=t.push,o=void 0!==r&&r;return e.createElement(Be.Consumer,null,(function(t){t||ce(!1);var r=t.history,a=t.staticContext,s=o?r.push:r.replace,u=ge(n?"string"===typeof i?Ke(i,n.params):(0,p.Z)({},i,{pathname:Ke(i.pathname,n.params)}):i);return a?(s(u),null):e.createElement(We,{onMount:function(){s(u)},onUpdate:function(e,t){var n=ge(t.to);(function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&se(e.state,t.state)})(n,(0,p.Z)({},u,{key:n.key}))||s(u)},to:i})}))}var Ge={},$e=1e4,Qe=0;function Xe(e,t){void 0===t&&(t={}),("string"===typeof t||Array.isArray(t))&&(t={path:t});var n=t,i=n.path,r=n.exact,o=void 0!==r&&r,a=n.strict,s=void 0!==a&&a,u=n.sensitive,l=void 0!==u&&u;return[].concat(i).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var i=function(e,t){var n=""+t.end+t.strict+t.sensitive,i=Ge[n]||(Ge[n]={});if(i[e])return i[e];var r=[],o={regexp:Fe()(e,r,t),keys:r};return Qe<$e&&(i[e]=o,Qe++),o}(n,{end:o,strict:s,sensitive:l}),r=i.regexp,a=i.keys,u=r.exec(e);if(!u)return null;var c=u[0],d=u.slice(1),h=e===c;return o&&!h?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:h,params:a.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var Je=function(t){function n(){return t.apply(this,arguments)||this}return(0,ne.Z)(n,t),n.prototype.render=function(){var t=this;return e.createElement(Be.Consumer,null,(function(n){n||ce(!1);var i=t.props.location||n.location,r=t.props.computedMatch?t.props.computedMatch:t.props.path?Xe(i.pathname,t.props):n.match,o=(0,p.Z)({},n,{location:i,match:r}),a=t.props,s=a.children,u=a.component,l=a.render;return Array.isArray(s)&&function(t){return 0===e.Children.count(t)}(s)&&(s=null),e.createElement(Be.Provider,{value:o},o.match?s?"function"===typeof s?s(o):s:u?e.createElement(u,o):l?l(o):null:"function"===typeof s?s(o):null)}))},n}(e.Component);function et(e){return"/"===e.charAt(0)?e:"/"+e}function tt(e,t){if(!e)return t;var n=et(e);return 0!==t.pathname.indexOf(n)?t:(0,p.Z)({},t,{pathname:t.pathname.substr(n.length)})}function nt(e){return"string"===typeof e?e:ve(e)}function it(e){return function(){ce(!1)}}function rt(){}e.Component;var ot=function(t){function n(){return t.apply(this,arguments)||this}return(0,ne.Z)(n,t),n.prototype.render=function(){var t=this;return e.createElement(Be.Consumer,null,(function(n){n||ce(!1);var i,r,o=t.props.location||n.location;return e.Children.forEach(t.props.children,(function(t){if(null==r&&e.isValidElement(t)){i=t;var a=t.props.path||t.props.from;r=a?Xe(o.pathname,(0,p.Z)({},t.props,{path:a})):n.match}})),r?e.cloneElement(i,{location:o,computedMatch:r}):null}))},n}(e.Component);var at=e.useContext;function st(){return at(He)}function ut(){return at(Be).location}function lt(e){var t=ut(),n=at(Be).match;return e?Xe(t.pathname,e):n}var ct=n(78243),dt=n(29439),ht="yc-",ft="g-";function pt(e){return(0,ct.default)("".concat(ht).concat(e))}function vt(e){return(0,ct.default)("".concat(ft).concat(e))}function gt(e){return e.split(/\s(.*)/)[1]}var mt="system",_t="light",yt="dark",bt=([].concat(["light","light-hc"],["dark","dark-hc"]),"root"),wt={theme:mt,setTheme:function(){}},Ct=e.createContext(wt);Ct.displayName="ThemeContext";var kt=e.createContext({themeValue:"light"});kt.displayName="ThemeValueContext";var St=e.createContext(void 0);St.displayName="ThemeSettingsContext";var xt=n(4942),Lt=n(93433),Et=pt(bt),Nt=Et(),Dt={"native-scrollbar":!1};function Mt(e,t,n){var i=document.body;(i.classList.contains(Nt)||i.classList.add(Nt),n)&&n.split(" ").forEach((function(e){e&&!i.classList.contains(e)&&i.classList.add(e)}));(0,Lt.Z)(i.classList).forEach((function(e){e.startsWith(gt(Et({theme:!0})))&&i.classList.remove(e)})),i.classList.add(gt(Et({theme:e})));for(var r=0,o=Object.entries(Object.assign(Object.assign({},Dt),t));r<o.length;r++){var a=(0,dt.Z)(o[r],2),s=a[0],u=a[1];i.classList.toggle(gt(Et((0,xt.Z)({},s,!0))),u)}}var Tt=function(){return window.matchMedia("(prefers-color-scheme: dark)")};function Ot(){var t=(0,e.useState)("object"===typeof window&&Tt().matches?"dark":"light"),n=(0,dt.Z)(t,2),i=n[0],r=n[1];return(0,e.useEffect)((function(){var e=function(e,t){var n="function"!==typeof e.addEventListener;return n?e.addListener(t):e.addEventListener("change",t),function(){n?e.removeListener(t):e.removeEventListener("change",t)}}(Tt(),(function(e){r(e.matches?"dark":"light")}));return function(){return e()}}),[]),i}var It=pt(bt);function At(t){var n=t.theme,i=void 0===n?mt:n,r=t.systemLightTheme,o=void 0===r?_t:r,a=t.systemDarkTheme,s=void 0===a?yt:a,u=t.nativeScrollbar,l=void 0!==u&&u,c=t.scoped,d=void 0!==c&&c,h=t.rootClassName,f=void 0===h?"":h,p=t.children,v=(0,e.useState)(i),g=(0,dt.Z)(v,2),m=g[0],_=g[1],y=(0,e.useState)({systemLightTheme:o,systemDarkTheme:s}),b=(0,dt.Z)(y,2),w=b[0],C=w.systemLightTheme,k=w.systemDarkTheme,S=b[1];(0,e.useLayoutEffect)((function(){_(i),S({systemLightTheme:o,systemDarkTheme:s})}),[i,o,s]);var x="light"===Ot()?C:k,L="system"===m?x:m;(0,e.useEffect)((function(){d||Mt(L,{"native-scrollbar":l},f)}),[l,L,d,f]);var E=(0,e.useMemo)((function(){return{theme:m,themeValue:L,setTheme:_}}),[m,L]),N=(0,e.useMemo)((function(){return{themeValue:L}}),[L]),D=(0,e.useMemo)((function(){return{themeSettings:{systemLightTheme:C,systemDarkTheme:k},setThemeSettings:S}}),[C,k]);return e.createElement(Ct.Provider,{value:E},e.createElement(St.Provider,{value:D},e.createElement(kt.Provider,{value:N},d?e.createElement("div",{className:It({theme:L,"native-scrollbar":l},f)},p):p)))}function Pt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function Rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pt(Object(n),!0).forEach((function(t){(0,xt.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}At.displayName="ThemeProvider";var Zt=n(22637),Ft=n.n(Zt),jt=n(2137),Ht=n(20061),Bt=n.n(Ht),zt=n(83077),Wt=function(){return Math.random().toString(36).substring(7).split("").join(".")},Vt={INIT:"@@redux/INIT"+Wt(),REPLACE:"@@redux/REPLACE"+Wt(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Wt()}};function Yt(e){if("object"!==typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Ut(e,t,n){var i;if("function"===typeof t&&"function"===typeof n||"function"===typeof n&&"function"===typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function");if("function"===typeof t&&"undefined"===typeof n&&(n=t,t=void 0),"undefined"!==typeof n){if("function"!==typeof n)throw new Error("Expected the enhancer to be a function.");return n(Ut)(e,t)}if("function"!==typeof e)throw new Error("Expected the reducer to be a function.");var r=e,o=t,a=[],s=a,u=!1;function l(){s===a&&(s=a.slice())}function c(){if(u)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return o}function d(e){if("function"!==typeof e)throw new Error("Expected the listener to be a function.");if(u)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return l(),s.push(e),function(){if(t){if(u)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,l();var n=s.indexOf(e);s.splice(n,1)}}}function h(e){if(!Yt(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"===typeof e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw new Error("Reducers may not dispatch actions.");try{u=!0,o=r(o,e)}finally{u=!1}for(var t=a=s,n=0;n<t.length;n++){(0,t[n])()}return e}return h({type:Vt.INIT}),(i={dispatch:h,subscribe:d,getState:c,replaceReducer:function(e){if("function"!==typeof e)throw new Error("Expected the nextReducer to be a function.");r=e,h({type:Vt.REPLACE})}})[zt.Z]=function(){var e,t=d;return(e={subscribe:function(e){if("object"!==typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(c())}return n(),{unsubscribe:t(n)}}})[zt.Z]=function(){return this},e},i}function Kt(e,t){var n=t&&t.type;return"Given "+(n&&'action "'+String(n)+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function qt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Gt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function $t(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),i=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},r={getState:n.getState,dispatch:function(){return i.apply(void 0,arguments)}},o=t.map((function(e){return e(r)}));return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),i.forEach((function(t){qt(e,t,n[t])}))}return e}({},n,{dispatch:i=Gt.apply(void 0,o)(n.dispatch)})}}}function Qt(e){return function(t){var n=t.dispatch,i=t.getState;return function(t){return function(r){return"function"===typeof r?r(n,i,e):t(r)}}}}var Xt=Qt();Xt.withExtraArgument=Qt;var Jt=Xt,en=n(22458),tn=n(33119),nn=function(e,t){if(t){if(window.custom_backend)return{basename:"/",backend:tn.parse(e,!0).query.backend||window.custom_backend};var n=window.location.pathname.match(/.*(?=\/monitoring)/)||[],i=Boolean(n.length)&&n[0];return{basename:[i,"monitoring"].filter(Boolean).join("/"),backend:i||""}}var r=tn.parse(e,!0).query;return{basename:"/",backend:r.backend,clusterName:r.clusterName}};function rn(e,t){if(null==e)return{};var n,i,r=(0,v.Z)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var on=n(32048),an=n.n(on),sn=n(77847),un=n(85292),ln=n(34737),cn=n(8606);function dn(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}var hn=n(39779),fn=n.n(hn),pn=1,vn=-1,gn="fixed",mn="moving",_n="__index__";var yn=function(){var e=document.createElement("a").style;return e.cssText="position:sticky; position:-webkit-sticky;",-1!==e.position.indexOf("sticky")}(),bn={getSrcElement:function(){return null},onHeightChange:function(){}},wn=function(){function e(t){var n=this;(0,i.Z)(this,e),this.prevHeight=0,this.params=bn,this.checkAndUpdateHeight=function(){n.node?requestAnimationFrame((function(){var e=n.node;e?n.updateHeight(e.offsetHeight):n.updateHeight(0)})):n.updateHeight(0)},this.params=Object.assign({},t)}return(0,r.Z)(e,[{key:"destroy",value:function(){this.updateHeight(0),this.params=bn}},{key:"node",get:function(){return this.params.getSrcElement()}},{key:"updateHeight",value:function(e){this.prevHeight!==e&&(this.prevHeight=e,this.params.onHeightChange(e))}}]),e}();function Cn(e,t){var n=e.name,i=e.defaultOrder,r=t.sortOrder,o=void 0===r?{}:r,a=t.sortColumns,s=void 0===a?[]:a,u=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},c=l.defaultOrder,d=l.disableSortReset,h=i||c,f={sortOrder:{},sortColumns:[]};if(!n)return u?{sortOrder:o,sortColumns:s}:f;var p=s,v=o[n],g=h;if(v&&(g=v===h||d?v===pn?vn:pn:void 0),!u)return g?{sortOrder:(0,xt.Z)({},n,g),sortColumns:[n]}:f;var m=o,_=n,y=(m[_],dn(m,["symbol"===typeof _?_:_+""]));return g?(y[n]=g,new Set(s).has(n)||(p=[].concat((0,Lt.Z)(s),[n]))):p=s.filter((function(e){return e!==n})),{sortOrder:y,sortColumns:p}}function kn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t,r=e.sortAscending;return"function"===typeof r?function(e,t){return i*r(e,t)}:function(t,r){var o=e._getSortValue(t.row),a=e._getSortValue(r.row);return null==o&&null!=a?n.nullBeforeNumbers?-i:1:null==a&&null!=o?n.nullBeforeNumbers?i:-1:o<a?Number(-i):o>a?Number(i):0}}function Sn(e,t,n,i){var r=n.sortOrder,o=n.sortColumns,a={};t.forEach((function(e){r[e.name]?a[e.name]=kn(e,r[e.name],i):e.group&&e.autogroup&&(a[e.name]=kn(e,pn,i))}));var s=t.filter((function(e){return e.group})),u=s.length>0,l=[].concat((0,Lt.Z)(s.map((function(e){return a[e.name]})).filter(Boolean)),(0,Lt.Z)(o.map((function(e){return a[e]})).filter(Boolean))),c=e.map((function(e,t){return u?{row:e,index:t,span:{}}:{row:e,index:t}}));if(l.length&&!i.externalSort&&c.sort((function(e,t){var n=0;return l.some((function(i){return n=i(e,t),Boolean(n)})),n||e.index-t.index})),c.length>1&&u){var d=[],h=[];c.forEach((function(e){s.every((function(t,n){var i=t._getValue(e.row);return d[n]&&i===h[n]?(d[n].span[t.name]+=1,e.span[t.name]=0,!0):(s.slice(n).forEach((function(t,i){d[n+i]=e,h[n+i]=t._getValue(e.row),e.span[t.name]=1})),!1)}))}))}return c}function xn(e,t){return(Array.isArray(e)?e:[e]).reduce((function(e,n){return Cn({name:n.columnId,defaultOrder:n.order},e,!0,t)}),{sortOrder:{},sortColumns:[]})}var Ln=(0,ct.default)("data-table"),En=e.createElement("svg",{className:Ln("icon"),viewBox:"0 0 10 6",width:"10",height:"6"},e.createElement("path",{fill:"currentColor",d:"M0 5h10l-5 -5z"})),Nn=e.createElement("svg",{className:Ln("icon"),viewBox:"0 0 10 6",width:"10",height:"6"},e.createElement("path",{fill:"currentColor",d:"M0 1h10l-5 5z"})),Dn={ICON_ASC:En,ICON_DESC:Nn};var Mn=function(t){var n=t.sortOrder,i=t.sortIndex,r=t.sortable,o=t.defaultOrder;return r?e.createElement("span",{className:Ln("sort-icon",{shadow:!n}),"data-index":i},function(e){switch(e){case pn:return Dn.ICON_ASC;case vn:return Dn.ICON_DESC;default:return!1}}(n||o)):null};Mn.propTypes={sortOrder:Oe().oneOf([pn,vn]),sortable:Oe().bool,defaultOrder:Oe().oneOf([pn,vn])};var Tn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).onClick=function(t){if(e.props.onClick){var n=e.props,i=n.row,r=n.index;e.props.onClick(i,r,t)}},e}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.className,i=t.columns,r=t.row,o=t.index,a=t.odd,s=t.footer,u=t.span,l=t.headerData;return e.createElement("tr",{className:Ln("row",{odd:a,footer:s,"header-data":l},n),onClick:this.onClick},i.map((function(t,n){var i;if(u){if(0===u[t.name])return null;i=u[t.name]}var a=t._getValue(r);return e.createElement("td",{key:n,className:t._className,title:t._getTitle(r),style:t.customStyle({row:r,index:o,name:t.name,header:!1,footer:s,headerData:l}),rowSpan:i,onClick:t._getOnClick({row:r,index:o,footer:s,headerData:l})},t._renderValue({value:a,row:r,index:o,footer:s,headerData:l}))})))}}]),s}(e.PureComponent);Tn.defaultProps={footer:!1};var On=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments))._dataRowsRef=null,t.renderedColumns=[],t.renderHeadCell=function(n){var i=n.column,r=n.rowSpan,o=n.colSpan,a=i.sortable,s=void 0!==a&&a,u=i.header,l=void 0===u?i.name:u,c=i.className,d=i.index,h=i.columnIndex,f=i.align,p=i.headerTitle,v=void 0===p?"string"===typeof l&&l||void 0:p;return e.createElement("th",{ref:i.dataColumn?t._getColumnRef(h):null,className:Ln("th",{sortable:s,align:f},c),key:i.name,title:v,"data-index":d,colSpan:o,rowSpan:r,style:i.customStyle&&i.customStyle({header:!0,name:i.name}),onClick:t._getOnSortClick(i)},e.createElement("div",{className:Ln("head-cell")},l,e.createElement(Mn,Object.assign({},i))))},t.renderHeadLevel=function(n,i){return e.createElement("tr",{key:i,className:Ln("head-row")},n.map(t.renderHeadCell))},t.dataRowsRef=function(e){var n;t._dataRowsRef=e,e&&(null===(n=t.dataRowsHeightObserver)||void 0===n||n.checkAndUpdateHeight())},t._getColumnRef=function(e){return function(n){t.renderedColumns[e]=n}},t}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){var e=this;this._calculateColumnsWidth(),"function"===typeof this.props.onDataRowsHeightChange&&(this.dataRowsHeightObserver=new wn({getSrcElement:function(){return e._dataRowsRef},onHeightChange:function(t){"function"===typeof e.props.onDataRowsHeightChange&&e.props.onDataRowsHeightChange(t)}}))}},{key:"componentDidUpdate",value:function(){var e;this._calculateColumnsWidth(),null===(e=this.dataRowsHeightObserver)||void 0===e||e.checkAndUpdateHeight()}},{key:"componentWillUnmount",value:function(){var e;null===(e=this.dataRowsHeightObserver)||void 0===e||e.destroy()}},{key:"render",value:function(){var t=this.props,n=t.headColumns,i=t.dataColumns,r=t.renderedDataRows;return this.renderedColumns.length=i.length,e.createElement(e.Fragment,null,e.createElement("thead",{className:Ln("head")},n.map(this.renderHeadLevel)),void 0===r?null:e.createElement("tbody",{ref:this.dataRowsRef},r))}},{key:"_calculateColumnsWidth",value:function(){var e=this,t=this.props.onColumnsUpdated;"function"===typeof t&&requestAnimationFrame((function(){var n=e.renderedColumns.map((function(e){return e&&e.getBoundingClientRect().width}));t(n)}))}},{key:"onSort",value:function(e,t){var n=this.props.onSort;"function"===typeof n&&n(e,t)}},{key:"_getOnSortClick",value:function(e){var t=this,n=e.sortable,i=void 0!==n&&n;return e.name===_n?function(){t.onSort()}:i?function(n){t.onSort(e,n.ctrlKey||n.metaKey)}:void 0}}]),s}(e.Component);On.propTypes={headColumns:Oe().array.isRequired,dataColumns:Oe().array.isRequired,displayIndices:Oe().bool.isRequired,onSort:Oe().func,onColumnsUpdated:Oe().func,renderedDataRows:Oe().node};var In=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).state={style:{top:s.defaultProps.top}},e.onDataRowsHeightChange=function(t){e.props.onDataRowsHeightChange(t+1)},e._nodeRef=function(t){e._node=t},e}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.mode,i=(t.top,dn(t,["mode","top"]));if(n===mn){var r=this.state.style;return e.createElement("div",{className:Ln("sticky",{moving:!0,head:!0}),style:r},this.renderHeader(i))}var o=this.state,a=o.widths,s=void 0===a?[]:a,u=o.right,l=void 0===u?0:u,c=s.reduce((function(e,t){return e+t}),0);return e.createElement("div",{ref:this._nodeRef,className:Ln("sticky",{fixed:!0,head:!0}),style:{right:l,display:c?void 0:"none"}},this.renderHeader(i))}},{key:"setScrollLeft",value:function(e){var t=this;requestAnimationFrame((function(){t._node&&(t._node.scrollLeft=e)}))}},{key:"setRightPosition",value:function(e){this.state.right===e||this.props.top||this.props.mode===mn||this.setState({right:e})}},{key:"renderHeader",value:function(t){var n=this.state.widths,i=void 0===n?[]:n,r=i.reduce((function(e,t){return e+t}),0);return e.createElement("div",{className:Ln("table-wrapper",{sticky:!0})},e.createElement("table",{className:Ln("table",{sticky:!0}),style:{width:r||"auto"}},e.createElement("colgroup",null,i.map((function(t,n){return e.createElement("col",{key:n,style:{width:t}})}))),e.createElement(On,Object.assign({},t,{onDataRowsHeightChange:this.onDataRowsHeightChange}))))}},{key:"updateWidths",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=this.state.widths,n=void 0===t?[]:t;e.some((function(e,t){return e!==n[t]}))&&this.setState({widths:e})}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n;return e.top!==(null===(n=t.style)||void 0===n?void 0:n.top)?void 0===e.top?null:{style:{top:e.top}}:null}}]),s}(e.Component);In.propTypes={mode:Oe().oneOf([gn,mn]),top:Oe().number,renderedDataRows:Oe().node},In.defaultProps={top:0};var An=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).state={style:{bottom:0}},e._nodeFixed=null,e._nodeMoving=null,e._nodeFixedRef=function(t){e._nodeFixed=t},e._nodeMovingRef=function(t){var n;e._nodeMoving=t,t&&(null===(n=e.heightObserver)||void 0===n||n.checkAndUpdateHeight())},e}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){var e=this;this.heightObserver=new wn({getSrcElement:function(){return e._nodeMoving},onHeightChange:this.props.onMovingHeightChange})}},{key:"componentDidUpdate",value:function(){var e;null===(e=this.heightObserver)||void 0===e||e.checkAndUpdateHeight()}},{key:"componentWillUnmount",value:function(){var e;null===(e=this.heightObserver)||void 0===e||e.destroy()}},{key:"render",value:function(){if(!this.props.renderedRows)return null;var t=this.props,n=t.mode,i=t.renderedRows;if(n===mn){var r=this.state.style;return e.createElement("div",{ref:this._nodeMovingRef,className:Ln("sticky",{footer:!0,moving:!0}),style:r},this.renderFooter(i))}var o=this.state,a=o.widths,s=void 0===a?[]:a,u=o.right,l=void 0===u?0:u,c=s.reduce((function(e,t){return e+t}),0);return e.createElement("div",{ref:this._nodeFixedRef,className:Ln("sticky",{footer:!0,fixed:!0}),style:{right:l,display:c?void 0:"none"}},this.renderFooter(i))}},{key:"setScrollLeft",value:function(e){var t=this;requestAnimationFrame((function(){t._nodeFixed&&(t._nodeFixed.scrollLeft=e)}))}},{key:"setRightPosition",value:function(e){this.state.right!==e&&!this.props.bottom&&this._nodeFixed&&this.setState({right:e})}},{key:"renderFooter",value:function(t){var n=this.state.widths,i=void 0===n?[]:n,r=i.reduce((function(e,t){return e+t}),0);return e.createElement("div",{className:Ln("table-wrapper",{sticky:!0})},e.createElement("table",{className:Ln("table",{sticky:!0}),style:{width:r||"auto"}},e.createElement("colgroup",null,i.map((function(t,n){return e.createElement("col",{key:n,style:{width:t}})}))),e.createElement("tbody",null,t)))}},{key:"updateWidths",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=this.state.widths,n=void 0===t?[]:t;e.some((function(e,t){return e!==n[t]}))&&this.setState({widths:e})}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n;return e.bottom!==(null===(n=t.style)||void 0===n?void 0:n.bottom)?void 0===e.bottom?null:{style:{bottom:e.bottom}}:null}}]),s}(e.PureComponent);An.defaultProps={bottom:0};var Pn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).state={},t._refBody=function(e){t._body=e},t._refBox=function(e){t._box=e},t._refHead=function(e){t._head=e},t._refStickyHead=function(e){t._stickyHead=e},t._refStickyFooter=function(e){t._stickyFooter=e},t._onBoxScroll=function(){t._updateBoxConstraints()},t._onColumnsUpdated=function(e){t._stickyHead&&t._stickyHead.updateWidths(e),t._stickyFooter&&t._stickyFooter.updateWidths(e)},t.onMovingHeaderDataRowsHeightChange=function(e){var n;-e!==(null===(n=t.state.movingHeaderStyle)||void 0===n?void 0:n.marginTop)&&t.setState({movingHeaderStyle:{marginTop:-e}})},t.onMovingFooterHeightChange=function(e){var n;-e!==(null===(n=t.state.movingFooterStyle)||void 0===n?void 0:n.marginBottom)&&t.setState({movingFooterStyle:{marginBottom:-e}})},t.renderRow=function(e){var n=t.props,i=n.data,r=n.onRowClick,o=i[e],a=o.row,s=o.index,u=o.span;return t.renderRowImpl(a,s,{onRowClick:r,odd:e%2===0,span:u})},t.renderFooterRow=function(e,n){return t.renderRowImpl(e,n,{footer:!0})},t.renderHeaderRow=function(e,n){return t.renderRowImpl(e,n,{headerData:!0})},t.renderRowImpl=function(n,i){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r.onRowClick,a=r.odd,s=r.span,u=r.footer,l=r.headerData,c=t.props,d=c.columns.dataColumns,h=c.rowClassName,f=c.rowKey,p="function"===typeof h?h(n,i,u,l):"";return e.createElement(Tn,{key:f(n,i),className:p,columns:d,row:n,index:i,span:s,odd:a,onClick:o,footer:u,headerData:l})},t.renderTable=function(n,i){var r=t.props,o=r.footerData,a=r.columns.dataColumns,s=r.settings.stickyHead,u=t.state,l=u.movingHeaderStyle,c=u.movingFooterStyle,d=t.getStickyFooterMode();return e.createElement("div",{className:Ln("table-wrapper"),style:d===mn?c:void 0},e.createElement("table",{className:Ln("table"),style:s===mn?l:void 0},e.createElement("colgroup",null,a.map((function(t,n){var i=t.width;return e.createElement("col",{key:n,width:i})}))),t.renderHead(),e.createElement("tbody",{ref:i},n.length?n:t._getEmptyRow()),o&&e.createElement("tfoot",{className:Ln("foot",{"has-sticky-footer":d})},o.map(t.renderFooterRow))))},t}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){var e=this,t=this.props.settings,n=t.stickyHead,i=t.syncHeadOnResize;this._updateBoxConstraints(),n&&i&&!this._onWindowResize&&(this._onWindowResize=function(){e.syncHeadWidths()},window.addEventListener("resize",this._onWindowResize))}},{key:"componentDidUpdate",value:function(){this._updateBoxConstraints()}},{key:"componentWillUnmount",value:function(){this._onWindowResize&&(window.removeEventListener("resize",this._onWindowResize),delete this._onWindowResize)}},{key:"render",value:function(){var t=this.props.className,n=this.props.settings,i=n.stickyHead,r=n.dynamicRender,o=this.getStickyFooterMode();return e.createElement("div",{className:t,ref:this._refBody},i&&this.renderStickyHead(),e.createElement("div",{ref:this._refBox,className:Ln("box",{"sticky-head":i,"sticky-footer":o}),onScroll:this._onBoxScroll},r?this.renderTableDynamic():this.renderTableSimple()),o&&this.renderStickyFooter())}},{key:"_updateBoxConstraints",value:function(){var e=this._stickyHead||this._stickyFooter;if(this._box&&e){var t=this._box.offsetWidth-this._box.clientWidth;this._stickyHead&&(this._stickyHead.setRightPosition(t),this._stickyHead.setScrollLeft(this._box.scrollLeft)),this._stickyFooter&&(this._stickyFooter.setRightPosition(t),this._stickyFooter.setScrollLeft(this._box.scrollLeft))}}},{key:"syncHeadWidths",value:function(){this._head&&this._head._calculateColumnsWidth()}},{key:"_getEmptyRow",value:function(){var t=this.props,n=t.columns.dataColumns,i=t.emptyDataMessage,r=t.renderEmptyRow;return"function"===typeof r?r(n):e.createElement("tr",{className:Ln("row")},e.createElement("td",{className:Ln("td",Ln("no-data")),colSpan:n.length},i))}},{key:"renderHead",value:function(){var t=this.props,n=t.columns,i=t.onSort,r=this.props.settings.displayIndices,o=this.renderHeaderRows();return e.createElement(On,Object.assign({ref:this._refHead},n,{displayIndices:Boolean(r),onSort:i,onColumnsUpdated:this._onColumnsUpdated,renderedDataRows:o}))}},{key:"renderStickyHead",value:function(){var t=this.props,n=t.columns,i=t.onSort,r=this.props.settings,o=r.displayIndices,a=r.stickyTop,s=r.stickyHead,u="auto"===a&&this._body&&this._body.parentNode?this._body.parentNode.offsetTop:Number(a)||0,l=this.renderHeaderRows();return e.createElement(In,Object.assign({mode:s,top:u,ref:this._refStickyHead},n,{displayIndices:o,onSort:i,renderedDataRows:l,onDataRowsHeightChange:this.onMovingHeaderDataRowsHeightChange}))}},{key:"renderStickyFooter",value:function(){var t=this.props.columns,n=this.props.settings.stickyBottom,i=Number(n)||0;if("auto"===n&&this._body&&this._body.parentNode){var r=this._body.parentNode;i=r.offsetTop+r.offsetHeight}var o=this.renderFooterRows();return e.createElement(An,{ref:this._refStickyFooter,mode:this.getStickyFooterMode(),bottom:i,dataColumns:t.dataColumns,renderedRows:o,onMovingHeightChange:this.onMovingFooterHeightChange})}},{key:"renderTableDynamic",value:function(){var t=this.props,n=t.data,i=t.settings,r=void 0===i?{}:i,o=r.dynamicInnerRef,a=r.dynamicRenderType,s=void 0===a?"uniform":a,u=r.dynamicRenderUseStaticSize,l=r.dynamicRenderThreshold,c=r.dynamicRenderMinSize,d=r.dynamicRenderScrollParentGetter,h=r.dynamicRenderScrollParentViewportSizeGetter,f=r.dynamicItemSizeEstimator,p=r.dynamicItemSizeGetter;return e.createElement(fn(),Object.assign({ref:o,type:s,useStaticSize:u,threshold:l,minSize:c,itemSizeEstimator:f,itemSizeGetter:p,length:n.length,itemRenderer:this.renderRow,itemsRenderer:this.renderTable,scrollParentGetter:d},{scrollParentViewportSizeGetter:h}))}},{key:"renderTableSimple",value:function(){var e=this,t=this.props.data.map((function(t,n){return e.renderRow(n)}));return this.renderTable(t,null)}},{key:"renderHeaderRows",value:function(){var e=this.props.headerData;return e&&e.map(this.renderHeaderRow)}},{key:"renderFooterRows",value:function(){var e=this.props.footerData;return null===e||void 0===e?void 0:e.map(this.renderFooterRow)}},{key:"getStickyFooterMode",value:function(){var e=this.props.footerData;return!!(null===e||void 0===e?void 0:e.length)&&this.props.settings.stickyFooter}}]),s}(e.PureComponent);Pn.propTypes={className:Oe().string,settings:Oe().object,refs:Oe().object,headerData:Oe().array,data:Oe().array,footerData:Oe().array,columns:Oe().object,emptyDataMessage:Oe().string,onRowClick:Oe().func,rowClassName:Oe().func,rowKey:Oe().func,startIndex:Oe().number,onSort:Oe().func,renderEmptyRow:Oe().func};var Rn=e.memo((function(t){var n=t.column,i=t.value,r=t.row,o=t.index,a=t.footer,s=t.headerData;return e.createElement(e.Fragment,null,n.render({value:i,row:r,index:o,footer:a,headerData:s}))}));var Zn={columnId:Oe().string,order:Oe().oneOf([pn,vn])},Fn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).state=Object.assign({settings:{}},xn(t.props.initialSortOrder,t.props.settings)),t._tableRef=function(e){t.table=e},t.renderMemoizedCell=function(t){var n=t.column,i=t.value,r=t.row,o=t.index,a=t.footer,s=t.headerData;return e.createElement(Rn,Object.assign({},{column:n,value:i,row:r,index:o,footer:a,headerData:s}))},t.getColumn=function(e,n){var i=t.state.settings,r=i.defaultOrder,o=t.state,a=o.sortOrder,s=void 0===a?{}:a,u=o.sortColumns,l=o.indexColumn,c=Number(Boolean(l)),d=t.isSortEnabled(),h=e.name,f=e.accessor,p=void 0===f?e.name:f,v=e.align,g=e.sortable,m=void 0===g?i.sortable:g,_=e.group,y=e.autogroup,b=void 0===y||y,w=e.sortAccessor,C=e.onClick,k=Ln("td",{align:v},e.className),S="function"===typeof p?function(e){return p(e)}:function(e){return Object.prototype.hasOwnProperty.call(e,p)?e[p]:void 0},x="function"===typeof e.title?function(t){return e.title(t)}:function(){return"string"===typeof e.title&&e.title||void 0},L="function"===typeof w?function(e){return w(e)}:S,E="function"===typeof e.render?function(n){var i=n.value,r=n.row,o=n.index,a=n.footer,s=n.headerData;return t.renderMemoizedCell({column:e,value:i,row:r,index:o,footer:a,headerData:s})}:function(e){return e.value},N="function"===typeof e.customStyle?e.customStyle:function(){},D="function"===typeof C?function(t){return function(){return C(t,e)}}:function(){};return Object.assign(Object.assign({index:n-c,columnIndex:n,dataColumn:!0,defaultOrder:r},e),{sortable:m&&d,_className:k,_getValue:S,_getTitle:x,_getSortValue:L,_renderValue:E,_getOnClick:D,customStyle:N,group:_,autogroup:b,sortOrder:s[h]||void 0,sortIndex:u.length>1?u.indexOf(h)+1:void 0})},t.isSortEnabled=function(){var e=t.props.data;return Array.isArray(e)&&e.length>1},t.onSort=function(e,n){if(e){var i=Cn(e,t.state,n,t.props.settings),r=i.sortOrder,o=i.sortColumns;t.setState({sortOrder:r,sortColumns:o});var a=t.props.onSort;if("function"===typeof a){var s=function(e){return Object.keys(e).map((function(t){return{columnId:t,order:e[t]}}))}(r);a(s)}}else{t.setState({sortOrder:{},sortColumns:[]});var u=t.props.onSort;"function"===typeof u&&u([])}},t}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.headerData,i=t.data,r=t.footerData,o=t.columns,a=t.startIndex,u=t.emptyDataMessage,l=t.rowClassName,c=t.rowKey,d=t.onRowClick,h=t.theme,f=t.renderEmptyRow,p=t.nullBeforeNumbers,v=this.state,g=v.settings,m=v.sortOrder,_=v.sortColumns,y=g.highlightRows,b=void 0!==y&&y,w=g.stripedRows,C=void 0!==w&&w,k=g.headerMod,S=Ln({"highlight-rows":b,"striped-rows":C,header:void 0!==k&&k,theme:h}),x=this.getComplexColumns(o);return g.dynamicRender&&x.dataColumns.some((function(e){return e.group}))&&console.warn("Simultaneously used grouping cells and dynamic render. The table will render unpredictable."),e.createElement(Pn,{ref:this._tableRef,className:S,settings:g,startIndex:a,columns:x,emptyDataMessage:u,renderEmptyRow:f,rowClassName:l,rowKey:c||s.defaultProps.rowKey,onRowClick:d,headerData:n,data:Sn(i,x.dataColumns,{sortOrder:m,sortColumns:_},{nullBeforeNumbers:p,externalSort:null===g||void 0===g?void 0:g.externalSort}),footerData:r,onSort:this.onSort})}},{key:"getComplexColumns",value:function(e){var t=this,n=[],i=[],r=[],o=this.state.indexColumn;return function e(o,a){n[a]||(n[a]=[]);var s=n[a];return o.reduce((function(n,o){var u=1,l=-1,c=o;if(Array.isArray(o.sub))u=e(o.sub,a+1);else{var d=t.getColumn(o,i.length);i.push(d),l=a,c=d}var h={column:c,itemLevel:l,colSpan:u,rowSpan:0};return r.push(h),s.push(h),u+n}),0)}(o?[o].concat((0,Lt.Z)(e)):e,0),r.forEach((function(e){e.rowSpan=e.itemLevel<0?1:n.length-e.itemLevel})),{headColumns:n,dataColumns:i}}},{key:"resize",value:function(){this.table&&this.table.syncHeadWidths()}}],[{key:"normalizeStickyHead",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e!==mn||yn?e:(console.warn("Your browser does not support position: sticky, moving sticky headers will be disabled."),!1)}},{key:"calculateSettings",value:function(e){return Object.assign(Object.assign(Object.assign({},s.defaultProps.settings),e),{stickyHead:s.normalizeStickyHead(e.stickyHead),stickyFooter:s.normalizeStickyHead(e.stickyFooter)})}},{key:"getIndexColumn",value:function(e){var t=e.startIndex,n=e.data,i=e.visibleRowIndex,r=t+n.length+1;return{name:_n,header:"#",className:Ln("index"),render:function(e){var n,r,o=e.row,a=e.index,s=e.footer;return e.headerData?null!==(n=o.headerIndex)&&void 0!==n?n:t+a:s?null!==(r=o.footerIndex)&&void 0!==r?r:t+a:"function"===typeof i?i(o,a):t+a},sortable:!1,width:20+10*Math.ceil(Math.log10(r))}}},{key:"getDerivedStateFromProps",value:function(e){var t=s.calculateSettings(e.settings);return Object.assign({settings:t,indexColumn:Boolean(t.displayIndices)&&s.getIndexColumn(e)},e.sortOrder?Object.assign({},xn(e.sortOrder,e.settings)):void 0)}}]),s}(e.Component);function jn(e){return new Set(e.map((function(e){return e.name}))).size!==e.length}Fn.propTypes={columns:Oe().array.isRequired,headerData:Oe().array,data:Oe().array.isRequired,footerData:Oe().array,startIndex:Oe().number,emptyDataMessage:Oe().string,renderEmptyRow:Oe().func,rowClassName:Oe().func,rowKey:Oe().func,visibleRowIndex:Oe().func,initialSortOrder:Oe().oneOfType([Oe().shape(Zn),Oe().arrayOf(Oe().shape(Zn))]),sortOrder:Oe().oneOfType([Oe().shape(Zn),Oe().arrayOf(Oe().shape(Zn))]),settings:Oe().shape({displayIndices:Oe().bool,dynamicRender:Oe().bool,dynamicRenderType:Oe().oneOf(["simple","uniform","variable"]),dynamicRenderUseStaticSize:Oe().bool,dynamicRenderThreshold:Oe().number,dynamicRenderMinSize:Oe().number,dynamicRenderScrollParentGetter:Oe().func,dynamicRenderScrollParentViewportSizeGetter:Oe().func,dynamicItemSizeEstimator:Oe().func,dynamicItemSizeGetter:Oe().func,stickyHead:Oe().oneOf([!1,gn,mn]),stickyTop:Oe().oneOfType([Oe().number,Oe().oneOf(["auto"])]),sortable:Oe().bool,externalSort:Oe().bool,highlightRows:Oe().bool,stripedRows:Oe().bool,headerMod:Oe().oneOf(["multiline","pre"]),defaultOrder:Oe().oneOf([pn,vn]),syncHeadOnResize:Oe().bool}),theme:Oe().string,onSort:Oe().func},Fn.defaultProps={startIndex:0,emptyDataMessage:"No data",settings:{displayIndices:!0,dynamicRenderMinSize:1,stickyHead:!1,stickyFooter:!1,sortable:!0,externalSort:!1,defaultOrder:pn},rowKey:function(e,t){return Object.prototype.hasOwnProperty.call(e,"id")?e.id:t},initialSortOrder:{},initialSortColumns:[],theme:"yandex-cloud"},Fn.getSortedData=Sn;var Hn="It is strongly recommended against using duplicate column names. They act as default accessors and titles, so doing so may lead to confusing titles and the wrong data being extracted.",Bn=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).state={},e._tableRef=function(t){e.table=t},e}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){jn(this.props.columns)&&console.warn(Hn)}},{key:"componentDidUpdate",value:function(e){var t=this.props.columns;t!==e.columns&&jn(t)&&console.warn(Hn)}},{key:"componentDidCatch",value:function(e){console.error(e),this.setState({error:e});var t=this.props.onError;"function"===typeof t&&t(e)}},{key:"render",value:function(){var t=this.state.error;return t?e.createElement("pre",{className:Ln("error")},"DataTable got stuck in invalid state. Please tell developers about it.","\n\n",t.stack&&String(t.stack)||String(t)):e.createElement(Fn,Object.assign({ref:this._tableRef},this.props))}},{key:"resize",value:function(){this.table&&this.table.resize()}}],[{key:"setCustomIcons",value:function(e){Dn.ICON_ASC=e.ICON_ASC||En,Dn.ICON_DESC=e.ICON_DESC||Nn}}]),s}(e.PureComponent);Bn.FIXED=gn,Bn.MOVING=mn,Bn.ASCENDING=pn,Bn.DESCENDING=vn,Bn.LEFT="left",Bn.CENTER="center",Bn.RIGHT="right";var zn=Bn,Wn=1e4,Vn=1e9,Yn=1e12,Un=3600,Kn=24*Un,qn={TABLET_VOLATILE_STATE_UNKNOWN:"unknown",TABLET_VOLATILE_STATE_STOPPED:"stopped",TABLET_VOLATILE_STATE_BOOTING:"booting",TABLET_VOLATILE_STATE_STARTING:"starting",TABLET_VOLATILE_STATE_RUNNING:"running",TABLET_VOLATILE_STATE_BLOCKED:"blocked"},Gn={OldTxProxy:"P",TxProxy:"P",BSController:"BS",Dummy:"DY",RTMRPartition:"RP",PersQueueReadBalancer:"PB",Cms:"CM",BlockStorePartition:"BP",BlockStoreVolume:"BV",Console:"CN",TenantSlotBroker:"TB"},$n=function(e){var t;if(e){var n=null===(t=e.match(/[A-Z]/g))||void 0===t?void 0:t.join("");return function(e){return e in Gn}(e)?Gn[e]:n}},Qn=["1 min","5 min","15 min"],Xn={green:5,yellow:4,orange:3,red:2,blue:1,grey:1},Jn="Developer UI",ei="theme",ti="invertedDisks",ni="useNodesEndpointInDiagnostics",ii="enableAdditionalQueryModes",ri="saved_queries",oi="asideHeaderCompact",ai="queries_history",si="default-size-result-pane",ui="default-size-tenant-summary-pane",li="default-size-tenant-pane",ci="default-is-tenant-summary-collapsed",di="default-is-tenant-common-info-collapsed",hi="default-is-query-result-collapsed",fi={displayIndices:!1,stickyHead:zn.MOVING,syncHeadOnResize:!0,dynamicRender:!0,highlightRows:!0},pi="query_initial_mode",vi="last_used_query_action",gi="partitionsHiddenColumns",mi="clusterInfoHidden",_i="saved_tenant_initial_tab";function yi(e,t,n,i,r,o,a){try{var s=e[o](a),u=s.value}catch(l){return void n(l)}s.done?t(u):Promise.resolve(u).then(i,r)}function bi(e){return function(){var t=this,n=arguments;return new Promise((function(i,r){var o=e.apply(t,n);function a(e){yi(o,i,r,a,s,"next",e)}function s(e){yi(o,i,r,a,s,"throw",e)}a(void 0)}))}}var wi,Ci=n(87757),ki=n.n(Ci),Si=n(40794),xi=n.n(Si),Li=n(56787),Ei=n.n(Li),Ni=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.Z)(this,e),this.setApiEndpoint=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";"undefined"!==typeof location&&(e=e.replace("%CURRENT_HOST%",location.host)),t.apiEndpoint=e},this.setCSRFToken=function(e){t._axios.defaults.headers.post["X-CSRF-Token"]=e,t._axios.defaults.headers.put["X-CSRF-Token"]=e,t._axios.defaults.headers.delete["X-CSRF-Token"]=e},this.setDefaultHeader=function(e){var n=e.name,i=e.value,r=e.methods,o=t._axios.defaults.headers;Array.isArray(r)?r.forEach((function(e){o[e]&&(o[e][n]=i)})):o.common[n]=i},this.apiPath=function(e){return"".concat(t.apiEndpoint).concat(e)};var r=n.config,o=void 0===r?{}:r,a=n.apiEndpoint,s=void 0===a?"/api":a,u=n.collector,l=void 0===u?{}:u,c=Object.assign({xsrfCookieName:"",timeout:e.DEFAULT_TIMEOUT,withCredentials:!0},o);this._axios=Ei().create(c),this._axios.defaults.headers=xi()(this._axios.defaults.headers),this.requestTokens={},this.setApiEndpoint(s),this.collectorSettings=l,this.collector={errors:[],requests:[]}}return(0,r.Z)(e,[{key:"collectRequest",value:function(e){var t=e.method,n=e.url,i=e.data,r=e.requestStart,o=e.response,a=e.responseError,s=e.error,u=void 0!==s&&s,l=e.cancelled,c=void 0!==l&&l,d=this.collectorSettings,h=d.collectErrors,f=d.collectRequests;if(h||f){var p=o&&o.request||{},v=p.responseText,g=void 0===v?"":v,m=p.responseURL,_=void 0===m?n:m,y=u&&a instanceof Error?a.message:"",b={method:t,url:_,time:{start:r,end:Number(new Date)},status:o&&o.status,size:g.length,requestData:i&&JSON.stringify(i,null,2)||"",responseData:o&&o.data&&JSON.stringify(o.data,null,2)||y,isError:u,isCancelled:c};h&&u&&(this.collector.errors=[].concat((0,Lt.Z)(this.collector.errors),[b]).slice(-h)),f&&(this.collector.requests=[].concat((0,Lt.Z)(this.collector.requests),[b]).slice(-f))}}},{key:"getCollectedRequests",value:function(){return{errors:(0,Lt.Z)(this.collector.errors),requests:(0,Lt.Z)(this.collector.requests)}}},{key:"request",value:function(){var e=bi(ki().mark((function e(t){var n,i,r,o,a,s,u,l,c,d,h,f,p,v,g,m,_,y,b,w,C=this;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.method,i=t.url,r=t.data,o=void 0===r?null:r,a=t.params,s=t.options,u=void 0===s?{}:s,l=t.retries,c=void 0===l?0:l,d=u.requestConfig||{},h=u.concurrentId,f=u.collectRequest,p=void 0===f||f,v=u.timeout,g=u.headers,m=u.onDownloadProgress,h&&(this.cancelRequest(h),d.cancelToken=this.createRequestToken(h)),g&&(d.headers=g),"undefined"!==typeof v&&(d.timeout=v),_=Number(new Date),y={method:n,url:i,data:o,params:a,onDownloadProgress:m},e.prev=8,e.next=11,this._axios.request(Object.assign(Object.assign({},d),y));case 11:return b=e.sent,this.clearRequestToken(h),p&&this.collectRequest(Object.assign(Object.assign({},y),{requestStart:_,response:b})),e.abrupt("return",b.data);case 17:if(e.prev=17,e.t0=e.catch(8),!Ei().isCancel(e.t0)){e.next=23;break}throw{isCancelled:!0,error:e.t0};case 23:this.clearRequestToken(h);case 24:return w=e.t0.response?e.t0.response:"function"===typeof e.t0.toJSON?e.t0.toJSON():e.t0,p&&this.collectRequest(Object.assign(Object.assign({},y),{requestStart:_,response:w,error:!0,cancelled:Ei().isCancel(e.t0),responseError:e.t0})),e.abrupt("return",this.handleRequestError(w,(function(){return C.request(Object.assign(Object.assign({},t),{retries:c+1}))}),c,new Error(e.t0 instanceof Error?e.t0.message:"Unknown error")));case 27:case"end":return e.stop()}}),e,this,[[8,17]])})));return function(t){return e.apply(this,arguments)}}()},{key:"cancelRequest",value:function(e){e&&this.requestTokens[e]&&this.requestTokens[e].cancel("Concurrent request")}},{key:"get",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request({method:"GET",url:e,params:t,options:n})}},{key:"post",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"POST",url:e,data:t,params:n,options:i})}},{key:"put",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"PUT",url:e,data:t,params:n,options:i})}},{key:"patch",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"PATCH",url:e,data:t,params:n,options:i})}},{key:"delete",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"DELETE",url:e,data:t,params:n,options:i})}},{key:"head",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request({method:"HEAD",url:e,params:t,options:n})}},{key:"handleRequestError",value:function(e){throw e}},{key:"createRequestToken",value:function(e){if(e){var t=Ei().CancelToken.source();return this.requestTokens[e]=t,t.token}}},{key:"clearRequestToken",value:function(e){e&&this.requestTokens[e]&&delete this.requestTokens[e]}}]),e}();Ni.DEFAULT_TIMEOUT=6e4;var Di={withCredentials:!window.custom_backend},Mi=window.web_version?null===(wi=window.systemSettings)||void 0===wi?void 0:wi.settingsApi:void 0,Ti=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"getPath",value:function(e){return"".concat(wh).concat(e)}},{key:"getClusterInfo",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/cluster"),{name:e,tablets:!0},{concurrentId:t||"getClusterInfo"})}},{key:"getClusterNodes",value:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).concurrentId;return this.get(this.getPath("/viewer/json/sysinfo"),{},{concurrentId:e||"getClusterNodes"})}},{key:"getNodeInfo",value:function(e){return this.get(this.getPath("/viewer/json/sysinfo?enums=true"),{node_id:e})}},{key:"getTenants",value:function(e){return this.get(this.getPath("/viewer/json/tenantinfo"),{tablets:1,storage:1,cluster_name:e})}},{key:"getTenantInfo",value:function(e){var t=e.path;return this.get(this.getPath("/viewer/json/tenantinfo"),{path:t,tablets:!0,storage:!0})}},{key:"getNodes",value:function(e){var t=e.tenant,n=e.visibleEntities,i=e.storage,r=e.type,o=void 0===r?"any":r,a=e.tablets,s=void 0===a||a,u=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/nodes?enums=true"),{tenant:t,with:n,storage:i,type:o,tablets:s},{concurrentId:u})}},{key:"getCompute",value:function(e){return this.get(this.getPath("/viewer/json/compute?enums=true"),{path:e})}},{key:"getStorageInfo",value:function(e){var t=e.tenant,n=e.visibleEntities,i=e.nodeId,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/storage?enums=true"),{tenant:t,node_id:i,with:n},{concurrentId:r})}},{key:"getPdiskInfo",value:function(e,t){return this.get(this.getPath("/viewer/json/pdiskinfo?enums=true"),{filter:"(NodeId=".concat(e).concat(t?";PDiskId=".concat(t):"",")")})}},{key:"getVdiskInfo",value:function(e){var t=e.vdiskId,n=e.pdiskId,i=e.nodeId;return this.get(this.getPath("/viewer/json/vdiskinfo?enums=true"),{filter:"(VDiskId=".concat(null!==t&&void 0!==t?t:"",";PDiskId=").concat(null!==n&&void 0!==n?n:"",";NodeId=").concat(null!==i&&void 0!==i?i:"",")")})}},{key:"getGroupInfo",value:function(e){return this.get(this.getPath("/viewer/json/storage?enums=true"),{group_id:e})}},{key:"getHostInfo",value:function(){return this.get(this.getPath("/viewer/json/sysinfo?node_id=.&enums=true"),{})}},{key:"getTabletsInfo",value:function(e){var t=e.nodes,n=void 0===t?[]:t,i=e.path,r=n.length>0&&"(NodeId=[".concat(n.join(","),"])");return this.get(this.getPath("/viewer/json/tabletinfo"),{filter:r,path:i,enums:!0})}},{key:"getSchema",value:function(e){var t=e.path,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/describe"),{path:t,enums:!0,backup:!1,private:!0,partition_config:!0,partition_stats:!0,partitioning_info:!0,subs:1},{concurrentId:n||"getSchema|".concat(t)})}},{key:"getDescribe",value:function(e){var t=e.path,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/describe"),{path:t,enums:!0,partition_stats:!0,subs:0},{concurrentId:n||"getDescribe|".concat(t)})}},{key:"getSchemaAcl",value:function(e){var t=e.path;return this.get(this.getPath("/viewer/json/acl"),{path:t},{concurrentId:"getSchemaAcl|".concat(t)})}},{key:"getHeatmapData",value:function(e){var t=e.path;return this.get(this.getPath("/viewer/json/describe"),{path:t,enums:!0,backup:!1,children:!1,partition_config:!1,partition_stats:!0})}},{key:"getNetwork",value:function(e){return this.get(this.getPath("/viewer/json/netinfo"),{enums:!0,path:e})}},{key:"getTopic",value:function(e){var t=e.path,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/describe_topic"),{enums:!0,include_stats:!0,path:t},{concurrentId:n||"getTopic"})}},{key:"getConsumer",value:function(e){var t=e.path,n=e.consumer,i=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/describe_consumer"),{enums:!0,include_stats:!0,path:t,consumer:n},{concurrentId:i||"getConsumer"})}},{key:"getPoolInfo",value:function(e){return this.get(this.getPath("/viewer/json/storage"),{pool:e,enums:!0})}},{key:"getTablet",value:function(e){var t=e.id;return this.get(this.getPath("/viewer/json/tabletinfo?filter=(TabletId=".concat(t,")")),{enums:!0})}},{key:"getTabletHistory",value:function(e){var t=e.id;return this.get(this.getPath("/viewer/json/tabletinfo?filter=(TabletId=".concat(t,")")),{enums:!0,merge:!1})}},{key:"getNodesList",value:function(){return this.get(this.getPath("/viewer/json/nodelist"),{enums:!0})}},{key:"getTenantsList",value:function(){return this.get(this.getPath("/viewer/json/tenants"),{enums:!0,state:0})}},{key:"sendQuery",value:function(e){var t=e.query,n=e.database,i=e.action,r=e.stats,o=e.schema,a=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.post(this.getPath("/viewer/json/query?timeout=".concat(6e5).concat(o?"&schema=".concat(o):"")),{query:t,database:n,action:i,stats:r},{},{concurrentId:a,timeout:54e4})}},{key:"getExplainQuery",value:function(e,t,n){return this.post(this.getPath("/viewer/json/query"),{query:e,database:t,action:n||"explain",timeout:6e5},{})}},{key:"getExplainQueryAst",value:function(e,t){return this.post(this.getPath("/viewer/json/query"),{query:e,database:t,action:"explain-ast",timeout:6e5},{})}},{key:"getHotKeys",value:function(e,t){return this.get(this.getPath("/viewer/json/hotkeys"),{path:e,enable_sampling:t})}},{key:"getHealthcheckInfo",value:function(e){return this.get(this.getPath("/viewer/json/healthcheck"),{tenant:e})}},{key:"killTablet",value:function(e){return this.get(this.getPath("/tablets?KillTabletID=".concat(e)),{})}},{key:"stopTablet",value:function(e,t){return this.get(this.getPath("/tablets/app?TabletID=".concat(t,"&page=StopTablet&tablet=").concat(e)),{})}},{key:"resumeTablet",value:function(e,t){return this.get(this.getPath("/tablets/app?TabletID=".concat(t,"&page=ResumeTablet&tablet=").concat(e)),{})}},{key:"getTabletDescribe",value:function(e){return this.get(this.getPath("/viewer/json/describe"),{schemeshard_id:null===e||void 0===e?void 0:e.SchemeShard,path_id:null===e||void 0===e?void 0:e.PathId})}},{key:"postSetting",value:function(e,t){return this.request({method:"PATCH",url:Mi||"",data:(0,xt.Z)({},e,t)})}},{key:"authenticate",value:function(e,t){return this.post(this.getPath("/login"),{user:e,password:t},{})}},{key:"logout",value:function(){return this.post(this.getPath("/logout"),{},{})}},{key:"whoami",value:function(){return this.get(this.getPath("/viewer/json/whoami"),{})}}]),n}(Ni),Oi=new Ti({config:Di});function Ii(e){if(e)try{return JSON.parse(e)}catch(t){return e}}function Ai(e,t){try{var n;return null!==(n=localStorage.getItem(e))&&void 0!==n?n:t}catch(i){console.log(i)}}window.api=Oi;var Pi,Ri=[" B"," KB"," MB"," GB"," TB"," PB"," EB"],Zi=1e3;function Fi(e){return"".concat(function(e){if(isNaN(e))return"";var t=e/Math.pow(Zi,2);return t<10?t.toFixed(2)+Ri[2]:t<100?t.toFixed(1)+Ri[2]:t.toFixed()+Ri[2]}(e)).concat(e?"ps":"")}function ji(e,t){if(isNaN(e))return"N/A";var n=e/1e9;return t?n.toFixed()+Ri[3]:n<10?n.toFixed(2)+Ri[3]:n<100?n.toFixed(1)+Ri[3]:n.toFixed()+Ri[3]}function Hi(e){for(var t=e,n=String(e).length;n<9;n++)t="0"+t;return t}function Bi(e){return!isNaN(e)&&!isNaN(parseFloat(e))}!function(e){e.Bool="Bool",e.Int8="Int8",e.Int16="Int16",e.Int32="Int32",e.Int64="Int64",e.Uint8="Uint8",e.Uint16="Uint16",e.Uint32="Uint32",e.Uint64="Uint64",e.Float="Float",e.Double="Double",e.Decimal="Decimal",e.String="String",e.Utf8="Utf8",e.Json="Json",e.JsonDocument="JsonDocument",e.Yson="Yson",e.Uuid="Uuid",e.Date="Date",e.Datetime="Datetime",e.Timestamp="Timestamp",e.Interval="Interval",e.TzDate="TzDate",e.TzDateTime="TzDateTime",e.TzTimestamp="TzTimestamp"}(Pi||(Pi={}));var zi=["result","columns"],Wi={execute:"execute",explain:"explain"},Vi={scan:"scan",script:"script",data:"data",query:"query"},Yi=function(e){return Boolean(!e||"object"!==typeof e||Array.isArray(e)||"result"in e&&!Array.isArray(e.result))},Ui=function(e){return Yi(e)?{}:(t=e,Boolean(t&&!Array.isArray(t)&&Array.isArray(t.result)&&Array.isArray(t.columns))?function(e){var t=e.result,n=e.columns,i=rn(e,zi);return Rt({result:t&&n&&t.map((function(e){return e.reduce((function(e,t,i){return e[n[i].name]=t,e}),{})})),columns:n},i)}(e):e);var t},Ki=function(e){return Yi(e)?{}:e},qi=function(e){return function(e){return Boolean(e&&"queries"in e)}(e)?e.queries&&e.queries.length?{Plan:e.queries[0].Plan,tables:e.queries[0].tables,meta:e.meta}:{meta:e.meta}:e};function Gi(e){var t,n;return(null===(t=e.data)||void 0===t||null===(n=t.error)||void 0===n?void 0:n.message)||e.message||e.data||e.statusText||JSON.stringify(e)}var $i,Qi="tenantPage",Xi={query:"query",diagnostics:"diagnostics"},Ji={newQuery:"newQuery",history:"history",saved:"saved"},er={overview:"overview",topQueries:"topQueries",topShards:"topShards",nodes:"nodes",tablets:"tablets",storage:"storage",network:"network",describe:"describe",hotKeys:"hotKeys",graph:"graph",consumers:"consumers",partitions:"partitions"},tr="settings/CHANGE_PROBLEM_FILTER",nr="settings/SET_VALUE",ir={ALL:"All",PROBLEMS:"With problems"},rr=window.userSettings||{},or=window.systemSettings||{};function ar(e,t){var n=window.web_version?rr[e]:Ai(e);return null!==n&&void 0!==n?n:t}var sr={problemFilter:ir.ALL,userSettings:Rt(Rt({},rr),{},($i={},(0,xt.Z)($i,ei,ar(ei,"system")),(0,xt.Z)($i,ti,ar(ti,"false")),(0,xt.Z)($i,ni,ar(ni,"false")),(0,xt.Z)($i,ii,ar(ii,"false")),(0,xt.Z)($i,ri,ar(ri,"[]")),(0,xt.Z)($i,_i,ar(_i,Xi.query)),(0,xt.Z)($i,pi,ar(pi,Vi.script)),(0,xt.Z)($i,vi,ar(vi,Wi.execute)),(0,xt.Z)($i,oi,ar(oi,"true")),(0,xt.Z)($i,gi,ar(gi)),(0,xt.Z)($i,mi,ar(mi,"true")),$i)),systemSettings:or},ur=function(e,t){return function(n,i){n({type:nr,data:{name:e,value:t}}),i().singleClusterMode?localStorage.setItem(e,t):window.api.postSetting(e,t)}},lr=function(e,t){return Ii(e.settings.userSettings[t])},cr=function(e){return{type:tr,data:e}},dr=function(e){return e.settings.problemFilter},hr=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:sr,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case tr:return Rt(Rt({},e),{},{problemFilter:t.data});case nr:var n=Rt(Rt({},e.userSettings),{},(0,xt.Z)({},t.data.name,t.data.value));return Rt(Rt({},e),{},{userSettings:n});default:return e}},fr=n(11141),pr=n.n(fr),vr=e.createContext(null);function gr(e,t){return e.findIndex((function(e){return e.name===t}))}function mr(e,t){return-1!==gr(e,t)}function _r(e,t){return mr(e,t)?e.filter((function(e){return e.name!==t})):e}vr.displayName="ToasterContext";var yr=e.createContext([]);yr.displayName="ToastsContext";var br,wr=e.forwardRef((function(t,n){var i=t.children,r=e.useState([]),o=(0,dt.Z)(r,2),a=o[0],s=o[1],u=e.useCallback((function(e){var t=e.name;s((function(n){var i=n;return mr(n,t)&&(i=_r(n,t)),[].concat((0,Lt.Z)(i),[Object.assign(Object.assign({},e),{addedAt:Date.now()})])}))}),[]),l=e.useCallback((function(e){s((function(t){return _r(t,e)}))}),[]),c=e.useCallback((function(){s((function(){return[]}))}),[]),d=e.useCallback((function(e,t){s((function(n){var i;if(!mr(n,e))return n;var r=gr(n,e);return[].concat((0,Lt.Z)(n.slice(0,r)),[Object.assign(Object.assign(Object.assign({},n[r]),t),{isOverride:!0,updatesCounter:(null!==(i=n[r].updatesCounter)&&void 0!==i?i:0)+1})],(0,Lt.Z)(n.slice(r+1)))}))}),[]),h=e.useRef(a);e.useEffect((function(){h.current=a}),[a]);var f=e.useCallback((function(e){return!!h.current&&mr(h.current,e)}),[]),p=e.useMemo((function(){return{add:u,remove:l,removeAll:c,update:d,has:f}}),[u,l,c,d,f]);return e.useImperativeHandle(n,(function(){return{add:u,remove:l,removeAll:c,update:d,has:f}})),e.createElement(vr.Provider,{value:p},e.createElement(yr.Provider,{value:a},i))}));wr.displayName="ToasterProvider",function(e){e.IOS="ios",e.ANDROID="android",e.BROWSER="browser"}(br||(br={}));pt("root")({mobile:!0}).split(/\s+/)[1];var Cr={mobile:!1,platform:br.BROWSER,useHistory:function(){return{action:"",replace:function(){},push:function(){},goBack:function(){}}},useLocation:function(){return{pathname:"",search:"",hash:""}},setMobile:function(){},setPlatform:function(){}},kr=e.createContext(Cr);function Sr(){var t=e.useContext(kr);return[t.mobile,t.setMobile]}function xr(t){var n,i,r=t.onClose,o=t.timeout,a=function(){var t=e.useState(!1),n=(0,dt.Z)(t,2),i=n[0],r=n[1];return[e.useCallback((function(){r(!0)}),[]),e.useCallback((function(){r(!1)}),[]),i]}(),s=(0,dt.Z)(a,3),u=s[0],l=s[1],c=s[2];return n=r,i=c?null:o,e.useEffect((function(){if("number"===typeof i){var e=setTimeout((function(){n()}),i);return function(){clearTimeout(e)}}}),[n,i]),{onMouseOver:u,onMouseLeave:l}}var Lr={"aria-hidden":!0};function Er(e){return"object"===typeof e}function Nr(e){return"string"===typeof e}var Dr=pt("icon");function Mr(t){var n,i,r,o=t.data,a=t.width,s=t.height,u=t.size,l=t.className,c=t.fill,d=void 0===c?"currentColor":c,h=t.stroke,f=void 0===h?"none":h,p=t.qa;if(u&&(n=u,i=u),a&&(n=a),s&&(i=s),Er(o))r=o.viewBox;else if(Nr(o))r=function(e){var t=e.match(/viewBox=(["']?)([\d\s,-]+)\1/);return t?t[2]:void 0}(o);else if(function(e){return"object"===typeof e&&"defaultProps"in e}(o))r=o.defaultProps.viewBox;else if(function(e){return"function"===typeof e&&(!e.prototype||!e.prototype.render)}(o)){var v=o({});v&&(r=v.props.viewBox)}if(r&&(!n||!i)){var g=r.split(/\s+|\s*,\s*/);n||(n=g[2]),i||(i=g[3])}var m=Object.assign({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:n,height:i,className:Dr(null,l),fill:d,stroke:f,"data-qa":p},Lr);if(Nr(o)){var _=function(e){return e.replace(/(width|height)=(["']?)\d+\2/g,"")}(o);return e.createElement("svg",Object.assign({},m,{dangerouslySetInnerHTML:{__html:_}}))}if(Er(o)){var y=Mr.prefix+(o.url||"#".concat(o.id));return e.createElement("svg",Object.assign({},m,{viewBox:r}),e.createElement("use",{href:y,xlinkHref:y}))}var b=o;return b.defaultProps&&(b.defaultProps.width=b.defaultProps.height=void 0),e.createElement("svg",Object.assign({},m),e.createElement(b,{width:void 0,height:void 0}))}Mr.displayName="Icon",Mr.prefix="";var Tr=n(37762);function Or(t){return function(n){if(!(0,e.isValidElement)(n))return!1;var i=n.type;return i===t||i.displayName===t.displayName}}var Ir=n(15791),Ar=function(){function e(t){(0,i.Z)(this,e),this.subscriptions=[],this.componentPrefix=t}return(0,r.Z)(e,[{key:"subscribe",value:function(e){this.subscriptions.push(e)}},{key:"unsubscribe",value:function(e){var t=this.subscriptions.indexOf(e);t>-1&&this.subscriptions.splice(t,1)}},{key:"publish",value:function(e){var t=this,n=e.componentId,i=(0,Ir.__rest)(e,["componentId"]);this.subscriptions.forEach((function(e){return e(Object.assign(Object.assign({},i),{componentId:t.componentPrefix?"".concat(t.componentPrefix).concat(n):n}))}))}},{key:"withEventPublisher",value:function(e,t){var n=this;return function(i){n.publish(Object.assign(Object.assign({},i),{componentId:e,qa:t}))}}}]),e}(),Pr=new Ar(ht),Rr=pt("button"),Zr=function(t){var n=t.side,i=t.className,r=t.children;return e.createElement("span",{className:Rr("icon",{side:n},i)},e.createElement("span",{className:Rr("icon-inner")},r))};Zr.displayName="Button.Icon";var Fr=1;var jr=Or(Mr),Hr=pt("button"),Br=e.forwardRef((function(t,n){var i=t.view,r=void 0===i?"normal":i,o=t.size,a=void 0===o?"m":o,s=t.pin,u=void 0===s?"round-round":s,l=t.selected,c=void 0!==l&&l,d=t.disabled,h=void 0!==d&&d,f=t.loading,p=void 0!==f&&f,v=t.width,g=t.title,m=t.tabIndex,_=t.type,y=void 0===_?"button":_,b=t.component,w=t.href,C=t.target,k=t.rel,S=t.extraProps,x=t.onClick,L=t.onMouseEnter,E=t.onMouseLeave,N=t.onFocus,D=t.onBlur,M=t.children,T=t.id,O=t.style,I=t.className,A=t.qa,P={title:g,tabIndex:m,onClick:x,onClickCapture:e.useCallback((function(e){Pr.publish({componentId:"Button",eventId:"click",domEvent:e,meta:{content:e.currentTarget.textContent,view:r}})}),[r]),onMouseEnter:L,onMouseLeave:E,onFocus:N,onBlur:D,id:T,style:O,className:Hr({view:r,size:a,pin:u,selected:c,disabled:h||p,loading:p,width:v},I),"data-qa":A};if("string"===typeof w||b){var R={href:w,target:C,rel:"_blank"!==C||k?k:"noopener noreferrer"};return e.createElement(b||"a",Object.assign(Object.assign(Object.assign(Object.assign({},S),P),b?{}:R),{ref:n,"aria-disabled":h||p}),Vr(M))}return e.createElement("button",Object.assign({},S,P,{ref:n,type:y,disabled:h||p}),Vr(M))}));Br.displayName="Button";var zr=Object.assign(Br,{Icon:Zr}),Wr=Or(Zr);function Vr(t){var n=e.Children.toArray(t);if(1===n.length){var i=n[0];return Wr(i)?i:jr(i)?e.createElement(zr.Icon,{key:"icon"},i):e.createElement("span",{key:"text",className:Hr("text")},i)}var r,o,a,s,u=[],l=(0,Tr.Z)(n);try{for(l.s();!(s=l.n()).done;){var c=s.value,d=jr(c),h=Wr(c);if(d||h)if(r||0!==u.length){if(!o&&0!==u.length){var f="right";o=d?e.createElement(zr.Icon,{key:"icon-right",side:f},c):(0,e.cloneElement)(c,{side:f})}}else{var p="left";r=d?e.createElement(zr.Icon,{key:"icon-left",side:p},c):(0,e.cloneElement)(c,{side:p})}else u.push(c)}}catch(v){l.e(v)}finally{l.f()}return u.length>0&&(a=e.createElement("span",{key:"text",className:Hr("text")},u)),[r,o,a]}function Yr(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"none"},Lr,t),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m13.441 4.094 8.438 14.66c.633 1.125-.176 2.496-1.477 2.496H3.562c-1.3 0-2.109-1.406-1.476-2.496l8.437-14.66c.633-1.125 2.286-1.09 2.918 0Zm-2.592 12.08c.29-.294.694-.479 1.151-.479.879 0 1.617.739 1.617 1.617 0 .395-.137.75-.364 1.027a1.62 1.62 0 0 1-1.253.59 1.591 1.591 0 0 1-1.617-1.616 1.62 1.62 0 0 1 .466-1.139Zm-.31-6.578a.381.381 0 0 0-.086.299l.246 4.78c.035.247.211.388.422.388h1.723a.408.408 0 0 0 .32-.147.478.478 0 0 0 .102-.24l.246-4.781c.035-.247-.176-.457-.422-.457h-2.215a.438.438 0 0 0-.336.158Z",fill:"currentColor"}))}function Ur(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 10 10",width:"10",height:"10",fill:"currentColor"},Lr,t),e.createElement("path",{d:"M9.75592 8.57741C10.0814 8.90285 10.0814 9.43049 9.75592 9.75592C9.43049 10.0814 8.90285 10.0814 8.57741 9.75592L5 6.17851L1.42259 9.75592C1.09715 10.0814 0.569515 10.0814 0.244078 9.75592C-0.0813592 9.43049 -0.0813592 8.90285 0.244078 8.57741L3.82149 5L0.244078 1.42259C-0.0813592 1.09715 -0.0813592 0.569515 0.244078 0.244078C0.569515 -0.0813592 1.09715 -0.0813592 1.42259 0.244078L5 3.82149L8.57741 0.244078C8.90285 -0.0813592 9.43049 -0.0813592 9.75592 0.244078C10.0814 0.569515 10.0814 1.09715 9.75592 1.42259L6.17851 5L9.75592 8.57741Z"}))}var Kr,qr=n(24755);!function(e){e.Ru="ru",e.En="en"}(Kr||(Kr={}));var Gr,$r=[],Qr={lang:Kr.En},Xr=new qr.I18N;function Jr(e,t){return Object.entries(e).forEach((function(e){var n=(0,dt.Z)(e,2),i=n[0],r=n[1];return Xr.registerKeyset(i,t,r)})),Xr.keyset(t)}Xr.setLang(Qr.lang),Gr=function(e){Xr.setLang(e.lang)},$r.push(Gr);var eo,to=Jr({en:JSON.parse('{"label_close-button":"Close"}'),ru:JSON.parse('{"label_close-button":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"}')},"Toaster"),no=pt("toast"),io="toast-display-end",ro="toast-hide-end",oo=5e3,ao=12,so={info:function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"none"},Lr,t),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.281 12.25c0-4.781 3.903-8.719 8.719-8.719 4.781 0 8.719 3.938 8.719 8.719 0 4.816-3.938 8.719-8.719 8.719a8.717 8.717 0 0 1-8.719-8.719Zm10.196-3.375c0-.809-.668-1.477-1.477-1.477-.844 0-1.477.668-1.477 1.477 0 .844.633 1.477 1.477 1.477.809 0 1.477-.633 1.477-1.477Zm.07 7.875c.21 0 .422-.176.422-.422v-.844a.454.454 0 0 0-.422-.421h-.422v-3.516a.454.454 0 0 0-.422-.422h-2.25a.427.427 0 0 0-.422.422v.844c0 .246.176.421.422.421h.422v2.25h-.422a.427.427 0 0 0-.422.422v.844c0 .246.176.422.422.422h3.094Z",fill:"currentColor"}))},success:function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"none"},Lr,t),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 3.531c4.781 0 8.719 3.938 8.719 8.719 0 4.816-3.938 8.719-8.719 8.719a8.717 8.717 0 0 1-8.719-8.719c0-4.781 3.903-8.719 8.719-8.719Zm-1.828 13.36c.21.21.598.21.808 0l6.47-6.47a.596.596 0 0 0 0-.808l-.81-.773a.497.497 0 0 0-.773 0l-5.273 5.273-2.496-2.46a.497.497 0 0 0-.774 0l-.808.773a.596.596 0 0 0 0 .808l3.656 3.657Z",fill:"currentColor"}))},warning:Yr,error:Yr};function uo(e){var t;return null===(t=e.current)||void 0===t?void 0:t.offsetHeight}function lo(t){var n=t.content,i=t.actions,r=t.title,o=t.className,a=t.type,s=t.renderIcon,u=t.autoHiding,l=void 0===u?oo:u,c=t.isClosable,d=void 0===c||c,h=t.isOverride,f=void 0!==h&&h,p=t.updatesCounter,v=void 0===p?0:p,g=t.mobile,m=void 0!==g&&g,_=function(t){var n,i=t.onRemove,r=e.useState(eo.Creating),o=(0,dt.Z)(r,2),a=o[0],s=o[1];e.useEffect((function(){a===eo.Creating?s(eo.ShowingIndents):a===eo.ShowingIndents&&s(eo.ShowingHeight)}),[a]),a===eo.ShowingHeight&&(n=function(e){e.animationName===io&&s(eo.Shown)}),a===eo.Hiding&&(n=function(e){e.animationName===ro&&i()});var u=e.useCallback((function(){s(eo.Hiding)}),[]);return{status:a,containerProps:{onAnimationEnd:n},handleClose:u}}({onRemove:t.removeCallback}),y=_.status,b=_.containerProps,w=_.handleClose,C=function(t){var n=t.isOverride,i=t.status,r=t.updatesCounter,o=e.useState(void 0),a=(0,dt.Z)(o,2),s=a[0],u=a[1],l=e.useRef(null);e.useEffect((function(){i===eo.ShowingIndents&&uo(l)}),[i]),e.useEffect((function(){if(i!==eo.ShowingIndents&&i!==eo.ShowingHeight&&i!==eo.Hiding){var e=uo(l);u(e)}}),[n,r]);var c={};return s&&i!==eo.ShowingIndents&&i!==eo.Shown&&(c.height=s),{style:c,ref:l}}({isOverride:f,status:y,updatesCounter:v}),k=xr({onClose:w,timeout:"number"===typeof l?l:void 0}),S=(0,xt.Z)({mobile:m,appearing:y===eo.ShowingIndents||y===eo.ShowingHeight,"show-animation":y===eo.ShowingHeight,"hide-animation":y===eo.Hiding,created:y!==eo.Creating},a||"default",!0),x=s?s(t):function(t){var n=t.type;return n?e.createElement(Mr,{data:so[n],className:no("icon",(0,xt.Z)({},n,!0))}):null}({type:a});return e.createElement("div",Object.assign({className:no(S,o)},b,C,k),x&&e.createElement("div",{className:no("icon-container")},x),e.createElement("div",{className:no("container")},e.createElement("h3",{className:no("title")},r),d&&e.createElement(zr,{view:"flat-secondary",className:no("btn-close"),onClick:w,extraProps:{"aria-label":to("label_close-button")}},e.createElement(Mr,{data:Ur,size:ao})),Boolean(n)&&e.createElement("div",{className:no("content")},n),function(t){var n=t.actions,i=t.onClose;return n?e.createElement("div",{className:no("actions")},n.map((function(t,n){var r=t.label,o=t.onClick,a=t.view,s=void 0===a?"outlined":a,u=t.removeAfterClick,l=void 0===u||u;return e.createElement(zr,{key:"".concat(r,"__").concat(n),className:no("action"),onClick:function(){o(),l&&i()},type:"button",view:s},r)}))):null}({actions:i,onClose:w})))}function co(t){var n=t.toasts,i=t.mobile,r=t.removeCallback;return e.createElement(e.Fragment,null,n.map((function(t){return e.createElement(lo,Object.assign({},t,{key:"".concat(t.name,"_").concat(t.addedAt),mobile:i,removeCallback:function(){return r(t.name)}}))})))}!function(e){e.Creating="creating",e.ShowingIndents="showing-indents",e.ShowingHeight="showing-height",e.Hiding="hiding",e.Shown="shown"}(eo||(eo={}));var ho=e.createContext({current:null});ho.displayName="PortalContext";function fo(n){var i=n.container,r=n.children,o=n.disablePortal,a=function(){var t,n=(0,e.useContext)(ho),i=null;return"object"===typeof window&&(i=window.document.body),null!==(t=n.current)&&void 0!==t?t:i}(),s=null!==i&&void 0!==i?i:a;return o?e.createElement(e.Fragment,null,r):s?t.createPortal(r,s):null}var po=pt("toaster");function vo(t){var n=t.children,i=t.className,r=t.mobile,o=e.useRef("undefined"!==typeof document?document.createElement("div"):void 0);return e.useEffect((function(){var e=o.current;if(e)return document.body.appendChild(e),function(){document.body.removeChild(e)}}),[]),e.useEffect((function(){o.current&&(o.current.className=po({mobile:r},i))}),[i,r]),e.createElement(fo,{container:o.current},n)}function go(t){var n=t.className,i=t.mobile,r=t.hasPortal,o=void 0===r||r,a=Sr(),s=(0,dt.Z)(a,1)[0],u=function(){var t=e.useContext(vr);if(null===t)throw new Error("Toaster: `useToaster` hook is used out of context");return e.useMemo((function(){return t}),[t])}(),l=u.remove,c=e.useContext(yr),d=e.createElement(co,{toasts:c,removeCallback:l,mobile:null!==i&&void 0!==i?i:s});return o?e.createElement(vo,{className:n||"",mobile:null!==i&&void 0!==i?i:s},d):d}vo.displayName="ToasterPortal",go.displayName="ToasterComponent";var mo,_o=Symbol("Toaster instance key"),yo=pt("toaster"),bo=function(){function n(e){var t=this;(0,i.Z)(this,n),this.className="",this.mobile=!1,this.componentAPI=null,this.add=function(e){var n;null===(n=t.componentAPI)||void 0===n||n.add(e)},this.remove=function(e){var n;null===(n=t.componentAPI)||void 0===n||n.remove(e)},this.removeAll=function(){var e;null===(e=t.componentAPI)||void 0===e||e.removeAll()},this.update=function(e,n){var i;null===(i=t.componentAPI)||void 0===i||i.update(e,n)},this.has=function(e){var n,i;return null!==(i=null===(n=t.componentAPI)||void 0===n?void 0:n.has(e))&&void 0!==i&&i};var r=pr()(e,["className"],""),o=pr()(e,["mobile"],!1);if(window[_o]instanceof n){var a=window[_o];return a.className=r,a.mobile=o,a.setRootNodeClassName(),a}this.className=r,this.mobile=o,this.createRootNode(),this.createReactRoot(),this.render(),window[_o]=this}return(0,r.Z)(n,[{key:"destroy",value:function(){t.unmountComponentAtNode(this.rootNode),document.body.removeChild(this.rootNode)}},{key:"createRootNode",value:function(){this.rootNode=document.createElement("div"),this.setRootNodeClassName(),document.body.appendChild(this.rootNode)}},{key:"createReactRoot",value:function(){mo&&(this.reactRoot=mo.createRoot(this.rootNode))}},{key:"render",value:function(){var n=this,i=e.createElement(wr,{ref:function(e){n.componentAPI=e}},e.createElement(go,{hasPortal:!1,mobile:this.mobile}));this.reactRoot?this.reactRoot.render(i):t.render(i,this.rootNode,(function(){return Promise.resolve()}))}},{key:"setRootNodeClassName",value:function(){this.rootNode.className=yo({mobile:this.mobile},this.className)}}],[{key:"injectReactDOMClient",value:function(e){mo=e}}]),n}(),wo=new bo;var Co=function(e){var t=e.name,n=e.title,i=e.type,r=e.content;return wo.add({name:null!==t&&void 0!==t?t:"Request succeeded",title:null!==n&&void 0!==n?n:"Request succeeded",type:null!==i&&void 0!==i?i:"success",content:r,isClosable:!0,autoHiding:"success"===i&&5e3})},ko=Mo("authentication","SET_UNAUTHENTICATED"),So=Mo("authentication","SET_AUTHENTICATED"),xo=Mo("authentication","FETCH_USER"),Lo={isAuthenticated:!0,user:"",error:""},Eo=function(e,t){return Oo({request:window.api.authenticate(e,t),actions:So})},No=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Lo,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ko.SUCCESS:return Rt(Rt({},e),{},{isAuthenticated:!1,user:"",error:""});case So.SUCCESS:return Rt(Rt({},e),{},{isAuthenticated:!0,error:""});case So.FAILURE:return Rt(Rt({},e),{},{error:t.error});case xo.SUCCESS:return Rt(Rt({},e),{},{user:t.data});default:return Rt({},e)}},Do=function(e){return e};function Mo(e,t){return{REQUEST:"".concat(e,"/").concat(t,"_REQUEST"),SUCCESS:"".concat(e,"/").concat(t,"_SUCCESS"),FAILURE:"".concat(e,"/").concat(t,"_FAILURE")}}var To=function(e){return e&&"status"in e};function Oo(e){var t=e.actions,n=e.request,i=e.dataHandler,r=void 0===i?Do:i,o=function(){var e=bi(ki().mark((function e(i,o){var a,s;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i({type:t.REQUEST}),e.prev=1,e.next=4,n;case 4:return a=e.sent,s=r(a,o),i({type:t.SUCCESS,data:s}),e.abrupt("return",s);case 10:return e.prev=10,e.t0=e.catch(1),To(e.t0)&&401===e.t0.status?i({type:ko.SUCCESS}):To(e.t0)&&e.t0.status>=500&&e.t0.statusText&&Co({name:"Request failure",title:"Request failure",type:"error",content:"".concat(e.t0.status," ").concat(e.t0.statusText)}),i({type:t.FAILURE,error:e.t0}),e.abrupt("return",void 0);case 15:case"end":return e.stop()}}),e,null,[[1,10]])})));return function(t,n){return e.apply(this,arguments)}}();return o}var Io=Mo("heatmap","FETCH_HEATMAP"),Ao="heatmap/SET_HEATMAP_OPTIONS",Po={loading:!1,wasLoaded:!1,currentMetric:void 0,sort:!1,heatmap:!1};function Ro(e){return{type:Ao,data:e}}var Zo=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Po,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Io.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Io.SUCCESS:return Rt(Rt(Rt({},e),t.data),{},{loading:!1,wasLoaded:!0,error:void 0});case Io.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1,wasLoaded:!1});case Ao:return Rt(Rt({},e),t.data);default:return e}},Fo=["search"],jo={global:{problemFilter:{stateKey:"settings.problemFilter",initialState:sr.problemFilter}},"/tenant":{sort:{stateKey:"heatmap.sort",initialState:Po.sort,type:"bool"},heatmap:{stateKey:"heatmap.heatmap",initialState:Po.heatmap,type:"bool"},currentMetric:{stateKey:"heatmap.currentMetric",initialState:Po.currentMetric},schema:{stateKey:"schema.currentSchemaPath"},stateFilter:{stateKey:"tablets.stateFilter",type:"array"},typeFilter:{stateKey:"tablets.typeFilter",type:"array"},tenantPage:{stateKey:"tenant.tenantPage"},queryTab:{stateKey:"tenant.queryTab"},diagnosticsTab:{stateKey:"tenant.diagnosticsTab"},shardsMode:{stateKey:"shardsWorkload.filters.mode"},shardsDateFrom:{stateKey:"shardsWorkload.filters.from",type:"number"},shardsDateTo:{stateKey:"shardsWorkload.filters.to",type:"number"},topQueriesDateFrom:{stateKey:"executeTopQueries.filters.from",type:"number"},topQueriesDateTo:{stateKey:"executeTopQueries.filters.to",type:"number"},selectedConsumer:{stateKey:"partitions.selectedConsumer"}}};function Ho(e,t){return an().merge({},e,t.query)}var Bo,zo,Wo,Vo="";function Yo(e,t,n){var i=(0,sn.stateToParams)(e,t,n),r=i.location;if(r.search!==Vo){return Vo=r.search,/\?\w+/.test(n.search)&&(r=function(e,t){var n=e.search,i=rn(e,Fo),r=Ft().parse(t.search.slice(1)),o=(0,cn.getMatchingDeclaredPath)(jo,e),a=o&&jo[o];an().each(an().keys(a),(function(e){delete r[e]})),an().each(an().keys(jo.global||{}),(function(e){delete r[e]}));var s=Ft().stringify(r,{encoder:encodeURIComponent}),u=n.startsWith("?")?"&":"?";return Rt({search:"".concat(n).concat(u).concat(s)},i)}(r,n)),Rt(Rt({},i),{},{location:r})}return{location:n,shouldPush:!1}}function Uo(e,t,n){return function(i,r){var o=function(n,i){var r=i.type,o=i.payload;return!o||ln.LOCATION_POP!==r&&ln.LOCATION_PUSH!==r?n:(o.query=(0,un.parseQuery)(e,o),t(n,o))}(n(i,r),r);return o!==i?o:i}}!function(e){e.Grey="Grey",e.Green="Green",e.Yellow="Yellow",e.Orange="Orange",e.Red="Red"}(Bo||(Bo={})),function(e){e.All="All",e.SmallUptime="SmallUptime"}(Wo||(Wo={}));var Ko,qo=(zo={},(0,xt.Z)(zo,Wo.All,"All"),(0,xt.Z)(zo,Wo.SmallUptime,"Uptime < 1h"),zo),Go=function(e){return!e.SystemState||e.SystemState===Bo.Grey},$o=function(e){return null===e||void 0===e?void 0:e.reduce((function(e,t){return t.Id&&t.Host&&e.set(Number(t.Id),t.Host),e}),new Map)},Qo=n(7406),Xo=n(25017),Jo=n.n(Xo),ea=(n(10135),n(65047));!function(e){e.En="en",e.Ru="ru"}(Ko||(Ko={}));var ta,na=new qr.I18N;na.setLang(Ko.En),(0,ea.configure)({lang:Ko.En}),ta={lang:Ko.En},Object.assign(Qr,ta),$r.forEach((function(e){e(Qr)})),Jo().locale(na.lang);var ia=Jo(),ra=function(e){return Bi(e)?ia(e).format("0 b"):""},oa=function(e){var t=ra(e);return t?t+"/s":""},aa=function(e){return"".concat(Math.floor(e/Vn)," GB")},sa=function(e){return Object.values(e).join("-")},ua=function(e){var t=Math.floor(e/Kn),n=e%Kn;return[t&&"".concat(t,"d"),ia(n).format("00:00:00")].filter(Boolean).join(" ")},la=function(e){return ua(e/1e3)},ca=function(e,t){return[Math.floor(e/Yn),"".concat(Math.floor(t/Yn)," TB")]},da=function(e,t){return[Math.floor(e/1e9),"".concat(Math.floor(t/1e9)," GB")]},ha=function(e){return Bi(e)?ia(e).format():""},fa=function(e){return Bi(e)?ia(e/1e6).format("0.00"):""},pa=function(e){return Bi(e)?e>0?(0,Qo.J)(Number(e)).format("YYYY-MM-DD HH:mm"):"N/A":""},va=function(e){var t=new Date-Number(e);return t<=0?0:t/1e3},ga=function(e){return ua(va(e))},ma=function(e){var t=e.name.split("|");return t.length>1?t[1]:e.name},_a=function(e){var t=[];if(e.Tenants){var n,i=(0,Tr.Z)(e.Tenants);try{var r=function(){var e,i=n.value;null===(e=i.Nodes)||void 0===e||e.forEach((function(e){t.push(Rt(Rt({},e),{},{TenantName:i.Name,SystemState:null===e||void 0===e?void 0:e.Overall,Uptime:ga(null===e||void 0===e?void 0:e.StartTime)}))}))};for(i.s();!(n=i.n()).done;)r()}catch(o){i.e(o)}finally{i.f()}}return{Nodes:t,TotalNodes:t.length}},ya=function(e){var t,n=(e.Nodes||[]).map((function(e){var t,n,i;return Rt(Rt({},e.SystemState),{},{Tablets:e.Tablets,NodeId:e.NodeId,Uptime:ga(null===(t=e.SystemState)||void 0===t?void 0:t.StartTime),TenantName:null===(n=e.SystemState)||void 0===n||null===(i=n.Tenants)||void 0===i?void 0:i[0]})}));return{Nodes:n,TotalNodes:null!==(t=Number(e.TotalNodes))&&void 0!==t?t:n.length}},ba=Mo("nodes","FETCH_NODES"),wa="nodes/RESET_NODES_STATE",Ca="nodes/SET_NODES_UPTIME_FILTER",ka="nodes/SET_DATA_WAS_NOT_LOADED",Sa="nodes/SET_SEARCH_VALUE",xa={loading:!1,wasLoaded:!1,nodesUptimeFilter:Wo.All,searchValue:""};var La=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:xa,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ba.REQUEST:return Rt(Rt({},e),{},{loading:!0});case ba.SUCCESS:var n,i;return Rt(Rt({},e),{},{data:null===(n=t.data)||void 0===n?void 0:n.Nodes,totalNodes:null===(i=t.data)||void 0===i?void 0:i.TotalNodes,loading:!1,wasLoaded:!0,error:void 0});case ba.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case wa:return Rt(Rt({},e),{},{loading:xa.loading,wasLoaded:xa.wasLoaded,nodesUptimeFilter:xa.nodesUptimeFilter,searchValue:xa.searchValue});case Ca:return Rt(Rt({},e),{},{nodesUptimeFilter:t.data});case Sa:return Rt(Rt({},e),{},{searchValue:t.data});case ka:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},Ea=Mo("cluster","FETCH_CLUSTER"),Na={loading:!0,wasLoaded:!1};function Da(e){return Oo({request:window.api.getClusterInfo(e),actions:Ea})}var Ma=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Na,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ea.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Ea.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case Ea.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});default:return e}},Ta=Mo("cluster","FETCH_CLUSTER_NODES"),Oa={loading:!1,wasLoaded:!1};function Ia(){return Oo({request:window.api.getClusterNodes(),actions:Ta,dataHandler:function(e){var t=e.SystemStateInfo;return(void 0===t?[]:t).map((function(e){return Rt(Rt({},e),{},{uptime:ga(e.StartTime)})}))}})}var Aa=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Oa,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ta.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Ta.SUCCESS:var n=t.data,i=void 0===n?[]:n;return Rt(Rt({},e),{},{nodes:i,loading:!1,wasLoaded:!0,error:void 0});case Ta.FAILURE:var r;return null!==(r=t.error)&&void 0!==r&&r.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});default:return e}},Pa=Mo("tenant","FETCH_TENANT"),Ra="tenant/SET_TOP_LEVEL_TAB",Za="tenant/SET_QUERY_TAB",Fa="tenant/SET_DIAGNOSTICS_TAB",ja="tenant/CLEAR_TENANT",Ha={loading:!1,wasLoaded:!1};function Ba(e){return{type:Ra,data:e}}function za(e){return{type:Za,data:e}}var Wa=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ha,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Pa.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Pa.SUCCESS:return Rt(Rt({},e),{},{tenant:t.data,loading:!1,wasLoaded:!0,error:void 0});case Pa.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1,wasLoaded:!0});case ja:return Rt(Rt({},e),{},{tenant:void 0,loading:!0});case Ra:return Rt(Rt({},e),{},{tenantPage:t.data});case Za:return Rt(Rt({},e),{},{queryTab:t.data});case Fa:return Rt(Rt({},e),{},{diagnosticsTab:t.data});default:return e}},Va={all:"all",missing:"missing",space:"space"},Ya={groups:"groups",nodes:"nodes"},Ua=Mo("storage","FETCH_STORAGE"),Ka="storage/SET_INITIAL",qa="storage/SET_FILTER",Ga="storage/SET_USAGE_FILTER",$a="storage/SET_VISIBLE_GROUPS",Qa="storage/SET_STORAGE_TYPE",Xa="storage/SET_NODES_UPTIME_FILTER",Ja="storage/SET_DATA_WAS_NOT_LOADED",es={loading:!0,wasLoaded:!1,filter:"",usageFilter:[],visible:Va.missing,nodesUptimeFilter:Wo.All,type:Ya.groups};var ts=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:es,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ua.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Ua.SUCCESS:return Rt(Rt({},e),{},{nodes:t.data.nodes,groups:t.data.groups,loading:!1,wasLoaded:!0,error:void 0});case Ua.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1,wasLoaded:!0});case Ka:return Rt({},es);case qa:return Rt(Rt({},e),{},{filter:t.data});case Ga:return Rt(Rt({},e),{},{usageFilter:t.data});case $a:return Rt(Rt({},e),{},{visible:t.data,wasLoaded:!1,error:void 0});case Xa:return Rt(Rt({},e),{},{nodesUptimeFilter:t.data});case Qa:return Rt(Rt({},e),{},{type:t.data,filter:"",usageFilter:[],wasLoaded:!1,error:void 0});case Ja:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},ns=Mo("node","FETCH_NODE"),is=Mo("node","FETCH_NODE_STRUCTURE"),rs="node/RESET_NODE",os={data:{},loading:!0,wasLoaded:!1,nodeStructure:{},loadingStructure:!0,wasLoadedStructure:!1},as=function(e){return Oo({request:window.api.getNodeInfo(e),actions:ns})},ss=function(e){return Oo({request:window.api.getStorageInfo({nodeId:e},{concurrentId:"getNodeStructure"}),actions:is})};var us=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:os,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ns.REQUEST:return Rt(Rt({},e),{},{loading:!0});case ns.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case ns.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case is.REQUEST:return Rt(Rt({},e),{},{loadingStructure:!0});case is.SUCCESS:return Rt(Rt({},e),{},{nodeStructure:t.data,loadingStructure:!1,wasLoadedStructure:!0,errorStructure:void 0});case is.FAILURE:return Rt(Rt({},e),{},{errorStructure:t.error,loadingStructure:!1});case rs:return Rt(Rt({},e),{},{data:{},wasLoaded:!1,nodeStructure:{},wasLoadedStructure:!1});default:return e}},ls=n(34495),cs=n.n(ls),ds=n(18878),hs=n.n(ds),fs=n(2556),ps=(0,ct.default)("info-viewer"),vs=function(e){var t=e.title,n=e.info,i=e.dots,r=void 0===i||i,o=e.size,a=e.className,s=e.multilineLabels,u=e.renderEmptyState;return n&&n.length||!u?(0,fs.jsxs)("div",{className:ps({size:o},a),children:[t&&(0,fs.jsx)("div",{className:ps("title"),children:t}),n&&n.length>0?(0,fs.jsx)("div",{className:ps("items"),children:n.map((function(e,t){return(0,fs.jsxs)("div",{className:ps("row"),children:[(0,fs.jsxs)("div",{className:ps("label"),children:[(0,fs.jsx)("div",{className:ps("label-text",{multiline:s}),children:e.label}),r&&(0,fs.jsx)("div",{className:ps("dots")})]}),(0,fs.jsx)("div",{className:ps("value"),children:e.value})]},t)}))}):(0,fs.jsxs)(fs.Fragment,{children:["No ",t," data"]})]}):(0,fs.jsx)(fs.Fragment,{children:u({title:t,size:o})})};function gs(e,t){var n;return null!==(n=t[e])&&void 0!==n?n:e}function ms(e,t,n,i){var r=n[e]||i;return r?r(t):t}function _s(e){var t=e.values,n=e.labels,i=e.defaultValueFormatter;return function(e,r){return{label:gs(e,n||{}),value:ms(e,r,t||{},i)}}}var ys=function(e,t){return t?Object.entries(t).map((function(t){var n=(0,dt.Z)(t,2),i=n[0],r=n[1];return e(i,r)})).filter((function(e){var t=e.value;return Boolean(t)})):[]},bs=(0,ct.default)("ydb-node-endpoints-tooltip-content"),ws=function(e){var t=e.data,n=[];return null!==t&&void 0!==t&&t.Rack&&n.push({label:"Rack",value:t.Rack}),null!==t&&void 0!==t&&t.Endpoints&&t.Endpoints.length&&t.Endpoints.forEach((function(e){var t=e.Name,i=e.Address;t&&i&&n.push({label:t,value:i})})),(0,fs.jsx)(vs,{className:bs(null),info:n,dots:!1,size:"s"})},Cs=_s({values:{ChangeTime:function(e){return ga(e)}},labels:{TabletId:"Tablet"},defaultValueFormatter:function(e){return e&&String(e)}}),ks=function(e){var t=e.data,n=void 0===t?{}:t,i=e.className,r=n.TabletId,o=n.NodeId,a=n.State,s=n.Type,u=n.ChangeTime,l=n.Generation,c=ys(Cs,{TabletId:r,NodeId:o,State:a,Type:s,ChangeTime:u,Generation:l});return(0,fs.jsx)(vs,{className:i,info:c,dots:!1,size:"s"})},Ss=_s({values:{Usage:function(e){return e&&"".concat((100*Number(e)).toFixed(2)," %")}},labels:{Name:"Pool"},defaultValueFormatter:function(e){return e&&String(e)}}),xs=function(e){var t=e.data,n=void 0===t?{}:t,i=e.className,r=ys(Ss,n);return(0,fs.jsx)(vs,{className:i,info:r,dots:!1,size:"s"})},Ls=(0,ct.default)("node-tootltip"),Es=function(e){var t=e.data;return t&&(0,fs.jsx)("div",{className:Ls(),children:(0,fs.jsx)("table",{children:(0,fs.jsxs)("tbody",{children:[(0,fs.jsxs)("tr",{children:[(0,fs.jsx)("td",{className:Ls("label"),children:"ID"}),(0,fs.jsx)("td",{className:Ls("value"),children:t.nodeId||"?"})]}),(0,fs.jsxs)("tr",{children:[(0,fs.jsx)("td",{className:Ls("label"),children:"Rack"}),(0,fs.jsx)("td",{className:Ls("value"),children:t.rack||"?"})]}),t.connected&&t.capacity&&(0,fs.jsxs)("tr",{children:[(0,fs.jsx)("td",{className:Ls("label"),children:"Net"}),(0,fs.jsx)("td",{className:Ls("value"),children:"".concat(t.connected," / ").concat(t.capacity)})]})]})})})},Ns=(0,ct.default)("tabletsOverall-tooltip"),Ds=function(e){var t=e.data;return t&&(0,fs.jsx)("div",{className:Ns(),children:(0,fs.jsx)("table",{children:(0,fs.jsx)("tbody",{children:t.map((function(e,t){return(0,fs.jsxs)("tr",{children:[(0,fs.jsxs)("td",{className:Ns("label"),children:[e.color,":"]}),(0,fs.jsx)("td",{className:Ns("value"),children:"".concat(e.value,"/").concat(e.total," (").concat(e.percents.toFixed(2),"%)")})]},t)}))})})})},Ms=(0,ct.default)("histogram-tooltip"),Ts=function(e){var t=e.data;return t&&(0,fs.jsx)("div",{className:Ms(),children:(0,fs.jsx)("table",{children:(0,fs.jsxs)("tbody",{children:[(0,fs.jsxs)("tr",{children:[(0,fs.jsx)("td",{className:Ms("label"),children:"Count"}),(0,fs.jsx)("td",{className:Ms("value"),children:t.count||"?"})]}),(0,fs.jsxs)("tr",{children:[(0,fs.jsx)("td",{className:Ms("label"),children:"From"}),(0,fs.jsx)("td",{className:Ms("value"),children:t.leftBound||"?"})]}),(0,fs.jsxs)("tr",{children:[(0,fs.jsx)("td",{className:Ms("label"),children:"To"}),(0,fs.jsx)("td",{className:Ms("value"),children:t.rightBound||"?"})]})]})})})},Os=(0,ct.default)("cell-tooltip"),Is=(0,ct.default)("json-tooltip"),As={pool:function(e){return(0,fs.jsx)(xs,{data:e})},tablet:function(e){return(0,fs.jsx)(ks,{data:e})},node:function(e){return(0,fs.jsx)(Es,{data:e})},nodeEndpoints:function(e){return(0,fs.jsx)(ws,{data:e})},tabletsOverall:function(e){return(0,fs.jsx)(Ds,{data:e})},histogram:function(e){return(0,fs.jsx)(Ts,{data:e})},cell:function(e){return(0,fs.jsx)("div",{className:Os(),children:e})},json:function(e){return(0,fs.jsx)("div",{className:Is(),children:(0,fs.jsx)(hs(),{data:e,search:!1,isExpanded:function(){return!0},className:Is("inspector")})})}},Ps="tooltip/HIDE_TOOLTIP",Rs="tooltip/UPDATE_REF",Zs={toolTipVisible:!1,currentHoveredRef:void 0,data:void 0,templateType:"pool",template:As.pool},Fs=function(){return{type:Ps}},js=function(e,t,n,i,r){return{type:Rs,node:e,data:t,templateType:n,additionalData:i,positions:r}},Hs=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Zs,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ps:return Rt(Rt({},e),{},{currentHoveredRef:void 0,toolTipVisible:!1});case Rs:return"cell"===t.templateType&&cs()(t.node,e.currentHoveredRef)?Rt(Rt({},e),{},{currentHoveredRef:void 0,toolTipVisible:!1}):Rt(Rt({},e),{},{toolTipVisible:!0,currentHoveredRef:t.node,positions:t.positions,data:t.data,additionalData:t.additionalData,templateType:t.templateType,template:As[t.templateType]});default:return e}},Bs=Mo("tablets","FETCH_TABLETS"),zs="tablets/CLEAR_WAS_LOADING_TABLETS",Ws="tablets/SET_STATE_FILTER",Vs="tablets/SET_TYPE_FILTER",Ys={loading:!0,wasLoaded:!1,stateFilter:[],typeFilter:[]};function Us(e){return Oo({request:window.api.getTabletsInfo(e),actions:Bs})}var Ks=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ys,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Bs.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Bs.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Bs.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case zs:return Rt(Rt({},e),{},{wasLoaded:!1,loading:!0});case Ws:return Rt(Rt({},e),{},{stateFilter:t.data});case Vs:return Rt(Rt({},e),{},{typeFilter:t.data});default:return e}},qs="NOT_FOUND";var Gs=function(e,t){return e===t};function $s(e,t){var n="object"===typeof t?t:{equalityCheck:t},i=n.equalityCheck,r=void 0===i?Gs:i,o=n.maxSize,a=void 0===o?1:o,s=n.resultEqualityCheck,u=function(e){return function(t,n){if(null===t||null===n||t.length!==n.length)return!1;for(var i=t.length,r=0;r<i;r++)if(!e(t[r],n[r]))return!1;return!0}}(r),l=1===a?function(e){var t;return{get:function(n){return t&&e(t.key,n)?t.value:qs},put:function(e,n){t={key:e,value:n}},getEntries:function(){return t?[t]:[]},clear:function(){t=void 0}}}(u):function(e,t){var n=[];function i(e){var i=n.findIndex((function(n){return t(e,n.key)}));if(i>-1){var r=n[i];return i>0&&(n.splice(i,1),n.unshift(r)),r.value}return qs}return{get:i,put:function(t,r){i(t)===qs&&(n.unshift({key:t,value:r}),n.length>e&&n.pop())},getEntries:function(){return n},clear:function(){n=[]}}}(a,u);function c(){var t=l.get(arguments);if(t===qs){if(t=e.apply(null,arguments),s){var n=l.getEntries().find((function(e){return s(e.value,t)}));n&&(t=n.value)}l.put(arguments,t)}return t}return c.clearCache=function(){return l.clear()},c}function Qs(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];var o,a=0,s={memoizeOptions:void 0},u=i.pop();if("object"===typeof u&&(s=u,u=i.pop()),"function"!==typeof u)throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof u+"]");var l=s.memoizeOptions,c=void 0===l?n:l,d=Array.isArray(c)?c:[c],h=function(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"===typeof e}))){var n=t.map((function(e){return"function"===typeof e?"function "+(e.name||"unnamed")+"()":typeof e})).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return t}(i),f=e.apply(void 0,[function(){return a++,u.apply(null,arguments)}].concat(d)),p=e((function(){for(var e=[],t=h.length,n=0;n<t;n++)e.push(h[n].apply(null,arguments));return o=f.apply(null,e)}));return Object.assign(p,{resultFunc:u,memoizedResultFunc:f,dependencies:h,lastResult:function(){return o},recomputations:function(){return a},resetRecomputations:function(){return a=0}}),p}}var Xs,Js,eu,tu,nu,iu,ru,ou,au,su,uu,lu,cu,du,hu,fu,pu,vu,gu,mu,_u,yu,bu,wu,Cu,ku,Su,xu,Lu,Eu,Nu,Du,Mu,Tu,Ou,Iu,Au=Qs($s);!function(e){e.StatusSuccess="StatusSuccess",e.StatusAccepted="StatusAccepted",e.StatusPathDoesNotExist="StatusPathDoesNotExist",e.StatusPathIsNotDirectory="StatusPathIsNotDirectory",e.StatusAlreadyExists="StatusAlreadyExists",e.StatusSchemeError="StatusSchemeError",e.StatusNameConflict="StatusNameConflict",e.StatusInvalidParameter="StatusInvalidParameter",e.StatusMultipleModifications="StatusMultipleModifications",e.StatusReadOnly="StatusReadOnly",e.StatusTxIdNotExists="StatusTxIdNotExists",e.StatusTxIsNotCancellable="StatusTxIsNotCancellable",e.StatusAccessDenied="StatusAccessDenied",e.StatusNotAvailable="StatusNotAvailable",e.StatusPreconditionFailed="StatusPreconditionFailed",e.StatusRedirectDomain="StatusRedirectDomain",e.StatusQuotaExceeded="StatusQuotaExceeded",e.StatusResourceExhausted="StatusResourceExhausted"}(Xs||(Xs={})),function(e){e.UNKNOWN="UNKNOWN",e.USER="USER",e.GROUP="GROUP"}(Js||(Js={})),function(e){e.EPathTypeInvalid="EPathTypeInvalid",e.EPathTypeDir="EPathTypeDir",e.EPathTypeTable="EPathTypeTable",e.EPathTypePersQueueGroup="EPathTypePersQueueGroup",e.EPathTypeSubDomain="EPathTypeSubDomain",e.EPathTypeTableIndex="EPathTypeTableIndex",e.EPathTypeExtSubDomain="EPathTypeExtSubDomain",e.EPathTypeColumnStore="EPathTypeColumnStore",e.EPathTypeColumnTable="EPathTypeColumnTable",e.EPathTypeCdcStream="EPathTypeCdcStream"}(eu||(eu={})),function(e){e.EPathSubTypeEmpty="EPathSubTypeEmpty",e.EPathSubTypeSyncIndexImplTable="EPathSubTypeSyncIndexImplTable",e.EPathSubTypeAsyncIndexImplTable="EPathSubTypeAsyncIndexImplTable",e.EPathSubTypeStreamImpl="EPathSubTypeStreamImpl"}(tu||(tu={})),function(e){e.EPathStateNotExist="EPathStateNotExist",e.EPathStateNoChanges="EPathStateNoChanges",e.EPathStateCreate="EPathStateCreate",e.EPathStateAlter="EPathStateAlter",e.EPathStateDrop="EPathStateDrop",e.EPathStateCopying="EPathStateCopying",e.EPathStateBackup="EPathStateBackup",e.EPathStateUpgrade="EPathStateUpgrade",e.EPathStateMigrated="EPathStateMigrated",e.EPathStateRestore="EPathStateRestore",e.EPathStateMoving="EPathStateMoving"}(nu||(nu={})),function(e){e[e.ColumnCodecPlain=0]="ColumnCodecPlain",e[e.ColumnCodecLZ4=1]="ColumnCodecLZ4",e[e.ColumnCodecZSTD=2]="ColumnCodecZSTD"}(iu||(iu={})),function(e){e.UNIT_AUTO="UNIT_AUTO",e.UNIT_SECONDS="UNIT_SECONDS",e.UNIT_MILLISECONDS="UNIT_MILLISECONDS",e.UNIT_MICROSECONDS="UNIT_MICROSECONDS",e.UNIT_NANOSECONDS="UNIT_NANOSECONDS"}(ru||(ru={})),function(e){e.ECdcStreamModeInvalid="ECdcStreamModeInvalid",e.ECdcStreamModeKeysOnly="ECdcStreamModeKeysOnly",e.ECdcStreamModeUpdate="ECdcStreamModeUpdate",e.ECdcStreamModeNewImage="ECdcStreamModeNewImage",e.ECdcStreamModeOldImage="ECdcStreamModeOldImage",e.ECdcStreamModeNewAndOldImages="ECdcStreamModeNewAndOldImages"}(ou||(ou={})),function(e){e.ECdcStreamFormatInvalid="ECdcStreamFormatInvalid",e.ECdcStreamFormatProto="ECdcStreamFormatProto",e.ECdcStreamFormatJson="ECdcStreamFormatJson"}(au||(au={})),function(e){e.ECdcStreamStateInvalid="ECdcStreamStateInvalid",e.ECdcStreamStateReady="ECdcStreamStateReady",e.ECdcStreamStateDisabled="ECdcStreamStateDisabled"}(su||(su={})),function(e){e.HASH_FUNCTION_MODULO_N="HASH_FUNCTION_MODULO_N",e.HASH_FUNCTION_CLOUD_LOGS="HASH_FUNCTION_CLOUD_LOGS"}(uu||(uu={})),function(e){e.COLUMN_ENGINE_NONE="COLUMN_ENGINE_NONE",e.COLUMN_ENGINE_REPLACING_TIMESERIES="COLUMN_ENGINE_REPLACING_TIMESERIES"}(lu||(lu={})),function(e){e.METERING_MODE_RESERVED_CAPACITY="METERING_MODE_RESERVED_CAPACITY",e.METERING_MODE_REQUEST_UNITS="METERING_MODE_REQUEST_UNITS"}(cu||(cu={})),function(e){e[e.SysLog=0]="SysLog",e[e.Log=1]="Log",e[e.Data=2]="Data",e[e.External=3]="External"}(du||(du={})),function(e){e[e.Unspecified=0]="Unspecified",e[e.Freeze=1]="Freeze",e[e.Unfreeze=2]="Unfreeze"}(hu||(hu={})),function(e){e[e.ColumnCacheNone=0]="ColumnCacheNone",e[e.ColumnCacheOnce=1]="ColumnCacheOnce",e[e.ColumnCacheEver=2]="ColumnCacheEver"}(fu||(fu={})),function(e){e[e.ColumnStorage1=0]="ColumnStorage1",e[e.ColumnStorage2=1]="ColumnStorage2",e[e.ColumnStorage1Ext1=2]="ColumnStorage1Ext1",e[e.ColumnStorage1Ext2=3]="ColumnStorage1Ext2",e[e.ColumnStorage2Ext1=4]="ColumnStorage2Ext1",e[e.ColumnStorage2Ext2=5]="ColumnStorage2Ext2",e[e.ColumnStorage1Med2Ext2=6]="ColumnStorage1Med2Ext2",e[e.ColumnStorage2Med2Ext2=7]="ColumnStorage2Med2Ext2",e[e.ColumnStorageTest_1_2_1k=8]="ColumnStorageTest_1_2_1k"}(pu||(pu={})),function(e){e[e.CompactionStrategyUnset=0]="CompactionStrategyUnset",e[e.CompactionStrategyGenerational=1]="CompactionStrategyGenerational",e[e.CompactionStrategySharded=2]="CompactionStrategySharded"}(vu||(vu={})),function(e){e.EIndexTypeInvalid="EIndexTypeInvalid",e.EIndexTypeGlobal="EIndexTypeGlobal",e.EIndexTypeGlobalAsync="EIndexTypeGlobalAsync"}(gu||(gu={})),function(e){e.EIndexStateInvalid="EIndexStateInvalid",e.EIndexStateReady="EIndexStateReady",e.EIndexStateNotReady="EIndexStateNotReady",e.EIndexStateWriteOnly="EIndexStateWriteOnly"}(mu||(mu={})),function(e){e.UnknownTenantType="UnknownTenantType",e.Domain="Domain",e.Dedicated="Dedicated",e.Shared="Shared",e.Serverless="Serverless"}(_u||(_u={})),function(e){e.STATE_UNSPECIFIED="STATE_UNSPECIFIED",e.CREATING="CREATING",e.RUNNING="RUNNING",e.REMOVING="REMOVING",e.PENDING_RESOURCES="PENDING_RESOURCES",e.CONFIGURING="CONFIGURING"}(yu||(yu={})),function(e){e.TABLET_VOLATILE_STATE_UNKNOWN="TABLET_VOLATILE_STATE_UNKNOWN",e.TABLET_VOLATILE_STATE_STOPPED="TABLET_VOLATILE_STATE_STOPPED",e.TABLET_VOLATILE_STATE_BOOTING="TABLET_VOLATILE_STATE_BOOTING",e.TABLET_VOLATILE_STATE_STARTING="TABLET_VOLATILE_STATE_STARTING",e.TABLET_VOLATILE_STATE_RUNNING="TABLET_VOLATILE_STATE_RUNNING",e._TABLET_VOLATILE_STATE_BLOCKED="_TABLET_VOLATILE_STATE_BLOCKED"}(bu||(bu={}));var Pu=(wu={},(0,xt.Z)(wu,tu.EPathSubTypeSyncIndexImplTable,"index_table"),(0,xt.Z)(wu,tu.EPathSubTypeAsyncIndexImplTable,"index_table"),(0,xt.Z)(wu,tu.EPathSubTypeStreamImpl,void 0),(0,xt.Z)(wu,tu.EPathSubTypeEmpty,void 0),wu),Ru=(Cu={},(0,xt.Z)(Cu,eu.EPathTypeInvalid,void 0),(0,xt.Z)(Cu,eu.EPathTypeSubDomain,"database"),(0,xt.Z)(Cu,eu.EPathTypeExtSubDomain,"database"),(0,xt.Z)(Cu,eu.EPathTypeDir,"directory"),(0,xt.Z)(Cu,eu.EPathTypeColumnStore,"directory"),(0,xt.Z)(Cu,eu.EPathTypeTable,"table"),(0,xt.Z)(Cu,eu.EPathTypeTableIndex,"index"),(0,xt.Z)(Cu,eu.EPathTypeColumnTable,"column_table"),(0,xt.Z)(Cu,eu.EPathTypeCdcStream,"topic"),(0,xt.Z)(Cu,eu.EPathTypePersQueueGroup,"topic"),Cu),Zu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eu.EPathTypeDir,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"directory";return t&&Pu[t]||Ru[e]||n},Fu=(ku={},(0,xt.Z)(ku,tu.EPathSubTypeSyncIndexImplTable,"Secondary Index Table"),(0,xt.Z)(ku,tu.EPathSubTypeAsyncIndexImplTable,"Secondary Index Table"),(0,xt.Z)(ku,tu.EPathSubTypeStreamImpl,void 0),(0,xt.Z)(ku,tu.EPathSubTypeEmpty,void 0),ku),ju=(Su={},(0,xt.Z)(Su,eu.EPathTypeInvalid,void 0),(0,xt.Z)(Su,eu.EPathTypeSubDomain,"Database"),(0,xt.Z)(Su,eu.EPathTypeExtSubDomain,"Database"),(0,xt.Z)(Su,eu.EPathTypeDir,"Directory"),(0,xt.Z)(Su,eu.EPathTypeTable,"Table"),(0,xt.Z)(Su,eu.EPathTypeTableIndex,"Secondary Index"),(0,xt.Z)(Su,eu.EPathTypeColumnStore,"Tablestore"),(0,xt.Z)(Su,eu.EPathTypeColumnTable,"Columntable"),(0,xt.Z)(Su,eu.EPathTypeCdcStream,"Changefeed"),(0,xt.Z)(Su,eu.EPathTypePersQueueGroup,"Topic"),Su),Hu=(xu={},(0,xt.Z)(xu,_u.UnknownTenantType,"Database"),(0,xt.Z)(xu,_u.Domain,"Cluster Root"),(0,xt.Z)(xu,_u.Dedicated,"Dedicated Database"),(0,xt.Z)(xu,_u.Shared,"Shared Database"),(0,xt.Z)(xu,_u.Serverless,"Serverless Database"),xu),Bu=(Lu={},(0,xt.Z)(Lu,eu.EPathTypeTable,!0),(0,xt.Z)(Lu,eu.EPathTypeColumnTable,!0),(0,xt.Z)(Lu,eu.EPathTypeInvalid,!1),(0,xt.Z)(Lu,eu.EPathTypeDir,!1),(0,xt.Z)(Lu,eu.EPathTypeSubDomain,!1),(0,xt.Z)(Lu,eu.EPathTypeTableIndex,!1),(0,xt.Z)(Lu,eu.EPathTypeExtSubDomain,!1),(0,xt.Z)(Lu,eu.EPathTypeColumnStore,!1),(0,xt.Z)(Lu,eu.EPathTypeCdcStream,!1),(0,xt.Z)(Lu,eu.EPathTypePersQueueGroup,!1),Lu),zu=function(e){var t;return null!==(t=e&&Bu[e])&&void 0!==t&&t},Wu=(Eu={},(0,xt.Z)(Eu,tu.EPathSubTypeSyncIndexImplTable,!0),(0,xt.Z)(Eu,tu.EPathSubTypeAsyncIndexImplTable,!0),(0,xt.Z)(Eu,tu.EPathSubTypeStreamImpl,!1),(0,xt.Z)(Eu,tu.EPathSubTypeEmpty,!1),Eu),Vu=function(e){var t;return null!==(t=e&&Wu[e])&&void 0!==t&&t},Yu=(Nu={},(0,xt.Z)(Nu,eu.EPathTypeColumnStore,!0),(0,xt.Z)(Nu,eu.EPathTypeColumnTable,!0),(0,xt.Z)(Nu,eu.EPathTypeInvalid,!1),(0,xt.Z)(Nu,eu.EPathTypeDir,!1),(0,xt.Z)(Nu,eu.EPathTypeTable,!1),(0,xt.Z)(Nu,eu.EPathTypeSubDomain,!1),(0,xt.Z)(Nu,eu.EPathTypeTableIndex,!1),(0,xt.Z)(Nu,eu.EPathTypeExtSubDomain,!1),(0,xt.Z)(Nu,eu.EPathTypeCdcStream,!1),(0,xt.Z)(Nu,eu.EPathTypePersQueueGroup,!1),Nu),Uu=function(e){var t;return null!==(t=e&&Yu[e])&&void 0!==t&&t},Ku=(Du={},(0,xt.Z)(Du,eu.EPathTypeSubDomain,!0),(0,xt.Z)(Du,eu.EPathTypeExtSubDomain,!0),(0,xt.Z)(Du,eu.EPathTypeInvalid,!1),(0,xt.Z)(Du,eu.EPathTypeDir,!1),(0,xt.Z)(Du,eu.EPathTypeColumnStore,!1),(0,xt.Z)(Du,eu.EPathTypeColumnTable,!1),(0,xt.Z)(Du,eu.EPathTypeTable,!1),(0,xt.Z)(Du,eu.EPathTypeTableIndex,!1),(0,xt.Z)(Du,eu.EPathTypeCdcStream,!1),(0,xt.Z)(Du,eu.EPathTypePersQueueGroup,!1),Du),qu=function(e){var t;return null!==(t=e&&Ku[e])&&void 0!==t&&t},Gu=(Mu={},(0,xt.Z)(Mu,eu.EPathTypeCdcStream,!0),(0,xt.Z)(Mu,eu.EPathTypePersQueueGroup,!1),(0,xt.Z)(Mu,eu.EPathTypeInvalid,!1),(0,xt.Z)(Mu,eu.EPathTypeColumnStore,!1),(0,xt.Z)(Mu,eu.EPathTypeColumnTable,!1),(0,xt.Z)(Mu,eu.EPathTypeDir,!1),(0,xt.Z)(Mu,eu.EPathTypeTable,!1),(0,xt.Z)(Mu,eu.EPathTypeSubDomain,!1),(0,xt.Z)(Mu,eu.EPathTypeTableIndex,!1),(0,xt.Z)(Mu,eu.EPathTypeExtSubDomain,!1),Mu),$u=function(e){var t;return null!==(t=e&&Gu[e])&&void 0!==t&&t},Qu=(Tu={},(0,xt.Z)(Tu,tu.EPathSubTypeSyncIndexImplTable,!0),(0,xt.Z)(Tu,tu.EPathSubTypeAsyncIndexImplTable,!0),(0,xt.Z)(Tu,tu.EPathSubTypeStreamImpl,!1),(0,xt.Z)(Tu,tu.EPathSubTypeEmpty,!1),Tu),Xu=(Ou={},(0,xt.Z)(Ou,eu.EPathTypeCdcStream,!0),(0,xt.Z)(Ou,eu.EPathTypePersQueueGroup,!0),(0,xt.Z)(Ou,eu.EPathTypeInvalid,!1),(0,xt.Z)(Ou,eu.EPathTypeColumnStore,!1),(0,xt.Z)(Ou,eu.EPathTypeColumnTable,!1),(0,xt.Z)(Ou,eu.EPathTypeDir,!1),(0,xt.Z)(Ou,eu.EPathTypeTable,!1),(0,xt.Z)(Ou,eu.EPathTypeSubDomain,!1),(0,xt.Z)(Ou,eu.EPathTypeTableIndex,!1),(0,xt.Z)(Ou,eu.EPathTypeExtSubDomain,!1),Ou),Ju=function(e,t){var n;return null!==(n=t&&Qu[t]||e&&Xu[e])&&void 0!==n&&n},el=(Iu={},(0,xt.Z)(Iu,eu.EPathTypeCdcStream,!0),(0,xt.Z)(Iu,eu.EPathTypePersQueueGroup,!0),(0,xt.Z)(Iu,eu.EPathTypeInvalid,!1),(0,xt.Z)(Iu,eu.EPathTypeColumnStore,!1),(0,xt.Z)(Iu,eu.EPathTypeColumnTable,!1),(0,xt.Z)(Iu,eu.EPathTypeDir,!1),(0,xt.Z)(Iu,eu.EPathTypeTable,!1),(0,xt.Z)(Iu,eu.EPathTypeSubDomain,!1),(0,xt.Z)(Iu,eu.EPathTypeTableIndex,!1),(0,xt.Z)(Iu,eu.EPathTypeExtSubDomain,!1),Iu),tl=function(e){var t;return null!==(t=e&&el[e])&&void 0!==t&&t},nl=Mo("schema","FETCH_SCHEMA"),il="schema/PRELOAD_SCHEMAS",rl="schema/SET_SCHEMA",ol="schema/SET_SHOW_PREVIEW",al="schema/ENABLE_AUTOREFRESH",sl="schema/DISABLE_AUTOREFRESH",ul="schema/RESET_LOADING_STATE",ll={loading:!0,wasLoaded:!1,data:{},currentSchemaPath:void 0,autorefresh:!1,showPreview:!1};function cl(e){var t=e.path;return Oo({request:window.api.getSchema({path:t}),actions:nl,dataHandler:function(e){var t={};return e.Path&&(t[e.Path]=e),{path:e.Path,currentSchema:e,data:t}}})}function dl(e){return{type:rl,data:e}}function hl(){return{type:sl}}function fl(e){return{type:ol,data:e}}var pl=Au([function(e,t){return t},function(e,t,n){return n},function(e,t){var n,i;return t?null===(n=e.schema.data[t])||void 0===n||null===(i=n.PathDescription)||void 0===i?void 0:i.Children:void 0}],(function(e,t,n){return $u(t)?null===n||void 0===n?void 0:n.map((function(t){var n=t.Name;return e+"/"+n})):void 0})),vl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ll,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case nl.REQUEST:return Rt(Rt({},e),{},{loading:!0});case nl.SUCCESS:var n=!e.currentSchemaPath||e.currentSchemaPath===t.data.path,i=Rt(Rt({},e.data),t.data.data);return Rt(Rt({},e),{},n?{error:void 0,data:i,currentSchema:t.data.currentSchema,currentSchemaPath:t.data.path,loading:!1,wasLoaded:!0}:{data:i});case nl.FAILURE:var r;return null!==(r=t.error)&&void 0!==r&&r.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case il:return Rt(Rt({},e),{},{data:Rt(Rt({},t.data),e.data)});case rl:return Rt(Rt({},e),{},{currentSchemaPath:t.data});case al:return Rt(Rt({},e),{},{autorefresh:!0});case sl:return Rt(Rt({},e),{},{autorefresh:!1});case ol:return Rt(Rt({},e),{},{showPreview:t.data});case ul:return Rt(Rt({},e),{},{wasLoaded:ll.wasLoaded});default:return e}},gl=n(84506),ml=Mo("overview","FETCH_OVERVIEW"),_l="overview/SET_CURRENT_OVERVIEW_PATH",yl="overview/SET_DATA_WAS_NOT_LOADED",bl={loading:!0,wasLoaded:!1};var wl=function(e){return{type:_l,data:e}},Cl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:bl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ml.REQUEST:return Rt(Rt({},e),{},{loading:!0});case ml.SUCCESS:return t.data.data.Path!==e.currentOverviewPath?e:Rt(Rt({},e),{},{error:void 0,data:t.data.data,additionalData:t.data.additionalData,loading:!1,wasLoaded:!0});case ml.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case _l:return Rt(Rt({},e),{},{currentOverviewPath:t.data});case yl:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},kl=Mo("host","FETCH_HOST"),Sl={loading:!0,wasLoaded:!1,data:{}};var xl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Sl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case kl.REQUEST:return Rt(Rt({},e),{},{loading:!0});case kl.SUCCESS:var n;return Rt(Rt({},e),{},{data:null===(n=t.data.SystemStateInfo)||void 0===n?void 0:n[0],loading:!1,wasLoaded:!0,error:void 0});case kl.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});default:return e}},Ll=Mo("network","FETCH_ALL_NODES_NETWORK"),El="network/SET_DATA_WAS_NOT_LOADED",Nl={loading:!1,wasLoaded:!1},Dl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Nl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ll.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Ll.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case Ll.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case El:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},Ml=function(e,t){return e.map((function(n){var i,r=t?function(e){var t,n=e.Nodes?e.Nodes[0]:{},i=n.Host&&n.Endpoints?null===(t=n.Endpoints.find((function(e){return"http-mon"===e.Name})))||void 0===t?void 0:t.Address:void 0;return n.Host?"".concat(n.Host).concat(i||""):void 0}(n):void 0,o=null===(i=e.find((function(e){return e.Id===n.ResourceId})))||void 0===i?void 0:i.Name,a=function(e){var t,n=e.Name.split("/"),i=n.length?n[n.length-1]:"\u2014",r=null===(t=e.ControlPlane)||void 0===t?void 0:t.name;return null!==r&&void 0!==r?r:i}(n),s=function(e){var t,n=e.CoresUsed,i=e.MemoryUsed,r=e.StorageAllocatedSize,o=e.Metrics,a=void 0===o?{}:o,s=Bi(n)?1e6*Number(n):void 0,u=Bi(a.CPU)?Number(a.CPU):void 0,l=null!==(t=null!==s&&void 0!==s?s:u)&&void 0!==t?t:0,c=null!==i&&void 0!==i?i:a.Memory,d=null!==r&&void 0!==r?r:a.Storage;return{cpu:l,memory:Bi(c)?Number(c):0,storage:Bi(d)?Number(d):0}}(n),u=s.cpu,l=s.memory,c=s.storage,d=function(e){var t,n=e.StorageGroups,i=e.NodeIds;return{nodesCount:null!==(t=null===i||void 0===i?void 0:i.length)&&void 0!==t?t:0,groupsCount:Bi(n)?Number(n):0}}(n),h=d.nodesCount,f=d.groupsCount;return Rt(Rt({},n),{},{backend:r,sharedTenantName:o,controlPlaneName:a,cpu:u,memory:l,storage:c,nodesCount:h,groupsCount:f})}))},Tl=Mo("tenants","FETCH_TENANTS"),Ol="tenants/SET_SEARCH_VALUE",Il={loading:!0,wasLoaded:!1,searchValue:"",tenants:[]};var Al=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Il,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Tl.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Tl.SUCCESS:return Rt(Rt({},e),{},{tenants:t.data,loading:!1,wasLoaded:!0,error:void 0});case Tl.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case Ol:return Rt(Rt({},e),{},{searchValue:t.data});default:return e}},Pl=Mo("TABLET","FETCH_TABLET"),Rl=Mo("TABLET","FETCH_TABLET_DESCRIBE"),Zl="tablet/CLEAR_TABLET_DATA",Fl={loading:!1,tenantPath:void 0},jl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Fl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Pl.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Pl.SUCCESS:var n=t.data,i=n.tabletData,r=n.historyData,o=i.TabletId;return Rt(Rt({},e),{},{id:o,data:i,history:r,loading:!1,error:void 0});case Pl.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case Rl.SUCCESS:var a=t.data.tenantPath;return Rt(Rt({},e),{},{tenantPath:a,error:void 0});case Zl:return Rt(Rt({},e),{},{id:void 0,tenantPath:void 0,data:void 0,history:void 0});default:return e}},Hl=JSON.parse('{"daysHours":"{{days}}\xa0d\xa0{{hours}}\xa0h","hoursMin":"{{hours}}\xa0h\xa0{{minutes}}\xa0m","minSec":"{{minutes}}\xa0m\xa0{{seconds}}\xa0s","secMs":"{{seconds}}\xa0s\xa0{{ms}}\xa0ms","days":"{{days}}\xa0d","hours":"{{hours}}\xa0h","min":"{{minutes}}\xa0m","sec":"{{seconds}}\xa0s","ms":"{{ms}}\xa0ms"}'),Bl=JSON.parse('{"daysHours":"{{days}}\xa0\u0434\xa0{{hours}}\xa0\u0447","hoursMin":"{{hours}}\xa0\u0447\xa0{{minutes}}\xa0\u043c","minSec":"{{minutes}}\xa0\u043c\xa0{{seconds}}\xa0\u0441","secMs":"{{seconds}}\xa0\u0441\xa0{{ms}}\xa0\u043c\u0441","days":"{{days}}\xa0\u0434","hours":"{{hours}}\xa0\u0447","min":"{{minutes}}\xa0\u043c","sec":"{{seconds}}\xa0\u0441","ms":"{{ms}}\xa0\u043c\u0441"}'),zl="ydb-time-parsers";na.registerKeyset(Ko.En,zl,Hl),na.registerKeyset(Ko.Ru,zl,Bl);var Wl=na.keyset(zl),Vl=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=e%1e3,i=Math.floor(e/1e3),r=Math.floor(i/Kn);i%=Kn;var o=Math.floor(i/Un);i%=Un;var a=Math.floor(i/60),s=i%=60,u={days:r,hours:o,minutes:a,seconds:s,ms:n};if(2===t){if(r>0)return Wl("daysHours",u);if(o>0)return Wl("hoursMin",u);if(a>0)return Wl("minSec",u);if(s>0)return Wl("secMs",u)}if(1===t){if(r>0)return Wl("days",u);if(o>0)return Wl("hours",u);if(a>0)return Wl("min",u);if(s>0)return Wl("sec",u)}return Wl("ms",u)},Yl=function(e){return(e.seconds?1e3*Number(e.seconds):0)+(e.nanos?e.nanos/1e6:0)},Ul=function(e){return e?function(e){return"string"===typeof e?1e3*parseInt(e,10):Yl(e)}(e):0},Kl=function(e){if(!e)return 0;var t=Date.now()-function(e){return"string"===typeof e?Date.parse(e):Yl(e)}(e);return t<0?0:t},ql=JSON.parse('{"b":"B","kb":"KB","mb":"MB","gb":"GB","tb":"TB","perSecond":"/s"}'),Gl=JSON.parse('{"b":"\u0411","kb":"\u041a\u0411","mb":"\u041c\u0411","gb":"\u0413\u0411","tb":"\u0422\u0411","perSecond":"/\u0441"}'),$l="ydb-bytes-parsers";na.registerKeyset(Ko.En,$l,ql),na.registerKeyset(Ko.Ru,$l,Gl);var Ql=na.keyset($l),Xl=["value","size","withSpeedLabel","withSizeLabel","significantDigits"],Jl={b:{value:1,label:Ql("b")},kb:{value:1e3,label:Ql("kb")},mb:{value:1e6,label:Ql("mb")},gb:{value:Vn,label:Ql("gb")},tb:{value:Yn,label:Ql("tb")}},ec=function(e,t){return e+" ".concat(Jl[t].label)},tc=function(e){var t=e.value,n=e.size,i=e.withSpeedLabel,r=void 0!==i&&i,o=e.withSizeLabel,a=void 0===o||o,s=e.significantDigits,u=void 0===s?0:s,l=rn(e,Xl);if(!Bi(t))return"";var c=Number(t),d=null!==n&&void 0!==n?n:function(e,t){var n=Math.pow(10,t),i=Jl.tb.value*n,r=Jl.gb.value*n,o=Jl.mb.value*n,a="b";return e>=Jl.kb.value*n&&(a="kb"),e>=o&&(a="mb"),e>=r&&(a="gb"),e>=i&&(a="tb"),a}(c,u),h=function(e){var t=e.value,n=e.size,i=void 0===n?"mb":n,r=e.precision,o=void 0===r?0:r,a=(Number(t)/Jl[i].value).toFixed(o);return ha(a)}(Rt({value:c,size:d},l));return r?function(e,t){return ec(e,t)+Ql("perSecond")}(h,d):a?ec(h,d):h},nc=function(e){return{perMinute:e&&e.per_minute?Math.round(Number(e.per_minute)/60):0,perHour:e&&e.per_hour?Math.round(Number(e.per_hour)/Un):0,perDay:e&&e.per_day?Math.round(Number(e.per_day)/Kn):0}},ic=Mo("topic","FETCH_TOPIC"),rc="topic/SET_DATA_WAS_NOT_LOADED",oc="topic/CLEAN_TOPIC_DATA",ac={loading:!0,wasLoaded:!1,data:void 0},sc=function(){return{type:rc}};function uc(e){return Oo({request:window.api.getTopic({path:e}),actions:ic})}var lc=function(e){var t;return null===(t=e.topic.data)||void 0===t?void 0:t.consumers},cc=Au([lc],(function(e){return null===e||void 0===e?void 0:e.map((function(e){return null===e||void 0===e?void 0:e.name})).filter((function(e){return void 0!==e}))})),dc=Au([function(e){var t;return null===(t=e.topic.data)||void 0===t?void 0:t.topic_stats}],(function(e){if(e){var t=e||{},n=t.store_size_bytes,i=void 0===n?"0":n,r=t.min_last_write_time,o=t.max_write_time_lag,a=t.bytes_written;return{storeSize:i,partitionsIdleTime:Kl(r),partitionsWriteLag:Ul(o),writeSpeed:nc(a)}}})),hc=Au([lc],(function(e){return null===e||void 0===e?void 0:e.map((function(e){var t=e||{},n=t.name,i=t.consumer_stats||{},r=i.min_partitions_last_read_time,o=i.max_read_time_lag,a=i.max_write_time_lag,s=i.bytes_read;return{name:n,readSpeed:nc(s),writeLag:Ul(a),readLag:Ul(o),readIdleTime:Kl(r)}}))})),fc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ac,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ic.REQUEST:return Rt(Rt({},e),{},{loading:!0});case ic.SUCCESS:return"object"!==typeof t.data?Rt(Rt({},e),{},{loading:!1,error:{}}):Rt(Rt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case ic.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case rc:return Rt(Rt({},e),{},{wasLoaded:!1});case oc:return Rt(Rt({},e),{},{data:void 0});default:return e}},pc=function(e){var t=e||{},n=t.partition_offsets,i=t.store_size_bytes,r=void 0===i?"0":i,o=t.last_write_time,a=t.max_write_time_lag,s=t.bytes_written,u=t.partition_node_id,l=void 0===u?0:u,c=n||{},d=c.start,h=void 0===d?"0":d,f=c.end,p=void 0===f?"0":f;return{storeSize:r,writeSpeed:nc(s),partitionWriteLag:Ul(a),partitionWriteIdleTime:Kl(o),startOffset:h,endOffset:p,partitionNodeId:l}},vc=function(e){return null===e||void 0===e?void 0:e.map((function(e){var t=e.partition_id,n=void 0===t?"0":t,i=e.partition_stats;return Rt({partitionId:n},pc(i))}))},gc=function(e){return null===e||void 0===e?void 0:e.map((function(e){var t=e.partition_id,n=void 0===t?"0":t,i=e.partition_stats,r=e.partition_consumer_stats,o=pc(i),a=o.endOffset,s=r||{},u=s.last_read_offset,l=void 0===u?"0":u,c=s.committed_offset,d=void 0===c?"0":c,h=s.read_session_id,f=s.last_read_time,p=s.max_read_time_lag,v=s.max_write_time_lag,g=s.bytes_read,m=s.reader_name,_=s.connection_node_id,y=void 0===_?0:_,b=Bi(a)&&Bi(d)?Number(a)-Number(d):0,w=Bi(a)&&Bi(l)?Number(a)-Number(l):0;return Rt(Rt({},o),{},{partitionId:n,readSpeed:nc(g),consumerWriteLag:Ul(v),consumerReadLag:Ul(p),consumerReadIdleTime:Kl(f),uncommitedMessages:b,unreadMessages:w,commitedOffset:d,readSessionId:h,readerName:m,connectionNodeId:y})}))},mc=Mo("partitions","FETCH_PARTITIONS"),_c="partitions/SET_SELECTED_CONSUMER",yc="partitions/SET_DATA_WAS_NOT_LOADED",bc={loading:!1,wasLoaded:!1,selectedConsumer:""},wc=function(e){return{type:_c,data:e}};var Cc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:bc,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case mc.REQUEST:return Rt(Rt({},e),{},{loading:!0});case mc.SUCCESS:return Rt(Rt({},e),{},{partitions:t.data,loading:!1,wasLoaded:!0,error:void 0});case mc.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case _c:return Rt(Rt({},e),{},{selectedConsumer:t.data});case yc:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},kc=function(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"Network Error"===e.message)}(e)?e.message:null!==e&&void 0!==e?e:"Unauthorized"},Sc=20,xc=Mo("query","SEND_QUERY"),Lc="query/CHANGE_USER_INPUT",Ec="query/SAVE_QUERY_TO_HISTORY",Nc="query/GO_TO_PREVIOUS_QUERY",Dc="query/GO_TO_NEXT_QUERY",Mc="query/SET_MONACO_HOT_KEY",Tc="query/SET_TENANT_PATH",Oc=Ii(Ai(ai,"[]")),Ic=Oc.length-Sc,Ac={sendQuery:"sendQuery",goPrev:"goPrev",goNext:"goNext"},Pc={loading:!1,input:"",history:{queries:Oc.slice(Ic<0?0:Ic),currentIndex:Oc.length>Sc?Sc-1:Oc.length-1},monacoHotKey:null},Rc=function(e){var t=e.input;return{type:Lc,data:{input:t}}},Zc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Pc,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case xc.REQUEST:return Rt(Rt({},e),{},{loading:!0,data:void 0,error:void 0});case xc.SUCCESS:return Rt(Rt({},e),{},{data:t.data,stats:t.data.stats,loading:!1,error:void 0});case xc.FAILURE:return Rt(Rt({},e),{},{error:kc(t.error),loading:!1});case Lc:return Rt(Rt({},e),{},{input:t.data.input});case Ec:var n=t.data,i=[].concat((0,Lt.Z)(e.history.queries),[n]).slice(e.history.queries.length>=Sc?1:0);window.localStorage.setItem(ai,JSON.stringify(i));var r=i.length-1;return Rt(Rt({},e),{},{history:{queries:i,currentIndex:r}});case Nc:var o=Math.max(0,e.history.currentIndex-1);return Rt(Rt({},e),{},{history:Rt(Rt({},e.history),{},{currentIndex:o})});case Dc:var a=e.history.queries.length-1,s=Math.min(a,e.history.currentIndex+1);return Rt(Rt({},e),{},{history:Rt(Rt({},e.history),{},{currentIndex:s})});case Mc:return Rt(Rt({},e),{},{monacoHotKey:t.data});case Tc:return Rt(Rt({},e),{},{tenantPath:t.data});default:return e}},Fc=new Set(["PlanNodeId","PlanNodeType","Node Type","Plans"]);function jc(e){var t=[];if(e.Operators){var n,i=[],r=(0,Tr.Z)(e.Operators);try{for(r.s();!(n=r.n()).done;){for(var o=n.value,a={name:o.Name,items:[]},s=0,u=Object.entries(o);s<u.length;s++){var l=(0,dt.Z)(u[s],2),c=l[0],d=l[1];if("Name"!==c){var h=Array.isArray(d)?d.join(", "):d;a.items.push({name:c,value:h})}}i.push(a)}}catch(y){r.e(y)}finally{r.f()}t.push({group:"Operators",stats:i})}if("Connection"===e.PlanNodeType){for(var f=[],p=0,v=Object.entries(e);p<v.length;p++){var g=(0,dt.Z)(v[p],2),m=g[0],_=g[1];Fc.has(m)||f.push({name:m,value:String(_)})}f.length>0&&t.push({group:"Attributes",stats:f})}return t}function Hc(e){switch(e.PlanNodeType){case"Connection":return"connection";case"ResultSet":return"result";case"Query":return"query";default:return"stage"}}var Bc=Mo("query","GET_EXPLAIN_QUERY"),zc=Mo("query","GET_EXPLAIN_QUERY_AST"),Wc={loading:!1},Vc={v2:"0.2"},Yc=Object.values(Vc),Uc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Wc,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Bc.REQUEST:return Rt(Rt({},e),{},{loading:!0,data:void 0,error:void 0,dataAst:void 0,errorAst:void 0});case Bc.SUCCESS:return Rt(Rt({},e),{},{data:t.data.plan,dataAst:t.data.ast,loading:!1,error:void 0});case Bc.FAILURE:return Rt(Rt({},e),{},{error:kc(t.error),loading:!1});case zc.REQUEST:return Rt(Rt({},e),{},{loadingAst:!0,dataAst:void 0,errorAst:void 0});case zc.SUCCESS:return Rt(Rt({},e),{},{dataAst:t.data.ast,loadingAst:!1,error:void 0});case zc.FAILURE:return Rt(Rt({},e),{},{errorAst:kc(t.error),loadingAst:!1});default:return e}},Kc=Mo("tabletsFilters","FETCH_TABLETS_FILTERS"),qc={data:void 0,loading:!0,wasLoaded:!1,stateFilter:[],typeFilter:[]};var Gc=function(e){var t=e.tabletsFilters.tabletsData;return(null===t||void 0===t?void 0:t.TabletStateInfo)||[]},$c=Au([Gc,function(e){return e.tabletsFilters.stateFilter},function(e){return e.tabletsFilters.typeFilter}],(function(e,t,n){var i=e;return n.length>0&&(i=i.filter((function(e){return n.some((function(t){return e.Type===t}))}))),t.length>0&&(i=i.filter((function(e){return t.some((function(t){return e.State===t}))}))),i})),Qc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:qc,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Kc.REQUEST:return Rt(Rt({},e),{},{loading:!0,requestTime:(new Date).getTime()});case Kc.SUCCESS:var n=(new Date).getTime()-e.requestTime,i=(0,dt.Z)(t.data,2),r=i[0],o=i[1];return Rt(Rt({},e),{},{tabletsData:r,nodes:o,loading:!1,wasLoaded:!0,timeoutForRequest:n>Wn?n:Wn,error:void 0});case Kc.FAILURE:return Rt(Rt({},e),{},{error:t.error||"Request-URI Too Large. Please reload the page",loading:!1});case"CLEAR_WAS_LOADING_TABLETS":var a=e.stateFilter,s=e.typeFilter;return Rt(Rt({},qc),{},{stateFilter:a,typeFilter:s});case"SET_STATE_FILTER":return Rt(Rt({},e),{},{stateFilter:t.data});case"SET_TYPE_FILTER":return Rt(Rt({},e),{},{typeFilter:t.data});default:return e}},Xc=Mo("preview","SEND_QUERY"),Jc="preview/SET_QUERY_OPTIONS",ed={loading:!1,wasLoaded:!1};var td=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ed,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Xc.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case Xc.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Xc.FAILURE:return Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Jc:return Rt(Rt({},e),t.data);default:return e}},nd=Mo("nodesList","FETCH_NODES_LIST"),id={loading:!0,wasLoaded:!1,data:[]};function rd(){return Oo({request:window.api.getNodesList(),actions:nd})}var od=function(e){return $o(e.nodesList.data)},ad=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:id,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case nd.REQUEST:return Rt(Rt({},e),{},{loading:!0});case nd.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case nd.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});default:return e}},sd=Mo("describe","FETCH_DESCRIBE"),ud="describe/SET_CURRENT_DESCRIBE_PATH",ld="describe/SET_DATA_WAS_NOT_LOADED",cd={loading:!1,wasLoaded:!1,data:{},currentDescribe:void 0,currentDescribePath:void 0};Au((function(e,t){var n,i,r,o;return t?null===(n=e.describe.data[t])||void 0===n||null===(i=n.PathDescription)||void 0===i||null===(r=i.PersQueueGroup)||void 0===r||null===(o=r.PQTabletConfig)||void 0===o?void 0:o.ReadRules:void 0}),(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((function(e){return{name:e}}))}));var dd=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:cd,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case sd.REQUEST:return Rt(Rt({},e),{},{loading:!0});case sd.SUCCESS:var n=t.data.path===e.currentDescribePath,i=Rt(Rt({},e.data),t.data.data);return Rt(Rt({},e),{},n?{data:i,currentDescribe:t.data.currentDescribe,loading:!1,wasLoaded:!0,error:void 0}:{data:i});case sd.FAILURE:var r;return null!==(r=t.error)&&void 0!==r&&r.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case ud:return Rt(Rt({},e),{},{currentDescribePath:t.data});case ld:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},hd=Mo("schemaAcl","FETCH_SCHEMA_ACL"),fd={loading:!1,wasLoaded:!1};function pd(e){var t=e.path;return Oo({request:window.api.getSchemaAcl({path:t}),actions:hd})}var vd=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:fd,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case hd.REQUEST:return Rt(Rt({},e),{},{loading:!0});case hd.SUCCESS:var n,i,r=null===(n=t.data.Common)||void 0===n?void 0:n.ACL,o=null===(i=t.data.Common)||void 0===i?void 0:i.Owner;return Rt(Rt({},e),{},{acl:r,owner:o,loading:!1,wasLoaded:!0,error:void 0});case hd.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});default:return e}},gd=Mo("top-queries","FETCH_TOP_QUERIES"),md="top-queries/SET_TOP_QUERIES_STATE",_d="top-queries/SET_TOP_QUERIES_FILTERS",yd={loading:!1,wasLoaded:!1,filters:{}},bd=function(e){return"(\n SELECT\n MAX(IntervalEnd)\n FROM `".concat(e,"/.sys/top_queries_by_cpu_time_one_hour`\n)")};var wd=function(e,t){var n=function(e,t){var n=[];if(null!==t&&void 0!==t&&t.from&&null!==t&&void 0!==t&&t.to&&t.from>t.to)throw new Error("Invalid date range");if(null!==t&&void 0!==t&&t.from){var i=t.to===t.from?">=":">";n.push("IntervalEnd ".concat(i," Timestamp('").concat(new Date(t.from).toISOString(),"')"))}return null!==t&&void 0!==t&&t.to&&n.push("IntervalEnd <= Timestamp('".concat(new Date(t.to).toISOString(),"')")),null!==t&&void 0!==t&&t.from||null!==t&&void 0!==t&&t.to||n.push("IntervalEnd IN ".concat(bd(e))),null!==t&&void 0!==t&&t.text&&n.push("QueryText ILIKE '%".concat(t.text,"%'")),n.join(" AND ")}(e,t);return"\nSELECT\n CPUTime as CPUTimeUs,\n QueryText,\n IntervalEnd,\n EndTime,\n ReadRows,\n ReadBytes,\n UserSID\nFROM `".concat(e,"/.sys/top_queries_by_cpu_time_one_hour`\nWHERE ").concat(n||"true","\n")};var Cd=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:yd,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case gd.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case gd.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case gd.FAILURE:return Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case md:return Rt(Rt({},e),t.data);case _d:return Rt(Rt({},e),{},{filters:Rt(Rt({},e.filters),t.filters)});default:return e}},kd=n(54952),Sd=n.n(kd),xd=n(1990),Ld=n.n(xd),Ed=n(26567),Nd=n.n(Ed),Dd=Mo("cluster","FETCH_HEALTHCHECK"),Md="healthcheckInfo/SET_DATA_WAS_NOT_LOADED",Td={loading:!1,wasLoaded:!1},Od={RED:0,ORANGE:1,YELLOW:2,BLUE:3,GREEN:4},Id=function(e){var t=e.issue;return e.data.filter((function(e){return t.reason&&-1!==t.reason.indexOf(e.id)}))},Ad=function(e){var t=e.filter((function(t){return!e.find((function(e){return e.reason&&-1!==e.reason.indexOf(t.id)}))}));return t=Sd()([Nd()((function(e){return e.id})),Ld()((function(e){var t=e.status;return Od[t]}))])(t)},Pd=function e(t){var n=t.data,i=t.roots;return i?i.map((function(t){var i=e({roots:Id({issue:t,data:n}),data:n});return Rt(Rt({},t),{},{reasonsItems:i})})):[]},Rd=function(e){var t;return null===(t=e.healthcheckInfo.data)||void 0===t?void 0:t.issue_log},Zd=Au(Rd,(function(){return Ad(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])})),Fd=Au([Rd,Zd],(function(){return Pd({data:arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],roots:arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]})})),jd=Au([Fd,function(e,t){return t}],(function(){var e=arguments.length>1?arguments[1]:void 0;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).find((function(t){return t.id===e}))}));var Hd,Bd=function(){return{type:Md}},zd=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Td,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Dd.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Dd.SUCCESS:var n=t.data;return Rt(Rt({},e),{},{data:n,wasLoaded:!0,loading:!1,error:void 0});case Dd.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case Md:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}};!function(e){e.Immediate="immediate",e.History="history"}(Hd||(Hd={}));var Wd=Mo("query","SEND_SHARD_QUERY"),Vd="query/SET_SHARD_STATE",Yd="shardsWorkload/SET_SHARD_QUERY_FILTERS",Ud={loading:!1,wasLoaded:!1,filters:{}};function Kd(e){var t=e.columnId,n=e.order;return"".concat(t," ").concat(n)}function qd(e,t,n,i){var r=i?"CAST(SUBSTRING(CAST(Path AS String), ".concat(i.length,") AS Utf8) AS Path"):"Path",o="Path='".concat(e,"' OR Path LIKE '").concat(e,"/%'"),a=function(e){var t=[];if(null!==e&&void 0!==e&&e.from&&null!==e&&void 0!==e&&e.to&&e.from>e.to)throw new Error("Invalid date range");if(null!==e&&void 0!==e&&e.from){var n=e.to===e.from?">=":">";t.push("IntervalEnd ".concat(n," Timestamp('").concat(new Date(e.from).toISOString(),"')"))}return null!==e&&void 0!==e&&e.to&&t.push("IntervalEnd <= Timestamp('".concat(new Date(e.to).toISOString(),"')")),t.join(" AND ")}(t);a.length&&(o="(".concat(o,") AND ").concat(a));var s=n?"ORDER BY ".concat(n.map(Kd).join(", ")):"";return"SELECT\n ".concat(r,",\n TabletId,\n CPUCores,\n DataSize,\n NodeId,\n PeakTime,\n InFlightTxCount,\n IntervalEnd\nFROM `.sys/top_partitions_one_hour`\nWHERE ").concat(o,"\n").concat(s,"\nLIMIT 20")}function Gd(e,t,n){var i=n?"CAST(SUBSTRING(CAST(Path AS String), ".concat(n.length,") AS Utf8) AS Path"):"Path",r=t?"ORDER BY ".concat(t.map(Kd).join(", ")):"";return"SELECT\n ".concat(i,",\n TabletId,\n CPUCores,\n DataSize,\n NodeId,\n InFlightTxCount\nFROM `.sys/partition_stats`\nWHERE\n Path='").concat(e,"'\n OR Path LIKE '").concat(e,"/%'\n").concat(r,"\nLIMIT 20")}var $d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ud,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Wd.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case Wd.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Wd.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Vd:return Rt(Rt({},e),t.data);case Yd:return Rt(Rt({},e),{},{filters:Rt(Rt({},e.filters),t.filters)});default:return e}},Qd=Mo("hot_keys","FETCH_HOT_KEYS"),Xd="hot_keys/SET_HOT_KEYS_OPTIONS",Jd={loading:!0,data:{},wasLoaded:!1};var eh=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Jd,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Qd.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Qd.SUCCESS:return Rt(Rt({},e),{},{data:t.data.hotkeys,loading:!1,error:void 0,wasLoaded:!0});case Qd.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case Xd:return Rt(Rt({},e),t.data);default:return e}},th=Mo("query","SEND_OLAP_STATS_QUERY"),nh="olapStats/RESET_LOADING_STATE",ih={loading:!1,wasLoaded:!1};function rh(e){return"SELECT * FROM `".concat(e,"/.sys/primary_index_stats`")}var oh=function(e){var t=e.path,n=void 0===t?"":t;return Oo({request:window.api.sendQuery({schema:"modern",query:rh(n),database:n,action:"execute-scan"}),actions:th,dataHandler:Ui})};var ah=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ih,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case th.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case th.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case th.FAILURE:return Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case nh:return Rt(Rt({},e),{},{wasLoaded:ih.wasLoaded});default:return e}},sh="header/SET_HEADER_BREADCRUMBS",uh={pageBreadcrumbsOptions:{}};function lh(e,t){return{type:sh,page:e,options:t}}var ch=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:uh,t=arguments.length>1?arguments[1]:void 0;return t.type===sh?{page:t.page,pageBreadcrumbsOptions:t.options}:e},dh="SET_QUERY_NAME_TO_EDIT",hh="CLEAR_QUERY_NAME_TO_EDIT",fh=null;function ph(e){return{type:dh,data:e}}var vh=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:fh,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case dh:return t.data;case hh:return null;default:return e}},gh="ENABLE_FULLSCREEN_MODE",mh="DISABLE_FULLSCREEN_MODE",_h=!1;function yh(){return{type:mh}}var bh=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_h;switch((arguments.length>1?arguments[1]:void 0).type){case mh:return!1;case gh:return!0;default:return e}};var wh,Ch,kh,Sh=function(){return!(arguments.length>0&&void 0!==arguments[0])||arguments[0]},xh=function(e){for(var t=Object.keys(e),n={},i=0;i<t.length;i++){var r=t[i];0,"function"===typeof e[r]&&(n[r]=e[r])}var o,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if("undefined"===typeof n(void 0,{type:Vt.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if("undefined"===typeof n(void 0,{type:Vt.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+Vt.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')}))}(n)}catch(s){o=s}return function(e,t){if(void 0===e&&(e={}),o)throw o;for(var i=!1,r={},s=0;s<a.length;s++){var u=a[s],l=n[u],c=e[u],d=l(c,t);if("undefined"===typeof d){var h=Kt(u,t);throw new Error(h)}r[u]=d,i=i||d!==c}return i?r:e}}(Rt({},{singleClusterMode:Sh,nodes:La,cluster:Ma,clusterNodes:Aa,tenant:Wa,storage:ts,node:us,tooltip:Hs,tablets:Ks,schema:vl,overview:Cl,olapStats:ah,host:xl,network:Dl,tenants:Al,tablet:jl,topic:fc,partitions:Cc,executeQuery:Zc,explainQuery:Uc,tabletsFilters:Qc,heatmap:Zo,settings:hr,preview:td,nodesList:ad,describe:dd,schemaAcl:vd,executeTopQueries:Cd,healthcheckInfo:zd,shardsWorkload:$d,hotKeys:eh,authentication:No,header:ch,saveQuery:vh,fullscreen:bh})),Lh=xh,Eh=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||Gt;function Nh(e,t,n){var i=function(e,t){return{locationMiddleware:(0,en.zl)(jo,Ho,e,t,Yo).locationMiddleware,reducersWithLocation:Uo(jo,Ho,t)}}(t,e),r=i.locationMiddleware,o=i.reducersWithLocation,a=$t(Jt,r);return Eh(a)(Ut)(o,{singleClusterMode:n})}var Dh=window.web_version,Mh=window.custom_backend,Th=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Lh,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=nn(window.location.href,t);wh=n.backend,Ch=n.basename,kh=n.clusterName;var i=ke({basename:Ch}),r=Nh(e,i,t);return(0,en.C1)(r,i),{history:i,store:r}},Oh="tenant",Ih={cluster:"/".concat("cluster","/:activeTab?"),tenant:"/".concat(Oh),node:"/".concat("node","/:id/:activeTab?"),tablet:"/".concat("tablet","/:id"),tabletsFilters:"/tabletsFilters",auth:"/auth"},Ah=function(e){return Ft().parse(e.search,{ignoreQueryPrefix:!0})};function Ph(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n,r=Boolean(n.backend);wh&&!r&&Dh&&(i=Rt(Rt({},n),{},{backend:wh}));var o=Boolean(n.clusterName);kh&&!o&&Dh&&(i=Rt(Rt({},i),{},{clusterName:kh}));var a=Bt()(i)?"":"?".concat(Ft().stringify(i,{encode:!1}));return"".concat((0,jt.compile)(e)(t)).concat(a)}var Rh,Zh=Ih,Fh=(0,e.createContext)({activeTabId:void 0});Fh.displayName="TabsContext",function(e){e.Pending="pending",e.Success="success",e.Error="error"}(Rh||(Rh={}));var jh,Hh=n(17972),Bh=n.n(Hh),zh=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).state={status:s.INITIAL_STATUS},e.handleCopy=function(t,n){var i=e.props,r=i.timeout,o=i.onCopy;e.setState({status:n?Rh.Success:Rh.Error}),clearTimeout(e.timerId),e.timerId=window.setTimeout((function(){e.setState({status:s.INITIAL_STATUS}),e.timerId=void 0}),r),null===o||void 0===o||o(t,n)},e}return(0,r.Z)(s,[{key:"componentWillUnmount",value:function(){clearTimeout(this.timerId)}},{key:"render",value:function(){var t=this.props,n=t.children,i=t.text,r=t.options,o=n(this.state.status);if(!e.isValidElement(o))throw new Error("Content must be a valid react element");return e.createElement(Bh(),{text:String(i),onCopy:this.handleCopy,options:r},o)}}]),s}(e.Component);zh.INITIAL_STATUS=Rh.Pending;var Wh=pt("clipboard-icon"),Vh=function(t){return e.createElement("path",{stroke:"currentColor",fill:"transparent",className:Wh("state"),strokeWidth:"1.5",d:t})},Yh=(jh={},(0,xt.Z)(jh,Rh.Success,Vh("M9.5 13l3 3l5 -5")),(0,xt.Z)(jh,Rh.Error,Vh("M9.5 10l8 8m-8 0l8 -8")),jh);function Uh(t){var n=t.size,i=t.status,r=t.className;return e.createElement("svg",Object.assign({width:n,height:n,viewBox:"0 0 24 24",className:Wh(null,r)},Lr),e.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}),i===Rh.Pending?null:Yh[i])}var Kh=pt("label"),qh={xs:{copyIconSize:12,closeIconSize:8,buttonSize:"s"},s:{copyIconSize:12,closeIconSize:8,buttonSize:"s"},m:{copyIconSize:12,closeIconSize:8,buttonSize:"m"}},Gh={pin:"brick-round",className:Kh("addon",{side:"right",interactive:!0})},$h=e.forwardRef((function(t,n){var i=t.type,r=void 0===i?"default":i,o=t.theme,a=void 0===o?"normal":o,s=t.size,u=void 0===s?"xs":s,l=t.style,c=void 0===l?"default":l,d=t.icon,h=t.children,f=t.onClose,p=t.className,v=t.disabled,g=t.copyText,m=t.closeButtonLabel,_=t.copyButtonLabel,y=t.interactive,b=void 0!==y&&y,w=t.onCopy,C=t.onClick,k=Boolean(""!==h&&e.Children.count(h)>0),S="close"===r&&k,x="copy"===r&&k,L=Boolean(C),E=Boolean(x&&g),N=L||E||b,D=qh[u],M=D.copyIconSize,T=D.closeIconSize,O=D.buttonSize,I=d&&e.createElement("div",{className:Kh("addon",{side:k?"left":void 0})},d),A=k&&e.createElement("div",{className:Kh("text")},h),P=function(e){L&&e.stopPropagation(),f&&f(e)},R=function(t){var i;return x?i=e.createElement(zr,Object.assign({size:O,extraProps:{"aria-label":_||void 0}},Gh),e.createElement(zr.Icon,null,e.createElement(Uh,{status:t||Rh.Pending,size:M}))):S&&(i=e.createElement(zr,Object.assign({onClick:f?P:void 0,size:O,extraProps:{"aria-label":m||void 0}},Gh),e.createElement(Mr,{size:T,data:Ur}))),e.createElement("div",{ref:n,onClick:L?C:void 0,className:Kh({theme:a,size:u,style:c,type:r,"is-interactive":N,"has-right-addon":Boolean(i),"has-left-addon":Boolean(I),disabled:v},p)},I,A,i)};return E&&g?e.createElement(zh,{text:g,onCopy:w,timeout:1e3},(function(e){return R(e)})):R()})),Qh=pt("tabs"),Xh=function(t){var n=t.id,i=t.className,r=t.title,o=t.meta,a=t.hint,s=t.icon,u=t.counter,l=t.label,c=t.active,d=t.disabled,h=t.hasOverflow,f=t.extraProps,p=t.onClick,v=(0,e.useContext)(Fh).activeTabId,g="boolean"===typeof c?c:v===n,m=(0,e.useMemo)((function(){return void 0!==a?a:"string"===typeof r?r:void 0}),[a,r]);return e.createElement("div",Object.assign({},f,{role:"tab","aria-selected":g,"aria-disabled":!0===d,tabIndex:d?-1:0,className:Qh("item",{active:g,disabled:d,overflow:Boolean(h)},i),title:m,onClick:function(){p(n)},onKeyDown:function(e){" "===e.key&&p(n)}}),e.createElement("div",{className:Qh("item-content")},s&&e.createElement("div",{className:Qh("item-icon")},s),e.createElement("div",{className:Qh("item-title")},r||n),"number"===typeof u&&e.createElement("div",{className:Qh("item-counter")},u),l&&e.createElement($h,{className:Qh("item-label"),theme:l.theme},l.content)),o&&e.createElement("div",{className:Qh("item-meta")},o))};Xh.displayName="Tabs.Item";var Jh,ef=pt("tabs");!function(e){e.Horizontal="horizontal",e.Vertical="vertical"}(Jh||(Jh={}));var tf=[],nf=(0,e.forwardRef)((function(t,n){var i=t.direction,r=void 0===i?Jh.Horizontal:i,o=t.size,a=void 0===o?"m":o,s=t.activeTab,u=t.allowNotSelected,l=void 0!==u&&u,c=t.items,d=void 0===c?tf:c,h=t.children,f=t.className,p=t.onSelectTab,v=t.wrapTo,g=t.qa,m=function(e,t,n){var i;return e||(t||0===(null===n||void 0===n?void 0:n.length)||null===(i=null===n||void 0===n?void 0:n[0])||void 0===i?void 0:i.id)}(s,l,d),_=(0,e.useMemo)((function(){return{activeTabId:m}}),[m]),y=(0,e.useMemo)((function(){var t=function(e){p&&p(e)};return d.map((function(n,i){var r=e.createElement(Xh,Object.assign({key:n.id},n,{onClick:t}));return v?v(n,r,i):r}))}),[d,p,v]);return e.createElement("div",{role:"tablist",className:ef({direction:r,size:a},f),"data-qa":g,ref:n},e.createElement(Fh.Provider,{value:_},h||y))}));nf.displayName="Tabs";var rf=Object.assign(nf,{Item:Xh}),of=function(e){var t=e;/\d{1,}-\d{1,}(-\d){0,}(-hotfix-\d{1,}(-\d{1,})?)?\.[0-9a-zA-Z]+$/.test(e)&&(t=t.replace(/(-hotfix-\d{1,}(-\d{1,})?)?\.[0-9a-zA-Z]+$/,""));return/\d{1,}-\d{1,}-\d{1,}-\d{1,}$/.test(e)&&(t=t.replace(/-\d{1,}$/,"")),t},af=function(e){var t=of(e);return/\d{1,}-\d{1,}-\d{1,}/.test(t)?t.replace(/-\d{1,}$/,""):t},sf=function(e){return e.split("").reduce((function(e,t){var n=(e<<5)-e+t.charCodeAt(0);return n&n}),0)},uf=["#008000","#4169e1","#ffd700","#ff8c00","#808000","#e9967a","#ff1493","#00bfff","#da70d6","#3cb371","#b22222"],lf=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Map;return e.forEach((function(e){var n,i=af(e),r=of(e);t.has(i)||t.set(i,new Set),null===(n=t.get(i))||void 0===n||n.add(r)})),t},cf=function(e){var t=Array.from(e.keys()).map((function(e){return{version:e,hash:sf(e)}})),n=new Map,i=uf.length-1;return t.sort((function(e,t){return e.hash-t.hash})).forEach((function(t){if(/^(\w+-)?stable/.test(t.version)){i=(i+1)%uf.length,n.set(t.version,uf[i]);var r=Array.from(e.get(t.version)||[]).filter((function(e){return e!==t.version})).map((function(e){return{version:e,hash:sf(e)}})),o=r.length;r.sort((function(e,t){return t.hash-e.hash})).forEach((function(e,t){var r=uf[i],a=Math.max(100-t*(100/o),20),s=Math.round(255*a/100).toString(16),u="".concat(r).concat(s);n.set(e.version,u)}))}else n.set(t.version,"#bfbfbf")})),n},df=function(){return cf(lf(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]))},hf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=e.reduce((function(e,t){return t.Version&&(e[t.Version]?e[t.Version]=e[t.Version]+1:e[t.Version]=1),e}),{});return Object.keys(n).map((function(i){return{title:i,version:i,color:null===t||void 0===t?void 0:t.get(of(i)),value:n[i]/e.length*100}}))},ff=function(){function e(){(0,i.Z)(this,e),this.timeout=void 0,this.active=void 0,this.timer=void 0,this.launchCounter=void 0,this.timeout=e.DEFAULT_TIMEOUT,this.active=!0,this.timer=void 0,this.launchCounter=0}return(0,r.Z)(e,[{key:"wait",value:function(e){var t=this;return new Promise((function(n){t.timer=setTimeout(n,e)}))}},{key:"fetch",value:function(){var t=bi(ki().mark((function t(n){var i,r,o,a,s;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.active){t.next=2;break}return t.abrupt("return");case 2:return i=this.launchCounter,t.next=5,this.wait(this.timeout);case 5:if(!this.active){t.next=18;break}return r=Date.now(),t.next=9,n();case 9:if(o=Date.now(),i===this.launchCounter){t.next=12;break}return t.abrupt("return");case 12:s=(a=o-r)>e.MIN_TIMEOUT?a:e.MIN_TIMEOUT,this.timeout=s,this.fetch(n),t.next=19;break;case 18:return t.abrupt("return");case 19:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"stop",value:function(){this.timer&&clearTimeout(this.timer),this.active=!1}},{key:"start",value:function(){this.launchCounter++,this.active=!0}}]),e}();ff.DEFAULT_TIMEOUT=3e4,ff.MIN_TIMEOUT=3e4;var pf=function(t,n){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,e.useRef)(null);null===r.current&&(r.current=new ff);var o=r.current;(0,e.useEffect)((function(){t(!1)}),n),(0,e.useEffect)((function(){return o.stop(),i&&(o.start(),o.fetch((function(){return t(!0)}))),function(){o.stop()}}),[i].concat((0,Lt.Z)(n)))},vf=te,gf=function(t,n){var i=Q();return[vf((function(e){var i;return null!==(i=lr(e,t))&&void 0!==i?i:n})),(0,e.useCallback)((function(e){var n="string"===typeof e?e:JSON.stringify(e);i(ur(t,n))}),[i,t])]};e.Component;e.Component;var mf=function(e,t){return"function"===typeof e?e(t):e},_f=function(e,t){return"string"===typeof e?ge(e,null,null,t):e},yf=function(e){return e},bf=e.forwardRef;"undefined"===typeof bf&&(bf=yf);var wf=bf((function(t,n){var i=t.innerRef,r=t.navigate,o=t.onClick,a=(0,v.Z)(t,["innerRef","navigate","onClick"]),s=a.target,u=(0,p.Z)({},a,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||s&&"_self"!==s||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=yf!==bf&&n||i,e.createElement("a",u)}));var Cf=bf((function(t,n){var i=t.component,r=void 0===i?wf:i,o=t.replace,a=t.to,s=t.innerRef,u=(0,v.Z)(t,["component","replace","to","innerRef"]);return e.createElement(Be.Consumer,null,(function(t){t||ce(!1);var i=t.history,l=_f(mf(a,t.location),t.location),c=l?i.createHref(l):"",d=(0,p.Z)({},u,{href:c,navigate:function(){var e=mf(a,t.location),n=ve(t.location)===ve(_f(e));(o||n?i.replace:i.push)(e)}});return yf!==bf?d.ref=n||s:d.innerRef=s,e.createElement(r,d)}))})),kf=function(e){return e},Sf=e.forwardRef;"undefined"===typeof Sf&&(Sf=kf);Sf((function(t,n){var i=t["aria-current"],r=void 0===i?"page":i,o=t.activeClassName,a=void 0===o?"active":o,s=t.activeStyle,u=t.className,l=t.exact,c=t.isActive,d=t.location,h=t.sensitive,f=t.strict,g=t.style,m=t.to,_=t.innerRef,y=(0,v.Z)(t,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return e.createElement(Be.Consumer,null,(function(t){t||ce(!1);var i=d||t.location,o=_f(mf(m,i),i),v=o.pathname,b=v&&v.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),w=b?Xe(i.pathname,{path:b,exact:l,sensitive:h,strict:f}):null,C=!!(c?c(w,i):w),k="function"===typeof u?u(C):u,S="function"===typeof g?g(C):g;C&&(k=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(k,a),S=(0,p.Z)({},S,s));var x=(0,p.Z)({"aria-current":C&&r||null,className:k,style:S,to:o},y);return kf!==Sf?x.ref=n||_:x.innerRef=_,e.createElement(Cf,x)}))}));var xf,Lf=["className","to","onClick"],Ef=(0,ct.default)("yc-link"),Nf=function(e){var t=e.className,n=e.to,i=e.onClick,r=rn(e,Lf);return n?(0,fs.jsx)(Cf,Rt({to:n,onClick:i,className:Ef({view:"normal"},t)},r)):(0,fs.jsx)("span",{className:t,onClick:i,children:r.children})},Df=pt("link"),Mf=e.forwardRef((function(t,n){var i=t.view,r=void 0===i?"normal":i,o=t.href,a=t.target,s=t.rel,u=t.title,l=t.children,c=t.extraProps,d=t.onClick,h=t.onFocus,f=t.onBlur,p=t.id,v=t.style,g=t.className,m=t.qa,_={title:u,children:l,onClick:d,onClickCapture:e.useCallback((function(e){Pr.publish({componentId:"Link",eventId:"click",domEvent:e})}),[]),onFocus:h,onBlur:f,id:p,style:v,className:Df({view:r},g),"data-qa":m};if("string"===typeof o){var y="_blank"!==a||s?s:"noopener noreferrer";return e.createElement("a",Object.assign({},c,_,{ref:n,href:o,target:a,rel:y}))}return e.createElement("span",Object.assign({},c,_,{ref:n,tabIndex:0}))})),Tf=pt("clipboard-button"),Of=24,If=1e3;function Af(t){var n=t.text,i=t.size,r=void 0===i?Of:i,o=t.className,a=t.qa,s=t.onCopy,u=t.timeout,l=void 0===u?If:u,c=t.options,d=(0,e.useRef)(null);return(0,e.useEffect)((function(){var e;null===(e=null===d||void 0===d?void 0:d.current)||void 0===e||e.style.setProperty("--yc-button-height","".concat(r,"px"))}),[r]),e.createElement(zh,{text:n,timeout:l,onCopy:s,options:c},(function(t){return e.createElement(zr,{ref:d,view:"flat",className:Tf(null,o),qa:a},e.createElement(zr.Icon,null,e.createElement(Uh,{status:t,size:r,className:Tf("icon")})))}))}function Pf(){return Pf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Pf.apply(this,arguments)}var Rf,Zf=function(t){return e.createElement("svg",Pf({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),xf||(xf=e.createElement("path",{d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z"})))};function Ff(){return Ff=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Ff.apply(this,arguments)}var jf,Hf=function(t){return e.createElement("svg",Ff({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Rf||(Rf=e.createElement("path",{d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm-24 152c0-13.2 10.8-24 24-24s24 10.75 24 24v128c0 13.25-10.75 24-24 24s-24-10.7-24-24V152zm24 248c-17.36 0-31.44-14.08-31.44-31.44s14.07-31.44 31.44-31.44 31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"})))};function Bf(){return Bf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Bf.apply(this,arguments)}var zf,Wf=function(t){return e.createElement("svg",Bf({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),jf||(jf=e.createElement("path",{d:"M506.3 417L293 53c-16.33-28-57.54-28-73.98 0L5.82 417c-16.41 27.9 4.029 63 36.92 63h426.6c32.76 0 53.26-35 36.96-63zM232 168c0-13.25 10.75-24 24-24s24 10.8 24 24v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zm24 248c-17.36 0-31.44-14.08-31.44-31.44s14.07-31.44 31.44-31.44 31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"})))};function Vf(){return Vf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Vf.apply(this,arguments)}var Yf=function(t){return e.createElement("svg",Vf({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),zf||(zf=e.createElement("path",{d:"M0 256C0 114.6 114.6 0 256 0s256 114.6 256 256-114.6 256-256 256S0 397.4 0 256zm175-47.9l47.1 47L175 303c-9.3 9.4-9.3 24.6 0 33.1 9.4 10.2 24.6 10.2 33.1 0l47-46.2 47.9 46.2c9.4 10.2 24.6 10.2 33.1 0 10.2-8.5 10.2-23.7 0-33.1l-46.2-47.9 46.2-47c10.2-8.5 10.2-23.7 0-33.1-8.5-9.3-23.7-9.3-33.1 0l-47.9 47.1-47-47.1c-8.5-9.3-23.7-9.3-33.1 0-9.3 9.4-9.3 24.6 0 33.1z"})))},Uf={BLUE:Zf,YELLOW:Hf,ORANGE:Wf,RED:Yf},Kf=(0,ct.default)("entity-status"),qf=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"renderIcon",value:function(){var e=this.props,t=e.status,n=e.size,i=e.showStatus,r=e.mode;if(!i)return null;var o={state:t.toLowerCase(),size:n};return"icons"===r&&Uf[t]?(0,fs.jsx)(Mr,{className:Kf("status-icon",o),data:Uf[t]}):(0,fs.jsx)("div",{className:Kf("status-color",o)})}},{key:"renderStatusLink",value:function(){var e=this.props.iconPath;return(0,fs.jsx)(Mf,{target:"_blank",href:e,children:this.renderIcon()})}},{key:"renderLink",value:function(){var e=this.props,t=e.externalLink,n=e.name,i=e.path,r=e.onNameMouseEnter,o=e.onNameMouseLeave;return t?(0,fs.jsx)(Mf,{className:Kf("name"),href:i,children:n}):i?(0,fs.jsx)(Cf,{className:Kf("name"),to:i,onMouseEnter:r,onMouseLeave:o,children:n}):n&&(0,fs.jsx)("span",{className:Kf("name"),onMouseEnter:r,onMouseLeave:o,children:n})}},{key:"render",value:function(){var e=this.props,t=e.name,n=e.label,i=e.iconPath,r=e.hasClipboardButton,o=e.className;return(0,fs.jsxs)("div",{className:Kf(null,o),title:t,children:[i?this.renderStatusLink():this.renderIcon(),n&&(0,fs.jsx)("span",{title:n,className:Kf("label"),children:n}),(0,fs.jsx)("span",{className:Kf("link",{"with-left-trim":this.props.withLeftTrim}),children:this.renderLink()}),r&&(0,fs.jsx)(zr,{component:"span",size:"s",className:Kf("clipboard-button",{visible:this.props.clipboardButtonAlwaysVisible}),children:(0,fs.jsx)(Af,{text:t,size:16})})]})}}]),n}(e.Component);qf.defaultProps={status:"gray",text:"",size:"s",label:"",showStatus:!0,externalLink:!1,mode:"color",withLeftTrim:!1,clipboardButtonAlwaysVisible:!1};var Gf=qf,$f=n(74318);function Qf(e){return{appear:gt(e({appear:!0})),appearActive:gt(e({appear:"active"})),appearDone:gt(e({appear:"done"})),enter:gt(e({enter:!0})),enterActive:gt(e({enter:"active"})),enterDone:gt(e({enter:"done"})),exit:gt(e({exit:!0})),exitActive:gt(e({exit:"active"})),exitDone:gt(e({exit:"done"}))}}var Xf=function(){function e(){var t=this;(0,i.Z)(this,e),this.stack=[],this.handleDocumentKeyDown=function(e){var n,i,r;if("Escape"===e.code){var o=t.getTopLayer();o.disableEscapeKeyDown||(null===(n=o.onEscapeKeyDown)||void 0===n||n.call(o,e),null===(i=o.onClose)||void 0===i||i.call(o,e,"escapeKeyDown"))}if("Enter"===e.code){var a=t.getTopLayer();null===(r=a.onEnterKeyDown)||void 0===r||r.call(a,e)}},this.handleDocumentClick=function(e){var n,i,r,o=null;if(t.mouseDownLayerTarget){if(r=t.mouseDownLayerTarget.layer,o=t.mouseDownLayerTarget.target,t.mouseDownLayerTarget=void 0,!t.stack.includes(r))return}else r=t.getTopLayer();!r.disableOutsideClick&&t.isOutsideClick(r,e,o)&&(null===(n=r.onOutsideClick)||void 0===n||n.call(r,e),null===(i=r.onClose)||void 0===i||i.call(r,e,"outsideClick"))},this.handleDocumentMouseDown=function(e){var n=t.getTopLayer();n&&(t.mouseDownLayerTarget={layer:n,target:e.target})}}return(0,r.Z)(e,[{key:"add",value:function(e){this.stack.push(e),1===this.stack.length&&this.addListeners()}},{key:"remove",value:function(e){var t=this.stack.indexOf(e);this.stack.splice(t,1),0===this.stack.length&&this.removeListeners()}},{key:"addListeners",value:function(){document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("click",this.handleDocumentClick,!0),document.addEventListener("mousedown",this.handleDocumentMouseDown,!0)}},{key:"removeListeners",value:function(){document.removeEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("click",this.handleDocumentClick,!0),document.removeEventListener("mousedown",this.handleDocumentMouseDown,!0)}},{key:"getTopLayer",value:function(){return this.stack[this.stack.length-1]}},{key:"isOutsideClick",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=e.contentRefs||[],r=t.target,o="function"===typeof t.composedPath?t.composedPath():[];if(i.length>0){var a=i.some((function(e){var t,i,a,s;return(null===(i=null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.contains)||void 0===i?void 0:i.call(t,r))||(null===(s=null===(a=null===e||void 0===e?void 0:e.current)||void 0===a?void 0:a.contains)||void 0===s?void 0:s.call(a,n))||o.includes(null===e||void 0===e?void 0:e.current)}));return!a}return!1}}]),e}(),Jf=new Xf;function ep(t){var n=t.open,i=t.disableEscapeKeyDown,r=t.disableOutsideClick,o=t.onEscapeKeyDown,a=t.onEnterKeyDown,s=t.onOutsideClick,u=t.onClose,l=t.contentRefs,c=t.enabled,d=void 0===c||c,h=e.useRef({disableEscapeKeyDown:i,disableOutsideClick:r,onEscapeKeyDown:o,onEnterKeyDown:a,onOutsideClick:s,onClose:u,contentRefs:l});e.useEffect((function(){Object.assign(h.current,{disableEscapeKeyDown:i,disableOutsideClick:r,onEscapeKeyDown:o,onEnterKeyDown:a,onOutsideClick:s,onClose:u,contentRefs:l,enabled:d})}),[i,r,o,a,s,u,l,d]),e.useEffect((function(){if(n&&d){var e=h.current;return Jf.add(e),function(){Jf.remove(e)}}}),[n,d])}var tp=n(23428),np=["bottom-start","bottom","bottom-end","top-start","top","top-end","right-start","right","right-end","left-start","left","left-end"];function ip(e,t){"function"===typeof e?e(t):e&&(e.current=t)}function rp(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.useMemo((function(){return n.every((function(e){return null===e||void 0===e}))?null:function(e){for(var t=0,i=n;t<i.length;t++){ip(i[t],e)}}}),n)}var op=n(22020);function ap(t){var n=t.enabled,i=t.restoreFocusRef,r=t.focusTrapped,o=e.useRef(null),a=e.useRef(null),s=e.useRef(null);return e.useEffect((function(){if(n){var e=function(e){var t=e.target;!r&&t instanceof HTMLElement&&(0,op.isTabbable)(t)&&(s.current=t)},t=function(e){var t=e.target;t instanceof HTMLElement&&(0,op.isTabbable)(t)?s.current=t:s.current=null};return window.addEventListener("focusin",e),window.addEventListener("mousedown",t),window.addEventListener("touchstart",t),function(){window.removeEventListener("focusin",e),window.removeEventListener("mousedown",t),window.removeEventListener("touchstart",t)}}}),[n,r]),e.useEffect((function(){var e;o.current=null!==(e=(null===i||void 0===i?void 0:i.current)||a.current)&&void 0!==e?e:null})),e.useEffect((function(){if(n)return function(){var e=o.current,t=s.current;t&&document.contains(t)&&(0,op.isTabbable)(t)&&(e=t),e&&"function"===typeof e.focus&&document.contains(e)&&(0,op.isFocusable)(e)&&(e!==document.activeElement&&setTimeout((function(){null===e||void 0===e||e.focus()}),0),a.current=null,s.current=null)}}),[n]),{onFocus:function(e){n&&null===a.current&&(a.current=e.relatedTarget,s.current=a.current)}}}var sp=pt("popup");function up(t){var n=t.styles,i=t.attributes,r=t.setArrowRef;return e.createElement("div",Object.assign({"data-popper-arrow":!0,ref:r,className:sp("arrow"),style:n},i),e.createElement("div",{className:sp("arrow-content")},e.createElement("div",{className:sp("arrow-circle-wrapper")},e.createElement("div",{className:sp("arrow-circle",{left:!0})})),e.createElement("div",{className:sp("arrow-circle-wrapper")},e.createElement("div",{className:sp("arrow-circle",{right:!0})}))))}var lp=n(69171);function cp(){return e.useRef("".concat(ht,"uniq-").concat(Fr++)).current}var dp=e.createContext(void 0);function hp(t){var n=t.children,i=t.enabled,r=void 0===i||i,o=t.disableAutoFocus,a=e.useRef(null),s=e.useRef(!o);e.useEffect((function(){s.current=!o}));var u=e.useRef();u.current||(u.current=(0,lp.createFocusTrap)([],{initialFocus:function(){return s.current&&function(e){if(null===e)throw new Error("");if(!(document.activeElement instanceof HTMLElement)||!e.contains(document.activeElement))return e.hasAttribute("tabIndex")||e.setAttribute("tabIndex","-1"),e;return document.activeElement}(a.current)},fallbackFocus:function(){return a.current},returnFocusOnDeactivate:!1,escapeDeactivates:!1,clickOutsideDeactivates:!1,allowOutsideClick:!0}));var l=e.useRef({}),c=e.useCallback((function(){var e;null===(e=u.current)||void 0===e||e.updateContainerElements([a.current].concat((0,Lt.Z)(Object.values(l.current))))}),[]),d=e.useMemo((function(){return{addNode:function(e,t){var n;l.current[e]===t||(null===(n=a.current)||void 0===n?void 0:n.contains(t))||(l.current[e]=t,c())},removeNode:function(e){l.current[e]&&(delete l.current[e],c())}}}),[c]),h=e.useCallback((function(e){var t,n;r&&e?(a.current=e,c(),null===(t=u.current)||void 0===t||t.activate()):(null===(n=u.current)||void 0===n||n.deactivate(),a.current=null)}),[r,c]),f=e.Children.only(n);if(!e.isValidElement(f))throw new Error("Children must contain only one valid element");var p=rp(h,f.ref);return e.createElement(dp.Provider,{value:d},e.cloneElement(f,{ref:p}))}var fp=pt("popup"),pp=pt("popup-wrapper"),vp=8;function gp(t){var n=t.keepMounted,i=void 0!==n&&n,r=t.hasArrow,o=void 0!==r&&r,a=t.offset,s=void 0===a?[0,4]:a,u=t.open,l=t.placement,c=t.anchorRef,d=t.disableEscapeKeyDown,h=t.disableOutsideClick,f=t.disableLayer,p=t.style,v=t.className,g=t.modifiers,m=void 0===g?[]:g,_=t.children,y=t.onEscapeKeyDown,b=t.onOutsideClick,w=t.onClose,C=t.onClick,k=t.onMouseEnter,S=t.onMouseLeave,x=t.disablePortal,L=t.container,E=t.strategy,N=t.qa,D=t.restoreFocus,M=t.restoreFocusRef,T=e.useRef(null);ep({open:u,disableEscapeKeyDown:d,disableOutsideClick:h,onEscapeKeyDown:y,onOutsideClick:b,onClose:w,contentRefs:[c,T],enabled:!f});var O=function(t){var n=t.anchorRef,i=t.placement,r=void 0===i?np:i,o=t.offset,a=t.modifiers,s=void 0===a?[]:a,u=t.strategy,l=t.altBoundary,c=e.useState(null),d=(0,dt.Z)(c,2),h=d[0],f=d[1],p=e.useState(null),v=(0,dt.Z)(p,2),g=v[0],m=v[1],_=Array.isArray(r)?r:[r],y=(0,tp.D)(null===n||void 0===n?void 0:n.current,h,{strategy:u,modifiers:[{name:"arrow",options:{element:g}},{name:"offset",options:{offset:o,altBoundary:l}},{name:"flip",options:{fallbackPlacements:_.slice(1),altBoundary:l}}].concat((0,Lt.Z)(s)),placement:_[0]});return{attributes:y.attributes,styles:y.styles,setPopperRef:f,setArrowRef:m}}({anchorRef:c,placement:l,offset:o?[s[0],s[1]+vp]:s,strategy:E,altBoundary:x,modifiers:[{name:"arrow",options:{enabled:o,padding:4}},{name:"preventOverflow",options:{padding:1,altBoundary:x}}].concat((0,Lt.Z)(m))}),I=O.attributes,A=O.styles,P=O.setPopperRef,R=O.setArrowRef,Z=rp(P,T,function(){var t=(0,e.useContext)(dp),n=cp();return e.useMemo((function(){if(t)return function(e){e?t.addNode(n,e):t.removeNode(n)}}),[t,n])}()),F=ap({enabled:Boolean(D&&u),restoreFocusRef:M});return e.createElement(fo,{container:L,disablePortal:x},e.createElement($f.Z,{nodeRef:T,in:u,addEndListener:function(e){var t;return null===(t=T.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:Qf(pp),mountOnEnter:!i,unmountOnExit:!i,appear:!0},e.createElement("div",Object.assign({ref:Z,style:A.popper},I.popper,F,{className:pp({open:u})}),e.createElement("div",{onClick:C,onMouseEnter:k,onMouseLeave:S,className:fp({open:u},v),style:p,"data-qa":N},o&&e.createElement(up,{styles:A.arrow,attributes:I.arrow,setArrowRef:R}),_))))}var mp,_p,yp,bp=["children","content","className","hasArrow","placement"],wp=function(t){var n=t.children,i=t.content,r=t.className,o=t.hasArrow,a=void 0===o||o,s=t.placement,u=void 0===s?["top","bottom"]:s,l=rn(t,bp),c=(0,e.useState)(!1),d=(0,dt.Z)(c,2),h=d[0],f=d[1],p=(0,e.useRef)(null);return(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)(gp,Rt(Rt({anchorRef:p,open:h,placement:u,hasArrow:a},l),{},{children:i})),(0,fs.jsx)("span",{className:r,ref:p,onMouseEnter:function(){f(!0)},onMouseLeave:function(){f(!1)},children:n})]})},Cp=(0,ct.default)("ydb-pool-bar"),kp=function(e){var t=e.data,n=void 0===t?{}:t,i=n.Usage,r=void 0===i?0:i,o=Math.min(100*r,100),a=function(e){return e>=75?"danger":e>=50&&e<75?"warning":"normal"}(o);return(0,fs.jsx)(wp,{className:Cp({type:a}),content:(0,fs.jsx)(xs,{data:n,className:Cp("popup-content")}),children:(0,fs.jsx)("div",{style:{height:"".concat(o,"%")},className:Cp("value",{type:a})})})},Sp=(0,ct.default)("ydb-pools-graph"),xp=function(e){var t=e.pools,n=void 0===t?[]:t;return(0,fs.jsx)("div",{className:Sp(),children:n.map((function(e,t){return(0,fs.jsx)(kp,{data:e},t)}))})};!function(e){e.Unknown="Unknown",e.OldSchemeShard="OldSchemeShard",e.OldDataShard="OldDataShard",e.OldHive="OldHive",e.OldCoordinator="OldCoordinator",e.Mediator="Mediator",e.OldTxProxy="OldTxProxy",e.OldBSController="OldBSController",e.Dummy="Dummy",e.RTMRPartition="RTMRPartition",e.OldKeyValue="OldKeyValue",e.KeyValue="KeyValue",e.Coordinator="Coordinator",e.Hive="Hive",e.BSController="BSController",e.SchemeShard="SchemeShard",e.TxProxy="TxProxy",e.DataShard="DataShard",e.PersQueue="PersQueue",e.Cms="Cms",e.NodeBroker="NodeBroker",e.TxAllocator="TxAllocator",e.PersQueueReadBalancer="PersQueueReadBalancer",e.BlockStoreVolume="BlockStoreVolume",e.BlockStorePartition="BlockStorePartition",e.TenantSlotBroker="TenantSlotBroker",e.Console="Console",e.Kesus="Kesus",e.BlockStorePartition2="BlockStorePartition2",e.BlockStoreDiskRegistry="BlockStoreDiskRegistry",e.SysViewProcessor="SysViewProcessor",e.FileStore="FileStore",e.ColumnShard="ColumnShard",e.TestShard="TestShard",e.SequenceShard="SequenceShard",e.ReplicationController="ReplicationController",e.BlobDepot="BlobDepot",e.UserTypeStart="UserTypeStart",e.TypeInvalid="TypeInvalid"}(mp||(mp={})),function(e){e.Created="Created",e.ResolveStateStorage="ResolveStateStorage",e.Candidate="Candidate",e.BlockBlobStorage="BlockBlobStorage",e.RebuildGraph="RebuildGraph",e.WriteZeroEntry="WriteZeroEntry",e.Restored="Restored",e.Discover="Discover",e.Lock="Lock",e.Dead="Dead",e.Active="Active",e.ResolveLeader="ResolveLeader",e.Deleted="Deleted",e.Stopped="Stopped"}(_p||(_p={}));var Lp=(yp={},(0,xt.Z)(yp,_p.Dead,Bo.Red),(0,xt.Z)(yp,_p.Created,Bo.Yellow),(0,xt.Z)(yp,_p.ResolveStateStorage,Bo.Yellow),(0,xt.Z)(yp,_p.Candidate,Bo.Yellow),(0,xt.Z)(yp,_p.BlockBlobStorage,Bo.Yellow),(0,xt.Z)(yp,_p.WriteZeroEntry,Bo.Yellow),(0,xt.Z)(yp,_p.Restored,Bo.Yellow),(0,xt.Z)(yp,_p.Discover,Bo.Yellow),(0,xt.Z)(yp,_p.Lock,Bo.Yellow),(0,xt.Z)(yp,_p.Stopped,Bo.Yellow),(0,xt.Z)(yp,_p.ResolveLeader,Bo.Yellow),(0,xt.Z)(yp,_p.RebuildGraph,Bo.Yellow),(0,xt.Z)(yp,_p.Deleted,Bo.Green),(0,xt.Z)(yp,_p.Active,Bo.Green),yp),Ep=Object.keys(_p),Np=Object.entries(Lp).reduce((function(e,t){var n=(0,dt.Z)(t,2),i=n[0],r=n[1];return e[r]?e[r].push(i):e[r]=[i],e}),{}),Dp=function(e){if(!e)return Bo.Grey;return function(e){return Object.values(Bo).includes(e)}(e)?e:Lp[e]},Mp=(0,ct.default)("tablets-statistic"),Tp=function(e){var t=e.tablets,n=void 0===t?[]:t,i=e.path,r=e.nodeIds,o=e.backend,a=function(e){var t=e.map((function(e){return{label:$n(e.Type),type:e.Type,count:e.Count,state:Dp(e.State)}}));return t.sort((function(e,t){return String(e.label).localeCompare(String(t.label))}))}(n);return(0,fs.jsx)("div",{className:Mp(),children:a.map((function(e,t){var n,a=Ph(Zh.tabletsFilters,void 0,{nodeIds:r,state:e.state,type:e.type,path:i,backend:o}),s="".concat(e.label,": ").concat(e.count),u=Mp("tablet",{state:null===(n=e.state)||void 0===n?void 0:n.toLowerCase()});return o?(0,fs.jsx)("a",{href:a,className:u,children:s},t):(0,fs.jsx)(Cf,{to:a,className:u,children:s},t)}))})};var Op=pt("radio-button"),Ip=e.forwardRef((function(t,n){var i=t.disabled,r=void 0!==i&&i,o=t.content,a=t.children,s=function(t){var n=t.name,i=t.value,r=t.checked,o=t.defaultChecked,a=t.disabled,s=t.controlRef,u=t.controlProps,l=t.onUpdate,c=t.onChange,d=t.onFocus,h=t.onBlur,f=t.id,p=cp(),v=e.useRef(null),g=e.useState(null!==o&&void 0!==o&&o),m=(0,dt.Z)(g,2),_=m[0],y=m[1],b="boolean"===typeof r,w=b?r:_,C=rp(s,v);return{checked:w,inputProps:Object.assign(Object.assign({},u),{name:n||p,value:i,id:f,onFocus:d,onBlur:h,disabled:a,type:"radio",onChange:function(e){b||y(e.target.checked),c&&c(e),l&&l(e.target.checked)},onChangeCapture:function(e){Pr.publish({componentId:"Radio",eventId:"click",domEvent:e})},checked:r,defaultChecked:o,"aria-checked":w,ref:C})}}(t),u=s.checked,l=s.inputProps,c=o||a,d=jr(c);return e.createElement("label",{className:Op("option",{disabled:r,checked:u}),ref:n},e.createElement("input",Object.assign({},l,{className:Op("option-control")})),e.createElement("span",{className:Op("option-outline")}),c&&e.createElement("span",{className:Op("option-text",{icon:d})},c))}));var Ap=pt("radio-button"),Pp=e.forwardRef((function(t,n){var i=t.size,r=void 0===i?"m":i,o=t.width,a=t.style,s=t.className,u=t.qa,l=t.children,c=t.options;c||(c=e.Children.toArray(l).map((function(e){var t=e.props;return{value:t.value,content:t.content||t.children,disabled:t.disabled}})));var d=(0,e.useRef)(null),h=(0,e.useRef)(),f=(0,e.useCallback)((function(e){if(e){var t=d.current;if(t){var n=h.current;if(n&&n!==e){var i=function(e){t.style.left="".concat(e.offsetLeft,"px"),t.style.width="".concat(e.offsetWidth,"px")};i(n),t.hidden=!1,i(e)}h.current=e}}}),[]),p=(0,e.useCallback)((function(e){e.currentTarget.hidden=!0}),[]),v=function(t){var n,i,r=t.name,o=t.value,a=t.defaultValue,s=t.options,u=void 0===s?[]:s,l=t.disabled,c=t.onUpdate,d=t.onChange,h=t.onFocus,f=t.onBlur,p=cp(),v=e.useState(null!==a&&void 0!==a?a:null===(i=null===(n=u[0])||void 0===n?void 0:n.value)||void 0===i?void 0:i.toString()),g=(0,dt.Z)(v,2),m=g[0],_=g[1],y="string"===typeof o,b=y?o:m,w=e.useCallback((function(e){y||_(e.target.value),d&&d(e),c&&c(e.target.value)}),[y,c,d]);return{containerProps:{role:"radiogroup","aria-disabled":l,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"]},optionsProps:u.map((function(e){return{name:r||p,value:String(e.value),content:e.content,checked:b===String(e.value),disabled:l||e.disabled,onChange:w,onFocus:h,onBlur:f}}))}}(Object.assign(Object.assign({},t),{options:c})),g=v.containerProps,m=v.optionsProps;return e.createElement("div",Object.assign({},g,{ref:n,style:a,className:Ap({size:r,width:o},s),"data-qa":u}),e.createElement("div",{ref:d,className:Ap("plate"),onTransitionEnd:p,hidden:!0}),m.map((function(t){return e.createElement(Ip,Object.assign({},t,{key:t.value,ref:t.checked?f:void 0}))})))}));Pp.Option=Ip;var Rp=function(e){var t=e.value,n=e.onChange,i=e.className;return(0,fs.jsxs)(Pp,{value:t,onUpdate:n,className:i,children:[(0,fs.jsx)(Pp.Option,{value:ir.ALL,children:ir.ALL}),(0,fs.jsx)(Pp.Option,{value:ir.PROBLEMS,children:ir.PROBLEMS})]})};function Zp(){return e.useContext(kt).themeValue}var Fp=["name","className"],jp={light:{403:function(){return n.e(1058).then(n.bind(n,11058))},thumbsUp:function(){return n.e(6550).then(n.bind(n,26550))}},dark:{403:function(){return n.e(2991).then(n.bind(n,22991))},thumbsUp:function(){return n.e(6550).then(n.bind(n,26550))}}},Hp=(0,ct.default)("kv-illustration"),Bp=function(t){var n=t.name,i=t.className,r=rn(t,Fp),o=Zp(),a=(0,e.useState)(""),s=(0,dt.Z)(a,2),u=s[0],l=s[1],c=jp[o]&&jp[o][n];return(0,e.useEffect)((function(){"function"===typeof c&&c().then((function(e){return l(e.default)})).catch((function(e){console.error(e),l("")}))}),[c]),(0,fs.jsx)("img",Rt({alt:n,src:u,className:Hp(null,i)},r))},zp=n(81451),Wp=n(17571),Vp=n.n(Wp),Yp=16;var Up=pt("text-input");function Kp(t){var n=t.type,i=t.name,r=t.id,o=t.tabIndex,a=t.autoFocus,s=t.autoComplete,u=t.placeholder,l=t.value,c=t.defaultValue,d=t.onChange,h=t.onFocus,f=t.onBlur,p=t.onKeyDown,v=t.onKeyUp,g=t.onKeyPress,m=t.controlProps,_=t.controlRef,y=t.disabled;return e.createElement("input",Object.assign({},m,{ref:_,className:Up("control",{type:"input"},null===m||void 0===m?void 0:m.className),type:n,name:i,id:r,tabIndex:o,placeholder:u,value:l,defaultValue:c,autoFocus:a,autoComplete:s,onChange:d,onFocus:h,onBlur:f,onKeyDown:p,onKeyUp:v,onKeyPress:g,disabled:y}))}var qp=pt("text-input");function Gp(t){var n,i=t.name,r=t.id,o=t.tabIndex,a=t.autoFocus,s=t.autoComplete,u=t.placeholder,l=t.value,c=t.defaultValue,d=t.onChange,h=t.onFocus,f=t.onBlur,p=t.onKeyDown,v=t.onKeyUp,g=t.onKeyPress,m=t.controlRef,_=t.controlProps,y=t.disabled,b=t.rows,w=t.minRows,C=void 0===w?1:w,k=t.maxRows,S=e.useRef(null),x=rp(m,S),L=b||C,E=e.useCallback((function(){var e=null===S||void 0===S?void 0:S.current;if(e&&!b){var t=((l||e.value).match(/\n/g)||[]).length+1,n=getComputedStyle(e),i=parseInt(n.getPropertyValue("line-height"),10),r=parseInt(n.getPropertyValue("border-top-width"),10),o=parseInt(n.getPropertyValue("padding-top"),10),a=Math.floor(e.scrollHeight/i);k&&k<Math.max(a,t)?(e.style.height="auto",e.style.height="".concat(k*i+2*o+2*r,"px")):(e.style.height="auto",e.style.height="".concat(e.scrollHeight+2*r,"px"))}}),[b,k,l]);e.useEffect(E,[E]);return e.createElement("textarea",Object.assign({},_,{ref:x,style:Object.assign(Object.assign({},null===(n=_)||void 0===n?void 0:n.style),{height:b?"auto":void 0}),className:qp("control",{type:"textarea"},null===_||void 0===_?void 0:_.className),name:i,id:r,tabIndex:o,placeholder:u,value:l,defaultValue:c,rows:L,autoFocus:a,autoComplete:s,onChange:function(e){d?d(e):E()},onFocus:h,onBlur:f,onKeyDown:p,onKeyUp:v,onKeyPress:g,disabled:y}))}var $p=Jr({en:JSON.parse('{"label_clear-button":"Clear input value"}'),ru:JSON.parse('{"label_clear-button":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435"}')},"text-input"),Qp=pt("text-input"),Xp=function(t){var n=t.size,i=t.className,r=t.onClick;return e.createElement(zr,{size:n,className:Qp("clear",i),onClick:r,extraProps:{"aria-label":$p("label_clear-button")}},e.createElement(Mr,{data:Ur,size:10}))},Jp=pt("text-input"),ev=function(t){var n=t.children,i=t.className;return n?e.createElement("div",{className:Jp("additional-content",i)},n):null},tv=pt("text-input"),nv=function(e){return"boolean"===typeof e?e?"on":"off":e},iv=e.forwardRef((function(t,n){var i=t.view,r=void 0===i?"normal":i,o=t.size,a=void 0===o?"m":o,s=t.pin,u=void 0===s?"round-round":s,l=t.name,c=t.value,d=t.defaultValue,h=t.label,f=t.disabled,p=void 0!==f&&f,v=t.multiline,g=void 0!==v&&v,m=t.hasClear,_=void 0!==m&&m,y=t.error,b=t.autoComplete,w=t.onUpdate,C=t.onChange,k=t.id,S=t.tabIndex,x=t.style,L=t.className,E=t.qa,N=t.controlProps,D=t.rightContent,M=e.useState(null!==d&&void 0!==d?d:""),T=(0,dt.Z)(M,2),O=T[0],I=T[1],A=e.useRef(null),P=e.useRef(null),R=e.useState(!1),Z=(0,dt.Z)(R,2),F=Z[0],j=Z[1],H=void 0!==c,B=H?c:O,z=!g&&Boolean(h),W=cp(),V=z?k||W:k,Y=z&&!k&&!l&&"undefined"===typeof b,U=rp(t.controlRef,A),K=function(t,n){var i=(0,e.useState)({width:0,height:0}),r=(0,dt.Z)(i,2),o=r[0],a=r[1];return(0,e.useLayoutEffect)((function(){if(null===t||void 0===t?void 0:t.current){var e=new zp.default(Vp()((function(e){if(Array.isArray(e)){var t=e[0];if(t.borderBoxSize){var n=t.borderBoxSize[0]?t.borderBoxSize[0]:t.borderBoxSize;a({width:Math.round(n.inlineSize),height:Math.round(n.blockSize)})}else{var i=t.target;a({width:Math.round(i.offsetWidth),height:Math.round(i.offsetHeight)})}}}),Yp));return e.observe(t.current),function(){e.disconnect()}}}),[t,n]),o}(z?P:null,a);e.useEffect((function(){var e=A.current;if(e&&g){var t=e.scrollHeight>e.clientHeight;F!==t&&j(t)}}),[g,B,F]);var q=e.useMemo((function(){return function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).error?"error":void 0}({error:y})}),[y]),G="string"===typeof y,$=Boolean(_&&!p&&B),Q=Boolean(D&&!g),X=Object.assign(Object.assign({},N),{style:Object.assign(Object.assign({},null===N||void 0===N?void 0:N.style),z&&K.width?{paddingLeft:"".concat(K.width,"px")}:{})}),J={id:V,tabIndex:S,name:l,onChange:function(e){var t=e.target.value;H||I(t),C&&C(e),w&&w(t)},autoComplete:Y?"off":nv(b),controlProps:X};return e.createElement("span",{ref:n,style:x,className:tv({view:r,size:a,disabled:p,state:q,pin:"clear"===r?void 0:u,"has-right-content":($||Q)&&!g,"has-scrollbar":F},L),"data-qa":E},e.createElement("span",{className:tv("content")},z&&e.createElement("label",{ref:P,className:tv("label"),title:h,htmlFor:V},"".concat(h)),g?e.createElement(Gp,Object.assign({},t,J,{controlRef:U})):e.createElement(Kp,Object.assign({},t,J,{controlRef:U})),$&&e.createElement(Xp,{className:gt(tv("clear",{textarea:g})),size:a,onClick:function(e){var t=A.current;if(t){t.focus();var n=Object.create(e);n.target=t,n.currentTarget=t,t.value="",C&&C(n),w&&w("")}H||I("")}}),Q&&e.createElement(ev,null,D)),G&&e.createElement("div",{className:tv("error")},y))})),rv=function(t){var n=t.onChange,i=t.value,r=void 0===i?"":i,o=t.className,a=t.debounce,s=void 0===a?200:a,u=t.placeholder,l=(0,e.useState)(r),c=(0,dt.Z)(l,2),d=c[0],h=c[1],f=(0,e.useRef)();(0,e.useEffect)((function(){h((function(e){return e!==r?r:e}))}),[r]);return(0,fs.jsx)(iv,{hasClear:!0,autoFocus:!0,className:o,placeholder:u,value:d,onUpdate:function(e){h(e),window.clearTimeout(f.current),f.current=window.setTimeout((function(){null===n||void 0===n||n(e)}),s)}})},ov=pt("skeleton");function av(t){var n=t.className,i=t.style;return e.createElement("div",{className:ov(null,n),style:i})}var sv=(0,ct.default)("table-skeleton"),uv=function(e){var t=e.rows,n=void 0===t?2:t,i=e.className;return(0,fs.jsxs)("div",{className:sv(null,i),children:[(0,fs.jsxs)("div",{className:sv("row"),children:[(0,fs.jsx)(av,{className:sv("col-1")}),(0,fs.jsx)(av,{className:sv("col-2")}),(0,fs.jsx)(av,{className:sv("col-3")}),(0,fs.jsx)(av,{className:sv("col-4")}),(0,fs.jsx)(av,{className:sv("col-5")})]}),(0,Lt.Z)(new Array(n)).map((function(e,t){return(0,fs.jsx)("div",{className:sv("row"),children:(0,fs.jsx)(av,{className:sv("col-full")})},"skeleton-row-".concat(t))}))]})},lv=(0,ct.default)("ydb-table-with-controls-layout"),cv=function(e){var t=e.children,n=e.className;return(0,fs.jsx)("div",{className:lv(null,n),children:t})};cv.Controls=function(e){var t=e.children,n=e.className;return(0,fs.jsx)("div",{className:lv("controls-wrapper"),children:(0,fs.jsx)("div",{className:lv("controls",n),children:t})})},cv.Table=function(e){var t=e.children,n=e.loading,i=e.className;return n?(0,fs.jsx)(uv,{className:lv("loader")}):(0,fs.jsx)("div",{className:lv("table",i),children:t})};var dv=JSON.parse('{"403.title":"Access denied","403.description":"You don\u2019t have the necessary roles to view this page.","responseError.defaultMessage":"Response error"}'),hv=JSON.parse('{"403.title":"\u0414\u043e\u0441\u0442\u0443\u043f \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d","403.description":"\u0423 \u0432\u0430\u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0430\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.","responseError.defaultMessage":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430"}'),fv="ydb-errors-access-denied";na.registerKeyset(Ko.En,fv,dv),na.registerKeyset(Ko.Ru,fv,hv);var pv,vv,gv=na.keyset(fv),mv=function(e){var t=e.error,n=e.className,i=e.defaultMessage,r=void 0===i?gv("responseError.defaultMessage"):i;return(0,fs.jsx)("div",{className:"error ".concat(n),children:(null===t||void 0===t?void 0:t.statusText)||r})},_v=function(e){return e.tenants.searchValue},yv=Au([function(e){return e.tenants.tenants},dr,_v],(function(e,t,n){var i=function(e,t){return t===ir.ALL?e:e.filter((function(e){return e.Overall&&e.Overall!==Bo.Green}))}(e,t);return i=function(e,t){return e.filter((function(e){var n=new RegExp((0,on.escapeRegExp)(t),"i");return n.test(e.Name)||n.test(e.controlPlaneName)}))}(i,n),i}));!function(e){e.overview="overview",e.acl="acl",e.schema="schema"}(pv||(pv={})),function(e){e.info="info",e.queryTab="queryTab",e.diagnosticsTab="diagnosticsTab"}(vv||(vv={}));var bv=[{id:pv.overview,title:"Overview"},{id:pv.acl,title:"ACL"}],wv=[{id:pv.schema,title:"Schema"}],Cv=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Ph(Zh.tenant,void 0,e)},kv=(0,ct.default)("tenants"),Sv=function(e){var t=e.additionalTenantsProps,n=Q(),i=vf((function(e){return e.tenants})),r=i.error,o=i.loading,a=i.wasLoaded,s=vf(_v),u=vf(yv),l=vf(dr);pf((function(){n(function(e){return Oo({request:window.api.getTenants(e),actions:Tl,dataHandler:function(e,t){var n=t().singleClusterMode;return e.TenantInfo?Ml(e.TenantInfo,n):[]}})}(kh))}),[n],!0);var c=function(e){n(cr(e))},d=function(e){n(function(e){return{type:Ol,data:e}}(e))};return r?(0,fs.jsx)(mv,{error:r}):(0,fs.jsxs)(cv,{children:[(0,fs.jsx)(cv.Controls,{children:(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)(rv,{value:s,onChange:d,placeholder:"Database name",className:kv("search")}),(0,fs.jsx)(Rp,{value:l,onChange:c})]})}),(0,fs.jsx)(cv.Table,{loading:o&&!a,className:kv("table"),children:function(){var e=bv[0].id,n=function(e){var n,i,r=null!==(n=e.MonitoringEndpoint)&&void 0!==n?n:e.backend;return null===t||void 0===t||null===(i=t.prepareTenantBackend)||void 0===i?void 0:i.call(t,r)},i=[{name:"Name",header:"Database",render:function(i){var r,o=i.row,a=n(o),s=Boolean(a);return(0,fs.jsxs)("div",{className:kv("name-wrapper"),children:[(0,fs.jsx)(Gf,{externalLink:s,className:kv("name"),name:o.Name||"unknown database",withLeftTrim:!0,status:o.Overall,hasClipboardButton:!0,path:Cv((0,xt.Z)({name:o.Name,backend:a},vv.info,e))}),null===t||void 0===t||null===(r=t.getMonitoringLink)||void 0===r?void 0:r.call(t,o.Name,o.Type)]})},width:440,sortable:!0,defaultOrder:zn.DESCENDING},{name:"controlPlaneName",header:"Name",render:function(e){return e.row.controlPlaneName},width:200,sortable:!0,defaultOrder:zn.DESCENDING},{name:"Type",width:200,render:function(e){var t=e.row;return"Serverless"!==t.Type?t.Type:(0,fs.jsxs)("div",{className:kv("type"),children:[(0,fs.jsx)("span",{className:kv("type-value"),children:t.Type}),(0,fs.jsx)(zr,{className:kv("type-button"),onClick:function(){return d(t.sharedTenantName||"")},children:"Show shared"})]})}},{name:"State",width:90,render:function(e){var t=e.row;return t.State?t.State.toLowerCase():"\u2014"},customStyle:function(){return{textTransform:"capitalize"}}},{name:"cpu",header:"CPU",width:80,render:function(e){var t=e.row;return t.cpu>1e4?fa(t.cpu):"\u2014"},align:zn.RIGHT,defaultOrder:zn.DESCENDING},{name:"memory",header:"Memory",width:120,render:function(e){var t=e.row;return t.memory?aa(t.memory):"\u2014"},align:zn.RIGHT,defaultOrder:zn.DESCENDING},{name:"storage",header:"Storage",width:120,render:function(e){var t=e.row;return t.storage?aa(t.storage):"\u2014"},align:zn.RIGHT,defaultOrder:zn.DESCENDING},{name:"nodesCount",header:"Nodes",width:100,render:function(e){var t=e.row;return t.nodesCount?ha(t.nodesCount):"\u2014"},align:zn.RIGHT,defaultOrder:zn.DESCENDING},{name:"groupsCount",header:"Groups",width:100,render:function(e){var t=e.row;return t.groupsCount?ha(t.groupsCount):"\u2014"},align:zn.RIGHT,defaultOrder:zn.DESCENDING},{name:"PoolStats",header:"Pools",width:100,sortAccessor:function(e){var t=e.PoolStats;return(void 0===t?[]:t).reduce((function(e,t){return e+(t.Usage||0)}),0)},defaultOrder:zn.DESCENDING,align:zn.LEFT,render:function(e){var t=e.row;return(0,fs.jsx)(xp,{pools:t.PoolStats})}},{name:"Tablets",header:"Tablets States",sortable:!1,width:430,render:function(e){var t=e.row,i=n(t);return t.Tablets?(0,fs.jsx)(Tp,{path:t.Name,tablets:t.Tablets,nodeIds:t.NodeIds||[],backend:i}):"\u2014"}}];return 0===u.length&&l!==ir.ALL?(0,fs.jsx)(Bp,{name:"thumbsUp",width:"200"}):(0,fs.jsx)(zn,{theme:"yandex-cloud",data:u,columns:i,settings:fi,emptyDataMessage:"No such tenants"})}()})]})},xv=function(e){var t=e.name,n=e.height,i=void 0===n?16:n,r=e.width,o=void 0===r?16:r,a=e.viewBox,s=void 0===a?"0 0 16 16":a,u=e.className,l=e.onClick;return(0,fs.jsx)(Mr,{data:{id:"icon.".concat(t),viewBox:s},height:i,width:o,className:u,onClick:l})},Lv=function(e){return(0,fs.jsx)(xv,Rt({},e))};Lv.displayName="Icon";var Ev=(0,ct.default)("empty-state"),Nv={s:150,m:250,l:350},Dv=function(e){var t=e.image,n=e.title,i=e.description,r=e.actions,o=e.size,a=void 0===o?"m":o;return(0,fs.jsx)("div",{className:Ev({size:a}),children:(0,fs.jsxs)("div",{className:Ev("wrapper",{size:a}),children:[(0,fs.jsx)("div",{className:Ev("image"),children:t||(0,fs.jsx)(xv,{viewBox:"0 0 383 396",name:"emptyState",width:Nv[a],height:Nv[a]})}),(0,fs.jsx)("div",{className:Ev("title",{size:a}),children:n}),(0,fs.jsx)("div",{className:Ev("description"),children:i}),(0,fs.jsx)("div",{className:Ev("actions"),children:r})]})})},Mv=function(e){var t=e.title,n=e.description;return(0,fs.jsx)(Dv,{image:(0,fs.jsx)(Bp,{name:"403"}),title:t||gv("403.title"),description:n||gv("403.description")})},Tv=function(e){var t=e.value,n=e.onChange,i=e.className;return(0,fs.jsxs)(Pp,{value:t,onUpdate:n,className:i,children:[(0,fs.jsx)(Pp.Option,{value:Wo.All,children:qo[Wo.All]}),(0,fs.jsx)(Pp.Option,{value:Wo.SmallUptime,children:qo[Wo.SmallUptime]})]})},Ov="ydb-entities-count";na.registerKeyset(Ko.En,Ov,{of:"of"}),na.registerKeyset(Ko.Ru,Ov,{of:"\u0438\u0437"});var Iv=na.keyset(Ov),Av=function(e){var t=e.total,n=e.current,i=e.label,r=e.loading,o=e.className,a="";return i&&(a+="".concat(i,": ")),r?a+="...":(a+="".concat(n),t&&Number(t)!==Number(n)&&(a+=" ".concat(Iv("of")," ").concat(t))),(0,fs.jsx)($h,{theme:"info",size:"m",className:o,children:a})},Pv=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(arguments.length>1?arguments[1]:void 0)===Wo.All?e:e.filter((function(e){var t=e.StartTime;return!t||va(t)<Un}))},Rv=Au([function(e){return e.nodes.data},function(e){return e.nodes.nodesUptimeFilter},function(e){return e.nodes.searchValue},function(e){return e.settings.problemFilter}],(function(e,t,n,i){var r=Pv(e,t);return r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(arguments.length>1?arguments[1]:void 0)===ir.ALL?e:e.filter((function(e){var t=e.SystemState;return t&&t!==Bo.Green}))}(r,i),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;if(!t)return e;var n=new RegExp((0,on.escapeRegExp)(t),"i");return e.filter((function(e){return!e.Host||n.test(e.Host)||n.test(String(e.NodeId))}))}(r,n),r}));function Zv(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"currentColor"},Lr,t),e.createElement("path",{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",d:"M7.357 7.357l9.286 9.286m0-9.286l-9.286 9.286"}))}var Fv,jv,Hv=pt("popover"),Bv=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];switch(e){case"special":return t?"normal-contrast":"flat-contrast";case"announcement":return t?"normal-contrast":"outlined";default:return t?"normal":"flat"}},zv=function(t){var n=t.theme,i=t.tooltipActionButton,r=t.tooltipCancelButton;return i||r?e.createElement("div",{className:Hv("tooltip-buttons")},i&&e.createElement(zr,{view:Bv(n,!0),width:"max",onClick:i.onClick,className:Hv("tooltip-button")},i.text),r&&e.createElement(zr,{view:Bv(n,!1),width:"max",onClick:r.onClick,className:Hv("tooltip-button")},r.text)):null},Wv=function(t){var n=t.secondary,i=t.htmlContent,r=t.content,o=t.className;return i||r?i?e.createElement("div",{className:Hv("tooltip-content",{secondary:n}),dangerouslySetInnerHTML:{__html:i}}):r?e.createElement("div",{className:Hv("tooltip-content",{secondary:n},o)},r):null:null},Vv=function(t){var n=t.links;return 0===n.length?null:e.createElement("div",{className:Hv("tooltip-links")},n.map((function(t,n){var i=t.text,r=t.href,o=t.target,a=void 0===o?"_blank":o,s=t.onClick;return e.createElement(e.Fragment,{key:"link-".concat(n)},e.createElement(Mf,{href:r,target:a,onClick:s,className:Hv("tooltip-link")},i),e.createElement("br",null))})))},Yv=function(t){var n=t.open,i=t.disabled,r=t.openTooltip,o=t.closeTooltip,a=t.closedManually,s=t.onClick,u=t.children,l=function(){var e=bi(ki().mark((function e(t){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!i){e.next=2;break}return e.abrupt("return");case 2:if(e.t0=!s,e.t0){e.next=7;break}return e.next=6,s(t);case 6:e.t0=e.sent;case 7:if(e.t0){e.next=10;break}return e.abrupt("return");case 10:(function(){!n?(r(),a.current=!1):(o(),a.current=!0)})();case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return e.createElement("span",{onClick:l},u)};!function(e){e.Immediate="immediate",e.Delayed="delayed",e.DelayedClosing="delayedClosing"}(jv||(jv={}));var Uv=(Fv={},(0,xt.Z)(Fv,jv.Immediate,[0,0]),(0,xt.Z)(Fv,jv.Delayed,[300,300]),(0,xt.Z)(Fv,jv.DelayedClosing,[0,300]),Fv),Kv=function(t){var n=t.initialOpen,i=t.disabled,r=t.autoclosable,o=t.onOpenChange,a=t.delayOpening,s=t.delayClosing,u=t.behavior,l=t.shouldBeOpen,c=(0,e.useRef)(null),d=(0,e.useRef)(null),h=(0,e.useState)(n),f=(0,dt.Z)(h,2),p=f[0],v=f[1],g=(0,e.useCallback)((function(){c.current&&(clearTimeout(c.current),c.current=null)}),[]),m=(0,e.useCallback)((function(){d.current&&(clearTimeout(d.current),d.current=null)}),[]);(0,e.useEffect)((function(){return function(){g(),m()}}),[m,g]);var _=(0,e.useCallback)((function(e){v(e),l.current=e,null===o||void 0===o||o(e)}),[o,l]),y=(0,e.useCallback)((function(){g(),_(!0)}),[_,g]),b=(0,e.useCallback)((function(){m(),_(!1)}),[_,m]);(0,e.useEffect)((function(){i&&b()}),[i,b]),function(t,n){var i=(0,e.useRef)(!0);(0,e.useEffect)((function(){i.current?i.current=!1:t()}),n)}((function(){r&&!l.current&&b()}),[r,b,l]);var w=(0,dt.Z)(Uv[u],2),C=w[0],k=w[1],S=(0,e.useCallback)((function(){c.current=setTimeout((function(){c.current=null,y()}),null!==a&&void 0!==a?a:C)}),[C,a,y]),x=(0,e.useCallback)((function(){d.current=setTimeout((function(){d.current=null,b()}),null!==s&&void 0!==s?s:k)}),[b,k,s]);return{isOpen:p,closingTimeout:d,openTooltip:y,openTooltipDelayed:S,unsetOpeningTimeout:g,closeTooltip:b,closeTooltipDelayed:x,unsetClosingTimeout:m}},qv=(0,e.forwardRef)((function(t,n){var i,r=t.initialOpen,o=void 0!==r&&r,a=t.disabled,s=void 0!==a&&a,u=t.autoclosable,l=void 0===u||u,c=t.openOnHover,d=void 0===c||c,h=t.delayOpening,f=t.delayClosing,p=t.behavior,v=void 0===p?jv.Delayed:p,g=t.placement,m=void 0===g?["right","bottom"]:g,_=t.offset,y=void 0===_?{}:_,b=t.tooltipOffset,w=t.tooltipClassName,C=t.theme,k=void 0===C?"info":C,S=t.size,x=void 0===S?"s":S,L=t.hasArrow,E=void 0===L||L,N=t.hasClose,D=void 0!==N&&N,M=t.className,T=t.children,O=t.title,I=t.content,A=t.htmlContent,P=t.contentClassName,R=t.links,Z=t.forceLinksAppearance,F=void 0!==Z&&Z,j=t.tooltipActionButton,H=t.tooltipCancelButton,B=t.onOpenChange,z=t.onCloseClick,W=t.onClick,V=t.anchorRef,Y=t.strategy,U=t.qa,K=(0,e.useRef)(null),q=(0,e.useRef)(!1),G=(0,e.useRef)(o),$=Kv({initialOpen:o,disabled:s,autoclosable:l,onOpenChange:B,delayOpening:h,delayClosing:f,behavior:v,shouldBeOpen:G}),Q=$.isOpen,X=$.closingTimeout,J=$.openTooltip,ee=$.openTooltipDelayed,te=$.unsetOpeningTimeout,ne=$.closeTooltip,ie=$.closeTooltipDelayed,re=$.unsetClosingTimeout;(0,e.useImperativeHandle)(n,(function(){return{openTooltip:J,closeTooltip:ne}}),[J,ne]);var oe=function(){var e=bi(ki().mark((function e(t){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:ne(),null===z||void 0===z||z(t);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),ae=Boolean(O),se=e.createElement(gp,{strategy:Y,anchorRef:V||K,className:Hv("tooltip",(i={theme:k,size:x},(0,xt.Z)(i,"with-close",D),(0,xt.Z)(i,"force-links-appearance",F),i),w),open:Q,placement:m,hasArrow:E,offset:b,onClose:V?void 0:ne,qa:U?"".concat(U,"-tooltip"):""},e.createElement(e.Fragment,null,O&&e.createElement("h3",{className:Hv("tooltip-title")},O),e.createElement(Wv,{secondary:!!ae&&"announcement"!==k,content:I,htmlContent:A,className:P}),R&&e.createElement(Vv,{links:R}),e.createElement(zv,{theme:k,tooltipActionButton:j,tooltipCancelButton:H}),D&&e.createElement("div",{className:Hv("tooltip-close")},e.createElement(zr,{size:"s",view:"flat-secondary",onClick:oe,extraProps:{"aria-label":"Close"}},e.createElement(Mr,{data:Zv,size:24})))));if(V)return se;return e.createElement("div",{ref:K,className:Hv({disabled:s},M),onMouseEnter:d?function(){re(),Q||s||q.current?G.current=!0:ee()}:void 0,onMouseLeave:d?function(){!l||q.current||X.current?G.current=!1:(te(),ie()),q.current=!1}:void 0,style:{top:y.top,left:y.left},"data-qa":U},e.createElement(Yv,{closeTooltip:ne,openTooltip:J,open:Q,disabled:s,onClick:W,closedManually:q},T),se)}));qv.displayName="Popover";var Gv=(0,ct.default)("progress-viewer"),$v=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.value,n=e.capacity,i=e.formatValues,r=e.percents,o=e.size,a=e.className,s=e.colorizeProgress,u=e.inverseColorize,l=Math.round(parseFloat(t)/parseFloat(n)*100);l=l>100?100:l;var c=Math.round(t),d=n,h="/";if(i){var f=i(t,n),p=(0,dt.Z)(f,2);c=p[0],d=p[1]}else r&&(c=l+"%",d="",h="");var v=u?"scarlet":"apple";s&&(l>60&&l<=80?v="saffron":l>80&&(v=u?"apple":"scarlet"));var g={width:l+"%"},m=l>60?"contrast0":"contrast70";return isNaN(l)?(0,fs.jsx)("div",{className:"".concat(Gv({size:o})," ").concat(a," error"),children:"no data"}):(0,fs.jsxs)("div",{className:Gv({size:o},a),children:[(0,fs.jsx)("div",{className:Gv("line",{bg:v}),style:g}),(0,fs.jsx)("span",{className:Gv("text",{text:m}),children:"".concat(c," ").concat(h," ").concat(d)})]})}}]),n}(e.Component);$v.defaultProps={size:"xs",colorizeProgress:!1,capacity:100,inverseColorize:!1};var Qv=$v,Xv="storage",Jv="tablets",eg="overview",tg="structure",ng=[{id:eg,name:"Overview"},{id:Xv,name:"Storage"},{id:tg,name:"Structure"},{id:Jv,name:"Tablets"}];function ig(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Ph(Zh.node,{id:e,activeTab:eg},t)}var rg=(0,ct.default)("ydb-node-host-wrapper"),og=function(e){var t=e.node,n=e.getNodeRef;if(!t.Host)return(0,fs.jsx)("span",{children:"\u2014"});var i=!Go(t),r=i&&n?n(t)+"internal":void 0,o=i?ig(t.NodeId,{tenantName:t.TenantName}):void 0;return(0,fs.jsx)("div",{className:rg(),children:(0,fs.jsx)(qv,{disabled:!i,content:(0,fs.jsx)(ws,{data:t}),placement:["top","bottom"],behavior:jv.Immediate,children:(0,fs.jsxs)("div",{className:rg("host-wrapper"),children:[(0,fs.jsx)(Gf,{name:t.Host,status:t.SystemState,path:o,hasClipboardButton:!0,className:rg("host")}),r&&(0,fs.jsx)(zr,{size:"s",href:r,className:rg("external-button"),target:"_blank",children:(0,fs.jsx)(Lv,{name:"external"})})]})})})};var ag=JSON.parse('{"empty.default":"No such nodes"}'),sg=JSON.parse('{"empty.default":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432"}'),ug="ydb-nodes";na.registerKeyset(Ko.En,ug,ag),na.registerKeyset(Ko.Ru,ug,sg);var lg,cg,dg=na.keyset(ug),hg=(0,ct.default)("ydb-nodes"),fg=function(t){var n=t.path,i=t.type,r=t.additionalNodesInfo,o=void 0===r?{}:r,a=Q(),s=!n;(0,e.useEffect)((function(){a({type:wa})}),[a,n]);var u=vf((function(e){return e.nodes})),l=u.wasLoaded,c=u.loading,d=u.error,h=u.nodesUptimeFilter,f=u.searchValue,p=u.totalNodes,v=vf((function(e){return e.settings.problemFilter})),g=vf((function(e){return e.schema})).autorefresh,m=vf(Rv),_=gf(ni),y=(0,dt.Z)(_,1)[0],b=(0,e.useCallback)((function(){!n||y&&qu(i)?a(function(e){var t=e.tenant,n=e.visibleEntities,i=e.type,r=void 0===i?"any":i;return Oo({request:window.api.getNodes({tenant:t,visibleEntities:n,type:r}),actions:ba,dataHandler:ya})}({tenant:n})):a(function(e){return Oo({request:window.api.getCompute(e),actions:ba,dataHandler:_a})}(n))}),[a,n,i,y]);pf(b,[b],!!s||g);var w=function(e){a(function(e){return{type:Sa,data:e}}(e))},C=function(e){a(cr(e))},k=function(e){a(function(e){return{type:Ca,data:e}}(e))};return d?403===d.status?(0,fs.jsx)(Mv,{}):(0,fs.jsx)(mv,{error:d}):(0,fs.jsxs)(cv,{children:[(0,fs.jsx)(cv.Controls,{children:(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)(rv,{onChange:w,placeholder:"Host name",className:hg("search"),value:f}),(0,fs.jsx)(Rp,{value:v,onChange:C}),(0,fs.jsx)(Tv,{value:h,onChange:k}),(0,fs.jsx)(Av,{total:p,current:(null===m||void 0===m?void 0:m.length)||0,label:"Nodes",loading:c&&!l})]})}),(0,fs.jsx)(cv.Table,{loading:c&&!l,className:hg("table"),children:function(){var e=function(e){var t=e.tabletsPath,n=e.getNodeRef;return[{name:"NodeId",header:"#",width:"80px",align:zn.RIGHT},{name:"Host",render:function(e){var t=e.row;return(0,fs.jsx)(og,{node:t,getNodeRef:n})},width:"350px",align:zn.LEFT},{name:"DataCenter",header:"DC",align:zn.LEFT,render:function(e){var t=e.row;return t.DataCenter?t.DataCenter:"\u2014"},width:"60px"},{name:"Rack",header:"Rack",align:zn.LEFT,render:function(e){var t=e.row;return t.Rack?t.Rack:"\u2014"},width:"80px"},{name:"Version",width:"200px",align:zn.LEFT,render:function(e){var t=e.row;return(0,fs.jsx)(qv,{content:t.Version,children:t.Version})}},{name:"Uptime",header:"Uptime",sortAccessor:function(e){var t=e.StartTime;return t&&-t},align:zn.RIGHT,width:"110px"},{name:"MemoryUsed",header:"Memory",sortAccessor:function(e){var t=e.MemoryUsed;return Number(void 0===t?0:t)},defaultOrder:zn.DESCENDING,render:function(e){var t=e.row;return t.MemoryUsed?aa(t.MemoryUsed):"\u2014"},align:zn.RIGHT,width:"120px"},{name:"PoolStats",header:"CPU",sortAccessor:function(e){var t=e.PoolStats;return(void 0===t?[]:t).reduce((function(e,t){return t.Usage?e+t.Usage:e}),0)},defaultOrder:zn.DESCENDING,render:function(e){var t=e.row;return t.PoolStats?(0,fs.jsx)(xp,{pools:t.PoolStats}):"\u2014"},align:zn.LEFT,width:"120px"},{name:"LoadAverage",header:"Load average",sortAccessor:function(e){var t=e.LoadAverage;return(void 0===t?[]:t).slice(0,1).reduce((function(e,t){return e+t}),0)},defaultOrder:zn.DESCENDING,render:function(e){var t=e.row;return t.LoadAverage&&t.LoadAverage.length>0?(0,fs.jsx)(Qv,{value:t.LoadAverage[0],percents:!0,colorizeProgress:!0}):"\u2014"},align:zn.LEFT,width:"140px"},{name:"Tablets",width:"430px",render:function(e){var n=e.row;return n.Tablets?(0,fs.jsx)(Tp,{path:null!==t&&void 0!==t?t:n.TenantName,nodeIds:[n.NodeId],tablets:n.Tablets}):"\u2014"},align:zn.LEFT}]}({getNodeRef:o.getNodeRef});return!m||0!==m.length||v===ir.ALL&&h===Wo.All?(0,fs.jsx)(zn,{theme:"yandex-cloud",data:m||[],columns:e,settings:fi,initialSortOrder:{columnId:"NodeId",order:zn.ASCENDING},emptyDataMessage:dg("empty.default"),rowClassName:function(e){return hg("node",{unavailable:Go(e)})}}):(0,fs.jsx)(Bp,{name:"thumbsUp",width:"200"})}()})]})},pg=function(e){return"VDiskId"in e},vg=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=Math.round(100*e.Used/e.Limit)||0;return Math.floor(n/t)*t};!function(e){e.Initial="Initial",e.InitialFormatRead="InitialFormatRead",e.InitialFormatReadError="InitialFormatReadError",e.InitialSysLogRead="InitialSysLogRead",e.InitialSysLogReadError="InitialSysLogReadError",e.InitialSysLogParseError="InitialSysLogParseError",e.InitialCommonLogRead="InitialCommonLogRead",e.InitialCommonLogReadError="InitialCommonLogReadError",e.InitialCommonLogParseError="InitialCommonLogParseError",e.CommonLoggerInitError="CommonLoggerInitError",e.Normal="Normal",e.OpenFileError="OpenFileError",e.ChunkQuotaError="ChunkQuotaError",e.DeviceIoError="DeviceIoError",e.Missing="Missing",e.Timeout="Timeout",e.NodeDisconnected="NodeDisconnected",e.Unknown="Unknown"}(lg||(lg={})),function(e){e.Initial="Initial",e.LocalRecoveryError="LocalRecoveryError",e.SyncGuidRecovery="SyncGuidRecovery",e.SyncGuidRecoveryError="SyncGuidRecoveryError",e.OK="OK",e.PDiskError="PDiskError"}(cg||(cg={}));var gg;!function(e){e.HDD="HDD",e.SSD="SSD",e.MVME="NVME"}(gg||(gg={}));var mg,_g,yg=function(e){if(e.Category){var t=function(e,t){var n={};return Object.entries(t).reduce((function(t,i){var r=(0,dt.Z)(i,2),o=r[0],a=r[1],s=e.length-t,u=s-a;return n[o]=e.substring(u,s)||"0",t+a}),0),n}(BigInt(e.Category).toString(2),{isSolidState:1,kind:55,typeExt:8});if("1"===t.isSolidState)switch(parseInt(t.typeExt,2)){case 0:return gg.SSD;case 2:return gg.MVME}else if("0"===t.typeExt)return gg.HDD}},bg=(mg={},(0,xt.Z)(mg,Bo.Green,1),(0,xt.Z)(mg,Bo.Yellow,100),(0,xt.Z)(mg,Bo.Orange,1e4),(0,xt.Z)(mg,Bo.Red,1e6),mg),wg=function(e){var t,n,i=null!==(t=e.SystemState)&&void 0!==t?t:{},r=(null===(n=e.PDisks)||void 0===n?void 0:n.filter((function(e){return e.State!==lg.Normal})).length)||0;return{NodeId:e.NodeId,SystemState:i.SystemState,DataCenter:i.DataCenter,Rack:i.Rack,Host:i.Host,Endpoints:i.Endpoints,Uptime:ga(i.StartTime),StartTime:i.StartTime,PDisks:e.PDisks,Missing:r}},Cg=function(e){return e.trim().toLowerCase()},kg=function(e){var t,n;return{total:(null===(t=e.storage.groups)||void 0===t?void 0:t.TotalGroups)||0,found:(null===(n=e.storage.groups)||void 0===n?void 0:n.FoundGroups)||0}},Sg=function(e){var t;return null===(t=e.storage.nodes)||void 0===t?void 0:t.Nodes},xg=function(e){var t,n;return{total:(null===(t=e.storage.nodes)||void 0===t?void 0:t.TotalNodes)||0,found:(null===(n=e.storage.nodes)||void 0===n?void 0:n.FoundNodes)||0}},Lg=function(e){return e.storage.filter},Eg=Au(Sg,(function(e){return e?e.map(wg):[]})),Ng=Au((function(e){var t;return null===(t=e.storage.groups)||void 0===t?void 0:t.StoragePools}),(function(e){var t=[];return null===e||void 0===e||e.forEach((function(e){var n;null===(n=e.Groups)||void 0===n||n.forEach((function(n){t.push(function(e,t){var n,i=0,r=0,o=0,a=0,s=0,u=0,l="";if(e.VDisks){var c,d=(0,Tr.Z)(e.VDisks);try{for(d.s();!(c=d.n()).done;){var h=c.value,f=h.Replicated,p=h.VDiskState,v=h.AvailableSize,g=h.AllocatedSize,m=h.PDisk,_=h.DiskSpace,y=h.ReadThroughput,b=h.WriteThroughput;f&&(null===m||void 0===m?void 0:m.State)===lg.Normal&&p===cg.OK||(i+=1),_&&_!==Bo.Grey&&(r+=bg[_]);var w=Number(null!==v&&void 0!==v?v:null===m||void 0===m?void 0:m.AvailableSize)||0,C=Number(g)||0;o+=C,a+=w+C,s+=Number(y)||0,u+=Number(b)||0;var k=yg(m||{});l=!k||k!==l&&""!==l?"Mixed":k}}catch(x){d.e(x)}finally{d.f()}}var S=null===(n=e.VDisks)||void 0===n?void 0:n.map((function(e){var n;return Rt(Rt({},e),{},{StoragePoolName:t,Donors:null===(n=e.Donors)||void 0===n?void 0:n.map((function(e){return Rt(Rt({},e),{},{StoragePoolName:t})}))})}));return Rt(Rt({},e),{},{VDisks:S,Read:s,Write:u,PoolName:t,Used:o,Limit:a,Missing:i,UsedSpaceFlag:r,Type:l||null})}(n,e.Name))}))})),t})),Dg=Au([Sg,function(e,t){return t},function(e,t,n){return n}],(function(e,t,n){var i,r=null===e||void 0===e?void 0:e.find((function(e){return e.NodeId===t}));return null===r||void 0===r||null===(i=r.VDisks)||void 0===i?void 0:i.filter((function(e){return e.PDiskId===n})).map((function(e){return Rt(Rt({},e),{},{NodeId:t})}))})),Mg=Au(Ng,(function(e){var t={};return e.forEach((function(e){var n=vg(e,5);Object.prototype.hasOwnProperty.call(t,n)||(t[n]=0),t[n]+=1})),Object.entries(t).map((function(e){var t=(0,dt.Z)(e,2),n=t[0],i=t[1];return{threshold:Number(n),count:i}})).sort((function(e,t){return t.threshold-e.threshold}))})),Tg=Au([Eg,Lg,function(e){return e.storage.nodesUptimeFilter}],(function(e,t,n){var i=e;return i=function(e,t){var n=Cg(t);return n?e.filter((function(e){var t,i;return(null===(t=e.NodeId)||void 0===t?void 0:t.toString().includes(n))||(null===(i=e.Host)||void 0===i?void 0:i.toLowerCase().includes(n))})):e}(i,t),i=Pv(i,n)})),Og=Au([Ng,Lg,function(e){return e.storage.usageFilter}],(function(e,t,n){var i,r,o=e;return o=function(e,t){var n=Cg(t);return n?e.filter((function(e){var t,i;return(null===(t=e.PoolName)||void 0===t?void 0:t.toLowerCase().includes(n))||(null===(i=e.GroupID)||void 0===i?void 0:i.toString().includes(n))})):e}(o,t),i=o,r=n,o=Array.isArray(r)&&0!==r.length?i.filter((function(e){var t=vg(e,5);return r.some((function(e){return Number(e)<=t&&t<Number(e)+5}))})):i}));function Ig(){return Ig=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Ig.apply(this,arguments)}var Ag=function(t){return e.createElement("svg",Ig({viewBox:"0 0 18 18",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),_g||(_g=e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.692 1.566a.75.75 0 01.616 0l6 2.7a.75.75 0 01.442.684v2.296a9.75 9.75 0 01-5.936 8.973l-.52.221a.75.75 0 01-.587 0l-.52-.22A9.75 9.75 0 012.25 7.245V4.95a.75.75 0 01.442-.684l6-2.7zM3.75 5.435v1.81a8.25 8.25 0 005.023 7.594l.227.096.227-.096a8.25 8.25 0 005.023-7.593V5.435L9 3.072 3.75 5.435zm6 3.364a1.5 1.5 0 10-1.5 0v2.451a.75.75 0 001.5 0V8.8z"})))},Pg=(0,ct.default)("stack"),Rg=function(t){var n=t.children,i=t.className;return(0,fs.jsx)("div",{className:Pg(null,i),children:e.Children.map(n,(function(t,n){return e.isValidElement(t)?(0,fs.jsx)("div",{className:Pg("layer"),style:(0,xt.Z)({},"--ydb-stack-level",n),children:t}):null}))})},Zg=JSON.parse('{"default_message":"Everything is fine!","default_button_label":"Show All"}'),Fg=JSON.parse('{"default_message":"\u0412\u0441\u0451 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435!","default_button_label":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435"}'),jg="ydb-storage-empty-filter";na.registerKeyset(Ko.En,jg,Zg),na.registerKeyset(Ko.Ru,jg,Fg);var Hg,Bg=na.keyset(jg),zg=function(e){var t=e.title,n=e.message,i=void 0===n?Bg("default_message"):n,r=e.showAll,o=void 0===r?Bg("default_button_label"):r,a=e.onShowAll;return(0,fs.jsx)(Dv,{image:(0,fs.jsx)(Bp,{name:"thumbsUp"}),title:t,description:i,actions:a&&[(0,fs.jsx)(zr,{onClick:a,children:o},"show-all")]})},Wg=(0,ct.default)("storage-disk-progress-bar");!function(e){e[e.Grey=0]="Grey",e[e.Green=1]="Green",e[e.Blue=2]="Blue",e[e.Yellow=3]="Yellow",e[e.Orange=4]="Orange",e[e.Red=5]="Red"}(Hg||(Hg={}));var Vg=Object.entries(Hg).reduce((function(e,t){var n=(0,dt.Z)(t,2),i=n[0],r=n[1];return Rt(Rt({},e),{},(0,xt.Z)({},r,i))}),{});function Yg(t){var n=t.diskAllocatedPercent,i=void 0===n?-1:n,r=t.severity,o=t.compact,a=gf(ti),s=(0,dt.Z)(a,1)[0],u={inverted:s,compact:o},l=void 0!==r&&Vg[r];return l&&(u[l.toLocaleLowerCase()]=!0),(0,fs.jsx)("div",{className:Wg(u),role:"meter","aria-label":"Disk allocated space","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":i,children:o?(0,fs.jsx)("div",{className:Wg("filled"),style:{width:"100%"}}):i>=0&&(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)("div",{className:Wg("filled"),style:{width:"".concat(s?100-i:i,"%")}}),(0,fs.jsx)("div",{className:Wg("filled-title"),children:"".concat(Math.round(i),"%")})]})})}var Ug=["data","nodes"],Kg=(0,ct.default)("pdisk-storage-popup"),qg=[Bo.Orange,Bo.Red,Bo.Yellow],Gg=function(e,t){var n,i=e.AvailableSize,r=e.TotalSize,o=e.State,a=e.PDiskId,s=e.NodeId,u=e.Path,l=e.Realtime,c=e.Device,d=[{label:"PDisk",value:(n={NodeId:s,PDiskId:a},"".concat(n.NodeId,"-").concat(n.PDiskId))},{label:"State",value:o||"not available"},{label:"Type",value:yg(e)||"unknown"}];return s&&d.push({label:"Node Id",value:s}),t&&s&&t.get(s)&&d.push({label:"Host",value:t.get(s)}),u&&d.push({label:"Path",value:u}),d.push({label:"Available",value:"".concat(ji(i)," of ").concat(ji(r))}),l&&qg.includes(l)&&d.push({label:"Realtime",value:l}),c&&qg.includes(c)&&d.push({label:"Device",value:c}),d},$g=function(t){var n=t.data,i=t.nodes,r=rn(t,Ug),o=(0,e.useMemo)((function(){return Gg(n,i)}),[n,i]);return(0,fs.jsx)(gp,Rt(Rt({className:Kg(),placement:["top","bottom"],offset:[0,12]},r),{},{children:(0,fs.jsx)(vs,{title:"PDisk",info:o,size:"s"})}))},Qg=["data","nodes"],Xg=(0,ct.default)("vdisk-storage-popup"),Jg=function(t){var n=t.data,i=t.nodes,r=rn(t,Qg),o=pg(n),a=(0,e.useMemo)((function(){return o?function(e){var t,n,i,r,o,a,s=e.VDiskId,u=e.VDiskState,l=e.SatisfactionRank,c=e.DiskSpace,d=e.FrontQueues,h=e.Replicated,f=e.UnsyncedVDisks,p=e.AllocatedSize,v=e.ReadThroughput,g=e.WriteThroughput,m=e.StoragePoolName,_=[{label:"VDisk",value:sa(s)},{label:"State",value:null!==u&&void 0!==u?u:"not available"}];return m&&_.push({label:"StoragePool",value:m}),l&&(null===(t=l.FreshRank)||void 0===t?void 0:t.Flag)!==Bo.Green&&_.push({label:"Fresh",value:null===(o=l.FreshRank)||void 0===o?void 0:o.Flag}),l&&(null===(n=l.LevelRank)||void 0===n?void 0:n.Flag)!==Bo.Green&&_.push({label:"Level",value:null===(a=l.LevelRank)||void 0===a?void 0:a.Flag}),l&&null!==(i=l.FreshRank)&&void 0!==i&&i.RankPercent&&_.push({label:"Fresh",value:l.FreshRank.RankPercent}),l&&null!==(r=l.LevelRank)&&void 0!==r&&r.RankPercent&&_.push({label:"Level",value:l.LevelRank.RankPercent}),c&&c!==Bo.Green&&_.push({label:"Space",value:c}),d&&d!==Bo.Green&&_.push({label:"FrontQueues",value:d}),h||_.push({label:"Replicated",value:"NO"}),f&&_.push({label:"UnsyncVDisks",value:f}),Number(p)&&_.push({label:"Allocated",value:ji(p)}),Number(v)&&_.push({label:"Read",value:Fi(v)}),Number(g)&&_.push({label:"Write",value:Fi(g)}),_}(n):function(e){var t=e.NodeId,n=e.PDiskId,i=e.VSlotId,r=e.StoragePoolName,o=[{label:"State",value:"not available"}];return r&&o.push({label:"StoragePool",value:r}),o.push({label:"NodeId",value:null!==t&&void 0!==t?t:"\u2013"},{label:"PDiskId",value:null!==n&&void 0!==n?n:"\u2013"},{label:"VSlotId",value:null!==i&&void 0!==i?i:"\u2013"}),o}(n)}),[n,o]),s=(0,e.useMemo)((function(){return o&&n.PDisk&&Gg(n.PDisk,i)}),[n,i,o]);return(0,fs.jsxs)(gp,Rt(Rt({className:Xg(),placement:["top","bottom"],offset:[0,12]},r),{},{children:[n.DonorMode&&(0,fs.jsx)($h,{className:Xg("donor-label"),children:"Donor"}),(0,fs.jsx)(vs,{title:"VDisk",info:a,size:"s"}),s&&(0,fs.jsx)(vs,{title:"PDisk",info:s,size:"s"})]}))},em=Hg.Grey,tm=function(e,t,n){return function(i){return 0<=i&&i<e?n[0]:e<=i&&i<t?n[1]:t<=i?n[2]:void 0}},nm=tm(1,2,["success","warning","danger"]),im={"block-4-2":tm(1,2,["success","warning","danger"]),"mirror-3-dc":tm(1,3,["success","warning","danger"])},rm=function(e){return(function(e){return void 0!==e&&e in im}(e.ErasureSpecies)?im[e.ErasureSpecies]:nm)(e.Missing)},om=tm(80,85,["success","warning","danger"]),am=tm(80,85,["Green","Yellow","Red"]),sm=tm(85,95,[Bo.Green,Bo.Yellow,Bo.Red]),um=(0,ct.default)("vdisk-storage"),lm={Initial:Hg.Yellow,LocalRecoveryError:Hg.Red,SyncGuidRecoveryError:Hg.Red,SyncGuidRecovery:Hg.Yellow,PDiskError:Hg.Red,OK:Hg.Green},cm=function(e){var t;return e&&null!==(t=lm[e])&&void 0!==t?t:em},dm=function(e){var t;return e&&null!==(t=Hg[e])&&void 0!==t?t:Hg.Grey},hm=function(t){var n,i,r=t.data,o=void 0===r?{}:r,a=t.nodes,s=t.compact,u=pg(o),l=(0,e.useState)(cm(u?o.VDiskState:void 0)),c=(0,dt.Z)(l,2),d=c[0],h=c[1],f=(0,e.useState)(!1),p=(0,dt.Z)(f,2),v=p[0],g=p[1],m=(0,e.useRef)(null);(0,e.useEffect)((function(){if(u){var e=o.DiskSpace,t=o.VDiskState,n=o.FrontQueues,i=o.Replicated,r=o.DonorMode;if(t){var a=dm(e),s=cm(t),l=Math.min(Hg.Orange,dm(n)),c=Math.max(a,s,l);i||r||c!==Hg.Green||(c=Hg.Blue),h(c)}else h(em)}else h(em)}),[o,u]);var _=(0,e.useMemo)((function(){if(u){var e=o.AvailableSize,t=o.AllocatedSize,n=o.PDisk,i=e||(null===n||void 0===n?void 0:n.AvailableSize);if(i)return isNaN(Number(t))?void 0:100*Number(t)/(Number(i)+Number(t))}}),[o,u]);return(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)(Jg,{data:o,nodes:a,anchorRef:m,open:v}),(0,fs.jsx)("div",{className:um(),ref:m,onMouseEnter:function(){g(!0)},onMouseLeave:function(){g(!1)},children:o.NodeId&&u?(0,fs.jsx)(Nf,{to:Ph(Zh.node,{id:o.NodeId,activeTab:tg},{pdiskId:null!==(n=o.PDiskId)&&void 0!==n?n:null===(i=o.PDisk)||void 0===i?void 0:i.PDiskId,vdiskId:sa(o.VDiskId)}),className:um("content"),children:(0,fs.jsx)(Yg,{diskAllocatedPercent:_,severity:d,compact:s})}):(0,fs.jsx)(Yg,{diskAllocatedPercent:_,severity:d,compact:s})})]})},fm=JSON.parse('{"empty.default":"No such groups","empty.out_of_space":"No groups with out of space errors","empty.degraded":"No degraded groups","show_all":"Show all groups","encrypted":"Encrypted group"}'),pm=JSON.parse('{"empty.default":"\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f","empty.out_of_space":"\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u043e","empty.degraded":"\u041d\u0435\u0442 \u0434\u0435\u0433\u0440\u0430\u0434\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0438\u0445 \u0433\u0440\u0443\u043f\u043f","show_all":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b","encrypted":"\u0417\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430"}'),vm="ydb-storage-groups";na.registerKeyset(Ko.En,vm,fm),na.registerKeyset(Ko.Ru,vm,pm);var gm,mm=na.keyset(vm);!function(e){e.PoolName="PoolName",e.Type="Type",e.ErasureSpecies="ErasureSpecies",e.GroupID="GroupID",e.Used="Used",e.Limit="Limit",e.UsedPercents="UsedPercents",e.UsedSpaceFlag="UsedSpaceFlag",e.Read="Read",e.Write="Write",e.VDisks="VDisks",e.Missing="Missing"}(gm||(gm={}));var _m,ym={PoolName:"Pool Name",Type:"Type",ErasureSpecies:"Erasure",GroupID:"Group ID",Used:"Used",Limit:"Limit",UsedSpaceFlag:"Space",UsedPercents:"Usage",Read:"Read",Write:"Write",VDisks:"VDisks",Missing:"Degraded"},bm=(0,ct.default)("global-storage-groups");function wm(e){switch(e){case Va.all:return{columnId:gm.PoolName,order:zn.ASCENDING};case Va.missing:return{columnId:gm.Missing,order:zn.DESCENDING};case Va.space:return{columnId:gm.UsedSpaceFlag,order:zn.DESCENDING};default:return}}function Cm(e){var t=e.data,n=e.tableSettings,i=e.visibleEntities,r=e.nodes,o=e.onShowAll,a=[{name:gm.PoolName,header:ym[gm.PoolName],width:250,render:function(e){var t,n=e.row,i=null===(t=n.PoolName)||void 0===t?void 0:t.split("/");return(0,fs.jsx)("div",{className:bm("pool-name-wrapper"),children:i&&(0,fs.jsx)(qv,{content:n.PoolName,placement:["right"],behavior:jv.Immediate,children:(0,fs.jsx)("span",{className:bm("pool-name"),children:i[i.length-1]})})})},align:zn.LEFT},{name:gm.Type,header:ym[gm.Type],render:function(e){var t=e.row;return(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)($h,{children:t.Type||"\u2014"})," ",t.Encryption&&(0,fs.jsx)(qv,{content:mm("encrypted"),placement:"right",behavior:jv.Immediate,children:(0,fs.jsx)($h,{children:(0,fs.jsx)(Mr,{data:Ag})})})]})}},{name:gm.ErasureSpecies,header:ym[gm.ErasureSpecies],render:function(e){var t=e.row;return t.ErasureSpecies?t.ErasureSpecies:"-"},align:zn.LEFT},{name:gm.Missing,header:ym[gm.Missing],width:100,render:function(e){var t=e.row;return t.Missing?(0,fs.jsxs)($h,{theme:rm(t),children:["Degraded: ",t.Missing]}):"-"},align:zn.LEFT,defaultOrder:zn.DESCENDING},{name:gm.UsedPercents,header:ym[gm.UsedPercents],width:100,render:function(e){var t=e.row,n=vg(t,5);return t.Limit?(0,fs.jsxs)($h,{theme:om(n),className:bm("usage-label",{overload:n>=90}),children:[n,"%"]}):"-"},sortAccessor:function(e){return e.Limit?vg(e):null},align:zn.LEFT},{name:gm.GroupID,header:ym[gm.GroupID],width:130,render:function(e){var t=e.row;return(0,fs.jsx)("span",{className:bm("group-id"),children:t.GroupID})},align:zn.RIGHT},{name:gm.Used,header:ym[gm.Used],width:100,render:function(e){return ji(e.row.Used,!0)},align:zn.RIGHT},{name:gm.Limit,header:ym[gm.Limit],width:100,render:function(e){return ji(e.row.Limit)},align:zn.RIGHT},{name:gm.UsedSpaceFlag,header:ym[gm.UsedSpaceFlag],width:110,render:function(e){var t=e.row.UsedSpaceFlag,n="Red";return t<100?n="Green":t<1e4?n="Yellow":t<1e6&&(n="Orange"),(0,fs.jsx)(Gf,{status:n})},align:zn.CENTER},{name:gm.Read,header:ym[gm.Read],width:100,render:function(e){var t=e.row;return t.Read?Fi(t.Read):"-"},align:zn.RIGHT},{name:gm.Write,header:ym[gm.Write],width:100,render:function(e){var t=e.row;return t.Write?Fi(t.Write):"-"},align:zn.RIGHT},{name:gm.VDisks,className:bm("vdisks-column"),header:ym[gm.VDisks],render:function(e){var t,n=e.row;return(0,fs.jsx)("div",{className:bm("vdisks-wrapper"),children:null===(t=n.VDisks)||void 0===t?void 0:t.map((function(e){var t=e.Donors;return t&&t.length>0?(0,fs.jsxs)(Rg,{className:bm("vdisks-item"),children:[(0,fs.jsx)(hm,{data:e,nodes:r}),t.map((function(e){var t=pg(e);return(0,fs.jsx)(hm,{data:t?e:Rt(Rt({},e),{},{DonorMode:!0}),nodes:r},sa(t?e.VDiskId:e))}))]},sa(e.VDiskId)):(0,fs.jsx)("div",{className:bm("vdisks-item"),children:(0,fs.jsx)(hm,{data:e,nodes:r})},sa(e.VDiskId))}))})},align:zn.CENTER,sortable:!1,width:900}],s=a;return i===Va.all&&(s=a.filter((function(e){return e.name!==gm.Missing&&e.name!==gm.UsedSpaceFlag}))),i!==Va.space||(s=a.filter((function(e){return e.name!==gm.Missing})),t.length)?i!==Va.missing||(s=a.filter((function(e){return e.name!==gm.UsedSpaceFlag})),t.length)?t?(0,fs.jsx)(zn,{theme:"yandex-cloud",data:t,columns:s,settings:n,initialSortOrder:wm(i),emptyDataMessage:mm("empty.default")},i):null:(0,fs.jsx)(zg,{title:mm("empty.degraded"),showAll:mm("show_all"),onShowAll:o}):(0,fs.jsx)(zg,{title:mm("empty.out_of_space"),showAll:mm("show_all"),onShowAll:o})}var km=(0,ct.default)("pdisk-storage"),Sm=(_m={},(0,xt.Z)(_m,lg.Initial,Hg.Grey),(0,xt.Z)(_m,lg.Normal,Hg.Green),(0,xt.Z)(_m,lg.InitialFormatRead,Hg.Yellow),(0,xt.Z)(_m,lg.InitialSysLogRead,Hg.Yellow),(0,xt.Z)(_m,lg.InitialCommonLogRead,Hg.Yellow),(0,xt.Z)(_m,lg.InitialFormatReadError,Hg.Red),(0,xt.Z)(_m,lg.InitialSysLogReadError,Hg.Red),(0,xt.Z)(_m,lg.InitialSysLogParseError,Hg.Red),(0,xt.Z)(_m,lg.InitialCommonLogReadError,Hg.Red),(0,xt.Z)(_m,lg.InitialCommonLogParseError,Hg.Red),(0,xt.Z)(_m,lg.CommonLoggerInitError,Hg.Red),(0,xt.Z)(_m,lg.OpenFileError,Hg.Red),(0,xt.Z)(_m,lg.ChunkQuotaError,Hg.Red),(0,xt.Z)(_m,lg.DeviceIoError,Hg.Red),_m),xm=function(e){return function(e){return void 0!==e&&e in Sm}(e)?Sm[e]:em},Lm=function(t){var n=t.nodeId,i=t.data,r=void 0===i?{}:i,o=(0,e.useMemo)((function(){return Rt(Rt({},r),{},{NodeId:n})}),[r,n]),a=vf((function(e){return Dg(e,n,o.PDiskId)})),s=(0,e.useState)(xm(o.State)),u=(0,dt.Z)(s,2),l=u[0],c=u[1],d=(0,e.useState)(!1),h=(0,dt.Z)(d,2),f=h[0],p=h[1],v=(0,e.useRef)(null),g=(0,e.useMemo)((function(){var e=o.AvailableSize,t=o.TotalSize;if(e&&t)return isNaN(Number(e))||isNaN(Number(t))?void 0:Math.round(100*(Number(t)-Number(e))/Number(t))}),[o]);(0,e.useEffect)((function(){var e,t=xm(o.State),n=sm(g||0);e=t!==em&&n?Math.max(t,Hg[n]):t,c(e)}),[o.State,g]);return(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)($g,{data:o,anchorRef:v,open:f}),(0,fs.jsxs)("div",{className:km(),ref:v,children:[null!==a&&void 0!==a&&a.length?(0,fs.jsx)("div",{className:km("vdisks"),children:a.map((function(e){var t=e.Donors;return(0,fs.jsx)("div",{className:km("vdisks-item"),style:{flexGrow:Number(e.AllocatedSize)||1},children:t&&t.length?(0,fs.jsxs)(Rg,{className:km("donors-stack"),children:[(0,fs.jsx)(hm,{data:e,compact:!0}),t.map((function(e){var t=pg(e);return(0,fs.jsx)(hm,{compact:!0,data:t?e:Rt(Rt({},e),{},{DonorMode:!0})},sa(t?e.VDiskId:e))}))]},sa(e.VDiskId)):(0,fs.jsx)(hm,{data:e,compact:!0})},sa(e.VDiskId))}))}):null,(0,fs.jsxs)(Nf,{to:Ph(Zh.node,{id:n,activeTab:tg},{pdiskId:o.PDiskId||""}),className:km("content"),onMouseEnter:function(){p(!0)},onMouseLeave:function(){p(!1)},children:[(0,fs.jsx)(Yg,{diskAllocatedPercent:g,severity:l}),(0,fs.jsx)("div",{className:km("media-type"),children:yg(o)})]})]})]})},Em=JSON.parse('{"empty.default":"No such nodes","empty.out_of_space":"No nodes with out of space errors","empty.degraded":"No degraded nodes","empty.small_uptime":"No nodes with uptime < 1h","empty.several_filters":"No nodes match current filters combination","show_all":"Show all nodes"}'),Nm=JSON.parse('{"empty.default":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432","empty.out_of_space":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u043e","empty.degraded":"\u041d\u0435\u0442 \u0434\u0435\u0433\u0440\u0430\u0434\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0438\u0445 \u0443\u0437\u043b\u043e\u0432","empty.small_uptime":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432 \u0441 uptime < 1h","empty.several_filters":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u043e\u0434 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u044b","show_all":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u0443\u0437\u043b\u044b"}'),Dm="ydb-storage-nodes";na.registerKeyset(Ko.En,Dm,Em),na.registerKeyset(Ko.Ru,Dm,Nm);var Mm,Tm=na.keyset(Dm);!function(e){e.NodeId="NodeId",e.FQDN="FQDN",e.DataCenter="DataCenter",e.Rack="Rack",e.Uptime="Uptime",e.PDisks="PDisks",e.Missing="Missing"}(Mm||(Mm={}));var Om,Im={NodeId:"Node ID",FQDN:"FQDN",DataCenter:"DC",Rack:"Rack",Uptime:"Uptime",PDisks:"PDisks",Missing:"Missing"},Am=(0,ct.default)("global-storage-nodes");function Pm(e){switch(e){case Va.all:return{columnId:Mm.NodeId,order:zn.ASCENDING};case Va.missing:return{columnId:Mm.Missing,order:zn.DESCENDING};default:return}}function Rm(e){var t,n=e.data,i=e.tableSettings,r=e.visibleEntities,o=e.onShowAll,a=e.nodesUptimeFilter,s=e.additionalNodesInfo,u=null===s||void 0===s?void 0:s.getNodeRef,l=[{name:Mm.NodeId,header:Im[Mm.NodeId],width:100,align:zn.RIGHT},{name:Mm.FQDN,header:Im[Mm.FQDN],width:350,render:function(e){var t=e.row;return(0,fs.jsx)(og,{node:t,getNodeRef:u})},align:zn.LEFT},{name:Mm.DataCenter,header:Im[Mm.DataCenter],render:function(e){return e.row.DataCenter||"\u2014"},align:zn.LEFT},{name:Mm.Rack,header:Im[Mm.Rack],render:function(e){return e.row.Rack||"\u2014"},align:zn.LEFT},{name:Mm.Uptime,header:Im[Mm.Uptime],width:130,sortAccessor:function(e){var t=e.StartTime;return t?-t:0},align:zn.RIGHT},{name:Mm.Missing,header:Im[Mm.Missing],width:100,align:zn.CENTER,defaultOrder:zn.DESCENDING},{name:Mm.PDisks,className:Am("pdisks-column"),header:Im[Mm.PDisks],render:function(e){var t,n=e.row;return(0,fs.jsx)("div",{className:Am("pdisks-wrapper"),children:null===(t=n.PDisks)||void 0===t?void 0:t.map((function(e){return(0,fs.jsx)("div",{className:Am("pdisks-item"),children:(0,fs.jsx)(Lm,{data:e,nodeId:n.NodeId})},e.PDiskId)}))})},align:zn.CENTER,sortable:!1,width:900}],c=l;if((r===Va.space&&(c=l.filter((function(e){return e.name!==Mm.Missing}))),!n.length)&&(r===Va.space&&(t=Tm("empty.out_of_space")),r===Va.missing&&(t=Tm("empty.degraded")),a===Wo.SmallUptime&&(t=Tm("empty.small_uptime")),r!==Va.all&&a!==Wo.All&&(t=Tm("empty.several_filters")),t))return(0,fs.jsx)(zg,{title:t,showAll:Tm("show_all"),onShowAll:o});return n?(0,fs.jsx)(zn,{theme:"yandex-cloud",data:n,columns:c,settings:Rt(Rt({},i),{},{dynamicRenderType:"variable"}),initialSortOrder:Pm(r),emptyDataMessage:Tm("empty.default"),rowClassName:function(e){return Am("node",{unavailable:Go(e)})}},r):null}var Zm,Fm=(Om={},(0,xt.Z)(Om,Ya.groups,"Groups"),(0,xt.Z)(Om,Ya.nodes,"Nodes"),Om),jm=function(e){var t=e.value,n=e.onChange;return(0,fs.jsxs)(Pp,{value:t,onUpdate:n,qa:"storage-type-filter",children:[(0,fs.jsx)(Pp.Option,{value:Ya.groups,children:Fm[Ya.groups]}),(0,fs.jsx)(Pp.Option,{value:Ya.nodes,children:Fm[Ya.nodes]})]})},Hm=(Zm={},(0,xt.Z)(Zm,Va.all,"All"),(0,xt.Z)(Zm,Va.missing,"Degraded"),(0,xt.Z)(Zm,Va.space,"Out of Space"),Zm),Bm=function(e){var t=e.value,n=e.onChange;return(0,fs.jsxs)(Pp,{value:t,onUpdate:n,qa:"storage-visible-entities-filter",children:[(0,fs.jsx)(Pp.Option,{value:Va.missing,children:Hm[Va.missing]}),(0,fs.jsx)(Pp.Option,{value:Va.space,children:Hm[Va.space]}),(0,fs.jsx)(Pp.Option,{value:Va.all,children:Hm[Va.all]})]})},zm=function(t){var n=t.value,i=t.defaultValue,r=void 0===i?[]:i,o=t.multiple,a=t.onUpdate,s=e.useState(r),u=(0,dt.Z)(s,2),l=u[0],c=u[1],d=n||l,h=!n,f=function(t){var n=e.useState(t.defaultOpen||!1),i=(0,dt.Z)(n,2),r=i[0],o=i[1],a=t.onOpenChange,s="boolean"===typeof t.open,u=s?t.open:r,l=e.useCallback((function(e){var t="boolean"===typeof e?e:!u;t!==u&&(null===a||void 0===a||a(t),s||o(t))}),[u,a,s]);return{open:u,toggleOpen:l}}(t),p=f.toggleOpen,v=(0,Ir.__rest)(f,["toggleOpen"]),g=e.useCallback((function(e){if(!d.includes(e.value)){var t=[e.value];null===a||void 0===a||a(t),h&&c(t)}p(!1)}),[d,h,a,p]),m=e.useCallback((function(e){var t=d.includes(e.value)?d.filter((function(t){return t!==e.value})):[].concat((0,Lt.Z)(d),[e.value]);null===a||void 0===a||a(t),h&&c(t)}),[d,h,a]),_=e.useCallback((function(e){o?m(e):g(e)}),[o,g,m]);return Object.assign({value:d,handleSelection:_,setOpen:p,toggleOpen:p},v)},Wm={BACKSPACE:"Backspace",ENTER:"Enter",TAB:"Tab",SPACEBAR:" "},Vm={filter:""},Ym=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Vm,t=arguments.length>1?arguments[1]:void 0;if("SET_FILTER"===t.type){var n=t.payload.filter;return Object.assign(Object.assign({},e),{filter:n})}return e},Um=vt("select"),Km=vt("select-control"),qm=vt("select-list"),Gm={s:28,m:28,l:32,xl:36},$m="select-list",Qm="select-popup",Xm="select-sheet",Jm=function(e){var t=e.getOptionHeight,n=e.size,i=e.option,r=e.index,o=e.mobile?32:Gm[n];if("label"in i){var a=0===r?0:5;return(o=""===i.label?0:o)+a}return t?t(i):o},e_=function(e){return"string"===typeof e.content?e.content:"string"===typeof e.children?e.children:e.text?e.text:e.value},t_=function(t){return function(t){return e.Children.toArray(t)}(t).reduce((function(t,n){var i=n.props;if("label"in i){var r=i.options||function(t){return e.Children.toArray(t).reduce((function(e,t){var n=t.props;return"value"in n&&e.push(n),e}),[])}(i.children);t.push({options:r,label:i.label})}return"value"in i&&t.push(Object.assign({},i)),t}),[])},n_=function(e,t){return t?t.findIndex((function(t){if("label"in t)return!1;if(t.disabled)return!1;var n,i=e_(t);return(n=e,new RegExp(n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"i")).test(i)})):-1},i_=function(e){var t;return(null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.getItems())||[]},r_=function(e){return Boolean(e&&"label"in e)},o_=function(e){var t=e.options,n=e.filter,i=e.filterOption,r=t.filter((function(e){return!!r_(e)||(i?i(e,n):function(e,t){var n=e_(e).toLocaleLowerCase(),i=t.toLocaleLowerCase();return Boolean(n.match(i))}(e,n))}));return r.reduce((function(e,t,n){var i=r_(t),o=r_(e[n-1]),a=n===r.length-1;return i&&o&&e.pop(),(!i||i&&!a)&&e.push(t),e}),[])},a_=function(e){return"clear"===e?"flat":"outlined"},s_=function(t){var n=t.onChange,i=t.open,r=t.disabled,o=e.useState(""),a=(0,dt.Z)(o,2),s=a[0],u=a[1],l=e.useState(),c=(0,dt.Z)(l,2),d=c[0],h=c[1],f=e.useCallback((function(e){if(clearTimeout(d),e){var t=window.setTimeout((function(){return u("")}),2e3);h(t)}}),[d]),p=e.useCallback((function(e){e.stopPropagation();var t=function(e,t){var n=1===e.length,i="";return e===Wm.BACKSPACE&&t.length?i=t.slice(0,t.length-1):n&&(i=(t+e).trim()),i}(e.key,s);s!==t&&(f(t),u(t))}),[f,s]);e.useEffect((function(){return i&&!r?document.addEventListener("keydown",p):i||r||u(""),function(){i&&!r&&document.removeEventListener("keydown",p)}}),[p,i,r]),e.useEffect((function(){return i||clearTimeout(d),function(){return clearTimeout(d)}}),[i,d]),e.useEffect((function(){n(s)}),[n,s])};function u_(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},Lr,t),e.createElement("path",{d:"M3.50172 5.44253C3.19384 5.16544 2.71962 5.19039 2.44253 5.49828C2.16544 5.80616 2.19039 6.28038 2.49828 6.55747L3.50172 5.44253ZM8 10.5L7.49828 11.0575C7.7835 11.3142 8.2165 11.3142 8.50172 11.0575L8 10.5ZM13.5017 6.55747C13.8096 6.28038 13.8346 5.80616 13.5575 5.49828C13.2804 5.19039 12.8062 5.16544 12.4983 5.44253L13.5017 6.55747ZM2.49828 6.55747L7.49828 11.0575L8.50172 9.94253L3.50172 5.44253L2.49828 6.55747ZM8.50172 11.0575L13.5017 6.55747L12.4983 5.44253L7.49828 9.94253L8.50172 11.0575Z"}))}var l_=e.forwardRef((function(t,n){var i=t.toggleOpen,r=t.onKeyDown,o=t.renderControl,a=t.view,s=t.size,u=t.pin,l=t.selectedOptionsContent,c=t.className,d=t.qa,h=t.name,f=t.label,p=t.placeholder,v=t.error,g=t.open,m=t.disabled,_=t.value,y=rp(n,e.useRef(null)),b=Boolean(l),w=Boolean(p&&!b);return o?o({onKeyDown:r,onClick:i,ref:y,open:Boolean(g)},{value:_}):e.createElement(e.Fragment,null,e.createElement(zr,{ref:y,className:Km({open:g,error:Boolean(v)},c),qa:d,view:a_(a),size:s,pin:u,extraProps:{name:h,"aria-haspopup":"listbox","aria-expanded":g?"true":"false",onKeyDown:r},disabled:m,onClick:i},f&&e.createElement("span",{className:Km("label")},f),w&&e.createElement("span",{className:Km("placeholder")},p),b&&e.createElement("span",{className:Km("option-text")},l),e.createElement(Mr,{className:Km("chevron-icon",{disabled:m}),data:u_})),"string"===typeof v&&e.createElement("div",{className:Km("error")},v))}));l_.displayName="SelectControl";var c_=function(e){var t=e.width,n=e.disablePortal,i=e.virtualized,r={name:"sameWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var n=e.state;if(!n.attributes.popper["data-width-set"]){var r=function(e,t){return t?e>100?e:100:e-2}(n.rects.reference.width,i);n.attributes.popper["data-width-set"]=!0,n.styles.popper.minWidth="".concat(r,"px")}"number"===typeof t&&(n.styles.popper.width="".concat(t,"px"))}};return[r,{name:"preventOverflow",options:{padding:10,altBoundary:n,altAxis:!0}}]};var d_=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.x=t,this.y=n,this.timeStamp=Date.now()})),h_=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;(0,i.Z)(this,e),this.points=[],this.pointsLen=t,this.clear()}return(0,r.Z)(e,[{key:"clear",value:function(){this.points=new Array(this.pointsLen)}},{key:"addMovement",value:function(e){var t=e.x,n=e.y;this.points.pop(),this.points.unshift(new d_(t,n))}},{key:"getYAcceleration",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=this.points[0],n=this.points[e];return t&&n?(t.y-n.y)/Math.pow(t.timeStamp-n.timeStamp,2):0}}]),e}(),f_=pt("sheet"),p_="0.3s",v_=50,g_=.08,m_=-.02,__=.9,y_=[],b_=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).veilRef=e.createRef(),t.sheetRef=e.createRef(),t.sheetTopRef=e.createRef(),t.sheetContentRef=e.createRef(),t.sheetInnerContentRef=e.createRef(),t.sheetTitleRef=e.createRef(),t.velocityTracker=new h_,t.observer=null,t.transitionDuration=p_,t.state={startScrollTop:0,startY:0,deltaY:0,prevInnerContentHeight:0,swipeAreaTouched:!1,contentTouched:!1,veilTouched:!1,isAnimating:!1,inWindowResizeScope:!1},t.setStyles=function(e){var n=e.status,i=e.deltaHeight,r=void 0===i?0:i;if(t.sheetRef.current&&t.veilRef.current){var o=t.sheetHeight-r,a="showing"===n?"translate3d(0, -".concat(o,"px, 0)"):"translate3d(0, 0, 0)",s=0;"showing"===n&&(s=0===r?1:o/t.sheetHeight),t.veilRef.current.style.opacity=String(s),t.sheetRef.current.style.transform=a}},t.show=function(){t.setState({isAnimating:!0},(function(){t.setStyles({status:"showing"}),t.setHash()}))},t.hide=function(){t.setState({isAnimating:!0},(function(){t.setStyles({status:"hiding"}),t.removeHash()}))},t.onSwipeAreaTouchStart=function(e){t.velocityTracker.clear(),t.setState({startY:e.nativeEvent.touches[0].clientY,swipeAreaTouched:!0})},t.onContentTouchStart=function(e){t.props.allowHideOnContentScroll&&!t.state.swipeAreaTouched&&(t.velocityTracker.clear(),t.setState({startY:e.nativeEvent.touches[0].clientY,startScrollTop:t.sheetScrollTop,contentTouched:!0}))},t.onSwipeAriaTouchMove=function(e){var n=e.nativeEvent.touches[0].clientY-t.state.startY;t.velocityTracker.addMovement({x:e.nativeEvent.touches[0].clientX,y:e.nativeEvent.touches[0].clientY}),t.setState({deltaY:n}),n<=0||t.setStyles({status:"showing",deltaHeight:n})},t.onContentTouchMove=function(e){if(t.props.allowHideOnContentScroll){var n=t.state,i=n.startScrollTop;if(!(n.swipeAreaTouched||t.sheetScrollTop>0||i>0&&i!==t.sheetScrollTop)){var r=e.nativeEvent.touches[0].clientY-t.state.startY;t.velocityTracker.addMovement({x:e.nativeEvent.touches[0].clientX,y:e.nativeEvent.touches[0].clientY}),t.setState({deltaY:r}),r<=0||t.setStyles({status:"showing",deltaHeight:r})}}},t.onTouchEndAction=function(e){var n=t.velocityTracker.getYAcceleration();t.sheetHeight<=e?t.props.hideSheet():e>v_&&n<=g_&&n>=m_||n>g_?t.hide():e>0&&t.show()},t.onSwipeAriaTouchEnd=function(){var e=t.state.deltaY;t.onTouchEndAction(e),t.setState({startY:0,deltaY:0,swipeAreaTouched:!1})},t.onContentTouchEnd=function(){var e=t.state,n=e.deltaY,i=e.swipeAreaTouched;t.props.allowHideOnContentScroll&&!i&&(t.onTouchEndAction(n),t.setState({startY:0,deltaY:0,contentTouched:!1}))},t.onVeilClick=function(){t.setState({veilTouched:!0}),t.hide()},t.onVeilTransitionEnd=function(){t.setState({isAnimating:!1}),"0"===t.veilOpacity&&t.props.hideSheet()},t.onContentTransitionEnd=function(e){"height"===e.propertyName&&t.sheetContentRef.current&&(t.sheetContentRef.current.style.transition="none")},t.onResizeWindow=function(){t.setState({inWindowResizeScope:!0}),t.onResize(),setTimeout((function(){return t.setState({inWindowResizeScope:!1})}),0)},t.onResize=function(){var e=t.state.prevInnerContentHeight!==t.innerContentHeight;if(t.sheetRef.current&&t.sheetContentRef.current&&e){t.sheetContentRef.current.style.transition=t.state.prevInnerContentHeight>t.innerContentHeight?"height 0s ease ".concat(t.transitionDuration):"none";var n=t.sheetTitleHeight+t.innerContentHeight,i=window.innerHeight,r=n>=i?i*__:n;t.sheetContentRef.current.style.height="".concat(r,"px"),t.sheetRef.current.style.transform="translate3d(0, -".concat(r+t.sheetTopHeight,"px, 0)"),t.setState({prevInnerContentHeight:n})}},t}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){this.addListeners(),this.show(),this.setInitialStyles(),this.setState({prevInnerContentHeight:this.innerContentHeight})}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.visible,i=t.location;!e.visible&&n&&this.show(),(e.visible&&!n||this.shouldClose(e))&&this.hide(),e.location.pathname!==i.pathname&&(y_=[])}},{key:"componentWillUnmount",value:function(){this.removeListeners()}},{key:"render",value:function(){var t=this.props,n=t.content,i=t.contentClassName,r=t.swipeAreaClassName,o=t.hideTopBar,a=t.title,s=this.state,u=s.deltaY,l=s.swipeAreaTouched,c=s.contentTouched,d=s.veilTouched,h=s.isAnimating,f={"with-transition":!u||d},p={"with-transition":!s.inWindowResizeScope&&f["with-transition"]},v={"without-scroll":u>0&&c||l};return e.createElement(e.Fragment,null,e.createElement("div",{ref:this.veilRef,className:f_("veil",f),onClick:h?void 0:this.onVeilClick,onTransitionEnd:this.onVeilTransitionEnd}),e.createElement("div",{ref:this.sheetRef,className:f_("sheet",p)},!o&&e.createElement("div",{ref:this.sheetTopRef,className:f_("sheet-top")},e.createElement("div",{className:f_("sheet-top-resizer")})),e.createElement("div",{className:f_("sheet-swipe-area",r),onTouchStart:this.onSwipeAreaTouchStart,onTouchMove:this.onSwipeAriaTouchMove,onTouchEnd:this.onSwipeAriaTouchEnd}),e.createElement("div",{ref:this.sheetContentRef,className:f_("sheet-content",v,i),onTouchStart:this.onContentTouchStart,onTouchMove:this.onContentTouchMove,onTouchEnd:this.onContentTouchEnd,onTransitionEnd:this.onContentTransitionEnd},a&&e.createElement("div",{ref:this.sheetTitleRef,className:f_("sheet-content-title")},a),e.createElement("div",{ref:this.sheetInnerContentRef},n))))}},{key:"veilOpacity",get:function(){var e;return(null===(e=this.veilRef.current)||void 0===e?void 0:e.style.opacity)||0}},{key:"sheetTopHeight",get:function(){var e;return(null===(e=this.sheetTopRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"sheetHeight",get:function(){var e;return(null===(e=this.sheetRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"innerContentHeight",get:function(){var e;return(null===(e=this.sheetInnerContentRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"sheetTitleHeight",get:function(){var e;return(null===(e=this.sheetTitleRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}},{key:"sheetScrollTop",get:function(){var e;return(null===(e=this.sheetContentRef.current)||void 0===e?void 0:e.scrollTop)||0}},{key:"setInitialStyles",value:function(){if(this.sheetContentRef.current&&this.sheetInnerContentRef.current){this.transitionDuration=getComputedStyle(this.sheetContentRef.current).getPropertyValue("--yc-sheet-transition-duration");var e=this.sheetHeight-this.sheetTopHeight;this.sheetContentRef.current.style.height="".concat(e,"px")}}},{key:"addListeners",value:function(){if(window.addEventListener("resize",this.onResizeWindow),this.sheetRef.current){this.observer=new MutationObserver(this.onResize),this.observer.observe(this.sheetRef.current,{subtree:!0,childList:!0})}}},{key:"removeListeners",value:function(){window.removeEventListener("resize",this.onResizeWindow),this.observer&&this.observer.disconnect()}},{key:"setHash",value:function(){var e=this.props,t=e.id,n=e.platform,i=e.location,r=e.history;if(n!==br.BROWSER){var o=Object.assign(Object.assign({},i),{hash:t});switch(n){case br.IOS:i.hash&&y_.push(i.hash),r.replace(o);break;case br.ANDROID:r.push(o)}}}},{key:"removeHash",value:function(){var e,t=this.props,n=t.id,i=t.platform,r=t.location,o=t.history;if(i!==br.BROWSER&&r.hash==="#".concat(n))switch(i){case br.IOS:o.replace(Object.assign(Object.assign({},r),{hash:null!==(e=y_.pop())&&void 0!==e?e:""}));break;case br.ANDROID:o.goBack()}}},{key:"shouldClose",value:function(e){var t=this.props,n=t.id,i=t.platform,r=t.location,o=t.history;return i!==br.BROWSER&&"POP"===o.action&&e.location.hash!==r.hash&&r.hash!=="#".concat(n)}}]),s}(e.Component);b_.defaultProps={id:"sheet",allowHideOnContentScroll:!0};var w_=function(t){var n,s,u=(s=t).displayName||s.name||"Component";return n=function(n){(0,o.Z)(u,n);var s=(0,a.Z)(u);function u(){return(0,i.Z)(this,u),s.apply(this,arguments)}return(0,r.Z)(u,[{key:"render",value:function(){return e.createElement(t,Object.assign({},this.props,{mobile:this.context.mobile,platform:this.context.platform,useHistory:this.context.useHistory,useLocation:this.context.useLocation,setMobile:this.context.setMobile,setPlatform:this.context.setPlatform}))}}]),u}(e.Component),n.displayName="withMobile(".concat(u,")"),n.contextType=kr,n}(function(t){var n=function(n){var i=n.useHistory,r=n.useLocation,o=(0,Ir.__rest)(n,["useHistory","useLocation"]);return e.createElement(t,Object.assign({},o,{history:i(),location:r()}))},i=t.displayName||t.name||"Component";return n.displayName="withRouterWrapper(".concat(i,")"),n}(b_)),C_=function(n){(0,o.Z)(u,n);var s=(0,a.Z)(u);function u(){var e;return(0,i.Z)(this,u),(e=s.apply(this,arguments)).bodyScrollLocked=!1,e.state={visible:!1},e.showSheet=function(){e.lockBodyScroll(),e.setState({visible:!0})},e.hideSheet=function(){e.restoreBodyScroll(),e.props.onClose&&e.props.onClose(),e.setState({visible:!1})},e}return(0,r.Z)(u,[{key:"componentDidMount",value:function(){this.props.visible&&this.showSheet()}},{key:"componentDidUpdate",value:function(e){!e.visible&&this.props.visible&&this.showSheet()}},{key:"componentWillUnmount",value:function(){this.restoreBodyScroll()}},{key:"render",value:function(){return this.state.visible?t.createPortal(this.renderSheet(),document.body):null}},{key:"restoreBodyScroll",value:function(){this.bodyScrollLocked&&(u.restoreBodyScroll(),this.bodyScrollLocked=!1)}},{key:"lockBodyScroll",value:function(){u.lockBodyScroll(),this.bodyScrollLocked=!0}},{key:"renderSheet",value:function(){var t=this.props,n=t.id,i=t.children,r=t.className,o=t.contentClassName,a=t.swipeAreaClassName,s=t.title,u=t.visible,l=t.allowHideOnContentScroll,c=t.hideTopBar,d=t.qa;return e.createElement("div",{"data-qa":d,className:f_(null,r)},e.createElement(w_,{id:n,content:i,contentClassName:o,swipeAreaClassName:a,title:s,visible:u,allowHideOnContentScroll:l,hideTopBar:c,hideSheet:this.hideSheet}))}}],[{key:"lockBodyScroll",value:function(){1===++u.bodyScrollLocksCount&&(u.bodyInitialOverflow=document.body.style.overflow,document.body.style.overflow="hidden")}},{key:"restoreBodyScroll",value:function(){0!==u.bodyScrollLocksCount&&0===--u.bodyScrollLocksCount&&(document.body.style.overflow=u.bodyInitialOverflow||"",u.bodyInitialOverflow=void 0)}}]),u}(e.Component);C_.bodyScrollLocksCount=0,C_.bodyInitialOverflow=void 0;var k_=vt("select-popup"),S_=e.forwardRef((function(t,n){var i=t.handleClose,r=t.width,o=t.open,a=t.controlRef,s=t.children,u=t.className,l=t.disablePortal,c=t.virtualized;return t.mobile?e.createElement(C_,{qa:Xm,className:u,visible:Boolean(o),onClose:i},s):e.createElement(gp,{className:k_(null,u),qa:Qm,anchorRef:n,placement:["bottom-start","bottom-end","top-start","top-end"],offset:[1,1],open:o,onClose:i,disablePortal:l,restoreFocus:!0,restoreFocusRef:a,modifiers:c_({width:r,disablePortal:l,virtualized:c})},s)}));S_.displayName="SelectPopup";var x_=vt("select-filter"),L_=e.forwardRef((function(t,n){var i=t.onChange,r=t.onKeyDown,o=t.renderFilter,a=t.size,s=t.value,u=t.placeholder,l=e.useRef(null),c=e.useRef(null);return e.useImperativeHandle(n,(function(){return{focus:function(){var e;return null===(e=c.current)||void 0===e?void 0:e.focus({preventScroll:!0})}}}),[]),e.createElement("div",{ref:l,className:x_()},o?o({onChange:i,onKeyDown:r,value:s,ref:c}):e.createElement(iv,{controlRef:c,controlProps:{className:x_("input"),size:1},size:a,value:s,placeholder:u,onUpdate:i,onKeyDown:r}))}));L_.displayName="SelectFilter";var E_=n(55255),N_=n(80276),D_=n(71461),M_="list-active-item",T_=[Wm.TAB];function O_(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 6 10",width:"6",height:"10",fill:"currentColor"},Lr,t),e.createElement("path",{d:"M0 0h2v2H0zm0 4h2v2H0zm0 4h2v2H0zm4-8h2v2H4zm0 4h2v2H4zm0 4h2v2H4z"}))}var I_=pt("list"),A_=function(e){return String(e)},P_=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).ref=e.createRef(),t.getRef=function(){return t.ref},t.onClick=function(){var e,n;return null===(n=(e=t.props).onClick)||void 0===n?void 0:n.call(e,t.props.item,t.props.itemIndex)},t.onClickCapture=function(e){s.publishEvent({domEvent:e,eventId:"click"})},t.onMouseEnter=function(){return!t.props.item.disabled&&t.props.onActivate(t.props.itemIndex)},t.onMouseLeave=function(){return t.props.onActivate(void 0)},t}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.item,i=t.style,r=t.sortable,o=t.sortHandleAlign,a=t.itemClassName,s=t.selected,u=t.active;return e.createElement("div",{role:"listitem","data-qa":u?M_:void 0,className:I_("item",{sortable:r,active:u,selected:s,inactive:n.disabled,"sort-handle-align":o},a),style:i,onClick:n.disabled?void 0:this.onClick,onClickCapture:n.disabled?void 0:this.onClickCapture,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,ref:this.ref},this.renderSortIcon(),this.renderContent())}},{key:"renderSortIcon",value:function(){return this.props.sortable?e.createElement("div",{className:I_("item-sort-icon")},e.createElement(O_,null)):null}},{key:"renderContent",value:function(){var t=this.props,n=t.renderItem,i=void 0===n?A_:n,r=t.item,o=t.active,a=t.itemIndex;return e.createElement("div",{className:I_("item-content")},i(r,o,a))}}]),s}(e.Component);P_.publishEvent=Pr.withEventPublisher("List");var R_=n(61883),Z_=n.n(R_);function F_(t){return Z_()(t).reduce((function(t,n){return t[n]=e.createRef(),t}),{})}var j_=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(e){var t;return(0,i.Z)(this,s),(t=n.call(this,e)).state=F_(e.itemCount),t}return(0,r.Z)(s,[{key:"render",value:function(){var t=this,n=e.Children.map(this.props.children,(function(n,i){return e.cloneElement(n,{ref:t.state[i]})}));return e.createElement("div",null,n)}},{key:"scrollToItem",value:function(e){var t,n,i,r=null===(t=this.state[e])||void 0===t?void 0:t.current;if(r&&"function"===typeof r.getRef){var o=r.getRef();o.current&&(null===(i=(n=o.current).scrollIntoView)||void 0===i||i.call(n,{block:"nearest"}))}}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.itemCount;return n===Object.keys(t).length?t:F_(n)}}]),s}(e.Component),H_=pt("list"),B_=28,z_=(0,D_.SortableElement)(P_),W_=(0,D_.SortableContainer)(N_.VariableSizeList,{withRef:!0}),V_=(0,D_.SortableContainer)(j_,{withRef:!0}),Y_=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).state={items:t.props.items,filter:""},t.refFilter=e.createRef(),t.refContainer=e.createRef(),t.blurTimer=null,t.onKeyDown=function(e){var n=t.state,i=n.activeItem,r=n.pageSize;if(!T_.includes(e.key))switch(e.key){case"ArrowDown":t.handleKeyMove(e,1,-1);break;case"ArrowUp":t.handleKeyMove(e,-1);break;case"PageDown":t.handleKeyMove(e,r);break;case"PageUp":t.handleKeyMove(e,-r);break;case"Home":t.handleKeyMove(e,t.state.items.length-(i||0));break;case"End":t.handleKeyMove(e,-(i||0)-1);break;case"Enter":"number"===typeof i&&t.props.onItemClick&&t.props.onItemClick(t.state.items[i],i,!0);break;default:t.refFilter.current&&t.refFilter.current.focus()}},t.renderItem=function(n){var i=n.index,r=n.style,o=t.props.sortHandleAlign,a=t.state,s=a.items,u=a.activeItem,l=s[i],c=t.props.sortable&&s.length>1&&!t.getFilter(),d=i===u||i===t.props.activeItemIndex,h=c?z_:P_;return e.createElement(h,{key:i,style:r,index:i,itemIndex:i,item:l,sortable:c,sortHandleAlign:o,renderItem:t.props.renderItem,itemClassName:t.props.itemClassName,active:d,selected:i===t.props.selectedItemIndex,onActivate:t.onItemActivate,onClick:t.props.onItemClick})},t.filterItem=function(e){return function(t){return String(t).includes(e)}},t.scrollToIndex=function(e){var n=t.getContainer();n&&n.scrollToItem(e)},t.deactivate=function(){t.blurTimer&&t.props.deactivateOnLeave&&t.setState({activeItem:void 0})},t.handleFocus=function(){t.blurTimer&&(clearTimeout(t.blurTimer),t.blurTimer=null)},t.handleBlur=function(){t.blurTimer||(t.blurTimer=setTimeout(t.deactivate,50))},t.onUpdateFilterInternal=function(e){var n=t.props,i=n.items,r=n.filterItem,o=void 0===r?t.filterItem:r,a=n.onFilterEnd;t.setState({filter:e,items:e?i.filter(o(e)):i},(function(){a&&a({items:t.state.items})}))},t.onFilterUpdate=function(e){t.props.onFilterUpdate?t.props.onFilterUpdate(e):t.onUpdateFilterInternal(e)},t.onItemsRendered=function(e){var n=e.visibleStartIndex,i=e.visibleStopIndex;t.setState({pageSize:i-n})},t.onItemActivate=function(e){t.state.sorting||t.activateItem(e,!1)},t.onMouseLeave=function(){t.deactivate()},t.onSortStart=function(){t.setState({sorting:!0})},t.onSortEnd=function(e){t.props.onSortEnd&&t.props.onSortEnd(e),t.setState({sorting:!1,activeItem:e.newIndex})},t.getItemHeight=function(e){var n=t.props.itemHeight;return"function"===typeof n?n(t.state.items[e],e):n},t.getVirtualizedItemHeight=function(e){return t.getItemHeight(e)||B_},t}return(0,r.Z)(s,[{key:"componentDidUpdate",value:function(e){if(this.props.items!==e.items){var t=this.getFilter();t&&!this.props.onFilterUpdate?this.onUpdateFilterInternal(t):this.setState({items:this.props.items})}this.props.activeItemIndex!==e.activeItemIndex&&this.activateItem(this.props.activeItemIndex)}},{key:"componentWillUnmount",value:function(){this.blurTimer=null}},{key:"render",value:function(){var t=this,n=this.props,i=n.emptyPlaceholder,r=n.virtualized,o=n.className,a=n.itemsClassName,s=n.qa,u=this.state.items;return e.createElement(kr.Consumer,null,(function(n){var l=n.mobile;return e.createElement("div",{className:H_({mobile:l},o),"data-qa":s,tabIndex:-1,onFocus:t.handleFocus,onBlur:t.handleBlur,onKeyDown:t.onKeyDown},t.renderFilter(),e.createElement("div",{className:H_("items",{virtualized:r},a),style:t.getItemsStyle(),onMouseLeave:t.onMouseLeave},t.renderItems(),0===u.length&&Boolean(i)&&e.createElement("div",{className:H_("empty-placeholder")},i)))}))}},{key:"getItems",value:function(){return this.state.items}},{key:"getActiveItem",value:function(){return"number"===typeof this.state.activeItem?this.state.activeItem:null}},{key:"activateItem",value:function(e){"number"===typeof e&&(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&this.scrollToIndex(e),this.setState({activeItem:e})}},{key:"renderFilter",value:function(){var t=this.props,n=t.size,i=t.filterable,r=t.filter,o=void 0===r?this.state.filter:r,a=t.filterPlaceholder,s=t.filterClassName,u=void 0===s?"":s,l=t.autoFocus;return i?e.createElement("div",{className:H_("filter",u)},e.createElement(iv,{controlRef:this.refFilter,size:n,placeholder:a,value:o,hasClear:!0,onUpdate:this.onFilterUpdate,autoFocus:l})):null}},{key:"renderSimpleContainer",value:function(){var t=this,n=this.props.sortable,i=this.state.items,r=n?V_:j_;return e.createElement(r,{helperClass:H_("item",{sorting:!0}),distance:5,lockAxis:"y",onSortStart:this.onSortStart,onSortEnd:this.onSortEnd,itemCount:i.length,ref:this.refContainer},i.map((function(e,n){return t.renderItem({index:n,style:{height:t.getItemHeight(n)}})})))}},{key:"renderVirtualizedContainer",value:function(){var t=this,n=this.props.sortable?W_:N_.VariableSizeList;return e.createElement(E_.default,null,(function(i){var r=i.width,o=i.height;return e.createElement(n,{ref:t.refContainer,width:r,height:o,itemSize:t.getVirtualizedItemHeight,itemData:t.state.items,itemCount:t.state.items.length,overscanCount:10,helperClass:H_("item",{sorting:!0}),distance:5,lockAxis:"y",onItemsRendered:t.onItemsRendered,onSortStart:t.onSortStart,onSortEnd:t.onSortEnd,activeItem:t.state.activeItem},t.renderItem)}))}},{key:"renderItems",value:function(){return this.props.virtualized?this.renderVirtualizedContainer():this.renderSimpleContainer()}},{key:"getContainer",value:function(){var e=this.refContainer.current,t=e&&"getWrappedInstance"in e&&"function"===typeof e.getWrappedInstance&&e.getWrappedInstance();return this.props.sortable?t:e}},{key:"getFilter",value:function(){var e=this.props.filter;return void 0===e?this.state.filter:e}},{key:"getItemsStyle",value:function(){var e=this.props.itemsHeight;return"function"===typeof e&&(e=e(this.state.items)),e?{height:e}:void 0}},{key:"handleKeyMove",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;e.preventDefault();var i=this.state.activeItem,r=void 0===i?n:i;this.activateItem(s.findNextIndex(this.state.items,r+t,Math.sign(t)))}}],[{key:"moveListElement",value:function(e,t,n){if(t!==n){var i=e.splice(t,1),r=(0,dt.Z)(i,1)[0];e.splice(n,0,r)}return e}},{key:"findNextIndex",value:function(e,t,n){for(var i=e.length,r=(t+i)%i,o=0;o<i;o+=1){if(e[r]&&!e[r].disabled)return r;r=(r+i+n)%i}}}]),s}(e.Component);Y_.defaultProps={items:[],itemClassName:"",filterable:!0,sortable:!1,virtualized:!0,deactivateOnLeave:!0};var U_=vt("select-list"),K_=function(t){var n=t.label;return e.createElement("div",{className:U_("group-label",{empty:""===n})},e.createElement("div",{className:U_("group-label-content")},n))};function q_(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"none"},Lr,t),e.createElement("path",{d:"M3 7.75L6.75 11.5L13 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}))}var G_=vt("select-list"),$_=function(t){var n=t.option,i=n.content,r=n.children,o=n.disabled;return e.createElement("span",{className:G_("option-default-label",{disabled:o})},i||r)},Q_=function(t){var n=t.renderOption,i=t.value,r=t.option,o=t.multiple,a=-1!==i.indexOf(r.value),s=n?n(r):e.createElement($_,{option:r});return e.createElement("div",{"data-qa":r.qa,className:G_("option",{colored:a&&!o,disabled:r.disabled})},s,o&&e.createElement(Mr,{className:G_("tick-icon",{shown:a&&o}),data:q_}))},X_=e.forwardRef((function(t,n){var i=t.onOptionClick,r=t.renderOption,o=t.getOptionHeight,a=t.size,s=t.flattenOptions,u=t.value,l=t.multiple,c=t.virtualized,d=t.mobile,h=function(e){var t=e.getOptionHeight,n=e.size,i=e.options,r=e.mobile;return i.reduce((function(e,i,o){return e+Jm({getOptionHeight:t,size:n,option:i,index:o,mobile:r})}),0)}({options:s,getOptionHeight:o,size:a,mobile:d}),f=e.useCallback((function(e,t){return Jm({getOptionHeight:o,size:a,option:e,index:t,mobile:d})}),[o,d,a]),p=e.useCallback((function(t,n,i){if("label"in t)return e.createElement(K_,{label:t.label});var o=r?function(e){return r(e,{itemHeight:f(e,i)})}:void 0;return e.createElement(Q_,{option:t,value:u,multiple:l,renderOption:o})}),[r,u,l,f]);return e.createElement(Y_,{ref:n,className:qm({size:a,virtualized:c,mobile:d}),qa:$m,itemClassName:qm("item"),itemHeight:f,itemsHeight:c?h:void 0,items:s,filterable:!1,virtualized:c,renderItem:p,onItemClick:i})}));X_.displayName="SelectList";var J_=vt("select-empty-placeholder"),ey=function(t){var n=t.renderEmptyOptions,i=t.filter;return e.createElement("div",{className:J_({empty:!n})},null===n||void 0===n?void 0:n({filter:i}))};var ty=e.forwardRef((function(t,n){var i=t.onUpdate,r=t.onOpenChange,o=t.onFilterChange,a=t.renderControl,s=t.renderFilter,u=t.renderOption,l=t.renderSelectedOption,c=t.renderEmptyOptions,d=t.getOptionHeight,h=t.filterOption,f=t.name,p=t.className,v=t.controlClassName,g=t.popupClassName,m=t.qa,_=t.value,y=t.defaultValue,b=t.defaultOpen,w=t.open,C=t.label,k=t.placeholder,S=t.filterPlaceholder,x=t.width,L=t.popupWidth,E=t.error,N=t.virtualizationThreshold,D=void 0===N?50:N,M=t.view,T=void 0===M?"normal":M,O=t.size,I=void 0===O?"m":O,A=t.pin,P=void 0===A?"round-round":A,R=t.multiple,Z=void 0!==R&&R,F=t.disabled,j=void 0!==F&&F,H=t.filterable,B=void 0!==H&&H,z=t.disablePortal,W=t.onClose,V=Sr(),Y=(0,dt.Z)(V,1)[0],U=e.useReducer(Ym,Vm),K=(0,dt.Z)(U,2),q=K[0].filter,G=K[1],$=e.useRef(null),Q=e.useRef(null),X=e.useRef(null),J=e.useRef(null),ee=rp(n,Q),te=zm({onUpdate:i,value:_,defaultValue:y,defaultOpen:b,multiple:Z,open:w,onClose:W,onOpenChange:r}),ne=te.value,ie=te.open,re=te.toggleOpen,oe=te.handleSelection,ae=function(e){return e.reduce((function(e,t){return"label"in t?(e.push({label:t.label,disabled:!0}),e.push.apply(e,(0,Lt.Z)(t.options||[]))):e.push(t),e}),[])}(t.options||t_(t.children)),se=B?o_({options:ae,filter:q,filterOption:h}):ae,ue=function(t,n,i){if(0===n.length)return null;var r=t.reduce((function(e,t){return"label"in t||n.includes(t.value)&&e.push(t),e}),[]);return i?r.map((function(t,n){return e.createElement(e.Fragment,{key:t.value},i(t,n))})):r.map((function(e){return e_(e)})).join(", ")}(ae,ne,l),le=se.length>=D,ce=e.useCallback((function(e){var t,n;if(e&&!("label"in e)){if(Z){var i=null===(t=null===J||void 0===J?void 0:J.current)||void 0===t?void 0:t.getActiveItem();null===(n=X.current)||void 0===n||n.focus(),"number"===typeof i&&setTimeout((function(){var e;null===(e=null===J||void 0===J?void 0:J.current)||void 0===e||e.activateItem(i,!0)}),50)}oe(e)}}),[oe,Z]),de=e.useCallback((function(e){var t;[Wm.ENTER,Wm.SPACEBAR].includes(e.key)&&ie&&(e.preventDefault(),e.key===Wm.SPACEBAR&&ce(function(e){var t,n=i_(e),i=null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.getActiveItem();return"number"===typeof i?n[i]:void 0}(J))),null===(t=null===J||void 0===J?void 0:J.current)||void 0===t||t.onKeyDown(e)}),[ce,ie]),he=e.useCallback((function(e){var t;null===(t=null===J||void 0===J?void 0:J.current)||void 0===t||t.onKeyDown(e)}),[]),fe=e.useCallback((function(e){null===o||void 0===o||o(e),G({type:"SET_FILTER",payload:{filter:e}})}),[o]),pe=e.useCallback((function(e){var t;if(e){var n=n_(e,i_(J));"number"===typeof n&&-1!==n&&(null===(t=null===J||void 0===J?void 0:J.current)||void 0===t||t.activateItem(n,!0))}}),[]);s_({onChange:pe,open:ie,disabled:B}),e.useEffect((function(){var e;ie?(!function(e){var t,n=i_(e),i=n[0]&&"label"in n[0];null===(t=null===e||void 0===e?void 0:e.current)||void 0===t||t.activateItem(i?1:0,!1)}(J),B&&(null===(e=X.current)||void 0===e||e.focus())):G({type:"SET_FILTER",payload:{filter:""}})}),[ie,B]);var ve=Object.assign({},"max"===x&&{width:x}),ge={};"number"===typeof x&&(ge.width=x);var me=e.useCallback((function(){return re(!1)}),[re]),_e=function(t){var n=t.onFocusOutside,i=t.enabled,r=void 0===i||i,o=e.useRef(!1);return e.useEffect((function(){if(r){var e=function(e){o.current=!1,window.setTimeout((function(){o.current||n(e)}),0)};return window.addEventListener("focus",e,{capture:!0}),function(){window.removeEventListener("focus",e,{capture:!0})}}}),[r,n]),{onFocus:e.useCallback((function(){o.current=!0}),[]),onBlur:e.useCallback((function(e){!r||null!==e.relatedTarget&&e.relatedTarget!==document.body||n(e.nativeEvent)}),[n,r])}}({enabled:ie,onFocusOutside:me}),ye=_e.onFocus,be=_e.onBlur;return e.createElement("div",{ref:$,className:Um(ve,p),onFocus:ye,onBlur:be,style:ge},e.createElement(l_,{toggleOpen:re,ref:ee,className:v,qa:m,name:f,view:T,size:I,pin:P,label:C,placeholder:k,selectedOptionsContent:ue,error:E,open:ie,disabled:j,onKeyDown:de,renderControl:a,value:ne}),e.createElement(S_,{ref:$,className:g,controlRef:Q,width:L,open:ie,handleClose:me,disablePortal:z,virtualized:le,mobile:Y},B&&e.createElement(L_,{ref:X,size:I,value:q,placeholder:S,onChange:fe,onKeyDown:he,renderFilter:s}),se.length?e.createElement(X_,{ref:J,size:I,value:ne,mobile:Y,flattenOptions:se,multiple:Z,virtualized:le,onOptionClick:ce,renderOption:u,getOptionHeight:d}):e.createElement(ey,{filter:q,renderEmptyOptions:c})))}));ty.Option=function(e){return null},ty.OptionGroup=function(e){return null};var ny=JSON.parse('{"label":"Usage:","default_value":"Any","groups_count":["{{count}} group","{{count}} groups","{{count}} groups","No groups"]}'),iy=JSON.parse('{"label":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435:","default_value":"\u041b\u044e\u0431\u043e\u0435","groups_count":["{{count}} \u0433\u0440\u0443\u043f\u043f\u0430","{{count}} \u0433\u0440\u0443\u043f\u043f\u044b","{{count}} \u0433\u0440\u0443\u043f\u043f","\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f"]}'),ry="ydb-usage-filter";na.registerKeyset(Ko.En,ry,ny),na.registerKeyset(Ko.Ru,ry,iy);var oy=na.keyset(ry),ay=(0,ct.default)("usage-filter"),sy=function(t){var n=t.className,i=t.value,r=void 0===i?[]:i,o=t.groups,a=void 0===o?[]:o,s=t.onChange,u=t.debounce,l=void 0===u?200:u,c=t.disabled,d=(0,e.useState)(r),h=(0,dt.Z)(d,2),f=h[0],p=h[1],v=(0,e.useRef)();(0,e.useEffect)((function(){p((function(e){return e.join(",")!==r.join(",")?r:e}))}),[r]);var g=(0,e.useMemo)((function(){return a.map((function(e){var t=e.threshold,n=e.count;return{value:String(t),text:"".concat(t,"%"),data:{count:n}}}))}),[a]),m=Math.max.apply(Math,(0,Lt.Z)(a.map((function(e){return e.count}))));return(0,fs.jsx)(ty,{className:ay(null,n),label:oy("label"),value:f,placeholder:oy("default_value"),options:g,multiple:!0,onUpdate:function(e){p(e),window.clearTimeout(v.current),v.current=window.setTimeout((function(){null===s||void 0===s||s(e)}),l)},renderOption:function(e){var t=e.value,n=e.data,i=e.text;return(0,fs.jsxs)("div",{className:ay("option"),children:[(0,fs.jsx)(Gf,{className:ay("option-title"),status:am(Number(t)),name:i,size:"xs"}),(0,fs.jsxs)("div",{className:ay("option-meta"),children:[oy("groups_count",{count:n.count}),(0,fs.jsx)("div",{className:ay("option-bar"),style:{width:"".concat(n.count/m*100,"%")}})]})]})},getOptionHeight:function(){return 50},popupWidth:280,disabled:c})},uy=(0,ct.default)("global-storage"),ly=Rt(Rt({},fi),{},{defaultOrder:zn.DESCENDING}),cy=function(t){var n=t.additionalNodesInfo,i=t.tenant,r=t.nodeId,o=Q(),a=vf((function(e){return e.schema})).autorefresh,s=vf((function(e){return e.storage})),u=s.loading,l=s.wasLoaded,c=s.error,d=s.type,h=s.visible,f=s.filter,p=s.usageFilter,v=s.nodesUptimeFilter,g=vf(Tg),m=vf(Og),_=vf(xg),y=vf(kg),b=vf(od),w=vf(Mg);(0,e.useEffect)((function(){return o(rd()),function(){o({type:Ka})}}),[o]);var C=(0,e.useCallback)((function(e){e||o({type:Ja}),o(function(e){var t=e.tenant,n=e.visibleEntities,i=e.nodeId,r=e.type,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return r===Ya.nodes?Oo({request:window.api.getNodes({tenant:t,visibleEntities:n,type:"static"},{concurrentId:o}),actions:Ua,dataHandler:function(e){return{nodes:e}}}):Oo({request:window.api.getStorageInfo({tenant:t,visibleEntities:n,nodeId:i},{concurrentId:o}),actions:Ua,dataHandler:function(e){return{groups:e}}})}({tenant:i,nodeId:r,visibleEntities:h,type:d},{concurrentId:"getStorageInfo"}))}),[o,i,r,h,d]);pf(C,[C],!i||a);var k=function(e){o(function(e){return{type:Ga,data:e}}(e))},S=function(e){o(function(e){return{type:qa,data:e}}(e))},x=function(e){o(function(e){return{type:$a,data:e}}(e))},L=function(e){o(function(e){return{type:Qa,data:e}}(e))},E=function(e){o(function(e){return{type:Xa,data:e}}(e))},N=function(){x(Va.all),E(Wo.All)},D=function(){var e=d===Ya.groups?"Groups":"Nodes",t=d===Ya.groups?y:_,n=d===Ya.groups?m.length:g.length;return(0,fs.jsx)(Av,{label:e,loading:u&&!l,total:t.total,current:n})};return c?403===c.status?(0,fs.jsx)(Mv,{}):(0,fs.jsx)(mv,{error:c}):(0,fs.jsxs)(cv,{children:[(0,fs.jsx)(cv.Controls,{children:(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)("div",{className:uy("search"),children:(0,fs.jsx)(rv,{placeholder:d===Ya.groups?"Group ID, Pool name":"Node ID, FQDN",onChange:S,value:f})}),(0,fs.jsx)(jm,{value:d,onChange:L}),(0,fs.jsx)(Bm,{value:h,onChange:x}),d===Ya.nodes&&(0,fs.jsx)(Tv,{value:v,onChange:E}),d===Ya.groups&&(0,fs.jsx)(sy,{value:p,onChange:k,groups:w,disabled:0===w.length}),D()]})}),(0,fs.jsx)(cv.Table,{loading:u&&!l,className:uy("table"),children:(0,fs.jsxs)(fs.Fragment,{children:[d===Ya.groups&&(0,fs.jsx)(Cm,{visibleEntities:h,data:m,tableSettings:ly,nodes:b,onShowAll:function(){return x(Va.all)}}),d===Ya.nodes&&(0,fs.jsx)(Rm,{visibleEntities:h,nodesUptimeFilter:v,data:g,tableSettings:ly,onShowAll:N,additionalNodesInfo:n})]})})]})},dy=pt("control-label"),hy=(0,e.forwardRef)((function(t,n){var i=t.children,r=t.className,o=t.labelClassName,a=t.title,s=t.style,u=t.disabled,l=void 0!==u&&u,c=t.control,d=t.size,h=void 0===d?"m":d,f=t.qa,p=(0,e.cloneElement)(c,{className:dy("indicator",c.props.className)});return e.createElement("label",{ref:n,title:a,style:s,className:dy({size:h,disabled:l},r),"data-qa":f},p,i?e.createElement("span",{className:dy("text",o)},i):null)}));function fy(t){var n=t.name,i=t.value,r=t.id,o=t.defaultChecked,a=t.checked,s=t.indeterminate,u=t.onUpdate,l=t.onChange,c=t.controlRef,d=t.controlProps,h=t.onFocus,f=t.onBlur,p=t.disabled,v=e.useRef(null),g=e.useState(null!==o&&void 0!==o&&o),m=(0,dt.Z)(g,2),_=m[0],y=m[1],b="boolean"===typeof a,w=b?a:_,C=!s&&a,k=s?"mixed":w,S=rp(c,v);e.useLayoutEffect((function(){v.current&&(v.current.indeterminate=Boolean(s))}),[s]);var x=e.useCallback((function(e){Pr.publish({componentId:"Checkbox",eventId:"click",domEvent:e,meta:{checked:e.target.checked}})}),[]);return{checked:w,inputProps:Object.assign(Object.assign({},d),{name:n,value:i,id:r,onFocus:h,onBlur:f,disabled:p,type:"checkbox",onChange:function(e){b||y(e.target.checked),l&&l(e),u&&u(e.target.checked)},onClickCapture:x,defaultChecked:o,checked:C,"aria-checked":k,ref:S})}}function py(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 10",width:"16",height:"16",fill:"currentColor"},t),e.createElement("path",{d:"M.49 5.385l1.644-1.644 4.385 4.385L4.874 9.77.49 5.385zm4.384 1.096L10.356 1 12 2.644 6.519 8.126 4.874 6.48v.001z"}))}function vy(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 17 17",width:"16",height:"16",fill:"currentColor"},t),e.createElement("path",{d:"M4 7h9v3H4z"}))}hy.displayName="ControlLabel";var gy=pt("checkbox"),my=e.forwardRef((function(t,n){var i=t.size,r=void 0===i?"m":i,o=t.indeterminate,a=t.disabled,s=void 0!==a&&a,u=t.content,l=t.children,c=t.title,d=t.style,h=t.className,f=t.qa,p=fy(t),v=p.checked,g=p.inputProps,m=u||l,_=e.createElement("span",{className:gy("indicator")},e.createElement("span",{className:gy("icon"),"aria-hidden":!0},o?e.createElement(vy,{className:gy("icon-svg",{type:"dash"})}):e.createElement(py,{className:gy("icon-svg",{type:"tick"})})),e.createElement("input",Object.assign({},g,{className:gy("control")})),e.createElement("span",{className:gy("outline")}));return e.createElement(hy,{ref:n,title:c,style:d,size:r,disabled:s,className:gy({size:r,disabled:s,indeterminate:o,checked:v},h),qa:f,control:_},m)})),_y=pt("loader");function yy(t){var n=t.size,i=void 0===n?"s":n,r=t.className;return e.createElement("div",{className:_y({size:i},r)},e.createElement("div",{className:_y("left")}),e.createElement("div",{className:_y("center")}),e.createElement("div",{className:_y("right")}))}var by,wy=(0,ct.default)("ydb-loader"),Cy=function(e){var t=e.size,n=void 0===t?"m":t;return(0,fs.jsx)("div",{className:wy(),children:(0,fs.jsx)(yy,{size:n})})};!function(e){e.VERSION="Version",e.TENANT="Database",e.STORAGE="Storage"}(by||(by={}));var ky=function(e,t){var n;return(null===(n=e.title)||void 0===n?void 0:n.localeCompare(t.title||""))||-1},Sy=n(780),xy=n.n(Sy),Ly=pt("progress"),Ey=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){return(0,i.Z)(this,s),n.apply(this,arguments)}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.view,i=t.className;return e.createElement("div",{className:Ly({view:n},i)},this.renderText(),this.renderContent())}},{key:"getTheme",value:function(){if(s.isProgressWithStack(this.props))throw new Error("Unexpected behavior");var e=this.props,t=e.theme,n=e.colorStops,i=e.colorStopsValue,r=e.value;if(n){var o=n.find((function(e,t){var o="number"===typeof i?i:r;return s.isBetween(o,t>1?n[t-1].stop:0,t<n.length-1?e.stop:100)}));return o?o.theme:t}return t}},{key:"renderContent",value:function(){return s.isProgressWithStack(this.props)?this.renderStack(this.props):this.renderItem(this.props)}},{key:"renderItem",value:function(t){var n=t.value,i=Ly("item",{theme:this.getTheme(),loading:this.props.loading}),r=s.getOffset(n),o={transform:"translateX(".concat(r,"%)")};return s.isFiniteNumber(n)?e.createElement("div",{className:i,style:o},this.renderInnerText(r)):null}},{key:"renderStack",value:function(t){var n=t.stack,i=t.stackClassName,r=Ly("stack",i),o=t.value||s.getValueFromStack(n),a=s.getOffset(o),u={transform:"translateX(".concat(a,"%)")},l={width:"".concat(-a,"%")};return e.createElement("div",{className:r,style:u},e.createElement("div",{className:Ly("item"),style:l}),n.map((function(t,n){var i=t.value,r=t.color,a=t.title,u=t.theme,c=t.loading,d=void 0!==c&&c,h=t.className,f=t.content;l={width:"".concat(i,"%"),backgroundColor:r};var p={loading:d};return"undefined"===typeof r&&(p.theme=u||"default"),s.isFiniteNumber(o)?e.createElement("div",{key:n,className:Ly("item",p,h),style:l,title:a},f):null})),this.renderInnerText(a))}},{key:"renderInnerText",value:function(t){var n=this.props.text;if(!n)return null;var i=Ly("text-inner"),r={transform:"translateX(".concat(-t,"%)")};return e.createElement("div",{className:i,style:r},n)}},{key:"renderText",value:function(){var t=this.props.text,n=Ly("text");return e.createElement("div",{className:n},t)}}],[{key:"isFiniteNumber",value:function(e){return isFinite(e)&&!isNaN(e)}},{key:"isBetween",value:function(e,t,n){return e>=t&&e<=n}},{key:"getOffset",value:function(e){return e<100?e-100:0}},{key:"getValueFromStack",value:function(e){return xy()(e,(function(e){return e.value}))}},{key:"isProgressWithStack",value:function(e){return void 0!==e.stack}}]),s}(e.Component);Ey.defaultProps={text:"",theme:"default",view:"normal",loading:!1};var Ny=(0,ct.default)("ydb-versions-nodes-tree-title"),Dy=function(e){var t,n=e.title,i=e.nodes,r=e.items,o=e.versionColor,a=e.versionsValues;return t=r?r.reduce((function(e,t){return t.nodes?e+t.nodes.length:e}),0):i?i.length:0,(0,fs.jsxs)("div",{className:Ny("overview"),children:[(0,fs.jsxs)("div",{className:Ny("overview-container"),children:[o?(0,fs.jsx)("div",{className:Ny("version-color"),style:{background:o}}):null,(0,fs.jsx)("span",{className:Ny("overview-title"),children:n})]}),(0,fs.jsxs)("div",{className:Ny("overview-info"),children:[(0,fs.jsxs)("div",{children:[(0,fs.jsx)("span",{className:Ny("info-value"),children:t}),(0,fs.jsx)("span",{className:Ny("info-label",{margin:"left"}),children:"Nodes"})]}),a?(0,fs.jsxs)("div",{className:Ny("version-progress"),children:[(0,fs.jsx)("span",{className:Ny("info-label",{margin:"right"}),children:"Versions"}),(0,fs.jsx)(Ey,{view:"thin",value:100,stack:a})]}):null]})]})},My=[{name:"NodeId",header:"#",width:"80px",align:zn.LEFT,render:function(e){return e.row.NodeId}},{name:"Host",render:function(e){var t,n=e.row,i=n.Endpoints&&(null===(t=n.Endpoints.find((function(e){return"http-mon"===e.Name})))||void 0===t?void 0:t.Address),r=n.Host&&"".concat(n.Host).concat(i||"")||"unknown",o=!Go(n)&&n.NodeId?ig(n.NodeId):void 0;return(0,fs.jsx)(Gf,{name:r,path:o,hasClipboardButton:!0,showStatus:!1})},width:"400px",align:zn.LEFT},{name:"Endpoints",sortable:!1,render:function(e){var t=e.row;return t.Endpoints?t.Endpoints.map((function(e){var t=e.Name,n=e.Address;return"".concat(t," ").concat(n)})).join(", "):"-"},width:"300px",align:zn.LEFT},{name:"uptime",header:"Uptime",sortAccessor:function(e){var t=e.StartTime;return t&&-t},width:"120px",align:zn.LEFT,render:function(e){return e.row.uptime}},{name:"MemoryUsed",header:"Memory used",sortAccessor:function(e){var t=e.MemoryUsed;return Number(void 0===t?0:t)},defaultOrder:zn.DESCENDING,render:function(e){var t=e.row;return t.MemoryUsed?ra(t.MemoryUsed):"\u2014"},width:"120px",align:zn.RIGHT},{name:"MemoryLimit",header:"Memory limit",sortAccessor:function(e){var t=e.MemoryLimit;return Number(void 0===t?0:t)},defaultOrder:zn.DESCENDING,render:function(e){var t=e.row;return t.MemoryLimit?ra(t.MemoryLimit):"\u2014"},width:"120px",align:zn.RIGHT},{name:"PoolStats",header:"Pools",sortAccessor:function(e){var t=e.PoolStats;return(void 0===t?[]:t).reduce((function(e,t){return e+(t.Usage||0)}),0)},defaultOrder:zn.DESCENDING,width:"120px",render:function(e){var t=e.row;return t.PoolStats?(0,fs.jsx)(xp,{pools:t.PoolStats}):"\u2014"},align:zn.LEFT},{name:"LoadAverage",header:"Load average",sortAccessor:function(e){var t=e.LoadAverage;return(void 0===t?[]:t).slice(0,1).reduce((function(e,t){return e+t}),0)},defaultOrder:zn.DESCENDING,width:"200px",render:function(e){var t=e.row;return t.LoadAverage&&t.LoadAverage.length>0?(0,fs.jsx)(Qv,{value:t.LoadAverage[0],percents:!0,colorizeProgress:!0}):"\u2014"},align:zn.LEFT}],Ty=function(e){var t=e.nodes;return(0,fs.jsx)(zn,{theme:"yandex-cloud",data:t,columns:My,settings:fi})},Oy=(0,ct.default)("ydb-versions-grouped-node-tree"),Iy=function t(n){var i=n.title,r=n.nodes,o=n.items,a=n.expanded,s=void 0!==a&&a,u=n.versionColor,l=n.versionsValues,c=n.level,d=void 0===c?0:c,h=(0,e.useState)(!1),f=(0,dt.Z)(h,2),p=f[0],v=f[1];(0,e.useEffect)((function(){v(s)}),[s]);var g=(0,fs.jsx)(Dy,{title:i,nodes:r,items:o,versionColor:u,versionsValues:l}),m=function(){v((function(e){return!e}))};return o?(0,fs.jsx)("div",{className:Oy({"first-level":0===d}),children:(0,fs.jsx)(ea.TreeView,{name:g,collapsed:!p,hasArrow:!0,onClick:m,onArrowClick:m,children:o.map((function(e,n){return(0,fs.jsx)(t,{title:e.title,nodes:e.nodes,expanded:s,versionColor:e.versionColor,level:d+1},n)}))},i)}):(0,fs.jsx)("div",{className:Oy({"first-level":0===d}),children:(0,fs.jsx)(ea.TreeView,{name:g,collapsed:!p,hasArrow:!0,onClick:m,onArrowClick:m,children:(0,fs.jsx)("div",{className:Oy("dt-wrapper"),children:(0,fs.jsx)(Ty,{nodes:r||[]})})},i)})},Ay=(0,ct.default)("ydb-versions"),Py=function(t){var n=t.versionToColor,i=Q(),r=vf((function(e){return e.clusterNodes})),o=r.nodes,a=void 0===o?[]:o,s=r.loading,u=r.wasLoaded;pf((function(){return i(Ia())}),[i],!0);var l=(0,e.useState)(by.VERSION),c=(0,dt.Z)(l,2),d=c[0],h=c[1],f=(0,e.useState)(!1),p=(0,dt.Z)(f,2),v=p[0],g=p[1],m=function(e){h(e)};if(s&&!u)return(0,fs.jsx)(Cy,{});var _=function(e,t,n){if(e&&e.length){if(n===by.VERSION){var i=(0,on.groupBy)(e,"Version");return Object.keys(i).map((function(e){var n=i[e].filter((function(e){var t=e.Tenants;return Boolean(t)})),r=(0,on.groupBy)(n,"Tenants"),o=Object.keys(r).map((function(e){return{title:e,nodes:r[e]}})).sort(ky);return o.length?{title:e,items:o,versionColor:null===t||void 0===t?void 0:t.get(of(e))}:null})).filter((function(e){return Boolean(e)}))}var r=e.filter((function(e){var t=e.Tenants;return Boolean(t)})),o=(0,on.groupBy)(r,"Tenants");return Object.keys(o).map((function(e){var n=hf(o[e],t),i=(0,on.groupBy)(o[e],"Version"),r=Object.keys(i).map((function(e){return{title:e,nodes:i[e],versionColor:null===t||void 0===t?void 0:t.get(of(e))}}));return r.length?{title:e,items:r,versionsValues:n}:null})).filter((function(e){return Boolean(e)})).sort(ky)}}(a,n,d),y=function(e,t){if(e&&e.length){var n=e.filter((function(e){var t=e.Roles;return null===t||void 0===t?void 0:t.includes("Storage")})),i=(0,on.groupBy)(n,"Version");return Object.keys(i).map((function(e){return{title:e,nodes:i[e],versionColor:null===t||void 0===t?void 0:t.get(of(e))}}))}}(a,n),b=function(e,t){if(e&&e.length){var n=e.filter((function(e){return!e.Roles})),i=(0,on.groupBy)(n,"Version");return Object.keys(i).map((function(e){return{title:e,nodes:i[e],versionColor:null===t||void 0===t?void 0:t.get(of(e))}}))}}(a,n),w=null!==y&&void 0!==y&&y.length?(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)("h3",{children:"Storage nodes"}),y.map((function(e){var t=e.title,n=e.nodes,i=e.items,r=e.versionColor;return(0,fs.jsx)(Iy,{title:t,nodes:n,items:i,versionColor:r},"storage-nodes-".concat(t))}))]}):null,C=null!==_&&void 0!==_&&_.length?(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)("h3",{children:"Database nodes"}),(0,fs.jsxs)("div",{className:Ay("controls"),children:[(0,fs.jsxs)("div",{className:Ay("group"),children:[(0,fs.jsx)("span",{className:Ay("label"),children:"Group by:"}),(0,fs.jsxs)(Pp,{value:d,onUpdate:m,children:[(0,fs.jsx)(Pp.Option,{value:by.TENANT,children:by.TENANT}),(0,fs.jsx)(Pp.Option,{value:by.VERSION,children:by.VERSION})]})]}),(0,fs.jsx)(my,{className:Ay("checkbox"),onChange:function(){return g((function(e){return!e}))},checked:v,children:"All expanded"})]}),_.map((function(e){var t=e.title,n=e.nodes,i=e.items,r=e.versionColor,o=e.versionsValues;return(0,fs.jsx)(Iy,{title:t,nodes:n,items:i,expanded:v,versionColor:r,versionsValues:o},"tenant-nodes-".concat(t))}))]}):null,k=null!==b&&void 0!==b&&b.length?(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)("h3",{children:"Other nodes"}),b.map((function(e){var t=e.title,n=e.nodes,i=e.items,r=e.versionColor,o=e.versionsValues;return(0,fs.jsx)(Iy,{title:t,nodes:n,items:i,versionColor:r,versionsValues:o},"other-nodes-".concat(t))}))]}):null;return(0,fs.jsxs)("div",{className:Ay("versions"),children:[w,C,k]})},Ry=(0,ct.default)("tag"),Zy=function(e){var t=e.text,n=e.type;return(0,fs.jsx)("div",{className:Ry({type:n}),children:t})},Fy=(0,ct.default)("tags"),jy=function(e){var t=e.tags,n=e.tagsType,i=e.className,r=void 0===i?"":i;return(0,fs.jsx)("div",{className:Fy(null,r),children:t&&t.map((function(e,t){return(0,fs.jsx)(Zy,{text:e,type:n},t)}))})},Hy=(0,ct.default)("tablet"),By=function(e){var t,n=e.tablet,i=void 0===n?{}:n,r=e.tenantName,o=i.TabletId,a=i.NodeId,s=null===(t=i.Overall)||void 0===t?void 0:t.toLowerCase(),u=o&&Ph(Zh.tablet,{id:o},{nodeId:a,tenantName:r});return(0,fs.jsx)(wp,{className:Hy("wrapper"),content:(0,fs.jsx)(ks,{data:i,className:Hy("popup-content")}),children:(0,fs.jsx)(Nf,{to:u,children:(0,fs.jsx)("div",{className:Hy({status:s}),children:(0,fs.jsx)("div",{className:Hy("type"),children:[$n(i.Type)]})})})})},zy=(0,ct.default)("ydb-external-link-with-icon"),Wy=function(e){var t=e.title,n=e.url;return(0,fs.jsxs)(Mf,{href:n,target:"_blank",className:zy(),children:[t,"\xa0",(0,fs.jsx)(Lv,{name:"external",viewBox:"0 0 16 16",width:16,height:16})]})},Vy=(0,ct.default)("ydb-cluster-versions-bar"),Yy=function(e){var t=e.versionsValues,n=void 0===t?[]:t;return(0,fs.jsxs)("div",{className:Vy(),children:[(0,fs.jsx)(Ey,{value:100,stack:n,view:"thin"}),(0,fs.jsx)("div",{className:Vy("versions"),children:n.map((function(e,t){return(0,fs.jsx)("div",{className:Vy("version-title"),style:{color:e.color},title:e.version,children:"".concat(e.version).concat(t===n.length-1?"":",")},e.version)}))})]})},Uy=(0,ct.default)("ydb-cluster-info-skeleton"),Ky=function(){return(0,fs.jsxs)("div",{className:Uy("label"),children:[(0,fs.jsx)(av,{className:Uy("label__text")}),(0,fs.jsx)("div",{className:Uy("label__dots")})]})},qy=function(e){var t=e.rows,n=void 0===t?7:t,i=e.className;return(0,fs.jsxs)("div",{className:Uy(null,i),children:[(0,Lt.Z)(new Array(n)).map((function(e,t){return(0,fs.jsxs)("div",{className:Uy("row"),children:[(0,fs.jsx)(Ky,{}),(0,fs.jsx)(av,{className:Uy("value")})]},"skeleton-row-".concat(t))})),(0,fs.jsxs)("div",{className:Uy("row"),children:[(0,fs.jsx)(Ky,{}),(0,fs.jsx)(av,{className:Uy("versions")})]},"versions")]})},Gy=function(e,t){return e.Type===mp.TxAllocator?1:t.Type===mp.TxAllocator?-1:0},$y=(0,ct.default)("cluster-info"),Qy=function(e){var t=e.cluster,n=void 0===t?{}:t,i=e.versionsValues,r=void 0===i?[]:i,o=e.loading,a=e.error,s=e.additionalClusterProps,u=void 0===s?{}:s,l=vf((function(e){return e.singleClusterMode})),c=gf(mi),d=(0,dt.Z)(c,2),h=d[0],f=d[1],p=wh+"/internal";l&&!Mh&&(p="/internal");var v=u.info,g=void 0===v?[]:v,m=u.links,_=void 0===m?[]:m,y=function(e,t,n,i){var r=[];return e.DataCenters&&r.push({label:"DC",value:(0,fs.jsx)(jy,{tags:e.DataCenters})}),e.SystemTablets&&r.push({label:"Tablets",value:(0,fs.jsx)("div",{className:$y("system-tablets"),children:e.SystemTablets.sort(Gy).map((function(e,t){return(0,fs.jsx)(By,{tablet:e},t)}))})}),e.Tenants&&r.push({label:"Databases",value:e.Tenants}),r.push.apply(r,[{label:"Nodes",value:(0,fs.jsx)(Qv,{className:$y("metric-field"),value:null===e||void 0===e?void 0:e.NodesAlive,capacity:null===e||void 0===e?void 0:e.NodesTotal})},{label:"Load",value:(0,fs.jsx)(Qv,{className:$y("metric-field"),value:null===e||void 0===e?void 0:e.LoadAverage,capacity:null===e||void 0===e?void 0:e.NumberOfCpus})},{label:"Storage",value:(0,fs.jsx)(Qv,{className:$y("metric-field"),value:null===e||void 0===e?void 0:e.StorageUsed,capacity:null===e||void 0===e?void 0:e.StorageTotal,formatValues:ca})}].concat((0,Lt.Z)(n),[{label:"Links",value:(0,fs.jsx)("div",{className:$y("links"),children:i.map((function(e){var t=e.title,n=e.url;return(0,fs.jsx)(Wy,{title:t,url:n},t)}))})},{label:"Versions",value:(0,fs.jsx)(Yy,{versionsValues:t})}])),r}(n,r,g,[{title:Jn,url:p}].concat((0,Lt.Z)(_)));return(0,fs.jsxs)("div",{className:$y(),children:[(0,fs.jsxs)("div",{className:$y("header"),onClick:function(){f(!h)},children:[function(){var e;return o?(0,fs.jsx)(av,{className:$y("title-skeleton")}):(0,fs.jsx)(Gf,{size:"m",status:null===n||void 0===n?void 0:n.Overall,name:null!==(e=null===n||void 0===n?void 0:n.Name)&&void 0!==e?e:"Unknown cluster",className:$y("title")})}(),(0,fs.jsx)(Lv,{name:"chevron-down",width:24,height:24,className:$y("header__expand-button",{rotate:h})})]}),(0,fs.jsx)("div",{className:$y("info",{hidden:h}),children:o?(0,fs.jsx)(qy,{}):(a&&$y("error"),(0,fs.jsx)(vs,{dots:!0,info:y}))})]})},Xy={tenants:"tenants",nodes:"nodes",storage:"storage",versions:"versions"},Jy=[{id:Xy.tenants,title:"Databases"},{id:Xy.nodes,title:"Nodes"},{id:Xy.storage,title:"Storage"},{id:Xy.versions,title:"Versions"}],eb=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Xy.tenants,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Ph(Zh.cluster,{activeTab:e},t)},tb=(0,ct.default)("cluster");var nb=function(t){var n=t.additionalClusterProps,i=t.additionalTenantsProps,r=t.additionalNodesInfo,o=t.additionalVersionsProps,a=Q(),s=lt(Zh.cluster),u=((null===s||void 0===s?void 0:s.params)||{}).activeTab,l=void 0===u?Xy.tenants:u,c=ut(),d=Ft().parse(c.search,{ignoreQueryPrefix:!0}),h=d.clusterName,f=vf((function(e){return e.cluster})),p=f.data,v=void 0===p?{}:p,g=f.loading,m=f.wasLoaded,_=f.error,y=vf((function(e){return e.clusterNodes})),b=y.nodes,w=y.loading,C=y.wasLoaded,k=v.Name,S=g&&!m||w&&!C;(0,e.useEffect)((function(){a(Ia())}),[a]),pf((function(){return a(Da(h?String(h):void 0))}),[a,h],!0),(0,e.useEffect)((function(){a(lh("cluster",{}))}),[a,k]);var x=(0,e.useMemo)((function(){return null!==o&&void 0!==o&&o.getVersionToColorMap?null===o||void 0===o?void 0:o.getVersionToColorMap():df(null===v||void 0===v?void 0:v.Versions)}),[o,v]),L=(0,e.useMemo)((function(){return hf(b,x)}),[b,x]);return(0,fs.jsxs)("div",{className:tb(),children:[(0,fs.jsx)(Qy,{cluster:v,versionsValues:L,loading:S,error:_,additionalClusterProps:n}),(0,fs.jsx)("div",{className:tb("tabs"),children:(0,fs.jsx)(rf,{size:"l",allowNotSelected:!0,activeTab:l,items:Jy,wrapTo:function(e,t){var n=e.id,i=eb(n,d);return(0,fs.jsx)(Nf,{to:i,children:t},n)}})}),(0,fs.jsx)("div",{children:function(){switch(l){case Xy.tenants:return(0,fs.jsx)(Sv,{additionalTenantsProps:i});case Xy.nodes:return(0,fs.jsx)(fg,{additionalNodesInfo:r});case Xy.storage:return(0,fs.jsx)(cy,{additionalNodesInfo:r});case Xy.versions:return(0,fs.jsx)(Py,{versionToColor:x});default:return null}}()})]})},ib="undefined"!==typeof window?window:null,rb=null===ib,ob=rb?void 0:ib.document,ab="addEventListener",sb="removeEventListener",ub="getBoundingClientRect",lb="_a",cb="_b",db="_c",hb="horizontal",fb=function(){return!1},pb=rb?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=ob.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",vb=function(e){return"string"===typeof e||e instanceof String},gb=function(e){if(vb(e)){var t=ob.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},mb=function(e,t,n){var i=e[t];return void 0!==i?i:n},_b=function(e,t,n,i){if(t){if("end"===i)return 0;if("center"===i)return e/2}else if(n){if("start"===i)return 0;if("center"===i)return e/2}return e},yb=function(e,t){var n=ob.createElement("div");return n.className="gutter gutter-"+t,n},bb=function(e,t,n){var i={};return vb(t)?i[e]=t:i[e]=pb+"("+t+"% - "+n+"px)",i},wb=function(e,t){var n;return(n={})[e]=t+"px",n},Cb=function(e,t){if(void 0===t&&(t={}),rb)return{};var n,i,r,o,a,s,u=e;Array.from&&(u=Array.from(u));var l=gb(u[0]).parentNode,c=getComputedStyle?getComputedStyle(l):null,d=c?c.flexDirection:null,h=mb(t,"sizes")||u.map((function(){return 100/u.length})),f=mb(t,"minSize",100),p=Array.isArray(f)?f:u.map((function(){return f})),v=mb(t,"maxSize",1/0),g=Array.isArray(v)?v:u.map((function(){return v})),m=mb(t,"expandToMin",!1),_=mb(t,"gutterSize",10),y=mb(t,"gutterAlign","center"),b=mb(t,"snapOffset",30),w=Array.isArray(b)?b:u.map((function(){return b})),C=mb(t,"dragInterval",1),k=mb(t,"direction",hb),S=mb(t,"cursor",k===hb?"col-resize":"row-resize"),x=mb(t,"gutter",yb),L=mb(t,"elementStyle",bb),E=mb(t,"gutterStyle",wb);function N(e,t,i,r){var o=L(n,t,i,r);Object.keys(o).forEach((function(t){e.style[t]=o[t]}))}function D(){return s.map((function(e){return e.size}))}function M(e){return"touches"in e?e.touches[0][i]:e[i]}function T(e){var t=s[this.a],n=s[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,N(t.element,t.size,this[cb],t.i),N(n.element,n.size,this[db],n.i)}function O(e){var n,i=s[this.a],r=s[this.b];this.dragging&&(n=M(e)-this.start+(this[cb]-this.dragOffset),C>1&&(n=Math.round(n/C)*C),n<=i.minSize+i.snapOffset+this[cb]?n=i.minSize+this[cb]:n>=this.size-(r.minSize+r.snapOffset+this[db])&&(n=this.size-(r.minSize+this[db])),n>=i.maxSize-i.snapOffset+this[cb]?n=i.maxSize+this[cb]:n<=this.size-(r.maxSize-r.snapOffset+this[db])&&(n=this.size-(r.maxSize+this[db])),T.call(this,n),mb(t,"onDrag",fb)(D()))}function I(){var e=s[this.a].element,t=s[this.b].element,i=e[ub](),a=t[ub]();this.size=i[n]+a[n]+this[cb]+this[db],this.start=i[r],this.end=i[o]}function A(e){var t=function(e){if(!getComputedStyle)return null;var t=getComputedStyle(e);if(!t)return null;var n=e[a];return 0===n?null:n-=k===hb?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(l);if(null===t)return e;if(p.reduce((function(e,t){return e+t}),0)>t)return e;var n=0,i=[],r=e.map((function(r,o){var a=t*r/100,s=_b(_,0===o,o===e.length-1,y),u=p[o]+s;return a<u?(n+=u-a,i.push(0),u):(i.push(a-u),a)}));return 0===n?e:r.map((function(e,r){var o=e;if(n>0&&i[r]-n>0){var a=Math.min(n,i[r]-n);n-=a,o=e-a}return o/t*100}))}function P(){var e=this,n=s[e.a].element,i=s[e.b].element;e.dragging&&mb(t,"onDragEnd",fb)(D()),e.dragging=!1,ib[sb]("mouseup",e.stop),ib[sb]("touchend",e.stop),ib[sb]("touchcancel",e.stop),ib[sb]("mousemove",e.move),ib[sb]("touchmove",e.move),e.stop=null,e.move=null,n[sb]("selectstart",fb),n[sb]("dragstart",fb),i[sb]("selectstart",fb),i[sb]("dragstart",fb),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",i.style.userSelect="",i.style.webkitUserSelect="",i.style.MozUserSelect="",i.style.pointerEvents="",e.gutter.style.cursor="",e.parent.style.cursor="",ob.body.style.cursor=""}function R(e){if(!("button"in e)||0===e.button){var n=this,i=s[n.a].element,r=s[n.b].element;n.dragging||mb(t,"onDragStart",fb)(D()),e.preventDefault(),n.dragging=!0,n.move=O.bind(n),n.stop=P.bind(n),ib[ab]("mouseup",n.stop),ib[ab]("touchend",n.stop),ib[ab]("touchcancel",n.stop),ib[ab]("mousemove",n.move),ib[ab]("touchmove",n.move),i[ab]("selectstart",fb),i[ab]("dragstart",fb),r[ab]("selectstart",fb),r[ab]("dragstart",fb),i.style.userSelect="none",i.style.webkitUserSelect="none",i.style.MozUserSelect="none",i.style.pointerEvents="none",r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",n.gutter.style.cursor=S,n.parent.style.cursor=S,ob.body.style.cursor=S,I.call(n),n.dragOffset=M(e)-n.end}}k===hb?(n="width",i="clientX",r="left",o="right",a="clientWidth"):"vertical"===k&&(n="height",i="clientY",r="top",o="bottom",a="clientHeight"),h=A(h);var Z=[];function F(e){var t=e.i===Z.length,n=t?Z[e.i-1]:Z[e.i];I.call(n);var i=t?n.size-e.minSize-n[db]:e.minSize+n[cb];T.call(n,i)}return s=u.map((function(e,t){var i,r={element:gb(e),size:h[t],minSize:p[t],maxSize:g[t],snapOffset:w[t],i:t};if(t>0&&((i={a:t-1,b:t,dragging:!1,direction:k,parent:l})[cb]=_b(_,t-1===0,!1,y),i[db]=_b(_,!1,t===u.length-1,y),"row-reverse"===d||"column-reverse"===d)){var o=i.a;i.a=i.b,i.b=o}if(t>0){var a=x(t,k,r.element);!function(e,t,i){var r=E(n,t,i);Object.keys(r).forEach((function(t){e.style[t]=r[t]}))}(a,_,t),i[lb]=R.bind(i),a[ab]("mousedown",i[lb]),a[ab]("touchstart",i[lb]),l.insertBefore(a,r.element),i.gutter=a}return N(r.element,r.size,_b(_,0===t,t===u.length-1,y),t),t>0&&Z.push(i),r})),s.forEach((function(e){var t=e.element[ub]()[n];t<e.minSize&&(m?F(e):e.minSize=t)})),{setSizes:function(e){var t=A(e);t.forEach((function(e,n){if(n>0){var i=Z[n-1],r=s[i.a],o=s[i.b];r.size=t[n-1],o.size=e,N(r.element,r.size,i[cb],r.i),N(o.element,o.size,i[db],o.i)}}))},getSizes:D,collapse:function(e){F(s[e])},destroy:function(e,t){Z.forEach((function(i){if(!0!==t?i.parent.removeChild(i.gutter):(i.gutter[sb]("mousedown",i[lb]),i.gutter[sb]("touchstart",i[lb])),!0!==e){var r=L(n,i.a.size,i[cb]);Object.keys(r).forEach((function(e){s[i.a].element.style[e]="",s[i.b].element.style[e]=""}))}}))},parent:l,pairs:Z}};function kb(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}var Sb=function(t){function n(){t.apply(this,arguments)}return t&&(n.__proto__=t),n.prototype=Object.create(t&&t.prototype),n.prototype.constructor=n,n.prototype.componentDidMount=function(){var e=this.props;e.children;var t=e.gutter,n=kb(e,["children","gutter"]);n.gutter=function(e,n){var i;return t?i=t(e,n):(i=document.createElement("div")).className="gutter gutter-"+n,i.__isSplitGutter=!0,i},this.split=Cb(this.parent.children,n)},n.prototype.componentDidUpdate=function(e){var t=this,n=this.props;n.children;var i=n.minSize,r=n.sizes,o=n.collapsed,a=kb(n,["children","minSize","sizes","collapsed"]),s=e.minSize,u=e.sizes,l=e.collapsed,c=["maxSize","expandToMin","gutterSize","gutterAlign","snapOffset","dragInterval","direction","cursor"].map((function(n){return t.props[n]!==e[n]})).reduce((function(e,t){return e||t}),!1);if(Array.isArray(i)&&Array.isArray(s)){var d=!1;i.forEach((function(e,t){d=d||e!==s[t]})),c=c||d}else c=!(!Array.isArray(i)&&!Array.isArray(s))||(c||i!==s);if(c)a.minSize=i,a.sizes=r||this.split.getSizes(),this.split.destroy(!0,!0),a.gutter=function(e,t,n){return n.previousSibling},this.split=Cb(Array.from(this.parent.children).filter((function(e){return!e.__isSplitGutter})),a);else if(r){var h=!1;r.forEach((function(e,t){h=h||e!==u[t]})),h&&this.split.setSizes(this.props.sizes)}Number.isInteger(o)&&(o!==l||c)&&this.split.collapse(o)},n.prototype.componentWillUnmount=function(){this.split.destroy(),delete this.split},n.prototype.render=function(){var t=this,n=this.props;n.sizes,n.minSize,n.maxSize,n.expandToMin,n.gutterSize,n.gutterAlign,n.snapOffset,n.dragInterval,n.direction,n.cursor,n.gutter,n.elementStyle,n.gutterStyle,n.onDrag,n.onDragStart,n.onDragEnd,n.collapsed;var i=n.children,r=kb(n,["sizes","minSize","maxSize","expandToMin","gutterSize","gutterAlign","snapOffset","dragInterval","direction","cursor","gutter","elementStyle","gutterStyle","onDrag","onDragStart","onDragEnd","collapsed","children"]);return e.createElement("div",Object.assign({},{ref:function(e){t.parent=e}},r),i)},n}(e.Component);Sb.propTypes={sizes:Oe().arrayOf(Oe().number),minSize:Oe().oneOfType([Oe().number,Oe().arrayOf(Oe().number)]),maxSize:Oe().oneOfType([Oe().number,Oe().arrayOf(Oe().number)]),expandToMin:Oe().bool,gutterSize:Oe().number,gutterAlign:Oe().string,snapOffset:Oe().oneOfType([Oe().number,Oe().arrayOf(Oe().number)]),dragInterval:Oe().number,direction:Oe().string,cursor:Oe().string,gutter:Oe().func,elementStyle:Oe().func,gutterStyle:Oe().func,onDrag:Oe().func,onDragStart:Oe().func,onDragEnd:Oe().func,collapsed:Oe().number,children:Oe().arrayOf(Oe().element)},Sb.defaultProps={sizes:void 0,minSize:void 0,maxSize:void 0,expandToMin:void 0,gutterSize:void 0,gutterAlign:void 0,snapOffset:void 0,dragInterval:void 0,direction:void 0,cursor:void 0,gutter:void 0,elementStyle:void 0,gutterStyle:void 0,onDrag:void 0,onDragStart:void 0,onDragEnd:void 0,collapsed:void 0,children:void 0};var xb=Sb,Lb=(0,ct.default)("kv-split"),Eb=[0,100],Nb=[50,50];var Db=function(t){var n=(0,e.useState)(),i=(0,dt.Z)(n,2),r=i[0],o=i[1],a=function(e){var n=t.defaultSizePaneKey;localStorage.setItem(n,e.join(","))};return(0,e.useEffect)((function(){var e=t.collapsedSizes;if(t.triggerCollapse){var n=e||Eb;a(n),o(n)}}),[t.triggerCollapse]),(0,e.useEffect)((function(){var e=t.triggerExpand,n=t.defaultSizes||Nb;e&&(a(n),o(n))}),[t.triggerExpand]),(0,fs.jsx)(e.Fragment,{children:(0,fs.jsx)(xb,{direction:t.direction||"horizontal",sizes:r||function(){var e,n=t.defaultSizePaneKey,i=t.defaultSizes,r=void 0===i?Nb:i,o=t.initialSizes;return o||((null===(e=localStorage.getItem(n))||void 0===e?void 0:e.split(",").map(Number))||r)}(),minSize:t.minSize||[0,0],onDrag:function(e){var n=t.onSplitDragAdditional;n&&n(),a(e)},className:Lb(null,t.direction||"horizontal"),gutterSize:8,onDragStart:function(){var e=t.onSplitStartDragAdditional;e&&e(),o(void 0)},expandToMin:!0,children:t.children})})},Mb=Db;function Tb(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"none"},Lr,t),e.createElement("path",{d:"M15.5 8C15.5 12.1421 12.1421 15.5 8 15.5C3.85786 15.5 0.5 12.1421 0.5 8C0.5 3.85786 3.85786 0.5 8 0.5C12.1421 0.5 15.5 3.85786 15.5 8Z",stroke:"currentColor",strokeOpacity:"0.15"}),e.createElement("path",{opacity:"0.5",fillRule:"evenodd",clipRule:"evenodd",d:"M8.46436 9.92432H7.09473C7.09115 9.72738 7.08936 9.60742 7.08936 9.56445C7.08936 9.12044 7.16276 8.75521 7.30957 8.46875C7.45638 8.18229 7.75 7.86003 8.19043 7.50195C8.63086 7.14388 8.89404 6.90934 8.97998 6.79834C9.11247 6.62288 9.17871 6.42953 9.17871 6.21826C9.17871 5.92464 9.06144 5.6731 8.8269 5.46362C8.59237 5.25415 8.27637 5.14941 7.87891 5.14941C7.49577 5.14941 7.17529 5.25863 6.91748 5.47705C6.65967 5.69548 6.48242 6.02848 6.38574 6.47607L5 6.3042C5.03939 5.66325 5.31242 5.11898 5.81909 4.67139C6.32577 4.22379 6.99088 4 7.81445 4C8.68099 4 9.37028 4.22648 9.88232 4.67944C10.3944 5.13241 10.6504 5.65966 10.6504 6.26123C10.6504 6.59424 10.5564 6.90934 10.3684 7.20654C10.1804 7.50375 9.77849 7.90836 9.1626 8.42041C8.84391 8.68539 8.64608 8.89844 8.56909 9.05957C8.49211 9.2207 8.45719 9.50895 8.46436 9.92432ZM7.09473 11.9546V10.4453H8.604V11.9546H7.09473Z",fill:"currentColor"}))}var Ob=pt("help-popover");function Ib(t){return e.createElement(qv,Object.assign({},t,{className:Ob(null,t.className)}),e.createElement(Mr,{data:Tb,size:16}))}var Ab=function(e){return"CREATE TABLE `".concat(e,"/my_table`\n(\n `id` Uint64,\n `name` String,\n PRIMARY KEY (`id`)\n);")},Pb=function(e){return"ALTER TABLE `".concat(e,"`\n ADD COLUMN is_deleted Bool;")},Rb=function(e){return"SELECT *\n FROM `".concat(e,"`\n LIMIT 10;")},Zb=function(e){return"UPSERT INTO `".concat(e,"`\n ( `id`, `name` )\nVALUES ( );")},Fb=function(e,t){return function(n,i){var r=function(e,t,n){var i=function(i){return function(){t(Rc({input:i(e)})),t(Ba(Xi.query)),t(za(Ji.newQuery)),n(e)}};return{createTable:i(Ab),alterTable:i(Pb),selectQuery:i(Rb),upsertQuery:i(Zb),copyPath:function(){navigator.clipboard.writeText(e).then((function(){Co({name:"Copied",title:"The path is copied to the clipboard",type:"success"})})).catch((function(){Co({name:"Not copied",title:"Couldn\u2019t copy the path",type:"error"})}))},openPreview:function(){t(fl(!0)),t(Ba(Xi.query)),t(za(Ji.newQuery)),n(e)}}}(n,e,t),o={text:"Copy path",action:r.copyPath},a=[[o],[{text:"Create table...",action:r.createTable}]],s=[[{text:"Open preview",action:r.openPreview},o],[{text:"Alter table...",action:r.alterTable},{text:"Select query...",action:r.selectQuery},{text:"Upsert query...",action:r.upsertQuery}]],u=[o];return{database:a,directory:a,table:s,column_table:s,index_table:u,topic:u,index:[]}[i]}};function jb(t){var n=t.rootPath,i=t.rootName,r=t.rootType,o=t.currentPath,a=Q(),s=function(e){a(dl(e))};return(0,e.useEffect)((function(){o.startsWith(n)||s(n)}),[]),(0,fs.jsx)(ea.NavigationTree,{rootState:{path:n,name:i,type:Zu(r),collapsed:!1},fetchPath:function(e){return window.api.getSchema({path:e},{concurrentId:"NavigationTree.getSchema|".concat(e)}).then((function(t){var n=t.PathDescription,i=(void 0===n?{}:n).Children,r=void 0===i?[]:i,o=(0,xt.Z)({},e,t),s=r.map((function(t){var n=t.Name,i=void 0===n?"":n,r=t.PathType,a=t.PathSubType;return o["".concat(e,"/").concat(i)]={PathDescription:{Self:t}},{name:i,type:Zu(r,a),expandable:!Ju(r,a)}}));return a(function(e){return{type:il,data:e}}(o)),s}))},getActions:Fb(a,s),activePath:o,onActivePathUpdate:s,cache:!1,virtualize:!0})}var Hb=(0,ct.default)("kv-acl"),Bb=140,zb=Rt(Rt({},fi),{},{dynamicRender:!1,stickyTop:36}),Wb=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;(0,i.Z)(this,s);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(t=n.call.apply(n,[this].concat(o))).COLUMNS=[{name:"AccessType",header:"Access Type",sortable:!1},{name:"AccessRights",header:"Access Rights",render:function(e){var t=e.value;return an().map(t,(function(e,t){return(0,fs.jsx)("div",{children:e},t)}))},sortable:!1},{name:"Subject",sortable:!1,render:function(e){var n=e.value;return t.prepareLogin(n)},width:Bb},{name:"InheritanceType",header:"Inheritance Type",render:function(e){var t=e.value;return an().map(t,(function(e,t){return(0,fs.jsx)("div",{children:e},t)}))},sortable:!1}],t.prepareLogin=function(e){var n;return t.props.prepareLogin?null===(n=t.props.additionalTenantInfo)||void 0===n?void 0:n.prepareLogin(e):e&&e.endsWith("@staff")&&!e.startsWith("svc_")?e.split("@")[0]:e},t.renderTable=function(){var e=t.props.acl;return e?(0,fs.jsx)(zn,{columns:t.COLUMNS,data:e,settings:zb}):null},t.renderOwner=function(){var e=t.props.owner;return e?(0,fs.jsxs)("div",{className:Hb("owner-container"),children:[(0,fs.jsx)("span",{className:Hb("owner-label"),children:"Owner: "}),t.prepareLogin(e)]}):null},t.renderResult=function(){return(0,fs.jsxs)(e.Fragment,{children:[t.renderOwner(),t.renderTable()]})},t}return(0,r.Z)(s,[{key:"render",value:function(){var e=this.props,t=e.error,n=e.loading,i=e.acl,r=e.owner,o=e.wasLoaded;if(n&&!o)return(0,fs.jsx)("div",{className:Hb("loader-container"),children:(0,fs.jsx)(yy,{size:"m"})});if(t&&!t.isCancelled){var a=(t.data||t).slice(0,100);return(0,fs.jsx)("div",{className:Hb("message-container"),children:a})}return n||i||r?(0,fs.jsx)("div",{className:Hb(),children:(0,fs.jsx)("div",{className:Hb("result"),children:this.renderResult()})}):(0,fs.jsx)("div",{className:Hb("message-container"),children:"Empty"})}}]),s}(e.Component),Vb=U((function(e){var t=e.schemaAcl,n=t.loading,i=t.error;return{acl:t.acl,owner:t.owner,loading:n,error:i,wasLoaded:t.wasLoaded}}))(Wb),Yb=n(4218),Ub=n.n(Yb),Kb=(0,ct.default)("schema-viewer"),qb="Id",Gb="Name",$b="Key",Qb="Type",Xb="NotNull",Jb=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"renderTable",value:function(){var e,t,n,i=this.props.data,r=void 0===i?{}:i,o=null!==(e=r.KeyColumnIds)&&void 0!==e?e:[],a=o.map((function(e){return Ub()(r.Columns,{Id:e})})),s=null!==(t=null===(n=r.Columns)||void 0===n?void 0:n.filter((function(e){return!o.includes(e.Id)})))&&void 0!==t?t:[],u=[{name:qb,width:40},{name:$b,width:40,sortAccessor:function(e){return o.includes(e.Id)?1:0},render:function(e){var t=e.row;return o.includes(t.Id)?(0,fs.jsx)("div",{className:Kb("key-icon"),children:(0,fs.jsx)(xv,{name:"key",viewBox:"0 0 12 7",width:12,height:7})}):null}},{name:Gb,width:100},{name:Qb,width:100},{name:Xb,width:100,render:function(e){if(e.row.NotNull)return"\u2713"}}],l=[].concat((0,Lt.Z)(a),(0,Lt.Z)(s));return(0,fs.jsx)(zn,{theme:"yandex-cloud",data:l,columns:u,settings:fi,dynamicRender:!0,initialSortOrder:{columnId:$b,order:zn.DESCENDING}})}},{key:"render",value:function(){return(0,fs.jsx)("div",{className:Kb(),children:this.renderTable()})}}]),n}(e.Component),ew=Jb;var tw,nw,iw=function(e){return(0,fs.jsx)(zh,{text:e.text,timeout:1e3,children:function(t){var n,i;"success"===t&&Co({name:"Copied",title:null!==(i=e.toastText)&&void 0!==i?i:"Data was copied to clipboard successfully",type:t});return(0,fs.jsx)(zr,{disabled:e.disabled,title:null!==(n=e.title)&&void 0!==n?n:"Copy",view:"flat-secondary",children:(0,fs.jsx)(xv,{name:"copy",viewBox:"0 0 16 16",width:16,height:16})})}})},rw=_s({values:{PathType:function(e){return null===e||void 0===e?void 0:e.substring("EPathType".length)},CreateStep:pa},labels:{PathType:"Type",CreateStep:"Created"}}),ow=["value","withSpeedLabel"],aw=function(e){var t=e.value,n=e.withSpeedLabel,i=rn(e,ow),r=tc(Rt({value:t,withSpeedLabel:n},i)),o=tc({value:t,withSpeedLabel:n,size:"b"});return(0,fs.jsx)("span",{title:o,children:r})},sw=function(e,t){return e?(0,fs.jsx)(aw,Rt({value:e,significantDigits:2},t)):null},uw=_s({values:{Type:function(e){return null===e||void 0===e?void 0:e.substring(10)},State:function(e){return null===e||void 0===e?void 0:e.substring(11)},KeyColumnNames:function(e){return null===e||void 0===e?void 0:e.join(", ")},DataColumnNames:function(e){return null===e||void 0===e?void 0:e.join(", ")},DataSize:sw},labels:{KeyColumnNames:"Columns",DataColumnNames:"Includes"}}),lw=(tw={},(0,xt.Z)(tw,cu.METERING_MODE_REQUEST_UNITS,"request-units"),(0,xt.Z)(tw,cu.METERING_MODE_RESERVED_CAPACITY,"reserved-capacity"),tw),cw=_s({values:{Partitions:function(e){return ha((null===e||void 0===e?void 0:e.length)||0)},PQTabletConfig:function(e){var t=Math.round(e.PartitionConfig.LifetimeSeconds/Un*100)/100;return"".concat(ha(t)," hours")}},labels:{Partitions:"Partitions count",PQTabletConfig:"Retention"}}),dw=_s({values:{Codecs:function(e){return e&&Object.values(e.Codecs||{}).join(", ")},MeteringMode:function(e){return e&&lw[e]}},labels:{MeteringMode:"Metering mode"}}),hw=_s({values:{StorageLimitBytes:ra,WriteSpeedInBytesPerSecond:oa},labels:{StorageLimitBytes:"Retention storage",WriteSpeedInBytesPerSecond:"Partitions write speed"}}),fw=_s({values:{Mode:function(e){return null===e||void 0===e?void 0:e.substring("ECdcStreamMode".length)},Format:function(e){return null===e||void 0===e?void 0:e.substring("ECdcStreamFormat".length)}}}),pw=_s({values:{CPU:fa,Memory:sw,Storage:sw,Network:oa,ReadThroughput:oa,WriteThroughput:oa},defaultValueFormatter:ha}),vw=_s({values:{FollowerCount:ha},labels:{FollowerCountPerDataCenter:"FollowerCountPerDC"},defaultValueFormatter:function(e){return e&&String(e)}}),gw=_s({values:{FollowerCount:ha,CrossDataCenterFollowerCount:ha}}),mw=_s({values:{DataSize:sw,IndexSize:sw,LastAccessTime:pa,LastUpdateTime:pa},defaultValueFormatter:ha}),_w=new Set(["Mode","Format"]),yw=function(e){var t,n,i,r,o,a=e.data;if(!a)return(0,fs.jsx)("div",{className:"error",children:"No CDC Stream data"});var s,u=null===(t=a.PathDescription)||void 0===t?void 0:t.CdcStreamDescription,l=[];for(s in l.push(rw("PathType",null===(n=a.PathDescription)||void 0===n||null===(i=n.Self)||void 0===i?void 0:i.PathType)),l.push(rw("CreateStep",null===(r=a.PathDescription)||void 0===r||null===(o=r.Self)||void 0===o?void 0:o.CreateStep)),u)_w.has(s)&&l.push(fw(s,null===u||void 0===u?void 0:u[s]));return(0,fs.jsx)(fs.Fragment,{children:l.length?(0,fs.jsx)(vs,{info:l}):(0,fs.jsx)(fs.Fragment,{children:"Empty"})})},bw=function(e){var t,n,i,r,o,a=e.data;if(!a)return(0,fs.jsx)("div",{className:"error",children:"No PersQueueGroup data"});var s=null===(t=a.PathDescription)||void 0===t?void 0:t.PersQueueGroup,u=[];return u.push(rw("PathType",null===(n=a.PathDescription)||void 0===n||null===(i=n.Self)||void 0===i?void 0:i.PathType)),u.push(rw("CreateStep",null===(r=a.PathDescription)||void 0===r||null===(o=r.Self)||void 0===o?void 0:o.CreateStep)),u.push(cw("Partitions",(null===s||void 0===s?void 0:s.Partitions)||[])),u.push(cw("PQTabletConfig",(null===s||void 0===s?void 0:s.PQTabletConfig)||{PartitionConfig:{LifetimeSeconds:0}})),(0,fs.jsx)(fs.Fragment,{children:u.length?(0,fs.jsx)(vs,{info:u}):(0,fs.jsx)(fs.Fragment,{children:"Empty"})})};!function(e){e.triggerCollapse="triggerCollapse",e.triggerExpand="triggerExpand",e.clear="clear"}(nw||(nw={}));var ww=function(e){localStorage.setItem(e,"true")},Cw=function(e){localStorage.removeItem(e)};function kw(e){return function(t,n){switch(n){case nw.triggerCollapse:return ww(e),Rt(Rt({},t),{},{triggerCollapse:!0,triggerExpand:!1,collapsed:!0});case nw.triggerExpand:return Cw(e),Rt(Rt({},t),{},{triggerCollapse:!1,triggerExpand:!0,collapsed:!1});case nw.clear:return Cw(e),{triggerCollapse:!1,triggerExpand:!1,collapsed:!1};default:return t}}}var Sw=(0,ct.default)("kv-pane-visibility-button");function xw(t){var n=t.onCollapse,i=t.onExpand,r=t.isCollapsed,o=t.initialDirection,a=void 0===o?"top":o,s=t.className;return(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)(zr,{view:"flat-secondary",onClick:n,className:Sw({hidden:r},s),title:"Collapse",children:(0,fs.jsx)(xv,{name:"collapse",viewBox:"0 0 384 512",width:14,height:14,className:Sw((0,xt.Z)({},a,!0))})}),(0,fs.jsx)(zr,{view:"flat-secondary",onClick:i,className:Sw({hidden:!r},s),title:"Expand",children:(0,fs.jsx)(xv,{name:"collapse",viewBox:"0 0 384 512",width:14,height:14,className:Sw((0,xt.Z)({},a,!0),"rotate")})})]})}var Lw=(0,ct.default)("object-summary"),Ew={triggerExpand:!1,triggerCollapse:!1,collapsed:Boolean(localStorage.getItem(di))};var Nw=function(t){var n,i,r=Q(),o=(0,e.useReducer)(kw(di),Ew),a=(0,dt.Z)(o,2),s=a[0],u=a[1],l=te((function(e){return e.schema})),c=l.data,d=l.currentSchemaPath,h=l.currentSchema,f=void 0===h?{}:h,p=l.loading,v=ut(),g=st(),m=Ft().parse(v.search,{ignoreQueryPrefix:!0}),_=m.name,y=m.info,b=an().get(c[_],"PathDescription.Self"),w=an().get(c[d],"PathDescription.Self"),C=(null===f||void 0===f||null===(n=f.PathDescription)||void 0===n?void 0:n.Table)||(null===f||void 0===f||null===(i=f.PathDescription)||void 0===i?void 0:i.ColumnTableDescription),k=zu(t.type)&&Uu(t.type)?function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.Name,n=e.Schema;if(n){var i=n.Columns,r=n.KeyColumnNames,o=null===r||void 0===r?void 0:r.map((function(e){var t=null===i||void 0===i?void 0:i.find((function(t){return t.Name===e}));return null===t||void 0===t?void 0:t.Id}));return{Columns:i,KeyColumnNames:r,Name:t,KeyColumnIds:o}}return{Name:t}}(C):C;(0,e.useEffect)((function(){var e=t.type,n=zu(e);!e||n||bv.find((function(e){return e.id===y}))||g.push({pathname:v.pathname,search:Ft().stringify(Rt(Rt({},m),{},{info:pv.overview}))})}),[t.type]);var S=function(){var e=zu(t.type)?[].concat((0,Lt.Z)(bv),(0,Lt.Z)(wv)):bv;return(0,fs.jsx)("div",{className:Lw("tabs"),children:(0,fs.jsx)(rf,{size:"l",items:e,activeTab:y,wrapTo:function(e,t){var n=e.id,i=Ph(Zh.tenant,void 0,Rt(Rt({},m),{},(0,xt.Z)({name:_},vv.info,n)));return(0,fs.jsx)(Cf,{to:i,className:Lw("tab"),children:t},n)},allowNotSelected:!0})})},x=function(){switch(y){case pv.acl:return(0,fs.jsx)(Vb,{additionalTenantInfo:t.additionalTenantInfo});case pv.schema:return p?L():(0,fs.jsx)("div",{className:Lw("schema"),children:(0,fs.jsx)(ew,{data:k})});default:return function(){var e,t,n=(e={},(0,xt.Z)(e,eu.EPathTypeInvalid,void 0),(0,xt.Z)(e,eu.EPathTypeDir,void 0),(0,xt.Z)(e,eu.EPathTypeTable,void 0),(0,xt.Z)(e,eu.EPathTypeSubDomain,void 0),(0,xt.Z)(e,eu.EPathTypeTableIndex,void 0),(0,xt.Z)(e,eu.EPathTypeExtSubDomain,void 0),(0,xt.Z)(e,eu.EPathTypeColumnStore,void 0),(0,xt.Z)(e,eu.EPathTypeColumnTable,void 0),(0,xt.Z)(e,eu.EPathTypeCdcStream,(function(){return(0,fs.jsx)(yw,{data:c[d]})})),(0,xt.Z)(e,eu.EPathTypePersQueueGroup,(function(){return(0,fs.jsx)(bw,{data:c[d]})})),e),i=(null===w||void 0===w?void 0:w.PathType)&&(null===(t=n[w.PathType])||void 0===t?void 0:t.call(n));if(!i){var r=Number(null===w||void 0===w?void 0:w.CreateStep),o="";r&&(o=pa(r)),i=(0,fs.jsx)(vs,{info:[{label:"Create time",value:o}]})}return(0,fs.jsx)("div",{className:Lw("overview-wrapper"),children:i})}()}},L=function(){return(0,fs.jsx)("div",{className:Lw("loader"),children:(0,fs.jsx)(yy,{size:"m"})})},E=function(){u(nw.triggerCollapse)},N=function(){u(nw.triggerExpand)},D=function(){u(nw.clear)},M=function(){r(fl(!0)),r(Ba(Xi.query)),r(za(Ji.newQuery))},T=function(){var n=zu(t.type)&&!Vu(t.subType);return(0,fs.jsxs)(e.Fragment,{children:[n&&(0,fs.jsx)(zr,{view:"flat-secondary",onClick:M,title:"Show preview",children:(0,fs.jsx)(xv,{name:"tablePreview",viewBox:"0 0 16 16",height:16,width:16})}),(0,fs.jsx)(iw,{text:d,title:"Copy schema path"}),(0,fs.jsx)(xw,{onCollapse:E,onExpand:N,isCollapsed:s.collapsed,initialDirection:"bottom"})]})},O=function(){var e,n=t.type,i=f.Status,r=f.Reason;return!n&&i&&r&&(e="".concat(i,": ").concat(r)),n?(0,fs.jsx)("div",{className:Lw("entity-type"),children:n.replace("EPathType","")}):(0,fs.jsx)("div",{className:Lw("entity-type",{error:!0}),children:(0,fs.jsx)(Ib,{content:e,offset:{left:0}})})};return _?(0,fs.jsxs)("div",{className:Lw(),children:[(0,fs.jsx)("div",{className:Lw({hidden:t.isCollapsed}),children:(0,fs.jsxs)(Mb,{direction:"vertical",defaultSizePaneKey:ui,onSplitStartDragAdditional:D,triggerCollapse:s.triggerCollapse,triggerExpand:s.triggerExpand,minSize:[200,52],collapsedSizes:[100,0],children:[d?(0,fs.jsxs)("div",{className:Lw("tree-wrapper"),children:[(0,fs.jsx)("div",{className:Lw("tree-header"),children:"Navigation"}),(0,fs.jsx)("div",{className:Lw("tree"),children:b&&(0,fs.jsx)(jb,{rootPath:_,rootName:b.Name||String(_),rootType:b.PathType,currentPath:d})})]}):L(),(0,fs.jsxs)("div",{className:Lw("info"),children:[(0,fs.jsxs)("div",{className:Lw("sticky-top"),children:[(0,fs.jsxs)("div",{className:Lw("info-header"),children:[(0,fs.jsxs)("div",{className:Lw("info-title"),children:[O(),(0,fs.jsx)("div",{className:Lw("path-name"),children:d})]}),(0,fs.jsx)("div",{className:Lw("info-controls"),children:T()})]}),S()]}),x()]})]})}),(0,fs.jsx)(xw,{onCollapse:t.onCollapseSummary,onExpand:t.onExpandSummary,isCollapsed:t.isCollapsed,initialDirection:"left",className:Lw("action-button")})]}):null},Dw=JSON.parse('{"controls.query-mode-selector_type":"Query type:","tabs.newQuery":"Query","tabs.history":"History","tabs.saved":"Saved","history.empty":"History is empty","saved.empty":"There are no saved queries","delete-dialog.header":"Delete query","delete-dialog.question":"Are you sure you want to delete query","delete-dialog.delete":"Delete","delete-dialog.cancel":"Cancel","preview.title":"Preview","preview.not-available":"Preview is not available","preview.close":"Close preview"}'),Mw=JSON.parse('{"controls.query-mode-selector_type":"\u0422\u0438\u043f \u0437\u0430\u043f\u0440\u043e\u0441\u0430:","tabs.newQuery":"\u0417\u0430\u043f\u0440\u043e\u0441","tabs.history":"\u0418\u0441\u0442\u043e\u0440\u0438\u044f","tabs.saved":"\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435","history.empty":"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0443\u0441\u0442\u0430","saved.empty":"\u041d\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432","delete-dialog.header":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441","delete-dialog.question":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441","delete-dialog.delete":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","delete-dialog.cancel":"\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c","preview.title":"\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440","preview.not-available":"\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d","preview.close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440"}'),Tw="ydb-query-editor";na.registerKeyset(Ko.En,Tw,Dw),na.registerKeyset(Ko.Ru,Tw,Mw);var Ow,Iw=na.keyset(Tw),Aw=[{id:Ji.newQuery,title:Iw("tabs.newQuery")},{id:Ji.history,title:Iw("tabs.history")},{id:Ji.saved,title:Iw("tabs.saved")}],Pw=function(e){var t=e.className,n=e.activeTab,i=ut(),r=Ah(i);return(0,fs.jsx)("div",{className:t,children:(0,fs.jsx)(rf,{size:"l",allowNotSelected:!0,activeTab:n,items:Aw,wrapTo:function(e,t){var n=e.id,i=Cv(Rt(Rt({},r),{},(0,xt.Z)({},vv.queryTab,n)));return(0,fs.jsx)(Nf,{to:i,children:t},n)}})})},Rw=0;function Zw(t){var n=t.enabled;e.useLayoutEffect((function(){if(n)return 1===++Rw&&function(){var e=window.innerWidth-document.documentElement.clientWidth,t=window.innerHeight-document.documentElement.clientHeight,n=function(){var e=window.getComputedStyle(document.body);return{top:Number.parseFloat(e.paddingTop),right:Number.parseFloat(e.paddingRight),bottom:Number.parseFloat(e.paddingBottom),left:Number.parseFloat(e.paddingLeft)}}();Ow=document.body.style.cssText,document.body.style.overflow="hidden",e&&(document.body.style.paddingRight="".concat(n.right+e,"px"));t&&(document.body.style.paddingBottom="".concat(n.bottom+t,"px"))}(),function(){0===--Rw&&(Ow?document.body.style.cssText=Ow:document.body.removeAttribute("style"))}}),[n])}var Fw=pt("modal");function jw(t){var n=t.open,i=void 0!==n&&n,r=t.keepMounted,o=void 0!==r&&r,a=t.disableBodyScrollLock,s=void 0!==a&&a,u=t.disableEscapeKeyDown,l=t.disableOutsideClick,c=t.disableFocusTrap,d=t.disableAutoFocus,h=t.restoreFocusRef,f=t.onEscapeKeyDown,p=t.onEnterKeyDown,v=t.onOutsideClick,g=t.onClose,m=t.onTransitionEnter,_=t.onTransitionEntered,y=t.onTransitionExit,b=t.onTransitionExited,w=t.children,C=t.style,k=t.className,S=t.contentClassName,x=t["aria-labelledby"],L=t["aria-label"],E=t.container,N=t.qa,D=e.useRef(null),M=e.useRef(null),T=e.useState(!1),O=(0,dt.Z)(T,2),I=O[0],A=O[1];Zw({enabled:!s&&(i||I)});var P=ap({enabled:i||I,restoreFocusRef:h,focusTrapped:!0});return ep({open:i,disableEscapeKeyDown:u,disableOutsideClick:l,onEscapeKeyDown:f,onEnterKeyDown:p,onOutsideClick:v,onClose:g,contentRefs:[M]}),e.createElement(fo,{container:E},e.createElement($f.Z,{nodeRef:D,in:i,addEndListener:function(e){var t;return null===(t=D.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:Qf(Fw),mountOnEnter:!o,unmountOnExit:!o,appear:!0,onEnter:function(){A(!0),null===m||void 0===m||m()},onExit:function(){A(!0),null===y||void 0===y||y()},onEntered:function(){A(!1),null===_||void 0===_||_()},onExited:function(){A(!1),null===b||void 0===b||b()}},e.createElement("div",{ref:D,style:C,className:Fw({open:i},k),"data-qa":N},e.createElement("div",{className:Fw("table")},e.createElement("div",{className:Fw("cell")},e.createElement(hp,{enabled:!c&&i&&!I,disableAutoFocus:d},e.createElement("div",Object.assign({ref:M,tabIndex:-1,role:"dialog","aria-modal":i,"aria-label":L,"aria-labelledby":x,className:Fw("content",S)},P),w)))))))}var Hw=pt("dialog-footer");var Bw=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).errorTooltipRef=e.createRef(),t.handleKeyDown=function(e){"Enter"===e.key&&(e.preventDefault(),t.props.onClickButtonApply&&t.props.onClickButtonApply(e))},t}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){this.props.listenKeyEnter&&this.attachKeyDownListeners()}},{key:"componentDidUpdate",value:function(e){!this.props.listenKeyEnter&&e.listenKeyEnter&&this.detachKeyDownListeners(),this.props.listenKeyEnter&&!e.listenKeyEnter&&this.attachKeyDownListeners()}},{key:"componentWillUnmount",value:function(){this.detachKeyDownListeners()}},{key:"render",value:function(){var t=this.props,n=t.onClickButtonCancel,i=t.onClickButtonApply,r=t.loading,o=t.textButtonCancel,a=t.textButtonApply,s=t.propsButtonCancel,u=t.propsButtonApply,l=t.preset,c=t.children,d=t.errorText,h=t.showError,f=t.renderButtons,p=e.createElement("div",{className:Hw("button",{action:"cancel"})},e.createElement(zr,Object.assign({view:a?"flat":"normal",size:"l",width:"max",onClick:n,disabled:r},s),o)),v=e.createElement("div",{className:Hw("button",{action:"apply"})},e.createElement(zr,Object.assign({ref:this.errorTooltipRef,type:"submit",view:"action",size:"l",width:"max",onClick:i,loading:r,className:Hw("button-apply",{preset:l})},u),a),d&&e.createElement(gp,{open:h,anchorRef:this.errorTooltipRef,placement:["bottom","top"],disableLayer:!0,hasArrow:!0},e.createElement("div",{className:Hw("error")},d)));return e.createElement("div",{className:Hw()},e.createElement("div",{className:Hw("children")},c),e.createElement("div",{className:Hw("bts-wrapper")},f?f(v,p):e.createElement(e.Fragment,null,o&&p,a&&v)))}},{key:"attachKeyDownListeners",value:function(){var e=this;setTimeout((function(){window.addEventListener("keydown",e.handleKeyDown)}),0)}},{key:"detachKeyDownListeners",value:function(){window.removeEventListener("keydown",this.handleKeyDown)}}]),s}(e.Component);Bw.defaultProps={preset:"default",showError:!1,listenKeyEnter:!1};var zw=pt("dialog-header");var Ww=pt("dialog-body");var Vw=pt("dialog-divider");var Yw=pt("dialog-btn-close");function Uw(t){var n=t.onClose;return e.createElement("div",{className:Yw()},e.createElement(zr,{view:"flat",size:"l",className:Yw("btn"),onClick:function(e){return n(e,{isOutsideClick:!1})}},e.createElement(Mr,{data:Ur,size:12})))}var Kw=pt("dialog"),qw=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var e;return(0,i.Z)(this,s),(e=n.apply(this,arguments)).handleCloseButtonClick=function(t){(0,e.props.onClose)(t.nativeEvent,"closeButtonClick")},e}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.container,i=t.children,r=t.open,o=t.disableBodyScrollLock,a=t.disableEscapeKeyDown,s=t.disableOutsideClick,u=t.disableFocusTrap,l=t.disableAutoFocus,c=t.restoreFocusRef,d=t.keepMounted,h=t.size,f=t.className,p=t.modalClassName,v=t.hasCloseButton,g=t.onEscapeKeyDown,m=t.onEnterKeyDown,_=t.onOutsideClick,y=t.onClose,b=t.onTransitionEnter,w=t.onTransitionEntered,C=t.onTransitionExit,k=t.onTransitionExited,S=t["aria-label"],x=t["aria-labelledby"],L=t.qa;return e.createElement(jw,{open:r,disableBodyScrollLock:o,disableEscapeKeyDown:a,disableOutsideClick:s,disableFocusTrap:u,disableAutoFocus:l,restoreFocusRef:c,keepMounted:d,onEscapeKeyDown:g,onEnterKeyDown:m,onOutsideClick:_,onClose:y,onTransitionEnter:b,onTransitionEntered:w,onTransitionExit:C,onTransitionExited:k,className:Kw("modal",p),"aria-label":S,"aria-labelledby":x,container:n,qa:L},e.createElement("div",{className:Kw({size:h,"has-close":v},f)},i,v&&e.createElement(Uw,{onClose:this.handleCloseButtonClick})))}}]),s}(e.Component);qw.defaultProps={disableBodyScrollLock:!1,disableEscapeKeyDown:!1,disableOutsideClick:!1,keepMounted:!1,hasCloseButton:!0},qw.Footer=Bw,qw.Header=function(t){var n=t.caption,i=void 0===n?"":n,r=t.insertBefore,o=t.insertAfter,a=t.className,s=t.id;return e.createElement("div",{className:zw(null,a)},r,e.createElement("div",{className:zw("caption"),id:s},i),o)},qw.Body=function(t){var n=t.className;return e.createElement("div",{className:Ww(null,n)},t.children)},qw.Divider=function(t){var n=t.className;return e.createElement("div",{className:Vw(null,n)})};var Gw=(0,ct.default)("kv-truncated-query"),$w=function(e){var t=e.value,n=void 0===t?"":t,i=e.maxQueryHeight,r=void 0===i?6:i,o=n.split("\n");if(o.length>r){var a=o.slice(0,r).join("\n");return(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)("span",{className:Gw(),children:a}),(0,fs.jsx)("span",{className:Gw("message",{color:"secondary"}),children:"\n...\nThe request was truncated. Click on the line to show the full query on the query tab"})]})}return(0,fs.jsx)(fs.Fragment,{children:n})},Qw=6,Xw=Rt(Rt({},fi),{},{dynamicRenderType:"variable"}),Jw=(0,ct.default)("ydb-saved-queries"),eC=function(e){var t=e.visible,n=e.queryName,i=e.onCancelClick,r=e.onConfirmClick;return(0,fs.jsxs)(qw,{open:t,hasCloseButton:!1,size:"s",onClose:i,onEnterKeyDown:r,children:[(0,fs.jsx)(qw.Header,{caption:Iw("delete-dialog.header")}),(0,fs.jsxs)(qw.Body,{className:Jw("dialog-body"),children:[Iw("delete-dialog.question"),(0,fs.jsx)("span",{className:Jw("dialog-query-name"),children:" ".concat(n,"?")})]}),(0,fs.jsx)(qw.Footer,{textButtonApply:Iw("delete-dialog.delete"),textButtonCancel:Iw("delete-dialog.cancel"),onClickButtonCancel:i,onClickButtonApply:r})]})},tC=function(t){var n=t.savedQueries,i=t.changeUserInput,r=t.onDeleteQuery,o=Q(),a=(0,e.useState)(!1),s=(0,dt.Z)(a,2),u=s[0],l=s[1],c=(0,e.useState)(""),d=(0,dt.Z)(c,2),h=d[0],f=d[1],p=function(){l(!1),f("")},v=[{name:"name",header:"Name",render:function(e){var t=e.row;return(0,fs.jsx)("div",{className:Jw("query-name"),children:t.name})},width:200},{name:"body",header:"Query Text",render:function(e){var t,n=e.row;return(0,fs.jsxs)("div",{className:Jw("query"),children:[(0,fs.jsx)("div",{className:Jw("query-body"),children:(0,fs.jsx)($w,{value:n.body,maxQueryHeight:Qw})}),(0,fs.jsxs)("span",{className:Jw("controls"),children:[(0,fs.jsx)(zr,{view:"flat-secondary",children:(0,fs.jsx)(Lv,{name:"pencil",viewBox:"0 0 24 24"})}),(0,fs.jsx)(zr,{view:"flat-secondary",onClick:(t=n.name,function(e){e.stopPropagation(),l(!0),f(t)}),children:(0,fs.jsx)(Lv,{name:"trash",viewBox:"0 0 24 24"})})]})]})},sortable:!1}];return(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)("div",{className:Jw(),children:(0,fs.jsx)(zn,{theme:"yandex-cloud",columns:v,data:n,settings:Xw,emptyDataMessage:Iw("saved.empty"),rowClassName:function(){return Jw("row")},onRowClick:function(e){return t=e.body,n=e.name,i({input:t}),o(ph(n)),void o(za(Ji.newQuery));var t,n},initialSortOrder:{columnId:"name",order:zn.ASCENDING}})}),(0,fs.jsx)(eC,{visible:u,queryName:h,onCancelClick:function(){p()},onConfirmClick:function(){p(),r(h),f("")}})]})},nC=(0,ct.default)("ydb-queries-history");var iC=function(e){var t,n=e.changeUserInput,i=Q(),r=null!==(t=vf((function(e){return e.executeQuery.history.queries})))&&void 0!==t?t:[],o=(0,Lt.Z)(r).reverse(),a=[{name:"queryText",header:"Query Text",render:function(e){var t=e.row;return(0,fs.jsx)("div",{className:nC("query"),children:(0,fs.jsx)($w,{value:t,maxQueryHeight:Qw})})},sortable:!1}];return(0,fs.jsx)("div",{className:nC(),children:(0,fs.jsx)(zn,{theme:"yandex-cloud",columns:a,data:o,settings:Xw,emptyDataMessage:Iw("history.empty"),onRowClick:function(e){return n({input:e}),void i(za(Ji.newQuery))}})})},rC=n(77810),oC=e.memo((function(t){var n=t.className,i=t.value,r=Q();return(0,e.useEffect)((function(){return function(){r(Fs())}}),[r]),(0,fs.jsx)("span",{className:hC("cell",n),onClick:function(e){return r(js(e.target,i,"cell"))},children:i})})),aC=JSON.parse('{"empty":"Table is empty"}'),sC=JSON.parse('{"empty":"\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0443\u0441\u0442\u0430\u044f"}'),uC="ydb-query-result-table";na.registerKeyset(Ko.En,uC,aC),na.registerKeyset(Ko.Ru,uC,sC);var lC=na.keyset(uC),cC=["columns","data","settings"],dC=Rt(Rt({},fi),{},{stripedRows:!0,dynamicRenderType:"variable",dynamicItemSizeGetter:function(){return 40}}),hC=(0,ct.default)("ydb-query-result-table"),fC=function(e){return e.length?e.map((function(e){var t=e.name,n=function(e){switch(e.replace(/\?$/,"")){case Pi.Bool:return"boolean";case Pi.Int8:case Pi.Int16:case Pi.Int32:case Pi.Int64:case Pi.Uint8:case Pi.Uint16:case Pi.Uint32:case Pi.Uint64:case Pi.Float:case Pi.Double:case Pi.Decimal:return"number";case Pi.String:case Pi.Utf8:case Pi.Json:case Pi.JsonDocument:case Pi.Yson:case Pi.Uuid:return"string";case Pi.Date:case Pi.Datetime:case Pi.Timestamp:case Pi.Interval:case Pi.TzDate:case Pi.TzDateTime:case Pi.TzTimestamp:return"date";default:return}}(e.type);return{name:t,align:"number"===n?zn.RIGHT:zn.LEFT,sortAccessor:function(e){var i=e[t];return void 0===i||null===i?null:"number"===n?BigInt(i):i},render:function(e){var t=e.value;return(0,fs.jsx)(oC,{value:t})}}})):[]},pC=function(e,t){return t},vC=function(t){var n=t.columns,i=t.data,r=t.settings,o=rn(t,cC),a=(0,e.useMemo)((function(){return function(e){return Array.isArray(e)?e.map((function(e){var t={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var i=typeof e[n];"object"===i||"boolean"===i||Array.isArray(e[n])?t[n]=JSON.stringify(e[n]):t[n]=e[n]}return t})):[]}(i)}),[i]),s=(0,e.useMemo)((function(){return n?fC(n):function(e){return e.length?Object.keys(e[0]).map((function(t){return{name:t,align:Bi(e[0][t])?zn.RIGHT:zn.LEFT,sortAccessor:function(e){return Bi(e[t])?Number(e[t]):e[t]},render:function(e){var t=e.value;return(0,fs.jsx)(oC,{value:t})}}})):[]}(a)}),[a,n]),u=(0,e.useMemo)((function(){return Rt(Rt({},dC),r)}),[r]);return Array.isArray(i)?s.length?(0,fs.jsx)(zn,Rt({theme:"yandex-cloud",data:a,columns:s,settings:u,rowKey:pC},o)):(0,fs.jsx)("div",{className:hC("message"),children:lC("empty")}):null},gC=(0,ct.default)("kv-fullscreen"),mC=function(e){(0,o.Z)(s,e);var n=(0,a.Z)(s);function s(e){var t;return(0,i.Z)(this,s),(t=n.call(this,e)).modalRoot=null,t.el=void 0,t.el=document.createElement("div"),t}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){this.modalRoot=document.getElementById("fullscreen-root"),this.modalRoot&&this.modalRoot.appendChild(this.el)}},{key:"componentWillUnmount",value:function(){this.modalRoot&&this.modalRoot.removeChild(this.el)}},{key:"render",value:function(){return t.createPortal(this.props.children,this.el)}}]),s}(e.Component);var _C=function(t){var n=Q(),i=function(e){"Escape"===e.key&&r()};(0,e.useEffect)((function(){return document.addEventListener("keydown",i,!1),function(){document.removeEventListener("keydown",i,!1)}}),[]);var r=function(){n(yh())};return(0,fs.jsx)(mC,{children:(0,fs.jsxs)("div",{className:gC(null,t.className),children:[(0,fs.jsx)(zr,{onClick:r,view:"raised",className:gC("close-button"),children:(0,fs.jsx)(xv,{name:"disableFullscreen",viewBox:"0 0 16 16 ",width:16,height:16})}),t.children]})})};var yC=function(e){var t=e.disabled,n=Q();return(0,fs.jsx)(zr,{onClick:function(){n({type:gh})},view:"flat-secondary",disabled:t,title:"Fullscreen",children:(0,fs.jsx)(xv,{name:"enableFullscreen",viewBox:"0 0 16 16",height:16,width:16})})},bC=(0,ct.default)("kv-preview"),wC=function(t){var n,i=t.database,r=t.type,o=Q(),a=vf((function(e){return e.preview})),s=a.data,u=void 0===s?{}:s,l=a.loading,c=a.error,d=a.wasLoaded,h=vf((function(e){return e.schema})),f=h.autorefresh,p=h.currentSchemaPath,v=vf((function(e){return e.fullscreen})),g=(0,e.useCallback)((function(e){if(zu(r)){e||o({type:Jc,data:{wasLoaded:!1,data:void 0}});var t="--!syntax_v1\nselect * from `".concat(p,"` limit 32");o(function(e){var t=e.query,n=e.database,i=e.action;return Oo({request:window.api.sendQuery({schema:"modern",query:t,database:n,action:i}),actions:Xc,dataHandler:Ui})}({query:t,database:i,action:"execute-scan"}))}}),[o,i,p,r]);pf(g,[g],f);var m,_=function(){o(fl(!1))};if(l&&!d)return(0,fs.jsx)("div",{className:bC("loader-container"),children:(0,fs.jsx)(yy,{size:"m"})});zu(r)?c&&(m=(0,fs.jsx)("div",{className:bC("message-container"),children:Gi(c)})):m=(0,fs.jsx)("div",{className:bC("message-container"),children:Iw("preview.not-available")});var y=null!==(n=m)&&void 0!==n?n:(0,fs.jsx)("div",{className:bC("result"),children:(0,fs.jsx)(vC,{data:u.result,columns:u.columns})});return(0,fs.jsxs)("div",{className:bC(),children:[(0,fs.jsxs)("div",{className:bC("header"),children:[(0,fs.jsxs)("div",{className:bC("title"),children:[Iw("preview.title")," ",(0,fs.jsx)("div",{className:bC("table-name"),children:p})]}),(0,fs.jsxs)("div",{className:bC("controls-left"),children:[(0,fs.jsx)(yC,{disabled:Boolean(c)}),(0,fs.jsx)(zr,{view:"flat-secondary",onClick:_,title:Iw("preview.close"),children:(0,fs.jsx)(xv,{name:"close",viewBox:"0 0 16 16",width:16,height:16})})]})]}),v?(0,fs.jsx)(_C,{children:y}):y]})},CC=(0,ct.default)("kv-divider");var kC,SC=function(){return(0,fs.jsx)("div",{className:CC()})};function xC(){return xC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},xC.apply(this,arguments)}var LC=function(t){return e.createElement("svg",xC({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),kC||(kC=e.createElement("path",{d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32s-14.9 32-32 32zm69.1-142L280 286v2c0 13-11 24-24 24s-24-11-24-24v-16c0-8 4-16 12-21l57-34c7-4 11-11 11-19 0-12-10.9-22-22.9-22H238c-12.9 0-22 10-22 22 0 13-11 24-24 24s-24-11-24-24c0-39 31-70 69.1-70h51.1c40.8 0 71.8 31 71.8 70 0 24-13 47-34.9 60z"})))},EC=(0,ct.default)("kv-query-execution-status"),NC=function(e){var t,n,i=e.className,r=e.error;if("ECONNABORTED"===(null===r||void 0===r?void 0:r.code))t=(0,fs.jsx)(Mr,{data:LC,size:16}),n="Connection aborted";else{var o=Boolean(r);t=(0,fs.jsx)(xv,{name:o?"failure":"success",viewBox:o?"0 0 512 512":"0 0 16 16",width:16,height:16,className:EC("result-status-icon",{error:o})}),n=o?"Failed":"Completed"}return(0,fs.jsxs)("div",{className:EC(null,i),children:[t,n]})};function DC(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},Lr,t),e.createElement("path",{stroke:"currentColor",fill:"none",d:"M3 6l5 5 5-5"}))}var MC=pt("arrow-toggle");function TC(t){var n=t.size,i=void 0===n?16:n,r=t.direction,o=void 0===r?"bottom":r,a=t.className;return e.createElement("span",{style:{width:i,height:i},className:MC({direction:o},a)},e.createElement(Mr,{data:DC,size:i}))}var OC=JSON.parse('{"default_collapse_label":"Show less","default_expand_label":"Show more","chars_count":[" ({{count}} symbol)"," ({{count}} symbols)"," ({{count}} symbols)"," ({{count}} symbols)"]}'),IC=JSON.parse('{"default_collapse_label":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435","default_expand_label":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0449\u0451","chars_count":[" ({{count}} \u0441\u0438\u043c\u0432\u043e\u043b)"," ({{count}} \u0441\u0438\u043c\u0432\u043e\u043b\u0430)"," ({{count}} \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432)"," ({{count}} \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432)"]}'),AC="ydb-shorty-string";na.registerKeyset(Ko.En,AC,OC),na.registerKeyset(Ko.Ru,AC,IC);var PC=na.keyset(AC),RC=(0,ct.default)("kv-shorty-string");function ZC(t){var n=t.value,i=void 0===n?"":n,r=t.limit,o=void 0===r?200:r,a=t.strict,s=void 0!==a&&a,u=t.displayLength,l=void 0===u||u,c=t.render,d=void 0===c?function(e){return e}:c,h=t.onToggle,f=t.expandLabel,p=void 0===f?PC("default_expand_label"):f,v=t.collapseLabel,g=void 0===v?PC("default_collapse_label"):v,m=e.useState(!1),_=(0,dt.Z)(m,2),y=_[0],b=_[1],w=(y?g:p)+(l&&!y?PC("chars_count",{count:i.length}):""),C=i.length>o+(s?0:w.length),k=y||!C?i:i.slice(0,o-4)+"\xa0...";return(0,fs.jsxs)("div",{className:RC(),children:[d(k),C?(0,fs.jsx)(Mf,{className:RC("toggle"),onClick:function(e){e.stopPropagation(),b((function(e){return!e})),null===h||void 0===h||h()},children:w}):null]})}var FC=["S_FATAL","S_ERROR","S_WARNING","S_INFO"];function jC(e){return function(e){return!!e&&void 0!==FC[e]}(e)?FC[e]:"S_INFO"}var HC=(0,ct.default)("kv-result-issues"),BC=(0,ct.default)("kv-issues"),zC=(0,ct.default)("kv-issue");function WC(t){var n=t.data,i=t.className,r=e.useState(!1),o=(0,dt.Z)(r,2),a=o[0],s=o[1],u="string"!==typeof n&&Array.isArray(null===n||void 0===n?void 0:n.issues);return(0,fs.jsxs)("div",{className:HC(),children:[(0,fs.jsxs)("div",{className:HC("error-message"),children:[function(){var t;if("string"===typeof n)t=n;else{var i,r,o=jC(null===n||void 0===n||null===(i=n.error)||void 0===i?void 0:i.severity);t=(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)(GC,{severity:o})," ",(0,fs.jsx)("span",{className:HC("error-message-text"),children:null===n||void 0===n||null===(r=n.error)||void 0===r?void 0:r.message})]})}return t}(),u&&(0,fs.jsx)(zr,{view:"normal",onClick:function(){return s(!a)},children:a?"Hide details":"Show details"})]}),u&&a&&(0,fs.jsx)(VC,{issues:n.issues,className:i})]})}function VC(e){var t=e.issues,n=e.className,i=t.reduce((function(e,t){var n,i=null!==(n=t.severity)&&void 0!==n?n:10;return Math.min(e,i)}),10);return(0,fs.jsx)("div",{className:BC(null,n),children:t.map((function(e,t){return(0,fs.jsx)(YC,{issue:e,expanded:e===i},t)}))})}function YC(t){var n=t.issue,i=t.level,r=void 0===i?0:i,o=e.useState(!0),a=(0,dt.Z)(o,2),s=a[0],u=a[1],l=jC(n.severity),c=Array.isArray(n.issues)&&n.issues.length>0,d=function(e){var t=e.file,n=e.position;if(!n)return!1;return"".concat(t?"file:":"").concat(n.row,":").concat(n.column)}(n),h=s?"bottom":"right";return(0,fs.jsxs)("div",{className:zC({leaf:!c,"has-issues":c}),children:[(0,fs.jsxs)("div",{className:zC("line"),children:[c&&(0,fs.jsx)(zr,{view:"flat-secondary",onClick:function(){return u(!s)},className:zC("arrow-toggle"),children:(0,fs.jsx)(TC,{direction:h,size:16})}),(0,fs.jsx)(GC,{severity:l}),(0,fs.jsxs)("span",{className:zC("message"),children:[d&&(0,fs.jsx)("span",{className:zC("place-text"),title:"Position",children:d}),(0,fs.jsx)("div",{className:zC("message-text"),children:(0,fs.jsx)(ZC,{value:n.message,expandLabel:"Show full message"})})]}),n.code?(0,fs.jsxs)("span",{className:zC("code"),children:["Code: ",n.code]}):null]}),c&&s&&(0,fs.jsx)("div",{className:zC("issues"),children:(0,fs.jsx)(UC,{issues:n.issues,level:r+1,expanded:s})})]})}function UC(e){var t=e.issues,n=e.level,i=e.expanded;return(0,fs.jsx)("div",{className:zC("list"),children:t.map((function(e,t){return(0,fs.jsx)(YC,{issue:e,level:n,expanded:i},t)}))})}var KC={S_INFO:Zf,S_WARNING:Hf,S_ERROR:Wf,S_FATAL:Yf},qC=(0,ct.default)("yql-issue-severity");function GC(e){var t=e.severity,n=t.slice(2).toLowerCase();return(0,fs.jsxs)("span",{className:qC({severity:n}),children:[(0,fs.jsx)(Mr,{className:qC("icon"),data:KC[t],size:16}),(0,fs.jsx)("span",{className:qC("title"),children:n})]})}var $C=(0,ct.default)("ydb-query-duration"),QC=function(e){var t=e.duration;if(!t)return null;var n=Vl(function(e){return e&&Bi(e)?Math.round(Number(e)/1e3):0}(t),1);return(0,fs.jsx)("span",{className:$C(),children:n})},XC=(0,ct.default)("ydb-query-execute-result"),JC={result:"result",stats:"stats"},ek=[{value:JC.result,content:"Result"},{value:JC.stats,content:"Stats"}];function tk(t){var n,i=(0,e.useState)(JC.result),r=(0,dt.Z)(i,2),o=r[0],a=r[1],s=te((function(e){return e.fullscreen})),u=Q();(0,e.useEffect)((function(){return function(){u(yh())}}),[]);return(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsxs)("div",{className:XC("controls"),children:[(0,fs.jsxs)("div",{className:XC("controls-right"),children:[(0,fs.jsx)(NC,{error:t.error}),t.stats&&!t.error&&(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)(QC,{duration:null===(n=t.stats)||void 0===n?void 0:n.DurationUs}),(0,fs.jsx)(SC,{}),(0,fs.jsx)(Pp,{options:ek,value:o,onUpdate:function(e){a(e)}})]})]}),(0,fs.jsxs)("div",{className:XC("controls-left"),children:[function(){var e=t.textResults,n=t.copyDisabled;return(0,fs.jsx)(iw,{text:e,title:"Copy results",toastText:"Results were copied to clipboard successfully",disabled:n})}(),(0,fs.jsx)(yC,{}),(0,fs.jsx)(xw,{onCollapse:t.onCollapseResults,onExpand:t.onExpandResults,isCollapsed:t.isResultsCollapsed,initialDirection:"bottom"})]})]}),(0,fs.jsxs)("div",{className:XC("result"),children:[o===JC.result&&!t.error&&function(){var n=t.result;return(0,fs.jsxs)(e.Fragment,{children:[n,s&&(0,fs.jsx)(_C,{children:(0,fs.jsx)("div",{className:XC("result",{fullscreen:!0}),children:n})})]})}(),o===JC.stats&&!t.error&&function(){var n=(0,fs.jsx)(hs(),{data:t.stats,isExpanded:function(){return!0},className:XC("inspector"),searchOptions:{debounceTime:300}});return(0,fs.jsxs)(e.Fragment,{children:[n,s&&(0,fs.jsx)(_C,{children:(0,fs.jsx)("div",{className:XC("inspector",{fullscreen:!0}),children:n})})]})}(),function(){var n,i=t.error;return(null===i||void 0===i||null===(n=i.data)||void 0===n?void 0:n.issues)&&Array.isArray(i.data.issues)?(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)(WC,{data:i.data}),s&&(0,fs.jsx)(_C,{children:(0,fs.jsx)("div",{className:XC("result",{fullscreen:!0}),children:(0,fs.jsx)(WC,{data:i.data})})})]}):i?(0,fs.jsx)("div",{className:XC("error"),children:Gi(i)}):void 0}()]})]})}var nk,ik,rk=n(59312);!function(e){e.Arrow="arrow",e.Line="line"}(nk||(nk={})),function(e){e.Normal="normal",e.Ellipsis="ellipsis"}(ik||(ik={}));function ok(e,t){var n=document.createElement("button");return n.innerText=e,n.className="paranoid-button paranoid-button_".concat(t),n}var ak="ParanoidC";function sk(e,t){var n=document.getElementById(e);if(!n)throw new Error("Not found element with id ".concat(e));n.style.position="relative";var i=ok("+","plus"),r=ok("-","minus"),o=ok("1:1","normal"),a=function(e,t){var n=document.createElement("canvas");n.setAttribute("id",ak),n.setAttribute("width",String(e.offsetWidth)),n.setAttribute("height",String(e.offsetHeight)),e.appendChild(n);var i=t.colors||{};return new rk.fabric.Canvas(ak,{selection:!1,backgroundColor:i.fill,defaultCursor:"grab"})}(n,t),s=function(e,t,n,i){var r=document.createElement("div");r.className="paranoid-controls";var o=document.createElement("style");return o.innerText=function(e){return"\n .paranoid-controls {\n position: absolute;\n top: 10px;\n right: 10px;\n }\n .paranoid-button {\n margin-left: 12px;\n border-radius: 4px;\n height: 36px;\n width: 36px;\n line-height: 13px;\n font-family: Arial, sans-serif;\n font-size: 13px;\n text-align: center;\n padding: 0;\n box-shadow: 0px 5px 6px ".concat(e.nodeShadow,";\n border: 1px solid ").concat(e.buttonBorderColor,";\n background-color: ").concat(e.nodeFill,";\n color: ").concat(e.textColor,";\n cursor: pointer;\n }\n .paranoid-button:focus {\n outline: none;\n }\n .paranoid-button:active {\n border: 1px solid ").concat(e.buttonBorderColor,";\n }\n .paranoid-button_plus {\n margin-left: 0;\n border-left: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .paranoid-button_minus {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n")}(i),r.appendChild(o),r.appendChild(t),r.appendChild(e),r.appendChild(n),r}(i,r,o,t.colors);return n.appendChild(s),function(e,t,n,i,r){var o=r.minZoom||.2,a=r.zoomStep||.2,s=r.maxZoom||2,u=r.startZoom||1;e.setZoom(u),n.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation();var n=e.getZoom();(n-=a)<o&&(n=o),e.setZoom(n)})),t.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation();var n=e.getZoom();(n+=a)>s&&(n=s),e.setZoom(n)})),i.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation(),e.setZoom(1)}))}(a,i,r,o,t),function(e){var t=!1,n=0,i=0;e.on("mouse:down",(function(r){r.target||(e.setCursor("grabbing"),t=!0,n=r.pointer.x,i=r.pointer.y)})),e.on("mouse:move",(function(r){t&&(e.viewportTransform[4]+=r.pointer.x-n,e.viewportTransform[5]+=r.pointer.y-i,e.setCursor("grabbing"),e.getObjects().forEach((function(e){return e.setCoords()})),e.requestRenderAll(),n=r.pointer.x,i=r.pointer.y)})),e.on("mouse:up",(function(){t&&(e.setCursor("grab"),t=!1)}))}(a),a}var uk,lk={success:"rgba(59, 201, 53, 0.75)",error:"#ff0400",warning:"#ff7700",errorBackground:"rgba(235,50,38,0.08)",warningBackground:"rgba(255,219,77,0.3)",mute:"rgba(0,0,0,0.15)",stroke:"rgba(0,0,0,0.3)",fill:"#fafafa",nodeFill:"#ffffff",nodeShadow:"rgba(0,0,0,0.15)",titleColor:"#000000",textColor:"rgba(0,0,0,0.7)",buttonBorderColor:"rgba(0,0,0,0.07)",groupBorderColor:"rgba(2, 123, 243, 0.14)",groupFill:"rgba(2, 123, 243, 0.08)",titleHoverColor:"#004080",nodeHover:"#f3f3f3",specialHover:"rgba(2,123,243,1)"},ck={hasControls:!1,hasRotatingPoint:!1,lockMovementX:!0,lockMovementY:!0,selectable:!1,hoverCursor:"default",subTargetCheck:!0},dk="Arial, sans-serif",hk=13,fk=1.38;!function(e){e.Group="GROUP"}(uk||(uk={}));var pk={width:239,height:58,widthWithAnchor:249,borderRadius:4,paddingTop:8,paddingBottom:8,paddingLeft:8,paddingRight:8,titleFontSize:13,titleLineHeight:1.38,textFontSize:12,textLineHeight:1.16,titleMaxWidth:205,metaMaxWidth:205,metaMarginTop:10,metricsMarginTop:10,metricsPadding:5,anchorOffset:10},vk={radius:3,paddingRight:8},gk={paddingTop:16,paddingLeft:16,paddingRight:16,paddingBottom:14},mk=8;function _k(e,t,n){return new rk.fabric.Circle({top:e,left:t,radius:vk.radius,fill:n.nodeFill,stroke:n.stroke})}function yk(e,t){for(var n=Math.ceil(e.getLineWidth(0));n>t;){var i=e.text||"";e.set("text",i.slice(0,i.length-4)+"..."),n=Math.ceil(e.getLineWidth(0))}}var bk=n(80358),wk=n.n(bk),Ck="\n M19,21\n H8\n V7\n H19\n M19,5\n H8\n A2,2 0 0,0 6,7\n V21\n A2,2 0 0,0 8,23\n H19\n A2,2 0 0,0 21,21\n V7\n A2,2 0 0,0 19,5\n M16,1\n H4\n A2,2 0 0,0 2,3\n V17\n H4\n V3\n H16\n V1\n Z\n",kk="M9.5 13l3 3l5 -5",Sk="M9.5 10l8 8m-8 0l8 -8";function xk(e,t){switch(e.theme){case"warning":return t.warning;case"danger":return t.error}return t.textColor}function Lk(e,t){switch(e){case"ALIVE":return t.getCommonColor("base-positive-heavy");case"DEGRADED":return t.getCommonColor("base-warning-heavy");case"DEAD":return t.getCommonColor("base-danger-heavy");default:return t.getCommonColor("base-neutral")}}function Ek(e,t,n,i){var r,o=t.left,a=t.top,s=t.node,u=n.colors,l=n.renderNodeTitle,c=n.onTitleClick,d=n.prepareCopyText,h=n.textOverflow||ik.Ellipsis,f=l?l(s):s.name,p=new rk.fabric.Text(f||"",{fontSize:pk.titleFontSize,lineHeight:pk.titleLineHeight,left:pk.paddingLeft,top:pk.paddingTop,fontFamily:dk,fill:u.titleColor,hoverCursor:"function"===typeof c?"pointer":"default"});"function"===typeof c&&(p.on("mouseover",(function(){p.set("fill",u.titleHoverColor),e.requestRenderAll()})),p.on("mouseout",(function(){p.set("fill",u.titleColor),e.requestRenderAll()})),p.on("mousedown",(function(){c(s)})));var v,g=new rk.fabric.Text(s.meta||"",{fontSize:pk.textFontSize,lineHeight:pk.textLineHeight,left:pk.paddingLeft,top:pk.paddingTop+p.getBoundingRect().height+pk.metaMarginTop,fontFamily:dk,fill:u.textColor}),m=(null===(r=s.metrics)||void 0===r?void 0:r.length)?function(e,t,n,i){for(var r,o,a,s,u,l,c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1/0,d=[],h=0,f=0,p=0;p<n.length;p++){var v=n[p],g=new rk.fabric.Text(v.name+": ",{fontSize:pk.textFontSize,lineHeight:pk.textLineHeight,fontFamily:dk,fill:i.textColor}),m=new rk.fabric.Text(v.value,{fontSize:pk.textFontSize,lineHeight:pk.textLineHeight,fontFamily:dk,fill:xk(v,i),left:null!==(r=g.width)&&void 0!==r?r:0});f+((null!==(o=g.width)&&void 0!==o?o:0)+(null!==(a=m.width)&&void 0!==a?a:0))>c&&(f=0,h+=(null!==(u=null===(s=null===d||void 0===d?void 0:d[d.length-1])||void 0===s?void 0:s.height)&&void 0!==u?u:0)+pk.metricsPadding);var _=new rk.fabric.Group([g,m],{top:h,left:f});f+=(null!==(l=_.width)&&void 0!==l?l:0)+pk.metricsPadding,d.push(_)}return new rk.fabric.Group(d,{top:e,left:t})}(pk.paddingTop+p.getBoundingRect().height+g.getBoundingRect().height+pk.metaMarginTop+pk.metricsMarginTop,pk.paddingLeft,s.metrics,u,h===ik.Ellipsis?pk.width-pk.paddingLeft-pk.paddingRight:1/0):void 0;if(s.status){var _=new rk.fabric.Rect({width:12,height:12,fill:Lk(s.status,u),rx:3,ry:3}),y=new rk.fabric.Text(s.status,{fontSize:pk.textFontSize,lineHeight:pk.textLineHeight,left:16,fontFamily:dk,fill:u.textColor});v=new rk.fabric.Group([_,y],{top:g.getBoundingRect().top+g.getBoundingRect().height-g.getHeightOfLine(0),left:pk.width-y.getLineWidth(0)-16-12,padding:12})}var b=i?pk.widthWithAnchor:pk.width;if(h===ik.Ellipsis)yk(p,pk.titleMaxWidth),yk(g,pk.metaMaxWidth);else{var w=p.getBoundingRect().width,C=g.getBoundingRect().width,k=v?v.getBoundingRect().width:0,S=m?m.getBoundingRect().width+pk.paddingLeft+pk.paddingRight:0;b=Math.max(b,pk.paddingLeft+Math.max(w,C)+Math.max(mk+pk.paddingRight,k)+(i?pk.anchorOffset:0),S),v&&(v.left=b-k+12-(i?pk.anchorOffset:0))}var x=function(e,t,n,i,r){return t.split("\n").length>1||e.meta&&e.meta.split("\n").length>1||e.metrics?pk.paddingTop+n.getBoundingRect().height+pk.metaMarginTop+i.getBoundingRect().height+(r?pk.metricsMarginTop+r.getBoundingRect().height:0)+pk.paddingBottom:pk.height}(s,f,p,g,m),L=new rk.fabric.Rect({width:b,height:x,fill:u.nodeFill,stroke:u.nodeShadow,rx:pk.borderRadius,ry:pk.borderRadius,shadow:new rk.fabric.Shadow({color:u.nodeShadow,offsetY:5,blur:6})}),E=function(e,t,n,i,r){var o=r.colors,a=r.prepareCopyText,s=new rk.fabric.Path(Ck,{fill:o.stroke,hoverCursor:"pointer"}),u=new rk.fabric.Path(kk,{stroke:o.stroke,fill:"",hoverCursor:"pointer",opacity:0}),l=new rk.fabric.Path(Sk,{stroke:o.stroke,fill:"",hoverCursor:"pointer",opacity:0}),c=new rk.fabric.Group([s,u,l],{top:n,left:i-mk,scaleX:.6,scaleY:.6});return"function"===typeof a&&c.on("mousedown",(function(){var n=a(t),i=wk()(n)?u:l;i.animate("opacity",1,{duration:150,onChange:e.requestRenderAll.bind(e),easing:rk.fabric.util.ease.easeInOutSine,onComplete:function(){setTimeout((function(){i.set("opacity",0),e.requestRenderAll()}),1e3)}})})),c}(e,s,pk.paddingTop,b-pk.paddingLeft-pk.paddingRight,n);E.set("visible",!1);var N=[L,p,E,g,v,m].filter(Boolean);i&&N.push(_k(x/2-vk.radius,b-vk.paddingRight-2*pk.borderRadius,u));var D=new rk.fabric.Group(N,Object.assign({left:o,top:a},ck));return"function"===typeof d&&(D.on("mouseover",(function(){E.set("visible",!0),e.requestRenderAll()})),D.on("mouseout",(function(){E.set("visible",!1),e.requestRenderAll()}))),D}var Nk=10,Dk=10,Mk=15,Tk=40;function Ok(e){var t=arguments.length>3?arguments[3]:void 0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Dk,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Nk,r=[],o=[],a=0,s=0;e.traverseByLevels((function(u,l){var c=[],d=0,h=0,f=u.map((function(r,a){var u=i+Tk*l+s,f=n+c.reduce((function(e,t){return e+t.getScaledHeight()||0}),0)+Mk*a,p=function(e,t,n,i,r,o){var a,s=[],u=i.data;if(i.members.length>0){var l=n+gk.paddingRight,c=t+gk.paddingTop+gk.paddingTop+gk.paddingBottom,d=0,h=0,f=i.members.reduce((function(t,n){n.setCanvas(e),n.setNodesWithChildren(o);var i=Ok(n,c,l,r),a=i.nodes,s=i.bottom,u=i.right;return c=s+Mk,s>d&&(d=s),u>h&&(h=u),t.push.apply(t,(0,Lt.Z)(a)),t}),[]);a=function(e,t,n,i){var r=t.left,o=t.top,a=t.width,s=t.height,u=new rk.fabric.Text(e||"",{fontSize:pk.titleFontSize,lineHeight:18,left:gk.paddingLeft,top:gk.paddingTop,fontFamily:dk,fill:n.titleColor}),l=s+gk.paddingBottom+(u.height||0),c=a+gk.paddingLeft+gk.paddingRight;i&&(c+=vk.paddingRight);var d=[new rk.fabric.Rect({width:c,height:l,stroke:n.groupBorderColor,fill:n.groupFill,rx:pk.borderRadius,ry:pk.borderRadius}),u];return i&&d.push(_k(l/2-vk.radius,c-pk.paddingLeft-2*pk.borderRadius,n)),new rk.fabric.Group(d,Object.assign({left:r,top:o},ck))}(u.name,{top:t,left:n,width:h-n-gk.paddingRight,height:d-t-gk.paddingTop},r.colors,o.includes(i.data.name)),s.push.apply(s,(0,Lt.Z)(f))}else a=Ek(e,{left:n,top:t,node:i.data},r,o.includes(i.data.name));return i.addCanvasNode(a),{object:a,membersObjects:s,top:t,left:n,width:a.getScaledWidth(),height:a.getScaledHeight()}}(e.canvas,f,u,r,t,e.nodesWithChildren),v=p.object,g=p.membersObjects;g.length>0&&o.push.apply(o,(0,Lt.Z)(g)),d+=v.getScaledHeight()+Mk;var m=v.getScaledWidth();return m>h&&(h=m),r.addCanvasNode(v),c.push(v),v}));r.push.apply(r,(0,Lt.Z)(f)),r.push.apply(r,o),s+=h,(d-=Mk)>a&&(a=d)}));var u=e.getTreeDepth()*Tk;return{nodes:r,bottom:a+n,right:s+i+u}}var Ik=function(){function e(t,n){(0,i.Z)(this,e),this.children=[],this.members=[],this.data=t,this.canvasNode=n}return(0,r.Z)(e,[{key:"add",value:function(t,n){var i=new e(t,n);i.addParent(this),this.children.push(i)}},{key:"addNode",value:function(e){e.addParent(this),this.children.push(e)}},{key:"addNodes",value:function(e){var t=this;e.forEach((function(e){e.addParent(t)})),this.children=this.children.concat(e)}},{key:"addCanvasNode",value:function(e){this.canvasNode=e}},{key:"addShapeInstance",value:function(e){this.shapeInstance=e}},{key:"hasChildren",value:function(){return this.children.length>0}},{key:"addParent",value:function(e){this.parent=e}},{key:"getLeftSibling",value:function(){var e=this;if(this.parent){var t=this.parent.children.findIndex((function(t){return t===e}));return this.parent.children[t-1]}}},{key:"getRightSibling",value:function(){var e=this;if(this.parent){var t=this.parent.children.findIndex((function(t){return t===e}));return this.parent.children[t+1]}}}]),e}();var Ak=function(){function e(t){(0,i.Z)(this,e),this.nodesWithChildren=[],this.root=t}return(0,r.Z)(e,[{key:"traverseBF",value:function(e){for(var t=[this.root];t.length>0;){var n=t.shift();n&&(t.push.apply(t,(0,Lt.Z)(n.children)),e(n))}}},{key:"traverseDF",value:function(e){for(var t=[this.root];t.length;){var n=t.shift(),i=!1;n&&(n.children.length>0?t.unshift.apply(t,(0,Lt.Z)(n.children)):i=!0,e(n,i))}}},{key:"traverseByLevels",value:function(e){var t=0,n=this.root.children;for(e([this.root],0);n.length>0;)e(n,++t),n=n.reduce((function(e,t){return e.concat(t.children)}),[])}},{key:"getTreeDepth",value:function(){var e=0;return this.traverseByLevels((function(t,n){e=n})),e}},{key:"setCanvas",value:function(e){this.canvas=e}},{key:"setNodesWithChildren",value:function(e){this.nodesWithChildren=e}}]),e}(),Pk=function(){function e(t,n){(0,i.Z)(this,e),this.nodes=new Map,this.data=t,this.opts=n}return(0,r.Z)(e,[{key:"parseData",value:function(){var e=this,t=this.data,n=this.getGroups(t),i=(0,Lt.Z)(t.nodes);n.forEach((function(e,t){i.push({name:t,children:e,type:uk.Group})}));var r=this.findSources(i,t.links),o=[],a={},s=new Map;return r.forEach((function(n){var r=e.mapNodesToTree(n,i,t.links);a=Object.assign(Object.assign({},r.groups),a),s=new Map([].concat((0,Lt.Z)(s),(0,Lt.Z)(r.notGroupMemebersChildren))),o.push(r.tree)})),s.forEach((function(e,t){a[t]&&a[t].addNodes(e)})),o=o.reduce((function(e,t){var n=t.root.data.group;return n?a[n].members.push(t):e.push(t),e}),[])}},{key:"getGroups",value:function(e){var t=e.nodes,n=new Map;return t.forEach((function(e){if(e.group){var t=n.get(e.group);t?t.push(e.name):n.set(e.group,[e.name])}})),n}},{key:"findSources",value:function(e,t){var n=t.map((function(e){return e.to}));return e.reduce((function(e,t){return n.includes(t.name)||e.push(t),e}),[])}},{key:"mapNodesToTree",value:function(e,t,n){var i,r=this.createNode(e),o={};this.appendGoup(o,r);var a=t.map((function(e){var t=n.reduce((function(t,n){return n.from===e.name&&t.push(n.to),t}),[]);return Object.assign(Object.assign({},e),{children:t})})),s=this.getAppender(a,o),u=(null===(i=a.find((function(t){return t.name===e.name})))||void 0===i?void 0:i.children)||[],l=s(r,u);return{tree:new Ak(r),groups:o,notGroupMemebersChildren:l}}},{key:"appendGoup",value:function(e,t){var n=t.data;t.data.type===uk.Group&&(e[n.name]=t)}},{key:"getAppender",value:function(e,t){var n=this,i=new Map;return function r(o,a){var s=a.map((function(i){var o=e.find((function(e){return e.name===i})),a=n.createNode(o);return n.appendGoup(t,a),o.children.length>0&&r(a,o.children),a})),u=o.data.group,l=Boolean(u),c=[],d=[];if(s.forEach((function(e){var t=e.data.group;l?u===t?c.push(e):d.push(e):c.push(e)})),o.addNodes(c),u&&d.length>0){var h=i.get(u);h?h.push.apply(h,d):i.set(u,d)}return i}}},{key:"createNode",value:function(e){var t=new Ik(e);return this.nodes.set(e.name,t),t}}]),e}();var Rk=4,Zk=12;function Fk(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:nk.Arrow,r=function(e){var t=e.left,n=void 0===t?0:t,i=e.top,r=void 0===i?0:i,o=e.width,a=void 0===o?0:o,s=e.height;return{x:n+a,y:r+(void 0===s?0:s)/2}}(e),o=r.x,a=r.y,s=function(e){var t=e.left,n=void 0===t?0:t,i=e.top,r=void 0===i?0:i,o=e.height;return{x:n,y:r+(void 0===o?0:o)/2}}(t),u=s.x,l=s.y,c={y:a,x:o+Rk},d={y:l,x:u-Zk},h=[new rk.fabric.Path("M ".concat(o," ").concat(a,"\n H ").concat(c.x,"\n ").concat(function(e,t){var n=t.y-e.y;return Math.abs(n),"L ".concat(t.x," ").concat(t.y)}(c,d),"\n H ").concat(u,"\n "),{fill:"",stroke:n.stroke,strokeWidth:1})];if(i!==nk.Line){var f=new rk.fabric.Path(function(e,t){var n={x1:e,y1:t,x2:e-8,y2:t-3,x3:e-8,y3:t+3};return"M ".concat(n.x1," ").concat(n.y1,"\n L ").concat(n.x3," ").concat(n.y3,"\n L ").concat(n.x2," ").concat(n.y2,"\n L ").concat(n.x1," ").concat(n.y1,"\n ")}(u,l),{fill:n.stroke,stroke:n.stroke,strokeWidth:1});h.push(f)}return new rk.fabric.Group(h,Object.assign({},ck))}var jk=function(){function e(t,n,r){(0,i.Z)(this,e),this.nodesWithChildren=r.links.reduce((function(e,t){return e.set(t.from,[]),e}),new Map),this.parser=new Pk(r,n),this.opts=n,this.canvas=sk(t,n)}return(0,r.Z)(e,[{key:"destroy",value:function(){var e=document.getElementById(ak);e&&(this.canvas.dispose(),e.remove())}},{key:"renderCompactTopology",value:function(){var e=this;requestAnimationFrame((function(){var t;e.parser.parseData().forEach((function(n){n.setCanvas(e.canvas),n.setNodesWithChildren(e.getNodesWithChildren());var i=Ok(n,t,undefined,e.opts),r=i.nodes,o=i.bottom;t=o+15;var a=e.getLinks();e.renderIntoCanvas(r,a)})),e.opts.initialZoomFitsCanvas&&e.zoomObjectsToFitCanvas()}))}},{key:"updateData",value:function(e){var t=this;this.parser=new Pk(e,this.opts),this.setNodeWithChildren(e);var n,i=this.parser.parseData();i.forEach((function(e,r){e.setCanvas(t.canvas),e.setNodesWithChildren(t.getNodesWithChildren());var o=Ok(e,n,undefined,t.opts),a=o.nodes,s=o.bottom;n=s+15;var u=t.getLinks();t.renderIntoCanvas(a,u,i.length-1===r)}))}},{key:"renderIntoCanvas",value:function(e,t,n){var i;this.canvas&&(this.clearCanvas(),(i=this.canvas).add.apply(i,(0,Lt.Z)(t).concat((0,Lt.Z)(e))),this.bringNodesToFront(),this.rendered=n)}},{key:"clearCanvas",value:function(){if(this.canvas&&this.rendered){try{this.canvas.clear(),this.canvas.clearContext(this.canvas.getContext())}catch(e){console.error(e)}this.rendered=!1}}},{key:"setNodeWithChildren",value:function(e){this.nodesWithChildren=e.links.reduce((function(e,t){return e.set(t.from,[]),e}),new Map)}},{key:"getNodesWithChildren",value:function(){var e,t=[],n=(0,Tr.Z)(this.nodesWithChildren.keys());try{for(n.s();!(e=n.n()).done;){var i=e.value;t.push(i)}}catch(r){n.e(r)}finally{n.f()}return t}},{key:"getLinks",value:function(){var e=this,t=this.parser;return t?t.data.links.reduce((function(n,i){var r=i.from,o=i.to,a=t.nodes.get(r),s=t.nodes.get(o);return(null===a||void 0===a?void 0:a.canvasNode)&&(null===s||void 0===s?void 0:s.canvasNode)?(n.push(Fk(a.canvasNode,s.canvasNode,e.opts.colors,e.opts.linkType)),n):n}),[]):[]}},{key:"bringNodesToFront",value:function(){var e,t=null===(e=this.parser)||void 0===e?void 0:e.nodes;t&&t.forEach((function(e){e.data.type!==uk.Group&&e.canvasNode&&e.canvasNode.bringToFront()}))}},{key:"zoomObjectsToFitCanvas",value:function(){var e=0,t=0;this.canvas.getObjects().forEach((function(n){var i=n.getBoundingRect(),r=i.top,o=i.left,a=i.height,s=o+i.width,u=r+a;s>e&&(e=s),u>t&&(t=u)})),e+=this.opts.initialLeft,t+=this.opts.initialTop;var n=this.canvas.getWidth()/e,i=this.canvas.getHeight()/t,r=Math.min(n,i);if(r<1){this.canvas.setZoom(r);var o=this.opts.initialTop*r,a=this.opts.initialLeft*r,s=this.opts.initialTop-o,u=this.opts.initialLeft-a;this.canvas.relativePan(new rk.fabric.Point(u,s))}}}]),e}(),Hk=n(28664),Bk=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n)}((0,Hk.Z)(CustomEvent)),zk=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"dispatch",value:function(e,t){this.dispatchEvent(new Bk(e,{detail:t}))}}]),n}((0,Hk.Z)(EventTarget)),Wk=16,Vk=16,Yk=24;function Uk(e){switch(e){case 0:return 0;case 1:return Vk;default:return Yk}}function Kk(e,t,n,i,r,o){var a=function(e,t,n,i,r,o,a){var s=new Map,u=new Map,l=new Map,c=[];return i.traverseBF((function(i){var r=function(e,t,n,i,r,o,a){var s,u,l=null!==(s=t.shapeInstance)&&void 0!==s?s:o.node(e,{top:n,left:i},t,r,a),c=null!==(u=t.canvasNode)&&void 0!==u?u:l.getShape();return t.addShapeInstance(l),t.addCanvasNode(c),{object:c,top:n,left:i,width:c.getScaledWidth(),height:c.getScaledHeight()}}(e,i,0,0,t,n,a),o=r.object,u=r.width,l=r.height;s.set(i,{width:u,height:l}),c.push(o)})),function e(t){var n=s.get(t).width,i=0;if(t.parent&&1===t.parent.children.length&&u.has(t.parent)){var r=u.get(t.parent);n<r&&(n=r)}return u.set(t,n),t.children.length>0&&(i=(t.children.length-1)*Wk+t.children.reduce((function(t,n){return t+e(n)}),0),l.set(t,i)),n=Math.max(n,i),u.set(t,n),n}(i.root),function e(t,n,i){var r,o=i,a=i,c=(0,Tr.Z)(t);try{for(c.s();!(r=c.n()).done;){var d=r.value,h=s.get(d),f=h.width,p=h.height,v=u.get(d),g=n,m=o+Math.floor(v/2)-Math.floor(f/2);if(d.canvasNode.set({top:g,left:m}),d.canvasNode.setCoords(),o=o+v+Wk,d.children.length){var _=0,y=l.get(d);y<v&&(_=Math.floor((v-y)/2));var b=n+p+Uk(d.children.length),w=a+_;e(d.children,b,w)}a=o}}catch(C){c.e(C)}finally{c.f()}}([i.root],r,o),c}(e.canvas,i,r,e,t,n,o),s=0,u=0;return a.forEach((function(e){s=Math.max(s,(e.left||0)+e.getScaledWidth()),u=Math.max(u,(e.top||0)+e.getScaledHeight())})),{nodes:a,bottom:u,right:s}}function qk(e){var t=e.canvasNode;if(t){var n=t.left||0,i=(t.top||0)+t.getScaledHeight();return{x:n+t.getScaledWidth()/2,y:i}}return{x:0,y:0}}function Gk(e){var t=e.canvasNode;if(t){var n=t.left||0,i=t.top||0;return{x:n+t.getScaledWidth()/2,y:i}}return{x:0,y:0}}var $k=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.canvas=sk(t,n),this.parser=new Pk(r,n),this.opts=n,this.shapes=o,this.em=new zk,this.trees=[],this.nodes=[],this.links=[],this.listenNodeResize()}return(0,r.Z)(e,[{key:"render",value:function(){var e=this;requestAnimationFrame((function(){e.trees=e.parser.parseData(),e.renderIntoCanvas(),e.opts.initialZoomFitsCanvas&&e.zoomObjectsToFitCanvas()}))}},{key:"destroy",value:function(){var e=document.getElementById(ak);e&&(this.canvas.dispose(),e.remove())}},{key:"getEventEmmiter",value:function(){return this.em}},{key:"getGraphNode",value:function(e){return this.parser.nodes.get(e)}},{key:"getOpts",value:function(){return this.opts}},{key:"getColors",value:function(){return this.opts.colors}},{key:"getCanvas",value:function(){return this.canvas}},{key:"renderIntoCanvas",value:function(){var e,t,n=this;this.nodes.forEach((function(e){n.canvas.remove(e)})),this.nodes=[],this.links.forEach((function(e){n.canvas.remove(e)})),this.links=[];var i=this.canvas.getHeight()||0,r=this.canvas.getWidth()||0,o=i,a=r,s=this.opts.initialTop,u=this.opts.initialLeft;this.trees.forEach((function(e){var t,i;e.setCanvas(n.canvas);var r=Kk(e,s,u,n.opts,n.shapes,n.em),l=r.nodes,c=r.bottom,d=r.right;u=d+15,o=Math.max(c,o),a=Math.max(d,a),(t=n.nodes).push.apply(t,(0,Lt.Z)(l)),(i=n.canvas).add.apply(i,(0,Lt.Z)(l))}));var l=function(e,t){var n=t.colors,i=[];return e.data.links.reduce((function(t,r){var o=r.from,a=e.nodes.get(o);if(a&&1===a.children.length&&!i.includes(o)){var s=qk(a),u=s.x,l=s.y,c=new rk.fabric.Path("M ".concat(u," ").concat(l,"\n V ").concat(l+Vk),{fill:"",stroke:n.stroke,strokeWidth:1});t.push(new rk.fabric.Group([c],Object.assign({},ck))),i.push(o)}if(a&&a.children.length>1&&!i.includes(o)){var d=qk(a),h=d.x,f=d.y,p=Yk/2,v=[new rk.fabric.Path("M ".concat(h," ").concat(f,"\n V ").concat(f+p),{fill:"",stroke:n.stroke,strokeWidth:1})],g=Gk(a.children[0]),m=g.x,_=g.y,y=Gk(a.children[a.children.length-1]),b=y.x,w=y.y,C=new rk.fabric.Path("M ".concat(m," ").concat(_,"\n V ").concat(_-p+6,"\n Q ").concat(m," ").concat(_-p," ").concat(m+6," ").concat(_-p,"\n H ").concat(b-6,"\n Q ").concat(b," ").concat(w-p," ").concat(b," ").concat(w+6-p,"\n V ").concat(w,"\n "),{fill:"",stroke:n.stroke,strokeWidth:1});v.push(C),a.children.forEach((function(e,t){if(0!==t&&t!==a.children.length-1){var i=Gk(e),r=i.x,o=i.y,s=new rk.fabric.Path("M ".concat(r," ").concat(o,"\n V ").concat(o-p,"\n "),{fill:"",stroke:n.stroke,strokeWidth:1});v.push(s)}})),t.push(new rk.fabric.Group(v,Object.assign({},ck))),i.push(o)}return t}),[])}(this.parser,this.opts);(e=this.links).push.apply(e,(0,Lt.Z)(l)),(t=this.canvas).add.apply(t,(0,Lt.Z)(l)),this.bringNodesToFront()}},{key:"bringNodesToFront",value:function(){var e,t=null===(e=this.parser)||void 0===e?void 0:e.nodes;t&&t.forEach((function(e){e.canvasNode&&e.canvasNode.bringToFront()}))}},{key:"listenNodeResize",value:function(){var e=this;this.em.addEventListener("node:resize",(function(){e.renderIntoCanvas()}))}},{key:"zoomObjectsToFitCanvas",value:function(){var e=0,t=0;this.canvas.getObjects().forEach((function(n){var i=n.getBoundingRect(),r=i.top,o=i.left,a=i.height,s=o+i.width,u=r+a;s>e&&(e=s),u>t&&(t=u)})),e+=this.opts.initialLeft,t+=this.opts.initialTop;var n=this.canvas.getWidth()/e,i=this.canvas.getHeight()/t,r=Math.min(n,i);if(r<1){this.canvas.setZoom(r);var o=this.opts.initialTop*r,a=this.opts.initialLeft*r,s=this.opts.initialTop-o,u=this.opts.initialLeft-a;this.canvas.relativePan(new rk.fabric.Point(u,s))}}}]),e}();function Qk(){var e={success:"--yc-color-text-positive",error:"--yc-color-scarlet",warning:"--yc-color-amber",errorBackground:"--yc-color-base-danger",warningBackground:"--yc-color-base-warning",mute:"--yc-color-line-generic",stroke:"--yc-color-text-hint",fill:"--yc-color-base-generic-ultralight",nodeFill:"--yc-color-base-float",nodeShadow:"--yc-color-sfx-shadow",titleColor:"--yc-color-text-primary",textColor:"--yc-color-text-complementary",buttonBorderColor:"--yc-color-line-generic",groupBorderColor:"--yc-color-celestial-thunder",groupFill:"--yc-color-celestial",titleHoverColor:"--yc-color-text-link-hover",nodeHover:"--yc-color-base-float-hover",specialHover:"--yc-color-line-selection-active"},t=getComputedStyle(document.body),n=Object.keys(e).reduce((function(n,i){var r=t.getPropertyValue(e[i]).replace(/ /g,"");return r&&(n[i]=r),n}),{});return Object.assign(Object.assign(Object.assign({},lk),n),{getCommonColor:function(e){return t.getPropertyValue("--yc-color-".concat(e)).replace(/ /g,"")}})}var Xk={linkType:nk.Arrow};function Jk(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Xk,t=e.colors||{};return Object.assign(Object.assign({initialTop:10,initialLeft:10},e),{colors:Object.assign(Object.assign(Object.assign({},lk),Qk()),t)})}function eS(e,t,n){var i=Jk(n);return new jk(e,i,t)}function tS(e,t,n,i){var r=Jk(n);return new $k(e,r,t,i)}var nS="paranoidRoot",iS=(e.Component,"paranoidRoot"),rS=(e.Component,{width:280,expandedWidth:360,borderRadius:4,titleFontSize:hk,titleLineHeight:fk,textFontSize:hk,textLineHeight:fk,padding:12,timeMaxWidth:25,percentageMaxWidth:25,textOffset:8,tagLeftOffset:4,tagTopOffset:5,statsOffset:24});var oS=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.top=0,this.left=0,this.canvas=t,this.stats=n,this.coords=r,this.colors=o,this.textProps={fontSize:rS.textFontSize,lineHeight:rS.textLineHeight,fontFamily:dk,fill:null===o||void 0===o?void 0:o.titleColor},this.selectedGroup=n[0].group;var a=this.createTitles(),s=a.map((function(e){return e.getScaledHeight()})),u=Math.max.apply(null,s);this.lineTop=this.top+u+rS.textOffset;var l=this.createLine();this.content=this.createContent(a),this.group=this.createGroup(a,l,this.content),this.initListeners()}return(0,r.Z)(e,[{key:"getCanvasObject",value:function(){return this.group}},{key:"createTitles",value:function(){var e=this,t=this.left;return this.stats.map((function(e){return e.group})).map((function(n){var i,r,o=new rk.fabric.Text(n,Object.assign(Object.assign({left:t,top:e.top},e.textProps),{fill:n===e.selectedGroup?null===(i=e.colors)||void 0===i?void 0:i.titleColor:null===(r=e.colors)||void 0===r?void 0:r.textColor}));return t+=o.getScaledWidth()+rS.statsOffset,o}))}},{key:"createLine",value:function(){return new rk.fabric.Path("M ".concat(this.left," ").concat(this.lineTop,"\n H ").concat(rS.expandedWidth-2*rS.padding),{fill:"",stroke:this.colors.stroke,strokeWidth:1})}},{key:"createContent",value:function(e){var t=this;return this.stats.map((function(n,i){var r=n.group,o=n.stats,a=t.getContentItems(o,t.lineTop),s=e[i],u=s.left||0,l=u+s.getScaledWidth();return{group:r,items:new rk.fabric.Group(a,{opacity:t.selectedGroup===r?1:0}),title:s,hoverLine:t.createHoverLine(u,l,r)}}))}},{key:"getContentItems",value:function(e,t){var n=this,i=t+2*rS.textOffset,r=[],o=function(e){e.forEach((function(e){var t,o=e.name,a=e.value,s=new rk.fabric.Text(o,Object.assign({left:n.left,top:i},n.textProps)),u=rS.expandedWidth/2-rS.padding,l=rS.expandedWidth-2*rS.padding,c=new rk.fabric.Textbox(String(a),Object.assign(Object.assign({left:u,top:i},n.textProps),{fill:null===(t=n.colors)||void 0===t?void 0:t.textColor,splitByGrapheme:!0,width:l-u}));r.push(s,c),i+=Math.max(s.getScaledHeight(),c.getScaledHeight())+rS.textOffset}))};return!function(e){var t;return Boolean(null===(t=e[0])||void 0===t?void 0:t.items)}(e)?o(e):e.forEach((function(t,a){var s=t.name,u=t.items,l=new rk.fabric.Text(s,Object.assign(Object.assign({left:n.left,top:i},n.textProps),{fontWeight:"bold"}));if(r.push(l),i+=l.getScaledHeight()+rS.textOffset,o(u),a!==e.length-1){var c=new rk.fabric.Path("M ".concat(n.left," ").concat(i,"\n H ").concat(rS.expandedWidth-2*rS.padding),{fill:"",stroke:n.colors.stroke,strokeWidth:1,strokeDashArray:[6,4]});r.push(c),i+=c.getScaledHeight()+rS.textOffset}})),r}},{key:"createGroup",value:function(e,t,n){var i=n.map((function(e){return e.items})),r=n.map((function(e){return e.hoverLine}));return new rk.fabric.Group([].concat((0,Lt.Z)(e),[t],(0,Lt.Z)(i),(0,Lt.Z)(r)),Object.assign({left:this.coords.left,top:this.coords.top},ck))}},{key:"createHoverLine",value:function(e,t,n){return new rk.fabric.Path("M ".concat(e," ").concat(this.lineTop-1,"\n H ").concat(t),{fill:"",stroke:this.colors.specialHover,strokeWidth:2,opacity:this.selectedGroup===n?1:0})}},{key:"initListeners",value:function(){var e=this;this.content.forEach((function(t){var n=t.group,i=t.title,r=t.items,o=t.hoverLine;i.on("mousedown",(function(){var t=e.selectedGroup,a=e.content.find((function(e){return e.group===t}));a&&(a.title.set({fill:e.colors.textColor}),a.items.set({opacity:0}),a.hoverLine.set({opacity:0}),i.set({fill:e.colors.titleColor}),r.set({opacity:1}),o.set({opacity:1}),e.selectedGroup=n,e.canvas.requestRenderAll())}))}))}}]),e}();function aS(e,t,n,i,r){return new oS(e,t,{top:n,left:i},r).getCanvasObject()}function sS(e,t,n){return new rk.fabric.Textbox(e?"#".concat(e):"",{fontSize:12,lineHeight:14,textAlign:"right",fontFamily:dk,fill:n.getCommonColor("text-secondary"),hoverCursor:t?"pointer":"default"})}var uS={width:112,expandedWidth:360,borderRadius:6,titleFontSize:hk,titleLineHeight:fk,textFontSize:hk,textLineHeight:fk,padding:16,textOffset:8},lS={scaleX:16/512,scaleY:16/512,originY:"center"};function cS(e,t,n){var i,r=new rk.fabric.Text(e,{fontSize:uS.textFontSize,lineHeight:uS.textFontSize,fontFamily:dk,fill:n.getCommonColor("text-misc"),originY:"center"}),o=[r];switch(e){case"Merge":i=new rk.fabric.Path("M232.5 5.171C247.4-1.718 264.6-1.718 279.5 5.171L498.1 106.2C506.6 110.1 512 118.6 512 127.1C512 137.3 506.6 145.8 498.1 149.8L279.5 250.8C264.6 257.7 247.4 257.7 232.5 250.8L13.93 149.8C5.438 145.8 0 137.3 0 127.1C0 118.6 5.437 110.1 13.93 106.2L232.5 5.171zM498.1 234.2C506.6 238.1 512 246.6 512 255.1C512 265.3 506.6 273.8 498.1 277.8L279.5 378.8C264.6 385.7 247.4 385.7 232.5 378.8L13.93 277.8C5.438 273.8 0 265.3 0 255.1C0 246.6 5.437 238.1 13.93 234.2L67.13 209.6L219.1 279.8C242.5 290.7 269.5 290.7 292.9 279.8L444.9 209.6L498.1 234.2zM292.9 407.8L444.9 337.6L498.1 362.2C506.6 366.1 512 374.6 512 383.1C512 393.3 506.6 401.8 498.1 405.8L279.5 506.8C264.6 513.7 247.4 513.7 232.5 506.8L13.93 405.8C5.438 401.8 0 393.3 0 383.1C0 374.6 5.437 366.1 13.93 362.2L67.13 337.6L219.1 407.8C242.5 418.7 269.5 418.7 292.9 407.8V407.8z",lS);break;case"UnionAll":i=new rk.fabric.Path("M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z",lS);break;case"HashShuffle":i=new rk.fabric.Path("M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z",lS);break;case"Map":i=new rk.fabric.Path("M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z",lS);break;case"Broadcast":i=new rk.fabric.Path("M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z",lS)}return i&&(i.set({fill:n.getCommonColor("text-misc"),top:0,left:0,originY:"center"}),r.set({left:22}),o.push(i)),new rk.fabric.Group(o,Object.assign(Object.assign({},ck),{hoverCursor:t?"pointer":"default"}))}var dS=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.expanded=!1,this.expandedNodeHeight=0,this.nodeHeight=0,this.canvas=t,this.coords=n,this.treeNode=r,this.opts=o,this.em=a,this.data=an().get(r,["data","data"]),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup(),this.initListeners()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.getCommonColor("base-misc")}},{key:"getHoverFillColor",value:function(){return this.opts.colors.getCommonColor("base-misc-hover")}},{key:"getShadow",value:function(){}},{key:"getHoverShadow",value:function(){}},{key:"toggleHighlight",value:function(e){this.isExpandable()&&!this.expanded&&this.body.set({fill:e?this.getHoverFillColor():this.getFillColor()}),this.canvas.requestRenderAll()}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+uS.padding,new rk.fabric.Rect({width:uS.width,height:this.nodeHeight,fill:this.getFillColor(),shadow:this.getShadow(),stroke:e.getCommonColor("line-misc"),rx:uS.borderRadius,ry:uS.borderRadius,hoverCursor:this.isExpandable()?"pointer":"default"})}},{key:"prepareShapeObjects",value:function(){return[sS(this.data.id,this.isExpandable(),this.opts.colors),cS(this.data.name||"",this.isExpandable(),this.opts.colors)]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,dt.Z)(this.objects,2),t=e[0],n=e[1],i=uS.padding,r=this.expanded?uS.expandedWidth:uS.width,o=n.getScaledWidth();t.set({left:0,top:4,width:r-4}),n.set({left:r/2-o/2,top:i})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new rk.fabric.Group([this.body].concat((0,Lt.Z)(this.objects)),Object.assign({top:t,left:n},ck))}},{key:"initListeners",value:function(){this.initHover(),this.isExpandable()&&this.initExpand()}},{key:"initHover",value:function(){var e=this;this.group.on("mouseover",(function(){e.em.dispatch("node:mouseover",e.treeNode),e.toggleHighlight(!0)})),this.group.on("mouseout",(function(){e.em.dispatch("node:mouseout",e.treeNode),e.toggleHighlight(!1)}))}},{key:"initExpand",value:function(){var e=this;this.group.on("mousedown",(function(t){var n;e.stats&&(null===(n=t.subTargets)||void 0===n?void 0:n.includes(e.stats))||(e.expanded=!e.expanded,e.updateDimensions(),e.em.dispatch("node:resize",e.treeNode))}))}},{key:"updateDimensions",value:function(){var e,t,n=this.opts.colors,i=(0,dt.Z)(this.objects,2),r=i[0],o=i[1],a=o.getScaledWidth();this.expanded?(this.stats=aS(this.canvas,this.data.stats,(this.group.top||0)+this.body.getScaledHeight()+uS.padding,(this.group.left||0)+uS.padding,n),this.expandedNodeHeight=this.nodeHeight+this.stats.getScaledHeight()+2*uS.padding,e=uS.expandedWidth,t=this.expandedNodeHeight,this.group.addWithUpdate(this.stats)):(e=uS.width,t=this.nodeHeight,this.group.removeWithUpdate(this.stats),this.stats=void 0);var s=function(e,t){var n=[];return t.forEachObject((function(i){n.push(i),t.removeWithUpdate(i),e.add(i)})),function(){n.forEach((function(n){e.remove(n),t.addWithUpdate(n)}))}}(this.canvas,this.group);this.body.set({width:e,height:t,fill:this.getFillColor(),shadow:this.getShadow()}),r.set({width:e-4}),o.set({left:(this.body.left||0)+(this.body.width||0)/2-a/2}),s()}},{key:"isExpandable",value:function(){return Boolean(this.data.stats&&this.data.stats.length>0)}}]),e}(),hS={width:190,bevelSize:10,titleFontSize:hk,titleLineHeight:fk,padding:12};var fS=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.nodeHeight=0,this.coords=n,this.opts=o,this.data=an().get(r,["data","data"]),this.shadow=new rk.fabric.Shadow({color:o.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new rk.fabric.Shadow({color:o.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.nodeFill}},{key:"getHoverFillColor",value:function(){return this.opts.colors.nodeHover}},{key:"getShadow",value:function(){return this.shadow}},{key:"getHoverShadow",value:function(){return this.hoverShadow}},{key:"toggleHighlight",value:function(){}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+hS.padding,new rk.fabric.Polygon([{x:hS.bevelSize,y:0},{x:hS.width-hS.bevelSize,y:0},{x:hS.width,y:hS.bevelSize},{x:hS.width,y:this.nodeHeight-hS.bevelSize},{x:hS.width-hS.bevelSize,y:this.nodeHeight},{x:hS.bevelSize,y:this.nodeHeight},{x:0,y:this.nodeHeight-hS.bevelSize},{x:0,y:hS.bevelSize}],{fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,shadow:this.getShadow(),hoverCursor:"default"})}},{key:"prepareShapeObjects",value:function(){var e=function(e,t){return new rk.fabric.Text(e.join("\n"),{fontSize:hS.titleFontSize,lineHeight:hS.titleLineHeight,left:0,top:26,fontFamily:dk,fontStyle:"italic",fill:t.getCommonColor("text-primary")})}([this.data.name||""],this.opts.colors);return[e]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,dt.Z)(this.objects,1)[0],t=hS.padding,n=e.getScaledWidth();e.set({left:hS.width/2-n/2,top:t})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new rk.fabric.Group([this.body].concat((0,Lt.Z)(this.objects)),Object.assign({top:t,left:n},ck))}}]),e}(),pS=40,vS=40,gS=20,mS=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.coords=n,this.opts=o,this.shadow=new rk.fabric.Shadow({color:o.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new rk.fabric.Shadow({color:o.colors.nodeShadow,offsetY:3,blur:8}),this.body=this.prepareNodeBody(),this.group=this.createGroup()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.nodeFill}},{key:"getHoverFillColor",value:function(){return this.opts.colors.nodeHover}},{key:"getShadow",value:function(){return this.shadow}},{key:"getHoverShadow",value:function(){return this.hoverShadow}},{key:"toggleHighlight",value:function(){}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors;return new rk.fabric.Rect({width:pS,height:vS,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,rx:gS,ry:gS,shadow:this.getShadow(),hoverCursor:"default"})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new rk.fabric.Group([this.body],Object.assign({top:t,left:n},ck))}}]),e}(),_S={width:112,borderRadius:6,titleFontSize:hk,titleLineHeight:fk,textFontSize:hk,textLineHeight:fk,padding:12,textOffset:8};var yS=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.nodeHeight=0,this.coords=n,this.opts=o,this.data=an().get(r,["data","data"]),this.shadow=new rk.fabric.Shadow({color:o.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new rk.fabric.Shadow({color:o.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.nodeFill}},{key:"getHoverFillColor",value:function(){return this.opts.colors.nodeHover}},{key:"getShadow",value:function(){return this.shadow}},{key:"getHoverShadow",value:function(){return this.hoverShadow}},{key:"toggleHighlight",value:function(){}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+_S.padding,new rk.fabric.Rect({width:_S.width,height:this.nodeHeight,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,shadow:this.getShadow(),hoverCursor:"default"})}},{key:"prepareShapeObjects",value:function(){var e=function(e,t){return new rk.fabric.Text(e.join("\n"),{fontSize:_S.textFontSize,lineHeight:_S.textLineHeight,left:0,top:26,fontFamily:dk,fill:t.getCommonColor("text-primary")})}([this.data.name||""],this.opts.colors);return[e]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,dt.Z)(this.objects,1)[0],t=_S.padding,n=e.getScaledWidth();e.set({left:_S.width/2-n/2,top:t})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new rk.fabric.Group([this.body].concat((0,Lt.Z)(this.objects)),Object.assign({top:t,left:n},ck))}}]),e}(),bS={width:248,expandedWidth:360,borderRadius:6,titleFontSize:hk,titleLineHeight:fk,textFontSize:hk,textLineHeight:fk,padding:12,textOffset:8};var wS=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this.expanded=!1,this.expandedNodeHeight=0,this.nodeHeight=0,this.canvas=t,this.coords=n,this.treeNode=r,this.opts=o,this.em=a,this.data=an().get(r,["data","data"]),this.shadow=new rk.fabric.Shadow({color:o.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new rk.fabric.Shadow({color:o.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup(),this.initListeners()}return(0,r.Z)(e,[{key:"getShape",value:function(){return this.group}},{key:"getFillColor",value:function(){return this.opts.colors.nodeFill}},{key:"getHoverFillColor",value:function(){return this.opts.colors.nodeHover}},{key:"getShadow",value:function(){return this.shadow}},{key:"getHoverShadow",value:function(){return this.hoverShadow}},{key:"toggleHighlight",value:function(e){this.isExpandable()&&!this.expanded&&this.body.set({fill:e?this.getHoverFillColor():this.getFillColor(),shadow:e?this.getHoverShadow():this.getShadow()}),this.canvas.requestRenderAll()}},{key:"prepareNodeBody",value:function(){var e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+bS.padding,new rk.fabric.Rect({width:bS.width,height:this.nodeHeight,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,rx:bS.borderRadius,ry:bS.borderRadius,shadow:this.getShadow(),hoverCursor:this.isExpandable()?"pointer":"default"})}},{key:"prepareShapeObjects",value:function(){var e=sS(this.data.id,this.isExpandable(),this.opts.colors),t=function(e,t,n){return new rk.fabric.Text(e.join("\n"),{fontSize:bS.textFontSize,lineHeight:bS.textLineHeight,fontFamily:dk,fill:n.getCommonColor("text-primary"),hoverCursor:t?"pointer":"default"})}(this.data.operators||[this.data.name||""],this.isExpandable(),this.opts.colors),n=function(e,t){if(0===e.length)return new rk.fabric.Group([],Object.assign({top:0,left:0},ck));var n=new rk.fabric.Text("Tables:",{fontSize:bS.textFontSize,lineHeight:bS.textLineHeight,fontFamily:dk,fill:t.getCommonColor("text-secondary"),hoverCursor:"pointer"}),i=n.getScaledWidth()+2,r=bS.width-2*bS.padding-i,o=new rk.fabric.Textbox(e.join("\n"),{left:i,width:r,fontSize:bS.textFontSize,lineHeight:bS.textLineHeight,fontFamily:dk,fill:t.getCommonColor("text-primary"),splitByGrapheme:!0,hoverCursor:"pointer"});return new rk.fabric.Group([n,o],Object.assign({top:0,left:0},ck))}(this.data.tables||[],this.opts.colors),i=function(e,t){if(!e)return new rk.fabric.Group([],Object.assign({top:0,left:0},ck));var n=new rk.fabric.Text("CTE:",{fontSize:bS.textFontSize,lineHeight:bS.textLineHeight,fontFamily:dk,fill:t.getCommonColor("text-secondary"),hoverCursor:"pointer"}),i=n.getScaledWidth()+2,r=bS.width-2*bS.padding-i,o=new rk.fabric.Textbox(e,{left:i,width:r,fontSize:bS.textFontSize,lineHeight:bS.textLineHeight,fontFamily:dk,fill:t.getCommonColor("text-primary"),splitByGrapheme:!0,hoverCursor:"pointer"});return new rk.fabric.Group([n,o],Object.assign({top:0,left:0},ck))}(this.data.cte||"",this.opts.colors);return[e,t,n,i]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,dt.Z)(this.objects,4),t=e[0],n=e[1],i=e[2],r=e[3],o=bS.padding,a=bS.padding;t.set({left:0,top:4,width:(this.expanded?bS.expandedWidth:bS.width)-4}),n.set({left:a,top:o}),o+=n.getScaledHeight(),i.set({left:a,top:o+(0===i.size()?0:bS.textOffset)}),o+=i.getScaledHeight(),r.set({left:a,top:o+(0===r.size()?0:bS.textOffset)})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new rk.fabric.Group([this.body].concat((0,Lt.Z)(this.objects)),Object.assign({top:t,left:n},ck))}},{key:"initListeners",value:function(){this.initHover(),this.isExpandable()&&this.initExpand()}},{key:"initHover",value:function(){var e=this;this.group.on("mouseover",(function(){e.em.dispatch("node:mouseover",e.treeNode),e.toggleHighlight(!0)})),this.group.on("mouseout",(function(){e.em.dispatch("node:mouseout",e.treeNode),e.toggleHighlight(!1)}))}},{key:"initExpand",value:function(){var e=this;this.group.on("mousedown",(function(t){var n;e.stats&&(null===(n=t.subTargets)||void 0===n?void 0:n.includes(e.stats))||(e.updateDimensions(),e.expanded=!e.expanded,e.em.dispatch("node:resize",e.treeNode))}))}},{key:"updateDimensions",value:function(){var e=this.opts.colors;if(this.expanded){var t=bS.width,n=this.nodeHeight;this.body.set({width:t,height:n,fill:this.getFillColor(),shadow:this.getShadow()}).setCoords(),this.objects[0].set({width:t-4}).setCoords(),this.group.removeWithUpdate(this.stats),this.stats=void 0}else{this.stats=aS(this.canvas,this.data.stats,(this.group.top||0)+this.body.getScaledHeight()+bS.padding,(this.group.left||0)+bS.padding,e),this.expandedNodeHeight=this.nodeHeight+this.stats.getScaledHeight()+2*bS.padding;var i=bS.expandedWidth,r=this.expandedNodeHeight;this.body.set({width:i,height:r,fill:this.getFillColor(),shadow:this.getShadow()}).setCoords(),this.objects[0].set({width:i-4}).setCoords(),this.group.addWithUpdate(this.stats)}}},{key:"isExpandable",value:function(){return Boolean(this.data.stats&&this.data.stats.length>0)}}]),e}();function CS(e,t,n,i,r){return function(e){var t=an().get(e,["data","data"]);return"connection"===(null===t||void 0===t?void 0:t.type)}(n)?new dS(e,t,n,i,r):function(e){var t=an().get(e,["data","data"]);return"result"===(null===t||void 0===t?void 0:t.type)}(n)?new yS(e,t,n,i,r):function(e){var t=an().get(e,["data","data"]);return"query"===(null===t||void 0===t?void 0:t.type)}(n)?new mS(e,t,n,i,r):function(e){var t=an().get(e,["data","data"]);return"materialize"===(null===t||void 0===t?void 0:t.type)}(n)?new fS(e,t,n,i,r):new wS(e,t,n,i,r)}var kS,SS,xS,LS,ES,NS=n(14717),DS=n(81864);!function(e){e[e.None=0]="None",e[e.CommonJS=1]="CommonJS",e[e.AMD=2]="AMD",e[e.UMD=3]="UMD",e[e.System=4]="System",e[e.ES2015=5]="ES2015",e[e.ESNext=99]="ESNext"}(kS||(kS={})),function(e){e[e.None=0]="None",e[e.Preserve=1]="Preserve",e[e.React=2]="React",e[e.ReactNative=3]="ReactNative",e[e.ReactJSX=4]="ReactJSX",e[e.ReactJSXDev=5]="ReactJSXDev"}(SS||(SS={})),function(e){e[e.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",e[e.LineFeed=1]="LineFeed"}(xS||(xS={})),function(e){e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest"}(LS||(LS={})),function(e){e[e.Classic=1]="Classic",e[e.NodeJs=2]="NodeJs"}(ES||(ES={}));var MS=function(){function e(e,t,n){this._onDidChange=new DS.Q5,this._onDidExtraLibsChange=new DS.Q5,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(n),this._onDidExtraLibsChangeTimeout=-1}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDidExtraLibsChange",{get:function(){return this._onDidExtraLibsChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"workerOptions",{get:function(){return this._workerOptions},enumerable:!1,configurable:!0}),e.prototype.getExtraLibs=function(){return this._extraLibs},e.prototype.addExtraLib=function(e,t){var n,i=this;if(n="undefined"===typeof t?"ts:extralib-"+Math.random().toString(36).substring(2,15):t,this._extraLibs[n]&&this._extraLibs[n].content===e)return{dispose:function(){}};var r=1;return this._removedExtraLibs[n]&&(r=this._removedExtraLibs[n]+1),this._extraLibs[n]&&(r=this._extraLibs[n].version+1),this._extraLibs[n]={content:e,version:r},this._fireOnDidExtraLibsChangeSoon(),{dispose:function(){var e=i._extraLibs[n];e&&e.version===r&&(delete i._extraLibs[n],i._removedExtraLibs[n]=r,i._fireOnDidExtraLibsChangeSoon())}}},e.prototype.setExtraLibs=function(e){for(var t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(var n=0,i=e;n<i.length;n++){var r=i[n],o=(t=r.filePath||"ts:extralib-"+Math.random().toString(36).substring(2,15),r.content),a=1;this._removedExtraLibs[t]&&(a=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:o,version:a}}this._fireOnDidExtraLibsChangeSoon()},e.prototype._fireOnDidExtraLibsChangeSoon=function(){var e=this;-1===this._onDidExtraLibsChangeTimeout&&(this._onDidExtraLibsChangeTimeout=setTimeout((function(){e._onDidExtraLibsChangeTimeout=-1,e._onDidExtraLibsChange.fire(void 0)}),0))},e.prototype.getCompilerOptions=function(){return this._compilerOptions},e.prototype.setCompilerOptions=function(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)},e.prototype.getDiagnosticsOptions=function(){return this._diagnosticsOptions},e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)},e.prototype.setWorkerOptions=function(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)},e.prototype.setMaximumWorkerIdleTime=function(e){},e.prototype.setEagerModelSync=function(e){this._eagerModelSync=e},e.prototype.getEagerModelSync=function(){return this._eagerModelSync},e}(),TS=new MS({allowNonTsExtensions:!0,target:LS.Latest},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{}),OS=new MS({allowNonTsExtensions:!0,allowJs:!0,target:LS.Latest},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{});function IS(){return n.e(7548).then(n.bind(n,17548))}DS.Mj.typescript={ModuleKind:kS,JsxEmit:SS,NewLineKind:xS,ScriptTarget:LS,ModuleResolutionKind:ES,typescriptVersion:"4.2.4",typescriptDefaults:TS,javascriptDefaults:OS,getTypeScriptWorker:function(){return IS().then((function(e){return e.getTypeScriptWorker()}))},getJavaScriptWorker:function(){return IS().then((function(e){return e.getJavaScriptWorker()}))}},DS.Mj.onLanguage("typescript",(function(){return IS().then((function(e){return e.setupTypeScript(TS)}))})),DS.Mj.onLanguage("javascript",(function(){return IS().then((function(e){return e.setupJavaScript(OS)}))}));var AS=n(24116),PS=function(){function e(e,t,n){this._onDidChange=new AS.Q5,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(n)}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"modeConfiguration",{get:function(){return this._modeConfiguration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"diagnosticsOptions",{get:function(){return this._diagnosticsOptions},enumerable:!1,configurable:!0}),e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}(),RS={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"}},ZS={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},FS=new PS("css",RS,ZS),jS=new PS("scss",RS,ZS),HS=new PS("less",RS,ZS);function BS(){return n.e(6060).then(n.bind(n,16060))}AS.Mj.css={cssDefaults:FS,lessDefaults:HS,scssDefaults:jS},AS.Mj.onLanguage("less",(function(){BS().then((function(e){return e.setupMode(HS)}))})),AS.Mj.onLanguage("scss",(function(){BS().then((function(e){return e.setupMode(jS)}))})),AS.Mj.onLanguage("css",(function(){BS().then((function(e){return e.setupMode(FS)}))}));var zS=n(3570),WS=function(){function e(e,t,n){this._onDidChange=new zS.Q5,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(n)}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"modeConfiguration",{get:function(){return this._modeConfiguration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"diagnosticsOptions",{get:function(){return this._diagnosticsOptions},enumerable:!1,configurable:!0}),e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}(),VS=new WS("json",{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0});zS.Mj.json={jsonDefaults:VS},zS.Mj.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),zS.Mj.onLanguage("json",(function(){n.e(4952).then(n.bind(n,64952)).then((function(e){return e.setupMode(VS)}))}));var YS=n(38429),US=function(){function e(e,t,n){this._onDidChange=new YS.Q5,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"options",{get:function(){return this._options},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"modeConfiguration",{get:function(){return this._modeConfiguration},enumerable:!1,configurable:!0}),e.prototype.setOptions=function(e){this._options=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}(),KS={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:null,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},qS={format:KS,suggest:{html5:!0}},GS={format:KS,suggest:{html5:!0,razor:!0}};function $S(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===QS,documentFormattingEdits:e===QS,documentRangeFormattingEdits:e===QS}}var QS="html",XS="handlebars",JS="razor",ex=new US(QS,{format:KS,suggest:{html5:!0,angular1:!0,ionic:!0}},$S(QS)),tx=new US(XS,qS,$S(XS)),nx=new US(JS,GS,$S(JS));function ix(){return n.e(254).then(n.bind(n,80254))}YS.Mj.html={htmlDefaults:ex,razorDefaults:nx,handlebarDefaults:tx},YS.Mj.onLanguage(QS,(function(){ix().then((function(e){return e.setupMode(ex)}))})),YS.Mj.onLanguage(XS,(function(){ix().then((function(e){return e.setupMode(tx)}))})),YS.Mj.onLanguage(JS,(function(){ix().then((function(e){return e.setupMode(nx)}))}));var rx=n(37456),ox={},ax={},sx=function(){function e(e){var t=this;this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((function(e,n){t._lazyLoadPromiseResolve=e,t._lazyLoadPromiseReject=n}))}return e.getOrCreate=function(t){return ax[t]||(ax[t]=new e(t)),ax[t]},e.prototype.whenLoaded=function(){return this._lazyLoadPromise},e.prototype.load=function(){var e=this;return this._loadingTriggered||(this._loadingTriggered=!0,ox[this._languageId].loader().then((function(t){return e._lazyLoadPromiseResolve(t)}),(function(t){return e._lazyLoadPromiseReject(t)}))),this._lazyLoadPromise},e}();function ux(e){var t=e.id;ox[t]=e,rx.Mj.register(e);var n=sx.getOrCreate(t);rx.Mj.setMonarchTokensProvider(t,n.whenLoaded().then((function(e){return e.language}))),rx.Mj.onLanguage(t,(function(){n.load().then((function(e){rx.Mj.setLanguageConfiguration(t,e.conf)}))}))}ux({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:function(){return n.e(7953).then(n.bind(n,27953))}}),ux({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:function(){return n.e(1898).then(n.bind(n,21898))}}),ux({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:function(){return n.e(805).then(n.bind(n,50805))}}),ux({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:function(){return n.e(371).then(n.bind(n,20371))}}),ux({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:function(){return n.e(9163).then(n.bind(n,89163))}}),ux({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:function(){return n.e(5784).then(n.bind(n,45784))}}),ux({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:function(){return n.e(3001).then(n.bind(n,23001))}}),ux({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:function(){return n.e(1602).then(n.bind(n,61602))}}),ux({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:function(){return n.e(6559).then(n.bind(n,26559))}}),ux({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:function(){return n.e(6559).then(n.bind(n,26559))}}),ux({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:function(){return n.e(6266).then(n.bind(n,66266))}}),ux({id:"csp",extensions:[],aliases:["CSP","csp"],loader:function(){return n.e(7664).then(n.bind(n,27664))}}),ux({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:function(){return n.e(245).then(n.bind(n,90245))}}),ux({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:function(){return n.e(5517).then(n.bind(n,85517))}}),ux({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:function(){return n.e(3258).then(n.bind(n,43258))}}),ux({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:function(){return n.e(5444).then(n.bind(n,95444))}}),ux({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:function(){return n.e(7168).then(n.bind(n,77168))}}),ux({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:function(){return n.e(7661).then(n.bind(n,77661))}}),ux({id:"go",extensions:[".go"],aliases:["Go"],loader:function(){return n.e(2799).then(n.bind(n,12799))}}),ux({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:function(){return n.e(5748).then(n.bind(n,95748))}}),ux({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:function(){return n.e(8794).then(n.bind(n,58794))}}),ux({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:function(){return n.e(6892).then(n.bind(n,66892))}}),ux({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:function(){return n.e(2406).then(n.bind(n,32406))}}),ux({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:function(){return n.e(3883).then(n.bind(n,33883))}}),ux({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:function(){return n.e(8206).then(n.bind(n,21435))}}),ux({id:"javascript",extensions:[".js",".es6",".jsx",".mjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:function(){return n.e(6135).then(n.bind(n,6135))}}),ux({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:function(){return n.e(3254).then(n.bind(n,93254))}}),ux({id:"kotlin",extensions:[".kt"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:function(){return n.e(2205).then(n.bind(n,62205))}}),ux({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:function(){return n.e(2291).then(n.bind(n,22291))}}),ux({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:function(){return n.e(7478).then(n.bind(n,37478))}}),ux({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:function(){return n.e(4731).then(n.bind(n,84731))}}),ux({id:"liquid",extensions:[".liquid",".liquid.html",".liquid.css"],loader:function(){return n.e(983).then(n.bind(n,80983))}}),ux({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:function(){return n.e(8335).then(n.bind(n,28335))}}),ux({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:function(){return n.e(8322).then(n.bind(n,78322))}}),ux({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:function(){return n.e(4546).then(n.bind(n,34546))}}),ux({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:function(){return n.e(1234).then(n.bind(n,31234))}}),ux({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:function(){return n.e(8590).then(n.bind(n,18590))}}),ux({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:function(){return n.e(5695).then(n.bind(n,25695))}}),ux({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:function(){return n.e(8558).then(n.bind(n,78558))}}),ux({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:function(){return n.e(8005).then(n.bind(n,58005))}}),ux({id:"perl",extensions:[".pl"],aliases:["Perl","pl"],loader:function(){return n.e(2119).then(n.bind(n,72119))}}),ux({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:function(){return n.e(8520).then(n.bind(n,18520))}}),ux({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:function(){return n.e(5215).then(n.bind(n,12010))}}),ux({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:function(){return n.e(5885).then(n.bind(n,65885))}}),ux({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:function(){return n.e(9011).then(n.bind(n,69011))}}),ux({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:function(){return n.e(7768).then(n.bind(n,37768))}}),ux({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:function(){return n.e(1115).then(n.bind(n,1115))}}),ux({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:function(){return n.e(4663).then(n.bind(n,14663))}}),ux({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:function(){return n.e(2081).then(n.bind(n,62081))}}),ux({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:function(){return n.e(3191).then(n.bind(n,13191))}}),ux({id:"redis",extensions:[".redis"],aliases:["redis"],loader:function(){return n.e(2507).then(n.bind(n,2507))}}),ux({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:function(){return n.e(5646).then(n.bind(n,95646))}}),ux({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:function(){return n.e(842).then(n.bind(n,60842))}}),ux({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:function(){return n.e(569).then(n.bind(n,40569))}}),ux({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:function(){return n.e(9292).then(n.bind(n,89292))}}),ux({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:function(){return n.e(939).then(n.bind(n,50325))}}),ux({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:function(){return n.e(9803).then(n.bind(n,79803))}}),ux({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:function(){return n.e(9005).then(n.bind(n,29005))}}),ux({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:function(){return n.e(6708).then(n.bind(n,76708))}}),ux({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:function(){return n.e(1474).then(n.bind(n,51474))}}),ux({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:function(){return n.e(2174).then(n.bind(n,82174))}}),ux({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:function(){return n.e(248).then(n.bind(n,248))}}),ux({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:function(){return n.e(5012).then(n.bind(n,5012))}}),ux({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib"],aliases:["StructuredText","scl","stl"],loader:function(){return n.e(5210).then(n.bind(n,16886))}}),ux({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:function(){return n.e(4712).then(n.bind(n,94712))}}),ux({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:function(){return n.e(1522).then(n.bind(n,81522))}}),ux({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:function(){return n.e(1522).then(n.bind(n,81522))}}),ux({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:function(){return n.e(3451).then(n.bind(n,73451))}}),ux({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:function(){return n.e(2862).then(n.bind(n,12862))}}),ux({id:"typescript",extensions:[".ts",".tsx"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:function(){return n.e(698).then(n.bind(n,90698))}}),ux({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:function(){return n.e(758).then(n.bind(n,30758))}}),ux({id:"xml",extensions:[".xml",".dtd",".ascx",".csproj",".config",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:function(){return n.e(2056).then(n.bind(n,32056))}}),ux({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:function(){return n.e(3771).then(n.bind(n,53771))}});var lx=n(8518),cx=n(95079),dx=(n(20224),n(59180),n(33399)),hx=n(56345),fx=n(21204),px=n(74964),vx=n(38792),gx=n(18948),mx=n(49396),_x=n(10939),yx=n(8729),bx=function(){function e(){var t,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if((0,i.Z)(this,e),this.value=r,"string"!==typeof this.value)throw(0,yx.b1)("value");"boolean"===typeof o?(this.isTrusted=o,this.supportThemeIcons=!1):(this.isTrusted=null!==(t=o.isTrusted)&&void 0!==t?t:void 0,this.supportThemeIcons=null!==(n=o.supportThemeIcons)&&void 0!==n&&n)}return(0,r.Z)(e,[{key:"appendText",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.value+=(t=this.supportThemeIcons?(0,_x.Qo)(e):e,t.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")).replace(/([ \t]+)/g,(function(e,t){return"&nbsp;".repeat(t.length)})).replace(/^>/gm,"\\>").replace(/\n/g,1===n?"\\\n":"\n\n"),this}},{key:"appendMarkdown",value:function(e){return this.value+=e,this}},{key:"appendCodeblock",value:function(e,t){return this.value+="\n```",this.value+=e,this.value+="\n",this.value+=t,this.value+="\n```\n",this}}]),e}();function wx(e){return Cx(e)?!e.value:!Array.isArray(e)||e.every(wx)}function Cx(e){return e instanceof bx||!(!e||"object"!==typeof e)&&("string"===typeof e.value&&("boolean"===typeof e.isTrusted||void 0===e.isTrusted)&&("boolean"===typeof e.supportThemeIcons||void 0===e.supportThemeIcons))}function kx(e,t){return e===t||!(!e||!t)&&(e.value===t.value&&e.isTrusted===t.isTrusted&&e.supportThemeIcons===t.supportThemeIcons)}function Sx(e){return e?e.replace(/\\([\\`*_{}[\]()#+\-.!])/g,"$1"):e}var xx=n(52180),Lx=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Ex=function(e,t){return function(n,i){t(n,i,e)}},Nx=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Dx=new gx.uy("selectionAnchorSet",!1),Mx=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this.editor=t,this.selectionAnchorSetContextKey=Dx.bindTo(n),this.modelChangeListener=t.onDidChangeModel((function(){return r.selectionAnchorSetContextKey.reset()}))}return(0,r.Z)(e,[{key:"setSelectionAnchor",value:function(){if(this.editor.hasModel()){var e=this.editor.getPosition(),t=this.decorationId?[this.decorationId]:[],n=this.editor.deltaDecorations(t,[{range:px.Y.fromPositions(e,e),options:{stickiness:1,hoverMessage:(new bx).appendText((0,hx.N)("selectionAnchor","Selection Anchor")),className:"selection-anchor"}}]);this.decorationId=n[0],this.selectionAnchorSetContextKey.set(!!this.decorationId),(0,xx.Z9)((0,hx.N)("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}},{key:"goToSelectionAnchor",value:function(){if(this.editor.hasModel()&&this.decorationId){var e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}},{key:"selectFromAnchorToCursor",value:function(){if(this.editor.hasModel()&&this.decorationId){var e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){var t=this.editor.getPosition();this.editor.setSelection(px.Y.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}},{key:"cancelSelectionAnchor",value:function(){this.decorationId&&(this.editor.deltaDecorations([this.decorationId],[]),this.decorationId=void 0,this.selectionAnchorSetContextKey.set(!1))}},{key:"dispose",value:function(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();Mx.ID="editor.contrib.selectionAnchorController",Mx=Lx([Ex(1,gx.i6)],Mx);var Tx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.setSelectionAnchor",label:(0,hx.N)("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2080),weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return Nx(this,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Mx.get(t).setSelectionAnchor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(dx.R6),Ox=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.goToSelectionAnchor",label:(0,hx.N)("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:Dx})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return Nx(this,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Mx.get(t).goToSelectionAnchor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(dx.R6),Ix=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.selectFromAnchorToCursor",label:(0,hx.N)("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:Dx,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2089),weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return Nx(this,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Mx.get(t).selectFromAnchorToCursor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(dx.R6),Ax=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.cancelSelectionAnchor",label:(0,hx.N)("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:Dx,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:9,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return Nx(this,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Mx.get(t).cancelSelectionAnchor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(dx.R6);(0,dx._K)(Mx.ID,Mx),(0,dx.Qr)(Tx),(0,dx.Qr)(Ox),(0,dx.Qr)(Ix),(0,dx.Qr)(Ax);var Px=n(27997),Rx=n(81626),Zx=n(67297),Fx=n(67033),jx=n(46502),Hx=n(28893),Bx=n(80449),zx=n(92992),Wx=n(70182),Vx=n(31585),Yx=(0,zx.P6)("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hc:"#A0A0A0"},hx.N("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets.")),Ux=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.jumpToBracket",label:hx.N("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3160,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=Gx.get(t);n&&n.jumpToBracket()}}]),n}(dx.R6),Kx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.selectToBracket",label:hx.N("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,description:{description:"Select to Bracket",args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=Gx.get(t);if(i){var r=!0;n&&!1===n.selectBrackets&&(r=!1),i.selectToBracket(r)}}}]),n}(dx.R6),qx=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.position=t,this.brackets=n,this.options=r})),Gx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._editor=e,r._lastBracketsData=[],r._lastVersionId=0,r._decorations=[],r._updateBracketsSoon=r._register(new Px.pY((function(){return r._updateBrackets()}),50)),r._matchBrackets=r._editor.getOption(60),r._updateBracketsSoon.schedule(),r._register(e.onDidChangeCursorPosition((function(e){"never"!==r._matchBrackets&&r._updateBracketsSoon.schedule()}))),r._register(e.onDidChangeModelContent((function(e){r._updateBracketsSoon.schedule()}))),r._register(e.onDidChangeModel((function(e){r._lastBracketsData=[],r._decorations=[],r._updateBracketsSoon.schedule()}))),r._register(e.onDidChangeModelLanguageConfiguration((function(e){r._lastBracketsData=[],r._updateBracketsSoon.schedule()}))),r._register(e.onDidChangeConfiguration((function(e){e.hasChanged(60)&&(r._matchBrackets=r._editor.getOption(60),r._decorations=r._editor.deltaDecorations(r._decorations,[]),r._lastBracketsData=[],r._lastVersionId=0,r._updateBracketsSoon.schedule())}))),r}return(0,r.Z)(n,[{key:"jumpToBracket",value:function(){if(this._editor.hasModel()){var e=this._editor.getModel(),t=this._editor.getSelections().map((function(t){var n=t.getStartPosition(),i=e.matchBracket(n),r=null;if(i)i[0].containsPosition(n)?r=i[1].getStartPosition():i[1].containsPosition(n)&&(r=i[0].getStartPosition());else{var o=e.findEnclosingBrackets(n);if(o)r=o[0].getStartPosition();else{var a=e.findNextBracket(n);a&&a.range&&(r=a.range.getStartPosition())}}return r?new px.Y(r.lineNumber,r.column,r.lineNumber,r.column):new px.Y(n.lineNumber,n.column,n.lineNumber,n.column)}));this._editor.setSelections(t),this._editor.revealRange(t[0])}}},{key:"selectToBracket",value:function(e){if(this._editor.hasModel()){var t=this._editor.getModel(),n=[];this._editor.getSelections().forEach((function(i){var r=i.getStartPosition(),o=t.matchBracket(r);if(!o&&!(o=t.findEnclosingBrackets(r))){var a=t.findNextBracket(r);a&&a.range&&(o=t.matchBracket(a.range.getStartPosition()))}var s=null,u=null;if(o){o.sort(Fx.e.compareRangesUsingStarts);var l=o,c=(0,dt.Z)(l,2),d=c[0],h=c[1];s=e?d.getStartPosition():d.getEndPosition(),u=e?h.getEndPosition():h.getStartPosition()}s&&u&&n.push(new px.Y(s.lineNumber,s.column,u.lineNumber,u.column))})),n.length>0&&(this._editor.setSelections(n),this._editor.revealRange(n[0]))}}},{key:"_updateBrackets",value:function(){if("never"!==this._matchBrackets){this._recomputeBrackets();var e,t=[],n=0,i=(0,Tr.Z)(this._lastBracketsData);try{for(i.s();!(e=i.n()).done;){var r=e.value,o=r.brackets;o&&(t[n++]={range:o[0],options:r.options},t[n++]={range:o[1],options:r.options})}}catch(a){i.e(a)}finally{i.f()}this._decorations=this._editor.deltaDecorations(this._decorations,t)}}},{key:"_recomputeBrackets",value:function(){if(!this._editor.hasModel())return this._lastBracketsData=[],void(this._lastVersionId=0);var e=this._editor.getSelections();if(e.length>100)return this._lastBracketsData=[],void(this._lastVersionId=0);var t=this._editor.getModel(),i=t.getVersionId(),r=[];this._lastVersionId===i&&(r=this._lastBracketsData);for(var o=[],a=0,s=0,u=e.length;s<u;s++){var l=e[s];l.isEmpty()&&(o[a++]=l.getStartPosition())}o.length>1&&o.sort(Zx.L.compare);for(var c=[],d=0,h=0,f=r.length,p=0,v=o.length;p<v;p++){for(var g=o[p];h<f&&r[h].position.isBefore(g);)h++;if(h<f&&r[h].position.equals(g))c[d++]=r[h];else{var m=t.matchBracket(g),_=n._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;m||"always"!==this._matchBrackets||(m=t.findEnclosingBrackets(g,20),_=n._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),c[d++]=new qx(g,m,_)}}this._lastBracketsData=c,this._lastVersionId=i}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);Gx.ID="editor.contrib.bracketMatchingController",Gx._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Hx.qx.register({stickiness:1,className:"bracket-match",overviewRuler:{color:(0,Wx.EN)(Yx),position:jx.sh.Center}}),Gx._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Hx.qx.register({stickiness:1,className:"bracket-match"}),(0,dx._K)(Gx.ID,Gx),(0,dx.Qr)(Kx),(0,dx.Qr)(Ux),(0,Wx.Ic)((function(e,t){var n=e.getColor(Bx.TC);n&&t.addRule(".monaco-editor .bracket-match { background-color: ".concat(n,"; }"));var i=e.getColor(Bx.Dl);i&&t.addRule(".monaco-editor .bracket-match { border: 1px solid ".concat(i,"; }"))})),Vx.BH.appendMenuItem(Vx.eH.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:hx.N({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});var $x=function(){function e(t,n){(0,i.Z)(this,e),this._selection=t,this._isMovingLeft=n}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){if(this._selection.startLineNumber===this._selection.endLineNumber&&!this._selection.isEmpty()){var n=this._selection.startLineNumber,i=this._selection.startColumn,r=this._selection.endColumn;if((!this._isMovingLeft||1!==i)&&(this._isMovingLeft||r!==e.getLineMaxColumn(n)))if(this._isMovingLeft){var o=new Fx.e(n,i-1,n,i),a=e.getValueInRange(o);t.addEditOperation(o,null),t.addEditOperation(new Fx.e(n,r,n,r),a)}else{var s=new Fx.e(n,r,n,r+1),u=e.getValueInRange(s);t.addEditOperation(s,null),t.addEditOperation(new Fx.e(n,i,n,i),u)}}}},{key:"computeCursorState",value:function(e,t){return this._isMovingLeft?new px.Y(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new px.Y(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}]),e}(),Qx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).left=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n,i=[],r=t.getSelections(),o=(0,Tr.Z)(r);try{for(o.s();!(n=o.n()).done;){var a=n.value;i.push(new $x(a,this.left))}}catch(s){o.e(s)}finally{o.f()}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}}]),n}(dx.R6),Xx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.moveCarretLeftAction",label:hx.N("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:fx.u.writable})}return(0,r.Z)(n)}(Qx),Jx=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.moveCarretRightAction",label:hx.N("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:fx.u.writable})}return(0,r.Z)(n)}(Qx);(0,dx.Qr)(Xx),(0,dx.Qr)(Jx);var eL=n(97033),tL=n(15432),nL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transposeLetters",label:hx.N("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,mac:{primary:306},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n,i=t.getModel(),r=[],o=t.getSelections(),a=(0,Tr.Z)(o);try{for(a.s();!(n=a.n()).done;){var s=n.value;if(s.isEmpty()){var u=s.startLineNumber,l=s.startColumn,c=i.getLineMaxColumn(u);if(1!==u||1!==l&&(2!==l||2!==c)){var d=l===c?s.getPosition():tL.o.rightPosition(i,s.getPosition().lineNumber,s.getPosition().column),h=tL.o.leftPosition(i,d.lineNumber,d.column),f=tL.o.leftPosition(i,h.lineNumber,h.column),p=i.getValueInRange(Fx.e.fromPositions(f,h)),v=i.getValueInRange(Fx.e.fromPositions(h,d)),g=Fx.e.fromPositions(f,d);r.push(new eL.T4(g,v+p))}}}}catch(m){a.e(m)}finally{a.f()}r.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop())}}}]),n}(dx.R6);(0,dx.Qr)(nL);var iL=n(84539),rL=n(30487),oL=n(83106),aL=n(8295),sL=n(38794),uL=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},lL="9_cutcopypaste",cL=rL.tY||document.queryCommandSupported("cut"),dL=rL.tY||document.queryCommandSupported("copy"),hL="undefined"!==typeof navigator.clipboard&&!iL.vU||document.queryCommandSupported("paste");function fL(e){return e.register(),e}var pL=cL?fL(new dx.AJ({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:rL.tY?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:Vx.eH.MenubarEditMenu,group:"2_ccp",title:hx.N({key:"miCut",comment:["&& denotes a mnemonic"]},"Cu&&t"),order:1},{menuId:Vx.eH.EditorContext,group:lL,title:hx.N("actions.clipboard.cutLabel","Cut"),when:fx.u.writable,order:1},{menuId:Vx.eH.CommandPalette,group:"",title:hx.N("actions.clipboard.cutLabel","Cut"),order:1}]})):void 0,vL=dL?fL(new dx.AJ({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:rL.tY?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:Vx.eH.MenubarEditMenu,group:"2_ccp",title:hx.N({key:"miCopy",comment:["&& denotes a mnemonic"]},"&&Copy"),order:2},{menuId:Vx.eH.EditorContext,group:lL,title:hx.N("actions.clipboard.copyLabel","Copy"),order:2},{menuId:Vx.eH.CommandPalette,group:"",title:hx.N("actions.clipboard.copyLabel","Copy"),order:1}]})):void 0;Vx.BH.appendMenuItem(Vx.eH.MenubarEditMenu,{submenu:Vx.eH.MenubarCopy,title:{value:hx.N("copy as","Copy As"),original:"Copy As"},group:"2_ccp",order:3}),Vx.BH.appendMenuItem(Vx.eH.EditorContext,{submenu:Vx.eH.EditorContextCopy,title:{value:hx.N("copy as","Copy As"),original:"Copy As"},group:lL,order:3});var gL=hL?fL(new dx.AJ({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:rL.tY?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:Vx.eH.MenubarEditMenu,group:"2_ccp",title:hx.N({key:"miPaste",comment:["&& denotes a mnemonic"]},"&&Paste"),order:4},{menuId:Vx.eH.EditorContext,group:lL,title:hx.N("actions.clipboard.pasteLabel","Paste"),when:fx.u.writable,order:4},{menuId:Vx.eH.CommandPalette,group:"",title:hx.N("actions.clipboard.pasteLabel","Paste"),order:1}]})):void 0,mL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:hx.N("actions.clipboard.copyWithSyntaxHighlightingLabel","Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){t.hasModel()&&(!t.getOption(30)&&t.getSelection().isEmpty()||(oL.RA.forceCopyWithSyntaxHighlighting=!0,t.focus(),document.execCommand("copy"),oL.RA.forceCopyWithSyntaxHighlighting=!1))}}]),n}(dx.R6);function _L(e,t){e&&(e.addImplementation(1e4,"code-editor",(function(e,n){var i=e.get(aL.$).getFocusedCodeEditor();if(i&&i.hasTextFocus()){var r=i.getOption(30),o=i.getSelection();return o&&o.isEmpty()&&!r||document.execCommand(t),!0}return!1})),e.addImplementation(0,"generic-dom",(function(e,n){return document.execCommand(t),!0})))}_L(pL,"cut"),_L(vL,"copy"),gL&&(gL.addImplementation(1e4,"code-editor",(function(e,t){var n=e.get(aL.$),i=e.get(sL.p),r=n.getFocusedCodeEditor();return!(!r||!r.hasTextFocus())&&(!(!document.execCommand("paste")&&rL.$L)||(uL(void 0,void 0,void 0,ki().mark((function e(){var t,n,o,a,s;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.readText();case 2:""!==(t=e.sent)&&(n=oL.Nl.INSTANCE.get(t),o=!1,a=null,s=null,n&&(o=r.getOption(30)&&!!n.isFromEmptySelection,a="undefined"!==typeof n.multicursorText?n.multicursorText:null,s=n.mode),r.trigger("keyboard","paste",{text:t,pasteOnNewLine:o,multicursorText:a,mode:s}));case 4:case"end":return e.stop()}}),e)}))),!0))})),gL.addImplementation(0,"generic-dom",(function(e,t){return document.execCommand("paste"),!0}))),dL&&(0,dx.Qr)(mL);var yL=n(97326),bL=n(66526),wL=function(){function e(t){(0,i.Z)(this,e),this.executor=t,this._didRun=!1}return(0,r.Z)(e,[{key:"getValue",value:function(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}},{key:"rawValue",get:function(){return this._value}}]),e}(),CL=n(51747),kL=n(49803),SL=n(67775),xL=n(47908),LL=n(99404),EL=n(49076),NL=function(){function e(t){(0,i.Z)(this,e),this.value=t}return(0,r.Z)(e,[{key:"equals",value:function(e){return this.value===e.value}},{key:"contains",value:function(t){return this.equals(t)||""===this.value||t.value.startsWith(this.value+e.sep)}},{key:"intersects",value:function(e){return this.contains(e)||e.contains(this)}},{key:"append",value:function(t){return new e(this.value+e.sep+t)}}]),e}();function DL(e,t){var n=t.kind?new NL(t.kind):void 0;return!!(!e.include||n&&e.include.contains(n))&&(!(e.excludes&&n&&e.excludes.some((function(t){return ML(n,t,e.include)})))&&(!(!e.includeSourceActions&&n&&NL.Source.contains(n))&&!(e.onlyIncludePreferredActions&&!t.isPreferred)))}function ML(e,t,n){return!!t.contains(e)&&(!n||!t.contains(n))}NL.sep=".",NL.None=new NL("@@none@@"),NL.Empty=new NL(""),NL.QuickFix=new NL("quickfix"),NL.Refactor=new NL("refactor"),NL.Source=new NL("source"),NL.SourceOrganizeImports=NL.Source.append("organizeImports"),NL.SourceFixAll=NL.Source.append("fixAll");var TL=function(){function e(t,n,r){(0,i.Z)(this,e),this.kind=t,this.apply=n,this.preferred=r}return(0,r.Z)(e,null,[{key:"fromUser",value:function(t,n){return t&&"object"===typeof t?new e(e.getKindFromUser(t,n.kind),e.getApplyFromUser(t,n.apply),e.getPreferredUser(t)):new e(n.kind,n.apply,!1)}},{key:"getApplyFromUser",value:function(e,t){switch("string"===typeof e.apply?e.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return t}}},{key:"getKindFromUser",value:function(e,t){return"string"===typeof e.kind?new NL(e.kind):t}},{key:"getPreferredUser",value:function(e){return"boolean"===typeof e.preferred&&e.preferred}}]),e}(),OL=n(18085),IL=n(72611),AL=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},PL="editor.action.codeAction",RL="editor.action.refactor",ZL="editor.action.sourceAction",FL="editor.action.organizeImports",jL="editor.action.fixAll",HL=function(){function e(t,n){(0,i.Z)(this,e),this.action=t,this.provider=n}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t;return AL(this,void 0,void 0,ki().mark((function n(){var i;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!(null===(t=this.provider)||void 0===t?void 0:t.resolveCodeAction)||this.action.edit){n.next=11;break}return n.prev=1,n.next=4,this.provider.resolveCodeAction(this.action,e);case 4:i=n.sent,n.next=10;break;case 7:n.prev=7,n.t0=n.catch(1),(0,yx.Cp)(n.t0);case 10:i&&(this.action.edit=i.edit);case 11:return n.abrupt("return",this);case 12:case"end":return n.stop()}}),n,this,[[1,7]])})))}}]),e}(),BL=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).documentation=r,a._register(o),a.allActions=(0,Lt.Z)(e).sort(n.codeActionsComparator),a.validActions=a.allActions.filter((function(e){return!e.action.disabled})),a}return(0,r.Z)(n,[{key:"hasAutoFix",get:function(){return this.validActions.some((function(e){var t=e.action;return!!t.kind&&NL.QuickFix.contains(new NL(t.kind))&&!!t.isPreferred}))}}],[{key:"codeActionsComparator",value:function(e,t){var n=e.action,i=t.action;return n.isPreferred&&!i.isPreferred?-1:!n.isPreferred&&i.isPreferred?1:(0,mx.Of)(n.diagnostics)?(0,mx.Of)(i.diagnostics)?n.diagnostics[0].message.localeCompare(i.diagnostics[0].message):-1:(0,mx.Of)(i.diagnostics)?1:0}}]),n}(Rx.JT),zL={actions:[],documentation:void 0};function WL(e,t,n,i,r){var o,a=this,s=n.filter||{},u={only:null===(o=s.include)||void 0===o?void 0:o.value,trigger:n.type},l=new xL.YQ(e,r),c=function(e,t){return LL.H9.all(e).filter((function(e){return!e.providedCodeActionKinds||e.providedCodeActionKinds.some((function(e){return function(e,t){return!(e.include&&!e.include.intersects(t))&&(!e.excludes||!e.excludes.some((function(n){return ML(t,n,e.include)})))&&!(!e.includeSourceActions&&NL.Source.contains(t))}(t,new NL(e))}))}))}(e,s),d=new Rx.SL,h=c.map((function(n){return AL(a,void 0,void 0,ki().mark((function r(){var o,a,c;return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,i.report(n),r.next=4,n.provideCodeActions(e,t,u,l.token);case 4:if((o=r.sent)&&d.add(o),!l.token.isCancellationRequested){r.next=8;break}return r.abrupt("return",zL);case 8:return a=((null===o||void 0===o?void 0:o.actions)||[]).filter((function(e){return e&&DL(s,e)})),c=VL(n,a,s.include),r.abrupt("return",{actions:a.map((function(e){return new HL(e,n)})),documentation:c});case 13:if(r.prev=13,r.t0=r.catch(0),!(0,yx.VV)(r.t0)){r.next=17;break}throw r.t0;case 17:return(0,yx.Cp)(r.t0),r.abrupt("return",zL);case 19:case"end":return r.stop()}}),r,null,[[0,13]])})))})),f=LL.H9.onDidChange((function(){var t=LL.H9.all(e);(0,mx.fS)(t,c)||l.cancel()}));return Promise.all(h).then((function(e){var t=(0,mx.xH)(e.map((function(e){return e.actions}))),n=(0,mx.kX)(e.map((function(e){return e.documentation})));return new BL(t,n,d)})).finally((function(){f.dispose(),l.dispose()}))}function VL(e,t,n){if(e.documentation){var i=e.documentation.map((function(e){return{kind:new NL(e.kind),command:e.command}}));if(n){var r,o,a=(0,Tr.Z)(i);try{for(a.s();!(o=a.n()).done;){var s=o.value;s.kind.contains(n)&&(r?r.kind.contains(s.kind)&&(r=s):r=s)}}catch(p){a.e(p)}finally{a.f()}if(r)return null===r||void 0===r?void 0:r.command}var u,l=(0,Tr.Z)(t);try{for(l.s();!(u=l.n()).done;){var c=u.value;if(c.kind){var d,h=(0,Tr.Z)(i);try{for(h.s();!(d=h.n()).done;){var f=d.value;if(f.kind.contains(new NL(c.kind)))return f.command}}catch(p){h.e(p)}finally{h.f()}}}}catch(p){l.e(p)}finally{l.f()}}}IL.P.registerCommand("_executeCodeActionProvider",(function(e,t,n,i,r){return AL(this,void 0,void 0,ki().mark((function o(){var a,s,u,l,c,d,h;return ki().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(t instanceof SL.o){o.next=2;break}throw(0,yx.b1)();case 2:if(a=e.get(EL.q).getModel(t)){o.next=5;break}throw(0,yx.b1)();case 5:if(s=px.Y.isISelection(n)?px.Y.liftSelection(n):Fx.e.isIRange(n)?a.validateRange(n):void 0){o.next=8;break}throw(0,yx.b1)();case 8:return u="string"===typeof i?new NL(i):void 0,o.next=11,WL(a,s,{type:1,filter:{includeSourceActions:!0,include:u}},OL.E.None,bL.T.None);case 11:for(l=o.sent,c=[],d=Math.min(l.validActions.length,"number"===typeof r?r:0),h=0;h<d;h++)c.push(l.validActions[h].resolve(bL.T.None));return o.prev=15,o.next=18,Promise.all(c);case 18:return o.abrupt("return",l.validActions.map((function(e){return e.action})));case 19:return o.prev=19,setTimeout((function(){return l.dispose()}),100),o.finish(19);case 22:case"end":return o.stop()}}),o,null,[[15,,19,22]])})))}));var YL=n(11752),UL=n(61120),KL=n(7644),qL=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},GL=function(e,t){return function(n,i){t(n,i,e)}},$L=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._messageWidget=new Rx.XK,this._messageListeners=new Rx.SL,this._editor=t,this._visible=e.MESSAGE_VISIBLE.bindTo(n),this._editorListener=this._editor.onDidAttemptReadOnlyEdit((function(){return r._onDidAttemptReadOnlyEdit()}))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._editorListener.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}},{key:"showMessage",value:function(e,t){var n,i=this;(0,xx.Z9)(e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._messageWidget.value=new XL(this._editor,t,e),this._messageListeners.add(this._editor.onDidBlurEditorText((function(){return i.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeCursorPosition((function(){return i.closeMessage()}))),this._messageListeners.add(this._editor.onDidDispose((function(){return i.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeModel((function(){return i.closeMessage()}))),this._messageListeners.add(new Px._F((function(){return i.closeMessage()}),3e3)),this._messageListeners.add(this._editor.onMouseMove((function(e){e.target.position&&(n?n.containsPosition(e.target.position)||i.closeMessage():n=new Fx.e(t.lineNumber-3,1,e.target.position.lineNumber+3,1))})))}},{key:"closeMessage",value:function(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(XL.fadeOut(this._messageWidget.value))}},{key:"_onDidAttemptReadOnlyEdit",value:function(){this._editor.hasModel()&&this.showMessage(hx.N("editor.readonly","Cannot edit in read-only editor"),this._editor.getPosition())}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();$L.ID="editor.contrib.messageController",$L.MESSAGE_VISIBLE=new gx.uy("messageVisible",!1,hx.N("messageVisible","Whether the editor is currently showing an inline message")),$L=qL([GL(1,gx.i6)],$L);var QL=dx._l.bindToContribution($L.get);(0,dx.fK)(new QL({id:"leaveEditorMessage",precondition:$L.MESSAGE_VISIBLE,handler:function(e){return e.closeMessage()},kbOpts:{weight:130,primary:9}}));var XL=function(){function e(t,n,r){var o=n.lineNumber,a=n.column;(0,i.Z)(this,e),this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=t,this._editor.revealLinesInCenterIfOutsideViewport(o,o,0),this._position={lineNumber:o,column:a-1},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage");var s=document.createElement("div");s.classList.add("anchor","top"),this._domNode.appendChild(s);var u=document.createElement("div");u.classList.add("message"),u.textContent=r,this._domNode.appendChild(u);var l=document.createElement("div");l.classList.add("anchor","below"),this._domNode.appendChild(l),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}return(0,r.Z)(e,[{key:"dispose",value:function(){this._editor.removeContentWidget(this)}},{key:"getId",value:function(){return"messageoverlay"}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return{position:this._position,preference:[1,2]}}},{key:"afterRender",value:function(e){this._domNode.classList.toggle("below",2===e)}}],[{key:"fadeOut",value:function(e){var t,n=function n(){e.dispose(),clearTimeout(t),e.getDomNode().removeEventListener("animationend",n)};return t=setTimeout(n,110),e.getDomNode().addEventListener("animationend",n),e.getDomNode().classList.add("fadeOut"),{dispose:n}}}]),e}();(0,dx._K)($L.ID,$L),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.EP);if(n){var i=e.type===KL.e.HIGH_CONTRAST?2:1;t.addRule(".monaco-editor .monaco-editor-overlaymessage .anchor.below { border-top-color: ".concat(n,"; }")),t.addRule(".monaco-editor .monaco-editor-overlaymessage .anchor.top { border-bottom-color: ".concat(n,"; }")),t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { border: ".concat(i,"px solid ").concat(n,"; }"))}var r=e.getColor(zx._l);r&&t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { background-color: ".concat(r,"; }"));var o=e.getColor(zx.YI);o&&t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { color: ".concat(o,"; }"))}));var JL=n(84596),eE=n(84540),tE=n(29077),nE=n(98989),iE=n(97963),rE=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},oE=function(e,t){return function(n,i){t(n,i,e)}},aE=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},sE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,e.command?e.command.id:e.title,e.title.replace(/\r\n|\r|\n/g," "),void 0,!e.disabled,r)).action=e,o}return(0,r.Z)(n)}(tE.aU);var uE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._editor=e,s._delegate=r,s._contextMenuService=o,s._visible=!1,s._showingActions=s._register(new Rx.XK),s._keybindingResolver=new lE({getKeybindings:function(){return a.getKeybindings()}}),s}return(0,r.Z)(n,[{key:"isVisible",get:function(){return this._visible}},{key:"show",value:function(e,t,n,i){return aE(this,void 0,void 0,ki().mark((function r(){var o,a,s,u,l,c=this;return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if((o=i.includeDisabledActions?t.allActions:t.validActions).length){r.next=4;break}return this._visible=!1,r.abrupt("return");case 4:if(this._editor.getDomNode()){r.next=7;break}throw this._visible=!1,(0,yx.F0)();case 7:this._visible=!0,this._showingActions.value=t,a=this.getMenuActions(e,o,t.documentation),s=Zx.L.isIPosition(n)?this._toCoords(n):n||{x:0,y:0},u=this._keybindingResolver.getResolver(),l=this._editor.getOption(111),this._contextMenuService.showContextMenu({domForShadowRoot:l?this._editor.getDomNode():void 0,getAnchor:function(){return s},getActions:function(){return a},onHide:function(){c._visible=!1,c._editor.focus()},autoSelectFirstItem:!0,getKeyBinding:function(e){return e instanceof sE?u(e.action):void 0}});case 14:case"end":return r.stop()}}),r,this)})))}},{key:"getMenuActions",value:function(e,t,n){var i,r,o=this,a=function(e){return new sE(e.action,(function(){return o._delegate.onSelectCodeAction(e)}))},s=t.map(a),u=(0,Lt.Z)(n),l=this._editor.getModel();if(l&&s.length){var c,d=(0,Tr.Z)(LL.H9.all(l));try{for(d.s();!(c=d.n()).done;){var h=c.value;h._getAdditionalMenuItems&&u.push.apply(u,(0,Lt.Z)(h._getAdditionalMenuItems({trigger:e.type,only:null===(r=null===(i=e.filter)||void 0===i?void 0:i.include)||void 0===r?void 0:r.value},t.map((function(e){return e.action})))))}}catch(f){d.e(f)}finally{d.f()}}return u.length&&s.push.apply(s,[new tE.Z0].concat((0,Lt.Z)(u.map((function(e){return a(new HL({title:e.title,command:e},void 0))}))))),s}},{key:"_toCoords",value:function(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();var t=this._editor.getScrolledVisiblePosition(e),n=(0,eE.getDomNodePagePosition)(this._editor.getDomNode());return{x:n.left+t.left,y:n.top+t.top+t.height}}}]),n}(Rx.JT);uE=rE([oE(2,nE.i),oE(3,iE.d)],uE);var lE=function(){function e(t){(0,i.Z)(this,e),this._keybindingProvider=t}return(0,r.Z)(e,[{key:"getResolver",value:function(){var t=this,n=new wL((function(){return t._keybindingProvider.getKeybindings().filter((function(t){return e.codeActionCommands.indexOf(t.command)>=0})).filter((function(e){return e.resolvedKeybinding})).map((function(e){var t=e.commandArgs;return e.command===FL?t={kind:NL.SourceOrganizeImports.value}:e.command===jL&&(t={kind:NL.SourceFixAll.value}),Object.assign({resolvedKeybinding:e.resolvedKeybinding},TL.fromUser(t,{kind:NL.None,apply:"never"}))}))}));return function(e){if(e.kind){var i=t.bestKeybindingForCodeAction(e,n.getValue());return null===i||void 0===i?void 0:i.resolvedKeybinding}}}},{key:"bestKeybindingForCodeAction",value:function(e,t){if(e.kind){var n=new NL(e.kind);return t.filter((function(e){return e.kind.contains(n)})).filter((function(t){return!t.preferred||e.isPreferred})).reduceRight((function(e,t){return e?e.kind.contains(t.kind)?t:e:t}),void 0)}}}]),e}();lE.codeActionCommands=[RL,PL,ZL,FL,jL];var cE,dE=n(78101),hE=n(11732),fE=n(25044),pE=n(4354),vE=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},gE=function(e,t){return function(n,i){t(n,i,e)}};!function(e){e.Hidden={type:0};var t=(0,r.Z)((function e(t,n,r,o){(0,i.Z)(this,e),this.actions=t,this.trigger=n,this.editorPosition=r,this.widgetPosition=o,this.type=1}));e.Showing=t}(cE||(cE={}));var mE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._editor=e,s._quickFixActionId=r,s._preferredFixActionId=o,s._keybindingService=a,s._onClick=s._register(new hE.Q5),s.onClick=s._onClick.event,s._state=cE.Hidden,s._domNode=document.createElement("div"),s._domNode.className=pE.lA.lightBulb.classNames,s._editor.addContentWidget((0,yL.Z)(s)),s._register(s._editor.onDidChangeModelContent((function(e){var t=s._editor.getModel();(1!==s.state.type||!t||s.state.editorPosition.lineNumber>=t.getLineCount())&&s.hide()}))),fE.o.ignoreTarget(s._domNode),s._register(eE.addStandardDisposableGenericMouseDownListner(s._domNode,(function(e){if(1===s.state.type){s._editor.focus(),e.preventDefault();var t=eE.getDomNodePagePosition(s._domNode),n=t.top,i=t.height,r=s._editor.getOption(55),o=Math.floor(r/3);null!==s.state.widgetPosition.position&&s.state.widgetPosition.position.lineNumber<s.state.editorPosition.lineNumber&&(o+=r),s._onClick.fire({x:e.posx,y:n+i+o,actions:s.state.actions,trigger:s.state.trigger})}}))),s._register(eE.addDisposableListener(s._domNode,"mouseenter",(function(e){if(1===(1&e.buttons)){s.hide();var t=new dE.Z;t.startMonitoring(e.target,e.buttons,dE.e,(function(){}),(function(){t.dispose()}))}}))),s._register(s._editor.onDidChangeConfiguration((function(e){e.hasChanged(53)&&!s._editor.getOption(53).enabled&&s.hide()}))),s._updateLightBulbTitleAndIcon(),s._register(s._keybindingService.onDidUpdateKeybindings(s._updateLightBulbTitleAndIcon,(0,yL.Z)(s))),s}return(0,r.Z)(n,[{key:"dispose",value:function(){(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this),this._editor.removeContentWidget(this)}},{key:"getId",value:function(){return"LightBulbWidget"}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return 1===this._state.type?this._state.widgetPosition:null}},{key:"update",value:function(e,t,i){var r=this;if(e.validActions.length<=0)return this.hide();var o=this._editor.getOptions();if(!o.get(53).enabled)return this.hide();var a=this._editor.getModel();if(!a)return this.hide();var s=a.validatePosition(i),u=s.lineNumber,l=s.column,c=a.getOptions().tabSize,d=o.get(40),h=a.getLineContent(u),f=Hx.yO.computeIndentLevel(h,c),p=function(e){return e>2&&r._editor.getTopForLineNumber(e)===r._editor.getTopForLineNumber(e-1)},v=u;if(!(d.spaceWidth*f>22))if(u>1&&!p(u-1))v-=1;else if(p(u+1)){if(l*d.spaceWidth<22)return this.hide()}else v+=1;this.state=new cE.Showing(e,t,i,{position:{lineNumber:v,column:1},preference:n._posPref}),this._editor.layoutContentWidget(this)}},{key:"hide",value:function(){this.state=cE.Hidden,this._editor.layoutContentWidget(this)}},{key:"state",get:function(){return this._state},set:function(e){this._state=e,this._updateLightBulbTitleAndIcon()}},{key:"_updateLightBulbTitleAndIcon",value:function(){var e,t;if(1===this.state.type&&this.state.actions.hasAutoFix){var n,i;(n=this._domNode.classList).remove.apply(n,(0,Lt.Z)(pE.lA.lightBulb.classNamesArray)),(i=this._domNode.classList).add.apply(i,(0,Lt.Z)(pE.lA.lightbulbAutofix.classNamesArray));var r=this._keybindingService.lookupKeybinding(this._preferredFixActionId);if(r)return void(this.title=hx.N("prefferedQuickFixWithKb","Show Fixes. Preferred Fix Available ({0})",r.getLabel()))}(e=this._domNode.classList).remove.apply(e,(0,Lt.Z)(pE.lA.lightbulbAutofix.classNamesArray)),(t=this._domNode.classList).add.apply(t,(0,Lt.Z)(pE.lA.lightBulb.classNamesArray));var o=this._keybindingService.lookupKeybinding(this._quickFixActionId);this.title=o?hx.N("quickFixWithKb","Show Fixes ({0})",o.getLabel()):hx.N("quickFix","Show Fixes")}},{key:"title",set:function(e){this._domNode.title=e}}]),n}(Rx.JT);mE._posPref=[0],mE=vE([gE(3,iE.d)],mE),(0,Wx.Ic)((function(e,t){var n,i=null===(n=e.getColor(zx.cv))||void 0===n?void 0:n.transparent(.7),r=e.getColor(zx.Fu);r&&t.addRule("\n\t\t.monaco-editor .contentWidgets ".concat(pE.lA.lightBulb.cssSelector," {\n\t\t\tcolor: ").concat(r,";\n\t\t\tbackground-color: ").concat(i,";\n\t\t}"));var o=e.getColor(zx.sK);o&&t.addRule("\n\t\t.monaco-editor .contentWidgets ".concat(pE.lA.lightbulbAutofix.cssSelector," {\n\t\t\tcolor: ").concat(o,";\n\t\t\tbackground-color: ").concat(i,";\n\t\t}"))}));var _E,yE=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},bE=function(e,t){return function(n,i){t(n,i,e)}},wE=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},CE=function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n},kE=function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)},SE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s){var u;return(0,i.Z)(this,n),(u=t.call(this))._editor=e,u.delegate=a,u._activeCodeActions=u._register(new Rx.XK),_E.set((0,yL.Z)(u),!1),u._codeActionWidget=new wL((function(){return u._register(s.createInstance(uE,u._editor,{onSelectCodeAction:function(e){return wE((0,yL.Z)(u),void 0,void 0,ki().mark((function t(){return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this.delegate.applyCodeAction(e,!0);case 1:case"end":return t.stop()}}),t,this)})))}}))})),u._lightBulbWidget=new wL((function(){var e=u._register(s.createInstance(mE,u._editor,r,o));return u._register(e.onClick((function(e){return u.showCodeActionList(e.trigger,e.actions,e,{includeDisabledActions:!1})}))),e})),u}return(0,r.Z)(n,[{key:"dispose",value:function(){CE(this,_E,!0,"f"),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"update",value:function(e){var t,n,i;return wE(this,void 0,void 0,ki().mark((function r(){var o,a,s,u;return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(1===e.type){r.next=3;break}return null===(t=this._lightBulbWidget.rawValue)||void 0===t||t.hide(),r.abrupt("return");case 3:return r.prev=3,r.next=6,e.actions;case 6:o=r.sent,r.next=13;break;case 9:return r.prev=9,r.t0=r.catch(3),(0,yx.dL)(r.t0),r.abrupt("return");case 13:if(!kE(this,_E,"f")){r.next=15;break}return r.abrupt("return");case 15:if(this._lightBulbWidget.getValue().update(o,e.trigger,e.position),1!==e.trigger.type){r.next=44;break}if(!(null===(n=e.trigger.filter)||void 0===n?void 0:n.include)){r.next=33;break}if(!(a=this.tryGetValidActionToApply(e.trigger,o))){r.next=27;break}return r.prev=20,r.next=23,this.delegate.applyCodeAction(a,!1);case 23:return r.prev=23,o.dispose(),r.finish(23);case 26:return r.abrupt("return");case 27:if(!e.trigger.context){r.next=33;break}if(!(s=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,o))||!s.action.disabled){r.next=33;break}return $L.get(this._editor).showMessage(s.action.disabled,e.trigger.context.position),o.dispose(),r.abrupt("return");case 33:if(u=!!(null===(i=e.trigger.filter)||void 0===i?void 0:i.include),!e.trigger.context){r.next=40;break}if(o.allActions.length&&(u||o.validActions.length)){r.next=40;break}return $L.get(this._editor).showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=o,o.dispose(),r.abrupt("return");case 40:this._activeCodeActions.value=o,this._codeActionWidget.getValue().show(e.trigger,o,e.position,{includeDisabledActions:u}),r.next=45;break;case 44:this._codeActionWidget.getValue().isVisible?o.dispose():this._activeCodeActions.value=o;case 45:case"end":return r.stop()}}),r,this,[[3,9],[20,,23,26]])})))}},{key:"getInvalidActionThatWouldHaveBeenApplied",value:function(e,t){if(t.allActions.length)return"first"===e.autoApply&&0===t.validActions.length||"ifSingle"===e.autoApply&&1===t.allActions.length?t.allActions.find((function(e){return e.action.disabled})):void 0}},{key:"tryGetValidActionToApply",value:function(e,t){if(t.validActions.length)return"first"===e.autoApply&&t.validActions.length>0||"ifSingle"===e.autoApply&&1===t.validActions.length?t.validActions[0]:void 0}},{key:"showCodeActionList",value:function(e,t,n,i){return wE(this,void 0,void 0,ki().mark((function r(){return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:this._codeActionWidget.getValue().show(e,t,n,i);case 1:case"end":return r.stop()}}),r,this)})))}}]),n}(Rx.JT);_E=new WeakMap,SE=yE([bE(4,JL.TG)],SE);var xE,LE,EE=n(95123),NE=n(71574),DE=n(45014),ME=n(51334),TE=function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)},OE=function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n},IE=new gx.uy("supportedCodeAction",""),AE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:250;return(0,i.Z)(this,n),(a=t.call(this))._editor=e,a._markerService=r,a._signalChange=o,a._delay=s,a._autoTriggerTimer=a._register(new Px._F),a._register(a._markerService.onMarkerChanged((function(e){return a._onMarkerChanges(e)}))),a._register(a._editor.onDidChangeCursorPosition((function(){return a._onCursorChange()}))),a}return(0,r.Z)(n,[{key:"trigger",value:function(e){var t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);return this._createEventAndSignalChange(e,t)}},{key:"_onMarkerChanges",value:function(e){var t=this,n=this._editor.getModel();n&&e.some((function(e){return(0,ME.Xy)(e,n.uri)}))&&this._autoTriggerTimer.cancelAndSet((function(){t.trigger({type:2})}),this._delay)}},{key:"_onCursorChange",value:function(){var e=this;this._autoTriggerTimer.cancelAndSet((function(){e.trigger({type:2})}),this._delay)}},{key:"_getRangeOfMarker",value:function(e){var t=this._editor.getModel();if(t){var n,i=(0,Tr.Z)(this._markerService.read({resource:t.uri}));try{for(i.s();!(n=i.n()).done;){var r=n.value,o=t.validateRange(r);if(Fx.e.intersectRanges(o,e))return Fx.e.lift(o)}}catch(a){i.e(a)}finally{i.f()}}}},{key:"_getRangeOfSelectionUnlessWhitespaceEnclosed",value:function(e){if(this._editor.hasModel()){var t=this._editor.getModel(),n=this._editor.getSelection();if(n.isEmpty()&&2===e.type){var i=n.getPosition(),r=i.lineNumber,o=i.column,a=t.getLineContent(r);if(0===a.length)return;if(1===o){if(/\s/.test(a[0]))return}else if(o===t.getLineMaxColumn(r)){if(/\s/.test(a[a.length-1]))return}else if(/\s/.test(a[o-2])&&/\s/.test(a[o-1]))return}return n}}},{key:"_createEventAndSignalChange",value:function(e,t){var n=this._editor.getModel();if(t&&n){var i=this._getRangeOfMarker(t),r=i?i.getStartPosition():t.getStartPosition(),o={trigger:e,selection:t,position:r};return this._signalChange(o),o}this._signalChange(void 0)}}]),n}(Rx.JT);!function(e){e.Empty={type:0};var t=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.trigger=t,this.rangeOrSelection=n,this.position=r,this._cancellablePromise=o,this.type=1,this.actions=o.catch((function(e){if((0,yx.VV)(e))return PE;throw e}))}return(0,r.Z)(e,[{key:"cancel",value:function(){this._cancellablePromise.cancel()}}]),e}();e.Triggered=t}(LE||(LE={}));var PE={allActions:[],validActions:[],dispose:function(){},documentation:[],hasAutoFix:!1},RE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._editor=e,s._markerService=r,s._progressService=a,s._codeActionOracle=s._register(new Rx.XK),s._state=LE.Empty,s._onDidChangeState=s._register(new hE.Q5),s.onDidChangeState=s._onDidChangeState.event,xE.set((0,yL.Z)(s),!1),s._supportedCodeActions=IE.bindTo(o),s._register(s._editor.onDidChangeModel((function(){return s._update()}))),s._register(s._editor.onDidChangeModelLanguage((function(){return s._update()}))),s._register(LL.H9.onDidChange((function(){return s._update()}))),s._update(),s}return(0,r.Z)(n,[{key:"dispose",value:function(){TE(this,xE,"f")||(OE(this,xE,!0,"f"),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this),this.setState(LE.Empty,!0))}},{key:"_update",value:function(){var e=this;if(!TE(this,xE,"f")){this._codeActionOracle.value=void 0,this.setState(LE.Empty);var t=this._editor.getModel();if(t&&LL.H9.has(t)&&!this._editor.getOption(77)){var n,i=[],r=(0,Tr.Z)(LL.H9.all(t));try{for(r.s();!(n=r.n()).done;){var o=n.value;Array.isArray(o.providedCodeActionKinds)&&i.push.apply(i,(0,Lt.Z)(o.providedCodeActionKinds))}}catch(a){r.e(a)}finally{r.f()}this._supportedCodeActions.set(i.join(" ")),this._codeActionOracle.value=new AE(this._editor,this._markerService,(function(n){var i;if(n){var r=(0,Px.PG)((function(e){return WL(t,n.selection,n.trigger,OL.E.None,e)}));1===n.trigger.type&&(null===(i=e._progressService)||void 0===i||i.showWhile(r,250)),e.setState(new LE.Triggered(n.trigger,n.selection,n.position,r))}else e.setState(LE.Empty)}),void 0),this._codeActionOracle.value.trigger({type:2})}else this._supportedCodeActions.reset()}}},{key:"trigger",value:function(e){this._codeActionOracle.value&&this._codeActionOracle.value.trigger(e)}},{key:"setState",value:function(e,t){e!==this._state&&(1===this._state.type&&this._state.cancel(),this._state=e,t||TE(this,xE,"f")||this._onDidChangeState.fire(e))}}]),n}(Rx.JT);xE=new WeakMap;var ZE=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},FE=function(e,t){return function(n,i){t(n,i,e)}},jE=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function HE(e){return gx.Ao.regex(IE.keys()[0],new RegExp("(\\s|^)"+(0,CL.ec)(e.value)+"\\b"))}var BE={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:hx.N("args.schema.kind","Kind of the code action to run.")},apply:{type:"string",description:hx.N("args.schema.apply","Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[hx.N("args.schema.apply.first","Always apply the first returned code action."),hx.N("args.schema.apply.ifSingle","Apply the first returned code action if it is the only one."),hx.N("args.schema.apply.never","Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:hx.N("args.schema.preferred","Controls if only preferred code actions should be returned.")}}},zE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s){var u;return(0,i.Z)(this,n),(u=t.call(this))._instantiationService=s,u._editor=e,u._model=u._register(new RE(u._editor,r,o,a)),u._register(u._model.onDidChangeState((function(e){return u.update(e)}))),u._ui=new wL((function(){return u._register(new SE(e,UE.Id,XE.Id,{applyCodeAction:function(e,t){return jE((0,yL.Z)(u),void 0,void 0,ki().mark((function n(){return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,this._applyCodeAction(e);case 3:return n.prev=3,t&&this._trigger({type:2,filter:{}}),n.finish(3);case 6:case"end":return n.stop()}}),n,this,[[0,,3,6]])})))}},u._instantiationService))})),u}return(0,r.Z)(n,[{key:"update",value:function(e){this._ui.getValue().update(e)}},{key:"showCodeActions",value:function(e,t,n){return this._ui.getValue().showCodeActionList(e,t,n,{includeDisabledActions:!1})}},{key:"manualTriggerAtCurrentPosition",value:function(e,t,n){if(this._editor.hasModel()){$L.get(this._editor).closeMessage();var i=this._editor.getPosition();this._trigger({type:1,filter:t,autoApply:n,context:{notAvailableMessage:e,position:i}})}}},{key:"_trigger",value:function(e){return this._model.trigger(e)}},{key:"_applyCodeAction",value:function(e){return this._instantiationService.invokeFunction(WE,e,this._editor)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);function WE(e,t,n){return jE(this,void 0,void 0,ki().mark((function i(){var r,o,a,s,u;return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return r=e.get(kL.vu),o=e.get(IL.H),a=e.get(DE.b),s=e.get(NE.lT),a.publicLog2("codeAction.applyCodeAction",{codeActionTitle:t.action.title,codeActionKind:t.action.kind,codeActionIsPreferred:!!t.action.isPreferred}),i.next=7,t.resolve(bL.T.None);case 7:if(!t.action.edit){i.next=10;break}return i.next=10,r.apply(kL.fo.convert(t.action.edit),{editor:n,label:t.action.title});case 10:if(!t.action.command){i.next=20;break}return i.prev=11,i.next=14,o.executeCommand.apply(o,[t.action.command.id].concat((0,Lt.Z)(t.action.command.arguments||[])));case 14:i.next=20;break;case 16:i.prev=16,i.t0=i.catch(11),u=VE(i.t0),s.error("string"===typeof u?u:hx.N("applyCodeActionFailed","An unknown error occurred while applying the code action"));case 20:case"end":return i.stop()}}),i,null,[[11,16]])})))}function VE(e){return"string"===typeof e?e:e instanceof Error&&"string"===typeof e.message?e.message:void 0}function YE(e,t,n,i){if(e.hasModel()){var r=zE.get(e);r&&r.manualTriggerAtCurrentPosition(t,n,i)}}zE.ID="editor.contrib.quickFixController",zE=ZE([FE(1,EE.lT),FE(2,gx.i6),FE(3,OL.e),FE(4,JL.TG)],zE);var UE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.Id,label:hx.N("quickfix.trigger.label","Quick Fix..."),alias:"Quick Fix...",precondition:gx.Ao.and(fx.u.writable,fx.u.hasCodeActionsProvider),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:2132,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return YE(t,hx.N("editor.action.quickFix.noneMessage","No code actions available"),void 0,void 0)}}]),n}(dx.R6);UE.Id="editor.action.quickFix";var KE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:PL,precondition:gx.Ao.and(fx.u.writable,fx.u.hasCodeActionsProvider),description:{description:"Trigger a code action",args:[{name:"args",schema:BE}]}})}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=TL.fromUser(n,{kind:NL.Empty,apply:"ifSingle"});return YE(t,"string"===typeof(null===n||void 0===n?void 0:n.kind)?i.preferred?hx.N("editor.action.codeAction.noneMessage.preferred.kind","No preferred code actions for '{0}' available",n.kind):hx.N("editor.action.codeAction.noneMessage.kind","No code actions for '{0}' available",n.kind):i.preferred?hx.N("editor.action.codeAction.noneMessage.preferred","No preferred code actions available"):hx.N("editor.action.codeAction.noneMessage","No code actions available"),{include:i.kind,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)}}]),n}(dx._l),qE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:RL,label:hx.N("refactor.label","Refactor..."),alias:"Refactor...",precondition:gx.Ao.and(fx.u.writable,fx.u.hasCodeActionsProvider),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:gx.Ao.and(fx.u.writable,HE(NL.Refactor))},description:{description:"Refactor...",args:[{name:"args",schema:BE}]}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=TL.fromUser(n,{kind:NL.Refactor,apply:"never"});return YE(t,"string"===typeof(null===n||void 0===n?void 0:n.kind)?i.preferred?hx.N("editor.action.refactor.noneMessage.preferred.kind","No preferred refactorings for '{0}' available",n.kind):hx.N("editor.action.refactor.noneMessage.kind","No refactorings for '{0}' available",n.kind):i.preferred?hx.N("editor.action.refactor.noneMessage.preferred","No preferred refactorings available"):hx.N("editor.action.refactor.noneMessage","No refactorings available"),{include:NL.Refactor.contains(i.kind)?i.kind:NL.None,onlyIncludePreferredActions:i.preferred},i.apply)}}]),n}(dx.R6),GE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:ZL,label:hx.N("source.label","Source Action..."),alias:"Source Action...",precondition:gx.Ao.and(fx.u.writable,fx.u.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:gx.Ao.and(fx.u.writable,HE(NL.Source))},description:{description:"Source Action...",args:[{name:"args",schema:BE}]}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=TL.fromUser(n,{kind:NL.Source,apply:"never"});return YE(t,"string"===typeof(null===n||void 0===n?void 0:n.kind)?i.preferred?hx.N("editor.action.source.noneMessage.preferred.kind","No preferred source actions for '{0}' available",n.kind):hx.N("editor.action.source.noneMessage.kind","No source actions for '{0}' available",n.kind):i.preferred?hx.N("editor.action.source.noneMessage.preferred","No preferred source actions available"):hx.N("editor.action.source.noneMessage","No source actions available"),{include:NL.Source.contains(i.kind)?i.kind:NL.None,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)}}]),n}(dx.R6),$E=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:FL,label:hx.N("organizeImports.label","Organize Imports"),alias:"Organize Imports",precondition:gx.Ao.and(fx.u.writable,HE(NL.SourceOrganizeImports)),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1581,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return YE(t,hx.N("editor.action.organize.noneMessage","No organize imports action available"),{include:NL.SourceOrganizeImports,includeSourceActions:!0},"ifSingle")}}]),n}(dx.R6),QE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:jL,label:hx.N("fixAll.label","Fix All"),alias:"Fix All",precondition:gx.Ao.and(fx.u.writable,HE(NL.SourceFixAll))})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return YE(t,hx.N("fixAll.noneMessage","No fix all action available"),{include:NL.SourceFixAll,includeSourceActions:!0},"ifSingle")}}]),n}(dx.R6),XE=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.Id,label:hx.N("autoFix.label","Auto Fix..."),alias:"Auto Fix...",precondition:gx.Ao.and(fx.u.writable,HE(NL.QuickFix)),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1620,mac:{primary:2644},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return YE(t,hx.N("editor.action.autoFix.noneMessage","No auto fixes available"),{include:NL.QuickFix,onlyIncludePreferredActions:!0},"ifSingle")}}]),n}(dx.R6);XE.Id="editor.action.autoFix",(0,dx._K)(zE.ID,zE),(0,dx.Qr)(UE),(0,dx.Qr)(qE),(0,dx.Qr)(GE),(0,dx.Qr)($E),(0,dx.Qr)(XE),(0,dx.Qr)(QE),(0,dx.fK)(new KE);var JE=n(25941),eN=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},tN=function(){function e(){(0,i.Z)(this,e),this.lenses=[],this._disposables=new Rx.SL}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose()}},{key:"add",value:function(e,t){this._disposables.add(e);var n,i=(0,Tr.Z)(e.lenses);try{for(i.s();!(n=i.n()).done;){var r=n.value;this.lenses.push({symbol:r,provider:t})}}catch(o){i.e(o)}finally{i.f()}}}]),e}();function nN(e,t){return eN(this,void 0,void 0,ki().mark((function n(){var i,r,o,a,s=this;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i=LL.He.ordered(e),r=new Map,o=new tN,a=i.map((function(n,i){return eN(s,void 0,void 0,ki().mark((function a(){var s;return ki().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return r.set(n,i),a.prev=1,a.next=4,Promise.resolve(n.provideCodeLenses(e,t));case 4:(s=a.sent)&&o.add(s,n),a.next=11;break;case 8:a.prev=8,a.t0=a.catch(1),(0,yx.Cp)(a.t0);case 11:case"end":return a.stop()}}),a,null,[[1,8]])})))})),n.next=6,Promise.all(a);case 6:return o.lenses=o.lenses.sort((function(e,t){return e.symbol.range.startLineNumber<t.symbol.range.startLineNumber?-1:e.symbol.range.startLineNumber>t.symbol.range.startLineNumber?1:r.get(e.provider)<r.get(t.provider)?-1:r.get(e.provider)>r.get(t.provider)?1:e.symbol.range.startColumn<t.symbol.range.startColumn?-1:e.symbol.range.startColumn>t.symbol.range.startColumn?1:0})),n.abrupt("return",o);case 8:case"end":return n.stop()}}),n)})))}IL.P.registerCommand("_executeCodeLensProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1];(0,JE.p_)(SL.o.isUri(r)),(0,JE.p_)("number"===typeof o||!o);var a=e.get(EL.q).getModel(r);if(!a)throw(0,yx.b1)();var s=[],u=new Rx.SL;return nN(a,bL.T.None).then((function(e){u.add(e);var t,n=[],i=(0,Tr.Z)(e.lenses);try{var r=function(){var e=t.value;void 0===o||null===o||Boolean(e.symbol.command)?s.push(e.symbol):o-- >0&&e.provider.resolveCodeLens&&n.push(Promise.resolve(e.provider.resolveCodeLens(a,e.symbol,bL.T.None)).then((function(t){return s.push(t||e.symbol)})))};for(i.s();!(t=i.n()).done;)r()}catch(l){i.e(l)}finally{i.f()}return Promise.all(n)})).then((function(){return s})).finally((function(){setTimeout((function(){return u.dispose()}),100)}))}));var iN=n(66404),rN=function(){function e(t,n,r){(0,i.Z)(this,e),this.afterLineNumber=t,this.heightInPx=n,this._onHeight=r,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}return(0,r.Z)(e,[{key:"onComputedHeight",value:function(e){void 0===this._lastHeight?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}}]),e}(),oN=function(){function e(t,n,r){(0,i.Z)(this,e),this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=t,this._id="codelens.widget-".concat(e._idPool++),this.updatePosition(r),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration ".concat(n)}return(0,r.Z)(e,[{key:"withCommands",value:function(e,t){this._commands.clear();for(var n=[],i=!1,r=0;r<e.length;r++){var o=e[r];if(o&&(i=!0,o.command)){var a=(0,iN.T)(o.command.title.trim());o.command.id?(n.push(eE.$.apply(eE,["a",{id:String(r),title:o.command.tooltip}].concat((0,Lt.Z)(a)))),this._commands.set(String(r),o.command)):n.push(eE.$.apply(eE,["span",{title:o.command.tooltip}].concat((0,Lt.Z)(a)))),r+1<e.length&&n.push(eE.$("span",void 0,"\xa0|\xa0"))}}i?(eE.reset.apply(eE,[this._domNode].concat(n)),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):eE.reset(this._domNode,eE.$("span",void 0,"no commands"))}},{key:"getCommand",value:function(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0}},{key:"getId",value:function(){return this._id}},{key:"getDomNode",value:function(){return this._domNode}},{key:"updatePosition",value:function(e){var t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}}},{key:"getPosition",value:function(){return this._widgetPosition||null}}]),e}();oN._idPool=0;var aN=function(){function e(){(0,i.Z)(this,e),this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}return(0,r.Z)(e,[{key:"addDecoration",value:function(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)}},{key:"removeDecoration",value:function(e){this._removeDecorations.push(e)}},{key:"commit",value:function(e){for(var t=e.deltaDecorations(this._removeDecorations,this._addDecorations),n=0,i=t.length;n<i;n++)this._addDecorationsCallbacks[n](t[n])}}]),e}(),sN=function(){function e(t,n,r,o,a,s,u){var l,c=this;(0,i.Z)(this,e),this._isDisposed=!1,this._editor=n,this._className=r,this._data=t,this._decorationIds=[];var d=[];this._data.forEach((function(e,t){e.symbol.command&&d.push(e.symbol),o.addDecoration({range:e.symbol.range,options:Hx.qx.EMPTY},(function(e){return c._decorationIds[t]=e})),l=l?Fx.e.plusRange(l,e.symbol.range):Fx.e.lift(e.symbol.range)})),this._viewZone=new rN(l.startLineNumber-1,s,u),this._viewZoneId=a.addZone(this._viewZone),d.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(d,!1))}return(0,r.Z)(e,[{key:"_createContentWidgetIfNecessary",value:function(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new oN(this._editor,this._className,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}},{key:"dispose",value:function(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t&&t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}},{key:"isDisposed",value:function(){return this._isDisposed}},{key:"isValid",value:function(){var e=this;return this._decorationIds.some((function(t,n){var i=e._editor.getModel().getDecorationRange(t),r=e._data[n].symbol;return!(!i||Fx.e.isEmpty(r.range)!==i.isEmpty())}))}},{key:"updateCodeLensSymbols",value:function(e,t){var n=this;this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((function(e,i){t.addDecoration({range:e.symbol.range,options:Hx.qx.EMPTY},(function(e){return n._decorationIds[i]=e}))}))}},{key:"updateHeight",value:function(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}},{key:"computeIfNecessary",value:function(e){if(!this._viewZone.domNode.hasAttribute("monaco-visible-view-zone"))return null;for(var t=0;t<this._decorationIds.length;t++){var n=e.getDecorationRange(this._decorationIds[t]);n&&(this._data[t].symbol.range=n)}return this._data}},{key:"updateCommands",value:function(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(var t=0;t<this._data.length;t++){var n=e[t];if(n){var i=this._data[t].symbol;i.command=n.command||i.command}}}},{key:"getCommand",value:function(e){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.getCommand(e)}},{key:"getLineNumber",value:function(){var e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1}},{key:"update",value:function(e){if(this.isValid()){var t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,e.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}}},{key:"getItems",value:function(){return this._data}}]),e}();(0,Wx.Ic)((function(e,t){var n=e.getColor(Bx.Yp);n&&(t.addRule(".monaco-editor .codelens-decoration { color: ".concat(n,"; }")),t.addRule(".monaco-editor .codelens-decoration .codicon { color: ".concat(n,"; }")));var i=e.getColor(zx._Y);i&&(t.addRule(".monaco-editor .codelens-decoration > a:hover { color: ".concat(i," !important; }")),t.addRule(".monaco-editor .codelens-decoration > a:hover .codicon { color: ".concat(i," !important; }")))}));var uN=n(77863),lN=n(15022),cN=n(59319),dN=n(60106),hN=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},fN=function(e,t){return function(n,i){t(n,i,e)}},pN=(0,JL.yh)("ICodeLensCache"),vN=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.lineCount=t,this.data=n})),gN=function(){function e(t){var n=this;(0,i.Z)(this,e),this._fakeProvider=new(function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"provideCodeLenses",value:function(){throw new Error("not supported")}}]),e}()),this._cache=new lN.z6(20,.75);(0,Px.To)((function(){return t.remove("codelens/cache",1)}));var o="codelens/cache2",a=t.get(o,1,"{}");this._deserialize(a),(0,dN.I)(t.onWillSaveState)((function(e){e.reason===cN.fk.SHUTDOWN&&t.store(o,n._serialize(),1,1)}))}return(0,r.Z)(e,[{key:"put",value:function(e,t){var n=t.lenses.map((function(e){var t;return{range:e.symbol.range,command:e.symbol.command&&{id:"",title:null===(t=e.symbol.command)||void 0===t?void 0:t.title}}})),i=new tN;i.add({lenses:n,dispose:function(){}},this._fakeProvider);var r=new vN(e.getLineCount(),i);this._cache.set(e.uri.toString(),r)}},{key:"get",value:function(e){var t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}},{key:"delete",value:function(e){this._cache.delete(e.uri.toString())}},{key:"_serialize",value:function(){var e,t=Object.create(null),n=(0,Tr.Z)(this._cache);try{for(n.s();!(e=n.n()).done;){var i,r=(0,dt.Z)(e.value,2),o=r[0],a=r[1],s=new Set,u=(0,Tr.Z)(a.data.lenses);try{for(u.s();!(i=u.n()).done;){var l=i.value;s.add(l.symbol.range.startLineNumber)}}catch(c){u.e(c)}finally{u.f()}t[o]={lineCount:a.lineCount,lines:(0,Lt.Z)(s.values())}}}catch(c){n.e(c)}finally{n.f()}return JSON.stringify(t)}},{key:"_deserialize",value:function(e){try{var t=JSON.parse(e);for(var n in t){var i,r=t[n],o=[],a=(0,Tr.Z)(r.lines);try{for(a.s();!(i=a.n()).done;){var s=i.value;o.push({range:new Fx.e(s,1,s,11)})}}catch(l){a.e(l)}finally{a.f()}var u=new tN;u.add({lenses:o,dispose:function(){}},this._fakeProvider),this._cache.set(n,new vN(r.lineCount,u))}}catch(OM){}}}]),e}();gN=hN([fN(0,cN.Uy)],gN),(0,uN.z)(pN,gN);var mN=n(25567),_N=n(62137),yN=n(66748),bN=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},wN=function(e,t){return function(n,i){t(n,i,e)}},CN=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},kN=function(){function e(t,n,r,o){var a=this;(0,i.Z)(this,e),this._editor=t,this._commandService=n,this._notificationService=r,this._codeLensCache=o,this._disposables=new Rx.SL,this._localToDispose=new Rx.SL,this._lenses=[],this._getCodeLensModelDelays=new yN.Y(LL.He,250,2500),this._oldCodeLensModels=new Rx.SL,this._resolveCodeLensesDelays=new yN.Y(LL.He,250,2500),this._resolveCodeLensesScheduler=new Px.pY((function(){return a._resolveCodeLensesInViewport()}),this._resolveCodeLensesDelays.min),this._disposables.add(this._editor.onDidChangeModel((function(){return a._onModelChange()}))),this._disposables.add(this._editor.onDidChangeModelLanguage((function(){return a._onModelChange()}))),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){(e.hasChanged(40)||e.hasChanged(14)||e.hasChanged(13))&&a._updateLensStyle(),e.hasChanged(12)&&a._onModelChange()}))),this._disposables.add(LL.He.onDidChange(this._onModelChange,this)),this._onModelChange(),this._styleClassName="_"+(0,mN.vp)(this._editor.getId()).toString(16),this._styleElement=eE.createStyleSheet(eE.isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0),this._updateLensStyle()}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),null===(e=this._currentCodeLensModel)||void 0===e||e.dispose(),this._styleElement.remove()}},{key:"_getLayoutInfo",value:function(){var e,t=this._editor.getOption(14);return!t||t<5?(t=.9*this._editor.getOption(42)|0,e=this._editor.getOption(55)):e=t*Math.max(1.3,this._editor.getOption(55)/this._editor.getOption(42))|0,{codeLensHeight:e,fontSize:t}}},{key:"_updateLensStyle",value:function(){var e=this,t=this._getLayoutInfo(),n=t.codeLensHeight,i=t.fontSize,r=this._editor.getOption(13),o=this._editor.getOption(40),a="--codelens-font-family".concat(this._styleClassName),s="--codelens-font-features".concat(this._styleClassName),u="\n\t\t.monaco-editor .codelens-decoration.".concat(this._styleClassName," { line-height: ").concat(n,"px; font-size: ").concat(i,"px; padding-right: ").concat(Math.round(.5*i),"px; font-feature-settings: var(").concat(s,") }\n\t\t.monaco-editor .codelens-decoration.").concat(this._styleClassName," span.codicon { line-height: ").concat(n,"px; font-size: ").concat(i,"px; }\n\t\t");r&&(u+=".monaco-editor .codelens-decoration.".concat(this._styleClassName," { font-family: var(").concat(a,")}")),this._styleElement.textContent=u,this._editor.getContainerDomNode().style.setProperty(a,null!==r&&void 0!==r?r:"inherit"),this._editor.getContainerDomNode().style.setProperty(s,o.fontFeatureSettings),this._editor.changeViewZones((function(t){var i,r=(0,Tr.Z)(e._lenses);try{for(r.s();!(i=r.n()).done;){i.value.updateHeight(n,t)}}catch(o){r.e(o)}finally{r.f()}}))}},{key:"_localDispose",value:function(){var e,t,n;null===(e=this._getCodeLensModelPromise)||void 0===e||e.cancel(),this._getCodeLensModelPromise=void 0,null===(t=this._resolveCodeLensesPromise)||void 0===t||t.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),null===(n=this._currentCodeLensModel)||void 0===n||n.dispose()}},{key:"_onModelChange",value:function(){var e=this;this._localDispose();var t=this._editor.getModel();if(t&&this._editor.getOption(12)){var n=this._codeLensCache.get(t);if(n&&this._renderCodeLensSymbols(n),LL.He.has(t)){var i,r=(0,Tr.Z)(LL.He.all(t));try{for(r.s();!(i=r.n()).done;){var o=i.value;if("function"===typeof o.onDidChange){var a=o.onDidChange((function(){return s.schedule()}));this._localToDispose.add(a)}}}catch(u){r.e(u)}finally{r.f()}var s=new Px.pY((function(){var n,i=Date.now();null===(n=e._getCodeLensModelPromise)||void 0===n||n.cancel(),e._getCodeLensModelPromise=(0,Px.PG)((function(e){return nN(t,e)})),e._getCodeLensModelPromise.then((function(n){e._currentCodeLensModel&&e._oldCodeLensModels.add(e._currentCodeLensModel),e._currentCodeLensModel=n,e._codeLensCache.put(t,n);var r=e._getCodeLensModelDelays.update(t,Date.now()-i);s.delay=r,e._renderCodeLensSymbols(n),e._resolveCodeLensesInViewport()}),yx.dL)}),this._getCodeLensModelDelays.get(t));this._localToDispose.add(s),this._localToDispose.add((0,Rx.OF)((function(){return e._resolveCodeLensesScheduler.cancel()}))),this._localToDispose.add(this._editor.onDidChangeModelContent((function(){e._editor.changeDecorations((function(t){e._editor.changeViewZones((function(n){var i=[],r=-1;e._lenses.forEach((function(e){e.isValid()&&r!==e.getLineNumber()?(e.update(n),r=e.getLineNumber()):i.push(e)}));var o=new aN;i.forEach((function(t){t.dispose(o,n),e._lenses.splice(e._lenses.indexOf(t),1)})),o.commit(t)}))})),s.schedule()}))),this._localToDispose.add(this._editor.onDidFocusEditorWidget((function(){s.schedule()}))),this._localToDispose.add(this._editor.onDidScrollChange((function(t){t.scrollTopChanged&&e._lenses.length>0&&e._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add(this._editor.onDidLayoutChange((function(){e._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add((0,Rx.OF)((function(){if(e._editor.getModel()){var t=xL.ZF.capture(e._editor);e._editor.changeDecorations((function(t){e._editor.changeViewZones((function(n){e._disposeAllLenses(t,n)}))})),t.restore(e._editor)}else e._disposeAllLenses(void 0,void 0)}))),this._localToDispose.add(this._editor.onMouseDown((function(t){if(9===t.target.type){var n=t.target.element;if("SPAN"===(null===n||void 0===n?void 0:n.tagName)&&(n=n.parentElement),"A"===(null===n||void 0===n?void 0:n.tagName)){var i,r=(0,Tr.Z)(e._lenses);try{for(r.s();!(i=r.n()).done;){var o=i.value.getCommand(n);if(o){var a;(a=e._commandService).executeCommand.apply(a,[o.id].concat((0,Lt.Z)(o.arguments||[]))).catch((function(t){return e._notificationService.error(t)}));break}}}catch(u){r.e(u)}finally{r.f()}}}}))),s.schedule()}else n&&this._localToDispose.add((0,Px.Vg)((function(){var i=e._codeLensCache.get(t);n===i&&(e._codeLensCache.delete(t),e._onModelChange())}),3e4))}}},{key:"_disposeAllLenses",value:function(e,t){var n,i=new aN,r=(0,Tr.Z)(this._lenses);try{for(r.s();!(n=r.n()).done;){n.value.dispose(i,t)}}catch(o){r.e(o)}finally{r.f()}e&&i.commit(e),this._lenses.length=0}},{key:"_renderCodeLensSymbols",value:function(e){var t=this;if(this._editor.hasModel()){var n,i,r=this._editor.getModel().getLineCount(),o=[],a=(0,Tr.Z)(e.lenses);try{for(a.s();!(i=a.n()).done;){var s=i.value,u=s.symbol.range.startLineNumber;u<1||u>r||(n&&n[n.length-1].symbol.range.startLineNumber===u?n.push(s):(n=[s],o.push(n)))}}catch(d){a.e(d)}finally{a.f()}var l=xL.ZF.capture(this._editor),c=this._getLayoutInfo();this._editor.changeDecorations((function(e){t._editor.changeViewZones((function(n){for(var i=new aN,r=0,a=0;a<o.length&&r<t._lenses.length;){var s=o[a][0].symbol.range.startLineNumber,u=t._lenses[r].getLineNumber();u<s?(t._lenses[r].dispose(i,n),t._lenses.splice(r,1)):u===s?(t._lenses[r].updateCodeLensSymbols(o[a],i),a++,r++):(t._lenses.splice(r,0,new sN(o[a],t._editor,t._styleClassName,i,n,c.codeLensHeight,(function(){return t._resolveCodeLensesInViewportSoon()}))),r++,a++)}for(;r<t._lenses.length;)t._lenses[r].dispose(i,n),t._lenses.splice(r,1);for(;a<o.length;)t._lenses.push(new sN(o[a],t._editor,t._styleClassName,i,n,c.codeLensHeight,(function(){return t._resolveCodeLensesInViewportSoon()}))),a++;i.commit(e)}))})),l.restore(this._editor)}}},{key:"_resolveCodeLensesInViewportSoon",value:function(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}},{key:"_resolveCodeLensesInViewport",value:function(){var e,t=this;null===(e=this._resolveCodeLensesPromise)||void 0===e||e.cancel(),this._resolveCodeLensesPromise=void 0;var n=this._editor.getModel();if(n){var i=[],r=[];if(this._lenses.forEach((function(e){var t=e.computeIfNecessary(n);t&&(i.push(t),r.push(e))})),0!==i.length){var o=Date.now(),a=(0,Px.PG)((function(e){var t=i.map((function(t,i){var o=new Array(t.length),a=t.map((function(t,i){return t.symbol.command||"function"!==typeof t.provider.resolveCodeLens?(o[i]=t.symbol,Promise.resolve(void 0)):Promise.resolve(t.provider.resolveCodeLens(n,t.symbol,e)).then((function(e){o[i]=e}),yx.Cp)}));return Promise.all(a).then((function(){e.isCancellationRequested||r[i].isDisposed()||r[i].updateCommands(o)}))}));return Promise.all(t)}));this._resolveCodeLensesPromise=a,this._resolveCodeLensesPromise.then((function(){var e=t._resolveCodeLensesDelays.update(n,Date.now()-o);t._resolveCodeLensesScheduler.delay=e,t._currentCodeLensModel&&t._codeLensCache.put(n,t._currentCodeLensModel),t._oldCodeLensModels.clear(),a===t._resolveCodeLensesPromise&&(t._resolveCodeLensesPromise=void 0)}),(function(e){(0,yx.dL)(e),a===t._resolveCodeLensesPromise&&(t._resolveCodeLensesPromise=void 0)}))}}}},{key:"getLenses",value:function(){return this._lenses}}]),e}();kN.ID="css.editor.codeLens",kN=bN([wN(1,IL.H),wN(2,NE.lT),wN(3,pN)],kN),(0,dx._K)(kN.ID,kN),(0,dx.Qr)(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"codelens.showLensesInCurrentLine",precondition:fx.u.hasCodeLensProvider,label:(0,hx.N)("showLensOnLine","Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return CN(this,void 0,void 0,ki().mark((function n(){var i,r,o,a,s,u,l,c,d,h,f,p,v,g;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t.hasModel()){n.next=2;break}return n.abrupt("return");case 2:i=e.get(_N.eJ),r=e.get(IL.H),o=e.get(NE.lT),a=t.getSelection().positionLineNumber,s=t.getContribution(kN.ID),u=[],l=(0,Tr.Z)(s.getLenses());try{for(l.s();!(c=l.n()).done;)if((d=c.value).getLineNumber()===a){h=(0,Tr.Z)(d.getItems());try{for(h.s();!(f=h.n()).done;)p=f.value,(v=p.symbol.command)&&u.push({label:v.title,command:v})}catch(m){h.e(m)}finally{h.f()}}}catch(m){l.e(m)}finally{l.f()}if(0!==u.length){n.next=12;break}return n.abrupt("return");case 12:return n.next=14,i.pick(u,{canPickMany:!1});case 14:if(g=n.sent){n.next=17;break}return n.abrupt("return");case 17:return n.prev=17,n.next=20,r.executeCommand.apply(r,[g.command.id].concat((0,Lt.Z)(g.command.arguments||[])));case 20:n.next=25;break;case 22:n.prev=22,n.t0=n.catch(17),o.error(n.t0);case 25:case"end":return n.stop()}}),n,null,[[17,22]])})))}}]),n}(dx.R6));var SN=n(89938);function xN(e,t,n,i){return Promise.resolve(n.provideColorPresentations(e,t,i))}IL.P.registerCommand("_executeDocumentColorProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0];if(!(r instanceof SL.o))throw(0,yx.b1)();var o=e.get(EL.q).getModel(r);if(!o)throw(0,yx.b1)();var a=[],s=LL.OH.ordered(o).reverse().map((function(e){return Promise.resolve(e.provideDocumentColors(o,bL.T.None)).then((function(e){if(Array.isArray(e)){var t,n=(0,Tr.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;a.push({range:i.range,color:[i.color.red,i.color.green,i.color.blue,i.color.alpha]})}}catch(r){n.e(r)}finally{n.f()}}}))}));return Promise.all(s).then((function(){return a}))})),IL.P.registerCommand("_executeColorPresentationProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var r=n[0],o=n[1],a=o.uri,s=o.range;if(!(a instanceof SL.o)||!Array.isArray(r)||4!==r.length||!Fx.e.isIRange(s))throw(0,yx.b1)();var u=(0,dt.Z)(r,4),l=u[0],c=u[1],d=u[2],h=u[3],f=e.get(EL.q).getModel(a);if(!f)throw(0,yx.b1)();var p={range:s,color:{red:l,green:c,blue:d,alpha:h}},v=[],g=LL.OH.ordered(f).reverse().map((function(e){return Promise.resolve(e.provideColorPresentations(f,p,bL.T.None)).then((function(e){Array.isArray(e)&&v.push.apply(v,(0,Lt.Z)(e))}))}));return Promise.all(g).then((function(){return v}))}));var LN=n(98921),EN=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},NN=function(e,t){return function(n,i){t(n,i,e)}},DN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this))._editor=e,a._codeEditorService=r,a._configurationService=o,a._localToDispose=a._register(new Rx.SL),a._decorationsIds=[],a._colorDatas=new Map,a._colorDecoratorIds=[],a._decorationsTypes=new Set,a._register(e.onDidChangeModel((function(){a._isEnabled=a.isEnabled(),a.onModelChanged()}))),a._register(e.onDidChangeModelLanguage((function(){return a.onModelChanged()}))),a._register(LL.OH.onDidChange((function(){return a.onModelChanged()}))),a._register(e.onDidChangeConfiguration((function(){var e=a._isEnabled;a._isEnabled=a.isEnabled(),e!==a._isEnabled&&(a._isEnabled?a.onModelChanged():a.removeAllDecorations())}))),a._timeoutTimer=null,a._computePromise=null,a._isEnabled=a.isEnabled(),a.onModelChanged(),a}return(0,r.Z)(n,[{key:"isEnabled",value:function(){var e=this._editor.getModel();if(!e)return!1;var t=e.getLanguageIdentifier(),n=this._configurationService.getValue(t.language);if(n){var i=n.colorDecorators;if(i&&void 0!==i.enable&&!i.enable)return i.enable}return this._editor.getOption(15)}},{key:"dispose",value:function(){this.stop(),this.removeAllDecorations(),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"onModelChanged",value:function(){var e=this;if(this.stop(),this._isEnabled){var t=this._editor.getModel();t&&LL.OH.has(t)&&(this._localToDispose.add(this._editor.onDidChangeModelContent((function(){e._timeoutTimer||(e._timeoutTimer=new Px._F,e._timeoutTimer.cancelAndSet((function(){e._timeoutTimer=null,e.beginCompute()}),n.RECOMPUTE_TIME))}))),this.beginCompute())}}},{key:"beginCompute",value:function(){var e=this;this._computePromise=(0,Px.PG)((function(t){var n=e._editor.getModel();return n?function(e,t){var n=[],i=LL.OH.ordered(e).reverse().map((function(i){return Promise.resolve(i.provideDocumentColors(e,t)).then((function(e){if(Array.isArray(e)){var t,r=(0,Tr.Z)(e);try{for(r.s();!(t=r.n()).done;){var o=t.value;n.push({colorInfo:o,provider:i})}}catch(a){r.e(a)}finally{r.f()}}}))}));return Promise.all(i).then((function(){return n}))}(n,t):Promise.resolve([])})),this._computePromise.then((function(t){e.updateDecorations(t),e.updateColorDecorators(t),e._computePromise=null}),yx.dL)}},{key:"stop",value:function(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}},{key:"updateDecorations",value:function(e){var t=this,n=e.map((function(e){return{range:{startLineNumber:e.colorInfo.range.startLineNumber,startColumn:e.colorInfo.range.startColumn,endLineNumber:e.colorInfo.range.endLineNumber,endColumn:e.colorInfo.range.endColumn},options:Hx.qx.EMPTY}}));this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,n),this._colorDatas=new Map,this._decorationsIds.forEach((function(n,i){return t._colorDatas.set(n,e[i])}))}},{key:"updateColorDecorators",value:function(e){for(var t=this,n=[],i={},r=0;r<e.length&&n.length<500;r++){var o=e[r].colorInfo.color,a=o.red,s=o.green,u=o.blue,l=o.alpha,c=new SN.VS(Math.round(255*a),Math.round(255*s),Math.round(255*u),l),d=(0,mN.vp)("rgba(".concat(c.r,",").concat(c.g,",").concat(c.b,",").concat(c.a,")")).toString(16),h="rgba(".concat(c.r,", ").concat(c.g,", ").concat(c.b,", ").concat(c.a,")"),f="colorBox-"+d;this._decorationsTypes.has(f)||i[f]||this._codeEditorService.registerDecorationType(f,{before:{contentText:" ",border:"solid 0.1em #000",margin:"0.1em 0.2em 0 0.2em",width:"0.8em",height:"0.8em",backgroundColor:h},dark:{before:{border:"solid 0.1em #eee"}}},void 0,this._editor),i[f]=!0,n.push({range:{startLineNumber:e[r].colorInfo.range.startLineNumber,startColumn:e[r].colorInfo.range.startColumn,endLineNumber:e[r].colorInfo.range.endLineNumber,endColumn:e[r].colorInfo.range.endColumn},options:this._codeEditorService.resolveDecorationOptions(f,!0)})}this._decorationsTypes.forEach((function(e){i[e]||t._codeEditorService.removeDecorationType(e)})),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,n)}},{key:"removeAllDecorations",value:function(){var e=this;this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,[]),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,[]),this._decorationsTypes.forEach((function(t){e._codeEditorService.removeDecorationType(t)}))}},{key:"getColorData",value:function(e){var t=this,n=this._editor.getModel();if(!n)return null;var i=n.getDecorationsInRange(Fx.e.fromPositions(e,e)).filter((function(e){return t._colorDatas.has(e.id)}));return 0===i.length?null:this._colorDatas.get(i[0].id)}}],[{key:"get",value:function(e){return e.getContribution(this.ID)}}]),n}(Rx.JT);DN.ID="editor.contrib.colorDetector",DN.RECOMPUTE_TIME=1e3,DN=EN([NN(1,aL.$),NN(2,LN.Ui)],DN),(0,dx._K)(DN.ID,DN);var MN=n(49829),TN=function(){function e(t,n,r){(0,i.Z)(this,e),this.presentationIndex=r,this._onColorFlushed=new hE.Q5,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new hE.Q5,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new hE.Q5,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=t,this._color=t,this._colorPresentations=n}return(0,r.Z)(e,[{key:"color",get:function(){return this._color},set:function(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}},{key:"presentation",get:function(){return this.colorPresentations[this.presentationIndex]}},{key:"colorPresentations",get:function(){return this._colorPresentations},set:function(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}},{key:"selectNextColorPresentation",value:function(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}},{key:"guessColorPresentation",value:function(e,t){for(var n=0;n<this.colorPresentations.length;n++)if(t.toLowerCase()===this.colorPresentations[n].label){this.presentationIndex=n,this._onDidChangePresentation.fire(this.presentation);break}}},{key:"flushColor",value:function(){this._onColorFlushed.fire(this._color)}}]),e}(),ON=n(43257),IN=eE.$,AN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;(0,i.Z)(this,n),(a=t.call(this)).model=r,a.domNode=IN(".colorpicker-header"),eE.append(e,a.domNode),a.pickedColorNode=eE.append(a.domNode,IN(".picked-color"));var s=eE.append(a.domNode,IN(".original-color"));return s.style.backgroundColor=SN.Il.Format.CSS.format(a.model.originalColor)||"",a.backgroundColor=o.getColorTheme().getColor(zx.yJ)||SN.Il.white,a._register((0,Wx.Ic)((function(e,t){a.backgroundColor=e.getColor(zx.yJ)||SN.Il.white}))),a._register(eE.addDisposableListener(a.pickedColorNode,eE.EventType.CLICK,(function(){return a.model.selectNextColorPresentation()}))),a._register(eE.addDisposableListener(s,eE.EventType.CLICK,(function(){a.model.color=a.model.originalColor,a.model.flushColor()}))),a._register(r.onDidChangeColor(a.onDidChangeColor,(0,yL.Z)(a))),a._register(r.onDidChangePresentation(a.onDidChangePresentation,(0,yL.Z)(a))),a.pickedColorNode.style.backgroundColor=SN.Il.Format.CSS.format(r.color)||"",a.pickedColorNode.classList.toggle("light",r.color.rgba.a<.5?a.backgroundColor.isLighter():r.color.isLighter()),a}return(0,r.Z)(n,[{key:"onDidChangeColor",value:function(e){this.pickedColorNode.style.backgroundColor=SN.Il.Format.CSS.format(e)||"",this.pickedColorNode.classList.toggle("light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}},{key:"onDidChangePresentation",value:function(){this.pickedColorNode.textContent=this.model.presentation?this.model.presentation.label:""}}]),n}(Rx.JT),PN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).model=r,a.pixelRatio=o,a.domNode=IN(".colorpicker-body"),eE.append(e,a.domNode),a.saturationBox=new RN(a.domNode,a.model,a.pixelRatio),a._register(a.saturationBox),a._register(a.saturationBox.onDidChange(a.onDidSaturationValueChange,(0,yL.Z)(a))),a._register(a.saturationBox.onColorFlushed(a.flushColor,(0,yL.Z)(a))),a.opacityStrip=new FN(a.domNode,a.model),a._register(a.opacityStrip),a._register(a.opacityStrip.onDidChange(a.onDidOpacityChange,(0,yL.Z)(a))),a._register(a.opacityStrip.onColorFlushed(a.flushColor,(0,yL.Z)(a))),a.hueStrip=new jN(a.domNode,a.model),a._register(a.hueStrip),a._register(a.hueStrip.onDidChange(a.onDidHueChange,(0,yL.Z)(a))),a._register(a.hueStrip.onColorFlushed(a.flushColor,(0,yL.Z)(a))),a}return(0,r.Z)(n,[{key:"flushColor",value:function(){this.model.flushColor()}},{key:"onDidSaturationValueChange",value:function(e){var t=e.s,n=e.v,i=this.model.color.hsva;this.model.color=new SN.Il(new SN.tx(i.h,t,n,i.a))}},{key:"onDidOpacityChange",value:function(e){var t=this.model.color.hsva;this.model.color=new SN.Il(new SN.tx(t.h,t.s,t.v,e))}},{key:"onDidHueChange",value:function(e){var t=this.model.color.hsva,n=360*(1-e);this.model.color=new SN.Il(new SN.tx(360===n?0:n,t.s,t.v,t.a))}},{key:"layout",value:function(){this.saturationBox.layout(),this.opacityStrip.layout(),this.hueStrip.layout()}}]),n}(Rx.JT),RN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).model=r,a.pixelRatio=o,a._onDidChange=new hE.Q5,a.onDidChange=a._onDidChange.event,a._onColorFlushed=new hE.Q5,a.onColorFlushed=a._onColorFlushed.event,a.domNode=IN(".saturation-wrap"),eE.append(e,a.domNode),a.canvas=document.createElement("canvas"),a.canvas.className="saturation-box",eE.append(a.domNode,a.canvas),a.selection=IN(".saturation-selection"),eE.append(a.domNode,a.selection),a.layout(),a._register(eE.addDisposableGenericMouseDownListner(a.domNode,(function(e){return a.onMouseDown(e)}))),a._register(a.model.onDidChangeColor(a.onDidChangeColor,(0,yL.Z)(a))),a.monitor=null,a}return(0,r.Z)(n,[{key:"onMouseDown",value:function(e){var t=this;this.monitor=this._register(new dE.Z);var n=eE.getDomNodePagePosition(this.domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.buttons,dE.e,(function(e){return t.onDidChangePosition(e.posx-n.left,e.posy-n.top)}),(function(){return null}));var i=eE.addDisposableGenericMouseUpListner(document,(function(){t._onColorFlushed.fire(),i.dispose(),t.monitor&&(t.monitor.stopMonitoring(!0),t.monitor=null)}),!0)}},{key:"onDidChangePosition",value:function(e,t){var n=Math.max(0,Math.min(1,e/this.width)),i=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(n,i),this._onDidChange.fire({s:n,v:i})}},{key:"layout",value:function(){this.width=this.domNode.offsetWidth,this.height=this.domNode.offsetHeight,this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio,this.paint();var e=this.model.color.hsva;this.paintSelection(e.s,e.v)}},{key:"paint",value:function(){var e=this.model.color.hsva,t=new SN.Il(new SN.tx(e.h,1,1,1)),n=this.canvas.getContext("2d"),i=n.createLinearGradient(0,0,this.canvas.width,0);i.addColorStop(0,"rgba(255, 255, 255, 1)"),i.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),i.addColorStop(1,"rgba(255, 255, 255, 0)");var r=n.createLinearGradient(0,0,0,this.canvas.height);r.addColorStop(0,"rgba(0, 0, 0, 0)"),r.addColorStop(1,"rgba(0, 0, 0, 1)"),n.rect(0,0,this.canvas.width,this.canvas.height),n.fillStyle=SN.Il.Format.CSS.format(t),n.fill(),n.fillStyle=i,n.fill(),n.fillStyle=r,n.fill()}},{key:"paintSelection",value:function(e,t){this.selection.style.left="".concat(e*this.width,"px"),this.selection.style.top="".concat(this.height-t*this.height,"px")}},{key:"onDidChangeColor",value:function(){this.monitor&&this.monitor.isMonitoring()||this.paint()}}]),n}(Rx.JT),ZN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this)).model=r,o._onDidChange=new hE.Q5,o.onDidChange=o._onDidChange.event,o._onColorFlushed=new hE.Q5,o.onColorFlushed=o._onColorFlushed.event,o.domNode=eE.append(e,IN(".strip")),o.overlay=eE.append(o.domNode,IN(".overlay")),o.slider=eE.append(o.domNode,IN(".slider")),o.slider.style.top="0px",o._register(eE.addDisposableGenericMouseDownListner(o.domNode,(function(e){return o.onMouseDown(e)}))),o.layout(),o}return(0,r.Z)(n,[{key:"layout",value:function(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;var e=this.getValue(this.model.color);this.updateSliderPosition(e)}},{key:"onMouseDown",value:function(e){var t=this,n=this._register(new dE.Z),i=eE.getDomNodePagePosition(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),n.startMonitoring(e.target,e.buttons,dE.e,(function(e){return t.onDidChangeTop(e.posy-i.top)}),(function(){return null}));var r=eE.addDisposableGenericMouseUpListner(document,(function(){t._onColorFlushed.fire(),r.dispose(),n.stopMonitoring(!0),t.domNode.classList.remove("grabbing")}),!0)}},{key:"onDidChangeTop",value:function(e){var t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}},{key:"updateSliderPosition",value:function(e){this.slider.style.top="".concat((1-e)*this.height,"px")}}]),n}(Rx.JT),FN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,e,r)).domNode.classList.add("opacity-strip"),o._register(r.onDidChangeColor(o.onDidChangeColor,(0,yL.Z)(o))),o.onDidChangeColor(o.model.color),o}return(0,r.Z)(n,[{key:"onDidChangeColor",value:function(e){var t=e.rgba,n=t.r,i=t.g,r=t.b,o=new SN.Il(new SN.VS(n,i,r,1)),a=new SN.Il(new SN.VS(n,i,r,0));this.overlay.style.background="linear-gradient(to bottom, ".concat(o," 0%, ").concat(a," 100%)")}},{key:"getValue",value:function(e){return e.hsva.a}}]),n}(ZN),jN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,e,r)).domNode.classList.add("hue-strip"),o}return(0,r.Z)(n,[{key:"getValue",value:function(e){return 1-e.hsva.h/360}}]),n}(ZN),HN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;(0,i.Z)(this,n),(s=t.call(this)).model=r,s.pixelRatio=o,s._register((0,iL.fX)((function(){return s.layout()})));var u=IN(".colorpicker-widget");e.appendChild(u);var l=new AN(u,s.model,a);return s.body=new PN(u,s.model,s.pixelRatio),s._register(l),s._register(s.body),s}return(0,r.Z)(n,[{key:"layout",value:function(){this.body.layout()}}]),n}(ON.$),BN=function(){function e(t,n,r,o,a){var s=this;(0,i.Z)(this,e),this._computer=t,this._state=0,this._hoverTime=a,this._firstWaitScheduler=new Px.pY((function(){return s._triggerAsyncComputation()}),0),this._secondWaitScheduler=new Px.pY((function(){return s._triggerSyncComputation()}),0),this._loadingMessageScheduler=new Px.pY((function(){return s._showLoadingMessage()}),0),this._asyncComputationPromise=null,this._asyncComputationPromiseDone=!1,this._completeCallback=n,this._errorCallback=r,this._progressCallback=o}return(0,r.Z)(e,[{key:"setHoverTime",value:function(e){this._hoverTime=e}},{key:"_firstWaitTime",value:function(){return this._hoverTime/2}},{key:"_secondWaitTime",value:function(){return this._hoverTime/2}},{key:"_loadingMessageTime",value:function(){return 3*this._hoverTime}},{key:"_triggerAsyncComputation",value:function(){var e=this;this._state=2,this._secondWaitScheduler.schedule(this._secondWaitTime()),this._computer.computeAsync?(this._asyncComputationPromiseDone=!1,this._asyncComputationPromise=(0,Px.PG)((function(t){return e._computer.computeAsync(t)})),this._asyncComputationPromise.then((function(t){e._asyncComputationPromiseDone=!0,e._withAsyncResult(t)}),(function(t){return e._onError(t)}))):this._asyncComputationPromiseDone=!0}},{key:"_triggerSyncComputation",value:function(){this._computer.computeSync&&this._computer.onResult(this._computer.computeSync(),!0),this._asyncComputationPromiseDone?(this._state=0,this._onComplete(this._computer.getResult())):(this._state=3,this._onProgress(this._computer.getResult()))}},{key:"_showLoadingMessage",value:function(){3===this._state&&this._onProgress(this._computer.getResultWithLoadingMessage())}},{key:"_withAsyncResult",value:function(e){e&&this._computer.onResult(e,!1),3===this._state&&(this._state=0,this._onComplete(this._computer.getResult()))}},{key:"_onComplete",value:function(e){this._completeCallback(e)}},{key:"_onError",value:function(e){this._errorCallback?this._errorCallback(e):(0,yx.dL)(e)}},{key:"_onProgress",value:function(e){this._progressCallback(e)}},{key:"start",value:function(e){if(0===e)0===this._state&&(this._state=1,this._firstWaitScheduler.schedule(this._firstWaitTime()),this._loadingMessageScheduler.schedule(this._loadingMessageTime()));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation()}}},{key:"cancel",value:function(){this._loadingMessageScheduler.cancel(),1===this._state&&this._firstWaitScheduler.cancel(),2===this._state&&(this._secondWaitScheduler.cancel(),this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null)),3===this._state&&this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null),this._state=0}}]),e}(),zN=n(61727),WN=eE.$,VN=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this)).containerDomNode=document.createElement("div"),e.containerDomNode.className="monaco-hover",e.containerDomNode.tabIndex=0,e.containerDomNode.setAttribute("role","tooltip"),e.contentsDomNode=document.createElement("div"),e.contentsDomNode.className="monaco-hover-content",e._scrollbar=e._register(new zN.s$(e.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),e.containerDomNode.appendChild(e._scrollbar.getDomNode()),e}return(0,r.Z)(n,[{key:"onContentsChanged",value:function(){this._scrollbar.scanDomNode()}}]),n}(Rx.JT);var YN=n(50816),UN=n(9696),KN=n(55585),qN=n(67537);function GN(e){if(e){"string"===typeof e&&(e=SL.o.file(e));var t=(0,ME.EZ)(e)||(e.scheme===KN.lg.file?e.fsPath:e.path);return rL.ED&&(0,qN.vY)(t)?$N(t):t}}function $N(e){return(0,qN.oP)(e)?e.charAt(0).toUpperCase()+e.slice(1):e}var QN=n(67404),XN=n(10405),JN=n(40782),eD=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},tD=function(e,t){return function(n,i){t(n,i,e)}},nD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l,c,d,h){var f,p;return(0,i.Z)(this,n),(p=t.call(this,e,Object.assign(Object.assign({},o.getRawOptions()),{overflowWidgetsDomNode:o.getOverflowWidgetsDomNode()}),{},a,s,u,l,c,d,h))._parentEditor=o,p._overwriteOptions=r,(0,YL.Z)((f=(0,yL.Z)(p),(0,UL.Z)(n.prototype)),"updateOptions",f).call(f,p._overwriteOptions),p._register(o.onDidChangeConfiguration((function(e){return p._onParentConfigurationChanged(e)}))),p}return(0,r.Z)(n,[{key:"getParentEditor",value:function(){return this._parentEditor}},{key:"_onParentConfigurationChanged",value:function(e){(0,YL.Z)((0,UL.Z)(n.prototype),"updateOptions",this).call(this,this._parentEditor.getRawOptions()),(0,YL.Z)((0,UL.Z)(n.prototype),"updateOptions",this).call(this,this._overwriteOptions)}},{key:"updateOptions",value:function(e){XN.jB(this._overwriteOptions,e,!0),(0,YL.Z)((0,UL.Z)(n.prototype),"updateOptions",this).call(this,this._overwriteOptions)}}]),n}(cx.Gm);nD=eD([tD(3,JL.TG),tD(4,aL.$),tD(5,IL.H),tD(6,gx.i6),tD(7,Wx.XE),tD(8,NE.lT),tD(9,JN.F)],nD);var iD=n(2523),rD=n(12394),oD=new SN.Il(new SN.VS(0,122,204)),aD={showArrow:!0,showFrame:!0,className:"",frameColor:oD,arrowColor:oD,keepEditorSelection:!1},sD=function(){function e(t,n,r,o,a,s){(0,i.Z)(this,e),this.id="",this.domNode=t,this.afterLineNumber=n,this.afterColumn=r,this.heightInLines=o,this._onDomNodeTop=a,this._onComputedHeight=s}return(0,r.Z)(e,[{key:"onDomNodeTop",value:function(e){this._onDomNodeTop(e)}},{key:"onComputedHeight",value:function(e){this._onComputedHeight(e)}}]),e}(),uD=function(){function e(t,n){(0,i.Z)(this,e),this._id=t,this._domNode=n}return(0,r.Z)(e,[{key:"getId",value:function(){return this._id}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return null}}]),e}(),lD=function(){function e(t){(0,i.Z)(this,e),this._editor=t,this._ruleName=e._IdGenerator.nextId(),this._decorations=[],this._color=null,this._height=-1}return(0,r.Z)(e,[{key:"dispose",value:function(){this.hide(),eE.removeCSSRulesContainingSelector(this._ruleName)}},{key:"color",set:function(e){this._color!==e&&(this._color=e,this._updateStyle())}},{key:"height",set:function(e){this._height!==e&&(this._height=e,this._updateStyle())}},{key:"_updateStyle",value:function(){eE.removeCSSRulesContainingSelector(this._ruleName),eE.createCSSRule(".monaco-editor ".concat(this._ruleName),"border-style: solid; border-color: transparent; border-bottom-color: ".concat(this._color,"; border-width: ").concat(this._height,"px; bottom: -").concat(this._height,"px; margin-left: -").concat(this._height,"px; "))}},{key:"show",value:function(e){this._decorations=this._editor.deltaDecorations(this._decorations,[{range:Fx.e.fromPositions(e),options:{className:this._ruleName,stickiness:1}}])}},{key:"hide",value:function(){this._editor.deltaDecorations(this._decorations,[])}}]),e}();lD._IdGenerator=new rD.R(".arrow-decoration-");var cD=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.Z)(this,e),this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._positionMarkerId=[],this._viewZone=null,this._disposables=new Rx.SL,this.container=null,this._isShowing=!1,this.editor=t,this.options=XN.I8(r),XN.jB(this.options,aD,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange((function(e){var t=n._getWidth(e);n.domNode.style.width=t+"px",n.domNode.style.left=n._getLeft(e)+"px",n._onWidth(t)})))}return(0,r.Z)(e,[{key:"dispose",value:function(){var e=this;this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones((function(t){e._viewZone&&t.removeZone(e._viewZone.id),e._viewZone=null})),this.editor.deltaDecorations(this._positionMarkerId,[]),this._positionMarkerId=[],this._disposables.dispose()}},{key:"create",value:function(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new lD(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}},{key:"style",value:function(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}},{key:"_applyStyles",value:function(){if(this.container&&this.options.frameColor){var e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){var t=this.options.arrowColor.toString();this._arrow.color=t}}},{key:"_getWidth",value:function(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}},{key:"_getLeft",value:function(e){return e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?e.minimap.minimapWidth:0}},{key:"_onViewZoneTop",value:function(e){this.domNode.style.top=e+"px"}},{key:"_onViewZoneHeight",value:function(e){if(this.domNode.style.height="".concat(e,"px"),this.container){var t=e-this._decoratingElementsHeight();this.container.style.height="".concat(t,"px");var n=this.editor.getLayoutInfo();this._doLayout(t,this._getWidth(n))}this._resizeSash&&this._resizeSash.layout()}},{key:"position",get:function(){var e=(0,dt.Z)(this._positionMarkerId,1)[0];if(e){var t=this.editor.getModel();if(t){var n=t.getDecorationRange(e);if(n)return n.getStartPosition()}}}},{key:"show",value:function(e,t){var n=Fx.e.isIRange(e)?Fx.e.lift(e):Fx.e.fromPositions(e);this._isShowing=!0,this._showImpl(n,t),this._isShowing=!1,this._positionMarkerId=this.editor.deltaDecorations(this._positionMarkerId,[{range:n,options:Hx.qx.EMPTY}])}},{key:"hide",value:function(){var e=this;this._viewZone&&(this.editor.changeViewZones((function(t){e._viewZone&&t.removeZone(e._viewZone.id)})),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._arrow&&this._arrow.hide()}},{key:"_decoratingElementsHeight",value:function(){var e=this.editor.getOption(55),t=0;this.options.showArrow&&(t+=2*Math.round(e/3));this.options.showFrame&&(t+=2*Math.round(e/9));return t}},{key:"_showImpl",value:function(e,t){var n=this,i=e.getStartPosition(),r=this.editor.getLayoutInfo(),o=this._getWidth(r);this.domNode.style.width="".concat(o,"px"),this.domNode.style.left=this._getLeft(r)+"px";var a=document.createElement("div");a.style.overflow="hidden";var s=this.editor.getOption(55),u=Math.max(12,this.editor.getLayoutInfo().height/s*.8);t=Math.min(t,u);var l=0,c=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(s/3),this._arrow.height=l,this._arrow.show(i)),this.options.showFrame&&(c=Math.round(s/9)),this.editor.changeViewZones((function(e){n._viewZone&&e.removeZone(n._viewZone.id),n._overlayWidget&&(n.editor.removeOverlayWidget(n._overlayWidget),n._overlayWidget=null),n.domNode.style.top="-1000px",n._viewZone=new sD(a,i.lineNumber,i.column,t,(function(e){return n._onViewZoneTop(e)}),(function(e){return n._onViewZoneHeight(e)})),n._viewZone.id=e.addZone(n._viewZone),n._overlayWidget=new uD("vs.editor.contrib.zoneWidget"+n._viewZone.id,n.domNode),n.editor.addOverlayWidget(n._overlayWidget)})),this.container&&this.options.showFrame){var d=this.options.frameWidth?this.options.frameWidth:c;this.container.style.borderTopWidth=d+"px",this.container.style.borderBottomWidth=d+"px"}var h=t*s-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+"px",this.container.style.height=h+"px",this.container.style.overflow="hidden"),this._doLayout(h,o),this.options.keepEditorSelection||this.editor.setSelection(e);var f=this.editor.getModel();if(f){var p=e.endLineNumber+1;p<=f.getLineCount()?this.revealLine(p,!1):this.revealLine(f.getLineCount(),!0)}}},{key:"revealLine",value:function(e,t){t?this.editor.revealLineInCenter(e,0):this.editor.revealLine(e,0)}},{key:"setCssClass",value:function(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}},{key:"_onWidth",value:function(e){}},{key:"_doLayout",value:function(e,t){}},{key:"_relayout",value:function(e){var t=this;this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones((function(n){t._viewZone&&(t._viewZone.heightInLines=e,n.layoutZone(t._viewZone.id))}))}},{key:"_initSash",value:function(){var e,t=this;this._resizeSash||(this._resizeSash=this._disposables.add(new iD.g(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.hide(),this._resizeSash.state=0),this._disposables.add(this._resizeSash.onDidStart((function(n){t._viewZone&&(e={startY:n.startY,heightInLines:t._viewZone.heightInLines})}))),this._disposables.add(this._resizeSash.onDidEnd((function(){e=void 0}))),this._disposables.add(this._resizeSash.onDidChange((function(n){if(e){var i=(n.currentY-e.startY)/t.editor.getOption(55),r=i<0?Math.ceil(i):Math.floor(i),o=e.heightInLines+r;o>5&&o<35&&t._relayout(o)}}))))}},{key:"getHorizontalSashLeft",value:function(){return 0}},{key:"getHorizontalSashTop",value:function(){return(null===this.domNode.style.height?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}},{key:"getHorizontalSashWidth",value:function(){var e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}]),e}(),dD=n(61680),hD=n(85733),fD=n(84039),pD=n(31737),vD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,e,r))._actions=[],o._contextMenuProvider=r.contextMenuProvider,o.actions=r.actions||[],o.actionProvider=r.actionProvider,o.menuClassName=r.menuClassName||"",o.menuAsChild=!!r.menuAsChild,o}return(0,r.Z)(n,[{key:"menuOptions",get:function(){return this._menuOptions},set:function(e){this._menuOptions=e}},{key:"actions",get:function(){return this.actionProvider?this.actionProvider.getActions():this._actions},set:function(e){this._actions=e}},{key:"show",value:function(){var e=this;(0,YL.Z)((0,UL.Z)(n.prototype),"show",this).call(this),this.element.classList.add("active"),this._contextMenuProvider.showContextMenu({getAnchor:function(){return e.element},getActions:function(){return e.actions},getActionsContext:function(){return e.menuOptions?e.menuOptions.context:null},getActionViewItem:function(t){return e.menuOptions&&e.menuOptions.actionViewItemProvider?e.menuOptions.actionViewItemProvider(t):void 0},getKeyBinding:function(t){return e.menuOptions&&e.menuOptions.getKeyBinding?e.menuOptions.getKeyBinding(t):void 0},getMenuClassName:function(){return e.menuClassName},onHide:function(){return e.onHide()},actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this.menuAsChild?this.element:void 0})}},{key:"hide",value:function(){(0,YL.Z)((0,UL.Z)(n.prototype),"hide",this).call(this)}},{key:"onHide",value:function(){this.hide(),this.element.classList.remove("active")}}]),n}(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;(0,i.Z)(this,n),(o=t.call(this))._onDidChangeVisibility=new hE.Q5,o.onDidChangeVisibility=o._onDidChangeVisibility.event,o._element=(0,eE.append)(e,(0,eE.$)(".monaco-dropdown")),o._label=(0,eE.append)(o._element,(0,eE.$)(".dropdown-label"));var a=r.labelRenderer;a||(a=function(e){return e.textContent=r.label||"",null});for(var s=0,u=[eE.EventType.CLICK,eE.EventType.MOUSE_DOWN,fE.t.Tap];s<u.length;s++){var l=u[s];o._register((0,eE.addDisposableListener)(o.element,l,(function(e){return eE.EventHelper.stop(e,!0)})))}for(var c=0,d=[eE.EventType.MOUSE_DOWN,fE.t.Tap];c<d.length;c++){var h=d[c];o._register((0,eE.addDisposableListener)(o._label,h,(function(e){e instanceof MouseEvent&&e.detail>1||(o.visible?o.hide():o.show())})))}o._register((0,eE.addDisposableListener)(o._label,eE.EventType.KEY_UP,(function(e){var t=new pD.y(e);(t.equals(3)||t.equals(10))&&(eE.EventHelper.stop(e,!0),o.visible?o.hide():o.show())})));var f=a(o._label);return f&&o._register(f),o._register(fE.o.addTarget(o._label)),o}return(0,r.Z)(n,[{key:"element",get:function(){return this._element}},{key:"show",value:function(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}},{key:"hide",value:function(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}},{key:"dispose",value:function(){(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}]),n}(tE.Wi)),gD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Object.create(null);return(0,i.Z)(this,n),(a=t.call(this,null,e,s)).actionItem=null,a._onDidChangeVisibility=a._register(new hE.Q5),a.menuActionsOrProvider=r,a.contextMenuProvider=o,a.options=s,a.options.actionRunner&&(a.actionRunner=a.options.actionRunner),a}return(0,r.Z)(n,[{key:"render",value:function(e){var t=this;this.actionItem=e;var n=Array.isArray(this.menuActionsOrProvider),i={contextMenuProvider:this.contextMenuProvider,labelRenderer:function(e){var n;t.element=(0,eE.append)(e,(0,eE.$)("a.action-label"));var i=[];return"string"===typeof t.options.classNames?i=t.options.classNames.split(/\s+/g).filter((function(e){return!!e})):t.options.classNames&&(i=t.options.classNames),i.find((function(e){return"icon"===e}))||i.push("codicon"),(n=t.element.classList).add.apply(n,(0,Lt.Z)(i)),t.element.setAttribute("role","button"),t.element.setAttribute("aria-haspopup","true"),t.element.setAttribute("aria-expanded","false"),t.element.title=t._action.label||"",null},menuAsChild:this.options.menuAsChild,actions:n?this.menuActionsOrProvider:void 0,actionProvider:n?void 0:this.menuActionsOrProvider};if(this.dropdownMenu=this._register(new vD(e,i)),this._register(this.dropdownMenu.onDidChangeVisibility((function(e){var n;null===(n=t.element)||void 0===n||n.setAttribute("aria-expanded","".concat(e)),t._onDidChangeVisibility.fire(e)}))),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){var r=this;this.dropdownMenu.menuOptions=Object.assign(Object.assign({},this.dropdownMenu.menuOptions),{get anchorAlignment(){return r.options.anchorAlignmentProvider()}})}this.updateEnabled()}},{key:"setActionContext",value:function(e){(0,YL.Z)((0,UL.Z)(n.prototype),"setActionContext",this).call(this,e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}},{key:"updateEnabled",value:function(){var e,t,n=!this.getAction().enabled;null===(e=this.actionItem)||void 0===e||e.classList.toggle("disabled",n),null===(t=this.element)||void 0===t||t.classList.toggle("disabled",n)}}]),n}(fD.Y),mD=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},_D=function(e,t){return function(n,i){t(n,i,e)}};function yD(e,t,n,i,r,o){var a=e.getActions(t);return function(e,t,n){var i,r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"navigation",a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Number.MAX_SAFE_INTEGER,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:function(){return!1};Array.isArray(t)?(i=t,r=t):(i=t.primary,r=t.secondary);var u,l=new Set,c=(0,Tr.Z)(e);try{for(c.s();!(u=c.n()).done;){var d=(0,dt.Z)(u.value,2),h=d[0],f=d[1],p=void 0;h===o?p=i:(p=r).length>0&&p.push(new tE.Z0);var v,g=(0,Tr.Z)(f);try{for(g.s();!(v=g.n()).done;){var m=v.value;n&&(m=m instanceof Vx.U8&&m.alt?m.alt:m);var _=p.push(m);m instanceof tE.wY&&l.add({group:h,action:m,index:_-1})}}catch(D){g.e(D)}finally{g.f()}}}catch(D){c.e(D)}finally{c.f()}var y,b=(0,Tr.Z)(l);try{for(b.s();!(y=b.n()).done;){var w=y.value,C=w.group,k=w.action,S=w.index,x=C===o?i:r,L=k.actions;(L.length<=1||x.length+L.length-2<=a)&&s(k,C,x.length)&&x.splice.apply(x,[S,1].concat((0,Lt.Z)(L)))}}catch(D){b.e(D)}finally{b.f()}if(i!==r&&i.length>a){var E,N=i.splice(a,i.length-a);(E=r).unshift.apply(E,(0,Lt.Z)(N).concat([new tE.Z0]))}}(a,n,!1,i,r,o),function(e){var t,n=new Rx.SL,i=(0,Tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r,o=(0,dt.Z)(t.value,2)[1],a=(0,Tr.Z)(o);try{for(a.s();!(r=a.n()).done;){var s=r.value;n.add(s)}}catch(u){a.e(u)}finally{a.f()}}}catch(u){i.e(u)}finally{i.f()}return n}(a)}var bD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,void 0,e,{icon:!(!e.class&&!e.item.icon),label:!e.class&&!e.item.icon}))._keybindingService=r,a._notificationService=o,a._wantsAltCommand=!1,a._itemClassDispose=a._register(new Rx.XK),a._altKey=eE.ModifierKeyEmitter.getInstance(),a}return(0,r.Z)(n,[{key:"_menuItemAction",get:function(){return this._action}},{key:"_commandAction",get:function(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}},{key:"onClick",value:function(e){var t=this;e.preventDefault(),e.stopPropagation(),this.actionRunner.run(this._commandAction,this._context).catch((function(e){return t._notificationService.error(e)}))}},{key:"render",value:function(e){var t=this;(0,YL.Z)((0,UL.Z)(n.prototype),"render",this).call(this,e),e.classList.add("menu-entry"),this._updateItemClass(this._menuItemAction.item);var i=!1,r=this._altKey.keyStatus.altKey||(rL.ED||rL.IJ)&&this._altKey.keyStatus.shiftKey,o=function(){var e=i&&r;e!==t._wantsAltCommand&&(t._wantsAltCommand=e,t.updateLabel(),t.updateTooltip(),t.updateClass())};this._menuItemAction.alt&&this._register(this._altKey.event((function(e){r=e.altKey||(rL.ED||rL.IJ)&&e.shiftKey,o()}))),this._register((0,dD.jt)(e,"mouseleave")((function(e){i=!1,o()}))),this._register((0,dD.jt)(e,"mouseenter")((function(e){i=!0,o()})))}},{key:"updateLabel",value:function(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}},{key:"updateTooltip",value:function(){if(this.label){var e=this._keybindingService.lookupKeybinding(this._commandAction.id),t=e&&e.getLabel(),n=this._commandAction.tooltip||this._commandAction.label,i=t?(0,hx.N)("titleAndKb","{0} ({1})",n,t):n;if(!this._wantsAltCommand&&this._menuItemAction.alt){var r=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,o=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id),a=o&&o.getLabel(),s=a?(0,hx.N)("titleAndKb","{0} ({1})",r,a):r;i+="\n[".concat(hD.xo.modifierLabels[rL.OS].altKey,"] ").concat(s)}this.label.title=i}}},{key:"updateClass",value:function(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.item))}},{key:"_updateItemClass",value:function(e){var t;this._itemClassDispose.value=void 0;var n=this.element,i=this.label;if(n&&i){var r=this._commandAction.checked&&(null===(t=e.toggled)||void 0===t?void 0:t.icon)?e.toggled.icon:e.icon;if(r)if(Wx.kS.isThemeIcon(r)){var o,a=Wx.kS.asClassNameArray(r);(o=i.classList).add.apply(o,(0,Lt.Z)(a)),this._itemClassDispose.value=(0,Rx.OF)((function(){var e;(e=i.classList).remove.apply(e,(0,Lt.Z)(a))}))}else r.light&&i.style.setProperty("--menu-entry-icon-light",(0,eE.asCSSUrl)(r.light)),r.dark&&i.style.setProperty("--menu-entry-icon-dark",(0,eE.asCSSUrl)(r.dark)),i.classList.add("icon"),this._itemClassDispose.value=(0,Rx.OF)((function(){i.classList.remove("icon"),i.style.removeProperty("--menu-entry-icon-light"),i.style.removeProperty("--menu-entry-icon-dark")}))}}}]),n}(fD.g);bD=mD([_D(1,iE.d),_D(2,NE.lT)],bD);var wD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){return(0,i.Z)(this,n),t.call(this,e,{getActions:function(){return e.actions}},r,{menuAsChild:!0,classNames:Wx.kS.isThemeIcon(e.item.icon)?Wx.kS.asClassName(e.item.icon):void 0})}return(0,r.Z)(n,[{key:"render",value:function(e){if((0,YL.Z)((0,UL.Z)(n.prototype),"render",this).call(this,e),this.element){e.classList.add("menu-entry");var t=this._action.item.icon;t&&!Wx.kS.isThemeIcon(t)&&(this.element.classList.add("icon"),t.light&&this.element.style.setProperty("--menu-entry-icon-light",(0,eE.asCSSUrl)(t.light)),t.dark&&this.element.style.setProperty("--menu-entry-icon-dark",(0,eE.asCSSUrl)(t.dark)))}}}]),n}(gD);function CD(e,t){return t instanceof Vx.U8?e.createInstance(bD,t):t instanceof Vx.NZ?e.createInstance(wD,t):void 0}wD=mD([_D(1,nE.i)],wD);var kD,SD=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},xD=function(e,t){return function(n,i){t(n,i,e)}},LD=(0,JL.yh)("IPeekViewService");(0,uN.z)(LD,function(){function e(){(0,i.Z)(this,e),this._widgets=new Map}return(0,r.Z)(e,[{key:"addExclusiveWidget",value:function(e,t){var n=this,i=this._widgets.get(e);i&&(i.listener.dispose(),i.widget.dispose());this._widgets.set(e,{widget:t,listener:t.onDidClose((function(){var i=n._widgets.get(e);i&&i.widget===t&&(i.listener.dispose(),n._widgets.delete(e))}))})}}]),e}()),function(e){e.inPeekEditor=new gx.uy("inReferenceSearchEditor",!0,hx.N("inReferenceSearchEditor","Whether the current code editor is embedded inside peek")),e.notInPeekEditor=e.inPeekEditor.toNegated()}(kD||(kD={}));var ED=function(){function e(t,n){(0,i.Z)(this,e),t instanceof nD&&kD.inPeekEditor.bindTo(n)}return(0,r.Z)(e,[{key:"dispose",value:function(){}}]),e}();ED.ID="editor.contrib.referenceController",ED=SD([xD(1,gx.i6)],ED),(0,dx._K)(ED.ID,ED);var ND={headerBackgroundColor:SN.Il.white,primaryHeadingColor:SN.Il.fromHex("#333333"),secondaryHeadingColor:SN.Il.fromHex("#6c6c6cb3")},DD=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,e,r)).instantiationService=o,a._onDidClose=new hE.Q5,a.onDidClose=a._onDidClose.event,XN.jB(a.options,ND,!1),a}return(0,r.Z)(n,[{key:"dispose",value:function(){this.disposed||(this.disposed=!0,(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this),this._onDidClose.fire(this))}},{key:"style",value:function(e){var t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),(0,YL.Z)((0,UL.Z)(n.prototype),"style",this).call(this,e)}},{key:"_applyStyles",value:function(){(0,YL.Z)((0,UL.Z)(n.prototype),"_applyStyles",this).call(this);var e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}},{key:"_fillContainer",value:function(e){this.setCssClass("peekview-widget"),this._headElement=eE.$(".head"),this._bodyElement=eE.$(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}},{key:"_fillHead",value:function(e,t){var n=this,i=eE.$(".peekview-title");eE.append(this._headElement,i),eE.addStandardDisposableListener(i,"click",(function(e){return n._onTitleClick(e)})),this._fillTitleIcon(i),this._primaryHeading=eE.$("span.filename"),this._secondaryHeading=eE.$("span.dirname"),this._metaHeading=eE.$("span.meta"),eE.append(i,this._primaryHeading,this._secondaryHeading,this._metaHeading);var r=eE.$(".peekview-actions");eE.append(this._headElement,r);var o=this._getActionBarOptions();this._actionbarWidget=new QN.o(r,o),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new tE.aU("peekview.close",hx.N("label.close","Close"),pE.lA.close.classNames,!0,(function(){return n.dispose(),Promise.resolve()})),{label:!1,icon:!0})}},{key:"_fillTitleIcon",value:function(e){}},{key:"_getActionBarOptions",value:function(){return{actionViewItemProvider:CD.bind(void 0,this.instantiationService),orientation:0}}},{key:"_onTitleClick",value:function(e){}},{key:"setTitle",value:function(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute("aria-label",e),t?this._secondaryHeading.innerText=t:eE.clearNode(this._secondaryHeading))}},{key:"setMetaTitle",value:function(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,eE.show(this._metaHeading)):eE.hide(this._metaHeading))}},{key:"_doLayout",value:function(e,t){if(!this._isShowing&&e<0)this.dispose();else{var n=Math.ceil(1.2*this.editor.getOption(55)),i=Math.round(e-(n+2));this._doLayoutHead(n,t),this._doLayoutBody(i,t)}}},{key:"_doLayoutHead",value:function(e,t){this._headElement&&(this._headElement.style.height="".concat(e,"px"),this._headElement.style.lineHeight=this._headElement.style.height)}},{key:"_doLayoutBody",value:function(e,t){this._bodyElement&&(this._bodyElement.style.height="".concat(e,"px"))}}]),n}(cD);DD=SD([xD(2,JL.TG)],DD);var MD,TD=(0,zx.P6)("peekViewTitle.background",{dark:"#1E1E1E",light:"#FFFFFF",hc:"#0C141F"},hx.N("peekViewTitleBackground","Background color of the peek view title area.")),OD=(0,zx.P6)("peekViewTitleLabel.foreground",{dark:"#FFFFFF",light:"#333333",hc:"#FFFFFF"},hx.N("peekViewTitleForeground","Color of the peek view title.")),ID=(0,zx.P6)("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161e6",hc:"#FFFFFF99"},hx.N("peekViewTitleInfoForeground","Color of the peek view title info.")),AD=(0,zx.P6)("peekView.border",{dark:"#007acc",light:"#007acc",hc:zx.lR},hx.N("peekViewBorder","Color of the peek view borders and arrow.")),PD=(0,zx.P6)("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hc:SN.Il.black},hx.N("peekViewResultsBackground","Background color of the peek view result list.")),RD=(0,zx.P6)("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hc:SN.Il.white},hx.N("peekViewResultsMatchForeground","Foreground color for line nodes in the peek view result list.")),ZD=(0,zx.P6)("peekViewResult.fileForeground",{dark:SN.Il.white,light:"#1E1E1E",hc:SN.Il.white},hx.N("peekViewResultsFileForeground","Foreground color for file nodes in the peek view result list.")),FD=(0,zx.P6)("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hc:null},hx.N("peekViewResultsSelectionBackground","Background color of the selected entry in the peek view result list.")),jD=(0,zx.P6)("peekViewResult.selectionForeground",{dark:SN.Il.white,light:"#6C6C6C",hc:SN.Il.white},hx.N("peekViewResultsSelectionForeground","Foreground color of the selected entry in the peek view result list.")),HD=(0,zx.P6)("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hc:SN.Il.black},hx.N("peekViewEditorBackground","Background color of the peek view editor.")),BD=(0,zx.P6)("peekViewEditorGutter.background",{dark:HD,light:HD,hc:HD},hx.N("peekViewEditorGutterBackground","Background color of the gutter in the peek view editor.")),zD=(0,zx.P6)("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hc:null},hx.N("peekViewResultsMatchHighlight","Match highlight color in the peek view result list.")),WD=(0,zx.P6)("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hc:null},hx.N("peekViewEditorMatchHighlight","Match highlight color in the peek view editor.")),VD=(0,zx.P6)("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hc:zx.xL},hx.N("peekViewEditorMatchHighlightBorder","Match highlight border in the peek view editor.")),YD=n(55046);!function(e){e.className=function(e){switch(e){case YD.Z.Ignore:return"severity-ignore "+pE.lA.info.classNames;case YD.Z.Info:return pE.lA.info.classNames;case YD.Z.Warning:return pE.lA.warning.classNames;case YD.Z.Error:return pE.lA.error.classNames;default:return""}}}(MD||(MD={})),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.Jp);if(n){var i=pE.lA.error.cssSelector;t.addRule("\n\t\t\t.monaco-editor .zone-widget ".concat(i,",\n\t\t\t.markers-panel .marker-icon").concat(i,",\n\t\t\t.extensions-viewlet > .extensions ").concat(i," {\n\t\t\t\tcolor: ").concat(n,";\n\t\t\t}\n\t\t"))}var r=e.getColor(zx.BO);if(r){var o=pE.lA.warning.cssSelector;t.addRule("\n\t\t\t.monaco-editor .zone-widget ".concat(o,",\n\t\t\t.markers-panel .marker-icon").concat(o,",\n\t\t\t.extensions-viewlet > .extensions ").concat(o,",\n\t\t\t.extension-editor ").concat(o," {\n\t\t\t\tcolor: ").concat(r,";\n\t\t\t}\n\t\t"))}var a=e.getColor(zx.OL);if(a){var s=pE.lA.info.cssSelector;t.addRule("\n\t\t\t.monaco-editor .zone-widget ".concat(s,",\n\t\t\t.markers-panel .marker-icon").concat(s,",\n\t\t\t.extensions-viewlet > .extensions ").concat(s,",\n\t\t\t.extension-editor ").concat(s," {\n\t\t\t\tcolor: ").concat(a,";\n\t\t\t}\n\t\t"))}}));var UD=n(5399),KD=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},qD=function(e,t){return function(n,i){t(n,i,e)}},GD=function(){function e(t,n,r,o,a){var s=this;(0,i.Z)(this,e),this._openerService=o,this._labelService=a,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new Rx.SL,this._editor=n;var u=document.createElement("div");u.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),u.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),u.appendChild(this._relatedBlock),this._disposables.add(eE.addStandardDisposableListener(this._relatedBlock,"click",(function(e){e.preventDefault();var t=s._relatedDiagnostics.get(e.target);t&&r(t)}))),this._scrollable=new zN.NB(u,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:3,verticalScrollbarSize:3}),t.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((function(e){u.style.left="-".concat(e.scrollLeft,"px"),u.style.top="-".concat(e.scrollTop,"px")}))),this._disposables.add(this._scrollable)}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Rx.B9)(this._disposables)}},{key:"update",value:function(e){var t=this,n=e.source,i=e.message,r=e.relatedInformation,o=e.code,a=((null===n||void 0===n?void 0:n.length)||0)+"()".length;o&&(a+="string"===typeof o?o.length:o.value.length);var s=(0,CL.uq)(i);this._lines=s.length,this._longestLineLength=0;var u,l=(0,Tr.Z)(s);try{for(l.s();!(u=l.n()).done;){var c=u.value;this._longestLineLength=Math.max(c.length+a,this._longestLineLength)}}catch(N){l.e(N)}finally{l.f()}eE.clearNode(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);var d,h=this._messageBlock,f=(0,Tr.Z)(s);try{for(f.s();!(d=f.n()).done;){var p=d.value;(h=document.createElement("div")).innerText=p,""===p&&(h.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(h)}}catch(N){f.e(N)}finally{f.f()}if(n||o){var v=document.createElement("span");if(v.classList.add("details"),h.appendChild(v),n){var g=document.createElement("span");g.innerText=n,g.classList.add("source"),v.appendChild(g)}if(o)if("string"===typeof o){var m=document.createElement("span");m.innerText="(".concat(o,")"),m.classList.add("code"),v.appendChild(m)}else{this._codeLink=eE.$("a.code-link"),this._codeLink.setAttribute("href","".concat(o.target.toString())),this._codeLink.onclick=function(e){t._openerService.open(o.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()},eE.append(this._codeLink,eE.$("span")).innerText=o.value,v.appendChild(this._codeLink)}}if(eE.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),(0,mx.Of)(r)){var _=this._relatedBlock.appendChild(document.createElement("div"));_.style.paddingTop="".concat(Math.floor(.66*this._editor.getOption(55)),"px"),this._lines+=1;var y,b=(0,Tr.Z)(r);try{for(b.s();!(y=b.n()).done;){var w=y.value,C=document.createElement("div"),k=document.createElement("a");k.classList.add("filename"),k.innerText="".concat(GN(w.resource),"(").concat(w.startLineNumber,", ").concat(w.startColumn,"): "),k.title=this._labelService.getUriLabel(w.resource),this._relatedDiagnostics.set(k,w);var S=document.createElement("span");S.innerText=w.message,C.appendChild(k),C.appendChild(S),this._lines+=1,_.appendChild(C)}}catch(N){b.e(N)}finally{b.f()}}var x=this._editor.getOption(40),L=Math.ceil(x.typicalFullwidthCharacterWidth*this._longestLineLength*.75),E=x.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:L,scrollHeight:E})}},{key:"layout",value:function(e,t){this._scrollable.getDomNode().style.height="".concat(e,"px"),this._scrollable.getDomNode().style.width="".concat(t,"px"),this._scrollable.setScrollDimensions({width:t,height:e})}},{key:"getHeightInLines",value:function(){return Math.min(17,this._lines)}},{key:"getAriaLabel",value:function(e){var t="";switch(e.severity){case EE.ZL.Error:t=hx.N("Error","Error");break;case EE.ZL.Warning:t=hx.N("Warning","Warning");break;case EE.ZL.Info:t=hx.N("Info","Info");break;case EE.ZL.Hint:t=hx.N("Hint","Hint")}var n=hx.N("marker aria","{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn),i=this._editor.getModel();if(i&&e.startLineNumber<=i.getLineCount()&&e.startLineNumber>=1){var r=i.getLineContent(e.startLineNumber);n="".concat(r,", ").concat(n)}return n}}]),e}(),$D=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l){var c;return(0,i.Z)(this,n),(c=t.call(this,e,{showArrow:!0,showFrame:!0,isAccessible:!0},s))._themeService=r,c._openerService=o,c._menuService=a,c._contextKeyService=u,c._labelService=l,c._callOnDispose=new Rx.SL,c._onDidSelectRelatedInformation=new hE.Q5,c.onDidSelectRelatedInformation=c._onDidSelectRelatedInformation.event,c._severity=EE.ZL.Warning,c._backgroundColor=SN.Il.white,c._applyTheme(r.getColorTheme()),c._callOnDispose.add(r.onDidColorThemeChange(c._applyTheme.bind((0,yL.Z)(c)))),c.create(),c}return(0,r.Z)(n,[{key:"_applyTheme",value:function(e){this._backgroundColor=e.getColor(iM);var t=eM;this._severity===EE.ZL.Warning?t=tM:this._severity===EE.ZL.Info&&(t=nM);var n=e.getColor(t);this.style({arrowColor:n,frameColor:n,headerBackgroundColor:this._backgroundColor,primaryHeadingColor:e.getColor(OD),secondaryHeadingColor:e.getColor(ID)})}},{key:"_applyStyles",value:function(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),(0,YL.Z)((0,UL.Z)(n.prototype),"_applyStyles",this).call(this)}},{key:"dispose",value:function(){this._callOnDispose.dispose(),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"_fillHead",value:function(e){var t=this;(0,YL.Z)((0,UL.Z)(n.prototype),"_fillHead",this).call(this,e),this._disposables.add(this._actionbarWidget.actionRunner.onBeforeRun((function(e){return t.editor.focus()})));var i=[],r=this._menuService.createMenu(n.TitleMenu,this._contextKeyService);yD(r,void 0,i),this._actionbarWidget.push(i,{label:!1,icon:!0,index:0}),r.dispose()}},{key:"_fillTitleIcon",value:function(e){this._icon=eE.append(e,eE.$(""))}},{key:"_fillBody",value:function(e){var t=this;this._parentContainer=e,e.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),e.appendChild(this._container),this._message=new GD(this._container,this.editor,(function(e){return t._onDidSelectRelatedInformation.fire(e)}),this._openerService,this._labelService),this._disposables.add(this._message)}},{key:"show",value:function(){throw new Error("call showAtMarker")}},{key:"showAtMarker",value:function(e,t,i){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());var r=Fx.e.lift(e),o=this.editor.getPosition(),a=o&&r.containsPosition(o)?o:r.getStartPosition();(0,YL.Z)((0,UL.Z)(n.prototype),"show",this).call(this,a,this.computeRequiredHeight());var s=this.editor.getModel();if(s){var u=i>1?hx.N("problems","{0} of {1} problems",t,i):hx.N("change","{0} of {1} problem",t,i);this.setTitle((0,ME.EZ)(s.uri),u)}this._icon.className="codicon ".concat(MD.className(EE.ZL.toSeverity(this._severity))),this.editor.revealPositionNearTop(a,0),this.editor.focus()}},{key:"updateMarker",value:function(e){this._container.classList.remove("stale"),this._message.update(e)}},{key:"showStale",value:function(){this._container.classList.add("stale"),this._relayout()}},{key:"_doLayoutBody",value:function(e,t){(0,YL.Z)((0,UL.Z)(n.prototype),"_doLayoutBody",this).call(this,e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height="".concat(e,"px")}},{key:"_onWidth",value:function(e){this._message.layout(this._heightInPixel,e)}},{key:"_relayout",value:function(){(0,YL.Z)((0,UL.Z)(n.prototype),"_relayout",this).call(this,this.computeRequiredHeight())}},{key:"computeRequiredHeight",value:function(){return 3+this._message.getHeightInLines()}}]),n}(DD);$D.TitleMenu=new Vx.eH("gotoErrorTitleMenu"),$D=KD([qD(1,Wx.XE),qD(2,UN.v4),qD(3,Vx.co),qD(4,JL.TG),qD(5,gx.i6),qD(6,UD.e)],$D);var QD=(0,zx.kw)(zx.lX,zx.b6),XD=(0,zx.kw)(zx.uo,zx.pW),JD=(0,zx.kw)(zx.c6,zx.T8),eM=(0,zx.P6)("editorMarkerNavigationError.background",{dark:QD,light:QD,hc:QD},hx.N("editorMarkerNavigationError","Editor marker navigation widget error color.")),tM=(0,zx.P6)("editorMarkerNavigationWarning.background",{dark:XD,light:XD,hc:XD},hx.N("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),nM=(0,zx.P6)("editorMarkerNavigationInfo.background",{dark:JD,light:JD,hc:JD},hx.N("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),iM=(0,zx.P6)("editorMarkerNavigation.background",{dark:"#2D2D30",light:SN.Il.white,hc:"#0C141F"},hx.N("editorMarkerNavigationBackground","Editor marker navigation widget background."));(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.ur);n&&(t.addRule(".monaco-editor .marker-widget a { color: ".concat(n,"; }")),t.addRule(".monaco-editor .marker-widget a.code-link span:hover { color: ".concat(n,"; }")))}));var rM=n(28214),oM=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},aM=function(e,t){return function(n,i){t(n,i,e)}},sM=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.marker=t,this.index=n,this.total=r})),uM=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._markerService=n,this._onDidChange=new hE.Q5,this.onDidChange=this._onDidChange.event,this._dispoables=new Rx.SL,this._markers=[],this._nextIdx=-1,SL.o.isUri(t)?this._resourceFilter=function(e){return e.toString()===t.toString()}:t&&(this._resourceFilter=t);var o=function(){r._markers=r._markerService.read({resource:SL.o.isUri(t)?t:void 0,severities:EE.ZL.Error|EE.ZL.Warning|EE.ZL.Info}),"function"===typeof t&&(r._markers=r._markers.filter((function(e){return r._resourceFilter(e.resource)}))),r._markers.sort(e._compareMarker)};o(),this._dispoables.add(n.onMarkerChanged((function(e){r._resourceFilter&&!e.some((function(e){return r._resourceFilter(e)}))||(o(),r._nextIdx=-1,r._onDidChange.fire())})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._dispoables.dispose(),this._onDidChange.dispose()}},{key:"matches",value:function(e){return!this._resourceFilter&&!e||!(!this._resourceFilter||!e)&&this._resourceFilter(e)}},{key:"selected",get:function(){var e=this._markers[this._nextIdx];return e&&new sM(e,this._nextIdx+1,this._markers.length)}},{key:"_initIdx",value:function(e,t,n){var i=!1,r=this._markers.findIndex((function(t){return t.resource.toString()===e.uri.toString()}));r<0&&(r=(0,mx.ry)(this._markers,{resource:e.uri},(function(e,t){return(0,CL.qu)(e.resource.toString(),t.resource.toString())})),r<0&&(r=~r));for(var o=r;o<this._markers.length;o++){var a=Fx.e.lift(this._markers[o]);if(a.isEmpty()){var s=e.getWordAtPosition(a.getStartPosition());s&&(a=new Fx.e(a.startLineNumber,s.startColumn,a.startLineNumber,s.endColumn))}if(t&&(a.containsPosition(t)||t.isBeforeOrEqual(a.getStartPosition()))){this._nextIdx=o,i=!0;break}if(this._markers[o].resource.toString()!==e.uri.toString())break}i||(this._nextIdx=n?0:this._markers.length-1),this._nextIdx<0&&(this._nextIdx=this._markers.length-1)}},{key:"resetIndex",value:function(){this._nextIdx=-1}},{key:"move",value:function(e,t,n){if(0===this._markers.length)return!1;var i=this._nextIdx;return-1===this._nextIdx?this._initIdx(t,n,e):e?this._nextIdx=(this._nextIdx+1)%this._markers.length:e||(this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length),i!==this._nextIdx}},{key:"find",value:function(e,t){var n=this._markers.findIndex((function(t){return t.resource.toString()===e.toString()}));if(!(n<0))for(;n<this._markers.length;n++)if(Fx.e.containsPosition(this._markers[n],t))return new sM(this._markers[n],n+1,this._markers.length)}}],[{key:"_compareMarker",value:function(e,t){var n=(0,CL.qu)(e.resource.toString(),t.resource.toString());return 0===n&&(n=EE.ZL.compare(e.severity,t.severity)),0===n&&(n=Fx.e.compareRangesUsingStarts(e,t)),n}}]),e}();uM=oM([aM(1,EE.lT)],uM);var lM=(0,JL.yh)("IMarkerNavigationService"),cM=function(){function e(t){(0,i.Z)(this,e),this._markerService=t,this._provider=new rM.S}return(0,r.Z)(e,[{key:"getMarkerList",value:function(e){var t,n=(0,Tr.Z)(this._provider);try{for(n.s();!(t=n.n()).done;){var i=t.value.getMarkerList(e);if(i)return i}}catch(r){n.e(r)}finally{n.f()}return new uM(e,this._markerService)}}]),e}();cM=oM([aM(0,EE.lT)],cM),(0,uN.z)(lM,cM,!0);var dM=n(62239),hM=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},fM=function(e,t){return function(n,i){t(n,i,e)}},pM=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},vM=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this._markerNavigationService=n,this._contextKeyService=r,this._editorService=o,this._instantiationService=a,this._sessionDispoables=new Rx.SL,this._editor=t,this._widgetVisible=wM.bindTo(this._contextKeyService)}return(0,r.Z)(e,[{key:"dispose",value:function(){this._cleanUp(),this._sessionDispoables.dispose()}},{key:"_cleanUp",value:function(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}},{key:"_getOrCreateModel",value:function(e){var t=this;if(this._model&&this._model.matches(e))return this._model;var n=!1;return this._model&&(n=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),n&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance($D,this._editor),this._widget.onDidClose((function(){return t.close()}),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((function(e){var n,i,r;(null===(n=t._model)||void 0===n?void 0:n.selected)&&Fx.e.containsPosition(null===(i=t._model)||void 0===i?void 0:i.selected.marker,e.position)||null===(r=t._model)||void 0===r||r.resetIndex()}))),this._sessionDispoables.add(this._model.onDidChange((function(){if(t._widget&&t._widget.position&&t._model){var e=t._model.find(t._editor.getModel().uri,t._widget.position);e?t._widget.updateMarker(e.marker):t._widget.showStale()}}))),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((function(e){t._editorService.openCodeEditor({resource:e.resource,options:{pinned:!0,revealIfOpened:!0,selection:Fx.e.lift(e).collapseToStart()}},t._editor),t.close(!1)}))),this._sessionDispoables.add(this._editor.onDidChangeModel((function(){return t._cleanUp()}))),this._model}},{key:"close",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this._cleanUp(),e&&this._editor.focus()}},{key:"showAtMarker",value:function(e){if(this._editor.hasModel()){var t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new Zx.L(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}},{key:"nagivate",value:function(t,n){return pM(this,void 0,void 0,ki().mark((function i(){var r,o;return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(!this._editor.hasModel()){i.next=14;break}if((r=this._getOrCreateModel(n?void 0:this._editor.getModel().uri)).move(t,this._editor.getModel(),this._editor.getPosition()),r.selected){i.next=5;break}return i.abrupt("return");case 5:if(r.selected.marker.resource.toString()===this._editor.getModel().uri.toString()){i.next=13;break}return this._cleanUp(),i.next=9,this._editorService.openCodeEditor({resource:r.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:r.selected.marker}},this._editor);case 9:(o=i.sent)&&(e.get(o).close(),e.get(o).nagivate(t,n)),i.next=14;break;case 13:this._widget.showAtMarker(r.selected.marker,r.selected.index,r.selected.total);case 14:case"end":return i.stop()}}),i,this)})))}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();vM.ID="editor.contrib.markerController",vM=hM([fM(1,lM),fM(2,gx.i6),fM(3,aL.$),fM(4,JL.TG)],vM);var gM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,o))._next=e,a._multiFile=r,a}return(0,r.Z)(n,[{key:"run",value:function(e,t){return pM(this,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t.hasModel()&&vM.get(t).nagivate(this._next,this._multiFile);case 1:case"end":return e.stop()}}),e,this)})))}}]),n}(dx.R6),mM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,!1,{id:n.ID,label:n.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:578,weight:100},menuOpts:{menuId:$D.TitleMenu,title:n.LABEL,icon:(0,dM.q5)("marker-navigation-next",pE.lA.chevronDown,hx.N("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}return(0,r.Z)(n)}(gM);mM.ID="editor.action.marker.next",mM.LABEL=hx.N("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");var _M=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,!1,{id:n.ID,label:n.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:1602,weight:100},menuOpts:{menuId:$D.TitleMenu,title:mM.LABEL,icon:(0,dM.q5)("marker-navigation-previous",pE.lA.chevronUp,hx.N("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}return(0,r.Z)(n)}(gM);_M.ID="editor.action.marker.prev",_M.LABEL=hx.N("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");var yM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,!0,{id:"editor.action.marker.nextInFiles",label:hx.N("markerAction.nextInFiles.label","Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:66,weight:100},menuOpts:{menuId:Vx.eH.MenubarGoMenu,title:hx.N({key:"miGotoNextProblem",comment:["&& denotes a mnemonic"]},"Next &&Problem"),group:"6_problem_nav",order:1}})}return(0,r.Z)(n)}(gM),bM=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,!0,{id:"editor.action.marker.prevInFiles",label:hx.N("markerAction.previousInFiles.label","Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:1090,weight:100},menuOpts:{menuId:Vx.eH.MenubarGoMenu,title:hx.N({key:"miGotoPreviousProblem",comment:["&& denotes a mnemonic"]},"Previous &&Problem"),group:"6_problem_nav",order:2}})}return(0,r.Z)(n)}(gM);(0,dx._K)(vM.ID,vM),(0,dx.Qr)(mM),(0,dx.Qr)(_M),(0,dx.Qr)(yM),(0,dx.Qr)(bM);var wM=new gx.uy("markersNavigationVisible",!1),CM=dx._l.bindToContribution(vM.get);(0,dx.fK)(new CM({id:"closeMarkersNavigation",precondition:wM,handler:function(e){return e.close()},kbOpts:{weight:150,kbExpr:fx.u.focus,primary:9,secondary:[1033]}}));var kM=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},SM=function(e,t){return function(n,i){t(n,i,e)}},xM=eE.$,LM=function(){function e(t,n){(0,i.Z)(this,e),this.range=t,this.marker=n}return(0,r.Z)(e,[{key:"equals",value:function(t){return t instanceof e&&EE.H0.makeKey(this.marker)===EE.H0.makeKey(t.marker)}}]),e}(),EM={type:1,filter:{include:NL.QuickFix}},NM=function(){function e(t,n,r,o,a){(0,i.Z)(this,e),this._editor=t,this._hover=n,this._markerDecorationsService=r,this._keybindingService=o,this._openerService=a,this.recentMarkerCodeActionsInfo=void 0}return(0,r.Z)(e,[{key:"computeSync",value:function(e,t){if(!this._editor.hasModel())return[];var n,i=this._editor.getModel(),r=e.startLineNumber,o=i.getLineMaxColumn(r),a=[],s=(0,Tr.Z)(t);try{for(s.s();!(n=s.n()).done;){var u=n.value,l=u.range.startLineNumber===r?u.range.startColumn:1,c=u.range.endLineNumber===r?u.range.endColumn:o,d=this._markerDecorationsService.getMarker(i.uri,u);if(d){var h=new Fx.e(e.startLineNumber,l,e.startLineNumber,c);a.push(new LM(h,d))}}}catch(f){s.e(f)}finally{s.f()}return a}},{key:"renderHoverParts",value:function(e,t){var n=this;if(!e.length)return Rx.JT.None;var i=new Rx.SL;e.forEach((function(e){return t.appendChild(n.renderMarkerHover(e,i))}));var r=1===e.length?e[0]:e.sort((function(e,t){return EE.ZL.compare(e.marker.severity,t.marker.severity)}))[0];return t.appendChild(this.renderMarkerStatusbar(r,i)),i}},{key:"renderMarkerHover",value:function(e,t){var n=this,i=xM("div.hover-row"),r=eE.append(i,xM("div.marker.hover-contents")),o=e.marker,a=o.source,s=o.message,u=o.code,l=o.relatedInformation;this._editor.applyFontInfo(r);var c=eE.append(r,xM("span"));if(c.style.whiteSpace="pre-wrap",c.innerText=s,a||u)if(u&&"string"!==typeof u){var d=xM("span");if(a)eE.append(d,xM("span")).innerText=a;var h=eE.append(d,xM("a.code-link"));h.setAttribute("href",u.target.toString()),t.add(eE.addDisposableListener(h,"click",(function(e){n._openerService.open(u.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()}))),eE.append(h,xM("span")).innerText=u.value;var f=eE.append(r,d);f.style.opacity="0.6",f.style.paddingLeft="6px"}else{var p=eE.append(r,xM("span"));p.style.opacity="0.6",p.style.paddingLeft="6px",p.innerText=a&&u?"".concat(a,"(").concat(u,")"):a||"(".concat(u,")")}if((0,mx.Of)(l)){var v,g=(0,Tr.Z)(l);try{var m=function(){var e=v.value,i=e.message,o=e.resource,a=e.startLineNumber,s=e.startColumn,u=eE.append(r,xM("div"));u.style.marginTop="8px";var l=eE.append(u,xM("a"));l.innerText="".concat((0,ME.EZ)(o),"(").concat(a,", ").concat(s,"): "),l.style.cursor="pointer",t.add(eE.addDisposableListener(l,"click",(function(e){e.stopPropagation(),e.preventDefault(),n._openerService&&n._openerService.open(o,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:a,startColumn:s}}}).catch(yx.dL)})));var c=eE.append(u,xM("span"));c.innerText=i,n._editor.applyFontInfo(c)};for(g.s();!(v=g.n()).done;)m()}catch(_){g.e(_)}finally{g.f()}}return i}},{key:"renderMarkerStatusbar",value:function(e,t){var n=this,i=xM("div.hover-row.status-bar"),r=eE.append(i,xM("div.actions"));if(e.marker.severity!==EE.ZL.Error&&e.marker.severity!==EE.ZL.Warning&&e.marker.severity!==EE.ZL.Info||t.add(this.renderAction(r,{label:hx.N("view problem","View Problem"),commandId:mM.ID,run:function(){n._hover.hide(),vM.get(n._editor).showAtMarker(e.marker),n._editor.focus()}})),!this._editor.getOption(77)){var o=eE.append(r,xM("div"));this.recentMarkerCodeActionsInfo&&(EE.H0.makeKey(this.recentMarkerCodeActionsInfo.marker)===EE.H0.makeKey(e.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(o.textContent=hx.N("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);var a=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?Rx.JT.None:t.add((0,Px.Vg)((function(){return o.textContent=hx.N("checkingForQuickFixes","Checking for quick fixes...")}),200));o.textContent||(o.textContent=String.fromCharCode(160));var s=this.getCodeActions(e.marker);t.add((0,Rx.OF)((function(){return s.cancel()}))),s.then((function(i){if(a.dispose(),n.recentMarkerCodeActionsInfo={marker:e.marker,hasCodeActions:i.validActions.length>0},!n.recentMarkerCodeActionsInfo.hasCodeActions)return i.dispose(),void(o.textContent=hx.N("noQuickFixes","No quick fixes available"));o.style.display="none";var s=!1;t.add((0,Rx.OF)((function(){s||i.dispose()}))),t.add(n.renderAction(r,{label:hx.N("quick fixes","Quick Fix..."),commandId:UE.Id,run:function(e){s=!0;var t=zE.get(n._editor),r=eE.getDomNodePagePosition(e);n._hover.hide(),t.showCodeActions(EM,i,{x:r.left+6,y:r.top+r.height+6})}}))}))}return i}},{key:"renderAction",value:function(e,t){var n=this._keybindingService.lookupKeybinding(t.commandId);return function(e,t,n){var i=eE.append(e,WN("div.action-container")),r=eE.append(i,WN("a.action"));return r.setAttribute("href","#"),r.setAttribute("role","button"),t.iconClass&&eE.append(r,WN("span.icon.".concat(t.iconClass))),eE.append(r,WN("span")).textContent=n?"".concat(t.label," (").concat(n,")"):t.label,eE.addDisposableListener(i,eE.EventType.CLICK,(function(e){e.stopPropagation(),e.preventDefault(),t.run(i)}))}(e,t,n?n.getLabel():null)}},{key:"getCodeActions",value:function(e){var t=this;return(0,Px.PG)((function(n){return WL(t._editor.getModel(),new Fx.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),EM,OL.E.None,n)}))}}]),e}();NM=kM([SM(2,YN.i),SM(3,iE.d),SM(4,UN.v4)],NM);var DM,MM=n(83935),TM=n(61329);!function e(t,n,i){function r(a,s){if(!n[a]){if(!t[a]){if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};t[a][0].call(l.exports,(function(e){return r(t[a][1][e]||e)}),l,l.exports,e,t,n,i)}return n[a].exports}for(var o=void 0,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(e,t,n){var i=e("./toMap");t.exports={uris:i(["background","base","cite","href","longdesc","src","usemap"])}},{"./toMap":10}],2:[function(e,t,n){t.exports={allowedAttributes:{"*":["title","accesskey"],a:["href","name","target","aria-label"],iframe:["allowfullscreen","frameborder","src"],img:["src","alt","title","aria-label"]},allowedClasses:{},allowedSchemes:["http","https","mailto"],allowedTags:["a","abbr","article","b","blockquote","br","caption","code","del","details","div","em","h1","h2","h3","h4","h5","h6","hr","i","img","ins","kbd","li","main","mark","ol","p","pre","section","span","strike","strong","sub","summary","sup","table","tbody","td","th","thead","tr","u","ul"],filter:null}},{}],3:[function(e,t,n){var i=e("./toMap");t.exports={voids:i(["area","br","col","hr","img","wbr","input","base","basefont","link","meta"])}},{"./toMap":10}],4:[function(e,t,n){e("he");var i=e("assignment"),r=e("./parser"),o=e("./sanitizer"),a=e("./defaults");function s(e,t,n){var s=[],u=!0===n?t:i({},a,t),l=o(s,u);return r(e,l),s.join("")}s.defaults=a,t.exports=s,DM=s},{"./defaults":2,"./parser":7,"./sanitizer":8,assignment:6,he:9}],5:[function(e,t,n){t.exports=function(e){return"string"===typeof e?e.toLowerCase():e}},{}],6:[function(e,t,n){t.exports=function e(t){for(var n,i,r=Array.prototype.slice.call(arguments,1);r.length;)for(i in n=r.shift())n.hasOwnProperty(i)&&("[object Object]"===Object.prototype.toString.call(t[i])?t[i]=e(t[i],n[i]):t[i]=n[i]);return t}},{}],7:[function(e,t,n){var i=e("he"),r=e("./lowercase"),o=(e("./attributes"),e("./elements")),a=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,s=/^<\s*\/\s*([\w:-]+)[^>]*>/,u=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,l=/^</,c=/^<\s*\//;t.exports=function(e,t){for(var n,d=function(){var e=[];return e.lastItem=function(){return e[e.length-1]},e}(),h=e;e;)f();function f(){n=!0,function(){"\x3c!--"===e.substr(0,4)?function(){var i=e.indexOf("--\x3e");i>=0&&(t.comment&&t.comment(e.substring(4,i)),e=e.substring(i+3),n=!1)}():c.test(e)?p(s,g):l.test(e)&&p(a,v);!function(){if(!n)return;var i,r=e.indexOf("<");r>=0?(i=e.substring(0,r),e=e.substring(r)):(i=e,e="");t.chars&&t.chars(i)}()}();var i=e===h;h=e,i&&(e="")}function p(t,i){var r=e.match(t);r&&(e=e.substring(r[0].length),r[0].replace(t,i),n=!1)}function v(e,n,a,s){var l={},c=r(n),h=o.voids[c]||!!s;a.replace(u,(function(e,t,n,r,o){l[t]=void 0===n&&void 0===r&&void 0===o?void 0:i.decode(n||r||o||"")})),h||d.push(c),t.start&&t.start(c,l,h)}function g(e,n){var i,o=0,a=r(n);if(a)for(o=d.length-1;o>=0&&d[o]!==a;o--);if(o>=0){for(i=d.length-1;i>=o;i--)t.end&&t.end(d[i]);d.length=o}}g()}},{"./attributes":1,"./elements":3,"./lowercase":5,he:9}],8:[function(e,t,n){var i=e("he"),r=e("./lowercase"),o=e("./attributes"),a=e("./elements");t.exports=function(e,t){var n,s=t||{};return d(),{start:function(e,t,a){var c=r(e);if(n.ignoring)return void l(c);if(-1===(s.allowedTags||[]).indexOf(c))return void l(c);if(s.filter&&!s.filter({tag:c,attrs:t}))return void l(c);u("<"),u(c),Object.keys(t).forEach((function(e){var n,a=t[e],l=(s.allowedClasses||{})[c]||[],d=(s.allowedAttributes||{})[c]||[];d=d.concat((s.allowedAttributes||{})["*"]||[]);var h=r(e);n="class"===h&&-1===d.indexOf(h)?(a=a.split(" ").filter((function(e){return l&&-1!==l.indexOf(e)})).join(" ").trim()).length:-1!==d.indexOf(h)&&(!0!==o.uris[h]||function(e){var t=e[0];if("#"===t||"/"===t)return!0;var n=e.indexOf(":");if(-1===n)return!0;var i=e.indexOf("?");if(-1!==i&&n>i)return!0;var r=e.indexOf("#");return-1!==r&&n>r||s.allowedSchemes.some(o);function o(t){return 0===e.indexOf(t+":")}}(a)),n&&(u(" "),u(e),"string"===typeof a&&(u('="'),u(i.encode(a)),u('"')))})),u(a?"/>":">")},end:function(e){var t=r(e);-1!==(s.allowedTags||[]).indexOf(t)&&!1===n.ignoring?(u("</"),u(t),u(">")):c(t)},chars:function(e){!1===n.ignoring&&u(s.transformText?s.transformText(e):e)}};function u(t){e.push(t)}function l(e){a.voids[e]||(!1===n.ignoring?n={ignoring:e,depth:1}:n.ignoring===e&&n.depth++)}function c(e){n.ignoring===e&&--n.depth<=0&&d()}function d(){n={ignoring:!1,depth:0}}}},{"./attributes":1,"./elements":3,"./lowercase":5,he:9}],9:[function(e,t,n){var i={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},r={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},o=/(&amp;|&lt;|&gt;|&quot;|&#39;)/g,a=/[&<>"']/g;function s(e){return i[e]}function u(e){return r[e]}function l(e){return null==e?"":String(e).replace(a,s)}function c(e){return null==e?"":String(e).replace(o,u)}l.options=c.options={},t.exports={encode:l,escape:l,decode:c,unescape:c,version:"1.0.0-browser"}},{}],10:[function(e,t,n){function i(e,t){return e[t]=!0,e}t.exports=function(e){return e.reduce(i,{})}},{}]},{},[4]);var OM,IM=DM,AM=n(83312),PM=n(55076),RM=null===(OM=window.trustedTypes)||void 0===OM?void 0:OM.createPolicy("insane",{createHTML:function(e,t){return IM(e,t)}});function ZM(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=(0,MM.az)(i),a=function(t){var n;try{n=(0,AM.Q)(decodeURIComponent(t))}catch(i){}return n?(n=(0,XN.rs)(n,(function(t){return e.uris&&e.uris[t]?SL.o.revive(e.uris[t]):void 0})),encodeURIComponent(JSON.stringify(n))):t},s=function(t,n){var i=e.uris&&e.uris[t];if(!i)return t;var r=SL.o.revive(i);return SL.o.parse(t).toString()===r.toString()?t:n?KN.Gi.asBrowserUri(r).toString(!0):(r.query&&(r=r.with({query:a(r.query)})),r.toString())},u=new Promise((function(e){return n=e})),l=new TM.Renderer;l.image=function(e,t,n){var r=[],o=[];if(e){var a=function(e){var t=[],n=e.split("|").map((function(e){return e.trim()}));e=n[0];var i=n[1];if(i){var r=/height=(\d+)/.exec(i),o=/width=(\d+)/.exec(i),a=r?r[1]:"",s=o?o[1]:"",u=isFinite(parseInt(s)),l=isFinite(parseInt(a));u&&t.push('width="'.concat(s,'"')),l&&t.push('height="'.concat(a,'"'))}return{href:e,dimensions:t}}(e);e=a.href,r=a.dimensions,e=s(e,!0);try{var u=SL.o.parse(e);i.baseUrl&&u.scheme===KN.lg.file&&(e=(0,ME.i3)(i.baseUrl,e).toString())}catch(l){}o.push('src="'.concat(e,'"'))}return n&&o.push('alt="'.concat(n,'"')),t&&o.push('title="'.concat(t,'"')),r.length&&(o=o.concat(r)),"<img "+o.join(" ")+">"},l.link=function(t,n,r){(t===r&&(r=Sx(r)),t=s(t,!1),i.baseUrl)&&(/^\w[\w\d+.-]*:/.test(t)||(t=(0,ME.i3)(i.baseUrl,t).toString()));return n=Sx(n),!(t=Sx(t))||t.match(/^data:|javascript:/i)||t.match(/^command:/i)&&!e.isTrusted||t.match(/^command:(\/\/\/)?_workbench\.downloadResource/i)?r:(t=t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),'<a href="#" data-href="'.concat(t,'" title="').concat(n||t,'">').concat(r,"</a>"))},l.paragraph=function(t){e.supportThemeIcons&&(t=(0,iN.T)(t).map((function(e){return"string"===typeof e?e:e.outerHTML})).join(""));return"<p>".concat(t,"</p>")},i.codeBlockRenderer&&(l.code=function(e,t){var n=i.codeBlockRenderer(t,e),r=rD.a.nextId(),a=Promise.all([n,u]).then((function(e){var t=o.querySelector('div[data-code="'.concat(r,'"]'));t&&eE.reset(t,e[0])})).catch((function(e){}));return i.asyncRenderCallback&&a.then(i.asyncRenderCallback),'<div class="code" data-code="'.concat(r,'">').concat((0,CL.YU)(e),"</div>")}),i.actionHandler&&i.actionHandler.disposeables.add(hE.ju.any((0,dD.jt)(o,"click"),(0,dD.jt)(o,"auxclick"))((function(e){var t=new PM.n(e);if(t.leftButton||t.middleButton){var n=t.target;if("A"===n.tagName||(n=n.parentElement)&&"A"===n.tagName)try{var r=n.dataset.href;r&&i.actionHandler.callback(r,t)}catch(o){(0,yx.dL)(o)}finally{t.preventDefault()}}}))),r.sanitizer=function(t){return(e.isTrusted?t.match(/^(<span[^>]+>)|(<\/\s*span>)$/):void 0)?t:""},r.sanitize=!0,r.silent=!0,r.renderer=l;var c=null!==(t=e.value)&&void 0!==t?t:"";c.length>1e5&&(c="".concat(c.substr(0,1e5),"\u2026")),e.supportThemeIcons&&(c=(0,_x.f$)(c));var d=TM.parse(c,r);if(o.innerHTML=function(e,t){var n,i=function(e){var t=[KN.lg.http,KN.lg.https,KN.lg.mailto,KN.lg.data,KN.lg.file,KN.lg.vscodeRemote,KN.lg.vscodeRemoteResource];e.isTrusted&&t.push(KN.lg.command);return{allowedSchemes:t,allowedTags:["ul","li","p","code","blockquote","ol","h1","h2","h3","h4","h5","h6","hr","em","pre","table","thead","tbody","tr","th","td","div","del","a","strong","br","img","span"],allowedAttributes:{a:["href","name","target","data-href"],img:["src","title","alt","width","height"],div:["class","data-code"],span:["class","style"],th:["align"],td:["align"]},filter:function(t){return"span"!==t.tag||!e.isTrusted||(t.attrs.style&&1===Object.keys(t.attrs).length?!!t.attrs.style.match(/^(color\:#[0-9a-fA-F]+;)?(background-color\:#[0-9a-fA-F]+;)?$/):!!t.attrs.class&&!!t.attrs.class.match(/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/))}}}(e);return null!==(n=null===RM||void 0===RM?void 0:RM.createHTML(t,i))&&void 0!==n?n:IM(t,i)}(e,d),n(),i.asyncRenderCallback){var h,f=(0,Tr.Z)(o.getElementsByTagName("img"));try{var p=function(){var e=h.value,t=eE.addDisposableListener(e,"load",(function(){t.dispose(),i.asyncRenderCallback()}))};for(f.s();!(h=f.n()).done;)p()}catch(v){f.e(v)}finally{f.f()}}return o}var FM,jM=n(54821),HM=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},BM=function(e,t){return function(n,i){t(n,i,e)}},zM=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},WM=function(){function e(t,n,r){(0,i.Z)(this,e),this._options=t,this._modeService=n,this._openerService=r,this._onDidRenderAsync=new hE.Q5,this.onDidRenderAsync=this._onDidRenderAsync.event}return(0,r.Z)(e,[{key:"dispose",value:function(){this._onDidRenderAsync.dispose()}},{key:"render",value:function(e,t,n){var i=new Rx.SL;return{element:e?ZM(e,Object.assign(Object.assign({},this._getRenderOptions(e,i)),t),n):document.createElement("span"),dispose:function(){return i.dispose()}}}},{key:"_getRenderOptions",value:function(t,n){var i=this;return{baseUrl:this._options.baseUrl,codeBlockRenderer:function(t,n){return zM(i,void 0,void 0,ki().mark((function i(){var r,o,a,s,u,l,c,d;return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return t?u=this._modeService.getModeIdForLanguageName(t):this._options.editor&&(u=null===(r=this._options.editor.getModel())||void 0===r?void 0:r.getLanguageIdentifier().language),u||(u="plaintext"),this._modeService.triggerMode(u),i.next=5,LL.RW.getPromise(u);case 5:if(i.t1=o=i.sent,i.t0=null!==i.t1,!i.t0){i.next=9;break}i.t0=void 0!==o;case 9:if(!i.t0){i.next=13;break}i.t2=o,i.next=14;break;case 13:i.t2=void 0;case 14:return l=i.t2,(c=document.createElement("span")).innerHTML=null!==(s=null===(a=e._ttpTokenizer)||void 0===a?void 0:a.createHTML(n,l))&&void 0!==s?s:(0,jM.C)(n,l),d=this._options.codeBlockFontFamily,this._options.editor&&(d=this._options.editor.getOption(40).fontFamily),d&&(c.style.fontFamily=d),i.abrupt("return",c);case 21:case"end":return i.stop()}}),i,this)})))},asyncRenderCallback:function(){return i._onDidRenderAsync.fire()},actionHandler:{callback:function(e){return i._openerService.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:t.isTrusted}).catch(yx.dL)},disposeables:n}}}}]),e}();function VM(e,t,n){var i=LL.xp.ordered(e).map((function(i){return Promise.resolve(i.provideHover(e,t,n)).then((function(e){return e&&function(e){var t="undefined"!==typeof e.range,n="undefined"!==typeof e.contents&&e.contents&&e.contents.length>0;return t&&n}(e)?e:void 0}),(function(e){(0,yx.Cp)(e)}))}));return Promise.all(i).then(mx.kX)}WM._ttpTokenizer=null===(FM=window.trustedTypes)||void 0===FM?void 0:FM.createPolicy("tokenizeToString",{createHTML:function(e,t){return(0,jM.C)(e,t)}}),WM=HM([BM(1,MN.h),BM(2,UN.v4)],WM),(0,dx.sb)("_executeHoverProvider",(function(e,t){return VM(e,t,bL.T.None)}));var YM=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},UM=function(e,t){return function(n,i){t(n,i,e)}},KM=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},qM=eE.$,GM=function(){function e(t,n){(0,i.Z)(this,e),this.range=t,this.contents=n}return(0,r.Z)(e,[{key:"equals",value:function(t){return t instanceof e&&function(e,t){return!e&&!t||!(!e||!t)&&(Array.isArray(e)&&Array.isArray(t)?(0,mx.fS)(e,t,kx):!(!Cx(e)||!Cx(t))&&kx(e,t))}(this.contents,t.contents)}}]),e}(),$M=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._editor=t,this._hover=n,this._modeService=r,this._openerService=o}return(0,r.Z)(e,[{key:"createLoadingMessage",value:function(e){return new GM(e,[(new bx).appendText(hx.N("modesContentHover.loading","Loading..."))])}},{key:"computeSync",value:function(e,t){if(!this._editor.hasModel())return[];var n,i=this._editor.getModel(),r=e.startLineNumber,o=i.getLineMaxColumn(r),a=[],s=(0,Tr.Z)(t);try{for(s.s();!(n=s.n()).done;){var u=n.value,l=u.range.startLineNumber===r?u.range.startColumn:1,c=u.range.endLineNumber===r?u.range.endColumn:o,d=u.options.hoverMessage;if(d&&!wx(d)){var h=new Fx.e(e.startLineNumber,l,e.startLineNumber,c);a.push(new GM(h,(0,mx._2)(d)))}}}catch(f){s.e(f)}finally{s.f()}return a}},{key:"computeAsync",value:function(e,t){return KM(this,void 0,void 0,ki().mark((function n(){var i,r,o,a,s,u,l;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(this._editor.hasModel()&&e){n.next=2;break}return n.abrupt("return",Promise.resolve([]));case 2:if(i=this._editor.getModel(),LL.xp.has(i)){n.next=5;break}return n.abrupt("return",Promise.resolve([]));case 5:return n.next=7,VM(i,new Zx.L(e.startLineNumber,e.startColumn),t);case 7:r=n.sent,o=[],a=(0,Tr.Z)(r),n.prev=10,a.s();case 12:if((s=a.n()).done){n.next=20;break}if(!wx((u=s.value).contents)){n.next=16;break}return n.abrupt("continue",18);case 16:l=u.range?Fx.e.lift(u.range):e,o.push(new GM(l,u.contents));case 18:n.next=12;break;case 20:n.next=25;break;case 22:n.prev=22,n.t0=n.catch(10),a.e(n.t0);case 25:return n.prev=25,a.f(),n.finish(25);case 28:return n.abrupt("return",o);case 29:case"end":return n.stop()}}),n,this,[[10,22,25,28]])})))}},{key:"renderHoverParts",value:function(e,t){var n,i=this,r=new Rx.SL,o=(0,Tr.Z)(e);try{for(o.s();!(n=o.n()).done;){var a,s=n.value,u=(0,Tr.Z)(s.contents);try{var l=function(){var e=a.value;if(wx(e))return"continue";var n=qM("div.hover-row.markdown-hover"),o=eE.append(n,qM("div.hover-contents")),s=r.add(new WM({editor:i._editor},i._modeService,i._openerService));r.add(s.onDidRenderAsync((function(){o.className="hover-contents code-hover-contents",i._hover.onContentsChanged()})));var u=r.add(s.render(e));o.appendChild(u.element),t.appendChild(n)};for(u.s();!(a=u.n()).done;)l()}catch(c){u.e(c)}finally{u.f()}}}catch(c){o.e(c)}finally{o.f()}return r}}]),e}();$M=YM([UM(2,MN.h),UM(3,UN.v4)],$M);var QM=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},XM=function(){function e(t,n,r){(0,i.Z)(this,e),this.range=t,this.color=n,this.provider=r}return(0,r.Z)(e,[{key:"equals",value:function(e){return!1}}]),e}(),JM=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.owner=t,this.data=n})),eT=function(){function e(t,n,r){(0,i.Z)(this,e),this._markerHoverParticipant=n,this._markdownHoverParticipant=r,this._editor=t,this._result=[],this._range=null}return(0,r.Z)(e,[{key:"setRange",value:function(e){this._range=e,this._result=[]}},{key:"clearResult",value:function(){this._result=[]}},{key:"computeAsync",value:function(e){return QM(this,void 0,void 0,ki().mark((function t(){var n,i=this;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()&&this._range){t.next=2;break}return t.abrupt("return",Promise.resolve([]));case 2:return t.next=4,this._markdownHoverParticipant.computeAsync(this._range,e);case 4:return n=t.sent,t.abrupt("return",n.map((function(e){return new JM(i._markdownHoverParticipant,e)})));case 6:case"end":return t.stop()}}),t,this)})))}},{key:"computeSync",value:function(){var e=this;if(!this._editor.hasModel()||!this._range)return[];var t=this._editor.getModel(),n=this._range,i=n.startLineNumber;if(i>this._editor.getModel().getLineCount())return[];var r,o=t.getLineMaxColumn(i),a=this._editor.getLineDecorations(i).filter((function(e){if(e.options.isWholeLine)return!0;var t=e.range.startLineNumber===i?e.range.startColumn:1,r=e.range.endLineNumber===i?e.range.endColumn:o;return!(t>n.startColumn||n.endColumn>r)})),s=[],u=DN.get(this._editor),l=(0,Tr.Z)(a);try{for(l.s();!(r=l.n()).done;){var c=r.value,d=u.getColorData(c.range.getStartPosition());if(d){var h=d.colorInfo,f=h.color,p=h.range;s.push(new JM(null,new XM(Fx.e.lift(p),f,d.provider)));break}}}catch(m){l.e(m)}finally{l.f()}var v=this._markdownHoverParticipant.computeSync(this._range,a);s=s.concat(v.map((function(t){return new JM(e._markdownHoverParticipant,t)})));var g=this._markerHoverParticipant.computeSync(this._range,a);return s=s.concat(g.map((function(t){return new JM(e._markerHoverParticipant,t)}))),(0,mx.kX)(s)}},{key:"onResult",value:function(e,t){this._result=t?e.concat(this._result):this._result.concat(e)}},{key:"getResult",value:function(){return this._result.slice(0)}},{key:"getResultWithLoadingMessage",value:function(){if(this._range){var e=new JM(this._markdownHoverParticipant,this._markdownHoverParticipant.createLoadingMessage(this._range));return this._result.slice(0).concat([e])}return this._result.slice(0)}}]),e}(),tT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._hoverVisibleKey=r,s._themeService=a,s.allowEditorOverflow=!0,s._markerHoverParticipant=o.createInstance(NM,e,(0,yL.Z)(s)),s._markdownHoverParticipant=o.createInstance($M,e,(0,yL.Z)(s)),s._hover=s._register(new VN),s._id=n.ID,s._editor=e,s._isVisible=!1,s._stoleFocus=!1,s._renderDisposable=null,s.onkeydown(s._hover.containerDomNode,(function(e){e.equals(9)&&s.hide()})),s._register(s._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&s._updateFont()}))),s._editor.onDidLayoutChange((function(){return s.layout()})),s.layout(),s._editor.addContentWidget((0,yL.Z)(s)),s._showAtPosition=null,s._showAtRange=null,s._stoleFocus=!1,s._messages=[],s._lastRange=null,s._computer=new eT(s._editor,s._markerHoverParticipant,s._markdownHoverParticipant),s._highlightDecorations=[],s._isChangingDecorations=!1,s._shouldFocus=!1,s._colorPicker=null,s._hoverOperation=new BN(s._computer,(function(e){return s._withResult(e,!0)}),null,(function(e){return s._withResult(e,!1)}),s._editor.getOption(50).delay),s._register(eE.addStandardDisposableListener(s.getDomNode(),eE.EventType.FOCUS,(function(){s._colorPicker&&s.getDomNode().classList.add("colorpicker-hover")}))),s._register(eE.addStandardDisposableListener(s.getDomNode(),eE.EventType.BLUR,(function(){s.getDomNode().classList.remove("colorpicker-hover")}))),s._register(e.onDidChangeConfiguration((function(){s._hoverOperation.setHoverTime(s._editor.getOption(50).delay)}))),s._register(LL.RW.onDidChange((function(){s._isVisible&&s._lastRange&&s._messages.length>0&&(s._messages=s._messages.map((function(e){var t,n;if(e.data instanceof XM&&(null===(t=s._lastRange)||void 0===t?void 0:t.intersectRanges(e.data.range))&&(null===(n=s._colorPicker)||void 0===n?void 0:n.model.color)){var i=s._colorPicker.model.color,r={red:i.rgba.r/255,green:i.rgba.g/255,blue:i.rgba.b/255,alpha:i.rgba.a};return new JM(e.owner,new XM(e.data.range,r,e.data.provider))}return e})),s._hover.contentsDomNode.textContent="",s._renderMessages(s._lastRange,s._messages))}))),s}return(0,r.Z)(n,[{key:"dispose",value:function(){this._hoverOperation.cancel(),this._editor.removeContentWidget(this),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return this._id}},{key:"getDomNode",value:function(){return this._hover.containerDomNode}},{key:"showAt",value:function(e,t,n){this._showAtPosition=e,this._showAtRange=t,this._hoverVisibleKey.set(!0),this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._editor.layoutContentWidget(this),this._editor.render(),this._stoleFocus=n,n&&this._hover.containerDomNode.focus()}},{key:"getPosition",value:function(){return this._isVisible?{position:this._showAtPosition,range:this._showAtRange,preference:[1,2]}:null}},{key:"_updateFont",value:function(){var e=this;Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((function(t){return e._editor.applyFontInfo(t)}))}},{key:"_updateContents",value:function(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont(),this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}},{key:"layout",value:function(){var e=Math.max(this._editor.getLayoutInfo().height/4,250),t=this._editor.getOption(40),n=t.fontSize,i=t.lineHeight;this._hover.contentsDomNode.style.fontSize="".concat(n,"px"),this._hover.contentsDomNode.style.lineHeight="".concat(i,"px"),this._hover.contentsDomNode.style.maxHeight="".concat(e,"px"),this._hover.contentsDomNode.style.maxWidth="".concat(Math.max(.66*this._editor.getLayoutInfo().width,500),"px")}},{key:"onModelDecorationsChanged",value:function(){this._isChangingDecorations||this._isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._colorPicker||this._hoverOperation.start(0))}},{key:"startShowingAt",value:function(e,t,n){if(!this._lastRange||!this._lastRange.equalsRange(e)){if(this._hoverOperation.cancel(),this._isVisible)if(this._showAtPosition&&this._showAtPosition.lineNumber===e.startLineNumber){for(var i=[],r=0,o=this._messages.length;r<o;r++){var a=this._messages[r],s=a.data.range;s&&s.startColumn<=e.startColumn&&s.endColumn>=e.endColumn&&i.push(a)}if(i.length>0){if(function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!e[n].data.equals(t[n].data))return!1;return!0}(i,this._messages))return;this._renderMessages(e,i)}else this.hide()}else this.hide();this._lastRange=e,this._computer.setRange(e),this._shouldFocus=n,this._hoverOperation.start(t)}}},{key:"hide",value:function(){var e=this;this._lastRange=null,this._hoverOperation.cancel(),this._isVisible&&(setTimeout((function(){e._isVisible||e._hoverVisibleKey.set(!1)}),0),this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._editor.layoutContentWidget(this),this._stoleFocus&&this._editor.focus()),this._isChangingDecorations=!0,this._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,[]),this._isChangingDecorations=!1,this._renderDisposable&&(this._renderDisposable.dispose(),this._renderDisposable=null),this._colorPicker=null}},{key:"isColorPickerVisible",value:function(){return!!this._colorPicker}},{key:"onContentsChanged",value:function(){this._hover.onContentsChanged()}},{key:"_withResult",value:function(e,t){this._messages=e,this._lastRange&&this._messages.length>0?this._renderMessages(this._lastRange,this._messages):t&&this.hide()}},{key:"_renderMessages",value:function(e,t){var i=this;this._renderDisposable&&(this._renderDisposable.dispose(),this._renderDisposable=null),this._colorPicker=null;var r=1073741824,o=t[0].data.range?Fx.e.lift(t[0].data.range):null,a=document.createDocumentFragment(),s=!1,u=new Rx.SL,l=[],c=[];t.forEach((function(e){var t=e.data;if(t.range)if(r=Math.min(r,t.range.startColumn),o=o?Fx.e.plusRange(o,t.range):Fx.e.lift(t.range),t instanceof XM){s=!0;var n=t.color,d=n.red,h=n.green,f=n.blue,p=n.alpha,v=new SN.VS(Math.round(255*d),Math.round(255*h),Math.round(255*f),p),g=new SN.Il(v);if(!i._editor.hasModel())return;var m=i._editor.getModel(),_=new Fx.e(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn),y={range:t.range,color:t.color},b=new TN(g,[],0),w=new HN(a,b,i._editor.getOption(125),i._themeService);xN(m,y,t.provider,bL.T.None).then((function(e){if(b.colorPresentations=e||[],i._editor.hasModel()){var n=i._editor.getModel().getValueInRange(t.range);b.guessColorPresentation(g,n);var r=function(){var e,t;if(b.presentation.textEdit){e=[b.presentation.textEdit],t=new Fx.e(b.presentation.textEdit.range.startLineNumber,b.presentation.textEdit.range.startColumn,b.presentation.textEdit.range.endLineNumber,b.presentation.textEdit.range.endColumn);var n=i._editor.getModel()._setTrackedRange(null,t,3);i._editor.pushUndoStop(),i._editor.executeEdits("colorpicker",e),t=i._editor.getModel()._getTrackedRange(n)||t}else e=[{identifier:null,range:_,text:b.presentation.label,forceMoveMarkers:!1}],t=_.setEndPosition(_.endLineNumber,_.startColumn+b.presentation.label.length),i._editor.pushUndoStop(),i._editor.executeEdits("colorpicker",e);b.presentation.additionalTextEdits&&(e=(0,Lt.Z)(b.presentation.additionalTextEdits),i._editor.executeEdits("colorpicker",e),i.hide()),i._editor.pushUndoStop(),_=t},o=function(e){return xN(m,{range:_,color:{red:e.rgba.r/255,green:e.rgba.g/255,blue:e.rgba.b/255,alpha:e.rgba.a}},t.provider,bL.T.None).then((function(e){b.colorPresentations=e||[]}))},s=b.onColorFlushed((function(e){o(e).then(r)})),l=b.onDidChangeColor(o);i._colorPicker=w,i.showAt(_.getStartPosition(),_,i._shouldFocus),i._updateContents(a),i._colorPicker.layout(),i._renderDisposable=(0,Rx.F8)(s,l,w,u)}}))}else t instanceof LM?l.push(t):t instanceof GM&&c.push(t)})),c.length>0&&u.add(this._markdownHoverParticipant.renderHoverParts(c,a)),l.length&&u.add(this._markerHoverParticipant.renderHoverParts(l,a)),this._renderDisposable=u,!s&&a.hasChildNodes()&&(this.showAt(new Zx.L(e.startLineNumber,r),o,this._shouldFocus),this._updateContents(a)),this._isChangingDecorations=!0,this._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,o?[{range:o,options:n._DECORATION_OPTIONS}]:[]),this._isChangingDecorations=!1}}]),n}(ON.$);tT.ID="editor.contrib.modesContentHoverWidget",tT._DECORATION_OPTIONS=Hx.qx.register({className:"hoverHighlight"}),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.ur);n&&t.addRule(".monaco-hover .hover-contents a.code-link span:hover { color: ".concat(n,"; }"))}));var nT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this))._id=e,o._editor=r,o._isVisible=!1,o._domNode=document.createElement("div"),o._domNode.className="monaco-hover hidden",o._domNode.setAttribute("aria-hidden","true"),o._domNode.setAttribute("role","tooltip"),o._showAtLineNumber=-1,o._register(o._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&o.updateFont()}))),o._editor.addOverlayWidget((0,yL.Z)(o)),o}return(0,r.Z)(n,[{key:"isVisible",get:function(){return this._isVisible},set:function(e){this._isVisible=e,this._domNode.classList.toggle("hidden",!this._isVisible)}},{key:"getId",value:function(){return this._id}},{key:"getDomNode",value:function(){return this._domNode}},{key:"showAt",value:function(e){this._showAtLineNumber=e,this.isVisible||(this.isVisible=!0);var t=this._editor.getLayoutInfo(),n=this._editor.getTopForLineNumber(this._showAtLineNumber),i=this._editor.getScrollTop(),r=this._editor.getOption(55),o=n-i-(this._domNode.clientHeight-r)/2;this._domNode.style.left="".concat(t.glyphMarginLeft+t.glyphMarginWidth,"px"),this._domNode.style.top="".concat(Math.max(Math.round(o),0),"px")}},{key:"hide",value:function(){this.isVisible&&(this.isVisible=!1)}},{key:"getPosition",value:function(){return null}},{key:"dispose",value:function(){this._editor.removeOverlayWidget(this),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"updateFont",value:function(){var e=this,t=Array.prototype.slice.call(this._domNode.getElementsByTagName("code")),n=Array.prototype.slice.call(this._domNode.getElementsByClassName("code"));[].concat((0,Lt.Z)(t),(0,Lt.Z)(n)).forEach((function(t){return e._editor.applyFontInfo(t)}))}},{key:"updateContents",value:function(e){this._domNode.textContent="",this._domNode.appendChild(e),this.updateFont()}}]),n}(ON.$),iT=function(){function e(t){(0,i.Z)(this,e),this._editor=t,this._lineNumber=-1,this._result=[]}return(0,r.Z)(e,[{key:"setLineNumber",value:function(e){this._lineNumber=e,this._result=[]}},{key:"clearResult",value:function(){this._result=[]}},{key:"computeSync",value:function(){var e=function(e){return{value:e}},t=this._editor.getLineDecorations(this._lineNumber),n=[];if(!t)return n;var i,r=(0,Tr.Z)(t);try{for(r.s();!(i=r.n()).done;){var o=i.value;if(o.options.glyphMarginClassName){var a=o.options.glyphMarginHoverMessage;a&&!wx(a)&&n.push.apply(n,(0,Lt.Z)((0,mx._2)(a).map(e)))}}}catch(s){r.e(s)}finally{r.f()}return n}},{key:"onResult",value:function(e,t){this._result=this._result.concat(e)}},{key:"getResult",value:function(){return this._result}},{key:"getResultWithLoadingMessage",value:function(){return this.getResult()}}]),e}(),rT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:UN.SW;return(0,i.Z)(this,n),(o=t.call(this,n.ID,e))._renderDisposeables=o._register(new Rx.SL),o._messages=[],o._lastLineNumber=-1,o._markdownRenderer=o._register(new WM({editor:o._editor},r,a)),o._computer=new iT(o._editor),o._hoverOperation=new BN(o._computer,(function(e){return o._withResult(e)}),void 0,(function(e){return o._withResult(e)}),300),o}return(0,r.Z)(n,[{key:"dispose",value:function(){this._hoverOperation.cancel(),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"onModelDecorationsChanged",value:function(){this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._hoverOperation.start(0))}},{key:"startShowingAt",value:function(e){this._lastLineNumber!==e&&(this._hoverOperation.cancel(),this.hide(),this._lastLineNumber=e,this._computer.setLineNumber(e),this._hoverOperation.start(0))}},{key:"hide",value:function(){this._lastLineNumber=-1,this._hoverOperation.cancel(),(0,YL.Z)((0,UL.Z)(n.prototype),"hide",this).call(this)}},{key:"_withResult",value:function(e){this._messages=e,this._messages.length>0?this._renderMessages(this._lastLineNumber,this._messages):this.hide()}},{key:"_renderMessages",value:function(e,t){this._renderDisposeables.clear();var n,i=document.createDocumentFragment(),r=(0,Tr.Z)(t);try{for(r.s();!(n=r.n()).done;){var o=n.value,a=this._markdownRenderer.render(o.value);this._renderDisposeables.add(a),i.appendChild((0,eE.$)("div.hover-row",void 0,a.element))}}catch(s){r.e(s)}finally{r.f()}this.updateContents(i),this.showAt(e)}}]),n}(nT);rT.ID="editor.contrib.modesGlyphHoverWidget";var oT=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},aT=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.isProviderFirst=t,this.parent=n,this.link=r,this._rangeCallback=o,this.id=rD.a.nextId()}return(0,r.Z)(e,[{key:"uri",get:function(){return this.link.uri}},{key:"range",get:function(){var e,t;return null!==(t=null!==(e=this._range)&&void 0!==e?e:this.link.targetSelectionRange)&&void 0!==t?t:this.link.range},set:function(e){this._range=e,this._rangeCallback(this)}},{key:"ariaMessage",get:function(){var e,t=null===(e=this.parent.getPreview(this))||void 0===e?void 0:e.preview(this.range);return t?(0,hx.N)({key:"aria.oneReference.preview",comment:["Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code"]},"symbol in {0} on line {1} at column {2}, {3}",(0,ME.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn,t.value):(0,hx.N)("aria.oneReference","symbol in {0} on line {1} at column {2}",(0,ME.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn)}}]),e}(),sT=function(){function e(t){(0,i.Z)(this,e),this._modelReference=t}return(0,r.Z)(e,[{key:"dispose",value:function(){this._modelReference.dispose()}},{key:"preview",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=this._modelReference.object.textEditorModel;if(n){var i=e.startLineNumber,r=e.startColumn,o=e.endLineNumber,a=e.endColumn,s=n.getWordUntilPosition({lineNumber:i,column:r-t}),u=new Fx.e(i,s.startColumn,i,r),l=new Fx.e(o,a,o,1073741824),c=n.getValueInRange(u).replace(/^\s+/,""),d=n.getValueInRange(e);return{value:c+d+n.getValueInRange(l).replace(/\s+$/,""),highlight:{start:c.length,end:c.length+d.length}}}}}]),e}(),uT=function(){function e(t,n){(0,i.Z)(this,e),this.parent=t,this.uri=n,this.children=[],this._previews=new lN.Y9}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Rx.B9)(this._previews.values()),this._previews.clear()}},{key:"getPreview",value:function(e){return this._previews.get(e.uri)}},{key:"ariaMessage",get:function(){var e=this.children.length;return 1===e?(0,hx.N)("aria.fileReferences.1","1 symbol in {0}, full path {1}",(0,ME.EZ)(this.uri),this.uri.fsPath):(0,hx.N)("aria.fileReferences.N","{0} symbols in {1}, full path {2}",e,(0,ME.EZ)(this.uri),this.uri.fsPath)}},{key:"resolve",value:function(e){return oT(this,void 0,void 0,ki().mark((function t(){var n,i,r,o;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(0===this._previews.size){t.next=2;break}return t.abrupt("return",this);case 2:n=(0,Tr.Z)(this.children),t.prev=3,n.s();case 5:if((i=n.n()).done){t.next=21;break}if(r=i.value,!this._previews.has(r.uri)){t.next=9;break}return t.abrupt("continue",19);case 9:return t.prev=9,t.next=12,e.createModelReference(r.uri);case 12:o=t.sent,this._previews.set(r.uri,new sT(o)),t.next=19;break;case 16:t.prev=16,t.t0=t.catch(9),(0,yx.dL)(t.t0);case 19:t.next=5;break;case 21:t.next=26;break;case 23:t.prev=23,t.t1=t.catch(3),n.e(t.t1);case 26:return t.prev=26,n.f(),t.finish(26);case 29:return t.abrupt("return",this);case 30:case"end":return t.stop()}}),t,this,[[3,23,26,29],[9,16]])})))}}]),e}(),lT=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this.groups=[],this.references=[],this._onDidChangeReferenceRange=new hE.Q5,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=t,this._title=n;var o,a=(0,dt.Z)(t,1)[0];t.sort(e._compareReferences);var s,u=(0,Tr.Z)(t);try{for(u.s();!(s=u.n()).done;){var l=s.value;if(o&&ME.SF.isEqual(o.uri,l.uri,!0)||(o=new uT(this,l.uri),this.groups.push(o)),0===o.children.length||0!==e._compareReferences(l,o.children[o.children.length-1])){var c=new aT(a===l,o,l,(function(e){return r._onDidChangeReferenceRange.fire(e)}));this.references.push(c),o.children.push(c)}}}catch(d){u.e(d)}finally{u.f()}}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Rx.B9)(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}},{key:"clone",value:function(){return new e(this._links,this._title)}},{key:"title",get:function(){return this._title}},{key:"isEmpty",get:function(){return 0===this.groups.length}},{key:"ariaMessage",get:function(){return this.isEmpty?(0,hx.N)("aria.result.0","No results found"):1===this.references.length?(0,hx.N)("aria.result.1","Found 1 symbol in {0}",this.references[0].uri.fsPath):1===this.groups.length?(0,hx.N)("aria.result.n1","Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):(0,hx.N)("aria.result.nm","Found {0} symbols in {1} files",this.references.length,this.groups.length)}},{key:"nextOrPreviousReference",value:function(e,t){var n=e.parent,i=n.children.indexOf(e),r=n.children.length,o=n.parent.groups.length;return 1===o||t&&i+1<r||!t&&i>0?(i=t?(i+1)%r:(i+r-1)%r,n.children[i]):(i=n.parent.groups.indexOf(n),t?(i=(i+1)%o,n.parent.groups[i].children[0]):(i=(i+o-1)%o,n.parent.groups[i].children[n.parent.groups[i].children.length-1]))}},{key:"nearestReference",value:function(e,t){var n=this.references.map((function(n,i){return{idx:i,prefixLen:CL.Mh(n.uri.toString(),e.toString()),offsetDist:100*Math.abs(n.range.startLineNumber-t.lineNumber)+Math.abs(n.range.startColumn-t.column)}})).sort((function(e,t){return e.prefixLen>t.prefixLen?-1:e.prefixLen<t.prefixLen?1:e.offsetDist<t.offsetDist?-1:e.offsetDist>t.offsetDist?1:0}))[0];if(n)return this.references[n.idx]}},{key:"referenceAt",value:function(e,t){var n,i=(0,Tr.Z)(this.references);try{for(i.s();!(n=i.n()).done;){var r=n.value;if(r.uri.toString()===e.toString()&&Fx.e.containsPosition(r.range,t))return r}}catch(o){i.e(o)}finally{i.f()}}},{key:"firstReference",value:function(){var e,t=(0,Tr.Z)(this.references);try{for(t.s();!(e=t.n()).done;){var n=e.value;if(n.isProviderFirst)return n}}catch(i){t.e(i)}finally{t.f()}return this.references[0]}}],[{key:"_compareReferences",value:function(e,t){return ME.SF.compare(e.uri,t.uri)||Fx.e.compareRangesUsingStarts(e.range,t.range)}}]),e}(),cT=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function dT(e,t,n,i){var r=n.ordered(e).map((function(n){return Promise.resolve(i(n,e,t)).then(void 0,(function(e){(0,yx.Cp)(e)}))}));return Promise.all(r).then((function(e){var t,n=[],i=(0,Tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;Array.isArray(r)?n.push.apply(n,(0,Lt.Z)(r)):r&&n.push(r)}}catch(o){i.e(o)}finally{i.f()}return n}))}function hT(e,t,n){return dT(e,t,LL.Ct,(function(e,t,i){return e.provideDefinition(t,i,n)}))}function fT(e,t,n){return dT(e,t,LL.RN,(function(e,t,i){return e.provideDeclaration(t,i,n)}))}function pT(e,t,n){return dT(e,t,LL.vI,(function(e,t,i){return e.provideImplementation(t,i,n)}))}function vT(e,t,n){return dT(e,t,LL.tA,(function(e,t,i){return e.provideTypeDefinition(t,i,n)}))}function gT(e,t,n,i){var r=this;return dT(e,t,LL.FL,(function(e,t,o){return cT(r,void 0,void 0,ki().mark((function r(){var a,s;return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.provideReferences(t,o,{includeDeclaration:!0},i);case 2:if(a=r.sent,n&&a&&2===a.length){r.next=5;break}return r.abrupt("return",a);case 5:return r.next=7,e.provideReferences(t,o,{includeDeclaration:!1},i);case 7:if(!(s=r.sent)||1!==s.length){r.next=10;break}return r.abrupt("return",s);case 10:return r.abrupt("return",a);case 11:case"end":return r.stop()}}),r)})))}))}function mT(e){return cT(this,void 0,void 0,ki().mark((function t(){var n,i,r;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e();case 2:return n=t.sent,i=new lT(n,""),r=i.references.map((function(e){return e.link})),i.dispose(),t.abrupt("return",r);case 7:case"end":return t.stop()}}),t)})))}(0,dx.sb)("_executeDefinitionProvider",(function(e,t){return mT((function(){return hT(e,t,bL.T.None)}))})),(0,dx.sb)("_executeDeclarationProvider",(function(e,t){return mT((function(){return fT(e,t,bL.T.None)}))})),(0,dx.sb)("_executeImplementationProvider",(function(e,t){return mT((function(){return pT(e,t,bL.T.None)}))})),(0,dx.sb)("_executeTypeDefinitionProvider",(function(e,t){return mT((function(){return vT(e,t,bL.T.None)}))})),(0,dx.sb)("_executeReferenceProvider",(function(e,t){return mT((function(){return gT(e,t,!1,bL.T.None)}))}));var _T=n(44148),yT=n(76191),bT=n(5677),wT=n(57502),CT=n(35215),kT=n(50482),ST=n(61743),xT=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},LT=function(e,t){return function(n,i){t(n,i,e)}},ET=function(){function e(t){(0,i.Z)(this,e),this._resolverService=t}return(0,r.Z)(e,[{key:"hasChildren",value:function(e){return e instanceof lT||e instanceof uT}},{key:"getChildren",value:function(e){if(e instanceof lT)return e.groups;if(e instanceof uT)return e.resolve(this._resolverService).then((function(e){return e.children}));throw new Error("bad tree")}}]),e}();ET=xT([LT(0,_T.S)],ET);var NT=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"getHeight",value:function(){return 23}},{key:"getTemplateId",value:function(e){return e instanceof uT?OT.id:AT.id}}]),e}(),DT=function(){function e(t){(0,i.Z)(this,e),this._keybindingService=t}return(0,r.Z)(e,[{key:"getKeyboardNavigationLabel",value:function(e){var t;if(e instanceof aT){var n=null===(t=e.parent.getPreview(e))||void 0===t?void 0:t.preview(e.range);if(n)return n.value}return(0,ME.EZ)(e.uri)}}]),e}();DT=xT([LT(0,iE.d)],DT);var MT=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"getId",value:function(e){return e instanceof aT?e.id:e.uri}}]),e}(),TT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;(0,i.Z)(this,n),(a=t.call(this))._uriLabel=r;var s=document.createElement("div");return s.classList.add("reference-file"),a.file=a._register(new bT.g(s,{supportHighlights:!0})),a.badge=new wT.Z(eE.append(s,eE.$(".count"))),a._register((0,CT.WZ)(a.badge,o)),e.appendChild(s),a}return(0,r.Z)(n,[{key:"set",value:function(e,t){var n=(0,ME.XX)(e.uri);this.file.setLabel(GN(e.uri),this._uriLabel.getUriLabel(n,{relative:!0}),{title:this._uriLabel.getUriLabel(e.uri),matches:t});var i=e.children.length;this.badge.setCount(i),i>1?this.badge.setTitleFormat((0,hx.N)("referencesCount","{0} references",i)):this.badge.setTitleFormat((0,hx.N)("referenceCount","{0} reference",i))}}]),n}(Rx.JT);TT=xT([LT(1,UD.e),LT(2,Wx.XE)],TT);var OT=function(){function e(t){(0,i.Z)(this,e),this._instantiationService=t,this.templateId=e.id}return(0,r.Z)(e,[{key:"renderTemplate",value:function(e){return this._instantiationService.createInstance(TT,e)}},{key:"renderElement",value:function(e,t,n){n.set(e.element,(0,kT.mB)(e.filterData))}},{key:"disposeTemplate",value:function(e){e.dispose()}}]),e}();OT.id="FileReferencesRenderer",OT=xT([LT(0,JL.TG)],OT);var IT=function(){function e(t){(0,i.Z)(this,e),this.label=new ST.q(t,!1)}return(0,r.Z)(e,[{key:"set",value:function(e,t){var n,i=null===(n=e.parent.getPreview(e))||void 0===n?void 0:n.preview(e.range);if(i&&i.value){var r=i.value,o=i.highlight;t&&!kT.CL.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(r,(0,kT.mB)(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(r,[o]))}else this.label.set("".concat((0,ME.EZ)(e.uri),":").concat(e.range.startLineNumber+1,":").concat(e.range.startColumn+1))}}]),e}(),AT=function(){function e(){(0,i.Z)(this,e),this.templateId=e.id}return(0,r.Z)(e,[{key:"renderTemplate",value:function(e){return new IT(e)}},{key:"renderElement",value:function(e,t,n){n.set(e.element,e.filterData)}},{key:"disposeTemplate",value:function(){}}]),e}();AT.id="OneReferenceRenderer";var PT=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"getWidgetAriaLabel",value:function(){return(0,hx.N)("treeAriaLabel","References")}},{key:"getAriaLabel",value:function(e){return e.ariaMessage}}]),e}(),RT=n(2285),ZT=n(44393),FT=n(45822),jT=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},HT=function(e,t){return function(n,i){t(n,i,e)}},BT=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},zT=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._editor=t,this._model=n,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new Rx.SL,this._callOnModelChange=new Rx.SL,this._callOnDispose.add(this._editor.onDidChangeModel((function(){return r._onModelChanged()}))),this._onModelChanged()}return(0,r.Z)(e,[{key:"dispose",value:function(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}},{key:"_onModelChanged",value:function(){this._callOnModelChange.clear();var e=this._editor.getModel();if(e){var t,n=(0,Tr.Z)(this._model.references);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(i.uri.toString()===e.uri.toString())return void this._addDecorations(i.parent)}}catch(r){n.e(r)}finally{n.f()}}}},{key:"_addDecorations",value:function(t){var n=this;if(this._editor.hasModel()){this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations((function(){return n._onDecorationChanged()})));for(var i=[],r=[],o=0,a=t.children.length;o<a;o++){var s=t.children[o];this._decorationIgnoreSet.has(s.id)||s.uri.toString()===this._editor.getModel().uri.toString()&&(i.push({range:s.range,options:e.DecorationOptions}),r.push(o))}for(var u=this._editor.deltaDecorations([],i),l=0;l<u.length;l++)this._decorations.set(u[l],t.children[r[l]])}}},{key:"_onDecorationChanged",value:function(){var e=[],t=this._editor.getModel();if(t){var n,i=(0,Tr.Z)(this._decorations);try{for(i.s();!(n=i.n()).done;){var r=(0,dt.Z)(n.value,2),o=r[0],a=r[1],s=t.getDecorationRange(o);if(s){var u=!1;if(!Fx.e.equalsRange(s,a.range)){if(Fx.e.spansMultipleLines(s))u=!0;else a.range.endColumn-a.range.startColumn!==s.endColumn-s.startColumn&&(u=!0);u?(this._decorationIgnoreSet.add(a.id),e.push(o)):a.range=s}}}}catch(d){i.e(d)}finally{i.f()}for(var l=0,c=e.length;l<c;l++)this._decorations.delete(e[l]);this._editor.deltaDecorations(e,[])}}},{key:"removeDecorations",value:function(){this._editor.deltaDecorations((0,Lt.Z)(this._decorations.keys()),[]),this._decorations.clear()}}]),e}();zT.DecorationOptions=Hx.qx.register({stickiness:1,className:"reference-decoration"});var WT=function(){function e(){(0,i.Z)(this,e),this.ratio=.7,this.heightInLines=18}return(0,r.Z)(e,null,[{key:"fromJSON",value:function(e){var t,n;try{var i=JSON.parse(e);t=i.ratio,n=i.heightInLines}catch(OM){}return{ratio:t||.7,heightInLines:n||18}}}]),e}(),VT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n)}(RT.ls),YT=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l,c,d,h){var f;return(0,i.Z)(this,n),(f=t.call(this,e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0},u))._defaultTreeKeyboardSupport=r,f.layoutData=o,f._textModelResolverService=s,f._instantiationService=u,f._peekViewService=l,f._uriLabel=c,f._undoRedoService=d,f._keybindingService=h,f._disposeOnNewModel=new Rx.SL,f._callOnDispose=new Rx.SL,f._onDidSelectReference=new hE.Q5,f.onDidSelectReference=f._onDidSelectReference.event,f._dim=new eE.Dimension(0,0),f._applyTheme(a.getColorTheme()),f._callOnDispose.add(a.onDidColorThemeChange(f._applyTheme.bind((0,yL.Z)(f)))),f._peekViewService.addExclusiveWidget(e,(0,yL.Z)(f)),f.create(),f}return(0,r.Z)(n,[{key:"dispose",value:function(){this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),(0,Rx.B9)(this._preview),(0,Rx.B9)(this._previewNotAvailableMessage),(0,Rx.B9)(this._tree),(0,Rx.B9)(this._previewModelReference),this._splitView.dispose(),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"_applyTheme",value:function(e){var t=e.getColor(AD)||SN.Il.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(TD)||SN.Il.transparent,primaryHeadingColor:e.getColor(OD),secondaryHeadingColor:e.getColor(ID)})}},{key:"show",value:function(e){this.editor.revealRangeInCenterIfOutsideViewport(e,0),(0,YL.Z)((0,UL.Z)(n.prototype),"show",this).call(this,e,this.layoutData.heightInLines||18)}},{key:"focusOnReferenceTree",value:function(){this._tree.domFocus()}},{key:"focusOnPreviewEditor",value:function(){this._preview.focus()}},{key:"isPreviewEditorFocused",value:function(){return this._preview.hasTextFocus()}},{key:"_onTitleClick",value:function(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?"side":"open",source:"title"})}},{key:"_fillBody",value:function(e){var t=this;this.setCssClass("reference-zone-widget"),this._messageContainer=eE.append(e,eE.$("div.messages")),eE.hide(this._messageContainer),this._splitView=new ZT.z(e,{orientation:1}),this._previewContainer=eE.append(e,eE.$("div.preview.inline"));this._preview=this._instantiationService.createInstance(nD,this._previewContainer,{scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!1},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}},this.editor),eE.hide(this._previewContainer),this._previewNotAvailableMessage=new Hx.yO(hx.N("missingPreviewMessage","no preview available"),Hx.yO.DEFAULT_CREATION_OPTIONS,null,null,this._undoRedoService),this._treeContainer=eE.append(e,eE.$("div.ref-tree.inline"));var n={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new PT,keyboardNavigationLabelProvider:this._instantiationService.createInstance(DT),identityProvider:new MT,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:PD}};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(eE.addStandardDisposableListener(this._treeContainer,"keydown",(function(e){e.equals(9)&&(t._keybindingService.dispatchEvent(e,e.target),e.stopPropagation())}),!0)),this._tree=this._instantiationService.createInstance(VT,"ReferencesWidget",this._treeContainer,new NT,[this._instantiationService.createInstance(OT),this._instantiationService.createInstance(AT)],this._instantiationService.createInstance(ET),n),this._splitView.addView({onDidChange:hE.ju.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:function(e){t._preview.layout({height:t._dim.height,width:e})}},ZT.M.Distribute),this._splitView.addView({onDidChange:hE.ju.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:function(e){t._treeContainer.style.height="".concat(t._dim.height,"px"),t._treeContainer.style.width="".concat(e,"px"),t._tree.layout(t._dim.height,e)}},ZT.M.Distribute),this._disposables.add(this._splitView.onDidSashChange((function(){t._dim.width&&(t.layoutData.ratio=t._splitView.getViewSize(0)/t._dim.width)}),void 0));var i=function(e,n){e instanceof aT&&("show"===n&&t._revealReference(e,!1),t._onDidSelectReference.fire({element:e,kind:n,source:"tree"}))};this._tree.onDidOpen((function(e){e.sideBySide?i(e.element,"side"):e.editorOptions.pinned?i(e.element,"goto"):i(e.element,"show")})),eE.hide(this._treeContainer)}},{key:"_onWidth",value:function(e){this._dim&&this._doLayoutBody(this._dim.height,e)}},{key:"_doLayoutBody",value:function(e,t){(0,YL.Z)((0,UL.Z)(n.prototype),"_doLayoutBody",this).call(this,e,t),this._dim=new eE.Dimension(t,e),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(t),this._splitView.resizeView(0,t*this.layoutData.ratio)}},{key:"setSelection",value:function(e){var t=this;return this._revealReference(e,!0).then((function(){t._model&&(t._tree.setSelection([e]),t._tree.setFocus([e]))}))}},{key:"setModel",value:function(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}},{key:"_onNewModel",value:function(){var e=this;return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=hx.N("noResults","No results"),eE.show(this._messageContainer),Promise.resolve(void 0)):(eE.hide(this._messageContainer),this._decorationsManager=new zT(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((function(t){return e._tree.rerender(t)}))),this._disposeOnNewModel.add(this._preview.onMouseDown((function(t){var n=t.event,i=t.target;if(2===n.detail){var r=e._getFocusedReference();r&&e._onDidSelectReference.fire({element:{uri:r.uri,range:i.range},kind:n.ctrlKey||n.metaKey||n.altKey?"side":"open",source:"editor"})}}))),this.container.classList.add("results-loaded"),eE.show(this._treeContainer),eE.show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(1===this._model.groups.length?this._model.groups[0]:this._model)):Promise.resolve(void 0)}},{key:"_getFocusedReference",value:function(){var e=this._tree.getFocus(),t=(0,dt.Z)(e,1)[0];return t instanceof aT?t:t instanceof uT&&t.children.length>0?t.children[0]:void 0}},{key:"revealReference",value:function(e){return BT(this,void 0,void 0,ki().mark((function t(){return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._revealReference(e,!1);case 2:this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"});case 3:case"end":return t.stop()}}),t,this)})))}},{key:"_revealReference",value:function(e,t){return BT(this,void 0,void 0,ki().mark((function n(){var i,r,o,a,s;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(this._revealedReference!==e){n.next=2;break}return n.abrupt("return");case 2:if(this._revealedReference=e,e.uri.scheme!==KN.lg.inMemory?this.setTitle((0,ME.Hx)(e.uri),this._uriLabel.getUriLabel((0,ME.XX)(e.uri))):this.setTitle(hx.N("peekView.alternateTitle","References")),i=this._textModelResolverService.createModelReference(e.uri),this._tree.getInput()!==e.parent){n.next=9;break}this._tree.reveal(e),n.next=13;break;case 9:return t&&this._tree.reveal(e.parent),n.next=12,this._tree.expand(e.parent);case 12:this._tree.reveal(e);case 13:return n.next=15,i;case 15:if(r=n.sent,this._model){n.next=19;break}return r.dispose(),n.abrupt("return");case 19:(0,Rx.B9)(this._previewModelReference),(o=r.object)?(a=this._preview.getModel()===o.textEditorModel?0:1,s=Fx.e.lift(e.range).collapseToStart(),this._previewModelReference=r,this._preview.setModel(o.textEditorModel),this._preview.setSelection(s),this._preview.revealRangeInCenter(s,a)):(this._preview.setModel(this._previewNotAvailableMessage),r.dispose());case 22:case"end":return n.stop()}}),n,this)})))}}]),n}(DD);YT=jT([HT(3,Wx.XE),HT(4,_T.S),HT(5,JL.TG),HT(6,LD),HT(7,UD.e),HT(8,FT.tJ),HT(9,iE.d)],YT),(0,Wx.Ic)((function(e,t){var n=e.getColor(zD);n&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { background-color: ".concat(n,"; }"));var i=e.getColor(WD);i&&t.addRule(".monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: ".concat(i,"; }"));var r=e.getColor(VD);r&&t.addRule(".monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid ".concat(r,"; box-sizing: border-box; }"));var o=e.getColor(zx.xL);o&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { border: 1px dotted ".concat(o,"; box-sizing: border-box; }"));var a=e.getColor(PD);a&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree { background-color: ".concat(a,"; }"));var s=e.getColor(RD);s&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree { color: ".concat(s,"; }"));var u=e.getColor(ZD);u&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .reference-file { color: ".concat(u,"; }"));var l=e.getColor(FD);l&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { background-color: ".concat(l,"; }"));var c=e.getColor(jD);c&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { color: ".concat(c," !important; }"));var d=e.getColor(HD);d&&t.addRule(".monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {"+"\tbackground-color: ".concat(d,";")+"}");var h=e.getColor(BD);h&&t.addRule(".monaco-editor .reference-zone-widget .preview .monaco-editor .margin {"+"\tbackground-color: ".concat(h,";")+"}")}));var UT=n(51519),KT=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},qT=function(e,t){return function(n,i){t(n,i,e)}},GT=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},$T=new gx.uy("referenceSearchVisible",!1,hx.N("referenceSearchVisible","Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),QT=function(){function e(t,n,r,o,a,s,u,l){(0,i.Z)(this,e),this._defaultTreeKeyboardSupport=t,this._editor=n,this._editorService=o,this._notificationService=a,this._instantiationService=s,this._storageService=u,this._configurationService=l,this._disposables=new Rx.SL,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=$T.bindTo(r)}return(0,r.Z)(e,[{key:"dispose",value:function(){var e,t;this._referenceSearchVisible.reset(),this._disposables.dispose(),null===(e=this._widget)||void 0===e||e.dispose(),null===(t=this._model)||void 0===t||t.dispose(),this._widget=void 0,this._model=void 0}},{key:"toggleWidget",value:function(e,t,n){var i,r=this;if(this._widget&&(i=this._widget.position),this.closeWidget(),!i||!e.containsPosition(i)){this._peekMode=n,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage((function(){r.closeWidget()}))),this._disposables.add(this._editor.onDidChangeModel((function(){r._ignoreModelChangeEvent||r.closeWidget()})));var o="peekViewLayout",a=WT.fromJSON(this._storageService.get(o,0,"{}"));this._widget=this._instantiationService.createInstance(YT,this._editor,this._defaultTreeKeyboardSupport,a),this._widget.setTitle(hx.N("labelLoading","Loading...")),this._widget.show(e),this._disposables.add(this._widget.onDidClose((function(){t.cancel(),r._widget&&(r._storageService.store(o,JSON.stringify(r._widget.layoutData),0,1),r._widget=void 0),r.closeWidget()}))),this._disposables.add(this._widget.onDidSelectReference((function(e){var t=e.element,i=e.kind;if(t)switch(i){case"open":"editor"===e.source&&r._configurationService.getValue("editor.stablePeek")||r.openReference(t,!1,!1);break;case"side":r.openReference(t,!0,!1);break;case"goto":n?r._gotoReference(t):r.openReference(t,!1,!0)}})));var s=++this._requestIdPool;t.then((function(t){var n;if(s===r._requestIdPool&&r._widget)return null===(n=r._model)||void 0===n||n.dispose(),r._model=t,r._widget.setModel(r._model).then((function(){if(r._widget&&r._model&&r._editor.hasModel()){r._model.isEmpty?r._widget.setMetaTitle(""):r._widget.setMetaTitle(hx.N("metaTitle.N","{0} ({1})",r._model.title,r._model.references.length));var t=r._editor.getModel().uri,n=new Zx.L(e.startLineNumber,e.startColumn),i=r._model.nearestReference(t,n);if(i)return r._widget.setSelection(i).then((function(){r._widget&&"editor"===r._editor.getOption(73)&&r._widget.focusOnPreviewEditor()}))}}));t.dispose()}),(function(e){r._notificationService.error(e)}))}}},{key:"changeFocusBetweenPreviewAndReferences",value:function(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}},{key:"goToNextOrPreviousReference",value:function(e){return GT(this,void 0,void 0,ki().mark((function t(){var n,i,r,o,a;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()&&this._model&&this._widget){t.next=2;break}return t.abrupt("return");case 2:if(n=this._widget.position){t.next=5;break}return t.abrupt("return");case 5:if(i=this._model.nearestReference(this._editor.getModel().uri,n)){t.next=8;break}return t.abrupt("return");case 8:return r=this._model.nextOrPreviousReference(i,e),o=this._editor.hasTextFocus(),a=this._widget.isPreviewEditorFocused(),t.next=13,this._widget.setSelection(r);case 13:return t.next=15,this._gotoReference(r);case 15:o?this._editor.focus():this._widget&&a&&this._widget.focusOnPreviewEditor();case 16:case"end":return t.stop()}}),t,this)})))}},{key:"revealReference",value:function(e){return GT(this,void 0,void 0,ki().mark((function t(){return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()&&this._model&&this._widget){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,this._widget.revealReference(e);case 4:case"end":return t.stop()}}),t,this)})))}},{key:"closeWidget",value:function(){var e,t,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];null===(e=this._widget)||void 0===e||e.dispose(),null===(t=this._model)||void 0===t||t.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,n&&this._editor.focus(),this._requestIdPool+=1}},{key:"_gotoReference",value:function(t){var n=this;this._widget&&this._widget.hide(),this._ignoreModelChangeEvent=!0;var i=Fx.e.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:i}},this._editor).then((function(t){var r;if(n._ignoreModelChangeEvent=!1,t&&n._widget)if(n._editor===t)n._widget.show(i),n._widget.focusOnReferenceTree();else{var o=e.get(t),a=n._model.clone();n.closeWidget(),t.focus(),o.toggleWidget(i,(0,Px.PG)((function(e){return Promise.resolve(a)})),null!==(r=n._peekMode)&&void 0!==r&&r)}else n.closeWidget()}),(function(e){n._ignoreModelChangeEvent=!1,(0,yx.dL)(e)}))}},{key:"openReference",value:function(e,t,n){t||this.closeWidget();var i=e.uri,r=e.range;this._editorService.openCodeEditor({resource:i,options:{selection:r,pinned:n}},this._editor,t)}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();function XT(e,t){var n=function(e){var t=e.get(aL.$).getFocusedCodeEditor();return t instanceof nD?t.getParentEditor():t}(e);if(n){var i=QT.get(n);i&&t(i)}}QT.ID="editor.contrib.referencesController",QT=KT([qT(2,gx.i6),qT(3,aL.$),qT(4,NE.lT),qT(5,JL.TG),qT(6,cN.Uy),qT(7,LN.Ui)],QT),UT.W.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:(0,vx.gx)(2089,60),when:gx.Ao.or($T,kD.inPeekEditor),handler:function(e){XT(e,(function(e){e.changeFocusBetweenPreviewAndReferences()}))}}),UT.W.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:gx.Ao.or($T,kD.inPeekEditor),handler:function(e){XT(e,(function(e){e.goToNextOrPreviousReference(!0)}))}}),UT.W.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:gx.Ao.or($T,kD.inPeekEditor),handler:function(e){XT(e,(function(e){e.goToNextOrPreviousReference(!1)}))}}),IL.P.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),IL.P.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),IL.P.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),IL.P.registerCommand("closeReferenceSearch",(function(e){return XT(e,(function(e){return e.closeWidget()}))})),UT.W.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:gx.Ao.and(kD.inPeekEditor,gx.Ao.not("config.editor.stablePeek"))}),UT.W.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:gx.Ao.and($T,gx.Ao.not("config.editor.stablePeek"))}),UT.W.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:gx.Ao.and($T,RT.CQ),handler:function(e){var t,n=null===(t=e.get(RT.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof aT&&XT(e,(function(e){return e.revealReference(n[0])}))}}),UT.W.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:gx.Ao.and($T,RT.CQ),handler:function(e){var t,n=null===(t=e.get(RT.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof aT&&XT(e,(function(e){return e.openReference(n[0],!0,!0)}))}}),IL.P.registerCommand("openReference",(function(e){var t,n=null===(t=e.get(RT.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof aT&&XT(e,(function(e){return e.openReference(n[0],!1,!0)}))}));var JT=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},eO=function(e,t){return function(n,i){t(n,i,e)}},tO=new gx.uy("hasSymbols",!1,(0,hx.N)("hasSymbols","Whether there are symbol locations that can be navigated via keyboard-only.")),nO=(0,JL.yh)("ISymbolNavigationService"),iO=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._editorService=n,this._notificationService=r,this._keybindingService=o,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=tO.bindTo(t)}return(0,r.Z)(e,[{key:"reset",value:function(){var e,t;this._ctxHasSymbols.reset(),null===(e=this._currentState)||void 0===e||e.dispose(),null===(t=this._currentMessage)||void 0===t||t.dispose(),this._currentModel=void 0,this._currentIdx=-1}},{key:"put",value:function(e){var t=this,n=e.parent.parent;if(n.references.length<=1)this.reset();else{this._currentModel=n,this._currentIdx=n.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();var i=new rO(this._editorService),r=i.onDidChange((function(e){if(!t._ignoreEditorChange){var i=t._editorService.getActiveCodeEditor();if(i){var r=i.getModel(),o=i.getPosition();if(r&&o){var a,s=!1,u=!1,l=(0,Tr.Z)(n.references);try{for(l.s();!(a=l.n()).done;){var c=a.value;if((0,ME.Xy)(c.uri,r.uri))s=!0,u=u||Fx.e.containsPosition(c.range,o);else if(s)break}}catch(d){l.e(d)}finally{l.f()}s&&u||t.reset()}}}}));this._currentState=(0,Rx.F8)(i,r)}}},{key:"revealNext",value:function(e){var t=this;if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;var n=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:n.uri,options:{selection:Fx.e.collapseToStart(n.range),selectionRevealType:3}},e).finally((function(){t._ignoreEditorChange=!1}))}},{key:"_showMessage",value:function(){var e;null===(e=this._currentMessage)||void 0===e||e.dispose();var t=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),n=t?(0,hx.N)("location.kb","Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):(0,hx.N)("location","Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(n)}}]),e}();iO=JT([eO(0,gx.i6),eO(1,aL.$),eO(2,NE.lT),eO(3,iE.d)],iO),(0,uN.z)(nO,iO,!0),(0,dx.fK)(new(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.gotoNextSymbolFromResult",precondition:tO,kbOpts:{weight:100,primary:70}})}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t){return e.get(nO).revealNext(t)}}]),n}(dx._l))),UT.W.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:tO,primary:9,handler:function(e){e.get(nO).reset()}});var rO=function(){function e(t){(0,i.Z)(this,e),this._listener=new Map,this._disposables=new Rx.SL,this._onDidChange=new hE.Q5,this.onDidChange=this._onDidChange.event,this._disposables.add(t.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(t.onCodeEditorAdd(this._onDidAddEditor,this)),t.listCodeEditors().forEach(this._onDidAddEditor,this)}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this._onDidChange.dispose(),(0,Rx.B9)(this._listener.values())}},{key:"_onDidAddEditor",value:function(e){var t=this;this._listener.set(e,(0,Rx.F8)(e.onDidChangeCursorPosition((function(n){return t._onDidChange.fire({editor:e})})),e.onDidChangeModelContent((function(n){return t._onDidChange.fire({editor:e})}))))}},{key:"_onDidRemoveEditor",value:function(e){var t;null===(t=this._listener.get(e))||void 0===t||t.dispose(),this._listener.delete(e)}}]),e}();rO=JT([eO(0,aL.$)],rO);var oO,aO,sO,uO,lO,cO,dO,hO,fO=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};Vx.BH.appendMenuItem(Vx.eH.EditorContext,{submenu:Vx.eH.EditorContextPeek,title:hx.N("peek.submenu","Peek"),group:"navigation",order:100});var pO=new Set;function vO(e){var t=new e;return(0,dx.QG)(t),pO.add(t.id),t}var gO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r))._configuration=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=this;if(!t.hasModel())return Promise.resolve(void 0);var i=e.get(NE.lT),r=e.get(aL.$),o=e.get(OL.e),a=e.get(nO),s=t.getModel(),u=t.getPosition(),l=new xL.Dl(t,5),c=(0,Px.eP)(this._getLocationModel(s,u,l.token),l.token).then((function(e){return fO(n,void 0,void 0,ki().mark((function n(){var i,o,c,d;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e&&!l.token.isCancellationRequested){n.next=2;break}return n.abrupt("return");case 2:if((0,xx.Z9)(e.ariaMessage),e.referenceAt(s.uri,u)&&(o=this._getAlternativeCommand(t))!==this.id&&pO.has(o)&&(i=t.getAction(o)),0!==(c=e.references.length)){n.next=9;break}this._configuration.muteMessage||(d=s.getWordAtPosition(u),$L.get(t).showMessage(this._getNoResultFoundMessage(d),u)),n.next=14;break;case 9:if(1!==c||!i){n.next=13;break}i.run(),n.next=14;break;case 13:return n.abrupt("return",this._onResult(r,a,t,e));case 14:case"end":return n.stop()}}),n,this)})))}),(function(e){i.error(e)})).finally((function(){l.dispose()}));return o.showWhile(c,250),c}},{key:"_onResult",value:function(e,t,n,i){return fO(this,void 0,void 0,ki().mark((function r(){var o,a,s,u;return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=this._getGoToPreference(n),n instanceof nD||!(this._configuration.openInPeek||"peek"===o&&i.references.length>1)){r.next=5;break}this._openInPeek(n,i),r.next=12;break;case 5:return a=i.firstReference(),s=i.references.length>1&&"gotoAndPeek"===o,r.next=9,this._openReference(n,e,a,this._configuration.openToSide,!s);case 9:u=r.sent,s&&u?this._openInPeek(u,i):i.dispose(),"goto"===o&&t.put(a);case 12:case"end":return r.stop()}}),r,this)})))}},{key:"_openReference",value:function(e,t,n,i,r){return fO(this,void 0,void 0,ki().mark((function o(){var a,s,u,l;return ki().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(a=void 0,(0,LL.vx)(n)&&(a=n.targetSelectionRange),a||(a=n.range),a){o.next=5;break}return o.abrupt("return",void 0);case 5:return o.next=7,t.openCodeEditor({resource:n.uri,options:{selection:Fx.e.collapseToStart(a),selectionRevealType:3}},e,i);case 7:if(s=o.sent){o.next=10;break}return o.abrupt("return",void 0);case 10:return r&&(u=s.getModel(),l=s.deltaDecorations([],[{range:a,options:{className:"symbolHighlight"}}]),setTimeout((function(){s.getModel()===u&&s.deltaDecorations(l,[])}),350)),o.abrupt("return",s);case 12:case"end":return o.stop()}}),o)})))}},{key:"_openInPeek",value:function(e,t){var n=QT.get(e);n&&e.hasModel()?n.toggleWidget(e.getSelection(),(0,Px.PG)((function(e){return Promise.resolve(t)})),this._configuration.openInPeek):t.dispose()}}]),n}(dx.R6),mO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return fO(this,void 0,void 0,ki().mark((function i(){return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=lT,i.next=3,hT(e,t,n);case 3:return i.t1=i.sent,i.t2=hx.N("def.title","Definitions"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?hx.N("noResultWord","No definition found for '{0}'",e.word):hx.N("generic.noResults","No definition found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeDefinitionCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleDefinitions}}]),n}(gO),_O=rL.$L&&!iL.$W?2118:70;vO(((oO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),e=t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.id,label:hx.N("actions.goToDecl.label","Go to Definition"),alias:"Go to Definition",precondition:gx.Ao.and(fx.u.hasDefinitionProvider,fx.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:_O,weight:100},contextMenuOpts:{group:"navigation",order:1.1},menuOpts:{menuId:Vx.eH.MenubarGoMenu,group:"4_symbol_nav",order:2,title:hx.N({key:"miGotoDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Definition")}}),IL.P.registerCommandAlias("editor.action.goToDeclaration",n.id),e}return(0,r.Z)(n)}(mO)).id="editor.action.revealDefinition",oO)),vO(((aO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),e=t.call(this,{openToSide:!0,openInPeek:!1,muteMessage:!1},{id:n.id,label:hx.N("actions.goToDeclToSide.label","Open Definition to the Side"),alias:"Open Definition to the Side",precondition:gx.Ao.and(fx.u.hasDefinitionProvider,fx.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,_O),weight:100}}),IL.P.registerCommandAlias("editor.action.openDeclarationToTheSide",n.id),e}return(0,r.Z)(n)}(mO)).id="editor.action.revealDefinitionAside",aO)),vO(((sO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),e=t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:n.id,label:hx.N("actions.previewDecl.label","Peek Definition"),alias:"Peek Definition",precondition:gx.Ao.and(fx.u.hasDefinitionProvider,kD.notInPeekEditor,fx.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:582,linux:{primary:3140},weight:100},contextMenuOpts:{menuId:Vx.eH.EditorContextPeek,group:"peek",order:2}}),IL.P.registerCommandAlias("editor.action.previewDeclaration",n.id),e}return(0,r.Z)(n)}(mO)).id="editor.action.peekDefinition",sO));var yO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return fO(this,void 0,void 0,ki().mark((function i(){return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=lT,i.next=3,fT(e,t,n);case 3:return i.t1=i.sent,i.t2=hx.N("decl.title","Declarations"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?hx.N("decl.noResultWord","No declaration found for '{0}'",e.word):hx.N("decl.generic.noResults","No declaration found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeDeclarationCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleDeclarations}}]),n}(gO);vO(((uO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.id,label:hx.N("actions.goToDeclaration.label","Go to Declaration"),alias:"Go to Declaration",precondition:gx.Ao.and(fx.u.hasDeclarationProvider,fx.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{group:"navigation",order:1.3},menuOpts:{menuId:Vx.eH.MenubarGoMenu,group:"4_symbol_nav",order:3,title:hx.N({key:"miGotoDeclaration",comment:["&& denotes a mnemonic"]},"Go to &&Declaration")}})}return(0,r.Z)(n,[{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?hx.N("decl.noResultWord","No declaration found for '{0}'",e.word):hx.N("decl.generic.noResults","No declaration found")}}]),n}(yO)).id="editor.action.revealDeclaration",uO)),vO(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",label:hx.N("actions.peekDecl.label","Peek Declaration"),alias:"Peek Declaration",precondition:gx.Ao.and(fx.u.hasDeclarationProvider,kD.notInPeekEditor,fx.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:Vx.eH.EditorContextPeek,group:"peek",order:3}})}return(0,r.Z)(n)}(yO));var bO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return fO(this,void 0,void 0,ki().mark((function i(){return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=lT,i.next=3,vT(e,t,n);case 3:return i.t1=i.sent,i.t2=hx.N("typedef.title","Type Definitions"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?hx.N("goToTypeDefinition.noResultWord","No type definition found for '{0}'",e.word):hx.N("goToTypeDefinition.generic.noResults","No type definition found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeTypeDefinitionCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleTypeDefinitions}}]),n}(gO);vO(((lO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.ID,label:hx.N("actions.goToTypeDefinition.label","Go to Type Definition"),alias:"Go to Type Definition",precondition:gx.Ao.and(fx.u.hasTypeDefinitionProvider,fx.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:0,weight:100},contextMenuOpts:{group:"navigation",order:1.4},menuOpts:{menuId:Vx.eH.MenubarGoMenu,group:"4_symbol_nav",order:3,title:hx.N({key:"miGotoTypeDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Type Definition")}})}return(0,r.Z)(n)}(bO)).ID="editor.action.goToTypeDefinition",lO)),vO(((cO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:n.ID,label:hx.N("actions.peekTypeDefinition.label","Peek Type Definition"),alias:"Peek Type Definition",precondition:gx.Ao.and(fx.u.hasTypeDefinitionProvider,kD.notInPeekEditor,fx.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:Vx.eH.EditorContextPeek,group:"peek",order:4}})}return(0,r.Z)(n)}(bO)).ID="editor.action.peekTypeDefinition",cO));var wO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return fO(this,void 0,void 0,ki().mark((function i(){return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=lT,i.next=3,pT(e,t,n);case 3:return i.t1=i.sent,i.t2=hx.N("impl.title","Implementations"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?hx.N("goToImplementation.noResultWord","No implementation found for '{0}'",e.word):hx.N("goToImplementation.generic.noResults","No implementation found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeImplementationCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleImplementations}}]),n}(gO);vO(((dO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.ID,label:hx.N("actions.goToImplementation.label","Go to Implementations"),alias:"Go to Implementations",precondition:gx.Ao.and(fx.u.hasImplementationProvider,fx.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:2118,weight:100},menuOpts:{menuId:Vx.eH.MenubarGoMenu,group:"4_symbol_nav",order:4,title:hx.N({key:"miGotoImplementation",comment:["&& denotes a mnemonic"]},"Go to &&Implementations")},contextMenuOpts:{group:"navigation",order:1.45}})}return(0,r.Z)(n)}(wO)).ID="editor.action.goToImplementation",dO)),vO(((hO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:n.ID,label:hx.N("actions.peekImplementation.label","Peek Implementations"),alias:"Peek Implementations",precondition:gx.Ao.and(fx.u.hasImplementationProvider,kD.notInPeekEditor,fx.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3142,weight:100},contextMenuOpts:{menuId:Vx.eH.EditorContextPeek,group:"peek",order:5}})}return(0,r.Z)(n)}(wO)).ID="editor.action.peekImplementation",hO));var CO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getNoResultFoundMessage",value:function(e){return e?hx.N("references.no","No references found for '{0}'",e.word):hx.N("references.noGeneric","No references found")}},{key:"_getAlternativeCommand",value:function(e){return e.getOption(47).alternativeReferenceCommand}},{key:"_getGoToPreference",value:function(e){return e.getOption(47).multipleReferences}}]),n}(gO);vO(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",label:hx.N("goToReferences.label","Go to References"),alias:"Go to References",precondition:gx.Ao.and(fx.u.hasReferenceProvider,kD.notInPeekEditor,fx.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1094,weight:100},contextMenuOpts:{group:"navigation",order:1.45},menuOpts:{menuId:Vx.eH.MenubarGoMenu,group:"4_symbol_nav",order:5,title:hx.N({key:"miGotoReference",comment:["&& denotes a mnemonic"]},"Go to &&References")}})}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return fO(this,void 0,void 0,ki().mark((function i(){return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=lT,i.next=3,gT(e,t,!0,n);case 3:return i.t1=i.sent,i.t2=hx.N("ref.title","References"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}}]),n}(CO)),vO(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",label:hx.N("references.action.label","Peek References"),alias:"Peek References",precondition:gx.Ao.and(fx.u.hasReferenceProvider,kD.notInPeekEditor,fx.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:Vx.eH.EditorContextPeek,group:"peek",order:6}})}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return fO(this,void 0,void 0,ki().mark((function i(){return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=lT,i.next=3,gT(e,t,!1,n);case 3:return i.t1=i.sent,i.t2=hx.N("ref.title","References"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}}]),n}(CO));var kO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,e,{id:"editor.action.goToLocation",label:hx.N("label.generic","Go To Any Symbol"),alias:"Go To Any Symbol",precondition:gx.Ao.and(kD.notInPeekEditor,fx.u.isInWalkThroughSnippet.toNegated())}))._references=r,a._gotoMultipleBehaviour=o,a}return(0,r.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return fO(this,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new lT(this._references,hx.N("generic.title","Locations")));case 1:case"end":return e.stop()}}),e,this)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&hx.N("generic.noResult","No results for '{0}'",e.word)||""}},{key:"_getGoToPreference",value:function(e){var t;return null!==(t=this._gotoMultipleBehaviour)&&void 0!==t?t:e.getOption(47).multipleReferences}},{key:"_getAlternativeCommand",value:function(){return""}}]),n}(gO);function SO(e,t){return!!e[t]}IL.P.registerCommand({id:"editor.action.goToLocations",description:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:SL.o},{name:"position",description:"The position at which to start",constraint:Zx.L.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:function(e,t,n,s,u,l,c){return fO(void 0,void 0,void 0,ki().mark((function d(){var h,f;return ki().wrap((function(d){for(;;)switch(d.prev=d.next){case 0:return(0,JE.p_)(SL.o.isUri(t)),(0,JE.p_)(Zx.L.isIPosition(n)),(0,JE.p_)(Array.isArray(s)),(0,JE.p_)("undefined"===typeof u||"string"===typeof u),(0,JE.p_)("undefined"===typeof c||"boolean"===typeof c),h=e.get(aL.$),d.next=8,h.openCodeEditor({resource:t},h.getFocusedCodeEditor());case 8:if(f=d.sent,!(0,yT.CL)(f)){d.next=13;break}return f.setPosition(n),f.revealPositionInCenterIfOutsideViewport(n,0),d.abrupt("return",f.invokeWithinContext((function(e){var t=new(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_getNoResultFoundMessage",value:function(e){return l||(0,YL.Z)((0,UL.Z)(n.prototype),"_getNoResultFoundMessage",this).call(this,e)}}]),n}(kO))({muteMessage:!Boolean(l),openInPeek:Boolean(c),openToSide:!1},s,u);e.get(JL.TG).invokeFunction(t.run.bind(t),f)})));case 13:case"end":return d.stop()}}),d)})))}}),IL.P.registerCommand({id:"editor.action.peekLocations",description:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:SL.o},{name:"position",description:"The position at which to start",constraint:Zx.L.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"}]},handler:function(e,t,n,i,r){return fO(void 0,void 0,void 0,ki().mark((function o(){return ki().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:e.get(IL.H).executeCommand("editor.action.goToLocations",t,n,i,r,void 0,!0);case 1:case"end":return o.stop()}}),o)})))}}),IL.P.registerCommand({id:"editor.action.findReferences",handler:function(e,t,n){(0,JE.p_)(SL.o.isUri(t)),(0,JE.p_)(Zx.L.isIPosition(n));var i=e.get(aL.$);return i.openCodeEditor({resource:t},i.getFocusedCodeEditor()).then((function(e){if((0,yT.CL)(e)&&e.hasModel()){var t=QT.get(e);if(t){var i=(0,Px.PG)((function(t){return gT(e.getModel(),Zx.L.lift(n),!1,t).then((function(e){return new lT(e,hx.N("ref.title","References"))}))})),r=new Fx.e(n.lineNumber,n.column,n.lineNumber,n.column);return Promise.resolve(t.toggleWidget(r,i,!1))}}}))}}),IL.P.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var xO=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.target=t.target,this.hasTriggerModifier=SO(t.event,n.triggerModifier),this.hasSideBySideModifier=SO(t.event,n.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=t.event.detail<=1})),LO=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.keyCodeIsTriggerKey=t.keyCode===n.triggerKey,this.keyCodeIsSideBySideKey=t.keyCode===n.triggerSideBySideKey,this.hasTriggerModifier=SO(t,n.triggerModifier)})),EO=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.triggerKey=t,this.triggerModifier=n,this.triggerSideBySideKey=r,this.triggerSideBySideModifier=o}return(0,r.Z)(e,[{key:"equals",value:function(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}}]),e}();function NO(e){return"altKey"===e?rL.dz?new EO(57,"metaKey",6,"altKey"):new EO(5,"ctrlKey",6,"altKey"):rL.dz?new EO(6,"altKey",57,"metaKey"):new EO(6,"altKey",5,"ctrlKey")}var DO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._onMouseMoveOrRelevantKeyDown=r._register(new hE.Q5),r.onMouseMoveOrRelevantKeyDown=r._onMouseMoveOrRelevantKeyDown.event,r._onExecute=r._register(new hE.Q5),r.onExecute=r._onExecute.event,r._onCancel=r._register(new hE.Q5),r.onCancel=r._onCancel.event,r._editor=e,r._opts=NO(r._editor.getOption(66)),r._lastMouseMoveEvent=null,r._hasTriggerKeyOnMouseDown=!1,r._lineNumberOnMouseDown=0,r._register(r._editor.onDidChangeConfiguration((function(e){if(e.hasChanged(66)){var t=NO(r._editor.getOption(66));if(r._opts.equals(t))return;r._opts=t,r._lastMouseMoveEvent=null,r._hasTriggerKeyOnMouseDown=!1,r._lineNumberOnMouseDown=0,r._onCancel.fire()}}))),r._register(r._editor.onMouseMove((function(e){return r._onEditorMouseMove(new xO(e,r._opts))}))),r._register(r._editor.onMouseDown((function(e){return r._onEditorMouseDown(new xO(e,r._opts))}))),r._register(r._editor.onMouseUp((function(e){return r._onEditorMouseUp(new xO(e,r._opts))}))),r._register(r._editor.onKeyDown((function(e){return r._onEditorKeyDown(new LO(e,r._opts))}))),r._register(r._editor.onKeyUp((function(e){return r._onEditorKeyUp(new LO(e,r._opts))}))),r._register(r._editor.onMouseDrag((function(){return r._resetHandler()}))),r._register(r._editor.onDidChangeCursorSelection((function(e){return r._onDidChangeCursorSelection(e)}))),r._register(r._editor.onDidChangeModel((function(e){return r._resetHandler()}))),r._register(r._editor.onDidChangeModelContent((function(){return r._resetHandler()}))),r._register(r._editor.onDidScrollChange((function(e){(e.scrollTopChanged||e.scrollLeftChanged)&&r._resetHandler()}))),r}return(0,r.Z)(n,[{key:"_onDidChangeCursorSelection",value:function(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}},{key:"_onEditorMouseMove",value:function(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}},{key:"_onEditorMouseDown",value:function(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=e.target.position?e.target.position.lineNumber:0}},{key:"_onEditorMouseUp",value:function(e){var t=e.target.position?e.target.position.lineNumber:0;this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}},{key:"_onEditorKeyDown",value:function(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}},{key:"_onEditorKeyUp",value:function(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}},{key:"_resetHandler",value:function(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}]),n}(Rx.JT),MO=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},TO=function(e,t){return function(n,i){t(n,i,e)}},OO=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this.textModelResolverService=n,this.modeService=r,this.toUnhook=new Rx.SL,this.toUnhookForKeyboard=new Rx.SL,this.linkDecorations=[],this.currentWordAtPosition=null,this.previousPromise=null,this.editor=t;var a=new DO(t);this.toUnhook.add(a),this.toUnhook.add(a.onMouseMoveOrRelevantKeyDown((function(e){var t=(0,dt.Z)(e,2),n=t[0],i=t[1];o.startFindDefinitionFromMouse(n,(0,JE.f6)(i))}))),this.toUnhook.add(a.onExecute((function(e){o.isEnabled(e)&&o.gotoDefinition(e.target.position,e.hasSideBySideModifier).then((function(){o.removeLinkDecorations()}),(function(e){o.removeLinkDecorations(),(0,yx.dL)(e)}))}))),this.toUnhook.add(a.onCancel((function(){o.removeLinkDecorations(),o.currentWordAtPosition=null})))}return(0,r.Z)(e,[{key:"startFindDefinitionFromCursor",value:function(e){var t=this;return this.startFindDefinition(e).then((function(){t.toUnhookForKeyboard.add(t.editor.onDidChangeCursorPosition((function(){t.currentWordAtPosition=null,t.removeLinkDecorations(),t.toUnhookForKeyboard.clear()}))),t.toUnhookForKeyboard.add(t.editor.onKeyDown((function(e){e&&(t.currentWordAtPosition=null,t.removeLinkDecorations(),t.toUnhookForKeyboard.clear())})))}))}},{key:"startFindDefinitionFromMouse",value:function(e,t){if(!(9===e.target.type&&this.linkDecorations.length>0)){if(!this.editor.hasModel()||!this.isEnabled(e,t))return this.currentWordAtPosition=null,void this.removeLinkDecorations();var n=e.target.position;this.startFindDefinition(n)}}},{key:"startFindDefinition",value:function(e){var t,n=this;this.toUnhookForKeyboard.clear();var i=e?null===(t=this.editor.getModel())||void 0===t?void 0:t.getWordAtPosition(e):null;if(!i)return this.currentWordAtPosition=null,this.removeLinkDecorations(),Promise.resolve(0);if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===i.startColumn&&this.currentWordAtPosition.endColumn===i.endColumn&&this.currentWordAtPosition.word===i.word)return Promise.resolve(0);this.currentWordAtPosition=i;var r=new xL.yy(this.editor,15);return this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=(0,Px.PG)((function(t){return n.findDefinition(e,t)})),this.previousPromise.then((function(t){if(t&&t.length&&r.validate(n.editor))if(t.length>1)n.addDecoration(new Fx.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn),(new bx).appendText(hx.N("multipleResults","Click to show {0} definitions.",t.length)));else{var o=t[0];if(!o.uri)return;n.textModelResolverService.createModelReference(o.uri).then((function(t){if(t.object&&t.object.textEditorModel){var r=t.object.textEditorModel,a=o.range.startLineNumber;if(a<1||a>r.getLineCount())t.dispose();else{var s,u=n.getPreviewValue(r,a,o);s=o.originSelectionRange?Fx.e.lift(o.originSelectionRange):new Fx.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn);var l=n.modeService.getModeIdByFilepathOrFirstLine(r.uri);n.addDecoration(s,(new bx).appendCodeblock(l||"",u)),t.dispose()}}else t.dispose()}))}else n.removeLinkDecorations()})).then(void 0,yx.dL)}},{key:"getPreviewValue",value:function(t,n,i){var r=i.targetSelectionRange?i.range:this.getPreviewRangeBasedOnBrackets(t,n);return r.endLineNumber-r.startLineNumber>=e.MAX_SOURCE_PREVIEW_LINES&&(r=this.getPreviewRangeBasedOnIndentation(t,n)),this.stripIndentationFromPreviewRange(t,n,r)}},{key:"stripIndentationFromPreviewRange",value:function(e,t,n){for(var i=e.getLineFirstNonWhitespaceColumn(t),r=t+1;r<n.endLineNumber;r++){var o=e.getLineFirstNonWhitespaceColumn(r);i=Math.min(i,o)}return e.getValueInRange(n).replace(new RegExp("^\\s{".concat(i-1,"}"),"gm"),"").trim()}},{key:"getPreviewRangeBasedOnIndentation",value:function(t,n){for(var i=t.getLineFirstNonWhitespaceColumn(n),r=Math.min(t.getLineCount(),n+e.MAX_SOURCE_PREVIEW_LINES),o=n+1;o<r;o++){if(i===t.getLineFirstNonWhitespaceColumn(o))break}return new Fx.e(n,1,o+1,1)}},{key:"getPreviewRangeBasedOnBrackets",value:function(t,n){for(var i=Math.min(t.getLineCount(),n+e.MAX_SOURCE_PREVIEW_LINES),r=[],o=!0,a=t.findNextBracket(new Zx.L(n,1));null!==a;){if(0===r.length)r.push(a);else{var s=r[r.length-1];if(s.open[0]===a.open[0]&&s.isOpen&&!a.isOpen?r.pop():r.push(a),0===r.length){if(!o)return new Fx.e(n,1,a.range.endLineNumber+1,1);o=!1}}var u=t.getLineMaxColumn(n),l=a.range.endLineNumber,c=a.range.endColumn;if(u===a.range.endColumn&&(l++,c=1),l>i)return new Fx.e(n,1,i+1,1);a=t.findNextBracket(new Zx.L(l,c))}return new Fx.e(n,1,i+1,1)}},{key:"addDecoration",value:function(e,t){var n={range:e,options:{inlineClassName:"goto-definition-link",hoverMessage:t}};this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[n])}},{key:"removeLinkDecorations",value:function(){this.linkDecorations.length>0&&(this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[]))}},{key:"isEnabled",value:function(e,t){return this.editor.hasModel()&&e.isNoneOrSingleMouseDown&&6===e.target.type&&(e.hasTriggerModifier||!!t&&t.keyCodeIsTriggerKey)&&LL.Ct.has(this.editor.getModel())}},{key:"findDefinition",value:function(e,t){var n=this.editor.getModel();return n?hT(n,e,t):Promise.resolve(null)}},{key:"gotoDefinition",value:function(e,t){var n=this;return this.editor.setPosition(e),this.editor.invokeWithinContext((function(e){var i=!t&&n.editor.getOption(74)&&!n.isInPeekEditor(e);return new mO({openToSide:t,openInPeek:i,muteMessage:!0},{alias:"",label:"",id:"",precondition:void 0}).run(e,n.editor)}))}},{key:"isInPeekEditor",value:function(e){var t=e.get(gx.i6);return kD.inPeekEditor.getValue(t)}},{key:"dispose",value:function(){this.toUnhook.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();OO.ID="editor.contrib.gotodefinitionatposition",OO.MAX_SOURCE_PREVIEW_LINES=8,OO=MO([TO(1,_T.S),TO(2,MN.h)],OO),(0,dx._K)(OO.ID,OO),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx._Y);n&&t.addRule(".monaco-editor .goto-definition-link { color: ".concat(n," !important; }"))}));var IO=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},AO=function(e,t){return function(n,i){t(n,i,e)}},PO=function(){function e(t,n,r,o,a,s){var u=this;(0,i.Z)(this,e),this._editor=t,this._instantiationService=n,this._openerService=r,this._modeService=o,this._themeService=a,this._toUnhook=new Rx.SL,this._isMouseDown=!1,this._hoverClicked=!1,this._contentWidget=null,this._glyphWidget=null,this._hookEvents(),this._didChangeConfigurationHandler=this._editor.onDidChangeConfiguration((function(e){e.hasChanged(50)&&(u._unhookEvents(),u._hookEvents())})),this._hoverVisibleKey=fx.u.hoverVisible.bindTo(s)}return(0,r.Z)(e,[{key:"_hookEvents",value:function(){var e=this,t=function(){return e._hideWidgets()},n=this._editor.getOption(50);this._isHoverEnabled=n.enabled,this._isHoverSticky=n.sticky,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown((function(t){return e._onEditorMouseDown(t)}))),this._toUnhook.add(this._editor.onMouseUp((function(t){return e._onEditorMouseUp(t)}))),this._toUnhook.add(this._editor.onMouseMove((function(t){return e._onEditorMouseMove(t)}))),this._toUnhook.add(this._editor.onKeyDown((function(t){return e._onKeyDown(t)}))),this._toUnhook.add(this._editor.onDidChangeModelDecorations((function(){return e._onModelDecorationsChanged()})))):(this._toUnhook.add(this._editor.onMouseMove((function(t){return e._onEditorMouseMove(t)}))),this._toUnhook.add(this._editor.onKeyDown((function(t){return e._onKeyDown(t)})))),this._toUnhook.add(this._editor.onMouseLeave(t)),this._toUnhook.add(this._editor.onDidChangeModel(t)),this._toUnhook.add(this._editor.onDidScrollChange((function(t){return e._onEditorScrollChanged(t)})))}},{key:"_unhookEvents",value:function(){this._toUnhook.clear()}},{key:"_onModelDecorationsChanged",value:function(){var e,t;null===(e=this._contentWidget)||void 0===e||e.onModelDecorationsChanged(),null===(t=this._glyphWidget)||void 0===t||t.onModelDecorationsChanged()}},{key:"_onEditorScrollChanged",value:function(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}},{key:"_onEditorMouseDown",value:function(e){this._isMouseDown=!0;var t=e.target.type;9!==t||e.target.detail!==tT.ID?12===t&&e.target.detail===rT.ID||(12!==t&&e.target.detail!==rT.ID&&(this._hoverClicked=!1),this._hideWidgets()):this._hoverClicked=!0}},{key:"_onEditorMouseUp",value:function(e){this._isMouseDown=!1}},{key:"_onEditorMouseMove",value:function(e){var t,n,i,r,o,a,s=e.target.type;if((!this._isMouseDown||!this._hoverClicked)&&(!this._isHoverSticky||9!==s||e.target.detail!==tT.ID)&&(!this._isHoverSticky||(null===(n=null===(t=e.event.browserEvent.view)||void 0===t?void 0:t.getSelection())||void 0===n?void 0:n.isCollapsed))&&(this._isHoverSticky||9!==s||e.target.detail!==tT.ID||!(null===(i=this._contentWidget)||void 0===i?void 0:i.isColorPickerVisible()))&&(!this._isHoverSticky||12!==s||e.target.detail!==rT.ID)){if(7===s){var u=this._editor.getOption(40).typicalHalfwidthCharacterWidth/2,l=e.target.detail;l&&!l.isAfterLines&&"number"===typeof l.horizontalDistanceToText&&l.horizontalDistanceToText<u&&(s=6)}if(6===s){if(null===(r=this._glyphWidget)||void 0===r||r.hide(),this._isHoverEnabled&&e.target.range){var c=(0,Lt.Z)((null===(o=e.target.element)||void 0===o?void 0:o.classList.values())||[]).find((function(e){return e.startsWith("ced-colorBox")}))&&e.target.range.endColumn-e.target.range.startColumn===1?new Fx.e(e.target.range.startLineNumber,e.target.range.startColumn+1,e.target.range.endLineNumber,e.target.range.endColumn+1):e.target.range;this._contentWidget||(this._contentWidget=new tT(this._editor,this._hoverVisibleKey,this._instantiationService,this._themeService)),this._contentWidget.startShowingAt(c,0,!1)}}else 2===s?(null===(a=this._contentWidget)||void 0===a||a.hide(),this._isHoverEnabled&&e.target.position&&(this._glyphWidget||(this._glyphWidget=new rT(this._editor,this._modeService,this._openerService)),this._glyphWidget.startShowingAt(e.target.position.lineNumber))):this._hideWidgets()}}},{key:"_onKeyDown",value:function(e){5!==e.keyCode&&6!==e.keyCode&&57!==e.keyCode&&4!==e.keyCode&&this._hideWidgets()}},{key:"_hideWidgets",value:function(){var e,t,n;this._isMouseDown&&this._hoverClicked&&(null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible())||(this._hoverClicked=!1,null===(t=this._glyphWidget)||void 0===t||t.hide(),null===(n=this._contentWidget)||void 0===n||n.hide())}},{key:"isColorPickerVisible",value:function(){var e;return(null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible())||!1}},{key:"showContentHover",value:function(e,t,n){this._contentWidget||(this._contentWidget=new tT(this._editor,this._hoverVisibleKey,this._instantiationService,this._themeService)),this._contentWidget.startShowingAt(e,t,n)}},{key:"dispose",value:function(){var e,t;this._unhookEvents(),this._toUnhook.dispose(),this._didChangeConfigurationHandler.dispose(),null===(e=this._glyphWidget)||void 0===e||e.dispose(),null===(t=this._contentWidget)||void 0===t||t.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();PO.ID="editor.contrib.hover",PO=IO([AO(1,JL.TG),AO(2,UN.v4),AO(3,MN.h),AO(4,Wx.XE),AO(5,gx.i6)],PO);var RO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.showHover",label:hx.N({key:"showHover",comment:["Label for action that will trigger the showing of a hover in the editor.","This allows for users to show the hover without using the mouse."]},"Show Hover"),alias:"Show Hover",precondition:void 0,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2087),weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=PO.get(t);if(n){var i=t.getPosition(),r=new Fx.e(i.lineNumber,i.column,i.lineNumber,i.column),o=2===t.getOption(2);n.showContentHover(r,1,o)}}}}]),n}(dx.R6),ZO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.showDefinitionPreviewHover",label:hx.N({key:"showDefinitionPreviewHover",comment:["Label for action that will trigger the showing of definition preview hover in the editor.","This allows for users to show the definition preview hover without using the mouse."]},"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=PO.get(t);if(n){var i=t.getPosition();if(i){var r=new Fx.e(i.lineNumber,i.column,i.lineNumber,i.column);OO.get(t).startFindDefinitionFromCursor(i).then((function(){n.showContentHover(r,1,!0)}))}}}}]),n}(dx.R6);(0,dx._K)(PO.ID,PO),(0,dx.Qr)(RO),(0,dx.Qr)(ZO),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.pt);n&&t.addRule(".monaco-editor .hoverHighlight { background-color: ".concat(n,"; }"));var i=e.getColor(zx.yJ);i&&t.addRule(".monaco-editor .monaco-hover { background-color: ".concat(i,"; }"));var r=e.getColor(zx.CN);r&&(t.addRule(".monaco-editor .monaco-hover { border: 1px solid ".concat(r,"; }")),t.addRule(".monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ".concat(r.transparent(.5),"; }")),t.addRule(".monaco-editor .monaco-hover hr { border-top: 1px solid ".concat(r.transparent(.5),"; }")),t.addRule(".monaco-editor .monaco-hover hr { border-bottom: 0px solid ".concat(r.transparent(.5),"; }")));var o=e.getColor(zx.ur);o&&t.addRule(".monaco-editor .monaco-hover a { color: ".concat(o,"; }"));var a=e.getColor(zx.Sb);a&&t.addRule(".monaco-editor .monaco-hover { color: ".concat(a,"; }"));var s=e.getColor(zx.Lo);s&&t.addRule(".monaco-editor .monaco-hover .hover-row .actions { background-color: ".concat(s,"; }"));var u=e.getColor(zx.Sw);u&&t.addRule(".monaco-editor .monaco-hover code { background-color: ".concat(u,"; }"))}));var FO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._editor=e,r._register(e.onMouseDown((function(e){return r.onMouseDown(e)}))),r}return(0,r.Z)(n,[{key:"dispose",value:function(){(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"onMouseDown",value:function(e){var t;if(6===e.target.type&&((0,Lt.Z)((null===(t=e.target.element)||void 0===t?void 0:t.classList.values())||[]).find((function(e){return e.startsWith("ced-colorBox")}))&&e.target.range)){var n=this._editor.getContribution(PO.ID);if(!n.isColorPickerVisible()){var i=new Fx.e(e.target.range.startLineNumber,e.target.range.startColumn+1,e.target.range.endLineNumber,e.target.range.endColumn+1);n.showContentHover(i,0,!1)}}}}]),n}(Rx.JT);FO.ID="editor.contrib.colorContribution",(0,dx._K)(FO.ID,FO);var jO=n(85025),HO=n(65262),BO=function(){function e(t,n){(0,i.Z)(this,e),this._selection=t,this._insertSpace=n,this._usedEndToken=null}return(0,r.Z)(e,[{key:"_createOperationsForBlockComment",value:function(t,n,i,r,o,a){var s,u=t.startLineNumber,l=t.startColumn,c=t.endLineNumber,d=t.endColumn,h=o.getLineContent(u),f=o.getLineContent(c),p=h.lastIndexOf(n,l-1+n.length),v=f.indexOf(i,d-1-i.length);if(-1!==p&&-1!==v)if(u===c){h.substring(p+n.length,v).indexOf(i)>=0&&(p=-1,v=-1)}else{var g=h.substring(p+n.length),m=f.substring(0,v);(g.indexOf(i)>=0||m.indexOf(i)>=0)&&(p=-1,v=-1)}-1!==p&&-1!==v?(r&&p+n.length<h.length&&32===h.charCodeAt(p+n.length)&&(n+=" "),r&&v>0&&32===f.charCodeAt(v-1)&&(i=" "+i,v-=1),s=e._createRemoveBlockCommentOperations(new Fx.e(u,p+n.length+1,c,v+1),n,i)):(s=e._createAddBlockCommentOperations(t,n,i,this._insertSpace),this._usedEndToken=1===s.length?i:null);var _,y=(0,Tr.Z)(s);try{for(y.s();!(_=y.n()).done;){var b=_.value;a.addTrackedEditOperation(b.range,b.text)}}catch(w){y.e(w)}finally{y.f()}}},{key:"getEditOperations",value:function(e,t){var n=this._selection.startLineNumber,i=this._selection.startColumn;e.tokenizeIfCheap(n);var r=e.getLanguageIdAtPosition(n,i),o=HO.zu.getComments(r);o&&o.blockCommentStartToken&&o.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,o.blockCommentStartToken,o.blockCommentEndToken,this._insertSpace,e,t)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations();if(2===n.length){var i=n[0],r=n[1];return new px.Y(i.range.endLineNumber,i.range.endColumn,r.range.startLineNumber,r.range.startColumn)}var o=n[0].range,a=this._usedEndToken?-this._usedEndToken.length-1:0;return new px.Y(o.endLineNumber,o.endColumn+a,o.endLineNumber,o.endColumn+a)}}],[{key:"_haystackHasNeedleAtOffset",value:function(e,t,n){if(n<0)return!1;var i=t.length;if(n+i>e.length)return!1;for(var r=0;r<i;r++){var o=e.charCodeAt(n+r),a=t.charCodeAt(r);if(o!==a&&(!(o>=65&&o<=90&&o+32===a)&&!(a>=65&&a<=90&&a+32===o)))return!1}return!0}},{key:"_createRemoveBlockCommentOperations",value:function(e,t,n){var i=[];return Fx.e.isEmpty(e)?i.push(jO.h.delete(new Fx.e(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+n.length))):(i.push(jO.h.delete(new Fx.e(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),i.push(jO.h.delete(new Fx.e(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+n.length)))),i}},{key:"_createAddBlockCommentOperations",value:function(e,t,n,i){var r=[];return Fx.e.isEmpty(e)?r.push(jO.h.replace(new Fx.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+n)):(r.push(jO.h.insert(new Zx.L(e.startLineNumber,e.startColumn),t+(i?" ":""))),r.push(jO.h.insert(new Zx.L(e.endLineNumber,e.endColumn),(i?" ":"")+n))),r}}]),e}(),zO=function(){function e(t,n,r,o,a,s){(0,i.Z)(this,e),this._selection=t,this._tabSize=n,this._type=r,this._insertSpace=o,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=a,this._ignoreFirstLine=s||!1}return(0,r.Z)(e,[{key:"_executeLineComments",value:function(t,n,i,r){var o;i.shouldRemoveComments?o=e._createRemoveLineCommentsOperations(i.lines,r.startLineNumber):(e._normalizeInsertionPoint(t,i.lines,r.startLineNumber,this._tabSize),o=this._createAddLineCommentsOperations(i.lines,r.startLineNumber));for(var a=new Zx.L(r.positionLineNumber,r.positionColumn),s=0,u=o.length;s<u;s++){if(n.addEditOperation(o[s].range,o[s].text),Fx.e.isEmpty(o[s].range)&&Fx.e.getStartPosition(o[s].range).equals(a))t.getLineContent(a.lineNumber).length+1===a.column&&(this._deltaColumn=(o[s].text||"").length)}this._selectionId=n.trackSelection(r)}},{key:"_attemptRemoveBlockComment",value:function(e,t,n,i){var r=t.startLineNumber,o=t.endLineNumber,a=i.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn),s=e.getLineContent(r).lastIndexOf(n,a-1),u=e.getLineContent(o).indexOf(i,t.endColumn-1-n.length);return-1!==s&&-1===u&&(u=e.getLineContent(r).indexOf(i,s+n.length),o=r),-1===s&&-1!==u&&(s=e.getLineContent(o).lastIndexOf(n,u),r=o),!t.isEmpty()||-1!==s&&-1!==u||-1!==(s=e.getLineContent(r).indexOf(n))&&(u=e.getLineContent(r).indexOf(i,s+n.length)),-1!==s&&32===e.getLineContent(r).charCodeAt(s+n.length)&&(n+=" "),-1!==u&&32===e.getLineContent(o).charCodeAt(u-1)&&(i=" "+i,u-=1),-1!==s&&-1!==u?BO._createRemoveBlockCommentOperations(new Fx.e(r,s+n.length+1,o,u+1),n,i):null}},{key:"_executeBlockComment",value:function(e,t,n){e.tokenizeIfCheap(n.startLineNumber);var i=e.getLanguageIdAtPosition(n.startLineNumber,1),r=HO.zu.getComments(i);if(r&&r.blockCommentStartToken&&r.blockCommentEndToken){var o=r.blockCommentStartToken,a=r.blockCommentEndToken,s=this._attemptRemoveBlockComment(e,n,o,a);if(!s){if(n.isEmpty()){var u=e.getLineContent(n.startLineNumber),l=CL.LC(u);-1===l&&(l=u.length),s=BO._createAddBlockCommentOperations(new Fx.e(n.startLineNumber,l+1,n.startLineNumber,u.length+1),o,a,this._insertSpace)}else s=BO._createAddBlockCommentOperations(new Fx.e(n.startLineNumber,e.getLineFirstNonWhitespaceColumn(n.startLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),o,a,this._insertSpace);1===s.length&&(this._deltaColumn=o.length+1)}this._selectionId=t.trackSelection(n);var c,d=(0,Tr.Z)(s);try{for(d.s();!(c=d.n()).done;){var h=c.value;t.addEditOperation(h.range,h.text)}}catch(f){d.e(f)}finally{d.f()}}}},{key:"getEditOperations",value:function(t,n){var i=this._selection;if(this._moveEndPositionDown=!1,i.startLineNumber===i.endLineNumber&&this._ignoreFirstLine)return n.addEditOperation(new Fx.e(i.startLineNumber,t.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===t.getLineCount()?"":"\n"),void(this._selectionId=n.trackSelection(i));i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,t.getLineMaxColumn(i.endLineNumber-1)));var r=e._gatherPreflightData(this._type,this._insertSpace,t,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine);return r.supported?this._executeLineComments(t,n,r,i):this._executeBlockComment(t,n,i)}},{key:"computeCursorState",value:function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),new px.Y(n.selectionStartLineNumber,n.selectionStartColumn+this._deltaColumn,n.positionLineNumber,n.positionColumn+this._deltaColumn)}},{key:"_createAddLineCommentsOperations",value:function(e,t){for(var n=[],i=this._insertSpace?" ":"",r=0,o=e.length;r<o;r++){var a=e[r];a.ignore||n.push(jO.h.insert(new Zx.L(t+r,a.commentStrOffset+1),a.commentStr+i))}return n}}],[{key:"_gatherPreflightCommentStrings",value:function(e,t,n){e.tokenizeIfCheap(t);var i=e.getLanguageIdAtPosition(t,1),r=HO.zu.getComments(i),o=r?r.lineCommentToken:null;if(!o)return null;for(var a=[],s=0,u=n-t+1;s<u;s++)a[s]={ignore:!1,commentStr:o,commentStrOffset:0,commentStrLength:o.length};return a}},{key:"_analyzeLines",value:function(e,t,n,i,r,o,a){var s,u=!0;s=0===e||1!==e;for(var l=0,c=i.length;l<c;l++){var d=i[l],h=r+l;if(h===r&&a)d.ignore=!0;else{var f=n.getLineContent(h),p=CL.LC(f);if(-1!==p){if(u=!1,d.ignore=!1,d.commentStrOffset=p,s&&!BO._haystackHasNeedleAtOffset(f,d.commentStr,p)&&(0===e?s=!1:1===e||(d.ignore=!0)),s&&t){var v=p+d.commentStrLength;v<f.length&&32===f.charCodeAt(v)&&(d.commentStrLength+=1)}}else d.ignore=o,d.commentStrOffset=f.length}}if(0===e&&u){s=!1;for(var g=0,m=i.length;g<m;g++)i[g].ignore=!1}return{supported:!0,shouldRemoveComments:s,lines:i}}},{key:"_gatherPreflightData",value:function(t,n,i,r,o,a,s){var u=e._gatherPreflightCommentStrings(i,r,o);return null===u?{supported:!1}:e._analyzeLines(t,n,i,u,r,a,s)}},{key:"_createRemoveLineCommentsOperations",value:function(e,t){for(var n=[],i=0,r=e.length;i<r;i++){var o=e[i];o.ignore||n.push(jO.h.delete(new Fx.e(t+i,o.commentStrOffset+1,t+i,o.commentStrOffset+o.commentStrLength+1)))}return n}},{key:"nextVisibleColumn",value:function(e,t,n,i){return n?e+(t-e%t):e+i}},{key:"_normalizeInsertionPoint",value:function(t,n,i,r){for(var o,a,s=1073741824,u=0,l=n.length;u<l;u++)if(!n[u].ignore){for(var c=t.getLineContent(i+u),d=0,h=0,f=n[u].commentStrOffset;d<s&&h<f;h++)d=e.nextVisibleColumn(d,r,9===c.charCodeAt(h),1);d<s&&(s=d)}s=Math.floor(s/r)*r;for(var p=0,v=n.length;p<v;p++)if(!n[p].ignore){var g=t.getLineContent(i+p),m=0;for(o=0,a=n[p].commentStrOffset;m<s&&o<a;o++)m=e.nextVisibleColumn(m,r,9===g.charCodeAt(o),1);n[p].commentStrOffset=m>s?o-1:o}}}]),e}(),WO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r))._type=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=[],i=t.getModel().getOptions(),r=t.getOption(17),o=t.getSelections().map((function(e,t){return{selection:e,index:t,ignoreFirstLine:!1}}));o.sort((function(e,t){return Fx.e.compareRangesUsingStarts(e.selection,t.selection)}));for(var a=o[0],s=1;s<o.length;s++){var u=o[s];a.selection.endLineNumber===u.selection.startLineNumber&&(a.index<u.index?u.ignoreFirstLine=!0:(a.ignoreFirstLine=!0,a=u))}var l,c=(0,Tr.Z)(o);try{for(c.s();!(l=c.n()).done;){var d=l.value;n.push(new zO(d.selection,i.tabSize,this._type,r.insertSpace,r.ignoreEmptyLines,d.ignoreFirstLine))}}catch(h){c.e(h)}finally{c.f()}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}}]),n}(dx.R6),VO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,0,{id:"editor.action.commentLine",label:hx.N("comment.line","Toggle Line Comment"),alias:"Toggle Line Comment",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:2133,weight:100},menuOpts:{menuId:Vx.eH.MenubarEditMenu,group:"5_insert",title:hx.N({key:"miToggleLineComment",comment:["&& denotes a mnemonic"]},"&&Toggle Line Comment"),order:1}})}return(0,r.Z)(n)}(WO),YO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,1,{id:"editor.action.addCommentLine",label:hx.N("comment.line.add","Add Line Comment"),alias:"Add Line Comment",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2081),weight:100}})}return(0,r.Z)(n)}(WO),UO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,2,{id:"editor.action.removeCommentLine",label:hx.N("comment.line.remove","Remove Line Comment"),alias:"Remove Line Comment",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2099),weight:100}})}return(0,r.Z)(n)}(WO),KO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.blockComment",label:hx.N("comment.block","Toggle Block Comment"),alias:"Toggle Block Comment",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:Vx.eH.MenubarEditMenu,group:"5_insert",title:hx.N({key:"miToggleBlockComment",comment:["&& denotes a mnemonic"]},"Toggle &&Block Comment"),order:2}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n,i=t.getOption(17),r=[],o=t.getSelections(),a=(0,Tr.Z)(o);try{for(a.s();!(n=a.n()).done;){var s=n.value;r.push(new BO(s,i.insertSpace))}}catch(u){a.e(u)}finally{a.f()}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}}]),n}(dx.R6);(0,dx.Qr)(VO),(0,dx.Qr)(YO),(0,dx.Qr)(UO),(0,dx.Qr)(KO);var qO=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},GO=function(e,t){return function(n,i){t(n,i,e)}},$O=function(){function e(t,n,r,o,a,s){var u=this;(0,i.Z)(this,e),this._contextMenuService=n,this._contextViewService=r,this._contextKeyService=o,this._keybindingService=a,this._menuService=s,this._toDispose=new Rx.SL,this._contextMenuIsBeingShownCount=0,this._editor=t,this._toDispose.add(this._editor.onContextMenu((function(e){return u._onContextMenu(e)}))),this._toDispose.add(this._editor.onMouseWheel((function(e){if(u._contextMenuIsBeingShownCount>0){var t=u._contextViewService.getContextViewElement(),n=e.srcElement;n.shadowRoot&&eE.getShadowRoot(t)===n.shadowRoot||u._contextViewService.hideContextView()}}))),this._toDispose.add(this._editor.onKeyDown((function(e){58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),u.showContextMenu())})))}return(0,r.Z)(e,[{key:"_onContextMenu",value:function(e){if(this._editor.hasModel()){if(!this._editor.getOption(18))return this._editor.focus(),void(e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position));if(12!==e.target.type&&(e.event.preventDefault(),6===e.target.type||7===e.target.type||1===e.target.type)){if(this._editor.focus(),e.target.position){var t,n=!1,i=(0,Tr.Z)(this._editor.getSelections());try{for(i.s();!(t=i.n()).done;){if(t.value.containsPosition(e.target.position)){n=!0;break}}}catch(o){i.e(o)}finally{i.f()}n||this._editor.setPosition(e.target.position)}var r=null;1!==e.target.type&&(r={x:e.event.posx-1,width:2,y:e.event.posy-1,height:2}),this.showContextMenu(r)}}}},{key:"showContextMenu",value:function(e){if(this._editor.getOption(18)&&this._editor.hasModel())if(this._contextMenuService){var t=this._getMenuActions(this._editor.getModel(),Vx.eH.EditorContext);t.length>0&&this._doShowContextMenu(t,e)}else this._editor.focus()}},{key:"_getMenuActions",value:function(e,t){var n=[],i=this._menuService.createMenu(t,this._contextKeyService),r=i.getActions({arg:e.uri});i.dispose();var o,a=(0,Tr.Z)(r);try{for(a.s();!(o=a.n()).done;){var s,u=o.value,l=(0,dt.Z)(u,2)[1],c=0,d=(0,Tr.Z)(l);try{for(d.s();!(s=d.n()).done;){var h=s.value;if(h instanceof Vx.NZ){var f=this._getMenuActions(e,h.item.submenu);f.length>0&&(n.push(new tE.wY(h.id,h.label,f)),c++)}else n.push(h),c++}}catch(p){d.e(p)}finally{d.f()}c&&n.push(new tE.Z0)}}catch(p){a.e(p)}finally{a.f()}return n.length&&n.pop(),n}},{key:"_doShowContextMenu",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(this._editor.hasModel()){var i=this._editor.getOption(50);if(this._editor.updateOptions({hover:{enabled:!1}}),!n){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();var r=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),o=eE.getDomNodePagePosition(this._editor.getDomNode()),a=o.left+r.left,s=o.top+r.top+r.height;n={x:a,y:s}}var u=this._editor.getOption(111);this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:u?this._editor.getDomNode():void 0,getAnchor:function(){return n},getActions:function(){return e},getActionViewItem:function(e){var n=t._keybindingFor(e);if(n)return new fD.g(e,e,{label:!0,keybinding:n.getLabel(),isMenu:!0});var i=e;return"function"===typeof i.getActionViewItem?i.getActionViewItem():new fD.g(e,e,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:function(e){return t._keybindingFor(e)},onHide:function(e){t._contextMenuIsBeingShownCount--,t._editor.focus(),t._editor.updateOptions({hover:i})}})}}},{key:"_keybindingFor",value:function(e){return this._keybindingService.lookupKeybinding(e.id)}},{key:"dispose",value:function(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();$O.ID="editor.contrib.contextmenu",$O=qO([GO(1,nE.i),GO(2,nE.u),GO(3,gx.i6),GO(4,iE.d),GO(5,Vx.co)],$O);var QO=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.showContextMenu",label:hx.N("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:fx.u.textInputFocus,primary:1092,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){$O.get(t).showContextMenu()}}]),n}(dx.R6);(0,dx._K)($O.ID,$O),(0,dx.Qr)(QO);var XO=function(){function e(t){(0,i.Z)(this,e),this.selections=t}return(0,r.Z)(e,[{key:"equals",value:function(e){var t=this.selections.length;if(t!==e.selections.length)return!1;for(var n=0;n<t;n++)if(!this.selections[n].equalsSelection(e.selections[n]))return!1;return!0}}]),e}(),JO=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.cursorState=t,this.scrollTop=n,this.scrollLeft=r})),eI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._editor=e,r._isCursorUndoRedo=!1,r._undoStack=[],r._redoStack=[],r._register(e.onDidChangeModel((function(e){r._undoStack=[],r._redoStack=[]}))),r._register(e.onDidChangeModelContent((function(e){r._undoStack=[],r._redoStack=[]}))),r._register(e.onDidChangeCursorSelection((function(t){if(!r._isCursorUndoRedo&&t.oldSelections&&t.oldModelVersionId===t.modelVersionId){var n=new XO(t.oldSelections);r._undoStack.length>0&&r._undoStack[r._undoStack.length-1].cursorState.equals(n)||(r._undoStack.push(new JO(n,e.getScrollTop(),e.getScrollLeft())),r._redoStack=[],r._undoStack.length>50&&r._undoStack.shift())}}))),r}return(0,r.Z)(n,[{key:"cursorUndo",value:function(){this._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new JO(new XO(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}},{key:"cursorRedo",value:function(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new JO(new XO(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}},{key:"_applyState",value:function(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);eI.ID="editor.contrib.cursorUndoRedoController";var tI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"cursorUndo",label:hx.N("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:fx.u.textInputFocus,primary:2099,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){eI.get(t).cursorUndo()}}]),n}(dx.R6),nI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"cursorRedo",label:hx.N("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){eI.get(t).cursorRedo()}}]),n}(dx.R6);(0,dx._K)(eI.ID,eI),(0,dx.Qr)(tI),(0,dx.Qr)(nI);var iI=function(){function e(t,n,r){(0,i.Z)(this,e),this.selection=t,this.targetPosition=n,this.copy=r,this.targetSelection=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new Fx.e(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),n),!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?this.targetSelection=new px.Y(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?this.targetSelection=new px.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber<this.selection.endLineNumber?this.targetSelection=new px.Y(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new px.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,(this.selection.startLineNumber,this.selection.endLineNumber,this.targetPosition.column-this.selection.endColumn+this.selection.startColumn),this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn):this.targetSelection=new px.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn):this.targetSelection=this.selection}},{key:"computeCursorState",value:function(e,t){return this.targetSelection}}]),e}();function rI(e){return rL.dz?e.altKey:e.ctrlKey}var oI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._editor=e,r._register(r._editor.onMouseDown((function(e){return r._onEditorMouseDown(e)}))),r._register(r._editor.onMouseUp((function(e){return r._onEditorMouseUp(e)}))),r._register(r._editor.onMouseDrag((function(e){return r._onEditorMouseDrag(e)}))),r._register(r._editor.onMouseDrop((function(e){return r._onEditorMouseDrop(e)}))),r._register(r._editor.onMouseDropCanceled((function(){return r._onEditorMouseDropCanceled()}))),r._register(r._editor.onKeyDown((function(e){return r.onEditorKeyDown(e)}))),r._register(r._editor.onKeyUp((function(e){return r.onEditorKeyUp(e)}))),r._register(r._editor.onDidBlurEditorWidget((function(){return r.onEditorBlur()}))),r._register(r._editor.onDidBlurEditorText((function(){return r.onEditorBlur()}))),r._dndDecorationIds=[],r._mouseDown=!1,r._modifierPressed=!1,r._dragSelection=null,r}return(0,r.Z)(n,[{key:"onEditorBlur",value:function(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}},{key:"onEditorKeyDown",value:function(e){this._editor.getOption(29)&&!this._editor.getOption(16)&&(rI(e)&&(this._modifierPressed=!0),this._mouseDown&&rI(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}},{key:"onEditorKeyUp",value:function(e){this._editor.getOption(29)&&!this._editor.getOption(16)&&(rI(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===n.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}},{key:"_onEditorMouseDown",value:function(e){this._mouseDown=!0}},{key:"_onEditorMouseUp",value:function(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}},{key:"_onEditorMouseDrag",value:function(e){var t=e.target;if(null===this._dragSelection){var n=(this._editor.getSelections()||[]).filter((function(e){return t.position&&e.containsPosition(t.position)}));if(1!==n.length)return;this._dragSelection=n[0]}rI(e.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}},{key:"_onEditorMouseDropCanceled",value:function(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}},{key:"_onEditorMouseDrop",value:function(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){var t=new Zx.L(e.target.position.lineNumber,e.target.position.column);if(null===this._dragSelection){var i=null;if(e.event.shiftKey){var r=this._editor.getSelection();if(r){var o=r.selectionStartLineNumber,a=r.selectionStartColumn;i=[new px.Y(o,a,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map((function(e){return e.containsPosition(t)?new px.Y(t.lineNumber,t.column,t.lineNumber,t.column):e}));this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(rI(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(n.ID,new iI(this._dragSelection,t,rI(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}},{key:"showAt",value:function(e){var t=[{range:new Fx.e(e.lineNumber,e.column,e.lineNumber,e.column),options:n._DECORATION_OPTIONS}];this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,t),this._editor.revealPosition(e,1)}},{key:"_removeDecoration",value:function(){this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,[])}},{key:"_hitContent",value:function(e){return 6===e.type||7===e.type}},{key:"_hitMargin",value:function(e){return 2===e.type||3===e.type||4===e.type}},{key:"dispose",value:function(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}}]),n}(Rx.JT);oI.ID="editor.contrib.dragAndDrop",oI.TRIGGER_KEY_VALUE=rL.dz?6:5,oI._DECORATION_OPTIONS=Hx.qx.register({className:"dnd-target"}),(0,dx._K)(oI.ID,oI);var aI=n(44322),sI=function(){function e(t){(0,i.Z)(this,e),this._editor=t,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}return(0,r.Z)(e,[{key:"dispose",value:function(){this._editor.deltaDecorations(this._allDecorations(),[]),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}},{key:"reset",value:function(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}},{key:"getCount",value:function(){return this._decorations.length}},{key:"getFindScope",value:function(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}},{key:"getFindScopes",value:function(){var e=this;if(this._findScopeDecorationIds.length){var t=this._findScopeDecorationIds.map((function(t){return e._editor.getModel().getDecorationRange(t)})).filter((function(e){return!!e}));if(t.length)return t}return null}},{key:"getStartPosition",value:function(){return this._startPosition}},{key:"setStartPosition",value:function(e){this._startPosition=e,this.setCurrentFindMatch(null)}},{key:"_getDecorationIndex",value:function(e){var t=this._decorations.indexOf(e);return t>=0?t+1:1}},{key:"getCurrentMatchesPosition",value:function(t){var n,i=this._editor.getModel().getDecorationsInRange(t),r=(0,Tr.Z)(i);try{for(r.s();!(n=r.n()).done;){var o=n.value,a=o.options;if(a===e._FIND_MATCH_DECORATION||a===e._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(o.id)}}catch(s){r.e(s)}finally{r.f()}return 0}},{key:"setCurrentFindMatch",value:function(t){var n=this,i=null,r=0;if(t)for(var o=0,a=this._decorations.length;o<a;o++){var s=this._editor.getModel().getDecorationRange(this._decorations[o]);if(t.equalsRange(s)){i=this._decorations[o],r=o+1;break}}return null===this._highlightedDecorationId&&null===i||this._editor.changeDecorations((function(t){if(null!==n._highlightedDecorationId&&(t.changeDecorationOptions(n._highlightedDecorationId,e._FIND_MATCH_DECORATION),n._highlightedDecorationId=null),null!==i&&(n._highlightedDecorationId=i,t.changeDecorationOptions(n._highlightedDecorationId,e._CURRENT_FIND_MATCH_DECORATION)),null!==n._rangeHighlightDecorationId&&(t.removeDecoration(n._rangeHighlightDecorationId),n._rangeHighlightDecorationId=null),null!==i){var r=n._editor.getModel().getDecorationRange(i);if(r.startLineNumber!==r.endLineNumber&&1===r.endColumn){var o=r.endLineNumber-1,a=n._editor.getModel().getLineMaxColumn(o);r=new Fx.e(r.startLineNumber,r.startColumn,o,a)}n._rangeHighlightDecorationId=t.addDecoration(r,e._RANGE_HIGHLIGHT_DECORATION)}})),r}},{key:"set",value:function(t,n){var i=this;this._editor.changeDecorations((function(r){var o=e._FIND_MATCH_DECORATION,a=[];if(t.length>1e3){o=e._FIND_MATCH_NO_OVERVIEW_DECORATION;for(var s=i._editor.getModel().getLineCount(),u=i._editor.getLayoutInfo().height/s,l=Math.max(2,Math.ceil(3/u)),c=t[0].range.startLineNumber,d=t[0].range.endLineNumber,h=1,f=t.length;h<f;h++){var p=t[h].range;d+l>=p.startLineNumber?p.endLineNumber>d&&(d=p.endLineNumber):(a.push({range:new Fx.e(c,1,d,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),c=p.startLineNumber,d=p.endLineNumber)}a.push({range:new Fx.e(c,1,d,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}for(var v=new Array(t.length),g=0,m=t.length;g<m;g++)v[g]={range:t[g].range,options:o};i._decorations=r.deltaDecorations(i._decorations,v),i._overviewRulerApproximateDecorations=r.deltaDecorations(i._overviewRulerApproximateDecorations,a),i._rangeHighlightDecorationId&&(r.removeDecoration(i._rangeHighlightDecorationId),i._rangeHighlightDecorationId=null),i._findScopeDecorationIds.length&&(i._findScopeDecorationIds.forEach((function(e){return r.removeDecoration(e)})),i._findScopeDecorationIds=[]),(null===n||void 0===n?void 0:n.length)&&(i._findScopeDecorationIds=n.map((function(t){return r.addDecoration(t,e._FIND_SCOPE_DECORATION)})))}))}},{key:"matchBeforePosition",value:function(e){if(0===this._decorations.length)return null;for(var t=this._decorations.length-1;t>=0;t--){var n=this._decorations[t],i=this._editor.getModel().getDecorationRange(n);if(i&&!(i.endLineNumber>e.lineNumber)){if(i.endLineNumber<e.lineNumber)return i;if(!(i.endColumn>e.column))return i}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}},{key:"matchAfterPosition",value:function(e){if(0===this._decorations.length)return null;for(var t=0,n=this._decorations.length;t<n;t++){var i=this._decorations[t],r=this._editor.getModel().getDecorationRange(i);if(r&&!(r.startLineNumber<e.lineNumber)){if(r.startLineNumber>e.lineNumber)return r;if(!(r.startColumn<e.column))return r}}return this._editor.getModel().getDecorationRange(this._decorations[0])}},{key:"_allDecorations",value:function(){var e,t=[];(t=(t=t.concat(this._decorations)).concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length)&&(e=t).push.apply(e,(0,Lt.Z)(this._findScopeDecorationIds));return this._rangeHighlightDecorationId&&t.push(this._rangeHighlightDecorationId),t}}]),e}();sI._CURRENT_FIND_MATCH_DECORATION=Hx.qx.register({stickiness:1,zIndex:13,className:"currentFindMatch",showIfCollapsed:!0,overviewRuler:{color:(0,Wx.EN)(zx.Fm),position:jx.sh.Center},minimap:{color:(0,Wx.EN)(zx.KT),position:jx.F5.Inline}}),sI._FIND_MATCH_DECORATION=Hx.qx.register({stickiness:1,className:"findMatch",showIfCollapsed:!0,overviewRuler:{color:(0,Wx.EN)(zx.Fm),position:jx.sh.Center},minimap:{color:(0,Wx.EN)(zx.KT),position:jx.F5.Inline}}),sI._FIND_MATCH_NO_OVERVIEW_DECORATION=Hx.qx.register({stickiness:1,className:"findMatch",showIfCollapsed:!0}),sI._FIND_MATCH_ONLY_OVERVIEW_DECORATION=Hx.qx.register({stickiness:1,overviewRuler:{color:(0,Wx.EN)(zx.Fm),position:jx.sh.Center}}),sI._RANGE_HIGHLIGHT_DECORATION=Hx.qx.register({stickiness:1,className:"rangeHighlight",isWholeLine:!0}),sI._FIND_SCOPE_DECORATION=Hx.qx.register({className:"findScope",isWholeLine:!0});var uI=function(){function e(t,n,r){(0,i.Z)(this,e),this._editorSelection=t,this._ranges=n,this._replaceStrings=r,this._trackedEditorSelectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){if(this._ranges.length>0){for(var n=[],i=0;i<this._ranges.length;i++)n.push({range:this._ranges[i],text:this._replaceStrings[i]});n.sort((function(e,t){return Fx.e.compareRangesUsingStarts(e.range,t.range)}));for(var r=[],o=n[0],a=1;a<n.length;a++)o.range.endLineNumber===n[a].range.startLineNumber&&o.range.endColumn===n[a].range.startColumn?(o.range=o.range.plusRange(n[a].range),o.text=o.text+n[a].text):(r.push(o),o=n[a]);r.push(o);for(var s=0,u=r;s<u.length;s++){var l=u[s];t.addEditOperation(l.range,l.text)}}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}}]),e}();function lI(e,t){if(e&&""!==e[0]){var n=cI(e,t,"-"),i=cI(e,t,"_");return n&&!i?dI(e,t,"-"):!n&&i?dI(e,t,"_"):e[0].toUpperCase()===e[0]?t.toUpperCase():e[0].toLowerCase()===e[0]?t.toLowerCase():CL.Kw(e[0][0])&&t.length>0?t[0].toUpperCase()+t.substr(1):e[0][0].toUpperCase()!==e[0][0]&&t.length>0?t[0].toLowerCase()+t.substr(1):t}return t}function cI(e,t,n){return-1!==e[0].indexOf(n)&&-1!==t.indexOf(n)&&e[0].split(n).length===t.split(n).length}function dI(e,t,n){var i=t.split(n),r=e[0].split(n),o="";return i.forEach((function(e,t){o+=lI([r[t]],e)+n})),o.slice(0,-1)}var hI=(0,r.Z)((function e(t){(0,i.Z)(this,e),this.staticValue=t,this.kind=0})),fI=(0,r.Z)((function e(t){(0,i.Z)(this,e),this.pieces=t,this.kind=1})),pI=function(){function e(t){(0,i.Z)(this,e),t&&0!==t.length?1===t.length&&null!==t[0].staticValue?this._state=new hI(t[0].staticValue):this._state=new fI(t):this._state=new hI("")}return(0,r.Z)(e,[{key:"hasReplacementPatterns",get:function(){return 1===this._state.kind}},{key:"buildReplaceString",value:function(t,n){if(0===this._state.kind)return n?lI(t,this._state.staticValue):this._state.staticValue;for(var i="",r=0,o=this._state.pieces.length;r<o;r++){var a=this._state.pieces[r];if(null===a.staticValue){var s=e._substitute(a.matchIndex,t);if(null!==a.caseOps&&a.caseOps.length>0){for(var u=[],l=a.caseOps.length,c=0,d=0,h=s.length;d<h;d++){if(c>=l){u.push(s.slice(d));break}switch(a.caseOps[c]){case"U":u.push(s[d].toUpperCase());break;case"u":u.push(s[d].toUpperCase()),c++;break;case"L":u.push(s[d].toLowerCase());break;case"l":u.push(s[d].toLowerCase()),c++;break;default:u.push(s[d])}}s=u.join("")}i+=s}else i+=a.staticValue}return i}}],[{key:"fromStaticValue",value:function(t){return new e([vI.staticValue(t)])}},{key:"_substitute",value:function(e,t){if(null===t)return"";if(0===e)return t[0];for(var n="";e>0;){if(e<t.length)return(t[e]||"")+n;n=String(e%10)+n,e=Math.floor(e/10)}return"$"+n}}]),e}(),vI=function(){function e(t,n,r){(0,i.Z)(this,e),this.staticValue=t,this.matchIndex=n,r&&0!==r.length?this.caseOps=r.slice(0):this.caseOps=null}return(0,r.Z)(e,null,[{key:"staticValue",value:function(t){return new e(t,-1,null)}},{key:"caseOps",value:function(t,n){return new e(null,t,n)}}]),e}(),gI=function(){function e(t){(0,i.Z)(this,e),this._source=t,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}return(0,r.Z)(e,[{key:"emitUnchanged",value:function(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e}},{key:"emitStatic",value:function(e,t){this._emitStatic(e),this._lastCharIndex=t}},{key:"_emitStatic",value:function(e){0!==e.length&&(this._currentStaticPiece+=e)}},{key:"emitMatchIndex",value:function(e,t,n){0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=vI.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=vI.caseOps(e,n),this._lastCharIndex=t}},{key:"finalize",value:function(){return this.emitUnchanged(this._source.length),0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=vI.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),new pI(this._result)}}]),e}();var mI=new gx.uy("findWidgetVisible",!1),_I=new gx.uy("findInputFocussed",!1),yI=new gx.uy("replaceInputFocussed",!1),bI={primary:545,mac:{primary:2593}},wI={primary:565,mac:{primary:2613}},CI={primary:560,mac:{primary:2608}},kI={primary:554,mac:{primary:2602}},SI={primary:558,mac:{primary:2606}},xI={StartFindAction:"actions.find",StartFindWithSelection:"actions.findWithSelection",NextMatchFindAction:"editor.action.nextMatchFindAction",PreviousMatchFindAction:"editor.action.previousMatchFindAction",NextSelectionMatchFindAction:"editor.action.nextSelectionMatchFindAction",PreviousSelectionMatchFindAction:"editor.action.previousSelectionMatchFindAction",StartFindReplaceAction:"editor.action.startFindReplaceAction",CloseFindWidgetCommand:"closeFindWidget",ToggleCaseSensitiveCommand:"toggleFindCaseSensitive",ToggleWholeWordCommand:"toggleFindWholeWord",ToggleRegexCommand:"toggleFindRegex",ToggleSearchScopeCommand:"toggleFindInSelection",TogglePreserveCaseCommand:"togglePreserveCase",ReplaceOneAction:"editor.action.replaceOne",ReplaceAllAction:"editor.action.replaceAll",SelectAllMatchesAction:"editor.action.selectAllMatches"},LI=19999,EI=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._toDispose=new Rx.SL,this._editor=t,this._state=n,this._isDisposed=!1,this._startSearchingTimer=new Px._F,this._decorations=new sI(t),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new Px.pY((function(){return r.research(!1)}),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((function(e){3!==e.reason&&5!==e.reason&&6!==e.reason||r._decorations.setStartPosition(r._editor.getPosition())}))),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((function(e){r._ignoreModelContentChanged||(e.isFlush&&r._decorations.reset(),r._decorations.setStartPosition(r._editor.getPosition()),r._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((function(e){return r._onStateChanged(e)}))),this.research(!1,this._state.searchScope)}return(0,r.Z)(e,[{key:"dispose",value:function(){this._isDisposed=!0,(0,Rx.B9)(this._startSearchingTimer),this._toDispose.dispose()}},{key:"_onStateChanged",value:function(e){var t=this;this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet((function(){e.searchScope?t.research(e.moveCursor,t._state.searchScope):t.research(e.moveCursor)}),240)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}},{key:"research",value:function(e,t){var n=this,i=null;"undefined"!==typeof t?null!==t&&(i=Array.isArray(t)?t:[t]):i=this._decorations.getFindScopes(),null!==i&&(i=i.map((function(e){if(e.startLineNumber!==e.endLineNumber){var t=e.endLineNumber;return 1===e.endColumn&&(t-=1),new Fx.e(e.startLineNumber,1,t,n._editor.getModel().getLineMaxColumn(t))}return e})));var r=this._findMatches(i,!1,LI);this._decorations.set(r,i);var o=this._editor.getSelection(),a=this._decorations.getCurrentMatchesPosition(o);if(0===a&&r.length>0){var s=(0,mx.lG)(r.map((function(e){return e.range})),(function(e){return Fx.e.compareRangesUsingStarts(e,o)>=0}));a=s>0?s-1+1:a}this._state.changeMatchInfo(a,this._decorations.getCount(),void 0),e&&this._editor.getOption(33).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}},{key:"_hasMatches",value:function(){return this._state.matchesCount>0}},{key:"_cannotFind",value:function(){if(!this._hasMatches()){var e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}},{key:"_setCurrentFindMatch",value:function(e){var t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}},{key:"_prevSearchPosition",value:function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),n=e.lineNumber,i=e.column,r=this._editor.getModel();return t||1===i?(1===n?n=r.getLineCount():n--,i=r.getLineMaxColumn(n)):i--,new Zx.L(n,i)}},{key:"_moveToPrevMatch",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._state.canNavigateBack()){if(this._decorations.getCount()<LI){var i=this._decorations.matchBeforePosition(t);return i&&i.isEmpty()&&i.getStartPosition().equals(t)&&(t=this._prevSearchPosition(t),i=this._decorations.matchBeforePosition(t)),void(i&&this._setCurrentFindMatch(i))}if(!this._cannotFind()){var r=this._decorations.getFindScope(),o=e._getSearchRange(this._editor.getModel(),r);o.getEndPosition().isBefore(t)&&(t=o.getEndPosition()),t.isBefore(o.getStartPosition())&&(t=o.getEndPosition());var a=t,s=a.lineNumber,u=a.column,l=this._editor.getModel(),c=new Zx.L(s,u),d=l.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,!1);if(d&&d.range.isEmpty()&&d.range.getStartPosition().equals(c)&&(c=this._prevSearchPosition(c),d=l.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,!1)),d)return n||o.containsRange(d.range)?void this._setCurrentFindMatch(d.range):this._moveToPrevMatch(d.range.getStartPosition(),!0)}}else{var h=this._decorations.matchAfterPosition(t);h&&this._setCurrentFindMatch(h)}}},{key:"moveToPrevMatch",value:function(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}},{key:"_nextSearchPosition",value:function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),n=e.lineNumber,i=e.column,r=this._editor.getModel();return t||i===r.getLineMaxColumn(n)?(n===r.getLineCount()?n=1:n++,i=1):i++,new Zx.L(n,i)}},{key:"_moveToNextMatch",value:function(e){if(this._state.canNavigateForward()){if(this._decorations.getCount()<LI){var t=this._decorations.matchAfterPosition(e);return t&&t.isEmpty()&&t.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),t=this._decorations.matchAfterPosition(e)),void(t&&this._setCurrentFindMatch(t))}var n=this._getNextMatch(e,!1,!0);n&&this._setCurrentFindMatch(n.range)}else{var i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i)}}},{key:"_getNextMatch",value:function(t,n,i){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(this._cannotFind())return null;var o=this._decorations.getFindScope(),a=e._getSearchRange(this._editor.getModel(),o);a.getEndPosition().isBefore(t)&&(t=a.getStartPosition()),t.isBefore(a.getStartPosition())&&(t=a.getStartPosition());var s=t,u=s.lineNumber,l=s.column,c=this._editor.getModel(),d=new Zx.L(u,l),h=c.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,n);return i&&h&&h.range.isEmpty()&&h.range.getStartPosition().equals(d)&&(d=this._nextSearchPosition(d),h=c.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,n)),h?r||a.containsRange(h.range)?h:this._getNextMatch(h.range.getEndPosition(),n,i,!0):null}},{key:"moveToNextMatch",value:function(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}},{key:"_getReplacePattern",value:function(){return this._state.isRegex?function(e){if(!e||0===e.length)return new pI(null);for(var t=[],n=new gI(e),i=0,r=e.length;i<r;i++){var o=e.charCodeAt(i);if(92!==o){if(36===o){if(++i>=r)break;var a=e.charCodeAt(i);if(36===a){n.emitUnchanged(i-1),n.emitStatic("$",i+1);continue}if(48===a||38===a){n.emitUnchanged(i-1),n.emitMatchIndex(0,i+1,t),t.length=0;continue}if(49<=a&&a<=57){var s=a-48;if(i+1<r){var u=e.charCodeAt(i+1);if(48<=u&&u<=57){i++,s=10*s+(u-48),n.emitUnchanged(i-2),n.emitMatchIndex(s,i+1,t),t.length=0;continue}}n.emitUnchanged(i-1),n.emitMatchIndex(s,i+1,t),t.length=0;continue}}}else{if(++i>=r)break;var l=e.charCodeAt(i);switch(l){case 92:n.emitUnchanged(i-1),n.emitStatic("\\",i+1);break;case 110:n.emitUnchanged(i-1),n.emitStatic("\n",i+1);break;case 116:n.emitUnchanged(i-1),n.emitStatic("\t",i+1);break;case 117:case 85:case 108:case 76:n.emitUnchanged(i-1),n.emitStatic("",i+1),t.push(String.fromCharCode(l))}}}return n.finalize()}(this._state.replaceString):pI.fromStaticValue(this._state.replaceString)}},{key:"replace",value:function(){if(this._hasMatches()){var e=this._getReplacePattern(),t=this._editor.getSelection(),n=this._getNextMatch(t.getStartPosition(),!0,!1);if(n)if(t.equalsRange(n.range)){var i=e.buildReplaceString(n.matches,this._state.preserveCase),r=new eL.T4(t,i);this._executeEditorCommand("replace",r),this._decorations.setStartPosition(new Zx.L(t.startLineNumber,t.startColumn+i.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(n.range)}}},{key:"_findMatches",value:function(t,n,i){var r=this,o=(t||[null]).map((function(t){return e._getSearchRange(r._editor.getModel(),t)}));return this._editor.getModel().findMatches(this._state.searchString,o,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null,n,i)}},{key:"replaceAll",value:function(){if(this._hasMatches()){var e=this._decorations.getFindScopes();null===e&&this._state.matchesCount>=LI?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}}},{key:"_largeReplaceAll",value:function(){var e=new aI.bc(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(113):null).parseSearchRequest();if(e){var t=e.regex;if(!t.multiline){var n="mu";t.ignoreCase&&(n+="i"),t.global&&(n+="g"),t=new RegExp(t.source,n)}var i,r=this._editor.getModel(),o=r.getValue(1),a=r.getFullModelRange(),s=this._getReplacePattern(),u=this._state.preserveCase;i=s.hasReplacementPatterns||u?o.replace(t,(function(){return s.buildReplaceString(arguments,u)})):o.replace(t,s.buildReplaceString(null,u));var l=new eL.hP(a,i,this._editor.getSelection());this._executeEditorCommand("replaceAll",l)}}},{key:"_regularReplaceAll",value:function(e){for(var t=this._getReplacePattern(),n=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),i=[],r=0,o=n.length;r<o;r++)i[r]=t.buildReplaceString(n[r].matches,this._state.preserveCase);var a=new uI(this._editor.getSelection(),n.map((function(e){return e.range})),i);this._executeEditorCommand("replaceAll",a)}},{key:"selectAllMatches",value:function(){if(this._hasMatches()){for(var e=this._decorations.getFindScopes(),t=this._findMatches(e,!1,1073741824).map((function(e){return new px.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)})),n=this._editor.getSelection(),i=0,r=t.length;i<r;i++){if(t[i].equalsRange(n)){t=[n].concat(t.slice(0,i)).concat(t.slice(i+1));break}}this._editor.setSelections(t)}}},{key:"_executeEditorCommand",value:function(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}],[{key:"_getSearchRange",value:function(e,t){return t||e.getFullModelRange()}}]),e}(),NI={inputActiveOptionBorder:SN.Il.fromHex("#007ACC00"),inputActiveOptionForeground:SN.Il.fromHex("#FFFFFF"),inputActiveOptionBackground:SN.Il.fromHex("#0E639C50")},DI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r,o;(0,i.Z)(this,n),(o=t.call(this))._onChange=o._register(new hE.Q5),o.onChange=o._onChange.event,o._onKeyDown=o._register(new hE.Q5),o.onKeyDown=o._onKeyDown.event,o._opts=Object.assign(Object.assign({},NI),e),o._checked=o._opts.isChecked;var a=["monaco-custom-checkbox"];return o._opts.icon&&a.push.apply(a,(0,Lt.Z)(pE.dT.asClassNameArray(o._opts.icon))),o._opts.actionClassName&&a.push.apply(a,(0,Lt.Z)(o._opts.actionClassName.split(" "))),o._checked&&a.push("checked"),o.domNode=document.createElement("div"),o.domNode.title=o._opts.title,(r=o.domNode.classList).add.apply(r,a),o._opts.notFocusable||(o.domNode.tabIndex=0),o.domNode.setAttribute("role","checkbox"),o.domNode.setAttribute("aria-checked",String(o._checked)),o.domNode.setAttribute("aria-label",o._opts.title),o.applyStyles(),o.onclick(o.domNode,(function(e){o.checked=!o._checked,o._onChange.fire(!1),e.preventDefault()})),o.ignoreGesture(o.domNode),o.onkeydown(o.domNode,(function(e){if(10===e.keyCode||3===e.keyCode)return o.checked=!o._checked,o._onChange.fire(!0),void e.preventDefault();o._onKeyDown.fire(e)})),o}return(0,r.Z)(n,[{key:"enabled",get:function(){return"true"!==this.domNode.getAttribute("aria-disabled")}},{key:"focus",value:function(){this.domNode.focus()}},{key:"checked",get:function(){return this._checked},set:function(e){this._checked=e,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}},{key:"width",value:function(){return 22}},{key:"style",value:function(e){e.inputActiveOptionBorder&&(this._opts.inputActiveOptionBorder=e.inputActiveOptionBorder),e.inputActiveOptionForeground&&(this._opts.inputActiveOptionForeground=e.inputActiveOptionForeground),e.inputActiveOptionBackground&&(this._opts.inputActiveOptionBackground=e.inputActiveOptionBackground),this.applyStyles()}},{key:"applyStyles",value:function(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder?this._opts.inputActiveOptionBorder.toString():"transparent",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground?this._opts.inputActiveOptionForeground.toString():"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground?this._opts.inputActiveOptionBackground.toString():"transparent")}},{key:"enable",value:function(){this.domNode.setAttribute("aria-disabled",String(!1))}},{key:"disable",value:function(){this.domNode.setAttribute("aria-disabled",String(!0))}}]),n}(ON.$),MI=hx.N("caseDescription","Match Case"),TI=hx.N("wordsDescription","Match Whole Word"),OI=hx.N("regexDescription","Use Regular Expression"),II=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){return(0,i.Z)(this,n),t.call(this,{icon:pE.lA.caseSensitive,title:MI+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,r.Z)(n)}(DI),AI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){return(0,i.Z)(this,n),t.call(this,{icon:pE.lA.wholeWord,title:TI+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,r.Z)(n)}(DI),PI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){return(0,i.Z)(this,n),t.call(this,{icon:pE.lA.regex,title:OI+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,r.Z)(n)}(DI),RI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;(0,i.Z)(this,n),(s=t.call(this))._hideSoon=s._register(new Px.pY((function(){return s._hide()}),2e3)),s._isVisible=!1,s._editor=e,s._state=r,s._keybindingService=o,s._domNode=document.createElement("div"),s._domNode.className="findOptionsWidget",s._domNode.style.display="none",s._domNode.style.top="10px",s._domNode.setAttribute("role","presentation"),s._domNode.setAttribute("aria-hidden","true");var u=a.getColorTheme().getColor(zx.PR),l=a.getColorTheme().getColor(zx.Pv),c=a.getColorTheme().getColor(zx.XE);return s.caseSensitive=s._register(new II({appendTitle:s._keybindingLabelFor(xI.ToggleCaseSensitiveCommand),isChecked:s._state.matchCase,inputActiveOptionBorder:u,inputActiveOptionForeground:l,inputActiveOptionBackground:c})),s._domNode.appendChild(s.caseSensitive.domNode),s._register(s.caseSensitive.onChange((function(){s._state.change({matchCase:s.caseSensitive.checked},!1)}))),s.wholeWords=s._register(new AI({appendTitle:s._keybindingLabelFor(xI.ToggleWholeWordCommand),isChecked:s._state.wholeWord,inputActiveOptionBorder:u,inputActiveOptionForeground:l,inputActiveOptionBackground:c})),s._domNode.appendChild(s.wholeWords.domNode),s._register(s.wholeWords.onChange((function(){s._state.change({wholeWord:s.wholeWords.checked},!1)}))),s.regex=s._register(new PI({appendTitle:s._keybindingLabelFor(xI.ToggleRegexCommand),isChecked:s._state.isRegex,inputActiveOptionBorder:u,inputActiveOptionForeground:l,inputActiveOptionBackground:c})),s._domNode.appendChild(s.regex.domNode),s._register(s.regex.onChange((function(){s._state.change({isRegex:s.regex.checked},!1)}))),s._editor.addOverlayWidget((0,yL.Z)(s)),s._register(s._state.onFindReplaceStateChange((function(e){var t=!1;e.isRegex&&(s.regex.checked=s._state.isRegex,t=!0),e.wholeWord&&(s.wholeWords.checked=s._state.wholeWord,t=!0),e.matchCase&&(s.caseSensitive.checked=s._state.matchCase,t=!0),!s._state.isRevealed&&t&&s._revealTemporarily()}))),s._register(eE.addDisposableNonBubblingMouseOutListener(s._domNode,(function(e){return s._onMouseOut()}))),s._register(eE.addDisposableListener(s._domNode,"mouseover",(function(e){return s._onMouseOver()}))),s._applyTheme(a.getColorTheme()),s._register(a.onDidColorThemeChange(s._applyTheme.bind((0,yL.Z)(s)))),s}return(0,r.Z)(n,[{key:"_keybindingLabelFor",value:function(e){var t=this._keybindingService.lookupKeybinding(e);return t?" (".concat(t.getLabel(),")"):""}},{key:"dispose",value:function(){this._editor.removeOverlayWidget(this),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return n.ID}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return{preference:0}}},{key:"highlightFindOptions",value:function(){this._revealTemporarily()}},{key:"_revealTemporarily",value:function(){this._show(),this._hideSoon.schedule()}},{key:"_onMouseOut",value:function(){this._hideSoon.schedule()}},{key:"_onMouseOver",value:function(){this._hideSoon.cancel()}},{key:"_show",value:function(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}},{key:"_hide",value:function(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}},{key:"_applyTheme",value:function(e){var t={inputActiveOptionBorder:e.getColor(zx.PR),inputActiveOptionForeground:e.getColor(zx.Pv),inputActiveOptionBackground:e.getColor(zx.XE)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)}}]),n}(ON.$);function ZI(e,t){return 1===e||2!==e&&t}RI.ID="editor.contrib.findOptionsWidget",(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.D0);n&&t.addRule(".monaco-editor .findOptionsWidget { background-color: ".concat(n,"; }"));var i=e.getColor(zx.Hf);i&&t.addRule(".monaco-editor .findOptionsWidget { color: ".concat(i,"; }"));var r=e.getColor(zx.rh);r&&t.addRule(".monaco-editor .findOptionsWidget { box-shadow: 0 0 8px 2px ".concat(r,"; }"));var o=e.getColor(zx.lR);o&&t.addRule(".monaco-editor .findOptionsWidget { border: 2px solid ".concat(o,"; }"))}));var FI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this))._onFindReplaceStateChange=e._register(new hE.Q5),e.onFindReplaceStateChange=e._onFindReplaceStateChange.event,e._searchString="",e._replaceString="",e._isRevealed=!1,e._isReplaceRevealed=!1,e._isRegex=!1,e._isRegexOverride=0,e._wholeWord=!1,e._wholeWordOverride=0,e._matchCase=!1,e._matchCaseOverride=0,e._preserveCase=!1,e._preserveCaseOverride=0,e._searchScope=null,e._matchesPosition=0,e._matchesCount=0,e._currentMatch=null,e._loop=!0,e}return(0,r.Z)(n,[{key:"searchString",get:function(){return this._searchString}},{key:"replaceString",get:function(){return this._replaceString}},{key:"isRevealed",get:function(){return this._isRevealed}},{key:"isReplaceRevealed",get:function(){return this._isReplaceRevealed}},{key:"isRegex",get:function(){return ZI(this._isRegexOverride,this._isRegex)}},{key:"wholeWord",get:function(){return ZI(this._wholeWordOverride,this._wholeWord)}},{key:"matchCase",get:function(){return ZI(this._matchCaseOverride,this._matchCase)}},{key:"preserveCase",get:function(){return ZI(this._preserveCaseOverride,this._preserveCase)}},{key:"actualIsRegex",get:function(){return this._isRegex}},{key:"actualWholeWord",get:function(){return this._wholeWord}},{key:"actualMatchCase",get:function(){return this._matchCase}},{key:"actualPreserveCase",get:function(){return this._preserveCase}},{key:"searchScope",get:function(){return this._searchScope}},{key:"matchesPosition",get:function(){return this._matchesPosition}},{key:"matchesCount",get:function(){return this._matchesCount}},{key:"currentMatch",get:function(){return this._currentMatch}},{key:"changeMatchInfo",value:function(e,t,n){var i={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1},r=!1;0===t&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,i.matchesPosition=!0,r=!0),this._matchesCount!==t&&(this._matchesCount=t,i.matchesCount=!0,r=!0),"undefined"!==typeof n&&(Fx.e.equalsRange(this._currentMatch,n)||(this._currentMatch=n,i.currentMatch=!0,r=!0)),r&&this._onFindReplaceStateChange.fire(i)}},{key:"change",value:function(e,t){var n,i=this,r={moveCursor:t,updateHistory:!(arguments.length>2&&void 0!==arguments[2])||arguments[2],searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1},o=!1,a=this.isRegex,s=this.wholeWord,u=this.matchCase,l=this.preserveCase;"undefined"!==typeof e.searchString&&this._searchString!==e.searchString&&(this._searchString=e.searchString,r.searchString=!0,o=!0),"undefined"!==typeof e.replaceString&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,r.replaceString=!0,o=!0),"undefined"!==typeof e.isRevealed&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,r.isRevealed=!0,o=!0),"undefined"!==typeof e.isReplaceRevealed&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,r.isReplaceRevealed=!0,o=!0),"undefined"!==typeof e.isRegex&&(this._isRegex=e.isRegex),"undefined"!==typeof e.wholeWord&&(this._wholeWord=e.wholeWord),"undefined"!==typeof e.matchCase&&(this._matchCase=e.matchCase),"undefined"!==typeof e.preserveCase&&(this._preserveCase=e.preserveCase),"undefined"!==typeof e.searchScope&&((null===(n=e.searchScope)||void 0===n?void 0:n.every((function(e){var t;return null===(t=i._searchScope)||void 0===t?void 0:t.some((function(t){return!Fx.e.equalsRange(t,e)}))})))||(this._searchScope=e.searchScope,r.searchScope=!0,o=!0)),"undefined"!==typeof e.loop&&this._loop!==e.loop&&(this._loop=e.loop,r.loop=!0,o=!0),this._isRegexOverride="undefined"!==typeof e.isRegexOverride?e.isRegexOverride:0,this._wholeWordOverride="undefined"!==typeof e.wholeWordOverride?e.wholeWordOverride:0,this._matchCaseOverride="undefined"!==typeof e.matchCaseOverride?e.matchCaseOverride:0,this._preserveCaseOverride="undefined"!==typeof e.preserveCaseOverride?e.preserveCaseOverride:0,a!==this.isRegex&&(o=!0,r.isRegex=!0),s!==this.wholeWord&&(o=!0,r.wholeWord=!0),u!==this.matchCase&&(o=!0,r.matchCase=!0),l!==this.preserveCase&&(o=!0,r.preserveCase=!0),o&&this._onFindReplaceStateChange.fire(r)}},{key:"canNavigateBack",value:function(){return this.canNavigateInLoop()||1!==this.matchesPosition}},{key:"canNavigateForward",value:function(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}},{key:"canNavigateInLoop",value:function(){return this._loop||this.matchesCount>=LI}}]),n}(Rx.JT),jI=n(68027),HI=hx.N("defaultLabel","input"),BI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;(0,i.Z)(this,n),(s=t.call(this))._showOptionButtons=o,s.fixFocusOnOptionClickEnabled=!0,s._onDidOptionChange=s._register(new hE.Q5),s.onDidOptionChange=s._onDidOptionChange.event,s._onKeyDown=s._register(new hE.Q5),s.onKeyDown=s._onKeyDown.event,s._onMouseDown=s._register(new hE.Q5),s.onMouseDown=s._onMouseDown.event,s._onInput=s._register(new hE.Q5),s._onKeyUp=s._register(new hE.Q5),s._onCaseSensitiveKeyDown=s._register(new hE.Q5),s.onCaseSensitiveKeyDown=s._onCaseSensitiveKeyDown.event,s._onRegexKeyDown=s._register(new hE.Q5),s.onRegexKeyDown=s._onRegexKeyDown.event,s._lastHighlightFindOptions=0,s.contextViewProvider=r,s.placeholder=a.placeholder||"",s.validation=a.validation,s.label=a.label||HI,s.inputActiveOptionBorder=a.inputActiveOptionBorder,s.inputActiveOptionForeground=a.inputActiveOptionForeground,s.inputActiveOptionBackground=a.inputActiveOptionBackground,s.inputBackground=a.inputBackground,s.inputForeground=a.inputForeground,s.inputBorder=a.inputBorder,s.inputValidationInfoBorder=a.inputValidationInfoBorder,s.inputValidationInfoBackground=a.inputValidationInfoBackground,s.inputValidationInfoForeground=a.inputValidationInfoForeground,s.inputValidationWarningBorder=a.inputValidationWarningBorder,s.inputValidationWarningBackground=a.inputValidationWarningBackground,s.inputValidationWarningForeground=a.inputValidationWarningForeground,s.inputValidationErrorBorder=a.inputValidationErrorBorder,s.inputValidationErrorBackground=a.inputValidationErrorBackground,s.inputValidationErrorForeground=a.inputValidationErrorForeground;var u=a.appendCaseSensitiveLabel||"",l=a.appendWholeWordsLabel||"",c=a.appendRegexLabel||"",d=a.history||[],h=!!a.flexibleHeight,f=!!a.flexibleWidth,p=a.flexibleMaxHeight;s.domNode=document.createElement("div"),s.domNode.classList.add("monaco-findInput"),s.inputBox=s._register(new jI.p(s.domNode,s.contextViewProvider,{placeholder:s.placeholder||"",ariaLabel:s.label||"",validationOptions:{validation:s.validation},inputBackground:s.inputBackground,inputForeground:s.inputForeground,inputBorder:s.inputBorder,inputValidationInfoBackground:s.inputValidationInfoBackground,inputValidationInfoForeground:s.inputValidationInfoForeground,inputValidationInfoBorder:s.inputValidationInfoBorder,inputValidationWarningBackground:s.inputValidationWarningBackground,inputValidationWarningForeground:s.inputValidationWarningForeground,inputValidationWarningBorder:s.inputValidationWarningBorder,inputValidationErrorBackground:s.inputValidationErrorBackground,inputValidationErrorForeground:s.inputValidationErrorForeground,inputValidationErrorBorder:s.inputValidationErrorBorder,history:d,flexibleHeight:h,flexibleWidth:f,flexibleMaxHeight:p})),s.regex=s._register(new PI({appendTitle:c,isChecked:!1,inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})),s._register(s.regex.onChange((function(e){s._onDidOptionChange.fire(e),!e&&s.fixFocusOnOptionClickEnabled&&s.inputBox.focus(),s.validate()}))),s._register(s.regex.onKeyDown((function(e){s._onRegexKeyDown.fire(e)}))),s.wholeWords=s._register(new AI({appendTitle:l,isChecked:!1,inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})),s._register(s.wholeWords.onChange((function(e){s._onDidOptionChange.fire(e),!e&&s.fixFocusOnOptionClickEnabled&&s.inputBox.focus(),s.validate()}))),s.caseSensitive=s._register(new II({appendTitle:u,isChecked:!1,inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})),s._register(s.caseSensitive.onChange((function(e){s._onDidOptionChange.fire(e),!e&&s.fixFocusOnOptionClickEnabled&&s.inputBox.focus(),s.validate()}))),s._register(s.caseSensitive.onKeyDown((function(e){s._onCaseSensitiveKeyDown.fire(e)}))),s._showOptionButtons&&(s.inputBox.paddingRight=s.caseSensitive.width()+s.wholeWords.width()+s.regex.width());var v=[s.caseSensitive.domNode,s.wholeWords.domNode,s.regex.domNode];s.onkeydown(s.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=v.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%v.length:e.equals(15)&&(n=0===t?v.length-1:t-1),e.equals(9)?(v[t].blur(),s.inputBox.focus()):n>=0&&v[n].focus(),eE.EventHelper.stop(e,!0)}}}));var g=document.createElement("div");return g.className="controls",g.style.display=s._showOptionButtons?"block":"none",g.appendChild(s.caseSensitive.domNode),g.appendChild(s.wholeWords.domNode),g.appendChild(s.regex.domNode),s.domNode.appendChild(g),e&&e.appendChild(s.domNode),s.onkeydown(s.inputBox.inputElement,(function(e){return s._onKeyDown.fire(e)})),s.onkeyup(s.inputBox.inputElement,(function(e){return s._onKeyUp.fire(e)})),s.oninput(s.inputBox.inputElement,(function(e){return s._onInput.fire()})),s.onmousedown(s.inputBox.inputElement,(function(e){return s._onMouseDown.fire(e)})),s}return(0,r.Z)(n,[{key:"enable",value:function(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.regex.enable(),this.wholeWords.enable(),this.caseSensitive.enable()}},{key:"disable",value:function(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.regex.disable(),this.wholeWords.disable(),this.caseSensitive.disable()}},{key:"setFocusInputOnOptionClick",value:function(e){this.fixFocusOnOptionClickEnabled=e}},{key:"setEnabled",value:function(e){e?this.enable():this.disable()}},{key:"getValue",value:function(){return this.inputBox.value}},{key:"setValue",value:function(e){this.inputBox.value!==e&&(this.inputBox.value=e)}},{key:"style",value:function(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}},{key:"applyStyles",value:function(){if(this.domNode){var e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground};this.regex.style(e),this.wholeWords.style(e),this.caseSensitive.style(e);var t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}},{key:"select",value:function(){this.inputBox.select()}},{key:"focus",value:function(){this.inputBox.focus()}},{key:"getCaseSensitive",value:function(){return this.caseSensitive.checked}},{key:"setCaseSensitive",value:function(e){this.caseSensitive.checked=e}},{key:"getWholeWords",value:function(){return this.wholeWords.checked}},{key:"setWholeWords",value:function(e){this.wholeWords.checked=e}},{key:"getRegex",value:function(){return this.regex.checked}},{key:"setRegex",value:function(e){this.regex.checked=e,this.validate()}},{key:"focusOnCaseSensitive",value:function(){this.caseSensitive.focus()}},{key:"highlightFindOptions",value:function(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}},{key:"validate",value:function(){this.inputBox.validate()}},{key:"clearMessage",value:function(){this.inputBox.hideMessage()}}]),n}(ON.$),zI=hx.N("defaultLabel","input"),WI=hx.N("label.preserveCaseCheckbox","Preserve Case"),VI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){return(0,i.Z)(this,n),t.call(this,{icon:pE.lA.preserveCase,title:WI+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,r.Z)(n)}(DI),YI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;(0,i.Z)(this,n),(s=t.call(this))._showOptionButtons=o,s.fixFocusOnOptionClickEnabled=!0,s.cachedOptionsWidth=0,s._onDidOptionChange=s._register(new hE.Q5),s.onDidOptionChange=s._onDidOptionChange.event,s._onKeyDown=s._register(new hE.Q5),s.onKeyDown=s._onKeyDown.event,s._onMouseDown=s._register(new hE.Q5),s._onInput=s._register(new hE.Q5),s._onKeyUp=s._register(new hE.Q5),s._onPreserveCaseKeyDown=s._register(new hE.Q5),s.onPreserveCaseKeyDown=s._onPreserveCaseKeyDown.event,s.contextViewProvider=r,s.placeholder=a.placeholder||"",s.validation=a.validation,s.label=a.label||zI,s.inputActiveOptionBorder=a.inputActiveOptionBorder,s.inputActiveOptionForeground=a.inputActiveOptionForeground,s.inputActiveOptionBackground=a.inputActiveOptionBackground,s.inputBackground=a.inputBackground,s.inputForeground=a.inputForeground,s.inputBorder=a.inputBorder,s.inputValidationInfoBorder=a.inputValidationInfoBorder,s.inputValidationInfoBackground=a.inputValidationInfoBackground,s.inputValidationInfoForeground=a.inputValidationInfoForeground,s.inputValidationWarningBorder=a.inputValidationWarningBorder,s.inputValidationWarningBackground=a.inputValidationWarningBackground,s.inputValidationWarningForeground=a.inputValidationWarningForeground,s.inputValidationErrorBorder=a.inputValidationErrorBorder,s.inputValidationErrorBackground=a.inputValidationErrorBackground,s.inputValidationErrorForeground=a.inputValidationErrorForeground;var u=a.appendPreserveCaseLabel||"",l=a.history||[],c=!!a.flexibleHeight,d=!!a.flexibleWidth,h=a.flexibleMaxHeight;s.domNode=document.createElement("div"),s.domNode.classList.add("monaco-findInput"),s.inputBox=s._register(new jI.p(s.domNode,s.contextViewProvider,{ariaLabel:s.label||"",placeholder:s.placeholder||"",validationOptions:{validation:s.validation},inputBackground:s.inputBackground,inputForeground:s.inputForeground,inputBorder:s.inputBorder,inputValidationInfoBackground:s.inputValidationInfoBackground,inputValidationInfoForeground:s.inputValidationInfoForeground,inputValidationInfoBorder:s.inputValidationInfoBorder,inputValidationWarningBackground:s.inputValidationWarningBackground,inputValidationWarningForeground:s.inputValidationWarningForeground,inputValidationWarningBorder:s.inputValidationWarningBorder,inputValidationErrorBackground:s.inputValidationErrorBackground,inputValidationErrorForeground:s.inputValidationErrorForeground,inputValidationErrorBorder:s.inputValidationErrorBorder,history:l,flexibleHeight:c,flexibleWidth:d,flexibleMaxHeight:h})),s.preserveCase=s._register(new VI({appendTitle:u,isChecked:!1,inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})),s._register(s.preserveCase.onChange((function(e){s._onDidOptionChange.fire(e),!e&&s.fixFocusOnOptionClickEnabled&&s.inputBox.focus(),s.validate()}))),s._register(s.preserveCase.onKeyDown((function(e){s._onPreserveCaseKeyDown.fire(e)}))),s._showOptionButtons?s.cachedOptionsWidth=s.preserveCase.width():s.cachedOptionsWidth=0;var f=[s.preserveCase.domNode];s.onkeydown(s.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=f.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%f.length:e.equals(15)&&(n=0===t?f.length-1:t-1),e.equals(9)?(f[t].blur(),s.inputBox.focus()):n>=0&&f[n].focus(),eE.EventHelper.stop(e,!0)}}}));var p=document.createElement("div");return p.className="controls",p.style.display=s._showOptionButtons?"block":"none",p.appendChild(s.preserveCase.domNode),s.domNode.appendChild(p),e&&e.appendChild(s.domNode),s.onkeydown(s.inputBox.inputElement,(function(e){return s._onKeyDown.fire(e)})),s.onkeyup(s.inputBox.inputElement,(function(e){return s._onKeyUp.fire(e)})),s.oninput(s.inputBox.inputElement,(function(e){return s._onInput.fire()})),s.onmousedown(s.inputBox.inputElement,(function(e){return s._onMouseDown.fire(e)})),s}return(0,r.Z)(n,[{key:"enable",value:function(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}},{key:"disable",value:function(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}},{key:"setEnabled",value:function(e){e?this.enable():this.disable()}},{key:"style",value:function(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}},{key:"applyStyles",value:function(){if(this.domNode){var e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground};this.preserveCase.style(e);var t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}},{key:"select",value:function(){this.inputBox.select()}},{key:"focus",value:function(){this.inputBox.focus()}},{key:"getPreserveCase",value:function(){return this.preserveCase.checked}},{key:"setPreserveCase",value:function(e){this.preserveCase.checked=e}},{key:"focusOnPreserve",value:function(){this.preserveCase.focus()}},{key:"validate",value:function(){this.inputBox&&this.inputBox.validate()}},{key:"width",set:function(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.inputBox.width=e,this.domNode.style.width=e+"px"}},{key:"dispose",value:function(){(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}}]),n}(ON.$),UI=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},KI=function(e,t){return function(n,i){t(n,i,e)}},qI="historyNavigationWidget",GI="historyNavigationEnabled";function $I(e,t){return e.getContext(document.activeElement).getValue(t)}function QI(e,t){var n=function(e,t){return e.createScoped(t.target)}(e,t);return function(e,t,n){new gx.uy(n,t).bindTo(e)}(n,t,qI),{scopedContextKeyService:n,historyNavigationEnablement:new gx.uy(GI,!0).bindTo(n)}}var XI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s,u=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return(0,i.Z)(this,n),(s=t.call(this,e,r,u,o))._register(QI(a,{target:s.inputBox.element,historyNavigator:s.inputBox}).scopedContextKeyService),s}return(0,r.Z)(n)}(BI);XI=UI([KI(3,gx.i6)],XI);var JI=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s,u=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return(0,i.Z)(this,n),(s=t.call(this,e,r,u,o))._register(QI(a,{target:s.inputBox.element,historyNavigator:s.inputBox}).scopedContextKeyService),s}return(0,r.Z)(n)}(YI);JI=UI([KI(3,gx.i6)],JI),UT.W.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:gx.Ao.and(gx.Ao.has(qI),gx.Ao.equals(GI,!0)),primary:16,secondary:[528],handler:function(e,t){var n=$I(e.get(gx.i6),qI);n&&n.historyNavigator.showPreviousValue()}}),UT.W.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:gx.Ao.and(gx.Ao.has(qI),gx.Ao.equals(GI,!0)),primary:18,secondary:[530],handler:function(e,t){var n=$I(e.get(gx.i6),qI);n&&n.historyNavigator.showNextValue()}});var eA=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},tA=(0,dM.q5)("find-selection",pE.lA.selection,hx.N("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),nA=(0,dM.q5)("find-collapsed",pE.lA.chevronRight,hx.N("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),iA=(0,dM.q5)("find-expanded",pE.lA.chevronDown,hx.N("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),rA=(0,dM.q5)("find-replace",pE.lA.replace,hx.N("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),oA=(0,dM.q5)("find-replace-all",pE.lA.replaceAll,hx.N("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),aA=(0,dM.q5)("find-previous-match",pE.lA.arrowUp,hx.N("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),sA=(0,dM.q5)("find-next-match",pE.lA.arrowDown,hx.N("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),uA=hx.N("label.find","Find"),lA=hx.N("placeholder.find","Find"),cA=hx.N("label.previousMatchButton","Previous match"),dA=hx.N("label.nextMatchButton","Next match"),hA=hx.N("label.toggleSelectionFind","Find in selection"),fA=hx.N("label.closeButton","Close"),pA=hx.N("label.replace","Replace"),vA=hx.N("placeholder.replace","Replace"),gA=hx.N("label.replaceButton","Replace"),mA=hx.N("label.replaceAllButton","Replace All"),_A=hx.N("label.toggleReplaceButton","Toggle Replace mode"),yA=hx.N("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",LI),bA=hx.N("label.matchesLocation","{0} of {1}"),wA=hx.N("label.noResults","No results"),CA=419,kA=69,SA="ctrlEnterReplaceAll.windows.donotask",xA=rL.dz?256:2048,LA=(0,r.Z)((function e(t){(0,i.Z)(this,e),this.afterLineNumber=t,this.heightInPx=33,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}));function EA(e,t,n){var i=!!t.match(/\n/);n&&i&&n.selectionStart>0&&e.stopPropagation()}function NA(e,t,n){var i=!!t.match(/\n/);n&&i&&n.selectionEnd<n.value.length&&e.stopPropagation()}var DA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l,c,d){var h;return(0,i.Z)(this,n),(h=t.call(this))._cachedHeight=null,h._revealTimeouts=[],h._codeEditor=e,h._controller=r,h._state=o,h._contextViewProvider=a,h._keybindingService=s,h._contextKeyService=u,h._storageService=c,h._notificationService=d,h._ctrlEnterReplaceAllWarningPrompted=!!c.getBoolean(SA,0),h._isVisible=!1,h._isReplaceVisible=!1,h._ignoreChangeEvent=!1,h._updateHistoryDelayer=new Px.vp(500),h._register((0,Rx.OF)((function(){return h._updateHistoryDelayer.cancel()}))),h._register(h._state.onFindReplaceStateChange((function(e){return h._onStateChanged(e)}))),h._buildDomNode(),h._updateButtons(),h._tryUpdateWidgetWidth(),h._findInput.inputBox.layout(),h._register(h._codeEditor.onDidChangeConfiguration((function(e){if(e.hasChanged(77)&&(h._codeEditor.getOption(77)&&h._state.change({isReplaceRevealed:!1},!1),h._updateButtons()),e.hasChanged(127)&&h._tryUpdateWidgetWidth(),e.hasChanged(2)&&h.updateAccessibilitySupport(),e.hasChanged(33)){var t=h._codeEditor.getOption(33).addExtraSpaceOnTop;t&&!h._viewZone&&(h._viewZone=new LA(0),h._showViewZone()),!t&&h._viewZone&&h._removeViewZone()}}))),h.updateAccessibilitySupport(),h._register(h._codeEditor.onDidChangeCursorSelection((function(){h._isVisible&&h._updateToggleSelectionFindButton()}))),h._register(h._codeEditor.onDidFocusEditorWidget((function(){return eA((0,yL.Z)(h),void 0,void 0,ki().mark((function e(){var t;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._isVisible){e.next=5;break}return e.next=3,this._controller.getGlobalBufferTerm();case 3:(t=e.sent)&&t!==this._state.searchString&&(this._state.change({searchString:t},!1),this._findInput.select());case 5:case"end":return e.stop()}}),e,this)})))}))),h._findInputFocused=_I.bindTo(u),h._findFocusTracker=h._register(eE.trackFocus(h._findInput.inputBox.inputElement)),h._register(h._findFocusTracker.onDidFocus((function(){h._findInputFocused.set(!0),h._updateSearchScope()}))),h._register(h._findFocusTracker.onDidBlur((function(){h._findInputFocused.set(!1)}))),h._replaceInputFocused=yI.bindTo(u),h._replaceFocusTracker=h._register(eE.trackFocus(h._replaceInput.inputBox.inputElement)),h._register(h._replaceFocusTracker.onDidFocus((function(){h._replaceInputFocused.set(!0),h._updateSearchScope()}))),h._register(h._replaceFocusTracker.onDidBlur((function(){h._replaceInputFocused.set(!1)}))),h._codeEditor.addOverlayWidget((0,yL.Z)(h)),h._codeEditor.getOption(33).addExtraSpaceOnTop&&(h._viewZone=new LA(0)),h._applyTheme(l.getColorTheme()),h._register(l.onDidColorThemeChange(h._applyTheme.bind((0,yL.Z)(h)))),h._register(h._codeEditor.onDidChangeModel((function(){h._isVisible&&(h._viewZoneId=void 0)}))),h._register(h._codeEditor.onDidScrollChange((function(e){e.scrollTopChanged?h._layoutViewZone():setTimeout((function(){h._layoutViewZone()}),0)}))),h}return(0,r.Z)(n,[{key:"getId",value:function(){return n.ID}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return this._isVisible?{preference:0}:null}},{key:"_onStateChanged",value:function(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getOption(77)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=eE.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){var t=this._state.searchString.length>0&&0===this._state.matchesCount;this._domNode.classList.toggle("no-results",t),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}},{key:"_delayedUpdateHistory",value:function(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,yx.dL)}},{key:"_updateHistory",value:function(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}},{key:"_updateMatchesCount",value:function(){var e;if(this._matchesCount.style.minWidth=kA+"px",this._state.matchesCount>=LI?this._matchesCount.title=yA:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){var t=String(this._state.matchesCount);this._state.matchesCount>=LI&&(t+="+");var n=String(this._state.matchesPosition);"0"===n&&(n="?"),e=CL.WU(bA,n,t)}else e=wA;this._matchesCount.appendChild(document.createTextNode(e)),(0,xx.Z9)(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),kA=Math.max(kA,this._matchesCount.clientWidth)}},{key:"_getAriaLabel",value:function(e,t,n){if(e===wA)return""===n?hx.N("ariaSearchNoResultEmpty","{0} found",e):hx.N("ariaSearchNoResult","{0} found for '{1}'",e,n);if(t){var i=hx.N("ariaSearchNoResultWithLineNum","{0} found for '{1}', at {2}",e,n,t.startLineNumber+":"+t.startColumn),r=this._codeEditor.getModel();if(r&&t.startLineNumber<=r.getLineCount()&&t.startLineNumber>=1){var o=r.getLineContent(t.startLineNumber);return"".concat(o,", ").concat(i)}return i}return hx.N("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,n)}},{key:"_updateToggleSelectionFindButton",value:function(){var e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),n=this._toggleSelectionFind.checked;this._isVisible&&(n||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}},{key:"_updateButtons",value:function(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);var e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);var n=!this._codeEditor.getOption(77);this._toggleReplaceBtn.setEnabled(this._isVisible&&n)}},{key:"_reveal",value:function(){var e=this;if(this._revealTimeouts.forEach((function(e){clearTimeout(e)})),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;var t=this._codeEditor.getSelection();switch(this._codeEditor.getOption(33).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":var n=!!t&&t.startLineNumber!==t.endLineNumber;this._toggleSelectionFind.checked=n}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout((function(){e._domNode.classList.add("visible"),e._domNode.setAttribute("aria-hidden","false")}),0)),this._revealTimeouts.push(setTimeout((function(){e._findInput.validate()}),200)),this._codeEditor.layoutOverlayWidget(this);var i=!0;if(this._codeEditor.getOption(33).seedSearchStringFromSelection&&t){var r=this._codeEditor.getDomNode();if(r){var o=eE.getDomNodePagePosition(r),a=this._codeEditor.getScrolledVisiblePosition(t.getStartPosition()),s=o.left+(a?a.left:0),u=a?a.top:0;if(this._viewZone&&u<this._viewZone.heightInPx){t.endLineNumber>t.startLineNumber&&(i=!1);var l=eE.getTopLeftOffset(this._domNode).left;s>l&&(i=!1);var c=this._codeEditor.getScrolledVisiblePosition(t.getEndPosition());o.left+(c?c.left:0)>l&&(i=!1)}}}this._showViewZone(i)}}},{key:"_hide",value:function(e){this._revealTimeouts.forEach((function(e){clearTimeout(e)})),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}},{key:"_layoutViewZone",value:function(e){var t=this;if(this._codeEditor.getOption(33).addExtraSpaceOnTop){if(this._isVisible){var n=this._viewZone;void 0===this._viewZoneId&&n&&this._codeEditor.changeViewZones((function(i){n.heightInPx=t._getHeight(),t._viewZoneId=i.addZone(n),t._codeEditor.setScrollTop(e||t._codeEditor.getScrollTop()+n.heightInPx)}))}}else this._removeViewZone()}},{key:"_showViewZone",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(this._isVisible&&this._codeEditor.getOption(33).addExtraSpaceOnTop){void 0===this._viewZone&&(this._viewZone=new LA(0));var n=this._viewZone;this._codeEditor.changeViewZones((function(i){if(void 0!==e._viewZoneId){var r=e._getHeight();if(r===n.heightInPx)return;var o=r-n.heightInPx;return n.heightInPx=r,i.layoutZone(e._viewZoneId),void(t&&e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()+o))}var a=e._getHeight();(a-=e._codeEditor.getOption(71).top)<=0||(n.heightInPx=a,e._viewZoneId=i.addZone(n),t&&e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()+a))}))}}},{key:"_removeViewZone",value:function(){var e=this;this._codeEditor.changeViewZones((function(t){void 0!==e._viewZoneId&&(t.removeZone(e._viewZoneId),e._viewZoneId=void 0,e._viewZone&&(e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()-e._viewZone.heightInPx),e._viewZone=void 0))}))}},{key:"_applyTheme",value:function(e){var t={inputActiveOptionBorder:e.getColor(zx.PR),inputActiveOptionBackground:e.getColor(zx.XE),inputActiveOptionForeground:e.getColor(zx.Pv),inputBackground:e.getColor(zx.sE),inputForeground:e.getColor(zx.zJ),inputBorder:e.getColor(zx.dt),inputValidationInfoBackground:e.getColor(zx._l),inputValidationInfoForeground:e.getColor(zx.YI),inputValidationInfoBorder:e.getColor(zx.EP),inputValidationWarningBackground:e.getColor(zx.RV),inputValidationWarningForeground:e.getColor(zx.SU),inputValidationWarningBorder:e.getColor(zx.C3),inputValidationErrorBackground:e.getColor(zx.p),inputValidationErrorForeground:e.getColor(zx._t),inputValidationErrorBorder:e.getColor(zx.OZ)};this._findInput.style(t),this._replaceInput.style(t),this._toggleSelectionFind.style(t)}},{key:"_tryUpdateWidgetWidth",value:function(){if(this._isVisible&&eE.isInDOM(this._domNode)){var e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0)this._domNode.classList.add("hiddenEditor");else{this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");var t=e.width,n=e.minimap.minimapWidth,i=!1,r=!1,o=!1;if(this._resized)if(eE.getTotalWidth(this._domNode)>CA)return this._domNode.style.maxWidth="".concat(t-28-n-15,"px"),void(this._replaceInput.width=eE.getTotalWidth(this._findInput.domNode));if(447+n>=t&&(r=!0),447+n-kA>=t&&(o=!0),447+n-kA>=t+50&&(i=!0),this._domNode.classList.toggle("collapsed-find-widget",i),this._domNode.classList.toggle("narrow-find-widget",o),this._domNode.classList.toggle("reduced-find-widget",r),o||i||(this._domNode.style.maxWidth="".concat(t-28-n-15,"px")),this._resized){this._findInput.inputBox.layout();var a=this._findInput.inputBox.element.clientWidth;a>0&&(this._replaceInput.width=a)}else this._isReplaceVisible&&(this._replaceInput.width=eE.getTotalWidth(this._findInput.domNode))}}}},{key:"_getHeight",value:function(){var e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4}},{key:"_tryUpdateHeight",value:function(){var e=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==e)&&(this._cachedHeight=e,this._domNode.style.height="".concat(e,"px"),!0)}},{key:"focusFindInput",value:function(){this._findInput.select(),this._findInput.focus()}},{key:"focusReplaceInput",value:function(){this._replaceInput.select(),this._replaceInput.focus()}},{key:"highlightFindOptions",value:function(){this._findInput.highlightFindOptions()}},{key:"_updateSearchScope",value:function(){var e=this;if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){var t=this._codeEditor.getSelections();t.map((function(t){1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,e._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));var n=e._state.currentMatch;return t.startLineNumber===t.endLineNumber||Fx.e.equalsRange(t,n)?null:t})).filter((function(e){return!!e})),t.length&&this._state.change({searchScope:t},!0)}}},{key:"_onFindInputMouseDown",value:function(e){e.middleButton&&e.stopPropagation()}},{key:"_onFindInputKeyDown",value:function(e){return e.equals(3|xA)?(this._findInput.inputBox.insertAtCursor("\n"),void e.preventDefault()):e.equals(2)?(this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?EA(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):e.equals(18)?NA(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):void 0}},{key:"_onReplaceInputKeyDown",value:function(e){return e.equals(3|xA)?(rL.ED&&rL.tY&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(hx.N("ctrlEnter.keybindingChanged","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(SA,!0,0,0)),this._replaceInput.inputBox.insertAtCursor("\n"),void e.preventDefault()):e.equals(2)?(this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(1026)?(this._findInput.focus(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?EA(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):e.equals(18)?NA(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):void 0}},{key:"getVerticalSashLeft",value:function(e){return 0}},{key:"_keybindingLabelFor",value:function(e){var t=this._keybindingService.lookupKeybinding(e);return t?" (".concat(t.getLabel(),")"):""}},{key:"_buildDomNode",value:function(){var e=this;this._findInput=this._register(new XI(null,this._contextViewProvider,{width:221,label:uA,placeholder:lA,appendCaseSensitiveLabel:this._keybindingLabelFor(xI.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(xI.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(xI.ToggleRegexCommand),validation:function(t){if(0===t.length||!e._findInput.getRegex())return null;try{return new RegExp(t,"gu"),null}catch(n){return{content:n.message}}},flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118},this._contextKeyService,!0)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((function(t){return e._onFindInputKeyDown(t)}))),this._register(this._findInput.inputBox.onDidChange((function(){e._ignoreChangeEvent||e._state.change({searchString:e._findInput.getValue()},!0)}))),this._register(this._findInput.onDidOptionChange((function(){e._state.change({isRegex:e._findInput.getRegex(),wholeWord:e._findInput.getWholeWords(),matchCase:e._findInput.getCaseSensitive()},!0)}))),this._register(this._findInput.onCaseSensitiveKeyDown((function(t){t.equals(1026)&&e._isReplaceVisible&&(e._replaceInput.focus(),t.preventDefault())}))),this._register(this._findInput.onRegexKeyDown((function(t){t.equals(2)&&e._isReplaceVisible&&(e._replaceInput.focusOnPreserve(),t.preventDefault())}))),this._register(this._findInput.inputBox.onDidHeightChange((function(t){e._tryUpdateHeight()&&e._showViewZone()}))),rL.IJ&&this._register(this._findInput.onMouseDown((function(t){return e._onFindInputMouseDown(t)}))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new MA({label:cA+this._keybindingLabelFor(xI.PreviousMatchFindAction),icon:aA,onTrigger:function(){e._codeEditor.getAction(xI.PreviousMatchFindAction).run().then(void 0,yx.dL)}})),this._nextBtn=this._register(new MA({label:dA+this._keybindingLabelFor(xI.NextMatchFindAction),icon:sA,onTrigger:function(){e._codeEditor.getAction(xI.NextMatchFindAction).run().then(void 0,yx.dL)}}));var t=document.createElement("div");t.className="find-part",t.appendChild(this._findInput.domNode);var n=document.createElement("div");n.className="find-actions",t.appendChild(n),n.appendChild(this._matchesCount),n.appendChild(this._prevBtn.domNode),n.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new DI({icon:tA,title:hA+this._keybindingLabelFor(xI.ToggleSearchScopeCommand),isChecked:!1})),this._register(this._toggleSelectionFind.onChange((function(){if(e._toggleSelectionFind.checked){if(e._codeEditor.hasModel()){var t=e._codeEditor.getSelections();t.map((function(t){return 1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,e._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t})).filter((function(e){return!!e})),t.length&&e._state.change({searchScope:t},!0)}}else e._state.change({searchScope:null},!0)}))),n.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new MA({label:fA+this._keybindingLabelFor(xI.CloseFindWidgetCommand),icon:dM.s_,onTrigger:function(){e._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:function(t){t.equals(2)&&e._isReplaceVisible&&(e._replaceBtn.isEnabled()?e._replaceBtn.focus():e._codeEditor.focus(),t.preventDefault())}})),n.appendChild(this._closeBtn.domNode),this._replaceInput=this._register(new JI(null,void 0,{label:pA,placeholder:vA,appendPreserveCaseLabel:this._keybindingLabelFor(xI.TogglePreserveCaseCommand),history:[],flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((function(t){return e._onReplaceInputKeyDown(t)}))),this._register(this._replaceInput.inputBox.onDidChange((function(){e._state.change({replaceString:e._replaceInput.inputBox.value},!1)}))),this._register(this._replaceInput.inputBox.onDidHeightChange((function(t){e._isReplaceVisible&&e._tryUpdateHeight()&&e._showViewZone()}))),this._register(this._replaceInput.onDidOptionChange((function(){e._state.change({preserveCase:e._replaceInput.getPreserveCase()},!0)}))),this._register(this._replaceInput.onPreserveCaseKeyDown((function(t){t.equals(2)&&(e._prevBtn.isEnabled()?e._prevBtn.focus():e._nextBtn.isEnabled()?e._nextBtn.focus():e._toggleSelectionFind.enabled?e._toggleSelectionFind.focus():e._closeBtn.isEnabled()&&e._closeBtn.focus(),t.preventDefault())}))),this._replaceBtn=this._register(new MA({label:gA+this._keybindingLabelFor(xI.ReplaceOneAction),icon:rA,onTrigger:function(){e._controller.replace()},onKeyDown:function(t){t.equals(1026)&&(e._closeBtn.focus(),t.preventDefault())}})),this._replaceAllBtn=this._register(new MA({label:mA+this._keybindingLabelFor(xI.ReplaceAllAction),icon:oA,onTrigger:function(){e._controller.replaceAll()}}));var i=document.createElement("div");i.className="replace-part",i.appendChild(this._replaceInput.domNode);var r=document.createElement("div");r.className="replace-actions",i.appendChild(r),r.appendChild(this._replaceBtn.domNode),r.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new MA({label:_A,className:"codicon toggle left",onTrigger:function(){e._state.change({isReplaceRevealed:!e._isReplaceVisible},!1),e._isReplaceVisible&&(e._replaceInput.width=eE.getTotalWidth(e._findInput.domNode),e._replaceInput.inputBox.layout()),e._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.style.width="".concat(CA,"px"),this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(t),this._domNode.appendChild(i),this._resizeSash=new iD.g(this._domNode,this,{orientation:0,size:2}),this._resized=!1;var o=CA;this._register(this._resizeSash.onDidStart((function(){o=eE.getTotalWidth(e._domNode)}))),this._register(this._resizeSash.onDidChange((function(t){e._resized=!0;var n=o+t.startX-t.currentX;n<CA||(n>(parseFloat(eE.getComputedStyle(e._domNode).maxWidth)||0)||(e._domNode.style.width="".concat(n,"px"),e._isReplaceVisible&&(e._replaceInput.width=eE.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout(),e._tryUpdateHeight()))}))),this._register(this._resizeSash.onDidReset((function(){var t=eE.getTotalWidth(e._domNode);if(!(t<CA)){var n=CA;if(!e._resized||t===CA){var i=e._codeEditor.getLayoutInfo();n=i.width-28-i.minimap.minimapWidth-15,e._resized=!0}e._domNode.style.width="".concat(n,"px"),e._isReplaceVisible&&(e._replaceInput.width=eE.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout()}})))}},{key:"updateAccessibilitySupport",value:function(){var e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(2!==e)}}]),n}(ON.$);DA.ID="editor.contrib.findWidget";var MA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;(0,i.Z)(this,n),(r=t.call(this))._opts=e;var o="button";return r._opts.className&&(o=o+" "+r._opts.className),r._opts.icon&&(o=o+" "+Wx.kS.asClassName(r._opts.icon)),r._domNode=document.createElement("div"),r._domNode.title=r._opts.label,r._domNode.tabIndex=0,r._domNode.className=o,r._domNode.setAttribute("role","button"),r._domNode.setAttribute("aria-label",r._opts.label),r.onclick(r._domNode,(function(e){r._opts.onTrigger(),e.preventDefault()})),r.onkeydown(r._domNode,(function(e){if(e.equals(10)||e.equals(3))return r._opts.onTrigger(),void e.preventDefault();r._opts.onKeyDown&&r._opts.onKeyDown(e)})),r}return(0,r.Z)(n,[{key:"domNode",get:function(){return this._domNode}},{key:"isEnabled",value:function(){return this._domNode.tabIndex>=0}},{key:"focus",value:function(){this._domNode.focus()}},{key:"setEnabled",value:function(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}},{key:"setExpanded",value:function(e){var t,n,i,r;(this._domNode.setAttribute("aria-expanded",String(!!e)),e)?((t=this._domNode.classList).remove.apply(t,(0,Lt.Z)(Wx.kS.asClassNameArray(nA))),(n=this._domNode.classList).add.apply(n,(0,Lt.Z)(Wx.kS.asClassNameArray(iA)))):((i=this._domNode.classList).remove.apply(i,(0,Lt.Z)(Wx.kS.asClassNameArray(iA))),(r=this._domNode.classList).add.apply(r,(0,Lt.Z)(Wx.kS.asClassNameArray(nA))))}}]),n}(ON.$);(0,Wx.Ic)((function(e,t){var n=function(e,n){n&&t.addRule(".monaco-editor ".concat(e," { background-color: ").concat(n,"; }"))};n(".findMatch",e.getColor(zx.MU)),n(".currentFindMatch",e.getColor(zx.ny)),n(".findScope",e.getColor(zx.jU)),n(".find-widget",e.getColor(zx.D0));var i=e.getColor(zx.rh);i&&t.addRule(".monaco-editor .find-widget { box-shadow: 0 0 8px 2px ".concat(i,"; }"));var r=e.getColor(zx.Ei);r&&t.addRule(".monaco-editor .findMatch { border: 1px ".concat("hc"===e.type?"dotted":"solid"," ").concat(r,"; box-sizing: border-box; }"));var o=e.getColor(zx.pn);o&&t.addRule(".monaco-editor .currentFindMatch { border: 2px solid ".concat(o,"; padding: 1px; box-sizing: border-box; }"));var a=e.getColor(zx.gk);a&&t.addRule(".monaco-editor .findScope { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(a,"; }"));var s=e.getColor(zx.lR);s&&t.addRule(".monaco-editor .find-widget { border: 1px solid ".concat(s,"; }"));var u=e.getColor(zx.Hf);u&&t.addRule(".monaco-editor .find-widget { color: ".concat(u,"; }"));var l=e.getColor(zx.Id);l&&t.addRule(".monaco-editor .find-widget.no-results .matchesCount { color: ".concat(l,"; }"));var c=e.getColor(zx.Ng);if(c)t.addRule(".monaco-editor .find-widget .monaco-sash { background-color: ".concat(c,"; }"));else{var d=e.getColor(zx.D1);d&&t.addRule(".monaco-editor .find-widget .monaco-sash { background-color: ".concat(d,"; }"))}var h=e.getColor(zx.R8);h&&t.addRule(".monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ".concat(h,"; }"))}));var TA=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},OA=function(e,t){return function(n,i){t(n,i,e)}},IA=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},AA=524288;function PA(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"single";if(!e.hasModel())return null;var n=e.getSelection();if("single"===t&&n.startLineNumber===n.endLineNumber||"multiple"===t)if(n.isEmpty()){var i=e.getConfiguredWordAtPosition(n.getStartPosition());if(i)return i.word}else if(e.getModel().getValueLengthInRange(n)<AA)return e.getModel().getValueInRange(n);return null}var RA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._editor=e,s._findWidgetVisible=mI.bindTo(r),s._contextKeyService=r,s._storageService=o,s._clipboardService=a,s._updateHistoryDelayer=new Px.vp(500),s._state=s._register(new FI),s.loadQueryState(),s._register(s._state.onFindReplaceStateChange((function(e){return s._onStateChanged(e)}))),s._model=null,s._register(s._editor.onDidChangeModel((function(){var e=s._editor.getModel()&&s._state.isRevealed;s.disposeModel(),s._state.change({searchScope:null,matchCase:s._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:s._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:s._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:s._storageService.getBoolean("editor.preserveCase",1,!1)},!1),e&&s._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:s._editor.getOption(33).loop})}))),s}return(0,r.Z)(n,[{key:"editor",get:function(){return this._editor}},{key:"dispose",value:function(){this.disposeModel(),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"disposeModel",value:function(){this._model&&(this._model.dispose(),this._model=null)}},{key:"_onStateChanged",value:function(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}},{key:"saveQueryState",value:function(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,0),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,0),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,0),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,0)}},{key:"loadQueryState",value:function(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}},{key:"isFindInputFocused",value:function(){return!!_I.getValue(this._contextKeyService)}},{key:"getState",value:function(){return this._state}},{key:"closeFindWidget",value:function(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}},{key:"toggleCaseSensitive",value:function(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}},{key:"toggleWholeWords",value:function(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}},{key:"toggleRegex",value:function(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}},{key:"togglePreserveCase",value:function(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}},{key:"toggleSearchScope",value:function(){var e=this;if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){var t=this._editor.getSelections();t.map((function(t){return 1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,e._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t})).filter((function(e){return!!e})),t.length&&this._state.change({searchScope:t},!0)}}},{key:"setSearchString",value:function(e){this._state.isRegex&&(e=CL.ec(e)),this._state.change({searchString:e},!1)}},{key:"highlightFindOptions",value:function(){}},{key:"_start",value:function(e){return IA(this,void 0,void 0,ki().mark((function t(){var n,i,r,o,a;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.disposeModel(),this._editor.hasModel()){t.next=3;break}return t.abrupt("return");case 3:if(n={isRevealed:!0},"single"===e.seedSearchStringFromSelection?(i=PA(this._editor,e.seedSearchStringFromSelection))&&(this._state.isRegex?n.searchString=CL.ec(i):n.searchString=i):"multiple"!==e.seedSearchStringFromSelection||e.updateSearchScope||(r=PA(this._editor,e.seedSearchStringFromSelection))&&(n.searchString=r),n.searchString||!e.seedSearchStringFromGlobalClipboard){t.next=12;break}return t.next=8,this.getGlobalBufferTerm();case 8:if(o=t.sent,this._editor.hasModel()){t.next=11;break}return t.abrupt("return");case 11:o&&(n.searchString=o);case 12:e.forceRevealReplace?n.isReplaceRevealed=!0:this._findWidgetVisible.get()||(n.isReplaceRevealed=!1),e.updateSearchScope&&(a=this._editor.getSelections()).some((function(e){return!e.isEmpty()}))&&(n.searchScope=a),n.loop=e.loop,this._state.change(n,!1),this._model||(this._model=new EI(this._editor,this._state));case 17:case"end":return t.stop()}}),t,this)})))}},{key:"start",value:function(e){return this._start(e)}},{key:"moveToNextMatch",value:function(){return!!this._model&&(this._model.moveToNextMatch(),!0)}},{key:"moveToPrevMatch",value:function(){return!!this._model&&(this._model.moveToPrevMatch(),!0)}},{key:"replace",value:function(){return!!this._model&&(this._model.replace(),!0)}},{key:"replaceAll",value:function(){return!!this._model&&(this._model.replaceAll(),!0)}},{key:"selectAllMatches",value:function(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)}},{key:"getGlobalBufferTerm",value:function(){return IA(this,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._editor.getOption(33).globalFindClipboard||!this._editor.hasModel()||this._editor.getModel().isTooLargeForSyncing()){e.next=2;break}return e.abrupt("return",this._clipboardService.readFindText());case 2:return e.abrupt("return","");case 3:case"end":return e.stop()}}),e,this)})))}},{key:"setGlobalBufferTerm",value:function(e){this._editor.getOption(33).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);RA.ID="editor.contrib.findController";var ZA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l,c){var d;return(0,i.Z)(this,n),(d=t.call(this,e,o,l,c))._contextViewService=r,d._keybindingService=a,d._themeService=s,d._notificationService=u,d._widget=null,d._findOptionsWidget=null,d}return(0,r.Z)(n,[{key:"_start",value:function(e){var t=this,i=Object.create(null,{_start:{get:function(){return(0,YL.Z)((0,UL.Z)(n.prototype),"_start",t)}}});return IA(this,void 0,void 0,ki().mark((function t(){var n,r,o;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this._widget||this._createFindWidget(),n=this._editor.getSelection(),r=!1,t.t0=this._editor.getOption(33).autoFindInSelection,t.next="always"===t.t0?6:"never"===t.t0?8:"multiline"===t.t0?10:13;break;case 6:return r=!0,t.abrupt("break",14);case 8:return r=!1,t.abrupt("break",14);case 10:return o=!!n&&n.startLineNumber!==n.endLineNumber,r=o,t.abrupt("break",14);case 13:return t.abrupt("break",14);case 14:return e.updateSearchScope=r,t.next=17,i._start.call(this,e);case 17:this._widget&&(2===e.shouldFocus?this._widget.focusReplaceInput():1===e.shouldFocus&&this._widget.focusFindInput());case 18:case"end":return t.stop()}}),t,this)})))}},{key:"highlightFindOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}},{key:"_createFindWidget",value:function(){this._widget=this._register(new DA(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new RI(this._editor,this._state,this._keybindingService,this._themeService))}}]),n}(RA=TA([OA(1,gx.i6),OA(2,cN.Uy),OA(3,sL.p)],RA));ZA=TA([OA(1,nE.u),OA(2,gx.i6),OA(3,iE.d),OA(4,Wx.XE),OA(5,NE.lT),OA(6,cN.Uy),OA(7,sL.p)],ZA),(0,dx.rn)(new dx.jY({id:xI.StartFindAction,label:hx.N("startFindAction","Find"),alias:"Find",precondition:gx.Ao.or(fx.u.focus,gx.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:Vx.eH.MenubarEditMenu,group:"3_find",title:hx.N({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}})).addImplementation(0,(function(e,t,n){var i=RA.get(t);return!!i&&i.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(33).seedSearchStringFromSelection?"single":"none",seedSearchStringFromGlobalClipboard:t.getOption(33).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop})}));var FA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:xI.StartFindWithSelection,label:hx.N("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return IA(this,void 0,void 0,ki().mark((function e(){var n;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=RA.get(t))){e.next=5;break}return e.next=4,n.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop});case 4:n.setGlobalBufferTerm(n.getState().searchString);case 5:case"end":return e.stop()}}),e)})))}}]),n}(dx.R6),jA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){return IA(this,void 0,void 0,ki().mark((function e(){var n;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=RA.get(t))||this._run(n)){e.next=5;break}return e.next=4,n.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===n.getState().searchString.length&&t.getOption(33).seedSearchStringFromSelection?"single":"none",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop});case 4:this._run(n);case 5:case"end":return e.stop()}}),e,this)})))}}]),n}(dx.R6),HA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:xI.NextMatchFindAction,label:hx.N("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return!!e.moveToNextMatch()&&(e.editor.pushUndoStop(),!0)}}]),n}(jA),BA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:xI.NextMatchFindAction,label:hx.N("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:{kbExpr:gx.Ao.and(fx.u.focus,_I),primary:3,weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return!!e.moveToNextMatch()&&(e.editor.pushUndoStop(),!0)}}]),n}(jA),zA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:xI.PreviousMatchFindAction,label:hx.N("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return e.moveToPrevMatch()}}]),n}(jA),WA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:xI.PreviousMatchFindAction,label:hx.N("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:{kbExpr:gx.Ao.and(fx.u.focus,_I),primary:1027,weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return e.moveToPrevMatch()}}]),n}(jA),VA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){return IA(this,void 0,void 0,ki().mark((function e(){var n,i;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=RA.get(t)){e.next=3;break}return e.abrupt("return");case 3:if((i=PA(t))&&n.setSearchString(i),this._run(n)){e.next=9;break}return e.next=8,n.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(33).seedSearchStringFromSelection?"single":"none",seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop});case 8:this._run(n);case 9:case"end":return e.stop()}}),e,this)})))}}]),n}(dx.R6),YA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:xI.NextSelectionMatchFindAction,label:hx.N("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:2109,weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return e.moveToNextMatch()}}]),n}(VA),UA=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:xI.PreviousSelectionMatchFindAction,label:hx.N("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:3133,weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e){return e.moveToPrevMatch()}}]),n}(VA);(0,dx.rn)(new dx.jY({id:xI.StartFindReplaceAction,label:hx.N("startReplace","Replace"),alias:"Replace",precondition:gx.Ao.or(fx.u.focus,gx.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:Vx.eH.MenubarEditMenu,group:"3_find",title:hx.N({key:"miReplace",comment:["&& denotes a mnemonic"]},"&&Replace"),order:2}})).addImplementation(0,(function(e,t,n){if(!t.hasModel()||t.getOption(77))return!1;var i=RA.get(t);if(!i)return!1;var r=t.getSelection(),o=i.isFindInputFocused(),a=!r.isEmpty()&&r.startLineNumber===r.endLineNumber&&t.getOption(33).seedSearchStringFromSelection&&!o,s=o||a?2:1;return i.start({forceRevealReplace:!0,seedSearchStringFromSelection:a?"single":"none",seedSearchStringFromGlobalClipboard:t.getOption(33).seedSearchStringFromSelection,shouldFocus:s,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(33).loop})})),(0,dx._K)(RA.ID,ZA),(0,dx.Qr)(FA),(0,dx.Qr)(HA),(0,dx.Qr)(BA),(0,dx.Qr)(zA),(0,dx.Qr)(WA),(0,dx.Qr)(YA),(0,dx.Qr)(UA);var KA=dx._l.bindToContribution(RA.get);(0,dx.fK)(new KA({id:xI.CloseFindWidgetCommand,precondition:mI,handler:function(e){return e.closeFindWidget()},kbOpts:{weight:105,kbExpr:gx.Ao.and(fx.u.focus,gx.Ao.not("isComposing")),primary:9,secondary:[1033]}})),(0,dx.fK)(new KA({id:xI.ToggleCaseSensitiveCommand,precondition:void 0,handler:function(e){return e.toggleCaseSensitive()},kbOpts:{weight:105,kbExpr:fx.u.focus,primary:bI.primary,mac:bI.mac,win:bI.win,linux:bI.linux}})),(0,dx.fK)(new KA({id:xI.ToggleWholeWordCommand,precondition:void 0,handler:function(e){return e.toggleWholeWords()},kbOpts:{weight:105,kbExpr:fx.u.focus,primary:wI.primary,mac:wI.mac,win:wI.win,linux:wI.linux}})),(0,dx.fK)(new KA({id:xI.ToggleRegexCommand,precondition:void 0,handler:function(e){return e.toggleRegex()},kbOpts:{weight:105,kbExpr:fx.u.focus,primary:CI.primary,mac:CI.mac,win:CI.win,linux:CI.linux}})),(0,dx.fK)(new KA({id:xI.ToggleSearchScopeCommand,precondition:void 0,handler:function(e){return e.toggleSearchScope()},kbOpts:{weight:105,kbExpr:fx.u.focus,primary:kI.primary,mac:kI.mac,win:kI.win,linux:kI.linux}})),(0,dx.fK)(new KA({id:xI.TogglePreserveCaseCommand,precondition:void 0,handler:function(e){return e.togglePreserveCase()},kbOpts:{weight:105,kbExpr:fx.u.focus,primary:SI.primary,mac:SI.mac,win:SI.win,linux:SI.linux}})),(0,dx.fK)(new KA({id:xI.ReplaceOneAction,precondition:mI,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:fx.u.focus,primary:3094}})),(0,dx.fK)(new KA({id:xI.ReplaceOneAction,precondition:mI,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:gx.Ao.and(fx.u.focus,yI),primary:3}})),(0,dx.fK)(new KA({id:xI.ReplaceAllAction,precondition:mI,handler:function(e){return e.replaceAll()},kbOpts:{weight:105,kbExpr:fx.u.focus,primary:2563}})),(0,dx.fK)(new KA({id:xI.ReplaceAllAction,precondition:mI,handler:function(e){return e.replaceAll()},kbOpts:{weight:105,kbExpr:gx.Ao.and(fx.u.focus,yI),primary:void 0,mac:{primary:2051}}})),(0,dx.fK)(new KA({id:xI.SelectAllMatchesAction,precondition:mI,handler:function(e){return e.selectAllMatches()},kbOpts:{weight:105,kbExpr:fx.u.focus,primary:515}}));var qA=65535,GA=16777215,$A=4278190080,QA=function(){function e(t,n,r){if((0,i.Z)(this,e),t.length!==n.length||t.length>qA)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=t,this._endIndexes=n,this._collapseStates=new Uint32Array(Math.ceil(t.length/32)),this._types=r,this._parentsComputed=!1}return(0,r.Z)(e,[{key:"ensureParentIndices",value:function(){var e=this;if(!this._parentsComputed){this._parentsComputed=!0;for(var t=[],n=function(n,i){var r=t[t.length-1];return e.getStartLineNumber(r)<=n&&e.getEndLineNumber(r)>=i},i=0,r=this._startIndexes.length;i<r;i++){var o=this._startIndexes[i],a=this._endIndexes[i];if(o>GA||a>GA)throw new Error("startLineNumber or endLineNumber must not exceed "+GA);for(;t.length>0&&!n(o,a);)t.pop();var s=t.length>0?t[t.length-1]:-1;t.push(i),this._startIndexes[i]=o+((255&s)<<24),this._endIndexes[i]=a+((65280&s)<<16)}}}},{key:"length",get:function(){return this._startIndexes.length}},{key:"getStartLineNumber",value:function(e){return this._startIndexes[e]&GA}},{key:"getEndLineNumber",value:function(e){return this._endIndexes[e]&GA}},{key:"getType",value:function(e){return this._types?this._types[e]:void 0}},{key:"hasTypes",value:function(){return!!this._types}},{key:"isCollapsed",value:function(e){var t=e/32|0,n=e%32;return 0!==(this._collapseStates[t]&1<<n)}},{key:"setCollapsed",value:function(e,t){var n=e/32|0,i=e%32,r=this._collapseStates[n];this._collapseStates[n]=t?r|1<<i:r&~(1<<i)}},{key:"toRegion",value:function(e){return new XA(this,e)}},{key:"getParentIndex",value:function(e){this.ensureParentIndices();var t=((this._startIndexes[e]&$A)>>>24)+((this._endIndexes[e]&$A)>>>16);return t===qA?-1:t}},{key:"contains",value:function(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}},{key:"findIndex",value:function(e){var t=0,n=this._startIndexes.length;if(0===n)return-1;for(;t<n;){var i=Math.floor((t+n)/2);e<this.getStartLineNumber(i)?n=i:t=i+1}return t-1}},{key:"findRange",value:function(e){var t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);-1!==t;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}},{key:"toString",value:function(){for(var e=[],t=0;t<this.length;t++)e[t]="[".concat(this.isCollapsed(t)?"+":"-","] ").concat(this.getStartLineNumber(t),"/").concat(this.getEndLineNumber(t));return e.join(", ")}}]),e}(),XA=function(){function e(t,n){(0,i.Z)(this,e),this.ranges=t,this.index=n}return(0,r.Z)(e,[{key:"startLineNumber",get:function(){return this.ranges.getStartLineNumber(this.index)}},{key:"endLineNumber",get:function(){return this.ranges.getEndLineNumber(this.index)}},{key:"regionIndex",get:function(){return this.index}},{key:"parentIndex",get:function(){return this.ranges.getParentIndex(this.index)}},{key:"isCollapsed",get:function(){return this.ranges.isCollapsed(this.index)}},{key:"containedBy",value:function(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}},{key:"containsLine",value:function(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}]),e}(),JA=function(){function e(t,n){(0,i.Z)(this,e),this._updateEventEmitter=new hE.Q5,this.onDidChange=this._updateEventEmitter.event,this._textModel=t,this._decorationProvider=n,this._regions=new QA(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[],this._isInitialized=!1}return(0,r.Z)(e,[{key:"regions",get:function(){return this._regions}},{key:"textModel",get:function(){return this._textModel}},{key:"isInitialized",get:function(){return this._isInitialized}},{key:"toggleCollapseState",value:function(e){var t=this;if(e.length){e=e.sort((function(e,t){return e.regionIndex-t.regionIndex}));var n={};this._decorationProvider.changeDecorations((function(i){var r,o=0,a=-1,s=-1,u=function(e){for(;o<e;){var n=t._regions.getEndLineNumber(o),r=t._regions.isCollapsed(o);n<=a&&i.changeDecorationOptions(t._editorDecorationIds[o],t._decorationProvider.getDecorationOption(r,n<=s)),r&&n>s&&(s=n),o++}},l=(0,Tr.Z)(e);try{for(l.s();!(r=l.n()).done;){var c=r.value.regionIndex,d=t._editorDecorationIds[c];if(d&&!n[d]){n[d]=!0,u(c);var h=!t._regions.isCollapsed(c);t._regions.setCollapsed(c,h),a=Math.max(a,t._regions.getEndLineNumber(c))}}}catch(f){l.e(f)}finally{l.f()}u(t._regions.length)})),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}}},{key:"update",value:function(e){for(var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=[],r=-1,o=function(o,a){var s=e.getStartLineNumber(o),u=e.getEndLineNumber(o);a&&function(e,t){var i,r=(0,Tr.Z)(n);try{for(r.s();!(i=r.n()).done;){var o=i.value;if(e<o&&o<=t)return!0}}catch(a){r.e(a)}finally{r.f()}return!1}(s,u)&&(a=!1),e.setCollapsed(o,a);var l=t._textModel.getLineMaxColumn(s),c={startLineNumber:s,startColumn:Math.max(l-1,1),endLineNumber:s,endColumn:l};i.push({range:c,options:t._decorationProvider.getDecorationOption(a,u<=r)}),a&&u>r&&(r=u)},a=0,s=function(){for(;a<t._regions.length;){var e=t._regions.isCollapsed(a);if(a++,e)return a-1}return-1},u=0,l=s();-1!==l&&u<e.length;){var c=this._textModel.getDecorationRange(this._editorDecorationIds[l]);if(c){var d=c.startLineNumber;if(c.startColumn===Math.max(c.endColumn-1,1)&&this._textModel.getLineMaxColumn(d)===c.endColumn)for(;u<e.length;){var h=e.getStartLineNumber(u);if(!(d>=h))break;o(u,d===h),u++}}l=s()}for(;u<e.length;)o(u,!1),u++;this._editorDecorationIds=this._decorationProvider.deltaDecorations(this._editorDecorationIds,i),this._regions=e,this._isInitialized=!0,this._updateEventEmitter.fire({model:this})}},{key:"getMemento",value:function(){for(var e=[],t=0;t<this._regions.length;t++)if(this._regions.isCollapsed(t)){var n=this._textModel.getDecorationRange(this._editorDecorationIds[t]);if(n){var i=n.startLineNumber,r=n.endLineNumber+this._regions.getEndLineNumber(t)-this._regions.getStartLineNumber(t);e.push({startLineNumber:i,endLineNumber:r})}}if(e.length>0)return e}},{key:"applyMemento",value:function(e){if(Array.isArray(e)){var t,n=[],i=(0,Tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.getRegionAtLine(r.startLineNumber);o&&!o.isCollapsed&&n.push(o)}}catch(a){i.e(a)}finally{i.f()}this.toggleCollapseState(n)}}},{key:"dispose",value:function(){this._decorationProvider.deltaDecorations(this._editorDecorationIds,[])}},{key:"getAllRegionsAtLine",value:function(e,t){var n=[];if(this._regions)for(var i=this._regions.findRange(e),r=1;i>=0;){var o=this._regions.toRegion(i);t&&!t(o,r)||n.push(o),r++,i=o.parentIndex}return n}},{key:"getRegionAtLine",value:function(e){if(this._regions){var t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}},{key:"getRegionsInside",value:function(e,t){var n=[],i=e?e.regionIndex+1:0,r=e?e.endLineNumber:Number.MAX_VALUE;if(t&&2===t.length)for(var o=[],a=i,s=this._regions.length;a<s;a++){var u=this._regions.toRegion(a);if(!(this._regions.getStartLineNumber(a)<r))break;for(;o.length>0&&!u.containedBy(o[o.length-1]);)o.pop();o.push(u),t(u,o.length)&&n.push(u)}else for(var l=i,c=this._regions.length;l<c;l++){var d=this._regions.toRegion(l);if(!(this._regions.getStartLineNumber(l)<r))break;t&&!t(d)||n.push(d)}return n}}]),e}();function eP(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.MAX_VALUE,i=arguments.length>3?arguments[3]:void 0,r=[];if(i&&i.length>0){var o,a=(0,Tr.Z)(i);try{for(a.s();!(o=a.n()).done;){var s=o.value,u=e.getRegionAtLine(s);if(u&&(u.isCollapsed!==t&&r.push(u),n>1)){var l=e.getRegionsInside(u,(function(e,i){return e.isCollapsed!==t&&i<n}));r.push.apply(r,(0,Lt.Z)(l))}}}catch(d){a.e(d)}finally{a.f()}}else{var c=e.getRegionsInside(null,(function(e,i){return e.isCollapsed!==t&&i<n}));r.push.apply(r,(0,Lt.Z)(c))}e.toggleCollapseState(r)}function tP(e,t,n,i){var r,o=[],a=(0,Tr.Z)(i);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=e.getAllRegionsAtLine(s,(function(e,i){return e.isCollapsed!==t&&i<=n}));o.push.apply(o,(0,Lt.Z)(u))}}catch(l){a.e(l)}finally{a.f()}e.toggleCollapseState(o)}function nP(e,t,n){var i,r=[],o=(0,Tr.Z)(n);try{for(o.s();!(i=o.n()).done;){var a=i.value;r.push(e.getAllRegionsAtLine(a,void 0)[0])}}catch(u){o.e(u)}finally{o.f()}var s=e.getRegionsInside(null,(function(e){return r.every((function(t){return!t.containedBy(e)&&!e.containedBy(t)}))&&e.isCollapsed!==t}));e.toggleCollapseState(s)}function iP(e,t,n){for(var i=e.textModel,r=e.regions,o=[],a=r.length-1;a>=0;a--)if(n!==r.isCollapsed(a)){var s=r.getStartLineNumber(a);t.test(i.getLineContent(s))&&o.push(r.toRegion(a))}e.toggleCollapseState(o)}function rP(e,t,n){for(var i=e.regions,r=[],o=i.length-1;o>=0;o--)n!==i.isCollapsed(o)&&t===i.getType(o)&&r.push(i.toRegion(o));e.toggleCollapseState(r)}var oP=(0,dM.q5)("folding-expanded",pE.lA.chevronDown,(0,hx.N)("foldingExpandedIcon","Icon for expanded ranges in the editor glyph margin.")),aP=(0,dM.q5)("folding-collapsed",pE.lA.chevronRight,(0,hx.N)("foldingCollapsedIcon","Icon for collapsed ranges in the editor glyph margin.")),sP=function(){function e(t){(0,i.Z)(this,e),this.editor=t,this.autoHideFoldingControls=!0,this.showFoldingHighlights=!0}return(0,r.Z)(e,[{key:"getDecorationOption",value:function(t,n){return n?e.HIDDEN_RANGE_DECORATION:t?this.showFoldingHighlights?e.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:e.COLLAPSED_VISUAL_DECORATION:this.autoHideFoldingControls?e.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:e.EXPANDED_VISUAL_DECORATION}},{key:"deltaDecorations",value:function(e,t){return this.editor.deltaDecorations(e,t)}},{key:"changeDecorations",value:function(e){return this.editor.changeDecorations(e)}}]),e}();sP.COLLAPSED_VISUAL_DECORATION=Hx.qx.register({stickiness:1,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:Wx.kS.asClassName(aP)}),sP.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Hx.qx.register({stickiness:1,afterContentClassName:"inline-folded",className:"folded-background",isWholeLine:!0,firstLineDecorationClassName:Wx.kS.asClassName(aP)}),sP.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Hx.qx.register({stickiness:1,isWholeLine:!0,firstLineDecorationClassName:Wx.kS.asClassName(oP)}),sP.EXPANDED_VISUAL_DECORATION=Hx.qx.register({stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+Wx.kS.asClassName(oP)}),sP.HIDDEN_RANGE_DECORATION=Hx.qx.register({stickiness:1});var uP=function(){function e(t){var n=this;(0,i.Z)(this,e),this._updateEventEmitter=new hE.Q5,this._foldingModel=t,this._foldingModelListener=t.onDidChange((function(e){return n.updateHiddenRanges()})),this._hiddenRanges=[],t.regions.length&&this.updateHiddenRanges()}return(0,r.Z)(e,[{key:"onDidChange",get:function(){return this._updateEventEmitter.event}},{key:"hiddenRanges",get:function(){return this._hiddenRanges}},{key:"updateHiddenRanges",value:function(){for(var e=!1,t=[],n=0,i=0,r=Number.MAX_VALUE,o=-1,a=this._foldingModel.regions;n<a.length;n++)if(a.isCollapsed(n)){var s=a.getStartLineNumber(n)+1,u=a.getEndLineNumber(n);r<=s&&u<=o||(!e&&i<this._hiddenRanges.length&&this._hiddenRanges[i].startLineNumber===s&&this._hiddenRanges[i].endLineNumber===u?(t.push(this._hiddenRanges[i]),i++):(e=!0,t.push(new Fx.e(s,1,u,1))),r=s,o=u)}(e||i<this._hiddenRanges.length)&&this.applyHiddenRanges(t)}},{key:"applyMemento",value:function(e){if(!Array.isArray(e)||0===e.length)return!1;var t,n=[],i=(0,Tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;if(!r.startLineNumber||!r.endLineNumber)return!1;n.push(new Fx.e(r.startLineNumber+1,1,r.endLineNumber,1))}}catch(o){i.e(o)}finally{i.f()}return this.applyHiddenRanges(n),!0}},{key:"getMemento",value:function(){return this._hiddenRanges.map((function(e){return{startLineNumber:e.startLineNumber-1,endLineNumber:e.endLineNumber}}))}},{key:"applyHiddenRanges",value:function(e){this._hiddenRanges=e,this._updateEventEmitter.fire(e)}},{key:"hasRanges",value:function(){return this._hiddenRanges.length>0}},{key:"isHidden",value:function(e){return null!==lP(this._hiddenRanges,e)}},{key:"adjustSelections",value:function(e){for(var t=this,n=!1,i=this._foldingModel.textModel,r=null,o=function(e){return r&&function(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}(e,r)||(r=lP(t._hiddenRanges,e)),r?r.startLineNumber-1:null},a=0,s=e.length;a<s;a++){var u=e[a],l=o(u.startLineNumber);l&&(u=u.setStartPosition(l,i.getLineMaxColumn(l)),n=!0);var c=o(u.endLineNumber);c&&(u=u.setEndPosition(c,i.getLineMaxColumn(c)),n=!0),e[a]=u}return n}},{key:"dispose",value:function(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}]),e}();function lP(e,t){var n=(0,mx.lG)(e,(function(e){return t<e.startLineNumber}))-1;return n>=0&&e[n].endLineNumber>=t?e[n]:null}var cP=5e3,dP="indent",hP=function(){function e(t){(0,i.Z)(this,e),this.editorModel=t,this.id=dP}return(0,r.Z)(e,[{key:"dispose",value:function(){}},{key:"compute",value:function(e){var t=HO.zu.getFoldingRules(this.editorModel.getLanguageIdentifier().id),n=t&&!!t.offSide,i=t&&t.markers;return Promise.resolve(function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:cP,r=e.getOptions().tabSize,o=new fP(i),a=void 0;n&&(a=new RegExp("(".concat(n.start.source,")|(?:").concat(n.end.source,")")));var s=[],u=e.getLineCount()+1;s.push({indent:-1,endAbove:u,line:u});for(var l=e.getLineCount();l>0;l--){var c=e.getLineContent(l),d=Hx.yO.computeIndentLevel(c,r),h=s[s.length-1];if(-1!==d){var f=void 0;if(a&&(f=c.match(a))){if(!f[1]){s.push({indent:-2,endAbove:l,line:l});continue}for(var p=s.length-1;p>0&&-2!==s[p].indent;)p--;if(p>0){s.length=p+1,h=s[p],o.insertFirst(l,h.line,d),h.line=l,h.indent=d,h.endAbove=l;continue}}if(h.indent>d){do{s.pop(),h=s[s.length-1]}while(h.indent>d);var v=h.endAbove-1;v-l>=1&&o.insertFirst(l,v,d)}h.indent===d?h.endAbove=l:s.push({indent:d,endAbove:l,line:l})}else t&&(h.endAbove=l)}return o.toIndentRanges(e)}(this.editorModel,n,i))}}]),e}(),fP=function(){function e(t){(0,i.Z)(this,e),this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=t}return(0,r.Z)(e,[{key:"insertFirst",value:function(e,t,n){if(!(e>GA||t>GA)){var i=this._length;this._startIndexes[i]=e,this._endIndexes[i]=t,this._length++,n<1e3&&(this._indentOccurrences[n]=(this._indentOccurrences[n]||0)+1)}}},{key:"toIndentRanges",value:function(e){if(this._length<=this._foldingRangesLimit){for(var t=new Uint32Array(this._length),n=new Uint32Array(this._length),i=this._length-1,r=0;i>=0;i--,r++)t[r]=this._startIndexes[i],n[r]=this._endIndexes[i];return new QA(t,n)}for(var o=0,a=this._indentOccurrences.length,s=0;s<this._indentOccurrences.length;s++){var u=this._indentOccurrences[s];if(u){if(u+o>this._foldingRangesLimit){a=s;break}o+=u}}for(var l=e.getOptions().tabSize,c=new Uint32Array(this._foldingRangesLimit),d=new Uint32Array(this._foldingRangesLimit),h=this._length-1,f=0;h>=0;h--){var p=this._startIndexes[h],v=e.getLineContent(p),g=Hx.yO.computeIndentLevel(v,l);(g<a||g===a&&o++<this._foldingRangesLimit)&&(c[f]=p,d[f]=this._endIndexes[h],f++)}return new QA(c,d)}}]),e}();var pP=5e3,vP={},gP="syntax",mP=function(){function e(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:pP;(0,i.Z)(this,e),this.editorModel=t,this.providers=n,this.limit=o,this.id=gP;var a,s=(0,Tr.Z)(n);try{for(s.s();!(a=s.n()).done;){var u=a.value;"function"===typeof u.onDidChange&&(this.disposables||(this.disposables=new Rx.SL),this.disposables.add(u.onDidChange(r)))}}catch(l){s.e(l)}finally{s.f()}}return(0,r.Z)(e,[{key:"compute",value:function(e){var t=this;return function(e,t,n){var i=null,r=e.map((function(e,r){return Promise.resolve(e.provideFoldingRanges(t,vP,n)).then((function(e){if(!n.isCancellationRequested&&Array.isArray(e)){Array.isArray(i)||(i=[]);var o,a=t.getLineCount(),s=(0,Tr.Z)(e);try{for(s.s();!(o=s.n()).done;){var u=o.value;u.start>0&&u.end>u.start&&u.end<=a&&i.push({start:u.start,end:u.end,rank:r,kind:u.kind})}}catch(l){s.e(l)}finally{s.f()}}}),yx.Cp)}));return Promise.all(r).then((function(e){return i}))}(this.providers,this.editorModel,e).then((function(e){return e?yP(e,t.limit):null}))}},{key:"dispose",value:function(){var e;null===(e=this.disposables)||void 0===e||e.dispose()}}]),e}();var _P=function(){function e(t){(0,i.Z)(this,e),this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=t}return(0,r.Z)(e,[{key:"add",value:function(e,t,n,i){if(!(e>GA||t>GA)){var r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._nestingLevels[r]=i,this._types[r]=n,this._length++,i<30&&(this._nestingLevelCounts[i]=(this._nestingLevelCounts[i]||0)+1)}}},{key:"toIndentRanges",value:function(){if(this._length<=this._foldingRangesLimit){for(var e=new Uint32Array(this._length),t=new Uint32Array(this._length),n=0;n<this._length;n++)e[n]=this._startIndexes[n],t[n]=this._endIndexes[n];return new QA(e,t,this._types)}for(var i=0,r=this._nestingLevelCounts.length,o=0;o<this._nestingLevelCounts.length;o++){var a=this._nestingLevelCounts[o];if(a){if(a+i>this._foldingRangesLimit){r=o;break}i+=a}}for(var s=new Uint32Array(this._foldingRangesLimit),u=new Uint32Array(this._foldingRangesLimit),l=[],c=0,d=0;c<this._length;c++){var h=this._nestingLevels[c];(h<r||h===r&&i++<this._foldingRangesLimit)&&(s[d]=this._startIndexes[c],u[d]=this._endIndexes[c],l[d]=this._types[c],d++)}return new QA(s,u,l)}}]),e}();function yP(e,t){var n,i=e.sort((function(e,t){var n=e.start-t.start;return 0===n&&(n=e.rank-t.rank),n})),r=new _P(t),o=void 0,a=[],s=(0,Tr.Z)(i);try{for(s.s();!(n=s.n()).done;){var u=n.value;if(o){if(u.start>o.start)if(u.end<=o.end)a.push(o),o=u,r.add(u.start,u.end,u.kind&&u.kind.value,a.length);else{if(u.start>o.end){do{o=a.pop()}while(o&&u.start>o.end);o&&a.push(o),o=u}r.add(u.start,u.end,u.kind&&u.kind.value,a.length)}}else o=u,r.add(u.start,u.end,u.kind&&u.kind.value,a.length)}}catch(l){s.e(l)}finally{s.f()}return r.toIndentRanges()}var bP="init",wP=function(){function e(t,n,r,o){if((0,i.Z)(this,e),this.editorModel=t,this.id=bP,n.length){this.decorationIds=t.deltaDecorations([],n.map((function(e){return{range:{startLineNumber:e.startLineNumber,startColumn:0,endLineNumber:e.endLineNumber,endColumn:t.getLineLength(e.endLineNumber)},options:{stickiness:1}}}))),this.timeout=setTimeout(r,o)}}return(0,r.Z)(e,[{key:"dispose",value:function(){this.decorationIds&&(this.editorModel.deltaDecorations(this.decorationIds,[]),this.decorationIds=void 0),"number"===typeof this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)}},{key:"compute",value:function(e){var t=[];if(this.decorationIds){var n,i=(0,Tr.Z)(this.decorationIds);try{for(i.s();!(n=i.n()).done;){var r=n.value,o=this.editorModel.getDecorationRange(r);o&&t.push({start:o.startLineNumber,end:o.endLineNumber,rank:1})}}catch(a){i.e(a)}finally{i.f()}}return Promise.resolve(yP(t,Number.MAX_VALUE))}}]),e}(),CP=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},kP=function(e,t){return function(n,i){t(n,i,e)}},SP=new gx.uy("foldingEnabled",!1),xP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;(0,i.Z)(this,n),(o=t.call(this)).contextKeyService=r,o.localToDispose=o._register(new Rx.SL),o.editor=e;var a=o.editor.getOptions();return o._isEnabled=a.get(35),o._useFoldingProviders="indentation"!==a.get(36),o._unfoldOnClickAfterEndOfLine=a.get(38),o._restoringViewState=!1,o.foldingModel=null,o.hiddenRangeModel=null,o.rangeProvider=null,o.foldingRegionPromise=null,o.foldingStateMemento=null,o.foldingModelPromise=null,o.updateScheduler=null,o.cursorChangedScheduler=null,o.mouseDownInfo=null,o.foldingDecorationProvider=new sP(e),o.foldingDecorationProvider.autoHideFoldingControls="mouseover"===a.get(96),o.foldingDecorationProvider.showFoldingHighlights=a.get(37),o.foldingEnabled=SP.bindTo(o.contextKeyService),o.foldingEnabled.set(o._isEnabled),o._register(o.editor.onDidChangeModel((function(){return o.onModelChanged()}))),o._register(o.editor.onDidChangeConfiguration((function(e){if(e.hasChanged(35)&&(o._isEnabled=o.editor.getOptions().get(35),o.foldingEnabled.set(o._isEnabled),o.onModelChanged()),e.hasChanged(96)||e.hasChanged(37)){var t=o.editor.getOptions();o.foldingDecorationProvider.autoHideFoldingControls="mouseover"===t.get(96),o.foldingDecorationProvider.showFoldingHighlights=t.get(37),o.onModelContentChanged()}e.hasChanged(36)&&(o._useFoldingProviders="indentation"!==o.editor.getOptions().get(36),o.onFoldingStrategyChanged()),e.hasChanged(38)&&(o._unfoldOnClickAfterEndOfLine=o.editor.getOptions().get(38))}))),o.onModelChanged(),o}return(0,r.Z)(n,[{key:"saveViewState",value:function(){var e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){var t=this.foldingModel.isInitialized?this.foldingModel.getMemento():this.hiddenRangeModel.getMemento(),n=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:n}}}},{key:"restoreViewState",value:function(e){var t=this,n=this.editor.getModel();if(n&&this._isEnabled&&!n.isTooLargeForTokenization()&&this.hiddenRangeModel&&e&&e.collapsedRegions&&e.lineCount===n.getLineCount()){e.provider!==gP&&e.provider!==bP||(this.foldingStateMemento=e);var i=e.collapsedRegions;if(this.hiddenRangeModel.applyMemento(i)){var r=this.getFoldingModel();r&&r.then((function(e){if(e){t._restoringViewState=!0;try{e.applyMemento(i)}finally{t._restoringViewState=!1}}})).then(void 0,yx.dL)}}}},{key:"onModelChanged",value:function(){var e=this;this.localToDispose.clear();var t=this.editor.getModel();this._isEnabled&&t&&!t.isTooLargeForTokenization()&&(this.foldingModel=new JA(t,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new uP(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((function(t){return e.onHiddenRangesChanges(t)}))),this.updateScheduler=new Px.vp(200),this.cursorChangedScheduler=new Px.pY((function(){return e.revealCursor()}),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(LL.aC.onDidChange((function(){return e.onFoldingStrategyChanged()}))),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((function(){return e.onFoldingStrategyChanged()}))),this.localToDispose.add(this.editor.onDidChangeModelContent((function(){return e.onModelContentChanged()}))),this.localToDispose.add(this.editor.onDidChangeCursorPosition((function(){return e.onCursorPositionChanged()}))),this.localToDispose.add(this.editor.onMouseDown((function(t){return e.onEditorMouseDown(t)}))),this.localToDispose.add(this.editor.onMouseUp((function(t){return e.onEditorMouseUp(t)}))),this.localToDispose.add({dispose:function(){e.foldingRegionPromise&&(e.foldingRegionPromise.cancel(),e.foldingRegionPromise=null),e.updateScheduler&&e.updateScheduler.cancel(),e.updateScheduler=null,e.foldingModel=null,e.foldingModelPromise=null,e.hiddenRangeModel=null,e.cursorChangedScheduler=null,e.foldingStateMemento=null,e.rangeProvider&&e.rangeProvider.dispose(),e.rangeProvider=null}}),this.onModelContentChanged())}},{key:"onFoldingStrategyChanged",value:function(){this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null,this.onModelContentChanged()}},{key:"getRangeProvider",value:function(e){var t=this;if(this.rangeProvider)return this.rangeProvider;if(this.rangeProvider=new hP(e),this._useFoldingProviders&&this.foldingModel){var n=LL.aC.ordered(this.foldingModel.textModel);if(0===n.length&&this.foldingStateMemento&&this.foldingStateMemento.collapsedRegions)return this.rangeProvider=new wP(e,this.foldingStateMemento.collapsedRegions,(function(){t.foldingStateMemento=null,t.onFoldingStrategyChanged()}),3e4);n.length>0&&(this.rangeProvider=new mP(e,n,(function(){return t.onModelContentChanged()})))}return this.foldingStateMemento=null,this.rangeProvider}},{key:"getFoldingModel",value:function(){return this.foldingModelPromise}},{key:"onModelContentChanged",value:function(){var e=this;this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger((function(){var t=e.foldingModel;if(!t)return null;var n=e.foldingRegionPromise=(0,Px.PG)((function(n){return e.getRangeProvider(t.textModel).compute(n)}));return n.then((function(i){if(i&&n===e.foldingRegionPromise){var r=e.editor.getSelections(),o=r?r.map((function(e){return e.startLineNumber})):[];t.update(i,o)}return t}))})).then(void 0,(function(e){return(0,yx.dL)(e),null})))}},{key:"onHiddenRangesChanges",value:function(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){var t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e)}},{key:"onCursorPositionChanged",value:function(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}},{key:"revealCursor",value:function(){var e=this,t=this.getFoldingModel();t&&t.then((function(t){if(t){var n=e.editor.getSelections();if(n&&n.length>0){var i,r=[],o=(0,Tr.Z)(n);try{var a=function(){var n=i.value.selectionStartLineNumber;e.hiddenRangeModel&&e.hiddenRangeModel.isHidden(n)&&r.push.apply(r,(0,Lt.Z)(t.getAllRegionsAtLine(n,(function(e){return e.isCollapsed&&n>e.startLineNumber}))))};for(o.s();!(i=o.n()).done;)a()}catch(s){o.e(s)}finally{o.f()}r.length&&(t.toggleCollapseState(r),e.reveal(n[0].getPosition()))}}})).then(void 0,yx.dL)}},{key:"onEditorMouseDown",value:function(e){if(this.mouseDownInfo=null,this.hiddenRangeModel&&e.target&&e.target.range&&(e.event.leftButton||e.event.middleButton)){var t=e.target.range,n=!1;switch(e.target.type){case 4:var i=e.target.detail,r=e.target.element.offsetLeft;if(i.offsetX-r<5)return;n=!0;break;case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges())if(!e.target.detail.isAfterLines)break;return;case 6:if(this.hiddenRangeModel.hasRanges()){var o=this.editor.getModel();if(o&&t.startColumn===o.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:n}}}},{key:"onEditorMouseUp",value:function(e){var t=this,n=this.getFoldingModel();if(n&&this.mouseDownInfo&&e.target){var i=this.mouseDownInfo.lineNumber,r=this.mouseDownInfo.iconClicked,o=e.target.range;if(o&&o.startLineNumber===i){if(r){if(4!==e.target.type)return}else{var a=this.editor.getModel();if(!a||o.startColumn!==a.getLineMaxColumn(i))return}n.then((function(n){if(n){var o=n.getRegionAtLine(i);if(o&&o.startLineNumber===i){var a=o.isCollapsed;if(r||a){var s=[];if(e.event.altKey){var u,l=n.getRegionsInside(null,(function(e){return!e.containedBy(o)&&!o.containedBy(e)})),c=(0,Tr.Z)(l);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.isCollapsed&&s.push(d)}}catch(g){c.e(g)}finally{c.f()}0===s.length&&(s=l)}else{var h=e.event.middleButton||e.event.shiftKey;if(h){var f,p=(0,Tr.Z)(n.getRegionsInside(o));try{for(p.s();!(f=p.n()).done;){var v=f.value;v.isCollapsed===a&&s.push(v)}}catch(g){p.e(g)}finally{p.f()}}!a&&h&&0!==s.length||s.push(o)}n.toggleCollapseState(s),t.reveal({lineNumber:i,column:1})}}}})).then(void 0,yx.dL)}}}},{key:"reveal",value:function(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);xP.ID="editor.contrib.folding",xP=CP([kP(1,gx.i6)],xP);var LP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=this,r=xP.get(t);if(r){var o=r.getFoldingModel();return o?(this.reportTelemetry(e,t),o.then((function(e){if(e){i.invoke(r,e,t,n);var o=t.getSelection();o&&r.reveal(o.getStartPosition())}}))):void 0}}},{key:"getSelectedLines",value:function(e){var t=e.getSelections();return t?t.map((function(e){return e.startLineNumber})):[]}},{key:"getLineNumbers",value:function(e,t){return e&&e.selectionLines?e.selectionLines.map((function(e){return e+1})):this.getSelectedLines(t)}},{key:"run",value:function(e,t){}}]),n}(dx.R6);function EP(e){if(!JE.o8(e)){if(!JE.Kn(e))return!1;var t=e;if(!JE.o8(t.levels)&&!JE.hj(t.levels))return!1;if(!JE.o8(t.direction)&&!JE.HD(t.direction))return!1;if(!JE.o8(t.selectionLines)&&(!JE.kJ(t.selectionLines)||!t.selectionLines.every(JE.hj)))return!1}return!0}var NP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfold",label:hx.N("unfoldAction.label","Unfold"),alias:"Unfold",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3161,mac:{primary:2649},weight:100},description:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t",constraint:EP,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n,i){var r=i&&i.levels||1,o=this.getLineNumbers(i,n);i&&"up"===i.direction?tP(t,!1,r,o):eP(t,!1,r,o)}}]),n}(LP),DP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfoldRecursively",label:hx.N("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2137),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n,i){eP(t,!1,Number.MAX_VALUE,this.getSelectedLines(n))}}]),n}(LP),MP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.fold",label:hx.N("foldAction.label","Fold"),alias:"Fold",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3159,mac:{primary:2647},weight:100},description:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t",constraint:EP,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n,i){var r=this.getLineNumbers(i,n),o=i&&i.levels,a=i&&i.direction;"number"!==typeof o&&"string"!==typeof a?function(e,t,n){var i,r=[],o=(0,Tr.Z)(n);try{for(o.s();!(i=o.n()).done;){var a=i.value,s=e.getAllRegionsAtLine(a,(function(e){return e.isCollapsed!==t}));s.length>0&&r.push(s[0])}}catch(u){o.e(u)}finally{o.f()}e.toggleCollapseState(r)}(t,!0,r):"up"===a?tP(t,!0,o||1,r):eP(t,!0,o||1,r)}}]),n}(LP),TP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.toggleFold",label:hx.N("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2090),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){!function(e,t,n){var i,r=[],o=(0,Tr.Z)(n);try{var a=function(){var n=i.value,o=e.getRegionAtLine(n);if(o){var a=!o.isCollapsed;if(r.push(o),t>1){var s=e.getRegionsInside(o,(function(e,n){return e.isCollapsed!==a&&n<t}));r.push.apply(r,(0,Lt.Z)(s))}}};for(o.s();!(i=o.n()).done;)a()}catch(s){o.e(s)}finally{o.f()}e.toggleCollapseState(r)}(t,1,this.getSelectedLines(n))}}]),n}(LP),OP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldRecursively",label:hx.N("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2135),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){var i=this.getSelectedLines(n);eP(t,!0,Number.MAX_VALUE,i)}}]),n}(LP),IP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldAllBlockComments",label:hx.N("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2133),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){if(t.regions.hasTypes())rP(t,LL.AD.Comment.value,!0);else{var i=n.getModel();if(!i)return;var r=HO.zu.getComments(i.getLanguageIdentifier().id);if(r&&r.blockCommentStartToken)iP(t,new RegExp("^\\s*"+(0,CL.ec)(r.blockCommentStartToken)),!0)}}}]),n}(LP),AP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldAllMarkerRegions",label:hx.N("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2077),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){if(t.regions.hasTypes())rP(t,LL.AD.Region.value,!0);else{var i=n.getModel();if(!i)return;var r=HO.zu.getFoldingRules(i.getLanguageIdentifier().id);if(r&&r.markers&&r.markers.start)iP(t,new RegExp(r.markers.start),!0)}}}]),n}(LP),PP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfoldAllMarkerRegions",label:hx.N("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2078),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){if(t.regions.hasTypes())rP(t,LL.AD.Region.value,!1);else{var i=n.getModel();if(!i)return;var r=HO.zu.getFoldingRules(i.getLanguageIdentifier().id);if(r&&r.markers&&r.markers.start)iP(t,new RegExp(r.markers.start),!1)}}}]),n}(LP),RP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldAllExcept",label:hx.N("foldAllExcept.label","Fold All Regions Except Selected"),alias:"Fold All Regions Except Selected",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2131),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){nP(t,!0,this.getSelectedLines(n))}}]),n}(LP),ZP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfoldAllExcept",label:hx.N("unfoldAllExcept.label","Unfold All Regions Except Selected"),alias:"Unfold All Regions Except Selected",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2129),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){nP(t,!1,this.getSelectedLines(n))}}]),n}(LP),FP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.foldAll",label:hx.N("foldAllAction.label","Fold All"),alias:"Fold All",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2069),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){eP(t,!0)}}]),n}(LP),jP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.unfoldAll",label:hx.N("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2088),weight:100}})}return(0,r.Z)(n,[{key:"invoke",value:function(e,t,n){eP(t,!1)}}]),n}(LP),HP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"getFoldingLevel",value:function(){return parseInt(this.id.substr(n.ID_PREFIX.length))}},{key:"invoke",value:function(e,t,n){!function(e,t,n,i){var r=e.getRegionsInside(null,(function(e,r){return r===t&&e.isCollapsed!==n&&!i.some((function(t){return e.containsLine(t)}))}));e.toggleCollapseState(r)}(t,this.getFoldingLevel(),!0,this.getSelectedLines(n))}}]),n}(LP);HP.ID_PREFIX="editor.foldLevel",HP.ID=function(e){return HP.ID_PREFIX+e},(0,dx._K)(xP.ID,xP),(0,dx.Qr)(NP),(0,dx.Qr)(DP),(0,dx.Qr)(MP),(0,dx.Qr)(OP),(0,dx.Qr)(FP),(0,dx.Qr)(jP),(0,dx.Qr)(IP),(0,dx.Qr)(AP),(0,dx.Qr)(PP),(0,dx.Qr)(RP),(0,dx.Qr)(ZP),(0,dx.Qr)(TP);for(var BP=1;BP<=7;BP++)(0,dx.QG)(new HP({id:HP.ID(BP),label:hx.N("foldLevelAction.label","Fold Level {0}",BP),alias:"Fold Level ".concat(BP),precondition:SP,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2048|21+BP),weight:100}}));var zP=(0,zx.P6)("editor.foldBackground",{light:(0,zx.Zn)(zx.hE,.3),dark:(0,zx.Zn)(zx.hE,.3),hc:null},hx.N("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0),WP=(0,zx.P6)("editorGutter.foldingControlForeground",{dark:zx.XZ,light:zx.XZ,hc:zx.XZ},hx.N("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));(0,Wx.Ic)((function(e,t){var n=e.getColor(zP);n&&t.addRule(".monaco-editor .folded-background { background-color: ".concat(n,"; }"));var i=e.getColor(WP);i&&t.addRule("\n\t\t.monaco-editor .cldr".concat(Wx.kS.asCSSSelector(oP),",\n\t\t.monaco-editor .cldr").concat(Wx.kS.asCSSSelector(aP)," {\n\t\t\tcolor: ").concat(i," !important;\n\t\t}\n\t\t"))}));var VP=n(51164),YP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.fontZoomIn",label:hx.N("EditorFontZoomIn.label","Editor Font Zoom In"),alias:"Editor Font Zoom In",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){VP.C.setZoomLevel(VP.C.getZoomLevel()+1)}}]),n}(dx.R6),UP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.fontZoomOut",label:hx.N("EditorFontZoomOut.label","Editor Font Zoom Out"),alias:"Editor Font Zoom Out",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){VP.C.setZoomLevel(VP.C.getZoomLevel()-1)}}]),n}(dx.R6),KP=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.fontZoomReset",label:hx.N("EditorFontZoomReset.label","Editor Font Zoom Reset"),alias:"Editor Font Zoom Reset",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){VP.C.setZoomLevel(0)}}]),n}(dx.R6);(0,dx.Qr)(YP),(0,dx.Qr)(UP),(0,dx.Qr)(KP);var qP=n(84516),GP=n(333),$P=n(61335),QP=n(71481),XP=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},JP=function(e,t){return function(n,i){t(n,i,e)}},eR=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},tR=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._workerService=n,this._callOnDispose=new Rx.SL,this._callOnModel=new Rx.SL,this._editor=t,this._callOnDispose.add(t.onDidChangeConfiguration((function(){return r._update()}))),this._callOnDispose.add(t.onDidChangeModel((function(){return r._update()}))),this._callOnDispose.add(t.onDidChangeModelLanguage((function(){return r._update()}))),this._callOnDispose.add(LL.ln.onDidChange(this._update,this))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._callOnDispose.dispose(),this._callOnModel.dispose()}},{key:"_update",value:function(){var e=this;if(this._callOnModel.clear(),this._editor.getOption(45)&&this._editor.hasModel()){var t=this._editor.getModel(),n=LL.ln.ordered(t),i=(0,dt.Z)(n,1)[0];if(i&&i.autoFormatTriggerCharacters){var r,o=new qP.q,a=(0,Tr.Z)(i.autoFormatTriggerCharacters);try{for(a.s();!(r=a.n()).done;){var s=r.value;o.add(s.charCodeAt(0))}}catch(u){a.e(u)}finally{a.f()}this._callOnModel.add(this._editor.onDidType((function(t){var n=t.charCodeAt(t.length-1);o.has(n)&&e._trigger(String.fromCharCode(n))})))}}}},{key:"_trigger",value:function(e){var t=this;if(this._editor.hasModel()&&!(this._editor.getSelections().length>1)){var n=this._editor.getModel(),i=this._editor.getPosition(),r=!1,o=this._editor.onDidChangeModelContent((function(e){if(e.isFlush)return r=!0,void o.dispose();for(var t=0,n=e.changes.length;t<n;t++){if(e.changes[t].range.endLineNumber<=i.lineNumber)return r=!0,void o.dispose()}}));(0,$P.Qs)(this._workerService,n,i,e,n.getFormattingOptions()).then((function(e){o.dispose(),r||(0,mx.Of)(e)&&(QP.V.execute(t._editor,e,!0),(0,$P.Zg)(e))}),(function(e){throw o.dispose(),e}))}}}]),e}();tR.ID="editor.contrib.autoFormat",tR=XP([JP(1,GP.p)],tR);var nR=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this.editor=t,this._instantiationService=n,this._callOnDispose=new Rx.SL,this._callOnModel=new Rx.SL,this._callOnDispose.add(t.onDidChangeConfiguration((function(){return r._update()}))),this._callOnDispose.add(t.onDidChangeModel((function(){return r._update()}))),this._callOnDispose.add(t.onDidChangeModelLanguage((function(){return r._update()}))),this._callOnDispose.add(LL.vN.onDidChange(this._update,this))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._callOnDispose.dispose(),this._callOnModel.dispose()}},{key:"_update",value:function(){var e=this;this._callOnModel.clear(),this.editor.getOption(44)&&this.editor.hasModel()&&LL.vN.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste((function(t){var n=t.range;return e._trigger(n)})))}},{key:"_trigger",value:function(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction($P.x$,this.editor,e,2,OL.E.None,bL.T.None).catch(yx.dL))}}]),e}();nR.ID="editor.contrib.formatOnPaste",nR=XP([JP(1,JL.TG)],nR);var iR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.formatDocument",label:hx.N("formatDocument.label","Format Document"),alias:"Format Document",precondition:gx.Ao.and(fx.u.notInCompositeEditor,fx.u.writable,fx.u.hasDocumentFormattingProvider),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return eR(this,void 0,void 0,ki().mark((function n(){var i,r;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!t.hasModel()){n.next=5;break}return i=e.get(JL.TG),r=e.get(OL.e),n.next=5,r.showWhile(i.invokeFunction($P.Qq,t,1,OL.E.None,bL.T.None),250);case 5:case"end":return n.stop()}}),n)})))}}]),n}(dx.R6),rR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.formatSelection",label:hx.N("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:gx.Ao.and(fx.u.writable,fx.u.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2084),weight:100},contextMenuOpts:{when:fx.u.hasNonEmptySelection,group:"1_modification",order:1.31}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){return eR(this,void 0,void 0,ki().mark((function n(){var i,r,o,a;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t.hasModel()){n.next=2;break}return n.abrupt("return");case 2:return i=e.get(JL.TG),r=t.getModel(),o=t.getSelections().map((function(e){return e.isEmpty()?new Fx.e(e.startLineNumber,1,e.startLineNumber,r.getLineMaxColumn(e.startLineNumber)):e})),a=e.get(OL.e),n.next=8,a.showWhile(i.invokeFunction($P.x$,t,o,1,OL.E.None,bL.T.None),250);case 8:case"end":return n.stop()}}),n)})))}}]),n}(dx.R6);(0,dx._K)(tR.ID,tR),(0,dx._K)(nR.ID,nR),(0,dx.Qr)(iR),(0,dx.Qr)(rR),IL.P.registerCommand("editor.action.format",(function(e){return eR(void 0,void 0,void 0,ki().mark((function t(){var n,i;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((n=e.get(aL.$).getFocusedCodeEditor())&&n.hasModel()){t.next=3;break}return t.abrupt("return");case 3:if(i=e.get(IL.H),!n.getSelection().isEmpty()){t.next=9;break}return t.next=7,i.executeCommand("editor.action.formatDocument");case 7:t.next=11;break;case 9:return t.next=11,i.executeCommand("editor.action.formatSelection");case 11:case"end":return t.stop()}}),t)})))}));var oR=n(98900),aR=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"remove",value:function(){this.parent&&this.parent.children.delete(this.id)}}],[{key:"findId",value:function(e,t){var n;"string"===typeof e?n="".concat(t.id,"/").concat(e):(n="".concat(t.id,"/").concat(e.name),void 0!==t.children.get(n)&&(n="".concat(t.id,"/").concat(e.name,"_").concat(e.range.startLineNumber,"_").concat(e.range.startColumn)));for(var i=n,r=0;void 0!==t.children.get(i);r++)i="".concat(n,"_").concat(r);return i}},{key:"empty",value:function(e){return 0===e.children.size}}]),e}(),sR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this)).id=e,a.parent=r,a.symbol=o,a.children=new Map,a}return(0,r.Z)(n)}(aR),uR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this)).id=e,s.parent=r,s.label=o,s.order=a,s.children=new Map,s}return(0,r.Z)(n)}(aR),lR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).uri=e,r.id="root",r.parent=void 0,r._groups=new Map,r.children=new Map,r.id="root",r.parent=void 0,r}return(0,r.Z)(n,[{key:"_compact",value:function(){var e,t=0,n=(0,Tr.Z)(this._groups);try{for(n.s();!(e=n.n()).done;){var i=(0,dt.Z)(e.value,2),r=i[0];0===i[1].children.size?this._groups.delete(r):t+=1}}catch(l){n.e(l)}finally{n.f()}if(1!==t)this.children=this._groups;else{var o,a=oR.$.first(this._groups.values()),s=(0,Tr.Z)(a.children);try{for(s.s();!(o=s.n()).done;){var u=(0,dt.Z)(o.value,2)[1];u.parent=this,this.children.set(u.id,u)}}catch(l){s.e(l)}finally{s.f()}}return this}},{key:"getTopLevelSymbols",value:function(){var e,t=[],n=(0,Tr.Z)(this.children.values());try{for(n.s();!(e=n.n()).done;){var i=e.value;i instanceof sR?t.push(i.symbol):t.push.apply(t,(0,Lt.Z)(oR.$.map(i.children.values(),(function(e){return e.symbol}))))}}catch(r){n.e(r)}finally{n.f()}return t.sort((function(e,t){return Fx.e.compareRangesUsingStarts(e.range,t.range)}))}},{key:"asListOfDocumentSymbols",value:function(){var e=this.getTopLevelSymbols(),t=[];return n._flattenDocumentSymbols(t,e,""),t.sort((function(e,t){return Fx.e.compareRangesUsingStarts(e.range,t.range)}))}}],[{key:"create",value:function(e,t){var i=this,r=this._keys.for(e,!0),o=n._requests.get(r);if(!o){var a=new bL.A;o={promiseCnt:0,source:a,promise:n._create(e,a.token),model:void 0},n._requests.set(r,o);var s=Date.now();o.promise.then((function(){i._requestDurations.update(e,Date.now()-s)}))}return o.model?Promise.resolve(o.model):(o.promiseCnt+=1,t.onCancellationRequested((function(){0===--o.promiseCnt&&(o.source.cancel(),n._requests.delete(r))})),new Promise((function(e,t){o.promise.then((function(t){o.model=t,e(t)}),(function(e){n._requests.delete(r),t(e)}))})))}},{key:"_create",value:function(e,t){var i=new bL.A(t),r=new n(e.uri),o=LL.vJ.ordered(e),a=o.map((function(t,o){var a,s=aR.findId("provider_".concat(o),r),u=new uR(s,r,null!==(a=t.displayName)&&void 0!==a?a:"Unknown Outline Provider",o);return Promise.resolve(t.provideDocumentSymbols(e,i.token)).then((function(e){var t,i=(0,Tr.Z)(e||[]);try{for(i.s();!(t=i.n()).done;){var r=t.value;n._makeOutlineElement(r,u)}}catch(o){i.e(o)}finally{i.f()}return u}),(function(e){return(0,yx.Cp)(e),u})).then((function(e){aR.empty(e)?e.remove():r._groups.set(s,e)}))})),s=LL.vJ.onDidChange((function(){var t=LL.vJ.ordered(e);(0,mx.fS)(t,o)||i.cancel()}));return Promise.all(a).then((function(){return i.token.isCancellationRequested&&!t.isCancellationRequested?n._create(e,t):r._compact()})).finally((function(){s.dispose()}))}},{key:"_makeOutlineElement",value:function(e,t){var i=aR.findId(e,t),r=new sR(i,t,e);if(e.children){var o,a=(0,Tr.Z)(e.children);try{for(a.s();!(o=a.n()).done;){var s=o.value;n._makeOutlineElement(s,r)}}catch(u){a.e(u)}finally{a.f()}}t.children.set(r.id,r)}},{key:"_flattenDocumentSymbols",value:function(e,t,i){var r,o=(0,Tr.Z)(t);try{for(o.s();!(r=o.n()).done;){var a=r.value;e.push({kind:a.kind,tags:a.tags,name:a.name,detail:a.detail,containerName:a.containerName||i,range:a.range,selectionRange:a.selectionRange,children:void 0}),a.children&&n._flattenDocumentSymbols(e,a.children,a.name)}}catch(s){o.e(s)}finally{o.f()}}}]),n}(aR);lR._requestDurations=new yN.Y(LL.vJ,350),lR._requests=new lN.z6(9,.75),lR._keys=new(function(){function e(){(0,i.Z)(this,e),this._counter=1,this._data=new WeakMap}return(0,r.Z)(e,[{key:"for",value:function(e,t){return"".concat(e.id,"/").concat(t?e.getVersionId():"","/").concat(this._hash(LL.vJ.all(e)))}},{key:"_hash",value:function(e){var t,n="",i=(0,Tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this._data.get(r);"undefined"===typeof o&&(o=this._counter++,this._data.set(r,o)),n+=o}}catch(a){i.e(a)}finally{i.f()}return n}}]),e}());var cR=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function dR(e,t,n){return cR(this,void 0,void 0,ki().mark((function i(){var r;return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,lR.create(e,n);case 2:return r=i.sent,i.abrupt("return",t?r.asListOfDocumentSymbols():r.getTopLevelSymbols());case 4:case"end":return i.stop()}}),i)})))}IL.P.registerCommand("_executeDocumentSymbolProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return cR(this,void 0,void 0,ki().mark((function t(){var i,r,o;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],(0,JE.p_)(SL.o.isUri(i)),!(r=e.get(EL.q).getModel(i))){t.next=5;break}return t.abrupt("return",dR(r,!1,bL.T.None));case 5:return t.next=7,e.get(_T.S).createModelReference(i);case 7:return o=t.sent,t.prev=8,t.next=11,dR(o.object.textEditorModel,!1,bL.T.None);case 11:return t.abrupt("return",t.sent);case 12:return t.prev=12,o.dispose(),t.finish(12);case 15:case"end":return t.stop()}}),t,null,[[8,,12,15]])})))}));var hR=n(83);function fR(e,t){for(var n=0,i=0;i<e.length;i++)"\t"===e.charAt(i)?n+=t:n++;return n}function pR(e,t,n){e=e<0?0:e;var i="";if(!n){var r=Math.floor(e/t);e%=t;for(var o=0;o<r;o++)i+="\t"}for(var a=0;a<e;a++)i+=" ";return i}function vR(e,t,n,i){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return[];var r=HO.zu.getIndentationRules(e.getLanguageIdentifier().id);if(!r)return[];for(n=Math.min(n,e.getLineCount());t<=n&&r.unIndentedLinePattern;){var o=e.getLineContent(t);if(!r.unIndentedLinePattern.test(o))break;t++}if(t>n-1)return[];var a,s=e.getOptions(),u=s.tabSize,l=s.indentSize,c=s.insertSpaces,d=function(e,t){return t=t||1,hR.U.shiftIndent(e,e.length+t,u,l,c)},h=function(e,t){return t=t||1,hR.U.unshiftIndent(e,e.length+t,u,l,c)},f=[],p=e.getLineContent(t),v=p;if(void 0!==i&&null!==i){a=i;var g=CL.V8(p);v=a+p.substring(g.length),r.decreaseIndentPattern&&r.decreaseIndentPattern.test(v)&&(v=(a=h(a))+p.substring(g.length)),p!==v&&f.push(jO.h.replaceMove(new px.Y(t,1,t,g.length+1),Hx.yO.normalizeIndentation(a,l,c)))}else a=CL.V8(p);var m=a;r.increaseIndentPattern&&r.increaseIndentPattern.test(v)?(m=d(m),a=d(a)):r.indentNextLinePattern&&r.indentNextLinePattern.test(v)&&(m=d(m));for(var _=++t;_<=n;_++){var y=e.getLineContent(_),b=CL.V8(y),w=m+y.substring(b.length);r.decreaseIndentPattern&&r.decreaseIndentPattern.test(w)&&(m=h(m),a=h(a)),b!==m&&f.push(jO.h.replaceMove(new px.Y(_,1,_,b.length+1),Hx.yO.normalizeIndentation(m,l,c))),r.unIndentedLinePattern&&r.unIndentedLinePattern.test(y)||(m=r.increaseIndentPattern&&r.increaseIndentPattern.test(w)?a=d(a):r.indentNextLinePattern&&r.indentNextLinePattern.test(w)?d(m):a)}return f}var gR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:hx.N("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:fx.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getModel();if(n){var i=n.getOptions(),r=t.getSelection();if(r){var o=new ER(r,i.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop(),n.updateOptions({insertSpaces:!0})}}}}]),n}(dx.R6);gR.ID="editor.action.indentationToSpaces";var mR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:hx.N("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:fx.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getModel();if(n){var i=n.getOptions(),r=t.getSelection();if(r){var o=new NR(r,i.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop(),n.updateOptions({insertSpaces:!1})}}}}]),n}(dx.R6);mR.ID="editor.action.indentationToTabs";var _R=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).insertSpaces=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=this,i=e.get(_N.eJ),r=e.get(EL.q),o=t.getModel();if(o){var a=r.getCreationOptions(o.getLanguageIdentifier().language,o.uri,o.isForSimpleWidget),s=[1,2,3,4,5,6,7,8].map((function(e){return{id:e.toString(),label:e.toString(),description:e===a.tabSize?hx.N("configuredTabSize","Configured Tab Size"):void 0}})),u=Math.min(o.getOptions().tabSize-1,7);setTimeout((function(){i.pick(s,{placeHolder:hx.N({key:"selectTabWidth",comment:["Tab corresponds to the tab key"]},"Select Tab Size for Current File"),activeItem:s[u]}).then((function(e){e&&o&&!o.isDisposed()&&o.updateOptions({tabSize:parseInt(e.label,10),insertSpaces:n.insertSpaces})}))}),50)}}}]),n}(dx.R6),yR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:n.ID,label:hx.N("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}return(0,r.Z)(n)}(_R);yR.ID="editor.action.indentUsingTabs";var bR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:n.ID,label:hx.N("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}return(0,r.Z)(n)}(_R);bR.ID="editor.action.indentUsingSpaces";var wR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:hx.N("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=e.get(EL.q),i=t.getModel();if(i){var r=n.getCreationOptions(i.getLanguageIdentifier().language,i.uri,i.isForSimpleWidget);i.detectIndentation(r.insertSpaces,r.tabSize)}}}]),n}(dx.R6);wR.ID="editor.action.detectIndentation";var CR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.reindentlines",label:hx.N("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:fx.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getModel();if(n){var i=vR(n,1,n.getLineCount());i.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,i),t.pushUndoStop())}}}]),n}(dx.R6),kR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.reindentselectedlines",label:hx.N("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:fx.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getModel();if(n){var i=t.getSelections();if(null!==i){var r,o=[],a=(0,Tr.Z)(i);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=s.startLineNumber,l=s.endLineNumber;if(u!==l&&1===s.endColumn&&l--,1===u){if(u===l)continue}else u--;var c=vR(n,u,l);o.push.apply(o,(0,Lt.Z)(c))}}catch(d){a.e(d)}finally{a.f()}o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}}}]),n}(dx.R6),SR=function(){function e(t,n){(0,i.Z)(this,e),this._initialSelection=n,this._edits=[],this._selectionId=null;var r,o=(0,Tr.Z)(t);try{for(o.s();!(r=o.n()).done;){var a=r.value;a.range&&"string"===typeof a.text&&this._edits.push(a)}}catch(s){o.e(s)}finally{o.f()}}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n,i=(0,Tr.Z)(this._edits);try{for(i.s();!(n=i.n()).done;){var r=n.value;t.addEditOperation(Fx.e.lift(r.range),r.text)}}catch(a){i.e(a)}finally{i.f()}var o=!1;Array.isArray(this._edits)&&1===this._edits.length&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(o=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(o=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),o||(this._selectionId=t.trackSelection(this._initialSelection))}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this._selectionId)}}]),e}(),xR=function(){function e(t){var n=this;(0,i.Z)(this,e),this.callOnDispose=new Rx.SL,this.callOnModel=new Rx.SL,this.editor=t,this.callOnDispose.add(t.onDidChangeConfiguration((function(){return n.update()}))),this.callOnDispose.add(t.onDidChangeModel((function(){return n.update()}))),this.callOnDispose.add(t.onDidChangeModelLanguage((function(){return n.update()})))}return(0,r.Z)(e,[{key:"update",value:function(){var e=this;this.callOnModel.clear(),this.editor.getOption(9)<4||this.editor.getOption(44)||this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste((function(t){var n=t.range;e.trigger(n)})))}},{key:"trigger",value:function(e){var t=this.editor.getSelections();if(!(null===t||t.length>1)){var n=this.editor.getModel();if(n&&n.isCheapToTokenize(e.getStartPosition().lineNumber)){for(var i=this.editor.getOption(9),r=n.getOptions(),o=r.tabSize,a=r.indentSize,s=r.insertSpaces,u=[],l={shiftIndent:function(e){return hR.U.shiftIndent(e,e.length+1,o,a,s)},unshiftIndent:function(e){return hR.U.unshiftIndent(e,e.length+1,o,a,s)}},c=e.startLineNumber;c<=e.endLineNumber&&this.shouldIgnoreLine(n,c);)c++;if(!(c>e.endLineNumber)){var d=n.getLineContent(c);if(!/\S/.test(d.substring(0,e.startColumn-1))){var h=HO.zu.getGoodIndentForLine(i,n,n.getLanguageIdentifier().id,c,l);if(null!==h){var f=CL.V8(d),p=fR(h,o);if(p!==fR(f,o)){var v=pR(p,o,s);u.push({range:new Fx.e(c,1,c,f.length+1),text:v}),d=v+d.substr(f.length)}else{var g=HO.zu.getIndentMetadata(n,c);if(0===g||8===g)return}}}for(var m=c;c<e.endLineNumber&&!/\S/.test(n.getLineContent(c+1));)c++;if(c!==e.endLineNumber){var _={getLineTokens:function(e){return n.getLineTokens(e)},getLanguageIdentifier:function(){return n.getLanguageIdentifier()},getLanguageIdAtPosition:function(e,t){return n.getLanguageIdAtPosition(e,t)},getLineContent:function(e){return e===m?d:n.getLineContent(e)}},y=HO.zu.getGoodIndentForLine(i,_,n.getLanguageIdentifier().id,c+1,l);if(null!==y){var b=fR(y,o),w=fR(CL.V8(n.getLineContent(c+1)),o);if(b!==w)for(var C=b-w,k=c+1;k<=e.endLineNumber;k++){var S=n.getLineContent(k),x=CL.V8(S),L=pR(fR(x,o)+C,o,s);L!==x&&u.push({range:new Fx.e(k,1,k,x.length+1),text:L})}}}if(u.length>0){this.editor.pushUndoStop();var E=new SR(u,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",E),this.editor.pushUndoStop()}}}}}},{key:"shouldIgnoreLine",value:function(e,t){e.forceTokenization(t);var n=e.getLineFirstNonWhitespaceColumn(t);if(0===n)return!0;var i=e.getLineTokens(t);if(i.getCount()>0){var r=i.findTokenIndexAtOffset(n);if(r>=0&&1===i.getStandardTokenType(r))return!0}return!1}},{key:"dispose",value:function(){this.callOnDispose.dispose(),this.callOnModel.dispose()}}]),e}();function LR(e,t,n,i){if(1!==e.getLineCount()||1!==e.getLineMaxColumn(1)){for(var r="",o=0;o<n;o++)r+=" ";for(var a=new RegExp(r,"gi"),s=1,u=e.getLineCount();s<=u;s++){var l=e.getLineFirstNonWhitespaceColumn(s);if(0===l&&(l=e.getLineMaxColumn(s)),1!==l){var c=new Fx.e(s,1,s,l),d=e.getValueInRange(c),h=i?d.replace(/\t/gi,r):d.replace(a,"\t");t.addEditOperation(c,h)}}}}xR.ID="editor.contrib.autoIndentOnPaste";var ER=function(){function e(t,n){(0,i.Z)(this,e),this.selection=t,this.tabSize=n,this.selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){this.selectionId=t.trackSelection(this.selection),LR(e,t,this.tabSize,!0)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this.selectionId)}}]),e}(),NR=function(){function e(t,n){(0,i.Z)(this,e),this.selection=t,this.tabSize=n,this.selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){this.selectionId=t.trackSelection(this.selection),LR(e,t,this.tabSize,!1)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this.selectionId)}}]),e}();(0,dx._K)(xR.ID,xR),(0,dx.Qr)(gR),(0,dx.Qr)(mR),(0,dx.Qr)(yR),(0,dx.Qr)(bR),(0,dx.Qr)(wR),(0,dx.Qr)(CR),(0,dx.Qr)(kR);var DR=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},MR=function(e,t){return function(n,i){t(n,i,e)}},TR=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function OR(e,t,n){return TR(this,void 0,void 0,ki().mark((function i(){var r,o,a;return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return r=[],o=LL.wo.ordered(e).reverse(),a=(0,mx.xH)(o.map((function(i){return t.map((function(t){return Promise.resolve(i.provideInlineHints(e,t,n)).then((function(e){e&&r.push({list:e,provider:i})}),(function(e){(0,yx.Cp)(e)}))}))}))),i.next=5,Promise.all(a);case 5:return i.abrupt("return",r);case 6:case"end":return i.stop()}}),i)})))}var IR=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this._editor=t,this._codeEditorService=n,this._themeService=r,this._disposables=new Rx.SL,this._sessionDisposables=new Rx.SL,this._getInlineHintsDelays=new yN.Y(LL.wo,250,2500),this._decorationsTypeIds=[],this._decorationIds=[],this._disposables.add(LL.wo.onDidChange((function(){return o._update()}))),this._disposables.add(r.onDidColorThemeChange((function(){return o._update()}))),this._disposables.add(t.onDidChangeModel((function(){return o._update()}))),this._disposables.add(t.onDidChangeModelLanguage((function(){return o._update()}))),this._disposables.add(t.onDidChangeConfiguration((function(e){e.hasChanged(123)&&o._update()}))),this._update()}return(0,r.Z)(e,[{key:"dispose",value:function(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}},{key:"_update",value:function(){var e=this;if(this._sessionDisposables.clear(),this._editor.getOption(123).enabled){var t=this._editor.getModel();if(t&&LL.wo.has(t)){var n=new Px.pY((function(){return TR(e,void 0,void 0,ki().mark((function e(){var i,r,o,a,s;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=Date.now(),r=new bL.A,this._sessionDisposables.add((0,Rx.OF)((function(){return r.dispose(!0)}))),o=this._editor.getVisibleRangesPlusViewportAboveBelow(),e.next=6,OR(t,o,r.token);case 6:a=e.sent,s=this._getInlineHintsDelays.update(t,Date.now()-i),n.delay=s,this._updateHintsDecorators(a);case 10:case"end":return e.stop()}}),e,this)})))}),this._getInlineHintsDelays.get(t));this._sessionDisposables.add(n),this._sessionDisposables.add(this._editor.onDidChangeModelContent((function(){return n.schedule()}))),this._disposables.add(this._editor.onDidScrollChange((function(){return n.schedule()}))),n.schedule();var i=new Rx.SL;this._sessionDisposables.add(i);var r,o=(0,Tr.Z)(LL.wo.all(t));try{for(o.s();!(r=o.n()).done;){var a=r.value;"function"===typeof a.onDidChangeInlineHints&&i.add(a.onDidChangeInlineHints((function(){return n.schedule()})))}}catch(s){o.e(s)}finally{o.f()}}else this._removeAllDecorations()}else this._removeAllDecorations()}},{key:"_updateHintsDecorators",value:function(e){var t=this._getLayoutInfo(),n=t.fontSize,i=t.fontFamily,r=this._themeService.getColorTheme().getColor(zx.IB),o=this._themeService.getColorTheme().getColor(zx.w),a=[],s=[],u="--inlineHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(u,i);var l,c=(0,Tr.Z)(e);try{for(c.s();!(l=c.n()).done;)for(var d=l.value.list,h=0;h<d.length&&s.length<500;h++){var f=d[h],p=f.text,v=f.range,g=f.description,m=f.whitespaceBefore,_=f.whitespaceAfter,y=m?n/3|0:0,b=_?n/3|0:0,w={contentText:p,backgroundColor:"".concat(r),color:"".concat(o),margin:"0px ".concat(b,"px 0px ").concat(y,"px"),fontSize:"".concat(n,"px"),fontFamily:"var(".concat(u,")"),padding:"0px ".concat(n/4|0,"px"),borderRadius:"".concat(n/4|0,"px")},C="inlineHints-"+(0,mN.vp)(w).toString(16);this._codeEditorService.registerDecorationType(C,{before:w},void 0,this._editor),a.push(C);var k=this._codeEditorService.resolveDecorationOptions(C,!0);"string"===typeof g?k.hoverMessage=(new bx).appendText(g):g&&(k.hoverMessage=g),s.push({range:v,options:k})}}catch(S){c.e(S)}finally{c.f()}this._decorationsTypeIds.forEach(this._codeEditorService.removeDecorationType,this._codeEditorService),this._decorationsTypeIds=a,this._decorationIds=this._editor.deltaDecorations(this._decorationIds,s)}},{key:"_getLayoutInfo",value:function(){var e=this._editor.getOption(123),t=this._editor.getOption(42),n=e.fontSize;return(!n||n<5||n>t)&&(n=.9*t|0),{fontSize:n,fontFamily:e.fontFamily}}},{key:"_removeAllDecorations",value:function(){this._decorationIds=this._editor.deltaDecorations(this._decorationIds,[]),this._decorationsTypeIds.forEach(this._codeEditorService.removeDecorationType,this._codeEditorService),this._decorationsTypeIds=[]}}]),e}();IR.ID="editor.contrib.InlineHints",IR=DR([MR(1,aL.$),MR(2,Wx.XE)],IR),(0,dx._K)(IR.ID,IR),IL.P.registerCommand("_executeInlineHintProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return TR(void 0,void 0,void 0,ki().mark((function t(){var i,r,o,a;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=n[0],r=n[1],(0,JE.p_)(SL.o.isUri(i)),(0,JE.p_)(Fx.e.isIRange(r)),t.next=5,e.get(_T.S).createModelReference(i);case 5:return o=t.sent,t.prev=6,t.next=9,OR(o.object.textEditorModel,[Fx.e.lift(r)],bL.T.None);case 9:return a=t.sent,t.abrupt("return",(0,mx.xH)(a.map((function(e){return e.list}))).sort((function(e,t){return Fx.e.compareRangesUsingStarts(e.range,t.range)})));case 11:return t.prev=11,o.dispose(),t.finish(11);case 14:case"end":return t.stop()}}),t,null,[[6,,11,14]])})))}));var AR=function(){function e(t,n,r){(0,i.Z)(this,e),this._editRange=t,this._originalSelection=n,this._text=r}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){t.addTrackedEditOperation(this._editRange,this._text)}},{key:"computeCursorState",value:function(e,t){var n=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new px.Y(n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn),n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn)):new px.Y(n.endLineNumber,n.endColumn-this._text.length,n.endLineNumber,n.endColumn)}}]),e}(),PR=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},RR=function(e,t){return function(n,i){t(n,i,e)}},ZR=function(){function e(t,n){(0,i.Z)(this,e),this.decorationIds=[],this.editor=t,this.editorWorkerService=n}return(0,r.Z)(e,[{key:"dispose",value:function(){}},{key:"run",value:function(t,n){var i=this;this.currentRequest&&this.currentRequest.cancel();var r=this.editor.getSelection(),o=this.editor.getModel();if(o&&r){var a=r;if(a.startLineNumber===a.endLineNumber){var s=new xL.yy(this.editor,5),u=o.uri;return this.editorWorkerService.canNavigateValueSet(u)?(this.currentRequest=(0,Px.PG)((function(e){return i.editorWorkerService.navigateValueSet(u,a,n)})),this.currentRequest.then((function(n){if(n&&n.range&&n.value&&s.validate(i.editor)){var r=Fx.e.lift(n.range),o=n.range,u=n.value.length-(a.endColumn-a.startColumn);o={startLineNumber:o.startLineNumber,startColumn:o.startColumn,endLineNumber:o.endLineNumber,endColumn:o.startColumn+n.value.length},u>1&&(a=new px.Y(a.startLineNumber,a.startColumn,a.endLineNumber,a.endColumn+u-1));var l=new AR(r,a,n.value);i.editor.pushUndoStop(),i.editor.executeCommand(t,l),i.editor.pushUndoStop(),i.decorationIds=i.editor.deltaDecorations(i.decorationIds,[{range:o,options:e.DECORATION}]),i.decorationRemover&&i.decorationRemover.cancel(),i.decorationRemover=(0,Px.Vs)(350),i.decorationRemover.then((function(){return i.decorationIds=i.editor.deltaDecorations(i.decorationIds,[])})).catch(yx.dL)}})).catch(yx.dL)):Promise.resolve(void 0)}}}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();ZR.ID="editor.contrib.inPlaceReplaceController",ZR.DECORATION=Hx.qx.register({className:"valueSetReplacement"}),ZR=PR([RR(1,GP.p)],ZR);var FR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.inPlaceReplace.up",label:hx.N("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3154,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=ZR.get(t);return n?n.run(this.id,!0):Promise.resolve(void 0)}}]),n}(dx.R6),jR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.inPlaceReplace.down",label:hx.N("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3156,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=ZR.get(t);return n?n.run(this.id,!1):Promise.resolve(void 0)}}]),n}(dx.R6);(0,dx._K)(ZR.ID,ZR),(0,dx.Qr)(FR),(0,dx.Qr)(jR),(0,Wx.Ic)((function(e,t){var n=e.getColor(Bx.Dl);n&&t.addRule(".monaco-editor.vs .valueSetReplacement { outline: solid 2px ".concat(n,"; }"))}));var HR=function(){function e(t,n){(0,i.Z)(this,e),this._selection=t,this._cursors=n,this._selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){for(var n=function(e,t){t.sort((function(e,t){return e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber}));for(var n=t.length-2;n>=0;n--)t[n].lineNumber===t[n+1].lineNumber&&t.splice(n,1);for(var i=[],r=0,o=0,a=t.length,s=1,u=e.getLineCount();s<=u;s++){var l=e.getLineContent(s),c=l.length+1,d=0;if(!(o<a&&t[o].lineNumber===s&&(d=t[o].column,o++,d===c))&&0!==l.length){var h=CL.ow(l),f=0;if(-1===h)f=1;else{if(h===l.length-1)continue;f=h+2}f=Math.max(d,f),i[r++]=jO.h.delete(new Fx.e(s,f,s,c))}}return i}(e,this._cursors),i=0,r=n.length;i<r;i++){var o=n[i];t.addEditOperation(o.range,o.text)}this._selectionId=t.trackSelection(this._selection)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this._selectionId)}}]),e}();var BR=n(22268),zR=function(){function e(t,n,r){(0,i.Z)(this,e),this._selection=t,this._isCopyingDown=n,this._noop=r||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,n.startLineNumber<n.endLineNumber&&1===n.endColumn&&(this._endLineNumberDelta=1,n=n.setEndPosition(n.endLineNumber-1,e.getLineMaxColumn(n.endLineNumber-1)));for(var i=[],r=n.startLineNumber;r<=n.endLineNumber;r++)i.push(e.getLineContent(r));var o=i.join("\n");""===o&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new Fx.e(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber+1,1),n.endLineNumber===e.getLineCount()?"":"\n"):this._isCopyingDown?t.addEditOperation(new Fx.e(n.startLineNumber,1,n.startLineNumber,1),o+"\n"):t.addEditOperation(new Fx.e(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),"\n"+o),this._selectionId=t.trackSelection(n),this._selectionDirection=this._selection.getDirection()}},{key:"computeCursorState",value:function(e,t){var n=t.getTrackedSelection(this._selectionId);if(0!==this._startLineNumberDelta||0!==this._endLineNumberDelta){var i=n.startLineNumber,r=n.startColumn,o=n.endLineNumber,a=n.endColumn;0!==this._startLineNumberDelta&&(i+=this._startLineNumberDelta,r=1),0!==this._endLineNumberDelta&&(o+=this._endLineNumberDelta,a=1),n=px.Y.createWithDirection(i,r,o,a,this._selectionDirection)}return n}}]),e}(),WR=n(7273),VR=function(){function e(t,n,r){(0,i.Z)(this,e),this._selection=t,this._isMovingDown=n,this._autoIndent=r,this._selectionId=null,this._moveEndLineSelectionShrink=!1}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===n)this._selectionId=t.trackSelection(this._selection);else if(this._isMovingDown||1!==this._selection.startLineNumber){this._moveEndPositionDown=!1;var i=this._selection;i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));var r=e.getOptions(),o=r.tabSize,a=r.indentSize,s=r.insertSpaces,u=this.buildIndentConverter(o,a,s),l={getLineTokens:function(t){return e.getLineTokens(t)},getLanguageIdentifier:function(){return e.getLanguageIdentifier()},getLanguageIdAtPosition:function(t,n){return e.getLanguageIdAtPosition(t,n)},getLineContent:null};if(i.startLineNumber===i.endLineNumber&&1===e.getLineMaxColumn(i.startLineNumber)){var c=i.startLineNumber,d=this._isMovingDown?c+1:c-1;1===e.getLineMaxColumn(d)?t.addEditOperation(new Fx.e(1,1,1,1),null):(t.addEditOperation(new Fx.e(c,1,c,1),e.getLineContent(d)),t.addEditOperation(new Fx.e(d,1,d,e.getLineMaxColumn(d)),null)),i=new px.Y(d,1,d,1)}else{var h,f;if(this._isMovingDown){h=i.endLineNumber+1,f=e.getLineContent(h),t.addEditOperation(new Fx.e(h-1,e.getLineMaxColumn(h-1),h,e.getLineMaxColumn(h)),null);var p=f;if(this.shouldAutoIndent(e,i)){var v=this.matchEnterRule(e,u,o,h,i.startLineNumber-1);if(null!==v){var g=pR(v+fR(CL.V8(e.getLineContent(h)),o),o,s);p=g+this.trimLeft(f)}else{l.getLineContent=function(t){return t===i.startLineNumber?e.getLineContent(h):e.getLineContent(t)};var m=HO.zu.getGoodIndentForLine(this._autoIndent,l,e.getLanguageIdAtPosition(h,1),i.startLineNumber,u);if(null!==m){var _=CL.V8(e.getLineContent(h)),y=fR(m,o);if(y!==fR(_,o)){var b=pR(y,o,s);p=b+this.trimLeft(f)}}}t.addEditOperation(new Fx.e(i.startLineNumber,1,i.startLineNumber,1),p+"\n");var w=this.matchEnterRuleMovingDown(e,u,o,i.startLineNumber,h,p);if(null!==w)0!==w&&this.getIndentEditsOfMovingBlock(e,t,i,o,s,w);else{l.getLineContent=function(t){return t===i.startLineNumber?p:t>=i.startLineNumber+1&&t<=i.endLineNumber+1?e.getLineContent(t-1):e.getLineContent(t)};var C=HO.zu.getGoodIndentForLine(this._autoIndent,l,e.getLanguageIdAtPosition(h,1),i.startLineNumber+1,u);if(null!==C){var k=CL.V8(e.getLineContent(i.startLineNumber)),S=fR(C,o),x=fR(k,o);if(S!==x){var L=S-x;this.getIndentEditsOfMovingBlock(e,t,i,o,s,L)}}}}else t.addEditOperation(new Fx.e(i.startLineNumber,1,i.startLineNumber,1),p+"\n")}else if(h=i.startLineNumber-1,f=e.getLineContent(h),t.addEditOperation(new Fx.e(h,1,h+1,1),null),t.addEditOperation(new Fx.e(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),"\n"+f),this.shouldAutoIndent(e,i)){l.getLineContent=function(t){return t===h?e.getLineContent(i.startLineNumber):e.getLineContent(t)};var E=this.matchEnterRule(e,u,o,i.startLineNumber,i.startLineNumber-2);if(null!==E)0!==E&&this.getIndentEditsOfMovingBlock(e,t,i,o,s,E);else{var N=HO.zu.getGoodIndentForLine(this._autoIndent,l,e.getLanguageIdAtPosition(i.startLineNumber,1),h,u);if(null!==N){var D=CL.V8(e.getLineContent(i.startLineNumber)),M=fR(N,o),T=fR(D,o);if(M!==T){var O=M-T;this.getIndentEditsOfMovingBlock(e,t,i,o,s,O)}}}}}this._selectionId=t.trackSelection(i)}else this._selectionId=t.trackSelection(this._selection)}},{key:"buildIndentConverter",value:function(e,t,n){return{shiftIndent:function(i){return hR.U.shiftIndent(i,i.length+1,e,t,n)},unshiftIndent:function(i){return hR.U.unshiftIndent(i,i.length+1,e,t,n)}}}},{key:"parseEnterResult",value:function(e,t,n,i,r){if(r){var o=r.indentation;r.indentAction===WR.wU.None||r.indentAction===WR.wU.Indent?o=r.indentation+r.appendText:r.indentAction===WR.wU.IndentOutdent?o=r.indentation:r.indentAction===WR.wU.Outdent&&(o=t.unshiftIndent(r.indentation)+r.appendText);var a=e.getLineContent(i);if(this.trimLeft(a).indexOf(this.trimLeft(o))>=0){var s=CL.V8(e.getLineContent(i)),u=CL.V8(o),l=HO.zu.getIndentMetadata(e,i);return null!==l&&2&l&&(u=t.unshiftIndent(u)),fR(u,n)-fR(s,n)}}return null}},{key:"matchEnterRuleMovingDown",value:function(e,t,n,i,r,o){if(CL.ow(o)>=0){var a=e.getLineMaxColumn(r),s=HO.zu.getEnterAction(this._autoIndent,e,new Fx.e(r,a,r,a));return this.parseEnterResult(e,t,n,i,s)}for(var u=i-1;u>=1;){var l=e.getLineContent(u);if(CL.ow(l)>=0)break;u--}if(u<1||i>e.getLineCount())return null;var c=e.getLineMaxColumn(u),d=HO.zu.getEnterAction(this._autoIndent,e,new Fx.e(u,c,u,c));return this.parseEnterResult(e,t,n,i,d)}},{key:"matchEnterRule",value:function(e,t,n,i,r,o){for(var a=r;a>=1;){var s=void 0;if(s=a===r&&void 0!==o?o:e.getLineContent(a),CL.ow(s)>=0)break;a--}if(a<1||i>e.getLineCount())return null;var u=e.getLineMaxColumn(a),l=HO.zu.getEnterAction(this._autoIndent,e,new Fx.e(a,u,a,u));return this.parseEnterResult(e,t,n,i,l)}},{key:"trimLeft",value:function(e){return e.replace(/^\s+/,"")}},{key:"shouldAutoIndent",value:function(e,t){if(this._autoIndent<4)return!1;if(!e.isCheapToTokenize(t.startLineNumber))return!1;var n=e.getLanguageIdAtPosition(t.startLineNumber,1);return n===e.getLanguageIdAtPosition(t.endLineNumber,1)&&null!==HO.zu.getIndentRulesSupport(n)}},{key:"getIndentEditsOfMovingBlock",value:function(e,t,n,i,r,o){for(var a=n.startLineNumber;a<=n.endLineNumber;a++){var s=e.getLineContent(a),u=CL.V8(s),l=pR(fR(u,i)+o,i,r);l!==u&&(t.addEditOperation(new Fx.e(a,1,a,u.length+1),l),a===n.endLineNumber&&n.endColumn<=u.length+1&&""===l&&(this._moveEndLineSelectionShrink=!0))}}},{key:"computeCursorState",value:function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&n.startLineNumber<n.endLineNumber&&(n=n.setEndPosition(n.endLineNumber,2)),n}}]),e}(),YR=function(){function e(t,n){(0,i.Z)(this,e),this.selection=t,this.descending=n,this.selectionId=null}return(0,r.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=function(e,t,n){var i=UR(e,t,n);if(!i)return null;return jO.h.replace(new Fx.e(i.startLineNumber,1,i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),i.after.join("\n"))}(e,this.selection,this.descending);n&&t.addEditOperation(n.range,n.text),this.selectionId=t.trackSelection(this.selection)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this.selectionId)}}],[{key:"getCollator",value:function(){return e._COLLATOR||(e._COLLATOR=new Intl.Collator),e._COLLATOR}},{key:"canRun",value:function(e,t,n){if(null===e)return!1;var i=UR(e,t,n);if(!i)return!1;for(var r=0,o=i.before.length;r<o;r++)if(i.before[r]!==i.after[r])return!0;return!1}}]),e}();function UR(e,t,n){var i=t.startLineNumber,r=t.endLineNumber;if(1===t.endColumn&&r--,i>=r)return null;for(var o=[],a=i;a<=r;a++)o.push(e.getLineContent(a));var s=o.slice(0);return s.sort(YR.getCollator().compare),!0===n&&(s=s.reverse()),{startLineNumber:i,endLineNumber:r,before:o,after:s}}YR._COLLATOR=null;var KR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).down=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=t.getSelections().map((function(e,t){return{selection:e,index:t,ignore:!1}}));n.sort((function(e,t){return Fx.e.compareRangesUsingStarts(e.selection,t.selection)}));for(var i=n[0],r=1;r<n.length;r++){var o=n[r];i.selection.endLineNumber===o.selection.startLineNumber&&(i.index<o.index?o.ignore=!0:(i.ignore=!0,i=o))}var a,s=[],u=(0,Tr.Z)(n);try{for(u.s();!(a=u.n()).done;){var l=a.value;s.push(new zR(l.selection,this.down,l.ignore))}}catch(c){u.e(c)}finally{u.f()}t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}}]),n}(dx.R6),qR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.copyLinesUpAction",label:hx.N("lines.copyUp","Copy Line Up"),alias:"Copy Line Up",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"2_line",title:hx.N({key:"miCopyLinesUp",comment:["&& denotes a mnemonic"]},"&&Copy Line Up"),order:1}})}return(0,r.Z)(n)}(KR),GR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.copyLinesDownAction",label:hx.N("lines.copyDown","Copy Line Down"),alias:"Copy Line Down",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"2_line",title:hx.N({key:"miCopyLinesDown",comment:["&& denotes a mnemonic"]},"Co&&py Line Down"),order:2}})}return(0,r.Z)(n)}(KR),$R=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.duplicateSelection",label:hx.N("duplicateSelection","Duplicate Selection"),alias:"Duplicate Selection",precondition:fx.u.writable,menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"2_line",title:hx.N({key:"miDuplicateSelection",comment:["&& denotes a mnemonic"]},"&&Duplicate Selection"),order:5}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i,r=[],o=t.getSelections(),a=t.getModel(),s=(0,Tr.Z)(o);try{for(s.s();!(i=s.n()).done;){var u=i.value;if(u.isEmpty())r.push(new zR(u,!0));else{var l=new px.Y(u.endLineNumber,u.endColumn,u.endLineNumber,u.endColumn);r.push(new eL.OY(l,a.getValueInRange(u)))}}}catch(c){s.e(c)}finally{s.f()}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}}]),n}(dx.R6),QR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).down=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n,i=[],r=t.getSelections()||[],o=t.getOption(9),a=(0,Tr.Z)(r);try{for(a.s();!(n=a.n()).done;){var s=n.value;i.push(new VR(s,this.down,o))}}catch(u){a.e(u)}finally{a.f()}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}]),n}(dx.R6),XR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.moveLinesUpAction",label:hx.N("lines.moveUp","Move Line Up"),alias:"Move Line Up",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"2_line",title:hx.N({key:"miMoveLinesUp",comment:["&& denotes a mnemonic"]},"Mo&&ve Line Up"),order:3}})}return(0,r.Z)(n)}(QR),JR=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.moveLinesDownAction",label:hx.N("lines.moveDown","Move Line Down"),alias:"Move Line Down",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"2_line",title:hx.N({key:"miMoveLinesDown",comment:["&& denotes a mnemonic"]},"Move &&Line Down"),order:4}})}return(0,r.Z)(n)}(QR),eZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r)).descending=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n,i=t.getSelections()||[],r=(0,Tr.Z)(i);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(!YR.canRun(t.getModel(),o,this.descending))return}}catch(l){r.e(l)}finally{r.f()}for(var a=[],s=0,u=i.length;s<u;s++)a[s]=new YR(i[s],this.descending);t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}]),n}(dx.R6),tZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.sortLinesAscending",label:hx.N("lines.sortAscending","Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:fx.u.writable})}return(0,r.Z)(n)}(eZ),nZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.sortLinesDescending",label:hx.N("lines.sortDescending","Sort Lines Descending"),alias:"Sort Lines Descending",precondition:fx.u.writable})}return(0,r.Z)(n)}(eZ),iZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:hx.N("lines.trimTrailingWhitespace","Trim Trailing Whitespace"),alias:"Trim Trailing Whitespace",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:(0,vx.gx)(2089,2102),weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=[];"auto-save"===n.reason&&(i=(t.getSelections()||[]).map((function(e){return new Zx.L(e.positionLineNumber,e.positionColumn)})));var r=t.getSelection();if(null!==r){var o=new HR(r,i);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop()}}}]),n}(dx.R6);iZ.ID="editor.action.trimTrailingWhitespace";var rZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.deleteLines",label:hx.N("lines.delete","Delete Line"),alias:"Delete Line",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.textInputFocus,primary:3113,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=this._getLinesToRemove(t),i=t.getModel();if(1!==i.getLineCount()||1!==i.getLineMaxColumn(1)){for(var r=0,o=[],a=[],s=0,u=n.length;s<u;s++){var l=n[s],c=l.startLineNumber,d=l.endLineNumber,h=1,f=i.getLineMaxColumn(d);d<i.getLineCount()?(d+=1,f=1):c>1&&(c-=1,h=i.getLineMaxColumn(c)),o.push(jO.h.replace(new px.Y(c,h,d,f),"")),a.push(new px.Y(c-r,l.positionColumn,c-r,l.positionColumn)),r+=l.endLineNumber-l.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,o,a),t.pushUndoStop()}}}},{key:"_getLinesToRemove",value:function(e){var t=e.getSelections().map((function(e){var t=e.endLineNumber;return e.startLineNumber<e.endLineNumber&&1===e.endColumn&&(t-=1),{startLineNumber:e.startLineNumber,selectionStartColumn:e.selectionStartColumn,endLineNumber:t,positionColumn:e.positionColumn}}));t.sort((function(e,t){return e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber}));for(var n=[],i=t[0],r=1;r<t.length;r++)i.endLineNumber+1>=t[r].startLineNumber?i.endLineNumber=t[r].endLineNumber:(n.push(i),i=t[r]);return n.push(i),n}}]),n}(dx.R6),oZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.indentLines",label:hx.N("lines.indent","Indent Line"),alias:"Indent Line",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:2137,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,BR.u.indent(n.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}]),n}(dx.R6),aZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.outdentLines",label:hx.N("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:2135,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){lx.wk.Outdent.runEditorCommand(e,t,null)}}]),n}(dx.R6),sZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertLineBefore",label:hx.N("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3075,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,BR.u.lineInsertBefore(n.cursorConfig,t.getModel(),t.getSelections())))}}]),n}(dx.R6),uZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertLineAfter",label:hx.N("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:2051,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,BR.u.lineInsertAfter(n.cursorConfig,t.getModel(),t.getSelections())))}}]),n}(dx.R6),lZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){for(var n=t.getSelection(),i=this._getRangesToDelete(t),r=[],o=0,a=i.length-1;o<a;o++){var s=i[o],u=i[o+1];null===Fx.e.intersectRanges(s,u)?r.push(s):i[o+1]=Fx.e.plusRange(s,u)}r.push(i[i.length-1]);var l=this._getEndCursorState(n,r),c=r.map((function(e){return jO.h.replace(e,"")}));t.pushUndoStop(),t.executeEdits(this.id,c,l),t.pushUndoStop()}}}]),n}(dx.R6),cZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"deleteAllLeft",label:hx.N("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}return(0,r.Z)(n,[{key:"_getEndCursorState",value:function(e,t){var n=null,i=[],r=0;return t.forEach((function(t){var o;if(1===t.endColumn&&r>0){var a=t.startLineNumber-r;o=new px.Y(a,t.startColumn,a,t.startColumn)}else o=new px.Y(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn);r+=t.endLineNumber-t.startLineNumber,t.intersectRanges(e)?n=o:i.push(o)})),n&&i.unshift(n),i}},{key:"_getRangesToDelete",value:function(e){var t=e.getSelections();if(null===t)return[];var n=t,i=e.getModel();return null===i?[]:(n.sort(Fx.e.compareRangesUsingStarts),n=n.map((function(e){if(e.isEmpty()){if(1===e.startColumn){var t=Math.max(1,e.startLineNumber-1),n=1===e.startLineNumber?1:i.getLineContent(t).length+1;return new Fx.e(t,n,e.startLineNumber,1)}return new Fx.e(e.startLineNumber,1,e.startLineNumber,e.startColumn)}return new Fx.e(e.startLineNumber,1,e.endLineNumber,e.endColumn)})))}}]),n}(lZ),dZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"deleteAllRight",label:hx.N("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}return(0,r.Z)(n,[{key:"_getEndCursorState",value:function(e,t){for(var n=null,i=[],r=0,o=t.length;r<o;r++){var a=t[r],s=new px.Y(a.startLineNumber-0,a.startColumn,a.startLineNumber-0,a.startColumn);a.intersectRanges(e)?n=s:i.push(s)}return n&&i.unshift(n),i}},{key:"_getRangesToDelete",value:function(e){var t=e.getModel();if(null===t)return[];var n=e.getSelections();if(null===n)return[];var i=n.map((function(e){if(e.isEmpty()){var n=t.getLineMaxColumn(e.startLineNumber);return e.startColumn===n?new Fx.e(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new Fx.e(e.startLineNumber,e.startColumn,e.startLineNumber,n)}return e}));return i.sort(Fx.e.compareRangesUsingStarts),i}}]),n}(lZ),hZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.joinLines",label:hx.N("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getSelections();if(null!==n){var i=t.getSelection();if(null!==i){n.sort(Fx.e.compareRangesUsingStarts);var r=[],o=n.reduce((function(e,t){return e.isEmpty()?e.endLineNumber===t.startLineNumber?(i.equalsSelection(e)&&(i=t),t):t.startLineNumber>e.endLineNumber+1?(r.push(e),t):new px.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(r.push(e),t):new px.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn)}));r.push(o);var a=t.getModel();if(null!==a){for(var s=[],u=[],l=i,c=0,d=0,h=r.length;d<h;d++){var f=r[d],p=f.startLineNumber,v=0,g=void 0,m=void 0,_=a.getLineContent(f.endLineNumber).length-f.endColumn;if(f.isEmpty()||f.startLineNumber===f.endLineNumber){var y=f.getStartPosition();y.lineNumber<a.getLineCount()?(g=p+1,m=a.getLineMaxColumn(g)):(g=y.lineNumber,m=a.getLineMaxColumn(y.lineNumber))}else g=f.endLineNumber,m=a.getLineMaxColumn(g);for(var b=a.getLineContent(p),w=p+1;w<=g;w++){var C=a.getLineContent(w),k=a.getLineFirstNonWhitespaceColumn(w);if(k>=1){var S=!0;""===b&&(S=!1),!S||" "!==b.charAt(b.length-1)&&"\t"!==b.charAt(b.length-1)||(S=!1,b=b.replace(/[\s\uFEFF\xA0]+$/g," "));var x=C.substr(k-1);b+=(S?" ":"")+x,v=S?x.length+1:x.length}else v=0}var L=new Fx.e(p,1,g,m);if(!L.isEmpty()){var E=void 0;f.isEmpty()?(s.push(jO.h.replace(L,b)),E=new px.Y(L.startLineNumber-c,b.length-v+1,p-c,b.length-v+1)):f.startLineNumber===f.endLineNumber?(s.push(jO.h.replace(L,b)),E=new px.Y(f.startLineNumber-c,f.startColumn,f.endLineNumber-c,f.endColumn)):(s.push(jO.h.replace(L,b)),E=new px.Y(f.startLineNumber-c,f.startColumn,f.startLineNumber-c,b.length-_)),null!==Fx.e.intersectRanges(L,i)?l=E:u.push(E)}c+=L.endLineNumber-L.startLineNumber}u.unshift(l),t.pushUndoStop(),t.executeEdits(this.id,s,u),t.pushUndoStop()}}}}}]),n}(dx.R6),fZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transpose",label:hx.N("editor.transpose","Transpose characters around the cursor"),alias:"Transpose characters around the cursor",precondition:fx.u.writable})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getSelections();if(null!==n){var i=t.getModel();if(null!==i){for(var r=[],o=0,a=n.length;o<a;o++){var s=n[o];if(s.isEmpty()){var u=s.getStartPosition(),l=i.getLineMaxColumn(u.lineNumber);if(u.column>=l){if(u.lineNumber===i.getLineCount())continue;var c=new Fx.e(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),d=i.getValueInRange(c).split("").reverse().join("");r.push(new eL.T4(new px.Y(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),d))}else{var h=new Fx.e(u.lineNumber,Math.max(1,u.column-1),u.lineNumber,u.column+1),f=i.getValueInRange(h).split("").reverse().join("");r.push(new eL.hP(h,f,new px.Y(u.lineNumber,u.column+1,u.lineNumber,u.column+1)))}}}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}}}]),n}(dx.R6),pZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=t.getSelections();if(null!==n){var i=t.getModel();if(null!==i){var r,o=t.getOption(113),a=[],s=(0,Tr.Z)(n);try{for(s.s();!(r=s.n()).done;){var u=r.value;if(u.isEmpty()){var l=u.getStartPosition(),c=t.getConfiguredWordAtPosition(l);if(!c)continue;var d=new Fx.e(l.lineNumber,c.startColumn,l.lineNumber,c.endColumn),h=i.getValueInRange(d);a.push(jO.h.replace(d,this._modifyText(h,o)))}else{var f=i.getValueInRange(u);a.push(jO.h.replace(u,this._modifyText(f,o)))}}}catch(p){s.e(p)}finally{s.f()}t.pushUndoStop(),t.executeEdits(this.id,a),t.pushUndoStop()}}}}]),n}(dx.R6),vZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transformToUppercase",label:hx.N("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:fx.u.writable})}return(0,r.Z)(n,[{key:"_modifyText",value:function(e,t){return e.toLocaleUpperCase()}}]),n}(pZ),gZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transformToLowercase",label:hx.N("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:fx.u.writable})}return(0,r.Z)(n,[{key:"_modifyText",value:function(e,t){return e.toLocaleLowerCase()}}]),n}(pZ),mZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transformToTitlecase",label:hx.N("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:fx.u.writable})}return(0,r.Z)(n,[{key:"_modifyText",value:function(e,t){for(var n=("\r\n\t "+t).split(""),i="",r=!0,o=0;o<e.length;o++){var a=e[o];n.indexOf(a)>=0?(r=!0,i+=a):r?(r=!1,i+=a.toLocaleUpperCase()):i+=a.toLocaleLowerCase()}return i}}]),n}(pZ),_Z=function(){function e(t,n){(0,i.Z)(this,e),this._pattern=t,this._flags=n,this._actual=null,this._evaluated=!1}return(0,r.Z)(e,[{key:"get",value:function(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(e){}}return this._actual}},{key:"isSupported",value:function(){return null!==this.get()}}]),e}(),yZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.transformToSnakecase",label:hx.N("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:fx.u.writable})}return(0,r.Z)(n,[{key:"_modifyText",value:function(e,t){var i=n.regExp1.get(),r=n.regExp2.get();return i&&r?e.replace(i,"$1_$2").replace(r,"$1_$2$3").toLocaleLowerCase():e}}]),n}(pZ);yZ.regExp1=new _Z("(\\p{Ll})(\\p{Lu})","gmu"),yZ.regExp2=new _Z("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu"),(0,dx.Qr)(qR),(0,dx.Qr)(GR),(0,dx.Qr)($R),(0,dx.Qr)(XR),(0,dx.Qr)(JR),(0,dx.Qr)(tZ),(0,dx.Qr)(nZ),(0,dx.Qr)(iZ),(0,dx.Qr)(rZ),(0,dx.Qr)(oZ),(0,dx.Qr)(aZ),(0,dx.Qr)(sZ),(0,dx.Qr)(uZ),(0,dx.Qr)(cZ),(0,dx.Qr)(dZ),(0,dx.Qr)(hZ),(0,dx.Qr)(fZ),(0,dx.Qr)(vZ),(0,dx.Qr)(gZ),(0,dx.Qr)(mZ),yZ.regExp1.isSupported()&&yZ.regExp2.isSupported()&&(0,dx.Qr)(yZ);var bZ=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},wZ=function(e,t){return function(n,i){t(n,i,e)}},CZ=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},kZ=new gx.uy("LinkedEditingInputVisible",!1),SZ="linked-editing-decoration",xZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this))._debounceDuration=200,o._localToDispose=o._register(new Rx.SL),o._editor=e,o._enabled=!1,o._visibleContextKey=kZ.bindTo(r),o._currentDecorations=[],o._languageWordPattern=null,o._currentWordPattern=null,o._ignoreChangeEvent=!1,o._localToDispose=o._register(new Rx.SL),o._rangeUpdateTriggerPromise=null,o._rangeSyncTriggerPromise=null,o._currentRequest=null,o._currentRequestPosition=null,o._currentRequestModelVersion=null,o._register(o._editor.onDidChangeModel((function(){return o.reinitialize()}))),o._register(o._editor.onDidChangeConfiguration((function(e){(e.hasChanged(58)||e.hasChanged(78))&&o.reinitialize()}))),o._register(LL.id.onDidChange((function(){return o.reinitialize()}))),o._register(o._editor.onDidChangeModelLanguage((function(){return o.reinitialize()}))),o.reinitialize(),o}return(0,r.Z)(n,[{key:"reinitialize",value:function(){var e=this,t=this._editor.getModel(),n=null!==t&&(this._editor.getOption(58)||this._editor.getOption(78))&&LL.id.has(t);if(n!==this._enabled&&(this._enabled=n,this.clearRanges(),this._localToDispose.clear(),n&&null!==t)){this._languageWordPattern=HO.zu.getWordDefinition(t.getLanguageIdentifier().id),this._localToDispose.add(t.onDidChangeLanguageConfiguration((function(){e._languageWordPattern=HO.zu.getWordDefinition(t.getLanguageIdentifier().id)})));var i=new Px.vp(this._debounceDuration),r=function(){e._rangeUpdateTriggerPromise=i.trigger((function(){return e.updateRanges()}),e._debounceDuration)},o=new Px.vp(0);this._localToDispose.add(this._editor.onDidChangeCursorPosition((function(){r()}))),this._localToDispose.add(this._editor.onDidChangeModelContent((function(n){if(!e._ignoreChangeEvent&&e._currentDecorations.length>0){var i=t.getDecorationRange(e._currentDecorations[0]);if(i&&n.changes.every((function(e){return i.intersectRanges(e.range)})))return a=e._currentDecorations,void(e._rangeSyncTriggerPromise=o.trigger((function(){return e._syncRanges(a)})))}var a;r()}))),this._localToDispose.add({dispose:function(){i.cancel(),o.cancel()}}),this.updateRanges()}}},{key:"_syncRanges",value:function(e){if(this._editor.hasModel()&&e===this._currentDecorations&&0!==e.length){var t=this._editor.getModel(),n=t.getDecorationRange(e[0]);if(!n||n.startLineNumber!==n.endLineNumber)return this.clearRanges();var i=t.getValueInRange(n);if(this._currentWordPattern){var r=i.match(this._currentWordPattern);if((r?r[0].length:0)!==i.length)return this.clearRanges()}for(var o=[],a=1,s=e.length;a<s;a++){var u=t.getDecorationRange(e[a]);if(u)if(u.startLineNumber!==u.endLineNumber)o.push({range:u,text:i});else{var l=t.getValueInRange(u),c=i,d=u.startColumn,h=u.endColumn,f=CL.Mh(l,c);d+=f,l=l.substr(f),c=c.substr(f);var p=CL.P1(l,c);h-=p,l=l.substr(0,l.length-p),c=c.substr(0,c.length-p),d===h&&0===c.length||o.push({range:new Fx.e(u.startLineNumber,d,u.endLineNumber,h),text:c})}}if(0!==o.length)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;var v=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits("linkedEditing",o),this._editor._getViewModel().setPrevEditOperationType(v)}finally{this._ignoreChangeEvent=!1}}}},{key:"dispose",value:function(){this.clearRanges(),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"clearRanges",value:function(){this._visibleContextKey.set(!1),this._currentDecorations=this._editor.deltaDecorations(this._currentDecorations,[]),this._currentRequest&&(this._currentRequest.cancel(),this._currentRequest=null,this._currentRequestPosition=null)}},{key:"updateRanges",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return CZ(this,void 0,void 0,ki().mark((function t(){var i,r,o,a,s,u=this;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()){t.next=3;break}return this.clearRanges(),t.abrupt("return");case 3:if(i=this._editor.getPosition(),!(!this._enabled&&!e||this._editor.getSelections().length>1)){t.next=7;break}return this.clearRanges(),t.abrupt("return");case 7:if(r=this._editor.getModel(),o=r.getVersionId(),!this._currentRequestPosition||this._currentRequestModelVersion!==o){t.next=16;break}if(!i.equals(this._currentRequestPosition)){t.next=12;break}return t.abrupt("return");case 12:if(!(this._currentDecorations&&this._currentDecorations.length>0)){t.next=16;break}if(!(a=r.getDecorationRange(this._currentDecorations[0]))||!a.containsPosition(i)){t.next=16;break}return t.abrupt("return");case 16:return this._currentRequestPosition=i,this._currentRequestModelVersion=o,s=(0,Px.PG)((function(e){return CZ(u,void 0,void 0,ki().mark((function t(){var a,u,l,c,d,h,f;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,NZ(r,i,e);case 3:if(a=t.sent,s===this._currentRequest){t.next=6;break}return t.abrupt("return");case 6:if(this._currentRequest=null,o===r.getVersionId()){t.next=9;break}return t.abrupt("return");case 9:u=[],(null===a||void 0===a?void 0:a.ranges)&&(u=a.ranges),this._currentWordPattern=(null===a||void 0===a?void 0:a.wordPattern)||this._languageWordPattern,l=!1,c=0,d=u.length;case 14:if(!(c<d)){t.next=22;break}if(!Fx.e.containsPosition(u[c],i)){t.next=19;break}return l=!0,0!==c&&(h=u[c],u.splice(c,1),u.unshift(h)),t.abrupt("break",22);case 19:c++,t.next=14;break;case 22:if(l){t.next=25;break}return this.clearRanges(),t.abrupt("return");case 25:f=u.map((function(e){return{range:e,options:n.DECORATION}})),this._visibleContextKey.set(!0),this._currentDecorations=this._editor.deltaDecorations(this._currentDecorations,f),t.next=34;break;case 30:t.prev=30,t.t0=t.catch(0),(0,yx.VV)(t.t0)||(0,yx.dL)(t.t0),this._currentRequest!==s&&this._currentRequest||this.clearRanges();case 34:case"end":return t.stop()}}),t,this,[[0,30]])})))})),this._currentRequest=s,t.abrupt("return",s);case 21:case"end":return t.stop()}}),t,this)})))}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);xZ.ID="editor.contrib.linkedEditing",xZ.DECORATION=Hx.qx.register({stickiness:0,className:SZ}),xZ=bZ([wZ(1,gx.i6)],xZ);var LZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.linkedEditing",label:hx.N("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:gx.Ao.and(fx.u.writable,fx.u.hasRenameProvider),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3132,weight:100}})}return(0,r.Z)(n,[{key:"runCommand",value:function(e,t){var i=this,r=e.get(aL.$),o=Array.isArray(t)&&t||[void 0,void 0],a=(0,dt.Z)(o,2),s=a[0],u=a[1];return SL.o.isUri(s)&&Zx.L.isIPosition(u)?r.openCodeEditor({resource:s},r.getActiveCodeEditor()).then((function(e){e&&(e.setPosition(u),e.invokeWithinContext((function(t){return i.reportTelemetry(t,e),i.run(t,e)})))}),yx.dL):(0,YL.Z)((0,UL.Z)(n.prototype),"runCommand",this).call(this,e,t)}},{key:"run",value:function(e,t){var n=xZ.get(t);return n?Promise.resolve(n.updateRanges(!0)):Promise.resolve()}}]),n}(dx.R6),EZ=dx._l.bindToContribution(xZ.get);function NZ(e,t,n){var i=this,r=LL.id.ordered(e);return(0,Px.Ps)(r.map((function(r){return function(){return CZ(i,void 0,void 0,ki().mark((function i(){return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.prev=0,i.next=3,r.provideLinkedEditingRanges(e,t,n);case 3:return i.abrupt("return",i.sent);case 6:return i.prev=6,i.t0=i.catch(0),(0,yx.Cp)(i.t0),i.abrupt("return",void 0);case 10:case"end":return i.stop()}}),i,null,[[0,6]])})))}})),(function(e){return!!e&&mx.Of(null===e||void 0===e?void 0:e.ranges)}))}(0,dx.fK)(new EZ({id:"cancelLinkedEditingInput",precondition:kZ,handler:function(e){return e.clearRanges()},kbOpts:{kbExpr:fx.u.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));var DZ=(0,zx.P6)("editor.linkedEditingBackground",{dark:SN.Il.fromHex("#f00").transparent(.3),light:SN.Il.fromHex("#f00").transparent(.3),hc:SN.Il.fromHex("#f00").transparent(.3)},hx.N("editorLinkedEditingBackground","Background color when the editor auto renames on type."));(0,Wx.Ic)((function(e,t){var n=e.getColor(DZ);n&&t.addRule(".monaco-editor .".concat(SZ," { background: ").concat(n,"; border-left-color: ").concat(n,"; }"))})),(0,dx.sb)("_executeLinkedEditingProvider",(function(e,t){return NZ(e,t,bL.T.None)})),(0,dx._K)(xZ.ID,xZ),(0,dx.Qr)(LZ);var MZ=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},TZ=function(){function e(t,n){(0,i.Z)(this,e),this._link=t,this._provider=n}return(0,r.Z)(e,[{key:"toJSON",value:function(){return{range:this.range,url:this.url,tooltip:this.tooltip}}},{key:"range",get:function(){return this._link.range}},{key:"url",get:function(){return this._link.url}},{key:"tooltip",get:function(){return this._link.tooltip}},{key:"resolve",value:function(e){return MZ(this,void 0,void 0,ki().mark((function t(){var n=this;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._link.url){t.next=2;break}return t.abrupt("return",this._link.url);case 2:if("function"!==typeof this._provider.resolveLink){t.next=4;break}return t.abrupt("return",Promise.resolve(this._provider.resolveLink(this._link,e)).then((function(t){return n._link=t||n._link,n._link.url?n.resolve(e):Promise.reject(new Error("missing"))})));case 4:return t.abrupt("return",Promise.reject(new Error("missing")));case 5:case"end":return t.stop()}}),t,this)})))}}]),e}(),OZ=function(){function e(t){var n=this;(0,i.Z)(this,e),this._disposables=new Rx.SL;var r,o=[],a=(0,Tr.Z)(t);try{var s=function(){var t=(0,dt.Z)(r.value,2),i=t[0],a=t[1],s=i.links.map((function(e){return new TZ(e,a)}));o=e._union(o,s),(0,Rx.Wf)(i)&&n._disposables.add(i)};for(a.s();!(r=a.n()).done;)s()}catch(u){a.e(u)}finally{a.f()}this.links=o}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this.links.length=0}}],[{key:"_union",value:function(e,t){var n,i,r,o,a=[];for(n=0,r=0,i=e.length,o=t.length;n<i&&r<o;){var s=e[n],u=t[r];if(Fx.e.areIntersectingOrTouching(s.range,u.range))n++;else Fx.e.compareRangesUsingStarts(s.range,u.range)<0?(a.push(s),n++):(a.push(u),r++)}for(;n<i;n++)a.push(e[n]);for(;r<o;r++)a.push(t[r]);return a}}]),e}();function IZ(e,t){var n=[],i=LL.pM.ordered(e).reverse().map((function(i,r){return Promise.resolve(i.provideLinks(e,t)).then((function(e){e&&(n[r]=[e,i])}),yx.Cp)}));return Promise.all(i).then((function(){var e=new OZ((0,mx.kX)(n));return t.isCancellationRequested?(e.dispose(),new OZ([])):e}))}IL.P.registerCommand("_executeLinkProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return MZ(void 0,void 0,void 0,ki().mark((function t(){var i,r,o,a,s,u;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],r=n[1],(0,JE.p_)(i instanceof SL.o),"number"!==typeof r&&(r=0),o=e.get(EL.q).getModel(i)){t.next=6;break}return t.abrupt("return",[]);case 6:return t.next=8,IZ(o,bL.T.None);case 8:if(a=t.sent){t.next=11;break}return t.abrupt("return",[]);case 11:s=0;case 12:if(!(s<Math.min(r,a.links.length))){t.next=18;break}return t.next=15,a.links[s].resolve(bL.T.None);case 15:s++,t.next=12;break;case 18:return u=a.links.slice(0),a.dispose(),t.abrupt("return",u);case 21:case"end":return t.stop()}}),t)})))}));var AZ=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},PZ=function(e,t){return function(n,i){t(n,i,e)}},RZ=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};var ZZ={general:Hx.qx.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:Hx.qx.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})},FZ=function(){function e(t,n){(0,i.Z)(this,e),this.link=t,this.decorationId=n}return(0,r.Z)(e,[{key:"activate",value:function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!0))}},{key:"deactivate",value:function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!1))}}],[{key:"decoration",value:function(t,n){return{range:t.range,options:e._getOptions(t,n,!1)}}},{key:"_getOptions",value:function(e,t,n){var i=Object.assign({},n?ZZ.active:ZZ.general);return i.hoverMessage=function(e,t){var n=e.url&&/^command:/i.test(e.url.toString()),i=e.tooltip?e.tooltip:n?hx.N("links.navigate.executeCmd","Execute command"):hx.N("links.navigate.follow","Follow link"),r=t?rL.dz?hx.N("links.navigate.kb.meta.mac","cmd + click"):hx.N("links.navigate.kb.meta","ctrl + click"):rL.dz?hx.N("links.navigate.kb.alt.mac","option + click"):hx.N("links.navigate.kb.alt","alt + click");if(e.url){var o="";if(/^command:/i.test(e.url.toString())){var a=e.url.toString().match(/^command:([^?#]+)/);if(a){var s=a[1],u=hx.N("tooltip.explanation","Execute command {0}",s);o=' "'.concat(u,'"')}}return new bx("",!0).appendMarkdown("[".concat(i,"](").concat(e.url.toString(!0)).concat(o,") (").concat(r,")"))}return(new bx).appendText("".concat(i," (").concat(r,")"))}(e,t),i}}]),e}(),jZ=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this.listenersToRemove=new Rx.SL,this.editor=t,this.openerService=n,this.notificationService=r;var a=new DO(t);this.listenersToRemove.add(a),this.listenersToRemove.add(a.onMouseMoveOrRelevantKeyDown((function(e){var t=(0,dt.Z)(e,2),n=t[0],i=t[1];o._onEditorMouseMove(n,i)}))),this.listenersToRemove.add(a.onExecute((function(e){o.onEditorMouseUp(e)}))),this.listenersToRemove.add(a.onCancel((function(e){o.cleanUpActiveLinkDecoration()}))),this.enabled=t.getOption(59),this.listenersToRemove.add(t.onDidChangeConfiguration((function(e){var n=t.getOption(59);o.enabled!==n&&(o.enabled=n,o.updateDecorations([]),o.stop(),o.beginCompute())}))),this.listenersToRemove.add(t.onDidChangeModelContent((function(e){return o.onChange()}))),this.listenersToRemove.add(t.onDidChangeModel((function(e){return o.onModelChanged()}))),this.listenersToRemove.add(t.onDidChangeModelLanguage((function(e){return o.onModelModeChanged()}))),this.listenersToRemove.add(LL.pM.onDidChange((function(e){return o.onModelModeChanged()}))),this.timeout=new Px._F,this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null,this.beginCompute()}return(0,r.Z)(e,[{key:"onModelChanged",value:function(){this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.beginCompute()}},{key:"onModelModeChanged",value:function(){this.stop(),this.beginCompute()}},{key:"onChange",value:function(){var t=this;this.timeout.setIfNotSet((function(){return t.beginCompute()}),e.RECOMPUTE_TIME)}},{key:"beginCompute",value:function(){return RZ(this,void 0,void 0,ki().mark((function e(){var t;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.editor.hasModel()&&this.enabled){e.next=2;break}return e.abrupt("return");case 2:if(t=this.editor.getModel(),LL.pM.has(t)){e.next=5;break}return e.abrupt("return");case 5:return this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=Px.PG((function(e){return IZ(t,e)})),e.prev=7,e.next=10,this.computePromise;case 10:this.activeLinksList=e.sent,this.updateDecorations(this.activeLinksList.links),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(7),(0,yx.dL)(e.t0);case 17:return e.prev=17,this.computePromise=null,e.finish(17);case 20:case"end":return e.stop()}}),e,this,[[7,14,17,20]])})))}},{key:"updateDecorations",value:function(e){for(var t="altKey"===this.editor.getOption(66),n=[],i=Object.keys(this.currentOccurrences),r=0,o=i.length;r<o;r++){var a=i[r],s=this.currentOccurrences[a];n.push(s.decorationId)}var u=[];if(e){var l,c=(0,Tr.Z)(e);try{for(c.s();!(l=c.n()).done;){var d=l.value;u.push(FZ.decoration(d,t))}}catch(g){c.e(g)}finally{c.f()}}var h=this.editor.deltaDecorations(n,u);this.currentOccurrences={},this.activeLinkDecorationId=null;for(var f=0,p=h.length;f<p;f++){var v=new FZ(e[f],h[f]);this.currentOccurrences[v.decorationId]=v}}},{key:"_onEditorMouseMove",value:function(e,t){var n=this,i="altKey"===this.editor.getOption(66);if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();var r=this.getLinkOccurrence(e.target.position);r&&this.editor.changeDecorations((function(e){r.activate(e,i),n.activeLinkDecorationId=r.decorationId}))}else this.cleanUpActiveLinkDecoration()}},{key:"cleanUpActiveLinkDecoration",value:function(){var e="altKey"===this.editor.getOption(66);if(this.activeLinkDecorationId){var t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations((function(n){t.deactivate(n,e)})),this.activeLinkDecorationId=null}}},{key:"onEditorMouseUp",value:function(e){if(this.isEnabled(e)){var t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}}},{key:"openLinkOccurrence",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.openerService){var r=e.link;r.resolve(bL.T.None).then((function(e){if("string"===typeof e&&n.editor.hasModel()){var r=n.editor.getModel().uri;if(r.scheme===KN.lg.file&&e.startsWith("".concat(KN.lg.file,":"))){var o=SL.o.parse(e);if(o.scheme===KN.lg.file){var a=ME.z_(o),s=null;a.startsWith("/./")?s=".".concat(a.substr(1)):a.startsWith("//./")&&(s=".".concat(a.substr(2))),s&&(e=ME.Vo(r,s))}}}return n.openerService.open(e,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0})}),(function(e){var t=e instanceof Error?e.message:e;"invalid"===t?n.notificationService.warn(hx.N("invalid.url","Failed to open this link because it is not well-formed: {0}",r.url.toString())):"missing"===t?n.notificationService.warn(hx.N("missing.url","Failed to open this link because its target is missing.")):(0,yx.dL)(e)}))}}},{key:"getLinkOccurrence",value:function(e){if(!this.editor.hasModel()||!e)return null;var t,n=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0),i=(0,Tr.Z)(n);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.currentOccurrences[r.id];if(o)return o}}catch(a){i.e(a)}finally{i.f()}return null}},{key:"isEnabled",value:function(e,t){return Boolean(6===e.target.type&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}},{key:"stop",value:function(){var e;this.timeout.cancel(),this.activeLinksList&&(null===(e=this.activeLinksList)||void 0===e||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}},{key:"dispose",value:function(){this.listenersToRemove.dispose(),this.stop(),this.timeout.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();jZ.ID="editor.linkDetector",jZ.RECOMPUTE_TIME=1e3,jZ=AZ([PZ(1,UN.v4),PZ(2,NE.lT)],jZ);var HZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.openLink",label:hx.N("label","Open Link"),alias:"Open Link",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=jZ.get(t);if(n&&t.hasModel()){var i,r=t.getSelections(),o=(0,Tr.Z)(r);try{for(o.s();!(i=o.n()).done;){var a=i.value,s=n.getLinkOccurrence(a.getEndPosition());s&&n.openLinkOccurrence(s,!1)}}catch(u){o.e(u)}finally{o.f()}}}}]),n}(dx.R6);(0,dx._K)(jZ.ID,jZ),(0,dx.Qr)(HZ),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx._Y);n&&t.addRule(".monaco-editor .detected-link-active { color: ".concat(n," !important; }"))}));var BZ=n(55561);function zZ(e,t){var n=t.filter((function(t){return!e.find((function(e){return e.equals(t)}))}));if(n.length>=1){var i=n.map((function(e){return"line ".concat(e.viewState.position.lineNumber," column ").concat(e.viewState.position.column)})).join(", "),r=1===n.length?hx.N("cursorAdded","Cursor added: {0}",i):hx.N("cursorsAdded","Cursors added: {0}",i);(0,xx.i7)(r)}}var WZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertCursorAbove",label:hx.N("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"3_multi",title:hx.N({key:"miInsertCursorAbove",comment:["&& denotes a mnemonic"]},"&&Add Cursor Above"),order:2}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i=n&&!0===n.logicalLine,r=t._getViewModel();if(!r.cursorConfig.readOnly){r.pushStackElement();var o=r.getCursorStates();r.setCursorStates(n.source,3,BZ.P.addCursorUp(r,o,i)),r.revealTopMostCursor(n.source),zZ(o,r.getCursorStates())}}}}]),n}(dx.R6),VZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertCursorBelow",label:hx.N("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"3_multi",title:hx.N({key:"miInsertCursorBelow",comment:["&& denotes a mnemonic"]},"A&&dd Cursor Below"),order:3}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i=n&&!0===n.logicalLine,r=t._getViewModel();if(!r.cursorConfig.readOnly){r.pushStackElement();var o=r.getCursorStates();r.setCursorStates(n.source,3,BZ.P.addCursorDown(r,o,i)),r.revealBottomMostCursor(n.source),zZ(o,r.getCursorStates())}}}}]),n}(dx.R6),YZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.insertCursorAtEndOfEachLineSelected",label:hx.N("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"3_multi",title:hx.N({key:"miInsertCursorAtEndOfEachLineSelected",comment:["&& denotes a mnemonic"]},"Add C&&ursors to Line Ends"),order:4}})}return(0,r.Z)(n,[{key:"getCursorsForSelection",value:function(e,t,n){if(!e.isEmpty()){for(var i=e.startLineNumber;i<e.endLineNumber;i++){var r=t.getLineMaxColumn(i);n.push(new px.Y(i,r,i,r))}e.endColumn>1&&n.push(new px.Y(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}},{key:"run",value:function(e,t){var n=this;if(t.hasModel()){var i=t.getModel(),r=t.getSelections(),o=t._getViewModel(),a=o.getCursorStates(),s=[];r.forEach((function(e){return n.getCursorsForSelection(e,i,s)})),s.length>0&&t.setSelections(s),zZ(a,o.getCursorStates())}}}]),n}(dx.R6),UZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.addCursorsToBottom",label:hx.N("mutlicursor.addCursorsToBottom","Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){for(var n=t.getSelections(),i=t.getModel().getLineCount(),r=[],o=n[0].startLineNumber;o<=i;o++)r.push(new px.Y(o,n[0].startColumn,o,n[0].endColumn));var a=t._getViewModel(),s=a.getCursorStates();r.length>0&&t.setSelections(r),zZ(s,a.getCursorStates())}}}]),n}(dx.R6),KZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.addCursorsToTop",label:hx.N("mutlicursor.addCursorsToTop","Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){for(var n=t.getSelections(),i=[],r=n[0].startLineNumber;r>=1;r--)i.push(new px.Y(r,n[0].startColumn,r,n[0].endColumn));var o=t._getViewModel(),a=o.getCursorStates();i.length>0&&t.setSelections(i),zZ(a,o.getCursorStates())}}}]),n}(dx.R6),qZ=(0,r.Z)((function e(t,n,r){(0,i.Z)(this,e),this.selections=t,this.revealRange=n,this.revealScrollType=r})),GZ=function(){function e(t,n,r,o,a,s,u){(0,i.Z)(this,e),this._editor=t,this.findController=n,this.isDisconnectedFromFindController=r,this.searchText=o,this.wholeWord=a,this.matchCase=s,this.currentMatch=u}return(0,r.Z)(e,[{key:"addSelectionToNextFindMatch",value:function(){if(!this._editor.hasModel())return null;var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new qZ(t.concat(e),e,0)}},{key:"moveSelectionToNextFindMatch",value:function(){if(!this._editor.hasModel())return null;var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new qZ(t.slice(0,t.length-1).concat(e),e,0)}},{key:"_getNextMatch",value:function(){if(!this._editor.hasModel())return null;if(this.currentMatch){var e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(113):null,!1);return i?new px.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}},{key:"addSelectionToPreviousFindMatch",value:function(){if(!this._editor.hasModel())return null;var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new qZ(t.concat(e),e,0)}},{key:"moveSelectionToPreviousFindMatch",value:function(){if(!this._editor.hasModel())return null;var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new qZ(t.slice(0,t.length-1).concat(e),e,0)}},{key:"_getPreviousMatch",value:function(){if(!this._editor.hasModel())return null;if(this.currentMatch){var e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(113):null,!1);return i?new px.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}},{key:"selectAll",value:function(){return this._editor.hasModel()?(this.findController.highlightFindOptions(),this._editor.getModel().findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(113):null,!1,1073741824)):[]}}],[{key:"create",value:function(t,n){if(!t.hasModel())return null;var i=n.getState();if(!t.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new e(t,n,!1,i.searchString,i.wholeWord,i.matchCase,null);var r,o,a=!1,s=t.getSelections();1===s.length&&s[0].isEmpty()?(a=!0,r=!0,o=!0):(r=i.wholeWord,o=i.matchCase);var u,l=t.getSelection(),c=null;if(l.isEmpty()){var d=t.getConfiguredWordAtPosition(l.getStartPosition());if(!d)return null;u=d.word,c=new px.Y(l.startLineNumber,d.startColumn,l.startLineNumber,d.endColumn)}else u=t.getModel().getValueInRange(l).replace(/\r\n/g,"\n");return new e(t,n,a,u,r,o,c)}}]),e}(),$Z=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this))._sessionDispose=r._register(new Rx.SL),r._editor=e,r._ignoreSelectionChange=!1,r._session=null,r}return(0,r.Z)(n,[{key:"dispose",value:function(){this._endSession(),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"_beginSessionIfNeeded",value:function(e){var t=this;if(!this._session){var n=GZ.create(this._editor,e);if(!n)return;this._session=n;var i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((function(e){t._ignoreSelectionChange||t._endSession()}))),this._sessionDispose.add(this._editor.onDidBlurEditorText((function(){t._endSession()}))),this._sessionDispose.add(e.getState().onFindReplaceStateChange((function(e){(e.matchCase||e.wholeWord)&&t._endSession()})))}}},{key:"_endSession",value:function(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){this._session.findController.getState().change({wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0},!1)}this._session=null}},{key:"_setSelections",value:function(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}},{key:"_expandEmptyToWord",value:function(e,t){if(!t.isEmpty())return t;var n=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return n?new px.Y(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):t}},{key:"_applySessionResult",value:function(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}},{key:"getSession",value:function(e){return this._session}},{key:"addSelectionToNextFindMatch",value:function(e){if(this._editor.hasModel()){if(!this._session){var t=this._editor.getSelections();if(t.length>1){var n=e.getState().matchCase;if(!aF(this._editor.getModel(),t,n)){for(var i=this._editor.getModel(),r=[],o=0,a=t.length;o<a;o++)r[o]=this._expandEmptyToWord(i,t[o]);return void this._editor.setSelections(r)}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}}},{key:"addSelectionToPreviousFindMatch",value:function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}},{key:"moveSelectionToNextFindMatch",value:function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())}},{key:"moveSelectionToPreviousFindMatch",value:function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}},{key:"selectAll",value:function(e){if(this._editor.hasModel()){var t=null,n=e.getState();if(n.isRevealed&&n.searchString.length>0&&n.isRegex)t=this._editor.getModel().findMatches(n.searchString,!0,n.isRegex,n.matchCase,n.wholeWord?this._editor.getOption(113):null,!1,1073741824);else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll()}if(n.searchScope){var i=n.searchScope,r=[];t.forEach((function(e){i.forEach((function(t){e.range.endLineNumber<=t.endLineNumber&&e.range.startLineNumber>=t.startLineNumber&&r.push(e)}))})),t=r}if(t.length>0){for(var o=this._editor.getSelection(),a=0,s=t.length;a<s;a++){var u=t[a];if(u.range.intersectRanges(o)){t[a]=t[0],t[0]=u;break}}this._setSelections(t.map((function(e){return new px.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)})))}}}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);$Z.ID="editor.contrib.multiCursorController";var QZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=$Z.get(t);if(n){var i=RA.get(t);if(i){var r=t._getViewModel();if(r){var o=r.getCursorStates();this._run(n,i),zZ(o,r.getCursorStates())}}}}}]),n}(dx.R6),XZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.addSelectionToNextFindMatch",label:hx.N("addSelectionToNextFindMatch","Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:2082,weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"3_multi",title:hx.N({key:"miAddSelectionToNextFindMatch",comment:["&& denotes a mnemonic"]},"Add &&Next Occurrence"),order:5}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.addSelectionToNextFindMatch(t)}}]),n}(QZ),JZ=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.addSelectionToPreviousFindMatch",label:hx.N("addSelectionToPreviousFindMatch","Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"3_multi",title:hx.N({key:"miAddSelectionToPreviousFindMatch",comment:["&& denotes a mnemonic"]},"Add P&&revious Occurrence"),order:6}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.addSelectionToPreviousFindMatch(t)}}]),n}(QZ),eF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.moveSelectionToNextFindMatch",label:hx.N("moveSelectionToNextFindMatch","Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:(0,vx.gx)(2089,2082),weight:100}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.moveSelectionToNextFindMatch(t)}}]),n}(QZ),tF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.moveSelectionToPreviousFindMatch",label:hx.N("moveSelectionToPreviousFindMatch","Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.moveSelectionToPreviousFindMatch(t)}}]),n}(QZ),nF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.selectHighlights",label:hx.N("selectAllOccurrencesOfFindMatch","Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:3114,weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"3_multi",title:hx.N({key:"miSelectHighlights",comment:["&& denotes a mnemonic"]},"Select All &&Occurrences"),order:7}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.selectAll(t)}}]),n}(QZ),iF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.changeAll",label:hx.N("changeAll.label","Change All Occurrences"),alias:"Change All Occurrences",precondition:gx.Ao.and(fx.u.writable,fx.u.editorTextFocus),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}return(0,r.Z)(n,[{key:"_run",value:function(e,t){e.selectAll(t)}}]),n}(QZ),rF=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.searchText=t,this.matchCase=n,this.wordSeparators=r,this.modelVersionId=o}return(0,r.Z)(e,null,[{key:"softEquals",value:function(e,t){return!e&&!t||!(!e||!t)&&(e.searchText===t.searchText&&e.matchCase===t.matchCase&&e.wordSeparators===t.wordSeparators&&e.modelVersionId===t.modelVersionId)}}]),e}(),oF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editor=e,r._isEnabled=e.getOption(94),r.decorations=[],r.updateSoon=r._register(new Px.pY((function(){return r._update()}),300)),r.state=null,r._register(e.onDidChangeConfiguration((function(t){r._isEnabled=e.getOption(94)}))),r._register(e.onDidChangeCursorSelection((function(e){r._isEnabled&&(e.selection.isEmpty()?3===e.reason?(r.state&&r._setState(null),r.updateSoon.schedule()):r._setState(null):r._update())}))),r._register(e.onDidChangeModel((function(e){r._setState(null)}))),r._register(e.onDidChangeModelContent((function(e){r._isEnabled&&r.updateSoon.schedule()}))),r._register(RA.get(e).getState().onFindReplaceStateChange((function(e){r._update()}))),r}return(0,r.Z)(n,[{key:"_update",value:function(){this._setState(n._createState(this._isEnabled,this.editor))}},{key:"_setState",value:function(e){if(rF.softEquals(this.state,e))this.state=e;else if(this.state=e,this.state){if(this.editor.hasModel()){var t=this.editor.getModel();if(!t.isTooLargeForTokenization()){var i=LL.vH.has(t)&&this.editor.getOption(68),r=t.findMatches(this.state.searchText,!0,!1,this.state.matchCase,this.state.wordSeparators,!1).map((function(e){return e.range}));r.sort(Fx.e.compareRangesUsingStarts);var o=this.editor.getSelections();o.sort(Fx.e.compareRangesUsingStarts);for(var a=[],s=0,u=0,l=r.length,c=o.length;s<l;){var d=r[s];if(u>=c)a.push(d),s++;else{var h=Fx.e.compareRangesUsingStarts(d,o[u]);h<0?(!o[u].isEmpty()&&Fx.e.areIntersecting(d,o[u])||a.push(d),s++):(h>0||s++,u++)}}var f=a.map((function(e){return{range:e,options:i?n._SELECTION_HIGHLIGHT:n._SELECTION_HIGHLIGHT_OVERVIEW}}));this.decorations=this.editor.deltaDecorations(this.decorations,f)}}}else this.decorations=this.editor.deltaDecorations(this.decorations,[])}},{key:"dispose",value:function(){this._setState(null),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}}],[{key:"_createState",value:function(e,t){if(!e)return null;if(!t.hasModel())return null;var n=t.getSelection();if(n.startLineNumber!==n.endLineNumber)return null;var i=$Z.get(t);if(!i)return null;var r=RA.get(t);if(!r)return null;var o=i.getSession(r);if(!o){var a=t.getSelections();if(a.length>1){var s=r.getState().matchCase;if(!aF(t.getModel(),a,s))return null}o=GZ.create(t,r)}if(!o)return null;if(o.currentMatch)return null;if(/^[ \t]+$/.test(o.searchText))return null;if(o.searchText.length>200)return null;var u=r.getState(),l=u.matchCase;if(u.isRevealed){var c=u.searchString;l||(c=c.toLowerCase());var d=o.searchText;if(l||(d=d.toLowerCase()),c===d&&o.matchCase===u.matchCase&&o.wholeWord===u.wholeWord&&!u.isRegex)return null}return new rF(o.searchText,o.matchCase,o.wholeWord?t.getOption(113):null,t.getModel().getVersionId())}}]),n}(Rx.JT);function aF(e,t,n){for(var i=sF(e,t[0],!n),r=1,o=t.length;r<o;r++){var a=t[r];if(a.isEmpty())return!1;if(i!==sF(e,a,!n))return!1}return!0}function sF(e,t,n){var i=e.getValueInRange(t);return n?i.toLowerCase():i}oF.ID="editor.contrib.selectionHighlighter",oF._SELECTION_HIGHLIGHT_OVERVIEW=Hx.qx.register({stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,Wx.EN)(zx.SP),position:jx.sh.Center}}),oF._SELECTION_HIGHLIGHT=Hx.qx.register({stickiness:1,className:"selectionHighlight"}),(0,dx._K)($Z.ID,$Z),(0,dx._K)(oF.ID,oF),(0,dx.Qr)(WZ),(0,dx.Qr)(VZ),(0,dx.Qr)(YZ),(0,dx.Qr)(XZ),(0,dx.Qr)(JZ),(0,dx.Qr)(eF),(0,dx.Qr)(tF),(0,dx.Qr)(nF),(0,dx.Qr)(iF),(0,dx.Qr)(UZ),(0,dx.Qr)(KZ);var uF=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},lF={Visible:new gx.uy("parameterHintsVisible",!1),MultipleSignatures:new gx.uy("parameterHintsMultipleSignatures",!1)};function cF(e,t,n,i){return uF(this,void 0,void 0,ki().mark((function r(){var o,a,s,u,l;return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=LL.nD.ordered(e),a=(0,Tr.Z)(o),r.prev=2,a.s();case 4:if((s=a.n()).done){r.next=19;break}return u=s.value,r.prev=6,r.next=9,u.provideSignatureHelp(e,t,i,n);case 9:if(!(l=r.sent)){r.next=12;break}return r.abrupt("return",l);case 12:r.next=17;break;case 14:r.prev=14,r.t0=r.catch(6),(0,yx.Cp)(r.t0);case 17:r.next=4;break;case 19:r.next=24;break;case 21:r.prev=21,r.t1=r.catch(2),a.e(r.t1);case 24:return r.prev=24,a.f(),r.finish(24);case 27:return r.abrupt("return",void 0);case 28:case"end":return r.stop()}}),r,null,[[2,21,24,27],[6,14]])})))}IL.P.registerCommand("_executeSignatureHelpProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return uF(void 0,void 0,void 0,ki().mark((function t(){var i,r,o,a,s;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=n[0],r=n[1],o=n[2],(0,JE.p_)(SL.o.isUri(i)),(0,JE.p_)(Zx.L.isIPosition(r)),(0,JE.p_)("string"===typeof o||!o),t.next=6,e.get(_T.S).createModelReference(i);case 6:return a=t.sent,t.prev=7,t.next=10,cF(a.object.textEditorModel,Zx.L.lift(r),{triggerKind:LL.WW.Invoke,isRetrigger:!1,triggerCharacter:o},bL.T.None);case 10:if(s=t.sent){t.next=13;break}return t.abrupt("return",void 0);case 13:return setTimeout((function(){return s.dispose()}),0),t.abrupt("return",s.value);case 15:return t.prev=15,a.dispose(),t.finish(15);case 18:case"end":return t.stop()}}),t,null,[[7,,15,18]])})))}));var dF,hF=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};!function(e){e.Default={type:0};var t=(0,r.Z)((function e(t,n){(0,i.Z)(this,e),this.request=t,this.previouslyActiveHints=n,this.type=2}));e.Pending=t;var n=(0,r.Z)((function e(t){(0,i.Z)(this,e),this.hints=t,this.type=1}));e.Active=n}(dF||(dF={}));var fF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.DEFAULT_DELAY;return(0,i.Z)(this,n),(r=t.call(this))._onChangedHints=r._register(new hE.Q5),r.onChangedHints=r._onChangedHints.event,r.triggerOnType=!1,r._state=dF.Default,r._pendingTriggers=[],r._lastSignatureHelpResult=r._register(new Rx.XK),r.triggerChars=new qP.q,r.retriggerChars=new qP.q,r.triggerId=0,r.editor=e,r.throttledDelayer=new Px.vp(o),r._register(r.editor.onDidBlurEditorWidget((function(){return r.cancel()}))),r._register(r.editor.onDidChangeConfiguration((function(){return r.onEditorConfigurationChange()}))),r._register(r.editor.onDidChangeModel((function(e){return r.onModelChanged()}))),r._register(r.editor.onDidChangeModelLanguage((function(e){return r.onModelChanged()}))),r._register(r.editor.onDidChangeCursorSelection((function(e){return r.onCursorChange(e)}))),r._register(r.editor.onDidChangeModelContent((function(e){return r.onModelContentChange()}))),r._register(LL.nD.onDidChange(r.onModelChanged,(0,yL.Z)(r))),r._register(r.editor.onDidType((function(e){return r.onDidType(e)}))),r.onEditorConfigurationChange(),r.onModelChanged(),r}return(0,r.Z)(n,[{key:"state",get:function(){return this._state},set:function(e){2===this._state.type&&this._state.request.cancel(),this._state=e}},{key:"cancel",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.state=dF.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}},{key:"trigger",value:function(e,t){var n=this,i=this.editor.getModel();if(i&&LL.nD.has(i)){var r=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger((function(){return n.doTrigger(r)}),t).catch(yx.dL)}}},{key:"next",value:function(){if(1===this.state.type){var e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=t%e===e-1,i=this.editor.getOption(72).cycle;!(e<2||n)||i?this.updateActiveSignature(n&&i?0:t+1):this.cancel()}}},{key:"previous",value:function(){if(1===this.state.type){var e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=0===t,i=this.editor.getOption(72).cycle;!(e<2||n)||i?this.updateActiveSignature(n&&i?e-1:t-1):this.cancel()}}},{key:"updateActiveSignature",value:function(e){1===this.state.type&&(this.state=new dF.Active(Object.assign(Object.assign({},this.state.hints),{activeSignature:e})),this._onChangedHints.fire(this.state.hints))}},{key:"doTrigger",value:function(e){return hF(this,void 0,void 0,ki().mark((function t(){var n,i,r,o,a,s,u;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=1===this.state.type||2===this.state.type,i=this.getLastActiveHints(),this.cancel(!0),0!==this._pendingTriggers.length){t.next=5;break}return t.abrupt("return",!1);case 5:if(r=this._pendingTriggers.reduce(pF),this._pendingTriggers=[],o={triggerKind:r.triggerKind,triggerCharacter:r.triggerCharacter,isRetrigger:n,activeSignatureHelp:i},this.editor.hasModel()){t.next=10;break}return t.abrupt("return",!1);case 10:return a=this.editor.getModel(),s=this.editor.getPosition(),this.state=new dF.Pending((0,Px.PG)((function(e){return cF(a,s,o,e)})),i),t.prev=13,t.next=16,this.state.request;case 16:if(u=t.sent,e===this.triggerId){t.next=20;break}return null===u||void 0===u||u.dispose(),t.abrupt("return",!1);case 20:if(u&&u.value.signatures&&0!==u.value.signatures.length){t.next=27;break}return null===u||void 0===u||u.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),t.abrupt("return",!1);case 27:return this.state=new dF.Active(u.value),this._lastSignatureHelpResult.value=u,this._onChangedHints.fire(this.state.hints),t.abrupt("return",!0);case 31:t.next=38;break;case 33:return t.prev=33,t.t0=t.catch(13),e===this.triggerId&&(this.state=dF.Default),(0,yx.dL)(t.t0),t.abrupt("return",!1);case 38:case"end":return t.stop()}}),t,this,[[13,33]])})))}},{key:"getLastActiveHints",value:function(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}},{key:"isTriggered",get:function(){return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()}},{key:"onModelChanged",value:function(){this.cancel(),this.triggerChars=new qP.q,this.retriggerChars=new qP.q;var e=this.editor.getModel();if(e){var t,n=(0,Tr.Z)(LL.nD.ordered(e));try{for(n.s();!(t=n.n()).done;){var i,r=t.value,o=(0,Tr.Z)(r.signatureHelpTriggerCharacters||[]);try{for(o.s();!(i=o.n()).done;){var a=i.value;this.triggerChars.add(a.charCodeAt(0)),this.retriggerChars.add(a.charCodeAt(0))}}catch(c){o.e(c)}finally{o.f()}var s,u=(0,Tr.Z)(r.signatureHelpRetriggerCharacters||[]);try{for(u.s();!(s=u.n()).done;){var l=s.value;this.retriggerChars.add(l.charCodeAt(0))}}catch(c){u.e(c)}finally{u.f()}}}catch(c){n.e(c)}finally{n.f()}}}},{key:"onDidType",value:function(e){if(this.triggerOnType){var t=e.length-1,n=e.charCodeAt(t);(this.triggerChars.has(n)||this.isTriggered&&this.retriggerChars.has(n))&&this.trigger({triggerKind:LL.WW.TriggerCharacter,triggerCharacter:e.charAt(t)})}}},{key:"onCursorChange",value:function(e){"mouse"===e.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:LL.WW.ContentChange})}},{key:"onModelContentChange",value:function(){this.isTriggered&&this.trigger({triggerKind:LL.WW.ContentChange})}},{key:"onEditorConfigurationChange",value:function(){this.triggerOnType=this.editor.getOption(72).enabled,this.triggerOnType||this.cancel()}},{key:"dispose",value:function(){this.cancel(!0),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}}]),n}(Rx.JT);function pF(e,t){switch(t.triggerKind){case LL.WW.Invoke:return t;case LL.WW.ContentChange:return e;case LL.WW.TriggerCharacter:default:return t}}fF.DEFAULT_DELAY=120;var vF=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},gF=function(e,t){return function(n,i){t(n,i,e)}},mF=eE.$,_F=(0,dM.q5)("parameter-hints-next",pE.lA.chevronDown,hx.N("parameterHintsNextIcon","Icon for show next parameter hint.")),yF=(0,dM.q5)("parameter-hints-previous",pE.lA.chevronUp,hx.N("parameterHintsPreviousIcon","Icon for show previous parameter hint.")),bF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this)).editor=e,s.renderDisposeables=s._register(new Rx.SL),s.visible=!1,s.announcedLabel=null,s.allowEditorOverflow=!0,s.markdownRenderer=s._register(new WM({editor:e},a,o)),s.model=s._register(new fF(e)),s.keyVisible=lF.Visible.bindTo(r),s.keyMultipleSignatures=lF.MultipleSignatures.bindTo(r),s._register(s.model.onChangedHints((function(e){e?(s.show(),s.render(e)):s.hide()}))),s}return(0,r.Z)(n,[{key:"createParamaterHintDOMNodes",value:function(){var e=this,t=mF(".editor-widget.parameter-hints-widget"),n=eE.append(t,mF(".phwrapper"));n.tabIndex=-1;var i=eE.append(n,mF(".controls")),r=eE.append(i,mF(".button"+Wx.kS.asCSSSelector(yF))),o=eE.append(i,mF(".overloads")),a=eE.append(i,mF(".button"+Wx.kS.asCSSSelector(_F))),s=(0,dD.sT)((0,dD.jt)(r,"click"));this._register(s(this.previous,this));var u=(0,dD.sT)((0,dD.jt)(a,"click"));this._register(u(this.next,this));var l=mF(".body"),c=new zN.s$(l,{});this._register(c),n.appendChild(c.getDomNode());var d=eE.append(l,mF(".signature")),h=eE.append(l,mF(".docs"));t.style.userSelect="text",this.domNodes={element:t,signature:d,overloads:o,docs:h,scrollbar:c},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((function(t){e.visible&&e.editor.layoutContentWidget(e)})));var f=function(){if(e.domNodes){var t=e.editor.getOption(40);e.domNodes.element.style.fontSize="".concat(t.fontSize,"px")}};f(),this._register(hE.ju.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((function(e){return e.hasChanged(40)})).on(f,null)),this._register(this.editor.onDidLayoutChange((function(t){return e.updateMaxHeight()}))),this.updateMaxHeight()}},{key:"show",value:function(){var e=this;this.visible||(this.domNodes||this.createParamaterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout((function(){e.domNodes&&e.domNodes.element.classList.add("visible")}),100),this.editor.layoutContentWidget(this))}},{key:"hide",value:function(){this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes&&this.domNodes.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}},{key:"getPosition",value:function(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}},{key:"render",value:function(e){var t;if(this.renderDisposeables.clear(),this.domNodes){var n=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",n),this.keyMultipleSignatures.set(n),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";var i=e.signatures[e.activeSignature];if(i){var r=eE.append(this.domNodes.signature,mF(".code")),o=this.editor.getOption(40);r.style.fontSize="".concat(o.fontSize,"px"),r.style.fontFamily=o.fontFamily;var a=i.parameters.length>0,s=null!==(t=i.activeParameter)&&void 0!==t?t:e.activeParameter;if(a)this.renderParameters(r,i,s);else eE.append(r,mF("span")).textContent=i.label;var u=i.parameters[s];if(null===u||void 0===u?void 0:u.documentation){var l=mF("span.documentation");if("string"===typeof u.documentation)l.textContent=u.documentation;else{var c=this.renderMarkdownDocs(u.documentation);l.appendChild(c.element)}eE.append(this.domNodes.docs,mF("p",{},l))}if(void 0===i.documentation);else if("string"===typeof i.documentation)eE.append(this.domNodes.docs,mF("p",{},i.documentation));else{var d=this.renderMarkdownDocs(i.documentation);eE.append(this.domNodes.docs,d.element)}var h=this.hasDocs(i,u);if(this.domNodes.signature.classList.toggle("has-docs",h),this.domNodes.docs.classList.toggle("empty",!h),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,u){var f=this.getParameterLabel(i,s);this.announcedLabel!==f&&(xx.Z9(hx.N("hint","{0}, hint",f)),this.announcedLabel=f)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}}}},{key:"renderMarkdownDocs",value:function(e){var t=this,n=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:function(){var e;null===(e=t.domNodes)||void 0===e||e.scrollbar.scanDomNode()}}));return n.element.classList.add("markdown-docs"),n}},{key:"hasDocs",value:function(e,t){return!!(t&&"string"===typeof t.documentation&&(0,JE.cW)(t.documentation).length>0)||(!!(t&&"object"===typeof t.documentation&&(0,JE.cW)(t.documentation).value.length>0)||(!!(e.documentation&&"string"===typeof e.documentation&&(0,JE.cW)(e.documentation).length>0)||!!(e.documentation&&"object"===typeof e.documentation&&(0,JE.cW)(e.documentation.value).length>0)))}},{key:"renderParameters",value:function(e,t,n){var i=this.getParameterLabelOffsets(t,n),r=(0,dt.Z)(i,2),o=r[0],a=r[1],s=document.createElement("span");s.textContent=t.label.substring(0,o);var u=document.createElement("span");u.textContent=t.label.substring(o,a),u.className="parameter active";var l=document.createElement("span");l.textContent=t.label.substring(a),eE.append(e,s,u,l)}},{key:"getParameterLabel",value:function(e,t){var n=e.parameters[t];return Array.isArray(n.label)?e.label.substring(n.label[0],n.label[1]):n.label}},{key:"getParameterLabelOffsets",value:function(e,t){var n=e.parameters[t];if(n){if(Array.isArray(n.label))return n.label;if(n.label.length){var i=new RegExp("(\\W|^)".concat((0,CL.ec)(n.label),"(?=\\W|$)"),"g");i.test(e.label);var r=i.lastIndex-n.label.length;return r>=0?[r,i.lastIndex]:[0,0]}return[0,0]}return[0,0]}},{key:"next",value:function(){this.editor.focus(),this.model.next()}},{key:"previous",value:function(){this.editor.focus(),this.model.previous()}},{key:"cancel",value:function(){this.model.cancel()}},{key:"getDomNode",value:function(){return this.domNodes||this.createParamaterHintDOMNodes(),this.domNodes.element}},{key:"getId",value:function(){return n.ID}},{key:"trigger",value:function(e){this.model.trigger(e,0)}},{key:"updateMaxHeight",value:function(){if(this.domNodes){var e=Math.max(this.editor.getLayoutInfo().height/4,250),t="".concat(e,"px");this.domNodes.element.style.maxHeight=t;var n=this.domNodes.element.getElementsByClassName("phwrapper");n.length&&(n[0].style.maxHeight=t)}}}]),n}(Rx.JT);bF.ID="editor.widget.parameterHintsWidget",bF=vF([gF(1,gx.i6),gF(2,UN.v4),gF(3,MN.h)],bF),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.CN);if(n){var i=e.type===KL.e.HIGH_CONTRAST?2:1;t.addRule(".monaco-editor .parameter-hints-widget { border: ".concat(i,"px solid ").concat(n,"; }")),t.addRule(".monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid ".concat(n.transparent(.5),"; }")),t.addRule(".monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid ".concat(n.transparent(.5),"; }"))}var r=e.getColor(zx.yJ);r&&t.addRule(".monaco-editor .parameter-hints-widget { background-color: ".concat(r,"; }"));var o=e.getColor(zx.ur);o&&t.addRule(".monaco-editor .parameter-hints-widget a { color: ".concat(o,"; }"));var a=e.getColor(zx.Sb);a&&t.addRule(".monaco-editor .parameter-hints-widget { color: ".concat(a,"; }"));var s=e.getColor(zx.Sw);s&&t.addRule(".monaco-editor .parameter-hints-widget code { background-color: ".concat(s,"; }"))}));var wF=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},CF=function(e,t){return function(n,i){t(n,i,e)}},kF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this)).editor=e,o.widget=o._register(r.createInstance(bF,o.editor)),o}return(0,r.Z)(n,[{key:"cancel",value:function(){this.widget.cancel()}},{key:"previous",value:function(){this.widget.previous()}},{key:"next",value:function(){this.widget.next()}},{key:"trigger",value:function(e){this.widget.trigger(e)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);kF.ID="editor.controller.parameterHints",kF=wF([CF(1,JL.TG)],kF);var SF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.triggerParameterHints",label:hx.N("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:fx.u.hasSignatureHelpProvider,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:3082,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=kF.get(t);n&&n.trigger({triggerKind:LL.WW.Invoke})}}]),n}(dx.R6);(0,dx._K)(kF.ID,kF),(0,dx.Qr)(SF);var xF=dx._l.bindToContribution(kF.get);(0,dx.fK)(new xF({id:"closeParameterHints",precondition:lF.Visible,handler:function(e){return e.cancel()},kbOpts:{weight:175,kbExpr:fx.u.focus,primary:9,secondary:[1033]}})),(0,dx.fK)(new xF({id:"showPrevParameterHint",precondition:gx.Ao.and(lF.Visible,lF.MultipleSignatures),handler:function(e){return e.previous()},kbOpts:{weight:175,kbExpr:fx.u.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),(0,dx.fK)(new xF({id:"showNextParameterHint",precondition:gx.Ao.and(lF.Visible,lF.MultipleSignatures),handler:function(e){return e.next()},kbOpts:{weight:175,kbExpr:fx.u.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var LF=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},EF=function(e,t){return function(n,i){t(n,i,e)}},NF=new gx.uy("renameInputVisible",!1,(0,hx.N)("renameInputVisible","Whether the rename input widget is visible")),DF=function(){function e(t,n,r,o,a){var s=this;(0,i.Z)(this,e),this._editor=t,this._acceptKeybindings=n,this._themeService=r,this._keybindingService=o,this._disposables=new Rx.SL,this.allowEditorOverflow=!0,this._visibleContextKey=NF.bindTo(a),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&s._updateFont()}))),this._disposables.add(r.onDidColorThemeChange(this._updateStyles,this))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this._editor.removeContentWidget(this)}},{key:"getId",value:function(){return"__renameInputWidget"}},{key:"getDomNode",value:function(){var e=this;if(!this._domNode){this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",(0,hx.N)("renameAriaLabel","Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._input),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label);var t=function(){var t,n,i=(0,dt.Z)(e._acceptKeybindings,2),r=i[0],o=i[1];e._keybindingService.lookupKeybinding(r),e._label.innerText=(0,hx.N)({key:"label",comment:['placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"']},"{0} to Rename, {1} to Preview",null===(t=e._keybindingService.lookupKeybinding(r))||void 0===t?void 0:t.getLabel(),null===(n=e._keybindingService.lookupKeybinding(o))||void 0===n?void 0:n.getLabel())};t(),this._disposables.add(this._keybindingService.onDidUpdateKeybindings(t)),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())}return this._domNode}},{key:"_updateStyles",value:function(e){var t,n,i,r;if(this._input&&this._domNode){var o=e.getColor(zx.rh);this._domNode.style.backgroundColor=String(null!==(t=e.getColor(zx.D0))&&void 0!==t?t:""),this._domNode.style.boxShadow=o?" 0 0 8px 2px ".concat(o):"",this._domNode.style.color=String(null!==(n=e.getColor(zx.zJ))&&void 0!==n?n:""),this._input.style.backgroundColor=String(null!==(i=e.getColor(zx.sE))&&void 0!==i?i:"");var a=e.getColor(zx.dt);this._input.style.borderWidth=a?"1px":"0px",this._input.style.borderStyle=a?"solid":"none",this._input.style.borderColor=null!==(r=null===a||void 0===a?void 0:a.toString())&&void 0!==r?r:"none"}}},{key:"_updateFont",value:function(){if(this._input&&this._label){var e=this._editor.getOption(40);this._input.style.fontFamily=e.fontFamily,this._input.style.fontWeight=e.fontWeight,this._input.style.fontSize="".concat(e.fontSize,"px"),this._label.style.fontSize="".concat(.8*e.fontSize,"px")}}},{key:"getPosition",value:function(){return this._visible?{position:this._position,preference:[2,1]}:null}},{key:"afterRender",value:function(e){e||this.cancelInput(!0)}},{key:"acceptInput",value:function(e){this._currentAcceptInput&&this._currentAcceptInput(e)}},{key:"cancelInput",value:function(e){this._currentCancelInput&&this._currentCancelInput(e)}},{key:"getInput",value:function(e,t,n,i,r,o){var a=this;this._domNode.classList.toggle("preview",r),this._position=new Zx.L(e.startLineNumber,e.startColumn),this._input.value=t,this._input.setAttribute("selectionStart",n.toString()),this._input.setAttribute("selectionEnd",i.toString()),this._input.size=Math.max(1.1*(e.endColumn-e.startColumn),20);var s=new Rx.SL;return new Promise((function(e){a._currentCancelInput=function(t){return a._currentAcceptInput=void 0,a._currentCancelInput=void 0,e(t),!0},a._currentAcceptInput=function(n){0!==a._input.value.trim().length&&a._input.value!==t?(a._currentAcceptInput=void 0,a._currentCancelInput=void 0,e({newName:a._input.value,wantsPreview:r&&n})):a.cancelInput(!0)},o.onCancellationRequested((function(){return a.cancelInput(!0)})),s.add(a._editor.onDidBlurEditorWidget((function(){return a.cancelInput(!1)}))),a._show()})).finally((function(){s.dispose(),a._hide()}))}},{key:"_show",value:function(){var e=this;this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout((function(){e._input.focus(),e._input.setSelectionRange(parseInt(e._input.getAttribute("selectionStart")),parseInt(e._input.getAttribute("selectionEnd")))}),100)}},{key:"_hide",value:function(){this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}}]),e}();DF=LF([EF(2,Wx.XE),EF(3,iE.d),EF(4,gx.i6)],DF);var MF=n(19974),TF=n(38774),OF=n(72885),IF=n(45862),AF=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},PF=function(e,t){return function(n,i){t(n,i,e)}},RF=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},ZF=function(){function e(t,n){(0,i.Z)(this,e),this.model=t,this.position=n,this._providerRenameIdx=0,this._providers=LL.G0.ordered(t)}return(0,r.Z)(e,[{key:"hasProvider",value:function(){return this._providers.length>0}},{key:"resolveRenameLocation",value:function(e){return RF(this,void 0,void 0,ki().mark((function t(){var n,i,r,o;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=[],this._providerRenameIdx=0;case 2:if(!(this._providerRenameIdx<this._providers.length)){t.next=18;break}if((i=this._providers[this._providerRenameIdx]).resolveRenameLocation){t.next=6;break}return t.abrupt("break",18);case 6:return t.next=8,i.resolveRenameLocation(this.model,this.position,e);case 8:if(r=t.sent){t.next=11;break}return t.abrupt("continue",15);case 11:if(!r.rejectReason){t.next=14;break}return n.push(r.rejectReason),t.abrupt("continue",15);case 14:return t.abrupt("return",r);case 15:this._providerRenameIdx++,t.next=2;break;case 18:if(o=this.model.getWordAtPosition(this.position)){t.next=21;break}return t.abrupt("return",{range:Fx.e.fromPositions(this.position),text:"",rejectReason:n.length>0?n.join("\n"):void 0});case 21:return t.abrupt("return",{range:new Fx.e(this.position.lineNumber,o.startColumn,this.position.lineNumber,o.endColumn),text:o.word,rejectReason:n.length>0?n.join("\n"):void 0});case 22:case"end":return t.stop()}}),t,this)})))}},{key:"provideRenameEdits",value:function(e,t){return RF(this,void 0,void 0,ki().mark((function n(){return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",this._provideRenameEdits(e,this._providerRenameIdx,[],t));case 1:case"end":return n.stop()}}),n,this)})))}},{key:"_provideRenameEdits",value:function(e,t,n,i){return RF(this,void 0,void 0,ki().mark((function r(){var o,a;return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=this._providers[t]){r.next=3;break}return r.abrupt("return",{edits:[],rejectReason:n.join("\n")});case 3:return r.next=5,o.provideRenameEdits(this.model,this.position,e,i);case 5:if(a=r.sent){r.next=10;break}return r.abrupt("return",this._provideRenameEdits(e,t+1,n.concat(hx.N("no result","No result.")),i));case 10:if(!a.rejectReason){r.next=12;break}return r.abrupt("return",this._provideRenameEdits(e,t+1,n.concat(a.rejectReason),i));case 12:return r.abrupt("return",a);case 13:case"end":return r.stop()}}),r,this)})))}}]),e}();var FF=function(){function e(t,n,r,o,a,s,u){var l=this;(0,i.Z)(this,e),this.editor=t,this._instaService=n,this._notificationService=r,this._bulkEditService=o,this._progressService=a,this._logService=s,this._configService=u,this._dispoableStore=new Rx.SL,this._cts=new bL.A,this._renameInputField=this._dispoableStore.add(new Px.Ue((function(){return l._dispoableStore.add(l._instaService.createInstance(DF,l.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._dispoableStore.dispose(),this._cts.dispose(!0)}},{key:"run",value:function(){return RF(this,void 0,void 0,ki().mark((function e(){var t,n,i,r,o,a,s,u,l,c,d=this;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._cts.dispose(!0),this.editor.hasModel()){e.next=3;break}return e.abrupt("return",void 0);case 3:if(t=this.editor.getPosition(),(n=new ZF(this.editor.getModel(),t)).hasProvider()){e.next=7;break}return e.abrupt("return",void 0);case 7:return this._cts=new xL.Dl(this.editor,5),e.prev=8,r=n.resolveRenameLocation(this._cts.token),this._progressService.showWhile(r,250),e.next=13,r;case 13:i=e.sent,e.next=20;break;case 16:return e.prev=16,e.t0=e.catch(8),$L.get(this.editor).showMessage(e.t0||hx.N("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),t),e.abrupt("return",void 0);case 20:if(i){e.next=22;break}return e.abrupt("return",void 0);case 22:if(!i.rejectReason){e.next=25;break}return $L.get(this.editor).showMessage(i.rejectReason,t),e.abrupt("return",void 0);case 25:if(!this._cts.token.isCancellationRequested){e.next=27;break}return e.abrupt("return",void 0);case 27:return this._cts.dispose(),this._cts=new xL.Dl(this.editor,5,i.range),o=this.editor.getSelection(),a=0,s=i.text.length,Fx.e.isEmpty(o)||Fx.e.spansMultipleLines(o)||!Fx.e.containsRange(i.range,o)||(a=Math.max(0,o.startColumn-i.range.startColumn),s=Math.min(i.range.endColumn,o.endColumn)-i.range.startColumn),u=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),e.next=36,this._renameInputField.value.getInput(i.range,i.text,a,s,u,this._cts.token);case 36:if("boolean"!==typeof(l=e.sent)){e.next=40;break}return l&&this.editor.focus(),e.abrupt("return",void 0);case 40:return this.editor.focus(),c=(0,Px.eP)(n.provideRenameEdits(l.newName,this._cts.token),this._cts.token).then((function(e){return RF(d,void 0,void 0,ki().mark((function t(){var n=this;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e&&this.editor.hasModel()){t.next=2;break}return t.abrupt("return");case 2:if(!e.rejectReason){t.next=5;break}return this._notificationService.info(e.rejectReason),t.abrupt("return");case 5:this._bulkEditService.apply(kL.fo.convert(e),{editor:this.editor,showPreview:l.wantsPreview,label:hx.N("label","Renaming '{0}'",null===i||void 0===i?void 0:i.text),quotableLabel:hx.N("quotableLabel","Renaming {0}",null===i||void 0===i?void 0:i.text)}).then((function(e){e.ariaSummary&&(0,xx.Z9)(hx.N("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",i.text,l.newName,e.ariaSummary))})).catch((function(e){n._notificationService.error(hx.N("rename.failedApply","Rename failed to apply edits")),n._logService.error(e)}));case 6:case"end":return t.stop()}}),t,this)})))}),(function(e){d._notificationService.error(hx.N("rename.failed","Rename failed to compute edits")),d._logService.error(e)})),this._progressService.showWhile(c,250),e.abrupt("return",c);case 44:case"end":return e.stop()}}),e,this,[[8,16]])})))}},{key:"acceptRenameInput",value:function(e){this._renameInputField.value.acceptInput(e)}},{key:"cancelRenameInput",value:function(){this._renameInputField.value.cancelInput(!0)}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();FF.ID="editor.contrib.renameController",FF=AF([PF(1,JL.TG),PF(2,NE.lT),PF(3,kL.vu),PF(4,OL.e),PF(5,MF.VZ),PF(6,IF.V)],FF);var jF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.rename",label:hx.N("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:gx.Ao.and(fx.u.writable,fx.u.hasRenameProvider),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}return(0,r.Z)(n,[{key:"runCommand",value:function(e,t){var i=this,r=e.get(aL.$),o=Array.isArray(t)&&t||[void 0,void 0],a=(0,dt.Z)(o,2),s=a[0],u=a[1];return SL.o.isUri(s)&&Zx.L.isIPosition(u)?r.openCodeEditor({resource:s},r.getActiveCodeEditor()).then((function(e){e&&(e.setPosition(u),e.invokeWithinContext((function(t){return i.reportTelemetry(t,e),i.run(t,e)})))}),yx.dL):(0,YL.Z)((0,UL.Z)(n.prototype),"runCommand",this).call(this,e,t)}},{key:"run",value:function(e,t){var n=FF.get(t);return n?n.run():Promise.resolve()}}]),n}(dx.R6);(0,dx._K)(FF.ID,FF),(0,dx.Qr)(jF);var HF=dx._l.bindToContribution(FF.get);(0,dx.fK)(new HF({id:"acceptRenameInput",precondition:NF,handler:function(e){return e.acceptRenameInput(!1)},kbOpts:{weight:199,kbExpr:fx.u.focus,primary:3}})),(0,dx.fK)(new HF({id:"acceptRenameInputWithPreview",precondition:gx.Ao.and(NF,gx.Ao.has("config.editor.rename.enablePreview")),handler:function(e){return e.acceptRenameInput(!0)},kbOpts:{weight:199,kbExpr:fx.u.focus,primary:1027}})),(0,dx.fK)(new HF({id:"cancelRenameInput",precondition:NF,handler:function(e){return e.cancelRenameInput()},kbOpts:{weight:199,kbExpr:fx.u.focus,primary:9,secondary:[1033]}})),(0,dx.sb)("_executeDocumentRenameProvider",(function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];var o=i[0];return(0,JE.p_)("string"===typeof o),function(e,t,n){return RF(this,void 0,void 0,ki().mark((function i(){var r,o;return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return r=new ZF(e,t),i.next=3,r.resolveRenameLocation(bL.T.None);case 3:if(!(null===(o=i.sent)||void 0===o?void 0:o.rejectReason)){i.next=6;break}return i.abrupt("return",{edits:[],rejectReason:o.rejectReason});case 6:return i.abrupt("return",r.provideRenameEdits(n,bL.T.None));case 7:case"end":return i.stop()}}),i)})))}(e,t,o)})),TF.B.as(OF.IP.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:hx.N("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var BF=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"provideSelectionRanges",value:function(e,t){var n,i=[],r=(0,Tr.Z)(t);try{for(r.s();!(n=r.n()).done;){var o=n.value,a=[];i.push(a),this._addInWordRanges(a,e,o),this._addWordRanges(a,e,o),this._addWhitespaceLine(a,e,o),a.push({range:e.getFullModelRange()})}}catch(s){r.e(s)}finally{r.f()}return i}},{key:"_addInWordRanges",value:function(e,t,n){var i=t.getWordAtPosition(n);if(i){for(var r=i.word,o=i.startColumn,a=n.column-o,s=a,u=a,l=0;s>=0;s--){var c=r.charCodeAt(s);if(s!==a&&(95===c||45===c))break;if((0,CL.mK)(c)&&(0,CL.df)(l))break;l=c}for(s+=1;u<r.length;u++){var d=r.charCodeAt(u);if((0,CL.df)(d)&&(0,CL.mK)(l))break;if(95===d||45===d)break;l=d}s<u&&e.push({range:new Fx.e(n.lineNumber,o+s,n.lineNumber,o+u)})}}},{key:"_addWordRanges",value:function(e,t,n){var i=t.getWordAtPosition(n);i&&e.push({range:new Fx.e(n.lineNumber,i.startColumn,n.lineNumber,i.endColumn)})}},{key:"_addWhitespaceLine",value:function(e,t,n){t.getLineLength(n.lineNumber)>0&&0===t.getLineFirstNonWhitespaceColumn(n.lineNumber)&&0===t.getLineLastNonWhitespaceColumn(n.lineNumber)&&e.push({range:new Fx.e(n.lineNumber,1,n.lineNumber,t.getLineMaxColumn(n.lineNumber))})}}]),e}(),zF=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},WF=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"provideSelectionRanges",value:function(t,n){return zF(this,void 0,void 0,ki().mark((function i(){var r,o,a,s;return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r=[],o=(0,Tr.Z)(n),i.prev=2,s=ki().mark((function n(){var i,o,s;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i=a.value,o=[],r.push(o),s=new Map,n.next=6,new Promise((function(n){return e._bracketsRightYield(n,0,t,i,s)}));case 6:return n.next=8,new Promise((function(n){return e._bracketsLeftYield(n,0,t,i,s,o)}));case 8:case"end":return n.stop()}}),n)})),o.s();case 5:if((a=o.n()).done){i.next=9;break}return i.delegateYield(s(),"t0",7);case 7:i.next=5;break;case 9:i.next=14;break;case 11:i.prev=11,i.t1=i.catch(2),o.e(i.t1);case 14:return i.prev=14,o.f(),i.finish(14);case 17:return i.abrupt("return",r);case 18:case"end":return i.stop()}}),i,null,[[2,11,14,17]])})))}}],[{key:"_bracketsRightYield",value:function(t,n,i,r,o){for(var a=new Map,s=Date.now();;){if(n>=e._maxRounds){t();break}if(!r){t();break}var u=i.findNextBracket(r);if(!u){t();break}if(Date.now()-s>e._maxDuration){setTimeout((function(){return e._bracketsRightYield(t,n+1,i,r,o)}));break}var l=u.close[0];if(u.isOpen){var c=a.has(l)?a.get(l):0;a.set(l,c+1)}else{var d=a.has(l)?a.get(l):0;if(d-=1,a.set(l,Math.max(0,d)),d<0){var h=o.get(l);h||(h=new rM.S,o.set(l,h)),h.push(u.range)}}r=u.range.getEndPosition()}}},{key:"_bracketsLeftYield",value:function(t,n,i,r,o,a){for(var s=new Map,u=Date.now();;){if(n>=e._maxRounds&&0===o.size){t();break}if(!r){t();break}var l=i.findPrevBracket(r);if(!l){t();break}if(Date.now()-u>e._maxDuration){setTimeout((function(){return e._bracketsLeftYield(t,n+1,i,r,o,a)}));break}var c=l.close[0];if(l.isOpen){var d=s.has(c)?s.get(c):0;if(d-=1,s.set(c,Math.max(0,d)),d<0){var h=o.get(c);if(h){var f=h.shift();0===h.size&&o.delete(c);var p=Fx.e.fromPositions(l.range.getEndPosition(),f.getStartPosition()),v=Fx.e.fromPositions(l.range.getStartPosition(),f.getEndPosition());a.push({range:p}),a.push({range:v}),e._addBracketLeading(i,v,a)}}}else{var g=s.has(c)?s.get(c):0;s.set(c,g+1)}r=l.range.getStartPosition()}}},{key:"_addBracketLeading",value:function(e,t,n){if(t.startLineNumber!==t.endLineNumber){var i=t.startLineNumber,r=e.getLineFirstNonWhitespaceColumn(i);0!==r&&r!==t.startColumn&&(n.push({range:Fx.e.fromPositions(new Zx.L(i,r),t.getEndPosition())}),n.push({range:Fx.e.fromPositions(new Zx.L(i,1),t.getEndPosition())}));var o=i-1;if(o>0){var a=e.getLineFirstNonWhitespaceColumn(o);a===t.startColumn&&a!==e.getLineLastNonWhitespaceColumn(o)&&(n.push({range:Fx.e.fromPositions(new Zx.L(o,a),t.getEndPosition())}),n.push({range:Fx.e.fromPositions(new Zx.L(o,1),t.getEndPosition())}))}}}}]),e}();WF._maxDuration=30,WF._maxRounds=2;var VF=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},YF=function(){function e(t,n){(0,i.Z)(this,e),this.index=t,this.ranges=n}return(0,r.Z)(e,[{key:"mov",value:function(t){var n=this.index+(t?1:-1);if(n<0||n>=this.ranges.length)return this;var i=new e(n,this.ranges);return i.ranges[n].equalsRange(this.ranges[this.index])?i.mov(t):i}}]),e}(),UF=function(){function e(t){(0,i.Z)(this,e),this._editor=t,this._ignoreSelection=!1}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;null===(e=this._selectionListener)||void 0===e||e.dispose()}},{key:"run",value:function(e){return VF(this,void 0,void 0,ki().mark((function t(){var n,i,r,o=this;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this._editor.hasModel()){t.next=2;break}return t.abrupt("return");case 2:if(n=this._editor.getSelections(),i=this._editor.getModel(),LL.AC.has(i)){t.next=6;break}return t.abrupt("return");case 6:if(this._state){t.next=9;break}return t.next=9,QF(i,n.map((function(e){return e.getPosition()})),this._editor.getOption(99),bL.T.None).then((function(e){var t;if(mx.Of(e)&&e.length===n.length&&o._editor.hasModel()&&mx.fS(o._editor.getSelections(),n,(function(e,t){return e.equalsSelection(t)}))){for(var i=function(t){e[t]=e[t].filter((function(e){return e.containsPosition(n[t].getStartPosition())&&e.containsPosition(n[t].getEndPosition())})),e[t].unshift(n[t])},r=0;r<e.length;r++)i(r);o._state=e.map((function(e){return new YF(0,e)})),null===(t=o._selectionListener)||void 0===t||t.dispose(),o._selectionListener=o._editor.onDidChangeCursorPosition((function(){var e;o._ignoreSelection||(null===(e=o._selectionListener)||void 0===e||e.dispose(),o._state=void 0)}))}}));case 9:if(this._state){t.next=11;break}return t.abrupt("return");case 11:this._state=this._state.map((function(t){return t.mov(e)})),r=this._state.map((function(e){return px.Y.fromPositions(e.ranges[e.index].getStartPosition(),e.ranges[e.index].getEndPosition())})),this._ignoreSelection=!0;try{this._editor.setSelections(r)}finally{this._ignoreSelection=!1}case 15:case"end":return t.stop()}}),t,this)})))}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();UF.ID="editor.contrib.smartSelectController";var KF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r))._forward=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){return VF(this,void 0,void 0,ki().mark((function e(){var n;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=UF.get(t))){e.next=4;break}return e.next=4,n.run(this._forward);case 4:case"end":return e.stop()}}),e,this)})))}}]),n}(dx.R6),qF=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.smartSelect.expand",label:hx.N("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"1_basic",title:hx.N({key:"miSmartSelectGrow",comment:["&& denotes a mnemonic"]},"&&Expand Selection"),order:2}})}return(0,r.Z)(n)}(KF);IL.P.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");var GF,$F=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.smartSelect.shrink",label:hx.N("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:Vx.eH.MenubarSelectionMenu,group:"1_basic",title:hx.N({key:"miSmartSelectShrink",comment:["&& denotes a mnemonic"]},"&&Shrink Selection"),order:3}})}return(0,r.Z)(n)}(KF);function QF(e,t,n,i){return VF(this,void 0,void 0,ki().mark((function r(){var o,a,s,u,l,c;return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:1===(o=LL.AC.all(e)).length&&o.unshift(new WF),a=[],s=[],u=(0,Tr.Z)(o);try{for(u.s();!(l=u.n()).done;)c=l.value,a.push(Promise.resolve(c.provideSelectionRanges(e,t,i)).then((function(e){if(mx.Of(e)&&e.length===t.length)for(var n=0;n<t.length;n++){s[n]||(s[n]=[]);var i,r=(0,Tr.Z)(e[n]);try{for(r.s();!(i=r.n()).done;){var o=i.value;Fx.e.isIRange(o.range)&&Fx.e.containsPosition(o.range,t[n])&&s[n].push(Fx.e.lift(o.range))}}catch(a){r.e(a)}finally{r.f()}}}),yx.Cp))}catch(d){u.e(d)}finally{u.f()}return r.next=8,Promise.all(a);case 8:return r.abrupt("return",s.map((function(t){if(0===t.length)return[];t.sort((function(e,t){return Zx.L.isBefore(e.getStartPosition(),t.getStartPosition())?1:Zx.L.isBefore(t.getStartPosition(),e.getStartPosition())||Zx.L.isBefore(e.getEndPosition(),t.getEndPosition())?-1:Zx.L.isBefore(t.getEndPosition(),e.getEndPosition())?1:0}));var i,r,o=[],a=(0,Tr.Z)(t);try{for(a.s();!(r=a.n()).done;){var s=r.value;(!i||Fx.e.containsRange(s,i)&&!Fx.e.equalsRange(s,i))&&(o.push(s),i=s)}}catch(d){a.e(d)}finally{a.f()}if(!n.selectLeadingAndTrailingWhitespace)return o;for(var u=[o[0]],l=1;l<o.length;l++){var c=o[l-1],h=o[l];if(h.startLineNumber!==c.startLineNumber||h.endLineNumber!==c.endLineNumber){var f=new Fx.e(c.startLineNumber,e.getLineFirstNonWhitespaceColumn(c.startLineNumber),c.endLineNumber,e.getLineLastNonWhitespaceColumn(c.endLineNumber));f.containsRange(c)&&!f.equalsRange(c)&&h.containsRange(f)&&!h.equalsRange(f)&&u.push(f);var p=new Fx.e(c.startLineNumber,1,c.endLineNumber,e.getLineMaxColumn(c.endLineNumber));p.containsRange(c)&&!p.equalsRange(f)&&h.containsRange(p)&&!h.equalsRange(p)&&u.push(p)}u.push(h)}return u})));case 9:case"end":return r.stop()}}),r)})))}(0,dx._K)(UF.ID,UF),(0,dx.Qr)(qF),(0,dx.Qr)($F),LL.AC.register("*",new BF),(0,dx.f)("_executeSelectionRangeProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return QF(e,n[0],{selectLeadingAndTrailingWhitespace:!0},bL.T.None)}));var XF=function(){function e(){(0,i.Z)(this,e),this.value="",this.pos=0}return(0,r.Z)(e,[{key:"text",value:function(e){this.value=e,this.pos=0}},{key:"tokenText",value:function(e){return this.value.substr(e.pos,e.len)}},{key:"next",value:function(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};var t,n=this.pos,i=0,r=this.value.charCodeAt(n);if("number"===typeof(t=e._table[r]))return this.pos+=1,{type:t,pos:n,len:1};if(e.isDigitCharacter(r)){t=8;do{i+=1,r=this.value.charCodeAt(n+i)}while(e.isDigitCharacter(r));return this.pos+=i,{type:t,pos:n,len:i}}if(e.isVariableCharacter(r)){t=9;do{r=this.value.charCodeAt(n+ ++i)}while(e.isVariableCharacter(r)||e.isDigitCharacter(r));return this.pos+=i,{type:t,pos:n,len:i}}t=10;do{i+=1,r=this.value.charCodeAt(n+i)}while(!isNaN(r)&&"undefined"===typeof e._table[r]&&!e.isDigitCharacter(r)&&!e.isVariableCharacter(r));return this.pos+=i,{type:t,pos:n,len:i}}}],[{key:"isDigitCharacter",value:function(e){return e>=48&&e<=57}},{key:"isVariableCharacter",value:function(e){return 95===e||e>=97&&e<=122||e>=65&&e<=90}}]),e}();XF._table=(GF={},(0,xt.Z)(GF,36,0),(0,xt.Z)(GF,58,1),(0,xt.Z)(GF,44,2),(0,xt.Z)(GF,123,3),(0,xt.Z)(GF,125,4),(0,xt.Z)(GF,92,5),(0,xt.Z)(GF,47,6),(0,xt.Z)(GF,124,7),(0,xt.Z)(GF,43,11),(0,xt.Z)(GF,45,12),(0,xt.Z)(GF,63,13),GF);var JF=function(){function e(){(0,i.Z)(this,e),this._children=[]}return(0,r.Z)(e,[{key:"appendChild",value:function(e){return e instanceof ej&&this._children[this._children.length-1]instanceof ej?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}},{key:"replace",value:function(e,t){var n=e.parent,i=n.children.indexOf(e),r=n.children.slice(0);r.splice.apply(r,[i,1].concat((0,Lt.Z)(t))),n._children=r,function e(t,n){var i,r=(0,Tr.Z)(t);try{for(r.s();!(i=r.n()).done;){var o=i.value;o.parent=n,e(o.children,o)}}catch(a){r.e(a)}finally{r.f()}}(t,n)}},{key:"children",get:function(){return this._children}},{key:"snippet",get:function(){for(var e=this;;){if(!e)return;if(e instanceof lj)return e;e=e.parent}}},{key:"toString",value:function(){return this.children.reduce((function(e,t){return e+t.toString()}),"")}},{key:"len",value:function(){return 0}}]),e}(),ej=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).value=e,r}return(0,r.Z)(n,[{key:"toString",value:function(){return this.value}},{key:"len",value:function(){return this.value.length}},{key:"clone",value:function(){return new n(this.value)}}]),n}(JF),tj=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n)}(JF),nj=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).index=e,r}return(0,r.Z)(n,[{key:"isFinalTabstop",get:function(){return 0===this.index}},{key:"choice",get:function(){return 1===this._children.length&&this._children[0]instanceof ij?this._children[0]:void 0}},{key:"clone",value:function(){var e=new n(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((function(e){return e.clone()})),e}}],[{key:"compareByIndex",value:function(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}}]),n}(tj),ij=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments)).options=[],e}return(0,r.Z)(n,[{key:"appendChild",value:function(e){return e instanceof ej&&(e.parent=this,this.options.push(e)),this}},{key:"toString",value:function(){return this.options[0].value}},{key:"len",value:function(){return this.options[0].len()}},{key:"clone",value:function(){var e=new n;return this.options.forEach(e.appendChild,e),e}}]),n}(JF),rj=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.apply(this,arguments)).regexp=new RegExp(""),e}return(0,r.Z)(n,[{key:"resolve",value:function(e){var t=this,n=!1,i=e.replace(this.regexp,(function(){return n=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))}));return!n&&this._children.some((function(e){return e instanceof oj&&Boolean(e.elseValue)}))&&(i=this._replace([])),i}},{key:"_replace",value:function(e){var t,n="",i=(0,Tr.Z)(this._children);try{for(i.s();!(t=i.n()).done;){var r=t.value;if(r instanceof oj){var o=e[r.index]||"";n+=o=r.resolve(o)}else n+=r.toString()}}catch(a){i.e(a)}finally{i.f()}return n}},{key:"toString",value:function(){return""}},{key:"clone",value:function(){var e=new n;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map((function(e){return e.clone()})),e}}]),n}(JF),oj=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this)).index=e,s.shorthandName=r,s.ifValue=o,s.elseValue=a,s}return(0,r.Z)(n,[{key:"resolve",value:function(e){return"upcase"===this.shorthandName?e?e.toLocaleUpperCase():"":"downcase"===this.shorthandName?e?e.toLocaleLowerCase():"":"capitalize"===this.shorthandName?e?e[0].toLocaleUpperCase()+e.substr(1):"":"pascalcase"===this.shorthandName?e?this._toPascalCase(e):"":Boolean(e)&&"string"===typeof this.ifValue?this.ifValue:Boolean(e)||"string"!==typeof this.elseValue?e||"":this.elseValue}},{key:"_toPascalCase",value:function(e){var t=e.match(/[a-z]+/gi);return t?t.map((function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})).join(""):e}},{key:"clone",value:function(){return new n(this.index,this.shorthandName,this.ifValue,this.elseValue)}}]),n}(JF),aj=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).name=e,r}return(0,r.Z)(n,[{key:"resolve",value:function(e){var t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),void 0!==t&&(this._children=[new ej(t)],!0)}},{key:"clone",value:function(){var e=new n(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((function(e){return e.clone()})),e}}]),n}(tj);function sj(e,t){for(var n=(0,Lt.Z)(e);n.length>0;){var i=n.shift();if(!t(i))break;n.unshift.apply(n,(0,Lt.Z)(i.children))}}var uj,lj=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"placeholderInfo",get:function(){if(!this._placeholders){var e,t=[];this.walk((function(n){return n instanceof nj&&(t.push(n),e=!e||e.index<n.index?n:e),!0})),this._placeholders={all:t,last:e}}return this._placeholders}},{key:"placeholders",get:function(){return this.placeholderInfo.all}},{key:"offset",value:function(e){var t=0,n=!1;return this.walk((function(i){return i===e?(n=!0,!1):(t+=i.len(),!0)})),n?t:-1}},{key:"fullLen",value:function(e){var t=0;return sj([e],(function(e){return t+=e.len(),!0})),t}},{key:"enclosingPlaceholders",value:function(e){for(var t=[],n=e.parent;n;)n instanceof nj&&t.push(n),n=n.parent;return t}},{key:"resolveVariables",value:function(e){var t=this;return this.walk((function(n){return n instanceof aj&&n.resolve(e)&&(t._placeholders=void 0),!0})),this}},{key:"appendChild",value:function(e){return this._placeholders=void 0,(0,YL.Z)((0,UL.Z)(n.prototype),"appendChild",this).call(this,e)}},{key:"replace",value:function(e,t){return this._placeholders=void 0,(0,YL.Z)((0,UL.Z)(n.prototype),"replace",this).call(this,e,t)}},{key:"clone",value:function(){var e=new n;return this._children=this.children.map((function(e){return e.clone()})),e}},{key:"walk",value:function(e){sj(this.children,e)}}]),n}(JF),cj=function(){function e(){(0,i.Z)(this,e),this._scanner=new XF,this._token={type:14,pos:0,len:0}}return(0,r.Z)(e,[{key:"parse",value:function(e,t,n){this._scanner.text(e),this._token=this._scanner.next();for(var i=new lj;this._parse(i););var r=new Map,o=[],a=0;i.walk((function(e){return e instanceof nj&&(a+=1,e.isFinalTabstop?r.set(0,void 0):!r.has(e.index)&&e.children.length>0?r.set(e.index,e.children):o.push(e)),!0}));for(var s=0,u=o;s<u.length;s++){var l=u[s],c=r.get(l.index);if(c){var d=new nj(l.index);d.transform=l.transform;var h,f=(0,Tr.Z)(c);try{for(f.s();!(h=f.n()).done;){var p=h.value;d.appendChild(p.clone())}}catch(v){f.e(v)}finally{f.f()}i.replace(l,[d])}}return n||(n=a>0&&t),!r.has(0)&&n&&i.appendChild(new nj(0)),i}},{key:"_accept",value:function(e,t){if(void 0===e||this._token.type===e){var n=!t||this._scanner.tokenText(this._token);return this._token=this._scanner.next(),n}return!1}},{key:"_backTo",value:function(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}},{key:"_until",value:function(e){for(var t=this._token;this._token.type!==e;){if(14===this._token.type)return!1;if(5===this._token.type){var n=this._scanner.next();if(0!==n.type&&4!==n.type&&5!==n.type)return!1}this._token=this._scanner.next()}var i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}},{key:"_parse",value:function(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}},{key:"_parseEscaped",value:function(e){var t;return!!(t=this._accept(5,!0))&&(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new ej(t)),!0)}},{key:"_parseTabstopOrVariableName",value:function(e){var t,n=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new nj(Number(t)):new aj(t)),!0):this._backTo(n)}},{key:"_parseComplexPlaceholder",value:function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(n);var i=new nj(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new ej("${"+t+":")),i.children.forEach(e.appendChild,e),!0}else{if(!(i.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(var r=new ij;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(i.appendChild(r),this._accept(4)))return e.appendChild(i),!0}return this._backTo(n),!1}}}},{key:"_parseChoiceElement",value:function(e){for(var t=this._token,n=[];2!==this._token.type&&7!==this._token.type;){var i=void 0;if(!(i=(i=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||i:this._accept(void 0,!0)))return this._backTo(t),!1;n.push(i)}return 0===n.length?(this._backTo(t),!1):(e.appendChild(new ej(n.join(""))),!0)}},{key:"_parseComplexVariable",value:function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(n);var i=new aj(t);if(!this._accept(1))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new ej("${"+t+":")),i.children.forEach(e.appendChild,e),!0}}},{key:"_parseTransform",value:function(e){for(var t=new rj,n="",i="";!this._accept(6);){var r=void 0;if(r=this._accept(5,!0))n+=r=this._accept(6,!0)||r;else{if(14===this._token.type)return!1;n+=this._accept(void 0,!0)}}for(;!this._accept(6);){var o=void 0;if(o=this._accept(5,!0))o=this._accept(5,!0)||this._accept(6,!0)||o,t.appendChild(new ej(o));else if(!this._parseFormatString(t)&&!this._parseAnything(t))return!1}for(;!this._accept(4);){if(14===this._token.type)return!1;i+=this._accept(void 0,!0)}try{t.regexp=new RegExp(n,i)}catch(a){return!1}return e.transform=t,!0}},{key:"_parseFormatString",value:function(e){var t=this._token;if(!this._accept(0))return!1;var n=!1;this._accept(3)&&(n=!0);var i=this._accept(8,!0);if(!i)return this._backTo(t),!1;if(!n)return e.appendChild(new oj(Number(i))),!0;if(this._accept(4))return e.appendChild(new oj(Number(i))),!0;if(!this._accept(1))return this._backTo(t),!1;if(this._accept(6)){var r=this._accept(9,!0);return r&&this._accept(4)?(e.appendChild(new oj(Number(i),r)),!0):(this._backTo(t),!1)}if(this._accept(11)){var o=this._until(4);if(o)return e.appendChild(new oj(Number(i),void 0,o,void 0)),!0}else if(this._accept(12)){var a=this._until(4);if(a)return e.appendChild(new oj(Number(i),void 0,void 0,a)),!0}else if(this._accept(13)){var s=this._until(1);if(s){var u=this._until(4);if(u)return e.appendChild(new oj(Number(i),void 0,s,u)),!0}}else{var l=this._until(4);if(l)return e.appendChild(new oj(Number(i),void 0,void 0,l)),!0}return this._backTo(t),!1}},{key:"_parseAnything",value:function(e){return 14!==this._token.type&&(e.appendChild(new ej(this._scanner.tokenText(this._token))),this._accept(void 0),!0)}}],[{key:"escape",value:function(e){return e.replace(/\$|}|\\/g,"\\$&")}},{key:"guessNeedsClipboard",value:function(e){return/\${?CLIPBOARD/.test(e)}}]),e}(),dj=n(96257),hj=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},fj={Visible:new gx.uy("suggestWidgetVisible",!1,(0,hx.N)("suggestWidgetVisible","Whether suggestion are visible")),DetailsVisible:new gx.uy("suggestWidgetDetailsVisible",!1,(0,hx.N)("suggestWidgetDetailsVisible","Whether suggestion details are visible")),MultipleSuggestions:new gx.uy("suggestWidgetMultipleSuggestions",!1,(0,hx.N)("suggestWidgetMultipleSuggestions","Whether there are multiple suggestions to pick from")),MakesTextEdit:new gx.uy("suggestionMakesTextEdit",!0,(0,hx.N)("suggestionMakesTextEdit","Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new gx.uy("acceptSuggestionOnEnter",!0,(0,hx.N)("acceptSuggestionOnEnter","Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new gx.uy("suggestionHasInsertAndReplaceRange",!1,(0,hx.N)("suggestionHasInsertAndReplaceRange","Whether the current suggestion has insert and replace behaviour")),InsertMode:new gx.uy("suggestionInsertMode",void 0,{type:"string",description:(0,hx.N)("suggestionInsertMode","Whether the default behaviour is to insert or replace")}),CanResolve:new gx.uy("suggestionCanResolve",!1,(0,hx.N)("suggestionCanResolve","Whether the current suggestion supports to resolve further details"))},pj=new Vx.eH("suggestWidgetStatusBar"),vj=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.position=t,this.completion=n,this.container=r,this.provider=o,this.isInvalid=!1,this.score=kT.CL.Default,this.distance=0,this.textLabel="string"===typeof n.label?n.label:n.label.name,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=n.sortText&&n.sortText.toLowerCase(),this.filterTextLow=n.filterText&&n.filterText.toLowerCase(),Fx.e.isIRange(n.range)?(this.editStart=new Zx.L(n.range.startLineNumber,n.range.startColumn),this.editInsertEnd=new Zx.L(n.range.endLineNumber,n.range.endColumn),this.editReplaceEnd=new Zx.L(n.range.endLineNumber,n.range.endColumn),this.isInvalid=this.isInvalid||Fx.e.spansMultipleLines(n.range)||n.range.startLineNumber!==t.lineNumber):(this.editStart=new Zx.L(n.range.insert.startLineNumber,n.range.insert.startColumn),this.editInsertEnd=new Zx.L(n.range.insert.endLineNumber,n.range.insert.endColumn),this.editReplaceEnd=new Zx.L(n.range.replace.endLineNumber,n.range.replace.endColumn),this.isInvalid=this.isInvalid||Fx.e.spansMultipleLines(n.range.insert)||Fx.e.spansMultipleLines(n.range.replace)||n.range.insert.startLineNumber!==t.lineNumber||n.range.replace.startLineNumber!==t.lineNumber||n.range.insert.startColumn!==n.range.replace.startColumn),"function"!==typeof o.resolveCompletionItem&&(this._resolveCache=Promise.resolve(),this._isResolved=!0)}return(0,r.Z)(e,[{key:"isResolved",get:function(){return!!this._isResolved}},{key:"resolve",value:function(e){return hj(this,void 0,void 0,ki().mark((function t(){var n,i=this;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this._resolveCache||(n=e.onCancellationRequested((function(){i._resolveCache=void 0,i._isResolved=!1})),this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then((function(e){Object.assign(i.completion,e),i._isResolved=!0,n.dispose()}),(function(e){(0,yx.VV)(e)&&(i._resolveCache=void 0,i._isResolved=!1)}))),t.abrupt("return",this._resolveCache);case 2:case"end":return t.stop()}}),t,this)})))}}]),e}(),gj=(0,r.Z)((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;(0,i.Z)(this,e),this.snippetSortOrder=t,this.kindFilter=n,this.providerFilter=r}));gj.default=new gj;var mj=(0,r.Z)((function e(t,n,r,o){(0,i.Z)(this,e),this.items=t,this.needsClipboard=n,this.durations=r,this.disposable=o}));function _j(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:gj.default,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{triggerKind:0},r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:bL.T.None;return hj(this,void 0,void 0,ki().mark((function o(){var a,s,u,l,c,d,h,f,p,v,g,m,_,y,b=this;return ki().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:a=new dj.G(!0),t=t.clone(),s=e.getWordAtPosition(t),u=s?new Fx.e(t.lineNumber,s.startColumn,t.lineNumber,s.endColumn):Fx.e.fromPositions(t),l={replace:u,insert:u.setEndPosition(t.lineNumber,t.column)},c=[],d=new Rx.SL,h=[],f=!1,p=function(e,i,r){var o,a;if(i){var s,u=(0,Tr.Z)(i.suggestions);try{for(u.s();!(s=u.n()).done;){var p=s.value;n.kindFilter.has(p.kind)||(p.range||(p.range=l),p.sortText||(p.sortText="string"===typeof p.label?p.label:p.label.name),!f&&p.insertTextRules&&4&p.insertTextRules&&(f=cj.guessNeedsClipboard(p.insertText)),c.push(new vj(t,p,i,e)))}}catch(v){u.e(v)}finally{u.f()}(0,Rx.Wf)(i)&&d.add(i),h.push({providerName:null!==(o=e._debugDisplayName)&&void 0!==o?o:"unkown_provider",elapsedProvider:null!==(a=i.duration)&&void 0!==a?a:-1,elapsedOverall:r.elapsed()})}},v=hj(b,void 0,void 0,ki().mark((function o(){var a,s;return ki().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(uj&&!n.kindFilter.has(27)){o.next=2;break}return o.abrupt("return");case 2:if(!(n.providerFilter.size>0)||n.providerFilter.has(uj)){o.next=4;break}return o.abrupt("return");case 4:return a=new dj.G(!0),o.next=7,uj.provideCompletionItems(e,t,i,r);case 7:s=o.sent,p(uj,s,a);case 9:case"end":return o.stop()}}),o)}))),g=(0,Tr.Z)(LL.KZ.orderedGroups(e)),o.prev=12,g.s();case 14:if((m=g.n()).done){o.next=23;break}return _=m.value,y=c.length,o.next=19,Promise.all(_.map((function(o){return hj(b,void 0,void 0,ki().mark((function a(){var s,u;return ki().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(!(n.providerFilter.size>0)||n.providerFilter.has(o)){a.next=2;break}return a.abrupt("return");case 2:return a.prev=2,s=new dj.G(!0),a.next=6,o.provideCompletionItems(e,t,i,r);case 6:u=a.sent,p(o,u,s),a.next=13;break;case 10:a.prev=10,a.t0=a.catch(2),(0,yx.Cp)(a.t0);case 13:case"end":return a.stop()}}),a,null,[[2,10]])})))})));case 19:if(y===c.length&&!r.isCancellationRequested){o.next=21;break}return o.abrupt("break",23);case 21:o.next=14;break;case 23:o.next=28;break;case 25:o.prev=25,o.t0=o.catch(12),g.e(o.t0);case 28:return o.prev=28,g.f(),o.finish(28);case 31:return o.next=33,v;case 33:if(!r.isCancellationRequested){o.next=36;break}return d.dispose(),o.abrupt("return",Promise.reject((0,yx.F0)()));case 36:return o.abrupt("return",new mj(c.sort(wj(n.snippetSortOrder)),f,{entries:h,elapsed:a.elapsed()},d));case 37:case"end":return o.stop()}}),o,null,[[12,25,28,31]])})))}function yj(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLow<t.sortTextLow)return-1;if(e.sortTextLow>t.sortTextLow)return 1}return e.completion.label<t.completion.label?-1:e.completion.label>t.completion.label?1:e.completion.kind-t.completion.kind}var bj=new Map;function wj(e){return bj.get(e)}bj.set(0,(function(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return-1;if(27===t.completion.kind)return 1}return yj(e,t)})),bj.set(2,(function(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return 1;if(27===t.completion.kind)return-1}return yj(e,t)})),bj.set(1,yj),IL.P.registerCommand("_executeCompletionItemProvider",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return hj(void 0,void 0,void 0,ki().mark((function t(){var i,r,o,a,s,u,l,c,d,h,f;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=n[0],r=n[1],o=n[2],a=n[3],(0,JE.p_)(SL.o.isUri(i)),(0,JE.p_)(Zx.L.isIPosition(r)),(0,JE.p_)("string"===typeof o||!o),(0,JE.p_)("number"===typeof a||!a),t.next=7,e.get(_T.S).createModelReference(i);case 7:return s=t.sent,t.prev=8,u={incomplete:!1,suggestions:[]},l=[],t.next=13,_j(s.object.textEditorModel,Zx.L.lift(r),void 0,{triggerCharacter:o,triggerKind:o?1:0});case 13:c=t.sent,d=(0,Tr.Z)(c.items);try{for(d.s();!(h=d.n()).done;)f=h.value,l.length<(null!==a&&void 0!==a?a:0)&&l.push(f.resolve(bL.T.None)),u.incomplete=u.incomplete||f.container.incomplete,u.suggestions.push(f.completion)}catch(p){d.e(p)}finally{d.f()}return t.prev=16,t.next=19,Promise.all(l);case 19:return t.abrupt("return",u);case 20:return t.prev=20,setTimeout((function(){return c.disposable.dispose()}),100),t.finish(20);case 23:return t.prev=23,s.dispose(),t.finish(23);case 26:case"end":return t.stop()}}),t,null,[[8,,23,26],[16,,20,23]])})))}));var Cj=new(function(){function e(){(0,i.Z)(this,e),this.onlyOnceSuggestions=[]}return(0,r.Z)(e,[{key:"provideCompletionItems",value:function(){var e={suggestions:this.onlyOnceSuggestions.slice(0)};return this.onlyOnceSuggestions.length=0,e}}]),e}());LL.KZ.register("*",Cj);var kj=n(37753),Sj=n(36912),xj="code-workspace";function Lj(e){var t=e;return"string"===typeof(null===t||void 0===t?void 0:t.id)&&SL.o.isUri(t.uri)}for(var Ej,Nj=new Uint8Array(16),Dj=[],Mj=0;Mj<256;Mj++)Dj.push(Mj.toString(16).padStart(2,"0"));Ej="object"===typeof crypto&&"function"===typeof crypto.getRandomValues?crypto.getRandomValues.bind(crypto):function(e){for(var t=0;t<e.length;t++)e[t]=Math.floor(256*Math.random());return e};var Tj=function(){function e(t){(0,i.Z)(this,e),this._delegates=t}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t,n=(0,Tr.Z)(this._delegates);try{for(n.s();!(t=n.n()).done;){var i=t.value.resolve(e);if(void 0!==i)return i}}catch(r){n.e(r)}finally{n.f()}}}]),e}(),Oj=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._model=t,this._selection=n,this._selectionIdx=r,this._overtypingCapturer=o}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t=e.name;if("SELECTION"===t||"TM_SELECTED_TEXT"===t){var n=this._model.getValueInRange(this._selection)||void 0,i=this._selection.startLineNumber!==this._selection.endLineNumber;if(!n&&this._overtypingCapturer){var r=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);r&&(n=r.value,i=r.multiline)}if(n&&i&&e.snippet){var o=this._model.getLineContent(this._selection.startLineNumber),a=(0,CL.V8)(o,0,this._selection.startColumn-1),s=a;e.snippet.walk((function(t){return t!==e&&(t instanceof ej&&(s=(0,CL.V8)((0,CL.uq)(t.value).pop())),!0)}));var u=(0,CL.Mh)(s,a);n=n.replace(/(\r\n|\r|\n)(.*)/g,(function(e,t,n){return"".concat(t).concat(s.substr(u)).concat(n)}))}return n}if("TM_CURRENT_LINE"===t)return this._model.getLineContent(this._selection.positionLineNumber);if("TM_CURRENT_WORD"===t){var l=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return l&&l.word||void 0}return"TM_LINE_INDEX"===t?String(this._selection.positionLineNumber-1):"TM_LINE_NUMBER"===t?String(this._selection.positionLineNumber):void 0}}]),e}(),Ij=function(){function e(t,n){(0,i.Z)(this,e),this._labelService=t,this._model=n}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t=e.name;if("TM_FILENAME"===t)return Sj.EZ(this._model.uri.fsPath);if("TM_FILENAME_BASE"===t){var n=Sj.EZ(this._model.uri.fsPath),i=n.lastIndexOf(".");return i<=0?n:n.slice(0,i)}return"TM_DIRECTORY"===t&&this._labelService?"."===Sj.XX(this._model.uri.fsPath)?"":this._labelService.getUriLabel((0,ME.XX)(this._model.uri)):"TM_FILEPATH"===t&&this._labelService?this._labelService.getUriLabel(this._model.uri):"RELATIVE_FILEPATH"===t&&this._labelService?this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0}):void 0}}]),e}(),Aj=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._readClipboardText=t,this._selectionIdx=n,this._selectionCount=r,this._spread=o}return(0,r.Z)(e,[{key:"resolve",value:function(e){if("CLIPBOARD"===e.name){var t=this._readClipboardText();if(t){if(this._spread){var n=t.split(/\r\n|\n|\r/).filter((function(e){return!(0,CL.m5)(e)}));if(n.length===this._selectionCount)return n[this._selectionIdx]}return t}}}}]),e}(),Pj=function(){function e(t,n){(0,i.Z)(this,e),this._model=t,this._selection=n}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t=e.name,n=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),i=HO.zu.getComments(n);if(i)return"LINE_COMMENT"===t?i.lineCommentToken||void 0:"BLOCK_COMMENT_START"===t?i.blockCommentStartToken||void 0:"BLOCK_COMMENT_END"===t&&i.blockCommentEndToken||void 0}}]),e}(),Rj=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"resolve",value:function(t){var n=t.name;return"CURRENT_YEAR"===n?String((new Date).getFullYear()):"CURRENT_YEAR_SHORT"===n?String((new Date).getFullYear()).slice(-2):"CURRENT_MONTH"===n?String((new Date).getMonth().valueOf()+1).padStart(2,"0"):"CURRENT_DATE"===n?String((new Date).getDate().valueOf()).padStart(2,"0"):"CURRENT_HOUR"===n?String((new Date).getHours().valueOf()).padStart(2,"0"):"CURRENT_MINUTE"===n?String((new Date).getMinutes().valueOf()).padStart(2,"0"):"CURRENT_SECOND"===n?String((new Date).getSeconds().valueOf()).padStart(2,"0"):"CURRENT_DAY_NAME"===n?e.dayNames[(new Date).getDay()]:"CURRENT_DAY_NAME_SHORT"===n?e.dayNamesShort[(new Date).getDay()]:"CURRENT_MONTH_NAME"===n?e.monthNames[(new Date).getMonth()]:"CURRENT_MONTH_NAME_SHORT"===n?e.monthNamesShort[(new Date).getMonth()]:"CURRENT_SECONDS_UNIX"===n?String(Math.floor(Date.now()/1e3)):void 0}}]),e}();Rj.dayNames=[hx.N("Sunday","Sunday"),hx.N("Monday","Monday"),hx.N("Tuesday","Tuesday"),hx.N("Wednesday","Wednesday"),hx.N("Thursday","Thursday"),hx.N("Friday","Friday"),hx.N("Saturday","Saturday")],Rj.dayNamesShort=[hx.N("SundayShort","Sun"),hx.N("MondayShort","Mon"),hx.N("TuesdayShort","Tue"),hx.N("WednesdayShort","Wed"),hx.N("ThursdayShort","Thu"),hx.N("FridayShort","Fri"),hx.N("SaturdayShort","Sat")],Rj.monthNames=[hx.N("January","January"),hx.N("February","February"),hx.N("March","March"),hx.N("April","April"),hx.N("May","May"),hx.N("June","June"),hx.N("July","July"),hx.N("August","August"),hx.N("September","September"),hx.N("October","October"),hx.N("November","November"),hx.N("December","December")],Rj.monthNamesShort=[hx.N("JanuaryShort","Jan"),hx.N("FebruaryShort","Feb"),hx.N("MarchShort","Mar"),hx.N("AprilShort","Apr"),hx.N("MayShort","May"),hx.N("JuneShort","Jun"),hx.N("JulyShort","Jul"),hx.N("AugustShort","Aug"),hx.N("SeptemberShort","Sep"),hx.N("OctoberShort","Oct"),hx.N("NovemberShort","Nov"),hx.N("DecemberShort","Dec")];var Zj=function(){function e(t){(0,i.Z)(this,e),this._workspaceService=t}return(0,r.Z)(e,[{key:"resolve",value:function(e){if(this._workspaceService){var t=function(e){return e.configuration?{id:e.id,configPath:e.configuration}:1===e.folders.length?{id:e.id,uri:e.folders[0].uri}:void 0}(this._workspaceService.getWorkspace());if(t)return"WORKSPACE_NAME"===e.name?this._resolveWorkspaceName(t):"WORKSPACE_FOLDER"===e.name?this._resoveWorkspacePath(t):void 0}}},{key:"_resolveWorkspaceName",value:function(e){if(Lj(e))return Sj.EZ(e.uri.path);var t=Sj.EZ(e.configPath.path);return t.endsWith(xj)&&(t=t.substr(0,t.length-xj.length-1)),t}},{key:"_resoveWorkspacePath",value:function(e){if(Lj(e))return $N(e.uri.fsPath);var t=Sj.EZ(e.configPath.path),n=e.configPath.fsPath;return n.endsWith(t)&&(n=n.substr(0,n.length-t.length-1)),n?$N(n):"/"}}]),e}(),Fj=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"resolve",value:function(e){var t=e.name;return"RANDOM"===t?Math.random().toString().slice(-6):"RANDOM_HEX"===t?Math.random().toString(16).slice(-6):"UUID"===t?function(){Ej(Nj),Nj[6]=15&Nj[6]|64,Nj[8]=63&Nj[8]|128;var e=0,t="";return t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+="-",t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+="-",t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+="-",t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+="-",t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+=Dj[Nj[e++]],t+Dj[Nj[e++]]}():void 0}}]),e}();(0,Wx.Ic)((function(e,t){function n(t){var n=e.getColor(t);return n?n.toString():"transparent"}t.addRule(".monaco-editor .snippet-placeholder { background-color: ".concat(n(zx.u2),"; outline-color: ").concat(n(zx.Pk),"; }")),t.addRule(".monaco-editor .finish-snippet-placeholder { background-color: ".concat(n(zx.I1),"; outline-color: ").concat(n(zx.U6),"; }"))}));var jj=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._editor=t,this._snippet=n,this._offset=r,this._snippetLineLeadingWhitespace=o,this._nestingLevel=1,this._placeholderGroups=(0,mx.vM)(n.placeholders,nj.compareByIndex),this._placeholderGroupsIdx=-1}return(0,r.Z)(e,[{key:"dispose",value:function(){this._placeholderDecorations&&this._editor.deltaDecorations((0,Lt.Z)(this._placeholderDecorations.values()),[]),this._placeholderGroups.length=0}},{key:"_initDecorations",value:function(){var t=this;if(!this._placeholderDecorations){this._placeholderDecorations=new Map;var n=this._editor.getModel();this._editor.changeDecorations((function(i){var r,o=(0,Tr.Z)(t._snippet.placeholders);try{for(o.s();!(r=o.n()).done;){var a=r.value,s=t._snippet.offset(a),u=t._snippet.fullLen(a),l=Fx.e.fromPositions(n.getPositionAt(t._offset+s),n.getPositionAt(t._offset+s+u)),c=a.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive,d=i.addDecoration(l,c);t._placeholderDecorations.set(a,d)}}catch(h){o.e(h)}finally{o.f()}}))}}},{key:"move",value:function(t){var n=this;if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){var i,r=[],o=(0,Tr.Z)(this._placeholderGroups[this._placeholderGroupsIdx]);try{for(o.s();!(i=o.n()).done;){var a=i.value;if(a.transform){for(var s=this._placeholderDecorations.get(a),u=this._editor.getModel().getDecorationRange(s),l=this._editor.getModel().getValueInRange(u),c=a.transform.resolve(l).split(/\r\n|\r|\n/),d=1;d<c.length;d++)c[d]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+c[d]);r.push(jO.h.replace(u,c.join(this._editor.getModel().getEOL())))}}}catch(p){o.e(p)}finally{o.f()}r.length>0&&this._editor.executeEdits("snippet.placeholderTransform",r)}var h=!1;!0===t&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,h=!0):!1===t&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,h=!0);var f=this._editor.getModel().changeDecorations((function(t){var i,r=new Set,o=[],a=(0,Tr.Z)(n._placeholderGroups[n._placeholderGroupsIdx]);try{for(a.s();!(i=a.n()).done;){var s=i.value,u=n._placeholderDecorations.get(s),l=n._editor.getModel().getDecorationRange(u);o.push(new px.Y(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn)),h=h&&n._hasPlaceholderBeenCollapsed(s),t.changeDecorationOptions(u,s.isFinalTabstop?e._decor.activeFinal:e._decor.active),r.add(s);var c,d=(0,Tr.Z)(n._snippet.enclosingPlaceholders(s));try{for(d.s();!(c=d.n()).done;){var f=c.value,v=n._placeholderDecorations.get(f);t.changeDecorationOptions(v,f.isFinalTabstop?e._decor.activeFinal:e._decor.active),r.add(f)}}catch(p){d.e(p)}finally{d.f()}}}catch(p){a.e(p)}finally{a.f()}var g,m=(0,Tr.Z)(n._placeholderDecorations);try{for(m.s();!(g=m.n()).done;){var _=(0,dt.Z)(g.value,2),y=_[0],b=_[1];r.has(y)||t.changeDecorationOptions(b,y.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive)}}catch(p){m.e(p)}finally{m.f()}return o}));return h?this.move(t):null!==f&&void 0!==f?f:[]}},{key:"_hasPlaceholderBeenCollapsed",value:function(e){for(var t=e;t;){if(t instanceof nj){var n=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(n).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}},{key:"isAtFirstPlaceholder",get:function(){return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length}},{key:"isAtLastPlaceholder",get:function(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}},{key:"hasPlaceholder",get:function(){return this._snippet.placeholders.length>0}},{key:"computePossibleSelections",value:function(){var e,t=new Map,n=(0,Tr.Z)(this._placeholderGroups);try{for(n.s();!(e=n.n()).done;){var i,r=e.value,o=void 0,a=(0,Tr.Z)(r);try{for(a.s();!(i=a.n()).done;){var s=i.value;if(s.isFinalTabstop)break;o||(o=[],t.set(s.index,o));var u=this._placeholderDecorations.get(s),l=this._editor.getModel().getDecorationRange(u);if(!l){t.delete(s.index);break}o.push(l)}}catch(c){a.e(c)}finally{a.f()}}}catch(c){n.e(c)}finally{n.f()}return t}},{key:"choice",get:function(){return this._placeholderGroups[this._placeholderGroupsIdx][0].choice}},{key:"merge",value:function(t){var n=this,i=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((function(r){var o,a=(0,Tr.Z)(n._placeholderGroups[n._placeholderGroupsIdx]);try{for(a.s();!(o=a.n()).done;){var s=o.value,u=t.shift();console.assert(!u._placeholderDecorations);var l,c=u._snippet.placeholderInfo.last.index,d=(0,Tr.Z)(u._snippet.placeholderInfo.all);try{for(d.s();!(l=d.n()).done;){var h=l.value;h.isFinalTabstop?h.index=s.index+(c+1)/n._nestingLevel:h.index=s.index+h.index/n._nestingLevel}}catch(w){d.e(w)}finally{d.f()}n._snippet.replace(s,u._snippet.children);var f=n._placeholderDecorations.get(s);r.removeDecoration(f),n._placeholderDecorations.delete(s);var p,v=(0,Tr.Z)(u._snippet.placeholders);try{for(v.s();!(p=v.n()).done;){var g=p.value,m=u._snippet.offset(g),_=u._snippet.fullLen(g),y=Fx.e.fromPositions(i.getPositionAt(u._offset+m),i.getPositionAt(u._offset+m+_)),b=r.addDecoration(y,e._decor.inactive);n._placeholderDecorations.set(g,b)}}catch(w){v.e(w)}finally{v.f()}}}catch(w){a.e(w)}finally{a.f()}n._placeholderGroups=(0,mx.vM)(n._snippet.placeholders,nj.compareByIndex)}))}}]),e}();jj._decor={active:Hx.qx.register({stickiness:0,className:"snippet-placeholder"}),inactive:Hx.qx.register({stickiness:1,className:"snippet-placeholder"}),activeFinal:Hx.qx.register({stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:Hx.qx.register({stickiness:1,className:"finish-snippet-placeholder"})};var Hj={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},Bj=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Hj;(0,i.Z)(this,e),this._templateMerges=[],this._snippets=[],this._editor=t,this._template=n,this._options=r}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Rx.B9)(this._snippets)}},{key:"_logInfo",value:function(){return'template="'.concat(this._template,'", merged_templates="').concat(this._templateMerges.join(" -> "),'"')}},{key:"insert",value:function(){var t=this;if(this._editor.hasModel()){var n=e.createEditsAndSnippets(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer),i=n.edits,r=n.snippets;this._snippets=r,this._editor.executeEdits("snippet",i,(function(e){return t._snippets[0].hasPlaceholder?t._move(!0):e.filter((function(e){return!!e.identifier})).map((function(e){return px.Y.fromPositions(e.range.getEndPosition())}))})),this._editor.revealRange(this._editor.getSelections()[0])}}},{key:"merge",value:function(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Hj;if(this._editor.hasModel()){this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);var r=e.createEditsAndSnippets(this._editor,t,i.overwriteBefore,i.overwriteAfter,!0,i.adjustWhitespace,i.clipboardText,i.overtypingCapturer),o=r.edits,a=r.snippets;this._editor.executeEdits("snippet",o,(function(e){var t,i=(0,Tr.Z)(n._snippets);try{for(i.s();!(t=i.n()).done;){t.value.merge(a)}}catch(r){i.e(r)}finally{i.f()}return console.assert(0===a.length),n._snippets[0].hasPlaceholder?n._move(void 0):e.filter((function(e){return!!e.identifier})).map((function(e){return px.Y.fromPositions(e.range.getEndPosition())}))}))}}},{key:"next",value:function(){var e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}},{key:"prev",value:function(){var e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}},{key:"_move",value:function(e){var t,n=[],i=(0,Tr.Z)(this._snippets);try{for(i.s();!(t=i.n()).done;){var r=t.value.move(e);n.push.apply(n,(0,Lt.Z)(r))}}catch(o){i.e(o)}finally{i.f()}return n}},{key:"isAtFirstPlaceholder",get:function(){return this._snippets[0].isAtFirstPlaceholder}},{key:"isAtLastPlaceholder",get:function(){return this._snippets[0].isAtLastPlaceholder}},{key:"hasPlaceholder",get:function(){return this._snippets[0].hasPlaceholder}},{key:"choice",get:function(){return this._snippets[0].choice}},{key:"isSelectionWithinPlaceholders",value:function(){if(!this.hasPlaceholder)return!1;var e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;var t,n=new Map,i=(0,Tr.Z)(this._snippets);try{var r=function(){var i=t.value.computePossibleSelections();if(0===n.size){var r,o=(0,Tr.Z)(i);try{for(o.s();!(r=o.n()).done;){var a=(0,dt.Z)(r.value,2),s=a[0],u=a[1];u.sort(Fx.e.compareRangesUsingStarts);var l,c=(0,Tr.Z)(e);try{for(c.s();!(l=c.n()).done;){var d=l.value;if(u[0].containsRange(d)){n.set(s,[]);break}}}catch(h){c.e(h)}finally{c.f()}}}catch(h){o.e(h)}finally{o.f()}}if(0===n.size)return{v:!1};n.forEach((function(e,t){e.push.apply(e,(0,Lt.Z)(i.get(t)))}))};for(i.s();!(t=i.n()).done;){var o=r();if("object"===typeof o)return o.v}}catch(h){i.e(h)}finally{i.f()}e.sort(Fx.e.compareRangesUsingStarts);var a,s=(0,Tr.Z)(n);try{for(s.s();!(a=s.n()).done;){var u=(0,dt.Z)(a.value,2),l=u[0],c=u[1];if(c.length===e.length){c.sort(Fx.e.compareRangesUsingStarts);for(var d=0;d<c.length;d++)c[d].containsRange(e[d])||n.delete(l)}else n.delete(l)}}catch(h){s.e(h)}finally{s.f()}return n.size>0}}],[{key:"adjustWhitespace",value:function(e,t,n,i,r){var o,a=e.getLineContent(t.lineNumber),s=(0,CL.V8)(a,0,t.column-1);return n.walk((function(t){if(!(t instanceof ej)||t.parent instanceof ij)return!0;var r=t.value.split(/\r\n|\r|\n/);if(i){var a=n.offset(t);if(0===a)r[0]=e.normalizeIndentation(r[0]);else{var u=(o=null!==o&&void 0!==o?o:n.toString()).charCodeAt(a-1);10!==u&&13!==u||(r[0]=e.normalizeIndentation(s+r[0]))}for(var l=1;l<r.length;l++)r[l]=e.normalizeIndentation(s+r[l])}var c=r.join(e.getEOL());return c!==t.value&&(t.parent.replace(t,[new ej(c)]),o=void 0),!0})),s}},{key:"adjustSelection",value:function(e,t,n,i){if(0!==n||0!==i){var r=t,o=r.positionLineNumber,a=r.positionColumn,s=a-n,u=a+i,l=e.validateRange({startLineNumber:o,startColumn:s,endLineNumber:o,endColumn:u});t=px.Y.createWithDirection(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn,t.getDirection())}return t}},{key:"createEditsAndSnippets",value:function(t,n,i,r,o,a,s,u){var l=[],c=[];if(!t.hasModel())return{edits:l,snippets:c};var d,h=t.getModel(),f=t.invokeWithinContext((function(e){return e.get(kj.ec,JL.jt)})),p=t.invokeWithinContext((function(e){return new Ij(e.get(UD.e,JL.jt),h)})),v=function(){return s},g=0,m=h.getValueInRange(e.adjustSelection(h,t.getSelection(),i,0)),_=h.getValueInRange(e.adjustSelection(h,t.getSelection(),0,r)),y=h.getLineFirstNonWhitespaceColumn(t.getSelection().positionLineNumber),b=t.getSelections().map((function(e,t){return{selection:e,idx:t}})).sort((function(e,t){return Fx.e.compareRangesUsingStarts(e.selection,t.selection)})),w=(0,Tr.Z)(b);try{for(w.s();!(d=w.n()).done;){var C=d.value,k=C.selection,S=C.idx,x=e.adjustSelection(h,k,i,0),L=e.adjustSelection(h,k,0,r);m!==h.getValueInRange(x)&&(x=k),_!==h.getValueInRange(L)&&(L=k);var E=k.setStartPosition(x.startLineNumber,x.startColumn).setEndPosition(L.endLineNumber,L.endColumn),N=(new cj).parse(n,!0,o),D=E.getStartPosition(),M=e.adjustWhitespace(h,D,N,a||S>0&&y!==h.getLineFirstNonWhitespaceColumn(k.positionLineNumber),!0);N.resolveVariables(new Tj([p,new Aj(v,S,b.length,"spread"===t.getOption(67)),new Oj(h,k,S,u),new Pj(h,k),new Rj,new Zj(f),new Fj]));var T=h.getOffsetAt(D)+g;g+=N.toString().length-h.getValueLengthInRange(E),l[S]=jO.h.replace(E,N.toString()),l[S].identifier={major:S,minor:0},c[S]=new jj(t,N,T,M)}}catch(O){w.e(O)}finally{w.f()}return{edits:l,snippets:c}}}]),e}(),zj=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},Wj=function(e,t){return function(n,i){t(n,i,e)}},Vj={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},Yj=function(){function e(t,n,r){(0,i.Z)(this,e),this._editor=t,this._logService=n,this._snippetListener=new Rx.SL,this._modelVersionId=-1,this._inSnippet=e.InSnippetMode.bindTo(r),this._hasNextTabstop=e.HasNextTabstop.bindTo(r),this._hasPrevTabstop=e.HasPrevTabstop.bindTo(r)}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),null===(e=this._session)||void 0===e||e.dispose(),this._snippetListener.dispose()}},{key:"insert",value:function(e,t){try{this._doInsert(e,"undefined"===typeof t?Vj:Object.assign(Object.assign({},Vj),t))}catch(n){this.cancel(),this._logService.error(n),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}},{key:"_doInsert",value:function(e,t){var n=this;this._editor.hasModel()&&(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session?this._session.merge(e,t):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new Bj(this._editor,e,t),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((function(e){return e.isFlush&&n.cancel()}))),this._snippetListener.add(this._editor.onDidChangeModel((function(){return n.cancel()}))),this._snippetListener.add(this._editor.onDidChangeCursorSelection((function(){return n._updateState()}))))}},{key:"_updateState",value:function(){if(this._session&&this._editor.hasModel()){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}},{key:"_handleChoice",value:function(){var e=this;if(this._session&&this._editor.hasModel()){var t,n,i=this._session.choice;if(i){if(this._currentChoice!==i){this._currentChoice=i,this._editor.setSelections(this._editor.getSelections().map((function(e){return px.Y.fromPositions(e.getStartPosition())})));var r=(0,dt.Z)(i.options,1)[0];t=this._editor,n=i.options.map((function(t,n){return{kind:13,label:t.value,insertText:t.value,sortText:"a".repeat(n+1),range:Fx.e.fromPositions(e._editor.getPosition(),e._editor.getPosition().delta(0,r.value.length))}})),setTimeout((function(){var e;(e=Cj.onlyOnceSuggestions).push.apply(e,(0,Lt.Z)(n)),t.getContribution("editor.contrib.suggestController").triggerSuggest((new Set).add(Cj))}),0)}}else this._currentChoice=void 0}else this._currentChoice=void 0}},{key:"finish",value:function(){for(;this._inSnippet.get();)this.next()}},{key:"cancel",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),null===(e=this._session)||void 0===e||e.dispose(),this._session=void 0,this._modelVersionId=-1,t&&this._editor.setSelections([this._editor.getSelection()])}},{key:"prev",value:function(){this._session&&this._session.prev(),this._updateState()}},{key:"next",value:function(){this._session&&this._session.next(),this._updateState()}},{key:"isInSnippet",value:function(){return Boolean(this._inSnippet.get())}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();Yj.ID="snippetController2",Yj.InSnippetMode=new gx.uy("inSnippetMode",!1,(0,hx.N)("inSnippetMode","Whether the editor in current in snippet mode")),Yj.HasNextTabstop=new gx.uy("hasNextTabstop",!1,(0,hx.N)("hasNextTabstop","Whether there is a next tab stop when in snippet mode")),Yj.HasPrevTabstop=new gx.uy("hasPrevTabstop",!1,(0,hx.N)("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode")),Yj=zj([Wj(1,MF.VZ),Wj(2,gx.i6)],Yj),(0,dx._K)(Yj.ID,Yj);var Uj=dx._l.bindToContribution(Yj.get);(0,dx.fK)(new Uj({id:"jumpToNextSnippetPlaceholder",precondition:gx.Ao.and(Yj.InSnippetMode,Yj.HasNextTabstop),handler:function(e){return e.next()},kbOpts:{weight:130,kbExpr:fx.u.editorTextFocus,primary:2}})),(0,dx.fK)(new Uj({id:"jumpToPrevSnippetPlaceholder",precondition:gx.Ao.and(Yj.InSnippetMode,Yj.HasPrevTabstop),handler:function(e){return e.prev()},kbOpts:{weight:130,kbExpr:fx.u.editorTextFocus,primary:1026}})),(0,dx.fK)(new Uj({id:"leaveSnippet",precondition:Yj.InSnippetMode,handler:function(e){return e.cancel(!0)},kbOpts:{weight:130,kbExpr:fx.u.editorTextFocus,primary:9,secondary:[1033]}})),(0,dx.fK)(new Uj({id:"acceptSnippet",precondition:Yj.InSnippetMode,handler:function(e){return e.finish()}}));var Kj=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},qj=function(e,t){return function(n,i){t(n,i,e)}},Gj=function(){function e(t){(0,i.Z)(this,e),this.name=t}return(0,r.Z)(e,[{key:"select",value:function(e,t,n){if(0===n.length)return 0;for(var i=n[0].score[0],r=0;r<n.length;r++){var o=n[r],a=o.score,s=o.completion;if(a[0]!==i)break;if(s.preselect)return r}return 0}}]),e}(),$j=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,"first")}return(0,r.Z)(n,[{key:"memorize",value:function(e,t,n){}},{key:"toJSON",value:function(){}},{key:"fromJSON",value:function(){}}]),n}(Gj),Qj=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this,"recentlyUsed"))._cache=new lN.z6(300,.66),e._seq=0,e}return(0,r.Z)(n,[{key:"memorize",value:function(e,t,n){var i="".concat(e.getLanguageIdentifier().language,"/").concat(n.textLabel);this._cache.set(i,{touch:this._seq++,type:n.completion.kind,insertText:n.completion.insertText})}},{key:"select",value:function(e,t,i){if(0===i.length)return 0;var r=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(r))return(0,YL.Z)((0,UL.Z)(n.prototype),"select",this).call(this,e,t,i);for(var o=i[0].score[0],a=-1,s=-1,u=-1,l=0;l<i.length&&i[l].score[0]===o;l++){var c="".concat(e.getLanguageIdentifier().language,"/").concat(i[l].textLabel),d=this._cache.peek(c);if(d&&d.touch>u&&d.type===i[l].completion.kind&&d.insertText===i[l].completion.insertText&&(u=d.touch,s=l),i[l].completion.preselect&&-1===a)return l}return-1!==s?s:-1!==a?a:0}},{key:"toJSON",value:function(){return this._cache.toJSON()}},{key:"fromJSON",value:function(e){this._cache.clear();var t,n=(0,Tr.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=(0,dt.Z)(t.value,2),r=i[0],o=i[1];o.touch=0,o.type="number"===typeof o.type?o.type:(0,LL.jr)(o.type),this._cache.set(r,o)}}catch(a){n.e(a)}finally{n.f()}this._seq=this._cache.size}}]),n}(Gj),Xj=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this,"recentlyUsedByPrefix"))._trie=lN.Id.forStrings(),e._seq=0,e}return(0,r.Z)(n,[{key:"memorize",value:function(e,t,n){var i=e.getWordUntilPosition(t).word,r="".concat(e.getLanguageIdentifier().language,"/").concat(i);this._trie.set(r,{type:n.completion.kind,insertText:n.completion.insertText,touch:this._seq++})}},{key:"select",value:function(e,t,i){var r=e.getWordUntilPosition(t).word;if(!r)return(0,YL.Z)((0,UL.Z)(n.prototype),"select",this).call(this,e,t,i);var o="".concat(e.getLanguageIdentifier().language,"/").concat(r),a=this._trie.get(o);if(a||(a=this._trie.findSubstr(o)),a)for(var s=0;s<i.length;s++){var u=i[s].completion,l=u.kind,c=u.insertText;if(l===a.type&&c===a.insertText)return s}return(0,YL.Z)((0,UL.Z)(n.prototype),"select",this).call(this,e,t,i)}},{key:"toJSON",value:function(){var e=[];return this._trie.forEach((function(t,n){return e.push([n,t])})),e.sort((function(e,t){return-(e[1].touch-t[1].touch)})).forEach((function(e,t){return e[1].touch=t})),e.slice(0,200)}},{key:"fromJSON",value:function(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;var t,n=(0,Tr.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=(0,dt.Z)(t.value,2),r=i[0],o=i[1];o.type="number"===typeof o.type?o.type:(0,LL.jr)(o.type),this._trie.set(r,o)}}catch(a){n.e(a)}finally{n.f()}}}}]),n}(Gj),Jj=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this._storageService=t,this._modeService=n,this._configService=r,this._disposables=new Rx.SL,this._persistSoon=new Px.pY((function(){return o._saveState()}),500),this._disposables.add(t.onWillSaveState((function(e){e.reason===cN.fk.SHUTDOWN&&o._saveState()})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this._persistSoon.dispose()}},{key:"memorize",value:function(e,t,n){this._withStrategy(e,t).memorize(e,t,n),this._persistSoon.schedule()}},{key:"select",value:function(e,t,n){return this._withStrategy(e,t).select(e,t,n)}},{key:"_withStrategy",value:function(t,n){var i,r,o=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:null===(i=this._modeService.getLanguageIdentifier(t.getLanguageIdAtPosition(n.lineNumber,n.column)))||void 0===i?void 0:i.language,resource:t.uri});if((null===(r=this._strategy)||void 0===r?void 0:r.name)!==o){this._saveState();var a=e._strategyCtors.get(o)||$j;this._strategy=new a;try{var s=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,u=this._storageService.get("".concat(e._storagePrefix,"/").concat(o),s);u&&this._strategy.fromJSON(JSON.parse(u))}catch(l){}}return this._strategy}},{key:"_saveState",value:function(){if(this._strategy){var t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,n=JSON.stringify(this._strategy);this._storageService.store("".concat(e._storagePrefix,"/").concat(this._strategy.name),n,t,1)}}}]),e}();Jj._strategyCtors=new Map([["recentlyUsedByPrefix",Xj],["recentlyUsed",Qj],["first",$j]]),Jj._storagePrefix="suggest/memories",Jj=Kj([qj(0,cN.Uy),qj(1,MN.h),qj(2,LN.Ui)],Jj);var eH=(0,JL.yh)("ISuggestMemories");(0,uN.z)(eH,Jj,!0);var tH=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},nH=function(e,t){return function(n,i){t(n,i,e)}},iH=function(){function e(t,n){(0,i.Z)(this,e),this._editor=t,this._index=0,this._ckOtherSuggestions=e.OtherSuggestions.bindTo(n)}return(0,r.Z)(e,[{key:"dispose",value:function(){this.reset()}},{key:"reset",value:function(){var e;this._ckOtherSuggestions.reset(),null===(e=this._listener)||void 0===e||e.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}},{key:"set",value:function(t,n){var i=this,r=t.model,o=t.index;0!==r.items.length?e._moveIndex(!0,r,o)!==o?(this._acceptNext=n,this._model=r,this._index=o,this._listener=this._editor.onDidChangeCursorPosition((function(){i._ignore||i.reset()})),this._ckOtherSuggestions.set(!0)):this.reset():this.reset()}},{key:"next",value:function(){this._move(!0)}},{key:"prev",value:function(){this._move(!1)}},{key:"_move",value:function(t){if(this._model)try{this._ignore=!0,this._index=e._moveIndex(t,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}}],[{key:"_moveIndex",value:function(e,t,n){for(var i=n;(i=(i+t.items.length+(e?1:-1))%t.items.length)!==n&&t.items[i].completion.additionalTextEdits;);return i}}]),e}();iH.OtherSuggestions=new gx.uy("hasOtherSuggestions",!1),iH=tH([nH(1,gx.i6)],iH);var rH=function(){function e(t,n,r,o,a,s,u){(0,i.Z)(this,e),this.clipboardText=u,this._snippetCompareFn=e._compareCompletionItems,this._items=t,this._column=n,this._wordDistance=o,this._options=a,this._refilterKind=1,this._lineContext=r,"top"===s?this._snippetCompareFn=e._compareCompletionItemsSnippetsUp:"bottom"===s&&(this._snippetCompareFn=e._compareCompletionItemsSnippetsDown)}return(0,r.Z)(e,[{key:"lineContext",get:function(){return this._lineContext},set:function(e){this._lineContext.leadingLineContent===e.leadingLineContent&&this._lineContext.characterCountDelta===e.characterCountDelta||(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)}},{key:"items",get:function(){return this._ensureCachedState(),this._filteredItems}},{key:"allProvider",get:function(){return this._ensureCachedState(),this._providerInfo.keys()}},{key:"incomplete",get:function(){this._ensureCachedState();var e,t=new Set,n=(0,Tr.Z)(this._providerInfo);try{for(n.s();!(e=n.n()).done;){var i=(0,dt.Z)(e.value,2),r=i[0];i[1]&&t.add(r)}}catch(o){n.e(o)}finally{n.f()}return t}},{key:"adopt",value:function(e){for(var t=[],n=0;n<this._items.length;)e.has(this._items[n].provider)?n++:(t.push(this._items[n]),this._items[n]=this._items[this._items.length-1],this._items.pop());return this._refilterKind=1,t}},{key:"stats",get:function(){return this._ensureCachedState(),this._stats}},{key:"_ensureCachedState",value:function(){0!==this._refilterKind&&this._createCachedState()}},{key:"_createCachedState",value:function(){this._providerInfo=new Map;for(var e=[],t=this._lineContext,n=t.leadingLineContent,i=t.characterCountDelta,r="",o="",a=1===this._refilterKind?this._items:this._filteredItems,s=[],u=!this._options.filterGraceful||a.length>2e3?kT.EW:kT.l7,l=0;l<a.length;l++){var c=a[l];if(!c.isInvalid){this._providerInfo.set(c.provider,Boolean(c.container.incomplete));var d=c.position.column-c.editStart.column,h=d+i-(c.position.column-this._column);if(r.length!==h&&(o=(r=0===h?"":n.slice(-h)).toLowerCase()),c.word=r,0===h)c.score=kT.CL.Default;else{for(var f=0;f<d;){var p=r.charCodeAt(f);if(32!==p&&9!==p)break;f+=1}if(f>=h)c.score=kT.CL.Default;else if("string"===typeof c.completion.filterText){var v=u(r,o,f,c.completion.filterText,c.filterTextLow,0,!1);if(!v)continue;0===(0,CL.zY)(c.completion.filterText,c.textLabel)?c.score=v:(c.score=(0,kT.jB)(r,o,f,c.textLabel,c.labelLow,0),c.score[0]=v[0])}else{var g=u(r,o,f,c.textLabel,c.labelLow,0,!1);if(!g)continue;c.score=g}}c.idx=l,c.distance=this._wordDistance.distance(c.position,c.completion),s.push(c),e.push(c.textLabel.length)}}this._filteredItems=s.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?(0,mx.HW)(e.length-.85,e,(function(e,t){return e-t})):0}}}],[{key:"_compareCompletionItems",value:function(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:e.idx>t.idx?1:0}},{key:"_compareCompletionItemsSnippetsDown",value:function(t,n){if(t.completion.kind!==n.completion.kind){if(27===t.completion.kind)return 1;if(27===n.completion.kind)return-1}return e._compareCompletionItems(t,n)}},{key:"_compareCompletionItemsSnippetsUp",value:function(t,n){if(t.completion.kind!==n.completion.kind){if(27===t.completion.kind)return-1;if(27===n.completion.kind)return 1}return e._compareCompletionItems(t,n)}}]),e}(),oH=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},aH=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,null,[{key:"create",value:function(t,n){return oH(this,void 0,void 0,ki().mark((function s(){var u,l,c,d,h,f,p;return ki().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:if(n.getOption(103).localityBonus){s.next=2;break}return s.abrupt("return",e.None);case 2:if(n.hasModel()){s.next=4;break}return s.abrupt("return",e.None);case 4:if(u=n.getModel(),l=n.getPosition(),t.canComputeWordRanges(u.uri)){s.next=8;break}return s.abrupt("return",e.None);case 8:return s.next=10,(new WF).provideSelectionRanges(u,[l]);case 10:if(c=s.sent,d=(0,dt.Z)(c,1),0!==(h=d[0]).length){s.next=15;break}return s.abrupt("return",e.None);case 15:return s.next=17,t.computeWordRanges(u.uri,h[0].range);case 17:if(f=s.sent){s.next=20;break}return s.abrupt("return",e.None);case 20:return p=u.getWordUntilPosition(l),delete f[p.word],s.abrupt("return",new(function(e){(0,o.Z)(s,e);var t=(0,a.Z)(s);function s(){return(0,i.Z)(this,s),t.apply(this,arguments)}return(0,r.Z)(s,[{key:"distance",value:function(e,t){if(!l.equals(n.getPosition()))return 0;if(17===t.kind)return 2<<20;var i="string"===typeof t.label?t.label:t.label.name,r=f[i];if((0,mx.XY)(r))return 2<<20;var o,a=(0,mx.ry)(r,Fx.e.fromPositions(e),Fx.e.compareRangesUsingStarts),s=a>=0?r[a]:r[Math.max(0,~a-1)],u=h.length,c=(0,Tr.Z)(h);try{for(c.s();!(o=c.n()).done;){var d=o.value;if(!Fx.e.containsRange(d.range,s))break;u-=1}}catch(p){c.e(p)}finally{c.f()}return u}}]),s}(e)));case 23:case"end":return s.stop()}}),s)})))}}]),e}();aH.None=new(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"distance",value:function(){return 0}}]),n}(aH));var sH=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},uH=function(e,t){return function(n,i){t(n,i,e)}},lH=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},cH=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.leadingLineContent=t.getLineContent(n.lineNumber).substr(0,n.column-1),this.leadingWord=t.getWordUntilPosition(n),this.lineNumber=n.lineNumber,this.column=n.column,this.auto=r,this.shy=o}return(0,r.Z)(e,null,[{key:"shouldAutoTrigger",value:function(e){if(!e.hasModel())return!1;var t=e.getModel(),n=e.getPosition();t.tokenizeIfCheap(n.lineNumber);var i=t.getWordAtPosition(n);return!!i&&(i.endColumn===n.column&&!!isNaN(Number(i.word)))}}]),e}(),dH=function(){function e(t,n,r,o,a){var s=this;(0,i.Z)(this,e),this._editor=t,this._editorWorkerService=n,this._clipboardService=r,this._telemetryService=o,this._logService=a,this._toDispose=new Rx.SL,this._quickSuggestDelay=10,this._triggerCharacterListener=new Rx.SL,this._triggerQuickSuggest=new Px._F,this._state=0,this._completionDisposables=new Rx.SL,this._onDidCancel=new hE.Q5,this._onDidTrigger=new hE.Q5,this._onDidSuggest=new hE.Q5,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new px.Y(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((function(){s._updateTriggerCharacters(),s.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((function(){s._updateTriggerCharacters(),s.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((function(){s._updateTriggerCharacters(),s._updateQuickSuggest()}))),this._toDispose.add(LL.KZ.onDidChange((function(){s._updateTriggerCharacters(),s._updateActiveSuggestSession()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((function(e){s._onCursorChange(e)})));var u=!1;this._toDispose.add(this._editor.onDidCompositionStart((function(){u=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((function(){u=!1,s._refilterCompletionItems()}))),this._toDispose.add(this._editor.onDidChangeModelContent((function(){u||s._refilterCompletionItems()}))),this._updateTriggerCharacters(),this._updateQuickSuggest()}return(0,r.Z)(e,[{key:"dispose",value:function(){(0,Rx.B9)(this._triggerCharacterListener),(0,Rx.B9)([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}},{key:"_updateQuickSuggest",value:function(){this._quickSuggestDelay=this._editor.getOption(76),(isNaN(this._quickSuggestDelay)||!this._quickSuggestDelay&&0!==this._quickSuggestDelay||this._quickSuggestDelay<0)&&(this._quickSuggestDelay=10)}},{key:"_updateTriggerCharacters",value:function(){var e=this;if(this._triggerCharacterListener.clear(),!this._editor.getOption(77)&&this._editor.hasModel()&&this._editor.getOption(106)){var t,n=new Map,i=(0,Tr.Z)(LL.KZ.all(this._editor.getModel()));try{for(i.s();!(t=i.n()).done;){var r,o=t.value,a=(0,Tr.Z)(o.triggerCharacters||[]);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=n.get(s);u||((u=new Set).add(uj),n.set(s,u)),u.add(o)}}catch(c){a.e(c)}finally{a.f()}}}catch(c){i.e(c)}finally{i.f()}var l=function(t){if(!t){var i=e._editor.getPosition();t=e._editor.getModel().getLineContent(i.lineNumber).substr(0,i.column-1)}var r="";(0,CL.YK)(t.charCodeAt(t.length-1))?(0,CL.ZG)(t.charCodeAt(t.length-2))&&(r=t.substr(t.length-2)):r=t.charAt(t.length-1);var o=n.get(r);if(o){var a=e._completionModel?{items:e._completionModel.adopt(o),clipboardText:e._completionModel.clipboardText}:void 0;e.trigger({auto:!0,shy:!1,triggerCharacter:r},Boolean(e._completionModel),o,a)}};this._triggerCharacterListener.add(this._editor.onDidType(l)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(l))}}},{key:"state",get:function(){return this._state}},{key:"cancel",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];0!==this._state&&(this._triggerQuickSuggest.cancel(),null===(e=this._requestToken)||void 0===e||e.cancel(),this._requestToken=void 0,this._state=0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:t}))}},{key:"clear",value:function(){this._completionDisposables.clear()}},{key:"_updateActiveSuggestSession",value:function(){0!==this._state&&(this._editor.hasModel()&&LL.KZ.has(this._editor.getModel())?this.trigger({auto:2===this._state,shy:!1},!0):this.cancel())}},{key:"_onCursorChange",value:function(e){var t=this;if(this._editor.hasModel()){var n=this._editor.getModel(),i=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||0!==e.reason&&3!==e.reason||"keyboard"!==e.source&&"deleteLeft"!==e.source)this.cancel();else if(LL.KZ.has(n))if(0===this._state&&0===e.reason){if(!1===this._editor.getOption(75))return;if(!i.containsRange(this._currentSelection)&&!i.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))return;if(this._editor.getOption(103).snippetsPreventQuickSuggestions&&Yj.get(this._editor).isInSnippet())return;this.cancel(),this._triggerQuickSuggest.cancelAndSet((function(){if(0===t._state&&cH.shouldAutoTrigger(t._editor)&&t._editor.hasModel()){var e=t._editor.getModel(),n=t._editor.getPosition(),i=t._editor.getOption(75);if(!1!==i){if(!0===i);else{e.tokenizeIfCheap(n.lineNumber);var r=e.getLineTokens(n.lineNumber),o=r.getStandardTokenType(r.findTokenIndexAtOffset(Math.max(n.column-1-1,0)));if(!(i.other&&0===o||i.comments&&1===o||i.strings&&2===o))return}t.trigger({auto:!0,shy:!1})}}}),this._quickSuggestDelay)}else 0!==this._state&&3===e.reason&&this._refilterCompletionItems()}}},{key:"_refilterCompletionItems",value:function(){var e=this;Promise.resolve().then((function(){if(0!==e._state&&e._editor.hasModel()){var t=e._editor.getModel(),n=e._editor.getPosition(),i=new cH(t,n,2===e._state,!1);e._onNewContext(i)}}))}},{key:"trigger",value:function(t){var n,i=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0;if(this._editor.hasModel()){var s=this._editor.getModel(),u=t.auto,l=new cH(s,this._editor.getPosition(),u,t.shy);this.cancel(r),this._state=u?2:1,this._onDidTrigger.fire({auto:u,shy:t.shy,position:this._editor.getPosition()}),this._context=l;var c={triggerKind:null!==(n=t.triggerKind)&&void 0!==n?n:0};t.triggerCharacter&&(c={triggerKind:1,triggerCharacter:t.triggerCharacter}),this._requestToken=new bL.A;var d=this._editor.getOption(98),h=1;switch(d){case"top":h=0;break;case"bottom":h=2}var f=e._createItemKindFilter(this._editor),p=aH.create(this._editorWorkerService,this._editor),v=_j(s,this._editor.getPosition(),new gj(h,f,o),c,this._requestToken.token);Promise.all([v,p]).then((function(e){var n=(0,dt.Z)(e,2),r=n[0],o=n[1];return lH(i,void 0,void 0,ki().mark((function e(){var n,i,s,l,c,d;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(n=this._requestToken)||void 0===n||n.dispose(),this._editor.hasModel()){e.next=3;break}return e.abrupt("return");case 3:if((i=null===a||void 0===a?void 0:a.clipboardText)||!r.needsClipboard){e.next=8;break}return e.next=7,this._clipboardService.readText();case 7:i=e.sent;case 8:if(0!==this._state){e.next=10;break}return e.abrupt("return");case 10:s=this._editor.getModel(),l=r.items,a&&(c=wj(h),l=l.concat(a.items).sort(c)),d=new cH(s,this._editor.getPosition(),u,t.shy),this._completionModel=new rH(l,this._context.column,{leadingLineContent:d.leadingLineContent,characterCountDelta:d.column-this._context.column},o,this._editor.getOption(103),this._editor.getOption(98),i),this._completionDisposables.add(r.disposable),this._onNewContext(d),this._reportDurationsTelemetry(r.durations);case 18:case"end":return e.stop()}}),e,this)})))})).catch(yx.dL)}}},{key:"_reportDurationsTelemetry",value:function(e){var t=this;this._telemetryGate++%230===0&&setTimeout((function(){t._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(e)}),t._logService.debug("suggest.durations.json",e)}))}},{key:"_onNewContext",value:function(e){if(this._context)if(e.lineNumber===this._context.lineNumber)if((0,CL.V8)(e.leadingLineContent)===(0,CL.V8)(this._context.leadingLineContent)){if(e.column<this._context.column)e.leadingWord.word?this.trigger({auto:this._context.auto,shy:!1},!0):this.cancel();else if(this._completionModel)if(0!==e.leadingWord.word.length&&e.leadingWord.startColumn>this._context.leadingWord.startColumn){var t,n=new Set(LL.KZ.all(this._editor.getModel())),i=(0,Tr.Z)(this._completionModel.allProvider);try{for(i.s();!(t=i.n()).done;){var r=t.value;n.delete(r)}}catch(c){i.e(c)}finally{i.f()}var o=this._completionModel.adopt(new Set);this.trigger({auto:this._context.auto,shy:!1},!0,n,{items:o,clipboardText:this._completionModel.clipboardText})}else if(e.column>this._context.column&&this._completionModel.incomplete.size>0&&0!==e.leadingWord.word.length){var a=this._completionModel.incomplete,s=this._completionModel.adopt(a);this.trigger({auto:2===this._state,shy:!1,triggerKind:2},!0,a,{items:s,clipboardText:this._completionModel.clipboardText})}else{var u=this._completionModel.lineContext,l=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},0===this._completionModel.items.length){if(cH.shouldAutoTrigger(this._editor)&&this._context.leadingWord.endColumn<e.leadingWord.startColumn)return void this.trigger({auto:this._context.auto,shy:!1},!0);if(this._context.auto)return void this.cancel();if(this._completionModel.lineContext=u,(l=this._completionModel.items.length>0)&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,auto:this._context.auto,shy:this._context.shy,isFrozen:l})}}else this.cancel();else this.cancel()}}],[{key:"_createItemKindFilter",value:function(e){var t=new Set;"none"===e.getOption(98)&&t.add(27);var n=e.getOption(103);return n.showMethods||t.add(0),n.showFunctions||t.add(1),n.showConstructors||t.add(2),n.showFields||t.add(3),n.showVariables||t.add(4),n.showClasses||t.add(5),n.showStructs||t.add(6),n.showInterfaces||t.add(7),n.showModules||t.add(8),n.showProperties||t.add(9),n.showEvents||t.add(10),n.showOperators||t.add(11),n.showUnits||t.add(12),n.showValues||t.add(13),n.showConstants||t.add(14),n.showEnums||t.add(15),n.showEnumMembers||t.add(16),n.showKeywords||t.add(17),n.showWords||t.add(18),n.showColors||t.add(19),n.showFiles||t.add(20),n.showReferences||t.add(21),n.showColors||t.add(22),n.showFolders||t.add(23),n.showTypeParameters||t.add(24),n.showSnippets||t.add(27),n.showUsers||t.add(25),n.showIssues||t.add(26),t}}]),e}();dH=sH([uH(1,GP.p),uH(2,sL.p),uH(3,DE.b),uH(4,MF.VZ)],dH);n(22410);var hH=(0,zx.P6)("symbolIcon.arrayForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),fH=(0,zx.P6)("symbolIcon.booleanForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),pH=(0,zx.P6)("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},(0,hx.N)("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),vH=(0,zx.P6)("symbolIcon.colorForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),gH=(0,zx.P6)("symbolIcon.constantForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),mH=(0,zx.P6)("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},(0,hx.N)("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),_H=(0,zx.P6)("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},(0,hx.N)("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),yH=(0,zx.P6)("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,hx.N)("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),bH=(0,zx.P6)("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},(0,hx.N)("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),wH=(0,zx.P6)("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,hx.N)("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),CH=(0,zx.P6)("symbolIcon.fileForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),kH=(0,zx.P6)("symbolIcon.folderForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),SH=(0,zx.P6)("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},(0,hx.N)("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),xH=(0,zx.P6)("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,hx.N)("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),LH=(0,zx.P6)("symbolIcon.keyForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),EH=(0,zx.P6)("symbolIcon.keywordForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),NH=(0,zx.P6)("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},(0,hx.N)("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),DH=(0,zx.P6)("symbolIcon.moduleForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),MH=(0,zx.P6)("symbolIcon.namespaceForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),TH=(0,zx.P6)("symbolIcon.nullForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),OH=(0,zx.P6)("symbolIcon.numberForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),IH=(0,zx.P6)("symbolIcon.objectForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),AH=(0,zx.P6)("symbolIcon.operatorForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),PH=(0,zx.P6)("symbolIcon.packageForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),RH=(0,zx.P6)("symbolIcon.propertyForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),ZH=(0,zx.P6)("symbolIcon.referenceForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),FH=(0,zx.P6)("symbolIcon.snippetForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),jH=(0,zx.P6)("symbolIcon.stringForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),HH=(0,zx.P6)("symbolIcon.structForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),BH=(0,zx.P6)("symbolIcon.textForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),zH=(0,zx.P6)("symbolIcon.typeParameterForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),WH=(0,zx.P6)("symbolIcon.unitForeground",{dark:zx.dR,light:zx.dR,hc:zx.dR},(0,hx.N)("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),VH=(0,zx.P6)("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,hx.N)("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));(0,Wx.Ic)((function(e,t){var n=e.getColor(hH);n&&t.addRule("".concat(pE.lA.symbolArray.cssSelector," { color: ").concat(n,"; }"));var i=e.getColor(fH);i&&t.addRule("".concat(pE.lA.symbolBoolean.cssSelector," { color: ").concat(i,"; }"));var r=e.getColor(pH);r&&t.addRule("".concat(pE.lA.symbolClass.cssSelector," { color: ").concat(r,"; }"));var o=e.getColor(NH);o&&t.addRule("".concat(pE.lA.symbolMethod.cssSelector," { color: ").concat(o,"; }"));var a=e.getColor(vH);a&&t.addRule("".concat(pE.lA.symbolColor.cssSelector," { color: ").concat(a,"; }"));var s=e.getColor(gH);s&&t.addRule("".concat(pE.lA.symbolConstant.cssSelector," { color: ").concat(s,"; }"));var u=e.getColor(mH);u&&t.addRule("".concat(pE.lA.symbolConstructor.cssSelector," { color: ").concat(u,"; }"));var l=e.getColor(_H);l&&t.addRule("\n\t\t\t".concat(pE.lA.symbolValue.cssSelector,",").concat(pE.lA.symbolEnum.cssSelector," { color: ").concat(l,"; }"));var c=e.getColor(yH);c&&t.addRule("".concat(pE.lA.symbolEnumMember.cssSelector," { color: ").concat(c,"; }"));var d=e.getColor(bH);d&&t.addRule("".concat(pE.lA.symbolEvent.cssSelector," { color: ").concat(d,"; }"));var h=e.getColor(wH);h&&t.addRule("".concat(pE.lA.symbolField.cssSelector," { color: ").concat(h,"; }"));var f=e.getColor(CH);f&&t.addRule("".concat(pE.lA.symbolFile.cssSelector," { color: ").concat(f,"; }"));var p=e.getColor(kH);p&&t.addRule("".concat(pE.lA.symbolFolder.cssSelector," { color: ").concat(p,"; }"));var v=e.getColor(SH);v&&t.addRule("".concat(pE.lA.symbolFunction.cssSelector," { color: ").concat(v,"; }"));var g=e.getColor(xH);g&&t.addRule("".concat(pE.lA.symbolInterface.cssSelector," { color: ").concat(g,"; }"));var m=e.getColor(LH);m&&t.addRule("".concat(pE.lA.symbolKey.cssSelector," { color: ").concat(m,"; }"));var _=e.getColor(EH);_&&t.addRule("".concat(pE.lA.symbolKeyword.cssSelector," { color: ").concat(_,"; }"));var y=e.getColor(DH);y&&t.addRule("".concat(pE.lA.symbolModule.cssSelector," { color: ").concat(y,"; }"));var b=e.getColor(MH);b&&t.addRule("".concat(pE.lA.symbolNamespace.cssSelector," { color: ").concat(b,"; }"));var w=e.getColor(TH);w&&t.addRule("".concat(pE.lA.symbolNull.cssSelector," { color: ").concat(w,"; }"));var C=e.getColor(OH);C&&t.addRule("".concat(pE.lA.symbolNumber.cssSelector," { color: ").concat(C,"; }"));var k=e.getColor(IH);k&&t.addRule("".concat(pE.lA.symbolObject.cssSelector," { color: ").concat(k,"; }"));var S=e.getColor(AH);S&&t.addRule("".concat(pE.lA.symbolOperator.cssSelector," { color: ").concat(S,"; }"));var x=e.getColor(PH);x&&t.addRule("".concat(pE.lA.symbolPackage.cssSelector," { color: ").concat(x,"; }"));var L=e.getColor(RH);L&&t.addRule("".concat(pE.lA.symbolProperty.cssSelector," { color: ").concat(L,"; }"));var E=e.getColor(ZH);E&&t.addRule("".concat(pE.lA.symbolReference.cssSelector," { color: ").concat(E,"; }"));var N=e.getColor(FH);N&&t.addRule("".concat(pE.lA.symbolSnippet.cssSelector," { color: ").concat(N,"; }"));var D=e.getColor(jH);D&&t.addRule("".concat(pE.lA.symbolString.cssSelector," { color: ").concat(D,"; }"));var M=e.getColor(HH);M&&t.addRule("".concat(pE.lA.symbolStruct.cssSelector," { color: ").concat(M,"; }"));var T=e.getColor(BH);T&&t.addRule("".concat(pE.lA.symbolText.cssSelector," { color: ").concat(T,"; }"));var O=e.getColor(zH);O&&t.addRule("".concat(pE.lA.symbolTypeParameter.cssSelector," { color: ").concat(O,"; }"));var I=e.getColor(WH);I&&t.addRule("".concat(pE.lA.symbolUnit.cssSelector," { color: ").concat(I,"; }"));var A=e.getColor(VH);A&&t.addRule("".concat(pE.lA.symbolVariable.cssSelector," { color: ").concat(A,"; }"))}));var YH=n(92814),UH=function(){function e(){var t,n=this;(0,i.Z)(this,e),this._onDidWillResize=new hE.Q5,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new hE.Q5,this.onDidResize=this._onDidResize.event,this._sashListener=new Rx.SL,this._size=new eE.Dimension(0,0),this._minSize=new eE.Dimension(0,0),this._maxSize=new eE.Dimension(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new iD.g(this.domNode,{getVerticalSashLeft:function(){return n._size.width}},{orientation:0}),this._westSash=new iD.g(this.domNode,{getVerticalSashLeft:function(){return 0}},{orientation:0}),this._northSash=new iD.g(this.domNode,{getHorizontalSashTop:function(){return 0}},{orientation:1,orthogonalEdge:iD.l.North}),this._southSash=new iD.g(this.domNode,{getHorizontalSashTop:function(){return n._size.height}},{orientation:1,orthogonalEdge:iD.l.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;var r=0,o=0;this._sashListener.add(hE.ju.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)((function(){void 0===t&&(n._onDidWillResize.fire(),t=n._size,r=0,o=0)}))),this._sashListener.add(hE.ju.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)((function(){void 0!==t&&(t=void 0,r=0,o=0,n._onDidResize.fire({dimension:n._size,done:!0}))}))),this._sashListener.add(this._eastSash.onDidChange((function(e){t&&(o=e.currentX-e.startX,n.layout(t.height+r,t.width+o),n._onDidResize.fire({dimension:n._size,done:!1,east:!0}))}))),this._sashListener.add(this._westSash.onDidChange((function(e){t&&(o=-(e.currentX-e.startX),n.layout(t.height+r,t.width+o),n._onDidResize.fire({dimension:n._size,done:!1,west:!0}))}))),this._sashListener.add(this._northSash.onDidChange((function(e){t&&(r=-(e.currentY-e.startY),n.layout(t.height+r,t.width+o),n._onDidResize.fire({dimension:n._size,done:!1,north:!0}))}))),this._sashListener.add(this._southSash.onDidChange((function(e){t&&(r=e.currentY-e.startY,n.layout(t.height+r,t.width+o),n._onDidResize.fire({dimension:n._size,done:!1,south:!0}))}))),this._sashListener.add(hE.ju.any(this._eastSash.onDidReset,this._westSash.onDidReset)((function(e){n._preferredSize&&(n.layout(n._size.height,n._preferredSize.width),n._onDidResize.fire({dimension:n._size,done:!0}))}))),this._sashListener.add(hE.ju.any(this._northSash.onDidReset,this._southSash.onDidReset)((function(e){n._preferredSize&&(n.layout(n._preferredSize.height,n._size.width),n._onDidResize.fire({dimension:n._size,done:!0}))})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this.domNode.remove()}},{key:"enableSashes",value:function(e,t,n,i){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=n?3:0,this._westSash.state=i?3:0}},{key:"layout",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.size.height,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.size.width,n=this._minSize,i=n.height,r=n.width,o=this._maxSize,a=o.height,s=o.width;e=Math.max(i,Math.min(a,e)),t=Math.max(r,Math.min(s,t));var u=new eE.Dimension(t,e);eE.Dimension.equals(u,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=u,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}},{key:"clearSashHoverState",value:function(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}},{key:"size",get:function(){return this._size}},{key:"maxSize",get:function(){return this._maxSize},set:function(e){this._maxSize=e}},{key:"minSize",get:function(){return this._minSize},set:function(e){this._minSize=e}},{key:"preferredSize",get:function(){return this._preferredSize},set:function(e){this._preferredSize=e}}]),e}(),KH=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},qH=function(e,t){return function(n,i){t(n,i,e)}};function GH(e){return!!e&&Boolean(e.completion.documentation||e.completion.detail&&e.completion.detail!==e.completion.label)}var $H=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._editor=t,this._onDidClose=new hE.Q5,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new hE.Q5,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new Rx.SL,this._renderDisposeable=new Rx.SL,this._borderWidth=1,this._size=new eE.Dimension(330,0),this.domNode=eE.$(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=n.createInstance(WM,{editor:t}),this._body=eE.$(".body"),this._scrollbar=new zN.s$(this._body,{}),eE.append(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=eE.append(this._body,eE.$(".header")),this._close=eE.append(this._header,eE.$("span"+pE.lA.close.cssSelector)),this._close.title=hx.N("details.close","Close"),this._type=eE.append(this._header,eE.$("p.type")),this._docs=eE.append(this._body,eE.$("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&r._configureFont()})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this._renderDisposeable.dispose()}},{key:"_configureFont",value:function(){var e=this._editor.getOptions(),t=e.get(40),n=t.fontFamily,i=e.get(104)||t.fontSize,r=e.get(105)||t.lineHeight,o=t.fontWeight,a="".concat(i,"px"),s="".concat(r,"px");this.domNode.style.fontSize=a,this.domNode.style.lineHeight=s,this.domNode.style.fontWeight=o,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=n,this._close.style.height=s,this._close.style.width=s}},{key:"getLayoutInfo",value:function(){var e=this._editor.getOption(105)||this._editor.getOption(40).lineHeight,t=this._borderWidth;return{lineHeight:e,borderWidth:t,borderHeight:2*t,verticalPadding:22,horizontalPadding:14}}},{key:"renderLoading",value:function(){this._type.textContent=hx.N("loading","Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,2*this.getLayoutInfo().lineHeight),this._onDidChangeContents.fire(this)}},{key:"renderItem",value:function(e,t){var n,i,r=this;this._renderDisposeable.clear();var o=e.completion,a=o.detail,s=o.documentation;if(t){var u="";u+="score: ".concat(e.score[0],"\n"),u+="prefix: ".concat(null!==(n=e.word)&&void 0!==n?n:"(no prefix)","\n"),u+="word: ".concat(e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel,"\n"),u+="distance: ".concat(e.distance," (localityBonus-setting)\n"),u+="index: ".concat(e.idx,", based on ").concat(e.completion.sortText&&'sortText: "'.concat(e.completion.sortText,'"')||"label","\n"),u+="commit_chars: ".concat(null===(i=e.completion.commitCharacters)||void 0===i?void 0:i.join(""),"\n"),s=(new bx).appendCodeblock("empty",u),a="Provider: ".concat(e.provider._debugDisplayName)}if(t||GH(e)){if(this.domNode.classList.remove("no-docs","no-type"),a){var l=a.length>1e5?"".concat(a.substr(0,1e5),"\u2026"):a;this._type.textContent=l,this._type.title=l,eE.show(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gim.test(l))}else eE.clearNode(this._type),this._type.title="",eE.hide(this._type),this.domNode.classList.add("no-type");if(eE.clearNode(this._docs),"string"===typeof s)this._docs.classList.remove("markdown-docs"),this._docs.textContent=s;else if(s){this._docs.classList.add("markdown-docs"),eE.clearNode(this._docs);var c=this._markdownRenderer.render(s);this._docs.appendChild(c.element),this._renderDisposeable.add(c),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync((function(){r.layout(r._size.width,r._type.clientHeight+r._docs.clientHeight),r._onDidChangeContents.fire(r)})))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=function(e){e.preventDefault(),e.stopPropagation()},this._close.onclick=function(e){e.preventDefault(),e.stopPropagation(),r._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}else this.clearContents()}},{key:"clearContents",value:function(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}},{key:"size",get:function(){return this._size}},{key:"layout",value:function(e,t){var n=new eE.Dimension(e,t);eE.Dimension.equals(n,this._size)||(this._size=n,eE.size(this.domNode,e,t)),this._scrollbar.scanDomNode()}},{key:"scrollDown",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;this._body.scrollTop+=e}},{key:"scrollUp",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;this._body.scrollTop-=e}},{key:"scrollTop",value:function(){this._body.scrollTop=0}},{key:"scrollBottom",value:function(){this._body.scrollTop=this._body.scrollHeight}},{key:"pageDown",value:function(){this.scrollDown(80)}},{key:"pageUp",value:function(){this.scrollUp(80)}},{key:"borderWidth",get:function(){return this._borderWidth},set:function(e){this._borderWidth=e}}]),e}();$H=KH([qH(1,JL.TG)],$H);var QH=function(){function e(t,n){var r,o,a=this;(0,i.Z)(this,e),this.widget=t,this._editor=n,this._disposables=new Rx.SL,this._added=!1,this._resizable=new UH,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(t.domNode),this._resizable.enableSashes(!1,!0,!0,!1);var s=0,u=0;this._disposables.add(this._resizable.onDidWillResize((function(){r=a._topLeft,o=a._resizable.size}))),this._disposables.add(this._resizable.onDidResize((function(e){if(r&&o){a.widget.layout(e.dimension.width,e.dimension.height);var t=!1;e.west&&(u=o.width-e.dimension.width,t=!0),e.north&&(s=o.height-e.dimension.height,t=!0),t&&a._applyTopLeft({top:r.top+s,left:r.left+u})}e.done&&(r=void 0,o=void 0,s=0,u=0,a._userSize=e.dimension)}))),this._disposables.add(this.widget.onDidChangeContents((function(){var e;a._anchorBox&&a._placeAtAnchor(a._anchorBox,null!==(e=a._userSize)&&void 0!==e?e:a.widget.size)})))}return(0,r.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this.hide()}},{key:"getId",value:function(){return"suggest.details"}},{key:"getDomNode",value:function(){return this._resizable.domNode}},{key:"getPosition",value:function(){return null}},{key:"show",value:function(){this._added||(this._editor.addOverlayWidget(this),this.getDomNode().style.position="fixed",this._added=!0)}},{key:"hide",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}},{key:"placeAtAnchor",value:function(e){var t,n=eE.getDomNodePagePosition(e);this._anchorBox=n,this._placeAtAnchor(this._anchorBox,null!==(t=this._userSize)&&void 0!==t?t:this.widget.size)}},{key:"_placeAtAnchor",value:function(e,t){var n,i,r,o,a=eE.getClientArea(document.body),s=this.widget.getLayoutInfo(),u=new eE.Dimension(220,2*s.lineHeight),l=0,c=e.top,d=e.top+e.height-s.borderHeight,h=a.width-(e.left+e.width+s.borderWidth+s.horizontalPadding);l=-s.borderWidth+e.left+e.width,o=!0,i=(n=new eE.Dimension(h,a.height-e.top-s.borderHeight-s.verticalPadding)).with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding),t.width>h&&(e.left>h&&(h=e.left-s.borderWidth-s.horizontalPadding,o=!1,l=Math.max(s.horizontalPadding,e.left-t.width-s.borderWidth),i=(n=n.with(h)).with(void 0,i.height)),e.width>1.3*h&&a.height-(e.top+e.height)>e.height&&(h=e.width,l=e.left,c=-s.borderWidth+e.top+e.height,i=(n=new eE.Dimension(e.width-s.borderHeight,a.height-e.top-e.height-s.verticalPadding)).with(void 0,e.top-s.verticalPadding),u=u.with(n.width)));var f,p=t.height,v=Math.max(n.height,i.height);p>v&&(p=v),p<=n.height?(r=!0,f=n):(r=!1,f=i),this._applyTopLeft({left:l,top:r?c:d-p}),this.getDomNode().style.position="fixed",this._resizable.enableSashes(!r,o,r,!o),this._resizable.minSize=u,this._resizable.maxSize=f,this._resizable.layout(p,Math.min(f.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}},{key:"_applyTopLeft",value:function(e){this._topLeft=e,this.getDomNode().style.left="".concat(this._topLeft.left,"px"),this.getDomNode().style.top="".concat(this._topLeft.top,"px")}}]),e}(),XH=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},JH=function(e,t){return function(n,i){t(n,i,e)}},eB=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"updateLabel",value:function(){var e=this._keybindingService.lookupKeybinding(this._action.id);if(!e)return(0,YL.Z)((0,UL.Z)(n.prototype),"updateLabel",this).call(this);this.label&&(this.label.textContent=(0,hx.N)("ddd","{0} ({1})",this._action.label,n.symbolPrintEnter(e)))}}],[{key:"symbolPrintEnter",value:function(e){var t;return null===(t=e.getLabel())||void 0===t?void 0:t.replace(/\benter\b/gi,"\u23ce")}}]),n}(bD),tB=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._menuService=r,this._contextKeyService=o,this._menuDisposables=new Rx.SL,this.element=eE.append(t,eE.$(".suggest-status-bar"));var a=function(e){return e instanceof Vx.U8?n.createInstance(eB,e):void 0};this._leftActions=new QN.o(this.element,{actionViewItemProvider:a}),this._rightActions=new QN.o(this.element,{actionViewItemProvider:a}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}return(0,r.Z)(e,[{key:"dispose",value:function(){this._menuDisposables.dispose(),this.element.remove()}},{key:"show",value:function(){var e=this,t=this._menuService.createMenu(pj,this._contextKeyService);this._menuDisposables.add(t.onDidChange((function(){return function(){var n,i=[],r=[],o=(0,Tr.Z)(t.getActions());try{for(o.s();!(n=o.n()).done;){var a=(0,dt.Z)(n.value,2),s=a[0],u=a[1];"left"===s?i.push.apply(i,(0,Lt.Z)(u)):r.push.apply(r,(0,Lt.Z)(u))}}catch(l){o.e(l)}finally{o.f()}e._leftActions.clear(),e._leftActions.push(i),e._rightActions.clear(),e._rightActions.push(r)}()}))),this._menuDisposables.add(t)}},{key:"hide",value:function(){this._menuDisposables.clear()}}]),e}();tB=XH([JH(1,JL.TG),JH(2,Vx.co),JH(3,gx.i6)],tB);var nB,iB=n(54970);function rB(e,t,n,i){var r=i===nB.ROOT_FOLDER?["rootfolder-icon"]:i===nB.FOLDER?["folder-icon"]:["file-icon"];if(n){var o;if(n.scheme===KN.lg.data)o=ME.Vb.parseMetaData(n).get(ME.Vb.META_DATA_LABEL);else o=oB((0,ME.Hx)(n).toLowerCase());if(i===nB.FOLDER)r.push("".concat(o,"-name-folder-icon"));else{if(o){if(r.push("".concat(o,"-name-file-icon")),o.length<=255)for(var a=o.split("."),s=1;s<a.length;s++)r.push("".concat(a.slice(s).join("."),"-ext-file-icon"));r.push("ext-file-icon")}var u=function(e,t,n){if(!n)return null;var i=null;if(n.scheme===KN.lg.data){var r=ME.Vb.parseMetaData(n).get(ME.Vb.META_DATA_MIME);r&&(i=t.getModeId(r))}else{var o=e.getModel(n);o&&(i=o.getModeId())}if(i&&i!==iB.XT)return i;return t.getModeIdByFilepathOrFirstLine(n)}(e,t,n);u&&r.push("".concat(oB(u),"-lang-file-icon"))}}return r}function oB(e){return e.replace(/[\11\12\14\15\40]/g,"/")}!function(e){e[e.FILE=0]="FILE",e[e.FOLDER=1]="FOLDER",e[e.ROOT_FOLDER=2]="ROOT_FOLDER"}(nB||(nB={}));var aB,sB=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},uB=function(e,t){return function(n,i){t(n,i,e)}};function lB(e){return"suggest-aria-id:".concat(e)}var cB=(0,dM.q5)("suggest-more-info",pE.lA.chevronRight,hx.N("suggestMoreInfoIcon","Icon for more information in the suggest widget.")),dB=new(aB=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,[{key:"extract",value:function(t,n){if(t.textLabel.match(e._regexStrict))return n[0]=t.textLabel,!0;if(t.completion.detail&&t.completion.detail.match(e._regexStrict))return n[0]=t.completion.detail,!0;if("string"===typeof t.completion.documentation){var i=e._regexRelaxed.exec(t.completion.documentation);if(i&&(0===i.index||i.index+i[0].length===t.completion.documentation.length))return n[0]=i[0],!0}return!1}}]),e}(),aB._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,aB._regexStrict=new RegExp("^".concat(aB._regexRelaxed.source,"$"),"i"),aB),hB=function(){function e(t,n,r,o){(0,i.Z)(this,e),this._editor=t,this._modelService=n,this._modeService=r,this._themeService=o,this._onDidToggleDetails=new hE.Q5,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}return(0,r.Z)(e,[{key:"dispose",value:function(){this._onDidToggleDetails.dispose()}},{key:"renderTemplate",value:function(e){var t=this,n=Object.create(null);n.disposables=new Rx.SL,n.root=e,n.root.classList.add("show-file-icons"),n.icon=(0,eE.append)(e,(0,eE.$)(".icon")),n.colorspan=(0,eE.append)(n.icon,(0,eE.$)("span.colorspan"));var i=(0,eE.append)(e,(0,eE.$)(".contents")),r=(0,eE.append)(i,(0,eE.$)(".main"));n.iconContainer=(0,eE.append)(r,(0,eE.$)(".icon-label.codicon")),n.left=(0,eE.append)(r,(0,eE.$)("span.left")),n.right=(0,eE.append)(r,(0,eE.$)("span.right")),n.iconLabel=new bT.g(n.left,{supportHighlights:!0,supportIcons:!0}),n.disposables.add(n.iconLabel),n.parametersLabel=(0,eE.append)(n.left,(0,eE.$)("span.signature-label")),n.qualifierLabel=(0,eE.append)(n.left,(0,eE.$)("span.qualifier-label")),n.detailsLabel=(0,eE.append)(n.right,(0,eE.$)("span.details-label")),n.readMore=(0,eE.append)(n.right,(0,eE.$)("span.readMore"+Wx.kS.asCSSSelector(cB))),n.readMore.title=hx.N("readMore","Read More");var o=function(){var e=t._editor.getOptions(),i=e.get(40),o=i.fontFamily,a=i.fontFeatureSettings,s=e.get(104)||i.fontSize,u=e.get(105)||i.lineHeight,l=i.fontWeight,c="".concat(s,"px"),d="".concat(u,"px");n.root.style.fontSize=c,n.root.style.fontWeight=l,r.style.fontFamily=o,r.style.fontFeatureSettings=a,r.style.lineHeight=d,n.icon.style.height=d,n.icon.style.width=d,n.readMore.style.height=d,n.readMore.style.width=d};return o(),n.disposables.add(this._editor.onDidChangeConfiguration((function(e){(e.hasChanged(40)||e.hasChanged(104)||e.hasChanged(105))&&o()}))),n}},{key:"renderElement",value:function(e,t,n){var i,r,o,a=this,s=e.completion;n.root.id=lB(t),n.colorspan.style.backgroundColor="";var u={labelEscapeNewLines:!0,matches:(0,kT.mB)(e.score)},l=[];if(19===s.kind&&dB.extract(e,l))n.icon.className="icon customcolor",n.iconContainer.className="icon hide",n.colorspan.style.backgroundColor=l[0];else if(20===s.kind&&this._themeService.getFileIconTheme().hasFileIcons){n.icon.className="icon hide",n.iconContainer.className="icon hide";var c=rB(this._modelService,this._modeService,SL.o.from({scheme:"fake",path:e.textLabel}),nB.FILE),d=rB(this._modelService,this._modeService,SL.o.from({scheme:"fake",path:s.detail}),nB.FILE);u.extraClasses=c.length>d.length?c:d}else if(23===s.kind&&this._themeService.getFileIconTheme().hasFolderIcons)n.icon.className="icon hide",n.iconContainer.className="icon hide",u.extraClasses=(0,mx.xH)([rB(this._modelService,this._modeService,SL.o.from({scheme:"fake",path:e.textLabel}),nB.FOLDER),rB(this._modelService,this._modeService,SL.o.from({scheme:"fake",path:s.detail}),nB.FOLDER)]);else{var h;n.icon.className="icon hide",n.iconContainer.className="",(h=n.iconContainer.classList).add.apply(h,["suggest-icon"].concat((0,Lt.Z)((0,LL.Sy)(s.kind).split(" "))))}s.tags&&s.tags.indexOf(1)>=0&&(u.extraClasses=(u.extraClasses||[]).concat(["deprecated"]),u.matches=[]),n.iconLabel.setLabel(e.textLabel,void 0,u),"string"===typeof s.label?(n.parametersLabel.textContent="",n.qualifierLabel.textContent="",n.detailsLabel.textContent=(s.detail||"").replace(/\n.*$/m,""),n.root.classList.add("string-label"),n.root.title=""):(n.parametersLabel.textContent=(s.label.parameters||"").replace(/\n.*$/m,""),n.qualifierLabel.textContent=(s.label.qualifier||"").replace(/\n.*$/m,""),n.detailsLabel.textContent=(s.label.type||"").replace(/\n.*$/m,""),n.root.classList.remove("string-label"),n.root.title="".concat(e.textLabel).concat(null!==(i=s.label.parameters)&&void 0!==i?i:""," ").concat(null!==(r=s.label.qualifier)&&void 0!==r?r:""," ").concat(null!==(o=s.label.type)&&void 0!==o?o:"")),this._editor.getOption(103).showInlineDetails?(0,eE.show)(n.detailsLabel):(0,eE.hide)(n.detailsLabel),GH(e)?(n.right.classList.add("can-expand-details"),(0,eE.show)(n.readMore),n.readMore.onmousedown=function(e){e.stopPropagation(),e.preventDefault()},n.readMore.onclick=function(e){e.stopPropagation(),e.preventDefault(),a._onDidToggleDetails.fire()}):(n.right.classList.remove("can-expand-details"),(0,eE.hide)(n.readMore),n.readMore.onmousedown=null,n.readMore.onclick=null)}},{key:"disposeTemplate",value:function(e){e.disposables.dispose()}}]),e}();hB=sB([uB(1,EL.q),uB(2,MN.h),uB(3,Wx.XE)],hB);var fB=n(5265),pB=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},vB=function(e,t){return function(n,i){t(n,i,e)}},gB=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},mB=(0,zx.P6)("editorSuggestWidget.background",{dark:zx.D0,light:zx.D0,hc:zx.D0},hx.N("editorSuggestWidgetBackground","Background color of the suggest widget.")),_B=(0,zx.P6)("editorSuggestWidget.border",{dark:zx.D1,light:zx.D1,hc:zx.D1},hx.N("editorSuggestWidgetBorder","Border color of the suggest widget.")),yB=(0,zx.P6)("editorSuggestWidget.foreground",{dark:zx.NO,light:zx.NO,hc:zx.NO},hx.N("editorSuggestWidgetForeground","Foreground color of the suggest widget.")),bB=(0,zx.P6)("editorSuggestWidget.selectedBackground",{dark:zx.Vq,light:zx.Vq,hc:zx.Vq},hx.N("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget.")),wB=(0,zx.P6)("editorSuggestWidget.highlightForeground",{dark:zx.Gw,light:zx.Gw,hc:zx.Gw},hx.N("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget.")),CB=function(){function e(t,n){(0,i.Z)(this,e),this._service=t,this._key="suggestWidget.size/".concat(n.getEditorType(),"/").concat(n instanceof nD)}return(0,r.Z)(e,[{key:"restore",value:function(){var e,t=null!==(e=this._service.get(this._key,0))&&void 0!==e?e:"";try{var n=JSON.parse(t);if(eE.Dimension.is(n))return eE.Dimension.lift(n)}catch(aO){}}},{key:"store",value:function(e){this._service.store(this._key,JSON.stringify(e),0,1)}},{key:"reset",value:function(){this._service.remove(this._key,0)}}]),e}(),kB=function(){function e(t,n,o,a,s){var u=this;(0,i.Z)(this,e),this.editor=t,this._storageService=n,this._state=0,this._isAuto=!1,this._ignoreFocusEvents=!1,this._explainMode=!1,this._showTimeout=new Px._F,this._disposables=new Rx.SL,this._onDidSelect=new hE.Q5,this._onDidFocus=new hE.Q5,this._onDidHide=new hE.Q5,this._onDidShow=new hE.Q5,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new hE.Q5,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new UH,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new SB(this,t),this._persistedSize=new CB(n,t);var l,c=(0,r.Z)((function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];(0,i.Z)(this,e),this.persistedSize=t,this.currentSize=n,this.persistHeight=r,this.persistWidth=o}));this._disposables.add(this.element.onDidWillResize((function(){u._contentWidget.lockPreference(),l=new c(u._persistedSize.restore(),u.element.size)}))),this._disposables.add(this.element.onDidResize((function(e){var t,n,i,r;if(u._resize(e.dimension.width,e.dimension.height),l&&(l.persistHeight=l.persistHeight||!!e.north||!!e.south,l.persistWidth=l.persistWidth||!!e.east||!!e.west),e.done){if(l){var o=u.getLayoutInfo(),a=o.itemHeight,s=o.defaultSize,c=Math.round(a/2),d=u.element.size,h=d.width,f=d.height;(!l.persistHeight||Math.abs(l.currentSize.height-f)<=c)&&(f=null!==(n=null===(t=l.persistedSize)||void 0===t?void 0:t.height)&&void 0!==n?n:s.height),(!l.persistWidth||Math.abs(l.currentSize.width-h)<=c)&&(h=null!==(r=null===(i=l.persistedSize)||void 0===i?void 0:i.width)&&void 0!==r?r:s.width),u._persistedSize.store(new eE.Dimension(h,f))}u._contentWidget.unlockPreference(),l=void 0}}))),this._messageElement=eE.append(this.element.domNode,eE.$(".message")),this._listElement=eE.append(this.element.domNode,eE.$(".tree"));var d=s.createInstance($H,this.editor);d.onDidClose(this.toggleDetails,this,this._disposables),this._details=new QH(d,this.editor);var h=function(){return u.element.domNode.classList.toggle("no-icons",!u.editor.getOption(103).showIcons)};h();var f=s.createInstance(hB,this.editor);this._disposables.add(f),this._disposables.add(f.onDidToggleDetails((function(){return u.toggleDetails()}))),this._list=new YH.aV("SuggestWidget",this._listElement,{getHeight:function(e){return u.getLayoutInfo().itemHeight},getTemplateId:function(e){return"suggestion"}},[f],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,accessibilityProvider:{getRole:function(){return"option"},getAriaLabel:function(e){if(e.isResolved&&u._isDetailsVisible()){var t=e.completion,n=t.documentation,i=t.detail,r=CL.WU("{0}{1}",i||"",n?"string"===typeof n?n:n.value:"");return hx.N("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",e.textLabel,r)}return e.textLabel},getWidgetAriaLabel:function(){return hx.N("suggest","Suggest")},getWidgetRole:function(){return"listbox"}}}),this._status=s.createInstance(tB,this.element.domNode);var p=function(){return u.element.domNode.classList.toggle("with-status-bar",u.editor.getOption(103).showStatusBar)};p(),this._disposables.add((0,CT.Jl)(this._list,a,{listInactiveFocusBackground:bB,listInactiveFocusOutline:zx.xL})),this._disposables.add(a.onDidColorThemeChange((function(e){return u._onThemeChange(e)}))),this._onThemeChange(a.getColorTheme()),this._disposables.add(this._list.onMouseDown((function(e){return u._onListMouseDownOrTap(e)}))),this._disposables.add(this._list.onTap((function(e){return u._onListMouseDownOrTap(e)}))),this._disposables.add(this._list.onDidChangeSelection((function(e){return u._onListSelection(e)}))),this._disposables.add(this._list.onDidChangeFocus((function(e){return u._onListFocus(e)}))),this._disposables.add(this.editor.onDidChangeCursorSelection((function(){return u._onCursorSelectionChanged()}))),this._disposables.add(this.editor.onDidChangeConfiguration((function(e){e.hasChanged(103)&&(p(),h())}))),this._ctxSuggestWidgetVisible=fj.Visible.bindTo(o),this._ctxSuggestWidgetDetailsVisible=fj.DetailsVisible.bindTo(o),this._ctxSuggestWidgetMultipleSuggestions=fj.MultipleSuggestions.bindTo(o),this._disposables.add(eE.addStandardDisposableListener(this._details.widget.domNode,"keydown",(function(e){u._onDetailsKeydown.fire(e)}))),this._disposables.add(this.editor.onMouseDown((function(e){return u._onEditorMouseDown(e)})))}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),null===(e=this._loadingTimeout)||void 0===e||e.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}},{key:"_onEditorMouseDown",value:function(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}},{key:"_onCursorSelectionChanged",value:function(){0!==this._state&&this._contentWidget.layout()}},{key:"_onListMouseDownOrTap",value:function(e){"undefined"!==typeof e.element&&"undefined"!==typeof e.index&&(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}},{key:"_onListSelection",value:function(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}},{key:"_select",value:function(e,t){var n=this._completionModel;n&&(this._onDidSelect.fire({item:e,index:t,model:n}),this.editor.focus())}},{key:"_onThemeChange",value:function(e){var t=e.getColor(mB);t&&(this.element.domNode.style.backgroundColor=t.toString(),this._messageElement.style.backgroundColor=t.toString(),this._details.widget.domNode.style.backgroundColor=t.toString());var n=e.getColor(_B);n&&(this.element.domNode.style.borderColor=n.toString(),this._messageElement.style.borderColor=n.toString(),this._status.element.style.borderTopColor=n.toString(),this._details.widget.domNode.style.borderColor=n.toString(),this._detailsBorderColor=n.toString());var i=e.getColor(zx.R8);i&&(this._detailsFocusBorderColor=i.toString()),this._details.widget.borderWidth="hc"===e.type?2:1}},{key:"_onListFocus",value:function(e){var t,n=this;if(!this._ignoreFocusEvents){if(!e.elements.length)return this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),void this.editor.setAriaOptions({activeDescendant:void 0});if(this._completionModel){var i=e.elements[0],r=e.indexes[0];i!==this._focusedItem&&(null===(t=this._currentSuggestionDetails)||void 0===t||t.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=i,this._list.reveal(r),this._currentSuggestionDetails=(0,Px.PG)((function(e){return gB(n,void 0,void 0,ki().mark((function t(){var n,r,o=this;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,Px.Vg)((function(){o._isDetailsVisible()&&o.showDetails(!0)}),250),e.onCancellationRequested((function(){return n.dispose()})),t.next=4,i.resolve(e);case 4:return r=t.sent,n.dispose(),t.abrupt("return",r);case 7:case"end":return t.stop()}}),t)})))})),this._currentSuggestionDetails.then((function(){r>=n._list.length||i!==n._list.element(r)||(n._ignoreFocusEvents=!0,n._list.splice(r,1,[i]),n._list.setFocus([r]),n._ignoreFocusEvents=!1,n._isDetailsVisible()?n.showDetails(!1):n.element.domNode.classList.remove("docs-side"),n.editor.setAriaOptions({activeDescendant:lB(r)}))})).catch(yx.dL)),this._onDidFocus.fire({item:i,index:r,model:this._completionModel})}}}},{key:"_setState",value:function(t){if(this._state!==t)switch(this._state=t,this.element.domNode.classList.toggle("frozen",4===t),this.element.domNode.classList.remove("message"),t){case 0:eE.hide(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=e.LOADING_MESSAGE,eE.hide(this._listElement,this._status.element),eE.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0;break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=e.NO_SUGGESTIONS_MESSAGE,eE.hide(this._listElement,this._status.element),eE.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0;break;case 3:case 4:eE.hide(this._messageElement),eE.show(this._listElement,this._status.element),this._show();break;case 5:eE.hide(this._messageElement),eE.show(this._listElement,this._status.element),this._details.show(),this._show()}}},{key:"_show",value:function(){var e=this;this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet((function(){e.element.domNode.classList.add("visible"),e._onDidShow.fire(e)}),100)}},{key:"showTriggered",value:function(e,t){var n=this;0===this._state&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=(0,Px.Vg)((function(){return n._setState(1)}),t)))}},{key:"showSuggestions",value:function(e,t,n,i){var r,o;if(this._contentWidget.setPosition(this.editor.getPosition()),null===(r=this._loadingTimeout)||void 0===r||r.dispose(),null===(o=this._currentSuggestionDetails)||void 0===o||o.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),n&&2!==this._state&&0!==this._state)this._setState(4);else{var a=this._completionModel.items.length,s=0===a;if(this._ctxSuggestWidgetMultipleSuggestions.set(a>1),s)return this._setState(i?0:2),void(this._completionModel=void 0);this._focusedItem=void 0,this._list.splice(0,this._list.length,this._completionModel.items),this._setState(n?4:3),this._list.reveal(t,0),this._list.setFocus([t]),this._layout(this.element.size),this._detailsBorderColor&&(this._details.widget.domNode.style.borderColor=this._detailsBorderColor)}}},{key:"selectNextPage",value:function(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}},{key:"selectNext",value:function(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}},{key:"selectLast",value:function(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}},{key:"selectPreviousPage",value:function(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}},{key:"selectPrevious",value:function(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}},{key:"selectFirst",value:function(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}},{key:"getFocusedItem",value:function(){if(0!==this._state&&2!==this._state&&1!==this._state&&this._completionModel)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}},{key:"toggleDetailsFocus",value:function(){5===this._state?(this._setState(3),this._detailsBorderColor&&(this._details.widget.domNode.style.borderColor=this._detailsBorderColor)):3===this._state&&this._isDetailsVisible()&&(this._setState(5),this._detailsFocusBorderColor&&(this._details.widget.domNode.style.borderColor=this._detailsFocusBorderColor))}},{key:"toggleDetails",value:function(){this._isDetailsVisible()?(this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):!GH(this._list.getFocusedElements()[0])&&!this._explainMode||3!==this._state&&5!==this._state&&4!==this._state||(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}},{key:"showDetails",value:function(e){this._details.show(),e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._positionDetails(),this.editor.focus(),this.element.domNode.classList.add("shows-details")}},{key:"toggleExplainMode",value:function(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}},{key:"resetPersistedSize",value:function(){this._persistedSize.reset()}},{key:"hideWidget",value:function(){var e;null===(e=this._loadingTimeout)||void 0===e||e.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();var t=this._persistedSize.restore(),n=Math.ceil(4.3*this.getLayoutInfo().itemHeight);t&&t.height<n&&this._persistedSize.store(t.with(void 0,n))}},{key:"isFrozen",value:function(){return 4===this._state}},{key:"_afterRender",value:function(e){null!==e?2!==this._state&&1!==this._state&&(this._isDetailsVisible()&&this._details.show(),this._positionDetails()):this._isDetailsVisible()&&this._details.hide()}},{key:"_layout",value:function(e){var t,n,i;if(this.editor.hasModel()&&this.editor.getDomNode()){var r=eE.getClientArea(document.body),o=this.getLayoutInfo();e||(e=o.defaultSize);var a=e.height,s=e.width;if(this._status.element.style.lineHeight="".concat(o.itemHeight,"px"),2===this._state||1===this._state)a=o.itemHeight+o.borderHeight,s=o.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new eE.Dimension(s,a),this._contentWidget.setPreference(2);else{var u=r.width-o.borderHeight-2*o.horizontalPadding;s>u&&(s=u);var l=this._completionModel?this._completionModel.stats.pLabelLen*o.typicalHalfwidthCharacterWidth:s,c=o.statusBarHeight+this._list.contentHeight+o.borderHeight,d=o.itemHeight+o.statusBarHeight,h=eE.getDomNodePagePosition(this.editor.getDomNode()),f=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=h.top+f.top+f.height,v=Math.min(r.height-p-o.verticalPadding,c),g=Math.min(h.top+f.top-o.verticalPadding,c),m=Math.min(Math.max(g,v)+o.borderHeight,c);a===(null===(t=this._cappedHeight)||void 0===t?void 0:t.capped)&&(a=this._cappedHeight.wanted),a<d&&(a=d),a>m&&(a=m),a>v?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),m=g):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),m=v),this.element.preferredSize=new eE.Dimension(l,o.defaultSize.height),this.element.maxSize=new eE.Dimension(u,m),this.element.minSize=new eE.Dimension(220,d),this._cappedHeight=a===c?{wanted:null!==(i=null===(n=this._cappedHeight)||void 0===n?void 0:n.wanted)&&void 0!==i?i:e.height,capped:a}:void 0}this._resize(s,a)}}},{key:"_resize",value:function(e,t){var n=this.element.maxSize,i=n.width,r=n.height;e=Math.min(i,e),t=Math.min(r,t);var o=this.getLayoutInfo().statusBarHeight;this._list.layout(t-o,e),this._listElement.style.height="".concat(t-o,"px"),this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}},{key:"_positionDetails",value:function(){this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode)}},{key:"getLayoutInfo",value:function(){var e=this.editor.getOption(40),t=(0,fB.u)(this.editor.getOption(105)||e.lineHeight,8,1e3),n=this.editor.getOption(103).showStatusBar&&2!==this._state&&1!==this._state?t:0,i=this._details.widget.borderWidth,r=2*i;return{itemHeight:t,statusBarHeight:n,borderWidth:i,borderHeight:r,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new eE.Dimension(430,n+12*t+r)}}},{key:"_isDetailsVisible",value:function(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}},{key:"_setDetailsVisible",value:function(e){this._storageService.store("expandSuggestionDocs",e,0,0)}}]),e}();kB.LOADING_MESSAGE=hx.N("suggestWidget.loading","Loading..."),kB.NO_SUGGESTIONS_MESSAGE=hx.N("suggestWidget.noSuggestions","No suggestions."),kB=pB([vB(1,cN.Uy),vB(2,gx.i6),vB(3,Wx.XE),vB(4,JL.TG)],kB);var SB=function(){function e(t,n){(0,i.Z)(this,e),this._widget=t,this._editor=n,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}return(0,r.Z)(e,[{key:"dispose",value:function(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}},{key:"getId",value:function(){return"editor.widget.suggestWidget"}},{key:"getDomNode",value:function(){return this._widget.element.domNode}},{key:"show",value:function(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}},{key:"hide",value:function(){this._hidden||(this._hidden=!0,this.layout())}},{key:"layout",value:function(){this._editor.layoutContentWidget(this)}},{key:"getPosition",value:function(){return!this._hidden&&this._position&&this._preference?{position:this._position,preference:[this._preference]}:null}},{key:"beforeRender",value:function(){var e=this._widget.element.size,t=e.height,n=e.width,i=this._widget.getLayoutInfo(),r=i.borderWidth,o=i.horizontalPadding;return new eE.Dimension(n+2*r+o,t+2*r)}},{key:"afterRender",value:function(e){this._widget._afterRender(e)}},{key:"setPreference",value:function(e){this._preferenceLocked||(this._preference=e)}},{key:"lockPreference",value:function(){this._preferenceLocked=!0}},{key:"unlockPreference",value:function(){this._preferenceLocked=!1}},{key:"setPosition",value:function(e){this._position=e}}]),e}();(0,Wx.Ic)((function(e,t){var n=e.getColor(wB);n&&t.addRule(".monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: ".concat(n,"; }"));var i=e.getColor(yB);i&&t.addRule(".monaco-editor .suggest-widget, .monaco-editor .suggest-details { color: ".concat(i,"; }"));var r=e.getColor(zx.ur);r&&t.addRule(".monaco-editor .suggest-details a { color: ".concat(r,"; }"));var o=e.getColor(zx.Sw);o&&t.addRule(".monaco-editor .suggest-details code { background-color: ".concat(o,"; }"))}));var xB=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},LB=function(e,t){return function(n,i){t(n,i,e)}},EB=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._editor=t,this._enabled=!1,this._ckAtEnd=e.AtEnd.bindTo(n),this._configListener=this._editor.onDidChangeConfiguration((function(e){return e.hasChanged(108)&&r._update()})),this._update()}return(0,r.Z)(e,[{key:"dispose",value:function(){var e;this._configListener.dispose(),null===(e=this._selectionListener)||void 0===e||e.dispose(),this._ckAtEnd.reset()}},{key:"_update",value:function(){var e=this,t="on"===this._editor.getOption(108);if(this._enabled!==t)if(this._enabled=t,this._enabled){var n=function(){if(e._editor.hasModel()){var t=e._editor.getModel(),n=e._editor.getSelection(),i=t.getWordAtPosition(n.getStartPosition());i?e._ckAtEnd.set(i.endColumn===n.getStartPosition().column):e._ckAtEnd.set(!1)}else e._ckAtEnd.set(!1)};this._selectionListener=this._editor.onDidChangeCursorSelection(n),n()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}}]),e}();EB.AtEnd=new gx.uy("atEndOfWord",!1),EB=xB([LB(1,gx.i6)],EB);var NB=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this._disposables=new Rx.SL,this._disposables.add(n.onDidShow((function(){return o._onItem(n.getFocusedItem())}))),this._disposables.add(n.onDidFocus(this._onItem,this)),this._disposables.add(n.onDidHide(this.reset,this)),this._disposables.add(t.onWillType((function(e){if(o._active&&!n.isFrozen()){var i=e.charCodeAt(e.length-1);o._active.acceptCharacters.has(i)&&t.getOption(0)&&r(o._active.item)}})))}return(0,r.Z)(e,[{key:"_onItem",value:function(e){if(e&&(0,mx.Of)(e.item.completion.commitCharacters)){if(!this._active||this._active.item.item!==e.item){var t,n=new qP.q,i=(0,Tr.Z)(e.item.completion.commitCharacters);try{for(i.s();!(t=i.n()).done;){var r=t.value;r.length>0&&n.add(r.charCodeAt(0))}}catch(o){i.e(o)}finally{i.f()}this._active={acceptCharacters:n,item:e}}}else this.reset()}},{key:"reset",value:function(){this._active=void 0}},{key:"dispose",value:function(){this._disposables.dispose()}}]),e}(),DB=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this._disposables=new Rx.SL,this._lastOvertyped=[],this._empty=!0,this._disposables.add(t.onWillType((function(){if(r._empty&&t.hasModel()){for(var n=t.getSelections(),i=n.length,o=!1,a=0;a<i;a++)if(!n[a].isEmpty()){o=!0;break}if(o){r._lastOvertyped=[];for(var s=t.getModel(),u=0;u<i;u++){var l=n[u];if(s.getValueLengthInRange(l)>e._maxSelectionLength)return;r._lastOvertyped[u]={value:s.getValueInRange(l),multiline:l.startLineNumber!==l.endLineNumber}}r._empty=!1}}}))),this._disposables.add(n.onDidCancel((function(e){r._empty||e.retrigger||(r._empty=!0)})))}return(0,r.Z)(e,[{key:"getLastOvertypedInfo",value:function(e){if(!this._empty&&e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}},{key:"dispose",value:function(){this._disposables.dispose()}}]),e}();DB._maxSelectionLength=51200;var MB=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},TB=function(e,t){return function(n,i){t(n,i,e)}},OB=!1,IB=function(){function e(t,n){if((0,i.Z)(this,e),this._model=t,this._position=n,t.getLineMaxColumn(n.lineNumber)!==n.column){var r=t.getOffsetAt(n),o=t.getPositionAt(r+1);this._marker=t.deltaDecorations([],[{range:Fx.e.fromPositions(n,o),options:{stickiness:1}}])}}return(0,r.Z)(e,[{key:"dispose",value:function(){this._marker&&!this._model.isDisposed()&&this._model.deltaDecorations(this._marker,[])}},{key:"delta",value:function(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){var t=this._model.getDecorationRange(this._marker[0]);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}return this._model.getLineMaxColumn(e.lineNumber)-e.column}}]),e}(),AB=function(){function e(t,n,r,o,a,s){var u=this;(0,i.Z)(this,e),this._memoryService=n,this._commandService=r,this._contextKeyService=o,this._instantiationService=a,this._logService=s,this._lineSuffix=new Rx.XK,this._toDispose=new Rx.SL,this.editor=t,this.model=a.createInstance(dH,this.editor);var l=fj.InsertMode.bindTo(o);l.set(t.getOption(103).insertMode),this.model.onDidTrigger((function(){return l.set(t.getOption(103).insertMode)})),this.widget=this._toDispose.add(new Px.Ue((function(){var e=u._instantiationService.createInstance(kB,u.editor);u._toDispose.add(e),u._toDispose.add(e.onDidSelect((function(e){return u._insertSuggestion(e,0)}),u));var t=new NB(u.editor,e,(function(e){return u._insertSuggestion(e,2)}));u._toDispose.add(t),u._toDispose.add(u.model.onDidSuggest((function(e){0===e.completionModel.items.length&&t.reset()})));var n=fj.MakesTextEdit.bindTo(u._contextKeyService),i=fj.HasInsertAndReplaceRange.bindTo(u._contextKeyService),r=fj.CanResolve.bindTo(u._contextKeyService);return u._toDispose.add((0,Rx.OF)((function(){n.reset(),i.reset(),r.reset()}))),u._toDispose.add(e.onDidFocus((function(e){var t=e.item,o=u.editor.getPosition(),a=t.editStart.column,s=o.column,l=!0;"smart"!==u.editor.getOption(1)||2!==u.model.state||t.completion.command||t.completion.additionalTextEdits||4&t.completion.insertTextRules||s-a!==t.completion.insertText.length||(l=u.editor.getModel().getValueInRange({startLineNumber:o.lineNumber,startColumn:a,endLineNumber:o.lineNumber,endColumn:s})!==t.completion.insertText);n.set(l),i.set(!Zx.L.equals(t.editInsertEnd,t.editReplaceEnd)),r.set(Boolean(t.provider.resolveCompletionItem)||Boolean(t.completion.documentation)||t.completion.detail!==t.completion.label)}))),u._toDispose.add(e.onDetailsKeyDown((function(e){e.toKeybinding().equals(new vx.QC(!0,!1,!1,!1,33))||rL.dz&&e.toKeybinding().equals(new vx.QC(!1,!1,!1,!0,33))?e.stopPropagation():e.toKeybinding().isModifierKey()||u.editor.focus()}))),e}))),this._overtypingCapturer=this._toDispose.add(new Px.Ue((function(){return u._toDispose.add(new DB(u.editor,u.model))}))),this._alternatives=this._toDispose.add(new Px.Ue((function(){return u._toDispose.add(new iH(u.editor,u._contextKeyService))}))),this._toDispose.add(a.createInstance(EB,t)),this._toDispose.add(this.model.onDidTrigger((function(e){u.widget.value.showTriggered(e.auto,e.shy?250:50),u._lineSuffix.value=new IB(u.editor.getModel(),e.position)}))),this._toDispose.add(this.model.onDidSuggest((function(e){if(!e.shy){var t=u._memoryService.select(u.editor.getModel(),u.editor.getPosition(),e.completionModel.items);u.widget.value.showSuggestions(e.completionModel,t,e.isFrozen,e.auto)}}))),this._toDispose.add(this.model.onDidCancel((function(e){e.retrigger||u.widget.value.hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((function(){OB||(u.model.cancel(),u.model.clear())})));var c=fj.AcceptSuggestionsOnEnter.bindTo(o),d=function(){var e=u.editor.getOption(1);c.set("on"===e||"smart"===e)};this._toDispose.add(this.editor.onDidChangeConfiguration((function(){return d()}))),d()}return(0,r.Z)(e,[{key:"dispose",value:function(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose()}},{key:"_insertSuggestion",value:function(e,t){var n=this;if(!e||!e.item)return this._alternatives.value.reset(),this.model.cancel(),void this.model.clear();if(this.editor.hasModel()){var i=this.editor.getModel(),r=i.getAlternativeVersionId(),o=e.item,a=[],s=new bL.A;1&t||this.editor.pushUndoStop();var u=this.getOverwriteInfo(o,Boolean(8&t));if(this._memoryService.memorize(i,this.editor.getPosition(),o),Array.isArray(o.completion.additionalTextEdits)){var l=xL.ZF.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",o.completion.additionalTextEdits.map((function(e){return jO.h.replace(Fx.e.lift(e.range),e.text)}))),l.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!o.isResolved){var c,d=new dj.G(!0),h=i.onDidChangeContent((function(e){if(e.isFlush)return s.cancel(),void h.dispose();var t,n=(0,Tr.Z)(e.changes);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=Fx.e.getEndPosition(i.range);c&&!Zx.L.isBefore(r,c)||(c=r)}}catch(o){n.e(o)}finally{n.f()}})),f=t;t|=2;var p=!1,v=this.editor.onWillType((function(){v.dispose(),p=!0,2&f||n.editor.pushUndoStop()}));a.push(o.resolve(s.token).then((function(){if(!o.completion.additionalTextEdits||s.token.isCancellationRequested)return!1;if(c&&o.completion.additionalTextEdits.some((function(e){return Zx.L.isBefore(c,Fx.e.getStartPosition(e.range))})))return!1;p&&n.editor.pushUndoStop();var e=xL.ZF.capture(n.editor);return n.editor.executeEdits("suggestController.additionalTextEdits.async",o.completion.additionalTextEdits.map((function(e){return jO.h.replace(Fx.e.lift(e.range),e.text)}))),e.restoreRelativeVerticalPositionOfCursor(n.editor),!p&&2&f||n.editor.pushUndoStop(),!0})).then((function(e){n._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",d.elapsed(),e),h.dispose(),v.dispose()})))}var g=o.completion.insertText;if(4&o.completion.insertTextRules||(g=cj.escape(g)),Yj.get(this.editor).insert(g,{overwriteBefore:u.overwriteBefore,overwriteAfter:u.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&o.completion.insertTextRules),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),2&t||this.editor.pushUndoStop(),o.completion.command)if(o.completion.command.id===PB.id)this.model.trigger({auto:!0,shy:!1},!0);else{var m;a.push((m=this._commandService).executeCommand.apply(m,[o.completion.command.id].concat((0,Lt.Z)(o.completion.command.arguments?(0,Lt.Z)(o.completion.command.arguments):[]))).catch(yx.dL)),this.model.cancel()}else this.model.cancel();4&t&&this._alternatives.value.set(e,(function(e){for(s.cancel();i.canUndo();){r!==i.getAlternativeVersionId()&&i.undo(),n._insertSuggestion(e,3|(8&t?8:0));break}})),this._alertCompletionItem(o),Promise.all(a).finally((function(){n.model.clear(),s.dispose()}))}}},{key:"getOverwriteInfo",value:function(e,t){(0,JE.p_)(this.editor.hasModel());var n="replace"===this.editor.getOption(103).insertMode;t&&(n=!n);var i=e.position.column-e.editStart.column,r=(n?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column;return{overwriteBefore:i+(this.editor.getPosition().column-e.position.column),overwriteAfter:r+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}}},{key:"_alertCompletionItem",value:function(e){if((0,mx.Of)(e.completion.additionalTextEdits)){var t=hx.N("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);(0,xx.Z9)(t)}}},{key:"triggerSuggest",value:function(e){this.editor.hasModel()&&(this.model.trigger({auto:!1,shy:!1},!1,e),this.editor.revealLine(this.editor.getPosition().lineNumber,0),this.editor.focus())}},{key:"triggerSuggestAndAcceptBest",value:function(e){var t=this;if(this.editor.hasModel()){var n=this.editor.getPosition(),i=function(){n.equals(t.editor.getPosition())&&t._commandService.executeCommand(e.fallback)};hE.ju.once(this.model.onDidTrigger)((function(e){var n=[];hE.ju.any(t.model.onDidTrigger,t.model.onDidCancel)((function(){(0,Rx.B9)(n),i()}),void 0,n),t.model.onDidSuggest((function(e){var r=e.completionModel;if((0,Rx.B9)(n),0!==r.items.length){var o=t._memoryService.select(t.editor.getModel(),t.editor.getPosition(),r.items),a=r.items[o];!function(e){if(4&e.completion.insertTextRules||e.completion.additionalTextEdits)return!0;var n=t.editor.getPosition(),i=e.editStart.column,r=n.column;return r-i!==e.completion.insertText.length||t.editor.getModel().getValueInRange({startLineNumber:n.lineNumber,startColumn:i,endLineNumber:n.lineNumber,endColumn:r})!==e.completion.insertText}(a)?i():(t.editor.pushUndoStop(),t._insertSuggestion({index:o,item:a,model:r},7))}else i()}),void 0,n)})),this.model.trigger({auto:!1,shy:!0}),this.editor.revealLine(n.lineNumber,0),this.editor.focus()}}},{key:"acceptSelectedSuggestion",value:function(e,t){var n=this.widget.value.getFocusedItem(),i=0;e&&(i|=4),t&&(i|=8),this._insertSuggestion(n,i)}},{key:"acceptNextSuggestion",value:function(){this._alternatives.value.next()}},{key:"acceptPrevSuggestion",value:function(){this._alternatives.value.prev()}},{key:"cancelSuggestWidget",value:function(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}},{key:"selectNextSuggestion",value:function(){this.widget.value.selectNext()}},{key:"selectNextPageSuggestion",value:function(){this.widget.value.selectNextPage()}},{key:"selectLastSuggestion",value:function(){this.widget.value.selectLast()}},{key:"selectPrevSuggestion",value:function(){this.widget.value.selectPrevious()}},{key:"selectPrevPageSuggestion",value:function(){this.widget.value.selectPreviousPage()}},{key:"selectFirstSuggestion",value:function(){this.widget.value.selectFirst()}},{key:"toggleSuggestionDetails",value:function(){this.widget.value.toggleDetails()}},{key:"toggleExplainMode",value:function(){this.widget.value.toggleExplainMode()}},{key:"toggleSuggestionFocus",value:function(){this.widget.value.toggleDetailsFocus()}},{key:"resetWidgetSize",value:function(){this.widget.value.resetPersistedSize()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();AB.ID="editor.contrib.suggestController",AB=MB([TB(1,eH),TB(2,IL.H),TB(3,gx.i6),TB(4,JL.TG),TB(5,MF.VZ)],AB);var PB=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.id,label:hx.N("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:gx.Ao.and(fx.u.writable,fx.u.hasCompletionItemProvider),kbOpts:{kbExpr:fx.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=AB.get(t);n&&n.triggerSuggest()}}]),n}(dx.R6);PB.id="editor.action.triggerSuggest",(0,dx._K)(AB.ID,AB),(0,dx.Qr)(PB);var RB=190,ZB=dx._l.bindToContribution(AB.get);(0,dx.fK)(new ZB({id:"acceptSelectedSuggestion",precondition:fj.Visible,handler:function(e){e.acceptSelectedSuggestion(!0,!1)}})),UT.W.registerKeybindingRule({id:"acceptSelectedSuggestion",when:gx.Ao.and(fj.Visible,fx.u.textInputFocus),primary:2,weight:RB}),UT.W.registerKeybindingRule({id:"acceptSelectedSuggestion",when:gx.Ao.and(fj.Visible,fx.u.textInputFocus,fj.AcceptSuggestionsOnEnter,fj.MakesTextEdit),primary:3,weight:RB}),Vx.BH.appendMenuItem(pj,{command:{id:"acceptSelectedSuggestion",title:hx.N("accept.insert","Insert")},group:"left",order:1,when:fj.HasInsertAndReplaceRange.toNegated()}),Vx.BH.appendMenuItem(pj,{command:{id:"acceptSelectedSuggestion",title:hx.N("accept.insert","Insert")},group:"left",order:1,when:gx.Ao.and(fj.HasInsertAndReplaceRange,fj.InsertMode.isEqualTo("insert"))}),Vx.BH.appendMenuItem(pj,{command:{id:"acceptSelectedSuggestion",title:hx.N("accept.replace","Replace")},group:"left",order:1,when:gx.Ao.and(fj.HasInsertAndReplaceRange,fj.InsertMode.isEqualTo("replace"))}),(0,dx.fK)(new ZB({id:"acceptAlternativeSelectedSuggestion",precondition:gx.Ao.and(fj.Visible,fx.u.textInputFocus),kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:1027,secondary:[1026]},handler:function(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:pj,group:"left",order:2,when:gx.Ao.and(fj.HasInsertAndReplaceRange,fj.InsertMode.isEqualTo("insert")),title:hx.N("accept.replace","Replace")},{menuId:pj,group:"left",order:2,when:gx.Ao.and(fj.HasInsertAndReplaceRange,fj.InsertMode.isEqualTo("replace")),title:hx.N("accept.insert","Insert")}]})),IL.P.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),(0,dx.fK)(new ZB({id:"hideSuggestWidget",precondition:fj.Visible,handler:function(e){return e.cancelSuggestWidget()},kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:9,secondary:[1033]}})),(0,dx.fK)(new ZB({id:"selectNextSuggestion",precondition:gx.Ao.and(fj.Visible,fj.MultipleSuggestions),handler:function(e){return e.selectNextSuggestion()},kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),(0,dx.fK)(new ZB({id:"selectNextPageSuggestion",precondition:gx.Ao.and(fj.Visible,fj.MultipleSuggestions),handler:function(e){return e.selectNextPageSuggestion()},kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:12,secondary:[2060]}})),(0,dx.fK)(new ZB({id:"selectLastSuggestion",precondition:gx.Ao.and(fj.Visible,fj.MultipleSuggestions),handler:function(e){return e.selectLastSuggestion()}})),(0,dx.fK)(new ZB({id:"selectPrevSuggestion",precondition:gx.Ao.and(fj.Visible,fj.MultipleSuggestions),handler:function(e){return e.selectPrevSuggestion()},kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),(0,dx.fK)(new ZB({id:"selectPrevPageSuggestion",precondition:gx.Ao.and(fj.Visible,fj.MultipleSuggestions),handler:function(e){return e.selectPrevPageSuggestion()},kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:11,secondary:[2059]}})),(0,dx.fK)(new ZB({id:"selectFirstSuggestion",precondition:gx.Ao.and(fj.Visible,fj.MultipleSuggestions),handler:function(e){return e.selectFirstSuggestion()}})),(0,dx.fK)(new ZB({id:"toggleSuggestionDetails",precondition:fj.Visible,handler:function(e){return e.toggleSuggestionDetails()},kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:2058,mac:{primary:266}},menuOpts:[{menuId:pj,group:"right",order:1,when:gx.Ao.and(fj.DetailsVisible,fj.CanResolve),title:hx.N("detail.more","show less")},{menuId:pj,group:"right",order:1,when:gx.Ao.and(fj.DetailsVisible.toNegated(),fj.CanResolve),title:hx.N("detail.less","show more")}]})),(0,dx.fK)(new ZB({id:"toggleExplainMode",precondition:fj.Visible,handler:function(e){return e.toggleExplainMode()},kbOpts:{weight:100,primary:2133}})),(0,dx.fK)(new ZB({id:"toggleSuggestionFocus",precondition:fj.Visible,handler:function(e){return e.toggleSuggestionFocus()},kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:2570,mac:{primary:778}}})),(0,dx.fK)(new ZB({id:"insertBestCompletion",precondition:gx.Ao.and(fx.u.textInputFocus,gx.Ao.equals("config.editor.tabCompletion","on"),EB.AtEnd,fj.Visible.toNegated(),iH.OtherSuggestions.toNegated(),Yj.InSnippetMode.toNegated()),handler:function(e,t){e.triggerSuggestAndAcceptBest((0,JE.Kn)(t)?Object.assign({fallback:"tab"},t):{fallback:"tab"})},kbOpts:{weight:RB,primary:2}})),(0,dx.fK)(new ZB({id:"insertNextSuggestion",precondition:gx.Ao.and(fx.u.textInputFocus,gx.Ao.equals("config.editor.tabCompletion","on"),iH.OtherSuggestions,fj.Visible.toNegated(),Yj.InSnippetMode.toNegated()),handler:function(e){return e.acceptNextSuggestion()},kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:2}})),(0,dx.fK)(new ZB({id:"insertPrevSuggestion",precondition:gx.Ao.and(fx.u.textInputFocus,gx.Ao.equals("config.editor.tabCompletion","on"),iH.OtherSuggestions,fj.Visible.toNegated(),Yj.InSnippetMode.toNegated()),handler:function(e){return e.acceptPrevSuggestion()},kbOpts:{weight:RB,kbExpr:fx.u.textInputFocus,primary:1026}})),(0,dx.Qr)(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.resetSuggestSize",label:hx.N("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){AB.get(t).resetWidgetSize()}}]),n}(dx.R6));var FB=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.forceRetokenize",label:hx.N("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=t.getModel();n.resetTokenization();var i=new dj.G(!0);n.forceTokenization(n.getLineCount()),i.stop(),console.log("tokenization took ".concat(i.elapsed()))}}}]),n}(dx.R6);(0,dx.Qr)(FB);var jB=n(32995),HB=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:n.ID,label:hx.N({key:"toggle.tabMovesFocus",comment:["Turn on/off use of tab key for moving focus around VS Code"]},"Toggle Tab Key Moves Focus"),alias:"Toggle Tab Key Moves Focus",precondition:void 0,kbOpts:{kbExpr:null,primary:2091,mac:{primary:1323},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=!jB.nG.getTabFocusMode();jB.nG.setTabFocusMode(n),n?(0,xx.Z9)(hx.N("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element")):(0,xx.Z9)(hx.N("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}}]),n}(dx.R6);HB.ID="editor.action.toggleTabFocusMode",(0,dx.Qr)(HB);var BB=n(34782),zB=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},WB=function(e,t){return function(n,i){t(n,i,e)}},VB=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},YB="ignoreUnusualLineTerminators";function UB(e,t,n){e.setModelProperty(t.uri,YB,n)}function KB(e,t){return e.getModelProperty(t.uri,YB)}var qB=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this))._editor=e,a._dialogService=r,a._codeEditorService=o,a._config=a._editor.getOption(110),a._register(a._editor.onDidChangeConfiguration((function(e){e.hasChanged(110)&&(a._config=a._editor.getOption(110),a._checkForUnusualLineTerminators())}))),a._register(a._editor.onDidChangeModel((function(){a._checkForUnusualLineTerminators()}))),a._register(a._editor.onDidChangeModelContent((function(e){e.isUndoing||a._checkForUnusualLineTerminators()}))),a}return(0,r.Z)(n,[{key:"_checkForUnusualLineTerminators",value:function(){return VB(this,void 0,void 0,ki().mark((function e(){var t;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("off"!==this._config){e.next=2;break}return e.abrupt("return");case 2:if(this._editor.hasModel()){e.next=4;break}return e.abrupt("return");case 4:if((t=this._editor.getModel()).mightContainUnusualLineTerminators()){e.next=7;break}return e.abrupt("return");case 7:if(!0!==KB(this._codeEditorService,t)){e.next=10;break}return e.abrupt("return");case 10:if(!this._editor.getOption(77)){e.next=12;break}return e.abrupt("return");case 12:if("auto"!==this._config){e.next=15;break}return t.removeUnusualLineTerminators(this._editor.getSelections()),e.abrupt("return");case 15:return e.next=17,this._dialogService.confirm({title:hx.N("unusualLineTerminators.title","Unusual Line Terminators"),message:hx.N("unusualLineTerminators.message","Detected unusual line terminators"),detail:hx.N("unusualLineTerminators.detail","This file contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`."),primaryButton:hx.N("unusualLineTerminators.fix","Fix this file"),secondaryButton:hx.N("unusualLineTerminators.ignore","Ignore problem for this file")});case 17:if(e.sent.confirmed){e.next=21;break}return UB(this._codeEditorService,t,!0),e.abrupt("return");case 21:t.removeUnusualLineTerminators(this._editor.getSelections());case 22:case"end":return e.stop()}}),e,this)})))}}]),n}(Rx.JT);qB.ID="editor.contrib.unusualLineTerminatorsDetector",qB=zB([WB(1,BB.S),WB(2,aL.$)],qB),(0,dx._K)(qB.ID,qB);var GB=n(93445),$B=n(77993),QB=n(7845),XB=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},JB=function(e,t){return function(n,i){t(n,i,e)}},ez=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._modelService=r,s._themeService=o,s._configurationService=a,s._editor=e,s._tokenizeViewport=new Px.pY((function(){return s._tokenizeViewportNow()}),100),s._outstandingRequests=[],s._register(s._editor.onDidScrollChange((function(){s._tokenizeViewport.schedule()}))),s._register(s._editor.onDidChangeModel((function(){s._cancelAll(),s._tokenizeViewport.schedule()}))),s._register(s._editor.onDidChangeModelContent((function(e){s._cancelAll(),s._tokenizeViewport.schedule()}))),s._register(LL.K7.onDidChange((function(){s._cancelAll(),s._tokenizeViewport.schedule()}))),s._register(s._configurationService.onDidChangeConfiguration((function(e){e.affectsConfiguration($B.e3)&&(s._cancelAll(),s._tokenizeViewport.schedule())}))),s._register(s._themeService.onDidColorThemeChange((function(){s._cancelAll(),s._tokenizeViewport.schedule()}))),s}return(0,r.Z)(n,[{key:"_cancelAll",value:function(){var e,t=(0,Tr.Z)(this._outstandingRequests);try{for(t.s();!(e=t.n()).done;){e.value.cancel()}}catch(n){t.e(n)}finally{t.f()}this._outstandingRequests=[]}},{key:"_removeOutstandingRequest",value:function(e){for(var t=0,n=this._outstandingRequests.length;t<n;t++)if(this._outstandingRequests[t]===e)return void this._outstandingRequests.splice(t,1)}},{key:"_tokenizeViewportNow",value:function(){var e=this;if(this._editor.hasModel()){var t=this._editor.getModel();if(!t.hasCompleteSemanticTokens())if((0,$B.tw)(t,this._themeService,this._configurationService)){var n=(0,QB.St)(t);if(n){var i=this._modelService.getSemanticTokensProviderStyling(n),r=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(r.map((function(r){return e._requestRange(t,r,n,i)})))}else t.hasSomeSemanticTokens()&&t.setSemanticTokens(null,!1)}else t.hasSomeSemanticTokens()&&t.setSemanticTokens(null,!1)}}},{key:"_requestRange",value:function(e,t,n,i){var r=this,o=e.getVersionId(),a=(0,Px.PG)((function(i){return Promise.resolve(n.provideDocumentRangeSemanticTokens(e,t,i))}));return a.then((function(n){n&&!e.isDisposed()&&e.getVersionId()===o&&e.setPartialSemanticTokens(t,(0,GB.h)(n,i,e.getLanguageIdentifier()))})).then((function(){return r._removeOutstandingRequest(a)}),(function(){return r._removeOutstandingRequest(a)})),a}}]),n}(Rx.JT);ez.ID="editor.contrib.viewportSemanticTokens",ez=XB([JB(1,EL.q),JB(2,Wx.XE),JB(3,LN.Ui)],ez),(0,dx._K)(ez.ID,ez);var tz=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},nz=function(e,t){return function(n,i){t(n,i,e)}},iz=(0,zx.P6)("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hc:null},hx.N("wordHighlight","Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0),rz=(0,zx.P6)("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hc:null},hx.N("wordHighlightStrong","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0),oz=(0,zx.P6)("editor.wordHighlightBorder",{light:null,dark:null,hc:zx.xL},hx.N("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable.")),az=(0,zx.P6)("editor.wordHighlightStrongBorder",{light:null,dark:null,hc:zx.xL},hx.N("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable.")),sz=(0,zx.P6)("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hc:"#A0A0A0CC"},hx.N("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),uz=(0,zx.P6)("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hc:"#C0A0C0CC"},hx.N("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),lz=new gx.uy("hasWordHighlights",!1);function cz(e,t,n){var i=LL.vH.ordered(e);return(0,Px.Ps)(i.map((function(i){return function(){return Promise.resolve(i.provideDocumentHighlights(e,t,n)).then(void 0,yx.Cp)}})),mx.Of)}var dz=function(){function e(t,n,r){var o=this;(0,i.Z)(this,e),this._wordRange=this._getCurrentWordRange(t,n),this.result=(0,Px.PG)((function(e){return o._compute(t,n,r,e)}))}return(0,r.Z)(e,[{key:"_getCurrentWordRange",value:function(e,t){var n=e.getWordAtPosition(t.getPosition());return n?new Fx.e(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):null}},{key:"isValid",value:function(e,t,n){for(var i=t.startLineNumber,r=t.startColumn,o=t.endColumn,a=this._getCurrentWordRange(e,t),s=Boolean(this._wordRange&&this._wordRange.equalsRange(a)),u=0,l=n.length;!s&&u<l;u++){var c=e.getDecorationRange(n[u]);c&&c.startLineNumber===i&&c.startColumn<=r&&c.endColumn>=o&&(s=!0)}return s}},{key:"cancel",value:function(){this.result.cancel()}}]),e}(),hz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_compute",value:function(e,t,n,i){return cz(e,t.getPosition(),i).then((function(e){return e||[]}))}}]),n}(dz),fz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this,e,r,o))._selectionIsEmpty=r.isEmpty(),a}return(0,r.Z)(n,[{key:"_compute",value:function(e,t,n,i){return(0,Px.Vs)(250,i).then((function(){if(!t.isEmpty())return[];var i=e.getWordAtPosition(t.getPosition());return!i||i.word.length>1e3?[]:e.findMatches(i.word,!0,!1,!0,n,!1).map((function(e){return{range:e.range,kind:LL.MY.Text}}))}))}},{key:"isValid",value:function(e,t,i){var r=t.isEmpty();return this._selectionIsEmpty===r&&(0,YL.Z)((0,UL.Z)(n.prototype),"isValid",this).call(this,e,t,i)}}]),n}(dz);(0,dx.sb)("_executeDocumentHighlights",(function(e,t){return cz(e,t,bL.T.None)}));var pz=function(){function e(t,n){var r=this;(0,i.Z)(this,e),this.toUnhook=new Rx.SL,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=t,this._hasWordHighlights=lz.bindTo(n),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(68),this.model=this.editor.getModel(),this.toUnhook.add(t.onDidChangeCursorPosition((function(e){r._ignorePositionChangeEvent||r.occurrencesHighlight&&r._onPositionChanged(e)}))),this.toUnhook.add(t.onDidChangeModelContent((function(e){r._stopAll()}))),this.toUnhook.add(t.onDidChangeConfiguration((function(e){var t=r.editor.getOption(68);r.occurrencesHighlight!==t&&(r.occurrencesHighlight=t,r._stopAll())}))),this._decorationIds=[],this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}return(0,r.Z)(e,[{key:"hasDecorations",value:function(){return this._decorationIds.length>0}},{key:"restore",value:function(){this.occurrencesHighlight&&this._run()}},{key:"_getSortedHighlights",value:function(){var e=this;return mx.kX(this._decorationIds.map((function(t){return e.model.getDecorationRange(t)})).sort(Fx.e.compareRangesUsingStarts))}},{key:"moveNext",value:function(){var e=this,t=this._getSortedHighlights(),n=t.findIndex((function(t){return t.containsPosition(e.editor.getPosition())})),i=(n+1)%t.length,r=t[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(r.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(r);var o=this._getWord();if(o){var a=this.editor.getModel().getLineContent(r.startLineNumber);(0,xx.Z9)("".concat(a,", ").concat(i+1," of ").concat(t.length," for '").concat(o.word,"'"))}}finally{this._ignorePositionChangeEvent=!1}}},{key:"moveBack",value:function(){var e=this,t=this._getSortedHighlights(),n=t.findIndex((function(t){return t.containsPosition(e.editor.getPosition())})),i=(n-1+t.length)%t.length,r=t[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(r.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(r);var o=this._getWord();if(o){var a=this.editor.getModel().getLineContent(r.startLineNumber);(0,xx.Z9)("".concat(a,", ").concat(i+1," of ").concat(t.length," for '").concat(o.word,"'"))}}finally{this._ignorePositionChangeEvent=!1}}},{key:"_removeDecorations",value:function(){this._decorationIds.length>0&&(this._decorationIds=this.editor.deltaDecorations(this._decorationIds,[]),this._hasWordHighlights.set(!1))}},{key:"_stopAll",value:function(){this._removeDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}},{key:"_onPositionChanged",value:function(e){this.occurrencesHighlight&&3===e.reason?this._run():this._stopAll()}},{key:"_getWord",value:function(){var e=this.editor.getSelection(),t=e.startLineNumber,n=e.startColumn;return this.model.getWordAtPosition({lineNumber:t,column:n})}},{key:"_run",value:function(){var e=this,t=this.editor.getSelection();if(t.startLineNumber===t.endLineNumber){var n=t.startColumn,i=t.endColumn,r=this._getWord();if(!r||r.startColumn>n||r.endColumn<i)this._stopAll();else{var o=this.workerRequest&&this.workerRequest.isValid(this.model,t,this._decorationIds);if(this.lastCursorPositionChangeTime=(new Date).getTime(),o)this.workerRequestCompleted&&-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();var a=++this.workerRequestTokenId;this.workerRequestCompleted=!1,this.workerRequest=function(e,t,n){return LL.vH.has(e)?new hz(e,t,n):new fz(e,t,n)}(this.model,this.editor.getSelection(),this.editor.getOption(113)),this.workerRequest.result.then((function(t){a===e.workerRequestTokenId&&(e.workerRequestCompleted=!0,e.workerRequestValue=t||[],e._beginRenderDecorations())}),yx.dL)}}}else this._stopAll()}},{key:"_beginRenderDecorations",value:function(){var e=this,t=(new Date).getTime(),n=this.lastCursorPositionChangeTime+250;t>=n?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout((function(){e.renderDecorations()}),n-t)}},{key:"renderDecorations",value:function(){this.renderDecorationsTimer=-1;var t,n=[],i=(0,Tr.Z)(this.workerRequestValue);try{for(i.s();!(t=i.n()).done;){var r=t.value;r.range&&n.push({range:r.range,options:e._getDecorationOptions(r.kind)})}}catch(o){i.e(o)}finally{i.f()}this._decorationIds=this.editor.deltaDecorations(this._decorationIds,n),this._hasWordHighlights.set(this.hasDecorations())}},{key:"dispose",value:function(){this._stopAll(),this.toUnhook.dispose()}}],[{key:"_getDecorationOptions",value:function(e){return e===LL.MY.Write?this._WRITE_OPTIONS:e===LL.MY.Text?this._TEXT_OPTIONS:this._REGULAR_OPTIONS}}]),e}();pz._WRITE_OPTIONS=Hx.qx.register({stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:(0,Wx.EN)(uz),position:jx.sh.Center}}),pz._TEXT_OPTIONS=Hx.qx.register({stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,Wx.EN)(zx.SP),position:jx.sh.Center}}),pz._REGULAR_OPTIONS=Hx.qx.register({stickiness:1,className:"wordHighlight",overviewRuler:{color:(0,Wx.EN)(sz),position:jx.sh.Center}});var vz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;(0,i.Z)(this,n),(o=t.call(this)).wordHighlighter=null;var a=function(){e.hasModel()&&(o.wordHighlighter=new pz(e,r))};return o._register(e.onDidChangeModel((function(e){o.wordHighlighter&&(o.wordHighlighter.dispose(),o.wordHighlighter=null),a()}))),a(),o}return(0,r.Z)(n,[{key:"saveViewState",value:function(){return!(!this.wordHighlighter||!this.wordHighlighter.hasDecorations())}},{key:"moveNext",value:function(){this.wordHighlighter&&this.wordHighlighter.moveNext()}},{key:"moveBack",value:function(){this.wordHighlighter&&this.wordHighlighter.moveBack()}},{key:"restoreViewState",value:function(e){this.wordHighlighter&&e&&this.wordHighlighter.restore()}},{key:"dispose",value:function(){this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);vz.ID="editor.contrib.wordHighlighter",vz=tz([nz(1,gx.i6)],vz);var gz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this,r))._isNext=e,o}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=vz.get(t);n&&(this._isNext?n.moveNext():n.moveBack())}}]),n}(dx.R6),mz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!0,{id:"editor.action.wordHighlight.next",label:hx.N("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:lz,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:65,weight:100}})}return(0,r.Z)(n)}(gz),_z=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,!1,{id:"editor.action.wordHighlight.prev",label:hx.N("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:lz,kbOpts:{kbExpr:fx.u.editorTextFocus,primary:1089,weight:100}})}return(0,r.Z)(n)}(gz),yz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.wordHighlight.trigger",label:hx.N("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:lz.toNegated(),kbOpts:{kbExpr:fx.u.editorTextFocus,primary:0,weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){var i=vz.get(t);i&&i.restoreViewState(!0)}}]),n}(dx.R6);(0,dx._K)(vz.ID,vz),(0,dx.Qr)(mz),(0,dx.Qr)(_z),(0,dx.Qr)(yz),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.Rz);n&&(t.addRule(".monaco-editor .focused .selectionHighlight { background-color: ".concat(n,"; }")),t.addRule(".monaco-editor .selectionHighlight { background-color: ".concat(n.transparent(.5),"; }")));var i=e.getColor(iz);i&&t.addRule(".monaco-editor .wordHighlight { background-color: ".concat(i,"; }"));var r=e.getColor(rz);r&&t.addRule(".monaco-editor .wordHighlightStrong { background-color: ".concat(r,"; }"));var o=e.getColor(zx.g_);o&&t.addRule(".monaco-editor .selectionHighlight { border: 1px ".concat("hc"===e.type?"dotted":"solid"," ").concat(o,"; box-sizing: border-box; }"));var a=e.getColor(oz);a&&t.addRule(".monaco-editor .wordHighlight { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(a,"; box-sizing: border-box; }"));var s=e.getColor(az);s&&t.addRule(".monaco-editor .wordHighlightStrong { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(s,"; box-sizing: border-box; }"))}));var bz=n(16274),wz=n(86441),Cz=n(20937),kz=n(76556),Sz=n(49357),xz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this,e))._inSelectionMode=e.inSelectionMode,r._wordNavigationType=e.wordNavigationType,r}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=this;if(t.hasModel()){var r=(0,Cz.u)(t.getOption(113)),o=t.getModel(),a=t.getSelections().map((function(e){var t=new Zx.L(e.positionLineNumber,e.positionColumn),n=i._move(r,o,t,i._wordNavigationType);return i._moveTo(e,n,i._inSelectionMode)}));if(o.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,a.map((function(e){return bz.Vi.fromModelSelection(e)}))),1===a.length){var s=new Zx.L(a[0].positionLineNumber,a[0].positionColumn);t.revealPosition(s,0)}}}},{key:"_moveTo",value:function(e,t,n){return n?new px.Y(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new px.Y(t.lineNumber,t.column,t.lineNumber,t.column)}}]),n}(dx._l),Lz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_move",value:function(e,t,n,i){return wz.w.moveWordLeft(e,t,n,i)}}]),n}(xz),Ez=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_move",value:function(e,t,n,i){return wz.w.moveWordRight(e,t,n,i)}}]),n}(xz),Nz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}return(0,r.Z)(n)}(Lz),Dz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}return(0,r.Z)(n)}(Lz),Mz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:gx.Ao.and(fx.u.textInputFocus,null===(e=gx.Ao.and(JN.U,Sz.c))||void 0===e?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}return(0,r.Z)(n)}(Lz),Tz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}return(0,r.Z)(n)}(Lz),Oz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}return(0,r.Z)(n)}(Lz),Iz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:gx.Ao.and(fx.u.textInputFocus,null===(e=gx.Ao.and(JN.U,Sz.c))||void 0===e?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}return(0,r.Z)(n)}(Lz),Az=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}return(0,r.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,YL.Z)((0,UL.Z)(n.prototype),"_move",this).call(this,(0,Cz.u)(kz.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(Lz),Pz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}return(0,r.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,YL.Z)((0,UL.Z)(n.prototype),"_move",this).call(this,(0,Cz.u)(kz.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(Lz),Rz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}return(0,r.Z)(n)}(Ez),Zz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:gx.Ao.and(fx.u.textInputFocus,null===(e=gx.Ao.and(JN.U,Sz.c))||void 0===e?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}return(0,r.Z)(n)}(Ez),Fz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}return(0,r.Z)(n)}(Ez),jz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}return(0,r.Z)(n)}(Ez),Hz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:gx.Ao.and(fx.u.textInputFocus,null===(e=gx.Ao.and(JN.U,Sz.c))||void 0===e?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}return(0,r.Z)(n)}(Ez),Bz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}return(0,r.Z)(n)}(Ez),zz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}return(0,r.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,YL.Z)((0,UL.Z)(n.prototype),"_move",this).call(this,(0,Cz.u)(kz.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(Ez),Wz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}return(0,r.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,YL.Z)((0,UL.Z)(n.prototype),"_move",this).call(this,(0,Cz.u)(kz.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(Ez),Vz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this,e))._whitespaceHeuristics=e.whitespaceHeuristics,r._wordNavigationType=e.wordNavigationType,r}return(0,r.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=this;if(t.hasModel()){var r=(0,Cz.u)(t.getOption(113)),o=t.getModel(),a=t.getSelections(),s=t.getOption(5),u=t.getOption(8),l=HO.zu.getAutoClosingPairs(o.getLanguageIdentifier().id),c=t._getViewModel(),d=a.map((function(e){var n=i._delete({wordSeparators:r,model:o,selection:e,whitespaceHeuristics:i._whitespaceHeuristics,autoClosingDelete:t.getOption(6),autoClosingBrackets:s,autoClosingQuotes:u,autoClosingPairs:l,autoClosedCharacters:c.getCursorAutoClosedCharacters()},i._wordNavigationType);return new eL.T4(n,"")}));t.pushUndoStop(),t.executeCommands(this.id,d),t.pushUndoStop()}}}]),n}(dx._l),Yz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_delete",value:function(e,t){var n=wz.w.deleteWordLeft(e,t);return n||new Fx.e(1,1,1,1)}}]),n}(Vz),Uz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_delete",value:function(e,t){var n=wz.w.deleteWordRight(e,t);if(n)return n;var i=e.model.getLineCount(),r=e.model.getLineMaxColumn(i);return new Fx.e(i,r,i,r)}}]),n}(Vz),Kz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:fx.u.writable})}return(0,r.Z)(n)}(Yz),qz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:fx.u.writable})}return(0,r.Z)(n)}(Yz),Gz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}return(0,r.Z)(n)}(Yz),$z=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:fx.u.writable})}return(0,r.Z)(n)}(Uz),Qz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:fx.u.writable})}return(0,r.Z)(n)}(Uz),Xz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}return(0,r.Z)(n)}(Uz),Jz=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"deleteInsideWord",precondition:fx.u.writable,label:hx.N("deleteInsideWord","Delete Word"),alias:"Delete Word"})}return(0,r.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i=(0,Cz.u)(t.getOption(113)),r=t.getModel(),o=t.getSelections().map((function(e){var t=wz.w.deleteInsideWord(i,r,e);return new eL.T4(t,"")}));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}}]),n}(dx.R6);(0,dx.fK)(new Nz),(0,dx.fK)(new Dz),(0,dx.fK)(new Mz),(0,dx.fK)(new Tz),(0,dx.fK)(new Oz),(0,dx.fK)(new Iz),(0,dx.fK)(new Rz),(0,dx.fK)(new Zz),(0,dx.fK)(new Fz),(0,dx.fK)(new jz),(0,dx.fK)(new Hz),(0,dx.fK)(new Bz),(0,dx.fK)(new Az),(0,dx.fK)(new Pz),(0,dx.fK)(new zz),(0,dx.fK)(new Wz),(0,dx.fK)(new Kz),(0,dx.fK)(new qz),(0,dx.fK)(new Gz),(0,dx.fK)(new $z),(0,dx.fK)(new Qz),(0,dx.fK)(new Xz),(0,dx.Qr)(Jz);var eW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,mac:{primary:769},weight:100}})}return(0,r.Z)(n,[{key:"_delete",value:function(e,t){var n=wz.L.deleteWordPartLeft(e);return n||new Fx.e(1,1,1,1)}}]),n}(Vz),tW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:fx.u.writable,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,mac:{primary:788},weight:100}})}return(0,r.Z)(n,[{key:"_delete",value:function(e,t){var n=wz.L.deleteWordPartRight(e);if(n)return n;var i=e.model.getLineCount(),r=e.model.getLineMaxColumn(i);return new Fx.e(i,r,i,r)}}]),n}(Vz),nW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_move",value:function(e,t,n,i){return wz.L.moveWordPartLeft(e,t,n)}}]),n}(xz),iW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,mac:{primary:783},weight:100}})}return(0,r.Z)(n)}(nW);IL.P.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");var rW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}return(0,r.Z)(n)}(nW);IL.P.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");var oW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"_move",value:function(e,t,n,i){return wz.L.moveWordPartRight(e,t,n)}}]),n}(xz),aW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,mac:{primary:785},weight:100}})}return(0,r.Z)(n)}(oW),sW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:fx.u.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}return(0,r.Z)(n)}(oW);(0,dx.fK)(new eW),(0,dx.fK)(new tW),(0,dx.fK)(new iW),(0,dx.fK)(new rW),(0,dx.fK)(new aW),(0,dx.fK)(new sW);var uW=n(25741),lW=n(41149),cW=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},dW=function(e,t){return function(n,i){t(n,i,e)}},hW=new gx.uy("accessibilityHelpWidgetVisible",!1),fW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this))._editor=e,o._widget=o._register(r.createInstance(pW,o._editor)),o}return(0,r.Z)(n,[{key:"show",value:function(){this._widget.show()}},{key:"hide",value:function(){this._widget.hide()}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);fW.ID="editor.contrib.accessibilityHelpController",fW=cW([dW(1,JL.TG)],fW);var pW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a){var s;return(0,i.Z)(this,n),(s=t.call(this))._contextKeyService=r,s._keybindingService=o,s._openerService=a,s._editor=e,s._isVisibleKey=hW.bindTo(s._contextKeyService),s._domNode=(0,lW.X)(document.createElement("div")),s._domNode.setClassName("accessibilityHelpWidget"),s._domNode.setDisplay("none"),s._domNode.setAttribute("role","dialog"),s._domNode.setAttribute("aria-hidden","true"),s._contentDomNode=(0,lW.X)(document.createElement("div")),s._contentDomNode.setAttribute("role","document"),s._domNode.appendChild(s._contentDomNode),s._isVisible=!1,s._register(s._editor.onDidLayoutChange((function(){s._isVisible&&s._layout()}))),s._register(eE.addStandardDisposableListener(s._contentDomNode.domNode,"keydown",(function(e){if(s._isVisible&&(e.equals(2083)&&((0,xx.Z9)(uW.Oe.emergencyConfOn),s._editor.updateOptions({accessibilitySupport:"on"}),eE.clearNode(s._contentDomNode.domNode),s._buildContent(),s._contentDomNode.domNode.focus(),e.preventDefault(),e.stopPropagation()),e.equals(2086))){(0,xx.Z9)(uW.Oe.openingDocs);var t=s._editor.getRawOptions().accessibilityHelpUrl;"undefined"===typeof t&&(t="https://go.microsoft.com/fwlink/?linkid=852450"),s._openerService.open(SL.o.parse(t)),e.preventDefault(),e.stopPropagation()}}))),s.onblur(s._contentDomNode.domNode,(function(){s.hide()})),s._editor.addOverlayWidget((0,yL.Z)(s)),s}return(0,r.Z)(n,[{key:"dispose",value:function(){this._editor.removeOverlayWidget(this),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return n.ID}},{key:"getDomNode",value:function(){return this._domNode.domNode}},{key:"getPosition",value:function(){return{preference:null}}},{key:"show",value:function(){this._isVisible||(this._isVisible=!0,this._isVisibleKey.set(!0),this._layout(),this._domNode.setDisplay("block"),this._domNode.setAttribute("aria-hidden","false"),this._contentDomNode.domNode.tabIndex=0,this._buildContent(),this._contentDomNode.domNode.focus())}},{key:"_descriptionForCommand",value:function(e,t,n){var i=this._keybindingService.lookupKeybinding(e);return i?CL.WU(t,i.getAriaLabel()):CL.WU(n,e)}},{key:"_buildContent",value:function(){var e=this._editor.getOptions(),t=this._editor.getSelections(),n=0;if(t){var i=this._editor.getModel();i&&t.forEach((function(e){n+=i.getValueLengthInRange(e)}))}var r=function(e,t){return e&&0!==e.length?1===e.length?t?CL.WU(uW.Oe.singleSelectionRange,e[0].positionLineNumber,e[0].positionColumn,t):CL.WU(uW.Oe.singleSelection,e[0].positionLineNumber,e[0].positionColumn):t?CL.WU(uW.Oe.multiSelectionRange,e.length,t):e.length>0?CL.WU(uW.Oe.multiSelection,e.length):"":uW.Oe.noSelection}(t,n);e.get(51)?e.get(77)?r+=uW.Oe.readonlyDiffEditor:r+=uW.Oe.editableDiffEditor:e.get(77)?r+=uW.Oe.readonlyEditor:r+=uW.Oe.editableEditor;var o=rL.dz?uW.Oe.changeConfigToOnMac:uW.Oe.changeConfigToOnWinLinux;switch(e.get(2)){case 0:r+="\n\n - "+o;break;case 2:r+="\n\n - "+uW.Oe.auto_on;break;case 1:r+="\n\n - "+uW.Oe.auto_off,r+=" "+o}e.get(126)?r+="\n\n - "+this._descriptionForCommand(HB.ID,uW.Oe.tabFocusModeOnMsg,uW.Oe.tabFocusModeOnMsgNoKb):r+="\n\n - "+this._descriptionForCommand(HB.ID,uW.Oe.tabFocusModeOffMsg,uW.Oe.tabFocusModeOffMsgNoKb),r+="\n\n - "+(rL.dz?uW.Oe.openDocMac:uW.Oe.openDocWinLinux),r+="\n\n"+uW.Oe.outroMsg,this._contentDomNode.domNode.appendChild((0,MM.BO)(r)),this._contentDomNode.domNode.setAttribute("aria-label",r)}},{key:"hide",value:function(){this._isVisible&&(this._isVisible=!1,this._isVisibleKey.reset(),this._domNode.setDisplay("none"),this._domNode.setAttribute("aria-hidden","true"),this._contentDomNode.domNode.tabIndex=-1,eE.clearNode(this._contentDomNode.domNode),this._editor.focus())}},{key:"_layout",value:function(){var e=this._editor.getLayoutInfo(),t=Math.max(5,Math.min(n.WIDTH,e.width-40)),i=Math.max(5,Math.min(n.HEIGHT,e.height-40));this._domNode.setWidth(t),this._domNode.setHeight(i);var r=Math.round((e.height-i)/2);this._domNode.setTop(r);var o=Math.round((e.width-t)/2);this._domNode.setLeft(o)}}]),n}(ON.$);pW.ID="editor.contrib.accessibilityHelpWidget",pW.WIDTH=500,pW.HEIGHT=300,pW=cW([dW(1,gx.i6),dW(2,iE.d),dW(3,UN.v4)],pW);var vW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.showAccessibilityHelp",label:uW.Oe.showAccessibilityHelpAction,alias:"Show Accessibility Help",precondition:void 0,kbOpts:{primary:571,weight:100,linux:{primary:1595,secondary:[571]}}})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=fW.get(t);n&&n.show()}}]),n}(dx.R6);(0,dx._K)(fW.ID,fW),(0,dx.Qr)(vW);var gW=dx._l.bindToContribution(fW.get);(0,dx.fK)(new gW({id:"closeAccessibilityHelp",precondition:hW,handler:function(e){return e.hide()},kbOpts:{weight:200,kbExpr:fx.u.focus,primary:9,secondary:[1033]}})),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.D0);n&&t.addRule(".monaco-editor .accessibilityHelpWidget { background-color: ".concat(n,"; }"));var i=e.getColor(zx.Hf);i&&t.addRule(".monaco-editor .accessibilityHelpWidget { color: ".concat(i,"; }"));var r=e.getColor(zx.rh);r&&t.addRule(".monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px ".concat(r,"; }"));var o=e.getColor(zx.lR);o&&t.addRule(".monaco-editor .accessibilityHelpWidget { border: 2px solid ".concat(o,"; }"))}));var mW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editor=e,r.widget=null,iL.zc&&(r._register(e.onDidChangeConfiguration((function(){return r.update()}))),r.update()),r}return(0,r.Z)(n,[{key:"update",value:function(){var e=!this.editor.getOption(77);!this.widget&&e?this.widget=new _W(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}},{key:"dispose",value:function(){(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this),this.widget&&(this.widget.dispose(),this.widget=null)}}]),n}(Rx.JT);mW.ID="editor.contrib.iPadShowKeyboard";var _W=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editor=e,r._domNode=document.createElement("textarea"),r._domNode.className="iPadShowKeyboard",r._register(eE.addDisposableListener(r._domNode,"touchstart",(function(e){r.editor.focus()}))),r._register(eE.addDisposableListener(r._domNode,"focus",(function(e){r.editor.focus()}))),r.editor.addOverlayWidget((0,yL.Z)(r)),r}return(0,r.Z)(n,[{key:"dispose",value:function(){this.editor.removeOverlayWidget(this),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return n.ID}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return{preference:1}}}]),n}(Rx.JT);_W.ID="editor.contrib.ShowKeyboardWidget",(0,dx._K)(mW.ID,mW);var yW=n(59401),bW=n(51342),wW=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},CW=function(e,t){return function(n,i){t(n,i,e)}},kW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o){var a;return(0,i.Z)(this,n),(a=t.call(this))._editor=e,a._modeService=o,a._widget=null,a._register(a._editor.onDidChangeModel((function(e){return a.stop()}))),a._register(a._editor.onDidChangeModelLanguage((function(e){return a.stop()}))),a._register(LL.RW.onDidChange((function(e){return a.stop()}))),a._register(a._editor.onKeyUp((function(e){return 9===e.keyCode&&a.stop()}))),a}return(0,r.Z)(n,[{key:"dispose",value:function(){this.stop(),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"launch",value:function(){this._widget||this._editor.hasModel()&&(this._widget=new xW(this._editor,this._modeService))}},{key:"stop",value:function(){this._widget&&(this._widget.dispose(),this._widget=null)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(Rx.JT);kW.ID="editor.contrib.inspectTokens",kW=wW([CW(1,bW.Z),CW(2,MN.h)],kW);var SW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.inspectTokens",label:uW.ug.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=kW.get(t);n&&n.launch()}}]),n}(dx.R6);var xW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o,a;return(0,i.Z)(this,n),(o=t.call(this)).allowEditorOverflow=!0,o._editor=e,o._modeService=r,o._model=o._editor.getModel(),o._domNode=document.createElement("div"),o._domNode.className="tokens-inspect-widget",o._tokenizationSupport=(a=o._model.getLanguageIdentifier(),LL.RW.get(a.language)||{getInitialState:function(){return yW.nO},tokenize:function(e,t,n,i){return(0,yW.Ri)(a.language,e,n,i)},tokenize2:function(e,t,n,i){return(0,yW.mh)(a.id,e,n,i)}}),o._compute(o._editor.getPosition()),o._register(o._editor.onDidChangeCursorPosition((function(e){return o._compute(o._editor.getPosition())}))),o._editor.addContentWidget((0,yL.Z)(o)),o}return(0,r.Z)(n,[{key:"dispose",value:function(){this._editor.removeContentWidget(this),(0,YL.Z)((0,UL.Z)(n.prototype),"dispose",this).call(this)}},{key:"getId",value:function(){return n._ID}},{key:"_compute",value:function(e){for(var t=this._getTokensAtLine(e.lineNumber),n=0,i=t.tokens1.length-1;i>=0;i--){var r=t.tokens1[i];if(e.column-1>=r.offset){n=i;break}}for(var o=0,a=t.tokens2.length>>>1;a>=0;a--)if(e.column-1>=t.tokens2[a<<1]){o=a;break}var s=this._model.getLineContent(e.lineNumber),u="";if(n<t.tokens1.length){var l=t.tokens1[n].offset,c=n+1<t.tokens1.length?t.tokens1[n+1].offset:s.length;u=s.substring(l,c)}(0,eE.reset)(this._domNode,(0,eE.$)("h2.tm-token",void 0,function(e){for(var t="",n=0,i=e.length;n<i;n++){var r=e.charCodeAt(n);switch(r){case 9:t+="\u2192";break;case 32:t+="\xb7";break;default:t+=String.fromCharCode(r)}}return t}(u),(0,eE.$)("span.tm-token-length",void 0,"".concat(u.length," ").concat(1===u.length?"char":"chars")))),(0,eE.append)(this._domNode,(0,eE.$)("hr.tokens-inspect-separator",{style:"clear:both"}));var d=1+(o<<1)<t.tokens2.length?this._decodeMetadata(t.tokens2[1+(o<<1)]):null;(0,eE.append)(this._domNode,(0,eE.$)("table.tm-metadata-table",void 0,(0,eE.$)("tbody",void 0,(0,eE.$)("tr",void 0,(0,eE.$)("td.tm-metadata-key",void 0,"language"),(0,eE.$)("td.tm-metadata-value",void 0,"".concat(d?d.languageIdentifier.language:"-?-"))),(0,eE.$)("tr",void 0,(0,eE.$)("td.tm-metadata-key",void 0,"token type"),(0,eE.$)("td.tm-metadata-value",void 0,"".concat(d?this._tokenTypeToString(d.tokenType):"-?-"))),(0,eE.$)("tr",void 0,(0,eE.$)("td.tm-metadata-key",void 0,"font style"),(0,eE.$)("td.tm-metadata-value",void 0,"".concat(d?this._fontStyleToString(d.fontStyle):"-?-"))),(0,eE.$)("tr",void 0,(0,eE.$)("td.tm-metadata-key",void 0,"foreground"),(0,eE.$)("td.tm-metadata-value",void 0,"".concat(d?SN.Il.Format.CSS.formatHex(d.foreground):"-?-"))),(0,eE.$)("tr",void 0,(0,eE.$)("td.tm-metadata-key",void 0,"background"),(0,eE.$)("td.tm-metadata-value",void 0,"".concat(d?SN.Il.Format.CSS.formatHex(d.background):"-?-")))))),(0,eE.append)(this._domNode,(0,eE.$)("hr.tokens-inspect-separator")),n<t.tokens1.length&&(0,eE.append)(this._domNode,(0,eE.$)("span.tm-token-type",void 0,t.tokens1[n].type)),this._editor.layoutContentWidget(this)}},{key:"_decodeMetadata",value:function(e){var t=LL.RW.getColorMap(),n=LL.NX.getLanguageId(e),i=LL.NX.getTokenType(e),r=LL.NX.getFontStyle(e),o=LL.NX.getForeground(e),a=LL.NX.getBackground(e);return{languageIdentifier:this._modeService.getLanguageIdentifier(n),tokenType:i,fontStyle:r,foreground:t[o],background:t[a]}}},{key:"_tokenTypeToString",value:function(e){switch(e){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 4:return"RegEx";default:return"??"}}},{key:"_fontStyleToString",value:function(e){var t="";return 1&e&&(t+="italic "),2&e&&(t+="bold "),4&e&&(t+="underline "),0===t.length&&(t="---"),t}},{key:"_getTokensAtLine",value:function(e){var t=this._getStateBeforeLine(e),n=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t,0),i=this._tokenizationSupport.tokenize2(this._model.getLineContent(e),!0,t,0);return{startState:t,tokens1:n.tokens,tokens2:i.tokens,endState:n.endState}}},{key:"_getStateBeforeLine",value:function(e){for(var t=this._tokenizationSupport.getInitialState(),n=1;n<e;n++){t=this._tokenizationSupport.tokenize(this._model.getLineContent(n),!0,t,0).endState}return t}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return{position:this._editor.getPosition(),preference:[2,1]}}}]),n}(Rx.JT);xW._ID="editor.contrib.inspectTokensWidget",(0,dx._K)(kW.ID,kW),(0,dx.Qr)(SW),(0,Wx.Ic)((function(e,t){var n=e.getColor(zx.CN);if(n){var i=e.type===KL.e.HIGH_CONTRAST?2:1;t.addRule(".monaco-editor .tokens-inspect-widget { border: ".concat(i,"px solid ").concat(n,"; }")),t.addRule(".monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: ".concat(n,"; }"))}var r=e.getColor(zx.yJ);r&&t.addRule(".monaco-editor .tokens-inspect-widget { background-color: ".concat(r,"; }"));var o=e.getColor(zx.Sb);o&&t.addRule(".monaco-editor .tokens-inspect-widget { color: ".concat(o,"; }"))}));var LW=n(73921),EW=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},NW=function(e,t){return function(n,i){t(n,i,e)}},DW=function(){function e(t){(0,i.Z)(this,e),this.quickInputService=t,this.registry=TF.B.as(LW.IP.Quickaccess)}return(0,r.Z)(e,[{key:"provide",value:function(t){var n=this,i=new Rx.SL;i.add(t.onDidAccept((function(){var e=(0,dt.Z)(t.selectedItems,1)[0];e&&n.quickInputService.quickAccess.show(e.prefix,{preserveValue:!0})}))),i.add(t.onDidChangeValue((function(t){var i=n.registry.getQuickAccessProvider(t.substr(e.PREFIX.length));i&&i.prefix&&i.prefix!==e.PREFIX&&n.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})));var r=this.getQuickAccessProviders(),o=r.editorProviders,a=r.globalProviders;return t.items=0===o.length||0===a.length?(0,Lt.Z)(0===o.length?a:o):[{label:(0,hx.N)("globalCommands","global commands"),type:"separator"}].concat((0,Lt.Z)(a),[{label:(0,hx.N)("editorCommands","editor commands"),type:"separator"}],(0,Lt.Z)(o)),i}},{key:"getQuickAccessProviders",value:function(){var t,n=[],i=[],r=(0,Tr.Z)(this.registry.getQuickAccessProviders().sort((function(e,t){return e.prefix.localeCompare(t.prefix)})));try{for(r.s();!(t=r.n()).done;){var o=t.value;if(o.prefix!==e.PREFIX){var a,s=(0,Tr.Z)(o.helpEntries);try{for(s.s();!(a=s.n()).done;){var u=a.value,l=u.prefix||o.prefix,c=l||"\u2026";(u.needsEditor?i:n).push({prefix:l,label:c,ariaLabel:(0,hx.N)("helpPickAriaLabel","{0}, {1}",c,u.description),description:u.description})}}catch(d){s.e(d)}finally{s.f()}}}}catch(d){r.e(d)}finally{r.f()}return{editorProviders:i,globalProviders:n}}}]),e}();DW.PREFIX="?",DW=EW([NW(0,_N.eJ)],DW),TF.B.as(LW.IP.Quickaccess).registerQuickAccessProvider({ctor:DW,prefix:"",helpEntries:[{description:uW.ld.helpQuickAccessActionLabel,needsEditor:!0}]});var MW=function(){function e(t){(0,i.Z)(this,e),this.options=t,this.rangeHighlightDecorationId=void 0}return(0,r.Z)(e,[{key:"provide",value:function(e,t){var n,i=this,r=new Rx.SL;e.canAcceptInBackground=!!(null===(n=this.options)||void 0===n?void 0:n.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;var o=r.add(new Rx.XK);return o.value=this.doProvide(e,t),r.add(this.onDidActiveTextEditorControlChange((function(){o.value=void 0,o.value=i.doProvide(e,t)}))),r}},{key:"doProvide",value:function(e,t){var n=this,i=new Rx.SL,r=this.activeTextEditorControl;if(r&&this.canProvideWithTextEditor(r)){var o={editor:r},a=(0,yT.Pi)(r);if(a){var s=(0,JE.f6)(r.saveViewState());i.add(a.onDidChangeCursorPosition((function(){s=(0,JE.f6)(r.saveViewState())}))),o.restoreViewState=function(){s&&r===n.activeTextEditorControl&&r.restoreViewState(s)},i.add((0,dN.I)(t.onCancellationRequested)((function(){var e;return null===(e=o.restoreViewState)||void 0===e?void 0:e.call(o)})))}i.add((0,Rx.OF)((function(){return n.clearDecorations(r)}))),i.add(this.provideWithTextEditor(o,e,t))}else i.add(this.provideWithoutTextEditor(e,t));return i}},{key:"canProvideWithTextEditor",value:function(e){return!0}},{key:"gotoLocation",value:function(e,t){var n=e.editor;n.setSelection(t.range),n.revealRangeInCenter(t.range,0),t.preserveFocus||n.focus()}},{key:"getModel",value:function(e){var t;return(0,yT.QI)(e)?null===(t=e.getModel())||void 0===t?void 0:t.modified:e.getModel()}},{key:"addDecorations",value:function(e,t){var n=this;e.changeDecorations((function(e){var i=[];n.rangeHighlightDecorationId&&(i.push(n.rangeHighlightDecorationId.overviewRulerDecorationId),i.push(n.rangeHighlightDecorationId.rangeHighlightId),n.rangeHighlightDecorationId=void 0);var r=[{range:t,options:{className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{overviewRuler:{color:(0,Wx.EN)(Bx.m9),position:jx.sh.Full}}}],o=e.deltaDecorations(i,r),a=(0,dt.Z)(o,2),s=a[0],u=a[1];n.rangeHighlightDecorationId={rangeHighlightId:s,overviewRulerDecorationId:u}}))}},{key:"clearDecorations",value:function(e){var t=this.rangeHighlightDecorationId;t&&(e.changeDecorations((function(e){e.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])})),this.rangeHighlightDecorationId=void 0)}}]),e}(),TW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{canAcceptInBackground:!0})}return(0,r.Z)(n,[{key:"provideWithoutTextEditor",value:function(e){var t=(0,hx.N)("cannotRunGotoLine","Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,Rx.JT.None}},{key:"provideWithTextEditor",value:function(e,t,i){var r=this,o=e.editor,a=new Rx.SL;a.add(t.onDidAccept((function(n){var i=(0,dt.Z)(t.selectedItems,1)[0];if(i){if(!r.isValidLineNumber(o,i.lineNumber))return;r.gotoLocation(e,{range:r.toRange(i.lineNumber,i.column),keyMods:t.keyMods,preserveFocus:n.inBackground}),n.inBackground||t.hide()}})));var s=function(){var e=r.parsePosition(o,t.value.trim().substr(n.PREFIX.length)),i=r.getPickLabel(o,e.lineNumber,e.column);if(t.items=[{lineNumber:e.lineNumber,column:e.column,label:i}],t.ariaLabel=i,r.isValidLineNumber(o,e.lineNumber)){var a=r.toRange(e.lineNumber,e.column);o.revealRangeInCenter(a,0),r.addDecorations(o,a)}else r.clearDecorations(o)};s(),a.add(t.onDidChangeValue((function(){return s()})));var u=(0,yT.Pi)(o);u&&(2===u.getOptions().get(56).renderType&&(u.updateOptions({lineNumbers:"on"}),a.add((0,Rx.OF)((function(){return u.updateOptions({lineNumbers:"relative"})})))));return a}},{key:"toRange",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}},{key:"parsePosition",value:function(e,t){var n=t.split(/,|:|#/).map((function(e){return parseInt(e,10)})).filter((function(e){return!isNaN(e)})),i=this.lineCount(e)+1;return{lineNumber:n[0]>0?n[0]:i+n[0],column:n[1]}}},{key:"getPickLabel",value:function(e,t,n){if(this.isValidLineNumber(e,t))return this.isValidColumn(e,t,n)?(0,hx.N)("gotoLineColumnLabel","Go to line {0} and character {1}.",t,n):(0,hx.N)("gotoLineLabel","Go to line {0}.",t);var i=e.getPosition()||{lineNumber:1,column:1},r=this.lineCount(e);return r>1?(0,hx.N)("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",i.lineNumber,i.column,r):(0,hx.N)("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",i.lineNumber,i.column)}},{key:"isValidLineNumber",value:function(e,t){return!(!t||"number"!==typeof t)&&(t>0&&t<=this.lineCount(e))}},{key:"isValidColumn",value:function(e,t,n){if(!n||"number"!==typeof n)return!1;var i=this.getModel(e);if(!i)return!1;var r={lineNumber:t,column:n};return i.validatePosition(r).equals(r)}},{key:"lineCount",value:function(e){var t,n;return null!==(n=null===(t=this.getModel(e))||void 0===t?void 0:t.getLineCount())&&void 0!==n?n:0}}]),n}(MW);TW.PREFIX=":";var OW=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},IW=function(e,t){return function(n,i){t(n,i,e)}},AW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editorService=e,r.onDidActiveTextEditorControlChange=hE.ju.None,r}return(0,r.Z)(n,[{key:"activeTextEditorControl",get:function(){return(0,JE.f6)(this.editorService.getFocusedCodeEditor())}}]),n}(TW);AW=OW([IW(0,aL.$)],AW),TF.B.as(LW.IP.Quickaccess).registerQuickAccessProvider({ctor:AW,prefix:AW.PREFIX,helpEntries:[{description:uW.qq.gotoLineActionLabel,needsEditor:!0}]});var PW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.gotoLine",label:uW.qq.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:2085,mac:{primary:293},weight:100}})}return(0,r.Z)(n,[{key:"run",value:function(e){e.get(_N.eJ).quickAccess.show(AW.PREFIX)}}]),n}(dx.R6);(0,dx.Qr)(PW);var RW=[void 0,[]];function ZW(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=t;return r.values&&r.values.length>1?function(e,t,n,i){var r,o=0,a=[],s=(0,Tr.Z)(t);try{for(s.s();!(r=s.n()).done;){var u=FW(e,r.value,n,i),l=(0,dt.Z)(u,2),c=l[0],d=l[1];if("number"!==typeof c)return RW;o+=c,a.push.apply(a,(0,Lt.Z)(d))}}catch(h){s.e(h)}finally{s.f()}return[o,jW(a)]}(e,r.values,n,i):FW(e,t,n,i)}function FW(e,t,n,i){var r=(0,kT.EW)(t.original,t.originalLowercase,n,e,e.toLowerCase(),i,!0);return r?[r[0],(0,kT.mB)(r)]:RW}function jW(e){var t,n=e.sort((function(e,t){return e.start-t.start})),i=[],r=void 0,o=(0,Tr.Z)(n);try{for(o.s();!(t=o.n()).done;){var a=t.value;r&&HW(r,a)?(r.start=Math.min(r.start,a.start),r.end=Math.max(r.end,a.end)):(r=a,i.push(a))}}catch(s){o.e(s)}finally{o.f()}return i}function HW(e,t){return!(e.end<t.start)&&!(t.end<e.start)}var BW,zW=" ";function WW(e){"string"!==typeof e&&(e="");var t=e.toLowerCase(),n=VW(e),i=n.pathNormalized,r=n.normalized,o=n.normalizedLowercase,a=i.indexOf(Sj.ir)>=0,s=void 0,u=e.split(zW);if(u.length>1){var l,c=(0,Tr.Z)(u);try{for(c.s();!(l=c.n()).done;){var d=l.value,h=VW(d),f=h.pathNormalized,p=h.normalized,v=h.normalizedLowercase;p&&(s||(s=[]),s.push({original:d,originalLowercase:d.toLowerCase(),pathNormalized:f,normalized:p,normalizedLowercase:v}))}}catch(g){c.e(g)}finally{c.f()}}return{original:e,originalLowercase:t,pathNormalized:i,normalized:r,normalizedLowercase:o,values:s,containsPathSeparator:a}}function VW(e){var t;t=rL.ED?e.replace(/\//g,Sj.ir):e.replace(/\\/g,Sj.ir);var n=(0,CL.R1)(t).replace(/\s/g,"");return{pathNormalized:t,normalized:n,normalizedLowercase:n.toLowerCase()}}function YW(e){return Array.isArray(e)?WW(e.map((function(e){return e.original})).join(zW)):WW(e.original)}var UW=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},KW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Object.create(null);return(0,i.Z)(this,n),(e=t.call(this,r)).options=r,e.options.canAcceptInBackground=!0,e}return(0,r.Z)(n,[{key:"provideWithoutTextEditor",value:function(e){return this.provideLabelPick(e,(0,hx.N)("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),Rx.JT.None}},{key:"provideWithTextEditor",value:function(e,t,n){var i=e.editor,r=this.getModel(i);return r?LL.vJ.has(r)?this.doProvideWithEditorSymbols(e,r,t,n):this.doProvideWithoutEditorSymbols(e,r,t,n):Rx.JT.None}},{key:"doProvideWithoutEditorSymbols",value:function(e,t,n,i){var r=this,o=new Rx.SL;return this.provideLabelPick(n,(0,hx.N)("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),UW(r,void 0,void 0,ki().mark((function r(){return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.waitForLanguageSymbolRegistry(t,o);case 2:if(r.sent&&!i.isCancellationRequested){r.next=5;break}return r.abrupt("return");case 5:o.add(this.doProvideWithEditorSymbols(e,t,n,i));case 6:case"end":return r.stop()}}),r,this)}))),o}},{key:"provideLabelPick",value:function(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}},{key:"waitForLanguageSymbolRegistry",value:function(e,t){return UW(this,void 0,void 0,ki().mark((function n(){var i,r,o;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!LL.vJ.has(e)){n.next=2;break}return n.abrupt("return",!0);case 2:return r=new Promise((function(e){return i=e})),o=t.add(LL.vJ.onDidChange((function(){LL.vJ.has(e)&&(o.dispose(),i(!0))}))),t.add((0,Rx.OF)((function(){return i(!1)}))),n.abrupt("return",r);case 6:case"end":return n.stop()}}),n)})))}},{key:"doProvideWithEditorSymbols",value:function(e,t,i,r){var o=this,a=e.editor,s=new Rx.SL;s.add(i.onDidAccept((function(t){var n=(0,dt.Z)(i.selectedItems,1)[0];n&&n.range&&(o.gotoLocation(e,{range:n.range.selection,keyMods:i.keyMods,preserveFocus:t.inBackground}),t.inBackground||i.hide())}))),s.add(i.onDidTriggerItemButton((function(t){var n=t.item;n&&n.range&&(o.gotoLocation(e,{range:n.range.selection,keyMods:i.keyMods,forceSideBySide:!0}),i.hide())})));var u=this.getDocumentSymbols(t,r),l=void 0,c=function(){return UW(o,void 0,void 0,ki().mark((function e(){var t,o;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return null===l||void 0===l||l.dispose(!0),i.busy=!1,l=new bL.A(r),i.busy=!0,e.prev=4,t=WW(i.value.substr(n.PREFIX.length).trim()),e.next=8,this.doGetSymbolPicks(u,t,void 0,l.token);case 8:if(o=e.sent,!r.isCancellationRequested){e.next=11;break}return e.abrupt("return");case 11:o.length>0?i.items=o:t.original.length>0?this.provideLabelPick(i,(0,hx.N)("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(i,(0,hx.N)("noSymbolResults","No editor symbols"));case 12:return e.prev=12,r.isCancellationRequested||(i.busy=!1),e.finish(12);case 15:case"end":return e.stop()}}),e,this,[[4,,12,15]])})))};s.add(i.onDidChangeValue((function(){return c()}))),c();var d=!0;return s.add(i.onDidChangeActive((function(){var e=(0,dt.Z)(i.activeItems,1)[0];if(e&&e.range){if(d)return void(d=!1);a.revealRangeInCenter(e.range.selection,0),o.addDecorations(a,e.range.decoration)}}))),s}},{key:"doGetSymbolPicks",value:function(e,t,i,r){return UW(this,void 0,void 0,ki().mark((function o(){var a,s,u,l,c,d,h,f,p,v,g,m,_,y,b,w,C,k,S,x,L,E,N,D,M,T,O,I,A,P,R,Z,F,j=this;return ki().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,e;case 2:if(a=o.sent,!r.isCancellationRequested){o.next=5;break}return o.abrupt("return",[]);case 5:s=0===t.original.indexOf(n.SCOPE_PREFIX),u=s?1:0,t.values&&t.values.length>1?(l=YW(t.values[0]),c=YW(t.values.slice(1))):l=t,d=[],h=0;case 10:if(!(h<a.length)){o.next=41;break}if(f=a[h],p=(0,CL.fy)(f.name),v="$(symbol-".concat(LL.uZ.toString(f.kind)||"property",") ").concat(p),g=v.length-p.length,m=f.containerName,(null===i||void 0===i?void 0:i.extraContainerLabel)&&(m=m?"".concat(i.extraContainerLabel," \u2022 ").concat(m):i.extraContainerLabel),_=void 0,y=void 0,b=void 0,w=void 0,!(t.original.length>u)){o.next=36;break}if(C=!1,l!==t&&(k=ZW(v,Object.assign(Object.assign({},t),{values:void 0}),u,g),S=(0,dt.Z)(k,2),_=S[0],y=S[1],"number"===typeof _&&(C=!0)),"number"===typeof _){o.next=31;break}if(x=ZW(v,l,u,g),L=(0,dt.Z)(x,2),_=L[0],y=L[1],"number"===typeof _){o.next=31;break}return o.abrupt("continue",38);case 31:if(C||!c){o.next=36;break}if(m&&c.original.length>0&&(E=ZW(m,c),N=(0,dt.Z)(E,2),b=N[0],w=N[1]),"number"===typeof b){o.next=35;break}return o.abrupt("continue",38);case 35:"number"===typeof _&&(_+=b);case 36:D=f.tags&&f.tags.indexOf(1)>=0,d.push({index:h,kind:f.kind,score:_,label:v,ariaLabel:p,description:m,highlights:D?void 0:{label:y,description:w},range:{selection:Fx.e.collapseToStart(f.selectionRange),decoration:f.range},strikethrough:D,buttons:function(){var e,t,n=(null===(e=j.options)||void 0===e?void 0:e.openSideBySideDirection)?null===(t=j.options)||void 0===t?void 0:t.openSideBySideDirection():void 0;if(n)return[{iconClass:"right"===n?pE.lA.splitHorizontal.classNames:pE.lA.splitVertical.classNames,tooltip:"right"===n?(0,hx.N)("openToSide","Open to the Side"):(0,hx.N)("openToBottom","Open to the Bottom")}]}()});case 38:h++,o.next=10;break;case 41:if(M=d.sort((function(e,t){return s?j.compareByKindAndScore(e,t):j.compareByScore(e,t)})),T=[],s){O=function(){A&&"number"===typeof I&&P>0&&(A.label=(0,CL.WU)(GW[I]||qW,P))},I=void 0,A=void 0,P=0,R=(0,Tr.Z)(M);try{for(R.s();!(Z=R.n()).done;)F=Z.value,I!==F.kind?(O(),I=F.kind,P=1,A={type:"separator"},T.push(A)):P++,T.push(F)}catch(H){R.e(H)}finally{R.f()}O()}else M.length>0&&(T=[{label:(0,hx.N)("symbols","symbols ({0})",d.length),type:"separator"}].concat((0,Lt.Z)(M)));return o.abrupt("return",T);case 45:case"end":return o.stop()}}),o)})))}},{key:"compareByScore",value:function(e,t){if("number"!==typeof e.score&&"number"===typeof t.score)return 1;if("number"===typeof e.score&&"number"!==typeof t.score)return-1;if("number"===typeof e.score&&"number"===typeof t.score){if(e.score>t.score)return-1;if(e.score<t.score)return 1}return e.index<t.index?-1:e.index>t.index?1:0}},{key:"compareByKindAndScore",value:function(e,t){var n=GW[e.kind]||qW,i=GW[t.kind]||qW,r=n.localeCompare(i);return 0===r?this.compareByScore(e,t):r}},{key:"getDocumentSymbols",value:function(e,t){return UW(this,void 0,void 0,ki().mark((function n(){var i;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,lR.create(e,t);case 2:return i=n.sent,n.abrupt("return",t.isCancellationRequested?[]:i.asListOfDocumentSymbols());case 4:case"end":return n.stop()}}),n)})))}}]),n}(MW);KW.PREFIX="@",KW.SCOPE_PREFIX=":",KW.PREFIX_BY_CATEGORY="".concat(KW.PREFIX).concat(KW.SCOPE_PREFIX);var qW=(0,hx.N)("property","properties ({0})"),GW=(BW={},(0,xt.Z)(BW,5,(0,hx.N)("method","methods ({0})")),(0,xt.Z)(BW,11,(0,hx.N)("function","functions ({0})")),(0,xt.Z)(BW,8,(0,hx.N)("_constructor","constructors ({0})")),(0,xt.Z)(BW,12,(0,hx.N)("variable","variables ({0})")),(0,xt.Z)(BW,4,(0,hx.N)("class","classes ({0})")),(0,xt.Z)(BW,22,(0,hx.N)("struct","structs ({0})")),(0,xt.Z)(BW,23,(0,hx.N)("event","events ({0})")),(0,xt.Z)(BW,24,(0,hx.N)("operator","operators ({0})")),(0,xt.Z)(BW,10,(0,hx.N)("interface","interfaces ({0})")),(0,xt.Z)(BW,2,(0,hx.N)("namespace","namespaces ({0})")),(0,xt.Z)(BW,3,(0,hx.N)("package","packages ({0})")),(0,xt.Z)(BW,25,(0,hx.N)("typeParameter","type parameters ({0})")),(0,xt.Z)(BW,1,(0,hx.N)("modules","modules ({0})")),(0,xt.Z)(BW,6,(0,hx.N)("property","properties ({0})")),(0,xt.Z)(BW,9,(0,hx.N)("enum","enumerations ({0})")),(0,xt.Z)(BW,21,(0,hx.N)("enumMember","enumeration members ({0})")),(0,xt.Z)(BW,14,(0,hx.N)("string","strings ({0})")),(0,xt.Z)(BW,0,(0,hx.N)("file","files ({0})")),(0,xt.Z)(BW,17,(0,hx.N)("array","arrays ({0})")),(0,xt.Z)(BW,15,(0,hx.N)("number","numbers ({0})")),(0,xt.Z)(BW,16,(0,hx.N)("boolean","booleans ({0})")),(0,xt.Z)(BW,18,(0,hx.N)("object","objects ({0})")),(0,xt.Z)(BW,19,(0,hx.N)("key","keys ({0})")),(0,xt.Z)(BW,7,(0,hx.N)("field","fields ({0})")),(0,xt.Z)(BW,13,(0,hx.N)("constant","constants ({0})")),BW),$W=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},QW=function(e,t){return function(n,i){t(n,i,e)}},XW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e){var r;return(0,i.Z)(this,n),(r=t.call(this)).editorService=e,r.onDidActiveTextEditorControlChange=hE.ju.None,r}return(0,r.Z)(n,[{key:"activeTextEditorControl",get:function(){return(0,JE.f6)(this.editorService.getFocusedCodeEditor())}}]),n}(KW);XW=$W([QW(0,aL.$)],XW),TF.B.as(LW.IP.Quickaccess).registerQuickAccessProvider({ctor:XW,prefix:KW.PREFIX,helpEntries:[{description:uW.aq.quickOutlineActionLabel,prefix:KW.PREFIX,needsEditor:!0},{description:uW.aq.quickOutlineByCategoryActionLabel,prefix:KW.PREFIX_BY_CATEGORY,needsEditor:!0}]});var JW=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.quickOutline",label:uW.aq.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:fx.u.hasDocumentSymbolProvider,kbOpts:{kbExpr:fx.u.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}return(0,r.Z)(n,[{key:"run",value:function(e){e.get(_N.eJ).quickAccess.show(KW.PREFIX)}}]),n}(dx.R6);(0,dx.Qr)(JW);var eV,tV=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function nV(e){var t=e;return Array.isArray(t.items)}function iV(e){var t=e;return!!t.picks&&t.additionalPicks instanceof Promise}!function(e){e[e.NO_ACTION=0]="NO_ACTION",e[e.CLOSE_PICKER=1]="CLOSE_PICKER",e[e.REFRESH_PICKER=2]="REFRESH_PICKER",e[e.REMOVE_ITEM=3]="REMOVE_ITEM"}(eV||(eV={}));var rV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this)).prefix=e,o.options=r,o}return(0,r.Z)(n,[{key:"provide",value:function(e,t){var i,r=this,o=new Rx.SL;e.canAcceptInBackground=!!(null===(i=this.options)||void 0===i?void 0:i.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;var a=void 0,s=o.add(new Rx.XK),u=function(){return tV(r,void 0,void 0,ki().mark((function i(){var r,o,u,l,c,d,h,f,p=this;return ki().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(r=s.value=new Rx.SL,null===a||void 0===a||a.dispose(!0),e.busy=!1,a=new bL.A(t),o=a.token,u=e.value.substr(this.prefix.length).trim(),l=this.getPicks(u,r,o),c=function(t,n){var i,r,o=void 0;if(nV(t)?(r=t.items,o=t.active):r=t,0===r.length){if(n)return!1;u.length>0&&(null===(i=p.options)||void 0===i?void 0:i.noResultsPick)&&(r=[p.options.noResultsPick])}return e.items=r,o&&(e.activeItems=[o]),!0},null!==l){i.next=11;break}i.next=33;break;case 11:if(!iV(l)){i.next=18;break}return d=!1,h=!1,i.next=16,Promise.all([tV(p,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,Px.Vs)(n.FAST_PICKS_RACE_DELAY);case 2:if(!o.isCancellationRequested){e.next=4;break}return e.abrupt("return");case 4:h||(d=c(l.picks,!0));case 5:case"end":return e.stop()}}),e)}))),tV(p,void 0,void 0,ki().mark((function t(){var n,i,r,a,s,u,f;return ki().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.busy=!0,t.prev=1,t.next=4,l.additionalPicks;case 4:if(n=t.sent,!o.isCancellationRequested){t.next=7;break}return t.abrupt("return");case 7:r=void 0,nV(l.picks)?(i=l.picks.items,r=l.picks.active):i=l.picks,s=void 0,nV(n)?(a=n.items,s=n.active):a=n,(a.length>0||!d)&&(u=void 0,r||s||(f=e.activeItems[0])&&-1!==i.indexOf(f)&&(u=f),c({items:[].concat((0,Lt.Z)(i),(0,Lt.Z)(a)),active:r||s||u}));case 12:return t.prev=12,o.isCancellationRequested||(e.busy=!1),h=!0,t.finish(12);case 16:case"end":return t.stop()}}),t,null,[[1,,12,16]])})))]);case 16:i.next=33;break;case 18:if(l instanceof Promise){i.next=22;break}c(l),i.next=33;break;case 22:return e.busy=!0,i.prev=23,i.next=26,l;case 26:if(f=i.sent,!o.isCancellationRequested){i.next=29;break}return i.abrupt("return");case 29:c(f);case 30:return i.prev=30,o.isCancellationRequested||(e.busy=!1),i.finish(30);case 33:case"end":return i.stop()}}),i,this,[[23,,30,33]])})))};return o.add(e.onDidChangeValue((function(){return u()}))),u(),o.add(e.onDidAccept((function(t){var n=(0,dt.Z)(e.selectedItems,1)[0];"function"===typeof(null===n||void 0===n?void 0:n.accept)&&(t.inBackground||e.hide(),n.accept(e.keyMods,t))}))),o.add(e.onDidTriggerItemButton((function(n){var i=n.button,o=n.item;return tV(r,void 0,void 0,ki().mark((function n(){var r,a,s,l,c,d,h;return ki().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if("function"!==typeof o.trigger){n.next=25;break}if(!((s=null!==(a=null===(r=o.buttons)||void 0===r?void 0:r.indexOf(i))&&void 0!==a?a:-1)>=0)){n.next=25;break}if("number"!==typeof(l=o.trigger(s,e.keyMods))){n.next=8;break}n.t0=l,n.next=11;break;case 8:return n.next=10,l;case 10:n.t0=n.sent;case 11:if(c=n.t0,!t.isCancellationRequested){n.next=14;break}return n.abrupt("return");case 14:n.t1=c,n.next=n.t1===eV.NO_ACTION?17:n.t1===eV.CLOSE_PICKER?18:n.t1===eV.REFRESH_PICKER?20:n.t1===eV.REMOVE_ITEM?22:25;break;case 17:return n.abrupt("break",25);case 18:return e.hide(),n.abrupt("break",25);case 20:return u(),n.abrupt("break",25);case 22:return-1!==(d=e.items.indexOf(o))&&((h=e.items.slice()).splice(d,1),e.items=h),n.abrupt("break",25);case 25:case"end":return n.stop()}}),n)})))}))),o}}]),n}(Rx.JT);function oV(e,t){return t&&(e.stack||e.stacktrace)?hx.N("stackTrace.format","{0}: {1}",sV(e),aV(e.stack)||aV(e.stacktrace)):sV(e)}function aV(e){return Array.isArray(e)?e.join("\n"):e}function sV(e){return"string"===typeof e.code&&"number"===typeof e.errno&&"string"===typeof e.syscall?hx.N("nodeExceptionMessage","A system error occurred ({0})",e.message):e.message||hx.N("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function uV(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e)return hx.N("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(e)){var n=mx.kX(e),i=uV(n[0],t);return n.length>1?hx.N("error.moreErrors","{0} ({1} errors in total)",i,n.length):i}if(JE.HD(e))return e;if(e.detail){var r=e.detail;if(r.error)return oV(r.error,t);if(r.exception)return oV(r.exception,t)}return e.stack?oV(e,t):e.message?e.message:hx.N("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}rV.FAST_PICKS_RACE_DELAY=200;var lV=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},cV=function(e,t){return function(n,i){t(n,i,e)}},dV=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},hV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u){var l;return(0,i.Z)(this,n),(l=t.call(this,n.PREFIX,e)).instantiationService=r,l.keybindingService=o,l.commandService=a,l.telemetryService=s,l.notificationService=u,l.commandsHistory=l._register(l.instantiationService.createInstance(fV)),l.options=e,l}return(0,r.Z)(n,[{key:"getPicks",value:function(e,t,i){return dV(this,void 0,void 0,ki().mark((function r(){var o,a,s,u,l,c,d,h,f,p,v,g,m,_,y,b,w=this;return ki().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.getCommandPicks(t,i);case 2:if(o=r.sent,!i.isCancellationRequested){r.next=5;break}return r.abrupt("return",[]);case 5:a=[],s=(0,Tr.Z)(o);try{for(s.s();!(u=s.n()).done;)l=u.value,c=(0,JE.f6)(n.WORD_FILTER(e,l.label)),d=l.commandAlias?(0,JE.f6)(n.WORD_FILTER(e,l.commandAlias)):void 0,c||d?(l.highlights={label:c,detail:this.options.showAlias?d:void 0},a.push(l)):e===l.commandId&&a.push(l)}catch(C){s.e(C)}finally{s.f()}for(h=new Map,f=0,p=a;f<p.length;f++)v=p[f],(g=h.get(v.label))?(v.description=v.commandId,g.description=g.commandId):h.set(v.label,v);a.sort((function(e,t){var n=w.commandsHistory.peek(e.commandId),i=w.commandsHistory.peek(t.commandId);return n&&i?n>i?-1:1:n?-1:i?1:e.label.localeCompare(t.label)})),m=[],_=!1,y=ki().mark((function e(){var t,n,i;return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=a[b],n=w.keybindingService.lookupKeybinding(t.commandId),i=n?(0,hx.N)("commandPickAriaLabelWithKeybinding","{0}, {1}",t.label,n.getAriaLabel()):t.label,0===b&&w.commandsHistory.peek(t.commandId)&&(m.push({type:"separator",label:(0,hx.N)("recentlyUsed","recently used")}),_=!0),0!==b&&_&&!w.commandsHistory.peek(t.commandId)&&(m.push({type:"separator",label:(0,hx.N)("morecCommands","other commands")}),_=!1),m.push(Object.assign(Object.assign({},t),{ariaLabel:i,detail:w.options.showAlias&&t.commandAlias!==t.label?t.commandAlias:void 0,keybinding:n,accept:function(){return dV(w,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.commandId,from:"quick open"}),e.prev=2,e.next=5,this.commandService.executeCommand(t.commandId);case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(2),(0,yx.VV)(e.t0)||this.notificationService.error((0,hx.N)("canNotRun","Command '{0}' resulted in an error ({1})",t.label,uV(e.t0)));case 10:case"end":return e.stop()}}),e,this,[[2,7]])})))}}));case 6:case"end":return e.stop()}}),e)})),b=0;case 15:if(!(b<a.length)){r.next=20;break}return r.delegateYield(y(),"t0",17);case 17:b++,r.next=15;break;case 20:return r.abrupt("return",m);case 21:case"end":return r.stop()}}),r,this)})))}}]),n}(rV);hV.PREFIX=">",hV.WORD_FILTER=(0,kT.or)(kT.Ji,kT.KZ,kT.ir),hV=lV([cV(1,JL.TG),cV(2,iE.d),cV(3,IL.H),cV(4,DE.b),cV(5,NE.lT)],hV);var fV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r){var o;return(0,i.Z)(this,n),(o=t.call(this)).storageService=e,o.configurationService=r,o.configuredCommandsHistoryLength=0,o.updateConfiguration(),o.load(),o.registerListeners(),o}return(0,r.Z)(n,[{key:"registerListeners",value:function(){var e=this;this._register(this.configurationService.onDidChangeConfiguration((function(){return e.updateConfiguration()})))}},{key:"updateConfiguration",value:function(){this.configuredCommandsHistoryLength=n.getConfiguredCommandHistoryLength(this.configurationService),n.cache&&n.cache.limit!==this.configuredCommandsHistoryLength&&(n.cache.limit=this.configuredCommandsHistoryLength,n.saveState(this.storageService))}},{key:"load",value:function(){var e,t=this.storageService.get(n.PREF_KEY_CACHE,0);if(t)try{e=JSON.parse(t)}catch(o){}var i,r=n.cache=new lN.z6(this.configuredCommandsHistoryLength,1);e&&(i=e.usesLRU?e.entries:e.entries.sort((function(e,t){return e.value-t.value})),i.forEach((function(e){return r.set(e.key,e.value)})));n.counter=this.storageService.getNumber(n.PREF_KEY_COUNTER,0,n.counter)}},{key:"push",value:function(e){n.cache&&(n.cache.set(e,n.counter++),n.saveState(this.storageService))}},{key:"peek",value:function(e){var t;return null===(t=n.cache)||void 0===t?void 0:t.peek(e)}}],[{key:"saveState",value:function(e){if(n.cache){var t={usesLRU:!0,entries:[]};n.cache.forEach((function(e,n){return t.entries.push({key:n,value:e})})),e.store(n.PREF_KEY_CACHE,JSON.stringify(t),0,0),e.store(n.PREF_KEY_COUNTER,n.counter,0,0)}}},{key:"getConfiguredCommandHistoryLength",value:function(e){var t,i,r=null===(i=null===(t=e.getValue().workbench)||void 0===t?void 0:t.commandPalette)||void 0===i?void 0:i.history;return"number"===typeof r?r:n.DEFAULT_COMMANDS_HISTORY_LENGTH}}]),n}(Rx.JT);fV.DEFAULT_COMMANDS_HISTORY_LENGTH=50,fV.PREF_KEY_CACHE="commandPalette.mru.cache",fV.PREF_KEY_COUNTER="commandPalette.mru.counter",fV.counter=1,fV=lV([cV(0,cN.Uy),cV(1,LN.Ui)],fV);var pV=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},vV=function(e,t){return function(n,i){t(n,i,e)}},gV=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{u(i.next(e))}catch(t){o(t)}}function s(e){try{u(i.throw(e))}catch(t){o(t)}}function u(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((i=i.apply(e,t||[])).next())}))},mV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u){var l;return(0,i.Z)(this,n),(l=t.call(this,{showAlias:!1},e,o,a,s,u)).codeEditorService=r,l}return(0,r.Z)(n,[{key:"activeTextEditorControl",get:function(){return(0,JE.f6)(this.codeEditorService.getFocusedCodeEditor())}},{key:"getCommandPicks",value:function(){return gV(this,void 0,void 0,ki().mark((function e(){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getCodeEditorCommandPicks());case 1:case"end":return e.stop()}}),e,this)})))}}]),n}(function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u){return(0,i.Z)(this,n),t.call(this,e,r,o,a,s,u)}return(0,r.Z)(n,[{key:"getCodeEditorCommandPicks",value:function(){var e=this.activeTextEditorControl;if(!e)return[];var t,n=[],i=(0,Tr.Z)(e.getSupportedActions());try{for(i.s();!(t=i.n()).done;){var r=t.value;n.push({commandId:r.id,commandAlias:r.alias,label:(0,_x.x$)(r.label)||r.id})}}catch(o){i.e(o)}finally{i.f()}return n}}]),n}(hV));mV=pV([vV(0,JL.TG),vV(1,aL.$),vV(2,iE.d),vV(3,IL.H),vV(4,DE.b),vV(5,NE.lT)],mV),TF.B.as(LW.IP.Quickaccess).registerQuickAccessProvider({ctor:mV,prefix:mV.PREFIX,helpEntries:[{description:uW.UX.quickCommandHelp,needsEditor:!0}]});var _V=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.call(this,{id:"editor.action.quickCommand",label:uW.UX.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:fx.u.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}return(0,r.Z)(n,[{key:"run",value:function(e){e.get(_N.eJ).quickAccess.show(mV.PREFIX)}}]),n}(dx.R6);(0,dx.Qr)(_V);var yV=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},bV=function(e,t){return function(n,i){t(n,i,e)}},wV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(e,r,o,a,s,u,l){return(0,i.Z)(this,n),t.call(this,!0,e,r,o,a,s,u,l)}return(0,r.Z)(n)}(QT);wV=yV([bV(1,gx.i6),bV(2,aL.$),bV(3,NE.lT),bV(4,JL.TG),bV(5,cN.Uy),bV(6,LN.Ui)],wV),(0,dx._K)(QT.ID,wV);var CV=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;return(0,i.Z)(this,n),(e=t.call(this,{id:"editor.action.toggleHighContrast",label:uW.xi.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}))._originalThemeName=null,e}return(0,r.Z)(n,[{key:"run",value:function(e,t){var n=e.get(bW.Z);this._originalThemeName?(n.setTheme(this._originalThemeName),this._originalThemeName=null):(this._originalThemeName=n.getColorTheme().themeName,n.setTheme("hc-black"))}}]),n}(dx.R6);(0,dx.Qr)(CV);var kV="s-expression";var SV=(0,ct.default)("ydb-query-explain-result"),xV={automaticLayout:!0,selectOnLineNumbers:!0,readOnly:!0,minimap:{enabled:!1},wrappingIndent:"indent"},LV={schema:"schema",json:"json",ast:"ast"},EV=[{value:LV.schema,content:"Schema"},{value:LV.json,content:"JSON"},{value:LV.ast,content:"AST"}];function NV(t){var n=(0,e.useRef)(),i=t.data,r=t.opts,o=t.shapes,a=t.theme,s=(0,e.useState)(a),u=(0,dt.Z)(s,2),l=u[0],c=u[1];(0,e.useEffect)((function(){c(a)}),[a]);var d=function(){n.current=tS("graphRoot",i,r,o),n.current.render()};return(0,e.useEffect)((function(){return d(),function(){n.current=void 0}}),[]),(0,e.useEffect)((function(){var e=document.getElementById("graphRoot");if(!e)throw new Error("Can't find element with id #graphRoot");e.innerHTML="",d()}),[l]),(0,e.useEffect)((function(){var e,i;null===(e=n.current)||void 0===e||null===(i=e.updateData)||void 0===i||i.call(e,t.data)}),[t.data]),(0,fs.jsx)("div",{id:"graphRoot",style:{height:"100vh"}})}function DV(t){var n=Q(),i=(0,e.useState)(LV.schema),r=(0,dt.Z)(i,2),o=r[0],a=r[1],s=te((function(e){return e.fullscreen}));(0,e.useEffect)((function(){return function(){n(yh())}}),[]);var u=function(){var e,n;switch(o){case LV.schema:return Boolean(null===(e=t.explain)||void 0===e||null===(n=e.nodes)||void 0===n?void 0:n.length);case LV.json:return Boolean(t.explain);case LV.ast:return Boolean(t.ast);default:return!1}};return(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)("div",{className:SV("controls"),children:!t.loading&&(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsxs)("div",{className:SV("controls-right"),children:[(0,fs.jsx)(NC,{error:t.error}),!t.error&&(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)(SC,{}),(0,fs.jsx)(Pp,{options:EV,value:o,onUpdate:function(e){a(e)}})]})]}),(0,fs.jsxs)("div",{className:SV("controls-left"),children:[(0,fs.jsx)(yC,{disabled:Boolean(t.error)||!u()}),(0,fs.jsx)(xw,{onCollapse:t.onCollapseResults,onExpand:t.onExpandResults,isCollapsed:t.isResultsCollapsed,initialDirection:"bottom"})]})]})}),(0,fs.jsx)("div",{className:SV("result"),children:function(){var n=t.error,i=t.loading,r=t.loadingAst;if(i||r)return(0,fs.jsx)("div",{className:SV("loader"),children:(0,fs.jsx)(yy,{size:"m"})});if(n)return function(){var e,n,i=t.error;return e=i.data?"string"===typeof i.data?i.data:null===(n=i.data.error)||void 0===n?void 0:n.message:i,(0,fs.jsx)("div",{className:SV("text-message"),children:e})}();if(!u())return(0,fs.jsx)("div",{className:SV("text-message"),children:"There is no ".concat(o," for the request")});switch(o){case LV.json:return function(){var n,i=(0,fs.jsx)(hs(),{data:null===(n=t.explain)||void 0===n?void 0:n.pristine,isExpanded:function(){return!0},className:SV("inspector"),searchOptions:{debounceTime:300}});return(0,fs.jsxs)(e.Fragment,{children:[i,s&&(0,fs.jsx)(_C,{children:i})]})}();case LV.ast:return function(){var n=(0,fs.jsx)("div",{className:SV("ast"),children:(0,fs.jsx)(rC.ZP,{language:kV,value:t.ast,options:xV,wrappingIndent:"indent"})});return(0,fs.jsxs)(e.Fragment,{children:[n,s&&(0,fs.jsx)(_C,{children:n})]})}();case LV.schema:return function(){var n=t.explain,i=void 0===n?{}:n,r=t.theme,a=i.links,u=i.nodes,l=i.version===Vc.v2,c=a&&u&&u.length,d=l&&c?(0,fs.jsx)("div",{className:SV("explain-canvas-container",{hidden:o!==LV.schema}),children:(0,fs.jsx)(NV,{theme:r,data:{links:a,nodes:u},opts:{renderNodeTitle:ma,textOverflow:ik.Normal,initialZoomFitsCanvas:!0},shapes:{node:CS}})}):null;return(0,fs.jsxs)(e.Fragment,{children:[!s&&d,s&&(0,fs.jsx)(_C,{children:d})]})}();default:return null}}()})]})}function MV(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},Lr,t),e.createElement("path",{d:"M14 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 14 6.125zm-5.906 0a1.874 1.874 0 1 1 0 3.749 1.874 1.874 0 0 1 0-3.749zM2 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 2 6.125z"}))}var TV=[],OV=(0,e.createContext)({activeMenuPath:TV,setActiveMenuPath:function(){},anchorRef:{current:null}}),IV=function(t){var n=t.anchorRef,i=t.children,r=t.disabled,o=(0,e.useState)(TV),a=(0,dt.Z)(o,2),s=a[0],u=a[1];(0,e.useEffect)((function(){r&&u(TV)}),[r]);var l=(0,e.useMemo)((function(){return{activeMenuPath:s,setActiveMenuPath:u,anchorRef:n}}),[s,n]);return e.createElement(OV.Provider,{value:l},i)},AV=function(e){return"function"===typeof e};function PV(t,n,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0!==t&&void 0!==n,o=function(t,n){var i=(0,e.useState)(t),r=(0,dt.Z)(i,2),o=r[0],a=r[1];return[o,(0,e.useCallback)((function(e){AV(e)?a((function(t){var i=e(t);return null===n||void 0===n||n(i),i})):(null===n||void 0===n||n(e),a(e))}),[n])]}(t||i,n);return r?[t,n]:o}function RV(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=[],o=!1,a=-1,s=(0,Tr.Z)(e);try{for(s.s();!(n=s.n()).done;){var u=n.value;if(Array.isArray(u)){var l=RV(u,t,[].concat((0,Lt.Z)(i),[a]));if(0===l.length)continue;0!==r.length&&r.push(t);var c,d=(0,Tr.Z)(l);try{for(d.s();!(c=d.n()).done;){c.value.path[i.length]=++a}}catch(f){d.e(f)}finally{d.f()}r.push.apply(r,(0,Lt.Z)(l)),o=!0}else{if(u.hidden)continue;o&&r.push(t);var h=Object.assign({},u);h.path=[].concat((0,Lt.Z)(i),[++a]),u.items&&(h.items=RV(u.items,t,h.path)),r.push(h),o=!1}}}catch(f){s.e(f)}finally{s.f()}return r}var ZV=["right-start","left-start"],FV={text:"",action:function(){},path:[]},jV=pt("dropdown-menu"),HV=pt("menu"),BV=e.forwardRef((function(t,n){var i,r=t.icon,o=t.title,a=t.disabled,s=t.active,u=t.selected,l=t.href,c=t.target,d=t.rel,h=t.onClick,f=t.style,p=t.className,v=t.theme,g=t.extraProps,m=t.children,_=t.qa,y=e.useCallback((function(e){Pr.publish({componentId:"MenuItem",eventId:"click",domEvent:e})}),[]),b={title:o,onClick:a?void 0:h,onClickCapture:a?void 0:y,style:f,tabIndex:a?-1:0,className:HV("item",{disabled:a,active:s,selected:u,theme:v},p),qa:_},w=[r&&e.createElement("div",{key:"icon",className:HV("item-icon")},r),e.createElement("div",{key:"content",className:HV("item-content")},m)];return i=l?e.createElement("a",Object.assign({},g,b,{href:l,target:c,rel:d}),w):e.createElement("div",Object.assign({},g,b),w),e.createElement("li",{ref:n,className:HV("list-item")},i)})),zV=pt("menu"),WV=e.forwardRef((function(t,n){var i=t.label,r=t.children,o=t.style,a=t.className,s=t.qa,u=cp();return e.createElement("li",{ref:n,className:zV("list-group-item")},e.createElement("div",{style:o,className:zV("group",a),"data-qa":s},i&&e.createElement("div",{id:u,className:zV("group-label")},i),e.createElement("ul",{role:"group","aria-labelledby":u,className:zV("group-list")},r)))})),VV=pt("menu"),YV=e.forwardRef((function(t,n){var i=t.size,r=void 0===i?"m":i,o=t.children,a=t.style,s=t.className,u=t.qa;return e.createElement("ul",{ref:n,role:"menu",style:a,className:VV({size:r},s),"data-qa":u},o)}));function UV(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3?arguments[3]:void 0,r=(e.length+t-n%e.length)%e.length;return i&&i(e[r])?UV(e,r,1,i):r}function KV(e,t){var n=arguments.length>3?arguments[3]:void 0,i=(t+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:1))%e.length;return n&&n(e[i])?KV(e,i,1,n):i}YV.Item=BV,YV.Group=WV;var qV=(0,e.createContext)({toggle:function(){},data:void 0});function GV(e,t){var n;return null!==(n=null===e||void 0===e?void 0:e.every((function(e,n){return e===(null===t||void 0===t?void 0:t[n])})))&&void 0!==n&&n}function $V(t){var n=t.items,i=t.path,r=(0,e.useContext)(OV),o=r.activeMenuPath,a=r.setActiveMenuPath,s=Boolean(i)&&Boolean(null===n||void 0===n?void 0:n.length),u=(0,e.useCallback)((function(){i&&a(i.slice(0,i.length-1))}),[i,a]),l=(0,e.useCallback)((function(){i&&a(i)}),[i,a]);return{hasSubmenu:s,isSubmenuOpen:GV(i,o),openSubmenu:l,closeSubmenu:u}}qV.displayName="DropdownMenu.Context";var QV=function(t){var n=t.text,i=t.action,r=t.items,o=t.popupProps,a=t.closeMenu,s=t.children,u=t.path,l=(0,Ir.__rest)(t,["text","action","items","popupProps","closeMenu","children","path"]),c=(0,e.useContext)(qV),d=c.toggle,h=c.data,f=(0,e.useRef)(null),p=$V({items:r,path:u}),v=p.hasSubmenu,g=p.isSubmenuOpen,m=p.closeSubmenu,_=p.openSubmenu,y=(0,e.useCallback)((function(){var e=function(){a?a():d(!1)};v?(m(),requestAnimationFrame(e)):e()}),[a,m,v,d]),b=(0,e.useCallback)((function(e){v||(null===i||void 0===i||i(e,h),y())}),[i,h,y,v]),w=(0,e.useMemo)((function(){return Object.assign(Object.assign({},l.extraProps),{onMouseEnter:function(e){var t,n;null===(n=null===(t=l.extraProps)||void 0===t?void 0:t.onMouseEnter)||void 0===n||n.call(t,e),v&&_()},onMouseLeave:function(e){var t,n;null===(n=null===(t=l.extraProps)||void 0===t?void 0:t.onMouseLeave)||void 0===n||n.call(t,e),v&&m()}})}),[l.extraProps,m,v,_]);return e.createElement(e.Fragment,null,e.createElement(YV.Item,Object.assign({ref:f},l,{extraProps:w,onClick:b}),e.createElement("div",{className:jV("menu-item-content")},e.createElement("div",null,n||s),v&&e.createElement(Mr,{data:u_,className:jV("menu-item-chevron"),size:8}))),v&&r&&e.createElement(tY,{popupProps:Object.assign(Object.assign({},o),{className:jV("sub-menu",null===o||void 0===o?void 0:o.className),placement:ZV}),items:r,path:u,open:g,anchorRef:f,onClose:y}))};function XV(e){return e===FV}function JV(e){return e.disabled||XV(e)}function eY(e){var t;return null!==(t=null===e||void 0===e?void 0:e.join(" "))&&void 0!==t?t:""}var tY=function(t){var n=t.items,i=t.open,r=t.anchorRef,o=t.onClose,a=t.size,s=t.menuProps,u=t.children,l=t.popupProps,c=t.path,d=void 0===c?[]:c,h=(0,e.useContext)(qV),f=h.toggle,p=h.data,v=(0,e.useContext)(OV),g=v.activeMenuPath,m=v.setActiveMenuPath,_=v.anchorRef,y=d.length>0,b=(0,e.useCallback)((function(){m(d.slice(0,d.length-1))}),[m,d]),w=(0,e.useCallback)((function(e){var t;m(d),null===(t=null===l||void 0===l?void 0:l.onMouseEnter)||void 0===t||t.call(l,e)}),[d,l,m]),C=(0,e.useCallback)((function(e){var t;b(),null===(t=null===l||void 0===l?void 0:l.onMouseLeave)||void 0===t||t.call(l,e)}),[b,l]),k=(0,e.useCallback)((function(e,t){var n;e.items&&e.path?m(e.path):(null===(n=e.action)||void 0===n||n.call(e,t,p),f(!1))}),[p,m,f]),S=(0,e.useCallback)((function(e,t){switch(t.key){case"Escape":return y&&(t.stopPropagation(),null===b||void 0===b||b()),!1;case"Enter":case" ":var i=n[e];return i&&(t.preventDefault(),k(i,t)),!1}return!0}),[b,k,y,n]),x=i&&eY(d)===eY(g),L=function(t){var n=t.items,i=t.skip,r=t.pageSize,o=t.processHomeKey,a=void 0===o||o,s=t.processEndKey,u=void 0===s||s,l=t.anchorRef,c=t.disabled,d=void 0!==c&&c,h=t.initialValue,f=void 0===h?-1:h,p=t.onAnchorKeyDown,v=(0,e.useState)(f),g=(0,dt.Z)(v,2),m=g[0],_=g[1],y=(0,e.useCallback)((function(){_(f)}),[f]);return(0,e.useEffect)((function(){n&&y()}),[n,y]),(0,e.useLayoutEffect)((function(){if(!d&&n.some((function(e){return!(null===i||void 0===i?void 0:i(e))}))){var e=null===l||void 0===l?void 0:l.current;if(e){var t=function(e){if(!1!==(null===p||void 0===p?void 0:p(m,e)))switch(e.key){case"ArrowDown":case"ArrowRight":e.preventDefault(),_((function(e){return KV(n,e,1,i)}));break;case"ArrowUp":case"ArrowLeft":e.preventDefault(),_((function(e){return UV(n,e,1,i)}));break;case"PageDown":if(!r)return;e.preventDefault(),_((function(e){return KV(n,e,r,i)}));break;case"PageUp":if(!r)return;e.preventDefault(),_((function(e){return UV(n,e,r,i)}));break;case"Home":if(!a)return;e.preventDefault(),_((function(e){return UV(n,e,e,i)}));break;case"End":if(!u)return;e.preventDefault(),_((function(e){return UV(n,e,e+1,i)}))}};return e.addEventListener("keydown",t),function(){e.removeEventListener("keydown",t)}}}}),[m,l,d,n,p,r,u,a,i]),{activeItemIndex:m,setActiveItemIndex:_,reset:y}}({items:n,skip:JV,anchorRef:_,onAnchorKeyDown:S,disabled:!x,initialValue:y?0:-1}),E=L.activeItemIndex,N=L.setActiveItemIndex,D=L.reset;return(0,e.useEffect)((function(){i||D()}),[i,D]),e.createElement(gp,Object.assign({open:i,anchorRef:r,onClose:o},l,{onMouseEnter:w,onMouseLeave:C}),u||e.createElement(YV,Object.assign({className:jV("menu"),size:a},s),n.map((function(t,n){var i=x&&E===n,r=Object.assign(Object.assign({},t.extraProps),{onMouseEnter:function(){return N(n)}});return e.createElement(QV,Object.assign({key:n,className:jV("menu-item",{separator:XV(t)},t.className),selected:i,popupProps:l,closeMenu:o},t,{extraProps:r}))}))))},nY=Object.assign((function(t){var n=t.items,i=void 0===n?[]:n,r=t.size,o=void 0===r?"m":r,a=t.icon,s=void 0===a?e.createElement(Mr,{data:MV}):a,u=t.open,l=t.onOpenToggle,c=t.hideOnScroll,d=void 0===c||c,h=t.data,f=t.disabled,p=t.switcher,v=t.switcherWrapperClassName,g=t.defaultSwitcherProps,m=t.defaultSwitcherClassName,_=t.onSwitcherClick,y=t.menuProps,b=t.popupProps,w=t.children,C=(0,e.useRef)(null),k=function(t,n,i){var r=PV(t,n,!1),o=(0,dt.Z)(r,2),a=o[0],s=o[1],u=(0,e.useCallback)((function(e){s((function(t){return"boolean"===typeof e?e:!t}))}),[s]),l=(0,e.useCallback)((function(){s(!1)}),[s]);return(0,e.useEffect)((function(){i&&a&&l()}),[l,i,a]),{isPopupShown:a,togglePopup:u,closePopup:l}}(u,l,f),S=k.isPopupShown,x=k.togglePopup,L=k.closePopup;!function(t,n,i){(0,e.useEffect)((function(){if(!i){var e=function(e){e.target.contains(n.current)&&t(e)};return document.addEventListener("scroll",e,!0),function(){document.removeEventListener("scroll",e,!0)}}}),[n,t,i])}(L,C,!S||!d);var E=(0,e.useMemo)((function(){return{toggle:x,data:h}}),[h,x]),N=(0,e.useMemo)((function(){return RV(i,FV)}),[i]);return e.createElement(qV.Provider,{value:E},e.createElement("div",{ref:C,className:jV("switcher-wrapper",v),onClick:function(e){f||(null===_||void 0===_||_(e),x())}},p||e.createElement(zr,Object.assign({view:"flat",size:o},g,{className:jV("switcher-button",m),disabled:f}),s)),e.createElement(IV,{anchorRef:C,disabled:!S},e.createElement(tY,{items:N,open:S,size:o,menuProps:y,anchorRef:C,onClose:L,popupProps:b},w)))}),{Item:QV}),iY=(0,ct.default)("kv-save-query");var rY,oY,aY=function(t){var n=t.savedQueries,i=t.onSaveQuery,r=t.saveButtonDisabled,o=te((function(e){return e.singleClusterMode})),a=(0,e.useState)(!1),s=(0,dt.Z)(a,2),u=s[0],l=s[1],c=(0,e.useState)(""),d=(0,dt.Z)(c,2),h=d[0],f=d[1],p=(0,e.useState)(null),v=(0,dt.Z)(p,2),g=v[0],m=v[1],_=te((function(e){return e.saveQuery})),y=Q(),b=function(){l(!0),y(ph(null))},w=function(){l(!1),f(""),m(null)},C=function(e){f(e),m(k(e))},k=function(e){return an().some(n,(function(t){return t.name.toLowerCase()===e.trim().toLowerCase()}))?"This name already exists":null},S=function(){h&&!g&&(i(h),w())},x=function(){i(_),y(ph(null))},L=function(e){return(0,fs.jsx)(zr,{onClick:e,disabled:r,children:_?"Edit query":"Save query"})};return(0,fs.jsxs)(e.Fragment,{children:[_?function(){var e=[{action:x,text:"Edit existing"},{action:b,text:"Save as new"}];return(0,fs.jsx)(nY,{items:e,switcher:L(),popupPlacement:["top"]})}():L(b),u&&(0,fs.jsxs)(qw,{open:u,hasCloseButton:!1,size:"s",onClose:w,onEnterKeyDown:S,children:[(0,fs.jsx)(qw.Header,{caption:"Save query"}),(0,fs.jsxs)(qw.Body,{className:iY("dialog-body"),children:[o&&(0,fs.jsx)("div",{className:iY("dialog-row"),children:"The query will be saved in your browser"}),(0,fs.jsxs)("div",{className:iY("dialog-row"),children:[(0,fs.jsx)("label",{htmlFor:"queryName",className:iY("field-title","required"),children:"Query name"}),(0,fs.jsxs)("div",{className:iY("control-wrapper"),children:[(0,fs.jsx)(iv,{id:"queryName",placeholder:"Enter query name",value:h,onUpdate:C,hasClear:!0,autoFocus:!0}),(0,fs.jsx)("span",{className:iY("error"),children:g})]})]})]}),(0,fs.jsx)(qw.Footer,{textButtonApply:"Save",textButtonCancel:"Cancel",onClickButtonCancel:w,onClickButtonApply:S,propsButtonApply:{disabled:!h||Boolean(g)}})]})]})},sY=(0,ct.default)("ydb-query-editor-controls"),uY=(rY={},(0,xt.Z)(rY,Vi.script,"YQL Script"),(0,xt.Z)(rY,Vi.scan,"Scan"),rY),lY=(oY={},(0,xt.Z)(oY,Vi.script,"YQL Script"),(0,xt.Z)(oY,Vi.scan,"Scan"),(0,xt.Z)(oY,Vi.data,"Data"),(0,xt.Z)(oY,Vi.query,"YQL - QueryService"),oY),cY=function(t){var n=t.onRunButtonClick,i=t.runIsLoading,r=t.onExplainButtonClick,o=t.explainIsLoading,a=t.onSaveQueryClick,s=t.savedQueries,u=t.disabled,l=t.onUpdateQueryMode,c=t.queryMode,d=t.highlitedAction,h=t.enableAdditionalQueryModes,f=(0,e.useMemo)((function(){var e=h?lY:uY;return Object.entries(e).map((function(e){var t=(0,dt.Z)(e,2),n=t[0];return{text:t[1],action:function(){l(n)}}}))}),[l,h]),p="execute"===d?"action":void 0,v="explain"===d?"action":void 0;return(0,fs.jsxs)("div",{className:sY(),children:[(0,fs.jsxs)("div",{className:sY("left"),children:[(0,fs.jsx)("div",{className:sY("run"),children:(0,fs.jsxs)(zr,{onClick:function(){n(c)},disabled:u,loading:i,view:p,children:[(0,fs.jsx)(xv,{name:"startPlay",viewBox:"0 0 16 16",width:16,height:16}),"Run"]})}),(0,fs.jsx)(zr,{onClick:function(){r(c)},disabled:u,loading:o,view:v,children:"Explain"}),(0,fs.jsx)("div",{className:sY("mode-selector",{extended:h}),children:(0,fs.jsx)(nY,{items:f,popupProps:{className:sY("mode-selector__popup",{extended:h}),qa:"query-mode-selector-popup"},switcher:(0,fs.jsx)(zr,{className:sY("mode-selector__button"),qa:"query-mode-selector",children:(0,fs.jsxs)("span",{className:sY("mode-selector__button-content"),children:["".concat(Iw("controls.query-mode-selector_type")," ").concat(lY[c]),(0,fs.jsx)(xv,{name:"chevron-down",width:16,height:16})]})})})})]}),(0,fs.jsx)(aY,{savedQueries:s,onSaveQuery:a,saveButtonDisabled:u})]})},dY=function(e){var t;if(null===e||void 0===e||null===(t=e.result)||void 0===t||!t.length)return"";var n=Object.keys(e.result[0]);return Array(n).concat(e.result).map((function(e){var t=[];for(var n in e)"object"===typeof e[n]||Array.isArray(e[n])?t.push(JSON.stringify(e[n])):t.push(e[n]);return t.join("\t")})).join("\n")},hY={sortable:!1},fY={automaticLayout:!0,selectOnLineNumbers:!0,minimap:{enabled:!1}},pY="navigation",vY={EXECUTE:"execute",EXPLAIN:"explain"},gY=(0,ct.default)("query-editor"),mY={triggerExpand:!1,triggerCollapse:!1,collapsed:!0};var _Y={sendExecuteQuery:function(e){var t=e.query,n=e.database,i=e.mode,r=i?"execute-".concat(i):"execute";return Oo({request:window.api.sendQuery({schema:"modern",query:t,database:n,action:r,stats:"profile"}),actions:xc,dataHandler:Ui})},saveQueryToHistory:function(e){return{type:Ec,data:e}},goToPreviousQuery:function(){return{type:Nc}},goToNextQuery:function(){return{type:Dc}},getExplainQuery:function(e){var t=e.query,n=e.database,i=e.mode,r=i?"explain-".concat(i):"explain";return Oo({request:window.api.getExplainQuery(t,n,r),actions:Bc,dataHandler:function(e){var t=Ki(e),n=t.plan,i=t.ast;if(!n)return{ast:i};var r=qi(n),o=r.tables,a=r.meta,s=r.Plan;if(-1===Yc.indexOf(a.version))return{plan:{pristine:n,version:a.version},ast:i};var u=[],l=[];if(s){var c=function(e){var t=[],n=[],i=e,r={name:String(i.PlanNodeId),data:{id:i.PlanNodeId,type:Hc(i),name:i["Node Type"]}};return t.push(r),function e(){var i=arguments.length>1?arguments[1]:void 0;(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(r){var o,a={name:String(r.PlanNodeId),data:{id:r.PlanNodeId,type:Hc(r),name:r["Node Type"],operators:null===(o=r.Operators)||void 0===o?void 0:o.map((function(e){return e.Name})),stats:jc(r),tables:r.Tables}};t.push(a),n.push({from:i,to:a.name}),e(r.Plans,a.name)}))}(i.Plans,r.name),{nodes:t,links:n}}(s);u=c.links,l=c.nodes}return{plan:{links:u,nodes:l,tables:o,version:a.version,pristine:n},ast:i}}})},getExplainQueryAst:function(e){var t=e.query,n=e.database;return Oo({request:window.api.getExplainQueryAst(t,n),actions:zc,dataHandler:Ki})},setSettingValue:ur,setShowPreview:fl,setMonacoHotKey:function(e){return{type:Mc,data:e}},setTenantPath:function(e){return{type:Tc,data:e}}},yY=U((function(e){var t;return{executeQuery:e.executeQuery,explainQuery:e.explainQuery,savedQueries:lr(e,ri),showPreview:e.schema.showPreview,currentSchema:e.schema.currentSchema,monacoHotKey:null===(t=e.executeQuery)||void 0===t?void 0:t.monacoHotKey}}),_Y)((function(t){var n=t.path,i=t.executeQuery,r=t.theme,o=t.setTenantPath,a=t.changeUserInput,s=i.tenantPath,u=(0,e.useState)(vY.EXECUTE),l=(0,dt.Z)(u,2),c=l[0],d=l[1],h=(0,e.useState)(!1),f=(0,dt.Z)(h,2),p=f[0],v=f[1],g=gf(pi),m=(0,dt.Z)(g,2),_=m[0],y=m[1],b=gf(ii),w=(0,dt.Z)(b,1)[0],C=gf(vi),k=(0,dt.Z)(C,2),S=k[0],x=k[1];(0,e.useEffect)((function(){var e=_!==Vi.script&&_!==Vi.scan;!w&&e&&y(Vi.script)}),[w,_,y]),(0,e.useEffect)((function(){s!==n&&(s&&a({input:""}),o(n))}),[a,o,n,s]);var L=(0,e.useReducer)(kw(hi),mY),E=(0,dt.Z)(L,2),N=E[0],D=E[1],M=(0,e.useRef)(null);(0,e.useEffect)((function(){return V(),window.addEventListener("resize",z),window.addEventListener("storage",W),function(){window.removeEventListener("resize",z),window.removeEventListener("storage",W),window.onbeforeunload=void 0,t.setMonacoHotKey(null)}}),[]),(0,e.useEffect)((function(){D(nw.triggerCollapse)}),[]),(0,e.useEffect)((function(){t.showPreview||p?D(nw.triggerExpand):D(nw.triggerCollapse)}),[t.showPreview,p]),(0,e.useEffect)((function(){var e,n=t.explainQuery.data,i=t.executeQuery,r=i.input,o=i.history,a=!!r&&r!==o.queries[(null===(e=o.queries)||void 0===e?void 0:e.length)-1];window.onbeforeunload=a?T:void 0,n&&vY.EXPLAIN}),[t.executeQuery,t.executeQuery]),(0,e.useEffect)((function(){var e=t.monacoHotKey,n=t.setMonacoHotKey;if(null!==e)switch(n(null),e){case Ac.sendQuery:return S===Wi.explain?A(_):I(_);case Ac.goPrev:return F();case Ac.goNext:return j();default:return}}),[t.monacoHotKey]);var T=function(e){e.preventDefault(),e.returnValue=""},O=function(e){return function(){return t.setMonacoHotKey(e)}},I=function(e){var n=t.path,i=t.executeQuery,r=i.input,o=i.history,a=t.sendExecuteQuery,s=t.saveQueryToHistory,u=t.setShowPreview;x(Wi.execute),d(vY.EXECUTE),a({query:r,database:n,mode:e}),v(!0),u(!1),r!==o.queries[o.currentIndex]&&s(r),D(nw.triggerExpand)},A=function(e){var n=t.path,i=t.executeQuery.input,r=t.getExplainQuery,o=t.setShowPreview;x(Wi.explain),d(vY.EXPLAIN),r({query:i,database:n,mode:e}),v(!0),o(!1),D(nw.triggerExpand)},P=function(){var e=t.path,n=t.executeQuery.input;(0,t.getExplainQueryAst)({query:n,database:e})},R=function(){D(nw.triggerCollapse)},Z=function(){D(nw.triggerExpand)},F=function(){var e=t.changeUserInput,n=t.executeQuery.history,i=t.goToPreviousQuery,r=n.queries,o=n.currentIndex;H()||(i(),e({input:r[o-1]}))},j=function(){var e=t.changeUserInput,n=t.executeQuery.history,i=t.goToNextQuery,r=n.queries,o=n.currentIndex;B()||(i(),e({input:r[o+1]}))},H=function(){return t.executeQuery.history.currentIndex<=0},B=function(){var e=t.executeQuery.history,n=e.queries,i=e.currentIndex;return n.length-1===i},z=an().throttle((function(){V()}),100),W=function(e){e.key===ri&&t.setSettingValue(ri,e.newValue)},V=function(){M.current&&M.current.layout()},Y=function(e){var n=t.executeQuery.input,i=t.savedQueries,r=void 0===i?[]:i,o=t.setSettingValue,a=r.findIndex((function(t){return t.name.toLowerCase()===e.toLowerCase()})),s=(0,Lt.Z)(r),u={name:e,body:n};-1!==a?s[a]=u:s.push(u),o(ri,JSON.stringify(s))},U=function(){var e;switch(c){case vY.EXECUTE:e=function(){var e,n=t.executeQuery,i=n.data,r=n.error,o=n.stats;i&&(e=(0,fs.jsx)(vC,{data:i.result,columns:i.columns,settings:hY}));var a=dY(i),s=!a.length||c!==vY.EXECUTE;return i||r?(0,fs.jsx)(tk,{result:e,stats:o,error:r,textResults:a,copyDisabled:s,isResultsCollapsed:N.collapsed,onExpandResults:Z,onCollapseResults:R}):null}();break;case vY.EXPLAIN:e=function(){var e=t.explainQuery,n=e.data,i=e.dataAst,r=e.error,o=e.loading,a=e.loadingAst,s=t.theme;return(0,fs.jsx)(DV,{error:r,explain:n,astQuery:P,ast:i,loading:o,loadingAst:a,theme:s,isResultsCollapsed:N.collapsed,onExpandResults:Z,onCollapseResults:R})}();break;default:e=null}return e}();return(0,fs.jsx)("div",{className:gY(),children:(0,fs.jsxs)(Mb,{direction:"vertical",defaultSizePaneKey:si,triggerCollapse:N.triggerCollapse,triggerExpand:N.triggerExpand,minSize:[0,52],collapsedSizes:[100,0],onSplitStartDragAdditional:function(){D(nw.clear)},children:[(0,fs.jsxs)("div",{className:gY("pane-wrapper",{top:!0}),children:[(0,fs.jsx)("div",{className:gY("monaco-wrapper"),children:(0,fs.jsx)("div",{className:gY("monaco"),children:(0,fs.jsx)(rC.ZP,{language:"sql",value:i.input,options:fY,onChange:function(e){t.changeUserInput({input:e})},editorDidMount:function(e,t){M.current=e,e.focus(),e.addAction({id:"sendQuery",label:"Send query",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.Enter],precondition:null,keybindingContext:null,contextMenuGroupId:pY,contextMenuOrder:1,run:O(Ac.sendQuery)}),e.addAction({id:"previous-query",label:"Previous query",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.UpArrow],contextMenuGroupId:pY,contextMenuOrder:2,run:O(Ac.goPrev)}),e.addAction({id:"next-query",label:"Next query",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.DownArrow],contextMenuGroupId:pY,contextMenuOrder:3,run:O(Ac.goNext)})},theme:"vs-".concat(r)})})}),function(){var e=t.executeQuery,n=t.explainQuery,i=t.savedQueries;return(0,fs.jsx)(cY,{onRunButtonClick:I,runIsLoading:e.loading,onExplainButtonClick:A,explainIsLoading:n.loading,onSaveQueryClick:Y,savedQueries:i,disabled:!e.input,onUpdateQueryMode:y,queryMode:_,enableAdditionalQueryModes:w,highlitedAction:S})}()]}),(0,fs.jsx)("div",{className:gY("pane-wrapper"),children:t.showPreview?function(){var e=t.path,n=t.type;return(0,fs.jsx)(wC,{database:e,type:n})}():U})]})})})),bY=(0,ct.default)("ydb-query"),wY=function(e){var t=Q(),n=vf((function(e){return e.tenant})).queryTab,i=void 0===n?Ji.newQuery:n,r=gf(ri,[]),o=(0,dt.Z)(r,2),a=o[0],s=o[1],u=function(e){var t=a.filter((function(t){return t.name.toLowerCase()!==e.toLowerCase()}));s(t)},l=function(e){t(Rc(e))};return(0,fs.jsxs)("div",{className:bY(),children:[(0,fs.jsx)(Pw,{className:bY("tabs"),activeTab:i}),(0,fs.jsx)("div",{className:bY("content"),children:function(){switch(i){case Ji.newQuery:return(0,fs.jsx)(yY,Rt({changeUserInput:l},e));case Ji.history:return(0,fs.jsx)(iC,{changeUserInput:l});case Ji.saved:return(0,fs.jsx)(tC,{changeUserInput:l,savedQueries:a,onDeleteQuery:u});default:return null}}()})]})},CY=pt("switch"),kY=e.forwardRef((function(t,n){var i=t.size,r=void 0===i?"m":i,o=t.disabled,a=void 0!==o&&o,s=t.content,u=t.children,l=t.title,c=t.style,d=t.className,h=t.qa,f=fy(t),p=f.checked,v=f.inputProps,g=s||u,m=e.createElement("span",{className:CY("indicator")},e.createElement("input",Object.assign({},v,{className:CY("control")})),e.createElement("span",{className:CY("outline")}),e.createElement("span",{className:CY("slider")}));return e.createElement(hy,{ref:n,title:l,style:c,size:r,disabled:a,className:CY({size:r,disabled:a,checked:p},d),labelClassName:CY("text"),qa:h,control:m},g)})),SY={r:255,g:4,b:0},xY={r:255,g:219,b:77},LY={r:59,g:201,b:53},EY={CPU:{min:0,max:1e6},Network:{min:0,max:1e9},Storage:{min:0,max:2e9},DataSize:{min:0,max:2e9},RowCount:{min:0},IndexSize:{min:0}},NY=function(e){var t=e.toString(16);return 1===t.length?"0".concat(t):t},DY=function(e,t,n){if(1===e)return[t];if(2===e)return[t,n];for(var i=(t.r-n.r)/(e-1),r=(t.g-n.g)/(e-1),o=(t.b-n.b)/(e-1),a=[],s=0;s<e;s++)a.push({r:Math.round(t.r-i*s),g:Math.round(t.g-r*s),b:Math.round(t.b-o*s)});return a.map((function(e){return function(e){var t=e.r,n=e.g,i=e.b;return"#".concat(NY(t)).concat(NY(n)).concat(NY(i))}(e)}))},MY=function(e){var t=Math.floor(e/2),n=t+1,i=DY(e%2===0?t:t+1,LY,xY),r=DY(n,xY,SY);return[].concat((0,Lt.Z)(i),(0,Lt.Z)(r.slice(1)))},TY=function(e,t){var n=new Set,i=EY[e]||{};t.forEach((function(t){n.add(Number(t.metrics[e]))})),Number.isInteger(i.min)&&n.add(i.min),Number.isInteger(i.max)&&n.add(i.max);var r=Array.from(n.values()).sort((function(e,t){return e-t}));return{min:r[0],max:r[r.length-1]}},OY=(0,ct.default)("heatmap"),IY={width:0,height:0},AY=10,PY=2,RY=function(t){var n=(0,e.useState)(IY),i=(0,dt.Z)(n,2),r=i[0],o=i[1],a=t.tablets,s=(0,e.useRef)(null),u=(0,e.useRef)(null);(0,e.useEffect)((function(){var e=s.current,t=e.getContext("2d");t.clearRect(0,0,e.offsetWidth,e.offsetHeight),a.map(function(e){return function(t,n){var i=r.columnsCount,o=n%i*(AY+PY),a=Math.floor(n/i)*(AY+PY);e.fillStyle=t.color||"gray",e.fillRect(o,a,AY,AY)}}(t))})),(0,e.useLayoutEffect)((function(){var e=u.current;if(e){var t=e.offsetWidth-15,n=Math.floor(t/(AY+PY)),i=Math.ceil(a.length/n);o({width:t,height:i*(AY+PY),columnsCount:n,rowsCount:i})}}),[]);var l=function(){for(var e=s.current,t=0;e;)t+=e.offsetTop,e=e.offsetParent;return t},c=function(){for(var e=s.current,t=0;e;)t+=e.offsetLeft,e=e.offsetParent;return t},d=function(e,t){var n=r.columnsCount,i=AY+PY,o=AY+PY,a=Math.floor(e/i);return n*Math.floor(t/o)+a},h=an().throttle((function(e,n){var i=new CustomEvent("scroll");window.dispatchEvent(i);var r=t.parentRef.current,o=e-c()+r.scrollLeft,s=n-l()+r.scrollTop,u=d(o,s),h=a[u];if(h){var f={name:h.currentMetric,value:h.formattedValue};t.showTooltip(void 0,h,"tablet",f,{left:e-20,top:n-20})}else t.hideTooltip()}),20);return(0,fs.jsx)("div",{ref:u,className:OY("canvas-container"),onMouseLeave:function(){setTimeout((function(){t.hideTooltip()}),40)},children:(0,fs.jsx)("canvas",{ref:s,width:r.width,height:r.height,onClick:function(e){var n=t.parentRef.current,i=e.clientX-c()+n.scrollLeft,r=e.clientY-l()+n.scrollTop,o=d(i,r),s=a[o];s&&window.open(function(e){var t=e.TabletId,n=window.location.hostname,i=Ph(Zh.tablet,{id:t}),r=[n,Ch,i].map((function(e){return e.startsWith("/")?e.slice(1):e})).filter(Boolean).join("/");return"".concat("https://").concat(r)}(s),"_blank")},onMouseMove:function(e){return h(e.clientX,e.clientY)}})})},ZY=(0,ct.default)("histogram"),FY=function(t){var n=(0,e.useRef)(),i=t.data,r=void 0===i?{}:i,o=t.maxCount,a=r.count,s=r.leftBound,u=r.rightBound,l=r.color,c=a/o*100;return(0,fs.jsx)("div",{ref:n,className:ZY("item"),style:{backgroundColor:l,height:"".concat(c,"%")},onMouseEnter:function(){var e=n.current;t.showTooltip(e,{count:a,leftBound:s,rightBound:u},"histogram")},onMouseLeave:t.hideTooltip})},jY=function(e){var t=e.tablets,n=e.currentMetric,i=TY(n,t),r=i.min,o=i.max,a=MY(50),s=(o-r)/50,u=a.map((function(e,t){return{color:e,count:0,leftBound:ha(r+t*s),rightBound:ha(r+(t+1)*s)}})),l=0;t.forEach((function(e){var t,i=n&&Number(e.metrics[n]),r=Math.floor(i/s),o=(null===(t=u[r])||void 0===t?void 0:t.count)+1;o>l&&(l=o),u[r]=Rt(Rt({},u[r]),{},{count:o})}));return(0,fs.jsx)("div",{className:ZY(),children:(0,fs.jsxs)("div",{className:ZY("chart"),children:[Boolean(o)&&u.map((function(t,n){return(0,fs.jsx)(FY,{data:t,maxCount:l,showTooltip:e.showTooltip,hideTooltip:e.hideTooltip},n)})),(0,fs.jsx)("div",{className:ZY("x-min"),children:ha(r)}),(0,fs.jsx)("div",{className:ZY("x-max"),children:ha(o)}),(0,fs.jsx)("div",{className:ZY("y-min"),children:"0"}),(0,fs.jsx)("div",{className:ZY("y-max"),children:ha(l)})]})})},HY=(0,ct.default)("heatmap"),BY=MY(500),zY=function(t){var n=t.path,i=Q(),r=e.createRef(),o=vf((function(e){return e.schema})).autorefresh,a=vf((function(e){return e.heatmap})),s=a.loading,u=a.wasLoaded,l=a.error,c=a.sort,d=a.heatmap,h=a.metrics,f=a.currentMetric,p=a.data,v=void 0===p?[]:p,g=(0,e.useState)([""]),m=(0,dt.Z)(g,2),_=m[0],y=m[1];(0,e.useEffect)((function(){!f&&h&&h.length&&i(Ro({currentMetric:h[0].value})),f&&y([f])}),[f,h,i]);var b=(0,e.useCallback)((function(e){e||i(Ro({wasLoaded:!1})),i(function(e){var t=e.nodes,n=e.path;return Oo({request:Promise.all([window.api.getTabletsInfo({nodes:t,path:n}),window.api.getHeatmapData({path:n})]),actions:Io,dataHandler:function(e){var t=(0,dt.Z)(e,2),n=t[0],i=void 0===n?{}:n,r=t[1],o=void 0===r?{}:r,a=i.TabletStateInfo,s=void 0===a?[]:a,u=new Map,l=o.PathDescription,c=void 0===l?{}:l,d=c.TablePartitions,h=void 0===d?[]:d,f=c.TablePartitionStats,p=void 0===f?[]:f,v=c.TablePartitionMetrics,g=void 0===v?[]:v;s.forEach((function(e){e.TabletId&&u.set(e.TabletId,e)})),h.forEach((function(e,t){var n=Object.assign({},p[t],g[t]);e.DatashardId&&u.set(e.DatashardId,Rt(Rt({},u.get(e.DatashardId)),{},{metrics:n}))}));var m=Array.from(u.values());return{data:m,metrics:m[0]&&m[0].metrics&&Object.keys(m[0].metrics).map((function(e){return{value:e,content:e}}))}}})}({path:n}))}),[n,i]);pf(b,[b],o);var w=function(){i(js.apply(void 0,arguments))},C=function(){i(Fs)},k=function(e){i(Ro({currentMetric:e[0]}))},S=function(){i(Ro({sort:!c}))},x=function(){i(Ro({heatmap:!d}))},L=function(){var e=TY(f,v),t=e.min,n=e.max,i=v.map((function(e){var i,r=f&&Number(null===(i=e.metrics)||void 0===i?void 0:i[f]),o=function(e,t,n){return 0===n?0:Math.round((e-t)/(n-t)*499)}(r,t,n),a=BY[o];return Rt(Rt({},e),{},{color:a,value:r,formattedValue:ha(r),currentMetric:f})})),o=c?i.sort((function(e,t){return Number(t.value)-Number(e.value)})):i;return(0,fs.jsx)("div",{ref:r,className:HY("items"),children:(0,fs.jsx)(RY,{tablets:o,parentRef:r,showTooltip:w,hideTooltip:C,currentMetric:f})})};return s&&!u?(0,fs.jsx)(Cy,{}):l?(0,fs.jsx)("div",{children:Gi(l)}):function(){var e=TY(f,v),t=e.min,n=e.max;return(0,fs.jsxs)("div",{className:HY(),children:[(0,fs.jsxs)("div",{className:HY("filters"),children:[(0,fs.jsx)(ty,{className:HY("heatmap-select"),value:_,options:h,onUpdate:k,width:200}),(0,fs.jsx)("div",{className:HY("sort-checkbox"),children:(0,fs.jsx)(my,{onUpdate:S,checked:c,children:"Sort"})}),(0,fs.jsx)("div",{className:HY("histogram-checkbox"),children:(0,fs.jsx)(my,{onUpdate:x,checked:d,children:"Heatmap"})}),(0,fs.jsxs)("div",{className:HY("limits"),children:[(0,fs.jsxs)("div",{className:HY("limits-block"),children:[(0,fs.jsx)("div",{className:HY("limits-title"),children:"min:"}),(0,fs.jsx)("div",{className:HY("limits-value"),children:Number.isInteger(t)?ha(t):"\u2014"})]}),(0,fs.jsxs)("div",{className:HY("limits-block"),children:[(0,fs.jsx)("div",{className:HY("limits-title"),children:"max:"}),(0,fs.jsx)("div",{className:HY("limits-value"),children:Number.isInteger(n)?ha(n):"\u2014"})]}),(0,fs.jsxs)("div",{className:HY("limits-block"),children:[(0,fs.jsx)("div",{className:HY("limits-title"),children:"count:"}),(0,fs.jsx)("div",{className:HY("limits-value"),children:ha(v.length)})]})]})]}),d?L():(0,fs.jsx)(jY,{tablets:v,currentMetric:f,showTooltip:w,hideTooltip:C})]})}()},WY=n(74140),VY=n.n(WY),YY=3,UY={grey:"var(--yc-color-base-misc-heavy)",green:"var(--yc-color-base-positive-heavy)",yellow:" var(--yc-color-base-warning-heavy)",orange:"var( --yc-color-base-warning-orange)",red:"var(--yc-color-base-danger-heavy)",blue:"var(--yc-color-base-info-heavy)"},KY=(0,ct.default)("kv-tablets-overall");var qY=function(e){var t=e.tablets,n=Q(),i=t.length,r=t.reduce((function(e,t){var n,i=null===(n=t.Overall)||void 0===n?void 0:n.toLowerCase();return i&&!e[i]?e[i]=1:i&&e[i]++,e}),{}),o=[];Object.keys(r).forEach((function(e){var n=r[e]/i*100,a=r[e];r[e]=n,o.push({color:e,percents:n,value:a,total:t.length})})),Object.keys(r).forEach((function(e){r[e]<YY&&(!function(e,t){Object.keys(e).some((function(n){return e[n]>10&&(e[n]-=YY-t,!0)}))}(r,r[e]),r[e]=YY)}));var a=Object.keys(r).map((function(e){return{color:UY[e],colorKey:e,value:r[e]}}));return a.sort((function(e,t){return Xn[t.colorKey]-Xn[e.colorKey]})),(0,fs.jsxs)("div",{className:KY("row",{overall:!0}),children:[(0,fs.jsx)("span",{className:KY("label",{overall:!0}),children:"Overall:"}),(0,fs.jsx)("div",{onMouseLeave:function(){return n(Fs())},onMouseEnter:function(e){return n(js(e.target,o,"tabletsOverall"))},children:(0,fs.jsx)(Ey,{value:100,stack:a})})]})},GY=JSON.parse('{"controls.type":"Type","controls.state":"State","controls.allItems":"All items","noTabletsData":"No tablets data"}'),$Y=JSON.parse('{"controls.type":"\u0422\u0438\u043f","controls.state":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435","controls.allItems":"\u0412\u0441\u0435","noTabletsData":"\u041d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u0430\u0431\u043b\u0435\u0442\u043a\u0430\u0445"}'),QY="ydb-tablets";na.registerKeyset(Ko.En,QY,GY),na.registerKeyset(Ko.Ru,QY,$Y);var XY=na.keyset(QY),JY=(0,ct.default)("tablets"),eU=function(t){var n=t.path,i=t.nodeId,r=t.className,o=Q(),a=vf((function(e){return e.tablets})),s=a.data,u=void 0===s?{}:s,l=a.wasLoaded,c=a.loading,d=a.error,h=a.stateFilter,f=a.typeFilter,p=vf((function(e){return e.schema})).autorefresh,v=(0,e.useMemo)((function(){return(null===u||void 0===u?void 0:u.TabletStateInfo)||[]}),[u]),g=(0,e.useCallback)((function(e){e||o({type:zs}),i?o(Us({nodes:[String(i)]})):n&&o(Us({path:n}))}),[n,i,o]);pf(g,[g],p);var m=(0,e.useState)([]),_=(0,dt.Z)(m,2),y=_[0],b=_[1];(0,e.useEffect)((function(){var e=v;f.length>0&&(e=e.filter((function(e){return f.some((function(t){return e.Type===t}))}))),h.length>0&&(e=e.filter((function(e){return h.some((function(t){return e.State===t}))}))),b(e)}),[v,h,f]);var w=function(e){o(function(e){return{type:Ws,data:e}}(e))},C=function(e){o(function(e){return{type:Vs,data:e}}(e))},k=function(e){return(0,fs.jsx)(By,{tablet:y[e]},e)};return c&&!l?(0,fs.jsx)(Cy,{}):d?(0,fs.jsx)("div",{className:"error",children:d.statusText}):v.length>0?function(){var e=Array.from(new Set(v.map((function(e){return e.State})))).filter((function(e){return void 0!==e})).map((function(e){return{value:e,content:e}})),t=Array.from(new Set(v.map((function(e){return e.Type})))).filter((function(e){return void 0!==e})).map((function(e){return{value:e,content:e}}));return(0,fs.jsxs)("div",{className:JY(null,r),children:[(0,fs.jsxs)("div",{className:JY("header"),children:[(0,fs.jsx)(ty,{className:JY("filter-control"),multiple:!0,placeholder:XY("controls.allItems"),label:"".concat(XY("controls.state"),":"),options:e,value:h,onUpdate:w}),(0,fs.jsx)(ty,{className:JY("filter-control"),multiple:!0,placeholder:XY("controls.allItems"),label:"".concat(XY("controls.type"),":"),options:t,value:f,onUpdate:C}),(0,fs.jsx)(qY,{tablets:v})]}),(0,fs.jsx)("div",{className:JY("items"),children:(0,fs.jsx)(VY(),{itemRenderer:k,length:y.length,type:"uniform"})})]})}():(0,fs.jsx)("div",{className:"error",children:XY("noTabletsData")})},tU=(0,ct.default)("kv-describe"),nU=new Map,iU=function(t){var n=t.tenant,i=t.type,r=Q(),o=vf((function(e){return e.describe})),a=o.currentDescribe,s=o.error,u=o.loading,l=o.wasLoaded,c=(0,e.useState)(),d=(0,dt.Z)(c,2),h=d[0],f=d[1];(0,e.useEffect)((function(){if(a){var e=Object.keys(a);1===e.length?f(a[e[0]]):f(a)}}),[a]);var p=vf((function(e){return e.schema})),v=p.autorefresh,g=p.currentSchemaPath,m=$u(i),_=vf((function(e){return pl(e,g,i)}),M),y=(0,e.useCallback)((function(e){e||r({type:ld});var t=g||n;r(function(e){return{type:ud,data:e}}(t)),m?_&&r(function(e){var t=e.map((function(e){return window.api.getDescribe({path:e})}));return Oo({request:Promise.all(t),actions:sd,dataHandler:function(e){var t={},n={};return e.forEach((function(e){e.Path&&(n[e.Path]=e,t[e.Path]=e)})),{path:e[0].Path,currentDescribe:t,data:n}}})}([t].concat((0,Lt.Z)(_)))):r(function(e){var t=e.path;return Oo({request:window.api.getDescribe({path:t}),actions:sd,dataHandler:function(e){var t=e.Path,n={},i={};return t&&(n[t]=e,i[t]=e),{path:t,currentDescribe:n,data:i}}})}({path:t}))}),[g,n,_,m,r]);return pf(y,[y],v),u&&!l||m&&!_?(0,fs.jsx)(Cy,{size:"m"}):s?(0,fs.jsx)("div",{className:tU("message-container","error"),children:Gi(s)}):u||h?(0,fs.jsx)("div",{className:tU(),children:(0,fs.jsx)("div",{className:tU("result"),children:(0,fs.jsx)(hs(),{data:h,className:tU("tree"),onClick:function(e){var t=e.path,n=!nU.get(t);nU.set(t,n)},searchOptions:{debounceTime:300},isExpanded:function(e){return nU.get(e)||!1}})})}):(0,fs.jsx)("div",{className:tU("message-container"),children:"Empty"})},rU=(0,ct.default)("hot-keys"),oU={displayIndices:!1,syncHeadOnResize:!0,stickyHead:zn.MOVING,stickyTop:0},aU={accessSample:"accessSample",keyValues:"keyValues"},sU=new ff;var uU=U((function(e){var t=e.hotKeys,n=t.loading,i=t.data,r=t.error,o=t.wasLoaded,a=e.schema,s=a.currentSchema,u=void 0===s?{}:s,l=a.autorefresh;return{loading:n,data:i,error:r,currentSchemaPath:u.Path,autorefresh:l,wasLoaded:o,currentSchema:u}}),{getHotKeys:function(e,t){return Oo({request:window.api.getHotKeys(e,t),actions:Qd})},setHotKeysOptions:function(e){return{type:Xd,data:e}}})((function(t){var n=t.getHotKeys,i=t.currentSchemaPath,r=t.loading,o=t.wasLoaded,a=t.error,s=t.data,u=t.autorefresh,l=t.setHotKeysOptions,c=t.currentSchema,d=t.type,h=function(){zu(d)&&!Uu(d)&&n(i)};(0,e.useEffect)((function(){return u?(h(),sU.start(),sU.fetch((function(){return h()}))):sU.stop(),function(){sU.stop()}}),[u]),(0,e.useEffect)((function(){h(),l({wasLoaded:!1,data:void 0})}),[i]);var f=(0,e.useMemo)((function(){var e,t,n,i=null!==(e=null===c||void 0===c||null===(t=c.PathDescription)||void 0===t||null===(n=t.Table)||void 0===n?void 0:n.KeyColumnNames)&&void 0!==e?e:[];return[{name:aU.accessSample,header:"Samples",sortable:!1,align:zn.RIGHT}].concat((0,Lt.Z)(null===i||void 0===i?void 0:i.map((function(e,t){return{name:e,header:(0,fs.jsxs)("div",{className:rU("primary-key-column"),children:[(0,fs.jsx)(xv,{name:"key",viewBox:"0 0 12 7",width:12,height:7}),e]}),render:function(e){return e.row[aU.keyValues][t]},align:zn.RIGHT,sortable:!1}}))))}),[c]);return r||void 0!==s?(0,fs.jsx)("div",{className:rU(),children:r&&!o?(0,fs.jsx)("div",{className:rU("loader"),children:(0,fs.jsx)(yy,{size:"l"})}):a?Gi(a):null!==s?(0,fs.jsx)("div",{className:rU("table-content"),children:(0,fs.jsx)(zn,{columns:f,data:s,settings:oU,theme:"yandex-cloud",initialSortOrder:{columnId:aU.accessSample,order:zn.DESCENDING}})}):(0,fs.jsx)("div",{className:rU("stub"),children:"No information about hot keys"})}):(0,fs.jsx)("div",{className:rU("stub"),children:"Cluster version does not support hot keys viewing"})})),lU=(0,ct.default)("node-network"),cU=function(e,t){var n=Math.floor(e/t*100);return 100===n?"green":n>=70?"yellow":n>=1?"red":"gray"},dU=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;(0,i.Z)(this,s);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(t=n.call.apply(n,[this].concat(o))).node=e.createRef(),t._onNodeHover=function(){var e=t.props,n=e.onMouseEnter,i={nodeId:e.nodeId,connected:e.connected,capacity:e.capacity,rack:e.rack};n(t.node.current,i,"node")},t._onNodeLeave=function(){t.props.onMouseLeave()},t}return(0,r.Z)(s,[{key:"render",value:function(){var e,t=this.props,n=t.nodeId,i=t.connected,r=t.capacity,o=t.status,a=t.onClick,s=t.showID,u=t.isBlurred;return(0,fs.jsx)("div",{ref:this.node,className:lU((e={},(0,xt.Z)(e,(null===o||void 0===o?void 0:o.toLowerCase())||cU(i,r),!0),(0,xt.Z)(e,"id",s),(0,xt.Z)(e,"blur",u),e)),onMouseEnter:this._onNodeHover,onMouseLeave:this._onNodeLeave,onClick:function(){return a(n)},children:s&&n})}}]),s}(e.Component);dU.defaultProps={onMouseEnter:function(){},onMouseLeave:function(){},onClick:function(){}};var hU=dU,fU=(0,ct.default)("network"),pU=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={howNodeSeeOtherNodesSortType:"",howOthersSeeNodeSortType:"",howNodeSeeOtherSearch:"",howOtherSeeNodeSearch:"",hoveredNode:void 0,clickedNode:void 0,highlightedNodes:[],showId:!1,showRacks:!1},e.onChange=function(t,n){e.setState((0,xt.Z)({},t,n))},e.handleSortChange=function(t){e.setState({sort:t})},e.handleNodeClickWrap=function(t){return function(){var n=e.state.clickedNode,i=t.NodeId;n&&i===n.nodeId?e.setState({clickedNode:void 0}):e.setState({clickedNode:t,rightNodes:e.groupNodesByField(t.Peers,"NodeType")})}},e.groupNodesByField=function(e,t){return an().reduce(e,(function(e,n){return e[n[t]]?e[n[t]].push(n):e[n[t]]=[n],e}),{})},e.getConnectedNodesCount=function(e){return null===e||void 0===e?void 0:e.reduce((function(e,t){return t.Connected?e+1:e}),0)},e.renderNodes=function(t,n){var i=e.state,r=i.showId,o=i.showRacks,a=i.clickedNode,s=0,u=e.props,l=u.showTooltip,c=u.hideTooltip,d=u.filter,h=Object.keys(t).map((function(i,u){var h=e.groupNodesByField(t[i],"Rack");return(0,fs.jsxs)("div",{className:fU("nodes-container",{right:n}),children:[(0,fs.jsxs)("div",{className:fU("nodes-title"),children:[i," nodes"]}),(0,fs.jsx)("div",{className:fU("nodes"),children:o?Object.keys(h).map((function(t,i){return(0,fs.jsxs)("div",{className:fU("rack-column"),children:[(0,fs.jsx)("div",{className:fU("rack-index"),children:"undefined"===t?"?":t}),h[t].map((function(t,i){var o,u;if(!n&&null!==t&&void 0!==t&&t.Peers&&(o=Object.keys(null===t||void 0===t?void 0:t.Peers).length,u=e.getConnectedNodesCount(null===t||void 0===t?void 0:t.Peers)),d===ir.PROBLEMS&&o!==u||d===ir.ALL||n)return s++,(0,fs.jsx)(hU,{nodeId:t.NodeId,showID:r,rack:t.Rack,status:t.ConnectStatus,capacity:o,connected:u,onMouseEnter:l,onMouseLeave:c,onClick:!n&&e.handleNodeClickWrap(t),isBlurred:!n&&a&&a.NodeId!==t.NodeId},i)}))]},i)})):t[i].map((function(t,i){var o,u,h;n||(o=null===t||void 0===t||null===(h=t.Peers)||void 0===h?void 0:h.length,u=e.getConnectedNodesCount(null===t||void 0===t?void 0:t.Peers));if(d===ir.PROBLEMS&&o!==u||d===ir.ALL||n)return s++,(0,fs.jsx)(hU,{nodeId:t.NodeId,showID:r,rack:t.Rack,status:t.ConnectStatus,capacity:(null===t||void 0===t?void 0:t.Peers)&&(null===t||void 0===t?void 0:t.Peers.length),connected:(null===t||void 0===t?void 0:t.Peers)&&e.getConnectedNodesCount(null===t||void 0===t?void 0:t.Peers),onMouseEnter:l,onMouseLeave:c,onClick:!n&&e.handleNodeClickWrap(t),isBlurred:!n&&a&&a.NodeId!==t.NodeId},i)}))})]},u)}));return d===ir.PROBLEMS&&0===s?(0,fs.jsx)(Bp,{name:"thumbsUp",width:"200"}):h},e.renderContent=function(){var t=e.props,n=t.netWorkInfo,i=t.filter,r=t.changeFilter,o=e.state,a=o.showId,s=o.showRacks,u=o.rightNodes,l=e.state.clickedNode,c=n.Tenants&&n.Tenants[0].Nodes,d=e.groupNodesByField(c,"NodeType");return null!==c&&void 0!==c&&c.length?(0,fs.jsx)("div",{className:fU(),children:(0,fs.jsx)("div",{className:fU("inner"),children:(0,fs.jsxs)("div",{className:fU("nodes-row"),children:[(0,fs.jsxs)("div",{className:fU("left"),children:[(0,fs.jsx)("div",{className:fU("controls-wrapper"),children:(0,fs.jsxs)("div",{className:fU("controls"),children:[(0,fs.jsx)(Rp,{value:i,onChange:r,className:fU("problem-filter")}),(0,fs.jsx)("div",{className:fU("checkbox-wrapper"),children:(0,fs.jsx)(my,{onUpdate:function(){return e.onChange("showId",!a)},checked:a,children:"ID"})}),(0,fs.jsx)("div",{className:fU("checkbox-wrapper"),children:(0,fs.jsx)(my,{onUpdate:function(){return e.onChange("showRacks",!s)},checked:s,children:"Racks"})})]})}),e.renderNodes(d)]}),(0,fs.jsx)("div",{className:fU("right"),children:l?(0,fs.jsxs)("div",{children:[(0,fs.jsxs)("div",{className:fU("label"),children:["Connectivity of node"," ",(0,fs.jsx)(Cf,{className:fU("link"),to:ig(l.NodeId),children:l.NodeId})," ","to other nodes"]}),(0,fs.jsx)("div",{className:fU("nodes-row"),children:e.renderNodes(u,!0)})]}):(0,fs.jsxs)("div",{className:fU("placeholder"),children:[(0,fs.jsx)("div",{className:fU("placeholder-img"),children:(0,fs.jsx)(xv,{name:"network-placeholder",viewBox:"0 0 221 204",width:221,height:204})}),(0,fs.jsx)("div",{className:fU("placeholder-text"),children:"Select node to see its connectivity to other nodes"})]})})]})})}):(0,fs.jsx)("div",{className:"error",children:"no nodes data"})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.path,n=e.autorefresh,i=e.getNetworkInfo;this.autofetcher=new ff,n&&(this.autofetcher.start(),this.autofetcher.fetch((function(){return i(t)}))),i(t)}},{key:"componentDidUpdate",value:function(e){var t=this,n=this.props,i=n.autorefresh,r=n.path,o=n.setDataWasNotLoaded,a=n.getNetworkInfo,s=function(){t.autofetcher.stop(),t.autofetcher.start(),t.autofetcher.fetch((function(){return a(r)}))};i&&!e.autorefresh&&(a(r),s()),!i&&e.autorefresh&&this.autofetcher.stop(),r!==e.path&&(o(),a(r),s())}},{key:"componentWillUnmount",value:function(){this.autofetcher.stop()}},{key:"render",value:function(){var e=this.props,t=e.loading,i=e.wasLoaded,r=e.error;return t&&!i?n.renderLoader():r?(0,fs.jsx)("div",{children:r.statusText}):this.renderContent()}}],[{key:"renderLoader",value:function(){return(0,fs.jsx)("div",{className:"loader",children:(0,fs.jsx)(yy,{size:"l"})})}}]),n}(e.Component);pU.defaultProps={};var vU={getNetworkInfo:function(e){return Oo({request:window.api.getNetwork(e),actions:Ll})},hideTooltip:Fs,showTooltip:js,changeFilter:cr,setDataWasNotLoaded:function(){return{type:El}}},gU=U((function(e){var t=e.network,n=t.wasLoaded,i=t.loading,r=t.data,o=void 0===r?{}:r,a=e.schema.autorefresh;return{netWorkInfo:o,wasLoaded:n,loading:i,filter:e.settings.problemFilter,autorefresh:a}}),vU)(pU),mU=n(46553);function _U(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",fill:"currentColor"},Lr,t),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.929 4.93l.001-.002.002.001.527-.528a.575.575 0 01.786-.025l1.21 1.061a1.856 1.856 0 003.115-1.291h.004l.105-1.607a.575.575 0 01.574-.537h.746V2v.002h.747c.303 0 .554.235.574.537l.105 1.607h.005c.019.484.223.92.544 1.24a1.854 1.854 0 002.584.039l1.196-1.05a.575.575 0 01.786.026l.528.528.002-.002v.002l-.001.002.528.527a.575.575 0 01.026.786l-1.06 1.212a1.85 1.85 0 00-.492 1.258c0 .515.21.98.548 1.317.32.318.753.52 1.235.539v.004l1.606.105c.303.02.538.271.538.574V12H22v.002h-.002v.746a.575.575 0 01-.537.574l-1.607.107v.001c-.484.02-.92.223-1.24.544a1.854 1.854 0 00-.05 2.572h-.002l1.062 1.211c.2.228.188.572-.026.786l-.528.528v.002h-.001l-.528.527a.575.575 0 01-.785.026l-1.168-1.021a1.851 1.851 0 00-1.302-.534 1.86 1.86 0 00-1.857 1.786h-.004l-.105 1.607a.575.575 0 01-.54.536h-1.56a.575.575 0 01-.54-.536l-.105-1.607h-.004a1.851 1.851 0 00-.545-1.244 1.851 1.851 0 00-1.31-.542c-.504 0-.96.2-1.295.526l-1.177 1.03a.575.575 0 01-.785-.027l-.528-.528-.001-.001-.528-.528a.575.575 0 01-.026-.786l1.062-1.21-.001-.001a1.85 1.85 0 00.493-1.26c0-.515-.21-.98-.548-1.317a1.85 1.85 0 00-1.236-.539v-.001l-1.607-.107a.575.575 0 01-.537-.574v-.746H2V12h.001v-.747c0-.303.235-.554.538-.574l1.606-.105v-.004a1.851 1.851 0 001.242-.545 1.854 1.854 0 00.043-2.577L4.376 6.244a.575.575 0 01.026-.786l.528-.527-.001-.002zM16.286 12a4.286 4.286 0 11-8.572 0 4.286 4.286 0 018.572 0z"}))}function yU(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},Lr,t),e.createElement("path",{d:"M5.95 11.008L1.863 6.572.392 7.927l5.533 6.003 9.67-10.114-1.444-1.381z"}))}function bU(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"},Lr,t),e.createElement("path",{d:"M5.75 6.232C5.75 3.811 6.953 3.5 8 3.5s2.25.31 2.25 2.732V7h-4.5v-.768zm6 .768v-.768C11.75 2.55 9.4 2 8 2s-3.75.55-3.75 4.232V7H3v7h10V7h-1.25z"}))}var wU,CU,kU,SU=Jr({en:JSON.parse('{"button_switcher":"Columns","button_apply":"Apply"}'),ru:JSON.parse('{"button_switcher":"\u041a\u043e\u043b\u043e\u043d\u043a\u0438","button_apply":"\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c"}')},"TableColumnSetup"),xU=pt("table-column-setup"),LU=function(t){var n=t.switcher,i=t.disabled,r=t.popupWidth,o=t.popupPlacement,a=t.className,s=t.items,u=t.getItemTitle,l=void 0===u?function(e){return e.title}:u,c=t.sortable,d=void 0===c||c,h=t.filterable,f=void 0!==h&&h,p=t.showStatus,v=e.useState(!1),g=(0,dt.Z)(v,2),m=g[0],_=g[1],y=e.useState([]),b=(0,dt.Z)(y,2),w=b[0],C=b[1],k=e.useState([]),S=(0,dt.Z)(k,2),x=S[0],L=S[1],E=e.useState([]),N=(0,dt.Z)(E,2),D=N[0],M=N[1],T=e.useRef(null),O=function(e){return e.filter((function(e){return e.required})).map((function(e){return Object.assign(Object.assign({},e),{disabled:!0})}))},I=function(e){return e.filter((function(e){return!e.required}))};e.useEffect((function(){s!==w&&(C(s),M(O(s)),L(I(s)))}),[w,s]);var A=function(){_(!1),M(O(w)),L(I(w))},P=function(e){return 36*Math.min(5,e.length)+18},R=function(e){return 36*e.length},Z=function(e){!function(e){L(e)}(x.map((function(t){return t===e?Object.assign(Object.assign({},t),{selected:!t.selected}):t})))},F=function(t){return e.createElement("div",{className:xU("item-content")},t.required?e.createElement("div",{className:xU("lock-wrap",{visible:t.selected})},e.createElement(Mr,{data:bU})):e.createElement("div",{className:xU("tick-wrap",{visible:t.selected})},e.createElement(Mr,{data:yU,className:xU("tick"),width:10,height:10})),e.createElement("div",{className:xU("title")},l(t)))};return e.createElement("div",{className:xU(null,a)},e.createElement("div",{className:xU("control"),ref:T,onClick:function(){i||(_(!m),M(O(w)),L(I(w)))}},n||e.createElement(zr,{disabled:i},e.createElement(Mr,{data:_U}),SU("button_switcher"),function(){if(!p)return null;var t=w.reduce((function(e,t){return t.selected?e+1:e}),0),n=s.length,i="".concat(t,"/").concat(n);return e.createElement("span",{className:xU("status")},i)}())),e.createElement(gp,{anchorRef:T,placement:o||["bottom-start","bottom-end","top-start","top-end"],open:m,onClose:function(){return A()},className:xU("popup"),style:{width:r}},D.length?e.createElement(Y_,{items:D,itemHeight:36,itemsHeight:R,filterable:f,renderItem:F,itemsClassName:xU("items"),itemClassName:xU("item"),virtualized:!1}):null,function(){return e.createElement(Y_,{items:x,itemHeight:36,itemsHeight:P,sortable:d,filterable:f,sortHandleAlign:"right",onSortEnd:(t=x,function(e){var n=e.oldIndex,i=e.newIndex;L(Y_.moveListElement(t.slice(),n,i))}),onItemClick:Z,renderItem:F,itemsClassName:xU("items"),itemClassName:xU("item"),virtualized:!1});var t}(),e.createElement("div",{className:xU("controls")},e.createElement(zr,{view:"action",width:"max",onClick:function(){A();var e=D.concat(x);w!==e&&t.onUpdate(e)}},SU("button_apply")))))},EU={PARTITION_ID:"partitionId",STORE_SIZE:"storeSize",WRITE_SPEED:"writeSpeed",READ_SPEED:"readSpeed",WRITE_LAGS:"writeLags",READ_LAGS:"readLags",UNCOMMITED_MESSAGES:"uncommitedMessages",UNREAD_MESSAGES:"unreadMessages",START_OFFSET:"startOffset",END_OFFSET:"endOffset",COMMITED_OFFSET:"commitedOffset",READ_SESSION_ID:"readSessionId",READER_NAME:"readerName",PARTITION_HOST:"partitionHost",CONNECTION_HOST:"connectionHost"},NU=(wU={},(0,xt.Z)(wU,EU.PARTITION_ID,"Partition ID"),(0,xt.Z)(wU,EU.STORE_SIZE,"Store size"),(0,xt.Z)(wU,EU.WRITE_SPEED,"Write speed"),(0,xt.Z)(wU,EU.READ_SPEED,"Read speed"),(0,xt.Z)(wU,EU.WRITE_LAGS,"Write lags, duration"),(0,xt.Z)(wU,EU.READ_LAGS,"Read lags, duration"),(0,xt.Z)(wU,EU.UNCOMMITED_MESSAGES,"Uncommited messages"),(0,xt.Z)(wU,EU.UNREAD_MESSAGES,"Unread messages"),(0,xt.Z)(wU,EU.START_OFFSET,"Start offset"),(0,xt.Z)(wU,EU.END_OFFSET,"End offset"),(0,xt.Z)(wU,EU.COMMITED_OFFSET,"Commited offset"),(0,xt.Z)(wU,EU.READ_SESSION_ID,"Read session ID"),(0,xt.Z)(wU,EU.READER_NAME,"Reader name"),(0,xt.Z)(wU,EU.PARTITION_HOST,"Partition host"),(0,xt.Z)(wU,EU.CONNECTION_HOST,"Connection host"),wU),DU="partitionWriteLag",MU="partitionWriteIdleTime",TU=(CU={},(0,xt.Z)(CU,DU,"write lag"),(0,xt.Z)(CU,MU,"write idle time"),CU),OU="consumerWriteLag",IU="consumerReadLag",AU="consumerReadIdleTime",PU=(kU={},(0,xt.Z)(kU,OU,"write lag"),(0,xt.Z)(kU,IU,"read lag"),(0,xt.Z)(kU,AU,"read idle time"),kU),RU=[EU.PARTITION_ID,EU.STORE_SIZE,EU.WRITE_SPEED,EU.WRITE_LAGS,EU.START_OFFSET,EU.END_OFFSET,EU.PARTITION_HOST],ZU=Object.values(EU),FU=JSON.parse('{"lagsPopover.writeLags":"Write lags statistics (time format dd hh:mm:ss)","lagsPopover.readLags":"Read lags statistics (time format dd hh:mm:ss)","headers.unread":"End offset - Last read offset","headers.uncommited":"End offset - Committed offset","controls.consumerSelector":"Consumer:","controls.consumerSelector.emptyOption":"No consumer","controls.partitionSearch":"Partition ID","controls.generalSearch":"Host, Host ID, Reader, Read Session ID","table.emptyDataMessage":"No partitions match the current search","noConsumersMessage.topic":"This topic has no consumers","noConsumersMessage.stream":"This changefeed has no consumers"}'),jU=JSON.parse('{"lagsPopover.writeLags":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043b\u0430\u0433\u043e\u0432 \u0437\u0430\u043f\u0438\u0441\u0438 (\u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u0434 \u0447\u0447:\u043c\u043c:\u0441\u0441)","lagsPopover.readLags":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043b\u0430\u0433\u043e\u0432 \u0447\u0442\u0435\u043d\u0438\u044f (\u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u0434 \u0447\u0447:\u043c\u043c:\u0441\u0441)","headers.unread":"End offset - Last read offset","headers.uncommited":"End offset - Committed offset","controls.consumerSelector":"\u0427\u0438\u0442\u0430\u0442\u0435\u043b\u044c:","controls.consumerSelector.emptyOption":"\u041d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f","controls.partitionSearch":"Partition ID","controls.generalSearch":"Host, Host ID, Reader, Read Session ID","table.emptyDataMessage":"\u041f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0438\u0441\u043a\u0443 \u043d\u0435\u0442 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439","noConsumersMessage.topic":"\u0423 \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u043f\u0438\u043a\u0430 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439","noConsumersMessage.stream":"\u0423 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0440\u0438\u043c\u0430 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439"}'),HU="ydb-diagnostics-partitions";na.registerKeyset(Ko.En,HU,FU),na.registerKeyset(Ko.Ru,HU,jU);var BU=na.keyset(HU),zU=function(t){var n=t.consumers,i=t.selectedConsumer,r=t.onSelectedConsumerChange,o=t.selectDisabled,a=t.partitions,s=t.onSearchChange,u=t.hiddenColumns,l=t.onHiddenColumnsChange,c=t.initialColumnsIds,d=(0,e.useState)(""),h=(0,dt.Z)(d,2),f=h[0],p=h[1],v=(0,e.useState)(""),g=(0,dt.Z)(v,2),m=g[0],_=g[1];(0,e.useEffect)((function(){if(a){var e=new RegExp((0,mU.escapeRegExp)(m),"i"),t=new RegExp((0,mU.escapeRegExp)(f),"i"),n=a.filter((function(n){var i=n.partitionId,r=n.readerName,o=n.readSessionId,a=n.partitionNodeId,s=n.connectionNodeId,u=n.partitionHost,l=n.connectionHost,c=e.test(i),d=[r,o,a,s,u,l].filter(Boolean).map(String),h=0===d.length||d.some((function(e){return t.test(e)}));return c&&h}));s(n)}}),[m,f,a,s]);var y=(0,e.useMemo)((function(){var e=n&&n.length?n.map((function(e){return{value:e,content:e}})):[];return[{value:"",content:BU("controls.consumerSelector.emptyOption")}].concat((0,Lt.Z)(e))}),[n]),b=(0,e.useMemo)((function(){return c.map((function(e){return{title:NU[e],selected:Boolean(!u.includes(e)),id:e,required:e===EU.PARTITION_ID}}))}),[c,u]),w=function(e){return(0,fs.jsx)("div",{className:CK("select-option",{empty:""===e.value}),children:e.content})};return(0,fs.jsxs)("div",{className:CK("controls"),children:[(0,fs.jsx)(ty,{className:CK("consumer-select"),label:BU("controls.consumerSelector"),options:y,value:[i],onUpdate:function(e){r(e[0])},filterable:n&&n.length>5,disabled:o||!n||!n.length,renderOption:w,renderSelectedOption:w}),(0,fs.jsx)(rv,{onChange:function(e){_(e)},placeholder:BU("controls.partitionSearch"),className:CK("search",{partition:!0}),value:m}),(0,fs.jsx)(rv,{onChange:function(e){p(e)},placeholder:BU("controls.generalSearch"),className:CK("search",{general:!0}),value:f}),(0,fs.jsx)(LU,{popupWidth:"242px",items:b,showStatus:!0,onUpdate:function(e){var t=(0,Lt.Z)(u);e.forEach((function(e){e.selected||u.includes(e.id)?e.selected&&u.includes(e.id)&&t.splice(u.indexOf(e.id)):t.push(e.id)})),l(t)},className:CK("table-settings")},"TableColumnSetup")]})},WU=JSON.parse('{"averageSpeed":"Average speed","perMinute":"per minute","perHour":"per hour","perDay":"per day"}'),VU=JSON.parse('{"averageSpeed":"\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c","perMinute":"\u0437\u0430 \u043c\u0438\u043d\u0443\u0442\u0443","perHour":"\u0437\u0430 \u0447\u0430\u0441","perDay":"\u0437\u0430 \u0434\u0435\u043d\u044c"}'),YU="ydb-components-speed-multimeter";na.registerKeyset(Ko.En,YU,WU),na.registerKeyset(Ko.Ru,YU,VU);var UU,KU,qU=na.keyset(YU),GU=(0,ct.default)("speed-multimeter"),$U=function(t){var n=t.data,i=t.speedSize,r=void 0===i?"kb":i,o=t.withValue,a=void 0===o||o,s=t.withPopover,u=void 0===s||s,l=n||{},c=l.perMinute,d=void 0===c?0:c,h=l.perHour,f=void 0===h?0:h,p=l.perDay,v=void 0===p?0:p,g=[d,f,v],m=function(e){return tc({value:e,size:r,withSpeedLabel:!0})},_=[{value:m(d),label:qU("perMinute")},{value:m(f),label:qU("perHour")},{value:m(v),label:qU("perDay")}],y=(0,e.useState)(d),b=(0,dt.Z)(y,2),w=b[0],C=b[1],k=(0,e.useState)(a?0:void 0),S=(0,dt.Z)(k,2),x=S[0],L=S[1],E=(0,e.useState)(),N=(0,dt.Z)(E,2),D=N[0],M=N[1],T=function(e,t){C(e[t]),L(t),M(t)},O=function(e){return x===e},I=function(e){return D===e};return(0,fs.jsx)("div",{className:GU(),children:(0,fs.jsxs)("div",{className:GU("content"),children:[a&&(0,fs.jsx)("div",{className:GU("displayed-value"),children:m(w)}),(0,fs.jsx)("div",{className:GU("popover-container"),children:(0,fs.jsx)(qv,{content:(0,fs.jsxs)("div",{className:GU("popover-content"),children:[(0,fs.jsx)("span",{className:GU("popover-header"),children:qU("averageSpeed")}),_.map((function(e,t){return(0,fs.jsx)("span",{className:GU("popover-row",(n=O(t),n?{color:"primary"}:{color:"secondary"})),children:"".concat(e.label,": ").concat(e.value)},t);var n}))]}),placement:"bottom",disabled:!u,hasArrow:!0,size:"s",children:(0,fs.jsx)("div",{className:GU("bars"),onMouseLeave:function(){C(d),L(a?0:void 0),M(void 0)},children:function(){var e=Math.max.apply(Math,g.concat([0]))||1;return g.map((function(t,n){return(0,fs.jsx)("div",{className:GU("bar-container",{highlighted:I(n)}),onMouseEnter:T.bind(null,g,n),children:(0,fs.jsx)("div",{className:GU("bar",{color:O(n)?"dark":"light"}),style:{width:"".concat(100*t/e,"%")}})},n)}))}()})})})]})})},QU=function(e){var t=e.text,n=e.popoverContent,i=e.className,r=e.contentClassName;return(0,fs.jsxs)("div",{className:i,children:[t+"\xa0",(0,fs.jsx)(Ib,{content:n,contentClassName:r})]})},XU=70,JU=54,eK=268,tK="#ADE8F5",nK="#f5be9d",iK=function(e){var t=e.width,n=e.height,i=e.transform;return(0,fs.jsx)("path",{d:"M-".concat(t/2," 0 c0 -").concat(n,", ").concat(t," -").concat(n,", ").concat(t," 0"),fill:"none",strokeDasharray:"4,6",stroke:"#28f",strokeWidth:"1.6",transform:i})},rK=function(e){var t=e.width;return(0,fs.jsx)("path",{fill:"none",strokeWidth:"2",d:"M0 0 h".concat(t," l-10 -5 m0 10 l10 -5")})},oK=function(){return(0,fs.jsxs)("g",{fill:"var(--yc-color-text-primary)",fontSize:"12",children:[(0,fs.jsx)("g",{transform:"translate(0, ".concat(27,")"),stroke:nK,children:(0,fs.jsx)(rK,{width:203})}),(0,fs.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,fs.jsxs)("g",{transform:"translate(".concat(35,", ").concat(27,")"),children:[(0,fs.jsx)(iK,{width:XU,height:15}),(0,fs.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"write lag"})})]}),(0,fs.jsxs)("g",{transform:"translate(".concat(119,", ").concat(27,")"),children:[(0,fs.jsx)(iK,{width:98,height:15}),(0,fs.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"write idle time"})})]})]}),(0,fs.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,fs.jsxs)("g",{transform:"translate(".concat(0,", ",27,")"),children:[(0,fs.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:nK}),(0,fs.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"create time"})})]}),(0,fs.jsxs)("g",{transform:"translate(".concat(XU,", ").concat(27,")"),children:[(0,fs.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:nK}),(0,fs.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"write time"})})]}),(0,fs.jsx)("g",{transform:"translate(".concat(168,", ").concat(27,")"),children:(0,fs.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"now"})})})]})]})},aK=function(){return(0,fs.jsxs)("g",{fill:"var(--yc-color-text-primary)",fontSize:"12",children:[(0,fs.jsx)("g",{transform:"translate(0, ".concat(27,")"),stroke:tK,children:(0,fs.jsx)(rK,{width:eK})}),(0,fs.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,fs.jsxs)("g",{transform:"translate(".concat(105,", ").concat(27,")"),children:[(0,fs.jsx)(iK,{width:XU,height:15}),(0,fs.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"read lag"})})]}),(0,fs.jsxs)("g",{transform:"translate(".concat(35,", ").concat(27,")"),children:[(0,fs.jsx)(iK,{width:XU,height:15}),(0,fs.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"write lag"})})]}),(0,fs.jsxs)("g",{transform:"translate(".concat(182,", ").concat(27,")"),children:[(0,fs.jsx)(iK,{width:91,height:15}),(0,fs.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"read idle time"})})]})]}),(0,fs.jsxs)("g",{transform:"translate(".concat(30,", ").concat(27,")"),children:[(0,fs.jsxs)("g",{transform:"translate(".concat(0,", 0)"),children:[(0,fs.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:tK}),(0,fs.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"create time"})})]}),(0,fs.jsxs)("g",{transform:"translate(".concat(XU,", 0)"),children:[(0,fs.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:tK}),(0,fs.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"write time"})})]}),(0,fs.jsxs)("g",{transform:"translate(".concat(140,", 0)"),children:[(0,fs.jsx)("use",{x:"-2",y:"-10",xlinkHref:"#check",stroke:tK}),(0,fs.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"read time"})})]}),(0,fs.jsx)("g",{transform:"translate(".concat(224,", 0)"),children:(0,fs.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,fs.jsx)("tspan",{x:"0",dy:"0",children:"now"})})})]})]})},sK=function(e){var t=e.id,n=e.fill;return(0,fs.jsx)("pattern",{id:t,x:"0",y:"0",width:"8",height:"8",patternUnits:"userSpaceOnUse",children:(0,fs.jsx)("path",{d:"M0 5L5 0H8L0 8V5M5 8L8 5V8Z",fill:n})})},uK=function(){return(0,fs.jsxs)("svg",{className:"paint",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 ".concat(eK," ").concat(JU),width:eK,height:JU,children:[(0,fs.jsxs)("defs",{children:[(0,fs.jsx)("g",{id:"check",children:(0,fs.jsx)("path",{d:"M0 3 v14",strokeWidth:"2"})}),(0,fs.jsx)(sK,{id:"latest-read",fill:tK}),(0,fs.jsx)(sK,{id:"latest-write",fill:nK})]}),(0,fs.jsx)(oK,{})]})},lK=function(){return(0,fs.jsxs)("svg",{className:"paint",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 ".concat(eK," ").concat(JU),width:eK,height:JU,children:[(0,fs.jsxs)("defs",{children:[(0,fs.jsx)("g",{id:"check",children:(0,fs.jsx)("path",{d:"M0 3 v14",strokeWidth:"2"})}),(0,fs.jsx)(sK,{id:"latest-read",fill:tK}),(0,fs.jsx)(sK,{id:"latest-write",fill:nK})]}),(0,fs.jsx)(aK,{})]})},cK=(0,ct.default)("ydb-lag-popover-content"),dK=function(e){var t=e.text,n=e.type;return(0,fs.jsxs)("div",{className:cK({type:n}),children:[(0,fs.jsx)("div",{className:cK("text"),children:t}),(0,fs.jsx)("div",{children:"read"===n?(0,fs.jsx)(lK,{}):(0,fs.jsx)(uK,{})})]})},hK=(0,ct.default)("ydb-diagnostics-partitions-columns-header"),fK=function(e){var t=e.title;return(0,fs.jsx)("div",{className:hK("multiline"),children:t})},pK=function(){return(0,fs.jsx)("div",{className:hK("read-session"),children:NU[EU.READ_SESSION_ID]})},vK=function(){return(0,fs.jsx)(QU,{className:hK("lags"),text:NU[EU.WRITE_LAGS],popoverContent:(0,fs.jsx)(dK,{text:BU("lagsPopover.writeLags"),type:"write"})})},gK=function(){return(0,fs.jsx)(QU,{className:hK("lags"),text:NU[EU.READ_LAGS],popoverContent:(0,fs.jsx)(dK,{text:BU("lagsPopover.readLags"),type:"read"})})},mK=function(){return(0,fs.jsx)(QU,{className:hK("messages"),text:NU[EU.UNREAD_MESSAGES],popoverContent:(0,fs.jsx)("div",{className:hK("messages-popover-content"),children:BU("headers.unread")})})},_K=function(){return(0,fs.jsx)(QU,{className:hK("messages"),text:NU[EU.UNCOMMITED_MESSAGES],popoverContent:(0,fs.jsx)("div",{className:hK("messages-popover-content"),children:BU("headers.uncommited")})})},yK=(0,ct.default)("ydb-diagnostics-partitions-columns"),bK=[{name:EU.PARTITION_ID,header:(0,fs.jsx)(fK,{title:NU[EU.PARTITION_ID]}),sortAccessor:function(e){return Bi(e.partitionId)&&Number(e.partitionId)},align:zn.LEFT,render:function(e){return e.row.partitionId}},{name:EU.STORE_SIZE,header:(0,fs.jsx)(fK,{title:NU[EU.STORE_SIZE]}),align:zn.RIGHT,render:function(e){var t=e.row;return ra(t.storeSize)}},{name:EU.WRITE_SPEED,header:NU[EU.WRITE_SPEED],align:zn.LEFT,sortAccessor:function(e){return e.writeSpeed.perMinute},render:function(e){var t=e.row;return(0,fs.jsx)($U,{data:t.writeSpeed})}},{name:EU.READ_SPEED,header:NU[EU.READ_SPEED],align:zn.LEFT,sortAccessor:function(e){var t;return null===(t=e.readSpeed)||void 0===t?void 0:t.perMinute},render:function(e){var t=e.row;return(0,fs.jsx)($U,{data:t.readSpeed})}},{name:EU.WRITE_LAGS,header:(0,fs.jsx)(vK,{}),className:yK("lags-header"),sub:[{name:DU,header:TU[DU],align:zn.RIGHT,render:function(e){var t=e.row;return la(t.partitionWriteLag)}},{name:MU,header:TU[MU],align:zn.RIGHT,render:function(e){var t=e.row;return la(t.partitionWriteIdleTime)}}]},{name:EU.READ_LAGS,header:(0,fs.jsx)(gK,{}),className:yK("lags-header"),sub:[{name:OU,header:PU[OU],align:zn.RIGHT,render:function(e){var t=e.row;return la(t.consumerWriteLag)}},{name:IU,header:PU[IU],align:zn.RIGHT,render:function(e){var t=e.row;return la(t.consumerReadLag)}},{name:AU,header:PU[AU],align:zn.RIGHT,render:function(e){var t=e.row;return la(t.consumerReadIdleTime)}}]},{name:EU.UNCOMMITED_MESSAGES,header:(0,fs.jsx)(_K,{}),align:zn.RIGHT,render:function(e){return e.row.uncommitedMessages}},{name:EU.UNREAD_MESSAGES,header:(0,fs.jsx)(mK,{}),align:zn.RIGHT,render:function(e){return e.row.unreadMessages}},{name:EU.START_OFFSET,header:(0,fs.jsx)(fK,{title:NU[EU.START_OFFSET]}),sortAccessor:function(e){return Bi(e.startOffset)&&Number(e.startOffset)},align:zn.RIGHT,render:function(e){return e.row.startOffset}},{name:EU.END_OFFSET,header:(0,fs.jsx)(fK,{title:NU[EU.END_OFFSET]}),sortAccessor:function(e){return Bi(e.endOffset)&&Number(e.endOffset)},align:zn.RIGHT,render:function(e){return e.row.endOffset}},{name:EU.COMMITED_OFFSET,header:(0,fs.jsx)(fK,{title:NU[EU.COMMITED_OFFSET]}),sortAccessor:function(e){return Bi(e.commitedOffset)&&Number(e.commitedOffset)},align:zn.RIGHT,render:function(e){return e.row.commitedOffset}},{name:EU.READ_SESSION_ID,header:(0,fs.jsx)(pK,{}),align:zn.LEFT,render:function(e){var t=e.row;return t.readSessionId?(0,fs.jsx)(Gf,{name:t.readSessionId,showStatus:!1,hasClipboardButton:!0,className:yK("string-with-copy")}):"\u2013"}},{name:EU.READER_NAME,header:(0,fs.jsx)(fK,{title:NU[EU.READER_NAME]}),align:zn.LEFT,render:function(e){var t=e.row;return t.readerName?(0,fs.jsx)(Gf,{name:t.readerName,showStatus:!1,hasClipboardButton:!0,className:yK("string-with-copy")}):"\u2013"}},{name:EU.PARTITION_HOST,header:(0,fs.jsx)(fK,{title:NU[EU.PARTITION_HOST]}),align:zn.LEFT,render:function(e){var t=e.row;return t.partitionNodeId&&t.partitionHost?(0,fs.jsx)(Gf,{name:t.partitionHost,path:ig(t.partitionNodeId),showStatus:!1,hasClipboardButton:!0,className:yK("string-with-copy")}):"\u2013"}},{name:EU.CONNECTION_HOST,header:(0,fs.jsx)(fK,{title:NU[EU.CONNECTION_HOST]}),align:zn.LEFT,render:function(e){var t=e.row;return t.connectionNodeId&&t.connectionHost?(0,fs.jsx)(Gf,{name:t.connectionHost,path:ig(t.connectionNodeId),showStatus:!1,hasClipboardButton:!0,className:yK("string-with-copy")}):"\u2013"}}],wK=bK.filter((function(e){return RU.includes(e.name)})),CK=(0,ct.default)("ydb-diagnostics-partitions"),kK=function(t){var n=t.path,i=Q(),r=(0,e.useState)(n),o=(0,dt.Z)(r,2),a=o[0],s=o[1],u=(0,e.useState)([]),l=(0,dt.Z)(u,2),c=l[0],d=l[1],h=vf(cc),f=vf(od),p=vf((function(e){return e.schema})).autorefresh,v=vf((function(e){return e.partitions})),g=v.loading,m=v.wasLoaded,_=v.error,y=v.partitions,b=v.selectedConsumer,w=vf((function(e){return e.topic})),C=w.loading,k=w.wasLoaded,S=w.error,x=vf((function(e){return e.nodesList})),L=x.loading,E=x.wasLoaded,N=x.error,D=gf(gi,[]),M=(0,dt.Z)(D,2),T=M[0],O=M[1],I=function(t){var n=(0,e.useState)([]),i=(0,dt.Z)(n,2),r=i[0],o=i[1],a=(0,e.useState)([]),s=(0,dt.Z)(a,2),u=s[0],l=s[1];return(0,e.useEffect)((function(){t?(o(bK),l(ZU)):(o(wK),l(RU))}),[t]),[r,u]}(b),A=(0,dt.Z)(I,2),P=A[0],R=A[1];(0,e.useEffect)((function(){i({type:oc}),i(sc()),i(rd()),i(uc(n)),s(n)}),[i,n]);var Z=(0,e.useMemo)((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return null===e||void 0===e?void 0:e.map((function(e){var n=e.partitionNodeId&&t?t.get(e.partitionNodeId):void 0,i=e.connectionNodeId&&t?t.get(e.connectionNodeId):void 0;return Rt(Rt({},e),{},{partitionHost:n,connectionHost:i})}))}(y,f)}),[y,f]),F=(0,e.useCallback)((function(e){e||i({type:yc}),k&&a&&i(function(e,t){return Oo(t?{request:window.api.getConsumer({path:e,consumer:t},{concurrentId:"getPartitions"}),actions:mc,dataHandler:function(e){var t=e.partitions;return gc(t)}}:{request:window.api.getTopic({path:e},{concurrentId:"getPartitions"}),actions:mc,dataHandler:function(e){var t=e.partitions;return vc(t)}})}(a,b))}),[i,b,a,k]);pf(F,[F],p),(0,e.useEffect)((function(){var e=k&&!h,t=b&&h&&!h.includes(b);(e||t)&&i(wc(""))}),[i,k,b,h]);var j=(0,e.useMemo)((function(){return P.filter((function(e){return!T.includes(e.name)}))}),[P,T]),H=C&&!k||L&&!E||g&&!m,B=N||S||_;return(0,fs.jsxs)("div",{className:CK(),children:[(0,fs.jsx)(zU,{consumers:h,selectedConsumer:b,onSelectedConsumerChange:function(e){i(wc(e))},selectDisabled:Boolean(B)||H,partitions:Z,onSearchChange:d,hiddenColumns:T,onHiddenColumnsChange:function(e){O(e)},initialColumnsIds:R}),(0,fs.jsx)("div",{className:CK("table-wrapper"),children:(0,fs.jsx)("div",{className:CK("table-content"),children:H?(0,fs.jsx)(uv,{className:CK("loader")}):B?(0,fs.jsx)(mv,{error:B}):(0,fs.jsx)(zn,{theme:"yandex-cloud",data:c,columns:j,settings:fi,emptyDataMessage:BU("table.emptyDataMessage")})})})]})},SK=(0,ct.default)("ydb-diagnostics-consumers-topic-stats"),xK=function(e){var t=e.data||{},n=t.writeSpeed,i=t.partitionsWriteLag,r=t.partitionsIdleTime,o=[{label:"Write speed",value:(0,fs.jsx)($U,{data:n})},{label:"Write lag",value:la(i||0)},{label:"Write idle time",value:la(r||0)}];return(0,fs.jsx)("div",{className:SK("wrapper"),children:o.map((function(e,t){return(0,fs.jsxs)("div",{className:SK("item"),children:[(0,fs.jsx)("div",{className:SK("label"),children:e.label}),(0,fs.jsx)("div",{className:SK("value"),children:e.value})]},t)}))})},LK="consumer",EK="readSpeed",NK="readLags",DK=(UU={},(0,xt.Z)(UU,LK,"Consumer"),(0,xt.Z)(UU,EK,"Read speed"),(0,xt.Z)(UU,NK,"Read lags, duration"),UU),MK="writeLag",TK="readLag",OK="readIdleTime",IK=(KU={},(0,xt.Z)(KU,MK,"write lag"),(0,xt.Z)(KU,TK,"read lag"),(0,xt.Z)(KU,OK,"read idle time"),KU),AK=JSON.parse('{"noConsumersMessage.topic":"This topic has no consumers","noConsumersMessage.stream":"This changefeed has no consumers","lagsPopover.readLags":"Read lags statistics, maximum among all consumer partitions (time format dd hh:mm:ss)","table.emptyDataMessage":"No consumers match the current search","controls.search":"Consumer"}'),PK=JSON.parse('{"noConsumersMessage.topic":"\u0423 \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u043f\u0438\u043a\u0430 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439","noConsumersMessage.stream":"\u0423 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0440\u0438\u043c\u0430 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439","lagsPopover.readLags":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043b\u0430\u0433\u043e\u0432 \u0447\u0442\u0435\u043d\u0438\u044f, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f (\u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u0434 \u0447\u0447:\u043c\u043c:\u0441\u0441)","table.emptyDataMessage":"\u041f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0438\u0441\u043a\u0443 \u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439","controls.search":"Consumer"}'),RK="ydb-diagnostics-consumers";na.registerKeyset(Ko.En,RK,AK),na.registerKeyset(Ko.Ru,RK,PK);var ZK=na.keyset(RK),FK=(0,ct.default)("ydb-diagnostics-consumers-columns-header"),jK=function(){return(0,fs.jsx)(QU,{className:FK("lags"),text:DK[NK],popoverContent:(0,fs.jsx)(dK,{text:ZK("lagsPopover.readLags"),type:"read"})})},HK=(0,ct.default)("ydb-diagnostics-consumers-columns"),BK=[{name:LK,header:DK[LK],align:zn.LEFT,render:function(e){var t,n=e.row;if(!n.name)return"\u2013";var i=Ft().parse(location.search,{ignoreQueryPrefix:!0});return(0,fs.jsx)(Nf,{to:Ph(Zh.tenant,void 0,Rt(Rt({},i),{},(t={},(0,xt.Z)(t,vv.diagnosticsTab,er.partitions),(0,xt.Z)(t,"selectedConsumer",n.name),t))),children:n.name})}},{name:EK,header:DK[EK],align:zn.RIGHT,sortAccessor:function(e){return e.readSpeed.perMinute},render:function(e){var t=e.row;return(0,fs.jsx)($U,{data:t.readSpeed})}},{name:NK,header:(0,fs.jsx)(jK,{}),className:HK("lags-header"),sub:[{name:MK,header:IK[MK],align:zn.RIGHT,render:function(e){var t=e.row;return la(t.writeLag)}},{name:TK,header:IK[TK],align:zn.RIGHT,render:function(e){var t=e.row;return la(t.readLag)}},{name:OK,header:IK[OK],align:zn.RIGHT,render:function(e){var t=e.row;return la(t.readIdleTime)}}]}],zK=(0,ct.default)("ydb-diagnostics-consumers"),WK=function(t){var n=t.path,i=function(e){return e===eu.EPathTypeCdcStream}(t.type),r=Q(),o=(0,e.useState)(""),a=(0,dt.Z)(o,2),s=a[0],u=a[1],l=vf((function(e){return e.schema})).autorefresh,c=vf((function(e){return e.topic})),d=c.loading,h=c.wasLoaded,f=c.error,p=vf((function(e){return hc(e)})),v=vf((function(e){return dc(e)})),g=(0,e.useCallback)((function(e){e||r(sc),r(uc(n))}),[r,n]);pf(g,[g],l);var m=(0,e.useMemo)((function(){if(!p)return[];var e=new RegExp((0,mU.escapeRegExp)(s),"i");return p.filter((function(t){return e.test(String(t.name))}))}),[p,s]);return d&&!h?(0,fs.jsx)(Cy,{size:"m"}):f?(0,fs.jsx)(mv,{error:f}):p&&p.length?(0,fs.jsxs)("div",{className:zK(),children:[(0,fs.jsxs)("div",{className:zK("controls"),children:[(0,fs.jsx)(rv,{onChange:function(e){u(e)},placeholder:ZK("controls.search"),className:zK("search"),value:s}),v&&(0,fs.jsx)(xK,{data:v})]}),(0,fs.jsx)("div",{className:zK("table-wrapper"),children:(0,fs.jsx)("div",{className:zK("table-content"),children:(0,fs.jsx)(zn,{theme:"yandex-cloud",data:m,columns:BK,settings:fi,emptyDataMessage:ZK("table.emptyDataMessage")})})})]}):(0,fs.jsx)("div",{children:ZK("noConsumersMessage.".concat(i?"stream":"topic"))})},VK=(0,ct.default)("date-range"),YK=function(e){if(e&&!isNaN(e)){var t=e-60*(new Date).getTimezoneOffset()*1e3;return new Date(t).toISOString().substring(0,"yyyy-MM-DDThh:mm".length)}},UK=function(e){var t=e.from,n=e.to,i=e.className,r=e.onChange,o=YK(t),a=YK(n);return(0,fs.jsxs)("div",{className:VK(null,i),children:[(0,fs.jsx)("input",{type:"datetime-local",value:o||"",max:a,onChange:function(e){var t=e.target.value,i=t?new Date(t).getTime():void 0;i&&n&&i>n&&(i=n),null===r||void 0===r||r({from:i,to:n})},className:VK("input")}),"\u2014",(0,fs.jsx)("input",{type:"datetime-local",min:o,value:a||"",onChange:function(e){var n=e.target.value,i=n?new Date(n).getTime():void 0;t&&i&&t>i&&(i=t),null===r||void 0===r||r({from:t,to:i})},className:VK("input")})]})},KK=JSON.parse('{"no-data":"No data","filter.text.placeholder":"Search by query text..."}'),qK=JSON.parse('{"no-data":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445","filter.text.placeholder":"\u0418\u0441\u043a\u0430\u0442\u044c \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430..."}'),GK="ydb-diagnostics-top-queries";na.registerKeyset(Ko.En,GK,KK),na.registerKeyset(Ko.Ru,GK,qK);var $K=na.keyset(GK),QK=(0,ct.default)("kv-top-queries"),XK=[{name:"CPUTimeUs",sortAccessor:function(e){return Number(e.CPUTimeUs)},align:zn.RIGHT},{name:"QueryText",width:500,sortable:!1,render:function(e){var t,n=e.row;return(0,fs.jsx)("div",{className:QK("query"),children:(0,fs.jsx)($w,{value:null===(t=n.QueryText)||void 0===t?void 0:t.toString(),maxQueryHeight:Qw})})}},{name:"EndTime",render:function(e){var t=e.row;return pa(new Date(t.EndTime).getTime())},align:zn.RIGHT},{name:"ReadRows",render:function(e){var t=e.row;return ha(t.ReadRows)},sortAccessor:function(e){return Number(e.ReadRows)},align:zn.RIGHT},{name:"ReadBytes",render:function(e){var t=e.row;return ha(t.ReadBytes)},sortAccessor:function(e){return Number(e.ReadBytes)},align:zn.RIGHT},{name:"UserSID",render:function(e){var t=e.row;return(0,fs.jsx)("div",{className:QK("user-sid"),children:t.UserSID||"\u2013"})},sortAccessor:function(e){return String(e.UserSID)},align:zn.LEFT}],JK=function(t){var n=t.path,i=t.type,r=Q(),o=ut(),a=st(),s=vf((function(e){return e.schema})).autorefresh,u=vf((function(e){return e.executeTopQueries})),l=u.loading,c=u.wasLoaded,d=u.error,h=u.data,f=(void 0===h?{}:h).result,p=void 0===f?void 0:f,v=u.filters,g=(0,e.useRef)(!1),m=(0,e.useState)(v),_=(0,dt.Z)(m,2),y=_[0],b=_[1];(0,e.useEffect)((function(){r(function(e){return{type:_d,filters:e}}(y))}),[r,y]);var w=function(e){var t,n,i=null===e||void 0===e||null===(t=e.result)||void 0===t||null===(n=t[0])||void 0===n?void 0:n.IntervalEnd;if(i){var r=new Date(i).getTime(),o=new Date(r-1e3*Un).getTime();b((function(e){return e.from||e.to?e:(g.current=!0,Rt(Rt({},e),{},{from:o,to:r}))}))}};pf((function(e){g.current?g.current=!1:(e||r({type:md,data:{wasLoaded:!1,data:void 0}}),r(function(e){var t=e.database,n=e.filters;return function(){var e=bi(ki().mark((function e(i,r){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.abrupt("return",Oo({request:window.api.sendQuery({schema:"modern",query:wd(t,n),database:t,action:"execute-scan"},{concurrentId:"executeTopQueries"}),actions:gd,dataHandler:Ui})(i,r));case 4:throw e.prev=4,e.t0=e.catch(0),i({type:gd.FAILURE,error:e.t0}),e.t0;case 8:case"end":return e.stop()}}),e,null,[[0,4]])})));return function(t,n){return e.apply(this,arguments)}}()}({database:n,filters:y})).then(w))}),[r,y,n],s);var C=(0,e.useCallback)((function(e){var t,n=e.QueryText;r(Rc({input:n}));var i=Ft().parse(o.search,{ignoreQueryPrefix:!0}),s=Cv(Rt(Rt({},i),{},(t={},(0,xt.Z)(t,Qi,Xi.query),(0,xt.Z)(t,vv.queryTab,Ji.newQuery),t)));a.push(s)}),[r,a,o]);return(0,fs.jsxs)("div",{className:QK(),children:[(0,fs.jsxs)("div",{className:QK("controls"),children:[(0,fs.jsx)(rv,{value:y.text,onChange:function(e){b((function(t){return Rt(Rt({},t),{},{text:e})}))},placeholder:$K("filter.text.placeholder"),className:QK("search")}),(0,fs.jsx)(UK,{from:y.from,to:y.to,onChange:function(e){b((function(t){return Rt(Rt({},t),e)}))}})]}),l&&!c?(0,fs.jsx)("div",{className:QK("loader"),children:(0,fs.jsx)(yy,{size:"m"})}):d&&!d.isCancelled?(0,fs.jsx)("div",{className:"error",children:Gi(d)}):!p||Uu(i)?$K("no-data"):(0,fs.jsx)("div",{className:QK("table"),children:(0,fs.jsx)(zn,{columns:XK,data:p,settings:Xw,onRowClick:C,theme:"yandex-cloud"})})]})},eq=e.createContext(ke());eq.displayName="HistoryContext";var tq=eq,nq=JSON.parse('{"no-data":"No data","filters.mode.immediate":"Immediate","filters.mode.history":"Historical","description":"Historical data only tracks shards with CPU load over 70%"}'),iq=JSON.parse('{"no-data":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445","filters.mode.immediate":"\u041c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u0435","filters.mode.history":"\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435","description":"\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e \u0448\u0430\u0440\u0434\u0430\u0445 \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 CPU \u0432\u044b\u0448\u0435 70%"}'),rq="ydb-diagnostics-top-shards";na.registerKeyset(Ko.En,rq,nq),na.registerKeyset(Ko.Ru,rq,iq);var oq=na.keyset(rq),aq=function(e){var t=e.value,n=e.onChange,i=e.className,r=t.mode===Hd.Immediate?void 0:t.from,o=t.mode===Hd.Immediate?void 0:t.to;return(0,fs.jsxs)("div",{className:sq("filters",i),children:[(0,fs.jsxs)(Pp,{value:t.mode,onUpdate:function(e){if(!function(e,t){return Object.values(e).includes(t)}(Hd,e)){var t=Object.values(Hd).join(", ");throw new Error('Unexpected TopShards mode "'.concat(e,'". Should be one of: ').concat(t))}n({mode:e})},children:[(0,fs.jsx)(Pp.Option,{value:Hd.Immediate,children:oq("filters.mode.immediate")}),(0,fs.jsx)(Pp.Option,{value:Hd.History,children:oq("filters.mode.history")})]}),(0,fs.jsx)(UK,{from:r,to:o,onChange:function(e){n(Rt({mode:Hd.History},e))}})]})},sq=(0,ct.default)("top-shards"),uq=(0,ct.default)("yc-link"),lq=Rt(Rt({},fi),{},{dynamicRender:!1,externalSort:!0,disableSortReset:!0,defaultOrder:zn.DESCENDING}),cq="TabletId",dq="CPUCores",hq="DataSize",fq="Path",pq="NodeId",vq="PeakTime",gq="InFlightTxCount",mq="IntervalEnd";function _q(e){return e?pa(new Date(e).getTime()):"\u2013"}function yq(e){return e?e.split(",").map((function(e){return{columnId:e,order:zn.DESCENDING}})):void 0}function bq(e){return e?e.split(",").map((function(e){return{columnId:e,order:"DESC"}})):void 0}function wq(e){return e.to=Date.now(),e.from=e.to-1e3*Un,e}var Cq=function(t){var n=t.tenantPath,i=t.type,r=Q(),o=vf((function(e){return e.schema})),a=o.autorefresh,s=o.currentSchemaPath,u=vf((function(e){return e.shardsWorkload})),l=u.loading,c=u.data,d=(void 0===c?{}:c).result,h=void 0===d?void 0:d,f=u.filters,p=u.error,v=u.wasLoaded,g=(0,e.useState)((function(){var e=Rt({},f);return e.mode||(e.mode=Hd.Immediate),e.from||e.to||wq(e),e})),m=(0,dt.Z)(g,2),_=m[0],y=m[1],b=(0,e.useState)(dq),w=(0,dt.Z)(b,2),C=w[0],k=w[1];pf((function(){r(function(e){var t=e.database,n=e.path,i=void 0===n?"":n,r=e.sortOrder,o=e.filters;try{return Oo({request:window.api.sendQuery({schema:"modern",query:(null===o||void 0===o?void 0:o.mode)===Hd.Immediate?Gd(i,r,t):qd(i,o,r,t),database:t,action:"execute-scan"},{concurrentId:"shardsWorkload"}),actions:Wd,dataHandler:Ui})}catch(p){return{type:Wd.FAILURE,error:p}}}({database:n,path:s,sortOrder:bq(C),filters:_}))}),[r,n,s,C,_],a),(0,e.useEffect)((function(){r({type:Vd,data:{wasLoaded:!1,data:void 0}})}),[r,s,n,_]);var S=(0,e.useContext)(tq),x=function(e){k(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(Array.isArray(e)?e:[e]).map((function(e){return e.columnId})).join(",")}(e))},L=(0,e.useMemo)((function(){var e=[{name:fq,render:function(e){var t,i=e.row;return(0,fs.jsx)("span",{onClick:(t=n+i.Path,function(){r(dl(t)),r(cl({path:t})),S.go(0)}),className:uq({view:"normal"}),children:i.Path})},sortable:!1},{name:dq,render:function(e){return function(e){return"".concat((100*Number(e)).toFixed(2),"%")}(e.row.CPUCores||0)},align:zn.RIGHT},{name:hq,header:"DataSize (B)",render:function(e){var t=e.row;return ha(t.DataSize)},align:zn.RIGHT},{name:cq,render:function(e){var t=e.row;return t.TabletId?(0,fs.jsx)(Nf,{to:Ph(Zh.tablet,{id:t.TabletId}),children:t.TabletId}):"\u2013"},sortable:!1},{name:pq,render:function(e){var t=e.row;return t.NodeId?(0,fs.jsx)(Nf,{to:ig(t.NodeId),children:t.NodeId}):"\u2013"},align:zn.RIGHT,sortable:!1},{name:gq,render:function(e){var t=e.row;return ha(t.InFlightTxCount)},align:zn.RIGHT,sortable:!1}];return _.mode===Hd.History&&(e.splice(5,0,{name:vq,render:function(e){return _q(e.row.PeakTime)},sortable:!1}),e.push({name:mq,render:function(e){return _q(e.row.IntervalEnd)}})),e}),[r,_.mode,S,n]);return(0,fs.jsxs)("div",{className:sq(),children:[(0,fs.jsx)(aq,{value:_,onChange:function(e){var t=Rt({},e);if(!f.from&&!f.to&&!e.from&&!e.to)switch(e.mode){case Hd.Immediate:t.from=t.to=void 0;break;case Hd.History:wq(t)}r(function(e){return{type:Yd,filters:e}}(e)),y((function(e){return Rt(Rt({},e),t)}))}}),_.mode===Hd.History&&(0,fs.jsx)("div",{children:oq("description")}),l&&!v?(0,fs.jsx)("div",{className:sq("loader"),children:(0,fs.jsx)(yy,{size:"m"})}):p&&!p.isCancelled?(0,fs.jsx)("div",{className:"error",children:Gi(p)}):!h||Uu(i)?oq("no-data"):(0,fs.jsx)("div",{className:sq("table"),children:(0,fs.jsx)(zn,{columns:L,data:h,settings:lq,theme:"yandex-cloud",onSort:x,sortOrder:yq(C)})})]})},kq=function(e){var t,n,i=(null===e||void 0===e?void 0:e.Self)||{},r=i.PathType,o=i.PathSubType;return t=r,(n=o)&&Fu[n]||t&&ju[t]},Sq=new Set(["Type","State","DataSize","KeyColumnNames","DataColumnNames"]),xq=function(e){var t,n=e.data,i=kq(null===n||void 0===n?void 0:n.PathDescription);if(!n)return(0,fs.jsxs)("div",{className:"error",children:["No ",i," data"]});var r,o=null===(t=n.PathDescription)||void 0===t?void 0:t.TableIndex,a=[];for(r in o)Sq.has(r)&&a.push(uw(r,null===o||void 0===o?void 0:o[r]));return(0,fs.jsx)(vs,{title:i,info:a})},Lq=function(e){var t,n,i=null===e||void 0===e||null===(t=e.PathDescription)||void 0===t?void 0:t.PersQueueGroup;if(!i)return[];var r=i.Partitions,o=void 0===r?[]:r,a=i.PQTabletConfig,s=void 0===a?{PartitionConfig:{LifetimeSeconds:0}}:a,u=null===i||void 0===i?void 0:i.PQTabletConfig,l=u.Codecs,c=u.MeteringMode,d=null===i||void 0===i||null===(n=i.PQTabletConfig)||void 0===n?void 0:n.PartitionConfig,h=d.WriteSpeedInBytesPerSecond,f=d.StorageLimitBytes,p=ys(cw,{Partitions:o,PQTabletConfig:s}),v=ys(hw,{StorageLimitBytes:f,WriteSpeedInBytesPerSecond:h}),g=ys(dw,{Codecs:l,MeteringMode:c});return[].concat((0,Lt.Z)(p),(0,Lt.Z)(v),(0,Lt.Z)(g))},Eq=JSON.parse('{"writeLagPopover":"Write lag, maximum among all topic partitions","writeIdleTimePopover":"Write idle time, maximum among all topic partitions"}'),Nq=JSON.parse('{"writeLagPopover":"\u041b\u0430\u0433 \u0437\u0430\u043f\u0438\u0441\u0438, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439 \u0442\u043e\u043f\u0438\u043a\u0430","writeIdleTimePopover":"\u0412\u0440\u0435\u043c\u044f \u0431\u0435\u0437 \u0437\u0430\u043f\u0438\u0441\u0438, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439 \u0442\u043e\u043f\u0438\u043a\u0430"}'),Dq="ydb-diagnostics-overview-topic-stats";na.registerKeyset(Ko.En,Dq,Eq),na.registerKeyset(Ko.Ru,Dq,Nq);var Mq=na.keyset(Dq),Tq=(0,ct.default)("ydb-overview-topic-stats"),Oq=function(e){return[{label:"Store size",value:ra(e.storeSize)},{label:(0,fs.jsx)(QU,{text:"Write idle time",popoverContent:(0,fs.jsx)(dK,{text:Mq("writeIdleTimePopover"),type:"write"})}),value:Vl(e.partitionsIdleTime)},{label:(0,fs.jsx)(QU,{text:"Write lag",popoverContent:(0,fs.jsx)(dK,{text:Mq("writeLagPopover"),type:"write"})}),value:Vl(e.partitionsWriteLag)},{label:"Average write speed",value:(0,fs.jsx)($U,{data:e.writeSpeed,withValue:!1})}]},Iq=function(e){var t=e.writeSpeed;return[{label:"per minute",value:oa(t.perMinute)},{label:"per hour",value:oa(t.perHour)},{label:"per day",value:oa(t.perDay)}]},Aq=function(){var e=vf((function(e){return e.topic})),t=e.error,n=e.loading,i=e.wasLoaded,r=vf(dc);return n&&!i?(0,fs.jsx)("div",{className:Tq(),children:(0,fs.jsx)(Cy,{size:"s"})}):t||!r?(0,fs.jsxs)("div",{className:Tq(),children:[(0,fs.jsx)("div",{className:Tq("title"),children:"Stats"}),(0,fs.jsx)(mv,{error:t})]}):(0,fs.jsxs)("div",{className:Tq(),children:[(0,fs.jsx)("div",{className:Tq("title"),children:"Stats"}),(0,fs.jsx)("div",{className:Tq("info"),children:(0,fs.jsx)(vs,{info:Oq(r),multilineLabels:!0})}),(0,fs.jsx)("div",{className:Tq("bytes-written"),children:(0,fs.jsx)(vs,{info:Iq(r)})})]})},Pq=function(e){var t=e.data,n=kq(null===t||void 0===t?void 0:t.PathDescription),i=vf((function(e){return e.schema})).error;return i?(0,fs.jsx)("div",{className:"error",children:i.statusText}):t?(0,fs.jsxs)("div",{children:[(0,fs.jsx)(vs,{title:n,info:Lq(t)}),(0,fs.jsx)(Aq,{})]}):(0,fs.jsxs)("div",{className:"error",children:["No ",n," data"]})},Rq=function(e,t){var n,i,r;if(!e&&!t)return[];var o=(null===e||void 0===e||null===(n=e.PathDescription)||void 0===n?void 0:n.CdcStreamDescription)||{},a=o.Mode,s=o.Format,u=rw("CreateStep",null===e||void 0===e||null===(i=e.PathDescription)||void 0===i||null===(r=i.Self)||void 0===r?void 0:r.CreateStep),l=ys(fw,{Mode:a,Format:s}),c=Lq(t);return[u].concat((0,Lt.Z)(l),(0,Lt.Z)(c))},Zq=function(e){var t=e.data,n=e.topic,i=kq(null===t||void 0===t?void 0:t.PathDescription),r=vf((function(e){return e.schema})).error;return r?(0,fs.jsx)("div",{className:"error",children:r.statusText}):t&&n?(0,fs.jsxs)("div",{children:[(0,fs.jsx)(vs,{title:i,info:Rq(t,n)}),(0,fs.jsx)(Aq,{})]}):(0,fs.jsxs)("div",{className:"error",children:["No ",i," data"]})},Fq=function(e){return e.SchemaPresetName&&void 0!==e.SchemaPresetId},jq=function(e){var t,n,i,r=null===e||void 0===e?void 0:e.reduce((function(e,t){return e+(Bi(t.Bytes)?Number(t.Bytes):0)}),0),o=null===e||void 0===e?void 0:e.reduce((function(e,t){return e+(Bi(t.Rows)?Number(t.Rows):0)}),0),a=null===e||void 0===e?void 0:e.reduce((function(e,t){return e.add(t.TabletId),e}),new Set);return[{label:"PartCount",value:null!==(t=null===a||void 0===a?void 0:a.size)&&void 0!==t?t:0},{label:"RowCount",value:null!==(n=ha(o))&&void 0!==n?n:0},{label:"DataSize",value:null!==(i=ra(r))&&void 0!==i?i:0}]},Hq=function(e){if(e.Enabled&&e.Enabled.ColumnName&&void 0!==e.Enabled.ExpireAfterSeconds)return{label:"TTL for rows",value:"column: '".concat(e.Enabled.ColumnName,"', expire after: ").concat(Vl(1e3*e.Enabled.ExpireAfterSeconds,1))}};var Bq=function(e,t,n){if(!e)return{};var i,r=e.PathDescription,o=void 0===r?{}:r,a=o.TableStats,s=void 0===a?{}:a,u=o.TabletMetrics,l=void 0===u?{}:u,c=o.Table,d=void 0===c?{}:c,h=d.PartitionConfig,f=void 0===h?{}:h,p=d.TTLSettings,v=o.ColumnTableDescription,g=void 0===v?{}:v,m=s.PartCount,_=s.RowCount,y=s.DataSize,b=s.IndexSize,w=s.LastAccessTime,C=s.LastUpdateTime,k=s.ImmediateTxCompleted,S=s.PlannedTxCompleted,x=s.TxRejectedByOverload,L=s.TxRejectedBySpace,E=s.TxCompleteLagMsec,N=s.InFlightTxCount,D=s.RowUpdates,M=s.RowDeletes,T=s.RowReads,O=s.RangeReads,I=s.RangeReadRows,A=f.FollowerGroups,P=f.FollowerCount,R=f.CrossDataCenterFollowerCount,Z=[];switch(t){case eu.EPathTypeTable:Z=function(e,t){var n,i=e.PartitioningPolicy,r=void 0===i?{}:i,o=e.FollowerGroups,a=e.EnableFilterByKey,s=[],u=r.SizeToSplit&&Number(r.SizeToSplit)>0?"Enabled, split size: ".concat(ra(r.SizeToSplit)):"Disabled",l=null!==(n=r.SplitByLoadSettings)&&void 0!==n&&n.Enabled?"Enabled":"Disabled";if(s.push({label:"Partitioning by size",value:u},{label:"Partitioning by load",value:l},{label:"Min number of partitions",value:r.MinPartitionsCount||0}),r.MaxPartitionsCount&&s.push({label:"Max number of partitions",value:r.MaxPartitionsCount||0}),o&&o.length){var c,d=o[0],h=d.RequireAllDataCenters,f=d.FollowerCountPerDataCenter,p=d.FollowerCount;c=h&&f?"PER_AZ: ".concat(p):"ANY_AZ: ".concat(p),s.push({label:"Read replicas (followers)",value:c})}if(t){var v=Hq(t);v&&s.push(v)}return s.push({label:"Bloom filter",value:a?"Enabled":"Disabled"}),s}(f,p);break;case eu.EPathTypeColumnTable:Z=function(e){var t=[];if(t.push({label:"Standalone",value:String(!Fq(e))}),e.Sharding&&e.Sharding.HashSharding&&t.push({label:"Sharding",value:"hash"}),e.TtlSettings){var n=Hq(null===e||void 0===e?void 0:e.TtlSettings);n&&t.push(n)}return t}(g)}i=t===eu.EPathTypeColumnTable&&Fq(g)?[jq(n)]:[ys(mw,{PartCount:m,RowCount:_,DataSize:y,IndexSize:b}),ys(mw,{LastAccessTime:w,LastUpdateTime:C}),ys(mw,{ImmediateTxCompleted:k,PlannedTxCompleted:S,TxRejectedByOverload:x,TxRejectedBySpace:L,TxCompleteLagMsec:E,InFlightTxCount:N}),ys(mw,{RowUpdates:D,RowDeletes:M,RowReads:T,RangeReads:O,RangeReadRows:I})];var F=ys(pw,l),j=[];return Array.isArray(A)&&A.length>0?j=ys(vw,A[0]):void 0!==P?j.push(gw("FollowerCount",P)):void 0!==R&&j.push(gw("CrossDataCenterFollowerCount",R)),{generalInfo:Z,tableStatsInfo:i,tabletMetricsInfo:F,partitionConfigInfo:j}},zq=JSON.parse('{"tableStats":"Table Stats","tabletMetrics":"Tablet Metrics","partitionConfig":"Partition Config"}'),Wq=JSON.parse('{"tableStats":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b","tabletMetrics":"\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0430\u0431\u043b\u0435\u0442\u043a\u0438","partitionConfig":"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438"}'),Vq="ydb-diagnostics-overview-table-info";na.registerKeyset(Ko.En,Vq,zq),na.registerKeyset(Ko.Ru,Vq,Wq);var Yq=na.keyset(Vq),Uq=(0,ct.default)("ydb-diagnostics-table-info"),Kq=function(t){var n=t.data,i=t.type,r=t.olapStats,o=kq(null===n||void 0===n?void 0:n.PathDescription),a=(0,e.useMemo)((function(){return Bq(n,i,r)}),[n,i,r]),s=a.generalInfo,u=void 0===s?[]:s,l=a.tableStatsInfo,c=void 0===l?[]:l,d=a.tabletMetricsInfo,h=void 0===d?[]:d,f=a.partitionConfigInfo,p=void 0===f?[]:f;return(0,fs.jsxs)("div",{className:Uq(),children:[(0,fs.jsx)(vs,{info:u,title:o,className:Uq("info-block"),renderEmptyState:function(){return(0,fs.jsx)("div",{className:Uq("title"),children:o})}}),(0,fs.jsxs)("div",{className:Uq("row"),children:[(0,fs.jsx)("div",{className:Uq("col"),children:c.map((function(e,t){return(0,fs.jsx)(vs,{info:e,title:0===t?Yq("tableStats"):void 0,className:Uq("info-block"),renderEmptyState:function(){return null}},t)}))}),h.length>0||p.length>0?(0,fs.jsxs)("div",{className:Uq("col"),children:[(0,fs.jsx)(vs,{info:h,title:Yq("tabletMetrics"),className:Uq("info-block"),renderEmptyState:function(){return null}}),(0,fs.jsx)(vs,{info:p,title:Yq("partitionConfig"),className:Uq("info-block"),renderEmptyState:function(){return null}})]}):null]})]})};var qq,Gq,$q,Qq,Xq,Jq=function(t){var n=t.type,i=t.tenantName,r=Q(),o=vf((function(e){return e.schema})),a=o.autorefresh,s=o.currentSchemaPath,u=vf((function(e){return e.overview})),l=u.data,c=u.additionalData,d=u.loading,h=u.wasLoaded,f=u.error,p=vf((function(e){return e.olapStats})),v=p.data,g=(void 0===v?{result:void 0}:v).result,m=p.loading,_=p.wasLoaded,y=$u(n),b=vf((function(e){return pl(e,s,n)}),M),w=d&&!h||m&&!_,C=y&&!b,k=(0,e.useCallback)((function(e){var t=s||i;t&&(r(wl(t)),e||r({type:yl}),y?b&&r(function(e){var t=e.map((function(e){return window.api.getDescribe({path:e},{concurrentId:"getOverviewBatched|".concat(e)})}));return Oo({request:Promise.all(t),actions:ml,dataHandler:function(e){var t=(0,gl.Z)(e);return{data:t[0],additionalData:t.slice(1)}}})}([t].concat((0,Lt.Z)(b)))):r(function(e){var t=e.path;return Oo({request:window.api.getDescribe({path:t},{concurrentId:"getOverview"}),actions:ml,dataHandler:function(e){return{data:e}}})}({path:t})),zu(n)&&Uu(n)&&(e||r({type:nh}),r(oh({path:t}))),tl(n)&&r(uc(s)))}),[i,s,n,y,b,r]);return pf(k,[k],a),w||C?(0,fs.jsx)(Cy,{size:"m"}):f?(0,fs.jsx)(mv,{error:f}):(0,fs.jsx)("div",{children:function(){var e,t,i=(e={},(0,xt.Z)(e,eu.EPathTypeInvalid,void 0),(0,xt.Z)(e,eu.EPathTypeDir,void 0),(0,xt.Z)(e,eu.EPathTypeTable,void 0),(0,xt.Z)(e,eu.EPathTypeSubDomain,void 0),(0,xt.Z)(e,eu.EPathTypeTableIndex,(function(){return(0,fs.jsx)(xq,{data:l})})),(0,xt.Z)(e,eu.EPathTypeExtSubDomain,void 0),(0,xt.Z)(e,eu.EPathTypeColumnStore,void 0),(0,xt.Z)(e,eu.EPathTypeColumnTable,void 0),(0,xt.Z)(e,eu.EPathTypeCdcStream,(function(){return(0,fs.jsx)(Zq,{data:l,topic:null===c||void 0===c?void 0:c[0]})})),(0,xt.Z)(e,eu.EPathTypePersQueueGroup,(function(){return(0,fs.jsx)(Pq,{data:l})})),e);return n&&(null===(t=i[n])||void 0===t?void 0:t.call(i))||(0,fs.jsx)(Kq,{data:l,type:n,olapStats:g})}()})};function eG(){return eG=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},eG.apply(this,arguments)}!function(e){e.UNSPECIFIED="UNSPECIFIED",e.GOOD="GOOD",e.DEGRADED="DEGRADED",e.MAINTENANCE_REQUIRED="MAINTENANCE_REQUIRED",e.EMERGENCY="EMERGENCY"}(qq||(qq={})),function(e){e.UNSPECIFIED="UNSPECIFIED",e.GREY="GREY",e.GREEN="GREEN",e.BLUE="BLUE",e.YELLOW="YELLOW",e.ORANGE="ORANGE",e.RED="RED"}(Gq||(Gq={}));var tG=function(t){return e.createElement("svg",eG({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),$q||($q=e.createElement("path",{d:"M21 12a9 9 0 01-9 9c-2.5 0-5.5-2-7-4",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})),Qq||(Qq=e.createElement("path",{d:"M5 21v-4h4M3 12a9 9 0 019-9c2.5 0 5.5 2 7 4",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})),Xq||(Xq=e.createElement("path",{d:"M19 3v4h-4",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))},nG=n(66589),iG=n.n(nG),rG=(0,ct.default)("issue-tree-item"),oG=function(e){var t=e.status,n=e.message,i=e.type,r=e.onClick;return(0,fs.jsxs)("div",{className:rG(),onClick:r,children:[(0,fs.jsx)("div",{className:rG("field",{status:!0}),children:(0,fs.jsx)(Gf,{mode:"icons",status:t,name:i})}),(0,fs.jsx)("div",{className:rG("field",{message:!0}),children:n})]})},aG=["status","message","type","reasonsItems","level"],sG=(0,ct.default)("issue-tree"),uG=function(t){var n=t.issueTree,i=(0,e.useState)({}),r=(0,dt.Z)(i,2),o=r[0],a=r[1],s=(0,e.useCallback)((function(e){return e.map((function(e){var t=e.id,n=e.status,i=e.message,r=e.type,l=e.reasonsItems,c=e.level,d=rn(e,aG),h="undefined"===typeof o[t]||o[t],f=function(){a((function(e){return Rt(Rt({},e),{},(0,xt.Z)({},t,!h))}))};return(0,fs.jsxs)(ea.TreeView,{name:(0,fs.jsx)(oG,{status:n,message:i,type:r}),collapsed:h,hasArrow:!0,onClick:f,onArrowClick:f,level:c-1,children:[u(iG()(d,["reason"])),s(l||[])]},t)}))}),[n,o]),u=(0,e.useCallback)((function(e){return e?(0,fs.jsx)("div",{className:sG("info-panel"),children:(0,fs.jsx)(hs(),{data:e,search:!1,isExpanded:function(){return!0},className:sG("inspector")})}):null}),[n]);return(0,fs.jsx)("div",{className:sG(),children:(0,fs.jsx)("div",{className:sG("block"),children:s([n])})})},lG=JSON.parse('{"title.healthcheck":"Healthcheck","label.update":"Update","label.show-details":"Show details","status_message.ok":"No issues have been found on this database","no-data":"no healthcheck data"}'),cG=JSON.parse('{"title.healthcheck":"Healthcheck","label.update":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c","label.show-details":"\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438","status_message.ok":"\u0412 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c","no-data":"\u043d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 healthcheck"}'),dG="ydb-diagnostics-healthcheck";na.registerKeyset(Ko.En,dG,lG),na.registerKeyset(Ko.Ru,dG,cG);var hG=na.keyset(dG),fG=(0,ct.default)("healthcheck"),pG=function(e){var t=e.loading,n=e.onUpdate,i=e.issueTree;if(!i)return null;return(0,fs.jsxs)("div",{className:fG("details"),children:[(0,fs.jsxs)("div",{className:fG("details-header"),children:[(0,fs.jsx)("h3",{className:fG("details-header-title"),children:hG("title.healthcheck")}),(0,fs.jsx)("div",{className:fG("details-header-update"),children:(0,fs.jsx)(zr,{size:"s",onClick:n,loading:t,view:"flat-secondary",children:(0,fs.jsx)(Mr,{data:tG,height:20,width:20})})})]}),(0,fs.jsx)("div",{className:fG("issues-wrapper"),children:(0,fs.jsx)(uG,{issueTree:i})})]})},vG=pt("text"),gG=function(e,t){var n=e.variant,i=void 0===n?"body-1":n,r=e.ellipsis,o=e.whiteSpace,a=e.wordBreak;return vG({variant:i,ellipsis:r,ws:o,wb:a},t)},mG=pt("color-text"),_G=function(e,t){var n=e.color;return mG({color:n},t)},yG=e.forwardRef((function(t,n){var i=t.as,r=t.children,o=t.variant,a=t.className,s=t.ellipsis,u=t.color,l=t.whiteSpace,c=t.wordBreak,d=(0,Ir.__rest)(t,["as","children","variant","className","ellipsis","color","whiteSpace","wordBreak"]),h=i||"span";return e.createElement(h,Object.assign({ref:n,className:gG({variant:o,ellipsis:s,whiteSpace:l,wordBreak:c},u?_G({color:u},a):a)},d),r)}));yG.displayName="Text";var bG=(0,ct.default)("healthcheck"),wG=function(e){var t=e.data,n=e.onShowMore;return t?(0,fs.jsxs)("div",{className:bG("issue-preview"),children:[(0,fs.jsx)(Gf,{mode:"icons",status:t.status,name:t.type}),(0,fs.jsx)(yG,{as:"div",color:"secondary",variant:"body-2",children:t.message}),(0,fs.jsx)(Mf,{onClick:function(){return null===n||void 0===n?void 0:n(t.id)},children:hG("label.show-details")})]}):null},CG=(0,ct.default)("healthcheck"),kG=function(e){var t=e.selfCheckResult,n=e.issuesTrees,i=e.loading,r=e.onShowMore,o=e.onUpdate,a=t===qq.GOOD;if(!n)return null;return(0,fs.jsxs)("div",{className:CG("preview"),children:[function(){var e=t.toLowerCase();return(0,fs.jsxs)("div",{className:CG("status-wrapper"),children:[(0,fs.jsx)("div",{className:CG("preview-title"),children:hG("title.healthcheck")}),(0,fs.jsx)("div",{className:CG("self-check-status-indicator",(0,xt.Z)({},e,!0)),children:t}),(0,fs.jsx)(zr,{size:"s",onClick:o,loading:i,view:"flat-secondary",children:(0,fs.jsx)(Mr,{data:tG,width:20,height:20})})]})}(),(0,fs.jsx)("div",{className:CG("preview-content"),children:a?hG("status_message.ok"):null===n||void 0===n?void 0:n.map((function(e){return(0,fs.jsx)(wG,{data:e,onShowMore:r},e.id)}))})]})},SG=(0,ct.default)("healthcheck"),xG=function(t){var n=t.tenant,i=t.preview,r=t.fetchData,o=void 0===r||r,a=t.showMoreHandler,s=t.expandedIssueId,u=Q(),l=vf((function(e){return e.healthcheckInfo})),c=l.data,d=l.loading,h=l.wasLoaded,f=l.error,p=(null===c||void 0===c?void 0:c.self_check_result)||qq.UNSPECIFIED,v=vf(Zd),g=vf((function(e){return jd(e,s)})),m=vf((function(e){return e.schema})).autorefresh,_=(0,e.useCallback)((function(){!(arguments.length>0&&void 0!==arguments[0])||arguments[0]||u(Bd()),u(function(e){return Oo({request:window.api.getHealthcheckInfo(e),actions:Dd})}(n))}),[u,n]);pf((function(e){o&&_(e)}),[o,_],m);return(0,fs.jsx)("div",{className:SG({expanded:!i}),children:f?f.statusText:d&&!h?(0,fs.jsx)("div",{className:SG("loader"),children:(0,fs.jsx)(yy,{size:"m"})}):c&&c.self_check_result?i?(0,fs.jsx)(kG,{issuesTrees:v,selfCheckResult:p,loading:d,onShowMore:a,onUpdate:_}):(0,fs.jsx)(pG,{issueTree:g,loading:d,onUpdate:_}):(0,fs.jsx)("div",{className:"error",children:hG("no-data")})})},LG=(0,ct.default)("ydb-pool-usage"),EG=function(e){var t="green";return e>60&&e<=80?t="yellow":e>80&&(t="red"),t},NG=function(e){var t=e.data,n=void 0===t?{}:t,i=n.Threads,r=n.Name,o=void 0===r?"Unknown":r,a=n.Usage,s=void 0===a?0:a,u=s&&i,l=Math.floor(100*s),c=l>100?100:l;return(0,fs.jsxs)("div",{className:LG(),children:[(0,fs.jsxs)("div",{className:LG("info"),children:[(0,fs.jsx)("div",{className:LG("pool-name"),children:o}),u&&(0,fs.jsxs)("div",{className:LG("value"),children:[(0,fs.jsxs)("div",{className:LG("percents"),children:[l<1?"<1":l,"%"]}),(0,fs.jsxs)("div",{className:LG("threads"),children:["(\xd7",i,")"]})]})]}),(0,fs.jsx)("div",{className:LG("visual"),children:(0,fs.jsx)("div",{className:LG("usage-line",{type:EG(c)}),style:{width:"".concat(c,"%")}})})]})},DG=(0,ct.default)("tenant-overview"),MG=function(e){if(e){var t=e.Name;return(0,fs.jsx)("div",{className:DG("tenant-name-wrapper"),children:(0,fs.jsx)(Gf,{status:e.State,name:t,withLeftTrim:!0,hasClipboardButton:!0,clipboardButtonAlwaysVisible:!0})})}return(0,fs.jsx)("div",{children:"no tenant data"})},TG=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).renderLoader=function(){return(0,fs.jsx)("div",{className:DG("loader"),children:(0,fs.jsx)(yy,{size:"m"})})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.tenantName,n=e.autorefresh,i=e.getTenantInfo;i({path:t}),this.autofetcher=new ff,n&&(this.autofetcher.start(),this.autofetcher.fetch((function(){return i({path:t})})))}},{key:"componentDidUpdate",value:function(e){var t=this,n=this.props,i=n.autorefresh,r=n.tenantName,o=n.getTenantInfo,a=function(){t.autofetcher.stop(),t.autofetcher.start(),t.autofetcher.fetch((function(){return o({path:r})}))};e.tenantName!==this.props.tenantName&&(o({path:r}),i&&a()),i&&!e.autorefresh&&(o({path:r}),a()),!i&&e.autorefresh&&this.autofetcher.stop()}},{key:"componentWillUnmount",value:function(){this.autofetcher.stop()}},{key:"render",value:function(){var e,t=this.props,n=t.tenant,i=t.loading,r=n.Metrics,o=void 0===r?{}:r,a=n.PoolStats,s=n.StateStats,u=void 0===s?[]:s,l=n.MemoryUsed,c=n.Name,d=n.CoresUsed,h=n.StorageGroups,f=n.StorageAllocatedSize,p=n.Type,v=n.SystemTablets,g=(e=p)&&Hu[e],m=null!==l&&void 0!==l?l:o.Memory,_=m&&ji(m)||"no data",y=o.Storage&&ji(o.Storage)||"no data",b=null!==h&&void 0!==h?h:"no data",w=f&&ji(f)||"no data",C=o.Storage&&f?"".concat((100*o.Storage/f).toFixed(2),"%"):"no data",k=void 0!==d?1e6*Number(d):o.CPU,S=[{label:"Type",value:p},{label:"Memory",value:_},{label:"CPU",value:fa(k)},{label:"Tablet storage",value:y},{label:"Storage groups",value:b},{label:"Blob storage",value:w},{label:"Storage efficiency",value:C}],x=u.map((function(e){return{label:qn[e.VolatileState],value:e.Count}}));return i?this.renderLoader():(0,fs.jsxs)("div",{className:DG(),children:[(0,fs.jsx)("div",{className:DG("top-label"),children:g}),(0,fs.jsxs)("div",{className:DG("top"),children:[MG(n),this.props.additionalTenantInfo&&this.props.additionalTenantInfo(this.props.tenant.Name,this.props.tenant.Type)]}),(0,fs.jsx)("div",{className:DG("system-tablets"),children:v&&v.map((function(e,t){return(0,fs.jsx)(By,{tablet:e,tenantName:c},t)}))}),(0,fs.jsxs)("div",{className:DG("common-info"),children:[(0,fs.jsxs)("div",{children:[(0,fs.jsx)("div",{className:DG("section-title"),children:"Pools"}),a?(0,fs.jsx)("div",{className:DG("section",{pools:!0}),children:a.map((function(e,t){return(0,fs.jsx)(NG,{data:e},t)}))}):(0,fs.jsx)("div",{className:"error",children:"no pools data"})]}),(0,fs.jsx)(vs,{title:"Metrics",className:DG("section",{metrics:!0}),info:S}),(0,fs.jsx)("div",{className:DG("section"),children:(0,fs.jsx)(vs,{info:x,title:"Tablets"})})]})]})}}]),n}(e.Component);var OG={getTenantInfo:function(e){var t=e.path;return Oo({request:window.api.getTenantInfo({path:t}),actions:Pa,dataHandler:function(e){var t;return null===(t=e.TenantInfo)||void 0===t?void 0:t[0]}})}},IG=U((function(e){var t=e.tenant,n=t.tenant,i=void 0===n?{}:n,r=t.loading,o=t.error;return{tenant:i,loading:r,status:(void 0===o?{}:o).status,autorefresh:e.schema.autorefresh}}),OG)(TG),AG=(0,ct.default)("kv-detailed-overview");var PG,RG=function(t){var n=(0,e.useState)(!1),i=(0,dt.Z)(n,2),r=i[0],o=i[1],a=(0,e.useState)(),s=(0,dt.Z)(a,2),u=s[0],l=s[1],c=te((function(e){return e.schema})).currentSchemaPath,d=function(e){l(e),o(!0)},h=function(){o(!1)};return(0,fs.jsxs)(e.Fragment,{children:[function(){var e=t.type,n=t.tenantName,i=t.additionalTenantInfo,r=n===c;return(0,fs.jsx)("div",{className:AG(),children:r?(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)("div",{className:AG("section"),children:(0,fs.jsx)(IG,{tenantName:n,additionalTenantInfo:i})}),(0,fs.jsx)("div",{className:AG("section"),children:(0,fs.jsx)(xG,{tenant:n,preview:!0,showMoreHandler:d})})]}):(0,fs.jsx)(Jq,{type:e,tenantName:n})})}(),(0,fs.jsxs)(jw,{open:r,onClose:h,className:AG("modal"),children:[(0,fs.jsx)(xG,{tenant:t.tenantName,fetchData:!1,expandedIssueId:u}),(0,fs.jsx)(zr,{className:AG("close-modal-button"),onClick:h,view:"flat-secondary",title:"Close",children:(0,fs.jsx)(xv,{name:"close",viewBox:"0 0 16 16 ",height:20,width:20})})]})]})},ZG={id:er.overview,title:"Info"},FG={id:er.topQueries,title:"Top queries"},jG={id:er.topShards,title:"Top shards"},HG={id:er.nodes,title:"Nodes"},BG={id:er.tablets,title:"Tablets"},zG={id:er.storage,title:"Storage"},WG={id:er.network,title:"Network"},VG={id:er.describe,title:"Describe"},YG={id:er.hotKeys,title:"Hot keys"},UG={id:er.graph,title:"Graph"},KG={id:er.consumers,title:"Consumers"},qG={id:er.partitions,title:"Partitions"},GG=[ZG,FG,jG,HG,BG,zG,WG,VG],$G=[ZG,jG,HG,UG,BG,YG,VG],QG=[ZG,jG,HG,VG],XG=[ZG,KG,qG,HG,VG],JG=[ZG,KG,qG,HG,VG],e$=(PG={},(0,xt.Z)(PG,eu.EPathTypeInvalid,void 0),(0,xt.Z)(PG,eu.EPathTypeSubDomain,GG),(0,xt.Z)(PG,eu.EPathTypeExtSubDomain,GG),(0,xt.Z)(PG,eu.EPathTypeColumnStore,GG),(0,xt.Z)(PG,eu.EPathTypeTable,$G),(0,xt.Z)(PG,eu.EPathTypeColumnTable,$G),(0,xt.Z)(PG,eu.EPathTypeDir,QG),(0,xt.Z)(PG,eu.EPathTypeTableIndex,QG),(0,xt.Z)(PG,eu.EPathTypeCdcStream,XG),(0,xt.Z)(PG,eu.EPathTypePersQueueGroup,JG),PG),t$=function(e){return e&&e$[e]||QG},n$=(0,ct.default)("kv-tenant-diagnostics");var i$=function(t){var n=Q(),i=te((function(e){return e.schema})),r=i.currentSchemaPath,o=i.autorefresh,a=i.wasLoaded,s=vf((function(e){return e.tenant})).diagnosticsTab,u=void 0===s?er.overview:s,l=ut(),c=Ft().parse(l.search,{ignoreQueryPrefix:!0}),d=c.name,h=qu(t.type)?r:d,f=qu(t.type)||r===d,p=(0,e.useMemo)((function(){return f?GG:t$(t.type)}),[t.type,f]),v=function(e){n(function(e){return{type:Fa,data:e}}(e))},g=(0,e.useMemo)((function(){if(a){if(p.find((function(e){return e.id===u})))return u;var e=p[0].id;return v(e),e}}),[p,u,a]),m=function(e){n(e?{type:al}:hl())};return a?(0,fs.jsxs)("div",{className:n$(),children:[(0,fs.jsx)("div",{className:n$("header-wrapper"),children:(0,fs.jsxs)("div",{className:n$("tabs"),children:[(0,fs.jsx)(rf,{size:"l",items:p,activeTab:g,wrapTo:function(e,t){var n=e.id,i=Ph(Zh.tenant,void 0,Rt(Rt({},c),{},(0,xt.Z)({},vv.diagnosticsTab,n)));return(0,fs.jsx)(Cf,{to:i,className:n$("tab"),children:t},n)},allowNotSelected:!0}),(0,fs.jsx)(kY,{checked:o,onUpdate:m,content:"Autorefresh"})]})}),(0,fs.jsx)("div",{className:n$("page-wrapper"),children:function(){var e=t.type,n=h;switch(u){case er.overview:return(0,fs.jsx)(RG,{type:e,tenantName:n,additionalTenantInfo:t.additionalTenantInfo});case er.topQueries:return(0,fs.jsx)(JK,{path:n,type:e});case er.topShards:return(0,fs.jsx)(Cq,{tenantPath:n,type:e});case er.nodes:return(0,fs.jsx)(fg,{path:r,type:e,additionalNodesInfo:t.additionalNodesInfo});case er.tablets:return(0,fs.jsx)(eU,{path:r});case er.storage:return(0,fs.jsx)(cy,{tenant:n});case er.network:return(0,fs.jsx)(gU,{path:n});case er.describe:return(0,fs.jsx)(iU,{tenant:n,type:e});case er.hotKeys:return(0,fs.jsx)(uU,{type:e});case er.graph:return(0,fs.jsx)(zY,{path:r});case er.consumers:return(0,fs.jsx)(WK,{path:r,type:e});case er.partitions:return(0,fs.jsx)(kK,{path:r});default:return(0,fs.jsx)("div",{children:"No data..."})}}()})]}):(0,fs.jsx)(Cy,{size:"l"})},r$=(0,ct.default)("object-general");var o$=function(e){var t=ut(),n=Zp(),i=gf(_i),r=(0,dt.Z)(i,1)[0],o=Ah(t),a=o.name,s=o.tenantPage,u=void 0===s?r:s,l=function(){var t=e.type,i=e.additionalTenantInfo,r=e.additionalNodesInfo;return u===Xi.query?(0,fs.jsx)(wY,{path:a,theme:n,type:t}):(0,fs.jsx)(i$,{type:t,additionalTenantInfo:i,additionalNodesInfo:r})};return a?(0,fs.jsx)("div",{className:r$(),children:l()}):null},a$=(0,ct.default)("tenant-page"),s$={triggerExpand:!1,triggerCollapse:!1,collapsed:Boolean(localStorage.getItem(ci))};var u$=function(t){var n,i=(0,e.useReducer)(kw(ci),s$),r=(0,dt.Z)(i,2),o=r[0],a=r[1],s=te((function(e){return e.schema})),u=s.currentSchemaPath,l=s.currentSchema,c=void 0===l?{}:l,d=te((function(e){var t,n;return(null===(t=e.schema.data[u])||void 0===t||null===(n=t.PathDescription)||void 0===n?void 0:n.Self)||{}})),h=d.PathType,f=d.PathSubType,p=(null===(n=c.PathDescription)||void 0===n?void 0:n.Self)||{},v=p.PathType,g=p.PathSubType,m=vf((function(e){return e.schema})).error,_=(void 0===m?{}:m).status,y=void 0===_?200:_,b=Q(),w=ut(),C=Ft().parse(w.search,{ignoreQueryPrefix:!0}).name;(0,e.useEffect)((function(){b(cl({path:C})),b(pd({path:C}))}),[C,b]),(0,e.useEffect)((function(){b(cl({path:u})),b(pd({path:u}))}),[u,b]),(0,e.useEffect)((function(){b(hl())}),[u,C,b]),(0,e.useEffect)((function(){C&&b(lh("tenant",{tenantName:C}))}),[C,b]);var k=403===y;return(0,fs.jsx)("div",{className:a$(),children:k?(0,fs.jsx)(Mv,{}):(0,fs.jsxs)(Mb,{defaultSizePaneKey:li,defaultSizes:[25,75],triggerCollapse:o.triggerCollapse,triggerExpand:o.triggerExpand,minSize:[36,200],onSplitStartDragAdditional:function(){a(nw.clear)},children:[(0,fs.jsx)(Nw,{type:h||v,subType:f||g,onCollapseSummary:function(){a(nw.triggerCollapse)},onExpandSummary:function(){a(nw.triggerExpand)},isCollapsed:o.collapsed,additionalTenantInfo:t.additionalTenantInfo}),(0,fs.jsx)(o$,{type:h||v,additionalTenantInfo:t.additionalTenantInfo,additionalNodesInfo:t.additionalNodesInfo})]})})},l$=Au([function(e){var t,n,i;return null===(t=e.node)||void 0===t||null===(n=t.data)||void 0===n||null===(i=n.SystemStateInfo)||void 0===i?void 0:i[0].NodeId},function(e){var t;return null===(t=e.node)||void 0===t?void 0:t.nodeStructure}],(function(e,t){var n=null===t||void 0===t?void 0:t.StoragePools,i={};null===n||void 0===n||n.forEach((function(t){var n=t.Groups;null===n||void 0===n||n.forEach((function(n){var r,o=null===(r=n.VDisks)||void 0===r?void 0:r.filter((function(t){return t.NodeId===e}));null===o||void 0===o||o.forEach((function(e){var n,r=sa(e.VDiskId),o=null===(n=e.PDisk)||void 0===n?void 0:n.PDiskId;i[String(o)]||(i[String(o)]=Rt({vDisks:{}},e.PDisk)),i[String(o)].vDisks[r]=Rt(Rt({},e),{},{StoragePoolName:t.Name})}))}))}));var r=Object.keys(i).reduce((function(e,t){var n=i[t].vDisks,r=Object.keys(n).reduce((function(e,t,i){return e.push(Rt(Rt({},n[t]),{},{id:t,order:i})),e}),[]);return e[t]=Rt(Rt({},i[t]),{},{vDisks:r}),e}),{});return r})),c$=(0,ct.default)("kv-node-structure");function d$(t){var n=t.AllocatedSize,i=t.DiskSpace,r=t.FrontQueues,o=t.Guid,a=t.Replicated,s=t.VDiskState,u=t.VDiskId,l=t.VDiskSlotId,c=t.Kind,d=t.SatisfactionRank,h=t.AvailableSize,f=t.HasUnreadableBlobs,p=t.IncarnationGuid,v=t.InstanceGuid,g=t.StoragePoolName,m=t.ReadThroughput,_=t.WriteThroughput,y=[];return b$(l)&&y.push({label:"VDisk Slot Id",value:l}),b$(o)&&y.push({label:"GUID",value:o}),b$(c)&&y.push({label:"Kind",value:c}),b$(s)&&y.push({label:"VDisk State",value:s}),b$(i)&&y.push({label:"Disk Space",value:(0,fs.jsx)(Gf,{status:i})}),b$(null===d||void 0===d?void 0:d.FreshRank.Flag)&&y.push({label:"Fresh Rank Satisfaction",value:(0,fs.jsx)(Gf,{status:null===d||void 0===d?void 0:d.FreshRank.Flag})}),b$(null===d||void 0===d?void 0:d.LevelRank.Flag)&&y.push({label:"Level Rank Satisfaction",value:(0,fs.jsx)(Gf,{status:null===d||void 0===d?void 0:d.LevelRank.Flag})}),y.push({label:"Replicated",value:a?"Yes":"No"}),y.push({label:"Allocated Size",value:ji(n)}),y.push({label:"Available Size",value:ji(h)}),Number(n)>=0&&Number(h)>=0&&y.push({label:"Size",value:(0,fs.jsx)(Qv,{value:n,capacity:Number(n)+Number(h),formatValues:da,colorizeProgress:!0})}),y.push({label:"Has Unreadable Blobs",value:f?"Yes":"No"}),b$(p)&&y.push({label:"Incarnation GUID",value:p}),b$(v)&&y.push({label:"Instance GUID",value:v}),b$(r)&&y.push({label:"Front Queues",value:(0,fs.jsx)(Gf,{status:r})}),b$(g)&&y.push({label:"Storage Pool Name",value:g}),y.push({label:"Read Throughput",value:Fi(m)}),y.push({label:"Write Throughput",value:Fi(_)}),(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsxs)("div",{className:c$("row"),children:[(0,fs.jsx)("span",{className:c$("title"),children:"VDisk "}),(0,fs.jsx)(Gf,{status:"OK"===s?"green":"red",name:sa(u)})]}),(0,fs.jsx)("div",{className:c$("column"),children:(0,fs.jsx)(vs,{className:c$("section"),info:y})})]})}var h$=(0,ct.default)("kv-node-structure");function f$(e){var t=e.label,n=e.value,i=e.className;return(0,fs.jsxs)("span",{className:h$("pdisk-title-item",i),children:[t&&(0,fs.jsxs)("span",{className:h$("pdisk-title-item-label"),children:[t,":"]}),(0,fs.jsx)("span",{className:h$("pdisk-title-item-value"),children:n})]})}var p$,v$=(0,ct.default)("kv-node-structure");!function(e){e.slotId="VDiskSlotId",e.VDiskState="VDiskState",e.Size="Size",e.Info="Info"}(p$||(p$={}));var g$={VDiskSlotId:"Slot id",VDiskState:"Status",Size:"Size",Info:""};function m$(e){var t=e.pDiskId,n=e.selectedVdiskId,i=e.nodeHref;return[{name:p$.slotId,header:g$[p$.slotId],width:100,render:function(e){var r=e.value,o=e.row,a="";return i&&void 0!==r&&(a+=i+"actors/vdisks/vdisk"+Hi(t)+"_"+Hi(r)),(0,fs.jsxs)("div",{className:v$("vdisk-id",{selected:o.id===n}),children:[(0,fs.jsx)("span",{children:r}),a&&(0,fs.jsx)(zr,{size:"s",className:v$("external-button",{hidden:!0}),href:a,target:"_blank",children:(0,fs.jsx)(xv,{name:"external"})})]})},align:zn.LEFT},{name:p$.VDiskState,header:g$[p$.VDiskState],width:70,render:function(e){var t=e.value;return(0,fs.jsx)(Gf,{status:"OK"===t?"green":"red"})},sortAccessor:function(e){return"OK"===e[p$.VDiskState]?1:0},align:zn.CENTER},{name:p$.Size,header:g$[p$.Size],width:100,render:function(e){var t=e.row;return(0,fs.jsx)(Qv,{value:t.AllocatedSize,capacity:Number(t.AllocatedSize)+Number(t.AvailableSize),formatValues:da,colorizeProgress:!0})},sortAccessor:function(e){return Number(e.AllocatedSize)},align:zn.CENTER},{name:p$.Info,header:g$[p$.Info],width:70,render:function(e){var t=e.row;return(0,fs.jsx)(qv,{placement:["right"],content:(0,fs.jsx)(d$,Rt({},t)),contentClassName:v$("vdisk-details"),children:(0,fs.jsx)(zr,{view:"flat-secondary",className:v$("vdisk-details-button",{selected:t.id===n}),children:(0,fs.jsx)(xv,{name:"information",viewBox:"0 0 512 512",height:16,width:16})})})},sortable:!1}]}function _$(t){var n,i,r=(0,e.useState)(null!==(n=t.unfolded)&&void 0!==n&&n),o=(0,dt.Z)(r,2),a=o[0],s=o[1],u=null!==(i=t.data)&&void 0!==i?i:{},l=function(){var e=t.selectedVdiskId,n=t.data,i=t.nodeHref,r=n.vDisks;return(0,fs.jsx)(zn,{theme:"yandex-cloud",data:r,columns:m$({nodeHref:i,pDiskId:n.PDiskId,selectedVdiskId:e}),settings:Rt(Rt({},fi),{},{dynamicRender:!1}),rowClassName:function(t){return t.id===e?v$("selected-vdisk"):""}})};return(0,fs.jsxs)("div",{className:v$("pdisk"),id:t.id,children:[(0,fs.jsxs)("div",{className:v$("pdisk-header"),children:[(0,fs.jsxs)("div",{className:v$("pdisk-title-wrapper"),children:[(0,fs.jsx)(Gf,{status:u.Device}),(0,fs.jsx)(f$,{label:"PDiskID",value:u.PDiskId,className:v$("pdisk-title-id")}),(0,fs.jsx)(f$,{value:yg(u),className:v$("pdisk-title-type")}),(0,fs.jsx)(Qv,{value:u.TotalSize-u.AvailableSize,capacity:u.TotalSize,formatValues:da,colorizeProgress:!0,className:v$("pdisk-title-size")}),(0,fs.jsx)(f$,{label:"VDisks",value:u.vDisks.length})]}),(0,fs.jsx)(zr,{onClick:a?function(){s(!1)}:function(){s(!0)},view:"flat-secondary",children:(0,fs.jsx)(TC,{direction:a?"top":"bottom"})})]}),a&&function(){if(an().isEmpty(u))return(0,fs.jsx)("div",{children:"No information about PDisk"});var e=t.nodeHref,n=u.TotalSize,i=u.AvailableSize,r=u.Device,o=u.Guid,a=u.PDiskId,s=u.Path,c=u.Realtime,d=u.State,h=u.Category,f=u.SerialNumber,p="";e&&(p+=e+"actors/pdisks/pdisk"+Hi(a));var v=[{label:"PDisk Id",value:(0,fs.jsxs)("div",{className:v$("pdisk-id"),children:[a,p&&(0,fs.jsx)(zr,{size:"s",className:v$("external-button"),href:p,target:"_blank",view:"flat-secondary",children:(0,fs.jsx)(xv,{name:"external"})})]})}];return b$(s)&&v.push({label:"Path",value:s}),b$(o)&&v.push({label:"GUID",value:o}),b$(h)&&(v.push({label:"Category",value:h}),v.push({label:"Type",value:yg(u)})),v.push({label:"Allocated Size",value:ji(n-i)}),v.push({label:"Available Size",value:ji(i)}),Number(n)>=0&&Number(i)>=0&&v.push({label:"Size",value:(0,fs.jsx)(Qv,{value:n-i,capacity:n,formatValues:da,colorizeProgress:!0,className:v$("size")})}),b$(d)&&v.push({label:"State",value:d}),b$(r)&&v.push({label:"Device",value:(0,fs.jsx)(Gf,{status:r})}),b$(c)&&v.push({label:"Realtime",value:(0,fs.jsx)(Gf,{status:c})}),b$(f)&&v.push({label:"SerialNumber",value:f}),(0,fs.jsxs)("div",{children:[(0,fs.jsx)(vs,{className:v$("pdisk-details"),info:v}),(0,fs.jsxs)("div",{className:v$("vdisks-container"),children:[(0,fs.jsx)("div",{className:v$("vdisks-header"),children:"VDisks"}),l()]})]})}()]})}var y$=(0,ct.default)("kv-node-structure");function b$(e){return null!==e&&void 0!==e}function w$(e){var t=e.type,n=e.id;return"".concat(t,"-").concat(n)}var C$=new ff;var k$=function(t){var n=t.nodeId,i=t.className,r=t.additionalNodesInfo,o=Q(),a=vf(l$),s=vf((function(e){return e.node})),u=s.loadingStructure,l=s.wasLoadedStructure,c=vf((function(e){var t,n,i;return null===(t=e.node)||void 0===t||null===(n=t.data)||void 0===n||null===(i=n.SystemStateInfo)||void 0===i?void 0:i[0]})),d=(0,e.useMemo)((function(){return null!==r&&void 0!==r&&r.getNodeRef?r.getNodeRef(c):void 0}),[c,r]),h=tn.parse(window.location.href,!0).query,f=h.pdiskId,p=h.vdiskId,v=(0,e.useRef)(null),g=v.current,m=(0,e.useRef)(!1),_=(0,e.useRef)(!1);return(0,e.useEffect)((function(){return function(){g&&g.scrollTo({behavior:"smooth",top:0})}}),[]),(0,e.useEffect)((function(){return o(ss(n)),C$.start(),C$.fetch((function(){return o(ss(n))})),function(){_.current=!1,m.current=!1,C$.stop()}}),[n,o]),(0,e.useEffect)((function(){!an().isEmpty(a)&&g&&(m.current=!0)}),[a]),(0,e.useEffect)((function(){if(m.current&&!_.current&&g){var e=document.getElementById(w$({type:"pdisk",id:f})),t=0;if(p){var n,i=null===(n=a[f])||void 0===n?void 0:n.vDisks,r=null===i||void 0===i?void 0:i.find((function(e){return e.id===p})),o=r?document.querySelector(".data-table"):void 0,s=(null===r||void 0===r?void 0:r.order)||0;o&&(t+=o.offsetTop+40*s)}e&&(g.scrollTo({behavior:"smooth",top:t||e.offsetTop}),_.current=!0)}}),[a,f,p]),(0,fs.jsx)("div",{className:y$(),ref:v,children:(0,fs.jsx)("div",{className:i,children:u&&!l?(0,fs.jsx)(Cy,{size:"m"}):function(){var e=Object.keys(a);return e.length>0?e.map((function(e){return(0,fs.jsx)(_$,{data:a[e],id:w$({type:"pdisk",id:e}),unfolded:f===e,selectedVdiskId:p,nodeHref:d},e)})):"There is no information about node structure."}()})})},S$=(0,ct.default)("basic-node-viewer"),x$=function(e){var t=e.node,n=e.additionalNodesInfo,i=e.className,r=null!==n&&void 0!==n&&n.getNodeRef?n.getNodeRef(t)+"internal":void 0;return(0,fs.jsx)("div",{className:S$(null,i),children:t?(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)("div",{className:S$("title"),children:"Node"}),(0,fs.jsx)(Gf,{status:t.SystemState,name:t.Host}),r&&(0,fs.jsx)("a",{rel:"noopener noreferrer",className:S$("link",{external:!0}),href:r,target:"_blank",children:(0,fs.jsx)(xv,{name:"external"})}),(0,fs.jsxs)("div",{className:S$("id"),children:[(0,fs.jsx)("label",{className:S$("label"),children:"NodeID"}),(0,fs.jsx)("label",{children:t.NodeId})]}),t.DataCenter&&(0,fs.jsx)(jy,{tags:[t.DataCenter]}),t.Roles&&(0,fs.jsx)(jy,{tags:t.Roles,tagsType:"blue"})]}):(0,fs.jsx)("div",{className:"error",children:"no data"})})},L$=(0,ct.default)("full-node-viewer"),E$=function(e){var t,n,i,r=e.node,o=e.className,a=null===r||void 0===r||null===(t=r.Endpoints)||void 0===t?void 0:t.map((function(e){return{label:e.Name,value:e.Address}})),s=[{label:"Version",value:null===r||void 0===r?void 0:r.Version},{label:"Uptime",value:ga(null===r||void 0===r?void 0:r.StartTime)},{label:"DC",value:null===r||void 0===r?void 0:r.DataCenterDescription},{label:"Rack",value:null===r||void 0===r?void 0:r.Rack}],u=null===r||void 0===r||null===(n=r.LoadAverage)||void 0===n?void 0:n.map((function(e,t){return{label:Qn[t],value:(0,fs.jsx)(Qv,{value:e,percents:!0,colorizeProgress:!0})}}));return(0,fs.jsx)("div",{className:"".concat(L$()," ").concat(o),children:r?(0,fs.jsxs)("div",{className:L$("common-info"),children:[(0,fs.jsxs)("div",{children:[(0,fs.jsx)("div",{className:L$("section-title"),children:"Pools"}),(0,fs.jsx)("div",{className:L$("section",{pools:!0}),children:null===r||void 0===r||null===(i=r.PoolStats)||void 0===i?void 0:i.map((function(e,t){return(0,fs.jsx)(NG,{data:e},t)}))})]}),a&&a.length&&(0,fs.jsx)(vs,{title:"Endpoints",className:L$("section"),info:a}),(0,fs.jsx)(vs,{title:"Common info",className:L$("section"),info:s}),(0,fs.jsx)(vs,{title:"Load average",className:L$("section",{average:!0}),info:u})]}):(0,fs.jsx)("div",{className:"error",children:"no data"})})},N$=(0,ct.default)("node"),D$="Storage",M$=new ff;var T$=function(t){var n,i,r=Q(),o=ut(),a=vf((function(e){return e.node})),s=a.loading,u=a.wasLoaded,l=a.error,c=a.data,d=null===c||void 0===c||null===(n=c.SystemStateInfo)||void 0===n?void 0:n[0],h=(null!==(i=lt(Zh.node))&&void 0!==i?i:Object.create(null)).params,f=h.id,p=h.activeTab,v=Ah(o).tenantName,g=e.useMemo((function(){var e=an().find(null===d||void 0===d?void 0:d.Roles,(function(e){return e===D$})),t=p;return e||p!==Xv||(t=eg),{activeTabVerified:t,nodeTabs:(e?ng:ng.filter((function(e){return e.id!==Xv}))).map((function(e){return Rt(Rt({},e),{},{title:e.name})}))}}),[p,d]),m=g.activeTabVerified,_=g.nodeTabs;return e.useEffect((function(){var e,t=(null===d||void 0===d||null===(e=d.Tenants)||void 0===e?void 0:e[0])||(null===v||void 0===v?void 0:v.toString());r(lh("node",{clusterTab:Xy.nodes,tenantName:t,nodeId:f}))}),[r,d,f,v]),e.useEffect((function(){var e=function(){return r(as(f))};return e(),M$.start(),M$.fetch((function(){return e()})),function(){M$.stop(),r({type:rs})}}),[r,f]),s&&!u?(0,fs.jsx)(Cy,{size:"l"}):l?(0,fs.jsx)("div",{children:l.statusText}):d?(0,fs.jsxs)("div",{className:N$(null,t.className),children:[(0,fs.jsx)(x$,{node:d,additionalNodesInfo:t.additionalNodesInfo,className:N$("header")}),(0,fs.jsx)("div",{className:N$("tabs"),children:(0,fs.jsx)(rf,{size:"l",items:_,activeTab:m,wrapTo:function(e,t){var n=e.id;return(0,fs.jsx)(Cf,{to:Ph(Zh.node,{id:f,activeTab:n}),className:N$("tab"),children:t},n)},allowNotSelected:!0})}),(0,fs.jsx)("div",{className:N$("content"),children:function(){var e=t.additionalNodesInfo;switch(p){case Xv:return(0,fs.jsx)("div",{className:N$("storage"),children:(0,fs.jsx)(cy,{nodeId:f})});case Jv:return(0,fs.jsx)(eU,{nodeId:f,className:N$("node-page-wrapper")});case eg:return(0,fs.jsx)(E$,{node:d,className:N$("overview-wrapper")});case tg:return(0,fs.jsx)(k$,{className:N$("node-page-wrapper"),nodeId:f,additionalNodesInfo:e});default:return!1}}()})]}):(0,fs.jsx)("div",{className:"error",children:"no node data"})},O$=[{name:"Generation",align:zn.RIGHT,render:function(e){return e.row.generation}},{name:"Change time",align:zn.RIGHT,sortable:!1,render:function(e){var t=e.row;return ga(t.changeTime)}},{name:"State",sortable:!1,render:function(e){return e.row.state}},{name:"Follower ID",sortable:!1,render:function(e){var t=e.row;return t.leader?"leader":t.followerId}},{name:"Node ID",align:zn.RIGHT,sortable:!1,render:function(e){var t=e.row;return(0,fs.jsx)(Nf,{to:ig(t.nodeId),children:t.nodeId})}},{name:"Node FQDN",sortable:!1,render:function(e){var t=e.row;return t.fqdn?(0,fs.jsx)("div",{className:V$("host"),children:(0,fs.jsx)(Gf,{name:t.fqdn,showStatus:!1,hasClipboardButton:!0})}):(0,fs.jsx)("span",{children:"\u2014"})}}],I$={displayIndices:!1},A$=function(e){var t=e.history;return(0,fs.jsx)(zn,{theme:"yandex-cloud",data:t,columns:O$,settings:I$,initialSortOrder:{columnId:"Generation",order:zn.DESCENDING}})},P$=function(e){var t=e.tablet,n=e.tenantPath,i=t.ChangeTime,r=t.Generation,o=t.FollowerId,a=t.NodeId,s=t.HiveId,u=t.State,l=t.Type,c=t.TenantId,d=(void 0===c?{}:c).SchemeShard,h=s&&"0"!==s,f=u===_p.Active,p=[{label:"Database",value:n||"-"}];return h&&p.push({label:"HiveId",value:(0,fs.jsx)(Mf,{href:Ph(Zh.tablet,{id:s}),target:"_blank",children:s})}),d&&p.push({label:"SchemeShard",value:(0,fs.jsx)(Mf,{href:Ph(Zh.tablet,{id:d}),target:"_blank",children:d})}),p.push({label:"Type",value:l},{label:"State",value:u}),f&&p.push({label:"Uptime",value:ga(i)}),p.push({label:"Generation",value:r},{label:"Node",value:(0,fs.jsx)(Cf,{className:V$("link"),to:ig(String(a)),children:a})}),o&&p.push({label:"Follower",value:o}),(0,fs.jsx)(vs,{info:p})},R$=(0,ct.default)("ydb-critical-dialog"),Z$=function(t){var n=t.visible,i=t.text,r=t.onClose,o=t.onConfirm,a=t.onConfirmActionFinish,s=(0,e.useState)(!1),u=(0,dt.Z)(s,2),l=u[0],c=u[1],d=function(){var e=bi(ki().mark((function e(t){return ki().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.preventDefault(),c(!0),e.abrupt("return",o().then((function(){a(),c(!1),r()})));case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return(0,fs.jsx)(qw,{open:n,hasCloseButton:!1,className:R$(),size:"s",onClose:r,children:(0,fs.jsxs)("form",{onSubmit:d,children:[(0,fs.jsxs)(qw.Body,{className:R$("body"),children:[(0,fs.jsx)("span",{className:R$("warning-icon"),children:(0,fs.jsx)(xv,{name:"dialog-warning",width:"24",height:"22",viewBox:"0 0 24 22"})}),i]}),(0,fs.jsx)(qw.Footer,{loading:l,preset:"default",textButtonApply:"Confirm",textButtonCancel:"Cancel",propsButtonApply:{type:"submit"},onClickButtonCancel:r,onClickButtonApply:function(){}})]})})},F$=JSON.parse('{"tablet.header":"Tablet","controls.kill":"Restart","controls.stop":"Stop","controls.resume":"Resume","dialog.kill":"The tablet will be restarted. Do you want to proceed?","dialog.stop":"The tablet will be stopped. Do you want to proceed?","dialog.resume":"The tablet will be resumed. Do you want to proceed?","emptyState":"The tablet was not found"}'),j$=JSON.parse('{"tablet.header":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430","controls.kill":"\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c","controls.stop":"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c","controls.resume":"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c","dialog.kill":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?","dialog.stop":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?","dialog.resume":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?","emptyState":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430"}'),H$="ydb-tablet-page";na.registerKeyset(Ko.En,H$,F$),na.registerKeyset(Ko.Ru,H$,j$);var B$,z$=na.keyset(H$);!function(e){e.kill="kill",e.stop="stop",e.resume="resume"}(B$||(B$={}));var W$=function(t){var n=t.tablet,i=t.fetchData,r=n.TabletId,o=n.HiveId,a=(0,e.useState)(!1),s=(0,dt.Z)(a,2),u=s[0],l=s[1],c=(0,e.useState)(null),d=(0,dt.Z)(c,2),h=d[0],f=d[1],p=(0,e.useState)(!1),v=(0,dt.Z)(p,2),g=v[0],m=v[1];(0,e.useEffect)((function(){m(!1)}),[n]);var _=function(e){return function(){l(!0),f(e)}},y=_(B$.kill),b=_(B$.stop),w=_(B$.resume),C=function(){l(!1),f(null)},k=function(){return m(!0),window.api.killTablet(r)},S=function(){return m(!0),window.api.stopTablet(r,o)},x=function(){return m(!0),window.api.resumeTablet(r,o)},L=n.State!==_p.Stopped&&n.State!==_p.Dead,E=n.State===_p.Stopped||n.State===_p.Deleted;return(0,fs.jsxs)("div",{className:V$("controls"),children:[(0,fs.jsx)(zr,{onClick:y,view:"action",loading:g,className:V$("control"),children:z$("controls.kill")}),o&&"0"!==o?(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)(zr,{onClick:b,view:"action",disabled:E,loading:!E&&g,className:V$("control"),children:z$("controls.stop")}),(0,fs.jsx)(zr,{onClick:w,view:"action",disabled:L,loading:!L&&g,className:V$("control"),children:z$("controls.resume")})]}):null,function(){if(!u)return null;switch(h){case B$.kill:return(0,fs.jsx)(Z$,{visible:u,text:z$("dialog.kill"),onClose:C,onConfirm:k,onConfirmActionFinish:i});case B$.stop:return(0,fs.jsx)(Z$,{visible:u,text:z$("dialog.stop"),onClose:C,onConfirm:S,onConfirmActionFinish:i});case B$.resume:return(0,fs.jsx)(Z$,{visible:u,text:z$("dialog.resume"),onClose:C,onConfirm:x,onConfirmActionFinish:i});default:return null}}()]})},V$=(0,ct.default)("tablet-page"),Y$=function(){var t,n=(0,e.useRef)(!0),i=Q(),r=ut(),o=function(){var e=at(Be).match;return e?e.params:{}}(),a=o.id,s=vf((function(e){return e.tablet})),u=s.data,l=void 0===u?{}:u,c=s.loading,d=s.id,h=s.history,f=void 0===h?[]:h,p=s.tenantPath,v=s.error,g=Ah(r),m=g.nodeId,_=g.tenantName,y=(null===(t=l.NodeId)||void 0===t?void 0:t.toString())||(null===m||void 0===m?void 0:m.toString()),b=p||(null===_||void 0===_?void 0:_.toString());(0,e.useEffect)((function(){return function(){i({type:Zl})}}),[i]),(0,e.useEffect)((function(){n.current&&l&&l.TenantId&&(i(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Oo({request:window.api.getTabletDescribe(e),actions:Rl,dataHandler:function(t){var n=e.SchemeShard,i=e.PathId;return{tenantPath:t.Path||"".concat(n,":").concat(i)}}})}(l.TenantId)),n.current=!1)}),[i,l]);var w=(0,e.useCallback)((function(){i(function(e){return Oo({request:Promise.all([window.api.getTablet({id:e}),window.api.getTabletHistory({id:e}),window.api.getNodesList()]),actions:Pl,dataHandler:function(e){var t=(0,dt.Z)(e,3),n=t[0],i=t[1],r=t[2],o=$o(r),a=Object.keys(i).reduce((function(e,t){var n,r=null===(n=i[t])||void 0===n?void 0:n.TabletStateInfo;if(r&&r.length){var a=r.find((function(e){return e.Leader}))||r[0],s=a.ChangeTime,u=a.Generation,l=a.State,c=a.Leader,d=a.FollowerId,h=o&&t?o.get(Number(t)):void 0;e.push({nodeId:t,generation:u,changeTime:s,state:l,leader:c,followerId:d,fqdn:h})}return e}),[]),s=n.TabletStateInfo,u=void 0===s?[]:s,l=(0,dt.Z)(u,1)[0];return{tabletData:void 0===l?{}:l,historyData:a}}})}(a))}),[i,a]);pf(w,[w],!0),(0,e.useEffect)((function(){i(lh("tablet",{nodeIds:y?[y]:[],tenantName:b,tabletId:a}))}),[i,b,a,y]);if(c&&a!==d&&n.current)return(0,fs.jsx)(Cy,{size:"l"});if(v)return(0,fs.jsx)(mv,{error:v});if(!l||!Object.keys(l).length)return(0,fs.jsx)("div",{className:V$("placeholder"),children:(0,fs.jsx)(Dv,{title:z$("emptyState")})});var C=l.TabletId,k=l.Overall,S=l.Leader,x=[{name:"".concat(Jn," - tablet"),path:"/tablets?TabletID=".concat(C)}];return(0,fs.jsx)("div",{className:V$(),children:(0,fs.jsxs)("div",{className:V$("pane-wrapper"),children:[(0,fs.jsxs)("div",{className:V$("left-pane"),children:[(0,fs.jsx)("ul",{className:V$("links"),children:x.map((function(e,t){return(0,fs.jsx)("li",{className:V$("link",{external:!0}),children:(0,fs.jsx)(Mf,{href:"".concat(wh).concat(e.path),target:"_blank",children:e.name})},t)}))}),(0,fs.jsxs)("div",{className:V$("row",{header:!0}),children:[(0,fs.jsx)("span",{className:V$("title"),children:z$("tablet.header")}),(0,fs.jsx)(Gf,{status:k,name:C}),(0,fs.jsx)("a",{rel:"noopener noreferrer",className:V$("link",{external:!0}),href:"".concat(wh,"/tablets?TabletID=").concat(C),target:"_blank",children:(0,fs.jsx)(xv,{name:"external"})}),S&&(0,fs.jsx)(Zy,{text:"Leader",type:"blue"}),(0,fs.jsx)("span",{className:V$("loader"),children:c&&(0,fs.jsx)(Cy,{size:"s"})})]}),(0,fs.jsx)(P$,{tablet:l,tenantPath:b}),(0,fs.jsx)(W$,{tablet:l,fetchData:w})]}),(0,fs.jsx)("div",{className:V$("rigth-pane"),children:(0,fs.jsx)(A$,{history:f})})]})})},U$=n(5647),K$=(0,ct.default)("tablets-filters"),q$=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={nodeFilter:[],tenantPath:""},e.reloadDescriptor=-1,e.makeRequest=function(){var t=e.state,n=t.nodeFilter,i=t.tenantPath;e.props.getTabletsInfo({nodes:n,path:[i]})},e.getTablets=function(){var t=e.props.timeoutForRequest;clearInterval(e.reloadDescriptor),e.reloadDescriptor=setTimeout((function(){e.makeRequest(),e.reloadDescriptor=-1}),t)},e.handleNodeFilterChange=function(t){e.setState({nodeFilter:t},(function(){e.props.clearWasLoadingFlag(),e.makeRequest()}))},e.handleStateFilterChange=function(t){(0,e.props.setStateFilter)(t)},e.handleTypeFilterChange=function(t){(0,e.props.setTypeFilter)(t)},e.renderTablet=function(t,n){var i=e.props,r=i.filteredTablets,o=i.size;return(0,fs.jsx)(By,{tablet:r[t],tenantName:e.state.tenantPath,size:o,className:K$("tablet")},n)},e.renderContent=function(){var t=e.state,n=t.nodeFilter,i=t.tenantPath,r=e.props,o=r.tablets,a=r.filteredTablets,s=r.nodes,u=r.stateFilter,l=r.typeFilter,c=r.error,d=Ep.map((function(e){return{value:e,content:e}})),h=Array.from((0,U$.Z)(Set,[an().map(o,(function(e){return e.Type}))])).map((function(e){return{value:e,content:e}})),f=an().map(s,(function(e){return{content:e.Id,value:e.Id,meta:e.Host}}));return(0,fs.jsxs)("div",{className:K$(),children:[i?(0,fs.jsx)("div",{className:K$("tenant"),children:(0,fs.jsxs)(fs.Fragment,{children:[(0,fs.jsx)("span",{className:K$("label"),children:"Database: "})," ",i]})}):null,(0,fs.jsx)($$,{nodesForSelect:f,nodeFilter:n,onChangeNodes:e.handleNodeFilterChange,states:d,stateFilter:u,onChangeStates:e.handleStateFilterChange,types:h,typeFilter:l,onChangeTypes:e.handleTypeFilterChange}),c&&(0,fs.jsx)("div",{className:"error",children:c}),a.length>0?(0,fs.jsx)("div",{className:K$("items"),children:(0,fs.jsx)(VY(),{itemRenderer:e.renderTablet,length:a.length,type:"uniform"})}):!c&&(0,fs.jsx)("div",{className:K$("empty-message"),children:"no tablets"})]})},e}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this,t=this.props,i=t.setStateFilter,r=t.setTypeFilter,o=t.setHeaderBreadcrumbs,a=Ft().parse(this.props.location.search,{ignoreQueryPrefix:!0}),s=a.nodeIds,u=a.type,l=a.path,c=a.state,d=n.parseNodes(s);c&&i(n.getStateFiltersFromColor(c));u&&r([u]),this.setState({nodeFilter:d,tenantPath:l},(function(){e.makeRequest()})),o("tablets",{tenantName:l})}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.loading,i=t.error;!i&&e.path&&this.props.path&&e.path!==this.props.path&&(this.props.clearWasLoadingFlag(),this.getTablets()),i||n||-1!==this.reloadDescriptor||this.getTablets()}},{key:"componentWillUnmount",value:function(){clearInterval(this.reloadDescriptor)}},{key:"render",value:function(){var e=this.props,t=e.loading,i=e.wasLoaded,r=e.error;return t&&!i?n.renderLoader():r&&"object"===typeof r?403===r.status?(0,fs.jsx)(Mv,{}):(0,fs.jsx)("div",{children:r.statusText}):this.renderContent()}}],[{key:"renderLoader",value:function(){return(0,fs.jsx)("div",{className:"loader",children:(0,fs.jsx)(yy,{size:"l"})})}}]),n}(e.Component);q$.parseNodes=function(e){if(Array.isArray(e))return e.map(Number).filter(Number.isInteger)},q$.getStateFiltersFromColor=function(e){return Np[e]||[e]},q$.CONTROL_WIDTH=220,q$.POPUP_WIDTH=300;var G$=function(e){var t=e.nodesForSelect,n=e.nodeFilter,i=e.onChangeNodes,r=e.states,o=e.stateFilter,a=e.onChangeStates,s=e.types,u=e.typeFilter,l=e.onChangeTypes;return(0,fs.jsxs)("div",{className:K$("filters"),children:[(0,fs.jsx)("div",{className:K$("filter-wrapper"),children:(0,fs.jsx)(ty,{multiple:!0,label:"Node ID",width:q$.CONTROL_WIDTH,popupWidth:q$.POPUP_WIDTH,placeholder:"All",options:t,value:n,onUpdate:i,renderOption:function(e){return(0,fs.jsxs)("div",{className:K$("node"),children:[(0,fs.jsx)("div",{children:e.content}),(0,fs.jsx)("div",{className:K$("node-meta"),title:e.meta,children:e.meta})]})},getOptionHeight:function(){return 40}})}),(0,fs.jsx)("div",{className:K$("filter-wrapper"),children:(0,fs.jsx)(ty,{multiple:!0,label:"multiple",width:q$.CONTROL_WIDTH,placeholder:"All",options:r,value:o,onUpdate:a})}),(0,fs.jsx)("div",{className:K$("filter-wrapper"),children:(0,fs.jsx)(ty,{multiple:!0,label:"Types",width:q$.CONTROL_WIDTH,placeholder:"All",options:s,value:u,onUpdate:l})})]})},$$=e.memo(G$,(function(e,t){return an().isEqual(e.nodeFilter,t.nodeFilter)&&an().isEqual(e.stateFilter,t.stateFilter)&&an().isEqual(e.typeFilter,t.typeFilter)})),Q$=U((function(e){var t=e.tabletsFilters,n=t.nodes,i=t.wasLoaded,r=t.loading,o=t.timeoutForRequest,a=t.stateFilter,s=t.typeFilter,u=t.error;return{tablets:Gc(e),filteredTablets:$c(e),nodes:n,timeoutForRequest:o,wasLoaded:i,loading:r,stateFilter:a,typeFilter:s,error:u}}),{getTabletsInfo:function(e){return Oo({request:Promise.all([window.api.getTabletsInfo(e),window.api.getNodesList()]),actions:Kc})},clearWasLoadingFlag:function(){return{type:"CLEAR_WAS_LOADING_TABLETS"}},setStateFilter:function(e){return{type:"SET_STATE_FILTER",data:e}},setTypeFilter:function(e){return{type:"SET_TYPE_FILTER",data:e}},setHeaderBreadcrumbs:lh})(q$),X$={top:0,right:0,bottom:0,left:0};var J$=U((function(e){var t=e.tooltip,n=t.toolTipVisible,i=t.currentHoveredRef,r=t.data,o=t.template,a=t.additionalData;return{toolTipVisible:n,currentHoveredRef:i,data:r,template:o,additionalData:a,positions:t.positions,popupClassName:(a||{}).popupClassName}}),{hideTooltip:Fs})((function(t){var n,i,r=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.rect,i=t.contextElement,r=e.useRef(X$),o=e.useRef({contextElement:i,getBoundingClientRect:function(){var e=r.current,t=e.top,n=e.right,i=e.bottom,o=e.left;return{top:t,right:n,bottom:i,left:o,width:n-o,height:i-t}}});if(o.current.contextElement=i,n){var a=n.top,s=void 0===a?0:a,u=n.left,l=void 0===u?0:u,c=n.right,d=void 0===c?l:c,h=n.bottom,f=void 0===h?s:h;r.current={top:s,right:d,bottom:f,left:l}}else r.current=X$;return o}({rect:{top:null===(n=t.positions)||void 0===n?void 0:n.top,left:null===(i=t.positions)||void 0===i?void 0:i.left}});(0,e.useEffect)((function(){return window.addEventListener("scroll",o,!0),function(){window.removeEventListener("scroll",o)}}),[]);var o=function(){var e=t.hideTooltip;t.toolTipVisible&&setTimeout((function(){return e()}),500)},a=t.className,s=void 0===a?"":a,u=t.toolTipVisible,l=t.currentHoveredRef,c=t.data,d=t.additionalData,h=t.positions;return(0,fs.jsx)("div",{className:"redux-tooltip ".concat(s),children:h?function(n,i,o,a){var s=t.template,u=t.popupClassName,l=t.hideTooltip;return(0,fs.jsx)(e.Fragment,{children:(0,fs.jsx)(gp,{open:n,placement:["top","bottom","left","right"],className:u,anchorRef:r,onOutsideClick:l,children:o&&s(o,a)})})}(u,0,c,d):function(e,n,i,r){var o=t.template,a=t.popupClassName,s=t.hideTooltip;return(0,fs.jsx)(gp,{open:e,anchorRef:{current:n},hasArrow:!0,placement:["top","bottom","left","right"],className:a,onOutsideClick:s,children:i&&o(i,r)})}(u,l,c,d)})})),eQ=pt("breadcrumbs");var tQ=e.memo((function(t){var n=t.data,i=t.isCurrent,r=t.isPrevCurrent,o=t.renderItem,a=n.text,s=n.href,u=n.action;return r||!i?e.createElement(Mf,{key:a,view:"secondary",href:s,title:a,onClick:u,className:eQ("item",{"prev-current":r})},o?o(n,i,r):a):e.createElement("div",{title:a,className:eQ("item",{current:!0})},o?o(n,i,r):a)}));tQ.displayName="Breadcrumbs.Item";var nQ=pt("breadcrumbs");function iQ(t){var n=t.renderItemDivider;return e.createElement("div",{"aria-hidden":!0,className:nQ("divider")},n?n():"/")}iQ.displayName="Breadcrumbs.Separator";var rQ=Jr({en:JSON.parse('{"label_more":"Show more"}'),ru:JSON.parse('{"label_more":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435"}')},"Breadcrumbs"),oQ=pt("breadcrumbs");function aQ(){return e.createElement(Mf,{view:"secondary",title:rQ("label_more"),className:oQ("item",{more:!0})},"...")}function sQ(t){var n=t.popupStyle,i=t.popupPlacement,r=t.items;return e.createElement(nY,{items:r,popupProps:{className:oQ("popup",{staircase:"staircase"===n}),placement:i},switcher:e.createElement(aQ,null)})}sQ.displayName="Breadcrumbs.More";var uQ,lQ,cQ=200,dQ=pt("breadcrumbs");!function(e){e[e.One=1]="One",e[e.Two=2]="Two"}(uQ||(uQ={})),function(e){e[e.Zero=0]="Zero",e[e.One=1]="One"}(lQ||(lQ={}));var hQ,fQ=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(t){var r;return(0,i.Z)(this,s),(r=n.call(this,t)).handleResize=function(){var e=s.prepareInitialState(r.props);r.setState(e,r.recalculate)},r.handleResize=Vp()(r.handleResize,cQ),r.resizeObserver=new zp.default(r.handleResize),r.container=e.createRef(),r.state=s.prepareInitialState(t),r}return(0,r.Z)(s,[{key:"componentDidMount",value:function(){this.recalculate(),this.resizeObserver.observe(this.container.current)}},{key:"componentDidUpdate",value:function(e){e.items!==this.state.allItems&&this.recalculate()}},{key:"componentWillUnmount",value:function(){this.resizeObserver.disconnect()}},{key:"render",value:function(){var t=this.props.className,n=this.state.calculated,i=this.renderRootItem();return e.createElement("div",{className:dQ({calculated:n?"yes":"no"},t)},e.createElement("div",{className:dQ("inner"),ref:this.container},i,this.renderMoreItem(),this.renderVisibleItems()))}},{key:"renderItem",value:function(t,n,i){var r=this.props.renderItemContent;return e.createElement(tQ,{data:t,isCurrent:n,isPrevCurrent:i,renderItem:r})}},{key:"renderItemDivider",value:function(){var t=this.props.renderItemDivider;return e.createElement(iQ,{renderItemDivider:t})}},{key:"renderRootItem",value:function(){var t=this.props,n=t.renderRootContent,i=t.renderItemContent,r=this.state,o=r.rootItem,a=0===r.visibleItems.length;return o?e.createElement(tQ,{data:o,isCurrent:a,isPrevCurrent:!1,renderItem:n||i}):null}},{key:"renderVisibleItems",value:function(){var t=this;return this.state.visibleItems.map((function(n,i,r){var o=i===r.length-1,a=i===r.length-2;return e.createElement(e.Fragment,{key:i},t.renderItemDivider(),t.renderItem(n,o,a))}))}},{key:"renderMoreItem",value:function(){var t=this.state.hiddenItems;if(0===t.length)return null;var n=this.props,i=n.popupStyle,r=n.popupPlacement,o=n.renderItemDivider;return e.createElement(e.Fragment,null,e.createElement(iQ,{renderItemDivider:o}),e.createElement(sQ,{items:t,popupPlacement:r,popupStyle:i}))}},{key:"recalculate",value:function(){var e=this.props,t=e.items,n=e.lastDisplayedItemsCount,i=e.firstDisplayedItemsCount;if(this.container.current){for(var r=Array.from(this.container.current.querySelectorAll(".".concat(dQ("divider")))),o=Array.from(this.container.current.querySelectorAll(".".concat(dQ("item")))),a=this.container.current.offsetWidth,s=o.map((function(e){return e.scrollWidth})),u=r.map((function(e){return e.offsetWidth})),l=s.reduce((function(e,t,i,r){var o=r.length-1===i,a=n===uQ.Two&&r.length-2===i;return o||a?e+Math.min(t,200):e+t}),0),c=l+u.reduce((function(e,t){return e+t}),0),d=1;c>a&&d<o.length-n;)1===d&&(c+=34+u[d]),c-=s[d]+u[d],d++;this.setState({calculated:!0,visibleItems:t.slice(d-(1-i)),hiddenItems:t.slice(i,d-(1-i))})}}}],[{key:"prepareInitialState",value:function(e){var t=e.firstDisplayedItemsCount;return{calculated:!1,rootItem:t?e.items[0]:void 0,visibleItems:e.items.slice(t),hiddenItems:[],allItems:e.items}}},{key:"getDerivedStateFromProps",value:function(e,t){return t.allItems!==e.items?s.prepareInitialState(e):null}}]),s}(e.Component);function pQ(){return pQ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},pQ.apply(this,arguments)}fQ.defaultProps={popupPlacement:["bottom","top"]};var vQ,gQ=function(t){return e.createElement("svg",pQ({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},t),hQ||(hQ=e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M11 2.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM14 4a3 3 0 10-5.895.79L6.15 5.908a3 3 0 100 4.185l1.955 1.117A3.003 3.003 0 0011 15a3 3 0 10-2.15-5.092L6.895 8.79a3.003 3.003 0 000-1.58L8.85 6.092A3 3 0 0014 4zm-3 6.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM2.5 8a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z",clipRule:"evenodd"})))};function mQ(){return mQ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},mQ.apply(this,arguments)}var _Q=function(t){return e.createElement("svg",mQ({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},t),vQ||(vQ=e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M11.615 4.888c.814-.375.885-.714.885-.888 0-.174-.071-.513-.885-.888C10.8 2.737 9.538 2.5 8 2.5c-1.538 0-2.799.237-3.615.612-.814.375-.885.714-.885.888 0 .174.071.513.885.888C5.2 5.263 6.462 5.5 8 5.5c1.538 0 2.799-.237 3.615-.612zm.885 1.235C11.4 6.708 9.792 7 8 7c-1.792 0-3.4-.292-4.5-.877V8c0 .174.071.513.885.888C5.2 9.263 6.462 9.5 8 9.5c1.538 0 2.799-.237 3.615-.612.814-.375.885-.714.885-.888V6.123zm0 4C11.4 10.708 9.792 11 8 11c-1.792 0-3.4-.293-4.5-.877V12c0 .174.071.513.885.887.816.377 2.077.613 3.615.613 1.538 0 2.799-.236 3.615-.613.814-.374.885-.713.885-.887v-1.877zM14 4c0-2-2.686-3-6-3S2 2 2 4v8c0 2 2.686 3 6 3s6-1 6-3V4z",clipRule:"evenodd"})))},yQ=function(e){return e.startsWith("/")?e.slice(1):e},bQ=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.clusterName,i=e.clusterTab;return[{text:n||"Cluster",link:eb(i,t),icon:gQ}]},wQ=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.tenantName,i=n?yQ(n):"Tenant",r=n?Cv(Rt(Rt({},t),{},{name:n})):void 0;return[].concat((0,Lt.Z)(bQ(e,t)),[{text:i,link:r,icon:_Q}])},CQ=function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.tenantName,o=e.nodeId,a=!r,s=Rt(Rt({},i),{},(t={},(0,xt.Z)(t,Qi,Xi.diagnostics),(0,xt.Z)(t,vv.diagnosticsTab,er.nodes),t));n=a?bQ(e,i):wQ(e,s);var u=o?"Node ".concat(o):"Node",l=o?ig(o,i):void 0;return n.push({text:u,link:l}),n},kQ=function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.tenantName,o=e.nodeIds,a=Rt(Rt({},i),{},(t={},(0,xt.Z)(t,Qi,Xi.diagnostics),(0,xt.Z)(t,vv.diagnosticsTab,er.tablets),t));n=r?wQ(e,a):bQ(e,i);var s=Ph(Zh.tabletsFilters,void 0,Rt(Rt({},i),{},{nodeIds:o,path:r}));return n.push({text:"Tablets",link:s}),n},SQ=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.tabletId,i=kQ(e,t);return i.push({text:n||"Tablet"}),i},xQ=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};switch(e){case"cluster":return[].concat((0,Lt.Z)(n),(0,Lt.Z)(bQ(t,i)));case"tenant":return[].concat((0,Lt.Z)(n),(0,Lt.Z)(wQ(t,i)));case"node":return[].concat((0,Lt.Z)(n),(0,Lt.Z)(CQ(t,i)));case"tablets":return[].concat((0,Lt.Z)(n),(0,Lt.Z)(kQ(t,i)));case"tablet":return[].concat((0,Lt.Z)(n),(0,Lt.Z)(SQ(t,i)));default:return n}},LQ=(0,ct.default)("header"),EQ=function(e){return e&&!Mh?"/internal":wh+"/internal"};var NQ,DQ,MQ=function(t){var n,i=t.mainPage,r=Q(),o=st(),a=ut(),s=vf((function(e){return e.singleClusterMode})),u=vf((function(e){return e.header})),l=u.page,c=u.pageBreadcrumbsOptions,d=vf((function(e){return e.cluster})).data,h=Ah(a),f=null===(n=h.clusterName)||void 0===n?void 0:n.toString(),p=(null===d||void 0===d?void 0:d.Name)||f;(0,e.useEffect)((function(){r(Da(f))}),[r,f]);var v=(0,e.useMemo)((function(){var e=[],t=c;return i&&e.push(i),p&&(t=Rt(Rt({},c),{},{clusterName:p})),xQ(l,t,e,h).map((function(e){return Rt(Rt({},e),{},{action:function(){e.link&&o.push(e.link)}})}))}),[p,i,o,h,l,c]);return(0,fs.jsxs)("header",{className:LQ(),children:[(0,fs.jsx)("div",{children:(0,fs.jsx)(fQ,{items:v,lastDisplayedItemsCount:1,firstDisplayedItemsCount:1,renderItemContent:function(e){var t=e.icon,n=e.text;return t?(0,fs.jsxs)("span",{className:LQ("breadcrumb"),children:[(0,fs.jsx)(Mr,{width:16,height:16,data:t,className:LQ("breadcrumb__icon")}),n]}):n}})}),(0,fs.jsx)(Wy,{title:Jn,url:EQ(s)})]})},TQ=function(){return(0,fs.jsx)("svg",{width:"0",height:"0",children:(0,fs.jsxs)("defs",{children:[(0,fs.jsx)("path",{id:"icon.information",d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"}),(0,fs.jsx)("path",{id:"icon.tablePreview",d:"M13.2812 2.4375H2.71875C2.0332 2.4375 1.5 2.99609 1.5 3.65625V12.5938C1.5 13.2793 2.0332 13.8125 2.71875 13.8125H13.2812C13.9414 13.8125 14.5 13.2793 14.5 12.5938V3.65625C14.5 2.99609 13.9414 2.4375 13.2812 2.4375ZM7.1875 12.1875H3.125V9.75H7.1875V12.1875ZM7.1875 8.125H3.125V5.6875H7.1875V8.125ZM12.875 12.1875H8.8125V9.75H12.875V12.1875ZM12.875 8.125H8.8125V5.6875H12.875V8.125Z"}),(0,fs.jsx)("path",{id:"icon.close",fillRule:"evenodd",clipRule:"evenodd",d:"M12.7559 11.5774C13.0814 11.9028 13.0814 12.4305 12.7559 12.7559C12.4305 13.0814 11.9028 13.0814 11.5774 12.7559L8 9.17851L4.42259 12.7559C4.09715 13.0814 3.56951 13.0814 3.24408 12.7559C2.91864 12.4305 2.91864 11.9028 3.24408 11.5774L6.82149 8L3.24408 4.42259C2.91864 4.09715 2.91864 3.56951 3.24408 3.24408C3.56951 2.91864 4.09715 2.91864 4.42259 3.24408L8 6.82149L11.5774 3.24408C11.9028 2.91864 12.4305 2.91864 12.7559 3.24408C13.0814 3.56951 13.0814 4.09715 12.7559 4.42259L9.17851 8L12.7559 11.5774Z"}),(0,fs.jsx)("path",{id:"icon.enableFullscreen",d:"M2.3125 6.19531C2.3125 6.37305 2.43945 6.5 2.61719 6.5H3.63281C3.78516 6.5 3.9375 6.37305 3.9375 6.19531V4.0625H6.07031C6.22266 4.0625 6.375 3.93555 6.375 3.75781V2.74219C6.375 2.58984 6.22266 2.4375 6.07031 2.4375H2.92188C2.56641 2.4375 2.3125 2.7168 2.3125 3.04688V6.19531ZM9.625 2.74219V3.75781C9.625 3.93555 9.75195 4.0625 9.92969 4.0625H12.0625V6.19531C12.0625 6.37305 12.1895 6.5 12.3672 6.5H13.3828C13.5352 6.5 13.6875 6.37305 13.6875 6.19531V3.04688C13.6875 2.7168 13.4082 2.4375 13.0781 2.4375H9.92969C9.75195 2.4375 9.625 2.58984 9.625 2.74219ZM13.3828 9.75H12.3672C12.1895 9.75 12.0625 9.90234 12.0625 10.0547V12.1875H9.92969C9.75195 12.1875 9.625 12.3398 9.625 12.4922V13.5078C9.625 13.6855 9.75195 13.8125 9.92969 13.8125H13.0781C13.4082 13.8125 13.6875 13.5586 13.6875 13.2031V10.0547C13.6875 9.90234 13.5352 9.75 13.3828 9.75ZM6.375 13.5078V12.4922C6.375 12.3398 6.22266 12.1875 6.07031 12.1875H3.9375V10.0547C3.9375 9.90234 3.78516 9.75 3.63281 9.75H2.61719C2.43945 9.75 2.3125 9.90234 2.3125 10.0547V13.2031C2.3125 13.5586 2.56641 13.8125 2.92188 13.8125H6.07031C6.22266 13.8125 6.375 13.6855 6.375 13.5078Z"}),(0,fs.jsx)("path",{id:"icon.disableFullscreen",d:"M13.3828 6.5C13.5352 6.5 13.6875 6.37305 13.6875 6.19531V5.17969C13.6875 5.02734 13.5352 4.875 13.3828 4.875H11.25V2.74219C11.25 2.58984 11.0977 2.4375 10.9453 2.4375H9.92969C9.75195 2.4375 9.625 2.58984 9.625 2.74219V5.89062C9.625 6.24609 9.87891 6.5 10.2344 6.5H13.3828ZM6.375 5.89062V2.74219C6.375 2.58984 6.22266 2.4375 6.07031 2.4375H5.05469C4.87695 2.4375 4.75 2.58984 4.75 2.74219V4.875H2.61719C2.43945 4.875 2.3125 5.02734 2.3125 5.17969V6.19531C2.3125 6.37305 2.43945 6.5 2.61719 6.5H5.76562C6.0957 6.5 6.375 6.24609 6.375 5.89062ZM6.375 13.5078V10.3594C6.375 10.0293 6.0957 9.75 5.76562 9.75H2.61719C2.43945 9.75 2.3125 9.90234 2.3125 10.0547V11.0703C2.3125 11.248 2.43945 11.375 2.61719 11.375H4.75V13.5078C4.75 13.6855 4.87695 13.8125 5.05469 13.8125H6.07031C6.22266 13.8125 6.375 13.6855 6.375 13.5078ZM11.25 13.5078V11.375H13.3828C13.5352 11.375 13.6875 11.248 13.6875 11.0703V10.0547C13.6875 9.90234 13.5352 9.75 13.3828 9.75H10.2344C9.87891 9.75 9.625 10.0293 9.625 10.3594V13.5078C9.625 13.6855 9.75195 13.8125 9.92969 13.8125H10.9453C11.0977 13.8125 11.25 13.6855 11.25 13.5078Z"}),(0,fs.jsx)("path",{id:"icon.copy",d:"M10.4375 13H6.17188C5.38477 13 4.75 12.3652 4.75 11.5781V4.0625H2.92188C2.56641 4.0625 2.3125 4.3418 2.3125 4.67188V14.0156C2.3125 14.3711 2.56641 14.625 2.92188 14.625H9.82812C10.1582 14.625 10.4375 14.3711 10.4375 14.0156V13ZM10.4375 4.26562V1.625H6.17188C5.81641 1.625 5.5625 1.9043 5.5625 2.23438V11.5781C5.5625 11.9336 5.81641 12.1875 6.17188 12.1875H13.0781C13.4082 12.1875 13.6875 11.9336 13.6875 11.5781V4.875H11.0469C10.6914 4.875 10.4375 4.62109 10.4375 4.26562ZM13.4844 3.47852L11.834 1.82812C11.7324 1.72656 11.5293 1.625 11.4023 1.625H11.25V4.0625H13.6875V3.91016C13.6875 3.7832 13.5859 3.58008 13.4844 3.47852Z"}),(0,fs.jsx)("path",{id:"icon.failure",d:"M336.1 175c-9.375-9.375-24.56-9.375-33.94 0L256 222.1L208.1 175c-9.375-9.375-24.56-9.375-33.94 0s-9.375 24.56 0 33.94l47.03 47.03L175 303c-9.375 9.375-9.375 24.56 0 33.94c9.373 9.373 24.56 9.381 33.94 0L256 289.9l47.03 47.03c9.373 9.373 24.56 9.381 33.94 0c9.375-9.375 9.375-24.56 0-33.94l-47.03-47.03l47.03-47.03C346.3 199.6 346.3 184.4 336.1 175zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256S512 397.4 512 256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z"}),(0,fs.jsx)("path",{id:"icon.success",d:"M8 0.25C3.71875 0.25 0.25 3.75 0.25 8C0.25 12.2812 3.71875 15.75 8 15.75C12.25 15.75 15.75 12.2812 15.75 8C15.75 3.75 12.25 0.25 8 0.25ZM8 1.75C11.4375 1.75 14.25 4.5625 14.25 8C14.25 11.4688 11.4375 14.25 8 14.25C4.53125 14.25 1.75 11.4688 1.75 8C1.75 4.5625 4.53125 1.75 8 1.75ZM12.375 5.84375L11.6562 5.125C11.5312 4.96875 11.2812 4.96875 11.125 5.125L6.71875 9.5L4.84375 7.625C4.6875 7.46875 4.46875 7.46875 4.3125 7.625L3.59375 8.3125C3.46875 8.46875 3.46875 8.71875 3.59375 8.84375L6.4375 11.7188C6.59375 11.875 6.8125 11.875 6.96875 11.7188L12.375 6.375C12.5 6.21875 12.5 5.96875 12.375 5.84375Z"}),(0,fs.jsx)("path",{id:"icon.startPlay",d:"M4 2.99383V13.0072C3.99999 13.359 4.1862 13.6846 4.48948 13.863C4.79276 14.0413 5.16779 14.0459 5.47529 13.8749L14.4869 8.8682C14.8019 8.69306 14.9973 8.36093 14.9973 8.0005C14.9973 7.64006 14.8019 7.30794 14.4869 7.13279L5.47529 2.12513C5.16764 1.95405 4.79239 1.95868 4.48905 2.13729C4.18571 2.31591 3.99963 2.64181 4 2.99383Z"}),(0,fs.jsx)("path",{id:"icon.collapse",d:"M54.63 246.6L192 109.3l137.4 137.4C335.6 252.9 343.8 256 352 256s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25l-160-160c-12.5-12.5-32.75-12.5-45.25 0l-160 160c-12.5 12.5-12.5 32.75 0 45.25S42.13 259.1 54.63 246.6zM214.6 233.4c-12.5-12.5-32.75-12.5-45.25 0l-160 160c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0L192 301.3l137.4 137.4C335.6 444.9 343.8 448 352 448s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25L214.6 233.4z"}),(0,fs.jsx)("path",{id:"icon.query",fill:"currentColor",d:"M13.6875 12.5938V3.65625C13.6875 2.99609 13.1289 2.4375 12.4688 2.4375H3.53125C2.8457 2.4375 2.3125 2.99609 2.3125 3.65625V12.5938C2.3125 13.2793 2.8457 13.8125 3.53125 13.8125H12.4688C13.1289 13.8125 13.6875 13.2793 13.6875 12.5938ZM5.15625 6.5C4.92773 6.5 4.75 6.32227 4.75 6.09375V5.28125C4.75 5.07812 4.92773 4.875 5.15625 4.875H8.40625C8.60938 4.875 8.8125 5.07812 8.8125 5.28125V6.09375C8.8125 6.32227 8.60938 6.5 8.40625 6.5H5.15625ZM5.15625 8.9375C4.92773 8.9375 4.75 8.75977 4.75 8.53125V7.71875C4.75 7.51562 4.92773 7.3125 5.15625 7.3125H10.8438C11.0469 7.3125 11.25 7.51562 11.25 7.71875V8.53125C11.25 8.75977 11.0469 8.9375 10.8438 8.9375H5.15625ZM5.15625 11.375C4.92773 11.375 4.75 11.1973 4.75 10.9688V10.1562C4.75 9.95312 4.92773 9.75 5.15625 9.75H6.78125C6.98438 9.75 7.1875 9.95312 7.1875 10.1562V10.9688C7.1875 11.1973 6.98438 11.375 6.78125 11.375H5.15625Z"}),(0,fs.jsx)("path",{id:"icon.diagnostics",fill:"currentColor",d:"M15.7188 7.3125H12.0625C11.7324 7.3125 11.4531 7.49023 11.3262 7.76953L10.6406 9.11523L8.76172 2.23438C8.66016 1.87891 8.33008 1.625 7.97461 1.65039C7.59375 1.65039 7.26367 1.9043 7.1875 2.28516L5.43555 10.4609L4.69922 7.92188C4.59766 7.56641 4.29297 7.3125 3.9375 7.3125H0.28125C0.0527344 7.3125 -0.125 7.51562 -0.125 7.71875V8.53125C-0.125 8.75977 0.0527344 8.9375 0.28125 8.9375H3.30273L4.77539 14.041C4.87695 14.3965 5.18164 14.625 5.53711 14.625C5.5625 14.625 5.5625 14.625 5.58789 14.625C5.94336 14.625 6.27344 14.3711 6.34961 13.9902L8.07617 5.89062L9.65039 11.6035C9.72656 11.9082 10.0312 12.1621 10.3359 12.1875C10.6914 12.2383 10.9961 12.0605 11.1484 11.7559L12.5449 8.9375H15.7188C15.9219 8.9375 16.125 8.75977 16.125 8.53125V7.71875C16.125 7.51562 15.9219 7.3125 15.7188 7.3125Z"}),(0,fs.jsx)("path",{id:"icon.key",d:"M8 7H11V5H12V2H6.66C6.085 0.79 4.86 0 3.5 0C1.57 0 0 1.57 0 3.5C0 5.43 1.57 7 3.5 7C4.86 7 6.09 6.21 6.66 5H8V7ZM10 6H9V4H5.97L5.855 4.335C5.5 5.33 4.555 6 3.5 6C2.11929 6 1 4.88071 1 3.5C1 2.11929 2.11929 1 3.5 1C4.555 1 5.5 1.67 5.855 2.665L5.97 3H11V4H10V6ZM3.5 5C2.67157 5 2 4.32843 2 3.5C2 2.67157 2.67157 2 3.5 2C4.32843 2 5 2.67157 5 3.5C5 4.32843 4.32843 5 3.5 5ZM3 3.5C3 3.22386 3.22386 3 3.5 3C3.77614 3 4 3.22386 4 3.5C4 3.77614 3.77614 4 3.5 4C3.22386 4 3 3.77614 3 3.5Z"}),(0,fs.jsx)("path",{id:"icon.new",d:"M6,2A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6M6,4H13V9H18V20H6V4Z"}),(0,fs.jsx)("path",{id:"icon.subdomain",d:"M13.6875 3.50391C13.6875 2.46289 11.123 1.625 8 1.625C4.85156 1.625 2.3125 2.46289 2.3125 3.50391V4.64648C2.3125 5.6875 4.85156 6.5 8 6.5C11.123 6.5 13.6875 5.6875 13.6875 4.64648V3.50391ZM13.6875 6.09375C12.4434 6.95703 10.209 7.33789 8 7.33789C5.76562 7.33789 3.53125 6.95703 2.3125 6.09375V8.70898C2.3125 9.75 4.85156 10.5625 8 10.5625C11.123 10.5625 13.6875 9.75 13.6875 8.70898V6.09375ZM13.6875 10.1562C12.4434 11.0195 10.209 11.4004 8 11.4004C5.76562 11.4004 3.53125 11.0195 2.3125 10.1562V12.7715C2.3125 13.8125 4.85156 14.625 8 14.625C11.123 14.625 13.6875 13.8125 13.6875 12.7715V10.1562Z"}),(0,fs.jsx)("path",{id:"icon.openFolder",d:"M15.2109 9.06445C15.4648 8.6582 15.1602 8.125 14.6777 8.125H4.54688C4.01367 8.125 3.37891 8.50586 3.125 8.9375L1.29688 12.0859C1.04297 12.4922 1.34766 13 1.83008 13H11.9609C12.4941 13 13.1289 12.6445 13.3828 12.2129L15.2109 9.06445ZM4.54688 7.3125H12.875V6.09375C12.875 5.43359 12.3164 4.875 11.6562 4.875H7.59375L5.96875 3.25H1.90625C1.2207 3.25 0.6875 3.80859 0.6875 4.46875V11.5527L2.43945 8.53125C2.87109 7.79492 3.6582 7.3125 4.54688 7.3125Z"}),(0,fs.jsx)("path",{id:"icon.folder",d:"M13.2812 4.875H8.40625L6.78125 3.25H2.71875C2.0332 3.25 1.5 3.80859 1.5 4.46875V11.7812C1.5 12.4668 2.0332 13 2.71875 13H13.2812C13.9414 13 14.5 12.4668 14.5 11.7812V6.09375C14.5 5.43359 13.9414 4.875 13.2812 4.875Z"}),(0,fs.jsx)("path",{id:"icon.table",d:"M13.2812 2.4375H2.71875C2.0332 2.4375 1.5 2.99609 1.5 3.65625V12.5938C1.5 13.2793 2.0332 13.8125 2.71875 13.8125H13.2812C13.9414 13.8125 14.5 13.2793 14.5 12.5938V3.65625C14.5 2.99609 13.9414 2.4375 13.2812 2.4375ZM7.1875 12.1875H3.125V9.75H7.1875V12.1875ZM7.1875 8.125H3.125V5.6875H7.1875V8.125ZM12.875 12.1875H8.8125V9.75H12.875V12.1875ZM12.875 8.125H8.8125V5.6875H12.875V8.125Z"}),(0,fs.jsx)("path",{id:"icon.arrow-right",d:"M.786.194C.829.151.872.13.958.13c.064 0 .128.021.193.064l4.49 4.512c.043.043.086.108.086.172 0 .086-.043.129-.086.172l-4.49 4.512a.347.347 0 0 1-.194.064c-.085 0-.128-.021-.171-.064l-.43-.43C.29 9.089.27 9.046.27 8.96c0-.064.021-.129.086-.193l3.889-3.889L.355.99C.292.946.27.882.27.796.27.732.291.667.356.624z"}),(0,fs.jsx)("path",{id:"icon.external",d:"M15.3125 2.00586C15.3125 1.80273 15.1348 1.625 14.9316 1.625L10.793 1.65039C10.5898 1.65039 10.4375 1.80273 10.4375 2.00586V2.84375C10.4375 3.04688 10.5898 3.22461 10.793 3.22461L12.6719 3.14844L12.7227 3.19922L5.63867 10.2832C5.51172 10.4102 5.51172 10.5879 5.63867 10.7148L6.22266 11.2988C6.34961 11.4258 6.52734 11.4258 6.6543 11.2988L13.7383 4.21484L13.7891 4.26562L13.7129 6.14453C13.7129 6.34766 13.8906 6.5 14.0938 6.5H14.9316C15.1348 6.5 15.2871 6.34766 15.2871 6.14453L15.3125 2.00586ZM11.5293 7.56641L10.9199 8.17578C10.8691 8.22656 10.8438 8.32812 10.8438 8.4043V13.2539C10.8438 13.3555 10.7676 13.4062 10.6914 13.4062H2.05859C1.95703 13.4062 1.90625 13.3555 1.90625 13.2539V4.62109C1.90625 4.54492 1.95703 4.46875 2.05859 4.46875H9.70117C9.98047 4.46875 10.1328 4.16406 9.92969 3.96094L9.32031 3.35156C9.26953 3.30078 9.16797 3.25 9.0918 3.25H1.90625C1.2207 3.25 0.6875 3.80859 0.6875 4.46875V13.4062C0.6875 14.0918 1.2207 14.625 1.90625 14.625H10.8438C11.5039 14.625 12.0625 14.0918 12.0625 13.4062V7.79492C12.0625 7.51562 11.7324 7.38867 11.5293 7.56641Z"}),(0,fs.jsxs)("g",{id:"icon.network-placeholder",children:[(0,fs.jsx)("path",{d:"M68.4597 2.52853V27.7564C68.4597 28.9827 69.3356 30.0339 70.562 30.2675C87.2054 33.2458 99.7025 48.0788 99.0601 65.715C98.4177 83.7599 83.7015 98.4177 65.715 99.1185C48.0788 99.7609 33.3042 87.2638 30.2675 70.6788C30.0339 69.4524 28.9827 68.5765 27.7564 68.5765H2.52853C1.01019 68.5765 -0.157769 69.8612 0.0174243 71.3212C3.4629 104.024 31.2603 129.427 64.9558 129.135C100.111 128.843 128.785 100.111 129.077 64.9558C129.369 31.2603 103.907 3.4629 71.2044 0.0174243C69.7444 -0.157769 68.4597 1.01019 68.4597 2.52853Z",fill:"#EBF2FA"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M22.7358 18.3543L40.5472 36.1657C41.4231 37.0416 42.8247 37.1584 43.8758 36.3993C48.0221 33.3042 52.9275 31.2019 58.2417 30.2091C59.4681 29.9755 60.344 28.9827 60.344 27.698V2.52853C60.344 1.01019 59.0593 -0.157769 57.5409 0.0174243C44.4598 1.41897 32.4883 6.67478 22.911 14.6753C21.7431 15.6096 21.6847 17.3032 22.7358 18.3543ZM13.3334 24.4868C6.09205 33.8304 1.30343 45.1596 0.0186744 57.54C-0.156519 58.9999 1.06984 60.2846 2.52978 60.2846H27.6992C28.9256 60.2846 29.9768 59.4087 30.2103 58.1823C31.0279 53.5105 32.8382 49.1307 35.3494 45.3348C35.9917 44.342 35.8749 42.9989 35.0574 42.1229L17.1292 24.3116C16.0781 23.202 14.2677 23.3188 13.3334 24.4868ZM80.6078 131.879H113.603C115.471 131.879 116.99 133.397 117.048 135.324V200.555C117.048 202.482 115.471 204 113.603 204H80.6078C78.6807 204 77.1624 202.423 77.1624 200.555V135.324C77.1624 133.397 78.7391 131.879 80.6078 131.879ZM158.452 158.976H125.574C123.647 158.976 122.071 160.553 122.071 162.48V200.439C122.071 202.366 123.647 203.943 125.574 203.943H158.452C160.379 203.943 161.956 202.366 161.956 200.439V162.48C161.956 160.553 160.379 158.976 158.452 158.976ZM170.657 177.256H203.243C205.229 177.256 206.864 178.891 206.864 180.876V200.264C206.864 202.25 205.229 203.885 203.243 203.885H170.657C168.672 203.885 167.037 202.25 167.037 200.264V180.876C167.037 178.891 168.672 177.256 170.657 177.256Z",fill:"#EBF2FA"}),(0,fs.jsx)("path",{d:"M134.275 171.532H21.2749C15.4351 171.532 10.6465 166.743 10.6465 160.903V87.6726C10.6465 81.8328 15.4351 77.0442 21.2749 77.0442H134.216C140.056 77.0442 144.845 81.8328 144.845 87.6726V160.903C144.903 166.802 140.114 171.532 134.275 171.532V171.532Z",fillRule:"evenodd",clipRule:"evenodd",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,fs.jsx)("path",{d:"M21.6246 90.7687C23.3017 90.7687 24.6613 89.4091 24.6613 87.732C24.6613 86.0549 23.3017 84.6953 21.6246 84.6953C19.9475 84.6953 18.5879 86.0549 18.5879 87.732C18.5879 89.4091 19.9475 90.7687 21.6246 90.7687Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M31.4937 90.7687C33.1708 90.7687 34.5304 89.4091 34.5304 87.732C34.5304 86.0549 33.1708 84.6953 31.4937 84.6953C29.8166 84.6953 28.457 86.0549 28.457 87.732C28.457 89.4091 29.8166 90.7687 31.4937 90.7687Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M41.3629 90.7687C43.04 90.7687 44.3995 89.4091 44.3995 87.732C44.3995 86.0549 43.04 84.6953 41.3629 84.6953C39.6857 84.6953 38.3262 86.0549 38.3262 87.732C38.3262 89.4091 39.6857 90.7687 41.3629 90.7687Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M10.8223 98.592H144.495",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,fs.jsx)("path",{d:"M184.555 149.164L57.89 156.172C53.6269 156.406 50.123 153.135 50.123 148.872V51.1145C50.123 46.8514 53.6269 43.5812 57.89 43.8148L184.555 50.8225C187.825 50.9977 190.453 54.1512 190.453 57.8302V142.157C190.453 145.836 187.825 148.989 184.555 149.164Z",fill:"#027BF3"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M65.1304 54.1512C65.1304 56.1368 63.5537 57.6551 61.5681 57.5383C59.5826 57.4799 58.0059 55.7864 58.0059 53.8009C58.0059 51.8153 59.641 50.297 61.5681 50.4138C63.4953 50.4722 65.1304 52.1657 65.1304 54.1512ZM76.6357 54.6174C76.6357 56.5445 75.059 58.0629 73.1319 58.0045C71.2047 57.9461 69.628 56.2525 69.628 54.3254C69.628 52.3983 71.2047 50.8799 73.1319 50.9383C75.059 51.0551 76.6357 52.6903 76.6357 54.6174ZM84.461 58.4718C86.3298 58.5886 87.8481 57.0702 87.8481 55.1431C87.8481 53.216 86.3298 51.5808 84.461 51.5224C82.5339 51.4056 81.0156 52.924 81.0156 54.8511C81.0156 56.7782 82.5923 58.4134 84.461 58.4718Z",fill:"white"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M75.467 142.974V85.2772C71.496 84.7516 66.8826 84.8684 61.5684 85.9779V143.617L75.467 142.974ZM88.84 90.6509V142.45L77.7444 142.917V85.6871C82.0658 86.6214 85.6865 88.4318 88.84 90.6509ZM102.271 104.55C102.213 104.491 102.169 104.433 102.125 104.374C102.082 104.316 102.038 104.258 101.979 104.199C101.559 103.689 101.138 103.173 100.714 102.653L100.714 102.653C97.8391 99.1308 94.8401 95.4564 91.1759 92.4028V142.333L102.271 141.866V104.55ZM115.703 110.272C111.79 110.214 107.994 109.571 104.607 106.827V141.749L115.703 141.281V110.272ZM129.134 109.863C126.37 109.69 123.605 109.869 120.888 110.044L120.888 110.044L120.888 110.044C119.931 110.106 118.981 110.167 118.039 110.213V141.164L129.134 140.697V109.863ZM153.136 139.704L144.902 140.054V117.863C153.078 127.148 153.136 139.704 153.136 139.704ZM140.113 113.6C140.989 114.184 141.807 114.826 142.566 115.527V140.171L131.47 140.638V110.155C134.39 110.622 137.252 111.615 140.113 113.6Z",fill:"#00236B"}),(0,fs.jsx)("path",{d:"M55.7449 76.4361C55.0549 77.2986 55.1947 78.5572 56.0573 79.2472C56.9198 79.9372 58.1784 79.7974 58.8684 78.9349L55.7449 76.4361ZM61.5113 72.4297L63.0863 71.1971C62.7095 70.7157 62.1333 70.433 61.522 70.4297C60.9107 70.4264 60.3314 70.7029 59.9495 71.1803L61.5113 72.4297ZM64.1409 79.0349C64.8217 79.9048 66.0787 80.0581 66.9485 79.3773C67.8184 78.6965 67.9717 77.4395 67.2909 76.5697L64.1409 79.0349ZM172.081 132.537C171.218 131.847 169.96 131.987 169.27 132.849C168.58 133.712 168.719 134.97 169.582 135.66L172.081 132.537ZM176.087 138.303L177.301 139.893C177.79 139.52 178.08 138.942 178.087 138.326C178.094 137.711 177.817 137.126 177.337 136.742L176.087 138.303ZM169.443 140.86C168.565 141.53 168.396 142.785 169.067 143.663C169.737 144.541 170.992 144.71 171.87 144.039L169.443 140.86ZM58.8684 78.9349L63.073 73.6791L59.9495 71.1803L55.7449 76.4361L58.8684 78.9349ZM59.9363 73.6623L64.1409 79.0349L67.2909 76.5697L63.0863 71.1971L59.9363 73.6623ZM169.582 135.66L174.838 139.865L177.337 136.742L172.081 132.537L169.582 135.66ZM174.874 136.714L169.443 140.86L171.87 144.039L177.301 139.893L174.874 136.714Z",fill:"white"}),(0,fs.jsx)("path",{d:"M147.137 69.1464C146.033 69.1053 145.105 69.9668 145.064 71.0706C145.023 72.1744 145.884 73.1025 146.988 73.1436L147.137 69.1464ZM176.771 74.2532C177.875 74.2943 178.803 73.4328 178.844 72.329C178.885 71.2252 178.024 70.2971 176.92 70.256L176.771 74.2532ZM147.114 79.6573C146.01 79.6291 145.092 80.5015 145.064 81.6057C145.036 82.7099 145.908 83.6278 147.012 83.656L147.114 79.6573ZM176.795 84.4152C177.899 84.4433 178.817 83.571 178.846 82.4668C178.874 81.3626 178.001 80.4446 176.897 80.4165L176.795 84.4152ZM147.075 90.3435C145.97 90.337 145.07 91.2271 145.063 92.3317C145.057 93.4362 145.947 94.3369 147.052 94.3434L147.075 90.3435ZM176.834 94.5186C177.939 94.5251 178.84 93.635 178.846 92.5304C178.853 91.4258 177.962 90.5252 176.858 90.5187L176.834 94.5186ZM146.988 73.1436L176.771 74.2532L176.92 70.256L147.137 69.1464L146.988 73.1436ZM147.012 83.656L176.795 84.4152L176.897 80.4165L147.114 79.6573L147.012 83.656ZM147.052 94.3434L176.834 94.5186L176.858 90.5187L147.075 90.3435L147.052 94.3434Z",fill:"white"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M143.442 71.2024C143.442 72.604 142.274 73.7135 140.872 73.6551C139.471 73.5967 138.303 72.3704 138.303 70.9688C138.303 69.5673 139.471 68.3993 140.872 68.5161C142.332 68.5745 143.442 69.8009 143.442 71.2024ZM143.443 81.5981C143.443 82.9996 142.275 84.1092 140.873 84.0508C139.472 83.9924 138.304 82.766 138.304 81.3645C138.304 79.9045 139.472 78.795 140.873 78.9118C142.333 78.9702 143.443 80.1965 143.443 81.5981ZM140.873 94.4457C142.275 94.5041 143.443 93.3945 143.443 91.993C143.443 90.5914 142.333 89.3651 140.873 89.3067C139.472 89.1899 138.304 90.3578 138.304 91.7594C138.304 93.1609 139.472 94.3873 140.873 94.4457Z",fill:"white"}),(0,fs.jsx)("path",{opacity:"0.2",d:"M190.452 91.8753V57.771C190.452 54.0919 187.824 50.9385 184.553 50.7633L160.902 49.4785C159.793 52.8656 159.15 56.5447 159.15 60.4573C159.15 78.0934 171.94 92.2841 187.24 92.1089C188.291 92.1673 189.4 92.0505 190.452 91.8753Z",fill:"#00236B"}),(0,fs.jsx)("path",{d:"M220.645 58.8832C220.645 42.2982 209.024 28.1076 194.191 27.2316C178.891 26.3556 166.102 39.9039 166.102 57.5401C166.102 75.1762 178.891 89.3669 194.191 89.1917C209.024 89.0749 220.645 75.4682 220.645 58.8832Z",fill:"#FF4645"}),(0,fs.jsx)("path",{d:"M215.329 40.3719C210.541 32.897 202.949 27.758 194.189 27.2324V58.2417L215.329 40.3719Z",fill:"#FFCC00"}),(0,fs.jsx)("path",{d:"M215.329 40.3721L194.189 58.2418L220.644 58.8842C220.644 51.9932 218.658 45.5695 215.329 40.3721V40.3721Z",fill:"#00236B"}),(0,fs.jsx)("path",{d:"M194.248 58.2408V27.2316C178.947 26.3556 166.158 39.9039 166.158 57.5401L194.248 58.2408Z",fill:"#FF4645"}),(0,fs.jsx)("path",{d:"M161.151 14.7336C161.151 13.6291 160.256 12.7336 159.151 12.7336C158.047 12.7336 157.151 13.6291 157.151 14.7336H161.151ZM157.151 18.9383C157.151 20.0429 158.047 20.9383 159.151 20.9383C160.256 20.9383 161.151 20.0429 161.151 18.9383H157.151ZM161.151 27.8138C161.151 26.7093 160.256 25.8138 159.151 25.8138C158.047 25.8138 157.151 26.7093 157.151 27.8138H161.151ZM157.151 32.3689C157.151 33.4734 158.047 34.3689 159.151 34.3689C160.256 34.3689 161.151 33.4734 161.151 32.3689H157.151ZM167.97 25.5526C169.074 25.5526 169.97 24.6572 169.97 23.5526C169.97 22.4481 169.074 21.5526 167.97 21.5526V25.5526ZM163.707 21.5526C162.602 21.5526 161.707 22.4481 161.707 23.5526C161.707 24.6572 162.602 25.5526 163.707 25.5526V21.5526ZM154.538 25.5526C155.643 25.5526 156.538 24.6572 156.538 23.5526C156.538 22.4481 155.643 21.5526 154.538 21.5526V25.5526ZM150.275 21.5526C149.171 21.5526 148.275 22.4481 148.275 23.5526C148.275 24.6572 149.171 25.5526 150.275 25.5526V21.5526ZM157.151 14.7336V18.9383H161.151V14.7336H157.151ZM157.151 27.8138V32.3689H161.151V27.8138H157.151ZM167.97 21.5526H163.707V25.5526H167.97V21.5526ZM154.538 21.5526H150.275V25.5526H154.538V21.5526Z",fill:"#2EE5C0"})]}),(0,fs.jsxs)("g",{id:"icon.404",children:[(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M307.333 168.43C316.733 154.23 321.433 135.83 321.433 113.13C321.433 78.7305 309.733 51.2305 286.133 30.9305C262.733 10.4305 223.133 0.230469 179.433 0.230469C166.333 0.230469 155.333 1.13047 144.633 2.93047C133.933 4.73047 124.533 6.83047 116.433 9.23047C111.033 10.8305 100.333 14.9305 93.1334 17.8305C89.0334 19.5305 86.2334 23.8305 86.2334 28.6305V68.1305C86.2334 76.3305 94.0334 81.9305 101.133 78.6305C101.749 78.3525 102.352 78.0786 102.939 77.8124C105.306 76.738 107.391 75.7915 108.833 75.2305C114.533 72.9305 121.233 71.0305 128.933 69.4305C136.633 67.8305 145.233 67.0305 154.633 67.0305C176.833 67.0305 197.733 72.0305 206.933 81.9305C216.133 91.9305 220.733 104.43 220.733 119.43C220.733 132.43 218.033 143.53 212.533 152.63C207.033 161.73 199.433 170.63 189.633 179.13C181.733 186.03 174.433 192.63 167.633 198.93C160.833 205.23 155.033 212.13 150.133 219.63C145.233 227.13 141.433 235.63 138.833 244.93C137.233 250.53 136.133 265.23 135.533 275.93C135.233 282.53 140.033 288.13 146.233 288.13H197.433C202.833 288.13 207.433 283.73 208.033 277.93C208.633 272.23 210.033 265.43 213.533 260.13C217.533 254.23 222.233 248.33 228.233 242.83C234.233 237.33 241.233 231.83 249.133 226.13C257.133 220.53 265.333 214.03 274.033 206.73C286.833 195.33 297.933 182.63 307.333 168.43ZM139.733 381.13C148.733 390.63 159.833 395.33 173.133 395.33C179.433 395.33 185.533 394.03 191.333 391.33C197.133 388.73 202.233 385.33 206.533 381.03C210.833 376.73 214.233 371.63 216.733 365.83C219.233 360.03 220.433 353.73 220.433 346.83C220.433 340.03 219.233 333.63 216.733 327.83C214.233 322.03 210.833 316.93 206.533 312.43C202.233 307.93 197.133 304.53 191.333 302.13C185.533 299.73 179.433 298.53 173.133 298.53C159.833 298.53 148.733 303.13 139.733 312.43C130.733 321.73 126.233 333.23 126.233 346.93C126.233 360.33 130.733 371.73 139.733 381.13Z",fill:"#ECF2F9"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M213.933 353.03H20.4334C10.4334 353.03 2.2334 344.83 2.2334 334.83V209.43C2.2334 199.43 10.4334 191.23 20.4334 191.23H213.933C223.933 191.23 232.133 199.43 232.133 209.43V334.83C232.133 344.93 223.933 353.03 213.933 353.03Z",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10"}),(0,fs.jsx)("path",{d:"M21.0335 214.732C23.9054 214.732 26.2335 212.404 26.2335 209.532C26.2335 206.66 23.9054 204.332 21.0335 204.332C18.1616 204.332 15.8335 206.66 15.8335 209.532C15.8335 212.404 18.1616 214.732 21.0335 214.732Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M37.9334 214.732C40.8053 214.732 43.1334 212.404 43.1334 209.532C43.1334 206.66 40.8053 204.332 37.9334 204.332C35.0615 204.332 32.7334 206.66 32.7334 209.532C32.7334 212.404 35.0615 214.732 37.9334 214.732Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M54.8333 214.732C57.7052 214.732 60.0333 212.404 60.0333 209.532C60.0333 206.66 57.7052 204.332 54.8333 204.332C51.9614 204.332 49.6333 206.66 49.6333 209.532C49.6333 212.404 51.9614 214.732 54.8333 214.732Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M2.5332 228.129H231.433",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10",fill:"#FFFFFF"}),(0,fs.jsx)("path",{d:"M301.033 264.83L84.1335 276.83C76.8335 277.23 70.8335 271.63 70.8335 264.33V96.9303C70.8335 89.6303 76.8335 84.0303 84.1335 84.4303L301.033 96.4303C306.633 96.7303 311.133 102.13 311.133 108.43V252.83C311.133 259.13 306.633 264.53 301.033 264.83Z",fill:"#027BF3"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M90.4335 107.93C93.8335 108.13 96.5335 105.53 96.5335 102.13C96.5335 98.7296 93.8335 95.8296 90.4335 95.7296C87.1335 95.5296 84.3335 98.1296 84.3335 101.53C84.3335 104.93 87.0335 107.83 90.4335 107.93ZM110.233 108.728C113.533 108.828 116.233 106.228 116.233 102.928C116.233 99.6278 113.533 96.8278 110.233 96.6278C106.933 96.5278 104.233 99.1278 104.233 102.428C104.233 105.728 106.933 108.628 110.233 108.728ZM135.433 103.828C135.433 107.128 132.833 109.728 129.633 109.528C126.433 109.428 123.733 106.628 123.733 103.328C123.733 100.028 126.333 97.428 129.633 97.628C132.833 97.728 135.433 100.528 135.433 103.828ZM201.434 165.531L220.534 144.631L237.934 163.731L219.034 184.631L237.934 205.131L220.534 224.631L201.434 204.131L182.034 225.631L163.934 206.531L183.534 185.031L163.934 164.031L182.034 144.531L201.434 165.531Z",fill:"white"}),(0,fs.jsx)("path",{d:"M327.433 112.83C327.433 84.4297 305.733 75.7297 293.933 74.9297C293.833 74.9297 260.433 77.2297 260.433 120.23C260.433 145.73 281.633 165.73 306.433 164.83C314.233 164.53 321.333 162.23 327.433 158.43V112.83Z",fill:"#67B0F8"}),(0,fs.jsx)("path",{d:"M380.534 195.931C377.634 199.331 372.934 199.631 370.034 196.731L331.434 157.731L342.734 145.531L380.534 184.531C383.434 187.531 383.434 192.531 380.534 195.931Z",fill:"#FF4645"}),(0,fs.jsx)("path",{d:"M342.833 145.629L331.533 157.829L335.233 161.529C337.133 163.429 340.133 163.529 342.033 161.729C343.133 160.729 344.233 159.629 345.233 158.529C345.833 157.829 346.533 157.129 347.133 156.429C348.733 154.529 348.633 151.629 346.833 149.829L342.833 145.629Z",fill:"#D93654"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M267.633 154.13C244.633 132.729 244.633 96.8295 267.633 76.0295C289.533 56.2295 322.733 59.0295 342.033 80.3295C360.433 100.729 360.433 132.03 342.033 151.93C322.733 172.73 289.533 174.53 267.633 154.13ZM277.033 143.328C292.633 158.328 316.833 157.528 331.133 142.428C344.933 127.828 344.933 104.628 331.133 89.6281C316.833 74.128 292.633 72.628 277.033 87.1281C260.833 102.228 260.833 127.828 277.033 143.328Z",fill:"#00236B"}),(0,fs.jsx)("path",{d:"M41.0336 42.7305C41.0336 41.6259 40.1382 40.7305 39.0336 40.7305C37.929 40.7305 37.0336 41.6259 37.0336 42.7305H41.0336ZM37.0336 51.0305C37.0336 52.135 37.929 53.0305 39.0336 53.0305C40.1382 53.0305 41.0336 52.135 41.0336 51.0305H37.0336ZM41.0336 68.2305C41.0336 67.1259 40.1382 66.2305 39.0336 66.2305C37.929 66.2305 37.0336 67.1259 37.0336 68.2305H41.0336ZM37.0336 77.1305C37.0336 78.235 37.929 79.1305 39.0336 79.1305C40.1382 79.1305 41.0336 78.235 41.0336 77.1305H37.0336ZM56.2336 61.9305C57.3382 61.9305 58.2336 61.035 58.2336 59.9305C58.2336 58.8259 57.3382 57.9305 56.2336 57.9305V61.9305ZM48.0336 57.9305C46.929 57.9305 46.0336 58.8259 46.0336 59.9305C46.0336 61.035 46.929 61.9305 48.0336 61.9305V57.9305ZM30.1336 61.9305C31.2382 61.9305 32.1336 61.035 32.1336 59.9305C32.1336 58.8259 31.2382 57.9305 30.1336 57.9305V61.9305ZM21.9336 57.9305C20.829 57.9305 19.9336 58.8259 19.9336 59.9305C19.9336 61.035 20.829 61.9305 21.9336 61.9305V57.9305ZM37.0336 42.7305V51.0305H41.0336V42.7305H37.0336ZM37.0336 68.2305V77.1305H41.0336V68.2305H37.0336ZM56.2336 57.9305H48.0336V61.9305H56.2336V57.9305ZM30.1336 57.9305H21.9336V61.9305H30.1336V57.9305Z",fill:"#2EE5C0"})]}),"/* History controls */",(0,fs.jsx)("path",{id:"icon.previous",d:"M5.41406 10.6094C5.36719 10.6562 5.29688 10.6797 5.22656 10.6797C5.13281 10.6797 5.0625 10.6562 5.01562 10.6094L0.117188 5.6875C0.046875 5.64062 0.0234375 5.59375 0.0234375 5.5C0.0234375 5.42969 0.046875 5.35938 0.117188 5.3125L5.01562 0.390625C5.0625 0.34375 5.13281 0.320312 5.22656 0.320312C5.29688 0.320312 5.36719 0.34375 5.41406 0.390625L5.88281 0.859375C5.92969 0.90625 5.97656 0.976562 5.97656 1.04688C5.97656 1.14062 5.92969 1.21094 5.88281 1.25781L1.64062 5.5L5.88281 9.74219C5.92969 9.8125 5.97656 9.88281 5.97656 9.95312C5.97656 10.0469 5.92969 10.0938 5.88281 10.1406L5.41406 10.6094Z",fill:"currentColor"}),(0,fs.jsx)("path",{id:"icon.next",d:"M0.787109 0.191406C0.830078 0.148438 0.873047 0.126953 0.958984 0.126953C1.02344 0.126953 1.08789 0.148438 1.15234 0.191406L5.64258 4.70312C5.68555 4.74609 5.72852 4.81055 5.72852 4.875C5.72852 4.96094 5.68555 5.00391 5.64258 5.04688L1.15234 9.55859C1.08789 9.60156 1.02344 9.62305 0.958984 9.62305C0.873047 9.62305 0.830078 9.60156 0.787109 9.55859L0.357422 9.12891C0.292969 9.08594 0.271484 9.04297 0.271484 8.95703C0.271484 8.89258 0.292969 8.82812 0.357422 8.76367L4.24609 4.875L0.357422 0.986328C0.292969 0.943359 0.271484 0.878906 0.271484 0.792969C0.271484 0.728516 0.292969 0.664062 0.357422 0.621094L0.787109 0.191406Z",fill:"currentColor"}),(0,fs.jsxs)("g",{id:"icon.dialog-warning",width:"24",height:"22",viewBox:"0 0 24 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.253448 19.0301L10.7294 0.712125C11.2724 -0.237375 12.7304 -0.237375 13.2719 0.712125L23.7479 19.0301C24.2609 19.9256 23.5649 21.0071 22.4774 21.0071H1.52545C0.436448 21.0071 -0.258052 19.9256 0.253448 19.0301Z",fill:"var(--yc-color-base-warning-heavy)"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.5 13.0074C13.5 13.2836 13.2761 13.5074 13 13.5074H11C10.7239 13.5074 10.5 13.2836 10.5 13.0074V7.39844C10.5 7.1223 10.7239 6.89844 11 6.89844H13C13.2761 6.89844 13.5 7.1223 13.5 7.39844V13.0074Z",fill:"var(--yc-color-text-complementary)"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.5 17.548C13.5 17.8241 13.2761 18.048 13 18.048H11C10.7239 18.048 10.5 17.8241 10.5 17.548V15.8555C10.5 15.5793 10.7239 15.3555 11 15.3555H13C13.2761 15.3555 13.5 15.5793 13.5 15.8555V17.548Z",fill:"var(--yc-color-text-complementary)"})]}),(0,fs.jsx)("g",{id:"icon.chevron-down",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:(0,fs.jsx)("path",{stroke:"currentColor",fill:"none",d:"M3 6l5 5 5-5"})}),"/* theme icons */",(0,fs.jsx)("path",{id:"icon.sun",d:"M7.99108 5.98e-05C7.67665 0.00674984 7.42467 0.265426 7.42913 0.579851V2.29246C7.4269 2.49762 7.53394 2.6894 7.71233 2.79421C7.89073 2.89679 8.10927 2.89679 8.28767 2.79421C8.46606 2.6894 8.5731 2.49762 8.57087 2.29246V0.579851C8.5731 0.425983 8.51289 0.276576 8.40362 0.167307C8.29436 0.0580392 8.14495 -0.00217002 7.99108 5.98e-05ZM2.7462 2.17651C2.51429 2.17874 2.30467 2.31922 2.2177 2.5333C2.13073 2.74961 2.18202 2.9949 2.34927 3.15769L3.56014 4.36856C3.70286 4.51797 3.91693 4.57818 4.1154 4.52466C4.3161 4.47337 4.47219 4.31727 4.52348 4.11658C4.577 3.91811 4.51679 3.70403 4.36739 3.56131L3.15652 2.35044C3.04948 2.23895 2.90007 2.17651 2.7462 2.17651ZM13.236 2.17651C13.0865 2.18097 12.9461 2.2434 12.8435 2.35044L11.6326 3.56131C11.4832 3.70403 11.423 3.91811 11.4765 4.11658C11.5278 4.31727 11.6839 4.47337 11.8846 4.52466C12.0831 4.57818 12.2971 4.51797 12.4399 4.36856L13.6507 3.15769C13.8202 2.99267 13.8693 2.74292 13.7778 2.52661C13.6864 2.30807 13.4723 2.16982 13.236 2.17651ZM8 4.00508C5.79233 4.00508 4.0039 5.79351 4.0039 8.00118C4.0039 10.2088 5.79233 11.9973 8 11.9973C10.2077 11.9973 11.9961 10.2088 11.9961 8.00118C11.9961 5.79351 10.2077 4.00508 8 4.00508ZM0.578676 7.43031C0.373519 7.42808 0.181743 7.53511 0.076934 7.71351C-0.0256447 7.89191 -0.0256447 8.11044 0.076934 8.28884C0.181743 8.46724 0.373519 8.57428 0.578676 8.57205H2.29129C2.49645 8.57428 2.68822 8.46724 2.79303 8.28884C2.89561 8.11044 2.89561 7.89191 2.79303 7.71351C2.68822 7.53511 2.49645 7.42808 2.29129 7.43031H0.578676ZM13.7087 7.43031C13.5036 7.42808 13.3118 7.53511 13.207 7.71351C13.1044 7.89191 13.1044 8.11044 13.207 8.28884C13.3118 8.46724 13.5036 8.57428 13.7087 8.57205H15.4213C15.6265 8.57428 15.8183 8.46724 15.9231 8.28884C16.0256 8.11044 16.0256 7.89191 15.9231 7.71351C15.8183 7.53511 15.6265 7.42808 15.4213 7.43031H13.7087ZM3.95261 11.4621C3.80321 11.4643 3.66272 11.5268 3.56014 11.6338L2.34927 12.8447C2.19986 12.9874 2.13965 13.2015 2.19317 13.3999C2.24446 13.6006 2.40056 13.7567 2.60125 13.808C2.79972 13.8615 3.0138 13.8013 3.15652 13.6519L4.36739 12.441C4.53686 12.276 4.58592 12.0263 4.49449 11.81C4.40307 11.5914 4.18899 11.4532 3.95261 11.4621ZM12.0318 11.4621C11.7976 11.4621 11.5902 11.6026 11.501 11.8166C11.4141 12.033 11.4654 12.2782 11.6326 12.441L12.8435 13.6519C12.9862 13.8013 13.2003 13.8615 13.3987 13.808C13.5994 13.7567 13.7555 13.6006 13.8068 13.3999C13.8603 13.2015 13.8001 12.9874 13.6507 12.8447L12.4399 11.6338C12.3328 11.5223 12.1856 11.4621 12.0318 11.4621ZM7.99108 13.1301C7.67665 13.1368 7.42467 13.3955 7.42913 13.7099V15.4225C7.4269 15.6277 7.53394 15.8194 7.71233 15.9242C7.89073 16.0268 8.10927 16.0268 8.28767 15.9242C8.46606 15.8194 8.5731 15.6277 8.57087 15.4225V13.7099C8.5731 13.556 8.51289 13.4066 8.40362 13.2973C8.29436 13.1881 8.14495 13.1279 7.99108 13.1301Z",fill:"currentColor"}),(0,fs.jsx)("path",{id:"icon.moon",d:"M10.9102 13.991C12.7951 13.305 14.209 11.8446 14.8419 10.0201C14.9307 9.74456 14.627 9.50386 14.3819 9.6471C11.6317 11.2966 8.08679 10.0199 6.99259 7.01362C6.36734 5.29574 6.70084 3.39103 7.89136 1.98499C8.07785 1.755 7.88469 1.44702 7.60487 1.49482C7.2925 1.52745 6.78277 1.68596 6.46392 1.77499C3.07588 3.00814 1.35459 6.74195 2.57904 10.1061C3.81219 13.4942 7.52215 15.2241 10.9102 13.991Z",fill:"currentColor"}),(0,fs.jsx)("path",{id:"icon.pencil",d:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"}),(0,fs.jsx)("path",{id:"icon.trash",d:"M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z"}),(0,fs.jsx)("path",{id:"icon.kikimr-logo",d:"M6.47 30.11L6.47 21.37L10.81 7.45L9.35 7.45L5.80 19.50L2.19 7.45L0.51 7.45L4.88 21.37L4.88 30.11ZM13.12 30.11L15.44 30.11C20.45 30.11 23.84 25.61 23.84 17.94C23.84 10.08 20.26 7.45 15.79 7.45L13.12 7.45ZM15.79 8.75C19.34 8.75 22.22 11.06 22.22 18.07C22.22 25.01 19.50 28.82 15.47 28.82L14.71 28.82L14.71 8.75ZM29.67 30.11C33.38 30.11 36.17 28.15 36.17 23.62C36.17 20.80 34.97 18.67 32.37 18.01C34.30 17.15 35.38 15.44 35.38 12.81C35.38 9.48 33.60 7.45 30.05 7.45L26.75 7.45L26.75 30.11ZM29.99 8.72C32.65 8.72 33.82 10.24 33.82 12.93C33.82 16.10 32.24 17.47 29.92 17.47L28.34 17.47L28.34 8.72ZM30.40 18.70C33.22 18.70 34.58 20.70 34.58 23.84C34.58 27.55 32.52 28.85 29.45 28.85L28.34 28.85L28.34 18.70ZM49.58 26.63L50.82 26.63L54.21 14.01C54.46 13.06 54.68 12.14 54.97 10.87L55.09 10.87C55.03 12.01 54.97 13.16 54.97 14.23L54.97 30.11L56.49 30.11L56.49 7.45L54.71 7.45L50.85 21.94C50.69 22.51 50.43 23.71 50.31 24.57L50.21 24.57C50.12 23.71 49.90 22.54 49.74 21.94L45.90 7.45L44.06 7.45L44.06 30.11L45.46 30.11L45.46 14.23C45.46 13.09 45.43 11.95 45.36 10.87L45.46 10.87C45.65 11.92 45.90 12.93 46.22 14.11ZM64.13 30.43C66.89 30.43 69.01 27.33 69.01 22.03C69.01 16.55 66.89 13.82 64.13 13.82C61.37 13.82 59.25 16.90 59.25 22.22C59.25 27.67 61.37 30.43 64.13 30.43ZM64.13 29.23C62.26 29.23 60.74 27.10 60.74 22.13C60.74 17.28 62.26 15.06 64.13 15.06C66.00 15.06 67.52 17.12 67.52 22.13C67.52 26.95 66.00 29.23 64.13 29.23ZM76.81 15.09C78.27 15.09 78.96 15.98 78.96 17.88L78.96 30.11L80.45 30.11L80.45 17.69C80.45 15.15 79.22 13.82 77.09 13.82C74.94 13.82 73.67 15.60 73.23 16.77L73.16 16.77L73.10 14.14L71.74 14.14L71.74 30.11L73.23 30.11L73.23 18.45C74.02 16.42 75.22 15.09 76.81 15.09ZM84.64 11.00C85.18 11.00 85.65 10.56 85.65 9.99C85.65 9.45 85.18 8.94 84.64 8.94C84.07 8.94 83.62 9.45 83.62 9.99C83.62 10.56 84.07 11.00 84.64 11.00ZM83.88 14.14L83.88 30.11L85.37 30.11L85.37 14.14ZM93.64 29.92L93.32 28.82C93.13 28.91 92.82 29.04 92.34 29.04C91.39 29.04 90.88 28.34 90.88 26.75L90.88 15.31L93.61 15.31L93.61 14.14L90.88 14.14L90.88 10.97L89.55 10.97L89.39 14.14L87.78 14.14L87.78 15.31L89.39 15.31L89.39 26.91C89.39 28.88 90.28 30.27 92.18 30.27C92.85 30.27 93.29 30.11 93.64 29.92ZM100.17 30.43C102.93 30.43 105.05 27.33 105.05 22.03C105.05 16.55 102.93 13.82 100.17 13.82C97.41 13.82 95.29 16.90 95.29 22.22C95.29 27.67 97.41 30.43 100.17 30.43ZM100.17 29.23C98.30 29.23 96.78 27.10 96.78 22.13C96.78 17.28 98.30 15.06 100.17 15.06C102.04 15.06 103.56 17.12 103.56 22.13C103.56 26.95 102.04 29.23 100.17 29.23ZM113.07 15.60L113.07 14.04C111.11 14.17 109.81 15.79 109.30 17.34L109.21 17.34L109.14 14.14L107.78 14.14L107.78 30.11L109.27 30.11L109.27 19.02C110.00 16.83 111.33 15.66 113.07 15.60ZM116.28 11.00C116.81 11.00 117.29 10.56 117.29 9.99C117.29 9.45 116.81 8.94 116.28 8.94C115.70 8.94 115.26 9.45 115.26 9.99C115.26 10.56 115.70 11.00 116.28 11.00ZM115.51 14.14L115.51 30.11L117.00 30.11L117.00 14.14ZM125.63 15.09C127.09 15.09 127.78 15.98 127.78 17.88L127.78 30.11L129.27 30.11L129.27 17.69C129.27 15.15 128.04 13.82 125.91 13.82C123.76 13.82 122.49 15.60 122.05 16.77L121.98 16.77L121.92 14.14L120.56 14.14L120.56 30.11L122.05 30.11L122.05 18.45C122.84 16.42 124.04 15.09 125.63 15.09ZM136.60 29.10C134.69 29.10 133.49 26.63 133.49 22.44C133.49 17.72 134.82 14.99 136.85 14.99C138.28 14.99 139.16 15.72 139.80 17.24L139.80 26.09C139.10 27.71 137.96 29.10 136.60 29.10ZM136.37 35.31C139.26 35.31 141.29 33.76 141.29 29.96L141.29 14.14L140.05 14.14L139.89 15.63C139.35 14.55 138.28 13.82 137.04 13.82C133.96 13.82 132.00 17.02 132.00 22.57C132.00 27.20 133.65 30.40 136.31 30.40C137.99 30.40 139.10 29.16 139.80 27.77L139.80 29.80C139.80 32.87 138.50 34.01 136.37 34.01C134.88 34.01 133.55 33.38 132.98 32.81L132.54 34.11C133.17 34.62 134.53 35.31 136.37 35.31Z"}),(0,fs.jsx)("path",{id:"icon.question",fillRule:"evenodd",clipRule:"evenodd",d:"M22 12.219c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10 10 4.477 10 10zm-2 0a8 8 0 11-16 0 8 8 0 0116 0zm-9.25 4.243c0-.723.55-1.243 1.243-1.243.708 0 1.257.52 1.257 1.243 0 .722-.55 1.257-1.257 1.257a1.228 1.228 0 01-1.243-1.258zm1.475-9.743c-2.157 0-3.775 1.243-3.775 3.25v.025a.5.5 0 00.5.5h.803c.24 0 .435-.195.435-.435 0-1.123.868-1.722 2.037-1.722 1.138 0 1.887.599 1.887 1.453 0 .809-.42 1.183-1.468 1.662l-.3.135c-.883.39-1.213.974-1.213 1.992v.14a.5.5 0 00.5.5h.738a.5.5 0 00.5-.5v-.035c0-.45.12-.629.48-.794l.299-.134c1.258-.57 2.202-1.319 2.202-2.951v-.09c0-1.723-1.498-2.996-3.625-2.996z",fill:"currentColor"}),(0,fs.jsxs)("g",{id:"icon.emptyState",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 383 396",width:"383",height:"396",fill:"none",children:[(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M307.333 168.43c9.4-14.2 14.1-32.6 14.1-55.3 0-34.4-11.7-61.9-35.3-82.2-23.4-20.5-63-30.7-106.7-30.7-13.1 0-24.1.9-34.8 2.7-10.7 1.8-20.1 3.9-28.2 6.3-5.4 1.6-16.1 5.7-23.3 8.6-4.1 1.7-6.9 6-6.9 10.8v39.5c0 8.2 7.8 13.8 14.9 10.5a458.74 458.74 0 0 0 1.806-.818c2.367-1.074 4.452-2.02 5.894-2.581 5.7-2.3 12.4-4.2 20.1-5.8 7.7-1.6 16.3-2.4 25.7-2.4 22.2 0 43.1 5 52.3 14.9 9.2 10 13.8 22.499 13.8 37.499 0 13-2.7 24.1-8.2 33.2-5.5 9.1-13.1 18-22.9 26.5-7.9 6.9-15.2 13.5-22 19.8-6.8 6.3-12.6 13.2-17.5 20.7s-8.7 16-11.3 25.3c-1.6 5.6-2.7 20.3-3.3 31-.3 6.6 4.5 12.2 10.7 12.2h51.2c5.4 0 10-4.4 10.6-10.2.6-5.7 2-12.5 5.5-17.8 4-5.9 8.7-11.8 14.7-17.3s13-11 20.9-16.7c8-5.6 16.2-12.1 24.9-19.4 12.8-11.4 23.9-24.1 33.3-38.3zm-167.6 212.7c9 9.5 20.1 14.2 33.4 14.2 6.3 0 12.4-1.3 18.2-4 5.8-2.6 10.9-6 15.2-10.3 4.3-4.3 7.7-9.4 10.2-15.2 2.5-5.8 3.7-12.1 3.7-19 0-6.8-1.2-13.2-3.7-19-2.5-5.8-5.9-10.9-10.2-15.4-4.3-4.5-9.4-7.9-15.2-10.3-5.8-2.4-11.9-3.6-18.2-3.6-13.3 0-24.4 4.6-33.4 13.9s-13.5 20.8-13.5 34.5c0 13.4 4.5 24.8 13.5 34.2z",fill:"#ECF2F9"}),(0,fs.jsx)("path",{clipRule:"evenodd",d:"M213.933 353.03h-193.5c-10 0-18.2-8.2-18.2-18.2v-125.4c0-10 8.2-18.2 18.2-18.2h193.5c10 0 18.2 8.2 18.2 18.2v125.4c0 10.1-8.2 18.2-18.2 18.2z",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10"}),(0,fs.jsx)("path",{d:"M21.034 214.732a5.2 5.2 0 1 0 0-10.4 5.2 5.2 0 0 0 0 10.4zm16.899 0a5.2 5.2 0 1 0 0-10.4 5.2 5.2 0 0 0 0 10.4zm16.9 0a5.2 5.2 0 1 0 0-10.4 5.2 5.2 0 0 0 0 10.4z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M2.533 228.129h228.9",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10"}),(0,fs.jsx)("path",{d:"M301.033 264.83l-216.9 12c-7.3.4-13.3-5.2-13.3-12.5V96.93c0-7.3 6-12.9 13.3-12.5l216.9 12c5.6.3 10.1 5.7 10.1 12v144.4c0 6.3-4.5 11.7-10.1 12z",fill:"#027BF3"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M90.433 107.93c3.4.2 6.1-2.4 6.1-5.8s-2.7-6.3-6.1-6.4c-3.3-.2-6.1 2.4-6.1 5.8s2.7 6.3 6.1 6.4zm19.8.798c3.3.1 6-2.5 6-5.8s-2.7-6.1-6-6.3c-3.3-.1-6 2.5-6 5.8s2.7 6.2 6 6.3zm25.2-4.9c0 3.3-2.6 5.9-5.8 5.7-3.2-.1-5.9-2.9-5.9-6.2 0-3.3 2.6-5.9 5.9-5.7 3.2.1 5.8 2.9 5.8 6.2zm66.001 61.703l19.1-20.9 17.4 19.1-18.9 20.9 18.9 20.5-17.4 19.5-19.1-20.5-19.4 21.5-18.1-19.1 19.6-21.5-19.6-21 18.1-19.5 19.4 21z",fill:"#fff"}),(0,fs.jsx)("path",{d:"M327.433 112.83c0-28.4-21.7-37.1-33.5-37.9-.1 0-33.5 2.3-33.5 45.3 0 25.5 21.2 45.5 46 44.6 7.8-.3 14.9-2.6 21-6.4v-45.6z",fill:"#67B0F8"}),(0,fs.jsx)("path",{d:"M380.534 195.931c-2.9 3.4-7.6 3.7-10.5.8l-38.6-39 11.3-12.2 37.8 39c2.9 3 2.9 8 0 11.4z",fill:"#FF4645"}),(0,fs.jsx)("path",{d:"M342.833 145.629l-11.3 12.2 3.7 3.7c1.9 1.9 4.9 2 6.8.2 1.1-1 2.2-2.1 3.2-3.2.6-.7 1.3-1.4 1.9-2.1 1.6-1.9 1.5-4.8-.3-6.6l-4-4.2z",fill:"#D93654"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M267.633 154.13c-23-21.401-23-57.3 0-78.1 21.9-19.8 55.1-17 74.4 4.3 18.4 20.399 18.4 51.7 0 71.6-19.3 20.8-52.5 22.6-74.4 2.2zm9.4-10.802c15.6 15 39.8 14.2 54.1-.9 13.8-14.6 13.8-37.8 0-52.8-14.3-15.5-38.5-17-54.1-2.5-16.2 15.1-16.2 40.7 0 56.2z",fill:"#00236B"}),(0,fs.jsx)("path",{d:"M41.034 42.73a2 2 0 1 0-4 0h4zm-4 8.3a2 2 0 0 0 4 0h-4zm4 17.2a2 2 0 1 0-4 0h4zm-4 8.9a2 2 0 0 0 4 0h-4zm19.2-15.2a2 2 0 0 0 0-4v4zm-8.2-4a2 2 0 1 0 0 4v-4zm-17.9 4a2 2 0 0 0 0-4v4zm-8.2-4a2 2 0 1 0 0 4v-4zm15.1-15.2v8.3h4v-8.3h-4zm0 25.5v8.9h4v-8.9h-4zm19.2-10.3h-8.2v4h8.2v-4zm-26.1 0h-8.2v4h8.2v-4z",fill:"#2EE5C0"})]}),(0,fs.jsxs)("g",{id:"icon.accessDenied",width:"240",height:"240",viewBox:"0 0 240 240",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,fs.jsx)("path",{d:"M8.09538 76.0473H58.6587C61.5462 76.0473 64.2412 77.6463 65.7171 80.2046L102.228 145.123C105.436 150.815 113.521 150.624 116.473 144.803L177.495 25.1359C178.907 22.3856 181.666 20.6588 184.682 20.6588H231.909C238.005 20.6588 241.919 27.3105 239.031 32.811L139.188 224.049C128.215 244.515 99.7896 245.475 87.4696 225.839L1.29371 88.7751C-2.17129 83.2747 1.74288 76.0473 8.09538 76.0473Z",fill:"currentColor"}),(0,fs.jsx)("path",{d:"M38.51 148.083C39.6146 148.083 40.51 147.187 40.51 146.083C40.51 144.978 39.6146 144.083 38.51 144.083V148.083ZM25.5483 144.083C24.4438 144.083 23.5483 144.978 23.5483 146.083C23.5483 147.187 24.4438 148.083 25.5483 148.083V144.083ZM33.5708 152.649C34.1243 153.605 35.3479 153.931 36.3038 153.378C37.2597 152.824 37.5859 151.601 37.0324 150.645L33.5708 152.649ZM30.5516 139.452C29.9981 138.496 28.7745 138.17 27.8186 138.723C26.8627 139.277 26.5365 140.5 27.09 141.456L30.5516 139.452ZM27.09 150.645C26.5365 151.601 26.8627 152.824 27.8186 153.378C28.7745 153.931 29.9981 153.605 30.5516 152.649L27.09 150.645ZM37.0324 141.456C37.5859 140.5 37.2597 139.277 36.3038 138.723C35.3479 138.17 34.1243 138.496 33.5708 139.452L37.0324 141.456ZM59.2359 148.083C60.3405 148.083 61.2359 147.187 61.2359 146.083C61.2359 144.978 60.3405 144.083 59.2359 144.083V148.083ZM46.3384 144.083C45.2338 144.083 44.3384 144.978 44.3384 146.083C44.3384 147.187 45.2338 148.083 46.3384 148.083V144.083ZM54.2964 152.649C54.8499 153.605 56.0735 153.931 57.0294 153.378C57.9853 152.824 58.3115 151.601 57.758 150.645L54.2964 152.649ZM51.2772 139.452C50.7237 138.496 49.5001 138.17 48.5442 138.723C47.5883 139.277 47.2621 140.5 47.8156 141.456L51.2772 139.452ZM47.8156 150.645C47.2621 151.601 47.5883 152.824 48.5442 153.378C49.5001 153.931 50.7237 153.605 51.2772 152.649L47.8156 150.645ZM57.758 141.456C58.3115 140.5 57.9853 139.277 57.0294 138.723C56.0735 138.17 54.8499 138.496 54.2964 139.452L57.758 141.456ZM124.878 158.729H26.0616V162.729H124.878V158.729ZM26.0616 158.729C21.3209 158.729 17.4741 154.886 17.4741 150.176H13.4741C13.4741 157.107 19.124 162.729 26.0616 162.729V158.729ZM17.4741 150.176V141.925H13.4741V150.176H17.4741ZM17.4741 141.925C17.4741 137.216 21.3209 133.372 26.0616 133.372V129.372C19.124 129.372 13.4741 134.994 13.4741 141.925H17.4741ZM26.0616 133.372H124.878V129.372H26.0616V133.372ZM124.878 133.372C129.619 133.372 133.466 137.216 133.466 141.925H137.466C137.466 134.994 131.816 129.372 124.878 129.372V133.372ZM133.466 141.925V150.176H137.466V141.925H133.466ZM133.466 150.176C133.466 154.886 129.619 158.729 124.878 158.729V162.729C131.816 162.729 137.466 157.107 137.466 150.176H133.466ZM38.51 144.083H25.5483V148.083H38.51V144.083ZM25.5483 148.083H38.51V144.083H25.5483V148.083ZM37.0324 150.645L30.5516 139.452L27.09 141.456L33.5708 152.649L37.0324 150.645ZM27.09 141.456L33.5708 152.649L37.0324 150.645L30.5516 139.452L27.09 141.456ZM30.5516 152.649L37.0324 141.456L33.5708 139.452L27.09 150.645L30.5516 152.649ZM33.5708 139.452L27.09 150.645L30.5516 152.649L37.0324 141.456L33.5708 139.452ZM59.2359 144.083H46.3384V148.083H59.2359V144.083ZM46.3384 148.083H59.2359V144.083H46.3384V148.083ZM57.758 150.645L51.2772 139.452L47.8156 141.456L54.2964 152.649L57.758 150.645ZM47.8156 141.456L54.2964 152.649L57.758 150.645L51.2772 139.452L47.8156 141.456ZM51.2772 152.649L57.758 141.456L54.2964 139.452L47.8156 150.645L51.2772 152.649ZM54.2964 139.452L47.8156 150.645L51.2772 152.649L57.758 141.456L54.2964 139.452Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M80.0266 148.083C81.1312 148.083 82.0266 147.187 82.0266 146.083C82.0266 144.978 81.1312 144.083 80.0266 144.083V148.083ZM67.0649 144.083C65.9604 144.083 65.0649 144.978 65.0649 146.083C65.0649 147.187 65.9604 148.083 67.0649 148.083V144.083ZM75.0233 152.649C75.5768 153.605 76.8004 153.931 77.7563 153.378C78.7122 152.824 79.0384 151.601 78.4849 150.645L75.0233 152.649ZM72.0041 139.452C71.4506 138.496 70.227 138.17 69.2711 138.723C68.3152 139.277 67.989 140.5 68.5425 141.456L72.0041 139.452ZM68.5425 150.645C67.989 151.601 68.3152 152.824 69.2711 153.378C70.227 153.931 71.4506 153.605 72.0041 152.649L68.5425 150.645ZM78.4849 141.456C79.0384 140.5 78.7122 139.277 77.7563 138.723C76.8004 138.17 75.5768 138.496 75.0233 139.452L78.4849 141.456ZM80.0266 144.083H67.0649V148.083H80.0266V144.083ZM78.4849 150.645L72.0041 139.452L68.5425 141.456L75.0233 152.649L78.4849 150.645ZM72.0041 152.649L78.4849 141.456L75.0233 139.452L68.5425 150.645L72.0041 152.649Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M100.752 148.083C101.857 148.083 102.752 147.187 102.752 146.083C102.752 144.978 101.857 144.083 100.752 144.083V148.083ZM87.7905 144.083C86.686 144.083 85.7905 144.978 85.7905 146.083C85.7905 147.187 86.686 148.083 87.7905 148.083V144.083ZM95.8127 152.649C96.3662 153.605 97.5898 153.931 98.5457 153.378C99.5016 152.824 99.8278 151.601 99.2743 150.645L95.8127 152.649ZM92.7935 139.452C92.24 138.496 91.0164 138.17 90.0605 138.723C89.1046 139.277 88.7784 140.5 89.3319 141.456L92.7935 139.452ZM89.3319 150.645C88.7784 151.601 89.1046 152.824 90.0605 153.378C91.0164 153.931 92.24 153.605 92.7935 152.649L89.3319 150.645ZM99.2743 141.456C99.8278 140.5 99.5016 139.277 98.5457 138.723C97.5898 138.17 96.3662 138.496 95.8127 139.452L99.2743 141.456ZM100.752 144.083H87.7905V148.083H100.752V144.083ZM99.2743 150.645L92.7935 139.452L89.3319 141.456L95.8127 152.649L99.2743 150.645ZM92.7935 152.649L99.2743 141.456L95.8127 139.452L89.3319 150.645L92.7935 152.649Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M122.376 148.083C123.481 148.083 124.376 147.187 124.376 146.083C124.376 144.978 123.481 144.083 122.376 144.083V148.083ZM109.415 144.083C108.31 144.083 107.415 144.978 107.415 146.083C107.415 147.187 108.31 148.083 109.415 148.083V144.083ZM117.373 152.649C117.926 153.605 119.15 153.931 120.106 153.378C121.062 152.824 121.388 151.601 120.835 150.645L117.373 152.649ZM114.354 139.452C113.8 138.496 112.577 138.17 111.621 138.723C110.665 139.277 110.339 140.5 110.892 141.456L114.354 139.452ZM110.892 150.645C110.339 151.601 110.665 152.824 111.621 153.378C112.577 153.931 113.8 153.605 114.354 152.649L110.892 150.645ZM120.835 141.456C121.388 140.5 121.062 139.277 120.106 138.723C119.15 138.17 117.926 138.496 117.373 139.452L120.835 141.456ZM122.376 144.083H109.415V148.083H122.376V144.083ZM120.835 150.645L114.354 139.452L110.892 141.456L117.373 152.649L120.835 150.645ZM114.354 152.649L120.835 141.456L117.373 139.452L110.892 150.645L114.354 152.649Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M85.6732 44.3876H126.291C131.36 44.3876 135.467 48.481 135.467 53.5338V112.632C135.467 117.685 131.36 121.778 126.291 121.778H24.5865C19.5173 121.778 15.4106 117.685 15.4106 112.632V53.5338C15.4106 48.481 19.5173 44.3876 24.5865 44.3876H65.1398",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M85.6729 52.9581H65.2037V34.2181C65.2037 28.5897 69.7596 23.9846 75.4704 23.9846C81.1171 23.9846 85.7371 28.5257 85.7371 34.2181V52.9581H85.6729Z",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M75.471 38.0556C77.6682 38.0556 79.4493 36.2802 79.4493 34.0902C79.4493 31.9001 77.6682 30.1247 75.471 30.1247C73.2738 30.1247 71.4927 31.9001 71.4927 34.0902C71.4927 36.2802 73.2738 38.0556 75.471 38.0556Z",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M51.2157 109.114C64.576 109.114 75.4066 98.3185 75.4066 85.0015C75.4066 71.6845 64.576 60.889 51.2157 60.889C37.8555 60.889 27.0249 71.6845 27.0249 85.0015C27.0249 98.3185 37.8555 109.114 51.2157 109.114Z",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M51.2158 89.6066C56.1063 89.6066 60.0708 85.6549 60.0708 80.7802C60.0708 75.9056 56.1063 71.9539 51.2158 71.9539C46.3254 71.9539 42.3608 75.9056 42.3608 80.7802C42.3608 85.6549 46.3254 89.6066 51.2158 89.6066Z",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,fs.jsx)("path",{d:"M67.578 102.782L68.9221 104.263C69.6769 103.578 69.7958 102.435 69.1981 101.61L67.578 102.782ZM34.853 102.782L33.2329 101.61C32.6352 102.435 32.7541 103.578 33.509 104.263L34.853 102.782ZM85.6733 71.1053C84.5688 71.1053 83.6733 72.0007 83.6733 73.1053C83.6733 74.2099 84.5688 75.1053 85.6733 75.1053V71.1053ZM120.773 75.1053C121.877 75.1053 122.773 74.2099 122.773 73.1053C122.773 72.0007 121.877 71.1053 120.773 71.1053V75.1053ZM85.6733 81.8505C84.5688 81.8505 83.6733 82.7459 83.6733 83.8505C83.6733 84.955 84.5688 85.8505 85.6733 85.8505V81.8505ZM120.773 85.8505C121.877 85.8505 122.773 84.955 122.773 83.8505C122.773 82.7459 121.877 81.8505 120.773 81.8505V85.8505ZM85.6733 92.5955C84.5688 92.5955 83.6733 93.4909 83.6733 94.5955C83.6733 95.7001 84.5688 96.5955 85.6733 96.5955V92.5955ZM120.773 96.5955C121.877 96.5955 122.773 95.7001 122.773 94.5955C122.773 93.4909 121.877 92.5955 120.773 92.5955V96.5955ZM51.2155 111.114C58.0246 111.114 64.273 108.482 68.9221 104.263L66.234 101.301C62.2848 104.885 56.9831 107.114 51.2155 107.114V111.114ZM69.1981 101.61C65.1754 96.0522 58.6128 92.4676 51.2155 92.4676V96.4676C57.2932 96.4676 62.6657 99.4068 65.9579 103.955L69.1981 101.61ZM51.2155 92.4676C43.8182 92.4676 37.2557 96.0522 33.2329 101.61L36.4731 103.955C39.7654 99.4068 45.1378 96.4676 51.2155 96.4676V92.4676ZM33.509 104.263C38.1581 108.482 44.4065 111.114 51.2155 111.114V107.114C45.4479 107.114 40.1463 104.885 36.1971 101.301L33.509 104.263ZM85.6733 75.1053H120.773V71.1053H85.6733V75.1053ZM120.773 71.1053H85.6733V75.1053H120.773V71.1053ZM85.6733 85.8505H120.773V81.8505H85.6733V85.8505ZM120.773 81.8505H85.6733V85.8505H120.773V81.8505ZM85.6733 96.5955H120.773V92.5955H85.6733V96.5955ZM120.773 92.5955H85.6733V96.5955H120.773V92.5955Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{d:"M204.905 160.729C204.905 159.625 204.01 158.729 202.905 158.729C201.801 158.729 200.905 159.625 200.905 160.729H204.905ZM200.905 164.759C200.905 165.863 201.801 166.759 202.905 166.759C204.01 166.759 204.905 165.863 204.905 164.759H200.905ZM204.905 173.137C204.905 172.033 204.01 171.137 202.905 171.137C201.801 171.137 200.905 172.033 200.905 173.137H204.905ZM200.905 177.487C200.905 178.591 201.801 179.487 202.905 179.487C204.01 179.487 204.905 178.591 204.905 177.487H200.905ZM211.247 171.108C212.352 171.108 213.247 170.212 213.247 169.108C213.247 168.003 212.352 167.108 211.247 167.108V171.108ZM207.269 167.108C206.164 167.108 205.269 168.003 205.269 169.108C205.269 170.212 206.164 171.108 207.269 171.108V167.108ZM198.542 171.108C199.647 171.108 200.542 170.212 200.542 169.108C200.542 168.003 199.647 167.108 198.542 167.108V171.108ZM194.5 167.108C193.395 167.108 192.5 168.003 192.5 169.108C192.5 170.212 193.395 171.108 194.5 171.108V167.108ZM200.905 160.729V164.759H204.905V160.729H200.905ZM200.905 173.137V177.487H204.905V173.137H200.905ZM211.247 167.108H207.269V171.108H211.247V167.108ZM198.542 167.108H194.5V171.108H198.542V167.108Z",fill:"#2EE5C0"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M138.482 49.5682L185.965 76.8787C191.547 80.0767 193.472 87.1761 190.2 92.101L163.699 137.832C160.427 143.972 153.368 145.891 147.786 142.693L142.011 139.367L138.931 144.611C138.546 145.187 137.84 145.379 137.327 145.059L133.99 143.14L129.242 151.327C129.049 151.711 128.664 151.967 128.279 152.095L116.922 155.484C116.087 155.74 115.574 156.7 115.767 157.531L118.269 167.509C118.462 168.34 117.948 169.236 117.114 169.491L107.04 172.561C106.206 172.881 105.692 173.777 105.885 174.608L108.452 184.522C108.708 185.353 108.131 186.249 107.297 186.505L97.1582 189.639C96.3241 189.958 95.8107 190.854 96.0032 191.685L98.6982 201.983C98.9549 202.814 98.3774 203.71 97.5432 203.965C97.5432 203.965 90.2924 206.204 84.6457 208.059C78.999 209.914 76.1757 207.099 75.149 203.773C74.1224 200.384 71.2349 189.702 71.2349 189.702C71.1707 189.319 71.2349 188.871 71.4274 188.487L106.783 127.47L103.254 125.424C102.677 125.104 102.484 124.336 102.805 123.761L105.885 118.516L100.367 115.382C94.8482 112.12 92.9232 105.085 96.1316 99.5202L122.568 53.7895C125.841 48.289 132.899 46.3703 138.482 49.5682ZM144 76.2392C141.433 80.6523 142.973 86.2807 147.401 88.8391C151.828 91.3975 157.475 89.8624 160.042 85.4493C162.608 81.0361 161.068 75.4077 156.641 72.8493C152.213 70.291 146.567 71.826 144 76.2392Z",fill:"#00236B"}),(0,fs.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M129.755 57.3713L182.115 61.5286C187.954 61.8484 192.702 67.0291 192.638 73.2331V121.522C192.638 127.598 187.89 132.459 181.986 132.459H175.762V138.279C175.762 138.919 175.313 139.431 174.736 139.431H171.142V149.216C171.142 149.664 170.95 150.048 170.693 150.368L163.057 158.746C162.48 159.386 162.48 160.345 163.057 160.985L169.795 168.02C170.372 168.596 170.372 169.619 169.795 170.259L163.057 177.87C162.48 178.51 162.48 179.533 163.057 180.109L169.795 186.952C170.372 187.528 170.372 188.551 169.795 189.191L163.057 196.994C162.48 197.633 162.48 198.657 163.057 199.232L170.116 206.268C170.693 206.844 170.693 207.867 170.116 208.507C170.116 208.507 165.303 214.199 161.517 218.612C157.731 223.025 154.074 222.322 151.636 220.083C149.197 217.845 141.561 210.553 141.561 210.553C141.305 210.233 141.112 209.85 141.112 209.402V140.006H137.134C136.492 140.006 135.979 139.431 135.979 138.791V132.779H129.755C123.338 132.779 118.141 127.534 118.141 121.138V68.3083C118.141 61.9124 123.402 56.9875 129.755 57.3713ZM147.465 78.2858C147.465 83.2746 151.507 87.432 156.384 87.6238C161.261 87.8157 165.175 83.9142 165.175 78.9894C165.175 74.0645 161.261 69.9072 156.384 69.6514C151.443 69.4595 147.465 73.297 147.465 78.2858Z",fill:"#007CE9"}),(0,fs.jsx)("path",{d:"M149.839 0C126.995 0 108.451 18.4842 108.451 41.2536C108.451 50.5276 111.467 59.354 117.114 66.5174L119.873 61.8484C115.702 55.8362 113.456 48.7368 113.456 41.2536C113.456 21.2344 129.755 4.98881 149.839 4.98881C169.923 4.98881 186.221 21.2344 186.221 41.2536C186.221 61.2728 169.859 77.4544 149.839 77.4544C149.069 77.4544 148.17 77.3904 147.529 77.3904C147.465 77.9661 147.336 78.6696 147.465 80.0767C147.593 81.3559 148.042 82.3792 148.042 82.3792C148.94 82.4432 148.876 82.4432 149.775 82.4432C172.618 82.4432 191.162 63.959 191.162 41.1896C191.162 18.4202 172.618 0 149.839 0Z",fill:"#00236B"}),(0,fs.jsx)("path",{opacity:"0.2",d:"M161.581 218.548C165.367 214.135 170.18 208.443 170.18 208.443C170.757 207.803 170.757 206.78 170.18 206.204L163.121 199.168C162.544 198.593 162.544 197.569 163.121 196.93L169.859 189.127C170.436 188.487 170.436 187.464 169.859 186.888L163.121 180.045C162.544 179.469 162.544 178.446 163.121 177.806L169.859 170.195C170.436 169.555 170.436 168.532 169.859 167.956L163.121 160.921C162.544 160.281 162.544 159.322 163.121 158.682L170.757 150.304C171.014 149.984 171.206 149.6 171.206 149.152V141.413C171.206 140.262 170.308 139.367 169.153 139.367L162.48 140.006C159.079 140.006 156.384 142.757 156.384 146.082V218.74C156.384 220.403 158.309 221.426 159.656 220.403C160.298 219.955 160.94 219.316 161.581 218.548Z",fill:"#00236B"})]})]})})};function OQ(){return OQ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},OQ.apply(this,arguments)}var IQ,AQ=function(t){return e.createElement("svg",OQ({viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),NQ||(NQ=e.createElement("path",{d:"M0 16C0 7.163 7.163 0 16 0s16 7.163 16 16-7.163 16-16 16S0 24.837 0 16z",fill:"#5282FF"})),DQ||(DQ=e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M24 9.5c0 .828-1.343 1.5-3 1.5s-3-.672-3-1.5S19.343 8 21 8s3 .672 3 1.5zM13 19.6v2.7c0 .9 1.3 1.6 3 1.6s3-.7 3-1.6v-2.7c-.8.7-1.9 1-3 1s-2.2-.3-3-1zm5-8.6v-.4c.8.7 1.9 1 3 1s2.2-.3 3-1v2.8c0 .8-1.2 1.5-2.8 1.6l-2.475 2.871c.176.192.275.405.275.629 0 .828-1.343 1.5-3 1.5s-3-.672-3-1.5a.9.9 0 01.232-.58L10.8 15.1C9.3 15 8 14.3 8 13.5v-2.9c.8.7 1.9 1 3 1s2.2-.3 3-1v.4h4zm-.276 6.272A5.27 5.27 0 0016 17c-.265 0-.522.017-.766.05a5.994 5.994 0 00-1.134.25L12 14.9c1.1-.2 2-.8 2-1.5V12h4v1.4c0 .7.7 1.3 1.8 1.5l-2.076 2.372zM14 9.5c0 .828-1.343 1.5-3 1.5s-3-.672-3-1.5S9.343 8 11 8s3 .672 3 1.5z",fill:"#fff"})))};function PQ(){return PQ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},PQ.apply(this,arguments)}var RQ,ZQ=function(t){return e.createElement("svg",PQ({"aria-hidden":"true","data-prefix":"fas","data-icon":"eye",className:"show_svg__svg-inline--fa show_svg__fa-eye",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},t),IQ||(IQ=e.createElement("path",{fill:"currentColor",d:"M572.5 238.1C518.3 115.5 410.9 32 288 32S57.69 115.6 3.469 238.1C1.563 243.4 0 251 0 256c0 4.977 1.562 12.6 3.469 17.03C57.72 396.5 165.1 480 288 480s230.3-83.58 284.5-206.1c1.9-5.3 3.5-13.8 3.5-17.9 0-5-1.6-12.6-3.5-17.9zM432 256c0 79.45-64.47 144-143.9 144-79.5 0-144.1-64.5-144.1-144s64.5-144 144-144 144 64.5 144 144zm-144-96c-2.3 0-5.6.4-8.5.8 5.3 9.2 8.5 19.8 8.5 31.2 0 35.35-28.65 64-64 64-11.4 0-22.9-3.3-31.3-8.5-.3 3-.7 6.1-.7 8.5 0 52.1 43 96 96 96s96-42.99 96-95.99S340.1 160 288 160z"})))};function FQ(){return FQ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},FQ.apply(this,arguments)}var jQ,HQ=function(t){return e.createElement("svg",FQ({"aria-hidden":"true","data-prefix":"fas","data-icon":"eye-slash",className:"hide_svg__svg-inline--fa hide_svg__fa-eye-slash",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},t),RQ||(RQ=e.createElement("path",{fill:"currentColor",d:"M325.1 351.5l-99.3-77.9c8.303 44.56 47.26 78.37 94.22 78.37 1.78.03 3.38-.37 5.08-.47zM320 400c-79.5 0-144-64.52-144-143.1 0-6.789 1.09-13.28 1.1-19.82L81.28 160.4c-17.77 23.75-33.27 50.04-45.81 78.59C33.56 243.4 31.1 251 31.1 256c0 4.977 1.563 12.6 3.469 17.03 54.25 123.4 161.6 206.1 284.5 206.1 45.46 0 88.77-11.49 128.1-32.14l-74.5-58.4C356.1 396.1 338.1 400 320 400zm310.8 69.1l-103.5-81.11c31.37-31.96 57.77-70.75 77.21-114.1 1.906-4.43 3.469-12.07 3.469-17.03 0-4.976-1.562-12.6-3.469-17.03-54.25-123.4-161.6-206.1-284.5-206.1-62.69 0-121.2 21.94-170.8 59.62L38.81 5.116C34.41 1.679 29.19 0 24.03 0 16.91 0 9.839 3.158 5.121 9.189c-8.187 10.44-6.37 25.53 4.068 33.7l591.1 463.1c10.5 8.203 25.57 6.333 33.69-4.073C643.1 492.4 641.2 477.3 630.8 469.1zM463.1 256c0 24.85-6.705 47.98-17.95 68.27l-38.55-30.23c5.24-11.68 8.495-24.42 8.495-38.08 0-52.1-43-96-95.1-96-2.301.03-5.575.444-8.461.766C316.8 170 319.1 180.6 319.1 192c0 10.17-2.561 19.67-6.821 28.16L223.6 149.9c25.46-23.38 59.12-37.93 96.42-37.93C399.5 112 463.1 176.6 463.1 256z"})))};function BQ(){return BQ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},BQ.apply(this,arguments)}var zQ=function(t){return e.createElement("svg",BQ({"aria-hidden":"true","data-prefix":"fas","data-icon":"xmark",className:"close_svg__svg-inline--fa close_svg__fa-xmark",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512"},t),jQ||(jQ=e.createElement("path",{fill:"currentColor",d:"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25-6.2 6.25-14.4 9.35-22.6 9.35s-16.38-3.125-22.62-9.375L160 301.3 54.63 406.6C48.38 412.9 40.19 416 32 416s-16.37-3.1-22.625-9.4c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"})))},WQ=(0,ct.default)("authentication");var VQ=function(t){var n=t.returnUrl,i=t.closable,r=void 0!==i&&i,o=Q(),a=st(),s=vf((function(e){return e.authentication})).error,u=(0,e.useState)(""),l=(0,dt.Z)(u,2),c=l[0],d=l[1],h=(0,e.useState)(""),f=(0,dt.Z)(h,2),p=f[0],v=f[1],g=(0,e.useState)(""),m=(0,dt.Z)(g,2),_=m[0],y=m[1],b=(0,e.useState)(""),w=(0,dt.Z)(b,2),C=w[0],k=w[1],S=(0,e.useState)(!1),x=(0,dt.Z)(S,2),L=x[0],E=x[1];(0,e.useEffect)((function(){var e,t,n,i;null!==s&&void 0!==s&&null!==(e=s.data)&&void 0!==e&&null!==(t=e.error)&&void 0!==t&&t.includes("user")&&y(s.data.error),null!==s&&void 0!==s&&null!==(n=s.data)&&void 0!==n&&null!==(i=n.error)&&void 0!==i&&i.includes("password")&&k(s.data.error)}),[s]);var N=function(){o(Eo(c,p)).then((function(){n&&a.replace(decodeURI(n))}))},D=function(e){13===e.keyCode&&N()};return(0,fs.jsxs)("section",{className:WQ(),children:[(0,fs.jsxs)("form",{className:WQ("form-wrapper"),children:[(0,fs.jsxs)("div",{className:WQ("header"),children:[(0,fs.jsxs)("div",{className:WQ("logo"),children:[(0,fs.jsx)(Mr,{data:AQ,size:24}),"YDB"]}),(0,fs.jsx)(Mf,{href:"http://ydb.tech/docs",target:"_blank",children:"Documentation"})]}),(0,fs.jsx)("h2",{className:WQ("title"),children:"Sign in"}),(0,fs.jsx)("div",{className:WQ("field-wrapper"),children:(0,fs.jsx)(iv,{value:c,onUpdate:function(e){d(e),y("")},placeholder:"Username",error:_,onKeyDown:D,size:"l",autoFocus:!0})}),(0,fs.jsxs)("div",{className:WQ("field-wrapper"),children:[(0,fs.jsx)(iv,{value:p,onUpdate:function(e){v(e),k("")},type:L?"text":"password",placeholder:"Password",error:C,onKeyDown:D,size:"l"}),(0,fs.jsx)(zr,{onClick:function(){E((function(e){return!e}))},size:"l",className:WQ("show-password-button"),children:(0,fs.jsx)(Mr,{data:L?HQ:ZQ,size:16})})]}),(0,fs.jsx)(zr,{view:"action",onClick:N,width:"max",size:"l",disabled:Boolean(!c||_||C),className:WQ("button-sign-in"),children:"Sign in"})]}),r&&a.length>1&&(0,fs.jsx)(zr,{onClick:function(){a.go(-1)},className:WQ("close"),children:(0,fs.jsx)(Mr,{data:zQ,size:24})})]})},YQ=(0,ct.default)("app");function UQ(t){var n=ut(),i=t.singleClusterMode,r=n.pathname.includes("/clusters")||!i&&"/"===n.pathname;return(0,fs.jsxs)(e.Fragment,{children:[!r&&(0,fs.jsx)(MQ,{mainPage:t.mainPage}),(0,fs.jsx)("main",{className:YQ("main"),children:t.children||(0,fs.jsxs)(ot,{children:[(0,fs.jsx)(Je,{path:Zh.cluster,component:nb}),(0,fs.jsx)(Je,{path:Zh.tenant,component:u$}),(0,fs.jsx)(Je,{path:Zh.node,component:T$}),(0,fs.jsx)(Je,{path:Zh.tablet,component:Y$}),(0,fs.jsx)(Je,{path:Zh.tabletsFilters,component:Q$}),(0,fs.jsx)(qe,{to:Ph(Zh.cluster,{activeTab:Xy.tenants})})]})}),(0,fs.jsx)(J$,{}),(0,fs.jsx)(TQ,{})]})}var KQ=U((function(e){return{theme:lr(e,ei),isAuthenticated:e.authentication.isAuthenticated,singleClusterMode:e.singleClusterMode}}))((function(e){var t=e.theme,n=e.singleClusterMode,i=e.isAuthenticated;return(0,fs.jsx)(tq.Consumer,{children:function(r){return(0,fs.jsx)(ze,{history:r,children:(0,fs.jsxs)(ot,{children:[(0,fs.jsx)(Je,{path:Zh.auth,children:(0,fs.jsx)(VQ,{closable:!0})}),(0,fs.jsx)(Je,{children:(0,fs.jsx)(At,{theme:t,children:(0,fs.jsx)("div",{className:YQ({embedded:n}),children:i?e.children:(0,fs.jsx)(VQ,{})})})})]})})}})}));var qQ,GQ=pt("tooltip"),$Q=["bottom","top"],QQ=function(t){var n=t.children,i=t.content,r=t.disabled,o=t.placement,a=void 0===o?$Q:o,s=(0,e.useState)(null),u=(0,dt.Z)(s,2),l=u[0],c=u[1],d=function(t,n){var i=n.openDelay,r=n.closeDelay,o=function(t){var n=(0,e.useState)(t),i=(0,dt.Z)(n,2),r=i[0],o=i[1];return[r,(0,e.useCallback)((function(){return o(!0)}),[]),(0,e.useCallback)((function(){return o(!1)}),[]),(0,e.useCallback)((function(){return o((function(e){return!e}))}),[])]}(!1),a=(0,dt.Z)(o,3),s=a[0],u=a[1],l=a[2],c=e.useRef();return(0,e.useEffect)((function(){if(t)return t.addEventListener("mouseenter",e),t.addEventListener("mouseleave",n),function(){t.removeEventListener("mouseenter",e),t.removeEventListener("mouseleave",n)};function e(){clearTimeout(c.current),c.current=window.setTimeout(u,i)}function n(){clearTimeout(c.current),c.current=window.setTimeout(l,r)}}),[t,u,l,i,r]),s}(l,t),h=e.Children.only(n),f=rp(c,h.ref);return e.createElement(e.Fragment,null,(0,e.cloneElement)(h,{ref:f}),l?e.createElement(gp,{className:GQ(null,t.className),open:d&&!r,placement:a,anchorRef:{current:l},disableEscapeKeyDown:!0,disableOutsideClick:!0,disableLayer:!0},e.createElement("div",{className:GQ("content",t.contentClassName)},i)):null)};var XQ="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self?self:{},JQ={},eX={exports:{}};eX.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var i=n(1);t.ERROR_BLOCK_NAME_TYPE="Block name should be a string",t.ERROR_BLOCK_NAME_EMPTY="Block name should be non-empty";var r={ns:"",el:"__",mod:"_",modValue:"_"},o=function(e){return"string"==typeof e},a=function(e){return"string"!=typeof e},s=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=i.assign({},t);return o.mixes=o.mixes.concat(n),d(o,e)},u=function(e,t,n){for(var r=[],o=3;o<arguments.length;o++)r[o-3]=arguments[o];var a=i.assign({},t),s=i.assign({},a.states||{});return s[n]=i.assign.apply(void 0,[{},s[n]||{}].concat(r)),a.states=s,d(a,e)},l=function(e,t,n,i){return String.prototype.split.call(c(e,t),n,i)},c=function(e,t){var n=t.name,i=t.mods,r=t.mixes,o=t.states,a=[n];if(i&&(a=a.concat(Object.keys(i).filter((function(e){return i[e]})).map((function(t){var r=i[t];return!0===r?n+e.mod+t:n+e.mod+t+e.modValue+r})))),o&&Object.keys(o).forEach((function(e){var t=o[e];a=a.concat(Object.keys(t).filter((function(e){return t[e]})).map((function(t){return e+t})))})),e.ns&&(a=a.map((function(t){return e.ns+t}))),r&&(a=a.concat(function(e){return void 0===e&&(e=[]),e.map((function(e){return Array.isArray(e)?e.join(" "):"object"==typeof e&&null!==e||"function"==typeof e?e.toString():"string"==typeof e?e:""})).filter((function(e){return!!e}))}(r))),e.classMap){var s=e.classMap;a=a.map((function(e){return s[e]||e}))}return a.join(" ")},d=function(e,t){return{mix:s.bind(null,t,e),split:l.bind(null,t,e),is:u.bind(null,t,e,"is-"),has:u.bind(null,t,e,"has-"),state:u.bind(null,t,e,"is-"),toString:c.bind(null,t,e)}},h=function(e,t){var n={name:e,mods:{},mixes:[],states:{"is-":{},"has-":{}}},r=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!n.length)return c(e,t);var s=i.assign({},t),u=n.filter(o).reduce((function(t,n){return t+e.el+n}),"");u&&(s.name=s.name+u);var l=n.filter(a).reduce((function(e,t){return i.assign(e,t)}),{});return s.mods=i.assign({},s.mods,l),d(s,e)}.bind(null,t,n);return r.mix=s.bind(null,t,n),r.split=l.bind(null,t,n),r.is=u.bind(null,t,n,"is-"),r.has=u.bind(null,t,n,"has-"),r.state=u.bind(null,t,n,"is-"),r.toString=c.bind(null,t,n),r};t.setup=function(e){return void 0===e&&(e={}),function(n){if("string"!=typeof n)throw new Error(t.ERROR_BLOCK_NAME_TYPE);var o=n.trim();if(!o)throw new Error(t.ERROR_BLOCK_NAME_EMPTY);return h(o,i.assign({},r,e))}},t.block=t.setup(),t.default=t.block},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.assign=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var i=0;i<t.length;i++){var r=t[i];for(var o in r)r.hasOwnProperty(o)&&(e[o]=r[o])}return e}}]),Object.defineProperty(JQ,"__esModule",{value:!0});var tX=eX.exports,nX=tX.setup();function iX(e){var t=nX(e);function n(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var i,r=e.shift(),o=e[0],a=e[1];return"string"===typeof r&&"string"!==typeof o||(a=o,o=null),i=t(r,o),a&&(i=i.mix(a)),i.toString()}return n.builder=function(){return t},n}iX.setup=function(e){nX=tX.setup(e)},iX.reset=function(){nX=tX.setup()};var rX=JQ.default=iX,oX="ycn-";function aX(e){return rX("".concat(oX).concat(e))}function sX(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!==typeof document){var i=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}sX(".ycn-action-bar-group {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n margin: 0;\n padding: 0;\n}\n.ycn-action-bar-group_pull_left {\n margin-left: 0;\n margin-right: auto;\n}\n.ycn-action-bar-group_pull_right {\n margin-left: auto;\n margin-right: 0;\n}\n.ycn-action-bar-group_pull_center {\n margin-left: auto;\n margin-right: auto;\n}");var uX=aX("action-bar-group"),lX=function(t){var n=t.children,i=t.className,r=t.pull;return e.createElement("ul",{className:uX({pull:r},i),role:"group"},n)};lX.displayName="ActionBar.Group";sX(".ycn-action-bar-item {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.ycn-action-bar-item_pull_left {\n margin-left: 0;\n margin-right: auto;\n}\n.ycn-action-bar-item_pull_right {\n margin-left: auto;\n margin-right: 0;\n}\n.ycn-action-bar-item_pull_center {\n margin-left: auto;\n margin-right: auto;\n}\n.ycn-action-bar-item + .ycn-action-bar-item_spacing {\n margin-left: 8px;\n}");var cX=aX("action-bar-item"),dX=function(t){var n=t.children,i=t.className,r=t.pull,o=t.spacing,a=void 0===o||o;return e.createElement("li",{className:cX({pull:r,spacing:a},i)},n)};dX.displayName="ActionBar.Item";sX(".ycn-action-bar-section {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n align-items: stretch;\n}\n.ycn-action-bar-section + .ycn-action-bar-section {\n border-left: solid 1px var(--yc-color-line-generic);\n}\n.ycn-action-bar-section_type_primary {\n flex: 1 1 auto;\n padding-left: 20px;\n padding-right: 20px;\n}\n.ycn-action-bar-section_type_secondary {\n padding-left: 6px;\n padding-right: 6px;\n}");var hX=aX("action-bar-section"),fX=function(t){var n=t.children,i=t.type,r=void 0===i?"primary":i;return e.createElement("div",{className:hX({type:r})},n)};fX.displayName="ActionBar.Section";sX(".ycn-action-bar-separator {\n list-style: none;\n margin: 0;\n padding: 0;\n margin-left: 6px;\n margin-right: 6px;\n border-right: solid 1px var(--yc-color-line-generic);\n height: 40px;\n}");var pX=aX("action-bar-separator"),vX=function(){return e.createElement("li",{role:"separator",className:pX()})};vX.displayName="ActionBar.Separator";sX(".ycn-action-bar {\n box-sizing: border-box;\n height: 40px;\n border-bottom: solid 1px var(--yc-color-line-generic);\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n align-items: stretch;\n}");var gX=aX("action-bar"),mX=function(t){var n=t.children,i=t.className,r=t["aria-label"];return e.createElement("section",{className:gX(null,i),"aria-label":r},n)};mX.displayName="ActionBar";var _X;Object.assign(mX,{Section:fX,Group:lX,Item:dX,Separator:vX});!function(e){e.ExpandButton="button_expand",e.CollapseButton="button_collapse",e.MoreButton="button_more"}(_X||(_X={}));var yX=56,bX=(qQ={},(0,xt.Z)(qQ,_X.CollapseButton,"Collapse"),(0,xt.Z)(qQ,_X.ExpandButton,"Expand"),(0,xt.Z)(qQ,_X.MoreButton,"More"),qQ);function wX(){return wX=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},wX.apply(this,arguments)}function CX(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}function kX(e,t){return kX=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},kX(e,t)}function SX(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,kX(e,t)}var xX,LX,EX,NX;function DX(){if(LX)return xX;LX=1;return xX="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}function MX(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}(function(){if(NX)return EX;NX=1;var e=DX();function t(){}function n(){}return n.resetWarningCache=t,EX=function(){function i(t,n,i,r,o,a){if(a!==e){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function r(){return i}i.isRequired=i;var o={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:r,element:i,elementType:i,instanceOf:r,node:i,objectOf:r,oneOf:r,oneOfType:r,shape:r,exact:r,checkPropTypes:n,resetWarningCache:t};return o.PropTypes=o,o}})()();var TX=!1,OX=e.createContext(null),IX=function(e){return e.scrollTop},AX="unmounted",PX="exited",RX="entering",ZX="entered",FX="exiting",jX=function(n){function i(e,t){var i;i=n.call(this,e,t)||this;var r,o=t&&!t.isMounting?e.enter:e.appear;return i.appearStatus=null,e.in?o?(r=PX,i.appearStatus=RX):r=ZX:r=e.unmountOnExit||e.mountOnEnter?AX:PX,i.state={status:r},i.nextCallback=null,i}SX(i,n),i.getDerivedStateFromProps=function(e,t){return e.in&&t.status===AX?{status:PX}:null};var r=i.prototype;return r.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},r.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==RX&&n!==ZX&&(t=RX):n!==RX&&n!==ZX||(t=FX)}this.updateStatus(!1,t)},r.componentWillUnmount=function(){this.cancelNextCallback()},r.getTimeouts=function(){var e,t,n,i=this.props.timeout;return e=t=n=i,null!=i&&"number"!==typeof i&&(e=i.exit,t=i.enter,n=void 0!==i.appear?i.appear:t),{exit:e,enter:t,appear:n}},r.updateStatus=function(e,n){if(void 0===e&&(e=!1),null!==n)if(this.cancelNextCallback(),n===RX){if(this.props.unmountOnExit||this.props.mountOnEnter){var i=this.props.nodeRef?this.props.nodeRef.current:t.findDOMNode(this);i&&IX(i)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===PX&&this.setState({status:AX})},r.performEnter=function(e){var n=this,i=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[t.findDOMNode(this),r],a=o[0],s=o[1],u=this.getTimeouts(),l=r?u.appear:u.enter;!e&&!i||TX?this.safeSetState({status:ZX},(function(){n.props.onEntered(a)})):(this.props.onEnter(a,s),this.safeSetState({status:RX},(function(){n.props.onEntering(a,s),n.onTransitionEnd(l,(function(){n.safeSetState({status:ZX},(function(){n.props.onEntered(a,s)}))}))})))},r.performExit=function(){var e=this,n=this.props.exit,i=this.getTimeouts(),r=this.props.nodeRef?void 0:t.findDOMNode(this);n&&!TX?(this.props.onExit(r),this.safeSetState({status:FX},(function(){e.props.onExiting(r),e.onTransitionEnd(i.exit,(function(){e.safeSetState({status:PX},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:PX},(function(){e.props.onExited(r)}))},r.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},r.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},r.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(i){n&&(n=!1,t.nextCallback=null,e(i))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},r.onTransitionEnd=function(e,n){this.setNextCallback(n);var i=this.props.nodeRef?this.props.nodeRef.current:t.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(i&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[i,this.nextCallback],a=o[0],s=o[1];this.props.addEndListener(a,s)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},r.render=function(){var t=this.state.status;if(t===AX)return null;var n=this.props,i=n.children;n.in,n.mountOnEnter,n.unmountOnExit,n.appear,n.enter,n.exit,n.timeout,n.addEndListener,n.onEnter,n.onEntering,n.onEntered,n.onExit,n.onExiting,n.onExited,n.nodeRef;var r=CX(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return e.createElement(OX.Provider,{value:null},"function"===typeof i?i(t,r):e.cloneElement(e.Children.only(i),r))},i}(e.Component);function HX(){}jX.contextType=OX,jX.propTypes={},jX.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:HX,onEntering:HX,onEntered:HX,onExit:HX,onExiting:HX,onExited:HX},jX.UNMOUNTED=AX,jX.EXITED=PX,jX.ENTERING=RX,jX.ENTERED=ZX,jX.EXITING=FX;var BX=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return i=t,void((n=e).classList?n.classList.add(i):function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}(n,i)||("string"===typeof n.className?n.className=n.className+" "+i:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+i)));var n,i}))},zX=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return i=t,void((n=e).classList?n.classList.remove(i):"string"===typeof n.className?n.className=MX(n.className,i):n.setAttribute("class",MX(n.className&&n.className.baseVal||"",i)));var n,i}))},WX=function(t){function n(){for(var e,n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return(e=t.call.apply(t,[this].concat(i))||this).appliedClasses={appear:{},enter:{},exit:{}},e.onEnter=function(t,n){var i=e.resolveArguments(t,n),r=i[0],o=i[1];e.removeClasses(r,"exit"),e.addClass(r,o?"appear":"enter","base"),e.props.onEnter&&e.props.onEnter(t,n)},e.onEntering=function(t,n){var i=e.resolveArguments(t,n),r=i[0],o=i[1]?"appear":"enter";e.addClass(r,o,"active"),e.props.onEntering&&e.props.onEntering(t,n)},e.onEntered=function(t,n){var i=e.resolveArguments(t,n),r=i[0],o=i[1]?"appear":"enter";e.removeClasses(r,o),e.addClass(r,o,"done"),e.props.onEntered&&e.props.onEntered(t,n)},e.onExit=function(t){var n=e.resolveArguments(t)[0];e.removeClasses(n,"appear"),e.removeClasses(n,"enter"),e.addClass(n,"exit","base"),e.props.onExit&&e.props.onExit(t)},e.onExiting=function(t){var n=e.resolveArguments(t)[0];e.addClass(n,"exit","active"),e.props.onExiting&&e.props.onExiting(t)},e.onExited=function(t){var n=e.resolveArguments(t)[0];e.removeClasses(n,"exit"),e.addClass(n,"exit","done"),e.props.onExited&&e.props.onExited(t)},e.resolveArguments=function(t,n){return e.props.nodeRef?[e.props.nodeRef.current,t]:[t,n]},e.getClassNames=function(t){var n=e.props.classNames,i="string"===typeof n,r=i?""+(i&&n?n+"-":"")+t:n[t];return{baseClassName:r,activeClassName:i?r+"-active":n[t+"Active"],doneClassName:i?r+"-done":n[t+"Done"]}},e}SX(n,t);var i=n.prototype;return i.addClass=function(e,t,n){var i=this.getClassNames(t)[n+"ClassName"],r=this.getClassNames("enter").doneClassName;"appear"===t&&"done"===n&&r&&(i+=" "+r),"active"===n&&e&&IX(e),i&&(this.appliedClasses[t][n]=i,BX(e,i))},i.removeClasses=function(e,t){var n=this.appliedClasses[t],i=n.base,r=n.active,o=n.done;this.appliedClasses[t]={},i&&zX(e,i),r&&zX(e,r),o&&zX(e,o)},i.render=function(){var t=this.props;t.classNames;var n=CX(t,["classNames"]);return e.createElement(jX,wX({},n,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},n}(e.Component);function VX(t,n){var i=Object.create(null);return t&&e.Children.map(t,(function(e){return e})).forEach((function(t){i[t.key]=function(t){return n&&(0,e.isValidElement)(t)?n(t):t}(t)})),i}function YX(e,t,n){return null!=n[t]?n[t]:e.props[t]}function UX(t,n,i){var r=VX(t.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var i,r=Object.create(null),o=[];for(var a in e)a in t?o.length&&(r[a]=o,o=[]):o.push(a);var s={};for(var u in t){if(r[u])for(i=0;i<r[u].length;i++){var l=r[u][i];s[r[u][i]]=n(l)}s[u]=n(u)}for(i=0;i<o.length;i++)s[o[i]]=n(o[i]);return s}(n,r);return Object.keys(o).forEach((function(a){var s=o[a];if((0,e.isValidElement)(s)){var u=a in n,l=a in r,c=n[a],d=(0,e.isValidElement)(c)&&!c.props.in;!l||u&&!d?l||!u||d?l&&u&&(0,e.isValidElement)(c)&&(o[a]=(0,e.cloneElement)(s,{onExited:i.bind(null,s),in:c.props.in,exit:YX(s,"exit",t),enter:YX(s,"enter",t)})):o[a]=(0,e.cloneElement)(s,{in:!1}):o[a]=(0,e.cloneElement)(s,{onExited:i.bind(null,s),in:!0,exit:YX(s,"exit",t),enter:YX(s,"enter",t)})}})),o}WX.defaultProps={classNames:""},WX.propTypes={};var KX=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},qX=function(t){function n(e,n){var i,r=(i=t.call(this,e,n)||this).handleExited.bind(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(i));return i.state={contextValue:{isMounting:!0},handleExited:r,firstRender:!0},i}SX(n,t);var i=n.prototype;return i.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},i.componentWillUnmount=function(){this.mounted=!1},n.getDerivedStateFromProps=function(t,n){var i,r,o=n.children,a=n.handleExited;return{children:n.firstRender?(i=t,r=a,VX(i.children,(function(t){return(0,e.cloneElement)(t,{onExited:r.bind(null,t),in:!0,appear:YX(t,"appear",i),enter:YX(t,"enter",i),exit:YX(t,"exit",i)})}))):UX(t,o,a),firstRender:!1}},i.handleExited=function(e,t){var n=VX(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=wX({},t.children);return delete n[e.key],{children:n}})))},i.render=function(){var t=this.props,n=t.component,i=t.childFactory,r=CX(t,["component","childFactory"]),o=this.state.contextValue,a=KX(this.state.children).map(i);return delete r.appear,delete r.enter,delete r.exit,null===n?e.createElement(OX.Provider,{value:o},a):e.createElement(OX.Provider,{value:o},e.createElement(n,r,a))},n}(e.Component);qX.propTypes={},qX.defaultProps={component:"div",childFactory:function(e){return e}};var GX,$X,QX=function(n){function i(){for(var e,t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return(e=n.call.apply(n,[this].concat(i))||this).handleEnter=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onEnter",0,n)},e.handleEntering=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onEntering",0,n)},e.handleEntered=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onEntered",0,n)},e.handleExit=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onExit",1,n)},e.handleExiting=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onExiting",1,n)},e.handleExited=function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.handleLifecycle("onExited",1,n)},e}SX(i,n);var r=i.prototype;return r.handleLifecycle=function(n,i,r){var o,a=this.props.children,s=e.Children.toArray(a)[i];if(s.props[n]&&(o=s.props)[n].apply(o,r),this.props[n]){var u=s.props.nodeRef?void 0:t.findDOMNode(this);this.props[n](u)}},r.render=function(){var t=this.props,n=t.children,i=t.in,r=CX(t,["children","in"]),o=e.Children.toArray(n),a=o[0],s=o[1];return delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,e.createElement(qX,r,i?e.cloneElement(a,{key:"first",onEnter:this.handleEnter,onEntering:this.handleEntering,onEntered:this.handleEntered}):e.cloneElement(s,{key:"second",onEnter:this.handleExit,onEntering:this.handleExiting,onEntered:this.handleExited}))},i}(e.Component);QX.propTypes={};var XX="out-in",JX="in-out",eJ=function(e,t,n){return function(){var i;e.props[t]&&(i=e.props)[t].apply(i,arguments),n()}},tJ=((GX={})[XX]=function(t){var n=t.current,i=t.changeState;return e.cloneElement(n,{in:!1,onExited:eJ(n,"onExited",(function(){i(RX,null)}))})},GX[JX]=function(t){var n=t.current,i=t.changeState,r=t.children;return[n,e.cloneElement(r,{in:!0,onEntered:eJ(r,"onEntered",(function(){i(RX)}))})]},GX),nJ=(($X={})[XX]=function(t){var n=t.children,i=t.changeState;return e.cloneElement(n,{in:!0,onEntered:eJ(n,"onEntered",(function(){i(ZX,e.cloneElement(n,{in:!0}))}))})},$X[JX]=function(t){var n=t.current,i=t.children,r=t.changeState;return[e.cloneElement(n,{in:!1,onExited:eJ(n,"onExited",(function(){r(ZX,e.cloneElement(i,{in:!0}))}))}),e.cloneElement(i,{in:!0})]},$X),iJ=function(t){function n(){for(var e,n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return(e=t.call.apply(t,[this].concat(i))||this).state={status:ZX,current:null},e.appeared=!1,e.changeState=function(t,n){void 0===n&&(n=e.state.current),e.setState({status:t,current:n})},e}SX(n,t);var i=n.prototype;return i.componentDidMount=function(){this.appeared=!0},n.getDerivedStateFromProps=function(t,n){return null==t.children?{current:null}:n.status===RX&&t.mode===JX?{status:RX}:!n.current||(i=n.current,r=t.children,i===r||e.isValidElement(i)&&e.isValidElement(r)&&null!=i.key&&i.key===r.key)?{current:e.cloneElement(t.children,{in:!0})}:{status:FX};var i,r},i.render=function(){var t,n=this.props,i=n.children,r=n.mode,o=this.state,a=o.status,s=o.current,u={children:i,current:s,changeState:this.changeState,status:a};switch(a){case RX:t=nJ[r](u);break;case FX:t=tJ[r](u);break;case ZX:t=s}return e.createElement(OX.Provider,{value:{isMounting:!this.appeared}},t)},n}(e.Component);iJ.propTypes={},iJ.defaultProps={mode:XX};sX(".ycn-drawer__item {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n height: 100%;\n will-change: transform;\n background-color: var(--yc-color-base-background);\n}\n.ycn-drawer__item-transition-enter {\n transform: translate(-100%, 0);\n}\n.ycn-drawer__item-transition-enter-active {\n transform: translate(0, 0);\n transition: transform 300ms;\n}\n.ycn-drawer__item-transition-enter-done {\n filter: blur(0px);\n transform: translateZ(0);\n}\n.ycn-drawer__item-transition-exit {\n transform: translate(0, 0);\n}\n.ycn-drawer__item-transition-exit-active {\n transform: translate(-100%, 0);\n transition: transform 300ms;\n}\n.ycn-drawer__item-transition-exit-done {\n visibility: hidden;\n}\n.ycn-drawer__veil {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n background-color: var(--yc-color-sfx-veil);\n}\n.ycn-drawer__veil-transition-enter {\n opacity: 0;\n}\n.ycn-drawer__veil-transition-enter-active {\n opacity: 1;\n transition: opacity 300ms;\n}\n.ycn-drawer__veil-transition-exit {\n opacity: 1;\n}\n.ycn-drawer__veil-transition-exit-active {\n opacity: 0;\n transition: opacity 300ms;\n}\n.ycn-drawer__veil-transition-exit-done {\n visibility: hidden;\n}");var rJ=aX("drawer"),oJ=function(t){var n=t.visible,i=t.content,r=t.className,o=e.useRef(null);return e.createElement(WX,{in:n,timeout:300,unmountOnExit:!0,classNames:rJ("item-transition"),nodeRef:o},e.createElement("div",{ref:o,className:rJ("item",r)},i))},aJ=function(t){var n=t.className,i=t.children,r=t.style,o=t.onVeilClick,a=t.onEscape,s=t.preventScrollBody,u=void 0===s||s,l=!1;e.Children.forEach(i,(function(e){var t=e;t.type===oJ&&(Boolean(t.props.visible)&&(l=!0))})),e.useEffect((function(){function e(e){"Escape"===e.key&&(null===a||void 0===a||a())}return l&&window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[a,l]),e.useEffect((function(){var e=u,t=function(){document.body.style.paddingRight="",document.body.style.paddingBottom="",document.body.style.overflow=""};return e&&(l?function(){var e=window.innerWidth-document.documentElement.clientWidth,t=window.innerHeight-document.documentElement.clientHeight;document.body.style.paddingRight=e+"px",document.body.style.paddingBottom=t+"px",document.body.style.overflow="hidden"}():t()),function(){e&&t()}}),[l,u]);var c=e.useRef(null),d=e.useRef(null);return e.createElement(jX,{in:l,timeout:{enter:0,exit:300},mountOnEnter:!0,unmountOnExit:!0,nodeRef:c},(function(t){var a=l&&"entered"===t;return e.createElement("div",{ref:c,className:rJ(null,n),style:r},e.createElement(WX,{in:a,timeout:300,unmountOnExit:!0,classNames:rJ("veil-transition"),nodeRef:d},e.createElement("div",{ref:d,className:rJ("veil"),onClick:o})),e.Children.map(i,(function(t){var n=t;if(n.type===oJ){var i=Boolean(n.props.visible);return e.cloneElement(n,Object.assign(Object.assign({},n.props),{visible:i&&a}))}return t})))}))};sX(".ycn-logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n height: 40px;\n}\n.ycn-logo__logo-btn-place {\n flex-shrink: 0;\n width: var(--aside-header-min-width);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ycn-logo__btn-logo.yc-button_view_flat.yc-button_size_l {\n --yc-button-height: 38px;\n}\n.ycn-logo__logo {\n font-size: var(--yc-text-body-2-font-size);\n line-height: var(--yc-text-body-2-line-height);\n font-weight: var(--yc-text-body-font-weight);\n vertical-align: middle;\n}\n.ycn-logo__logo-link, .ycn-logo__logo-link:hover, .ycn-logo__logo-link:active, .ycn-logo__logo-link:visited, .ycn-logo__logo-link:focus {\n text-decoration: none;\n outline: none;\n color: inherit;\n}\n.yc-root .ycn-logo__btn-logo.button2_theme_flat.button2_hovered_yes::before {\n background-color: transparent;\n}");var sJ=aX("logo"),uJ=function(t){var n,i=t.text,r=t.compact,o=t.icon,a=t.iconSrc,s=t.iconClassName,u=t.iconSize,l=void 0===u?24:u,c=t.textSize,d=void 0===c?15:c,h=t.href,f=void 0===h?"/":h,p=t.wrapper,v=t.onClick,g="function"===typeof p,m="function"===typeof v?{}:{target:"_self",href:f};a?n=e.createElement(zr.Icon,{className:s},e.createElement("img",{alt:"logo icon",src:a,width:l,height:l})):o&&(n=e.createElement(Mr,{data:o,size:l,className:s}));var _,y=e.createElement(zr,Object.assign({view:"flat",size:"l",className:sJ("btn-logo"),component:g?"span":void 0,onClick:v},m),n);return _="function"===typeof i?i():e.createElement("div",{className:sJ("logo"),style:{fontSize:d}},i),e.createElement("div",{className:sJ()},e.createElement("div",{className:sJ("logo-btn-place")},g?p(y,r):y),!r&&(g?e.createElement("div",{onClick:v},p(_,r)):e.createElement("a",Object.assign({},m,{className:sJ("logo-link"),onClick:v}),_)))},lJ=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},cJ=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),dJ=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},hJ=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t},fJ=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(u){r=!0,o=u}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},pJ=void 0;pJ="undefined"!==typeof window?window:"undefined"!==typeof self?self:n.g;var vJ=null,gJ=null,mJ=pJ.clearTimeout,_J=pJ.setTimeout,yJ=pJ.cancelAnimationFrame||pJ.mozCancelAnimationFrame||pJ.webkitCancelAnimationFrame,bJ=pJ.requestAnimationFrame||pJ.mozRequestAnimationFrame||pJ.webkitRequestAnimationFrame;function wJ(e){var t=void 0,n=void 0,i=void 0,r=void 0,o=void 0,a=void 0,s=void 0,u="undefined"!==typeof document&&document.attachEvent;if(!u){a=function(e){var t=e.__resizeTriggers__,n=t.firstElementChild,i=t.lastElementChild,r=n.firstElementChild;i.scrollLeft=i.scrollWidth,i.scrollTop=i.scrollHeight,r.style.width=n.offsetWidth+1+"px",r.style.height=n.offsetHeight+1+"px",n.scrollLeft=n.scrollWidth,n.scrollTop=n.scrollHeight},o=function(e){return e.offsetWidth!==e.__resizeLast__.width||e.offsetHeight!==e.__resizeLast__.height},s=function(e){if(!(e.target.className&&"function"===typeof e.target.className.indexOf&&e.target.className.indexOf("contract-trigger")<0&&e.target.className.indexOf("expand-trigger")<0)){var t=this;a(this),this.__resizeRAF__&&vJ(this.__resizeRAF__),this.__resizeRAF__=gJ((function(){o(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach((function(n){n.call(t,e)})))}))}};var l=!1,c="";i="animationstart";var d="Webkit Moz O ms".split(" "),h="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),f=document.createElement("fakeelement");if(void 0!==f.style.animationName&&(l=!0),!1===l)for(var p=0;p<d.length;p++)if(void 0!==f.style[d[p]+"AnimationName"]){c="-"+d[p].toLowerCase()+"-",i=h[p],l=!0;break}t="@"+c+"keyframes "+(n="resizeanim")+" { from { opacity: 0; } to { opacity: 0; } } ",r=c+"animation: 1ms "+n+"; "}return{addResizeListener:function(o,l){if(u)o.attachEvent("onresize",l);else{if(!o.__resizeTriggers__){var c=o.ownerDocument,d=pJ.getComputedStyle(o);d&&"static"===d.position&&(o.style.position="relative"),function(n){if(!n.getElementById("detectElementResize")){var i=(t||"")+".resize-triggers { "+(r||"")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',o=n.head||n.getElementsByTagName("head")[0],a=n.createElement("style");a.id="detectElementResize",a.type="text/css",null!=e&&a.setAttribute("nonce",e),a.styleSheet?a.styleSheet.cssText=i:a.appendChild(n.createTextNode(i)),o.appendChild(a)}}(c),o.__resizeLast__={},o.__resizeListeners__=[],(o.__resizeTriggers__=c.createElement("div")).className="resize-triggers";var h=c.createElement("div");h.className="expand-trigger",h.appendChild(c.createElement("div"));var f=c.createElement("div");f.className="contract-trigger",o.__resizeTriggers__.appendChild(h),o.__resizeTriggers__.appendChild(f),o.appendChild(o.__resizeTriggers__),a(o),o.addEventListener("scroll",s,!0),i&&(o.__resizeTriggers__.__animationListener__=function(e){e.animationName===n&&a(o)},o.__resizeTriggers__.addEventListener(i,o.__resizeTriggers__.__animationListener__))}o.__resizeListeners__.push(l)}},removeResizeListener:function(e,t){if(u)e.detachEvent("onresize",t);else if(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),!e.__resizeListeners__.length){e.removeEventListener("scroll",s,!0),e.__resizeTriggers__.__animationListener__&&(e.__resizeTriggers__.removeEventListener(i,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(n){}}}}}null==yJ||null==bJ?(vJ=mJ,gJ=function(e){return _J(e,20)}):(vJ=function(e){var t=fJ(e,2),n=t[0],i=t[1];yJ(n),mJ(i)},gJ=function(e){var t=bJ((function(){mJ(n),e()})),n=_J((function(){yJ(t),e()}),20);return[t,n]});var CJ=function(t){function n(){var e,t,i;lJ(this,n);for(var r=arguments.length,o=Array(r),a=0;a<r;a++)o[a]=arguments[a];return t=i=hJ(this,(e=n.__proto__||Object.getPrototypeOf(n)).call.apply(e,[this].concat(o))),i.state={height:i.props.defaultHeight||0,width:i.props.defaultWidth||0},i._onResize=function(){var e=i.props,t=e.disableHeight,n=e.disableWidth,r=e.onResize;if(i._parentNode){var o=i._parentNode.offsetHeight||0,a=i._parentNode.offsetWidth||0,s=window.getComputedStyle(i._parentNode)||{},u=parseInt(s.paddingLeft,10)||0,l=parseInt(s.paddingRight,10)||0,c=parseInt(s.paddingTop,10)||0,d=parseInt(s.paddingBottom,10)||0,h=o-c-d,f=a-u-l;(!t&&i.state.height!==h||!n&&i.state.width!==f)&&(i.setState({height:o-c-d,width:a-u-l}),r({height:o,width:a}))}},i._setRef=function(e){i._autoSizer=e},hJ(i,t)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,t),cJ(n,[{key:"componentDidMount",value:function(){var e=this.props.nonce;this._autoSizer&&this._autoSizer.parentNode&&this._autoSizer.parentNode.ownerDocument&&this._autoSizer.parentNode.ownerDocument.defaultView&&this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement&&(this._parentNode=this._autoSizer.parentNode,this._detectElementResize=wJ(e),this._detectElementResize.addResizeListener(this._parentNode,this._onResize),this._onResize())}},{key:"componentWillUnmount",value:function(){this._detectElementResize&&this._parentNode&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize)}},{key:"render",value:function(){var t=this.props,n=t.children,i=t.className,r=t.disableHeight,o=t.disableWidth,a=t.style,s=this.state,u=s.height,l=s.width,c={overflow:"visible"},d={},h=!1;return r||(0===u&&(h=!0),c.height=0,d.height=u),o||(0===l&&(h=!0),c.width=0,d.width=l),(0,e.createElement)("div",{className:i,ref:this._setRef,style:dJ({},c,a)},!h&&n(d))}}]),n}(e.PureComponent);CJ.defaultProps={onResize:function(){},disableHeight:!1,disableWidth:!1,style:{}};var kJ=40,SJ="collapse-item-id",xJ=["right-start","right-end","right"],LJ=28;function EJ(e){switch(e.type){case"action":return 50;case"divider":return 15;default:return kJ}}function NJ(e){return e.reduce((function(e,t){return e+EJ(t)}),0)}function DJ(e){var t=e.findIndex((function(e){var t=e.current;return Boolean(t)}));return-1===t?void 0:t}function MJ(e){var t=function(e){var t,n=[],i=(0,Tr.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;(r.pinned||"divider"===r.type&&n.length>0&&"divider"!==n[n.length-1].type)&&n.push(r)}}catch(o){i.e(o)}finally{i.f()}return n}(e),n=e.filter((function(e){return e.afterMoreButton}));return NJ(t)+NJ(n)+(t.length===e.length?0:kJ)}sX('.ycn-composite-bar-item {\n --composite-bar-item-action-size: 36px;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n cursor: pointer;\n}\n.ycn-composite-bar-item__icon {\n color: var(--yc-color-text-misc);\n}\n.ycn-composite-bar-item__icon-place {\n flex-shrink: 0;\n width: var(--aside-header-min-width);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n.ycn-composite-bar-item__title {\n display: flex;\n overflow: hidden;\n}\n.ycn-composite-bar-item__title-text {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.ycn-composite-bar-item__title-adornment {\n margin: 0 10px;\n}\n.ycn-composite-bar-item__collapse-item {\n display: flex;\n padding: 0 16px;\n align-items: center;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.ycn-composite-bar-item__collapse-item .ycn-composite-bar-item__title-adornment {\n margin-right: 0;\n}\n.ycn-composite-bar-item__menu-divider {\n margin: 0 8px;\n width: 100%;\n border-top: 1px solid var(--yc-color-line-generic);\n cursor: default;\n}\n.ycn-composite-bar-item__collapse-items-popup-content {\n padding: 4px 0;\n}\n.ycn-composite-bar-item__link {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n}\n.ycn-composite-bar-item__link, .ycn-composite-bar-item__link:hover, .ycn-composite-bar-item__link:active, .ycn-composite-bar-item__link:visited, .ycn-composite-bar-item__link:focus {\n text-decoration: none;\n outline: none;\n color: inherit;\n}\n.ycn-composite-bar-item__btn-icon {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ycn-composite-bar-item_type_action {\n justify-content: center;\n height: var(--composite-bar-item-action-size);\n margin: 0 10px 8px;\n background: var(--yc-color-base-float);\n box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.03), 0px 5px 6px rgba(0, 0, 0, 0.12);\n border-radius: var(--composite-bar-item-action-size);\n transition: transform 0.1s ease-out, background-color 0.15s linear;\n}\n.ycn-composite-bar-item_type_action:focus {\n box-shadow: 0 0 0 2px var(--yc-color-line-misc);\n}\n.ycn-composite-bar-item_type_action:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.ycn-composite-bar-item_type_action:hover {\n background-color: var(--yc-color-base-float-hover);\n}\n.ycn-composite-bar-item_type_action:active {\n box-shadow: 0 1px 2px var(--yc-color-sfx-shadow);\n transition: none;\n transform: scale(0.96);\n}\n.ycn-composite-bar-item_type_action .ycn-composite-bar-item__icon-place {\n width: var(--composite-bar-item-action-size);\n}\n.ycn-composite-bar-item_type_action .ycn-composite-bar-item__title {\n margin-right: 16px;\n}\n.ycn-composite-bar-item__icon-tooltip_item-type_action {\n margin-left: 10px;\n}\n.ycn-composite-bar-item:not(.ycn-composite-bar-item_compact).ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular {\n background-color: var(--yc-color-base-selection);\n}\n.ycn-composite-bar-item:not(.ycn-composite-bar-item_compact):not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular {\n background-color: var(--yc-color-base-simple-hover);\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_type_action {\n width: var(--composite-bar-item-action-size);\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_type_action .ycn-composite-bar-item__title {\n margin: 0;\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon {\n position: relative;\n background-color: transparent;\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: -1;\n width: 38px;\n height: 38px;\n margin-top: -19px;\n margin-left: -19px;\n border-radius: 7px;\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n background-color: var(--yc-color-base-selection);\n}\n.ycn-composite-bar-item_compact:not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon {\n position: relative;\n background-color: transparent;\n}\n.ycn-composite-bar-item_compact:not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: -1;\n width: 38px;\n height: 38px;\n margin-top: -19px;\n margin-left: -19px;\n border-radius: 7px;\n}\n.ycn-composite-bar-item_compact:not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n background-color: var(--yc-color-base-simple-hover);\n}');var TJ=aX("composite-bar-item");function OJ(t){var n=e.createElement("div",{className:TJ("title-text")},t.title);return t.rightAdornment&&(n=e.createElement(e.Fragment,null,n,e.createElement("div",{className:TJ("title-adornment")},t.rightAdornment))),n}var IJ,AJ=["right-end"],PJ=[-20,8],RJ=function(t){var n=t.item,i=t.compact,r=t.className,o=t.collapseItems,a=t.onMouseLeave,s=t.onMouseEnter,u=t.enableTooltip,l=void 0===u||u,c=t.popupVisible,d=void 0!==c&&c,h=t.popupAnchor,f=t.popupPlacement,p=void 0===f?AJ:f,v=t.popupOffset,g=void 0===v?PJ:v,m=t.renderPopupContent,_=t.onClosePopup,y=t.onItemClick;if("divider"===n.type)return e.createElement("div",{className:TJ("menu-divider")});var b,w=e.useState(!1),C=(0,dt.Z)(w,2),k=C[0],S=C[1],x=e.useRef(null),L=h||x,E=n.type||"regular",N=n.current||!1,D=n.tooltipText||n.title,M=n.icon,T=n.iconSize||24,O=n.id===SJ,I=e.useCallback((function(e){var t;e instanceof MouseEvent&&e.target&&(null===(t=x.current)||void 0===t?void 0:t.contains(e.target))||null===_||void 0===_||_()}),[_]),A=function(t){var o=t.icon,u=t.title,c=e.createElement("div",{className:TJ({type:E,current:N,compact:i},r),ref:x,onClick:function(){O?S(!k):null===y||void 0===y||y(n,!1)},onMouseEnter:function(){i||null===s||void 0===s||s()},onMouseLeave:function(){i||null===a||void 0===a||a()}},e.createElement("div",{className:TJ("icon-place")},i?e.createElement(QQ,{content:D,disabled:!l||O&&k,placement:"right",className:TJ("icon-tooltip",{"item-type":E})},e.createElement("div",{onMouseEnter:function(){return null===s||void 0===s?void 0:s()},onMouseLeave:function(){return null===a||void 0===a?void 0:a()},className:TJ("btn-icon")},o)):o),e.createElement("div",{className:TJ("title"),title:"string"===typeof n.title?n.title:void 0},u),m&&Boolean(null===L||void 0===L?void 0:L.current)&&e.createElement(gp,{className:TJ("popup"),open:d,placement:p,offset:g,anchorRef:L,onClose:I},m()));return n.link?e.createElement("a",{href:n.link,className:TJ("link")},c):c},P={icon:M?e.createElement(Mr,{data:M,size:T,className:TJ("icon")}):null,title:OJ(n)},R={compact:i,collapsed:!1,item:n};return b="function"===typeof n.itemWrapper?n.itemWrapper(P,A,R):A(P),e.createElement(e.Fragment,null,b,k&&O&&(null===o||void 0===o?void 0:o.length)&&Boolean(null===L||void 0===L?void 0:L.current)&&e.createElement(ZJ,Object.assign({},t,{anchorRef:x,onClose:function(){return S(!1)}})))};function ZJ(t){var n=t.compact,i=t.onItemClick,r=t.collapseItems,o=t.anchorRef,a=t.onClose;return(null===r||void 0===r?void 0:r.length)?e.createElement(gp,{placement:xJ,open:!0,anchorRef:o,onClose:a},e.createElement("div",{className:TJ("collapse-items-popup-content")},e.createElement(Y_,{itemClassName:TJ("root-collapse-item"),items:r,selectedItemIndex:DJ(r),itemHeight:LJ,itemsHeight:r.length*LJ,virtualized:!1,filterable:!1,sortable:!1,renderItem:function(t){var r=function(n){var r=n.title,o=e.createElement("div",{className:TJ("collapse-item"),onClick:function(){null===i||void 0===i||i(t,!0)}},r);return t.link?e.createElement("a",{href:t.link,className:TJ("link")},o):o},o={title:OJ(t)},a={compact:n,collapsed:!0,item:t};return"function"===typeof t.itemWrapper?t.itemWrapper(o,r,a):r(o)}}))):null}function FJ(){return FJ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},FJ.apply(this,arguments)}RJ.displayName="Item";var jJ=function(t){return e.createElement("svg",FJ({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:16,height:16},t),IJ||(IJ=e.createElement("path",{d:"M14 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 14 6.125zm-5.906 0a1.874 1.874 0 1 1 0 3.749 1.874 1.874 0 0 1 0-3.749zM2 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 2 6.125z",fill:"currentColor",fillRule:"evenodd"})))};sX(".ycn-composite-bar {\n flex: 1 0 auto;\n width: 100%;\n min-height: 40px;\n}\n.ycn-composite-bar .ycn-composite-bar__root-menu-item[class] {\n background-color: transparent;\n}");var HJ=aX("composite-bar"),BJ=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).state={activeItemIndex:void 0},t.listRef=e.createRef(),t}return(0,r.Z)(s,[{key:"render",value:function(){var t=this,n=this.props,i=n.enableCollapsing,r=n.items;if(0===r.length)return null;if(!i)return e.createElement("div",{className:HJ()},this.renderMenu());var o=MJ(r);return e.createElement("div",{className:HJ({autosizer:!0}),style:{minHeight:o}},0!==r.length&&e.createElement(CJ,null,(function(n){var i=n.width,r=n.height,o={width:i,height:r};return e.createElement("div",{style:o},t.renderAutosizeMenu(r))})))}},{key:"renderAutosizeMenu",value:function(t){var n=this,i=this.props,r=i.compact,o=i.onItemClick,a=this.getAutosizeListItems(t),s=a.listItems,u=a.collapseItems;return e.createElement(Y_,{ref:this.listRef,items:s,selectedItemIndex:DJ(s),itemHeight:EJ,itemClassName:HJ("root-menu-item"),itemsHeight:NJ,virtualized:!1,filterable:!1,sortable:!1,renderItem:function(t){return e.createElement(RJ,{item:t,onMouseLeave:function(){var e;r&&(null===(e=n.listRef.current)||void 0===e||e.activateItem(void 0))},compact:r,collapseItems:u,onItemClick:o})}})}},{key:"renderMenu",value:function(){var t=this,n=this.props,i=n.items,r=n.onItemClick,o=n.compact;return e.createElement(Y_,{ref:this.listRef,items:i,selectedItemIndex:DJ(i),itemHeight:EJ,itemClassName:HJ("root-menu-item"),itemsHeight:NJ,virtualized:!1,filterable:!1,sortable:!1,renderItem:function(n){return e.createElement(RJ,{item:n,onMouseLeave:function(){var e;o&&(null===(e=t.listRef.current)||void 0===e||e.activateItem(void 0))},compact:o,onItemClick:r})}})}},{key:"getMoreButtonItem",value:function(){var e,t=this.props.dict,n=null!==(e=null===t||void 0===t?void 0:t[_X.MoreButton])&&void 0!==e?e:bX[_X.MoreButton];return{id:SJ,title:n,icon:jJ,iconSize:16}}},{key:"getAutosizeListItems",value:function(e){var t=this.props.items,n=t.filter((function(e){return e.afterMoreButton})),i=t.filter((function(e){return!e.afterMoreButton})),r=[].concat((0,Lt.Z)(i),(0,Lt.Z)(n)),o=NJ(r);if(o<=e)return{listItems:r,collapseItems:[]};var a=this.getMoreButtonItem(),s=EJ(a);r.splice(i.length,0,a);for(var u=[],l=o+s,c=r.length;l>e&&0!==c;){var d=r[--c];d.pinned||d.id===SJ||d.afterMoreButton||("divider"!==d.type?(l-=EJ(d),u.unshift.apply(u,(0,Lt.Z)(r.splice(c,1)))):c+1<r.length&&"divider"===r[c+1].type&&(l-=EJ(d),r.splice(c,1)))}return"divider"!==r[c].type||0!==c&&"divider"!==r[c-1].type||r.splice(c,1),{listItems:r,collapseItems:u}}}]),s}(e.Component),zJ=e.memo((function(t){var n=t.renderContent,i=t.size;return e.createElement(e.Fragment,null,n({size:i}))}));zJ.displayName="RenderContent";var WJ,VJ=function(t){var n=t.size,i=t.className,r=t.renderContent;return e.createElement("div",{className:i,style:Object.assign({},{"--aside-header-size":"".concat(n,"px")})},"function"===typeof r&&e.createElement(zJ,{size:n,renderContent:r}))};function YJ(){return YJ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},YJ.apply(this,arguments)}var UJ,KJ=function(t){return e.createElement("svg",YJ({width:8,height:8,viewBox:"0 0 8 8",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),WJ||(WJ=e.createElement("path",{d:"m.72 7.64 6.39-3.2a.5.5 0 0 0 0-.89L.72.36A.5.5 0 0 0 0 .81v6.38c0 .37.4.61.72.45Z"})))};function qJ(){return qJ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},qJ.apply(this,arguments)}var GJ=function(t){return e.createElement("svg",qJ({width:56,height:29,viewBox:"0 0 56 29",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),UJ||(UJ=e.createElement("path",{d:"M56 0v29c-.8-1-7-6.1-17.7-8.4L13 15.7A16 16 0 0 1 0 0Z"})))};sX('.yc-root {\n --aside-header-background-color: var(--yc-color-base-info);\n --aside-header-collapse-button-divider-line-color: var(\n --aside-header-header-divider-line-color\n );\n}\n\n.yc-root_theme_light,\n.yc-root_theme_light-hc {\n --aside-header-divider-line-color: transparent;\n --aside-header-header-divider-line-color: var(--yc-color-line-generic);\n}\n\n.yc-root_theme_dark,\n.yc-root_theme_dark-hc {\n --aside-header-divider-line-color: var(--yc-color-line-solid);\n --aside-header-header-divider-line-color: var(--yc-color-line-solid);\n}\n\n.ycn-aside-header {\n --aside-header-min-width: 56px;\n height: 100%;\n width: 100%;\n position: relative;\n background-color: var(--yc-color-base-background);\n}\n.ycn-aside-header__aside {\n position: sticky;\n top: 0;\n left: 0;\n height: 100vh;\n width: inherit;\n display: flex;\n flex-direction: column;\n background-color: var(--yc-color-base-background);\n z-index: 100;\n box-sizing: border-box;\n}\n.ycn-aside-header__aside::after {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n width: 1px;\n height: 100%;\n content: "";\n background-color: var(--aside-header-divider-line-color);\n}\n.ycn-aside-header__aside-popup-anchor {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n}\n.ycn-aside-header__aside-content {\n --gradient-height: 334px;\n display: flex;\n flex-direction: column;\n overflow-x: hidden;\n width: inherit;\n height: inherit;\n position: relative;\n z-index: 2;\n user-select: none;\n background: linear-gradient(180deg, var(--aside-header-background-color) calc(var(--gradient-height) * 0.33), transparent calc(var(--gradient-height) * 0.88));\n}\n.ycn-aside-header__aside-content::after {\n position: absolute;\n top: 0;\n right: -100px;\n bottom: 0;\n width: 100px;\n content: "";\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1), 0px 0px 24px rgba(0, 0, 0, 0.08);\n}\n.ycn-aside-header__aside-content > .ycn-aside-header-logo {\n margin: 8px 0;\n}\n.ycn-aside-header_compact .ycn-aside-header__aside-content {\n background: transparent;\n}\n.ycn-aside-header__header {\n --aside-header-header-divider-height: 29px;\n position: relative;\n z-index: 1;\n flex: none;\n box-sizing: border-box;\n width: 100%;\n padding-top: 8px;\n padding-bottom: 22px;\n}\n.ycn-aside-header__header .ycn-aside-header__header-divider {\n position: absolute;\n bottom: 0;\n left: 0;\n z-index: -2;\n display: none;\n color: var(--aside-header-background-color);\n}\n.ycn-aside-header__header::before {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -2;\n display: none;\n width: 100%;\n height: calc(100% - var(--aside-header-header-divider-height));\n content: "";\n background-color: var(--aside-header-background-color);\n}\n.ycn-aside-header__header::after {\n position: absolute;\n bottom: 12px;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 1px;\n content: "";\n background-color: var(--aside-header-header-divider-line-color);\n}\n.ycn-aside-header_compact .ycn-aside-header__header::before {\n display: block;\n}\n.ycn-aside-header_compact .ycn-aside-header__header::after {\n display: none;\n}\n.ycn-aside-header_compact .ycn-aside-header__header .ycn-aside-header__header-divider {\n display: block;\n}\n.ycn-aside-header__menu-items {\n flex-grow: 1;\n}\n.ycn-aside-header__footer {\n flex-shrink: 0;\n width: 100%;\n margin: 8px 0;\n display: flex;\n flex-direction: column;\n}\n.ycn-aside-header__panels {\n z-index: 98;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n overflow: auto;\n}\n.ycn-aside-header__panel {\n height: 100%;\n}\n.ycn-aside-header__pane-container {\n display: flex;\n outline: none;\n overflow: visible;\n user-select: text;\n flex-direction: row;\n}\n.ycn-aside-header__content {\n width: calc(100% - var(--aside-header-size));\n z-index: 95;\n}\n.ycn-aside-header__collapse-button {\n --yc-button-background-color-hover: transparent;\n overflow: hidden;\n box-sizing: border-box;\n flex: none;\n width: 100%;\n height: 20px;\n border-top: 1px solid var(--aside-header-collapse-button-divider-line-color);\n margin-top: auto;\n}\n.ycn-aside-header__collapse-button:not(.ycn-aside-header__collapse-button_compact) .ycn-aside-header__collapse-icon {\n transform: rotate(180deg);\n}\n.ycn-aside-header__collapse-button .ycn-aside-header__collapse-icon {\n color: var(--yc-color-text-secondary);\n}\n.ycn-aside-header__collapse-button:hover .ycn-aside-header__collapse-icon {\n color: var(--yc-color-text-primary);\n}');var $J=aX("aside-header"),QJ=function(t){(0,o.Z)(s,t);var n=(0,a.Z)(s);function s(){var t;return(0,i.Z)(this,s),(t=n.apply(this,arguments)).asideRef=e.createRef(),t.renderFirstPane=function(n){var i=t.props,r=i.dict,o=i.menuItems,a=i.panelItems,s=i.compact;return e.createElement(e.Fragment,null,e.createElement("div",{className:$J("aside"),style:{width:n}},e.createElement("div",{className:$J("aside-popup-anchor"),ref:t.asideRef}),e.createElement("div",{className:$J("aside-content")},t.renderHeader(),(null===o||void 0===o?void 0:o.length)?e.createElement(BJ,{items:o,compact:s,enableCollapsing:!0,dict:r,onItemClick:t.onItemClick}):e.createElement("div",{className:$J("menu-items")}),t.renderFooter(n),t.renderCollapseButton())),a&&t.renderPanels(n))},t.renderSecondPane=function(n){return e.createElement(VJ,{size:n,renderContent:t.props.renderContent,className:$J("content")})},t.renderLogo=function(){return e.createElement(uJ,Object.assign({},t.props.logo,{compact:t.props.compact,onClick:t.onLogoClick}))},t.renderHeader=function(){return e.createElement("div",{className:$J("header")},t.renderLogo(),e.createElement(BJ,{items:t.props.subheaderItems,compact:t.props.compact,enableCollapsing:!1,onItemClick:t.onItemClick}),e.createElement(Mr,{data:GJ,className:$J("header-divider"),width:yX,height:"29"}))},t.renderFooter=function(n){var i=t.props,r=i.compact,o=i.renderFooter;return e.createElement("div",{className:$J("footer")},null===o||void 0===o?void 0:o({size:n,compact:r,asideRef:t.asideRef}))},t.renderPanels=function(n){var i=t.props.panelItems;return e.createElement(aJ,{className:$J("panels"),onVeilClick:t.onCloseDrawer,onEscape:t.onCloseDrawer,style:{left:n}},i.map((function(t){return e.createElement(oJ,Object.assign({key:t.id},t))})))},t.renderCollapseButton=function(){var n,i=t.props,r=i.compact,o=i.dict,a=r?_X.ExpandButton:_X.CollapseButton;return e.createElement(zr,{className:$J("collapse-button",{compact:r}),view:"flat",onClick:t.onCollapseButtonClick,title:null!==(n=null===o||void 0===o?void 0:o[a])&&void 0!==n?n:bX[a]},e.createElement(Mr,{data:KJ,className:$J("collapse-icon"),width:"16",height:"10"}))},t.onCollapseButtonClick=function(){var e,n;null===(n=(e=t.props).onChangeCompact)||void 0===n||n.call(e,!t.props.compact)},t.onCloseDrawer=function(){var e,n;null===(n=(e=t.props).onClosePanel)||void 0===n||n.call(e)},t.onItemClick=function(e,n){var i,r,o;null===(r=(i=t.props).onClosePanel)||void 0===r||r.call(i),null===(o=e.onItemClick)||void 0===o||o.call(e,e,n)},t.onLogoClick=function(e){var n,i,r,o;null===(i=(n=t.props).onClosePanel)||void 0===i||i.call(n),null===(o=(r=t.props.logo).onClick)||void 0===o||o.call(r,e)},t}return(0,r.Z)(s,[{key:"render",value:function(){var t=this.props,n=t.className,i=t.compact,r=i?yX:236;return e.createElement("div",{className:$J({compact:i},n)},e.createElement("div",{className:$J("pane-container")},this.renderFirstPane(r),this.renderSecondPane(r)))}}]),s}(e.Component);function XJ(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}QJ.defaultProps={panelItems:[],subheaderItems:[],menuItems:[]};sX(".ycn-footer-item {\n width: 100%;\n height: 40px;\n}");var JJ=aX("footer-item"),e0=function(t){var n=t.item,i=XJ(t,["item"]);return e.createElement(RJ,Object.assign({},i,{item:Object.assign({iconSize:20},n),className:JJ({compact:i.compact}),onItemClick:n.onItemClick}))};var t0=function(e){return e};var n0=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},i0="object"==typeof XQ&&XQ&&XQ.Object===Object&&XQ,r0="object"==typeof self&&self&&self.Object===Object&&self,o0=i0||r0||Function("return this")(),a0=o0,s0=function(){return a0.Date.now()},u0=/\s/;var l0=function(e){for(var t=e.length;t--&&u0.test(e.charAt(t)););return t},c0=l0,d0=/^\s+/;var h0=function(e){return e?e.slice(0,c0(e)+1).replace(d0,""):e},f0=o0.Symbol,p0=f0,v0=Object.prototype,g0=v0.hasOwnProperty,m0=v0.toString,_0=p0?p0.toStringTag:void 0;var y0=function(e){var t=g0.call(e,_0),n=e[_0];try{e[_0]=void 0;var i=!0}catch(o){}var r=m0.call(e);return i&&(t?e[_0]=n:delete e[_0]),r},b0=Object.prototype.toString;var w0=y0,C0=function(e){return b0.call(e)},k0="[object Null]",S0="[object Undefined]",x0=f0?f0.toStringTag:void 0;var L0=function(e){return null==e?void 0===e?S0:k0:x0&&x0 in Object(e)?w0(e):C0(e)},E0=function(e){return null!=e&&"object"==typeof e},N0="[object Symbol]";var D0=h0,M0=n0,T0=function(e){return"symbol"==typeof e||E0(e)&&L0(e)==N0},O0=NaN,I0=/^[-+]0x[0-9a-f]+$/i,A0=/^0b[01]+$/i,P0=/^0o[0-7]+$/i,R0=parseInt;var Z0=n0,F0=s0,j0=function(e){if("number"==typeof e)return e;if(T0(e))return O0;if(M0(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=M0(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=D0(e);var n=A0.test(e);return n||P0.test(e)?R0(e.slice(2),n?2:8):I0.test(e)?O0:+e},H0="Expected a function",B0=Math.max,z0=Math.min;var W0=function(e,t,n){var i,r,o,a,s,u,l=0,c=!1,d=!1,h=!0;if("function"!=typeof e)throw new TypeError(H0);function f(t){var n=i,o=r;return i=r=void 0,l=t,a=e.apply(o,n)}function p(e){var n=e-u;return void 0===u||n>=t||n<0||d&&e-l>=o}function v(){var e=F0();if(p(e))return g(e);s=setTimeout(v,function(e){var n=t-(e-u);return d?z0(n,o-(e-l)):n}(e))}function g(e){return s=void 0,h&&i?f(e):(i=r=void 0,a)}function m(){var e=F0(),n=p(e);if(i=arguments,r=this,u=e,n){if(void 0===s)return function(e){return l=e,s=setTimeout(v,t),c?f(e):a}(u);if(d)return clearTimeout(s),s=setTimeout(v,t),f(u)}return void 0===s&&(s=setTimeout(v,t)),a}return t=j0(t)||0,Z0(n)&&(c=!!n.leading,o=(d="maxWait"in n)?B0(j0(n.maxWait)||0,t):o,h="trailing"in n?!!n.trailing:h),m.cancel=function(){void 0!==s&&clearTimeout(s),l=0,i=u=r=s=void 0},m.flush=function(){return void 0===s?a:g(F0())},m};function V0(t){var n=e.useRef();return e.useEffect((function(){return n.current=t,function(){n.current=void 0}}),[t]),e.useCallback((function(){if("function"===typeof n.current)return n.current.apply(n,arguments)}),[])}function Y0(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var U0=aX("settings-search");function K0(t){var n=t.className,i=t.onChange,r=t.debounce,o=void 0===r?200:r,a=t.inputRef,s=t.placeholder,u=V0(i),l=e.useCallback(W0(u,o),[o]);return e.createElement("div",{className:U0(null,n)},e.createElement(iv,{controlRef:a,hasClear:!0,autoFocus:!0,placeholder:s,onUpdate:l}))}sX('.ycn-settings-menu__group-heading {\n font-weight: var(--yc-text-accent-font-weight);\n display: inline-block;\n padding: 0 20px;\n margin-bottom: 12px;\n line-height: 18px;\n}\n.ycn-settings-menu__group + .ycn-settings-menu__group {\n margin-top: 24px;\n}\n.ycn-settings-menu__item {\n display: flex;\n align-items: center;\n height: 40px;\n padding: 0 20px;\n cursor: pointer;\n color: var(--yc-color-text-primary);\n}\n.ycn-settings-menu__item-icon {\n color: var(--yc-color-text-misc);\n margin-right: 5px;\n}\n.ycn-settings-menu__item:hover, .ycn-settings-menu__item_focused {\n background: var(--yc-color-base-simple-hover);\n}\n.ycn-settings-menu__item_selected {\n background: var(--yc-color-base-selection);\n}\n.ycn-settings-menu__item_selected:hover, .ycn-settings-menu__item_selected.ycn-settings-menu__item_focused {\n background: var(--yc-color-base-selection-hover);\n}\n.ycn-settings-menu__item_disabled {\n color: var(--yc-color-text-secondary);\n cursor: auto;\n}\n.ycn-settings-menu__item_disabled:hover {\n background: none;\n}\n.ycn-settings-menu__item_disabled .ycn-settings-menu__item-icon {\n color: var(--yc-color-base-misc-heavy);\n}\n.ycn-settings-menu__item_badge {\n position: relative;\n}\n.ycn-settings-menu__item_badge::after {\n content: "";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--yc-color-text-danger);\n position: absolute;\n right: 9px;\n top: calc(50% - 3px);\n}');var q0=aX("settings-menu"),G0=e.forwardRef((function(t,n){var i=t.items,r=t.onChange,o=t.activeItem,a=e.useState(),s=(0,dt.Z)(a,2),u=s[0],l=s[1],c=e.useRef(null),d=V0(r),h=function(t){var n=e.useRef(t);return n.current=t,e.useCallback((function(){return n.current}),[])}(u);return e.useImperativeHandle(n,(function(){return{handleKeyDown:function(e){if(!c.current)return!1;var t=h();return t&&"Enter"===e.key?(d(t),!0):"ArrowDown"===e.key?(l(Q0(c.current,t,1)),!0):"ArrowUp"===e.key&&(l(Q0(c.current,t,-1)),!0)},clearFocus:function(){l(void 0)}}}),[h,d]),e.createElement("div",{ref:c,className:q0()},i.map((function(t){return"groupTitle"in t?e.createElement("div",{key:t.groupTitle,className:q0("group")},e.createElement("span",{className:q0("group-heading")},t.groupTitle),t.items.map((function(e){return $0(e,r,o,u)}))):$0(t,r,o,u)})))}));function $0(t,n,i,r){return e.createElement("span",{key:t.title,className:q0("item",{selected:i===t.id,disabled:t.disabled,focused:r===t.id,badge:t.withBadge}),onClick:function(){t.disabled||n(t.id)},"data-id":t.id},t.icon?e.createElement(Mr,Object.assign({size:16},t.icon,{className:q0("item-icon")})):void 0,e.createElement("span",null,t.title))}function Q0(e,t,n){var i,r=e.querySelectorAll(".".concat(q0("item"),":not(.").concat(q0("item"),"_disabled)"));if(0!==r.length){var o=n>0?-1:0;return t&&(o=Array.prototype.findIndex.call(r,(function(e){return e.getAttribute("data-id")===t}))),null!==(i=r[o=(r.length+o+n)%r.length].getAttribute("data-id"))&&void 0!==i?i:void 0}}function X0(e){var t=Y0(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").replace(/\s+/g,".*?");return J0(e,"",new RegExp(t,"i"))}function J0(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,r=[],o={};return e.Children.forEach(t,(function(t){var a,s;if(e.isValidElement(t))if(t.type===e.Fragment){var u=J0(t.props.children,n,i),l=u.menu,c=u.pages;r.push.apply(r,(0,Lt.Z)(l)),Object.assign(o,c)}else if(t.props.groupTitle){0;var d="".concat(n,"/").concat(null!==(a=t.props.id)&&void 0!==a?a:t.props.groupTitle);!0;var h=J0(t.props.children,d,i),f=h.menu,p=h.pages;r.push({groupTitle:t.props.groupTitle,items:f}),Object.assign(o,p)}else{!0;var v="".concat(n,"/").concat(null!==(s=t.props.id)&&void 0!==s?s:t.props.title);0,o[v]=e1(t.props.children,i),o[v].id=v,r.push({id:v,title:t.props.title,icon:t.props.icon,withBadge:o[v].withBadge,disabled:o[v].hidden})}})),{menu:r,pages:o}}function e1(t,n){var i={id:"",sections:[],hidden:!0};return e.Children.forEach(t,(function(t){if(e.isValidElement(t))if(t.type===e.Fragment){var r,o=e1(t.props.children,n),a=o.sections,s=o.withBadge,u=o.hidden;(r=i.sections).push.apply(r,(0,Lt.Z)(a)),i.withBadge=s||i.withBadge,i.hidden=u&&i.hidden}else{var l=t.props,c=l.title,d=l.header,h=l.withBadge,f=t1(t.props.children,n),p=f.items,v=f.hidden;i.withBadge=h||i.withBadge,i.hidden=v&&i.hidden,i.sections.push({title:c,header:d,withBadge:h,items:p,hidden:v})}})),i}function t1(t,n){var i=!0,r=[];return e.Children.forEach(t,(function(t){if(e.isValidElement(t))if(t.type===e.Fragment){var o=t1(t.props.children,n);r.push.apply(r,(0,Lt.Z)(o.items)),i=i&&o.hidden}else{var a={title:t.props.title,renderTitleComponent:t.props.renderTitleComponent,element:t,hidden:!n.test(t.props.title)};r.push(a),i=i&&a.hidden}})),{items:r,hidden:i}}sX('.ycn-settings {\n display: grid;\n grid-template-columns: 216px 1fr;\n width: 834px;\n height: 100%;\n}\n.ycn-settings_loading {\n grid-template-columns: auto;\n}\n.ycn-settings__loader {\n align-self: center;\n justify-self: center;\n}\n.ycn-settings__not-found {\n display: grid;\n align-items: center;\n justify-items: center;\n height: 100%;\n}\n.ycn-settings__menu {\n border-right: 1px solid var(--yc-color-line-generic);\n}\n.ycn-settings__heading {\n font-size: var(--yc-text-subheader-2-font-size);\n line-height: var(--yc-text-subheader-2-line-height);\n font-weight: var(--yc-text-subheader-font-weight);\n margin: 20px 20px 0;\n}\n.ycn-settings__search {\n margin: 12px 20px 16px;\n}\n.ycn-settings__page {\n padding: 20px;\n overflow-y: auto;\n}\n.ycn-settings__section-heading {\n font-size: var(--yc-text-subheader-2-font-size);\n line-height: var(--yc-text-subheader-2-line-height);\n font-weight: var(--yc-text-subheader-font-weight);\n margin: 0;\n}\n.ycn-settings__section-item {\n margin-top: 24px;\n}\n.ycn-settings__section + .ycn-settings__section {\n margin-top: 32px;\n}\n.ycn-settings__item {\n display: grid;\n grid-template-columns: 216px 1fr;\n justify-items: start;\n}\n.ycn-settings__item_align_top {\n align-items: start;\n}\n.ycn-settings__item_align_center {\n align-items: center;\n}\n.ycn-settings__item-heading_badge {\n position: relative;\n}\n.ycn-settings__item-heading_badge::after {\n content: "";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--yc-color-text-danger);\n position: absolute;\n right: -8px;\n top: 1px;\n}\n.ycn-settings__found {\n font-weight: var(--yc-text-accent-font-weight);\n background: var(--yc-color-base-selection);\n}');var n1,i1=aX("settings");function r1(t){var n=t.loading,i=t.renderLoading,r=t.children,o=XJ(t,["loading","renderLoading","children"]);return n?e.createElement("div",{className:i1({loading:!0})},"function"===typeof i?i():e.createElement(yy,{className:i1("loader"),size:"m"})):e.createElement(o1,Object.assign({},o),r)}function o1(t){var n,i,r=t.initialPage,o=t.onPageChange,a=t.children,s=t.renderNotFound,u=t.dict,l=e.useState(""),c=(0,dt.Z)(l,2),d=c[0],h=c[1],f=X0(a,d),p=f.menu,v=f.pages,g=Object.keys(v),m=e.useState(r&&g.includes(r)?r:void 0),_=(0,dt.Z)(m,2),y=_[0],b=_[1],w=e.useRef(null),C=e.useRef(null);e.useEffect((function(){var e;null===(e=C.current)||void 0===e||e.clearFocus()}),[d]),e.useEffect((function(){var e=function(){var e;null===(e=C.current)||void 0===e||e.clearFocus()};return window.addEventListener("click",e),function(){window.removeEventListener("click",e)}}),[]);var k=y;k&&!(null===(n=v[k])||void 0===n?void 0:n.hidden)||(k=null===(i=Object.values(v).find((function(e){return!e.hidden})))||void 0===i?void 0:i.id);var S=function(e){b((function(t){return t!==e&&(null===o||void 0===o||o(e)),e}))};e.useEffect((function(){k!==y&&S(k)}));return e.createElement("div",{className:i1()},e.createElement("div",{className:i1("menu"),onClick:function(){w.current&&w.current.focus()},onKeyDown:function(e){C.current&&C.current.handleKeyDown(e)&&e.preventDefault()}},e.createElement("h2",{className:i1("heading")},null===u||void 0===u?void 0:u.heading_settings),e.createElement(K0,{inputRef:w,className:i1("search"),onChange:h,placeholder:null===u||void 0===u?void 0:u.placeholder_search}),e.createElement(G0,{ref:C,items:p,onChange:S,activeItem:k})),e.createElement("div",{className:i1("page")},k?v[k].sections.filter((function(e){return!e.hidden})).map((function(t){return e.createElement("div",{key:t.title,className:i1("section")},e.createElement("h3",{className:i1("section-heading")},t.title),t.header?t.header:null,t.items.map((function(t){var n=t.hidden,i=t.title,r=t.element;return n?null:e.createElement("div",{key:i,className:i1("section-item")},e.cloneElement(r,Object.assign(Object.assign({},r.props),{title:d&&i?a1(i,d):i})))})))})):"function"===typeof s?s():e.createElement("div",{className:i1("not-found")},null===u||void 0===u?void 0:u.not_found)))}function a1(t,n){var i,r=t.slice(0),o=[],a=Y0(n).split(" ").filter(Boolean),s=0,u=(0,Tr.Z)(a);try{for(u.s();!(i=u.n()).done;){var l=i.value,c=new RegExp(l,"ig").exec(r);if(c){var d=c[0],h=c.index;h>0&&o.push(r.slice(0,h)),o.push(e.createElement("strong",{key:s++,className:i1("found")},d)),r=r.slice(h+d.length)}}}catch(f){u.e(f)}finally{u.f()}return r&&o.push(r),o}function s1(){return s1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},s1.apply(this,arguments)}r1.defaultProps={dict:{heading_settings:"Settings",placeholder_search:"Search settings",not_found:"No results found"}},r1.Group=function(t){var n=t.children;return e.createElement(e.Fragment,null,n)},r1.Page=function(t){var n=t.children;return e.createElement(e.Fragment,null,n)},r1.Section=function(t){var n=t.children;return e.createElement(e.Fragment,null,n)},r1.Item=function(t){var n=t.title,i=t.children,r=t.align,o=void 0===r?"center":r,a=t.withBadge,s=t.renderTitleComponent,u=void 0===s?t0:s;return e.createElement("div",{className:i1("item",{align:o})},e.createElement("label",{className:i1("item-heading",{badge:a})},u(n)),e.createElement("div",null,i))};var u1,l1=function(t){return e.createElement("svg",s1({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},t),n1||(n1=e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 3.5H4A1.5 1.5 0 002.5 5v6A1.5 1.5 0 004 12.5h8a1.5 1.5 0 001.5-1.5V5A1.5 1.5 0 0012 3.5zM4 2a3 3 0 00-3 3v6a3 3 0 003 3h8a3 3 0 003-3V5a3 3 0 00-3-3H4zm.47 8.53a.75.75 0 010-1.06L5.94 8 4.47 6.53a.75.75 0 011.06-1.06l2 2a.75.75 0 010 1.06l-2 2a.75.75 0 01-1.06 0zM8.75 9.5a.75.75 0 000 1.5h2.5a.75.75 0 000-1.5h-2.5z",clipRule:"evenodd"})))};function c1(){return c1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},c1.apply(this,arguments)}var d1,h1=function(t){return e.createElement("svg",c1({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},t),u1||(u1=e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M9.235 1a.75.75 0 01.74.56l2.034 7.726 1.09-1.908A.75.75 0 0113.75 7h1.5a.75.75 0 010 1.5h-1.065l-1.784 3.122a.75.75 0 01-1.376-.181l-1.71-6.496-2.083 9.466a.75.75 0 01-1.446.07L3.544 7.55l-.65 1.085A.75.75 0 012.25 9H.75a.75.75 0 110-1.5h1.075l1.282-2.136a.75.75 0 011.357.155l1.898 5.868 2.156-9.798A.75.75 0 019.235 1z",clipRule:"evenodd"})))};function f1(){return f1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},f1.apply(this,arguments)}var p1,v1=function(t){return e.createElement("svg",f1({"aria-hidden":"true","data-prefix":"fas","data-icon":"arrow-right-from-bracket",className:"signOut_svg__svg-inline--fa signOut_svg__fa-arrow-right-from-bracket",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),d1||(d1=e.createElement("path",{fill:"currentColor",d:"M160 416H96c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h64c17.67 0 32-14.33 32-32s-14.3-32-32-32H96C42.98 32 0 74.98 0 128v256c0 53.02 42.98 96 96 96h64c17.67 0 32-14.33 32-32s-14.3-32-32-32zm342.6-182.6l-128-128c-12.51-12.51-32.76-12.49-45.25 0-12.5 12.5-12.5 32.75 0 45.25L402.8 224H192c-17.7 0-32 14.3-32 32s14.31 32 32 32h210.8l-73.38 73.38c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0l128-128c12.43-12.53 12.43-32.73-.07-45.23z"})))};function g1(){return g1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},g1.apply(this,arguments)}var m1,_1=function(t){return e.createElement("svg",g1({"aria-hidden":"true","data-prefix":"fas","data-icon":"arrow-right-to-bracket",className:"signIn_svg__svg-inline--fa signIn_svg__fa-arrow-right-to-bracket",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),p1||(p1=e.createElement("path",{fill:"currentColor",d:"M416 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c17.67 0 32 14.33 32 32v256c0 17.67-14.33 32-32 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c53.02 0 96-42.98 96-96V128c0-53.02-43-96-96-96zm-73.4 201.4l-128-128c-12.51-12.51-32.76-12.49-45.25 0-12.5 12.5-12.5 32.75 0 45.25L242.8 224H32c-17.69 0-32 14.3-32 32s14.31 32 32 32h210.8l-73.38 73.38c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0l128-128c12.43-12.53 12.43-32.73-.07-45.23z"})))};function y1(){return y1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},y1.apply(this,arguments)}var b1,w1=function(t){return e.createElement("svg",y1({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},t),m1||(m1=e.createElement("path",{d:"M560 448h-48V113.5c0-27.25-21.5-49.5-48-49.5l-112 .01V128h96v384h112c8.875 0 16-7.125 16-15.1v-31.1c0-10.7-7.1-17.8-16-17.8zM280.3 1.007l-192 49.75C73.1 54.51 64 67.76 64 82.88V448H16c-8.875 0-16 7.125-16 15.1v31.1C0 504.9 7.125 512 16 512h304V33.13c0-21.5-19.5-37.373-39.7-32.123zM232 288c-13.25 0-24-14.37-24-31.1 0-17.62 10.75-31.1 24-31.1s24 12.6 24 30.2-10.7 32-24 32z"})))};function C1(){return C1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},C1.apply(this,arguments)}var k1,S1=function(t){return e.createElement("svg",C1({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),b1||(b1=e.createElement("path",{d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c39.77 0 72 32.24 72 72s-32.2 72-72 72c-39.76 0-72-32.24-72-72s32.2-72 72-72zm0 320c-52.93 0-100.9-21.53-135.7-56.29C136.5 349.9 176.5 320 224 320h64c47.54 0 87.54 29.88 103.7 71.71C356.9 426.5 308.9 448 256 448z"})))};function x1(){return x1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},x1.apply(this,arguments)}var L1,E1=function(t){return e.createElement("svg",x1({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),k1||(k1=e.createElement("path",{d:"M20.763 14.255l-1.63-.912c.19-.911.19-1.784 0-2.696l1.63-.911a.437.437 0 00.19-.532 9.714 9.714 0 00-2.046-3.607.459.459 0 00-.569-.076l-1.63.911a7.611 7.611 0 00-2.273-1.329v-1.86c0-.19-.151-.38-.379-.418-1.402-.342-2.804-.304-4.13 0-.227.038-.34.227-.34.417v1.861c-.872.304-1.63.76-2.312 1.367l-1.63-.95a.459.459 0 00-.568.077A9.714 9.714 0 003.03 9.204c-.076.19 0 .418.19.532l1.629.911a8.05 8.05 0 000 2.696l-1.63.912a.437.437 0 00-.19.531 9.713 9.713 0 002.047 3.608c.152.152.379.19.568.076l1.63-.912a7.355 7.355 0 002.311 1.33v1.86c0 .19.152.38.341.456 1.402.304 2.804.266 4.13 0 .228-.076.38-.266.38-.456v-1.86a7.612 7.612 0 002.273-1.33l1.63.912a.458.458 0 00.568-.076c.947-1.025 1.629-2.24 2.084-3.608a.511.511 0 00-.228-.531zm-8.753.76c-1.705 0-3.031-1.33-3.031-3.039a3.02 3.02 0 013.031-3.038 3.044 3.044 0 013.031 3.038 3.02 3.02 0 01-3.03 3.038z",fill:"currentColor"})))};function N1(){return N1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},N1.apply(this,arguments)}var D1,M1=function(t){return e.createElement("svg",N1({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),L1||(L1=e.createElement("path",{d:"M21 12c0-4.936-4.065-9-9-9-4.972 0-9 4.064-9 9 0 4.972 4.028 9 9 9 4.935 0 9-4.028 9-9zm-8.782-6.024c2.068 0 4.246 1.596 4.246 3.701 0 2.831-3.012 2.867-3.012 3.883v.037a.441.441 0 01-.436.435h-2.032a.42.42 0 01-.436-.435v-.146c0-1.487 1.125-2.068 1.96-2.54.726-.399 1.198-.69 1.198-1.234 0-.725-.944-1.197-1.67-1.197-.98 0-1.415.472-2.068 1.306a.453.453 0 01-.617.073l-1.27-.944c-.182-.145-.218-.399-.073-.617.98-1.488 2.25-2.322 4.21-2.322zm-.218 9c.907 0 1.67.762 1.67 1.67 0 .943-.763 1.668-1.67 1.668-.944 0-1.67-.725-1.67-1.669 0-.907.726-1.67 1.67-1.67z",fill:"currentColor"})))};function T1(){return T1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},T1.apply(this,arguments)}var O1,I1=function(t){return e.createElement("svg",T1({"aria-hidden":"true","data-prefix":"fas","data-icon":"star",className:"star_svg__svg-inline--fa star_svg__fa-star",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},t),D1||(D1=e.createElement("path",{fill:"currentColor",d:"M316.7 17.8l65.43 132.4 146.4 21.29c26.27 3.796 36.79 36.09 17.75 54.59l-105.9 102.1 25.05 145.5c4.508 26.31-23.23 45.9-46.49 33.7L288 439.6l-130.9 68.7c-23.3 12.2-51-7.4-46.5-33.7l25.05-145.5-105.93-103c-19.03-18.5-8.516-50.79 17.75-54.59l146.4-21.29 65.43-132.4c11.8-23.903 45.7-23.606 57.4-.02z"})))};function A1(){return A1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},A1.apply(this,arguments)}var P1=function(t){return e.createElement("svg",A1({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},t),O1||(O1=e.createElement("path",{d:"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"})))},R1=JSON.parse('{"page.general":"General","section.general":"General","page.experiments":"Experiments","section.experiments":"Experiments","settings.theme.title":"Interface theme","settings.theme.option-dark":"Dark","settings.theme.option-light":"Light","settings.theme.option-system":"System","settings.invertedDisks.title":"Inverted disks space indicators","settings.useNodesEndpoint.title":"Break the Nodes tab in Diagnostics","settings.useNodesEndpoint.popover":"Use /viewer/json/nodes endpoint for Nodes Tab in diagnostics. It returns incorrect data on versions before 23-1","settings.enableAdditionalQueryModes.title":"Enable additional query modes","settings.enableAdditionalQueryModes.popover":"Adds \'Data\' and \'YQL - QueryService\' modes. May not work on some versions"}'),Z1=JSON.parse('{"page.general":"\u041e\u0431\u0449\u0438\u0435","section.general":"\u041e\u0431\u0449\u0438\u0435","page.experiments":"\u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b","section.experiments":"\u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b","settings.theme.title":"\u0422\u0435\u043c\u0430","settings.theme.option-dark":"\u0422\u0451\u043c\u043d\u0430\u044f","settings.theme.option-light":"\u0421\u0432\u0435\u0442\u043b\u0430\u044f","settings.theme.option-system":"\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f","settings.invertedDisks.title":"\u0418\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0430\u0445","settings.useNodesEndpoint.title":"\u0421\u043b\u043e\u043c\u0430\u0442\u044c \u0432\u043a\u043b\u0430\u0434\u043a\u0443 Nodes \u0432 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0435","settings.useNodesEndpoint.popover":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 /viewer/json/nodes \u0434\u043b\u044f \u0432\u043a\u043b\u0430\u0434\u043a\u0438 Nodes \u0432 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0435. \u041c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0434\u043e 23-1","settings.enableAdditionalQueryModes.title":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0436\u0438\u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432","settings.enableAdditionalQueryModes.popover":"\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0435\u0436\u0438\u043c\u044b \'Data\' \u0438 \'YQL - QueryService\'. \u041c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445"}'),F1="ydb-user-settings";na.registerKeyset(Ko.En,F1,R1),na.registerKeyset(Ko.Ru,F1,Z1);var j1,H1=na.keyset(F1),B1=[{value:"system",content:H1("settings.theme.option-system")},{value:"light",content:H1("settings.theme.option-light")},{value:"dark",content:H1("settings.theme.option-dark")}],z1={settingKey:ei,title:H1("settings.theme.title"),type:"radio",options:B1},W1={settingKey:ti,title:H1("settings.invertedDisks.title")},V1={settingKey:ni,title:H1("settings.useNodesEndpoint.title"),helpPopoverContent:H1("settings.useNodesEndpoint.popover")},Y1={settingKey:ii,title:H1("settings.enableAdditionalQueryModes.title"),helpPopoverContent:H1("settings.enableAdditionalQueryModes.popover")},U1={id:"generalSection",title:H1("section.general"),settings:[z1]},K1={id:"experimentsSection",title:H1("section.experiments"),settings:[W1,V1,Y1]},q1=[{id:"generalPage",title:H1("page.general"),icon:{data:I1,height:14,width:14},sections:[U1]},{id:"experimentsPage",title:H1("page.experiments"),icon:{data:P1},sections:[K1]}],G1=function(e){var t=e.type,n=void 0===t?"switch":t,i=e.settingKey,r=e.title,o=e.helpPopoverContent,a=e.options,s=e.defaultValue,u=gf(i,s),l=(0,dt.Z)(u,2),c=l[0],d=l[1];return(0,fs.jsx)(r1.Item,{title:r,renderTitleComponent:function(e){return o?(0,fs.jsx)(QU,{className:$1("item-with-popup"),contentClassName:$1("popup"),text:e,popoverContent:o}):e},children:function(e){switch(e){case"switch":return(0,fs.jsx)(kY,{checked:Boolean(c),onUpdate:d});case"radio":return a?(0,fs.jsx)(Pp,{value:String(c),onUpdate:d,children:a.map((function(e){var t=e.value,n=e.content;return(0,fs.jsx)(Pp.Option,{value:t,children:n},t)}))}):null;default:return null}}(n)})},$1=(0,ct.default)("ydb-user-settings"),Q1=function(e){var t=e.settings,n=void 0===t?q1:t;return(0,fs.jsx)(r1,{children:n.map((function(e){var t=e.id,n=e.title,i=e.icon,r=e.sections,o=void 0===r?[]:r;return(0,fs.jsx)(r1.Page,{id:t,title:n,icon:i,children:o.map((function(e){var n=e.title,i=e.settings,r=void 0===i?[]:i;return(0,fs.jsx)(r1.Section,{title:n,children:r.map((function(e){return(0,fs.jsx)(G1,Rt({},e),e.settingKey)}))},t)}))},t)}))})},X1=(0,ct.default)("kv-navigation");function J1(e){var t=e.ydbUser,n=e.logout,i=st();return(0,fs.jsxs)("div",{className:X1("internal-user"),children:[(0,fs.jsxs)("div",{className:X1("user-info-wrapper"),children:[(0,fs.jsx)("div",{className:X1("ydb-internal-user-title"),children:"YDB user"}),t&&(0,fs.jsx)("div",{className:X1("username"),children:t})]}),t?(0,fs.jsx)(zr,{view:"flat-secondary",onClick:n,title:"logout",children:(0,fs.jsx)(Mr,{data:v1,size:16})}):(0,fs.jsx)(zr,{view:"flat-secondary",title:"login",onClick:function(){i.push(Ph(Zh.auth,void 0,{returnUrl:encodeURI(location.href)}))},children:(0,fs.jsx)(Mr,{data:_1,size:16})})]})}function e2(t){var n,i=t.isCompact,r=t.popupAnchor,o=t.ydbUser,a=(0,e.useState)(!1),s=(0,dt.Z)(a,2),u=s[0],l=s[1],c=null!==o&&void 0!==o&&o.login?S1:w1;return(0,fs.jsx)(e0,{compact:i,item:{id:"user-popup",title:null!==(n=null===o||void 0===o?void 0:o.login)&&void 0!==n?n:"Account",current:u,icon:c,iconSize:22,onItemClick:function(){return l(!0)}},enableTooltip:!u,popupAnchor:r,popupVisible:u,onClosePopup:function(){return l(!1)},renderPopupContent:function(){return(0,fs.jsx)("div",{className:X1("ydb-user-wrapper"),children:(0,fs.jsx)(J1,{ydbUser:o.login,logout:o.logout})})}})}!function(e){e.UserSettings="UserSettings"}(j1||(j1={}));var t2=function(){var t=ut(),n=st(),i=gf(_i),r=(0,dt.Z)(i,2),o=r[0],a=r[1],s=vf((function(e){return e.tenant})).tenantPage,u=void 0===s?o:s,l=t.pathname,c=Ah(t),d=l==="/".concat(Oh);return e.useMemo((function(){return d?[{id:Xi.query,title:"Query",icon:l1,iconSize:20,location:Cv(Rt(Rt({},c),{},(0,xt.Z)({},Qi,Xi.query)))},{id:Xi.diagnostics,title:"Diagnostics",icon:h1,iconSize:20,location:Cv(Rt(Rt({},c),{},(0,xt.Z)({},Qi,Xi.diagnostics)))}].map((function(e){var t=e.id===u;return{id:e.id,title:e.title,icon:e.icon,iconSize:e.iconSize,current:t,onItemClick:function(){a(e.id),n.push(e.location)}}})):[]}),[u,d,a,n,c])};var n2=U((function(e){return{ydbUser:e.authentication.user,compact:lr(e,oi)}}),{logout:function(){return Oo({request:window.api.logout(),actions:ko})},setSettingValue:ur})((function(t){var n=st(),i=(0,e.useState)(),r=(0,dt.Z)(i,2),o=r[0],a=r[1],s=t2();return(0,fs.jsx)(e.Fragment,{children:(0,fs.jsx)(QJ,{logo:{text:"YDB",icon:AQ,onClick:function(){return n.push("/")}},menuItems:s,compact:t.compact,onChangeCompact:function(e){t.setSettingValue(oi,JSON.stringify(e))},className:X1(),renderContent:function(){return t.children},renderFooter:function(n){var i=n.compact,r=n.asideRef;return(0,fs.jsxs)(e.Fragment,{children:[(0,fs.jsx)(e0,{compact:i,item:{id:"documentation",title:"Documentation",icon:M1,iconSize:24,onItemClick:function(){window.open("https://ydb.tech/docs","_blank","noreferrer")}}}),(0,fs.jsx)(e0,{item:{id:"user-settings",title:"Settings",icon:E1,iconSize:24,current:o===j1.UserSettings,onItemClick:function(){a(o===j1.UserSettings?void 0:j1.UserSettings)}},compact:i}),(0,fs.jsx)(e2,{isCompact:i,popupAnchor:r,ydbUser:{login:t.ydbUser,logout:t.logout}})]})},panelItems:[{id:"user-settings",visible:o===j1.UserSettings,content:(0,fs.jsx)(Q1,{})}],onClosePanel:function(){a(void 0)}})})}));NS.languages.register({id:kV}),NS.languages.setMonarchTokensProvider(kV,{defaultToken:"text",ignoreCase:!0,tokenPostfix:".yql",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],keywordControl:"bind|block|declare|export|import|lambda|let|quote|return".split("|"),escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(#)((?:\w|[\\+-=<>'"&#])+)/,["delimiter","constant"]],[/(?:\b(?:(defun|defmethod|defmacro))\b)(\s+)((?:\w|-|\?)*)/,["type.function","text","entity.name"]],[/(\*)(\S*)(\*)/,["delimiter","variable","delimiter"]],{include:"@strings"},[/'[^#\s)(]+/,"variable.parameter"],[/[(){}[\]]/,"@brackets"],[/(?:(?:<=?|>=?|==|!=|[-+*/%])|[a-zA-Z][a-zA-Z0-9!]*)/,{cases:{"@keywordControl":{token:"keyword.operator"},"@default":"identifier"}}]],whitespace:[[/\s+/,"white"]],comment:[[/#.*/,"comment"]],strings:[[/'?"(?=.)/,{token:"string",next:"@qqstring"}],[/'?[@]{2}/,{token:"string",next:"@multiline"}],[/'?x"(?:[0-9A-Fa-f]{2})*"/,"string"]],qqstring:[[/\\(?:[0-3][0-7][0-7]|x[0-9A-Fa-f]{2}|["tnrbfav\\])/,"string.escape"],[/[^"\\]+/,"string"],[/"|$/,{token:"string",next:"@pop"}]],multiline:[[/[^@]+/,"string"],[/[@]{2}/,{token:"string",next:"@pop"}],[/./,{token:"string"}]]}});var i2=function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,r.Z)(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.isAuthenticated,n=e.getUser;t&&n()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.isAuthenticated,i=t.getUser,r=t.internalUser;!n||e.isAuthenticated&&r||i()}},{key:"renderContentWithNavigation",value:function(){var e=this.props,t=e.singleClusterMode,n=e.clusterName;return(0,fs.jsxs)(n2,{children:[(0,fs.jsx)(UQ,{singleClusterMode:t,clusterName:n}),(0,fs.jsx)("div",{id:"fullscreen-root"})]})}},{key:"render",value:function(){return(0,fs.jsx)(KQ,{children:this.renderContentWithNavigation()})}}]),n}(e.Component);var r2=U((function(e){var t;return{isAuthenticated:e.authentication.isAuthenticated,internalUser:e.authentication.user,singleClusterMode:e.singleClusterMode,clusterName:null===(t=e.cluster.data)||void 0===t?void 0:t.Name}}),{getUser:function(){return Oo({request:window.api.whoami(),actions:xo,dataHandler:function(e){var t=e.UserSID;return"Login"===e.AuthType?t:void 0}})}})(i2),o2=function(e){e&&e instanceof Function&&n.e(4529).then(n.bind(n,34529)).then((function(t){var n=t.getCLS,i=t.getFID,r=t.getFCP,o=t.getLCP,a=t.getTTFB;n(e),i(e),r(e),o(e),a(e)}))},a2=Th(),s2=a2.store,u2=a2.history;window.store=s2,t.render((0,fs.jsx)(e.StrictMode,{children:(0,fs.jsx)(f,{store:s2,children:(0,fs.jsx)(tq.Provider,{value:u2,children:(0,fs.jsx)(r2,{})})})}),document.getElementById("root")),o2()}()}();
+//# sourceMappingURL=main.8a169fdc.js.map \ No newline at end of file
diff --git a/ydb/core/viewer/protos/viewer.proto b/ydb/core/viewer/protos/viewer.proto
index d7586ca0d1..4412b18dbf 100644
--- a/ydb/core/viewer/protos/viewer.proto
+++ b/ydb/core/viewer/protos/viewer.proto
@@ -321,6 +321,7 @@ message TClusterInfo {
uint64 Hosts = 44;
uint64 Tenants = 45;
uint64 Tablets = 46;
+ string Domain = 47;
}
enum ETenantType {
@@ -391,6 +392,7 @@ message TStorageInfo {
repeated TStoragePoolInfo StoragePools = 2;
uint64 TotalGroups = 3;
uint64 FoundGroups = 4;
+ repeated TStorageGroupInfo StorageGroups = 5;
}
message TNodeInfo {
@@ -474,6 +476,7 @@ message TComputeNodeInfo {
optional uint64 MemoryLimit = 27;
NKikimrTabletBase.TMetrics Metrics = 32;
repeated TTabletStateInfo Tablets = 33;
+ optional string Tenant = 41; // for response without tenant groups
}
message TComputeTenantInfo {
@@ -486,6 +489,9 @@ message TComputeInfo {
EFlag Overall = 1;
repeated TComputeTenantInfo Tenants = 2;
repeated string Errors = 3;
+ uint64 TotalNodes = 4;
+ uint64 FoundNodes = 5;
+ repeated TComputeNodeInfo Nodes = 6;
}
message TNodeLocation {
@@ -498,6 +504,10 @@ message TEvViewerRequest {
oneof Request {
NKikimrWhiteboard.TEvTabletStateRequest TabletRequest = 11;
NKikimrWhiteboard.TEvSystemStateRequest SystemRequest = 12;
+ bytes Reserved13 = 13;
+ bytes Reserved14 = 14;
+ bytes Reserved15 = 15;
+ bytes Reserved16 = 16;
}
}
@@ -506,6 +516,10 @@ message TEvViewerResponse {
oneof Response {
NKikimrWhiteboard.TEvTabletStateResponse TabletResponse = 11;
NKikimrWhiteboard.TEvSystemStateResponse SystemResponse = 12;
+ bytes Reserved13 = 13;
+ bytes Reserved14 = 14;
+ bytes Reserved15 = 15;
+ bytes Reserved16 = 16;
}
}
diff --git a/ydb/core/viewer/viewer_helper.h b/ydb/core/viewer/viewer_helper.h
new file mode 100644
index 0000000000..1d92ac7570
--- /dev/null
+++ b/ydb/core/viewer/viewer_helper.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include <util/generic/algorithm.h>
+
+namespace NKikimr::NViewer {
+ template<typename TCollection, typename TFunc>
+ void SortCollection(TCollection& collection, TFunc&& func, bool ReverseSort = false) {
+ using TItem = typename TCollection::value_type;
+ bool reverse = ReverseSort;
+ ::Sort(collection, [reverse, func](const TItem& a, const TItem& b) {
+ auto valueA = func(a);
+ auto valueB = func(b);
+ return valueA == valueB ? false : reverse ^ (valueA < valueB);
+ });
+ }
+}
diff --git a/ydb/core/viewer/viewer_request.cpp b/ydb/core/viewer/viewer_request.cpp
index 2721c5b42c..809ace454c 100644
--- a/ydb/core/viewer/viewer_request.cpp
+++ b/ydb/core/viewer/viewer_request.cpp
@@ -71,6 +71,10 @@ IActor* CreateViewerRequestHandler(TEvViewer::TEvViewerRequest::TPtr request) {
return new TViewerWhiteboardRequest<TEvWhiteboard::TEvTabletStateRequest, TEvWhiteboard::TEvTabletStateResponse>(request);
case NKikimrViewer::TEvViewerRequest::kSystemRequest:
return new TViewerWhiteboardRequest<TEvWhiteboard::TEvSystemStateRequest, TEvWhiteboard::TEvSystemStateResponse>(request);
+ case NKikimrViewer::TEvViewerRequest::kReserved13:
+ case NKikimrViewer::TEvViewerRequest::kReserved14:
+ case NKikimrViewer::TEvViewerRequest::kReserved15:
+ case NKikimrViewer::TEvViewerRequest::kReserved16:
case NKikimrViewer::TEvViewerRequest::REQUEST_NOT_SET:
return nullptr;
}
diff --git a/ydb/core/viewer/ya.make b/ydb/core/viewer/ya.make
index fdb89f9cbf..124976d9f9 100644
--- a/ydb/core/viewer/ya.make
+++ b/ydb/core/viewer/ya.make
@@ -65,7 +65,7 @@ SRCS(
IF (NOT EXPORT_CMAKE)
RESOURCE(
monitoring/index.html monitoring/index.html
- monitoring/static/css/main.ff5b549d.css monitoring/static/css/main.ff5b549d.css
+ monitoring/static/css/main.a0419d3f.css monitoring/static/css/main.a0419d3f.css
monitoring/static/favicon.png monitoring/static/favicon.png
monitoring/static/js/1058.3df06184.chunk.js monitoring/static/js/1058.3df06184.chunk.js
monitoring/static/js/1115.1e053b1d.chunk.js monitoring/static/js/1115.1e053b1d.chunk.js
@@ -103,8 +103,8 @@ IF (NOT EXPORT_CMAKE)
monitoring/static/js/4731.6929d6df.chunk.js monitoring/static/js/4731.6929d6df.chunk.js
monitoring/static/js/4952.58b99bba.chunk.js monitoring/static/js/4952.58b99bba.chunk.js
monitoring/static/js/5012.3afcd232.chunk.js monitoring/static/js/5012.3afcd232.chunk.js
- monitoring/static/js/5210.6e07cb51.chunk.js monitoring/static/js/5210.6e07cb51.chunk.js
- monitoring/static/js/5215.2d9f2122.chunk.js monitoring/static/js/5215.2d9f2122.chunk.js
+ monitoring/static/js/5210.0bde5996.chunk.js monitoring/static/js/5210.0bde5996.chunk.js
+ monitoring/static/js/5215.82cc072c.chunk.js monitoring/static/js/5215.82cc072c.chunk.js
monitoring/static/js/5444.f86e47ff.chunk.js monitoring/static/js/5444.f86e47ff.chunk.js
monitoring/static/js/5517.a1034916.chunk.js monitoring/static/js/5517.a1034916.chunk.js
monitoring/static/js/5646.ced0e1ae.chunk.js monitoring/static/js/5646.ced0e1ae.chunk.js
@@ -131,7 +131,7 @@ IF (NOT EXPORT_CMAKE)
monitoring/static/js/7953.eb2256ce.chunk.js monitoring/static/js/7953.eb2256ce.chunk.js
monitoring/static/js/8005.9c209154.chunk.js monitoring/static/js/8005.9c209154.chunk.js
monitoring/static/js/805.d67f39bf.chunk.js monitoring/static/js/805.d67f39bf.chunk.js
- monitoring/static/js/8206.d2f5a912.chunk.js monitoring/static/js/8206.d2f5a912.chunk.js
+ monitoring/static/js/8206.9a658249.chunk.js monitoring/static/js/8206.9a658249.chunk.js
monitoring/static/js/8322.c2b160c6.chunk.js monitoring/static/js/8322.c2b160c6.chunk.js
monitoring/static/js/8335.9ed734ba.chunk.js monitoring/static/js/8335.9ed734ba.chunk.js
monitoring/static/js/842.bd21ee9f.chunk.js monitoring/static/js/842.bd21ee9f.chunk.js
@@ -146,7 +146,7 @@ IF (NOT EXPORT_CMAKE)
monitoring/static/js/939.4c5d6b68.chunk.js monitoring/static/js/939.4c5d6b68.chunk.js
monitoring/static/js/9803.e1567af5.chunk.js monitoring/static/js/9803.e1567af5.chunk.js
monitoring/static/js/983.18afe3d6.chunk.js monitoring/static/js/983.18afe3d6.chunk.js
- monitoring/static/js/main.8120faa2.js monitoring/static/js/main.8120faa2.js
+ monitoring/static/js/main.8a169fdc.js monitoring/static/js/main.8a169fdc.js
monitoring/static/media/403.271ae19f0d1101a2c67a904146bbd4d3.svg monitoring/static/media/403.271ae19f0d1101a2c67a904146bbd4d3.svg
monitoring/static/media/403.6367e52f9464706633f52a2488a41958.svg monitoring/static/media/403.6367e52f9464706633f52a2488a41958.svg
monitoring/static/media/codicon.80a4c25b73c1f97077ed.ttf monitoring/static/media/codicon.80a4c25b73c1f97077ed.ttf
diff --git a/ydb/core/wrappers/events/object_exists.h b/ydb/core/wrappers/events/object_exists.h
index d16a06143e..3fbb5d873f 100644
--- a/ydb/core/wrappers/events/object_exists.h
+++ b/ydb/core/wrappers/events/object_exists.h
@@ -14,21 +14,21 @@
namespace NKikimr::NWrappers::NExternalStorage {
class TEvCheckObjectExistsRequest: public TGenericRequest<TEvCheckObjectExistsRequest,
- EvCheckObjectExistsRequest, Aws::S3::Model::ListObjectsRequest> {
+ EvCheckObjectExistsRequest, Aws::S3::Model::HeadObjectRequest> {
private:
- using TBase = TGenericRequest<TEvCheckObjectExistsRequest, EvCheckObjectExistsRequest, Aws::S3::Model::ListObjectsRequest>;
+ using TBase = TGenericRequest<TEvCheckObjectExistsRequest, EvCheckObjectExistsRequest, Aws::S3::Model::HeadObjectRequest>;
public:
using TBase::TBase;
};
class TEvCheckObjectExistsResponse: public TBaseGenericResponse<TEvCheckObjectExistsResponse,
- EvCheckObjectExistsResponse, Aws::S3::Model::ListObjectsResult> {
+ EvCheckObjectExistsResponse, Aws::S3::Model::HeadObjectResult> {
private:
- using TBase = TBaseGenericResponse<TEvCheckObjectExistsResponse, EvCheckObjectExistsResponse, Aws::S3::Model::ListObjectsResult>;
+ using TBase = TBaseGenericResponse<TEvCheckObjectExistsResponse, EvCheckObjectExistsResponse, Aws::S3::Model::HeadObjectResult>;
public:
using TBase::TBase;
bool IsExists() const {
- return Result.IsSuccess() && Result.GetResult().GetContents().size();
+ return Result.IsSuccess();
}
};
}
diff --git a/ydb/core/wrappers/fake_storage.cpp b/ydb/core/wrappers/fake_storage.cpp
index 6b516333ad..e2a14e8b1d 100644
--- a/ydb/core/wrappers/fake_storage.cpp
+++ b/ydb/core/wrappers/fake_storage.cpp
@@ -178,10 +178,24 @@ void TFakeExternalStorage::Execute(TEvAbortMultipartUploadRequest::TPtr& /*ev*/)
void TFakeExternalStorage::Execute(TEvCheckObjectExistsRequest::TPtr& ev) const {
TGuard<TMutex> g(Mutex);
- auto awsResult = BuildListObjectsResult(ev->Get()->GetRequest());
- THolder<TEvCheckObjectExistsResponse> result(new TEvCheckObjectExistsResponse(awsResult, ev->Get()->GetRequestContext()));
- TlsActivationContext->ActorSystem()->Send(ev->Sender, result.Release());
+ auto& bucket = GetBucket(AwsToString(ev->Get()->GetRequest().GetBucket()));
+ const TString key = AwsToString(ev->Get()->GetRequest().GetKey());
+ auto object = bucket.GetObject(key);
+ std::unique_ptr<TEvCheckObjectExistsResponse> result;
+ if (object) {
+ Aws::S3::Model::HeadObjectResult awsResult;
+ awsResult.SetETag(MD5::Calc(*object));
+ awsResult.SetContentLength(object->size());
+ result.reset(new TEvCheckObjectExistsResponse(awsResult, ev->Get()->GetRequestContext()));
+ Y_VERIFY_DEBUG(result->IsSuccess());
+ } else {
+ Aws::Utils::Outcome<Aws::S3::Model::HeadObjectResult, Aws::S3::S3Error> awsOutcome;
+ result.reset(new TEvCheckObjectExistsResponse(awsOutcome, ev->Get()->GetRequestContext()));
+ Y_VERIFY_DEBUG(!result->IsSuccess());
+ }
+
+ TlsActivationContext->ActorSystem()->Send(ev->Sender, result.release());
}
void TFakeExternalStorage::Execute(TEvUploadPartCopyRequest::TPtr& /*ev*/) const {
diff --git a/ydb/core/wrappers/s3_storage.cpp b/ydb/core/wrappers/s3_storage.cpp
index 83712d80e8..394c2436d4 100644
--- a/ydb/core/wrappers/s3_storage.cpp
+++ b/ydb/core/wrappers/s3_storage.cpp
@@ -270,7 +270,7 @@ void TS3ExternalStorage::Execute(TEvGetObjectRequest::TPtr& ev) const {
void TS3ExternalStorage::Execute(TEvCheckObjectExistsRequest::TPtr& ev) const {
Call<TEvCheckObjectExistsRequest, TEvCheckObjectExistsResponse, TContextBase>(
- ev, &S3Client::ListObjectsAsync);
+ ev, &S3Client::HeadObjectAsync);
}
void TS3ExternalStorage::Execute(TEvListObjectsRequest::TPtr& ev) const {
diff --git a/ydb/core/wrappers/ut_helpers/s3_mock.cpp b/ydb/core/wrappers/ut_helpers/s3_mock.cpp
index c494bfa269..f69f787095 100644
--- a/ydb/core/wrappers/ut_helpers/s3_mock.cpp
+++ b/ydb/core/wrappers/ut_helpers/s3_mock.cpp
@@ -84,14 +84,14 @@ bool TS3Mock::TRequest::HttpBadRequest(const TReplyParams& params, const TString
return true;
}
-bool TS3Mock::TRequest::HttpNotFound(const TReplyParams& params) {
+bool TS3Mock::TRequest::HttpNotFound(const TReplyParams& params, const TString& errorCode) {
params.Output << "HTTP/1.1 404 Not found\r\n\r\n";
- params.Output << R"(
+ params.Output << Sprintf(R"(
<?xml version="1.0" encoding="UTF-8"?>
<Error>
- <Code>NoSuchKey</Code>
+ <Code>%s</Code>
</Error>
- )";
+ )", errorCode.c_str());
return true;
}
@@ -175,7 +175,7 @@ bool TS3Mock::TRequest::HttpServeWrite(const TReplyParams& params, TStringBuf pa
auto it = Parent->MultipartUploads.find(std::make_pair(path, queryParams.Get("uploadId")));
if (it == Parent->MultipartUploads.end()) {
- return HttpBadRequest(params, "Invalid uploadId");
+ return HttpNotFound(params, "NoSuchUpload");
}
size_t partNumber = 0;
@@ -267,7 +267,7 @@ bool TS3Mock::TRequest::HttpServeAction(const TReplyParams& params, EMethod meth
} else if (queryParams.Has("uploadId")) {
auto it = Parent->MultipartUploads.find(std::make_pair(path, queryParams.Get("uploadId")));
if (it == Parent->MultipartUploads.end()) {
- return HttpBadRequest(params, "Invalid uploadId");
+ return HttpNotFound(params, "NoSuchUpload");
}
if (method == EMethod::Post) {
@@ -369,7 +369,7 @@ bool TS3Mock::TRequest::DoReply(const TReplyParams& params) {
if (Parent->Data.contains(pathStr)) {
return HttpServeRead(params, method, pathStr);
} else {
- return HttpNotFound(params);
+ return HttpNotFound(params, "NoSuchKey");
}
break;
diff --git a/ydb/core/wrappers/ut_helpers/s3_mock.h b/ydb/core/wrappers/ut_helpers/s3_mock.h
index 55d55d9ebb..512b4d51f7 100644
--- a/ydb/core/wrappers/ut_helpers/s3_mock.h
+++ b/ydb/core/wrappers/ut_helpers/s3_mock.h
@@ -43,7 +43,7 @@ private:
static bool TryParseRange(TStringBuf str, std::pair<ui32, ui32>& range);
bool HttpBadRequest(const TReplyParams& params, const TString& error = {});
- bool HttpNotFound(const TReplyParams& params);
+ bool HttpNotFound(const TReplyParams& params, const TString& errorCode = {});
bool HttpNotImplemented(const TReplyParams& params);
void MaybeContinue(const TReplyParams& params);
bool HttpServeRead(const TReplyParams& params, EMethod method, const TStringBuf path);
diff --git a/ydb/core/ydb_convert/table_description.cpp b/ydb/core/ydb_convert/table_description.cpp
index a631832d55..65fb0f675f 100644
--- a/ydb/core/ydb_convert/table_description.cpp
+++ b/ydb/core/ydb_convert/table_description.cpp
@@ -97,6 +97,12 @@ static void AddTtl(TYdbProto& out, const TTtl& inTTL) {
default:
break;
}
+
+ if constexpr (std::is_same_v<TTtl, NKikimrSchemeOp::TTTLSettings::TEnabled>) {
+ if (inTTL.HasSysSettings() && inTTL.GetSysSettings().HasRunInterval()) {
+ out.mutable_ttl_settings()->set_run_interval_seconds(TDuration::FromValue(inTTL.GetSysSettings().GetRunInterval()).Seconds());
+ }
+ }
}
template <typename TYdbProto>
diff --git a/ydb/core/ydb_convert/table_settings.h b/ydb/core/ydb_convert/table_settings.h
index cc9b4fc488..affdd70e6f 100644
--- a/ydb/core/ydb_convert/table_settings.h
+++ b/ydb/core/ydb_convert/table_settings.h
@@ -60,7 +60,7 @@ bool FillTtlSettings(TTtlSettingsEnabled& out, const Ydb::Table::TtlSettings& in
return unsupported("Unsupported ttl settings");
}
- if constexpr (std::is_same_v<TTtlSettingsEnabled, NKikimrSchemeOp::TTTLSettings>) {
+ if constexpr (std::is_same_v<TTtlSettingsEnabled, NKikimrSchemeOp::TTTLSettings::TEnabled>) {
if (in.run_interval_seconds()) {
out.MutableSysSettings()->SetRunInterval(TDuration::Seconds(in.run_interval_seconds()).GetValue());
}
diff --git a/ydb/core/ymq/actor/action.h b/ydb/core/ymq/actor/action.h
index 6eedff1630..67a0b700ce 100644
--- a/ydb/core/ymq/actor/action.h
+++ b/ydb/core/ymq/actor/action.h
@@ -14,7 +14,7 @@
#include <ydb/core/audit/audit_log.h>
#include <ydb/core/base/path.h>
#include <ydb/core/base/ticket_parser.h>
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/protos/msgbus.pb.h>
#include <ydb/core/ymq/base/action.h>
#include <ydb/core/ymq/base/acl.h>
diff --git a/ydb/core/ymq/actor/cleanup_queue_data.cpp b/ydb/core/ymq/actor/cleanup_queue_data.cpp
index 0d94214b85..2ca6558479 100644
--- a/ydb/core/ymq/actor/cleanup_queue_data.cpp
+++ b/ydb/core/ymq/actor/cleanup_queue_data.cpp
@@ -5,6 +5,7 @@
#include <ydb/core/ymq/queues/common/key_hashes.h>
+
namespace NKikimr::NSQS {
constexpr TDuration LOCK_PERIOD = TDuration::Seconds(30);
constexpr TDuration UPDATE_LOCK_PERIOD = TDuration::Seconds(20);
@@ -99,9 +100,14 @@ namespace NKikimr::NSQS {
LOG_DEBUG_S(ctx, NKikimrServices::SQS, "[cleanup removed queues] getting queues...");
State = state;
- NClient::TParameters params;
- params["$StartProcessTimestamp"] = StartProcessTimestamp.Seconds();
- params["$NodeId"] = SelfId().NodeId();
+ NYdb::TParams params = NYdb::TParamsBuilder()
+ .AddParam("$StartProcessTimestamp")
+ .Uint64(StartProcessTimestamp.Seconds())
+ .Build()
+ .AddParam("$NodeId")
+ .Uint32(SelfId().NodeId())
+ .Build()
+ .Build();
RunYqlQuery(SelectQueuesQuery, std::move(params), true, sendAfter, Cfg().GetRoot(), ctx);
}
@@ -173,11 +179,19 @@ namespace NKikimr::NSQS {
void TCleanupQueueDataActor::LockQueueToRemove(TDuration runAfter, const TActorContext& ctx) {
State = EState::LockQueue;
- NClient::TParameters params;
StartProcessTimestamp = ctx.Now();
- params["$StartProcessTimestamp"] = StartProcessTimestamp.Seconds();
- params["$LockFreeTimestamp"] = (StartProcessTimestamp - LOCK_PERIOD).Seconds();
- params["$NodeId"] = SelfId().NodeId();
+
+ NYdb::TParams params = NYdb::TParamsBuilder()
+ .AddParam("$StartProcessTimestamp")
+ .Uint64(StartProcessTimestamp.Seconds())
+ .Build()
+ .AddParam("$LockFreeTimestamp")
+ .Uint64((StartProcessTimestamp - LOCK_PERIOD).Seconds())
+ .Build()
+ .AddParam("$NodeId")
+ .Uint32(SelfId().NodeId())
+ .Build()
+ .Build();
RunYqlQuery(LockQueueQuery, std::move(params), false, runAfter, Cfg().GetRoot(), ctx);
}
@@ -186,13 +200,28 @@ namespace NKikimr::NSQS {
LOG_DEBUG_S(ctx, NKikimrServices::SQS, "[cleanup removed queues] update queue lock...");
State = EState::UpdateLockQueue;
- NClient::TParameters params;
- params["$StartProcessTimestamp"] = StartProcessTimestamp.Seconds();
- params["$NodeId"] = SelfId().NodeId();
- params["$RemoveTimestamp"] = RemoveQueueTimetsamp;
- params["$QueueIdNumber"] = QueueIdNumber;
+ NYdb::TParamsBuilder paramsBuilder;
+ paramsBuilder
+ .AddParam("$StartProcessTimestamp")
+ .Uint64(StartProcessTimestamp.Seconds())
+ .Build()
+ .AddParam("$NodeId")
+ .Uint32(SelfId().NodeId())
+ .Build()
+ .AddParam("$RemoveTimestamp")
+ .Uint64(RemoveQueueTimetsamp)
+ .Build()
+ .AddParam("$QueueIdNumber")
+ .Uint64(QueueIdNumber)
+ .Build();
+
StartProcessTimestamp = ctx.Now();
- params["$Now"] = StartProcessTimestamp.Seconds();
+ paramsBuilder
+ .AddParam("$Now")
+ .Uint64(StartProcessTimestamp.Seconds())
+ .Build();
+
+ NYdb::TParams params = paramsBuilder.Build();
RunYqlQuery(UpdateLockQueueQuery, std::move(params), false, TDuration::Zero(), Cfg().GetRoot(), ctx);
}
@@ -252,9 +281,15 @@ namespace NKikimr::NSQS {
void TCleanupQueueDataActor::Finish(const TActorContext& ctx) {
State = EState::Finish;
- NClient::TParameters params;
- params["$RemoveTimestamp"] = RemoveQueueTimetsamp;
- params["$QueueIdNumber"] = QueueIdNumber;
+ NYdb::TParams params = NYdb::TParamsBuilder()
+ .AddParam("$RemoveTimestamp")
+ .Uint64(RemoveQueueTimetsamp)
+ .Build()
+ .AddParam("$QueueIdNumber")
+ .Uint64(QueueIdNumber)
+ .Build()
+ .Build();
+
RunYqlQuery(RemoveQueueFromListQuery, std::move(params), false, TDuration::Zero(), Cfg().GetRoot(), ctx);
}
@@ -272,12 +307,22 @@ namespace NKikimr::NSQS {
return;
}
- NClient::TParameters params;
ui32 shard = ShardsToRemove ? (ShardsToRemove - 1) : 0;
- params["$QueueIdNumberAndShardHash"] = GetKeysHash(QueueIdNumber, shard);
- params["$Shard"] = shard;
- params["$QueueIdNumberHash"] = GetKeysHash(QueueIdNumber);
- params["$QueueIdNumber"] = QueueIdNumber;
+
+ NYdb::TParams params = NYdb::TParamsBuilder()
+ .AddParam("$QueueIdNumberAndShardHash")
+ .Uint64(GetKeysHash(QueueIdNumber, shard))
+ .Build()
+ .AddParam("$Shard")
+ .Uint32(shard)
+ .Build()
+ .AddParam("$QueueIdNumberHash")
+ .Uint64(GetKeysHash(QueueIdNumber))
+ .Build()
+ .AddParam("$QueueIdNumber")
+ .Uint64(QueueIdNumber)
+ .Build()
+ .Build();
RunYqlQuery(RemoveDataQuery, std::move(params), false, TDuration::Zero(), Cfg().GetRoot(), ctx);
}
diff --git a/ydb/core/ymq/actor/cleanup_queue_data.h b/ydb/core/ymq/actor/cleanup_queue_data.h
index 5867fe613d..0104276f03 100644
--- a/ydb/core/ymq/actor/cleanup_queue_data.h
+++ b/ydb/core/ymq/actor/cleanup_queue_data.h
@@ -2,8 +2,10 @@
#include <ydb/core/kqp/common/kqp.h>
#include <ydb/public/lib/deprecated/kicli/kicli.h>
+#include <ydb/public/sdk/cpp/client/ydb_params/params.h>
#include <ydb/core/ymq/base/counters.h>
+
#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/core/hfunc.h>
#include <library/cpp/actors/core/actorsystem.h>
diff --git a/ydb/core/ymq/actor/index_events_processor.cpp b/ydb/core/ymq/actor/index_events_processor.cpp
index e1fd24587e..ba57429a3d 100644
--- a/ydb/core/ymq/actor/index_events_processor.cpp
+++ b/ydb/core/ymq/actor/index_events_processor.cpp
@@ -134,9 +134,14 @@ void TSearchEventsProcessor::RunQueuesListQuery(const TActorContext& ctx) {
request->SetKeepSession(false);
request->SetPreparedQuery(SelectQueuesQuery);
- NClient::TParameters params;
- params["$Account"] = LastQueuesKey.Account;
- params["$QueueName"] = LastQueuesKey.QueueName;
+ NYdb::TParams params = NYdb::TParamsBuilder()
+ .AddParam("$Account")
+ .Utf8(LastQueuesKey.Account)
+ .Build()
+ .AddParam("$QueueName")
+ .Utf8(LastQueuesKey.QueueName)
+ .Build()
+ .Build();
RunQuery(SelectQueuesQuery, &params, true, ctx);
}
@@ -209,16 +214,29 @@ void TSearchEventsProcessor::OnEventsListingDone(NKqp::TEvKqp::TEvQueryResponse:
void TSearchEventsProcessor::RunEventsCleanup(const TActorContext& ctx) {
State = EState::CleanupExecute;
- NClient::TParameters params;
- auto param = params["$Events"];
+ NYdb::TParamsBuilder paramsBuilder;
+
+ auto& param = paramsBuilder.AddParam("$Events");
+ param.BeginList();
+
for (const auto&[qName, events] : QueuesEvents) {
for (const auto&[_, event]: events) {
- auto item = param.AddListItem();
- item["Account"] = event.CloudId;
- item["QueueName"] = qName;
- item["EventType"] = static_cast<ui64>(event.Type);
+ param.AddListItem()
+ .BeginStruct()
+ .AddMember("Account")
+ .Utf8(event.CloudId)
+ .AddMember("QueueName")
+ .Utf8(qName)
+ .AddMember("EventType")
+ .Uint64(static_cast<ui64>(event.Type))
+ .EndStruct();
}
}
+ param.EndList();
+ param.Build();
+
+ auto params = paramsBuilder.Build();
+
RunQuery(DeleteEventQuery, &params, false, ctx);
}
@@ -301,7 +319,7 @@ void TSearchEventsProcessor::StopSession(const TActorContext& ctx) {
}
}
-void TSearchEventsProcessor::RunQuery(const TString& query, NKikimr::NClient::TParameters* params, bool readonly,
+void TSearchEventsProcessor::RunQuery(const TString& query, NYdb::TParams* params, bool readonly,
const TActorContext& ctx) {
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
auto* request = ev->Record.MutableRequest();
@@ -326,7 +344,7 @@ void TSearchEventsProcessor::RunQuery(const TString& query, NKikimr::NClient::TP
}
request->MutableTxControl()->set_commit_tx(true);
if (params != nullptr) {
- request->MutableParameters()->Swap(params);
+ request->MutableYdbParameters()->swap(*(NYdb::TProtoAccessor::GetProtoMapPtr(*params)));
}
Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release());
diff --git a/ydb/core/ymq/actor/index_events_processor.h b/ydb/core/ymq/actor/index_events_processor.h
index cc8f902d1d..29767c6c15 100644
--- a/ydb/core/ymq/actor/index_events_processor.h
+++ b/ydb/core/ymq/actor/index_events_processor.h
@@ -5,6 +5,7 @@
#include <ydb/core/kqp/common/kqp.h>
#include <ydb/public/lib/deprecated/kicli/kicli.h>
+#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/core/hfunc.h>
@@ -94,7 +95,7 @@ private:
void RunEventsCleanup(const TActorContext& ctx);
void OnCleanupQueryComplete(const TActorContext&ctx);
- void RunQuery(const TString& query, NKikimr::NClient::TParameters* params, bool readonly,
+ void RunQuery(const TString& query, NYdb::TParams* params, bool readonly,
const TActorContext& ctx);
void ProcessEventsQueue(const TActorContext& ctx);
diff --git a/ydb/core/ymq/actor/local_rate_limiter_allocator.cpp b/ydb/core/ymq/actor/local_rate_limiter_allocator.cpp
index 2fde20e826..ce70339bbe 100644
--- a/ydb/core/ymq/actor/local_rate_limiter_allocator.cpp
+++ b/ydb/core/ymq/actor/local_rate_limiter_allocator.cpp
@@ -1,6 +1,6 @@
#include "local_rate_limiter_allocator.h"
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <util/generic/hash_multi_map.h>
#include <util/system/guard.h>
diff --git a/ydb/core/ymq/actor/queue_leader.cpp b/ydb/core/ymq/actor/queue_leader.cpp
index d04a0960a9..ce6fc5fb47 100644
--- a/ydb/core/ymq/actor/queue_leader.cpp
+++ b/ydb/core/ymq/actor/queue_leader.cpp
@@ -11,7 +11,7 @@
#include <ydb/core/ymq/base/counters.h>
#include <ydb/core/ymq/base/probes.h>
#include <ydb/core/base/appdata.h>
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/ymq/queues/common/queries.h>
#include <ydb/core/ymq/queues/common/key_hashes.h>
#include <ydb/core/ymq/queues/common/db_queries_maker.h>
diff --git a/ydb/core/ymq/actor/queue_schema.h b/ydb/core/ymq/actor/queue_schema.h
index 4e4054de7d..84dc896056 100644
--- a/ydb/core/ymq/actor/queue_schema.h
+++ b/ydb/core/ymq/actor/queue_schema.h
@@ -2,7 +2,7 @@
#include "defs.h"
#include "schema.h"
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/kesus/tablet/events.h>
#include <ydb/core/protos/config.pb.h>
#include <ydb/public/lib/value/value.h>
diff --git a/ydb/core/ymq/actor/service.cpp b/ydb/core/ymq/actor/service.cpp
index 3b8dc95a3f..09a4182f8a 100644
--- a/ydb/core/ymq/actor/service.cpp
+++ b/ydb/core/ymq/actor/service.cpp
@@ -18,7 +18,7 @@
#include <ydb/public/lib/value/value.h>
#include <ydb/public/sdk/cpp/client/ydb_types/credentials/credentials.h>
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
#include <ydb/core/base/tablet_pipe.h>
#include <ydb/core/ymq/base/counters.h>
#include <ydb/core/ymq/base/probes.h>
diff --git a/ydb/core/ymq/base/run_query.cpp b/ydb/core/ymq/base/run_query.cpp
index 0394e19acd..fdc2fff098 100644
--- a/ydb/core/ymq/base/run_query.cpp
+++ b/ydb/core/ymq/base/run_query.cpp
@@ -6,7 +6,7 @@ namespace NKikimr::NSQS {
void RunYqlQuery(
const TString& query,
- std::optional<NKikimr::NClient::TParameters> params,
+ std::optional<NYdb::TParams> params,
bool readonly,
TDuration sendAfter,
const TString& database,
@@ -34,7 +34,7 @@ namespace NKikimr::NSQS {
request->MutableTxControl()->set_commit_tx(true);
if (params) {
- request->MutableParameters()->Swap(&params.value());
+ request->MutableYdbParameters()->swap(*(NYdb::TProtoAccessor::GetProtoMapPtr(params.value())));
}
auto kqpActor = NKqp::MakeKqpProxyID(ctx.SelfID.NodeId());
diff --git a/ydb/core/ymq/base/run_query.h b/ydb/core/ymq/base/run_query.h
index 9d7ce8e619..65bf22ab5a 100644
--- a/ydb/core/ymq/base/run_query.h
+++ b/ydb/core/ymq/base/run_query.h
@@ -2,6 +2,7 @@
#include <ydb/core/kqp/common/kqp.h>
#include <ydb/public/lib/deprecated/kicli/kicli.h>
+#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
#include <library/cpp/actors/core/actor.h>
@@ -10,7 +11,7 @@ namespace NKikimr::NSQS {
void RunYqlQuery(
const TString& query,
- std::optional<NKikimr::NClient::TParameters> params,
+ std::optional<NYdb::TParams> params,
bool readonly,
TDuration sendAfter,
const TString& database,
diff --git a/ydb/library/CMakeLists.txt b/ydb/library/CMakeLists.txt
index 3db3204702..c24d1639d4 100644
--- a/ydb/library/CMakeLists.txt
+++ b/ydb/library/CMakeLists.txt
@@ -33,7 +33,9 @@ add_subdirectory(schlab)
add_subdirectory(security)
add_subdirectory(services)
add_subdirectory(testlib)
+add_subdirectory(time_series_vec)
add_subdirectory(uuid)
+add_subdirectory(wilson_ids)
add_subdirectory(workload)
add_subdirectory(yaml_config)
add_subdirectory(ycloud)
diff --git a/ydb/library/persqueue/topic_parser/topic_parser.cpp b/ydb/library/persqueue/topic_parser/topic_parser.cpp
index 09b14ffdb8..04ab589e98 100644
--- a/ydb/library/persqueue/topic_parser/topic_parser.cpp
+++ b/ydb/library/persqueue/topic_parser/topic_parser.cpp
@@ -115,10 +115,15 @@ TDiscoveryConverterPtr TDiscoveryConverter::ForFstClass(const TString& topic, co
return TDiscoveryConverterPtr(res);
}
+bool BasicNameChecks(const TStringBuf& name) {
+ return (!name.empty() && !name.Contains("//"));
+}
+
TDiscoveryConverterPtr TDiscoveryConverter::ForFederation(
const TString& topic, const TString& dc, const TString& localDc, const TString& database,
const TString& pqNormalizedPrefix
) {
+
auto* res = new TDiscoveryConverter();
res->PQPrefix = pqNormalizedPrefix;
res->FstClass = false;
@@ -126,9 +131,16 @@ TDiscoveryConverterPtr TDiscoveryConverter::ForFederation(
res->LocalDc = localDc;
TStringBuf topicBuf{topic};
TStringBuf dbBuf{database};
+ if (!BasicNameChecks(topicBuf)) {
+ res->Valid = false;
+ res->Reason = TStringBuilder() << "Bad topic name for federation: " << topic;
+ return NPersQueue::TDiscoveryConverterPtr(res);
+ }
+
topicBuf.SkipPrefix("/");
dbBuf.SkipPrefix("/");
dbBuf.ChopSuffix("/");
+
res->BuildForFederation(dbBuf, topicBuf);
return NPersQueue::TDiscoveryConverterPtr(res);
}
@@ -183,8 +195,9 @@ TDiscoveryConverter::TDiscoveryConverter(bool firstClass,
// No legacy names required;
OriginalTopic = pqTabletConfig.GetTopicPath();
BuildFstClassNames();
+ return;
} else {
- BuildForFederation(*Database, path); //, rootDatabases);
+ BuildForFederation(*Database, path);
}
}
@@ -192,6 +205,8 @@ void TDiscoveryConverter::BuildForFederation(const TStringBuf& databaseBuf, TStr
//, const TVector<TString>& rootDatabases
) {
topicPath.SkipPrefix("/");
+ CHECK_SET_VALID(!topicPath.empty(), "Invalid topic path (only account provided?)", return);
+ CHECK_SET_VALID(!topicPath.EndsWith("/"), "Invalid topic path 0 triling '/'", return);
if (FstClass) {
// No legacy names required;
OriginalTopic = topicPath;
@@ -216,6 +231,7 @@ void TDiscoveryConverter::BuildForFederation(const TStringBuf& databaseBuf, TStr
SkipPathPrefix(topicPath, databaseBuf);
Database = databaseBuf;
}
+ CHECK_SET_VALID(!topicPath.empty(), "Bad topic name (only account provided?)", return);
OriginalTopic = topicPath;
if (!isRootDb && Database.Defined()) {
@@ -225,28 +241,35 @@ void TDiscoveryConverter::BuildForFederation(const TStringBuf& databaseBuf, TStr
return;
}
if (!parsed) {
- ParseModernPath(topicPath);
+ if(!ParseModernPath(topicPath))
+ return;
}
- if (!Valid)
- return;
- Y_VERIFY_DEBUG(!FullModernName.empty());
+ CHECK_SET_VALID(
+ !FullModernName.empty(),
+ TStringBuilder() << "Internal error: Could not parse topic name (federation path was assumed)" << OriginalTopic,
+ return
+ );
+
PrimaryPath = NKikimr::JoinPath({*Database, FullModernName});
NormalizeAsFullPath(PrimaryPath);
if (!FullLegacyName.empty()) {
SecondaryPath = NKikimr::JoinPath({PQPrefix, FullLegacyName});
NormalizeAsFullPath(SecondaryPath.GetRef());
}
- BuildFromShortModernName();
+ if (!BuildFromShortModernName())
+ return;
} else {
if (root.empty()) {
root = PQPrefix;
}
// Topic from PQ root - this is either federation path (account/topic)
if (topicPath.find("/") != TString::npos) {
- BuildFromFederationPath(root);
+ auto ok = BuildFromFederationPath(root);
+ Y_UNUSED(ok);
} else {
// OR legacy name (rt3.sas--account--topic)
- BuildFromLegacyName(root); // Sets primary path;
+ auto ok = BuildFromLegacyName(root); // Sets primary path;
+ Y_UNUSED(ok);
}
}
}
@@ -280,24 +303,39 @@ void TDiscoveryConverter::BuildFstClassNames() {
NormalizeAsFullPath(PrimaryPath);
FullModernPath = PrimaryPath;
+ CHECK_SET_VALID(
+ !FullModernPath.empty(),
+ TStringBuilder() << "Internal error: could not build modern name for first class topic: " << OriginalTopic,
+ return;
+ );
};
-void TDiscoveryConverter::BuildFromFederationPath(const TString& rootPrefix) {
+bool TDiscoveryConverter::BuildFromFederationPath(const TString& rootPrefix) {
// This is federation (not first class) and we have topic specified as a path;
// So only convention supported is 'account/dir/topic' and account in path matches LB account;
TStringBuf topic(OriginalTopic);
LbPath = OriginalTopic;
TStringBuf fst, snd;
auto res = topic.TrySplit("/", fst, snd);
- Y_VERIFY(res);
+ CHECK_SET_VALID(res, TStringBuilder() << "Could not split federation path: " << OriginalTopic, return false);
Account_ = fst;
- ParseModernPath(snd);
- BuildFromShortModernName();
- Y_VERIFY_DEBUG(!FullLegacyName.empty());
+
+ if (!ParseModernPath(snd))
+ return false;
+ if (!BuildFromShortModernName()) {
+ return false;
+ }
+ CHECK_SET_VALID(
+ !FullLegacyName.empty(),
+ TStringBuilder() << "Internal error: couldn't build legacy-style name for topic " << OriginalTopic,
+ return false
+ );
+
PrimaryPath = NKikimr::JoinPath({rootPrefix, FullLegacyName});
NormalizeAsFullPath(PrimaryPath);
PendingDatabase = true;
+ return true;
}
bool TDiscoveryConverter::TryParseModernMirroredPath(TStringBuf path) {
@@ -316,12 +354,12 @@ bool TDiscoveryConverter::TryParseModernMirroredPath(TStringBuf path) {
FullModernName = path;
ModernName = fst;
if (Account_.Defined()) {
- BuildFromShortModernName();
+ return BuildFromShortModernName();
}
return true;
}
-void TDiscoveryConverter::ParseModernPath(const TStringBuf& path) {
+bool TDiscoveryConverter::ParseModernPath(const TStringBuf& path) {
// This is federation (not first class) and we have topic specified as a path;
// So only convention supported is 'account/dir/topic' and account in path matches LB account;
TStringBuilder pathAfterAccount;
@@ -338,15 +376,20 @@ void TDiscoveryConverter::ParseModernPath(const TStringBuf& path) {
} else {
pathAfterAccount << path;
}
+ CHECK_SET_VALID(BasicNameChecks(pathAfterAccount), "Bad topic name", return false);
ModernName = path;
FullModernName = pathAfterAccount;
if (Account_.Defined()) {
- BuildFromShortModernName();
+ return BuildFromShortModernName();
}
+ return true;
}
-void TDiscoveryConverter::BuildFromShortModernName() {
- Y_VERIFY(!ModernName.empty());
+bool TDiscoveryConverter::BuildFromShortModernName() {
+ CHECK_SET_VALID(
+ !ModernName.empty(), TStringBuilder() << "Could not parse topic name: " << OriginalTopic, return false
+ );
+
TStringBuf pathBuf(ModernName);
TStringBuilder legacyName;
TString legacyProducer;
@@ -381,15 +424,16 @@ void TDiscoveryConverter::BuildFromShortModernName() {
if (Dc.empty()) {
Dc = LocalDc;
CHECK_SET_VALID(!LocalDc.empty(), "Cannot determine DC: should specify either with Dc option or LocalDc option",
- return);
+ return false);
}
LbPath = lbPath;
FullLegacyName = TStringBuilder() << "rt3." << Dc << "--" << ShortLegacyName;
LegacyProducer = legacyProducer;
LegacyLogtype = logtype;
+ return true;
}
-void TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool forceFullName) {
+bool TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool forceFullName) {
TStringBuf topic (OriginalTopic);
bool hasDcInName = topic.Contains("rt3.");
TStringBuf fst, snd;
@@ -399,13 +443,14 @@ void TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool fo
CHECK_SET_VALID(hasDcInName,
TStringBuilder() << "Invalid topic name - " << OriginalTopic
<< " - expected legacy-style name like rt3.<dc>--<account>--<topic>",
- return);
+ return false);
}
if (Dc.empty() && !hasDcInName) {
- Y_VERIFY(!FstClass);
+ CHECK_SET_VALID(!FstClass, TStringBuilder() << "Internal error: FirstClass mode enabled, but trying to parse Legacy-style name: "
+ << OriginalTopic, return false;);
CHECK_SET_VALID(!LocalDc.empty(),
"Cannot determine DC: should specify either in topic name, Dc option or LocalDc option",
- return);
+ return false);
Dc = LocalDc;
}
@@ -413,14 +458,15 @@ void TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool fo
if (hasDcInName) {
fullLegacyName = topic;
auto res = topic.SkipPrefix("rt3.");
- CHECK_SET_VALID(res, "Malformed full legacy topic name", return);
+ CHECK_SET_VALID(res, "Malformed full legacy topic name", return false);
res = topic.TrySplit("--", fst, snd);
- CHECK_SET_VALID(res, "Malformed legacy style topic name: contains 'rt3.', but no '--'.", return);
- CHECK_SET_VALID(Dc.empty() || Dc == fst, "DC specified both in topic name and separate option and they mismatch", return);
+ CHECK_SET_VALID(res, "Malformed legacy style topic name: contains 'rt3.', but no '--'.", return false);
+ CHECK_SET_VALID(Dc.empty() || Dc == fst, "DC specified both in topic name and separate option and they mismatch", return false);
Dc = fst;
topic = snd;
} else {
- Y_VERIFY(!Dc.empty());
+ CHECK_SET_VALID(!Dc.empty(), TStringBuilder() << "Internal error: Could not determine DC (despite beleiving the name contins one) for topic "
+ << OriginalTopic, return false;);
TStringBuilder builder;
builder << "rt3." << Dc << "--" << topic;
fullLegacyName = builder;
@@ -466,14 +512,17 @@ void TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool fo
topicName = topic;
}
modernName << topicName;
- Y_VERIFY(!Dc.empty());
+ CHECK_SET_VALID(!Dc.empty(), TStringBuilder() << "Internal error: Could not determine DC for topic: "
+ << OriginalTopic, return false);
+
bool isMirrored = (!LocalDc.empty() && Dc != LocalDc);
if (isMirrored) {
fullModernName << topicName << "-mirrored-from-" << Dc;
} else {
fullModernName << topicName;
}
- Y_VERIFY(!fullLegacyName.empty());
+ CHECK_SET_VALID(!fullLegacyName.empty(), TStringBuilder() << "Could not form a full legacy name for topic: "
+ << OriginalTopic, return false);
ShortLegacyName = shortLegacyName;
FullLegacyName = fullLegacyName;
@@ -489,6 +538,7 @@ void TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool fo
} else {
SetDatabase("");
}
+ return true;
}
bool TDiscoveryConverter::IsValid() const {
@@ -597,7 +647,9 @@ TTopicConverterPtr TTopicNameConverter::ForFederation(
}
res->OriginalTopic = schemeName;
- res->BuildFromLegacyName(TString(normRoot), true);
+ auto buildOk = res->BuildFromLegacyName(TString(normRoot), true);
+ if (!buildOk)
+ return res;
if (res->Valid && !isLocal && res->Dc == localDc) {
res->Valid = false;
res->Reason = TStringBuilder() << "Topic '" << schemeName << "' created as non-local in local cluster";
@@ -642,7 +694,10 @@ TTopicConverterPtr TTopicNameConverter::ForFederation(
return res;
}
res->Dc = localDc;
- res->ParseModernPath(fullPath);
+ auto ok = res->ParseModernPath(fullPath);
+ if (!ok) {
+ return res;
+ }
} else {
if (!parsed) {
res->Valid = false;
@@ -652,7 +707,13 @@ TTopicConverterPtr TTopicNameConverter::ForFederation(
return res;
}
}
- Y_VERIFY(!res->FullModernName.empty());
+ if (res->FullModernName.empty()) {
+ res->Valid = false;
+ res->Reason = TStringBuilder() << "Internal error: FullModernName empty in TopicConverter(for schema) for topic: "
+ << schemeName;
+
+ return res;
+ }
res->PrimaryPath = NKikimr::JoinPath({*res->Database, res->FullModernName});
NormalizeAsFullPath(res->PrimaryPath);
}
diff --git a/ydb/library/persqueue/topic_parser/topic_parser.h b/ydb/library/persqueue/topic_parser/topic_parser.h
index 1c1926444e..c2fc748ca2 100644
--- a/ydb/library/persqueue/topic_parser/topic_parser.h
+++ b/ydb/library/persqueue/topic_parser/topic_parser.h
@@ -57,8 +57,8 @@ class TDiscoveryConverter {
private:
void BuildForFederation(const TStringBuf& databaseBuf, TStringBuf topicPath);
void BuildFstClassNames();
- void BuildFromFederationPath(const TString& rootPrefix);
- void BuildFromShortModernName();
+ [[nodiscard]] bool BuildFromFederationPath(const TString& rootPrefix);
+ [[nodiscard]] bool BuildFromShortModernName();
protected:
TDiscoveryConverter() = default;
@@ -70,9 +70,9 @@ protected:
TDiscoveryConverter(bool firstClass, const TString& pqNormalizedPrefix,
const NKikimrPQ::TPQTabletConfig& pqTabletConfig, const TString& ydbDatabaseRootOverride);
- void BuildFromLegacyName(const TString& rootPrefix, bool forceFullname = false);
- bool TryParseModernMirroredPath(TStringBuf path);
- void ParseModernPath(const TStringBuf& path);
+ [[nodiscard]] bool BuildFromLegacyName(const TString& rootPrefix, bool forceFullname = false);
+ [[nodiscard]] bool TryParseModernMirroredPath(TStringBuf path);
+ [[nodiscard]] bool ParseModernPath(const TStringBuf& path);
public:
bool IsValid() const;
diff --git a/ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp b/ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp
index 240f3da2c6..d96f26a3df 100644
--- a/ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp
+++ b/ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp
@@ -69,6 +69,7 @@ public:
Y_UNIT_TEST_SUITE(DiscoveryConverterTest) {
Y_UNIT_TEST(FullLegacyNames) {
+
TConverterTestWrapper wrapper(false, "/Root/PQ", TString("dc1"));
wrapper.SetConverter("rt3.dc1--account--topic", "", "");
UNIT_ASSERT_C(wrapper.DiscoveryConverter->IsValid(), wrapper.DiscoveryConverter->GetReason());
@@ -125,7 +126,9 @@ Y_UNIT_TEST_SUITE(DiscoveryConverterTest) {
Y_UNIT_TEST(AccountDatabase) {
TConverterTestWrapper wrapper(false, "/Root/PQ", TString("dc1"));
wrapper.SetConverter("account/topic", "", "");
+ UNIT_ASSERT_C(wrapper.DiscoveryConverter->IsValid(), wrapper.DiscoveryConverter->GetReason());
UNIT_ASSERT_VALUES_EQUAL(wrapper.GetAccount(), "account");
+
wrapper.SetDatabase("/database");
UNIT_ASSERT_VALUES_EQUAL(wrapper.DiscoveryConverter->GetSecondaryPath(""), "/database/topic");
@@ -172,8 +175,43 @@ Y_UNIT_TEST_SUITE(DiscoveryConverterTest) {
);
UNIT_ASSERT_VALUES_EQUAL(converter->GetFullModernName(), "account/account");
UNIT_ASSERT_VALUES_EQUAL(converter->GetSecondaryPath("account"), "/account/account/account");
+
+ converter = converterFactory.MakeDiscoveryConverter(
+ "account/", {}, "dc1", "account"
+ );
+ UNIT_ASSERT(!converter->IsValid());
+ UNIT_ASSERT(!converter->GetReason().Contains("Internal error"));
+ }
+ Y_UNIT_TEST(DiscoveryConverter) {
+ auto converterFactory = NPersQueue::TTopicNamesConverterFactory(
+ false, "/Root/PQ", "dc1", {}
+ );
+ TVector<TString> badNames = {"account//", "account/", "/"};
+ for (const auto& name : badNames) {
+ auto converter = converterFactory.MakeDiscoveryConverter(
+ name, {}, "dc1", ""
+ );
+ UNIT_ASSERT_C(!converter->IsValid(), name);
+ UNIT_ASSERT(!converter->GetReason().Contains("Internal error"));
}
+ }
+ Y_UNIT_TEST(EmptyModern) {
+ auto converterFactory = NPersQueue::TTopicNamesConverterFactory(
+ false, "/Root/PQ", "dc1", {}
+ );
+ auto converter = converterFactory.MakeDiscoveryConverter(
+ "account/", {}, "dc1", "account"
+ );
+ UNIT_ASSERT_VALUES_EQUAL(converter->IsValid(), false);
+
+ converter = converterFactory.MakeDiscoveryConverter(
+ "/account", {}, "dc1", ""
+ );
+ UNIT_ASSERT(converter->IsValid());
+ UNIT_ASSERT_VALUES_EQUAL(converter->GetFullModernName(), "account");
+
+ }
Y_UNIT_TEST(FirstClass) {
TConverterTestWrapper wrapper(true, "", "");
@@ -411,4 +449,4 @@ Y_UNIT_TEST_SUITE(TopicNameConverterForCPTest) {
}
}
-} // NTests \ No newline at end of file
+} // NTests
diff --git a/ydb/library/time_series_vec/CMakeLists.darwin-x86_64.txt b/ydb/library/time_series_vec/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..51cc6db3cb
--- /dev/null
+++ b/ydb/library/time_series_vec/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-time_series_vec INTERFACE)
+target_link_libraries(ydb-library-time_series_vec INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/time_series_vec/CMakeLists.linux-aarch64.txt b/ydb/library/time_series_vec/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..548d33d23b
--- /dev/null
+++ b/ydb/library/time_series_vec/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-time_series_vec INTERFACE)
+target_link_libraries(ydb-library-time_series_vec INTERFACE
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/time_series_vec/CMakeLists.linux-x86_64.txt b/ydb/library/time_series_vec/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..548d33d23b
--- /dev/null
+++ b/ydb/library/time_series_vec/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,16 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-time_series_vec INTERFACE)
+target_link_libraries(ydb-library-time_series_vec INTERFACE
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/time_series_vec/CMakeLists.txt b/ydb/library/time_series_vec/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/library/time_series_vec/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/library/time_series_vec/CMakeLists.windows-x86_64.txt b/ydb/library/time_series_vec/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..51cc6db3cb
--- /dev/null
+++ b/ydb/library/time_series_vec/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(ut)
+
+add_library(ydb-library-time_series_vec INTERFACE)
+target_link_libraries(ydb-library-time_series_vec INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/core/util/time_series_vec.h b/ydb/library/time_series_vec/time_series_vec.h
index e0753e06ee..e0753e06ee 100644
--- a/ydb/core/util/time_series_vec.h
+++ b/ydb/library/time_series_vec/time_series_vec.h
diff --git a/ydb/core/util/time_series_vec_ut.cpp b/ydb/library/time_series_vec/time_series_vec_ut.cpp
index ca5aa41d88..ca5aa41d88 100644
--- a/ydb/core/util/time_series_vec_ut.cpp
+++ b/ydb/library/time_series_vec/time_series_vec_ut.cpp
diff --git a/ydb/library/time_series_vec/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/time_series_vec/ut/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..8be10746c0
--- /dev/null
+++ b/ydb/library/time_series_vec/ut/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-time_series_vec-ut)
+target_include_directories(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec
+)
+target_link_libraries(ydb-library-time_series_vec-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ ydb-library-time_series_vec
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-threading-future
+)
+target_link_options(ydb-library-time_series_vec-ut PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+)
+target_sources(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-time_series_vec-ut
+ TEST_TARGET
+ ydb-library-time_series_vec-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-time_series_vec-ut
+ system_allocator
+)
+vcs_info(ydb-library-time_series_vec-ut)
diff --git a/ydb/library/time_series_vec/ut/CMakeLists.linux-aarch64.txt b/ydb/library/time_series_vec/ut/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..e57f86f7b1
--- /dev/null
+++ b/ydb/library/time_series_vec/ut/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-time_series_vec-ut)
+target_include_directories(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec
+)
+target_link_libraries(ydb-library-time_series_vec-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ ydb-library-time_series_vec
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-threading-future
+)
+target_link_options(ydb-library-time_series_vec-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-time_series_vec-ut
+ TEST_TARGET
+ ydb-library-time_series_vec-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-time_series_vec-ut
+ cpp-malloc-jemalloc
+)
+vcs_info(ydb-library-time_series_vec-ut)
diff --git a/ydb/library/time_series_vec/ut/CMakeLists.linux-x86_64.txt b/ydb/library/time_series_vec/ut/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..0dbaf30c6e
--- /dev/null
+++ b/ydb/library/time_series_vec/ut/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,82 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-time_series_vec-ut)
+target_include_directories(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec
+)
+target_link_libraries(ydb-library-time_series_vec-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ ydb-library-time_series_vec
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-threading-future
+)
+target_link_options(ydb-library-time_series_vec-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-time_series_vec-ut
+ TEST_TARGET
+ ydb-library-time_series_vec-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-time_series_vec-ut
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+)
+vcs_info(ydb-library-time_series_vec-ut)
diff --git a/ydb/library/time_series_vec/ut/CMakeLists.txt b/ydb/library/time_series_vec/ut/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/library/time_series_vec/ut/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/library/time_series_vec/ut/CMakeLists.windows-x86_64.txt b/ydb/library/time_series_vec/ut/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..17b542c937
--- /dev/null
+++ b/ydb/library/time_series_vec/ut/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-library-time_series_vec-ut)
+target_include_directories(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec
+)
+target_link_libraries(ydb-library-time_series_vec-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ ydb-library-time_series_vec
+ library-cpp-getopt
+ library-cpp-svnversion
+ cpp-threading-future
+)
+target_sources(ydb-library-time_series_vec-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec_ut.cpp
+)
+set_property(
+ TARGET
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ ydb-library-time_series_vec-ut
+ TEST_TARGET
+ ydb-library-time_series_vec-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-library-time_series_vec-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+target_allocator(ydb-library-time_series_vec-ut
+ system_allocator
+)
+vcs_info(ydb-library-time_series_vec-ut)
diff --git a/ydb/library/time_series_vec/ut/ya.make b/ydb/library/time_series_vec/ut/ya.make
new file mode 100644
index 0000000000..85fc9e7188
--- /dev/null
+++ b/ydb/library/time_series_vec/ut/ya.make
@@ -0,0 +1,24 @@
+UNITTEST_FOR(ydb/library/time_series_vec)
+
+FORK_SUBTESTS()
+IF (WITH_VALGRIND)
+ SPLIT_FACTOR(30)
+ TIMEOUT(1200)
+ SIZE(LARGE)
+ TAG(ya:fat)
+ELSE()
+ TIMEOUT(600)
+ SIZE(MEDIUM)
+ENDIF()
+
+PEERDIR(
+ library/cpp/getopt
+ library/cpp/svnversion
+ library/cpp/threading/future
+)
+
+SRCS(
+ time_series_vec_ut.cpp
+)
+
+END()
diff --git a/ydb/library/time_series_vec/ya.make b/ydb/library/time_series_vec/ya.make
new file mode 100644
index 0000000000..85d5467f19
--- /dev/null
+++ b/ydb/library/time_series_vec/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ time_series_vec.h
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/ydb/library/wilson_ids/CMakeLists.darwin-x86_64.txt b/ydb/library/wilson_ids/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..ae2afc4629
--- /dev/null
+++ b/ydb/library/wilson_ids/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-wilson_ids INTERFACE)
+target_link_libraries(ydb-library-wilson_ids INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/wilson_ids/CMakeLists.linux-aarch64.txt b/ydb/library/wilson_ids/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..16ce0bf4a8
--- /dev/null
+++ b/ydb/library/wilson_ids/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-wilson_ids INTERFACE)
+target_link_libraries(ydb-library-wilson_ids INTERFACE
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/wilson_ids/CMakeLists.linux-x86_64.txt b/ydb/library/wilson_ids/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..16ce0bf4a8
--- /dev/null
+++ b/ydb/library/wilson_ids/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-wilson_ids INTERFACE)
+target_link_libraries(ydb-library-wilson_ids INTERFACE
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/library/wilson_ids/CMakeLists.txt b/ydb/library/wilson_ids/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/library/wilson_ids/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/library/wilson_ids/CMakeLists.windows-x86_64.txt b/ydb/library/wilson_ids/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..ae2afc4629
--- /dev/null
+++ b/ydb/library/wilson_ids/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(ydb-library-wilson_ids INTERFACE)
+target_link_libraries(ydb-library-wilson_ids INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/ydb/core/base/wilson.h b/ydb/library/wilson_ids/wilson.h
index d0a2299e20..9c6c9be331 100644
--- a/ydb/core/base/wilson.h
+++ b/ydb/library/wilson_ids/wilson.h
@@ -33,7 +33,7 @@ namespace NKikimr {
DataExecuter = 9,
DataExecuterPrepareState = 9,
- DataExecuterPrepateTasks = 9,
+ DataExecuterPrepareTasks = 9,
DataExecuterExecuteState = 9,
DataExecuterSendTasksAndTxs = 9,
DataExecuterWaitSnapshotState = 9,
diff --git a/ydb/library/wilson_ids/ya.make b/ydb/library/wilson_ids/ya.make
new file mode 100644
index 0000000000..55ee6f499e
--- /dev/null
+++ b/ydb/library/wilson_ids/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ wilson.h
+)
+
+END()
diff --git a/ydb/library/ya.make b/ydb/library/ya.make
index 04e97cec84..d7f20f4ed8 100644
--- a/ydb/library/ya.make
+++ b/ydb/library/ya.make
@@ -22,6 +22,8 @@ RECURSE(
schlab
security
testlib
+ time_series_vec
+ wilson_ids
workload
yaml_config
workload
diff --git a/ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp b/ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp
index 8cab9844dd..9b8fad2ed6 100644
--- a/ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp
+++ b/ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp
@@ -2,6 +2,7 @@
#include <ydb/library/yql/core/arrow_kernels/registry/registry.h>
#include <ydb/library/yql/minikql/invoke_builtins/mkql_builtins.h>
#include <ydb/library/yql/minikql/comp_nodes/mkql_factories.h>
+#include <ydb/library/yql/minikql/mkql_runtime_version.h>
#include <library/cpp/testing/unittest/registar.h>
@@ -117,6 +118,10 @@ Y_UNIT_TEST_SUITE(TKernelRegistryTest) {
}
Y_UNIT_TEST(TestJsonExists) {
+ if constexpr (RuntimeVersion < 39U) {
+ return;
+ }
+
TestOne([](auto& b,auto& ctx) {
auto blockOptJsonType = ctx.template MakeType<TBlockExprType>(
ctx.template MakeType<TOptionalExprType>(
@@ -178,31 +183,55 @@ Y_UNIT_TEST_SUITE(TKernelRegistryTest) {
}
Y_UNIT_TEST(TestJsonValueUtf8) {
+ if constexpr (RuntimeVersion < 39U) {
+ return;
+ }
+
TesJsonValueImpl(EDataSlot::Json, NYql::EDataSlot::Utf8);
TesJsonValueImpl(EDataSlot::JsonDocument, NYql::EDataSlot::Utf8);
}
Y_UNIT_TEST(TestJsonValueBool) {
+ if constexpr (RuntimeVersion < 39U) {
+ return;
+ }
+
TesJsonValueImpl(EDataSlot::Json, NYql::EDataSlot::Bool);
TesJsonValueImpl(EDataSlot::JsonDocument, NYql::EDataSlot::Bool);
}
Y_UNIT_TEST(TestJsonValueInt64) {
+ if constexpr (RuntimeVersion < 39U) {
+ return;
+ }
+
TesJsonValueImpl(EDataSlot::Json, NYql::EDataSlot::Int64);
TesJsonValueImpl(EDataSlot::JsonDocument, NYql::EDataSlot::Int64);
}
Y_UNIT_TEST(TestJsonValueUint64) {
+ if constexpr (RuntimeVersion < 39U) {
+ return;
+ }
+
TesJsonValueImpl(EDataSlot::Json, NYql::EDataSlot::Uint64);
TesJsonValueImpl(EDataSlot::JsonDocument, NYql::EDataSlot::Uint64);
}
- Y_UNIT_TEST(TestJsonValueFloat) {;
+ Y_UNIT_TEST(TestJsonValueFloat) {
+ if constexpr (RuntimeVersion < 39U) {
+ return;
+ }
+
TesJsonValueImpl(EDataSlot::Json, NYql::EDataSlot::Float);
TesJsonValueImpl(EDataSlot::JsonDocument, NYql::EDataSlot::Float);
}
- Y_UNIT_TEST(TestJsonValueDouble) {;
+ Y_UNIT_TEST(TestJsonValueDouble) {
+ if constexpr (RuntimeVersion < 39U) {
+ return;
+ }
+
TesJsonValueImpl(EDataSlot::Json, NYql::EDataSlot::Double);
TesJsonValueImpl(EDataSlot::JsonDocument, NYql::EDataSlot::Double);
}
diff --git a/ydb/library/yql/core/cbo/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/cbo/CMakeLists.darwin-x86_64.txt
index 32062084c6..64f3490aa7 100644
--- a/ydb/library/yql/core/cbo/CMakeLists.darwin-x86_64.txt
+++ b/ydb/library/yql/core/cbo/CMakeLists.darwin-x86_64.txt
@@ -11,6 +11,7 @@ add_library(yql-core-cbo)
target_link_libraries(yql-core-cbo PUBLIC
contrib-libs-cxxsupp
yutil
+ library-cpp-disjoint_sets
)
target_sources(yql-core-cbo PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp
diff --git a/ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt
index e1eef0c49f..70a3d8682e 100644
--- a/ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt
+++ b/ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt
@@ -12,6 +12,7 @@ target_link_libraries(yql-core-cbo PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
+ library-cpp-disjoint_sets
)
target_sources(yql-core-cbo PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp
diff --git a/ydb/library/yql/core/cbo/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/cbo/CMakeLists.linux-x86_64.txt
index e1eef0c49f..70a3d8682e 100644
--- a/ydb/library/yql/core/cbo/CMakeLists.linux-x86_64.txt
+++ b/ydb/library/yql/core/cbo/CMakeLists.linux-x86_64.txt
@@ -12,6 +12,7 @@ target_link_libraries(yql-core-cbo PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
+ library-cpp-disjoint_sets
)
target_sources(yql-core-cbo PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp
diff --git a/ydb/library/yql/core/cbo/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/cbo/CMakeLists.windows-x86_64.txt
index 32062084c6..64f3490aa7 100644
--- a/ydb/library/yql/core/cbo/CMakeLists.windows-x86_64.txt
+++ b/ydb/library/yql/core/cbo/CMakeLists.windows-x86_64.txt
@@ -11,6 +11,7 @@ add_library(yql-core-cbo)
target_link_libraries(yql-core-cbo PUBLIC
contrib-libs-cxxsupp
yutil
+ library-cpp-disjoint_sets
)
target_sources(yql-core-cbo PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp
diff --git a/ydb/library/yql/core/cbo/cbo_optimizer.cpp b/ydb/library/yql/core/cbo/cbo_optimizer.cpp
index d14f5a6f87..0008e45d3c 100644
--- a/ydb/library/yql/core/cbo/cbo_optimizer.cpp
+++ b/ydb/library/yql/core/cbo/cbo_optimizer.cpp
@@ -3,6 +3,10 @@
#include <array>
#include <util/string/builder.h>
+#include <util/generic/hash.h>
+#include <util/generic/hash_set.h>
+
+#include <library/cpp/disjoint_sets/disjoint_sets.h>
namespace NYql {
@@ -111,7 +115,7 @@ TString IOptimizer::TOutput::ToString() const {
return b;
}
-TString IOptimizer::TInput::ToString() {
+TString IOptimizer::TInput::ToString() const {
TStringBuilder b;
b << "Rels: [";
for (ui32 i = 0; i < Rels.size(); ++i) {
@@ -139,4 +143,55 @@ TString IOptimizer::TInput::ToString() {
return b;
}
+void IOptimizer::TInput::Normalize() {
+ using TId = TDisjointSets::TElement;
+
+ THashMap<TVarId, TId> var2id;
+ std::vector<TVarId> id2var;
+ TId curId = 1;
+
+ for (auto& eq : EqClasses) {
+ for (auto& v : eq.Vars) {
+ auto& id = var2id[v];
+ if (id == 0) {
+ id = curId;
+ id2var.resize(curId + 1);
+ id2var[curId] = v;
+ ++curId;
+ }
+ }
+ }
+
+ TDisjointSets u(curId + 1);
+ for (auto& eq : EqClasses) {
+ Y_VERIFY(!eq.Vars.empty());
+
+ ui32 i = 0;
+ TId first = var2id[eq.Vars[i++]];
+ for (; i < eq.Vars.size(); ++i) {
+ TId id = var2id[eq.Vars[i]];
+ u.UnionSets(first, id);
+ }
+ }
+
+ THashMap<TId, THashSet<TId>> eqClasses;
+ for (auto& eq : EqClasses) {
+ for (auto& var : eq.Vars) {
+ auto id = var2id[var];
+ auto canonicalId = u.CanonicSetElement(id);
+ eqClasses[canonicalId].emplace(id);
+ }
+ }
+ EqClasses.clear();
+ for (auto& [_, ids]: eqClasses) {
+ TEq eqClass;
+ eqClass.Vars.reserve(ids.size());
+ for (auto id : ids) {
+ eqClass.Vars.emplace_back(id2var[id]);
+ }
+ std::sort(eqClass.Vars.begin(), eqClass.Vars.end());
+ EqClasses.emplace_back(std::move(eqClass));
+ }
+}
+
} // namespace NYql
diff --git a/ydb/library/yql/core/cbo/cbo_optimizer.h b/ydb/library/yql/core/cbo/cbo_optimizer.h
index ad6db62ab8..4cd7884b11 100644
--- a/ydb/library/yql/core/cbo/cbo_optimizer.h
+++ b/ydb/library/yql/core/cbo/cbo_optimizer.h
@@ -29,7 +29,8 @@ struct IOptimizer {
std::vector<TRel> Rels;
std::vector<TEq> EqClasses;
- TString ToString();
+ TString ToString() const;
+ void Normalize();
};
enum class EJoinType {
diff --git a/ydb/library/yql/core/cbo/ya.make b/ydb/library/yql/core/cbo/ya.make
index 3a8fd2a503..fff500f853 100644
--- a/ydb/library/yql/core/cbo/ya.make
+++ b/ydb/library/yql/core/cbo/ya.make
@@ -2,5 +2,9 @@ LIBRARY()
SRCS(cbo_optimizer.cpp)
+PEERDIR(
+ library/cpp/disjoint_sets
+)
+
END()
diff --git a/ydb/library/yql/core/common_opt/yql_co_simple1.cpp b/ydb/library/yql/core/common_opt/yql_co_simple1.cpp
index 7ebe9dc110..1b9af4fe1e 100644
--- a/ydb/library/yql/core/common_opt/yql_co_simple1.cpp
+++ b/ydb/library/yql/core/common_opt/yql_co_simple1.cpp
@@ -5883,7 +5883,16 @@ void RegisterCoSimpleCallables1(TCallableOptimizerMap& map) {
map["RangeMultiply"] = [](const TExprNode::TPtr& node, TExprContext& ctx, TOptimizeContext& /*optCtx*/) {
if (node->ChildrenSize() == 2 && node->Tail().IsCallable("RangeMultiply")) {
- auto minLimit = ctx.NewCallable(node->Pos(), "Min", { node->HeadPtr(), node->Tail().HeadPtr() });
+ auto first = node->HeadPtr();
+ auto second = node->Tail().HeadPtr();
+ TExprNode::TPtr minLimit;
+ if (first->IsCallable("Void")) {
+ minLimit = second;
+ } else if (second->IsCallable("Void")) {
+ minLimit = first;
+ } else {
+ minLimit = ctx.NewCallable(node->Pos(), "Min", { first , second });
+ }
YQL_CLOG(DEBUG, Core) << node->Content() << " over " << node->Tail().Content();
return ctx.ChangeChild(node->Tail(), 0, std::move(minLimit));
}
diff --git a/ydb/library/yql/core/extract_predicate/extract_predicate.h b/ydb/library/yql/core/extract_predicate/extract_predicate.h
index e450947423..475e298680 100644
--- a/ydb/library/yql/core/extract_predicate/extract_predicate.h
+++ b/ydb/library/yql/core/extract_predicate/extract_predicate.h
@@ -6,9 +6,11 @@
namespace NYql {
struct TPredicateExtractorSettings {
- size_t MaxRanges = 10000;
+ TMaybe<size_t> MaxRanges = 10000; // should be less than Max<size_t>() due to integer overflow
bool MergeAdjacentPointRanges = true;
bool HaveNextValueCallable = false;
+ bool BuildLiteralRange = false;
+ std::function<bool(const NYql::TExprNode::TPtr&)> IsValidForRange;
};
class IPredicateRangeExtractor {
@@ -24,13 +26,28 @@ public:
size_t UsedPrefixLen = 0;
size_t PointPrefixLen = 0;
TMaybe<size_t> ExpectedMaxRanges;
+
+ struct TLiteralRange {
+ struct TLiteralRangeBound {
+ bool Inclusive = false;
+ TVector<TExprNode::TPtr> Columns;
+ };
+
+ TLiteralRangeBound Left;
+ TLiteralRangeBound Right;
+ };
+
+ TMaybe<TLiteralRange> LiteralRange;
};
- virtual TBuildResult BuildComputeNode(const TVector<TString>& indexKeys, TExprContext& ctx) const = 0;
+ virtual TBuildResult BuildComputeNode(const TVector<TString>& indexKeys, TExprContext& ctx, TTypeAnnotationContext& typesCtx) const = 0;
virtual ~IPredicateRangeExtractor() = default;
};
IPredicateRangeExtractor::TPtr MakePredicateRangeExtractor(const TPredicateExtractorSettings& settings = {});
+
+TExprNode::TPtr BuildPointsList(const IPredicateRangeExtractor::TBuildResult&, TConstArrayRef<TString> keyColumns, NYql::TExprContext& expCtx);
+
}
diff --git a/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp b/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp
index 67512884ec..67726a54bb 100644
--- a/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp
+++ b/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp
@@ -43,7 +43,7 @@ TExprNode::TPtr ExpandRangeComputeFor(const TExprNode::TPtr& node, TExprContext&
}
- auto buildResult = extractor->BuildComputeNode(indexKeys, ctx);
+ auto buildResult = extractor->BuildComputeNode(indexKeys, ctx, *typesCtx);
if (!buildResult.ComputeNode) {
YQL_CLOG(DEBUG, Core) << "BuildComputeNode: ranges can not be built for predicate";
return result;
diff --git a/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp b/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp
index d5c0c5a291..5d61b8f8f1 100644
--- a/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp
+++ b/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp
@@ -15,6 +15,21 @@ namespace {
using namespace NNodes;
using NUdf::TCastResultOptions;
+TExprNode::TPtr BuildMultiplyLimit(TMaybe<size_t> limit, TExprContext& ctx, TPositionHandle pos) {
+ if (limit) {
+ return ctx.Builder(pos)
+ .Callable("Uint64")
+ .Atom(0, ToString(*limit), TNodeFlags::Default)
+ .Seal()
+ .Build();
+ } else {
+ return ctx.Builder(pos)
+ .Callable("Void")
+ .Seal()
+ .Build();
+ }
+}
+
const TTypeAnnotationNode* GetBaseDataType(const TTypeAnnotationNode *type) {
type = RemoveAllOptionals(type);
return (type && type->GetKind() == ETypeAnnotationKind::Data) ? type : nullptr;
@@ -233,6 +248,9 @@ const THashMap<TStringBuf, TStringBuf> SupportedBinOps = {
};
bool IsValidForRange(TExprNode::TPtr& node, const TExprNode& row, const TPredicateExtractorSettings& settings, TExprContext& ctx) {
+ if (settings.IsValidForRange && !settings.IsValidForRange(node)) {
+ return false;
+ }
auto it = SupportedBinOps.find(node->Content());
if (it != SupportedBinOps.end()) {
if (IsValidForRange(node->Head(), &node->Tail(), row)) {
@@ -900,15 +918,12 @@ TExprNode::TPtr BuildSingleComputeRange(const TStructExprType& rowType,
if (!hasNot) {
// IN = collection of point intervals
body = ctx.Builder(pos)
- .Callable("Take")
- .Callable(0, "FlatMap")
+ .Callable("FlatMap")
.Add(0, collection)
.Lambda(1)
.Param("item")
.Callable("RangeMultiply")
- .Callable(0, "Uint64")
- .Atom(0, ToString(settings.MaxRanges), TNodeFlags::Default)
- .Seal()
+ .Add(0, BuildMultiplyLimit(settings.MaxRanges, ctx, pos))
.Do([&](TExprNodeBuilder& parent) -> TExprNodeBuilder& {
if (haveTuples) {
const auto& types = compositeKeyType->Cast<TTupleExprType>()->GetItems();
@@ -940,29 +955,44 @@ TExprNode::TPtr BuildSingleComputeRange(const TStructExprType& rowType,
.Seal()
.Seal()
.Seal()
- .Callable(1, "Uint64")
- // +1 is essential here - RangeMultiply will detect overflow by this extra item
- .Atom(0, ToString(settings.MaxRanges + 1), TNodeFlags::Default)
- .Seal()
- .Seal()
.Build();
+ if (settings.MaxRanges) {
+ YQL_ENSURE(*settings.MaxRanges < Max<size_t>());
+ body = ctx.Builder(pos)
+ .Callable("Take")
+ .Add(0, body)
+ .Callable(1, "Uint64")
+ // +1 is essential here - RangeMultiply will detect overflow by this extra item
+ .Atom(0, ToString(*settings.MaxRanges + 1), TNodeFlags::Default)
+ .Seal()
+ .Seal()
+ .Build();
+ }
body = ctx.NewCallable(pos, "Collect", { body });
- body = ctx.Builder(pos)
- .Callable("IfStrict")
- .Callable(0, ">")
- .Callable(0, "Length")
- .Add(0, body)
+ if (settings.MaxRanges) {
+ body = ctx.Builder(pos)
+ .Callable("IfStrict")
+ .Callable(0, ">")
+ .Callable(0, "Length")
+ .Add(0, body)
+ .Seal()
+ .Callable(1, "Uint64")
+ .Atom(0, ToString(*settings.MaxRanges), TNodeFlags::Default)
+ .Seal()
.Seal()
- .Callable(1, "Uint64")
- .Atom(0, ToString(settings.MaxRanges), TNodeFlags::Default)
+ .Add(1, BuildFullRange(pos, rowType, keys, ctx))
+ .Callable(2, "RangeUnion")
+ .Add(0, body)
.Seal()
.Seal()
- .Add(1, BuildFullRange(pos, rowType, keys, ctx))
- .Callable(2, "RangeUnion")
+ .Build();
+ } else {
+ body = ctx.Builder(pos)
+ .Callable("RangeUnion")
.Add(0, body)
.Seal()
- .Seal()
- .Build();
+ .Build();
+ }
} else {
YQL_ENSURE(false, "not supported yet, should be rejected earlier");
}
@@ -1332,18 +1362,276 @@ bool IsRestTrue(const TExprNode& node) {
return false;
}
-TExprNode::TPtr BuildRangeMultiply(TPositionHandle pos, size_t maxRanges, const TExprNodeList& toMultiply, TExprContext& ctx) {
+TExprNode::TPtr BuildRangeMultiply(TPositionHandle pos, TMaybe<size_t> maxRanges, const TExprNodeList& toMultiply, TExprContext& ctx) {
TExprNodeList args;
args.reserve(toMultiply.size() + 1);
- args.push_back(ctx.NewCallable(pos, "Uint64", { ctx.NewAtom(pos, ToString(maxRanges), TNodeFlags::Default) }));
+ args.push_back(BuildMultiplyLimit(maxRanges, ctx, pos));
args.insert(args.end(), toMultiply.begin(), toMultiply.end());
return ctx.NewCallable(pos, "RangeMultiply", std::move(args));
}
+using TRangeHint = IPredicateRangeExtractor::TBuildResult::TLiteralRange;
+using TRangeBoundHint = IPredicateRangeExtractor::TBuildResult::TLiteralRange::TLiteralRangeBound;
+
+TMaybe<int> TryCompareColumns(const TExprNode::TPtr& fs, const TExprNode::TPtr& sc) {
+ if (!fs || !sc) {
+ return {};
+ }
+ if (fs == sc) {
+ return 0;
+ }
+
+ auto isNull = [](const TExprNode::TPtr& ptr) {
+ return ptr->IsCallable("Nothing") || (ptr->GetTypeAnn()
+ && ptr->GetTypeAnn()->GetKind() == ETypeAnnotationKind::Null);
+ };
+
+ if (isNull(fs)) {
+ if (isNull(sc)) {
+ return 0;
+ } else {
+ return -1;
+ }
+ }
+ if (isNull(sc)) {
+ return 1;
+ }
+
+ return {};
+}
+
+TMaybe<TRangeBoundHint> CompareBounds(
+ const TRangeBoundHint& hint1,
+ const TRangeBoundHint& hint2,
+ bool min, bool lefts)
+{
+ TRangeBoundHint hint;
+ bool uniteAreas = min == lefts;
+ for (size_t i = 0; ; i++) {
+ if (i >= hint1.Columns.size()) {
+ if (i >= hint2.Columns.size()) {
+ hint = hint1;
+ if (uniteAreas) {
+ hint.Inclusive = hint1.Inclusive || hint2.Inclusive;
+ } else {
+ hint.Inclusive = hint1.Inclusive && hint2.Inclusive;
+ }
+ } else if (hint1.Inclusive != uniteAreas) {
+ hint = hint2;
+ } else {
+ hint = hint1;
+ }
+ break;
+ }
+ if (i >= hint2.Columns.size()) {
+ if (hint2.Inclusive != uniteAreas) {
+ hint = hint1;
+ } else {
+ hint = hint2;
+ }
+ break;
+ }
+
+ if (!hint1.Columns[i] || !hint2.Columns[i]) {
+ return Nothing();
+ }
+ if (auto cmp = TryCompareColumns(hint1.Columns[i], hint2.Columns[i])) {
+ if ((cmp < 0) == min) {
+ hint = hint1;
+ } else {
+ hint = hint2;
+ }
+
+ if (cmp != 0) {
+ break;
+ }
+ } else {
+ return Nothing();
+ }
+ }
+
+ return hint;
+}
+
+TMaybe<TRangeHint> RangeHintIntersect(const TRangeHint& hint1, const TRangeHint& hint2) {
+ auto left = CompareBounds(hint1.Left, hint2.Left, /* min */ false, true);
+ auto right = CompareBounds(hint1.Right, hint2.Right, /* min */ true, false);
+ if (left && right) {
+ return TRangeHint{.Left = std::move(*left), .Right = std::move(*right)};
+ } else {
+ return Nothing();
+ }
+}
+
+TMaybe<TRangeHint> RangeHintIntersect(const TMaybe<TRangeHint>& hint1, const TMaybe<TRangeHint>& hint2) {
+ if (hint1 && hint2) {
+ return RangeHintIntersect(*hint1, *hint2);
+ } else {
+ return {};
+ }
+}
+
+
+TRangeHint RangeHintExtend(const TRangeHint& hint1, size_t hint1Len, const TRangeHint& hint2) {
+ TRangeHint hint = hint1;
+ if (hint.Left.Columns.size() == hint1Len && hint1.Left.Inclusive) {
+ hint.Left.Columns.insert(hint.Left.Columns.end(), hint2.Left.Columns.begin(), hint2.Left.Columns.end());
+ hint.Left.Inclusive = hint2.Left.Inclusive;
+ }
+ if (hint.Right.Columns.size() == hint1Len && hint1.Right.Inclusive) {
+ hint.Right.Columns.insert(hint.Right.Columns.end(), hint2.Right.Columns.begin(), hint2.Right.Columns.end());
+ hint.Right.Inclusive = hint2.Right.Inclusive;
+ }
+ return hint;
+}
+
+TMaybe<TRangeHint> RangeHintExtend(const TMaybe<TRangeHint>& hint1, size_t hint1Len, const TMaybe<TRangeHint>& hint2) {
+ if (hint1 && hint2) {
+ return RangeHintExtend(*hint1, hint1Len, *hint2);
+ } else {
+ return {};
+ }
+}
+
+bool IsValid(const TRangeBoundHint& left, const TRangeBoundHint& right, bool acceptExclusivePoint = true) {
+ for (size_t i = 0; ; ++i) {
+ if (i >= left.Columns.size() || i >= right.Columns.size()) {
+ // ok, we have +-inf and sure that it's valid
+ return true;
+ }
+ auto cmp = TryCompareColumns(left.Columns[i], right.Columns[i]);
+ if (!cmp) {
+ return false;
+ } else {
+ if (*cmp < 0) {
+ return true;
+ } else if (*cmp > 0) {
+ return false;
+ }
+ }
+ }
+ return acceptExclusivePoint || left.Inclusive || right.Inclusive;
+}
+
+TMaybe<TRangeHint> RangeHintUnion(const TRangeHint& hint1, const TRangeHint& hint2) {
+ if (!IsValid(hint1.Left, hint1.Right) || !IsValid(hint2.Left, hint2.Right)) {
+ return Nothing();
+ }
+
+ auto left = CompareBounds(hint1.Left, hint2.Left, /* min */ true, true);
+ auto right = CompareBounds(hint1.Right, hint2.Right, /* min */ false, false);
+ auto intersection = RangeHintIntersect(hint1, hint2);
+ if (!left || !right || !intersection) {
+ return Nothing();
+ }
+ if (IsValid(intersection->Left, intersection->Right, false)) {
+ return TRangeHint{.Left = std::move(*left), .Right = std::move(*right)};
+ } else {
+ return Nothing();
+ }
+}
+
+TMaybe<TRangeHint> RangeHintUnion(const TMaybe<TRangeHint>& hint1, const TMaybe<TRangeHint>& hint2) {
+ if (hint1 && hint2) {
+ return RangeHintUnion(*hint1, *hint2);
+ } else {
+ return {};
+ }
+}
+
+void TryBuildSingleRangeHint(TExprNode::TPtr range, const TStructExprType& rowType, const TVector<TString>& indexKeys, TIndexRange indexRange, TMaybe<TRangeHint>& hint, TExprContext& ctx) {
+ bool negated;
+ auto op = GetOpFromRange(*range, negated);
+ size_t rangeLen = indexRange.End - indexRange.Begin;
+
+ auto idx = rowType.FindItem(indexKeys[indexRange.Begin]);
+ YQL_ENSURE(idx);
+ const TTypeAnnotationNode* firstKeyType = rowType.GetItems()[*idx]->GetItemType();
+
+ auto isOptional = [&](const TExprNode::TPtr& node) {
+ YQL_ENSURE(node->GetTypeAnn());
+ return node->GetTypeAnn()->GetKind() == ETypeAnnotationKind::Optional || node->GetTypeAnn()->GetKind() == ETypeAnnotationKind::Null;
+ };
+
+ if (op->IsCallable("SqlIn") && !negated) {
+ TCoSqlIn sqlIn(op);
+ auto collection = sqlIn.Collection();
+ if ((collection.Ptr()->IsCallable({"AsList", "AsSet", "Just"}) ||
+ collection.Ptr()->GetTypeAnn()->GetKind() == ETypeAnnotationKind::Tuple) &&
+ GetSqlInCollectionSize(collection.Ptr()) == TMaybe<size_t>(1))
+ {
+ auto item = sqlIn.Collection().Ptr()->Child(0);
+ if (isOptional(item)) {
+ return;
+ }
+
+ hint.ConstructInPlace();
+ hint->Left.Inclusive = hint->Right.Inclusive = true;
+ hint->Left.Columns = hint->Right.Columns = {item};
+ }
+ } else if (op->IsCallable(">") || op->IsCallable(">=")) {
+ YQL_ENSURE(!negated);
+ if (isOptional(op->ChildPtr(1))) {
+ return;
+ }
+
+ hint.ConstructInPlace();
+ hint->Left.Inclusive = op->IsCallable(">=");
+ hint->Right.Inclusive = true;
+ YQL_ENSURE(rangeLen == 1);
+ hint->Left.Columns.push_back(op->ChildPtr(1));
+ } else if (op->IsCallable("<") || op->IsCallable("<=")) {
+ YQL_ENSURE(!negated);
+ if (isOptional(op->ChildPtr(1))) {
+ return;
+ }
+
+ hint.ConstructInPlace();
+ hint->Right.Inclusive = op->IsCallable("<=");
+
+ YQL_ENSURE(rangeLen == 1);
+ hint->Right.Columns.push_back(op->ChildPtr(1));
+
+ if (firstKeyType->GetKind() == ETypeAnnotationKind::Optional) {
+ auto none = Build<TCoNothing>(ctx, op->Pos())
+ .OptionalType(ExpandType(op->Pos(), *firstKeyType, ctx))
+ .Done();
+ hint->Left.Columns.push_back(none.Ptr());
+ hint->Left.Inclusive = false;
+ } else {
+ hint->Left.Inclusive = true;
+ }
+ } else if (op->IsCallable("==")) {
+ YQL_ENSURE(!negated);
+ if (isOptional(op->ChildPtr(1))) {
+ return;
+ }
+
+ hint.ConstructInPlace();
+ hint->Left.Inclusive = hint->Right.Inclusive = true;
+ hint->Left.Columns = hint->Right.Columns = {op->ChildPtr(1)};
+ } else if (op->IsCallable("Exists")) {
+ YQL_ENSURE(rangeLen == 1);
+ hint.ConstructInPlace();
+ auto none = Build<TCoNothing>(ctx, op->Pos())
+ .OptionalType(ExpandType(op->Pos(), *firstKeyType, ctx))
+ .Done();
+ if (negated) {
+ hint->Left.Inclusive = hint->Right.Inclusive = true;
+ hint->Left.Columns.push_back(none.Ptr());
+ hint->Right.Columns.push_back(none.Ptr());
+ } else {
+ hint->Left.Inclusive = false;
+ hint->Left.Columns.push_back(none.Ptr());
+ hint->Right.Inclusive = true;
+ }
+ }
+}
+
TExprNode::TPtr DoBuildMultiColumnComputeNode(const TStructExprType& rowType, const TExprNode::TPtr& range,
const TVector<TString>& indexKeys, const THashMap<TString, size_t>& indexKeysOrder,
TExprNode::TPtr& prunedRange, TIndexRange& resultIndexRange, const TPredicateExtractorSettings& settings,
- size_t usedPrefixLen, TExprContext& ctx)
+ size_t usedPrefixLen, TExprContext& ctx, TMaybe<TRangeHint>& hint)
{
prunedRange = {};
resultIndexRange = {};
@@ -1357,6 +1645,9 @@ TExprNode::TPtr DoBuildMultiColumnComputeNode(const TStructExprType& rowType, co
prunedRange = (rawCols.size() == cols.size()) ?
BuildRestTrue(pos, rowType, ctx) :
RebuildAsRangeRest(rowType, *range, ctx);
+ if (settings.BuildLiteralRange) {
+ TryBuildSingleRangeHint(range, rowType, indexKeys, resultIndexRange, hint, ctx);
+ }
YQL_ENSURE(usedPrefixLen > 0 && usedPrefixLen <= indexKeys.size());
return BuildSingleComputeRange(rowType, *range, indexKeysOrder, settings, indexKeys[usedPrefixLen - 1], ctx);
}
@@ -1389,15 +1680,18 @@ TExprNode::TPtr DoBuildMultiColumnComputeNode(const TStructExprType& rowType, co
for (auto& child : range->ChildrenList()) {
prunedOutput.emplace_back();
TIndexRange childIndexRange;
- output.push_back(DoBuildMultiColumnComputeNode(rowType, child, indexKeys, indexKeysOrder, prunedOutput.back(), childIndexRange, settings, usedPrefixLen, ctx));
+ TMaybe<TRangeHint> childHint;
+ output.push_back(DoBuildMultiColumnComputeNode(rowType, child, indexKeys, indexKeysOrder, prunedOutput.back(), childIndexRange, settings, usedPrefixLen, ctx, childHint));
childIndexRanges.push_back(childIndexRange);
YQL_ENSURE(!childIndexRange.IsEmpty());
if (resultIndexRange.IsEmpty()) {
resultIndexRange = childIndexRange;
+ hint = childHint;
} else {
YQL_ENSURE(childIndexRange.Begin == resultIndexRange.Begin);
resultIndexRange.End = std::max(resultIndexRange.End, childIndexRange.End);
resultIndexRange.PointPrefixLen = std::min(resultIndexRange.PointPrefixLen, childIndexRange.PointPrefixLen);
+ hint = RangeHintUnion(childHint, hint);
}
}
@@ -1414,7 +1708,8 @@ TExprNode::TPtr DoBuildMultiColumnComputeNode(const TStructExprType& rowType, co
for (const auto& child : range->ChildrenList()) {
prunedOutput.emplace_back();
TIndexRange childIndexRange;
- auto compute = DoBuildMultiColumnComputeNode(rowType, child, indexKeys, indexKeysOrder, prunedOutput.back(), childIndexRange, settings, usedPrefixLen, ctx);
+ TMaybe<TRangeHint> childHint;
+ auto compute = DoBuildMultiColumnComputeNode(rowType, child, indexKeys, indexKeysOrder, prunedOutput.back(), childIndexRange, settings, usedPrefixLen, ctx, childHint);
if (!compute) {
continue;
}
@@ -1423,9 +1718,11 @@ TExprNode::TPtr DoBuildMultiColumnComputeNode(const TStructExprType& rowType, co
YQL_ENSURE(!childIndexRange.IsEmpty());
if (resultIndexRange.IsEmpty()) {
resultIndexRange = childIndexRange;
+ hint = childHint;
} else {
if (childIndexRange.Begin != resultIndexRange.Begin) {
YQL_ENSURE(childIndexRange.Begin == resultIndexRange.End);
+ hint = RangeHintExtend(hint, resultIndexRange.End - resultIndexRange.Begin, childHint);
needAlign = false;
if (!resultIndexRange.IsPoint()) {
prunedOutput.back() = RebuildAsRangeRest(rowType, *child, ctx);
@@ -1434,6 +1731,7 @@ TExprNode::TPtr DoBuildMultiColumnComputeNode(const TStructExprType& rowType, co
}
} else {
resultIndexRange.PointPrefixLen = std::max(resultIndexRange.PointPrefixLen, childIndexRange.PointPrefixLen);
+ hint = RangeHintIntersect(hint, childHint);
}
resultIndexRange.End = std::max(resultIndexRange.End, childIndexRange.End);
}
@@ -1456,7 +1754,7 @@ TExprNode::TPtr DoBuildMultiColumnComputeNode(const TStructExprType& rowType, co
prunedOutput.erase(
std::remove_if(prunedOutput.begin(), prunedOutput.end(), [](const auto& pruned) { return IsRestTrue(*pruned); }),
prunedOutput.end()
- );
+ );
if (prunedOutput.empty()) {
prunedRange = BuildRestTrue(pos, rowType, ctx);
@@ -1469,12 +1767,70 @@ TExprNode::TPtr DoBuildMultiColumnComputeNode(const TStructExprType& rowType, co
return ctx.NewCallable(pos, range->IsCallable("RangeOr") ? "RangeUnion" : "RangeIntersect", std::move(output));
}
+void NormalizeRangeHint(TMaybe<TRangeHint>& hint, const TVector<TString>& indexKeys, const TStructExprType& rowType, TExprContext& ctx, TTypeAnnotationContext& types) {
+ if (!hint) {
+ return;
+ }
+
+ auto normTypes = [&] (TRangeBoundHint& hint) {
+ for (size_t i = 0; i < hint.Columns.size(); ++i) {
+ auto idx = rowType.FindItem(indexKeys[i]);
+ YQL_ENSURE(idx);
+ const TTypeAnnotationNode* columnType = rowType.GetItems()[*idx]->GetItemType();
+ const TTypeAnnotationNode* unwrapOptional = columnType;
+
+ if (columnType->GetKind() == ETypeAnnotationKind::Optional) {
+ unwrapOptional = columnType->Cast<TOptionalExprType>()->GetItemType();
+ }
+
+ TTransformationPipeline pipeline(&types);
+ pipeline.AddServiceTransformers();
+ pipeline.AddTypeAnnotationTransformer();
+ pipeline.Add(CreateFunctorTransformer(
+ [&](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) -> IGraphTransformer::TStatus {
+ output = input;
+
+ auto status = TrySilentConvertTo(output, *unwrapOptional, ctx);
+ if (status == IGraphTransformer::TStatus::Error) {
+ output = input;
+ status = TrySilentConvertTo(output, *columnType, ctx);
+ }
+
+ if (status == IGraphTransformer::TStatus::Repeat) {
+ status.HasRestart = 1;
+ }
+ return status;
+ }
+ ), "ExtractPredicate", TIssuesIds::CORE_EXEC);
+
+ auto transformer = pipeline.BuildWithNoArgChecks(true);
+
+ for (;;) {
+ auto status = InstantTransform(*transformer, hint.Columns[i], ctx, true);
+ if (status == IGraphTransformer::TStatus::Ok) {
+ break;
+ }
+ if (status == IGraphTransformer::TStatus::Error) {
+ return false;
+ }
+ }
+ }
+ return true;
+ };
+
+ if (!normTypes(hint->Left) || !normTypes(hint->Right)) {
+ hint.Clear();
+ }
+}
+
TExprNode::TPtr BuildMultiColumnComputeNode(const TStructExprType& rowType, const TExprNode::TPtr& range,
const TVector<TString>& indexKeys, const THashMap<TString, size_t>& indexKeysOrder,
- TExprNode::TPtr& prunedRange, const TPredicateExtractorSettings& settings, size_t usedPrefixLen, size_t& pointPrefixLen, TExprContext& ctx)
+ TExprNode::TPtr& prunedRange, const TPredicateExtractorSettings& settings, size_t usedPrefixLen, size_t& pointPrefixLen,
+ TExprContext& ctx, TTypeAnnotationContext& types, TMaybe<TRangeHint>& resultHint)
{
TIndexRange resultIndexRange;
- auto result = DoBuildMultiColumnComputeNode(rowType, range, indexKeys, indexKeysOrder, prunedRange, resultIndexRange, settings, usedPrefixLen, ctx);
+ auto result = DoBuildMultiColumnComputeNode(rowType, range, indexKeys, indexKeysOrder, prunedRange, resultIndexRange, settings, usedPrefixLen, ctx, resultHint);
+ NormalizeRangeHint(resultHint, indexKeys, rowType, ctx, types);
pointPrefixLen = resultIndexRange.PointPrefixLen;
YQL_ENSURE(pointPrefixLen <= usedPrefixLen);
YQL_ENSURE(prunedRange);
@@ -1505,6 +1861,62 @@ TExprNode::TPtr BuildMultiColumnComputeNode(const TStructExprType& rowType, cons
return result;
}
+NYql::NNodes::TExprBase UnpackRangePoints(NYql::NNodes::TExprBase node, TConstArrayRef<TString> keyColumns, NYql::TExprContext& expCtx, NYql::TPositionHandle pos) {
+ TCoArgument rangeArg = Build<TCoArgument>(expCtx, pos)
+ .Name("rangeArg")
+ .Done();
+
+ TVector<TExprBase> structMembers;
+ structMembers.reserve(keyColumns.size());
+ for (size_t i = 0; i < keyColumns.size(); ++i) {
+ auto kth = [&] (size_t k) {
+ return Build<TCoUnwrap>(expCtx, pos)
+ .Optional<TCoNth>()
+ .Tuple<TCoNth>()
+ .Tuple(rangeArg)
+ .Index().Build(k)
+ .Build()
+ .Index().Build(i)
+ .Build()
+ .Done();
+ };
+
+ auto first = kth(0);
+ auto second = kth(1);
+
+ auto member = Build<TCoNameValueTuple>(expCtx, pos)
+ .Name().Build(keyColumns[i])
+ .Value<TCoEnsure>()
+ .Value(first)
+ .Message<TCoString>().Literal().Build("invalid range bounds").Build()
+ .Predicate<TCoOr>()
+ .Add<TCoCmpEqual>()
+ .Left(first)
+ .Right(second)
+ .Build()
+ .Add<TCoAnd>()
+ .Add<TCoNot>().Value<TCoExists>().Optional(first).Build().Build()
+ .Add<TCoNot>().Value<TCoExists>().Optional(second).Build().Build()
+ .Build()
+ .Build()
+ .Build()
+ .Done();
+
+ structMembers.push_back(member);
+ }
+
+
+ return Build<TCoMap>(expCtx, pos)
+ .Input(node)
+ .Lambda()
+ .Args({rangeArg})
+ .Body<TCoAsStruct>()
+ .Add(structMembers)
+ .Build()
+ .Build()
+ .Done();
+}
+
} // namespace
@@ -1570,7 +1982,7 @@ bool TPredicateRangeExtractor::Prepare(const TExprNode::TPtr& filterLambdaNode,
}
TPredicateRangeExtractor::TBuildResult TPredicateRangeExtractor::BuildComputeNode(const TVector<TString>& indexKeys,
- TExprContext& ctx) const
+ TExprContext& ctx, TTypeAnnotationContext& typesCtx) const
{
YQL_ENSURE(FilterLambda && Range && RowType, "Prepare() is not called");
@@ -1608,11 +2020,11 @@ TPredicateRangeExtractor::TBuildResult TPredicateRangeExtractor::BuildComputeNod
TExprNode::TPtr rebuiltRange = RebuildRangeForIndexKeys(*RowType, Range, indexKeysOrder, result.UsedPrefixLen, ctx);
TExprNode::TPtr prunedRange;
result.ComputeNode = BuildMultiColumnComputeNode(*RowType, rebuiltRange, effectiveIndexKeys, indexKeysOrder,
- prunedRange, Settings, result.UsedPrefixLen, result.PointPrefixLen, ctx);
+ prunedRange, Settings, result.UsedPrefixLen, result.PointPrefixLen, ctx, typesCtx, result.LiteralRange);
+
if (result.ComputeNode) {
result.ExpectedMaxRanges = CalcMaxRanges(rebuiltRange, indexKeysOrder);
- if (result.ExpectedMaxRanges && *result.ExpectedMaxRanges < Settings.MaxRanges) {
- // rebuild filter lambda with prunedRange predicate
+ if (!Settings.MaxRanges || (result.ExpectedMaxRanges && *result.ExpectedMaxRanges < *Settings.MaxRanges)) {
TCoLambda lambda(result.PrunedLambda);
auto newPred = MakePredicateFromPrunedRange(prunedRange, lambda.Args().Arg(0).Ptr(), ctx);
@@ -1635,4 +2047,9 @@ IPredicateRangeExtractor::TPtr MakePredicateRangeExtractor(const TPredicateExtra
return MakeHolder<NDetail::TPredicateRangeExtractor>(settings);
}
+
+TExprNode::TPtr BuildPointsList(const IPredicateRangeExtractor::TBuildResult& result, TConstArrayRef<TString> keyColumns, NYql::TExprContext& expCtx) {
+ return NDetail::UnpackRangePoints(NNodes::TExprBase(result.ComputeNode), keyColumns, expCtx, result.ComputeNode->Pos()).Ptr();
+}
+
} // namespace NYql
diff --git a/ydb/library/yql/core/extract_predicate/extract_predicate_impl.h b/ydb/library/yql/core/extract_predicate/extract_predicate_impl.h
index 8e2d693f72..68524c25d6 100644
--- a/ydb/library/yql/core/extract_predicate/extract_predicate_impl.h
+++ b/ydb/library/yql/core/extract_predicate/extract_predicate_impl.h
@@ -17,7 +17,7 @@ public:
return Range;
}
- TBuildResult BuildComputeNode(const TVector<TString>& indexKeys, TExprContext& ctx) const override final;
+ TBuildResult BuildComputeNode(const TVector<TString>& indexKeys, TExprContext& ctx, TTypeAnnotationContext& typesCtx) const override final;
private:
const TPredicateExtractorSettings Settings;
TExprNode::TPtr FilterLambda;
diff --git a/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp b/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp
index 73c5cdae18..2e9ccc33da 100644
--- a/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp
+++ b/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp
@@ -20,6 +20,8 @@
#include <ydb/library/yql/core/services/yql_out_transformers.h>
#include <ydb/library/yql/utils/yql_paths.h>
+#include "ydb/library/yql/minikql/mkql_runtime_version.h"
+
#include <util/generic/xrange.h>
#include <library/cpp/yson/writer.h>
@@ -4042,6 +4044,10 @@ TExprNode::TPtr OptimizeCombineCore(const TExprNode::TPtr& node, TExprContext& c
template<bool Sort, bool HasCount>
TExprNode::TPtr OptimizeTopOrSort(const TExprNode::TPtr& node, TExprContext& ctx) {
+ if constexpr (NKikimr::NMiniKQL::RuntimeVersion < 35U) {
+ return node;
+ }
+
if (const auto& input = node->Head(); input.IsCallable("NarrowMap") && input.Tail().Tail().IsCallable("AsStruct")) {
TNodeMap<size_t> indexes(input.Tail().Tail().ChildrenSize());
input.Tail().Tail().ForEachChild([&](const TExprNode& field) {
diff --git a/ydb/library/yql/core/services/yql_transform_pipeline.cpp b/ydb/library/yql/core/services/yql_transform_pipeline.cpp
index b4b494de29..719d35a306 100644
--- a/ydb/library/yql/core/services/yql_transform_pipeline.cpp
+++ b/ydb/library/yql/core/services/yql_transform_pipeline.cpp
@@ -56,11 +56,11 @@ TTransformationPipeline& TTransformationPipeline::AddParametersEvaluation(const
TTransformationPipeline& TTransformationPipeline::AddExpressionEvaluation(const NKikimr::NMiniKQL::IFunctionRegistry& functionRegistry,
IGraphTransformer* calcTransfomer, EYqlIssueCode issueCode) {
- auto typeCtx = TypeAnnotationContext_;
- auto funcReg = &functionRegistry;
+ auto& typeCtx = *TypeAnnotationContext_;
+ auto& funcReg = functionRegistry;
Transformers_.push_back(TTransformStage(CreateFunctorTransformer(
- [=](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) {
- return EvaluateExpression(input, output, *typeCtx, ctx, *funcReg, calcTransfomer);
+ [&typeCtx, &funcReg, calcTransfomer](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) {
+ return EvaluateExpression(input, output, typeCtx, ctx, funcReg, calcTransfomer);
}), "EvaluateExpression", issueCode));
return *this;
diff --git a/ydb/library/yql/core/type_ann/type_ann_core.cpp b/ydb/library/yql/core/type_ann/type_ann_core.cpp
index ed7de115d5..d6865af8fc 100644
--- a/ydb/library/yql/core/type_ann/type_ann_core.cpp
+++ b/ydb/library/yql/core/type_ann/type_ann_core.cpp
@@ -11143,7 +11143,7 @@ template <NKikimr::NUdf::EDataSlot DataSlot>
return IGraphTransformer::TStatus::Error;
}
- if (!EnsureSpecificDataType(input->Head(), EDataSlot::Uint64, ctx.Expr)) {
+ if (!IsVoidType(input->Head(), ctx.Expr) && !EnsureSpecificDataType(input->Head(), EDataSlot::Uint64, ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
}
diff --git a/ydb/library/yql/core/yql_expr_type_annotation.cpp b/ydb/library/yql/core/yql_expr_type_annotation.cpp
index 4ca8c7ab1d..77f955f986 100644
--- a/ydb/library/yql/core/yql_expr_type_annotation.cpp
+++ b/ydb/library/yql/core/yql_expr_type_annotation.cpp
@@ -2792,43 +2792,64 @@ bool EnsureWideStreamType(TPositionHandle position, const TTypeAnnotationNode& t
return true;
}
-bool EnsureWideFlowBlockType(const TExprNode& node, TTypeAnnotationNode::TListType& blockItemTypes, TExprContext& ctx, bool allowScalar) {
- if (!EnsureWideFlowType(node, ctx)) {
+bool EnsureWideBlockType(TPositionHandle position, const TTypeAnnotationNode& type, TTypeAnnotationNode::TListType& blockItemTypes, TExprContext& ctx, bool allowScalar) {
+ if (HasError(&type, ctx)) {
return false;
}
- auto& items = node.GetTypeAnn()->Cast<TFlowExprType>()->GetItemType()->Cast<TMultiExprType>()->GetItems();
+ if (type.GetKind() != ETypeAnnotationKind::Multi) {
+ ctx.AddError(TIssue(ctx.GetPosition(position), TStringBuilder() << "Expected wide type, but got: " << type));
+ return false;
+ }
+
+ auto& items = type.Cast<TMultiExprType>()->GetItems();
if (items.empty()) {
- ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), "Expected at least one column"));
- return IGraphTransformer::TStatus::Error;
+ ctx.AddError(TIssue(ctx.GetPosition(position), "Expected at least one column"));
+ return false;
}
bool isScalar;
for (ui32 i = 0; i < items.size(); ++i) {
- const auto& type = items[i];
- if (!EnsureBlockOrScalarType(node.Pos(), *type, ctx)) {
+ const auto& itemType = items[i];
+ if (!EnsureBlockOrScalarType(position, *itemType, ctx)) {
return false;
}
- blockItemTypes.push_back(GetBlockItemType(*type, isScalar));
+ blockItemTypes.push_back(GetBlockItemType(*itemType, isScalar));
if (!allowScalar && isScalar && (i + 1 != items.size())) {
- ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), "Scalars are not allowed"));
+ ctx.AddError(TIssue(ctx.GetPosition(position), "Scalars are not allowed"));
return false;
}
}
if (!isScalar) {
- ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), "Last column should be a scalar"));
+ ctx.AddError(TIssue(ctx.GetPosition(position), "Last column should be a scalar"));
return false;
}
- if (!EnsureSpecificDataType(node.Pos(), *blockItemTypes.back(), EDataSlot::Uint64, ctx)) {
+ if (!EnsureSpecificDataType(position, *blockItemTypes.back(), EDataSlot::Uint64, ctx)) {
return false;
}
return true;
}
+bool EnsureWideFlowBlockType(const TExprNode& node, TTypeAnnotationNode::TListType& blockItemTypes, TExprContext& ctx, bool allowScalar) {
+ if (!EnsureWideFlowType(node, ctx)) {
+ return false;
+ }
+
+ return EnsureWideBlockType(node.Pos(), *node.GetTypeAnn()->Cast<TFlowExprType>()->GetItemType(), blockItemTypes, ctx, allowScalar);
+}
+
+bool EnsureWideStreamBlockType(const TExprNode& node, TTypeAnnotationNode::TListType& blockItemTypes, TExprContext& ctx, bool allowScalar) {
+ if (!EnsureWideStreamType(node, ctx)) {
+ return false;
+ }
+
+ return EnsureWideBlockType(node.Pos(), *node.GetTypeAnn()->Cast<TStreamExprType>()->GetItemType(), blockItemTypes, ctx, allowScalar);
+}
+
bool EnsureOptionalType(const TExprNode& node, TExprContext& ctx) {
if (!node.GetTypeAnn()) {
YQL_ENSURE(node.Type() == TExprNode::Lambda);
@@ -2957,6 +2978,13 @@ bool EnsureDictType(TPositionHandle position, const TTypeAnnotationNode& type, T
return true;
}
+bool IsVoidType(const TExprNode& node, TExprContext& ctx) {
+ if (HasError(node.GetTypeAnn(), ctx) || !node.GetTypeAnn()) {
+ return false;
+ }
+ return node.GetTypeAnn()->GetKind() == ETypeAnnotationKind::Void;
+}
+
bool EnsureVoidType(const TExprNode& node, TExprContext& ctx) {
if (HasError(node.GetTypeAnn(), ctx) || !node.GetTypeAnn()) {
YQL_ENSURE(node.Type() == TExprNode::Lambda);
@@ -2964,7 +2992,7 @@ bool EnsureVoidType(const TExprNode& node, TExprContext& ctx) {
return false;
}
- if (node.GetTypeAnn()->GetKind() != ETypeAnnotationKind::Void) {
+ if (!IsVoidType(node, ctx)) {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder() << "Expected void type, but got: " << *node.GetTypeAnn()));
return false;
}
@@ -5487,7 +5515,7 @@ bool HasContextFuncs(const TExprNode& input) {
return false;
}
- if (node.IsCallable({"AggApply","AggApplyState","AggApplyManyState","AggBlockApply","AggBlockApplyState"}) &&
+ if (node.IsCallable({"AggApply","AggApplyState","AggApplyManyState","AggBlockApply","AggBlockApplyState"}) &&
node.Head().Content().StartsWith("pg_")) {
needCtx = true;
return false;
diff --git a/ydb/library/yql/core/yql_expr_type_annotation.h b/ydb/library/yql/core/yql_expr_type_annotation.h
index d3bf851240..7b975ea622 100644
--- a/ydb/library/yql/core/yql_expr_type_annotation.h
+++ b/ydb/library/yql/core/yql_expr_type_annotation.h
@@ -124,7 +124,9 @@ bool EnsureWideFlowType(const TExprNode& node, TExprContext& ctx);
bool EnsureWideFlowType(TPositionHandle position, const TTypeAnnotationNode& type, TExprContext& ctx);
bool EnsureWideStreamType(const TExprNode& node, TExprContext& ctx);
bool EnsureWideStreamType(TPositionHandle position, const TTypeAnnotationNode& type, TExprContext& ctx);
+bool EnsureWideBlockType(TPositionHandle position, const TTypeAnnotationNode& type, TTypeAnnotationNode::TListType& blockItemTypes, TExprContext& ctx, bool allowScalar = true);
bool EnsureWideFlowBlockType(const TExprNode& node, TTypeAnnotationNode::TListType& blockItemTypes, TExprContext& ctx, bool allowScalar = true);
+bool EnsureWideStreamBlockType(const TExprNode& node, TTypeAnnotationNode::TListType& blockItemTypes, TExprContext& ctx, bool allowScalar = true);
bool EnsureOptionalType(const TExprNode& node, TExprContext& ctx);
bool EnsureOptionalType(TPositionHandle position, const TTypeAnnotationNode& type, TExprContext& ctx);
bool EnsureType(const TExprNode& node, TExprContext& ctx);
@@ -135,6 +137,8 @@ bool EnsureDryType(TPositionHandle position, const TTypeAnnotationNode& type, TE
bool EnsureDryType(const TExprNode& node, TExprContext& ctx);
bool EnsureDictType(const TExprNode& node, TExprContext& ctx);
bool EnsureDictType(TPositionHandle position, const TTypeAnnotationNode& type, TExprContext& ctx);
+
+bool IsVoidType(const TExprNode& node, TExprContext& ctx);
bool EnsureVoidType(const TExprNode& node, TExprContext& ctx);
bool EnsureVoidLiteral(const TExprNode& node, TExprContext& ctx);
bool EnsureCallableType(const TExprNode& node, TExprContext& ctx);
@@ -321,7 +325,7 @@ bool GetMinMaxResultType(const TPositionHandle& pos, const TTypeAnnotationNode&
IGraphTransformer::TStatus ExtractPgTypesFromMultiLambda(TExprNode::TPtr& lambda, TVector<ui32>& argTypes,
bool& needRetype, TExprContext& ctx);
-TExprNode::TPtr ExpandPgAggregationTraits(TPositionHandle pos, const NPg::TAggregateDesc& aggDesc, bool onWindow,
+TExprNode::TPtr ExpandPgAggregationTraits(TPositionHandle pos, const NPg::TAggregateDesc& aggDesc, bool onWindow,
const TExprNode::TPtr& lambda, const TVector<ui32>& argTypes, const TTypeAnnotationNode* itemType, TExprContext& ctx);
const TTypeAnnotationNode* GetOriginalResultType(TPositionHandle pos, bool isMany, const TTypeAnnotationNode* originalExtractorType, TExprContext& ctx);
diff --git a/ydb/library/yql/core/yql_graph_transformer.cpp b/ydb/library/yql/core/yql_graph_transformer.cpp
index 886fddbfd1..dd3aa951df 100644
--- a/ydb/library/yql/core/yql_graph_transformer.cpp
+++ b/ydb/library/yql/core/yql_graph_transformer.cpp
@@ -142,7 +142,7 @@ protected:
void AddTooManyTransformationsError(TPositionHandle pos, const TStringBuf& where, TExprContext& ctx) {
ctx.AddError(TIssue(ctx.GetPosition(pos),
- TStringBuilder() << "YQL: Internal core error! " << where << " take too much iteration: "
+ TStringBuilder() << "YQL: Internal core error! " << where << " takes too much iterations: "
<< ctx.RepeatTransformLimit
<< ". You may set RepeatTransformLimit as flags for config provider."));
}
diff --git a/ydb/library/yql/core/yql_opt_utils.cpp b/ydb/library/yql/core/yql_opt_utils.cpp
index 4bd973e0cb..1ec6a775ac 100644
--- a/ydb/library/yql/core/yql_opt_utils.cpp
+++ b/ydb/library/yql/core/yql_opt_utils.cpp
@@ -129,22 +129,69 @@ bool IsListReorder(const TExprNode& node) {
return node.IsCallable({"Sort", "Reverse"});
}
+// Check if the flat map is a simple rename flat map
bool IsRenameFlatMap(const NNodes::TCoFlatMapBase& node, TExprNode::TPtr& structNode) {
+
auto lambda = node.Lambda();
if (!IsJustOrSingleAsList(lambda.Body().Ref())) {
return false;
}
structNode = lambda.Body().Ref().Child(0);
- if (!structNode->IsCallable("AsStruct")) {
+
+ auto asStruct = TExprBase(structNode);
+ if (!asStruct.Maybe<TCoAsStruct>()) {
+ return false;
+ }
+
+ for (auto child : asStruct.Cast<TCoAsStruct>()) {
+
+ if (!child.Item(1).Maybe<TCoMember>()) {
+ return false;
+ }
+
+ auto member = child.Item(1).Cast<TCoMember>();
+ if(member.Struct().Raw() != lambda.Args().Arg(0).Raw()) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+// Check if the flat map is a simple rename flat map and compute the mapping from new names to original ones
+bool IsRenameFlatMapWithMapping(const NNodes::TCoFlatMapBase& node, TExprNode::TPtr& structNode,
+ THashMap<TString, TString> & mapping) {
+
+ auto lambda = node.Lambda();
+ if (!IsJustOrSingleAsList(lambda.Body().Ref())) {
+ return false;
+ }
+
+ structNode = lambda.Body().Ref().Child(0);
+
+ auto asStruct = TExprBase(structNode);
+ if (!asStruct.Maybe<TCoAsStruct>()) {
return false;
}
- for (auto& child : structNode->Children()) {
- auto item = child->Child(1);
- if (!item->IsCallable("Member") || item->Child(0) != lambda.Args().Arg(0).Raw()) {
+ for (auto child : asStruct.Cast<TCoAsStruct>()) {
+
+ if (!child.Item(1).Maybe<TCoMember>()) {
+ return false;
+ }
+
+ auto member = child.Item(1).Cast<TCoMember>();
+ if(member.Struct().Raw() != lambda.Args().Arg(0).Raw()) {
return false;
}
+
+ auto to = child.Item(0).Cast<TCoAtom>();
+ auto from = member.Name();
+
+ if (to != from){
+ mapping[to.StringValue()] = from.StringValue();
+ }
}
return true;
diff --git a/ydb/library/yql/core/yql_opt_utils.h b/ydb/library/yql/core/yql_opt_utils.h
index 6c0f610777..75253590cd 100644
--- a/ydb/library/yql/core/yql_opt_utils.h
+++ b/ydb/library/yql/core/yql_opt_utils.h
@@ -19,6 +19,7 @@ bool IsPredicateFlatMap(const TExprNode& node);
bool IsFilterFlatMap(const NNodes::TCoLambda& lambda);
bool IsListReorder(const TExprNode& node);
bool IsRenameFlatMap(const NNodes::TCoFlatMapBase& node, TExprNode::TPtr& structNode);
+bool IsRenameFlatMapWithMapping(const NNodes::TCoFlatMapBase& node, TExprNode::TPtr& structNode, THashMap<TString, TString>& renameMap);
bool IsPassthroughFlatMap(const NNodes::TCoFlatMapBase& flatmap, TMaybe<THashSet<TStringBuf>>* passthroughFields, bool analyzeJustMember = false);
bool IsPassthroughLambda(const NNodes::TCoLambda& lambda, TMaybe<THashSet<TStringBuf>>* passthroughFields, bool analyzeJustMember = false);
bool IsTablePropsDependent(const TExprNode& node);
diff --git a/ydb/library/yql/core/yql_type_annotation.cpp b/ydb/library/yql/core/yql_type_annotation.cpp
index c1093b0986..f1aab34bfb 100644
--- a/ydb/library/yql/core/yql_type_annotation.cpp
+++ b/ydb/library/yql/core/yql_type_annotation.cpp
@@ -40,6 +40,9 @@ bool TTypeAnnotationContext::DoInitialize(TExprContext& ctx) {
Y_ENSURE(UserDataStorage);
UserDataStorage->FillUserDataUrls();
+ // Disable "in progress" constraints
+ DisableConstraintCheck.emplace(TUniqueConstraintNode::Name());
+ DisableConstraintCheck.emplace(TDistinctConstraintNode::Name());
return true;
}
diff --git a/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-x86_64.txt
index d2e223792a..e6abdb1599 100644
--- a/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-x86_64.txt
+++ b/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-x86_64.txt
@@ -25,6 +25,7 @@ target_link_libraries(dq-actors-compute PUBLIC
yql-dq-tasks
minikql-comp_nodes-llvm
yql-public-issue
+ core-quoter-public
)
target_sources(dq-actors-compute PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp
diff --git a/ydb/library/yql/dq/actors/compute/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/actors/compute/CMakeLists.linux-aarch64.txt
index 071adef32c..3b824ab674 100644
--- a/ydb/library/yql/dq/actors/compute/CMakeLists.linux-aarch64.txt
+++ b/ydb/library/yql/dq/actors/compute/CMakeLists.linux-aarch64.txt
@@ -26,6 +26,7 @@ target_link_libraries(dq-actors-compute PUBLIC
yql-dq-tasks
minikql-comp_nodes-llvm
yql-public-issue
+ core-quoter-public
)
target_sources(dq-actors-compute PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp
diff --git a/ydb/library/yql/dq/actors/compute/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/actors/compute/CMakeLists.linux-x86_64.txt
index 071adef32c..3b824ab674 100644
--- a/ydb/library/yql/dq/actors/compute/CMakeLists.linux-x86_64.txt
+++ b/ydb/library/yql/dq/actors/compute/CMakeLists.linux-x86_64.txt
@@ -26,6 +26,7 @@ target_link_libraries(dq-actors-compute PUBLIC
yql-dq-tasks
minikql-comp_nodes-llvm
yql-public-issue
+ core-quoter-public
)
target_sources(dq-actors-compute PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp
diff --git a/ydb/library/yql/dq/actors/compute/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/actors/compute/CMakeLists.windows-x86_64.txt
index d2e223792a..e6abdb1599 100644
--- a/ydb/library/yql/dq/actors/compute/CMakeLists.windows-x86_64.txt
+++ b/ydb/library/yql/dq/actors/compute/CMakeLists.windows-x86_64.txt
@@ -25,6 +25,7 @@ target_link_libraries(dq-actors-compute PUBLIC
yql-dq-tasks
minikql-comp_nodes-llvm
yql-public-issue
+ core-quoter-public
)
target_sources(dq-actors-compute PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp
diff --git a/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp b/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp
index 6e86c10b8a..53494e31c3 100644
--- a/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp
+++ b/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp
@@ -5,7 +5,7 @@
#include <ydb/library/yql/dq/common/dq_common.h>
-#include <ydb/core/base/quoter.h>
+#include <ydb/core/quoter/public/quoter.h>
namespace NYql {
namespace NDq {
diff --git a/ydb/library/yql/dq/actors/compute/dq_compute_actor.h b/ydb/library/yql/dq/actors/compute/dq_compute_actor.h
index aef807741b..cafb8f18be 100644
--- a/ydb/library/yql/dq/actors/compute/dq_compute_actor.h
+++ b/ydb/library/yql/dq/actors/compute/dq_compute_actor.h
@@ -232,15 +232,6 @@ struct TComputeRuntimeSettings {
TMaybe<NDqProto::TRlPath> RlPath;
};
-struct IMemoryQuotaManager {
- using TPtr = std::shared_ptr<IMemoryQuotaManager>;
- using TWeakPtr = std::weak_ptr<IMemoryQuotaManager>;
- virtual ~IMemoryQuotaManager() = default;
- virtual bool AllocateQuota(ui64 memorySize) = 0;
- virtual void FreeQuota(ui64 memorySize) = 0;
- virtual ui64 GetCurrentQuota() const = 0;
-};
-
struct TGuaranteeQuotaManager : public IMemoryQuotaManager {
TGuaranteeQuotaManager(ui64 limit, ui64 guarantee, ui64 step = 1_MB, ui64 quota = 0)
@@ -290,10 +281,28 @@ struct TGuaranteeQuotaManager : public IMemoryQuotaManager {
virtual void FreeExtraQuota(ui64) {
}
- ui64 Limit;
- ui64 Guarantee;
- ui64 Step;
- ui64 Quota;
+ ui64 Limit; // current consumption (Quota + leftover from allocation chunk)
+ ui64 Guarantee; // do not free memory below this value even if Quota == 0
+ ui64 Step; // allocation chunk size
+ ui64 Quota; // current value
+};
+
+struct TChainedQuotaManager : public TGuaranteeQuotaManager {
+
+ TChainedQuotaManager(IMemoryQuotaManager::TPtr extraQuotaManager, ui64 limit, ui64 guarantee, ui64 step = 1_MB, ui64 quota = 0)
+ : TGuaranteeQuotaManager(limit, guarantee, step, quota)
+ , ExtraQuotaManager(extraQuotaManager) {
+ }
+
+ bool AllocateExtraQuota(ui64 memorySize) override {
+ return ExtraQuotaManager->AllocateQuota(memorySize);
+ }
+
+ void FreeExtraQuota(ui64 memorySize) override {
+ ExtraQuotaManager->FreeQuota(memorySize);
+ }
+
+ IMemoryQuotaManager::TPtr ExtraQuotaManager;
};
struct TComputeMemoryLimits {
diff --git a/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io.h b/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io.h
index 0c496218fb..16b149576b 100644
--- a/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io.h
+++ b/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io.h
@@ -31,6 +31,15 @@ class TProgramBuilder;
namespace NYql::NDq {
+struct IMemoryQuotaManager {
+ using TPtr = std::shared_ptr<IMemoryQuotaManager>;
+ using TWeakPtr = std::weak_ptr<IMemoryQuotaManager>;
+ virtual ~IMemoryQuotaManager() = default;
+ virtual bool AllocateQuota(ui64 memorySize) = 0;
+ virtual void FreeQuota(ui64 memorySize) = 0;
+ virtual ui64 GetCurrentQuota() const = 0;
+};
+
// Source/transform.
// Must be IActor.
//
@@ -181,6 +190,7 @@ public:
const NKikimr::NMiniKQL::THolderFactory& HolderFactory;
::NMonitoring::TDynamicCounterPtr TaskCounters;
std::shared_ptr<NKikimr::NMiniKQL::TScopedAlloc> Alloc;
+ IMemoryQuotaManager::TPtr MemoryQuotaManager;
};
struct TSinkArguments {
diff --git a/ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.cpp b/ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.cpp
index fe2f05af3c..48e591d875 100644
--- a/ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.cpp
+++ b/ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.cpp
@@ -420,7 +420,7 @@ void TDqComputeActorChannels::HandleWork(TEvInterconnect::TEvNodeDisconnected::T
}
}
-void TDqComputeActorChannels::HandleUndeliveredEvChannelData(ui64 channelId, TEvents::TEvUndelivered::EReason reason) {
+void TDqComputeActorChannels::HandleUndeliveredEvChannelData(ui64 channelId, NActors::TEvents::TEvUndelivered::EReason reason) {
TOutputChannelState& outputChannel = OutCh(channelId);
if (outputChannel.Finished && outputChannel.EarlyFinish && !SupportCheckpoints) {
@@ -449,7 +449,7 @@ void TDqComputeActorChannels::HandleUndeliveredEvChannelData(ui64 channelId, TEv
ScheduleRetryForChannel<TOutputChannelState, TEvDqCompute::TEvRetryChannelData>(outputChannel, Now());
}
-void TDqComputeActorChannels::HandleUndeliveredEvChannelDataAck(ui64 channelId, TEvents::TEvUndelivered::EReason reason) {
+void TDqComputeActorChannels::HandleUndeliveredEvChannelDataAck(ui64 channelId, NActors::TEvents::TEvUndelivered::EReason reason) {
TInputChannelState& inputChannel = InCh(channelId);
inputChannel.PollRequest.reset();
diff --git a/ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.h b/ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.h
index 853397cc4b..cade7d4fb7 100644
--- a/ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.h
+++ b/ydb/library/yql/dq/actors/compute/dq_compute_actor_channels.h
@@ -4,9 +4,9 @@
#include <library/cpp/actors/core/actor.h>
#include <library/cpp/actors/interconnect/interconnect.h>
-#include <ydb/core/base/events.h>
#include <ydb/library/yql/dq/actors/dq.h>
+#include <library/cpp/actors/core/interconnect.h>
namespace NYql::NDq {
@@ -54,16 +54,16 @@ private:
void HandleWork(TEvDqCompute::TEvChannelDataAck::TPtr& ev);
void HandleWork(TEvDqCompute::TEvRetryChannelData::TPtr& ev);
void HandleWork(TEvDqCompute::TEvRetryChannelDataAck::TPtr& ev);
- void HandleWork(NKikimr::TEvents::TEvUndelivered::TPtr& ev);
- void HandleWork(NKikimr::TEvInterconnect::TEvNodeDisconnected::TPtr& ev);
- void HandleUndeliveredEvChannelData(ui64 channelId, NKikimr::TEvents::TEvUndelivered::EReason reason);
- void HandleUndeliveredEvChannelDataAck(ui64 channelId, NKikimr::TEvents::TEvUndelivered::EReason reason);
+ void HandleWork(NActors::TEvents::TEvUndelivered::TPtr& ev);
+ void HandleWork(NActors::TEvInterconnect::TEvNodeDisconnected::TPtr& ev);
+ void HandleUndeliveredEvChannelData(ui64 channelId, NActors::TEvents::TEvUndelivered::EReason reason);
+ void HandleUndeliveredEvChannelDataAck(ui64 channelId, NActors::TEvents::TEvUndelivered::EReason reason);
template <typename TChannelState, typename TRetryEvent>
bool ScheduleRetryForChannel(TChannelState& channel, TInstant now);
private:
STATEFN(DeadState);
- void HandlePoison(NKikimr::TEvents::TEvPoison::TPtr&);
+ void HandlePoison(NActors::TEvents::TEvPoison::TPtr&);
private:
TInstant Now() const;
diff --git a/ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h b/ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h
index 7b6eb24acd..9469d38eee 100644
--- a/ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h
+++ b/ydb/library/yql/dq/actors/compute/dq_compute_actor_impl.h
@@ -10,7 +10,7 @@
#include "dq_compute_memory_quota.h"
#include <ydb/library/ydb_issue/issue_helpers.h>
-#include <ydb/core/base/wilson.h>
+#include <ydb/library/wilson_ids/wilson.h>
#include <ydb/library/services/services.pb.h>
#include <ydb/library/yql/providers/dq/counters/counters.h>
@@ -1530,7 +1530,8 @@ protected:
.TypeEnv = typeEnv,
.HolderFactory = holderFactory,
.TaskCounters = TaskCounters,
- .Alloc = TaskRunner ? TaskRunner->GetAllocatorPtr() : nullptr
+ .Alloc = TaskRunner ? TaskRunner->GetAllocatorPtr() : nullptr,
+ .MemoryQuotaManager = MemoryLimits.MemoryQuotaManager
});
} catch (const std::exception& ex) {
throw yexception() << "Failed to create source " << inputDesc.GetSource().GetType() << ": " << ex.what();
diff --git a/ydb/library/yql/dq/actors/compute/ya.make b/ydb/library/yql/dq/actors/compute/ya.make
index 41f42b8607..34e9e08bfb 100644
--- a/ydb/library/yql/dq/actors/compute/ya.make
+++ b/ydb/library/yql/dq/actors/compute/ya.make
@@ -24,6 +24,7 @@ PEERDIR(
ydb/library/yql/dq/tasks
ydb/library/yql/minikql/comp_nodes/llvm
ydb/library/yql/public/issue
+ ydb/core/quoter/public
)
YQL_LAST_ABI_VERSION()
diff --git a/ydb/library/yql/dq/integration/yql_dq_integration.h b/ydb/library/yql/dq/integration/yql_dq_integration.h
index 860b69b4c3..b528faaa82 100644
--- a/ydb/library/yql/dq/integration/yql_dq_integration.h
+++ b/ydb/library/yql/dq/integration/yql_dq_integration.h
@@ -44,7 +44,13 @@ public:
virtual bool CanRead(const TExprNode& read, TExprContext& ctx, bool skipIssues = true) = 0;
virtual TMaybe<ui64> EstimateReadSize(ui64 dataSizePerJob, ui32 maxTasksPerStage, const TExprNode& node, TExprContext& ctx) = 0;
virtual TExprNode::TPtr WrapRead(const TDqSettings& config, const TExprNode::TPtr& read, TExprContext& ctx) = 0;
- virtual TMaybe<bool> CanWrite(const TDqSettings& config, const TExprNode& write, TExprContext& ctx) = 0;
+
+ // Nothing if callable is not for writing,
+ // false if callable is for writing and there are some errors (they are added to ctx),
+ // true if callable is for writing and no issues occured.
+ virtual TMaybe<bool> CanWrite(const TExprNode& write, TExprContext& ctx) = 0;
+
+ virtual TExprNode::TPtr WrapWrite(const TExprNode::TPtr& write, TExprContext& ctx) = 0;
virtual void RegisterMkqlCompiler(NCommon::TMkqlCallableCompilerBase& compiler) = 0;
virtual bool CanFallback() = 0;
virtual void FillSourceSettings(const TExprNode& node, ::google::protobuf::Any& settings, TString& sourceType) = 0;
diff --git a/ydb/library/yql/dq/opt/dq_opt_build.cpp b/ydb/library/yql/dq/opt/dq_opt_build.cpp
index a7b00b7c70..9caff49017 100644
--- a/ydb/library/yql/dq/opt/dq_opt_build.cpp
+++ b/ydb/library/yql/dq/opt/dq_opt_build.cpp
@@ -116,7 +116,7 @@ void MakeConsumerReplaces(
TNodeOnNodeOwnedMap argsMap;
CollectArgsReplaces(dqStage, newArgs, argsMap, ctx);
auto newStage = Build<TDqStage>(ctx, dqStage.Pos())
- .InitFrom(dqStage)
+ .InitFrom(dqStage)
.Program()
.Args(newArgs)
.Body<TCoFlatMap>()
@@ -432,7 +432,18 @@ const TStructExprType* GetStageOutputItemType(const TDqPhyStage& stage) {
return stageType->GetItems()[0]->Cast<TListExprType>()->GetItemType()->Cast<TStructExprType>();
}
-TDqPhyStage RebuildStageInputsAsWide(const TDqPhyStage& stage, TExprContext& ctx) {
+bool IsCompatibleWithBlocks(TPositionHandle pos, const TStructExprType& type, TExprContext& ctx, TTypeAnnotationContext& typesCtx) {
+ TVector<const TTypeAnnotationNode*> types;
+ for (auto& item : type.GetItems()) {
+ types.emplace_back(item->GetItemType());
+ }
+
+ auto resolveStatus = typesCtx.ArrowResolver->AreTypesSupported(ctx.GetPosition(pos), types, ctx);
+ YQL_ENSURE(resolveStatus != IArrowResolver::ERROR);
+ return resolveStatus == IArrowResolver::OK;
+}
+
+TDqPhyStage RebuildStageInputsAsWide(const TDqPhyStage& stage, bool useChannelBlocks, TExprContext& ctx, TTypeAnnotationContext& typesCtx) {
TVector<TCoArgument> newArgs;
newArgs.reserve(stage.Inputs().Size());
TNodeOnNodeOwnedMap argsMap;
@@ -451,14 +462,26 @@ TDqPhyStage RebuildStageInputsAsWide(const TDqPhyStage& stage, TExprContext& ctx
if (maybeConn && CanRebuildForWideChannelOutput(maybeConn.Cast().Output())) {
needRebuild = true;
auto itemType = arg.Ref().GetTypeAnn()->Cast<TStreamExprType>()->GetItemType()->Cast<TStructExprType>();
-
+ TExprNode::TPtr newArgNode = newArg.Ptr();
+ if (useChannelBlocks && IsCompatibleWithBlocks(arg.Pos(), *itemType, ctx, typesCtx)) {
+ // input will actually be wide block stream - convert it to wide stream first
+ newArgNode = ctx.Builder(arg.Pos())
+ .Callable("FromFlow")
+ .Callable(0, "WideFromBlocks")
+ .Callable(0, "ToFlow")
+ .Add(0, newArg.Ptr())
+ .Seal()
+ .Seal()
+ .Seal()
+ .Build();
+ }
// input will actually be wide stream - need to convert it back to stream
auto argReplace = ctx.Builder(arg.Pos())
.Callable("FromFlow")
.Callable(0, "NarrowMap")
.Callable(0, "ToFlow")
- .Add(0, newArg.Ptr())
- .Seal()
+ .Add(0, newArgNode)
+ .Seal()
.Lambda(1)
.Params("fields", itemType->GetSize())
.Callable("AsStruct")
@@ -498,7 +521,9 @@ TDqPhyStage RebuildStageInputsAsWide(const TDqPhyStage& stage, TExprContext& ctx
.Done();
}
-TDqPhyStage RebuildStageOutputAsWide(const TDqPhyStage& stage, const TStructExprType& outputItemType, TExprContext& ctx) {
+TDqPhyStage RebuildStageOutputAsWide(const TDqPhyStage& stage, const TStructExprType& outputItemType, bool useChannelBlocks,
+ TExprContext& ctx, TTypeAnnotationContext& typesCtx)
+{
// convert stream to wide stream
auto resultStream = ctx.Builder(stage.Program().Body().Pos())
.Callable("FromFlow")
@@ -523,6 +548,19 @@ TDqPhyStage RebuildStageOutputAsWide(const TDqPhyStage& stage, const TStructExpr
.Seal()
.Build();
+ if (useChannelBlocks && IsCompatibleWithBlocks(resultStream->Pos(), outputItemType, ctx, typesCtx)) {
+ // convert wide stream to wide block stream
+ resultStream = ctx.Builder(resultStream->Pos())
+ .Callable("FromFlow")
+ .Callable(0, "WideToBlocks")
+ .Callable(0, "ToFlow")
+ .Add(0, resultStream)
+ .Seal()
+ .Seal()
+ .Seal()
+ .Build();
+ }
+
return Build<TDqPhyStage>(ctx, stage.Pos())
.InitFrom(stage)
.Program()
@@ -530,21 +568,25 @@ TDqPhyStage RebuildStageOutputAsWide(const TDqPhyStage& stage, const TStructExpr
.Body(resultStream)
.Build()
.Settings(TDqStageSettings::New(stage).SetWideChannels(outputItemType).BuildNode(ctx, stage.Pos()))
+ .Outputs(stage.Outputs())
.Done();
}
-TDqPhyStage RebuildStageAsWide(const TDqPhyStage& stage, TExprContext& ctx) {
+TDqPhyStage RebuildStageAsWide(const TDqPhyStage& stage, bool useChannelBlocks, TExprContext& ctx, TTypeAnnotationContext& typesCtx) {
const TStructExprType* outputItemType = GetStageOutputItemType(stage);
- return RebuildStageOutputAsWide(RebuildStageInputsAsWide(stage, ctx), *outputItemType, ctx);
+ return RebuildStageOutputAsWide(RebuildStageInputsAsWide(stage, useChannelBlocks, ctx, typesCtx),
+ *outputItemType, useChannelBlocks, ctx, typesCtx);
}
-IGraphTransformer::TStatus DqEnableWideChannels(TExprNode::TPtr input, TExprNode::TPtr& output,
- TExprContext& ctx)
+IGraphTransformer::TStatus DqEnableWideChannels(EChannelMode mode, TExprNode::TPtr input, TExprNode::TPtr& output,
+ TExprContext& ctx, TTypeAnnotationContext& typesCtx)
{
output = input;
TNodeOnNodeOwnedMap replaces;
TNodeSet processedStages;
- VisitExpr(input, [&replaces, &processedStages, &ctx](const TExprNode::TPtr& node) {
+ YQL_ENSURE(mode == CHANNEL_WIDE || mode == CHANNEL_WIDE_BLOCK);
+ const bool useChannelBlocks = mode == CHANNEL_WIDE_BLOCK;
+ VisitExpr(input, [&](const TExprNode::TPtr& node) {
if (node->IsLambda()) {
return false;
}
@@ -554,7 +596,7 @@ IGraphTransformer::TStatus DqEnableWideChannels(TExprNode::TPtr input, TExprNode
if (maybeConn && CanRebuildForWideChannelOutput(maybeConn.Cast())) {
auto conn = maybeConn.Cast();
processedStages.insert(conn.Output().Stage().Raw());
- auto newStage = RebuildStageAsWide(conn.Output().Stage().Cast<TDqPhyStage>(), ctx);
+ auto newStage = RebuildStageAsWide(conn.Output().Stage().Cast<TDqPhyStage>(), useChannelBlocks, ctx, typesCtx);
auto outputItemType = GetStageOutputItemType(conn.Output().Stage().Cast<TDqPhyStage>());
if (conn.Maybe<TDqCnHashShuffle>()) {
@@ -589,7 +631,7 @@ IGraphTransformer::TStatus DqEnableWideChannels(TExprNode::TPtr input, TExprNode
.Stage(newStage)
.Build()
.SortColumns(builder.Build().Value())
- .Done().Ptr();
+ .Done().Ptr();
} else {
auto newOutput = Build<TDqOutput>(ctx, conn.Output().Pos())
.InitFrom(conn.Output())
@@ -601,7 +643,7 @@ IGraphTransformer::TStatus DqEnableWideChannels(TExprNode::TPtr input, TExprNode
auto stage = expr.Maybe<TDqPhyStage>().Cast();
if (!processedStages.contains(stage.Raw())) {
processedStages.insert(stage.Raw());
- auto newStage = RebuildStageInputsAsWide(stage, ctx);
+ auto newStage = RebuildStageInputsAsWide(stage, useChannelBlocks, ctx, typesCtx);
if (newStage.Raw() != stage.Raw()) {
replaces[stage.Raw()] = newStage.Ptr();
}
@@ -625,7 +667,7 @@ IGraphTransformer::TStatus DqEnableWideChannels(TExprNode::TPtr input, TExprNode
} // namespace
-TAutoPtr<IGraphTransformer> CreateDqBuildPhyStagesTransformer(bool allowDependantConsumers, bool useWideChannels) {
+TAutoPtr<IGraphTransformer> CreateDqBuildPhyStagesTransformer(bool allowDependantConsumers, TTypeAnnotationContext& typesCtx, EChannelMode mode) {
TVector<TTransformStage> transformers;
transformers.push_back(TTransformStage(CreateFunctorTransformer(
@@ -645,10 +687,10 @@ TAutoPtr<IGraphTransformer> CreateDqBuildPhyStagesTransformer(bool allowDependan
"BuildPhysicalStages",
TIssuesIds::DEFAULT_ERROR));
- if (useWideChannels) {
+ if (mode != CHANNEL_SCALAR) {
transformers.push_back(TTransformStage(CreateFunctorTransformer(
- [](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) {
- return DqEnableWideChannels(input, output, ctx);
+ [mode, &typesCtx](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) {
+ return DqEnableWideChannels(mode, input, output, ctx, typesCtx);
}),
"EnableWideChannels",
TIssuesIds::DEFAULT_ERROR));
diff --git a/ydb/library/yql/dq/opt/dq_opt_build.h b/ydb/library/yql/dq/opt/dq_opt_build.h
index 3853d8a3be..6cd9911630 100644
--- a/ydb/library/yql/dq/opt/dq_opt_build.h
+++ b/ydb/library/yql/dq/opt/dq_opt_build.h
@@ -1,10 +1,17 @@
#pragma once
#include <ydb/library/yql/core/yql_graph_transformer.h>
+#include <ydb/library/yql/core/yql_type_annotation.h>
#include <ydb/library/yql/dq/common/dq_common.h>
namespace NYql::NDq {
-TAutoPtr<IGraphTransformer> CreateDqBuildPhyStagesTransformer(bool allowDependantConsumers, bool useWideChannels);
+enum EChannelMode {
+ CHANNEL_SCALAR,
+ CHANNEL_WIDE,
+ CHANNEL_WIDE_BLOCK,
+};
+
+TAutoPtr<IGraphTransformer> CreateDqBuildPhyStagesTransformer(bool allowDependantConsumers, TTypeAnnotationContext& typesCtx, EChannelMode mode);
} // namespace NYql::NDq
diff --git a/ydb/library/yql/dq/runtime/dq_output_channel.cpp b/ydb/library/yql/dq/runtime/dq_output_channel.cpp
index 0774423242..a0a216e77f 100644
--- a/ydb/library/yql/dq/runtime/dq_output_channel.cpp
+++ b/ydb/library/yql/dq/runtime/dq_output_channel.cpp
@@ -51,7 +51,8 @@ template<bool FastPack>
class TDqOutputChannel : public IDqOutputChannel {
public:
TDqOutputChannel(ui64 channelId, NMiniKQL::TType* outputType,
- const NMiniKQL::THolderFactory& holderFactory, const TDqOutputChannelSettings& settings, const TLogFunc& logFunc)
+ const NMiniKQL::THolderFactory& holderFactory, const TDqOutputChannelSettings& settings, const TLogFunc& logFunc,
+ NDqProto::EDataTransportVersion transportVersion)
: ChannelId(channelId)
, OutputType(outputType)
, BasicStats(ChannelId)
@@ -60,7 +61,7 @@ public:
, Width(OutputType->IsMulti() ? static_cast<NMiniKQL::TMultiType*>(OutputType)->GetElementsCount() : 1u)
, Storage(settings.ChannelStorage)
, HolderFactory(holderFactory)
- , TransportVersion(settings.TransportVersion)
+ , TransportVersion(transportVersion)
, MaxStoredBytes(settings.MaxStoredBytes)
, MaxChunkBytes(settings.MaxChunkBytes)
, ChunkSizeLimit(settings.ChunkSizeLimit)
@@ -382,16 +383,19 @@ IDqOutputChannel::TPtr CreateDqOutputChannel(ui64 channelId, NKikimr::NMiniKQL::
const NKikimr::NMiniKQL::THolderFactory& holderFactory,
const TDqOutputChannelSettings& settings, const TLogFunc& logFunc)
{
- if (settings.TransportVersion == NDqProto::EDataTransportVersion::DATA_TRANSPORT_UV_PICKLE_1_0 ||
- settings.TransportVersion == NDqProto::EDataTransportVersion::DATA_TRANSPORT_OOB_PICKLE_1_0 ||
- settings.TransportVersion == NDqProto::EDataTransportVersion::DATA_TRANSPORT_VERSION_UNSPECIFIED)
- {
- return new TDqOutputChannel<false>(channelId, outputType, holderFactory, settings, logFunc);
- } else {
- YQL_ENSURE(settings.TransportVersion == NDqProto::EDataTransportVersion::DATA_TRANSPORT_UV_FAST_PICKLE_1_0 ||
- settings.TransportVersion == NDqProto::EDataTransportVersion::DATA_TRANSPORT_OOB_FAST_PICKLE_1_0,
- "Unsupported transport version " << (ui32)settings.TransportVersion);
- return new TDqOutputChannel<true>(channelId, outputType, holderFactory, settings, logFunc);
+ auto transportVersion = settings.TransportVersion;
+ switch(transportVersion) {
+ case NDqProto::EDataTransportVersion::DATA_TRANSPORT_VERSION_UNSPECIFIED:
+ transportVersion = NDqProto::EDataTransportVersion::DATA_TRANSPORT_UV_PICKLE_1_0;
+ [[fallthrough]];
+ case NDqProto::EDataTransportVersion::DATA_TRANSPORT_UV_PICKLE_1_0:
+ case NDqProto::EDataTransportVersion::DATA_TRANSPORT_OOB_PICKLE_1_0:
+ return new TDqOutputChannel<false>(channelId, outputType, holderFactory, settings, logFunc, transportVersion);
+ case NDqProto::EDataTransportVersion::DATA_TRANSPORT_UV_FAST_PICKLE_1_0:
+ case NDqProto::EDataTransportVersion::DATA_TRANSPORT_OOB_FAST_PICKLE_1_0:
+ return new TDqOutputChannel<true>(channelId, outputType, holderFactory, settings, logFunc, transportVersion);
+ default:
+ YQL_ENSURE(false, "Unsupported transport version " << (ui32)transportVersion);
}
}
diff --git a/ydb/library/yql/dq/type_ann/dq_type_ann.cpp b/ydb/library/yql/dq/type_ann/dq_type_ann.cpp
index 83de70ed7d..9955b5ee14 100644
--- a/ydb/library/yql/dq/type_ann/dq_type_ann.cpp
+++ b/ydb/library/yql/dq/type_ann/dq_type_ann.cpp
@@ -61,13 +61,20 @@ const TTypeAnnotationNode* GetColumnType(const TDqConnection& node, const TStruc
TStringBuilder() << "Expecting integer as column name, but got '" << name << "'"));
return nullptr;
}
- if (idx >= multiType->GetSize()) {
+ const bool isBlock = AnyOf(multiType->GetItems(), [](const TTypeAnnotationNode* item) { return item->IsBlockOrScalar(); });
+ const ui32 width = isBlock ? (multiType->GetSize() - 1) : multiType->GetSize();
+ if (idx >= width) {
ctx.AddError(TIssue(ctx.GetPosition(pos),
- TStringBuilder() << "Column index too big: " << name << " >= " << multiType->GetSize()));
+ TStringBuilder() << "Column index too big: " << name << " >= " << width));
return nullptr;
}
- return multiType->GetItems()[idx];
+ auto itemType = multiType->GetItems()[idx];
+ if (isBlock) {
+ itemType = itemType->IsBlock() ? itemType->Cast<TBlockExprType>()->GetItemType() :
+ itemType->Cast<TScalarExprType>()->GetItemType();
+ }
+ return itemType;
}
auto result = structType.FindItemType(name);
@@ -233,17 +240,25 @@ TStatus AnnotateStage(const TExprNode::TPtr& stage, TExprContext& ctx) {
}
YQL_ENSURE(programResultTypesTuple.size() == 1);
auto multiType = programLambda->GetTypeAnn()->Cast<TStreamExprType>()->GetItemType()->Cast<TMultiExprType>();
- if (multiType->GetSize() != outputNarrowType->GetSize()) {
+ const bool isBlock = AnyOf(multiType->GetItems(), [](const TTypeAnnotationNode* item) { return item->IsBlockOrScalar(); });
+ TTypeAnnotationNode::TListType blockItemTypes;
+ if (isBlock && !EnsureWideStreamBlockType(*programLambda, blockItemTypes, ctx)) {
+ return TStatus::Error;
+ }
+
+ const ui32 width = isBlock ? (blockItemTypes.size() - 1) : multiType->GetSize();
+ if (width != outputNarrowType->GetSize()) {
ctx.AddError(TIssue(ctx.GetPosition(programLambda->Pos()),TStringBuilder() << "Wide/narrow types has different number of items: " <<
- multiType->GetSize() << " vs " << outputNarrowType->GetSize()));
+ width << " vs " << outputNarrowType->GetSize()));
return TStatus::Error;
}
for (size_t i = 0; i < outputNarrowType->GetSize(); ++i) {
auto structItem = outputNarrowType->GetItems()[i];
- if (!IsSameAnnotation(*structItem->GetItemType(), *(multiType->GetItems()[i]))) {
+ auto wideItem = isBlock ? blockItemTypes[i] : multiType->GetItems()[i];
+ if (!IsSameAnnotation(*structItem->GetItemType(), *wideItem)) {
ctx.AddError(TIssue(ctx.GetPosition(programLambda->Pos()),TStringBuilder() << "Wide/narrow types mismatch for column '" <<
- structItem->GetName() << "' : " << *(multiType->GetItems()[i]) << " vs " << *structItem->GetItemType()));
+ structItem->GetName() << "' : " << *wideItem << " vs " << *structItem->GetItemType()));
return TStatus::Error;
}
}
diff --git a/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp b/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp
index b6d5053c6f..db4a8b3c60 100644
--- a/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp
+++ b/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp
@@ -58,7 +58,7 @@ public:
const auto valTypePtr = PointerType::getUnqual(valType);
const bool useMulAddDiv = Divider > 1;
- const auto name = useMulAddDiv ? "DecimalMul" : "DecimalMulAndDivNormalDivider";
+ const auto name = useMulAddDiv ? "DecimalMulAndDivNormalDivider" : "DecimalMul";
const auto fnType = useMulAddDiv ?
NYql::NCodegen::ETarget::Windows != ctx.Codegen->GetEffectiveTarget() ?
FunctionType::get(valType, { valType, valType, valType }, false):
diff --git a/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp b/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp
index 369907e713..ae9df06ee4 100644
--- a/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp
+++ b/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp
@@ -468,6 +468,8 @@ public:
bool encoded;
GetDictionaryKeyTypes(keyType, KeyTypes, IsTuple, encoded, UseIHash);
Y_VERIFY(!encoded, "TODO");
+ Equate = UseIHash ? MakeEquateImpl(KeyType) : nullptr;
+ Hash = UseIHash ? MakeHashImpl(KeyType) : nullptr;
}
NUdf::TUnboxedValuePod CreateStream(TComputationContext& ctx) const {
@@ -491,8 +493,8 @@ public:
return ctx.HolderFactory.Create<TStreamValue>(Stream->GetValue(ctx), this, (ui64)hopTime,
(ui64)intervalHopCount, (ui64)delayHopCount,
dataWatermarks, watermarkMode, ctx,
- TValueHasher(KeyTypes, IsTuple, UseIHash ? MakeHashImpl(KeyType) : nullptr),
- TValueEqual(KeyTypes, IsTuple, UseIHash ? MakeEquateImpl(KeyType) : nullptr),
+ TValueHasher(KeyTypes, IsTuple, Hash.Get()),
+ TValueEqual(KeyTypes, IsTuple, Equate.Get()),
Watermark);
}
@@ -570,6 +572,9 @@ private:
bool IsTuple;
bool UseIHash;
TWatermark& Watermark;
+
+ NUdf::IEquate::TPtr Equate;
+ NUdf::IHash::TPtr Hash;
};
}
diff --git a/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp b/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp
index 96d6bd17f1..700391bf02 100644
--- a/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp
+++ b/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp
@@ -32,8 +32,8 @@ class THashedMultiMapAccumulator {
const TKeyTypes& KeyTypes;
bool IsTuple;
std::shared_ptr<TValuePacker> Packer;
- NUdf::IHash::TPtr Hash;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::IHash* Hash;
+ const NUdf::IEquate* Equate;
TMapType Map;
@@ -41,7 +41,7 @@ public:
static constexpr bool IsSorted = false;
THashedMultiMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), KeyType(keyType), KeyTypes(keyTypes), IsTuple(isTuple), Hash(hash), Equate(equate)
, Map(0, TValueHasher(KeyTypes, isTuple, hash), TValueEqual(KeyTypes, isTuple, equate))
{
@@ -85,8 +85,8 @@ class THashedMapAccumulator {
const TKeyTypes& KeyTypes;
const bool IsTuple;
std::shared_ptr<TValuePacker> Packer;
- NUdf::IHash::TPtr Hash;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::IHash* Hash;
+ const NUdf::IEquate* Equate;
TMapType Map;
@@ -94,7 +94,7 @@ public:
static constexpr bool IsSorted = false;
THashedMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), KeyType(keyType), KeyTypes(keyTypes), IsTuple(isTuple), Hash(hash), Equate(equate)
, Map(0, TValueHasher(KeyTypes, isTuple, hash), TValueEqual(KeyTypes, isTuple, equate))
{
@@ -139,7 +139,7 @@ public:
static constexpr bool IsSorted = false;
THashedSingleFixedMultiMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), KeyTypes(keyTypes), Map(0, TMyHash<T>(), TMyEquals<T>()) {
Y_UNUSED(keyType);
Y_UNUSED(payloadType);
@@ -187,7 +187,7 @@ public:
static constexpr bool IsSorted = false;
THashedSingleFixedMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), Map(0, TMyHash<T>(), TMyEquals<T>())
{
Y_UNUSED(keyType);
@@ -227,14 +227,14 @@ class THashedSetAccumulator {
bool IsTuple;
std::shared_ptr<TValuePacker> Packer;
TSetType Set;
- NUdf::IHash::TPtr Hash;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::IHash* Hash;
+ const NUdf::IEquate* Equate;
public:
static constexpr bool IsSorted = false;
THashedSetAccumulator(TType* keyType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), KeyType(keyType), KeyTypes(keyTypes), IsTuple(isTuple), Set(0, TValueHasher(KeyTypes, isTuple, hash),
TValueEqual(KeyTypes, isTuple, equate)), Hash(hash), Equate(equate)
{
@@ -277,7 +277,7 @@ public:
static constexpr bool IsSorted = false;
THashedSingleFixedSetAccumulator(TType* keyType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), Set(0, TMyHash<T>(), TMyEquals<T>())
{
Y_UNUSED(keyType);
@@ -320,7 +320,7 @@ public:
static constexpr bool IsSorted = false;
THashedSingleFixedCompactSetAccumulator(TType* keyType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), Pool(&Ctx.HolderFactory.GetPagePool()), Set(Ctx.HolderFactory.GetPagePool(), itemsCountHint / COMPACT_HASH_MAX_LOAD_FACTOR)
{
Y_UNUSED(keyType);
@@ -363,7 +363,7 @@ public:
static constexpr bool IsSorted = false;
THashedCompactSetAccumulator(TType* keyType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), Pool(&Ctx.HolderFactory.GetPagePool()), Set(Ctx.HolderFactory.GetPagePool(), itemsCountHint / COMPACT_HASH_MAX_LOAD_FACTOR, TSmallValueHash(), TSmallValueEqual())
, KeyType(keyType), KeyPacker(std::make_shared<TValuePacker>(true, keyType))
{
@@ -404,7 +404,7 @@ public:
static constexpr bool IsSorted = false;
THashedCompactMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), Pool(&Ctx.HolderFactory.GetPagePool()), Map(Ctx.HolderFactory.GetPagePool(), itemsCountHint / COMPACT_HASH_MAX_LOAD_FACTOR)
, KeyType(keyType), PayloadType(payloadType)
, KeyPacker(std::make_shared<TValuePacker>(true, keyType))
@@ -444,7 +444,7 @@ public:
static constexpr bool IsSorted = false;
THashedCompactMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), Pool(&Ctx.HolderFactory.GetPagePool()), Map(Ctx.HolderFactory.GetPagePool(), itemsCountHint / COMPACT_HASH_MAX_LOAD_FACTOR)
, KeyType(keyType), PayloadType(payloadType)
, KeyPacker(std::make_shared<TValuePacker>(true, keyType))
@@ -488,7 +488,7 @@ public:
static constexpr bool IsSorted = false;
THashedSingleFixedCompactMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), Pool(&Ctx.HolderFactory.GetPagePool()), Map(Ctx.HolderFactory.GetPagePool(), itemsCountHint / COMPACT_HASH_MAX_LOAD_FACTOR)
, PayloadType(payloadType), PayloadPacker(std::make_shared<TValuePacker>(false, payloadType))
{
@@ -534,7 +534,7 @@ public:
static constexpr bool IsSorted = false;
THashedSingleFixedCompactMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), Pool(&Ctx.HolderFactory.GetPagePool()), Map(Ctx.HolderFactory.GetPagePool(), itemsCountHint / COMPACT_HASH_MAX_LOAD_FACTOR)
, PayloadType(payloadType), PayloadPacker(std::make_shared<TValuePacker>(false, payloadType))
{
@@ -570,8 +570,8 @@ class TSortedSetAccumulator {
TType* KeyType;
const TKeyTypes& KeyTypes;
bool IsTuple;
- NUdf::ICompare::TPtr Compare;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::ICompare* Compare;
+ const NUdf::IEquate* Equate;
std::optional<TGenericPresortEncoder> Packer;
TUnboxedValueVector Items;
@@ -580,7 +580,7 @@ public:
static constexpr bool IsSorted = true;
TSortedSetAccumulator(TType* keyType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), KeyType(keyType), KeyTypes(keyTypes), IsTuple(isTuple), Compare(compare), Equate(equate)
{
Y_UNUSED(hash);
@@ -622,8 +622,8 @@ class TSortedMapAccumulator<false> {
TType* KeyType;
const TKeyTypes& KeyTypes;
bool IsTuple;
- NUdf::ICompare::TPtr Compare;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::ICompare* Compare;
+ const NUdf::IEquate* Equate;
std::optional<TGenericPresortEncoder> Packer;
TKeyPayloadPairVector Items;
@@ -632,8 +632,13 @@ public:
static constexpr bool IsSorted = true;
TSortedMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
- : Ctx(ctx), KeyType(keyType), KeyTypes(keyTypes), IsTuple(isTuple), Compare(compare), Equate(equate)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
+ : Ctx(ctx)
+ , KeyType(keyType)
+ , KeyTypes(keyTypes)
+ , IsTuple(isTuple)
+ , Compare(compare)
+ , Equate(equate)
{
Y_UNUSED(hash);
if (encoded) {
@@ -670,8 +675,8 @@ class TSortedMapAccumulator<true> {
TType* KeyType;
const TKeyTypes& KeyTypes;
bool IsTuple;
- NUdf::ICompare::TPtr Compare;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::ICompare* Compare;
+ const NUdf::IEquate* Equate;
std::optional<TGenericPresortEncoder> Packer;
TKeyPayloadPairVector Items;
@@ -679,7 +684,7 @@ public:
static constexpr bool IsSorted = true;
TSortedMapAccumulator(TType* keyType, TType* payloadType, const TKeyTypes& keyTypes, bool isTuple, bool encoded,
- NUdf::ICompare::TPtr compare, NUdf::IEquate::TPtr equate, NUdf::IHash::TPtr hash, TComputationContext& ctx, ui64 itemsCountHint)
+ const NUdf::ICompare* compare, const NUdf::IEquate* equate, const NUdf::IHash* hash, TComputationContext& ctx, ui64 itemsCountHint)
: Ctx(ctx), KeyType(keyType), KeyTypes(keyTypes), IsTuple(isTuple), Compare(compare), Equate(equate)
{
Y_UNUSED(hash);
@@ -794,15 +799,16 @@ public:
, ItemsCountHint(itemsCountHint)
{
GetDictionaryKeyTypes(KeyType, KeyTypes, IsTuple, Encoded, UseIHash);
+
+ Compare = UseIHash && TSetAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr;
+ Equate = UseIHash ? MakeEquateImpl(KeyType) : nullptr;
+ Hash = UseIHash && !TSetAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr;
}
NUdf::TUnboxedValuePod DoCalculate(TComputationContext& ctx) const {
if constexpr (IsStream) {
return ctx.HolderFactory.Create<TStreamValue>(List->GetValue(ctx), Item, Key,
- TSetAccumulator(KeyType, KeyTypes, IsTuple, Encoded,
- UseIHash && TSetAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr,
- UseIHash ? MakeEquateImpl(KeyType) : nullptr,
- UseIHash && !TSetAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr,
+ TSetAccumulator(KeyType, KeyTypes, IsTuple, Encoded, Compare.Get(), Equate.Get(), Hash.Get(),
ctx, ItemsCountHint), ctx);
}
@@ -815,10 +821,7 @@ public:
return ctx.HolderFactory.GetEmptyContainer();
}
- TSetAccumulator accumulator(KeyType, KeyTypes, IsTuple, Encoded,
- UseIHash && TSetAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr,
- UseIHash ? MakeEquateImpl(KeyType) : nullptr,
- UseIHash && !TSetAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr,
+ TSetAccumulator accumulator(KeyType, KeyTypes, IsTuple, Encoded, Compare.Get(), Equate.Get(), Hash.Get(),
ctx, itemsCountHint);
TThresher<false>::DoForEachItem(list,
@@ -847,6 +850,10 @@ private:
bool IsTuple;
bool Encoded;
bool UseIHash;
+
+ NUdf::ICompare::TPtr Compare;
+ NUdf::IEquate::TPtr Equate;
+ NUdf::IHash::TPtr Hash;
};
#ifndef MKQL_DISABLE_CODEGEN
@@ -907,6 +914,10 @@ public:
, ItemsCountHint(itemsCountHint)
{
GetDictionaryKeyTypes(KeyType, KeyTypes, IsTuple, Encoded, UseIHash);
+
+ Compare = UseIHash && TSetAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr;
+ Equate = UseIHash ? MakeEquateImpl(KeyType) : nullptr;
+ Hash = UseIHash && !TSetAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr;
}
NUdf::TUnboxedValuePod DoCalculate(NUdf::TUnboxedValue& state, TComputationContext& ctx) const {
@@ -1030,10 +1041,7 @@ public:
private:
void MakeState(TComputationContext& ctx, NUdf::TUnboxedValue& state) const {
state = ctx.HolderFactory.Create<TState>(TSetAccumulator(KeyType, KeyTypes, IsTuple, Encoded,
- UseIHash && TSetAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr,
- UseIHash ? MakeEquateImpl(KeyType) : nullptr,
- UseIHash && !TSetAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr,
- ctx, ItemsCountHint));
+ Compare.Get(), Equate.Get(), Hash.Get(), ctx, ItemsCountHint));
}
void RegisterDependencies() const final {
@@ -1052,6 +1060,10 @@ private:
bool IsTuple;
bool Encoded;
bool UseIHash;
+
+ NUdf::ICompare::TPtr Compare;
+ NUdf::IEquate::TPtr Equate;
+ NUdf::IHash::TPtr Hash;
};
template <typename TSetAccumulator>
@@ -1088,6 +1100,10 @@ public:
, WideFieldsIndex(mutables.IncrementWideFieldsIndex(Items.size()))
{
GetDictionaryKeyTypes(KeyType, KeyTypes, IsTuple, Encoded, UseIHash);
+
+ Compare = UseIHash && TSetAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr;
+ Equate = UseIHash ? MakeEquateImpl(KeyType) : nullptr;
+ Hash = UseIHash && !TSetAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr;
}
NUdf::TUnboxedValuePod DoCalculate(NUdf::TUnboxedValue& state, TComputationContext& ctx) const {
@@ -1221,10 +1237,7 @@ public:
private:
void MakeState(TComputationContext& ctx, NUdf::TUnboxedValue& state) const {
state = ctx.HolderFactory.Create<TState>(TSetAccumulator(KeyType, KeyTypes, IsTuple, Encoded,
- UseIHash && TSetAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr,
- UseIHash ? MakeEquateImpl(KeyType) : nullptr,
- UseIHash && !TSetAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr,
- ctx, ItemsCountHint));
+ Compare.Get(), Equate.Get(), Hash.Get(), ctx, ItemsCountHint));
}
void RegisterDependencies() const final {
@@ -1247,6 +1260,10 @@ private:
const std::optional<size_t> PasstroughKey;
const ui32 WideFieldsIndex;
+
+ NUdf::ICompare::TPtr Compare;
+ NUdf::IEquate::TPtr Equate;
+ NUdf::IHash::TPtr Hash;
};
template <typename TMapAccumulator, bool IsStream>
@@ -1312,15 +1329,16 @@ public:
, ItemsCountHint(itemsCountHint)
{
GetDictionaryKeyTypes(KeyType, KeyTypes, IsTuple, Encoded, UseIHash);
+
+ Compare = UseIHash && TMapAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr;
+ Equate = UseIHash ? MakeEquateImpl(KeyType) : nullptr;
+ Hash = UseIHash && !TMapAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr;
}
NUdf::TUnboxedValuePod DoCalculate(TComputationContext& ctx) const {
if constexpr (IsStream) {
return ctx.HolderFactory.Create<TStreamValue>(List->GetValue(ctx), Item, Key, Payload,
- TMapAccumulator(KeyType, PayloadType, KeyTypes, IsTuple, Encoded,
- UseIHash && TMapAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr,
- UseIHash ? MakeEquateImpl(KeyType) : nullptr,
- UseIHash && !TMapAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr,
+ TMapAccumulator(KeyType, PayloadType, KeyTypes, IsTuple, Encoded, Compare.Get(), Equate.Get(), Hash.Get(),
ctx, ItemsCountHint), ctx);
}
@@ -1335,10 +1353,7 @@ public:
}
TMapAccumulator accumulator(KeyType, PayloadType, KeyTypes, IsTuple, Encoded,
- UseIHash && TMapAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr,
- UseIHash ? MakeEquateImpl(KeyType) : nullptr,
- UseIHash && !TMapAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr,
- ctx, itemsCountHint);
+ Compare.Get(), Equate.Get(), Hash.Get(), ctx, itemsCountHint);
TThresher<false>::DoForEachItem(list,
[this, &accumulator, &ctx] (NUdf::TUnboxedValue&& item) {
@@ -1369,6 +1384,10 @@ private:
bool IsTuple;
bool Encoded;
bool UseIHash;
+
+ NUdf::ICompare::TPtr Compare;
+ NUdf::IEquate::TPtr Equate;
+ NUdf::IHash::TPtr Hash;
};
template <typename TMapAccumulator>
@@ -1406,6 +1425,10 @@ public:
, ItemsCountHint(itemsCountHint)
{
GetDictionaryKeyTypes(KeyType, KeyTypes, IsTuple, Encoded, UseIHash);
+
+ Compare = UseIHash && TMapAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr;
+ Equate = UseIHash ? MakeEquateImpl(KeyType) : nullptr;
+ Hash = UseIHash && !TMapAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr;
}
NUdf::TUnboxedValuePod DoCalculate(NUdf::TUnboxedValue& state, TComputationContext& ctx) const {
@@ -1530,10 +1553,7 @@ public:
private:
void MakeState(TComputationContext& ctx, NUdf::TUnboxedValue& state) const {
state = ctx.HolderFactory.Create<TState>(TMapAccumulator(KeyType, PayloadType, KeyTypes, IsTuple, Encoded,
- UseIHash && TMapAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr,
- UseIHash ? MakeEquateImpl(KeyType) : nullptr,
- UseIHash && !TMapAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr,
- ctx, ItemsCountHint));
+ Compare.Get(), Equate.Get(), Hash.Get(), ctx, ItemsCountHint));
}
void RegisterDependencies() const final {
@@ -1555,6 +1575,10 @@ private:
bool IsTuple;
bool Encoded;
bool UseIHash;
+
+ NUdf::ICompare::TPtr Compare;
+ NUdf::IEquate::TPtr Equate;
+ NUdf::IHash::TPtr Hash;
};
template <typename TMapAccumulator>
@@ -1595,6 +1619,10 @@ public:
, WideFieldsIndex(mutables.IncrementWideFieldsIndex(Items.size()))
{
GetDictionaryKeyTypes(KeyType, KeyTypes, IsTuple, Encoded, UseIHash);
+
+ Compare = UseIHash && TMapAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr;
+ Equate = UseIHash ? MakeEquateImpl(KeyType) : nullptr;
+ Hash = UseIHash && !TMapAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr;
}
NUdf::TUnboxedValuePod DoCalculate(NUdf::TUnboxedValue& state, TComputationContext& ctx) const {
@@ -1730,10 +1758,7 @@ public:
private:
void MakeState(TComputationContext& ctx, NUdf::TUnboxedValue& state) const {
state = ctx.HolderFactory.Create<TState>(TMapAccumulator(KeyType, PayloadType, KeyTypes, IsTuple, Encoded,
- UseIHash && TMapAccumulator::IsSorted ? MakeCompareImpl(KeyType) : nullptr,
- UseIHash ? MakeEquateImpl(KeyType) : nullptr,
- UseIHash && !TMapAccumulator::IsSorted ? MakeHashImpl(KeyType) : nullptr,
- ctx, ItemsCountHint));
+ Compare.Get(), Equate.Get(), Hash.Get(), ctx, ItemsCountHint));
}
void RegisterDependencies() const final {
@@ -1744,6 +1769,7 @@ private:
}
}
+
TType* const KeyType;
TType* PayloadType;
IComputationWideFlowNode* const Flow;
@@ -1761,6 +1787,10 @@ private:
mutable std::vector<NUdf::TUnboxedValue*> Fields;
const ui32 WideFieldsIndex;
+
+ NUdf::ICompare::TPtr Compare;
+ NUdf::IEquate::TPtr Equate;
+ NUdf::IHash::TPtr Hash;
};
template <typename TAccumulator>
diff --git a/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp b/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp
index ceab8db6b5..036e10d911 100644
--- a/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp
+++ b/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp
@@ -913,8 +913,8 @@ public:
EDictSortMode mode,
bool eagerFill,
TType* encodedType,
- NUdf::ICompare::TPtr compare,
- NUdf::IEquate::TPtr equate,
+ const NUdf::ICompare* compare,
+ const NUdf::IEquate* equate,
const THolderFactory& holderFactory)
: TComputationValue(memInfo)
, Filler(filler)
@@ -1037,8 +1037,8 @@ private:
const TKeyTypes Types;
const bool IsTuple;
const EDictSortMode Mode;
- NUdf::ICompare::TPtr Compare;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::ICompare* Compare;
+ const NUdf::IEquate* Equate;
mutable bool IsBuilt;
const THolderFactory& HolderFactory;
mutable TItems Items;
@@ -1115,8 +1115,8 @@ public:
EDictSortMode mode,
bool eagerFill,
TType* encodedType,
- NUdf::ICompare::TPtr compare,
- NUdf::IEquate::TPtr equate,
+ const NUdf::ICompare* compare,
+ const NUdf::IEquate* equate,
const THolderFactory& holderFactory)
: TComputationValue(memInfo)
, Filler(filler)
@@ -1239,8 +1239,8 @@ private:
const TKeyTypes Types;
const bool IsTuple;
const EDictSortMode Mode;
- NUdf::ICompare::TPtr Compare;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::ICompare* Compare;
+ const NUdf::IEquate* Equate;
mutable bool IsBuilt;
const THolderFactory& HolderFactory;
mutable TItems Items;
@@ -1303,7 +1303,7 @@ public:
THashedSetHolder(TMemoryUsageInfo* memInfo, THashedSetFiller filler,
const TKeyTypes& types, bool isTuple, bool eagerFill, TType* encodedType,
- NUdf::IHash::TPtr hash, NUdf::IEquate::TPtr equate, const THolderFactory& holderFactory)
+ const NUdf::IHash* hash, const NUdf::IEquate* equate, const THolderFactory& holderFactory)
: TComputationValue(memInfo)
, Filler(filler)
, Types(types)
@@ -2091,7 +2091,7 @@ public:
THashedDictHolder(TMemoryUsageInfo* memInfo, THashedDictFiller filler,
const TKeyTypes& types, bool isTuple, bool eagerFill, TType* encodedType,
- NUdf::IHash::TPtr hash, NUdf::IEquate::TPtr equate, const THolderFactory& holderFactory)
+ const NUdf::IHash* hash, const NUdf::IEquate* equate, const THolderFactory& holderFactory)
: TComputationValue(memInfo)
, Filler(filler)
, Types(types)
@@ -2761,7 +2761,7 @@ public:
};
return ctx.HolderFactory.CreateDirectSortedDictHolder(filler, Types, IsTuple, EDictSortMode::RequiresSorting,
- true, EncodedType, Compare, Equate);
+ true, EncodedType, Compare.Get(), Equate.Get());
} else {
THashedDictFiller filler =
[&items, &packer](TValuesDictHashMap& map) {
@@ -2776,7 +2776,7 @@ public:
};
return ctx.HolderFactory.CreateDirectHashedDictHolder(
- filler, Types, IsTuple, true, EncodedType, Hash, Equate);
+ filler, Types, IsTuple, true, EncodedType, Hash.Get(), Equate.Get());
}
}
@@ -3160,9 +3160,9 @@ public:
bool isTuple,
ui32 dictFlags,
TType* encodeType,
- NUdf::IHash::TPtr hash,
- NUdf::IEquate::TPtr equate,
- NUdf::ICompare::TPtr compare)
+ const NUdf::IHash* hash,
+ const NUdf::IEquate* equate,
+ const NUdf::ICompare* compare)
: HolderFactory_(holderFactory)
, Types_(types)
, IsTuple_(isTuple)
@@ -3313,9 +3313,9 @@ private:
const bool IsTuple_;
const ui32 DictFlags_;
TType* const EncodeType_;
- NUdf::IHash::TPtr Hash_;
- NUdf::IEquate::TPtr Equate_;
- NUdf::ICompare::TPtr Compare_;
+ const NUdf::IHash* Hash_;
+ const NUdf::IEquate* Equate_;
+ const NUdf::ICompare* Compare_;
TKeyPayloadPairVector Items_;
};
@@ -3392,6 +3392,18 @@ NUdf::TUnboxedValuePod THolderFactory::NewTemporaryVectorHolder() const {
return NUdf::TUnboxedValuePod(new TTemporaryVectorHolder(&MemInfo));
}
+const NUdf::IHash* THolderFactory::GetHash(const TType& type, bool useIHash) const {
+ return useIHash ? HashRegistry.FindOrEmplace(type) : nullptr;
+}
+
+const NUdf::IEquate* THolderFactory::GetEquate(const TType& type, bool useIHash) const {
+ return useIHash ? EquateRegistry.FindOrEmplace(type) : nullptr;
+}
+
+const NUdf::ICompare* THolderFactory::GetCompare(const TType& type, bool useIHash) const {
+ return useIHash ? CompareRegistry.FindOrEmplace(type) : nullptr;
+}
+
NUdf::TUnboxedValuePod THolderFactory::VectorAsVectorHolder(TUnboxedValueVector&& list) const {
return NUdf::TUnboxedValuePod(new TVectorHolder(&MemInfo, std::move(list)));
}
@@ -3701,8 +3713,8 @@ NUdf::TUnboxedValuePod THolderFactory::CreateDirectSortedSetHolder(
EDictSortMode mode,
bool eagerFill,
TType* encodedType,
- NUdf::ICompare::TPtr compare,
- NUdf::IEquate::TPtr equate) const
+ const NUdf::ICompare* compare,
+ const NUdf::IEquate* equate) const
{
return NUdf::TUnboxedValuePod(AllocateOn<TSortedSetHolder>(CurrentAllocState, &MemInfo,
filler, types, isTuple, mode, eagerFill, encodedType, compare, equate, *this));
@@ -3715,8 +3727,8 @@ NUdf::TUnboxedValuePod THolderFactory::CreateDirectSortedDictHolder(
EDictSortMode mode,
bool eagerFill,
TType* encodedType,
- NUdf::ICompare::TPtr compare,
- NUdf::IEquate::TPtr equate) const
+ const NUdf::ICompare* compare,
+ const NUdf::IEquate* equate) const
{
return NUdf::TUnboxedValuePod(AllocateOn<TSortedDictHolder>(CurrentAllocState, &MemInfo,
filler, types, isTuple, mode, eagerFill, encodedType, compare, equate, *this));
@@ -3728,8 +3740,8 @@ NUdf::TUnboxedValuePod THolderFactory::CreateDirectHashedDictHolder(
bool isTuple,
bool eagerFill,
TType* encodedType,
- NUdf::IHash::TPtr hash,
- NUdf::IEquate::TPtr equate) const
+ const NUdf::IHash* hash,
+ const NUdf::IEquate* equate) const
{
return NUdf::TUnboxedValuePod(AllocateOn<THashedDictHolder>(CurrentAllocState, &MemInfo,
filler, types, isTuple, eagerFill, encodedType, hash, equate, *this));
@@ -3741,8 +3753,8 @@ NUdf::TUnboxedValuePod THolderFactory::CreateDirectHashedSetHolder(
bool isTuple,
bool eagerFill,
TType* encodedType,
- NUdf::IHash::TPtr hash,
- NUdf::IEquate::TPtr equate) const {
+ const NUdf::IHash* hash,
+ const NUdf::IEquate* equate) const {
return NUdf::TUnboxedValuePod(AllocateOn<THashedSetHolder>(CurrentAllocState, &MemInfo,
filler, types, isTuple, eagerFill, encodedType, hash, equate, *this));
}
@@ -3838,8 +3850,8 @@ NUdf::IDictValueBuilder::TPtr THolderFactory::NewDict(
bool useIHash;
GetDictionaryKeyTypes(keyType, types, isTuple, encoded, useIHash);
return new TDictValueBuilder(*this, types, isTuple, flags, encoded ? keyType : nullptr,
- useIHash ? MakeHashImpl(keyType) : nullptr, useIHash ? MakeEquateImpl(keyType) : nullptr,
- useIHash ? MakeCompareImpl(keyType) : nullptr);
+ GetHash(*keyType, useIHash), GetEquate(*keyType, useIHash),
+ GetCompare(*keyType, useIHash));
}
#define DEFINE_HASHED_SINGLE_FIXED_MAP_OPT(xType) \
diff --git a/ydb/library/yql/minikql/computation/mkql_computation_node_holders.h b/ydb/library/yql/minikql/computation/mkql_computation_node_holders.h
index b88542f70f..1b978734bc 100644
--- a/ydb/library/yql/minikql/computation/mkql_computation_node_holders.h
+++ b/ydb/library/yql/minikql/computation/mkql_computation_node_holders.h
@@ -323,7 +323,7 @@ inline int CompareKeys(const NUdf::TUnboxedValuePod& left, const NUdf::TUnboxedV
}
struct TKeyPayloadPairLess {
- TKeyPayloadPairLess(const TKeyTypes& types, bool isTuple, NUdf::ICompare::TPtr compare)
+ TKeyPayloadPairLess(const TKeyTypes& types, bool isTuple, const NUdf::ICompare* compare)
: Types(&types)
, IsTuple(isTuple)
, Compare(compare)
@@ -339,11 +339,11 @@ struct TKeyPayloadPairLess {
const TKeyTypes* Types;
bool IsTuple;
- NUdf::ICompare::TPtr Compare;
+ const NUdf::ICompare* Compare;
};
struct TKeyPayloadPairEqual {
- TKeyPayloadPairEqual(const TKeyTypes& types, bool isTuple, NUdf::IEquate::TPtr equate)
+ TKeyPayloadPairEqual(const TKeyTypes& types, bool isTuple, const NUdf::IEquate* equate)
: Types(&types)
, IsTuple(isTuple)
, Equate(equate)
@@ -359,11 +359,11 @@ struct TKeyPayloadPairEqual {
const TKeyTypes* Types;
bool IsTuple;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::IEquate* Equate;
};
struct TValueEqual {
- TValueEqual(const TKeyTypes& types, bool isTuple, NUdf::IEquate::TPtr equate)
+ TValueEqual(const TKeyTypes& types, bool isTuple, const NUdf::IEquate* equate)
: Types(&types)
, IsTuple(isTuple)
, Equate(equate)
@@ -379,11 +379,11 @@ struct TValueEqual {
const TKeyTypes* Types;
bool IsTuple;
- NUdf::IEquate::TPtr Equate;
+ const NUdf::IEquate* Equate;
};
struct TValueLess {
- TValueLess(const TKeyTypes& types, bool isTuple, NUdf::ICompare::TPtr compare)
+ TValueLess(const TKeyTypes& types, bool isTuple, const NUdf::ICompare* compare)
: Types(&types)
, IsTuple(isTuple)
, Compare(compare)
@@ -399,13 +399,13 @@ struct TValueLess {
const TKeyTypes* Types;
bool IsTuple;
- NUdf::ICompare::TPtr Compare;
+ const NUdf::ICompare* Compare;
};
constexpr NUdf::THashType HashOfNull = ~0ULL;
struct TValueHasher {
- TValueHasher(const TKeyTypes& types, bool isTuple, NUdf::IHash::TPtr hash)
+ TValueHasher(const TKeyTypes& types, bool isTuple, const NUdf::IHash* hash)
: Types(&types)
, IsTuple(isTuple)
, Hash(hash)
@@ -442,7 +442,7 @@ struct TValueHasher {
const TKeyTypes* Types;
bool IsTuple;
- NUdf::IHash::TPtr Hash;
+ const NUdf::IHash* Hash;
};
template<typename T>
@@ -611,6 +611,36 @@ private:
arrow::Datum Datum_;
};
+template <class IFace>
+class TTypeOperationsRegistry {
+ using TValuePtr = typename IFace::TPtr;
+public:
+ IFace* FindOrEmplace(const TType& type) {
+ auto it = Registry.find(type);
+ if (it == Registry.end()) {
+ TTypeBase tb(type);
+ TValuePtr ptr;
+ if constexpr (std::is_same_v<IFace, NUdf::IHash>) {
+ ptr = MakeHashImpl(&type);
+ } else if constexpr (std::is_same_v<IFace, NUdf::IEquate>) {
+ ptr = MakeEquateImpl(&type);
+ } else if constexpr (std::is_same_v<IFace, NUdf::ICompare>) {
+ ptr = MakeCompareImpl(&type);
+ } else {
+ static_assert(TDependentFalse<IFace>, "unexpected type");
+ }
+ auto p = std::make_pair((const TTypeBase)type, ptr);
+ it = Registry.insert(p).first;
+ }
+ return it->second.Get();
+ }
+
+private:
+ THashMap<TTypeBase, TValuePtr, THasherTType, TEqualTType> Registry;
+};
+
+
+
//////////////////////////////////////////////////////////////////////////////
// THolderFactory
//////////////////////////////////////////////////////////////////////////////
@@ -643,6 +673,9 @@ public:
NUdf::TUnboxedValuePod NewVectorHolder() const;
NUdf::TUnboxedValuePod NewTemporaryVectorHolder() const;
+ const NUdf::IHash* GetHash(const TType& type, bool useIHash) const;
+ const NUdf::IEquate* GetEquate(const TType& type, bool useIHash) const;
+ const NUdf::ICompare* GetCompare(const TType& type, bool useIHash) const;
template <class TForwardIterator>
NUdf::TUnboxedValuePod RangeAsArray(TForwardIterator first, TForwardIterator last) const {
@@ -667,8 +700,8 @@ public:
EDictSortMode mode,
bool eagerFill,
TType* encodedType,
- NUdf::ICompare::TPtr compare,
- NUdf::IEquate::TPtr equate) const;
+ const NUdf::ICompare* compare,
+ const NUdf::IEquate* equate) const;
NUdf::TUnboxedValuePod CreateDirectSortedDictHolder(
TSortedDictFiller filler,
@@ -677,8 +710,8 @@ public:
EDictSortMode mode,
bool eagerFill,
TType* encodedType,
- NUdf::ICompare::TPtr compare,
- NUdf::IEquate::TPtr equate) const;
+ const NUdf::ICompare* compare,
+ const NUdf::IEquate* equate) const;
NUdf::TUnboxedValuePod CreateDirectHashedDictHolder(
THashedDictFiller filler,
@@ -686,8 +719,8 @@ public:
bool isTuple,
bool eagerFill,
TType* encodedType,
- NUdf::IHash::TPtr hash,
- NUdf::IEquate::TPtr equate) const;
+ const NUdf::IHash* hash,
+ const NUdf::IEquate* equate) const;
NUdf::TUnboxedValuePod CreateDirectHashedSetHolder(
THashedSetFiller filler,
@@ -695,8 +728,8 @@ public:
bool isTuple,
bool eagerFill,
TType* encodedType,
- NUdf::IHash::TPtr hash,
- NUdf::IEquate::TPtr equate) const;
+ const NUdf::IHash* hash,
+ const NUdf::IEquate* equate) const;
template <typename T, bool OptionalKey>
NUdf::TUnboxedValuePod CreateDirectHashedSingleFixedSetHolder(TValuesDictHashSingleFixedSet<T>&& set, bool hasNull) const;
@@ -796,6 +829,10 @@ private:
TMemoryUsageInfo& MemInfo;
const IFunctionRegistry* const FunctionRegistry;
const NUdf::TUnboxedValue EmptyContainer;
+
+ mutable TTypeOperationsRegistry<NUdf::IHash> HashRegistry;
+ mutable TTypeOperationsRegistry<NUdf::IEquate> EquateRegistry;
+ mutable TTypeOperationsRegistry<NUdf::ICompare> CompareRegistry;
};
constexpr const ui32 STEP_FOR_RSS_CHECK = 100U;
diff --git a/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp b/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp
index 250982b3b2..cad614fb75 100644
--- a/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp
+++ b/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp
@@ -809,14 +809,16 @@ void PackImpl(const TType* type, TBuf& buffer, const NUdf::TUnboxedValuePod& val
dictBuffer.emplace_back(std::move(key), std::move(payload));
}
- Sort(dictBuffer.begin(), dictBuffer.end(), TKeyPayloadPairLess(types, isTuple, useIHash ? MakeCompareImpl(keyType) : nullptr));
+ NUdf::ICompare::TPtr cmp = useIHash ? MakeCompareImpl(keyType) : nullptr;
+ Sort(dictBuffer.begin(), dictBuffer.end(), TKeyPayloadPairLess(types, isTuple, cmp.Get()));
+
for (const auto& p: dictBuffer) {
PackImpl<Fast, Stable>(keyType, buffer, p.first, s);
PackImpl<Fast, Stable>(payloadType, buffer, p.second, s);
}
dictBuffer.clear();
s.DictBuffers.push_back(std::move(dictBuffer));
- }
+ }
} else {
for (NUdf::TUnboxedValue key, payload; iter.NextPair(key, payload);) {
PackImpl<Fast, Stable>(keyType, buffer, key, s);
@@ -931,7 +933,7 @@ TStringBuf TValuePackerGeneric<Fast>::Pack(const NUdf::TUnboxedValuePod& value)
Buffer_.Proceed(delta);
Buffer_.Append((const char*)&length, sizeof(length));
}
- return TStringBuf(Buffer_.Data() + delta, len - delta);
+ return TStringBuf(Buffer_.Data() + delta, len - delta);
}
diff --git a/ydb/library/yql/minikql/mkql_node.cpp b/ydb/library/yql/minikql/mkql_node.cpp
index 7a3f2cc367..739feab7b3 100644
--- a/ydb/library/yql/minikql/mkql_node.cpp
+++ b/ydb/library/yql/minikql/mkql_node.cpp
@@ -276,7 +276,7 @@ void TType::Freeze(const TTypeEnvironment& env) {
}
}
-bool TType::IsSameType(const TType& typeToCompare) const {
+bool TTypeBase::IsSameType(const TTypeBase& typeToCompare) const {
if (Kind != typeToCompare.Kind) {
return false;
}
@@ -294,6 +294,21 @@ bool TType::IsSameType(const TType& typeToCompare) const {
}
}
+size_t TTypeBase::CalcHash() const {
+ switch (Kind) {
+#define APPLY(kind, type) \
+ case EKind::kind: \
+ /* combine hashes to aviod collision, for example, between Kind and SchemeType */ \
+ return CombineHashes(IntHash((size_t)Kind), static_cast<const type&>(*this).CalcHash());
+
+ TYPES_LIST(APPLY)
+
+#undef APPLY
+ default:
+ Y_FAIL();
+ }
+}
+
bool TType::IsConvertableTo(const TType& typeToCompare, bool ignoreTagged) const {
const TType* self = this;
const TType* other = &typeToCompare;
@@ -333,6 +348,10 @@ bool TTypeType::IsSameType(const TTypeType& typeToCompare) const {
return true;
}
+size_t TTypeType::CalcHash() const {
+ return 0;
+}
+
bool TTypeType::IsConvertableTo(const TTypeType& typeToCompare, bool ignoreTagged) const {
Y_UNUSED(ignoreTagged);
return IsSameType(typeToCompare);
@@ -378,6 +397,14 @@ bool TDataType::IsSameType(const TDataType& typeToCompare) const {
return static_cast<const TDataDecimalType&>(*this).IsSameType(static_cast<const TDataDecimalType&>(typeToCompare));
}
+size_t TDataType::CalcHash() const {
+ size_t hash = IntHash((size_t)GetSchemeType());
+ if (SchemeType == NUdf::TDataType<NUdf::TDecimal>::Id) {
+ hash = CombineHashes(hash, static_cast<const TDataDecimalType&>(*this).CalcHash());
+ }
+ return hash;
+}
+
bool TDataType::IsConvertableTo(const TDataType& typeToCompare, bool ignoreTagged) const {
Y_UNUSED(ignoreTagged);
return IsSameType(typeToCompare);
@@ -415,6 +442,10 @@ bool TDataDecimalType::IsSameType(const TDataDecimalType& typeToCompare) const {
return Precision == typeToCompare.Precision && Scale == typeToCompare.Scale;
}
+size_t TDataDecimalType::CalcHash() const {
+ return CombineHashes(IntHash((size_t)Precision), IntHash((size_t)Scale));
+}
+
bool TDataDecimalType::IsConvertableTo(const TDataDecimalType& typeToCompare, bool ignoreTagged) const {
Y_UNUSED(ignoreTagged);
return Precision == typeToCompare.Precision && Scale == typeToCompare.Scale;
@@ -492,6 +523,10 @@ bool TPgType::IsSameType(const TPgType& typeToCompare) const {
return TypeId == typeToCompare.TypeId;
}
+size_t TPgType::CalcHash() const {
+ return IntHash((size_t)TypeId);
+}
+
bool TPgType::IsConvertableTo(const TPgType& typeToCompare, bool ignoreTagged) const {
Y_UNUSED(ignoreTagged);
return IsSameType(typeToCompare);
@@ -593,6 +628,15 @@ bool TStructType::IsSameType(const TStructType& typeToCompare) const {
return true;
}
+size_t TStructType::CalcHash() const {
+ size_t hash = 0;
+ for (size_t i = 0; i < MembersCount; ++i) {
+ hash = CombineHashes(hash, Members[i].first.Hash());
+ hash = CombineHashes(hash, Members[i].second->CalcHash());
+ }
+ return hash;
+}
+
bool TStructType::IsConvertableTo(const TStructType& typeToCompare, bool ignoreTagged) const {
if (this == &typeToCompare)
return true;
@@ -814,6 +858,10 @@ bool TListType::IsSameType(const TListType& typeToCompare) const {
return GetItemType()->IsSameType(*typeToCompare.GetItemType());
}
+size_t TListType::CalcHash() const {
+ return CombineHashes(IndexDictKey->CalcHash(), Data->CalcHash());
+}
+
bool TListType::IsConvertableTo(const TListType& typeToCompare, bool ignoreTagged) const {
return GetItemType()->IsConvertableTo(*typeToCompare.GetItemType(), ignoreTagged);
}
@@ -989,6 +1037,10 @@ bool TStreamType::IsSameType(const TStreamType& typeToCompare) const {
return GetItemType()->IsSameType(*typeToCompare.GetItemType());
}
+size_t TStreamType::CalcHash() const {
+ return Data->CalcHash();
+}
+
bool TStreamType::IsConvertableTo(const TStreamType& typeToCompare, bool ignoreTagged) const {
return GetItemType()->IsConvertableTo(*typeToCompare.GetItemType(), ignoreTagged);
}
@@ -1033,6 +1085,10 @@ bool TFlowType::IsSameType(const TFlowType& typeToCompare) const {
return GetItemType()->IsSameType(*typeToCompare.GetItemType());
}
+size_t TFlowType::CalcHash() const {
+ return Data->CalcHash();
+}
+
bool TFlowType::IsConvertableTo(const TFlowType& typeToCompare, bool ignoreTagged) const {
return GetItemType()->IsConvertableTo(*typeToCompare.GetItemType(), ignoreTagged);
}
@@ -1077,6 +1133,10 @@ bool TOptionalType::IsSameType(const TOptionalType& typeToCompare) const {
return GetItemType()->IsSameType(*typeToCompare.GetItemType());
}
+size_t TOptionalType::CalcHash() const {
+ return Data->CalcHash();
+}
+
bool TOptionalType::IsConvertableTo(const TOptionalType& typeToCompare, bool ignoreTagged) const {
return GetItemType()->IsConvertableTo(*typeToCompare.GetItemType(), ignoreTagged);
}
@@ -1121,6 +1181,10 @@ bool TTaggedType::IsSameType(const TTaggedType& typeToCompare) const {
return Tag == typeToCompare.Tag && GetBaseType()->IsSameType(*typeToCompare.GetBaseType());
}
+size_t TTaggedType::CalcHash() const {
+ return CombineHashes(BaseType->CalcHash(), Tag.Hash());
+}
+
bool TTaggedType::IsConvertableTo(const TTaggedType& typeToCompare, bool ignoreTagged) const {
return Tag == typeToCompare.Tag && GetBaseType()->IsConvertableTo(*typeToCompare.GetBaseType(), ignoreTagged);
}
@@ -1238,6 +1302,10 @@ bool TDictType::IsSameType(const TDictType& typeToCompare) const {
&& PayloadType->IsSameType(*typeToCompare.PayloadType);
}
+size_t TDictType::CalcHash() const {
+ return CombineHashes(KeyType->CalcHash(), PayloadType->CalcHash());
+}
+
bool TDictType::IsConvertableTo(const TDictType& typeToCompare, bool ignoreTagged) const {
return KeyType->IsConvertableTo(*typeToCompare.KeyType, ignoreTagged)
&& PayloadType->IsConvertableTo(*typeToCompare.PayloadType, ignoreTagged);
@@ -1494,6 +1562,18 @@ bool TCallableType::IsSameType(const TCallableType& typeToCompare) const {
return !Payload || Payload->Equals(*typeToCompare.Payload);
}
+size_t TCallableType::CalcHash() const {
+ size_t hash = 0;
+ hash = CombineHashes(hash, IntHash<size_t>(ArgumentsCount));
+ hash = CombineHashes(hash, Name.Hash());
+ hash = CombineHashes(hash, ReturnType->CalcHash());
+ for (size_t index = 0; index < ArgumentsCount; ++index) {
+ hash = CombineHashes(hash, Arguments[index]->CalcHash());
+ }
+ hash = CombineHashes(hash, IntHash<size_t>(OptionalArgs));
+ return hash;
+}
+
bool TCallableType::IsConvertableTo(const TCallableType& typeToCompare, bool ignoreTagged) const {
// do not check callable name here
@@ -1826,6 +1906,10 @@ bool TAnyType::IsSameType(const TAnyType& typeToCompare) const {
return true;
}
+size_t TAnyType::CalcHash() const {
+ return 0;
+}
+
bool TAnyType::IsConvertableTo(const TAnyType& typeToCompare, bool ignoreTagged) const {
Y_UNUSED(ignoreTagged);
return IsSameType(typeToCompare);
@@ -2017,6 +2101,10 @@ bool TResourceType::IsSameType(const TResourceType& typeToCompare) const {
return Tag == typeToCompare.Tag;
}
+size_t TResourceType::CalcHash() const {
+ return Tag.Hash();
+}
+
bool TResourceType::IsConvertableTo(const TResourceType& typeToCompare, bool ignoreTagged) const {
Y_UNUSED(ignoreTagged);
return IsSameType(typeToCompare);
@@ -2051,6 +2139,10 @@ bool TVariantType::IsSameType(const TVariantType& typeToCompare) const {
return GetUnderlyingType()->IsSameType(*typeToCompare.GetUnderlyingType());
}
+size_t TVariantType::CalcHash() const {
+ return Data->CalcHash();
+}
+
bool TVariantType::IsConvertableTo(const TVariantType& typeToCompare, bool ignoreTagged) const {
return GetUnderlyingType()->IsConvertableTo(*typeToCompare.GetUnderlyingType(), ignoreTagged);
}
@@ -2178,6 +2270,10 @@ bool TBlockType::IsSameType(const TBlockType& typeToCompare) const {
return GetItemType()->IsSameType(*typeToCompare.GetItemType()) && Shape == typeToCompare.Shape;
}
+size_t TBlockType::CalcHash() const {
+ return CombineHashes(ItemType->CalcHash(), IntHash((size_t)Shape));
+}
+
bool TBlockType::IsConvertableTo(const TBlockType& typeToCompare, bool ignoreTagged) const {
return Shape == typeToCompare.Shape &&
GetItemType()->IsConvertableTo(*typeToCompare.GetItemType(), ignoreTagged);
diff --git a/ydb/library/yql/minikql/mkql_node.h b/ydb/library/yql/minikql/mkql_node.h
index fc70424d5d..f95271ee40 100644
--- a/ydb/library/yql/minikql/mkql_node.h
+++ b/ydb/library/yql/minikql/mkql_node.h
@@ -152,7 +152,7 @@ class TTypeEnvironment;
XX(Pg, 16 + 3) \
XX(Multi, 16 + 11)
-class TType : public TNode {
+class TTypeBase : public TNode {
public:
enum class EKind : ui8 {
MKQL_TYPE_KINDS(ENUM_VALUE_GEN)
@@ -162,6 +162,38 @@ public:
return Kind;
}
+ bool IsSameType(const TTypeBase& typeToCompare) const;
+ size_t CalcHash() const;
+
+ TTypeBase(const TTypeBase& other)
+ : TNode(other.Type)
+ , Kind(other.Kind)
+ {}
+
+protected:
+ TTypeBase(EKind kind, TTypeType* type);
+ TTypeBase()
+ : TNode(nullptr)
+ , Kind(EKind::Type)
+ {}
+
+ const EKind Kind;
+ TMaybe<bool> SupportsPresort; // transient
+};
+
+class TType: public TTypeBase {
+protected:
+ TType(EKind kind, TTypeType* type)
+ : TTypeBase(kind, type)
+ {}
+
+ TType()
+ : TTypeBase()
+ {}
+
+ virtual bool CalculatePresortSupport() = 0;
+
+public:
static TStringBuf KindAsStr(EKind kind);
TStringBuf GetKindAsStr() const;
@@ -172,7 +204,8 @@ public:
#undef MKQL_KIND_ACCESSOR
- bool IsSameType(const TType& typeToCompare) const;
+ using TTypeBase::IsSameType;
+
bool IsConvertableTo(const TType& typeToCompare, bool ignoreTagged = false) const;
void Accept(INodeVisitor& visitor);
void UpdateLinks(const THashMap<TNode*, TNode*>& links);
@@ -185,20 +218,6 @@ public:
return *SupportsPresort;
}
-
-protected:
- TType(EKind kind, TTypeType* type);
- TType()
- : TNode(nullptr)
- , Kind(EKind::Type)
- {
- }
-
- virtual bool CalculatePresortSupport() = 0;
-
-private:
- const EKind Kind;
- TMaybe<bool> SupportsPresort; // transient
};
class TTypeType : public TType {
@@ -207,6 +226,7 @@ friend class TType;
public:
using TType::IsSameType;
bool IsSameType(const TTypeType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TTypeType& typeToCompare, bool ignoreTagged = false) const;
@@ -232,6 +252,7 @@ friend class TType;
public:
using TType::IsSameType;
bool IsSameType(const TSingularType<SingularKind>& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TSingularType<SingularKind>& typeToCompare, bool ignoreTagged = false) const;
@@ -551,6 +572,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TDataType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TDataType& typeToCompare, bool ignoreTagged = false) const;
@@ -582,6 +604,7 @@ public:
static TDataDecimalType* Create(ui8 precision, ui8 scale, const TTypeEnvironment& env);
bool IsSameType(const TDataDecimalType& typeToCompare) const;
+ size_t CalcHash() const;
bool IsConvertableTo(const TDataDecimalType& typeToCompare, bool ignoreTagged = false) const;
@@ -623,6 +646,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TPgType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TPgType& typeToCompare, bool ignoreTagged = false) const;
@@ -676,6 +700,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TStructType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TStructType& typeToCompare, bool ignoreTagged = false) const;
@@ -752,6 +777,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TListType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TListType& typeToCompare, bool ignoreTagged = false) const;
@@ -815,6 +841,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TStreamType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TStreamType& typeToCompare, bool ignoreTagged = false) const;
@@ -842,6 +869,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TFlowType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TFlowType& typeToCompare, bool ignoreTagged = false) const;
@@ -869,6 +897,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TOptionalType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TOptionalType& typeToCompare, bool ignoreTagged = false) const;
@@ -929,6 +958,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TDictType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TDictType& typeToCompare, bool ignoreTagged = false) const;
@@ -1001,6 +1031,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TCallableType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TCallableType& typeToCompare, bool ignoreTagged = false) const;
@@ -1110,7 +1141,7 @@ private:
TRuntimeNode Result;
};
-inline TType::TType(EKind kind, TTypeType* type)
+inline TTypeBase::TTypeBase(EKind kind, TTypeType* type)
: TNode(type)
, Kind(kind)
{
@@ -1135,6 +1166,7 @@ friend class TType;
public:
using TType::IsSameType;
bool IsSameType(const TAnyType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TAnyType& typeToCompare, bool ignoreTagged = false) const;
@@ -1221,6 +1253,14 @@ public:
return true;
}
+ size_t CalcHash() const {
+ size_t hash = 0;
+ for (size_t index = 0; index < ElementsCount; ++index) {
+ hash = CombineHashes(hash, Elements[index]->CalcHash());
+ }
+ return hash;
+ }
+
using TType::IsConvertableTo;
bool IsConvertableTo(const TDerived& typeToCompare, bool ignoreTagged = false) const {
if (this == &typeToCompare) {
@@ -1381,6 +1421,7 @@ friend class TType;
public:
using TType::IsSameType;
bool IsSameType(const TResourceType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TResourceType& typeToCompare, bool ignoreTagged = false) const;
@@ -1417,6 +1458,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TTaggedType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TTaggedType& typeToCompare, bool ignoreTagged = false) const;
@@ -1453,6 +1495,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TVariantType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TVariantType& typeToCompare, bool ignoreTagged = false) const;
@@ -1535,6 +1578,7 @@ public:
using TType::IsSameType;
bool IsSameType(const TBlockType& typeToCompare) const;
+ size_t CalcHash() const;
using TType::IsConvertableTo;
bool IsConvertableTo(const TBlockType& typeToCompare, bool ignoreTagged = false) const;
@@ -1607,6 +1651,11 @@ bool TSingularType<SingularKind>::IsSameType(const TSingularType<SingularKind>&
}
template <TType::EKind SingularKind>
+size_t TSingularType<SingularKind>::CalcHash() const {
+ return IntHash((size_t)SingularKind);
+}
+
+template <TType::EKind SingularKind>
bool TSingularType<SingularKind>::IsConvertableTo(const TSingularType<SingularKind>& typeToCompare, bool ignoreTagged) const {
Y_UNUSED(ignoreTagged);
return IsSameType(typeToCompare);
@@ -1644,6 +1693,7 @@ bool TSingular<SingularKind>::Equals(const TSingular<SingularKind>& nodeToCompar
return true;
}
+
template <TType::EKind SingularKind>
void TSingular<SingularKind>::DoUpdateLinks(const THashMap<TNode*, TNode*>& links) {
Y_UNUSED(links);
@@ -1659,5 +1709,18 @@ template <TType::EKind SingularKind>
void TSingular<SingularKind>::DoFreeze(const TTypeEnvironment& env) {
Y_UNUSED(env);
}
+
+struct THasherTType {
+ inline size_t operator()(const TTypeBase& t) const noexcept {
+ return t.CalcHash();
+ }
+};
+
+struct TEqualTType {
+ inline bool operator()(const TTypeBase& lhs, const TTypeBase& rhs) const noexcept {
+ return lhs.IsSameType(rhs);
+ }
+};
+
}
}
diff --git a/ydb/library/yql/minikql/mkql_program_builder.cpp b/ydb/library/yql/minikql/mkql_program_builder.cpp
index c64b5b7dbd..c33b75df58 100644
--- a/ydb/library/yql/minikql/mkql_program_builder.cpp
+++ b/ydb/library/yql/minikql/mkql_program_builder.cpp
@@ -5228,9 +5228,14 @@ TRuntimeNode TProgramBuilder::RangeIntersect(const TArrayRef<const TRuntimeNode>
TRuntimeNode TProgramBuilder::RangeMultiply(const TArrayRef<const TRuntimeNode>& args) {
MKQL_ENSURE(args.size() >= 2, "Expecting at least two arguments");
- MKQL_ENSURE(args.front().GetStaticType()->IsData() &&
- static_cast<TDataType*>(args.front().GetStaticType())->GetSchemeType() == NUdf::TDataType<ui64>::Id,
- "Expected ui64 as first argument");
+ bool unlimited = false;
+ if (args.front().GetStaticType()->IsVoid()) {
+ unlimited = true;
+ } else {
+ MKQL_ENSURE(args.front().GetStaticType()->IsData() &&
+ static_cast<TDataType*>(args.front().GetStaticType())->GetSchemeType() == NUdf::TDataType<ui64>::Id,
+ "Expected ui64 as first argument");
+ }
std::vector<TType*> outputComponents;
for (size_t i = 1; i < args.size(); ++i) {
@@ -5261,8 +5266,14 @@ TRuntimeNode TProgramBuilder::RangeMultiply(const TArrayRef<const TRuntimeNode>&
auto outputRange = TTupleType::Create(outputRangeComps.size(), &outputRangeComps.front(), Env);
TCallableBuilder callableBuilder(Env, __func__, TListType::Create(outputRange, Env));
- for (auto& arg : args) {
- callableBuilder.Add(arg);
+ if (unlimited) {
+ callableBuilder.Add(NewDataLiteral<ui64>(std::numeric_limits<ui64>::max()));
+ } else {
+ callableBuilder.Add(args[0]);
+ }
+
+ for (size_t i = 1; i < args.size(); ++i) {
+ callableBuilder.Add(args[i]);
}
return TRuntimeNode(callableBuilder.Build(), false);
diff --git a/ydb/library/yql/minikql/mkql_runtime_version.h b/ydb/library/yql/minikql/mkql_runtime_version.h
index 7ad57a995a..6f0ce139cf 100644
--- a/ydb/library/yql/minikql/mkql_runtime_version.h
+++ b/ydb/library/yql/minikql/mkql_runtime_version.h
@@ -24,12 +24,21 @@ namespace NMiniKQL {
// 1. Bump this version every time incompatible runtime nodes are introduced.
// 2. Make sure you provide runtime node generation for previous runtime versions.
#ifndef MKQL_RUNTIME_VERSION
-#define MKQL_RUNTIME_VERSION 39U
+#define MKQL_RUNTIME_VERSION 32U
#endif
// History:
// v4 is the version supported by kikimr-19-6
// v14 is the version supported by kikimr-20-2
+// v14 is the version supported by kikimr-20-2
+// v21 is the version supported by kikimr-20-4
+// v21 is the version supported by kikimr-20-6
+// v23 is the version supported by kikimr-21-2
+// v24 is the version supported by kikimr-21-4
+// v29 is the version supported by kikimr-22-2
+// v30 is the version supported by kikimr-22-4
+// v32 is the version supported by kikimr-23-1
+// v39 is the version supported by kikimr-23-3
constexpr ui32 RuntimeVersion = MKQL_RUNTIME_VERSION;
}
diff --git a/ydb/library/yql/providers/common/codec/yql_codec.cpp b/ydb/library/yql/providers/common/codec/yql_codec.cpp
index e0e5682b7f..2d135d002f 100644
--- a/ydb/library/yql/providers/common/codec/yql_codec.cpp
+++ b/ydb/library/yql/providers/common/codec/yql_codec.cpp
@@ -1158,8 +1158,9 @@ NUdf::TUnboxedValue ReadYsonValue(TType* type,
}
};
- return holderFactory.CreateDirectHashedDictHolder(filler, types, isTuple, true, nullptr,
- useIHash ? MakeHashImpl(keyType) : nullptr, useIHash ? MakeEquateImpl(keyType) : nullptr);
+ const NUdf::IHash* hash = holderFactory.GetHash(*keyType, useIHash);
+ const NUdf::IEquate* equate = holderFactory.GetEquate(*keyType, useIHash);
+ return holderFactory.CreateDirectHashedDictHolder(filler, types, isTuple, true, nullptr, hash, equate);
}
else {
auto filler = [&](TValuesDictHashMap& map) {
@@ -1195,8 +1196,10 @@ NUdf::TUnboxedValue ReadYsonValue(TType* type,
}
};
+ const NUdf::IHash* hash = holderFactory.GetHash(*keyType, useIHash);
+ const NUdf::IEquate* equate = holderFactory.GetEquate(*keyType, useIHash);
return holderFactory.CreateDirectHashedDictHolder(filler, types, isTuple, true, encoded ? keyType : nullptr,
- useIHash ? MakeHashImpl(keyType) : nullptr, useIHash ? MakeEquateImpl(keyType) : nullptr);
+ hash, equate);
}
}
diff --git a/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp b/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp
index 4f9da234bd..9ba72f7a86 100644
--- a/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp
+++ b/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp
@@ -19,10 +19,14 @@ TExprNode::TPtr TDqIntegrationBase::WrapRead(const TDqSettings&, const TExprNode
return read;
}
-TMaybe<bool> TDqIntegrationBase::CanWrite(const TDqSettings&, const TExprNode&, TExprContext&) {
+TMaybe<bool> TDqIntegrationBase::CanWrite(const TExprNode&, TExprContext&) {
return Nothing();
}
+TExprNode::TPtr TDqIntegrationBase::WrapWrite(const TExprNode::TPtr& write, TExprContext&) {
+ return write;
+}
+
void TDqIntegrationBase::RegisterMkqlCompiler(NCommon::TMkqlCallableCompilerBase&) {
}
diff --git a/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h b/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h
index de26d81671..abbc412d08 100644
--- a/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h
+++ b/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h
@@ -12,7 +12,8 @@ public:
TMaybe<ui64> EstimateReadSize(ui64 dataSizePerJob, ui32 maxTasksPerStage, const TExprNode& node, TExprContext& ctx) override;
TExprNode::TPtr WrapRead(const TDqSettings& config, const TExprNode::TPtr& read, TExprContext& ctx) override;
void RegisterMkqlCompiler(NCommon::TMkqlCallableCompilerBase& compiler) override;
- TMaybe<bool> CanWrite(const TDqSettings& config, const TExprNode& write, TExprContext& ctx) override;
+ TMaybe<bool> CanWrite(const TExprNode& write, TExprContext& ctx) override;
+ TExprNode::TPtr WrapWrite(const TExprNode::TPtr& write, TExprContext& ctx) override;
bool CanFallback() override;
void FillSourceSettings(const TExprNode& node, ::google::protobuf::Any& settings, TString& sourceType) override;
void FillSinkSettings(const TExprNode& node, ::google::protobuf::Any& settings, TString& sinkType) override;
diff --git a/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp b/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp
index ae9c1dfd74..8e9e1c37aa 100644
--- a/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp
+++ b/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp
@@ -2205,6 +2205,11 @@ TMkqlCommonCallableCompiler::TShared::TShared() {
AddCallable({ "AsTagged","Untag" }, [](const TExprNode& node, TMkqlBuildContext& ctx) {
auto input = MkqlBuildExpr(node.Head(), ctx);
+
+ if constexpr (NKikimr::NMiniKQL::RuntimeVersion < 34U) {
+ return input;
+ }
+
auto returnType = BuildType(node, *node.GetTypeAnn(), ctx.ProgramBuilder);
return ctx.ProgramBuilder.Nop(input, returnType);
});
diff --git a/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp b/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp
index b86b9fba72..84ad733fe0 100644
--- a/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp
+++ b/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp
@@ -151,6 +151,11 @@ NKikimr::NMiniKQL::TType* BuildType(const TTypeAnnotationNode& annotation, NKiki
case ETypeAnnotationKind::Tagged: {
auto tagged = annotation.Cast<TTaggedExprType>();
auto base = BuildType(*tagged->GetBaseType(), pgmBuilder, err);
+
+ if constexpr (NKikimr::NMiniKQL::RuntimeVersion < 34U) {
+ return base;
+ }
+
return pgmBuilder.NewTaggedType(base, tagged->GetTag());
}
diff --git a/ydb/library/yql/providers/common/provider/yql_provider.cpp b/ydb/library/yql/providers/common/provider/yql_provider.cpp
index f919082c0c..97e6b6d1e2 100644
--- a/ydb/library/yql/providers/common/provider/yql_provider.cpp
+++ b/ydb/library/yql/providers/common/provider/yql_provider.cpp
@@ -207,6 +207,7 @@ TWriteTableSettings ParseWriteTableSettings(TExprList node, TExprContext& ctx) {
TMaybeNode<TExprList> columns;
TMaybeNode<TCoAtomList> primaryKey;
TMaybeNode<TCoAtomList> notNullColumns;
+ TMaybeNode<TCoAtomList> serialColumns;
TMaybeNode<TCoAtomList> partitionBy;
TMaybeNode<TCoNameValueTupleList> orderBy;
TMaybeNode<TCoLambda> filter;
@@ -299,6 +300,9 @@ TWriteTableSettings ParseWriteTableSettings(TExprList node, TExprContext& ctx) {
} else if (name == "notnull") {
YQL_ENSURE(tuple.Value().Maybe<TCoAtomList>());
notNullColumns = tuple.Value().Cast<TCoAtomList>();
+ } else if (name == "serialColumns") {
+ YQL_ENSURE(tuple.Value().Maybe<TCoAtomList>());
+ serialColumns = tuple.Value().Cast<TCoAtomList>();
} else if (name == "pg_delete") {
YQL_ENSURE(tuple.Value().Maybe<TCallable>());
pgDelete = tuple.Value().Cast<TCallable>();
@@ -337,6 +341,7 @@ TWriteTableSettings ParseWriteTableSettings(TExprList node, TExprContext& ctx) {
ret.Columns = columns;
ret.PrimaryKey = primaryKey;
ret.NotNullColumns = notNullColumns;
+ ret.SerialColumns = serialColumns;
ret.PartitionBy = partitionBy;
ret.OrderBy = orderBy;
ret.Filter = filter;
diff --git a/ydb/library/yql/providers/common/provider/yql_provider.h b/ydb/library/yql/providers/common/provider/yql_provider.h
index 8ab6591eda..e81a4be2df 100644
--- a/ydb/library/yql/providers/common/provider/yql_provider.h
+++ b/ydb/library/yql/providers/common/provider/yql_provider.h
@@ -37,6 +37,7 @@ struct TWriteTableSettings {
NNodes::TMaybeNode<NNodes::TExprList> Columns;
NNodes::TMaybeNode<NNodes::TCoAtomList> PrimaryKey;
NNodes::TMaybeNode<NNodes::TCoAtomList> NotNullColumns;
+ NNodes::TMaybeNode<NNodes::TCoAtomList> SerialColumns;
NNodes::TMaybeNode<NNodes::TCoAtomList> PartitionBy;
NNodes::TMaybeNode<NNodes::TCoNameValueTupleList> OrderBy;
NNodes::TMaybeNode<NNodes::TCoLambda> Filter;
diff --git a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-x86_64.txt
index fc4d1508d0..010ecdd3b2 100644
--- a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-x86_64.txt
@@ -25,6 +25,7 @@ target_link_options(yql-providers-common-structured_token-ut PRIVATE
)
target_sources(yql-providers-common-structured_token-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_structured_token_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp
)
set_property(
TARGET
diff --git a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-aarch64.txt
index d0de17a01c..55b58634b3 100644
--- a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-aarch64.txt
@@ -30,6 +30,7 @@ target_link_options(yql-providers-common-structured_token-ut PRIVATE
)
target_sources(yql-providers-common-structured_token-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_structured_token_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp
)
set_property(
TARGET
diff --git a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-x86_64.txt
index 972ef1ff0c..7072a49530 100644
--- a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.linux-x86_64.txt
@@ -31,6 +31,7 @@ target_link_options(yql-providers-common-structured_token-ut PRIVATE
)
target_sources(yql-providers-common-structured_token-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_structured_token_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp
)
set_property(
TARGET
diff --git a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.windows-x86_64.txt
index 35955e06c3..37018fc8d9 100644
--- a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.windows-x86_64.txt
@@ -20,6 +20,7 @@ target_link_libraries(yql-providers-common-structured_token-ut PUBLIC
)
target_sources(yql-providers-common-structured_token-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_structured_token_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp
)
set_property(
TARGET
diff --git a/ydb/library/yql/providers/common/structured_token/ut/ya.make b/ydb/library/yql/providers/common/structured_token/ut/ya.make
index 90f62995d5..787199c2d6 100644
--- a/ydb/library/yql/providers/common/structured_token/ut/ya.make
+++ b/ydb/library/yql/providers/common/structured_token/ut/ya.make
@@ -2,6 +2,7 @@ UNITTEST_FOR(ydb/library/yql/providers/common/structured_token)
SRCS(
yql_structured_token_ut.cpp
+ yql_token_builder_ut.cpp
)
END()
diff --git a/ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp b/ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp
index 3675014d48..e56bd0263e 100644
--- a/ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp
+++ b/ydb/library/yql/providers/common/structured_token/ut/yql_token_builder_ut.cpp
@@ -30,6 +30,30 @@ Y_UNIT_TEST_SUITE(TokenBuilderTest) {
UNIT_ASSERT_VALUES_EQUAL(sign, "my_sa_sign");
}
+ Y_UNIT_TEST(ServiceAccountIdWithSecret) {
+ TStructuredTokenBuilder b;
+ b.SetServiceAccountIdAuthWithSecret("my_sa_id", "my_sa_sign_reference", "my_sa_sign");
+ UNIT_ASSERT_VALUES_EQUAL(R"({"sa_id":"my_sa_id","sa_id_signature":"my_sa_sign","sa_id_signature_ref":"my_sa_sign_reference"})", b.ToJson());
+ const TStructuredTokenParser p = CreateStructuredTokenParser(b.ToJson());
+ UNIT_ASSERT(p.HasServiceAccountIdAuth());
+ UNIT_ASSERT(!p.HasBasicAuth());
+ UNIT_ASSERT(!p.HasIAMToken());
+ UNIT_ASSERT(!p.IsNoAuth());
+ TString id, sign, reference;
+ UNIT_ASSERT(p.GetServiceAccountIdAuth(id, sign, reference));
+ UNIT_ASSERT_VALUES_EQUAL(id, "my_sa_id");
+ UNIT_ASSERT_VALUES_EQUAL(sign, "my_sa_sign");
+ UNIT_ASSERT_VALUES_EQUAL(reference, "my_sa_sign_reference");
+ b.RemoveSecrets();
+ UNIT_ASSERT_VALUES_EQUAL(R"({"sa_id":"my_sa_id","sa_id_signature_ref":"my_sa_sign_reference"})", b.ToJson());
+ TSet<TString> references;
+ p.ListReferences(references);
+ UNIT_ASSERT_VALUES_EQUAL(references.size(), 1);
+ UNIT_ASSERT(references.contains("my_sa_sign_reference"));
+ b.ReplaceReferences({{"my_sa_sign_reference", "my_sa_sign_value"}});
+ UNIT_ASSERT_VALUES_EQUAL(R"({"sa_id":"my_sa_id","sa_id_signature":"my_sa_sign_value"})", b.ToJson());
+ }
+
Y_UNIT_TEST(BasicAuth) {
TStructuredTokenBuilder b;
b.SetBasicAuth("my_login", "my_passw");
@@ -45,6 +69,30 @@ Y_UNIT_TEST_SUITE(TokenBuilderTest) {
UNIT_ASSERT_VALUES_EQUAL(password, "my_passw");
}
+ Y_UNIT_TEST(BasicAuthWithSecret) {
+ TStructuredTokenBuilder b;
+ b.SetBasicAuthWithSecret("my_login", "my_passw_reference");
+ UNIT_ASSERT_VALUES_EQUAL(R"({"basic_login":"my_login","basic_password_ref":"my_passw_reference"})", b.ToJson());
+ const TStructuredTokenParser p = CreateStructuredTokenParser(b.ToJson());
+ UNIT_ASSERT(!p.HasServiceAccountIdAuth());
+ UNIT_ASSERT(p.HasBasicAuth());
+ UNIT_ASSERT(!p.HasIAMToken());
+ UNIT_ASSERT(!p.IsNoAuth());
+ TString login, password, reference;
+ UNIT_ASSERT(p.GetBasicAuth(login, password, reference));
+ UNIT_ASSERT_VALUES_EQUAL(login, "my_login");
+ UNIT_ASSERT_VALUES_EQUAL(password, "");
+ UNIT_ASSERT_VALUES_EQUAL(reference, "my_passw_reference");
+ TSet<TString> references;
+ p.ListReferences(references);
+ UNIT_ASSERT_VALUES_EQUAL(references.size(), 1);
+ UNIT_ASSERT(references.contains("my_passw_reference"));
+ b.ReplaceReferences({{"my_passw_reference", "my_passw_value"}});
+ UNIT_ASSERT_VALUES_EQUAL(R"({"basic_login":"my_login","basic_password":"my_passw_value"})", b.ToJson());
+ b.RemoveSecrets();
+ UNIT_ASSERT_VALUES_EQUAL(R"({"basic_login":"my_login"})", b.ToJson());
+ }
+
Y_UNIT_TEST(IAMToken) {
TStructuredTokenBuilder b;
b.SetIAMToken("my_token");
diff --git a/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp b/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp
index 84a2f06b3c..31a527763b 100644
--- a/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp
+++ b/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp
@@ -36,6 +36,11 @@ TStructuredToken& TStructuredToken::SetField(const TString& name, const TString&
return *this;
}
+TStructuredToken& TStructuredToken::ClearField(const TString& name) {
+ Data.erase(name);
+ return *this;
+}
+
TString TStructuredToken::ToJson() const {
TStringStream output;
// set "format output" to false, no need for extra indents
diff --git a/ydb/library/yql/providers/common/structured_token/yql_structured_token.h b/ydb/library/yql/providers/common/structured_token/yql_structured_token.h
index 6ee1f478b7..2789723663 100644
--- a/ydb/library/yql/providers/common/structured_token/yql_structured_token.h
+++ b/ydb/library/yql/providers/common/structured_token/yql_structured_token.h
@@ -17,6 +17,7 @@ public:
TMaybe<TString> FindField(const TString& name) const;
bool HasField(const TString& name) const;
TStructuredToken& SetField(const TString& name, const TString& value);
+ TStructuredToken& ClearField(const TString& name);
TString ToJson() const;
private:
diff --git a/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp b/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp
index 3bace92c54..69f8a577b7 100644
--- a/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp
+++ b/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp
@@ -16,12 +16,25 @@ TStructuredTokenBuilder& TStructuredTokenBuilder::SetServiceAccountIdAuth(const
return *this;
}
+TStructuredTokenBuilder& TStructuredTokenBuilder::SetServiceAccountIdAuthWithSecret(const TString& accountId, const TString& accountIdSignatureReference, const TString& accountIdSignature) {
+ Data.SetField("sa_id", accountId);
+ Data.SetField("sa_id_signature_ref", accountIdSignatureReference);
+ Data.SetField("sa_id_signature", accountIdSignature);
+ return *this;
+}
+
TStructuredTokenBuilder& TStructuredTokenBuilder::SetBasicAuth(const TString& login, const TString& password) {
Data.SetField("basic_login", login);
Data.SetField("basic_password", password);
return *this;
}
+TStructuredTokenBuilder& TStructuredTokenBuilder::SetBasicAuthWithSecret(const TString& login, const TString& passwordReference) {
+ Data.SetField("basic_login", login);
+ Data.SetField("basic_password_ref", passwordReference);
+ return *this;
+}
+
TStructuredTokenBuilder& TStructuredTokenBuilder::SetIAMToken(const TString& token) {
Data.SetField("token", token);
return *this;
@@ -32,6 +45,26 @@ TStructuredTokenBuilder& TStructuredTokenBuilder::SetNoAuth() {
return *this;
}
+TStructuredTokenBuilder& TStructuredTokenBuilder::ReplaceReferences(const TMap<TString, TString> secrets) {
+ if (Data.HasField("basic_password_ref")) {
+ auto reference = Data.GetField("basic_password_ref");
+ Data.ClearField("basic_password_ref");
+ Data.SetField("basic_password", secrets.at(reference));
+ }
+ if (Data.HasField("sa_id_signature_ref")) {
+ auto reference = Data.GetField("sa_id_signature_ref");
+ Data.ClearField("sa_id_signature_ref");
+ Data.SetField("sa_id_signature", secrets.at(reference));
+ }
+ return *this;
+}
+
+TStructuredTokenBuilder& TStructuredTokenBuilder::RemoveSecrets() {
+ Data.ClearField("basic_password");
+ Data.ClearField("sa_id_signature");
+ return *this;
+}
+
TString TStructuredTokenBuilder::ToJson() const {
return Data.ToJson();
}
@@ -48,8 +81,14 @@ bool TStructuredTokenParser::HasServiceAccountIdAuth() const {
}
bool TStructuredTokenParser::GetServiceAccountIdAuth(TString& accountId, TString& accountIdSignature) const {
+ TString accountIdSignatureReference;
+ return GetServiceAccountIdAuth(accountId, accountIdSignature, accountIdSignatureReference);
+}
+
+bool TStructuredTokenParser::GetServiceAccountIdAuth(TString& accountId, TString& accountIdSignature, TString& accountIdSignatureReference) const {
accountId = Data.GetField("sa_id");
- accountIdSignature = Data.GetField("sa_id_signature");
+ accountIdSignature = Data.GetFieldOrDefault("sa_id_signature", "");
+ accountIdSignatureReference = Data.GetFieldOrDefault("sa_id_signature_ref", "");
return true;
}
@@ -58,8 +97,14 @@ bool TStructuredTokenParser::HasBasicAuth() const {
}
bool TStructuredTokenParser::GetBasicAuth(TString& login, TString& password) const {
+ TString passwordReference;
+ return GetBasicAuth(login, password, passwordReference);
+}
+
+bool TStructuredTokenParser::GetBasicAuth(TString& login, TString& password, TString& passwordReference) const {
login = Data.GetField("basic_login");
- password = Data.GetField("basic_password");
+ password = Data.GetFieldOrDefault("basic_password", "");
+ passwordReference = Data.GetFieldOrDefault("basic_password_ref", "");
return true;
}
@@ -75,6 +120,15 @@ bool TStructuredTokenParser::IsNoAuth() const {
return Data.HasField("no_auth");
}
+void TStructuredTokenParser::ListReferences(TSet<TString>& references) const {
+ if (Data.HasField("basic_password_ref")) {
+ references.insert(Data.GetField("basic_password_ref"));
+ }
+ if (Data.HasField("sa_id_signature_ref")) {
+ references.insert(Data.GetField("sa_id_signature_ref"));
+ }
+}
+
TStructuredTokenBuilder TStructuredTokenParser::ToBuilder() const {
return TStructuredTokenBuilder(Data);
}
@@ -85,6 +139,7 @@ TStructuredTokenParser CreateStructuredTokenParser(const TString& content = {})
TString ComposeStructuredTokenJsonForServiceAccount(const TString& serviceAccountId, const TString& serviceAccountIdSignature, const TString& token) {
TStructuredTokenBuilder result;
+
if (serviceAccountId && serviceAccountIdSignature) {
result.SetServiceAccountIdAuth(serviceAccountId, serviceAccountIdSignature);
return result.ToJson();
@@ -99,4 +154,16 @@ TString ComposeStructuredTokenJsonForServiceAccount(const TString& serviceAccoun
return result.ToJson();
}
+TString ComposeStructuredTokenJsonForServiceAccountWithSecret(const TString& serviceAccountId, const TString& serviceAccountIdSignatureSecretName, const TString& serviceAccountIdSignature) {
+ TStructuredTokenBuilder result;
+
+ if (serviceAccountId && serviceAccountIdSignatureSecretName && serviceAccountIdSignature) {
+ result.SetServiceAccountIdAuthWithSecret(serviceAccountId, serviceAccountIdSignatureSecretName, serviceAccountIdSignature);
+ return result.ToJson();
+ }
+
+ result.SetNoAuth();
+ return result.ToJson();
+}
+
}
diff --git a/ydb/library/yql/providers/common/structured_token/yql_token_builder.h b/ydb/library/yql/providers/common/structured_token/yql_token_builder.h
index aec2659446..0661cec10e 100644
--- a/ydb/library/yql/providers/common/structured_token/yql_token_builder.h
+++ b/ydb/library/yql/providers/common/structured_token/yql_token_builder.h
@@ -2,6 +2,8 @@
#include <ydb/library/yql/providers/common/structured_token/yql_structured_token.h>
+#include <util/generic/set.h>
+
namespace NYql {
class TStructuredTokenBuilder {
@@ -11,9 +13,13 @@ public:
TStructuredTokenBuilder(TStructuredTokenBuilder&&) = default;
TStructuredTokenBuilder& SetServiceAccountIdAuth(const TString& accountId, const TString& accountIdSignature);
+ TStructuredTokenBuilder& SetServiceAccountIdAuthWithSecret(const TString& accountId, const TString& accountIdSignatureReference, const TString& accountIdSignature);
TStructuredTokenBuilder& SetBasicAuth(const TString& login, const TString& password);
+ TStructuredTokenBuilder& SetBasicAuthWithSecret(const TString& login, const TString& passwordReference);
TStructuredTokenBuilder& SetIAMToken(const TString& token);
TStructuredTokenBuilder& SetNoAuth();
+ TStructuredTokenBuilder& ReplaceReferences(const TMap<TString, TString> secrets);
+ TStructuredTokenBuilder& RemoveSecrets();
TString ToJson() const;
@@ -26,11 +32,14 @@ public:
explicit TStructuredTokenParser(TStructuredToken&& data);
bool HasServiceAccountIdAuth() const;
bool GetServiceAccountIdAuth(TString& accountId, TString& accountIdSignature) const;
+ bool GetServiceAccountIdAuth(TString& accountId, TString& accountIdSignature, TString& accountIdSignatureReference) const;
bool HasBasicAuth() const;
bool GetBasicAuth(TString& login, TString& password) const;
+ bool GetBasicAuth(TString& login, TString& password, TString& passwordReference) const;
bool HasIAMToken() const;
TString GetIAMToken() const;
bool IsNoAuth() const;
+ void ListReferences(TSet<TString>& references) const;
TStructuredTokenBuilder ToBuilder() const;
@@ -40,4 +49,5 @@ private:
TStructuredTokenParser CreateStructuredTokenParser(const TString& content);
TString ComposeStructuredTokenJsonForServiceAccount(const TString& serviceAccountId, const TString& serviceAccountIdSignature, const TString& token);
+TString ComposeStructuredTokenJsonForServiceAccountWithSecret(const TString& serviceAccountId, const TString& serviceAccountIdSignatureSecretName, const TString& serviceAccountIdSignature);
}
diff --git a/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp b/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp
index f29acf6fa3..cd5150afa3 100644
--- a/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp
+++ b/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp
@@ -46,8 +46,13 @@ private:
RequestInflight = true;
auto resultPromise = NThreading::NewPromise();
+ auto context = Client->CreateContext();
+ if (!context) {
+ throw yexception() << "Client is being shutted down";
+ }
std::weak_ptr<const TImpl> weakSelf = shared_from_this();
- auto cb = [weakSelf, resultPromise, sync](NGrpc::TGrpcStatus&& status, GetTokenResponse&& result) mutable {
+ // hold context until reply
+ auto cb = [weakSelf, resultPromise, sync, context](NGrpc::TGrpcStatus&& status, GetTokenResponse&& result) mutable {
if (auto self = weakSelf.lock()) {
self->ProcessResponse(std::move(status), std::move(result), sync);
}
@@ -66,7 +71,8 @@ private:
&TokenAccessorService::Stub::AsyncGetToken,
{
{}, {}, RequestTimeout
- }
+ },
+ context.get()
);
}
if (sync) {
diff --git a/ydb/library/yql/providers/dq/common/yql_dq_settings.cpp b/ydb/library/yql/providers/dq/common/yql_dq_settings.cpp
index f38f300135..61512abd44 100644
--- a/ydb/library/yql/providers/dq/common/yql_dq_settings.cpp
+++ b/ydb/library/yql/providers/dq/common/yql_dq_settings.cpp
@@ -60,6 +60,13 @@ TDqConfiguration::TDqConfiguration() {
REGISTER_SETTING(*this, HashShuffleMaxTasks).Lower(1).Upper(1000);
REGISTER_SETTING(*this, UseWideChannels);
+ REGISTER_SETTING(*this, UseWideBlockChannels)
+ .ValueSetter([this](const TString&, bool value) {
+ UseWideBlockChannels = value;
+ if (value) {
+ UseWideChannels = true;
+ }
+ });
REGISTER_SETTING(*this, UseFastPickleTransport);
REGISTER_SETTING(*this, UseOOBTransport);
diff --git a/ydb/library/yql/providers/dq/common/yql_dq_settings.h b/ydb/library/yql/providers/dq/common/yql_dq_settings.h
index 1c29292bfa..aa30d90a50 100644
--- a/ydb/library/yql/providers/dq/common/yql_dq_settings.h
+++ b/ydb/library/yql/providers/dq/common/yql_dq_settings.h
@@ -98,6 +98,7 @@ struct TDqSettings {
NCommon::TConfSetting<ui32, false> HashShuffleMaxTasks;
NCommon::TConfSetting<bool, false> UseWideChannels;
+ NCommon::TConfSetting<bool, false> UseWideBlockChannels;
NCommon::TConfSetting<bool, false> UseFastPickleTransport;
NCommon::TConfSetting<bool, false> UseOOBTransport;
@@ -151,6 +152,7 @@ struct TDqSettings {
SAVE_SETTING(HashShuffleTasksRatio);
SAVE_SETTING(HashShuffleMaxTasks);
SAVE_SETTING(UseWideChannels);
+ SAVE_SETTING(UseWideBlockChannels);
SAVE_SETTING(UseFastPickleTransport);
SAVE_SETTING(UseOOBTransport);
SAVE_SETTING(AggregateStatsByStage);
diff --git a/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp b/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp
index 24d6d6f38b..327c3f52cc 100644
--- a/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp
+++ b/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp
@@ -234,7 +234,16 @@ private:
void AfterTypeAnnotation(TTransformationPipeline* pipeline) const final {
pipeline->Add(NDqs::CreateDqsReplacePrecomputesTransformer(*pipeline->GetTypeAnnotationContext(), State_->FunctionRegistry), "ReplacePrecomputes");
bool useWideChannels = State_->Settings->UseWideChannels.Get().GetOrElse(false);
- pipeline->Add(NDq::CreateDqBuildPhyStagesTransformer(false, useWideChannels), "BuildPhy");
+ bool useChannelBlocks = State_->Settings->UseWideBlockChannels.Get().GetOrElse(false);
+ NDq::EChannelMode mode;
+ if (!useWideChannels) {
+ mode = NDq::EChannelMode::CHANNEL_SCALAR;
+ } else if (!useChannelBlocks) {
+ mode = NDq::EChannelMode::CHANNEL_WIDE;
+ } else {
+ mode = NDq::EChannelMode::CHANNEL_WIDE_BLOCK;
+ }
+ pipeline->Add(NDq::CreateDqBuildPhyStagesTransformer(false, *pipeline->GetTypeAnnotationContext(), mode), "BuildPhy");
pipeline->Add(NDqs::CreateDqsRewritePhyCallablesTransformer(*pipeline->GetTypeAnnotationContext()), "RewritePhyCallables");
}
diff --git a/ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp b/ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp
index e568efb416..0cc5f15570 100644
--- a/ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp
+++ b/ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp
@@ -180,7 +180,7 @@ private:
auto dataSink = State_->TypeCtx->DataSinkMap.FindPtr(dataSinkName);
YQL_ENSURE(dataSink);
if (auto dqIntegration = dataSink->Get()->GetDqIntegration()) {
- if (auto canWrite = dqIntegration->CanWrite(*State_->Settings, node, ctx)) {
+ if (auto canWrite = dqIntegration->CanWrite(node, ctx)) {
if (!canWrite.GetRef()) {
good = false;
} else if (!State_->Settings->EnableInsert.Get().GetOrElse(false)) {
diff --git a/ydb/library/yql/providers/pq/provider/yql_pq_dq_integration.cpp b/ydb/library/yql/providers/pq/provider/yql_pq_dq_integration.cpp
index a9cfab9cee..e47fd3b2b8 100644
--- a/ydb/library/yql/providers/pq/provider/yql_pq_dq_integration.cpp
+++ b/ydb/library/yql/providers/pq/provider/yql_pq_dq_integration.cpp
@@ -145,7 +145,7 @@ public:
return read;
}
- TMaybe<bool> CanWrite(const TDqSettings&, const TExprNode&, TExprContext&) override {
+ TMaybe<bool> CanWrite(const TExprNode&, TExprContext&) override {
YQL_ENSURE(false, "Unimplemented");
}
diff --git a/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp b/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp
index 40a1d4f494..78979a0f75 100644
--- a/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp
+++ b/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp
@@ -193,7 +193,7 @@ struct TEvPrivate {
};
struct TEvReadStarted : public TEventLocal<TEvReadStarted, EvReadStarted> {
- TEvReadStarted(CURLcode curlResponseCode, long httpResponseCode)
+ TEvReadStarted(CURLcode curlResponseCode, long httpResponseCode)
: CurlResponseCode(curlResponseCode), HttpResponseCode(httpResponseCode) {}
const CURLcode CurlResponseCode;
const long HttpResponseCode;
@@ -1287,7 +1287,7 @@ struct TReadBufferCounter {
DecodedBytes += deltaDecodedBytes;
DecodedRows += deltaDecodedRows;
}
-
+
ui64 Value = 0;
const ui64 Limit;
ui64 CoroCount = 0;
@@ -2234,7 +2234,8 @@ public:
const TS3ReadActorFactoryConfig& readActorFactoryCfg,
::NMonitoring::TDynamicCounterPtr counters,
::NMonitoring::TDynamicCounterPtr taskCounters,
- ui64 fileSizeLimit
+ ui64 fileSizeLimit,
+ IMemoryQuotaManager::TPtr memoryQuotaManager
) : ReadActorFactoryCfg(readActorFactoryCfg)
, Gateway(std::move(gateway))
, HolderFactory(holderFactory)
@@ -2252,7 +2253,8 @@ public:
, ReadSpec(readSpec)
, Counters(std::move(counters))
, TaskCounters(std::move(taskCounters))
- , FileSizeLimit(fileSizeLimit) {
+ , FileSizeLimit(fileSizeLimit)
+ , MemoryQuotaManager(memoryQuotaManager) {
if (Counters) {
QueueDataSize = Counters->GetCounter("QueueDataSize");
QueueDataLimit = Counters->GetCounter("QueueDataLimit");
@@ -2279,9 +2281,19 @@ public:
void Bootstrap() {
LOG_D("TS3StreamReadActor", "Bootstrap");
+
+ // Arrow blocks are currently not limited by mem quoter, so we use rough buffer quotation
+ // After exact mem control implementation, this allocation should be deleted
+ if (!MemoryQuotaManager->AllocateQuota(ReadActorFactoryCfg.DataInflight)) {
+ TIssues issues;
+ issues.AddIssue(TIssue{TStringBuilder() << "OutOfMemory - can't allocate read buffer"});
+ Send(ComputeActorId, new TEvAsyncInputError(InputIndex, std::move(issues), NYql::NDqProto::StatusIds::OVERLOADED));
+ return;
+ }
+
QueueBufferCounter = std::make_shared<TReadBufferCounter>(
- ReadActorFactoryCfg.DataInflight,
- TActivationContext::ActorSystem(),
+ ReadActorFactoryCfg.DataInflight,
+ TActivationContext::ActorSystem(),
QueueDataSize,
TaskQueueDataSize,
DownloadPaused,
@@ -2521,10 +2533,13 @@ private:
ContainerCache.Clear();
ArrowTupleContainerCache.Clear();
ArrowRowContainerCache.Clear();
+
+ MemoryQuotaManager->FreeQuota(ReadActorFactoryCfg.DataInflight);
} else {
LOG_W("TS3StreamReadActor", "PassAway w/o Bootstrap");
}
+ MemoryQuotaManager.reset();
TActorBootstrapped<TS3StreamReadActor>::PassAway();
}
@@ -2687,6 +2702,7 @@ private:
NActors::TActorId FileQueueActor;
const ui64 FileSizeLimit;
bool Bootstrapped = false;
+ IMemoryQuotaManager::TPtr MemoryQuotaManager;
};
using namespace NKikimr::NMiniKQL;
@@ -2841,7 +2857,8 @@ std::pair<NYql::NDq::IDqComputeActorAsyncInput*, IActor*> CreateS3ReadActor(
const IHTTPGateway::TRetryPolicy::TPtr& retryPolicy,
const TS3ReadActorFactoryConfig& cfg,
::NMonitoring::TDynamicCounterPtr counters,
- ::NMonitoring::TDynamicCounterPtr taskCounters)
+ ::NMonitoring::TDynamicCounterPtr taskCounters,
+ IMemoryQuotaManager::TPtr memoryQuotaManager)
{
const IFunctionRegistry& functionRegistry = *holderFactory.GetFunctionRegistry();
@@ -2988,7 +3005,7 @@ std::pair<NYql::NDq::IDqComputeActorAsyncInput*, IActor*> CreateS3ReadActor(
#undef SUPPORTED_FLAGS
const auto actor = new TS3StreamReadActor(inputIndex, txId, std::move(gateway), holderFactory, params.GetUrl(), authToken, pathPattern, pathPatternVariant,
std::move(paths), addPathIndex, startPathIndex, readSpec, computeActorId, retryPolicy,
- cfg, counters, taskCounters, fileSizeLimit);
+ cfg, counters, taskCounters, fileSizeLimit, memoryQuotaManager);
return {actor, actor};
} else {
diff --git a/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.h b/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.h
index 2b3e64b12a..690fb59385 100644
--- a/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.h
+++ b/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.h
@@ -25,6 +25,7 @@ std::pair<NYql::NDq::IDqComputeActorAsyncInput*, NActors::IActor*> CreateS3ReadA
const IHTTPGateway::TRetryPolicy::TPtr& retryPolicy,
const TS3ReadActorFactoryConfig& cfg,
::NMonitoring::TDynamicCounterPtr counters,
- ::NMonitoring::TDynamicCounterPtr taskCounters);
+ ::NMonitoring::TDynamicCounterPtr taskCounters,
+ IMemoryQuotaManager::TPtr memoryQuotaManager);
} // namespace NYql::NDq
diff --git a/ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp b/ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp
index b84c033570..ffd571e4b4 100644
--- a/ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp
+++ b/ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp
@@ -24,7 +24,7 @@ void RegisterS3ReadActorFactory(
return CreateS3ReadActor(args.TypeEnv, args.HolderFactory, gateway,
std::move(settings), args.InputIndex, args.TxId, args.SecureParams,
args.TaskParams, args.ComputeActorId, credentialsFactory, retryPolicy, cfg,
- counters, args.TaskCounters);
+ counters, args.TaskCounters, args.MemoryQuotaManager);
});
#else
Y_UNUSED(factory);
diff --git a/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.json b/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.json
index b87bab16ce..91d585082e 100644
--- a/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.json
+++ b/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.json
@@ -140,6 +140,16 @@
]
},
{
+ "Name": "TS3Insert",
+ "Base": "TCallable",
+ "Match": {"Type": "Callable", "Name": "S3Insert"},
+ "Children": [
+ {"Index": 0, "Name": "DataSink", "Type": "TS3DataSink"},
+ {"Index": 1, "Name": "Target", "Type": "TS3Target"},
+ {"Index": 2, "Name": "Input", "Type": "TExprBase"}
+ ]
+ },
+ {
"Name": "TS3SinkSettings",
"Base": "TCallable",
"Match": {"Type": "Callable", "Name": "S3SinkSettings"},
diff --git a/ydb/library/yql/providers/s3/provider/yql_s3_datasink_type_ann.cpp b/ydb/library/yql/providers/s3/provider/yql_s3_datasink_type_ann.cpp
index cf94e8f102..9000aaef8e 100644
--- a/ydb/library/yql/providers/s3/provider/yql_s3_datasink_type_ann.cpp
+++ b/ydb/library/yql/providers/s3/provider/yql_s3_datasink_type_ann.cpp
@@ -29,6 +29,7 @@ public:
AddHandler({TS3Target::CallableName()}, Hndl(&TSelf::HandleTarget));
AddHandler({TS3SinkSettings::CallableName()}, Hndl(&TSelf::HandleSink));
AddHandler({TS3SinkOutput::CallableName()}, Hndl(&TSelf::HandleOutput));
+ AddHandler({TS3Insert::CallableName()}, Hndl(&TSelf::HandleInsert));
}
private:
TStatus HandleCommit(TExprBase input, TExprContext&) {
@@ -84,6 +85,59 @@ private:
return TStatus::Ok;
}
+ TStatus HandleInsert(const TExprNode::TPtr& input, TExprContext& ctx) {
+ if (!EnsureArgsCount(*input, 3U, ctx)) {
+ return TStatus::Error;
+ }
+
+ if (!EnsureSpecificDataSink(*input->Child(TS3Insert::idx_DataSink), S3ProviderName, ctx)) {
+ return TStatus::Error;
+ }
+
+ auto source = input->Child(TS3Insert::idx_Input);
+ if (!EnsureListType(*source, ctx)) {
+ return TStatus::Error;
+ }
+
+ const TTypeAnnotationNode* sourceType = source->GetTypeAnn()->Cast<TListExprType>()->GetItemType();
+ if (!EnsureStructType(source->Pos(), *sourceType, ctx)) {
+ return TStatus::Error;
+ }
+
+ auto target = input->Child(TS3Insert::idx_Target);
+ if (!TS3Target::Match(target)) {
+ ctx.AddError(TIssue(ctx.GetPosition(target->Pos()), "Expected S3 target."));
+ return TStatus::Error;
+ }
+
+ TS3Target tgt(target);
+ if (auto settings = tgt.Settings()) {
+ if (auto userschema = GetSetting(settings.Cast().Ref(), "userschema")) {
+ const TTypeAnnotationNode* targetType = userschema->Child(1)->GetTypeAnn()->Cast<TTypeExprType>()->GetType();
+ if (!IsSameAnnotation(*targetType, *sourceType)) {
+ ctx.AddError(TIssue(ctx.GetPosition(source->Pos()),
+ TStringBuilder() << "Type mismatch between schema type: " << *targetType
+ << " and actual data type: " << *sourceType << ", diff is: "
+ << GetTypeDiff(*targetType, *sourceType)));
+ return TStatus::Error;
+ }
+ }
+ }
+
+ input->SetTypeAnn(
+ ctx.MakeType<TTupleExprType>(
+ TTypeAnnotationNode::TListType{
+ ctx.MakeType<TListExprType>(
+ ctx.MakeType<TOptionalExprType>(
+ ctx.MakeType<TDataExprType>(EDataSlot::String)
+ )
+ )
+ }
+ )
+ );
+ return TStatus::Ok;
+ }
+
TStatus HandleTarget(const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) {
if (!EnsureMinMaxArgsCount(*input, 2U, 3U, ctx)) {
return TStatus::Error;
diff --git a/ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp b/ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp
index 7d5672179b..c149913f53 100644
--- a/ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp
+++ b/ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp
@@ -32,7 +32,12 @@ public:
void AddCluster(const TString& name, const THashMap<TString, TString>& properties) override {
auto& settings = State_->Configuration->Clusters[name];
settings.Url = properties.Value("location", "");
- State_->Configuration->Tokens[name] = ComposeStructuredTokenJsonForServiceAccount(properties.Value("serviceAccountId", ""), properties.Value("serviceAccountIdSignature", ""), properties.Value("authToken", ""));
+ auto signReference = properties.Value("serviceAccountIdSignatureReference", "");
+ if (signReference) {
+ State_->Configuration->Tokens[name] = ComposeStructuredTokenJsonForServiceAccountWithSecret(properties.Value("serviceAccountId", ""), signReference, properties.Value("serviceAccountIdSignature", ""));
+ } else {
+ State_->Configuration->Tokens[name] = ComposeStructuredTokenJsonForServiceAccount(properties.Value("serviceAccountId", ""), properties.Value("serviceAccountIdSignature", ""), properties.Value("authToken", ""));
+ }
}
TStringBuf GetName() const override {
diff --git a/ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp b/ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp
index 31628ec902..d98ab61154 100644
--- a/ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp
+++ b/ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp
@@ -340,6 +340,21 @@ public:
}
}
+ TMaybe<bool> CanWrite(const TExprNode& write, TExprContext& ctx) override {
+ Y_UNUSED(ctx);
+ return TS3WriteObject::Match(&write);
+ }
+
+ TExprNode::TPtr WrapWrite(const TExprNode::TPtr& writeNode, TExprContext& ctx) override {
+ TExprBase writeExpr(writeNode);
+ const auto write = writeExpr.Cast<TS3WriteObject>();
+ return Build<TS3Insert>(ctx, write.Pos())
+ .DataSink(write.DataSink())
+ .Target(write.Target())
+ .Input(write.Input())
+ .Done().Ptr();
+ }
+
void FillSinkSettings(const TExprNode& node, ::google::protobuf::Any& protoSettings, TString& sinkType) override {
const TDqSink sink(&node);
if (const auto maybeSettings = sink.Settings().Maybe<TS3SinkSettings>()) {
diff --git a/ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp b/ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp
index 9feecb6722..61700c459a 100644
--- a/ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp
+++ b/ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp
@@ -587,7 +587,7 @@ private:
if (!s3ParseSettingsBase.Paths().Empty()) {
resultSetLimitPerPath /= s3ParseSettingsBase.Paths().Size();
}
-
+
for (auto path : s3ParseSettingsBase.Paths()) {
NS3Details::TPathList directories;
NS3Details::UnpackPathsList(path.Data().Literal().Value(), FromString<bool>(path.IsText().Literal().Value()), directories);
@@ -613,7 +613,7 @@ private:
State_->Configuration->UseConcurrentDirectoryLister.Get().GetOrElse(
State_->Configuration->AllowConcurrentListings),
.MaxResultSet = resultSetLimitPerPath});
-
+
RequestsByNode_[source.Raw()].push_back(req);
PendingRequests_[req] = future;
@@ -755,7 +755,7 @@ private:
.S3Request{.Url = url, .Token = tokenStr},
.FilePattern = effectiveFilePattern,
.Options{
- .IsConcurrentListing = isConcurrentListingEnabled,
+ .IsConcurrentListing = isConcurrentListingEnabled,
.MaxResultSet = std::max(State_->Configuration->MaxDiscoveryFilesPerQuery, State_->Configuration->MaxDirectoriesAndFilesPerQuery)
}};
diff --git a/ydb/library/yql/providers/s3/provider/yql_s3_phy_opt.cpp b/ydb/library/yql/providers/s3/provider/yql_s3_phy_opt.cpp
index 7bfad7c4e6..2035ee5936 100644
--- a/ydb/library/yql/providers/s3/provider/yql_s3_phy_opt.cpp
+++ b/ydb/library/yql/providers/s3/provider/yql_s3_phy_opt.cpp
@@ -104,6 +104,7 @@ public:
#define HNDL(name) "PhysicalOptimizer-"#name, Hndl(&TS3PhysicalOptProposalTransformer::name)
AddHandler(0, &TCoLeft::Match, HNDL(TrimReadWorld));
AddHandler(0, &TS3WriteObject::Match, HNDL(S3WriteObject));
+ AddHandler(0, &TS3Insert::Match, HNDL(S3Insert));
#undef HNDL
}
@@ -118,7 +119,276 @@ public:
return TExprBase(maybeRead.Cast().World().Ptr());
}
+ TMaybe<TDqStage> BuildSinkStage(TPositionHandle writePos, TS3DataSink dataSink, TS3Target target, TExprBase input, TExprContext& ctx, const TGetParents& getParents) const {
+ const auto& cluster = dataSink.Cluster().StringValue();
+ const auto token = "cluster:default_" + cluster;
+ const auto& settings = target.Settings().Ref();
+ auto partBy = GetPartitionBy(settings);
+ auto keys = GetPartitionKeys(partBy);
+
+ auto sinkSettingsBuilder = Build<TExprList>(ctx, target.Pos());
+ if (partBy)
+ sinkSettingsBuilder.Add(std::move(partBy));
+
+ auto compression = GetCompression(settings);
+ const auto& extension = GetExtension(target.Format().Value(), compression ? compression->Tail().Content() : ""sv);
+ if (compression)
+ sinkSettingsBuilder.Add(std::move(compression));
+
+ auto sinkOutputSettingsBuilder = Build<TExprList>(ctx, target.Pos());
+ if (auto csvDelimiter = GetCsvDelimiter(settings)) {
+ sinkOutputSettingsBuilder.Add(std::move(csvDelimiter));
+ }
+
+ bool hasDateTimeFormat = false;
+ bool hasDateTimeFormatName = false;
+ bool hasTimestampFormat = false;
+ bool hasTimestampFormatName = false;
+ if (auto dateTimeFormatName = GetDateTimeFormatName(settings)) {
+ sinkOutputSettingsBuilder.Add(std::move(dateTimeFormatName));
+ hasDateTimeFormatName = true;
+ }
+
+ if (auto dateTimeFormat = GetDateTimeFormat(settings)) {
+ sinkOutputSettingsBuilder.Add(std::move(dateTimeFormat));
+ hasDateTimeFormat = true;
+ }
+
+ if (auto timestampFormatName = GetTimestampFormatName(settings)) {
+ sinkOutputSettingsBuilder.Add(std::move(timestampFormatName));
+ hasTimestampFormatName = true;
+ }
+
+ if (auto timestampFormat = GetTimestampFormat(settings)) {
+ sinkOutputSettingsBuilder.Add(std::move(timestampFormat));
+ hasTimestampFormat = true;
+ }
+
+ if (!hasDateTimeFormat && !hasDateTimeFormatName) {
+ TExprNode::TListType pair;
+ pair.push_back(ctx.NewAtom(target.Pos(), "data.datetime.formatname"));
+ pair.push_back(ctx.NewAtom(target.Pos(), "POSIX"));
+ sinkOutputSettingsBuilder.Add(ctx.NewList(target.Pos(), std::move(pair)));
+ }
+
+ if (!hasTimestampFormat && !hasTimestampFormatName) {
+ TExprNode::TListType pair;
+ pair.push_back(ctx.NewAtom(target.Pos(), "data.timestamp.formatname"));
+ pair.push_back(ctx.NewAtom(target.Pos(), "POSIX"));
+ sinkOutputSettingsBuilder.Add(ctx.NewList(target.Pos(), std::move(pair)));
+ }
+
+ const TStringBuf format = target.Format();
+ if (format != "raw" && format != "json_list") { // multipart
+ {
+ TExprNode::TListType pair;
+ pair.push_back(ctx.NewAtom(target.Pos(), "multipart"));
+ pair.push_back(ctx.NewAtom(target.Pos(), "true"));
+ sinkSettingsBuilder.Add(ctx.NewList(target.Pos(), std::move(pair)));
+ }
+ {
+ TExprNode::TListType pair;
+ pair.push_back(ctx.NewAtom(target.Pos(), "file_size_limit"));
+ size_t fileSize = 50_MB;
+ if (const auto& maxObjectSize = State_->Configuration->MaxOutputObjectSize.Get()) {
+ fileSize = *maxObjectSize;
+ }
+ pair.push_back(ctx.NewAtom(target.Pos(), ToString(fileSize)));
+ sinkOutputSettingsBuilder.Add(ctx.NewList(target.Pos(), std::move(pair)));
+ }
+ }
+
+ if (!FindNode(input.Ptr(), [] (const TExprNode::TPtr& node) { return node->IsCallable(TCoDataSource::CallableName()); })) {
+ YQL_CLOG(INFO, ProviderS3) << "Rewrite pure S3WriteObject `" << cluster << "`.`" << target.Path().StringValue() << "` as stage with sink.";
+ return keys.empty() ?
+ Build<TDqStage>(ctx, writePos)
+ .Inputs().Build()
+ .Program<TCoLambda>()
+ .Args({})
+ .Body<TS3SinkOutput>()
+ .Input<TCoToFlow>()
+ .Input(input)
+ .Build()
+ .Format(target.Format())
+ .KeyColumns().Build()
+ .Settings(sinkOutputSettingsBuilder.Done())
+ .Build()
+ .Build()
+ .Outputs<TDqStageOutputsList>()
+ .Add<TDqSink>()
+ .DataSink(dataSink)
+ .Index().Value("0").Build()
+ .Settings<TS3SinkSettings>()
+ .Path(target.Path())
+ .Settings(sinkSettingsBuilder.Done())
+ .Token<TCoSecureParam>()
+ .Name().Build(token)
+ .Build()
+ .Extension().Value(extension).Build()
+ .Build()
+ .Build()
+ .Build()
+ .Settings().Build()
+ .Done()
+ :
+ Build<TDqStage>(ctx, writePos)
+ .Inputs()
+ .Add<TDqCnHashShuffle>()
+ .Output<TDqOutput>()
+ .Stage<TDqStage>()
+ .Inputs().Build()
+ .Program<TCoLambda>()
+ .Args({})
+ .Body<TCoToFlow>()
+ .Input(input)
+ .Build()
+ .Build()
+ .Settings().Build()
+ .Build()
+ .Index().Value("0", TNodeFlags::Default).Build()
+ .Build()
+ .KeyColumns().Add(keys).Build()
+ .Build()
+ .Build()
+ .Program<TCoLambda>()
+ .Args({"in"})
+ .Body<TS3SinkOutput>()
+ .Input("in")
+ .Format(target.Format())
+ .KeyColumns().Add(keys).Build()
+ .Settings(sinkOutputSettingsBuilder.Done())
+ .Build()
+ .Build()
+ .Outputs<TDqStageOutputsList>()
+ .Add<TDqSink>()
+ .DataSink(dataSink)
+ .Index().Value("0", TNodeFlags::Default).Build()
+ .Settings<TS3SinkSettings>()
+ .Path(target.Path())
+ .Settings(sinkSettingsBuilder.Done())
+ .Token<TCoSecureParam>()
+ .Name().Build(token)
+ .Build()
+ .Extension().Value(extension).Build()
+ .Build()
+ .Build()
+ .Build()
+ .Settings().Build()
+ .Done();
+ }
+
+ if (!TDqCnUnionAll::Match(input.Raw())) {
+ return Nothing();
+ }
+
+ const TParentsMap* parentsMap = getParents();
+ const auto dqUnion = input.Cast<TDqCnUnionAll>();
+ if (!NDq::IsSingleConsumerConnection(dqUnion, *parentsMap)) {
+ return Nothing();
+ }
+
+ YQL_CLOG(INFO, ProviderS3) << "Rewrite S3WriteObject `" << cluster << "`.`" << target.Path().StringValue() << "` as sink.";
+
+ const auto inputStage = dqUnion.Output().Stage().Cast<TDqStage>();
+
+ const auto sink = Build<TDqSink>(ctx, writePos)
+ .DataSink(dataSink)
+ .Index(dqUnion.Output().Index())
+ .Settings<TS3SinkSettings>()
+ .Path(target.Path())
+ .Settings(sinkSettingsBuilder.Done())
+ .Token<TCoSecureParam>()
+ .Name().Build(token)
+ .Build()
+ .Extension().Value(extension).Build()
+ .Build()
+ .Done();
+
+ auto outputsBuilder = Build<TDqStageOutputsList>(ctx, target.Pos());
+ if (inputStage.Outputs() && keys.empty()) {
+ outputsBuilder.InitFrom(inputStage.Outputs().Cast());
+ }
+ outputsBuilder.Add(sink);
+
+ if (keys.empty()) {
+ const auto outputBuilder = Build<TS3SinkOutput>(ctx, target.Pos())
+ .Input(inputStage.Program().Body().Ptr())
+ .Format(target.Format())
+ .KeyColumns().Add(std::move(keys)).Build()
+ .Settings(sinkOutputSettingsBuilder.Done())
+ .Done();
+
+ return Build<TDqStage>(ctx, writePos)
+ .InitFrom(inputStage)
+ .Program(ctx.DeepCopyLambda(inputStage.Program().Ref(), outputBuilder.Ptr()))
+ .Outputs(outputsBuilder.Done())
+ .Done();
+ } else {
+ return Build<TDqStage>(ctx, writePos)
+ .Inputs()
+ .Add<TDqCnHashShuffle>()
+ .Output<TDqOutput>()
+ .Stage(inputStage)
+ .Index(dqUnion.Output().Index())
+ .Build()
+ .KeyColumns().Add(keys).Build()
+ .Build()
+ .Build()
+ .Program<TCoLambda>()
+ .Args({"in"})
+ .Body<TS3SinkOutput>()
+ .Input("in")
+ .Format(target.Format())
+ .KeyColumns().Add(std::move(keys)).Build()
+ .Settings(sinkOutputSettingsBuilder.Done())
+ .Build()
+ .Build()
+ .Settings().Build()
+ .Outputs(outputsBuilder.Done())
+ .Done();
+ }
+ }
+
+ TMaybeNode<TExprBase> S3Insert(TExprBase node, TExprContext& ctx, const TGetParents& getParents) const {
+ auto insert = node.Cast<TS3Insert>();
+ TMaybe<TDqStage> stage
+ = BuildSinkStage(node.Pos(),
+ insert.DataSink(),
+ insert.Target(),
+ insert.Input(),
+ ctx,
+ getParents);
+
+ if (stage) {
+ return *stage;
+ } else {
+ return node;
+ }
+ }
+
TMaybeNode<TExprBase> S3WriteObject(TExprBase node, TExprContext& ctx, const TGetParents& getParents) const {
+ auto write = node.Cast<TS3WriteObject>();
+ TMaybe<TDqStage> stage
+ = BuildSinkStage(node.Pos(),
+ write.DataSink(),
+ write.Target(),
+ write.Input(),
+ ctx,
+ getParents);
+
+ if (stage) {
+ return Build<TDqQuery>(ctx, write.Pos())
+ .World(write.World())
+ .SinkStages()
+ .Add(*stage)
+ .Build()
+ .Done();
+ } else {
+ return node;
+ }
+ }
+
+ TMaybeNode<TExprBase> S3WriteObject1(TExprBase node, TExprContext& ctx, const TGetParents& getParents) const {
const auto& write = node.Cast<TS3WriteObject>();
const auto& targetNode = write.Target();
const auto& cluster = write.DataSink().Cluster().StringValue();
diff --git a/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp b/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp
index 33be2f8fdd..cb82aec4f5 100644
--- a/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp
+++ b/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp
@@ -87,7 +87,7 @@ public:
YQL_ENSURE(false, "Unimplemented");
}
- TMaybe<bool> CanWrite(const TDqSettings&, const TExprNode&, TExprContext&) override {
+ TMaybe<bool> CanWrite(const TExprNode&, TExprContext&) override {
YQL_ENSURE(false, "Unimplemented");
}
diff --git a/ydb/library/yql/sql/pg/optimizer_ut.cpp b/ydb/library/yql/sql/pg/optimizer_ut.cpp
index 2cff43bb21..0bcfa3aaf4 100644
--- a/ydb/library/yql/sql/pg/optimizer_ut.cpp
+++ b/ydb/library/yql/sql/pg/optimizer_ut.cpp
@@ -117,4 +117,61 @@ EqClasses: [[a,b,c]]
UNIT_ASSERT_STRINGS_EQUAL(expected, str);
}
+Y_UNIT_TEST(InputNormalize) {
+ IOptimizer::TRel rel1 = {100000, 1000000, {{'a'}}};
+ IOptimizer::TRel rel2 = {1000000, 9000009, {{'b'}}};
+ IOptimizer::TRel rel3 = {10000, 9009, {{'c'}}};
+ IOptimizer::TInput input = {{rel1, rel2, rel3}};
+
+ input.EqClasses.emplace_back(IOptimizer::TEq {
+ {{1, 1}, {2, 1}}
+ });
+ input.EqClasses.emplace_back(IOptimizer::TEq {
+ {{2, 1}, {3, 1}}
+ });
+
+ TString expected = R"__(Rels: [{rows: 100000,cost: 1000000,vars: [a]},
+{rows: 1000000,cost: 9000009,vars: [b]},
+{rows: 10000,cost: 9009,vars: [c]}]
+EqClasses: [[a,b],[b,c]]
+)__";
+ UNIT_ASSERT_STRINGS_EQUAL(expected, input.ToString());
+
+ input.Normalize();
+
+ expected = R"__(Rels: [{rows: 100000,cost: 1000000,vars: [a]},
+{rows: 1000000,cost: 9000009,vars: [b]},
+{rows: 10000,cost: 9009,vars: [c]}]
+EqClasses: [[a,b,c]]
+)__";
+ UNIT_ASSERT_STRINGS_EQUAL(expected, input.ToString());
+
+ IOptimizer::TRel rel4 = {10001, 9009, {{'d'}}};
+ IOptimizer::TInput input2 = {{rel1, rel2, rel3, rel4}};
+ input2.EqClasses.emplace_back(IOptimizer::TEq {
+ {{1, 1}, {2, 1}}
+ });
+ input2.EqClasses.emplace_back(IOptimizer::TEq {
+ {{4, 1}, {3, 1}}
+ });
+
+ expected = R"__(Rels: [{rows: 100000,cost: 1000000,vars: [a]},
+{rows: 1000000,cost: 9000009,vars: [b]},
+{rows: 10000,cost: 9009,vars: [c]},
+{rows: 10001,cost: 9009,vars: [d]}]
+EqClasses: [[a,b],[d,c]]
+)__";
+ UNIT_ASSERT_STRINGS_EQUAL(expected, input2.ToString());
+
+ input2.Normalize();
+
+ expected = R"__(Rels: [{rows: 100000,cost: 1000000,vars: [a]},
+{rows: 1000000,cost: 9000009,vars: [b]},
+{rows: 10000,cost: 9009,vars: [c]},
+{rows: 10001,cost: 9009,vars: [d]}]
+EqClasses: [[a,b],[c,d]]
+)__";
+ UNIT_ASSERT_STRINGS_EQUAL(expected, input2.ToString());
+}
+
} // Y_UNIT_TEST_SUITE(PgOptimizer)
diff --git a/ydb/library/yql/sql/pg/pg_sql.cpp b/ydb/library/yql/sql/pg/pg_sql.cpp
index 1131f584c2..1d0e2df57f 100644
--- a/ydb/library/yql/sql/pg/pg_sql.cpp
+++ b/ydb/library/yql/sql/pg/pg_sql.cpp
@@ -653,39 +653,7 @@ public:
if (!x) {
return nullptr;
}
-
- bool isStar = false;
- if (NodeTag(r->val) == T_ColumnRef) {
- auto ref = CAST_NODE(ColumnRef, r->val);
- for (int fieldNo = 0; fieldNo < ListLength(ref->fields); ++fieldNo) {
- if (NodeTag(ListNodeNth(ref->fields, fieldNo)) == T_A_Star) {
- isStar = true;
- break;
- }
- }
- }
-
- TString name;
- if (!isStar) {
- name = r->name;
- if (name.empty()) {
- if (NodeTag(r->val) == T_ColumnRef) {
- auto ref = CAST_NODE(ColumnRef, r->val);
- auto field = ListNodeNth(ref->fields, ListLength(ref->fields) - 1);
- if (NodeTag(field) == T_String) {
- name = StrVal(field);
- }
- }
- }
-
- if (name.empty()) {
- name = "column" + ToString(i++);
- }
- }
-
- auto lambda = L(A("lambda"), QL(), x);
- auto columnName = QAX(name);
- res.push_back(L(A("PgResultItem"), columnName, L(A("Void")), lambda));
+ res.push_back(CreatePgResultItem(r, x, i));
}
TVector<TAstNode*> val;
@@ -909,15 +877,89 @@ public:
}
[[nodiscard]]
+ TAstNode* CreatePgResultItem(const ResTarget* r, TAstNode* x, ui32& columnIndex) {
+ bool isStar = false;
+ if (NodeTag(r->val) == T_ColumnRef) {
+ auto ref = CAST_NODE(ColumnRef, r->val);
+ for (int fieldNo = 0; fieldNo < ListLength(ref->fields); ++fieldNo) {
+ if (NodeTag(ListNodeNth(ref->fields, fieldNo)) == T_A_Star) {
+ isStar = true;
+ break;
+ }
+ }
+ }
+
+ TString name;
+ if (!isStar) {
+ name = r->name;
+ if (name.empty()) {
+ if (NodeTag(r->val) == T_ColumnRef) {
+ auto ref = CAST_NODE(ColumnRef, r->val);
+ auto field = ListNodeNth(ref->fields, ListLength(ref->fields) - 1);
+ if (NodeTag(field) == T_String) {
+ name = StrVal(field);
+ }
+ }
+ }
+
+ if (name.empty()) {
+ name = "column" + ToString(columnIndex++);
+ }
+ }
+
+ const auto lambda = L(A("lambda"), QL(), x);
+ const auto columnName = QAX(name);
+ return L(A("PgResultItem"), columnName, L(A("Void")), lambda);
+ }
+
+ [[nodiscard]]
+ std::optional<TVector<TAstNode*>> ParseReturningList(const List* returningList) {
+ TVector <TAstNode*> list;
+ if (ListLength(returningList) == 0) {
+ return {};
+ }
+ ui32 index = 0;
+ for (size_t i = 0; i < ListLength(returningList); i++) {
+ auto node = ListNodeNth(returningList, i);
+ if (NodeTag(node) != T_ResTarget) {
+ NodeNotImplemented(returningList, node);
+ return std::nullopt;
+ }
+ auto r = CAST_NODE(ResTarget, node);
+ if (!r->val) {
+ AddError("SelectStmt: expected value");
+ return std::nullopt;
+ }
+ if (NodeTag(r->val) != T_ColumnRef) {
+ NodeNotImplemented(r, r->val);
+ return std::nullopt;
+ }
+ TExprSettings settings;
+ settings.AllowColumns = true;
+ auto columnRef = ParseColumnRef(CAST_NODE(ColumnRef, r->val), settings);
+ if (!columnRef) {
+ return std::nullopt;
+ }
+ list.emplace_back(CreatePgResultItem(r, columnRef, index));
+ }
+ return list;
+ }
+
+ [[nodiscard]]
TAstNode* ParseInsertStmt(const InsertStmt* value) {
if (value->onConflictClause) {
AddError("InsertStmt: not supported onConflictClause");
return nullptr;
}
- if (ListLength(value->returningList) > 0) {
- AddError("InsertStmt: not supported returningList");
- return nullptr;
+ TVector <TAstNode*> returningList;
+ if (value->returningList) {
+ auto list = ParseReturningList(value->returningList);
+ if (list.has_value()) {
+ returningList = list.value();
+ } else {
+ return nullptr;
+ }
}
if (value->withClause) {
@@ -954,7 +996,7 @@ public:
return nullptr;
}
- const auto writeOptions = BuildWriteOptions(value);
+ const auto writeOptions = BuildWriteOptions(value, std::move(returningList));
Statements.push_back(L(
A("let"),
@@ -1046,6 +1088,7 @@ private:
std::vector<TAstNode*> NotNullColumns;
std::unordered_set<TString> NotNullColSet;
bool isTemporary;
+ std::vector<TAstNode*> SerialColumns;
};
bool CheckConstraintSupported(const Constraint* pk) {
@@ -1113,7 +1156,7 @@ private:
return inserted;
}
- const TString& FindColumnTypeAlias(const TString& colType) {
+ const TString& FindColumnTypeAlias(const TString& colType, bool& isTypeSerial) {
const static std::unordered_map<TString, TString> aliasMap {
{"smallserial", "int2"},
{"serial2", "int2"},
@@ -1122,10 +1165,12 @@ private:
{"bigserial", "int8"},
{"serial8", "int8"},
};
- const auto aliasIt = aliasMap.find(ToLowerUTF8(colType));
+ const auto aliasIt = aliasMap.find(to_lower(colType));
if (aliasIt == aliasMap.end()) {
+ isTypeSerial = false;
return colType;
}
+ isTypeSerial = true;
return aliasIt->second;
}
@@ -1170,7 +1215,12 @@ private:
// for now we pass just the last part of the type name
auto colTypeVal = StrVal( ListNodeNth(node->typeName->names,
ListLength(node->typeName->names) - 1));
- const auto colType = FindColumnTypeAlias(colTypeVal);
+ bool isTypeSerial = false;
+ const auto colType = FindColumnTypeAlias(colTypeVal, isTypeSerial);
+
+ if (isTypeSerial) {
+ ctx.SerialColumns.push_back(QA(node->colname));
+ }
ctx.Columns.push_back(
QL(QA(node->colname), L(A("PgType"), QA(colType)))
@@ -1213,13 +1263,16 @@ private:
if (!ctx.NotNullColumns.empty()) {
options.push_back(QL(QA("notnull"), QVL(ctx.NotNullColumns.data(), ctx.NotNullColumns.size())));
}
+ if (!ctx.SerialColumns.empty()) {
+ options.push_back(QL(QA("serialColumns"), QVL(ctx.SerialColumns.data(), ctx.SerialColumns.size())));
+ }
if (ctx.isTemporary) {
options.push_back(QL(QA("temporary")));
}
return QVL(options.data(), options.size());
}
- TAstNode* BuildWriteOptions(const InsertStmt* value) {
+ TAstNode* BuildWriteOptions(const InsertStmt* value, TVector<TAstNode*> returningList = {}) {
std::vector<TAstNode*> options;
const auto insertMode = (ProviderToInsertModeMap.contains(Provider))
@@ -1227,6 +1280,10 @@ private:
: "append";
options.push_back(QL(QA("mode"), QA(insertMode)));
+ if (!returningList.empty()) {
+ options.push_back(QL(QA("returning"), QVL(returningList.data(), returningList.size())));
+ }
+
if (!value->selectStmt) {
options.push_back(QL(QA("default_values")));
}
@@ -1555,9 +1612,14 @@ public:
AddError("using is not supported");
return nullptr;
}
+ TVector <TAstNode*> returningList;
if (value->returningList) {
- AddError("returning is not supported");
- return nullptr;
+ auto list = ParseReturningList(value->returningList);
+ if (list.has_value()) {
+ returningList = list.value();
+ } else {
+ return nullptr;
+ }
}
if (value->withClause) {
AddError("with is not supported");
@@ -1613,6 +1675,12 @@ public:
auto [sink, key] = ParseWriteRangeVar(value->relation);
+ std::vector<TAstNode*> options;
+ options.push_back(QL(QA("pg_delete"), select));
+ options.push_back(QL(QA("mode"), QA("delete")));
+ if (!returningList.empty()) {
+ options.push_back(QL(QA("returning"), QVL(returningList.data(), returningList.size())));
+ }
Statements.push_back(L(
A("let"),
A("world"),
@@ -1622,10 +1690,7 @@ public:
sink,
key,
L(A("Void")),
- QL(
- QL(QA("pg_delete"), select),
- QL(QA("mode"), QA("delete"))
- )
+ QVL(options.data(), options.size())
)
));
return Statements.back();
diff --git a/ydb/library/yql/sql/pg/pg_sql_ut.cpp b/ydb/library/yql/sql/pg/pg_sql_ut.cpp
index 1e7adbde0d..78ae9f4b17 100644
--- a/ydb/library/yql/sql/pg/pg_sql_ut.cpp
+++ b/ydb/library/yql/sql/pg/pg_sql_ut.cpp
@@ -78,7 +78,7 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) {
const NYql::TAstNode* writeNode = nullptr;
VisitAstNodes(*res.Root, [&writeNode] (const NYql::TAstNode& node) {
- const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0
+ const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0
&& node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "Write!";
if (isWriteNode) {
writeNode = &node;
@@ -91,6 +91,26 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) {
UNIT_ASSERT(optionsQListNode->ToString().Contains("'default_values"));
}
+ Y_UNIT_TEST(InsertStmt_Returning) {
+ auto res = PgSqlToYql("INSERT INTO plato.Input VALUES (1, 1) RETURNING *");
+ UNIT_ASSERT(res.Root);
+ const NYql::TAstNode* writeNode = nullptr;
+ VisitAstNodes(*res.Root, [&writeNode] (const NYql::TAstNode& node) {
+ const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0
+ && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "Write!";
+ if (isWriteNode) {
+ writeNode = &node;
+ }
+ });
+ UNIT_ASSERT(writeNode);
+ UNIT_ASSERT(writeNode->GetChildrenCount() > 5);
+ const auto optionsQListNode = writeNode->GetChild(5);
+ UNIT_ASSERT_STRINGS_EQUAL(
+ optionsQListNode->ToString(),
+ R"('('('mode 'append) '('returning '((PgResultItem '"" (Void) (lambda '() (PgStar)))))))"
+ );
+ }
+
Y_UNIT_TEST(DeleteStmt) {
auto res = PgSqlToYql("DELETE FROM plato.Input");
UNIT_ASSERT(res.Root);
@@ -108,6 +128,26 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) {
UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString());
}
+ Y_UNIT_TEST(DeleteStmt_Returning) {
+ auto res = PgSqlToYql("DELETE FROM plato.Input RETURNING name, price AS new_price");
+ UNIT_ASSERT(res.Root);
+ const NYql::TAstNode* writeNode = nullptr;
+ VisitAstNodes(*res.Root, [&writeNode] (const NYql::TAstNode& node) {
+ const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0
+ && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "Write!";
+ if (isWriteNode) {
+ writeNode = &node;
+ }
+ });
+ UNIT_ASSERT(writeNode);
+ UNIT_ASSERT(writeNode->GetChildrenCount() > 5);
+ const auto optionsQListNode = writeNode->GetChild(5);
+ UNIT_ASSERT_STRINGS_EQUAL(
+ optionsQListNode->GetChild(1)->GetChild(2)->ToString(),
+ R"('('returning '((PgResultItem '"name" (Void) (lambda '() (PgColumnRef '"name"))) (PgResultItem '"new_price" (Void) (lambda '() (PgColumnRef '"price"))))))"
+ );
+ }
+
Y_UNIT_TEST(CreateTableStmt_Basic) {
auto res = PgSqlToYql("CREATE TABLE t (a int, b text)");
UNIT_ASSERT(res.Root);
@@ -221,22 +261,22 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) {
auto issue = *(res.Issues.begin());
UNIT_ASSERT(issue.GetMessage().find("PK column does not belong to table") != TString::npos);
}
-
+
Y_UNIT_TEST(CreateTableStmt_AliasSerialToIntType) {
auto res = PgSqlToYql("CREATE TABLE t (a SerIAL)");
UNIT_ASSERT(res.Root);
-
+
TString program = R"(
(
(let world (Configure! world (DataSource 'config) 'OrderedColumns))
- (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4)))))))
- (let world (CommitAll! world))
+ (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4)))) '('serialColumns '('a)))))
+ (let world (CommitAll! world))
(return world))
)";
const auto expectedAst = NYql::ParseAst(program);
UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString());
}
-
+
Y_UNIT_TEST(CreateTableStmt_Temp) {
auto res = PgSqlToYql("create temp table t ()");
UNIT_ASSERT(res.Root);
@@ -260,24 +300,24 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) {
TString program = fmt::format(R"(
(
(let world (Configure! world (DataSource 'config) 'OrderedColumns))
- (let output (PgSelect '('('set_items '((PgSetItem '('('result '((PgResultItem '"server_version_num" (Void) (lambda '() (PgConst '"{}" (PgType 'text)))))))))) '('set_ops '('push)))))
+ (let output (PgSelect '('('set_items '((PgSetItem '('('result '((PgResultItem '"server_version_num" (Void) (lambda '() (PgConst '"{}" (PgType 'text)))))))))) '('set_ops '('push)))))
(let result_sink (DataSink 'result))
- (let world (Write! world result_sink (Key) output '('('type) '('autoref))))
- (let world (Commit! world result_sink))
- (let world (CommitAll! world))
+ (let world (Write! world result_sink (Key) output '('('type) '('autoref))))
+ (let world (Commit! world result_sink))
+ (let world (CommitAll! world))
(return world)
)
)", NYql::GetPostgresServerVersionNum());
const auto expectedAst = NYql::ParseAst(program);
UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString());
}
-
+
TMap<TString, TString> GetParamNameToPgType(const NYql::TAstNode& root) {
TMap<TString, TString> actualParamToType;
VisitAstNodes(root, [&actualParamToType] (const NYql::TAstNode& node) {
- bool isDeclareNode =
- node.IsListOfSize(3) && node.GetChild(0)->IsAtom()
+ bool isDeclareNode =
+ node.IsListOfSize(3) && node.GetChild(0)->IsAtom()
&& node.GetChild(0)->GetContent() == "declare";
if (isDeclareNode) {
const auto varNameNode = node.GetChild(1);
@@ -290,20 +330,20 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) {
actualParamToType[TString(varName)] = varTypeNode->GetChild(1)->ToString();
}
});
-
+
return actualParamToType;
}
-
+
Y_UNIT_TEST(ParamRef_IntAndPoint) {
TTranslationSettings settings;
-
+
settings.PgParameterTypeOids = {NYql::NPg::LookupType("int4").TypeId, NYql::NPg::LookupType("point").TypeId};
auto res = SqlToYqlWithMode(
R"(select $1 as "x", $2 as "y")",
- NSQLTranslation::ESqlMode::QUERY,
- 10,
- {},
- EDebugOutput::None,
+ NSQLTranslation::ESqlMode::QUERY,
+ 10,
+ {},
+ EDebugOutput::None,
false,
settings);
TMap<TString, TString> expectedParamToType {
@@ -321,10 +361,10 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) {
settings.PgParameterTypeOids = {NYql::NPg::LookupType("int4").TypeId, NYql::NPg::LookupType("unknown").TypeId, NYql::NPg::LookupType("int4").TypeId};
auto res = SqlToYqlWithMode(
R"(select $1 as "x", $2 as "y", $3 as "z")",
- NSQLTranslation::ESqlMode::QUERY,
- 10,
- {},
- EDebugOutput::None,
+ NSQLTranslation::ESqlMode::QUERY,
+ 10,
+ {},
+ EDebugOutput::None,
false,
settings);
TMap<TString, TString> expectedParamToType {
@@ -351,7 +391,7 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) {
auto actualParamToTypes = GetParamNameToPgType(*res.Root);
UNIT_ASSERT_VALUES_EQUAL(expectedParamToType, actualParamToTypes);
}
-
+
Y_UNIT_TEST(DropTableStmt) {
auto res = PgSqlToYql("drop table plato.Input");
TString program = R"(
diff --git a/ydb/library/yql/sql/v1/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/v1/CMakeLists.darwin-x86_64.txt
index c45ef671a1..898dba853a 100644
--- a/ydb/library/yql/sql/v1/CMakeLists.darwin-x86_64.txt
+++ b/ydb/library/yql/sql/v1/CMakeLists.darwin-x86_64.txt
@@ -61,7 +61,16 @@ target_sources(yql-sql-v1 PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/list_builtin.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/node.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/source.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_call_expr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_expression.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_group_by.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_into_tables.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_translation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_values.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/query.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/object_processing.cpp
)
diff --git a/ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt
index 2dad150cb3..944a46a01b 100644
--- a/ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt
+++ b/ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt
@@ -62,7 +62,16 @@ target_sources(yql-sql-v1 PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/list_builtin.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/node.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/source.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_call_expr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_expression.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_group_by.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_into_tables.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_translation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_values.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/query.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/object_processing.cpp
)
diff --git a/ydb/library/yql/sql/v1/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/v1/CMakeLists.linux-x86_64.txt
index 2dad150cb3..944a46a01b 100644
--- a/ydb/library/yql/sql/v1/CMakeLists.linux-x86_64.txt
+++ b/ydb/library/yql/sql/v1/CMakeLists.linux-x86_64.txt
@@ -62,7 +62,16 @@ target_sources(yql-sql-v1 PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/list_builtin.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/node.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/source.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_call_expr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_expression.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_group_by.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_into_tables.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_translation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_values.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/query.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/object_processing.cpp
)
diff --git a/ydb/library/yql/sql/v1/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/v1/CMakeLists.windows-x86_64.txt
index c45ef671a1..898dba853a 100644
--- a/ydb/library/yql/sql/v1/CMakeLists.windows-x86_64.txt
+++ b/ydb/library/yql/sql/v1/CMakeLists.windows-x86_64.txt
@@ -61,7 +61,16 @@ target_sources(yql-sql-v1 PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/list_builtin.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/node.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/source.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_call_expr.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_expression.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_group_by.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_into_tables.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_select.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_translation.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_values.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/query.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/object_processing.cpp
)
diff --git a/ydb/library/yql/sql/v1/aggregation.cpp b/ydb/library/yql/sql/v1/aggregation.cpp
index ceb2d3a3ad..4fe92d220c 100644
--- a/ydb/library/yql/sql/v1/aggregation.cpp
+++ b/ydb/library/yql/sql/v1/aggregation.cpp
@@ -1,4 +1,5 @@
#include "node.h"
+#include "source.h"
#include "context.h"
#include <ydb/library/yql/ast/yql_type_string.h>
diff --git a/ydb/library/yql/sql/v1/context.h b/ydb/library/yql/sql/v1/context.h
index 033996ed8a..f69449d9fa 100644
--- a/ydb/library/yql/sql/v1/context.h
+++ b/ydb/library/yql/sql/v1/context.h
@@ -1,6 +1,6 @@
#pragma once
-#include "node.h"
+#include "source.h"
#include "sql.h"
#include <ydb/library/yql/providers/common/provider/yql_provider_names.h>
diff --git a/ydb/library/yql/sql/v1/insert.cpp b/ydb/library/yql/sql/v1/insert.cpp
index 0620eb4eab..00c63e3d24 100644
--- a/ydb/library/yql/sql/v1/insert.cpp
+++ b/ydb/library/yql/sql/v1/insert.cpp
@@ -1,4 +1,4 @@
-#include "node.h"
+#include "source.h"
#include "context.h"
#include <ydb/library/yql/utils/yql_panic.h>
diff --git a/ydb/library/yql/sql/v1/join.cpp b/ydb/library/yql/sql/v1/join.cpp
index 7851b9809b..a5d680c829 100644
--- a/ydb/library/yql/sql/v1/join.cpp
+++ b/ydb/library/yql/sql/v1/join.cpp
@@ -1,4 +1,4 @@
-#include "node.h"
+#include "source.h"
#include "context.h"
#include <ydb/library/yql/utils/yql_panic.h>
diff --git a/ydb/library/yql/sql/v1/node.cpp b/ydb/library/yql/sql/v1/node.cpp
index 6250406d9d..04543e2cd7 100644
--- a/ydb/library/yql/sql/v1/node.cpp
+++ b/ydb/library/yql/sql/v1/node.cpp
@@ -1,4 +1,5 @@
#include "node.h"
+#include "source.h"
#include "context.h"
#include <ydb/library/yql/ast/yql_ast_escaping.h>
@@ -29,22 +30,6 @@ TString ErrorDistinctByGroupKey(const TString& column) {
return TStringBuilder() << "Unable to use DISTINCT by grouping column: " << column << ". You should leave one of them.";
}
-TTableRef::TTableRef(const TString& refName, const TString& service, const TDeferredAtom& cluster, TNodePtr keys)
- : RefName(refName)
- , Service(to_lower(service))
- , Cluster(cluster)
- , Keys(keys)
-{
-}
-
-TString TTableRef::ShortName() const {
- Y_VERIFY_DEBUG(Keys);
- if (Keys->GetTableKeys()->GetTableName()) {
- return *Keys->GetTableKeys()->GetTableName();
- }
- return TString();
-}
-
TTopicRef::TTopicRef(const TString& refName, const TDeferredAtom& cluster, TNodePtr keys)
: RefName(refName)
, Cluster(cluster)
@@ -53,12 +38,13 @@ TTopicRef::TTopicRef(const TString& refName, const TDeferredAtom& cluster, TNode
}
TColumnSchema::TColumnSchema(TPosition pos, const TString& name, const TNodePtr& type, bool nullable,
- TVector<TIdentifier> families)
+ TVector<TIdentifier> families, bool serial)
: Pos(pos)
, Name(name)
, Type(type)
, Nullable(nullable)
, Families(families)
+ , Serial(serial)
{
}
@@ -541,7 +527,6 @@ TString TCallNode::GetOpName() const {
return OpName;
}
-namespace {
const TString* DeriveCommonSourceName(const TVector<TNodePtr> &nodes) {
const TString* name = nullptr;
for (auto& node: nodes) {
@@ -557,7 +542,6 @@ const TString* DeriveCommonSourceName(const TVector<TNodePtr> &nodes) {
return name;
}
-}
const TString* TCallNode::GetSourceName() const {
return DeriveCommonSourceName(Args);
@@ -1297,915 +1281,6 @@ TNodePtr IAggregation::WindowTraits(const TNodePtr& type, TContext& ctx) const {
return Q(Y(Q(Name), GetApply(type, false, false, ctx)));
}
-ISource::ISource(TPosition pos)
- : INode(pos)
-{
-}
-
-ISource::~ISource()
-{
-}
-
-TSourcePtr ISource::CloneSource() const {
- Y_VERIFY_DEBUG(dynamic_cast<ISource*>(Clone().Get()), "Cloned node is no source");
- TSourcePtr result = static_cast<ISource*>(Clone().Get());
- for (auto curFilter: Filters) {
- result->Filters.emplace_back(curFilter->Clone());
- }
- for (int i = 0; i < static_cast<int>(EExprSeat::Max); ++i) {
- result->NamedExprs[i] = CloneContainer(NamedExprs[i]);
- }
- result->FlattenColumns = FlattenColumns;
- result->FlattenMode = FlattenMode;
- return result;
-}
-
-bool ISource::IsFake() const {
- return false;
-}
-
-void ISource::AllColumns() {
- return;
-}
-
-const TColumns* ISource::GetColumns() const {
- return nullptr;
-}
-
-void ISource::GetInputTables(TTableList& tableList) const {
- for (auto srcPtr: UsedSources) {
- srcPtr->GetInputTables(tableList);
- }
- return;
-}
-
-TMaybe<bool> ISource::AddColumn(TContext& ctx, TColumnNode& column) {
- if (column.IsReliable()) {
- ctx.Error(Pos) << "Source does not allow column references";
- ctx.Error(column.GetPos()) << "Column reference " <<
- (column.GetColumnName() ? "'" + *column.GetColumnName() + "'" : "(expr)");
- }
- return {};
-}
-
-void ISource::FinishColumns() {
-}
-
-
-bool ISource::AddFilter(TContext& ctx, TNodePtr filter) {
- Y_UNUSED(ctx);
- Filters.push_back(filter);
- return true;
-}
-
-bool ISource::AddGroupKey(TContext& ctx, const TString& column) {
- if (!GroupKeys.insert(column).second) {
- ctx.Error() << "Duplicate grouping column: " << column;
- return false;
- }
- OrderedGroupKeys.push_back(column);
- return true;
-}
-
-void ISource::SetCompactGroupBy(bool compactGroupBy) {
- CompactGroupBy = compactGroupBy;
-}
-
-void ISource::SetGroupBySuffix(const TString& suffix) {
- GroupBySuffix = suffix;
-}
-
-bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions, EExprSeat exprSeat) {
- YQL_ENSURE(exprSeat < EExprSeat::Max);
- THashSet<TString> names;
- THashSet<TString> aliasSet;
- // TODO: merge FlattenBy with FlattenByExpr
- const bool isFlatten = (exprSeat == EExprSeat::FlattenBy || exprSeat == EExprSeat::FlattenByExpr);
- THashSet<TString>& aliases = isFlatten ? FlattenByAliases : aliasSet;
- for (const auto& expr: expressions) {
- const auto& alias = expr->GetLabel();
- const auto& columnNamePtr = expr->GetColumnName();
- if (alias) {
- ExprAliases.insert(alias);
- if (!aliases.emplace(alias).second) {
- ctx.Error(expr->GetPos()) << "Duplicate alias found: " << alias << " in " << exprSeat << " section";
- return false;
- }
- if (names.contains(alias)) {
- ctx.Error(expr->GetPos()) << "Collision between alias and column name: " << alias << " in " << exprSeat << " section";
- return false;
- }
- }
- if (columnNamePtr) {
- const auto& sourceName = *expr->GetSourceName();
- auto columnName = *columnNamePtr;
- if (sourceName) {
- columnName = DotJoin(sourceName, columnName);
- }
- if (!names.emplace(columnName).second) {
- ctx.Error(expr->GetPos()) << "Duplicate column name found: " << columnName << " in " << exprSeat << " section";
- return false;
- }
- if (!alias && aliases.contains(columnName)) {
- ctx.Error(expr->GetPos()) << "Collision between alias and column name: " << columnName << " in " << exprSeat << " section";
- return false;
- }
- if (alias && exprSeat == EExprSeat::GroupBy) {
- auto columnAlias = GroupByColumnAliases.emplace(columnName, alias);
- auto oldAlias = columnAlias.first->second;
- if (columnAlias.second && oldAlias != alias) {
- ctx.Error(expr->GetPos()) << "Alias for column not same, column: " << columnName <<
- ", exist alias: " << oldAlias << ", another alias: " << alias;
- return false;
- }
- }
- }
-
- if (exprSeat == EExprSeat::GroupBy) {
- if (auto sessionWindow = dynamic_cast<TSessionWindow*>(expr.Get())) {
- if (SessionWindow) {
- ctx.Error(expr->GetPos()) << "Duplicate session window specification:";
- ctx.Error(SessionWindow->GetPos()) << "Previous session window is declared here";
- return false;
- }
- SessionWindow = expr;
- }
- if (auto hoppingWindow = dynamic_cast<THoppingWindow*>(expr.Get())) {
- if (HoppingWindow) {
- ctx.Error(expr->GetPos()) << "Duplicate hopping window specification:";
- ctx.Error(HoppingWindow->GetPos()) << "Previous hopping window is declared here";
- return false;
- }
- HoppingWindow = expr;
- }
- }
- Expressions(exprSeat).emplace_back(expr);
- }
- return true;
-}
-
-void ISource::SetFlattenByMode(const TString& mode) {
- FlattenMode = mode;
-}
-
-void ISource::MarkFlattenColumns() {
- FlattenColumns = true;
-}
-
-bool ISource::IsFlattenColumns() const {
- return FlattenColumns;
-}
-
-TString ISource::MakeLocalName(const TString& name) {
- auto iter = GenIndexes.find(name);
- if (iter == GenIndexes.end()) {
- iter = GenIndexes.emplace(name, 0).first;
- }
- TStringBuilder str;
- str << name << iter->second;
- ++iter->second;
- return std::move(str);
-}
-
-bool ISource::AddAggregation(TContext& ctx, TAggregationPtr aggr) {
- Y_UNUSED(ctx);
- YQL_ENSURE(aggr);
- Aggregations.push_back(aggr);
- return true;
-}
-
-bool ISource::HasAggregations() const {
- return !Aggregations.empty() || !GroupKeys.empty();
-}
-
-void ISource::AddWindowSpecs(TWinSpecs winSpecs) {
- WinSpecs = winSpecs;
-}
-
-bool ISource::AddFuncOverWindow(TContext& ctx, TNodePtr expr) {
- Y_UNUSED(ctx);
- Y_UNUSED(expr);
- return false;
-}
-
-void ISource::AddTmpWindowColumn(const TString& column) {
- TmpWindowColumns.push_back(column);
-}
-
-const TVector<TString>& ISource::GetTmpWindowColumns() const {
- return TmpWindowColumns;
-}
-
-void ISource::SetLegacyHoppingWindowSpec(TLegacyHoppingWindowSpecPtr spec) {
- LegacyHoppingWindowSpec = spec;
-}
-
-TLegacyHoppingWindowSpecPtr ISource::GetLegacyHoppingWindowSpec() const {
- return LegacyHoppingWindowSpec;
-}
-
-TNodePtr ISource::GetSessionWindowSpec() const {
- return SessionWindow;
-}
-
-TNodePtr ISource::GetHoppingWindowSpec() const {
- return HoppingWindow;
-}
-
-TWindowSpecificationPtr ISource::FindWindowSpecification(TContext& ctx, const TString& windowName) const {
- auto winIter = WinSpecs.find(windowName);
- if (winIter == WinSpecs.end()) {
- ctx.Error(Pos) << "Unable to find window specification for window '" << windowName << "'";
- return {};
- }
- YQL_ENSURE(winIter->second);
- return winIter->second;
-}
-
-inline TVector<TNodePtr>& ISource::Expressions(EExprSeat exprSeat) {
- return NamedExprs[static_cast<size_t>(exprSeat)];
-}
-
-const TVector<TNodePtr>& ISource::Expressions(EExprSeat exprSeat) const {
- return NamedExprs[static_cast<size_t>(exprSeat)];
-}
-
-inline TNodePtr ISource::AliasOrColumn(const TNodePtr& node, bool withSource) {
- auto result = node->GetLabel();
- if (!result) {
- const auto columnNamePtr = node->GetColumnName();
- YQL_ENSURE(columnNamePtr);
- result = *columnNamePtr;
- if (withSource) {
- const auto sourceNamePtr = node->GetSourceName();
- if (sourceNamePtr) {
- result = DotJoin(*sourceNamePtr, result);
- }
- }
- }
- return BuildQuotedAtom(node->GetPos(), result);
-}
-
-bool ISource::AddAggregationOverWindow(TContext& ctx, const TString& windowName, TAggregationPtr func) {
- YQL_ENSURE(func->IsOverWindow());
- if (func->IsDistinct()) {
- ctx.Error(func->GetPos()) << "Aggregation with distinct is not allowed over window: " << windowName;
- return false;
- }
- if (!FindWindowSpecification(ctx, windowName)) {
- return false;
- }
- AggregationOverWindow[windowName].emplace_back(std::move(func));
- return true;
-}
-
-bool ISource::AddFuncOverWindow(TContext& ctx, const TString& windowName, TNodePtr func) {
- if (!FindWindowSpecification(ctx, windowName)) {
- return false;
- }
- FuncOverWindow[windowName].emplace_back(std::move(func));
- return true;
-}
-
-bool ISource::IsCompositeSource() const {
- return false;
-}
-
-bool ISource::IsGroupByColumn(const TString& column) const {
- return GroupKeys.contains(column);
-}
-
-bool ISource::IsFlattenByColumns() const {
- return !Expressions(EExprSeat::FlattenBy).empty();
-}
-
-bool ISource::IsFlattenByExprs() const {
- return !Expressions(EExprSeat::FlattenByExpr).empty();
-}
-
-bool ISource::IsAlias(EExprSeat exprSeat, const TString& column) const {
- for (const auto& exprNode: Expressions(exprSeat)) {
- const auto& labelName = exprNode->GetLabel();
- if (labelName && labelName == column) {
- return true;
- }
- }
- return false;
-}
-
-bool ISource::IsExprAlias(const TString& column) const {
- std::array<EExprSeat, 5> exprSeats = {{EExprSeat::FlattenBy, EExprSeat::FlattenByExpr, EExprSeat::GroupBy,
- EExprSeat::WindowPartitionBy, EExprSeat::DistinctAggr}};
- for (auto seat: exprSeats) {
- if (IsAlias(seat, column)) {
- return true;
- }
- }
- return false;
-}
-
-bool ISource::IsExprSeat(EExprSeat exprSeat, EExprType type) const {
- auto expressions = Expressions(exprSeat);
- if (!expressions) {
- return false;
- }
- for (const auto& exprNode: expressions) {
- if (exprNode->GetLabel()) {
- return type == EExprType::WithExpression;
- }
- }
- return type == EExprType::ColumnOnly;
-}
-
-TString ISource::GetGroupByColumnAlias(const TString& column) const {
- auto iter = GroupByColumnAliases.find(column);
- if (iter == GroupByColumnAliases.end()) {
- return {};
- }
- return iter->second;
-}
-
-const TString* ISource::GetWindowName() const {
- return {};
-}
-
-bool ISource::IsCalcOverWindow() const {
- return !AggregationOverWindow.empty() || !FuncOverWindow.empty() ||
- AnyOf(WinSpecs, [](const auto& item) { return item.second->Session; });
-}
-
-bool ISource::IsOverWindowSource() const {
- return !WinSpecs.empty();
-}
-
-bool ISource::IsStream() const {
- return false;
-}
-
-EOrderKind ISource::GetOrderKind() const {
- return EOrderKind::None;
-}
-
-TWriteSettings ISource::GetWriteSettings() const {
- return {};
-}
-
-bool ISource::SetSamplingOptions(TContext& ctx,
- TPosition pos,
- ESampleMode mode,
- TNodePtr samplingRate,
- TNodePtr samplingSeed) {
- Y_UNUSED(pos);
- Y_UNUSED(mode);
- Y_UNUSED(samplingRate);
- Y_UNUSED(samplingSeed);
- ctx.Error() << "Sampling is only supported for table sources";
- return false;
-}
-
-bool ISource::SetTableHints(TContext& ctx, TPosition pos, const TTableHints& hints, const TTableHints& contextHints) {
- Y_UNUSED(pos);
- Y_UNUSED(contextHints);
- if (hints) {
- ctx.Error() << "Explicit hints are only supported for table sources";
- return false;
- }
- return true;
-}
-
-bool ISource::CalculateGroupingHint(TContext& ctx, const TVector<TString>& columns, ui64& hint) const {
- Y_UNUSED(columns);
- Y_UNUSED(hint);
- ctx.Error() << "Source not support grouping hint";
- return false;
-}
-
-TNodePtr ISource::BuildFilter(TContext& ctx, const TString& label) {
- return Filters.empty() ? nullptr : Y(ctx.UseUnordered(*this) ? "OrderedFilter" : "Filter", label, BuildFilterLambda());
-}
-
-TNodePtr ISource::BuildFilterLambda() {
- if (Filters.empty()) {
- return BuildLambda(Pos, Y("row"), Y("Bool", Q("true")));
- }
- YQL_ENSURE(Filters[0]->HasState(ENodeState::Initialized));
- TNodePtr filter(Filters[0]);
- for (ui32 i = 1; i < Filters.size(); ++i) {
- YQL_ENSURE(Filters[i]->HasState(ENodeState::Initialized));
- filter = Y("And", filter, Filters[i]);
- }
- filter = Y("Coalesce", filter, Y("Bool", Q("false")));
- return BuildLambda(Pos, Y("row"), filter);
-}
-
-TNodePtr ISource::BuildFlattenByColumns(const TString& label) {
- auto columnsList = Y("FlattenByColumns", Q(FlattenMode), label);
- for (const auto& column: Expressions(EExprSeat::FlattenBy)) {
- const auto columnNamePtr = column->GetColumnName();
- YQL_ENSURE(columnNamePtr);
- if (column->GetLabel().empty()) {
- columnsList = L(columnsList, Q(*columnNamePtr));
- } else {
- columnsList = L(columnsList, Q(Y(Q(*columnNamePtr), Q(column->GetLabel()))));
- }
- }
- return Y(Y("let", "res", columnsList));
-}
-
-TNodePtr ISource::BuildFlattenColumns(const TString& label) {
- return Y(Y("let", "res", Y("Just", Y("FlattenStructs", label))));
-}
-
-namespace {
-
-TNodePtr BuildLambdaBodyForExprAliases(TPosition pos, const TVector<TNodePtr>& exprs) {
- auto structObj = BuildAtom(pos, "row", TNodeFlags::Default);
- for (const auto& exprNode: exprs) {
- const auto name = exprNode->GetLabel();
- YQL_ENSURE(name);
- structObj = structObj->Y("ForceRemoveMember", structObj, structObj->Q(name));
- if (dynamic_cast<const TSessionWindow*>(exprNode.Get())) {
- continue;
- }
- if (dynamic_cast<const THoppingWindow*>(exprNode.Get())) {
- continue;
- }
- structObj = structObj->Y("AddMember", structObj, structObj->Q(name), exprNode);
- }
- return structObj->Y("AsList", structObj);
-}
-
-}
-
-TNodePtr ISource::BuildPreaggregatedMap(TContext& ctx) {
- Y_UNUSED(ctx);
- const auto& groupByExprs = Expressions(EExprSeat::GroupBy);
- const auto& distinctAggrExprs = Expressions(EExprSeat::DistinctAggr);
- YQL_ENSURE(groupByExprs || distinctAggrExprs);
-
- TNodePtr res;
- if (groupByExprs) {
- auto body = BuildLambdaBodyForExprAliases(Pos, groupByExprs);
- res = Y("FlatMap", "core", BuildLambda(Pos, Y("row"), body));
- }
-
- if (distinctAggrExprs) {
- auto body = BuildLambdaBodyForExprAliases(Pos, distinctAggrExprs);
- auto lambda = BuildLambda(Pos, Y("row"), body);
- res = res ? Y("FlatMap", res, lambda) : Y("FlatMap", "core", lambda);
- }
- return res;
-}
-
-TNodePtr ISource::BuildPreFlattenMap(TContext& ctx) {
- Y_UNUSED(ctx);
- YQL_ENSURE(IsFlattenByExprs());
- return BuildLambdaBodyForExprAliases(Pos, Expressions(EExprSeat::FlattenByExpr));
-}
-
-TNodePtr ISource::BuildPrewindowMap(TContext& ctx) {
- auto feed = BuildAtom(Pos, "row", TNodeFlags::Default);
- for (const auto& exprNode: Expressions(EExprSeat::WindowPartitionBy)) {
- const auto name = exprNode->GetLabel();
- if (name && !dynamic_cast<const TSessionWindow*>(exprNode.Get())) {
- feed = Y("AddMember", feed, Q(name), exprNode);
- }
- }
- return Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), Y("AsList", feed)));
-}
-
-bool ISource::BuildSamplingLambda(TNodePtr& node) {
- if (!SamplingRate) {
- return true;
- }
- auto res = Y("Coalesce", Y("SafeCast", SamplingRate, Y("DataType", Q("Double"))), Y("Double", Q("0")));
- res = Y("/", res, Y("Double", Q("100")));
- res = Y(Y("let", "res", Y("OptionalIf", Y("<", Y("Random", Y("DependsOn", "row")), res), "row")));
- node = BuildLambda(GetPos(), Y("row"), res, "res");
- return !!node;
-}
-
-bool ISource::SetSamplingRate(TContext& ctx, TNodePtr samplingRate) {
- if (samplingRate) {
- if (!samplingRate->Init(ctx, this)) {
- return false;
- }
- SamplingRate = Y("Ensure", samplingRate, Y(">=", samplingRate, Y("Double", Q("0"))), Y("String", Q("\"Expected sampling rate to be nonnegative\"")));
- SamplingRate = Y("Ensure", SamplingRate, Y("<=", SamplingRate, Y("Double", Q("100"))), Y("String", Q("\"Sampling rate is over 100%\"")));
- }
- return true;
-}
-
-std::pair<TNodePtr, bool> ISource::BuildAggregation(const TString& label, TContext& ctx) {
- if (GroupKeys.empty() && Aggregations.empty() && !IsCompositeSource() && !LegacyHoppingWindowSpec) {
- return { nullptr, true };
- }
-
- auto keysTuple = Y();
- YQL_ENSURE(GroupKeys.size() == OrderedGroupKeys.size());
- for (const auto& key: OrderedGroupKeys) {
- YQL_ENSURE(GroupKeys.contains(key));
- keysTuple = L(keysTuple, BuildQuotedAtom(Pos, key));
- }
-
- std::map<std::pair<bool, TString>, std::vector<IAggregation*>> genericAggrs;
- for (const auto& aggr: Aggregations) {
- if (const auto key = aggr->GetGenericKey()) {
- genericAggrs[{aggr->IsDistinct(), *key}].emplace_back(aggr.Get());
- }
- }
-
- for (const auto& aggr : genericAggrs) {
- for (size_t i = 1U; i < aggr.second.size(); ++i) {
- aggr.second.front()->Join(aggr.second[i]);
- }
- }
-
- const auto listType = Y("TypeOf", label);
- auto aggrArgs = Y();
- const bool overState = GroupBySuffix == "CombineState" || GroupBySuffix == "MergeState" ||
- GroupBySuffix == "MergeFinalize" || GroupBySuffix == "MergeManyFinalize";
- const bool allowAggApply = !LegacyHoppingWindowSpec && !SessionWindow && !HoppingWindow;
- for (const auto& aggr: Aggregations) {
- auto res = aggr->AggregationTraits(listType, overState, GroupBySuffix == "MergeManyFinalize", allowAggApply, ctx);
- if (!res.second) {
- return { nullptr, false };
- }
-
- if (res.first) {
- aggrArgs = L(aggrArgs, res.first);
- }
- }
-
- auto options = Y();
- if (CompactGroupBy || GroupBySuffix == "Finalize") {
- options = L(options, Q(Y(Q("compact"))));
- }
-
- if (LegacyHoppingWindowSpec) {
- auto hoppingTraits = Y(
- "HoppingTraits",
- Y("ListItemType", listType),
- BuildLambda(Pos, Y("row"), LegacyHoppingWindowSpec->TimeExtractor),
- LegacyHoppingWindowSpec->Hop,
- LegacyHoppingWindowSpec->Interval,
- LegacyHoppingWindowSpec->Delay,
- LegacyHoppingWindowSpec->DataWatermarks ? Q("true") : Q("false"),
- Q("v1"));
-
- options = L(options, Q(Y(Q("hopping"), hoppingTraits)));
- }
-
- if (SessionWindow) {
- YQL_ENSURE(SessionWindow->GetLabel());
- auto sessionWindow = dynamic_cast<TSessionWindow*>(SessionWindow.Get());
- YQL_ENSURE(sessionWindow);
- options = L(options, Q(Y(Q("session"),
- Q(Y(BuildQuotedAtom(Pos, SessionWindow->GetLabel()), sessionWindow->BuildTraits(label))))));
- }
-
- if (HoppingWindow) {
- YQL_ENSURE(HoppingWindow->GetLabel());
- auto hoppingWindow = dynamic_cast<THoppingWindow*>(HoppingWindow.Get());
- YQL_ENSURE(hoppingWindow);
- options = L(options, Q(Y(Q("hopping"),
- Q(Y(BuildQuotedAtom(Pos, HoppingWindow->GetLabel()), hoppingWindow->BuildTraits(label))))));
- }
-
- return { Y("AssumeColumnOrderPartial", Y("Aggregate" + GroupBySuffix, label, Q(keysTuple), Q(aggrArgs), Q(options)), Q(keysTuple)), true };
-}
-
-TMaybe<TString> ISource::FindColumnMistype(const TString& name) const {
- auto result = FindMistypeIn(GroupKeys, name);
- return result ? result : FindMistypeIn(ExprAliases, name);
-}
-
-void ISource::AddDependentSource(ISource* usedSource) {
- UsedSources.push_back(usedSource);
-}
-
-class TYqlFrameBound final: public TCallNode {
-public:
- TYqlFrameBound(TPosition pos, TNodePtr bound)
- : TCallNode(pos, "EvaluateExpr", 1, 1, { bound })
- , FakeSource(BuildFakeSource(pos))
- {
- }
-
- bool DoInit(TContext& ctx, ISource* src) override {
- if (!ValidateArguments(ctx)) {
- return false;
- }
-
- if (!Args[0]->Init(ctx, FakeSource.Get())) {
- return false;
- }
-
- return TCallNode::DoInit(ctx, src);
- }
-
- TNodePtr DoClone() const final {
- return new TYqlFrameBound(Pos, Args[0]->Clone());
- }
-private:
- TSourcePtr FakeSource;
-};
-
-TNodePtr BuildFrameNode(const TFrameBound& frame, EFrameType frameType) {
- TString settingStr;
- switch (frame.Settings) {
- case FramePreceding: settingStr = "preceding"; break;
- case FrameCurrentRow: settingStr = "currentRow"; break;
- case FrameFollowing: settingStr = "following"; break;
- default: YQL_ENSURE(false, "Unexpected frame setting");
- }
-
- TNodePtr node = frame.Bound;
- TPosition pos = frame.Pos;
- if (frameType != EFrameType::FrameByRows) {
- TVector<TNodePtr> settings;
- settings.push_back(BuildQuotedAtom(pos, settingStr, TNodeFlags::Default));
- if (frame.Settings != FrameCurrentRow) {
- if (!node) {
- node = BuildQuotedAtom(pos, "unbounded", TNodeFlags::Default);
- } else if (!node->IsLiteral()) {
- node = new TYqlFrameBound(pos, node);
- }
- settings.push_back(std::move(node));
- }
- return BuildTuple(pos, std::move(settings));
- }
-
- // TODO: switch FrameByRows to common format above
- YQL_ENSURE(frame.Settings != FrameCurrentRow, "Should be already replaced by 0 preceding/following");
- if (!node) {
- node = BuildLiteralVoid(pos);
- } else if (node->IsLiteral()) {
- YQL_ENSURE(node->GetLiteralType() == "Int32");
- i32 value = FromString<i32>(node->GetLiteralValue());
- YQL_ENSURE(value >= 0);
- if (frame.Settings == FramePreceding) {
- value = -value;
- }
- node = new TCallNodeImpl(pos, "Int32", { BuildQuotedAtom(pos, ToString(value), TNodeFlags::Default) });
- } else {
- if (frame.Settings == FramePreceding) {
- node = new TCallNodeImpl(pos, "Minus", { node->Clone() });
- }
- node = new TYqlFrameBound(pos, node);
- }
- return node;
-}
-
-TNodePtr ISource::BuildWindowFrame(const TFrameSpecification& spec, bool isCompact) {
- YQL_ENSURE(spec.FrameExclusion == FrameExclNone);
- YQL_ENSURE(spec.FrameBegin);
- YQL_ENSURE(spec.FrameEnd);
-
- auto frameBeginNode = BuildFrameNode(*spec.FrameBegin, spec.FrameType);
- auto frameEndNode = BuildFrameNode(*spec.FrameEnd, spec.FrameType);
-
- auto begin = Q(Y(Q("begin"), frameBeginNode));
- auto end = Q(Y(Q("end"), frameEndNode));
-
- return isCompact ? Q(Y(begin, end, Q(Y(Q("compact"))))) : Q(Y(begin, end));
-}
-
-class TSessionWindowTraits final: public TCallNode {
-public:
- TSessionWindowTraits(TPosition pos, const TVector<TNodePtr>& args)
- : TCallNode(pos, "SessionWindowTraits", args)
- , FakeSource(BuildFakeSource(pos))
- {
- YQL_ENSURE(args.size() == 4);
- }
-
- bool DoInit(TContext& ctx, ISource* src) override {
- if (!ValidateArguments(ctx)) {
- return false;
- }
-
- if (!Args.back()->Init(ctx, FakeSource.Get())) {
- return false;
- }
-
- return TCallNode::DoInit(ctx, src);
- }
-
- TNodePtr DoClone() const final {
- return new TSessionWindowTraits(Pos, CloneContainer(Args));
- }
-private:
- TSourcePtr FakeSource;
-};
-
-TNodePtr ISource::BuildCalcOverWindow(TContext& ctx, const TString& label) {
- YQL_ENSURE(IsCalcOverWindow());
-
- TSet<TString> usedWindows;
- for (auto& it : AggregationOverWindow) {
- usedWindows.insert(it.first);
- }
- for (auto& it : FuncOverWindow) {
- usedWindows.insert(it.first);
- }
- for (auto& it : WinSpecs) {
- if (it.second->Session) {
- usedWindows.insert(it.first);
- }
- }
-
- YQL_ENSURE(!usedWindows.empty());
-
- const bool onePartition = usedWindows.size() == 1;
- const auto useLabel = onePartition ? label : "partitioning";
- const auto listType = Y("TypeOf", useLabel);
- auto framesProcess = Y();
- auto resultNode = onePartition ? Y() : Y(Y("let", "partitioning", label));
-
- for (const auto& name : usedWindows) {
- auto spec = FindWindowSpecification(ctx, name);
- YQL_ENSURE(spec);
-
- auto aggsIter = AggregationOverWindow.find(name);
- auto funcsIter = FuncOverWindow.find(name);
-
- const auto& aggs = (aggsIter == AggregationOverWindow.end()) ? TVector<TAggregationPtr>() : aggsIter->second;
- const auto& funcs = (funcsIter == FuncOverWindow.end()) ? TVector<TNodePtr>() : funcsIter->second;
-
- auto frames = Y();
- TString frameType;
- switch (spec->Frame->FrameType) {
- case EFrameType::FrameByRows: frameType = "WinOnRows"; break;
- case EFrameType::FrameByRange: frameType = "WinOnRange"; break;
- case EFrameType::FrameByGroups: frameType = "WinOnGroups"; break;
- }
- YQL_ENSURE(frameType);
- auto callOnFrame = Y(frameType, BuildWindowFrame(*spec->Frame, spec->IsCompact));
- for (auto& agg : aggs) {
- auto winTraits = agg->WindowTraits(listType, ctx);
- callOnFrame = L(callOnFrame, winTraits);
- }
- for (auto& func : funcs) {
- auto winSpec = func->WindowSpecFunc(listType);
- callOnFrame = L(callOnFrame, winSpec);
- }
- frames = L(frames, callOnFrame);
-
- auto keysTuple = Y();
- for (const auto& key: spec->Partitions) {
- if (!dynamic_cast<TSessionWindow*>(key.Get())) {
- keysTuple = L(keysTuple, AliasOrColumn(key, GetJoin()));
- }
- }
-
- auto sortSpec = spec->OrderBy.empty() ? Y("Void") : BuildSortSpec(spec->OrderBy, useLabel, true, false);
- if (spec->Session) {
- TString label = spec->Session->GetLabel();
- YQL_ENSURE(label);
- auto sessionWindow = dynamic_cast<TSessionWindow*>(spec->Session.Get());
- YQL_ENSURE(sessionWindow);
- auto labelNode = BuildQuotedAtom(sessionWindow->GetPos(), label);
-
- auto sessionTraits = sessionWindow->BuildTraits(useLabel);
- framesProcess = Y("CalcOverSessionWindow", useLabel, Q(keysTuple), sortSpec, Q(frames), sessionTraits, Q(Y(labelNode)));
- } else {
- YQL_ENSURE(aggs || funcs);
- framesProcess = Y("CalcOverWindow", useLabel, Q(keysTuple), sortSpec, Q(frames));
- }
-
- if (!onePartition) {
- resultNode = L(resultNode, Y("let", "partitioning", framesProcess));
- }
- }
- if (onePartition) {
- return framesProcess;
- } else {
- return Y("block", Q(L(resultNode, Y("return", "partitioning"))));
- }
-}
-
-TNodePtr ISource::BuildSort(TContext& ctx, const TString& label) {
- Y_UNUSED(ctx);
- Y_UNUSED(label);
- return nullptr;
-}
-
-TNodePtr ISource::BuildCleanupColumns(TContext& ctx, const TString& label) {
- Y_UNUSED(ctx);
- Y_UNUSED(label);
- return nullptr;
-}
-
-IJoin* ISource::GetJoin() {
- return nullptr;
-}
-
-ISource* ISource::GetCompositeSource() {
- return nullptr;
-}
-
-bool ISource::IsSelect() const {
- return true;
-}
-
-bool ISource::IsTableSource() const {
- return false;
-}
-
-bool ISource::ShouldUseSourceAsColumn(const TString& source) const {
- Y_UNUSED(source);
- return false;
-}
-
-bool ISource::IsJoinKeysInitializing() const {
- return false;
-}
-
-bool ISource::DoInit(TContext& ctx, ISource* src) {
- for (auto& column: Expressions(EExprSeat::FlattenBy)) {
- if (!column->Init(ctx, this)) {
- return false;
- }
- }
-
- if (IsFlattenColumns() && src) {
- src->AllColumns();
- }
-
- return true;
-}
-
-bool ISource::InitFilters(TContext& ctx) {
- for (auto& filter: Filters) {
- if (!filter->Init(ctx, this)) {
- return false;
- }
- if (filter->IsAggregated() && !filter->IsConstant() && !filter->HasState(ENodeState::AggregationKey)) {
- ctx.Error(filter->GetPos()) << "Can not use aggregated values in filtering";
- return false;
- }
- }
- return true;
-}
-
-TAstNode* ISource::Translate(TContext& ctx) const {
- Y_VERIFY_DEBUG(false);
- Y_UNUSED(ctx);
- return nullptr;
-}
-
-void ISource::FillSortParts(const TVector<TSortSpecificationPtr>& orderBy, TNodePtr& sortDirection, TNodePtr& sortKeySelector) {
- TNodePtr expr;
- if (orderBy.empty()) {
- YQL_ENSURE(!sortKeySelector);
- sortDirection = sortKeySelector = Y("Void");
- return;
- } else if (orderBy.size() == 1) {
- auto& sortSpec = orderBy.front();
- expr = Y("PersistableRepr", sortSpec->OrderExpr);
- sortDirection = Y("Bool", Q(sortSpec->Ascending ? "true" : "false"));
- } else {
- auto exprList = Y();
- sortDirection = Y();
- for (const auto& sortSpec: orderBy) {
- const auto asc = sortSpec->Ascending;
- sortDirection = L(sortDirection, Y("Bool", Q(asc ? "true" : "false")));
- exprList = L(exprList, Y("PersistableRepr", sortSpec->OrderExpr));
- }
- sortDirection = Q(sortDirection);
- expr = Q(exprList);
- }
- sortKeySelector = BuildLambda(Pos, Y("row"), expr);
-}
-
-TNodePtr ISource::BuildSortSpec(const TVector<TSortSpecificationPtr>& orderBy, const TString& label, bool traits, bool assume) {
- YQL_ENSURE(!orderBy.empty());
- TNodePtr dirsNode;
- TNodePtr keySelectorNode;
- FillSortParts(orderBy, dirsNode, keySelectorNode);
- if (traits) {
- return Y("SortTraits", Y("TypeOf", label), dirsNode, keySelectorNode);
- } else if (assume) {
- return Y("AssumeSorted", label, dirsNode, keySelectorNode);
- } else {
- return Y("Sort", label, dirsNode, keySelectorNode);
- }
-}
-
-IJoin::IJoin(TPosition pos)
- : ISource(pos)
-{
-}
-
-IJoin::~IJoin()
-{
-}
-
-IJoin* IJoin::GetJoin() {
- return this;
-}
-
namespace {
bool UnescapeQuoted(const TString& str, TPosition& pos, char quoteChar, TString& result, TString& error) {
result = error = {};
diff --git a/ydb/library/yql/sql/v1/node.h b/ydb/library/yql/sql/v1/node.h
index 07422f4bc5..15d28dc9c7 100644
--- a/ydb/library/yql/sql/v1/node.h
+++ b/ydb/library/yql/sql/v1/node.h
@@ -510,24 +510,6 @@ namespace NSQLTranslationV1 {
TString Repr;
};
- typedef TIntrusivePtr<ISource> TSourcePtr;
-
- struct TTableRef {
- TString RefName;
- TString Service;
- TDeferredAtom Cluster;
- TNodePtr Keys;
- TNodePtr Options;
- TSourcePtr Source;
-
- TTableRef() = default;
- TTableRef(const TString& refName, const TString& service, const TDeferredAtom& cluster, TNodePtr keys);
- TTableRef(const TTableRef&) = default;
- TTableRef& operator=(const TTableRef&) = default;
-
- TString ShortName() const;
- };
-
struct TTopicRef {
TString RefName;
TDeferredAtom Cluster;
@@ -556,9 +538,10 @@ namespace NSQLTranslationV1 {
TNodePtr Type;
bool Nullable;
TVector<TIdentifier> Families;
+ bool Serial;
TColumnSchema(TPosition pos, const TString& name, const TNodePtr& type, bool nullable,
- TVector<TIdentifier> families);
+ TVector<TIdentifier> families, bool serial);
};
struct TColumns: public TSimpleRefCount<TColumns> {
@@ -652,8 +635,6 @@ namespace NSQLTranslationV1 {
typedef TIntrusivePtr<TWindowSpecification> TWindowSpecificationPtr;
typedef TMap<TString, TWindowSpecificationPtr> TWinSpecs;
- typedef TVector<TTableRef> TTableList;
-
void WarnIfAliasFromSelectIsUsedInGroupBy(TContext& ctx, const TVector<TNodePtr>& selectTerms, const TVector<TNodePtr>& groupByTerms,
const TVector<TNodePtr>& groupByExprTerms);
bool ValidateAllNodesForAggregation(TContext& ctx, const TVector<TNodePtr>& nodes);
@@ -850,153 +831,6 @@ namespace NSQLTranslationV1 {
Passthrough
};
- class IJoin;
- class ISource: public INode {
- public:
- virtual ~ISource();
-
- virtual bool IsFake() const;
- virtual void AllColumns();
- virtual const TColumns* GetColumns() const;
- virtual void GetInputTables(TTableList& tableList) const;
- /// in case of error unfilled, flag show if ensure column name
- virtual TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column);
- virtual void FinishColumns();
- virtual bool AddExpressions(TContext& ctx, const TVector<TNodePtr>& columns, EExprSeat exprSeat);
- virtual void SetFlattenByMode(const TString& mode);
- virtual void MarkFlattenColumns();
- virtual bool IsFlattenColumns() const;
- virtual bool AddFilter(TContext& ctx, TNodePtr filter);
- virtual bool AddGroupKey(TContext& ctx, const TString& column);
- virtual void SetCompactGroupBy(bool compactGroupBy);
- virtual void SetGroupBySuffix(const TString& suffix);
- virtual TString MakeLocalName(const TString& name);
- virtual bool AddAggregation(TContext& ctx, TAggregationPtr aggr);
- virtual bool AddFuncOverWindow(TContext& ctx, TNodePtr expr);
- virtual void AddTmpWindowColumn(const TString& column);
- virtual const TVector<TString>& GetTmpWindowColumns() const;
- virtual bool HasAggregations() const;
- virtual void AddWindowSpecs(TWinSpecs winSpecs);
- virtual bool AddAggregationOverWindow(TContext& ctx, const TString& windowName, TAggregationPtr func);
- virtual bool AddFuncOverWindow(TContext& ctx, const TString& windowName, TNodePtr func);
- virtual void SetLegacyHoppingWindowSpec(TLegacyHoppingWindowSpecPtr spec);
- virtual TLegacyHoppingWindowSpecPtr GetLegacyHoppingWindowSpec() const;
- virtual TNodePtr GetSessionWindowSpec() const;
- virtual TNodePtr GetHoppingWindowSpec() const;
- virtual bool IsCompositeSource() const;
- virtual bool IsGroupByColumn(const TString& column) const;
- virtual bool IsFlattenByColumns() const;
- virtual bool IsFlattenByExprs() const;
- virtual bool IsCalcOverWindow() const;
- virtual bool IsOverWindowSource() const;
- virtual bool IsStream() const;
- virtual EOrderKind GetOrderKind() const;
- virtual TWriteSettings GetWriteSettings() const;
- virtual bool SetSamplingOptions(TContext& ctx, TPosition pos, ESampleMode mode, TNodePtr samplingRate, TNodePtr samplingSeed);
- virtual bool SetTableHints(TContext& ctx, TPosition pos, const TTableHints& hints, const TTableHints& contextHints);
- virtual bool CalculateGroupingHint(TContext& ctx, const TVector<TString>& columns, ui64& hint) const;
- virtual TNodePtr BuildFilter(TContext& ctx, const TString& label);
- virtual TNodePtr BuildFilterLambda();
- virtual TNodePtr BuildFlattenByColumns(const TString& label);
- virtual TNodePtr BuildFlattenColumns(const TString& label);
- virtual TNodePtr BuildPreaggregatedMap(TContext& ctx);
- virtual TNodePtr BuildPreFlattenMap(TContext& ctx);
- virtual TNodePtr BuildPrewindowMap(TContext& ctx);
- virtual std::pair<TNodePtr, bool> BuildAggregation(const TString& label, TContext& ctx);
- virtual TNodePtr BuildCalcOverWindow(TContext& ctx, const TString& label);
- virtual TNodePtr BuildSort(TContext& ctx, const TString& label);
- virtual TNodePtr BuildCleanupColumns(TContext& ctx, const TString& label);
- virtual bool BuildSamplingLambda(TNodePtr& node);
- virtual bool SetSamplingRate(TContext& ctx, TNodePtr samplingRate);
- virtual IJoin* GetJoin();
- virtual ISource* GetCompositeSource();
- virtual bool IsSelect() const;
- virtual bool IsTableSource() const;
- virtual bool ShouldUseSourceAsColumn(const TString& source) const;
- virtual bool IsJoinKeysInitializing() const;
- virtual const TString* GetWindowName() const;
-
- virtual bool DoInit(TContext& ctx, ISource* src);
- virtual TNodePtr Build(TContext& ctx) = 0;
-
- virtual TMaybe<TString> FindColumnMistype(const TString& name) const;
-
- virtual bool InitFilters(TContext& ctx);
- void AddDependentSource(ISource* usedSource);
- bool IsAlias(EExprSeat exprSeat, const TString& label) const;
- bool IsExprAlias(const TString& label) const;
- bool IsExprSeat(EExprSeat exprSeat, EExprType type = EExprType::WithExpression) const;
- TString GetGroupByColumnAlias(const TString& column) const;
- const TVector<TNodePtr>& Expressions(EExprSeat exprSeat) const;
-
- virtual TWindowSpecificationPtr FindWindowSpecification(TContext& ctx, const TString& windowName) const;
-
- TIntrusivePtr<ISource> CloneSource() const;
-
- protected:
- ISource(TPosition pos);
- virtual TAstNode* Translate(TContext& ctx) const;
-
- void FillSortParts(const TVector<TSortSpecificationPtr>& orderBy, TNodePtr& sortKeySelector, TNodePtr& sortDirection);
- TNodePtr BuildSortSpec(const TVector<TSortSpecificationPtr>& orderBy, const TString& label, bool traits, bool assume);
-
- TVector<TNodePtr>& Expressions(EExprSeat exprSeat);
- TNodePtr AliasOrColumn(const TNodePtr& node, bool withSource);
-
- TNodePtr BuildWindowFrame(const TFrameSpecification& spec, bool isCompact);
-
- THashSet<TString> ExprAliases;
- THashSet<TString> FlattenByAliases;
- THashMap<TString, TString> GroupByColumnAliases;
- TVector<TNodePtr> Filters;
- bool CompactGroupBy = false;
- TString GroupBySuffix;
- TSet<TString> GroupKeys;
- TVector<TString> OrderedGroupKeys;
- std::array<TVector<TNodePtr>, static_cast<unsigned>(EExprSeat::Max)> NamedExprs;
- TVector<TAggregationPtr> Aggregations;
- TMap<TString, TVector<TAggregationPtr>> AggregationOverWindow;
- TMap<TString, TVector<TNodePtr>> FuncOverWindow;
- TWinSpecs WinSpecs;
- TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec;
- TNodePtr SessionWindow;
- TNodePtr HoppingWindow;
- TVector<ISource*> UsedSources;
- TString FlattenMode;
- bool FlattenColumns = false;
- THashMap<TString, ui32> GenIndexes;
- TVector<TString> TmpWindowColumns;
- TNodePtr SamplingRate;
- };
-
- template<>
- inline TVector<TSourcePtr> CloneContainer<TSourcePtr>(const TVector<TSourcePtr>& args) {
- TVector<TSourcePtr> cloneArgs;
- cloneArgs.reserve(args.size());
- for (const auto& arg: args) {
- cloneArgs.emplace_back(arg ? arg->CloneSource() : nullptr);
- }
- return cloneArgs;
- }
-
- struct TJoinLinkSettings {
- bool ForceSortedMerge = false;
- };
-
- class IJoin: public ISource {
- public:
- virtual ~IJoin();
-
- virtual IJoin* GetJoin();
- virtual TNodePtr BuildJoinKeys(TContext& ctx, const TVector<TDeferredAtom>& names) = 0;
- virtual void SetupJoin(const TString& joinOp, TNodePtr joinExpr, const TJoinLinkSettings& linkSettings) = 0;
- virtual const THashMap<TString, THashSet<TString>>& GetSameKeysMap() const = 0;
- virtual TVector<TString> GetJoinLabels() const = 0;
-
- protected:
- IJoin(TPosition pos);
- };
-
class TListOfNamedNodes final: public INode {
public:
TListOfNamedNodes(TPosition pos, TVector<TNodePtr>&& exprs);
@@ -1074,46 +908,6 @@ namespace NSQLTranslationV1 {
TNodePtr Node;
};
- class TSessionWindow final : public INode {
- public:
- TSessionWindow(TPosition pos, const TVector<TNodePtr>& args);
- void MarkValid();
- TNodePtr BuildTraits(const TString& label) const;
- private:
- bool DoInit(TContext& ctx, ISource* src) override;
- TAstNode* Translate(TContext&) const override;
- void DoUpdateState() const override;
- TNodePtr DoClone() const override;
- TString GetOpName() const override;
-
- TVector<TNodePtr> Args;
- TSourcePtr FakeSource;
- TNodePtr Node;
- bool Valid;
- };
-
- class THoppingWindow final : public INode {
- public:
- THoppingWindow(TPosition pos, const TVector<TNodePtr>& args);
- void MarkValid();
- TNodePtr BuildTraits(const TString& label) const;
- public:
- TNodePtr Hop;
- TNodePtr Interval;
- private:
- bool DoInit(TContext& ctx, ISource* src) override;
- TAstNode* Translate(TContext&) const override;
- void DoUpdateState() const override;
- TNodePtr DoClone() const override;
- TString GetOpName() const override;
- TNodePtr ProcessIntervalParam(const TNodePtr& val) const;
-
- TVector<TNodePtr> Args;
- TSourcePtr FakeSource;
- TNodePtr Node;
- bool Valid;
- };
-
struct TStringContent {
TString Content;
NYql::NUdf::EDataSlot Type = NYql::NUdf::EDataSlot::String;
@@ -1398,83 +1192,7 @@ namespace NSQLTranslationV1 {
bool warnOnYqlNameSpace = true
);
- // Implemented in join.cpp
- TString NormalizeJoinOp(const TString& joinOp);
- TSourcePtr BuildEquiJoin(TPosition pos, TVector<TSourcePtr>&& sources, TVector<bool>&& anyFlags, bool strictJoinKeyTypes);
-
- // Implemented in select.cpp
- TNodePtr BuildSubquery(TSourcePtr source, const TString& alias, bool inSubquery, int ensureTupleSize, TScopedStatePtr scoped);
- TNodePtr BuildSubqueryRef(TNodePtr subquery, const TString& alias, int tupleIndex = -1);
- TNodePtr BuildInvalidSubqueryRef(TPosition subqueryPos);
- TNodePtr BuildSourceNode(TPosition pos, TSourcePtr source, bool checkExist = false);
- TSourcePtr BuildMuxSource(TPosition pos, TVector<TSourcePtr>&& sources);
- TSourcePtr BuildFakeSource(TPosition pos, bool missingFrom = false, bool inSubquery = false);
- TSourcePtr BuildNodeSource(TPosition pos, const TNodePtr& node, bool wrapToList = false);
- TSourcePtr BuildTableSource(TPosition pos, const TTableRef& table, const TString& label = TString());
- TSourcePtr BuildInnerSource(TPosition pos, TNodePtr node, const TString& service, const TDeferredAtom& cluster, const TString& label = TString());
- TSourcePtr BuildRefColumnSource(TPosition pos, const TString& partExpression);
- TSourcePtr BuildUnionAll(TPosition pos, TVector<TSourcePtr>&& sources, const TWriteSettings& settings);
- TSourcePtr BuildOverWindowSource(TPosition pos, const TString& windowName, ISource* origSource);
-
- TNodePtr BuildOrderBy(TPosition pos, const TVector<TNodePtr>& keys, const TVector<bool>& order);
- TNodePtr BuildSkipTake(TPosition pos, const TNodePtr& skip, const TNodePtr& take);
-
-
- TSourcePtr BuildSelectCore(
- TContext& ctx,
- TPosition pos,
- TSourcePtr source,
- const TVector<TNodePtr>& groupByExpr,
- const TVector<TNodePtr>& groupBy,
- bool compactGroupBy,
- const TString& groupBySuffix,
- bool assumeSorted,
- const TVector<TSortSpecificationPtr>& orderBy,
- TNodePtr having,
- TWinSpecs&& windowSpec,
- TLegacyHoppingWindowSpecPtr legacyHoppingWindowSpec,
- TVector<TNodePtr>&& terms,
- bool distinct,
- TVector<TNodePtr>&& without,
- bool selectStream,
- const TWriteSettings& settings
- );
- TSourcePtr BuildSelect(TPosition pos, TSourcePtr source, TNodePtr skipTake);
-
-
- enum class ReduceMode {
- ByPartition,
- ByAll,
- };
- TSourcePtr BuildReduce(TPosition pos, ReduceMode mode, TSourcePtr source, TVector<TSortSpecificationPtr>&& orderBy,
- TVector<TNodePtr>&& keys, TVector<TNodePtr>&& args, TNodePtr udf, TNodePtr having, const TWriteSettings& settings,
- const TVector<TSortSpecificationPtr>& assumeOrderBy, bool listCall);
- TSourcePtr BuildProcess(TPosition pos, TSourcePtr source, TNodePtr with, bool withExtFunction, TVector<TNodePtr>&& terms, bool listCall,
- bool prcessStream, const TWriteSettings& settings, const TVector<TSortSpecificationPtr>& assumeOrderBy);
-
- TNodePtr BuildSelectResult(TPosition pos, TSourcePtr source, bool writeResult, bool inSubquery, TScopedStatePtr scoped);
-
- // Implemented in insert.cpp
- TSourcePtr BuildWriteValues(TPosition pos, const TString& opertationHumanName, const TVector<TString>& columnsHint, const TVector<TVector<TNodePtr>>& values);
- TSourcePtr BuildWriteValues(TPosition pos, const TString& opertationHumanName, const TVector<TString>& columnsHint, TSourcePtr source);
- TSourcePtr BuildUpdateValues(TPosition pos, const TVector<TString>& columnsHint, const TVector<TNodePtr>& values);
-
- EWriteColumnMode ToWriteColumnsMode(ESQLWriteColumnMode sqlWriteColumnMode);
- TNodePtr BuildEraseColumns(TPosition pos, const TVector<TString>& columns);
- TNodePtr BuildIntoTableOptions(TPosition pos, const TVector<TString>& eraseColumns, const TTableHints& hints);
- TNodePtr BuildWriteColumns(TPosition pos, TScopedStatePtr scoped, const TTableRef& table, EWriteColumnMode mode, TSourcePtr values, TNodePtr options = nullptr);
- TNodePtr BuildUpdateColumns(TPosition pos, TScopedStatePtr scoped, const TTableRef& table, TSourcePtr values, TSourcePtr source);
- TNodePtr BuildDelete(TPosition pos, TScopedStatePtr scoped, const TTableRef& table, TSourcePtr source);
-
// Implemented in query.cpp
- TNodePtr BuildTableKey(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TString& view);
- TNodePtr BuildTableKeys(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TString& func, const TVector<TTableArg>& args);
- TNodePtr BuildTopicKey(TPosition pos, const TDeferredAtom& cluster, const TDeferredAtom& name);
- TNodePtr BuildInputOptions(TPosition pos, const TTableHints& hints);
- TNodePtr BuildInputTables(TPosition pos, const TTableList& tables, bool inSubquery, TScopedStatePtr scoped);
- TNodePtr BuildCreateTable(TPosition pos, const TTableRef& tr, const TCreateTableParameters& params, TScopedStatePtr scoped);
- TNodePtr BuildAlterTable(TPosition pos, const TTableRef& tr, const TAlterTableParameters& params, TScopedStatePtr scoped);
- TNodePtr BuildDropTable(TPosition pos, const TTableRef& table, ETableType tableType, TScopedStatePtr scoped);
TNodePtr BuildCreateUser(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TMaybe<TRoleParameters>& params, TScopedStatePtr scoped);
TNodePtr BuildCreateGroup(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, TScopedStatePtr scoped);
TNodePtr BuildAlterUser(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TRoleParameters& params, TScopedStatePtr scoped);
@@ -1498,8 +1216,6 @@ namespace NSQLTranslationV1 {
std::map<TString, TNodePtr>&& settings,
const TObjectOperatorContext& context);
TNodePtr BuildDropAsyncReplication(TPosition pos, const TString& id, bool cascade, const TObjectOperatorContext& context);
- TNodePtr BuildWriteTable(TPosition pos, const TString& label, const TTableRef& table, EWriteColumnMode mode, TNodePtr options,
- TScopedStatePtr scoped);
TNodePtr BuildWriteResult(TPosition pos, const TString& label, TNodePtr settings);
TNodePtr BuildCommitClusters(TPosition pos);
TNodePtr BuildRollbackClusters(TPosition pos);
@@ -1527,9 +1243,5 @@ namespace NSQLTranslationV1 {
bool Parseui32(TNodePtr from, ui32& to);
TNodePtr GroundWithExpr(const TNodePtr& ground, const TNodePtr& expr);
- TSourcePtr TryMakeSourceFromExpression(TContext& ctx, const TString& currService, const TDeferredAtom& currCluster,
- TNodePtr node, const TString& view = {});
- void MakeTableFromExpression(TContext& ctx, TNodePtr node, TDeferredAtom& table, const TString& prefix = {});
- TDeferredAtom MakeAtomFromExpression(TContext& ctx, TNodePtr node, const TString& prefix = {});
- TString NormalizeTypeString(const TString& str);
+ const TString* DeriveCommonSourceName(const TVector<TNodePtr> &nodes);
} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/query.cpp b/ydb/library/yql/sql/v1/query.cpp
index 72702747b6..cb93d8bfe4 100644
--- a/ydb/library/yql/sql/v1/query.cpp
+++ b/ydb/library/yql/sql/v1/query.cpp
@@ -790,10 +790,16 @@ public:
THashSet<TString> notNullColumnsSet;
auto notNullColumns = Y();
auto columns = Y();
+ THashSet<TString> serialColumnsSet;
+ auto serialColumns = Y();
for (auto& col : Params.Columns) {
auto columnDesc = Y();
columnDesc = L(columnDesc, BuildQuotedAtom(Pos, col.Name));
auto type = col.Type;
+ if (col.Serial) {
+ if (serialColumnsSet.insert(col.Name).second)
+ serialColumns = L(serialColumns, BuildQuotedAtom(Pos, col.Name));
+ }
if (col.Nullable) {
type = Y("AsOptionalType", type);
} else {
@@ -844,6 +850,10 @@ public:
opts = L(opts, Q(Y(Q("notnull"), Q(notNullColumns))));
}
+ if (!serialColumnsSet.empty()) {
+ opts = L(opts, Q(Y(Q("serialColumns"), Q(serialColumns))));
+ }
+
if (!Params.PartitionByColumns.empty()) {
auto partitionBy = Y();
for (auto& col : Params.PartitionByColumns) {
diff --git a/ydb/library/yql/sql/v1/select.cpp b/ydb/library/yql/sql/v1/select.cpp
index 65d7a3624c..28228731d3 100644
--- a/ydb/library/yql/sql/v1/select.cpp
+++ b/ydb/library/yql/sql/v1/select.cpp
@@ -1,5 +1,5 @@
#include "sql.h"
-#include "node.h"
+#include "source.h"
#include "context.h"
@@ -1660,7 +1660,6 @@ public:
return false;
}
}
-
return true;
}
diff --git a/ydb/library/yql/sql/v1/source.cpp b/ydb/library/yql/sql/v1/source.cpp
new file mode 100644
index 0000000000..8c696ce22b
--- /dev/null
+++ b/ydb/library/yql/sql/v1/source.cpp
@@ -0,0 +1,949 @@
+#include "source.h"
+#include "context.h"
+
+#include <ydb/library/yql/ast/yql_ast_escaping.h>
+#include <ydb/library/yql/ast/yql_expr.h>
+#include <ydb/library/yql/core/sql_types/simple_types.h>
+#include <ydb/library/yql/minikql/mkql_type_ops.h>
+#include <ydb/library/yql/parser/pg_catalog/catalog.h>
+#include <ydb/library/yql/utils/yql_panic.h>
+
+#include <library/cpp/containers/stack_vector/stack_vec.h>
+#include <library/cpp/charset/ci_string.h>
+#include <util/generic/hash_set.h>
+#include <util/stream/str.h>
+#include <util/string/cast.h>
+#include <util/string/escape.h>
+#include <util/string/subst.h>
+
+using namespace NYql;
+
+namespace NSQLTranslationV1 {
+
+
+TTableRef::TTableRef(const TString& refName, const TString& service, const TDeferredAtom& cluster, TNodePtr keys)
+ : RefName(refName)
+ , Service(to_lower(service))
+ , Cluster(cluster)
+ , Keys(keys)
+{
+}
+
+TString TTableRef::ShortName() const {
+ Y_VERIFY_DEBUG(Keys);
+ if (Keys->GetTableKeys()->GetTableName()) {
+ return *Keys->GetTableKeys()->GetTableName();
+ }
+ return TString();
+}
+
+ISource::ISource(TPosition pos)
+ : INode(pos)
+{
+}
+
+ISource::~ISource()
+{
+}
+
+TSourcePtr ISource::CloneSource() const {
+ Y_VERIFY_DEBUG(dynamic_cast<ISource*>(Clone().Get()), "Cloned node is no source");
+ TSourcePtr result = static_cast<ISource*>(Clone().Get());
+ for (auto curFilter: Filters) {
+ result->Filters.emplace_back(curFilter->Clone());
+ }
+ for (int i = 0; i < static_cast<int>(EExprSeat::Max); ++i) {
+ result->NamedExprs[i] = CloneContainer(NamedExprs[i]);
+ }
+ result->FlattenColumns = FlattenColumns;
+ result->FlattenMode = FlattenMode;
+ return result;
+}
+
+bool ISource::IsFake() const {
+ return false;
+}
+
+void ISource::AllColumns() {
+ return;
+}
+
+const TColumns* ISource::GetColumns() const {
+ return nullptr;
+}
+
+void ISource::GetInputTables(TTableList& tableList) const {
+ for (auto srcPtr: UsedSources) {
+ srcPtr->GetInputTables(tableList);
+ }
+ return;
+}
+
+TMaybe<bool> ISource::AddColumn(TContext& ctx, TColumnNode& column) {
+ if (column.IsReliable()) {
+ ctx.Error(Pos) << "Source does not allow column references";
+ ctx.Error(column.GetPos()) << "Column reference " <<
+ (column.GetColumnName() ? "'" + *column.GetColumnName() + "'" : "(expr)");
+ }
+ return {};
+}
+
+void ISource::FinishColumns() {
+}
+
+
+bool ISource::AddFilter(TContext& ctx, TNodePtr filter) {
+ Y_UNUSED(ctx);
+ Filters.push_back(filter);
+ return true;
+}
+
+bool ISource::AddGroupKey(TContext& ctx, const TString& column) {
+ if (!GroupKeys.insert(column).second) {
+ ctx.Error() << "Duplicate grouping column: " << column;
+ return false;
+ }
+ OrderedGroupKeys.push_back(column);
+ return true;
+}
+
+void ISource::SetCompactGroupBy(bool compactGroupBy) {
+ CompactGroupBy = compactGroupBy;
+}
+
+void ISource::SetGroupBySuffix(const TString& suffix) {
+ GroupBySuffix = suffix;
+}
+
+bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions, EExprSeat exprSeat) {
+ YQL_ENSURE(exprSeat < EExprSeat::Max);
+ THashSet<TString> names;
+ THashSet<TString> aliasSet;
+ // TODO: merge FlattenBy with FlattenByExpr
+ const bool isFlatten = (exprSeat == EExprSeat::FlattenBy || exprSeat == EExprSeat::FlattenByExpr);
+ THashSet<TString>& aliases = isFlatten ? FlattenByAliases : aliasSet;
+ for (const auto& expr: expressions) {
+ const auto& alias = expr->GetLabel();
+ const auto& columnNamePtr = expr->GetColumnName();
+ if (alias) {
+ ExprAliases.insert(alias);
+ if (!aliases.emplace(alias).second) {
+ ctx.Error(expr->GetPos()) << "Duplicate alias found: " << alias << " in " << exprSeat << " section";
+ return false;
+ }
+ if (names.contains(alias)) {
+ ctx.Error(expr->GetPos()) << "Collision between alias and column name: " << alias << " in " << exprSeat << " section";
+ return false;
+ }
+ }
+ if (columnNamePtr) {
+ const auto& sourceName = *expr->GetSourceName();
+ auto columnName = *columnNamePtr;
+ if (sourceName) {
+ columnName = DotJoin(sourceName, columnName);
+ }
+ if (!names.emplace(columnName).second) {
+ ctx.Error(expr->GetPos()) << "Duplicate column name found: " << columnName << " in " << exprSeat << " section";
+ return false;
+ }
+ if (!alias && aliases.contains(columnName)) {
+ ctx.Error(expr->GetPos()) << "Collision between alias and column name: " << columnName << " in " << exprSeat << " section";
+ return false;
+ }
+ if (alias && exprSeat == EExprSeat::GroupBy) {
+ auto columnAlias = GroupByColumnAliases.emplace(columnName, alias);
+ auto oldAlias = columnAlias.first->second;
+ if (columnAlias.second && oldAlias != alias) {
+ ctx.Error(expr->GetPos()) << "Alias for column not same, column: " << columnName <<
+ ", exist alias: " << oldAlias << ", another alias: " << alias;
+ return false;
+ }
+ }
+ }
+
+ if (exprSeat == EExprSeat::GroupBy) {
+ if (auto sessionWindow = dynamic_cast<TSessionWindow*>(expr.Get())) {
+ if (SessionWindow) {
+ ctx.Error(expr->GetPos()) << "Duplicate session window specification:";
+ ctx.Error(SessionWindow->GetPos()) << "Previous session window is declared here";
+ return false;
+ }
+ SessionWindow = expr;
+ }
+ if (auto hoppingWindow = dynamic_cast<THoppingWindow*>(expr.Get())) {
+ if (HoppingWindow) {
+ ctx.Error(expr->GetPos()) << "Duplicate hopping window specification:";
+ ctx.Error(HoppingWindow->GetPos()) << "Previous hopping window is declared here";
+ return false;
+ }
+ HoppingWindow = expr;
+ }
+ }
+ Expressions(exprSeat).emplace_back(expr);
+ }
+ return true;
+}
+
+void ISource::SetFlattenByMode(const TString& mode) {
+ FlattenMode = mode;
+}
+
+void ISource::MarkFlattenColumns() {
+ FlattenColumns = true;
+}
+
+bool ISource::IsFlattenColumns() const {
+ return FlattenColumns;
+}
+
+TString ISource::MakeLocalName(const TString& name) {
+ auto iter = GenIndexes.find(name);
+ if (iter == GenIndexes.end()) {
+ iter = GenIndexes.emplace(name, 0).first;
+ }
+ TStringBuilder str;
+ str << name << iter->second;
+ ++iter->second;
+ return std::move(str);
+}
+
+bool ISource::AddAggregation(TContext& ctx, TAggregationPtr aggr) {
+ Y_UNUSED(ctx);
+ YQL_ENSURE(aggr);
+ Aggregations.push_back(aggr);
+ return true;
+}
+
+bool ISource::HasAggregations() const {
+ return !Aggregations.empty() || !GroupKeys.empty();
+}
+
+void ISource::AddWindowSpecs(TWinSpecs winSpecs) {
+ WinSpecs = winSpecs;
+}
+
+bool ISource::AddFuncOverWindow(TContext& ctx, TNodePtr expr) {
+ Y_UNUSED(ctx);
+ Y_UNUSED(expr);
+ return false;
+}
+
+void ISource::AddTmpWindowColumn(const TString& column) {
+ TmpWindowColumns.push_back(column);
+}
+
+const TVector<TString>& ISource::GetTmpWindowColumns() const {
+ return TmpWindowColumns;
+}
+
+void ISource::SetLegacyHoppingWindowSpec(TLegacyHoppingWindowSpecPtr spec) {
+ LegacyHoppingWindowSpec = spec;
+}
+
+TLegacyHoppingWindowSpecPtr ISource::GetLegacyHoppingWindowSpec() const {
+ return LegacyHoppingWindowSpec;
+}
+
+TNodePtr ISource::GetSessionWindowSpec() const {
+ return SessionWindow;
+}
+
+TNodePtr ISource::GetHoppingWindowSpec() const {
+ return HoppingWindow;
+}
+
+TWindowSpecificationPtr ISource::FindWindowSpecification(TContext& ctx, const TString& windowName) const {
+ auto winIter = WinSpecs.find(windowName);
+ if (winIter == WinSpecs.end()) {
+ ctx.Error(Pos) << "Unable to find window specification for window '" << windowName << "'";
+ return {};
+ }
+ YQL_ENSURE(winIter->second);
+ return winIter->second;
+}
+
+inline TVector<TNodePtr>& ISource::Expressions(EExprSeat exprSeat) {
+ return NamedExprs[static_cast<size_t>(exprSeat)];
+}
+
+const TVector<TNodePtr>& ISource::Expressions(EExprSeat exprSeat) const {
+ return NamedExprs[static_cast<size_t>(exprSeat)];
+}
+
+inline TNodePtr ISource::AliasOrColumn(const TNodePtr& node, bool withSource) {
+ auto result = node->GetLabel();
+ if (!result) {
+ const auto columnNamePtr = node->GetColumnName();
+ YQL_ENSURE(columnNamePtr);
+ result = *columnNamePtr;
+ if (withSource) {
+ const auto sourceNamePtr = node->GetSourceName();
+ if (sourceNamePtr) {
+ result = DotJoin(*sourceNamePtr, result);
+ }
+ }
+ }
+ return BuildQuotedAtom(node->GetPos(), result);
+}
+
+bool ISource::AddAggregationOverWindow(TContext& ctx, const TString& windowName, TAggregationPtr func) {
+ YQL_ENSURE(func->IsOverWindow());
+ if (func->IsDistinct()) {
+ ctx.Error(func->GetPos()) << "Aggregation with distinct is not allowed over window: " << windowName;
+ return false;
+ }
+ if (!FindWindowSpecification(ctx, windowName)) {
+ return false;
+ }
+ AggregationOverWindow[windowName].emplace_back(std::move(func));
+ return true;
+}
+
+bool ISource::AddFuncOverWindow(TContext& ctx, const TString& windowName, TNodePtr func) {
+ if (!FindWindowSpecification(ctx, windowName)) {
+ return false;
+ }
+ FuncOverWindow[windowName].emplace_back(std::move(func));
+ return true;
+}
+
+bool ISource::IsCompositeSource() const {
+ return false;
+}
+
+bool ISource::IsGroupByColumn(const TString& column) const {
+ return GroupKeys.contains(column);
+}
+
+bool ISource::IsFlattenByColumns() const {
+ return !Expressions(EExprSeat::FlattenBy).empty();
+}
+
+bool ISource::IsFlattenByExprs() const {
+ return !Expressions(EExprSeat::FlattenByExpr).empty();
+}
+
+bool ISource::IsAlias(EExprSeat exprSeat, const TString& column) const {
+ for (const auto& exprNode: Expressions(exprSeat)) {
+ const auto& labelName = exprNode->GetLabel();
+ if (labelName && labelName == column) {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool ISource::IsExprAlias(const TString& column) const {
+ std::array<EExprSeat, 5> exprSeats = {{EExprSeat::FlattenBy, EExprSeat::FlattenByExpr, EExprSeat::GroupBy,
+ EExprSeat::WindowPartitionBy, EExprSeat::DistinctAggr}};
+ for (auto seat: exprSeats) {
+ if (IsAlias(seat, column)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool ISource::IsExprSeat(EExprSeat exprSeat, EExprType type) const {
+ auto expressions = Expressions(exprSeat);
+ if (!expressions) {
+ return false;
+ }
+ for (const auto& exprNode: expressions) {
+ if (exprNode->GetLabel()) {
+ return type == EExprType::WithExpression;
+ }
+ }
+ return type == EExprType::ColumnOnly;
+}
+
+TString ISource::GetGroupByColumnAlias(const TString& column) const {
+ auto iter = GroupByColumnAliases.find(column);
+ if (iter == GroupByColumnAliases.end()) {
+ return {};
+ }
+ return iter->second;
+}
+
+const TString* ISource::GetWindowName() const {
+ return {};
+}
+
+bool ISource::IsCalcOverWindow() const {
+ return !AggregationOverWindow.empty() || !FuncOverWindow.empty() ||
+ AnyOf(WinSpecs, [](const auto& item) { return item.second->Session; });
+}
+
+bool ISource::IsOverWindowSource() const {
+ return !WinSpecs.empty();
+}
+
+bool ISource::IsStream() const {
+ return false;
+}
+
+EOrderKind ISource::GetOrderKind() const {
+ return EOrderKind::None;
+}
+
+TWriteSettings ISource::GetWriteSettings() const {
+ return {};
+}
+
+bool ISource::SetSamplingOptions(TContext& ctx,
+ TPosition pos,
+ ESampleMode mode,
+ TNodePtr samplingRate,
+ TNodePtr samplingSeed) {
+ Y_UNUSED(pos);
+ Y_UNUSED(mode);
+ Y_UNUSED(samplingRate);
+ Y_UNUSED(samplingSeed);
+ ctx.Error() << "Sampling is only supported for table sources";
+ return false;
+}
+
+bool ISource::SetTableHints(TContext& ctx, TPosition pos, const TTableHints& hints, const TTableHints& contextHints) {
+ Y_UNUSED(pos);
+ Y_UNUSED(contextHints);
+ if (hints) {
+ ctx.Error() << "Explicit hints are only supported for table sources";
+ return false;
+ }
+ return true;
+}
+
+bool ISource::CalculateGroupingHint(TContext& ctx, const TVector<TString>& columns, ui64& hint) const {
+ Y_UNUSED(columns);
+ Y_UNUSED(hint);
+ ctx.Error() << "Source not support grouping hint";
+ return false;
+}
+
+TNodePtr ISource::BuildFilter(TContext& ctx, const TString& label) {
+ return Filters.empty() ? nullptr : Y(ctx.UseUnordered(*this) ? "OrderedFilter" : "Filter", label, BuildFilterLambda());
+}
+
+TNodePtr ISource::BuildFilterLambda() {
+ if (Filters.empty()) {
+ return BuildLambda(Pos, Y("row"), Y("Bool", Q("true")));
+ }
+ YQL_ENSURE(Filters[0]->HasState(ENodeState::Initialized));
+ TNodePtr filter(Filters[0]);
+ for (ui32 i = 1; i < Filters.size(); ++i) {
+ YQL_ENSURE(Filters[i]->HasState(ENodeState::Initialized));
+ filter = Y("And", filter, Filters[i]);
+ }
+ filter = Y("Coalesce", filter, Y("Bool", Q("false")));
+ return BuildLambda(Pos, Y("row"), filter);
+}
+
+TNodePtr ISource::BuildFlattenByColumns(const TString& label) {
+ auto columnsList = Y("FlattenByColumns", Q(FlattenMode), label);
+ for (const auto& column: Expressions(EExprSeat::FlattenBy)) {
+ const auto columnNamePtr = column->GetColumnName();
+ YQL_ENSURE(columnNamePtr);
+ if (column->GetLabel().empty()) {
+ columnsList = L(columnsList, Q(*columnNamePtr));
+ } else {
+ columnsList = L(columnsList, Q(Y(Q(*columnNamePtr), Q(column->GetLabel()))));
+ }
+ }
+ return Y(Y("let", "res", columnsList));
+}
+
+TNodePtr ISource::BuildFlattenColumns(const TString& label) {
+ return Y(Y("let", "res", Y("Just", Y("FlattenStructs", label))));
+}
+
+namespace {
+
+TNodePtr BuildLambdaBodyForExprAliases(TPosition pos, const TVector<TNodePtr>& exprs) {
+ auto structObj = BuildAtom(pos, "row", TNodeFlags::Default);
+ for (const auto& exprNode: exprs) {
+ const auto name = exprNode->GetLabel();
+ YQL_ENSURE(name);
+ structObj = structObj->Y("ForceRemoveMember", structObj, structObj->Q(name));
+ if (dynamic_cast<const TSessionWindow*>(exprNode.Get())) {
+ continue;
+ }
+ if (dynamic_cast<const THoppingWindow*>(exprNode.Get())) {
+ continue;
+ }
+ structObj = structObj->Y("AddMember", structObj, structObj->Q(name), exprNode);
+ }
+ return structObj->Y("AsList", structObj);
+}
+
+}
+
+TNodePtr ISource::BuildPreaggregatedMap(TContext& ctx) {
+ Y_UNUSED(ctx);
+ const auto& groupByExprs = Expressions(EExprSeat::GroupBy);
+ const auto& distinctAggrExprs = Expressions(EExprSeat::DistinctAggr);
+ YQL_ENSURE(groupByExprs || distinctAggrExprs);
+
+ TNodePtr res;
+ if (groupByExprs) {
+ auto body = BuildLambdaBodyForExprAliases(Pos, groupByExprs);
+ res = Y("FlatMap", "core", BuildLambda(Pos, Y("row"), body));
+ }
+
+ if (distinctAggrExprs) {
+ auto body = BuildLambdaBodyForExprAliases(Pos, distinctAggrExprs);
+ auto lambda = BuildLambda(Pos, Y("row"), body);
+ res = res ? Y("FlatMap", res, lambda) : Y("FlatMap", "core", lambda);
+ }
+ return res;
+}
+
+TNodePtr ISource::BuildPreFlattenMap(TContext& ctx) {
+ Y_UNUSED(ctx);
+ YQL_ENSURE(IsFlattenByExprs());
+ return BuildLambdaBodyForExprAliases(Pos, Expressions(EExprSeat::FlattenByExpr));
+}
+
+TNodePtr ISource::BuildPrewindowMap(TContext& ctx) {
+ auto feed = BuildAtom(Pos, "row", TNodeFlags::Default);
+ for (const auto& exprNode: Expressions(EExprSeat::WindowPartitionBy)) {
+ const auto name = exprNode->GetLabel();
+ if (name && !dynamic_cast<const TSessionWindow*>(exprNode.Get())) {
+ feed = Y("AddMember", feed, Q(name), exprNode);
+ }
+ }
+ return Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), Y("AsList", feed)));
+}
+
+bool ISource::BuildSamplingLambda(TNodePtr& node) {
+ if (!SamplingRate) {
+ return true;
+ }
+ auto res = Y("Coalesce", Y("SafeCast", SamplingRate, Y("DataType", Q("Double"))), Y("Double", Q("0")));
+ res = Y("/", res, Y("Double", Q("100")));
+ res = Y(Y("let", "res", Y("OptionalIf", Y("<", Y("Random", Y("DependsOn", "row")), res), "row")));
+ node = BuildLambda(GetPos(), Y("row"), res, "res");
+ return !!node;
+}
+
+bool ISource::SetSamplingRate(TContext& ctx, TNodePtr samplingRate) {
+ if (samplingRate) {
+ if (!samplingRate->Init(ctx, this)) {
+ return false;
+ }
+ SamplingRate = Y("Ensure", samplingRate, Y(">=", samplingRate, Y("Double", Q("0"))), Y("String", Q("\"Expected sampling rate to be nonnegative\"")));
+ SamplingRate = Y("Ensure", SamplingRate, Y("<=", SamplingRate, Y("Double", Q("100"))), Y("String", Q("\"Sampling rate is over 100%\"")));
+ }
+ return true;
+}
+
+std::pair<TNodePtr, bool> ISource::BuildAggregation(const TString& label, TContext& ctx) {
+ if (GroupKeys.empty() && Aggregations.empty() && !IsCompositeSource() && !LegacyHoppingWindowSpec) {
+ return { nullptr, true };
+ }
+
+ auto keysTuple = Y();
+ YQL_ENSURE(GroupKeys.size() == OrderedGroupKeys.size());
+ for (const auto& key: OrderedGroupKeys) {
+ YQL_ENSURE(GroupKeys.contains(key));
+ keysTuple = L(keysTuple, BuildQuotedAtom(Pos, key));
+ }
+
+ std::map<std::pair<bool, TString>, std::vector<IAggregation*>> genericAggrs;
+ for (const auto& aggr: Aggregations) {
+ if (const auto key = aggr->GetGenericKey()) {
+ genericAggrs[{aggr->IsDistinct(), *key}].emplace_back(aggr.Get());
+ }
+ }
+
+ for (const auto& aggr : genericAggrs) {
+ for (size_t i = 1U; i < aggr.second.size(); ++i) {
+ aggr.second.front()->Join(aggr.second[i]);
+ }
+ }
+
+ const auto listType = Y("TypeOf", label);
+ auto aggrArgs = Y();
+ const bool overState = GroupBySuffix == "CombineState" || GroupBySuffix == "MergeState" ||
+ GroupBySuffix == "MergeFinalize" || GroupBySuffix == "MergeManyFinalize";
+ const bool allowAggApply = !LegacyHoppingWindowSpec && !SessionWindow && !HoppingWindow;
+ for (const auto& aggr: Aggregations) {
+ auto res = aggr->AggregationTraits(listType, overState, GroupBySuffix == "MergeManyFinalize", allowAggApply, ctx);
+ if (!res.second) {
+ return { nullptr, false };
+ }
+
+ if (res.first) {
+ aggrArgs = L(aggrArgs, res.first);
+ }
+ }
+
+ auto options = Y();
+ if (CompactGroupBy || GroupBySuffix == "Finalize") {
+ options = L(options, Q(Y(Q("compact"))));
+ }
+
+ if (LegacyHoppingWindowSpec) {
+ auto hoppingTraits = Y(
+ "HoppingTraits",
+ Y("ListItemType", listType),
+ BuildLambda(Pos, Y("row"), LegacyHoppingWindowSpec->TimeExtractor),
+ LegacyHoppingWindowSpec->Hop,
+ LegacyHoppingWindowSpec->Interval,
+ LegacyHoppingWindowSpec->Delay,
+ LegacyHoppingWindowSpec->DataWatermarks ? Q("true") : Q("false"),
+ Q("v1"));
+
+ options = L(options, Q(Y(Q("hopping"), hoppingTraits)));
+ }
+
+ if (SessionWindow) {
+ YQL_ENSURE(SessionWindow->GetLabel());
+ auto sessionWindow = dynamic_cast<TSessionWindow*>(SessionWindow.Get());
+ YQL_ENSURE(sessionWindow);
+ options = L(options, Q(Y(Q("session"),
+ Q(Y(BuildQuotedAtom(Pos, SessionWindow->GetLabel()), sessionWindow->BuildTraits(label))))));
+ }
+
+ if (HoppingWindow) {
+ YQL_ENSURE(HoppingWindow->GetLabel());
+ auto hoppingWindow = dynamic_cast<THoppingWindow*>(HoppingWindow.Get());
+ YQL_ENSURE(hoppingWindow);
+ options = L(options, Q(Y(Q("hopping"),
+ Q(Y(BuildQuotedAtom(Pos, HoppingWindow->GetLabel()), hoppingWindow->BuildTraits(label))))));
+ }
+
+ return { Y("AssumeColumnOrderPartial", Y("Aggregate" + GroupBySuffix, label, Q(keysTuple), Q(aggrArgs), Q(options)), Q(keysTuple)), true };
+}
+
+TMaybe<TString> ISource::FindColumnMistype(const TString& name) const {
+ auto result = FindMistypeIn(GroupKeys, name);
+ return result ? result : FindMistypeIn(ExprAliases, name);
+}
+
+void ISource::AddDependentSource(ISource* usedSource) {
+ UsedSources.push_back(usedSource);
+}
+
+class TYqlFrameBound final: public TCallNode {
+public:
+ TYqlFrameBound(TPosition pos, TNodePtr bound)
+ : TCallNode(pos, "EvaluateExpr", 1, 1, { bound })
+ , FakeSource(BuildFakeSource(pos))
+ {
+ }
+
+ bool DoInit(TContext& ctx, ISource* src) override {
+ if (!ValidateArguments(ctx)) {
+ return false;
+ }
+
+ if (!Args[0]->Init(ctx, FakeSource.Get())) {
+ return false;
+ }
+
+ return TCallNode::DoInit(ctx, src);
+ }
+
+ TNodePtr DoClone() const final {
+ return new TYqlFrameBound(Pos, Args[0]->Clone());
+ }
+private:
+ TSourcePtr FakeSource;
+};
+
+TNodePtr BuildFrameNode(const TFrameBound& frame, EFrameType frameType) {
+ TString settingStr;
+ switch (frame.Settings) {
+ case FramePreceding: settingStr = "preceding"; break;
+ case FrameCurrentRow: settingStr = "currentRow"; break;
+ case FrameFollowing: settingStr = "following"; break;
+ default: YQL_ENSURE(false, "Unexpected frame setting");
+ }
+
+ TNodePtr node = frame.Bound;
+ TPosition pos = frame.Pos;
+ if (frameType != EFrameType::FrameByRows) {
+ TVector<TNodePtr> settings;
+ settings.push_back(BuildQuotedAtom(pos, settingStr, TNodeFlags::Default));
+ if (frame.Settings != FrameCurrentRow) {
+ if (!node) {
+ node = BuildQuotedAtom(pos, "unbounded", TNodeFlags::Default);
+ } else if (!node->IsLiteral()) {
+ node = new TYqlFrameBound(pos, node);
+ }
+ settings.push_back(std::move(node));
+ }
+ return BuildTuple(pos, std::move(settings));
+ }
+
+ // TODO: switch FrameByRows to common format above
+ YQL_ENSURE(frame.Settings != FrameCurrentRow, "Should be already replaced by 0 preceding/following");
+ if (!node) {
+ node = BuildLiteralVoid(pos);
+ } else if (node->IsLiteral()) {
+ YQL_ENSURE(node->GetLiteralType() == "Int32");
+ i32 value = FromString<i32>(node->GetLiteralValue());
+ YQL_ENSURE(value >= 0);
+ if (frame.Settings == FramePreceding) {
+ value = -value;
+ }
+ node = new TCallNodeImpl(pos, "Int32", { BuildQuotedAtom(pos, ToString(value), TNodeFlags::Default) });
+ } else {
+ if (frame.Settings == FramePreceding) {
+ node = new TCallNodeImpl(pos, "Minus", { node->Clone() });
+ }
+ node = new TYqlFrameBound(pos, node);
+ }
+ return node;
+}
+
+TNodePtr ISource::BuildWindowFrame(const TFrameSpecification& spec, bool isCompact) {
+ YQL_ENSURE(spec.FrameExclusion == FrameExclNone);
+ YQL_ENSURE(spec.FrameBegin);
+ YQL_ENSURE(spec.FrameEnd);
+
+ auto frameBeginNode = BuildFrameNode(*spec.FrameBegin, spec.FrameType);
+ auto frameEndNode = BuildFrameNode(*spec.FrameEnd, spec.FrameType);
+
+ auto begin = Q(Y(Q("begin"), frameBeginNode));
+ auto end = Q(Y(Q("end"), frameEndNode));
+
+ return isCompact ? Q(Y(begin, end, Q(Y(Q("compact"))))) : Q(Y(begin, end));
+}
+
+class TSessionWindowTraits final: public TCallNode {
+public:
+ TSessionWindowTraits(TPosition pos, const TVector<TNodePtr>& args)
+ : TCallNode(pos, "SessionWindowTraits", args)
+ , FakeSource(BuildFakeSource(pos))
+ {
+ YQL_ENSURE(args.size() == 4);
+ }
+
+ bool DoInit(TContext& ctx, ISource* src) override {
+ if (!ValidateArguments(ctx)) {
+ return false;
+ }
+
+ if (!Args.back()->Init(ctx, FakeSource.Get())) {
+ return false;
+ }
+
+ return TCallNode::DoInit(ctx, src);
+ }
+
+ TNodePtr DoClone() const final {
+ return new TSessionWindowTraits(Pos, CloneContainer(Args));
+ }
+private:
+ TSourcePtr FakeSource;
+};
+
+TNodePtr ISource::BuildCalcOverWindow(TContext& ctx, const TString& label) {
+ YQL_ENSURE(IsCalcOverWindow());
+
+ TSet<TString> usedWindows;
+ for (auto& it : AggregationOverWindow) {
+ usedWindows.insert(it.first);
+ }
+ for (auto& it : FuncOverWindow) {
+ usedWindows.insert(it.first);
+ }
+ for (auto& it : WinSpecs) {
+ if (it.second->Session) {
+ usedWindows.insert(it.first);
+ }
+ }
+
+ YQL_ENSURE(!usedWindows.empty());
+
+ const bool onePartition = usedWindows.size() == 1;
+ const auto useLabel = onePartition ? label : "partitioning";
+ const auto listType = Y("TypeOf", useLabel);
+ auto framesProcess = Y();
+ auto resultNode = onePartition ? Y() : Y(Y("let", "partitioning", label));
+
+ for (const auto& name : usedWindows) {
+ auto spec = FindWindowSpecification(ctx, name);
+ YQL_ENSURE(spec);
+
+ auto aggsIter = AggregationOverWindow.find(name);
+ auto funcsIter = FuncOverWindow.find(name);
+
+ const auto& aggs = (aggsIter == AggregationOverWindow.end()) ? TVector<TAggregationPtr>() : aggsIter->second;
+ const auto& funcs = (funcsIter == FuncOverWindow.end()) ? TVector<TNodePtr>() : funcsIter->second;
+
+ auto frames = Y();
+ TString frameType;
+ switch (spec->Frame->FrameType) {
+ case EFrameType::FrameByRows: frameType = "WinOnRows"; break;
+ case EFrameType::FrameByRange: frameType = "WinOnRange"; break;
+ case EFrameType::FrameByGroups: frameType = "WinOnGroups"; break;
+ }
+ YQL_ENSURE(frameType);
+ auto callOnFrame = Y(frameType, BuildWindowFrame(*spec->Frame, spec->IsCompact));
+ for (auto& agg : aggs) {
+ auto winTraits = agg->WindowTraits(listType, ctx);
+ callOnFrame = L(callOnFrame, winTraits);
+ }
+ for (auto& func : funcs) {
+ auto winSpec = func->WindowSpecFunc(listType);
+ callOnFrame = L(callOnFrame, winSpec);
+ }
+ frames = L(frames, callOnFrame);
+
+ auto keysTuple = Y();
+ for (const auto& key: spec->Partitions) {
+ if (!dynamic_cast<TSessionWindow*>(key.Get())) {
+ keysTuple = L(keysTuple, AliasOrColumn(key, GetJoin()));
+ }
+ }
+
+ auto sortSpec = spec->OrderBy.empty() ? Y("Void") : BuildSortSpec(spec->OrderBy, useLabel, true, false);
+ if (spec->Session) {
+ TString label = spec->Session->GetLabel();
+ YQL_ENSURE(label);
+ auto sessionWindow = dynamic_cast<TSessionWindow*>(spec->Session.Get());
+ YQL_ENSURE(sessionWindow);
+ auto labelNode = BuildQuotedAtom(sessionWindow->GetPos(), label);
+
+ auto sessionTraits = sessionWindow->BuildTraits(useLabel);
+ framesProcess = Y("CalcOverSessionWindow", useLabel, Q(keysTuple), sortSpec, Q(frames), sessionTraits, Q(Y(labelNode)));
+ } else {
+ YQL_ENSURE(aggs || funcs);
+ framesProcess = Y("CalcOverWindow", useLabel, Q(keysTuple), sortSpec, Q(frames));
+ }
+
+ if (!onePartition) {
+ resultNode = L(resultNode, Y("let", "partitioning", framesProcess));
+ }
+ }
+ if (onePartition) {
+ return framesProcess;
+ } else {
+ return Y("block", Q(L(resultNode, Y("return", "partitioning"))));
+ }
+}
+
+TNodePtr ISource::BuildSort(TContext& ctx, const TString& label) {
+ Y_UNUSED(ctx);
+ Y_UNUSED(label);
+ return nullptr;
+}
+
+TNodePtr ISource::BuildCleanupColumns(TContext& ctx, const TString& label) {
+ Y_UNUSED(ctx);
+ Y_UNUSED(label);
+ return nullptr;
+}
+
+IJoin* ISource::GetJoin() {
+ return nullptr;
+}
+
+ISource* ISource::GetCompositeSource() {
+ return nullptr;
+}
+
+bool ISource::IsSelect() const {
+ return true;
+}
+
+bool ISource::IsTableSource() const {
+ return false;
+}
+
+bool ISource::ShouldUseSourceAsColumn(const TString& source) const {
+ Y_UNUSED(source);
+ return false;
+}
+
+bool ISource::IsJoinKeysInitializing() const {
+ return false;
+}
+
+bool ISource::DoInit(TContext& ctx, ISource* src) {
+ for (auto& column: Expressions(EExprSeat::FlattenBy)) {
+ if (!column->Init(ctx, this)) {
+ return false;
+ }
+ }
+
+ if (IsFlattenColumns() && src) {
+ src->AllColumns();
+ }
+
+ return true;
+}
+
+bool ISource::InitFilters(TContext& ctx) {
+ for (auto& filter: Filters) {
+ if (!filter->Init(ctx, this)) {
+ return false;
+ }
+ if (filter->IsAggregated() && !filter->IsConstant() && !filter->HasState(ENodeState::AggregationKey)) {
+ ctx.Error(filter->GetPos()) << "Can not use aggregated values in filtering";
+ return false;
+ }
+ }
+ return true;
+}
+
+TAstNode* ISource::Translate(TContext& ctx) const {
+ Y_VERIFY_DEBUG(false);
+ Y_UNUSED(ctx);
+ return nullptr;
+}
+
+void ISource::FillSortParts(const TVector<TSortSpecificationPtr>& orderBy, TNodePtr& sortDirection, TNodePtr& sortKeySelector) {
+ TNodePtr expr;
+ if (orderBy.empty()) {
+ YQL_ENSURE(!sortKeySelector);
+ sortDirection = sortKeySelector = Y("Void");
+ return;
+ } else if (orderBy.size() == 1) {
+ auto& sortSpec = orderBy.front();
+ expr = Y("PersistableRepr", sortSpec->OrderExpr);
+ sortDirection = Y("Bool", Q(sortSpec->Ascending ? "true" : "false"));
+ } else {
+ auto exprList = Y();
+ sortDirection = Y();
+ for (const auto& sortSpec: orderBy) {
+ const auto asc = sortSpec->Ascending;
+ sortDirection = L(sortDirection, Y("Bool", Q(asc ? "true" : "false")));
+ exprList = L(exprList, Y("PersistableRepr", sortSpec->OrderExpr));
+ }
+ sortDirection = Q(sortDirection);
+ expr = Q(exprList);
+ }
+ sortKeySelector = BuildLambda(Pos, Y("row"), expr);
+}
+
+TNodePtr ISource::BuildSortSpec(const TVector<TSortSpecificationPtr>& orderBy, const TString& label, bool traits, bool assume) {
+ YQL_ENSURE(!orderBy.empty());
+ TNodePtr dirsNode;
+ TNodePtr keySelectorNode;
+ FillSortParts(orderBy, dirsNode, keySelectorNode);
+ if (traits) {
+ return Y("SortTraits", Y("TypeOf", label), dirsNode, keySelectorNode);
+ } else if (assume) {
+ return Y("AssumeSorted", label, dirsNode, keySelectorNode);
+ } else {
+ return Y("Sort", label, dirsNode, keySelectorNode);
+ }
+}
+
+IJoin::IJoin(TPosition pos)
+ : ISource(pos)
+{
+}
+
+IJoin::~IJoin()
+{
+}
+
+IJoin* IJoin::GetJoin() {
+ return this;
+}
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/source.h b/ydb/library/yql/sql/v1/source.h
new file mode 100644
index 0000000000..a62b53efb9
--- /dev/null
+++ b/ydb/library/yql/sql/v1/source.h
@@ -0,0 +1,300 @@
+#pragma once
+#include "node.h"
+
+namespace NSQLTranslationV1 {
+
+ class ISource;
+ typedef TIntrusivePtr<ISource> TSourcePtr;
+
+ struct TTableRef {
+ TString RefName;
+ TString Service;
+ TDeferredAtom Cluster;
+ TNodePtr Keys;
+ TNodePtr Options;
+ TSourcePtr Source;
+
+ TTableRef() = default;
+ TTableRef(const TString& refName, const TString& service, const TDeferredAtom& cluster, TNodePtr keys);
+ TTableRef(const TTableRef&) = default;
+ TTableRef& operator=(const TTableRef&) = default;
+
+ TString ShortName() const;
+ };
+
+ typedef TVector<TTableRef> TTableList;
+
+
+ class IJoin;
+ class ISource: public INode {
+ public:
+ virtual ~ISource();
+
+ virtual bool IsFake() const;
+ virtual void AllColumns();
+ virtual const TColumns* GetColumns() const;
+ virtual void GetInputTables(TTableList& tableList) const;
+ /// in case of error unfilled, flag show if ensure column name
+ virtual TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column);
+ virtual void FinishColumns();
+ virtual bool AddExpressions(TContext& ctx, const TVector<TNodePtr>& columns, EExprSeat exprSeat);
+ virtual void SetFlattenByMode(const TString& mode);
+ virtual void MarkFlattenColumns();
+ virtual bool IsFlattenColumns() const;
+ virtual bool AddFilter(TContext& ctx, TNodePtr filter);
+ virtual bool AddGroupKey(TContext& ctx, const TString& column);
+ virtual void SetCompactGroupBy(bool compactGroupBy);
+ virtual void SetGroupBySuffix(const TString& suffix);
+ virtual TString MakeLocalName(const TString& name);
+ virtual bool AddAggregation(TContext& ctx, TAggregationPtr aggr);
+ virtual bool AddFuncOverWindow(TContext& ctx, TNodePtr expr);
+ virtual void AddTmpWindowColumn(const TString& column);
+ virtual const TVector<TString>& GetTmpWindowColumns() const;
+ virtual bool HasAggregations() const;
+ virtual void AddWindowSpecs(TWinSpecs winSpecs);
+ virtual bool AddAggregationOverWindow(TContext& ctx, const TString& windowName, TAggregationPtr func);
+ virtual bool AddFuncOverWindow(TContext& ctx, const TString& windowName, TNodePtr func);
+ virtual void SetLegacyHoppingWindowSpec(TLegacyHoppingWindowSpecPtr spec);
+ virtual TLegacyHoppingWindowSpecPtr GetLegacyHoppingWindowSpec() const;
+ virtual TNodePtr GetSessionWindowSpec() const;
+ virtual TNodePtr GetHoppingWindowSpec() const;
+ virtual bool IsCompositeSource() const;
+ virtual bool IsGroupByColumn(const TString& column) const;
+ virtual bool IsFlattenByColumns() const;
+ virtual bool IsFlattenByExprs() const;
+ virtual bool IsCalcOverWindow() const;
+ virtual bool IsOverWindowSource() const;
+ virtual bool IsStream() const;
+ virtual EOrderKind GetOrderKind() const;
+ virtual TWriteSettings GetWriteSettings() const;
+ virtual bool SetSamplingOptions(TContext& ctx, TPosition pos, ESampleMode mode, TNodePtr samplingRate, TNodePtr samplingSeed);
+ virtual bool SetTableHints(TContext& ctx, TPosition pos, const TTableHints& hints, const TTableHints& contextHints);
+ virtual bool CalculateGroupingHint(TContext& ctx, const TVector<TString>& columns, ui64& hint) const;
+ virtual TNodePtr BuildFilter(TContext& ctx, const TString& label);
+ virtual TNodePtr BuildFilterLambda();
+ virtual TNodePtr BuildFlattenByColumns(const TString& label);
+ virtual TNodePtr BuildFlattenColumns(const TString& label);
+ virtual TNodePtr BuildPreaggregatedMap(TContext& ctx);
+ virtual TNodePtr BuildPreFlattenMap(TContext& ctx);
+ virtual TNodePtr BuildPrewindowMap(TContext& ctx);
+ virtual std::pair<TNodePtr, bool> BuildAggregation(const TString& label, TContext& ctx);
+ virtual TNodePtr BuildCalcOverWindow(TContext& ctx, const TString& label);
+ virtual TNodePtr BuildSort(TContext& ctx, const TString& label);
+ virtual TNodePtr BuildCleanupColumns(TContext& ctx, const TString& label);
+ virtual bool BuildSamplingLambda(TNodePtr& node);
+ virtual bool SetSamplingRate(TContext& ctx, TNodePtr samplingRate);
+ virtual IJoin* GetJoin();
+ virtual ISource* GetCompositeSource();
+ virtual bool IsSelect() const;
+ virtual bool IsTableSource() const;
+ virtual bool ShouldUseSourceAsColumn(const TString& source) const;
+ virtual bool IsJoinKeysInitializing() const;
+ virtual const TString* GetWindowName() const;
+
+ virtual bool DoInit(TContext& ctx, ISource* src);
+ virtual TNodePtr Build(TContext& ctx) = 0;
+
+ virtual TMaybe<TString> FindColumnMistype(const TString& name) const;
+
+ virtual bool InitFilters(TContext& ctx);
+ void AddDependentSource(ISource* usedSource);
+ bool IsAlias(EExprSeat exprSeat, const TString& label) const;
+ bool IsExprAlias(const TString& label) const;
+ bool IsExprSeat(EExprSeat exprSeat, EExprType type = EExprType::WithExpression) const;
+ TString GetGroupByColumnAlias(const TString& column) const;
+ const TVector<TNodePtr>& Expressions(EExprSeat exprSeat) const;
+
+ virtual TWindowSpecificationPtr FindWindowSpecification(TContext& ctx, const TString& windowName) const;
+
+ TIntrusivePtr<ISource> CloneSource() const;
+
+ protected:
+ ISource(TPosition pos);
+ virtual TAstNode* Translate(TContext& ctx) const;
+
+ void FillSortParts(const TVector<TSortSpecificationPtr>& orderBy, TNodePtr& sortKeySelector, TNodePtr& sortDirection);
+ TNodePtr BuildSortSpec(const TVector<TSortSpecificationPtr>& orderBy, const TString& label, bool traits, bool assume);
+
+ TVector<TNodePtr>& Expressions(EExprSeat exprSeat);
+ TNodePtr AliasOrColumn(const TNodePtr& node, bool withSource);
+
+ TNodePtr BuildWindowFrame(const TFrameSpecification& spec, bool isCompact);
+
+ THashSet<TString> ExprAliases;
+ THashSet<TString> FlattenByAliases;
+ THashMap<TString, TString> GroupByColumnAliases;
+ TVector<TNodePtr> Filters;
+ bool CompactGroupBy = false;
+ TString GroupBySuffix;
+ TSet<TString> GroupKeys;
+ TVector<TString> OrderedGroupKeys;
+ std::array<TVector<TNodePtr>, static_cast<unsigned>(EExprSeat::Max)> NamedExprs;
+ TVector<TAggregationPtr> Aggregations;
+ TMap<TString, TVector<TAggregationPtr>> AggregationOverWindow;
+ TMap<TString, TVector<TNodePtr>> FuncOverWindow;
+ TWinSpecs WinSpecs;
+ TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec;
+ TNodePtr SessionWindow;
+ TNodePtr HoppingWindow;
+ TVector<ISource*> UsedSources;
+ TString FlattenMode;
+ bool FlattenColumns = false;
+ THashMap<TString, ui32> GenIndexes;
+ TVector<TString> TmpWindowColumns;
+ TNodePtr SamplingRate;
+ };
+
+ template<>
+ inline TVector<TSourcePtr> CloneContainer<TSourcePtr>(const TVector<TSourcePtr>& args) {
+ TVector<TSourcePtr> cloneArgs;
+ cloneArgs.reserve(args.size());
+ for (const auto& arg: args) {
+ cloneArgs.emplace_back(arg ? arg->CloneSource() : nullptr);
+ }
+ return cloneArgs;
+ }
+
+ struct TJoinLinkSettings {
+ bool ForceSortedMerge = false;
+ };
+
+ class IJoin: public ISource {
+ public:
+ virtual ~IJoin();
+
+ virtual IJoin* GetJoin();
+ virtual TNodePtr BuildJoinKeys(TContext& ctx, const TVector<TDeferredAtom>& names) = 0;
+ virtual void SetupJoin(const TString& joinOp, TNodePtr joinExpr, const TJoinLinkSettings& linkSettings) = 0;
+ virtual const THashMap<TString, THashSet<TString>>& GetSameKeysMap() const = 0;
+ virtual TVector<TString> GetJoinLabels() const = 0;
+
+ protected:
+ IJoin(TPosition pos);
+ };
+
+ class TSessionWindow final : public INode {
+ public:
+ TSessionWindow(TPosition pos, const TVector<TNodePtr>& args);
+ void MarkValid();
+ TNodePtr BuildTraits(const TString& label) const;
+ private:
+ bool DoInit(TContext& ctx, ISource* src) override;
+ TAstNode* Translate(TContext&) const override;
+ void DoUpdateState() const override;
+ TNodePtr DoClone() const override;
+ TString GetOpName() const override;
+
+ TVector<TNodePtr> Args;
+ TSourcePtr FakeSource;
+ TNodePtr Node;
+ bool Valid;
+ };
+
+ class THoppingWindow final : public INode {
+ public:
+ THoppingWindow(TPosition pos, const TVector<TNodePtr>& args);
+ void MarkValid();
+ TNodePtr BuildTraits(const TString& label) const;
+ public:
+ TNodePtr Hop;
+ TNodePtr Interval;
+ private:
+ bool DoInit(TContext& ctx, ISource* src) override;
+ TAstNode* Translate(TContext&) const override;
+ void DoUpdateState() const override;
+ TNodePtr DoClone() const override;
+ TString GetOpName() const override;
+ TNodePtr ProcessIntervalParam(const TNodePtr& val) const;
+
+ TVector<TNodePtr> Args;
+ TSourcePtr FakeSource;
+ TNodePtr Node;
+ bool Valid;
+ };
+
+
+ // Implemented in join.cpp
+ TString NormalizeJoinOp(const TString& joinOp);
+ TSourcePtr BuildEquiJoin(TPosition pos, TVector<TSourcePtr>&& sources, TVector<bool>&& anyFlags, bool strictJoinKeyTypes);
+
+ // Implemented in select.cpp
+ TNodePtr BuildSubquery(TSourcePtr source, const TString& alias, bool inSubquery, int ensureTupleSize, TScopedStatePtr scoped);
+ TNodePtr BuildSubqueryRef(TNodePtr subquery, const TString& alias, int tupleIndex = -1);
+ TNodePtr BuildInvalidSubqueryRef(TPosition subqueryPos);
+ TNodePtr BuildSourceNode(TPosition pos, TSourcePtr source, bool checkExist = false);
+ TSourcePtr BuildMuxSource(TPosition pos, TVector<TSourcePtr>&& sources);
+ TSourcePtr BuildFakeSource(TPosition pos, bool missingFrom = false, bool inSubquery = false);
+ TSourcePtr BuildNodeSource(TPosition pos, const TNodePtr& node, bool wrapToList = false);
+ TSourcePtr BuildTableSource(TPosition pos, const TTableRef& table, const TString& label = TString());
+ TSourcePtr BuildInnerSource(TPosition pos, TNodePtr node, const TString& service, const TDeferredAtom& cluster, const TString& label = TString());
+ TSourcePtr BuildRefColumnSource(TPosition pos, const TString& partExpression);
+ TSourcePtr BuildUnionAll(TPosition pos, TVector<TSourcePtr>&& sources, const TWriteSettings& settings);
+ TSourcePtr BuildOverWindowSource(TPosition pos, const TString& windowName, ISource* origSource);
+
+ TNodePtr BuildOrderBy(TPosition pos, const TVector<TNodePtr>& keys, const TVector<bool>& order);
+ TNodePtr BuildSkipTake(TPosition pos, const TNodePtr& skip, const TNodePtr& take);
+
+
+ TSourcePtr BuildSelectCore(
+ TContext& ctx,
+ TPosition pos,
+ TSourcePtr source,
+ const TVector<TNodePtr>& groupByExpr,
+ const TVector<TNodePtr>& groupBy,
+ bool compactGroupBy,
+ const TString& groupBySuffix,
+ bool assumeSorted,
+ const TVector<TSortSpecificationPtr>& orderBy,
+ TNodePtr having,
+ TWinSpecs&& windowSpec,
+ TLegacyHoppingWindowSpecPtr legacyHoppingWindowSpec,
+ TVector<TNodePtr>&& terms,
+ bool distinct,
+ TVector<TNodePtr>&& without,
+ bool selectStream,
+ const TWriteSettings& settings
+ );
+ TSourcePtr BuildSelect(TPosition pos, TSourcePtr source, TNodePtr skipTake);
+
+
+ enum class ReduceMode {
+ ByPartition,
+ ByAll,
+ };
+ TSourcePtr BuildReduce(TPosition pos, ReduceMode mode, TSourcePtr source, TVector<TSortSpecificationPtr>&& orderBy,
+ TVector<TNodePtr>&& keys, TVector<TNodePtr>&& args, TNodePtr udf, TNodePtr having, const TWriteSettings& settings,
+ const TVector<TSortSpecificationPtr>& assumeOrderBy, bool listCall);
+ TSourcePtr BuildProcess(TPosition pos, TSourcePtr source, TNodePtr with, bool withExtFunction, TVector<TNodePtr>&& terms, bool listCall,
+ bool prcessStream, const TWriteSettings& settings, const TVector<TSortSpecificationPtr>& assumeOrderBy);
+
+ TNodePtr BuildSelectResult(TPosition pos, TSourcePtr source, bool writeResult, bool inSubquery, TScopedStatePtr scoped);
+
+ // Implemented in insert.cpp
+ TSourcePtr BuildWriteValues(TPosition pos, const TString& opertationHumanName, const TVector<TString>& columnsHint, const TVector<TVector<TNodePtr>>& values);
+ TSourcePtr BuildWriteValues(TPosition pos, const TString& opertationHumanName, const TVector<TString>& columnsHint, TSourcePtr source);
+ TSourcePtr BuildUpdateValues(TPosition pos, const TVector<TString>& columnsHint, const TVector<TNodePtr>& values);
+
+ EWriteColumnMode ToWriteColumnsMode(ESQLWriteColumnMode sqlWriteColumnMode);
+ TNodePtr BuildEraseColumns(TPosition pos, const TVector<TString>& columns);
+ TNodePtr BuildIntoTableOptions(TPosition pos, const TVector<TString>& eraseColumns, const TTableHints& hints);
+ TNodePtr BuildWriteColumns(TPosition pos, TScopedStatePtr scoped, const TTableRef& table, EWriteColumnMode mode, TSourcePtr values, TNodePtr options = nullptr);
+ TNodePtr BuildUpdateColumns(TPosition pos, TScopedStatePtr scoped, const TTableRef& table, TSourcePtr values, TSourcePtr source);
+ TNodePtr BuildDelete(TPosition pos, TScopedStatePtr scoped, const TTableRef& table, TSourcePtr source);
+
+ // Implemented in query.cpp
+ TNodePtr BuildTableKey(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TString& view);
+ TNodePtr BuildTableKeys(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TString& func, const TVector<TTableArg>& args);
+ TNodePtr BuildTopicKey(TPosition pos, const TDeferredAtom& cluster, const TDeferredAtom& name);
+ TNodePtr BuildInputOptions(TPosition pos, const TTableHints& hints);
+ TNodePtr BuildInputTables(TPosition pos, const TTableList& tables, bool inSubquery, TScopedStatePtr scoped);
+ TNodePtr BuildCreateTable(TPosition pos, const TTableRef& tr, const TCreateTableParameters& params, TScopedStatePtr scoped);
+ TNodePtr BuildAlterTable(TPosition pos, const TTableRef& tr, const TAlterTableParameters& params, TScopedStatePtr scoped);
+ TNodePtr BuildDropTable(TPosition pos, const TTableRef& table, ETableType tableType, TScopedStatePtr scoped);
+ TNodePtr BuildWriteTable(TPosition pos, const TString& label, const TTableRef& table, EWriteColumnMode mode, TNodePtr options,
+ TScopedStatePtr scoped);
+ TSourcePtr TryMakeSourceFromExpression(TContext& ctx, const TString& currService, const TDeferredAtom& currCluster,
+ TNodePtr node, const TString& view = {});
+ void MakeTableFromExpression(TContext& ctx, TNodePtr node, TDeferredAtom& table, const TString& prefix = {});
+ TDeferredAtom MakeAtomFromExpression(TContext& ctx, TNodePtr node, const TString& prefix = {});
+ TString NormalizeTypeString(const TString& str);
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql.cpp b/ydb/library/yql/sql/v1/sql.cpp
index 65399f2d03..c9238d3b5c 100644
--- a/ydb/library/yql/sql/v1/sql.cpp
+++ b/ydb/library/yql/sql/v1/sql.cpp
@@ -1,11682 +1,13 @@
#include "sql.h"
-
-#include "context.h"
-#include "node.h"
-#include "sql_call_param.h"
-#include "object_processing.h"
-#include "ydb/library/yql/ast/yql_ast.h"
-#include <ydb/library/yql/parser/lexer_common/hints.h>
+#include "sql_query.h"
#include <ydb/library/yql/parser/proto_ast/collect_issues/collect_issues.h>
-#include <ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h>
-#include <ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.h>
-#include <ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.h>
-#include <ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.h>
-
#include <ydb/library/yql/sql/v1/lexer/lexer.h>
#include <ydb/library/yql/sql/v1/proto_parser/proto_parser.h>
-#include <ydb/library/yql/ast/yql_expr.h>
-#include <ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1Parser.pb.h>
-#include <ydb/library/yql/minikql/mkql_program_builder.h>
-#include <ydb/library/yql/providers/common/provider/yql_provider_names.h>
-#include <ydb/library/yql/core/yql_expr_type_annotation.h>
-#include <ydb/library/yql/sql/settings/partitioning.h>
-#include <ydb/library/yql/sql/settings/translation_settings.h>
-#include <ydb/library/yql/core/yql_atom_enums.h>
-
-#include <library/cpp/charset/ci_string.h>
-#include <library/cpp/json/json_reader.h>
-
-#include <ydb/library/yql/utils/utf8.h>
-#include <ydb/library/yql/utils/yql_paths.h>
-
-#include <google/protobuf/repeated_field.h>
-
-#include <util/charset/wide.h>
-#include <util/generic/array_ref.h>
-#include <util/generic/scope.h>
-#include <util/generic/set.h>
-#include <util/generic/ylimits.h>
-#include <util/string/ascii.h>
-#include <util/string/cast.h>
-#include <util/string/reverse.h>
-#include <util/string/split.h>
-#include <util/string/hex.h>
-#include <util/string/join.h>
-
-#if defined(_tsan_enabled_)
-#include <util/system/mutex.h>
-#endif
-
-using namespace NYql;
-
namespace NSQLTranslationV1 {
-TNodePtr BuildSqlCall(TContext& ctx, TPosition pos, const TString& module, const TString& name, const TVector<TNodePtr>& args,
- TNodePtr positionalArgs, TNodePtr namedArgs, TNodePtr customUserType, const TDeferredAtom& typeConfig, TNodePtr runConfig);
-
-using NALPDefault::SQLv1LexerTokens;
-
using namespace NSQLv1Generated;
-static TPosition GetPos(const TToken& token) {
- return TPosition(token.GetColumn(), token.GetLine());
-}
-
-template <typename TToken>
-TIdentifier GetIdentifier(TTranslation& ctx, const TToken& node) {
- auto token = node.GetToken1();
- return TIdentifier(TPosition(token.GetColumn(), token.GetLine()), ctx.Identifier(token));
-}
-
-inline TIdentifier GetKeywordId(TTranslation& ctx, const TRule_keyword& node) {
- // keyword:
- // keyword_compat
- // | keyword_expr_uncompat
- // | keyword_table_uncompat
- // | keyword_select_uncompat
- // | keyword_alter_uncompat
- // | keyword_in_uncompat
- // | keyword_window_uncompat
- // | keyword_hint_uncompat
- //;
- switch (node.Alt_case()) {
- case TRule_keyword::kAltKeyword1:
- return GetIdentifier(ctx, node.GetAlt_keyword1().GetRule_keyword_compat1());
- case TRule_keyword::kAltKeyword2:
- return GetIdentifier(ctx, node.GetAlt_keyword2().GetRule_keyword_expr_uncompat1());
- case TRule_keyword::kAltKeyword3:
- return GetIdentifier(ctx, node.GetAlt_keyword3().GetRule_keyword_table_uncompat1());
- case TRule_keyword::kAltKeyword4:
- return GetIdentifier(ctx, node.GetAlt_keyword4().GetRule_keyword_select_uncompat1());
- case TRule_keyword::kAltKeyword5:
- return GetIdentifier(ctx, node.GetAlt_keyword5().GetRule_keyword_alter_uncompat1());
- case TRule_keyword::kAltKeyword6:
- return GetIdentifier(ctx, node.GetAlt_keyword6().GetRule_keyword_in_uncompat1());
- case TRule_keyword::kAltKeyword7:
- return GetIdentifier(ctx, node.GetAlt_keyword7().GetRule_keyword_window_uncompat1());
- case TRule_keyword::kAltKeyword8:
- return GetIdentifier(ctx, node.GetAlt_keyword8().GetRule_keyword_hint_uncompat1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-inline TString GetKeyword(TTranslation& ctx, const TRule_keyword& node) {
- return GetKeywordId(ctx, node).Name;
-}
-
-template <typename TRule>
-inline TString GetKeyword(TTranslation& ctx, const TRule& node) {
- return GetIdentifier(ctx, node).Name;
-}
-
-static TString Id(const TRule_identifier& node, TTranslation& ctx) {
- // identifier: ID_PLAIN | ID_QUOTED;
- return ctx.Identifier(node.GetToken1());
-}
-
-static TString Id(const TRule_id& node, TTranslation& ctx) {
- // id: identifier | keyword;
- switch (node.Alt_case()) {
- case TRule_id::kAltId1:
- return Id(node.GetAlt_id1().GetRule_identifier1(), ctx);
- case TRule_id::kAltId2:
- return GetKeyword(ctx, node.GetAlt_id2().GetRule_keyword1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_id_or_type& node, TTranslation& ctx) {
- switch (node.Alt_case()) {
- case TRule_id_or_type::kAltIdOrType1:
- return Id(node.GetAlt_id_or_type1().GetRule_id1(), ctx);
- case TRule_id_or_type::kAltIdOrType2:
- return ctx.Identifier(node.GetAlt_id_or_type2().GetRule_type_id1().GetToken1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_id_as_compat& node, TTranslation& ctx) {
- switch (node.Alt_case()) {
- case TRule_id_as_compat::kAltIdAsCompat1:
- return Id(node.GetAlt_id_as_compat1().GetRule_identifier1(), ctx);
- case TRule_id_as_compat::kAltIdAsCompat2:
- return ctx.Token(node.GetAlt_id_as_compat2().GetRule_keyword_as_compat1().GetToken1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id_as_compat& node, TTranslation& ctx) {
- switch (node.Alt_case()) {
- case TRule_an_id_as_compat::kAltAnIdAsCompat1:
- return Id(node.GetAlt_an_id_as_compat1().GetRule_id_as_compat1(), ctx);
- case TRule_an_id_as_compat::kAltAnIdAsCompat2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_as_compat2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_id_schema& node, TTranslation& ctx) {
- //id_schema:
- // identifier
- // | keyword_compat
- // | keyword_expr_uncompat
- // // | keyword_table_uncompat
- // | keyword_select_uncompat
- // // | keyword_alter_uncompat
- // | keyword_in_uncompat
- // | keyword_window_uncompat
- // | keyword_hint_uncompat
- //;
- switch (node.Alt_case()) {
- case TRule_id_schema::kAltIdSchema1:
- return Id(node.GetAlt_id_schema1().GetRule_identifier1(), ctx);
- case TRule_id_schema::kAltIdSchema2:
- return GetKeyword(ctx, node.GetAlt_id_schema2().GetRule_keyword_compat1());
- case TRule_id_schema::kAltIdSchema3:
- return GetKeyword(ctx, node.GetAlt_id_schema3().GetRule_keyword_expr_uncompat1());
- case TRule_id_schema::kAltIdSchema4:
- return GetKeyword(ctx, node.GetAlt_id_schema4().GetRule_keyword_select_uncompat1());
- case TRule_id_schema::kAltIdSchema5:
- return GetKeyword(ctx, node.GetAlt_id_schema5().GetRule_keyword_in_uncompat1());
- case TRule_id_schema::kAltIdSchema6:
- return GetKeyword(ctx, node.GetAlt_id_schema6().GetRule_keyword_window_uncompat1());
- case TRule_id_schema::kAltIdSchema7:
- return GetKeyword(ctx, node.GetAlt_id_schema7().GetRule_keyword_hint_uncompat1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id_or_type& node, TTranslation& ctx) {
- // an_id_or_type: id_or_type | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_an_id_or_type::kAltAnIdOrType1:
- return Id(node.GetAlt_an_id_or_type1().GetRule_id_or_type1(), ctx);
- case TRule_an_id_or_type::kAltAnIdOrType2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_or_type2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static std::pair<bool, TString> Id(const TRule_id_or_at& node, TTranslation& ctx) {
- bool hasAt = node.HasBlock1();
- return std::make_pair(hasAt, Id(node.GetRule_an_id_or_type2(), ctx) );
-}
-
-static TString Id(const TRule_id_table& node, TTranslation& ctx) {
- //id_table:
- // identifier
- // | keyword_compat
- // | keyword_expr_uncompat
- // // | keyword_table_uncompat
- // | keyword_select_uncompat
- // // | keyword_alter_uncompat
- // | keyword_in_uncompat
- // | keyword_window_uncompat
- // | keyword_hint_uncompat
- //;
- switch (node.Alt_case()) {
- case TRule_id_table::kAltIdTable1:
- return Id(node.GetAlt_id_table1().GetRule_identifier1(), ctx);
- case TRule_id_table::kAltIdTable2:
- return GetKeyword(ctx, node.GetAlt_id_table2().GetRule_keyword_compat1());
- case TRule_id_table::kAltIdTable3:
- return GetKeyword(ctx, node.GetAlt_id_table3().GetRule_keyword_expr_uncompat1());
- case TRule_id_table::kAltIdTable4:
- return GetKeyword(ctx, node.GetAlt_id_table4().GetRule_keyword_select_uncompat1());
- case TRule_id_table::kAltIdTable5:
- return GetKeyword(ctx, node.GetAlt_id_table5().GetRule_keyword_in_uncompat1());
- case TRule_id_table::kAltIdTable6:
- return GetKeyword(ctx, node.GetAlt_id_table6().GetRule_keyword_window_uncompat1());
- case TRule_id_table::kAltIdTable7:
- return GetKeyword(ctx, node.GetAlt_id_table7().GetRule_keyword_hint_uncompat1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id_table& node, TTranslation& ctx) {
- // an_id_table: id_table | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_an_id_table::kAltAnIdTable1:
- return Id(node.GetAlt_an_id_table1().GetRule_id_table1(), ctx);
- case TRule_an_id_table::kAltAnIdTable2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_table2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_id_table_or_type& node, TTranslation& ctx) {
- switch (node.Alt_case()) {
- case TRule_id_table_or_type::kAltIdTableOrType1:
- return Id(node.GetAlt_id_table_or_type1().GetRule_an_id_table1(), ctx);
- case TRule_id_table_or_type::kAltIdTableOrType2:
- return ctx.Identifier(node.GetAlt_id_table_or_type2().GetRule_type_id1().GetToken1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_id_expr& node, TTranslation& ctx) {
- //id_expr:
- // identifier
- // | keyword_compat
- // // | keyword_expr_uncompat
- // // | keyword_table_uncompat
- // // | keyword_select_uncompat
- // | keyword_alter_uncompat
- // | keyword_in_uncompat
- // | keyword_window_uncompat
- // | keyword_hint_uncompat
- //;
- switch (node.Alt_case()) {
- case TRule_id_expr::kAltIdExpr1:
- return Id(node.GetAlt_id_expr1().GetRule_identifier1(), ctx);
- case TRule_id_expr::kAltIdExpr2:
- return GetKeyword(ctx, node.GetAlt_id_expr2().GetRule_keyword_compat1());
- case TRule_id_expr::kAltIdExpr3:
- return GetKeyword(ctx, node.GetAlt_id_expr3().GetRule_keyword_alter_uncompat1());
- case TRule_id_expr::kAltIdExpr4:
- return GetKeyword(ctx, node.GetAlt_id_expr4().GetRule_keyword_in_uncompat1());
- case TRule_id_expr::kAltIdExpr5:
- return GetKeyword(ctx, node.GetAlt_id_expr5().GetRule_keyword_window_uncompat1());
- case TRule_id_expr::kAltIdExpr6:
- return GetKeyword(ctx, node.GetAlt_id_expr6().GetRule_keyword_hint_uncompat1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static bool IsQuotedId(const TRule_id_expr& node, TTranslation& ctx) {
- if (node.Alt_case() != TRule_id_expr::kAltIdExpr1) {
- return false;
- }
- const auto& id = ctx.Token(node.GetAlt_id_expr1().GetRule_identifier1().GetToken1());
- // identifier: ID_PLAIN | ID_QUOTED;
- return id.StartsWith('`');
-}
-
-static TString Id(const TRule_id_expr_in& node, TTranslation& ctx) {
- //id_expr_in:
- // identifier
- // | keyword_compat
- // // | keyword_expr_uncompat
- // // | keyword_table_uncompat
- // // | keyword_select_uncompat
- // | keyword_alter_uncompat
- // // | keyword_in_uncompat
- // | keyword_window_uncompat
- // | keyword_hint_uncompat
- //;
- switch (node.Alt_case()) {
- case TRule_id_expr_in::kAltIdExprIn1:
- return Id(node.GetAlt_id_expr_in1().GetRule_identifier1(), ctx);
- case TRule_id_expr_in::kAltIdExprIn2:
- return GetKeyword(ctx, node.GetAlt_id_expr_in2().GetRule_keyword_compat1());
- case TRule_id_expr_in::kAltIdExprIn3:
- return GetKeyword(ctx, node.GetAlt_id_expr_in3().GetRule_keyword_alter_uncompat1());
- case TRule_id_expr_in::kAltIdExprIn4:
- return GetKeyword(ctx, node.GetAlt_id_expr_in4().GetRule_keyword_window_uncompat1());
- case TRule_id_expr_in::kAltIdExprIn5:
- return GetKeyword(ctx, node.GetAlt_id_expr_in5().GetRule_keyword_hint_uncompat1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_id_window& node, TTranslation& ctx) {
- //id_window:
- // identifier
- // | keyword_compat
- // | keyword_expr_uncompat
- // | keyword_table_uncompat
- // | keyword_select_uncompat
- // | keyword_alter_uncompat
- // | keyword_in_uncompat
- // // | keyword_window_uncompat
- // | keyword_hint_uncompat
- //;
- switch (node.Alt_case()) {
- case TRule_id_window::kAltIdWindow1:
- return Id(node.GetAlt_id_window1().GetRule_identifier1(), ctx);
- case TRule_id_window::kAltIdWindow2:
- return GetKeyword(ctx, node.GetAlt_id_window2().GetRule_keyword_compat1());
- case TRule_id_window::kAltIdWindow3:
- return GetKeyword(ctx, node.GetAlt_id_window3().GetRule_keyword_expr_uncompat1());
- case TRule_id_window::kAltIdWindow4:
- return GetKeyword(ctx, node.GetAlt_id_window4().GetRule_keyword_table_uncompat1());
- case TRule_id_window::kAltIdWindow5:
- return GetKeyword(ctx, node.GetAlt_id_window5().GetRule_keyword_select_uncompat1());
- case TRule_id_window::kAltIdWindow6:
- return GetKeyword(ctx, node.GetAlt_id_window6().GetRule_keyword_alter_uncompat1());
- case TRule_id_window::kAltIdWindow7:
- return GetKeyword(ctx, node.GetAlt_id_window7().GetRule_keyword_in_uncompat1());
- case TRule_id_window::kAltIdWindow8:
- return GetKeyword(ctx, node.GetAlt_id_window8().GetRule_keyword_hint_uncompat1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_id_without& node, TTranslation& ctx) {
- //id_without:
- // identifier
- // | keyword_compat
- // // | keyword_expr_uncompat
- // | keyword_table_uncompat
- // // | keyword_select_uncompat
- // | keyword_alter_uncompat
- // | keyword_in_uncompat
- // | keyword_window_uncompat
- // | keyword_hint_uncompat
- //;
- switch (node.Alt_case()) {
- case TRule_id_without::kAltIdWithout1:
- return Id(node.GetAlt_id_without1().GetRule_identifier1(), ctx);
- case TRule_id_without::kAltIdWithout2:
- return GetKeyword(ctx, node.GetAlt_id_without2().GetRule_keyword_compat1());
- case TRule_id_without::kAltIdWithout3:
- return GetKeyword(ctx, node.GetAlt_id_without3().GetRule_keyword_table_uncompat1());
- case TRule_id_without::kAltIdWithout4:
- return GetKeyword(ctx, node.GetAlt_id_without4().GetRule_keyword_alter_uncompat1());
- case TRule_id_without::kAltIdWithout5:
- return GetKeyword(ctx, node.GetAlt_id_without5().GetRule_keyword_in_uncompat1());
- case TRule_id_without::kAltIdWithout6:
- return GetKeyword(ctx, node.GetAlt_id_without6().GetRule_keyword_window_uncompat1());
- case TRule_id_without::kAltIdWithout7:
- return GetKeyword(ctx, node.GetAlt_id_without7().GetRule_keyword_hint_uncompat1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_id_hint& node, TTranslation& ctx) {
- //id_hint:
- // identifier
- // | keyword_compat
- // | keyword_expr_uncompat
- // | keyword_table_uncompat
- // | keyword_select_uncompat
- // | keyword_alter_uncompat
- // | keyword_in_uncompat
- // | keyword_window_uncompat
- // // | keyword_hint_uncompat
- //;
- switch (node.Alt_case()) {
- case TRule_id_hint::kAltIdHint1:
- return Id(node.GetAlt_id_hint1().GetRule_identifier1(), ctx);
- case TRule_id_hint::kAltIdHint2:
- return GetKeyword(ctx, node.GetAlt_id_hint2().GetRule_keyword_compat1());
- case TRule_id_hint::kAltIdHint3:
- return GetKeyword(ctx, node.GetAlt_id_hint3().GetRule_keyword_expr_uncompat1());
- case TRule_id_hint::kAltIdHint4:
- return GetKeyword(ctx, node.GetAlt_id_hint4().GetRule_keyword_table_uncompat1());
- case TRule_id_hint::kAltIdHint5:
- return GetKeyword(ctx, node.GetAlt_id_hint5().GetRule_keyword_select_uncompat1());
- case TRule_id_hint::kAltIdHint6:
- return GetKeyword(ctx, node.GetAlt_id_hint6().GetRule_keyword_alter_uncompat1());
- case TRule_id_hint::kAltIdHint7:
- return GetKeyword(ctx, node.GetAlt_id_hint7().GetRule_keyword_in_uncompat1());
- case TRule_id_hint::kAltIdHint8:
- return GetKeyword(ctx, node.GetAlt_id_hint8().GetRule_keyword_window_uncompat1());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id& node, TTranslation& ctx) {
- // an_id: id | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_an_id::kAltAnId1:
- return Id(node.GetAlt_an_id1().GetRule_id1(), ctx);
- case TRule_an_id::kAltAnId2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id_schema& node, TTranslation& ctx) {
- // an_id_schema: id_schema | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_an_id_schema::kAltAnIdSchema1:
- return Id(node.GetAlt_an_id_schema1().GetRule_id_schema1(), ctx);
- case TRule_an_id_schema::kAltAnIdSchema2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_schema2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id_expr& node, TTranslation& ctx) {
- // an_id_expr: id_expr | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_an_id_expr::kAltAnIdExpr1:
- return Id(node.GetAlt_an_id_expr1().GetRule_id_expr1(), ctx);
- case TRule_an_id_expr::kAltAnIdExpr2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_expr2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id_window& node, TTranslation& ctx) {
- // an_id_window: id_window | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_an_id_window::kAltAnIdWindow1:
- return Id(node.GetAlt_an_id_window1().GetRule_id_window1(), ctx);
- case TRule_an_id_window::kAltAnIdWindow2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_window2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id_without& node, TTranslation& ctx) {
- // an_id_without: id_without | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_an_id_without::kAltAnIdWithout1:
- return Id(node.GetAlt_an_id_without1().GetRule_id_without1(), ctx);
- case TRule_an_id_without::kAltAnIdWithout2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_without2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id_hint& node, TTranslation& ctx) {
- // an_id_hint: id_hint | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_an_id_hint::kAltAnIdHint1:
- return Id(node.GetAlt_an_id_hint1().GetRule_id_hint1(), ctx);
- case TRule_an_id_hint::kAltAnIdHint2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_hint2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static TString Id(const TRule_an_id_pure& node, TTranslation& ctx) {
- // an_id_pure: identifier | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_an_id_pure::kAltAnIdPure1:
- return Id(node.GetAlt_an_id_pure1().GetRule_identifier1(), ctx);
- case TRule_an_id_pure::kAltAnIdPure2:
- return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_pure2().GetToken1()));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-template<typename TRule>
-static TIdentifier IdEx(const TRule& node, TTranslation& ctx) {
- const TString name(Id(node, ctx));
- const TPosition pos(ctx.Context().Pos());
- return TIdentifier(pos, name);
-}
-
-static bool NamedNodeImpl(const TRule_bind_parameter& node, TString& name, TTranslation& ctx) {
- // bind_parameter: DOLLAR (an_id_or_type | TRUE | FALSE);
- TString id;
- switch (node.GetBlock2().Alt_case()) {
- case TRule_bind_parameter::TBlock2::kAlt1:
- id = Id(node.GetBlock2().GetAlt1().GetRule_an_id_or_type1(), ctx);
- break;
- case TRule_bind_parameter::TBlock2::kAlt2:
- id = ctx.Token(node.GetBlock2().GetAlt2().GetToken1());
- break;
- case TRule_bind_parameter::TBlock2::kAlt3:
- id = ctx.Token(node.GetBlock2().GetAlt3().GetToken1());
- break;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- auto dollar = ctx.Token(node.GetToken1());
- if (id.empty()) {
- ctx.Error() << "Empty symbol name is not allowed";
- return false;
- }
-
- name = dollar + id;
- return true;
-}
-
-static TString OptIdPrefixAsStr(const TRule_opt_id_prefix& node, TTranslation& ctx, const TString& defaultStr = {}) {
- if (!node.HasBlock1()) {
- return defaultStr;
- }
- return Id(node.GetBlock1().GetRule_an_id1(), ctx);
-}
-
-static TString OptIdPrefixAsStr(const TRule_opt_id_prefix_or_type& node, TTranslation& ctx, const TString& defaultStr = {}) {
- if (!node.HasBlock1()) {
- return defaultStr;
- }
- return Id(node.GetBlock1().GetRule_an_id_or_type1(), ctx);
-}
-
-static void PureColumnListStr(const TRule_pure_column_list& node, TTranslation& ctx, TVector<TString>& outList) {
- outList.push_back(Id(node.GetRule_an_id2(), ctx));
- for (auto& block: node.GetBlock3()) {
- outList.push_back(Id(block.GetRule_an_id2(), ctx));
- }
-}
-
-static bool NamedNodeImpl(const TRule_opt_bind_parameter& node, TString& name, bool& isOptional, TTranslation& ctx) {
- // opt_bind_parameter: bind_parameter QUESTION?;
- isOptional = false;
- if (!NamedNodeImpl(node.GetRule_bind_parameter1(), name, ctx)) {
- return false;
- }
- isOptional = node.HasBlock2();
- return true;
-}
-
-static TDeferredAtom PureColumnOrNamed(const TRule_pure_column_or_named& node, TTranslation& ctx) {
- switch (node.Alt_case()) {
- case TRule_pure_column_or_named::kAltPureColumnOrNamed1: {
- TString named;
- if (!NamedNodeImpl(node.GetAlt_pure_column_or_named1().GetRule_bind_parameter1(), named, ctx)) {
- return {};
- }
- auto namedNode = ctx.GetNamedNode(named);
- if (!namedNode) {
- return {};
- }
-
- return TDeferredAtom(namedNode, ctx.Context());
- }
-
- case TRule_pure_column_or_named::kAltPureColumnOrNamed2:
- return TDeferredAtom(ctx.Context().Pos(), Id(node.GetAlt_pure_column_or_named2().GetRule_an_id1(), ctx));
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-static bool PureColumnOrNamedListStr(const TRule_pure_column_or_named_list& node, TTranslation& ctx, TVector<TDeferredAtom>& outList) {
- outList.push_back(PureColumnOrNamed(node.GetRule_pure_column_or_named2(), ctx));
- if (outList.back().Empty()) {
- return false;
- }
-
- for (auto& block : node.GetBlock3()) {
- outList.push_back(PureColumnOrNamed(block.GetRule_pure_column_or_named2(), ctx));
- if (outList.back().Empty()) {
- return false;
- }
- }
-
- return true;
-}
-
-static bool CreateTableIndex(const TRule_table_index& node, TTranslation& ctx, TVector<TIndexDescription>& indexes) {
- indexes.emplace_back(IdEx(node.GetRule_an_id2(), ctx));
-
- const auto& indexType = node.GetRule_table_index_type3();
- switch (indexType.Alt_case()) {
- case TRule_table_index_type::kAltTableIndexType1: {
- auto globalIndex = indexType.GetAlt_table_index_type1().GetRule_global_index1();
- if (globalIndex.HasBlock2()) {
- ctx.AltNotImplemented("unique", indexType);
- return false;
- }
- if (globalIndex.HasBlock3()) {
- const TString token = to_lower(ctx.Token(globalIndex.GetBlock3().GetToken1()));
- if (token == "sync") {
- indexes.back().Type = TIndexDescription::EType::GlobalSync;
- } else if (token == "async") {
- indexes.back().Type = TIndexDescription::EType::GlobalAsync;
- } else {
- Y_FAIL("You should change implementation according to grammar changes");
- }
- }
- }
- break;
- case TRule_table_index_type::kAltTableIndexType2:
- ctx.AltNotImplemented("local", indexType);
- return false;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- if (node.HasBlock4()) {
- ctx.AltNotImplemented("with", indexType);
- return false;
- }
-
- indexes.back().IndexColumns.emplace_back(IdEx(node.GetRule_an_id_schema7(), ctx));
- for (const auto& block : node.GetBlock8()) {
- indexes.back().IndexColumns.emplace_back(IdEx(block.GetRule_an_id_schema2(), ctx));
- }
-
- if (node.HasBlock10()) {
- const auto& block = node.GetBlock10();
- indexes.back().DataColumns.emplace_back(IdEx(block.GetRule_an_id_schema3(), ctx));
- for (const auto& inner : block.GetBlock4()) {
- indexes.back().DataColumns.emplace_back(IdEx(inner.GetRule_an_id_schema2(), ctx));
- }
- }
-
- return true;
-}
-
-static std::pair<TString, TString> TableKeyImpl(const std::pair<bool, TString>& nameWithAt, TString view, TTranslation& ctx) {
- if (nameWithAt.first) {
- view = "@";
- ctx.Context().IncrementMonCounter("sql_features", "AnonymousTable");
- }
-
- return std::make_pair(nameWithAt.second, view);
-}
-
-static std::pair<TString, TString> TableKeyImpl(const TRule_table_key& node, TTranslation& ctx, bool hasAt) {
- auto name(Id(node.GetRule_id_table_or_type1(), ctx));
- TString view;
- if (node.HasBlock2()) {
- view = Id(node.GetBlock2().GetRule_an_id2(), ctx);
- ctx.Context().IncrementMonCounter("sql_features", "View");
- }
-
- return TableKeyImpl(std::make_pair(hasAt, name), view, ctx);
-}
-
-/// \return optional prefix
-static TString ColumnNameAsStr(TTranslation& ctx, const TRule_column_name& node, TString& id) {
- id = Id(node.GetRule_an_id2(), ctx);
- return OptIdPrefixAsStr(node.GetRule_opt_id_prefix1(), ctx);
-}
-
-static TString ColumnNameAsSingleStr(TTranslation& ctx, const TRule_column_name& node) {
- TString body;
- const TString prefix = ColumnNameAsStr(ctx, node, body);
- return prefix ? prefix + '.' + body : body;
-}
-
-static void FillTargetList(TTranslation& ctx, const TRule_set_target_list& node, TVector<TString>& targetList) {
- targetList.push_back(ColumnNameAsSingleStr(ctx, node.GetRule_set_target2().GetRule_column_name1()));
- for (auto& block: node.GetBlock3()) {
- targetList.push_back(ColumnNameAsSingleStr(ctx, block.GetRule_set_target2().GetRule_column_name1()));
- }
-}
-
-TTableHints GetContextHints(TContext& ctx) {
- TTableHints hints;
- if (ctx.PragmaInferSchema) {
- hints["infer_schema"] = {};
- }
- if (ctx.PragmaDirectRead) {
- hints["direct_read"] = {};
- }
-
- return hints;
-}
-
-static TTableHints GetTableFuncHints(TStringBuf funcName) {
- TCiString func(funcName);
- TTableHints res;
- if (func.StartsWith("range") || func.StartsWith("like") || func.StartsWith("regexp") || func.StartsWith("filter")) {
- res.emplace("ignore_non_existing", TVector<TNodePtr>{});
- } else if (func.StartsWith("each")) {
- res.emplace("ignore_non_existing", TVector<TNodePtr>{});
- res.emplace("warn_non_existing", TVector<TNodePtr>{});
- }
-
- return res;
-}
-
-static bool ValidateForCounters(const TString& input) {
- for (auto c : input) {
- if (!(IsAlnum(c) || c == '_')) {
- return false;
- }
- }
- return true;
-}
-
-static bool IsColumnsOnly(const TVector<TSortSpecificationPtr>& container) {
- for (const auto& elem: container) {
- if (!elem->OrderExpr->GetColumnName()) {
- return false;
- }
- }
- return true;
-}
-
-static bool PackageVersionFromString(const TString& s, ui32& version) {
- if (s == "release") {
- version = 0;
- return true;
- }
- if (s == "draft") {
- version = 1;
- return true;
- }
- return TryFromString(s, version);
-}
-
-class TSqlQuery;
-
-struct TSymbolNameWithPos {
- TString Name;
- TPosition Pos;
-};
-
-class TSqlTranslation: public TTranslation {
-protected:
- TSqlTranslation(TContext& ctx, NSQLTranslation::ESqlMode mode)
- : TTranslation(ctx)
- , Mode(mode)
- {
- /// \todo remove NSQLTranslation::ESqlMode params
- YQL_ENSURE(ctx.Settings.Mode == mode);
- }
-
-protected:
- enum class EExpr {
- Regular,
- GroupBy,
- SqlLambdaParams,
- };
- TNodePtr NamedExpr(const TRule_named_expr& node, EExpr exprMode = EExpr::Regular);
- bool NamedExprList(const TRule_named_expr_list& node, TVector<TNodePtr>& exprs, EExpr exprMode = EExpr::Regular);
- bool BindList(const TRule_bind_parameter_list& node, TVector<TSymbolNameWithPos>& bindNames);
- bool ActionOrSubqueryArgs(const TRule_action_or_subquery_args& node, TVector<TSymbolNameWithPos>& bindNames, ui32& optionalArgsCount);
- bool ModulePath(const TRule_module_path& node, TVector<TString>& path);
- bool NamedBindList(const TRule_named_bind_parameter_list& node, TVector<TSymbolNameWithPos>& names,
- TVector<TSymbolNameWithPos>& aliases);
- bool NamedBindParam(const TRule_named_bind_parameter& node, TSymbolNameWithPos& name, TSymbolNameWithPos& alias);
- TNodePtr NamedNode(const TRule_named_nodes_stmt& rule, TVector<TSymbolNameWithPos>& names);
-
- bool ImportStatement(const TRule_import_stmt& stmt, TVector<TString>* namesPtr = nullptr);
- TNodePtr DoStatement(const TRule_do_stmt& stmt, bool makeLambda, const TVector<TString>& args = {});
- bool DefineActionOrSubqueryStatement(const TRule_define_action_or_subquery_stmt& stmt);
- bool DefineActionOrSubqueryBody(TSqlQuery& query, TBlocks& blocks, const TRule_define_action_or_subquery_body& body);
- TNodePtr IfStatement(const TRule_if_stmt& stmt);
- TNodePtr ForStatement(const TRule_for_stmt& stmt);
- TMaybe<TTableArg> TableArgImpl(const TRule_table_arg& node);
- bool TableRefImpl(const TRule_table_ref& node, TTableRef& result, bool unorderedSubquery);
- TMaybe<TSourcePtr> AsTableImpl(const TRule_table_ref& node);
- bool ClusterExpr(const TRule_cluster_expr& node, bool allowWildcard, TString& service, TDeferredAtom& cluster);
- bool ClusterExprOrBinding(const TRule_cluster_expr& node, TString& service, TDeferredAtom& cluster, bool& isBinding);
- bool ApplyTableBinding(const TString& binding, TTableRef& tr, TTableHints& hints);
-
- TMaybe<TColumnSchema> ColumnSchemaImpl(const TRule_column_schema& node);
- bool CreateTableEntry(const TRule_create_table_entry& node, TCreateTableParameters& params);
-
- bool FillFamilySettingsEntry(const TRule_family_settings_entry& settingNode, TFamilyEntry& family);
- bool FillFamilySettings(const TRule_family_settings& settingsNode, TFamilyEntry& family);
- bool CreateTableSettings(const TRule_with_table_settings& settingsNode, TCreateTableParameters& params);
- bool StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, TTableSettings& settings,
- ETableType tableType, bool alter, bool reset);
- bool StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, TTableSettings& settings,
- bool alter, bool reset);
- bool StoreExternalTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, TTableSettings& settings);
- bool StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value& value, TTableSettings& settings, ETableType tableType, bool alter = false);
- bool StoreDataSourceSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, std::map<TString, TDeferredAtom>& result);
- bool ResetTableSettingsEntry(const TIdentifier& id, TTableSettings& settings, ETableType tableType);
-
- TIdentifier GetTopicConsumerId(const TRule_topic_consumer_ref& node);
- bool CreateConsumerSettings(const TRule_topic_consumer_settings& settingsNode, TTopicConsumerSettings& settings);
- bool CreateTopicSettings(const TRule_topic_settings& node, TTopicSettings& params);
- bool CreateTopicConsumer(const TRule_topic_create_consumer_entry& node,
- TVector<TTopicConsumerDescription>& consumers);
- bool CreateTopicEntry(const TRule_create_topic_entry& node, TCreateTopicParameters& params);
-
- bool AlterTopicConsumer(const TRule_alter_topic_alter_consumer& node,
- THashMap<TString, TTopicConsumerDescription>& alterConsumers);
-
- bool AlterTopicConsumerEntry(const TRule_alter_topic_alter_consumer_entry& node,
- TTopicConsumerDescription& alterConsumer);
-
-
- bool AlterTopicAction(const TRule_alter_topic_action& node, TAlterTopicParameters& params);
-
-
- TNodePtr TypeSimple(const TRule_type_name_simple& node, bool onlyDataAllowed);
- TNodePtr TypeDecimal(const TRule_type_name_decimal& node);
- TNodePtr AddOptionals(const TNodePtr& node, size_t optionalCount);
- TMaybe<std::pair<TVector<TNodePtr>, bool>> CallableArgList(const TRule_callable_arg_list& argList, bool namedArgsStarted);
-
- TNodePtr IntegerOrBind(const TRule_integer_or_bind& node);
- TNodePtr TypeNameTag(const TRule_type_name_tag& node);
- TNodePtr TypeNodeOrBind(const TRule_type_name_or_bind& node);
- TNodePtr TypeNode(const TRule_type_name& node);
- TNodePtr TypeNode(const TRule_type_name_composite& node);
- TNodePtr ValueConstructorLiteral(const TRule_value_constructor_literal& node);
- TNodePtr ValueConstructor(const TRule_value_constructor& node);
- TNodePtr ListLiteral(const TRule_list_literal& node);
- TNodePtr DictLiteral(const TRule_dict_literal& node);
- TNodePtr StructLiteral(const TRule_struct_literal& node);
- TMaybe<TTableHints> TableHintsImpl(const TRule_table_hints& node);
- bool TableHintImpl(const TRule_table_hint& rule, TTableHints& hints);
- bool SimpleTableRefImpl(const TRule_simple_table_ref& node, TTableRef& result);
- bool TopicRefImpl(const TRule_topic_ref& node, TTopicRef& result);
- TWindowSpecificationPtr WindowSpecification(const TRule_window_specification_details& rule);
- bool OrderByClause(const TRule_order_by_clause& node, TVector<TSortSpecificationPtr>& orderBy);
- bool SortSpecificationList(const TRule_sort_specification_list& node, TVector<TSortSpecificationPtr>& sortSpecs);
-
- bool IsDistinctOptSet(const TRule_opt_set_quantifier& node) const;
- bool IsDistinctOptSet(const TRule_opt_set_quantifier& node, TPosition& distinctPos) const;
-
- bool AddObjectFeature(std::map<TString, TDeferredAtom>& result, const TRule_object_feature& feature);
- bool BindParameterClause(const TRule_bind_parameter& node, TDeferredAtom& result);
- bool ObjectFeatureValueClause(const TRule_object_feature_value & node, TDeferredAtom & result);
- bool ParseObjectFeatures(std::map<TString, TDeferredAtom> & result, const TRule_object_features & features);
- bool ParseExternalDataSourceSettings(std::map<TString, TDeferredAtom> & result, const TRule_with_table_settings & settings);
- bool RoleNameClause(const TRule_role_name& node, TDeferredAtom& result, bool allowSystemRoles);
- bool RoleParameters(const TRule_create_user_option& node, TRoleParameters& result);
- bool PermissionNameClause(const TRule_permission_name_target& node, TVector<TDeferredAtom>& result, bool withGrantOption);
- bool PermissionNameClause(const TRule_permission_name& node, TDeferredAtom& result);
- bool PermissionNameClause(const TRule_permission_id& node, TDeferredAtom& result);
-
- bool ValidateExternalTable(const TCreateTableParameters& params);
-private:
- bool SimpleTableRefCoreImpl(const TRule_simple_table_ref_core& node, TTableRef& result);
- static bool IsValidFrameSettings(TContext& ctx, const TFrameSpecification& frameSpec, size_t sortSpecSize);
- static TString FrameSettingsToString(EFrameSettings settings, bool isUnbounded);
-
- bool FrameBound(const TRule_window_frame_bound& rule, TFrameBoundPtr& bound);
- bool FrameClause(const TRule_window_frame_clause& node, TFrameSpecificationPtr& frameSpec, size_t sortSpecSize);
- bool SortSpecification(const TRule_sort_specification& node, TVector<TSortSpecificationPtr>& sortSpecs);
-
- bool ClusterExpr(const TRule_cluster_expr& node, bool allowWildcard, bool allowBinding, TString& service, TDeferredAtom& cluster, bool& isBinding);
- bool StructLiteralItem(TVector<TNodePtr>& labels, const TRule_expr& label, TVector<TNodePtr>& values, const TRule_expr& value);
-protected:
- NSQLTranslation::ESqlMode Mode;
-};
-
-class TSqlExpression: public TSqlTranslation {
-public:
- enum class ESmartParenthesis {
- Default,
- GroupBy,
- InStatement,
- SqlLambdaParams,
- };
-
- TSqlExpression(TContext& ctx, NSQLTranslation::ESqlMode mode)
- : TSqlTranslation(ctx, mode)
- {
- }
-
- TNodePtr Build(const TRule_expr& node) {
- // expr:
- // or_subexpr (OR or_subexpr)*
- // | type_name_composite
- switch (node.Alt_case()) {
- case TRule_expr::kAltExpr1: {
- auto getNode = [](const TRule_expr_TAlt1_TBlock2& b) -> const TRule_or_subexpr& { return b.GetRule_or_subexpr2(); };
- return BinOper("Or", node.GetAlt_expr1().GetRule_or_subexpr1(), getNode,
- node.GetAlt_expr1().GetBlock2().begin(), node.GetAlt_expr1().GetBlock2().end(), {});
- }
- case TRule_expr::kAltExpr2: {
- return TypeNode(node.GetAlt_expr2().GetRule_type_name_composite1());
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- }
-
- void SetSmartParenthesisMode(ESmartParenthesis mode) {
- SmartParenthesisMode = mode;
- }
-
- void MarkAsNamed() {
- MaybeUnnamedSmartParenOnTop = false;
- }
-
- TMaybe<TExprOrIdent> LiteralExpr(const TRule_literal_value& node);
-private:
- struct TTrailingQuestions {
- size_t Count = 0;
- TPosition Pos;
- };
-
- TNodePtr BindParameterRule(const TRule_bind_parameter& rule, const TTrailingQuestions& tail);
- TNodePtr LambdaRule(const TRule_lambda& rule);
- TNodePtr CastRule(const TRule_cast_expr& rule);
- TNodePtr BitCastRule(const TRule_bitcast_expr& rule);
- TNodePtr ExistsRule(const TRule_exists_expr& rule);
- TNodePtr CaseRule(const TRule_case_expr& rule);
-
- TMaybe<TExprOrIdent> AtomExpr(const TRule_atom_expr& node, const TTrailingQuestions& tail);
- TMaybe<TExprOrIdent> InAtomExpr(const TRule_in_atom_expr& node, const TTrailingQuestions& tail);
-
- TNodePtr JsonInputArg(const TRule_json_common_args& node);
- TNodePtr JsonPathSpecification(const TRule_jsonpath_spec& node);
- TNodePtr JsonReturningTypeRule(const TRule_type_name_simple& node);
- TNodePtr JsonValueCaseHandler(const TRule_json_case_handler& node, EJsonValueHandlerMode& mode);
- void AddJsonValueCaseHandlers(const TRule_json_value& node, TVector<TNodePtr>& children);
- void AddJsonVariable(const TRule_json_variable& node, TVector<TNodePtr>& children);
- void AddJsonVariables(const TRule_json_variables& node, TVector<TNodePtr>& children);
- TNodePtr JsonVariables(const TRule_json_common_args& node);
- void AddJsonCommonArgs(const TRule_json_common_args& node, TVector<TNodePtr>& children);
- TNodePtr JsonValueExpr(const TRule_json_value& node);
- void AddJsonExistsHandler(const TRule_json_exists& node, TVector<TNodePtr>& children);
- TNodePtr JsonExistsExpr(const TRule_json_exists& node);
- EJsonQueryWrap JsonQueryWrapper(const TRule_json_query& node);
- EJsonQueryHandler JsonQueryHandler(const TRule_json_query_handler& node);
- TNodePtr JsonQueryExpr(const TRule_json_query& node);
- TNodePtr JsonApiExpr(const TRule_json_api_expr& node);
-
- template<typename TUnaryCasualExprRule>
- TNodePtr UnaryCasualExpr(const TUnaryCasualExprRule& node, const TTrailingQuestions& tail);
-
- template<typename TUnarySubExprRule>
- TNodePtr UnaryExpr(const TUnarySubExprRule& node, const TTrailingQuestions& tail);
-
- bool SqlLambdaParams(const TNodePtr& node, TVector<TSymbolNameWithPos>& args, ui32& optionalArgumentsCount);
- bool SqlLambdaExprBody(TContext& ctx, const TRule_lambda_body& node, TVector<TNodePtr>& exprSeq);
- bool SqlLambdaExprBody(TContext& ctx, const TRule_expr& node, TVector<TNodePtr>& exprSeq);
-
- TNodePtr KeyExpr(const TRule_key_expr& node) {
- TSqlExpression expr(Ctx, Mode);
- return expr.Build(node.GetRule_expr2());
- }
-
- TNodePtr SubExpr(const TRule_con_subexpr& node, const TTrailingQuestions& tail);
- TNodePtr SubExpr(const TRule_xor_subexpr& node, const TTrailingQuestions& tail);
-
- TNodePtr SubExpr(const TRule_mul_subexpr& node, const TTrailingQuestions& tail) {
- // mul_subexpr: con_subexpr (DOUBLE_PIPE con_subexpr)*;
- auto getNode = [](const TRule_mul_subexpr::TBlock2& b) -> const TRule_con_subexpr& { return b.GetRule_con_subexpr2(); };
- return BinOper("Concat", node.GetRule_con_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
- }
-
- TNodePtr SubExpr(const TRule_add_subexpr& node, const TTrailingQuestions& tail) {
- // add_subexpr: mul_subexpr ((ASTERISK | SLASH | PERCENT) mul_subexpr)*;
- auto getNode = [](const TRule_add_subexpr::TBlock2& b) -> const TRule_mul_subexpr& { return b.GetRule_mul_subexpr2(); };
- return BinOpList(node.GetRule_mul_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
- }
-
- TNodePtr SubExpr(const TRule_bit_subexpr& node, const TTrailingQuestions& tail) {
- // bit_subexpr: add_subexpr ((PLUS | MINUS) add_subexpr)*;
- auto getNode = [](const TRule_bit_subexpr::TBlock2& b) -> const TRule_add_subexpr& { return b.GetRule_add_subexpr2(); };
- return BinOpList(node.GetRule_add_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
- }
-
- TNodePtr SubExpr(const TRule_neq_subexpr& node, const TTrailingQuestions& tailExternal) {
- //neq_subexpr: bit_subexpr ((SHIFT_LEFT | shift_right | ROT_LEFT | rot_right | AMPERSAND | PIPE | CARET) bit_subexpr)*
- // // trailing QUESTIONS are used in optional simple types (String?) and optional lambda args: ($x, $y?) -> ($x)
- // ((double_question neq_subexpr) => double_question neq_subexpr | QUESTION+)?;
- YQL_ENSURE(tailExternal.Count == 0);
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && !node.HasBlock3();
- TTrailingQuestions tail;
- if (node.HasBlock3() && node.GetBlock3().Alt_case() == TRule_neq_subexpr::TBlock3::kAlt2) {
- auto& questions = node.GetBlock3().GetAlt2();
- tail.Count = questions.GetBlock1().size();
- tail.Pos = Ctx.TokenPosition(questions.GetBlock1().begin()->GetToken1());
- YQL_ENSURE(tail.Count > 0);
- }
-
- auto getNode = [](const TRule_neq_subexpr::TBlock2& b) -> const TRule_bit_subexpr& { return b.GetRule_bit_subexpr2(); };
- auto result = BinOpList(node.GetRule_bit_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
- if (!result) {
- return {};
- }
- if (node.HasBlock3()) {
- auto& block = node.GetBlock3();
- if (block.Alt_case() == TRule_neq_subexpr::TBlock3::kAlt1) {
- TSqlExpression altExpr(Ctx, Mode);
- auto altResult = SubExpr(block.GetAlt1().GetRule_neq_subexpr2(), {});
- if (!altResult) {
- return {};
- }
- const TVector<TNodePtr> args({result, altResult});
- Token(block.GetAlt1().GetRule_double_question1().GetToken1());
- result = BuildBuiltinFunc(Ctx, Ctx.Pos(), "Coalesce", args);
- }
- }
- return result;
- }
-
- TNodePtr SubExpr(const TRule_eq_subexpr& node, const TTrailingQuestions& tail) {
- // eq_subexpr: neq_subexpr ((LESS | LESS_OR_EQ | GREATER | GREATER_OR_EQ) neq_subexpr)*;
- auto getNode = [](const TRule_eq_subexpr::TBlock2& b) -> const TRule_neq_subexpr& { return b.GetRule_neq_subexpr2(); };
- return BinOpList(node.GetRule_neq_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
- }
-
- TNodePtr SubExpr(const TRule_or_subexpr& node, const TTrailingQuestions& tail) {
- // or_subexpr: and_subexpr (AND and_subexpr)*;
- auto getNode = [](const TRule_or_subexpr::TBlock2& b) -> const TRule_and_subexpr& { return b.GetRule_and_subexpr2(); };
- return BinOper("And", node.GetRule_and_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
- }
-
- TNodePtr SubExpr(const TRule_and_subexpr& node, const TTrailingQuestions& tail) {
- // and_subexpr: xor_subexpr (XOR xor_subexpr)*;
- auto getNode = [](const TRule_and_subexpr::TBlock2& b) -> const TRule_xor_subexpr& { return b.GetRule_xor_subexpr2(); };
- return BinOper("Xor", node.GetRule_xor_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
- }
-
- template <typename TNode, typename TGetNode, typename TIter>
- TNodePtr BinOpList(const TNode& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail);
-
- template <typename TGetNode, typename TIter>
- TNodePtr BinOpList(const TRule_bit_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail);
-
- template <typename TGetNode, typename TIter>
- TNodePtr BinOpList(const TRule_eq_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail);
-
- TNodePtr BinOperList(const TString& opName, TVector<TNodePtr>::const_iterator begin, TVector<TNodePtr>::const_iterator end) const;
-
- struct TCaseBranch {
- TNodePtr Pred;
- TNodePtr Value;
- };
- TCaseBranch ReduceCaseBranches(TVector<TCaseBranch>::const_iterator begin, TVector<TCaseBranch>::const_iterator end) const;
-
- template <typename TNode, typename TGetNode, typename TIter>
- TNodePtr BinOper(const TString& operName, const TNode& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail);
-
- TNodePtr SqlInExpr(const TRule_in_expr& node, const TTrailingQuestions& tail);
-
- void UnexpectedQuestionToken(const TTrailingQuestions& tail) {
- YQL_ENSURE(tail.Count > 0);
- Ctx.Error(tail.Pos) << "Unexpected token '?' at the end of expression";
- }
-
- TNodePtr SmartParenthesis(const TRule_smart_parenthesis& node);
-
- ESmartParenthesis SmartParenthesisMode = ESmartParenthesis::Default;
- bool MaybeUnnamedSmartParenOnTop = true;
-
- THashMap<TString, TNodePtr> ExprShortcuts;
-};
-
-class TSqlCallExpr: public TSqlTranslation {
-public:
- TSqlCallExpr(TContext& ctx, NSQLTranslation::ESqlMode mode)
- : TSqlTranslation(ctx, mode)
- {
- }
-
- TSqlCallExpr(const TSqlCallExpr& call, const TVector<TNodePtr>& args)
- : TSqlTranslation(call.Ctx, call.Mode)
- , Pos(call.Pos)
- , Func(call.Func)
- , Module(call.Module)
- , Node(call.Node)
- , Args(args)
- , AggMode(call.AggMode)
- , DistinctAllowed(call.DistinctAllowed)
- , UsingCallExpr(call.UsingCallExpr)
- , IsExternalCall(call.IsExternalCall)
- , CallConfig(call.CallConfig)
- {
- }
-
- void AllowDistinct() {
- DistinctAllowed = true;
- }
-
- void InitName(const TString& name);
- void InitExpr(const TNodePtr& expr);
-
- bool Init(const TRule_using_call_expr& node);
- bool Init(const TRule_value_constructor& node);
- bool Init(const TRule_invoke_expr& node);
- bool ConfigureExternalCall(const TRule_external_call_settings& node);
- void IncCounters();
-
- TNodePtr BuildUdf(bool forReduce) {
- auto result = Node ? Node : BuildCallable(Pos, Module, Func, Args, forReduce);
- if (to_lower(Module) == "tensorflow" && Func == "RunBatch") {
- if (Args.size() > 2) {
- Args.erase(Args.begin() + 2);
- } else {
- Ctx.Error(Pos) << "Excepted >= 3 arguments, but got: " << Args.size();
- return nullptr;
- }
- }
- return result;
- }
-
- TNodePtr BuildCall() {
- TVector<TNodePtr> args;
- bool warnOnYqlNameSpace = true;
-
- TUdfNode* udf_node = Node ? dynamic_cast<TUdfNode*>(Node.Get()) : nullptr;
- if (udf_node) {
- if (!udf_node->DoInit(Ctx, nullptr)) {
- return nullptr;
- }
- TNodePtr positional_args = BuildTuple(Pos, PositionalArgs);
- TNodePtr positional = positional_args->Y("TypeOf", positional_args);
- TNodePtr named_args = BuildStructure(Pos, NamedArgs);
- TNodePtr named = named_args->Y("TypeOf", named_args);
-
- TNodePtr custom_user_type = new TCallNodeImpl(Pos, "TupleType", {positional, named, udf_node->GetExternalTypes()});
-
- return BuildSqlCall(Ctx, Pos, udf_node->GetModule(), udf_node->GetFunction(),
- args, positional_args, named_args, custom_user_type,
- udf_node->GetTypeConfig(), udf_node->GetRunConfig());
- }
-
- if (Node && !Node->FuncName()) {
- Module = "YQL";
- Func = NamedArgs.empty() ? "Apply" : "NamedApply";
- warnOnYqlNameSpace = false;
- args.push_back(Node);
- }
-
- if (Node && Node->FuncName()) {
- Module = Node->ModuleName() ? *Node->ModuleName() : "YQL";
- Func = *Node->FuncName();
- }
- bool mustUseNamed = !NamedArgs.empty();
- if (mustUseNamed) {
- if (Node && !Node->FuncName()) {
- mustUseNamed = false;
- }
- args.emplace_back(BuildTuple(Pos, PositionalArgs));
- args.emplace_back(BuildStructure(Pos, NamedArgs));
- } else if (IsExternalCall) {
- Func = "SqlExternalFunction";
- if (Args.size() < 2 || Args.size() > 3) {
- Ctx.Error(Pos) << "EXTERNAL FUNCTION requires from 2 to 3 arguments, but got: " << Args.size();
- return nullptr;
- }
-
- if (Args.size() == 3) {
- args.insert(args.end(), Args.begin(), Args.end() - 1);
- Args.erase(Args.begin(), Args.end() - 1);
- } else {
- args.insert(args.end(), Args.begin(), Args.end());
- Args.erase(Args.begin(), Args.end());
- }
- auto configNode = new TExternalFunctionConfig(Pos, CallConfig);
- auto configList = new TAstListNodeImpl(Pos, { new TAstAtomNodeImpl(Pos, "quote", 0), configNode });
- args.push_back(configList);
- } else {
- args.insert(args.end(), Args.begin(), Args.end());
- }
-
- auto result = BuildBuiltinFunc(Ctx, Pos, Func, args, Module, AggMode, &mustUseNamed, warnOnYqlNameSpace);
- if (mustUseNamed) {
- Error() << "Named args are used for call, but unsupported by function: " << Func;
- return nullptr;
- }
-
- if (WindowName) {
- result = BuildCalcOverWindow(Pos, WindowName, result);
- }
-
- return result;
- }
-
- TPosition GetPos() const {
- return Pos;
- }
-
- const TVector<TNodePtr>& GetArgs() const {
- return Args;
- }
-
- void SetOverWindow() {
- YQL_ENSURE(AggMode == EAggregateMode::Normal);
- AggMode = EAggregateMode::OverWindow;
- }
-
- void SetIgnoreNulls() {
- Func += "_IgnoreNulls";
- }
-
- bool IsExternal() {
- return IsExternalCall;
- }
-
-private:
- bool ExtractCallParam(const TRule_external_call_param& node);
- bool FillArg(const TString& module, const TString& func, size_t& idx, const TRule_named_expr& node);
- bool FillArgs(const TRule_named_expr_list& node);
-
-private:
- TPosition Pos;
- TString Func;
- TString Module;
- TNodePtr Node;
- TVector<TNodePtr> Args;
- TVector<TNodePtr> PositionalArgs;
- TVector<TNodePtr> NamedArgs;
- EAggregateMode AggMode = EAggregateMode::Normal;
- TString WindowName;
- bool DistinctAllowed = false;
- bool UsingCallExpr = false;
- bool IsExternalCall = false;
- TFunctionConfig CallConfig;
-};
-
-TNodePtr TSqlTranslation::NamedExpr(const TRule_named_expr& node, EExpr exprMode) {
- TSqlExpression expr(Ctx, Mode);
- if (exprMode == EExpr::GroupBy) {
- expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::GroupBy);
- } else if (exprMode == EExpr::SqlLambdaParams) {
- expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::SqlLambdaParams);
- }
- if (node.HasBlock2()) {
- expr.MarkAsNamed();
- }
- TNodePtr exprNode(expr.Build(node.GetRule_expr1()));
- if (!exprNode) {
- Ctx.IncrementMonCounter("sql_errors", "NamedExprInvalid");
- return nullptr;
- }
- if (node.HasBlock2()) {
- exprNode = SafeClone(exprNode);
- exprNode->SetLabel(Id(node.GetBlock2().GetRule_an_id_or_type2(), *this));
- }
- return exprNode;
-}
-
-bool TSqlTranslation::NamedExprList(const TRule_named_expr_list& node, TVector<TNodePtr>& exprs, EExpr exprMode) {
- exprs.emplace_back(NamedExpr(node.GetRule_named_expr1(), exprMode));
- if (!exprs.back()) {
- return false;
- }
- for (auto& b: node.GetBlock2()) {
- exprs.emplace_back(NamedExpr(b.GetRule_named_expr2(), exprMode));
- if (!exprs.back()) {
- return false;
- }
- }
- return true;
-}
-
-bool TSqlTranslation::BindList(const TRule_bind_parameter_list& node, TVector<TSymbolNameWithPos>& bindNames) {
- bindNames.clear();
-
- TString name;
- if (!NamedNodeImpl(node.GetRule_bind_parameter1(), name, *this)) {
- return false;
- }
-
- bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
- for (auto& b: node.GetBlock2()) {
- if (!NamedNodeImpl(b.GetRule_bind_parameter2(), name, *this)) {
- return false;
- }
-
- bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
- }
- return true;
-}
-
-bool TSqlTranslation::ActionOrSubqueryArgs(const TRule_action_or_subquery_args& node, TVector<TSymbolNameWithPos>& bindNames, ui32& optionalArgsCount) {
- bindNames.clear();
- optionalArgsCount = 0;
-
- TString name;
- bool isOptional = false;
- if (!NamedNodeImpl(node.GetRule_opt_bind_parameter1(), name, isOptional, *this)) {
- return false;
- }
-
- if (isOptional) {
- optionalArgsCount++;
- }
- bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
-
- for (auto& b: node.GetBlock2()) {
- if (!NamedNodeImpl(b.GetRule_opt_bind_parameter2(), name, isOptional, *this)) {
- return false;
- }
-
- if (isOptional) {
- optionalArgsCount++;
- } else if (optionalArgsCount > 0) {
- Context().Error() << "Non-optional argument can not follow optional one";
- return false;
- }
- bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
- }
- return true;
-}
-
-bool TSqlTranslation::ModulePath(const TRule_module_path& node, TVector<TString>& path) {
- if (node.HasBlock1()) {
- path.emplace_back(TString());
- }
- path.emplace_back(Id(node.GetRule_an_id2(), *this));
- for (auto& b: node.GetBlock3()) {
- path.emplace_back(Id(b.GetRule_an_id2(), *this));
- }
- return true;
-}
-
-bool TSqlTranslation::NamedBindList(const TRule_named_bind_parameter_list& node, TVector<TSymbolNameWithPos>& names,
- TVector<TSymbolNameWithPos>& aliases)
-{
- names.clear();
- aliases.clear();
- TSymbolNameWithPos name;
- TSymbolNameWithPos alias;
-
- if (!NamedBindParam(node.GetRule_named_bind_parameter1(), name, alias)) {
- return false;
- }
- names.push_back(name);
- aliases.push_back(alias);
-
- for (auto& b: node.GetBlock2()) {
- if (!NamedBindParam(b.GetRule_named_bind_parameter2(), name, alias)) {
- return false;
- }
- names.push_back(name);
- aliases.push_back(alias);
- }
- return true;
-}
-
-bool TSqlTranslation::NamedBindParam(const TRule_named_bind_parameter& node, TSymbolNameWithPos& name, TSymbolNameWithPos& alias) {
- name = alias = {};
- if (!NamedNodeImpl(node.GetRule_bind_parameter1(), name.Name, *this)) {
- return false;
- }
- name.Pos = Ctx.Pos();
- if (node.HasBlock2()) {
- if (!NamedNodeImpl(node.GetBlock2().GetRule_bind_parameter2(), alias.Name, *this)) {
- return false;
- }
- alias.Pos = Ctx.Pos();
- }
- return true;
-}
-
-TMaybe<TTableArg> TSqlTranslation::TableArgImpl(const TRule_table_arg& node) {
- TTableArg ret;
- ret.HasAt = node.HasBlock1();
- TColumnRefScope scope(Ctx, EColumnRefState::AsStringLiteral);
- ret.Expr = NamedExpr(node.GetRule_named_expr2());
- if (!ret.Expr) {
- return Nothing();
- }
-
- if (node.HasBlock3()) {
- ret.View = Id(node.GetBlock3().GetRule_an_id2(), *this);
- Context().IncrementMonCounter("sql_features", "View");
- }
-
- return ret;
-}
-
-bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWildcard, TString& service, TDeferredAtom& cluster) {
- bool allowBinding = false;
- bool isBinding;
- return ClusterExpr(node, allowWildcard, allowBinding, service, cluster, isBinding);
-}
-
-bool TSqlTranslation::ClusterExprOrBinding(const TRule_cluster_expr& node, TString& service, TDeferredAtom& cluster, bool& isBinding) {
- bool allowWildcard = false;
- bool allowBinding = true;
- return ClusterExpr(node, allowWildcard, allowBinding, service, cluster, isBinding);
-}
-
-bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWildcard, bool allowBinding, TString& service,
- TDeferredAtom& cluster, bool& isBinding)
-{
- service = "";
- cluster = TDeferredAtom();
- isBinding = false;
- if (node.HasBlock1()) {
- service = to_lower(Id(node.GetBlock1().GetRule_an_id1(), *this));
- allowBinding = false;
- if (service != YtProviderName &&
- service != KikimrProviderName &&
- service != RtmrProviderName && service != StatProviderName) {
- Ctx.Error() << "Unknown service: " << service;
- return false;
- }
- }
-
- switch (node.GetBlock2().Alt_case()) {
- case TRule_cluster_expr::TBlock2::kAlt1: {
- auto value = PureColumnOrNamed(node.GetBlock2().GetAlt1().GetRule_pure_column_or_named1(), *this);
- if (value.Empty()) {
- return false;
- }
-
- if (value.GetLiteral()) {
- TString clusterName = *value.GetLiteral();
- if (allowBinding && to_lower(clusterName) == "bindings") {
- switch (Ctx.Settings.BindingsMode) {
- case NSQLTranslation::EBindingsMode::DISABLED:
- Ctx.Error(Ctx.Pos(), TIssuesIds::YQL_DISABLED_BINDINGS) << "Please remove 'bindings.' from your query, the support for this syntax has ended";
- Ctx.IncrementMonCounter("sql_errors", "DisabledBinding");
- return false;
- case NSQLTranslation::EBindingsMode::ENABLED:
- isBinding = true;
- break;
- case NSQLTranslation::EBindingsMode::DROP_WITH_WARNING:
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_BINDINGS) << "Please remove 'bindings.' from your query, the support for this syntax will be dropped soon";
- Ctx.IncrementMonCounter("sql_errors", "DeprecatedBinding");
- [[fallthrough]];
- case NSQLTranslation::EBindingsMode::DROP:
- service = Context().Scoped->CurrService;
- cluster = Context().Scoped->CurrCluster;
- break;
- }
-
- return true;
- }
- TString normalizedClusterName;
- auto foundProvider = Ctx.GetClusterProvider(clusterName, normalizedClusterName);
- if (!foundProvider) {
- Ctx.Error() << "Unknown cluster: " << clusterName;
- return false;
- }
-
- if (service && *foundProvider != service) {
- Ctx.Error() << "Mismatch of cluster " << clusterName << " service, expected: "
- << *foundProvider << ", got: " << service;
- return false;
- }
-
- if (!service) {
- service = *foundProvider;
- }
-
- value = TDeferredAtom(Ctx.Pos(), normalizedClusterName);
- } else {
- if (!service) {
- Ctx.Error() << "Cluster service is not set";
- return false;
- }
- }
-
- cluster = value;
- return true;
- }
- case TRule_cluster_expr::TBlock2::kAlt2: {
- if (!allowWildcard) {
- Ctx.Error() << "Cluster wildcards allowed only in USE statement";
- return false;
- }
-
- return true;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-bool ExprList(TSqlExpression& sqlExpr, TVector<TNodePtr>& exprNodes, const TRule_expr_list& node);
-
-bool TSqlTranslation::ApplyTableBinding(const TString& binding, TTableRef& tr, TTableHints& hints) {
- NSQLTranslation::TBindingInfo bindingInfo;
- if (const auto& error = ExtractBindingInfo(Context().Settings, binding, bindingInfo)) {
- Ctx.Error() << error;
- return false;
- }
-
- if (bindingInfo.Schema) {
- TNodePtr schema = BuildQuotedAtom(Ctx.Pos(), bindingInfo.Schema);
-
- TNodePtr type = new TCallNodeImpl(Ctx.Pos(), "SqlTypeFromYson", { schema });
- TNodePtr columns = new TCallNodeImpl(Ctx.Pos(), "SqlColumnOrderFromYson", { schema });
-
- hints["user_schema"] = { type, columns };
- }
-
- for (auto& [key, values] : bindingInfo.Attributes) {
- TVector<TNodePtr> hintValue;
- for (auto& column : values) {
- hintValue.push_back(BuildQuotedAtom(Ctx.Pos(), column));
- }
- hints[key] = std::move(hintValue);
- }
-
- tr.Service = bindingInfo.ClusterType;
- tr.Cluster = TDeferredAtom(Ctx.Pos(), bindingInfo.Cluster);
-
- const TString view = "";
- tr.Keys = BuildTableKey(Ctx.Pos(), tr.Service, tr.Cluster, TDeferredAtom(Ctx.Pos(), bindingInfo.Path), view);
-
- return true;
-}
-
-bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& result, bool unorderedSubquery) {
- // table_ref:
- // (cluster_expr DOT)? AT?
- // (table_key | an_id_expr LPAREN (table_arg (COMMA table_arg)*)? RPAREN |
- // bind_parameter (LPAREN expr_list? RPAREN)? (VIEW an_id)?)
- // table_hints?;
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW && node.HasBlock1()) {
- Ctx.Error() << "Cluster should not be used in limited view";
- return false;
- }
- auto service = Context().Scoped->CurrService;
- auto cluster = Context().Scoped->CurrCluster;
- const bool hasAt = node.HasBlock2();
- bool isBinding = false;
- if (node.HasBlock1()) {
- const auto& clusterExpr = node.GetBlock1().GetRule_cluster_expr1();
- bool result = !hasAt ?
- ClusterExprOrBinding(clusterExpr, service, cluster, isBinding) : ClusterExpr(clusterExpr, false, service, cluster);
- if (!result) {
- return false;
- }
- }
-
- if (service == SolomonProviderName) {
- Ctx.Error() << "Selecting data from monitoring source is not supported";
- return false;
- }
-
- TTableRef tr(Context().MakeName("table"), service, cluster, nullptr);
- TPosition pos(Context().Pos());
- TTableHints hints = GetContextHints(Ctx);
- TTableHints tableHints;
- auto& block = node.GetBlock3();
- switch (block.Alt_case()) {
- case TRule_table_ref::TBlock3::kAlt1: {
- if (!isBinding && cluster.Empty()) {
- Ctx.Error() << "No cluster name given and no default cluster is selected";
- return false;
- }
-
- auto pair = TableKeyImpl(block.GetAlt1().GetRule_table_key1(), *this, hasAt);
- if (isBinding) {
- TString binding = pair.first;
- TString view = pair.second;
- if (!view.empty()) {
- YQL_ENSURE(view != "@");
- Ctx.Error() << "VIEW is not supported for table bindings";
- return false;
- }
-
- if (!ApplyTableBinding(binding, tr, tableHints)) {
- return false;
- }
- } else {
- tr.Keys = BuildTableKey(pos, service, cluster, TDeferredAtom(pos, pair.first), pair.second);
- }
- break;
- }
- case TRule_table_ref::TBlock3::kAlt2: {
- if (cluster.Empty()) {
- Ctx.Error() << "No cluster name given and no default cluster is selected";
- return false;
- }
-
- auto& alt = block.GetAlt2();
- const TString func(Id(alt.GetRule_an_id_expr1(), *this));
- TVector<TTableArg> args;
- if (alt.HasBlock3()) {
- auto& argsBlock = alt.GetBlock3();
- auto arg = TableArgImpl(argsBlock.GetRule_table_arg1());
- if (!arg) {
- return false;
- }
-
- args.push_back(std::move(*arg));
- for (auto& b : argsBlock.GetBlock2()) {
- arg = TableArgImpl(b.GetRule_table_arg2());
- if (!arg) {
- return false;
- }
-
- args.push_back(std::move(*arg));
- }
- }
- tableHints = GetTableFuncHints(func);
- tr.Keys = BuildTableKeys(pos, service, cluster, func, args);
- break;
- }
- case TRule_table_ref::TBlock3::kAlt3: {
- auto& alt = block.GetAlt3();
- Ctx.IncrementMonCounter("sql_features", "NamedNodeUseSource");
- TString named;
- if (!NamedNodeImpl(alt.GetRule_bind_parameter1(), named, *this)) {
- return false;
- }
- if (hasAt) {
- if (alt.HasBlock2()) {
- Ctx.Error() << "Subquery must not be used as anonymous table name";
- return false;
- }
-
- if (alt.HasBlock3()) {
- Ctx.Error() << "View is not supported for anonymous tables";
- return false;
- }
-
- if (node.HasBlock4()) {
- Ctx.Error() << "Hints are not supported for anonymous tables";
- return false;
- }
-
- auto namedNode = GetNamedNode(named);
- if (!namedNode) {
- return false;
- }
-
- auto source = TryMakeSourceFromExpression(Ctx, service, cluster, namedNode, "@");
- if (!source) {
- Ctx.Error() << "Cannot infer cluster and table name";
- return false;
- }
-
- result.Source = source;
- return true;
- }
- auto nodePtr = GetNamedNode(named);
- if (!nodePtr) {
- Ctx.IncrementMonCounter("sql_errors", "NamedNodeSourceError");
- return false;
- }
- if (alt.HasBlock2()) {
- if (alt.HasBlock3()) {
- Ctx.Error() << "View is not supported for subqueries";
- return false;
- }
-
- if (node.HasBlock4()) {
- Ctx.Error() << "Hints are not supported for subqueries";
- return false;
- }
-
- TVector<TNodePtr> values;
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "Apply", TNodeFlags::Default));
- values.push_back(nodePtr);
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "world", TNodeFlags::Default));
-
- TSqlExpression sqlExpr(Ctx, Mode);
- if (alt.GetBlock2().HasBlock2() && !ExprList(sqlExpr, values, alt.GetBlock2().GetBlock2().GetRule_expr_list1())) {
- return false;
- }
-
- TNodePtr apply = new TAstListNodeImpl(Ctx.Pos(), std::move(values));
- if (unorderedSubquery && Ctx.UnorderedSubqueries) {
- apply = new TCallNodeImpl(Ctx.Pos(), "UnorderedSubquery", { apply });
- }
- result.Source = BuildNodeSource(Ctx.Pos(), apply);
- return true;
- }
-
- TTableHints hints;
- TTableHints contextHints = GetContextHints(Ctx);
- auto ret = BuildInnerSource(Ctx.Pos(), nodePtr, service, cluster);
- if (alt.HasBlock3()) {
- auto view = Id(alt.GetBlock3().GetRule_an_id2(), *this);
- Ctx.IncrementMonCounter("sql_features", "View");
- if (!ret->SetViewName(Ctx, Ctx.Pos(), view)) {
- return false;
- }
- }
-
- if (node.HasBlock4()) {
- auto tmp = TableHintsImpl(node.GetBlock4().GetRule_table_hints1());
- if (!tmp) {
- return false;
- }
-
- hints = *tmp;
- }
-
- if (hints || contextHints) {
- if (!ret->SetTableHints(Ctx, Ctx.Pos(), hints, contextHints)) {
- return false;
- }
- }
-
- result.Source = ret;
- return true;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- MergeHints(hints, tableHints);
-
- if (node.HasBlock4()) {
- auto tmp = TableHintsImpl(node.GetBlock4().GetRule_table_hints1());
- if (!tmp) {
- Ctx.Error() << "Failed to parse table hints";
- return false;
- }
-
- MergeHints(hints, *tmp);
- }
-
- if (!hints.empty()) {
- tr.Options = BuildInputOptions(pos, hints);
- }
-
- if (!tr.Keys) {
- return false;
- }
-
- result = tr;
- return true;
-}
-
-TMaybe<TSourcePtr> TSqlTranslation::AsTableImpl(const TRule_table_ref& node) {
- const auto& block = node.GetBlock3();
-
- if (block.Alt_case() == TRule_table_ref::TBlock3::kAlt2) {
- auto& alt = block.GetAlt2();
- TCiString func(Id(alt.GetRule_an_id_expr1(), *this));
-
- if (func == "as_table") {
- if (node.HasBlock1()) {
- Ctx.Error() << "Cluster shouldn't be specified for AS_TABLE source";
- return TMaybe<TSourcePtr>(nullptr);
- }
-
- if (!alt.HasBlock3() || !alt.GetBlock3().GetBlock2().empty()) {
- Ctx.Error() << "Expected single argument for AS_TABLE source";
- return TMaybe<TSourcePtr>(nullptr);
- }
-
- if (node.HasBlock4()) {
- Ctx.Error() << "No hints expected for AS_TABLE source";
- return TMaybe<TSourcePtr>(nullptr);
- }
-
- auto arg = TableArgImpl(alt.GetBlock3().GetRule_table_arg1());
- if (!arg) {
- return TMaybe<TSourcePtr>(nullptr);
- }
-
- if (arg->Expr->GetSource()) {
- Ctx.Error() << "AS_TABLE shouldn't be used for table sources";
- return TMaybe<TSourcePtr>(nullptr);
- }
-
- return BuildNodeSource(Ctx.Pos(), arg->Expr, true);
- }
- }
-
- return Nothing();
-}
-
-TMaybe<TColumnSchema> TSqlTranslation::ColumnSchemaImpl(const TRule_column_schema& node) {
- const bool nullable = !node.HasBlock4() || !node.GetBlock4().HasBlock1();
- const TString name(Id(node.GetRule_an_id_schema1(), *this));
- const TPosition pos(Context().Pos());
- const auto type = TypeNodeOrBind(node.GetRule_type_name_or_bind2());
- if (!type) {
- return {};
- }
- TVector<TIdentifier> families;
- if (node.HasBlock3()) {
- const auto& familyRelation = node.GetBlock3().GetRule_family_relation1();
- families.push_back(IdEx(familyRelation.GetRule_an_id2(), *this));
- }
- return TColumnSchema(pos, name, type, nullable, families);
-}
-
-bool TSqlTranslation::FillFamilySettingsEntry(const TRule_family_settings_entry& settingNode, TFamilyEntry& family) {
- TIdentifier id = IdEx(settingNode.GetRule_an_id1(), *this);
- const TRule_family_setting_value& value = settingNode.GetRule_family_setting_value3();
- if (to_lower(id.Name) == "data") {
- const TString stringValue(Ctx.Token(value.GetToken1()));
- family.Data = BuildLiteralSmartString(Ctx, stringValue);
- } else if (to_lower(id.Name) == "compression") {
- const TString stringValue(Ctx.Token(value.GetToken1()));
- family.Compression = BuildLiteralSmartString(Ctx, stringValue);
- } else {
- Ctx.Error() << "Unknown table setting: " << id.Name;
- return false;
- }
- return true;
-}
-
-bool TSqlTranslation::FillFamilySettings(const TRule_family_settings& settingsNode, TFamilyEntry& family) {
- // family_settings: LPAREN (family_settings_entry (COMMA family_settings_entry)*)? RPAREN;
- if (settingsNode.HasBlock2()) {
- auto& settings = settingsNode.GetBlock2();
- if (!FillFamilySettingsEntry(settings.GetRule_family_settings_entry1(), family)) {
- return false;
- }
- for (auto& block : settings.GetBlock2()) {
- if (!FillFamilySettingsEntry(block.GetRule_family_settings_entry2(), family)) {
- return false;
- }
- }
- }
- return true;
-}
-
-static bool ChangefeedSettingsEntry(const TRule_changefeed_settings_entry& node, TSqlExpression& ctx, TChangefeedSettings& settings, bool alter) {
- const auto id = IdEx(node.GetRule_an_id1(), ctx);
- if (alter) {
- // currently we don't support alter settings
- ctx.Error() << to_upper(id.Name) << " alter is not supported";
- return false;
- }
-
- const auto& setting = node.GetRule_changefeed_setting_value3();
- auto exprNode = ctx.Build(setting.GetRule_expr1());
-
- if (!exprNode) {
- ctx.Context().Error(id.Pos) << "Invalid changefeed setting: " << id.Name;
- return false;
- }
-
- if (to_lower(id.Name) == "sink_type") {
- if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "String") {
- ctx.Context().Error() << "Literal of String type is expected for " << id.Name;
- return false;
- }
-
- const auto value = exprNode->GetLiteralValue();
- if (to_lower(value) == "local") {
- settings.SinkSettings = TChangefeedSettings::TLocalSinkSettings();
- } else {
- ctx.Context().Error() << "Unknown changefeed sink type: " << value;
- return false;
- }
- } else if (to_lower(id.Name) == "mode") {
- if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "String") {
- ctx.Context().Error() << "Literal of String type is expected for " << id.Name;
- return false;
- }
- settings.Mode = exprNode;
- } else if (to_lower(id.Name) == "format") {
- if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "String") {
- ctx.Context().Error() << "Literal of String type is expected for " << id.Name;
- return false;
- }
- settings.Format = exprNode;
- } else if (to_lower(id.Name) == "initial_scan") {
- if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "Bool") {
- ctx.Context().Error() << "Literal of Bool type is expected for " << id.Name;
- return false;
- }
- settings.InitialScan = exprNode;
- } else if (to_lower(id.Name) == "virtual_timestamps") {
- if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "Bool") {
- ctx.Context().Error() << "Literal of Bool type is expected for " << id.Name;
- return false;
- }
- settings.VirtualTimestamps = exprNode;
- } else if (to_lower(id.Name) == "resolved_timestamps") {
- if (exprNode->GetOpName() != "Interval") {
- ctx.Context().Error() << "Literal of Interval type is expected for " << id.Name;
- return false;
- }
- settings.ResolvedTimestamps = exprNode;
- } else if (to_lower(id.Name) == "retention_period") {
- if (exprNode->GetOpName() != "Interval") {
- ctx.Context().Error() << "Literal of Interval type is expected for " << id.Name;
- return false;
- }
- settings.RetentionPeriod = exprNode;
- } else if (to_lower(id.Name) == "aws_region") {
- if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "String") {
- ctx.Context().Error() << "Literal of String type is expected for " << id.Name;
- return false;
- }
- settings.AwsRegion = exprNode;
- } else {
- ctx.Context().Error(id.Pos) << "Unknown changefeed setting: " << id.Name;
- return false;
- }
-
- return true;
-}
-
-static bool ChangefeedSettings(const TRule_changefeed_settings& node, TSqlExpression& ctx, TChangefeedSettings& settings, bool alter) {
- if (!ChangefeedSettingsEntry(node.GetRule_changefeed_settings_entry1(), ctx, settings, alter)) {
- return false;
- }
-
- for (auto& block : node.GetBlock2()) {
- if (!ChangefeedSettingsEntry(block.GetRule_changefeed_settings_entry2(), ctx, settings, alter)) {
- return false;
- }
- }
-
- return true;
-}
-
-static bool CreateChangefeed(const TRule_changefeed& node, TSqlExpression& ctx, TVector<TChangefeedDescription>& changefeeds) {
- changefeeds.emplace_back(IdEx(node.GetRule_an_id2(), ctx));
-
- if (!ChangefeedSettings(node.GetRule_changefeed_settings5(), ctx, changefeeds.back().Settings, false)) {
- return false;
- }
-
- return true;
-}
-
-bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCreateTableParameters& params)
-{
- switch (node.Alt_case()) {
- case TRule_create_table_entry::kAltCreateTableEntry1:
- {
- // column_schema
- auto columnSchema = ColumnSchemaImpl(node.GetAlt_create_table_entry1().GetRule_column_schema1());
- if (!columnSchema) {
- return false;
- }
- if (columnSchema->Families.size() > 1) {
- Ctx.Error() << "Several column families for a single column are not yet supported";
- return false;
- }
- params.Columns.push_back(*columnSchema);
- break;
- }
- case TRule_create_table_entry::kAltCreateTableEntry2:
- {
- // table_constraint
- auto& constraint = node.GetAlt_create_table_entry2().GetRule_table_constraint1();
- switch (constraint.Alt_case()) {
- case TRule_table_constraint::kAltTableConstraint1: {
- if (!params.PkColumns.empty()) {
- Ctx.Error() << "PRIMARY KEY statement must be specified only once";
- return false;
- }
- auto& pkConstraint = constraint.GetAlt_table_constraint1();
- params.PkColumns.push_back(IdEx(pkConstraint.GetRule_an_id4(), *this));
- for (auto& block : pkConstraint.GetBlock5()) {
- params.PkColumns.push_back(IdEx(block.GetRule_an_id2(), *this));
- }
- break;
- }
- case TRule_table_constraint::kAltTableConstraint2: {
- if (!params.PartitionByColumns.empty()) {
- Ctx.Error() << "PARTITION BY statement must be specified only once";
- return false;
- }
- auto& pbConstraint = constraint.GetAlt_table_constraint2();
- params.PartitionByColumns.push_back(IdEx(pbConstraint.GetRule_an_id4(), *this));
- for (auto& block : pbConstraint.GetBlock5()) {
- params.PartitionByColumns.push_back(IdEx(block.GetRule_an_id2(), *this));
- }
- break;
- }
- case TRule_table_constraint::kAltTableConstraint3: {
- if (!params.OrderByColumns.empty()) {
- Ctx.Error() << "ORDER BY statement must be specified only once";
- return false;
- }
- auto& obConstraint = constraint.GetAlt_table_constraint3();
- auto extractDirection = [this] (const TRule_column_order_by_specification& spec, bool& desc) {
- desc = false;
- if (!spec.HasBlock2()) {
- return true;
- }
-
- auto& token = spec.GetBlock2().GetToken1();
- switch (token.GetId()) {
- case SQLv1LexerTokens::TOKEN_ASC:
- return true;
- case SQLv1LexerTokens::TOKEN_DESC:
- desc = true;
- return true;
- default:
- Ctx.Error() << "Unsupported direction token: " << token.GetId();
- return false;
- }
- };
-
- bool desc = false;
- auto& obSpec = obConstraint.GetRule_column_order_by_specification4();
- if (!extractDirection(obSpec, desc)) {
- return false;
- }
- params.OrderByColumns.push_back(std::make_pair(IdEx(obSpec.GetRule_an_id1(), *this), desc));
-
- for (auto& block : obConstraint.GetBlock5()) {
- auto& obSpec = block.GetRule_column_order_by_specification2();
- if (!extractDirection(obSpec, desc)) {
- return false;
- }
- params.OrderByColumns.push_back(std::make_pair(IdEx(obSpec.GetRule_an_id1(), *this), desc));
- }
- break;
- }
- default:
- AltNotImplemented("table_constraint", constraint);
- return false;
- }
- break;
- }
- case TRule_create_table_entry::kAltCreateTableEntry3:
- {
- // table_index
- auto& table_index = node.GetAlt_create_table_entry3().GetRule_table_index1();
- if (!CreateTableIndex(table_index, *this, params.Indexes)) {
- return false;
- }
- break;
- }
- case TRule_create_table_entry::kAltCreateTableEntry4:
- {
- // family_entry
- auto& family_entry = node.GetAlt_create_table_entry4().GetRule_family_entry1();
- TFamilyEntry family(IdEx(family_entry.GetRule_an_id2(), *this));
- if (!FillFamilySettings(family_entry.GetRule_family_settings3(), family)) {
- return false;
- }
- params.ColumnFamilies.push_back(family);
- break;
- }
- case TRule_create_table_entry::kAltCreateTableEntry5:
- {
- // changefeed
- auto& changefeed = node.GetAlt_create_table_entry5().GetRule_changefeed1();
- TSqlExpression expr(Ctx, Mode);
- if (!CreateChangefeed(changefeed, expr, params.Changefeeds)) {
- return false;
- }
- break;
- }
- default:
- AltNotImplemented("create_table_entry", node);
- return false;
- }
- return true;
-}
-
-TNodePtr LiteralNumber(TContext& ctx, const TRule_integer& node);
-
-namespace {
- bool StoreId(const TRule_table_setting_value& from, TMaybe<TIdentifier>& to, TTranslation& ctx) {
- switch (from.Alt_case()) {
- case TRule_table_setting_value::kAltTableSettingValue1: {
- // id
- to = IdEx(from.GetAlt_table_setting_value1().GetRule_id1(), ctx);
- break;
- }
- default:
- return false;
- }
- return true;
- }
-
- bool StoreString(const TRule_table_setting_value& from, TNodePtr& to, TContext& ctx) {
- switch (from.Alt_case()) {
- case TRule_table_setting_value::kAltTableSettingValue2: {
- // STRING_VALUE
- const TString stringValue(ctx.Token(from.GetAlt_table_setting_value2().GetToken1()));
- to = BuildLiteralSmartString(ctx, stringValue);
- break;
- }
- default:
- return false;
- }
- return true;
- }
-
- bool StoreString(const TRule_table_setting_value& from, TDeferredAtom& to, TContext& ctx, const TString& errorPrefix = {}) {
- switch (from.Alt_case()) {
- case TRule_table_setting_value::kAltTableSettingValue2: {
- // STRING_VALUE
- const TString stringValue(ctx.Token(from.GetAlt_table_setting_value2().GetToken1()));
- auto unescaped = StringContent(ctx, ctx.Pos(), stringValue);
- if (!unescaped) {
- ctx.Error() << errorPrefix << " value cannot be unescaped";
- return false;
- }
- to = TDeferredAtom(ctx.Pos(), unescaped->Content);
- break;
- }
- default:
- ctx.Error() << errorPrefix << " value should be a string literal";
- return false;
- }
- return true;
- }
-
- bool StoreInt(const TRule_table_setting_value& from, TNodePtr& to, TContext& ctx) {
- switch (from.Alt_case()) {
- case TRule_table_setting_value::kAltTableSettingValue3: {
- // integer
- to = LiteralNumber(ctx, from.GetAlt_table_setting_value3().GetRule_integer1());
- break;
- }
- default:
- return false;
- }
- return true;
- }
-
- bool StoreSplitBoundary(const TRule_literal_value_list& boundary, TVector<TVector<TNodePtr>>& to,
- TSqlExpression& expr, TContext& ctx) {
- TVector<TNodePtr> boundaryKeys;
- auto first_key = expr.LiteralExpr(boundary.GetRule_literal_value2());
- if (!first_key) {
- ctx.Error() << "Empty key in partition at keys";
- return false;
- }
- if (!first_key->Expr) {
- ctx.Error() << "Identifier is not expected in partition at keys";
- return false;
- }
- boundaryKeys.emplace_back(first_key->Expr);
- for (auto& key : boundary.GetBlock3()) {
- auto keyExprOrIdent = expr.LiteralExpr(key.GetRule_literal_value2());
- if (!keyExprOrIdent) {
- ctx.Error() << "Empty key in partition at keys";
- return false;
- }
- if (!keyExprOrIdent->Expr) {
- ctx.Error() << "Identifier is not expected in partition at keys";
- return false;
- }
- boundaryKeys.emplace_back(keyExprOrIdent->Expr);
- }
- to.push_back(boundaryKeys);
- return true;
- }
-
- bool StoreSplitBoundaries(const TRule_table_setting_value& from, TVector<TVector<TNodePtr>>& to,
- TSqlExpression& expr, TContext& ctx) {
- switch (from.Alt_case()) {
- case TRule_table_setting_value::kAltTableSettingValue4: {
- // split_boundaries
- const auto& boundariesNode = from.GetAlt_table_setting_value4().GetRule_split_boundaries1();
- switch (boundariesNode.Alt_case()) {
- case TRule_split_boundaries::kAltSplitBoundaries1: {
- // literal_value_list (COMMA literal_value_list)*
- auto& complexBoundaries = boundariesNode.GetAlt_split_boundaries1();
-
- auto& first_boundary = complexBoundaries.GetRule_literal_value_list2();
- if (!StoreSplitBoundary(first_boundary, to, expr, ctx)) {
- return false;
- }
-
- for (auto& boundary : complexBoundaries.GetBlock3()) {
- if (!StoreSplitBoundary(boundary.GetRule_literal_value_list2(), to, expr, ctx)) {
- return false;
- }
- }
- break;
- }
- case TRule_split_boundaries::kAltSplitBoundaries2: {
- // literal_value_list
- auto& simpleBoundaries = boundariesNode.GetAlt_split_boundaries2().GetRule_literal_value_list1();
- auto first_key = expr.LiteralExpr(simpleBoundaries.GetRule_literal_value2());
- if (!first_key) {
- ctx.Error() << "Empty key in partition at keys";
- return false;
- }
- if (!first_key->Expr) {
- ctx.Error() << "Identifier is not expected in partition at keys";
- return false;
- }
- to.push_back(TVector<TNodePtr>(1, first_key->Expr));
- for (auto& key : simpleBoundaries.GetBlock3()) {
- auto keyExprOrIdent = expr.LiteralExpr(key.GetRule_literal_value2());
- if (!keyExprOrIdent) {
- ctx.Error() << "Empty key in partition at keys";
- return false;
- }
- if (!first_key->Expr) {
- ctx.Error() << "Identifier is not expected in partition at keys";
- return false;
- }
- to.push_back(
- TVector<TNodePtr>(1, keyExprOrIdent->Expr)
- );
- }
- break;
- }
- default:
- return false;
- }
- break;
- }
- default:
- return false;
- }
- return true;
- }
-
- bool StoreTtlSettings(const TRule_table_setting_value& from, TResetableSetting<TTtlSettings, void>& to,
- TSqlExpression& expr, TContext& ctx, TTranslation& txc) {
- switch (from.Alt_case()) {
- case TRule_table_setting_value::kAltTableSettingValue5: {
- auto columnName = IdEx(from.GetAlt_table_setting_value5().GetRule_an_id3(), txc);
- auto exprNode = expr.Build(from.GetAlt_table_setting_value5().GetRule_expr1());
- if (!exprNode) {
- return false;
- }
-
- if (exprNode->GetOpName() != "Interval") {
- ctx.Error() << "Literal of Interval type is expected for TTL";
- return false;
- }
-
- TMaybe<TTtlSettings::EUnit> columnUnit;
- if (from.GetAlt_table_setting_value5().HasBlock4()) {
- const TString unit = to_lower(ctx.Token(from.GetAlt_table_setting_value5().GetBlock4().GetToken2()));
- columnUnit.ConstructInPlace();
- if (!TryFromString<TTtlSettings::EUnit>(unit, *columnUnit)) {
- ctx.Error() << "Invalid unit: " << unit;
- return false;
- }
- }
-
- to.Set(TTtlSettings(columnName, exprNode, columnUnit));
- break;
- }
- default:
- return false;
- }
- return true;
- }
-
- bool WithoutAlpha(const std::string_view& literal) {
- return literal.cend() == std::find_if(literal.cbegin(), literal.cend(), [](char c) { return std::isalpha(c) || (c & '\x80'); });
- }
-
- template<typename TChar>
- struct TPatternComponent {
- TBasicString<TChar> Prefix;
- TBasicString<TChar> Suffix;
- bool IsSimple = true;
-
- void AppendPlain(TChar c) {
- if (IsSimple) {
- Prefix.push_back(c);
- }
- Suffix.push_back(c);
- }
-
- void AppendAnyChar() {
- IsSimple = false;
- Suffix.clear();
- }
- };
-
- template<typename TChar>
- TVector<TPatternComponent<TChar>> SplitPattern(const TBasicString<TChar>& pattern, TMaybe<char> escape, bool& inEscape) {
- inEscape = false;
- TVector<TPatternComponent<TChar>> result;
- TPatternComponent<TChar> current;
- bool prevIsPercentChar = false;
- for (const TChar c : pattern) {
- if (inEscape) {
- current.AppendPlain(c);
- inEscape = false;
- prevIsPercentChar = false;
- } else if (escape && c == static_cast<TChar>(*escape)) {
- inEscape = true;
- } else if (c == '%') {
- if (!prevIsPercentChar) {
- result.push_back(std::move(current));
- }
- current = {};
- prevIsPercentChar = true;
- } else if (c == '_') {
- current.AppendAnyChar();
- prevIsPercentChar = false;
- } else {
- current.AppendPlain(c);
- prevIsPercentChar = false;
- }
- }
- result.push_back(std::move(current));
- return result;
- }
-}
-
-bool TSqlTranslation::StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value,
- TTableSettings& settings, ETableType tableType, bool alter, bool reset) {
- switch (tableType) {
- case ETableType::ExternalTable:
- return StoreExternalTableSettingsEntry(id, value, settings);
- case ETableType::Table:
- case ETableType::TableStore:
- return StoreTableSettingsEntry(id, value, settings, alter, reset);
- }
-}
-
-bool TSqlTranslation::StoreExternalTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, TTableSettings& settings) {
- if (to_lower(id.Name) == "data_source") {
- TDeferredAtom dataSource;
- if (!StoreString(*value, dataSource, Ctx, to_upper(id.Name))) {
- return false;
- }
- TString service = Context().Scoped->CurrService;
- TDeferredAtom cluster = Context().Scoped->CurrCluster;
- TNodePtr root = new TAstListNodeImpl(Ctx.Pos());
- root->Add("String", Ctx.GetPrefixedPath(service, cluster, dataSource));
- settings.DataSourcePath = root;
- } else if (to_lower(id.Name) == "location") {
- if (!StoreString(*value, settings.Location, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
- return false;
- }
- } else {
- settings.ExternalSourceParameters.emplace_back(id, nullptr);
- auto& parameter = settings.ExternalSourceParameters.back();
- if (!StoreString(*value, parameter.second, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
- return false;
- }
- }
- return true;
-}
-
-bool TSqlTranslation::StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value,
- TTableSettings& settings, bool alter, bool reset) {
- YQL_ENSURE(value || reset);
- YQL_ENSURE(!reset || reset & alter);
- if (to_lower(id.Name) == "compaction_policy") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreString(*value, settings.CompactionPolicy, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
- return false;
- }
- } else if (to_lower(id.Name) == "auto_partitioning_by_size") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreId(*value, settings.AutoPartitioningBySize, *this)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
- return false;
- }
- } else if (to_lower(id.Name) == "auto_partitioning_partition_size_mb") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreInt(*value, settings.PartitionSizeMb, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
- return false;
- }
- } else if (to_lower(id.Name) == "auto_partitioning_by_load") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreId(*value, settings.AutoPartitioningByLoad, *this)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
- return false;
- }
- } else if (to_lower(id.Name) == "auto_partitioning_min_partitions_count") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreInt(*value, settings.MinPartitions, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
- return false;
- }
- } else if (to_lower(id.Name) == "auto_partitioning_max_partitions_count") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreInt(*value, settings.MaxPartitions, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
- return false;
- }
- } else if (to_lower(id.Name) == "uniform_partitions") {
- if (alter) {
- Ctx.Error() << to_upper(id.Name) << " alter is not supported";
- return false;
- }
- if (!StoreInt(*value, settings.UniformPartitions, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
- return false;
- }
- } else if (to_lower(id.Name) == "partition_at_keys") {
- if (alter) {
- Ctx.Error() << to_upper(id.Name) << " alter is not supported";
- return false;
- }
- TSqlExpression expr(Ctx, Mode);
- if (!StoreSplitBoundaries(*value, settings.PartitionAtKeys, expr, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a list of keys. "
- << "Example1: (10, 1000) Example2: ((10), (1000, \"abc\"))";
- return false;
- }
- } else if (to_lower(id.Name) == "key_bloom_filter") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreId(*value, settings.KeyBloomFilter, *this)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
- return false;
- }
- } else if (to_lower(id.Name) == "read_replicas_settings") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreString(*value, settings.ReadReplicasSettings, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
- return false;
- }
- } else if (to_lower(id.Name) == "ttl") {
- if (!reset) {
- TSqlExpression expr(Ctx, Mode);
- if (!StoreTtlSettings(*value, settings.TtlSettings, expr, Ctx, *this)) {
- Ctx.Error() << "Invalid TTL settings";
- return false;
- }
- } else {
- settings.TtlSettings.Reset();
- }
- } else if (to_lower(id.Name) == "tiering") {
- if (!reset) {
- TNodePtr tieringNode;
- if (!StoreString(*value, tieringNode, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
- return false;
- }
- settings.Tiering.Set(tieringNode);
- } else {
- settings.Tiering.Reset();
- }
- } else if (to_lower(id.Name) == "store") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreId(*value, settings.StoreType, *this)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
- return false;
- }
- } else if (to_lower(id.Name) == "partition_by_hash_function") {
- if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!StoreString(*value, settings.PartitionByHashFunction, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
- return false;
- }
- } else {
- Ctx.Error() << "Unknown table setting: " << id.Name;
- return false;
- }
- return true;
-}
-
-bool TSqlTranslation::StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value& value,
- TTableSettings& settings, ETableType tableType, bool alter) {
- return StoreTableSettingsEntry(id, &value, settings, tableType, alter, false);
-}
-
-bool TSqlTranslation::ResetTableSettingsEntry(const TIdentifier& id, TTableSettings& settings, ETableType tableType) {
- return StoreTableSettingsEntry(id, nullptr, settings, tableType, true, true);
-}
-
-bool TSqlTranslation::CreateTableSettings(const TRule_with_table_settings& settingsNode, TCreateTableParameters& params) {
- const auto& firstEntry = settingsNode.GetRule_table_settings_entry3();
- if (!StoreTableSettingsEntry(IdEx(firstEntry.GetRule_an_id1(), *this), firstEntry.GetRule_table_setting_value3(),
- params.TableSettings, params.TableType)) {
- return false;
- }
- for (auto& block : settingsNode.GetBlock4()) {
- const auto& entry = block.GetRule_table_settings_entry2();
- if (!StoreTableSettingsEntry(IdEx(entry.GetRule_an_id1(), *this), entry.GetRule_table_setting_value3(), params.TableSettings, params.TableType)) {
- return false;
- }
- }
- return true;
-}
-
-bool StoreConsumerSettingsEntry(
- const TIdentifier& id, const TRule_topic_consumer_setting_value* value, TSqlExpression& ctx,
- TTopicConsumerSettings& settings,
- bool reset
-) {
- YQL_ENSURE(value || reset);
- TNodePtr valueExprNode;
- if (value) {
- valueExprNode = ctx.Build(value->GetRule_expr1());
- if (!valueExprNode) {
- ctx.Error() << "invalid value for setting: " << id.Name;
- return false;
- }
- }
- if (to_lower(id.Name) == "important") {
- if (settings.Important) {
- ctx.Error() << to_upper(id.Name) << " specified multiple times in ALTER CONSUMER statements for single consumer";
- return false;
- }
- if (reset) {
- ctx.Error() << to_upper(id.Name) << " reset is not supported";
- return false;
- }
- if (!valueExprNode->IsLiteral() || valueExprNode->GetLiteralType() != "Bool") {
- ctx.Error() << to_upper(id.Name) << " value should be boolean";
- return false;
- }
- settings.Important = valueExprNode;
-
- } else if (to_lower(id.Name) == "read_from") {
- if (settings.ReadFromTs) {
- ctx.Error() << to_upper(id.Name) << " specified multiple times in ALTER CONSUMER statements for single consumer";
- return false;
- }
- if (reset) {
- settings.ReadFromTs.Reset();
- } else {
- //ToDo: !! validate
- settings.ReadFromTs.Set(valueExprNode);
- }
- } else if (to_lower(id.Name) == "supported_codecs") {
- if (settings.SupportedCodecs) {
- ctx.Error() << to_upper(id.Name) << " specified multiple times in ALTER CONSUMER statements for single consumer";
- return false;
- }
- if (reset) {
- settings.SupportedCodecs.Reset();
- } else {
- if (!valueExprNode->IsLiteral() || valueExprNode->GetLiteralType() != "String") {
- ctx.Error() << to_upper(id.Name) << " value should be a string literal";
- return false;
- }
- settings.SupportedCodecs.Set(valueExprNode);
- }
- } else {
- ctx.Error() << to_upper(id.Name) << ": unknown option for consumer";
- return false;
- }
- return true;
-}
-
-TIdentifier TSqlTranslation::GetTopicConsumerId(const TRule_topic_consumer_ref& node) {
- return IdEx(node.GetRule_an_id_pure1(), *this);
-}
-
-bool TSqlTranslation::CreateConsumerSettings(
- const TRule_topic_consumer_settings& node, TTopicConsumerSettings& settings
-) {
- const auto& firstEntry = node.GetRule_topic_consumer_settings_entry1();
- TSqlExpression expr(Ctx, Mode);
- if (!StoreConsumerSettingsEntry(
- IdEx(firstEntry.GetRule_an_id1(), *this),
- &firstEntry.GetRule_topic_consumer_setting_value3(),
- expr, settings, false
- )) {
- return false;
- }
- for (auto& block : node.GetBlock2()) {
- const auto& entry = block.GetRule_topic_consumer_settings_entry2();
- if (!StoreConsumerSettingsEntry(
- IdEx(entry.GetRule_an_id1(), *this),
- &entry.GetRule_topic_consumer_setting_value3(),
- expr, settings, false
- )) {
- return false;
- }
- }
- return true;
-}
-
-bool TSqlTranslation::CreateTopicConsumer(
- const TRule_topic_create_consumer_entry& node,
- TVector<TTopicConsumerDescription>& consumers
-) {
- consumers.emplace_back(IdEx(node.GetRule_an_id2(), *this));
-
- if (node.HasBlock3()) {
- auto& settings = node.GetBlock3().GetRule_topic_consumer_with_settings1().GetRule_topic_consumer_settings3();
- if (!CreateConsumerSettings(settings, consumers.back().Settings)) {
- return false;
- }
- }
-
- return true;
-}
-
-bool TSqlTranslation::AlterTopicConsumerEntry(
- const TRule_alter_topic_alter_consumer_entry& node, TTopicConsumerDescription& alterConsumer
-) {
- switch (node.Alt_case()) {
- case TRule_alter_topic_alter_consumer_entry::kAltAlterTopicAlterConsumerEntry1:
- return CreateConsumerSettings(
- node.GetAlt_alter_topic_alter_consumer_entry1().GetRule_topic_alter_consumer_set1()
- .GetRule_topic_consumer_settings3(),
- alterConsumer.Settings
- );
- //case TRule_alter_topic_alter_consumer_entry::ALT_NOT_SET:
- case TRule_alter_topic_alter_consumer_entry::kAltAlterTopicAlterConsumerEntry2: {
- auto& resetNode = node.GetAlt_alter_topic_alter_consumer_entry2().GetRule_topic_alter_consumer_reset1();
- TSqlExpression expr(Ctx, Mode);
- if (!StoreConsumerSettingsEntry(
- IdEx(resetNode.GetRule_an_id3(), *this),
- nullptr,
- expr, alterConsumer.Settings, true
- )) {
- return false;
- }
-
- for (auto& resetItem: resetNode.GetBlock4()) {
- if (!StoreConsumerSettingsEntry(
- IdEx(resetItem.GetRule_an_id2(), *this),
- nullptr,
- expr, alterConsumer.Settings, true
- )) {
- return false;
- }
- }
- return true;
- }
- default:
- Ctx.Error() << "unknown alter consumer action";
- return false;
- }
- return true;
-}
-
-bool TSqlTranslation::AlterTopicConsumer(
- const TRule_alter_topic_alter_consumer& node,
- THashMap<TString, TTopicConsumerDescription>& alterConsumers
-) {
- auto consumerId = GetTopicConsumerId(node.GetRule_topic_consumer_ref3());
- TString name = to_lower(consumerId.Name);
- auto iter = alterConsumers.insert(std::make_pair(
- name, TTopicConsumerDescription(std::move(consumerId))
- )).first;
- if (!AlterTopicConsumerEntry(node.GetRule_alter_topic_alter_consumer_entry4(), iter->second)) {
- return false;
- }
- return true;
-}
-
-bool TSqlTranslation::CreateTopicEntry(const TRule_create_topic_entry& node, TCreateTopicParameters& params) {
- // Will need a switch() here if (ever) create_topic_entry gets more than 1 type of statement
- auto& consumer = node.GetRule_topic_create_consumer_entry1();
- if (!CreateTopicConsumer(consumer, params.Consumers)) {
- return false;
- }
- return true;
-}
-
-static bool StoreTopicSettingsEntry(
- const TIdentifier& id, const TRule_topic_setting_value* value, TSqlExpression& ctx,
- TTopicSettings& settings, bool reset
-) {
- YQL_ENSURE(value || reset);
- TNodePtr valueExprNode;
- if (value) {
- valueExprNode = ctx.Build(value->GetRule_expr1());
- if (!valueExprNode) {
- ctx.Error() << "invalid value for setting: " << id.Name;
- return false;
- }
- }
-
- if (to_lower(id.Name) == "min_active_partitions") {
- if (reset) {
- settings.MinPartitions.Reset();
- } else {
- if (!valueExprNode->IsIntegerLiteral()) {
- ctx.Error() << to_upper(id.Name) << " value should be an integer";
- return false;
- }
- settings.MinPartitions.Set(valueExprNode);
- }
- } else if (to_lower(id.Name) == "partition_count_limit") {
- if (reset) {
- settings.PartitionsLimit.Reset();
- } else {
- if (!valueExprNode->IsIntegerLiteral()) {
- ctx.Error() << to_upper(id.Name) << " value should be an integer";
- return false;
- }
- settings.PartitionsLimit.Set(valueExprNode);
- }
- } else if (to_lower(id.Name) == "retention_period") {
- if (reset) {
- settings.RetentionPeriod.Reset();
- } else {
- if (valueExprNode->GetOpName() != "Interval") {
- ctx.Error() << "Literal of Interval type is expected for retention";
- return false;
- }
- settings.RetentionPeriod.Set(valueExprNode);
- }
- } else if (to_lower(id.Name) == "retention_storage_mb") {
- if (reset) {
- settings.RetentionStorage.Reset();
- } else {
- if (!valueExprNode->IsIntegerLiteral()) {
- ctx.Error() << to_upper(id.Name) << " value should be an integer";
- return false;
- }
- settings.RetentionStorage.Set(valueExprNode);
- }
- } else if (to_lower(id.Name) == "partition_write_speed_bytes_per_second") {
- if (reset) {
- settings.PartitionWriteSpeed.Reset();
- } else {
- if (!valueExprNode->IsIntegerLiteral()) {
- ctx.Error() << to_upper(id.Name) << " value should be an integer";
- return false;
- }
- settings.PartitionWriteSpeed.Set(valueExprNode);
- }
- } else if (to_lower(id.Name) == "partition_write_burst_bytes") {
- if (reset) {
- settings.PartitionWriteBurstSpeed.Reset();
- } else {
- if (!valueExprNode->IsIntegerLiteral()) {
- ctx.Error() << to_upper(id.Name) << " value should be an integer";
- return false;
- }
- settings.PartitionWriteBurstSpeed.Set(valueExprNode);
- }
- } else if (to_lower(id.Name) == "metering_mode") {
- if (reset) {
- settings.MeteringMode.Reset();
- } else {
- if (!valueExprNode->IsLiteral() || valueExprNode->GetLiteralType() != "String") {
- ctx.Error() << to_upper(id.Name) << " value should be string";
- return false;
- }
- settings.MeteringMode.Set(valueExprNode);
- }
- } else if (to_lower(id.Name) == "supported_codecs") {
- if (reset) {
- settings.SupportedCodecs.Reset();
- } else {
- if (!valueExprNode->IsLiteral() || valueExprNode->GetLiteralType() != "String") {
- ctx.Error() << to_upper(id.Name) << " value should be string";
- return false;
- }
- settings.SupportedCodecs.Set(valueExprNode);
- }
- } else {
- ctx.Error() << "unknown topic setting: " << id.Name;
- return false;
- }
- return true;
-}
-
-bool TSqlTranslation::AlterTopicAction(const TRule_alter_topic_action& node, TAlterTopicParameters& params) {
-// alter_topic_action:
-// alter_topic_add_consumer
-// | alter_topic_alter_consumer
-// | alter_topic_drop_consumer
-// | alter_topic_set_settings
-// | alter_topic_reset_settings
-
- switch (node.Alt_case()) {
- case TRule_alter_topic_action::kAltAlterTopicAction1: // alter_topic_add_consumer
- return CreateTopicConsumer(
- node.GetAlt_alter_topic_action1().GetRule_alter_topic_add_consumer1()
- .GetRule_topic_create_consumer_entry2(),
- params.AddConsumers
- );
-
- case TRule_alter_topic_action::kAltAlterTopicAction2: // alter_topic_alter_consumer
- return AlterTopicConsumer(
- node.GetAlt_alter_topic_action2().GetRule_alter_topic_alter_consumer1(),
- params.AlterConsumers
- );
-
- case TRule_alter_topic_action::kAltAlterTopicAction3: // drop_consumer
- params.DropConsumers.emplace_back(GetTopicConsumerId(
- node.GetAlt_alter_topic_action3().GetRule_alter_topic_drop_consumer1()
- .GetRule_topic_consumer_ref3()
- ));
- return true;
-
- case TRule_alter_topic_action::kAltAlterTopicAction4: // set_settings
- return CreateTopicSettings(
- node.GetAlt_alter_topic_action4().GetRule_alter_topic_set_settings1()
- .GetRule_topic_settings3(),
- params.TopicSettings
- );
-
- case TRule_alter_topic_action::kAltAlterTopicAction5: { // reset_settings
- auto& resetNode = node.GetAlt_alter_topic_action5().GetRule_alter_topic_reset_settings1();
- TSqlExpression expr(Ctx, Mode);
- if (!StoreTopicSettingsEntry(
- IdEx(resetNode.GetRule_an_id3(), *this),
- nullptr, expr,
- params.TopicSettings, true
- )) {
- return false;
- }
-
- for (auto& resetItem: resetNode.GetBlock4()) {
- if (!StoreTopicSettingsEntry(
- IdEx(resetItem.GetRule_an_id_pure2(), *this),
- nullptr, expr,
- params.TopicSettings, true
- )) {
- return false;
- }
- }
- return true;
- }
- default:
- Ctx.Error() << "unknown alter topic action";
- return false;
- }
- return true;
-}
-
-bool TSqlTranslation::CreateTopicSettings(const TRule_topic_settings& node, TTopicSettings& settings) {
- const auto& firstEntry = node.GetRule_topic_settings_entry1();
- TSqlExpression expr(Ctx, Mode);
-
- if (!StoreTopicSettingsEntry(
- IdEx(firstEntry.GetRule_an_id1(), *this),
- &firstEntry.GetRule_topic_setting_value3(),
- expr, settings, false
- )) {
- return false;
- }
- for (auto& block : node.GetBlock2()) {
- const auto& entry = block.GetRule_topic_settings_entry2();
- if (!StoreTopicSettingsEntry(
- IdEx(entry.GetRule_an_id1(), *this),
- &entry.GetRule_topic_setting_value3(),
- expr, settings, false
- )) {
- return false;
- }
- }
- return true;
-}
-
-bool ParseNumbers(TContext& ctx, const TString& strOrig, ui64& value, TString& suffix);
-
-TNodePtr TSqlTranslation::IntegerOrBind(const TRule_integer_or_bind& node) {
- switch (node.Alt_case()) {
- case TRule_integer_or_bind::kAltIntegerOrBind1: {
- const TString intString = Ctx.Token(node.GetAlt_integer_or_bind1().GetRule_integer1().GetToken1());
- ui64 value;
- TString suffix;
- if (!ParseNumbers(Ctx, intString, value, suffix)) {
- return {};
- }
- return BuildQuotedAtom(Ctx.Pos(), ToString(value), TNodeFlags::ArbitraryContent);
- }
- case TRule_integer_or_bind::kAltIntegerOrBind2: {
- TString bindName;
- if (!NamedNodeImpl(node.GetAlt_integer_or_bind2().GetRule_bind_parameter1(), bindName, *this)) {
- return {};
- }
- auto namedNode = GetNamedNode(bindName);
- if (!namedNode) {
- return {};
- }
- auto atom = MakeAtomFromExpression(Ctx, namedNode);
- return atom.Build();
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-TNodePtr TSqlTranslation::TypeNameTag(const TRule_type_name_tag& node) {
- switch (node.Alt_case()) {
- case TRule_type_name_tag::kAltTypeNameTag1: {
- auto content = Id(node.GetAlt_type_name_tag1().GetRule_id1(), *this);
- auto atom = TDeferredAtom(Ctx.Pos(), content);
- return atom.Build();
- }
- case TRule_type_name_tag::kAltTypeNameTag2: {
- auto value = Token(node.GetAlt_type_name_tag2().GetToken1());
- auto parsed = StringContentOrIdContent(Ctx, Ctx.Pos(), value);
- if (!parsed) {
- return {};
- }
- auto atom = TDeferredAtom(Ctx.Pos(), parsed->Content);
- return atom.Build();
- }
- case TRule_type_name_tag::kAltTypeNameTag3: {
- TString bindName;
- if (!NamedNodeImpl(node.GetAlt_type_name_tag3().GetRule_bind_parameter1(), bindName, *this)) {
- return {};
- }
- auto namedNode = GetNamedNode(bindName);
- if (!namedNode) {
- return {};
- }
- TDeferredAtom atom;
- MakeTableFromExpression(Ctx, namedNode, atom);
- return atom.Build();
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-TNodePtr TSqlTranslation::TypeSimple(const TRule_type_name_simple& node, bool onlyDataAllowed) {
- const TString origName = Id(node.GetRule_an_id_pure1(), *this);
- if (origName.empty()) {
- return {};
- }
- return BuildSimpleType(Ctx, Ctx.Pos(), origName, onlyDataAllowed);
-}
-
-TNodePtr TSqlTranslation::TypeDecimal(const TRule_type_name_decimal& node) {
- auto pos = Ctx.Pos();
- auto flags = TNodeFlags::Default;
-
- auto paramOne = IntegerOrBind(node.GetRule_integer_or_bind3());
- if (!paramOne) {
- return {};
- }
- auto paramTwo = IntegerOrBind(node.GetRule_integer_or_bind5());
- if (!paramTwo) {
- return {};
- }
- return new TCallNodeImpl(pos, "DataType", { BuildQuotedAtom(pos, "Decimal", flags), paramOne, paramTwo });
-}
-
-TNodePtr TSqlTranslation::AddOptionals(const TNodePtr& node, size_t optionalCount) {
- TNodePtr result = node;
- if (node) {
- TPosition pos = node->GetPos();
- for (size_t i = 0; i < optionalCount; ++i) {
- result = new TCallNodeImpl(pos, "OptionalType", { result });
- }
- }
- return result;
-}
-
-
-TMaybe<std::pair<TVector<TNodePtr>, bool>> TSqlTranslation::CallableArgList(const TRule_callable_arg_list& argList, bool namedArgsStarted) {
- auto pos = Ctx.Pos();
- auto flags = TNodeFlags::Default;
- auto& arg1 = argList.GetRule_callable_arg1();
- auto& varArg = arg1.GetRule_variant_arg1();
- TVector<TNodePtr> result;
- TVector<TNodePtr> items;
- auto typeNode = TypeNodeOrBind(varArg.GetRule_type_name_or_bind2());
- if (!typeNode) {
- return {};
- }
- items.push_back(typeNode);
- if (varArg.HasBlock1()) {
- namedArgsStarted = true;
- auto tag = TypeNameTag(varArg.GetBlock1().GetRule_type_name_tag1());
- if (!tag) {
- return {};
- }
- items.push_back(tag);
- }
- if (arg1.HasBlock2()) {
- if (!varArg.HasBlock1()) {
- items.push_back(BuildQuotedAtom(pos, "", flags));
- }
- items.push_back(BuildQuotedAtom(pos, "1", flags));
- }
- result.push_back(new TAstListNodeImpl(pos, items));
-
- for (auto& arg : argList.GetBlock2()) {
- auto& varArg = arg.GetRule_callable_arg2().GetRule_variant_arg1();
- TVector<TNodePtr> items;
- auto typeNode = TypeNodeOrBind(varArg.GetRule_type_name_or_bind2());
- if (!typeNode) {
- return {};
- }
- items.push_back(typeNode);
- if (varArg.HasBlock1()) {
- auto tag = TypeNameTag(varArg.GetBlock1().GetRule_type_name_tag1());
- if (!tag) {
- return {};
- }
- items.push_back(tag);
- } else {
- if (namedArgsStarted) {
- Ctx.Error() << "Expected named argument, previous argument was named";
- return {};
- }
- items.push_back(BuildQuotedAtom(pos, "", flags));
- }
- if (arg.GetRule_callable_arg2().HasBlock2()) {
- if (!varArg.HasBlock1()) {
- items.push_back(BuildQuotedAtom(pos, "", flags));
- }
- items.push_back(BuildQuotedAtom(pos, "1", flags));
- }
- result.push_back(new TAstListNodeImpl(pos, items));
- }
- return std::make_pair(result, namedArgsStarted);
-}
-
-TNodePtr TSqlTranslation::TypeNodeOrBind(const TRule_type_name_or_bind& node) {
- switch (node.Alt_case()) {
- case TRule_type_name_or_bind::kAltTypeNameOrBind1: {
- return TypeNode(node.GetAlt_type_name_or_bind1().GetRule_type_name1());
- }
- case TRule_type_name_or_bind::kAltTypeNameOrBind2: {
- TString bindName;
- if (!NamedNodeImpl(node.GetAlt_type_name_or_bind2().GetRule_bind_parameter1(), bindName, *this)) {
- return {};
- }
- return GetNamedNode(bindName);
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-TNodePtr TSqlTranslation::TypeNode(const TRule_type_name& node) {
- //type_name:
- // type_name_composite
- // | (type_name_decimal | type_name_simple) QUESTION*;
- if (node.Alt_case() == TRule_type_name::kAltTypeName1) {
- return TypeNode(node.GetAlt_type_name1().GetRule_type_name_composite1());
- }
-
- TNodePtr result;
- TPosition pos = Ctx.Pos();
-
- auto& alt = node.GetAlt_type_name2();
- auto& block = alt.GetBlock1();
- switch (block.Alt_case()) {
- case TRule_type_name::TAlt2::TBlock1::kAlt1: {
- auto& decimalType = block.GetAlt1().GetRule_type_name_decimal1();
- result = TypeDecimal(decimalType);
- break;
- }
- case TRule_type_name::TAlt2::TBlock1::kAlt2: {
- auto& simpleType = block.GetAlt2().GetRule_type_name_simple1();
- result = TypeSimple(simpleType, false);
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- return AddOptionals(result, alt.GetBlock2().size());
-}
-
-TNodePtr TSqlTranslation::TypeNode(const TRule_type_name_composite& node) {
- //type_name_composite:
- // ( type_name_optional
- // | type_name_tuple
- // | type_name_struct
- // | type_name_variant
- // | type_name_list
- // | type_name_stream
- // | type_name_flow
- // | type_name_dict
- // | type_name_set
- // | type_name_enum
- // | type_name_resource
- // | type_name_tagged
- // | type_name_callable
- // ) QUESTION*;
- TNodePtr result;
- TPosition pos = Ctx.Pos();
- auto flags = TNodeFlags::Default;
-
- auto wrapOneParamType = [&] (const TRule_type_name_or_bind& param, const char* type) -> TNodePtr {
- auto node = TypeNodeOrBind(param);
- return node ? new TAstListNodeImpl(pos, { BuildAtom(pos, type, flags), node }) : nullptr;
- };
- auto makeVoid = [&] () -> TNodePtr {
- return new TAstListNodeImpl(pos, { BuildAtom(pos, "VoidType", flags) });
- };
- auto makeQuote = [&] (const TNodePtr& node) -> TNodePtr {
- return new TAstListNodeImpl(pos, { new TAstAtomNodeImpl(pos, "quote", 0), node });
- };
-
- auto& block = node.GetBlock1();
- switch (block.Alt_case()) {
- case TRule_type_name_composite_TBlock1::kAlt1: {
- auto& optionalType = block.GetAlt1().GetRule_type_name_optional1();
- result = wrapOneParamType(optionalType.GetRule_type_name_or_bind3(), "OptionalType");
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt2: {
- auto& tupleType = block.GetAlt2().GetRule_type_name_tuple1();
- TVector<TNodePtr> items;
- items.push_back(BuildAtom(pos, "TupleType", flags));
-
- switch (tupleType.GetBlock2().Alt_case()) {
- case TRule_type_name_tuple::TBlock2::kAlt1: {
- if (tupleType.GetBlock2().GetAlt1().HasBlock2()) {
- auto typeNode = TypeNodeOrBind(tupleType.GetBlock2().GetAlt1().GetBlock2().GetRule_type_name_or_bind1());
- if (!typeNode) {
- return {};
- }
- items.push_back(typeNode);
- for (auto& arg : tupleType.GetBlock2().GetAlt1().GetBlock2().GetBlock2()) {
- auto typeNode = TypeNodeOrBind(arg.GetRule_type_name_or_bind2());
- if (!typeNode) {
- return {};
- }
- items.push_back(typeNode);
- }
- }
- [[fallthrough]]; // AUTOGENERATED_FALLTHROUGH_FIXME
- }
- case TRule_type_name_tuple::TBlock2::kAlt2:
- break;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- result = new TAstListNodeImpl(pos, items);
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt3: {
- auto& structType = block.GetAlt3().GetRule_type_name_struct1();
- TVector<TNodePtr> items;
- items.push_back(BuildAtom(pos, "StructType", flags));
-
- switch (structType.GetBlock2().Alt_case()) {
- case TRule_type_name_struct::TBlock2::kAlt1: {
- if (structType.GetBlock2().GetAlt1().HasBlock2()) {
- auto& structArg = structType.GetBlock2().GetAlt1().GetBlock2().GetRule_struct_arg1();
- auto typeNode = TypeNodeOrBind(structArg.GetRule_type_name_or_bind3());
- if (!typeNode) {
- return {};
- }
- auto tag = TypeNameTag(structArg.GetRule_type_name_tag1());
- if (!tag) {
- return {};
- }
-
- items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, typeNode })));
- for (auto& arg : structType.GetBlock2().GetAlt1().GetBlock2().GetBlock2()) {
- auto typeNode = TypeNodeOrBind(arg.GetRule_struct_arg2().GetRule_type_name_or_bind3());
- if (!typeNode) {
- return {};
- }
- auto tag = TypeNameTag(arg.GetRule_struct_arg2().GetRule_type_name_tag1());
- if (!tag) {
- return {};
- }
- items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, typeNode })));
- }
- }
- [[fallthrough]]; // AUTOGENERATED_FALLTHROUGH_FIXME
- }
- case TRule_type_name_struct::TBlock2::kAlt2:
- break;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- result = new TAstListNodeImpl(pos, items);
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt4: {
- auto& variantType = block.GetAlt4().GetRule_type_name_variant1();
- TVector<TNodePtr> items;
- bool overStruct = false;
- auto& variantArg = variantType.GetRule_variant_arg3();
- auto typeNode = TypeNodeOrBind(variantArg.GetRule_type_name_or_bind2());
- if (!typeNode) {
- return {};
- }
- if (variantArg.HasBlock1()) {
- items.push_back(BuildAtom(pos, "StructType", flags));
- overStruct = true;
- auto tag = TypeNameTag(variantArg.GetBlock1().GetRule_type_name_tag1());
- if (!tag) {
- return {};
- }
- items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, typeNode })));
- } else {
- items.push_back(BuildAtom(pos, "TupleType", flags));
- items.push_back(typeNode);
- }
-
- for (auto& arg : variantType.GetBlock4()) {
- auto typeNode = TypeNodeOrBind(arg.GetRule_variant_arg2().GetRule_type_name_or_bind2());
- if (!typeNode) {
- return {};
- }
- if (overStruct) {
- if (!arg.GetRule_variant_arg2().HasBlock1()) {
- Ctx.Error() << "Variant over struct and tuple mixture";
- return {};
- }
- auto tag = TypeNameTag(arg.GetRule_variant_arg2().GetBlock1().GetRule_type_name_tag1());
- if (!tag) {
- return {};
- }
- items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, typeNode })));
- } else {
- if (arg.GetRule_variant_arg2().HasBlock1()) {
- Ctx.Error() << "Variant over struct and tuple mixture";
- return {};
- }
- items.push_back(typeNode);
- }
- }
- typeNode = new TAstListNodeImpl(pos, items);
- result = new TAstListNodeImpl(pos, { BuildAtom(pos, "VariantType", flags), typeNode });
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt5: {
- auto& listType = block.GetAlt5().GetRule_type_name_list1();
- result = wrapOneParamType(listType.GetRule_type_name_or_bind3(), "ListType");
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt6: {
- auto& streamType = block.GetAlt6().GetRule_type_name_stream1();
- result = wrapOneParamType(streamType.GetRule_type_name_or_bind3(), "StreamType");
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt7: {
- auto& flowType = block.GetAlt7().GetRule_type_name_flow1();
- result = wrapOneParamType(flowType.GetRule_type_name_or_bind3(), "FlowType");
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt8: {
- auto& dictType = block.GetAlt8().GetRule_type_name_dict1();
- TVector<TNodePtr> items;
- items.push_back(BuildAtom(pos, "DictType", flags));
- auto typeNode = TypeNodeOrBind(dictType.GetRule_type_name_or_bind3());
- if (!typeNode) {
- return {};
- }
- items.push_back(typeNode);
- typeNode = TypeNodeOrBind(dictType.GetRule_type_name_or_bind5());
- if (!typeNode) {
- return {};
- }
- items.push_back(typeNode);
- result = new TAstListNodeImpl(pos, items);
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt9: {
- auto& setType = block.GetAlt9().GetRule_type_name_set1();
- auto typeNode = TypeNodeOrBind(setType.GetRule_type_name_or_bind3());
- if (!typeNode) {
- return {};
- }
- result = new TAstListNodeImpl(pos, { BuildAtom(pos, "DictType", flags), typeNode, makeVoid() });
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt10: {
- auto& enumType = block.GetAlt10().GetRule_type_name_enum1();
- TVector<TNodePtr> items;
- items.push_back(BuildAtom(pos, "StructType", flags));
- auto tag = TypeNameTag(enumType.GetRule_type_name_tag3());
- if (!tag) {
- return {};
- }
- items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, makeVoid() })));
- for (auto& arg : enumType.GetBlock4()) {
- auto tag = TypeNameTag(arg.GetRule_type_name_tag2());
- if (!tag) {
- return {};
- }
- items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, makeVoid() })));
- }
- auto typeNode = new TAstListNodeImpl(pos, items);
- result = new TAstListNodeImpl(pos, { BuildAtom(pos, "VariantType", flags), typeNode });
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt11: {
- auto& resourceType = block.GetAlt11().GetRule_type_name_resource1();
- auto tag = TypeNameTag(resourceType.GetRule_type_name_tag3());
- if (!tag) {
- return {};
- }
- result = new TAstListNodeImpl(pos, { BuildAtom(pos, "ResourceType", flags), tag });
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt12: {
- auto& taggedType = block.GetAlt12().GetRule_type_name_tagged1();
- auto typeNode = TypeNodeOrBind(taggedType.GetRule_type_name_or_bind3());
- if (!typeNode) {
- return {};
- }
- auto tag = TypeNameTag(taggedType.GetRule_type_name_tag5());
- if (!tag) {
- return {};
- }
- result = new TAstListNodeImpl(pos, { BuildAtom(pos, "TaggedType", flags), typeNode, tag });
- break;
- }
- case TRule_type_name_composite_TBlock1::kAlt13: {
- auto& callableType = block.GetAlt13().GetRule_type_name_callable1();
- TMaybe<std::pair<TVector<TNodePtr>, bool>> requiredArgs, optionalArgs;
- bool namedArgsStarted = false;
- size_t optionalArgsCount = 0;
- if (callableType.HasBlock4()) {
- auto& argList = callableType.GetBlock4().GetRule_callable_arg_list1();
- requiredArgs = CallableArgList(argList, namedArgsStarted);
- if (!requiredArgs) {
- return {};
- }
- namedArgsStarted = requiredArgs->second;
- }
- if (callableType.HasBlock6()) {
- auto& argList = callableType.GetBlock6().GetRule_callable_arg_list2();
- optionalArgs = CallableArgList(argList, namedArgsStarted);
- if (!optionalArgs) {
- return {};
- }
- optionalArgsCount = optionalArgs->first.size();
- }
- auto returnType = TypeNodeOrBind(callableType.GetRule_type_name_or_bind9());
- if (!returnType) {
- return {};
- }
- TVector<TNodePtr> items;
- items.push_back(BuildAtom(pos, "CallableType", flags));
- if (optionalArgsCount) {
- items.push_back(makeQuote(new TAstListNodeImpl(pos,
- { BuildQuotedAtom(pos, ToString(optionalArgsCount), flags) })));
- } else {
- items.push_back(makeQuote(new TAstListNodeImpl(pos, {})));
- }
- items.push_back(makeQuote(new TAstListNodeImpl(pos, { returnType })));
- if (requiredArgs) {
- for (auto& arg: requiredArgs->first) {
- items.push_back(makeQuote(arg));
- }
- }
- if (optionalArgs) {
- for (auto& arg: optionalArgs->first) {
- items.push_back(makeQuote(arg));
- }
- }
- result = new TAstListNodeImpl(pos, items);
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- return AddOptionals(result, node.GetBlock2().size());
-}
-
-bool Expr(TSqlExpression& sqlExpr, TVector<TNodePtr>& exprNodes, const TRule_expr& node) {
- TNodePtr exprNode = sqlExpr.Build(node);
- if (!exprNode) {
- return false;
- }
- exprNodes.push_back(exprNode);
- return true;
-}
-
-bool ExprList(TSqlExpression& sqlExpr, TVector<TNodePtr>& exprNodes, const TRule_expr_list& node) {
- if (!Expr(sqlExpr, exprNodes, node.GetRule_expr1())) {
- return false;
- }
- for (auto b: node.GetBlock2()) {
- sqlExpr.Token(b.GetToken1());
- if (!Expr(sqlExpr, exprNodes, b.GetRule_expr2())) {
- return false;
- }
- }
- return true;
-}
-
-TNodePtr TSqlTranslation::ValueConstructorLiteral(const TRule_value_constructor_literal& node) {
- return BuildLiteralSmartString(Ctx, Token(node.GetToken1()));
-}
-
-TNodePtr TSqlTranslation::ValueConstructor(const TRule_value_constructor& node) {
- TSqlCallExpr call(Ctx, Mode);
- if (!call.Init(node)) {
- return {};
- }
- return call.BuildCall();
-}
-
-TNodePtr TSqlTranslation::ListLiteral(const TRule_list_literal& node) {
- TVector<TNodePtr> values;
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "AsList", TNodeFlags::Default));
-
- TSqlExpression sqlExpr(Ctx, Mode);
- if (node.HasBlock2() && !ExprList(sqlExpr, values, node.GetBlock2().GetRule_expr_list1())) {
- return nullptr;
- }
-
- return new TAstListNodeImpl(Ctx.Pos(), std::move(values));
-}
-
-TNodePtr TSqlTranslation::DictLiteral(const TRule_dict_literal& node) {
- TVector<TNodePtr> values;
- if (node.HasBlock2()) {
- const auto& list = node.GetBlock2().GetRule_expr_dict_list1();
- const bool isSet = !list.HasBlock2();
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), isSet ? "AsSet" : "AsDict", TNodeFlags::Default));
- TSqlExpression sqlExpr(Ctx, Mode);
- if (isSet) {
- if (!Expr(sqlExpr, values, list.GetRule_expr1())) {
- return nullptr;
- }
- } else {
- TVector<TNodePtr> tupleItems;
- if (!Expr(sqlExpr, tupleItems, list.GetRule_expr1())) {
- return nullptr;
- }
-
- if (!Expr(sqlExpr, tupleItems, list.GetBlock2().GetRule_expr2())) {
- return nullptr;
- }
-
- values.push_back(new TTupleNode(Ctx.Pos(), std::move(tupleItems)));
- }
-
- for (auto& b : list.GetBlock3()) {
- sqlExpr.Token(b.GetToken1());
- const bool isSetCurr = !b.HasBlock3();
- if (isSetCurr != isSet) {
- Error() << "Expected keys/values pair or keys, but got mix of them";
- return nullptr;
- }
-
- if (isSet) {
- if (!Expr(sqlExpr, values, b.GetRule_expr2())) {
- return nullptr;
- }
- } else {
- TVector<TNodePtr> tupleItems;
- if (!Expr(sqlExpr, tupleItems, b.GetRule_expr2())) {
- return nullptr;
- }
-
- if (!Expr(sqlExpr, tupleItems, b.GetBlock3().GetRule_expr2())) {
- return nullptr;
- }
-
- values.push_back(new TTupleNode(Ctx.Pos(), std::move(tupleItems)));
- }
- }
- } else {
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "AsDict", TNodeFlags::Default));
- }
-
- return new TAstListNodeImpl(Ctx.Pos(), std::move(values));
-}
-
-bool TSqlTranslation::StructLiteralItem(TVector<TNodePtr>& labels, const TRule_expr& label, TVector<TNodePtr>& values, const TRule_expr& value) {
- // label expr
- {
- TColumnRefScope scope(Ctx, EColumnRefState::AsStringLiteral, /* topLevel */ false);
- TSqlExpression sqlExpr(Ctx, Mode);
- if (!Expr(sqlExpr, labels, label)) {
- return false;
- }
-
- TDeferredAtom atom;
- MakeTableFromExpression(Ctx, labels.back(), atom);
- labels.back() = atom.Build();
- if (!labels.back()) {
- return false;
- }
- }
-
- // value expr
- {
- TSqlExpression sqlExpr(Ctx, Mode);
- if (!Expr(sqlExpr, values, value)) {
- return false;
- }
- }
-
- return true;
-}
-
-TNodePtr TSqlTranslation::StructLiteral(const TRule_struct_literal& node) {
- TVector<TNodePtr> labels;
- TVector<TNodePtr> values;
- TPosition pos = Ctx.TokenPosition(node.GetToken1());
- if (node.HasBlock2()) {
- const auto& list = node.GetBlock2().GetRule_expr_struct_list1();
-
- if (!StructLiteralItem(labels, list.GetRule_expr1(), values, list.GetRule_expr3())) {
- return {};
- }
-
- for (auto& b : list.GetBlock4()) {
- if (!StructLiteralItem(labels, b.GetRule_expr2(), values, b.GetRule_expr4())) {
- return {};
- }
- }
- }
- return BuildStructure(pos, values, labels);
-}
-
-bool TSqlTranslation::TableHintImpl(const TRule_table_hint& rule, TTableHints& hints) {
- // table_hint:
- // an_id_hint (EQUALS (type_name_tag | LPAREN type_name_tag (COMMA type_name_tag)* COMMA? RPAREN))?
- // | (SCHEMA | COLUMNS) EQUALS? type_name_or_bind
- // | SCHEMA EQUALS? LPAREN (struct_arg_positional (COMMA struct_arg_positional)*)? COMMA? RPAREN
- switch (rule.Alt_case()) {
- case TRule_table_hint::kAltTableHint1: {
- const auto& alt = rule.GetAlt_table_hint1();
- const TString id = Id(alt.GetRule_an_id_hint1(), *this);
- const auto idLower = to_lower(id);
- if (idLower == "schema" || idLower == "columns") {
- Error() << "Expected type after " << to_upper(id);
- return false;
- }
- TVector<TNodePtr> hint_val;
- if (alt.HasBlock2()) {
- auto& tags = alt.GetBlock2().GetBlock2();
- switch (tags.Alt_case()) {
- case TRule_table_hint_TAlt1_TBlock2_TBlock2::kAlt1:
- hint_val.push_back(TypeNameTag(tags.GetAlt1().GetRule_type_name_tag1()));
- break;
- case TRule_table_hint_TAlt1_TBlock2_TBlock2::kAlt2: {
- hint_val.push_back(TypeNameTag(tags.GetAlt2().GetRule_type_name_tag2()));
- for (auto& tag : tags.GetAlt2().GetBlock3()) {
- hint_val.push_back(TypeNameTag(tag.GetRule_type_name_tag2()));
- }
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- }
- hints[id] = hint_val;
- break;
- }
-
- case TRule_table_hint::kAltTableHint2: {
- const auto& alt2 = rule.GetAlt_table_hint2();
- auto node = TypeNodeOrBind(alt2.GetRule_type_name_or_bind3());
- if (!node) {
- return false;
- }
-
- hints["user_" + to_lower(alt2.GetToken1().GetValue())] = { node };
- break;
- }
-
- case TRule_table_hint::kAltTableHint3: {
- const auto& alt = rule.GetAlt_table_hint3();
- TVector<TNodePtr> labels;
- TVector<TNodePtr> structTypeItems;
- if (alt.HasBlock4()) {
- bool warn = false;
- auto processItem = [&](const TRule_struct_arg_positional& arg) {
- // struct_arg_positional:
- // type_name_tag type_name_or_bind (NOT? NULL)?
- // | type_name_or_bind AS type_name_tag; //deprecated
- const bool altCurrent = arg.Alt_case() == TRule_struct_arg_positional::kAltStructArgPositional1;
- auto& typeNameOrBind = altCurrent ?
- arg.GetAlt_struct_arg_positional1().GetRule_type_name_or_bind2() :
- arg.GetAlt_struct_arg_positional2().GetRule_type_name_or_bind1();
- auto typeNode = TypeNodeOrBind(typeNameOrBind);
- if (!typeNode) {
- return false;
- }
-
- auto pos = Ctx.Pos();
- if (!altCurrent && !warn) {
- Ctx.Warning(pos, TIssuesIds::YQL_DEPRECATED_POSITIONAL_SCHEMA)
- << "Deprecated syntax for positional schema: please use 'column type' instead of 'type AS column'";
- warn = true;
- }
-
- if (altCurrent) {
- bool notNull = arg.GetAlt_struct_arg_positional1().HasBlock3() && arg.GetAlt_struct_arg_positional1().GetBlock3().HasBlock1();
- if (!notNull) {
- typeNode = new TCallNodeImpl(pos, "AsOptionalType", { typeNode });
- }
- }
-
- auto& typeNameTag = altCurrent ?
- arg.GetAlt_struct_arg_positional1().GetRule_type_name_tag1() :
- arg.GetAlt_struct_arg_positional2().GetRule_type_name_tag3();
- auto tag = TypeNameTag(typeNameTag);
- if (!tag) {
- return false;
- }
-
- labels.push_back(tag);
- structTypeItems.push_back(BuildTuple(pos, { tag, typeNode }));
- return true;
- };
-
- if (!processItem(alt.GetBlock4().GetRule_struct_arg_positional1())) {
- return false;
- }
-
- for (auto& entry : alt.GetBlock4().GetBlock2()) {
- if (!processItem(entry.GetRule_struct_arg_positional2())) {
- return false;
- }
- }
- }
-
- TPosition pos = Ctx.TokenPosition(alt.GetToken1());
- auto labelsTuple = BuildTuple(pos, labels);
- TNodePtr structType = new TCallNodeImpl(pos, "StructType", structTypeItems);
-
- hints["user_" + to_lower(alt.GetToken1().GetValue())] = { structType, labelsTuple };
- break;
- }
-
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- return true;
-}
-
-TMaybe<TTableHints> TSqlTranslation::TableHintsImpl(const TRule_table_hints& node) {
- TTableHints hints;
- auto& block = node.GetBlock2();
- bool hasErrors = false;
- switch (block.Alt_case()) {
- case TRule_table_hints::TBlock2::kAlt1: {
- hasErrors = !TableHintImpl(block.GetAlt1().GetRule_table_hint1(), hints);
- break;
- }
- case TRule_table_hints::TBlock2::kAlt2: {
- hasErrors = !TableHintImpl(block.GetAlt2().GetRule_table_hint2(), hints);
- for (const auto& x : block.GetAlt2().GetBlock3()) {
- hasErrors = hasErrors || !TableHintImpl(x.GetRule_table_hint2(), hints);
- }
-
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- if (hasErrors) {
- return Nothing();
- }
-
- return hints;
-}
-
-bool TSqlTranslation::SimpleTableRefImpl(const TRule_simple_table_ref& node, TTableRef& result) {
- // simple_table_ref: simple_table_ref_core table_hints?;
- if (!SimpleTableRefCoreImpl(node.GetRule_simple_table_ref_core1(), result)) {
- return false;
- }
-
- TTableHints hints = GetContextHints(Context());
- if (node.HasBlock2()) {
- auto tmp = TableHintsImpl(node.GetBlock2().GetRule_table_hints1());
- if (!tmp) {
- Error() << "Failed to parse table hints";
- return false;
- }
-
- hints = *tmp;
- }
-
- if (!hints.empty()) {
- result.Options = BuildInputOptions(Context().Pos(), hints);
- }
-
- return true;
-}
-
-bool TSqlTranslation::SimpleTableRefCoreImpl(const TRule_simple_table_ref_core& node, TTableRef& result) {
- // simple_table_ref_core: ((cluster_expr DOT)? id_or_at) | AT? bind_parameter;
- TString service = Context().Scoped->CurrService;
- TDeferredAtom cluster = Context().Scoped->CurrCluster;
- switch (node.Alt_case()) {
- case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore1: {
- if (node.GetAlt_simple_table_ref_core1().GetRule_object_ref1().HasBlock1()) {
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
- Error() << "Cluster should not be used in limited view";
- return false;
- }
-
- if (!ClusterExpr(node.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetBlock1().GetRule_cluster_expr1(), false, service, cluster)) {
- return false;
- }
- }
-
- if (cluster.Empty()) {
- Error() << "No cluster name given and no default cluster is selected";
- return false;
- }
-
- result = TTableRef(Context().MakeName("table"), service, cluster, nullptr);
- auto tableOrAt = Id(node.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetRule_id_or_at2(), *this);
- auto tableAndView = TableKeyImpl(tableOrAt, "", *this);
- result.Keys = BuildTableKey(Context().Pos(), result.Service, result.Cluster,
- TDeferredAtom(Context().Pos(), tableAndView.first), tableAndView.second);
- break;
- }
- case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore2: {
- if (cluster.Empty()) {
- Error() << "No cluster name given and no default cluster is selected";
- return false;
- }
-
- auto at = node.GetAlt_simple_table_ref_core2().HasBlock1();
- TString bindName;
- if (!NamedNodeImpl(node.GetAlt_simple_table_ref_core2().GetRule_bind_parameter2(), bindName, *this)) {
- return false;
- }
- auto named = GetNamedNode(bindName);
- if (!named) {
- return false;
- }
-
- TDeferredAtom table;
- MakeTableFromExpression(Context(), named, table);
- result = TTableRef(Context().MakeName("table"), service, cluster, nullptr);
- result.Keys = BuildTableKey(Context().Pos(), result.Service, result.Cluster, table, at ? "@" : "");
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- return result.Keys != nullptr;
-}
-
-bool TSqlTranslation::TopicRefImpl(const TRule_topic_ref& node, TTopicRef& result) {
- TString service = Context().Scoped->CurrService;
- TDeferredAtom cluster = Context().Scoped->CurrCluster;
- if (node.HasBlock1()) {
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
- Error() << "Cluster should not be used in limited view";
- return false;
- }
-
- if (!ClusterExpr(node.GetBlock1().GetRule_cluster_expr1(), false, service, cluster)) {
- return false;
- }
- }
-
- if (cluster.Empty()) {
- Error() << "No cluster name given and no default cluster is selected";
- return false;
- }
-
- result = TTopicRef(Context().MakeName("topic"), cluster, nullptr);
- auto topic = Id(node.GetRule_an_id2(), *this);
- result.Keys = BuildTopicKey(Context().Pos(), result.Cluster, TDeferredAtom(Context().Pos(), topic));
-
- return true;
-}
-
-bool TSqlCallExpr::Init(const TRule_value_constructor& node) {
- switch (node.Alt_case()) {
- case TRule_value_constructor::kAltValueConstructor1: {
- auto& ctor = node.GetAlt_value_constructor1();
- Func = "Variant";
- TSqlExpression expr(Ctx, Mode);
- if (!Expr(expr, Args, ctor.GetRule_expr3())) {
- return false;
- }
- if (!Expr(expr, Args, ctor.GetRule_expr5())) {
- return false;
- }
- if (!Expr(expr, Args, ctor.GetRule_expr7())) {
- return false;
- }
- break;
- }
- case TRule_value_constructor::kAltValueConstructor2: {
- auto& ctor = node.GetAlt_value_constructor2();
- Func = "Enum";
- TSqlExpression expr(Ctx, Mode);
- if (!Expr(expr, Args, ctor.GetRule_expr3())) {
- return false;
- }
- if (!Expr(expr, Args, ctor.GetRule_expr5())) {
- return false;
- }
- break;
- }
- case TRule_value_constructor::kAltValueConstructor3: {
- auto& ctor = node.GetAlt_value_constructor3();
- Func = "Callable";
- TSqlExpression expr(Ctx, Mode);
- if (!Expr(expr, Args, ctor.GetRule_expr3())) {
- return false;
- }
- if (!Expr(expr, Args, ctor.GetRule_expr5())) {
- return false;
- }
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- PositionalArgs = Args;
- return true;
-}
-
-bool TSqlCallExpr::ExtractCallParam(const TRule_external_call_param& node) {
- TString paramName = Id(node.GetRule_an_id1(), *this);
- paramName = to_lower(paramName);
-
- if (CallConfig.contains(paramName)) {
- Ctx.Error() << "WITH " << to_upper(paramName).Quote()
- << " clause should be specified only once";
- return false;
- }
-
- const bool optimizeForParam = paramName == "optimize_for";
- const auto columnRefState = optimizeForParam ? EColumnRefState::AsStringLiteral : EColumnRefState::Deny;
-
- TColumnRefScope scope(Ctx, columnRefState);
- if (optimizeForParam) {
- scope.SetNoColumnErrContext("in external call params");
- }
-
- TSqlExpression expression(Ctx, Mode);
- auto value = expression.Build(node.GetRule_expr3());
- if (value && optimizeForParam) {
- TDeferredAtom atom;
- MakeTableFromExpression(Ctx, value, atom);
- value = new TCallNodeImpl(Ctx.Pos(), "String", { atom.Build() });
- }
-
- if (!value) {
- return false;
- }
-
- CallConfig[paramName] = value;
- return true;
-}
-
-bool TSqlCallExpr::ConfigureExternalCall(const TRule_external_call_settings& node) {
- bool success = ExtractCallParam(node.GetRule_external_call_param1());
- for (auto& block: node.GetBlock2()) {
- success = ExtractCallParam(block.GetRule_external_call_param2()) && success;
- }
-
- return success;
-}
-
-bool TSqlCallExpr::Init(const TRule_using_call_expr& node) {
- // using_call_expr: ((an_id_or_type NAMESPACE an_id_or_type) | an_id_expr | bind_parameter | (EXTERNAL FUNCTION)) invoke_expr;
- const auto& block = node.GetBlock1();
- switch (block.Alt_case()) {
- case TRule_using_call_expr::TBlock1::kAlt1: {
- auto& subblock = block.GetAlt1().GetBlock1();
- Module = Id(subblock.GetRule_an_id_or_type1(), *this);
- Func = Id(subblock.GetRule_an_id_or_type3(), *this);
- break;
- }
- case TRule_using_call_expr::TBlock1::kAlt2: {
- Func = Id(block.GetAlt2().GetRule_an_id_expr1(), *this);
- break;
- }
- case TRule_using_call_expr::TBlock1::kAlt3: {
- TString bindName;
- if (!NamedNodeImpl(block.GetAlt3().GetRule_bind_parameter1(), bindName, *this)) {
- return false;
- }
- Node = GetNamedNode(bindName);
- if (!Node) {
- return false;
- }
- break;
- }
- case TRule_using_call_expr::TBlock1::kAlt4: {
- IsExternalCall = true;
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- YQL_ENSURE(!DistinctAllowed);
- UsingCallExpr = true;
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- return Init(node.GetRule_invoke_expr2());
-}
-
-void TSqlCallExpr::InitName(const TString& name) {
- Module = "";
- Func = name;
-}
-
-void TSqlCallExpr::InitExpr(const TNodePtr& expr) {
- Node = expr;
-}
-
-bool TSqlCallExpr::FillArg(const TString& module, const TString& func, size_t& idx, const TRule_named_expr& node) {
- const bool isNamed = node.HasBlock2();
-
- TMaybe<EColumnRefState> status;
- // TODO: support named args
- if (!isNamed) {
- status = GetFunctionArgColumnStatus(Ctx, module, func, idx);
- }
-
- TNodePtr expr;
- if (status) {
- TColumnRefScope scope(Ctx, *status, /* isTopLevel = */ false);
- expr = NamedExpr(node);
- } else {
- expr = NamedExpr(node);
- }
-
- if (!expr) {
- return false;
- }
-
- Args.emplace_back(std::move(expr));
- if (!isNamed) {
- ++idx;
- }
- return true;
-}
-
-bool TSqlCallExpr::FillArgs(const TRule_named_expr_list& node) {
- TString module = Module;
- TString func = Func;
- if (Node && Node->FuncName()) {
- module = Node->ModuleName() ? *Node->ModuleName() : "YQL";
- func = *Node->FuncName();
- }
-
- size_t idx = 0;
- if (!FillArg(module, func, idx, node.GetRule_named_expr1())) {
- return false;
- }
-
- for (auto& b: node.GetBlock2()) {
- if (!FillArg(module, func, idx, b.GetRule_named_expr2())) {
- return false;
- }
- }
-
- return true;
-}
-
-bool TSqlCallExpr::Init(const TRule_invoke_expr& node) {
- // invoke_expr: LPAREN (opt_set_quantifier named_expr_list COMMA? | ASTERISK)? RPAREN invoke_expr_tail;
- // invoke_expr_tail:
- // (null_treatment | filter_clause)? (OVER window_name_or_specification)?
- // ;
- Pos = Ctx.Pos();
- if (node.HasBlock2()) {
- switch (node.GetBlock2().Alt_case()) {
- case TRule_invoke_expr::TBlock2::kAlt1: {
- const auto& alt = node.GetBlock2().GetAlt1();
- TPosition distinctPos;
- if (IsDistinctOptSet(alt.GetRule_opt_set_quantifier1(), distinctPos)) {
- if (!DistinctAllowed) {
- if (UsingCallExpr) {
- Ctx.Error(distinctPos) << "DISTINCT can not be used in PROCESS/REDUCE";
- } else {
- Ctx.Error(distinctPos) << "DISTINCT can only be used in aggregation functions";
- }
- return false;
- }
- YQL_ENSURE(AggMode == EAggregateMode::Normal);
- AggMode = EAggregateMode::Distinct;
- Ctx.IncrementMonCounter("sql_features", "DistinctInCallExpr");
- }
- if (!FillArgs(alt.GetRule_named_expr_list2())) {
- return false;
- }
- for (const auto& arg : Args) {
- if (arg->GetLabel()) {
- NamedArgs.push_back(arg);
- }
- else {
- PositionalArgs.push_back(arg);
- if (!NamedArgs.empty()) {
- Ctx.Error(arg->GetPos()) << "Unnamed arguments can not follow after named one";
- return false;
- }
- }
- }
- break;
- }
- case TRule_invoke_expr::TBlock2::kAlt2:
- if (IsExternalCall) {
- Ctx.Error() << "You should set EXTERNAL FUNCTION type. Example: EXTERNAL FUNCTION('YANDEX-CLOUD', ...)";
- } else {
- Args.push_back(new TAsteriskNode(Pos));
- }
- break;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- }
-
- const auto& tail = node.GetRule_invoke_expr_tail4();
-
- if (tail.HasBlock1()) {
- if (IsExternalCall) {
- Ctx.Error() << "Additional clause after EXTERNAL FUNCTION(...) is not supported";
- return false;
- }
-
- switch (tail.GetBlock1().Alt_case()) {
- case TRule_invoke_expr_tail::TBlock1::kAlt1: {
- if (!tail.HasBlock2()) {
- Ctx.Error() << "RESPECT/IGNORE NULLS can only be used with window functions";
- return false;
- }
- const auto& alt = tail.GetBlock1().GetAlt1();
- if (alt.GetRule_null_treatment1().Alt_case() == TRule_null_treatment::kAltNullTreatment2) {
- SetIgnoreNulls();
- }
- break;
- }
- case TRule_invoke_expr_tail::TBlock1::kAlt2: {
- Ctx.Error() << "FILTER clause is not supported yet";
- return false;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- }
-
- if (tail.HasBlock2()) {
- if (AggMode == EAggregateMode::Distinct) {
- Ctx.Error() << "DISTINCT is not yet supported in window functions";
- return false;
- }
- SetOverWindow();
- auto winRule = tail.GetBlock2().GetRule_window_name_or_specification2();
- switch (winRule.Alt_case()) {
- case TRule_window_name_or_specification::kAltWindowNameOrSpecification1: {
- WindowName = Id(winRule.GetAlt_window_name_or_specification1().GetRule_window_name1().GetRule_an_id_window1(), *this);
- break;
- }
- case TRule_window_name_or_specification::kAltWindowNameOrSpecification2: {
- if (!Ctx.WinSpecsScopes) {
- auto pos = Ctx.TokenPosition(tail.GetBlock2().GetToken1());
- Ctx.Error(pos) << "Window and aggregation functions are not allowed in this context";
- return false;
- }
-
- TWindowSpecificationPtr spec = WindowSpecification(
- winRule.GetAlt_window_name_or_specification2().GetRule_window_specification1().GetRule_window_specification_details2());
- if (!spec) {
- return false;
- }
-
- WindowName = Ctx.MakeName("_yql_anonymous_window");
- TWinSpecs& specs = Ctx.WinSpecsScopes.back();
- YQL_ENSURE(!specs.contains(WindowName));
- specs[WindowName] = spec;
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- Ctx.IncrementMonCounter("sql_features", "WindowFunctionOver");
- }
-
- return true;
-}
-
-void TSqlCallExpr::IncCounters() {
- if (Node) {
- Ctx.IncrementMonCounter("sql_features", "NamedNodeUseApply");
- } else if (!Module.empty()) {
- if (ValidateForCounters(Module)) {
- Ctx.IncrementMonCounter("udf_modules", Module);
- Ctx.IncrementMonCounter("sql_features", "CallUdf");
- if (ValidateForCounters(Func)) {
- auto scriptType = NKikimr::NMiniKQL::ScriptTypeFromStr(Module);
- if (scriptType == NKikimr::NMiniKQL::EScriptType::Unknown) {
- Ctx.IncrementMonCounter("udf_functions", Module + "." + Func);
- }
- }
- }
- } else if (ValidateForCounters(Func)) {
- Ctx.IncrementMonCounter("sql_builtins", Func);
- Ctx.IncrementMonCounter("sql_features", "CallBuiltin");
- }
-}
-
-class TSqlSelect: public TSqlTranslation {
-public:
- TSqlSelect(TContext& ctx, NSQLTranslation::ESqlMode mode)
- : TSqlTranslation(ctx, mode)
- {
- }
-
- TSourcePtr Build(const TRule_select_stmt& node, TPosition& selectPos);
- TSourcePtr Build(const TRule_select_unparenthesized_stmt& node, TPosition& selectPos);
-
-private:
- bool SelectTerm(TVector<TNodePtr>& terms, const TRule_result_column& node);
- bool ValidateSelectColumns(const TVector<TNodePtr>& terms);
- bool ColumnName(TVector<TNodePtr>& keys, const TRule_column_name& node);
- bool ColumnName(TVector<TNodePtr>& keys, const TRule_without_column_name& node);
- template<typename TRule>
- bool ColumnList(TVector<TNodePtr>& keys, const TRule& node);
- bool NamedColumn(TVector<TNodePtr>& columnList, const TRule_named_column& node);
- TSourcePtr SingleSource(const TRule_single_source& node, const TVector<TString>& derivedColumns, TPosition derivedColumnsPos, bool unorderedSubquery);
- TSourcePtr NamedSingleSource(const TRule_named_single_source& node, bool unorderedSubquery);
- bool FlattenByArg(const TString& sourceLabel, TVector<TNodePtr>& flattenByColumns, TVector<TNodePtr>& flattenByExprs, const TRule_flatten_by_arg& node);
- TSourcePtr FlattenSource(const TRule_flatten_source& node);
- TSourcePtr JoinSource(const TRule_join_source& node);
- bool JoinOp(ISource* join, const TRule_join_source::TBlock3& block, TMaybe<TPosition> anyPos);
- TNodePtr JoinExpr(ISource*, const TRule_join_constraint& node);
- TSourcePtr ProcessCore(const TRule_process_core& node, const TWriteSettings& settings, TPosition& selectPos);
- TSourcePtr ReduceCore(const TRule_reduce_core& node, const TWriteSettings& settings, TPosition& selectPos);
-
- struct TSelectKindPlacement {
- bool IsFirstInSelectOp = false;
- bool IsLastInSelectOp = false;
- };
-
- TSourcePtr SelectCore(const TRule_select_core& node, const TWriteSettings& settings, TPosition& selectPos,
- TMaybe<TSelectKindPlacement> placement, TVector<TSortSpecificationPtr>& selectOpOrederBy, bool& selectOpAssumeOrderBy);
-
- bool WindowDefinition(const TRule_window_definition& node, TWinSpecs& winSpecs);
- bool WindowClause(const TRule_window_clause& node, TWinSpecs& winSpecs);
-
- struct TSelectKindResult {
- TSourcePtr Source;
- TWriteSettings Settings;
-
- TVector<TSortSpecificationPtr> SelectOpOrderBy;
- bool SelectOpAssumeOrderBy = false;
- TNodePtr SelectOpSkipTake;
-
- inline explicit operator bool() const {
- return static_cast<bool>(Source);
- }
- };
-
- bool ValidateLimitOrderByWithSelectOp(TMaybe<TSelectKindPlacement> placement, TStringBuf what);
- bool NeedPassLimitOrderByToUnderlyingSelect(TMaybe<TSelectKindPlacement> placement);
-
- template<typename TRule>
- TSourcePtr Build(const TRule& node, TPosition pos, TSelectKindResult&& first);
-
-
- TSelectKindResult SelectKind(const TRule_select_kind& node, TPosition& selectPos, TMaybe<TSelectKindPlacement> placement);
- TSelectKindResult SelectKind(const TRule_select_kind_partial& node, TPosition& selectPos, TMaybe<TSelectKindPlacement> placement);
- TSelectKindResult SelectKind(const TRule_select_kind_parenthesis& node, TPosition& selectPos, TMaybe<TSelectKindPlacement> placement);
-};
-
-class TSqlValues: public TSqlTranslation {
-public:
- TSqlValues(TContext& ctx, NSQLTranslation::ESqlMode mode)
- : TSqlTranslation(ctx, mode)
- {
- }
-
- TSourcePtr Build(const TRule_values_stmt& node, TPosition& valuesPos, const TVector<TString>& derivedColumns = {}, TPosition derivedColumnsPos = TPosition());
-protected:
- bool BuildRows(const TRule_values_source_row_list& node, TVector<TVector<TNodePtr>>& rows);
-
-private:
- bool BuildRow(const TRule_values_source_row& inRow, TVector<TNodePtr>& outRow);
-};
-
-class TGroupByClause: public TSqlTranslation {
- enum class EGroupByFeatures {
- Begin,
- Ordinary = Begin,
- Expression,
- Rollup,
- Cube,
- GroupingSet,
- Empty,
- End,
- };
- typedef TEnumBitSet<EGroupByFeatures, static_cast<int>(EGroupByFeatures::Begin), static_cast<int>(EGroupByFeatures::End)> TGroupingSetFeatures;
-
- class TGroupByClauseCtx: public TSimpleRefCount<TGroupByClauseCtx> {
- public:
- typedef TIntrusivePtr<TGroupByClauseCtx> TPtr;
-
- TGroupingSetFeatures GroupFeatures;
- TMap<TString, TNodePtr> NodeAliases;
- size_t UnnamedCount = 0;
- };
-
-public:
- TGroupByClause(TContext& ctx, NSQLTranslation::ESqlMode mode, TGroupByClauseCtx::TPtr groupSetContext = {})
- : TSqlTranslation(ctx, mode)
- , GroupSetContext(groupSetContext ? groupSetContext : TGroupByClauseCtx::TPtr(new TGroupByClauseCtx()))
- , CompactGroupBy(false)
- {}
-
- bool Build(const TRule_group_by_clause& node);
- bool ParseList(const TRule_grouping_element_list& groupingListNode, EGroupByFeatures featureContext);
-
- void SetFeatures(const TString& field) const;
- TVector<TNodePtr>& Content();
- TMap<TString, TNodePtr>& Aliases();
- TLegacyHoppingWindowSpecPtr GetLegacyHoppingWindow() const;
- bool IsCompactGroupBy() const;
- TString GetSuffix() const;
-
-private:
- TMaybe<TVector<TNodePtr>> MultiplyGroupingSets(const TVector<TNodePtr>& lhs, const TVector<TNodePtr>& rhs) const;
- bool ResolveGroupByAndGrouping();
- bool GroupingElement(const TRule_grouping_element& node, EGroupByFeatures featureContext);
- void FeedCollection(const TNodePtr& elem, TVector<TNodePtr>& collection, bool& hasEmpty) const;
- bool OrdinaryGroupingSet(const TRule_ordinary_grouping_set& node, EGroupByFeatures featureContext);
- bool OrdinaryGroupingSetList(const TRule_ordinary_grouping_set_list& node, EGroupByFeatures featureContext);
- bool HoppingWindow(const TRule_hopping_window_specification& node);
-
- bool AllowUnnamed(TPosition pos, EGroupByFeatures featureContext);
-
- TGroupingSetFeatures& Features();
- const TGroupingSetFeatures& Features() const;
- bool AddAlias(const TString& label, const TNodePtr& node);
- TString GenerateGroupByExprName();
- bool IsAutogenerated(const TString* name) const;
-
- TVector<TNodePtr> GroupBySet;
- TGroupByClauseCtx::TPtr GroupSetContext;
- TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec; // stream queries
- static const TString AutogenerateNamePrefix;
- bool CompactGroupBy;
- TString Suffix;
-};
-
-const TString TGroupByClause::AutogenerateNamePrefix = "group";
-
-bool ParseNumbers(TContext& ctx, const TString& strOrig, ui64& value, TString& suffix) {
- const auto str = to_lower(strOrig);
- const auto strLen = str.size();
- ui64 base = 10;
- if (strLen > 2 && str[0] == '0') {
- const auto formatChar = str[1];
- if (formatChar == 'x') {
- base = 16;
- } else if (formatChar == 'o') {
- base = 8;
- } else if (formatChar == 'b') {
- base = 2;
- }
- }
- if (strLen > 1) {
- auto iter = str.cend() - 1;
- if (*iter == 'l' || *iter == 's' || *iter == 't' || *iter == 's' || *iter == 'i' || *iter == 'b' || *iter == 'n') {
- --iter;
- }
- if (*iter == 'u' || *iter == 'p') {
- --iter;
- }
- suffix = TString(++iter, str.cend());
- }
- value = 0;
- const TString digString(str.begin() + (base == 10 ? 0 : 2), str.end() - suffix.size());
- for (const char& cur: digString) {
- const ui64 curDigit = Char2DigitTable[static_cast<int>(cur)];
- if (curDigit >= base) {
- ctx.Error(ctx.Pos()) << "Failed to parse number from string: " << strOrig << ", char: '" << cur <<
- "' is out of base: " << base;
- return false;
- }
-
- ui64 curValue = value;
- value *= base;
- bool overflow = ((value / base) != curValue);
- if (!overflow) {
- curValue = value;
- value += curDigit;
- overflow = value < curValue;
- }
-
- if (overflow) {
- ctx.Error(ctx.Pos()) << "Failed to parse number from string: " << strOrig << ", number limit overflow";
- return false;
- }
- }
- return true;
-}
-
-TNodePtr LiteralNumber(TContext& ctx, const TRule_integer& node) {
- const TString intergerString = ctx.Token(node.GetToken1());
- if (to_lower(intergerString).EndsWith("pn")) {
- // TODO: add validation
- return new TLiteralNode(ctx.Pos(), "PgNumeric", intergerString.substr(0, intergerString.size() - 2));
- }
-
- ui64 value;
- TString suffix;
- if (!ParseNumbers(ctx, intergerString, value, suffix)) {
- return {};
- }
-
- const bool noSpaceForInt32 = value >> 31;
- const bool noSpaceForInt64 = value >> 63;
- if (suffix == "") {
- bool implicitType = true;
- if (noSpaceForInt64) {
- return new TLiteralNumberNode<ui64>(ctx.Pos(), "Uint64", ToString(value), implicitType);
- } else if (noSpaceForInt32) {
- return new TLiteralNumberNode<i64>(ctx.Pos(), "Int64", ToString(value), implicitType);
- }
- return new TLiteralNumberNode<i32>(ctx.Pos(), "Int32", ToString(value), implicitType);
- } else if (suffix == "p") {
- bool implicitType = true;
- if (noSpaceForInt64) {
- ctx.Error(ctx.Pos()) << "Failed to parse number from string: " << intergerString << ", 64 bit signed integer overflow";
- return {};
- } else if (noSpaceForInt32) {
- return new TLiteralNumberNode<i64>(ctx.Pos(), "PgInt8", ToString(value), implicitType);
- }
- return new TLiteralNumberNode<i32>(ctx.Pos(), "PgInt4", ToString(value), implicitType);
- } else if (suffix == "u") {
- return new TLiteralNumberNode<ui32>(ctx.Pos(), "Uint32", ToString(value));
- } else if (suffix == "ul") {
- return new TLiteralNumberNode<ui64>(ctx.Pos(), "Uint64", ToString(value));
- } else if (suffix == "ut") {
- return new TLiteralNumberNode<ui8>(ctx.Pos(), "Uint8", ToString(value));
- } else if (suffix == "t") {
- return new TLiteralNumberNode<i8>(ctx.Pos(), "Int8", ToString(value));
- } else if (suffix == "l") {
- return new TLiteralNumberNode<i64>(ctx.Pos(), "Int64", ToString(value));
- } else if (suffix == "us") {
- return new TLiteralNumberNode<ui16>(ctx.Pos(), "Uint16", ToString(value));
- } else if (suffix == "s") {
- return new TLiteralNumberNode<i16>(ctx.Pos(), "Int16", ToString(value));
- } else if (suffix == "ps") {
- return new TLiteralNumberNode<i16>(ctx.Pos(), "PgInt2", ToString(value));
- } else if (suffix == "pi") {
- return new TLiteralNumberNode<i32>(ctx.Pos(), "PgInt4", ToString(value));
- } else if (suffix == "pb") {
- return new TLiteralNumberNode<i64>(ctx.Pos(), "PgInt8", ToString(value));
- } else {
- ctx.Error(ctx.Pos()) << "Failed to parse number from string: " << intergerString << ", invalid suffix: " << suffix;
- return {};
- }
-}
-
-TNodePtr LiteralReal(TContext& ctx, const TRule_real& node) {
- const TString value(ctx.Token(node.GetToken1()));
- YQL_ENSURE(!value.empty());
- auto lower = to_lower(value);
- if (lower.EndsWith("f")) {
- return new TLiteralNumberNode<float>(ctx.Pos(), "Float", value.substr(0, value.size()-1));
- } else if (lower.EndsWith("p")) {
- return new TLiteralNumberNode<float>(ctx.Pos(), "PgFloat8", value.substr(0, value.size()-1));
- } else if (lower.EndsWith("pf4")) {
- return new TLiteralNumberNode<float>(ctx.Pos(), "PgFloat4", value.substr(0, value.size()-3));
- } else if (lower.EndsWith("pf8")) {
- return new TLiteralNumberNode<float>(ctx.Pos(), "PgFloat8", value.substr(0, value.size()-3));
- } else if (lower.EndsWith("pn")) {
- return new TLiteralNode(ctx.Pos(), "PgNumeric", value.substr(0, value.size()-2));
- } else {
- return new TLiteralNumberNode<double>(ctx.Pos(), "Double", value);
- }
-}
-
-TMaybe<TExprOrIdent> TSqlExpression::LiteralExpr(const TRule_literal_value& node) {
- TExprOrIdent result;
- switch (node.Alt_case()) {
- case TRule_literal_value::kAltLiteralValue1: {
- result.Expr = LiteralNumber(Ctx, node.GetAlt_literal_value1().GetRule_integer1());
- break;
- }
- case TRule_literal_value::kAltLiteralValue2: {
- result.Expr = LiteralReal(Ctx, node.GetAlt_literal_value2().GetRule_real1());
- break;
- }
- case TRule_literal_value::kAltLiteralValue3: {
- const TString value(Token(node.GetAlt_literal_value3().GetToken1()));
- return BuildLiteralTypedSmartStringOrId(Ctx, value);
- }
- case TRule_literal_value::kAltLiteralValue5: {
- Token(node.GetAlt_literal_value5().GetToken1());
- result.Expr = BuildLiteralNull(Ctx.Pos());
- break;
- }
- case TRule_literal_value::kAltLiteralValue9: {
- const TString value(to_lower(Token(node.GetAlt_literal_value9().GetRule_bool_value1().GetToken1())));
- result.Expr = BuildLiteralBool(Ctx.Pos(), FromString<bool>(value));
- break;
- }
- case TRule_literal_value::kAltLiteralValue10: {
- result.Expr = BuildEmptyAction(Ctx.Pos());
- break;
- }
- default:
- AltNotImplemented("literal_value", node);
- }
- if (!result.Expr) {
- return {};
- }
- return result;
-}
-
-template<typename TUnarySubExprType>
-TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node, const TTrailingQuestions& tail) {
- if constexpr (std::is_same_v<TUnarySubExprType, TRule_unary_subexpr>) {
- if (node.Alt_case() == TRule_unary_subexpr::kAltUnarySubexpr1) {
- return UnaryCasualExpr(node.GetAlt_unary_subexpr1().GetRule_unary_casual_subexpr1(), tail);
- } else if (tail.Count) {
- UnexpectedQuestionToken(tail);
- return {};
- } else {
- MaybeUnnamedSmartParenOnTop = false;
- return JsonApiExpr(node.GetAlt_unary_subexpr2().GetRule_json_api_expr1());
- }
- } else {
- MaybeUnnamedSmartParenOnTop = false;
- if (node.Alt_case() == TRule_in_unary_subexpr::kAltInUnarySubexpr1) {
- return UnaryCasualExpr(node.GetAlt_in_unary_subexpr1().GetRule_in_unary_casual_subexpr1(), tail);
- } else if (tail.Count) {
- UnexpectedQuestionToken(tail);
- return {};
- } else {
- return JsonApiExpr(node.GetAlt_in_unary_subexpr2().GetRule_json_api_expr1());
- }
- }
-}
-
-TNodePtr TSqlExpression::JsonPathSpecification(const TRule_jsonpath_spec& node) {
- /*
- jsonpath_spec: STRING_VALUE;
- */
- TString value = Token(node.GetToken1());
- TPosition pos = Ctx.Pos();
-
- auto parsed = StringContent(Ctx, pos, value);
- if (!parsed) {
- return nullptr;
- }
- return new TCallNodeImpl(pos, "Utf8", {BuildQuotedAtom(pos, parsed->Content, parsed->Flags)});
-}
-
-TNodePtr TSqlExpression::JsonReturningTypeRule(const TRule_type_name_simple& node) {
- /*
- (RETURNING type_name_simple)?
- */
- return TypeSimple(node, /* onlyDataAllowed */ true);
-}
-
-TNodePtr TSqlExpression::JsonInputArg(const TRule_json_common_args& node) {
- /*
- json_common_args: expr COMMA jsonpath_spec (PASSING json_variables)?;
- */
- TNodePtr jsonExpr = Build(node.GetRule_expr1());
- if (!jsonExpr || jsonExpr->IsNull()) {
- jsonExpr = new TCallNodeImpl(Ctx.Pos(), "Nothing", {
- new TCallNodeImpl(Ctx.Pos(), "OptionalType", {BuildDataType(Ctx.Pos(), "Json")})
- });
- }
-
- return jsonExpr;
-}
-
-void TSqlExpression::AddJsonVariable(const TRule_json_variable& node, TVector<TNodePtr>& children) {
- /*
- json_variable: expr AS json_variable_name;
- */
- TNodePtr expr;
- TString rawName;
- TPosition namePos = Ctx.Pos();
- ui32 nameFlags = 0;
-
- expr = Build(node.GetRule_expr1());
- const auto& nameRule = node.GetRule_json_variable_name3();
- switch (nameRule.GetAltCase()) {
- case TRule_json_variable_name::kAltJsonVariableName1:
- rawName = Id(nameRule.GetAlt_json_variable_name1().GetRule_id_expr1(), *this);
- nameFlags = TNodeFlags::ArbitraryContent;
- break;
- case TRule_json_variable_name::kAltJsonVariableName2: {
- const auto& token = nameRule.GetAlt_json_variable_name2().GetToken1();
- namePos = GetPos(token);
- auto parsed = StringContentOrIdContent(Ctx, namePos, token.GetValue());
- if (!parsed) {
- return;
- }
- rawName = parsed->Content;
- nameFlags = parsed->Flags;
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- TNodePtr nameExpr = BuildQuotedAtom(namePos, rawName, nameFlags);
- children.push_back(BuildTuple(namePos, {nameExpr, expr}));
-}
-
-void TSqlExpression::AddJsonVariables(const TRule_json_variables& node, TVector<TNodePtr>& children) {
- /*
- json_variables: json_variable (COMMA json_variable)*;
- */
- AddJsonVariable(node.GetRule_json_variable1(), children);
- for (size_t i = 0; i < node.Block2Size(); i++) {
- AddJsonVariable(node.GetBlock2(i).GetRule_json_variable2(), children);
- }
-}
-
-TNodePtr TSqlExpression::JsonVariables(const TRule_json_common_args& node) {
- /*
- json_common_args: expr COMMA jsonpath_spec (PASSING json_variables)?;
- */
- TVector<TNodePtr> variables;
- TPosition pos = Ctx.Pos();
- if (node.HasBlock4()) {
- const auto& block = node.GetBlock4();
- pos = GetPos(block.GetToken1());
- AddJsonVariables(block.GetRule_json_variables2(), variables);
- }
- return new TCallNodeImpl(pos, "JsonVariables", variables);
-}
-
-void TSqlExpression::AddJsonCommonArgs(const TRule_json_common_args& node, TVector<TNodePtr>& children) {
- /*
- json_common_args: expr COMMA jsonpath_spec (PASSING json_variables)?;
- */
- TNodePtr jsonExpr = JsonInputArg(node);
- TNodePtr jsonPath = JsonPathSpecification(node.GetRule_jsonpath_spec3());
- TNodePtr variables = JsonVariables(node);
-
- children.push_back(jsonExpr);
- children.push_back(jsonPath);
- children.push_back(variables);
-}
-
-TNodePtr TSqlExpression::JsonValueCaseHandler(const TRule_json_case_handler& node, EJsonValueHandlerMode& mode) {
- /*
- json_case_handler: ERROR | NULL | (DEFAULT expr);
- */
-
- switch (node.GetAltCase()) {
- case TRule_json_case_handler::kAltJsonCaseHandler1: {
- const auto pos = GetPos(node.GetAlt_json_case_handler1().GetToken1());
- mode = EJsonValueHandlerMode::Error;
- return new TCallNodeImpl(pos, "Null", {});
- }
- case TRule_json_case_handler::kAltJsonCaseHandler2: {
- const auto pos = GetPos(node.GetAlt_json_case_handler2().GetToken1());
- mode = EJsonValueHandlerMode::DefaultValue;
- return new TCallNodeImpl(pos, "Null", {});
- }
- case TRule_json_case_handler::kAltJsonCaseHandler3:
- mode = EJsonValueHandlerMode::DefaultValue;
- return Build(node.GetAlt_json_case_handler3().GetBlock1().GetRule_expr2());
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-void TSqlExpression::AddJsonValueCaseHandlers(const TRule_json_value& node, TVector<TNodePtr>& children) {
- /*
- json_case_handler*
- */
- if (node.Block5Size() > 2) {
- Ctx.Error() << "Only 1 ON EMPTY and/or 1 ON ERROR clause is expected";
- Ctx.IncrementMonCounter("sql_errors", "JsonValueTooManyHandleClauses");
- return;
- }
-
- TNodePtr onEmpty;
- EJsonValueHandlerMode onEmptyMode = EJsonValueHandlerMode::DefaultValue;
- TNodePtr onError;
- EJsonValueHandlerMode onErrorMode = EJsonValueHandlerMode::DefaultValue;
- for (size_t i = 0; i < node.Block5Size(); i++) {
- const auto block = node.GetBlock5(i);
- const bool isEmptyClause = to_lower(block.GetToken3().GetValue()) == "empty";
-
- if (isEmptyClause && onEmpty != nullptr) {
- Ctx.Error() << "Only 1 ON EMPTY clause is expected";
- Ctx.IncrementMonCounter("sql_errors", "JsonValueMultipleOnEmptyClauses");
- return;
- }
-
- if (!isEmptyClause && onError != nullptr) {
- Ctx.Error() << "Only 1 ON ERROR clause is expected";
- Ctx.IncrementMonCounter("sql_errors", "JsonValueMultipleOnErrorClauses");
- return;
- }
-
- if (isEmptyClause && onError != nullptr) {
- Ctx.Error() << "ON EMPTY clause must be before ON ERROR clause";
- Ctx.IncrementMonCounter("sql_errors", "JsonValueOnEmptyAfterOnError");
- return;
- }
-
- EJsonValueHandlerMode currentMode;
- TNodePtr currentHandler = JsonValueCaseHandler(block.GetRule_json_case_handler1(), currentMode);
-
- if (isEmptyClause) {
- onEmpty = currentHandler;
- onEmptyMode = currentMode;
- } else {
- onError = currentHandler;
- onErrorMode = currentMode;
- }
- }
-
- if (onEmpty == nullptr) {
- onEmpty = new TCallNodeImpl(Ctx.Pos(), "Null", {});
- }
-
- if (onError == nullptr) {
- onError = new TCallNodeImpl(Ctx.Pos(), "Null", {});
- }
-
- children.push_back(BuildQuotedAtom(Ctx.Pos(), ToString(onEmptyMode), TNodeFlags::Default));
- children.push_back(onEmpty);
- children.push_back(BuildQuotedAtom(Ctx.Pos(), ToString(onErrorMode), TNodeFlags::Default));
- children.push_back(onError);
-}
-
-TNodePtr TSqlExpression::JsonValueExpr(const TRule_json_value& node) {
- /*
- json_value: JSON_VALUE LPAREN
- json_common_args
- (RETURNING type_name_simple)?
- (json_case_handler ON (EMPTY | ERROR))*
- RPAREN;
- */
- TVector<TNodePtr> children;
- AddJsonCommonArgs(node.GetRule_json_common_args3(), children);
- AddJsonValueCaseHandlers(node, children);
-
- if (node.HasBlock4()) {
- auto returningType = JsonReturningTypeRule(node.GetBlock4().GetRule_type_name_simple2());
- if (!returningType) {
- return {};
- }
- children.push_back(returningType);
- }
-
- return new TCallNodeImpl(GetPos(node.GetToken1()), "JsonValue", children);
-}
-
-void TSqlExpression::AddJsonExistsHandler(const TRule_json_exists& node, TVector<TNodePtr>& children) {
- /*
- json_exists: JSON_EXISTS LPAREN
- json_common_args
- json_exists_handler?
- RPAREN;
- */
- auto buildJustBool = [&](const TPosition& pos, bool value) {
- return new TCallNodeImpl(pos, "Just", {BuildLiteralBool(pos, value)});
- };
-
- if (!node.HasBlock4()) {
- children.push_back(buildJustBool(Ctx.Pos(), false));
- return;
- }
-
- const auto& handlerRule = node.GetBlock4().GetRule_json_exists_handler1();
- const auto& token = handlerRule.GetToken1();
- const auto pos = GetPos(token);
- const auto mode = to_lower(token.GetValue());
- if (mode == "unknown") {
- const auto nothingNode = new TCallNodeImpl(pos, "Nothing", {
- new TCallNodeImpl(pos, "OptionalType", {BuildDataType(pos, "Bool")})
- });
- children.push_back(nothingNode);
- } else if (mode != "error") {
- children.push_back(buildJustBool(pos, FromString<bool>(mode)));
- }
-}
-
-TNodePtr TSqlExpression::JsonExistsExpr(const TRule_json_exists& node) {
- /*
- json_exists: JSON_EXISTS LPAREN
- json_common_args
- json_exists_handler?
- RPAREN;
- */
- TVector<TNodePtr> children;
- AddJsonCommonArgs(node.GetRule_json_common_args3(), children);
-
- AddJsonExistsHandler(node, children);
-
- return new TCallNodeImpl(GetPos(node.GetToken1()), "JsonExists", children);
-}
-
-EJsonQueryWrap TSqlExpression::JsonQueryWrapper(const TRule_json_query& node) {
- /*
- json_query: JSON_QUERY LPAREN
- json_common_args
- (json_query_wrapper WRAPPER)?
- (json_query_handler ON EMPTY)?
- (json_query_handler ON ERROR)?
- RPAREN;
- */
- // default behaviour - no wrapping
- if (!node.HasBlock4()) {
- return EJsonQueryWrap::NoWrap;
- }
-
- // WITHOUT ARRAY? - no wrapping
- const auto& wrapperRule = node.GetBlock4().GetRule_json_query_wrapper1();
- if (wrapperRule.GetAltCase() == TRule_json_query_wrapper::kAltJsonQueryWrapper1) {
- return EJsonQueryWrap::NoWrap;
- }
-
- // WITH (CONDITIONAL | UNCONDITIONAL)? ARRAY? - wrapping depends on 2nd token. Default is UNCONDITIONAL
- const auto& withWrapperRule = wrapperRule.GetAlt_json_query_wrapper2().GetBlock1();
- if (!withWrapperRule.HasBlock2()) {
- return EJsonQueryWrap::Wrap;
- }
-
- const auto& token = withWrapperRule.GetBlock2().GetToken1();
- if (to_lower(token.GetValue()) == "conditional") {
- return EJsonQueryWrap::ConditionalWrap;
- } else {
- return EJsonQueryWrap::Wrap;
- }
-}
-
-EJsonQueryHandler TSqlExpression::JsonQueryHandler(const TRule_json_query_handler& node) {
- /*
- json_query_handler: ERROR | NULL | (EMPTY ARRAY) | (EMPTY OBJECT);
- */
- switch (node.GetAltCase()) {
- case TRule_json_query_handler::kAltJsonQueryHandler1:
- return EJsonQueryHandler::Error;
- case TRule_json_query_handler::kAltJsonQueryHandler2:
- return EJsonQueryHandler::Null;
- case TRule_json_query_handler::kAltJsonQueryHandler3:
- return EJsonQueryHandler::EmptyArray;
- case TRule_json_query_handler::kAltJsonQueryHandler4:
- return EJsonQueryHandler::EmptyObject;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-TNodePtr TSqlExpression::JsonQueryExpr(const TRule_json_query& node) {
- /*
- json_query: JSON_QUERY LPAREN
- json_common_args
- (json_query_wrapper WRAPPER)?
- (json_query_handler ON EMPTY)?
- (json_query_handler ON ERROR)?
- RPAREN;
- */
-
- TVector<TNodePtr> children;
- AddJsonCommonArgs(node.GetRule_json_common_args3(), children);
-
- auto addChild = [&](TPosition pos, const TString& content) {
- children.push_back(BuildQuotedAtom(pos, content, TNodeFlags::Default));
- };
-
- const auto wrapMode = JsonQueryWrapper(node);
- addChild(Ctx.Pos(), ToString(wrapMode));
-
- auto onEmpty = EJsonQueryHandler::Null;
- if (node.HasBlock5()) {
- if (wrapMode != EJsonQueryWrap::NoWrap) {
- Ctx.Error() << "ON EMPTY is prohibited because WRAPPER clause is specified";
- Ctx.IncrementMonCounter("sql_errors", "JsonQueryOnEmptyWithWrapper");
- return nullptr;
- }
- onEmpty = JsonQueryHandler(node.GetBlock5().GetRule_json_query_handler1());
- }
- addChild(Ctx.Pos(), ToString(onEmpty));
-
- auto onError = EJsonQueryHandler::Null;
- if (node.HasBlock6()) {
- onError = JsonQueryHandler(node.GetBlock6().GetRule_json_query_handler1());
- }
- addChild(Ctx.Pos(), ToString(onError));
-
- return new TCallNodeImpl(GetPos(node.GetToken1()), "JsonQuery", children);
-}
-
-TNodePtr TSqlExpression::JsonApiExpr(const TRule_json_api_expr& node) {
- /*
- json_api_expr: json_value | json_exists | json_query;
- */
- TPosition pos = Ctx.Pos();
- TNodePtr result = nullptr;
- switch (node.GetAltCase()) {
- case TRule_json_api_expr::kAltJsonApiExpr1: {
- const auto& jsonValue = node.GetAlt_json_api_expr1().GetRule_json_value1();
- pos = GetPos(jsonValue.GetToken1());
- result = JsonValueExpr(jsonValue);
- break;
- }
- case TRule_json_api_expr::kAltJsonApiExpr2: {
- const auto& jsonExists = node.GetAlt_json_api_expr2().GetRule_json_exists1();
- pos = GetPos(jsonExists.GetToken1());
- result = JsonExistsExpr(jsonExists);
- break;
- }
- case TRule_json_api_expr::kAltJsonApiExpr3: {
- const auto& jsonQuery = node.GetAlt_json_api_expr3().GetRule_json_query1();
- pos = GetPos(jsonQuery.GetToken1());
- result = JsonQueryExpr(jsonQuery);
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- return result;
-}
-
-template<typename TUnaryCasualExprRule>
-TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const TTrailingQuestions& tail) {
- // unary_casual_subexpr: (id_expr | atom_expr) unary_subexpr_suffix;
- // OR
- // in_unary_casual_subexpr: (id_expr_in | in_atom_expr) unary_subexpr_suffix;
- // where
- // unary_subexpr_suffix: (key_expr | invoke_expr |(DOT (bind_parameter | DIGITS | id)))* (COLLATE id)?;
-
- const auto& suffix = node.GetRule_unary_subexpr_suffix2();
- const bool suffixIsEmpty = suffix.GetBlock1().empty() && !suffix.HasBlock2();
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && suffixIsEmpty;
- TString name;
- TNodePtr expr;
- bool typePossible = false;
- auto& block = node.GetBlock1();
- switch (block.Alt_case()) {
- case TUnaryCasualExprRule::TBlock1::kAlt1: {
- MaybeUnnamedSmartParenOnTop = false;
- auto& alt = block.GetAlt1();
- if constexpr (std::is_same_v<TUnaryCasualExprRule, TRule_unary_casual_subexpr>) {
- name = Id(alt.GetRule_id_expr1(), *this);
- typePossible = !IsQuotedId(alt.GetRule_id_expr1(), *this);
- } else {
- // type was never possible here
- name = Id(alt.GetRule_id_expr_in1(), *this);
- }
- break;
- }
- case TUnaryCasualExprRule::TBlock1::kAlt2: {
- auto& alt = block.GetAlt2();
- TMaybe<TExprOrIdent> exprOrId;
- if constexpr (std::is_same_v<TUnaryCasualExprRule, TRule_unary_casual_subexpr>) {
- exprOrId = AtomExpr(alt.GetRule_atom_expr1(), suffixIsEmpty ? tail : TTrailingQuestions{});
- } else {
- MaybeUnnamedSmartParenOnTop = false;
- exprOrId = InAtomExpr(alt.GetRule_in_atom_expr1(), suffixIsEmpty ? tail : TTrailingQuestions{});
- }
-
- if (!exprOrId) {
- Ctx.IncrementMonCounter("sql_errors", "BadAtomExpr");
- return nullptr;
- }
- if (!exprOrId->Expr) {
- name = exprOrId->Ident;
- } else {
- expr = exprOrId->Expr;
- }
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- // bool onlyDots = true;
- bool isColumnRef = !expr;
- bool isFirstElem = true;
-
- for (auto& b : suffix.GetBlock1()) {
- switch (b.Alt_case()) {
- case TRule_unary_subexpr_suffix::TBlock1::kAlt1: {
- // key_expr
- // onlyDots = false;
- break;
- }
- case TRule_unary_subexpr_suffix::TBlock1::kAlt2: {
- // invoke_expr - cannot be a column, function name
- if (isFirstElem) {
- isColumnRef = false;
- }
-
- // onlyDots = false;
- break;
- }
- case TRule_unary_subexpr_suffix::TBlock1::kAlt3: {
- // dot
- break;
- }
- default:
- AltNotImplemented("unary_subexpr_suffix", b);
- return nullptr;
- }
-
- isFirstElem = false;
- }
-
- isFirstElem = true;
- TVector<INode::TIdPart> ids;
- INode::TPtr lastExpr;
- if (!isColumnRef) {
- lastExpr = expr;
- } else {
- const bool flexibleTypes = Ctx.FlexibleTypes;
- bool columnOrType = false;
- auto columnRefsState = Ctx.GetColumnReferenceState();
- bool explicitPgType = columnRefsState == EColumnRefState::AsPgType;
- if (explicitPgType && typePossible && suffixIsEmpty) {
- auto pgType = BuildSimpleType(Ctx, Ctx.Pos(), name, false);
- if (pgType && tail.Count) {
- Ctx.Error() << "Optional types are not supported in this context";
- return {};
- }
- return pgType;
- }
- if (auto simpleType = LookupSimpleType(name, flexibleTypes, false); simpleType && typePossible && suffixIsEmpty) {
- if (tail.Count > 0 || columnRefsState == EColumnRefState::Deny || !flexibleTypes) {
- // a type
- return AddOptionals(BuildSimpleType(Ctx, Ctx.Pos(), name, false), tail.Count);
- }
- // type or column: ambiguity will be resolved on type annotation stage
- columnOrType = columnRefsState == EColumnRefState::Allow;
- }
- if (tail.Count) {
- UnexpectedQuestionToken(tail);
- return {};
- }
- if (!Ctx.CheckColumnReference(Ctx.Pos(), name)) {
- return nullptr;
- }
-
- ids.push_back(columnOrType ? BuildColumnOrType(Ctx.Pos()) : BuildColumn(Ctx.Pos()));
- ids.push_back(name);
- }
-
- TPosition pos(Ctx.Pos());
- for (auto& b : suffix.GetBlock1()) {
- switch (b.Alt_case()) {
- case TRule_unary_subexpr_suffix::TBlock1::kAlt1: {
- // key_expr
- auto keyExpr = KeyExpr(b.GetAlt1().GetRule_key_expr1());
- if (!keyExpr) {
- Ctx.IncrementMonCounter("sql_errors", "BadKeyExpr");
- return nullptr;
- }
-
- if (!lastExpr) {
- lastExpr = BuildAccess(pos, ids, false);
- ids.clear();
- }
-
- ids.push_back(lastExpr);
- ids.push_back(keyExpr);
- lastExpr = BuildAccess(pos, ids, true);
- ids.clear();
- break;
- }
- case TRule_unary_subexpr_suffix::TBlock1::kAlt2: {
- // invoke_expr - cannot be a column, function name
- TSqlCallExpr call(Ctx, Mode);
- if (isFirstElem && !name.Empty()) {
- call.AllowDistinct();
- call.InitName(name);
- } else {
- call.InitExpr(lastExpr);
- }
-
- bool initRet = call.Init(b.GetAlt2().GetRule_invoke_expr1());
- if (initRet) {
- call.IncCounters();
- }
-
- if (!initRet) {
- return nullptr;
- }
-
- lastExpr = call.BuildCall();
- if (!lastExpr) {
- return nullptr;
- }
-
- break;
- }
- case TRule_unary_subexpr_suffix::TBlock1::kAlt3: {
- // dot
- if (lastExpr) {
- ids.push_back(lastExpr);
- }
-
- auto bb = b.GetAlt3().GetBlock1().GetBlock2();
- switch (bb.Alt_case()) {
- case TRule_unary_subexpr_suffix_TBlock1_TAlt3_TBlock1_TBlock2::kAlt1: {
- TString named;
- if (!NamedNodeImpl(bb.GetAlt1().GetRule_bind_parameter1(), named, *this)) {
- return nullptr;
- }
- auto namedNode = GetNamedNode(named);
- if (!namedNode) {
- return nullptr;
- }
-
- ids.push_back(named);
- ids.back().Expr = namedNode;
- break;
- }
- case TRule_unary_subexpr_suffix_TBlock1_TAlt3_TBlock1_TBlock2::kAlt2: {
- const TString str(Token(bb.GetAlt2().GetToken1()));
- ids.push_back(str);
- break;
- }
- case TRule_unary_subexpr_suffix_TBlock1_TAlt3_TBlock1_TBlock2::kAlt3: {
- ids.push_back(Id(bb.GetAlt3().GetRule_an_id_or_type1(), *this));
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- if (lastExpr) {
- lastExpr = BuildAccess(pos, ids, false);
- ids.clear();
- }
-
- break;
- }
- default:
- AltNotImplemented("unary_subexpr_suffix", b);
- return nullptr;
- }
-
- isFirstElem = false;
- }
-
- if (!lastExpr) {
- lastExpr = BuildAccess(pos, ids, false);
- ids.clear();
- }
-
- if (suffix.HasBlock2()) {
- Ctx.IncrementMonCounter("sql_errors", "CollateUnarySubexpr");
- Error() << "unary_subexpr: COLLATE is not implemented yet";
- }
-
- return lastExpr;
-}
-
-TNodePtr TSqlExpression::BindParameterRule(const TRule_bind_parameter& rule, const TTrailingQuestions& tail) {
- TString namedArg;
- if (!NamedNodeImpl(rule, namedArg, *this)) {
- return {};
- }
- if (SmartParenthesisMode == ESmartParenthesis::SqlLambdaParams) {
- Ctx.IncrementMonCounter("sql_features", "LambdaArgument");
- if (tail.Count > 1) {
- Ctx.Error(tail.Pos) << "Expecting at most one '?' token here (for optional lambda parameters), but got " << tail.Count;
- return {};
- }
- return BuildAtom(Ctx.Pos(), namedArg, NYql::TNodeFlags::ArbitraryContent, tail.Count != 0);
- }
- if (tail.Count) {
- UnexpectedQuestionToken(tail);
- return {};
- }
- Ctx.IncrementMonCounter("sql_features", "NamedNodeUseAtom");
- return GetNamedNode(namedArg);
-}
-
-TNodePtr TSqlExpression::LambdaRule(const TRule_lambda& rule) {
- const auto& alt = rule;
- const bool isSqlLambda = alt.HasBlock2();
- if (!isSqlLambda) {
- return SmartParenthesis(alt.GetRule_smart_parenthesis1());
- }
-
- MaybeUnnamedSmartParenOnTop = false;
- TNodePtr parenthesis;
- {
- // we allow column reference here to postpone error and report it with better description in SqlLambdaParams
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
- expr.SetSmartParenthesisMode(ESmartParenthesis::SqlLambdaParams);
- parenthesis = expr.SmartParenthesis(alt.GetRule_smart_parenthesis1());
- }
- if (!parenthesis) {
- return {};
- }
-
- ui32 optionalArgumentsCount = 0;
- TVector<TSymbolNameWithPos> args;
- if (!SqlLambdaParams(parenthesis, args, optionalArgumentsCount)) {
- return {};
- }
- auto bodyBlock = alt.GetBlock2();
- Token(bodyBlock.GetToken1());
- TPosition pos(Ctx.Pos());
- TVector<TNodePtr> exprSeq;
- for (auto& arg: args) {
- arg.Name = PushNamedAtom(arg.Pos, arg.Name);
- }
- bool ret = false;
- TColumnRefScope scope(Ctx, EColumnRefState::Deny);
- scope.SetNoColumnErrContext("in lambda function");
- if (bodyBlock.GetBlock2().HasAlt1()) {
- ret = SqlLambdaExprBody(Ctx, bodyBlock.GetBlock2().GetAlt1().GetBlock1().GetRule_expr2(), exprSeq);
- } else {
- ret = SqlLambdaExprBody(Ctx, bodyBlock.GetBlock2().GetAlt2().GetBlock1().GetRule_lambda_body2(), exprSeq);
- }
-
- TVector<TString> argNames;
- for (const auto& arg : args) {
- argNames.push_back(arg.Name);
- PopNamedNode(arg.Name);
- }
- if (!ret) {
- return {};
- }
-
- auto lambdaNode = BuildSqlLambda(pos, std::move(argNames), std::move(exprSeq));
- if (optionalArgumentsCount > 0) {
- lambdaNode = new TCallNodeImpl(pos, "WithOptionalArgs", {
- lambdaNode,
- BuildQuotedAtom(pos, ToString(optionalArgumentsCount), TNodeFlags::Default)
- });
- }
-
- return lambdaNode;
-}
-
-TNodePtr TSqlExpression::CastRule(const TRule_cast_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "Cast");
- const auto& alt = rule;
- Token(alt.GetToken1());
- TPosition pos(Ctx.Pos());
- TSqlExpression expr(Ctx, Mode);
- auto exprNode = expr.Build(rule.GetRule_expr3());
- if (!exprNode) {
- return {};
- }
- auto type = TypeNodeOrBind(rule.GetRule_type_name_or_bind5());
- if (!type) {
- return {};
- }
- return new TCallNodeImpl(pos, "SafeCast", {exprNode, type});
-}
-
-TNodePtr TSqlExpression::BitCastRule(const TRule_bitcast_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "BitCast");
- const auto& alt = rule;
- Token(alt.GetToken1());
- TPosition pos(Ctx.Pos());
- TSqlExpression expr(Ctx, Mode);
- auto exprNode = expr.Build(rule.GetRule_expr3());
- if (!exprNode) {
- return {};
- }
- auto type = TypeSimple(rule.GetRule_type_name_simple5(), true);
- if (!type) {
- return {};
- }
- return new TCallNodeImpl(pos, "BitCast", {exprNode, type});
-}
-
-TNodePtr TSqlExpression::ExistsRule(const TRule_exists_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "Exists");
-
- TPosition pos;
- TSourcePtr source;
- Token(rule.GetToken2());
- switch (rule.GetBlock3().Alt_case()) {
- case TRule_exists_expr::TBlock3::kAlt1: {
- const auto& alt = rule.GetBlock3().GetAlt1().GetRule_select_stmt1();
- TSqlSelect select(Ctx, Mode);
- source = select.Build(alt, pos);
- break;
- }
- case TRule_exists_expr::TBlock3::kAlt2: {
- const auto& alt = rule.GetBlock3().GetAlt2().GetRule_values_stmt1();
- TSqlValues values(Ctx, Mode);
- source = values.Build(alt, pos);
- break;
- }
- default:
- AltNotImplemented("exists_expr", rule.GetBlock3());
- }
-
- if (!source) {
- Ctx.IncrementMonCounter("sql_errors", "BadSource");
- return nullptr;
- }
- const bool checkExist = true;
- return BuildBuiltinFunc(Ctx, Ctx.Pos(), "ListHasItems", {BuildSourceNode(pos, std::move(source), checkExist)});
-}
-
-TNodePtr TSqlExpression::CaseRule(const TRule_case_expr& rule) {
- // case_expr: CASE expr? when_expr+ (ELSE expr)? END;
- // when_expr: WHEN expr THEN expr;
- Ctx.IncrementMonCounter("sql_features", "Case");
- const auto& alt = rule;
- Token(alt.GetToken1());
- TNodePtr elseExpr;
- if (alt.HasBlock4()) {
- Token(alt.GetBlock4().GetToken1());
- TSqlExpression expr(Ctx, Mode);
- elseExpr = expr.Build(alt.GetBlock4().GetRule_expr2());
- } else {
- Ctx.IncrementMonCounter("sql_errors", "ElseIsRequired");
- Error() << "ELSE is required";
- return {};
- }
-
- TNodePtr caseExpr;
- if (alt.HasBlock2()) {
- TSqlExpression expr(Ctx, Mode);
- caseExpr = expr.Build(alt.GetBlock2().GetRule_expr1());
- if (!caseExpr) {
- return {};
- }
- }
-
- TVector<TCaseBranch> branches;
- for (size_t i = 0; i < alt.Block3Size(); ++i) {
- branches.emplace_back();
- const auto& block = alt.GetBlock3(i).GetRule_when_expr1();
- Token(block.GetToken1());
- TSqlExpression condExpr(Ctx, Mode);
- branches.back().Pred = condExpr.Build(block.GetRule_expr2());
- if (caseExpr) {
- branches.back().Pred = BuildBinaryOp(Ctx, Ctx.Pos(), "==", caseExpr, branches.back().Pred);
- }
- if (!branches.back().Pred) {
- return {};
- }
- Token(block.GetToken3());
- TSqlExpression thenExpr(Ctx, Mode);
- branches.back().Value = thenExpr.Build(block.GetRule_expr4());
- if (!branches.back().Value) {
- return {};
- }
- }
- auto final = ReduceCaseBranches(branches.begin(), branches.end());
- return BuildBuiltinFunc(Ctx, Ctx.Pos(), "If", { final.Pred, final.Value, elseExpr });
-}
-
-TMaybe<TExprOrIdent> TSqlExpression::AtomExpr(const TRule_atom_expr& node, const TTrailingQuestions& tail) {
- // atom_expr:
- // literal_value
- // | bind_parameter
- // | lambda
- // | cast_expr
- // | exists_expr
- // | case_expr
- // | an_id_or_type NAMESPACE (id_or_type | STRING_VALUE)
- // | value_constructor
- // | bitcast_expr
- // | list_literal
- // | dict_literal
- // | struct_literal
- // ;
- if (node.Alt_case() != TRule_atom_expr::kAltAtomExpr2 && tail.Count) {
- UnexpectedQuestionToken(tail);
- return {};
- }
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (node.Alt_case() == TRule_atom_expr::kAltAtomExpr3);
- TExprOrIdent result;
- switch (node.Alt_case()) {
- case TRule_atom_expr::kAltAtomExpr1:
- Ctx.IncrementMonCounter("sql_features", "LiteralExpr");
- return LiteralExpr(node.GetAlt_atom_expr1().GetRule_literal_value1());
- case TRule_atom_expr::kAltAtomExpr2:
- result.Expr = BindParameterRule(node.GetAlt_atom_expr2().GetRule_bind_parameter1(), tail);
- break;
- case TRule_atom_expr::kAltAtomExpr3:
- result.Expr = LambdaRule(node.GetAlt_atom_expr3().GetRule_lambda1());
- break;
- case TRule_atom_expr::kAltAtomExpr4:
- result.Expr = CastRule(node.GetAlt_atom_expr4().GetRule_cast_expr1());
- break;
- case TRule_atom_expr::kAltAtomExpr5:
- result.Expr = ExistsRule(node.GetAlt_atom_expr5().GetRule_exists_expr1());
- break;
- case TRule_atom_expr::kAltAtomExpr6:
- result.Expr = CaseRule(node.GetAlt_atom_expr6().GetRule_case_expr1());
- break;
- case TRule_atom_expr::kAltAtomExpr7: {
- const auto& alt = node.GetAlt_atom_expr7();
- TString module(Id(alt.GetRule_an_id_or_type1(), *this));
- TPosition pos(Ctx.Pos());
- TString name;
- switch (alt.GetBlock3().Alt_case()) {
- case TRule_atom_expr::TAlt7::TBlock3::kAlt1:
- name = Id(alt.GetBlock3().GetAlt1().GetRule_id_or_type1(), *this);
- break;
- case TRule_atom_expr::TAlt7::TBlock3::kAlt2: {
- name = Token(alt.GetBlock3().GetAlt2().GetToken1());
- if (Ctx.AnsiQuotedIdentifiers && name.StartsWith('"')) {
- // same as previous case
- name = IdContentFromString(Ctx, name);
- } else {
- module = "@" + module;
- }
- break;
- }
- default:
- Y_FAIL("Unsigned number: you should change implementation according to grammar changes");
- }
- result.Expr = BuildCallable(pos, module, name, {});
- break;
- }
- case TRule_atom_expr::kAltAtomExpr8: {
- result.Expr = ValueConstructor(node.GetAlt_atom_expr8().GetRule_value_constructor1());
- break;
- }
- case TRule_atom_expr::kAltAtomExpr9:
- result.Expr = BitCastRule(node.GetAlt_atom_expr9().GetRule_bitcast_expr1());
- break;
- case TRule_atom_expr::kAltAtomExpr10:
- result.Expr = ListLiteral(node.GetAlt_atom_expr10().GetRule_list_literal1());
- break;
- case TRule_atom_expr::kAltAtomExpr11:
- result.Expr = DictLiteral(node.GetAlt_atom_expr11().GetRule_dict_literal1());
- break;
- case TRule_atom_expr::kAltAtomExpr12:
- result.Expr = StructLiteral(node.GetAlt_atom_expr12().GetRule_struct_literal1());
- break;
- default:
- AltNotImplemented("atom_expr", node);
- }
- if (!result.Expr) {
- return {};
- }
- return result;
-}
-
-TMaybe<TExprOrIdent> TSqlExpression::InAtomExpr(const TRule_in_atom_expr& node, const TTrailingQuestions& tail) {
- // in_atom_expr:
- // literal_value
- // | bind_parameter
- // | lambda
- // | cast_expr
- // | case_expr
- // | an_id_or_type NAMESPACE (id_or_type | STRING_VALUE)
- // | LPAREN select_stmt RPAREN
- // | value_constructor
- // | bitcast_expr
- // | list_literal
- // | dict_literal
- // | struct_literal
- // ;
- if (node.Alt_case() != TRule_in_atom_expr::kAltInAtomExpr2 && tail.Count) {
- UnexpectedQuestionToken(tail);
- return {};
- }
- TExprOrIdent result;
- switch (node.Alt_case()) {
- case TRule_in_atom_expr::kAltInAtomExpr1:
- Ctx.IncrementMonCounter("sql_features", "LiteralExpr");
- return LiteralExpr(node.GetAlt_in_atom_expr1().GetRule_literal_value1());
- case TRule_in_atom_expr::kAltInAtomExpr2:
- result.Expr = BindParameterRule(node.GetAlt_in_atom_expr2().GetRule_bind_parameter1(), tail);
- break;
- case TRule_in_atom_expr::kAltInAtomExpr3:
- result.Expr = LambdaRule(node.GetAlt_in_atom_expr3().GetRule_lambda1());
- break;
- case TRule_in_atom_expr::kAltInAtomExpr4:
- result.Expr = CastRule(node.GetAlt_in_atom_expr4().GetRule_cast_expr1());
- break;
- case TRule_in_atom_expr::kAltInAtomExpr5:
- result.Expr = CaseRule(node.GetAlt_in_atom_expr5().GetRule_case_expr1());
- break;
- case TRule_in_atom_expr::kAltInAtomExpr6: {
- const auto& alt = node.GetAlt_in_atom_expr6();
- TString module(Id(alt.GetRule_an_id_or_type1(), *this));
- TPosition pos(Ctx.Pos());
- TString name;
- switch (alt.GetBlock3().Alt_case()) {
- case TRule_in_atom_expr::TAlt6::TBlock3::kAlt1:
- name = Id(alt.GetBlock3().GetAlt1().GetRule_id_or_type1(), *this);
- break;
- case TRule_in_atom_expr::TAlt6::TBlock3::kAlt2: {
- name = Token(alt.GetBlock3().GetAlt2().GetToken1());
- if (Ctx.AnsiQuotedIdentifiers && name.StartsWith('"')) {
- // same as previous case
- name = IdContentFromString(Ctx, name);
- } else {
- module = "@" + module;
- }
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- result.Expr = BuildCallable(pos, module, name, {});
- break;
- }
- case TRule_in_atom_expr::kAltInAtomExpr7: {
- Token(node.GetAlt_in_atom_expr7().GetToken1());
- // reset column reference scope (select will reenable it where needed)
- TColumnRefScope scope(Ctx, EColumnRefState::Deny);
- TSqlSelect select(Ctx, Mode);
- TPosition pos;
- auto source = select.Build(node.GetAlt_in_atom_expr7().GetRule_select_stmt2(), pos);
- if (!source) {
- Ctx.IncrementMonCounter("sql_errors", "BadSource");
- return {};
- }
- Ctx.IncrementMonCounter("sql_features", "InSubquery");
- const auto alias = Ctx.MakeName("subquerynode");
- const auto ref = Ctx.MakeName("subquery");
- auto& blocks = Ctx.GetCurrentBlocks();
- blocks.push_back(BuildSubquery(std::move(source), alias, Mode == NSQLTranslation::ESqlMode::SUBQUERY, -1, Ctx.Scoped));
- blocks.back()->SetLabel(ref);
- result.Expr = BuildSubqueryRef(blocks.back(), ref, -1);
- break;
- }
- case TRule_in_atom_expr::kAltInAtomExpr8: {
- result.Expr = ValueConstructor(node.GetAlt_in_atom_expr8().GetRule_value_constructor1());
- break;
- }
- case TRule_in_atom_expr::kAltInAtomExpr9:
- result.Expr = BitCastRule(node.GetAlt_in_atom_expr9().GetRule_bitcast_expr1());
- break;
- case TRule_in_atom_expr::kAltInAtomExpr10:
- result.Expr = ListLiteral(node.GetAlt_in_atom_expr10().GetRule_list_literal1());
- break;
- case TRule_in_atom_expr::kAltInAtomExpr11:
- result.Expr = DictLiteral(node.GetAlt_in_atom_expr11().GetRule_dict_literal1());
- break;
- case TRule_in_atom_expr::kAltInAtomExpr12:
- result.Expr = StructLiteral(node.GetAlt_in_atom_expr12().GetRule_struct_literal1());
- break;
- default:
- AltNotImplemented("in_atom_expr", node);
- }
- if (!result.Expr) {
- return {};
- }
- return result;
-}
-
-bool TSqlExpression::SqlLambdaParams(const TNodePtr& node, TVector<TSymbolNameWithPos>& args, ui32& optionalArgumentsCount) {
- args.clear();
- optionalArgumentsCount = 0;
- auto errMsg = TStringBuf("Invalid lambda arguments syntax. Lambda arguments should start with '$' as named value.");
- auto tupleNodePtr = dynamic_cast<TTupleNode*>(node.Get());
- if (!tupleNodePtr) {
- Ctx.Error(node->GetPos()) << errMsg;
- return false;
- }
- THashSet<TString> dupArgsChecker;
- for (const auto& argPtr: tupleNodePtr->Elements()) {
- auto contentPtr = argPtr->GetAtomContent();
- if (!contentPtr || !contentPtr->StartsWith("$")) {
- Ctx.Error(argPtr->GetPos()) << errMsg;
- return false;
- }
- if (argPtr->IsOptionalArg()) {
- ++optionalArgumentsCount;
- } else if (optionalArgumentsCount > 0) {
- Ctx.Error(argPtr->GetPos()) << "Non-optional argument can not follow optional one";
- return false;
- }
-
- if (!IsAnonymousName(*contentPtr) && !dupArgsChecker.insert(*contentPtr).second) {
- Ctx.Error(argPtr->GetPos()) << "Duplicate lambda argument parametr: '" << *contentPtr << "'.";
- return false;
- }
- args.push_back(TSymbolNameWithPos{*contentPtr, argPtr->GetPos()});
- }
- return true;
-}
-
-bool TSqlExpression::SqlLambdaExprBody(TContext& ctx, const TRule_expr& node, TVector<TNodePtr>& exprSeq) {
- TSqlExpression expr(ctx, ctx.Settings.Mode);
- TNodePtr nodeExpr = expr.Build(node);
- if (!nodeExpr) {
- return false;
- }
- exprSeq.push_back(nodeExpr);
- return true;
-}
-
-bool TSqlExpression::SqlLambdaExprBody(TContext& ctx, const TRule_lambda_body& node, TVector<TNodePtr>& exprSeq) {
- TSqlExpression expr(ctx, ctx.Settings.Mode);
- TVector<TString> localNames;
- bool hasError = false;
- for (auto& block: node.GetBlock2()) {
- const auto& rule = block.GetRule_lambda_stmt1();
- switch (rule.Alt_case()) {
- case TRule_lambda_stmt::kAltLambdaStmt1: {
- TVector<TSymbolNameWithPos> names;
- auto nodeExpr = NamedNode(rule.GetAlt_lambda_stmt1().GetRule_named_nodes_stmt1(), names);
- if (!nodeExpr) {
- hasError = true;
- continue;
- } else if (nodeExpr->GetSource()) {
- ctx.Error() << "SELECT is not supported inside lambda body";
- hasError = true;
- continue;
- }
- if (names.size() > 1) {
- auto ref = ctx.MakeName("tie");
- exprSeq.push_back(nodeExpr->Y("EnsureTupleSize", nodeExpr, nodeExpr->Q(ToString(names.size()))));
- exprSeq.back()->SetLabel(ref);
- for (size_t i = 0; i < names.size(); ++i) {
- TNodePtr nthExpr = nodeExpr->Y("Nth", ref, nodeExpr->Q(ToString(i)));
- names[i].Name = PushNamedAtom(names[i].Pos, names[i].Name);
- nthExpr->SetLabel(names[i].Name);
- localNames.push_back(names[i].Name);
- exprSeq.push_back(nthExpr);
- }
- } else {
- auto& symbol = names.front();
- symbol.Name = PushNamedAtom(symbol.Pos, symbol.Name);
- nodeExpr->SetLabel(symbol.Name);
- localNames.push_back(symbol.Name);
- exprSeq.push_back(nodeExpr);
- }
- break;
- }
- case TRule_lambda_stmt::kAltLambdaStmt2: {
- if (!ImportStatement(rule.GetAlt_lambda_stmt2().GetRule_import_stmt1(), &localNames)) {
- hasError = true;
- }
- break;
- }
- default:
- Y_FAIL("SampleClause: does not correspond to grammar changes");
- }
- }
-
- TNodePtr nodeExpr;
- if (!hasError) {
- nodeExpr = expr.Build(node.GetRule_expr4());
- }
-
- for (const auto& name : localNames) {
- PopNamedNode(name);
- }
-
- if (!nodeExpr) {
- return false;
- }
- exprSeq.push_back(nodeExpr);
- return true;
-}
-
-TNodePtr TSqlExpression::SubExpr(const TRule_con_subexpr& node, const TTrailingQuestions& tail) {
- // con_subexpr: unary_subexpr | unary_op unary_subexpr;
- switch (node.Alt_case()) {
- case TRule_con_subexpr::kAltConSubexpr1:
- return UnaryExpr(node.GetAlt_con_subexpr1().GetRule_unary_subexpr1(), tail);
- case TRule_con_subexpr::kAltConSubexpr2: {
- MaybeUnnamedSmartParenOnTop = false;
- Ctx.IncrementMonCounter("sql_features", "UnaryOperation");
- TString opName;
- auto token = node.GetAlt_con_subexpr2().GetRule_unary_op1().GetToken1();
- Token(token);
- TPosition pos(Ctx.Pos());
- switch (token.GetId()) {
- case SQLv1LexerTokens::TOKEN_NOT: opName = "Not"; break;
- case SQLv1LexerTokens::TOKEN_PLUS: opName = "Plus"; break;
- case SQLv1LexerTokens::TOKEN_MINUS: opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMinus" : "Minus"; break;
- case SQLv1LexerTokens::TOKEN_TILDA: opName = "BitNot"; break;
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnsupportedUnaryOperation");
- Error() << "Unsupported unary operation: " << token.GetValue();
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_unary_operations", opName);
- auto expr = UnaryExpr(node.GetAlt_con_subexpr2().GetRule_unary_subexpr2(), tail);
- return expr ? expr->ApplyUnaryOp(Ctx, pos, opName) : expr;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- return nullptr;
-}
-
-TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQuestions& tail) {
- // xor_subexpr: eq_subexpr cond_expr?;
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && !node.HasBlock2();
- TNodePtr res(SubExpr(node.GetRule_eq_subexpr1(), node.HasBlock2() ? TTrailingQuestions{} : tail));
- if (!res) {
- return {};
- }
- TPosition pos(Ctx.Pos());
- if (node.HasBlock2()) {
- auto cond = node.GetBlock2().GetRule_cond_expr1();
- switch (cond.Alt_case()) {
- case TRule_cond_expr::kAltCondExpr1: {
- const auto& matchOp = cond.GetAlt_cond_expr1();
- const bool notMatch = matchOp.HasBlock1();
- const TCiString& opName = Token(matchOp.GetRule_match_op2().GetToken1());
- const auto& pattern = SubExpr(cond.GetAlt_cond_expr1().GetRule_eq_subexpr3(), matchOp.HasBlock4() ? TTrailingQuestions{} : tail);
- if (!pattern) {
- return {};
- }
- TNodePtr isMatch;
- if (opName == "like" || opName == "ilike") {
- const TString* escapeLiteral = nullptr;
- TNodePtr escapeNode;
- const auto& escaper = BuildUdf(Ctx, pos, "Re2", "PatternFromLike", {});
- TVector<TNodePtr> escaperArgs({ escaper, pattern });
-
- if (matchOp.HasBlock4()) {
- const auto& escapeBlock = matchOp.GetBlock4();
- TNodePtr escapeExpr = SubExpr(escapeBlock.GetRule_eq_subexpr2(), tail);
- if (!escapeExpr) {
- return {};
- }
- escapeLiteral = escapeExpr->GetLiteral("String");
- escapeNode = escapeExpr;
- if (escapeLiteral) {
- Ctx.IncrementMonCounter("sql_features", "LikeEscape");
- if (escapeLiteral->size() != 1) {
- Ctx.IncrementMonCounter("sql_errors", "LikeMultiCharEscape");
- Error() << "ESCAPE clause requires single character argument";
- return nullptr;
- }
- if (escapeLiteral[0] == "%" || escapeLiteral[0] == "_" || escapeLiteral[0] == "\\") {
- Ctx.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
- Error() << "'%', '_' and '\\' are currently not supported in ESCAPE clause, ";
- Error() << "please choose any other character";
- return nullptr;
- }
- if (!IsAscii(escapeLiteral->front())) {
- Ctx.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
- Error() << "Non-ASCII symbols are not supported in ESCAPE clause, ";
- Error() << "please choose ASCII character";
- return nullptr;
- }
- escaperArgs.push_back(BuildLiteralRawString(pos, *escapeLiteral));
- } else {
- Ctx.IncrementMonCounter("sql_errors", "LikeNotLiteralEscape");
- Error() << "ESCAPE clause requires String literal argument";
- return nullptr;
- }
- }
-
- auto re2options = BuildUdf(Ctx, pos, "Re2", "Options", {});
- if (opName == "ilike") {
- Ctx.IncrementMonCounter("sql_features", "CaseInsensitiveLike");
- }
- auto csModeLiteral = BuildLiteralBool(pos, opName != "ilike");
- csModeLiteral->SetLabel("CaseSensitive");
- auto csOption = BuildStructure(pos, { csModeLiteral });
- auto optionsApply = new TCallNodeImpl(pos, "NamedApply", { re2options, BuildTuple(pos, {}), csOption });
-
- const TNodePtr escapedPattern = new TCallNodeImpl(pos, "Apply", { escaperArgs });
- auto list = new TAstListNodeImpl(pos, { escapedPattern, optionsApply });
- auto runConfig = new TAstListNodeImpl(pos, { new TAstAtomNodeImpl(pos, "quote", 0), list });
-
- const TNodePtr matcher = new TCallNodeImpl(pos, "AssumeStrict", { BuildUdf(Ctx, pos, "Re2", "Match", { runConfig }) });
- isMatch = new TCallNodeImpl(pos, "Apply", { matcher, res });
-
- bool isUtf8 = false;
- const TString* literalPattern = pattern->GetLiteral("String");
- if (!literalPattern) {
- literalPattern = pattern->GetLiteral("Utf8");
- isUtf8 = literalPattern != nullptr;
- }
-
- if (literalPattern) {
- bool inEscape = false;
- TMaybe<char> escape;
- if (escapeLiteral) {
- escape = escapeLiteral->front();
- }
-
- bool mayIgnoreCase;
- TVector<TPatternComponent<char>> components;
- if (isUtf8) {
- auto splitResult = SplitPattern(UTF8ToUTF32<false>(*literalPattern), escape, inEscape);
- for (const auto& component : splitResult) {
- TPatternComponent<char> converted;
- converted.IsSimple = component.IsSimple;
- converted.Prefix = WideToUTF8(component.Prefix);
- converted.Suffix = WideToUTF8(component.Suffix);
- components.push_back(std::move(converted));
- }
- mayIgnoreCase = ToLowerUTF8(*literalPattern) == ToUpperUTF8(*literalPattern);
- } else {
- components = SplitPattern(*literalPattern, escape, inEscape);
- mayIgnoreCase = WithoutAlpha(*literalPattern);
- }
-
- if (inEscape) {
- Ctx.IncrementMonCounter("sql_errors", "LikeEscapeSymbolEnd");
- Error() << "LIKE pattern should not end with escape symbol";
- return nullptr;
- }
-
- if (opName == "like" || mayIgnoreCase) {
- // TODO: expand LIKE in optimizers - we can analyze argument types there
- YQL_ENSURE(!components.empty());
- const auto& first = components.front();
- if (components.size() == 1 && first.IsSimple) {
- // no '%'s and '_'s in pattern
- YQL_ENSURE(first.Prefix == first.Suffix);
- isMatch = BuildBinaryOp(Ctx, pos, "==", res, BuildLiteralRawString(pos, first.Suffix, isUtf8));
- } else if (!first.Prefix.empty()) {
- const TString& prefix = first.Prefix;
- TNodePtr prefixMatch;
- if (Ctx.EmitStartsWith) {
- prefixMatch = BuildBinaryOp(Ctx, pos, "StartsWith", res, BuildLiteralRawString(pos, prefix, isUtf8));
- } else {
- prefixMatch = BuildBinaryOp(Ctx, pos, ">=", res, BuildLiteralRawString(pos, prefix, isUtf8));
- auto upperBound = isUtf8 ? NextValidUtf8(prefix) : NextLexicographicString(prefix);
- if (upperBound) {
- prefixMatch = BuildBinaryOp(
- Ctx,
- pos,
- "And",
- prefixMatch,
- BuildBinaryOp(Ctx, pos, "<", res, BuildLiteralRawString(pos, TString(*upperBound), isUtf8))
- );
- }
- }
-
- if (Ctx.AnsiLike && first.IsSimple && components.size() == 2 && components.back().IsSimple) {
- const TString& suffix = components.back().Suffix;
- // 'prefix%suffix'
- if (suffix.empty()) {
- isMatch = prefixMatch;
- } else {
- // len(str) >= len(prefix) + len(suffix) && StartsWith(str, prefix) && EndsWith(str, suffix)
- TNodePtr sizePred = BuildBinaryOp(Ctx, pos, ">=",
- TNodePtr(new TCallNodeImpl(pos, "Size", { res })),
- TNodePtr(new TLiteralNumberNode<ui32>(pos, "Uint32", ToString(prefix.size() + suffix.size()))));
- TNodePtr suffixMatch = BuildBinaryOp(Ctx, pos, "EndsWith", res, BuildLiteralRawString(pos, suffix, isUtf8));
- isMatch = new TCallNodeImpl(pos, "And", {
- sizePred,
- prefixMatch,
- suffixMatch
- });
- }
- } else {
- isMatch = BuildBinaryOp(Ctx, pos, "And", prefixMatch, isMatch);
- }
- } else if (Ctx.AnsiLike && AllOf(components, [](const auto& comp) { return comp.IsSimple; })) {
- YQL_ENSURE(first.Prefix.empty());
- if (components.size() == 3 && components.back().Prefix.empty()) {
- // '%foo%'
- YQL_ENSURE(!components[1].Prefix.empty());
- isMatch = BuildBinaryOp(Ctx, pos, "StringContains", res, BuildLiteralRawString(pos, components[1].Prefix, isUtf8));
- } else if (components.size() == 2) {
- // '%foo'
- isMatch = BuildBinaryOp(Ctx, pos, "EndsWith", res, BuildLiteralRawString(pos, components[1].Prefix, isUtf8));
- }
- } else if (Ctx.AnsiLike && !components.back().Suffix.empty()) {
- const TString& suffix = components.back().Suffix;
- TNodePtr suffixMatch = BuildBinaryOp(Ctx, pos, "EndsWith", res, BuildLiteralRawString(pos, suffix, isUtf8));
- isMatch = BuildBinaryOp(Ctx, pos, "And", suffixMatch, isMatch);
- }
- // TODO: more StringContains/StartsWith/EndsWith cases?
- }
- }
-
- Ctx.IncrementMonCounter("sql_features", notMatch ? "NotLike" : "Like");
-
- } else if (opName == "regexp" || opName == "rlike" || opName == "match") {
- if (matchOp.HasBlock4()) {
- Ctx.IncrementMonCounter("sql_errors", "RegexpEscape");
- TString opNameUpper(opName);
- opNameUpper.to_upper();
- Error() << opName << " and ESCAPE clauses should not be used together";
- return nullptr;
- }
-
- if (!Ctx.PragmaRegexUseRe2) {
- Ctx.Warning(pos, TIssuesIds::CORE_LEGACY_REGEX_ENGINE) << "Legacy regex engine works incorrectly with unicode. Use PRAGMA RegexUseRe2='true';";
- }
-
- const auto& matcher = Ctx.PragmaRegexUseRe2 ?
- BuildUdf(Ctx, pos, "Re2", opName == "match" ? "Match" : "Grep", {BuildTuple(pos, {pattern, BuildLiteralNull(pos)})}):
- BuildUdf(Ctx, pos, "Pcre", opName == "match" ? "BacktrackingMatch" : "BacktrackingGrep", { pattern });
- isMatch = new TCallNodeImpl(pos, "Apply", { matcher, res });
- if (opName != "match") {
- Ctx.IncrementMonCounter("sql_features", notMatch ? "NotRegexp" : "Regexp");
- } else {
- Ctx.IncrementMonCounter("sql_features", notMatch ? "NotMatch" : "Match");
- }
- } else {
- Ctx.IncrementMonCounter("sql_errors", "UnknownMatchOp");
- AltNotImplemented("match_op", cond);
- return nullptr;
- }
- return (notMatch && isMatch) ? isMatch->ApplyUnaryOp(Ctx, pos, "Not") : isMatch;
- }
- case TRule_cond_expr::kAltCondExpr2: {
- // | NOT? IN COMPACT? in_expr
- auto altInExpr = cond.GetAlt_cond_expr2();
- const bool notIn = altInExpr.HasBlock1();
- auto hints = BuildTuple(pos, {});
- bool isCompact = altInExpr.HasBlock3();
- if (!isCompact) {
- auto sqlHints = Ctx.PullHintForToken(Ctx.TokenPosition(altInExpr.GetToken2()));
- isCompact = AnyOf(sqlHints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
- }
- if (isCompact) {
- Ctx.IncrementMonCounter("sql_features", "IsCompactHint");
- auto sizeHint = BuildTuple(pos, { BuildQuotedAtom(pos, "isCompact", NYql::TNodeFlags::Default) });
- hints = BuildTuple(pos, { sizeHint });
- }
- TSqlExpression inSubexpr(Ctx, Mode);
- auto inRight = inSubexpr.SqlInExpr(altInExpr.GetRule_in_expr4(), tail);
- auto isIn = BuildBuiltinFunc(Ctx, pos, "In", {res, inRight, hints});
- Ctx.IncrementMonCounter("sql_features", notIn ? "NotIn" : "In");
- return (notIn && isIn) ? isIn->ApplyUnaryOp(Ctx, pos, "Not") : isIn;
- }
- case TRule_cond_expr::kAltCondExpr3: {
- if (tail.Count) {
- UnexpectedQuestionToken(tail);
- return {};
- }
- auto altCase = cond.GetAlt_cond_expr3().GetBlock1().Alt_case();
- const bool notNoll =
- altCase == TRule_cond_expr::TAlt3::TBlock1::kAlt2 ||
- altCase == TRule_cond_expr::TAlt3::TBlock1::kAlt4
- ;
-
- if (altCase == TRule_cond_expr::TAlt3::TBlock1::kAlt4 &&
- !cond.GetAlt_cond_expr3().GetBlock1().GetAlt4().HasBlock1())
- {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_MISSING_IS_BEFORE_NOT_NULL) << "Missing IS keyword before NOT NULL";
- }
-
- auto isNull = BuildIsNullOp(pos, res);
- Ctx.IncrementMonCounter("sql_features", notNoll ? "NotNull" : "Null");
- return (notNoll && isNull) ? isNull->ApplyUnaryOp(Ctx, pos, "Not") : isNull;
- }
- case TRule_cond_expr::kAltCondExpr4: {
- auto alt = cond.GetAlt_cond_expr4();
- if (alt.HasBlock1()) {
- Ctx.IncrementMonCounter("sql_features", "NotBetween");
- return BuildBinaryOp(
- Ctx,
- pos,
- "Or",
- BuildBinaryOp(Ctx, pos, "<", res, SubExpr(alt.GetRule_eq_subexpr3(), {})),
- BuildBinaryOp(Ctx, pos, ">", res, SubExpr(alt.GetRule_eq_subexpr5(), tail))
- );
- } else {
- Ctx.IncrementMonCounter("sql_features", "Between");
- return BuildBinaryOp(
- Ctx,
- pos,
- "And",
- BuildBinaryOp(Ctx, pos, ">=", res, SubExpr(alt.GetRule_eq_subexpr3(), {})),
- BuildBinaryOp(Ctx, pos, "<=", res, SubExpr(alt.GetRule_eq_subexpr5(), tail))
- );
- }
- }
- case TRule_cond_expr::kAltCondExpr5: {
- auto alt = cond.GetAlt_cond_expr5();
- auto getNode = [](const TRule_cond_expr::TAlt5::TBlock1& b) -> const TRule_eq_subexpr& { return b.GetRule_eq_subexpr2(); };
- return BinOpList(node.GetRule_eq_subexpr1(), getNode, alt.GetBlock1().begin(), alt.GetBlock1().end(), tail);
- }
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownConditionExpr");
- AltNotImplemented("cond_expr", cond);
- return nullptr;
- }
- }
- return res;
-}
-
-TNodePtr TSqlExpression::BinOperList(const TString& opName, TVector<TNodePtr>::const_iterator begin, TVector<TNodePtr>::const_iterator end) const {
- TPosition pos(Ctx.Pos());
- const size_t opCount = end - begin;
- Y_VERIFY_DEBUG(opCount >= 2);
- if (opCount == 2) {
- return BuildBinaryOp(Ctx, pos, opName, *begin, *(begin+1));
- } if (opCount == 3) {
- return BuildBinaryOp(Ctx, pos, opName, BuildBinaryOp(Ctx, pos, opName, *begin, *(begin+1)), *(begin+2));
- } else {
- auto mid = begin + opCount / 2;
- return BuildBinaryOp(Ctx, pos, opName, BinOperList(opName, begin, mid), BinOperList(opName, mid, end));
- }
-}
-
-TSqlExpression::TCaseBranch TSqlExpression::ReduceCaseBranches(TVector<TCaseBranch>::const_iterator begin, TVector<TCaseBranch>::const_iterator end) const {
- YQL_ENSURE(begin < end);
- const size_t branchCount = end - begin;
- if (branchCount == 1) {
- return *begin;
- }
-
- auto mid = begin + branchCount / 2;
- auto left = ReduceCaseBranches(begin, mid);
- auto right = ReduceCaseBranches(mid, end);
-
- TVector<TNodePtr> preds;
- preds.reserve(branchCount);
- for (auto it = begin; it != end; ++it) {
- preds.push_back(it->Pred);
- }
-
- TCaseBranch result;
- result.Pred = new TCallNodeImpl(Ctx.Pos(), "Or", preds);
- result.Value = BuildBuiltinFunc(Ctx, Ctx.Pos(), "If", { left.Pred, left.Value, right.Value });
- return result;
-}
-
-template <typename TNode, typename TGetNode, typename TIter>
-TNodePtr TSqlExpression::BinOper(const TString& opName, const TNode& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
- if (begin == end) {
- return SubExpr(node, tail);
- }
- // can't have top level smart_parenthesis node if any binary operation is present
- MaybeUnnamedSmartParenOnTop = false;
- Ctx.IncrementMonCounter("sql_binary_operations", opName);
- const size_t listSize = end - begin;
- TVector<TNodePtr> nodes;
- nodes.reserve(1 + listSize);
- nodes.push_back(SubExpr(node, {}));
- for (; begin != end; ++begin) {
- nodes.push_back(SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
- }
- return BinOperList(opName, nodes.begin(), nodes.end());
-}
-
-template <typename TNode, typename TGetNode, typename TIter>
-TNodePtr TSqlExpression::BinOpList(const TNode& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (begin == end);
- TNodePtr partialResult = SubExpr(node, (begin == end) ? tail : TTrailingQuestions{});
- while (begin != end) {
- Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
- Token(begin->GetToken1());
- TPosition pos(Ctx.Pos());
- TString opName;
- auto tokenId = begin->GetToken1().GetId();
- switch (tokenId) {
- case SQLv1LexerTokens::TOKEN_LESS:
- Ctx.IncrementMonCounter("sql_binary_operations", "Less");
- opName = "<";
- break;
- case SQLv1LexerTokens::TOKEN_LESS_OR_EQ:
- opName = "<=";
- Ctx.IncrementMonCounter("sql_binary_operations", "LessOrEq");
- break;
- case SQLv1LexerTokens::TOKEN_GREATER:
- opName = ">";
- Ctx.IncrementMonCounter("sql_binary_operations", "Greater");
- break;
- case SQLv1LexerTokens::TOKEN_GREATER_OR_EQ:
- opName = ">=";
- Ctx.IncrementMonCounter("sql_binary_operations", "GreaterOrEq");
- break;
- case SQLv1LexerTokens::TOKEN_PLUS:
- opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedAdd" : "+MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Plus");
- break;
- case SQLv1LexerTokens::TOKEN_MINUS:
- opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedSub" : "-MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Minus");
- break;
- case SQLv1LexerTokens::TOKEN_ASTERISK:
- opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMul" : "*MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Multiply");
- break;
- case SQLv1LexerTokens::TOKEN_SLASH:
- opName = "/MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Divide");
- if (!Ctx.Scoped->PragmaClassicDivision && partialResult) {
- partialResult = new TCallNodeImpl(pos, "SafeCast", {std::move(partialResult), BuildDataType(pos, "Double")});
- } else if (Ctx.Scoped->PragmaCheckedOps) {
- opName = "CheckedDiv";
- }
- break;
- case SQLv1LexerTokens::TOKEN_PERCENT:
- opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMod" : "%MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Mod");
- break;
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnsupportedBinaryOperation");
- Error() << "Unsupported binary operation token: " << tokenId;
- return nullptr;
- }
-
- partialResult = BuildBinaryOp(Ctx, pos, opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
- ++begin;
- }
-
- return partialResult;
-}
-
-template <typename TGetNode, typename TIter>
-TNodePtr TSqlExpression::BinOpList(const TRule_bit_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (begin == end);
- TNodePtr partialResult = SubExpr(node, (begin == end) ? tail : TTrailingQuestions{});
- while (begin != end) {
- Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
- TString opName;
- switch (begin->GetBlock1().Alt_case()) {
- case TRule_neq_subexpr_TBlock2_TBlock1::kAlt1: {
- Token(begin->GetBlock1().GetAlt1().GetToken1());
- auto tokenId = begin->GetBlock1().GetAlt1().GetToken1().GetId();
- if (tokenId != SQLv1LexerTokens::TOKEN_SHIFT_LEFT) {
- Error() << "Unsupported binary operation token: " << tokenId;
- return {};
- }
- opName = "ShiftLeft";
- Ctx.IncrementMonCounter("sql_binary_operations", "ShiftLeft");
- break;
- }
- case TRule_neq_subexpr_TBlock2_TBlock1::kAlt2: {
- opName = "ShiftRight";
- Ctx.IncrementMonCounter("sql_binary_operations", "ShiftRight");
- break;
- }
- case TRule_neq_subexpr_TBlock2_TBlock1::kAlt3: {
- Token(begin->GetBlock1().GetAlt3().GetToken1());
- auto tokenId = begin->GetBlock1().GetAlt3().GetToken1().GetId();
- if (tokenId != SQLv1LexerTokens::TOKEN_ROT_LEFT) {
- Error() << "Unsupported binary operation token: " << tokenId;
- return {};
- }
- opName = "RotLeft";
- Ctx.IncrementMonCounter("sql_binary_operations", "RotLeft");
- break;
- }
- case TRule_neq_subexpr_TBlock2_TBlock1::kAlt4: {
- opName = "RotRight";
- Ctx.IncrementMonCounter("sql_binary_operations", "RotRight");
- break;
- }
- case TRule_neq_subexpr_TBlock2_TBlock1::kAlt5: {
- Token(begin->GetBlock1().GetAlt5().GetToken1());
- auto tokenId = begin->GetBlock1().GetAlt5().GetToken1().GetId();
- if (tokenId != SQLv1LexerTokens::TOKEN_AMPERSAND) {
- Error() << "Unsupported binary operation token: " << tokenId;
- return {};
- }
- opName = "BitAnd";
- Ctx.IncrementMonCounter("sql_binary_operations", "BitAnd");
- break;
- }
- case TRule_neq_subexpr_TBlock2_TBlock1::kAlt6: {
- Token(begin->GetBlock1().GetAlt6().GetToken1());
- auto tokenId = begin->GetBlock1().GetAlt6().GetToken1().GetId();
- if (tokenId != SQLv1LexerTokens::TOKEN_PIPE) {
- Error() << "Unsupported binary operation token: " << tokenId;
- return {};
- }
- opName = "BitOr";
- Ctx.IncrementMonCounter("sql_binary_operations", "BitOr");
- break;
- }
- case TRule_neq_subexpr_TBlock2_TBlock1::kAlt7: {
- Token(begin->GetBlock1().GetAlt7().GetToken1());
- auto tokenId = begin->GetBlock1().GetAlt7().GetToken1().GetId();
- if (tokenId != SQLv1LexerTokens::TOKEN_CARET) {
- Error() << "Unsupported binary operation token: " << tokenId;
- return {};
- }
- opName = "BitXor";
- Ctx.IncrementMonCounter("sql_binary_operations", "BitXor");
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- partialResult = BuildBinaryOp(Ctx, Ctx.Pos(), opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
- ++begin;
- }
-
- return partialResult;
-}
-
-template <typename TGetNode, typename TIter>
-TNodePtr TSqlExpression::BinOpList(const TRule_eq_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (begin == end);
- TNodePtr partialResult = SubExpr(node, (begin == end) ? tail : TTrailingQuestions{});
- while (begin != end) {
- Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
- TString opName;
- switch (begin->GetBlock1().Alt_case()) {
- case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt1: {
- Token(begin->GetBlock1().GetAlt1().GetToken1());
- auto tokenId = begin->GetBlock1().GetAlt1().GetToken1().GetId();
- if (tokenId != SQLv1LexerTokens::TOKEN_EQUALS) {
- Error() << "Unsupported binary operation token: " << tokenId;
- return {};
- }
- Ctx.IncrementMonCounter("sql_binary_operations", "Equals");
- opName = "==";
- break;
- }
- case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt2: {
- Token(begin->GetBlock1().GetAlt2().GetToken1());
- auto tokenId = begin->GetBlock1().GetAlt2().GetToken1().GetId();
- if (tokenId != SQLv1LexerTokens::TOKEN_EQUALS2) {
- Error() << "Unsupported binary operation token: " << tokenId;
- return {};
- }
- Ctx.IncrementMonCounter("sql_binary_operations", "Equals2");
- opName = "==";
- break;
- }
- case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt3: {
- Token(begin->GetBlock1().GetAlt3().GetToken1());
- auto tokenId = begin->GetBlock1().GetAlt3().GetToken1().GetId();
- if (tokenId != SQLv1LexerTokens::TOKEN_NOT_EQUALS) {
- Error() << "Unsupported binary operation token: " << tokenId;
- return {};
- }
- Ctx.IncrementMonCounter("sql_binary_operations", "NotEquals");
- opName = "!=";
- break;
- }
- case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt4: {
- Token(begin->GetBlock1().GetAlt4().GetToken1());
- auto tokenId = begin->GetBlock1().GetAlt4().GetToken1().GetId();
- if (tokenId != SQLv1LexerTokens::TOKEN_NOT_EQUALS2) {
- Error() << "Unsupported binary operation token: " << tokenId;
- return {};
- }
- Ctx.IncrementMonCounter("sql_binary_operations", "NotEquals2");
- opName = "!=";
- break;
- }
- case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt5: {
- Token(begin->GetBlock1().GetAlt5().GetRule_distinct_from_op1().GetToken1());
- opName = begin->GetBlock1().GetAlt5().GetRule_distinct_from_op1().HasBlock2() ? "IsNotDistinctFrom" : "IsDistinctFrom";
- Ctx.IncrementMonCounter("sql_binary_operations", opName);
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- partialResult = BuildBinaryOp(Ctx, Ctx.Pos(), opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
- ++begin;
- }
-
- return partialResult;
-}
-
-TNodePtr TSqlExpression::SqlInExpr(const TRule_in_expr& node, const TTrailingQuestions& tail) {
- TSqlExpression expr(Ctx, Mode);
- expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::InStatement);
- auto result = expr.UnaryExpr(node.GetRule_in_unary_subexpr1(), tail);
- return result;
-}
-
-TNodePtr TSqlExpression::SmartParenthesis(const TRule_smart_parenthesis& node) {
- TVector<TNodePtr> exprs;
- Token(node.GetToken1());
- const TPosition pos(Ctx.Pos());
- const bool isTuple = node.HasBlock3();
- bool expectTuple = SmartParenthesisMode == ESmartParenthesis::InStatement;
- EExpr mode = EExpr::Regular;
- if (SmartParenthesisMode == ESmartParenthesis::SqlLambdaParams) {
- mode = EExpr::SqlLambdaParams;
- expectTuple = true;
- }
- if (node.HasBlock2() && !NamedExprList(node.GetBlock2().GetRule_named_expr_list1(), exprs, mode)) {
- return {};
- }
-
- bool topLevelGroupBy = MaybeUnnamedSmartParenOnTop && SmartParenthesisMode == ESmartParenthesis::GroupBy;
-
- bool hasAliases = false;
- bool hasUnnamed = false;
- for (const auto& expr: exprs) {
- if (expr->GetLabel()) {
- hasAliases = true;
- } else {
- hasUnnamed = true;
- }
- if (hasAliases && hasUnnamed && !topLevelGroupBy) {
- Ctx.IncrementMonCounter("sql_errors", "AnonymousStructMembers");
- Ctx.Error(pos) << "Structure does not allow anonymous members";
- return nullptr;
- }
- }
- if (exprs.size() == 1 && hasUnnamed && !isTuple && !expectTuple) {
- return exprs.back();
- }
- if (topLevelGroupBy) {
- if (isTuple) {
- Ctx.IncrementMonCounter("sql_errors", "SimpleTupleInGroupBy");
- Token(node.GetBlock3().GetToken1());
- Ctx.Error() << "Unexpected trailing comma in grouping elements list";
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", "ListOfNamedNode");
- return BuildListOfNamedNodes(pos, std::move(exprs));
- }
- Ctx.IncrementMonCounter("sql_features", hasUnnamed ? "SimpleTuple" : "SimpleStruct");
- return (hasUnnamed || expectTuple || exprs.size() == 0) ? BuildTuple(pos, exprs) : BuildStructure(pos, exprs);
-}
-
-TNodePtr TSqlTranslation::NamedNode(const TRule_named_nodes_stmt& rule, TVector<TSymbolNameWithPos>& names) {
- // named_nodes_stmt: bind_parameter_list EQUALS (expr | subselect_stmt);
- // subselect_stmt: (LPAREN select_stmt RPAREN | select_unparenthesized_stmt);
- if (!BindList(rule.GetRule_bind_parameter_list1(), names)) {
- return {};
- }
-
- TNodePtr nodeExpr = nullptr;
- switch (rule.GetBlock3().Alt_case()) {
- case TRule_named_nodes_stmt::TBlock3::kAlt1: {
- TSqlExpression expr(Ctx, Mode);
- auto result = expr.Build(rule.GetBlock3().GetAlt1().GetRule_expr1());
- return result;
- }
-
- case TRule_named_nodes_stmt::TBlock3::kAlt2:{
- const auto& subselect_rule = rule.GetBlock3().GetAlt2().GetRule_subselect_stmt1();
-
- TSqlSelect expr(Ctx, Mode);
- TPosition pos;
- TSourcePtr source = nullptr;
- switch (subselect_rule.GetBlock1().Alt_case()) {
- case TRule_subselect_stmt::TBlock1::kAlt1:
- source = expr.Build(subselect_rule.GetBlock1().GetAlt1().GetRule_select_stmt2(), pos);
- break;
-
- case TRule_subselect_stmt::TBlock1::kAlt2:
- source = expr.Build(subselect_rule.GetBlock1().GetAlt2().GetRule_select_unparenthesized_stmt1(), pos);
- break;
-
- default:
- AltNotImplemented("subselect_stmt", subselect_rule.GetBlock1());
- Ctx.IncrementMonCounter("sql_errors", "UnknownNamedNode");
- return nullptr;
- }
-
- if (!source) {
- return {};
- }
-
- return BuildSourceNode(pos, std::move(source));
- }
-
- default:
- AltNotImplemented("named_node", rule.GetBlock3());
- Ctx.IncrementMonCounter("sql_errors", "UnknownNamedNode");
- return nullptr;
- }
-}
-
-bool TSqlTranslation::ImportStatement(const TRule_import_stmt& stmt, TVector<TString>* namesPtr) {
- TVector<TString> modulePath;
- if (!ModulePath(stmt.GetRule_module_path2(), modulePath)) {
- return false;
- }
-
- TVector<TSymbolNameWithPos> names;
- TVector<TSymbolNameWithPos> aliases;
- if (!NamedBindList(stmt.GetRule_named_bind_parameter_list4(), names, aliases)) {
- return false;
- }
- YQL_ENSURE(names.size() == aliases.size());
- const TString moduleAlias = Ctx.AddImport(std::move(modulePath));
- if (!moduleAlias) {
- return false;
- }
-
- for (size_t i = 0; i < names.size(); ++i) {
- auto& name = names[i];
- auto& alias = aliases[i];
-
- auto& var = alias.Name ? alias : name;
- if (IsAnonymousName(var.Name)) {
- Ctx.Error(var.Pos) << "Can not import anonymous name " << var.Name;
- return false;
- }
-
- auto builder = [&](const TString& realName) {
- YQL_ENSURE(realName == var.Name);
- auto atom = BuildQuotedAtom(name.Pos, name.Name);
- return atom->Y("bind", moduleAlias, atom);
- };
-
- var.Name = PushNamedNode(var.Pos, var.Name, builder);
- if (namesPtr) {
- namesPtr->push_back(var.Name);
- }
- }
- return true;
-}
-
-bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock3& block, TMaybe<TPosition> anyPos) {
- // block: (join_op (ANY)? flatten_source join_constraint?)
- // join_op:
- // COMMA
- // | (NATURAL)? ((LEFT (ONLY | SEMI)? | RIGHT (ONLY | SEMI)? | EXCLUSION | FULL)? (OUTER)? | INNER | CROSS) JOIN
- //;
- const auto& node = block.GetRule_join_op1();
- switch (node.Alt_case()) {
- case TRule_join_op::kAltJoinOp1:
- Ctx.IncrementMonCounter("sql_join_operations", "CartesianProduct");
- Error() << "Cartesian product of tables is not supported. Please use explicit CROSS JOIN";
- return false;
- case TRule_join_op::kAltJoinOp2: {
- auto alt = node.GetAlt_join_op2();
- if (alt.HasBlock1()) {
- Ctx.IncrementMonCounter("sql_join_operations", "Natural");
- Error() << "Natural join is not implemented yet";
- return false;
- }
- TString joinOp("Inner");
- auto hints = Ctx.PullHintForToken(Ctx.TokenPosition(alt.GetToken3()));
- TJoinLinkSettings linkSettings;
- linkSettings.ForceSortedMerge = AnyOf(hints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "merge"; });
- switch (alt.GetBlock2().Alt_case()) {
- case TRule_join_op::TAlt2::TBlock2::kAlt1:
- if (alt.GetBlock2().GetAlt1().HasBlock1()) {
- auto block = alt.GetBlock2().GetAlt1().GetBlock1();
- switch (block.Alt_case()) {
- case TRule_join_op_TAlt2_TBlock2_TAlt1_TBlock1::kAlt1:
- // left
- joinOp = Token(block.GetAlt1().GetToken1());
- if (block.GetAlt1().HasBlock2()) {
- joinOp += " " + Token(block.GetAlt1().GetBlock2().GetToken1());
- }
- break;
- case TRule_join_op_TAlt2_TBlock2_TAlt1_TBlock1::kAlt2:
- // right
- joinOp = Token(block.GetAlt2().GetToken1());
- if (block.GetAlt2().HasBlock2()) {
- joinOp += " " + Token(block.GetAlt2().GetBlock2().GetToken1());
- }
-
- break;
- case TRule_join_op_TAlt2_TBlock2_TAlt1_TBlock1::kAlt3:
- // exclusion
- joinOp = Token(block.GetAlt3().GetToken1());
- break;
- case TRule_join_op_TAlt2_TBlock2_TAlt1_TBlock1::kAlt4:
- // full
- joinOp = Token(block.GetAlt4().GetToken1());
- break;
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
- AltNotImplemented("join_op", node);
- return false;
- }
- }
- if (alt.GetBlock2().GetAlt1().HasBlock2()) {
- TString normalizedOp = alt.GetBlock2().GetAlt1().HasBlock1() ? joinOp : "";
- normalizedOp.to_upper();
- if (!(normalizedOp == "LEFT" || normalizedOp == "RIGHT" || normalizedOp == "FULL")) {
- Token(alt.GetBlock2().GetAlt1().GetBlock2().GetToken1());
- Error() << "Invalid join type: " << normalizedOp << (normalizedOp.empty() ? "" : " ") << "OUTER JOIN. "
- << "OUTER keyword is optional and can only be used after LEFT, RIGHT or FULL";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinType");
- return false;
- }
- }
- break;
- case TRule_join_op::TAlt2::TBlock2::kAlt2:
- joinOp = Token(alt.GetBlock2().GetAlt2().GetToken1());
- break;
- case TRule_join_op::TAlt2::TBlock2::kAlt3:
- joinOp = Token(alt.GetBlock2().GetAlt3().GetToken1());
- break;
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
- AltNotImplemented("join_op", node);
- return false;
- }
-
- joinOp = NormalizeJoinOp(joinOp);
- Ctx.IncrementMonCounter("sql_features", "Join");
- Ctx.IncrementMonCounter("sql_join_operations", joinOp);
-
- TNodePtr joinKeyExpr;
- if (block.HasBlock4()) {
- if (joinOp == "Cross") {
- Error() << "Cross join should not have ON or USING expression";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
- return false;
- }
-
- joinKeyExpr = JoinExpr(join, block.GetBlock4().GetRule_join_constraint1());
- if (!joinKeyExpr) {
- Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
- return false;
- }
- }
- else {
- if (joinOp != "Cross") {
- Error() << "Expected ON or USING expression";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
- return false;
- }
- }
-
- if (joinOp == "Cross" && anyPos) {
- Ctx.Error(*anyPos) << "ANY should not be used with Cross JOIN";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinAny");
- return false;
- }
-
- Y_VERIFY_DEBUG(join->GetJoin());
- join->GetJoin()->SetupJoin(joinOp, joinKeyExpr, linkSettings);
- break;
- }
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation2");
- AltNotImplemented("join_op", node);
- return false;
- }
- return true;
-}
-
-TNodePtr TSqlSelect::JoinExpr(ISource* join, const TRule_join_constraint& node) {
- switch (node.Alt_case()) {
- case TRule_join_constraint::kAltJoinConstraint1: {
- auto& alt = node.GetAlt_join_constraint1();
- Token(alt.GetToken1());
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
- return expr.Build(alt.GetRule_expr2());
- }
- case TRule_join_constraint::kAltJoinConstraint2: {
- auto& alt = node.GetAlt_join_constraint2();
- Token(alt.GetToken1());
- TPosition pos(Ctx.Pos());
- TVector<TDeferredAtom> names;
- if (!PureColumnOrNamedListStr(alt.GetRule_pure_column_or_named_list2(), *this, names)) {
- return nullptr;
- }
-
- Y_VERIFY_DEBUG(join->GetJoin());
- return join->GetJoin()->BuildJoinKeys(Ctx, names);
- }
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinConstraint");
- AltNotImplemented("join_constraint", node);
- break;
- }
- return nullptr;
-}
-
-bool TSqlSelect::FlattenByArg(const TString& sourceLabel, TVector<TNodePtr>& flattenByColumns, TVector<TNodePtr>& flattenByExprs,
- const TRule_flatten_by_arg& node)
-{
- // flatten_by_arg:
- // named_column
- // | LPAREN named_expr_list COMMA? RPAREN
- // ;
-
- flattenByColumns.clear();
- flattenByExprs.clear();
-
- TVector<TNodePtr> namedExprs;
- switch (node.Alt_case()) {
- case TRule_flatten_by_arg::kAltFlattenByArg1: {
- TVector<TNodePtr> columns;
- if (!NamedColumn(columns, node.GetAlt_flatten_by_arg1().GetRule_named_column1())) {
- return false;
- }
- YQL_ENSURE(columns.size() == 1);
- auto& column = columns.back();
- auto columnNamePtr = column->GetColumnName();
- YQL_ENSURE(columnNamePtr && *columnNamePtr);
-
- auto sourcePtr = column->GetSourceName();
- const bool isEmptySource = !sourcePtr || !*sourcePtr;
- if (isEmptySource || *sourcePtr == sourceLabel) {
- // select * from T flatten by x
- // select * from T as s flatten by x
- // select * from T as s flatten by s.x
- flattenByColumns.emplace_back(std::move(column));
- } else {
- // select * from T as s flatten by x.y as z
- if (!column->GetLabel()) {
- Ctx.Error(column->GetPos()) << "Unnamed expression after FLATTEN BY is not allowed";
- return false;
- }
- flattenByColumns.emplace_back(BuildColumn(column->GetPos(), column->GetLabel()));
-
- TVector<INode::TIdPart> ids;
- ids.push_back(BuildColumn(column->GetPos()));
- ids.push_back(*sourcePtr);
- ids.push_back(*columnNamePtr);
- auto node = BuildAccess(column->GetPos(), ids, false);
- node->SetLabel(column->GetLabel());
- flattenByExprs.emplace_back(std::move(node));
- }
-
- break;
- }
- case TRule_flatten_by_arg::kAltFlattenByArg2: {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- if (!NamedExprList(node.GetAlt_flatten_by_arg2().GetRule_named_expr_list2(), namedExprs) || Ctx.HasPendingErrors) {
- return false;
- }
- for (auto& namedExprNode : namedExprs) {
- YQL_ENSURE(!namedExprNode->ContentListPtr());
-
- auto sourcePtr = namedExprNode->GetSourceName();
- const bool isEmptySource = !sourcePtr || !*sourcePtr;
- auto columnNamePtr = namedExprNode->GetColumnName();
- if (columnNamePtr && (isEmptySource || *sourcePtr == sourceLabel)) {
- namedExprNode->AssumeColumn();
- flattenByColumns.emplace_back(std::move(namedExprNode));
- } else {
- auto nodeLabel = namedExprNode->GetLabel();
- if (!nodeLabel) {
- Ctx.Error(namedExprNode->GetPos()) << "Unnamed expression after FLATTEN BY is not allowed";
- return false;
- }
- flattenByColumns.emplace_back(BuildColumn(namedExprNode->GetPos(), nodeLabel));
- flattenByExprs.emplace_back(std::move(namedExprNode));
- }
- }
- break;
- }
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownFlattenByArg");
- AltNotImplemented("flatten_by_arg", node);
- return false;
- }
- return true;
-}
-
-TSourcePtr TSqlSelect::FlattenSource(const TRule_flatten_source& node) {
- auto source = NamedSingleSource(node.GetRule_named_single_source1(), true);
- if (!source) {
- return nullptr;
- }
- if (node.HasBlock2()) {
- auto flatten = node.GetBlock2();
- auto flatten2 = flatten.GetBlock2();
- switch (flatten2.Alt_case()) {
- case TRule_flatten_source::TBlock2::TBlock2::kAlt1: {
- TString mode = "auto";
- if (flatten2.GetAlt1().HasBlock1()) {
- mode = to_lower(Token(flatten2.GetAlt1().GetBlock1().GetToken1()));
- }
-
- TVector<TNodePtr> flattenByColumns;
- TVector<TNodePtr> flattenByExprs;
- if (!FlattenByArg(source->GetLabel(), flattenByColumns, flattenByExprs, flatten2.GetAlt1().GetRule_flatten_by_arg3())) {
- return nullptr;
- }
-
- Ctx.IncrementMonCounter("sql_features", "FlattenByColumns");
- if (!source->AddExpressions(Ctx, flattenByColumns, EExprSeat::FlattenBy)) {
- return nullptr;
- }
-
- if (!source->AddExpressions(Ctx, flattenByExprs, EExprSeat::FlattenByExpr)) {
- return nullptr;
- }
-
- source->SetFlattenByMode(mode);
- break;
- }
- case TRule_flatten_source::TBlock2::TBlock2::kAlt2: {
- Ctx.IncrementMonCounter("sql_features", "FlattenColumns");
- source->MarkFlattenColumns();
- break;
- }
-
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownOrdinaryNamedColumn");
- AltNotImplemented("flatten_source", flatten2);
- }
- }
- return source;
-}
-
-TSourcePtr TSqlSelect::JoinSource(const TRule_join_source& node) {
- // join_source: (ANY)? flatten_source (join_op (ANY)? flatten_source join_constraint?)*;
- if (node.HasBlock1() && !node.Block3Size()) {
- Error() << "ANY is not allowed without JOIN";
- return nullptr;
- }
-
- TSourcePtr source(FlattenSource(node.GetRule_flatten_source2()));
- if (!source) {
- return nullptr;
- }
-
- if (node.Block3Size()) {
- TPosition pos(Ctx.Pos());
- TVector<TSourcePtr> sources;
- TVector<TMaybe<TPosition>> anyPositions;
- TVector<bool> anyFlags;
-
- sources.emplace_back(std::move(source));
- anyPositions.emplace_back(node.HasBlock1() ? Ctx.TokenPosition(node.GetBlock1().GetToken1()) : TMaybe<TPosition>());
- anyFlags.push_back(bool(anyPositions.back()));
-
- for (auto& block: node.GetBlock3()) {
- sources.emplace_back(FlattenSource(block.GetRule_flatten_source3()));
- if (!sources.back()) {
- Ctx.IncrementMonCounter("sql_errors", "NoJoinWith");
- return nullptr;
- }
-
- anyPositions.emplace_back(block.HasBlock2() ? Ctx.TokenPosition(block.GetBlock2().GetToken1()) : TMaybe<TPosition>());
- anyFlags.push_back(bool(anyPositions.back()));
- }
-
- source = BuildEquiJoin(pos, std::move(sources), std::move(anyFlags), Ctx.Scoped->StrictJoinKeyTypes);
- size_t idx = 1;
- for (auto& block: node.GetBlock3()) {
- YQL_ENSURE(idx < anyPositions.size());
- TMaybe<TPosition> leftAny = (idx == 1) ? anyPositions[0] : Nothing();
- TMaybe<TPosition> rightAny = anyPositions[idx];
-
- if (!JoinOp(source.Get(), block, leftAny ? leftAny : rightAny)) {
- Ctx.IncrementMonCounter("sql_errors", "NoJoinOp");
- return nullptr;
- }
- ++idx;
- }
- }
-
- return source;
-}
-
-bool TSqlSelect::SelectTerm(TVector<TNodePtr>& terms, const TRule_result_column& node) {
- // result_column:
- // opt_id_prefix ASTERISK
- // | expr ((AS an_id) | an_id_pure)?
- // ;
- switch (node.Alt_case()) {
- case TRule_result_column::kAltResultColumn1: {
- auto alt = node.GetAlt_result_column1();
-
- Token(alt.GetToken2());
- auto idAsteriskQualify = OptIdPrefixAsStr(alt.GetRule_opt_id_prefix1(), *this);
- Ctx.IncrementMonCounter("sql_features", idAsteriskQualify ? "QualifyAsterisk" : "Asterisk");
- terms.push_back(BuildColumn(Ctx.Pos(), "*", idAsteriskQualify));
- break;
- }
- case TRule_result_column::kAltResultColumn2: {
- auto alt = node.GetAlt_result_column2();
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
- TNodePtr term(expr.Build(alt.GetRule_expr1()));
- if (!term) {
- Ctx.IncrementMonCounter("sql_errors", "NoTerm");
- return false;
- }
- if (alt.HasBlock2()) {
- TString label;
- bool implicitLabel = false;
- switch (alt.GetBlock2().Alt_case()) {
- case TRule_result_column_TAlt2_TBlock2::kAlt1:
- label = Id(alt.GetBlock2().GetAlt1().GetBlock1().GetRule_an_id_or_type2(), *this);
- break;
- case TRule_result_column_TAlt2_TBlock2::kAlt2:
- label = Id(alt.GetBlock2().GetAlt2().GetRule_an_id_as_compat1(), *this);
- if (!Ctx.AnsiOptionalAs) {
- // AS is mandatory
- Ctx.Error() << "Expecting mandatory AS here. Did you miss comma? Please add PRAGMA AnsiOptionalAs; for ANSI compatibility";
- return false;
- }
- implicitLabel = true;
- break;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- term->SetLabel(label, Ctx.Pos());
- term->MarkImplicitLabel(implicitLabel);
- }
- terms.push_back(term);
- break;
- }
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownResultColumn");
- AltNotImplemented("result_column", node);
- return false;
- }
- return true;
-}
-
-bool TSqlSelect::ValidateSelectColumns(const TVector<TNodePtr>& terms) {
- TSet<TString> labels;
- TSet<TString> asteriskSources;
- for (const auto& term: terms) {
- const auto& label = term->GetLabel();
- if (!Ctx.PragmaAllowDotInAlias && label.find('.') != TString::npos) {
- Ctx.Error(term->GetPos()) << "Unable to use '.' in column name. Invalid column name: " << label;
- return false;
- }
- if (!label.empty()) {
- if (!labels.insert(label).second) {
- Ctx.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << label;
- return false;
- }
- }
- if (term->IsAsterisk()) {
- const auto& source = *term->GetSourceName();
- if (source.empty() && terms.ysize() > 1) {
- Ctx.Error(term->GetPos()) << "Unable to use plain '*' with other projection items. Please use qualified asterisk instead: '<table>.*' (<table> can be either table name or table alias).";
- return false;
- } else if (!asteriskSources.insert(source).second) {
- Ctx.Error(term->GetPos()) << "Unable to use twice same quialified asterisk. Invalid source: " << source;
- return false;
- }
- } else if (label.empty()) {
- const auto* column = term->GetColumnName();
- if (column && !column->empty()) {
- const auto& source = *term->GetSourceName();
- const auto usedName = source.empty() ? *column : source + '.' + *column;
- if (!labels.insert(usedName).second) {
- Ctx.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << usedName;
- return false;
- }
- }
- }
- }
- return true;
-}
-
-TSourcePtr TSqlSelect::SingleSource(const TRule_single_source& node, const TVector<TString>& derivedColumns, TPosition derivedColumnsPos, bool unorderedSubquery) {
- switch (node.Alt_case()) {
- case TRule_single_source::kAltSingleSource1: {
- const auto& alt = node.GetAlt_single_source1();
- const auto& table_ref = alt.GetRule_table_ref1();
-
- if (auto maybeSource = AsTableImpl(table_ref)) {
- auto source = *maybeSource;
- if (!source) {
- return nullptr;
- }
-
- return source;
- } else {
- TTableRef table;
- if (!TableRefImpl(alt.GetRule_table_ref1(), table, unorderedSubquery)) {
- return nullptr;
- }
-
- if (table.Source) {
- return table.Source;
- }
-
- TPosition pos(Ctx.Pos());
- Ctx.IncrementMonCounter("sql_select_clusters", table.Cluster.GetLiteral() ? *table.Cluster.GetLiteral() : "unknown");
- return BuildTableSource(pos, table);
- }
- }
- case TRule_single_source::kAltSingleSource2: {
- const auto& alt = node.GetAlt_single_source2();
- Token(alt.GetToken1());
- TSqlSelect innerSelect(Ctx, Mode);
- TPosition pos;
- auto source = innerSelect.Build(alt.GetRule_select_stmt2(), pos);
- if (!source) {
- return nullptr;
- }
- return BuildInnerSource(pos, BuildSourceNode(pos, std::move(source)), Ctx.Scoped->CurrService, Ctx.Scoped->CurrCluster);
- }
- case TRule_single_source::kAltSingleSource3: {
- const auto& alt = node.GetAlt_single_source3();
- TPosition pos;
- return TSqlValues(Ctx, Mode).Build(alt.GetRule_values_stmt2(), pos, derivedColumns, derivedColumnsPos);
- }
- default:
- AltNotImplemented("single_source", node);
- Ctx.IncrementMonCounter("sql_errors", "UnknownSingleSource");
- return nullptr;
- }
-}
-
-TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node, bool unorderedSubquery) {
- // named_single_source: single_source (((AS an_id) | an_id_pure) pure_column_list?)? (sample_clause | tablesample_clause)?;
- TVector<TString> derivedColumns;
- TPosition derivedColumnsPos;
- if (node.HasBlock2() && node.GetBlock2().HasBlock2()) {
- const auto& columns = node.GetBlock2().GetBlock2().GetRule_pure_column_list1();
- Token(columns.GetToken1());
- derivedColumnsPos = Ctx.Pos();
-
- if (node.GetRule_single_source1().Alt_case() != TRule_single_source::kAltSingleSource3) {
- Error() << "Derived column list is only supported for VALUES";
- return nullptr;
- }
-
- PureColumnListStr(columns, *this, derivedColumns);
- }
-
- auto singleSource = SingleSource(node.GetRule_single_source1(), derivedColumns, derivedColumnsPos, unorderedSubquery);
- if (!singleSource) {
- return nullptr;
- }
- if (node.HasBlock2()) {
- TString label;
- switch (node.GetBlock2().GetBlock1().Alt_case()) {
- case TRule_named_single_source_TBlock2_TBlock1::kAlt1:
- label = Id(node.GetBlock2().GetBlock1().GetAlt1().GetBlock1().GetRule_an_id2(), *this);
- break;
- case TRule_named_single_source_TBlock2_TBlock1::kAlt2:
- label = Id(node.GetBlock2().GetBlock1().GetAlt2().GetRule_an_id_as_compat1(), *this);
- if (!Ctx.AnsiOptionalAs) {
- // AS is mandatory
- Ctx.Error() << "Expecting mandatory AS here. Did you miss comma? Please add PRAGMA AnsiOptionalAs; for ANSI compatibility";
- return {};
- }
- break;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- singleSource->SetLabel(label);
- }
- if (node.HasBlock3()) {
- ESampleMode mode = ESampleMode::Auto;
- TSqlExpression expr(Ctx, Mode);
- TNodePtr samplingRateNode;
- TNodePtr samplingSeedNode;
- const auto& sampleBlock = node.GetBlock3();
- TPosition pos;
- switch (sampleBlock.Alt_case()) {
- case TRule_named_single_source::TBlock3::kAlt1:
- {
- const auto& sampleExpr = sampleBlock.GetAlt1().GetRule_sample_clause1().GetRule_expr2();
- samplingRateNode = expr.Build(sampleExpr);
- if (!samplingRateNode) {
- return nullptr;
- }
- pos = GetPos(sampleBlock.GetAlt1().GetRule_sample_clause1().GetToken1());
- Ctx.IncrementMonCounter("sql_features", "SampleClause");
- }
- break;
- case TRule_named_single_source::TBlock3::kAlt2:
- {
- const auto& tableSampleClause = sampleBlock.GetAlt2().GetRule_tablesample_clause1();
- const auto& modeToken = tableSampleClause.GetRule_sampling_mode2().GetToken1();
- const TCiString& token = Token(modeToken);
- if (token == "system") {
- mode = ESampleMode::System;
- } else if (token == "bernoulli") {
- mode = ESampleMode::Bernoulli;
- } else {
- Ctx.Error(GetPos(modeToken)) << "Unsupported sampling mode: " << token;
- Ctx.IncrementMonCounter("sql_errors", "UnsupportedSamplingMode");
- return nullptr;
- }
- const auto& tableSampleExpr = tableSampleClause.GetRule_expr4();
- samplingRateNode = expr.Build(tableSampleExpr);
- if (!samplingRateNode) {
- return nullptr;
- }
- if (tableSampleClause.HasBlock6()) {
- const auto& repeatableExpr = tableSampleClause.GetBlock6().GetRule_repeatable_clause1().GetRule_expr3();
- samplingSeedNode = expr.Build(repeatableExpr);
- if (!samplingSeedNode) {
- return nullptr;
- }
- }
- pos = GetPos(sampleBlock.GetAlt2().GetRule_tablesample_clause1().GetToken1());
- Ctx.IncrementMonCounter("sql_features", "SampleClause");
- }
- break;
- default:
- Y_FAIL("SampleClause: does not corresond to grammar changes");
- }
- if (!singleSource->SetSamplingOptions(Ctx, pos, mode, samplingRateNode, samplingSeedNode)) {
- Ctx.IncrementMonCounter("sql_errors", "IncorrectSampleClause");
- return nullptr;
- }
- }
- return singleSource;
-}
-
-bool TSqlSelect::ColumnName(TVector<TNodePtr>& keys, const TRule_column_name& node) {
- const auto sourceName = OptIdPrefixAsStr(node.GetRule_opt_id_prefix1(), *this);
- const auto columnName = Id(node.GetRule_an_id2(), *this);
- if (columnName.empty()) {
- // TDOD: Id() should return TMaybe<TString>
- if (!Ctx.HasPendingErrors) {
- Ctx.Error() << "Empty column name is not allowed";
- }
- return false;
- }
- keys.push_back(BuildColumn(Ctx.Pos(), columnName, sourceName));
- return true;
-}
-
-bool TSqlSelect::ColumnName(TVector<TNodePtr>& keys, const TRule_without_column_name& node) {
- // without_column_name: (an_id DOT an_id) | an_id_without;
- TString sourceName;
- TString columnName;
- switch (node.Alt_case()) {
- case TRule_without_column_name::kAltWithoutColumnName1:
- sourceName = Id(node.GetAlt_without_column_name1().GetBlock1().GetRule_an_id1(), *this);
- columnName = Id(node.GetAlt_without_column_name1().GetBlock1().GetRule_an_id3(), *this);
- break;
- case TRule_without_column_name::kAltWithoutColumnName2:
- columnName = Id(node.GetAlt_without_column_name2().GetRule_an_id_without1(), *this);
- break;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- if (columnName.empty()) {
- // TDOD: Id() should return TMaybe<TString>
- if (!Ctx.HasPendingErrors) {
- Ctx.Error() << "Empty column name is not allowed";
- }
- return false;
- }
- keys.push_back(BuildColumn(Ctx.Pos(), columnName, sourceName));
- return true;
-}
-
-template<typename TRule>
-bool TSqlSelect::ColumnList(TVector<TNodePtr>& keys, const TRule& node) {
- bool result;
- if constexpr (std::is_same_v<TRule, TRule_column_list>) {
- result = ColumnName(keys, node.GetRule_column_name1());
- } else {
- result = ColumnName(keys, node.GetRule_without_column_name1());
- }
-
- if (!result) {
- return false;
- }
-
- for (auto b: node.GetBlock2()) {
- Token(b.GetToken1());
- if constexpr (std::is_same_v<TRule, TRule_column_list>) {
- result = ColumnName(keys, b.GetRule_column_name2());
- } else {
- result = ColumnName(keys, b.GetRule_without_column_name2());
- }
- if (!result) {
- return false;
- }
- }
- return true;
-}
-
-bool TSqlSelect::NamedColumn(TVector<TNodePtr>& columnList, const TRule_named_column& node) {
- if (!ColumnName(columnList, node.GetRule_column_name1())) {
- return false;
- }
- if (node.HasBlock2()) {
- const auto label = Id(node.GetBlock2().GetRule_an_id2(), *this);
- columnList.back()->SetLabel(label);
- }
- return true;
-}
-
-bool TSqlTranslation::SortSpecification(const TRule_sort_specification& node, TVector<TSortSpecificationPtr>& sortSpecs) {
- bool asc = true;
- TSqlExpression expr(Ctx, Mode);
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TNodePtr exprNode = expr.Build(node.GetRule_expr1());
- if (!exprNode) {
- return false;
- }
- if (node.HasBlock2()) {
- const auto& token = node.GetBlock2().GetToken1();
- Token(token);
- switch (token.GetId()) {
- case SQLv1LexerTokens::TOKEN_ASC:
- Ctx.IncrementMonCounter("sql_features", "OrderByAsc");
- break;
- case SQLv1LexerTokens::TOKEN_DESC:
- asc = false;
- Ctx.IncrementMonCounter("sql_features", "OrderByDesc");
- break;
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownOrderBy");
- Error() << "Unsupported direction token: " << token.GetId();
- return false;
- }
- } else {
- Ctx.IncrementMonCounter("sql_features", "OrderByDefault");
- }
- auto sortSpecPtr = MakeIntrusive<TSortSpecification>();
- sortSpecPtr->OrderExpr = exprNode;
- sortSpecPtr->Ascending = asc;
- sortSpecs.emplace_back(sortSpecPtr);
- return true;
-}
-
-bool TSqlTranslation::SortSpecificationList(const TRule_sort_specification_list& node, TVector<TSortSpecificationPtr>& sortSpecs) {
- if (!SortSpecification(node.GetRule_sort_specification1(), sortSpecs)) {
- return false;
- }
- for (auto sortSpec: node.GetBlock2()) {
- Token(sortSpec.GetToken1());
- if (!SortSpecification(sortSpec.GetRule_sort_specification2(), sortSpecs)) {
- return false;
- }
- }
- return true;
-}
-
-bool TSqlTranslation::IsDistinctOptSet(const TRule_opt_set_quantifier& node) const {
- TPosition pos;
- return node.HasBlock1() && node.GetBlock1().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_DISTINCT;
-}
-
-bool TSqlTranslation::IsDistinctOptSet(const TRule_opt_set_quantifier& node, TPosition& distinctPos) const {
- if (node.HasBlock1() && node.GetBlock1().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_DISTINCT) {
- distinctPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
- return true;
- }
- return false;
-}
-
-bool TSqlTranslation::RoleNameClause(const TRule_role_name& node, TDeferredAtom& result, bool allowSystemRoles) {
- // role_name: an_id_or_type | bind_parameter;
- switch (node.Alt_case()) {
- case TRule_role_name::kAltRoleName1:
- {
- TString name = Id(node.GetAlt_role_name1().GetRule_an_id_or_type1(), *this);
- result = TDeferredAtom(Ctx.Pos(), name);
- break;
- }
- case TRule_role_name::kAltRoleName2:
- {
- if (!BindParameterClause(node.GetAlt_role_name2().GetRule_bind_parameter1(), result)) {
- return false;
- }
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- if (auto literalName = result.GetLiteral(); literalName && !allowSystemRoles) {
- static const THashSet<TStringBuf> systemRoles = { "current_role", "current_user", "session_user" };
- if (systemRoles.contains(to_lower(*literalName))) {
- Ctx.Error() << "System role " << to_upper(*literalName) << " can not be used here";
- return false;
- }
- }
-
- return true;
-}
-
-bool TSqlTranslation::RoleParameters(const TRule_create_user_option& node, TRoleParameters& result) {
- // create_user_option: ENCRYPTED? PASSWORD expr;
- result = TRoleParameters{};
-
- TSqlExpression expr(Ctx, Mode);
- TNodePtr password = expr.Build(node.GetRule_expr3());
- if (!password) {
- return false;
- }
-
- result.IsPasswordEncrypted = node.HasBlock1();
- if (!password->IsNull()) {
- result.Password = MakeAtomFromExpression(Ctx, password);
- }
-
- return true;
-}
-
-bool TSqlTranslation::PermissionNameClause(const TRule_permission_id& node, TDeferredAtom& result) {
- // permission_id:
- // CONNECT
- // | LIST
- // | INSERT
- // | MANAGE
- // | DROP
- // | GRANT
- // | MODIFY (TABLES | ATTRIBUTES)
- // | (UPDATE | ERASE) ROW
- // | (REMOVE | DESCRIBE | ALTER) SCHEMA
- // | SELECT (TABLES | ATTRIBUTES | ROW)?
- // | (USE | FULL) LEGACY?
- // | CREATE (DIRECTORY | TABLE | QUEUE)?
-
- auto handleOneIdentifier = [&result, this] (const auto& permissionNameKeyword) {
- result = TDeferredAtom(Ctx.Pos(), GetIdentifier(*this, permissionNameKeyword).Name);
- };
-
- auto handleTwoIdentifiers = [&result, this] (const auto& permissionNameKeyword) {
- const auto& token1 = permissionNameKeyword.GetToken1();
- const auto& token2 = permissionNameKeyword.GetToken2();
- TString identifierName = TIdentifier(TPosition(token1.GetColumn(), token1.GetLine()), Identifier(token1)).Name +
- "_" +
- TIdentifier(TPosition(token2.GetColumn(), token2.GetLine()), Identifier(token2)).Name;
- result = TDeferredAtom(Ctx.Pos(), identifierName);
- };
-
- auto handleOneOrTwoIdentifiers = [&result, this] (const auto& permissionNameKeyword) {
- TString identifierName = GetIdentifier(*this, permissionNameKeyword).Name;
- if (permissionNameKeyword.HasBlock2()) {
- identifierName += "_" + GetIdentifier(*this, permissionNameKeyword.GetBlock2()).Name;
- }
- result = TDeferredAtom(Ctx.Pos(), identifierName);
- };
-
- switch (node.GetAltCase()) {
- case TRule_permission_id::kAltPermissionId1:
- {
- // CONNECT
- handleOneIdentifier(node.GetAlt_permission_id1());
- break;
- }
- case TRule_permission_id::kAltPermissionId2:
- {
- // LIST
- handleOneIdentifier(node.GetAlt_permission_id2());
- break;
- }
- case TRule_permission_id::kAltPermissionId3:
- {
- // INSERT
- handleOneIdentifier(node.GetAlt_permission_id3());
- break;
- }
- case TRule_permission_id::kAltPermissionId4:
- {
- // MANAGE
- handleOneIdentifier(node.GetAlt_permission_id4());
- break;
- }
- case TRule_permission_id::kAltPermissionId5:
- {
- // DROP
- handleOneIdentifier(node.GetAlt_permission_id5());
- break;
- }
- case TRule_permission_id::kAltPermissionId6:
- {
- // GRANT
- handleOneIdentifier(node.GetAlt_permission_id6());
- break;
- }
- case TRule_permission_id::kAltPermissionId7:
- {
- // MODIFY (TABLES | ATTRIBUTES)
- handleTwoIdentifiers(node.GetAlt_permission_id7());
- break;
- }
- case TRule_permission_id::kAltPermissionId8:
- {
- // (UPDATE | ERASE) ROW
- handleTwoIdentifiers(node.GetAlt_permission_id8());
- break;
- }
- case TRule_permission_id::kAltPermissionId9:
- {
- // (REMOVE | DESCRIBE | ALTER) SCHEMA
- handleTwoIdentifiers(node.GetAlt_permission_id9());
- break;
- }
- case TRule_permission_id::kAltPermissionId10:
- {
- // SELECT (TABLES | ATTRIBUTES | ROW)?
- handleOneOrTwoIdentifiers(node.GetAlt_permission_id10());
- break;
- }
- case TRule_permission_id::kAltPermissionId11:
- {
- // (USE | FULL) LEGACY?
- handleOneOrTwoIdentifiers(node.GetAlt_permission_id11());
- break;
- }
- case TRule_permission_id::kAltPermissionId12:
- {
- // CREATE (DIRECTORY | TABLE | QUEUE)?
- handleOneOrTwoIdentifiers(node.GetAlt_permission_id12());
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- return true;
-}
-
-bool TSqlTranslation::PermissionNameClause(const TRule_permission_name& node, TDeferredAtom& result) {
- // permission_name: permission_id | STRING_VALUE;
- switch (node.Alt_case()) {
- case TRule_permission_name::kAltPermissionName1:
- {
- return PermissionNameClause(node.GetAlt_permission_name1().GetRule_permission_id1(), result);
- break;
- }
- case TRule_permission_name::kAltPermissionName2:
- {
- const TString stringValue(Ctx.Token(node.GetAlt_permission_name2().GetToken1()));
- auto unescaped = StringContent(Ctx, Ctx.Pos(), stringValue);
- if (!unescaped) {
- return false;
- }
- result = TDeferredAtom(Ctx.Pos(), unescaped->Content);
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- return true;
-}
-
-bool TSqlTranslation::PermissionNameClause(const TRule_permission_name_target& node, TVector<TDeferredAtom>& result, bool withGrantOption) {
- // permission_name_target: permission_name (COMMA permission_name)* COMMA? | ALL PRIVILEGES?;
- switch (node.Alt_case()) {
- case TRule_permission_name_target::kAltPermissionNameTarget1:
- {
- const auto& permissionNameRule = node.GetAlt_permission_name_target1();
- result.emplace_back();
- if (!PermissionNameClause(permissionNameRule.GetRule_permission_name1(), result.back())) {
- return false;
- }
- for (const auto& item : permissionNameRule.GetBlock2()) {
- result.emplace_back();
- if (!PermissionNameClause(item.GetRule_permission_name2(), result.back())) {
- return false;
- }
- }
- break;
- }
- case TRule_permission_name_target::kAltPermissionNameTarget2:
- {
- result.emplace_back(Ctx.Pos(), "all_privileges");
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- if (withGrantOption) {
- result.emplace_back(Ctx.Pos(), "grant");
- }
- return true;
-}
-
-TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteSettings& settings, TPosition& selectPos) {
- // PROCESS STREAM? named_single_source (COMMA named_single_source)* (USING using_call_expr (AS an_id)?
- // (WITH external_call_settings)?
- // (WHERE expr)? (HAVING expr)? (ASSUME order_by_clause)?)?
-
- Token(node.GetToken1());
- TPosition startPos(Ctx.Pos());
-
- if (!selectPos) {
- selectPos = startPos;
- }
-
- const bool hasUsing = node.HasBlock5();
- const bool unorderedSubquery = hasUsing;
- TSourcePtr source(NamedSingleSource(node.GetRule_named_single_source3(), unorderedSubquery));
- if (!source) {
- return nullptr;
- }
- if (node.GetBlock4().size()) {
- TVector<TSourcePtr> sources(1, source);
- for (auto& s: node.GetBlock4()) {
- sources.push_back(NamedSingleSource(s.GetRule_named_single_source2(), unorderedSubquery));
- if (!sources.back()) {
- return nullptr;
- }
- }
- auto pos = source->GetPos();
- source = BuildMuxSource(pos, std::move(sources));
- }
-
- const bool processStream = node.HasBlock2();
-
- if (!hasUsing) {
- return BuildProcess(startPos, std::move(source), nullptr, false, {}, false, processStream, settings, {});
- }
-
- const auto& block5 = node.GetBlock5();
- if (block5.HasBlock5()) {
- TSqlExpression expr(Ctx, Mode);
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TNodePtr where = expr.Build(block5.GetBlock5().GetRule_expr2());
- if (!where || !source->AddFilter(Ctx, where)) {
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", "ProcessWhere");
- } else {
- Ctx.IncrementMonCounter("sql_features", processStream ? "ProcessStream" : "Process");
- }
-
- if (block5.HasBlock6()) {
- Ctx.Error() << "PROCESS does not allow HAVING yet! You may request it on yql@ maillist.";
- return nullptr;
- }
-
- bool listCall = false;
- TSqlCallExpr call(Ctx, Mode);
- bool initRet = call.Init(block5.GetRule_using_call_expr2());
- if (initRet) {
- call.IncCounters();
- }
-
- if (!initRet) {
- return nullptr;
- }
-
- auto args = call.GetArgs();
- for (auto& arg: args) {
- if (auto placeholder = dynamic_cast<TTableRows*>(arg.Get())) {
- if (listCall) {
- Ctx.Error() << "Only one TableRows() argument is allowed.";
- return nullptr;
- }
- listCall = true;
- }
- }
-
- if (!call.IsExternal() && block5.HasBlock4()) {
- Ctx.Error() << "PROCESS without USING EXTERNAL FUNCTION doesn't allow WITH block";
- return nullptr;
- }
-
- if (block5.HasBlock4()) {
- const auto& block54 = block5.GetBlock4();
- if (!call.ConfigureExternalCall(block54.GetRule_external_call_settings2())) {
- return nullptr;
- }
- }
-
- TSqlCallExpr finalCall(call, args);
- TNodePtr with(finalCall.IsExternal() ? finalCall.BuildCall() : finalCall.BuildUdf(/* forReduce = */ false));
- if (!with) {
- return {};
- }
- args = finalCall.GetArgs();
- if (call.IsExternal())
- listCall = true;
-
- if (block5.HasBlock3()) {
- with->SetLabel(Id(block5.GetBlock3().GetRule_an_id2(), *this));
- }
-
- if (call.IsExternal() && block5.HasBlock7()) {
- Ctx.Error() << "PROCESS with USING EXTERNAL FUNCTION doesn't allow ASSUME block";
- return nullptr;
- }
-
- TVector<TSortSpecificationPtr> assumeOrderBy;
- if (block5.HasBlock7()) {
- if (!OrderByClause(block5.GetBlock7().GetRule_order_by_clause2(), assumeOrderBy)) {
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(assumeOrderBy) ? "AssumeOrderBy" : "AssumeOrderByExpr");
- }
-
- return BuildProcess(startPos, std::move(source), with, finalCall.IsExternal(), std::move(args), listCall, processStream, settings, assumeOrderBy);
-}
-
-TSourcePtr TSqlSelect::ReduceCore(const TRule_reduce_core& node, const TWriteSettings& settings, TPosition& selectPos) {
- // REDUCE named_single_source (COMMA named_single_source)* (PRESORT sort_specification_list)?
- // ON column_list USING ALL? using_call_expr (AS an_id)?
- // (WHERE expr)? (HAVING expr)? (ASSUME order_by_clause)?
- Token(node.GetToken1());
- TPosition startPos(Ctx.Pos());
- if (!selectPos) {
- selectPos = startPos;
- }
-
- TSourcePtr source(NamedSingleSource(node.GetRule_named_single_source2(), true));
- if (!source) {
- return {};
- }
- if (node.GetBlock3().size()) {
- TVector<TSourcePtr> sources(1, source);
- for (auto& s: node.GetBlock3()) {
- sources.push_back(NamedSingleSource(s.GetRule_named_single_source2(), true));
- if (!sources.back()) {
- return nullptr;
- }
- }
- auto pos = source->GetPos();
- source = BuildMuxSource(pos, std::move(sources));
- }
-
- TVector<TSortSpecificationPtr> orderBy;
- if (node.HasBlock4()) {
- if (!SortSpecificationList(node.GetBlock4().GetRule_sort_specification_list2(), orderBy)) {
- return {};
- }
- }
-
- TVector<TNodePtr> keys;
- if (!ColumnList(keys, node.GetRule_column_list6())) {
- return nullptr;
- }
-
- if (node.HasBlock11()) {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
- TNodePtr where = expr.Build(node.GetBlock11().GetRule_expr2());
- if (!where || !source->AddFilter(Ctx, where)) {
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", "ReduceWhere");
- } else {
- Ctx.IncrementMonCounter("sql_features", "Reduce");
- }
-
- TNodePtr having;
- if (node.HasBlock12()) {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
- having = expr.Build(node.GetBlock12().GetRule_expr2());
- if (!having) {
- return nullptr;
- }
- }
-
- bool listCall = false;
- TSqlCallExpr call(Ctx, Mode);
- bool initRet = call.Init(node.GetRule_using_call_expr9());
- if (initRet) {
- call.IncCounters();
- }
-
- if (!initRet) {
- return nullptr;
- }
-
- auto args = call.GetArgs();
- for (auto& arg: args) {
- if (auto placeholder = dynamic_cast<TTableRows*>(arg.Get())) {
- if (listCall) {
- Ctx.Error() << "Only one TableRows() argument is allowed.";
- return nullptr;
- }
- listCall = true;
- }
- }
-
- TSqlCallExpr finalCall(call, args);
-
- TNodePtr udf(finalCall.BuildUdf(/* forReduce = */ true));
- if (!udf) {
- return {};
- }
-
- if (node.HasBlock10()) {
- udf->SetLabel(Id(node.GetBlock10().GetRule_an_id2(), *this));
- }
-
- const auto reduceMode = node.HasBlock8() ? ReduceMode::ByAll : ReduceMode::ByPartition;
-
- TVector<TSortSpecificationPtr> assumeOrderBy;
- if (node.HasBlock13()) {
- if (!OrderByClause(node.GetBlock13().GetRule_order_by_clause2(), assumeOrderBy)) {
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(assumeOrderBy) ? "AssumeOrderBy" : "AssumeOrderByExpr");
- }
-
- return BuildReduce(startPos, reduceMode, std::move(source), std::move(orderBy), std::move(keys), std::move(args), udf, having,
- settings, assumeOrderBy, listCall);
-}
-
-TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSettings& settings, TPosition& selectPos,
- TMaybe<TSelectKindPlacement> placement, TVector<TSortSpecificationPtr>& selectOpOrederBy, bool& selectOpAssumeOrderBy)
-{
- // (FROM join_source)? SELECT STREAM? opt_set_quantifier result_column (COMMA result_column)* COMMA? (WITHOUT column_list)? (FROM join_source)? (WHERE expr)?
- // group_by_clause? (HAVING expr)? window_clause? ext_order_by_clause?
- selectOpOrederBy = {};
- selectOpAssumeOrderBy = false;
- if (node.HasBlock1()) {
- Token(node.GetBlock1().GetToken1());
- } else {
- Token(node.GetToken2());
- }
-
- TPosition startPos(Ctx.Pos());
- if (!selectPos) {
- selectPos = Ctx.Pos();
- }
-
- const bool distinct = IsDistinctOptSet(node.GetRule_opt_set_quantifier4());
- if (distinct) {
- Ctx.IncrementMonCounter("sql_features", "DistinctInSelect");
- }
-
- TSourcePtr source(BuildFakeSource(selectPos, /* missingFrom = */ true, Mode == NSQLTranslation::ESqlMode::SUBQUERY));
- if (node.HasBlock1() && node.HasBlock9()) {
- Token(node.GetBlock9().GetToken1());
- Ctx.IncrementMonCounter("sql_errors", "DoubleFrom");
- Ctx.Error() << "Only one FROM clause is allowed";
- return nullptr;
- }
- if (node.HasBlock1()) {
- source = JoinSource(node.GetBlock1().GetRule_join_source2());
- Ctx.IncrementMonCounter("sql_features", "FromInFront");
- } else if (node.HasBlock9()) {
- source = JoinSource(node.GetBlock9().GetRule_join_source2());
- }
- if (!source) {
- return nullptr;
- }
-
- const bool selectStream = node.HasBlock3();
- TVector<TNodePtr> without;
- if (node.HasBlock8()) {
- if (!ColumnList(without, node.GetBlock8().GetRule_without_column_list2())) {
- return nullptr;
- }
- }
- if (node.HasBlock10()) {
- auto block = node.GetBlock10();
- Token(block.GetToken1());
- TPosition pos(Ctx.Pos());
- TNodePtr where;
- {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
- where = expr.Build(block.GetRule_expr2());
- }
- if (!where) {
- Ctx.IncrementMonCounter("sql_errors", "WhereInvalid");
- return nullptr;
- }
- if (!source->AddFilter(Ctx, where)) {
- Ctx.IncrementMonCounter("sql_errors", "WhereNotSupportedBySource");
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", "Where");
- }
-
- /// \todo merge gtoupByExpr and groupBy in one
- TVector<TNodePtr> groupByExpr, groupBy;
- TLegacyHoppingWindowSpecPtr legacyHoppingWindowSpec;
- bool compactGroupBy = false;
- TString groupBySuffix;
- if (node.HasBlock11()) {
- TGroupByClause clause(Ctx, Mode);
- if (!clause.Build(node.GetBlock11().GetRule_group_by_clause1())) {
- return nullptr;
- }
- bool hasHopping = (bool)clause.GetLegacyHoppingWindow();
- for (const auto& exprAlias: clause.Aliases()) {
- YQL_ENSURE(exprAlias.first == exprAlias.second->GetLabel());
- groupByExpr.emplace_back(exprAlias.second);
- hasHopping |= (bool)dynamic_cast<THoppingWindow*>(exprAlias.second.Get());
- }
- groupBy = std::move(clause.Content());
- clause.SetFeatures("sql_features");
- legacyHoppingWindowSpec = clause.GetLegacyHoppingWindow();
- compactGroupBy = clause.IsCompactGroupBy();
- groupBySuffix = clause.GetSuffix();
-
- if (source->IsStream() && !hasHopping) {
- Ctx.Error() << "Streaming group by query must have a hopping window specification.";
- return nullptr;
- }
- }
-
- TNodePtr having;
- if (node.HasBlock12()) {
- TSqlExpression expr(Ctx, Mode);
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- having = expr.Build(node.GetBlock12().GetRule_expr2());
- if (!having) {
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", "Having");
- }
-
- TWinSpecs windowSpec;
- if (node.HasBlock13()) {
- if (source->IsStream()) {
- Ctx.Error() << "WINDOW is not allowed in streaming queries";
- return nullptr;
- }
- if (!WindowClause(node.GetBlock13().GetRule_window_clause1(), windowSpec)) {
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", "WindowClause");
- }
-
- bool assumeSorted = false;
- TVector<TSortSpecificationPtr> orderBy;
- if (node.HasBlock14()) {
- auto& orderBlock = node.GetBlock14().GetRule_ext_order_by_clause1();
- assumeSorted = orderBlock.HasBlock1();
-
- Token(orderBlock.GetRule_order_by_clause2().GetToken1());
-
- if (source->IsStream()) {
- Ctx.Error() << "ORDER BY is not allowed in streaming queries";
- return nullptr;
- }
-
- if (!ValidateLimitOrderByWithSelectOp(placement, "ORDER BY")) {
- return nullptr;
- }
-
- if (!OrderByClause(orderBlock.GetRule_order_by_clause2(), orderBy)) {
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(orderBy)
- ? (assumeSorted ? "AssumeOrderBy" : "OrderBy")
- : (assumeSorted ? "AssumeOrderByExpr" : "OrderByExpr")
- );
-
- if (!NeedPassLimitOrderByToUnderlyingSelect(placement)) {
- selectOpOrederBy.swap(orderBy);
- std::swap(selectOpAssumeOrderBy, assumeSorted);
- }
- }
-
- TVector<TNodePtr> terms;
- {
- class TScopedWinSpecs {
- public:
- TScopedWinSpecs(TContext& ctx, TWinSpecs& specs)
- : Ctx(ctx)
- {
- Ctx.WinSpecsScopes.push_back(std::ref(specs));
- }
- ~TScopedWinSpecs() {
- Ctx.WinSpecsScopes.pop_back();
- }
- private:
- TContext& Ctx;
- };
-
-
- TScopedWinSpecs scoped(Ctx, windowSpec);
- if (!SelectTerm(terms, node.GetRule_result_column5())) {
- return nullptr;
- }
- for (auto block: node.GetBlock6()) {
- if (!SelectTerm(terms, block.GetRule_result_column2())) {
- return nullptr;
- }
- }
-
- }
- if (!ValidateSelectColumns(terms)) {
- return nullptr;
- }
- return BuildSelectCore(Ctx, startPos, std::move(source), groupByExpr, groupBy, compactGroupBy, groupBySuffix, assumeSorted, orderBy, having,
- std::move(windowSpec), legacyHoppingWindowSpec, std::move(terms), distinct, std::move(without), selectStream, settings);
-}
-
-TString TSqlTranslation::FrameSettingsToString(EFrameSettings settings, bool isUnbounded) {
- TString result;
- switch (settings) {
- case FramePreceding:
- result = "PRECEDING"; break;
- case FrameCurrentRow:
- YQL_ENSURE(!isUnbounded);
- result = "CURRENT ROW"; break;
- case FrameFollowing:
- result = "FOLLOWING"; break;
- default:
- Y_FAIL("Unexpected frame settings");
- }
-
- return (isUnbounded ? "UNBOUNDED " : "") + result;
-}
-
-bool CheckFrameBoundLiteral(TContext& ctx, const TFrameBound& bound, TMaybe<i32>& boundValue) {
- boundValue = {};
- auto node = bound.Bound;
- if (node && node->IsLiteral()) {
- auto type = node->GetLiteralType();
- if (type != "Int32") {
- ctx.Error(node->GetPos()) << "Expecting Int32 as frame bound value, but got " << type << " literal";
- return false;
- }
-
- i32 value = FromString<i32>(node->GetLiteralValue());
- if (value < 0) {
- ctx.Error(node->GetPos()) << "Expecting non-negative value for frame bound, but got " << value;
- return false;
- }
-
- boundValue = value;
- }
-
- return true;
-}
-
-bool TSqlTranslation::IsValidFrameSettings(TContext& ctx, const TFrameSpecification& frameSpec, size_t sortSpecSize) {
- const TFrameBound& begin = *frameSpec.FrameBegin;
- const TFrameBound& end = *frameSpec.FrameEnd;
-
- YQL_ENSURE(begin.Settings != FrameUndefined);
- YQL_ENSURE(end.Settings != FrameUndefined);
-
- const bool beginUnbounded = !begin.Bound && begin.Settings != FrameCurrentRow;
- const bool endUnbounded = !end.Bound && end.Settings != FrameCurrentRow;
-
- if (beginUnbounded && begin.Settings == FrameFollowing) {
- ctx.Error(begin.Pos) << "Frame cannot start from " << FrameSettingsToString(begin.Settings, beginUnbounded);
- return false;
- }
-
- if (endUnbounded && end.Settings == FramePreceding) {
- ctx.Error(end.Pos) << "Frame cannot end with " << FrameSettingsToString(end.Settings, endUnbounded);
- return false;
- }
-
- if (begin.Settings > end.Settings) {
- ctx.Error(begin.Pos) << "Frame cannot start from " << FrameSettingsToString(begin.Settings, beginUnbounded)
- << " and end with " << FrameSettingsToString(end.Settings, endUnbounded);
- return false;
- }
-
- if (frameSpec.FrameType == FrameByRange && sortSpecSize != 1) {
- TStringBuf msg = "RANGE with <offset> PRECEDING/FOLLOWING requires exactly one expression in ORDER BY partition clause";
- if (begin.Bound) {
- ctx.Error(begin.Bound->GetPos()) << msg;
- return false;
- }
- if (end.Bound) {
- ctx.Error(end.Bound->GetPos()) << msg;
- return false;
- }
- }
-
- TMaybe<i32> beginValue;
- TMaybe<i32> endValue;
-
- if (frameSpec.FrameType != EFrameType::FrameByRange) {
- if (!CheckFrameBoundLiteral(ctx, begin, beginValue) || !CheckFrameBoundLiteral(ctx, end, endValue)) {
- return false;
- }
- }
-
- if (beginValue.Defined() && endValue.Defined()) {
- if (begin.Settings == FramePreceding) {
- beginValue = 0 - *beginValue;
- }
- if (end.Settings == FramePreceding) {
- endValue = 0 - *endValue;
- }
-
- if (*beginValue > *endValue) {
- YQL_ENSURE(begin.Bound);
- ctx.Warning(begin.Bound->GetPos(), TIssuesIds::YQL_EMPTY_WINDOW_FRAME) << "Used frame specification implies empty window frame";
- }
- }
-
- return true;
-}
-
-bool TSqlTranslation::FrameBound(const TRule_window_frame_bound& rule, TFrameBoundPtr& bound) {
- // window_frame_bound:
- // CURRENT ROW
- // | (expr | UNBOUNDED) (PRECEDING | FOLLOWING)
- // ;
- bound = new TFrameBound;
- switch (rule.Alt_case()) {
- case TRule_window_frame_bound::kAltWindowFrameBound1:
- bound->Pos = GetPos(rule.GetAlt_window_frame_bound1().GetToken1());
- bound->Settings = FrameCurrentRow;
- break;
- case TRule_window_frame_bound::kAltWindowFrameBound2: {
- auto block = rule.GetAlt_window_frame_bound2().GetBlock1();
- switch (block.Alt_case()) {
- case TRule_window_frame_bound_TAlt2_TBlock1::kAlt1: {
- TSqlExpression boundExpr(Ctx, Mode);
- bound->Bound = boundExpr.Build(block.GetAlt1().GetRule_expr1());
- if (!bound->Bound) {
- return false;
- }
- bound->Pos = bound->Bound->GetPos();
- break;
- }
- case TRule_window_frame_bound_TAlt2_TBlock1::kAlt2:
- bound->Pos = GetPos(block.GetAlt2().GetToken1());
- break;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- const TString settingToken = to_lower(Token(rule.GetAlt_window_frame_bound2().GetToken2()));
- if (settingToken == "preceding") {
- bound->Settings = FramePreceding;
- } else if (settingToken == "following") {
- bound->Settings = FrameFollowing;
- } else {
- Y_FAIL("You should change implementation according to grammar changes");
- }
- break;
- }
- default:
- Y_FAIL("FrameClause: frame bound not corresond to grammar changes");
- }
- return true;
-}
-
-bool TSqlTranslation::FrameClause(const TRule_window_frame_clause& rule, TFrameSpecificationPtr& frameSpec, size_t sortSpecSize) {
- // window_frame_clause: window_frame_units window_frame_extent window_frame_exclusion?;
- frameSpec = new TFrameSpecification;
- const TString frameUnitStr = to_lower(Token(rule.GetRule_window_frame_units1().GetToken1()));
- if (frameUnitStr == "rows") {
- frameSpec->FrameType = EFrameType::FrameByRows;
- } else if (frameUnitStr == "range") {
- frameSpec->FrameType = EFrameType::FrameByRange;
- } else {
- YQL_ENSURE(frameUnitStr == "groups");
- frameSpec->FrameType = EFrameType::FrameByGroups;
- }
-
- auto frameExtent = rule.GetRule_window_frame_extent2();
- // window_frame_extent: window_frame_bound | window_frame_between;
- switch (frameExtent.Alt_case()) {
- case TRule_window_frame_extent::kAltWindowFrameExtent1: {
- auto start = frameExtent.GetAlt_window_frame_extent1().GetRule_window_frame_bound1();
- if (!FrameBound(start, frameSpec->FrameBegin)) {
- return false;
- }
-
- // frame end is CURRENT ROW
- frameSpec->FrameEnd = new TFrameBound;
- frameSpec->FrameEnd->Pos = frameSpec->FrameBegin->Pos;
- frameSpec->FrameEnd->Settings = FrameCurrentRow;
- break;
- }
- case TRule_window_frame_extent::kAltWindowFrameExtent2: {
- // window_frame_between: BETWEEN window_frame_bound AND window_frame_bound;
- auto between = frameExtent.GetAlt_window_frame_extent2().GetRule_window_frame_between1();
- if (!FrameBound(between.GetRule_window_frame_bound2(), frameSpec->FrameBegin)) {
- return false;
- }
- if (!FrameBound(between.GetRule_window_frame_bound4(), frameSpec->FrameEnd)) {
- return false;
- }
- break;
- }
- default:
- Y_FAIL("FrameClause: frame extent not correspond to grammar changes");
- }
- YQL_ENSURE(frameSpec->FrameBegin);
- YQL_ENSURE(frameSpec->FrameEnd);
- if (!IsValidFrameSettings(Ctx, *frameSpec, sortSpecSize)) {
- return false;
- }
-
- if (rule.HasBlock3()) {
- // window_frame_exclusion: EXCLUDE CURRENT ROW | EXCLUDE GROUP | EXCLUDE TIES | EXCLUDE NO OTHERS;
- switch (rule.GetBlock3().GetRule_window_frame_exclusion1().Alt_case()) {
- case TRule_window_frame_exclusion::kAltWindowFrameExclusion1:
- frameSpec->FrameExclusion = FrameExclCurRow;
- break;
- case TRule_window_frame_exclusion::kAltWindowFrameExclusion2:
- frameSpec->FrameExclusion = FrameExclGroup;
- break;
- case TRule_window_frame_exclusion::kAltWindowFrameExclusion3:
- frameSpec->FrameExclusion = FrameExclTies;
- break;
- case TRule_window_frame_exclusion::kAltWindowFrameExclusion4:
- frameSpec->FrameExclusion = FrameExclNone;
- break;
- default:
- Y_FAIL("FrameClause: frame exclusion not correspond to grammar changes");
- }
- }
-
- if (frameSpec->FrameExclusion != FrameExclNone) {
- Ctx.Error() << "Frame exclusion is not supported yet";
- return false;
- }
-
- return true;
-}
-
-TWindowSpecificationPtr TSqlTranslation::WindowSpecification(const TRule_window_specification_details& rule) {
- /*
- window_specification_details:
- existing_window_name?
- window_partition_clause?
- window_order_clause?
- window_frame_clause?
- */
- TWindowSpecificationPtr winSpecPtr = new TWindowSpecification;
- if (rule.HasBlock1()) {
- Ctx.Error() << "Existing window name is not supported in window specification yet!";
- return {};
- }
- if (rule.HasBlock2()) {
- /*
- window_partition_clause: PARTITION COMPACT? BY named_expr_list;
- */
- auto& partitionClause = rule.GetBlock2().GetRule_window_partition_clause1();
- winSpecPtr->IsCompact = partitionClause.HasBlock2();
- if (!winSpecPtr->IsCompact) {
- auto hints = Ctx.PullHintForToken(Ctx.TokenPosition(partitionClause.GetToken1()));
- winSpecPtr->IsCompact = AnyOf(hints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
- }
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- if (!NamedExprList(partitionClause.GetRule_named_expr_list4(), winSpecPtr->Partitions)) {
- return {};
- }
- // ignore empty unnamed tuples:
- // "PARTITION BY (), foo(x) as y, (), (z)" is allowed and will work exactly the same as
- // "PARTITION BY foo(x) as y, z"
- auto removed = std::remove_if(winSpecPtr->Partitions.begin(), winSpecPtr->Partitions.end(),
- [](const TNodePtr& partitionNode) {
- return !partitionNode->GetLabel() && !partitionNode->GetColumnName() &&
- dynamic_cast<TTupleNode*>(partitionNode.Get()) != nullptr &&
- partitionNode->GetTupleSize() == 0;
- });
- winSpecPtr->Partitions.erase(removed, winSpecPtr->Partitions.end());
-
- }
- if (rule.HasBlock3()) {
- if (!OrderByClause(rule.GetBlock3().GetRule_window_order_clause1().GetRule_order_by_clause1(), winSpecPtr->OrderBy)) {
- return {};
- }
- }
- const bool ordered = !winSpecPtr->OrderBy.empty();
- if (rule.HasBlock4()) {
- if (!FrameClause(rule.GetBlock4().GetRule_window_frame_clause1(), winSpecPtr->Frame, winSpecPtr->OrderBy.size())) {
- return {};
- }
- } else {
- winSpecPtr->Frame = new TFrameSpecification;
- winSpecPtr->Frame->FrameBegin = new TFrameBound;
- winSpecPtr->Frame->FrameEnd = new TFrameBound;
- winSpecPtr->Frame->FrameBegin->Pos = winSpecPtr->Frame->FrameEnd->Pos = Ctx.Pos();
- winSpecPtr->Frame->FrameExclusion = EFrameExclusions::FrameExclNone;
-
- winSpecPtr->Frame->FrameBegin->Settings = EFrameSettings::FramePreceding;
- if (Ctx.AnsiCurrentRow) {
- // RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
- winSpecPtr->Frame->FrameType = EFrameType::FrameByRange;
- winSpecPtr->Frame->FrameEnd->Settings = EFrameSettings::FrameCurrentRow;
- } else if (ordered) {
- // legacy behavior
- // ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
- winSpecPtr->Frame->FrameType = EFrameType::FrameByRows;
- winSpecPtr->Frame->FrameEnd->Settings = EFrameSettings::FrameCurrentRow;
- } else {
- // ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
- winSpecPtr->Frame->FrameType = EFrameType::FrameByRows;
- winSpecPtr->Frame->FrameEnd->Settings = EFrameSettings::FrameFollowing;
- }
- }
-
- // Normalize and simplify
- auto replaceCurrentWith = [](TFrameBound& frame, bool preceding, TNodePtr value ) {
- frame.Settings = preceding ? EFrameSettings::FramePreceding : EFrameSettings::FrameFollowing;
- frame.Bound = value;
- };
-
- const auto frameSpec = winSpecPtr->Frame;
- if (!ordered && frameSpec->FrameType != EFrameType::FrameByRows) {
- // CURRENT ROW -> UNBOUNDED
- if (frameSpec->FrameBegin->Settings == EFrameSettings::FrameCurrentRow) {
- replaceCurrentWith(*frameSpec->FrameBegin, true, nullptr);
- }
- if (frameSpec->FrameEnd->Settings == EFrameSettings::FrameCurrentRow) {
- replaceCurrentWith(*frameSpec->FrameBegin, false, nullptr);
- }
- }
-
- // RANGE/GROUPS UNBOUNDED -> ROWS UNBOUNDED
- if (frameSpec->FrameBegin->Settings == EFrameSettings::FramePreceding && !frameSpec->FrameBegin->Bound &&
- frameSpec->FrameEnd->Settings == EFrameSettings::FrameFollowing && !frameSpec->FrameEnd->Bound)
- {
- frameSpec->FrameType = EFrameType::FrameByRows;
- }
-
- if (frameSpec->FrameType != EFrameType::FrameByRange) {
- // replace FrameCurrentRow for ROWS/GROUPS with 0 preceding/following
- // FrameCurrentRow has special meaning ( = first/last peer row)
- if (frameSpec->FrameBegin->Settings == EFrameSettings::FrameCurrentRow) {
- TNodePtr zero = new TLiteralNumberNode<i32>(winSpecPtr->Frame->FrameBegin->Pos, "Int32", "0");
- replaceCurrentWith(*frameSpec->FrameBegin, true, zero);
- }
-
- if (frameSpec->FrameEnd->Settings == EFrameSettings::FrameCurrentRow) {
- TNodePtr zero = new TLiteralNumberNode<i32>(winSpecPtr->Frame->FrameEnd->Pos, "Int32", "0");
- replaceCurrentWith(*frameSpec->FrameEnd, false, zero);
- }
- }
-
- return winSpecPtr;
-}
-
-bool TSqlSelect::WindowDefinition(const TRule_window_definition& rule, TWinSpecs& winSpecs) {
- const TString windowName = Id(rule.GetRule_new_window_name1().GetRule_window_name1().GetRule_an_id_window1(), *this);
- if (winSpecs.contains(windowName)) {
- Ctx.Error() << "Unable to declare window with same name: " << windowName;
- return false;
- }
- auto windowSpec = WindowSpecification(rule.GetRule_window_specification3().GetRule_window_specification_details2());
- if (!windowSpec) {
- return false;
- }
- winSpecs.emplace(windowName, std::move(windowSpec));
- return true;
-}
-
-bool TSqlSelect::WindowClause(const TRule_window_clause& rule, TWinSpecs& winSpecs) {
- auto windowList = rule.GetRule_window_definition_list2();
- if (!WindowDefinition(windowList.GetRule_window_definition1(), winSpecs)) {
- return false;
- }
- for (auto& block: windowList.GetBlock2()) {
- if (!WindowDefinition(block.GetRule_window_definition2(), winSpecs)) {
- return false;
- }
- }
- return true;
-}
-
-bool TSqlTranslation::OrderByClause(const TRule_order_by_clause& node, TVector<TSortSpecificationPtr>& orderBy) {
- return SortSpecificationList(node.GetRule_sort_specification_list3(), orderBy);
-}
-
-bool TGroupByClause::Build(const TRule_group_by_clause& node) {
- // group_by_clause: GROUP COMPACT? BY opt_set_quantifier grouping_element_list (WITH an_id)?;
- CompactGroupBy = node.HasBlock2();
- if (!CompactGroupBy) {
- auto hints = Ctx.PullHintForToken(Ctx.TokenPosition(node.GetToken1()));
- CompactGroupBy = AnyOf(hints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
- }
- TPosition distinctPos;
- if (IsDistinctOptSet(node.GetRule_opt_set_quantifier4(), distinctPos)) {
- Ctx.Error(distinctPos) << "DISTINCT is not supported in GROUP BY clause yet!";
- Ctx.IncrementMonCounter("sql_errors", "DistinctInGroupByNotSupported");
- return false;
- }
- if (!ParseList(node.GetRule_grouping_element_list5(), EGroupByFeatures::Ordinary)) {
- return false;
- }
-
- if (node.HasBlock6()) {
- TString mode = Id(node.GetBlock6().GetRule_an_id2(), *this);
- TMaybe<TIssue> normalizeError = NormalizeName(Ctx.Pos(), mode);
- if (!normalizeError.Empty()) {
- Error() << normalizeError->GetMessage();
- Ctx.IncrementMonCounter("sql_errors", "NormalizeGroupByModeError");
- return false;
- }
-
- if (mode == "combine") {
- Suffix = "Combine";
- } else if (mode == "combinestate") {
- Suffix = "CombineState";
- } else if (mode == "mergestate") {
- Suffix = "MergeState";
- } else if (mode == "finalize") {
- Suffix = "Finalize";
- } else if (mode == "mergefinalize") {
- Suffix = "MergeFinalize";
- } else if (mode == "mergemanyfinalize") {
- Suffix = "MergeManyFinalize";
- } else {
- Ctx.Error() << "Unsupported group by mode: " << mode;
- Ctx.IncrementMonCounter("sql_errors", "GroupByModeUnknown");
- return false;
- }
- }
-
- if (!ResolveGroupByAndGrouping()) {
- return false;
- }
- return true;
-}
-
-bool TGroupByClause::ParseList(const TRule_grouping_element_list& groupingListNode, EGroupByFeatures featureContext) {
- if (!GroupingElement(groupingListNode.GetRule_grouping_element1(), featureContext)) {
- return false;
- }
- for (auto b: groupingListNode.GetBlock2()) {
- if (!GroupingElement(b.GetRule_grouping_element2(), featureContext)) {
- return false;
- }
- }
- return true;
-}
-
-void TGroupByClause::SetFeatures(const TString& field) const {
- Ctx.IncrementMonCounter(field, "GroupBy");
- const auto& features = Features();
- if (features.Test(EGroupByFeatures::Ordinary)) {
- Ctx.IncrementMonCounter(field, "GroupByOrdinary");
- }
- if (features.Test(EGroupByFeatures::Expression)) {
- Ctx.IncrementMonCounter(field, "GroupByExpression");
- }
- if (features.Test(EGroupByFeatures::Rollup)) {
- Ctx.IncrementMonCounter(field, "GroupByRollup");
- }
- if (features.Test(EGroupByFeatures::Cube)) {
- Ctx.IncrementMonCounter(field, "GroupByCube");
- }
- if (features.Test(EGroupByFeatures::GroupingSet)) {
- Ctx.IncrementMonCounter(field, "GroupByGroupingSet");
- }
- if (features.Test(EGroupByFeatures::Empty)) {
- Ctx.IncrementMonCounter(field, "GroupByEmpty");
- }
-}
-
-TVector<TNodePtr>& TGroupByClause::Content() {
- return GroupBySet;
-}
-
-TMap<TString, TNodePtr>& TGroupByClause::Aliases() {
- return GroupSetContext->NodeAliases;
-}
-
-TLegacyHoppingWindowSpecPtr TGroupByClause::GetLegacyHoppingWindow() const {
- return LegacyHoppingWindowSpec;
-}
-
-bool TGroupByClause::IsCompactGroupBy() const {
- return CompactGroupBy;
-}
-
-TString TGroupByClause::GetSuffix() const {
- return Suffix;
-}
-
-TMaybe<TVector<TNodePtr>> TGroupByClause::MultiplyGroupingSets(const TVector<TNodePtr>& lhs, const TVector<TNodePtr>& rhs) const {
- TVector<TNodePtr> content;
- for (const auto& leftNode: lhs) {
- auto leftPtr = leftNode->ContentListPtr();
- if (!leftPtr) {
- // TODO: shouldn't happen
- Ctx.Error() << "Unable to multiply grouping sets";
- return {};
- }
- for (const auto& rightNode: rhs) {
- TVector<TNodePtr> mulItem(leftPtr->begin(), leftPtr->end());
- auto rightPtr = rightNode->ContentListPtr();
- if (!rightPtr) {
- // TODO: shouldn't happen
- Ctx.Error() << "Unable to multiply grouping sets";
- return {};
- }
- mulItem.insert(mulItem.end(), rightPtr->begin(), rightPtr->end());
- content.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(mulItem)));
- }
- }
- return content;
-}
-
-bool TGroupByClause::ResolveGroupByAndGrouping() {
- auto listPos = std::find_if(GroupBySet.begin(), GroupBySet.end(), [](const TNodePtr& node) {
- return node->ContentListPtr();
- });
- if (listPos == GroupBySet.end()) {
- return true;
- }
- auto curContent = *(*listPos)->ContentListPtr();
- if (listPos != GroupBySet.begin()) {
- TVector<TNodePtr> emulate(GroupBySet.begin(), listPos);
- TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(emulate)));
- auto mult = MultiplyGroupingSets(emulateContent, curContent);
- if (!mult) {
- return false;
- }
- curContent = *mult;
- }
- for (++listPos; listPos != GroupBySet.end(); ++listPos) {
- auto newElem = (*listPos)->ContentListPtr();
- if (newElem) {
- auto mult = MultiplyGroupingSets(curContent, *newElem);
- if (!mult) {
- return false;
- }
- curContent = *mult;
- } else {
- TVector<TNodePtr> emulate(1, *listPos);
- TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(emulate)));
- auto mult = MultiplyGroupingSets(curContent, emulateContent);
- if (!mult) {
- return false;
- }
- curContent = *mult;
- }
- }
- TVector<TNodePtr> result(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(curContent)));
- std::swap(result, GroupBySet);
- return true;
-}
-
-bool TGroupByClause::GroupingElement(const TRule_grouping_element& node, EGroupByFeatures featureContext) {
- TSourcePtr res;
- TVector<TNodePtr> emptyContent;
- switch (node.Alt_case()) {
- case TRule_grouping_element::kAltGroupingElement1:
- if (!OrdinaryGroupingSet(node.GetAlt_grouping_element1().GetRule_ordinary_grouping_set1(), featureContext)) {
- return false;
- }
- Features().Set(EGroupByFeatures::Ordinary);
- break;
- case TRule_grouping_element::kAltGroupingElement2: {
- TGroupByClause subClause(Ctx, Mode, GroupSetContext);
- if (!subClause.OrdinaryGroupingSetList(node.GetAlt_grouping_element2().GetRule_rollup_list1().GetRule_ordinary_grouping_set_list3(),
- EGroupByFeatures::Rollup))
- {
- return false;
- }
- auto& content = subClause.Content();
- TVector<TNodePtr> collection;
- for (auto limit = content.end(), begin = content.begin(); limit != begin; --limit) {
- TVector<TNodePtr> grouping(begin, limit);
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(grouping)));
- }
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(emptyContent)));
- GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
- Ctx.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByRollup" << content.size());
- Features().Set(EGroupByFeatures::Rollup);
- break;
- }
- case TRule_grouping_element::kAltGroupingElement3: {
- TGroupByClause subClause(Ctx, Mode, GroupSetContext);
- if (!subClause.OrdinaryGroupingSetList(node.GetAlt_grouping_element3().GetRule_cube_list1().GetRule_ordinary_grouping_set_list3(),
- EGroupByFeatures::Cube))
- {
- return false;
- }
- auto& content = subClause.Content();
- if (content.size() > Ctx.PragmaGroupByCubeLimit) {
- Ctx.Error() << "GROUP BY CUBE is allowed only for " << Ctx.PragmaGroupByCubeLimit << " columns, but you use " << content.size();
- return false;
- }
- TVector<TNodePtr> collection;
- for (unsigned mask = (1 << content.size()) - 1; mask > 0; --mask) {
- TVector<TNodePtr> grouping;
- for (unsigned index = 0; index < content.size(); ++index) {
- if (mask & (1 << index)) {
- grouping.push_back(content[content.size() - index - 1]);
- }
- }
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(grouping)));
- }
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(emptyContent)));
- GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
- Ctx.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByCube" << content.size());
- Features().Set(EGroupByFeatures::Cube);
- break;
- }
- case TRule_grouping_element::kAltGroupingElement4: {
- auto listNode = node.GetAlt_grouping_element4().GetRule_grouping_sets_specification1().GetRule_grouping_element_list4();
- TGroupByClause subClause(Ctx, Mode, GroupSetContext);
- if (!subClause.ParseList(listNode, EGroupByFeatures::GroupingSet)) {
- return false;
- }
- auto& content = subClause.Content();
- TVector<TNodePtr> collection;
- bool hasEmpty = false;
- for (auto& elem: content) {
- auto elemContent = elem->ContentListPtr();
- if (elemContent) {
- if (!elemContent->empty() && elemContent->front()->ContentListPtr()) {
- for (auto& sub: *elemContent) {
- FeedCollection(sub, collection, hasEmpty);
- }
- } else {
- FeedCollection(elem, collection, hasEmpty);
- }
- } else {
- TVector<TNodePtr> elemList(1, std::move(elem));
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(elemList)));
- }
- }
- GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
- Features().Set(EGroupByFeatures::GroupingSet);
- break;
- }
- case TRule_grouping_element::kAltGroupingElement5: {
- if (!HoppingWindow(node.GetAlt_grouping_element5().GetRule_hopping_window_specification1())) {
- return false;
- }
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- return true;
-}
-
-void TGroupByClause::FeedCollection(const TNodePtr& elem, TVector<TNodePtr>& collection, bool& hasEmpty) const {
- auto elemContentPtr = elem->ContentListPtr();
- if (elemContentPtr && elemContentPtr->empty()) {
- if (hasEmpty) {
- return;
- }
- hasEmpty = true;
- }
- collection.push_back(elem);
-}
-
-bool TGroupByClause::OrdinaryGroupingSet(const TRule_ordinary_grouping_set& node, EGroupByFeatures featureContext) {
- TNodePtr namedExprNode;
- {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- namedExprNode = NamedExpr(node.GetRule_named_expr1(), EExpr::GroupBy);
- }
- if (!namedExprNode) {
- return false;
- }
- auto nodeLabel = namedExprNode->GetLabel();
- auto contentPtr = namedExprNode->ContentListPtr();
- if (contentPtr) {
- if (nodeLabel && (contentPtr->size() != 1 || contentPtr->front()->GetLabel())) {
- Ctx.Error() << "Unable to use aliases for list of named expressions";
- Ctx.IncrementMonCounter("sql_errors", "GroupByAliasForListOfExpressions");
- return false;
- }
- for (auto& content: *contentPtr) {
- auto label = content->GetLabel();
- if (!label) {
- if (content->GetColumnName()) {
- namedExprNode->AssumeColumn();
- continue;
- }
-
- if (!AllowUnnamed(content->GetPos(), featureContext)) {
- return false;
- }
-
- content->SetLabel(label = GenerateGroupByExprName());
- }
- if (!AddAlias(label, content)) {
- return false;
- }
- content = BuildColumn(content->GetPos(), label);
- }
- } else {
- if (!nodeLabel && namedExprNode->GetColumnName()) {
- namedExprNode->AssumeColumn();
- }
-
- if (!nodeLabel && !namedExprNode->GetColumnName()) {
- if (!AllowUnnamed(namedExprNode->GetPos(), featureContext)) {
- return false;
- }
- namedExprNode->SetLabel(nodeLabel = GenerateGroupByExprName());
- }
- if (nodeLabel) {
- if (!AddAlias(nodeLabel, namedExprNode)) {
- return false;
- }
- namedExprNode = BuildColumn(namedExprNode->GetPos(), nodeLabel);
- }
- }
- GroupBySet.emplace_back(std::move(namedExprNode));
- return true;
-}
-
-bool TGroupByClause::OrdinaryGroupingSetList(const TRule_ordinary_grouping_set_list& node, EGroupByFeatures featureContext) {
- if (!OrdinaryGroupingSet(node.GetRule_ordinary_grouping_set1(), featureContext)) {
- return false;
- }
- for (auto& block: node.GetBlock2()) {
- if (!OrdinaryGroupingSet(block.GetRule_ordinary_grouping_set2(), featureContext)) {
- return false;
- }
- }
- return true;
-}
-
-bool TGroupByClause::HoppingWindow(const TRule_hopping_window_specification& node) {
- if (LegacyHoppingWindowSpec) {
- Ctx.Error() << "Duplicate hopping window specification.";
- return false;
- }
- LegacyHoppingWindowSpec = new TLegacyHoppingWindowSpec;
- {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
- LegacyHoppingWindowSpec->TimeExtractor = expr.Build(node.GetRule_expr3());
- if (!LegacyHoppingWindowSpec->TimeExtractor) {
- return false;
- }
- }
- auto processIntervalParam = [&] (const TRule_expr& rule) -> TNodePtr {
- TSqlExpression expr(Ctx, Mode);
- auto node = expr.Build(rule);
- if (!node) {
- return nullptr;
- }
-
- auto literal = node->GetLiteral("String");
- if (!literal) {
- return new TAstListNodeImpl(Ctx.Pos(), {
- new TAstAtomNodeImpl(Ctx.Pos(), "EvaluateExpr", TNodeFlags::Default),
- node
- });
- }
-
- const auto out = NKikimr::NMiniKQL::ValueFromString(NKikimr::NUdf::EDataSlot::Interval, *literal);
- if (!out) {
- Ctx.Error(node->GetPos()) << "Expected interval in ISO 8601 format";
- return nullptr;
- }
-
- if ('T' == literal->back()) {
- Ctx.Error(node->GetPos()) << "Time prefix 'T' at end of interval constant. The designator 'T' shall be absent if all of the time components are absent.";
- return nullptr;
- }
-
- return new TAstListNodeImpl(Ctx.Pos(), {
- new TAstAtomNodeImpl(Ctx.Pos(), "Interval", TNodeFlags::Default),
- new TAstListNodeImpl(Ctx.Pos(), {
- new TAstAtomNodeImpl(Ctx.Pos(), "quote", TNodeFlags::Default),
- new TAstAtomNodeImpl(Ctx.Pos(), ToString(out.Get<i64>()), TNodeFlags::Default)
- })
- });
- };
-
- LegacyHoppingWindowSpec->Hop = processIntervalParam(node.GetRule_expr5());
- if (!LegacyHoppingWindowSpec->Hop) {
- return false;
- }
- LegacyHoppingWindowSpec->Interval = processIntervalParam(node.GetRule_expr7());
- if (!LegacyHoppingWindowSpec->Interval) {
- return false;
- }
- LegacyHoppingWindowSpec->Delay = processIntervalParam(node.GetRule_expr9());
- if (!LegacyHoppingWindowSpec->Delay) {
- return false;
- }
- LegacyHoppingWindowSpec->DataWatermarks = Ctx.PragmaDataWatermarks;
-
- return true;
-}
-
-bool TGroupByClause::AllowUnnamed(TPosition pos, EGroupByFeatures featureContext) {
- TStringBuf feature;
- switch (featureContext) {
- case EGroupByFeatures::Ordinary:
- return true;
- case EGroupByFeatures::Rollup:
- feature = "ROLLUP";
- break;
- case EGroupByFeatures::Cube:
- feature = "CUBE";
- break;
- case EGroupByFeatures::GroupingSet:
- feature = "GROUPING SETS";
- break;
- default:
- YQL_ENSURE(false, "Unknown feature");
- }
-
- Ctx.Error(pos) << "Unnamed expressions are not supported in " << feature << ". Please use '<expr> AS <name>'.";
- Ctx.IncrementMonCounter("sql_errors", "GroupBySetNoAliasOrColumn");
- return false;
-}
-
-TGroupByClause::TGroupingSetFeatures& TGroupByClause::Features() {
- return GroupSetContext->GroupFeatures;
-}
-
-const TGroupByClause::TGroupingSetFeatures& TGroupByClause::Features() const {
- return GroupSetContext->GroupFeatures;
-}
-
-bool TGroupByClause::AddAlias(const TString& label, const TNodePtr& node) {
- if (Aliases().contains(label)) {
- Ctx.Error() << "Duplicated aliases not allowed";
- Ctx.IncrementMonCounter("sql_errors", "GroupByDuplicateAliases");
- return false;
- }
- Aliases().emplace(label, node);
- return true;
-}
-
-TString TGroupByClause::GenerateGroupByExprName() {
- return TStringBuilder() << AutogenerateNamePrefix << GroupSetContext->UnnamedCount++;
-}
-
-bool TSqlSelect::ValidateLimitOrderByWithSelectOp(TMaybe<TSelectKindPlacement> placement, TStringBuf what) {
- if (!placement.Defined()) {
- // not in select_op chain
- return true;
- }
- if (!Ctx.AnsiOrderByLimitInUnionAll.Defined()) {
- if (!placement->IsLastInSelectOp) {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_LIMIT_ORDER_BY_WITH_UNION)
- << what << " will not be allowed here for ANSI compliant UNION ALL.\n"
- << "For details please consult documentation on PRAGMA AnsiOrderByLimitInUnionAll";
- } else {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_LIMIT_ORDER_BY_WITH_UNION)
- << what << " will be applied to last subquery in UNION ALL, not to entire UNION ALL.\n"
- << "For ANSI compliant behavior please use PRAGMA AnsiOrderByLimitInUnionAll";
- }
- return true;
- }
-
- if (*Ctx.AnsiOrderByLimitInUnionAll && !placement->IsLastInSelectOp) {
- Ctx.Error() << what << " within UNION ALL is only allowed after last subquery";
- return false;
- }
- return true;
-}
-
-bool TSqlSelect::NeedPassLimitOrderByToUnderlyingSelect(TMaybe<TSelectKindPlacement> placement) {
- if (!Ctx.AnsiOrderByLimitInUnionAll.Defined() || !*Ctx.AnsiOrderByLimitInUnionAll) {
- return true;
- }
- return !placement.Defined() || !placement->IsLastInSelectOp;
-}
-
-TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind_partial& node, TPosition& selectPos,
- TMaybe<TSelectKindPlacement> placement)
-{
- auto res = SelectKind(node.GetRule_select_kind1(), selectPos, placement);
- if (!res) {
- return {};
- }
- TPosition startPos(Ctx.Pos());
- /// LIMIT INTEGER block
- TNodePtr skipTake;
- if (node.HasBlock2()) {
- auto block = node.GetBlock2();
-
- Token(block.GetToken1());
- TPosition pos(Ctx.Pos());
-
- if (!ValidateLimitOrderByWithSelectOp(placement, "LIMIT")) {
- return {};
- }
-
- TSqlExpression takeExpr(Ctx, Mode);
- auto take = takeExpr.Build(block.GetRule_expr2());
- if (!take) {
- return{};
- }
-
- TNodePtr skip;
- if (block.HasBlock3()) {
- TSqlExpression skipExpr(Ctx, Mode);
- skip = skipExpr.Build(block.GetBlock3().GetRule_expr2());
- if (!skip) {
- return {};
- }
- if (Token(block.GetBlock3().GetToken1()) == ",") {
- // LIMIT skip, take
- skip.Swap(take);
- Ctx.IncrementMonCounter("sql_features", "LimitSkipTake");
- } else {
- Ctx.IncrementMonCounter("sql_features", "LimitOffset");
- }
- }
-
- auto st = BuildSkipTake(pos, skip, take);
- if (NeedPassLimitOrderByToUnderlyingSelect(placement)) {
- skipTake = st;
- } else {
- res.SelectOpSkipTake = st;
- }
-
- Ctx.IncrementMonCounter("sql_features", "Limit");
- }
-
- res.Source = BuildSelect(startPos, std::move(res.Source), skipTake);
- return res;
-}
-
-TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind& node, TPosition& selectPos,
- TMaybe<TSelectKindPlacement> placement)
-{
- const bool discard = node.HasBlock1();
- const bool hasLabel = node.HasBlock3();
- if ((discard || hasLabel) && (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW || Mode == NSQLTranslation::ESqlMode::SUBQUERY)) {
- Ctx.Error() << "DISCARD and INTO RESULT are not allowed in current mode";
- return {};
- }
-
- if (discard && hasLabel) {
- Ctx.Error() << "DISCARD and INTO RESULT cannot be used at the same time";
- return {};
- }
-
- if (discard && !selectPos) {
- selectPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
- }
-
- TWriteSettings settings;
- settings.Discard = discard;
- if (hasLabel) {
- settings.Label = PureColumnOrNamed(node.GetBlock3().GetRule_pure_column_or_named3(), *this);
- }
-
- TSelectKindResult res;
- if (placement.Defined()) {
- if (placement->IsFirstInSelectOp) {
- res.Settings.Discard = settings.Discard;
- } else if (settings.Discard) {
- auto discardPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
- if (Ctx.AnsiOrderByLimitInUnionAll.Defined() && *Ctx.AnsiOrderByLimitInUnionAll) {
- Ctx.Error(discardPos) << "DISCARD within UNION ALL is only allowed before first subquery";
- return {};
- }
- Ctx.Warning(discardPos, TIssuesIds::YQL_LIMIT_ORDER_BY_WITH_UNION)
- << "DISCARD will be ignored here. Please use DISCARD before first subquery in UNION ALL if you want to discard entire UNION ALL result";
- }
-
- if (placement->IsLastInSelectOp) {
- res.Settings.Label = settings.Label;
- } else if (!settings.Label.Empty()) {
- auto labelPos = Ctx.TokenPosition(node.GetBlock3().GetToken1());
- if (Ctx.AnsiOrderByLimitInUnionAll.Defined() && *Ctx.AnsiOrderByLimitInUnionAll) {
- Ctx.Error(labelPos) << "INTO RESULT within UNION ALL is only allowed after last subquery";
- return {};
- }
- Ctx.Warning(labelPos, TIssuesIds::YQL_LIMIT_ORDER_BY_WITH_UNION)
- << "INTO RESULT will be ignored here. Please use INTO RESULT after last subquery in UNION ALL if you want label entire UNION ALL result";
- }
-
- settings = {};
- }
-
- switch (node.GetBlock2().Alt_case()) {
- case TRule_select_kind_TBlock2::kAlt1:
- res.Source = ProcessCore(node.GetBlock2().GetAlt1().GetRule_process_core1(), settings, selectPos);
- break;
- case TRule_select_kind_TBlock2::kAlt2:
- res.Source = ReduceCore(node.GetBlock2().GetAlt2().GetRule_reduce_core1(), settings, selectPos);
- break;
- case TRule_select_kind_TBlock2::kAlt3: {
- res.Source = SelectCore(node.GetBlock2().GetAlt3().GetRule_select_core1(), settings, selectPos,
- placement, res.SelectOpOrderBy, res.SelectOpAssumeOrderBy);
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- return res;
-}
-
-TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind_parenthesis& node, TPosition& selectPos,
- TMaybe<TSelectKindPlacement> placement)
-{
- if (node.Alt_case() == TRule_select_kind_parenthesis::kAltSelectKindParenthesis1) {
- return SelectKind(node.GetAlt_select_kind_parenthesis1().GetRule_select_kind_partial1(), selectPos, placement);
- } else {
- return SelectKind(node.GetAlt_select_kind_parenthesis2().GetRule_select_kind_partial2(), selectPos, {});
- }
-}
-
-template<typename TRule>
-TSourcePtr TSqlSelect::Build(const TRule& node, TPosition pos, TSelectKindResult&& first) {
- TPosition unionPos = pos; // Position of first select
- TVector<TSourcePtr> sources;
- sources.emplace_back(std::move(first.Source));
-
- TVector<TSortSpecificationPtr> orderBy;
- TNodePtr skipTake;
- TWriteSettings settings;
- settings.Discard = first.Settings.Discard;
- bool assumeOrderBy = false;
- auto blocks = node.GetBlock2();
- for (int i = 0; i < blocks.size(); ++i) {
- auto& b = blocks[i];
- const bool last = (i + 1 == blocks.size());
- TSelectKindPlacement placement;
- placement.IsLastInSelectOp = last;
-
- TSelectKindResult next = SelectKind(b.GetRule_select_kind_parenthesis2(), pos, placement);
- if (!next) {
- return nullptr;
- }
-
- if (last) {
- orderBy = next.SelectOpOrderBy;
- assumeOrderBy = next.SelectOpAssumeOrderBy;
- skipTake = next.SelectOpSkipTake;
- settings.Label = next.Settings.Label;
- }
-
- switch (b.GetRule_select_op1().Alt_case()) {
- case TRule_select_op::kAltSelectOp1: {
- const bool isUnionAll = b.GetRule_select_op1().GetAlt_select_op1().HasBlock2();
- if (!isUnionAll) {
- Token(b.GetRule_select_op1().GetAlt_select_op1().GetToken1());
- Ctx.Error() << "UNION without quantifier ALL is not supported yet. Did you mean UNION ALL?";
- return nullptr;
- } else {
- sources.emplace_back(std::move(next.Source));
- }
- break;
- }
- default:
- Ctx.Error() << "INTERSECT and EXCEPT are not implemented yet";
- return nullptr;
- }
- }
-
- if (sources.size() == 1) {
- return std::move(sources[0]);
- }
-
- TSourcePtr result;
- if (orderBy) {
- result = BuildUnionAll(unionPos, std::move(sources), {});
-
- TVector<TNodePtr> groupByExpr;
- TVector<TNodePtr> groupBy;
- bool compactGroupBy = false;
- TString groupBySuffix = "";
- TNodePtr having;
- TWinSpecs winSpecs;
- TLegacyHoppingWindowSpecPtr legacyHoppingWindowSpec;
- bool distinct = false;
- TVector<TNodePtr> without;
- bool stream = false;
-
- TVector<TNodePtr> terms;
- terms.push_back(BuildColumn(unionPos, "*", ""));
-
- result = BuildSelectCore(Ctx, unionPos, std::move(result), groupByExpr, groupBy, compactGroupBy, groupBySuffix,
- assumeOrderBy, orderBy, having, std::move(winSpecs), legacyHoppingWindowSpec, std::move(terms),
- distinct, std::move(without), stream, settings);
- } else {
- result = BuildUnionAll(unionPos, std::move(sources), settings);
- }
-
- if (skipTake || orderBy) {
- result = BuildSelect(unionPos, std::move(result), skipTake);
- }
- return result;
-}
-
-TSourcePtr TSqlSelect::Build(const TRule_select_stmt& node, TPosition& selectPos) {
- TMaybe<TSelectKindPlacement> placement;
- if (!node.GetBlock2().empty()) {
- placement.ConstructInPlace();
- placement->IsFirstInSelectOp = true;
- }
-
- auto res = SelectKind(node.GetRule_select_kind_parenthesis1(), selectPos, placement);
- if (!res) {
- return nullptr;
- }
-
- return Build(node, selectPos, std::move(res));
-}
-
-TSourcePtr TSqlSelect::Build(const TRule_select_unparenthesized_stmt& node, TPosition& selectPos) {
- TMaybe<TSelectKindPlacement> placement;
- if (!node.GetBlock2().empty()) {
- placement.ConstructInPlace();
- placement->IsFirstInSelectOp = true;
- }
-
- auto res = SelectKind(node.GetRule_select_kind_partial1(), selectPos, placement);
- if (!res) {
- return nullptr;
- }
-
- return Build(node, selectPos, std::move(res));
-}
-
-TSourcePtr TSqlValues::Build(const TRule_values_stmt& node, TPosition& valuesPos, const TVector<TString>& derivedColumns, TPosition derivedColumnsPos) {
- Token(node.GetToken1());
- valuesPos = Ctx.Pos();
-
- TVector<TVector<TNodePtr>> rows;
- const auto& rowList = node.GetRule_values_source_row_list2();
- if (!BuildRows(rowList, rows)) {
- return nullptr;
- }
-
- YQL_ENSURE(!rows.empty());
- const size_t columnsCount = rows.back().size();
- if (derivedColumns.size() > columnsCount) {
- Ctx.Error(derivedColumnsPos) << "Derived column list size exceeds column count in VALUES";
- return nullptr;
- }
-
- auto columns = derivedColumns;
- if (Ctx.WarnUnnamedColumns && columns.size() < columnsCount) {
- Ctx.Warning(valuesPos, TIssuesIds::YQL_UNNAMED_COLUMN)
- << "Autogenerated column names column" << columns.size() << "...column" << columnsCount - 1 << " will be used here";
- }
-
- while (columns.size() < columnsCount) {
- columns.push_back(TStringBuilder() << "column" << columns.size());
- }
-
- TVector<TNodePtr> labels;
- for (size_t i = 0; i < columnsCount; ++i) {
- labels.push_back(BuildQuotedAtom(derivedColumnsPos, columns[i]));
- }
-
- TVector<TNodePtr> items;
- for (auto& row : rows) {
- YQL_ENSURE(!row.empty());
- YQL_ENSURE(row.size() == columnsCount);
- items.push_back(BuildOrderedStructure(row.front()->GetPos(), row, labels));
- }
- auto list = new TCallNodeImpl(valuesPos, "AsList", items);
- list = new TCallNodeImpl(valuesPos, "PersistableRepr", { list });
- list = new TCallNodeImpl(valuesPos, "AssumeColumnOrder", { list, BuildTuple(valuesPos, labels) });
- auto result = BuildNodeSource(valuesPos, list, false);
- result->AllColumns();
- return result;
-}
-
-bool TSqlValues::BuildRows(const TRule_values_source_row_list& node, TVector<TVector<TNodePtr>>& rows) {
- rows = TVector<TVector<TNodePtr>> {{}};
-
-
- if (!BuildRow(node.GetRule_values_source_row1(), rows.back())) {
- return false;
- }
-
- const size_t rowSize = rows.back().size();
-
- for (const auto& valuesSourceRow: node.GetBlock2()) {
- rows.push_back({});
- if (!BuildRow(valuesSourceRow.GetRule_values_source_row2(), rows.back())) {
- return false;
- }
- if (rows.back().size() != rowSize) {
- Token(valuesSourceRow.GetRule_values_source_row2().GetToken1());
- Error() << "All VALUES items should have same size: expecting " << rowSize << ", got " << rows.back().size();
- return false;
- }
- }
- return true;
-}
-
-bool TSqlValues::BuildRow(const TRule_values_source_row& inRow, TVector<TNodePtr>& outRow) {
- TSqlExpression sqlExpr(Ctx, Mode);
- return ExprList(sqlExpr, outRow, inRow.GetRule_expr_list2());
-}
-
-class TSqlIntoValues: public TSqlValues {
-public:
- TSqlIntoValues(TContext& ctx, NSQLTranslation::ESqlMode mode)
- : TSqlValues(ctx, mode)
- {
- }
-
- TSourcePtr Build(const TRule_into_values_source& node, const TString& operationName);
-
-private:
- TSourcePtr ValuesSource(const TRule_values_source& node, TVector<TString>& columnsHint,
- const TString& operationName);
-};
-
-TSourcePtr TSqlIntoValues::Build(const TRule_into_values_source& node, const TString& operationName) {
- switch (node.Alt_case()) {
- case TRule_into_values_source::kAltIntoValuesSource1: {
- auto alt = node.GetAlt_into_values_source1();
- TVector<TString> columnsHint;
- if (alt.HasBlock1()) {
- PureColumnListStr(alt.GetBlock1().GetRule_pure_column_list1(), *this, columnsHint);
- }
- return ValuesSource(alt.GetRule_values_source2(), columnsHint, operationName);
- }
- default:
- Ctx.IncrementMonCounter("sql_errors", "DefaultValuesOrOther");
- AltNotImplemented("into_values_source", node);
- return nullptr;
- }
-}
-
-TSourcePtr TSqlIntoValues::ValuesSource(const TRule_values_source& node, TVector<TString>& columnsHint,
- const TString& operationName)
-{
- Ctx.IncrementMonCounter("sql_features", "ValuesSource");
- TPosition pos(Ctx.Pos());
- switch (node.Alt_case()) {
- case TRule_values_source::kAltValuesSource1: {
- TVector<TVector<TNodePtr>> rows {{}};
- const auto& rowList = node.GetAlt_values_source1().GetRule_values_stmt1().GetRule_values_source_row_list2();
- if (!BuildRows(rowList, rows)) {
- return nullptr;
- }
- return BuildWriteValues(pos, operationName, columnsHint, rows);
- }
- case TRule_values_source::kAltValuesSource2: {
- TSqlSelect select(Ctx, Mode);
- TPosition selectPos;
- auto source = select.Build(node.GetAlt_values_source2().GetRule_select_stmt1(), selectPos);
- if (!source) {
- return nullptr;
- }
- return BuildWriteValues(pos, "UPDATE", columnsHint, std::move(source));
- }
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownValuesSource");
- AltNotImplemented("values_source", node);
- return nullptr;
- }
-}
-
-class TSqlIntoTable: public TSqlTranslation {
-public:
- TSqlIntoTable(TContext& ctx, NSQLTranslation::ESqlMode mode)
- : TSqlTranslation(ctx, mode)
- {
- }
-
- TNodePtr Build(const TRule_into_table_stmt& node);
-
-private:
- //bool BuildValuesRow(const TRule_values_source_row& inRow, TVector<TNodePtr>& outRow);
- //TSourcePtr ValuesSource(const TRule_values_source& node, TVector<TString>& columnsHint);
- //TSourcePtr IntoValuesSource(const TRule_into_values_source& node);
-
- bool ValidateServiceName(const TRule_into_table_stmt& node, const TTableRef& table, ESQLWriteColumnMode mode,
- const TPosition& pos);
- TString SqlIntoModeStr;
- TString SqlIntoUserModeStr;
-};
-
-TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
- static const TMap<TString, ESQLWriteColumnMode> str2Mode = {
- {"InsertInto", ESQLWriteColumnMode::InsertInto},
- {"InsertOrAbortInto", ESQLWriteColumnMode::InsertOrAbortInto},
- {"InsertOrIgnoreInto", ESQLWriteColumnMode::InsertOrIgnoreInto},
- {"InsertOrRevertInto", ESQLWriteColumnMode::InsertOrRevertInto},
- {"UpsertInto", ESQLWriteColumnMode::UpsertInto},
- {"ReplaceInto", ESQLWriteColumnMode::ReplaceInto},
- {"InsertIntoWithTruncate", ESQLWriteColumnMode::InsertIntoWithTruncate}
- };
-
- auto& modeBlock = node.GetBlock1();
-
- TVector<TToken> modeTokens;
- switch (modeBlock.Alt_case()) {
- case TRule_into_table_stmt_TBlock1::AltCase::kAlt1:
- modeTokens = {modeBlock.GetAlt1().GetToken1()};
- break;
- case TRule_into_table_stmt_TBlock1::AltCase::kAlt2:
- modeTokens = {
- modeBlock.GetAlt2().GetToken1(),
- modeBlock.GetAlt2().GetToken2(),
- modeBlock.GetAlt2().GetToken3()
- };
- break;
- case TRule_into_table_stmt_TBlock1::AltCase::kAlt3:
- modeTokens = {
- modeBlock.GetAlt3().GetToken1(),
- modeBlock.GetAlt3().GetToken2(),
- modeBlock.GetAlt3().GetToken3()
- };
- break;
- case TRule_into_table_stmt_TBlock1::AltCase::kAlt4:
- modeTokens = {
- modeBlock.GetAlt4().GetToken1(),
- modeBlock.GetAlt4().GetToken2(),
- modeBlock.GetAlt4().GetToken3()
- };
- break;
- case TRule_into_table_stmt_TBlock1::AltCase::kAlt5:
- modeTokens = {modeBlock.GetAlt5().GetToken1()};
- break;
- case TRule_into_table_stmt_TBlock1::AltCase::kAlt6:
- modeTokens = {modeBlock.GetAlt6().GetToken1()};
- break;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- TVector<TString> modeStrings;
- modeStrings.reserve(modeTokens.size());
- TVector<TString> userModeStrings;
- userModeStrings.reserve(modeTokens.size());
-
- for (auto& token : modeTokens) {
- auto tokenStr = Token(token);
-
- auto modeStr = tokenStr;
- modeStr.to_lower();
- modeStr.to_upper(0, 1);
- modeStrings.push_back(modeStr);
-
- auto userModeStr = tokenStr;
- userModeStr.to_upper();
- userModeStrings.push_back(userModeStr);
- }
-
- modeStrings.push_back("Into");
- userModeStrings.push_back("INTO");
-
- SqlIntoModeStr = JoinRange("", modeStrings.begin(), modeStrings.end());
- SqlIntoUserModeStr = JoinRange(" ", userModeStrings.begin(), userModeStrings.end());
-
- const auto& intoTableRef = node.GetRule_into_simple_table_ref3();
- const auto& tableRef = intoTableRef.GetRule_simple_table_ref1();
- const auto& tableRefCore = tableRef.GetRule_simple_table_ref_core1();
-
- auto service = Ctx.Scoped->CurrService;
- auto cluster = Ctx.Scoped->CurrCluster;
- std::pair<bool, TDeferredAtom> nameOrAt;
- bool isBinding = false;
- switch (tableRefCore.Alt_case()) {
- case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore1: {
- if (tableRefCore.GetAlt_simple_table_ref_core1().GetRule_object_ref1().HasBlock1()) {
- const auto& clusterExpr = tableRefCore.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetBlock1().GetRule_cluster_expr1();
- bool hasAt = tableRefCore.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetRule_id_or_at2().HasBlock1();
- bool result = !hasAt ?
- ClusterExprOrBinding(clusterExpr, service, cluster, isBinding) : ClusterExpr(clusterExpr, false, service, cluster);
- if (!result) {
- return nullptr;
- }
- }
-
- if (!isBinding && cluster.Empty()) {
- Ctx.Error() << "No cluster name given and no default cluster is selected";
- return nullptr;
- }
-
- auto id = Id(tableRefCore.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetRule_id_or_at2(), *this);
- nameOrAt = std::make_pair(id.first, TDeferredAtom(Ctx.Pos(), id.second));
- break;
- }
- case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore2: {
- auto at = tableRefCore.GetAlt_simple_table_ref_core2().HasBlock1();
- TString name;
- if (!NamedNodeImpl(tableRefCore.GetAlt_simple_table_ref_core2().GetRule_bind_parameter2(), name, *this)) {
- return nullptr;
- }
- auto named = GetNamedNode(name);
- if (!named) {
- return nullptr;
- }
-
- if (cluster.Empty()) {
- Ctx.Error() << "No cluster name given and no default cluster is selected";
- return nullptr;
- }
-
- TDeferredAtom table;
- MakeTableFromExpression(Ctx, named, table);
- nameOrAt = std::make_pair(at, table);
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- bool withTruncate = false;
- TTableHints tableHints;
- if (tableRef.HasBlock2()) {
- auto hints = TableHintsImpl(tableRef.GetBlock2().GetRule_table_hints1());
- if (!hints) {
- Ctx.Error() << "Failed to parse table hints";
- return nullptr;
- }
- for (const auto& hint : *hints) {
- if (to_upper(hint.first) == "TRUNCATE") {
- withTruncate = true;
- }
- }
- std::erase_if(*hints, [](const auto &hint) { return to_upper(hint.first) == "TRUNCATE"; });
- tableHints = std::move(*hints);
- }
-
- TVector<TString> eraseColumns;
- if (intoTableRef.HasBlock2()) {
- if (service != StatProviderName) {
- Ctx.Error() << "ERASE BY is unsupported for " << service;
- return nullptr;
- }
-
- PureColumnListStr(
- intoTableRef.GetBlock2().GetRule_pure_column_list3(), *this, eraseColumns
- );
- }
-
- if (withTruncate) {
- if (SqlIntoModeStr != "InsertInto") {
- Error() << "Unable " << SqlIntoUserModeStr << " with truncate mode";
- return nullptr;
- }
- SqlIntoModeStr += "WithTruncate";
- SqlIntoUserModeStr += " ... WITH TRUNCATE";
- }
- const auto iterMode = str2Mode.find(SqlIntoModeStr);
- YQL_ENSURE(iterMode != str2Mode.end(), "Invalid sql write mode string: " << SqlIntoModeStr);
- const auto SqlIntoMode = iterMode->second;
-
- TPosition pos(Ctx.Pos());
- TTableRef table(Ctx.MakeName("table"), service, cluster, nullptr);
- if (isBinding) {
- const TString* binding = nameOrAt.second.GetLiteral();
- YQL_ENSURE(binding);
- YQL_ENSURE(!nameOrAt.first);
- if (!ApplyTableBinding(*binding, table, tableHints)) {
- return nullptr;
- }
- } else {
- table.Keys = BuildTableKey(pos, service, cluster, nameOrAt.second, nameOrAt.first ? "@" : "");
- }
-
- Ctx.IncrementMonCounter("sql_insert_clusters", table.Cluster.GetLiteral() ? *table.Cluster.GetLiteral() : "unknown");
-
- auto values = TSqlIntoValues(Ctx, Mode).Build(node.GetRule_into_values_source4(), SqlIntoUserModeStr);
- if (!values) {
- return nullptr;
- }
- if (!ValidateServiceName(node, table, SqlIntoMode, GetPos(modeTokens[0]))) {
- return nullptr;
- }
- Ctx.IncrementMonCounter("sql_features", SqlIntoModeStr);
-
- return BuildWriteColumns(pos, Ctx.Scoped, table,
- ToWriteColumnsMode(SqlIntoMode), std::move(values),
- BuildIntoTableOptions(pos, eraseColumns, tableHints));
-}
-
-bool TSqlIntoTable::ValidateServiceName(const TRule_into_table_stmt& node, const TTableRef& table,
- ESQLWriteColumnMode mode, const TPosition& pos) {
- Y_UNUSED(node);
- auto serviceName = table.Service;
- const bool isMapReduce = serviceName == YtProviderName;
- const bool isKikimr = serviceName == KikimrProviderName || serviceName == YdbProviderName;
- const bool isRtmr = serviceName == RtmrProviderName;
- const bool isStat = serviceName == StatProviderName;
-
- if (!isKikimr) {
- if (mode == ESQLWriteColumnMode::InsertOrAbortInto ||
- mode == ESQLWriteColumnMode::InsertOrIgnoreInto ||
- mode == ESQLWriteColumnMode::InsertOrRevertInto ||
- mode == ESQLWriteColumnMode::UpsertInto && !isStat)
- {
- Ctx.Error(pos) << SqlIntoUserModeStr << " is not supported for " << serviceName << " tables";
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
- return false;
- }
- }
-
- if (isMapReduce) {
- if (mode == ESQLWriteColumnMode::ReplaceInto) {
- Ctx.Error(pos) << "Meaning of REPLACE INTO has been changed, now you should use INSERT INTO <table> WITH TRUNCATE ... for " << serviceName;
- Ctx.IncrementMonCounter("sql_errors", "ReplaceIntoConflictUsage");
- return false;
- }
- } else if (isKikimr) {
- if (mode == ESQLWriteColumnMode::InsertIntoWithTruncate) {
- Ctx.Error(pos) << "INSERT INTO WITH TRUNCATE is not supported for " << serviceName << " tables";
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
- return false;
- }
- } else if (isRtmr) {
- if (mode != ESQLWriteColumnMode::InsertInto) {
- Ctx.Error(pos) << SqlIntoUserModeStr << " is unsupported for " << serviceName;
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
- return false;
- }
- } else if (isStat) {
- if (mode != ESQLWriteColumnMode::UpsertInto) {
- Ctx.Error(pos) << SqlIntoUserModeStr << " is unsupported for " << serviceName;
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
- return false;
- }
- }
-
- return true;
-}
-
-class TSqlQuery: public TSqlTranslation {
-public:
- TSqlQuery(TContext& ctx, NSQLTranslation::ESqlMode mode, bool topLevel)
- : TSqlTranslation(ctx, mode)
- , TopLevel(topLevel)
- {
- }
-
- TNodePtr Build(const TSQLv1ParserAST& ast);
-
- bool Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& core);
-private:
- bool DeclareStatement(const TRule_declare_stmt& stmt);
- bool ExportStatement(const TRule_export_stmt& stmt);
- bool AlterTableAction(const TRule_alter_table_action& node, TAlterTableParameters& params);
- bool AlterTableAddColumn(const TRule_alter_table_add_column& node, TAlterTableParameters& params);
- bool AlterTableDropColumn(const TRule_alter_table_drop_column& node, TAlterTableParameters& params);
- bool AlterTableAlterColumn(const TRule_alter_table_alter_column& node, TAlterTableParameters& params);
- bool AlterTableAddFamily(const TRule_family_entry& node, TAlterTableParameters& params);
- bool AlterTableAlterFamily(const TRule_alter_table_alter_column_family& node, TAlterTableParameters& params);
- bool AlterTableSetTableSetting(const TRule_alter_table_set_table_setting_uncompat& node, TAlterTableParameters& params);
- bool AlterTableSetTableSetting(const TRule_alter_table_set_table_setting_compat& node, TAlterTableParameters& params);
- bool AlterTableResetTableSetting(const TRule_alter_table_reset_table_setting& node, TAlterTableParameters& params);
- bool AlterTableAddIndex(const TRule_alter_table_add_index& node, TAlterTableParameters& params);
- void AlterTableDropIndex(const TRule_alter_table_drop_index& node, TAlterTableParameters& params);
- void AlterTableRenameTo(const TRule_alter_table_rename_to& node, TAlterTableParameters& params);
- bool AlterTableAddChangefeed(const TRule_alter_table_add_changefeed& node, TAlterTableParameters& params);
- bool AlterTableAlterChangefeed(const TRule_alter_table_alter_changefeed& node, TAlterTableParameters& params);
- void AlterTableDropChangefeed(const TRule_alter_table_drop_changefeed& node, TAlterTableParameters& params);
- void AlterTableRenameIndexTo(const TRule_alter_table_rename_index_to& node, TAlterTableParameters& params);
- TNodePtr PragmaStatement(const TRule_pragma_stmt& stmt, bool& success);
- void AddStatementToBlocks(TVector<TNodePtr>& blocks, TNodePtr node);
- bool ParseTableStoreFeatures(std::map<TString, TDeferredAtom> & result, const TRule_alter_table_store_action & actions);
-
- TNodePtr Build(const TRule_delete_stmt& stmt);
-
- TNodePtr Build(const TRule_update_stmt& stmt);
- TSourcePtr Build(const TRule_set_clause_choice& stmt);
- bool FillSetClause(const TRule_set_clause& node, TVector<TString>& targetList, TVector<TNodePtr>& values);
- TSourcePtr Build(const TRule_set_clause_list& stmt);
- TSourcePtr Build(const TRule_multiple_column_assignment& stmt);
-
- template<class TNode>
- void ParseStatementName(const TNode& node, TString& internalStatementName, TString& humanStatementName) {
- internalStatementName.clear();
- humanStatementName.clear();
- const auto& descr = AltDescription(node);
- TVector<TString> parts;
- const auto pos = descr.find(": ");
- Y_VERIFY_DEBUG(pos != TString::npos);
- Split(TString(descr.begin() + pos + 2, descr.end()), "_", parts);
- Y_VERIFY_DEBUG(parts.size() > 1);
- parts.pop_back();
- for (auto& part: parts) {
- part.to_upper(0, 1);
- internalStatementName += part;
- if (!humanStatementName.empty()) {
- humanStatementName += ' ';
- }
- humanStatementName += to_upper(part);
- }
- }
-
- const bool TopLevel;
-};
-
-TNodePtr TSqlTranslation::DoStatement(const TRule_do_stmt& stmt, bool makeLambda, const TVector<TString>& args) {
- switch (stmt.GetBlock2().Alt_case()) {
- case TRule_do_stmt_TBlock2::kAlt1: {
- const auto& callAction = stmt.GetBlock2().GetAlt1().GetRule_call_action1();
- TNodePtr action;
- switch (callAction.GetBlock1().GetAltCase()) {
- case TRule_call_action_TBlock1::kAlt1: {
- TString bindName;
- if (!NamedNodeImpl(callAction.GetBlock1().GetAlt1().GetRule_bind_parameter1(), bindName, *this)) {
- return nullptr;
- }
- action = GetNamedNode(bindName);
- if (!action) {
- return nullptr;
- }
- break;
- }
- case TRule_call_action_TBlock1::kAlt2:
- action = BuildEmptyAction(Ctx.Pos());
- break;
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownDoStmt");
- AltNotImplemented("do_stmt", callAction.GetBlock1());
- return nullptr;
- }
-
- TVector<TNodePtr> values;
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "Apply", TNodeFlags::Default));
- values.push_back(action);
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "world", TNodeFlags::Default));
-
- TSqlExpression sqlExpr(Ctx, Mode);
- if (callAction.HasBlock3() && !ExprList(sqlExpr, values, callAction.GetBlock3().GetRule_expr_list1())) {
- return nullptr;
- }
-
- TNodePtr apply = new TAstListNodeImpl(Ctx.Pos(), std::move(values));
- if (!makeLambda) {
- return BuildDoCall(Ctx.Pos(), apply);
- }
-
- TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
- params->Add("world");
- for (const auto& arg : args) {
- params->Add(new TAstAtomNodeImpl(Ctx.Pos(), arg, TNodeFlags::ArbitraryContent));
- }
-
- return BuildDoCall(Ctx.Pos(), BuildLambda(Ctx.Pos(), params, apply));
- }
- case TRule_do_stmt_TBlock2::kAlt2: {
- const auto& inlineAction = stmt.GetBlock2().GetAlt2().GetRule_inline_action1();
- const auto& body = inlineAction.GetRule_define_action_or_subquery_body2();
-
- auto saveScoped = Ctx.Scoped;
- Ctx.Scoped = MakeIntrusive<TScopedState>();
- Ctx.AllScopes.push_back(Ctx.Scoped);
- *Ctx.Scoped = *saveScoped;
- Ctx.Scoped->Local = TScopedState::TLocal{};
- Ctx.ScopeLevel++;
- TSqlQuery query(Ctx, Ctx.Settings.Mode, false);
- TBlocks innerBlocks;
-
- const bool hasValidBody = DefineActionOrSubqueryBody(query, innerBlocks, body);
- auto ret = hasValidBody ? BuildQuery(Ctx.Pos(), innerBlocks, false, Ctx.Scoped) : nullptr;
- WarnUnusedNodes();
- Ctx.ScopeLevel--;
- Ctx.Scoped = saveScoped;
-
- if (!ret) {
- return {};
- }
-
- TNodePtr blockNode = new TAstListNodeImpl(Ctx.Pos());
- blockNode->Add("block");
- blockNode->Add(blockNode->Q(ret));
- if (!makeLambda) {
- return blockNode;
- }
-
- TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
- params->Add("world");
- for (const auto& arg : args) {
- params->Add(new TAstAtomNodeImpl(Ctx.Pos(), arg, TNodeFlags::ArbitraryContent));
- }
-
- return BuildLambda(Ctx.Pos(), params, blockNode);
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-}
-
-void TSqlQuery::AddStatementToBlocks(TVector<TNodePtr>& blocks, TNodePtr node) {
- blocks.emplace_back(node);
-}
-
-static bool AsyncReplicationSettingsEntry(std::map<TString, TNodePtr>& out, const TRule_replication_settings_entry& in, TTranslation& ctx) {
- auto key = Id(in.GetRule_an_id1(), ctx);
- auto value = BuildLiteralSmartString(ctx.Context(), ctx.Token(in.GetToken3()));
- // TODO(ilnaz): validate
- out.emplace(std::move(key), value);
- return true;
-}
-
-static bool AsyncReplicationSettings(std::map<TString, TNodePtr>& out, const TRule_replication_settings& in, TTranslation& ctx) {
- if (!AsyncReplicationSettingsEntry(out, in.GetRule_replication_settings_entry1(), ctx)) {
- return false;
- }
-
- for (auto& block : in.GetBlock2()) {
- if (!AsyncReplicationSettingsEntry(out, block.GetRule_replication_settings_entry2(), ctx)) {
- return false;
- }
- }
-
- return true;
-}
-
-static bool AsyncReplicationTarget(std::vector<std::pair<TString, TString>>& out, const TRule_replication_target& in, TTranslation& ctx) {
- const TString remote = Id(in.GetRule_object_ref1().GetRule_id_or_at2(), ctx).second;
- const TString local = Id(in.GetRule_object_ref3().GetRule_id_or_at2(), ctx).second;
- out.emplace_back(remote, local);
- return true;
-}
-
-bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& core) {
- TString internalStatementName;
- TString humanStatementName;
- ParseStatementName(core, internalStatementName, humanStatementName);
- const auto& altCase = core.Alt_case();
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
- altCase != TRule_sql_stmt_core::kAltSqlStmtCore13)) {
- Error() << humanStatementName << " statement is not supported in limited views";
- return false;
- }
-
- if (Mode == NSQLTranslation::ESqlMode::SUBQUERY && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
- altCase != TRule_sql_stmt_core::kAltSqlStmtCore13 && altCase != TRule_sql_stmt_core::kAltSqlStmtCore6 &&
- altCase != TRule_sql_stmt_core::kAltSqlStmtCore17)) {
- Error() << humanStatementName << " statement is not supported in subqueries";
- return false;
- }
-
- switch (altCase) {
- case TRule_sql_stmt_core::kAltSqlStmtCore1: {
- bool success = false;
- TNodePtr nodeExpr = PragmaStatement(core.GetAlt_sql_stmt_core1().GetRule_pragma_stmt1(), success);
- if (!success) {
- return false;
- }
- if (nodeExpr) {
- AddStatementToBlocks(blocks, nodeExpr);
- }
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore2: {
- Ctx.BodyPart();
- TSqlSelect select(Ctx, Mode);
- TPosition pos;
- auto source = select.Build(core.GetAlt_sql_stmt_core2().GetRule_select_stmt1(), pos);
- if (!source) {
- return false;
- }
- blocks.emplace_back(BuildSelectResult(pos, std::move(source),
- Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode != NSQLTranslation::ESqlMode::SUBQUERY, Mode == NSQLTranslation::ESqlMode::SUBQUERY,
- Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore3: {
- Ctx.BodyPart();
- TVector<TSymbolNameWithPos> names;
- auto nodeExpr = NamedNode(core.GetAlt_sql_stmt_core3().GetRule_named_nodes_stmt1(), names);
- if (!nodeExpr) {
- return false;
- }
- TVector<TNodePtr> nodes;
- auto subquery = nodeExpr->GetSource();
- if (subquery && Mode == NSQLTranslation::ESqlMode::LIBRARY && Ctx.ScopeLevel == 0) {
- for (size_t i = 0; i < names.size(); ++i) {
- nodes.push_back(BuildInvalidSubqueryRef(subquery->GetPos()));
- }
- } else if (subquery) {
- const auto alias = Ctx.MakeName("subquerynode");
- const auto ref = Ctx.MakeName("subquery");
- blocks.push_back(BuildSubquery(subquery, alias,
- Mode == NSQLTranslation::ESqlMode::SUBQUERY, names.size() == 1 ? -1 : names.size(), Ctx.Scoped));
- blocks.back()->SetLabel(ref);
-
- for (size_t i = 0; i < names.size(); ++i) {
- nodes.push_back(BuildSubqueryRef(blocks.back(), ref, names.size() == 1 ? -1 : i));
- }
- } else {
- if (names.size() > 1) {
- auto tupleRes = BuildTupleResult(nodeExpr, names.size());
- for (size_t i = 0; i < names.size(); ++i) {
- nodes.push_back(nodeExpr->Y("Nth", tupleRes, nodeExpr->Q(ToString(i))));
- }
- } else {
- nodes.push_back(std::move(nodeExpr));
- }
- }
-
- for (size_t i = 0; i < names.size(); ++i) {
- PushNamedNode(names[i].Pos, names[i].Name, nodes[i]);
- }
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore4: {
- Ctx.BodyPart();
- const auto& rule = core.GetAlt_sql_stmt_core4().GetRule_create_table_stmt1();
- const auto& block = rule.GetBlock2();
- ETableType tableType = ETableType::Table;
- if (block.HasAlt2() && block.GetAlt2().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_TABLESTORE) {
- tableType = ETableType::TableStore;
- } else if (block.HasAlt3() && block.GetAlt3().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_EXTERNAL) {
- tableType = ETableType::ExternalTable;
- }
-
- TTableRef tr;
- if (!SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), tr)) {
- return false;
- }
-
- TCreateTableParameters params{.TableType=tableType};
- if (!CreateTableEntry(rule.GetRule_create_table_entry5(), params)) {
- return false;
- }
- for (auto& block: rule.GetBlock6()) {
- if (!CreateTableEntry(block.GetRule_create_table_entry2(), params)) {
- return false;
- }
- }
-
- if (rule.HasBlock8()) {
- Context().Error(GetPos(rule.GetBlock8().GetRule_table_inherits1().GetToken1()))
- << "INHERITS clause is not supported yet";
- return false;
- }
-
- if (rule.HasBlock9()) {
- if (tableType == ETableType::TableStore) {
- Context().Error(GetPos(rule.GetBlock9().GetRule_table_partition_by1().GetToken1()))
- << "PARTITION BY is not supported for TABLESTORE";
- return false;
- }
- const auto list = rule.GetBlock9().GetRule_table_partition_by1().GetRule_pure_column_list4();
- params.PartitionByColumns.push_back(IdEx(list.GetRule_an_id2(), *this));
- for (auto& node : list.GetBlock3()) {
- params.PartitionByColumns.push_back(IdEx(node.GetRule_an_id2(), *this));
- }
- }
-
- if (rule.HasBlock10()) {
- if (!CreateTableSettings(rule.GetBlock10().GetRule_with_table_settings1(), params)) {
- return false;
- }
- }
-
- if (rule.HasBlock11()) {
- Context().Error(GetPos(rule.GetBlock11().GetRule_table_tablestore1().GetToken1()))
- << "TABLESTORE clause is not supported yet";
- return false;
- }
-
- if (!ValidateExternalTable(params)) {
- return false;
- }
-
- AddStatementToBlocks(blocks, BuildCreateTable(Ctx.Pos(), tr, params, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore5: {
- Ctx.BodyPart();
- const auto& rule = core.GetAlt_sql_stmt_core5().GetRule_drop_table_stmt1();
- const auto& block = rule.GetBlock2();
- ETableType tableType = ETableType::Table;
- if (block.HasAlt2()) {
- tableType = ETableType::TableStore;
- }
- if (block.HasAlt3()) {
- tableType = ETableType::ExternalTable;
- }
-
- if (rule.HasBlock3()) {
- Context().Error(GetPos(rule.GetToken1())) << "IF EXISTS in " << humanStatementName
- << " is not supported.";
- return false;
- }
- TTableRef tr;
- if (!SimpleTableRefImpl(rule.GetRule_simple_table_ref4(), tr)) {
- return false;
- }
-
- AddStatementToBlocks(blocks, BuildDropTable(Ctx.Pos(), tr, tableType, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore6: {
- const auto& rule = core.GetAlt_sql_stmt_core6().GetRule_use_stmt1();
- Token(rule.GetToken1());
- if (!ClusterExpr(rule.GetRule_cluster_expr2(), true, Ctx.Scoped->CurrService, Ctx.Scoped->CurrCluster)) {
- return false;
- }
-
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore7: {
- Ctx.BodyPart();
- TSqlIntoTable intoTable(Ctx, Mode);
- TNodePtr block(intoTable.Build(core.GetAlt_sql_stmt_core7().GetRule_into_table_stmt1()));
- if (!block) {
- return false;
- }
- blocks.emplace_back(block);
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore8: {
- Ctx.BodyPart();
- const auto& rule = core.GetAlt_sql_stmt_core8().GetRule_commit_stmt1();
- Token(rule.GetToken1());
- blocks.emplace_back(BuildCommitClusters(Ctx.Pos()));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore9: {
- Ctx.BodyPart();
- auto updateNode = Build(core.GetAlt_sql_stmt_core9().GetRule_update_stmt1());
- if (!updateNode) {
- return false;
- }
- AddStatementToBlocks(blocks, updateNode);
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore10: {
- Ctx.BodyPart();
- auto deleteNode = Build(core.GetAlt_sql_stmt_core10().GetRule_delete_stmt1());
- if (!deleteNode) {
- return false;
- }
- blocks.emplace_back(deleteNode);
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore11: {
- Ctx.BodyPart();
- const auto& rule = core.GetAlt_sql_stmt_core11().GetRule_rollback_stmt1();
- Token(rule.GetToken1());
- blocks.emplace_back(BuildRollbackClusters(Ctx.Pos()));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore12:
- if (!DeclareStatement(core.GetAlt_sql_stmt_core12().GetRule_declare_stmt1())) {
- return false;
- }
- break;
- case TRule_sql_stmt_core::kAltSqlStmtCore13:
- if (!ImportStatement(core.GetAlt_sql_stmt_core13().GetRule_import_stmt1())) {
- return false;
- }
- break;
- case TRule_sql_stmt_core::kAltSqlStmtCore14:
- if (!ExportStatement(core.GetAlt_sql_stmt_core14().GetRule_export_stmt1())) {
- return false;
- }
- break;
- case TRule_sql_stmt_core::kAltSqlStmtCore15: {
- Ctx.BodyPart();
- const auto& rule = core.GetAlt_sql_stmt_core15().GetRule_alter_table_stmt1();
- const bool isTablestore = rule.GetToken2().GetId() == SQLv1LexerTokens::TOKEN_TABLESTORE;
- TTableRef tr;
- if (!SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), tr)) {
- return false;
- }
-
- TAlterTableParameters params;
- if (isTablestore) {
- params.TableType = ETableType::TableStore;
- }
- if (!AlterTableAction(rule.GetRule_alter_table_action4(), params)) {
- return false;
- }
-
- for (auto& block : rule.GetBlock5()) {
- if (!AlterTableAction(block.GetRule_alter_table_action2(), params)) {
- return false;
- }
- }
-
- AddStatementToBlocks(blocks, BuildAlterTable(Ctx.Pos(), tr, params, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore16: {
- Ctx.BodyPart();
- auto node = DoStatement(core.GetAlt_sql_stmt_core16().GetRule_do_stmt1(), false);
- if (!node) {
- return false;
- }
-
- blocks.push_back(node);
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore17: {
- Ctx.BodyPart();
- if (!DefineActionOrSubqueryStatement(core.GetAlt_sql_stmt_core17().GetRule_define_action_or_subquery_stmt1())) {
- return false;
- }
-
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore18: {
- Ctx.BodyPart();
- auto node = IfStatement(core.GetAlt_sql_stmt_core18().GetRule_if_stmt1());
- if (!node) {
- return false;
- }
-
- blocks.push_back(node);
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore19: {
- Ctx.BodyPart();
- auto node = ForStatement(core.GetAlt_sql_stmt_core19().GetRule_for_stmt1());
- if (!node) {
- return false;
- }
-
- blocks.push_back(node);
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore20: {
- Ctx.BodyPart();
- TSqlValues values(Ctx, Mode);
- TPosition pos;
- auto source = values.Build(core.GetAlt_sql_stmt_core20().GetRule_values_stmt1(), pos, {}, TPosition());
- if (!source) {
- return false;
- }
- blocks.emplace_back(BuildSelectResult(pos, std::move(source),
- Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode != NSQLTranslation::ESqlMode::SUBQUERY, Mode == NSQLTranslation::ESqlMode::SUBQUERY,
- Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore21: {
- // create_user_stmt: CREATE USER role_name create_user_option?;
- Ctx.BodyPart();
- auto& node = core.GetAlt_sql_stmt_core21().GetRule_create_user_stmt1();
-
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
-
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
- if (cluster.Empty()) {
- Error() << "USE statement is missing - no default cluster is selected";
- return false;
- }
-
- TDeferredAtom roleName;
- bool allowSystemRoles = false;
- if (!RoleNameClause(node.GetRule_role_name3(), roleName, allowSystemRoles)) {
- return false;
- }
-
- TMaybe<TRoleParameters> roleParams;
- if (node.HasBlock4()) {
- roleParams.ConstructInPlace();
- if (!RoleParameters(node.GetBlock4().GetRule_create_user_option1(), *roleParams)) {
- return false;
- }
- }
-
- AddStatementToBlocks(blocks, BuildCreateUser(pos, service, cluster, roleName, roleParams, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore22: {
- // alter_user_stmt: ALTER USER role_name (WITH? create_user_option | RENAME TO role_name);
- Ctx.BodyPart();
- auto& node = core.GetAlt_sql_stmt_core22().GetRule_alter_user_stmt1();
-
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
-
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
- if (cluster.Empty()) {
- Error() << "USE statement is missing - no default cluster is selected";
- return false;
- }
-
- TDeferredAtom roleName;
- {
- bool allowSystemRoles = true;
- if (!RoleNameClause(node.GetRule_role_name3(), roleName, allowSystemRoles)) {
- return false;
- }
- }
-
- TNodePtr stmt;
- switch (node.GetBlock4().Alt_case()) {
- case TRule_alter_user_stmt_TBlock4::kAlt1: {
- TRoleParameters roleParams;
- if (!RoleParameters(node.GetBlock4().GetAlt1().GetRule_create_user_option2(), roleParams)) {
- return false;
- }
- stmt = BuildAlterUser(pos, service, cluster, roleName, roleParams, Ctx.Scoped);
- break;
- }
- case TRule_alter_user_stmt_TBlock4::kAlt2: {
- TDeferredAtom tgtRoleName;
- bool allowSystemRoles = false;
- if (!RoleNameClause(node.GetBlock4().GetAlt2().GetRule_role_name3(), tgtRoleName, allowSystemRoles)) {
- return false;
- }
- stmt = BuildRenameUser(pos, service, cluster, roleName, tgtRoleName,Ctx.Scoped);
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- AddStatementToBlocks(blocks, stmt);
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore23: {
- // create_group_stmt: CREATE GROUP role_name;
- Ctx.BodyPart();
- auto& node = core.GetAlt_sql_stmt_core23().GetRule_create_group_stmt1();
-
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
-
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
- if (cluster.Empty()) {
- Error() << "USE statement is missing - no default cluster is selected";
- return false;
- }
-
- TDeferredAtom roleName;
- bool allowSystemRoles = false;
- if (!RoleNameClause(node.GetRule_role_name3(), roleName, allowSystemRoles)) {
- return false;
- }
-
- AddStatementToBlocks(blocks, BuildCreateGroup(pos, service, cluster, roleName, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore24: {
- // alter_group_stmt: ALTER GROUP role_name ((ADD|DROP) USER role_name (COMMA role_name)* COMMA? | RENAME TO role_name);
- Ctx.BodyPart();
- auto& node = core.GetAlt_sql_stmt_core24().GetRule_alter_group_stmt1();
-
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
-
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
- if (cluster.Empty()) {
- Error() << "USE statement is missing - no default cluster is selected";
- return false;
- }
-
- TDeferredAtom roleName;
- {
- bool allowSystemRoles = true;
- if (!RoleNameClause(node.GetRule_role_name3(), roleName, allowSystemRoles)) {
- return false;
- }
- }
-
- TNodePtr stmt;
- switch (node.GetBlock4().Alt_case()) {
- case TRule_alter_group_stmt_TBlock4::kAlt1: {
- auto& addDropNode = node.GetBlock4().GetAlt1();
- const bool isDrop = addDropNode.GetToken1().GetId() == SQLv1LexerTokens::TOKEN_DROP;
- TVector<TDeferredAtom> roles;
- bool allowSystemRoles = false;
- roles.emplace_back();
- if (!RoleNameClause(addDropNode.GetRule_role_name3(), roles.back(), allowSystemRoles)) {
- return false;
- }
-
- for (auto& item : addDropNode.GetBlock4()) {
- roles.emplace_back();
- if (!RoleNameClause(item.GetRule_role_name2(), roles.back(), allowSystemRoles)) {
- return false;
- }
- }
-
- stmt = BuildAlterGroup(pos, service, cluster, roleName, roles, isDrop, Ctx.Scoped);
- break;
- }
- case TRule_alter_group_stmt_TBlock4::kAlt2: {
- TDeferredAtom tgtRoleName;
- bool allowSystemRoles = false;
- if (!RoleNameClause(node.GetBlock4().GetAlt2().GetRule_role_name3(), tgtRoleName, allowSystemRoles)) {
- return false;
- }
- stmt = BuildRenameGroup(pos, service, cluster, roleName, tgtRoleName, Ctx.Scoped);
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- AddStatementToBlocks(blocks, stmt);
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore25: {
- // drop_role_stmt: DROP (USER|GROUP) (IF EXISTS)? role_name (COMMA role_name)* COMMA?;
- Ctx.BodyPart();
- auto& node = core.GetAlt_sql_stmt_core25().GetRule_drop_role_stmt1();
-
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
-
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
- if (cluster.Empty()) {
- Error() << "USE statement is missing - no default cluster is selected";
- return false;
- }
-
- const bool isUser = node.GetToken2().GetId() == SQLv1LexerTokens::TOKEN_USER;
- const bool force = node.HasBlock3();
-
- TVector<TDeferredAtom> roles;
- bool allowSystemRoles = true;
- roles.emplace_back();
- if (!RoleNameClause(node.GetRule_role_name4(), roles.back(), allowSystemRoles)) {
- return false;
- }
-
- for (auto& item : node.GetBlock5()) {
- roles.emplace_back();
- if (!RoleNameClause(item.GetRule_role_name2(), roles.back(), allowSystemRoles)) {
- return false;
- }
- }
-
- AddStatementToBlocks(blocks, BuildDropRoles(pos, service, cluster, roles, isUser, force, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore26: {
- // create_object_stmt: CREATE OBJECT name (TYPE type [WITH k=v,...]);
- auto& node = core.GetAlt_sql_stmt_core26().GetRule_create_object_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
- if (node.GetRule_object_ref3().HasBlock1()) {
- if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
- false, context.ServiceId, context.Cluster)) {
- return false;
- }
- }
-
- const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
- const TString& typeId = Id(node.GetRule_object_type_ref6().GetRule_an_id_or_type1(), *this);
- std::map<TString, TDeferredAtom> kv;
- if (node.HasBlock8()) {
- if (!ParseObjectFeatures(kv, node.GetBlock8().GetRule_create_object_features1().GetRule_object_features2())) {
- return false;
- }
- }
-
- AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore27: {
- // alter_object_stmt: ALTER OBJECT name (TYPE type [SET k=v,...]);
- auto& node = core.GetAlt_sql_stmt_core27().GetRule_alter_object_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
- if (node.GetRule_object_ref3().HasBlock1()) {
- if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
- false, context.ServiceId, context.Cluster)) {
- return false;
- }
- }
-
- const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
- const TString& typeId = Id(node.GetRule_object_type_ref6().GetRule_an_id_or_type1(), *this);
- std::map<TString, TDeferredAtom> kv;
- if (!ParseObjectFeatures(kv, node.GetRule_alter_object_features8().GetRule_object_features2())) {
- return false;
- }
-
- AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore28: {
- // drop_object_stmt: DROP OBJECT name (TYPE type [WITH k=v,...]);
- auto& node = core.GetAlt_sql_stmt_core28().GetRule_drop_object_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
- if (node.GetRule_object_ref3().HasBlock1()) {
- if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
- false, context.ServiceId, context.Cluster)) {
- return false;
- }
- }
-
- const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
- const TString& typeId = Id(node.GetRule_object_type_ref6().GetRule_an_id_or_type1(), *this);
- std::map<TString, TDeferredAtom> kv;
- if (node.HasBlock8()) {
- if (!ParseObjectFeatures(kv, node.GetBlock8().GetRule_drop_object_features1().GetRule_object_features2())) {
- return false;
- }
- }
-
- AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore29: {
- // create_external_data_source_stmt: CREATE EXTERNAL DATA SOURCE name WITH (k=v,...);
- auto& node = core.GetAlt_sql_stmt_core29().GetRule_create_external_data_source_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
- if (node.GetRule_object_ref5().HasBlock1()) {
- if (!ClusterExpr(node.GetRule_object_ref5().GetBlock1().GetRule_cluster_expr1(),
- false, context.ServiceId, context.Cluster)) {
- return false;
- }
- }
-
- const TString& objectId = Id(node.GetRule_object_ref5().GetRule_id_or_at2(), *this).second;
- std::map<TString, TDeferredAtom> kv;
- if (!ParseExternalDataSourceSettings(kv, node.GetRule_with_table_settings6())) {
- return false;
- }
-
- AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx.Pos(), BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId), "EXTERNAL_DATA_SOURCE", std::move(kv), context));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore30: {
- // drop_external_data_source_stmt: DROP EXTERNAL DATA SOURCE name;
- auto& node = core.GetAlt_sql_stmt_core30().GetRule_drop_external_data_source_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
- if (node.GetRule_object_ref5().HasBlock1()) {
- if (!ClusterExpr(node.GetRule_object_ref5().GetBlock1().GetRule_cluster_expr1(),
- false, context.ServiceId, context.Cluster)) {
- return false;
- }
- }
-
- const TString& objectId = Id(node.GetRule_object_ref5().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx.Pos(), BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId), "EXTERNAL_DATA_SOURCE", {}, context));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore31: {
- // create_replication_stmt: CREATE ASYNC REPLICATION
- auto& node = core.GetAlt_sql_stmt_core31().GetRule_create_replication_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
- if (node.GetRule_object_ref4().HasBlock1()) {
- const auto& cluster = node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1();
- if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
- return false;
- }
- }
-
- std::vector<std::pair<TString, TString>> targets;
- if (!AsyncReplicationTarget(targets, node.GetRule_replication_target6(), *this)) {
- return false;
- }
- for (auto& block : node.GetBlock7()) {
- if (!AsyncReplicationTarget(targets, block.GetRule_replication_target2(), *this)) {
- return false;
- }
- }
-
- std::map<TString, TNodePtr> settings;
- if (!AsyncReplicationSettings(settings, node.GetRule_replication_settings10(), *this)) {
- return false;
- }
-
- const TString id = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildCreateAsyncReplication(Ctx.Pos(), id, std::move(targets), std::move(settings), context));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore32: {
- // drop_replication_stmt: DROP ASYNC REPLICATION
- auto& node = core.GetAlt_sql_stmt_core32().GetRule_drop_replication_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
- if (node.GetRule_object_ref4().HasBlock1()) {
- const auto& cluster = node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1();
- if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
- return false;
- }
- }
-
- const TString id = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildDropAsyncReplication(Ctx.Pos(), id, node.HasBlock5(), context));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore33: {
- Ctx.BodyPart();
- // create_topic_stmt: CREATE TOPIC topic1 (CONSUMER ...)? [WITH (opt1 = val1, ...]?
- auto& rule = core.GetAlt_sql_stmt_core33().GetRule_create_topic_stmt1();
- TTopicRef tr;
- if (!TopicRefImpl(rule.GetRule_topic_ref3(), tr)) {
- return false;
- }
-
- TCreateTopicParameters params;
- if (rule.HasBlock4()) { //create_topic_entry (consumers)
- auto& entries = rule.GetBlock4().GetRule_create_topic_entries1();
- auto& firstEntry = entries.GetRule_create_topic_entry2();
- if (!CreateTopicEntry(firstEntry, params)) {
- return false;
- }
- const auto& list = entries.GetBlock3();
- for (auto& node : list) {
- if (!CreateTopicEntry(node.GetRule_create_topic_entry2(), params)) {
- return false;
- }
- }
-
- }
- if (rule.HasBlock5()) { // with_topic_settings
- auto& topic_settings_node = rule.GetBlock5().GetRule_with_topic_settings1().GetRule_topic_settings3();
- CreateTopicSettings(topic_settings_node, params.TopicSettings);
- }
-
- AddStatementToBlocks(blocks, BuildCreateTopic(Ctx.Pos(), tr, params, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore34: {
-// alter_topic_stmt: ALTER TOPIC topic_ref alter_topic_action (COMMA alter_topic_action)*;
-
- Ctx.BodyPart();
- auto& rule = core.GetAlt_sql_stmt_core34().GetRule_alter_topic_stmt1();
- TTopicRef tr;
- if (!TopicRefImpl(rule.GetRule_topic_ref3(), tr)) {
- return false;
- }
-
- TAlterTopicParameters params;
- auto& firstEntry = rule.GetRule_alter_topic_action4();
- if (!AlterTopicAction(firstEntry, params)) {
- return false;
- }
- const auto& list = rule.GetBlock5();
- for (auto& node : list) {
- if (!AlterTopicAction(node.GetRule_alter_topic_action2(), params)) {
- return false;
- }
- }
-
- AddStatementToBlocks(blocks, BuildAlterTopic(Ctx.Pos(), tr, params, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore35: {
- // drop_topic_stmt: DROP TOPIC
- Ctx.BodyPart();
- const auto& rule = core.GetAlt_sql_stmt_core35().GetRule_drop_topic_stmt1();
-
- TTopicRef tr;
- if (!TopicRefImpl(rule.GetRule_topic_ref3(), tr)) {
- return false;
- }
- AddStatementToBlocks(blocks, BuildDropTopic(Ctx.Pos(), tr, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore36: {
- // GRANT permission_name_target ON an_id_schema (COMMA an_id_schema)* TO role_name (COMMA role_name)* COMMA? (WITH GRANT OPTION)?;
- Ctx.BodyPart();
- auto& node = core.GetAlt_sql_stmt_core36().GetRule_grant_permissions_stmt1();
-
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
-
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
- if (cluster.Empty()) {
- Error() << "USE statement is missing - no default cluster is selected";
- return false;
- }
-
- TVector<TDeferredAtom> permissions;
- if (!PermissionNameClause(node.GetRule_permission_name_target2(), permissions, node.has_block10())) {
- return false;
- }
-
- TVector<TDeferredAtom> schemaPathes;
- schemaPathes.emplace_back(Ctx.Pos(), Id(node.GetRule_an_id_schema4(), *this));
- for (const auto& item : node.GetBlock5()) {
- schemaPathes.emplace_back(Ctx.Pos(), Id(item.GetRule_an_id_schema2(), *this));
- }
-
- TVector<TDeferredAtom> roleNames;
- const bool allowSystemRoles = false;
- roleNames.emplace_back();
- if (!RoleNameClause(node.GetRule_role_name7(), roleNames.back(), allowSystemRoles)) {
- return false;
- }
- for (const auto& item : node.GetBlock8()) {
- roleNames.emplace_back();
- if (!RoleNameClause(item.GetRule_role_name2(), roleNames.back(), allowSystemRoles)) {
- return false;
- }
- }
-
- AddStatementToBlocks(blocks, BuildGrantPermissions(pos, service, cluster, permissions, schemaPathes, roleNames, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore37:
- {
- // REVOKE (GRANT OPTION FOR)? permission_name_target ON an_id_schema (COMMA an_id_schema)* FROM role_name (COMMA role_name)*;
- Ctx.BodyPart();
- auto& node = core.GetAlt_sql_stmt_core37().GetRule_revoke_permissions_stmt1();
-
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
-
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
- if (cluster.Empty()) {
- Error() << "USE statement is missing - no default cluster is selected";
- return false;
- }
-
- TVector<TDeferredAtom> permissions;
- if (!PermissionNameClause(node.GetRule_permission_name_target3(), permissions, node.HasBlock2())) {
- return false;
- }
-
- TVector<TDeferredAtom> schemaPathes;
- schemaPathes.emplace_back(Ctx.Pos(), Id(node.GetRule_an_id_schema5(), *this));
- for (const auto& item : node.GetBlock6()) {
- schemaPathes.emplace_back(Ctx.Pos(), Id(item.GetRule_an_id_schema2(), *this));
- }
-
- TVector<TDeferredAtom> roleNames;
- const bool allowSystemRoles = false;
- roleNames.emplace_back();
- if (!RoleNameClause(node.GetRule_role_name8(), roleNames.back(), allowSystemRoles)) {
- return false;
- }
- for (const auto& item : node.GetBlock9()) {
- roleNames.emplace_back();
- if (!RoleNameClause(item.GetRule_role_name2(), roleNames.back(), allowSystemRoles)) {
- return false;
- }
- }
-
- AddStatementToBlocks(blocks, BuildRevokePermissions(pos, service, cluster, permissions, schemaPathes, roleNames, Ctx.Scoped));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore38:
- {
- // ALTER TABLESTORE object_ref alter_table_store_action (COMMA alter_table_store_action)*;
- auto& node = core.GetAlt_sql_stmt_core38().GetRule_alter_table_store_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
-
- if (node.GetRule_object_ref3().HasBlock1()) {
- if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
- false, context.ServiceId, context.Cluster)) {
- return false;
- }
- }
-
- const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
- const TString& typeId = "TABLESTORE";
- std::map<TString, TDeferredAtom> kv;
- if (!ParseTableStoreFeatures(kv, node.GetRule_alter_table_store_action4())) {
- return false;
- }
-
- AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
- break;
- }
- case TRule_sql_stmt_core::kAltSqlStmtCore39:
- {
- // create_object_stmt: UPSERT OBJECT name (TYPE type [WITH k=v,...]);
- auto& node = core.GetAlt_sql_stmt_core39().GetRule_upsert_object_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
- if (node.GetRule_object_ref3().HasBlock1()) {
- if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
- false, context.ServiceId, context.Cluster)) {
- return false;
- }
- }
-
- const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
- const TString& typeId = Id(node.GetRule_object_type_ref6().GetRule_an_id_or_type1(), *this);
- std::map<TString, TDeferredAtom> kv;
- if (node.HasBlock8()) {
- if (!ParseObjectFeatures(kv, node.GetBlock8().GetRule_create_object_features1().GetRule_object_features2())) {
- return false;
- }
- }
-
- AddStatementToBlocks(blocks, BuildUpsertObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
- break;
- }
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownStatement" + internalStatementName);
- AltNotImplemented("sql_stmt_core", core);
- return false;
- }
-
- Ctx.IncrementMonCounter("sql_features", internalStatementName);
- return !Ctx.HasPendingErrors;
-}
-
-bool TSqlQuery::DeclareStatement(const TRule_declare_stmt& stmt) {
- TNodePtr defaultValue;
- if (stmt.HasBlock5()) {
- TSqlExpression sqlExpr(Ctx, Mode);
- auto exprOrId = sqlExpr.LiteralExpr(stmt.GetBlock5().GetRule_literal_value2());
- if (!exprOrId) {
- return false;
- }
- if (!exprOrId->Expr) {
- Ctx.Error() << "Identifier is not expected here";
- return false;
- }
- defaultValue = exprOrId->Expr;
- }
- if (defaultValue) {
- Error() << "DEFAULT value not supported yet";
- return false;
- }
- if (!Ctx.IsParseHeading()) {
- Error() << "DECLARE statement should be in beginning of query, but it's possible to use PRAGMA or USE before it";
- return false;
- }
-
- TString varName;
- if (!NamedNodeImpl(stmt.GetRule_bind_parameter2(), varName, *this)) {
- return false;
- }
- const auto varPos = Ctx.Pos();
- const auto typeNode = TypeNode(stmt.GetRule_type_name4());
- if (!typeNode) {
- return false;
- }
- if (IsAnonymousName(varName)) {
- Ctx.Error(varPos) << "Can not use anonymous name '" << varName << "' in DECLARE statement";
- return false;
- }
-
- if (Ctx.IsAlreadyDeclared(varName)) {
- Ctx.Warning(varPos, TIssuesIds::YQL_DUPLICATE_DECLARE) << "Duplicate declaration of '" << varName << "' will be ignored";
- } else {
- PushNamedAtom(varPos, varName);
- Ctx.DeclareVariable(varName, typeNode);
- }
- return true;
-}
-
-bool TSqlQuery::ExportStatement(const TRule_export_stmt& stmt) {
- if (Mode != NSQLTranslation::ESqlMode::LIBRARY || !TopLevel) {
- Error() << "EXPORT statement should be used only in a library on the top level";
- return false;
- }
-
- TVector<TSymbolNameWithPos> bindNames;
- if (!BindList(stmt.GetRule_bind_parameter_list2(), bindNames)) {
- return false;
- }
-
- for (auto& bindName : bindNames) {
- if (!Ctx.AddExport(bindName.Pos, bindName.Name)) {
- return false;
- }
- }
- return true;
-}
-
-bool TSqlQuery::AlterTableAction(const TRule_alter_table_action& node, TAlterTableParameters& params) {
- if (params.RenameTo) {
- // rename action is followed by some other actions
- Error() << "RENAME TO can not be used together with another table action";
- return false;
- }
-
- switch (node.Alt_case()) {
- case TRule_alter_table_action::kAltAlterTableAction1: {
- // ADD COLUMN
- const auto& addRule = node.GetAlt_alter_table_action1().GetRule_alter_table_add_column1();
- if (!AlterTableAddColumn(addRule, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction2: {
- // DROP COLUMN
- const auto& dropRule = node.GetAlt_alter_table_action2().GetRule_alter_table_drop_column1();
- if (!AlterTableDropColumn(dropRule, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction3: {
- // ALTER COLUMN
- const auto& alterRule = node.GetAlt_alter_table_action3().GetRule_alter_table_alter_column1();
- if (!AlterTableAlterColumn(alterRule, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction4: {
- // ADD FAMILY
- const auto& familyEntry = node.GetAlt_alter_table_action4().GetRule_alter_table_add_column_family1()
- .GetRule_family_entry2();
- if (!AlterTableAddFamily(familyEntry, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction5: {
- // ALTER FAMILY
- const auto& alterRule = node.GetAlt_alter_table_action5().GetRule_alter_table_alter_column_family1();
- if (!AlterTableAlterFamily(alterRule, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction6: {
- // SET (uncompat)
- const auto& setRule = node.GetAlt_alter_table_action6().GetRule_alter_table_set_table_setting_uncompat1();
- if (!AlterTableSetTableSetting(setRule, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction7: {
- // SET (compat)
- const auto& setRule = node.GetAlt_alter_table_action7().GetRule_alter_table_set_table_setting_compat1();
- if (!AlterTableSetTableSetting(setRule, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction8: {
- // RESET
- const auto& setRule = node.GetAlt_alter_table_action8().GetRule_alter_table_reset_table_setting1();
- if (!AlterTableResetTableSetting(setRule, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction9: {
- // ADD INDEX
- const auto& addIndex = node.GetAlt_alter_table_action9().GetRule_alter_table_add_index1();
- if (!AlterTableAddIndex(addIndex, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction10: {
- // DROP INDEX
- const auto& dropIndex = node.GetAlt_alter_table_action10().GetRule_alter_table_drop_index1();
- AlterTableDropIndex(dropIndex, params);
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction11: {
- // RENAME TO
- if (!params.IsEmpty()) {
- // rename action follows some other actions
- Error() << "RENAME TO can not be used together with another table action";
- return false;
- }
-
- const auto& renameTo = node.GetAlt_alter_table_action11().GetRule_alter_table_rename_to1();
- AlterTableRenameTo(renameTo, params);
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction12: {
- // ADD CHANGEFEED
- const auto& rule = node.GetAlt_alter_table_action12().GetRule_alter_table_add_changefeed1();
- if (!AlterTableAddChangefeed(rule, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction13: {
- // ALTER CHANGEFEED
- const auto& rule = node.GetAlt_alter_table_action13().GetRule_alter_table_alter_changefeed1();
- if (!AlterTableAlterChangefeed(rule, params)) {
- return false;
- }
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction14: {
- // DROP CHANGEFEED
- const auto& rule = node.GetAlt_alter_table_action14().GetRule_alter_table_drop_changefeed1();
- AlterTableDropChangefeed(rule, params);
- break;
- }
- case TRule_alter_table_action::kAltAlterTableAction15: {
- // RENAME INDEX TO
- if (!params.IsEmpty()) {
- // rename action follows some other actions
- Error() << "RENAME INDEX TO can not be used together with another table action";
- return false;
- }
-
- const auto& renameTo = node.GetAlt_alter_table_action15().GetRule_alter_table_rename_index_to1();
- AlterTableRenameIndexTo(renameTo, params);
- break;
- }
-
- default:
- AltNotImplemented("alter_table_action", node);
- return false;
- }
- return true;
-}
-
-bool TSqlQuery::AlterTableAddColumn(const TRule_alter_table_add_column& node, TAlterTableParameters& params) {
- auto columnSchema = ColumnSchemaImpl(node.GetRule_column_schema3());
- if (!columnSchema) {
- return false;
- }
- if (columnSchema->Families.size() > 1) {
- Ctx.Error() << "Several column families for a single column are not yet supported";
- return false;
- }
- params.AddColumns.push_back(*columnSchema);
- return true;
-}
-
-bool TSqlQuery::AlterTableDropColumn(const TRule_alter_table_drop_column& node, TAlterTableParameters& params) {
- TString name = Id(node.GetRule_an_id3(), *this);
- params.DropColumns.push_back(name);
- return true;
-}
-
-bool TSqlQuery::AlterTableAlterColumn(const TRule_alter_table_alter_column& node,
- TAlterTableParameters& params)
-{
- TString name = Id(node.GetRule_an_id3(), *this);
- const TPosition pos(Context().Pos());
- TVector<TIdentifier> families;
- const auto& familyRelation = node.GetRule_family_relation5();
- families.push_back(IdEx(familyRelation.GetRule_an_id2(), *this));
- params.AlterColumns.emplace_back(pos, name, nullptr, false, families);
- return true;
-}
-
-bool TSqlQuery::AlterTableAddFamily(const TRule_family_entry& node, TAlterTableParameters& params) {
- TFamilyEntry family(IdEx(node.GetRule_an_id2(), *this));
- if (!FillFamilySettings(node.GetRule_family_settings3(), family)) {
- return false;
- }
- params.AddColumnFamilies.push_back(family);
- return true;
-}
-
-bool TSqlQuery::AlterTableAlterFamily(const TRule_alter_table_alter_column_family& node,
- TAlterTableParameters& params)
-{
- TFamilyEntry* entry = nullptr;
- TIdentifier name = IdEx(node.GetRule_an_id3(), *this);
- for (auto& family : params.AlterColumnFamilies) {
- if (family.Name.Name == name.Name) {
- entry = &family;
- break;
- }
- }
- if (!entry) {
- entry = &params.AlterColumnFamilies.emplace_back(name);
- }
- TIdentifier settingName = IdEx(node.GetRule_an_id5(), *this);
- const TRule_family_setting_value& value = node.GetRule_family_setting_value6();
- if (to_lower(settingName.Name) == "data") {
- if (entry->Data) {
- Ctx.Error() << "Redefinition of 'data' setting for column family '" << name.Name
- << "' in one alter";
- return false;
- }
- const TString stringValue(Ctx.Token(value.GetToken1()));
- entry->Data = BuildLiteralSmartString(Ctx, stringValue);
- } else if (to_lower(settingName.Name) == "compression") {
- if (entry->Compression) {
- Ctx.Error() << "Redefinition of 'compression' setting for column family '" << name.Name
- << "' in one alter";
- return false;
- }
- const TString stringValue(Ctx.Token(value.GetToken1()));
- entry->Compression = BuildLiteralSmartString(Ctx, stringValue);
- } else {
- Ctx.Error() << "Unknown table setting: " << settingName.Name;
- return false;
- }
- return true;
-}
-
-bool TSqlQuery::AlterTableSetTableSetting(const TRule_alter_table_set_table_setting_uncompat& node,
- TAlterTableParameters& params)
-{
- if (!StoreTableSettingsEntry(IdEx(node.GetRule_an_id2(), *this), node.GetRule_table_setting_value3(),
- params.TableSettings, params.TableType, true)) {
- return false;
- }
- return true;
-}
-
-bool TSqlQuery::AlterTableSetTableSetting(const TRule_alter_table_set_table_setting_compat& node,
- TAlterTableParameters& params)
-{
- const auto& firstEntry = node.GetRule_alter_table_setting_entry3();
- if (!StoreTableSettingsEntry(IdEx(firstEntry.GetRule_an_id1(), *this), firstEntry.GetRule_table_setting_value3(),
- params.TableSettings, params.TableType, true)) {
- return false;
- }
- for (auto& block : node.GetBlock4()) {
- const auto& entry = block.GetRule_alter_table_setting_entry2();
- if (!StoreTableSettingsEntry(IdEx(entry.GetRule_an_id1(), *this), entry.GetRule_table_setting_value3(),
- params.TableSettings, params.TableType, true)) {
- return false;
- }
- }
- return true;
-}
-
-bool TSqlQuery::AlterTableResetTableSetting(const TRule_alter_table_reset_table_setting& node,
- TAlterTableParameters& params)
-{
- const auto& firstEntry = node.GetRule_an_id3();
- if (!ResetTableSettingsEntry(IdEx(firstEntry, *this), params.TableSettings, params.TableType)) {
- return false;
- }
- for (auto& block : node.GetBlock4()) {
- const auto& entry = block.GetRule_an_id2();
- if (!ResetTableSettingsEntry(IdEx(entry, *this), params.TableSettings, params.TableType)) {
- return false;
- }
- }
- return true;
-}
-
-bool TSqlQuery::AlterTableAddIndex(const TRule_alter_table_add_index& node, TAlterTableParameters& params) {
- if (!CreateTableIndex(node.GetRule_table_index2(), *this, params.AddIndexes)) {
- return false;
- }
- return true;
-}
-
-void TSqlQuery::AlterTableDropIndex(const TRule_alter_table_drop_index& node, TAlterTableParameters& params) {
- params.DropIndexes.emplace_back(IdEx(node.GetRule_an_id3(), *this));
-}
-
-void TSqlQuery::AlterTableRenameTo(const TRule_alter_table_rename_to& node, TAlterTableParameters& params) {
- params.RenameTo = IdEx(node.GetRule_an_id_table3(), *this);
-}
-
-void TSqlQuery::AlterTableRenameIndexTo(const TRule_alter_table_rename_index_to& node, TAlterTableParameters& params) {
- auto src = IdEx(node.GetRule_an_id3(), *this);
- auto dst = IdEx(node.GetRule_an_id5(), *this);
-
- params.RenameIndexTo = std::make_pair(src, dst);
-}
-
-bool TSqlQuery::AlterTableAddChangefeed(const TRule_alter_table_add_changefeed& node, TAlterTableParameters& params) {
- TSqlExpression expr(Ctx, Mode);
- return CreateChangefeed(node.GetRule_changefeed2(), expr, params.AddChangefeeds);
-}
-
-bool TSqlQuery::AlterTableAlterChangefeed(const TRule_alter_table_alter_changefeed& node, TAlterTableParameters& params) {
- params.AlterChangefeeds.emplace_back(IdEx(node.GetRule_an_id3(), *this));
-
- const auto& alter = node.GetRule_changefeed_alter_settings4();
- switch (alter.Alt_case()) {
- case TRule_changefeed_alter_settings::kAltChangefeedAlterSettings1: {
- // DISABLE
- params.AlterChangefeeds.back().Disable = true;
- break;
- }
- case TRule_changefeed_alter_settings::kAltChangefeedAlterSettings2: {
- // SET
- const auto& rule = alter.GetAlt_changefeed_alter_settings2().GetRule_changefeed_settings3();
- TSqlExpression expr(Ctx, Mode);
- if (!ChangefeedSettings(rule, expr, params.AlterChangefeeds.back().Settings, true)) {
- return false;
- }
- break;
- }
-
- default:
- AltNotImplemented("changefeed_alter_settings", alter);
- return false;
- }
-
- return true;
-}
-
-void TSqlQuery::AlterTableDropChangefeed(const TRule_alter_table_drop_changefeed& node, TAlterTableParameters& params) {
- params.DropChangefeeds.emplace_back(IdEx(node.GetRule_an_id3(), *this));
-}
-
-TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success) {
- success = false;
- const TString& prefix = OptIdPrefixAsStr(stmt.GetRule_opt_id_prefix_or_type2(), *this);
- const TString& lowerPrefix = to_lower(prefix);
- const TString pragma(Id(stmt.GetRule_an_id3(), *this));
- TString normalizedPragma(pragma);
- TMaybe<TIssue> normalizeError = NormalizeName(Ctx.Pos(), normalizedPragma);
- if (!normalizeError.Empty()) {
- Error() << normalizeError->GetMessage();
- Ctx.IncrementMonCounter("sql_errors", "NormalizePragmaError");
- return {};
- }
-
- TVector<TDeferredAtom> values;
- TVector<const TRule_pragma_value*> pragmaValues;
- bool pragmaValueDefault = false;
- if (stmt.GetBlock4().HasAlt1()) {
- pragmaValues.push_back(&stmt.GetBlock4().GetAlt1().GetRule_pragma_value2());
- }
- else if (stmt.GetBlock4().HasAlt2()) {
- pragmaValues.push_back(&stmt.GetBlock4().GetAlt2().GetRule_pragma_value2());
- for (auto& additionalValue : stmt.GetBlock4().GetAlt2().GetBlock3()) {
- pragmaValues.push_back(&additionalValue.GetRule_pragma_value2());
- }
- }
-
- const bool withConfigure = prefix || normalizedPragma == "file" || normalizedPragma == "folder" || normalizedPragma == "udf";
- static const THashSet<TStringBuf> lexicalScopePragmas = {"classicdivision", "strictjoinkeytypes", "disablestrictjoinkeytypes", "checkedops"};
- const bool hasLexicalScope = withConfigure || lexicalScopePragmas.contains(normalizedPragma);
- const bool withFileAlias = normalizedPragma == "file" || normalizedPragma == "folder" || normalizedPragma == "library" || normalizedPragma == "udf";
- for (auto pragmaValue : pragmaValues) {
- if (pragmaValue->HasAlt_pragma_value3()) {
- auto value = Token(pragmaValue->GetAlt_pragma_value3().GetToken1());
- auto parsed = StringContentOrIdContent(Ctx, Ctx.Pos(), value);
- if (!parsed) {
- return {};
- }
-
- TString prefix;
- if (withFileAlias && (values.size() == 0)) {
- prefix = Ctx.Settings.FileAliasPrefix;
- }
-
- values.push_back(TDeferredAtom(Ctx.Pos(), prefix + parsed->Content));
- }
- else if (pragmaValue->HasAlt_pragma_value2()
- && pragmaValue->GetAlt_pragma_value2().GetRule_id1().HasAlt_id2()
- && "default" == to_lower(Id(pragmaValue->GetAlt_pragma_value2().GetRule_id1(), *this)))
- {
- pragmaValueDefault = true;
- }
- else if (withConfigure && pragmaValue->HasAlt_pragma_value5()) {
- TString bindName;
- if (!NamedNodeImpl(pragmaValue->GetAlt_pragma_value5().GetRule_bind_parameter1(), bindName, *this)) {
- return {};
- }
- auto namedNode = GetNamedNode(bindName);
- if (!namedNode) {
- return {};
- }
-
- TString prefix;
- if (withFileAlias && (values.size() == 0)) {
- prefix = Ctx.Settings.FileAliasPrefix;
- }
-
- TDeferredAtom atom;
- MakeTableFromExpression(Ctx, namedNode, atom, prefix);
- values.push_back(atom);
- } else {
- Error() << "Expected string" << (withConfigure ? ", named parameter" : "") << " or 'default' keyword as pragma value for pragma: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- }
-
- if (prefix.empty()) {
- if (!TopLevel && !hasLexicalScope) {
- Error() << "This pragma '" << pragma << "' is not allowed to be used in actions or subqueries";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return{};
- }
-
- if (normalizedPragma == "refselect") {
- Ctx.PragmaRefSelect = true;
- Ctx.IncrementMonCounter("sql_pragma", "RefSelect");
- } else if (normalizedPragma == "sampleselect") {
- Ctx.PragmaSampleSelect = true;
- Ctx.IncrementMonCounter("sql_pragma", "SampleSelect");
- } else if (normalizedPragma == "allowdotinalias") {
- Ctx.PragmaAllowDotInAlias = true;
- Ctx.IncrementMonCounter("sql_pragma", "AllowDotInAlias");
- } else if (normalizedPragma == "udf") {
- if ((values.size() != 1 && values.size() != 2) || pragmaValueDefault) {
- Error() << "Expected file alias as pragma value";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- Ctx.IncrementMonCounter("sql_pragma", "udf");
- success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "ImportUdfs", values, false);
- } else if (normalizedPragma == "packageversion") {
- if (values.size() != 2 || pragmaValueDefault) {
- Error() << "Expected package name and version";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- ui32 version = 0;
- TString versionString;
- TString packageName;
- if (!values[0].GetLiteral(packageName, Ctx) || !values[1].GetLiteral(versionString, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- if (!PackageVersionFromString(versionString, version)) {
- Error() << "Unable to parse package version, possible values 0, 1, draft, release";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- Ctx.SetPackageVersion(packageName, version);
- Ctx.IncrementMonCounter("sql_pragma", "PackageVersion");
- success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "SetPackageVersion", TVector<TDeferredAtom>{ values[0], TDeferredAtom(values[1].Build()->GetPos(), ToString(version)) }, false);
- } else if (normalizedPragma == "file") {
- if (values.size() < 2U || values.size() > 3U || pragmaValueDefault) {
- Error() << "Expected file alias, url and optional token name as pragma values";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- Ctx.IncrementMonCounter("sql_pragma", "file");
- success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "AddFileByUrl", values, false);
- } else if (normalizedPragma == "folder") {
- if (values.size() < 2U || values.size() > 3U || pragmaValueDefault) {
- Error() << "Expected folder alias, url and optional token name as pragma values";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.IncrementMonCounter("sql_pragma", "folder");
- success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "AddFolderByUrl", values, false);
- } else if (normalizedPragma == "library") {
- if (values.size() < 1) {
- Error() << "Expected non-empty file alias";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return{};
- }
- if (values.size() > 3) {
- Error() << "Expected file alias and optional url and token name as pragma values";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return{};
- }
-
- TString alias;
- if (!values.front().GetLiteral(alias, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return{};
- }
-
- TContext::TLibraryStuff library;
- std::get<TPosition>(library) = values.front().Build()->GetPos();
- if (values.size() > 1) {
- auto& first = std::get<1U>(library);
- first.emplace();
- first->second = values[1].Build()->GetPos();
- if (!values[1].GetLiteral(first->first, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return{};
- }
-
- TSet<TString> names;
- SubstParameters(first->first, Nothing(), &names);
- for (const auto& name : names) {
- auto namedNode = GetNamedNode(name);
- if (!namedNode) {
- return{};
- }
- }
- if (values.size() > 2) {
- auto& second = std::get<2U>(library);
- second.emplace();
- second->second = values[2].Build()->GetPos();
- if (!values[2].GetLiteral(second->first, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return{};
- }
- }
- }
-
- Ctx.Libraries[alias] = std::move(library);
- Ctx.IncrementMonCounter("sql_pragma", "library");
- } else if (normalizedPragma == "directread") {
- Ctx.PragmaDirectRead = true;
- Ctx.IncrementMonCounter("sql_pragma", "DirectRead");
- } else if (normalizedPragma == "equijoin") {
- Ctx.IncrementMonCounter("sql_pragma", "EquiJoin");
- } else if (normalizedPragma == "autocommit") {
- Ctx.PragmaAutoCommit = true;
- Ctx.IncrementMonCounter("sql_pragma", "AutoCommit");
- } else if (normalizedPragma == "usetableprefixforeach") {
- Ctx.PragmaUseTablePrefixForEach = true;
- Ctx.IncrementMonCounter("sql_pragma", "UseTablePrefixForEach");
- } else if (normalizedPragma == "tablepathprefix") {
- TString value;
- TMaybe<TString> arg;
-
- if (values.size() == 1 || values.size() == 2) {
- if (!values.front().GetLiteral(value, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- if (values.size() == 2) {
- arg = value;
- if (!values.back().GetLiteral(value, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- }
-
- if (!Ctx.SetPathPrefix(value, arg)) {
- return {};
- }
- } else {
- Error() << "Expected path prefix or tuple of (Provider, PathPrefix) or"
- << " (Cluster, PathPrefix) as pragma value";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- Ctx.IncrementMonCounter("sql_pragma", "PathPrefix");
- } else if (normalizedPragma == "groupbylimit") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.PragmaGroupByLimit)) {
- Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.IncrementMonCounter("sql_pragma", "GroupByLimit");
- } else if (normalizedPragma == "groupbycubelimit") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.PragmaGroupByCubeLimit)) {
- Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.IncrementMonCounter("sql_pragma", "GroupByCubeLimit");
- } else if (normalizedPragma == "simplecolumns") {
- Ctx.SimpleColumns = true;
- Ctx.IncrementMonCounter("sql_pragma", "SimpleColumns");
- } else if (normalizedPragma == "disablesimplecolumns") {
- Ctx.SimpleColumns = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableSimpleColumns");
- } else if (normalizedPragma == "coalescejoinkeysonqualifiedall") {
- Ctx.CoalesceJoinKeysOnQualifiedAll = true;
- Ctx.IncrementMonCounter("sql_pragma", "CoalesceJoinKeysOnQualifiedAll");
- } else if (normalizedPragma == "disablecoalescejoinkeysonqualifiedall") {
- Ctx.CoalesceJoinKeysOnQualifiedAll = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableCoalesceJoinKeysOnQualifiedAll");
- } else if (normalizedPragma == "resultrowslimit") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.ResultRowsLimit)) {
- Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- Ctx.IncrementMonCounter("sql_pragma", "ResultRowsLimit");
- } else if (normalizedPragma == "resultsizelimit") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.ResultSizeLimit)) {
- Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- Ctx.IncrementMonCounter("sql_pragma", "ResultSizeLimit");
- } else if (normalizedPragma == "warning") {
- if (values.size() != 2U || values.front().Empty() || values.back().Empty()) {
- Error() << "Expected arguments <action>, <issueId> for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- TString action;
- TString codePattern;
- if (!values[0].GetLiteral(action, Ctx) || !values[1].GetLiteral(codePattern, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- TWarningRule rule;
- TString parseError;
- auto parseResult = TWarningRule::ParseFrom(codePattern, action, rule, parseError);
- switch (parseResult) {
- case TWarningRule::EParseResult::PARSE_OK:
- break;
- case TWarningRule::EParseResult::PARSE_PATTERN_FAIL:
- case TWarningRule::EParseResult::PARSE_ACTION_FAIL:
- Ctx.Error() << parseError;
- return {};
- default:
- Y_ENSURE(false, "Unknown parse result");
- }
-
- Ctx.WarningPolicy.AddRule(rule);
- if (rule.GetPattern() == "*" && rule.GetAction() == EWarningAction::ERROR) {
- // Keep 'unused symbol' warning as warning unless explicitly set to error
- Ctx.SetWarningPolicyFor(TIssuesIds::YQL_UNUSED_SYMBOL, EWarningAction::DEFAULT);
- }
-
- Ctx.IncrementMonCounter("sql_pragma", "warning");
- } else if (normalizedPragma == "greetings") {
- if (values.size() > 1) {
- Error() << "Multiple arguments are not expected for " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- if (values.empty()) {
- values.emplace_back(TDeferredAtom(Ctx.Pos(), "Hello, world! And best wishes from the YQL Team!"));
- }
-
- TString arg;
- if (!values.front().GetLiteral(arg, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.Info(Ctx.Pos()) << arg;
- } else if (normalizedPragma == "warningmsg") {
- if (values.size() != 1 || !values[0].GetLiteral()) {
- Error() << "Expected string literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_PRAGMA_WARNING_MSG) << *values[0].GetLiteral();
- } else if (normalizedPragma == "errormsg") {
- if (values.size() != 1 || !values[0].GetLiteral()) {
- Error() << "Expected string literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.Error(Ctx.Pos()) << *values[0].GetLiteral();
- } else if (normalizedPragma == "classicdivision") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.Scoped->PragmaClassicDivision)) {
- Error() << "Expected boolean literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.IncrementMonCounter("sql_pragma", "ClassicDivision");
- } else if (normalizedPragma == "checkedops") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.Scoped->PragmaCheckedOps)) {
- Error() << "Expected boolean literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.IncrementMonCounter("sql_pragma", "CheckedOps");
- } else if (normalizedPragma == "disableunordered") {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
- << "Use of deprecated DisableUnordered pragma. It will be dropped soon";
- } else if (normalizedPragma == "pullupflatmapoverjoin") {
- Ctx.PragmaPullUpFlatMapOverJoin = true;
- Ctx.IncrementMonCounter("sql_pragma", "PullUpFlatMapOverJoin");
- } else if (normalizedPragma == "disablepullupflatmapoverjoin") {
- Ctx.PragmaPullUpFlatMapOverJoin = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisablePullUpFlatMapOverJoin");
- } else if (normalizedPragma == "allowunnamedcolumns") {
- Ctx.WarnUnnamedColumns = false;
- Ctx.IncrementMonCounter("sql_pragma", "AllowUnnamedColumns");
- } else if (normalizedPragma == "warnunnamedcolumns") {
- Ctx.WarnUnnamedColumns = true;
- Ctx.IncrementMonCounter("sql_pragma", "WarnUnnamedColumns");
- } else if (normalizedPragma == "discoverymode") {
- Ctx.DiscoveryMode = true;
- Ctx.IncrementMonCounter("sql_pragma", "DiscoveryMode");
- } else if (normalizedPragma == "enablesystemcolumns") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.EnableSystemColumns)) {
- Error() << "Expected boolean literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.IncrementMonCounter("sql_pragma", "EnableSystemColumns");
- } else if (normalizedPragma == "ansiinforemptyornullableitemscollections") {
- Ctx.AnsiInForEmptyOrNullableItemsCollections = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiInForEmptyOrNullableItemsCollections");
- } else if (normalizedPragma == "disableansiinforemptyornullableitemscollections") {
- Ctx.AnsiInForEmptyOrNullableItemsCollections = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiInForEmptyOrNullableItemsCollections");
- } else if (normalizedPragma == "dqengine") {
- Ctx.IncrementMonCounter("sql_pragma", "DqEngine");
- if (values.size() != 1 || !values[0].GetLiteral()
- || ! (*values[0].GetLiteral() == "disable" || *values[0].GetLiteral() == "auto" || *values[0].GetLiteral() == "force"))
- {
- Error() << "Expected `disable|auto|force' argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- if (*values[0].GetLiteral() == "disable") {
- Ctx.DqEngineEnable = false;
- Ctx.DqEngineForce = false;
- } else if (*values[0].GetLiteral() == "force") {
- Ctx.DqEngineEnable = true;
- Ctx.DqEngineForce = true;
- } else if (*values[0].GetLiteral() == "auto") {
- Ctx.DqEngineEnable = true;
- Ctx.DqEngineForce = false;
- }
- } else if (normalizedPragma == "ansirankfornullablekeys") {
- Ctx.AnsiRankForNullableKeys = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiRankForNullableKeys");
- } else if (normalizedPragma == "disableansirankfornullablekeys") {
- Ctx.AnsiRankForNullableKeys = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiRankForNullableKeys");
- } else if (normalizedPragma == "ansiorderbylimitinunionall") {
- Ctx.AnsiOrderByLimitInUnionAll = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiOrderByLimitInUnionAll");
- } else if (!Ctx.EnforceAnsiOrderByLimitInUnionAll && normalizedPragma == "disableansiorderbylimitinunionall") {
- Ctx.AnsiOrderByLimitInUnionAll = false;
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
- << "Use of deprecated DisableAnsiOrderByLimitInUnionAll pragma. It will be dropped soon";
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiOrderByLimitInUnionAll");
- } else if (normalizedPragma == "ansioptionalas") {
- Ctx.AnsiOptionalAs = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiOptionalAs");
- } else if (normalizedPragma == "disableansioptionalas") {
- Ctx.AnsiOptionalAs = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiOptionalAs");
- } else if (normalizedPragma == "warnonansialiasshadowing") {
- Ctx.WarnOnAnsiAliasShadowing = true;
- Ctx.IncrementMonCounter("sql_pragma", "WarnOnAnsiAliasShadowing");
- } else if (normalizedPragma == "disablewarnonansialiasshadowing") {
- Ctx.WarnOnAnsiAliasShadowing = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableWarnOnAnsiAliasShadowing");
- } else if (normalizedPragma == "regexusere2") {
- if (values.size() != 1U || !values.front().GetLiteral() || !TryFromString(*values.front().GetLiteral(), Ctx.PragmaRegexUseRe2)) {
- Error() << "Expected 'true' or 'false' for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- Ctx.IncrementMonCounter("sql_pragma", "RegexUseRe2");
- } else if (normalizedPragma == "jsonqueryreturnsjsondocument") {
- Ctx.JsonQueryReturnsJsonDocument = true;
- Ctx.IncrementMonCounter("sql_pragma", "JsonQueryReturnsJsonDocument");
- } else if (normalizedPragma == "disablejsonqueryreturnsjsondocument") {
- Ctx.JsonQueryReturnsJsonDocument = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableJsonQueryReturnsJsonDocument");
- } else if (normalizedPragma == "orderedcolumns") {
- Ctx.OrderedColumns = true;
- Ctx.IncrementMonCounter("sql_pragma", "OrderedColumns");
- } else if (normalizedPragma == "disableorderedcolumns") {
- Ctx.OrderedColumns = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableOrderedColumns");
- } else if (normalizedPragma == "positionalunionall") {
- Ctx.PositionalUnionAll = true;
- // PositionalUnionAll implies OrderedColumns
- Ctx.OrderedColumns = true;
- Ctx.IncrementMonCounter("sql_pragma", "PositionalUnionAll");
- } else if (normalizedPragma == "pqreadby") {
- if (values.size() != 1 || !values[0].GetLiteral()) {
- Error() << "Expected string literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- // special guard to raise error on situation:
- // use cluster1;
- // pragma PqReadPqBy="cluster2";
- const TString* currentClusterLiteral = Ctx.Scoped->CurrCluster.GetLiteral();
- if (currentClusterLiteral && *values[0].GetLiteral() != "dq" && *currentClusterLiteral != *values[0].GetLiteral()) {
- Error() << "Cluster in PqReadPqBy pragma differs from cluster specified in USE statement: " << *values[0].GetLiteral() << " != " << *currentClusterLiteral;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- Ctx.PqReadByRtmrCluster = *values[0].GetLiteral();
- Ctx.IncrementMonCounter("sql_pragma", "PqReadBy");
- } else if (normalizedPragma == "bogousstaringroupbyoverjoin") {
- Ctx.BogousStarInGroupByOverJoin = true;
- Ctx.IncrementMonCounter("sql_pragma", "BogousStarInGroupByOverJoin");
- } else if (normalizedPragma == "strictjoinkeytypes") {
- Ctx.Scoped->StrictJoinKeyTypes = true;
- Ctx.IncrementMonCounter("sql_pragma", "StrictJoinKeyTypes");
- } else if (normalizedPragma == "disablestrictjoinkeytypes") {
- Ctx.Scoped->StrictJoinKeyTypes = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableStrictJoinKeyTypes");
- } else if (normalizedPragma == "unorderedsubqueries") {
- Ctx.UnorderedSubqueries = true;
- Ctx.IncrementMonCounter("sql_pragma", "UnorderedSubqueries");
- } else if (normalizedPragma == "disableunorderedsubqueries") {
- Ctx.UnorderedSubqueries = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableUnorderedSubqueries");
- } else if (normalizedPragma == "datawatermarks") {
- if (values.size() != 1 || !values[0].GetLiteral()
- || ! (*values[0].GetLiteral() == "enable" || *values[0].GetLiteral() == "disable"))
- {
- Error() << "Expected `enable|disable' argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- if (*values[0].GetLiteral() == "enable") {
- Ctx.PragmaDataWatermarks = true;
- } else if (*values[0].GetLiteral() == "disable") {
- Ctx.PragmaDataWatermarks = false;
- }
-
- Ctx.IncrementMonCounter("sql_pragma", "DataWatermarks");
- } else if (normalizedPragma == "flexibletypes") {
- Ctx.FlexibleTypes = true;
- Ctx.IncrementMonCounter("sql_pragma", "FlexibleTypes");
- } else if (normalizedPragma == "disableflexibletypes") {
- Ctx.FlexibleTypes = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableFlexibleTypes");
- } else if (normalizedPragma == "ansicurrentrow") {
- Ctx.AnsiCurrentRow = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiCurrentRow");
- } else if (normalizedPragma == "disableansicurrentrow") {
- Ctx.AnsiCurrentRow = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiCurrentRow");
- } else if (normalizedPragma == "emitaggapply") {
- Ctx.EmitAggApply = true;
- Ctx.IncrementMonCounter("sql_pragma", "EmitAggApply");
- } else if (normalizedPragma == "disableemitaggapply") {
- Ctx.EmitAggApply = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableEmitAggApply");
- } else if (normalizedPragma == "useblocks") {
- Ctx.UseBlocks = true;
- Ctx.IncrementMonCounter("sql_pragma", "UseBlocks");
- } else if (normalizedPragma == "disableuseblocks") {
- Ctx.UseBlocks = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableUseBlocks");
- } else if (normalizedPragma == "ansilike") {
- Ctx.AnsiLike = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiLike");
- } else if (normalizedPragma == "disableansilike") {
- Ctx.AnsiLike = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiLike");
- } else {
- Error() << "Unknown pragma: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "UnknownPragma");
- return {};
- }
- } else {
- if (lowerPrefix == "yson") {
- if (!TopLevel) {
- Error() << "This pragma '" << pragma << "' is not allowed to be used in actions";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- if (normalizedPragma == "fast") {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
- << "Use of deprecated yson.Fast pragma. It will be dropped soon";
- success = true;
- return {};
- } else if (normalizedPragma == "autoconvert") {
- Ctx.PragmaYsonAutoConvert = true;
- success = true;
- return {};
- } else if (normalizedPragma == "strict") {
- if (values.size() == 0U) {
- Ctx.PragmaYsonStrict = true;
- success = true;
- } else if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), Ctx.PragmaYsonStrict)) {
- success = true;
- } else {
- Error() << "Expected 'true', 'false' or no parameter for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- }
- return {};
- } else if (normalizedPragma == "disablestrict") {
- if (values.size() == 0U) {
- Ctx.PragmaYsonStrict = false;
- success = true;
- return {};
- }
- bool pragmaYsonDisableStrict;
- if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), pragmaYsonDisableStrict)) {
- Ctx.PragmaYsonStrict = !pragmaYsonDisableStrict;
- success = true;
- } else {
- Error() << "Expected 'true', 'false' or no parameter for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- }
- return {};
- } else if (normalizedPragma == "casttostring" || normalizedPragma == "disablecasttostring") {
- const bool allow = normalizedPragma == "casttostring";
- if (values.size() == 0U) {
- Ctx.YsonCastToString = allow;
- success = true;
- return {};
- }
- bool pragmaYsonCastToString;
- if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), pragmaYsonCastToString)) {
- Ctx.PragmaYsonStrict = allow ? pragmaYsonCastToString : !pragmaYsonCastToString;
- success = true;
- } else {
- Error() << "Expected 'true', 'false' or no parameter for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- }
- return {};
- } else {
- Error() << "Unknown pragma: '" << pragma << "'";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
-
- } else if (std::find(Providers.cbegin(), Providers.cend(), lowerPrefix) == Providers.cend()) {
- if (!Ctx.HasCluster(prefix)) {
- Error() << "Unknown pragma prefix: " << prefix << ", please use cluster name or one of provider " <<
- JoinRange(", ", Providers.cbegin(), Providers.cend());
- Ctx.IncrementMonCounter("sql_errors", "UnknownPragma");
- return {};
- }
- }
-
- if (normalizedPragma != "flags" && normalizedPragma != "packageversion") {
- if (values.size() > 1) {
- Error() << "Expected at most one value in the pragma";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- } else {
- if (pragmaValueDefault || values.size() < 1) {
- Error() << "Expected at least one value in the pragma";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
- return {};
- }
- }
-
- success = true;
- Ctx.IncrementMonCounter("sql_pragma", pragma);
- return BuildPragma(Ctx.Pos(), lowerPrefix, normalizedPragma, values, pragmaValueDefault);
- }
- success = true;
- return {};
-}
-
-TNodePtr TSqlQuery::Build(const TRule_delete_stmt& stmt) {
- TTableRef table;
- if (!SimpleTableRefImpl(stmt.GetRule_simple_table_ref3(), table)) {
- return nullptr;
- }
-
- const bool isKikimr = table.Service == KikimrProviderName;
- if (!isKikimr) {
- Ctx.Error(GetPos(stmt.GetToken1())) << "DELETE is unsupported for " << table.Service;
- return nullptr;
- }
-
- TSourcePtr source = BuildTableSource(Ctx.Pos(), table);
-
- if (stmt.HasBlock4()) {
- switch (stmt.GetBlock4().Alt_case()) {
- case TRule_delete_stmt_TBlock4::kAlt1: {
- const auto& alt = stmt.GetBlock4().GetAlt1();
-
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression sqlExpr(Ctx, Mode);
- auto whereExpr = sqlExpr.Build(alt.GetRule_expr2());
- if (!whereExpr) {
- return nullptr;
- }
- source->AddFilter(Ctx, whereExpr);
- break;
- }
-
- case TRule_delete_stmt_TBlock4::kAlt2: {
- const auto& alt = stmt.GetBlock4().GetAlt2();
-
- auto values = TSqlIntoValues(Ctx, Mode).Build(alt.GetRule_into_values_source2(), "DELETE ON");
- if (!values) {
- return nullptr;
- }
-
- return BuildWriteColumns(Ctx.Pos(), Ctx.Scoped, table, EWriteColumnMode::DeleteOn, std::move(values));
- }
-
- default:
- return nullptr;
- }
- }
-
- return BuildDelete(Ctx.Pos(), Ctx.Scoped, table, std::move(source));
-}
-
-TNodePtr TSqlQuery::Build(const TRule_update_stmt& stmt) {
- TTableRef table;
- if (!SimpleTableRefImpl(stmt.GetRule_simple_table_ref2(), table)) {
- return nullptr;
- }
-
- const bool isKikimr = table.Service == KikimrProviderName;
-
- if (!isKikimr) {
- Ctx.Error(GetPos(stmt.GetToken1())) << "UPDATE is unsupported for " << table.Service;
- return nullptr;
- }
-
- switch (stmt.GetBlock3().Alt_case()) {
- case TRule_update_stmt_TBlock3::kAlt1: {
- const auto& alt = stmt.GetBlock3().GetAlt1();
- TSourcePtr values = Build(alt.GetRule_set_clause_choice2());
- auto source = BuildTableSource(Ctx.Pos(), table);
-
- if (alt.HasBlock3()) {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression sqlExpr(Ctx, Mode);
- auto whereExpr = sqlExpr.Build(alt.GetBlock3().GetRule_expr2());
- if (!whereExpr) {
- return nullptr;
- }
- source->AddFilter(Ctx, whereExpr);
- }
-
- return BuildUpdateColumns(Ctx.Pos(), Ctx.Scoped, table, std::move(values), std::move(source));
- }
-
- case TRule_update_stmt_TBlock3::kAlt2: {
- const auto& alt = stmt.GetBlock3().GetAlt2();
-
- auto values = TSqlIntoValues(Ctx, Mode).Build(alt.GetRule_into_values_source2(), "UPDATE ON");
- if (!values) {
- return nullptr;
- }
-
- return BuildWriteColumns(Ctx.Pos(), Ctx.Scoped, table, EWriteColumnMode::UpdateOn, std::move(values));
- }
-
- default:
- return nullptr;
- }
-}
-
-TSourcePtr TSqlQuery::Build(const TRule_set_clause_choice& stmt) {
- switch (stmt.Alt_case()) {
- case TRule_set_clause_choice::kAltSetClauseChoice1:
- return Build(stmt.GetAlt_set_clause_choice1().GetRule_set_clause_list1());
- case TRule_set_clause_choice::kAltSetClauseChoice2:
- return Build(stmt.GetAlt_set_clause_choice2().GetRule_multiple_column_assignment1());
- default:
- AltNotImplemented("set_clause_choice", stmt);
- return nullptr;
- }
-}
-
-bool TSqlQuery::FillSetClause(const TRule_set_clause& node, TVector<TString>& targetList, TVector<TNodePtr>& values) {
- targetList.push_back(ColumnNameAsSingleStr(*this, node.GetRule_set_target1().GetRule_column_name1()));
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression sqlExpr(Ctx, Mode);
- if (!Expr(sqlExpr, values, node.GetRule_expr3())) {
- return false;
- }
- return true;
-}
-
-TSourcePtr TSqlQuery::Build(const TRule_set_clause_list& stmt) {
- TVector<TString> targetList;
- TVector<TNodePtr> values;
- const TPosition pos(Ctx.Pos());
- if (!FillSetClause(stmt.GetRule_set_clause1(), targetList, values)) {
- return nullptr;
- }
- for (auto& block: stmt.GetBlock2()) {
- if (!FillSetClause(block.GetRule_set_clause2(), targetList, values)) {
- return nullptr;
- }
- }
- Y_VERIFY_DEBUG(targetList.size() == values.size());
- return BuildUpdateValues(pos, targetList, values);
-}
-
-TSourcePtr TSqlQuery::Build(const TRule_multiple_column_assignment& stmt) {
- TVector<TString> targetList;
- FillTargetList(*this, stmt.GetRule_set_target_list1(), targetList);
- auto simpleValuesNode = stmt.GetRule_simple_values_source4();
- const TPosition pos(Ctx.Pos());
- switch (simpleValuesNode.Alt_case()) {
- case TRule_simple_values_source::kAltSimpleValuesSource1: {
- TVector<TNodePtr> values;
- TSqlExpression sqlExpr(Ctx, Mode);
- if (!ExprList(sqlExpr, values, simpleValuesNode.GetAlt_simple_values_source1().GetRule_expr_list1())) {
- return nullptr;
- }
- return BuildUpdateValues(pos, targetList, values);
- }
- case TRule_simple_values_source::kAltSimpleValuesSource2: {
- TSqlSelect select(Ctx, Mode);
- TPosition selectPos;
- auto source = select.Build(simpleValuesNode.GetAlt_simple_values_source2().GetRule_select_stmt1(), selectPos);
- if (!source) {
- return nullptr;
- }
- return BuildWriteValues(pos, "UPDATE", targetList, std::move(source));
- }
- default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownSimpleValuesSourceAlt");
- AltNotImplemented("simple_values_source", simpleValuesNode);
- return nullptr;
- }
-}
-
-TNodePtr TSqlQuery::Build(const TSQLv1ParserAST& ast) {
- if (Mode == NSQLTranslation::ESqlMode::QUERY) {
- // inject externally declared named expressions
- for (auto [name, type] : Ctx.Settings.DeclaredNamedExprs) {
- if (name.empty()) {
- Error() << "Empty names for externally declared expressions are not allowed";
- return nullptr;
- }
- TString varName = "$" + name;
- if (IsAnonymousName(varName)) {
- Error() << "Externally declared name '" << name << "' is anonymous";
- return nullptr;
- }
-
- auto parsed = ParseType(type, *Ctx.Pool, Ctx.Issues, Ctx.Pos());
- if (!parsed) {
- Error() << "Failed to parse type for externally declared name '" << name << "'";
- return nullptr;
- }
-
- TNodePtr typeNode = BuildBuiltinFunc(Ctx, Ctx.Pos(), "ParseType", { BuildLiteralRawString(Ctx.Pos(), type) });
- PushNamedAtom(Ctx.Pos(), varName);
- // no duplicates are possible at this stage
- bool isWeak = true;
- Ctx.DeclareVariable(varName, typeNode, isWeak);
- // avoid 'Symbol is not used' warning for externally declared expression
- YQL_ENSURE(GetNamedNode(varName));
- }
- }
-
- const auto& query = ast.GetRule_sql_query();
- TVector<TNodePtr> blocks;
- Ctx.PushCurrentBlocks(&blocks);
- Y_DEFER {
- Ctx.PopCurrentBlocks();
- };
- if (query.Alt_case() == TRule_sql_query::kAltSqlQuery1) {
- const auto& statements = query.GetAlt_sql_query1().GetRule_sql_stmt_list1();
- if (!Statement(blocks, statements.GetRule_sql_stmt2().GetRule_sql_stmt_core2())) {
- return nullptr;
- }
- for (auto block: statements.GetBlock3()) {
- if (!Statement(blocks, block.GetRule_sql_stmt2().GetRule_sql_stmt_core2())) {
- return nullptr;
- }
- }
- }
-
- ui32 topLevelSelects = 0;
- for (auto& block : blocks) {
- if (block->IsSelect()) {
- ++topLevelSelects;
- }
- }
-
- if ((Mode == NSQLTranslation::ESqlMode::SUBQUERY || Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) && topLevelSelects != 1) {
- Error() << "Strictly one select/process/reduce statement must be used in the "
- << (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW ? "view" : "subquery");
- return nullptr;
- }
-
- if (!Ctx.PragmaAutoCommit && Ctx.Settings.EndOfQueryCommit && IsQueryMode(Mode)) {
- AddStatementToBlocks(blocks, BuildCommitClusters(Ctx.Pos()));
- }
-
- auto result = BuildQuery(Ctx.Pos(), blocks, true, Ctx.Scoped);
- WarnUnusedNodes();
- return result;
-}
-
-bool TSqlTranslation::DefineActionOrSubqueryBody(TSqlQuery& query, TBlocks& blocks, const TRule_define_action_or_subquery_body& body) {
- if (body.HasBlock2()) {
- Ctx.PushCurrentBlocks(&blocks);
- Y_DEFER {
- Ctx.PopCurrentBlocks();
- };
- if (!query.Statement(blocks, body.GetBlock2().GetRule_sql_stmt_core1())) {
- return false;
- }
-
- for (const auto& nestedStmtItem : body.GetBlock2().GetBlock2()) {
- const auto& nestedStmt = nestedStmtItem.GetRule_sql_stmt_core2();
- if (!query.Statement(blocks, nestedStmt)) {
- return false;
- }
- }
- }
-
- return true;
-}
-
-bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_or_subquery_stmt& stmt) {
- auto kind = Ctx.Token(stmt.GetToken2());
- const bool isSubquery = to_lower(kind) == "subquery";
- if (!isSubquery && Mode == NSQLTranslation::ESqlMode::SUBQUERY) {
- Error() << "Definition of actions is not allowed in the subquery";
- return false;
- }
-
- TString actionName;
- if (!NamedNodeImpl(stmt.GetRule_bind_parameter3(), actionName, *this)) {
- return false;
- }
- if (IsAnonymousName(actionName)) {
- Error() << "Can not use anonymous name '" << actionName << "' as " << to_upper(kind) << " name";
- return false;
- }
- TPosition actionNamePos = Ctx.Pos();
-
- TVector<TSymbolNameWithPos> argNames;
- ui32 optionalArgumentsCount = 0;
- if (stmt.HasBlock5() && !ActionOrSubqueryArgs(stmt.GetBlock5().GetRule_action_or_subquery_args1(), argNames, optionalArgumentsCount)) {
- return false;
- }
-
- auto saveScoped = Ctx.Scoped;
- Ctx.Scoped = MakeIntrusive<TScopedState>();
- Ctx.AllScopes.push_back(Ctx.Scoped);
- *Ctx.Scoped = *saveScoped;
- Ctx.Scoped->Local = TScopedState::TLocal{};
- Ctx.ScopeLevel++;
-
- for (auto& arg : argNames) {
- arg.Name = PushNamedAtom(arg.Pos, arg.Name);
- }
-
- auto saveMode = Ctx.Settings.Mode;
- if (isSubquery) {
- Ctx.Settings.Mode = NSQLTranslation::ESqlMode::SUBQUERY;
- }
-
- TSqlQuery query(Ctx, Ctx.Settings.Mode, false);
- TBlocks innerBlocks;
- const bool hasValidBody = DefineActionOrSubqueryBody(query, innerBlocks, stmt.GetRule_define_action_or_subquery_body8());
-
- ui32 topLevelSelects = 0;
- for (auto& block : innerBlocks) {
- if (block->IsSelect()) {
- ++topLevelSelects;
- }
- }
-
- if (isSubquery && topLevelSelects != 1) {
- Error() << "Strictly one select/process/reduce statement must be used in the subquery, got: " << topLevelSelects;
- return false;
- }
-
- auto ret = hasValidBody ? BuildQuery(Ctx.Pos(), innerBlocks, false, Ctx.Scoped) : nullptr;
- WarnUnusedNodes();
- Ctx.Scoped = saveScoped;
- Ctx.ScopeLevel--;
- Ctx.Settings.Mode = saveMode;
-
- if (!ret) {
- return false;
- }
-
- TNodePtr blockNode = new TAstListNodeImpl(Ctx.Pos());
- blockNode->Add("block");
- blockNode->Add(blockNode->Q(ret));
-
- TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
- params->Add("world");
- for (const auto& arg : argNames) {
- params->Add(BuildAtom(arg.Pos, arg.Name));
- }
-
- auto lambda = BuildLambda(Ctx.Pos(), params, blockNode);
- if (optionalArgumentsCount > 0) {
- lambda = new TCallNodeImpl(Ctx.Pos(), "WithOptionalArgs", {
- lambda,
- BuildQuotedAtom(Ctx.Pos(), ToString(optionalArgumentsCount), TNodeFlags::Default)
- });
- }
-
- PushNamedNode(actionNamePos, actionName, lambda);
- return true;
-}
-
-TNodePtr TSqlTranslation::IfStatement(const TRule_if_stmt& stmt) {
- bool isEvaluate = stmt.HasBlock1();
- TSqlExpression expr(Ctx, Mode);
- auto exprNode = expr.Build(stmt.GetRule_expr3());
- if (!exprNode) {
- return {};
- }
-
- auto thenNode = DoStatement(stmt.GetRule_do_stmt4(), isEvaluate);
- if (!thenNode) {
- return {};
- }
-
- TNodePtr elseNode;
- if (stmt.HasBlock5()) {
- elseNode = DoStatement(stmt.GetBlock5().GetRule_do_stmt2(), isEvaluate);
- if (!elseNode) {
- return {};
- }
- }
-
- return BuildWorldIfNode(Ctx.Pos(), exprNode, thenNode, elseNode, isEvaluate);
-}
-
-TNodePtr TSqlTranslation::ForStatement(const TRule_for_stmt& stmt) {
- bool isEvaluate = stmt.HasBlock1();
- TSqlExpression expr(Ctx, Mode);
- TString itemArgName;
- if (!NamedNodeImpl(stmt.GetRule_bind_parameter3(), itemArgName, *this)) {
- return {};
- }
- TPosition itemArgNamePos = Ctx.Pos();
-
- auto exprNode = expr.Build(stmt.GetRule_expr5());
- if (!exprNode) {
- return{};
- }
-
- itemArgName = PushNamedAtom(itemArgNamePos, itemArgName);
- auto bodyNode = DoStatement(stmt.GetRule_do_stmt6(), true, { itemArgName });
- PopNamedNode(itemArgName);
- if (!bodyNode) {
- return{};
- }
-
- TNodePtr elseNode;
- if (stmt.HasBlock7()) {
- elseNode = DoStatement(stmt.GetBlock7().GetRule_do_stmt2(), true);
- if (!elseNode) {
- return{};
- }
- }
-
- return BuildWorldForNode(Ctx.Pos(), exprNode, bodyNode, elseNode, isEvaluate);
-}
-
TAstNode* SqlASTToYql(const google::protobuf::Message& protoAst, TContext& ctx) {
const google::protobuf::Descriptor* d = protoAst.GetDescriptor();
if (d && d->name() != "TSQLv1ParserAST") {
@@ -11753,215 +84,4 @@ NYql::TAstParseResult SqlToYql(const TString& query, const NSQLTranslation::TTra
return res;
}
-bool TSqlTranslation::BindParameterClause(const TRule_bind_parameter& node, TDeferredAtom& result) {
- TString paramName;
- if (!NamedNodeImpl(node, paramName, *this)) {
- return false;
- }
- auto named = GetNamedNode(paramName);
- if (!named) {
- return false;
- }
-
- result = MakeAtomFromExpression(Ctx, named);
- return true;
-}
-
-bool TSqlTranslation::ObjectFeatureValueClause(const TRule_object_feature_value& node, TDeferredAtom& result) {
- // object_feature_value: an_id_or_type | bind_parameter;
- switch (node.Alt_case()) {
- case TRule_object_feature_value::kAltObjectFeatureValue1:
- {
- TString name = Id(node.GetAlt_object_feature_value1().GetRule_an_id_or_type1(), *this);
- result = TDeferredAtom(Ctx.Pos(), name);
- break;
- }
- case TRule_object_feature_value::kAltObjectFeatureValue2:
- {
- if (!BindParameterClause(node.GetAlt_object_feature_value2().GetRule_bind_parameter1(), result)) {
- return false;
- }
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- return true;
-}
-
-bool TSqlTranslation::AddObjectFeature(std::map<TString, TDeferredAtom>& result, const TRule_object_feature& feature) {
- if (feature.has_alt_object_feature1()) {
- auto& kv = feature.GetAlt_object_feature1().GetRule_object_feature_kv1();
- const TString& key = Id(kv.GetRule_an_id_or_type1(), *this);
- auto& ruleValue = kv.GetRule_object_feature_value3();
- TDeferredAtom value;
- if (!ObjectFeatureValueClause(ruleValue, value)) {
- return false;
- }
- result[key] = value;
- } else if (feature.has_alt_object_feature2()) {
- result[Id(feature.GetAlt_object_feature2().GetRule_object_feature_flag1().GetRule_an_id_or_type1(), *this)] = TDeferredAtom();
- }
- return true;
-}
-
-bool TSqlTranslation::ParseObjectFeatures(std::map<TString, TDeferredAtom>& result, const TRule_object_features& features) {
- if (features.has_alt_object_features1()) {
- if (!AddObjectFeature(result, features.alt_object_features1().GetRule_object_feature1())) {
- return false;
- }
-
- } else if (features.has_alt_object_features2()) {
- if (!AddObjectFeature(result, features.alt_object_features2().GetRule_object_feature2())) {
- return false;
- }
- for (auto&& i : features.alt_object_features2().GetBlock3()) {
- if (!AddObjectFeature(result, i.GetRule_object_feature2())) {
- return false;
- }
- }
- } else {
- return false;
- }
- return true;
-}
-namespace {
-
- static bool BuildColumnFeatures(std::map<TString, TDeferredAtom>& result, const TRule_column_schema& columnSchema, const NYql::TPosition& pos, TSqlTranslation& transaction) {
- const bool nullable = !columnSchema.HasBlock4() || !columnSchema.GetBlock4().HasBlock1();
- const TString columnName(Id(columnSchema.GetRule_an_id_schema1(), transaction));
- TString columnType;
-
- auto& typeBind = columnSchema.GetRule_type_name_or_bind2();
- switch (typeBind.Alt_case()) {
- case TRule_type_name_or_bind::kAltTypeNameOrBind1:
- {
- auto& typeNameOrBind = typeBind.GetAlt_type_name_or_bind1().GetRule_type_name1();
- if (typeNameOrBind.Alt_case() != TRule_type_name::kAltTypeName2) {
- return false;
- }
- auto& alt = typeNameOrBind.GetAlt_type_name2();
- auto& block = alt.GetBlock1();
- auto& simpleType = block.GetAlt2().GetRule_type_name_simple1();
- columnType = Id(simpleType.GetRule_an_id_pure1(), transaction);
- if (columnType.empty()) {
- return false;
- }
- break;
- }
- case TRule_type_name_or_bind::kAltTypeNameOrBind2:
- return false;
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
-
- result["NAME"] = TDeferredAtom(pos, columnName);
- YQL_ENSURE(columnType, "Unknown column type");
- result["TYPE"] = TDeferredAtom(pos, columnType);
- if (!nullable) {
- result["NOT_NULL"] = TDeferredAtom(pos, "true");
- }
- return true;
- }
-}
-
-bool TSqlQuery::ParseTableStoreFeatures(std::map<TString, TDeferredAtom> & result, const TRule_alter_table_store_action & actions) {
- switch (actions.Alt_case()) {
- case TRule_alter_table_store_action::kAltAlterTableStoreAction1: {
- // ADD COLUMN
- const auto& addRule = actions.GetAlt_alter_table_store_action1().GetRule_alter_table_add_column1();
- if (!BuildColumnFeatures(result, addRule.GetRule_column_schema3(), Ctx.Pos(), *this)) {
- return false;
- }
- result["ACTION"] = TDeferredAtom(Ctx.Pos(), "NEW_COLUMN");
- break;
- }
- case TRule_alter_table_store_action::kAltAlterTableStoreAction2: {
- // DROP COLUMN
- const auto& dropRule = actions.GetAlt_alter_table_store_action2().GetRule_alter_table_drop_column1();
- TString columnName = Id(dropRule.GetRule_an_id3(), *this);
- if (!columnName) {
- return false;
- }
- result["NAME"] = TDeferredAtom(Ctx.Pos(), columnName);
- result["ACTION"] = TDeferredAtom(Ctx.Pos(), "DROP_COLUMN");
- break;
- }
- default:
- Y_FAIL("You should change implementation according to grammar changes");
- }
- return true;
-}
-
-bool TSqlTranslation::StoreDataSourceSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, std::map<TString, TDeferredAtom>& result) {
- YQL_ENSURE(value);
-
- const TString key = to_lower(id.Name);
- if (result.find(key) != result.end()) {
- Ctx.Error() << to_upper(key) << " duplicate keys";
- return false;
- }
-
- if (IsIn({"source_type", "installation", "location", "auth_method"}, key)) {
- if (!StoreString(*value, result[key], Ctx, to_upper(key))) {
- return false;
- }
- } else {
- Ctx.Error() << "Unknown external data source setting: " << id.Name;
- return false;
- }
- return true;
-}
-
-bool TSqlTranslation::ParseExternalDataSourceSettings(std::map<TString, TDeferredAtom>& result, const TRule_with_table_settings& settingsNode) {
- const auto& firstEntry = settingsNode.GetRule_table_settings_entry3();
- if (!StoreDataSourceSettingsEntry(IdEx(firstEntry.GetRule_an_id1(), *this), &firstEntry.GetRule_table_setting_value3(),
- result)) {
- return false;
- }
- for (auto& block : settingsNode.GetBlock4()) {
- const auto& entry = block.GetRule_table_settings_entry2();
- if (!StoreDataSourceSettingsEntry(IdEx(entry.GetRule_an_id1(), *this), &entry.GetRule_table_setting_value3(), result)) {
- return false;
- }
- }
-
- if (result.find("source_type") == result.end()) {
- Ctx.Error() << "SOURCE_TYPE requires key";
- return false;
- }
- if (result.find("auth_method") == result.end()) {
- Ctx.Error() << "AUTH_METHOD requires key";
- return false;
- }
- if (result.find("installation") == result.end() && result.find("location") == result.end()) {
- Ctx.Error() << "INSTALLATION or LOCATION must be specified";
- return false;
- }
- return true;
-}
-
-bool TSqlTranslation::ValidateExternalTable(const TCreateTableParameters& params) {
- if (params.TableType != ETableType::ExternalTable) {
- return true;
- }
-
- if (!params.TableSettings.DataSourcePath) {
- Ctx.Error() << "DATA_SOURCE requires key";
- return false;
- }
-
- if (!params.TableSettings.Location) {
- Ctx.Error() << "LOCATION requires key";
- return false;
- }
-
- if (params.PkColumns) {
- Ctx.Error() << "PRIMARY KEY is not supported for external table";
- return false;
- }
-
- return true;
-}
-
} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_call_expr.cpp b/ydb/library/yql/sql/v1/sql_call_expr.cpp
new file mode 100644
index 0000000000..a89aa62dcf
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_call_expr.cpp
@@ -0,0 +1,440 @@
+#include "sql_call_expr.h"
+#include "sql_expression.h"
+
+#include <ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h>
+
+#include <ydb/library/yql/minikql/mkql_program_builder.h>
+
+namespace NSQLTranslationV1 {
+
+TNodePtr BuildSqlCall(TContext& ctx, TPosition pos, const TString& module, const TString& name, const TVector<TNodePtr>& args,
+ TNodePtr positionalArgs, TNodePtr namedArgs, TNodePtr customUserType, const TDeferredAtom& typeConfig, TNodePtr runConfig);
+
+using namespace NSQLv1Generated;
+
+static bool ValidateForCounters(const TString& input) {
+ for (auto c : input) {
+ if (!(IsAlnum(c) || c == '_')) {
+ return false;
+ }
+ }
+ return true;
+}
+
+TNodePtr TSqlCallExpr::BuildUdf(bool forReduce) {
+ auto result = Node ? Node : BuildCallable(Pos, Module, Func, Args, forReduce);
+ if (to_lower(Module) == "tensorflow" && Func == "RunBatch") {
+ if (Args.size() > 2) {
+ Args.erase(Args.begin() + 2);
+ } else {
+ Ctx.Error(Pos) << "Excepted >= 3 arguments, but got: " << Args.size();
+ return nullptr;
+ }
+ }
+ return result;
+}
+
+TNodePtr TSqlCallExpr::BuildCall() {
+ TVector<TNodePtr> args;
+ bool warnOnYqlNameSpace = true;
+
+ TUdfNode* udf_node = Node ? dynamic_cast<TUdfNode*>(Node.Get()) : nullptr;
+ if (udf_node) {
+ if (!udf_node->DoInit(Ctx, nullptr)) {
+ return nullptr;
+ }
+ TNodePtr positional_args = BuildTuple(Pos, PositionalArgs);
+ TNodePtr positional = positional_args->Y("TypeOf", positional_args);
+ TNodePtr named_args = BuildStructure(Pos, NamedArgs);
+ TNodePtr named = named_args->Y("TypeOf", named_args);
+
+ TNodePtr custom_user_type = new TCallNodeImpl(Pos, "TupleType", {positional, named, udf_node->GetExternalTypes()});
+
+ return BuildSqlCall(Ctx, Pos, udf_node->GetModule(), udf_node->GetFunction(),
+ args, positional_args, named_args, custom_user_type,
+ udf_node->GetTypeConfig(), udf_node->GetRunConfig());
+ }
+
+ if (Node && !Node->FuncName()) {
+ Module = "YQL";
+ Func = NamedArgs.empty() ? "Apply" : "NamedApply";
+ warnOnYqlNameSpace = false;
+ args.push_back(Node);
+ }
+
+ if (Node && Node->FuncName()) {
+ Module = Node->ModuleName() ? *Node->ModuleName() : "YQL";
+ Func = *Node->FuncName();
+ }
+ bool mustUseNamed = !NamedArgs.empty();
+ if (mustUseNamed) {
+ if (Node && !Node->FuncName()) {
+ mustUseNamed = false;
+ }
+ args.emplace_back(BuildTuple(Pos, PositionalArgs));
+ args.emplace_back(BuildStructure(Pos, NamedArgs));
+ } else if (IsExternalCall) {
+ Func = "SqlExternalFunction";
+ if (Args.size() < 2 || Args.size() > 3) {
+ Ctx.Error(Pos) << "EXTERNAL FUNCTION requires from 2 to 3 arguments, but got: " << Args.size();
+ return nullptr;
+ }
+
+ if (Args.size() == 3) {
+ args.insert(args.end(), Args.begin(), Args.end() - 1);
+ Args.erase(Args.begin(), Args.end() - 1);
+ } else {
+ args.insert(args.end(), Args.begin(), Args.end());
+ Args.erase(Args.begin(), Args.end());
+ }
+ auto configNode = new TExternalFunctionConfig(Pos, CallConfig);
+ auto configList = new TAstListNodeImpl(Pos, { new TAstAtomNodeImpl(Pos, "quote", 0), configNode });
+ args.push_back(configList);
+ } else {
+ args.insert(args.end(), Args.begin(), Args.end());
+ }
+
+ auto result = BuildBuiltinFunc(Ctx, Pos, Func, args, Module, AggMode, &mustUseNamed, warnOnYqlNameSpace);
+ if (mustUseNamed) {
+ Error() << "Named args are used for call, but unsupported by function: " << Func;
+ return nullptr;
+ }
+
+ if (WindowName) {
+ result = BuildCalcOverWindow(Pos, WindowName, result);
+ }
+
+ return result;
+}
+
+bool TSqlCallExpr::Init(const TRule_value_constructor& node) {
+ switch (node.Alt_case()) {
+ case TRule_value_constructor::kAltValueConstructor1: {
+ auto& ctor = node.GetAlt_value_constructor1();
+ Func = "Variant";
+ TSqlExpression expr(Ctx, Mode);
+ if (!Expr(expr, Args, ctor.GetRule_expr3())) {
+ return false;
+ }
+ if (!Expr(expr, Args, ctor.GetRule_expr5())) {
+ return false;
+ }
+ if (!Expr(expr, Args, ctor.GetRule_expr7())) {
+ return false;
+ }
+ break;
+ }
+ case TRule_value_constructor::kAltValueConstructor2: {
+ auto& ctor = node.GetAlt_value_constructor2();
+ Func = "Enum";
+ TSqlExpression expr(Ctx, Mode);
+ if (!Expr(expr, Args, ctor.GetRule_expr3())) {
+ return false;
+ }
+ if (!Expr(expr, Args, ctor.GetRule_expr5())) {
+ return false;
+ }
+ break;
+ }
+ case TRule_value_constructor::kAltValueConstructor3: {
+ auto& ctor = node.GetAlt_value_constructor3();
+ Func = "Callable";
+ TSqlExpression expr(Ctx, Mode);
+ if (!Expr(expr, Args, ctor.GetRule_expr3())) {
+ return false;
+ }
+ if (!Expr(expr, Args, ctor.GetRule_expr5())) {
+ return false;
+ }
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ PositionalArgs = Args;
+ return true;
+}
+
+bool TSqlCallExpr::ExtractCallParam(const TRule_external_call_param& node) {
+ TString paramName = Id(node.GetRule_an_id1(), *this);
+ paramName = to_lower(paramName);
+
+ if (CallConfig.contains(paramName)) {
+ Ctx.Error() << "WITH " << to_upper(paramName).Quote()
+ << " clause should be specified only once";
+ return false;
+ }
+
+ const bool optimizeForParam = paramName == "optimize_for";
+ const auto columnRefState = optimizeForParam ? EColumnRefState::AsStringLiteral : EColumnRefState::Deny;
+
+ TColumnRefScope scope(Ctx, columnRefState);
+ if (optimizeForParam) {
+ scope.SetNoColumnErrContext("in external call params");
+ }
+
+ TSqlExpression expression(Ctx, Mode);
+ auto value = expression.Build(node.GetRule_expr3());
+ if (value && optimizeForParam) {
+ TDeferredAtom atom;
+ MakeTableFromExpression(Ctx, value, atom);
+ value = new TCallNodeImpl(Ctx.Pos(), "String", { atom.Build() });
+ }
+
+ if (!value) {
+ return false;
+ }
+
+ CallConfig[paramName] = value;
+ return true;
+}
+
+bool TSqlCallExpr::ConfigureExternalCall(const TRule_external_call_settings& node) {
+ bool success = ExtractCallParam(node.GetRule_external_call_param1());
+ for (auto& block: node.GetBlock2()) {
+ success = ExtractCallParam(block.GetRule_external_call_param2()) && success;
+ }
+
+ return success;
+}
+
+bool TSqlCallExpr::Init(const TRule_using_call_expr& node) {
+ // using_call_expr: ((an_id_or_type NAMESPACE an_id_or_type) | an_id_expr | bind_parameter | (EXTERNAL FUNCTION)) invoke_expr;
+ const auto& block = node.GetBlock1();
+ switch (block.Alt_case()) {
+ case TRule_using_call_expr::TBlock1::kAlt1: {
+ auto& subblock = block.GetAlt1().GetBlock1();
+ Module = Id(subblock.GetRule_an_id_or_type1(), *this);
+ Func = Id(subblock.GetRule_an_id_or_type3(), *this);
+ break;
+ }
+ case TRule_using_call_expr::TBlock1::kAlt2: {
+ Func = Id(block.GetAlt2().GetRule_an_id_expr1(), *this);
+ break;
+ }
+ case TRule_using_call_expr::TBlock1::kAlt3: {
+ TString bindName;
+ if (!NamedNodeImpl(block.GetAlt3().GetRule_bind_parameter1(), bindName, *this)) {
+ return false;
+ }
+ Node = GetNamedNode(bindName);
+ if (!Node) {
+ return false;
+ }
+ break;
+ }
+ case TRule_using_call_expr::TBlock1::kAlt4: {
+ IsExternalCall = true;
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ YQL_ENSURE(!DistinctAllowed);
+ UsingCallExpr = true;
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ return Init(node.GetRule_invoke_expr2());
+}
+
+void TSqlCallExpr::InitName(const TString& name) {
+ Module = "";
+ Func = name;
+}
+
+void TSqlCallExpr::InitExpr(const TNodePtr& expr) {
+ Node = expr;
+}
+
+bool TSqlCallExpr::FillArg(const TString& module, const TString& func, size_t& idx, const TRule_named_expr& node) {
+ const bool isNamed = node.HasBlock2();
+
+ TMaybe<EColumnRefState> status;
+ // TODO: support named args
+ if (!isNamed) {
+ status = GetFunctionArgColumnStatus(Ctx, module, func, idx);
+ }
+
+ TNodePtr expr;
+ if (status) {
+ TColumnRefScope scope(Ctx, *status, /* isTopLevel = */ false);
+ expr = NamedExpr(node);
+ } else {
+ expr = NamedExpr(node);
+ }
+
+ if (!expr) {
+ return false;
+ }
+
+ Args.emplace_back(std::move(expr));
+ if (!isNamed) {
+ ++idx;
+ }
+ return true;
+}
+
+bool TSqlCallExpr::FillArgs(const TRule_named_expr_list& node) {
+ TString module = Module;
+ TString func = Func;
+ if (Node && Node->FuncName()) {
+ module = Node->ModuleName() ? *Node->ModuleName() : "YQL";
+ func = *Node->FuncName();
+ }
+
+ size_t idx = 0;
+ if (!FillArg(module, func, idx, node.GetRule_named_expr1())) {
+ return false;
+ }
+
+ for (auto& b: node.GetBlock2()) {
+ if (!FillArg(module, func, idx, b.GetRule_named_expr2())) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool TSqlCallExpr::Init(const TRule_invoke_expr& node) {
+ // invoke_expr: LPAREN (opt_set_quantifier named_expr_list COMMA? | ASTERISK)? RPAREN invoke_expr_tail;
+ // invoke_expr_tail:
+ // (null_treatment | filter_clause)? (OVER window_name_or_specification)?
+ // ;
+ Pos = Ctx.Pos();
+ if (node.HasBlock2()) {
+ switch (node.GetBlock2().Alt_case()) {
+ case TRule_invoke_expr::TBlock2::kAlt1: {
+ const auto& alt = node.GetBlock2().GetAlt1();
+ TPosition distinctPos;
+ if (IsDistinctOptSet(alt.GetRule_opt_set_quantifier1(), distinctPos)) {
+ if (!DistinctAllowed) {
+ if (UsingCallExpr) {
+ Ctx.Error(distinctPos) << "DISTINCT can not be used in PROCESS/REDUCE";
+ } else {
+ Ctx.Error(distinctPos) << "DISTINCT can only be used in aggregation functions";
+ }
+ return false;
+ }
+ YQL_ENSURE(AggMode == EAggregateMode::Normal);
+ AggMode = EAggregateMode::Distinct;
+ Ctx.IncrementMonCounter("sql_features", "DistinctInCallExpr");
+ }
+ if (!FillArgs(alt.GetRule_named_expr_list2())) {
+ return false;
+ }
+ for (const auto& arg : Args) {
+ if (arg->GetLabel()) {
+ NamedArgs.push_back(arg);
+ }
+ else {
+ PositionalArgs.push_back(arg);
+ if (!NamedArgs.empty()) {
+ Ctx.Error(arg->GetPos()) << "Unnamed arguments can not follow after named one";
+ return false;
+ }
+ }
+ }
+ break;
+ }
+ case TRule_invoke_expr::TBlock2::kAlt2:
+ if (IsExternalCall) {
+ Ctx.Error() << "You should set EXTERNAL FUNCTION type. Example: EXTERNAL FUNCTION('YANDEX-CLOUD', ...)";
+ } else {
+ Args.push_back(new TAsteriskNode(Pos));
+ }
+ break;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ }
+
+ const auto& tail = node.GetRule_invoke_expr_tail4();
+
+ if (tail.HasBlock1()) {
+ if (IsExternalCall) {
+ Ctx.Error() << "Additional clause after EXTERNAL FUNCTION(...) is not supported";
+ return false;
+ }
+
+ switch (tail.GetBlock1().Alt_case()) {
+ case TRule_invoke_expr_tail::TBlock1::kAlt1: {
+ if (!tail.HasBlock2()) {
+ Ctx.Error() << "RESPECT/IGNORE NULLS can only be used with window functions";
+ return false;
+ }
+ const auto& alt = tail.GetBlock1().GetAlt1();
+ if (alt.GetRule_null_treatment1().Alt_case() == TRule_null_treatment::kAltNullTreatment2) {
+ SetIgnoreNulls();
+ }
+ break;
+ }
+ case TRule_invoke_expr_tail::TBlock1::kAlt2: {
+ Ctx.Error() << "FILTER clause is not supported yet";
+ return false;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ }
+
+ if (tail.HasBlock2()) {
+ if (AggMode == EAggregateMode::Distinct) {
+ Ctx.Error() << "DISTINCT is not yet supported in window functions";
+ return false;
+ }
+ SetOverWindow();
+ auto winRule = tail.GetBlock2().GetRule_window_name_or_specification2();
+ switch (winRule.Alt_case()) {
+ case TRule_window_name_or_specification::kAltWindowNameOrSpecification1: {
+ WindowName = Id(winRule.GetAlt_window_name_or_specification1().GetRule_window_name1().GetRule_an_id_window1(), *this);
+ break;
+ }
+ case TRule_window_name_or_specification::kAltWindowNameOrSpecification2: {
+ if (!Ctx.WinSpecsScopes) {
+ auto pos = Ctx.TokenPosition(tail.GetBlock2().GetToken1());
+ Ctx.Error(pos) << "Window and aggregation functions are not allowed in this context";
+ return false;
+ }
+
+ TWindowSpecificationPtr spec = WindowSpecification(
+ winRule.GetAlt_window_name_or_specification2().GetRule_window_specification1().GetRule_window_specification_details2());
+ if (!spec) {
+ return false;
+ }
+
+ WindowName = Ctx.MakeName("_yql_anonymous_window");
+ TWinSpecs& specs = Ctx.WinSpecsScopes.back();
+ YQL_ENSURE(!specs.contains(WindowName));
+ specs[WindowName] = spec;
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ Ctx.IncrementMonCounter("sql_features", "WindowFunctionOver");
+ }
+
+ return true;
+}
+
+void TSqlCallExpr::IncCounters() {
+ if (Node) {
+ Ctx.IncrementMonCounter("sql_features", "NamedNodeUseApply");
+ } else if (!Module.empty()) {
+ if (ValidateForCounters(Module)) {
+ Ctx.IncrementMonCounter("udf_modules", Module);
+ Ctx.IncrementMonCounter("sql_features", "CallUdf");
+ if (ValidateForCounters(Func)) {
+ auto scriptType = NKikimr::NMiniKQL::ScriptTypeFromStr(Module);
+ if (scriptType == NKikimr::NMiniKQL::EScriptType::Unknown) {
+ Ctx.IncrementMonCounter("udf_functions", Module + "." + Func);
+ }
+ }
+ }
+ } else if (ValidateForCounters(Func)) {
+ Ctx.IncrementMonCounter("sql_builtins", Func);
+ Ctx.IncrementMonCounter("sql_features", "CallBuiltin");
+ }
+}
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_call_expr.h b/ydb/library/yql/sql/v1/sql_call_expr.h
new file mode 100644
index 0000000000..db03370246
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_call_expr.h
@@ -0,0 +1,93 @@
+#pragma once
+
+#include "sql_translation.h"
+
+namespace NSQLTranslationV1 {
+
+TNodePtr BuildSqlCall(TContext& ctx, TPosition pos, const TString& module, const TString& name, const TVector<TNodePtr>& args,
+ TNodePtr positionalArgs, TNodePtr namedArgs, TNodePtr customUserType, const TDeferredAtom& typeConfig, TNodePtr runConfig);
+
+using namespace NSQLv1Generated;
+
+class TSqlCallExpr: public TSqlTranslation {
+public:
+ TSqlCallExpr(TContext& ctx, NSQLTranslation::ESqlMode mode)
+ : TSqlTranslation(ctx, mode)
+ {
+ }
+
+ TSqlCallExpr(const TSqlCallExpr& call, const TVector<TNodePtr>& args)
+ : TSqlTranslation(call.Ctx, call.Mode)
+ , Pos(call.Pos)
+ , Func(call.Func)
+ , Module(call.Module)
+ , Node(call.Node)
+ , Args(args)
+ , AggMode(call.AggMode)
+ , DistinctAllowed(call.DistinctAllowed)
+ , UsingCallExpr(call.UsingCallExpr)
+ , IsExternalCall(call.IsExternalCall)
+ , CallConfig(call.CallConfig)
+ {
+ }
+
+ void AllowDistinct() {
+ DistinctAllowed = true;
+ }
+
+ void InitName(const TString& name);
+ void InitExpr(const TNodePtr& expr);
+
+ bool Init(const TRule_using_call_expr& node);
+ bool Init(const TRule_value_constructor& node);
+ bool Init(const TRule_invoke_expr& node);
+ bool ConfigureExternalCall(const TRule_external_call_settings& node);
+ void IncCounters();
+
+ TNodePtr BuildUdf(bool forReduce);
+
+ TNodePtr BuildCall();
+
+ TPosition GetPos() const {
+ return Pos;
+ }
+
+ const TVector<TNodePtr>& GetArgs() const {
+ return Args;
+ }
+
+ void SetOverWindow() {
+ YQL_ENSURE(AggMode == EAggregateMode::Normal);
+ AggMode = EAggregateMode::OverWindow;
+ }
+
+ void SetIgnoreNulls() {
+ Func += "_IgnoreNulls";
+ }
+
+ bool IsExternal() {
+ return IsExternalCall;
+ }
+
+private:
+ bool ExtractCallParam(const TRule_external_call_param& node);
+ bool FillArg(const TString& module, const TString& func, size_t& idx, const TRule_named_expr& node);
+ bool FillArgs(const TRule_named_expr_list& node);
+
+private:
+ TPosition Pos;
+ TString Func;
+ TString Module;
+ TNodePtr Node;
+ TVector<TNodePtr> Args;
+ TVector<TNodePtr> PositionalArgs;
+ TVector<TNodePtr> NamedArgs;
+ EAggregateMode AggMode = EAggregateMode::Normal;
+ TString WindowName;
+ bool DistinctAllowed = false;
+ bool UsingCallExpr = false;
+ bool IsExternalCall = false;
+ TFunctionConfig CallConfig;
+};
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_expression.cpp b/ydb/library/yql/sql/v1/sql_expression.cpp
new file mode 100644
index 0000000000..f2b89b18ee
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_expression.cpp
@@ -0,0 +1,2197 @@
+#include "sql_expression.h"
+#include "sql_call_expr.h"
+#include "sql_select.h"
+#include "sql_values.h"
+#include <ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h>
+#include <ydb/library/yql/utils/utf8.h>
+#include <util/charset/wide.h>
+#include <util/string/ascii.h>
+#include <util/string/hex.h>
+
+namespace NSQLTranslationV1 {
+
+using NALPDefault::SQLv1LexerTokens;
+
+using namespace NSQLv1Generated;
+
+TNodePtr TSqlExpression::Build(const TRule_expr& node) {
+ // expr:
+ // or_subexpr (OR or_subexpr)*
+ // | type_name_composite
+ switch (node.Alt_case()) {
+ case TRule_expr::kAltExpr1: {
+ auto getNode = [](const TRule_expr_TAlt1_TBlock2& b) -> const TRule_or_subexpr& { return b.GetRule_or_subexpr2(); };
+ return BinOper("Or", node.GetAlt_expr1().GetRule_or_subexpr1(), getNode,
+ node.GetAlt_expr1().GetBlock2().begin(), node.GetAlt_expr1().GetBlock2().end(), {});
+ }
+ case TRule_expr::kAltExpr2: {
+ return TypeNode(node.GetAlt_expr2().GetRule_type_name_composite1());
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ }
+
+TNodePtr TSqlExpression::SubExpr(const TRule_mul_subexpr& node, const TTrailingQuestions& tail) {
+ // mul_subexpr: con_subexpr (DOUBLE_PIPE con_subexpr)*;
+ auto getNode = [](const TRule_mul_subexpr::TBlock2& b) -> const TRule_con_subexpr& { return b.GetRule_con_subexpr2(); };
+ return BinOper("Concat", node.GetRule_con_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
+}
+
+TNodePtr TSqlExpression::SubExpr(const TRule_add_subexpr& node, const TTrailingQuestions& tail) {
+ // add_subexpr: mul_subexpr ((ASTERISK | SLASH | PERCENT) mul_subexpr)*;
+ auto getNode = [](const TRule_add_subexpr::TBlock2& b) -> const TRule_mul_subexpr& { return b.GetRule_mul_subexpr2(); };
+ return BinOpList(node.GetRule_mul_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
+}
+
+TNodePtr TSqlExpression::SubExpr(const TRule_bit_subexpr& node, const TTrailingQuestions& tail) {
+ // bit_subexpr: add_subexpr ((PLUS | MINUS) add_subexpr)*;
+ auto getNode = [](const TRule_bit_subexpr::TBlock2& b) -> const TRule_add_subexpr& { return b.GetRule_add_subexpr2(); };
+ return BinOpList(node.GetRule_add_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
+ }
+
+TNodePtr TSqlExpression::SubExpr(const TRule_neq_subexpr& node, const TTrailingQuestions& tailExternal) {
+ //neq_subexpr: bit_subexpr ((SHIFT_LEFT | shift_right | ROT_LEFT | rot_right | AMPERSAND | PIPE | CARET) bit_subexpr)*
+ // // trailing QUESTIONS are used in optional simple types (String?) and optional lambda args: ($x, $y?) -> ($x)
+ // ((double_question neq_subexpr) => double_question neq_subexpr | QUESTION+)?;
+ YQL_ENSURE(tailExternal.Count == 0);
+ MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && !node.HasBlock3();
+ TTrailingQuestions tail;
+ if (node.HasBlock3() && node.GetBlock3().Alt_case() == TRule_neq_subexpr::TBlock3::kAlt2) {
+ auto& questions = node.GetBlock3().GetAlt2();
+ tail.Count = questions.GetBlock1().size();
+ tail.Pos = Ctx.TokenPosition(questions.GetBlock1().begin()->GetToken1());
+ YQL_ENSURE(tail.Count > 0);
+ }
+
+ auto getNode = [](const TRule_neq_subexpr::TBlock2& b) -> const TRule_bit_subexpr& { return b.GetRule_bit_subexpr2(); };
+ auto result = BinOpList(node.GetRule_bit_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
+ if (!result) {
+ return {};
+ }
+ if (node.HasBlock3()) {
+ auto& block = node.GetBlock3();
+ if (block.Alt_case() == TRule_neq_subexpr::TBlock3::kAlt1) {
+ TSqlExpression altExpr(Ctx, Mode);
+ auto altResult = SubExpr(block.GetAlt1().GetRule_neq_subexpr2(), {});
+ if (!altResult) {
+ return {};
+ }
+ const TVector<TNodePtr> args({result, altResult});
+ Token(block.GetAlt1().GetRule_double_question1().GetToken1());
+ result = BuildBuiltinFunc(Ctx, Ctx.Pos(), "Coalesce", args);
+ }
+ }
+ return result;
+ }
+
+ TNodePtr TSqlExpression::SubExpr(const TRule_eq_subexpr& node, const TTrailingQuestions& tail) {
+ // eq_subexpr: neq_subexpr ((LESS | LESS_OR_EQ | GREATER | GREATER_OR_EQ) neq_subexpr)*;
+ auto getNode = [](const TRule_eq_subexpr::TBlock2& b) -> const TRule_neq_subexpr& { return b.GetRule_neq_subexpr2(); };
+ return BinOpList(node.GetRule_neq_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
+ }
+
+ TNodePtr TSqlExpression::SubExpr(const TRule_or_subexpr& node, const TTrailingQuestions& tail) {
+ // or_subexpr: and_subexpr (AND and_subexpr)*;
+ auto getNode = [](const TRule_or_subexpr::TBlock2& b) -> const TRule_and_subexpr& { return b.GetRule_and_subexpr2(); };
+ return BinOper("And", node.GetRule_and_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
+}
+
+TNodePtr TSqlExpression::SubExpr(const TRule_and_subexpr& node, const TTrailingQuestions& tail) {
+ // and_subexpr: xor_subexpr (XOR xor_subexpr)*;
+ auto getNode = [](const TRule_and_subexpr::TBlock2& b) -> const TRule_xor_subexpr& { return b.GetRule_xor_subexpr2(); };
+ return BinOper("Xor", node.GetRule_xor_subexpr1(), getNode, node.GetBlock2().begin(), node.GetBlock2().end(), tail);
+}
+
+
+bool ChangefeedSettingsEntry(const TRule_changefeed_settings_entry& node, TSqlExpression& ctx, TChangefeedSettings& settings, bool alter) {
+ const auto id = IdEx(node.GetRule_an_id1(), ctx);
+ if (alter) {
+ // currently we don't support alter settings
+ ctx.Error() << to_upper(id.Name) << " alter is not supported";
+ return false;
+ }
+
+ const auto& setting = node.GetRule_changefeed_setting_value3();
+ auto exprNode = ctx.Build(setting.GetRule_expr1());
+
+ if (!exprNode) {
+ ctx.Context().Error(id.Pos) << "Invalid changefeed setting: " << id.Name;
+ return false;
+ }
+
+ if (to_lower(id.Name) == "sink_type") {
+ if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "String") {
+ ctx.Context().Error() << "Literal of String type is expected for " << id.Name;
+ return false;
+ }
+
+ const auto value = exprNode->GetLiteralValue();
+ if (to_lower(value) == "local") {
+ settings.SinkSettings = TChangefeedSettings::TLocalSinkSettings();
+ } else {
+ ctx.Context().Error() << "Unknown changefeed sink type: " << value;
+ return false;
+ }
+ } else if (to_lower(id.Name) == "mode") {
+ if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "String") {
+ ctx.Context().Error() << "Literal of String type is expected for " << id.Name;
+ return false;
+ }
+ settings.Mode = exprNode;
+ } else if (to_lower(id.Name) == "format") {
+ if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "String") {
+ ctx.Context().Error() << "Literal of String type is expected for " << id.Name;
+ return false;
+ }
+ settings.Format = exprNode;
+ } else if (to_lower(id.Name) == "initial_scan") {
+ if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "Bool") {
+ ctx.Context().Error() << "Literal of Bool type is expected for " << id.Name;
+ return false;
+ }
+ settings.InitialScan = exprNode;
+ } else if (to_lower(id.Name) == "virtual_timestamps") {
+ if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "Bool") {
+ ctx.Context().Error() << "Literal of Bool type is expected for " << id.Name;
+ return false;
+ }
+ settings.VirtualTimestamps = exprNode;
+ } else if (to_lower(id.Name) == "resolved_timestamps") {
+ if (exprNode->GetOpName() != "Interval") {
+ ctx.Context().Error() << "Literal of Interval type is expected for " << id.Name;
+ return false;
+ }
+ settings.ResolvedTimestamps = exprNode;
+ } else if (to_lower(id.Name) == "retention_period") {
+ if (exprNode->GetOpName() != "Interval") {
+ ctx.Context().Error() << "Literal of Interval type is expected for " << id.Name;
+ return false;
+ }
+ settings.RetentionPeriod = exprNode;
+ } else if (to_lower(id.Name) == "aws_region") {
+ if (!exprNode->IsLiteral() || exprNode->GetLiteralType() != "String") {
+ ctx.Context().Error() << "Literal of String type is expected for " << id.Name;
+ return false;
+ }
+ settings.AwsRegion = exprNode;
+ } else {
+ ctx.Context().Error(id.Pos) << "Unknown changefeed setting: " << id.Name;
+ return false;
+ }
+
+ return true;
+}
+
+bool ChangefeedSettings(const TRule_changefeed_settings& node, TSqlExpression& ctx, TChangefeedSettings& settings, bool alter) {
+ if (!ChangefeedSettingsEntry(node.GetRule_changefeed_settings_entry1(), ctx, settings, alter)) {
+ return false;
+ }
+
+ for (auto& block : node.GetBlock2()) {
+ if (!ChangefeedSettingsEntry(block.GetRule_changefeed_settings_entry2(), ctx, settings, alter)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool CreateChangefeed(const TRule_changefeed& node, TSqlExpression& ctx, TVector<TChangefeedDescription>& changefeeds) {
+ changefeeds.emplace_back(IdEx(node.GetRule_an_id2(), ctx));
+
+ if (!ChangefeedSettings(node.GetRule_changefeed_settings5(), ctx, changefeeds.back().Settings, false)) {
+ return false;
+ }
+
+ return true;
+}
+
+namespace {
+ bool WithoutAlpha(const std::string_view &literal) {
+ return literal.cend() == std::find_if(literal.cbegin(), literal.cend(), [](char c) { return std::isalpha(c) || (c & '\x80'); });
+ }
+}
+
+
+bool Expr(TSqlExpression& sqlExpr, TVector<TNodePtr>& exprNodes, const TRule_expr& node) {
+ TNodePtr exprNode = sqlExpr.Build(node);
+ if (!exprNode) {
+ return false;
+ }
+ exprNodes.push_back(exprNode);
+ return true;
+}
+
+bool ExprList(TSqlExpression& sqlExpr, TVector<TNodePtr>& exprNodes, const TRule_expr_list& node) {
+ if (!Expr(sqlExpr, exprNodes, node.GetRule_expr1())) {
+ return false;
+ }
+ for (auto b: node.GetBlock2()) {
+ sqlExpr.Token(b.GetToken1());
+ if (!Expr(sqlExpr, exprNodes, b.GetRule_expr2())) {
+ return false;
+ }
+ }
+ return true;
+}
+bool ParseNumbers(TContext& ctx, const TString& strOrig, ui64& value, TString& suffix) {
+ const auto str = to_lower(strOrig);
+ const auto strLen = str.size();
+ ui64 base = 10;
+ if (strLen > 2 && str[0] == '0') {
+ const auto formatChar = str[1];
+ if (formatChar == 'x') {
+ base = 16;
+ } else if (formatChar == 'o') {
+ base = 8;
+ } else if (formatChar == 'b') {
+ base = 2;
+ }
+ }
+ if (strLen > 1) {
+ auto iter = str.cend() - 1;
+ if (*iter == 'l' || *iter == 's' || *iter == 't' || *iter == 's' || *iter == 'i' || *iter == 'b' || *iter == 'n') {
+ --iter;
+ }
+ if (*iter == 'u' || *iter == 'p') {
+ --iter;
+ }
+ suffix = TString(++iter, str.cend());
+ }
+ value = 0;
+ const TString digString(str.begin() + (base == 10 ? 0 : 2), str.end() - suffix.size());
+ for (const char& cur: digString) {
+ const ui64 curDigit = Char2DigitTable[static_cast<int>(cur)];
+ if (curDigit >= base) {
+ ctx.Error(ctx.Pos()) << "Failed to parse number from string: " << strOrig << ", char: '" << cur <<
+ "' is out of base: " << base;
+ return false;
+ }
+
+ ui64 curValue = value;
+ value *= base;
+ bool overflow = ((value / base) != curValue);
+ if (!overflow) {
+ curValue = value;
+ value += curDigit;
+ overflow = value < curValue;
+ }
+
+ if (overflow) {
+ ctx.Error(ctx.Pos()) << "Failed to parse number from string: " << strOrig << ", number limit overflow";
+ return false;
+ }
+ }
+ return true;
+}
+
+TNodePtr LiteralNumber(TContext& ctx, const TRule_integer& node) {
+ const TString intergerString = ctx.Token(node.GetToken1());
+ if (to_lower(intergerString).EndsWith("pn")) {
+ // TODO: add validation
+ return new TLiteralNode(ctx.Pos(), "PgNumeric", intergerString.substr(0, intergerString.size() - 2));
+ }
+
+ ui64 value;
+ TString suffix;
+ if (!ParseNumbers(ctx, intergerString, value, suffix)) {
+ return {};
+ }
+
+ const bool noSpaceForInt32 = value >> 31;
+ const bool noSpaceForInt64 = value >> 63;
+ if (suffix == "") {
+ bool implicitType = true;
+ if (noSpaceForInt64) {
+ return new TLiteralNumberNode<ui64>(ctx.Pos(), "Uint64", ToString(value), implicitType);
+ } else if (noSpaceForInt32) {
+ return new TLiteralNumberNode<i64>(ctx.Pos(), "Int64", ToString(value), implicitType);
+ }
+ return new TLiteralNumberNode<i32>(ctx.Pos(), "Int32", ToString(value), implicitType);
+ } else if (suffix == "p") {
+ bool implicitType = true;
+ if (noSpaceForInt64) {
+ ctx.Error(ctx.Pos()) << "Failed to parse number from string: " << intergerString << ", 64 bit signed integer overflow";
+ return {};
+ } else if (noSpaceForInt32) {
+ return new TLiteralNumberNode<i64>(ctx.Pos(), "PgInt8", ToString(value), implicitType);
+ }
+ return new TLiteralNumberNode<i32>(ctx.Pos(), "PgInt4", ToString(value), implicitType);
+ } else if (suffix == "u") {
+ return new TLiteralNumberNode<ui32>(ctx.Pos(), "Uint32", ToString(value));
+ } else if (suffix == "ul") {
+ return new TLiteralNumberNode<ui64>(ctx.Pos(), "Uint64", ToString(value));
+ } else if (suffix == "ut") {
+ return new TLiteralNumberNode<ui8>(ctx.Pos(), "Uint8", ToString(value));
+ } else if (suffix == "t") {
+ return new TLiteralNumberNode<i8>(ctx.Pos(), "Int8", ToString(value));
+ } else if (suffix == "l") {
+ return new TLiteralNumberNode<i64>(ctx.Pos(), "Int64", ToString(value));
+ } else if (suffix == "us") {
+ return new TLiteralNumberNode<ui16>(ctx.Pos(), "Uint16", ToString(value));
+ } else if (suffix == "s") {
+ return new TLiteralNumberNode<i16>(ctx.Pos(), "Int16", ToString(value));
+ } else if (suffix == "ps") {
+ return new TLiteralNumberNode<i16>(ctx.Pos(), "PgInt2", ToString(value));
+ } else if (suffix == "pi") {
+ return new TLiteralNumberNode<i32>(ctx.Pos(), "PgInt4", ToString(value));
+ } else if (suffix == "pb") {
+ return new TLiteralNumberNode<i64>(ctx.Pos(), "PgInt8", ToString(value));
+ } else {
+ ctx.Error(ctx.Pos()) << "Failed to parse number from string: " << intergerString << ", invalid suffix: " << suffix;
+ return {};
+ }
+}
+
+TNodePtr LiteralReal(TContext& ctx, const TRule_real& node) {
+ const TString value(ctx.Token(node.GetToken1()));
+ YQL_ENSURE(!value.empty());
+ auto lower = to_lower(value);
+ if (lower.EndsWith("f")) {
+ return new TLiteralNumberNode<float>(ctx.Pos(), "Float", value.substr(0, value.size()-1));
+ } else if (lower.EndsWith("p")) {
+ return new TLiteralNumberNode<float>(ctx.Pos(), "PgFloat8", value.substr(0, value.size()-1));
+ } else if (lower.EndsWith("pf4")) {
+ return new TLiteralNumberNode<float>(ctx.Pos(), "PgFloat4", value.substr(0, value.size()-3));
+ } else if (lower.EndsWith("pf8")) {
+ return new TLiteralNumberNode<float>(ctx.Pos(), "PgFloat8", value.substr(0, value.size()-3));
+ } else if (lower.EndsWith("pn")) {
+ return new TLiteralNode(ctx.Pos(), "PgNumeric", value.substr(0, value.size()-2));
+ } else {
+ return new TLiteralNumberNode<double>(ctx.Pos(), "Double", value);
+ }
+}
+
+TMaybe<TExprOrIdent> TSqlExpression::LiteralExpr(const TRule_literal_value& node) {
+ TExprOrIdent result;
+ switch (node.Alt_case()) {
+ case TRule_literal_value::kAltLiteralValue1: {
+ result.Expr = LiteralNumber(Ctx, node.GetAlt_literal_value1().GetRule_integer1());
+ break;
+ }
+ case TRule_literal_value::kAltLiteralValue2: {
+ result.Expr = LiteralReal(Ctx, node.GetAlt_literal_value2().GetRule_real1());
+ break;
+ }
+ case TRule_literal_value::kAltLiteralValue3: {
+ const TString value(Token(node.GetAlt_literal_value3().GetToken1()));
+ return BuildLiteralTypedSmartStringOrId(Ctx, value);
+ }
+ case TRule_literal_value::kAltLiteralValue5: {
+ Token(node.GetAlt_literal_value5().GetToken1());
+ result.Expr = BuildLiteralNull(Ctx.Pos());
+ break;
+ }
+ case TRule_literal_value::kAltLiteralValue9: {
+ const TString value(to_lower(Token(node.GetAlt_literal_value9().GetRule_bool_value1().GetToken1())));
+ result.Expr = BuildLiteralBool(Ctx.Pos(), FromString<bool>(value));
+ break;
+ }
+ case TRule_literal_value::kAltLiteralValue10: {
+ result.Expr = BuildEmptyAction(Ctx.Pos());
+ break;
+ }
+ default:
+ AltNotImplemented("literal_value", node);
+ }
+ if (!result.Expr) {
+ return {};
+ }
+ return result;
+}
+
+template<typename TUnarySubExprType>
+TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node, const TTrailingQuestions& tail) {
+ if constexpr (std::is_same_v<TUnarySubExprType, TRule_unary_subexpr>) {
+ if (node.Alt_case() == TRule_unary_subexpr::kAltUnarySubexpr1) {
+ return UnaryCasualExpr(node.GetAlt_unary_subexpr1().GetRule_unary_casual_subexpr1(), tail);
+ } else if (tail.Count) {
+ UnexpectedQuestionToken(tail);
+ return {};
+ } else {
+ MaybeUnnamedSmartParenOnTop = false;
+ return JsonApiExpr(node.GetAlt_unary_subexpr2().GetRule_json_api_expr1());
+ }
+ } else {
+ MaybeUnnamedSmartParenOnTop = false;
+ if (node.Alt_case() == TRule_in_unary_subexpr::kAltInUnarySubexpr1) {
+ return UnaryCasualExpr(node.GetAlt_in_unary_subexpr1().GetRule_in_unary_casual_subexpr1(), tail);
+ } else if (tail.Count) {
+ UnexpectedQuestionToken(tail);
+ return {};
+ } else {
+ return JsonApiExpr(node.GetAlt_in_unary_subexpr2().GetRule_json_api_expr1());
+ }
+ }
+}
+
+TNodePtr TSqlExpression::JsonPathSpecification(const TRule_jsonpath_spec& node) {
+ /*
+ jsonpath_spec: STRING_VALUE;
+ */
+ TString value = Token(node.GetToken1());
+ TPosition pos = Ctx.Pos();
+
+ auto parsed = StringContent(Ctx, pos, value);
+ if (!parsed) {
+ return nullptr;
+ }
+ return new TCallNodeImpl(pos, "Utf8", {BuildQuotedAtom(pos, parsed->Content, parsed->Flags)});
+}
+
+TNodePtr TSqlExpression::JsonReturningTypeRule(const TRule_type_name_simple& node) {
+ /*
+ (RETURNING type_name_simple)?
+ */
+ return TypeSimple(node, /* onlyDataAllowed */ true);
+}
+
+TNodePtr TSqlExpression::JsonInputArg(const TRule_json_common_args& node) {
+ /*
+ json_common_args: expr COMMA jsonpath_spec (PASSING json_variables)?;
+ */
+ TNodePtr jsonExpr = Build(node.GetRule_expr1());
+ if (!jsonExpr || jsonExpr->IsNull()) {
+ jsonExpr = new TCallNodeImpl(Ctx.Pos(), "Nothing", {
+ new TCallNodeImpl(Ctx.Pos(), "OptionalType", {BuildDataType(Ctx.Pos(), "Json")})
+ });
+ }
+
+ return jsonExpr;
+}
+
+void TSqlExpression::AddJsonVariable(const TRule_json_variable& node, TVector<TNodePtr>& children) {
+ /*
+ json_variable: expr AS json_variable_name;
+ */
+ TNodePtr expr;
+ TString rawName;
+ TPosition namePos = Ctx.Pos();
+ ui32 nameFlags = 0;
+
+ expr = Build(node.GetRule_expr1());
+ const auto& nameRule = node.GetRule_json_variable_name3();
+ switch (nameRule.GetAltCase()) {
+ case TRule_json_variable_name::kAltJsonVariableName1:
+ rawName = Id(nameRule.GetAlt_json_variable_name1().GetRule_id_expr1(), *this);
+ nameFlags = TNodeFlags::ArbitraryContent;
+ break;
+ case TRule_json_variable_name::kAltJsonVariableName2: {
+ const auto& token = nameRule.GetAlt_json_variable_name2().GetToken1();
+ namePos = GetPos(token);
+ auto parsed = StringContentOrIdContent(Ctx, namePos, token.GetValue());
+ if (!parsed) {
+ return;
+ }
+ rawName = parsed->Content;
+ nameFlags = parsed->Flags;
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ TNodePtr nameExpr = BuildQuotedAtom(namePos, rawName, nameFlags);
+ children.push_back(BuildTuple(namePos, {nameExpr, expr}));
+}
+
+void TSqlExpression::AddJsonVariables(const TRule_json_variables& node, TVector<TNodePtr>& children) {
+ /*
+ json_variables: json_variable (COMMA json_variable)*;
+ */
+ AddJsonVariable(node.GetRule_json_variable1(), children);
+ for (size_t i = 0; i < node.Block2Size(); i++) {
+ AddJsonVariable(node.GetBlock2(i).GetRule_json_variable2(), children);
+ }
+}
+
+TNodePtr TSqlExpression::JsonVariables(const TRule_json_common_args& node) {
+ /*
+ json_common_args: expr COMMA jsonpath_spec (PASSING json_variables)?;
+ */
+ TVector<TNodePtr> variables;
+ TPosition pos = Ctx.Pos();
+ if (node.HasBlock4()) {
+ const auto& block = node.GetBlock4();
+ pos = GetPos(block.GetToken1());
+ AddJsonVariables(block.GetRule_json_variables2(), variables);
+ }
+ return new TCallNodeImpl(pos, "JsonVariables", variables);
+}
+
+void TSqlExpression::AddJsonCommonArgs(const TRule_json_common_args& node, TVector<TNodePtr>& children) {
+ /*
+ json_common_args: expr COMMA jsonpath_spec (PASSING json_variables)?;
+ */
+ TNodePtr jsonExpr = JsonInputArg(node);
+ TNodePtr jsonPath = JsonPathSpecification(node.GetRule_jsonpath_spec3());
+ TNodePtr variables = JsonVariables(node);
+
+ children.push_back(jsonExpr);
+ children.push_back(jsonPath);
+ children.push_back(variables);
+}
+
+TNodePtr TSqlExpression::JsonValueCaseHandler(const TRule_json_case_handler& node, EJsonValueHandlerMode& mode) {
+ /*
+ json_case_handler: ERROR | NULL | (DEFAULT expr);
+ */
+
+ switch (node.GetAltCase()) {
+ case TRule_json_case_handler::kAltJsonCaseHandler1: {
+ const auto pos = GetPos(node.GetAlt_json_case_handler1().GetToken1());
+ mode = EJsonValueHandlerMode::Error;
+ return new TCallNodeImpl(pos, "Null", {});
+ }
+ case TRule_json_case_handler::kAltJsonCaseHandler2: {
+ const auto pos = GetPos(node.GetAlt_json_case_handler2().GetToken1());
+ mode = EJsonValueHandlerMode::DefaultValue;
+ return new TCallNodeImpl(pos, "Null", {});
+ }
+ case TRule_json_case_handler::kAltJsonCaseHandler3:
+ mode = EJsonValueHandlerMode::DefaultValue;
+ return Build(node.GetAlt_json_case_handler3().GetBlock1().GetRule_expr2());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+void TSqlExpression::AddJsonValueCaseHandlers(const TRule_json_value& node, TVector<TNodePtr>& children) {
+ /*
+ json_case_handler*
+ */
+ if (node.Block5Size() > 2) {
+ Ctx.Error() << "Only 1 ON EMPTY and/or 1 ON ERROR clause is expected";
+ Ctx.IncrementMonCounter("sql_errors", "JsonValueTooManyHandleClauses");
+ return;
+ }
+
+ TNodePtr onEmpty;
+ EJsonValueHandlerMode onEmptyMode = EJsonValueHandlerMode::DefaultValue;
+ TNodePtr onError;
+ EJsonValueHandlerMode onErrorMode = EJsonValueHandlerMode::DefaultValue;
+ for (size_t i = 0; i < node.Block5Size(); i++) {
+ const auto block = node.GetBlock5(i);
+ const bool isEmptyClause = to_lower(block.GetToken3().GetValue()) == "empty";
+
+ if (isEmptyClause && onEmpty != nullptr) {
+ Ctx.Error() << "Only 1 ON EMPTY clause is expected";
+ Ctx.IncrementMonCounter("sql_errors", "JsonValueMultipleOnEmptyClauses");
+ return;
+ }
+
+ if (!isEmptyClause && onError != nullptr) {
+ Ctx.Error() << "Only 1 ON ERROR clause is expected";
+ Ctx.IncrementMonCounter("sql_errors", "JsonValueMultipleOnErrorClauses");
+ return;
+ }
+
+ if (isEmptyClause && onError != nullptr) {
+ Ctx.Error() << "ON EMPTY clause must be before ON ERROR clause";
+ Ctx.IncrementMonCounter("sql_errors", "JsonValueOnEmptyAfterOnError");
+ return;
+ }
+
+ EJsonValueHandlerMode currentMode;
+ TNodePtr currentHandler = JsonValueCaseHandler(block.GetRule_json_case_handler1(), currentMode);
+
+ if (isEmptyClause) {
+ onEmpty = currentHandler;
+ onEmptyMode = currentMode;
+ } else {
+ onError = currentHandler;
+ onErrorMode = currentMode;
+ }
+ }
+
+ if (onEmpty == nullptr) {
+ onEmpty = new TCallNodeImpl(Ctx.Pos(), "Null", {});
+ }
+
+ if (onError == nullptr) {
+ onError = new TCallNodeImpl(Ctx.Pos(), "Null", {});
+ }
+
+ children.push_back(BuildQuotedAtom(Ctx.Pos(), ToString(onEmptyMode), TNodeFlags::Default));
+ children.push_back(onEmpty);
+ children.push_back(BuildQuotedAtom(Ctx.Pos(), ToString(onErrorMode), TNodeFlags::Default));
+ children.push_back(onError);
+}
+
+TNodePtr TSqlExpression::JsonValueExpr(const TRule_json_value& node) {
+ /*
+ json_value: JSON_VALUE LPAREN
+ json_common_args
+ (RETURNING type_name_simple)?
+ (json_case_handler ON (EMPTY | ERROR))*
+ RPAREN;
+ */
+ TVector<TNodePtr> children;
+ AddJsonCommonArgs(node.GetRule_json_common_args3(), children);
+ AddJsonValueCaseHandlers(node, children);
+
+ if (node.HasBlock4()) {
+ auto returningType = JsonReturningTypeRule(node.GetBlock4().GetRule_type_name_simple2());
+ if (!returningType) {
+ return {};
+ }
+ children.push_back(returningType);
+ }
+
+ return new TCallNodeImpl(GetPos(node.GetToken1()), "JsonValue", children);
+}
+
+void TSqlExpression::AddJsonExistsHandler(const TRule_json_exists& node, TVector<TNodePtr>& children) {
+ /*
+ json_exists: JSON_EXISTS LPAREN
+ json_common_args
+ json_exists_handler?
+ RPAREN;
+ */
+ auto buildJustBool = [&](const TPosition& pos, bool value) {
+ return new TCallNodeImpl(pos, "Just", {BuildLiteralBool(pos, value)});
+ };
+
+ if (!node.HasBlock4()) {
+ children.push_back(buildJustBool(Ctx.Pos(), false));
+ return;
+ }
+
+ const auto& handlerRule = node.GetBlock4().GetRule_json_exists_handler1();
+ const auto& token = handlerRule.GetToken1();
+ const auto pos = GetPos(token);
+ const auto mode = to_lower(token.GetValue());
+ if (mode == "unknown") {
+ const auto nothingNode = new TCallNodeImpl(pos, "Nothing", {
+ new TCallNodeImpl(pos, "OptionalType", {BuildDataType(pos, "Bool")})
+ });
+ children.push_back(nothingNode);
+ } else if (mode != "error") {
+ children.push_back(buildJustBool(pos, FromString<bool>(mode)));
+ }
+}
+
+TNodePtr TSqlExpression::JsonExistsExpr(const TRule_json_exists& node) {
+ /*
+ json_exists: JSON_EXISTS LPAREN
+ json_common_args
+ json_exists_handler?
+ RPAREN;
+ */
+ TVector<TNodePtr> children;
+ AddJsonCommonArgs(node.GetRule_json_common_args3(), children);
+
+ AddJsonExistsHandler(node, children);
+
+ return new TCallNodeImpl(GetPos(node.GetToken1()), "JsonExists", children);
+}
+
+EJsonQueryWrap TSqlExpression::JsonQueryWrapper(const TRule_json_query& node) {
+ /*
+ json_query: JSON_QUERY LPAREN
+ json_common_args
+ (json_query_wrapper WRAPPER)?
+ (json_query_handler ON EMPTY)?
+ (json_query_handler ON ERROR)?
+ RPAREN;
+ */
+ // default behaviour - no wrapping
+ if (!node.HasBlock4()) {
+ return EJsonQueryWrap::NoWrap;
+ }
+
+ // WITHOUT ARRAY? - no wrapping
+ const auto& wrapperRule = node.GetBlock4().GetRule_json_query_wrapper1();
+ if (wrapperRule.GetAltCase() == TRule_json_query_wrapper::kAltJsonQueryWrapper1) {
+ return EJsonQueryWrap::NoWrap;
+ }
+
+ // WITH (CONDITIONAL | UNCONDITIONAL)? ARRAY? - wrapping depends on 2nd token. Default is UNCONDITIONAL
+ const auto& withWrapperRule = wrapperRule.GetAlt_json_query_wrapper2().GetBlock1();
+ if (!withWrapperRule.HasBlock2()) {
+ return EJsonQueryWrap::Wrap;
+ }
+
+ const auto& token = withWrapperRule.GetBlock2().GetToken1();
+ if (to_lower(token.GetValue()) == "conditional") {
+ return EJsonQueryWrap::ConditionalWrap;
+ } else {
+ return EJsonQueryWrap::Wrap;
+ }
+}
+
+EJsonQueryHandler TSqlExpression::JsonQueryHandler(const TRule_json_query_handler& node) {
+ /*
+ json_query_handler: ERROR | NULL | (EMPTY ARRAY) | (EMPTY OBJECT);
+ */
+ switch (node.GetAltCase()) {
+ case TRule_json_query_handler::kAltJsonQueryHandler1:
+ return EJsonQueryHandler::Error;
+ case TRule_json_query_handler::kAltJsonQueryHandler2:
+ return EJsonQueryHandler::Null;
+ case TRule_json_query_handler::kAltJsonQueryHandler3:
+ return EJsonQueryHandler::EmptyArray;
+ case TRule_json_query_handler::kAltJsonQueryHandler4:
+ return EJsonQueryHandler::EmptyObject;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TNodePtr TSqlExpression::JsonQueryExpr(const TRule_json_query& node) {
+ /*
+ json_query: JSON_QUERY LPAREN
+ json_common_args
+ (json_query_wrapper WRAPPER)?
+ (json_query_handler ON EMPTY)?
+ (json_query_handler ON ERROR)?
+ RPAREN;
+ */
+
+ TVector<TNodePtr> children;
+ AddJsonCommonArgs(node.GetRule_json_common_args3(), children);
+
+ auto addChild = [&](TPosition pos, const TString& content) {
+ children.push_back(BuildQuotedAtom(pos, content, TNodeFlags::Default));
+ };
+
+ const auto wrapMode = JsonQueryWrapper(node);
+ addChild(Ctx.Pos(), ToString(wrapMode));
+
+ auto onEmpty = EJsonQueryHandler::Null;
+ if (node.HasBlock5()) {
+ if (wrapMode != EJsonQueryWrap::NoWrap) {
+ Ctx.Error() << "ON EMPTY is prohibited because WRAPPER clause is specified";
+ Ctx.IncrementMonCounter("sql_errors", "JsonQueryOnEmptyWithWrapper");
+ return nullptr;
+ }
+ onEmpty = JsonQueryHandler(node.GetBlock5().GetRule_json_query_handler1());
+ }
+ addChild(Ctx.Pos(), ToString(onEmpty));
+
+ auto onError = EJsonQueryHandler::Null;
+ if (node.HasBlock6()) {
+ onError = JsonQueryHandler(node.GetBlock6().GetRule_json_query_handler1());
+ }
+ addChild(Ctx.Pos(), ToString(onError));
+
+ return new TCallNodeImpl(GetPos(node.GetToken1()), "JsonQuery", children);
+}
+
+TNodePtr TSqlExpression::JsonApiExpr(const TRule_json_api_expr& node) {
+ /*
+ json_api_expr: json_value | json_exists | json_query;
+ */
+ TPosition pos = Ctx.Pos();
+ TNodePtr result = nullptr;
+ switch (node.GetAltCase()) {
+ case TRule_json_api_expr::kAltJsonApiExpr1: {
+ const auto& jsonValue = node.GetAlt_json_api_expr1().GetRule_json_value1();
+ pos = GetPos(jsonValue.GetToken1());
+ result = JsonValueExpr(jsonValue);
+ break;
+ }
+ case TRule_json_api_expr::kAltJsonApiExpr2: {
+ const auto& jsonExists = node.GetAlt_json_api_expr2().GetRule_json_exists1();
+ pos = GetPos(jsonExists.GetToken1());
+ result = JsonExistsExpr(jsonExists);
+ break;
+ }
+ case TRule_json_api_expr::kAltJsonApiExpr3: {
+ const auto& jsonQuery = node.GetAlt_json_api_expr3().GetRule_json_query1();
+ pos = GetPos(jsonQuery.GetToken1());
+ result = JsonQueryExpr(jsonQuery);
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ return result;
+}
+
+template<typename TUnaryCasualExprRule>
+TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const TTrailingQuestions& tail) {
+ // unary_casual_subexpr: (id_expr | atom_expr) unary_subexpr_suffix;
+ // OR
+ // in_unary_casual_subexpr: (id_expr_in | in_atom_expr) unary_subexpr_suffix;
+ // where
+ // unary_subexpr_suffix: (key_expr | invoke_expr |(DOT (bind_parameter | DIGITS | id)))* (COLLATE id)?;
+
+ const auto& suffix = node.GetRule_unary_subexpr_suffix2();
+ const bool suffixIsEmpty = suffix.GetBlock1().empty() && !suffix.HasBlock2();
+ MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && suffixIsEmpty;
+ TString name;
+ TNodePtr expr;
+ bool typePossible = false;
+ auto& block = node.GetBlock1();
+ switch (block.Alt_case()) {
+ case TUnaryCasualExprRule::TBlock1::kAlt1: {
+ MaybeUnnamedSmartParenOnTop = false;
+ auto& alt = block.GetAlt1();
+ if constexpr (std::is_same_v<TUnaryCasualExprRule, TRule_unary_casual_subexpr>) {
+ name = Id(alt.GetRule_id_expr1(), *this);
+ typePossible = !IsQuotedId(alt.GetRule_id_expr1(), *this);
+ } else {
+ // type was never possible here
+ name = Id(alt.GetRule_id_expr_in1(), *this);
+ }
+ break;
+ }
+ case TUnaryCasualExprRule::TBlock1::kAlt2: {
+ auto& alt = block.GetAlt2();
+ TMaybe<TExprOrIdent> exprOrId;
+ if constexpr (std::is_same_v<TUnaryCasualExprRule, TRule_unary_casual_subexpr>) {
+ exprOrId = AtomExpr(alt.GetRule_atom_expr1(), suffixIsEmpty ? tail : TTrailingQuestions{});
+ } else {
+ MaybeUnnamedSmartParenOnTop = false;
+ exprOrId = InAtomExpr(alt.GetRule_in_atom_expr1(), suffixIsEmpty ? tail : TTrailingQuestions{});
+ }
+
+ if (!exprOrId) {
+ Ctx.IncrementMonCounter("sql_errors", "BadAtomExpr");
+ return nullptr;
+ }
+ if (!exprOrId->Expr) {
+ name = exprOrId->Ident;
+ } else {
+ expr = exprOrId->Expr;
+ }
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ // bool onlyDots = true;
+ bool isColumnRef = !expr;
+ bool isFirstElem = true;
+
+ for (auto& b : suffix.GetBlock1()) {
+ switch (b.Alt_case()) {
+ case TRule_unary_subexpr_suffix::TBlock1::kAlt1: {
+ // key_expr
+ // onlyDots = false;
+ break;
+ }
+ case TRule_unary_subexpr_suffix::TBlock1::kAlt2: {
+ // invoke_expr - cannot be a column, function name
+ if (isFirstElem) {
+ isColumnRef = false;
+ }
+
+ // onlyDots = false;
+ break;
+ }
+ case TRule_unary_subexpr_suffix::TBlock1::kAlt3: {
+ // dot
+ break;
+ }
+ default:
+ AltNotImplemented("unary_subexpr_suffix", b);
+ return nullptr;
+ }
+
+ isFirstElem = false;
+ }
+
+ isFirstElem = true;
+ TVector<INode::TIdPart> ids;
+ INode::TPtr lastExpr;
+ if (!isColumnRef) {
+ lastExpr = expr;
+ } else {
+ const bool flexibleTypes = Ctx.FlexibleTypes;
+ bool columnOrType = false;
+ auto columnRefsState = Ctx.GetColumnReferenceState();
+ bool explicitPgType = columnRefsState == EColumnRefState::AsPgType;
+ if (explicitPgType && typePossible && suffixIsEmpty) {
+ auto pgType = BuildSimpleType(Ctx, Ctx.Pos(), name, false);
+ if (pgType && tail.Count) {
+ Ctx.Error() << "Optional types are not supported in this context";
+ return {};
+ }
+ return pgType;
+ }
+ if (auto simpleType = LookupSimpleType(name, flexibleTypes, false); simpleType && typePossible && suffixIsEmpty) {
+ if (tail.Count > 0 || columnRefsState == EColumnRefState::Deny || !flexibleTypes) {
+ // a type
+ return AddOptionals(BuildSimpleType(Ctx, Ctx.Pos(), name, false), tail.Count);
+ }
+ // type or column: ambiguity will be resolved on type annotation stage
+ columnOrType = columnRefsState == EColumnRefState::Allow;
+ }
+ if (tail.Count) {
+ UnexpectedQuestionToken(tail);
+ return {};
+ }
+ if (!Ctx.CheckColumnReference(Ctx.Pos(), name)) {
+ return nullptr;
+ }
+
+ ids.push_back(columnOrType ? BuildColumnOrType(Ctx.Pos()) : BuildColumn(Ctx.Pos()));
+ ids.push_back(name);
+ }
+
+ TPosition pos(Ctx.Pos());
+ for (auto& b : suffix.GetBlock1()) {
+ switch (b.Alt_case()) {
+ case TRule_unary_subexpr_suffix::TBlock1::kAlt1: {
+ // key_expr
+ auto keyExpr = KeyExpr(b.GetAlt1().GetRule_key_expr1());
+ if (!keyExpr) {
+ Ctx.IncrementMonCounter("sql_errors", "BadKeyExpr");
+ return nullptr;
+ }
+
+ if (!lastExpr) {
+ lastExpr = BuildAccess(pos, ids, false);
+ ids.clear();
+ }
+
+ ids.push_back(lastExpr);
+ ids.push_back(keyExpr);
+ lastExpr = BuildAccess(pos, ids, true);
+ ids.clear();
+ break;
+ }
+ case TRule_unary_subexpr_suffix::TBlock1::kAlt2: {
+ // invoke_expr - cannot be a column, function name
+ TSqlCallExpr call(Ctx, Mode);
+ if (isFirstElem && !name.Empty()) {
+ call.AllowDistinct();
+ call.InitName(name);
+ } else {
+ call.InitExpr(lastExpr);
+ }
+
+ bool initRet = call.Init(b.GetAlt2().GetRule_invoke_expr1());
+ if (initRet) {
+ call.IncCounters();
+ }
+
+ if (!initRet) {
+ return nullptr;
+ }
+
+ lastExpr = call.BuildCall();
+ if (!lastExpr) {
+ return nullptr;
+ }
+
+ break;
+ }
+ case TRule_unary_subexpr_suffix::TBlock1::kAlt3: {
+ // dot
+ if (lastExpr) {
+ ids.push_back(lastExpr);
+ }
+
+ auto bb = b.GetAlt3().GetBlock1().GetBlock2();
+ switch (bb.Alt_case()) {
+ case TRule_unary_subexpr_suffix_TBlock1_TAlt3_TBlock1_TBlock2::kAlt1: {
+ TString named;
+ if (!NamedNodeImpl(bb.GetAlt1().GetRule_bind_parameter1(), named, *this)) {
+ return nullptr;
+ }
+ auto namedNode = GetNamedNode(named);
+ if (!namedNode) {
+ return nullptr;
+ }
+
+ ids.push_back(named);
+ ids.back().Expr = namedNode;
+ break;
+ }
+ case TRule_unary_subexpr_suffix_TBlock1_TAlt3_TBlock1_TBlock2::kAlt2: {
+ const TString str(Token(bb.GetAlt2().GetToken1()));
+ ids.push_back(str);
+ break;
+ }
+ case TRule_unary_subexpr_suffix_TBlock1_TAlt3_TBlock1_TBlock2::kAlt3: {
+ ids.push_back(Id(bb.GetAlt3().GetRule_an_id_or_type1(), *this));
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ if (lastExpr) {
+ lastExpr = BuildAccess(pos, ids, false);
+ ids.clear();
+ }
+
+ break;
+ }
+ default:
+ AltNotImplemented("unary_subexpr_suffix", b);
+ return nullptr;
+ }
+
+ isFirstElem = false;
+ }
+
+ if (!lastExpr) {
+ lastExpr = BuildAccess(pos, ids, false);
+ ids.clear();
+ }
+
+ if (suffix.HasBlock2()) {
+ Ctx.IncrementMonCounter("sql_errors", "CollateUnarySubexpr");
+ Error() << "unary_subexpr: COLLATE is not implemented yet";
+ }
+
+ return lastExpr;
+}
+
+TNodePtr TSqlExpression::BindParameterRule(const TRule_bind_parameter& rule, const TTrailingQuestions& tail) {
+ TString namedArg;
+ if (!NamedNodeImpl(rule, namedArg, *this)) {
+ return {};
+ }
+ if (SmartParenthesisMode == ESmartParenthesis::SqlLambdaParams) {
+ Ctx.IncrementMonCounter("sql_features", "LambdaArgument");
+ if (tail.Count > 1) {
+ Ctx.Error(tail.Pos) << "Expecting at most one '?' token here (for optional lambda parameters), but got " << tail.Count;
+ return {};
+ }
+ return BuildAtom(Ctx.Pos(), namedArg, NYql::TNodeFlags::ArbitraryContent, tail.Count != 0);
+ }
+ if (tail.Count) {
+ UnexpectedQuestionToken(tail);
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_features", "NamedNodeUseAtom");
+ return GetNamedNode(namedArg);
+}
+
+TNodePtr TSqlExpression::LambdaRule(const TRule_lambda& rule) {
+ const auto& alt = rule;
+ const bool isSqlLambda = alt.HasBlock2();
+ if (!isSqlLambda) {
+ return SmartParenthesis(alt.GetRule_smart_parenthesis1());
+ }
+
+ MaybeUnnamedSmartParenOnTop = false;
+ TNodePtr parenthesis;
+ {
+ // we allow column reference here to postpone error and report it with better description in SqlLambdaParams
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx, Mode);
+ expr.SetSmartParenthesisMode(ESmartParenthesis::SqlLambdaParams);
+ parenthesis = expr.SmartParenthesis(alt.GetRule_smart_parenthesis1());
+ }
+ if (!parenthesis) {
+ return {};
+ }
+
+ ui32 optionalArgumentsCount = 0;
+ TVector<TSymbolNameWithPos> args;
+ if (!SqlLambdaParams(parenthesis, args, optionalArgumentsCount)) {
+ return {};
+ }
+ auto bodyBlock = alt.GetBlock2();
+ Token(bodyBlock.GetToken1());
+ TPosition pos(Ctx.Pos());
+ TVector<TNodePtr> exprSeq;
+ for (auto& arg: args) {
+ arg.Name = PushNamedAtom(arg.Pos, arg.Name);
+ }
+ bool ret = false;
+ TColumnRefScope scope(Ctx, EColumnRefState::Deny);
+ scope.SetNoColumnErrContext("in lambda function");
+ if (bodyBlock.GetBlock2().HasAlt1()) {
+ ret = SqlLambdaExprBody(Ctx, bodyBlock.GetBlock2().GetAlt1().GetBlock1().GetRule_expr2(), exprSeq);
+ } else {
+ ret = SqlLambdaExprBody(Ctx, bodyBlock.GetBlock2().GetAlt2().GetBlock1().GetRule_lambda_body2(), exprSeq);
+ }
+
+ TVector<TString> argNames;
+ for (const auto& arg : args) {
+ argNames.push_back(arg.Name);
+ PopNamedNode(arg.Name);
+ }
+ if (!ret) {
+ return {};
+ }
+
+ auto lambdaNode = BuildSqlLambda(pos, std::move(argNames), std::move(exprSeq));
+ if (optionalArgumentsCount > 0) {
+ lambdaNode = new TCallNodeImpl(pos, "WithOptionalArgs", {
+ lambdaNode,
+ BuildQuotedAtom(pos, ToString(optionalArgumentsCount), TNodeFlags::Default)
+ });
+ }
+
+ return lambdaNode;
+}
+
+TNodePtr TSqlExpression::CastRule(const TRule_cast_expr& rule) {
+ Ctx.IncrementMonCounter("sql_features", "Cast");
+ const auto& alt = rule;
+ Token(alt.GetToken1());
+ TPosition pos(Ctx.Pos());
+ TSqlExpression expr(Ctx, Mode);
+ auto exprNode = expr.Build(rule.GetRule_expr3());
+ if (!exprNode) {
+ return {};
+ }
+ auto type = TypeNodeOrBind(rule.GetRule_type_name_or_bind5());
+ if (!type) {
+ return {};
+ }
+ return new TCallNodeImpl(pos, "SafeCast", {exprNode, type});
+}
+
+TNodePtr TSqlExpression::BitCastRule(const TRule_bitcast_expr& rule) {
+ Ctx.IncrementMonCounter("sql_features", "BitCast");
+ const auto& alt = rule;
+ Token(alt.GetToken1());
+ TPosition pos(Ctx.Pos());
+ TSqlExpression expr(Ctx, Mode);
+ auto exprNode = expr.Build(rule.GetRule_expr3());
+ if (!exprNode) {
+ return {};
+ }
+ auto type = TypeSimple(rule.GetRule_type_name_simple5(), true);
+ if (!type) {
+ return {};
+ }
+ return new TCallNodeImpl(pos, "BitCast", {exprNode, type});
+}
+
+TNodePtr TSqlExpression::ExistsRule(const TRule_exists_expr& rule) {
+ Ctx.IncrementMonCounter("sql_features", "Exists");
+
+ TPosition pos;
+ TSourcePtr source;
+ Token(rule.GetToken2());
+ switch (rule.GetBlock3().Alt_case()) {
+ case TRule_exists_expr::TBlock3::kAlt1: {
+ const auto& alt = rule.GetBlock3().GetAlt1().GetRule_select_stmt1();
+ TSqlSelect select(Ctx, Mode);
+ source = select.Build(alt, pos);
+ break;
+ }
+ case TRule_exists_expr::TBlock3::kAlt2: {
+ const auto& alt = rule.GetBlock3().GetAlt2().GetRule_values_stmt1();
+ TSqlValues values(Ctx, Mode);
+ source = values.Build(alt, pos);
+ break;
+ }
+ default:
+ AltNotImplemented("exists_expr", rule.GetBlock3());
+ }
+
+ if (!source) {
+ Ctx.IncrementMonCounter("sql_errors", "BadSource");
+ return nullptr;
+ }
+ const bool checkExist = true;
+ return BuildBuiltinFunc(Ctx, Ctx.Pos(), "ListHasItems", {BuildSourceNode(pos, std::move(source), checkExist)});
+}
+
+TNodePtr TSqlExpression::CaseRule(const TRule_case_expr& rule) {
+ // case_expr: CASE expr? when_expr+ (ELSE expr)? END;
+ // when_expr: WHEN expr THEN expr;
+ Ctx.IncrementMonCounter("sql_features", "Case");
+ const auto& alt = rule;
+ Token(alt.GetToken1());
+ TNodePtr elseExpr;
+ if (alt.HasBlock4()) {
+ Token(alt.GetBlock4().GetToken1());
+ TSqlExpression expr(Ctx, Mode);
+ elseExpr = expr.Build(alt.GetBlock4().GetRule_expr2());
+ } else {
+ Ctx.IncrementMonCounter("sql_errors", "ElseIsRequired");
+ Error() << "ELSE is required";
+ return {};
+ }
+
+ TNodePtr caseExpr;
+ if (alt.HasBlock2()) {
+ TSqlExpression expr(Ctx, Mode);
+ caseExpr = expr.Build(alt.GetBlock2().GetRule_expr1());
+ if (!caseExpr) {
+ return {};
+ }
+ }
+
+ TVector<TCaseBranch> branches;
+ for (size_t i = 0; i < alt.Block3Size(); ++i) {
+ branches.emplace_back();
+ const auto& block = alt.GetBlock3(i).GetRule_when_expr1();
+ Token(block.GetToken1());
+ TSqlExpression condExpr(Ctx, Mode);
+ branches.back().Pred = condExpr.Build(block.GetRule_expr2());
+ if (caseExpr) {
+ branches.back().Pred = BuildBinaryOp(Ctx, Ctx.Pos(), "==", caseExpr, branches.back().Pred);
+ }
+ if (!branches.back().Pred) {
+ return {};
+ }
+ Token(block.GetToken3());
+ TSqlExpression thenExpr(Ctx, Mode);
+ branches.back().Value = thenExpr.Build(block.GetRule_expr4());
+ if (!branches.back().Value) {
+ return {};
+ }
+ }
+ auto final = ReduceCaseBranches(branches.begin(), branches.end());
+ return BuildBuiltinFunc(Ctx, Ctx.Pos(), "If", { final.Pred, final.Value, elseExpr });
+}
+
+TMaybe<TExprOrIdent> TSqlExpression::AtomExpr(const TRule_atom_expr& node, const TTrailingQuestions& tail) {
+ // atom_expr:
+ // literal_value
+ // | bind_parameter
+ // | lambda
+ // | cast_expr
+ // | exists_expr
+ // | case_expr
+ // | an_id_or_type NAMESPACE (id_or_type | STRING_VALUE)
+ // | value_constructor
+ // | bitcast_expr
+ // | list_literal
+ // | dict_literal
+ // | struct_literal
+ // ;
+ if (node.Alt_case() != TRule_atom_expr::kAltAtomExpr2 && tail.Count) {
+ UnexpectedQuestionToken(tail);
+ return {};
+ }
+ MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (node.Alt_case() == TRule_atom_expr::kAltAtomExpr3);
+ TExprOrIdent result;
+ switch (node.Alt_case()) {
+ case TRule_atom_expr::kAltAtomExpr1:
+ Ctx.IncrementMonCounter("sql_features", "LiteralExpr");
+ return LiteralExpr(node.GetAlt_atom_expr1().GetRule_literal_value1());
+ case TRule_atom_expr::kAltAtomExpr2:
+ result.Expr = BindParameterRule(node.GetAlt_atom_expr2().GetRule_bind_parameter1(), tail);
+ break;
+ case TRule_atom_expr::kAltAtomExpr3:
+ result.Expr = LambdaRule(node.GetAlt_atom_expr3().GetRule_lambda1());
+ break;
+ case TRule_atom_expr::kAltAtomExpr4:
+ result.Expr = CastRule(node.GetAlt_atom_expr4().GetRule_cast_expr1());
+ break;
+ case TRule_atom_expr::kAltAtomExpr5:
+ result.Expr = ExistsRule(node.GetAlt_atom_expr5().GetRule_exists_expr1());
+ break;
+ case TRule_atom_expr::kAltAtomExpr6:
+ result.Expr = CaseRule(node.GetAlt_atom_expr6().GetRule_case_expr1());
+ break;
+ case TRule_atom_expr::kAltAtomExpr7: {
+ const auto& alt = node.GetAlt_atom_expr7();
+ TString module(Id(alt.GetRule_an_id_or_type1(), *this));
+ TPosition pos(Ctx.Pos());
+ TString name;
+ switch (alt.GetBlock3().Alt_case()) {
+ case TRule_atom_expr::TAlt7::TBlock3::kAlt1:
+ name = Id(alt.GetBlock3().GetAlt1().GetRule_id_or_type1(), *this);
+ break;
+ case TRule_atom_expr::TAlt7::TBlock3::kAlt2: {
+ name = Token(alt.GetBlock3().GetAlt2().GetToken1());
+ if (Ctx.AnsiQuotedIdentifiers && name.StartsWith('"')) {
+ // same as previous case
+ name = IdContentFromString(Ctx, name);
+ } else {
+ module = "@" + module;
+ }
+ break;
+ }
+ default:
+ Y_FAIL("Unsigned number: you should change implementation according to grammar changes");
+ }
+ result.Expr = BuildCallable(pos, module, name, {});
+ break;
+ }
+ case TRule_atom_expr::kAltAtomExpr8: {
+ result.Expr = ValueConstructor(node.GetAlt_atom_expr8().GetRule_value_constructor1());
+ break;
+ }
+ case TRule_atom_expr::kAltAtomExpr9:
+ result.Expr = BitCastRule(node.GetAlt_atom_expr9().GetRule_bitcast_expr1());
+ break;
+ case TRule_atom_expr::kAltAtomExpr10:
+ result.Expr = ListLiteral(node.GetAlt_atom_expr10().GetRule_list_literal1());
+ break;
+ case TRule_atom_expr::kAltAtomExpr11:
+ result.Expr = DictLiteral(node.GetAlt_atom_expr11().GetRule_dict_literal1());
+ break;
+ case TRule_atom_expr::kAltAtomExpr12:
+ result.Expr = StructLiteral(node.GetAlt_atom_expr12().GetRule_struct_literal1());
+ break;
+ default:
+ AltNotImplemented("atom_expr", node);
+ }
+ if (!result.Expr) {
+ return {};
+ }
+ return result;
+}
+
+TMaybe<TExprOrIdent> TSqlExpression::InAtomExpr(const TRule_in_atom_expr& node, const TTrailingQuestions& tail) {
+ // in_atom_expr:
+ // literal_value
+ // | bind_parameter
+ // | lambda
+ // | cast_expr
+ // | case_expr
+ // | an_id_or_type NAMESPACE (id_or_type | STRING_VALUE)
+ // | LPAREN select_stmt RPAREN
+ // | value_constructor
+ // | bitcast_expr
+ // | list_literal
+ // | dict_literal
+ // | struct_literal
+ // ;
+ if (node.Alt_case() != TRule_in_atom_expr::kAltInAtomExpr2 && tail.Count) {
+ UnexpectedQuestionToken(tail);
+ return {};
+ }
+ TExprOrIdent result;
+ switch (node.Alt_case()) {
+ case TRule_in_atom_expr::kAltInAtomExpr1:
+ Ctx.IncrementMonCounter("sql_features", "LiteralExpr");
+ return LiteralExpr(node.GetAlt_in_atom_expr1().GetRule_literal_value1());
+ case TRule_in_atom_expr::kAltInAtomExpr2:
+ result.Expr = BindParameterRule(node.GetAlt_in_atom_expr2().GetRule_bind_parameter1(), tail);
+ break;
+ case TRule_in_atom_expr::kAltInAtomExpr3:
+ result.Expr = LambdaRule(node.GetAlt_in_atom_expr3().GetRule_lambda1());
+ break;
+ case TRule_in_atom_expr::kAltInAtomExpr4:
+ result.Expr = CastRule(node.GetAlt_in_atom_expr4().GetRule_cast_expr1());
+ break;
+ case TRule_in_atom_expr::kAltInAtomExpr5:
+ result.Expr = CaseRule(node.GetAlt_in_atom_expr5().GetRule_case_expr1());
+ break;
+ case TRule_in_atom_expr::kAltInAtomExpr6: {
+ const auto& alt = node.GetAlt_in_atom_expr6();
+ TString module(Id(alt.GetRule_an_id_or_type1(), *this));
+ TPosition pos(Ctx.Pos());
+ TString name;
+ switch (alt.GetBlock3().Alt_case()) {
+ case TRule_in_atom_expr::TAlt6::TBlock3::kAlt1:
+ name = Id(alt.GetBlock3().GetAlt1().GetRule_id_or_type1(), *this);
+ break;
+ case TRule_in_atom_expr::TAlt6::TBlock3::kAlt2: {
+ name = Token(alt.GetBlock3().GetAlt2().GetToken1());
+ if (Ctx.AnsiQuotedIdentifiers && name.StartsWith('"')) {
+ // same as previous case
+ name = IdContentFromString(Ctx, name);
+ } else {
+ module = "@" + module;
+ }
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ result.Expr = BuildCallable(pos, module, name, {});
+ break;
+ }
+ case TRule_in_atom_expr::kAltInAtomExpr7: {
+ Token(node.GetAlt_in_atom_expr7().GetToken1());
+ // reset column reference scope (select will reenable it where needed)
+ TColumnRefScope scope(Ctx, EColumnRefState::Deny);
+ TSqlSelect select(Ctx, Mode);
+ TPosition pos;
+ auto source = select.Build(node.GetAlt_in_atom_expr7().GetRule_select_stmt2(), pos);
+ if (!source) {
+ Ctx.IncrementMonCounter("sql_errors", "BadSource");
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_features", "InSubquery");
+ const auto alias = Ctx.MakeName("subquerynode");
+ const auto ref = Ctx.MakeName("subquery");
+ auto& blocks = Ctx.GetCurrentBlocks();
+ blocks.push_back(BuildSubquery(std::move(source), alias, Mode == NSQLTranslation::ESqlMode::SUBQUERY, -1, Ctx.Scoped));
+ blocks.back()->SetLabel(ref);
+ result.Expr = BuildSubqueryRef(blocks.back(), ref, -1);
+ break;
+ }
+ case TRule_in_atom_expr::kAltInAtomExpr8: {
+ result.Expr = ValueConstructor(node.GetAlt_in_atom_expr8().GetRule_value_constructor1());
+ break;
+ }
+ case TRule_in_atom_expr::kAltInAtomExpr9:
+ result.Expr = BitCastRule(node.GetAlt_in_atom_expr9().GetRule_bitcast_expr1());
+ break;
+ case TRule_in_atom_expr::kAltInAtomExpr10:
+ result.Expr = ListLiteral(node.GetAlt_in_atom_expr10().GetRule_list_literal1());
+ break;
+ case TRule_in_atom_expr::kAltInAtomExpr11:
+ result.Expr = DictLiteral(node.GetAlt_in_atom_expr11().GetRule_dict_literal1());
+ break;
+ case TRule_in_atom_expr::kAltInAtomExpr12:
+ result.Expr = StructLiteral(node.GetAlt_in_atom_expr12().GetRule_struct_literal1());
+ break;
+ default:
+ AltNotImplemented("in_atom_expr", node);
+ }
+ if (!result.Expr) {
+ return {};
+ }
+ return result;
+}
+
+bool TSqlExpression::SqlLambdaParams(const TNodePtr& node, TVector<TSymbolNameWithPos>& args, ui32& optionalArgumentsCount) {
+ args.clear();
+ optionalArgumentsCount = 0;
+ auto errMsg = TStringBuf("Invalid lambda arguments syntax. Lambda arguments should start with '$' as named value.");
+ auto tupleNodePtr = dynamic_cast<TTupleNode*>(node.Get());
+ if (!tupleNodePtr) {
+ Ctx.Error(node->GetPos()) << errMsg;
+ return false;
+ }
+ THashSet<TString> dupArgsChecker;
+ for (const auto& argPtr: tupleNodePtr->Elements()) {
+ auto contentPtr = argPtr->GetAtomContent();
+ if (!contentPtr || !contentPtr->StartsWith("$")) {
+ Ctx.Error(argPtr->GetPos()) << errMsg;
+ return false;
+ }
+ if (argPtr->IsOptionalArg()) {
+ ++optionalArgumentsCount;
+ } else if (optionalArgumentsCount > 0) {
+ Ctx.Error(argPtr->GetPos()) << "Non-optional argument can not follow optional one";
+ return false;
+ }
+
+ if (!IsAnonymousName(*contentPtr) && !dupArgsChecker.insert(*contentPtr).second) {
+ Ctx.Error(argPtr->GetPos()) << "Duplicate lambda argument parametr: '" << *contentPtr << "'.";
+ return false;
+ }
+ args.push_back(TSymbolNameWithPos{*contentPtr, argPtr->GetPos()});
+ }
+ return true;
+}
+
+bool TSqlExpression::SqlLambdaExprBody(TContext& ctx, const TRule_expr& node, TVector<TNodePtr>& exprSeq) {
+ TSqlExpression expr(ctx, ctx.Settings.Mode);
+ TNodePtr nodeExpr = expr.Build(node);
+ if (!nodeExpr) {
+ return false;
+ }
+ exprSeq.push_back(nodeExpr);
+ return true;
+}
+
+bool TSqlExpression::SqlLambdaExprBody(TContext& ctx, const TRule_lambda_body& node, TVector<TNodePtr>& exprSeq) {
+ TSqlExpression expr(ctx, ctx.Settings.Mode);
+ TVector<TString> localNames;
+ bool hasError = false;
+ for (auto& block: node.GetBlock2()) {
+ const auto& rule = block.GetRule_lambda_stmt1();
+ switch (rule.Alt_case()) {
+ case TRule_lambda_stmt::kAltLambdaStmt1: {
+ TVector<TSymbolNameWithPos> names;
+ auto nodeExpr = NamedNode(rule.GetAlt_lambda_stmt1().GetRule_named_nodes_stmt1(), names);
+ if (!nodeExpr) {
+ hasError = true;
+ continue;
+ } else if (nodeExpr->GetSource()) {
+ ctx.Error() << "SELECT is not supported inside lambda body";
+ hasError = true;
+ continue;
+ }
+ if (names.size() > 1) {
+ auto ref = ctx.MakeName("tie");
+ exprSeq.push_back(nodeExpr->Y("EnsureTupleSize", nodeExpr, nodeExpr->Q(ToString(names.size()))));
+ exprSeq.back()->SetLabel(ref);
+ for (size_t i = 0; i < names.size(); ++i) {
+ TNodePtr nthExpr = nodeExpr->Y("Nth", ref, nodeExpr->Q(ToString(i)));
+ names[i].Name = PushNamedAtom(names[i].Pos, names[i].Name);
+ nthExpr->SetLabel(names[i].Name);
+ localNames.push_back(names[i].Name);
+ exprSeq.push_back(nthExpr);
+ }
+ } else {
+ auto& symbol = names.front();
+ symbol.Name = PushNamedAtom(symbol.Pos, symbol.Name);
+ nodeExpr->SetLabel(symbol.Name);
+ localNames.push_back(symbol.Name);
+ exprSeq.push_back(nodeExpr);
+ }
+ break;
+ }
+ case TRule_lambda_stmt::kAltLambdaStmt2: {
+ if (!ImportStatement(rule.GetAlt_lambda_stmt2().GetRule_import_stmt1(), &localNames)) {
+ hasError = true;
+ }
+ break;
+ }
+ default:
+ Y_FAIL("SampleClause: does not correspond to grammar changes");
+ }
+ }
+
+ TNodePtr nodeExpr;
+ if (!hasError) {
+ nodeExpr = expr.Build(node.GetRule_expr4());
+ }
+
+ for (const auto& name : localNames) {
+ PopNamedNode(name);
+ }
+
+ if (!nodeExpr) {
+ return false;
+ }
+ exprSeq.push_back(nodeExpr);
+ return true;
+}
+
+TNodePtr TSqlExpression::SubExpr(const TRule_con_subexpr& node, const TTrailingQuestions& tail) {
+ // con_subexpr: unary_subexpr | unary_op unary_subexpr;
+ switch (node.Alt_case()) {
+ case TRule_con_subexpr::kAltConSubexpr1:
+ return UnaryExpr(node.GetAlt_con_subexpr1().GetRule_unary_subexpr1(), tail);
+ case TRule_con_subexpr::kAltConSubexpr2: {
+ MaybeUnnamedSmartParenOnTop = false;
+ Ctx.IncrementMonCounter("sql_features", "UnaryOperation");
+ TString opName;
+ auto token = node.GetAlt_con_subexpr2().GetRule_unary_op1().GetToken1();
+ Token(token);
+ TPosition pos(Ctx.Pos());
+ switch (token.GetId()) {
+ case SQLv1LexerTokens::TOKEN_NOT: opName = "Not"; break;
+ case SQLv1LexerTokens::TOKEN_PLUS: opName = "Plus"; break;
+ case SQLv1LexerTokens::TOKEN_MINUS: opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMinus" : "Minus"; break;
+ case SQLv1LexerTokens::TOKEN_TILDA: opName = "BitNot"; break;
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnsupportedUnaryOperation");
+ Error() << "Unsupported unary operation: " << token.GetValue();
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_unary_operations", opName);
+ auto expr = UnaryExpr(node.GetAlt_con_subexpr2().GetRule_unary_subexpr2(), tail);
+ return expr ? expr->ApplyUnaryOp(Ctx, pos, opName) : expr;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ return nullptr;
+}
+
+TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQuestions& tail) {
+ // xor_subexpr: eq_subexpr cond_expr?;
+ MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && !node.HasBlock2();
+ TNodePtr res(SubExpr(node.GetRule_eq_subexpr1(), node.HasBlock2() ? TTrailingQuestions{} : tail));
+ if (!res) {
+ return {};
+ }
+ TPosition pos(Ctx.Pos());
+ if (node.HasBlock2()) {
+ auto cond = node.GetBlock2().GetRule_cond_expr1();
+ switch (cond.Alt_case()) {
+ case TRule_cond_expr::kAltCondExpr1: {
+ const auto& matchOp = cond.GetAlt_cond_expr1();
+ const bool notMatch = matchOp.HasBlock1();
+ const TCiString& opName = Token(matchOp.GetRule_match_op2().GetToken1());
+ const auto& pattern = SubExpr(cond.GetAlt_cond_expr1().GetRule_eq_subexpr3(), matchOp.HasBlock4() ? TTrailingQuestions{} : tail);
+ if (!pattern) {
+ return {};
+ }
+ TNodePtr isMatch;
+ if (opName == "like" || opName == "ilike") {
+ const TString* escapeLiteral = nullptr;
+ TNodePtr escapeNode;
+ const auto& escaper = BuildUdf(Ctx, pos, "Re2", "PatternFromLike", {});
+ TVector<TNodePtr> escaperArgs({ escaper, pattern });
+
+ if (matchOp.HasBlock4()) {
+ const auto& escapeBlock = matchOp.GetBlock4();
+ TNodePtr escapeExpr = SubExpr(escapeBlock.GetRule_eq_subexpr2(), tail);
+ if (!escapeExpr) {
+ return {};
+ }
+ escapeLiteral = escapeExpr->GetLiteral("String");
+ escapeNode = escapeExpr;
+ if (escapeLiteral) {
+ Ctx.IncrementMonCounter("sql_features", "LikeEscape");
+ if (escapeLiteral->size() != 1) {
+ Ctx.IncrementMonCounter("sql_errors", "LikeMultiCharEscape");
+ Error() << "ESCAPE clause requires single character argument";
+ return nullptr;
+ }
+ if (escapeLiteral[0] == "%" || escapeLiteral[0] == "_" || escapeLiteral[0] == "\\") {
+ Ctx.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
+ Error() << "'%', '_' and '\\' are currently not supported in ESCAPE clause, ";
+ Error() << "please choose any other character";
+ return nullptr;
+ }
+ if (!IsAscii(escapeLiteral->front())) {
+ Ctx.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
+ Error() << "Non-ASCII symbols are not supported in ESCAPE clause, ";
+ Error() << "please choose ASCII character";
+ return nullptr;
+ }
+ escaperArgs.push_back(BuildLiteralRawString(pos, *escapeLiteral));
+ } else {
+ Ctx.IncrementMonCounter("sql_errors", "LikeNotLiteralEscape");
+ Error() << "ESCAPE clause requires String literal argument";
+ return nullptr;
+ }
+ }
+
+ auto re2options = BuildUdf(Ctx, pos, "Re2", "Options", {});
+ if (opName == "ilike") {
+ Ctx.IncrementMonCounter("sql_features", "CaseInsensitiveLike");
+ }
+ auto csModeLiteral = BuildLiteralBool(pos, opName != "ilike");
+ csModeLiteral->SetLabel("CaseSensitive");
+ auto csOption = BuildStructure(pos, { csModeLiteral });
+ auto optionsApply = new TCallNodeImpl(pos, "NamedApply", { re2options, BuildTuple(pos, {}), csOption });
+
+ const TNodePtr escapedPattern = new TCallNodeImpl(pos, "Apply", { escaperArgs });
+ auto list = new TAstListNodeImpl(pos, { escapedPattern, optionsApply });
+ auto runConfig = new TAstListNodeImpl(pos, { new TAstAtomNodeImpl(pos, "quote", 0), list });
+
+ const TNodePtr matcher = new TCallNodeImpl(pos, "AssumeStrict", { BuildUdf(Ctx, pos, "Re2", "Match", { runConfig }) });
+ isMatch = new TCallNodeImpl(pos, "Apply", { matcher, res });
+
+ bool isUtf8 = false;
+ const TString* literalPattern = pattern->GetLiteral("String");
+ if (!literalPattern) {
+ literalPattern = pattern->GetLiteral("Utf8");
+ isUtf8 = literalPattern != nullptr;
+ }
+
+ if (literalPattern) {
+ bool inEscape = false;
+ TMaybe<char> escape;
+ if (escapeLiteral) {
+ escape = escapeLiteral->front();
+ }
+
+ bool mayIgnoreCase;
+ TVector<TPatternComponent<char>> components;
+ if (isUtf8) {
+ auto splitResult = SplitPattern(UTF8ToUTF32<false>(*literalPattern), escape, inEscape);
+ for (const auto& component : splitResult) {
+ TPatternComponent<char> converted;
+ converted.IsSimple = component.IsSimple;
+ converted.Prefix = WideToUTF8(component.Prefix);
+ converted.Suffix = WideToUTF8(component.Suffix);
+ components.push_back(std::move(converted));
+ }
+ mayIgnoreCase = ToLowerUTF8(*literalPattern) == ToUpperUTF8(*literalPattern);
+ } else {
+ components = SplitPattern(*literalPattern, escape, inEscape);
+ mayIgnoreCase = WithoutAlpha(*literalPattern);
+ }
+
+ if (inEscape) {
+ Ctx.IncrementMonCounter("sql_errors", "LikeEscapeSymbolEnd");
+ Error() << "LIKE pattern should not end with escape symbol";
+ return nullptr;
+ }
+
+ if (opName == "like" || mayIgnoreCase) {
+ // TODO: expand LIKE in optimizers - we can analyze argument types there
+ YQL_ENSURE(!components.empty());
+ const auto& first = components.front();
+ if (components.size() == 1 && first.IsSimple) {
+ // no '%'s and '_'s in pattern
+ YQL_ENSURE(first.Prefix == first.Suffix);
+ isMatch = BuildBinaryOp(Ctx, pos, "==", res, BuildLiteralRawString(pos, first.Suffix, isUtf8));
+ } else if (!first.Prefix.empty()) {
+ const TString& prefix = first.Prefix;
+ TNodePtr prefixMatch;
+ if (Ctx.EmitStartsWith) {
+ prefixMatch = BuildBinaryOp(Ctx, pos, "StartsWith", res, BuildLiteralRawString(pos, prefix, isUtf8));
+ } else {
+ prefixMatch = BuildBinaryOp(Ctx, pos, ">=", res, BuildLiteralRawString(pos, prefix, isUtf8));
+ auto upperBound = isUtf8 ? NextValidUtf8(prefix) : NextLexicographicString(prefix);
+ if (upperBound) {
+ prefixMatch = BuildBinaryOp(
+ Ctx,
+ pos,
+ "And",
+ prefixMatch,
+ BuildBinaryOp(Ctx, pos, "<", res, BuildLiteralRawString(pos, TString(*upperBound), isUtf8))
+ );
+ }
+ }
+
+ if (Ctx.AnsiLike && first.IsSimple && components.size() == 2 && components.back().IsSimple) {
+ const TString& suffix = components.back().Suffix;
+ // 'prefix%suffix'
+ if (suffix.empty()) {
+ isMatch = prefixMatch;
+ } else {
+ // len(str) >= len(prefix) + len(suffix) && StartsWith(str, prefix) && EndsWith(str, suffix)
+ TNodePtr sizePred = BuildBinaryOp(Ctx, pos, ">=",
+ TNodePtr(new TCallNodeImpl(pos, "Size", { res })),
+ TNodePtr(new TLiteralNumberNode<ui32>(pos, "Uint32", ToString(prefix.size() + suffix.size()))));
+ TNodePtr suffixMatch = BuildBinaryOp(Ctx, pos, "EndsWith", res, BuildLiteralRawString(pos, suffix, isUtf8));
+ isMatch = new TCallNodeImpl(pos, "And", {
+ sizePred,
+ prefixMatch,
+ suffixMatch
+ });
+ }
+ } else {
+ isMatch = BuildBinaryOp(Ctx, pos, "And", prefixMatch, isMatch);
+ }
+ } else if (Ctx.AnsiLike && AllOf(components, [](const auto& comp) { return comp.IsSimple; })) {
+ YQL_ENSURE(first.Prefix.empty());
+ if (components.size() == 3 && components.back().Prefix.empty()) {
+ // '%foo%'
+ YQL_ENSURE(!components[1].Prefix.empty());
+ isMatch = BuildBinaryOp(Ctx, pos, "StringContains", res, BuildLiteralRawString(pos, components[1].Prefix, isUtf8));
+ } else if (components.size() == 2) {
+ // '%foo'
+ isMatch = BuildBinaryOp(Ctx, pos, "EndsWith", res, BuildLiteralRawString(pos, components[1].Prefix, isUtf8));
+ }
+ } else if (Ctx.AnsiLike && !components.back().Suffix.empty()) {
+ const TString& suffix = components.back().Suffix;
+ TNodePtr suffixMatch = BuildBinaryOp(Ctx, pos, "EndsWith", res, BuildLiteralRawString(pos, suffix, isUtf8));
+ isMatch = BuildBinaryOp(Ctx, pos, "And", suffixMatch, isMatch);
+ }
+ // TODO: more StringContains/StartsWith/EndsWith cases?
+ }
+ }
+
+ Ctx.IncrementMonCounter("sql_features", notMatch ? "NotLike" : "Like");
+
+ } else if (opName == "regexp" || opName == "rlike" || opName == "match") {
+ if (matchOp.HasBlock4()) {
+ Ctx.IncrementMonCounter("sql_errors", "RegexpEscape");
+ TString opNameUpper(opName);
+ opNameUpper.to_upper();
+ Error() << opName << " and ESCAPE clauses should not be used together";
+ return nullptr;
+ }
+
+ if (!Ctx.PragmaRegexUseRe2) {
+ Ctx.Warning(pos, TIssuesIds::CORE_LEGACY_REGEX_ENGINE) << "Legacy regex engine works incorrectly with unicode. Use PRAGMA RegexUseRe2='true';";
+ }
+
+ const auto& matcher = Ctx.PragmaRegexUseRe2 ?
+ BuildUdf(Ctx, pos, "Re2", opName == "match" ? "Match" : "Grep", {BuildTuple(pos, {pattern, BuildLiteralNull(pos)})}):
+ BuildUdf(Ctx, pos, "Pcre", opName == "match" ? "BacktrackingMatch" : "BacktrackingGrep", { pattern });
+ isMatch = new TCallNodeImpl(pos, "Apply", { matcher, res });
+ if (opName != "match") {
+ Ctx.IncrementMonCounter("sql_features", notMatch ? "NotRegexp" : "Regexp");
+ } else {
+ Ctx.IncrementMonCounter("sql_features", notMatch ? "NotMatch" : "Match");
+ }
+ } else {
+ Ctx.IncrementMonCounter("sql_errors", "UnknownMatchOp");
+ AltNotImplemented("match_op", cond);
+ return nullptr;
+ }
+ return (notMatch && isMatch) ? isMatch->ApplyUnaryOp(Ctx, pos, "Not") : isMatch;
+ }
+ case TRule_cond_expr::kAltCondExpr2: {
+ // | NOT? IN COMPACT? in_expr
+ auto altInExpr = cond.GetAlt_cond_expr2();
+ const bool notIn = altInExpr.HasBlock1();
+ auto hints = BuildTuple(pos, {});
+ bool isCompact = altInExpr.HasBlock3();
+ if (!isCompact) {
+ auto sqlHints = Ctx.PullHintForToken(Ctx.TokenPosition(altInExpr.GetToken2()));
+ isCompact = AnyOf(sqlHints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
+ }
+ if (isCompact) {
+ Ctx.IncrementMonCounter("sql_features", "IsCompactHint");
+ auto sizeHint = BuildTuple(pos, { BuildQuotedAtom(pos, "isCompact", NYql::TNodeFlags::Default) });
+ hints = BuildTuple(pos, { sizeHint });
+ }
+ TSqlExpression inSubexpr(Ctx, Mode);
+ auto inRight = inSubexpr.SqlInExpr(altInExpr.GetRule_in_expr4(), tail);
+ auto isIn = BuildBuiltinFunc(Ctx, pos, "In", {res, inRight, hints});
+ Ctx.IncrementMonCounter("sql_features", notIn ? "NotIn" : "In");
+ return (notIn && isIn) ? isIn->ApplyUnaryOp(Ctx, pos, "Not") : isIn;
+ }
+ case TRule_cond_expr::kAltCondExpr3: {
+ if (tail.Count) {
+ UnexpectedQuestionToken(tail);
+ return {};
+ }
+ auto altCase = cond.GetAlt_cond_expr3().GetBlock1().Alt_case();
+ const bool notNoll =
+ altCase == TRule_cond_expr::TAlt3::TBlock1::kAlt2 ||
+ altCase == TRule_cond_expr::TAlt3::TBlock1::kAlt4
+ ;
+
+ if (altCase == TRule_cond_expr::TAlt3::TBlock1::kAlt4 &&
+ !cond.GetAlt_cond_expr3().GetBlock1().GetAlt4().HasBlock1())
+ {
+ Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_MISSING_IS_BEFORE_NOT_NULL) << "Missing IS keyword before NOT NULL";
+ }
+
+ auto isNull = BuildIsNullOp(pos, res);
+ Ctx.IncrementMonCounter("sql_features", notNoll ? "NotNull" : "Null");
+ return (notNoll && isNull) ? isNull->ApplyUnaryOp(Ctx, pos, "Not") : isNull;
+ }
+ case TRule_cond_expr::kAltCondExpr4: {
+ auto alt = cond.GetAlt_cond_expr4();
+ if (alt.HasBlock1()) {
+ Ctx.IncrementMonCounter("sql_features", "NotBetween");
+ return BuildBinaryOp(
+ Ctx,
+ pos,
+ "Or",
+ BuildBinaryOp(Ctx, pos, "<", res, SubExpr(alt.GetRule_eq_subexpr3(), {})),
+ BuildBinaryOp(Ctx, pos, ">", res, SubExpr(alt.GetRule_eq_subexpr5(), tail))
+ );
+ } else {
+ Ctx.IncrementMonCounter("sql_features", "Between");
+ return BuildBinaryOp(
+ Ctx,
+ pos,
+ "And",
+ BuildBinaryOp(Ctx, pos, ">=", res, SubExpr(alt.GetRule_eq_subexpr3(), {})),
+ BuildBinaryOp(Ctx, pos, "<=", res, SubExpr(alt.GetRule_eq_subexpr5(), tail))
+ );
+ }
+ }
+ case TRule_cond_expr::kAltCondExpr5: {
+ auto alt = cond.GetAlt_cond_expr5();
+ auto getNode = [](const TRule_cond_expr::TAlt5::TBlock1& b) -> const TRule_eq_subexpr& { return b.GetRule_eq_subexpr2(); };
+ return BinOpList(node.GetRule_eq_subexpr1(), getNode, alt.GetBlock1().begin(), alt.GetBlock1().end(), tail);
+ }
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownConditionExpr");
+ AltNotImplemented("cond_expr", cond);
+ return nullptr;
+ }
+ }
+ return res;
+}
+
+TNodePtr TSqlExpression::BinOperList(const TString& opName, TVector<TNodePtr>::const_iterator begin, TVector<TNodePtr>::const_iterator end) const {
+ TPosition pos(Ctx.Pos());
+ const size_t opCount = end - begin;
+ Y_VERIFY_DEBUG(opCount >= 2);
+ if (opCount == 2) {
+ return BuildBinaryOp(Ctx, pos, opName, *begin, *(begin+1));
+ } if (opCount == 3) {
+ return BuildBinaryOp(Ctx, pos, opName, BuildBinaryOp(Ctx, pos, opName, *begin, *(begin+1)), *(begin+2));
+ } else {
+ auto mid = begin + opCount / 2;
+ return BuildBinaryOp(Ctx, pos, opName, BinOperList(opName, begin, mid), BinOperList(opName, mid, end));
+ }
+}
+
+TSqlExpression::TCaseBranch TSqlExpression::ReduceCaseBranches(TVector<TCaseBranch>::const_iterator begin, TVector<TCaseBranch>::const_iterator end) const {
+ YQL_ENSURE(begin < end);
+ const size_t branchCount = end - begin;
+ if (branchCount == 1) {
+ return *begin;
+ }
+
+ auto mid = begin + branchCount / 2;
+ auto left = ReduceCaseBranches(begin, mid);
+ auto right = ReduceCaseBranches(mid, end);
+
+ TVector<TNodePtr> preds;
+ preds.reserve(branchCount);
+ for (auto it = begin; it != end; ++it) {
+ preds.push_back(it->Pred);
+ }
+
+ TCaseBranch result;
+ result.Pred = new TCallNodeImpl(Ctx.Pos(), "Or", preds);
+ result.Value = BuildBuiltinFunc(Ctx, Ctx.Pos(), "If", { left.Pred, left.Value, right.Value });
+ return result;
+}
+
+template <typename TNode, typename TGetNode, typename TIter>
+TNodePtr TSqlExpression::BinOper(const TString& opName, const TNode& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
+ if (begin == end) {
+ return SubExpr(node, tail);
+ }
+ // can't have top level smart_parenthesis node if any binary operation is present
+ MaybeUnnamedSmartParenOnTop = false;
+ Ctx.IncrementMonCounter("sql_binary_operations", opName);
+ const size_t listSize = end - begin;
+ TVector<TNodePtr> nodes;
+ nodes.reserve(1 + listSize);
+ nodes.push_back(SubExpr(node, {}));
+ for (; begin != end; ++begin) {
+ nodes.push_back(SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
+ }
+ return BinOperList(opName, nodes.begin(), nodes.end());
+}
+
+template <typename TNode, typename TGetNode, typename TIter>
+TNodePtr TSqlExpression::BinOpList(const TNode& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
+ MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (begin == end);
+ TNodePtr partialResult = SubExpr(node, (begin == end) ? tail : TTrailingQuestions{});
+ while (begin != end) {
+ Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
+ Token(begin->GetToken1());
+ TPosition pos(Ctx.Pos());
+ TString opName;
+ auto tokenId = begin->GetToken1().GetId();
+ switch (tokenId) {
+ case SQLv1LexerTokens::TOKEN_LESS:
+ Ctx.IncrementMonCounter("sql_binary_operations", "Less");
+ opName = "<";
+ break;
+ case SQLv1LexerTokens::TOKEN_LESS_OR_EQ:
+ opName = "<=";
+ Ctx.IncrementMonCounter("sql_binary_operations", "LessOrEq");
+ break;
+ case SQLv1LexerTokens::TOKEN_GREATER:
+ opName = ">";
+ Ctx.IncrementMonCounter("sql_binary_operations", "Greater");
+ break;
+ case SQLv1LexerTokens::TOKEN_GREATER_OR_EQ:
+ opName = ">=";
+ Ctx.IncrementMonCounter("sql_binary_operations", "GreaterOrEq");
+ break;
+ case SQLv1LexerTokens::TOKEN_PLUS:
+ opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedAdd" : "+MayWarn";
+ Ctx.IncrementMonCounter("sql_binary_operations", "Plus");
+ break;
+ case SQLv1LexerTokens::TOKEN_MINUS:
+ opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedSub" : "-MayWarn";
+ Ctx.IncrementMonCounter("sql_binary_operations", "Minus");
+ break;
+ case SQLv1LexerTokens::TOKEN_ASTERISK:
+ opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMul" : "*MayWarn";
+ Ctx.IncrementMonCounter("sql_binary_operations", "Multiply");
+ break;
+ case SQLv1LexerTokens::TOKEN_SLASH:
+ opName = "/MayWarn";
+ Ctx.IncrementMonCounter("sql_binary_operations", "Divide");
+ if (!Ctx.Scoped->PragmaClassicDivision && partialResult) {
+ partialResult = new TCallNodeImpl(pos, "SafeCast", {std::move(partialResult), BuildDataType(pos, "Double")});
+ } else if (Ctx.Scoped->PragmaCheckedOps) {
+ opName = "CheckedDiv";
+ }
+ break;
+ case SQLv1LexerTokens::TOKEN_PERCENT:
+ opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMod" : "%MayWarn";
+ Ctx.IncrementMonCounter("sql_binary_operations", "Mod");
+ break;
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnsupportedBinaryOperation");
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return nullptr;
+ }
+
+ partialResult = BuildBinaryOp(Ctx, pos, opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
+ ++begin;
+ }
+
+ return partialResult;
+}
+
+template <typename TGetNode, typename TIter>
+TNodePtr TSqlExpression::BinOpList(const TRule_bit_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
+ MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (begin == end);
+ TNodePtr partialResult = SubExpr(node, (begin == end) ? tail : TTrailingQuestions{});
+ while (begin != end) {
+ Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
+ TString opName;
+ switch (begin->GetBlock1().Alt_case()) {
+ case TRule_neq_subexpr_TBlock2_TBlock1::kAlt1: {
+ Token(begin->GetBlock1().GetAlt1().GetToken1());
+ auto tokenId = begin->GetBlock1().GetAlt1().GetToken1().GetId();
+ if (tokenId != SQLv1LexerTokens::TOKEN_SHIFT_LEFT) {
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return {};
+ }
+ opName = "ShiftLeft";
+ Ctx.IncrementMonCounter("sql_binary_operations", "ShiftLeft");
+ break;
+ }
+ case TRule_neq_subexpr_TBlock2_TBlock1::kAlt2: {
+ opName = "ShiftRight";
+ Ctx.IncrementMonCounter("sql_binary_operations", "ShiftRight");
+ break;
+ }
+ case TRule_neq_subexpr_TBlock2_TBlock1::kAlt3: {
+ Token(begin->GetBlock1().GetAlt3().GetToken1());
+ auto tokenId = begin->GetBlock1().GetAlt3().GetToken1().GetId();
+ if (tokenId != SQLv1LexerTokens::TOKEN_ROT_LEFT) {
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return {};
+ }
+ opName = "RotLeft";
+ Ctx.IncrementMonCounter("sql_binary_operations", "RotLeft");
+ break;
+ }
+ case TRule_neq_subexpr_TBlock2_TBlock1::kAlt4: {
+ opName = "RotRight";
+ Ctx.IncrementMonCounter("sql_binary_operations", "RotRight");
+ break;
+ }
+ case TRule_neq_subexpr_TBlock2_TBlock1::kAlt5: {
+ Token(begin->GetBlock1().GetAlt5().GetToken1());
+ auto tokenId = begin->GetBlock1().GetAlt5().GetToken1().GetId();
+ if (tokenId != SQLv1LexerTokens::TOKEN_AMPERSAND) {
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return {};
+ }
+ opName = "BitAnd";
+ Ctx.IncrementMonCounter("sql_binary_operations", "BitAnd");
+ break;
+ }
+ case TRule_neq_subexpr_TBlock2_TBlock1::kAlt6: {
+ Token(begin->GetBlock1().GetAlt6().GetToken1());
+ auto tokenId = begin->GetBlock1().GetAlt6().GetToken1().GetId();
+ if (tokenId != SQLv1LexerTokens::TOKEN_PIPE) {
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return {};
+ }
+ opName = "BitOr";
+ Ctx.IncrementMonCounter("sql_binary_operations", "BitOr");
+ break;
+ }
+ case TRule_neq_subexpr_TBlock2_TBlock1::kAlt7: {
+ Token(begin->GetBlock1().GetAlt7().GetToken1());
+ auto tokenId = begin->GetBlock1().GetAlt7().GetToken1().GetId();
+ if (tokenId != SQLv1LexerTokens::TOKEN_CARET) {
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return {};
+ }
+ opName = "BitXor";
+ Ctx.IncrementMonCounter("sql_binary_operations", "BitXor");
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ partialResult = BuildBinaryOp(Ctx, Ctx.Pos(), opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
+ ++begin;
+ }
+
+ return partialResult;
+}
+
+template <typename TGetNode, typename TIter>
+TNodePtr TSqlExpression::BinOpList(const TRule_eq_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
+ MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (begin == end);
+ TNodePtr partialResult = SubExpr(node, (begin == end) ? tail : TTrailingQuestions{});
+ while (begin != end) {
+ Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
+ TString opName;
+ switch (begin->GetBlock1().Alt_case()) {
+ case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt1: {
+ Token(begin->GetBlock1().GetAlt1().GetToken1());
+ auto tokenId = begin->GetBlock1().GetAlt1().GetToken1().GetId();
+ if (tokenId != SQLv1LexerTokens::TOKEN_EQUALS) {
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_binary_operations", "Equals");
+ opName = "==";
+ break;
+ }
+ case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt2: {
+ Token(begin->GetBlock1().GetAlt2().GetToken1());
+ auto tokenId = begin->GetBlock1().GetAlt2().GetToken1().GetId();
+ if (tokenId != SQLv1LexerTokens::TOKEN_EQUALS2) {
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_binary_operations", "Equals2");
+ opName = "==";
+ break;
+ }
+ case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt3: {
+ Token(begin->GetBlock1().GetAlt3().GetToken1());
+ auto tokenId = begin->GetBlock1().GetAlt3().GetToken1().GetId();
+ if (tokenId != SQLv1LexerTokens::TOKEN_NOT_EQUALS) {
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_binary_operations", "NotEquals");
+ opName = "!=";
+ break;
+ }
+ case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt4: {
+ Token(begin->GetBlock1().GetAlt4().GetToken1());
+ auto tokenId = begin->GetBlock1().GetAlt4().GetToken1().GetId();
+ if (tokenId != SQLv1LexerTokens::TOKEN_NOT_EQUALS2) {
+ Error() << "Unsupported binary operation token: " << tokenId;
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_binary_operations", "NotEquals2");
+ opName = "!=";
+ break;
+ }
+ case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt5: {
+ Token(begin->GetBlock1().GetAlt5().GetRule_distinct_from_op1().GetToken1());
+ opName = begin->GetBlock1().GetAlt5().GetRule_distinct_from_op1().HasBlock2() ? "IsNotDistinctFrom" : "IsDistinctFrom";
+ Ctx.IncrementMonCounter("sql_binary_operations", opName);
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ partialResult = BuildBinaryOp(Ctx, Ctx.Pos(), opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
+ ++begin;
+ }
+
+ return partialResult;
+}
+
+TNodePtr TSqlExpression::SqlInExpr(const TRule_in_expr& node, const TTrailingQuestions& tail) {
+ TSqlExpression expr(Ctx, Mode);
+ expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::InStatement);
+ auto result = expr.UnaryExpr(node.GetRule_in_unary_subexpr1(), tail);
+ return result;
+}
+
+TNodePtr TSqlExpression::SmartParenthesis(const TRule_smart_parenthesis& node) {
+ TVector<TNodePtr> exprs;
+ Token(node.GetToken1());
+ const TPosition pos(Ctx.Pos());
+ const bool isTuple = node.HasBlock3();
+ bool expectTuple = SmartParenthesisMode == ESmartParenthesis::InStatement;
+ EExpr mode = EExpr::Regular;
+ if (SmartParenthesisMode == ESmartParenthesis::SqlLambdaParams) {
+ mode = EExpr::SqlLambdaParams;
+ expectTuple = true;
+ }
+ if (node.HasBlock2() && !NamedExprList(node.GetBlock2().GetRule_named_expr_list1(), exprs, mode)) {
+ return {};
+ }
+
+ bool topLevelGroupBy = MaybeUnnamedSmartParenOnTop && SmartParenthesisMode == ESmartParenthesis::GroupBy;
+
+ bool hasAliases = false;
+ bool hasUnnamed = false;
+ for (const auto& expr: exprs) {
+ if (expr->GetLabel()) {
+ hasAliases = true;
+ } else {
+ hasUnnamed = true;
+ }
+ if (hasAliases && hasUnnamed && !topLevelGroupBy) {
+ Ctx.IncrementMonCounter("sql_errors", "AnonymousStructMembers");
+ Ctx.Error(pos) << "Structure does not allow anonymous members";
+ return nullptr;
+ }
+ }
+ if (exprs.size() == 1 && hasUnnamed && !isTuple && !expectTuple) {
+ return exprs.back();
+ }
+ if (topLevelGroupBy) {
+ if (isTuple) {
+ Ctx.IncrementMonCounter("sql_errors", "SimpleTupleInGroupBy");
+ Token(node.GetBlock3().GetToken1());
+ Ctx.Error() << "Unexpected trailing comma in grouping elements list";
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", "ListOfNamedNode");
+ return BuildListOfNamedNodes(pos, std::move(exprs));
+ }
+ Ctx.IncrementMonCounter("sql_features", hasUnnamed ? "SimpleTuple" : "SimpleStruct");
+ return (hasUnnamed || expectTuple || exprs.size() == 0) ? BuildTuple(pos, exprs) : BuildStructure(pos, exprs);
+}
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_expression.h b/ydb/library/yql/sql/v1/sql_expression.h
new file mode 100644
index 0000000000..a64225cfa4
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_expression.h
@@ -0,0 +1,145 @@
+#pragma once
+
+#include "sql_translation.h"
+#include <ydb/library/yql/core/yql_atom_enums.h>
+
+namespace NSQLTranslationV1 {
+
+using namespace NSQLv1Generated;
+
+class TSqlExpression: public TSqlTranslation {
+public:
+ enum class ESmartParenthesis {
+ Default,
+ GroupBy,
+ InStatement,
+ SqlLambdaParams,
+ };
+
+ TSqlExpression(TContext& ctx, NSQLTranslation::ESqlMode mode)
+ : TSqlTranslation(ctx, mode)
+ {
+ }
+
+ TNodePtr Build(const TRule_expr& node);
+
+ void SetSmartParenthesisMode(ESmartParenthesis mode) {
+ SmartParenthesisMode = mode;
+ }
+
+ void MarkAsNamed() {
+ MaybeUnnamedSmartParenOnTop = false;
+ }
+
+ TMaybe<TExprOrIdent> LiteralExpr(const TRule_literal_value& node);
+private:
+ struct TTrailingQuestions {
+ size_t Count = 0;
+ TPosition Pos;
+ };
+
+ TNodePtr BindParameterRule(const TRule_bind_parameter& rule, const TTrailingQuestions& tail);
+ TNodePtr LambdaRule(const TRule_lambda& rule);
+ TNodePtr CastRule(const TRule_cast_expr& rule);
+ TNodePtr BitCastRule(const TRule_bitcast_expr& rule);
+ TNodePtr ExistsRule(const TRule_exists_expr& rule);
+ TNodePtr CaseRule(const TRule_case_expr& rule);
+
+ TMaybe<TExprOrIdent> AtomExpr(const TRule_atom_expr& node, const TTrailingQuestions& tail);
+ TMaybe<TExprOrIdent> InAtomExpr(const TRule_in_atom_expr& node, const TTrailingQuestions& tail);
+
+ TNodePtr JsonInputArg(const TRule_json_common_args& node);
+ TNodePtr JsonPathSpecification(const TRule_jsonpath_spec& node);
+ TNodePtr JsonReturningTypeRule(const TRule_type_name_simple& node);
+ TNodePtr JsonValueCaseHandler(const TRule_json_case_handler& node, EJsonValueHandlerMode& mode);
+ void AddJsonValueCaseHandlers(const TRule_json_value& node, TVector<TNodePtr>& children);
+ void AddJsonVariable(const TRule_json_variable& node, TVector<TNodePtr>& children);
+ void AddJsonVariables(const TRule_json_variables& node, TVector<TNodePtr>& children);
+ TNodePtr JsonVariables(const TRule_json_common_args& node);
+ void AddJsonCommonArgs(const TRule_json_common_args& node, TVector<TNodePtr>& children);
+ TNodePtr JsonValueExpr(const TRule_json_value& node);
+ void AddJsonExistsHandler(const TRule_json_exists& node, TVector<TNodePtr>& children);
+ TNodePtr JsonExistsExpr(const TRule_json_exists& node);
+ EJsonQueryWrap JsonQueryWrapper(const TRule_json_query& node);
+ EJsonQueryHandler JsonQueryHandler(const TRule_json_query_handler& node);
+ TNodePtr JsonQueryExpr(const TRule_json_query& node);
+ TNodePtr JsonApiExpr(const TRule_json_api_expr& node);
+
+ template<typename TUnaryCasualExprRule>
+ TNodePtr UnaryCasualExpr(const TUnaryCasualExprRule& node, const TTrailingQuestions& tail);
+
+ template<typename TUnarySubExprRule>
+ TNodePtr UnaryExpr(const TUnarySubExprRule& node, const TTrailingQuestions& tail);
+
+ bool SqlLambdaParams(const TNodePtr& node, TVector<TSymbolNameWithPos>& args, ui32& optionalArgumentsCount);
+ bool SqlLambdaExprBody(TContext& ctx, const TRule_lambda_body& node, TVector<TNodePtr>& exprSeq);
+ bool SqlLambdaExprBody(TContext& ctx, const TRule_expr& node, TVector<TNodePtr>& exprSeq);
+
+ TNodePtr KeyExpr(const TRule_key_expr& node) {
+ TSqlExpression expr(Ctx, Mode);
+ return expr.Build(node.GetRule_expr2());
+ }
+
+ TNodePtr SubExpr(const TRule_con_subexpr& node, const TTrailingQuestions& tail);
+ TNodePtr SubExpr(const TRule_xor_subexpr& node, const TTrailingQuestions& tail);
+
+ TNodePtr SubExpr(const TRule_mul_subexpr& node, const TTrailingQuestions& tail);
+
+ TNodePtr SubExpr(const TRule_add_subexpr& node, const TTrailingQuestions& tail);
+
+ TNodePtr SubExpr(const TRule_bit_subexpr& node, const TTrailingQuestions& tail);
+
+ TNodePtr SubExpr(const TRule_neq_subexpr& node, const TTrailingQuestions& tailExternal);
+
+ TNodePtr SubExpr(const TRule_eq_subexpr& node, const TTrailingQuestions& tail);
+
+ TNodePtr SubExpr(const TRule_or_subexpr& node, const TTrailingQuestions& tail);
+
+ TNodePtr SubExpr(const TRule_and_subexpr& node, const TTrailingQuestions& tail);
+
+ template <typename TNode, typename TGetNode, typename TIter>
+ TNodePtr BinOpList(const TNode& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail);
+
+ template <typename TGetNode, typename TIter>
+ TNodePtr BinOpList(const TRule_bit_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail);
+
+ template <typename TGetNode, typename TIter>
+ TNodePtr BinOpList(const TRule_eq_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail);
+
+ TNodePtr BinOperList(const TString& opName, TVector<TNodePtr>::const_iterator begin, TVector<TNodePtr>::const_iterator end) const;
+
+ struct TCaseBranch {
+ TNodePtr Pred;
+ TNodePtr Value;
+ };
+ TCaseBranch ReduceCaseBranches(TVector<TCaseBranch>::const_iterator begin, TVector<TCaseBranch>::const_iterator end) const;
+
+ template <typename TNode, typename TGetNode, typename TIter>
+ TNodePtr BinOper(const TString& operName, const TNode& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail);
+
+ TNodePtr SqlInExpr(const TRule_in_expr& node, const TTrailingQuestions& tail);
+
+ void UnexpectedQuestionToken(const TTrailingQuestions& tail) {
+ YQL_ENSURE(tail.Count > 0);
+ Ctx.Error(tail.Pos) << "Unexpected token '?' at the end of expression";
+ }
+
+ TNodePtr SmartParenthesis(const TRule_smart_parenthesis& node);
+
+ ESmartParenthesis SmartParenthesisMode = ESmartParenthesis::Default;
+ bool MaybeUnnamedSmartParenOnTop = true;
+
+ THashMap<TString, TNodePtr> ExprShortcuts;
+};
+
+bool ChangefeedSettingsEntry(const TRule_changefeed_settings_entry& node, TSqlExpression& ctx, TChangefeedSettings& settings, bool alter);
+
+bool ChangefeedSettings(const TRule_changefeed_settings& node, TSqlExpression& ctx, TChangefeedSettings& settings, bool alter);
+
+bool CreateChangefeed(const TRule_changefeed& node, TSqlExpression& ctx, TVector<TChangefeedDescription>& changefeeds);
+
+bool Expr(TSqlExpression& sqlExpr, TVector<TNodePtr>& exprNodes, const TRule_expr& node);
+
+bool ExprList(TSqlExpression& sqlExpr, TVector<TNodePtr>& exprNodes, const TRule_expr_list& node);
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_group_by.cpp b/ydb/library/yql/sql/v1/sql_group_by.cpp
new file mode 100644
index 0000000000..d1dd439045
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_group_by.cpp
@@ -0,0 +1,471 @@
+#include "sql_group_by.h"
+#include "sql_expression.h"
+#include "source.h"
+#include <ydb/library/yql/core/yql_expr_type_annotation.h>
+
+namespace NSQLTranslationV1 {
+
+using namespace NSQLv1Generated;
+
+const TString TGroupByClause::AutogenerateNamePrefix = "group";
+
+bool TGroupByClause::Build(const TRule_group_by_clause& node) {
+ // group_by_clause: GROUP COMPACT? BY opt_set_quantifier grouping_element_list (WITH an_id)?;
+ CompactGroupBy = node.HasBlock2();
+ if (!CompactGroupBy) {
+ auto hints = Ctx.PullHintForToken(Ctx.TokenPosition(node.GetToken1()));
+ CompactGroupBy = AnyOf(hints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
+ }
+ TPosition distinctPos;
+ if (IsDistinctOptSet(node.GetRule_opt_set_quantifier4(), distinctPos)) {
+ Ctx.Error(distinctPos) << "DISTINCT is not supported in GROUP BY clause yet!";
+ Ctx.IncrementMonCounter("sql_errors", "DistinctInGroupByNotSupported");
+ return false;
+ }
+ if (!ParseList(node.GetRule_grouping_element_list5(), EGroupByFeatures::Ordinary)) {
+ return false;
+ }
+
+ if (node.HasBlock6()) {
+ TString mode = Id(node.GetBlock6().GetRule_an_id2(), *this);
+ TMaybe<TIssue> normalizeError = NormalizeName(Ctx.Pos(), mode);
+ if (!normalizeError.Empty()) {
+ Error() << normalizeError->GetMessage();
+ Ctx.IncrementMonCounter("sql_errors", "NormalizeGroupByModeError");
+ return false;
+ }
+
+ if (mode == "combine") {
+ Suffix = "Combine";
+ } else if (mode == "combinestate") {
+ Suffix = "CombineState";
+ } else if (mode == "mergestate") {
+ Suffix = "MergeState";
+ } else if (mode == "finalize") {
+ Suffix = "Finalize";
+ } else if (mode == "mergefinalize") {
+ Suffix = "MergeFinalize";
+ } else if (mode == "mergemanyfinalize") {
+ Suffix = "MergeManyFinalize";
+ } else {
+ Ctx.Error() << "Unsupported group by mode: " << mode;
+ Ctx.IncrementMonCounter("sql_errors", "GroupByModeUnknown");
+ return false;
+ }
+ }
+
+ if (!ResolveGroupByAndGrouping()) {
+ return false;
+ }
+ return true;
+}
+
+bool TGroupByClause::ParseList(const TRule_grouping_element_list& groupingListNode, EGroupByFeatures featureContext) {
+ if (!GroupingElement(groupingListNode.GetRule_grouping_element1(), featureContext)) {
+ return false;
+ }
+ for (auto b: groupingListNode.GetBlock2()) {
+ if (!GroupingElement(b.GetRule_grouping_element2(), featureContext)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+void TGroupByClause::SetFeatures(const TString& field) const {
+ Ctx.IncrementMonCounter(field, "GroupBy");
+ const auto& features = Features();
+ if (features.Test(EGroupByFeatures::Ordinary)) {
+ Ctx.IncrementMonCounter(field, "GroupByOrdinary");
+ }
+ if (features.Test(EGroupByFeatures::Expression)) {
+ Ctx.IncrementMonCounter(field, "GroupByExpression");
+ }
+ if (features.Test(EGroupByFeatures::Rollup)) {
+ Ctx.IncrementMonCounter(field, "GroupByRollup");
+ }
+ if (features.Test(EGroupByFeatures::Cube)) {
+ Ctx.IncrementMonCounter(field, "GroupByCube");
+ }
+ if (features.Test(EGroupByFeatures::GroupingSet)) {
+ Ctx.IncrementMonCounter(field, "GroupByGroupingSet");
+ }
+ if (features.Test(EGroupByFeatures::Empty)) {
+ Ctx.IncrementMonCounter(field, "GroupByEmpty");
+ }
+}
+
+TVector<TNodePtr>& TGroupByClause::Content() {
+ return GroupBySet;
+}
+
+TMap<TString, TNodePtr>& TGroupByClause::Aliases() {
+ return GroupSetContext->NodeAliases;
+}
+
+TLegacyHoppingWindowSpecPtr TGroupByClause::GetLegacyHoppingWindow() const {
+ return LegacyHoppingWindowSpec;
+}
+
+bool TGroupByClause::IsCompactGroupBy() const {
+ return CompactGroupBy;
+}
+
+TString TGroupByClause::GetSuffix() const {
+ return Suffix;
+}
+
+TMaybe<TVector<TNodePtr>> TGroupByClause::MultiplyGroupingSets(const TVector<TNodePtr>& lhs, const TVector<TNodePtr>& rhs) const {
+ TVector<TNodePtr> content;
+ for (const auto& leftNode: lhs) {
+ auto leftPtr = leftNode->ContentListPtr();
+ if (!leftPtr) {
+ // TODO: shouldn't happen
+ Ctx.Error() << "Unable to multiply grouping sets";
+ return {};
+ }
+ for (const auto& rightNode: rhs) {
+ TVector<TNodePtr> mulItem(leftPtr->begin(), leftPtr->end());
+ auto rightPtr = rightNode->ContentListPtr();
+ if (!rightPtr) {
+ // TODO: shouldn't happen
+ Ctx.Error() << "Unable to multiply grouping sets";
+ return {};
+ }
+ mulItem.insert(mulItem.end(), rightPtr->begin(), rightPtr->end());
+ content.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(mulItem)));
+ }
+ }
+ return content;
+}
+
+bool TGroupByClause::ResolveGroupByAndGrouping() {
+ auto listPos = std::find_if(GroupBySet.begin(), GroupBySet.end(), [](const TNodePtr& node) {
+ return node->ContentListPtr();
+ });
+ if (listPos == GroupBySet.end()) {
+ return true;
+ }
+ auto curContent = *(*listPos)->ContentListPtr();
+ if (listPos != GroupBySet.begin()) {
+ TVector<TNodePtr> emulate(GroupBySet.begin(), listPos);
+ TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(emulate)));
+ auto mult = MultiplyGroupingSets(emulateContent, curContent);
+ if (!mult) {
+ return false;
+ }
+ curContent = *mult;
+ }
+ for (++listPos; listPos != GroupBySet.end(); ++listPos) {
+ auto newElem = (*listPos)->ContentListPtr();
+ if (newElem) {
+ auto mult = MultiplyGroupingSets(curContent, *newElem);
+ if (!mult) {
+ return false;
+ }
+ curContent = *mult;
+ } else {
+ TVector<TNodePtr> emulate(1, *listPos);
+ TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(emulate)));
+ auto mult = MultiplyGroupingSets(curContent, emulateContent);
+ if (!mult) {
+ return false;
+ }
+ curContent = *mult;
+ }
+ }
+ TVector<TNodePtr> result(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(curContent)));
+ std::swap(result, GroupBySet);
+ return true;
+}
+
+bool TGroupByClause::GroupingElement(const TRule_grouping_element& node, EGroupByFeatures featureContext) {
+ TSourcePtr res;
+ TVector<TNodePtr> emptyContent;
+ switch (node.Alt_case()) {
+ case TRule_grouping_element::kAltGroupingElement1:
+ if (!OrdinaryGroupingSet(node.GetAlt_grouping_element1().GetRule_ordinary_grouping_set1(), featureContext)) {
+ return false;
+ }
+ Features().Set(EGroupByFeatures::Ordinary);
+ break;
+ case TRule_grouping_element::kAltGroupingElement2: {
+ TGroupByClause subClause(Ctx, Mode, GroupSetContext);
+ if (!subClause.OrdinaryGroupingSetList(node.GetAlt_grouping_element2().GetRule_rollup_list1().GetRule_ordinary_grouping_set_list3(),
+ EGroupByFeatures::Rollup))
+ {
+ return false;
+ }
+ auto& content = subClause.Content();
+ TVector<TNodePtr> collection;
+ for (auto limit = content.end(), begin = content.begin(); limit != begin; --limit) {
+ TVector<TNodePtr> grouping(begin, limit);
+ collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(grouping)));
+ }
+ collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(emptyContent)));
+ GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
+ Ctx.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByRollup" << content.size());
+ Features().Set(EGroupByFeatures::Rollup);
+ break;
+ }
+ case TRule_grouping_element::kAltGroupingElement3: {
+ TGroupByClause subClause(Ctx, Mode, GroupSetContext);
+ if (!subClause.OrdinaryGroupingSetList(node.GetAlt_grouping_element3().GetRule_cube_list1().GetRule_ordinary_grouping_set_list3(),
+ EGroupByFeatures::Cube))
+ {
+ return false;
+ }
+ auto& content = subClause.Content();
+ if (content.size() > Ctx.PragmaGroupByCubeLimit) {
+ Ctx.Error() << "GROUP BY CUBE is allowed only for " << Ctx.PragmaGroupByCubeLimit << " columns, but you use " << content.size();
+ return false;
+ }
+ TVector<TNodePtr> collection;
+ for (unsigned mask = (1 << content.size()) - 1; mask > 0; --mask) {
+ TVector<TNodePtr> grouping;
+ for (unsigned index = 0; index < content.size(); ++index) {
+ if (mask & (1 << index)) {
+ grouping.push_back(content[content.size() - index - 1]);
+ }
+ }
+ collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(grouping)));
+ }
+ collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(emptyContent)));
+ GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
+ Ctx.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByCube" << content.size());
+ Features().Set(EGroupByFeatures::Cube);
+ break;
+ }
+ case TRule_grouping_element::kAltGroupingElement4: {
+ auto listNode = node.GetAlt_grouping_element4().GetRule_grouping_sets_specification1().GetRule_grouping_element_list4();
+ TGroupByClause subClause(Ctx, Mode, GroupSetContext);
+ if (!subClause.ParseList(listNode, EGroupByFeatures::GroupingSet)) {
+ return false;
+ }
+ auto& content = subClause.Content();
+ TVector<TNodePtr> collection;
+ bool hasEmpty = false;
+ for (auto& elem: content) {
+ auto elemContent = elem->ContentListPtr();
+ if (elemContent) {
+ if (!elemContent->empty() && elemContent->front()->ContentListPtr()) {
+ for (auto& sub: *elemContent) {
+ FeedCollection(sub, collection, hasEmpty);
+ }
+ } else {
+ FeedCollection(elem, collection, hasEmpty);
+ }
+ } else {
+ TVector<TNodePtr> elemList(1, std::move(elem));
+ collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(elemList)));
+ }
+ }
+ GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
+ Features().Set(EGroupByFeatures::GroupingSet);
+ break;
+ }
+ case TRule_grouping_element::kAltGroupingElement5: {
+ if (!HoppingWindow(node.GetAlt_grouping_element5().GetRule_hopping_window_specification1())) {
+ return false;
+ }
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ return true;
+}
+
+void TGroupByClause::FeedCollection(const TNodePtr& elem, TVector<TNodePtr>& collection, bool& hasEmpty) const {
+ auto elemContentPtr = elem->ContentListPtr();
+ if (elemContentPtr && elemContentPtr->empty()) {
+ if (hasEmpty) {
+ return;
+ }
+ hasEmpty = true;
+ }
+ collection.push_back(elem);
+}
+
+bool TGroupByClause::OrdinaryGroupingSet(const TRule_ordinary_grouping_set& node, EGroupByFeatures featureContext) {
+ TNodePtr namedExprNode;
+ {
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ namedExprNode = NamedExpr(node.GetRule_named_expr1(), EExpr::GroupBy);
+ }
+ if (!namedExprNode) {
+ return false;
+ }
+ auto nodeLabel = namedExprNode->GetLabel();
+ auto contentPtr = namedExprNode->ContentListPtr();
+ if (contentPtr) {
+ if (nodeLabel && (contentPtr->size() != 1 || contentPtr->front()->GetLabel())) {
+ Ctx.Error() << "Unable to use aliases for list of named expressions";
+ Ctx.IncrementMonCounter("sql_errors", "GroupByAliasForListOfExpressions");
+ return false;
+ }
+ for (auto& content: *contentPtr) {
+ auto label = content->GetLabel();
+ if (!label) {
+ if (content->GetColumnName()) {
+ namedExprNode->AssumeColumn();
+ continue;
+ }
+
+ if (!AllowUnnamed(content->GetPos(), featureContext)) {
+ return false;
+ }
+
+ content->SetLabel(label = GenerateGroupByExprName());
+ }
+ if (!AddAlias(label, content)) {
+ return false;
+ }
+ content = BuildColumn(content->GetPos(), label);
+ }
+ } else {
+ if (!nodeLabel && namedExprNode->GetColumnName()) {
+ namedExprNode->AssumeColumn();
+ }
+
+ if (!nodeLabel && !namedExprNode->GetColumnName()) {
+ if (!AllowUnnamed(namedExprNode->GetPos(), featureContext)) {
+ return false;
+ }
+ namedExprNode->SetLabel(nodeLabel = GenerateGroupByExprName());
+ }
+ if (nodeLabel) {
+ if (!AddAlias(nodeLabel, namedExprNode)) {
+ return false;
+ }
+ namedExprNode = BuildColumn(namedExprNode->GetPos(), nodeLabel);
+ }
+ }
+ GroupBySet.emplace_back(std::move(namedExprNode));
+ return true;
+}
+
+bool TGroupByClause::OrdinaryGroupingSetList(const TRule_ordinary_grouping_set_list& node, EGroupByFeatures featureContext) {
+ if (!OrdinaryGroupingSet(node.GetRule_ordinary_grouping_set1(), featureContext)) {
+ return false;
+ }
+ for (auto& block: node.GetBlock2()) {
+ if (!OrdinaryGroupingSet(block.GetRule_ordinary_grouping_set2(), featureContext)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TGroupByClause::HoppingWindow(const TRule_hopping_window_specification& node) {
+ if (LegacyHoppingWindowSpec) {
+ Ctx.Error() << "Duplicate hopping window specification.";
+ return false;
+ }
+ LegacyHoppingWindowSpec = new TLegacyHoppingWindowSpec;
+ {
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx, Mode);
+ LegacyHoppingWindowSpec->TimeExtractor = expr.Build(node.GetRule_expr3());
+ if (!LegacyHoppingWindowSpec->TimeExtractor) {
+ return false;
+ }
+ }
+ auto processIntervalParam = [&] (const TRule_expr& rule) -> TNodePtr {
+ TSqlExpression expr(Ctx, Mode);
+ auto node = expr.Build(rule);
+ if (!node) {
+ return nullptr;
+ }
+
+ auto literal = node->GetLiteral("String");
+ if (!literal) {
+ return new TAstListNodeImpl(Ctx.Pos(), {
+ new TAstAtomNodeImpl(Ctx.Pos(), "EvaluateExpr", TNodeFlags::Default),
+ node
+ });
+ }
+
+ const auto out = NKikimr::NMiniKQL::ValueFromString(NKikimr::NUdf::EDataSlot::Interval, *literal);
+ if (!out) {
+ Ctx.Error(node->GetPos()) << "Expected interval in ISO 8601 format";
+ return nullptr;
+ }
+
+ if ('T' == literal->back()) {
+ Ctx.Error(node->GetPos()) << "Time prefix 'T' at end of interval constant. The designator 'T' shall be absent if all of the time components are absent.";
+ return nullptr;
+ }
+
+ return new TAstListNodeImpl(Ctx.Pos(), {
+ new TAstAtomNodeImpl(Ctx.Pos(), "Interval", TNodeFlags::Default),
+ new TAstListNodeImpl(Ctx.Pos(), {
+ new TAstAtomNodeImpl(Ctx.Pos(), "quote", TNodeFlags::Default),
+ new TAstAtomNodeImpl(Ctx.Pos(), ToString(out.Get<i64>()), TNodeFlags::Default)
+ })
+ });
+ };
+
+ LegacyHoppingWindowSpec->Hop = processIntervalParam(node.GetRule_expr5());
+ if (!LegacyHoppingWindowSpec->Hop) {
+ return false;
+ }
+ LegacyHoppingWindowSpec->Interval = processIntervalParam(node.GetRule_expr7());
+ if (!LegacyHoppingWindowSpec->Interval) {
+ return false;
+ }
+ LegacyHoppingWindowSpec->Delay = processIntervalParam(node.GetRule_expr9());
+ if (!LegacyHoppingWindowSpec->Delay) {
+ return false;
+ }
+ LegacyHoppingWindowSpec->DataWatermarks = Ctx.PragmaDataWatermarks;
+
+ return true;
+}
+
+bool TGroupByClause::AllowUnnamed(TPosition pos, EGroupByFeatures featureContext) {
+ TStringBuf feature;
+ switch (featureContext) {
+ case EGroupByFeatures::Ordinary:
+ return true;
+ case EGroupByFeatures::Rollup:
+ feature = "ROLLUP";
+ break;
+ case EGroupByFeatures::Cube:
+ feature = "CUBE";
+ break;
+ case EGroupByFeatures::GroupingSet:
+ feature = "GROUPING SETS";
+ break;
+ default:
+ YQL_ENSURE(false, "Unknown feature");
+ }
+
+ Ctx.Error(pos) << "Unnamed expressions are not supported in " << feature << ". Please use '<expr> AS <name>'.";
+ Ctx.IncrementMonCounter("sql_errors", "GroupBySetNoAliasOrColumn");
+ return false;
+}
+
+TGroupByClause::TGroupingSetFeatures& TGroupByClause::Features() {
+ return GroupSetContext->GroupFeatures;
+}
+
+const TGroupByClause::TGroupingSetFeatures& TGroupByClause::Features() const {
+ return GroupSetContext->GroupFeatures;
+}
+
+bool TGroupByClause::AddAlias(const TString& label, const TNodePtr& node) {
+ if (Aliases().contains(label)) {
+ Ctx.Error() << "Duplicated aliases not allowed";
+ Ctx.IncrementMonCounter("sql_errors", "GroupByDuplicateAliases");
+ return false;
+ }
+ Aliases().emplace(label, node);
+ return true;
+}
+
+TString TGroupByClause::GenerateGroupByExprName() {
+ return TStringBuilder() << AutogenerateNamePrefix << GroupSetContext->UnnamedCount++;
+}
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_group_by.h b/ydb/library/yql/sql/v1/sql_group_by.h
new file mode 100644
index 0000000000..83e602596c
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_group_by.h
@@ -0,0 +1,73 @@
+#pragma once
+
+#include "sql_translation.h"
+
+namespace NSQLTranslationV1 {
+
+using namespace NSQLv1Generated;
+
+class TGroupByClause: public TSqlTranslation {
+ enum class EGroupByFeatures {
+ Begin,
+ Ordinary = Begin,
+ Expression,
+ Rollup,
+ Cube,
+ GroupingSet,
+ Empty,
+ End,
+ };
+ typedef TEnumBitSet<EGroupByFeatures, static_cast<int>(EGroupByFeatures::Begin), static_cast<int>(EGroupByFeatures::End)> TGroupingSetFeatures;
+
+ class TGroupByClauseCtx: public TSimpleRefCount<TGroupByClauseCtx> {
+ public:
+ typedef TIntrusivePtr<TGroupByClauseCtx> TPtr;
+
+ TGroupingSetFeatures GroupFeatures;
+ TMap<TString, TNodePtr> NodeAliases;
+ size_t UnnamedCount = 0;
+ };
+
+public:
+ TGroupByClause(TContext& ctx, NSQLTranslation::ESqlMode mode, TGroupByClauseCtx::TPtr groupSetContext = {})
+ : TSqlTranslation(ctx, mode)
+ , GroupSetContext(groupSetContext ? groupSetContext : TGroupByClauseCtx::TPtr(new TGroupByClauseCtx()))
+ , CompactGroupBy(false)
+ {}
+
+ bool Build(const TRule_group_by_clause& node);
+ bool ParseList(const TRule_grouping_element_list& groupingListNode, EGroupByFeatures featureContext);
+
+ void SetFeatures(const TString& field) const;
+ TVector<TNodePtr>& Content();
+ TMap<TString, TNodePtr>& Aliases();
+ TLegacyHoppingWindowSpecPtr GetLegacyHoppingWindow() const;
+ bool IsCompactGroupBy() const;
+ TString GetSuffix() const;
+
+private:
+ TMaybe<TVector<TNodePtr>> MultiplyGroupingSets(const TVector<TNodePtr>& lhs, const TVector<TNodePtr>& rhs) const;
+ bool ResolveGroupByAndGrouping();
+ bool GroupingElement(const TRule_grouping_element& node, EGroupByFeatures featureContext);
+ void FeedCollection(const TNodePtr& elem, TVector<TNodePtr>& collection, bool& hasEmpty) const;
+ bool OrdinaryGroupingSet(const TRule_ordinary_grouping_set& node, EGroupByFeatures featureContext);
+ bool OrdinaryGroupingSetList(const TRule_ordinary_grouping_set_list& node, EGroupByFeatures featureContext);
+ bool HoppingWindow(const TRule_hopping_window_specification& node);
+
+ bool AllowUnnamed(TPosition pos, EGroupByFeatures featureContext);
+
+ TGroupingSetFeatures& Features();
+ const TGroupingSetFeatures& Features() const;
+ bool AddAlias(const TString& label, const TNodePtr& node);
+ TString GenerateGroupByExprName();
+ bool IsAutogenerated(const TString* name) const;
+
+ TVector<TNodePtr> GroupBySet;
+ TGroupByClauseCtx::TPtr GroupSetContext;
+ TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec; // stream queries
+ static const TString AutogenerateNamePrefix;
+ bool CompactGroupBy;
+ TString Suffix;
+};
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_into_tables.cpp b/ydb/library/yql/sql/v1/sql_into_tables.cpp
new file mode 100644
index 0000000000..478fe3f368
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_into_tables.cpp
@@ -0,0 +1,261 @@
+#include "sql_into_tables.h"
+#include "sql_values.h"
+
+#include <util/string/join.h>
+
+using namespace NYql;
+
+namespace NSQLTranslationV1 {
+
+using NALPDefault::SQLv1LexerTokens;
+
+using namespace NSQLv1Generated;
+
+TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
+ static const TMap<TString, ESQLWriteColumnMode> str2Mode = {
+ {"InsertInto", ESQLWriteColumnMode::InsertInto},
+ {"InsertOrAbortInto", ESQLWriteColumnMode::InsertOrAbortInto},
+ {"InsertOrIgnoreInto", ESQLWriteColumnMode::InsertOrIgnoreInto},
+ {"InsertOrRevertInto", ESQLWriteColumnMode::InsertOrRevertInto},
+ {"UpsertInto", ESQLWriteColumnMode::UpsertInto},
+ {"ReplaceInto", ESQLWriteColumnMode::ReplaceInto},
+ {"InsertIntoWithTruncate", ESQLWriteColumnMode::InsertIntoWithTruncate}
+ };
+
+ auto& modeBlock = node.GetBlock1();
+
+ TVector<TToken> modeTokens;
+ switch (modeBlock.Alt_case()) {
+ case TRule_into_table_stmt_TBlock1::AltCase::kAlt1:
+ modeTokens = {modeBlock.GetAlt1().GetToken1()};
+ break;
+ case TRule_into_table_stmt_TBlock1::AltCase::kAlt2:
+ modeTokens = {
+ modeBlock.GetAlt2().GetToken1(),
+ modeBlock.GetAlt2().GetToken2(),
+ modeBlock.GetAlt2().GetToken3()
+ };
+ break;
+ case TRule_into_table_stmt_TBlock1::AltCase::kAlt3:
+ modeTokens = {
+ modeBlock.GetAlt3().GetToken1(),
+ modeBlock.GetAlt3().GetToken2(),
+ modeBlock.GetAlt3().GetToken3()
+ };
+ break;
+ case TRule_into_table_stmt_TBlock1::AltCase::kAlt4:
+ modeTokens = {
+ modeBlock.GetAlt4().GetToken1(),
+ modeBlock.GetAlt4().GetToken2(),
+ modeBlock.GetAlt4().GetToken3()
+ };
+ break;
+ case TRule_into_table_stmt_TBlock1::AltCase::kAlt5:
+ modeTokens = {modeBlock.GetAlt5().GetToken1()};
+ break;
+ case TRule_into_table_stmt_TBlock1::AltCase::kAlt6:
+ modeTokens = {modeBlock.GetAlt6().GetToken1()};
+ break;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ TVector<TString> modeStrings;
+ modeStrings.reserve(modeTokens.size());
+ TVector<TString> userModeStrings;
+ userModeStrings.reserve(modeTokens.size());
+
+ for (auto& token : modeTokens) {
+ auto tokenStr = Token(token);
+
+ auto modeStr = tokenStr;
+ modeStr.to_lower();
+ modeStr.to_upper(0, 1);
+ modeStrings.push_back(modeStr);
+
+ auto userModeStr = tokenStr;
+ userModeStr.to_upper();
+ userModeStrings.push_back(userModeStr);
+ }
+
+ modeStrings.push_back("Into");
+ userModeStrings.push_back("INTO");
+
+ SqlIntoModeStr = JoinRange("", modeStrings.begin(), modeStrings.end());
+ SqlIntoUserModeStr = JoinRange(" ", userModeStrings.begin(), userModeStrings.end());
+
+ const auto& intoTableRef = node.GetRule_into_simple_table_ref3();
+ const auto& tableRef = intoTableRef.GetRule_simple_table_ref1();
+ const auto& tableRefCore = tableRef.GetRule_simple_table_ref_core1();
+
+ auto service = Ctx.Scoped->CurrService;
+ auto cluster = Ctx.Scoped->CurrCluster;
+ std::pair<bool, TDeferredAtom> nameOrAt;
+ bool isBinding = false;
+ switch (tableRefCore.Alt_case()) {
+ case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore1: {
+ if (tableRefCore.GetAlt_simple_table_ref_core1().GetRule_object_ref1().HasBlock1()) {
+ const auto& clusterExpr = tableRefCore.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetBlock1().GetRule_cluster_expr1();
+ bool hasAt = tableRefCore.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetRule_id_or_at2().HasBlock1();
+ bool result = !hasAt ?
+ ClusterExprOrBinding(clusterExpr, service, cluster, isBinding) : ClusterExpr(clusterExpr, false, service, cluster);
+ if (!result) {
+ return nullptr;
+ }
+ }
+
+ if (!isBinding && cluster.Empty()) {
+ Ctx.Error() << "No cluster name given and no default cluster is selected";
+ return nullptr;
+ }
+
+ auto id = Id(tableRefCore.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetRule_id_or_at2(), *this);
+ nameOrAt = std::make_pair(id.first, TDeferredAtom(Ctx.Pos(), id.second));
+ break;
+ }
+ case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore2: {
+ auto at = tableRefCore.GetAlt_simple_table_ref_core2().HasBlock1();
+ TString name;
+ if (!NamedNodeImpl(tableRefCore.GetAlt_simple_table_ref_core2().GetRule_bind_parameter2(), name, *this)) {
+ return nullptr;
+ }
+ auto named = GetNamedNode(name);
+ if (!named) {
+ return nullptr;
+ }
+
+ if (cluster.Empty()) {
+ Ctx.Error() << "No cluster name given and no default cluster is selected";
+ return nullptr;
+ }
+
+ TDeferredAtom table;
+ MakeTableFromExpression(Ctx, named, table);
+ nameOrAt = std::make_pair(at, table);
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ bool withTruncate = false;
+ TTableHints tableHints;
+ if (tableRef.HasBlock2()) {
+ auto hints = TableHintsImpl(tableRef.GetBlock2().GetRule_table_hints1());
+ if (!hints) {
+ Ctx.Error() << "Failed to parse table hints";
+ return nullptr;
+ }
+ for (const auto& hint : *hints) {
+ if (to_upper(hint.first) == "TRUNCATE") {
+ withTruncate = true;
+ }
+ }
+ std::erase_if(*hints, [](const auto &hint) { return to_upper(hint.first) == "TRUNCATE"; });
+ tableHints = std::move(*hints);
+ }
+
+ TVector<TString> eraseColumns;
+ if (intoTableRef.HasBlock2()) {
+ if (service != StatProviderName) {
+ Ctx.Error() << "ERASE BY is unsupported for " << service;
+ return nullptr;
+ }
+
+ PureColumnListStr(
+ intoTableRef.GetBlock2().GetRule_pure_column_list3(), *this, eraseColumns
+ );
+ }
+
+ if (withTruncate) {
+ if (SqlIntoModeStr != "InsertInto") {
+ Error() << "Unable " << SqlIntoUserModeStr << " with truncate mode";
+ return nullptr;
+ }
+ SqlIntoModeStr += "WithTruncate";
+ SqlIntoUserModeStr += " ... WITH TRUNCATE";
+ }
+ const auto iterMode = str2Mode.find(SqlIntoModeStr);
+ YQL_ENSURE(iterMode != str2Mode.end(), "Invalid sql write mode string: " << SqlIntoModeStr);
+ const auto SqlIntoMode = iterMode->second;
+
+ TPosition pos(Ctx.Pos());
+ TTableRef table(Ctx.MakeName("table"), service, cluster, nullptr);
+ if (isBinding) {
+ const TString* binding = nameOrAt.second.GetLiteral();
+ YQL_ENSURE(binding);
+ YQL_ENSURE(!nameOrAt.first);
+ if (!ApplyTableBinding(*binding, table, tableHints)) {
+ return nullptr;
+ }
+ } else {
+ table.Keys = BuildTableKey(pos, service, cluster, nameOrAt.second, nameOrAt.first ? "@" : "");
+ }
+
+ Ctx.IncrementMonCounter("sql_insert_clusters", table.Cluster.GetLiteral() ? *table.Cluster.GetLiteral() : "unknown");
+
+ auto values = TSqlIntoValues(Ctx, Mode).Build(node.GetRule_into_values_source4(), SqlIntoUserModeStr);
+ if (!values) {
+ return nullptr;
+ }
+ if (!ValidateServiceName(node, table, SqlIntoMode, GetPos(modeTokens[0]))) {
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", SqlIntoModeStr);
+
+ return BuildWriteColumns(pos, Ctx.Scoped, table,
+ ToWriteColumnsMode(SqlIntoMode), std::move(values),
+ BuildIntoTableOptions(pos, eraseColumns, tableHints));
+}
+
+bool TSqlIntoTable::ValidateServiceName(const TRule_into_table_stmt& node, const TTableRef& table,
+ ESQLWriteColumnMode mode, const TPosition& pos) {
+ Y_UNUSED(node);
+ auto serviceName = table.Service;
+ const bool isMapReduce = serviceName == YtProviderName;
+ const bool isKikimr = serviceName == KikimrProviderName || serviceName == YdbProviderName;
+ const bool isRtmr = serviceName == RtmrProviderName;
+ const bool isStat = serviceName == StatProviderName;
+
+ if (!isKikimr) {
+ if (mode == ESQLWriteColumnMode::InsertOrAbortInto ||
+ mode == ESQLWriteColumnMode::InsertOrIgnoreInto ||
+ mode == ESQLWriteColumnMode::InsertOrRevertInto ||
+ mode == ESQLWriteColumnMode::UpsertInto && !isStat)
+ {
+ Ctx.Error(pos) << SqlIntoUserModeStr << " is not supported for " << serviceName << " tables";
+ Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ return false;
+ }
+ }
+
+ if (isMapReduce) {
+ if (mode == ESQLWriteColumnMode::ReplaceInto) {
+ Ctx.Error(pos) << "Meaning of REPLACE INTO has been changed, now you should use INSERT INTO <table> WITH TRUNCATE ... for " << serviceName;
+ Ctx.IncrementMonCounter("sql_errors", "ReplaceIntoConflictUsage");
+ return false;
+ }
+ } else if (isKikimr) {
+ if (mode == ESQLWriteColumnMode::InsertIntoWithTruncate) {
+ Ctx.Error(pos) << "INSERT INTO WITH TRUNCATE is not supported for " << serviceName << " tables";
+ Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ return false;
+ }
+ } else if (isRtmr) {
+ if (mode != ESQLWriteColumnMode::InsertInto) {
+ Ctx.Error(pos) << SqlIntoUserModeStr << " is unsupported for " << serviceName;
+ Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ return false;
+ }
+ } else if (isStat) {
+ if (mode != ESQLWriteColumnMode::UpsertInto) {
+ Ctx.Error(pos) << SqlIntoUserModeStr << " is unsupported for " << serviceName;
+ Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ return false;
+ }
+ }
+
+ return true;
+}
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_into_tables.h b/ydb/library/yql/sql/v1/sql_into_tables.h
new file mode 100644
index 0000000000..938afc7369
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_into_tables.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include "sql_translation.h"
+#include <ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h>
+
+namespace NSQLTranslationV1 {
+
+using namespace NSQLv1Generated;
+
+class TSqlIntoTable: public TSqlTranslation {
+public:
+ TSqlIntoTable(TContext& ctx, NSQLTranslation::ESqlMode mode)
+ : TSqlTranslation(ctx, mode)
+ {
+ }
+
+ TNodePtr Build(const TRule_into_table_stmt& node);
+
+private:
+ //bool BuildValuesRow(const TRule_values_source_row& inRow, TVector<TNodePtr>& outRow);
+ //TSourcePtr ValuesSource(const TRule_values_source& node, TVector<TString>& columnsHint);
+ //TSourcePtr IntoValuesSource(const TRule_into_values_source& node);
+
+ bool ValidateServiceName(const TRule_into_table_stmt& node, const TTableRef& table, ESQLWriteColumnMode mode,
+ const TPosition& pos);
+ TString SqlIntoModeStr;
+ TString SqlIntoUserModeStr;
+};
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_query.cpp b/ydb/library/yql/sql/v1/sql_query.cpp
new file mode 100644
index 0000000000..c842be2757
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_query.cpp
@@ -0,0 +1,2272 @@
+#include "sql_query.h"
+#include "sql_expression.h"
+#include "sql_select.h"
+#include "sql_into_tables.h"
+#include "sql_values.h"
+#include "node.h"
+#include <ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h>
+#include <ydb/library/yql/sql/v1/object_processing.h>
+#include <ydb/library/yql/core/yql_expr_type_annotation.h>
+#include <ydb/library/yql/utils/yql_paths.h>
+#include <util/generic/scope.h>
+#include <util/string/join.h>
+
+namespace NSQLTranslationV1 {
+
+using NALPDefault::SQLv1LexerTokens;
+
+using namespace NSQLv1Generated;
+
+void FillTargetList(TTranslation& ctx, const TRule_set_target_list& node, TVector<TString>& targetList) {
+ targetList.push_back(ColumnNameAsSingleStr(ctx, node.GetRule_set_target2().GetRule_column_name1()));
+ for (auto& block: node.GetBlock3()) {
+ targetList.push_back(ColumnNameAsSingleStr(ctx, block.GetRule_set_target2().GetRule_column_name1()));
+ }
+}
+
+bool PackageVersionFromString(const TString& s, ui32& version) {
+ if (s == "release") {
+ version = 0;
+ return true;
+ }
+ if (s == "draft") {
+ version = 1;
+ return true;
+ }
+ return TryFromString(s, version);
+}
+
+void TSqlQuery::AddStatementToBlocks(TVector<TNodePtr>& blocks, TNodePtr node) {
+ blocks.emplace_back(node);
+}
+
+static bool AsyncReplicationSettingsEntry(std::map<TString, TNodePtr>& out, const TRule_replication_settings_entry& in, TTranslation& ctx) {
+ auto key = Id(in.GetRule_an_id1(), ctx);
+ auto value = BuildLiteralSmartString(ctx.Context(), ctx.Token(in.GetToken3()));
+ // TODO(ilnaz): validate
+ out.emplace(std::move(key), value);
+ return true;
+}
+
+static bool AsyncReplicationSettings(std::map<TString, TNodePtr>& out, const TRule_replication_settings& in, TTranslation& ctx) {
+ if (!AsyncReplicationSettingsEntry(out, in.GetRule_replication_settings_entry1(), ctx)) {
+ return false;
+ }
+
+ for (auto& block : in.GetBlock2()) {
+ if (!AsyncReplicationSettingsEntry(out, block.GetRule_replication_settings_entry2(), ctx)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+static bool AsyncReplicationTarget(std::vector<std::pair<TString, TString>>& out, const TRule_replication_target& in, TTranslation& ctx) {
+ const TString remote = Id(in.GetRule_object_ref1().GetRule_id_or_at2(), ctx).second;
+ const TString local = Id(in.GetRule_object_ref3().GetRule_id_or_at2(), ctx).second;
+ out.emplace_back(remote, local);
+ return true;
+}
+
+bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& core) {
+ TString internalStatementName;
+ TString humanStatementName;
+ ParseStatementName(core, internalStatementName, humanStatementName);
+ const auto& altCase = core.Alt_case();
+ if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
+ altCase != TRule_sql_stmt_core::kAltSqlStmtCore13)) {
+ Error() << humanStatementName << " statement is not supported in limited views";
+ return false;
+ }
+
+ if (Mode == NSQLTranslation::ESqlMode::SUBQUERY && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
+ altCase != TRule_sql_stmt_core::kAltSqlStmtCore13 && altCase != TRule_sql_stmt_core::kAltSqlStmtCore6 &&
+ altCase != TRule_sql_stmt_core::kAltSqlStmtCore17)) {
+ Error() << humanStatementName << " statement is not supported in subqueries";
+ return false;
+ }
+
+ switch (altCase) {
+ case TRule_sql_stmt_core::kAltSqlStmtCore1: {
+ bool success = false;
+ TNodePtr nodeExpr = PragmaStatement(core.GetAlt_sql_stmt_core1().GetRule_pragma_stmt1(), success);
+ if (!success) {
+ return false;
+ }
+ if (nodeExpr) {
+ AddStatementToBlocks(blocks, nodeExpr);
+ }
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore2: {
+ Ctx.BodyPart();
+ TSqlSelect select(Ctx, Mode);
+ TPosition pos;
+ auto source = select.Build(core.GetAlt_sql_stmt_core2().GetRule_select_stmt1(), pos);
+ if (!source) {
+ return false;
+ }
+ blocks.emplace_back(BuildSelectResult(pos, std::move(source),
+ Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode != NSQLTranslation::ESqlMode::SUBQUERY, Mode == NSQLTranslation::ESqlMode::SUBQUERY,
+ Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore3: {
+ Ctx.BodyPart();
+ TVector<TSymbolNameWithPos> names;
+ auto nodeExpr = NamedNode(core.GetAlt_sql_stmt_core3().GetRule_named_nodes_stmt1(), names);
+ if (!nodeExpr) {
+ return false;
+ }
+ TVector<TNodePtr> nodes;
+ auto subquery = nodeExpr->GetSource();
+ if (subquery && Mode == NSQLTranslation::ESqlMode::LIBRARY && Ctx.ScopeLevel == 0) {
+ for (size_t i = 0; i < names.size(); ++i) {
+ nodes.push_back(BuildInvalidSubqueryRef(subquery->GetPos()));
+ }
+ } else if (subquery) {
+ const auto alias = Ctx.MakeName("subquerynode");
+ const auto ref = Ctx.MakeName("subquery");
+ blocks.push_back(BuildSubquery(subquery, alias,
+ Mode == NSQLTranslation::ESqlMode::SUBQUERY, names.size() == 1 ? -1 : names.size(), Ctx.Scoped));
+ blocks.back()->SetLabel(ref);
+
+ for (size_t i = 0; i < names.size(); ++i) {
+ nodes.push_back(BuildSubqueryRef(blocks.back(), ref, names.size() == 1 ? -1 : i));
+ }
+ } else {
+ if (names.size() > 1) {
+ auto tupleRes = BuildTupleResult(nodeExpr, names.size());
+ for (size_t i = 0; i < names.size(); ++i) {
+ nodes.push_back(nodeExpr->Y("Nth", tupleRes, nodeExpr->Q(ToString(i))));
+ }
+ } else {
+ nodes.push_back(std::move(nodeExpr));
+ }
+ }
+
+ for (size_t i = 0; i < names.size(); ++i) {
+ PushNamedNode(names[i].Pos, names[i].Name, nodes[i]);
+ }
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore4: {
+ Ctx.BodyPart();
+ const auto& rule = core.GetAlt_sql_stmt_core4().GetRule_create_table_stmt1();
+ const auto& block = rule.GetBlock2();
+ ETableType tableType = ETableType::Table;
+ if (block.HasAlt2() && block.GetAlt2().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_TABLESTORE) {
+ tableType = ETableType::TableStore;
+ } else if (block.HasAlt3() && block.GetAlt3().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_EXTERNAL) {
+ tableType = ETableType::ExternalTable;
+ }
+
+ TTableRef tr;
+ if (!SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), tr)) {
+ return false;
+ }
+
+ TCreateTableParameters params{.TableType=tableType};
+ if (!CreateTableEntry(rule.GetRule_create_table_entry5(), params)) {
+ return false;
+ }
+ for (auto& block: rule.GetBlock6()) {
+ if (!CreateTableEntry(block.GetRule_create_table_entry2(), params)) {
+ return false;
+ }
+ }
+
+ if (rule.HasBlock8()) {
+ Context().Error(GetPos(rule.GetBlock8().GetRule_table_inherits1().GetToken1()))
+ << "INHERITS clause is not supported yet";
+ return false;
+ }
+
+ if (rule.HasBlock9()) {
+ if (tableType == ETableType::TableStore) {
+ Context().Error(GetPos(rule.GetBlock9().GetRule_table_partition_by1().GetToken1()))
+ << "PARTITION BY is not supported for TABLESTORE";
+ return false;
+ }
+ const auto list = rule.GetBlock9().GetRule_table_partition_by1().GetRule_pure_column_list4();
+ params.PartitionByColumns.push_back(IdEx(list.GetRule_an_id2(), *this));
+ for (auto& node : list.GetBlock3()) {
+ params.PartitionByColumns.push_back(IdEx(node.GetRule_an_id2(), *this));
+ }
+ }
+
+ if (rule.HasBlock10()) {
+ if (!CreateTableSettings(rule.GetBlock10().GetRule_with_table_settings1(), params)) {
+ return false;
+ }
+ }
+
+ if (rule.HasBlock11()) {
+ Context().Error(GetPos(rule.GetBlock11().GetRule_table_tablestore1().GetToken1()))
+ << "TABLESTORE clause is not supported yet";
+ return false;
+ }
+
+ if (!ValidateExternalTable(params)) {
+ return false;
+ }
+
+ AddStatementToBlocks(blocks, BuildCreateTable(Ctx.Pos(), tr, params, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore5: {
+ Ctx.BodyPart();
+ const auto& rule = core.GetAlt_sql_stmt_core5().GetRule_drop_table_stmt1();
+ const auto& block = rule.GetBlock2();
+ ETableType tableType = ETableType::Table;
+ if (block.HasAlt2()) {
+ tableType = ETableType::TableStore;
+ }
+ if (block.HasAlt3()) {
+ tableType = ETableType::ExternalTable;
+ }
+
+ if (rule.HasBlock3()) {
+ Context().Error(GetPos(rule.GetToken1())) << "IF EXISTS in " << humanStatementName
+ << " is not supported.";
+ return false;
+ }
+ TTableRef tr;
+ if (!SimpleTableRefImpl(rule.GetRule_simple_table_ref4(), tr)) {
+ return false;
+ }
+
+ AddStatementToBlocks(blocks, BuildDropTable(Ctx.Pos(), tr, tableType, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore6: {
+ const auto& rule = core.GetAlt_sql_stmt_core6().GetRule_use_stmt1();
+ Token(rule.GetToken1());
+ if (!ClusterExpr(rule.GetRule_cluster_expr2(), true, Ctx.Scoped->CurrService, Ctx.Scoped->CurrCluster)) {
+ return false;
+ }
+
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore7: {
+ Ctx.BodyPart();
+ TSqlIntoTable intoTable(Ctx, Mode);
+ TNodePtr block(intoTable.Build(core.GetAlt_sql_stmt_core7().GetRule_into_table_stmt1()));
+ if (!block) {
+ return false;
+ }
+ blocks.emplace_back(block);
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore8: {
+ Ctx.BodyPart();
+ const auto& rule = core.GetAlt_sql_stmt_core8().GetRule_commit_stmt1();
+ Token(rule.GetToken1());
+ blocks.emplace_back(BuildCommitClusters(Ctx.Pos()));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore9: {
+ Ctx.BodyPart();
+ auto updateNode = Build(core.GetAlt_sql_stmt_core9().GetRule_update_stmt1());
+ if (!updateNode) {
+ return false;
+ }
+ AddStatementToBlocks(blocks, updateNode);
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore10: {
+ Ctx.BodyPart();
+ auto deleteNode = Build(core.GetAlt_sql_stmt_core10().GetRule_delete_stmt1());
+ if (!deleteNode) {
+ return false;
+ }
+ blocks.emplace_back(deleteNode);
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore11: {
+ Ctx.BodyPart();
+ const auto& rule = core.GetAlt_sql_stmt_core11().GetRule_rollback_stmt1();
+ Token(rule.GetToken1());
+ blocks.emplace_back(BuildRollbackClusters(Ctx.Pos()));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore12:
+ if (!DeclareStatement(core.GetAlt_sql_stmt_core12().GetRule_declare_stmt1())) {
+ return false;
+ }
+ break;
+ case TRule_sql_stmt_core::kAltSqlStmtCore13:
+ if (!ImportStatement(core.GetAlt_sql_stmt_core13().GetRule_import_stmt1())) {
+ return false;
+ }
+ break;
+ case TRule_sql_stmt_core::kAltSqlStmtCore14:
+ if (!ExportStatement(core.GetAlt_sql_stmt_core14().GetRule_export_stmt1())) {
+ return false;
+ }
+ break;
+ case TRule_sql_stmt_core::kAltSqlStmtCore15: {
+ Ctx.BodyPart();
+ const auto& rule = core.GetAlt_sql_stmt_core15().GetRule_alter_table_stmt1();
+ const bool isTablestore = rule.GetToken2().GetId() == SQLv1LexerTokens::TOKEN_TABLESTORE;
+ TTableRef tr;
+ if (!SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), tr)) {
+ return false;
+ }
+
+ TAlterTableParameters params;
+ if (isTablestore) {
+ params.TableType = ETableType::TableStore;
+ }
+ if (!AlterTableAction(rule.GetRule_alter_table_action4(), params)) {
+ return false;
+ }
+
+ for (auto& block : rule.GetBlock5()) {
+ if (!AlterTableAction(block.GetRule_alter_table_action2(), params)) {
+ return false;
+ }
+ }
+
+ AddStatementToBlocks(blocks, BuildAlterTable(Ctx.Pos(), tr, params, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore16: {
+ Ctx.BodyPart();
+ auto node = DoStatement(core.GetAlt_sql_stmt_core16().GetRule_do_stmt1(), false);
+ if (!node) {
+ return false;
+ }
+
+ blocks.push_back(node);
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore17: {
+ Ctx.BodyPart();
+ if (!DefineActionOrSubqueryStatement(core.GetAlt_sql_stmt_core17().GetRule_define_action_or_subquery_stmt1())) {
+ return false;
+ }
+
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore18: {
+ Ctx.BodyPart();
+ auto node = IfStatement(core.GetAlt_sql_stmt_core18().GetRule_if_stmt1());
+ if (!node) {
+ return false;
+ }
+
+ blocks.push_back(node);
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore19: {
+ Ctx.BodyPart();
+ auto node = ForStatement(core.GetAlt_sql_stmt_core19().GetRule_for_stmt1());
+ if (!node) {
+ return false;
+ }
+
+ blocks.push_back(node);
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore20: {
+ Ctx.BodyPart();
+ TSqlValues values(Ctx, Mode);
+ TPosition pos;
+ auto source = values.Build(core.GetAlt_sql_stmt_core20().GetRule_values_stmt1(), pos, {}, TPosition());
+ if (!source) {
+ return false;
+ }
+ blocks.emplace_back(BuildSelectResult(pos, std::move(source),
+ Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode != NSQLTranslation::ESqlMode::SUBQUERY, Mode == NSQLTranslation::ESqlMode::SUBQUERY,
+ Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore21: {
+ // create_user_stmt: CREATE USER role_name create_user_option?;
+ Ctx.BodyPart();
+ auto& node = core.GetAlt_sql_stmt_core21().GetRule_create_user_stmt1();
+
+ Ctx.Token(node.GetToken1());
+ const TPosition pos = Ctx.Pos();
+
+ TString service = Ctx.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ if (cluster.Empty()) {
+ Error() << "USE statement is missing - no default cluster is selected";
+ return false;
+ }
+
+ TDeferredAtom roleName;
+ bool allowSystemRoles = false;
+ if (!RoleNameClause(node.GetRule_role_name3(), roleName, allowSystemRoles)) {
+ return false;
+ }
+
+ TMaybe<TRoleParameters> roleParams;
+ if (node.HasBlock4()) {
+ roleParams.ConstructInPlace();
+ if (!RoleParameters(node.GetBlock4().GetRule_create_user_option1(), *roleParams)) {
+ return false;
+ }
+ }
+
+ AddStatementToBlocks(blocks, BuildCreateUser(pos, service, cluster, roleName, roleParams, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore22: {
+ // alter_user_stmt: ALTER USER role_name (WITH? create_user_option | RENAME TO role_name);
+ Ctx.BodyPart();
+ auto& node = core.GetAlt_sql_stmt_core22().GetRule_alter_user_stmt1();
+
+ Ctx.Token(node.GetToken1());
+ const TPosition pos = Ctx.Pos();
+
+ TString service = Ctx.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ if (cluster.Empty()) {
+ Error() << "USE statement is missing - no default cluster is selected";
+ return false;
+ }
+
+ TDeferredAtom roleName;
+ {
+ bool allowSystemRoles = true;
+ if (!RoleNameClause(node.GetRule_role_name3(), roleName, allowSystemRoles)) {
+ return false;
+ }
+ }
+
+ TNodePtr stmt;
+ switch (node.GetBlock4().Alt_case()) {
+ case TRule_alter_user_stmt_TBlock4::kAlt1: {
+ TRoleParameters roleParams;
+ if (!RoleParameters(node.GetBlock4().GetAlt1().GetRule_create_user_option2(), roleParams)) {
+ return false;
+ }
+ stmt = BuildAlterUser(pos, service, cluster, roleName, roleParams, Ctx.Scoped);
+ break;
+ }
+ case TRule_alter_user_stmt_TBlock4::kAlt2: {
+ TDeferredAtom tgtRoleName;
+ bool allowSystemRoles = false;
+ if (!RoleNameClause(node.GetBlock4().GetAlt2().GetRule_role_name3(), tgtRoleName, allowSystemRoles)) {
+ return false;
+ }
+ stmt = BuildRenameUser(pos, service, cluster, roleName, tgtRoleName,Ctx.Scoped);
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ AddStatementToBlocks(blocks, stmt);
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore23: {
+ // create_group_stmt: CREATE GROUP role_name;
+ Ctx.BodyPart();
+ auto& node = core.GetAlt_sql_stmt_core23().GetRule_create_group_stmt1();
+
+ Ctx.Token(node.GetToken1());
+ const TPosition pos = Ctx.Pos();
+
+ TString service = Ctx.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ if (cluster.Empty()) {
+ Error() << "USE statement is missing - no default cluster is selected";
+ return false;
+ }
+
+ TDeferredAtom roleName;
+ bool allowSystemRoles = false;
+ if (!RoleNameClause(node.GetRule_role_name3(), roleName, allowSystemRoles)) {
+ return false;
+ }
+
+ AddStatementToBlocks(blocks, BuildCreateGroup(pos, service, cluster, roleName, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore24: {
+ // alter_group_stmt: ALTER GROUP role_name ((ADD|DROP) USER role_name (COMMA role_name)* COMMA? | RENAME TO role_name);
+ Ctx.BodyPart();
+ auto& node = core.GetAlt_sql_stmt_core24().GetRule_alter_group_stmt1();
+
+ Ctx.Token(node.GetToken1());
+ const TPosition pos = Ctx.Pos();
+
+ TString service = Ctx.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ if (cluster.Empty()) {
+ Error() << "USE statement is missing - no default cluster is selected";
+ return false;
+ }
+
+ TDeferredAtom roleName;
+ {
+ bool allowSystemRoles = true;
+ if (!RoleNameClause(node.GetRule_role_name3(), roleName, allowSystemRoles)) {
+ return false;
+ }
+ }
+
+ TNodePtr stmt;
+ switch (node.GetBlock4().Alt_case()) {
+ case TRule_alter_group_stmt_TBlock4::kAlt1: {
+ auto& addDropNode = node.GetBlock4().GetAlt1();
+ const bool isDrop = addDropNode.GetToken1().GetId() == SQLv1LexerTokens::TOKEN_DROP;
+ TVector<TDeferredAtom> roles;
+ bool allowSystemRoles = false;
+ roles.emplace_back();
+ if (!RoleNameClause(addDropNode.GetRule_role_name3(), roles.back(), allowSystemRoles)) {
+ return false;
+ }
+
+ for (auto& item : addDropNode.GetBlock4()) {
+ roles.emplace_back();
+ if (!RoleNameClause(item.GetRule_role_name2(), roles.back(), allowSystemRoles)) {
+ return false;
+ }
+ }
+
+ stmt = BuildAlterGroup(pos, service, cluster, roleName, roles, isDrop, Ctx.Scoped);
+ break;
+ }
+ case TRule_alter_group_stmt_TBlock4::kAlt2: {
+ TDeferredAtom tgtRoleName;
+ bool allowSystemRoles = false;
+ if (!RoleNameClause(node.GetBlock4().GetAlt2().GetRule_role_name3(), tgtRoleName, allowSystemRoles)) {
+ return false;
+ }
+ stmt = BuildRenameGroup(pos, service, cluster, roleName, tgtRoleName, Ctx.Scoped);
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ AddStatementToBlocks(blocks, stmt);
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore25: {
+ // drop_role_stmt: DROP (USER|GROUP) (IF EXISTS)? role_name (COMMA role_name)* COMMA?;
+ Ctx.BodyPart();
+ auto& node = core.GetAlt_sql_stmt_core25().GetRule_drop_role_stmt1();
+
+ Ctx.Token(node.GetToken1());
+ const TPosition pos = Ctx.Pos();
+
+ TString service = Ctx.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ if (cluster.Empty()) {
+ Error() << "USE statement is missing - no default cluster is selected";
+ return false;
+ }
+
+ const bool isUser = node.GetToken2().GetId() == SQLv1LexerTokens::TOKEN_USER;
+ const bool force = node.HasBlock3();
+
+ TVector<TDeferredAtom> roles;
+ bool allowSystemRoles = true;
+ roles.emplace_back();
+ if (!RoleNameClause(node.GetRule_role_name4(), roles.back(), allowSystemRoles)) {
+ return false;
+ }
+
+ for (auto& item : node.GetBlock5()) {
+ roles.emplace_back();
+ if (!RoleNameClause(item.GetRule_role_name2(), roles.back(), allowSystemRoles)) {
+ return false;
+ }
+ }
+
+ AddStatementToBlocks(blocks, BuildDropRoles(pos, service, cluster, roles, isUser, force, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore26: {
+ // create_object_stmt: CREATE OBJECT name (TYPE type [WITH k=v,...]);
+ auto& node = core.GetAlt_sql_stmt_core26().GetRule_create_object_stmt1();
+ TObjectOperatorContext context(Ctx.Scoped);
+ if (node.GetRule_object_ref3().HasBlock1()) {
+ if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
+ false, context.ServiceId, context.Cluster)) {
+ return false;
+ }
+ }
+
+ const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
+ const TString& typeId = Id(node.GetRule_object_type_ref6().GetRule_an_id_or_type1(), *this);
+ std::map<TString, TDeferredAtom> kv;
+ if (node.HasBlock8()) {
+ if (!ParseObjectFeatures(kv, node.GetBlock8().GetRule_create_object_features1().GetRule_object_features2())) {
+ return false;
+ }
+ }
+
+ AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore27: {
+ // alter_object_stmt: ALTER OBJECT name (TYPE type [SET k=v,...]);
+ auto& node = core.GetAlt_sql_stmt_core27().GetRule_alter_object_stmt1();
+ TObjectOperatorContext context(Ctx.Scoped);
+ if (node.GetRule_object_ref3().HasBlock1()) {
+ if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
+ false, context.ServiceId, context.Cluster)) {
+ return false;
+ }
+ }
+
+ const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
+ const TString& typeId = Id(node.GetRule_object_type_ref6().GetRule_an_id_or_type1(), *this);
+ std::map<TString, TDeferredAtom> kv;
+ if (!ParseObjectFeatures(kv, node.GetRule_alter_object_features8().GetRule_object_features2())) {
+ return false;
+ }
+
+ AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore28: {
+ // drop_object_stmt: DROP OBJECT name (TYPE type [WITH k=v,...]);
+ auto& node = core.GetAlt_sql_stmt_core28().GetRule_drop_object_stmt1();
+ TObjectOperatorContext context(Ctx.Scoped);
+ if (node.GetRule_object_ref3().HasBlock1()) {
+ if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
+ false, context.ServiceId, context.Cluster)) {
+ return false;
+ }
+ }
+
+ const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
+ const TString& typeId = Id(node.GetRule_object_type_ref6().GetRule_an_id_or_type1(), *this);
+ std::map<TString, TDeferredAtom> kv;
+ if (node.HasBlock8()) {
+ if (!ParseObjectFeatures(kv, node.GetBlock8().GetRule_drop_object_features1().GetRule_object_features2())) {
+ return false;
+ }
+ }
+
+ AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore29: {
+ // create_external_data_source_stmt: CREATE EXTERNAL DATA SOURCE name WITH (k=v,...);
+ auto& node = core.GetAlt_sql_stmt_core29().GetRule_create_external_data_source_stmt1();
+ TObjectOperatorContext context(Ctx.Scoped);
+ if (node.GetRule_object_ref5().HasBlock1()) {
+ if (!ClusterExpr(node.GetRule_object_ref5().GetBlock1().GetRule_cluster_expr1(),
+ false, context.ServiceId, context.Cluster)) {
+ return false;
+ }
+ }
+
+ const TString& objectId = Id(node.GetRule_object_ref5().GetRule_id_or_at2(), *this).second;
+ std::map<TString, TDeferredAtom> kv;
+ if (!ParseExternalDataSourceSettings(kv, node.GetRule_with_table_settings6())) {
+ return false;
+ }
+
+ AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx.Pos(), BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId), "EXTERNAL_DATA_SOURCE", std::move(kv), context));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore30: {
+ // drop_external_data_source_stmt: DROP EXTERNAL DATA SOURCE name;
+ auto& node = core.GetAlt_sql_stmt_core30().GetRule_drop_external_data_source_stmt1();
+ TObjectOperatorContext context(Ctx.Scoped);
+ if (node.GetRule_object_ref5().HasBlock1()) {
+ if (!ClusterExpr(node.GetRule_object_ref5().GetBlock1().GetRule_cluster_expr1(),
+ false, context.ServiceId, context.Cluster)) {
+ return false;
+ }
+ }
+
+ const TString& objectId = Id(node.GetRule_object_ref5().GetRule_id_or_at2(), *this).second;
+ AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx.Pos(), BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId), "EXTERNAL_DATA_SOURCE", {}, context));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore31: {
+ // create_replication_stmt: CREATE ASYNC REPLICATION
+ auto& node = core.GetAlt_sql_stmt_core31().GetRule_create_replication_stmt1();
+ TObjectOperatorContext context(Ctx.Scoped);
+ if (node.GetRule_object_ref4().HasBlock1()) {
+ const auto& cluster = node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1();
+ if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
+ return false;
+ }
+ }
+
+ std::vector<std::pair<TString, TString>> targets;
+ if (!AsyncReplicationTarget(targets, node.GetRule_replication_target6(), *this)) {
+ return false;
+ }
+ for (auto& block : node.GetBlock7()) {
+ if (!AsyncReplicationTarget(targets, block.GetRule_replication_target2(), *this)) {
+ return false;
+ }
+ }
+
+ std::map<TString, TNodePtr> settings;
+ if (!AsyncReplicationSettings(settings, node.GetRule_replication_settings10(), *this)) {
+ return false;
+ }
+
+ const TString id = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
+ AddStatementToBlocks(blocks, BuildCreateAsyncReplication(Ctx.Pos(), id, std::move(targets), std::move(settings), context));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore32: {
+ // drop_replication_stmt: DROP ASYNC REPLICATION
+ auto& node = core.GetAlt_sql_stmt_core32().GetRule_drop_replication_stmt1();
+ TObjectOperatorContext context(Ctx.Scoped);
+ if (node.GetRule_object_ref4().HasBlock1()) {
+ const auto& cluster = node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1();
+ if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
+ return false;
+ }
+ }
+
+ const TString id = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
+ AddStatementToBlocks(blocks, BuildDropAsyncReplication(Ctx.Pos(), id, node.HasBlock5(), context));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore33: {
+ Ctx.BodyPart();
+ // create_topic_stmt: CREATE TOPIC topic1 (CONSUMER ...)? [WITH (opt1 = val1, ...]?
+ auto& rule = core.GetAlt_sql_stmt_core33().GetRule_create_topic_stmt1();
+ TTopicRef tr;
+ if (!TopicRefImpl(rule.GetRule_topic_ref3(), tr)) {
+ return false;
+ }
+
+ TCreateTopicParameters params;
+ if (rule.HasBlock4()) { //create_topic_entry (consumers)
+ auto& entries = rule.GetBlock4().GetRule_create_topic_entries1();
+ auto& firstEntry = entries.GetRule_create_topic_entry2();
+ if (!CreateTopicEntry(firstEntry, params)) {
+ return false;
+ }
+ const auto& list = entries.GetBlock3();
+ for (auto& node : list) {
+ if (!CreateTopicEntry(node.GetRule_create_topic_entry2(), params)) {
+ return false;
+ }
+ }
+
+ }
+ if (rule.HasBlock5()) { // with_topic_settings
+ auto& topic_settings_node = rule.GetBlock5().GetRule_with_topic_settings1().GetRule_topic_settings3();
+ CreateTopicSettings(topic_settings_node, params.TopicSettings);
+ }
+
+ AddStatementToBlocks(blocks, BuildCreateTopic(Ctx.Pos(), tr, params, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore34: {
+// alter_topic_stmt: ALTER TOPIC topic_ref alter_topic_action (COMMA alter_topic_action)*;
+
+ Ctx.BodyPart();
+ auto& rule = core.GetAlt_sql_stmt_core34().GetRule_alter_topic_stmt1();
+ TTopicRef tr;
+ if (!TopicRefImpl(rule.GetRule_topic_ref3(), tr)) {
+ return false;
+ }
+
+ TAlterTopicParameters params;
+ auto& firstEntry = rule.GetRule_alter_topic_action4();
+ if (!AlterTopicAction(firstEntry, params)) {
+ return false;
+ }
+ const auto& list = rule.GetBlock5();
+ for (auto& node : list) {
+ if (!AlterTopicAction(node.GetRule_alter_topic_action2(), params)) {
+ return false;
+ }
+ }
+
+ AddStatementToBlocks(blocks, BuildAlterTopic(Ctx.Pos(), tr, params, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore35: {
+ // drop_topic_stmt: DROP TOPIC
+ Ctx.BodyPart();
+ const auto& rule = core.GetAlt_sql_stmt_core35().GetRule_drop_topic_stmt1();
+
+ TTopicRef tr;
+ if (!TopicRefImpl(rule.GetRule_topic_ref3(), tr)) {
+ return false;
+ }
+ AddStatementToBlocks(blocks, BuildDropTopic(Ctx.Pos(), tr, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore36: {
+ // GRANT permission_name_target ON an_id_schema (COMMA an_id_schema)* TO role_name (COMMA role_name)* COMMA? (WITH GRANT OPTION)?;
+ Ctx.BodyPart();
+ auto& node = core.GetAlt_sql_stmt_core36().GetRule_grant_permissions_stmt1();
+
+ Ctx.Token(node.GetToken1());
+ const TPosition pos = Ctx.Pos();
+
+ TString service = Ctx.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ if (cluster.Empty()) {
+ Error() << "USE statement is missing - no default cluster is selected";
+ return false;
+ }
+
+ TVector<TDeferredAtom> permissions;
+ if (!PermissionNameClause(node.GetRule_permission_name_target2(), permissions, node.has_block10())) {
+ return false;
+ }
+
+ TVector<TDeferredAtom> schemaPathes;
+ schemaPathes.emplace_back(Ctx.Pos(), Id(node.GetRule_an_id_schema4(), *this));
+ for (const auto& item : node.GetBlock5()) {
+ schemaPathes.emplace_back(Ctx.Pos(), Id(item.GetRule_an_id_schema2(), *this));
+ }
+
+ TVector<TDeferredAtom> roleNames;
+ const bool allowSystemRoles = false;
+ roleNames.emplace_back();
+ if (!RoleNameClause(node.GetRule_role_name7(), roleNames.back(), allowSystemRoles)) {
+ return false;
+ }
+ for (const auto& item : node.GetBlock8()) {
+ roleNames.emplace_back();
+ if (!RoleNameClause(item.GetRule_role_name2(), roleNames.back(), allowSystemRoles)) {
+ return false;
+ }
+ }
+
+ AddStatementToBlocks(blocks, BuildGrantPermissions(pos, service, cluster, permissions, schemaPathes, roleNames, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore37:
+ {
+ // REVOKE (GRANT OPTION FOR)? permission_name_target ON an_id_schema (COMMA an_id_schema)* FROM role_name (COMMA role_name)*;
+ Ctx.BodyPart();
+ auto& node = core.GetAlt_sql_stmt_core37().GetRule_revoke_permissions_stmt1();
+
+ Ctx.Token(node.GetToken1());
+ const TPosition pos = Ctx.Pos();
+
+ TString service = Ctx.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ if (cluster.Empty()) {
+ Error() << "USE statement is missing - no default cluster is selected";
+ return false;
+ }
+
+ TVector<TDeferredAtom> permissions;
+ if (!PermissionNameClause(node.GetRule_permission_name_target3(), permissions, node.HasBlock2())) {
+ return false;
+ }
+
+ TVector<TDeferredAtom> schemaPathes;
+ schemaPathes.emplace_back(Ctx.Pos(), Id(node.GetRule_an_id_schema5(), *this));
+ for (const auto& item : node.GetBlock6()) {
+ schemaPathes.emplace_back(Ctx.Pos(), Id(item.GetRule_an_id_schema2(), *this));
+ }
+
+ TVector<TDeferredAtom> roleNames;
+ const bool allowSystemRoles = false;
+ roleNames.emplace_back();
+ if (!RoleNameClause(node.GetRule_role_name8(), roleNames.back(), allowSystemRoles)) {
+ return false;
+ }
+ for (const auto& item : node.GetBlock9()) {
+ roleNames.emplace_back();
+ if (!RoleNameClause(item.GetRule_role_name2(), roleNames.back(), allowSystemRoles)) {
+ return false;
+ }
+ }
+
+ AddStatementToBlocks(blocks, BuildRevokePermissions(pos, service, cluster, permissions, schemaPathes, roleNames, Ctx.Scoped));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore38:
+ {
+ // ALTER TABLESTORE object_ref alter_table_store_action (COMMA alter_table_store_action)*;
+ auto& node = core.GetAlt_sql_stmt_core38().GetRule_alter_table_store_stmt1();
+ TObjectOperatorContext context(Ctx.Scoped);
+
+ if (node.GetRule_object_ref3().HasBlock1()) {
+ if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
+ false, context.ServiceId, context.Cluster)) {
+ return false;
+ }
+ }
+
+ const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
+ const TString& typeId = "TABLESTORE";
+ std::map<TString, TDeferredAtom> kv;
+ if (!ParseTableStoreFeatures(kv, node.GetRule_alter_table_store_action4())) {
+ return false;
+ }
+
+ AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
+ break;
+ }
+ case TRule_sql_stmt_core::kAltSqlStmtCore39:
+ {
+ // create_object_stmt: UPSERT OBJECT name (TYPE type [WITH k=v,...]);
+ auto& node = core.GetAlt_sql_stmt_core39().GetRule_upsert_object_stmt1();
+ TObjectOperatorContext context(Ctx.Scoped);
+ if (node.GetRule_object_ref3().HasBlock1()) {
+ if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
+ false, context.ServiceId, context.Cluster)) {
+ return false;
+ }
+ }
+
+ const TString& objectId = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
+ const TString& typeId = Id(node.GetRule_object_type_ref6().GetRule_an_id_or_type1(), *this);
+ std::map<TString, TDeferredAtom> kv;
+ if (node.HasBlock8()) {
+ if (!ParseObjectFeatures(kv, node.GetBlock8().GetRule_create_object_features1().GetRule_object_features2())) {
+ return false;
+ }
+ }
+
+ AddStatementToBlocks(blocks, BuildUpsertObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
+ break;
+ }
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownStatement" + internalStatementName);
+ AltNotImplemented("sql_stmt_core", core);
+ return false;
+ }
+
+ Ctx.IncrementMonCounter("sql_features", internalStatementName);
+ return !Ctx.HasPendingErrors;
+}
+
+bool TSqlQuery::DeclareStatement(const TRule_declare_stmt& stmt) {
+ TNodePtr defaultValue;
+ if (stmt.HasBlock5()) {
+ TSqlExpression sqlExpr(Ctx, Mode);
+ auto exprOrId = sqlExpr.LiteralExpr(stmt.GetBlock5().GetRule_literal_value2());
+ if (!exprOrId) {
+ return false;
+ }
+ if (!exprOrId->Expr) {
+ Ctx.Error() << "Identifier is not expected here";
+ return false;
+ }
+ defaultValue = exprOrId->Expr;
+ }
+ if (defaultValue) {
+ Error() << "DEFAULT value not supported yet";
+ return false;
+ }
+ if (!Ctx.IsParseHeading()) {
+ Error() << "DECLARE statement should be in beginning of query, but it's possible to use PRAGMA or USE before it";
+ return false;
+ }
+
+ TString varName;
+ if (!NamedNodeImpl(stmt.GetRule_bind_parameter2(), varName, *this)) {
+ return false;
+ }
+ const auto varPos = Ctx.Pos();
+ const auto typeNode = TypeNode(stmt.GetRule_type_name4());
+ if (!typeNode) {
+ return false;
+ }
+ if (IsAnonymousName(varName)) {
+ Ctx.Error(varPos) << "Can not use anonymous name '" << varName << "' in DECLARE statement";
+ return false;
+ }
+
+ if (Ctx.IsAlreadyDeclared(varName)) {
+ Ctx.Warning(varPos, TIssuesIds::YQL_DUPLICATE_DECLARE) << "Duplicate declaration of '" << varName << "' will be ignored";
+ } else {
+ PushNamedAtom(varPos, varName);
+ Ctx.DeclareVariable(varName, typeNode);
+ }
+ return true;
+}
+
+bool TSqlQuery::ExportStatement(const TRule_export_stmt& stmt) {
+ if (Mode != NSQLTranslation::ESqlMode::LIBRARY || !TopLevel) {
+ Error() << "EXPORT statement should be used only in a library on the top level";
+ return false;
+ }
+
+ TVector<TSymbolNameWithPos> bindNames;
+ if (!BindList(stmt.GetRule_bind_parameter_list2(), bindNames)) {
+ return false;
+ }
+
+ for (auto& bindName : bindNames) {
+ if (!Ctx.AddExport(bindName.Pos, bindName.Name)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlQuery::AlterTableAction(const TRule_alter_table_action& node, TAlterTableParameters& params) {
+ if (params.RenameTo) {
+ // rename action is followed by some other actions
+ Error() << "RENAME TO can not be used together with another table action";
+ return false;
+ }
+
+ switch (node.Alt_case()) {
+ case TRule_alter_table_action::kAltAlterTableAction1: {
+ // ADD COLUMN
+ const auto& addRule = node.GetAlt_alter_table_action1().GetRule_alter_table_add_column1();
+ if (!AlterTableAddColumn(addRule, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction2: {
+ // DROP COLUMN
+ const auto& dropRule = node.GetAlt_alter_table_action2().GetRule_alter_table_drop_column1();
+ if (!AlterTableDropColumn(dropRule, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction3: {
+ // ALTER COLUMN
+ const auto& alterRule = node.GetAlt_alter_table_action3().GetRule_alter_table_alter_column1();
+ if (!AlterTableAlterColumn(alterRule, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction4: {
+ // ADD FAMILY
+ const auto& familyEntry = node.GetAlt_alter_table_action4().GetRule_alter_table_add_column_family1()
+ .GetRule_family_entry2();
+ if (!AlterTableAddFamily(familyEntry, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction5: {
+ // ALTER FAMILY
+ const auto& alterRule = node.GetAlt_alter_table_action5().GetRule_alter_table_alter_column_family1();
+ if (!AlterTableAlterFamily(alterRule, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction6: {
+ // SET (uncompat)
+ const auto& setRule = node.GetAlt_alter_table_action6().GetRule_alter_table_set_table_setting_uncompat1();
+ if (!AlterTableSetTableSetting(setRule, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction7: {
+ // SET (compat)
+ const auto& setRule = node.GetAlt_alter_table_action7().GetRule_alter_table_set_table_setting_compat1();
+ if (!AlterTableSetTableSetting(setRule, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction8: {
+ // RESET
+ const auto& setRule = node.GetAlt_alter_table_action8().GetRule_alter_table_reset_table_setting1();
+ if (!AlterTableResetTableSetting(setRule, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction9: {
+ // ADD INDEX
+ const auto& addIndex = node.GetAlt_alter_table_action9().GetRule_alter_table_add_index1();
+ if (!AlterTableAddIndex(addIndex, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction10: {
+ // DROP INDEX
+ const auto& dropIndex = node.GetAlt_alter_table_action10().GetRule_alter_table_drop_index1();
+ AlterTableDropIndex(dropIndex, params);
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction11: {
+ // RENAME TO
+ if (!params.IsEmpty()) {
+ // rename action follows some other actions
+ Error() << "RENAME TO can not be used together with another table action";
+ return false;
+ }
+
+ const auto& renameTo = node.GetAlt_alter_table_action11().GetRule_alter_table_rename_to1();
+ AlterTableRenameTo(renameTo, params);
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction12: {
+ // ADD CHANGEFEED
+ const auto& rule = node.GetAlt_alter_table_action12().GetRule_alter_table_add_changefeed1();
+ if (!AlterTableAddChangefeed(rule, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction13: {
+ // ALTER CHANGEFEED
+ const auto& rule = node.GetAlt_alter_table_action13().GetRule_alter_table_alter_changefeed1();
+ if (!AlterTableAlterChangefeed(rule, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction14: {
+ // DROP CHANGEFEED
+ const auto& rule = node.GetAlt_alter_table_action14().GetRule_alter_table_drop_changefeed1();
+ AlterTableDropChangefeed(rule, params);
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction15: {
+ // RENAME INDEX TO
+ if (!params.IsEmpty()) {
+ // rename action follows some other actions
+ Error() << "RENAME INDEX TO can not be used together with another table action";
+ return false;
+ }
+
+ const auto& renameTo = node.GetAlt_alter_table_action15().GetRule_alter_table_rename_index_to1();
+ AlterTableRenameIndexTo(renameTo, params);
+ break;
+ }
+
+ default:
+ AltNotImplemented("alter_table_action", node);
+ return false;
+ }
+ return true;
+}
+
+bool TSqlQuery::AlterTableAddColumn(const TRule_alter_table_add_column& node, TAlterTableParameters& params) {
+ auto columnSchema = ColumnSchemaImpl(node.GetRule_column_schema3());
+ if (!columnSchema) {
+ return false;
+ }
+ if (columnSchema->Families.size() > 1) {
+ Ctx.Error() << "Several column families for a single column are not yet supported";
+ return false;
+ }
+ params.AddColumns.push_back(*columnSchema);
+ return true;
+}
+
+bool TSqlQuery::AlterTableDropColumn(const TRule_alter_table_drop_column& node, TAlterTableParameters& params) {
+ TString name = Id(node.GetRule_an_id3(), *this);
+ params.DropColumns.push_back(name);
+ return true;
+}
+
+bool TSqlQuery::AlterTableAlterColumn(const TRule_alter_table_alter_column& node,
+ TAlterTableParameters& params)
+{
+ TString name = Id(node.GetRule_an_id3(), *this);
+ const TPosition pos(Context().Pos());
+ TVector<TIdentifier> families;
+ const auto& familyRelation = node.GetRule_family_relation5();
+ families.push_back(IdEx(familyRelation.GetRule_an_id2(), *this));
+ params.AlterColumns.emplace_back(pos, name, nullptr, false, families, false);
+ return true;
+}
+
+bool TSqlQuery::AlterTableAddFamily(const TRule_family_entry& node, TAlterTableParameters& params) {
+ TFamilyEntry family(IdEx(node.GetRule_an_id2(), *this));
+ if (!FillFamilySettings(node.GetRule_family_settings3(), family)) {
+ return false;
+ }
+ params.AddColumnFamilies.push_back(family);
+ return true;
+}
+
+bool TSqlQuery::AlterTableAlterFamily(const TRule_alter_table_alter_column_family& node,
+ TAlterTableParameters& params)
+{
+ TFamilyEntry* entry = nullptr;
+ TIdentifier name = IdEx(node.GetRule_an_id3(), *this);
+ for (auto& family : params.AlterColumnFamilies) {
+ if (family.Name.Name == name.Name) {
+ entry = &family;
+ break;
+ }
+ }
+ if (!entry) {
+ entry = &params.AlterColumnFamilies.emplace_back(name);
+ }
+ TIdentifier settingName = IdEx(node.GetRule_an_id5(), *this);
+ const TRule_family_setting_value& value = node.GetRule_family_setting_value6();
+ if (to_lower(settingName.Name) == "data") {
+ if (entry->Data) {
+ Ctx.Error() << "Redefinition of 'data' setting for column family '" << name.Name
+ << "' in one alter";
+ return false;
+ }
+ const TString stringValue(Ctx.Token(value.GetToken1()));
+ entry->Data = BuildLiteralSmartString(Ctx, stringValue);
+ } else if (to_lower(settingName.Name) == "compression") {
+ if (entry->Compression) {
+ Ctx.Error() << "Redefinition of 'compression' setting for column family '" << name.Name
+ << "' in one alter";
+ return false;
+ }
+ const TString stringValue(Ctx.Token(value.GetToken1()));
+ entry->Compression = BuildLiteralSmartString(Ctx, stringValue);
+ } else {
+ Ctx.Error() << "Unknown table setting: " << settingName.Name;
+ return false;
+ }
+ return true;
+}
+
+bool TSqlQuery::AlterTableSetTableSetting(const TRule_alter_table_set_table_setting_uncompat& node,
+ TAlterTableParameters& params)
+{
+ if (!StoreTableSettingsEntry(IdEx(node.GetRule_an_id2(), *this), node.GetRule_table_setting_value3(),
+ params.TableSettings, params.TableType, true)) {
+ return false;
+ }
+ return true;
+}
+
+bool TSqlQuery::AlterTableSetTableSetting(const TRule_alter_table_set_table_setting_compat& node,
+ TAlterTableParameters& params)
+{
+ const auto& firstEntry = node.GetRule_alter_table_setting_entry3();
+ if (!StoreTableSettingsEntry(IdEx(firstEntry.GetRule_an_id1(), *this), firstEntry.GetRule_table_setting_value3(),
+ params.TableSettings, params.TableType, true)) {
+ return false;
+ }
+ for (auto& block : node.GetBlock4()) {
+ const auto& entry = block.GetRule_alter_table_setting_entry2();
+ if (!StoreTableSettingsEntry(IdEx(entry.GetRule_an_id1(), *this), entry.GetRule_table_setting_value3(),
+ params.TableSettings, params.TableType, true)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlQuery::AlterTableResetTableSetting(const TRule_alter_table_reset_table_setting& node,
+ TAlterTableParameters& params)
+{
+ const auto& firstEntry = node.GetRule_an_id3();
+ if (!ResetTableSettingsEntry(IdEx(firstEntry, *this), params.TableSettings, params.TableType)) {
+ return false;
+ }
+ for (auto& block : node.GetBlock4()) {
+ const auto& entry = block.GetRule_an_id2();
+ if (!ResetTableSettingsEntry(IdEx(entry, *this), params.TableSettings, params.TableType)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlQuery::AlterTableAddIndex(const TRule_alter_table_add_index& node, TAlterTableParameters& params) {
+ if (!CreateTableIndex(node.GetRule_table_index2(), *this, params.AddIndexes)) {
+ return false;
+ }
+ return true;
+}
+
+void TSqlQuery::AlterTableDropIndex(const TRule_alter_table_drop_index& node, TAlterTableParameters& params) {
+ params.DropIndexes.emplace_back(IdEx(node.GetRule_an_id3(), *this));
+}
+
+void TSqlQuery::AlterTableRenameTo(const TRule_alter_table_rename_to& node, TAlterTableParameters& params) {
+ params.RenameTo = IdEx(node.GetRule_an_id_table3(), *this);
+}
+
+void TSqlQuery::AlterTableRenameIndexTo(const TRule_alter_table_rename_index_to& node, TAlterTableParameters& params) {
+ auto src = IdEx(node.GetRule_an_id3(), *this);
+ auto dst = IdEx(node.GetRule_an_id5(), *this);
+
+ params.RenameIndexTo = std::make_pair(src, dst);
+}
+
+bool TSqlQuery::AlterTableAddChangefeed(const TRule_alter_table_add_changefeed& node, TAlterTableParameters& params) {
+ TSqlExpression expr(Ctx, Mode);
+ return CreateChangefeed(node.GetRule_changefeed2(), expr, params.AddChangefeeds);
+}
+
+bool TSqlQuery::AlterTableAlterChangefeed(const TRule_alter_table_alter_changefeed& node, TAlterTableParameters& params) {
+ params.AlterChangefeeds.emplace_back(IdEx(node.GetRule_an_id3(), *this));
+
+ const auto& alter = node.GetRule_changefeed_alter_settings4();
+ switch (alter.Alt_case()) {
+ case TRule_changefeed_alter_settings::kAltChangefeedAlterSettings1: {
+ // DISABLE
+ params.AlterChangefeeds.back().Disable = true;
+ break;
+ }
+ case TRule_changefeed_alter_settings::kAltChangefeedAlterSettings2: {
+ // SET
+ const auto& rule = alter.GetAlt_changefeed_alter_settings2().GetRule_changefeed_settings3();
+ TSqlExpression expr(Ctx, Mode);
+ if (!ChangefeedSettings(rule, expr, params.AlterChangefeeds.back().Settings, true)) {
+ return false;
+ }
+ break;
+ }
+
+ default:
+ AltNotImplemented("changefeed_alter_settings", alter);
+ return false;
+ }
+
+ return true;
+}
+
+void TSqlQuery::AlterTableDropChangefeed(const TRule_alter_table_drop_changefeed& node, TAlterTableParameters& params) {
+ params.DropChangefeeds.emplace_back(IdEx(node.GetRule_an_id3(), *this));
+}
+
+TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success) {
+ success = false;
+ const TString& prefix = OptIdPrefixAsStr(stmt.GetRule_opt_id_prefix_or_type2(), *this);
+ const TString& lowerPrefix = to_lower(prefix);
+ const TString pragma(Id(stmt.GetRule_an_id3(), *this));
+ TString normalizedPragma(pragma);
+ TMaybe<TIssue> normalizeError = NormalizeName(Ctx.Pos(), normalizedPragma);
+ if (!normalizeError.Empty()) {
+ Error() << normalizeError->GetMessage();
+ Ctx.IncrementMonCounter("sql_errors", "NormalizePragmaError");
+ return {};
+ }
+
+ TVector<TDeferredAtom> values;
+ TVector<const TRule_pragma_value*> pragmaValues;
+ bool pragmaValueDefault = false;
+ if (stmt.GetBlock4().HasAlt1()) {
+ pragmaValues.push_back(&stmt.GetBlock4().GetAlt1().GetRule_pragma_value2());
+ }
+ else if (stmt.GetBlock4().HasAlt2()) {
+ pragmaValues.push_back(&stmt.GetBlock4().GetAlt2().GetRule_pragma_value2());
+ for (auto& additionalValue : stmt.GetBlock4().GetAlt2().GetBlock3()) {
+ pragmaValues.push_back(&additionalValue.GetRule_pragma_value2());
+ }
+ }
+
+ const bool withConfigure = prefix || normalizedPragma == "file" || normalizedPragma == "folder" || normalizedPragma == "udf";
+ static const THashSet<TStringBuf> lexicalScopePragmas = {"classicdivision", "strictjoinkeytypes", "disablestrictjoinkeytypes", "checkedops"};
+ const bool hasLexicalScope = withConfigure || lexicalScopePragmas.contains(normalizedPragma);
+ const bool withFileAlias = normalizedPragma == "file" || normalizedPragma == "folder" || normalizedPragma == "library" || normalizedPragma == "udf";
+ for (auto pragmaValue : pragmaValues) {
+ if (pragmaValue->HasAlt_pragma_value3()) {
+ auto value = Token(pragmaValue->GetAlt_pragma_value3().GetToken1());
+ auto parsed = StringContentOrIdContent(Ctx, Ctx.Pos(), value);
+ if (!parsed) {
+ return {};
+ }
+
+ TString prefix;
+ if (withFileAlias && (values.size() == 0)) {
+ prefix = Ctx.Settings.FileAliasPrefix;
+ }
+
+ values.push_back(TDeferredAtom(Ctx.Pos(), prefix + parsed->Content));
+ }
+ else if (pragmaValue->HasAlt_pragma_value2()
+ && pragmaValue->GetAlt_pragma_value2().GetRule_id1().HasAlt_id2()
+ && "default" == to_lower(Id(pragmaValue->GetAlt_pragma_value2().GetRule_id1(), *this)))
+ {
+ pragmaValueDefault = true;
+ }
+ else if (withConfigure && pragmaValue->HasAlt_pragma_value5()) {
+ TString bindName;
+ if (!NamedNodeImpl(pragmaValue->GetAlt_pragma_value5().GetRule_bind_parameter1(), bindName, *this)) {
+ return {};
+ }
+ auto namedNode = GetNamedNode(bindName);
+ if (!namedNode) {
+ return {};
+ }
+
+ TString prefix;
+ if (withFileAlias && (values.size() == 0)) {
+ prefix = Ctx.Settings.FileAliasPrefix;
+ }
+
+ TDeferredAtom atom;
+ MakeTableFromExpression(Ctx, namedNode, atom, prefix);
+ values.push_back(atom);
+ } else {
+ Error() << "Expected string" << (withConfigure ? ", named parameter" : "") << " or 'default' keyword as pragma value for pragma: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ }
+
+ if (prefix.empty()) {
+ if (!TopLevel && !hasLexicalScope) {
+ Error() << "This pragma '" << pragma << "' is not allowed to be used in actions or subqueries";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return{};
+ }
+
+ if (normalizedPragma == "refselect") {
+ Ctx.PragmaRefSelect = true;
+ Ctx.IncrementMonCounter("sql_pragma", "RefSelect");
+ } else if (normalizedPragma == "sampleselect") {
+ Ctx.PragmaSampleSelect = true;
+ Ctx.IncrementMonCounter("sql_pragma", "SampleSelect");
+ } else if (normalizedPragma == "allowdotinalias") {
+ Ctx.PragmaAllowDotInAlias = true;
+ Ctx.IncrementMonCounter("sql_pragma", "AllowDotInAlias");
+ } else if (normalizedPragma == "udf") {
+ if ((values.size() != 1 && values.size() != 2) || pragmaValueDefault) {
+ Error() << "Expected file alias as pragma value";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ Ctx.IncrementMonCounter("sql_pragma", "udf");
+ success = true;
+ return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "ImportUdfs", values, false);
+ } else if (normalizedPragma == "packageversion") {
+ if (values.size() != 2 || pragmaValueDefault) {
+ Error() << "Expected package name and version";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ ui32 version = 0;
+ TString versionString;
+ TString packageName;
+ if (!values[0].GetLiteral(packageName, Ctx) || !values[1].GetLiteral(versionString, Ctx)) {
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ if (!PackageVersionFromString(versionString, version)) {
+ Error() << "Unable to parse package version, possible values 0, 1, draft, release";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ Ctx.SetPackageVersion(packageName, version);
+ Ctx.IncrementMonCounter("sql_pragma", "PackageVersion");
+ success = true;
+ return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "SetPackageVersion", TVector<TDeferredAtom>{ values[0], TDeferredAtom(values[1].Build()->GetPos(), ToString(version)) }, false);
+ } else if (normalizedPragma == "file") {
+ if (values.size() < 2U || values.size() > 3U || pragmaValueDefault) {
+ Error() << "Expected file alias, url and optional token name as pragma values";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ Ctx.IncrementMonCounter("sql_pragma", "file");
+ success = true;
+ return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "AddFileByUrl", values, false);
+ } else if (normalizedPragma == "folder") {
+ if (values.size() < 2U || values.size() > 3U || pragmaValueDefault) {
+ Error() << "Expected folder alias, url and optional token name as pragma values";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_pragma", "folder");
+ success = true;
+ return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "AddFolderByUrl", values, false);
+ } else if (normalizedPragma == "library") {
+ if (values.size() < 1) {
+ Error() << "Expected non-empty file alias";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return{};
+ }
+ if (values.size() > 3) {
+ Error() << "Expected file alias and optional url and token name as pragma values";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return{};
+ }
+
+ TString alias;
+ if (!values.front().GetLiteral(alias, Ctx)) {
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return{};
+ }
+
+ TContext::TLibraryStuff library;
+ std::get<TPosition>(library) = values.front().Build()->GetPos();
+ if (values.size() > 1) {
+ auto& first = std::get<1U>(library);
+ first.emplace();
+ first->second = values[1].Build()->GetPos();
+ if (!values[1].GetLiteral(first->first, Ctx)) {
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return{};
+ }
+
+ TSet<TString> names;
+ SubstParameters(first->first, Nothing(), &names);
+ for (const auto& name : names) {
+ auto namedNode = GetNamedNode(name);
+ if (!namedNode) {
+ return{};
+ }
+ }
+ if (values.size() > 2) {
+ auto& second = std::get<2U>(library);
+ second.emplace();
+ second->second = values[2].Build()->GetPos();
+ if (!values[2].GetLiteral(second->first, Ctx)) {
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return{};
+ }
+ }
+ }
+
+ Ctx.Libraries[alias] = std::move(library);
+ Ctx.IncrementMonCounter("sql_pragma", "library");
+ } else if (normalizedPragma == "directread") {
+ Ctx.PragmaDirectRead = true;
+ Ctx.IncrementMonCounter("sql_pragma", "DirectRead");
+ } else if (normalizedPragma == "equijoin") {
+ Ctx.IncrementMonCounter("sql_pragma", "EquiJoin");
+ } else if (normalizedPragma == "autocommit") {
+ Ctx.PragmaAutoCommit = true;
+ Ctx.IncrementMonCounter("sql_pragma", "AutoCommit");
+ } else if (normalizedPragma == "usetableprefixforeach") {
+ Ctx.PragmaUseTablePrefixForEach = true;
+ Ctx.IncrementMonCounter("sql_pragma", "UseTablePrefixForEach");
+ } else if (normalizedPragma == "tablepathprefix") {
+ TString value;
+ TMaybe<TString> arg;
+
+ if (values.size() == 1 || values.size() == 2) {
+ if (!values.front().GetLiteral(value, Ctx)) {
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ if (values.size() == 2) {
+ arg = value;
+ if (!values.back().GetLiteral(value, Ctx)) {
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ }
+
+ if (!Ctx.SetPathPrefix(value, arg)) {
+ return {};
+ }
+ } else {
+ Error() << "Expected path prefix or tuple of (Provider, PathPrefix) or"
+ << " (Cluster, PathPrefix) as pragma value";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ Ctx.IncrementMonCounter("sql_pragma", "PathPrefix");
+ } else if (normalizedPragma == "groupbylimit") {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.PragmaGroupByLimit)) {
+ Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_pragma", "GroupByLimit");
+ } else if (normalizedPragma == "groupbycubelimit") {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.PragmaGroupByCubeLimit)) {
+ Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_pragma", "GroupByCubeLimit");
+ } else if (normalizedPragma == "simplecolumns") {
+ Ctx.SimpleColumns = true;
+ Ctx.IncrementMonCounter("sql_pragma", "SimpleColumns");
+ } else if (normalizedPragma == "disablesimplecolumns") {
+ Ctx.SimpleColumns = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableSimpleColumns");
+ } else if (normalizedPragma == "coalescejoinkeysonqualifiedall") {
+ Ctx.CoalesceJoinKeysOnQualifiedAll = true;
+ Ctx.IncrementMonCounter("sql_pragma", "CoalesceJoinKeysOnQualifiedAll");
+ } else if (normalizedPragma == "disablecoalescejoinkeysonqualifiedall") {
+ Ctx.CoalesceJoinKeysOnQualifiedAll = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableCoalesceJoinKeysOnQualifiedAll");
+ } else if (normalizedPragma == "resultrowslimit") {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.ResultRowsLimit)) {
+ Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ Ctx.IncrementMonCounter("sql_pragma", "ResultRowsLimit");
+ } else if (normalizedPragma == "resultsizelimit") {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.ResultSizeLimit)) {
+ Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ Ctx.IncrementMonCounter("sql_pragma", "ResultSizeLimit");
+ } else if (normalizedPragma == "warning") {
+ if (values.size() != 2U || values.front().Empty() || values.back().Empty()) {
+ Error() << "Expected arguments <action>, <issueId> for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ TString action;
+ TString codePattern;
+ if (!values[0].GetLiteral(action, Ctx) || !values[1].GetLiteral(codePattern, Ctx)) {
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ TWarningRule rule;
+ TString parseError;
+ auto parseResult = TWarningRule::ParseFrom(codePattern, action, rule, parseError);
+ switch (parseResult) {
+ case TWarningRule::EParseResult::PARSE_OK:
+ break;
+ case TWarningRule::EParseResult::PARSE_PATTERN_FAIL:
+ case TWarningRule::EParseResult::PARSE_ACTION_FAIL:
+ Ctx.Error() << parseError;
+ return {};
+ default:
+ Y_ENSURE(false, "Unknown parse result");
+ }
+
+ Ctx.WarningPolicy.AddRule(rule);
+ if (rule.GetPattern() == "*" && rule.GetAction() == EWarningAction::ERROR) {
+ // Keep 'unused symbol' warning as warning unless explicitly set to error
+ Ctx.SetWarningPolicyFor(TIssuesIds::YQL_UNUSED_SYMBOL, EWarningAction::DEFAULT);
+ }
+
+ Ctx.IncrementMonCounter("sql_pragma", "warning");
+ } else if (normalizedPragma == "greetings") {
+ if (values.size() > 1) {
+ Error() << "Multiple arguments are not expected for " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ if (values.empty()) {
+ values.emplace_back(TDeferredAtom(Ctx.Pos(), "Hello, world! And best wishes from the YQL Team!"));
+ }
+
+ TString arg;
+ if (!values.front().GetLiteral(arg, Ctx)) {
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.Info(Ctx.Pos()) << arg;
+ } else if (normalizedPragma == "warningmsg") {
+ if (values.size() != 1 || !values[0].GetLiteral()) {
+ Error() << "Expected string literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_PRAGMA_WARNING_MSG) << *values[0].GetLiteral();
+ } else if (normalizedPragma == "errormsg") {
+ if (values.size() != 1 || !values[0].GetLiteral()) {
+ Error() << "Expected string literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.Error(Ctx.Pos()) << *values[0].GetLiteral();
+ } else if (normalizedPragma == "classicdivision") {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.Scoped->PragmaClassicDivision)) {
+ Error() << "Expected boolean literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_pragma", "ClassicDivision");
+ } else if (normalizedPragma == "checkedops") {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.Scoped->PragmaCheckedOps)) {
+ Error() << "Expected boolean literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_pragma", "CheckedOps");
+ } else if (normalizedPragma == "disableunordered") {
+ Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
+ << "Use of deprecated DisableUnordered pragma. It will be dropped soon";
+ } else if (normalizedPragma == "pullupflatmapoverjoin") {
+ Ctx.PragmaPullUpFlatMapOverJoin = true;
+ Ctx.IncrementMonCounter("sql_pragma", "PullUpFlatMapOverJoin");
+ } else if (normalizedPragma == "disablepullupflatmapoverjoin") {
+ Ctx.PragmaPullUpFlatMapOverJoin = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisablePullUpFlatMapOverJoin");
+ } else if (normalizedPragma == "allowunnamedcolumns") {
+ Ctx.WarnUnnamedColumns = false;
+ Ctx.IncrementMonCounter("sql_pragma", "AllowUnnamedColumns");
+ } else if (normalizedPragma == "warnunnamedcolumns") {
+ Ctx.WarnUnnamedColumns = true;
+ Ctx.IncrementMonCounter("sql_pragma", "WarnUnnamedColumns");
+ } else if (normalizedPragma == "discoverymode") {
+ Ctx.DiscoveryMode = true;
+ Ctx.IncrementMonCounter("sql_pragma", "DiscoveryMode");
+ } else if (normalizedPragma == "enablesystemcolumns") {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.EnableSystemColumns)) {
+ Error() << "Expected boolean literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_pragma", "EnableSystemColumns");
+ } else if (normalizedPragma == "ansiinforemptyornullableitemscollections") {
+ Ctx.AnsiInForEmptyOrNullableItemsCollections = true;
+ Ctx.IncrementMonCounter("sql_pragma", "AnsiInForEmptyOrNullableItemsCollections");
+ } else if (normalizedPragma == "disableansiinforemptyornullableitemscollections") {
+ Ctx.AnsiInForEmptyOrNullableItemsCollections = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiInForEmptyOrNullableItemsCollections");
+ } else if (normalizedPragma == "dqengine") {
+ Ctx.IncrementMonCounter("sql_pragma", "DqEngine");
+ if (values.size() != 1 || !values[0].GetLiteral()
+ || ! (*values[0].GetLiteral() == "disable" || *values[0].GetLiteral() == "auto" || *values[0].GetLiteral() == "force"))
+ {
+ Error() << "Expected `disable|auto|force' argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ if (*values[0].GetLiteral() == "disable") {
+ Ctx.DqEngineEnable = false;
+ Ctx.DqEngineForce = false;
+ } else if (*values[0].GetLiteral() == "force") {
+ Ctx.DqEngineEnable = true;
+ Ctx.DqEngineForce = true;
+ } else if (*values[0].GetLiteral() == "auto") {
+ Ctx.DqEngineEnable = true;
+ Ctx.DqEngineForce = false;
+ }
+ } else if (normalizedPragma == "ansirankfornullablekeys") {
+ Ctx.AnsiRankForNullableKeys = true;
+ Ctx.IncrementMonCounter("sql_pragma", "AnsiRankForNullableKeys");
+ } else if (normalizedPragma == "disableansirankfornullablekeys") {
+ Ctx.AnsiRankForNullableKeys = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiRankForNullableKeys");
+ } else if (normalizedPragma == "ansiorderbylimitinunionall") {
+ Ctx.AnsiOrderByLimitInUnionAll = true;
+ Ctx.IncrementMonCounter("sql_pragma", "AnsiOrderByLimitInUnionAll");
+ } else if (!Ctx.EnforceAnsiOrderByLimitInUnionAll && normalizedPragma == "disableansiorderbylimitinunionall") {
+ Ctx.AnsiOrderByLimitInUnionAll = false;
+ Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
+ << "Use of deprecated DisableAnsiOrderByLimitInUnionAll pragma. It will be dropped soon";
+ Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiOrderByLimitInUnionAll");
+ } else if (normalizedPragma == "ansioptionalas") {
+ Ctx.AnsiOptionalAs = true;
+ Ctx.IncrementMonCounter("sql_pragma", "AnsiOptionalAs");
+ } else if (normalizedPragma == "disableansioptionalas") {
+ Ctx.AnsiOptionalAs = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiOptionalAs");
+ } else if (normalizedPragma == "warnonansialiasshadowing") {
+ Ctx.WarnOnAnsiAliasShadowing = true;
+ Ctx.IncrementMonCounter("sql_pragma", "WarnOnAnsiAliasShadowing");
+ } else if (normalizedPragma == "disablewarnonansialiasshadowing") {
+ Ctx.WarnOnAnsiAliasShadowing = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableWarnOnAnsiAliasShadowing");
+ } else if (normalizedPragma == "regexusere2") {
+ if (values.size() != 1U || !values.front().GetLiteral() || !TryFromString(*values.front().GetLiteral(), Ctx.PragmaRegexUseRe2)) {
+ Error() << "Expected 'true' or 'false' for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ Ctx.IncrementMonCounter("sql_pragma", "RegexUseRe2");
+ } else if (normalizedPragma == "jsonqueryreturnsjsondocument") {
+ Ctx.JsonQueryReturnsJsonDocument = true;
+ Ctx.IncrementMonCounter("sql_pragma", "JsonQueryReturnsJsonDocument");
+ } else if (normalizedPragma == "disablejsonqueryreturnsjsondocument") {
+ Ctx.JsonQueryReturnsJsonDocument = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableJsonQueryReturnsJsonDocument");
+ } else if (normalizedPragma == "orderedcolumns") {
+ Ctx.OrderedColumns = true;
+ Ctx.IncrementMonCounter("sql_pragma", "OrderedColumns");
+ } else if (normalizedPragma == "disableorderedcolumns") {
+ Ctx.OrderedColumns = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableOrderedColumns");
+ } else if (normalizedPragma == "positionalunionall") {
+ Ctx.PositionalUnionAll = true;
+ // PositionalUnionAll implies OrderedColumns
+ Ctx.OrderedColumns = true;
+ Ctx.IncrementMonCounter("sql_pragma", "PositionalUnionAll");
+ } else if (normalizedPragma == "pqreadby") {
+ if (values.size() != 1 || !values[0].GetLiteral()) {
+ Error() << "Expected string literal as a single argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ // special guard to raise error on situation:
+ // use cluster1;
+ // pragma PqReadPqBy="cluster2";
+ const TString* currentClusterLiteral = Ctx.Scoped->CurrCluster.GetLiteral();
+ if (currentClusterLiteral && *values[0].GetLiteral() != "dq" && *currentClusterLiteral != *values[0].GetLiteral()) {
+ Error() << "Cluster in PqReadPqBy pragma differs from cluster specified in USE statement: " << *values[0].GetLiteral() << " != " << *currentClusterLiteral;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ Ctx.PqReadByRtmrCluster = *values[0].GetLiteral();
+ Ctx.IncrementMonCounter("sql_pragma", "PqReadBy");
+ } else if (normalizedPragma == "bogousstaringroupbyoverjoin") {
+ Ctx.BogousStarInGroupByOverJoin = true;
+ Ctx.IncrementMonCounter("sql_pragma", "BogousStarInGroupByOverJoin");
+ } else if (normalizedPragma == "strictjoinkeytypes") {
+ Ctx.Scoped->StrictJoinKeyTypes = true;
+ Ctx.IncrementMonCounter("sql_pragma", "StrictJoinKeyTypes");
+ } else if (normalizedPragma == "disablestrictjoinkeytypes") {
+ Ctx.Scoped->StrictJoinKeyTypes = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableStrictJoinKeyTypes");
+ } else if (normalizedPragma == "unorderedsubqueries") {
+ Ctx.UnorderedSubqueries = true;
+ Ctx.IncrementMonCounter("sql_pragma", "UnorderedSubqueries");
+ } else if (normalizedPragma == "disableunorderedsubqueries") {
+ Ctx.UnorderedSubqueries = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableUnorderedSubqueries");
+ } else if (normalizedPragma == "datawatermarks") {
+ if (values.size() != 1 || !values[0].GetLiteral()
+ || ! (*values[0].GetLiteral() == "enable" || *values[0].GetLiteral() == "disable"))
+ {
+ Error() << "Expected `enable|disable' argument for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ if (*values[0].GetLiteral() == "enable") {
+ Ctx.PragmaDataWatermarks = true;
+ } else if (*values[0].GetLiteral() == "disable") {
+ Ctx.PragmaDataWatermarks = false;
+ }
+
+ Ctx.IncrementMonCounter("sql_pragma", "DataWatermarks");
+ } else if (normalizedPragma == "flexibletypes") {
+ Ctx.FlexibleTypes = true;
+ Ctx.IncrementMonCounter("sql_pragma", "FlexibleTypes");
+ } else if (normalizedPragma == "disableflexibletypes") {
+ Ctx.FlexibleTypes = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableFlexibleTypes");
+ } else if (normalizedPragma == "ansicurrentrow") {
+ Ctx.AnsiCurrentRow = true;
+ Ctx.IncrementMonCounter("sql_pragma", "AnsiCurrentRow");
+ } else if (normalizedPragma == "disableansicurrentrow") {
+ Ctx.AnsiCurrentRow = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiCurrentRow");
+ } else if (normalizedPragma == "emitaggapply") {
+ Ctx.EmitAggApply = true;
+ Ctx.IncrementMonCounter("sql_pragma", "EmitAggApply");
+ } else if (normalizedPragma == "disableemitaggapply") {
+ Ctx.EmitAggApply = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableEmitAggApply");
+ } else if (normalizedPragma == "useblocks") {
+ Ctx.UseBlocks = true;
+ Ctx.IncrementMonCounter("sql_pragma", "UseBlocks");
+ } else if (normalizedPragma == "disableuseblocks") {
+ Ctx.UseBlocks = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableUseBlocks");
+ } else if (normalizedPragma == "ansilike") {
+ Ctx.AnsiLike = true;
+ Ctx.IncrementMonCounter("sql_pragma", "AnsiLike");
+ } else if (normalizedPragma == "disableansilike") {
+ Ctx.AnsiLike = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiLike");
+ } else {
+ Error() << "Unknown pragma: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "UnknownPragma");
+ return {};
+ }
+ } else {
+ if (lowerPrefix == "yson") {
+ if (!TopLevel) {
+ Error() << "This pragma '" << pragma << "' is not allowed to be used in actions";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ if (normalizedPragma == "fast") {
+ Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
+ << "Use of deprecated yson.Fast pragma. It will be dropped soon";
+ success = true;
+ return {};
+ } else if (normalizedPragma == "autoconvert") {
+ Ctx.PragmaYsonAutoConvert = true;
+ success = true;
+ return {};
+ } else if (normalizedPragma == "strict") {
+ if (values.size() == 0U) {
+ Ctx.PragmaYsonStrict = true;
+ success = true;
+ } else if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), Ctx.PragmaYsonStrict)) {
+ success = true;
+ } else {
+ Error() << "Expected 'true', 'false' or no parameter for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ }
+ return {};
+ } else if (normalizedPragma == "disablestrict") {
+ if (values.size() == 0U) {
+ Ctx.PragmaYsonStrict = false;
+ success = true;
+ return {};
+ }
+ bool pragmaYsonDisableStrict;
+ if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), pragmaYsonDisableStrict)) {
+ Ctx.PragmaYsonStrict = !pragmaYsonDisableStrict;
+ success = true;
+ } else {
+ Error() << "Expected 'true', 'false' or no parameter for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ }
+ return {};
+ } else if (normalizedPragma == "casttostring" || normalizedPragma == "disablecasttostring") {
+ const bool allow = normalizedPragma == "casttostring";
+ if (values.size() == 0U) {
+ Ctx.YsonCastToString = allow;
+ success = true;
+ return {};
+ }
+ bool pragmaYsonCastToString;
+ if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), pragmaYsonCastToString)) {
+ Ctx.PragmaYsonStrict = allow ? pragmaYsonCastToString : !pragmaYsonCastToString;
+ success = true;
+ } else {
+ Error() << "Expected 'true', 'false' or no parameter for: " << pragma;
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ }
+ return {};
+ } else {
+ Error() << "Unknown pragma: '" << pragma << "'";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+
+ } else if (std::find(Providers.cbegin(), Providers.cend(), lowerPrefix) == Providers.cend()) {
+ if (!Ctx.HasCluster(prefix)) {
+ Error() << "Unknown pragma prefix: " << prefix << ", please use cluster name or one of provider " <<
+ JoinRange(", ", Providers.cbegin(), Providers.cend());
+ Ctx.IncrementMonCounter("sql_errors", "UnknownPragma");
+ return {};
+ }
+ }
+
+ if (normalizedPragma != "flags" && normalizedPragma != "packageversion") {
+ if (values.size() > 1) {
+ Error() << "Expected at most one value in the pragma";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ } else {
+ if (pragmaValueDefault || values.size() < 1) {
+ Error() << "Expected at least one value in the pragma";
+ Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ return {};
+ }
+ }
+
+ success = true;
+ Ctx.IncrementMonCounter("sql_pragma", pragma);
+ return BuildPragma(Ctx.Pos(), lowerPrefix, normalizedPragma, values, pragmaValueDefault);
+ }
+ success = true;
+ return {};
+}
+
+TNodePtr TSqlQuery::Build(const TRule_delete_stmt& stmt) {
+ TTableRef table;
+ if (!SimpleTableRefImpl(stmt.GetRule_simple_table_ref3(), table)) {
+ return nullptr;
+ }
+
+ const bool isKikimr = table.Service == KikimrProviderName;
+ if (!isKikimr) {
+ Ctx.Error(GetPos(stmt.GetToken1())) << "DELETE is unsupported for " << table.Service;
+ return nullptr;
+ }
+
+ TSourcePtr source = BuildTableSource(Ctx.Pos(), table);
+
+ if (stmt.HasBlock4()) {
+ switch (stmt.GetBlock4().Alt_case()) {
+ case TRule_delete_stmt_TBlock4::kAlt1: {
+ const auto& alt = stmt.GetBlock4().GetAlt1();
+
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression sqlExpr(Ctx, Mode);
+ auto whereExpr = sqlExpr.Build(alt.GetRule_expr2());
+ if (!whereExpr) {
+ return nullptr;
+ }
+ source->AddFilter(Ctx, whereExpr);
+ break;
+ }
+
+ case TRule_delete_stmt_TBlock4::kAlt2: {
+ const auto& alt = stmt.GetBlock4().GetAlt2();
+
+ auto values = TSqlIntoValues(Ctx, Mode).Build(alt.GetRule_into_values_source2(), "DELETE ON");
+ if (!values) {
+ return nullptr;
+ }
+
+ return BuildWriteColumns(Ctx.Pos(), Ctx.Scoped, table, EWriteColumnMode::DeleteOn, std::move(values));
+ }
+
+ default:
+ return nullptr;
+ }
+ }
+
+ return BuildDelete(Ctx.Pos(), Ctx.Scoped, table, std::move(source));
+}
+
+TNodePtr TSqlQuery::Build(const TRule_update_stmt& stmt) {
+ TTableRef table;
+ if (!SimpleTableRefImpl(stmt.GetRule_simple_table_ref2(), table)) {
+ return nullptr;
+ }
+
+ const bool isKikimr = table.Service == KikimrProviderName;
+
+ if (!isKikimr) {
+ Ctx.Error(GetPos(stmt.GetToken1())) << "UPDATE is unsupported for " << table.Service;
+ return nullptr;
+ }
+
+ switch (stmt.GetBlock3().Alt_case()) {
+ case TRule_update_stmt_TBlock3::kAlt1: {
+ const auto& alt = stmt.GetBlock3().GetAlt1();
+ TSourcePtr values = Build(alt.GetRule_set_clause_choice2());
+ auto source = BuildTableSource(Ctx.Pos(), table);
+
+ if (alt.HasBlock3()) {
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression sqlExpr(Ctx, Mode);
+ auto whereExpr = sqlExpr.Build(alt.GetBlock3().GetRule_expr2());
+ if (!whereExpr) {
+ return nullptr;
+ }
+ source->AddFilter(Ctx, whereExpr);
+ }
+
+ return BuildUpdateColumns(Ctx.Pos(), Ctx.Scoped, table, std::move(values), std::move(source));
+ }
+
+ case TRule_update_stmt_TBlock3::kAlt2: {
+ const auto& alt = stmt.GetBlock3().GetAlt2();
+
+ auto values = TSqlIntoValues(Ctx, Mode).Build(alt.GetRule_into_values_source2(), "UPDATE ON");
+ if (!values) {
+ return nullptr;
+ }
+
+ return BuildWriteColumns(Ctx.Pos(), Ctx.Scoped, table, EWriteColumnMode::UpdateOn, std::move(values));
+ }
+
+ default:
+ return nullptr;
+ }
+}
+
+TSourcePtr TSqlQuery::Build(const TRule_set_clause_choice& stmt) {
+ switch (stmt.Alt_case()) {
+ case TRule_set_clause_choice::kAltSetClauseChoice1:
+ return Build(stmt.GetAlt_set_clause_choice1().GetRule_set_clause_list1());
+ case TRule_set_clause_choice::kAltSetClauseChoice2:
+ return Build(stmt.GetAlt_set_clause_choice2().GetRule_multiple_column_assignment1());
+ default:
+ AltNotImplemented("set_clause_choice", stmt);
+ return nullptr;
+ }
+}
+
+bool TSqlQuery::FillSetClause(const TRule_set_clause& node, TVector<TString>& targetList, TVector<TNodePtr>& values) {
+ targetList.push_back(ColumnNameAsSingleStr(*this, node.GetRule_set_target1().GetRule_column_name1()));
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression sqlExpr(Ctx, Mode);
+ if (!Expr(sqlExpr, values, node.GetRule_expr3())) {
+ return false;
+ }
+ return true;
+}
+
+TSourcePtr TSqlQuery::Build(const TRule_set_clause_list& stmt) {
+ TVector<TString> targetList;
+ TVector<TNodePtr> values;
+ const TPosition pos(Ctx.Pos());
+ if (!FillSetClause(stmt.GetRule_set_clause1(), targetList, values)) {
+ return nullptr;
+ }
+ for (auto& block: stmt.GetBlock2()) {
+ if (!FillSetClause(block.GetRule_set_clause2(), targetList, values)) {
+ return nullptr;
+ }
+ }
+ Y_VERIFY_DEBUG(targetList.size() == values.size());
+ return BuildUpdateValues(pos, targetList, values);
+}
+
+TSourcePtr TSqlQuery::Build(const TRule_multiple_column_assignment& stmt) {
+ TVector<TString> targetList;
+ FillTargetList(*this, stmt.GetRule_set_target_list1(), targetList);
+ auto simpleValuesNode = stmt.GetRule_simple_values_source4();
+ const TPosition pos(Ctx.Pos());
+ switch (simpleValuesNode.Alt_case()) {
+ case TRule_simple_values_source::kAltSimpleValuesSource1: {
+ TVector<TNodePtr> values;
+ TSqlExpression sqlExpr(Ctx, Mode);
+ if (!ExprList(sqlExpr, values, simpleValuesNode.GetAlt_simple_values_source1().GetRule_expr_list1())) {
+ return nullptr;
+ }
+ return BuildUpdateValues(pos, targetList, values);
+ }
+ case TRule_simple_values_source::kAltSimpleValuesSource2: {
+ TSqlSelect select(Ctx, Mode);
+ TPosition selectPos;
+ auto source = select.Build(simpleValuesNode.GetAlt_simple_values_source2().GetRule_select_stmt1(), selectPos);
+ if (!source) {
+ return nullptr;
+ }
+ return BuildWriteValues(pos, "UPDATE", targetList, std::move(source));
+ }
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownSimpleValuesSourceAlt");
+ AltNotImplemented("simple_values_source", simpleValuesNode);
+ return nullptr;
+ }
+}
+
+TNodePtr TSqlQuery::Build(const TSQLv1ParserAST& ast) {
+ if (Mode == NSQLTranslation::ESqlMode::QUERY) {
+ // inject externally declared named expressions
+ for (auto [name, type] : Ctx.Settings.DeclaredNamedExprs) {
+ if (name.empty()) {
+ Error() << "Empty names for externally declared expressions are not allowed";
+ return nullptr;
+ }
+ TString varName = "$" + name;
+ if (IsAnonymousName(varName)) {
+ Error() << "Externally declared name '" << name << "' is anonymous";
+ return nullptr;
+ }
+
+ auto parsed = ParseType(type, *Ctx.Pool, Ctx.Issues, Ctx.Pos());
+ if (!parsed) {
+ Error() << "Failed to parse type for externally declared name '" << name << "'";
+ return nullptr;
+ }
+
+ TNodePtr typeNode = BuildBuiltinFunc(Ctx, Ctx.Pos(), "ParseType", { BuildLiteralRawString(Ctx.Pos(), type) });
+ PushNamedAtom(Ctx.Pos(), varName);
+ // no duplicates are possible at this stage
+ bool isWeak = true;
+ Ctx.DeclareVariable(varName, typeNode, isWeak);
+ // avoid 'Symbol is not used' warning for externally declared expression
+ YQL_ENSURE(GetNamedNode(varName));
+ }
+ }
+
+ const auto& query = ast.GetRule_sql_query();
+ TVector<TNodePtr> blocks;
+ Ctx.PushCurrentBlocks(&blocks);
+ Y_DEFER {
+ Ctx.PopCurrentBlocks();
+ };
+ if (query.Alt_case() == TRule_sql_query::kAltSqlQuery1) {
+ const auto& statements = query.GetAlt_sql_query1().GetRule_sql_stmt_list1();
+ if (!Statement(blocks, statements.GetRule_sql_stmt2().GetRule_sql_stmt_core2())) {
+ return nullptr;
+ }
+ for (auto block: statements.GetBlock3()) {
+ if (!Statement(blocks, block.GetRule_sql_stmt2().GetRule_sql_stmt_core2())) {
+ return nullptr;
+ }
+ }
+ }
+
+ ui32 topLevelSelects = 0;
+ for (auto& block : blocks) {
+ if (block->IsSelect()) {
+ ++topLevelSelects;
+ }
+ }
+
+ if ((Mode == NSQLTranslation::ESqlMode::SUBQUERY || Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) && topLevelSelects != 1) {
+ Error() << "Strictly one select/process/reduce statement must be used in the "
+ << (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW ? "view" : "subquery");
+ return nullptr;
+ }
+
+ if (!Ctx.PragmaAutoCommit && Ctx.Settings.EndOfQueryCommit && IsQueryMode(Mode)) {
+ AddStatementToBlocks(blocks, BuildCommitClusters(Ctx.Pos()));
+ }
+
+ auto result = BuildQuery(Ctx.Pos(), blocks, true, Ctx.Scoped);
+ WarnUnusedNodes();
+ return result;
+}
+namespace {
+
+ static bool BuildColumnFeatures(std::map<TString, TDeferredAtom>& result, const TRule_column_schema& columnSchema, const NYql::TPosition& pos, TSqlTranslation& transaction) {
+ const bool nullable = !columnSchema.HasBlock4() || !columnSchema.GetBlock4().HasBlock1();
+ const TString columnName(Id(columnSchema.GetRule_an_id_schema1(), transaction));
+ TString columnType;
+
+ auto& typeBind = columnSchema.GetRule_type_name_or_bind2();
+ switch (typeBind.Alt_case()) {
+ case TRule_type_name_or_bind::kAltTypeNameOrBind1:
+ {
+ auto& typeNameOrBind = typeBind.GetAlt_type_name_or_bind1().GetRule_type_name1();
+ if (typeNameOrBind.Alt_case() != TRule_type_name::kAltTypeName2) {
+ return false;
+ }
+ auto& alt = typeNameOrBind.GetAlt_type_name2();
+ auto& block = alt.GetBlock1();
+ auto& simpleType = block.GetAlt2().GetRule_type_name_simple1();
+ columnType = Id(simpleType.GetRule_an_id_pure1(), transaction);
+ if (columnType.empty()) {
+ return false;
+ }
+ break;
+ }
+ case TRule_type_name_or_bind::kAltTypeNameOrBind2:
+ return false;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ result["NAME"] = TDeferredAtom(pos, columnName);
+ YQL_ENSURE(columnType, "Unknown column type");
+ result["TYPE"] = TDeferredAtom(pos, columnType);
+ if (!nullable) {
+ result["NOT_NULL"] = TDeferredAtom(pos, "true");
+ }
+ return true;
+ }
+}
+
+bool TSqlQuery::ParseTableStoreFeatures(std::map<TString, TDeferredAtom> & result, const TRule_alter_table_store_action & actions) {
+ switch (actions.Alt_case()) {
+ case TRule_alter_table_store_action::kAltAlterTableStoreAction1: {
+ // ADD COLUMN
+ const auto& addRule = actions.GetAlt_alter_table_store_action1().GetRule_alter_table_add_column1();
+ if (!BuildColumnFeatures(result, addRule.GetRule_column_schema3(), Ctx.Pos(), *this)) {
+ return false;
+ }
+ result["ACTION"] = TDeferredAtom(Ctx.Pos(), "NEW_COLUMN");
+ break;
+ }
+ case TRule_alter_table_store_action::kAltAlterTableStoreAction2: {
+ // DROP COLUMN
+ const auto& dropRule = actions.GetAlt_alter_table_store_action2().GetRule_alter_table_drop_column1();
+ TString columnName = Id(dropRule.GetRule_an_id3(), *this);
+ if (!columnName) {
+ return false;
+ }
+ result["NAME"] = TDeferredAtom(Ctx.Pos(), columnName);
+ result["ACTION"] = TDeferredAtom(Ctx.Pos(), "DROP_COLUMN");
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ return true;
+}
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_query.h b/ydb/library/yql/sql/v1/sql_query.h
new file mode 100644
index 0000000000..7366944d64
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_query.h
@@ -0,0 +1,78 @@
+#pragma once
+
+#include "sql_translation.h"
+
+#include <ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1Parser.pb.h>
+#include <util/string/split.h>
+
+namespace NSQLTranslationV1 {
+
+using namespace NSQLv1Generated;
+
+class TSqlQuery: public TSqlTranslation {
+public:
+ TSqlQuery(TContext& ctx, NSQLTranslation::ESqlMode mode, bool topLevel)
+ : TSqlTranslation(ctx, mode)
+ , TopLevel(topLevel)
+ {
+ }
+
+ TNodePtr Build(const TSQLv1ParserAST& ast);
+
+ bool Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& core);
+private:
+ bool DeclareStatement(const TRule_declare_stmt& stmt);
+ bool ExportStatement(const TRule_export_stmt& stmt);
+ bool AlterTableAction(const TRule_alter_table_action& node, TAlterTableParameters& params);
+ bool AlterTableAddColumn(const TRule_alter_table_add_column& node, TAlterTableParameters& params);
+ bool AlterTableDropColumn(const TRule_alter_table_drop_column& node, TAlterTableParameters& params);
+ bool AlterTableAlterColumn(const TRule_alter_table_alter_column& node, TAlterTableParameters& params);
+ bool AlterTableAddFamily(const TRule_family_entry& node, TAlterTableParameters& params);
+ bool AlterTableAlterFamily(const TRule_alter_table_alter_column_family& node, TAlterTableParameters& params);
+ bool AlterTableSetTableSetting(const TRule_alter_table_set_table_setting_uncompat& node, TAlterTableParameters& params);
+ bool AlterTableSetTableSetting(const TRule_alter_table_set_table_setting_compat& node, TAlterTableParameters& params);
+ bool AlterTableResetTableSetting(const TRule_alter_table_reset_table_setting& node, TAlterTableParameters& params);
+ bool AlterTableAddIndex(const TRule_alter_table_add_index& node, TAlterTableParameters& params);
+ void AlterTableDropIndex(const TRule_alter_table_drop_index& node, TAlterTableParameters& params);
+ void AlterTableRenameTo(const TRule_alter_table_rename_to& node, TAlterTableParameters& params);
+ bool AlterTableAddChangefeed(const TRule_alter_table_add_changefeed& node, TAlterTableParameters& params);
+ bool AlterTableAlterChangefeed(const TRule_alter_table_alter_changefeed& node, TAlterTableParameters& params);
+ void AlterTableDropChangefeed(const TRule_alter_table_drop_changefeed& node, TAlterTableParameters& params);
+ void AlterTableRenameIndexTo(const TRule_alter_table_rename_index_to& node, TAlterTableParameters& params);
+ TNodePtr PragmaStatement(const TRule_pragma_stmt& stmt, bool& success);
+ void AddStatementToBlocks(TVector<TNodePtr>& blocks, TNodePtr node);
+ bool ParseTableStoreFeatures(std::map<TString, TDeferredAtom> & result, const TRule_alter_table_store_action & actions);
+
+ TNodePtr Build(const TRule_delete_stmt& stmt);
+
+ TNodePtr Build(const TRule_update_stmt& stmt);
+ TSourcePtr Build(const TRule_set_clause_choice& stmt);
+ bool FillSetClause(const TRule_set_clause& node, TVector<TString>& targetList, TVector<TNodePtr>& values);
+ TSourcePtr Build(const TRule_set_clause_list& stmt);
+ TSourcePtr Build(const TRule_multiple_column_assignment& stmt);
+
+ template<class TNode>
+ void ParseStatementName(const TNode& node, TString& internalStatementName, TString& humanStatementName) {
+ internalStatementName.clear();
+ humanStatementName.clear();
+ const auto& descr = AltDescription(node);
+ TVector<TString> parts;
+ const auto pos = descr.find(": ");
+ Y_VERIFY_DEBUG(pos != TString::npos);
+ Split(TString(descr.begin() + pos + 2, descr.end()), "_", parts);
+ Y_VERIFY_DEBUG(parts.size() > 1);
+ parts.pop_back();
+ for (auto& part: parts) {
+ part.to_upper(0, 1);
+ internalStatementName += part;
+ if (!humanStatementName.empty()) {
+ humanStatementName += ' ';
+ }
+ humanStatementName += to_upper(part);
+ }
+ }
+
+ const bool TopLevel;
+};
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_select.cpp b/ydb/library/yql/sql/v1/sql_select.cpp
new file mode 100644
index 0000000000..b79d72ac10
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_select.cpp
@@ -0,0 +1,1405 @@
+#include "sql_select.h"
+#include "sql_call_expr.h"
+#include "sql_expression.h"
+#include "sql_group_by.h"
+#include "sql_values.h"
+
+namespace NSQLTranslationV1 {
+
+using namespace NSQLv1Generated;
+
+bool IsColumnsOnly(const TVector<TSortSpecificationPtr>& container) {
+ for (const auto& elem: container) {
+ if (!elem->OrderExpr->GetColumnName()) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock3& block, TMaybe<TPosition> anyPos) {
+ // block: (join_op (ANY)? flatten_source join_constraint?)
+ // join_op:
+ // COMMA
+ // | (NATURAL)? ((LEFT (ONLY | SEMI)? | RIGHT (ONLY | SEMI)? | EXCLUSION | FULL)? (OUTER)? | INNER | CROSS) JOIN
+ //;
+ const auto& node = block.GetRule_join_op1();
+ switch (node.Alt_case()) {
+ case TRule_join_op::kAltJoinOp1:
+ Ctx.IncrementMonCounter("sql_join_operations", "CartesianProduct");
+ Error() << "Cartesian product of tables is not supported. Please use explicit CROSS JOIN";
+ return false;
+ case TRule_join_op::kAltJoinOp2: {
+ auto alt = node.GetAlt_join_op2();
+ if (alt.HasBlock1()) {
+ Ctx.IncrementMonCounter("sql_join_operations", "Natural");
+ Error() << "Natural join is not implemented yet";
+ return false;
+ }
+ TString joinOp("Inner");
+ auto hints = Ctx.PullHintForToken(Ctx.TokenPosition(alt.GetToken3()));
+ TJoinLinkSettings linkSettings;
+ linkSettings.ForceSortedMerge = AnyOf(hints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "merge"; });
+ switch (alt.GetBlock2().Alt_case()) {
+ case TRule_join_op::TAlt2::TBlock2::kAlt1:
+ if (alt.GetBlock2().GetAlt1().HasBlock1()) {
+ auto block = alt.GetBlock2().GetAlt1().GetBlock1();
+ switch (block.Alt_case()) {
+ case TRule_join_op_TAlt2_TBlock2_TAlt1_TBlock1::kAlt1:
+ // left
+ joinOp = Token(block.GetAlt1().GetToken1());
+ if (block.GetAlt1().HasBlock2()) {
+ joinOp += " " + Token(block.GetAlt1().GetBlock2().GetToken1());
+ }
+ break;
+ case TRule_join_op_TAlt2_TBlock2_TAlt1_TBlock1::kAlt2:
+ // right
+ joinOp = Token(block.GetAlt2().GetToken1());
+ if (block.GetAlt2().HasBlock2()) {
+ joinOp += " " + Token(block.GetAlt2().GetBlock2().GetToken1());
+ }
+
+ break;
+ case TRule_join_op_TAlt2_TBlock2_TAlt1_TBlock1::kAlt3:
+ // exclusion
+ joinOp = Token(block.GetAlt3().GetToken1());
+ break;
+ case TRule_join_op_TAlt2_TBlock2_TAlt1_TBlock1::kAlt4:
+ // full
+ joinOp = Token(block.GetAlt4().GetToken1());
+ break;
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
+ AltNotImplemented("join_op", node);
+ return false;
+ }
+ }
+ if (alt.GetBlock2().GetAlt1().HasBlock2()) {
+ TString normalizedOp = alt.GetBlock2().GetAlt1().HasBlock1() ? joinOp : "";
+ normalizedOp.to_upper();
+ if (!(normalizedOp == "LEFT" || normalizedOp == "RIGHT" || normalizedOp == "FULL")) {
+ Token(alt.GetBlock2().GetAlt1().GetBlock2().GetToken1());
+ Error() << "Invalid join type: " << normalizedOp << (normalizedOp.empty() ? "" : " ") << "OUTER JOIN. "
+ << "OUTER keyword is optional and can only be used after LEFT, RIGHT or FULL";
+ Ctx.IncrementMonCounter("sql_errors", "BadJoinType");
+ return false;
+ }
+ }
+ break;
+ case TRule_join_op::TAlt2::TBlock2::kAlt2:
+ joinOp = Token(alt.GetBlock2().GetAlt2().GetToken1());
+ break;
+ case TRule_join_op::TAlt2::TBlock2::kAlt3:
+ joinOp = Token(alt.GetBlock2().GetAlt3().GetToken1());
+ break;
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
+ AltNotImplemented("join_op", node);
+ return false;
+ }
+
+ joinOp = NormalizeJoinOp(joinOp);
+ Ctx.IncrementMonCounter("sql_features", "Join");
+ Ctx.IncrementMonCounter("sql_join_operations", joinOp);
+
+ TNodePtr joinKeyExpr;
+ if (block.HasBlock4()) {
+ if (joinOp == "Cross") {
+ Error() << "Cross join should not have ON or USING expression";
+ Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
+ return false;
+ }
+
+ joinKeyExpr = JoinExpr(join, block.GetBlock4().GetRule_join_constraint1());
+ if (!joinKeyExpr) {
+ Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
+ return false;
+ }
+ }
+ else {
+ if (joinOp != "Cross") {
+ Error() << "Expected ON or USING expression";
+ Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
+ return false;
+ }
+ }
+
+ if (joinOp == "Cross" && anyPos) {
+ Ctx.Error(*anyPos) << "ANY should not be used with Cross JOIN";
+ Ctx.IncrementMonCounter("sql_errors", "BadJoinAny");
+ return false;
+ }
+
+ Y_VERIFY_DEBUG(join->GetJoin());
+ join->GetJoin()->SetupJoin(joinOp, joinKeyExpr, linkSettings);
+ break;
+ }
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation2");
+ AltNotImplemented("join_op", node);
+ return false;
+ }
+ return true;
+}
+
+TNodePtr TSqlSelect::JoinExpr(ISource* join, const TRule_join_constraint& node) {
+ switch (node.Alt_case()) {
+ case TRule_join_constraint::kAltJoinConstraint1: {
+ auto& alt = node.GetAlt_join_constraint1();
+ Token(alt.GetToken1());
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx, Mode);
+ return expr.Build(alt.GetRule_expr2());
+ }
+ case TRule_join_constraint::kAltJoinConstraint2: {
+ auto& alt = node.GetAlt_join_constraint2();
+ Token(alt.GetToken1());
+ TPosition pos(Ctx.Pos());
+ TVector<TDeferredAtom> names;
+ if (!PureColumnOrNamedListStr(alt.GetRule_pure_column_or_named_list2(), *this, names)) {
+ return nullptr;
+ }
+
+ Y_VERIFY_DEBUG(join->GetJoin());
+ return join->GetJoin()->BuildJoinKeys(Ctx, names);
+ }
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownJoinConstraint");
+ AltNotImplemented("join_constraint", node);
+ break;
+ }
+ return nullptr;
+}
+
+bool TSqlSelect::FlattenByArg(const TString& sourceLabel, TVector<TNodePtr>& flattenByColumns, TVector<TNodePtr>& flattenByExprs,
+ const TRule_flatten_by_arg& node)
+{
+ // flatten_by_arg:
+ // named_column
+ // | LPAREN named_expr_list COMMA? RPAREN
+ // ;
+
+ flattenByColumns.clear();
+ flattenByExprs.clear();
+
+ TVector<TNodePtr> namedExprs;
+ switch (node.Alt_case()) {
+ case TRule_flatten_by_arg::kAltFlattenByArg1: {
+ TVector<TNodePtr> columns;
+ if (!NamedColumn(columns, node.GetAlt_flatten_by_arg1().GetRule_named_column1())) {
+ return false;
+ }
+ YQL_ENSURE(columns.size() == 1);
+ auto& column = columns.back();
+ auto columnNamePtr = column->GetColumnName();
+ YQL_ENSURE(columnNamePtr && *columnNamePtr);
+
+ auto sourcePtr = column->GetSourceName();
+ const bool isEmptySource = !sourcePtr || !*sourcePtr;
+ if (isEmptySource || *sourcePtr == sourceLabel) {
+ // select * from T flatten by x
+ // select * from T as s flatten by x
+ // select * from T as s flatten by s.x
+ flattenByColumns.emplace_back(std::move(column));
+ } else {
+ // select * from T as s flatten by x.y as z
+ if (!column->GetLabel()) {
+ Ctx.Error(column->GetPos()) << "Unnamed expression after FLATTEN BY is not allowed";
+ return false;
+ }
+ flattenByColumns.emplace_back(BuildColumn(column->GetPos(), column->GetLabel()));
+
+ TVector<INode::TIdPart> ids;
+ ids.push_back(BuildColumn(column->GetPos()));
+ ids.push_back(*sourcePtr);
+ ids.push_back(*columnNamePtr);
+ auto node = BuildAccess(column->GetPos(), ids, false);
+ node->SetLabel(column->GetLabel());
+ flattenByExprs.emplace_back(std::move(node));
+ }
+
+ break;
+ }
+ case TRule_flatten_by_arg::kAltFlattenByArg2: {
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ if (!NamedExprList(node.GetAlt_flatten_by_arg2().GetRule_named_expr_list2(), namedExprs) || Ctx.HasPendingErrors) {
+ return false;
+ }
+ for (auto& namedExprNode : namedExprs) {
+ YQL_ENSURE(!namedExprNode->ContentListPtr());
+
+ auto sourcePtr = namedExprNode->GetSourceName();
+ const bool isEmptySource = !sourcePtr || !*sourcePtr;
+ auto columnNamePtr = namedExprNode->GetColumnName();
+ if (columnNamePtr && (isEmptySource || *sourcePtr == sourceLabel)) {
+ namedExprNode->AssumeColumn();
+ flattenByColumns.emplace_back(std::move(namedExprNode));
+ } else {
+ auto nodeLabel = namedExprNode->GetLabel();
+ if (!nodeLabel) {
+ Ctx.Error(namedExprNode->GetPos()) << "Unnamed expression after FLATTEN BY is not allowed";
+ return false;
+ }
+ flattenByColumns.emplace_back(BuildColumn(namedExprNode->GetPos(), nodeLabel));
+ flattenByExprs.emplace_back(std::move(namedExprNode));
+ }
+ }
+ break;
+ }
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownFlattenByArg");
+ AltNotImplemented("flatten_by_arg", node);
+ return false;
+ }
+ return true;
+}
+
+TSourcePtr TSqlSelect::FlattenSource(const TRule_flatten_source& node) {
+ auto source = NamedSingleSource(node.GetRule_named_single_source1(), true);
+ if (!source) {
+ return nullptr;
+ }
+ if (node.HasBlock2()) {
+ auto flatten = node.GetBlock2();
+ auto flatten2 = flatten.GetBlock2();
+ switch (flatten2.Alt_case()) {
+ case TRule_flatten_source::TBlock2::TBlock2::kAlt1: {
+ TString mode = "auto";
+ if (flatten2.GetAlt1().HasBlock1()) {
+ mode = to_lower(Token(flatten2.GetAlt1().GetBlock1().GetToken1()));
+ }
+
+ TVector<TNodePtr> flattenByColumns;
+ TVector<TNodePtr> flattenByExprs;
+ if (!FlattenByArg(source->GetLabel(), flattenByColumns, flattenByExprs, flatten2.GetAlt1().GetRule_flatten_by_arg3())) {
+ return nullptr;
+ }
+
+ Ctx.IncrementMonCounter("sql_features", "FlattenByColumns");
+ if (!source->AddExpressions(Ctx, flattenByColumns, EExprSeat::FlattenBy)) {
+ return nullptr;
+ }
+
+ if (!source->AddExpressions(Ctx, flattenByExprs, EExprSeat::FlattenByExpr)) {
+ return nullptr;
+ }
+
+ source->SetFlattenByMode(mode);
+ break;
+ }
+ case TRule_flatten_source::TBlock2::TBlock2::kAlt2: {
+ Ctx.IncrementMonCounter("sql_features", "FlattenColumns");
+ source->MarkFlattenColumns();
+ break;
+ }
+
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownOrdinaryNamedColumn");
+ AltNotImplemented("flatten_source", flatten2);
+ }
+ }
+ return source;
+}
+
+TSourcePtr TSqlSelect::JoinSource(const TRule_join_source& node) {
+ // join_source: (ANY)? flatten_source (join_op (ANY)? flatten_source join_constraint?)*;
+ if (node.HasBlock1() && !node.Block3Size()) {
+ Error() << "ANY is not allowed without JOIN";
+ return nullptr;
+ }
+
+ TSourcePtr source(FlattenSource(node.GetRule_flatten_source2()));
+ if (!source) {
+ return nullptr;
+ }
+
+ if (node.Block3Size()) {
+ TPosition pos(Ctx.Pos());
+ TVector<TSourcePtr> sources;
+ TVector<TMaybe<TPosition>> anyPositions;
+ TVector<bool> anyFlags;
+
+ sources.emplace_back(std::move(source));
+ anyPositions.emplace_back(node.HasBlock1() ? Ctx.TokenPosition(node.GetBlock1().GetToken1()) : TMaybe<TPosition>());
+ anyFlags.push_back(bool(anyPositions.back()));
+
+ for (auto& block: node.GetBlock3()) {
+ sources.emplace_back(FlattenSource(block.GetRule_flatten_source3()));
+ if (!sources.back()) {
+ Ctx.IncrementMonCounter("sql_errors", "NoJoinWith");
+ return nullptr;
+ }
+
+ anyPositions.emplace_back(block.HasBlock2() ? Ctx.TokenPosition(block.GetBlock2().GetToken1()) : TMaybe<TPosition>());
+ anyFlags.push_back(bool(anyPositions.back()));
+ }
+
+ source = BuildEquiJoin(pos, std::move(sources), std::move(anyFlags), Ctx.Scoped->StrictJoinKeyTypes);
+ size_t idx = 1;
+ for (auto& block: node.GetBlock3()) {
+ YQL_ENSURE(idx < anyPositions.size());
+ TMaybe<TPosition> leftAny = (idx == 1) ? anyPositions[0] : Nothing();
+ TMaybe<TPosition> rightAny = anyPositions[idx];
+
+ if (!JoinOp(source.Get(), block, leftAny ? leftAny : rightAny)) {
+ Ctx.IncrementMonCounter("sql_errors", "NoJoinOp");
+ return nullptr;
+ }
+ ++idx;
+ }
+ }
+
+ return source;
+}
+
+bool TSqlSelect::SelectTerm(TVector<TNodePtr>& terms, const TRule_result_column& node) {
+ // result_column:
+ // opt_id_prefix ASTERISK
+ // | expr ((AS an_id) | an_id_pure)?
+ // ;
+ switch (node.Alt_case()) {
+ case TRule_result_column::kAltResultColumn1: {
+ auto alt = node.GetAlt_result_column1();
+
+ Token(alt.GetToken2());
+ auto idAsteriskQualify = OptIdPrefixAsStr(alt.GetRule_opt_id_prefix1(), *this);
+ Ctx.IncrementMonCounter("sql_features", idAsteriskQualify ? "QualifyAsterisk" : "Asterisk");
+ terms.push_back(BuildColumn(Ctx.Pos(), "*", idAsteriskQualify));
+ break;
+ }
+ case TRule_result_column::kAltResultColumn2: {
+ auto alt = node.GetAlt_result_column2();
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx, Mode);
+ TNodePtr term(expr.Build(alt.GetRule_expr1()));
+ if (!term) {
+ Ctx.IncrementMonCounter("sql_errors", "NoTerm");
+ return false;
+ }
+ if (alt.HasBlock2()) {
+ TString label;
+ bool implicitLabel = false;
+ switch (alt.GetBlock2().Alt_case()) {
+ case TRule_result_column_TAlt2_TBlock2::kAlt1:
+ label = Id(alt.GetBlock2().GetAlt1().GetBlock1().GetRule_an_id_or_type2(), *this);
+ break;
+ case TRule_result_column_TAlt2_TBlock2::kAlt2:
+ label = Id(alt.GetBlock2().GetAlt2().GetRule_an_id_as_compat1(), *this);
+ if (!Ctx.AnsiOptionalAs) {
+ // AS is mandatory
+ Ctx.Error() << "Expecting mandatory AS here. Did you miss comma? Please add PRAGMA AnsiOptionalAs; for ANSI compatibility";
+ return false;
+ }
+ implicitLabel = true;
+ break;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ term->SetLabel(label, Ctx.Pos());
+ term->MarkImplicitLabel(implicitLabel);
+ }
+ terms.push_back(term);
+ break;
+ }
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownResultColumn");
+ AltNotImplemented("result_column", node);
+ return false;
+ }
+ return true;
+}
+
+bool TSqlSelect::ValidateSelectColumns(const TVector<TNodePtr>& terms) {
+ TSet<TString> labels;
+ TSet<TString> asteriskSources;
+ for (const auto& term: terms) {
+ const auto& label = term->GetLabel();
+ if (!Ctx.PragmaAllowDotInAlias && label.find('.') != TString::npos) {
+ Ctx.Error(term->GetPos()) << "Unable to use '.' in column name. Invalid column name: " << label;
+ return false;
+ }
+ if (!label.empty()) {
+ if (!labels.insert(label).second) {
+ Ctx.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << label;
+ return false;
+ }
+ }
+ if (term->IsAsterisk()) {
+ const auto& source = *term->GetSourceName();
+ if (source.empty() && terms.ysize() > 1) {
+ Ctx.Error(term->GetPos()) << "Unable to use plain '*' with other projection items. Please use qualified asterisk instead: '<table>.*' (<table> can be either table name or table alias).";
+ return false;
+ } else if (!asteriskSources.insert(source).second) {
+ Ctx.Error(term->GetPos()) << "Unable to use twice same quialified asterisk. Invalid source: " << source;
+ return false;
+ }
+ } else if (label.empty()) {
+ const auto* column = term->GetColumnName();
+ if (column && !column->empty()) {
+ const auto& source = *term->GetSourceName();
+ const auto usedName = source.empty() ? *column : source + '.' + *column;
+ if (!labels.insert(usedName).second) {
+ Ctx.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << usedName;
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+}
+
+TSourcePtr TSqlSelect::SingleSource(const TRule_single_source& node, const TVector<TString>& derivedColumns, TPosition derivedColumnsPos, bool unorderedSubquery) {
+ switch (node.Alt_case()) {
+ case TRule_single_source::kAltSingleSource1: {
+ const auto& alt = node.GetAlt_single_source1();
+ const auto& table_ref = alt.GetRule_table_ref1();
+
+ if (auto maybeSource = AsTableImpl(table_ref)) {
+ auto source = *maybeSource;
+ if (!source) {
+ return nullptr;
+ }
+
+ return source;
+ } else {
+ TTableRef table;
+ if (!TableRefImpl(alt.GetRule_table_ref1(), table, unorderedSubquery)) {
+ return nullptr;
+ }
+
+ if (table.Source) {
+ return table.Source;
+ }
+
+ TPosition pos(Ctx.Pos());
+ Ctx.IncrementMonCounter("sql_select_clusters", table.Cluster.GetLiteral() ? *table.Cluster.GetLiteral() : "unknown");
+ return BuildTableSource(pos, table);
+ }
+ }
+ case TRule_single_source::kAltSingleSource2: {
+ const auto& alt = node.GetAlt_single_source2();
+ Token(alt.GetToken1());
+ TSqlSelect innerSelect(Ctx, Mode);
+ TPosition pos;
+ auto source = innerSelect.Build(alt.GetRule_select_stmt2(), pos);
+ if (!source) {
+ return nullptr;
+ }
+ return BuildInnerSource(pos, BuildSourceNode(pos, std::move(source)), Ctx.Scoped->CurrService, Ctx.Scoped->CurrCluster);
+ }
+ case TRule_single_source::kAltSingleSource3: {
+ const auto& alt = node.GetAlt_single_source3();
+ TPosition pos;
+ return TSqlValues(Ctx, Mode).Build(alt.GetRule_values_stmt2(), pos, derivedColumns, derivedColumnsPos);
+ }
+ default:
+ AltNotImplemented("single_source", node);
+ Ctx.IncrementMonCounter("sql_errors", "UnknownSingleSource");
+ return nullptr;
+ }
+}
+
+TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node, bool unorderedSubquery) {
+ // named_single_source: single_source (((AS an_id) | an_id_pure) pure_column_list?)? (sample_clause | tablesample_clause)?;
+ TVector<TString> derivedColumns;
+ TPosition derivedColumnsPos;
+ if (node.HasBlock2() && node.GetBlock2().HasBlock2()) {
+ const auto& columns = node.GetBlock2().GetBlock2().GetRule_pure_column_list1();
+ Token(columns.GetToken1());
+ derivedColumnsPos = Ctx.Pos();
+
+ if (node.GetRule_single_source1().Alt_case() != TRule_single_source::kAltSingleSource3) {
+ Error() << "Derived column list is only supported for VALUES";
+ return nullptr;
+ }
+
+ PureColumnListStr(columns, *this, derivedColumns);
+ }
+
+ auto singleSource = SingleSource(node.GetRule_single_source1(), derivedColumns, derivedColumnsPos, unorderedSubquery);
+ if (!singleSource) {
+ return nullptr;
+ }
+ if (node.HasBlock2()) {
+ TString label;
+ switch (node.GetBlock2().GetBlock1().Alt_case()) {
+ case TRule_named_single_source_TBlock2_TBlock1::kAlt1:
+ label = Id(node.GetBlock2().GetBlock1().GetAlt1().GetBlock1().GetRule_an_id2(), *this);
+ break;
+ case TRule_named_single_source_TBlock2_TBlock1::kAlt2:
+ label = Id(node.GetBlock2().GetBlock1().GetAlt2().GetRule_an_id_as_compat1(), *this);
+ if (!Ctx.AnsiOptionalAs) {
+ // AS is mandatory
+ Ctx.Error() << "Expecting mandatory AS here. Did you miss comma? Please add PRAGMA AnsiOptionalAs; for ANSI compatibility";
+ return {};
+ }
+ break;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ singleSource->SetLabel(label);
+ }
+ if (node.HasBlock3()) {
+ ESampleMode mode = ESampleMode::Auto;
+ TSqlExpression expr(Ctx, Mode);
+ TNodePtr samplingRateNode;
+ TNodePtr samplingSeedNode;
+ const auto& sampleBlock = node.GetBlock3();
+ TPosition pos;
+ switch (sampleBlock.Alt_case()) {
+ case TRule_named_single_source::TBlock3::kAlt1:
+ {
+ const auto& sampleExpr = sampleBlock.GetAlt1().GetRule_sample_clause1().GetRule_expr2();
+ samplingRateNode = expr.Build(sampleExpr);
+ if (!samplingRateNode) {
+ return nullptr;
+ }
+ pos = GetPos(sampleBlock.GetAlt1().GetRule_sample_clause1().GetToken1());
+ Ctx.IncrementMonCounter("sql_features", "SampleClause");
+ }
+ break;
+ case TRule_named_single_source::TBlock3::kAlt2:
+ {
+ const auto& tableSampleClause = sampleBlock.GetAlt2().GetRule_tablesample_clause1();
+ const auto& modeToken = tableSampleClause.GetRule_sampling_mode2().GetToken1();
+ const TCiString& token = Token(modeToken);
+ if (token == "system") {
+ mode = ESampleMode::System;
+ } else if (token == "bernoulli") {
+ mode = ESampleMode::Bernoulli;
+ } else {
+ Ctx.Error(GetPos(modeToken)) << "Unsupported sampling mode: " << token;
+ Ctx.IncrementMonCounter("sql_errors", "UnsupportedSamplingMode");
+ return nullptr;
+ }
+ const auto& tableSampleExpr = tableSampleClause.GetRule_expr4();
+ samplingRateNode = expr.Build(tableSampleExpr);
+ if (!samplingRateNode) {
+ return nullptr;
+ }
+ if (tableSampleClause.HasBlock6()) {
+ const auto& repeatableExpr = tableSampleClause.GetBlock6().GetRule_repeatable_clause1().GetRule_expr3();
+ samplingSeedNode = expr.Build(repeatableExpr);
+ if (!samplingSeedNode) {
+ return nullptr;
+ }
+ }
+ pos = GetPos(sampleBlock.GetAlt2().GetRule_tablesample_clause1().GetToken1());
+ Ctx.IncrementMonCounter("sql_features", "SampleClause");
+ }
+ break;
+ default:
+ Y_FAIL("SampleClause: does not corresond to grammar changes");
+ }
+ if (!singleSource->SetSamplingOptions(Ctx, pos, mode, samplingRateNode, samplingSeedNode)) {
+ Ctx.IncrementMonCounter("sql_errors", "IncorrectSampleClause");
+ return nullptr;
+ }
+ }
+ return singleSource;
+}
+
+bool TSqlSelect::ColumnName(TVector<TNodePtr>& keys, const TRule_column_name& node) {
+ const auto sourceName = OptIdPrefixAsStr(node.GetRule_opt_id_prefix1(), *this);
+ const auto columnName = Id(node.GetRule_an_id2(), *this);
+ if (columnName.empty()) {
+ // TDOD: Id() should return TMaybe<TString>
+ if (!Ctx.HasPendingErrors) {
+ Ctx.Error() << "Empty column name is not allowed";
+ }
+ return false;
+ }
+ keys.push_back(BuildColumn(Ctx.Pos(), columnName, sourceName));
+ return true;
+}
+
+bool TSqlSelect::ColumnName(TVector<TNodePtr>& keys, const TRule_without_column_name& node) {
+ // without_column_name: (an_id DOT an_id) | an_id_without;
+ TString sourceName;
+ TString columnName;
+ switch (node.Alt_case()) {
+ case TRule_without_column_name::kAltWithoutColumnName1:
+ sourceName = Id(node.GetAlt_without_column_name1().GetBlock1().GetRule_an_id1(), *this);
+ columnName = Id(node.GetAlt_without_column_name1().GetBlock1().GetRule_an_id3(), *this);
+ break;
+ case TRule_without_column_name::kAltWithoutColumnName2:
+ columnName = Id(node.GetAlt_without_column_name2().GetRule_an_id_without1(), *this);
+ break;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ if (columnName.empty()) {
+ // TDOD: Id() should return TMaybe<TString>
+ if (!Ctx.HasPendingErrors) {
+ Ctx.Error() << "Empty column name is not allowed";
+ }
+ return false;
+ }
+ keys.push_back(BuildColumn(Ctx.Pos(), columnName, sourceName));
+ return true;
+}
+
+template<typename TRule>
+bool TSqlSelect::ColumnList(TVector<TNodePtr>& keys, const TRule& node) {
+ bool result;
+ if constexpr (std::is_same_v<TRule, TRule_column_list>) {
+ result = ColumnName(keys, node.GetRule_column_name1());
+ } else {
+ result = ColumnName(keys, node.GetRule_without_column_name1());
+ }
+
+ if (!result) {
+ return false;
+ }
+
+ for (auto b: node.GetBlock2()) {
+ Token(b.GetToken1());
+ if constexpr (std::is_same_v<TRule, TRule_column_list>) {
+ result = ColumnName(keys, b.GetRule_column_name2());
+ } else {
+ result = ColumnName(keys, b.GetRule_without_column_name2());
+ }
+ if (!result) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlSelect::NamedColumn(TVector<TNodePtr>& columnList, const TRule_named_column& node) {
+ if (!ColumnName(columnList, node.GetRule_column_name1())) {
+ return false;
+ }
+ if (node.HasBlock2()) {
+ const auto label = Id(node.GetBlock2().GetRule_an_id2(), *this);
+ columnList.back()->SetLabel(label);
+ }
+ return true;
+}
+
+TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteSettings& settings, TPosition& selectPos) {
+ // PROCESS STREAM? named_single_source (COMMA named_single_source)* (USING using_call_expr (AS an_id)?
+ // (WITH external_call_settings)?
+ // (WHERE expr)? (HAVING expr)? (ASSUME order_by_clause)?)?
+
+ Token(node.GetToken1());
+ TPosition startPos(Ctx.Pos());
+
+ if (!selectPos) {
+ selectPos = startPos;
+ }
+
+ const bool hasUsing = node.HasBlock5();
+ const bool unorderedSubquery = hasUsing;
+ TSourcePtr source(NamedSingleSource(node.GetRule_named_single_source3(), unorderedSubquery));
+ if (!source) {
+ return nullptr;
+ }
+ if (node.GetBlock4().size()) {
+ TVector<TSourcePtr> sources(1, source);
+ for (auto& s: node.GetBlock4()) {
+ sources.push_back(NamedSingleSource(s.GetRule_named_single_source2(), unorderedSubquery));
+ if (!sources.back()) {
+ return nullptr;
+ }
+ }
+ auto pos = source->GetPos();
+ source = BuildMuxSource(pos, std::move(sources));
+ }
+
+ const bool processStream = node.HasBlock2();
+
+ if (!hasUsing) {
+ return BuildProcess(startPos, std::move(source), nullptr, false, {}, false, processStream, settings, {});
+ }
+
+ const auto& block5 = node.GetBlock5();
+ if (block5.HasBlock5()) {
+ TSqlExpression expr(Ctx, Mode);
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TNodePtr where = expr.Build(block5.GetBlock5().GetRule_expr2());
+ if (!where || !source->AddFilter(Ctx, where)) {
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", "ProcessWhere");
+ } else {
+ Ctx.IncrementMonCounter("sql_features", processStream ? "ProcessStream" : "Process");
+ }
+
+ if (block5.HasBlock6()) {
+ Ctx.Error() << "PROCESS does not allow HAVING yet! You may request it on yql@ maillist.";
+ return nullptr;
+ }
+
+ bool listCall = false;
+ TSqlCallExpr call(Ctx, Mode);
+ bool initRet = call.Init(block5.GetRule_using_call_expr2());
+ if (initRet) {
+ call.IncCounters();
+ }
+
+ if (!initRet) {
+ return nullptr;
+ }
+
+ auto args = call.GetArgs();
+ for (auto& arg: args) {
+ if (auto placeholder = dynamic_cast<TTableRows*>(arg.Get())) {
+ if (listCall) {
+ Ctx.Error() << "Only one TableRows() argument is allowed.";
+ return nullptr;
+ }
+ listCall = true;
+ }
+ }
+
+ if (!call.IsExternal() && block5.HasBlock4()) {
+ Ctx.Error() << "PROCESS without USING EXTERNAL FUNCTION doesn't allow WITH block";
+ return nullptr;
+ }
+
+ if (block5.HasBlock4()) {
+ const auto& block54 = block5.GetBlock4();
+ if (!call.ConfigureExternalCall(block54.GetRule_external_call_settings2())) {
+ return nullptr;
+ }
+ }
+
+ TSqlCallExpr finalCall(call, args);
+ TNodePtr with(finalCall.IsExternal() ? finalCall.BuildCall() : finalCall.BuildUdf(/* forReduce = */ false));
+ if (!with) {
+ return {};
+ }
+ args = finalCall.GetArgs();
+ if (call.IsExternal())
+ listCall = true;
+
+ if (block5.HasBlock3()) {
+ with->SetLabel(Id(block5.GetBlock3().GetRule_an_id2(), *this));
+ }
+
+ if (call.IsExternal() && block5.HasBlock7()) {
+ Ctx.Error() << "PROCESS with USING EXTERNAL FUNCTION doesn't allow ASSUME block";
+ return nullptr;
+ }
+
+ TVector<TSortSpecificationPtr> assumeOrderBy;
+ if (block5.HasBlock7()) {
+ if (!OrderByClause(block5.GetBlock7().GetRule_order_by_clause2(), assumeOrderBy)) {
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(assumeOrderBy) ? "AssumeOrderBy" : "AssumeOrderByExpr");
+ }
+
+ return BuildProcess(startPos, std::move(source), with, finalCall.IsExternal(), std::move(args), listCall, processStream, settings, assumeOrderBy);
+}
+
+TSourcePtr TSqlSelect::ReduceCore(const TRule_reduce_core& node, const TWriteSettings& settings, TPosition& selectPos) {
+ // REDUCE named_single_source (COMMA named_single_source)* (PRESORT sort_specification_list)?
+ // ON column_list USING ALL? using_call_expr (AS an_id)?
+ // (WHERE expr)? (HAVING expr)? (ASSUME order_by_clause)?
+ Token(node.GetToken1());
+ TPosition startPos(Ctx.Pos());
+ if (!selectPos) {
+ selectPos = startPos;
+ }
+
+ TSourcePtr source(NamedSingleSource(node.GetRule_named_single_source2(), true));
+ if (!source) {
+ return {};
+ }
+ if (node.GetBlock3().size()) {
+ TVector<TSourcePtr> sources(1, source);
+ for (auto& s: node.GetBlock3()) {
+ sources.push_back(NamedSingleSource(s.GetRule_named_single_source2(), true));
+ if (!sources.back()) {
+ return nullptr;
+ }
+ }
+ auto pos = source->GetPos();
+ source = BuildMuxSource(pos, std::move(sources));
+ }
+
+ TVector<TSortSpecificationPtr> orderBy;
+ if (node.HasBlock4()) {
+ if (!SortSpecificationList(node.GetBlock4().GetRule_sort_specification_list2(), orderBy)) {
+ return {};
+ }
+ }
+
+ TVector<TNodePtr> keys;
+ if (!ColumnList(keys, node.GetRule_column_list6())) {
+ return nullptr;
+ }
+
+ if (node.HasBlock11()) {
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx, Mode);
+ TNodePtr where = expr.Build(node.GetBlock11().GetRule_expr2());
+ if (!where || !source->AddFilter(Ctx, where)) {
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", "ReduceWhere");
+ } else {
+ Ctx.IncrementMonCounter("sql_features", "Reduce");
+ }
+
+ TNodePtr having;
+ if (node.HasBlock12()) {
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx, Mode);
+ having = expr.Build(node.GetBlock12().GetRule_expr2());
+ if (!having) {
+ return nullptr;
+ }
+ }
+
+ bool listCall = false;
+ TSqlCallExpr call(Ctx, Mode);
+ bool initRet = call.Init(node.GetRule_using_call_expr9());
+ if (initRet) {
+ call.IncCounters();
+ }
+
+ if (!initRet) {
+ return nullptr;
+ }
+
+ auto args = call.GetArgs();
+ for (auto& arg: args) {
+ if (auto placeholder = dynamic_cast<TTableRows*>(arg.Get())) {
+ if (listCall) {
+ Ctx.Error() << "Only one TableRows() argument is allowed.";
+ return nullptr;
+ }
+ listCall = true;
+ }
+ }
+
+ TSqlCallExpr finalCall(call, args);
+
+ TNodePtr udf(finalCall.BuildUdf(/* forReduce = */ true));
+ if (!udf) {
+ return {};
+ }
+
+ if (node.HasBlock10()) {
+ udf->SetLabel(Id(node.GetBlock10().GetRule_an_id2(), *this));
+ }
+
+ const auto reduceMode = node.HasBlock8() ? ReduceMode::ByAll : ReduceMode::ByPartition;
+
+ TVector<TSortSpecificationPtr> assumeOrderBy;
+ if (node.HasBlock13()) {
+ if (!OrderByClause(node.GetBlock13().GetRule_order_by_clause2(), assumeOrderBy)) {
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(assumeOrderBy) ? "AssumeOrderBy" : "AssumeOrderByExpr");
+ }
+
+ return BuildReduce(startPos, reduceMode, std::move(source), std::move(orderBy), std::move(keys), std::move(args), udf, having,
+ settings, assumeOrderBy, listCall);
+}
+
+TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSettings& settings, TPosition& selectPos,
+ TMaybe<TSelectKindPlacement> placement, TVector<TSortSpecificationPtr>& selectOpOrederBy, bool& selectOpAssumeOrderBy)
+{
+ // (FROM join_source)? SELECT STREAM? opt_set_quantifier result_column (COMMA result_column)* COMMA? (WITHOUT column_list)? (FROM join_source)? (WHERE expr)?
+ // group_by_clause? (HAVING expr)? window_clause? ext_order_by_clause?
+ selectOpOrederBy = {};
+ selectOpAssumeOrderBy = false;
+ if (node.HasBlock1()) {
+ Token(node.GetBlock1().GetToken1());
+ } else {
+ Token(node.GetToken2());
+ }
+
+ TPosition startPos(Ctx.Pos());
+ if (!selectPos) {
+ selectPos = Ctx.Pos();
+ }
+
+ const bool distinct = IsDistinctOptSet(node.GetRule_opt_set_quantifier4());
+ if (distinct) {
+ Ctx.IncrementMonCounter("sql_features", "DistinctInSelect");
+ }
+
+ TSourcePtr source(BuildFakeSource(selectPos, /* missingFrom = */ true, Mode == NSQLTranslation::ESqlMode::SUBQUERY));
+ if (node.HasBlock1() && node.HasBlock9()) {
+ Token(node.GetBlock9().GetToken1());
+ Ctx.IncrementMonCounter("sql_errors", "DoubleFrom");
+ Ctx.Error() << "Only one FROM clause is allowed";
+ return nullptr;
+ }
+ if (node.HasBlock1()) {
+ source = JoinSource(node.GetBlock1().GetRule_join_source2());
+ Ctx.IncrementMonCounter("sql_features", "FromInFront");
+ } else if (node.HasBlock9()) {
+ source = JoinSource(node.GetBlock9().GetRule_join_source2());
+ }
+ if (!source) {
+ return nullptr;
+ }
+
+ const bool selectStream = node.HasBlock3();
+ TVector<TNodePtr> without;
+ if (node.HasBlock8()) {
+ if (!ColumnList(without, node.GetBlock8().GetRule_without_column_list2())) {
+ return nullptr;
+ }
+ }
+ if (node.HasBlock10()) {
+ auto block = node.GetBlock10();
+ Token(block.GetToken1());
+ TPosition pos(Ctx.Pos());
+ TNodePtr where;
+ {
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx, Mode);
+ where = expr.Build(block.GetRule_expr2());
+ }
+ if (!where) {
+ Ctx.IncrementMonCounter("sql_errors", "WhereInvalid");
+ return nullptr;
+ }
+ if (!source->AddFilter(Ctx, where)) {
+ Ctx.IncrementMonCounter("sql_errors", "WhereNotSupportedBySource");
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", "Where");
+ }
+
+ /// \todo merge gtoupByExpr and groupBy in one
+ TVector<TNodePtr> groupByExpr, groupBy;
+ TLegacyHoppingWindowSpecPtr legacyHoppingWindowSpec;
+ bool compactGroupBy = false;
+ TString groupBySuffix;
+ if (node.HasBlock11()) {
+ TGroupByClause clause(Ctx, Mode);
+ if (!clause.Build(node.GetBlock11().GetRule_group_by_clause1())) {
+ return nullptr;
+ }
+ bool hasHopping = (bool)clause.GetLegacyHoppingWindow();
+ for (const auto& exprAlias: clause.Aliases()) {
+ YQL_ENSURE(exprAlias.first == exprAlias.second->GetLabel());
+ groupByExpr.emplace_back(exprAlias.second);
+ hasHopping |= (bool)dynamic_cast<THoppingWindow*>(exprAlias.second.Get());
+ }
+ groupBy = std::move(clause.Content());
+ clause.SetFeatures("sql_features");
+ legacyHoppingWindowSpec = clause.GetLegacyHoppingWindow();
+ compactGroupBy = clause.IsCompactGroupBy();
+ groupBySuffix = clause.GetSuffix();
+
+ if (source->IsStream() && !hasHopping) {
+ Ctx.Error() << "Streaming group by query must have a hopping window specification.";
+ return nullptr;
+ }
+ }
+
+ TNodePtr having;
+ if (node.HasBlock12()) {
+ TSqlExpression expr(Ctx, Mode);
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ having = expr.Build(node.GetBlock12().GetRule_expr2());
+ if (!having) {
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", "Having");
+ }
+
+ TWinSpecs windowSpec;
+ if (node.HasBlock13()) {
+ if (source->IsStream()) {
+ Ctx.Error() << "WINDOW is not allowed in streaming queries";
+ return nullptr;
+ }
+ if (!WindowClause(node.GetBlock13().GetRule_window_clause1(), windowSpec)) {
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", "WindowClause");
+ }
+
+ bool assumeSorted = false;
+ TVector<TSortSpecificationPtr> orderBy;
+ if (node.HasBlock14()) {
+ auto& orderBlock = node.GetBlock14().GetRule_ext_order_by_clause1();
+ assumeSorted = orderBlock.HasBlock1();
+
+ Token(orderBlock.GetRule_order_by_clause2().GetToken1());
+
+ if (source->IsStream()) {
+ Ctx.Error() << "ORDER BY is not allowed in streaming queries";
+ return nullptr;
+ }
+
+ if (!ValidateLimitOrderByWithSelectOp(placement, "ORDER BY")) {
+ return nullptr;
+ }
+
+ if (!OrderByClause(orderBlock.GetRule_order_by_clause2(), orderBy)) {
+ return nullptr;
+ }
+ Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(orderBy)
+ ? (assumeSorted ? "AssumeOrderBy" : "OrderBy")
+ : (assumeSorted ? "AssumeOrderByExpr" : "OrderByExpr")
+ );
+
+ if (!NeedPassLimitOrderByToUnderlyingSelect(placement)) {
+ selectOpOrederBy.swap(orderBy);
+ std::swap(selectOpAssumeOrderBy, assumeSorted);
+ }
+ }
+
+ TVector<TNodePtr> terms;
+ {
+ class TScopedWinSpecs {
+ public:
+ TScopedWinSpecs(TContext& ctx, TWinSpecs& specs)
+ : Ctx(ctx)
+ {
+ Ctx.WinSpecsScopes.push_back(std::ref(specs));
+ }
+ ~TScopedWinSpecs() {
+ Ctx.WinSpecsScopes.pop_back();
+ }
+ private:
+ TContext& Ctx;
+ };
+
+
+ TScopedWinSpecs scoped(Ctx, windowSpec);
+ if (!SelectTerm(terms, node.GetRule_result_column5())) {
+ return nullptr;
+ }
+ for (auto block: node.GetBlock6()) {
+ if (!SelectTerm(terms, block.GetRule_result_column2())) {
+ return nullptr;
+ }
+ }
+
+ }
+ if (!ValidateSelectColumns(terms)) {
+ return nullptr;
+ }
+ return BuildSelectCore(Ctx, startPos, std::move(source), groupByExpr, groupBy, compactGroupBy, groupBySuffix, assumeSorted, orderBy, having,
+ std::move(windowSpec), legacyHoppingWindowSpec, std::move(terms), distinct, std::move(without), selectStream, settings);
+}
+
+bool TSqlSelect::WindowDefinition(const TRule_window_definition& rule, TWinSpecs& winSpecs) {
+ const TString windowName = Id(rule.GetRule_new_window_name1().GetRule_window_name1().GetRule_an_id_window1(), *this);
+ if (winSpecs.contains(windowName)) {
+ Ctx.Error() << "Unable to declare window with same name: " << windowName;
+ return false;
+ }
+ auto windowSpec = WindowSpecification(rule.GetRule_window_specification3().GetRule_window_specification_details2());
+ if (!windowSpec) {
+ return false;
+ }
+ winSpecs.emplace(windowName, std::move(windowSpec));
+ return true;
+}
+
+bool TSqlSelect::WindowClause(const TRule_window_clause& rule, TWinSpecs& winSpecs) {
+ auto windowList = rule.GetRule_window_definition_list2();
+ if (!WindowDefinition(windowList.GetRule_window_definition1(), winSpecs)) {
+ return false;
+ }
+ for (auto& block: windowList.GetBlock2()) {
+ if (!WindowDefinition(block.GetRule_window_definition2(), winSpecs)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlTranslation::OrderByClause(const TRule_order_by_clause& node, TVector<TSortSpecificationPtr>& orderBy) {
+ return SortSpecificationList(node.GetRule_sort_specification_list3(), orderBy);
+}
+
+bool TSqlSelect::ValidateLimitOrderByWithSelectOp(TMaybe<TSelectKindPlacement> placement, TStringBuf what) {
+ if (!placement.Defined()) {
+ // not in select_op chain
+ return true;
+ }
+ if (!Ctx.AnsiOrderByLimitInUnionAll.Defined()) {
+ if (!placement->IsLastInSelectOp) {
+ Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_LIMIT_ORDER_BY_WITH_UNION)
+ << what << " will not be allowed here for ANSI compliant UNION ALL.\n"
+ << "For details please consult documentation on PRAGMA AnsiOrderByLimitInUnionAll";
+ } else {
+ Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_LIMIT_ORDER_BY_WITH_UNION)
+ << what << " will be applied to last subquery in UNION ALL, not to entire UNION ALL.\n"
+ << "For ANSI compliant behavior please use PRAGMA AnsiOrderByLimitInUnionAll";
+ }
+ return true;
+ }
+
+ if (*Ctx.AnsiOrderByLimitInUnionAll && !placement->IsLastInSelectOp) {
+ Ctx.Error() << what << " within UNION ALL is only allowed after last subquery";
+ return false;
+ }
+ return true;
+}
+
+bool TSqlSelect::NeedPassLimitOrderByToUnderlyingSelect(TMaybe<TSelectKindPlacement> placement) {
+ if (!Ctx.AnsiOrderByLimitInUnionAll.Defined() || !*Ctx.AnsiOrderByLimitInUnionAll) {
+ return true;
+ }
+ return !placement.Defined() || !placement->IsLastInSelectOp;
+}
+
+TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind_partial& node, TPosition& selectPos,
+ TMaybe<TSelectKindPlacement> placement)
+{
+ auto res = SelectKind(node.GetRule_select_kind1(), selectPos, placement);
+ if (!res) {
+ return {};
+ }
+ TPosition startPos(Ctx.Pos());
+ /// LIMIT INTEGER block
+ TNodePtr skipTake;
+ if (node.HasBlock2()) {
+ auto block = node.GetBlock2();
+
+ Token(block.GetToken1());
+ TPosition pos(Ctx.Pos());
+
+ if (!ValidateLimitOrderByWithSelectOp(placement, "LIMIT")) {
+ return {};
+ }
+
+ TSqlExpression takeExpr(Ctx, Mode);
+ auto take = takeExpr.Build(block.GetRule_expr2());
+ if (!take) {
+ return{};
+ }
+
+ TNodePtr skip;
+ if (block.HasBlock3()) {
+ TSqlExpression skipExpr(Ctx, Mode);
+ skip = skipExpr.Build(block.GetBlock3().GetRule_expr2());
+ if (!skip) {
+ return {};
+ }
+ if (Token(block.GetBlock3().GetToken1()) == ",") {
+ // LIMIT skip, take
+ skip.Swap(take);
+ Ctx.IncrementMonCounter("sql_features", "LimitSkipTake");
+ } else {
+ Ctx.IncrementMonCounter("sql_features", "LimitOffset");
+ }
+ }
+
+ auto st = BuildSkipTake(pos, skip, take);
+ if (NeedPassLimitOrderByToUnderlyingSelect(placement)) {
+ skipTake = st;
+ } else {
+ res.SelectOpSkipTake = st;
+ }
+
+ Ctx.IncrementMonCounter("sql_features", "Limit");
+ }
+
+ res.Source = BuildSelect(startPos, std::move(res.Source), skipTake);
+ return res;
+}
+
+TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind& node, TPosition& selectPos,
+ TMaybe<TSelectKindPlacement> placement)
+{
+ const bool discard = node.HasBlock1();
+ const bool hasLabel = node.HasBlock3();
+ if ((discard || hasLabel) && (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW || Mode == NSQLTranslation::ESqlMode::SUBQUERY)) {
+ Ctx.Error() << "DISCARD and INTO RESULT are not allowed in current mode";
+ return {};
+ }
+
+ if (discard && hasLabel) {
+ Ctx.Error() << "DISCARD and INTO RESULT cannot be used at the same time";
+ return {};
+ }
+
+ if (discard && !selectPos) {
+ selectPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
+ }
+
+ TWriteSettings settings;
+ settings.Discard = discard;
+ if (hasLabel) {
+ settings.Label = PureColumnOrNamed(node.GetBlock3().GetRule_pure_column_or_named3(), *this);
+ }
+
+ TSelectKindResult res;
+ if (placement.Defined()) {
+ if (placement->IsFirstInSelectOp) {
+ res.Settings.Discard = settings.Discard;
+ } else if (settings.Discard) {
+ auto discardPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
+ if (Ctx.AnsiOrderByLimitInUnionAll.Defined() && *Ctx.AnsiOrderByLimitInUnionAll) {
+ Ctx.Error(discardPos) << "DISCARD within UNION ALL is only allowed before first subquery";
+ return {};
+ }
+ Ctx.Warning(discardPos, TIssuesIds::YQL_LIMIT_ORDER_BY_WITH_UNION)
+ << "DISCARD will be ignored here. Please use DISCARD before first subquery in UNION ALL if you want to discard entire UNION ALL result";
+ }
+
+ if (placement->IsLastInSelectOp) {
+ res.Settings.Label = settings.Label;
+ } else if (!settings.Label.Empty()) {
+ auto labelPos = Ctx.TokenPosition(node.GetBlock3().GetToken1());
+ if (Ctx.AnsiOrderByLimitInUnionAll.Defined() && *Ctx.AnsiOrderByLimitInUnionAll) {
+ Ctx.Error(labelPos) << "INTO RESULT within UNION ALL is only allowed after last subquery";
+ return {};
+ }
+ Ctx.Warning(labelPos, TIssuesIds::YQL_LIMIT_ORDER_BY_WITH_UNION)
+ << "INTO RESULT will be ignored here. Please use INTO RESULT after last subquery in UNION ALL if you want label entire UNION ALL result";
+ }
+
+ settings = {};
+ }
+
+ switch (node.GetBlock2().Alt_case()) {
+ case TRule_select_kind_TBlock2::kAlt1:
+ res.Source = ProcessCore(node.GetBlock2().GetAlt1().GetRule_process_core1(), settings, selectPos);
+ break;
+ case TRule_select_kind_TBlock2::kAlt2:
+ res.Source = ReduceCore(node.GetBlock2().GetAlt2().GetRule_reduce_core1(), settings, selectPos);
+ break;
+ case TRule_select_kind_TBlock2::kAlt3: {
+ res.Source = SelectCore(node.GetBlock2().GetAlt3().GetRule_select_core1(), settings, selectPos,
+ placement, res.SelectOpOrderBy, res.SelectOpAssumeOrderBy);
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ return res;
+}
+
+TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind_parenthesis& node, TPosition& selectPos,
+ TMaybe<TSelectKindPlacement> placement)
+{
+ if (node.Alt_case() == TRule_select_kind_parenthesis::kAltSelectKindParenthesis1) {
+ return SelectKind(node.GetAlt_select_kind_parenthesis1().GetRule_select_kind_partial1(), selectPos, placement);
+ } else {
+ return SelectKind(node.GetAlt_select_kind_parenthesis2().GetRule_select_kind_partial2(), selectPos, {});
+ }
+}
+
+template<typename TRule>
+TSourcePtr TSqlSelect::Build(const TRule& node, TPosition pos, TSelectKindResult&& first) {
+ TPosition unionPos = pos; // Position of first select
+ TVector<TSourcePtr> sources;
+ sources.emplace_back(std::move(first.Source));
+
+ TVector<TSortSpecificationPtr> orderBy;
+ TNodePtr skipTake;
+ TWriteSettings settings;
+ settings.Discard = first.Settings.Discard;
+ bool assumeOrderBy = false;
+ auto blocks = node.GetBlock2();
+ for (int i = 0; i < blocks.size(); ++i) {
+ auto& b = blocks[i];
+ const bool last = (i + 1 == blocks.size());
+ TSelectKindPlacement placement;
+ placement.IsLastInSelectOp = last;
+
+ TSelectKindResult next = SelectKind(b.GetRule_select_kind_parenthesis2(), pos, placement);
+ if (!next) {
+ return nullptr;
+ }
+
+ if (last) {
+ orderBy = next.SelectOpOrderBy;
+ assumeOrderBy = next.SelectOpAssumeOrderBy;
+ skipTake = next.SelectOpSkipTake;
+ settings.Label = next.Settings.Label;
+ }
+
+ switch (b.GetRule_select_op1().Alt_case()) {
+ case TRule_select_op::kAltSelectOp1: {
+ const bool isUnionAll = b.GetRule_select_op1().GetAlt_select_op1().HasBlock2();
+ if (!isUnionAll) {
+ Token(b.GetRule_select_op1().GetAlt_select_op1().GetToken1());
+ Ctx.Error() << "UNION without quantifier ALL is not supported yet. Did you mean UNION ALL?";
+ return nullptr;
+ } else {
+ sources.emplace_back(std::move(next.Source));
+ }
+ break;
+ }
+ default:
+ Ctx.Error() << "INTERSECT and EXCEPT are not implemented yet";
+ return nullptr;
+ }
+ }
+
+ if (sources.size() == 1) {
+ return std::move(sources[0]);
+ }
+
+ TSourcePtr result;
+ if (orderBy) {
+ result = BuildUnionAll(unionPos, std::move(sources), {});
+
+ TVector<TNodePtr> groupByExpr;
+ TVector<TNodePtr> groupBy;
+ bool compactGroupBy = false;
+ TString groupBySuffix = "";
+ TNodePtr having;
+ TWinSpecs winSpecs;
+ TLegacyHoppingWindowSpecPtr legacyHoppingWindowSpec;
+ bool distinct = false;
+ TVector<TNodePtr> without;
+ bool stream = false;
+
+ TVector<TNodePtr> terms;
+ terms.push_back(BuildColumn(unionPos, "*", ""));
+
+ result = BuildSelectCore(Ctx, unionPos, std::move(result), groupByExpr, groupBy, compactGroupBy, groupBySuffix,
+ assumeOrderBy, orderBy, having, std::move(winSpecs), legacyHoppingWindowSpec, std::move(terms),
+ distinct, std::move(without), stream, settings);
+ } else {
+ result = BuildUnionAll(unionPos, std::move(sources), settings);
+ }
+
+ if (skipTake || orderBy) {
+ result = BuildSelect(unionPos, std::move(result), skipTake);
+ }
+ return result;
+}
+
+TSourcePtr TSqlSelect::Build(const TRule_select_stmt& node, TPosition& selectPos) {
+ TMaybe<TSelectKindPlacement> placement;
+ if (!node.GetBlock2().empty()) {
+ placement.ConstructInPlace();
+ placement->IsFirstInSelectOp = true;
+ }
+
+ auto res = SelectKind(node.GetRule_select_kind_parenthesis1(), selectPos, placement);
+ if (!res) {
+ return nullptr;
+ }
+
+ return Build(node, selectPos, std::move(res));
+}
+
+TSourcePtr TSqlSelect::Build(const TRule_select_unparenthesized_stmt& node, TPosition& selectPos) {
+ TMaybe<TSelectKindPlacement> placement;
+ if (!node.GetBlock2().empty()) {
+ placement.ConstructInPlace();
+ placement->IsFirstInSelectOp = true;
+ }
+
+ auto res = SelectKind(node.GetRule_select_kind_partial1(), selectPos, placement);
+ if (!res) {
+ return nullptr;
+ }
+
+ return Build(node, selectPos, std::move(res));
+}
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_select.h b/ydb/library/yql/sql/v1/sql_select.h
new file mode 100644
index 0000000000..945722501d
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_select.h
@@ -0,0 +1,74 @@
+#pragma once
+
+#include "sql_translation.h"
+#include <ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1Parser.pb.h>
+
+namespace NSQLTranslationV1 {
+
+using namespace NSQLv1Generated;
+
+class TSqlSelect: public TSqlTranslation {
+public:
+ TSqlSelect(TContext& ctx, NSQLTranslation::ESqlMode mode)
+ : TSqlTranslation(ctx, mode)
+ {
+ }
+
+ TSourcePtr Build(const TRule_select_stmt& node, TPosition& selectPos);
+ TSourcePtr Build(const TRule_select_unparenthesized_stmt& node, TPosition& selectPos);
+
+private:
+ bool SelectTerm(TVector<TNodePtr>& terms, const TRule_result_column& node);
+ bool ValidateSelectColumns(const TVector<TNodePtr>& terms);
+ bool ColumnName(TVector<TNodePtr>& keys, const TRule_column_name& node);
+ bool ColumnName(TVector<TNodePtr>& keys, const TRule_without_column_name& node);
+ template<typename TRule>
+ bool ColumnList(TVector<TNodePtr>& keys, const TRule& node);
+ bool NamedColumn(TVector<TNodePtr>& columnList, const TRule_named_column& node);
+ TSourcePtr SingleSource(const TRule_single_source& node, const TVector<TString>& derivedColumns, TPosition derivedColumnsPos, bool unorderedSubquery);
+ TSourcePtr NamedSingleSource(const TRule_named_single_source& node, bool unorderedSubquery);
+ bool FlattenByArg(const TString& sourceLabel, TVector<TNodePtr>& flattenByColumns, TVector<TNodePtr>& flattenByExprs, const TRule_flatten_by_arg& node);
+ TSourcePtr FlattenSource(const TRule_flatten_source& node);
+ TSourcePtr JoinSource(const TRule_join_source& node);
+ bool JoinOp(ISource* join, const TRule_join_source::TBlock3& block, TMaybe<TPosition> anyPos);
+ TNodePtr JoinExpr(ISource*, const TRule_join_constraint& node);
+ TSourcePtr ProcessCore(const TRule_process_core& node, const TWriteSettings& settings, TPosition& selectPos);
+ TSourcePtr ReduceCore(const TRule_reduce_core& node, const TWriteSettings& settings, TPosition& selectPos);
+
+ struct TSelectKindPlacement {
+ bool IsFirstInSelectOp = false;
+ bool IsLastInSelectOp = false;
+ };
+
+ TSourcePtr SelectCore(const TRule_select_core& node, const TWriteSettings& settings, TPosition& selectPos,
+ TMaybe<TSelectKindPlacement> placement, TVector<TSortSpecificationPtr>& selectOpOrederBy, bool& selectOpAssumeOrderBy);
+
+ bool WindowDefinition(const TRule_window_definition& node, TWinSpecs& winSpecs);
+ bool WindowClause(const TRule_window_clause& node, TWinSpecs& winSpecs);
+
+ struct TSelectKindResult {
+ TSourcePtr Source;
+ TWriteSettings Settings;
+
+ TVector<TSortSpecificationPtr> SelectOpOrderBy;
+ bool SelectOpAssumeOrderBy = false;
+ TNodePtr SelectOpSkipTake;
+
+ inline explicit operator bool() const {
+ return static_cast<bool>(Source);
+ }
+ };
+
+ bool ValidateLimitOrderByWithSelectOp(TMaybe<TSelectKindPlacement> placement, TStringBuf what);
+ bool NeedPassLimitOrderByToUnderlyingSelect(TMaybe<TSelectKindPlacement> placement);
+
+ template<typename TRule>
+ TSourcePtr Build(const TRule& node, TPosition pos, TSelectKindResult&& first);
+
+
+ TSelectKindResult SelectKind(const TRule_select_kind& node, TPosition& selectPos, TMaybe<TSelectKindPlacement> placement);
+ TSelectKindResult SelectKind(const TRule_select_kind_partial& node, TPosition& selectPos, TMaybe<TSelectKindPlacement> placement);
+ TSelectKindResult SelectKind(const TRule_select_kind_parenthesis& node, TPosition& selectPos, TMaybe<TSelectKindPlacement> placement);
+};
+
+} //namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_translation.cpp b/ydb/library/yql/sql/v1/sql_translation.cpp
new file mode 100644
index 0000000000..edd313801d
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_translation.cpp
@@ -0,0 +1,4249 @@
+#include "sql_translation.h"
+#include "sql_expression.h"
+#include "sql_call_expr.h"
+#include "sql_query.h"
+#include "sql_values.h"
+#include "sql_select.h"
+#include "source.h"
+#include <ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h>
+#include <ydb/library/yql/sql/settings/partitioning.h>
+#include <util/generic/scope.h>
+#include <util/string/join.h>
+namespace NSQLTranslationV1 {
+
+using NALPDefault::SQLv1LexerTokens;
+
+using namespace NSQLv1Generated;
+
+TIdentifier GetKeywordId(TTranslation& ctx, const TRule_keyword& node) {
+ // keyword:
+ // keyword_compat
+ // | keyword_expr_uncompat
+ // | keyword_table_uncompat
+ // | keyword_select_uncompat
+ // | keyword_alter_uncompat
+ // | keyword_in_uncompat
+ // | keyword_window_uncompat
+ // | keyword_hint_uncompat
+ //;
+ switch (node.Alt_case()) {
+ case TRule_keyword::kAltKeyword1:
+ return GetIdentifier(ctx, node.GetAlt_keyword1().GetRule_keyword_compat1());
+ case TRule_keyword::kAltKeyword2:
+ return GetIdentifier(ctx, node.GetAlt_keyword2().GetRule_keyword_expr_uncompat1());
+ case TRule_keyword::kAltKeyword3:
+ return GetIdentifier(ctx, node.GetAlt_keyword3().GetRule_keyword_table_uncompat1());
+ case TRule_keyword::kAltKeyword4:
+ return GetIdentifier(ctx, node.GetAlt_keyword4().GetRule_keyword_select_uncompat1());
+ case TRule_keyword::kAltKeyword5:
+ return GetIdentifier(ctx, node.GetAlt_keyword5().GetRule_keyword_alter_uncompat1());
+ case TRule_keyword::kAltKeyword6:
+ return GetIdentifier(ctx, node.GetAlt_keyword6().GetRule_keyword_in_uncompat1());
+ case TRule_keyword::kAltKeyword7:
+ return GetIdentifier(ctx, node.GetAlt_keyword7().GetRule_keyword_window_uncompat1());
+ case TRule_keyword::kAltKeyword8:
+ return GetIdentifier(ctx, node.GetAlt_keyword8().GetRule_keyword_hint_uncompat1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_id& node, TTranslation& ctx) {
+ // id: identifier | keyword;
+ switch (node.Alt_case()) {
+ case TRule_id::kAltId1:
+ return Id(node.GetAlt_id1().GetRule_identifier1(), ctx);
+ case TRule_id::kAltId2:
+ return GetKeyword(ctx, node.GetAlt_id2().GetRule_keyword1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_id_or_type& node, TTranslation& ctx) {
+ switch (node.Alt_case()) {
+ case TRule_id_or_type::kAltIdOrType1:
+ return Id(node.GetAlt_id_or_type1().GetRule_id1(), ctx);
+ case TRule_id_or_type::kAltIdOrType2:
+ return ctx.Identifier(node.GetAlt_id_or_type2().GetRule_type_id1().GetToken1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_id_as_compat& node, TTranslation& ctx) {
+ switch (node.Alt_case()) {
+ case TRule_id_as_compat::kAltIdAsCompat1:
+ return Id(node.GetAlt_id_as_compat1().GetRule_identifier1(), ctx);
+ case TRule_id_as_compat::kAltIdAsCompat2:
+ return ctx.Token(node.GetAlt_id_as_compat2().GetRule_keyword_as_compat1().GetToken1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id_as_compat& node, TTranslation& ctx) {
+ switch (node.Alt_case()) {
+ case TRule_an_id_as_compat::kAltAnIdAsCompat1:
+ return Id(node.GetAlt_an_id_as_compat1().GetRule_id_as_compat1(), ctx);
+ case TRule_an_id_as_compat::kAltAnIdAsCompat2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_as_compat2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_id_schema& node, TTranslation& ctx) {
+ //id_schema:
+ // identifier
+ // | keyword_compat
+ // | keyword_expr_uncompat
+ // // | keyword_table_uncompat
+ // | keyword_select_uncompat
+ // // | keyword_alter_uncompat
+ // | keyword_in_uncompat
+ // | keyword_window_uncompat
+ // | keyword_hint_uncompat
+ //;
+ switch (node.Alt_case()) {
+ case TRule_id_schema::kAltIdSchema1:
+ return Id(node.GetAlt_id_schema1().GetRule_identifier1(), ctx);
+ case TRule_id_schema::kAltIdSchema2:
+ return GetKeyword(ctx, node.GetAlt_id_schema2().GetRule_keyword_compat1());
+ case TRule_id_schema::kAltIdSchema3:
+ return GetKeyword(ctx, node.GetAlt_id_schema3().GetRule_keyword_expr_uncompat1());
+ case TRule_id_schema::kAltIdSchema4:
+ return GetKeyword(ctx, node.GetAlt_id_schema4().GetRule_keyword_select_uncompat1());
+ case TRule_id_schema::kAltIdSchema5:
+ return GetKeyword(ctx, node.GetAlt_id_schema5().GetRule_keyword_in_uncompat1());
+ case TRule_id_schema::kAltIdSchema6:
+ return GetKeyword(ctx, node.GetAlt_id_schema6().GetRule_keyword_window_uncompat1());
+ case TRule_id_schema::kAltIdSchema7:
+ return GetKeyword(ctx, node.GetAlt_id_schema7().GetRule_keyword_hint_uncompat1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id_or_type& node, TTranslation& ctx) {
+ // an_id_or_type: id_or_type | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_an_id_or_type::kAltAnIdOrType1:
+ return Id(node.GetAlt_an_id_or_type1().GetRule_id_or_type1(), ctx);
+ case TRule_an_id_or_type::kAltAnIdOrType2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_or_type2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+std::pair<bool, TString> Id(const TRule_id_or_at& node, TTranslation& ctx) {
+ bool hasAt = node.HasBlock1();
+ return std::make_pair(hasAt, Id(node.GetRule_an_id_or_type2(), ctx) );
+}
+
+TString Id(const TRule_id_table& node, TTranslation& ctx) {
+ //id_table:
+ // identifier
+ // | keyword_compat
+ // | keyword_expr_uncompat
+ // // | keyword_table_uncompat
+ // | keyword_select_uncompat
+ // // | keyword_alter_uncompat
+ // | keyword_in_uncompat
+ // | keyword_window_uncompat
+ // | keyword_hint_uncompat
+ //;
+ switch (node.Alt_case()) {
+ case TRule_id_table::kAltIdTable1:
+ return Id(node.GetAlt_id_table1().GetRule_identifier1(), ctx);
+ case TRule_id_table::kAltIdTable2:
+ return GetKeyword(ctx, node.GetAlt_id_table2().GetRule_keyword_compat1());
+ case TRule_id_table::kAltIdTable3:
+ return GetKeyword(ctx, node.GetAlt_id_table3().GetRule_keyword_expr_uncompat1());
+ case TRule_id_table::kAltIdTable4:
+ return GetKeyword(ctx, node.GetAlt_id_table4().GetRule_keyword_select_uncompat1());
+ case TRule_id_table::kAltIdTable5:
+ return GetKeyword(ctx, node.GetAlt_id_table5().GetRule_keyword_in_uncompat1());
+ case TRule_id_table::kAltIdTable6:
+ return GetKeyword(ctx, node.GetAlt_id_table6().GetRule_keyword_window_uncompat1());
+ case TRule_id_table::kAltIdTable7:
+ return GetKeyword(ctx, node.GetAlt_id_table7().GetRule_keyword_hint_uncompat1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id_table& node, TTranslation& ctx) {
+ // an_id_table: id_table | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_an_id_table::kAltAnIdTable1:
+ return Id(node.GetAlt_an_id_table1().GetRule_id_table1(), ctx);
+ case TRule_an_id_table::kAltAnIdTable2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_table2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_id_table_or_type& node, TTranslation& ctx) {
+ switch (node.Alt_case()) {
+ case TRule_id_table_or_type::kAltIdTableOrType1:
+ return Id(node.GetAlt_id_table_or_type1().GetRule_an_id_table1(), ctx);
+ case TRule_id_table_or_type::kAltIdTableOrType2:
+ return ctx.Identifier(node.GetAlt_id_table_or_type2().GetRule_type_id1().GetToken1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_id_expr& node, TTranslation& ctx) {
+ //id_expr:
+ // identifier
+ // | keyword_compat
+ // // | keyword_expr_uncompat
+ // // | keyword_table_uncompat
+ // // | keyword_select_uncompat
+ // | keyword_alter_uncompat
+ // | keyword_in_uncompat
+ // | keyword_window_uncompat
+ // | keyword_hint_uncompat
+ //;
+ switch (node.Alt_case()) {
+ case TRule_id_expr::kAltIdExpr1:
+ return Id(node.GetAlt_id_expr1().GetRule_identifier1(), ctx);
+ case TRule_id_expr::kAltIdExpr2:
+ return GetKeyword(ctx, node.GetAlt_id_expr2().GetRule_keyword_compat1());
+ case TRule_id_expr::kAltIdExpr3:
+ return GetKeyword(ctx, node.GetAlt_id_expr3().GetRule_keyword_alter_uncompat1());
+ case TRule_id_expr::kAltIdExpr4:
+ return GetKeyword(ctx, node.GetAlt_id_expr4().GetRule_keyword_in_uncompat1());
+ case TRule_id_expr::kAltIdExpr5:
+ return GetKeyword(ctx, node.GetAlt_id_expr5().GetRule_keyword_window_uncompat1());
+ case TRule_id_expr::kAltIdExpr6:
+ return GetKeyword(ctx, node.GetAlt_id_expr6().GetRule_keyword_hint_uncompat1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+bool IsQuotedId(const TRule_id_expr& node, TTranslation& ctx) {
+ if (node.Alt_case() != TRule_id_expr::kAltIdExpr1) {
+ return false;
+ }
+ const auto& id = ctx.Token(node.GetAlt_id_expr1().GetRule_identifier1().GetToken1());
+ // identifier: ID_PLAIN | ID_QUOTED;
+ return id.StartsWith('`');
+}
+
+TString Id(const TRule_id_expr_in& node, TTranslation& ctx) {
+ //id_expr_in:
+ // identifier
+ // | keyword_compat
+ // // | keyword_expr_uncompat
+ // // | keyword_table_uncompat
+ // // | keyword_select_uncompat
+ // | keyword_alter_uncompat
+ // // | keyword_in_uncompat
+ // | keyword_window_uncompat
+ // | keyword_hint_uncompat
+ //;
+ switch (node.Alt_case()) {
+ case TRule_id_expr_in::kAltIdExprIn1:
+ return Id(node.GetAlt_id_expr_in1().GetRule_identifier1(), ctx);
+ case TRule_id_expr_in::kAltIdExprIn2:
+ return GetKeyword(ctx, node.GetAlt_id_expr_in2().GetRule_keyword_compat1());
+ case TRule_id_expr_in::kAltIdExprIn3:
+ return GetKeyword(ctx, node.GetAlt_id_expr_in3().GetRule_keyword_alter_uncompat1());
+ case TRule_id_expr_in::kAltIdExprIn4:
+ return GetKeyword(ctx, node.GetAlt_id_expr_in4().GetRule_keyword_window_uncompat1());
+ case TRule_id_expr_in::kAltIdExprIn5:
+ return GetKeyword(ctx, node.GetAlt_id_expr_in5().GetRule_keyword_hint_uncompat1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_id_window& node, TTranslation& ctx) {
+ //id_window:
+ // identifier
+ // | keyword_compat
+ // | keyword_expr_uncompat
+ // | keyword_table_uncompat
+ // | keyword_select_uncompat
+ // | keyword_alter_uncompat
+ // | keyword_in_uncompat
+ // // | keyword_window_uncompat
+ // | keyword_hint_uncompat
+ //;
+ switch (node.Alt_case()) {
+ case TRule_id_window::kAltIdWindow1:
+ return Id(node.GetAlt_id_window1().GetRule_identifier1(), ctx);
+ case TRule_id_window::kAltIdWindow2:
+ return GetKeyword(ctx, node.GetAlt_id_window2().GetRule_keyword_compat1());
+ case TRule_id_window::kAltIdWindow3:
+ return GetKeyword(ctx, node.GetAlt_id_window3().GetRule_keyword_expr_uncompat1());
+ case TRule_id_window::kAltIdWindow4:
+ return GetKeyword(ctx, node.GetAlt_id_window4().GetRule_keyword_table_uncompat1());
+ case TRule_id_window::kAltIdWindow5:
+ return GetKeyword(ctx, node.GetAlt_id_window5().GetRule_keyword_select_uncompat1());
+ case TRule_id_window::kAltIdWindow6:
+ return GetKeyword(ctx, node.GetAlt_id_window6().GetRule_keyword_alter_uncompat1());
+ case TRule_id_window::kAltIdWindow7:
+ return GetKeyword(ctx, node.GetAlt_id_window7().GetRule_keyword_in_uncompat1());
+ case TRule_id_window::kAltIdWindow8:
+ return GetKeyword(ctx, node.GetAlt_id_window8().GetRule_keyword_hint_uncompat1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_id_without& node, TTranslation& ctx) {
+ //id_without:
+ // identifier
+ // | keyword_compat
+ // // | keyword_expr_uncompat
+ // | keyword_table_uncompat
+ // // | keyword_select_uncompat
+ // | keyword_alter_uncompat
+ // | keyword_in_uncompat
+ // | keyword_window_uncompat
+ // | keyword_hint_uncompat
+ //;
+ switch (node.Alt_case()) {
+ case TRule_id_without::kAltIdWithout1:
+ return Id(node.GetAlt_id_without1().GetRule_identifier1(), ctx);
+ case TRule_id_without::kAltIdWithout2:
+ return GetKeyword(ctx, node.GetAlt_id_without2().GetRule_keyword_compat1());
+ case TRule_id_without::kAltIdWithout3:
+ return GetKeyword(ctx, node.GetAlt_id_without3().GetRule_keyword_table_uncompat1());
+ case TRule_id_without::kAltIdWithout4:
+ return GetKeyword(ctx, node.GetAlt_id_without4().GetRule_keyword_alter_uncompat1());
+ case TRule_id_without::kAltIdWithout5:
+ return GetKeyword(ctx, node.GetAlt_id_without5().GetRule_keyword_in_uncompat1());
+ case TRule_id_without::kAltIdWithout6:
+ return GetKeyword(ctx, node.GetAlt_id_without6().GetRule_keyword_window_uncompat1());
+ case TRule_id_without::kAltIdWithout7:
+ return GetKeyword(ctx, node.GetAlt_id_without7().GetRule_keyword_hint_uncompat1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_id_hint& node, TTranslation& ctx) {
+ //id_hint:
+ // identifier
+ // | keyword_compat
+ // | keyword_expr_uncompat
+ // | keyword_table_uncompat
+ // | keyword_select_uncompat
+ // | keyword_alter_uncompat
+ // | keyword_in_uncompat
+ // | keyword_window_uncompat
+ // // | keyword_hint_uncompat
+ //;
+ switch (node.Alt_case()) {
+ case TRule_id_hint::kAltIdHint1:
+ return Id(node.GetAlt_id_hint1().GetRule_identifier1(), ctx);
+ case TRule_id_hint::kAltIdHint2:
+ return GetKeyword(ctx, node.GetAlt_id_hint2().GetRule_keyword_compat1());
+ case TRule_id_hint::kAltIdHint3:
+ return GetKeyword(ctx, node.GetAlt_id_hint3().GetRule_keyword_expr_uncompat1());
+ case TRule_id_hint::kAltIdHint4:
+ return GetKeyword(ctx, node.GetAlt_id_hint4().GetRule_keyword_table_uncompat1());
+ case TRule_id_hint::kAltIdHint5:
+ return GetKeyword(ctx, node.GetAlt_id_hint5().GetRule_keyword_select_uncompat1());
+ case TRule_id_hint::kAltIdHint6:
+ return GetKeyword(ctx, node.GetAlt_id_hint6().GetRule_keyword_alter_uncompat1());
+ case TRule_id_hint::kAltIdHint7:
+ return GetKeyword(ctx, node.GetAlt_id_hint7().GetRule_keyword_in_uncompat1());
+ case TRule_id_hint::kAltIdHint8:
+ return GetKeyword(ctx, node.GetAlt_id_hint8().GetRule_keyword_window_uncompat1());
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id& node, TTranslation& ctx) {
+ // an_id: id | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_an_id::kAltAnId1:
+ return Id(node.GetAlt_an_id1().GetRule_id1(), ctx);
+ case TRule_an_id::kAltAnId2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id_schema& node, TTranslation& ctx) {
+ // an_id_schema: id_schema | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_an_id_schema::kAltAnIdSchema1:
+ return Id(node.GetAlt_an_id_schema1().GetRule_id_schema1(), ctx);
+ case TRule_an_id_schema::kAltAnIdSchema2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_schema2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id_expr& node, TTranslation& ctx) {
+ // an_id_expr: id_expr | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_an_id_expr::kAltAnIdExpr1:
+ return Id(node.GetAlt_an_id_expr1().GetRule_id_expr1(), ctx);
+ case TRule_an_id_expr::kAltAnIdExpr2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_expr2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id_window& node, TTranslation& ctx) {
+ // an_id_window: id_window | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_an_id_window::kAltAnIdWindow1:
+ return Id(node.GetAlt_an_id_window1().GetRule_id_window1(), ctx);
+ case TRule_an_id_window::kAltAnIdWindow2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_window2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id_without& node, TTranslation& ctx) {
+ // an_id_without: id_without | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_an_id_without::kAltAnIdWithout1:
+ return Id(node.GetAlt_an_id_without1().GetRule_id_without1(), ctx);
+ case TRule_an_id_without::kAltAnIdWithout2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_without2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id_hint& node, TTranslation& ctx) {
+ // an_id_hint: id_hint | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_an_id_hint::kAltAnIdHint1:
+ return Id(node.GetAlt_an_id_hint1().GetRule_id_hint1(), ctx);
+ case TRule_an_id_hint::kAltAnIdHint2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_hint2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TString Id(const TRule_an_id_pure& node, TTranslation& ctx) {
+ // an_id_pure: identifier | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_an_id_pure::kAltAnIdPure1:
+ return Id(node.GetAlt_an_id_pure1().GetRule_identifier1(), ctx);
+ case TRule_an_id_pure::kAltAnIdPure2:
+ return IdContentFromString(ctx.Context(), ctx.Token(node.GetAlt_an_id_pure2().GetToken1()));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+bool NamedNodeImpl(const TRule_bind_parameter& node, TString& name, TTranslation& ctx) {
+ // bind_parameter: DOLLAR (an_id_or_type | TRUE | FALSE);
+ TString id;
+ switch (node.GetBlock2().Alt_case()) {
+ case TRule_bind_parameter::TBlock2::kAlt1:
+ id = Id(node.GetBlock2().GetAlt1().GetRule_an_id_or_type1(), ctx);
+ break;
+ case TRule_bind_parameter::TBlock2::kAlt2:
+ id = ctx.Token(node.GetBlock2().GetAlt2().GetToken1());
+ break;
+ case TRule_bind_parameter::TBlock2::kAlt3:
+ id = ctx.Token(node.GetBlock2().GetAlt3().GetToken1());
+ break;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ auto dollar = ctx.Token(node.GetToken1());
+ if (id.empty()) {
+ ctx.Error() << "Empty symbol name is not allowed";
+ return false;
+ }
+
+ name = dollar + id;
+ return true;
+}
+
+TString OptIdPrefixAsStr(const TRule_opt_id_prefix& node, TTranslation& ctx, const TString& defaultStr) {
+ if (!node.HasBlock1()) {
+ return defaultStr;
+ }
+ return Id(node.GetBlock1().GetRule_an_id1(), ctx);
+}
+
+TString OptIdPrefixAsStr(const TRule_opt_id_prefix_or_type& node, TTranslation& ctx, const TString& defaultStr) {
+ if (!node.HasBlock1()) {
+ return defaultStr;
+ }
+ return Id(node.GetBlock1().GetRule_an_id_or_type1(), ctx);
+}
+
+void PureColumnListStr(const TRule_pure_column_list& node, TTranslation& ctx, TVector<TString>& outList) {
+ outList.push_back(Id(node.GetRule_an_id2(), ctx));
+ for (auto& block: node.GetBlock3()) {
+ outList.push_back(Id(block.GetRule_an_id2(), ctx));
+ }
+}
+
+bool NamedNodeImpl(const TRule_opt_bind_parameter& node, TString& name, bool& isOptional, TTranslation& ctx) {
+ // opt_bind_parameter: bind_parameter QUESTION?;
+ isOptional = false;
+ if (!NamedNodeImpl(node.GetRule_bind_parameter1(), name, ctx)) {
+ return false;
+ }
+ isOptional = node.HasBlock2();
+ return true;
+}
+
+TDeferredAtom PureColumnOrNamed(const TRule_pure_column_or_named& node, TTranslation& ctx) {
+ switch (node.Alt_case()) {
+ case TRule_pure_column_or_named::kAltPureColumnOrNamed1: {
+ TString named;
+ if (!NamedNodeImpl(node.GetAlt_pure_column_or_named1().GetRule_bind_parameter1(), named, ctx)) {
+ return {};
+ }
+ auto namedNode = ctx.GetNamedNode(named);
+ if (!namedNode) {
+ return {};
+ }
+
+ return TDeferredAtom(namedNode, ctx.Context());
+ }
+
+ case TRule_pure_column_or_named::kAltPureColumnOrNamed2:
+ return TDeferredAtom(ctx.Context().Pos(), Id(node.GetAlt_pure_column_or_named2().GetRule_an_id1(), ctx));
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+bool PureColumnOrNamedListStr(const TRule_pure_column_or_named_list& node, TTranslation& ctx, TVector<TDeferredAtom>& outList) {
+ outList.push_back(PureColumnOrNamed(node.GetRule_pure_column_or_named2(), ctx));
+ if (outList.back().Empty()) {
+ return false;
+ }
+
+ for (auto& block : node.GetBlock3()) {
+ outList.push_back(PureColumnOrNamed(block.GetRule_pure_column_or_named2(), ctx));
+ if (outList.back().Empty()) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool CreateTableIndex(const TRule_table_index& node, TTranslation& ctx, TVector<TIndexDescription>& indexes) {
+ indexes.emplace_back(IdEx(node.GetRule_an_id2(), ctx));
+
+ const auto& indexType = node.GetRule_table_index_type3();
+ switch (indexType.Alt_case()) {
+ case TRule_table_index_type::kAltTableIndexType1: {
+ auto globalIndex = indexType.GetAlt_table_index_type1().GetRule_global_index1();
+ if (globalIndex.HasBlock2()) {
+ ctx.AltNotImplemented("unique", indexType);
+ return false;
+ }
+ if (globalIndex.HasBlock3()) {
+ const TString token = to_lower(ctx.Token(globalIndex.GetBlock3().GetToken1()));
+ if (token == "sync") {
+ indexes.back().Type = TIndexDescription::EType::GlobalSync;
+ } else if (token == "async") {
+ indexes.back().Type = TIndexDescription::EType::GlobalAsync;
+ } else {
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ }
+ }
+ break;
+ case TRule_table_index_type::kAltTableIndexType2:
+ ctx.AltNotImplemented("local", indexType);
+ return false;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ if (node.HasBlock4()) {
+ ctx.AltNotImplemented("with", indexType);
+ return false;
+ }
+
+ indexes.back().IndexColumns.emplace_back(IdEx(node.GetRule_an_id_schema7(), ctx));
+ for (const auto& block : node.GetBlock8()) {
+ indexes.back().IndexColumns.emplace_back(IdEx(block.GetRule_an_id_schema2(), ctx));
+ }
+
+ if (node.HasBlock10()) {
+ const auto& block = node.GetBlock10();
+ indexes.back().DataColumns.emplace_back(IdEx(block.GetRule_an_id_schema3(), ctx));
+ for (const auto& inner : block.GetBlock4()) {
+ indexes.back().DataColumns.emplace_back(IdEx(inner.GetRule_an_id_schema2(), ctx));
+ }
+ }
+
+ return true;
+}
+
+std::pair<TString, TString> TableKeyImpl(const std::pair<bool, TString>& nameWithAt, TString view, TTranslation& ctx) {
+ if (nameWithAt.first) {
+ view = "@";
+ ctx.Context().IncrementMonCounter("sql_features", "AnonymousTable");
+ }
+
+ return std::make_pair(nameWithAt.second, view);
+}
+
+std::pair<TString, TString> TableKeyImpl(const TRule_table_key& node, TTranslation& ctx, bool hasAt) {
+ auto name(Id(node.GetRule_id_table_or_type1(), ctx));
+ TString view;
+ if (node.HasBlock2()) {
+ view = Id(node.GetBlock2().GetRule_an_id2(), ctx);
+ ctx.Context().IncrementMonCounter("sql_features", "View");
+ }
+
+ return TableKeyImpl(std::make_pair(hasAt, name), view, ctx);
+}
+
+/// \return optional prefix
+TString ColumnNameAsStr(TTranslation& ctx, const TRule_column_name& node, TString& id) {
+ id = Id(node.GetRule_an_id2(), ctx);
+ return OptIdPrefixAsStr(node.GetRule_opt_id_prefix1(), ctx);
+}
+
+TString ColumnNameAsSingleStr(TTranslation& ctx, const TRule_column_name& node) {
+ TString body;
+ const TString prefix = ColumnNameAsStr(ctx, node, body);
+ return prefix ? prefix + '.' + body : body;
+}
+
+TTableHints GetContextHints(TContext& ctx) {
+ TTableHints hints;
+ if (ctx.PragmaInferSchema) {
+ hints["infer_schema"] = {};
+ }
+ if (ctx.PragmaDirectRead) {
+ hints["direct_read"] = {};
+ }
+
+ return hints;
+}
+
+TTableHints GetTableFuncHints(TStringBuf funcName) {
+ TCiString func(funcName);
+ TTableHints res;
+ if (func.StartsWith("range") || func.StartsWith("like") || func.StartsWith("regexp") || func.StartsWith("filter")) {
+ res.emplace("ignore_non_existing", TVector<TNodePtr>{});
+ } else if (func.StartsWith("each")) {
+ res.emplace("ignore_non_existing", TVector<TNodePtr>{});
+ res.emplace("warn_non_existing", TVector<TNodePtr>{});
+ }
+
+ return res;
+}
+
+
+TNodePtr TSqlTranslation::NamedExpr(const TRule_named_expr& node, EExpr exprMode) {
+ TSqlExpression expr(Ctx, Mode);
+ if (exprMode == EExpr::GroupBy) {
+ expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::GroupBy);
+ } else if (exprMode == EExpr::SqlLambdaParams) {
+ expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::SqlLambdaParams);
+ }
+ if (node.HasBlock2()) {
+ expr.MarkAsNamed();
+ }
+ TNodePtr exprNode(expr.Build(node.GetRule_expr1()));
+ if (!exprNode) {
+ Ctx.IncrementMonCounter("sql_errors", "NamedExprInvalid");
+ return nullptr;
+ }
+ if (node.HasBlock2()) {
+ exprNode = SafeClone(exprNode);
+ exprNode->SetLabel(Id(node.GetBlock2().GetRule_an_id_or_type2(), *this));
+ }
+ return exprNode;
+}
+
+bool TSqlTranslation::NamedExprList(const TRule_named_expr_list& node, TVector<TNodePtr>& exprs, EExpr exprMode) {
+ exprs.emplace_back(NamedExpr(node.GetRule_named_expr1(), exprMode));
+ if (!exprs.back()) {
+ return false;
+ }
+ for (auto& b: node.GetBlock2()) {
+ exprs.emplace_back(NamedExpr(b.GetRule_named_expr2(), exprMode));
+ if (!exprs.back()) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlTranslation::BindList(const TRule_bind_parameter_list& node, TVector<TSymbolNameWithPos>& bindNames) {
+ bindNames.clear();
+
+ TString name;
+ if (!NamedNodeImpl(node.GetRule_bind_parameter1(), name, *this)) {
+ return false;
+ }
+
+ bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
+ for (auto& b: node.GetBlock2()) {
+ if (!NamedNodeImpl(b.GetRule_bind_parameter2(), name, *this)) {
+ return false;
+ }
+
+ bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
+ }
+ return true;
+}
+
+bool TSqlTranslation::ActionOrSubqueryArgs(const TRule_action_or_subquery_args& node, TVector<TSymbolNameWithPos>& bindNames, ui32& optionalArgsCount) {
+ bindNames.clear();
+ optionalArgsCount = 0;
+
+ TString name;
+ bool isOptional = false;
+ if (!NamedNodeImpl(node.GetRule_opt_bind_parameter1(), name, isOptional, *this)) {
+ return false;
+ }
+
+ if (isOptional) {
+ optionalArgsCount++;
+ }
+ bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
+
+ for (auto& b: node.GetBlock2()) {
+ if (!NamedNodeImpl(b.GetRule_opt_bind_parameter2(), name, isOptional, *this)) {
+ return false;
+ }
+
+ if (isOptional) {
+ optionalArgsCount++;
+ } else if (optionalArgsCount > 0) {
+ Context().Error() << "Non-optional argument can not follow optional one";
+ return false;
+ }
+ bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
+ }
+ return true;
+}
+
+bool TSqlTranslation::ModulePath(const TRule_module_path& node, TVector<TString>& path) {
+ if (node.HasBlock1()) {
+ path.emplace_back(TString());
+ }
+ path.emplace_back(Id(node.GetRule_an_id2(), *this));
+ for (auto& b: node.GetBlock3()) {
+ path.emplace_back(Id(b.GetRule_an_id2(), *this));
+ }
+ return true;
+}
+
+bool TSqlTranslation::NamedBindList(const TRule_named_bind_parameter_list& node, TVector<TSymbolNameWithPos>& names,
+ TVector<TSymbolNameWithPos>& aliases)
+{
+ names.clear();
+ aliases.clear();
+ TSymbolNameWithPos name;
+ TSymbolNameWithPos alias;
+
+ if (!NamedBindParam(node.GetRule_named_bind_parameter1(), name, alias)) {
+ return false;
+ }
+ names.push_back(name);
+ aliases.push_back(alias);
+
+ for (auto& b: node.GetBlock2()) {
+ if (!NamedBindParam(b.GetRule_named_bind_parameter2(), name, alias)) {
+ return false;
+ }
+ names.push_back(name);
+ aliases.push_back(alias);
+ }
+ return true;
+}
+
+bool TSqlTranslation::NamedBindParam(const TRule_named_bind_parameter& node, TSymbolNameWithPos& name, TSymbolNameWithPos& alias) {
+ name = alias = {};
+ if (!NamedNodeImpl(node.GetRule_bind_parameter1(), name.Name, *this)) {
+ return false;
+ }
+ name.Pos = Ctx.Pos();
+ if (node.HasBlock2()) {
+ if (!NamedNodeImpl(node.GetBlock2().GetRule_bind_parameter2(), alias.Name, *this)) {
+ return false;
+ }
+ alias.Pos = Ctx.Pos();
+ }
+ return true;
+}
+
+TMaybe<TTableArg> TSqlTranslation::TableArgImpl(const TRule_table_arg& node) {
+ TTableArg ret;
+ ret.HasAt = node.HasBlock1();
+ TColumnRefScope scope(Ctx, EColumnRefState::AsStringLiteral);
+ ret.Expr = NamedExpr(node.GetRule_named_expr2());
+ if (!ret.Expr) {
+ return Nothing();
+ }
+
+ if (node.HasBlock3()) {
+ ret.View = Id(node.GetBlock3().GetRule_an_id2(), *this);
+ Context().IncrementMonCounter("sql_features", "View");
+ }
+
+ return ret;
+}
+
+bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWildcard, TString& service, TDeferredAtom& cluster) {
+ bool allowBinding = false;
+ bool isBinding;
+ return ClusterExpr(node, allowWildcard, allowBinding, service, cluster, isBinding);
+}
+
+bool TSqlTranslation::ClusterExprOrBinding(const TRule_cluster_expr& node, TString& service, TDeferredAtom& cluster, bool& isBinding) {
+ bool allowWildcard = false;
+ bool allowBinding = true;
+ return ClusterExpr(node, allowWildcard, allowBinding, service, cluster, isBinding);
+}
+
+bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWildcard, bool allowBinding, TString& service,
+ TDeferredAtom& cluster, bool& isBinding)
+{
+ service = "";
+ cluster = TDeferredAtom();
+ isBinding = false;
+ if (node.HasBlock1()) {
+ service = to_lower(Id(node.GetBlock1().GetRule_an_id1(), *this));
+ allowBinding = false;
+ if (service != YtProviderName &&
+ service != KikimrProviderName &&
+ service != RtmrProviderName && service != StatProviderName) {
+ Ctx.Error() << "Unknown service: " << service;
+ return false;
+ }
+ }
+
+ switch (node.GetBlock2().Alt_case()) {
+ case TRule_cluster_expr::TBlock2::kAlt1: {
+ auto value = PureColumnOrNamed(node.GetBlock2().GetAlt1().GetRule_pure_column_or_named1(), *this);
+ if (value.Empty()) {
+ return false;
+ }
+
+ if (value.GetLiteral()) {
+ TString clusterName = *value.GetLiteral();
+ if (allowBinding && to_lower(clusterName) == "bindings") {
+ switch (Ctx.Settings.BindingsMode) {
+ case NSQLTranslation::EBindingsMode::DISABLED:
+ Ctx.Error(Ctx.Pos(), TIssuesIds::YQL_DISABLED_BINDINGS) << "Please remove 'bindings.' from your query, the support for this syntax has ended";
+ Ctx.IncrementMonCounter("sql_errors", "DisabledBinding");
+ return false;
+ case NSQLTranslation::EBindingsMode::ENABLED:
+ isBinding = true;
+ break;
+ case NSQLTranslation::EBindingsMode::DROP_WITH_WARNING:
+ Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_BINDINGS) << "Please remove 'bindings.' from your query, the support for this syntax will be dropped soon";
+ Ctx.IncrementMonCounter("sql_errors", "DeprecatedBinding");
+ [[fallthrough]];
+ case NSQLTranslation::EBindingsMode::DROP:
+ service = Context().Scoped->CurrService;
+ cluster = Context().Scoped->CurrCluster;
+ break;
+ }
+
+ return true;
+ }
+ TString normalizedClusterName;
+ auto foundProvider = Ctx.GetClusterProvider(clusterName, normalizedClusterName);
+ if (!foundProvider) {
+ Ctx.Error() << "Unknown cluster: " << clusterName;
+ return false;
+ }
+
+ if (service && *foundProvider != service) {
+ Ctx.Error() << "Mismatch of cluster " << clusterName << " service, expected: "
+ << *foundProvider << ", got: " << service;
+ return false;
+ }
+
+ if (!service) {
+ service = *foundProvider;
+ }
+
+ value = TDeferredAtom(Ctx.Pos(), normalizedClusterName);
+ } else {
+ if (!service) {
+ Ctx.Error() << "Cluster service is not set";
+ return false;
+ }
+ }
+
+ cluster = value;
+ return true;
+ }
+ case TRule_cluster_expr::TBlock2::kAlt2: {
+ if (!allowWildcard) {
+ Ctx.Error() << "Cluster wildcards allowed only in USE statement";
+ return false;
+ }
+
+ return true;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+
+bool TSqlTranslation::ApplyTableBinding(const TString& binding, TTableRef& tr, TTableHints& hints) {
+ NSQLTranslation::TBindingInfo bindingInfo;
+ if (const auto& error = ExtractBindingInfo(Context().Settings, binding, bindingInfo)) {
+ Ctx.Error() << error;
+ return false;
+ }
+
+ if (bindingInfo.Schema) {
+ TNodePtr schema = BuildQuotedAtom(Ctx.Pos(), bindingInfo.Schema);
+
+ TNodePtr type = new TCallNodeImpl(Ctx.Pos(), "SqlTypeFromYson", { schema });
+ TNodePtr columns = new TCallNodeImpl(Ctx.Pos(), "SqlColumnOrderFromYson", { schema });
+
+ hints["user_schema"] = { type, columns };
+ }
+
+ for (auto& [key, values] : bindingInfo.Attributes) {
+ TVector<TNodePtr> hintValue;
+ for (auto& column : values) {
+ hintValue.push_back(BuildQuotedAtom(Ctx.Pos(), column));
+ }
+ hints[key] = std::move(hintValue);
+ }
+
+ tr.Service = bindingInfo.ClusterType;
+ tr.Cluster = TDeferredAtom(Ctx.Pos(), bindingInfo.Cluster);
+
+ const TString view = "";
+ tr.Keys = BuildTableKey(Ctx.Pos(), tr.Service, tr.Cluster, TDeferredAtom(Ctx.Pos(), bindingInfo.Path), view);
+
+ return true;
+}
+
+bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& result, bool unorderedSubquery) {
+ // table_ref:
+ // (cluster_expr DOT)? AT?
+ // (table_key | an_id_expr LPAREN (table_arg (COMMA table_arg)*)? RPAREN |
+ // bind_parameter (LPAREN expr_list? RPAREN)? (VIEW an_id)?)
+ // table_hints?;
+ if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW && node.HasBlock1()) {
+ Ctx.Error() << "Cluster should not be used in limited view";
+ return false;
+ }
+ auto service = Context().Scoped->CurrService;
+ auto cluster = Context().Scoped->CurrCluster;
+ const bool hasAt = node.HasBlock2();
+ bool isBinding = false;
+ if (node.HasBlock1()) {
+ const auto& clusterExpr = node.GetBlock1().GetRule_cluster_expr1();
+ bool result = !hasAt ?
+ ClusterExprOrBinding(clusterExpr, service, cluster, isBinding) : ClusterExpr(clusterExpr, false, service, cluster);
+ if (!result) {
+ return false;
+ }
+ }
+
+ if (service == SolomonProviderName) {
+ Ctx.Error() << "Selecting data from monitoring source is not supported";
+ return false;
+ }
+
+ TTableRef tr(Context().MakeName("table"), service, cluster, nullptr);
+ TPosition pos(Context().Pos());
+ TTableHints hints = GetContextHints(Ctx);
+ TTableHints tableHints;
+ auto& block = node.GetBlock3();
+ switch (block.Alt_case()) {
+ case TRule_table_ref::TBlock3::kAlt1: {
+ if (!isBinding && cluster.Empty()) {
+ Ctx.Error() << "No cluster name given and no default cluster is selected";
+ return false;
+ }
+
+ auto pair = TableKeyImpl(block.GetAlt1().GetRule_table_key1(), *this, hasAt);
+ if (isBinding) {
+ TString binding = pair.first;
+ TString view = pair.second;
+ if (!view.empty()) {
+ YQL_ENSURE(view != "@");
+ Ctx.Error() << "VIEW is not supported for table bindings";
+ return false;
+ }
+
+ if (!ApplyTableBinding(binding, tr, tableHints)) {
+ return false;
+ }
+ } else {
+ tr.Keys = BuildTableKey(pos, service, cluster, TDeferredAtom(pos, pair.first), pair.second);
+ }
+ break;
+ }
+ case TRule_table_ref::TBlock3::kAlt2: {
+ if (cluster.Empty()) {
+ Ctx.Error() << "No cluster name given and no default cluster is selected";
+ return false;
+ }
+
+ auto& alt = block.GetAlt2();
+ const TString func(Id(alt.GetRule_an_id_expr1(), *this));
+ TVector<TTableArg> args;
+ if (alt.HasBlock3()) {
+ auto& argsBlock = alt.GetBlock3();
+ auto arg = TableArgImpl(argsBlock.GetRule_table_arg1());
+ if (!arg) {
+ return false;
+ }
+
+ args.push_back(std::move(*arg));
+ for (auto& b : argsBlock.GetBlock2()) {
+ arg = TableArgImpl(b.GetRule_table_arg2());
+ if (!arg) {
+ return false;
+ }
+
+ args.push_back(std::move(*arg));
+ }
+ }
+ tableHints = GetTableFuncHints(func);
+ tr.Keys = BuildTableKeys(pos, service, cluster, func, args);
+ break;
+ }
+ case TRule_table_ref::TBlock3::kAlt3: {
+ auto& alt = block.GetAlt3();
+ Ctx.IncrementMonCounter("sql_features", "NamedNodeUseSource");
+ TString named;
+ if (!NamedNodeImpl(alt.GetRule_bind_parameter1(), named, *this)) {
+ return false;
+ }
+ if (hasAt) {
+ if (alt.HasBlock2()) {
+ Ctx.Error() << "Subquery must not be used as anonymous table name";
+ return false;
+ }
+
+ if (alt.HasBlock3()) {
+ Ctx.Error() << "View is not supported for anonymous tables";
+ return false;
+ }
+
+ if (node.HasBlock4()) {
+ Ctx.Error() << "Hints are not supported for anonymous tables";
+ return false;
+ }
+
+ auto namedNode = GetNamedNode(named);
+ if (!namedNode) {
+ return false;
+ }
+
+ auto source = TryMakeSourceFromExpression(Ctx, service, cluster, namedNode, "@");
+ if (!source) {
+ Ctx.Error() << "Cannot infer cluster and table name";
+ return false;
+ }
+
+ result.Source = source;
+ return true;
+ }
+ auto nodePtr = GetNamedNode(named);
+ if (!nodePtr) {
+ Ctx.IncrementMonCounter("sql_errors", "NamedNodeSourceError");
+ return false;
+ }
+ if (alt.HasBlock2()) {
+ if (alt.HasBlock3()) {
+ Ctx.Error() << "View is not supported for subqueries";
+ return false;
+ }
+
+ if (node.HasBlock4()) {
+ Ctx.Error() << "Hints are not supported for subqueries";
+ return false;
+ }
+
+ TVector<TNodePtr> values;
+ values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "Apply", TNodeFlags::Default));
+ values.push_back(nodePtr);
+ values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "world", TNodeFlags::Default));
+
+ TSqlExpression sqlExpr(Ctx, Mode);
+ if (alt.GetBlock2().HasBlock2() && !ExprList(sqlExpr, values, alt.GetBlock2().GetBlock2().GetRule_expr_list1())) {
+ return false;
+ }
+
+ TNodePtr apply = new TAstListNodeImpl(Ctx.Pos(), std::move(values));
+ if (unorderedSubquery && Ctx.UnorderedSubqueries) {
+ apply = new TCallNodeImpl(Ctx.Pos(), "UnorderedSubquery", { apply });
+ }
+ result.Source = BuildNodeSource(Ctx.Pos(), apply);
+ return true;
+ }
+
+ TTableHints hints;
+ TTableHints contextHints = GetContextHints(Ctx);
+ auto ret = BuildInnerSource(Ctx.Pos(), nodePtr, service, cluster);
+ if (alt.HasBlock3()) {
+ auto view = Id(alt.GetBlock3().GetRule_an_id2(), *this);
+ Ctx.IncrementMonCounter("sql_features", "View");
+ if (!ret->SetViewName(Ctx, Ctx.Pos(), view)) {
+ return false;
+ }
+ }
+
+ if (node.HasBlock4()) {
+ auto tmp = TableHintsImpl(node.GetBlock4().GetRule_table_hints1());
+ if (!tmp) {
+ return false;
+ }
+
+ hints = *tmp;
+ }
+
+ if (hints || contextHints) {
+ if (!ret->SetTableHints(Ctx, Ctx.Pos(), hints, contextHints)) {
+ return false;
+ }
+ }
+
+ result.Source = ret;
+ return true;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ MergeHints(hints, tableHints);
+
+ if (node.HasBlock4()) {
+ auto tmp = TableHintsImpl(node.GetBlock4().GetRule_table_hints1());
+ if (!tmp) {
+ Ctx.Error() << "Failed to parse table hints";
+ return false;
+ }
+
+ MergeHints(hints, *tmp);
+ }
+
+ if (!hints.empty()) {
+ tr.Options = BuildInputOptions(pos, hints);
+ }
+
+ if (!tr.Keys) {
+ return false;
+ }
+
+ result = tr;
+ return true;
+}
+
+TMaybe<TSourcePtr> TSqlTranslation::AsTableImpl(const TRule_table_ref& node) {
+ const auto& block = node.GetBlock3();
+
+ if (block.Alt_case() == TRule_table_ref::TBlock3::kAlt2) {
+ auto& alt = block.GetAlt2();
+ TCiString func(Id(alt.GetRule_an_id_expr1(), *this));
+
+ if (func == "as_table") {
+ if (node.HasBlock1()) {
+ Ctx.Error() << "Cluster shouldn't be specified for AS_TABLE source";
+ return TMaybe<TSourcePtr>(nullptr);
+ }
+
+ if (!alt.HasBlock3() || !alt.GetBlock3().GetBlock2().empty()) {
+ Ctx.Error() << "Expected single argument for AS_TABLE source";
+ return TMaybe<TSourcePtr>(nullptr);
+ }
+
+ if (node.HasBlock4()) {
+ Ctx.Error() << "No hints expected for AS_TABLE source";
+ return TMaybe<TSourcePtr>(nullptr);
+ }
+
+ auto arg = TableArgImpl(alt.GetBlock3().GetRule_table_arg1());
+ if (!arg) {
+ return TMaybe<TSourcePtr>(nullptr);
+ }
+
+ if (arg->Expr->GetSource()) {
+ Ctx.Error() << "AS_TABLE shouldn't be used for table sources";
+ return TMaybe<TSourcePtr>(nullptr);
+ }
+
+ return BuildNodeSource(Ctx.Pos(), arg->Expr, true);
+ }
+ }
+
+ return Nothing();
+}
+
+TMaybe<TColumnSchema> TSqlTranslation::ColumnSchemaImpl(const TRule_column_schema& node) {
+ const bool nullable = !node.HasBlock4() || !node.GetBlock4().HasBlock1();
+ const TString name(Id(node.GetRule_an_id_schema1(), *this));
+ const TPosition pos(Context().Pos());
+ TNodePtr type = SerialTypeNode(node.GetRule_type_name_or_bind2());
+ const bool serial = (type != nullptr);
+ if (!type) {
+ type = TypeNodeOrBind(node.GetRule_type_name_or_bind2());
+ }
+ if (!type) {
+ return {};
+ }
+ TVector<TIdentifier> families;
+ if (node.HasBlock3()) {
+ const auto& familyRelation = node.GetBlock3().GetRule_family_relation1();
+ families.push_back(IdEx(familyRelation.GetRule_an_id2(), *this));
+ }
+ return TColumnSchema(pos, name, type, nullable, families, serial);
+}
+
+TNodePtr TSqlTranslation::SerialTypeNode(const TRule_type_name_or_bind& node) {
+ if (node.Alt_case() != TRule_type_name_or_bind::kAltTypeNameOrBind1) {
+ return nullptr;
+ }
+
+ TPosition pos = Ctx.Pos();
+
+ auto typeNameNode = node.GetAlt_type_name_or_bind1().GetRule_type_name1();
+ if (typeNameNode.Alt_case() != TRule_type_name::kAltTypeName2) {
+ return nullptr;
+ }
+
+ auto alt = typeNameNode.GetAlt_type_name2();
+ auto& block = alt.GetBlock1();
+ if (block.Alt_case() != TRule_type_name::TAlt2::TBlock1::kAlt2) {
+ return nullptr;
+ }
+
+ auto alt2 = block.GetAlt2().GetRule_type_name_simple1();
+ const TString name = Id(alt2.GetRule_an_id_pure1(), *this);
+ if (name.empty()) {
+ return nullptr;
+ }
+
+ const auto res = to_lower(name);
+ if (res == "bigserial" || res == "serial8") {
+ return new TCallNodeImpl(pos, "DataType", { BuildQuotedAtom(pos, "Int64", TNodeFlags::Default) });
+ } else if (res == "serial" || res == "serial4") {
+ return new TCallNodeImpl(pos, "DataType", { BuildQuotedAtom(pos, "Int32", TNodeFlags::Default) });
+ } else if (res == "smallserial" || res == "serial2") {
+ return new TCallNodeImpl(pos, "DataType", { BuildQuotedAtom(pos, "Int16", TNodeFlags::Default) });
+ }
+
+ return nullptr;
+}
+
+bool TSqlTranslation::FillFamilySettingsEntry(const TRule_family_settings_entry& settingNode, TFamilyEntry& family) {
+ TIdentifier id = IdEx(settingNode.GetRule_an_id1(), *this);
+ const TRule_family_setting_value& value = settingNode.GetRule_family_setting_value3();
+ if (to_lower(id.Name) == "data") {
+ const TString stringValue(Ctx.Token(value.GetToken1()));
+ family.Data = BuildLiteralSmartString(Ctx, stringValue);
+ } else if (to_lower(id.Name) == "compression") {
+ const TString stringValue(Ctx.Token(value.GetToken1()));
+ family.Compression = BuildLiteralSmartString(Ctx, stringValue);
+ } else {
+ Ctx.Error() << "Unknown table setting: " << id.Name;
+ return false;
+ }
+ return true;
+}
+
+bool TSqlTranslation::FillFamilySettings(const TRule_family_settings& settingsNode, TFamilyEntry& family) {
+ // family_settings: LPAREN (family_settings_entry (COMMA family_settings_entry)*)? RPAREN;
+ if (settingsNode.HasBlock2()) {
+ auto& settings = settingsNode.GetBlock2();
+ if (!FillFamilySettingsEntry(settings.GetRule_family_settings_entry1(), family)) {
+ return false;
+ }
+ for (auto& block : settings.GetBlock2()) {
+ if (!FillFamilySettingsEntry(block.GetRule_family_settings_entry2(), family)) {
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
+
+
+bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCreateTableParameters& params)
+{
+ switch (node.Alt_case()) {
+ case TRule_create_table_entry::kAltCreateTableEntry1:
+ {
+ // column_schema
+ auto columnSchema = ColumnSchemaImpl(node.GetAlt_create_table_entry1().GetRule_column_schema1());
+ if (!columnSchema) {
+ return false;
+ }
+ if (columnSchema->Families.size() > 1) {
+ Ctx.Error() << "Several column families for a single column are not yet supported";
+ return false;
+ }
+ params.Columns.push_back(*columnSchema);
+ break;
+ }
+ case TRule_create_table_entry::kAltCreateTableEntry2:
+ {
+ // table_constraint
+ auto& constraint = node.GetAlt_create_table_entry2().GetRule_table_constraint1();
+ switch (constraint.Alt_case()) {
+ case TRule_table_constraint::kAltTableConstraint1: {
+ if (!params.PkColumns.empty()) {
+ Ctx.Error() << "PRIMARY KEY statement must be specified only once";
+ return false;
+ }
+ auto& pkConstraint = constraint.GetAlt_table_constraint1();
+ params.PkColumns.push_back(IdEx(pkConstraint.GetRule_an_id4(), *this));
+ for (auto& block : pkConstraint.GetBlock5()) {
+ params.PkColumns.push_back(IdEx(block.GetRule_an_id2(), *this));
+ }
+ break;
+ }
+ case TRule_table_constraint::kAltTableConstraint2: {
+ if (!params.PartitionByColumns.empty()) {
+ Ctx.Error() << "PARTITION BY statement must be specified only once";
+ return false;
+ }
+ auto& pbConstraint = constraint.GetAlt_table_constraint2();
+ params.PartitionByColumns.push_back(IdEx(pbConstraint.GetRule_an_id4(), *this));
+ for (auto& block : pbConstraint.GetBlock5()) {
+ params.PartitionByColumns.push_back(IdEx(block.GetRule_an_id2(), *this));
+ }
+ break;
+ }
+ case TRule_table_constraint::kAltTableConstraint3: {
+ if (!params.OrderByColumns.empty()) {
+ Ctx.Error() << "ORDER BY statement must be specified only once";
+ return false;
+ }
+ auto& obConstraint = constraint.GetAlt_table_constraint3();
+ auto extractDirection = [this] (const TRule_column_order_by_specification& spec, bool& desc) {
+ desc = false;
+ if (!spec.HasBlock2()) {
+ return true;
+ }
+
+ auto& token = spec.GetBlock2().GetToken1();
+ switch (token.GetId()) {
+ case SQLv1LexerTokens::TOKEN_ASC:
+ return true;
+ case SQLv1LexerTokens::TOKEN_DESC:
+ desc = true;
+ return true;
+ default:
+ Ctx.Error() << "Unsupported direction token: " << token.GetId();
+ return false;
+ }
+ };
+
+ bool desc = false;
+ auto& obSpec = obConstraint.GetRule_column_order_by_specification4();
+ if (!extractDirection(obSpec, desc)) {
+ return false;
+ }
+ params.OrderByColumns.push_back(std::make_pair(IdEx(obSpec.GetRule_an_id1(), *this), desc));
+
+ for (auto& block : obConstraint.GetBlock5()) {
+ auto& obSpec = block.GetRule_column_order_by_specification2();
+ if (!extractDirection(obSpec, desc)) {
+ return false;
+ }
+ params.OrderByColumns.push_back(std::make_pair(IdEx(obSpec.GetRule_an_id1(), *this), desc));
+ }
+ break;
+ }
+ default:
+ AltNotImplemented("table_constraint", constraint);
+ return false;
+ }
+ break;
+ }
+ case TRule_create_table_entry::kAltCreateTableEntry3:
+ {
+ // table_index
+ auto& table_index = node.GetAlt_create_table_entry3().GetRule_table_index1();
+ if (!CreateTableIndex(table_index, *this, params.Indexes)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_create_table_entry::kAltCreateTableEntry4:
+ {
+ // family_entry
+ auto& family_entry = node.GetAlt_create_table_entry4().GetRule_family_entry1();
+ TFamilyEntry family(IdEx(family_entry.GetRule_an_id2(), *this));
+ if (!FillFamilySettings(family_entry.GetRule_family_settings3(), family)) {
+ return false;
+ }
+ params.ColumnFamilies.push_back(family);
+ break;
+ }
+ case TRule_create_table_entry::kAltCreateTableEntry5:
+ {
+ // changefeed
+ auto& changefeed = node.GetAlt_create_table_entry5().GetRule_changefeed1();
+ TSqlExpression expr(Ctx, Mode);
+ if (!CreateChangefeed(changefeed, expr, params.Changefeeds)) {
+ return false;
+ }
+ break;
+ }
+ default:
+ AltNotImplemented("create_table_entry", node);
+ return false;
+ }
+ return true;
+}
+
+namespace {
+ bool StoreId(const TRule_table_setting_value& from, TMaybe<TIdentifier>& to, TTranslation& ctx) {
+ switch (from.Alt_case()) {
+ case TRule_table_setting_value::kAltTableSettingValue1: {
+ // id
+ to = IdEx(from.GetAlt_table_setting_value1().GetRule_id1(), ctx);
+ break;
+ }
+ default:
+ return false;
+ }
+ return true;
+ }
+
+ bool StoreString(const TRule_table_setting_value& from, TNodePtr& to, TContext& ctx) {
+ switch (from.Alt_case()) {
+ case TRule_table_setting_value::kAltTableSettingValue2: {
+ // STRING_VALUE
+ const TString stringValue(ctx.Token(from.GetAlt_table_setting_value2().GetToken1()));
+ to = BuildLiteralSmartString(ctx, stringValue);
+ break;
+ }
+ default:
+ return false;
+ }
+ return true;
+ }
+
+ bool StoreString(const TRule_table_setting_value& from, TDeferredAtom& to, TContext& ctx, const TString& errorPrefix = {}) {
+ switch (from.Alt_case()) {
+ case TRule_table_setting_value::kAltTableSettingValue2: {
+ // STRING_VALUE
+ const TString stringValue(ctx.Token(from.GetAlt_table_setting_value2().GetToken1()));
+ auto unescaped = StringContent(ctx, ctx.Pos(), stringValue);
+ if (!unescaped) {
+ ctx.Error() << errorPrefix << " value cannot be unescaped";
+ return false;
+ }
+ to = TDeferredAtom(ctx.Pos(), unescaped->Content);
+ break;
+ }
+ default:
+ ctx.Error() << errorPrefix << " value should be a string literal";
+ return false;
+ }
+ return true;
+ }
+
+ bool StoreInt(const TRule_table_setting_value& from, TNodePtr& to, TContext& ctx) {
+ switch (from.Alt_case()) {
+ case TRule_table_setting_value::kAltTableSettingValue3: {
+ // integer
+ to = LiteralNumber(ctx, from.GetAlt_table_setting_value3().GetRule_integer1());
+ break;
+ }
+ default:
+ return false;
+ }
+ return true;
+ }
+
+ bool StoreSplitBoundary(const TRule_literal_value_list& boundary, TVector<TVector<TNodePtr>>& to,
+ TSqlExpression& expr, TContext& ctx) {
+ TVector<TNodePtr> boundaryKeys;
+ auto first_key = expr.LiteralExpr(boundary.GetRule_literal_value2());
+ if (!first_key) {
+ ctx.Error() << "Empty key in partition at keys";
+ return false;
+ }
+ if (!first_key->Expr) {
+ ctx.Error() << "Identifier is not expected in partition at keys";
+ return false;
+ }
+ boundaryKeys.emplace_back(first_key->Expr);
+ for (auto& key : boundary.GetBlock3()) {
+ auto keyExprOrIdent = expr.LiteralExpr(key.GetRule_literal_value2());
+ if (!keyExprOrIdent) {
+ ctx.Error() << "Empty key in partition at keys";
+ return false;
+ }
+ if (!keyExprOrIdent->Expr) {
+ ctx.Error() << "Identifier is not expected in partition at keys";
+ return false;
+ }
+ boundaryKeys.emplace_back(keyExprOrIdent->Expr);
+ }
+ to.push_back(boundaryKeys);
+ return true;
+ }
+
+ bool StoreSplitBoundaries(const TRule_table_setting_value& from, TVector<TVector<TNodePtr>>& to,
+ TSqlExpression& expr, TContext& ctx) {
+ switch (from.Alt_case()) {
+ case TRule_table_setting_value::kAltTableSettingValue4: {
+ // split_boundaries
+ const auto& boundariesNode = from.GetAlt_table_setting_value4().GetRule_split_boundaries1();
+ switch (boundariesNode.Alt_case()) {
+ case TRule_split_boundaries::kAltSplitBoundaries1: {
+ // literal_value_list (COMMA literal_value_list)*
+ auto& complexBoundaries = boundariesNode.GetAlt_split_boundaries1();
+
+ auto& first_boundary = complexBoundaries.GetRule_literal_value_list2();
+ if (!StoreSplitBoundary(first_boundary, to, expr, ctx)) {
+ return false;
+ }
+
+ for (auto& boundary : complexBoundaries.GetBlock3()) {
+ if (!StoreSplitBoundary(boundary.GetRule_literal_value_list2(), to, expr, ctx)) {
+ return false;
+ }
+ }
+ break;
+ }
+ case TRule_split_boundaries::kAltSplitBoundaries2: {
+ // literal_value_list
+ auto& simpleBoundaries = boundariesNode.GetAlt_split_boundaries2().GetRule_literal_value_list1();
+ auto first_key = expr.LiteralExpr(simpleBoundaries.GetRule_literal_value2());
+ if (!first_key) {
+ ctx.Error() << "Empty key in partition at keys";
+ return false;
+ }
+ if (!first_key->Expr) {
+ ctx.Error() << "Identifier is not expected in partition at keys";
+ return false;
+ }
+ to.push_back(TVector<TNodePtr>(1, first_key->Expr));
+ for (auto& key : simpleBoundaries.GetBlock3()) {
+ auto keyExprOrIdent = expr.LiteralExpr(key.GetRule_literal_value2());
+ if (!keyExprOrIdent) {
+ ctx.Error() << "Empty key in partition at keys";
+ return false;
+ }
+ if (!first_key->Expr) {
+ ctx.Error() << "Identifier is not expected in partition at keys";
+ return false;
+ }
+ to.push_back(
+ TVector<TNodePtr>(1, keyExprOrIdent->Expr)
+ );
+ }
+ break;
+ }
+ default:
+ return false;
+ }
+ break;
+ }
+ default:
+ return false;
+ }
+ return true;
+ }
+
+ bool StoreTtlSettings(const TRule_table_setting_value& from, TResetableSetting<TTtlSettings, void>& to,
+ TSqlExpression& expr, TContext& ctx, TTranslation& txc) {
+ switch (from.Alt_case()) {
+ case TRule_table_setting_value::kAltTableSettingValue5: {
+ auto columnName = IdEx(from.GetAlt_table_setting_value5().GetRule_an_id3(), txc);
+ auto exprNode = expr.Build(from.GetAlt_table_setting_value5().GetRule_expr1());
+ if (!exprNode) {
+ return false;
+ }
+
+ if (exprNode->GetOpName() != "Interval") {
+ ctx.Error() << "Literal of Interval type is expected for TTL";
+ return false;
+ }
+
+ TMaybe<TTtlSettings::EUnit> columnUnit;
+ if (from.GetAlt_table_setting_value5().HasBlock4()) {
+ const TString unit = to_lower(ctx.Token(from.GetAlt_table_setting_value5().GetBlock4().GetToken2()));
+ columnUnit.ConstructInPlace();
+ if (!TryFromString<TTtlSettings::EUnit>(unit, *columnUnit)) {
+ ctx.Error() << "Invalid unit: " << unit;
+ return false;
+ }
+ }
+
+ to.Set(TTtlSettings(columnName, exprNode, columnUnit));
+ break;
+ }
+ default:
+ return false;
+ }
+ return true;
+ }
+
+ template<typename TChar>
+ struct TPatternComponent {
+ TBasicString<TChar> Prefix;
+ TBasicString<TChar> Suffix;
+ bool IsSimple = true;
+
+ void AppendPlain(TChar c) {
+ if (IsSimple) {
+ Prefix.push_back(c);
+ }
+ Suffix.push_back(c);
+ }
+
+ void AppendAnyChar() {
+ IsSimple = false;
+ Suffix.clear();
+ }
+ };
+
+ template<typename TChar>
+ TVector<TPatternComponent<TChar>> SplitPattern(const TBasicString<TChar>& pattern, TMaybe<char> escape, bool& inEscape) {
+ inEscape = false;
+ TVector<TPatternComponent<TChar>> result;
+ TPatternComponent<TChar> current;
+ bool prevIsPercentChar = false;
+ for (const TChar c : pattern) {
+ if (inEscape) {
+ current.AppendPlain(c);
+ inEscape = false;
+ prevIsPercentChar = false;
+ } else if (escape && c == static_cast<TChar>(*escape)) {
+ inEscape = true;
+ } else if (c == '%') {
+ if (!prevIsPercentChar) {
+ result.push_back(std::move(current));
+ }
+ current = {};
+ prevIsPercentChar = true;
+ } else if (c == '_') {
+ current.AppendAnyChar();
+ prevIsPercentChar = false;
+ } else {
+ current.AppendPlain(c);
+ prevIsPercentChar = false;
+ }
+ }
+ result.push_back(std::move(current));
+ return result;
+ }
+}
+
+bool TSqlTranslation::StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value,
+ TTableSettings& settings, ETableType tableType, bool alter, bool reset) {
+ switch (tableType) {
+ case ETableType::ExternalTable:
+ return StoreExternalTableSettingsEntry(id, value, settings);
+ case ETableType::Table:
+ case ETableType::TableStore:
+ return StoreTableSettingsEntry(id, value, settings, alter, reset);
+ }
+}
+
+bool TSqlTranslation::StoreExternalTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, TTableSettings& settings) {
+ if (to_lower(id.Name) == "data_source") {
+ TDeferredAtom dataSource;
+ if (!StoreString(*value, dataSource, Ctx, to_upper(id.Name))) {
+ return false;
+ }
+ TString service = Context().Scoped->CurrService;
+ TDeferredAtom cluster = Context().Scoped->CurrCluster;
+ TNodePtr root = new TAstListNodeImpl(Ctx.Pos());
+ root->Add("String", Ctx.GetPrefixedPath(service, cluster, dataSource));
+ settings.DataSourcePath = root;
+ } else if (to_lower(id.Name) == "location") {
+ if (!StoreString(*value, settings.Location, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ return false;
+ }
+ } else {
+ settings.ExternalSourceParameters.emplace_back(id, nullptr);
+ auto& parameter = settings.ExternalSourceParameters.back();
+ if (!StoreString(*value, parameter.second, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlTranslation::StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value,
+ TTableSettings& settings, bool alter, bool reset) {
+ YQL_ENSURE(value || reset);
+ YQL_ENSURE(!reset || reset & alter);
+ if (to_lower(id.Name) == "compaction_policy") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreString(*value, settings.CompactionPolicy, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "auto_partitioning_by_size") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreId(*value, settings.AutoPartitioningBySize, *this)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "auto_partitioning_partition_size_mb") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreInt(*value, settings.PartitionSizeMb, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "auto_partitioning_by_load") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreId(*value, settings.AutoPartitioningByLoad, *this)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "auto_partitioning_min_partitions_count") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreInt(*value, settings.MinPartitions, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "auto_partitioning_max_partitions_count") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreInt(*value, settings.MaxPartitions, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "uniform_partitions") {
+ if (alter) {
+ Ctx.Error() << to_upper(id.Name) << " alter is not supported";
+ return false;
+ }
+ if (!StoreInt(*value, settings.UniformPartitions, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "partition_at_keys") {
+ if (alter) {
+ Ctx.Error() << to_upper(id.Name) << " alter is not supported";
+ return false;
+ }
+ TSqlExpression expr(Ctx, Mode);
+ if (!StoreSplitBoundaries(*value, settings.PartitionAtKeys, expr, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be a list of keys. "
+ << "Example1: (10, 1000) Example2: ((10), (1000, \"abc\"))";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "key_bloom_filter") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreId(*value, settings.KeyBloomFilter, *this)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "read_replicas_settings") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreString(*value, settings.ReadReplicasSettings, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "ttl") {
+ if (!reset) {
+ TSqlExpression expr(Ctx, Mode);
+ if (!StoreTtlSettings(*value, settings.TtlSettings, expr, Ctx, *this)) {
+ Ctx.Error() << "Invalid TTL settings";
+ return false;
+ }
+ } else {
+ settings.TtlSettings.Reset();
+ }
+ } else if (to_lower(id.Name) == "tiering") {
+ if (!reset) {
+ TNodePtr tieringNode;
+ if (!StoreString(*value, tieringNode, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ return false;
+ }
+ settings.Tiering.Set(tieringNode);
+ } else {
+ settings.Tiering.Reset();
+ }
+ } else if (to_lower(id.Name) == "store") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreId(*value, settings.StoreType, *this)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
+ return false;
+ }
+ } else if (to_lower(id.Name) == "partition_by_hash_function") {
+ if (reset) {
+ Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!StoreString(*value, settings.PartitionByHashFunction, Ctx)) {
+ Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ return false;
+ }
+ } else {
+ Ctx.Error() << "Unknown table setting: " << id.Name;
+ return false;
+ }
+ return true;
+}
+
+bool TSqlTranslation::StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value& value,
+ TTableSettings& settings, ETableType tableType, bool alter) {
+ return StoreTableSettingsEntry(id, &value, settings, tableType, alter, false);
+}
+
+bool TSqlTranslation::ResetTableSettingsEntry(const TIdentifier& id, TTableSettings& settings, ETableType tableType) {
+ return StoreTableSettingsEntry(id, nullptr, settings, tableType, true, true);
+}
+
+bool TSqlTranslation::CreateTableSettings(const TRule_with_table_settings& settingsNode, TCreateTableParameters& params) {
+ const auto& firstEntry = settingsNode.GetRule_table_settings_entry3();
+ if (!StoreTableSettingsEntry(IdEx(firstEntry.GetRule_an_id1(), *this), firstEntry.GetRule_table_setting_value3(),
+ params.TableSettings, params.TableType)) {
+ return false;
+ }
+ for (auto& block : settingsNode.GetBlock4()) {
+ const auto& entry = block.GetRule_table_settings_entry2();
+ if (!StoreTableSettingsEntry(IdEx(entry.GetRule_an_id1(), *this), entry.GetRule_table_setting_value3(), params.TableSettings, params.TableType)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool StoreConsumerSettingsEntry(
+ const TIdentifier& id, const TRule_topic_consumer_setting_value* value, TSqlExpression& ctx,
+ TTopicConsumerSettings& settings,
+ bool reset
+) {
+ YQL_ENSURE(value || reset);
+ TNodePtr valueExprNode;
+ if (value) {
+ valueExprNode = ctx.Build(value->GetRule_expr1());
+ if (!valueExprNode) {
+ ctx.Error() << "invalid value for setting: " << id.Name;
+ return false;
+ }
+ }
+ if (to_lower(id.Name) == "important") {
+ if (settings.Important) {
+ ctx.Error() << to_upper(id.Name) << " specified multiple times in ALTER CONSUMER statements for single consumer";
+ return false;
+ }
+ if (reset) {
+ ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ return false;
+ }
+ if (!valueExprNode->IsLiteral() || valueExprNode->GetLiteralType() != "Bool") {
+ ctx.Error() << to_upper(id.Name) << " value should be boolean";
+ return false;
+ }
+ settings.Important = valueExprNode;
+
+ } else if (to_lower(id.Name) == "read_from") {
+ if (settings.ReadFromTs) {
+ ctx.Error() << to_upper(id.Name) << " specified multiple times in ALTER CONSUMER statements for single consumer";
+ return false;
+ }
+ if (reset) {
+ settings.ReadFromTs.Reset();
+ } else {
+ //ToDo: !! validate
+ settings.ReadFromTs.Set(valueExprNode);
+ }
+ } else if (to_lower(id.Name) == "supported_codecs") {
+ if (settings.SupportedCodecs) {
+ ctx.Error() << to_upper(id.Name) << " specified multiple times in ALTER CONSUMER statements for single consumer";
+ return false;
+ }
+ if (reset) {
+ settings.SupportedCodecs.Reset();
+ } else {
+ if (!valueExprNode->IsLiteral() || valueExprNode->GetLiteralType() != "String") {
+ ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ return false;
+ }
+ settings.SupportedCodecs.Set(valueExprNode);
+ }
+ } else {
+ ctx.Error() << to_upper(id.Name) << ": unknown option for consumer";
+ return false;
+ }
+ return true;
+}
+
+TIdentifier TSqlTranslation::GetTopicConsumerId(const TRule_topic_consumer_ref& node) {
+ return IdEx(node.GetRule_an_id_pure1(), *this);
+}
+
+bool TSqlTranslation::CreateConsumerSettings(
+ const TRule_topic_consumer_settings& node, TTopicConsumerSettings& settings
+) {
+ const auto& firstEntry = node.GetRule_topic_consumer_settings_entry1();
+ TSqlExpression expr(Ctx, Mode);
+ if (!StoreConsumerSettingsEntry(
+ IdEx(firstEntry.GetRule_an_id1(), *this),
+ &firstEntry.GetRule_topic_consumer_setting_value3(),
+ expr, settings, false
+ )) {
+ return false;
+ }
+ for (auto& block : node.GetBlock2()) {
+ const auto& entry = block.GetRule_topic_consumer_settings_entry2();
+ if (!StoreConsumerSettingsEntry(
+ IdEx(entry.GetRule_an_id1(), *this),
+ &entry.GetRule_topic_consumer_setting_value3(),
+ expr, settings, false
+ )) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlTranslation::CreateTopicConsumer(
+ const TRule_topic_create_consumer_entry& node,
+ TVector<TTopicConsumerDescription>& consumers
+) {
+ consumers.emplace_back(IdEx(node.GetRule_an_id2(), *this));
+
+ if (node.HasBlock3()) {
+ auto& settings = node.GetBlock3().GetRule_topic_consumer_with_settings1().GetRule_topic_consumer_settings3();
+ if (!CreateConsumerSettings(settings, consumers.back().Settings)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool TSqlTranslation::AlterTopicConsumerEntry(
+ const TRule_alter_topic_alter_consumer_entry& node, TTopicConsumerDescription& alterConsumer
+) {
+ switch (node.Alt_case()) {
+ case TRule_alter_topic_alter_consumer_entry::kAltAlterTopicAlterConsumerEntry1:
+ return CreateConsumerSettings(
+ node.GetAlt_alter_topic_alter_consumer_entry1().GetRule_topic_alter_consumer_set1()
+ .GetRule_topic_consumer_settings3(),
+ alterConsumer.Settings
+ );
+ //case TRule_alter_topic_alter_consumer_entry::ALT_NOT_SET:
+ case TRule_alter_topic_alter_consumer_entry::kAltAlterTopicAlterConsumerEntry2: {
+ auto& resetNode = node.GetAlt_alter_topic_alter_consumer_entry2().GetRule_topic_alter_consumer_reset1();
+ TSqlExpression expr(Ctx, Mode);
+ if (!StoreConsumerSettingsEntry(
+ IdEx(resetNode.GetRule_an_id3(), *this),
+ nullptr,
+ expr, alterConsumer.Settings, true
+ )) {
+ return false;
+ }
+
+ for (auto& resetItem: resetNode.GetBlock4()) {
+ if (!StoreConsumerSettingsEntry(
+ IdEx(resetItem.GetRule_an_id2(), *this),
+ nullptr,
+ expr, alterConsumer.Settings, true
+ )) {
+ return false;
+ }
+ }
+ return true;
+ }
+ default:
+ Ctx.Error() << "unknown alter consumer action";
+ return false;
+ }
+ return true;
+}
+
+bool TSqlTranslation::AlterTopicConsumer(
+ const TRule_alter_topic_alter_consumer& node,
+ THashMap<TString, TTopicConsumerDescription>& alterConsumers
+) {
+ auto consumerId = GetTopicConsumerId(node.GetRule_topic_consumer_ref3());
+ TString name = to_lower(consumerId.Name);
+ auto iter = alterConsumers.insert(std::make_pair(
+ name, TTopicConsumerDescription(std::move(consumerId))
+ )).first;
+ if (!AlterTopicConsumerEntry(node.GetRule_alter_topic_alter_consumer_entry4(), iter->second)) {
+ return false;
+ }
+ return true;
+}
+
+bool TSqlTranslation::CreateTopicEntry(const TRule_create_topic_entry& node, TCreateTopicParameters& params) {
+ // Will need a switch() here if (ever) create_topic_entry gets more than 1 type of statement
+ auto& consumer = node.GetRule_topic_create_consumer_entry1();
+ if (!CreateTopicConsumer(consumer, params.Consumers)) {
+ return false;
+ }
+ return true;
+}
+
+static bool StoreTopicSettingsEntry(
+ const TIdentifier& id, const TRule_topic_setting_value* value, TSqlExpression& ctx,
+ TTopicSettings& settings, bool reset
+) {
+ YQL_ENSURE(value || reset);
+ TNodePtr valueExprNode;
+ if (value) {
+ valueExprNode = ctx.Build(value->GetRule_expr1());
+ if (!valueExprNode) {
+ ctx.Error() << "invalid value for setting: " << id.Name;
+ return false;
+ }
+ }
+
+ if (to_lower(id.Name) == "min_active_partitions") {
+ if (reset) {
+ settings.MinPartitions.Reset();
+ } else {
+ if (!valueExprNode->IsIntegerLiteral()) {
+ ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ return false;
+ }
+ settings.MinPartitions.Set(valueExprNode);
+ }
+ } else if (to_lower(id.Name) == "partition_count_limit") {
+ if (reset) {
+ settings.PartitionsLimit.Reset();
+ } else {
+ if (!valueExprNode->IsIntegerLiteral()) {
+ ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ return false;
+ }
+ settings.PartitionsLimit.Set(valueExprNode);
+ }
+ } else if (to_lower(id.Name) == "retention_period") {
+ if (reset) {
+ settings.RetentionPeriod.Reset();
+ } else {
+ if (valueExprNode->GetOpName() != "Interval") {
+ ctx.Error() << "Literal of Interval type is expected for retention";
+ return false;
+ }
+ settings.RetentionPeriod.Set(valueExprNode);
+ }
+ } else if (to_lower(id.Name) == "retention_storage_mb") {
+ if (reset) {
+ settings.RetentionStorage.Reset();
+ } else {
+ if (!valueExprNode->IsIntegerLiteral()) {
+ ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ return false;
+ }
+ settings.RetentionStorage.Set(valueExprNode);
+ }
+ } else if (to_lower(id.Name) == "partition_write_speed_bytes_per_second") {
+ if (reset) {
+ settings.PartitionWriteSpeed.Reset();
+ } else {
+ if (!valueExprNode->IsIntegerLiteral()) {
+ ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ return false;
+ }
+ settings.PartitionWriteSpeed.Set(valueExprNode);
+ }
+ } else if (to_lower(id.Name) == "partition_write_burst_bytes") {
+ if (reset) {
+ settings.PartitionWriteBurstSpeed.Reset();
+ } else {
+ if (!valueExprNode->IsIntegerLiteral()) {
+ ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ return false;
+ }
+ settings.PartitionWriteBurstSpeed.Set(valueExprNode);
+ }
+ } else if (to_lower(id.Name) == "metering_mode") {
+ if (reset) {
+ settings.MeteringMode.Reset();
+ } else {
+ if (!valueExprNode->IsLiteral() || valueExprNode->GetLiteralType() != "String") {
+ ctx.Error() << to_upper(id.Name) << " value should be string";
+ return false;
+ }
+ settings.MeteringMode.Set(valueExprNode);
+ }
+ } else if (to_lower(id.Name) == "supported_codecs") {
+ if (reset) {
+ settings.SupportedCodecs.Reset();
+ } else {
+ if (!valueExprNode->IsLiteral() || valueExprNode->GetLiteralType() != "String") {
+ ctx.Error() << to_upper(id.Name) << " value should be string";
+ return false;
+ }
+ settings.SupportedCodecs.Set(valueExprNode);
+ }
+ } else {
+ ctx.Error() << "unknown topic setting: " << id.Name;
+ return false;
+ }
+ return true;
+}
+
+bool TSqlTranslation::AlterTopicAction(const TRule_alter_topic_action& node, TAlterTopicParameters& params) {
+// alter_topic_action:
+// alter_topic_add_consumer
+// | alter_topic_alter_consumer
+// | alter_topic_drop_consumer
+// | alter_topic_set_settings
+// | alter_topic_reset_settings
+
+ switch (node.Alt_case()) {
+ case TRule_alter_topic_action::kAltAlterTopicAction1: // alter_topic_add_consumer
+ return CreateTopicConsumer(
+ node.GetAlt_alter_topic_action1().GetRule_alter_topic_add_consumer1()
+ .GetRule_topic_create_consumer_entry2(),
+ params.AddConsumers
+ );
+
+ case TRule_alter_topic_action::kAltAlterTopicAction2: // alter_topic_alter_consumer
+ return AlterTopicConsumer(
+ node.GetAlt_alter_topic_action2().GetRule_alter_topic_alter_consumer1(),
+ params.AlterConsumers
+ );
+
+ case TRule_alter_topic_action::kAltAlterTopicAction3: // drop_consumer
+ params.DropConsumers.emplace_back(GetTopicConsumerId(
+ node.GetAlt_alter_topic_action3().GetRule_alter_topic_drop_consumer1()
+ .GetRule_topic_consumer_ref3()
+ ));
+ return true;
+
+ case TRule_alter_topic_action::kAltAlterTopicAction4: // set_settings
+ return CreateTopicSettings(
+ node.GetAlt_alter_topic_action4().GetRule_alter_topic_set_settings1()
+ .GetRule_topic_settings3(),
+ params.TopicSettings
+ );
+
+ case TRule_alter_topic_action::kAltAlterTopicAction5: { // reset_settings
+ auto& resetNode = node.GetAlt_alter_topic_action5().GetRule_alter_topic_reset_settings1();
+ TSqlExpression expr(Ctx, Mode);
+ if (!StoreTopicSettingsEntry(
+ IdEx(resetNode.GetRule_an_id3(), *this),
+ nullptr, expr,
+ params.TopicSettings, true
+ )) {
+ return false;
+ }
+
+ for (auto& resetItem: resetNode.GetBlock4()) {
+ if (!StoreTopicSettingsEntry(
+ IdEx(resetItem.GetRule_an_id_pure2(), *this),
+ nullptr, expr,
+ params.TopicSettings, true
+ )) {
+ return false;
+ }
+ }
+ return true;
+ }
+ default:
+ Ctx.Error() << "unknown alter topic action";
+ return false;
+ }
+ return true;
+}
+
+bool TSqlTranslation::CreateTopicSettings(const TRule_topic_settings& node, TTopicSettings& settings) {
+ const auto& firstEntry = node.GetRule_topic_settings_entry1();
+ TSqlExpression expr(Ctx, Mode);
+
+ if (!StoreTopicSettingsEntry(
+ IdEx(firstEntry.GetRule_an_id1(), *this),
+ &firstEntry.GetRule_topic_setting_value3(),
+ expr, settings, false
+ )) {
+ return false;
+ }
+ for (auto& block : node.GetBlock2()) {
+ const auto& entry = block.GetRule_topic_settings_entry2();
+ if (!StoreTopicSettingsEntry(
+ IdEx(entry.GetRule_an_id1(), *this),
+ &entry.GetRule_topic_setting_value3(),
+ expr, settings, false
+ )) {
+ return false;
+ }
+ }
+ return true;
+}
+
+TNodePtr TSqlTranslation::IntegerOrBind(const TRule_integer_or_bind& node) {
+ switch (node.Alt_case()) {
+ case TRule_integer_or_bind::kAltIntegerOrBind1: {
+ const TString intString = Ctx.Token(node.GetAlt_integer_or_bind1().GetRule_integer1().GetToken1());
+ ui64 value;
+ TString suffix;
+ if (!ParseNumbers(Ctx, intString, value, suffix)) {
+ return {};
+ }
+ return BuildQuotedAtom(Ctx.Pos(), ToString(value), TNodeFlags::ArbitraryContent);
+ }
+ case TRule_integer_or_bind::kAltIntegerOrBind2: {
+ TString bindName;
+ if (!NamedNodeImpl(node.GetAlt_integer_or_bind2().GetRule_bind_parameter1(), bindName, *this)) {
+ return {};
+ }
+ auto namedNode = GetNamedNode(bindName);
+ if (!namedNode) {
+ return {};
+ }
+ auto atom = MakeAtomFromExpression(Ctx, namedNode);
+ return atom.Build();
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TNodePtr TSqlTranslation::TypeNameTag(const TRule_type_name_tag& node) {
+ switch (node.Alt_case()) {
+ case TRule_type_name_tag::kAltTypeNameTag1: {
+ auto content = Id(node.GetAlt_type_name_tag1().GetRule_id1(), *this);
+ auto atom = TDeferredAtom(Ctx.Pos(), content);
+ return atom.Build();
+ }
+ case TRule_type_name_tag::kAltTypeNameTag2: {
+ auto value = Token(node.GetAlt_type_name_tag2().GetToken1());
+ auto parsed = StringContentOrIdContent(Ctx, Ctx.Pos(), value);
+ if (!parsed) {
+ return {};
+ }
+ auto atom = TDeferredAtom(Ctx.Pos(), parsed->Content);
+ return atom.Build();
+ }
+ case TRule_type_name_tag::kAltTypeNameTag3: {
+ TString bindName;
+ if (!NamedNodeImpl(node.GetAlt_type_name_tag3().GetRule_bind_parameter1(), bindName, *this)) {
+ return {};
+ }
+ auto namedNode = GetNamedNode(bindName);
+ if (!namedNode) {
+ return {};
+ }
+ TDeferredAtom atom;
+ MakeTableFromExpression(Ctx, namedNode, atom);
+ return atom.Build();
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TNodePtr TSqlTranslation::TypeSimple(const TRule_type_name_simple& node, bool onlyDataAllowed) {
+ const TString origName = Id(node.GetRule_an_id_pure1(), *this);
+ if (origName.empty()) {
+ return {};
+ }
+ return BuildSimpleType(Ctx, Ctx.Pos(), origName, onlyDataAllowed);
+}
+
+TNodePtr TSqlTranslation::TypeDecimal(const TRule_type_name_decimal& node) {
+ auto pos = Ctx.Pos();
+ auto flags = TNodeFlags::Default;
+
+ auto paramOne = IntegerOrBind(node.GetRule_integer_or_bind3());
+ if (!paramOne) {
+ return {};
+ }
+ auto paramTwo = IntegerOrBind(node.GetRule_integer_or_bind5());
+ if (!paramTwo) {
+ return {};
+ }
+ return new TCallNodeImpl(pos, "DataType", { BuildQuotedAtom(pos, "Decimal", flags), paramOne, paramTwo });
+}
+
+TNodePtr TSqlTranslation::AddOptionals(const TNodePtr& node, size_t optionalCount) {
+ TNodePtr result = node;
+ if (node) {
+ TPosition pos = node->GetPos();
+ for (size_t i = 0; i < optionalCount; ++i) {
+ result = new TCallNodeImpl(pos, "OptionalType", { result });
+ }
+ }
+ return result;
+}
+
+
+TMaybe<std::pair<TVector<TNodePtr>, bool>> TSqlTranslation::CallableArgList(const TRule_callable_arg_list& argList, bool namedArgsStarted) {
+ auto pos = Ctx.Pos();
+ auto flags = TNodeFlags::Default;
+ auto& arg1 = argList.GetRule_callable_arg1();
+ auto& varArg = arg1.GetRule_variant_arg1();
+ TVector<TNodePtr> result;
+ TVector<TNodePtr> items;
+ auto typeNode = TypeNodeOrBind(varArg.GetRule_type_name_or_bind2());
+ if (!typeNode) {
+ return {};
+ }
+ items.push_back(typeNode);
+ if (varArg.HasBlock1()) {
+ namedArgsStarted = true;
+ auto tag = TypeNameTag(varArg.GetBlock1().GetRule_type_name_tag1());
+ if (!tag) {
+ return {};
+ }
+ items.push_back(tag);
+ }
+ if (arg1.HasBlock2()) {
+ if (!varArg.HasBlock1()) {
+ items.push_back(BuildQuotedAtom(pos, "", flags));
+ }
+ items.push_back(BuildQuotedAtom(pos, "1", flags));
+ }
+ result.push_back(new TAstListNodeImpl(pos, items));
+
+ for (auto& arg : argList.GetBlock2()) {
+ auto& varArg = arg.GetRule_callable_arg2().GetRule_variant_arg1();
+ TVector<TNodePtr> items;
+ auto typeNode = TypeNodeOrBind(varArg.GetRule_type_name_or_bind2());
+ if (!typeNode) {
+ return {};
+ }
+ items.push_back(typeNode);
+ if (varArg.HasBlock1()) {
+ auto tag = TypeNameTag(varArg.GetBlock1().GetRule_type_name_tag1());
+ if (!tag) {
+ return {};
+ }
+ items.push_back(tag);
+ } else {
+ if (namedArgsStarted) {
+ Ctx.Error() << "Expected named argument, previous argument was named";
+ return {};
+ }
+ items.push_back(BuildQuotedAtom(pos, "", flags));
+ }
+ if (arg.GetRule_callable_arg2().HasBlock2()) {
+ if (!varArg.HasBlock1()) {
+ items.push_back(BuildQuotedAtom(pos, "", flags));
+ }
+ items.push_back(BuildQuotedAtom(pos, "1", flags));
+ }
+ result.push_back(new TAstListNodeImpl(pos, items));
+ }
+ return std::make_pair(result, namedArgsStarted);
+}
+
+TNodePtr TSqlTranslation::TypeNodeOrBind(const TRule_type_name_or_bind& node) {
+ switch (node.Alt_case()) {
+ case TRule_type_name_or_bind::kAltTypeNameOrBind1: {
+ return TypeNode(node.GetAlt_type_name_or_bind1().GetRule_type_name1());
+ }
+ case TRule_type_name_or_bind::kAltTypeNameOrBind2: {
+ TString bindName;
+ if (!NamedNodeImpl(node.GetAlt_type_name_or_bind2().GetRule_bind_parameter1(), bindName, *this)) {
+ return {};
+ }
+ return GetNamedNode(bindName);
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+TNodePtr TSqlTranslation::TypeNode(const TRule_type_name& node) {
+ //type_name:
+ // type_name_composite
+ // | (type_name_decimal | type_name_simple) QUESTION*;
+ if (node.Alt_case() == TRule_type_name::kAltTypeName1) {
+ return TypeNode(node.GetAlt_type_name1().GetRule_type_name_composite1());
+ }
+
+ TNodePtr result;
+ TPosition pos = Ctx.Pos();
+
+ auto& alt = node.GetAlt_type_name2();
+ auto& block = alt.GetBlock1();
+ switch (block.Alt_case()) {
+ case TRule_type_name::TAlt2::TBlock1::kAlt1: {
+ auto& decimalType = block.GetAlt1().GetRule_type_name_decimal1();
+ result = TypeDecimal(decimalType);
+ break;
+ }
+ case TRule_type_name::TAlt2::TBlock1::kAlt2: {
+ auto& simpleType = block.GetAlt2().GetRule_type_name_simple1();
+ result = TypeSimple(simpleType, false);
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ return AddOptionals(result, alt.GetBlock2().size());
+}
+
+TNodePtr TSqlTranslation::TypeNode(const TRule_type_name_composite& node) {
+ //type_name_composite:
+ // ( type_name_optional
+ // | type_name_tuple
+ // | type_name_struct
+ // | type_name_variant
+ // | type_name_list
+ // | type_name_stream
+ // | type_name_flow
+ // | type_name_dict
+ // | type_name_set
+ // | type_name_enum
+ // | type_name_resource
+ // | type_name_tagged
+ // | type_name_callable
+ // ) QUESTION*;
+ TNodePtr result;
+ TPosition pos = Ctx.Pos();
+ auto flags = TNodeFlags::Default;
+
+ auto wrapOneParamType = [&] (const TRule_type_name_or_bind& param, const char* type) -> TNodePtr {
+ auto node = TypeNodeOrBind(param);
+ return node ? new TAstListNodeImpl(pos, { BuildAtom(pos, type, flags), node }) : nullptr;
+ };
+ auto makeVoid = [&] () -> TNodePtr {
+ return new TAstListNodeImpl(pos, { BuildAtom(pos, "VoidType", flags) });
+ };
+ auto makeQuote = [&] (const TNodePtr& node) -> TNodePtr {
+ return new TAstListNodeImpl(pos, { new TAstAtomNodeImpl(pos, "quote", 0), node });
+ };
+
+ auto& block = node.GetBlock1();
+ switch (block.Alt_case()) {
+ case TRule_type_name_composite_TBlock1::kAlt1: {
+ auto& optionalType = block.GetAlt1().GetRule_type_name_optional1();
+ result = wrapOneParamType(optionalType.GetRule_type_name_or_bind3(), "OptionalType");
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt2: {
+ auto& tupleType = block.GetAlt2().GetRule_type_name_tuple1();
+ TVector<TNodePtr> items;
+ items.push_back(BuildAtom(pos, "TupleType", flags));
+
+ switch (tupleType.GetBlock2().Alt_case()) {
+ case TRule_type_name_tuple::TBlock2::kAlt1: {
+ if (tupleType.GetBlock2().GetAlt1().HasBlock2()) {
+ auto typeNode = TypeNodeOrBind(tupleType.GetBlock2().GetAlt1().GetBlock2().GetRule_type_name_or_bind1());
+ if (!typeNode) {
+ return {};
+ }
+ items.push_back(typeNode);
+ for (auto& arg : tupleType.GetBlock2().GetAlt1().GetBlock2().GetBlock2()) {
+ auto typeNode = TypeNodeOrBind(arg.GetRule_type_name_or_bind2());
+ if (!typeNode) {
+ return {};
+ }
+ items.push_back(typeNode);
+ }
+ }
+ [[fallthrough]]; // AUTOGENERATED_FALLTHROUGH_FIXME
+ }
+ case TRule_type_name_tuple::TBlock2::kAlt2:
+ break;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ result = new TAstListNodeImpl(pos, items);
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt3: {
+ auto& structType = block.GetAlt3().GetRule_type_name_struct1();
+ TVector<TNodePtr> items;
+ items.push_back(BuildAtom(pos, "StructType", flags));
+
+ switch (structType.GetBlock2().Alt_case()) {
+ case TRule_type_name_struct::TBlock2::kAlt1: {
+ if (structType.GetBlock2().GetAlt1().HasBlock2()) {
+ auto& structArg = structType.GetBlock2().GetAlt1().GetBlock2().GetRule_struct_arg1();
+ auto typeNode = TypeNodeOrBind(structArg.GetRule_type_name_or_bind3());
+ if (!typeNode) {
+ return {};
+ }
+ auto tag = TypeNameTag(structArg.GetRule_type_name_tag1());
+ if (!tag) {
+ return {};
+ }
+
+ items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, typeNode })));
+ for (auto& arg : structType.GetBlock2().GetAlt1().GetBlock2().GetBlock2()) {
+ auto typeNode = TypeNodeOrBind(arg.GetRule_struct_arg2().GetRule_type_name_or_bind3());
+ if (!typeNode) {
+ return {};
+ }
+ auto tag = TypeNameTag(arg.GetRule_struct_arg2().GetRule_type_name_tag1());
+ if (!tag) {
+ return {};
+ }
+ items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, typeNode })));
+ }
+ }
+ [[fallthrough]]; // AUTOGENERATED_FALLTHROUGH_FIXME
+ }
+ case TRule_type_name_struct::TBlock2::kAlt2:
+ break;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ result = new TAstListNodeImpl(pos, items);
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt4: {
+ auto& variantType = block.GetAlt4().GetRule_type_name_variant1();
+ TVector<TNodePtr> items;
+ bool overStruct = false;
+ auto& variantArg = variantType.GetRule_variant_arg3();
+ auto typeNode = TypeNodeOrBind(variantArg.GetRule_type_name_or_bind2());
+ if (!typeNode) {
+ return {};
+ }
+ if (variantArg.HasBlock1()) {
+ items.push_back(BuildAtom(pos, "StructType", flags));
+ overStruct = true;
+ auto tag = TypeNameTag(variantArg.GetBlock1().GetRule_type_name_tag1());
+ if (!tag) {
+ return {};
+ }
+ items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, typeNode })));
+ } else {
+ items.push_back(BuildAtom(pos, "TupleType", flags));
+ items.push_back(typeNode);
+ }
+
+ for (auto& arg : variantType.GetBlock4()) {
+ auto typeNode = TypeNodeOrBind(arg.GetRule_variant_arg2().GetRule_type_name_or_bind2());
+ if (!typeNode) {
+ return {};
+ }
+ if (overStruct) {
+ if (!arg.GetRule_variant_arg2().HasBlock1()) {
+ Ctx.Error() << "Variant over struct and tuple mixture";
+ return {};
+ }
+ auto tag = TypeNameTag(arg.GetRule_variant_arg2().GetBlock1().GetRule_type_name_tag1());
+ if (!tag) {
+ return {};
+ }
+ items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, typeNode })));
+ } else {
+ if (arg.GetRule_variant_arg2().HasBlock1()) {
+ Ctx.Error() << "Variant over struct and tuple mixture";
+ return {};
+ }
+ items.push_back(typeNode);
+ }
+ }
+ typeNode = new TAstListNodeImpl(pos, items);
+ result = new TAstListNodeImpl(pos, { BuildAtom(pos, "VariantType", flags), typeNode });
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt5: {
+ auto& listType = block.GetAlt5().GetRule_type_name_list1();
+ result = wrapOneParamType(listType.GetRule_type_name_or_bind3(), "ListType");
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt6: {
+ auto& streamType = block.GetAlt6().GetRule_type_name_stream1();
+ result = wrapOneParamType(streamType.GetRule_type_name_or_bind3(), "StreamType");
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt7: {
+ auto& flowType = block.GetAlt7().GetRule_type_name_flow1();
+ result = wrapOneParamType(flowType.GetRule_type_name_or_bind3(), "FlowType");
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt8: {
+ auto& dictType = block.GetAlt8().GetRule_type_name_dict1();
+ TVector<TNodePtr> items;
+ items.push_back(BuildAtom(pos, "DictType", flags));
+ auto typeNode = TypeNodeOrBind(dictType.GetRule_type_name_or_bind3());
+ if (!typeNode) {
+ return {};
+ }
+ items.push_back(typeNode);
+ typeNode = TypeNodeOrBind(dictType.GetRule_type_name_or_bind5());
+ if (!typeNode) {
+ return {};
+ }
+ items.push_back(typeNode);
+ result = new TAstListNodeImpl(pos, items);
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt9: {
+ auto& setType = block.GetAlt9().GetRule_type_name_set1();
+ auto typeNode = TypeNodeOrBind(setType.GetRule_type_name_or_bind3());
+ if (!typeNode) {
+ return {};
+ }
+ result = new TAstListNodeImpl(pos, { BuildAtom(pos, "DictType", flags), typeNode, makeVoid() });
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt10: {
+ auto& enumType = block.GetAlt10().GetRule_type_name_enum1();
+ TVector<TNodePtr> items;
+ items.push_back(BuildAtom(pos, "StructType", flags));
+ auto tag = TypeNameTag(enumType.GetRule_type_name_tag3());
+ if (!tag) {
+ return {};
+ }
+ items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, makeVoid() })));
+ for (auto& arg : enumType.GetBlock4()) {
+ auto tag = TypeNameTag(arg.GetRule_type_name_tag2());
+ if (!tag) {
+ return {};
+ }
+ items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, makeVoid() })));
+ }
+ auto typeNode = new TAstListNodeImpl(pos, items);
+ result = new TAstListNodeImpl(pos, { BuildAtom(pos, "VariantType", flags), typeNode });
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt11: {
+ auto& resourceType = block.GetAlt11().GetRule_type_name_resource1();
+ auto tag = TypeNameTag(resourceType.GetRule_type_name_tag3());
+ if (!tag) {
+ return {};
+ }
+ result = new TAstListNodeImpl(pos, { BuildAtom(pos, "ResourceType", flags), tag });
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt12: {
+ auto& taggedType = block.GetAlt12().GetRule_type_name_tagged1();
+ auto typeNode = TypeNodeOrBind(taggedType.GetRule_type_name_or_bind3());
+ if (!typeNode) {
+ return {};
+ }
+ auto tag = TypeNameTag(taggedType.GetRule_type_name_tag5());
+ if (!tag) {
+ return {};
+ }
+ result = new TAstListNodeImpl(pos, { BuildAtom(pos, "TaggedType", flags), typeNode, tag });
+ break;
+ }
+ case TRule_type_name_composite_TBlock1::kAlt13: {
+ auto& callableType = block.GetAlt13().GetRule_type_name_callable1();
+ TMaybe<std::pair<TVector<TNodePtr>, bool>> requiredArgs, optionalArgs;
+ bool namedArgsStarted = false;
+ size_t optionalArgsCount = 0;
+ if (callableType.HasBlock4()) {
+ auto& argList = callableType.GetBlock4().GetRule_callable_arg_list1();
+ requiredArgs = CallableArgList(argList, namedArgsStarted);
+ if (!requiredArgs) {
+ return {};
+ }
+ namedArgsStarted = requiredArgs->second;
+ }
+ if (callableType.HasBlock6()) {
+ auto& argList = callableType.GetBlock6().GetRule_callable_arg_list2();
+ optionalArgs = CallableArgList(argList, namedArgsStarted);
+ if (!optionalArgs) {
+ return {};
+ }
+ optionalArgsCount = optionalArgs->first.size();
+ }
+ auto returnType = TypeNodeOrBind(callableType.GetRule_type_name_or_bind9());
+ if (!returnType) {
+ return {};
+ }
+ TVector<TNodePtr> items;
+ items.push_back(BuildAtom(pos, "CallableType", flags));
+ if (optionalArgsCount) {
+ items.push_back(makeQuote(new TAstListNodeImpl(pos,
+ { BuildQuotedAtom(pos, ToString(optionalArgsCount), flags) })));
+ } else {
+ items.push_back(makeQuote(new TAstListNodeImpl(pos, {})));
+ }
+ items.push_back(makeQuote(new TAstListNodeImpl(pos, { returnType })));
+ if (requiredArgs) {
+ for (auto& arg: requiredArgs->first) {
+ items.push_back(makeQuote(arg));
+ }
+ }
+ if (optionalArgs) {
+ for (auto& arg: optionalArgs->first) {
+ items.push_back(makeQuote(arg));
+ }
+ }
+ result = new TAstListNodeImpl(pos, items);
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ return AddOptionals(result, node.GetBlock2().size());
+}
+
+TNodePtr TSqlTranslation::ValueConstructorLiteral(const TRule_value_constructor_literal& node) {
+ return BuildLiteralSmartString(Ctx, Token(node.GetToken1()));
+}
+
+TNodePtr TSqlTranslation::ValueConstructor(const TRule_value_constructor& node) {
+ TSqlCallExpr call(Ctx, Mode);
+ if (!call.Init(node)) {
+ return {};
+ }
+ return call.BuildCall();
+}
+
+TNodePtr TSqlTranslation::ListLiteral(const TRule_list_literal& node) {
+ TVector<TNodePtr> values;
+ values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "AsList", TNodeFlags::Default));
+
+ TSqlExpression sqlExpr(Ctx, Mode);
+ if (node.HasBlock2() && !ExprList(sqlExpr, values, node.GetBlock2().GetRule_expr_list1())) {
+ return nullptr;
+ }
+
+ return new TAstListNodeImpl(Ctx.Pos(), std::move(values));
+}
+
+TNodePtr TSqlTranslation::DictLiteral(const TRule_dict_literal& node) {
+ TVector<TNodePtr> values;
+ if (node.HasBlock2()) {
+ const auto& list = node.GetBlock2().GetRule_expr_dict_list1();
+ const bool isSet = !list.HasBlock2();
+ values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), isSet ? "AsSet" : "AsDict", TNodeFlags::Default));
+ TSqlExpression sqlExpr(Ctx, Mode);
+ if (isSet) {
+ if (!Expr(sqlExpr, values, list.GetRule_expr1())) {
+ return nullptr;
+ }
+ } else {
+ TVector<TNodePtr> tupleItems;
+ if (!Expr(sqlExpr, tupleItems, list.GetRule_expr1())) {
+ return nullptr;
+ }
+
+ if (!Expr(sqlExpr, tupleItems, list.GetBlock2().GetRule_expr2())) {
+ return nullptr;
+ }
+
+ values.push_back(new TTupleNode(Ctx.Pos(), std::move(tupleItems)));
+ }
+
+ for (auto& b : list.GetBlock3()) {
+ sqlExpr.Token(b.GetToken1());
+ const bool isSetCurr = !b.HasBlock3();
+ if (isSetCurr != isSet) {
+ Error() << "Expected keys/values pair or keys, but got mix of them";
+ return nullptr;
+ }
+
+ if (isSet) {
+ if (!Expr(sqlExpr, values, b.GetRule_expr2())) {
+ return nullptr;
+ }
+ } else {
+ TVector<TNodePtr> tupleItems;
+ if (!Expr(sqlExpr, tupleItems, b.GetRule_expr2())) {
+ return nullptr;
+ }
+
+ if (!Expr(sqlExpr, tupleItems, b.GetBlock3().GetRule_expr2())) {
+ return nullptr;
+ }
+
+ values.push_back(new TTupleNode(Ctx.Pos(), std::move(tupleItems)));
+ }
+ }
+ } else {
+ values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "AsDict", TNodeFlags::Default));
+ }
+
+ return new TAstListNodeImpl(Ctx.Pos(), std::move(values));
+}
+
+bool TSqlTranslation::StructLiteralItem(TVector<TNodePtr>& labels, const TRule_expr& label, TVector<TNodePtr>& values, const TRule_expr& value) {
+ // label expr
+ {
+ TColumnRefScope scope(Ctx, EColumnRefState::AsStringLiteral, /* topLevel */ false);
+ TSqlExpression sqlExpr(Ctx, Mode);
+ if (!Expr(sqlExpr, labels, label)) {
+ return false;
+ }
+
+ TDeferredAtom atom;
+ MakeTableFromExpression(Ctx, labels.back(), atom);
+ labels.back() = atom.Build();
+ if (!labels.back()) {
+ return false;
+ }
+ }
+
+ // value expr
+ {
+ TSqlExpression sqlExpr(Ctx, Mode);
+ if (!Expr(sqlExpr, values, value)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+TNodePtr TSqlTranslation::StructLiteral(const TRule_struct_literal& node) {
+ TVector<TNodePtr> labels;
+ TVector<TNodePtr> values;
+ TPosition pos = Ctx.TokenPosition(node.GetToken1());
+ if (node.HasBlock2()) {
+ const auto& list = node.GetBlock2().GetRule_expr_struct_list1();
+
+ if (!StructLiteralItem(labels, list.GetRule_expr1(), values, list.GetRule_expr3())) {
+ return {};
+ }
+
+ for (auto& b : list.GetBlock4()) {
+ if (!StructLiteralItem(labels, b.GetRule_expr2(), values, b.GetRule_expr4())) {
+ return {};
+ }
+ }
+ }
+ return BuildStructure(pos, values, labels);
+}
+
+bool TSqlTranslation::TableHintImpl(const TRule_table_hint& rule, TTableHints& hints) {
+ // table_hint:
+ // an_id_hint (EQUALS (type_name_tag | LPAREN type_name_tag (COMMA type_name_tag)* COMMA? RPAREN))?
+ // | (SCHEMA | COLUMNS) EQUALS? type_name_or_bind
+ // | SCHEMA EQUALS? LPAREN (struct_arg_positional (COMMA struct_arg_positional)*)? COMMA? RPAREN
+ switch (rule.Alt_case()) {
+ case TRule_table_hint::kAltTableHint1: {
+ const auto& alt = rule.GetAlt_table_hint1();
+ const TString id = Id(alt.GetRule_an_id_hint1(), *this);
+ const auto idLower = to_lower(id);
+ if (idLower == "schema" || idLower == "columns") {
+ Error() << "Expected type after " << to_upper(id);
+ return false;
+ }
+ TVector<TNodePtr> hint_val;
+ if (alt.HasBlock2()) {
+ auto& tags = alt.GetBlock2().GetBlock2();
+ switch (tags.Alt_case()) {
+ case TRule_table_hint_TAlt1_TBlock2_TBlock2::kAlt1:
+ hint_val.push_back(TypeNameTag(tags.GetAlt1().GetRule_type_name_tag1()));
+ break;
+ case TRule_table_hint_TAlt1_TBlock2_TBlock2::kAlt2: {
+ hint_val.push_back(TypeNameTag(tags.GetAlt2().GetRule_type_name_tag2()));
+ for (auto& tag : tags.GetAlt2().GetBlock3()) {
+ hint_val.push_back(TypeNameTag(tag.GetRule_type_name_tag2()));
+ }
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ }
+ hints[id] = hint_val;
+ break;
+ }
+
+ case TRule_table_hint::kAltTableHint2: {
+ const auto& alt2 = rule.GetAlt_table_hint2();
+ auto node = TypeNodeOrBind(alt2.GetRule_type_name_or_bind3());
+ if (!node) {
+ return false;
+ }
+
+ hints["user_" + to_lower(alt2.GetToken1().GetValue())] = { node };
+ break;
+ }
+
+ case TRule_table_hint::kAltTableHint3: {
+ const auto& alt = rule.GetAlt_table_hint3();
+ TVector<TNodePtr> labels;
+ TVector<TNodePtr> structTypeItems;
+ if (alt.HasBlock4()) {
+ bool warn = false;
+ auto processItem = [&](const TRule_struct_arg_positional& arg) {
+ // struct_arg_positional:
+ // type_name_tag type_name_or_bind (NOT? NULL)?
+ // | type_name_or_bind AS type_name_tag; //deprecated
+ const bool altCurrent = arg.Alt_case() == TRule_struct_arg_positional::kAltStructArgPositional1;
+ auto& typeNameOrBind = altCurrent ?
+ arg.GetAlt_struct_arg_positional1().GetRule_type_name_or_bind2() :
+ arg.GetAlt_struct_arg_positional2().GetRule_type_name_or_bind1();
+ auto typeNode = TypeNodeOrBind(typeNameOrBind);
+ if (!typeNode) {
+ return false;
+ }
+
+ auto pos = Ctx.Pos();
+ if (!altCurrent && !warn) {
+ Ctx.Warning(pos, TIssuesIds::YQL_DEPRECATED_POSITIONAL_SCHEMA)
+ << "Deprecated syntax for positional schema: please use 'column type' instead of 'type AS column'";
+ warn = true;
+ }
+
+ if (altCurrent) {
+ bool notNull = arg.GetAlt_struct_arg_positional1().HasBlock3() && arg.GetAlt_struct_arg_positional1().GetBlock3().HasBlock1();
+ if (!notNull) {
+ typeNode = new TCallNodeImpl(pos, "AsOptionalType", { typeNode });
+ }
+ }
+
+ auto& typeNameTag = altCurrent ?
+ arg.GetAlt_struct_arg_positional1().GetRule_type_name_tag1() :
+ arg.GetAlt_struct_arg_positional2().GetRule_type_name_tag3();
+ auto tag = TypeNameTag(typeNameTag);
+ if (!tag) {
+ return false;
+ }
+
+ labels.push_back(tag);
+ structTypeItems.push_back(BuildTuple(pos, { tag, typeNode }));
+ return true;
+ };
+
+ if (!processItem(alt.GetBlock4().GetRule_struct_arg_positional1())) {
+ return false;
+ }
+
+ for (auto& entry : alt.GetBlock4().GetBlock2()) {
+ if (!processItem(entry.GetRule_struct_arg_positional2())) {
+ return false;
+ }
+ }
+ }
+
+ TPosition pos = Ctx.TokenPosition(alt.GetToken1());
+ auto labelsTuple = BuildTuple(pos, labels);
+ TNodePtr structType = new TCallNodeImpl(pos, "StructType", structTypeItems);
+
+ hints["user_" + to_lower(alt.GetToken1().GetValue())] = { structType, labelsTuple };
+ break;
+ }
+
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ return true;
+}
+
+TMaybe<TTableHints> TSqlTranslation::TableHintsImpl(const TRule_table_hints& node) {
+ TTableHints hints;
+ auto& block = node.GetBlock2();
+ bool hasErrors = false;
+ switch (block.Alt_case()) {
+ case TRule_table_hints::TBlock2::kAlt1: {
+ hasErrors = !TableHintImpl(block.GetAlt1().GetRule_table_hint1(), hints);
+ break;
+ }
+ case TRule_table_hints::TBlock2::kAlt2: {
+ hasErrors = !TableHintImpl(block.GetAlt2().GetRule_table_hint2(), hints);
+ for (const auto& x : block.GetAlt2().GetBlock3()) {
+ hasErrors = hasErrors || !TableHintImpl(x.GetRule_table_hint2(), hints);
+ }
+
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ if (hasErrors) {
+ return Nothing();
+ }
+
+ return hints;
+}
+
+bool TSqlTranslation::SimpleTableRefImpl(const TRule_simple_table_ref& node, TTableRef& result) {
+ // simple_table_ref: simple_table_ref_core table_hints?;
+ if (!SimpleTableRefCoreImpl(node.GetRule_simple_table_ref_core1(), result)) {
+ return false;
+ }
+
+ TTableHints hints = GetContextHints(Context());
+ if (node.HasBlock2()) {
+ auto tmp = TableHintsImpl(node.GetBlock2().GetRule_table_hints1());
+ if (!tmp) {
+ Error() << "Failed to parse table hints";
+ return false;
+ }
+
+ hints = *tmp;
+ }
+
+ if (!hints.empty()) {
+ result.Options = BuildInputOptions(Context().Pos(), hints);
+ }
+
+ return true;
+}
+
+bool TSqlTranslation::SimpleTableRefCoreImpl(const TRule_simple_table_ref_core& node, TTableRef& result) {
+ // simple_table_ref_core: ((cluster_expr DOT)? id_or_at) | AT? bind_parameter;
+ TString service = Context().Scoped->CurrService;
+ TDeferredAtom cluster = Context().Scoped->CurrCluster;
+ switch (node.Alt_case()) {
+ case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore1: {
+ if (node.GetAlt_simple_table_ref_core1().GetRule_object_ref1().HasBlock1()) {
+ if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
+ Error() << "Cluster should not be used in limited view";
+ return false;
+ }
+
+ if (!ClusterExpr(node.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetBlock1().GetRule_cluster_expr1(), false, service, cluster)) {
+ return false;
+ }
+ }
+
+ if (cluster.Empty()) {
+ Error() << "No cluster name given and no default cluster is selected";
+ return false;
+ }
+
+ result = TTableRef(Context().MakeName("table"), service, cluster, nullptr);
+ auto tableOrAt = Id(node.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetRule_id_or_at2(), *this);
+ auto tableAndView = TableKeyImpl(tableOrAt, "", *this);
+ result.Keys = BuildTableKey(Context().Pos(), result.Service, result.Cluster,
+ TDeferredAtom(Context().Pos(), tableAndView.first), tableAndView.second);
+ break;
+ }
+ case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore2: {
+ if (cluster.Empty()) {
+ Error() << "No cluster name given and no default cluster is selected";
+ return false;
+ }
+
+ auto at = node.GetAlt_simple_table_ref_core2().HasBlock1();
+ TString bindName;
+ if (!NamedNodeImpl(node.GetAlt_simple_table_ref_core2().GetRule_bind_parameter2(), bindName, *this)) {
+ return false;
+ }
+ auto named = GetNamedNode(bindName);
+ if (!named) {
+ return false;
+ }
+
+ TDeferredAtom table;
+ MakeTableFromExpression(Context(), named, table);
+ result = TTableRef(Context().MakeName("table"), service, cluster, nullptr);
+ result.Keys = BuildTableKey(Context().Pos(), result.Service, result.Cluster, table, at ? "@" : "");
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ return result.Keys != nullptr;
+}
+
+bool TSqlTranslation::TopicRefImpl(const TRule_topic_ref& node, TTopicRef& result) {
+ TString service = Context().Scoped->CurrService;
+ TDeferredAtom cluster = Context().Scoped->CurrCluster;
+ if (node.HasBlock1()) {
+ if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
+ Error() << "Cluster should not be used in limited view";
+ return false;
+ }
+
+ if (!ClusterExpr(node.GetBlock1().GetRule_cluster_expr1(), false, service, cluster)) {
+ return false;
+ }
+ }
+
+ if (cluster.Empty()) {
+ Error() << "No cluster name given and no default cluster is selected";
+ return false;
+ }
+
+ result = TTopicRef(Context().MakeName("topic"), cluster, nullptr);
+ auto topic = Id(node.GetRule_an_id2(), *this);
+ result.Keys = BuildTopicKey(Context().Pos(), result.Cluster, TDeferredAtom(Context().Pos(), topic));
+
+ return true;
+}
+
+TNodePtr TSqlTranslation::NamedNode(const TRule_named_nodes_stmt& rule, TVector<TSymbolNameWithPos>& names) {
+ // named_nodes_stmt: bind_parameter_list EQUALS (expr | subselect_stmt);
+ // subselect_stmt: (LPAREN select_stmt RPAREN | select_unparenthesized_stmt);
+ if (!BindList(rule.GetRule_bind_parameter_list1(), names)) {
+ return {};
+ }
+
+ TNodePtr nodeExpr = nullptr;
+ switch (rule.GetBlock3().Alt_case()) {
+ case TRule_named_nodes_stmt::TBlock3::kAlt1: {
+ TSqlExpression expr(Ctx, Mode);
+ auto result = expr.Build(rule.GetBlock3().GetAlt1().GetRule_expr1());
+ return result;
+ }
+
+ case TRule_named_nodes_stmt::TBlock3::kAlt2:{
+ const auto& subselect_rule = rule.GetBlock3().GetAlt2().GetRule_subselect_stmt1();
+
+ TSqlSelect expr(Ctx, Mode);
+ TPosition pos;
+ TSourcePtr source = nullptr;
+ switch (subselect_rule.GetBlock1().Alt_case()) {
+ case TRule_subselect_stmt::TBlock1::kAlt1:
+ source = expr.Build(subselect_rule.GetBlock1().GetAlt1().GetRule_select_stmt2(), pos);
+ break;
+
+ case TRule_subselect_stmt::TBlock1::kAlt2:
+ source = expr.Build(subselect_rule.GetBlock1().GetAlt2().GetRule_select_unparenthesized_stmt1(), pos);
+ break;
+
+ default:
+ AltNotImplemented("subselect_stmt", subselect_rule.GetBlock1());
+ Ctx.IncrementMonCounter("sql_errors", "UnknownNamedNode");
+ return nullptr;
+ }
+
+ if (!source) {
+ return {};
+ }
+
+ return BuildSourceNode(pos, std::move(source));
+ }
+
+ default:
+ AltNotImplemented("named_node", rule.GetBlock3());
+ Ctx.IncrementMonCounter("sql_errors", "UnknownNamedNode");
+ return nullptr;
+ }
+}
+
+bool TSqlTranslation::ImportStatement(const TRule_import_stmt& stmt, TVector<TString>* namesPtr) {
+ TVector<TString> modulePath;
+ if (!ModulePath(stmt.GetRule_module_path2(), modulePath)) {
+ return false;
+ }
+
+ TVector<TSymbolNameWithPos> names;
+ TVector<TSymbolNameWithPos> aliases;
+ if (!NamedBindList(stmt.GetRule_named_bind_parameter_list4(), names, aliases)) {
+ return false;
+ }
+ YQL_ENSURE(names.size() == aliases.size());
+ const TString moduleAlias = Ctx.AddImport(std::move(modulePath));
+ if (!moduleAlias) {
+ return false;
+ }
+
+ for (size_t i = 0; i < names.size(); ++i) {
+ auto& name = names[i];
+ auto& alias = aliases[i];
+
+ auto& var = alias.Name ? alias : name;
+ if (IsAnonymousName(var.Name)) {
+ Ctx.Error(var.Pos) << "Can not import anonymous name " << var.Name;
+ return false;
+ }
+
+ auto builder = [&](const TString& realName) {
+ YQL_ENSURE(realName == var.Name);
+ auto atom = BuildQuotedAtom(name.Pos, name.Name);
+ return atom->Y("bind", moduleAlias, atom);
+ };
+
+ var.Name = PushNamedNode(var.Pos, var.Name, builder);
+ if (namesPtr) {
+ namesPtr->push_back(var.Name);
+ }
+ }
+ return true;
+}
+
+bool TSqlTranslation::SortSpecification(const TRule_sort_specification& node, TVector<TSortSpecificationPtr>& sortSpecs) {
+ bool asc = true;
+ TSqlExpression expr(Ctx, Mode);
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TNodePtr exprNode = expr.Build(node.GetRule_expr1());
+ if (!exprNode) {
+ return false;
+ }
+ if (node.HasBlock2()) {
+ const auto& token = node.GetBlock2().GetToken1();
+ Token(token);
+ switch (token.GetId()) {
+ case SQLv1LexerTokens::TOKEN_ASC:
+ Ctx.IncrementMonCounter("sql_features", "OrderByAsc");
+ break;
+ case SQLv1LexerTokens::TOKEN_DESC:
+ asc = false;
+ Ctx.IncrementMonCounter("sql_features", "OrderByDesc");
+ break;
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownOrderBy");
+ Error() << "Unsupported direction token: " << token.GetId();
+ return false;
+ }
+ } else {
+ Ctx.IncrementMonCounter("sql_features", "OrderByDefault");
+ }
+ auto sortSpecPtr = MakeIntrusive<TSortSpecification>();
+ sortSpecPtr->OrderExpr = exprNode;
+ sortSpecPtr->Ascending = asc;
+ sortSpecs.emplace_back(sortSpecPtr);
+ return true;
+}
+
+bool TSqlTranslation::SortSpecificationList(const TRule_sort_specification_list& node, TVector<TSortSpecificationPtr>& sortSpecs) {
+ if (!SortSpecification(node.GetRule_sort_specification1(), sortSpecs)) {
+ return false;
+ }
+ for (auto sortSpec: node.GetBlock2()) {
+ Token(sortSpec.GetToken1());
+ if (!SortSpecification(sortSpec.GetRule_sort_specification2(), sortSpecs)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlTranslation::IsDistinctOptSet(const TRule_opt_set_quantifier& node) const {
+ TPosition pos;
+ return node.HasBlock1() && node.GetBlock1().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_DISTINCT;
+}
+
+bool TSqlTranslation::IsDistinctOptSet(const TRule_opt_set_quantifier& node, TPosition& distinctPos) const {
+ if (node.HasBlock1() && node.GetBlock1().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_DISTINCT) {
+ distinctPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
+ return true;
+ }
+ return false;
+}
+
+bool TSqlTranslation::RoleNameClause(const TRule_role_name& node, TDeferredAtom& result, bool allowSystemRoles) {
+ // role_name: an_id_or_type | bind_parameter;
+ switch (node.Alt_case()) {
+ case TRule_role_name::kAltRoleName1:
+ {
+ TString name = Id(node.GetAlt_role_name1().GetRule_an_id_or_type1(), *this);
+ result = TDeferredAtom(Ctx.Pos(), name);
+ break;
+ }
+ case TRule_role_name::kAltRoleName2:
+ {
+ if (!BindParameterClause(node.GetAlt_role_name2().GetRule_bind_parameter1(), result)) {
+ return false;
+ }
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ if (auto literalName = result.GetLiteral(); literalName && !allowSystemRoles) {
+ static const THashSet<TStringBuf> systemRoles = { "current_role", "current_user", "session_user" };
+ if (systemRoles.contains(to_lower(*literalName))) {
+ Ctx.Error() << "System role " << to_upper(*literalName) << " can not be used here";
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool TSqlTranslation::RoleParameters(const TRule_create_user_option& node, TRoleParameters& result) {
+ // create_user_option: ENCRYPTED? PASSWORD expr;
+ result = TRoleParameters{};
+
+ TSqlExpression expr(Ctx, Mode);
+ TNodePtr password = expr.Build(node.GetRule_expr3());
+ if (!password) {
+ return false;
+ }
+
+ result.IsPasswordEncrypted = node.HasBlock1();
+ if (!password->IsNull()) {
+ result.Password = MakeAtomFromExpression(Ctx, password);
+ }
+
+ return true;
+}
+
+bool TSqlTranslation::PermissionNameClause(const TRule_permission_id& node, TDeferredAtom& result) {
+ // permission_id:
+ // CONNECT
+ // | LIST
+ // | INSERT
+ // | MANAGE
+ // | DROP
+ // | GRANT
+ // | MODIFY (TABLES | ATTRIBUTES)
+ // | (UPDATE | ERASE) ROW
+ // | (REMOVE | DESCRIBE | ALTER) SCHEMA
+ // | SELECT (TABLES | ATTRIBUTES | ROW)?
+ // | (USE | FULL) LEGACY?
+ // | CREATE (DIRECTORY | TABLE | QUEUE)?
+
+ auto handleOneIdentifier = [&result, this] (const auto& permissionNameKeyword) {
+ result = TDeferredAtom(Ctx.Pos(), GetIdentifier(*this, permissionNameKeyword).Name);
+ };
+
+ auto handleTwoIdentifiers = [&result, this] (const auto& permissionNameKeyword) {
+ const auto& token1 = permissionNameKeyword.GetToken1();
+ const auto& token2 = permissionNameKeyword.GetToken2();
+ TString identifierName = TIdentifier(TPosition(token1.GetColumn(), token1.GetLine()), Identifier(token1)).Name +
+ "_" +
+ TIdentifier(TPosition(token2.GetColumn(), token2.GetLine()), Identifier(token2)).Name;
+ result = TDeferredAtom(Ctx.Pos(), identifierName);
+ };
+
+ auto handleOneOrTwoIdentifiers = [&result, this] (const auto& permissionNameKeyword) {
+ TString identifierName = GetIdentifier(*this, permissionNameKeyword).Name;
+ if (permissionNameKeyword.HasBlock2()) {
+ identifierName += "_" + GetIdentifier(*this, permissionNameKeyword.GetBlock2()).Name;
+ }
+ result = TDeferredAtom(Ctx.Pos(), identifierName);
+ };
+
+ switch (node.GetAltCase()) {
+ case TRule_permission_id::kAltPermissionId1:
+ {
+ // CONNECT
+ handleOneIdentifier(node.GetAlt_permission_id1());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId2:
+ {
+ // LIST
+ handleOneIdentifier(node.GetAlt_permission_id2());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId3:
+ {
+ // INSERT
+ handleOneIdentifier(node.GetAlt_permission_id3());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId4:
+ {
+ // MANAGE
+ handleOneIdentifier(node.GetAlt_permission_id4());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId5:
+ {
+ // DROP
+ handleOneIdentifier(node.GetAlt_permission_id5());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId6:
+ {
+ // GRANT
+ handleOneIdentifier(node.GetAlt_permission_id6());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId7:
+ {
+ // MODIFY (TABLES | ATTRIBUTES)
+ handleTwoIdentifiers(node.GetAlt_permission_id7());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId8:
+ {
+ // (UPDATE | ERASE) ROW
+ handleTwoIdentifiers(node.GetAlt_permission_id8());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId9:
+ {
+ // (REMOVE | DESCRIBE | ALTER) SCHEMA
+ handleTwoIdentifiers(node.GetAlt_permission_id9());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId10:
+ {
+ // SELECT (TABLES | ATTRIBUTES | ROW)?
+ handleOneOrTwoIdentifiers(node.GetAlt_permission_id10());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId11:
+ {
+ // (USE | FULL) LEGACY?
+ handleOneOrTwoIdentifiers(node.GetAlt_permission_id11());
+ break;
+ }
+ case TRule_permission_id::kAltPermissionId12:
+ {
+ // CREATE (DIRECTORY | TABLE | QUEUE)?
+ handleOneOrTwoIdentifiers(node.GetAlt_permission_id12());
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ return true;
+}
+
+bool TSqlTranslation::PermissionNameClause(const TRule_permission_name& node, TDeferredAtom& result) {
+ // permission_name: permission_id | STRING_VALUE;
+ switch (node.Alt_case()) {
+ case TRule_permission_name::kAltPermissionName1:
+ {
+ return PermissionNameClause(node.GetAlt_permission_name1().GetRule_permission_id1(), result);
+ break;
+ }
+ case TRule_permission_name::kAltPermissionName2:
+ {
+ const TString stringValue(Ctx.Token(node.GetAlt_permission_name2().GetToken1()));
+ auto unescaped = StringContent(Ctx, Ctx.Pos(), stringValue);
+ if (!unescaped) {
+ return false;
+ }
+ result = TDeferredAtom(Ctx.Pos(), unescaped->Content);
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ return true;
+}
+
+bool TSqlTranslation::PermissionNameClause(const TRule_permission_name_target& node, TVector<TDeferredAtom>& result, bool withGrantOption) {
+ // permission_name_target: permission_name (COMMA permission_name)* COMMA? | ALL PRIVILEGES?;
+ switch (node.Alt_case()) {
+ case TRule_permission_name_target::kAltPermissionNameTarget1:
+ {
+ const auto& permissionNameRule = node.GetAlt_permission_name_target1();
+ result.emplace_back();
+ if (!PermissionNameClause(permissionNameRule.GetRule_permission_name1(), result.back())) {
+ return false;
+ }
+ for (const auto& item : permissionNameRule.GetBlock2()) {
+ result.emplace_back();
+ if (!PermissionNameClause(item.GetRule_permission_name2(), result.back())) {
+ return false;
+ }
+ }
+ break;
+ }
+ case TRule_permission_name_target::kAltPermissionNameTarget2:
+ {
+ result.emplace_back(Ctx.Pos(), "all_privileges");
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ if (withGrantOption) {
+ result.emplace_back(Ctx.Pos(), "grant");
+ }
+ return true;
+}
+
+TString TSqlTranslation::FrameSettingsToString(EFrameSettings settings, bool isUnbounded) {
+ TString result;
+ switch (settings) {
+ case FramePreceding:
+ result = "PRECEDING"; break;
+ case FrameCurrentRow:
+ YQL_ENSURE(!isUnbounded);
+ result = "CURRENT ROW"; break;
+ case FrameFollowing:
+ result = "FOLLOWING"; break;
+ default:
+ Y_FAIL("Unexpected frame settings");
+ }
+
+ return (isUnbounded ? "UNBOUNDED " : "") + result;
+}
+
+bool CheckFrameBoundLiteral(TContext& ctx, const TFrameBound& bound, TMaybe<i32>& boundValue) {
+ boundValue = {};
+ auto node = bound.Bound;
+ if (node && node->IsLiteral()) {
+ auto type = node->GetLiteralType();
+ if (type != "Int32") {
+ ctx.Error(node->GetPos()) << "Expecting Int32 as frame bound value, but got " << type << " literal";
+ return false;
+ }
+
+ i32 value = FromString<i32>(node->GetLiteralValue());
+ if (value < 0) {
+ ctx.Error(node->GetPos()) << "Expecting non-negative value for frame bound, but got " << value;
+ return false;
+ }
+
+ boundValue = value;
+ }
+
+ return true;
+}
+
+bool TSqlTranslation::IsValidFrameSettings(TContext& ctx, const TFrameSpecification& frameSpec, size_t sortSpecSize) {
+ const TFrameBound& begin = *frameSpec.FrameBegin;
+ const TFrameBound& end = *frameSpec.FrameEnd;
+
+ YQL_ENSURE(begin.Settings != FrameUndefined);
+ YQL_ENSURE(end.Settings != FrameUndefined);
+
+ const bool beginUnbounded = !begin.Bound && begin.Settings != FrameCurrentRow;
+ const bool endUnbounded = !end.Bound && end.Settings != FrameCurrentRow;
+
+ if (beginUnbounded && begin.Settings == FrameFollowing) {
+ ctx.Error(begin.Pos) << "Frame cannot start from " << FrameSettingsToString(begin.Settings, beginUnbounded);
+ return false;
+ }
+
+ if (endUnbounded && end.Settings == FramePreceding) {
+ ctx.Error(end.Pos) << "Frame cannot end with " << FrameSettingsToString(end.Settings, endUnbounded);
+ return false;
+ }
+
+ if (begin.Settings > end.Settings) {
+ ctx.Error(begin.Pos) << "Frame cannot start from " << FrameSettingsToString(begin.Settings, beginUnbounded)
+ << " and end with " << FrameSettingsToString(end.Settings, endUnbounded);
+ return false;
+ }
+
+ if (frameSpec.FrameType == FrameByRange && sortSpecSize != 1) {
+ TStringBuf msg = "RANGE with <offset> PRECEDING/FOLLOWING requires exactly one expression in ORDER BY partition clause";
+ if (begin.Bound) {
+ ctx.Error(begin.Bound->GetPos()) << msg;
+ return false;
+ }
+ if (end.Bound) {
+ ctx.Error(end.Bound->GetPos()) << msg;
+ return false;
+ }
+ }
+
+ TMaybe<i32> beginValue;
+ TMaybe<i32> endValue;
+
+ if (frameSpec.FrameType != EFrameType::FrameByRange) {
+ if (!CheckFrameBoundLiteral(ctx, begin, beginValue) || !CheckFrameBoundLiteral(ctx, end, endValue)) {
+ return false;
+ }
+ }
+
+ if (beginValue.Defined() && endValue.Defined()) {
+ if (begin.Settings == FramePreceding) {
+ beginValue = 0 - *beginValue;
+ }
+ if (end.Settings == FramePreceding) {
+ endValue = 0 - *endValue;
+ }
+
+ if (*beginValue > *endValue) {
+ YQL_ENSURE(begin.Bound);
+ ctx.Warning(begin.Bound->GetPos(), TIssuesIds::YQL_EMPTY_WINDOW_FRAME) << "Used frame specification implies empty window frame";
+ }
+ }
+
+ return true;
+}
+
+bool TSqlTranslation::FrameBound(const TRule_window_frame_bound& rule, TFrameBoundPtr& bound) {
+ // window_frame_bound:
+ // CURRENT ROW
+ // | (expr | UNBOUNDED) (PRECEDING | FOLLOWING)
+ // ;
+ bound = new TFrameBound;
+ switch (rule.Alt_case()) {
+ case TRule_window_frame_bound::kAltWindowFrameBound1:
+ bound->Pos = GetPos(rule.GetAlt_window_frame_bound1().GetToken1());
+ bound->Settings = FrameCurrentRow;
+ break;
+ case TRule_window_frame_bound::kAltWindowFrameBound2: {
+ auto block = rule.GetAlt_window_frame_bound2().GetBlock1();
+ switch (block.Alt_case()) {
+ case TRule_window_frame_bound_TAlt2_TBlock1::kAlt1: {
+ TSqlExpression boundExpr(Ctx, Mode);
+ bound->Bound = boundExpr.Build(block.GetAlt1().GetRule_expr1());
+ if (!bound->Bound) {
+ return false;
+ }
+ bound->Pos = bound->Bound->GetPos();
+ break;
+ }
+ case TRule_window_frame_bound_TAlt2_TBlock1::kAlt2:
+ bound->Pos = GetPos(block.GetAlt2().GetToken1());
+ break;
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+
+ const TString settingToken = to_lower(Token(rule.GetAlt_window_frame_bound2().GetToken2()));
+ if (settingToken == "preceding") {
+ bound->Settings = FramePreceding;
+ } else if (settingToken == "following") {
+ bound->Settings = FrameFollowing;
+ } else {
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ break;
+ }
+ default:
+ Y_FAIL("FrameClause: frame bound not corresond to grammar changes");
+ }
+ return true;
+}
+
+bool TSqlTranslation::FrameClause(const TRule_window_frame_clause& rule, TFrameSpecificationPtr& frameSpec, size_t sortSpecSize) {
+ // window_frame_clause: window_frame_units window_frame_extent window_frame_exclusion?;
+ frameSpec = new TFrameSpecification;
+ const TString frameUnitStr = to_lower(Token(rule.GetRule_window_frame_units1().GetToken1()));
+ if (frameUnitStr == "rows") {
+ frameSpec->FrameType = EFrameType::FrameByRows;
+ } else if (frameUnitStr == "range") {
+ frameSpec->FrameType = EFrameType::FrameByRange;
+ } else {
+ YQL_ENSURE(frameUnitStr == "groups");
+ frameSpec->FrameType = EFrameType::FrameByGroups;
+ }
+
+ auto frameExtent = rule.GetRule_window_frame_extent2();
+ // window_frame_extent: window_frame_bound | window_frame_between;
+ switch (frameExtent.Alt_case()) {
+ case TRule_window_frame_extent::kAltWindowFrameExtent1: {
+ auto start = frameExtent.GetAlt_window_frame_extent1().GetRule_window_frame_bound1();
+ if (!FrameBound(start, frameSpec->FrameBegin)) {
+ return false;
+ }
+
+ // frame end is CURRENT ROW
+ frameSpec->FrameEnd = new TFrameBound;
+ frameSpec->FrameEnd->Pos = frameSpec->FrameBegin->Pos;
+ frameSpec->FrameEnd->Settings = FrameCurrentRow;
+ break;
+ }
+ case TRule_window_frame_extent::kAltWindowFrameExtent2: {
+ // window_frame_between: BETWEEN window_frame_bound AND window_frame_bound;
+ auto between = frameExtent.GetAlt_window_frame_extent2().GetRule_window_frame_between1();
+ if (!FrameBound(between.GetRule_window_frame_bound2(), frameSpec->FrameBegin)) {
+ return false;
+ }
+ if (!FrameBound(between.GetRule_window_frame_bound4(), frameSpec->FrameEnd)) {
+ return false;
+ }
+ break;
+ }
+ default:
+ Y_FAIL("FrameClause: frame extent not correspond to grammar changes");
+ }
+ YQL_ENSURE(frameSpec->FrameBegin);
+ YQL_ENSURE(frameSpec->FrameEnd);
+ if (!IsValidFrameSettings(Ctx, *frameSpec, sortSpecSize)) {
+ return false;
+ }
+
+ if (rule.HasBlock3()) {
+ // window_frame_exclusion: EXCLUDE CURRENT ROW | EXCLUDE GROUP | EXCLUDE TIES | EXCLUDE NO OTHERS;
+ switch (rule.GetBlock3().GetRule_window_frame_exclusion1().Alt_case()) {
+ case TRule_window_frame_exclusion::kAltWindowFrameExclusion1:
+ frameSpec->FrameExclusion = FrameExclCurRow;
+ break;
+ case TRule_window_frame_exclusion::kAltWindowFrameExclusion2:
+ frameSpec->FrameExclusion = FrameExclGroup;
+ break;
+ case TRule_window_frame_exclusion::kAltWindowFrameExclusion3:
+ frameSpec->FrameExclusion = FrameExclTies;
+ break;
+ case TRule_window_frame_exclusion::kAltWindowFrameExclusion4:
+ frameSpec->FrameExclusion = FrameExclNone;
+ break;
+ default:
+ Y_FAIL("FrameClause: frame exclusion not correspond to grammar changes");
+ }
+ }
+
+ if (frameSpec->FrameExclusion != FrameExclNone) {
+ Ctx.Error() << "Frame exclusion is not supported yet";
+ return false;
+ }
+
+ return true;
+}
+
+TWindowSpecificationPtr TSqlTranslation::WindowSpecification(const TRule_window_specification_details& rule) {
+ /*
+ window_specification_details:
+ existing_window_name?
+ window_partition_clause?
+ window_order_clause?
+ window_frame_clause?
+ */
+ TWindowSpecificationPtr winSpecPtr = new TWindowSpecification;
+ if (rule.HasBlock1()) {
+ Ctx.Error() << "Existing window name is not supported in window specification yet!";
+ return {};
+ }
+ if (rule.HasBlock2()) {
+ /*
+ window_partition_clause: PARTITION COMPACT? BY named_expr_list;
+ */
+ auto& partitionClause = rule.GetBlock2().GetRule_window_partition_clause1();
+ winSpecPtr->IsCompact = partitionClause.HasBlock2();
+ if (!winSpecPtr->IsCompact) {
+ auto hints = Ctx.PullHintForToken(Ctx.TokenPosition(partitionClause.GetToken1()));
+ winSpecPtr->IsCompact = AnyOf(hints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
+ }
+ TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ if (!NamedExprList(partitionClause.GetRule_named_expr_list4(), winSpecPtr->Partitions)) {
+ return {};
+ }
+ // ignore empty unnamed tuples:
+ // "PARTITION BY (), foo(x) as y, (), (z)" is allowed and will work exactly the same as
+ // "PARTITION BY foo(x) as y, z"
+ auto removed = std::remove_if(winSpecPtr->Partitions.begin(), winSpecPtr->Partitions.end(),
+ [](const TNodePtr& partitionNode) {
+ return !partitionNode->GetLabel() && !partitionNode->GetColumnName() &&
+ dynamic_cast<TTupleNode*>(partitionNode.Get()) != nullptr &&
+ partitionNode->GetTupleSize() == 0;
+ });
+ winSpecPtr->Partitions.erase(removed, winSpecPtr->Partitions.end());
+
+ }
+ if (rule.HasBlock3()) {
+ if (!OrderByClause(rule.GetBlock3().GetRule_window_order_clause1().GetRule_order_by_clause1(), winSpecPtr->OrderBy)) {
+ return {};
+ }
+ }
+ const bool ordered = !winSpecPtr->OrderBy.empty();
+ if (rule.HasBlock4()) {
+ if (!FrameClause(rule.GetBlock4().GetRule_window_frame_clause1(), winSpecPtr->Frame, winSpecPtr->OrderBy.size())) {
+ return {};
+ }
+ } else {
+ winSpecPtr->Frame = new TFrameSpecification;
+ winSpecPtr->Frame->FrameBegin = new TFrameBound;
+ winSpecPtr->Frame->FrameEnd = new TFrameBound;
+ winSpecPtr->Frame->FrameBegin->Pos = winSpecPtr->Frame->FrameEnd->Pos = Ctx.Pos();
+ winSpecPtr->Frame->FrameExclusion = EFrameExclusions::FrameExclNone;
+
+ winSpecPtr->Frame->FrameBegin->Settings = EFrameSettings::FramePreceding;
+ if (Ctx.AnsiCurrentRow) {
+ // RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
+ winSpecPtr->Frame->FrameType = EFrameType::FrameByRange;
+ winSpecPtr->Frame->FrameEnd->Settings = EFrameSettings::FrameCurrentRow;
+ } else if (ordered) {
+ // legacy behavior
+ // ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
+ winSpecPtr->Frame->FrameType = EFrameType::FrameByRows;
+ winSpecPtr->Frame->FrameEnd->Settings = EFrameSettings::FrameCurrentRow;
+ } else {
+ // ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
+ winSpecPtr->Frame->FrameType = EFrameType::FrameByRows;
+ winSpecPtr->Frame->FrameEnd->Settings = EFrameSettings::FrameFollowing;
+ }
+ }
+
+ // Normalize and simplify
+ auto replaceCurrentWith = [](TFrameBound& frame, bool preceding, TNodePtr value ) {
+ frame.Settings = preceding ? EFrameSettings::FramePreceding : EFrameSettings::FrameFollowing;
+ frame.Bound = value;
+ };
+
+ const auto frameSpec = winSpecPtr->Frame;
+ if (!ordered && frameSpec->FrameType != EFrameType::FrameByRows) {
+ // CURRENT ROW -> UNBOUNDED
+ if (frameSpec->FrameBegin->Settings == EFrameSettings::FrameCurrentRow) {
+ replaceCurrentWith(*frameSpec->FrameBegin, true, nullptr);
+ }
+ if (frameSpec->FrameEnd->Settings == EFrameSettings::FrameCurrentRow) {
+ replaceCurrentWith(*frameSpec->FrameBegin, false, nullptr);
+ }
+ }
+
+ // RANGE/GROUPS UNBOUNDED -> ROWS UNBOUNDED
+ if (frameSpec->FrameBegin->Settings == EFrameSettings::FramePreceding && !frameSpec->FrameBegin->Bound &&
+ frameSpec->FrameEnd->Settings == EFrameSettings::FrameFollowing && !frameSpec->FrameEnd->Bound)
+ {
+ frameSpec->FrameType = EFrameType::FrameByRows;
+ }
+
+ if (frameSpec->FrameType != EFrameType::FrameByRange) {
+ // replace FrameCurrentRow for ROWS/GROUPS with 0 preceding/following
+ // FrameCurrentRow has special meaning ( = first/last peer row)
+ if (frameSpec->FrameBegin->Settings == EFrameSettings::FrameCurrentRow) {
+ TNodePtr zero = new TLiteralNumberNode<i32>(winSpecPtr->Frame->FrameBegin->Pos, "Int32", "0");
+ replaceCurrentWith(*frameSpec->FrameBegin, true, zero);
+ }
+
+ if (frameSpec->FrameEnd->Settings == EFrameSettings::FrameCurrentRow) {
+ TNodePtr zero = new TLiteralNumberNode<i32>(winSpecPtr->Frame->FrameEnd->Pos, "Int32", "0");
+ replaceCurrentWith(*frameSpec->FrameEnd, false, zero);
+ }
+ }
+
+ return winSpecPtr;
+}
+
+TNodePtr TSqlTranslation::DoStatement(const TRule_do_stmt& stmt, bool makeLambda, const TVector<TString>& args) {
+ switch (stmt.GetBlock2().Alt_case()) {
+ case TRule_do_stmt_TBlock2::kAlt1: {
+ const auto& callAction = stmt.GetBlock2().GetAlt1().GetRule_call_action1();
+ TNodePtr action;
+ switch (callAction.GetBlock1().GetAltCase()) {
+ case TRule_call_action_TBlock1::kAlt1: {
+ TString bindName;
+ if (!NamedNodeImpl(callAction.GetBlock1().GetAlt1().GetRule_bind_parameter1(), bindName, *this)) {
+ return nullptr;
+ }
+ action = GetNamedNode(bindName);
+ if (!action) {
+ return nullptr;
+ }
+ break;
+ }
+ case TRule_call_action_TBlock1::kAlt2:
+ action = BuildEmptyAction(Ctx.Pos());
+ break;
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownDoStmt");
+ AltNotImplemented("do_stmt", callAction.GetBlock1());
+ return nullptr;
+ }
+
+ TVector<TNodePtr> values;
+ values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "Apply", TNodeFlags::Default));
+ values.push_back(action);
+ values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "world", TNodeFlags::Default));
+
+ TSqlExpression sqlExpr(Ctx, Mode);
+ if (callAction.HasBlock3() && !ExprList(sqlExpr, values, callAction.GetBlock3().GetRule_expr_list1())) {
+ return nullptr;
+ }
+
+ TNodePtr apply = new TAstListNodeImpl(Ctx.Pos(), std::move(values));
+ if (!makeLambda) {
+ return BuildDoCall(Ctx.Pos(), apply);
+ }
+
+ TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
+ params->Add("world");
+ for (const auto& arg : args) {
+ params->Add(new TAstAtomNodeImpl(Ctx.Pos(), arg, TNodeFlags::ArbitraryContent));
+ }
+
+ return BuildDoCall(Ctx.Pos(), BuildLambda(Ctx.Pos(), params, apply));
+ }
+ case TRule_do_stmt_TBlock2::kAlt2: {
+ const auto& inlineAction = stmt.GetBlock2().GetAlt2().GetRule_inline_action1();
+ const auto& body = inlineAction.GetRule_define_action_or_subquery_body2();
+
+ auto saveScoped = Ctx.Scoped;
+ Ctx.Scoped = MakeIntrusive<TScopedState>();
+ Ctx.AllScopes.push_back(Ctx.Scoped);
+ *Ctx.Scoped = *saveScoped;
+ Ctx.Scoped->Local = TScopedState::TLocal{};
+ Ctx.ScopeLevel++;
+ TSqlQuery query(Ctx, Ctx.Settings.Mode, false);
+ TBlocks innerBlocks;
+
+ const bool hasValidBody = DefineActionOrSubqueryBody(query, innerBlocks, body);
+ auto ret = hasValidBody ? BuildQuery(Ctx.Pos(), innerBlocks, false, Ctx.Scoped) : nullptr;
+ WarnUnusedNodes();
+ Ctx.ScopeLevel--;
+ Ctx.Scoped = saveScoped;
+
+ if (!ret) {
+ return {};
+ }
+
+ TNodePtr blockNode = new TAstListNodeImpl(Ctx.Pos());
+ blockNode->Add("block");
+ blockNode->Add(blockNode->Q(ret));
+ if (!makeLambda) {
+ return blockNode;
+ }
+
+ TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
+ params->Add("world");
+ for (const auto& arg : args) {
+ params->Add(new TAstAtomNodeImpl(Ctx.Pos(), arg, TNodeFlags::ArbitraryContent));
+ }
+
+ return BuildLambda(Ctx.Pos(), params, blockNode);
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+}
+
+bool TSqlTranslation::DefineActionOrSubqueryBody(TSqlQuery& query, TBlocks& blocks, const TRule_define_action_or_subquery_body& body) {
+ if (body.HasBlock2()) {
+ Ctx.PushCurrentBlocks(&blocks);
+ Y_DEFER {
+ Ctx.PopCurrentBlocks();
+ };
+ if (!query.Statement(blocks, body.GetBlock2().GetRule_sql_stmt_core1())) {
+ return false;
+ }
+
+ for (const auto& nestedStmtItem : body.GetBlock2().GetBlock2()) {
+ const auto& nestedStmt = nestedStmtItem.GetRule_sql_stmt_core2();
+ if (!query.Statement(blocks, nestedStmt)) {
+ return false;
+ }
+ }
+ }
+
+ return true;
+}
+
+bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_or_subquery_stmt& stmt) {
+ auto kind = Ctx.Token(stmt.GetToken2());
+ const bool isSubquery = to_lower(kind) == "subquery";
+ if (!isSubquery && Mode == NSQLTranslation::ESqlMode::SUBQUERY) {
+ Error() << "Definition of actions is not allowed in the subquery";
+ return false;
+ }
+
+ TString actionName;
+ if (!NamedNodeImpl(stmt.GetRule_bind_parameter3(), actionName, *this)) {
+ return false;
+ }
+ if (IsAnonymousName(actionName)) {
+ Error() << "Can not use anonymous name '" << actionName << "' as " << to_upper(kind) << " name";
+ return false;
+ }
+ TPosition actionNamePos = Ctx.Pos();
+
+ TVector<TSymbolNameWithPos> argNames;
+ ui32 optionalArgumentsCount = 0;
+ if (stmt.HasBlock5() && !ActionOrSubqueryArgs(stmt.GetBlock5().GetRule_action_or_subquery_args1(), argNames, optionalArgumentsCount)) {
+ return false;
+ }
+
+ auto saveScoped = Ctx.Scoped;
+ Ctx.Scoped = MakeIntrusive<TScopedState>();
+ Ctx.AllScopes.push_back(Ctx.Scoped);
+ *Ctx.Scoped = *saveScoped;
+ Ctx.Scoped->Local = TScopedState::TLocal{};
+ Ctx.ScopeLevel++;
+
+ for (auto& arg : argNames) {
+ arg.Name = PushNamedAtom(arg.Pos, arg.Name);
+ }
+
+ auto saveMode = Ctx.Settings.Mode;
+ if (isSubquery) {
+ Ctx.Settings.Mode = NSQLTranslation::ESqlMode::SUBQUERY;
+ }
+
+ TSqlQuery query(Ctx, Ctx.Settings.Mode, false);
+ TBlocks innerBlocks;
+ const bool hasValidBody = DefineActionOrSubqueryBody(query, innerBlocks, stmt.GetRule_define_action_or_subquery_body8());
+
+ ui32 topLevelSelects = 0;
+ for (auto& block : innerBlocks) {
+ if (block->IsSelect()) {
+ ++topLevelSelects;
+ }
+ }
+
+ if (isSubquery && topLevelSelects != 1) {
+ Error() << "Strictly one select/process/reduce statement must be used in the subquery, got: " << topLevelSelects;
+ return false;
+ }
+
+ auto ret = hasValidBody ? BuildQuery(Ctx.Pos(), innerBlocks, false, Ctx.Scoped) : nullptr;
+ WarnUnusedNodes();
+ Ctx.Scoped = saveScoped;
+ Ctx.ScopeLevel--;
+ Ctx.Settings.Mode = saveMode;
+
+ if (!ret) {
+ return false;
+ }
+
+ TNodePtr blockNode = new TAstListNodeImpl(Ctx.Pos());
+ blockNode->Add("block");
+ blockNode->Add(blockNode->Q(ret));
+
+ TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
+ params->Add("world");
+ for (const auto& arg : argNames) {
+ params->Add(BuildAtom(arg.Pos, arg.Name));
+ }
+
+ auto lambda = BuildLambda(Ctx.Pos(), params, blockNode);
+ if (optionalArgumentsCount > 0) {
+ lambda = new TCallNodeImpl(Ctx.Pos(), "WithOptionalArgs", {
+ lambda,
+ BuildQuotedAtom(Ctx.Pos(), ToString(optionalArgumentsCount), TNodeFlags::Default)
+ });
+ }
+
+ PushNamedNode(actionNamePos, actionName, lambda);
+ return true;
+}
+
+TNodePtr TSqlTranslation::IfStatement(const TRule_if_stmt& stmt) {
+ bool isEvaluate = stmt.HasBlock1();
+ TSqlExpression expr(Ctx, Mode);
+ auto exprNode = expr.Build(stmt.GetRule_expr3());
+ if (!exprNode) {
+ return {};
+ }
+
+ auto thenNode = DoStatement(stmt.GetRule_do_stmt4(), isEvaluate);
+ if (!thenNode) {
+ return {};
+ }
+
+ TNodePtr elseNode;
+ if (stmt.HasBlock5()) {
+ elseNode = DoStatement(stmt.GetBlock5().GetRule_do_stmt2(), isEvaluate);
+ if (!elseNode) {
+ return {};
+ }
+ }
+
+ return BuildWorldIfNode(Ctx.Pos(), exprNode, thenNode, elseNode, isEvaluate);
+}
+
+TNodePtr TSqlTranslation::ForStatement(const TRule_for_stmt& stmt) {
+ bool isEvaluate = stmt.HasBlock1();
+ TSqlExpression expr(Ctx, Mode);
+ TString itemArgName;
+ if (!NamedNodeImpl(stmt.GetRule_bind_parameter3(), itemArgName, *this)) {
+ return {};
+ }
+ TPosition itemArgNamePos = Ctx.Pos();
+
+ auto exprNode = expr.Build(stmt.GetRule_expr5());
+ if (!exprNode) {
+ return{};
+ }
+
+ itemArgName = PushNamedAtom(itemArgNamePos, itemArgName);
+ auto bodyNode = DoStatement(stmt.GetRule_do_stmt6(), true, { itemArgName });
+ PopNamedNode(itemArgName);
+ if (!bodyNode) {
+ return{};
+ }
+
+ TNodePtr elseNode;
+ if (stmt.HasBlock7()) {
+ elseNode = DoStatement(stmt.GetBlock7().GetRule_do_stmt2(), true);
+ if (!elseNode) {
+ return{};
+ }
+ }
+
+ return BuildWorldForNode(Ctx.Pos(), exprNode, bodyNode, elseNode, isEvaluate);
+}
+
+bool TSqlTranslation::BindParameterClause(const TRule_bind_parameter& node, TDeferredAtom& result) {
+ TString paramName;
+ if (!NamedNodeImpl(node, paramName, *this)) {
+ return false;
+ }
+ auto named = GetNamedNode(paramName);
+ if (!named) {
+ return false;
+ }
+
+ result = MakeAtomFromExpression(Ctx, named);
+ return true;
+}
+
+bool TSqlTranslation::ObjectFeatureValueClause(const TRule_object_feature_value& node, TDeferredAtom& result) {
+ // object_feature_value: an_id_or_type | bind_parameter;
+ switch (node.Alt_case()) {
+ case TRule_object_feature_value::kAltObjectFeatureValue1:
+ {
+ TString name = Id(node.GetAlt_object_feature_value1().GetRule_an_id_or_type1(), *this);
+ result = TDeferredAtom(Ctx.Pos(), name);
+ break;
+ }
+ case TRule_object_feature_value::kAltObjectFeatureValue2:
+ {
+ if (!BindParameterClause(node.GetAlt_object_feature_value2().GetRule_bind_parameter1(), result)) {
+ return false;
+ }
+ break;
+ }
+ default:
+ Y_FAIL("You should change implementation according to grammar changes");
+ }
+ return true;
+}
+
+bool TSqlTranslation::AddObjectFeature(std::map<TString, TDeferredAtom>& result, const TRule_object_feature& feature) {
+ if (feature.has_alt_object_feature1()) {
+ auto& kv = feature.GetAlt_object_feature1().GetRule_object_feature_kv1();
+ const TString& key = Id(kv.GetRule_an_id_or_type1(), *this);
+ auto& ruleValue = kv.GetRule_object_feature_value3();
+ TDeferredAtom value;
+ if (!ObjectFeatureValueClause(ruleValue, value)) {
+ return false;
+ }
+ result[key] = value;
+ } else if (feature.has_alt_object_feature2()) {
+ result[Id(feature.GetAlt_object_feature2().GetRule_object_feature_flag1().GetRule_an_id_or_type1(), *this)] = TDeferredAtom();
+ }
+ return true;
+}
+
+bool TSqlTranslation::ParseObjectFeatures(std::map<TString, TDeferredAtom>& result, const TRule_object_features& features) {
+ if (features.has_alt_object_features1()) {
+ if (!AddObjectFeature(result, features.alt_object_features1().GetRule_object_feature1())) {
+ return false;
+ }
+
+ } else if (features.has_alt_object_features2()) {
+ if (!AddObjectFeature(result, features.alt_object_features2().GetRule_object_feature2())) {
+ return false;
+ }
+ for (auto&& i : features.alt_object_features2().GetBlock3()) {
+ if (!AddObjectFeature(result, i.GetRule_object_feature2())) {
+ return false;
+ }
+ }
+ } else {
+ return false;
+ }
+ return true;
+}
+
+bool TSqlTranslation::StoreDataSourceSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, std::map<TString, TDeferredAtom>& result) {
+ YQL_ENSURE(value);
+
+ const TString key = to_lower(id.Name);
+ if (result.find(key) != result.end()) {
+ Ctx.Error() << to_upper(key) << " duplicate keys";
+ return false;
+ }
+
+ if (IsIn({"source_type", "installation", "location",
+ "auth_method", "service_account_id", "service_account_secret_name"}, key)) {
+ if (!StoreString(*value, result[key], Ctx, to_upper(key))) {
+ return false;
+ }
+ } else {
+ Ctx.Error() << "Unknown external data source setting: " << id.Name;
+ return false;
+ }
+ return true;
+}
+
+bool TSqlTranslation::ParseExternalDataSourceSettings(std::map<TString, TDeferredAtom>& result, const TRule_with_table_settings& settingsNode) {
+ const auto& firstEntry = settingsNode.GetRule_table_settings_entry3();
+ if (!StoreDataSourceSettingsEntry(IdEx(firstEntry.GetRule_an_id1(), *this), &firstEntry.GetRule_table_setting_value3(),
+ result)) {
+ return false;
+ }
+ for (auto& block : settingsNode.GetBlock4()) {
+ const auto& entry = block.GetRule_table_settings_entry2();
+ if (!StoreDataSourceSettingsEntry(IdEx(entry.GetRule_an_id1(), *this), &entry.GetRule_table_setting_value3(), result)) {
+ return false;
+ }
+ }
+ if (result.find("source_type") == result.end()) {
+ Ctx.Error() << "SOURCE_TYPE requires key";
+ return false;
+ }
+ if (!ValidateAuthMethod(result)) {
+ return false;
+ }
+ if (result.find("installation") == result.end() && result.find("location") == result.end()) {
+ Ctx.Error() << "INSTALLATION or LOCATION must be specified";
+ return false;
+ }
+ return true;
+}
+
+bool TSqlTranslation::ValidateAuthMethod(const std::map<TString, TDeferredAtom>& result) {
+ const static TSet<TStringBuf> allAuthFields{
+ "service_account_id",
+ "service_account_secret_name"
+ };
+ const static TMap<TStringBuf, TSet<TStringBuf>> authMethodFields{
+ {"NONE", {}},
+ {"SERVICE_ACCOUNT", {"service_account_id", "service_account_secret_name"}}
+ };
+ auto authMethodIt = result.find("auth_method");
+ if (authMethodIt == result.end() || authMethodIt->second.GetLiteral() == nullptr) {
+ Ctx.Error() << "AUTH_METHOD requires key";
+ return false;
+ }
+ const auto& authMethod = *authMethodIt->second.GetLiteral();
+ auto it = authMethodFields.find(authMethod);
+ if (it == authMethodFields.end()) {
+ Ctx.Error() << "Unknown AUTH_METHOD = " << authMethod;
+ return false;
+ }
+ const auto& currentAuthFields = it->second;
+ for (const auto& authField: allAuthFields) {
+ if (currentAuthFields.contains(authField) && !result.contains(TString{authField})) {
+ Ctx.Error() << to_upper(TString{authField}) << " requires key";
+ return false;
+ }
+ if (!currentAuthFields.contains(authField) && result.contains(TString{authField})) {
+ Ctx.Error() << to_upper(TString{authField}) << " key is not supported for AUTH_METHOD = " << authMethod;
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlTranslation::ValidateExternalTable(const TCreateTableParameters& params) {
+ if (params.TableType != ETableType::ExternalTable) {
+ return true;
+ }
+
+ if (!params.TableSettings.DataSourcePath) {
+ Ctx.Error() << "DATA_SOURCE requires key";
+ return false;
+ }
+
+ if (!params.TableSettings.Location) {
+ Ctx.Error() << "LOCATION requires key";
+ return false;
+ }
+
+ if (params.PkColumns) {
+ Ctx.Error() << "PRIMARY KEY is not supported for external table";
+ return false;
+ }
+
+ return true;
+}
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_translation.h b/ydb/library/yql/sql/v1/sql_translation.h
new file mode 100644
index 0000000000..3931edeed0
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_translation.h
@@ -0,0 +1,302 @@
+#pragma once
+#include "context.h"
+#include <ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1Parser.pb.h>
+#include <library/cpp/charset/ci_string.h>
+
+namespace NSQLTranslationV1 {
+
+using namespace NYql;
+using namespace NSQLv1Generated;
+
+inline TPosition GetPos(const TToken& token) {
+ return TPosition(token.GetColumn(), token.GetLine());
+}
+
+template <typename TToken>
+TIdentifier GetIdentifier(TTranslation& ctx, const TToken& node) {
+ auto token = node.GetToken1();
+ return TIdentifier(TPosition(token.GetColumn(), token.GetLine()), ctx.Identifier(token));
+}
+
+TIdentifier GetKeywordId(TTranslation& ctx, const TRule_keyword& node);
+
+inline TString GetKeyword(TTranslation& ctx, const TRule_keyword& node) {
+ return GetKeywordId(ctx, node).Name;
+}
+
+template <typename TRule>
+inline TString GetKeyword(TTranslation& ctx, const TRule& node) {
+ return GetIdentifier(ctx, node).Name;
+}
+
+inline TString Id(const TRule_identifier& node, TTranslation& ctx) {
+ // identifier: ID_PLAIN | ID_QUOTED;
+ return ctx.Identifier(node.GetToken1());
+}
+
+TString Id(const TRule_id& node, TTranslation& ctx);
+
+TString Id(const TRule_id_or_type& node, TTranslation& ctx);
+
+TString Id(const TRule_id_as_compat& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id_as_compat& node, TTranslation& ctx);
+
+TString Id(const TRule_id_schema& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id_or_type& node, TTranslation& ctx);
+
+std::pair<bool, TString> Id(const TRule_id_or_at& node, TTranslation& ctx);
+
+TString Id(const TRule_id_table& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id_table& node, TTranslation& ctx);
+
+TString Id(const TRule_id_table_or_type& node, TTranslation& ctx);
+
+TString Id(const TRule_id_expr& node, TTranslation& ctx);
+
+bool IsQuotedId(const TRule_id_expr& node, TTranslation& ctx);
+
+TString Id(const TRule_id_expr_in& node, TTranslation& ctx);
+
+TString Id(const TRule_id_window& node, TTranslation& ctx);
+
+TString Id(const TRule_id_without& node, TTranslation& ctx);
+
+TString Id(const TRule_id_hint& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id_schema& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id_expr& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id_window& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id_without& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id_hint& node, TTranslation& ctx);
+
+TString Id(const TRule_an_id_pure& node, TTranslation& ctx);
+
+template<typename TRule>
+inline TIdentifier IdEx(const TRule& node, TTranslation& ctx) {
+ const TString name(Id(node, ctx));
+ const TPosition pos(ctx.Context().Pos());
+ return TIdentifier(pos, name);
+}
+
+bool NamedNodeImpl(const TRule_bind_parameter& node, TString& name, TTranslation& ctx);
+
+TString OptIdPrefixAsStr(const TRule_opt_id_prefix& node, TTranslation& ctx, const TString& defaultStr = {});
+
+TString OptIdPrefixAsStr(const TRule_opt_id_prefix_or_type& node, TTranslation& ctx, const TString& defaultStr = {});
+
+void PureColumnListStr(const TRule_pure_column_list& node, TTranslation& ctx, TVector<TString>& outList);
+
+bool NamedNodeImpl(const TRule_opt_bind_parameter& node, TString& name, bool& isOptional, TTranslation& ctx);
+
+TDeferredAtom PureColumnOrNamed(const TRule_pure_column_or_named& node, TTranslation& ctx);
+
+bool PureColumnOrNamedListStr(const TRule_pure_column_or_named_list& node, TTranslation& ctx, TVector<TDeferredAtom>& outList);
+
+bool CreateTableIndex(const TRule_table_index& node, TTranslation& ctx, TVector<TIndexDescription>& indexes);
+
+std::pair<TString, TString> TableKeyImpl(const std::pair<bool, TString>& nameWithAt, TString view, TTranslation& ctx);
+
+std::pair<TString, TString> TableKeyImpl(const TRule_table_key& node, TTranslation& ctx, bool hasAt);
+
+/// \return optional prefix
+TString ColumnNameAsStr(TTranslation& ctx, const TRule_column_name& node, TString& id);
+
+TString ColumnNameAsSingleStr(TTranslation& ctx, const TRule_column_name& node);
+
+class TSqlQuery;
+
+struct TSymbolNameWithPos {
+ TString Name;
+ TPosition Pos;
+};
+
+class TSqlTranslation: public TTranslation {
+protected:
+ TSqlTranslation(TContext& ctx, NSQLTranslation::ESqlMode mode)
+ : TTranslation(ctx)
+ , Mode(mode)
+ {
+ /// \todo remove NSQLTranslation::ESqlMode params
+ YQL_ENSURE(ctx.Settings.Mode == mode);
+ }
+
+protected:
+ enum class EExpr {
+ Regular,
+ GroupBy,
+ SqlLambdaParams,
+ };
+ TNodePtr NamedExpr(const TRule_named_expr& node, EExpr exprMode = EExpr::Regular);
+ bool NamedExprList(const TRule_named_expr_list& node, TVector<TNodePtr>& exprs, EExpr exprMode = EExpr::Regular);
+ bool BindList(const TRule_bind_parameter_list& node, TVector<TSymbolNameWithPos>& bindNames);
+ bool ActionOrSubqueryArgs(const TRule_action_or_subquery_args& node, TVector<TSymbolNameWithPos>& bindNames, ui32& optionalArgsCount);
+ bool ModulePath(const TRule_module_path& node, TVector<TString>& path);
+ bool NamedBindList(const TRule_named_bind_parameter_list& node, TVector<TSymbolNameWithPos>& names,
+ TVector<TSymbolNameWithPos>& aliases);
+ bool NamedBindParam(const TRule_named_bind_parameter& node, TSymbolNameWithPos& name, TSymbolNameWithPos& alias);
+ TNodePtr NamedNode(const TRule_named_nodes_stmt& rule, TVector<TSymbolNameWithPos>& names);
+
+ bool ImportStatement(const TRule_import_stmt& stmt, TVector<TString>* namesPtr = nullptr);
+ TNodePtr DoStatement(const TRule_do_stmt& stmt, bool makeLambda, const TVector<TString>& args = {});
+ bool DefineActionOrSubqueryStatement(const TRule_define_action_or_subquery_stmt& stmt);
+ bool DefineActionOrSubqueryBody(TSqlQuery& query, TBlocks& blocks, const TRule_define_action_or_subquery_body& body);
+ TNodePtr IfStatement(const TRule_if_stmt& stmt);
+ TNodePtr ForStatement(const TRule_for_stmt& stmt);
+ TMaybe<TTableArg> TableArgImpl(const TRule_table_arg& node);
+ bool TableRefImpl(const TRule_table_ref& node, TTableRef& result, bool unorderedSubquery);
+ TMaybe<TSourcePtr> AsTableImpl(const TRule_table_ref& node);
+ bool ClusterExpr(const TRule_cluster_expr& node, bool allowWildcard, TString& service, TDeferredAtom& cluster);
+ bool ClusterExprOrBinding(const TRule_cluster_expr& node, TString& service, TDeferredAtom& cluster, bool& isBinding);
+ bool ApplyTableBinding(const TString& binding, TTableRef& tr, TTableHints& hints);
+
+ TMaybe<TColumnSchema> ColumnSchemaImpl(const TRule_column_schema& node);
+ bool CreateTableEntry(const TRule_create_table_entry& node, TCreateTableParameters& params);
+
+ bool FillFamilySettingsEntry(const TRule_family_settings_entry& settingNode, TFamilyEntry& family);
+ bool FillFamilySettings(const TRule_family_settings& settingsNode, TFamilyEntry& family);
+ bool CreateTableSettings(const TRule_with_table_settings& settingsNode, TCreateTableParameters& params);
+ bool StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, TTableSettings& settings,
+ ETableType tableType, bool alter, bool reset);
+ bool StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, TTableSettings& settings,
+ bool alter, bool reset);
+ bool StoreExternalTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, TTableSettings& settings);
+ bool StoreTableSettingsEntry(const TIdentifier& id, const TRule_table_setting_value& value, TTableSettings& settings, ETableType tableType, bool alter = false);
+ bool StoreDataSourceSettingsEntry(const TIdentifier& id, const TRule_table_setting_value* value, std::map<TString, TDeferredAtom>& result);
+ bool ResetTableSettingsEntry(const TIdentifier& id, TTableSettings& settings, ETableType tableType);
+
+ TIdentifier GetTopicConsumerId(const TRule_topic_consumer_ref& node);
+ bool CreateConsumerSettings(const TRule_topic_consumer_settings& settingsNode, TTopicConsumerSettings& settings);
+ bool CreateTopicSettings(const TRule_topic_settings& node, TTopicSettings& params);
+ bool CreateTopicConsumer(const TRule_topic_create_consumer_entry& node,
+ TVector<TTopicConsumerDescription>& consumers);
+ bool CreateTopicEntry(const TRule_create_topic_entry& node, TCreateTopicParameters& params);
+
+ bool AlterTopicConsumer(const TRule_alter_topic_alter_consumer& node,
+ THashMap<TString, TTopicConsumerDescription>& alterConsumers);
+
+ bool AlterTopicConsumerEntry(const TRule_alter_topic_alter_consumer_entry& node,
+ TTopicConsumerDescription& alterConsumer);
+
+
+ bool AlterTopicAction(const TRule_alter_topic_action& node, TAlterTopicParameters& params);
+
+
+ TNodePtr TypeSimple(const TRule_type_name_simple& node, bool onlyDataAllowed);
+ TNodePtr TypeDecimal(const TRule_type_name_decimal& node);
+ TNodePtr AddOptionals(const TNodePtr& node, size_t optionalCount);
+ TMaybe<std::pair<TVector<TNodePtr>, bool>> CallableArgList(const TRule_callable_arg_list& argList, bool namedArgsStarted);
+
+ TNodePtr IntegerOrBind(const TRule_integer_or_bind& node);
+ TNodePtr TypeNameTag(const TRule_type_name_tag& node);
+ TNodePtr TypeNodeOrBind(const TRule_type_name_or_bind& node);
+ TNodePtr SerialTypeNode(const TRule_type_name_or_bind& node);
+ TNodePtr TypeNode(const TRule_type_name& node);
+ TNodePtr TypeNode(const TRule_type_name_composite& node);
+ TNodePtr ValueConstructorLiteral(const TRule_value_constructor_literal& node);
+ TNodePtr ValueConstructor(const TRule_value_constructor& node);
+ TNodePtr ListLiteral(const TRule_list_literal& node);
+ TNodePtr DictLiteral(const TRule_dict_literal& node);
+ TNodePtr StructLiteral(const TRule_struct_literal& node);
+ TMaybe<TTableHints> TableHintsImpl(const TRule_table_hints& node);
+ bool TableHintImpl(const TRule_table_hint& rule, TTableHints& hints);
+ bool SimpleTableRefImpl(const TRule_simple_table_ref& node, TTableRef& result);
+ bool TopicRefImpl(const TRule_topic_ref& node, TTopicRef& result);
+ TWindowSpecificationPtr WindowSpecification(const TRule_window_specification_details& rule);
+ bool OrderByClause(const TRule_order_by_clause& node, TVector<TSortSpecificationPtr>& orderBy);
+ bool SortSpecificationList(const TRule_sort_specification_list& node, TVector<TSortSpecificationPtr>& sortSpecs);
+
+ bool IsDistinctOptSet(const TRule_opt_set_quantifier& node) const;
+ bool IsDistinctOptSet(const TRule_opt_set_quantifier& node, TPosition& distinctPos) const;
+
+ bool AddObjectFeature(std::map<TString, TDeferredAtom>& result, const TRule_object_feature& feature);
+ bool BindParameterClause(const TRule_bind_parameter& node, TDeferredAtom& result);
+ bool ObjectFeatureValueClause(const TRule_object_feature_value & node, TDeferredAtom & result);
+ bool ParseObjectFeatures(std::map<TString, TDeferredAtom> & result, const TRule_object_features & features);
+ bool ParseExternalDataSourceSettings(std::map<TString, TDeferredAtom> & result, const TRule_with_table_settings & settings);
+ bool RoleNameClause(const TRule_role_name& node, TDeferredAtom& result, bool allowSystemRoles);
+ bool RoleParameters(const TRule_create_user_option& node, TRoleParameters& result);
+ bool PermissionNameClause(const TRule_permission_name_target& node, TVector<TDeferredAtom>& result, bool withGrantOption);
+ bool PermissionNameClause(const TRule_permission_name& node, TDeferredAtom& result);
+ bool PermissionNameClause(const TRule_permission_id& node, TDeferredAtom& result);
+
+ bool ValidateAuthMethod(const std::map<TString, TDeferredAtom>& result);
+ bool ValidateExternalTable(const TCreateTableParameters& params);
+private:
+ bool SimpleTableRefCoreImpl(const TRule_simple_table_ref_core& node, TTableRef& result);
+ static bool IsValidFrameSettings(TContext& ctx, const TFrameSpecification& frameSpec, size_t sortSpecSize);
+ static TString FrameSettingsToString(EFrameSettings settings, bool isUnbounded);
+
+ bool FrameBound(const TRule_window_frame_bound& rule, TFrameBoundPtr& bound);
+ bool FrameClause(const TRule_window_frame_clause& node, TFrameSpecificationPtr& frameSpec, size_t sortSpecSize);
+ bool SortSpecification(const TRule_sort_specification& node, TVector<TSortSpecificationPtr>& sortSpecs);
+
+ bool ClusterExpr(const TRule_cluster_expr& node, bool allowWildcard, bool allowBinding, TString& service, TDeferredAtom& cluster, bool& isBinding);
+ bool StructLiteralItem(TVector<TNodePtr>& labels, const TRule_expr& label, TVector<TNodePtr>& values, const TRule_expr& value);
+protected:
+ NSQLTranslation::ESqlMode Mode;
+};
+
+TNodePtr LiteralNumber(TContext& ctx, const TRule_integer& node);
+
+template<typename TChar>
+struct TPatternComponent {
+ TBasicString<TChar> Prefix;
+ TBasicString<TChar> Suffix;
+ bool IsSimple = true;
+
+ void AppendPlain(TChar c) {
+ if (IsSimple) {
+ Prefix.push_back(c);
+ }
+ Suffix.push_back(c);
+ }
+
+ void AppendAnyChar() {
+ IsSimple = false;
+ Suffix.clear();
+ }
+};
+
+template<typename TChar>
+TVector<TPatternComponent<TChar>> SplitPattern(const TBasicString<TChar>& pattern, TMaybe<char> escape, bool& inEscape) {
+ inEscape = false;
+ TVector<TPatternComponent<TChar>> result;
+ TPatternComponent<TChar> current;
+ bool prevIsPercentChar = false;
+ for (const TChar c : pattern) {
+ if (inEscape) {
+ current.AppendPlain(c);
+ inEscape = false;
+ prevIsPercentChar = false;
+ } else if (escape && c == static_cast<TChar>(*escape)) {
+ inEscape = true;
+ } else if (c == '%') {
+ if (!prevIsPercentChar) {
+ result.push_back(std::move(current));
+ }
+ current = {};
+ prevIsPercentChar = true;
+ } else if (c == '_') {
+ current.AppendAnyChar();
+ prevIsPercentChar = false;
+ } else {
+ current.AppendPlain(c);
+ prevIsPercentChar = false;
+ }
+ }
+ result.push_back(std::move(current));
+ return result;
+}
+
+bool ParseNumbers(TContext& ctx, const TString& strOrig, ui64& value, TString& suffix);
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_ut.cpp b/ydb/library/yql/sql/v1/sql_ut.cpp
index 0667828b58..0718c3c64c 100644
--- a/ydb/library/yql/sql/v1/sql_ut.cpp
+++ b/ydb/library/yql/sql/v1/sql_ut.cpp
@@ -5066,6 +5066,32 @@ Y_UNIT_TEST_SUITE(ExternalDataSource) {
UNIT_ASSERT_VALUES_EQUAL(1, elementStat["Write"]);
}
+ Y_UNIT_TEST(CreateExternalDataSourceWithServiceAccount) {
+ NYql::TAstParseResult res = SqlToYql(R"(
+ USE plato;
+ CREATE EXTERNAL DATA SOURCE MyDataSource WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="my-bucket",
+ AUTH_METHOD="SERVICE_ACCOUNT",
+ SERVICE_ACCOUNT_ID="sa",
+ SERVICE_ACCOUNT_SECRET_NAME="secret_name"
+ );
+ )");
+ UNIT_ASSERT(res.Root);
+
+ TVerifyLineFunc verifyLine = [](const TString& word, const TString& line) {
+ if (word == "Write") {
+ UNIT_ASSERT_STRING_CONTAINS(line, R"#('('('"auth_method" '"SERVICE_ACCOUNT") '('"location" '"my-bucket") '('"service_account_id" '"sa") '('"service_account_secret_name" '"secret_name") '('"source_type" '"ObjectStorage"))#");
+ UNIT_ASSERT_VALUES_UNEQUAL(TString::npos, line.find("createObject"));
+ }
+ };
+
+ TWordCountHive elementStat = { {TString("Write"), 0} };
+ VerifyProgram(res, elementStat, verifyLine);
+
+ UNIT_ASSERT_VALUES_EQUAL(1, elementStat["Write"]);
+ }
+
Y_UNIT_TEST(CreateExternalDataSourceWithTablePrefix) {
NYql::TAstParseResult res = SqlToYql(R"(
USE plato;
@@ -5113,7 +5139,6 @@ Y_UNIT_TEST_SUITE(ExternalDataSource) {
);
)" , "<main>:5:33: Error: INSTALLATION or LOCATION must be specified\n");
-
ExpectFailWithError(R"(
USE plato;
CREATE EXTERNAL DATA SOURCE MyDataSource WITH (
@@ -5131,6 +5156,44 @@ Y_UNIT_TEST_SUITE(ExternalDataSource) {
OTHER="VALUE"
);
)" , "<main>:7:21: Error: Unknown external data source setting: OTHER\n");
+
+ ExpectFailWithError(R"(
+ USE plato;
+ CREATE EXTERNAL DATA SOURCE MyDataSource WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="my-bucket",
+ AUTH_METHOD="NONE1"
+ );
+ )" , "<main>:6:33: Error: Unknown AUTH_METHOD = NONE1\n");
+
+ ExpectFailWithError(R"(
+ USE plato;
+ CREATE EXTERNAL DATA SOURCE MyDataSource WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="my-bucket",
+ AUTH_METHOD="SERVICE_ACCOUNT"
+ );
+ )" , "<main>:6:33: Error: SERVICE_ACCOUNT_ID requires key\n");
+
+ ExpectFailWithError(R"(
+ USE plato;
+ CREATE EXTERNAL DATA SOURCE MyDataSource WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="my-bucket",
+ AUTH_METHOD="SERVICE_ACCOUNT",
+ SERVICE_ACCOUNT_ID="s1"
+ );
+ )" , "<main>:7:40: Error: SERVICE_ACCOUNT_SECRET_NAME requires key\n");
+
+ ExpectFailWithError(R"(
+ USE plato;
+ CREATE EXTERNAL DATA SOURCE MyDataSource WITH (
+ SOURCE_TYPE="ObjectStorage",
+ LOCATION="my-bucket",
+ AUTH_METHOD="SERVICE_ACCOUNT",
+ SERVICE_ACCOUNT_SECRET_NAME="s1"
+ );
+ )" , "<main>:7:49: Error: SERVICE_ACCOUNT_ID requires key\n");
}
Y_UNIT_TEST(DropExternalDataSourceWithTablePrefix) {
diff --git a/ydb/library/yql/sql/v1/sql_values.cpp b/ydb/library/yql/sql/v1/sql_values.cpp
new file mode 100644
index 0000000000..4b31cb0884
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_values.cpp
@@ -0,0 +1,133 @@
+#include "sql_values.h"
+#include "sql_group_by.h"
+#include "sql_query.h"
+#include "sql_select.h"
+#include "sql_expression.h"
+#include "source.h"
+
+namespace NSQLTranslationV1 {
+
+using namespace NSQLv1Generated;
+
+TSourcePtr TSqlValues::Build(const TRule_values_stmt& node, TPosition& valuesPos, const TVector<TString>& derivedColumns, TPosition derivedColumnsPos) {
+ Token(node.GetToken1());
+ valuesPos = Ctx.Pos();
+
+ TVector<TVector<TNodePtr>> rows;
+ const auto& rowList = node.GetRule_values_source_row_list2();
+ if (!BuildRows(rowList, rows)) {
+ return nullptr;
+ }
+
+ YQL_ENSURE(!rows.empty());
+ const size_t columnsCount = rows.back().size();
+ if (derivedColumns.size() > columnsCount) {
+ Ctx.Error(derivedColumnsPos) << "Derived column list size exceeds column count in VALUES";
+ return nullptr;
+ }
+
+ auto columns = derivedColumns;
+ if (Ctx.WarnUnnamedColumns && columns.size() < columnsCount) {
+ Ctx.Warning(valuesPos, TIssuesIds::YQL_UNNAMED_COLUMN)
+ << "Autogenerated column names column" << columns.size() << "...column" << columnsCount - 1 << " will be used here";
+ }
+
+ while (columns.size() < columnsCount) {
+ columns.push_back(TStringBuilder() << "column" << columns.size());
+ }
+
+ TVector<TNodePtr> labels;
+ for (size_t i = 0; i < columnsCount; ++i) {
+ labels.push_back(BuildQuotedAtom(derivedColumnsPos, columns[i]));
+ }
+
+ TVector<TNodePtr> items;
+ for (auto& row : rows) {
+ YQL_ENSURE(!row.empty());
+ YQL_ENSURE(row.size() == columnsCount);
+ items.push_back(BuildOrderedStructure(row.front()->GetPos(), row, labels));
+ }
+ auto list = new TCallNodeImpl(valuesPos, "AsList", items);
+ list = new TCallNodeImpl(valuesPos, "PersistableRepr", { list });
+ list = new TCallNodeImpl(valuesPos, "AssumeColumnOrder", { list, BuildTuple(valuesPos, labels) });
+ auto result = BuildNodeSource(valuesPos, list, false);
+ result->AllColumns();
+ return result;
+}
+
+bool TSqlValues::BuildRows(const TRule_values_source_row_list& node, TVector<TVector<TNodePtr>>& rows) {
+ rows = TVector<TVector<TNodePtr>> {{}};
+
+
+ if (!BuildRow(node.GetRule_values_source_row1(), rows.back())) {
+ return false;
+ }
+
+ const size_t rowSize = rows.back().size();
+
+ for (const auto& valuesSourceRow: node.GetBlock2()) {
+ rows.push_back({});
+ if (!BuildRow(valuesSourceRow.GetRule_values_source_row2(), rows.back())) {
+ return false;
+ }
+ if (rows.back().size() != rowSize) {
+ Token(valuesSourceRow.GetRule_values_source_row2().GetToken1());
+ Error() << "All VALUES items should have same size: expecting " << rowSize << ", got " << rows.back().size();
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TSqlValues::BuildRow(const TRule_values_source_row& inRow, TVector<TNodePtr>& outRow) {
+ TSqlExpression sqlExpr(Ctx, Mode);
+ return ExprList(sqlExpr, outRow, inRow.GetRule_expr_list2());
+}
+TSourcePtr TSqlIntoValues::Build(const TRule_into_values_source& node, const TString& operationName) {
+ switch (node.Alt_case()) {
+ case TRule_into_values_source::kAltIntoValuesSource1: {
+ auto alt = node.GetAlt_into_values_source1();
+ TVector<TString> columnsHint;
+ if (alt.HasBlock1()) {
+ PureColumnListStr(alt.GetBlock1().GetRule_pure_column_list1(), *this, columnsHint);
+ }
+ return ValuesSource(alt.GetRule_values_source2(), columnsHint, operationName);
+ }
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "DefaultValuesOrOther");
+ AltNotImplemented("into_values_source", node);
+ return nullptr;
+ }
+}
+
+TSourcePtr TSqlIntoValues::ValuesSource(const TRule_values_source& node, TVector<TString>& columnsHint,
+ const TString& operationName)
+{
+ Ctx.IncrementMonCounter("sql_features", "ValuesSource");
+ TPosition pos(Ctx.Pos());
+ switch (node.Alt_case()) {
+ case TRule_values_source::kAltValuesSource1: {
+ TVector<TVector<TNodePtr>> rows {{}};
+ const auto& rowList = node.GetAlt_values_source1().GetRule_values_stmt1().GetRule_values_source_row_list2();
+ if (!BuildRows(rowList, rows)) {
+ return nullptr;
+ }
+ return BuildWriteValues(pos, operationName, columnsHint, rows);
+ }
+ case TRule_values_source::kAltValuesSource2: {
+ TSqlSelect select(Ctx, Mode);
+ TPosition selectPos;
+ auto source = select.Build(node.GetAlt_values_source2().GetRule_select_stmt1(), selectPos);
+ if (!source) {
+ return nullptr;
+ }
+ return BuildWriteValues(pos, "UPDATE", columnsHint, std::move(source));
+ }
+ default:
+ Ctx.IncrementMonCounter("sql_errors", "UnknownValuesSource");
+ AltNotImplemented("values_source", node);
+ return nullptr;
+ }
+}
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/sql_values.h b/ydb/library/yql/sql/v1/sql_values.h
new file mode 100644
index 0000000000..aaae53490f
--- /dev/null
+++ b/ydb/library/yql/sql/v1/sql_values.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include "sql_translation.h"
+#include <ydb/library/yql/parser/proto_ast/gen/v1_proto/SQLv1Parser.pb.h>
+
+namespace NSQLTranslationV1 {
+
+using namespace NSQLv1Generated;
+
+class TSqlValues: public TSqlTranslation {
+public:
+ TSqlValues(TContext& ctx, NSQLTranslation::ESqlMode mode)
+ : TSqlTranslation(ctx, mode)
+ {
+ }
+
+ TSourcePtr Build(const TRule_values_stmt& node, TPosition& valuesPos, const TVector<TString>& derivedColumns = {}, TPosition derivedColumnsPos = TPosition());
+protected:
+ bool BuildRows(const TRule_values_source_row_list& node, TVector<TVector<TNodePtr>>& rows);
+
+private:
+ bool BuildRow(const TRule_values_source_row& inRow, TVector<TNodePtr>& outRow);
+};
+
+class TSqlIntoValues: public TSqlValues {
+public:
+ TSqlIntoValues(TContext& ctx, NSQLTranslation::ESqlMode mode)
+ : TSqlValues(ctx, mode)
+ {
+ }
+
+ TSourcePtr Build(const TRule_into_values_source& node, const TString& operationName);
+
+private:
+ TSourcePtr ValuesSource(const TRule_values_source& node, TVector<TString>& columnsHint,
+ const TString& operationName);
+};
+
+} // namespace NSQLTranslationV1
diff --git a/ydb/library/yql/sql/v1/ya.make b/ydb/library/yql/sql/v1/ya.make
index aeab18c5b9..39aaf6c45a 100644
--- a/ydb/library/yql/sql/v1/ya.make
+++ b/ydb/library/yql/sql/v1/ya.make
@@ -32,7 +32,16 @@ SRCS(
list_builtin.cpp
node.cpp
select.cpp
+ source.cpp
sql.cpp
+ sql_call_expr.cpp
+ sql_expression.cpp
+ sql_group_by.cpp
+ sql_into_tables.cpp
+ sql_query.cpp
+ sql_select.cpp
+ sql_translation.cpp
+ sql_values.cpp
query.cpp
object_processing.cpp
)
diff --git a/ydb/public/api/grpc/ydb_query_v1.proto b/ydb/public/api/grpc/ydb_query_v1.proto
index f846b54fb0..cdf6054a40 100644
--- a/ydb/public/api/grpc/ydb_query_v1.proto
+++ b/ydb/public/api/grpc/ydb_query_v1.proto
@@ -54,13 +54,4 @@ service QueryService {
// For persistent scripts, you can fetch results in specific position of specific result set using
// position instead of fetch_token.
rpc FetchScriptResults(Query.FetchScriptResultsRequest) returns (Query.FetchScriptResultsResponse);
-
- // Persistently save script content in DB.
- rpc SaveScript(Query.SaveScriptRequest) returns (Query.SaveScriptResponse);
-
- // List saved scripts in DB.
- rpc ListScripts(Query.ListScriptsRequest) returns (Query.ListScriptsResponse);
-
- // Delete saved script by id.
- rpc DeleteScript(Query.DeleteScriptRequest) returns (Query.DeleteScriptResponse);
}
diff --git a/ydb/public/api/protos/draft/fq.proto b/ydb/public/api/protos/draft/fq.proto
index 2d7cba7888..1a069d6635 100644
--- a/ydb/public/api/protos/draft/fq.proto
+++ b/ydb/public/api/protos/draft/fq.proto
@@ -474,6 +474,18 @@ message ObjectStorageConnection {
IamAuth auth = 2;
}
+message PostgreSQLCluster {
+ string database_id = 1 [(Ydb.length).le = 1024];
+ string login = 2 [(Ydb.length).le = 1024, (Ydb.sensitive) = true];
+ string password = 3 [(Ydb.length).le = 1024, (Ydb.sensitive) = true];
+ IamAuth auth = 4;
+
+ // Just for the sake of simmetry with existing ClickHouse code
+ string host = 5 [(Ydb.length).le = 1024];
+ int32 port = 6 [(Ydb.value) = "[0; 65536]"];
+ bool secure = 7;
+}
+
message ConnectionSetting {
enum ConnectionType {
CONNECTION_TYPE_UNSPECIFIED = 0;
@@ -482,6 +494,7 @@ message ConnectionSetting {
DATA_STREAMS = 3;
OBJECT_STORAGE = 4;
MONITORING = 5;
+ POSTGRESQL_CLUSTER = 6;
}
oneof connection {
@@ -490,6 +503,7 @@ message ConnectionSetting {
DataStreams data_streams = 3;
ObjectStorageConnection object_storage = 4;
Monitoring monitoring = 5;
+ PostgreSQLCluster postgresql_cluster = 6;
}
}
diff --git a/ydb/public/api/protos/ydb_query.proto b/ydb/public/api/protos/ydb_query.proto
index 4431c4a9eb..2ba8e24942 100644
--- a/ydb/public/api/protos/ydb_query.proto
+++ b/ydb/public/api/protos/ydb_query.proto
@@ -171,9 +171,6 @@ message ExecuteQueryRequest {
message ResultSetMeta {
repeated Ydb.Column columns = 1;
-
- // TODO: Remove.
- bool truncated = 2;
}
message ExecuteQueryResponsePart {
@@ -185,46 +182,24 @@ message ExecuteQueryResponsePart {
// Result set part
Ydb.ResultSet result_set = 4;
- reserved 5; // tx_meta
- reserved 6; // result_sets_meta
-
// Execution statistics (last part only)
- Ydb.TableStats.QueryStats exec_stats = 7;
-}
-
-message VersionedScriptId {
- // Script id
- string id = 1 [(Ydb.length).le = 1024];
-
- // Script revision.
- // If specified in method parameters, the real script revision
- // before modification will be compared with this revision
- // and request will be cancelled if they don't match.
- int64 revision = 2 [(Ydb.value) = ">= 0"];
+ Ydb.TableStats.QueryStats exec_stats = 5;
}
message ExecuteScriptRequest {
Ydb.Operations.OperationParams operation_params = 1;
- // Session identifier. If empty, implicit session is created for script execution.
- string session_id = 2 [(Ydb.length).le = 1024];
- ExecMode exec_mode = 3;
+ ExecMode exec_mode = 2;
- oneof script {
- QueryContent script_content = 4;
- VersionedScriptId script_id = 5;
- }
+ QueryContent script_content = 3;
- map<string, TypedValue> parameters = 6;
+ map<string, TypedValue> parameters = 4;
- bool persistent = 7; // TODO: Persistent execution / persistent results?
- string execution_name = 8 [(Ydb.length).le = 1024];
- StatsMode stats_mode = 9;
- map<string, string> attributes = 10 [(map_key).length.range = {min: 1, max: 100}, (length).range = {min: 1, max: 4096}];
+ StatsMode stats_mode = 5;
// After script execution operation finishes, TTL will start counting.
// After this TTL the results will be removed from database.
- google.protobuf.Duration results_ttl = 11;
+ google.protobuf.Duration results_ttl = 6;
}
enum ExecStatus {
@@ -241,25 +216,20 @@ message ExecuteScriptMetadata {
ExecStatus exec_status = 2;
QueryContent script_content = 3;
- VersionedScriptId script_id = 4;
- map<string, string> attributes = 5 [(map_key).length.range = {min: 1, max: 100}, (length).range = {min: 1, max: 4096}];
- repeated ResultSetMeta result_sets_meta = 6;
+ repeated ResultSetMeta result_sets_meta = 4;
- ExecMode exec_mode = 7;
+ ExecMode exec_mode = 5;
// Execution statistics
- Ydb.TableStats.QueryStats exec_stats = 8;
+ Ydb.TableStats.QueryStats exec_stats = 6;
}
message FetchScriptResultsRequest {
- oneof execution {
- string execution_id = 1 [(Ydb.length).le = 1024];
- string operation_id = 5 [(Ydb.length).le = 1024];
- }
+ string operation_id = 1 [(Ydb.length).le = 1024];
- int64 result_set_id = 6;
+ int64 result_set_index = 2;
- string fetch_token = 2 [(Ydb.length).le = 1024];
+ string fetch_token = 3 [(Ydb.length).le = 1024];
int64 rows_limit = 4 [(Ydb.value) = ">= 0"];
}
@@ -274,40 +244,5 @@ message FetchScriptResultsResponse {
}
message Script {
- VersionedScriptId script_id = 1;
- QueryContent script_content = 2;
-}
-
-message SaveScriptRequest {
- VersionedScriptId script_id = 1; // If specified, set new content to existing script
- QueryContent script_content = 2;
-}
-
-message SaveScriptResponse {
- StatusIds.StatusCode status = 1;
- repeated Ydb.Issue.IssueMessage issues = 2;
-
- VersionedScriptId script_id = 3;
-}
-
-message ListScriptsRequest {
- string page_token = 1 [(Ydb.length).le = 1024];
- int64 page_size = 2 [(Ydb.value) = ">= 0"];
-}
-
-message ListScriptsResponse {
- StatusIds.StatusCode status = 1;
- repeated Ydb.Issue.IssueMessage issues = 2;
-
- repeated Script scripts = 3;
- string next_page_token = 4 [(Ydb.length).le = 1024];
-}
-
-message DeleteScriptRequest {
- VersionedScriptId script_id = 1;
-}
-
-message DeleteScriptResponse {
- StatusIds.StatusCode status = 1;
- repeated Ydb.Issue.IssueMessage issues = 2;
+ QueryContent script_content = 1;
}
diff --git a/ydb/public/api/protos/ydb_topic.proto b/ydb/public/api/protos/ydb_topic.proto
index 0cea5ae527..e9fbac6556 100644
--- a/ydb/public/api/protos/ydb_topic.proto
+++ b/ydb/public/api/protos/ydb_topic.proto
@@ -49,6 +49,10 @@ message UpdateTokenRequest {
message UpdateTokenResponse {
}
+message MetadataItem {
+ string key = 1;
+ bytes value = 2;
+}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// StreamWrite
@@ -152,7 +156,7 @@ message StreamWriteMessage {
int64 partition_id = 6;
}
// Message metadata. Overall size is limited to 4096 symbols (all keys and values combined).
- map<string, string> message_meta = 7;
+ repeated MetadataItem metadata_items = 7 [(Ydb.size).le = 1000];
}
}
@@ -360,7 +364,7 @@ message StreamReadMessage {
// Filled if message_group_id was set on message write.
string message_group_id = 7;
- map<string, string> message_meta = 8;
+ repeated MetadataItem metadata_items = 8;
}
diff --git a/ydb/public/lib/CMakeLists.txt b/ydb/public/lib/CMakeLists.txt
index 2a991f3fa0..5a2d17a08c 100644
--- a/ydb/public/lib/CMakeLists.txt
+++ b/ydb/public/lib/CMakeLists.txt
@@ -15,6 +15,7 @@ add_subdirectory(json_value)
add_subdirectory(jwt)
add_subdirectory(operation_id)
add_subdirectory(scheme_types)
+add_subdirectory(ut_helpers)
add_subdirectory(validation)
add_subdirectory(value)
add_subdirectory(ydb_cli)
diff --git a/ydb/public/lib/ut_helpers/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/ut_helpers/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..82277a8803
--- /dev/null
+++ b/ydb/public/lib/ut_helpers/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-ut_helpers)
+target_link_libraries(public-lib-ut_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ api-grpc-draft
+ api-protos
+ api-protos-out
+ cpp-grpc-client
+)
+target_sources(public-lib-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ut_helpers/ut_helpers_query.cpp
+)
diff --git a/ydb/public/lib/ut_helpers/CMakeLists.linux-aarch64.txt b/ydb/public/lib/ut_helpers/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..ecb1009305
--- /dev/null
+++ b/ydb/public/lib/ut_helpers/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-ut_helpers)
+target_link_libraries(public-lib-ut_helpers PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ api-grpc-draft
+ api-protos
+ api-protos-out
+ cpp-grpc-client
+)
+target_sources(public-lib-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ut_helpers/ut_helpers_query.cpp
+)
diff --git a/ydb/public/lib/ut_helpers/CMakeLists.linux-x86_64.txt b/ydb/public/lib/ut_helpers/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..ecb1009305
--- /dev/null
+++ b/ydb/public/lib/ut_helpers/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-ut_helpers)
+target_link_libraries(public-lib-ut_helpers PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ api-grpc-draft
+ api-protos
+ api-protos-out
+ cpp-grpc-client
+)
+target_sources(public-lib-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ut_helpers/ut_helpers_query.cpp
+)
diff --git a/ydb/public/lib/ut_helpers/CMakeLists.txt b/ydb/public/lib/ut_helpers/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/public/lib/ut_helpers/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/public/lib/ut_helpers/CMakeLists.windows-x86_64.txt b/ydb/public/lib/ut_helpers/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..82277a8803
--- /dev/null
+++ b/ydb/public/lib/ut_helpers/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(public-lib-ut_helpers)
+target_link_libraries(public-lib-ut_helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ api-grpc
+ api-grpc-draft
+ api-protos
+ api-protos-out
+ cpp-grpc-client
+)
+target_sources(public-lib-ut_helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/lib/ut_helpers/ut_helpers_query.cpp
+)
diff --git a/ydb/public/lib/ut_helpers/ut_helpers_query.cpp b/ydb/public/lib/ut_helpers/ut_helpers_query.cpp
new file mode 100644
index 0000000000..6f45be7e08
--- /dev/null
+++ b/ydb/public/lib/ut_helpers/ut_helpers_query.cpp
@@ -0,0 +1,112 @@
+#include "ut_helpers_query.h"
+
+#include <ydb/public/api/grpc/ydb_query_v1.grpc.pb.h>
+#include <library/cpp/grpc/client/grpc_common.h>
+#include <library/cpp/grpc/client/grpc_client_low.h>
+#include <library/cpp/threading/future/future.h>
+
+#include <util/generic/string.h>
+
+#include <library/cpp/testing/unittest/registar.h>
+
+using namespace NGrpc;
+
+namespace NTestHelpers {
+
+TString CreateQuerySession(const TGRpcClientConfig& clientConfig) {
+ NGrpc::TGRpcClientLow clientLow;
+ auto connection = clientLow.CreateGRpcServiceConnection<Ydb::Query::V1::QueryService>(clientConfig);
+
+ Ydb::Query::CreateSessionRequest request;
+ TString sessionId;
+
+ NGrpc::TResponseCallback<Ydb::Query::CreateSessionResponse> responseCb =
+ [&sessionId](NGrpc::TGrpcStatus&& grpcStatus, Ydb::Query::CreateSessionResponse&& response) -> void {
+ UNIT_ASSERT(!grpcStatus.InternalError);
+ UNIT_ASSERT_C(grpcStatus.GRpcStatusCode == 0, grpcStatus.Msg + " " + grpcStatus.Details);
+ UNIT_ASSERT_VALUES_EQUAL(response.status(), Ydb::StatusIds::SUCCESS);
+ UNIT_ASSERT(response.session_id() != "");
+ sessionId = response.session_id();
+ };
+
+ connection->DoRequest(request, std::move(responseCb), &Ydb::Query::V1::QueryService::Stub::AsyncCreateSession);
+
+ return sessionId;
+}
+
+NGrpc::IStreamRequestCtrl::TPtr CheckAttach(NGrpc::TGRpcClientLow& clientLow, const TGRpcClientConfig& clientConfig,
+ const TString& id, int code, bool& allDoneOk)
+{
+ const Ydb::StatusIds::StatusCode expected = static_cast<Ydb::StatusIds::StatusCode>(code);
+ auto connection = clientLow.CreateGRpcServiceConnection<Ydb::Query::V1::QueryService>(clientConfig);
+
+ Ydb::Query::AttachSessionRequest request;
+ request.set_session_id(id);
+
+ using TProcessor = typename NGrpc::IStreamRequestReadProcessor<Ydb::Query::SessionState>::TPtr;
+ auto promise = NThreading::NewPromise<TProcessor>();
+ auto cb = [&allDoneOk, promise, expected](TGrpcStatus grpcStatus, TProcessor processor) mutable {
+ UNIT_ASSERT(grpcStatus.GRpcStatusCode == grpc::StatusCode::OK);
+ auto resp = std::make_shared<Ydb::Query::SessionState>();
+ processor->Read(resp.get(), [&allDoneOk, resp, promise, processor, expected](TGrpcStatus grpcStatus) mutable {
+ UNIT_ASSERT(grpcStatus.GRpcStatusCode == grpc::StatusCode::OK);
+ allDoneOk &= (resp->status() == expected);
+ if (!allDoneOk) {
+ Cerr << "Expected status: " << expected << ", got response: " << resp->DebugString() << Endl;
+ }
+ promise.SetValue(processor);
+ });
+ };
+
+ connection->DoStreamRequest<Ydb::Query::AttachSessionRequest, Ydb::Query::SessionState>(
+ request,
+ cb,
+ &Ydb::Query::V1::QueryService::Stub::AsyncAttachSession);
+
+ return promise.GetFuture().GetValueSync();
+}
+
+void CheckAttach(const TGRpcClientConfig& clientConfig, const TString& id, int expected, bool& allDoneOk) {
+ NGrpc::TGRpcClientLow clientLow;
+ CheckAttach(clientLow, clientConfig, id, expected, allDoneOk)->Cancel();
+}
+
+void CheckDelete(const TGRpcClientConfig& clientConfig, const TString& id, int expected, bool& allDoneOk) {
+ NGrpc::TGRpcClientLow clientLow;
+ auto connection = clientLow.CreateGRpcServiceConnection<Ydb::Query::V1::QueryService>(clientConfig);
+
+ Ydb::Query::DeleteSessionRequest request;
+ request.set_session_id(id);
+
+ NGrpc::TResponseCallback<Ydb::Query::DeleteSessionResponse> responseCb =
+ [&allDoneOk, expected](NGrpc::TGrpcStatus&& grpcStatus, Ydb::Query::DeleteSessionResponse&& response) -> void {
+ UNIT_ASSERT(!grpcStatus.InternalError);
+ UNIT_ASSERT_C(grpcStatus.GRpcStatusCode == 0, grpcStatus.Msg + " " + grpcStatus.Details);
+ allDoneOk &= (response.status() == expected);
+ if (!allDoneOk) {
+ Cerr << "Expected status: " << expected << ", got response: " << response.DebugString() << Endl;
+ }
+ };
+
+ connection->DoRequest(request, std::move(responseCb), &Ydb::Query::V1::QueryService::Stub::AsyncDeleteSession);
+}
+
+void EnsureSessionClosed(NGrpc::IStreamRequestCtrl::TPtr p, int expected, bool& allDoneOk) {
+ using TProcessor = typename NGrpc::IStreamRequestReadProcessor<Ydb::Query::SessionState>::TPtr;
+ TProcessor processor = dynamic_cast<NGrpc::IStreamRequestReadProcessor<Ydb::Query::SessionState>*>(p.Get());
+ UNIT_ASSERT(processor);
+
+ auto promise = NThreading::NewPromise<void>();
+ auto resp = std::make_shared<Ydb::Query::SessionState>();
+ processor->Read(resp.get(), [&allDoneOk, resp, promise, expected](TGrpcStatus grpcStatus) mutable {
+ UNIT_ASSERT(grpcStatus.GRpcStatusCode == grpc::StatusCode::OK);
+ allDoneOk &= (resp->status() == expected);
+ if (!allDoneOk) {
+ Cerr << "Expected status: " << expected << ", got response: " << resp->DebugString() << Endl;
+ }
+ promise.SetValue();
+ });
+ promise.GetFuture().Wait();
+}
+
+}
diff --git a/ydb/public/lib/ut_helpers/ut_helpers_query.h b/ydb/public/lib/ut_helpers/ut_helpers_query.h
new file mode 100644
index 0000000000..ce78e6b24c
--- /dev/null
+++ b/ydb/public/lib/ut_helpers/ut_helpers_query.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <util/generic/fwd.h>
+#include <library/cpp/grpc/client/grpc_client_low.h>
+
+namespace NTestHelpers {
+
+TString CreateQuerySession(const NGrpc::TGRpcClientConfig& clientConfig);
+
+NGrpc::IStreamRequestCtrl::TPtr CheckAttach(NGrpc::TGRpcClientLow& clientLow, const NGrpc::TGRpcClientConfig& clientConfig,
+ const TString& id, int code, bool& allDoneOk);
+
+void CheckAttach(const NGrpc::TGRpcClientConfig& clientConfig, const TString& id, int expected, bool& allDoneOk);
+void CheckDelete(const NGrpc::TGRpcClientConfig& clientConfig, const TString& id, int expected, bool& allDoneOk);
+void EnsureSessionClosed(NGrpc::IStreamRequestCtrl::TPtr p, int expected, bool& allDone);
+
+}
diff --git a/ydb/public/lib/ut_helpers/ya.make b/ydb/public/lib/ut_helpers/ya.make
new file mode 100644
index 0000000000..9047fbebd1
--- /dev/null
+++ b/ydb/public/lib/ut_helpers/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ ut_helpers_query.cpp
+)
+
+PEERDIR(
+ ydb/public/api/grpc
+ ydb/public/api/grpc/draft
+ ydb/public/api/protos
+ ydb/public/api/protos/out
+ library/cpp/grpc/client
+)
+
+END()
+
diff --git a/ydb/public/sdk/cpp/client/CMakeLists.txt b/ydb/public/sdk/cpp/client/CMakeLists.txt
index d43922488e..808d118822 100644
--- a/ydb/public/sdk/cpp/client/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/CMakeLists.txt
@@ -8,6 +8,7 @@
add_subdirectory(draft)
add_subdirectory(extensions)
+add_subdirectory(helpers)
add_subdirectory(iam)
add_subdirectory(iam_private)
add_subdirectory(impl)
diff --git a/ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..75ca665dbd
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/helpers/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-helpers)
+target_link_libraries(cpp-client-helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-iam
+ client-ydb_types-credentials
+ public-issue-protos
+)
+target_sources(cpp-client-helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/helpers/helpers.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..ef82cd84d1
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-helpers)
+target_link_libraries(cpp-client-helpers PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-iam
+ client-ydb_types-credentials
+ public-issue-protos
+)
+target_sources(cpp-client-helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/helpers/helpers.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..ef82cd84d1
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/helpers/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-helpers)
+target_link_libraries(cpp-client-helpers PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-iam
+ client-ydb_types-credentials
+ public-issue-protos
+)
+target_sources(cpp-client-helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/helpers/helpers.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/helpers/CMakeLists.txt b/ydb/public/sdk/cpp/client/helpers/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/helpers/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/public/sdk/cpp/client/helpers/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/helpers/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..75ca665dbd
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/helpers/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(cpp-client-helpers)
+target_link_libraries(cpp-client-helpers PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-client-iam
+ client-ydb_types-credentials
+ public-issue-protos
+)
+target_sources(cpp-client-helpers PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/helpers/helpers.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/helpers/helpers.cpp b/ydb/public/sdk/cpp/client/helpers/helpers.cpp
new file mode 100644
index 0000000000..541b05fb3a
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/helpers/helpers.cpp
@@ -0,0 +1,68 @@
+#include "helpers.h"
+
+#include <ydb/public/sdk/cpp/client/iam/iam.h>
+#include <ydb/public/sdk/cpp/client/resources/ydb_ca.h>
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/common/parser.h>
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/common/getenv.h>
+#include <util/stream/file.h>
+
+namespace NYdb {
+
+TDriverConfig CreateFromEnvironment(const TStringType& connectionString) {
+ TDriverConfig driverConfig;
+ if (connectionString != "") {
+ auto connectionInfo = ParseConnectionString(connectionString);
+ driverConfig.SetEndpoint(connectionInfo.Endpoint);
+ driverConfig.SetDatabase(connectionInfo.Database);
+ if (connectionInfo.EnableSsl) {
+ TStringType rootCertsFile = GetStrFromEnv("YDB_SSL_ROOT_CERTIFICATES_FILE", "");
+ TStringType rootCerts = GetRootCertificate();
+ if (rootCertsFile != "") {
+ TFileInput in(rootCertsFile);
+ rootCerts += in.ReadAll();
+ }
+ driverConfig.UseSecureConnection(rootCerts);
+ }
+ }
+
+ TStringType saKeyFile = GetStrFromEnv("YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS", "");
+ if (!saKeyFile.empty()) {
+ driverConfig.SetCredentialsProviderFactory(
+ CreateIamJwtFileCredentialsProviderFactory({.JwtFilename = saKeyFile}));
+ return driverConfig;
+ }
+ bool anonymousUsed = GetStrFromEnv("YDB_ANONYMOUS_CREDENTIALS", "0") == "1";
+ if (anonymousUsed) {
+ return driverConfig;
+ }
+
+ bool useMetadataCredentials = GetStrFromEnv("YDB_METADATA_CREDENTIALS", "0") == "1";
+ if (useMetadataCredentials){
+ auto factory = CreateIamCredentialsProviderFactory();
+ try {
+ factory->CreateProvider();
+ } catch (yexception& e) {
+ ythrow yexception() << "Unable to get token from metadata service: " << e.what();
+ }
+ driverConfig.SetCredentialsProviderFactory(factory);
+ return driverConfig;
+ }
+
+ TStringType accessToken = GetStrFromEnv("YDB_ACCESS_TOKEN_CREDENTIALS", "");
+ if (accessToken != ""){
+ driverConfig.SetAuthToken(accessToken);
+ return driverConfig;
+ }
+
+ ythrow yexception() << "Unable to create driver config from environment";
+}
+
+TDriverConfig CreateFromSaKeyFile(const TStringType& saKeyFile, const TStringType& connectionString) {
+ TDriverConfig driverConfig(connectionString);
+ driverConfig.SetCredentialsProviderFactory(
+ CreateIamJwtFileCredentialsProviderFactory({.JwtFilename = saKeyFile}));
+ return driverConfig;
+}
+
+} // namespace NYdb
+
diff --git a/ydb/public/sdk/cpp/client/helpers/helpers.h b/ydb/public/sdk/cpp/client/helpers/helpers.h
new file mode 100644
index 0000000000..9471ebf663
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/helpers/helpers.h
@@ -0,0 +1,18 @@
+#pragma once
+
+#include <ydb/public/sdk/cpp/client/ydb_driver/driver.h>
+
+namespace NYdb {
+
+//! Checks the following environment variables and creates TDriverConfig with the first appeared:
+//! YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS=<path-to-file> — service account key file,
+//! YDB_ANONYMOUS_CREDENTIALS="1" — uses anonymous access (used for test installation),
+//! YDB_METADATA_CREDENTIALS="1" — uses metadata service,
+//! YDB_ACCESS_TOKEN_CREDENTIALS=<access-token> — access token (for example, IAM-token).
+//! If grpcs protocol is given in endpoint (or protocol is empty), enables SSL and uses
+//! certificate from resourses and user cert from env variable "YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS"
+TDriverConfig CreateFromEnvironment(const TStringType& connectionString = "");
+//! Creates TDriverConfig from cloud service account key file
+TDriverConfig CreateFromSaKeyFile(const TStringType& saKeyFile, const TStringType& connectionString = "");
+
+}
diff --git a/ydb/public/sdk/cpp/client/helpers/ya.make b/ydb/public/sdk/cpp/client/helpers/ya.make
new file mode 100644
index 0000000000..2203edcf66
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/helpers/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+ helpers.cpp
+)
+
+PEERDIR(
+ ydb/public/sdk/cpp/client/iam
+ ydb/public/sdk/cpp/client/ydb_types/credentials
+ ydb/library/yql/public/issue/protos
+)
+
+END()
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/CMakeLists.txt
index 7eb8172a98..4ec2122f21 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/CMakeLists.txt
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/CMakeLists.txt
@@ -9,8 +9,10 @@
add_subdirectory(common)
add_subdirectory(db_driver_state)
add_subdirectory(grpc_connections)
+add_subdirectory(kqp_session_common)
add_subdirectory(logger)
add_subdirectory(make_request)
add_subdirectory(plain_status)
+add_subdirectory(session_pool)
add_subdirectory(thread_pool)
add_subdirectory(value_helpers)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/grpc_connections.h b/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/grpc_connections.h
index 3f3b85ede0..40fa6b39f8 100644
--- a/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/grpc_connections.h
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/grpc_connections/grpc_connections.h
@@ -399,6 +399,7 @@ public:
TStreamRpc<TService, TRequest, TResponse, NGrpc::TStreamRequestReadProcessor> rpc,
TDbDriverStatePtr dbState,
const TRpcRequestSettings& requestSettings,
+ const TEndpointKey& preferredEndpoint = TEndpointKey(),
std::shared_ptr<IQueueClientContext> context = nullptr)
{
using NGrpc::TGrpcStatus;
@@ -489,7 +490,7 @@ public:
std::move(rpc),
std::move(meta),
context.get());
- }, dbState, TEndpointKey(), endpointPolicy);
+ }, dbState, preferredEndpoint, endpointPolicy);
}
template<class TService, class TRequest, class TResponse, class TCallback>
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..8372e613af
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-kqp_session_common)
+target_link_libraries(impl-ydb_internal-kqp_session_common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ lib-operation_id-protos
+ client-impl-ydb_endpoints
+)
+target_sources(impl-ydb_internal-kqp_session_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..0747556da9
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-kqp_session_common)
+target_link_libraries(impl-ydb_internal-kqp_session_common PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ lib-operation_id-protos
+ client-impl-ydb_endpoints
+)
+target_sources(impl-ydb_internal-kqp_session_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..0747556da9
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-kqp_session_common)
+target_link_libraries(impl-ydb_internal-kqp_session_common PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ lib-operation_id-protos
+ client-impl-ydb_endpoints
+)
+target_sources(impl-ydb_internal-kqp_session_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..8372e613af
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,20 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-kqp_session_common)
+target_link_libraries(impl-ydb_internal-kqp_session_common PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ lib-operation_id-protos
+ client-impl-ydb_endpoints
+)
+target_sources(impl-ydb_internal-kqp_session_common PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.cpp b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.cpp
new file mode 100644
index 0000000000..617e897b18
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.cpp
@@ -0,0 +1,172 @@
+#include "kqp_session_common.h"
+
+#include <ydb/public/lib/operation_id/operation_id.h>
+
+namespace NYdb {
+
+ui64 GetNodeIdFromSession(const TStringType& sessionId) {
+ if (sessionId.empty()) {
+ return 0;
+ }
+
+ try {
+ NKikimr::NOperationId::TOperationId opId(sessionId);
+ const auto& nodeIds = opId.GetValue("node_id");
+ if (nodeIds.size() != 1) {
+ return 0;
+ }
+
+ return FromStringWithDefault<ui64>(*nodeIds[0], 0);
+
+ } catch (...) {
+ return 0;
+ }
+ return 0;
+}
+
+TKqpSessionCommon::TKqpSessionCommon(
+ const TStringType& sessionId, const TStringType& endpoint,
+ bool isOwnedBySessionPool)
+ : Lock_()
+ , SessionId_(sessionId)
+ , EndpointKey_(endpoint, GetNodeIdFromSession(sessionId))
+ , IsOwnedBySessionPool_(isOwnedBySessionPool)
+ , State_(S_STANDALONE)
+ , TimeToTouch_(TInstant::Now())
+ , TimeInPast_(TInstant::Now())
+ , NeedUpdateActiveCounter_(false)
+{}
+
+TKqpSessionCommon::~TKqpSessionCommon() {
+ Unlink();
+}
+
+const TStringType& TKqpSessionCommon::GetId() const {
+ return SessionId_;
+}
+
+const TStringType& TKqpSessionCommon::GetEndpoint() const {
+ return EndpointKey_.GetEndpoint();
+}
+
+const TEndpointKey& TKqpSessionCommon::GetEndpointKey() const {
+ return EndpointKey_;
+}
+
+// Can be called from interceptor, need lock
+void TKqpSessionCommon::MarkBroken() {
+ with_lock(Lock_) {
+ if (State_ == EState::S_ACTIVE) {
+ NeedUpdateActiveCounter_ = true;
+ }
+ State_ = EState::S_BROKEN;
+ }
+}
+
+void TKqpSessionCommon::MarkAsClosing() {
+ with_lock(Lock_) {
+ if (State_ == EState::S_ACTIVE) {
+ NeedUpdateActiveCounter_ = true;
+ }
+
+ State_ = EState::S_CLOSING;
+ }
+}
+
+void TKqpSessionCommon::MarkActive() {
+ State_ = EState::S_ACTIVE;
+ NeedUpdateActiveCounter_ = false;
+}
+
+void TKqpSessionCommon::MarkIdle() {
+ State_ = EState::S_IDLE;
+ NeedUpdateActiveCounter_ = false;
+}
+
+bool TKqpSessionCommon::IsOwnedBySessionPool() const {
+ return IsOwnedBySessionPool_;
+}
+
+TKqpSessionCommon::EState TKqpSessionCommon::GetState() const {
+ // See comments in InjectSessionStatusInterception about lock
+ with_lock(Lock_) {
+ return State_;
+ }
+}
+
+void TKqpSessionCommon::SetNeedUpdateActiveCounter(bool flag) {
+ NeedUpdateActiveCounter_ = flag;
+}
+
+bool TKqpSessionCommon::NeedUpdateActiveCounter() const {
+ return NeedUpdateActiveCounter_;
+}
+
+// We need lock here because this method can be called from different thread
+// if client makes simultaneous calls on one session.
+// It should be possible to rewrite this part.
+void TKqpSessionCommon::ScheduleTimeToTouch(TDuration interval,
+ bool updateTimeInPast)
+{
+ auto now = TInstant::Now();
+ with_lock(Lock_) {
+ if (updateTimeInPast) {
+ TimeInPast_ = now;
+ }
+ TimeToTouch_ = now + interval;
+ }
+}
+
+void TKqpSessionCommon::ScheduleTimeToTouchFast(TDuration interval,
+ bool updateTimeInPast)
+{
+ auto now = TInstant::Now();
+ if (updateTimeInPast) {
+ TimeInPast_ = now;
+ }
+ TimeToTouch_ = now + interval;
+}
+
+TInstant TKqpSessionCommon::GetTimeToTouchFast() const {
+ return TimeToTouch_;
+}
+
+TInstant TKqpSessionCommon::GetTimeInPastFast() const {
+ return TimeInPast_;
+}
+
+// SetTimeInterval/GetTimeInterval, are not atomic!
+void TKqpSessionCommon::SetTimeInterval(TDuration interval) {
+ TimeInterval_ = interval;
+}
+
+TDuration TKqpSessionCommon::GetTimeInterval() const {
+ return TimeInterval_;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+std::function<void(TKqpSessionCommon*)> TKqpSessionCommon::GetSmartDeleter(
+ std::shared_ptr<ISessionClient> client)
+{
+ return [client](TKqpSessionCommon* sessionImpl) {
+ switch (sessionImpl->GetState()) {
+ case TKqpSessionCommon::S_STANDALONE:
+ case TKqpSessionCommon::S_BROKEN:
+ case TKqpSessionCommon::S_CLOSING:
+ client->DeleteSession(sessionImpl);
+ break;
+ case TKqpSessionCommon::S_IDLE:
+ case TKqpSessionCommon::S_ACTIVE: {
+ if (!client->ReturnSession(sessionImpl)) {
+ client->DeleteSession(sessionImpl);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ };
+}
+
+} // namespace NYdb
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.h b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.h
new file mode 100644
index 0000000000..46170b0ca9
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.h
@@ -0,0 +1,78 @@
+#pragma once
+
+#include <ydb/public/sdk/cpp/client/impl/ydb_endpoints/endpoints.h>
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/session_client/session_client.h>
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/common/type_switcher.h>
+
+#include <util/datetime/base.h>
+#include <util/system/spinlock.h>
+
+#include <functional>
+
+namespace NYdb {
+
+////////////////////////////////////////////////////////////////////////////////
+ui64 GetNodeIdFromSession(const TStringType& sessionId);
+
+class TKqpSessionCommon : public TEndpointObj {
+public:
+ TKqpSessionCommon(const TStringType& sessionId, const TStringType& endpoint,
+ bool isOwnedBySessionPool);
+
+ enum EState {
+ S_STANDALONE,
+ S_IDLE,
+ S_BROKEN,
+ S_ACTIVE,
+ S_CLOSING
+ };
+
+public:
+ ~TKqpSessionCommon();
+
+ const TStringType& GetId() const;
+ const TStringType& GetEndpoint() const;
+ const TEndpointKey& GetEndpointKey() const;
+ void MarkBroken();
+ void MarkAsClosing();
+ void MarkActive();
+ void MarkIdle();
+ bool IsOwnedBySessionPool() const;
+ EState GetState() const;
+ void SetNeedUpdateActiveCounter(bool flag);
+ bool NeedUpdateActiveCounter() const;
+ void InvalidateQueryInCache(const TStringType& key);
+ void InvalidateQueryCache();
+ void ScheduleTimeToTouch(TDuration interval, bool updateTimeInPast);
+ void ScheduleTimeToTouchFast(TDuration interval, bool updateTimeInPast);
+ TInstant GetTimeToTouchFast() const;
+ TInstant GetTimeInPastFast() const;
+
+ // SetTimeInterval/GetTimeInterval, are not atomic!
+ void SetTimeInterval(TDuration interval);
+ TDuration GetTimeInterval() const;
+
+ static std::function<void(TKqpSessionCommon*)>
+ GetSmartDeleter(std::shared_ptr<ISessionClient> client);
+
+protected:
+ TAdaptiveLock Lock_;
+
+private:
+ const TStringType SessionId_;
+ const TEndpointKey EndpointKey_;
+ const bool IsOwnedBySessionPool_;
+
+ EState State_;
+ TInstant TimeToTouch_;
+ TInstant TimeInPast_;
+ // Is used to implement progressive timeout for settler keep alive call
+ TDuration TimeInterval_;
+ // Indicate session was in active state, but state was changed
+ // (need to decrement active session counter)
+ // TODO: suboptimal because need lock for atomic change from interceptor
+ // Rewrite with bit field
+ bool NeedUpdateActiveCounter_;
+};
+
+} // namespace NYdb
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/ya.make b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/ya.make
new file mode 100644
index 0000000000..ac4ebdf6e0
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+ kqp_session_common.cpp
+)
+
+PEERDIR(
+ library/cpp/threading/future
+ ydb/public/lib/operation_id/protos
+ ydb/public/sdk/cpp/client/impl/ydb_endpoints
+)
+
+
+END()
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_client/session_client.h b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_client/session_client.h
new file mode 100644
index 0000000000..49f26b28d0
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_client/session_client.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include <functional>
+
+#include <util/datetime/base.h>
+
+namespace NYdb {
+
+class TKqpSessionCommon;
+
+class ISessionClient {
+public:
+ virtual ~ISessionClient() = default;
+ virtual void DeleteSession(TKqpSessionCommon* sessionImpl) = 0;
+ // TODO: Try to remove from ISessionClient
+ virtual bool ReturnSession(TKqpSessionCommon* sessionImpl) = 0;
+};
+
+}
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..8cdf68c0bc
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-session_pool)
+target_link_libraries(impl-ydb_internal-session_pool PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ api-protos
+ client-impl-ydb_endpoints
+ client-ydb_types-operation
+ public-issue-protos
+)
+target_sources(impl-ydb_internal-session_pool PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..f399a8d31e
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-session_pool)
+target_link_libraries(impl-ydb_internal-session_pool PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ api-protos
+ client-impl-ydb_endpoints
+ client-ydb_types-operation
+ public-issue-protos
+)
+target_sources(impl-ydb_internal-session_pool PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..f399a8d31e
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,23 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-session_pool)
+target_link_libraries(impl-ydb_internal-session_pool PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ api-protos
+ client-impl-ydb_endpoints
+ client-ydb_types-operation
+ public-issue-protos
+)
+target_sources(impl-ydb_internal-session_pool PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..8cdf68c0bc
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,22 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(impl-ydb_internal-session_pool)
+target_link_libraries(impl-ydb_internal-session_pool PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-threading-future
+ api-protos
+ client-impl-ydb_endpoints
+ client-ydb_types-operation
+ public-issue-protos
+)
+target_sources(impl-ydb_internal-session_pool PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.cpp
+)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.cpp b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.cpp
index cdd314c787..8dc87b46f5 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.cpp
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.cpp
@@ -1,12 +1,57 @@
#include "session_pool.h"
-#include "table_client.h"
+#define INCLUDE_YDB_INTERNAL_H
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/status.h>
+#undef INCLUDE_YDB_INTERNAL_H
+
+#include <ydb/public/sdk/cpp/client/resources/ydb_resources.h>
+#include <ydb/public/sdk/cpp/client/ydb_types/operation/operation.h>
+
+#include <util/random/random.h>
namespace NYdb {
-namespace NTable {
+namespace NSessionPool {
using namespace NThreading;
+constexpr ui64 KEEP_ALIVE_RANDOM_FRACTION = 4;
+static const TStatus CLIENT_RESOURCE_EXHAUSTED_ACTIVE_SESSION_LIMIT = TStatus(
+ TPlainStatus(
+ EStatus::CLIENT_RESOURCE_EXHAUSTED,
+ "Active sessions limit exceeded"
+ )
+ );
+
+TStatus GetStatus(const TOperation& operation) {
+ return operation.Status();
+}
+
+TStatus GetStatus(const TStatus& status) {
+ return status;
+}
+
+TDuration RandomizeThreshold(TDuration duration) {
+ TDuration::TValue value = duration.GetValue();
+ if (KEEP_ALIVE_RANDOM_FRACTION) {
+ const i64 randomLimit = value / KEEP_ALIVE_RANDOM_FRACTION;
+ if (randomLimit < 2)
+ return duration;
+ value += static_cast<i64>(RandomNumber<ui64>(randomLimit));
+ }
+ return TDuration::FromValue(value);
+}
+
+bool IsSessionCloseRequested(const TStatus& status) {
+ const auto& meta = status.GetResponseMetadata();
+ auto hints = meta.equal_range(NYdb::YDB_SERVER_HINTS);
+ for(auto it = hints.first; it != hints.second; ++it) {
+ if (it->second == NYdb::YDB_SESSION_CLOSE) {
+ return true;
+ }
+ }
+
+ return false;
+}
TSessionPool::TWaitersQueue::TWaitersQueue(ui32 maxQueueSize, TDuration maxWaitSessionTimeout)
: MaxQueueSize_(maxQueueSize)
@@ -14,25 +59,25 @@ TSessionPool::TWaitersQueue::TWaitersQueue(ui32 maxQueueSize, TDuration maxWaitS
{
}
-bool TSessionPool::TWaitersQueue::TryPush(NThreading::TPromise<TCreateSessionResult>& p) {
+bool TSessionPool::TWaitersQueue::TryPush(std::unique_ptr<IGetSessionCtx>& p) {
if (Waiters_.size() < MaxQueueSize_) {
- Waiters_.insert(std::make_pair(TInstant::Now(), p));
+ Waiters_.insert(std::make_pair(TInstant::Now(), std::move(p)));
return true;
}
return false;
}
-TMaybe<NThreading::TPromise<TCreateSessionResult>> TSessionPool::TWaitersQueue::TryGet() {
+std::unique_ptr<IGetSessionCtx> TSessionPool::TWaitersQueue::TryGet() {
if (Waiters_.empty()) {
return {};
}
auto it = Waiters_.begin();
- auto result = it->second;
+ auto result = std::move(it->second);
Waiters_.erase(it);
return result;
}
-void TSessionPool::TWaitersQueue::GetOld(TInstant now, TVector<NThreading::TPromise<TCreateSessionResult>>& oldWaiters) {
+void TSessionPool::TWaitersQueue::GetOld(TInstant now, TVector<std::unique_ptr<IGetSessionCtx>>& oldWaiters) {
auto it = Waiters_.begin();
while (it != Waiters_.end()) {
if (now < it->first + MaxWaitSessionTimeout_)
@@ -56,71 +101,28 @@ TSessionPool::TSessionPool(ui32 maxActiveSessions)
, MaxActiveSessions_(maxActiveSessions)
{}
-void TTableClient::TImpl::CloseAndDeleteSession(std::unique_ptr<TSession::TImpl>&& impl,
- std::shared_ptr<TTableClient::TImpl> client) {
- std::shared_ptr<TSession::TImpl> deleteSession(
- impl.release(),
- TSession::TImpl::GetSmartDeleter(client));
-
- deleteSession->MarkBroken();
+static void CloseAndDeleteSession(std::unique_ptr<TKqpSessionCommon>&& impl,
+ std::shared_ptr<ISessionClient> client) {
+ auto deleter = TKqpSessionCommon::GetSmartDeleter(client);
+ TKqpSessionCommon* p = impl.release();
+ p->MarkBroken();
+ deleter(p);
}
-void TSessionPool::CreateFakeSession(
- NThreading::TPromise<TCreateSessionResult>& promise,
- std::shared_ptr<TTableClient::TImpl> client)
+void TSessionPool::ReplySessionToUser(
+ TKqpSessionCommon* session,
+ std::unique_ptr<IGetSessionCtx> ctx)
{
- TSession session(client, "", "", false);
- // Mark standalone to prevent returning to session pool
- session.SessionImpl_->MarkStandalone();
- TCreateSessionResult val(
- TStatus(
- TPlainStatus(
- EStatus::CLIENT_RESOURCE_EXHAUSTED,
- "Active sessions limit exceeded"
- )
- ),
- std::move(session)
- );
-
- client->ScheduleTaskUnsafe([promise, val{std::move(val)}]() mutable {
- promise.SetValue(std::move(val));
- }, TDuration());
-}
-
-void TSessionPool::MakeSessionPromiseFromSession(
- TSession::TImpl* session,
- NThreading::TPromise<TCreateSessionResult>& promise,
- std::shared_ptr<TTableClient::TImpl> client
-) {
- Y_VERIFY(session->GetState() == TSession::TImpl::S_IDLE);
+ Y_VERIFY(session->GetState() == TKqpSessionCommon::S_IDLE);
Y_VERIFY(!session->GetTimeInterval());
session->MarkActive();
session->SetNeedUpdateActiveCounter(true);
-
- TCreateSessionResult val(
- TStatus(TPlainStatus()),
- TSession(
- client,
- std::shared_ptr<TSession::TImpl>(
- session, TSession::TImpl::GetSmartDeleter(client)
- )
- )
- );
-
- client->ScheduleTaskUnsafe(
- [promise, val{std::move(val)}]() mutable {
- promise.SetValue(std::move(val));
- },
- TDuration()
- );
+ ctx->ReplySessionToUser(session);
}
-TAsyncCreateSessionResult TSessionPool::GetSession(
- std::shared_ptr<TTableClient::TImpl> client,
- const TCreateSessionSettings& settings)
+void TSessionPool::GetSession(std::unique_ptr<IGetSessionCtx> ctx)
{
- auto createSessionPromise = NewPromise<TCreateSessionResult>();
- std::unique_ptr<TSession::TImpl> sessionImpl;
+ std::unique_ptr<TKqpSessionCommon> sessionImpl;
enum class TSessionSource {
Pool,
Waiter,
@@ -132,7 +134,7 @@ TAsyncCreateSessionResult TSessionPool::GetSession(
if (MaxActiveSessions_ == 0 || ActiveSessions_ < MaxActiveSessions_) {
IncrementActiveCounterUnsafe();
- } else if (WaitersQueue_.TryPush(createSessionPromise)) {
+ } else if (WaitersQueue_.TryPush(ctx)) {
sessionSource = TSessionSource::Waiter;
} else {
sessionSource = TSessionSource::Error;
@@ -142,33 +144,31 @@ TAsyncCreateSessionResult TSessionPool::GetSession(
sessionImpl = std::move(it->second);
Sessions_.erase(it);
}
-
+
UpdateStats();
}
+
if (sessionSource == TSessionSource::Waiter) {
// Nothing to do here
} else if (sessionSource == TSessionSource::Error) {
FakeSessionsCounter_.Inc();
- CreateFakeSession(createSessionPromise, client);
+ ctx->ReplyError(CLIENT_RESOURCE_EXHAUSTED_ACTIVE_SESSION_LIMIT);
} else if (sessionImpl) {
- MakeSessionPromiseFromSession(sessionImpl.release(), createSessionPromise, client);
+ ReplySessionToUser(sessionImpl.release(), std::move(ctx));
} else {
- const auto& sessionResult = client->CreateSession(settings, false);
- sessionResult.Subscribe(TSession::TImpl::GetSessionInspector(createSessionPromise, client, settings, 0, true));
+ ctx->ReplyNewSession();
}
-
- return createSessionPromise.GetFuture();
}
-bool TSessionPool::CheckAndFeedWaiterNewSession(std::shared_ptr<TTableClient::TImpl> client, bool active) {
- NThreading::TPromise<TCreateSessionResult> createSessionPromise;
+bool TSessionPool::CheckAndFeedWaiterNewSession(bool active) {
+ std::unique_ptr<IGetSessionCtx> getSessionCtx;
{
std::lock_guard guard(Mtx_);
if (Closed_)
return false;
- if (auto prom = WaitersQueue_.TryGet()) {
- createSessionPromise = std::move(*prom);
+ if (auto maybeCtx = WaitersQueue_.TryGet()) {
+ getSessionCtx = std::move(maybeCtx);
} else {
return false;
}
@@ -185,36 +185,30 @@ bool TSessionPool::CheckAndFeedWaiterNewSession(std::shared_ptr<TTableClient::TI
// The above mentioned conditions is quite rare so
// we can just return an error. In this case uplevel code should
// start retry.
- CreateFakeSession(createSessionPromise, client);
+ getSessionCtx->ReplyError(CLIENT_RESOURCE_EXHAUSTED_ACTIVE_SESSION_LIMIT);
return true;
}
- // This code can be called from client dtors. It may be unsafe to
- // execute grpc call directly...
- client->ScheduleTaskUnsafe([createSessionPromise, client]() mutable {
- TCreateSessionSettings settings;
- settings.ClientTimeout(CREATE_SESSION_INTERNAL_TIMEOUT);
-
- const auto& sessionResult = client->CreateSession(settings, false);
- sessionResult.Subscribe(TSession::TImpl::GetSessionInspector(createSessionPromise, client, settings, 0, true));
- }, TDuration());
+ getSessionCtx->ReplyNewSession();
return true;
}
-bool TSessionPool::ReturnSession(TSession::TImpl* impl, bool active, std::shared_ptr<TTableClient::TImpl> client) {
- // Do not set promise under the session pool lock
- NThreading::TPromise<TCreateSessionResult> createSessionPromise;
+bool TSessionPool::ReturnSession(TKqpSessionCommon* impl, bool active) {
+ // Do not call ReplySessionToUser under the session pool lock
+ std::unique_ptr<IGetSessionCtx> getSessionCtx;
{
std::lock_guard guard(Mtx_);
if (Closed_)
return false;
- if (auto prom = WaitersQueue_.TryGet()) {
- createSessionPromise = std::move(*prom);
+ if (auto maybeCtx = WaitersQueue_.TryGet()) {
+ getSessionCtx = std::move(maybeCtx);
if (!active)
IncrementActiveCounterUnsafe();
} else {
- Sessions_.emplace(std::make_pair(impl->GetTimeToTouchFast(), impl));
+ Sessions_.emplace(std::make_pair(
+ impl->GetTimeToTouchFast(),
+ impl));
if (active) {
Y_VERIFY(ActiveSessions_);
@@ -225,8 +219,8 @@ bool TSessionPool::ReturnSession(TSession::TImpl* impl, bool active, std::shared
UpdateStats();
}
- if (createSessionPromise.Initialized()) {
- MakeSessionPromiseFromSession(impl, createSessionPromise, client);
+ if (getSessionCtx) {
+ ReplySessionToUser(impl, std::move(getSessionCtx));
}
return true;
@@ -244,7 +238,7 @@ void TSessionPool::IncrementActiveCounterUnsafe() {
UpdateStats();
}
-void TSessionPool::Drain(std::function<bool(std::unique_ptr<TSession::TImpl>&&)> cb, bool close) {
+void TSessionPool::Drain(std::function<bool(std::unique_ptr<TKqpSessionCommon>&&)> cb, bool close) {
std::lock_guard guard(Mtx_);
Closed_ = close;
for (auto it = Sessions_.begin(); it != Sessions_.end();) {
@@ -256,7 +250,7 @@ void TSessionPool::Drain(std::function<bool(std::unique_ptr<TSession::TImpl>&&)>
UpdateStats();
}
-TPeriodicCb TSessionPool::CreatePeriodicTask(std::weak_ptr<TTableClient::TImpl> weakClient,
+TPeriodicCb TSessionPool::CreatePeriodicTask(std::weak_ptr<ISessionClient> weakClient,
TKeepAliveCmd&& cmd, TDeletePredicate&& deletePredicate)
{
auto periodicCb = [this, weakClient, cmd=std::move(cmd), deletePredicate=std::move(deletePredicate)](NYql::TIssues&&, EStatus status) {
@@ -271,11 +265,11 @@ TPeriodicCb TSessionPool::CreatePeriodicTask(std::weak_ptr<TTableClient::TImpl>
return false;
} else {
auto keepAliveBatchSize = PERIODIC_ACTION_BATCH_SIZE;
- TVector<std::unique_ptr<TSession::TImpl>> sessionsToTouch;
+ TVector<std::unique_ptr<TKqpSessionCommon>> sessionsToTouch;
sessionsToTouch.reserve(keepAliveBatchSize);
- TVector<std::unique_ptr<TSession::TImpl>> sessionsToDelete;
+ TVector<std::unique_ptr<TKqpSessionCommon>> sessionsToDelete;
sessionsToDelete.reserve(keepAliveBatchSize);
- TVector<NThreading::TPromise<TCreateSessionResult>> waitersToReplyError;
+ TVector<std::unique_ptr<IGetSessionCtx>> waitersToReplyError;
waitersToReplyError.reserve(keepAliveBatchSize);
const auto now = TInstant::Now();
{
@@ -288,7 +282,7 @@ TPeriodicCb TSessionPool::CreatePeriodicTask(std::weak_ptr<TTableClient::TImpl>
if (now < it->second->GetTimeToTouchFast())
break;
- if (deletePredicate(it->second.get(), strongClient.get(), sessions.size())) {
+ if (deletePredicate(it->second.get(), sessions.size())) {
sessionsToDelete.emplace_back(std::move(it->second));
} else {
sessionsToTouch.emplace_back(std::move(it->second));
@@ -304,24 +298,21 @@ TPeriodicCb TSessionPool::CreatePeriodicTask(std::weak_ptr<TTableClient::TImpl>
for (auto& sessionImpl : sessionsToTouch) {
if (sessionImpl) {
- Y_VERIFY(sessionImpl->GetState() == TSession::TImpl::S_IDLE);
- TSession session(strongClient, std::shared_ptr<TSession::TImpl>(
- sessionImpl.release(),
- TSession::TImpl::GetSmartDeleter(strongClient)));
- cmd(session);
+ Y_VERIFY(sessionImpl->GetState() == TKqpSessionCommon::S_IDLE);
+ cmd(sessionImpl.release());
}
}
for (auto& sessionImpl : sessionsToDelete) {
if (sessionImpl) {
- Y_VERIFY(sessionImpl->GetState() == TSession::TImpl::S_IDLE);
- TTableClient::TImpl::CloseAndDeleteSession(std::move(sessionImpl), strongClient);
+ Y_VERIFY(sessionImpl->GetState() == TKqpSessionCommon::S_IDLE);
+ CloseAndDeleteSession(std::move(sessionImpl), strongClient);
}
}
for (auto& waiter : waitersToReplyError) {
FakeSessionsCounter_.Inc();
- CreateFakeSession(waiter, strongClient);
+ waiter->ReplyError(CLIENT_RESOURCE_EXHAUSTED_ACTIVE_SESSION_LIMIT);
}
}
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.h b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.h
new file mode 100644
index 0000000000..7d9f2fc2b5
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.h
@@ -0,0 +1,145 @@
+#pragma once
+
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.h>
+#include <ydb/public/sdk/cpp/client/ydb_types/core_facility/core_facility.h>
+
+#include <util/generic/map.h>
+
+namespace NYdb {
+
+class TOperation;
+namespace NSessionPool {
+
+class IGetSessionCtx : private TNonCopyable {
+public:
+ virtual ~IGetSessionCtx() = default;
+ // Transfer ownership to ctx
+ virtual void ReplySessionToUser(TKqpSessionCommon* session) = 0;
+ virtual void ReplyError(TStatus status) = 0;
+ virtual void ReplyNewSession() = 0;
+};
+
+//How often run session pool keep alive check
+constexpr TDuration PERIODIC_ACTION_INTERVAL = TDuration::Seconds(5);
+constexpr TDuration MAX_WAIT_SESSION_TIMEOUT = TDuration::Seconds(5); //Max time to wait session
+constexpr ui64 PERIODIC_ACTION_BATCH_SIZE = 10; //Max number of tasks to perform during one interval
+constexpr TDuration CREATE_SESSION_INTERNAL_TIMEOUT = TDuration::Seconds(2); //Timeout for createSession call inside session pool
+
+TStatus GetStatus(const TOperation& operation);
+TStatus GetStatus(const TStatus& status);
+
+TDuration RandomizeThreshold(TDuration duration);
+bool IsSessionCloseRequested(const TStatus& status);
+
+template<typename TResponse>
+NThreading::TFuture<TResponse> InjectSessionStatusInterception(
+ std::shared_ptr<::NYdb::TKqpSessionCommon> impl, NThreading::TFuture<TResponse> asyncResponse,
+ bool updateTimeout,
+ TDuration timeout,
+ std::function<void(const TResponse&, TKqpSessionCommon&)> cb = {})
+{
+ auto promise = NThreading::NewPromise<TResponse>();
+ asyncResponse.Subscribe([impl, promise, cb, updateTimeout, timeout](NThreading::TFuture<TResponse> future) mutable {
+ Y_VERIFY(future.HasValue());
+
+ // TResponse can hold refcounted user provided data (TSession for example)
+ // and we do not want to have copy of it (for example it can cause delay dtor call)
+ // so using move semantic here is mandatory.
+ // Also we must reset captured shared pointer to session impl
+ TResponse value = std::move(future.ExtractValue());
+
+ const TStatus& status = GetStatus(value);
+ // Exclude CLIENT_RESOURCE_EXHAUSTED from transport errors which can cause to session disconnect
+ // since we have guarantee this request wasn't been started to execute.
+
+ if (status.IsTransportError() && status.GetStatus() != EStatus::CLIENT_RESOURCE_EXHAUSTED) {
+ impl->MarkBroken();
+ } else if (status.GetStatus() == EStatus::SESSION_BUSY) {
+ impl->MarkBroken();
+ } else if (status.GetStatus() == EStatus::BAD_SESSION) {
+ impl->MarkBroken();
+ } else if (IsSessionCloseRequested(status)) {
+ impl->MarkAsClosing();
+ } else {
+ // NOTE: About GetState and lock
+ // Simultanious call multiple requests on the same session make no sence, due to server limitation.
+ // But user can perform this call, right now we do not protect session from this, it may cause
+ // raise on session state if respoise is not success.
+ // It should not be a problem - in case of this race we close session
+ // or put it in to settler.
+ if (updateTimeout && status.GetStatus() != EStatus::CLIENT_RESOURCE_EXHAUSTED) {
+ impl->ScheduleTimeToTouch(RandomizeThreshold(timeout), impl->GetState() == TKqpSessionCommon::EState::S_ACTIVE);
+ }
+ }
+ if (cb) {
+ cb(value, *impl);
+ }
+ impl.reset();
+ promise.SetValue(std::move(value));
+ });
+ return promise.GetFuture();
+}
+
+class TSessionPool {
+private:
+ class TWaitersQueue {
+ public:
+ TWaitersQueue(ui32 maxQueueSize, TDuration maxWaitSessionTimeout=MAX_WAIT_SESSION_TIMEOUT);
+
+ // returns true and gets ownership if queue size less than limit
+ // otherwise returns false and doesn't not touch ctx
+ bool TryPush(std::unique_ptr<IGetSessionCtx>& p);
+ std::unique_ptr<IGetSessionCtx> TryGet();
+ void GetOld(TInstant now, TVector<std::unique_ptr<IGetSessionCtx>>& oldWaiters);
+ ui32 Size() const;
+
+ private:
+ const ui32 MaxQueueSize_;
+ const TDuration MaxWaitSessionTimeout_;
+ TMultiMap<TInstant, std::unique_ptr<IGetSessionCtx>> Waiters_;
+ };
+public:
+ using TKeepAliveCmd = std::function<void(TKqpSessionCommon* s)>;
+ using TDeletePredicate = std::function<bool(TKqpSessionCommon* s, size_t sessionsCount)>;
+ TSessionPool(ui32 maxActiveSessions);
+
+ // Extracts session from pool or creates new one ising given ctx
+ void GetSession(std::unique_ptr<IGetSessionCtx> ctx);
+
+ // Returns true if session returned to pool successfully
+ bool ReturnSession(TKqpSessionCommon* impl, bool active);
+
+ // Returns trun if has waiter and scheduled to create new session
+ // too feed it
+ bool CheckAndFeedWaiterNewSession(bool active);
+
+ TPeriodicCb CreatePeriodicTask(std::weak_ptr<ISessionClient> weakClient, TKeepAliveCmd&& cmd, TDeletePredicate&& predicate);
+ i64 GetActiveSessions() const;
+ i64 GetActiveSessionsLimit() const;
+ i64 GetCurrentPoolSize() const;
+ void DecrementActiveCounter();
+ void IncrementActiveCounterUnsafe();
+
+ void Drain(std::function<bool(std::unique_ptr<TKqpSessionCommon>&&)> cb, bool close);
+ void SetStatCollector(NSdkStats::TStatCollector::TSessionPoolStatCollector collector);
+
+private:
+ void UpdateStats();
+ static void ReplySessionToUser(TKqpSessionCommon* session, std::unique_ptr<IGetSessionCtx> ctx);
+
+ mutable std::mutex Mtx_;
+ bool Closed_;
+
+ TMultiMap<TInstant, std::unique_ptr<TKqpSessionCommon>> Sessions_;
+ TWaitersQueue WaitersQueue_;
+
+ i64 ActiveSessions_;
+ const ui32 MaxActiveSessions_;
+ NSdkStats::TSessionCounter ActiveSessionsCounter_;
+ NSdkStats::TSessionCounter InPoolSessionsCounter_;
+ NSdkStats::TSessionCounter SessionWaiterCounter_;
+ NSdkStats::TAtomicCounter<::NMonitoring::TRate> FakeSessionsCounter_;
+};
+
+}
+}
diff --git a/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/ya.make b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/ya.make
new file mode 100644
index 0000000000..0bb2529a8d
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ session_pool.cpp
+)
+
+PEERDIR(
+ library/cpp/threading/future
+ ydb/public/api/protos
+ ydb/public/sdk/cpp/client/impl/ydb_endpoints
+ ydb/public/sdk/cpp/client/ydb_types/operation
+ ydb/library/yql/public/issue/protos
+)
+
+END()
diff --git a/ydb/public/sdk/cpp/client/resources/ydb_sdk_version.txt b/ydb/public/sdk/cpp/client/resources/ydb_sdk_version.txt
index 4fd0fe3cd5..914ec96711 100644
--- a/ydb/public/sdk/cpp/client/resources/ydb_sdk_version.txt
+++ b/ydb/public/sdk/cpp/client/resources/ydb_sdk_version.txt
@@ -1 +1 @@
-2.5.1 \ No newline at end of file
+2.6.0 \ No newline at end of file
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h
index 8ca0811ff8..2586ed9798 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h
@@ -50,6 +50,11 @@ using TAWriteSessionMeta = std::conditional_t<UseMigrationProtocol,
NYdb::NTopic::TWriteSessionMeta>;
template <bool UseMigrationProtocol>
+using TAMessageMeta = std::conditional_t<UseMigrationProtocol,
+ NYdb::NPersQueue::TMessageMeta,
+ NYdb::NTopic::TMessageMeta>;
+
+template <bool UseMigrationProtocol>
using TASessionClosedEvent = std::conditional_t<UseMigrationProtocol,
NYdb::NPersQueue::TSessionClosedEvent,
NYdb::NTopic::TSessionClosedEvent>;
@@ -266,7 +271,7 @@ public:
}
template <bool V = UseMigrationProtocol, class = std::enable_if_t<!V>>
- typename TAWriteSessionMeta<UseMigrationProtocol>::TPtr GetMessageMeta(size_t batchIndex, size_t messageIndex) const {
+ typename TAMessageMeta<UseMigrationProtocol>::TPtr GetMessageMeta(size_t batchIndex, size_t messageIndex) const {
Y_ASSERT(batchIndex < MessagesMeta.size());
Y_ASSERT(messageIndex < MessagesMeta[batchIndex].size());
return MessagesMeta[batchIndex][messageIndex];
@@ -330,8 +335,9 @@ private:
private:
TPartitionData<UseMigrationProtocol> ServerMessage;
using TMetadataPtrVector = std::vector<typename TAWriteSessionMeta<UseMigrationProtocol>::TPtr>;
+ using TMessageMetaPtrVector = std::vector<typename TAMessageMeta<UseMigrationProtocol>::TPtr>;
TMetadataPtrVector BatchesMeta;
- std::vector<TMetadataPtrVector> MessagesMeta;
+ std::vector<TMessageMetaPtrVector> MessagesMeta;
std::weak_ptr<TSingleClusterReadSessionImpl<UseMigrationProtocol>> Session;
bool DoDecompress;
i64 ServerBytesSize = 0;
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.ipp b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.ipp
index 15eb81f091..c1aa7c4378 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.ipp
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.ipp
@@ -2217,13 +2217,13 @@ void TDataDecompressionInfo<UseMigrationProtocol>::BuildBatchesMeta() {
for (const auto& [key, value] : batch.write_session_meta()) {
meta->Fields.emplace(key, value);
}
- MessagesMeta.emplace_back(TMetadataPtrVector{});
- auto &currBatchMessagesMeta = MessagesMeta.back();
- for (const auto &messageData: batch.message_data()) {
- typename TAWriteSessionMeta<UseMigrationProtocol>::TPtr msgMeta = MakeIntrusive<TAWriteSessionMeta<UseMigrationProtocol>>();
- msgMeta->Fields.reserve(messageData.message_meta_size());
- for (const auto &[key, value]: messageData.message_meta()) {
- msgMeta->Fields.emplace(key, value);
+ MessagesMeta.emplace_back(TMessageMetaPtrVector{});
+ auto& currBatchMessagesMeta = MessagesMeta.back();
+ for (const auto& messageData: batch.message_data()) {
+ typename TAMessageMeta<UseMigrationProtocol>::TPtr msgMeta = MakeIntrusive<TAMessageMeta<UseMigrationProtocol>>();
+ msgMeta->Fields.reserve(messageData.metadata_items_size());
+ for (const auto& metaPair: messageData.metadata_items()) {
+ msgMeta->Fields.emplace_back(std::make_pair(metaPair.key(), metaPair.value()));
}
currBatchMessagesMeta.emplace_back(std::move(msgMeta));
}
@@ -2395,7 +2395,7 @@ void TDataDecompressionEvent<UseMigrationProtocol>::TakeData(TIntrusivePtr<TPart
messageData.explicit_hash());
}
} else {
- const auto &messageMeta = Parent->GetMessageMeta(Batch, Message);
+ const auto& messageMeta = Parent->GetMessageMeta(Batch, Message);
NTopic::TReadSessionEvent::TDataReceivedEvent::TMessageInformation messageInfo(
messageData.offset(),
batch.producer_id(),
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h b/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h
index 5205d9a152..9c4edaa4b0 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h
@@ -319,6 +319,14 @@ struct TWriteSessionMeta : public TThrRefBase {
THashMap<TString, TString> Fields;
};
+//! Message levelmetainformation.
+struct TMessageMeta : public TThrRefBase {
+ using TPtr = TIntrusivePtr<TWriteSessionMeta>;
+
+ //! User defined fields.
+ TVector<std::pair<TString, TString>> Fields;
+};
+
//! Event that is sent to client during session destruction.
struct TSessionClosedEvent : public TStatus {
using TStatus::TStatus;
diff --git a/ydb/public/sdk/cpp/client/ydb_proto/accessor.cpp b/ydb/public/sdk/cpp/client/ydb_proto/accessor.cpp
index ddaa380e30..f51b810160 100644
--- a/ydb/public/sdk/cpp/client/ydb_proto/accessor.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_proto/accessor.cpp
@@ -27,6 +27,10 @@ const ::google::protobuf::Map<TString, Ydb::TypedValue>& TProtoAccessor::GetProt
return params.GetProtoMap();
}
+::google::protobuf::Map<TString, Ydb::TypedValue>* TProtoAccessor::GetProtoMapPtr(TParams& params) {
+ return params.GetProtoMapPtr();
+}
+
template Ydb::Export::ExportToS3Settings::Scheme TProtoAccessor::GetProto<Ydb::Export::ExportToS3Settings>(ES3Scheme value);
template Ydb::Import::ImportFromS3Settings::Scheme TProtoAccessor::GetProto<Ydb::Import::ImportFromS3Settings>(ES3Scheme value);
diff --git a/ydb/public/sdk/cpp/client/ydb_proto/accessor.h b/ydb/public/sdk/cpp/client/ydb_proto/accessor.h
index 541fc54809..e2dda78f2b 100644
--- a/ydb/public/sdk/cpp/client/ydb_proto/accessor.h
+++ b/ydb/public/sdk/cpp/client/ydb_proto/accessor.h
@@ -38,6 +38,7 @@ public:
static const Ydb::Value& GetProto(const TValue& value);
static const Ydb::ResultSet& GetProto(const TResultSet& resultSet);
static const ::google::protobuf::Map<TString, Ydb::TypedValue>& GetProtoMap(const TParams& params);
+ static ::google::protobuf::Map<TString, Ydb::TypedValue>* GetProtoMapPtr(TParams& params);
static const Ydb::TableStats::QueryStats& GetProto(const NTable::TQueryStats& queryStats);
static const Ydb::Table::DescribeTableResult& GetProto(const NTable::TTableDescription& tableDescription);
static const Ydb::Topic::DescribeTopicResult& GetProto(const NYdb::NTopic::TTopicDescription& topicDescription);
diff --git a/ydb/public/sdk/cpp/client/ydb_query/client.cpp b/ydb/public/sdk/cpp/client/ydb_query/client.cpp
index e502b69fe1..2ca4d63357 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/client.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_query/client.cpp
@@ -1,7 +1,11 @@
#include "client.h"
+#include "impl/client_session.h"
#define INCLUDE_YDB_INTERNAL_H
+#include <ydb/public/sdk/cpp/client/impl/ydb_endpoints/endpoints.h>
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/session_client/session_client.h>
#include <ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/make.h>
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.h>
#undef INCLUDE_YDB_INTERNAL_H
#include <ydb/public/lib/operation_id/operation_id.h>
@@ -10,11 +14,17 @@
namespace NYdb::NQuery {
-class TQueryClient::TImpl: public TClientImplCommon<TQueryClient::TImpl> {
+TCreateSessionSettings::TCreateSessionSettings() {
+ ClientTimeout_ = TDuration::Seconds(5);
+};
+
+class TQueryClient::TImpl: public TClientImplCommon<TQueryClient::TImpl>, public ISessionClient {
+ friend class ::NYdb::NQuery::TSession;
public:
TImpl(std::shared_ptr<TGRpcConnectionsImpl>&& connections, const TClientSettings& settings)
: TClientImplCommon(std::move(connections), settings)
, Settings_(settings)
+ , SessionPool_(Settings_.SessionPoolSettings_.MaxActiveSessions_)
{
}
@@ -23,15 +33,18 @@ public:
}
TAsyncExecuteQueryIterator StreamExecuteQuery(const TString& query, const TTxControl& txControl,
- const TMaybe<TParams>& params, const TExecuteQuerySettings& settings)
+ const TMaybe<TParams>& params, const TExecuteQuerySettings& settings, const TString& sessionId = {})
{
- return TExecQueryImpl::StreamExecuteQuery(Connections_, DbDriverState_, query, txControl, params, settings);
+ return TExecQueryImpl::StreamExecuteQuery(
+ Connections_, DbDriverState_, query, txControl, params, settings, sessionId);
}
TAsyncExecuteQueryResult ExecuteQuery(const TString& query, const TTxControl& txControl,
- const TMaybe<TParams>& params, const TExecuteQuerySettings& settings)
+ const TMaybe<TParams>& params, const TExecuteQuerySettings& settings,
+ const TString& sessionId = {})
{
- return TExecQueryImpl::ExecuteQuery(Connections_, DbDriverState_, query, txControl, params, settings);
+ return TExecQueryImpl::ExecuteQuery(
+ Connections_, DbDriverState_, query, txControl, params, settings, sessionId);
}
NThreading::TFuture<TScriptExecutionOperation> ExecuteScript(const TString& script, const TExecuteScriptSettings& settings) {
@@ -41,7 +54,7 @@ public:
request.set_stats_mode(settings.StatsMode_);
request.mutable_script_content()->set_syntax(settings.Syntax_);
request.mutable_script_content()->set_text(script);
-
+ SetDuration(settings.ResultsTtl_, *request.mutable_results_ttl());
auto promise = NThreading::NewPromise<TScriptExecutionOperation>();
auto responseCb = [promise]
@@ -72,17 +85,10 @@ public:
return promise.GetFuture();
}
- TAsyncFetchScriptResultsResult FetchScriptResults(const TString& executionId, int64_t resultSetId, const TFetchScriptResultsSettings& settings) {
- auto request = MakeRequest<Ydb::Query::FetchScriptResultsRequest>();
- request.set_execution_id(executionId);
- request.set_result_set_id(resultSetId);
- return FetchScriptResultsImpl(std::move(request), settings);
- }
-
- TAsyncFetchScriptResultsResult FetchScriptResults(const TScriptExecutionOperation& scriptExecutionOperation, int64_t resultSetId, const TFetchScriptResultsSettings& settings) {
+ TAsyncFetchScriptResultsResult FetchScriptResults(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetIndex, const TFetchScriptResultsSettings& settings) {
auto request = MakeRequest<Ydb::Query::FetchScriptResultsRequest>();
- request.set_operation_id(NKikimr::NOperationId::ProtoToString(scriptExecutionOperation.Id()));
- request.set_result_set_id(resultSetId);
+ request.set_operation_id(NKikimr::NOperationId::ProtoToString(operationId));
+ request.set_result_set_index(resultSetIndex);
return FetchScriptResultsImpl(std::move(request), settings);
}
@@ -134,13 +140,222 @@ public:
return promise.GetFuture();
}
+ void DeleteSession(TKqpSessionCommon* sessionImpl) override {
+ //TODO: Remove this copy-paste
+
+ // Closing not owned by session pool session should not fire getting new session
+ if (sessionImpl->IsOwnedBySessionPool()) {
+ if (SessionPool_.CheckAndFeedWaiterNewSession(sessionImpl->NeedUpdateActiveCounter())) {
+ // We requested new session for waiter which already incremented
+ // active session counter and old session will be deleted
+ // - skip update active counter in this case
+ sessionImpl->SetNeedUpdateActiveCounter(false);
+ }
+ }
+
+ if (sessionImpl->NeedUpdateActiveCounter()) {
+ SessionPool_.DecrementActiveCounter();
+ }
+
+ delete sessionImpl;
+ }
+
+ bool ReturnSession(TKqpSessionCommon* sessionImpl) override {
+ Y_VERIFY(sessionImpl->GetState() == TSession::TImpl::S_ACTIVE ||
+ sessionImpl->GetState() == TSession::TImpl::S_IDLE);
+
+ //TODO: Remove this copy-paste from table client
+ bool needUpdateCounter = sessionImpl->NeedUpdateActiveCounter();
+ // Also removes NeedUpdateActiveCounter flag
+ sessionImpl->MarkIdle();
+ sessionImpl->SetTimeInterval(TDuration::Zero());
+ if (!SessionPool_.ReturnSession(sessionImpl, needUpdateCounter)) {
+ sessionImpl->SetNeedUpdateActiveCounter(needUpdateCounter);
+ return false;
+ }
+ return true;
+ }
+
+ void DoAttachSession(Ydb::Query::CreateSessionResponse* resp,
+ NThreading::TPromise<TCreateSessionResult> promise, const TString& endpoint,
+ std::shared_ptr<TQueryClient::TImpl> client)
+ {
+ using TStreamProcessorPtr = TSession::TImpl::TStreamProcessorPtr;
+ Ydb::Query::AttachSessionRequest request;
+ const auto sessionId = resp->session_id();
+ request.set_session_id(sessionId);
+
+ const auto endpointKey = TEndpointKey(endpoint, GetNodeIdFromSession(sessionId));
+
+ auto args = std::make_shared<TSession::TImpl::TAttachSessionArgs>(promise, sessionId, endpoint, client);
+
+ // Do not pass client timeout here. Session must be alive
+ static const TRpcRequestSettings rpcSettings;
+
+ Connections_->StartReadStream<
+ Ydb::Query::V1::QueryService,
+ Ydb::Query::AttachSessionRequest,
+ Ydb::Query::SessionState>
+ (
+ std::move(request),
+ [args] (TPlainStatus status, TStreamProcessorPtr processor) mutable {
+ if (processor) {
+ TSession::TImpl::MakeImplAsync(processor, args);
+ } else {
+ TStatus st(std::move(status));
+ args->Promise.SetValue(TCreateSessionResult(std::move(st), TSession()));
+ }
+ },
+ &Ydb::Query::V1::QueryService::Stub::AsyncAttachSession,
+ DbDriverState_,
+ rpcSettings,
+ endpointKey);
+ }
+
+ TAsyncCreateSessionResult CreateAttachedSession(TDuration timeout) {
+ using namespace Ydb::Query;
+
+ Ydb::Query::CreateSessionRequest request;
+
+ auto promise = NThreading::NewPromise<TCreateSessionResult>();
+
+ auto self = shared_from_this();
+
+ auto extractor = [promise, self] (Ydb::Query::CreateSessionResponse* resp, TPlainStatus status) mutable {
+ if (resp) {
+ if (resp->status() != Ydb::StatusIds::SUCCESS) {
+ NYql::TIssues opIssues;
+ NYql::IssuesFromMessage(resp->issues(), opIssues);
+ TStatus st(static_cast<EStatus>(resp->status()), std::move(opIssues));
+ promise.SetValue(TCreateSessionResult(std::move(st), TSession()));
+ } else {
+ self->DoAttachSession(resp, promise, status.Endpoint, self);
+ }
+ } else {
+ TStatus st(std::move(status));
+ promise.SetValue(TCreateSessionResult(std::move(st), TSession()));
+ }
+ };
+
+ TRpcRequestSettings rpcSettings;
+ rpcSettings.ClientTimeout = timeout;
+
+ Connections_->Run<V1::QueryService, CreateSessionRequest, CreateSessionResponse>(
+ std::move(request),
+ extractor,
+ &V1::QueryService::Stub::AsyncCreateSession,
+ DbDriverState_,
+ rpcSettings,
+ TEndpointKey());
+
+ return promise.GetFuture();
+ }
+
+ TAsyncCreateSessionResult GetSession(const TCreateSessionSettings& settings) {
+ using namespace NSessionPool;
+
+ class TQueryClientGetSessionCtx : public IGetSessionCtx {
+ public:
+ TQueryClientGetSessionCtx(std::shared_ptr<TQueryClient::TImpl> client, TDuration timeout)
+ : Promise(NThreading::NewPromise<TCreateSessionResult>())
+ , Client(client)
+ , ClientTimeout(timeout)
+ {}
+
+ TAsyncCreateSessionResult GetFuture() {
+ return Promise.GetFuture();
+ }
+
+ void ReplyError(TStatus status) override {
+ TSession session;
+ ScheduleReply(TCreateSessionResult(std::move(status), std::move(session)));
+ }
+
+ void ReplySessionToUser(TKqpSessionCommon* session) override {
+ TCreateSessionResult val(
+ TStatus(TPlainStatus()),
+ TSession(
+ Client,
+ static_cast<TSession::TImpl*>(session)
+ )
+ );
+
+ ScheduleReply(std::move(val));
+ }
+
+ void ReplyNewSession() override {
+ Client->CreateAttachedSession(ClientTimeout).Subscribe(
+ [promise{std::move(Promise)}](TAsyncCreateSessionResult future) mutable
+ {
+ promise.SetValue(future.ExtractValue());
+ });
+ }
+
+ private:
+ void ScheduleReply(TCreateSessionResult val) {
+ Promise.SetValue(std::move(val));
+ }
+ NThreading::TPromise<TCreateSessionResult> Promise;
+ std::shared_ptr<TQueryClient::TImpl> Client;
+ TDuration ClientTimeout;
+ };
+
+ auto ctx = std::make_unique<TQueryClientGetSessionCtx>(shared_from_this(), settings.ClientTimeout_);
+ auto future = ctx->GetFuture();
+ SessionPool_.GetSession(std::move(ctx));
+ return future;
+ }
+
+ i64 GetActiveSessionCount() const {
+ return SessionPool_.GetActiveSessions();
+ }
+
+ i64 GetActiveSessionsLimit() const {
+ return SessionPool_.GetActiveSessionsLimit();
+ }
+
+ i64 GetCurrentPoolSize() const {
+ return SessionPool_.GetCurrentPoolSize();
+ }
+
+ void StartPeriodicSessionPoolTask() {
+ // Session pool guarantees than client is alive during call callbacks
+ auto deletePredicate = [this](TKqpSessionCommon* s, size_t sessionsCount) {
+
+ const auto& sessionPoolSettings = Settings_.SessionPoolSettings_;
+ const auto spentTime = s->GetTimeToTouchFast() - s->GetTimeInPastFast();
+
+ if (spentTime >= sessionPoolSettings.CloseIdleThreshold_) {
+ if (sessionsCount > sessionPoolSettings.MinPoolSize_) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+
+ // No need to keep-alive
+ auto keepAliveCmd = [](TKqpSessionCommon*) {
+ };
+
+ std::weak_ptr<TQueryClient::TImpl> weak = shared_from_this();
+ Connections_->AddPeriodicTask(
+ SessionPool_.CreatePeriodicTask(
+ weak,
+ std::move(keepAliveCmd),
+ std::move(deletePredicate)
+ ), NSessionPool::PERIODIC_ACTION_INTERVAL);
+ }
+
private:
TClientSettings Settings_;
+ NSessionPool::TSessionPool SessionPool_;
};
TQueryClient::TQueryClient(const TDriver& driver, const TClientSettings& settings)
: Impl_(new TQueryClient::TImpl(CreateInternalInterface(driver), settings))
{
+ Impl_->StartPeriodicSessionPoolTask();
}
TAsyncExecuteQueryResult TQueryClient::ExecuteQuery(const TString& query, const TTxControl& txControl,
@@ -174,16 +389,93 @@ NThreading::TFuture<TScriptExecutionOperation> TQueryClient::ExecuteScript(const
return Impl_->ExecuteScript(script, settings);
}
-TAsyncFetchScriptResultsResult TQueryClient::FetchScriptResults(const TString& executionId, int64_t resultSetId,
+TAsyncFetchScriptResultsResult TQueryClient::FetchScriptResults(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetIndex,
const TFetchScriptResultsSettings& settings)
{
- return Impl_->FetchScriptResults(executionId, resultSetId, settings);
+ return Impl_->FetchScriptResults(operationId, resultSetIndex, settings);
}
-TAsyncFetchScriptResultsResult TQueryClient::FetchScriptResults(const TScriptExecutionOperation& scriptExecutionOperation, int64_t resultSetId,
- const TFetchScriptResultsSettings& settings)
+TAsyncCreateSessionResult TQueryClient::GetSession(const TCreateSessionSettings& settings)
+{
+ return Impl_->GetSession(settings);
+}
+
+i64 TQueryClient::GetActiveSessionCount() const {
+ return Impl_->GetActiveSessionCount();
+}
+
+i64 TQueryClient::GetActiveSessionsLimit() const {
+ return Impl_->GetActiveSessionsLimit();
+}
+
+i64 TQueryClient::GetCurrentPoolSize() const {
+ return Impl_->GetCurrentPoolSize();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+TCreateSessionResult::TCreateSessionResult(TStatus&& status, TSession&& session)
+ : TStatus(std::move(status))
+ , Session_(std::move(session))
+{}
+
+TSession TCreateSessionResult::GetSession() const {
+ CheckStatusOk("TCreateSessionResult::GetSession");
+ return Session_;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+TSession::TSession()
+{}
+
+TSession::TSession(std::shared_ptr<TQueryClient::TImpl> client, TSession::TImpl* session)
+ : Client_(client)
+ , SessionImpl_(session, TKqpSessionCommon::GetSmartDeleter(client))
+{}
+
+const TString& TSession::GetId() const {
+ return SessionImpl_->GetId();
+}
+
+TAsyncExecuteQueryResult TSession::ExecuteQuery(const TString& query, const TTxControl& txControl,
+ const TExecuteQuerySettings& settings)
+{
+ return NSessionPool::InjectSessionStatusInterception(
+ SessionImpl_,
+ Client_->ExecuteQuery(query, txControl, {}, settings, SessionImpl_->GetId()),
+ true,
+ Client_->Settings_.SessionPoolSettings_.CloseIdleThreshold_);
+}
+
+TAsyncExecuteQueryResult TSession::ExecuteQuery(const TString& query, const TTxControl& txControl,
+ const TParams& params, const TExecuteQuerySettings& settings)
+{
+ return NSessionPool::InjectSessionStatusInterception(
+ SessionImpl_,
+ Client_->ExecuteQuery(query, txControl, params, settings, SessionImpl_->GetId()),
+ true,
+ Client_->Settings_.SessionPoolSettings_.CloseIdleThreshold_);
+}
+
+TAsyncExecuteQueryIterator TSession::StreamExecuteQuery(const TString& query, const TTxControl& txControl,
+ const TExecuteQuerySettings& settings)
+{
+ return NSessionPool::InjectSessionStatusInterception(
+ SessionImpl_,
+ Client_->StreamExecuteQuery(query, txControl, {}, settings, SessionImpl_->GetId()),
+ true,
+ Client_->Settings_.SessionPoolSettings_.CloseIdleThreshold_);
+}
+
+TAsyncExecuteQueryIterator TSession::StreamExecuteQuery(const TString& query, const TTxControl& txControl,
+ const TParams& params, const TExecuteQuerySettings& settings)
{
- return Impl_->FetchScriptResults(scriptExecutionOperation, resultSetId, settings);
+ return NSessionPool::InjectSessionStatusInterception(
+ SessionImpl_,
+ Client_->StreamExecuteQuery(query, txControl, params, settings, SessionImpl_->GetId()),
+ true,
+ Client_->Settings_.SessionPoolSettings_.CloseIdleThreshold_);
}
} // namespace NYdb::NQuery
diff --git a/ydb/public/sdk/cpp/client/ydb_query/client.h b/ydb/public/sdk/cpp/client/ydb_query/client.h
index 719dca0709..88e73e6689 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/client.h
+++ b/ydb/public/sdk/cpp/client/ydb_query/client.h
@@ -15,15 +15,43 @@ namespace NYdb {
namespace NYdb::NQuery {
+struct TCreateSessionSettings : public TSimpleRequestSettings<TCreateSessionSettings> {
+ TCreateSessionSettings();
+};
+
+class TCreateSessionResult;
+using TAsyncCreateSessionResult = NThreading::TFuture<TCreateSessionResult>;
+
+struct TSessionPoolSettings {
+ using TSelf = TSessionPoolSettings;
+
+ // Max number of sessions client can get from session pool
+ FLUENT_SETTING_DEFAULT(ui32, MaxActiveSessions, 50);
+
+ // Max time session to be in idle state before closing
+ FLUENT_SETTING_DEFAULT(TDuration, CloseIdleThreshold, TDuration::Minutes(1));
+
+ // Min number of session in session pool.
+ // Sessions will not be closed by CloseIdleThreshold if the number of sessions less then this limit.
+ FLUENT_SETTING_DEFAULT(ui32, MinPoolSize, 10);
+};
+
struct TClientSettings : public TCommonClientSettingsBase<TClientSettings> {
+ using TSessionPoolSettings = TSessionPoolSettings;
using TSelf = TClientSettings;
+ FLUENT_SETTING(TSessionPoolSettings, SessionPoolSettings);
};
// ! WARNING: Experimental API
// ! This API is currently in experimental state and is a subject for changes.
// ! No backward and/or forward compatibility guarantees are provided.
// ! DO NOT USE for production workloads.
+class TSession;
class TQueryClient {
+ friend class TSession;
+public:
+ using TSettings = TClientSettings;
+ using TSession = TSession;
public:
TQueryClient(const TDriver& driver, const TClientSettings& settings = TClientSettings());
@@ -42,15 +70,60 @@ public:
NThreading::TFuture<TScriptExecutionOperation> ExecuteScript(const TString& script,
const TExecuteScriptSettings& settings = TExecuteScriptSettings());
- TAsyncFetchScriptResultsResult FetchScriptResults(const TString& executionId, int64_t resultSetId,
+ TAsyncFetchScriptResultsResult FetchScriptResults(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetIndex,
const TFetchScriptResultsSettings& settings = TFetchScriptResultsSettings());
- TAsyncFetchScriptResultsResult FetchScriptResults(const TScriptExecutionOperation& scriptExecutionOperation, int64_t resultSetId,
- const TFetchScriptResultsSettings& settings = TFetchScriptResultsSettings());
+ TAsyncCreateSessionResult GetSession(const TCreateSessionSettings& settings = TCreateSessionSettings());
+
+ //! Returns number of active sessions given via session pool
+ i64 GetActiveSessionCount() const;
+
+ //! Returns the maximum number of sessions in session pool
+ i64 GetActiveSessionsLimit() const;
+
+ //! Returns the size of session pool
+ i64 GetCurrentPoolSize() const;
private:
class TImpl;
std::shared_ptr<TImpl> Impl_;
};
+class TSession {
+ friend class TQueryClient;
+public:
+ const TString& GetId() const;
+
+ TAsyncExecuteQueryResult ExecuteQuery(const TString& query, const TTxControl& txControl,
+ const TExecuteQuerySettings& settings = TExecuteQuerySettings());
+
+ TAsyncExecuteQueryResult ExecuteQuery(const TString& query, const TTxControl& txControl,
+ const TParams& params, const TExecuteQuerySettings& settings = TExecuteQuerySettings());
+
+ TAsyncExecuteQueryIterator StreamExecuteQuery(const TString& query, const TTxControl& txControl,
+ const TExecuteQuerySettings& settings = TExecuteQuerySettings());
+
+ TAsyncExecuteQueryIterator StreamExecuteQuery(const TString& query, const TTxControl& txControl,
+ const TParams& params, const TExecuteQuerySettings& settings = TExecuteQuerySettings());
+
+
+ class TImpl;
+private:
+ TSession();
+ TSession(std::shared_ptr<TQueryClient::TImpl> client, TSession::TImpl* sessionImpl);
+
+ std::shared_ptr<TQueryClient::TImpl> Client_;
+ std::shared_ptr<TSession::TImpl> SessionImpl_;
+};
+
+class TCreateSessionResult: public TStatus {
+ friend class TSession::TImpl;
+public:
+ TCreateSessionResult(TStatus&& status, TSession&& session);
+ TSession GetSession() const;
+
+private:
+ TSession Session_;
+};
+
} // namespace NYdb::NQuery
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-x86_64.txt
index 89fba98935..5636e88260 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-x86_64.txt
@@ -18,4 +18,5 @@ target_link_libraries(client-ydb_query-impl PUBLIC
)
target_sources(client-ydb_query-impl PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.cpp
)
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-aarch64.txt
index 89e9a242f2..09ad124d13 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-aarch64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-aarch64.txt
@@ -19,4 +19,5 @@ target_link_libraries(client-ydb_query-impl PUBLIC
)
target_sources(client-ydb_query-impl PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.cpp
)
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-x86_64.txt
index 89e9a242f2..09ad124d13 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.linux-x86_64.txt
@@ -19,4 +19,5 @@ target_link_libraries(client-ydb_query-impl PUBLIC
)
target_sources(client-ydb_query-impl PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.cpp
)
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.windows-x86_64.txt
index 89fba98935..5636e88260 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.windows-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.windows-x86_64.txt
@@ -18,4 +18,5 @@ target_link_libraries(client-ydb_query-impl PUBLIC
)
target_sources(client-ydb_query-impl PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.cpp
)
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.cpp b/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.cpp
new file mode 100644
index 0000000000..daa45e45ef
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.cpp
@@ -0,0 +1,62 @@
+#include "client_session.h"
+
+#define INCLUDE_YDB_INTERNAL_H
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/plain_status/status.h>
+#undef INCLUDE_YDB_INTERNAL_H
+
+#include <ydb/library/yql/public/issue/yql_issue_message.h>
+
+namespace NYdb::NQuery {
+
+TSession::TImpl::TImpl(TStreamProcessorPtr ptr, const TString& sessionId, const TString& endpoint)
+ : TKqpSessionCommon(sessionId, endpoint, true)
+ , StreamProcessor_(ptr)
+{
+ MarkActive();
+ SetNeedUpdateActiveCounter(true);
+}
+
+TSession::TImpl::~TImpl()
+{
+ StreamProcessor_->Cancel();
+}
+
+void TSession::TImpl::MakeImplAsync(TStreamProcessorPtr ptr,
+ std::shared_ptr<TAttachSessionArgs> args)
+{
+ auto resp = std::make_shared<Ydb::Query::SessionState>();
+ ptr->Read(resp.get(), [args, resp, ptr](NGrpc::TGrpcStatus grpcStatus) mutable {
+ if (grpcStatus.GRpcStatusCode != grpc::StatusCode::OK) {
+ TStatus st(TPlainStatus(grpcStatus, args->Endpoint));
+ args->Promise.SetValue(TCreateSessionResult(std::move(st), TSession()));
+
+ } else {
+ if (resp->status() == Ydb::StatusIds::SUCCESS) {
+ NYdb::TStatus st(TPlainStatus(grpcStatus, args->Endpoint));
+ TSession::TImpl::NewSmartShared(ptr, std::move(args), st);
+
+ } else {
+ NYql::TIssues opIssues;
+ NYql::IssuesFromMessage(resp->issues(), opIssues);
+ TStatus st(static_cast<EStatus>(resp->status()), std::move(opIssues));
+ args->Promise.SetValue(TCreateSessionResult(std::move(st), TSession()));
+ }
+ }
+ });
+}
+
+void TSession::TImpl::NewSmartShared(TStreamProcessorPtr ptr,
+ std::shared_ptr<TAttachSessionArgs> args, NYdb::TStatus st)
+{
+ args->Promise.SetValue(
+ TCreateSessionResult(
+ std::move(st),
+ TSession(
+ args->Client,
+ new TSession::TImpl(ptr, args->SessionId, args->Endpoint)
+ )
+ )
+ );
+}
+
+}
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.h b/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.h
new file mode 100644
index 0000000000..fd9d224291
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/client_session.h
@@ -0,0 +1,40 @@
+#pragma once
+
+#include <ydb/public/sdk/cpp/client/ydb_query/client.h>
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.h>
+
+namespace NYdb::NQuery {
+
+class TSession::TImpl : public TKqpSessionCommon {
+public:
+ struct TAttachSessionArgs {
+ TAttachSessionArgs(NThreading::TPromise<TCreateSessionResult> promise,
+ TString sessionId,
+ TString endpoint,
+ std::shared_ptr<TQueryClient::TImpl> client)
+ : Promise(promise)
+ , SessionId(sessionId)
+ , Endpoint(endpoint)
+ , Client(client)
+ { }
+ NThreading::TPromise<TCreateSessionResult> Promise;
+ TString SessionId;
+ TString Endpoint;
+ std::shared_ptr<TQueryClient::TImpl> Client;
+ };
+
+ using TResponse = Ydb::Query::SessionState;
+ using TStreamProcessorPtr = NGrpc::IStreamRequestReadProcessor<TResponse>::TPtr;
+ TImpl(TStreamProcessorPtr ptr, const TString& id, const TString& endpoint);
+ ~TImpl();
+
+ static void MakeImplAsync(TStreamProcessorPtr processor, std::shared_ptr<TAttachSessionArgs> args);
+
+private:
+ static void NewSmartShared(TStreamProcessorPtr ptr, std::shared_ptr<TAttachSessionArgs> args, NYdb::TStatus status);
+
+private:
+ TStreamProcessorPtr StreamProcessor_;
+};
+
+}
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp b/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp
index a511c0ef42..6cf6344618 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.cpp
@@ -182,13 +182,16 @@ struct TExecuteQueryBuffer : public TThrRefBase, TNonCopyable {
TFuture<std::pair<TPlainStatus, TExecuteQueryProcessorPtr>> StreamExecuteQueryImpl(
const std::shared_ptr<TGRpcConnectionsImpl>& connections, const TDbDriverStatePtr& driverState,
const TString& query, const TTxControl& txControl, const ::google::protobuf::Map<TString, Ydb::TypedValue>* params,
- const TExecuteQuerySettings& settings)
+ const TExecuteQuerySettings& settings, const TString& sessionId)
{
auto request = MakeRequest<Ydb::Query::ExecuteQueryRequest>();
request.set_exec_mode(::Ydb::Query::ExecMode(settings.ExecMode_));
request.set_stats_mode(::Ydb::Query::StatsMode(settings.StatsMode_));
request.mutable_query_content()->set_text(query);
request.mutable_query_content()->set_syntax(::Ydb::Query::Syntax(settings.Syntax_));
+ if (sessionId) {
+ request.set_session_id(sessionId);
+ }
if (settings.ConcurrentResultSets_) {
request.set_concurrent_result_sets(*settings.ConcurrentResultSets_);
@@ -232,7 +235,7 @@ TFuture<std::pair<TPlainStatus, TExecuteQueryProcessorPtr>> StreamExecuteQueryIm
TAsyncExecuteQueryIterator TExecQueryImpl::StreamExecuteQuery(const std::shared_ptr<TGRpcConnectionsImpl>& connections,
const TDbDriverStatePtr& driverState, const TString& query, const TTxControl& txControl,
- const TMaybe<TParams>& params, const TExecuteQuerySettings& settings)
+ const TMaybe<TParams>& params, const TExecuteQuerySettings& settings, const TString& sessionId)
{
auto promise = NewPromise<TExecuteQueryIterator>();
@@ -251,19 +254,19 @@ TAsyncExecuteQueryIterator TExecQueryImpl::StreamExecuteQuery(const std::shared_
? &params->GetProtoMap()
: nullptr;
- StreamExecuteQueryImpl(connections, driverState, query, txControl, paramsProto, settings)
+ StreamExecuteQueryImpl(connections, driverState, query, txControl, paramsProto, settings, sessionId)
.Subscribe(iteratorCallback);
return promise.GetFuture();
}
TAsyncExecuteQueryResult TExecQueryImpl::ExecuteQuery(const std::shared_ptr<TGRpcConnectionsImpl>& connections,
const TDbDriverStatePtr& driverState, const TString& query, const TTxControl& txControl,
- const TMaybe<TParams>& params, const TExecuteQuerySettings& settings)
+ const TMaybe<TParams>& params, const TExecuteQuerySettings& settings, const TString& sessionId)
{
auto syncSettings = settings;
syncSettings.ConcurrentResultSets(true);
- return StreamExecuteQuery(connections, driverState, query, txControl, params, syncSettings)
+ return StreamExecuteQuery(connections, driverState, query, txControl, params, syncSettings, sessionId)
.Apply([](TAsyncExecuteQueryIterator itFuture){
auto it = itFuture.ExtractValue();
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h b/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h
index b7fd5b0872..24765225a7 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h
@@ -13,11 +13,11 @@ class TExecQueryImpl {
public:
static TAsyncExecuteQueryIterator StreamExecuteQuery(const std::shared_ptr<TGRpcConnectionsImpl>& connections,
const TDbDriverStatePtr& driverState, const TString& query, const TTxControl& txControl,
- const TMaybe<TParams>& params, const TExecuteQuerySettings& settings);
+ const TMaybe<TParams>& params, const TExecuteQuerySettings& settings, const TString& sessionId);
static TAsyncExecuteQueryResult ExecuteQuery(const std::shared_ptr<TGRpcConnectionsImpl>& connections,
const TDbDriverStatePtr& driverState, const TString& query, const TTxControl& txControl,
- const TMaybe<TParams>& params, const TExecuteQuerySettings& settings);
+ const TMaybe<TParams>& params, const TExecuteQuerySettings& settings, const TString& sessionId);
};
} // namespace NYdb::NQuery::NImpl
diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/ya.make b/ydb/public/sdk/cpp/client/ydb_query/impl/ya.make
index 969bcdd774..23bae5bf53 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/impl/ya.make
+++ b/ydb/public/sdk/cpp/client/ydb_query/impl/ya.make
@@ -3,6 +3,7 @@ LIBRARY()
SRCS(
exec_query.cpp
exec_query.h
+ client_session.cpp
)
PEERDIR(
diff --git a/ydb/public/sdk/cpp/client/ydb_query/query.cpp b/ydb/public/sdk/cpp/client/ydb_query/query.cpp
index bb5d7e0e27..9fae3953e9 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/query.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_query/query.cpp
@@ -14,6 +14,10 @@ TResultSet TExecuteQueryResult::GetResultSet(size_t resultIndex) const {
return ResultSets_[resultIndex];
}
+TResultSetParser TExecuteQueryResult::GetResultSetParser(size_t resultIndex) const {
+ return TResultSetParser(GetResultSet(resultIndex));
+}
+
TScriptExecutionOperation::TScriptExecutionOperation(TStatus&& status, Ydb::Operations::Operation&& operation)
: TOperation(std::move(status), std::move(operation))
{
@@ -24,14 +28,12 @@ TScriptExecutionOperation::TScriptExecutionOperation(TStatus&& status, Ydb::Oper
Metadata_.ExecMode = static_cast<EExecMode>(metadata.exec_mode());
Metadata_.ExecStatus = static_cast<EExecStatus>(metadata.exec_status());
Metadata_.ExecStats = metadata.exec_stats();
+ Metadata_.ResultSetsMeta.insert(Metadata_.ResultSetsMeta.end(), metadata.result_sets_meta().begin(), metadata.result_sets_meta().end());
if (metadata.has_script_content()) {
Metadata_.ScriptContent.Syntax = static_cast<ESyntax>(metadata.script_content().syntax());
Metadata_.ScriptContent.Text = metadata.script_content().text();
}
- if (metadata.has_script_id()) {
- Metadata_.ScriptId = TVersionedScriptId(metadata.script_id().id(), metadata.script_id().revision());
- }
}
} // namespace NYdb::NQuery
diff --git a/ydb/public/sdk/cpp/client/ydb_query/query.h b/ydb/public/sdk/cpp/client/ydb_query/query.h
index 23a5d37504..95b9e6ccdb 100644
--- a/ydb/public/sdk/cpp/client/ydb_query/query.h
+++ b/ydb/public/sdk/cpp/client/ydb_query/query.h
@@ -130,30 +130,7 @@ struct TExecuteScriptSettings : public TOperationRequestSettings<TExecuteScriptS
FLUENT_SETTING_DEFAULT(Ydb::Query::Syntax, Syntax, Ydb::Query::SYNTAX_YQL_V1);
FLUENT_SETTING_DEFAULT(Ydb::Query::ExecMode, ExecMode, Ydb::Query::EXEC_MODE_EXECUTE);
FLUENT_SETTING_DEFAULT(Ydb::Query::StatsMode, StatsMode, Ydb::Query::STATS_MODE_NONE);
-};
-
-class TVersionedScriptId {
-public:
- TVersionedScriptId(const TString& id, TMaybe<i64> revision = Nothing())
- : Id_(id)
- , Revision_(revision)
- {}
-
- const TString& Id() const {
- return Id_;
- }
-
- TMaybe<i64> Revision() const {
- return Revision_;
- }
-
- void SetRevision(i64 revision) {
- Revision_ = revision;
- }
-
-private:
- TString Id_;
- TMaybe<i64> Revision_;
+ FLUENT_SETTING(TDuration, ResultsTtl);
};
class TQueryContent {
@@ -176,10 +153,9 @@ public:
EExecStatus ExecStatus = EExecStatus::Unspecified;
EExecMode ExecMode = EExecMode::Unspecified;
- // Not greater than one of SavedScriptId or QueryContent is set.
- std::optional<TVersionedScriptId> ScriptId;
TQueryContent ScriptContent;
Ydb::TableStats::QueryStats ExecStats;
+ TVector<Ydb::Query::ResultSetMeta> ResultSetsMeta;
};
using TOperation::TOperation;
diff --git a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-x86_64.txt
index 5d35f202cc..33b6f4812a 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.darwin-x86_64.txt
@@ -22,6 +22,7 @@ target_link_libraries(cpp-client-ydb_table PUBLIC
tools-enum_parser-enum_serialization_runtime
api-protos
impl-ydb_internal-make_request
+ impl-ydb_internal-kqp_session_common
cpp-client-ydb_driver
cpp-client-ydb_params
cpp-client-ydb_proto
diff --git a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-aarch64.txt
index cc4ba76506..241f404ed3 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-aarch64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-aarch64.txt
@@ -23,6 +23,7 @@ target_link_libraries(cpp-client-ydb_table PUBLIC
tools-enum_parser-enum_serialization_runtime
api-protos
impl-ydb_internal-make_request
+ impl-ydb_internal-kqp_session_common
cpp-client-ydb_driver
cpp-client-ydb_params
cpp-client-ydb_proto
diff --git a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-x86_64.txt
index cc4ba76506..241f404ed3 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.linux-x86_64.txt
@@ -23,6 +23,7 @@ target_link_libraries(cpp-client-ydb_table PUBLIC
tools-enum_parser-enum_serialization_runtime
api-protos
impl-ydb_internal-make_request
+ impl-ydb_internal-kqp_session_common
cpp-client-ydb_driver
cpp-client-ydb_params
cpp-client-ydb_proto
diff --git a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.windows-x86_64.txt
index 5d35f202cc..33b6f4812a 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.windows-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/CMakeLists.windows-x86_64.txt
@@ -22,6 +22,7 @@ target_link_libraries(cpp-client-ydb_table PUBLIC
tools-enum_parser-enum_serialization_runtime
api-protos
impl-ydb_internal-make_request
+ impl-ydb_internal-kqp_session_common
cpp-client-ydb_driver
cpp-client-ydb_params
cpp-client-ydb_proto
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-x86_64.txt
index a82f241d2c..1b69401e71 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.darwin-x86_64.txt
@@ -15,6 +15,7 @@ target_link_libraries(client-ydb_table-impl PUBLIC
api-protos
lib-operation_id-protos
client-impl-ydb_endpoints
+ impl-ydb_internal-session_pool
client-ydb_table-query_stats
public-issue-protos
)
@@ -23,6 +24,5 @@ target_sources(client-ydb_table-impl PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/data_query.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/readers.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp
- ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp
)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-aarch64.txt
index b3b691a276..7d2b31b399 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-aarch64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-aarch64.txt
@@ -16,6 +16,7 @@ target_link_libraries(client-ydb_table-impl PUBLIC
api-protos
lib-operation_id-protos
client-impl-ydb_endpoints
+ impl-ydb_internal-session_pool
client-ydb_table-query_stats
public-issue-protos
)
@@ -24,6 +25,5 @@ target_sources(client-ydb_table-impl PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/data_query.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/readers.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp
- ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp
)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-x86_64.txt
index b3b691a276..7d2b31b399 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.linux-x86_64.txt
@@ -16,6 +16,7 @@ target_link_libraries(client-ydb_table-impl PUBLIC
api-protos
lib-operation_id-protos
client-impl-ydb_endpoints
+ impl-ydb_internal-session_pool
client-ydb_table-query_stats
public-issue-protos
)
@@ -24,6 +25,5 @@ target_sources(client-ydb_table-impl PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/data_query.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/readers.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp
- ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp
)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.windows-x86_64.txt
index a82f241d2c..1b69401e71 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.windows-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/CMakeLists.windows-x86_64.txt
@@ -15,6 +15,7 @@ target_link_libraries(client-ydb_table-impl PUBLIC
api-protos
lib-operation_id-protos
client-impl-ydb_endpoints
+ impl-ydb_internal-session_pool
client-ydb_table-query_stats
public-issue-protos
)
@@ -23,6 +24,5 @@ target_sources(client-ydb_table-impl PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/data_query.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/readers.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp
- ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.cpp
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp
)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/client_session.cpp b/ydb/public/sdk/cpp/client/ydb_table/impl/client_session.cpp
index a15d9d9fa1..772e7c4aa3 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/client_session.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/client_session.cpp
@@ -6,109 +6,12 @@
namespace NYdb {
namespace NTable {
-ui64 GetNodeIdFromSession(const TString& sessionId) {
- if (sessionId.empty()) {
- return 0;
- }
-
- try {
- NKikimr::NOperationId::TOperationId opId(sessionId);
- const auto& nodeIds = opId.GetValue("node_id");
- if (nodeIds.size() != 1) {
- return 0;
- }
-
- return FromStringWithDefault<ui64>(*nodeIds[0], 0);
-
- } catch (...) {
- return 0;
- }
- return 0;
-}
-
TSession::TImpl::TImpl(const TString& sessionId, const TString& endpoint, bool useQueryCache, ui32 queryCacheSize, bool isOwnedBySessionPool)
- : SessionId_(sessionId)
- , EndpointKey_(endpoint, GetNodeIdFromSession(sessionId))
- , State_(S_STANDALONE)
+ : TKqpSessionCommon(sessionId, endpoint, isOwnedBySessionPool)
, UseQueryCache_(useQueryCache)
, QueryCache_(queryCacheSize)
- , Lock_()
- , TimeToTouch_(TInstant::Now())
- , TimeInPast_(TInstant::Now())
- , NeedUpdateActiveCounter_(false)
- , IsOwnedBySessionPool_(isOwnedBySessionPool)
{}
-TSession::TImpl::~TImpl() {
- Unlink();
-}
-
-const TString& TSession::TImpl::GetId() const {
- return SessionId_;
-}
-
-const TString& TSession::TImpl::GetEndpoint() const {
- return EndpointKey_.GetEndpoint();
-}
-
-const TEndpointKey& TSession::TImpl::GetEndpointKey() const {
- return EndpointKey_;
-}
-
-// Can be called from interceptor, need lock
-void TSession::TImpl::MarkBroken() {
- with_lock(Lock_) {
- if (State_ == EState::S_ACTIVE) {
- NeedUpdateActiveCounter_ = true;
- }
- State_ = EState::S_BROKEN;
- }
-}
-
-void TSession::TImpl::MarkAsClosing() {
- with_lock(Lock_) {
- if (State_ == EState::S_ACTIVE) {
- NeedUpdateActiveCounter_ = true;
- }
-
- State_ = EState::S_CLOSING;
- }
-}
-
-void TSession::TImpl::MarkStandalone() {
- State_ = EState::S_STANDALONE;
- NeedUpdateActiveCounter_ = false;
-}
-
-void TSession::TImpl::MarkActive() {
- State_ = EState::S_ACTIVE;
- NeedUpdateActiveCounter_ = false;
-}
-
-void TSession::TImpl::MarkIdle() {
- State_ = EState::S_IDLE;
- NeedUpdateActiveCounter_ = false;
-}
-
-bool TSession::TImpl::IsOwnedBySessionPool() const {
- return IsOwnedBySessionPool_;
-}
-
-TSession::TImpl::EState TSession::TImpl::GetState() const {
- // See comments in InjectSessionStatusInterception about lock
- with_lock(Lock_) {
- return State_;
- }
-}
-
-void TSession::TImpl::SetNeedUpdateActiveCounter(bool flag) {
- NeedUpdateActiveCounter_ = flag;
-}
-
-bool TSession::TImpl::NeedUpdateActiveCounter() const {
- return NeedUpdateActiveCounter_;
-}
-
void TSession::TImpl::InvalidateQueryInCache(const TString& key) {
if (!UseQueryCache_) {
return;
@@ -172,43 +75,6 @@ void TSession::TImpl::AddQueryToCache(const TDataQuery& query) {
}
}
-// We need lock here because this method can be called from different thread if client
-// makes simultaneous calls on one session. It should be possible to rewrite this part.
-void TSession::TImpl::ScheduleTimeToTouch(TDuration interval, bool updateTimeInPast) {
- auto now = TInstant::Now();
- with_lock(Lock_) {
- if (updateTimeInPast) {
- TimeInPast_ = now;
- }
- TimeToTouch_ = now + interval;
- }
-}
-
-void TSession::TImpl::ScheduleTimeToTouchFast(TDuration interval, bool updateTimeInPast) {
- auto now = TInstant::Now();
- if (updateTimeInPast) {
- TimeInPast_ = now;
- }
- TimeToTouch_ = now + interval;
-}
-
-TInstant TSession::TImpl::GetTimeToTouchFast() const {
- return TimeToTouch_;
-}
-
-TInstant TSession::TImpl::GetTimeInPastFast() const {
- return TimeInPast_;
-}
-
-// SetTimeInterval/GetTimeInterval, are not atomic!
-void TSession::TImpl::SetTimeInterval(TDuration interval) {
- TimeInterval_ = interval;
-}
-
-TDuration TSession::TImpl::GetTimeInterval() const {
- return TimeInterval_;
-}
-
const TLRUCache<TString, TSession::TImpl::TDataQueryInfo>& TSession::TImpl::GetQueryCacheUnsafe() const {
return QueryCache_;
}
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/client_session.h b/ydb/public/sdk/cpp/client/ydb_table/impl/client_session.h
index 9fb0330fe4..4b9d482f60 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/client_session.h
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/client_session.h
@@ -1,6 +1,7 @@
#pragma once
#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common/kqp_session_common.h>
#include <ydb/public/sdk/cpp/client/impl/ydb_endpoints/endpoints.h>
#include <ydb/public/lib/operation_id/operation_id.h>
@@ -20,7 +21,7 @@ namespace NTable {
using TSessionInspectorFn = std::function<void(TAsyncCreateSessionResult future)>;
-class TSession::TImpl : public TEndpointObj {
+class TSession::TImpl : public TKqpSessionCommon {
friend class TTableClient;
friend class TSession;
@@ -29,14 +30,6 @@ public:
#endif
TImpl(const TString& sessionId, const TString& endpoint, bool useQueryCache, ui32 queryCacheSize, bool isOwnedBySessionPool);
public:
- enum EState {
- S_STANDALONE,
- S_IDLE,
- S_BROKEN,
- S_ACTIVE,
- S_CLOSING
- };
-
struct TDataQueryInfo {
TString QueryId;
::google::protobuf::Map<TString, Ydb::Type> ParameterTypes;
@@ -49,37 +42,15 @@ public:
, ParameterTypes(parameterTypes) {}
};
public:
- ~TImpl();
-
- const TString& GetId() const;
- const TString& GetEndpoint() const;
- const TEndpointKey& GetEndpointKey() const;
- void MarkBroken();
- void MarkAsClosing();
- void MarkStandalone();
- void MarkActive();
- void MarkIdle();
- bool IsOwnedBySessionPool() const;
- EState GetState() const;
- void SetNeedUpdateActiveCounter(bool flag);
- bool NeedUpdateActiveCounter() const;
+ ~TImpl() = default;
+
void InvalidateQueryInCache(const TString& key);
void InvalidateQueryCache();
TMaybe<TDataQueryInfo> GetQueryFromCache(const TString& query, bool allowMigration);
void AddQueryToCache(const TDataQuery& query);
- void ScheduleTimeToTouch(TDuration interval, bool updateTimeInPast);
- void ScheduleTimeToTouchFast(TDuration interval, bool updateTimeInPast);
- TInstant GetTimeToTouchFast() const;
- TInstant GetTimeInPastFast() const;
-
- // SetTimeInterval/GetTimeInterval, are not atomic!
- void SetTimeInterval(TDuration interval);
- TDuration GetTimeInterval() const;
const TLRUCache<TString, TDataQueryInfo>& GetQueryCacheUnsafe() const;
- static std::function<void(TSession::TImpl*)> GetSmartDeleter(std::shared_ptr<TTableClient::TImpl> client);
-
static TSessionInspectorFn GetSessionInspector(
NThreading::TPromise<TCreateSessionResult>& promise,
std::shared_ptr<TTableClient::TImpl> client,
@@ -87,21 +58,8 @@ public:
ui32 counter, bool needUpdateActiveSessionCounter);
private:
- const TString SessionId_;
- const TEndpointKey EndpointKey_;
- EState State_;
bool UseQueryCache_;
TLRUCache<TString, TDataQueryInfo> QueryCache_;
- TAdaptiveLock Lock_;
- TInstant TimeToTouch_;
- TInstant TimeInPast_;
- // Is used to implement progressive timeout for settler keep alive call
- TDuration TimeInterval_;
- // Indicate session was in active state, but state was changed (need to decrement active session counter)
- // TODO: suboptimal because need lock for atomic change from interceptor
- // Rewrite with bit field
- bool NeedUpdateActiveCounter_;
- const bool IsOwnedBySessionPool_;
};
} // namespace NTable
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp b/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp
index 35f91b69b0..21fe00039b 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.cpp
@@ -40,7 +40,7 @@ void TRequestMigrator::SetHost(ui64 nodeId) {
CurHost_ = nodeId;
}
-bool TRequestMigrator::IsOurSession(const TSession::TImpl* session) const {
+bool TRequestMigrator::IsOurSession(const TKqpSessionCommon* session) const {
if (!CurHost_)
return false;
@@ -65,7 +65,7 @@ bool TRequestMigrator::Reset() {
}
}
-bool TRequestMigrator::DoCheckAndMigrate(const TSession::TImpl* session) {
+bool TRequestMigrator::DoCheckAndMigrate(const TKqpSessionCommon* session) {
if (session->GetEndpoint().empty())
return false;
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.h b/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.h
index fbe6875b3a..b2b146047b 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.h
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/request_migrator.h
@@ -51,13 +51,13 @@ public:
// Returns false if session is not suitable or unable to get lock to start migration
// Returns true if session is suitable in this case Unlink methos on the session is called
// This methos is thread safe.
- bool DoCheckAndMigrate(const TSession::TImpl* session);
+ bool DoCheckAndMigrate(const TKqpSessionCommon* session);
// Reset migrator to initiall state if migration was not started and returns true
// Returns false if migration was started
bool Reset();
private:
- bool IsOurSession(const TSession::TImpl* session) const;
+ bool IsOurSession(const TKqpSessionCommon* session) const;
ui64 CurHost_ = 0;
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.h b/ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.h
deleted file mode 100644
index 7a83b4115b..0000000000
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/session_pool.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#pragma once
-
-#include "client_session.h"
-
-#include <ydb/public/sdk/cpp/client/ydb_types/core_facility/core_facility.h>
-
-#include <util/generic/map.h>
-
-
-namespace NYdb {
-namespace NTable {
-
-using namespace NThreading;
-
-
-constexpr TDuration MAX_WAIT_SESSION_TIMEOUT = TDuration::Seconds(5); //Max time to wait session
-constexpr ui64 PERIODIC_ACTION_BATCH_SIZE = 10; //Max number of tasks to perform during one interval
-constexpr TDuration CREATE_SESSION_INTERNAL_TIMEOUT = TDuration::Seconds(2); //Timeout for createSession call inside session pool
-
-
-class TSessionPool {
- typedef TAsyncCreateSessionResult
- (*TAwareSessonProvider)
- (std::shared_ptr<TTableClient::TImpl> client, const TCreateSessionSettings& settings);
-private:
- class TWaitersQueue {
- public:
- TWaitersQueue(ui32 maxQueueSize, TDuration maxWaitSessionTimeout=MAX_WAIT_SESSION_TIMEOUT);
-
- bool TryPush(NThreading::TPromise<TCreateSessionResult>& p);
- TMaybe<NThreading::TPromise<TCreateSessionResult>> TryGet();
- void GetOld(TInstant now, TVector<NThreading::TPromise<TCreateSessionResult>>& oldWaiters);
- ui32 Size() const;
-
- private:
- const ui32 MaxQueueSize_;
- const TDuration MaxWaitSessionTimeout_;
- TMultiMap<TInstant, NThreading::TPromise<TCreateSessionResult>> Waiters_;
- };
-public:
- using TKeepAliveCmd = std::function<void(TSession session)>;
- using TDeletePredicate = std::function<bool(TSession::TImpl* session, TTableClient::TImpl* client, size_t sessionsCount)>;
- TSessionPool(ui32 maxActiveSessions);
- // TAwareSessonProvider:
- // function is called if session pool is empty,
- // this is used for additional total session count limitation
- TAsyncCreateSessionResult GetSession(
- std::shared_ptr<TTableClient::TImpl> client,
- const TCreateSessionSettings& settings);
- // Returns true if session returned to pool successfully
- bool ReturnSession(TSession::TImpl* impl, bool active, std::shared_ptr<TTableClient::TImpl> client);
- // Returns trun if has waiter and scheduled to create new session
- // too feed it
- bool CheckAndFeedWaiterNewSession(std::shared_ptr<TTableClient::TImpl> client, bool active);
- TPeriodicCb CreatePeriodicTask(std::weak_ptr<TTableClient::TImpl> weakClient, TKeepAliveCmd&& cmd, TDeletePredicate&& predicate);
- i64 GetActiveSessions() const;
- i64 GetActiveSessionsLimit() const;
- i64 GetCurrentPoolSize() const;
- void DecrementActiveCounter();
- void IncrementActiveCounterUnsafe();
-
- void Drain(std::function<bool(std::unique_ptr<TSession::TImpl>&&)> cb, bool close);
- void SetStatCollector(NSdkStats::TStatCollector::TSessionPoolStatCollector collector);
-
- static void CreateFakeSession(NThreading::TPromise<TCreateSessionResult>& promise,
- std::shared_ptr<TTableClient::TImpl> client);
-private:
- void UpdateStats();
- void MakeSessionPromiseFromSession(
- TSession::TImpl* session,
- NThreading::TPromise<TCreateSessionResult>& promise,
- std::shared_ptr<TTableClient::TImpl> client
- );
-
- mutable std::mutex Mtx_;
- bool Closed_;
-
- TMultiMap<TInstant, std::unique_ptr<TSession::TImpl>> Sessions_;
- TWaitersQueue WaitersQueue_;
-
- i64 ActiveSessions_;
- const ui32 MaxActiveSessions_;
- NSdkStats::TSessionCounter ActiveSessionsCounter_;
- NSdkStats::TSessionCounter InPoolSessionsCounter_;
- NSdkStats::TSessionCounter SessionWaiterCounter_;
- NSdkStats::TAtomicCounter<::NMonitoring::TRate> FakeSessionsCounter_;
-};
-
-}
-}
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp b/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp
index 52ad90e3f4..a63aad1160 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.cpp
@@ -1,38 +1,14 @@
#include "table_client.h"
-
namespace NYdb {
+
namespace NTable {
using namespace NThreading;
-
const TKeepAliveSettings TTableClient::TImpl::KeepAliveSettings = TKeepAliveSettings().ClientTimeout(KEEP_ALIVE_CLIENT_TIMEOUT);
-bool IsSessionCloseRequested(const TStatus& status) {
- const auto& meta = status.GetResponseMetadata();
- auto hints = meta.equal_range(NYdb::YDB_SERVER_HINTS);
- for(auto it = hints.first; it != hints.second; ++it) {
- if (it->second == NYdb::YDB_SESSION_CLOSE) {
- return true;
- }
- }
-
- return false;
-}
-
-TDuration RandomizeThreshold(TDuration duration) {
- TDuration::TValue value = duration.GetValue();
- if (KEEP_ALIVE_RANDOM_FRACTION) {
- const i64 randomLimit = value / KEEP_ALIVE_RANDOM_FRACTION;
- if (randomLimit < 2)
- return duration;
- value += static_cast<i64>(RandomNumber<ui64>(randomLimit));
- }
- return TDuration::FromValue(value);
-}
-
TDuration GetMinTimeToTouch(const TSessionPoolSettings& settings) {
return Min(settings.CloseIdleThreshold_, settings.KeepAliveIdleThreshold_);
}
@@ -41,14 +17,6 @@ TDuration GetMaxTimeToTouch(const TSessionPoolSettings& settings) {
return Max(settings.CloseIdleThreshold_, settings.KeepAliveIdleThreshold_);
}
-TStatus GetStatus(const TOperation& operation) {
- return operation.Status();
-}
-
-TStatus GetStatus(const TStatus& status) {
- return status;
-}
-
ui32 CalcBackoffTime(const TBackoffSettings& settings, ui32 retryNumber) {
ui32 backoffSlots = 1 << std::min(retryNumber, settings.Ceiling_);
TDuration maxDuration = settings.SlotDuration_ * backoffSlots;
@@ -102,10 +70,10 @@ void TTableClient::TImpl::InitStopper() {
}
NThreading::TFuture<void> TTableClient::TImpl::Drain() {
- TVector<std::unique_ptr<TSession::TImpl>> sessions;
+ TVector<std::unique_ptr<TKqpSessionCommon>> sessions;
// No realocations under lock
sessions.reserve(Settings_.SessionPoolSettings_.MaxActiveSessions_);
- auto drainer = [&sessions](std::unique_ptr<TSession::TImpl>&& impl) mutable {
+ auto drainer = [&sessions](std::unique_ptr<TKqpSessionCommon>&& impl) mutable {
sessions.push_back(std::move(impl));
return true;
};
@@ -145,11 +113,11 @@ void TTableClient::TImpl::AsyncBackoff(const TBackoffSettings& settings, ui32 re
}
void TTableClient::TImpl::StartPeriodicSessionPoolTask() {
+ // Session pool guarantees than client is alive during call callbacks
+ auto deletePredicate = [this](TKqpSessionCommon* s, size_t sessionsCount) {
- auto deletePredicate = [](TSession::TImpl* session, TTableClient::TImpl* client, size_t sessionsCount) {
-
- const auto sessionPoolSettings = client->Settings_.SessionPoolSettings_;
- const auto spentTime = session->GetTimeToTouchFast() - session->GetTimeInPastFast();
+ const auto& sessionPoolSettings = Settings_.SessionPoolSettings_;
+ const auto spentTime = s->GetTimeToTouchFast() - s->GetTimeInPastFast();
if (spentTime >= sessionPoolSettings.CloseIdleThreshold_) {
if (sessionsCount > sessionPoolSettings.MinPoolSize_) {
@@ -160,7 +128,14 @@ void TTableClient::TImpl::StartPeriodicSessionPoolTask() {
return false;
};
- auto keepAliveCmd = [](TSession session) {
+ auto keepAliveCmd = [this](TKqpSessionCommon* s) {
+ auto strongClient = shared_from_this();
+ TSession session(
+ strongClient,
+ std::shared_ptr<TSession::TImpl>(
+ static_cast<TSession::TImpl*>(s),
+ TSession::TImpl::GetSmartDeleter(strongClient)
+ ));
Y_VERIFY(session.GetId());
@@ -199,7 +174,7 @@ void TTableClient::TImpl::StartPeriodicSessionPoolTask() {
auto timeToNextTouch = calcTimeToNextTouch(spentTime);
session.SessionImpl_->ScheduleTimeToTouchFast(
- RandomizeThreshold(timeToNextTouch),
+ NSessionPool::RandomizeThreshold(timeToNextTouch),
spentTime >= maxTimeToTouch
);
};
@@ -210,7 +185,7 @@ void TTableClient::TImpl::StartPeriodicSessionPoolTask() {
weak,
std::move(keepAliveCmd),
std::move(deletePredicate)
- ), PERIODIC_ACTION_INTERVAL);
+ ), NSessionPool::PERIODIC_ACTION_INTERVAL);
}
ui64 TTableClient::TImpl::ScanForeignLocations(std::shared_ptr<TTableClient::TImpl> client) {
@@ -341,7 +316,63 @@ void TTableClient::TImpl::StartPeriodicHostScanTask() {
}
TAsyncCreateSessionResult TTableClient::TImpl::GetSession(const TCreateSessionSettings& settings) {
- return SessionPool_.GetSession(shared_from_this(), settings);
+ using namespace NSessionPool;
+
+ class TTableClientGetSessionCtx : public IGetSessionCtx {
+ public:
+ TTableClientGetSessionCtx(std::shared_ptr<TTableClient::TImpl> client, TDuration clientTimeout)
+ : Promise(NewPromise<TCreateSessionResult>())
+ , Client(client)
+ , ClientTimeout(clientTimeout)
+ {}
+
+ TAsyncCreateSessionResult GetFuture() {
+ return Promise.GetFuture();
+ }
+
+ void ReplyError(TStatus status) override {
+ TSession session(Client, "", "", false);
+ ScheduleReply(TCreateSessionResult(std::move(status), std::move(session)));
+ }
+
+ void ReplySessionToUser(TKqpSessionCommon* session) override {
+ TCreateSessionResult val(
+ TStatus(TPlainStatus()),
+ TSession(
+ Client,
+ std::shared_ptr<TSession::TImpl>(
+ static_cast<TSession::TImpl*>(session),
+ TSession::TImpl::GetSmartDeleter(Client)
+ )
+ )
+ );
+
+ ScheduleReply(std::move(val));
+ }
+
+ void ReplyNewSession() override {
+ TCreateSessionSettings settings;
+ settings.ClientTimeout(ClientTimeout);
+ const auto& sessionResult = Client->CreateSession(settings, false);
+ sessionResult.Subscribe(TSession::TImpl::GetSessionInspector(Promise, Client, settings, 0, true));
+ }
+
+ private:
+ void ScheduleReply(TCreateSessionResult val) {
+ //TODO: Do we realy need it?
+ Client->ScheduleTaskUnsafe([promise{std::move(Promise)}, val{std::move(val)}]() mutable {
+ promise.SetValue(std::move(val));
+ }, TDuration());
+ }
+ NThreading::TPromise<TCreateSessionResult> Promise;
+ std::shared_ptr<TTableClient::TImpl> Client;
+ const TDuration ClientTimeout;
+ };
+
+ auto ctx = std::make_unique<TTableClientGetSessionCtx>(shared_from_this(), settings.ClientTimeout_);
+ auto future = ctx->GetFuture();
+ SessionPool_.GetSession(std::move(ctx));
+ return future;
}
i64 TTableClient::TImpl::GetActiveSessionCount() const {
@@ -374,9 +405,7 @@ TAsyncCreateSessionResult TTableClient::TImpl::CreateSession(const TCreateSessio
}
auto session = TSession(self, result.session_id(), status.Endpoint, !standalone);
if (status.Ok()) {
- if (standalone) {
- session.SessionImpl_->MarkStandalone();
- } else {
+ if (!standalone) {
session.SessionImpl_->MarkActive();
}
self->DbDriverState_->StatCollector.IncSessionsOnHost(status.Endpoint);
@@ -807,7 +836,15 @@ TAsyncReadRowsResult TTableClient::TImpl::ReadRows(const TString& path, TValue&&
auto promise = NewPromise<TReadRowsResult>();
auto responseCb = [promise] (Ydb::Table::ReadRowsResponse* response, TPlainStatus status) mutable {
- Ydb::ResultSet resultSet = response ? std::move(*response->mutable_result_set()) : Ydb::ResultSet{};
+ Ydb::ResultSet resultSet;
+ // if there is no response status contains transport errors
+ if (response) {
+ Ydb::StatusIds::StatusCode msgStatus = response->status();
+ NYql::TIssues issues;
+ NYql::IssuesFromMessage(response->issues(), issues);
+ status = TPlainStatus(static_cast<EStatus>(msgStatus), std::move(issues));
+ resultSet = std::move(*response->mutable_result_set());
+ }
TReadRowsResult val(TStatus(std::move(status)), std::move(resultSet));
promise.SetValue(std::move(val));
};
@@ -824,7 +861,7 @@ TAsyncReadRowsResult TTableClient::TImpl::ReadRows(const TString& path, TValue&&
return promise.GetFuture();
}
-TAsyncStatus TTableClient::TImpl::Close(const TSession::TImpl* sessionImpl, const TCloseSessionSettings& settings) {
+TAsyncStatus TTableClient::TImpl::Close(const TKqpSessionCommon* sessionImpl, const TCloseSessionSettings& settings) {
auto request = MakeOperationRequest<Ydb::Table::DeleteSessionRequest>(settings);
request.set_session_id(sessionImpl->GetId());
return RunSimple<Ydb::Table::V1::TableService, Ydb::Table::DeleteSessionRequest, Ydb::Table::DeleteSessionResponse>(
@@ -834,7 +871,7 @@ TAsyncStatus TTableClient::TImpl::Close(const TSession::TImpl* sessionImpl, cons
sessionImpl->GetEndpointKey());
}
-TAsyncStatus TTableClient::TImpl::CloseInternal(const TSession::TImpl* sessionImpl) {
+TAsyncStatus TTableClient::TImpl::CloseInternal(const TKqpSessionCommon* sessionImpl) {
static const auto internalCloseSessionSettings = TCloseSessionSettings()
.ClientTimeout(TDuration::Seconds(2));
@@ -847,7 +884,7 @@ TAsyncStatus TTableClient::TImpl::CloseInternal(const TSession::TImpl* sessionIm
});
}
-bool TTableClient::TImpl::ReturnSession(TSession::TImpl* sessionImpl) {
+bool TTableClient::TImpl::ReturnSession(TKqpSessionCommon* sessionImpl) {
Y_VERIFY(sessionImpl->GetState() == TSession::TImpl::S_ACTIVE ||
sessionImpl->GetState() == TSession::TImpl::S_IDLE);
@@ -860,17 +897,17 @@ bool TTableClient::TImpl::ReturnSession(TSession::TImpl* sessionImpl) {
// Also removes NeedUpdateActiveCounter flag
sessionImpl->MarkIdle();
sessionImpl->SetTimeInterval(TDuration::Zero());
- if (!SessionPool_.ReturnSession(sessionImpl, needUpdateCounter, shared_from_this())) {
+ if (!SessionPool_.ReturnSession(sessionImpl, needUpdateCounter)) {
sessionImpl->SetNeedUpdateActiveCounter(needUpdateCounter);
return false;
}
return true;
}
-void TTableClient::TImpl::DeleteSession(TSession::TImpl* sessionImpl) {
+void TTableClient::TImpl::DeleteSession(TKqpSessionCommon* sessionImpl) {
// Closing not owned by session pool session should not fire getting new session
if (sessionImpl->IsOwnedBySessionPool()) {
- if (SessionPool_.CheckAndFeedWaiterNewSession(shared_from_this(), sessionImpl->NeedUpdateActiveCounter())) {
+ if (SessionPool_.CheckAndFeedWaiterNewSession(sessionImpl->NeedUpdateActiveCounter())) {
// We requested new session for waiter which already incremented
// active session counter and old session will be deleted
// - skip update active counter in this case
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.h b/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.h
index 7c07260cf9..de2e4239fd 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.h
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/table_client.h
@@ -1,9 +1,11 @@
#pragma once
#define INCLUDE_YDB_INTERNAL_H
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/session_client/session_client.h>
#include <ydb/public/sdk/cpp/client/impl/ydb_internal/scheme_helpers/helpers.h>
#include <ydb/public/sdk/cpp/client/impl/ydb_internal/table_helpers/helpers.h>
#include <ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/make.h>
+#include <ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool/session_pool.h>
#undef INCLUDE_YDB_INTERNAL_H
#include <ydb/public/sdk/cpp/client/resources/ydb_resources.h>
@@ -11,92 +13,27 @@
#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
#include <ydb/public/api/grpc/ydb_table_v1.grpc.pb.h>
-#include <util/random/random.h>
-
#include "client_session.h"
#include "data_query.h"
#include "request_migrator.h"
#include "readers.h"
-#include "session_pool.h"
namespace NYdb {
namespace NTable {
-using namespace NThreading;
-
-
-//How often run session pool keep alive check
-constexpr TDuration PERIODIC_ACTION_INTERVAL = TDuration::Seconds(5);
//How ofter run host scan to perform session balancing
constexpr TDuration HOSTSCAN_PERIODIC_ACTION_INTERVAL = TDuration::Seconds(2);
-constexpr ui64 KEEP_ALIVE_RANDOM_FRACTION = 4;
constexpr ui32 MAX_BACKOFF_DURATION_MS = TDuration::Hours(1).MilliSeconds();
constexpr TDuration KEEP_ALIVE_CLIENT_TIMEOUT = TDuration::Seconds(5);
-
TDuration GetMinTimeToTouch(const TSessionPoolSettings& settings);
TDuration GetMaxTimeToTouch(const TSessionPoolSettings& settings);
ui32 CalcBackoffTime(const TBackoffSettings& settings, ui32 retryNumber);
-bool IsSessionCloseRequested(const TStatus& status);
-TDuration RandomizeThreshold(TDuration duration);
TDuration GetMinTimeToTouch(const TSessionPoolSettings& settings);
TDuration GetMaxTimeToTouch(const TSessionPoolSettings& settings);
-TStatus GetStatus(const TOperation& operation);
-TStatus GetStatus(const TStatus& status);
-
-
-template<typename TResponse>
-NThreading::TFuture<TResponse> InjectSessionStatusInterception(
- std::shared_ptr<TSession::TImpl>& impl, NThreading::TFuture<TResponse> asyncResponse,
- bool updateTimeout,
- TDuration timeout,
- std::function<void(const TResponse&, TSession::TImpl&)> cb = {})
-{
- auto promise = NThreading::NewPromise<TResponse>();
- asyncResponse.Subscribe([impl, promise, cb, updateTimeout, timeout](NThreading::TFuture<TResponse> future) mutable {
- Y_VERIFY(future.HasValue());
-
- // TResponse can hold refcounted user provided data (TSession for example)
- // and we do not want to have copy of it (for example it can cause delay dtor call)
- // so using move semantic here is mandatory.
- // Also we must reset captured shared pointer to session impl
- TResponse value = std::move(future.ExtractValue());
-
- const TStatus& status = GetStatus(value);
- // Exclude CLIENT_RESOURCE_EXHAUSTED from transport errors which can cause to session disconnect
- // since we have guarantee this request wasn't been started to execute.
-
- if (status.IsTransportError() && status.GetStatus() != EStatus::CLIENT_RESOURCE_EXHAUSTED) {
- impl->MarkBroken();
- } else if (status.GetStatus() == EStatus::SESSION_BUSY) {
- impl->MarkBroken();
- } else if (status.GetStatus() == EStatus::BAD_SESSION) {
- impl->MarkBroken();
- } else if (IsSessionCloseRequested(status)) {
- impl->MarkAsClosing();
- } else {
- // NOTE: About GetState and lock
- // Simultanious call multiple requests on the same session make no sence, due to server limitation.
- // But user can perform this call, right now we do not protect session from this, it may cause
- // raise on session state if respoise is not success.
- // It should not be a problem - in case of this race we close session
- // or put it in to settler.
- if (updateTimeout && status.GetStatus() != EStatus::CLIENT_RESOURCE_EXHAUSTED) {
- impl->ScheduleTimeToTouch(RandomizeThreshold(timeout), impl->GetState() == TSession::TImpl::EState::S_ACTIVE);
- }
- }
- if (cb) {
- cb(value, *impl);
- }
- impl.reset();
- promise.SetValue(std::move(value));
- });
- return promise.GetFuture();
-}
-
-class TTableClient::TImpl: public TClientImplCommon<TTableClient::TImpl>, public IMigratorClient {
+class TTableClient::TImpl: public TClientImplCommon<TTableClient::TImpl>, public ISessionClient {
public:
using TReadTableStreamProcessorPtr = TTablePartIterator::TReaderImpl::TStreamProcessorPtr;
using TScanQueryProcessorPtr = TScanQueryPartIterator::TReaderImpl::TStreamProcessorPtr;
@@ -147,7 +84,7 @@ public:
CacheMissCounter.Inc();
- return InjectSessionStatusInterception(session.SessionImpl_,
+ return ::NYdb::NSessionPool::InjectSessionStatusInterception(session.SessionImpl_,
ExecuteDataQueryInternal(session, query, txControl, params, settings, false),
true, GetMinTimeToTouch(Settings_.SessionPoolSettings_));
}
@@ -157,13 +94,13 @@ public:
TParamsType params, const TExecDataQuerySettings& settings,
bool fromCache) {
TString queryKey = dataQuery.Impl_->GetTextHash();
- auto cb = [queryKey](const TDataQueryResult& result, TSession::TImpl& session) {
+ auto cb = [queryKey](const TDataQueryResult& result, TKqpSessionCommon& session) {
if (result.GetStatus() == EStatus::NOT_FOUND) {
- session.InvalidateQueryInCache(queryKey);
+ static_cast<TSession::TImpl&>(session).InvalidateQueryInCache(queryKey);
}
};
- return InjectSessionStatusInterception<TDataQueryResult>(
+ return ::NYdb::NSessionPool::InjectSessionStatusInterception<TDataQueryResult>(
session.SessionImpl_,
session.Client_->ExecuteDataQueryInternal(session, dataQuery, txControl, params, settings, fromCache),
true,
@@ -194,16 +131,12 @@ public:
const TReadTableSettings& settings);
TAsyncReadRowsResult ReadRows(const TString& path, TValue&& keys, const TVector<TString>& columns, const TReadRowsSettings& settings);
- TAsyncStatus Close(const TSession::TImpl* sessionImpl, const TCloseSessionSettings& settings);
- TAsyncStatus CloseInternal(const TSession::TImpl* sessionImpl);
+ TAsyncStatus Close(const TKqpSessionCommon* sessionImpl, const TCloseSessionSettings& settings);
+ TAsyncStatus CloseInternal(const TKqpSessionCommon* sessionImpl);
- bool ReturnSession(TSession::TImpl* sessionImpl);
- void DeleteSession(TSession::TImpl* sessionImpl);
+ bool ReturnSession(TKqpSessionCommon* sessionImpl) override;
+ void DeleteSession(TKqpSessionCommon* sessionImpl) override;
ui32 GetSessionRetryLimit() const;
- static void CloseAndDeleteSession(
- std::unique_ptr<TSession::TImpl>&& impl,
- std::shared_ptr<TTableClient::TImpl> client);
-
void SetStatCollector(const NSdkStats::TStatCollector::TClientStatCollector& collector);
@@ -360,7 +293,7 @@ public:
NSdkStats::TAtomicCounter<::NMonitoring::TRate> RequestMigrated;
private:
- TSessionPool SessionPool_;
+ NSessionPool::TSessionPool SessionPool_;
TRequestMigrator RequestMigrator_;
static const TKeepAliveSettings KeepAliveSettings;
};
diff --git a/ydb/public/sdk/cpp/client/ydb_table/impl/ya.make b/ydb/public/sdk/cpp/client/ydb_table/impl/ya.make
index 6aefb9f845..58b9b08288 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/impl/ya.make
+++ b/ydb/public/sdk/cpp/client/ydb_table/impl/ya.make
@@ -5,7 +5,6 @@ SRCS(
data_query.cpp
readers.cpp
request_migrator.cpp
- session_pool.cpp
table_client.cpp
)
@@ -14,6 +13,7 @@ PEERDIR(
ydb/public/api/protos
ydb/public/lib/operation_id/protos
ydb/public/sdk/cpp/client/impl/ydb_endpoints
+ ydb/public/sdk/cpp/client/impl/ydb_internal/session_pool
ydb/public/sdk/cpp/client/ydb_table/query_stats
ydb/library/yql/public/issue/protos
)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/table.cpp b/ydb/public/sdk/cpp/client/ydb_table/table.cpp
index 461a41a7c8..5e7de5c61f 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/table.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_table/table.cpp
@@ -31,6 +31,7 @@ namespace NYdb {
namespace NTable {
using namespace NThreading;
+using namespace NSessionPool;
////////////////////////////////////////////////////////////////////////////////
@@ -2372,29 +2373,6 @@ const TMaybe<TQueryStats>& TCommitTransactionResult::GetStats() const {
////////////////////////////////////////////////////////////////////////////////
-std::function<void(TSession::TImpl*)> TSession::TImpl::GetSmartDeleter(std::shared_ptr<TTableClient::TImpl> client) {
- return [client](TSession::TImpl* sessionImpl) {
- switch (sessionImpl->GetState()) {
- case TSession::TImpl::S_STANDALONE:
- case TSession::TImpl::S_BROKEN:
- case TSession::TImpl::S_CLOSING:
- client->DeleteSession(sessionImpl);
- break;
- case TSession::TImpl::S_IDLE:
- case TSession::TImpl::S_ACTIVE: {
- if (!client->ReturnSession(sessionImpl)) {
- client->DeleteSession(sessionImpl);
- }
- break;
- }
- default:
- break;
- }
- };
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
TCopyItem::TCopyItem(const TString& source, const TString& destination)
: Source_(source)
, Destination_(destination)
diff --git a/ydb/public/sdk/cpp/client/ydb_table/table.h b/ydb/public/sdk/cpp/client/ydb_table/table.h
index 02016e4c50..f7a4a21069 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/table.h
+++ b/ydb/public/sdk/cpp/client/ydb_table/table.h
@@ -928,6 +928,7 @@ struct TSessionPoolSettings {
struct TClientSettings : public TCommonClientSettingsBase<TClientSettings> {
using TSelf = TClientSettings;
+ using TSessionPoolSettings = TSessionPoolSettings;
// Enable client query cache. Client query cache is used to map query text to
// prepared query id for ExecuteDataQuery calls on client side.
@@ -996,6 +997,8 @@ public:
using TOperationSyncFunc = std::function<TStatus(TSession session)>;
using TOperationWithoutSessionFunc = std::function<TAsyncStatus(TTableClient& tableClient)>;
using TOperationWithoutSessionSyncFunc = std::function<TStatus(TTableClient& tableClient)>;
+ using TSettings = TClientSettings;
+ using TSession = TSession;
public:
TTableClient(const TDriver& driver, const TClientSettings& settings = TClientSettings());
diff --git a/ydb/public/sdk/cpp/client/ydb_table/ya.make b/ydb/public/sdk/cpp/client/ydb_table/ya.make
index c998ef545a..faba611793 100644
--- a/ydb/public/sdk/cpp/client/ydb_table/ya.make
+++ b/ydb/public/sdk/cpp/client/ydb_table/ya.make
@@ -10,6 +10,7 @@ GENERATE_ENUM_SERIALIZATION(table_enum.h)
PEERDIR(
ydb/public/api/protos
ydb/public/sdk/cpp/client/impl/ydb_internal/make_request
+ ydb/public/sdk/cpp/client/impl/ydb_internal/kqp_session_common
ydb/public/sdk/cpp/client/ydb_driver
ydb/public/sdk/cpp/client/ydb_params
ydb/public/sdk/cpp/client/ydb_proto
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp b/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp
index fbe8e1a75a..3bf8719fde 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp
@@ -25,7 +25,7 @@ TReadSessionEvent::TDataReceivedEvent::TMessageInformation::TMessageInformation(
TInstant createTime,
TInstant writeTime,
TWriteSessionMeta::TPtr meta,
- TWriteSessionMeta::TPtr messageMeta,
+ TMessageMeta::TPtr messageMeta,
ui64 uncompressedSize,
TString messageGroupId
)
@@ -163,7 +163,7 @@ const TWriteSessionMeta::TPtr& TReadSessionEvent::TDataReceivedEvent::TMessage::
return Information.Meta;
}
-const TWriteSessionMeta::TPtr& TReadSessionEvent::TDataReceivedEvent::TMessage::GetMessageMeta() const {
+const TMessageMeta::TPtr& TReadSessionEvent::TDataReceivedEvent::TMessage::GetMessageMeta() const {
return Information.MessageMeta;
}
@@ -223,7 +223,7 @@ const TWriteSessionMeta::TPtr& TReadSessionEvent::TDataReceivedEvent::TCompresse
return Information.Meta;
}
-const TWriteSessionMeta::TPtr& TReadSessionEvent::TDataReceivedEvent::TCompressedMessage::GetMessageMeta() const {
+const TMessageMeta::TPtr& TReadSessionEvent::TDataReceivedEvent::TCompressedMessage::GetMessageMeta() const {
return Information.MessageMeta;
}
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.cpp b/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.cpp
index e42d98b95b..0cfdf77356 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.cpp
@@ -46,12 +46,26 @@ NThreading::TFuture<void> TWriteSession::WaitEvent() {
void TWriteSession::WriteEncoded(TContinuationToken&& token, TStringBuf data, ECodec codec, ui32 originalSize,
TMaybe<ui64> seqNo, TMaybe<TInstant> createTimestamp) {
- Impl->WriteInternal(std::move(token), data, codec, originalSize, seqNo, createTimestamp);
+ auto message = TWriteMessage::CompressedMessage(data, codec, originalSize);
+ if (seqNo.Defined())
+ message.SeqNo(*seqNo);
+ if (createTimestamp.Defined())
+ message.CreateTimestamp(*createTimestamp);
+ Impl->WriteInternal(std::move(token), std::move(message));
}
void TWriteSession::Write(TContinuationToken&& token, TStringBuf data, TMaybe<ui64> seqNo,
TMaybe<TInstant> createTimestamp) {
- Impl->WriteInternal(std::move(token), data, {}, 0, seqNo, createTimestamp);
+ TWriteMessage message{data};
+ if (seqNo.Defined())
+ message.SeqNo(*seqNo);
+ if (createTimestamp.Defined())
+ message.CreateTimestamp(*createTimestamp);
+ Impl->WriteInternal(std::move(token), std::move(message));
+}
+
+void TWriteSession::Write(TContinuationToken&& token, TWriteMessage&& message) {
+ Impl->WriteInternal(std::move(token), std::move(message));
}
bool TWriteSession::Close(TDuration closeTimeout) {
@@ -102,6 +116,20 @@ bool TSimpleBlockingWriteSession::Write(
return false;
}
+bool TSimpleBlockingWriteSession::Write(
+ TWriteMessage&& message, const TDuration& blockTimeout
+) {
+ if (!IsAlive())
+ return false;
+
+ auto continuationToken = WaitForToken(blockTimeout);
+ if (continuationToken.Defined()) {
+ Writer->Write(std::move(*continuationToken), std::move(message));
+ return true;
+ }
+ return false;
+}
+
TMaybe<TContinuationToken> TSimpleBlockingWriteSession::WaitForToken(const TDuration& timeout) {
auto startTime = TInstant::Now();
TDuration remainingTime = timeout;
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h b/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h
index 7e480c883e..a12c61b4b9 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h
+++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h
@@ -38,6 +38,7 @@ public:
void WriteEncoded(TContinuationToken&& continuationToken, TStringBuf data, ECodec codec, ui32 originalSize,
TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing()) override;
+ void Write(TContinuationToken&& continuationToken, TWriteMessage&& message) override;
NThreading::TFuture<void> WaitEvent() override;
@@ -67,6 +68,8 @@ public:
bool Write(TStringBuf data, TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing(),
const TDuration& blockTimeout = TDuration::Max()) override;
+ bool Write(TWriteMessage&& message, const TDuration& blockTimeout = TDuration::Max()) override;
+
ui64 GetInitSeqNo() override;
bool Close(TDuration closeTimeout = TDuration::Max()) override;
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.cpp b/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.cpp
index 58393858cf..3fb36f63da 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.cpp
@@ -244,15 +244,15 @@ NThreading::TFuture<void> TWriteSessionImpl::WaitEvent() {
}
// Client method.
-void TWriteSessionImpl::WriteInternal(
- TContinuationToken&&, TStringBuf data, TMaybe<ECodec> codec, ui32 originalSize, TMaybe<ui64> seqNo, TMaybe<TInstant> createTimestamp
- ) {
- TInstant createdAtValue = createTimestamp.Defined() ? *createTimestamp : TInstant::Now();
+void TWriteSessionImpl::WriteInternal(TContinuationToken&&, TWriteMessage&& message) {
+ TInstant createdAtValue = message.CreateTimestamp_.Defined() ? *message.CreateTimestamp_ : TInstant::Now();
bool readyToAccept = false;
- size_t bufferSize = data.size();
+ size_t bufferSize = message.Data.size();
with_lock(Lock) {
- //ToDo[message-meta] - Pass message meta here.
- CurrentBatch.Add(GetNextSeqNoImpl(seqNo), createdAtValue, data, codec, originalSize, {});
+ CurrentBatch.Add(
+ GetNextSeqNoImpl(message.SeqNo_), createdAtValue, message.Data, message.Codec, message.OriginalSize,
+ message.MessageMeta_
+ );
FlushWriteIfRequiredImpl();
readyToAccept = OnMemoryUsageChangedImpl(bufferSize).NowOk;
@@ -263,16 +263,8 @@ void TWriteSessionImpl::WriteInternal(
}
// Client method.
-void TWriteSessionImpl::WriteEncoded(
- TContinuationToken&& token, TStringBuf data, ECodec codec, ui32 originalSize, TMaybe<ui64> seqNo, TMaybe<TInstant> createTimestamp
- ) {
- WriteInternal(std::move(token), data, codec, originalSize, seqNo, createTimestamp);
-}
-
-void TWriteSessionImpl::Write(
- TContinuationToken&& token, TStringBuf data, TMaybe<ui64> seqNo, TMaybe<TInstant> createTimestamp
- ) {
- WriteInternal(std::move(token), data, {}, 0, seqNo, createTimestamp);
+void TWriteSessionImpl::Write(TContinuationToken&& token, TWriteMessage&& message) {
+ WriteInternal(std::move(token), std::move(message));
}
@@ -1021,9 +1013,10 @@ void TWriteSessionImpl::SendImpl() {
*msgData->mutable_created_at() = ::google::protobuf::util::TimeUtil::MillisecondsToTimestamp(message.CreatedAt.MilliSeconds());
if (!message.MessageMeta.empty()) {
- auto* meta = msgData->mutable_message_meta();
for (auto& [k, v] : message.MessageMeta) {
- (*meta)[k] = v;
+ auto* pair = msgData->add_metadata_items();
+ pair->set_key(k);
+ pair->set_value(v);
}
}
SentOriginalMessages.emplace(std::move(message));
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h b/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h
index 2f739d4064..6e218de737 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h
+++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h
@@ -173,9 +173,9 @@ private:
TStringBuf DataRef;
TMaybe<ECodec> Codec;
ui32 OriginalSize; // only for coded messages
- std::unordered_map<TString, TString> MessageMeta;
+ TVector<std::pair<TString, TString>> MessageMeta;
TMessage(ui64 seqNo, const TInstant& createdAt, TStringBuf data, TMaybe<ECodec> codec = {},
- ui32 originalSize = 0, const std::unordered_map<TString, TString>& messageMeta = {})
+ ui32 originalSize = 0, const TVector<std::pair<TString, TString>>& messageMeta = {})
: SeqNo(seqNo)
, CreatedAt(createdAt)
, DataRef(data)
@@ -193,7 +193,7 @@ private:
bool Acquired = false;
bool FlushRequested = false;
void Add(ui64 seqNo, const TInstant& createdAt, TStringBuf data, TMaybe<ECodec> codec, ui32 originalSize,
- const std::unordered_map<TString, TString>& messageMeta) {
+ const TVector<std::pair<TString, TString>>& messageMeta) {
if (StartedAt == TInstant::Zero())
StartedAt = TInstant::Now();
CurrentSize += codec ? originalSize : data.size();
@@ -266,14 +266,14 @@ private:
ui64 SeqNo;
TInstant CreatedAt;
size_t Size;
- std::unordered_map<TString, TString> MessageMeta;
+ TVector<std::pair<TString, TString>> MessageMeta;
TOriginalMessage(const ui64 sequenceNumber, const TInstant createdAt, const size_t size)
: SeqNo(sequenceNumber)
, CreatedAt(createdAt)
, Size(size)
{}
TOriginalMessage(const ui64 sequenceNumber, const TInstant createdAt, const size_t size,
- std::unordered_map<TString, TString>&& messageMeta)
+ TVector<std::pair<TString, TString>>&& messageMeta)
: SeqNo(sequenceNumber)
, CreatedAt(createdAt)
, Size(size)
@@ -315,11 +315,21 @@ public:
TMaybe<size_t> maxEventsCount = Nothing()) override;
NThreading::TFuture<ui64> GetInitSeqNo() override;
- void Write(TContinuationToken&& continuationToken, TStringBuf data,
- TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing()) override;
+ void Write(TContinuationToken&& continuationToken, TWriteMessage&& message) override;
- void WriteEncoded(TContinuationToken&& continuationToken, TStringBuf data, ECodec codec, ui32 originalSize,
- TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing()) override;
+ void Write(TContinuationToken&&, TStringBuf, TMaybe<ui64> seqNo = Nothing(),
+ TMaybe<TInstant> createTimestamp = Nothing()) override {
+ Y_UNUSED(seqNo);
+ Y_UNUSED(createTimestamp);
+ Y_FAIL("Do not use this method");
+ };
+
+ void WriteEncoded(TContinuationToken&&, TStringBuf, ECodec, ui32,
+ TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing()) override {
+ Y_UNUSED(seqNo);
+ Y_UNUSED(createTimestamp);
+ Y_FAIL("Do not use this method");
+ }
NThreading::TFuture<void> WaitEvent() override;
@@ -337,8 +347,7 @@ private:
void UpdateTokenIfNeededImpl();
- void WriteInternal(TContinuationToken&& continuationToken, TStringBuf data, TMaybe<ECodec> codec, ui32 originalSize,
- TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing());
+ void WriteInternal(TContinuationToken&& continuationToken, TWriteMessage&& message);
void FlushWriteIfRequiredImpl();
size_t WriteBatchImpl();
diff --git a/ydb/public/sdk/cpp/client/ydb_topic/topic.h b/ydb/public/sdk/cpp/client/ydb_topic/topic.h
index 751ca9d7cf..181f114784 100644
--- a/ydb/public/sdk/cpp/client/ydb_topic/topic.h
+++ b/ydb/public/sdk/cpp/client/ydb_topic/topic.h
@@ -552,6 +552,13 @@ struct TWriteSessionMeta: public TThrRefBase {
THashMap<TString, TString> Fields;
};
+struct TMessageMeta: public TThrRefBase {
+ using TPtr = TIntrusivePtr<TMessageMeta>;
+
+ //! User defined fields.
+ TVector<std::pair<TString, TString>> Fields;
+};
+
//! Event that is sent to client during session destruction.
struct TSessionClosedEvent: public TStatus {
using TStatus::TStatus;
@@ -686,7 +693,7 @@ struct TReadSessionEvent {
TInstant createTime,
TInstant writeTime,
TWriteSessionMeta::TPtr meta,
- TWriteSessionMeta::TPtr messageMeta,
+ TMessageMeta::TPtr messageMeta,
ui64 uncompressedSize,
TString messageGroupId);
ui64 Offset;
@@ -695,7 +702,7 @@ struct TReadSessionEvent {
TInstant CreateTime;
TInstant WriteTime;
TWriteSessionMeta::TPtr Meta;
- TWriteSessionMeta::TPtr MessageMeta;
+ TMessageMeta::TPtr MessageMeta;
ui64 UncompressedSize;
TString MessageGroupId;
};
@@ -755,7 +762,7 @@ struct TReadSessionEvent {
const TWriteSessionMeta::TPtr& GetMeta() const;
//! Message level meta info.
- const TWriteSessionMeta::TPtr& GetMessageMeta() const;
+ const TMessageMeta::TPtr& GetMessageMeta() const;
//! Commits single message.
void Commit() override;
@@ -800,7 +807,7 @@ struct TReadSessionEvent {
const TWriteSessionMeta::TPtr& GetMeta() const;
//! Message level meta info.
- const TWriteSessionMeta::TPtr& GetMessageMeta() const;
+ const TMessageMeta::TPtr& GetMessageMeta() const;
//! Uncompressed size.
ui64 GetUncompressedSize() const;
@@ -1469,12 +1476,60 @@ struct TReadSessionSettings: public TRequestSettings<TReadSessionSettings> {
FLUENT_SETTING_OPTIONAL(TLog, Log);
};
+//! Contains the message to write and all the options.
+struct TWriteMessage {
+ using TSelf = TWriteMessage;
+ using TMessageMeta = TVector<std::pair<TString, TString>>;
+public:
+ TWriteMessage() = delete;
+ TWriteMessage(TStringBuf data)
+ : Data(data)
+ {}
+
+ //! A message that is already compressed by codec. Codec from WriteSessionSettings does not apply to this message.
+ //! Compression will not be performed in SDK for such messages.
+ static TWriteMessage CompressedMessage(const TStringBuf& data, ECodec codec, ui32 originalSize) {
+ TWriteMessage result{data};
+ result.Codec = codec;
+ result.OriginalSize = originalSize;
+ return result;
+ }
+
+ bool Compressed() const {
+ return Codec.Defined();
+ }
+
+ //! Message body.
+ const TStringBuf Data;
+
+ //! Codec and original size for compressed message.
+ //! Do not specify or change these options directly, use CompressedMessage()
+ //! method to create an object for compressed message.
+ TMaybe<ECodec> Codec;
+ ui32 OriginalSize = 0;
+
+ //! Message SeqNo, optional. If not provided SDK core will calculate SeqNo automatically.
+ //! NOTICE: Either all messages within one write session must have SeqNo provided or none of them.
+ FLUENT_SETTING_OPTIONAL(ui64, SeqNo);
+
+ //! Message creation timestamp. If not provided, Now() will be used.
+ FLUENT_SETTING_OPTIONAL(TInstant, CreateTimestamp);
+
+ //! Message metadata. Limited to 4096 characters overall (all keys and values combined).
+ FLUENT_SETTING(TMessageMeta, MessageMeta);
+
+};
+
//! Simple write session. Does not need event handlers. Does not provide Events, ContinuationTokens, write Acks.
class ISimpleBlockingWriteSession : public TThrRefBase {
public:
//! Write single message. Blocks for up to blockTimeout if inflight is full or memoryUsage is exceeded;
//! return - true if write succeeded, false if message was not enqueued for write within blockTimeout.
//! no Ack is provided.
+ virtual bool Write(TWriteMessage&& message, const TDuration& blockTimeout = TDuration::Max()) = 0;
+
+
+ //! Write single message. Deprecated method with only basic message options.
virtual bool Write(TStringBuf data, TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing(),
const TDuration& blockTimeout = TDuration::Max()) = 0;
@@ -1516,12 +1571,15 @@ public:
//! Write single message.
//! continuationToken - a token earlier provided to client with ReadyToAccept event.
- virtual void Write(TContinuationToken&& continuationToken, TStringBuf data, TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing()) = 0;
+ virtual void Write(TContinuationToken&& continuationToken, TWriteMessage&& message) = 0;
- //! Write single message that is already coded by codec. Codec from settings does not apply to this message.
- //! continuationToken - a token earlier provided to client with ReadyToAccept event.
- //! originalSize - size of unpacked message
- virtual void WriteEncoded(TContinuationToken&& continuationToken, TStringBuf data, ECodec codec, ui32 originalSize, TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing()) = 0;
+ //! Write single message. Old method with only basic message options.
+ virtual void Write(TContinuationToken&& continuationToken, TStringBuf data, TMaybe<ui64> seqNo = Nothing(),
+ TMaybe<TInstant> createTimestamp = Nothing()) = 0;
+
+ //! Write single message that is already compressed by codec. Old method with only basic message options.
+ virtual void WriteEncoded(TContinuationToken&& continuationToken, TStringBuf data, ECodec codec, ui32 originalSize,
+ TMaybe<ui64> seqNo = Nothing(), TMaybe<TInstant> createTimestamp = Nothing()) = 0;
//! Wait for all writes to complete (no more that closeTimeout()), than close. Empty maybe - means infinite timeout.
diff --git a/ydb/public/sdk/cpp/ya.make b/ydb/public/sdk/cpp/ya.make
index a72c89fc5c..752050f35a 100644
--- a/ydb/public/sdk/cpp/ya.make
+++ b/ydb/public/sdk/cpp/ya.make
@@ -1,4 +1,6 @@
RECURSE(
+ client/extensions
+ client/helpers
client/ydb_types/credentials
client/ydb_discovery
client/ydb_types/status
@@ -49,7 +51,6 @@ RECURSE(
client/impl/ydb_internal/plain_status
client/impl/ydb_internal/thread_pool
client/impl/ydb_endpoints/ut
- client/extensions
client/impl/ydb_internal/logger
client/impl/ydb_internal/make_request
client/resources
diff --git a/ydb/services/datastreams/datastreams_proxy.cpp b/ydb/services/datastreams/datastreams_proxy.cpp
index 07d2fae71e..bea96b9d06 100644
--- a/ydb/services/datastreams/datastreams_proxy.cpp
+++ b/ydb/services/datastreams/datastreams_proxy.cpp
@@ -27,11 +27,15 @@ using namespace NKikimrClient;
using grpc::Status;
+
namespace NKikimr::NDataStreams::V1 {
const TString YDS_SERVICE_TYPE = "data-streams";
const i32 DEFAULT_STREAM_DAY_RETENTION = TDuration::Days(1).Hours();
const i32 DEFAULT_STREAM_WEEK_RETENTION = TDuration::Days(7).Hours();
+ const i64 TIMESTAMP_DELTA_ALLOWED_MS = 10'000;
+
+
using namespace NGRpcService;
using namespace NGRpcProxy::V1;
@@ -1217,11 +1221,16 @@ namespace NKikimr::NDataStreams::V1 {
}
break;
case TIteratorType::AT_TIMESTAMP:
- if (GetProtoRequest()->timestamp() == 0 ||
- GetProtoRequest()->timestamp() > static_cast<i64>(TInstant::Now().MilliSeconds())) {
+ if (GetProtoRequest()->timestamp() == 0) {
+ return ReplyWithError(Ydb::StatusIds::BAD_REQUEST, static_cast<size_t>(NYds::EErrorCodes::INVALID_ARGUMENT),
+ TStringBuilder() << "Shard iterator type is AT_TIMESTAMP, " <<
+ "but a timestamp is missed", ctx);
+
+ }
+ if (GetProtoRequest()->timestamp() > static_cast<i64>(TInstant::Now().MilliSeconds()) + TIMESTAMP_DELTA_ALLOWED_MS) {
return ReplyWithError(Ydb::StatusIds::BAD_REQUEST, static_cast<size_t>(NYds::EErrorCodes::INVALID_ARGUMENT),
TStringBuilder() << "Shard iterator type is AT_TIMESTAMP, " <<
- "but timestamp is either missed or too old or in future", ctx);
+ "but a timestamp is in the future", ctx);
}
ReadTimestampMs = GetProtoRequest()->timestamp();
break;
diff --git a/ydb/services/lib/actors/pq_schema_actor.cpp b/ydb/services/lib/actors/pq_schema_actor.cpp
index 9de74a9c83..792530479a 100644
--- a/ydb/services/lib/actors/pq_schema_actor.cpp
+++ b/ydb/services/lib/actors/pq_schema_actor.cpp
@@ -15,6 +15,7 @@
namespace NKikimr::NGRpcProxy::V1 {
constexpr TStringBuf GRPCS_ENDPOINT_PREFIX = "grpcs://";
+ constexpr TStringBuf GRPC_ENDPOINT_PREFIX = "grpc://";
constexpr i64 DEFAULT_MAX_DATABASE_MESSAGEGROUP_SEQNO_RETENTION_PERIOD_MS =
TDuration::Days(16).MilliSeconds();
constexpr ui64 DEFAULT_PARTITION_SPEED = 1_MB;
@@ -813,10 +814,12 @@ namespace NKikimr::NGRpcProxy::V1 {
if (endpoint.StartsWith(GRPCS_ENDPOINT_PREFIX)) {
mirrorFrom->SetUseSecureConnection(true);
endpoint = TString(endpoint.begin() + GRPCS_ENDPOINT_PREFIX.size(), endpoint.end());
+ } else if (endpoint.StartsWith(GRPC_ENDPOINT_PREFIX)) {
+ endpoint = TString(endpoint.begin() + GRPC_ENDPOINT_PREFIX.size(), endpoint.end());
}
auto parts = SplitString(endpoint, ":");
if (parts.size() != 2) {
- error = TStringBuilder() << "endpoint in remote mirror rule must be in format [grpcs://]server:port, but got '"
+ error = TStringBuilder() << "endpoint in remote mirror rule must be in format [grpcs://]server:port or [grpc://]server:port, but got '"
<< settings.remote_mirror_rule().endpoint() << "'";
return Ydb::StatusIds::BAD_REQUEST;
}
diff --git a/ydb/services/metadata/abstract/parsing.h b/ydb/services/metadata/abstract/parsing.h
index 44db7b66f1..433bd6828b 100644
--- a/ydb/services/metadata/abstract/parsing.h
+++ b/ydb/services/metadata/abstract/parsing.h
@@ -18,6 +18,14 @@ private:
TFeatures Features;
std::shared_ptr<TFeaturesExtractor> FeaturesExtractor;
public:
+ TObjectSettingsImpl() = default;
+
+ TObjectSettingsImpl(const TString& typeId, const TString& objectId, const TFeatures& features)
+ : TypeId(typeId)
+ , ObjectId(objectId)
+ , Features(features)
+ , FeaturesExtractor(std::make_shared<TFeaturesExtractor>(Features))
+ {}
TFeaturesExtractor& GetFeaturesExtractor() const {
Y_VERIFY(!!FeaturesExtractor);
diff --git a/ydb/services/metadata/manager/abstract.h b/ydb/services/metadata/manager/abstract.h
index 48b884f53c..b03cc8bbb2 100644
--- a/ydb/services/metadata/manager/abstract.h
+++ b/ydb/services/metadata/manager/abstract.h
@@ -14,6 +14,7 @@
#include <ydb/services/metadata/abstract/parsing.h>
#include <library/cpp/threading/future/core/future.h>
+#include <library/cpp/actors/core/actorsystem.h>
namespace NKikimr::NMetadata::NModifications {
@@ -62,6 +63,8 @@ public:
private:
YDB_ACCESSOR_DEF(std::optional<NACLib::TUserToken>, UserToken);
YDB_ACCESSOR_DEF(TString, Database);
+ using TActorSystemPtr = TActorSystem*;
+ YDB_ACCESSOR_DEF(TActorSystemPtr, ActorSystem);
};
class TInternalModificationContext {
diff --git a/ydb/services/metadata/secret/snapshot.cpp b/ydb/services/metadata/secret/snapshot.cpp
index 1e0f8cf0de..5b00d4b0a8 100644
--- a/ydb/services/metadata/secret/snapshot.cpp
+++ b/ydb/services/metadata/secret/snapshot.cpp
@@ -64,6 +64,9 @@ bool TSnapshot::GetSecretValue(const TSecretIdOrValue& sId, TString& result) con
result = *sId.GetValue();
return true;
}
+ if (!sId.GetSecretId()) {
+ return false;;
+ }
auto it = Secrets.find(*sId.GetSecretId());
if (it == Secrets.end()) {
return false;
diff --git a/ydb/services/persqueue_v1/actors/events.h b/ydb/services/persqueue_v1/actors/events.h
index 536714d08c..c78ade1481 100644
--- a/ydb/services/persqueue_v1/actors/events.h
+++ b/ydb/services/persqueue_v1/actors/events.h
@@ -323,7 +323,7 @@ struct TEvPQProxy {
};
struct TEvStartRead : public NActors::TEventLocal<TEvStartRead, EvStartRead> {
- TEvStartRead(ui64 id, ui64 readOffset, ui64 commitOffset, bool verifyReadOffset)
+ TEvStartRead(ui64 id, ui64 readOffset, const TMaybe<ui64>& commitOffset, bool verifyReadOffset)
: AssignId(id)
, ReadOffset(readOffset)
, CommitOffset(commitOffset)
@@ -333,7 +333,7 @@ struct TEvPQProxy {
const ui64 AssignId;
ui64 ReadOffset;
- ui64 CommitOffset;
+ TMaybe<ui64> CommitOffset;
bool VerifyReadOffset;
ui64 Generation;
};
@@ -375,7 +375,8 @@ struct TEvPQProxy {
};
struct TEvLockPartition : public NActors::TEventLocal<TEvLockPartition, EvLockPartition> {
- explicit TEvLockPartition(const ui64 readOffset, const ui64 commitOffset, bool verifyReadOffset, bool startReading)
+ explicit TEvLockPartition(const ui64 readOffset, const TMaybe<ui64>& commitOffset, bool verifyReadOffset,
+ bool startReading)
: ReadOffset(readOffset)
, CommitOffset(commitOffset)
, VerifyReadOffset(verifyReadOffset)
@@ -383,7 +384,7 @@ struct TEvPQProxy {
{ }
ui64 ReadOffset;
- ui64 CommitOffset;
+ TMaybe<ui64> CommitOffset;
bool VerifyReadOffset;
bool StartReading;
};
diff --git a/ydb/services/persqueue_v1/actors/partition_actor.cpp b/ydb/services/persqueue_v1/actors/partition_actor.cpp
index 94a9b1ba3b..7895934a13 100644
--- a/ydb/services/persqueue_v1/actors/partition_actor.cpp
+++ b/ydb/services/persqueue_v1/actors/partition_actor.cpp
@@ -423,7 +423,7 @@ bool FillBatchedData(
::google::protobuf::util::TimeUtil::MillisecondsToTimestamp(r.GetCreateTimestampMS());
message->set_message_group_id(GetBatchSourceId(currentBatch));
- auto* msgMeta = message->mutable_message_meta();
+ auto* msgMeta = message->mutable_metadata_items();
*msgMeta = (proto.GetMessageMeta());
}
hasData = true;
@@ -715,7 +715,7 @@ void TPartitionActor::InitStartReading(const TActorContext& ctx) {
return;
}
- if (ClientCommitOffset < CommittedOffset) {
+ if (ClientCommitOffset.Defined() && *ClientCommitOffset < CommittedOffset) {
ctx.Send(ParentId,
new TEvPQProxy::TEvCloseSession(TStringBuilder()
<< "trying to commit to position that is less than committed: read " << ClientCommitOffset
@@ -733,7 +733,7 @@ void TPartitionActor::InitStartReading(const TActorContext& ctx) {
}
}
- if (ClientCommitOffset > CommittedOffset) {
+ if (ClientCommitOffset.GetOrElse(0) > CommittedOffset) {
if (ClientCommitOffset > ReadOffset) {
ctx.Send(ParentId,
new TEvPQProxy::TEvCloseSession(TStringBuilder()
@@ -742,7 +742,7 @@ void TPartitionActor::InitStartReading(const TActorContext& ctx) {
PersQueue::ErrorCode::BAD_REQUEST));
return;
}
- if (ClientCommitOffset > EndOffset) {
+ if (ClientCommitOffset.GetOrElse(0) > EndOffset) {
ctx.Send(ParentId,
new TEvPQProxy::TEvCloseSession(TStringBuilder()
<< "trying to commit to future: commit " << ClientCommitOffset << " endOffset " << EndOffset,
@@ -750,7 +750,7 @@ void TPartitionActor::InitStartReading(const TActorContext& ctx) {
return;
}
Y_VERIFY(CommitsInfly.empty());
- CommitsInfly.push_back(std::pair<ui64, TCommitInfo>(Max<ui64>(), {Max<ui64>(), ClientCommitOffset, ctx.Now()}));
+ CommitsInfly.push_back(std::pair<ui64, TCommitInfo>(Max<ui64>(), {Max<ui64>(), ClientCommitOffset.GetOrElse(0), ctx.Now()}));
Counters.SLITotal.Inc();
if (PipeClient) //pipe will be recreated soon
SendCommit(CommitsInfly.back().first, CommitsInfly.back().second.Offset, ctx);
diff --git a/ydb/services/persqueue_v1/actors/partition_actor.h b/ydb/services/persqueue_v1/actors/partition_actor.h
index ef1f00c2e4..4399f3ca5c 100644
--- a/ydb/services/persqueue_v1/actors/partition_actor.h
+++ b/ydb/services/persqueue_v1/actors/partition_actor.h
@@ -150,7 +150,7 @@ private:
ui64 ReadOffset;
ui64 ClientReadOffset;
- ui64 ClientCommitOffset;
+ TMaybe<ui64> ClientCommitOffset;
bool ClientVerifyReadOffset;
ui64 CommittedOffset;
ui64 WriteTimestampEstimateMs;
diff --git a/ydb/services/persqueue_v1/actors/read_session_actor.ipp b/ydb/services/persqueue_v1/actors/read_session_actor.ipp
index 3af3087772..5dde8abc52 100644
--- a/ydb/services/persqueue_v1/actors/read_session_actor.ipp
+++ b/ydb/services/persqueue_v1/actors/read_session_actor.ipp
@@ -148,10 +148,11 @@ void TReadSessionActor<UseMigrationProtocol>::Handle(typename IContext::TEvReadF
const auto& req = request.start_read();
const ui64 readOffset = req.read_offset();
- const ui64 commitOffset = req.commit_offset();
const bool verifyReadOffset = req.verify_read_offset();
- ctx.Send(ctx.SelfID, new TEvPQProxy::TEvStartRead(getAssignId(request.start_read()), readOffset, commitOffset, verifyReadOffset));
+ ctx.Send(ctx.SelfID, new TEvPQProxy::TEvStartRead(
+ getAssignId(request.start_read()), readOffset, req.commit_offset(), verifyReadOffset
+ ));
return (void)ReadFromStreamOrDie(ctx);
}
@@ -218,7 +219,10 @@ void TReadSessionActor<UseMigrationProtocol>::Handle(typename IContext::TEvReadF
const ui64 readOffset = req.read_offset();
const ui64 commitOffset = req.commit_offset();
- ctx.Send(ctx.SelfID, new TEvPQProxy::TEvStartRead(getAssignId(req), readOffset, commitOffset, req.has_read_offset()));
+ ctx.Send(ctx.SelfID, new TEvPQProxy::TEvStartRead(
+ getAssignId(req), readOffset, req.has_commit_offset() ? commitOffset : TMaybe<ui64>{},
+ req.has_read_offset()
+ ));
return (void)ReadFromStreamOrDie(ctx);
}
@@ -446,7 +450,9 @@ void TReadSessionActor<UseMigrationProtocol>::Handle(TEvPQProxy::TEvStartRead::T
// proxy request to partition - allow initing
// TODO: add here VerifyReadOffset too and check it againts Committed position
- ctx.Send(it->second.Actor, new TEvPQProxy::TEvLockPartition(ev->Get()->ReadOffset, ev->Get()->CommitOffset, ev->Get()->VerifyReadOffset, true));
+ ctx.Send(it->second.Actor, new TEvPQProxy::TEvLockPartition(
+ ev->Get()->ReadOffset, ev->Get()->CommitOffset, ev->Get()->VerifyReadOffset, true
+ ));
}
template <bool UseMigrationProtocol>
@@ -1044,7 +1050,7 @@ void TReadSessionActor<UseMigrationProtocol>::Handle(TEvPersQueue::TEvLockPartit
LOG_INFO_S(ctx, NKikimrServices::PQ_READ_PROXY, PQ_LOG_PREFIX << " assign"
<< ": record# " << record);
- ctx.Send(actorId, new TEvPQProxy::TEvLockPartition(0, 0, false, false));
+ ctx.Send(actorId, new TEvPQProxy::TEvLockPartition(0, {}, false, false));
}
template <bool UseMigrationProtocol>
@@ -1418,7 +1424,11 @@ void TReadSessionActor<UseMigrationProtocol>::Handle(NGRpcService::TGRpcRequestP
WriteToStreamOrDie(ctx, std::move(result));
}
} else {
- Request->ReplyUnauthenticated("refreshed token is invalid");
+ if (ev->Get()->Retryable) {
+ Request->ReplyUnavaliable();
+ } else {
+ Request->ReplyUnauthenticated("refreshed token is invalid");
+ }
Die(ctx);
}
}
diff --git a/ydb/services/persqueue_v1/actors/write_session_actor.ipp b/ydb/services/persqueue_v1/actors/write_session_actor.ipp
index 0f6933c4d6..f8fe09e9be 100644
--- a/ydb/services/persqueue_v1/actors/write_session_actor.ipp
+++ b/ydb/services/persqueue_v1/actors/write_session_actor.ipp
@@ -13,6 +13,7 @@
#include <ydb/core/persqueue/write_meta.h>
#include <ydb/library/services/services.pb.h>
#include <ydb/public/lib/deprecated/kicli/kicli.h>
+#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
#include <ydb/library/persqueue/topic_parser/topic_parser.h>
#include <ydb/services/lib/sharding/sharding.h>
#include <library/cpp/actors/core/log.h>
@@ -150,7 +151,7 @@ inline void FillChunkDataFromReq(
}
proto.SetData(msg.data());
auto* msgMeta = proto.MutableMessageMeta();
- *msgMeta = msg.message_meta();
+ *msgMeta = msg.metadata_items();
}
namespace NGRpcProxy {
@@ -760,13 +761,23 @@ void TWriteSessionActor<UseMigrationProtocol>::SendSelectPartitionRequest(const
ev->Record.MutableRequest()->MutableTxControl()->mutable_begin_tx()->mutable_serializable_read_write();
// keep compiled query in cache.
ev->Record.MutableRequest()->MutableQueryCachePolicy()->set_keep_in_cache(true);
- NClient::TParameters parameters;
- SetHashToTxParams(parameters, EncodedSourceId);
- parameters["$Topic"] = topic;
- parameters["$SourceId"] = EncodedSourceId.EscapedSourceId;
+ NYdb::TParamsBuilder paramsBuilder = NYdb::TParamsBuilder();
+
+ SetHashToTParamsBuilder(paramsBuilder, EncodedSourceId);
+
+ paramsBuilder
+ .AddParam("$Topic")
+ .Utf8(topic)
+ .Build()
+ .AddParam("$SourceId")
+ .Utf8(EncodedSourceId.EscapedSourceId)
+ .Build();
+
+ NYdb::TParams params = paramsBuilder.Build();
+
+ ev->Record.MutableRequest()->MutableYdbParameters()->swap(*(NYdb::TProtoAccessor::GetProtoMapPtr(params)));
- ev->Record.MutableRequest()->MutableParameters()->Swap(&parameters);
ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release());
SelectSrcIdsInflight++;
}
@@ -950,16 +961,30 @@ THolder<NKqp::TEvKqp::TEvQueryRequest> TWriteSessionActor<UseMigrationProtocol>:
// keep compiled query in cache.
ev->Record.MutableRequest()->MutableQueryCachePolicy()->set_keep_in_cache(true);
- NClient::TParameters parameters;
- SetHashToTxParams(parameters, EncodedSourceId);
- //parameters["$Hash"] = hash;
- parameters["$Topic"] = topic;
- parameters["$SourceId"] = EncodedSourceId.EscapedSourceId;
-
- parameters["$CreateTime"] = SourceIdCreateTime;
- parameters["$AccessTime"] = TInstant::Now().MilliSeconds();
- parameters["$Partition"] = Partition;
- ev->Record.MutableRequest()->MutableParameters()->Swap(&parameters);
+ NYdb::TParamsBuilder paramsBuilder = NYdb::TParamsBuilder();
+
+ SetHashToTParamsBuilder(paramsBuilder, EncodedSourceId);
+
+ paramsBuilder
+ .AddParam("$Topic")
+ .Utf8(topic)
+ .Build()
+ .AddParam("$SourceId")
+ .Utf8(EncodedSourceId.EscapedSourceId)
+ .Build()
+ .AddParam("$CreateTime")
+ .Uint64(SourceIdCreateTime)
+ .Build()
+ .AddParam("$AccessTime")
+ .Uint64(TInstant::Now().MilliSeconds())
+ .Build()
+ .AddParam("$Partition")
+ .Uint32(Partition)
+ .Build();
+
+ NYdb::TParams params = paramsBuilder.Build();
+
+ ev->Record.MutableRequest()->MutableYdbParameters()->swap(*(NYdb::TProtoAccessor::GetProtoMapPtr(params)));
return ev;
}
@@ -1408,8 +1433,8 @@ void TWriteSessionActor<UseMigrationProtocol>::PrepareRequest(THolder<TEvWrite>&
payloadSize += w->GetData().size() + w->GetSourceId().size();
const auto& msg = writeRequest.messages(messageIndex);
ui64 currMetadataSize = 0;
- for (const auto& [k, v] : msg.message_meta()) {
- currMetadataSize += k.size() + v.size();
+ for (const auto& metaItem : msg.metadata_items()) {
+ currMetadataSize += metaItem.key().size() + metaItem.value().size();
}
maxMessageMetadataSize = std::max(maxMessageMetadataSize, currMetadataSize);
};
@@ -1531,7 +1556,11 @@ void TWriteSessionActor<UseMigrationProtocol>::Handle(NGRpcService::TGRpcRequest
InitCheckSchema(ctx);
}
} else {
- Request->ReplyUnauthenticated("refreshed token is invalid");
+ if (ev->Get()->Retryable) {
+ Request->ReplyUnavaliable();
+ } else {
+ Request->ReplyUnauthenticated("refreshed token is invalid");
+ }
Die(ctx);
}
}
diff --git a/ydb/services/persqueue_v1/persqueue_ut.cpp b/ydb/services/persqueue_v1/persqueue_ut.cpp
index b01b3dfde8..edc5bd8e94 100644
--- a/ydb/services/persqueue_v1/persqueue_ut.cpp
+++ b/ydb/services/persqueue_v1/persqueue_ut.cpp
@@ -1601,6 +1601,23 @@ Y_UNIT_TEST_SUITE(TPersQueueTest) {
UNIT_ASSERT(res);
}
+ Y_UNIT_TEST(BadTopic) {
+ NPersQueue::TTestServer server;
+ server.AnnoyingClient->CreateTopic("rt3.dc1--topic", 1);
+
+ auto driver = server.AnnoyingClient->GetDriver();
+
+ auto writer = CreateSimpleWriter(*driver, "/topic/", "test source ID");
+ bool gotException = false;
+ try {
+ writer->GetInitSeqNo();
+ } catch(...) {
+ gotException = true;
+ }
+ UNIT_ASSERT(gotException);
+ }
+
+
Y_UNIT_TEST(SetupWriteSessionOnDisabledCluster) {
TPersQueueV1TestServer server;
SET_LOCALS;
@@ -6180,12 +6197,17 @@ Y_UNIT_TEST_SUITE(TPersQueueTest) {
NYdb::NTopic::TWriteSessionSettings wSettings {topicFullName, "srcId", "srcId"};
auto writer = topicClient.CreateSimpleBlockingWriteSession(wSettings);
- std::unordered_map<TString, TString> metadata = {{"key1", "val1"}, {"key2", "val2"}};
-/* writer->Write("Somedata", Nothing(), Nothing(), TDuration::Max(), metadata);
+ TVector<std::pair<TString, TString>> metadata = {{"key1", "val1"}, {"key2", "val2"}};
+ {
+ auto message = NYdb::NTopic::TWriteMessage{"Somedata"}.MessageMeta(metadata);
+ writer->Write(std::move(message));
+ }
metadata = {{"key3", "val3"}};
- writer->Write("Somedata2", Nothing(), Nothing(), TDuration::Max(), metadata);
+ {
+ auto message = NYdb::NTopic::TWriteMessage{"Somedata2"}.MessageMeta(metadata);
+ writer->Write(std::move(message));
+ }
writer->Write("Somedata3");
-*/
writer->Close();
NYdb::NTopic::TReadSessionSettings rSettings;
rSettings.ConsumerName("debug").AppendTopics({topicFullName});
diff --git a/ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp b/ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp
index d4b82e3ab5..1ad11c74ea 100644
--- a/ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp
+++ b/ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp
@@ -1,5 +1,6 @@
#include "ydb_common_ut.h"
#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
+#include <ydb/public/sdk/cpp/client/ydb_query/client.h>
#include <ydb/public/api/grpc/ydb_table_v1.grpc.pb.h>
@@ -204,7 +205,20 @@ Y_UNIT_TEST_SUITE(YdbSdkSessions) {
driver.Stop(true);
}
- Y_UNIT_TEST(MultiThreadSessionPoolLimitSync) {
+ void EnsureCanExecQuery(NYdb::NTable::TSession session) {
+ auto execStatus = session.ExecuteDataQuery("SELECT 42;",
+ TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx()).ExtractValueSync().GetStatus();
+ UNIT_ASSERT_EQUAL(execStatus, EStatus::SUCCESS);
+ }
+
+ void EnsureCanExecQuery(NYdb::NQuery::TSession session) {
+ auto execStatus = session.ExecuteQuery("SELECT 42;",
+ NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync().GetStatus();
+ UNIT_ASSERT_EQUAL(execStatus, EStatus::SUCCESS);
+ }
+
+ template<typename TClient>
+ void DoMultiThreadSessionPoolLimitSync() {
TKikimrWithGrpcAndRootSchema server;
ui16 grpc = server.GetPort();
@@ -215,14 +229,14 @@ Y_UNIT_TEST_SUITE(YdbSdkSessions) {
.SetEndpoint(location));
const int maxActiveSessions = 45;
- NYdb::NTable::TTableClient client(driver,
- TClientSettings()
+ TClient client(driver,
+ typename TClient::TSettings()
.SessionPoolSettings(
- TSessionPoolSettings().MaxActiveSessions(maxActiveSessions)));
+ typename TClient::TSettings::TSessionPoolSettings().MaxActiveSessions(maxActiveSessions)));
constexpr int nThreads = 100;
NYdb::EStatus statuses[nThreads];
- TVector<TMaybe<NYdb::NTable::TSession>> sessions;
+ TVector<TMaybe<typename TClient::TSession>> sessions;
sessions.resize(nThreads);
TAtomic t = 0;
auto job = [client, &t, &statuses, &sessions]() mutable {
@@ -230,9 +244,7 @@ Y_UNIT_TEST_SUITE(YdbSdkSessions) {
int i = AtomicIncrement(t);
statuses[--i] = sessionResponse.GetStatus();
if (statuses[i] == EStatus::SUCCESS) {
- auto execStatus = sessionResponse.GetSession().ExecuteDataQuery("SELECT 42;",
- TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx()).ExtractValueSync().GetStatus();
- UNIT_ASSERT_EQUAL(execStatus, EStatus::SUCCESS);
+ EnsureCanExecQuery(sessionResponse.GetSession());
sessions[i] = sessionResponse.GetSession();
}
};
@@ -270,7 +282,26 @@ Y_UNIT_TEST_SUITE(YdbSdkSessions) {
driver.Stop(true);
}
- Y_UNIT_TEST(MultiThreadMultipleRequestsOnSharedSessions) {
+ Y_UNIT_TEST(MultiThreadSessionPoolLimitSyncTableClient) {
+ DoMultiThreadSessionPoolLimitSync<NYdb::NTable::TTableClient>();
+ }
+
+ Y_UNIT_TEST(MultiThreadSessionPoolLimitSyncQueryClient) {
+ DoMultiThreadSessionPoolLimitSync<NYdb::NQuery::TQueryClient>();
+ }
+
+ NYdb::NTable::TAsyncDataQueryResult ExecQueryAsync(NYdb::NTable::TSession session, const TString q) {
+ return session.ExecuteDataQuery(q,
+ TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx());
+ }
+
+ NYdb::NQuery::TAsyncExecuteQueryResult ExecQueryAsync(NYdb::NQuery::TSession session, const TString q) {
+ return session.ExecuteQuery(q,
+ NYdb::NQuery::TTxControl::BeginTx().CommitTx());
+ }
+
+ template<typename T>
+ void DoMultiThreadMultipleRequestsOnSharedSessions() {
TKikimrWithGrpcAndRootSchema server;
ui16 grpc = server.GetPort();
@@ -281,21 +312,21 @@ Y_UNIT_TEST_SUITE(YdbSdkSessions) {
.SetEndpoint(location));
const int maxActiveSessions = 10;
- NYdb::NTable::TTableClient client(driver,
- TClientSettings()
+ typename T::TClient client(driver,
+ typename T::TClient::TSettings()
.SessionPoolSettings(
- TSessionPoolSettings().MaxActiveSessions(maxActiveSessions)));
+ typename T::TClient::TSettings::TSessionPoolSettings().MaxActiveSessions(maxActiveSessions)));
constexpr int nThreads = 20;
constexpr int nRequests = 50;
- std::array<TVector<TAsyncDataQueryResult>, nThreads> results;
+ std::array<TVector<typename T::TResult>, nThreads> results;
TAtomic t = 0;
TAtomic validSessions = 0;
auto job = [client, &t, &results, &validSessions]() mutable {
auto sessionResponse = client.GetSession().ExtractValueSync();
int i = AtomicIncrement(t);
- TVector<TAsyncDataQueryResult>& r = results[--i];
+ TVector<typename T::TResult>& r = results[--i];
if (sessionResponse.GetStatus() != EStatus::SUCCESS) {
return;
@@ -303,8 +334,7 @@ Y_UNIT_TEST_SUITE(YdbSdkSessions) {
AtomicIncrement(validSessions);
for (int i = 0; i < nRequests; i++) {
- r.push_back(sessionResponse.GetSession().ExecuteDataQuery("SELECT 42;",
- TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx()));
+ r.push_back(ExecQueryAsync(sessionResponse.GetSession(), "SELECT 42;"));
}
};
IThreadFactory* pool = SystemThreadFactory();
@@ -354,6 +384,23 @@ Y_UNIT_TEST_SUITE(YdbSdkSessions) {
driver.Stop(true);
}
+ Y_UNIT_TEST(MultiThreadMultipleRequestsOnSharedSessionsTableClient) {
+ struct TTypeHelper {
+ using TClient = NYdb::NTable::TTableClient;
+ using TResult = NYdb::NTable::TAsyncDataQueryResult;
+ };
+ DoMultiThreadMultipleRequestsOnSharedSessions<TTypeHelper>();
+ }
+
+ // Enable after interactive tx support
+ //Y_UNIT_TEST(MultiThreadMultipleRequestsOnSharedSessionsQueryClient) {
+ // struct TTypeHelper {
+ // using TClient = NYdb::NQuery::TQueryClient;
+ // using TResult = NYdb::NQuery::TAsyncExecuteQueryResult;
+ // };
+ // DoMultiThreadMultipleRequestsOnSharedSessions<TTypeHelper>();
+ //}
+
Y_UNIT_TEST(SessionsServerLimit) {
NKikimrConfig::TAppConfig appConfig;
auto& tableServiceConfig = *appConfig.MutableTableServiceConfig();
diff --git a/ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt
index ca65205659..6bbaa47ebd 100644
--- a/ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt
@@ -34,6 +34,7 @@ target_link_libraries(ydb-services-ydb-ut PUBLIC
public-lib-experimental
public-lib-json_value
public-lib-yson_value
+ public-lib-ut_helpers
cpp-client-draft
cpp-client-ydb_coordination
cpp-client-ydb_export
diff --git a/ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt b/ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt
index 8f4a9f440b..099eb30f66 100644
--- a/ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt
@@ -34,6 +34,7 @@ target_link_libraries(ydb-services-ydb-ut PUBLIC
public-lib-experimental
public-lib-json_value
public-lib-yson_value
+ public-lib-ut_helpers
cpp-client-draft
cpp-client-ydb_coordination
cpp-client-ydb_export
diff --git a/ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt b/ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt
index 99673c83ec..b3e3fbb5ed 100644
--- a/ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt
@@ -35,6 +35,7 @@ target_link_libraries(ydb-services-ydb-ut PUBLIC
public-lib-experimental
public-lib-json_value
public-lib-yson_value
+ public-lib-ut_helpers
cpp-client-draft
cpp-client-ydb_coordination
cpp-client-ydb_export
diff --git a/ydb/services/ydb/ut/CMakeLists.windows-x86_64.txt b/ydb/services/ydb/ut/CMakeLists.windows-x86_64.txt
index f851c69d19..93de926226 100644
--- a/ydb/services/ydb/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/services/ydb/ut/CMakeLists.windows-x86_64.txt
@@ -34,6 +34,7 @@ target_link_libraries(ydb-services-ydb-ut PUBLIC
public-lib-experimental
public-lib-json_value
public-lib-yson_value
+ public-lib-ut_helpers
cpp-client-draft
cpp-client-ydb_coordination
cpp-client-ydb_export
diff --git a/ydb/services/ydb/ut/ya.make b/ydb/services/ydb/ut/ya.make
index ebf7b4976a..40e44afbb9 100644
--- a/ydb/services/ydb/ut/ya.make
+++ b/ydb/services/ydb/ut/ya.make
@@ -46,6 +46,7 @@ PEERDIR(
ydb/public/lib/experimental
ydb/public/lib/json_value
ydb/public/lib/yson_value
+ ydb/public/lib/ut_helpers
ydb/public/sdk/cpp/client/draft
ydb/public/sdk/cpp/client/ydb_coordination
ydb/public/sdk/cpp/client/ydb_export
diff --git a/ydb/services/ydb/ydb_bulk_upsert_olap_ut.cpp b/ydb/services/ydb/ydb_bulk_upsert_olap_ut.cpp
index df84b3fcea..251c347269 100644
--- a/ydb/services/ydb/ydb_bulk_upsert_olap_ut.cpp
+++ b/ydb/services/ydb/ydb_bulk_upsert_olap_ut.cpp
@@ -356,6 +356,61 @@ Y_UNIT_TEST_SUITE(YdbTableBulkUpsertOlap) {
UNIT_ASSERT_VALUES_EQUAL(rows.size(), 1);
UNIT_ASSERT_VALUES_EQUAL(rows[0],
"123123bs,testd,subscr,2020-01-17T22:58:50.000000Z,1973-11-27T01:52:03.000000Z,(empty maybe),http,ru,AsiaNovo,hello,{}");
+
+ result = session.DropTable(tablePath).GetValueSync();
+ UNIT_ASSERT_EQUAL(result.IsTransportError(), false);
+ UNIT_ASSERT_EQUAL(result.GetStatus(), EStatus::SUCCESS);
+ }
+
+ // KIKIMR-18859
+ {
+ // CREATE TABLE import1(a Text NOT NULL, b Text, c Text, PRIMARY KEY(a))
+ std::vector<std::pair<TString, NYdb::EPrimitiveType>> schema = {
+ { "a", NYdb::EPrimitiveType::Utf8 },
+ { "b", NYdb::EPrimitiveType::Utf8 },
+ { "c", NYdb::EPrimitiveType::Utf8 }
+ };
+
+ auto tableBuilder = client.GetTableBuilder();
+ for (auto& [name, type] : schema) {
+ if (name == "a") {
+ tableBuilder.AddNonNullableColumn(name, type);
+ } else {
+ tableBuilder.AddNullableColumn(name, type);
+ }
+ }
+ tableBuilder.SetPrimaryKeyColumns({"a"});
+ auto result = session.CreateTable(tablePath, tableBuilder.Build(), {}).ExtractValueSync();
+
+ UNIT_ASSERT_EQUAL(result.IsTransportError(), false);
+ UNIT_ASSERT_EQUAL(result.GetStatus(), EStatus::SUCCESS);
+
+ // for i in `seq 1 9999`; do echo 'aaa'"$i"',bbb,ccc'; done | ydb import file csv -p import1 --columns "a,b,b"
+ TString csv;
+ csv += "a,b,b\n"; // wrong header
+ for (size_t i = 0; i < 10000; ++i) {
+ csv += TString("aaa") + ToString(i) + ",bbb,ccc\n";
+ }
+
+ Ydb::Formats::CsvSettings csvSettings;
+ csvSettings.set_header(true);
+ csvSettings.set_delimiter(",");
+
+ TString formatSettings;
+ Y_PROTOBUF_SUPPRESS_NODISCARD csvSettings.SerializeToString(&formatSettings);
+
+ NYdb::NTable::TBulkUpsertSettings upsertSettings;
+ upsertSettings.FormatSettings(formatSettings);
+
+ auto res = client.BulkUpsert(tablePath,
+ NYdb::NTable::EDataFormat::CSV, csv, {}, upsertSettings).GetValueSync();
+
+ Cerr << res.GetStatus() << Endl;
+ UNIT_ASSERT_EQUAL_C(res.GetStatus(), EStatus::BAD_REQUEST, res.GetIssues().ToString());
+
+ result = session.DropTable(tablePath).GetValueSync();
+ UNIT_ASSERT_EQUAL(result.IsTransportError(), false);
+ UNIT_ASSERT_EQUAL(result.GetStatus(), EStatus::SUCCESS);
}
}
diff --git a/ydb/services/ydb/ydb_bulk_upsert_ut.cpp b/ydb/services/ydb/ydb_bulk_upsert_ut.cpp
index 4abc9de797..a6d3204b55 100644
--- a/ydb/services/ydb/ydb_bulk_upsert_ut.cpp
+++ b/ydb/services/ydb/ydb_bulk_upsert_ut.cpp
@@ -219,7 +219,9 @@ Y_UNIT_TEST_SUITE(YdbTableBulkUpsert) {
}
Y_UNIT_TEST(NotNulls) {
- TKikimrWithGrpcAndRootSchema server;
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableFeatureFlags()->SetEnableNotNullDataColumns(true);
+ TKikimrWithGrpcAndRootSchema server(appConfig);
ui16 grpc = server.GetPort();
TString location = TStringBuilder() << "localhost:" << grpc;
diff --git a/ydb/services/ydb/ydb_olapstore_ut.cpp b/ydb/services/ydb/ydb_olapstore_ut.cpp
index 4d41288197..053c63102c 100644
--- a/ydb/services/ydb/ydb_olapstore_ut.cpp
+++ b/ydb/services/ydb/ydb_olapstore_ut.cpp
@@ -58,7 +58,6 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) {
ui16 grpc = server.GetPort();
TString location = TStringBuilder() << "localhost:" << grpc;
auto connection = NYdb::TDriver(TDriverConfig().SetEndpoint(location).SetDatabase("/Root").SetAuthToken(token));
- NKqp::WaitForKqpProxyInit(connection);
return connection;
}
diff --git a/ydb/services/ydb/ydb_query.cpp b/ydb/services/ydb/ydb_query.cpp
index 72ec468a95..69a39d69fb 100644
--- a/ydb/services/ydb/ydb_query.cpp
+++ b/ydb/services/ydb/ydb_query.cpp
@@ -48,6 +48,12 @@ void TGRpcYdbQueryService::SetupIncomingRequests(NGrpc::TLoggerPtr logger) {
(ctx, &DoCreateSession, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::Rps), nullptr}));
})
+ ADD_REQUEST(DeleteSession, DeleteSessionRequest, DeleteSessionResponse, {
+ ActorSystem_->Send(GRpcRequestProxyId_,
+ new TGrpcRequestNoOperationCall<DeleteSessionRequest, DeleteSessionResponse>
+ (ctx, &DoDeleteSession, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::Rps), nullptr}));
+ })
+
ADD_REQUEST(AttachSession, AttachSessionRequest, SessionState, {
ActorSystem_->Send(GRpcRequestProxyId_,
new TGrpcRequestNoOperationCall<AttachSessionRequest, SessionState>
diff --git a/ydb/services/ydb/ydb_query_ut.cpp b/ydb/services/ydb/ydb_query_ut.cpp
index 46acf56dfb..606943861d 100644
--- a/ydb/services/ydb/ydb_query_ut.cpp
+++ b/ydb/services/ydb/ydb_query_ut.cpp
@@ -1,67 +1,13 @@
#include "ydb_common_ut.h"
#include <ydb/public/api/grpc/ydb_query_v1.grpc.pb.h>
+#include <ydb/public/lib/ut_helpers/ut_helpers_query.h>
+
+#include <library/cpp/testing/unittest/tests_data.h>
using namespace NYdb;
using namespace NGrpc;
-
-namespace {
-
-TString CreateSession(const NGRpcProxy::TGRpcClientConfig& clientConfig) {
- NGrpc::TGRpcClientLow clientLow;
- auto connection = clientLow.CreateGRpcServiceConnection<Ydb::Query::V1::QueryService>(clientConfig);
-
- Ydb::Query::CreateSessionRequest request;
- TString sessionId;
-
- NGrpc::TResponseCallback<Ydb::Query::CreateSessionResponse> responseCb =
- [&sessionId](NGrpc::TGrpcStatus&& grpcStatus, Ydb::Query::CreateSessionResponse&& response) -> void {
- UNIT_ASSERT(!grpcStatus.InternalError);
- UNIT_ASSERT(grpcStatus.GRpcStatusCode == 0);
- UNIT_ASSERT_VALUES_EQUAL(response.status(), Ydb::StatusIds::SUCCESS);
- UNIT_ASSERT(response.session_id() != "");
- sessionId = response.session_id();
- };
-
- connection->DoRequest(request, std::move(responseCb), &Ydb::Query::V1::QueryService::Stub::AsyncCreateSession);
-
- return sessionId;
-}
-
-using TProcessor = typename NGrpc::IStreamRequestReadProcessor<Ydb::Query::SessionState>::TPtr;
-void CheckAttach(const NGRpcProxy::TGRpcClientConfig& clientConfig, const TString& id,
- const Ydb::StatusIds::StatusCode expected, bool& allDoneOk)
-{
- NGrpc::TGRpcClientLow clientLow;
- auto connection = clientLow.CreateGRpcServiceConnection<Ydb::Query::V1::QueryService>(clientConfig);
-
- Ydb::Query::AttachSessionRequest request;
- request.set_session_id(id);
-
- auto promise = NThreading::NewPromise<TProcessor>();
- auto cb = [&allDoneOk, promise, expected](TGrpcStatus grpcStatus, TProcessor processor) mutable {
- UNIT_ASSERT(grpcStatus.GRpcStatusCode == grpc::StatusCode::OK);
- auto resp = std::make_shared<Ydb::Query::SessionState>();
- processor->Read(resp.get(), [&allDoneOk, resp, promise, processor, expected](TGrpcStatus grpcStatus) mutable {
- UNIT_ASSERT(grpcStatus.GRpcStatusCode == grpc::StatusCode::OK);
- allDoneOk &= (resp->status() == expected);
- if (!allDoneOk) {
- Cerr << "Got attach response: " << resp->DebugString() << Endl;
- }
- promise.SetValue(processor);
- });
- };
-
- connection->DoStreamRequest<Ydb::Query::AttachSessionRequest, Ydb::Query::SessionState>(
- request,
- cb,
- &Ydb::Query::V1::QueryService::Stub::AsyncAttachSession);
-
- auto processor = promise.GetFuture().GetValueSync();
- processor->Cancel();
-}
-
-}
+using namespace NTestHelpers;
Y_UNIT_TEST_SUITE(YdbQueryService) {
Y_UNIT_TEST(TestCreateAndAttachSession) {
@@ -73,7 +19,7 @@ Y_UNIT_TEST_SUITE(YdbQueryService) {
auto clientConfig = NGRpcProxy::TGRpcClientConfig(location);
bool allDoneOk = true;
- TString sessionId = CreateSession(clientConfig);
+ TString sessionId = CreateQuerySession(clientConfig);
UNIT_ASSERT(sessionId);
@@ -98,4 +44,96 @@ Y_UNIT_TEST_SUITE(YdbQueryService) {
UNIT_ASSERT(allDoneOk);
}
+
+ Y_UNIT_TEST(TestAttachTwice) {
+ TKikimrWithGrpcAndRootSchema server;
+
+ ui16 grpc = server.GetPort();
+ TString location = TStringBuilder() << "localhost:" << grpc;
+
+ auto clientConfig = NGRpcProxy::TGRpcClientConfig(location);
+ bool allDoneOk = true;
+
+ TString sessionId = CreateQuerySession(clientConfig);
+
+ UNIT_ASSERT(sessionId);
+
+ NGrpc::TGRpcClientLow clientLow;
+ auto p = CheckAttach(clientLow, clientConfig, sessionId, Ydb::StatusIds::SUCCESS, allDoneOk);
+
+ CheckAttach(clientConfig, sessionId, Ydb::StatusIds::SESSION_BUSY, allDoneOk);
+
+ p->Cancel();
+
+ UNIT_ASSERT(allDoneOk);
+ }
+
+ Y_UNIT_TEST(TestCreateDropAttachSession) {
+ TKikimrWithGrpcAndRootSchema server;
+
+ ui16 grpc = server.GetPort();
+ TString location = TStringBuilder() << "localhost:" << grpc;
+
+ auto clientConfig = NGRpcProxy::TGRpcClientConfig(location);
+ bool allDoneOk = true;
+
+ TString sessionId = CreateQuerySession(clientConfig);
+
+ UNIT_ASSERT(sessionId);
+
+ {
+ CheckDelete(clientConfig, sessionId, Ydb::StatusIds::SUCCESS, allDoneOk);
+ }
+
+ UNIT_ASSERT(allDoneOk);
+
+ {
+ // We session has been destroyed by previous call
+ CheckAttach(clientConfig, sessionId, Ydb::StatusIds::BAD_SESSION, allDoneOk);
+ }
+
+ UNIT_ASSERT(allDoneOk);
+ }
+
+ Y_UNIT_TEST(TestCreateAttachAndDropAttachedSession) {
+ TKikimrWithGrpcAndRootSchema server;
+ server.GetRuntime()->SetLogPriority(NKikimrServices::KQP_PROXY, NActors::NLog::PRI_TRACE);
+ server.GetRuntime()->SetLogPriority(NKikimrServices::KQP_SESSION, NActors::NLog::PRI_TRACE);
+
+ ui16 grpc = server.GetPort();
+ TString location = TStringBuilder() << "localhost:" << grpc;
+
+ auto clientConfig = NGRpcProxy::TGRpcClientConfig(location);
+ bool allDoneOk = true;
+
+ TString sessionId = CreateQuerySession(clientConfig);
+
+ UNIT_ASSERT(sessionId);
+
+ NGrpc::TGRpcClientLow clientLow;
+ auto p = CheckAttach(clientLow, clientConfig, sessionId, Ydb::StatusIds::SUCCESS, allDoneOk);
+
+ UNIT_ASSERT(allDoneOk);
+
+ {
+ CheckDelete(clientConfig, sessionId, Ydb::StatusIds::SUCCESS, allDoneOk);
+ }
+
+ UNIT_ASSERT(allDoneOk);
+
+ {
+ EnsureSessionClosed(p, Ydb::StatusIds::SUCCESS, allDoneOk);
+ }
+
+ p->Cancel();
+
+ UNIT_ASSERT(allDoneOk);
+
+ {
+ CheckAttach(clientConfig, sessionId, Ydb::StatusIds::BAD_SESSION, allDoneOk);
+ }
+
+ UNIT_ASSERT(allDoneOk);
+ }
+
}
diff --git a/ydb/tests/CMakeLists.txt b/ydb/tests/CMakeLists.txt
index ba1c90c695..01bef33295 100644
--- a/ydb/tests/CMakeLists.txt
+++ b/ydb/tests/CMakeLists.txt
@@ -6,4 +6,5 @@
# original buildsystem will not be accepted.
+add_subdirectory(functional)
add_subdirectory(tools)
diff --git a/ydb/tests/functional/CMakeLists.txt b/ydb/tests/functional/CMakeLists.txt
new file mode 100644
index 0000000000..d4d91abdcd
--- /dev/null
+++ b/ydb/tests/functional/CMakeLists.txt
@@ -0,0 +1,9 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(kqp)
diff --git a/ydb/tests/functional/api/test_insert.py b/ydb/tests/functional/api/test_insert.py
index 2df04b55ac..87716b1f4b 100644
--- a/ydb/tests/functional/api/test_insert.py
+++ b/ydb/tests/functional/api/test_insert.py
@@ -4,6 +4,7 @@ import logging
from hamcrest import assert_that, raises, equal_to
from ydb.tests.library.harness.kikimr_cluster import kikimr_cluster_factory
+from ydb.tests.library.harness.kikimr_config import KikimrConfigGenerator
from ydb.tests.oss.ydb_sdk_import import ydb
@@ -13,7 +14,7 @@ logger = logging.getLogger(__name__)
class TestInsertOperations(object):
@classmethod
def setup_class(cls):
- cls.cluster = kikimr_cluster_factory()
+ cls.cluster = kikimr_cluster_factory(KikimrConfigGenerator(enable_immediate_effects=True))
cls.cluster.start()
cls.driver_config = ydb.DriverConfig(
"%s:%s" % (cls.cluster.nodes[1].host, cls.cluster.nodes[1].port), database='/Root')
diff --git a/ydb/tests/functional/api/test_isolation.py b/ydb/tests/functional/api/test_isolation.py
index 1b58b39cf6..c5cd45f904 100644
--- a/ydb/tests/functional/api/test_isolation.py
+++ b/ydb/tests/functional/api/test_isolation.py
@@ -2,6 +2,7 @@
from hamcrest import assert_that, equal_to, raises, contains_string
from ydb.tests.library.harness.kikimr_cluster import kikimr_cluster_factory
+from ydb.tests.library.harness.kikimr_config import KikimrConfigGenerator
from ydb.tests.oss.ydb_sdk_import import ydb
@@ -12,7 +13,7 @@ class TestTransactionIsolation(object):
"""
@classmethod
def setup_class(cls):
- cls.cluster = kikimr_cluster_factory()
+ cls.cluster = kikimr_cluster_factory(KikimrConfigGenerator(enable_immediate_effects=True))
cls.cluster.start()
cls.driver = ydb.Driver(
ydb.DriverConfig(
diff --git a/ydb/tests/functional/canonical/canondata/result.json b/ydb/tests/functional/canonical/canondata/result.json
index 38f24891f7..0c5bcc4273 100644
--- a/ydb/tests/functional/canonical/canondata/result.json
+++ b/ydb/tests/functional/canonical/canondata/result.json
@@ -116,6 +116,26 @@
"uri": "file://test_sql.TestCanonicalFolder1.test_case_index_select_using_index_only.sql-result_sets_/index_select_using_index_only.sql.results"
}
},
+ "test_sql.TestCanonicalFolder1.test_case[index/topsort_index_with_nonselector_aliases.sql-plan]": {
+ "plan": {
+ "uri": "file://test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-plan_/index_topsort_index_with_nonselector_aliases.sql.plan"
+ }
+ },
+ "test_sql.TestCanonicalFolder1.test_case[index/topsort_index_with_nonselector_aliases.sql-result_sets]": {
+ "result_sets": {
+ "uri": "file://test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-result_sets_/index_topsort_index_with_nonselector_aliases.sql.results"
+ }
+ },
+ "test_sql.TestCanonicalFolder1.test_case[index/topsort_index_with_selector_aliases.sql-plan]": {
+ "plan": {
+ "uri": "file://test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-plan_/index_topsort_index_with_selector_aliases.sql.plan"
+ }
+ },
+ "test_sql.TestCanonicalFolder1.test_case[index/topsort_index_with_selector_aliases.sql-result_sets]": {
+ "result_sets": {
+ "uri": "file://test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-result_sets_/index_topsort_index_with_selector_aliases.sql.results"
+ }
+ },
"test_sql.TestCanonicalFolder1.test_case[index_predicate_point.sql-plan]": {
"plan": {
"uri": "file://test_sql.TestCanonicalFolder1.test_case_index_predicate_point.sql-plan_/index_predicate_point.sql.plan"
diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-plan_/index_topsort_index_with_nonselector_aliases.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-plan_/index_topsort_index_with_nonselector_aliases.sql.plan
new file mode 100644
index 0000000000..5a1eb9c14a
--- /dev/null
+++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-plan_/index_topsort_index_with_nonselector_aliases.sql.plan
@@ -0,0 +1,41 @@
+{
+ "meta": {
+ "type": "query",
+ "version": "0.2"
+ },
+ "tables": [
+ {
+ "name": "/local/base_index_topsort_index_with_nonselector_aliases_sql_plan/NewTableWithIndex",
+ "reads": [
+ {
+ "columns": [
+ "Index1A",
+ "Index1B",
+ "Value"
+ ],
+ "type": "Lookup"
+ }
+ ]
+ },
+ {
+ "name": "/local/base_index_topsort_index_with_nonselector_aliases_sql_plan/NewTableWithIndex/NewIndex1/indexImplTable",
+ "reads": [
+ {
+ "columns": [
+ "Index1A",
+ "Index1B",
+ "Key1"
+ ],
+ "limit": "2",
+ "reverse": true,
+ "scan_by": [
+ "Index1A (-\u221e, +\u221e)",
+ "Index1B (-\u221e, +\u221e)",
+ "Key1 (-\u221e, +\u221e)"
+ ],
+ "type": "FullScan"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-result_sets_/index_topsort_index_with_nonselector_aliases.sql.results b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-result_sets_/index_topsort_index_with_nonselector_aliases.sql.results
new file mode 100644
index 0000000000..5825bcacc6
--- /dev/null
+++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_nonselector_aliases.sql-result_sets_/index_topsort_index_with_nonselector_aliases.sql.results
@@ -0,0 +1,3 @@
+[
+ []
+] \ No newline at end of file
diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-plan_/index_topsort_index_with_selector_aliases.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-plan_/index_topsort_index_with_selector_aliases.sql.plan
new file mode 100644
index 0000000000..a185d5fc1c
--- /dev/null
+++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-plan_/index_topsort_index_with_selector_aliases.sql.plan
@@ -0,0 +1,41 @@
+{
+ "meta": {
+ "type": "query",
+ "version": "0.2"
+ },
+ "tables": [
+ {
+ "name": "/local/base_index_topsort_index_with_selector_aliases_sql_plan/NewTableWithIndex",
+ "reads": [
+ {
+ "columns": [
+ "Index1A",
+ "Index1B",
+ "Value"
+ ],
+ "type": "Lookup"
+ }
+ ]
+ },
+ {
+ "name": "/local/base_index_topsort_index_with_selector_aliases_sql_plan/NewTableWithIndex/NewIndex1/indexImplTable",
+ "reads": [
+ {
+ "columns": [
+ "Index1A",
+ "Index1B",
+ "Key1"
+ ],
+ "limit": "2",
+ "reverse": true,
+ "scan_by": [
+ "Index1A (-\u221e, +\u221e)",
+ "Index1B (-\u221e, +\u221e)",
+ "Key1 (-\u221e, +\u221e)"
+ ],
+ "type": "FullScan"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-result_sets_/index_topsort_index_with_selector_aliases.sql.results b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-result_sets_/index_topsort_index_with_selector_aliases.sql.results
new file mode 100644
index 0000000000..5825bcacc6
--- /dev/null
+++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_index_topsort_index_with_selector_aliases.sql-result_sets_/index_topsort_index_with_selector_aliases.sql.results
@@ -0,0 +1,3 @@
+[
+ []
+] \ No newline at end of file
diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_join_group_by_lookup.script-script_/join_group_by_lookup.script.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_join_group_by_lookup.script-script_/join_group_by_lookup.script.plan
index 7768dd0187..db6133f8d4 100644
--- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_join_group_by_lookup.script-script_/join_group_by_lookup.script.plan
+++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_join_group_by_lookup.script-script_/join_group_by_lookup.script.plan
@@ -129,7 +129,7 @@
"Node Type": "Merge",
"SortColumns": [
"a.Group (Asc)",
- "a.Count (Asc)",
+ "a.Count0 (Asc)",
"t.Value (Asc)"
],
"PlanNodeType": "Connection"
diff --git a/ydb/tests/functional/canonical/sql/index/topsort_index_with_nonselector_aliases.sql b/ydb/tests/functional/canonical/sql/index/topsort_index_with_nonselector_aliases.sql
new file mode 100644
index 0000000000..37baa9c4e8
--- /dev/null
+++ b/ydb/tests/functional/canonical/sql/index/topsort_index_with_nonselector_aliases.sql
@@ -0,0 +1,8 @@
+--!syntax_v1
+SELECT
+t.Value as Value_alias,
+t.Index1A,
+t.Index1B
+from NewTableWithIndex view NewIndex1 as t
+order by t.Index1A desc, t.Index1B desc
+limit 2;
diff --git a/ydb/tests/functional/canonical/sql/index/topsort_index_with_selector_aliases.sql b/ydb/tests/functional/canonical/sql/index/topsort_index_with_selector_aliases.sql
new file mode 100644
index 0000000000..b1afe42e45
--- /dev/null
+++ b/ydb/tests/functional/canonical/sql/index/topsort_index_with_selector_aliases.sql
@@ -0,0 +1,8 @@
+--!syntax_v1
+SELECT
+t.Value as Value_alias,
+t.Index1A as Index1A_alias,
+t.Index1B
+from NewTableWithIndex view NewIndex1 as t
+order by t.Index1A_alias desc, t.Index1B desc
+limit 2;
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-0 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-0
index 2e1c2d1611..59c69351ee 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-0
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-0
@@ -93,7 +93,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-1 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-1
index 02c5155010..c6458a30fb 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-1
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-1
@@ -130,7 +130,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10
index 572a1ef766..dd27458744 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$8.u"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -145,7 +145,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -165,7 +165,7 @@
}
],
"SortColumns": [
- "u (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11
index 62095a887d..a51c5c0e78 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$10.u"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -151,7 +151,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -171,7 +171,7 @@
}
],
"SortColumns": [
- "u (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12
index fe1849451a..9227332778 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$9.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -118,7 +118,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -134,7 +134,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13
index d68a89d48b..6542861466 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$8.u"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -145,7 +145,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -165,7 +165,7 @@
}
],
"SortColumns": [
- "u (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14
index 58171605dd..b09c5dc8d6 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$10.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -123,7 +123,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -139,7 +139,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15
index 02388af9d5..0f40e064f9 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$8.cnt"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -83,7 +83,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -99,7 +99,7 @@
}
],
"SortColumns": [
- "cnt (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16
index 76c7cd6770..2f39820188 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$9.cnt"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -88,7 +88,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -104,7 +104,7 @@
}
],
"SortColumns": [
- "cnt (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17
index b2cf09aab5..2fd62e12ac 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17
@@ -87,7 +87,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18
index 72680c9358..63be5045f7 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$15.cnt"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -93,7 +93,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -109,7 +109,7 @@
}
],
"SortColumns": [
- "cnt (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-19 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-19
index 8f29edbe79..4a855bc401 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-19
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-19
@@ -96,7 +96,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2
index 55407025a1..35f7003a77 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2
@@ -144,7 +144,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-20 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-20
index 95865095f9..304f120829 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-20
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-20
@@ -95,31 +95,14 @@
"Id": 106
}
],
- "FunctionType": 2,
- "Id": 9,
- "KernelIdx": 0
- }
- }
- },
- {
- "Assign": {
- "Column": {
- "Id": 108
- },
- "Function": {
- "Arguments": [
- {
- "Id": 107
- }
- ],
- "Id": 18
+ "Id": 9
}
}
},
{
"Filter": {
"Predicate": {
- "Id": 108
+ "Id": 107
}
}
},
@@ -128,7 +111,7 @@
"Aggregates": [
{
"Column": {
- "Id": 109
+ "Id": 108
},
"Function": {
"Id": 2
@@ -141,13 +124,13 @@
"Projection": {
"Columns": [
{
- "Id": 109
+ "Id": 108
}
]
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21
index 8c07b5e5d7..9b934290a8 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$11.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -136,31 +136,14 @@
"Id": 108
}
],
- "FunctionType": 2,
- "Id": 9,
- "KernelIdx": 0
- }
- }
- },
- {
- "Assign": {
- "Column": {
- "Id": 110
- },
- "Function": {
- "Arguments": [
- {
- "Id": 109
- }
- ],
- "Id": 18
+ "Id": 9
}
}
},
{
"Filter": {
"Predicate": {
- "Id": 110
+ "Id": 109
}
}
},
@@ -177,7 +160,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -193,7 +176,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22
index f6bf140a78..2ba42a8115 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$20.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -152,9 +152,7 @@
"Id": 108
}
],
- "FunctionType": 2,
- "Id": 9,
- "KernelIdx": 0
+ "Id": 9
}
}
},
@@ -163,21 +161,6 @@
"Column": {
"Id": 110
},
- "Function": {
- "Arguments": [
- {
- "Id": 109
- }
- ],
- "Id": 18
- }
- }
- },
- {
- "Assign": {
- "Column": {
- "Id": 111
- },
"Constant": {
"Bytes": ".google."
}
@@ -186,7 +169,7 @@
{
"Assign": {
"Column": {
- "Id": 112
+ "Id": 111
},
"Function": {
"Arguments": [
@@ -194,39 +177,22 @@
"Id": 14
},
{
- "Id": 111
- }
- ],
- "FunctionType": 2,
- "Id": 9,
- "KernelIdx": 1
- }
- }
- },
- {
- "Assign": {
- "Column": {
- "Id": 113
- },
- "Function": {
- "Arguments": [
- {
- "Id": 112
+ "Id": 110
}
],
- "Id": 18
+ "Id": 9
}
}
},
{
"Assign": {
"Column": {
- "Id": 114
+ "Id": 112
},
"Function": {
"Arguments": [
{
- "Id": 113
+ "Id": 111
}
],
"Id": 10
@@ -236,15 +202,15 @@
{
"Assign": {
"Column": {
- "Id": 115
+ "Id": 113
},
"Function": {
"Arguments": [
{
- "Id": 110
+ "Id": 109
},
{
- "Id": 114
+ "Id": 112
}
],
"Id": 11
@@ -254,7 +220,7 @@
{
"Filter": {
"Predicate": {
- "Id": 115
+ "Id": 113
}
}
},
@@ -277,7 +243,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -407,9 +373,7 @@
"Id": 108
}
],
- "FunctionType": 2,
- "Id": 9,
- "KernelIdx": 0
+ "Id": 9
}
}
},
@@ -418,21 +382,6 @@
"Column": {
"Id": 110
},
- "Function": {
- "Arguments": [
- {
- "Id": 109
- }
- ],
- "Id": 18
- }
- }
- },
- {
- "Assign": {
- "Column": {
- "Id": 111
- },
"Constant": {
"Bytes": ".google."
}
@@ -441,7 +390,7 @@
{
"Assign": {
"Column": {
- "Id": 112
+ "Id": 111
},
"Function": {
"Arguments": [
@@ -449,39 +398,22 @@
"Id": 14
},
{
- "Id": 111
- }
- ],
- "FunctionType": 2,
- "Id": 9,
- "KernelIdx": 1
- }
- }
- },
- {
- "Assign": {
- "Column": {
- "Id": 113
- },
- "Function": {
- "Arguments": [
- {
- "Id": 112
+ "Id": 110
}
],
- "Id": 18
+ "Id": 9
}
}
},
{
"Assign": {
"Column": {
- "Id": 114
+ "Id": 112
},
"Function": {
"Arguments": [
{
- "Id": 113
+ "Id": 111
}
],
"Id": 10
@@ -491,15 +423,15 @@
{
"Assign": {
"Column": {
- "Id": 115
+ "Id": 113
},
"Function": {
"Arguments": [
{
- "Id": 110
+ "Id": 109
},
{
- "Id": 114
+ "Id": 112
}
],
"Id": 11
@@ -509,7 +441,7 @@
{
"Filter": {
"Predicate": {
- "Id": 115
+ "Id": 113
}
}
},
@@ -532,7 +464,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -556,7 +488,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-23 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-23
index bad48167a2..89349ab67a 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-23
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-23
@@ -180,31 +180,14 @@
"Id": 106
}
],
- "FunctionType": 2,
- "Id": 9,
- "KernelIdx": 0
- }
- }
- },
- {
- "Assign": {
- "Column": {
- "Id": 108
- },
- "Function": {
- "Arguments": [
- {
- "Id": 107
- }
- ],
- "Id": 18
+ "Id": 9
}
}
},
{
"Filter": {
"Predicate": {
- "Id": 108
+ "Id": 107
}
}
},
@@ -530,7 +513,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-24 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-24
index ec4753dcf1..67cfdd562a 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-24
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-24
@@ -101,7 +101,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-25 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-25
index e93a2871ff..487fe696ab 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-25
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-25
@@ -96,7 +96,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-26 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-26
index 5ae10631cc..986ce5f7f9 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-26
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-26
@@ -100,7 +100,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27
index 787ce1973d..a58e2a9d48 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27
@@ -126,7 +126,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28
index 6dd86d11a1..1fe8861189 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28
@@ -122,7 +122,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-29 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-29
index a4cd67625b..adf49d4bfb 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-29
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-29
@@ -84,7 +84,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-3 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-3
index 52cf278bab..c894d4a6bb 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-3
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-3
@@ -116,7 +116,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30
index 8b2e1314f6..7b72c71c21 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$17.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -132,7 +132,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -148,7 +148,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31
index 6bb92239bd..3d4262792d 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$17.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -132,7 +132,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -148,7 +148,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32
index ddd1182f66..520eabb5b1 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$15.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -96,7 +96,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -112,7 +112,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33
index 03cca15144..4db494ec25 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$8.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -83,7 +83,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -99,7 +99,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34
index 3603dc9d4f..c21a2a454f 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$9.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -88,7 +88,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -104,7 +104,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35
index 778b71765e..d84f8cdb0c 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35
@@ -86,7 +86,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36
index 9f12a31c36..ea5933c675 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$13.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -267,7 +267,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -283,7 +283,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37
index a4a4113463..afb9ecd3be 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$13.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -267,7 +267,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -283,7 +283,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38
index e8b363119c..87545be91b 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38
@@ -54,7 +54,7 @@
{
"Limit": "10 + 1000",
"Name": "TopSort",
- "TopSortBy": "$12.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -287,7 +287,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -303,7 +303,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39
index b436a2a847..1f507267e3 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39
@@ -54,7 +54,7 @@
{
"Limit": "10 + 1000",
"Name": "TopSort",
- "TopSortBy": "$18.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -213,7 +213,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -229,7 +229,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4
index fa247535e3..6a9cfa4c03 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4
@@ -106,7 +106,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40
index 1509c23101..fcdbccc0aa 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40
@@ -54,7 +54,7 @@
{
"Limit": "10 + 100",
"Name": "TopSort",
- "TopSortBy": "$13.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -245,7 +245,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -261,7 +261,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41
index 6275c503d7..558dd6e195 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41
@@ -54,7 +54,7 @@
{
"Limit": "10 + 10000",
"Name": "TopSort",
- "TopSortBy": "$15.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -292,7 +292,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -308,7 +308,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42
index 387c2af028..3d1e30b74f 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42
@@ -54,7 +54,7 @@
{
"Limit": "10 + 1000",
"Name": "TopSort",
- "TopSortBy": "$16.Minute"
+ "TopSortBy": "argument.Minute"
},
{
"Name": "Aggregate"
@@ -240,7 +240,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5
index 222a6879ca..07f49db4af 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5
@@ -106,7 +106,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-6 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-6
index 52db7aa36e..a400a1246b 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-6
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-6
@@ -116,7 +116,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7
index 3a2947ec13..5887f4e6da 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7
@@ -35,7 +35,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "$9.cnt"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -118,7 +118,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -134,7 +134,7 @@
}
],
"SortColumns": [
- "cnt (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8
index 6668b0bbab..782894dfc9 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$7.u"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -110,7 +110,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -130,7 +130,7 @@
}
],
"SortColumns": [
- "u (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9
index b3d69e9a23..fb04907372 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$18.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -109,7 +109,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -196,7 +196,7 @@
}
}
],
- "Version": 3
+ "Version": 2
},
"Table": "clickbench/plans/column/hits"
}
@@ -220,7 +220,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10
index 4dcecdd0a9..76d5182566 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$9.u"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -117,7 +117,7 @@
}
],
"SortColumns": [
- "u (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11
index 38e4edd7a7..8cb662f105 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$11.u"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -120,7 +120,7 @@
}
],
"SortColumns": [
- "u (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12
index d748d399c2..f2ca450ac4 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$10.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -89,7 +89,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13
index 9071369a64..1df724b461 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$9.u"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -117,7 +117,7 @@
}
],
"SortColumns": [
- "u (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14
index 6150ede9c3..865b37dde7 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$11.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -91,7 +91,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15
index 4ec1608fef..838bc92145 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$8.cnt"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -85,7 +85,7 @@
}
],
"SortColumns": [
- "cnt (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16
index 0ef4c67880..00b9500980 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$9.cnt"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -87,7 +87,7 @@
}
],
"SortColumns": [
- "cnt (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18
index 883ad3aa1d..aee84b4289 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$15.cnt"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -89,7 +89,7 @@
}
],
"SortColumns": [
- "cnt (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21
index 828f5f7475..d961a9ded1 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$12.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -90,7 +90,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22
index 68a67e8908..95ec0d5a41 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$21.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -182,7 +182,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30
index 5cdac8c749..2e761d1a84 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$18.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -94,7 +94,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31
index daa9ee6255..966e85a983 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$18.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -94,7 +94,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32
index c419ae7ba5..6c7105bac0 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$15.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -89,7 +89,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33
index 26d4b74dc6..be73bea82d 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$8.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -85,7 +85,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34
index bc8628be9d..63c2665694 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$9.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -87,7 +87,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36
index 3ee1efee16..87c50c0e72 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$14.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -93,7 +93,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37
index 6ce73aa9ab..cc2509b280 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$14.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -93,7 +93,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38
index 7d7d320795..b34dffcd23 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38
@@ -54,7 +54,7 @@
{
"Limit": "10 + 1000",
"Name": "TopSort",
- "TopSortBy": "$13.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -113,7 +113,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39
index cc25390ed5..a2b2472dd6 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39
@@ -54,7 +54,7 @@
{
"Limit": "10 + 1000",
"Name": "TopSort",
- "TopSortBy": "$19.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -119,7 +119,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40
index fb38ae2181..f5de3fffec 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40
@@ -54,7 +54,7 @@
{
"Limit": "10 + 100",
"Name": "TopSort",
- "TopSortBy": "$14.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -114,7 +114,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41
index f61ea3179e..880930b1bf 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41
@@ -54,7 +54,7 @@
{
"Limit": "10 + 10000",
"Name": "TopSort",
- "TopSortBy": "$16.PageViews"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -115,7 +115,7 @@
}
],
"SortColumns": [
- "PageViews (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42
index 1a97e31999..3e5d43553b 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42
@@ -54,7 +54,7 @@
{
"Limit": "10 + 1000",
"Name": "TopSort",
- "TopSortBy": "$17.Minute"
+ "TopSortBy": "argument.Minute"
},
{
"Name": "Aggregate"
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7
index a97e54dfe7..960a2cbc60 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7
@@ -35,7 +35,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "$10.cnt"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -89,7 +89,7 @@
}
],
"SortColumns": [
- "cnt (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8
index 3a2f6280e3..0ba44a335d 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$7.u"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -113,7 +113,7 @@
}
],
"SortColumns": [
- "u (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9
index 17bc182f5f..3f4ef67d7c 100644
--- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9
+++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9
@@ -35,7 +35,7 @@
{
"Limit": "10",
"Name": "TopSort",
- "TopSortBy": "$18.c"
+ "TopSortBy": "argument.Count0"
},
{
"Name": "Aggregate"
@@ -174,7 +174,7 @@
}
],
"SortColumns": [
- "c (Desc)"
+ "Count0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/encryption/ya.make b/ydb/tests/functional/encryption/ya.make
index 6e9a92dc4a..8b05ad5b98 100644
--- a/ydb/tests/functional/encryption/ya.make
+++ b/ydb/tests/functional/encryption/ya.make
@@ -18,6 +18,6 @@ PEERDIR(
ydb/public/sdk/python
)
-REQUIREMENTS(ram:11)
+REQUIREMENTS(ram:32)
END()
diff --git a/ydb/tests/functional/kqp/CMakeLists.txt b/ydb/tests/functional/kqp/CMakeLists.txt
new file mode 100644
index 0000000000..fadd85119e
--- /dev/null
+++ b/ydb/tests/functional/kqp/CMakeLists.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(kqp_indexes)
+add_subdirectory(kqp_query_session)
diff --git a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-x86_64.txt b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..b4f7a85bd0
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_indexes)
+target_link_libraries(ydb-tests-functional-kqp-kqp_indexes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ cpp-client-ydb_table
+ cpp-client-draft
+)
+target_link_options(ydb-tests-functional-kqp-kqp_indexes PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-tests-functional-kqp-kqp_indexes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_indexes/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-tests-functional-kqp-kqp_indexes
+ system_allocator
+)
+vcs_info(ydb-tests-functional-kqp-kqp_indexes)
diff --git a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-aarch64.txt b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..a2c60cd580
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_indexes)
+target_link_libraries(ydb-tests-functional-kqp-kqp_indexes PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ cpp-client-ydb_table
+ cpp-client-draft
+)
+target_link_options(ydb-tests-functional-kqp-kqp_indexes PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(ydb-tests-functional-kqp-kqp_indexes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_indexes/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-tests-functional-kqp-kqp_indexes
+ cpp-malloc-jemalloc
+)
+vcs_info(ydb-tests-functional-kqp-kqp_indexes)
diff --git a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-x86_64.txt b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..73d7bc8954
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_indexes)
+target_link_libraries(ydb-tests-functional-kqp-kqp_indexes PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ cpp-client-ydb_table
+ cpp-client-draft
+)
+target_link_options(ydb-tests-functional-kqp-kqp_indexes PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(ydb-tests-functional-kqp-kqp_indexes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_indexes/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-tests-functional-kqp-kqp_indexes
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+)
+vcs_info(ydb-tests-functional-kqp-kqp_indexes)
diff --git a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.windows-x86_64.txt b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..143c4402ab
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_indexes)
+target_link_libraries(ydb-tests-functional-kqp-kqp_indexes PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ cpp-client-ydb_table
+ cpp-client-draft
+)
+target_sources(ydb-tests-functional-kqp-kqp_indexes PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_indexes/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_indexes
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_indexes
+ PROPERTY
+ PROCESSORS
+ 1
+)
+target_allocator(ydb-tests-functional-kqp-kqp_indexes
+ system_allocator
+)
+vcs_info(ydb-tests-functional-kqp-kqp_indexes)
diff --git a/ydb/tests/functional/kqp/kqp_indexes/main.cpp b/ydb/tests/functional/kqp/kqp_indexes/main.cpp
new file mode 100644
index 0000000000..0a8e0e4cb1
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_indexes/main.cpp
@@ -0,0 +1,149 @@
+#include <util/system/env.h>
+#include <library/cpp/testing/unittest/registar.h>
+
+#include <ydb/public/sdk/cpp/client/ydb_driver/driver.h>
+#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
+#include <ydb/public/sdk/cpp/client/draft/ydb_scripting.h>
+
+#include <library/cpp/threading/local_executor/local_executor.h>
+
+using namespace NYdb;
+using namespace NYdb::NTable;
+
+Y_UNIT_TEST_SUITE(ConsistentIndexRead)
+{
+ Y_UNIT_TEST(InteractiveTx)
+ {
+ TString connectionString = GetEnv("YDB_ENDPOINT") + "/?database=" + GetEnv("YDB_DATABASE");
+ auto config = TDriverConfig(connectionString);
+ auto driver = TDriver(config);
+ auto tableClient = TTableClient(driver);
+ auto session = tableClient.GetSession().GetValueSync().GetSession();
+
+ auto res = session.ExecuteSchemeQuery(R"(
+ CREATE TABLE `/local/SecondaryKeys` (
+ Key Int32,
+ Fk Int32,
+ Value String,
+ PRIMARY KEY (Key),
+ INDEX Index GLOBAL ON (Fk)
+ );
+ )").GetValueSync();
+ UNIT_ASSERT_C(res.IsSuccess(), res.GetIssues().ToString());
+
+ static const TString deleteRow(R"(
+ DELETE FROM `/local/SecondaryKeys` ON (Key) VALUES (2)
+ )");
+
+ static const TString addRow(R"(
+ REPLACE INTO `/local/SecondaryKeys` (Key, Fk, Value) VALUES
+ (2, 2, "PPP")
+ )");
+
+ static const TString selectRow(R"(
+ SELECT * FROM `/local/SecondaryKeys` VIEW Index WHERE Fk = 2;
+ )");
+
+ {
+ auto result = session.ExecuteDataQuery(
+ addRow,
+ TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx())
+ .ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ }
+
+ Sleep(TDuration::Seconds(10));
+
+ NPar::LocalExecutor().RunAdditionalThreads(12);
+ NPar::LocalExecutor().ExecRange([=, &tableClient](int id) mutable {
+ NYdb::NTable::TExecDataQuerySettings execSettings;
+ execSettings.KeepInQueryCache(true);
+
+ size_t i = 5000;
+ while (--i) {
+ auto sessionResult = tableClient.GetSession().GetValueSync();
+ if (!sessionResult.IsSuccess()) {
+ Cerr << sessionResult.GetStatus() << " " << sessionResult.GetIssues().ToString() << Endl;
+ continue;
+ }
+ auto s = sessionResult.GetSession();
+ switch (id % 3) {
+ case 0: {
+ auto result = s.ExecuteDataQuery(
+ deleteRow,
+ TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx(),
+ execSettings)
+ .ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess() || result.GetStatus() == EStatus::ABORTED, result.GetIssues().ToString());
+ break;
+ }
+ case 1: {
+ auto result = s.ExecuteDataQuery(
+ addRow,
+ TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx(),
+ execSettings)
+ .ExtractValueSync();
+ UNIT_ASSERT_C(result.IsSuccess() || result.GetStatus() == EStatus::ABORTED, result.GetIssues().ToString());
+ break;
+ }
+ case 2: {
+ auto result = s.ExecuteDataQuery(
+ selectRow,
+ TTxControl::BeginTx(TTxSettings::SerializableRW()),
+ execSettings)
+ .ExtractValueSync();
+
+ // We expect read is always success
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+
+ if (result.IsSuccess()) {
+ auto tx = result.GetTransaction();
+ auto commitResult = tx->Commit().ExtractValueSync();
+ UNIT_ASSERT_C(commitResult.IsSuccess() || commitResult.GetStatus() == EStatus::ABORTED, commitResult.GetIssues().ToString());
+ }
+ break;
+ }
+ }
+ }
+ }, 0, 12, NPar::TLocalExecutor::WAIT_COMPLETE | NPar::TLocalExecutor::MED_PRIORITY);
+ }
+}
+
+Y_UNIT_TEST_SUITE(KqpExtTest)
+{
+ Y_UNIT_TEST(SecondaryIndexSelectUsingScripting) {
+ TString connectionString = GetEnv("YDB_ENDPOINT") + "/?database=" + GetEnv("YDB_DATABASE");
+ auto config = TDriverConfig(connectionString);
+ auto driver = TDriver(config);
+ NYdb::NScripting::TScriptingClient client(driver);
+ {
+ const TString createTableSql(R"(
+ --!syntax_v1
+ CREATE TABLE `/local/SharedHouseholds` (
+ guest_huid Uint64, guest_id Uint64, owner_huid Uint64, owner_id Uint64, household_id String,
+ PRIMARY KEY (guest_huid, owner_huid, household_id),
+ INDEX shared_households_owner_huid GLOBAL SYNC ON (`owner_huid`)
+ );)");
+ auto result = client.ExecuteYqlScript(createTableSql).GetValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ }
+
+ {
+ const TString query(R"(
+ --!syntax_v1
+ SELECT
+ guest_id
+ FROM
+ SharedHouseholds VIEW shared_households_owner_huid
+ WHERE
+ owner_huid == 1 AND
+ household_id == "1";
+ )");
+
+ auto result = client.ExecuteYqlScript(query).GetValueSync();
+
+ UNIT_ASSERT_C(result.GetIssues().Empty(), result.GetIssues().ToString());
+ UNIT_ASSERT(result.IsSuccess());
+ }
+ }
+}
diff --git a/ydb/tests/functional/kqp/kqp_indexes/ya.make b/ydb/tests/functional/kqp/kqp_indexes/ya.make
new file mode 100644
index 0000000000..f99aa67490
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_indexes/ya.make
@@ -0,0 +1,23 @@
+UNITTEST()
+
+ENV(YDB_USE_IN_MEMORY_PDISKS=true)
+
+ENV(YDB_ERASURE=block_4-2)
+
+PEERDIR(
+ library/cpp/threading/local_executor
+ ydb/public/sdk/cpp/client/ydb_table
+ ydb/public/sdk/cpp/client/draft
+)
+
+SRCS(
+ main.cpp
+)
+
+INCLUDE(${ARCADIA_ROOT}/ydb/public/tools/ydb_recipe/recipe.inc)
+
+SIZE(MEDIUM)
+
+REQUIREMENTS(ram:16)
+
+END()
diff --git a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-x86_64.txt b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..a30ca3f391
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_query_session)
+target_link_libraries(ydb-tests-functional-kqp-kqp_query_session PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ public-lib-ut_helpers
+ cpp-client-ydb_discovery
+ cpp-client-draft
+)
+target_link_options(ydb-tests-functional-kqp-kqp_query_session PRIVATE
+ -Wl,-platform_version,macos,11.0,11.0
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(ydb-tests-functional-kqp-kqp_query_session PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_query_session/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-tests-functional-kqp-kqp_query_session
+ system_allocator
+)
+vcs_info(ydb-tests-functional-kqp-kqp_query_session)
diff --git a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-aarch64.txt b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..99b3b5eee0
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_query_session)
+target_link_libraries(ydb-tests-functional-kqp-kqp_query_session PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ public-lib-ut_helpers
+ cpp-client-ydb_discovery
+ cpp-client-draft
+)
+target_link_options(ydb-tests-functional-kqp-kqp_query_session PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(ydb-tests-functional-kqp-kqp_query_session PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_query_session/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-tests-functional-kqp-kqp_query_session
+ cpp-malloc-jemalloc
+)
+vcs_info(ydb-tests-functional-kqp-kqp_query_session)
diff --git a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-x86_64.txt b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..3c53fd01ff
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_query_session)
+target_link_libraries(ydb-tests-functional-kqp-kqp_query_session PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ public-lib-ut_helpers
+ cpp-client-ydb_discovery
+ cpp-client-draft
+)
+target_link_options(ydb-tests-functional-kqp-kqp_query_session PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(ydb-tests-functional-kqp-kqp_query_session PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_query_session/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-tests-functional-kqp-kqp_query_session
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+)
+vcs_info(ydb-tests-functional-kqp-kqp_query_session)
diff --git a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.windows-x86_64.txt b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..b283fd0485
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(ydb-tests-functional-kqp-kqp_query_session)
+target_link_libraries(ydb-tests-functional-kqp-kqp_query_session PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-threading-local_executor
+ public-lib-ut_helpers
+ cpp-client-ydb_discovery
+ cpp-client-draft
+)
+target_sources(ydb-tests-functional-kqp-kqp_query_session PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/tests/functional/kqp/kqp_query_session/main.cpp
+)
+set_property(
+ TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_TARGET
+ ydb-tests-functional-kqp-kqp_query_session
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ ydb-tests-functional-kqp-kqp_query_session
+ PROPERTY
+ TIMEOUT
+ 60
+)
+target_allocator(ydb-tests-functional-kqp-kqp_query_session
+ system_allocator
+)
+vcs_info(ydb-tests-functional-kqp-kqp_query_session)
diff --git a/ydb/tests/functional/kqp/kqp_query_session/main.cpp b/ydb/tests/functional/kqp/kqp_query_session/main.cpp
new file mode 100644
index 0000000000..d2bb328ba4
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_query_session/main.cpp
@@ -0,0 +1,121 @@
+#include <util/system/env.h>
+#include <library/cpp/testing/unittest/registar.h>
+
+#include <ydb/public/lib/ut_helpers/ut_helpers_query.h>
+#include <ydb/public/sdk/cpp/client/ydb_driver/driver.h>
+#include <ydb/public/sdk/cpp/client/ydb_discovery/discovery.h>
+#include <ydb/public/sdk/cpp/client/draft/ydb_scripting.h>
+
+#include <library/cpp/threading/local_executor/local_executor.h>
+#include <library/cpp/grpc/client/grpc_common.h>
+
+#include <ydb/public/api/grpc/ydb_query_v1.grpc.pb.h>
+
+#include <stdio.h>
+
+#include <thread>
+
+using namespace NYdb;
+using namespace NTestHelpers;
+using namespace NYdb::NDiscovery;
+
+static TString CreateHostWithPort(const TEndpointInfo& info) {
+ return info.Address + ":" + ToString(info.Port);
+}
+
+static TString Exec(const TString& cmd) {
+ std::array<char, 256> buffer;
+ TString result;
+ std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd.data(), "r"), pclose);
+ if (!pipe) {
+ throw std::runtime_error("Unable to create pipe with process: " + cmd);
+ }
+ while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) {
+ result += buffer.data();
+ }
+ return result;
+}
+
+Y_UNIT_TEST_SUITE(KqpQuerySession)
+{
+ Y_UNIT_TEST(NoLocalAttach)
+ {
+ if (Exec("uname -s") != "Linux\n") {
+ Cerr << "This test works on linux only" << Endl;
+ return;
+ }
+
+ UNIT_ASSERT_C(Exec("whoami") != "root\n", "Do not run this test as root user. "
+ "This test will kill processes");
+
+ using namespace NGrpc;
+
+ TString connectionString = GetEnv("YDB_ENDPOINT") + "/?database=" + GetEnv("YDB_DATABASE");
+ auto config = TDriverConfig(connectionString);
+ auto driver = TDriver(config);
+
+ auto hs = [](const TEndpointInfo& info) {
+ return info.Port; //Actualy uniq for test
+ };
+
+ auto eq = [](const TEndpointInfo& l, const TEndpointInfo& r) {
+ return l.Address == r.Address && l.Port == r.Port;
+ };
+
+ std::unordered_map<TEndpointInfo, ui64, decltype(hs), decltype(eq)> endpoints;
+ {
+ auto client = TDiscoveryClient(driver);
+ auto res = client.ListEndpoints().GetValueSync();
+ UNIT_ASSERT_C(res.IsSuccess(), res.GetIssues().ToString());
+ for (const auto& x : res.GetEndpointsInfo()) {
+ auto cmd = Sprintf("ps axu | grep grpc-port=%d | grep -v \"grep\" | awk {'print $2'}", x.Port);
+ endpoints[x] = std::stoull(Exec(cmd).data());
+ }
+ }
+
+ UNIT_ASSERT_C(endpoints.size() > 2, "We must run at least 3 unique node to perform this test");
+
+ auto host1 = endpoints.begin();
+ auto host2 = ++endpoints.begin();
+
+ auto sessionId = CreateQuerySession(TGRpcClientConfig(CreateHostWithPort(host1->first)));
+
+ bool allDoneOk = true;
+
+ NGrpc::TGRpcClientLow clientLow;
+
+ auto readyToKill = NThreading::NewPromise<NGrpc::IStreamRequestCtrl::TPtr>();
+ auto doCheckAttach = [&] {
+ auto p = CheckAttach(clientLow, TGRpcClientConfig(CreateHostWithPort(host2->first)), sessionId, Ydb::StatusIds::SUCCESS, allDoneOk);
+ readyToKill.SetValue(p);
+ };
+
+ std::thread checkAttachThread(doCheckAttach);
+
+ auto processor = readyToKill.GetFuture().GetValueSync();
+
+ // Stop node which proxyed session stream
+ Exec(Sprintf("kill -19 %lu", host2->second));
+
+ // Give some time for interconnect to decide node is dead
+ Sleep(TDuration::Seconds(30));
+
+ // Resume node
+ Exec(Sprintf("kill -18 %lu", host2->second));
+
+ {
+ // Try to attach to same session - extect session was destroyed
+ // Using host where session actor worked
+ CheckAttach(TGRpcClientConfig(CreateHostWithPort(host1->first)), sessionId, Ydb::StatusIds::BAD_SESSION, allDoneOk);
+ // Using kqp proxy
+ CheckAttach(TGRpcClientConfig(CreateHostWithPort(host2->first)), sessionId, Ydb::StatusIds::BAD_SESSION, allDoneOk);
+ }
+
+ // Right now we requered to cancel stream from client side
+ processor->Cancel();
+
+ checkAttachThread.join();
+
+ UNIT_ASSERT(allDoneOk);
+ }
+}
diff --git a/ydb/tests/functional/kqp/kqp_query_session/ya.make b/ydb/tests/functional/kqp/kqp_query_session/ya.make
new file mode 100644
index 0000000000..e58077eb6a
--- /dev/null
+++ b/ydb/tests/functional/kqp/kqp_query_session/ya.make
@@ -0,0 +1,28 @@
+UNITTEST()
+
+ENV(YDB_USE_IN_MEMORY_PDISKS=true)
+
+ENV(YDB_ERASURE=block_4-2)
+
+ENV(USE_YDB_TRUNK_RECIPE_TOOLS=true)
+
+TIMEOUT(60)
+
+PEERDIR(
+ library/cpp/threading/local_executor
+ ydb/public/lib/ut_helpers
+ ydb/public/sdk/cpp/client/ydb_discovery
+ ydb/public/sdk/cpp/client/draft
+)
+
+SRCS(
+ main.cpp
+)
+
+INCLUDE(${ARCADIA_ROOT}/ydb/public/tools/ydb_recipe/recipe.inc)
+
+SIZE(MEDIUM)
+
+REQUIREMENTS(ram:16)
+
+END()
diff --git a/ydb/tests/functional/kqp/ya.make b/ydb/tests/functional/kqp/ya.make
new file mode 100644
index 0000000000..a3d1a951e6
--- /dev/null
+++ b/ydb/tests/functional/kqp/ya.make
@@ -0,0 +1,4 @@
+RECURSE(
+ kqp_indexes
+ kqp_query_session
+)
diff --git a/ydb/tests/functional/large_serializable/test_serializable.py b/ydb/tests/functional/large_serializable/test_serializable.py
index e2d55de24c..6ba110f15f 100644
--- a/ydb/tests/functional/large_serializable/test_serializable.py
+++ b/ydb/tests/functional/large_serializable/test_serializable.py
@@ -24,8 +24,8 @@ class Test(object):
'--endpoint=localhost:%d' % self.cluster.nodes[1].grpc_port,
'--database=/Root',
'--output-path=%s' % yatest_common.output_path(),
- '--iterations=500',
- '--processes=5'
+ '--iterations=30',
+ '--processes=3'
],
stderr=sys.stderr,
wait=True,
diff --git a/ydb/tests/functional/large_serializable/ya.make b/ydb/tests/functional/large_serializable/ya.make
index 6ee57d2196..fd53f0215b 100644
--- a/ydb/tests/functional/large_serializable/ya.make
+++ b/ydb/tests/functional/large_serializable/ya.make
@@ -13,9 +13,8 @@ REQUIREMENTS(
ram:32
)
-TIMEOUT(3600)
-SIZE(LARGE)
-TAG(ya:fat)
+TIMEOUT(600)
+SIZE(MEDIUM)
DEPENDS(
ydb/tests/tools/ydb_serializable
diff --git a/ydb/tests/functional/limits/ya.make b/ydb/tests/functional/limits/ya.make
index 70be6e633e..185303a0c4 100644
--- a/ydb/tests/functional/limits/ya.make
+++ b/ydb/tests/functional/limits/ya.make
@@ -5,6 +5,10 @@ TEST_SRCS(
test_schemeshard_limits.py
)
+REQUIREMENTS(
+ ram:16
+)
+
TIMEOUT(600)
SIZE(MEDIUM)
diff --git a/ydb/tests/functional/restarts/ya.make b/ydb/tests/functional/restarts/ya.make
index e0c19094cf..b8d9843f92 100644
--- a/ydb/tests/functional/restarts/ya.make
+++ b/ydb/tests/functional/restarts/ya.make
@@ -16,7 +16,7 @@ ENDIF()
REQUIREMENTS(
cpu:4
- ram:16
+ ram:32
)
ENV(YDB_DRIVER_BINARY="ydb/apps/ydbd/ydbd")
diff --git a/ydb/tests/functional/script_execution/test_update_script_tables.py b/ydb/tests/functional/script_execution/test_update_script_tables.py
new file mode 100644
index 0000000000..babbb9b415
--- /dev/null
+++ b/ydb/tests/functional/script_execution/test_update_script_tables.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import pytest
+
+from ydb.tests.library.harness.kikimr_cluster import kikimr_cluster_factory
+from ydb.tests.library.harness.kikimr_config import KikimrConfigGenerator
+
+from ydb.tests.oss.ydb_sdk_import import ydb
+
+
+def _list_operations_request(kind):
+ return ydb._apis.ydb_operation.ListOperationsRequest(kind=kind)
+
+
+def list_operations(driver):
+ return driver(_list_operations_request("scriptexec"),
+ ydb._apis.OperationService.Stub,
+ "ListOperations")
+
+
+columns = ["syntax", "ast", "stats"]
+
+
+class TestUpdateScriptTablesYdb(object):
+ @classmethod
+ def setup_class(cls):
+ cls.config = KikimrConfigGenerator(extra_feature_flags=["enable_script_execution_operations"])
+ cls.cluster = kikimr_cluster_factory(configurator=cls.config)
+ cls.cluster.start()
+ cls.driver = ydb.Driver(ydb.DriverConfig(
+ database="/Root",
+ endpoint="%s:%d" % (cls.cluster.nodes[1].host, cls.cluster.nodes[1].port)))
+ cls.driver.wait()
+
+ @classmethod
+ def teardown_class(cls):
+ if hasattr(cls, 'cluster'):
+ cls.cluster.stop()
+
+ def check_table_existance(self, table_name):
+ with self.session.transaction() as tx:
+ tx.execute(
+ "SELECT * FROM `.metadata/script_executions`"
+ )
+ tx.commit()
+
+ drop_columns = ["ALTER TABLE {} " + ', '.join(["DROP COLUMN {}".format(col) for col in columns[:i + 1]]) for i in range(len(columns))]
+
+ @pytest.mark.parametrize("table_name", ["`.metadata/script_executions`"])
+ @pytest.mark.parametrize("operation", ["DROP TABLE {}", *drop_columns])
+ def test_recreate_tables(self, operation, table_name):
+ self.session = ydb.retry_operation_sync(lambda: self.driver.table_client.session().create())
+
+ res = list_operations(self.driver)
+ assert "SUCCESS" in str(res)
+
+ self.check_table_existance(table_name)
+
+ self.session.execute_scheme(
+ operation.format(table_name)
+ )
+
+ res = list_operations(self.driver)
+ assert "ERROR" in str(res)
+
+ self.cluster.stop()
+ self.cluster.start()
+ self.session = ydb.retry_operation_sync(lambda: self.driver.table_client.session().create())
+
+ res = list_operations(self.driver)
+ assert "SUCCESS" in str(res)
+
+ self.check_table_existance(table_name)
diff --git a/ydb/tests/functional/script_execution/ya.make b/ydb/tests/functional/script_execution/ya.make
new file mode 100644
index 0000000000..ab22c161ec
--- /dev/null
+++ b/ydb/tests/functional/script_execution/ya.make
@@ -0,0 +1,32 @@
+PY3TEST()
+
+ENV(YDB_DRIVER_BINARY="ydb/apps/ydbd/ydbd")
+
+PEERDIR(
+ ydb/public/api/protos
+ ydb/public/sdk/python
+ ydb/public/api/grpc
+ ydb/tests/library
+ ydb/tests/oss/ydb_sdk_import
+)
+
+DEPENDS(
+ ydb/apps/ydbd
+)
+
+TEST_SRCS(
+ test_update_script_tables.py
+)
+
+IF (SANITIZER_TYPE)
+ TIMEOUT(2400)
+ SIZE(LARGE)
+ TAG(ya:fat)
+ELSE()
+ TIMEOUT(600)
+ SIZE(MEDIUM)
+ENDIF()
+
+FORK_SUBTESTS()
+
+END() \ No newline at end of file
diff --git a/ydb/tests/functional/sqs/large/ya.make b/ydb/tests/functional/sqs/large/ya.make
index 8963ec04da..27d4d939af 100644
--- a/ydb/tests/functional/sqs/large/ya.make
+++ b/ydb/tests/functional/sqs/large/ya.make
@@ -17,7 +17,7 @@ IF (SANITIZER_TYPE)
ELSE()
REQUIREMENTS(
cpu:4
- ram:16
+ ram:32
)
TIMEOUT(600)
SIZE(MEDIUM)
diff --git a/ydb/tests/functional/sqs/merge_split_common_table/std/ya.make b/ydb/tests/functional/sqs/merge_split_common_table/std/ya.make
index c49212bfe8..079553b3a9 100644
--- a/ydb/tests/functional/sqs/merge_split_common_table/std/ya.make
+++ b/ydb/tests/functional/sqs/merge_split_common_table/std/ya.make
@@ -11,19 +11,16 @@ IF (SANITIZER_TYPE)
TIMEOUT(2400)
SIZE(LARGE)
TAG(ya:fat)
- REQUIREMENTS(
- cpu:4
- ram:32
- )
ELSE()
- REQUIREMENTS(
- cpu:4
- ram:16
- )
TIMEOUT(600)
SIZE(MEDIUM)
ENDIF()
+REQUIREMENTS(
+ cpu:4
+ ram:32
+)
+
DEPENDS(
ydb/apps/ydbd
ydb/core/ymq/client/bin
diff --git a/ydb/tests/functional/sqs/multinode/ya.make b/ydb/tests/functional/sqs/multinode/ya.make
index 7935415fb0..aba07e33ff 100644
--- a/ydb/tests/functional/sqs/multinode/ya.make
+++ b/ydb/tests/functional/sqs/multinode/ya.make
@@ -11,19 +11,16 @@ IF (SANITIZER_TYPE)
TIMEOUT(2400)
SIZE(LARGE)
TAG(ya:fat)
- REQUIREMENTS(
- cpu:4
- ram:32
- )
ELSE()
- REQUIREMENTS(
- cpu:4
- ram:16
- )
TIMEOUT(600)
SIZE(MEDIUM)
ENDIF()
+REQUIREMENTS(
+ cpu:4
+ ram:32
+)
+
DEPENDS(
ydb/apps/ydbd
ydb/core/ymq/client/bin
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_1.plan
index b5a9a2b1c9..810fc864b2 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_1.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_1.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.a_y"
+ "TopSortBy": "argument.qr.y"
},
{
"Name": "LeftJoin (MapJoin)"
@@ -104,7 +104,7 @@
}
],
"SortColumns": [
- "a_y (Asc)"
+ "qr.y (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_2.plan
index f747777191..db3fb36783 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_2.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_2.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.a_y"
+ "TopSortBy": "argument.a.y"
},
{
"Name": "LeftJoin (MapJoin)"
@@ -104,7 +104,7 @@
}
],
"SortColumns": [
- "a_y (Asc)"
+ "a.y (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_3.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_3.plan
index c3ecb78b37..b453f3577b 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_3.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_3.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.pv_x"
+ "TopSortBy": "argument.pv.x"
},
{
"Name": "LeftJoin (MapJoin)"
@@ -105,7 +105,7 @@
}
],
"SortColumns": [
- "pv_x (Asc)"
+ "pv.x (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_4.plan
index 349ba0a0d8..9fd20e7b41 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_4.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_4.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.yy_pkyy"
+ "TopSortBy": "argument.yy.pkyy"
},
{
"Name": "LeftJoin (MapJoin)"
@@ -104,7 +104,7 @@
}
],
"SortColumns": [
- "yy_pkyy (Asc)"
+ "yy.pkyy (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_2.plan
index 61ced69dd8..352bb9fa78 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_2.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_2.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.q2"
+ "TopSortBy": "argument.t1.q2"
},
{
"Name": "Aggregate"
@@ -130,7 +130,7 @@
}
],
"SortColumns": [
- "q2 (Asc)"
+ "t1.q2 (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_3.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_3.plan
index dc6db1b651..f77aaefadd 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_3.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_3.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.q2"
+ "TopSortBy": "argument.t1.q2"
},
{
"Name": "Aggregate"
@@ -130,7 +130,7 @@
}
],
"SortColumns": [
- "q2 (Asc)"
+ "t1.q2 (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_4.plan
index 41540b5a60..83cea80ab7 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_4.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_4.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.q2"
+ "TopSortBy": "argument.t1.q2"
},
{
"Name": "Aggregate"
@@ -159,7 +159,7 @@
}
],
"SortColumns": [
- "q2 (Asc)"
+ "t1.q2 (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_5.plan
index 9bb38c1d2b..f3ade24018 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_5.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_5.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.q2"
+ "TopSortBy": "argument.t1.q2"
},
{
"Name": "Aggregate"
@@ -136,7 +136,7 @@
}
],
"SortColumns": [
- "q2 (Asc)"
+ "t1.q2 (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_1.plan
index 6291044cd4..e675ad7b50 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_1.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_1.plan
@@ -117,8 +117,8 @@
}
],
"SortColumns": [
- "i1q1 (Asc)",
- "i1q2 (Asc)"
+ "i1.q1 (Asc)",
+ "i1.q2 (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_5.plan
index 84030fa46e..c9cb5dca0d 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_5.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_5.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.qq"
+ "TopSortBy": "argument.qr.qq"
},
{
"Name": "InnerJoin (MapJoin)"
@@ -192,7 +192,7 @@
}
],
"SortColumns": [
- "qq (Asc)"
+ "qr.qq (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_1.plan
index 2edac8b930..65949c562e 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_1.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_1.plan
@@ -59,8 +59,8 @@
}
],
"SortColumns": [
- "a (Asc)",
- "e (Asc)"
+ "t1.i (Asc)",
+ "t2.k (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_10.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_10.plan
index 09dce165e0..0ee625dccf 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_10.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_10.plan
@@ -112,10 +112,10 @@
}
],
"SortColumns": [
- "i (Asc)",
- "j (Asc)",
- "t (Asc)",
- "k (Asc)"
+ "J2_TBL.i (Asc)",
+ "J1_TBL.j (Asc)",
+ "J1_TBL.t (Asc)",
+ "J2_TBL.k (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_11.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_11.plan
index d5e4d60196..f0ae8f398c 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_11.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_11.plan
@@ -131,9 +131,9 @@
}
],
"SortColumns": [
- "i (Asc)",
- "k (Asc)",
- "t (Asc)"
+ "J1_TBL.i (Asc)",
+ "J2_TBL.k (Asc)",
+ "J1_TBL.t (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_12.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_12.plan
index c2d005173b..baa4361b1e 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_12.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_12.plan
@@ -131,10 +131,10 @@
}
],
"SortColumns": [
- "i (Asc)",
- "k (Asc)",
- "t (Asc)",
- "j (Asc)"
+ "J1_TBL.i (Asc)",
+ "J2_TBL.k (Asc)",
+ "J1_TBL.t (Asc)",
+ "J1_TBL.j (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_2.plan
index 22b030c73c..c47093dbfd 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_2.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_2.plan
@@ -59,10 +59,10 @@
}
],
"SortColumns": [
- "i (Asc)",
- "j (Asc)",
- "t (Asc)",
- "k (Asc)"
+ "J1_TBL.i (Asc)",
+ "J1_TBL.j (Asc)",
+ "J1_TBL.t (Asc)",
+ "J2_TBL.k (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_3.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_3.plan
index 22b030c73c..c47093dbfd 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_3.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_3.plan
@@ -59,10 +59,10 @@
}
],
"SortColumns": [
- "i (Asc)",
- "j (Asc)",
- "t (Asc)",
- "k (Asc)"
+ "J1_TBL.i (Asc)",
+ "J1_TBL.j (Asc)",
+ "J1_TBL.t (Asc)",
+ "J2_TBL.k (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_4.plan
index 7e6da1a0b2..40719fa88b 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_4.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_4.plan
@@ -116,8 +116,8 @@
}
],
"SortColumns": [
- "b (Asc)",
- "a (Asc)"
+ "t1.j (Asc)",
+ "t1.i (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_5.plan
index 22b030c73c..c47093dbfd 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_5.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_5.plan
@@ -59,10 +59,10 @@
}
],
"SortColumns": [
- "i (Asc)",
- "j (Asc)",
- "t (Asc)",
- "k (Asc)"
+ "J1_TBL.i (Asc)",
+ "J1_TBL.j (Asc)",
+ "J1_TBL.t (Asc)",
+ "J2_TBL.k (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_6.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_6.plan
index 94776ea876..255a9e773d 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_6.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_6.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.i"
+ "TopSortBy": "argument.J1_TBL.i"
},
{
"Name": "InnerJoin (MapJoin)"
@@ -115,7 +115,7 @@
}
],
"SortColumns": [
- "i (Asc)"
+ "J1_TBL.i (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_7.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_7.plan
index f6cdb8143c..86425eb3b1 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_7.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_7.plan
@@ -105,10 +105,10 @@
}
],
"SortColumns": [
- "i (Asc)",
- "j (Asc)",
- "k (Asc)",
- "t (Asc)"
+ "J1_TBL.i (Asc)",
+ "J1_TBL.j (Asc)",
+ "J2_TBL.k (Asc)",
+ "J1_TBL.t (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_8.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_8.plan
index f6cdb8143c..86425eb3b1 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_8.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_8.plan
@@ -105,10 +105,10 @@
}
],
"SortColumns": [
- "i (Asc)",
- "j (Asc)",
- "k (Asc)",
- "t (Asc)"
+ "J1_TBL.i (Asc)",
+ "J1_TBL.j (Asc)",
+ "J2_TBL.k (Asc)",
+ "J1_TBL.t (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_9.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_9.plan
index 09dce165e0..0ee625dccf 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_9.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_9.plan
@@ -112,10 +112,10 @@
}
],
"SortColumns": [
- "i (Asc)",
- "j (Asc)",
- "t (Asc)",
- "k (Asc)"
+ "J2_TBL.i (Asc)",
+ "J1_TBL.j (Asc)",
+ "J1_TBL.t (Asc)",
+ "J2_TBL.k (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_2.plan
index 874290f0d8..66b8cf0343 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_2.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_2.plan
@@ -30,7 +30,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.name"
+ "TopSortBy": "argument.s2.name"
},
{
"Name": "InnerJoin (MapJoin)"
@@ -59,7 +59,7 @@
}
],
"SortColumns": [
- "name (Asc)"
+ "s2.name (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_3.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_3.plan
index 2fc4dbfec6..8a16ebbd65 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_3.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_3.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.name"
+ "TopSortBy": "argument.s2.name"
},
{
"Name": "LeftJoin (MapJoin)"
@@ -105,7 +105,7 @@
}
],
"SortColumns": [
- "name (Asc)"
+ "s2.name (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_2.plan
index c128425eca..e889f3d43f 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_2.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_2.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.k"
+ "TopSortBy": "argument.p.k"
},
{
"Name": "LeftJoin (MapJoin)"
@@ -104,7 +104,7 @@
}
],
"SortColumns": [
- "k (Asc)"
+ "p.k (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_8.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_8.plan
index 882616df4a..4c8f6c3653 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_8.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_8.plan
@@ -102,10 +102,10 @@
}
],
"SortColumns": [
- "x (Asc)",
- "q1 (Asc)",
- "q2 (Asc)",
- "y (Asc)"
+ "ss1.x (Asc)",
+ "ss2.q1 (Asc)",
+ "ss2.q2 (Asc)",
+ "ss2.y (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_13.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_13.plan
index c03800e421..6dfc4f42fb 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_13.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_13.plan
@@ -105,8 +105,8 @@
}
],
"SortColumns": [
- "a1 (Asc)",
- "b2 (Asc)"
+ "qrt1.a (Asc)",
+ "qrt2.b (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_5.plan
index 3a653a2964..432a3b562d 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_5.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_5.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.row_number"
+ "TopSortBy": "argument._yql_RowNumber0"
},
{
"Name": "Sort",
@@ -114,7 +114,7 @@
}
],
"SortColumns": [
- "row_number (Desc)"
+ "_yql_RowNumber0 (Desc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_10.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_10.plan
index d3b9aa6aff..ac7f87c743 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_10.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_10.plan
@@ -24,12 +24,11 @@
"PlanNodeType": "Connection",
"Plans": [
{
- "Node Type": "TopSort-TableFullScan",
+ "Node Type": "Limit-TableFullScan",
"Operators": [
{
"Limit": "1001",
- "Name": "TopSort",
- "TopSortBy": ""
+ "Name": "Limit"
},
{
"Name": "TableFullScan",
@@ -37,6 +36,7 @@
"a",
"b"
],
+ "ReadLimit": "1001",
"ReadRanges": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
@@ -54,8 +54,8 @@
}
],
"SortColumns": [
- "col1 (Asc)",
- "col2 (Asc)"
+ "a (Asc)",
+ "b (Asc)"
]
}
]
@@ -77,6 +77,7 @@
"a",
"b"
],
+ "limit": "1001",
"scan_by": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_58.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_58.plan
index b2592b5d14..0ab563aab0 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_58.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_58.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.e"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "e (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_92.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_92.plan
index 4111eaa6f7..bd0bec6251 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_92.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-1.test_/query_92.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.b"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "b (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_13.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_13.plan
index f9ea3ae5f2..a150af5e22 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_13.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_13.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.e"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "e (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_30.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_30.plan
index 4e55636a10..5e4e7533c3 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_30.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_30.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.d"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "d (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_84.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_84.plan
index 180db9532f..b6a036641c 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_84.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_84.plan
@@ -54,8 +54,8 @@
}
],
"SortColumns": [
- "col2 (Asc)",
- "col1 (Asc)"
+ "c (Asc)",
+ "d (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_88.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_88.plan
index 29fa867da9..a03506d98e 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_88.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-2.test_/query_88.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.c"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "c (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_12.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_12.plan
index 3277f39541..2e245a7ec0 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_12.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_12.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.d"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "d (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_24.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_24.plan
index 3277f39541..2e245a7ec0 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_24.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_24.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.d"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "d (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_69.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_69.plan
index 2a107a38e7..2b08c63312 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_69.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-3.test_/query_69.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.c"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "c (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-4.test_/query_125.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-4.test_/query_125.plan
index f545d62b9f..7713145d9b 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-4.test_/query_125.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select1-4.test_/query_125.plan
@@ -54,8 +54,8 @@
}
],
"SortColumns": [
- "col2 (Asc)",
- "col1 (Asc)"
+ "c (Asc)",
+ "b (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_120.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_120.plan
index 63be93a409..e5e5cdd2b3 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_120.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_120.plan
@@ -24,18 +24,18 @@
"PlanNodeType": "Connection",
"Plans": [
{
- "Node Type": "TopSort-TableFullScan",
+ "Node Type": "Limit-TableFullScan",
"Operators": [
{
"Limit": "1001",
- "Name": "TopSort",
- "TopSortBy": "row.col1"
+ "Name": "Limit"
},
{
"Name": "TableFullScan",
"ReadColumns": [
"a"
],
+ "ReadLimit": "1001",
"ReadRanges": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "a (Asc)"
]
}
]
@@ -74,6 +74,7 @@
"columns": [
"a"
],
+ "limit": "1001",
"scan_by": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_35.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_35.plan
index b628d44f68..70d0d8f3f2 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_35.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_35.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.e"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "e (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_106.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_106.plan
index 65057430b2..7b8bb84f3c 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_106.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_106.plan
@@ -24,18 +24,18 @@
"PlanNodeType": "Connection",
"Plans": [
{
- "Node Type": "TopSort-TableFullScan",
+ "Node Type": "Limit-TableFullScan",
"Operators": [
{
"Limit": "1001",
- "Name": "TopSort",
- "TopSortBy": "row.col1"
+ "Name": "Limit"
},
{
"Name": "TableFullScan",
"ReadColumns": [
"a"
],
+ "ReadLimit": "1001",
"ReadRanges": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "a (Asc)"
]
}
]
@@ -74,6 +74,7 @@
"columns": [
"a"
],
+ "limit": "1001",
"scan_by": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_84.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_84.plan
index 010986fc51..20bf3bca2c 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_84.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_84.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.b"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "b (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_100.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_100.plan
index 830f2d7cf4..c6b7cadafb 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_100.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_100.plan
@@ -42,7 +42,7 @@
"b",
"d"
],
- "ReadRangesExpectedSize": "1",
+ "ReadRangesExpectedSize": 1,
"ReadRangesKeys": [
"a"
],
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_118.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_118.plan
index 36f9c3e466..bb3e927b40 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_118.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_118.plan
@@ -55,9 +55,9 @@
}
],
"SortColumns": [
- "col1 (Asc)",
- "col3 (Asc)",
- "col2 (Asc)"
+ "d (Asc)",
+ "b (Asc)",
+ "a (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_53.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_53.plan
index ff9bcb5d95..c188684328 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_53.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_53.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.d"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "d (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_64.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_64.plan
index 2cff09fbab..8757395e86 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_64.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_64.plan
@@ -24,18 +24,18 @@
"PlanNodeType": "Connection",
"Plans": [
{
- "Node Type": "TopSort-TableFullScan",
+ "Node Type": "Limit-TableFullScan",
"Operators": [
{
"Limit": "1001",
- "Name": "TopSort",
- "TopSortBy": "row.col1"
+ "Name": "Limit"
},
{
"Name": "TableFullScan",
"ReadColumns": [
"a"
],
+ "ReadLimit": "1001",
"ReadRanges": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "a (Asc)"
]
}
]
@@ -74,6 +74,7 @@
"columns": [
"a"
],
+ "limit": "1001",
"scan_by": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_101.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_101.plan
index 5b6f882ffc..f683d2fcf8 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_101.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_101.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.c"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "c (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_102.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_102.plan
index 5b6f882ffc..f683d2fcf8 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_102.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-11.test_/query_102.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.c"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "c (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_77.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_77.plan
index 1b430ea662..7ea7bbe559 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_77.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_77.plan
@@ -54,8 +54,8 @@
}
],
"SortColumns": [
- "col2 (Asc)",
- "col1 (Asc)"
+ "c (Asc)",
+ "b (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_78.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_78.plan
index 2223cec0fa..7d8136e933 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_78.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-5.test_/query_78.plan
@@ -54,8 +54,8 @@
}
],
"SortColumns": [
- "col1 (Asc)",
- "col2 (Asc)"
+ "b (Asc)",
+ "c (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_55.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_55.plan
index 64ac492e85..5d390a2a84 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_55.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_55.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.d"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "d (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_56.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_56.plan
index 64ac492e85..5d390a2a84 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_56.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-7.test_/query_56.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.d"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "d (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_64.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_64.plan
index d40fb00083..e117117d50 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_64.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_64.plan
@@ -54,8 +54,8 @@
}
],
"SortColumns": [
- "col2 (Asc)",
- "col1 (Asc)"
+ "b (Asc)",
+ "e (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_65.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_65.plan
index a8299b20a1..1b0c723190 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_65.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-8.test_/query_65.plan
@@ -54,8 +54,8 @@
}
],
"SortColumns": [
- "col1 (Asc)",
- "col2 (Asc)"
+ "e (Asc)",
+ "b (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_103.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_103.plan
index 81f3b23c6f..72c48eb2b1 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_103.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_103.plan
@@ -24,18 +24,18 @@
"PlanNodeType": "Connection",
"Plans": [
{
- "Node Type": "TopSort-TableFullScan",
+ "Node Type": "Limit-TableFullScan",
"Operators": [
{
"Limit": "1001",
- "Name": "TopSort",
- "TopSortBy": "row.col1"
+ "Name": "Limit"
},
{
"Name": "TableFullScan",
"ReadColumns": [
"a"
],
+ "ReadLimit": "1001",
"ReadRanges": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "a (Asc)"
]
}
]
@@ -74,6 +74,7 @@
"columns": [
"a"
],
+ "limit": "1001",
"scan_by": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_104.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_104.plan
index 81f3b23c6f..72c48eb2b1 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_104.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_104.plan
@@ -24,18 +24,18 @@
"PlanNodeType": "Connection",
"Plans": [
{
- "Node Type": "TopSort-TableFullScan",
+ "Node Type": "Limit-TableFullScan",
"Operators": [
{
"Limit": "1001",
- "Name": "TopSort",
- "TopSortBy": "row.col1"
+ "Name": "Limit"
},
{
"Name": "TableFullScan",
"ReadColumns": [
"a"
],
+ "ReadLimit": "1001",
"ReadRanges": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "a (Asc)"
]
}
]
@@ -74,6 +74,7 @@
"columns": [
"a"
],
+ "limit": "1001",
"scan_by": [
"a (-\u221e, +\u221e)",
"b (-\u221e, +\u221e)",
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_115.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_115.plan
index 45e87d90da..db47dd790a 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_115.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_115.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.b"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "b (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_116.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_116.plan
index 45e87d90da..db47dd790a 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_116.plan
+++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select3-9.test_/query_116.plan
@@ -29,7 +29,7 @@
{
"Limit": "1001",
"Name": "TopSort",
- "TopSortBy": "row.col1"
+ "TopSortBy": "argument.b"
},
{
"Name": "TableFullScan",
@@ -53,7 +53,7 @@
}
],
"SortColumns": [
- "col1 (Asc)"
+ "b (Asc)"
]
}
]
diff --git a/ydb/tests/functional/suite_tests/canondata/test_stream_query.TestStreamQuery.test_sql_suite_results-window.test_/window.test.out b/ydb/tests/functional/suite_tests/canondata/test_stream_query.TestStreamQuery.test_sql_suite_results-window.test_/window.test.out
index a2723e11f9..9162181285 100644
--- a/ydb/tests/functional/suite_tests/canondata/test_stream_query.TestStreamQuery.test_sql_suite_results-window.test_/window.test.out
+++ b/ydb/tests/functional/suite_tests/canondata/test_stream_query.TestStreamQuery.test_sql_suite_results-window.test_/window.test.out
@@ -596,7 +596,8 @@ pragma SimpleColumns;
select first_value(max(x)) over w, y
from (select unique1 as x, ten+four as y from tenk1)
group by y
- window w AS ();
+ window w AS ()
+ order by y desc;
column0 | y
---------+----
@@ -617,20 +618,21 @@ SELECT four, ten,
sum(ten) over w,
last_value(ten) over w
FROM (select distinct ten, four from tenk1)
-WINDOW w AS (partition by four order by ten);
+WINDOW w AS (partition by four order by ten)
+ORDER BY four;
four | ten | column2 | column3
------+-----+---------+---------
- 1 | 1 | 1 | 1
- 1 | 3 | 4 | 3
- 1 | 5 | 9 | 5
- 1 | 7 | 16 | 7
- 1 | 9 | 25 | 9
0 | 0 | 0 | 0
0 | 2 | 2 | 2
0 | 4 | 6 | 4
0 | 6 | 12 | 6
0 | 8 | 20 | 8
+ 1 | 1 | 1 | 1
+ 1 | 3 | 4 | 3
+ 1 | 5 | 9 | 5
+ 1 | 7 | 16 | 7
+ 1 | 9 | 25 | 9
2 | 0 | 0 | 0
2 | 2 | 2 | 2
2 | 4 | 6 | 4
@@ -652,19 +654,20 @@ SELECT four, ten/4 as two,
last_value(ten/4) over w
FROM (select distinct ten, four from tenk1)
WINDOW w AS (partition by four order by ten/4 rows between unbounded preceding and current row)
+ORDER BY four;
four | two | column2 | column3
------+-----+---------+---------
- 1 | 0 | 0 | 0
- 1 | 0 | 0 | 0
- 1 | 1 | 1 | 1
- 1 | 1 | 2 | 1
- 1 | 2 | 4 | 2
0 | 0 | 0 | 0
0 | 0 | 0 | 0
0 | 1 | 1 | 1
0 | 1 | 2 | 1
0 | 2 | 4 | 2
+ 1 | 0 | 0 | 0
+ 1 | 0 | 0 | 0
+ 1 | 1 | 1 | 1
+ 1 | 1 | 2 | 1
+ 1 | 2 | 4 | 2
2 | 0 | 0 | 0
2 | 0 | 0 | 0
2 | 1 | 1 | 1
diff --git a/ydb/tests/functional/suite_tests/stream_query/window.test b/ydb/tests/functional/suite_tests/stream_query/window.test
index 9704855ef8..f9309f2793 100644
--- a/ydb/tests/functional/suite_tests/stream_query/window.test
+++ b/ydb/tests/functional/suite_tests/stream_query/window.test
@@ -230,7 +230,8 @@ statement stream query
select first_value(max(x)) over w, y
from (select unique1 as x, ten+four as y from tenk1)
group by y
- window w AS ();
+ window w AS ()
+ order by y desc;
-- test non-default frame specifications
statement stream query
@@ -238,7 +239,8 @@ SELECT four, ten,
sum(ten) over w,
last_value(ten) over w
FROM (select distinct ten, four from tenk1)
-WINDOW w AS (partition by four order by ten);
+WINDOW w AS (partition by four order by ten)
+ORDER BY four;
statement error
SELECT four, ten,
@@ -267,6 +269,7 @@ SELECT four, ten/4 as two,
last_value(ten/4) over w
FROM (select distinct ten, four from tenk1)
WINDOW w AS (partition by four order by ten/4 rows between unbounded preceding and current row)
+ORDER BY four;
statement error
SELECT sum(unique1) over w,
diff --git a/ydb/tests/functional/ya.make b/ydb/tests/functional/ya.make
index 3d13664a7a..99ea5059b5 100644
--- a/ydb/tests/functional/ya.make
+++ b/ydb/tests/functional/ya.make
@@ -9,6 +9,7 @@ RECURSE(
dynumber
encryption
hive
+ kqp
large_serializable
limits
open_source
@@ -25,4 +26,5 @@ RECURSE(
ttl
ydb_cli
query_cache
+ script_execution
)
diff --git a/ydb/tests/library/harness/kikimr_config.py b/ydb/tests/library/harness/kikimr_config.py
index 93ee05a74e..35d62941d2 100644
--- a/ydb/tests/library/harness/kikimr_config.py
+++ b/ydb/tests/library/harness/kikimr_config.py
@@ -147,6 +147,7 @@ class KikimrConfigGenerator(object):
default_users=None, # dict[user]=password
extra_feature_flags=None, # list[str]
extra_grpc_services=None, # list[str]
+ enable_immediate_effects=False,
):
if extra_feature_flags is None:
extra_feature_flags = []
@@ -225,18 +226,20 @@ class KikimrConfigGenerator(object):
if overrided_actor_system_config:
self.yaml_config["actor_system_config"] = overrided_actor_system_config
+ if "table_service_config" not in self.yaml_config:
+ self.yaml_config["table_service_config"] = {}
+
if disable_iterator_reads:
- if "table_service_config" not in self.yaml_config:
- self.yaml_config["table_service_config"] = {}
self.yaml_config["table_service_config"]["enable_kqp_scan_query_source_read"] = False
self.yaml_config["table_service_config"]["enable_kqp_data_query_source_read"] = False
if disable_iterator_lookups:
- if "table_service_config" not in self.yaml_config:
- self.yaml_config["table_service_config"] = {}
self.yaml_config["table_service_config"]["enable_kqp_scan_query_stream_lookup"] = False
self.yaml_config["table_service_config"]["enable_kqp_data_query_stream_lookup"] = False
+ if enable_immediate_effects:
+ self.yaml_config["table_service_config"]["enable_kqp_immediate_effects"] = True
+
self.yaml_config["feature_flags"]["enable_public_api_external_blobs"] = enable_public_api_external_blobs
self.yaml_config["feature_flags"]["enable_mvcc"] = "VALUE_FALSE" if disable_mvcc else "VALUE_TRUE"
for extra_feature_flag in extra_feature_flags:
diff --git a/ydb/tests/library/harness/resources/default_yaml.yml b/ydb/tests/library/harness/resources/default_yaml.yml
index 76c651040d..7090fad7de 100644
--- a/ydb/tests/library/harness/resources/default_yaml.yml
+++ b/ydb/tests/library/harness/resources/default_yaml.yml
@@ -154,6 +154,7 @@ grpc_config:
- "keyvalue"
- "monitoring"
- "auth"
+ - "query_service"
feature_flags:
enable_persistent_query_stats: true
enable_scheme_transactions_at_scheme_shard: true